From 747c851b6b0d5b72709f7e9ff645e7addded96ad Mon Sep 17 00:00:00 2001 From: GermanBluefox Date: Tue, 17 Jun 2025 13:55:30 +0300 Subject: [PATCH 1/3] Speed-up loading of GUI via Lazy loading --- README.md | 3 + admin/assets/OpenAiDialog-CZs8bTbV.js | 34 + admin/assets/Save-BSBgRX7g.js | 1 + admin/assets/ScriptEditor-DCULXCiS.js | 2 + .../ScriptEditorVanillaMonaco-CZnuN4bN.js | 1 + admin/assets/createSvgIcon-BQT-7-GS.js | 30 - admin/assets/createSvgIcon-DMsh-YeH.js | 30 + admin/assets/index-4_ThOlo9.js | 1329 ----------------- admin/assets/index-BeXkxxIT.js | 16 + admin/assets/index-Bis-ZPl5.js | 930 ++++++++++++ admin/assets/index-CEoeyJnt.css | 1 - .../{index-glyB1sbj.js => index-Cd_NUyEa.js} | 74 +- admin/assets/index-CuCs5aLs.js | 5 - admin/assets/index-CyP9QRCj.js | 27 + admin/assets/index-D12hwRdg.js | 930 ------------ admin/assets/index-DUBaHZ92.css | 1 + admin/assets/index-Dm1jc4t6.js | 1 + admin/assets/index-Dr_ZFwru.css | 1 + admin/assets/index-f32XoI0M.js | 5 + admin/assets/index-hex25_NL.js | 1294 ++++++++++++++++ ...--KnFDOw1.js => inheritsLoose-DgfqekV3.js} | 2 +- ...Theme-DF6qfrtI.js => useTheme-N2j2HWMZ.js} | 2 +- .../{index-sawv1cUe.js => index-3awjKpeb.js} | 151 +- .../{index-hlyxqX-8.js => index-BAaNTm9A.js} | 2 +- .../{index-BzS6q3oS.js => index-DZqbj5K4.js} | 26 +- admin/custom/customComponents.js | 4 +- admin/mf-manifest.json | 2 +- admin/remoteEntry.js | 4 +- admin/tab.html | 10 +- build-backend/main.js | 4 +- build-backend/main.js.map | 2 +- src-admin/package.json | 2 +- src-editor/package.json | 2 +- src-editor/src/Components/Connecting.tsx | 101 ++ src-editor/src/Components/Debugger/Editor.tsx | 2 +- ...naco.tsx => ScriptEditorVanillaMonaco.tsx} | 0 src-editor/src/Dialogs/ScriptEditor.tsx | 2 +- src-editor/src/Editor.tsx | 245 +-- src-editor/src/OpenAi/OpenAiDialog.tsx | 298 ++-- src/lib/convert.ts | 21 +- src/main.ts | 4 +- 41 files changed, 2883 insertions(+), 2718 deletions(-) create mode 100644 admin/assets/OpenAiDialog-CZs8bTbV.js create mode 100644 admin/assets/Save-BSBgRX7g.js create mode 100644 admin/assets/ScriptEditor-DCULXCiS.js create mode 100644 admin/assets/ScriptEditorVanillaMonaco-CZnuN4bN.js delete mode 100644 admin/assets/createSvgIcon-BQT-7-GS.js create mode 100644 admin/assets/createSvgIcon-DMsh-YeH.js delete mode 100644 admin/assets/index-4_ThOlo9.js create mode 100644 admin/assets/index-BeXkxxIT.js create mode 100644 admin/assets/index-Bis-ZPl5.js delete mode 100644 admin/assets/index-CEoeyJnt.css rename admin/assets/{index-glyB1sbj.js => index-Cd_NUyEa.js} (77%) delete mode 100644 admin/assets/index-CuCs5aLs.js create mode 100644 admin/assets/index-CyP9QRCj.js delete mode 100644 admin/assets/index-D12hwRdg.js create mode 100644 admin/assets/index-DUBaHZ92.css create mode 100644 admin/assets/index-Dm1jc4t6.js create mode 100644 admin/assets/index-Dr_ZFwru.css create mode 100644 admin/assets/index-f32XoI0M.js create mode 100644 admin/assets/index-hex25_NL.js rename admin/assets/{inheritsLoose--KnFDOw1.js => inheritsLoose-DgfqekV3.js} (99%) rename admin/assets/{useTheme-DF6qfrtI.js => useTheme-N2j2HWMZ.js} (73%) rename admin/custom/assets/{index-sawv1cUe.js => index-3awjKpeb.js} (53%) rename admin/custom/assets/{index-hlyxqX-8.js => index-BAaNTm9A.js} (99%) rename admin/custom/assets/{index-BzS6q3oS.js => index-DZqbj5K4.js} (56%) create mode 100644 src-editor/src/Components/Connecting.tsx rename src-editor/src/Components/{ScriptEditorVanilaMonaco.tsx => ScriptEditorVanillaMonaco.tsx} (100%) diff --git a/README.md b/README.md index 2d1fc70f0..052392c4d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,9 @@ Executes Javascript, Typescript Scripts. +### **WORK IN PROGRESS** +* (@GermanBluefox) Speed-up loading of GUI + ### 9.0.4 (2025-06-16) * (@GermanBluefox) Corrected script editor for Polish language * (@GermanBluefox) Corrected import of Blockly blocks diff --git a/admin/assets/OpenAiDialog-CZs8bTbV.js b/admin/assets/OpenAiDialog-CZs8bTbV.js new file mode 100644 index 000000000..41a00d965 --- /dev/null +++ b/admin/assets/OpenAiDialog-CZs8bTbV.js @@ -0,0 +1,34 @@ +import{c as Qs,j as E}from"./createSvgIcon-DMsh-YeH.js";import{i as Y}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as j,c as an,C as zs}from"./index-f32XoI0M.js";import{i as W,h as Ys}from"./index-hex25_NL.js";import{_ as Zs}from"./preload-helper-Dp1pzeXC.js";import{C as er,t as tr}from"./index-Dm1jc4t6.js";import nr from"./ScriptEditorVanillaMonaco-CZnuN4bN.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";const sr=Qs(E.jsx("path",{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15M14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2"}),"QuestionMark");function R(s,e,t,n,r){if(typeof e=="function"?s!==e||!0:!e.has(s))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(s,t),t}function c(s,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?s!==e||!n:!e.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(s):n?n.value:e.get(s)}let On=function(){const{crypto:s}=globalThis;if(s!=null&&s.randomUUID)return On=s.randomUUID.bind(s),s.randomUUID();const e=new Uint8Array(1),t=s?()=>s.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^t()&15>>+n/4).toString(16))};function It(s){return typeof s=="object"&&s!==null&&("name"in s&&s.name==="AbortError"||"message"in s&&String(s.message).includes("FetchRequestCanceledException"))}const Rt=s=>{if(s instanceof Error)return s;if(typeof s=="object"&&s!==null){try{if(Object.prototype.toString.call(s)==="[object Error]"){const e=new Error(s.message,s.cause?{cause:s.cause}:{});return s.stack&&(e.stack=s.stack),s.cause&&!e.cause&&(e.cause=s.cause),s.name&&(e.name=s.name),e}}catch{}try{return new Error(JSON.stringify(s))}catch{}}return new Error(s)};class v extends Error{}class J extends v{constructor(e,t,n,r){super(`${J.makeMessage(e,t,n)}`),this.status=e,this.headers=r,this.requestID=r==null?void 0:r.get("x-request-id"),this.error=t;const a=t;this.code=a==null?void 0:a.code,this.param=a==null?void 0:a.param,this.type=a==null?void 0:a.type}static makeMessage(e,t,n){const r=t!=null&&t.message?typeof t.message=="string"?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,n,r){if(!e||!r)return new ut({message:n,cause:Rt(t)});const a=t==null?void 0:t.error;return e===400?new Pn(e,a,n,r):e===401?new Tn(e,a,n,r):e===403?new Mn(e,a,n,r):e===404?new Nn(e,a,n,r):e===409?new jn(e,a,n,r):e===422?new Fn(e,a,n,r):e===429?new Ln(e,a,n,r):e>=500?new Dn(e,a,n,r):new J(e,a,n,r)}}class Q extends J{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class ut extends J{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}}class Lt extends ut{constructor({message:e}={}){super({message:e??"Request timed out."})}}class Pn extends J{}class Tn extends J{}class Mn extends J{}class Nn extends J{}class jn extends J{}class Fn extends J{}class Ln extends J{}class Dn extends J{}class Bn extends v{constructor(){super("Could not parse response content as the length limit was reached")}}class Un extends v{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}const rr=/^[a-z][a-z0-9+.-]*:/i,ar=s=>rr.test(s);function ir(s){return typeof s!="object"?{}:s??{}}function or(s){if(!s)return!0;for(const e in s)return!1;return!0}function cr(s,e){return Object.prototype.hasOwnProperty.call(s,e)}function _t(s){return s!=null&&typeof s=="object"&&!Array.isArray(s)}const lr=(s,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new v(`${s} must be an integer`);if(e<0)throw new v(`${s} must be a positive integer`);return e},ur=s=>{try{return JSON.parse(s)}catch{return}},Fe=s=>new Promise(e=>setTimeout(e,s)),st={off:0,error:200,warn:300,info:400,debug:500},on=(s,e,t)=>{if(s){if(cr(st,s))return s;X(t).warn(`${e} was set to ${JSON.stringify(s)}, expected one of ${JSON.stringify(Object.keys(st))}`)}};function ve(){}function Ue(s,e,t){return!e||st[s]>st[t]?ve:e[s].bind(e)}const dr={error:ve,warn:ve,info:ve,debug:ve};let cn=new WeakMap;function X(s){const e=s.logger,t=s.logLevel??"off";if(!e)return dr;const n=cn.get(e);if(n&&n[0]===t)return n[1];const r={error:Ue("error",e,t),warn:Ue("warn",e,t),info:Ue("info",e,t),debug:Ue("debug",e,t)};return cn.set(e,[t,r]),r}const le=s=>(s.options&&(s.options={...s.options},delete s.options.headers),s.headers&&(s.headers=Object.fromEntries((s.headers instanceof Headers?[...s.headers]:Object.entries(s.headers)).map(([e,t])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":t]))),"retryOfRequestLogID"in s&&(s.retryOfRequestLogID&&(s.retryOf=s.retryOfRequestLogID),delete s.retryOfRequestLogID),s),ye="5.0.1",hr=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function fr(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}const mr=()=>{var t;const s=fr();if(s==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":un(Deno.build.os),"X-Stainless-Arch":ln(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:((t=Deno.version)==null?void 0:t.deno)??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(s==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":un(globalThis.process.platform??"unknown"),"X-Stainless-Arch":ln(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const e=pr();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function pr(){if(typeof navigator>"u"||!navigator)return null;const s=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(const{key:e,pattern:t}of s){const n=t.exec(navigator.userAgent);if(n){const r=n[1]||0,a=n[2]||0,i=n[3]||0;return{browser:e,version:`${r}.${a}.${i}`}}}return null}const ln=s=>s==="x32"?"x32":s==="x86_64"||s==="x64"?"x64":s==="arm"?"arm":s==="aarch64"||s==="arm64"?"arm64":s?`other:${s}`:"unknown",un=s=>(s=s.toLowerCase(),s.includes("ios")?"iOS":s==="android"?"Android":s==="darwin"?"MacOS":s==="win32"?"Windows":s==="freebsd"?"FreeBSD":s==="openbsd"?"OpenBSD":s==="linux"?"Linux":s?`Other:${s}`:"Unknown");let dn;const gr=()=>dn??(dn=mr());function _r(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Wn(...s){const e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...s)}function qn(s){let e=Symbol.asyncIterator in s?s[Symbol.asyncIterator]():s[Symbol.iterator]();return Wn({start(){},async pull(t){const{done:n,value:r}=await e.next();n?t.close():t.enqueue(r)},async cancel(){var t;await((t=e.return)==null?void 0:t.call(e))}})}function Jn(s){if(s[Symbol.asyncIterator])return s;const e=s.getReader();return{async next(){try{const t=await e.read();return t!=null&&t.done&&e.releaseLock(),t}catch(t){throw e.releaseLock(),t}},async return(){const t=e.cancel();return e.releaseLock(),await t,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function yr(s){var n,r;if(s===null||typeof s!="object")return;if(s[Symbol.asyncIterator]){await((r=(n=s[Symbol.asyncIterator]()).return)==null?void 0:r.call(n));return}const e=s.getReader(),t=e.cancel();e.releaseLock(),await t}const wr=({headers:s,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)}),$t="RFC3986",kt={RFC1738:s=>String(s).replace(/%20/g,"+"),RFC3986:s=>String(s)},br="RFC1738",xr=Array.isArray,Z=(()=>{const s=[];for(let e=0;e<256;++e)s.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return s})(),yt=1024,Sr=(s,e,t,n,r)=>{if(s.length===0)return s;let a=s;if(typeof s=="symbol"?a=Symbol.prototype.toString.call(s):typeof s!="string"&&(a=String(s)),t==="iso-8859-1")return escape(a).replace(/%u[0-9a-f]{4}/gi,function(o){return"%26%23"+parseInt(o.slice(2),16)+"%3B"});let i="";for(let o=0;o=yt?a.slice(o,o+yt):a,d=[];for(let y=0;y=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122||r===br&&(u===40||u===41)){d[d.length]=l.charAt(y);continue}if(u<128){d[d.length]=Z[u];continue}if(u<2048){d[d.length]=Z[192|u>>6]+Z[128|u&63];continue}if(u<55296||u>=57344){d[d.length]=Z[224|u>>12]+Z[128|u>>6&63]+Z[128|u&63];continue}y+=1,u=65536+((u&1023)<<10|l.charCodeAt(y)&1023),d[d.length]=Z[240|u>>18]+Z[128|u>>12&63]+Z[128|u>>6&63]+Z[128|u&63]}i+=d.join("")}return i};function Ar(s){return!s||typeof s!="object"?!1:!!(s.constructor&&s.constructor.isBuffer&&s.constructor.isBuffer(s))}function hn(s,e){if(xr(s)){const t=[];for(let n=0;n"u"&&(p=0)}if(typeof d=="function"?m=d(e,m):m instanceof Date?m=g==null?void 0:g(m):t==="comma"&&ee(m)&&(m=hn(m,function(P){return P instanceof Date?g==null?void 0:g(P):P})),m===null){if(a)return l&&!w?l(e,B.encoder,C,"key",h):e;m=""}if(Rr(m)||Ar(m)){if(l){const P=w?e:l(e,B.encoder,C,"key",h);return[(x==null?void 0:x(P))+"="+(x==null?void 0:x(l(m,B.encoder,C,"value",h)))]}return[(x==null?void 0:x(e))+"="+(x==null?void 0:x(String(m)))]}const k=[];if(typeof m>"u")return k;let I;if(t==="comma"&&ee(m))w&&l&&(m=hn(m,l)),I=[{value:m.length>0?m.join(",")||null:void 0}];else if(ee(d))I=d;else{const P=Object.keys(m);I=y?P.sort(y):P}const F=o?String(e).replace(/\./g,"%2E"):String(e),S=n&&ee(m)&&m.length===1?F+"[]":F;if(r&&ee(m)&&m.length===0)return S+"[]";for(let P=0;P"u"?s.encodeDotInKeys?!0:B.allowDots:!!s.allowDots;return{addQueryPrefix:typeof s.addQueryPrefix=="boolean"?s.addQueryPrefix:B.addQueryPrefix,allowDots:i,allowEmptyArrays:typeof s.allowEmptyArrays=="boolean"?!!s.allowEmptyArrays:B.allowEmptyArrays,arrayFormat:a,charset:e,charsetSentinel:typeof s.charsetSentinel=="boolean"?s.charsetSentinel:B.charsetSentinel,commaRoundTrip:!!s.commaRoundTrip,delimiter:typeof s.delimiter>"u"?B.delimiter:s.delimiter,encode:typeof s.encode=="boolean"?s.encode:B.encode,encodeDotInKeys:typeof s.encodeDotInKeys=="boolean"?s.encodeDotInKeys:B.encodeDotInKeys,encoder:typeof s.encoder=="function"?s.encoder:B.encoder,encodeValuesOnly:typeof s.encodeValuesOnly=="boolean"?s.encodeValuesOnly:B.encodeValuesOnly,filter:r,format:t,formatter:n,serializeDate:typeof s.serializeDate=="function"?s.serializeDate:B.serializeDate,skipNulls:typeof s.skipNulls=="boolean"?s.skipNulls:B.skipNulls,sort:typeof s.sort=="function"?s.sort:null,strictNullHandling:typeof s.strictNullHandling=="boolean"?s.strictNullHandling:B.strictNullHandling}}function kr(s,e={}){let t=s;const n=$r(e);let r,a;typeof n.filter=="function"?(a=n.filter,t=a("",t)):ee(n.filter)&&(a=n.filter,r=a);const i=[];if(typeof t!="object"||t===null)return"";const o=Xn[n.arrayFormat],l=o==="comma"&&n.commaRoundTrip;r||(r=Object.keys(t)),n.sort&&r.sort(n.sort);const d=new WeakMap;for(let g=0;g0?u+y:""}function Er(s){let e=0;for(const r of s)e+=r.length;const t=new Uint8Array(e);let n=0;for(const r of s)t.set(r,n),n+=r.length;return t}let fn;function Dt(s){let e;return(fn??(e=new globalThis.TextEncoder,fn=e.encode.bind(e)))(s)}let mn;function pn(s){let e;return(mn??(e=new globalThis.TextDecoder,mn=e.decode.bind(e)))(s)}var V,K;class dt{constructor(){V.set(this,void 0),K.set(this,void 0),R(this,V,new Uint8Array),R(this,K,null)}decode(e){if(e==null)return[];const t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?Dt(e):e;R(this,V,Er([c(this,V,"f"),t]));const n=[];let r;for(;(r=Or(c(this,V,"f"),c(this,K,"f")))!=null;){if(r.carriage&&c(this,K,"f")==null){R(this,K,r.index);continue}if(c(this,K,"f")!=null&&(r.index!==c(this,K,"f")+1||r.carriage)){n.push(pn(c(this,V,"f").subarray(0,c(this,K,"f")-1))),R(this,V,c(this,V,"f").subarray(c(this,K,"f"))),R(this,K,null);continue}const a=c(this,K,"f")!==null?r.preceding-1:r.preceding,i=pn(c(this,V,"f").subarray(0,a));n.push(i),R(this,V,c(this,V,"f").subarray(r.index)),R(this,K,null)}return n}flush(){return c(this,V,"f").length?this.decode(` +`):[]}}V=new WeakMap,K=new WeakMap;dt.NEWLINE_CHARS=new Set([` +`,"\r"]);dt.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Or(s,e){for(let r=e??0;r({next:()=>{if(a.length===0){const i=n.next();e.push(i),t.push(i)}return a.shift()}});return[new ne(()=>r(e),this.controller),new ne(()=>r(t),this.controller)]}toReadableStream(){const e=this;let t;return Wn({async start(){t=e[Symbol.asyncIterator]()},async pull(n){try{const{value:r,done:a}=await t.next();if(a)return n.close();const i=Dt(JSON.stringify(r)+` +`);n.enqueue(i)}catch(r){n.error(r)}},async cancel(){var n;await((n=t.return)==null?void 0:n.call(t))}})}}async function*Tr(s,e){if(!s.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new v("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new v("Attempted to iterate over a response with no body");const t=new Nr,n=new dt,r=Jn(s.body);for await(const a of Mr(r))for(const i of n.decode(a)){const o=t.decode(i);o&&(yield o)}for(const a of n.flush()){const i=t.decode(a);i&&(yield i)}}async function*Mr(s){let e=new Uint8Array;for await(const t of s){if(t==null)continue;const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?Dt(t):t;let r=new Uint8Array(e.length+n.length);r.set(e),r.set(n,e.length),e=r;let a;for(;(a=Pr(e))!==-1;)yield e.slice(0,a),e=e.slice(a)}e.length>0&&(yield e)}class Nr{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;const a={event:this.event,data:this.data.join(` +`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],a}if(this.chunks.push(e),e.startsWith(":"))return null;let[t,n,r]=jr(e,":");return r.startsWith(" ")&&(r=r.substring(1)),t==="event"?this.event=r:t==="data"&&this.data.push(r),null}}function jr(s,e){const t=s.indexOf(e);return t!==-1?[s.substring(0,t),e,s.substring(t+e.length)]:[s,"",""]}async function Kn(s,e){const{response:t,requestLogID:n,retryOfRequestLogID:r,startTime:a}=e,i=await(async()=>{var u;if(e.options.stream)return X(s).debug("response",t.status,t.url,t.headers,t.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(t,e.controller):ne.fromSSEResponse(t,e.controller);if(t.status===204)return null;if(e.options.__binaryResponse)return t;const o=t.headers.get("content-type"),l=(u=o==null?void 0:o.split(";")[0])==null?void 0:u.trim();if((l==null?void 0:l.includes("application/json"))||(l==null?void 0:l.endsWith("+json"))){const g=await t.json();return Gn(g,t)}return await t.text()})();return X(s).debug(`[${n}] response parsed`,le({retryOfRequestLogID:r,url:t.url,status:t.status,body:i,durationMs:Date.now()-a})),i}function Gn(s,e){return!s||typeof s!="object"||Array.isArray(s)?s:Object.defineProperty(s,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Ie;class ht extends Promise{constructor(e,t,n=Kn){super(r=>{r(null)}),this.responsePromise=t,this.parseResponse=n,Ie.set(this,void 0),R(this,Ie,e)}_thenUnwrap(e){return new ht(c(this,Ie,"f"),this.responsePromise,async(t,n)=>Gn(e(await this.parseResponse(t,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){const[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(c(this,Ie,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}Ie=new WeakMap;var We;class Qn{constructor(e,t,n,r){We.set(this,void 0),R(this,We,e),this.options=r,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const e=this.nextPageRequestOptions();if(!e)throw new v("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await c(this,We,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(We=new WeakMap,Symbol.asyncIterator)](){for await(const e of this.iterPages())for(const t of e.getPaginatedItems())yield t}}class Fr extends ht{constructor(e,t,n){super(e,t,async(r,a)=>new n(r,a.response,await Kn(r,a),a.options))}async*[Symbol.asyncIterator](){const e=await this;for await(const t of e)yield t}}class ft extends Qn{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class L extends Qn{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){var n;const e=this.getPaginatedItems(),t=(n=e[e.length-1])==null?void 0:n.id;return t?{...this.options,query:{...ir(this.options.query),after:t}}:null}}const zn=()=>{var s;if(typeof File>"u"){const{process:e}=globalThis,t=typeof((s=e==null?void 0:e.versions)==null?void 0:s.node)=="string"&&parseInt(e.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(t?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Te(s,e,t){return zn(),new File(s,e??"unknown_file",t)}function Ge(s){return(typeof s=="object"&&s!==null&&("name"in s&&s.name&&String(s.name)||"url"in s&&s.url&&String(s.url)||"filename"in s&&s.filename&&String(s.filename)||"path"in s&&s.path&&String(s.path))||"").split(/[\\/]/).pop()||void 0}const Yn=s=>s!=null&&typeof s=="object"&&typeof s[Symbol.asyncIterator]=="function",fe=async(s,e)=>({...s,body:await Dr(s.body,e)}),gn=new WeakMap;function Lr(s){const e=typeof s=="function"?s:s.fetch,t=gn.get(e);if(t)return t;const n=(async()=>{try{const r="Response"in e?e.Response:(await e("data:,")).constructor,a=new FormData;return a.toString()!==await new r(a).text()}catch{return!0}})();return gn.set(e,n),n}const Dr=async(s,e)=>{if(!await Lr(e))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");const t=new FormData;return await Promise.all(Object.entries(s||{}).map(([n,r])=>Et(t,n,r))),t},Br=s=>s instanceof Blob&&"name"in s,Et=async(s,e,t)=>{if(t!==void 0){if(t==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")s.append(e,String(t));else if(t instanceof Response)s.append(e,Te([await t.blob()],Ge(t)));else if(Yn(t))s.append(e,Te([await new Response(qn(t)).blob()],Ge(t)));else if(Br(t))s.append(e,t,Ge(t));else if(Array.isArray(t))await Promise.all(t.map(n=>Et(s,e+"[]",n)));else if(typeof t=="object")await Promise.all(Object.entries(t).map(([n,r])=>Et(s,`${e}[${n}]`,r)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${t} instead`)}},Zn=s=>s!=null&&typeof s=="object"&&typeof s.size=="number"&&typeof s.type=="string"&&typeof s.text=="function"&&typeof s.slice=="function"&&typeof s.arrayBuffer=="function",Ur=s=>s!=null&&typeof s=="object"&&typeof s.name=="string"&&typeof s.lastModified=="number"&&Zn(s),Wr=s=>s!=null&&typeof s=="object"&&typeof s.url=="string"&&typeof s.blob=="function";async function qr(s,e,t){if(zn(),s=await s,Ur(s))return s instanceof File?s:Te([await s.arrayBuffer()],s.name);if(Wr(s)){const r=await s.blob();return e||(e=new URL(s.url).pathname.split(/[\\/]/).pop()),Te(await Ot(r),e,t)}const n=await Ot(s);if(e||(e=Ge(s)),!(t!=null&&t.type)){const r=n.find(a=>typeof a=="object"&&"type"in a&&a.type);typeof r=="string"&&(t={...t,type:r})}return Te(n,e,t)}async function Ot(s){var t;let e=[];if(typeof s=="string"||ArrayBuffer.isView(s)||s instanceof ArrayBuffer)e.push(s);else if(Zn(s))e.push(s instanceof Blob?s:await s.arrayBuffer());else if(Yn(s))for await(const n of s)e.push(...await Ot(n));else{const n=(t=s==null?void 0:s.constructor)==null?void 0:t.name;throw new Error(`Unexpected data type: ${typeof s}${n?`; constructor: ${n}`:""}${Jr(s)}`)}return e}function Jr(s){return typeof s!="object"||s===null?"":`; props: [${Object.getOwnPropertyNames(s).map(t=>`"${t}"`).join(", ")}]`}class ${constructor(e){this._client=e}}function es(s){return s.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const Xr=(s=es)=>function(t,...n){if(t.length===1)return t[0];let r=!1;const a=t.reduce((y,u,g)=>(/[?#]/.test(u)&&(r=!0),y+u+(g===n.length?"":(r?encodeURIComponent:s)(String(n[g])))),""),i=a.split(/[?#]/,1)[0],o=[],l=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;let d;for(;(d=l.exec(i))!==null;)o.push({start:d.index,length:d[0].length});if(o.length>0){let y=0;const u=o.reduce((g,h)=>{const x=" ".repeat(h.start-y),w="^".repeat(h.length);return y=h.start+h.length,g+x+w},"");throw new v(`Path parameters result in path with invalid segments: +${a} +${u}`)}return a},f=Xr(es);let ts=class extends ${list(e,t={},n){return this._client.getAPIList(f`/chat/completions/${e}/messages`,L,{query:t,...n})}};function Hr(s){return typeof s.parse=="function"}const rt=s=>(s==null?void 0:s.role)==="assistant",ns=s=>(s==null?void 0:s.role)==="tool";var Pt,Qe,ze,Re,$e,Ye,ke,ae,Ee,at,it,we,ss;class Bt{constructor(){Pt.add(this),this.controller=new AbortController,Qe.set(this,void 0),ze.set(this,()=>{}),Re.set(this,()=>{}),$e.set(this,void 0),Ye.set(this,()=>{}),ke.set(this,()=>{}),ae.set(this,{}),Ee.set(this,!1),at.set(this,!1),it.set(this,!1),we.set(this,!1),R(this,Qe,new Promise((e,t)=>{R(this,ze,e,"f"),R(this,Re,t,"f")})),R(this,$e,new Promise((e,t)=>{R(this,Ye,e,"f"),R(this,ke,t,"f")})),c(this,Qe,"f").catch(()=>{}),c(this,$e,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},c(this,Pt,"m",ss).bind(this))},0)}_connected(){this.ended||(c(this,ze,"f").call(this),this._emit("connect"))}get ended(){return c(this,Ee,"f")}get errored(){return c(this,at,"f")}get aborted(){return c(this,it,"f")}abort(){this.controller.abort()}on(e,t){return(c(this,ae,"f")[e]||(c(this,ae,"f")[e]=[])).push({listener:t}),this}off(e,t){const n=c(this,ae,"f")[e];if(!n)return this;const r=n.findIndex(a=>a.listener===t);return r>=0&&n.splice(r,1),this}once(e,t){return(c(this,ae,"f")[e]||(c(this,ae,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{R(this,we,!0),e!=="error"&&this.once("error",n),this.once(e,t)})}async done(){R(this,we,!0),await c(this,$e,"f")}_emit(e,...t){if(c(this,Ee,"f"))return;e==="end"&&(R(this,Ee,!0),c(this,Ye,"f").call(this));const n=c(this,ae,"f")[e];if(n&&(c(this,ae,"f")[e]=n.filter(r=>!r.once),n.forEach(({listener:r})=>r(...t))),e==="abort"){const r=t[0];!c(this,we,"f")&&!(n!=null&&n.length)&&Promise.reject(r),c(this,Re,"f").call(this,r),c(this,ke,"f").call(this,r),this._emit("end");return}if(e==="error"){const r=t[0];!c(this,we,"f")&&!(n!=null&&n.length)&&Promise.reject(r),c(this,Re,"f").call(this,r),c(this,ke,"f").call(this,r),this._emit("end")}}_emitFinal(){}}Qe=new WeakMap,ze=new WeakMap,Re=new WeakMap,$e=new WeakMap,Ye=new WeakMap,ke=new WeakMap,ae=new WeakMap,Ee=new WeakMap,at=new WeakMap,it=new WeakMap,we=new WeakMap,Pt=new WeakSet,ss=function(e){if(R(this,at,!0),e instanceof Error&&e.name==="AbortError"&&(e=new Q),e instanceof Q)return R(this,it,!0),this._emit("abort",e);if(e instanceof v)return this._emit("error",e);if(e instanceof Error){const t=new v(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new v(String(e)))};function Ut(s){return(s==null?void 0:s.$brand)==="auto-parseable-response-format"}function Le(s){return(s==null?void 0:s.$brand)==="auto-parseable-tool"}function Vr(s,e){return!e||!rs(e)?{...s,choices:s.choices.map(t=>({...t,message:{...t.message,parsed:null,...t.message.tool_calls?{tool_calls:t.message.tool_calls}:void 0}}))}:Wt(s,e)}function Wt(s,e){const t=s.choices.map(n=>{var r;if(n.finish_reason==="length")throw new Bn;if(n.finish_reason==="content_filter")throw new Un;return{...n,message:{...n.message,...n.message.tool_calls?{tool_calls:((r=n.message.tool_calls)==null?void 0:r.map(a=>Gr(e,a)))??void 0}:void 0,parsed:n.message.content&&!n.message.refusal?Kr(e,n.message.content):null}}});return{...s,choices:t}}function Kr(s,e){var t,n;return((t=s.response_format)==null?void 0:t.type)!=="json_schema"?null:((n=s.response_format)==null?void 0:n.type)==="json_schema"?"$parseRaw"in s.response_format?s.response_format.$parseRaw(e):JSON.parse(e):null}function Gr(s,e){var n;const t=(n=s.tools)==null?void 0:n.find(r=>{var a;return((a=r.function)==null?void 0:a.name)===e.function.name});return{...e,function:{...e.function,parsed_arguments:Le(t)?t.$parseRaw(e.function.arguments):t!=null&&t.function.strict?JSON.parse(e.function.arguments):null}}}function Qr(s,e){var n;if(!s)return!1;const t=(n=s.tools)==null?void 0:n.find(r=>{var a;return((a=r.function)==null?void 0:a.name)===e.function.name});return Le(t)||(t==null?void 0:t.function.strict)||!1}function rs(s){var e;return Ut(s.response_format)?!0:((e=s.tools)==null?void 0:e.some(t=>Le(t)||t.type==="function"&&t.function.strict===!0))??!1}function zr(s){for(const e of s??[]){if(e.type!=="function")throw new v(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new v(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var H,Tt,ot,Mt,Nt,jt,as,is;const Yr=10;class os extends Bt{constructor(){super(...arguments),H.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){var n;this._chatCompletions.push(e),this._emit("chatCompletion",e);const t=(n=e.choices[0])==null?void 0:n.message;return t&&this._addMessage(t),e}_addMessage(e,t=!0){if("content"in e||(e.content=null),this.messages.push(e),t){if(this._emit("message",e),ns(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(rt(e)&&e.tool_calls)for(const n of e.tool_calls)n.type==="function"&&this._emit("functionToolCall",n.function)}}async finalChatCompletion(){await this.done();const e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new v("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),c(this,H,"m",Tt).call(this)}async finalMessage(){return await this.done(),c(this,H,"m",ot).call(this)}async finalFunctionToolCall(){return await this.done(),c(this,H,"m",Mt).call(this)}async finalFunctionToolCallResult(){return await this.done(),c(this,H,"m",Nt).call(this)}async totalUsage(){return await this.done(),c(this,H,"m",jt).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);const t=c(this,H,"m",ot).call(this);t&&this._emit("finalMessage",t);const n=c(this,H,"m",Tt).call(this);n&&this._emit("finalContent",n);const r=c(this,H,"m",Mt).call(this);r&&this._emit("finalFunctionToolCall",r);const a=c(this,H,"m",Nt).call(this);a!=null&&this._emit("finalFunctionToolCallResult",a),this._chatCompletions.some(i=>i.usage)&&this._emit("totalUsage",c(this,H,"m",jt).call(this))}async _createChatCompletion(e,t,n){const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),c(this,H,"m",as).call(this,t);const a=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Wt(a,t))}async _runChatCompletion(e,t,n){for(const r of t.messages)this._addMessage(r,!1);return await this._createChatCompletion(e,t,n)}async _runTools(e,t,n){var h,x,w;const r="tool",{tool_choice:a="auto",stream:i,...o}=t,l=typeof a!="string"&&((h=a==null?void 0:a.function)==null?void 0:h.name),{maxChatCompletions:d=Yr}=n||{},y=t.tools.map(C=>{if(Le(C)){if(!C.$callback)throw new v("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:C.$callback,name:C.function.name,description:C.function.description||"",parameters:C.function.parameters,parse:C.$parseRaw,strict:!0}}}return C}),u={};for(const C of y)C.type==="function"&&(u[C.function.name||C.function.function.name]=C.function);const g="tools"in t?y.map(C=>C.type==="function"?{type:"function",function:{name:C.function.name||C.function.function.name,parameters:C.function.parameters,description:C.function.description,strict:C.function.strict}}:C):void 0;for(const C of t.messages)this._addMessage(C,!1);for(let C=0;CJSON.stringify(se)).join(", ")}. Please try again`;this._addMessage({role:r,tool_call_id:p,content:M});continue}let F;try{F=Hr(I)?await I.parse(k):k}catch(M){const se=M instanceof Error?M.message:String(M);this._addMessage({role:r,tool_call_id:p,content:se});continue}const S=await I.function(F,this),P=c(this,H,"m",is).call(this,S);if(this._addMessage({role:r,tool_call_id:p,content:P}),l)return}}}}H=new WeakSet,Tt=function(){return c(this,H,"m",ot).call(this).content??null},ot=function(){let e=this.messages.length;for(;e-- >0;){const t=this.messages[e];if(rt(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new v("stream ended without producing a ChatCompletionMessage with role=assistant")},Mt=function(){var e,t;for(let n=this.messages.length-1;n>=0;n--){const r=this.messages[n];if(rt(r)&&((e=r==null?void 0:r.tool_calls)!=null&&e.length))return(t=r.tool_calls.at(-1))==null?void 0:t.function}},Nt=function(){for(let e=this.messages.length-1;e>=0;e--){const t=this.messages[e];if(ns(t)&&t.content!=null&&typeof t.content=="string"&&this.messages.some(n=>{var r;return n.role==="assistant"&&((r=n.tool_calls)==null?void 0:r.some(a=>a.type==="function"&&a.id===t.tool_call_id))}))return t.content}},jt=function(){const e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:t}of this._chatCompletions)t&&(e.completion_tokens+=t.completion_tokens,e.prompt_tokens+=t.prompt_tokens,e.total_tokens+=t.total_tokens);return e},as=function(e){if(e.n!=null&&e.n>1)throw new v("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},is=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};class qt extends os{static runTools(e,t,n){const r=new qt,a={...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"runTools"}};return r._run(()=>r._runTools(e,t,a)),r}_addMessage(e,t=!0){super._addMessage(e,t),rt(e)&&e.content&&this._emit("content",e.content)}}const cs=1,ls=2,us=4,ds=8,hs=16,fs=32,ms=64,ps=128,gs=256,_s=ps|gs,ys=hs|fs|_s|ms,ws=cs|ls|ys,bs=us|ds,Zr=ws|bs,U={STR:cs,NUM:ls,ARR:us,OBJ:ds,NULL:hs,BOOL:fs,NAN:ms,INFINITY:ps,MINUS_INFINITY:gs,INF:_s,SPECIAL:ys,ATOM:ws,COLLECTION:bs,ALL:Zr};class ea extends Error{}class ta extends Error{}function na(s,e=U.ALL){if(typeof s!="string")throw new TypeError(`expecting str, got ${typeof s}`);if(!s.trim())throw new Error(`${s} is empty`);return sa(s.trim(),e)}const sa=(s,e)=>{const t=s.length;let n=0;const r=g=>{throw new ea(`${g} at position ${n}`)},a=g=>{throw new ta(`${g} at position ${n}`)},i=()=>(u(),n>=t&&r("Unexpected end of input"),s[n]==='"'?o():s[n]==="{"?l():s[n]==="["?d():s.substring(n,n+4)==="null"||U.NULL&e&&t-n<4&&"null".startsWith(s.substring(n))?(n+=4,null):s.substring(n,n+4)==="true"||U.BOOL&e&&t-n<4&&"true".startsWith(s.substring(n))?(n+=4,!0):s.substring(n,n+5)==="false"||U.BOOL&e&&t-n<5&&"false".startsWith(s.substring(n))?(n+=5,!1):s.substring(n,n+8)==="Infinity"||U.INFINITY&e&&t-n<8&&"Infinity".startsWith(s.substring(n))?(n+=8,1/0):s.substring(n,n+9)==="-Infinity"||U.MINUS_INFINITY&e&&1{const g=n;let h=!1;for(n++;n{n++,u();const g={};try{for(;s[n]!=="}";){if(u(),n>=t&&U.OBJ&e)return g;const h=o();u(),n++;try{const x=i();Object.defineProperty(g,h,{value:x,writable:!0,enumerable:!0,configurable:!0})}catch(x){if(U.OBJ&e)return g;throw x}u(),s[n]===","&&n++}}catch{if(U.OBJ&e)return g;r("Expected '}' at end of object")}return n++,g},d=()=>{n++;const g=[];try{for(;s[n]!=="]";)g.push(i()),u(),s[n]===","&&n++}catch{if(U.ARR&e)return g;r("Expected ']' at end of array")}return n++,g},y=()=>{if(n===0){s==="-"&&U.NUM&e&&r("Not sure what '-' is");try{return JSON.parse(s)}catch(h){if(U.NUM&e)try{return s[s.length-1]==="."?JSON.parse(s.substring(0,s.lastIndexOf("."))):JSON.parse(s.substring(0,s.lastIndexOf("e")))}catch{}a(String(h))}}const g=n;for(s[n]==="-"&&n++;s[n]&&!",]}".includes(s[n]);)n++;n==t&&!(U.NUM&e)&&r("Unterminated number literal");try{return JSON.parse(s.substring(g,n))}catch{s.substring(g,n)==="-"&&U.NUM&e&&r("Not sure what '-' is");try{return JSON.parse(s.substring(g,s.lastIndexOf("e")))}catch(x){a(String(x))}}},u=()=>{for(;nna(s,U.ALL^U.NUM);var D,re,pe,oe,bt,qe,xt,St,At,Je,Ct,yn;class je extends os{constructor(e){super(),D.add(this),re.set(this,void 0),pe.set(this,void 0),oe.set(this,void 0),R(this,re,e),R(this,pe,[])}get currentChatCompletionSnapshot(){return c(this,oe,"f")}static fromReadableStream(e){const t=new je(null);return t._run(()=>t._fromReadableStream(e)),t}static createChatCompletion(e,t,n){const r=new je(t);return r._run(()=>r._runChatCompletion(e,{...t,stream:!0},{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}async _createChatCompletion(e,t,n){var i;super._createChatCompletion;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),c(this,D,"m",bt).call(this);const a=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(const o of a)c(this,D,"m",xt).call(this,o);if((i=a.controller.signal)!=null&&i.aborted)throw new Q;return this._addChatCompletion(c(this,D,"m",Je).call(this))}async _fromReadableStream(e,t){var i;const n=t==null?void 0:t.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),c(this,D,"m",bt).call(this),this._connected();const r=ne.fromReadableStream(e,this.controller);let a;for await(const o of r)a&&a!==o.id&&this._addChatCompletion(c(this,D,"m",Je).call(this)),c(this,D,"m",xt).call(this,o),a=o.id;if((i=r.controller.signal)!=null&&i.aborted)throw new Q;return this._addChatCompletion(c(this,D,"m",Je).call(this))}[(re=new WeakMap,pe=new WeakMap,oe=new WeakMap,D=new WeakSet,bt=function(){this.ended||R(this,oe,void 0)},qe=function(t){let n=c(this,pe,"f")[t.index];return n||(n={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},c(this,pe,"f")[t.index]=n,n)},xt=function(t){var r,a,i,o,l,d,y,u,g,h,x,w,C,O,m;if(this.ended)return;const n=c(this,D,"m",yn).call(this,t);this._emit("chunk",t,n);for(const _ of t.choices){const p=n.choices[_.index];_.delta.content!=null&&((r=p.message)==null?void 0:r.role)==="assistant"&&((a=p.message)!=null&&a.content)&&(this._emit("content",_.delta.content,p.message.content),this._emit("content.delta",{delta:_.delta.content,snapshot:p.message.content,parsed:p.message.parsed})),_.delta.refusal!=null&&((i=p.message)==null?void 0:i.role)==="assistant"&&((o=p.message)!=null&&o.refusal)&&this._emit("refusal.delta",{delta:_.delta.refusal,snapshot:p.message.refusal}),((l=_.logprobs)==null?void 0:l.content)!=null&&((d=p.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(y=_.logprobs)==null?void 0:y.content,snapshot:((u=p.logprobs)==null?void 0:u.content)??[]}),((g=_.logprobs)==null?void 0:g.refusal)!=null&&((h=p.message)==null?void 0:h.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(x=_.logprobs)==null?void 0:x.refusal,snapshot:((w=p.logprobs)==null?void 0:w.refusal)??[]});const A=c(this,D,"m",qe).call(this,p);p.finish_reason&&(c(this,D,"m",At).call(this,p),A.current_tool_call_index!=null&&c(this,D,"m",St).call(this,p,A.current_tool_call_index));for(const k of _.delta.tool_calls??[])A.current_tool_call_index!==k.index&&(c(this,D,"m",At).call(this,p),A.current_tool_call_index!=null&&c(this,D,"m",St).call(this,p,A.current_tool_call_index)),A.current_tool_call_index=k.index;for(const k of _.delta.tool_calls??[]){const I=(C=p.message.tool_calls)==null?void 0:C[k.index];I!=null&&I.type&&((I==null?void 0:I.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(O=I.function)==null?void 0:O.name,index:k.index,arguments:I.function.arguments,parsed_arguments:I.function.parsed_arguments,arguments_delta:((m=k.function)==null?void 0:m.arguments)??""}):(I==null||I.type,void 0))}}},St=function(t,n){var i,o,l;if(c(this,D,"m",qe).call(this,t).done_tool_calls.has(n))return;const a=(i=t.message.tool_calls)==null?void 0:i[n];if(!a)throw new Error("no tool call snapshot");if(!a.type)throw new Error("tool call snapshot missing `type`");if(a.type==="function"){const d=(l=(o=c(this,re,"f"))==null?void 0:o.tools)==null?void 0:l.find(y=>y.type==="function"&&y.function.name===a.function.name);this._emit("tool_calls.function.arguments.done",{name:a.function.name,index:n,arguments:a.function.arguments,parsed_arguments:Le(d)?d.$parseRaw(a.function.arguments):d!=null&&d.function.strict?JSON.parse(a.function.arguments):null})}else a.type},At=function(t){var r,a;const n=c(this,D,"m",qe).call(this,t);if(t.message.content&&!n.content_done){n.content_done=!0;const i=c(this,D,"m",Ct).call(this);this._emit("content.done",{content:t.message.content,parsed:i?i.$parseRaw(t.message.content):null})}t.message.refusal&&!n.refusal_done&&(n.refusal_done=!0,this._emit("refusal.done",{refusal:t.message.refusal})),(r=t.logprobs)!=null&&r.content&&!n.logprobs_content_done&&(n.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:t.logprobs.content})),(a=t.logprobs)!=null&&a.refusal&&!n.logprobs_refusal_done&&(n.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:t.logprobs.refusal}))},Je=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");const t=c(this,oe,"f");if(!t)throw new v("request ended without sending any chunks");return R(this,oe,void 0),R(this,pe,[]),ra(t,c(this,re,"f"))},Ct=function(){var n;const t=(n=c(this,re,"f"))==null?void 0:n.response_format;return Ut(t)?t:null},yn=function(t){var n,r,a,i;let o=c(this,oe,"f");const{choices:l,...d}=t;o?Object.assign(o,d):o=R(this,oe,{...d,choices:[]});for(const{delta:y,finish_reason:u,index:g,logprobs:h=null,...x}of t.choices){let w=o.choices[g];if(w||(w=o.choices[g]={finish_reason:u,index:g,message:{},logprobs:h,...x}),h)if(!w.logprobs)w.logprobs=Object.assign({},h);else{const{content:k,refusal:I,...F}=h;Object.assign(w.logprobs,F),k&&((n=w.logprobs).content??(n.content=[]),w.logprobs.content.push(...k)),I&&((r=w.logprobs).refusal??(r.refusal=[]),w.logprobs.refusal.push(...I))}if(u&&(w.finish_reason=u,c(this,re,"f")&&rs(c(this,re,"f")))){if(u==="length")throw new Bn;if(u==="content_filter")throw new Un}if(Object.assign(w,x),!y)continue;const{content:C,refusal:O,function_call:m,role:_,tool_calls:p,...A}=y;if(Object.assign(w.message,A),O&&(w.message.refusal=(w.message.refusal||"")+O),_&&(w.message.role=_),m&&(w.message.function_call?(m.name&&(w.message.function_call.name=m.name),m.arguments&&((a=w.message.function_call).arguments??(a.arguments=""),w.message.function_call.arguments+=m.arguments)):w.message.function_call=m),C&&(w.message.content=(w.message.content||"")+C,!w.message.refusal&&c(this,D,"m",Ct).call(this)&&(w.message.parsed=_n(w.message.content))),p){w.message.tool_calls||(w.message.tool_calls=[]);for(const{index:k,id:I,type:F,function:S,...P}of p){const M=(i=w.message.tool_calls)[k]??(i[k]={});Object.assign(M,P),I&&(M.id=I),F&&(M.type=F),S&&(M.function??(M.function={name:S.name??"",arguments:""})),S!=null&&S.name&&(M.function.name=S.name),S!=null&&S.arguments&&(M.function.arguments+=S.arguments,Qr(c(this,re,"f"),M)&&(M.function.parsed_arguments=_n(M.function.arguments)))}}}return o},Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("chunk",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new ne(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function ra(s,e){const{id:t,choices:n,created:r,model:a,system_fingerprint:i,...o}=s,l={...o,id:t,choices:n.map(({message:d,finish_reason:y,index:u,logprobs:g,...h})=>{if(!y)throw new v(`missing finish_reason for choice ${u}`);const{content:x=null,function_call:w,tool_calls:C,...O}=d,m=d.role;if(!m)throw new v(`missing role for choice ${u}`);if(w){const{arguments:_,name:p}=w;if(_==null)throw new v(`missing function_call.arguments for choice ${u}`);if(!p)throw new v(`missing function_call.name for choice ${u}`);return{...h,message:{content:x,function_call:{arguments:_,name:p},role:m,refusal:d.refusal??null},finish_reason:y,index:u,logprobs:g}}return C?{...h,index:u,finish_reason:y,logprobs:g,message:{...O,role:m,content:x,refusal:d.refusal??null,tool_calls:C.map((_,p)=>{const{function:A,type:k,id:I,...F}=_,{arguments:S,name:P,...M}=A||{};if(I==null)throw new v(`missing choices[${u}].tool_calls[${p}].id +${Xe(s)}`);if(k==null)throw new v(`missing choices[${u}].tool_calls[${p}].type +${Xe(s)}`);if(P==null)throw new v(`missing choices[${u}].tool_calls[${p}].function.name +${Xe(s)}`);if(S==null)throw new v(`missing choices[${u}].tool_calls[${p}].function.arguments +${Xe(s)}`);return{...F,id:I,type:k,function:{...M,name:P,arguments:S}}})}}:{...h,message:{...O,content:x,role:m,refusal:d.refusal??null},finish_reason:y,index:u,logprobs:g}}),created:r,model:a,object:"chat.completion",...i?{system_fingerprint:i}:{}};return Vr(l,e)}function Xe(s){return JSON.stringify(s)}class ct extends je{static fromReadableStream(e){const t=new ct(null);return t._run(()=>t._fromReadableStream(e)),t}static runTools(e,t,n){const r=new ct(t),a={...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"runTools"}};return r._run(()=>r._runTools(e,t,a)),r}}let Jt=class extends ${constructor(){super(...arguments),this.messages=new ts(this._client)}create(e,t){return this._client.post("/chat/completions",{body:e,...t,stream:e.stream??!1})}retrieve(e,t){return this._client.get(f`/chat/completions/${e}`,t)}update(e,t,n){return this._client.post(f`/chat/completions/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/chat/completions",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/chat/completions/${e}`,t)}parse(e,t){return zr(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t==null?void 0:t.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(n=>Wt(n,e))}runTools(e,t){return e.stream?ct.runTools(this._client,e,t):qt.runTools(this._client,e,t)}stream(e,t){return je.createChatCompletion(this._client,e,t)}};Jt.Messages=ts;class Xt extends ${constructor(){super(...arguments),this.completions=new Jt(this._client)}}Xt.Completions=Jt;const xs=Symbol("brand.privateNullableHeaders"),wn=Array.isArray;function*aa(s){if(!s)return;if(xs in s){const{values:n,nulls:r}=s;yield*n.entries();for(const a of r)yield[a,null];return}let e=!1,t;s instanceof Headers?t=s.entries():wn(s)?t=s:(e=!0,t=Object.entries(s??{}));for(let n of t){const r=n[0];if(typeof r!="string")throw new TypeError("expected header name to be a string");const a=wn(n[1])?n[1]:[n[1]];let i=!1;for(const o of a)o!==void 0&&(e&&!i&&(i=!0,yield[r,null]),yield[r,o])}}const b=s=>{const e=new Headers,t=new Set;for(const n of s){const r=new Set;for(const[a,i]of aa(n)){const o=a.toLowerCase();r.has(o)||(e.delete(a),r.add(o)),i===null?(e.delete(a),t.add(o)):(e.append(a,i),t.delete(o))}}return{[xs]:!0,values:e,nulls:t}};class Ss extends ${create(e,t){return this._client.post("/audio/speech",{body:e,...t,headers:b([{Accept:"application/octet-stream"},t==null?void 0:t.headers]),__binaryResponse:!0})}}class As extends ${create(e,t){return this._client.post("/audio/transcriptions",fe({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}}class Cs extends ${create(e,t){return this._client.post("/audio/translations",fe({body:e,...t,__metadata:{model:e.model}},this._client))}}class De extends ${constructor(){super(...arguments),this.transcriptions=new As(this._client),this.translations=new Cs(this._client),this.speech=new Ss(this._client)}}De.Transcriptions=As;De.Translations=Cs;De.Speech=Ss;class vs extends ${create(e,t){return this._client.post("/batches",{body:e,...t})}retrieve(e,t){return this._client.get(f`/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/batches",L,{query:e,...t})}cancel(e,t){return this._client.post(f`/batches/${e}/cancel`,t)}}class Is extends ${create(e,t){return this._client.post("/assistants",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/assistants/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/assistants/${e}`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e={},t){return this._client.getAPIList("/assistants",L,{query:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}delete(e,t){return this._client.delete(f`/assistants/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class Rs extends ${create(e,t){return this._client.post("/realtime/sessions",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class $s extends ${create(e,t){return this._client.post("/realtime/transcription_sessions",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class mt extends ${constructor(){super(...arguments),this.sessions=new Rs(this._client),this.transcriptionSessions=new $s(this._client)}}mt.Sessions=Rs;mt.TranscriptionSessions=$s;class ks extends ${create(e,t,n){return this._client.post(f`/threads/${e}/messages`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{thread_id:r}=t;return this._client.get(f`/threads/${r}/messages/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/messages/${e}`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/threads/${e}/messages`,L,{query:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t,n){const{thread_id:r}=t;return this._client.delete(f`/threads/${r}/messages/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Es extends ${retrieve(e,t,n){const{thread_id:r,run_id:a,...i}=t;return this._client.get(f`/threads/${r}/runs/${a}/steps/${e}`,{query:i,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t,n){const{thread_id:r,...a}=t;return this._client.getAPIList(f`/threads/${r}/runs/${e}/steps`,L,{query:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}const ia=s=>{if(typeof Buffer<"u"){const e=Buffer.from(s,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{const e=atob(s),t=e.length,n=new Uint8Array(t);for(let r=0;r{var e,t,n,r;if(typeof globalThis.process<"u")return((e=vt==null?void 0:vt[s])==null?void 0:e.trim())??void 0;if(typeof globalThis.Deno<"u")return(r=(n=(t=globalThis.Deno.env)==null?void 0:t.get)==null?void 0:n.call(t,s))==null?void 0:r.trim()};var q,de,Ft,te,Ze,z,he,be,ue,lt,G,et,tt,Me,Oe,Pe,bn,xn,Sn,An,Cn,vn,In;class Ne extends Bt{constructor(){super(...arguments),q.add(this),Ft.set(this,[]),te.set(this,{}),Ze.set(this,{}),z.set(this,void 0),he.set(this,void 0),be.set(this,void 0),ue.set(this,void 0),lt.set(this,void 0),G.set(this,void 0),et.set(this,void 0),tt.set(this,void 0),Me.set(this,void 0)}[(Ft=new WeakMap,te=new WeakMap,Ze=new WeakMap,z=new WeakMap,he=new WeakMap,be=new WeakMap,ue=new WeakMap,lt=new WeakMap,G=new WeakMap,et=new WeakMap,tt=new WeakMap,Me=new WeakMap,q=new WeakSet,Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("event",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){const t=new de;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){var a;const n=t==null?void 0:t.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),this._connected();const r=ne.fromReadableStream(e,this.controller);for await(const i of r)c(this,q,"m",Oe).call(this,i);if((a=r.controller.signal)!=null&&a.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}toReadableStream(){return new ne(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,r){const a=new de;return a._run(()=>a._runToolAssistantStream(e,t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),a}async _createToolAssistantStream(e,t,n,r){var l;const a=r==null?void 0:r.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort()));const i={...n,stream:!0},o=await e.submitToolOutputs(t,i,{...r,signal:this.controller.signal});this._connected();for await(const d of o)c(this,q,"m",Oe).call(this,d);if((l=o.controller.signal)!=null&&l.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}static createThreadAssistantStream(e,t,n){const r=new de;return r._run(()=>r._threadAssistantStream(e,t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}static createAssistantStream(e,t,n,r){const a=new de;return a._run(()=>a._runAssistantStream(e,t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),a}currentEvent(){return c(this,et,"f")}currentRun(){return c(this,tt,"f")}currentMessageSnapshot(){return c(this,z,"f")}currentRunStepSnapshot(){return c(this,Me,"f")}async finalRunSteps(){return await this.done(),Object.values(c(this,te,"f"))}async finalMessages(){return await this.done(),Object.values(c(this,Ze,"f"))}async finalRun(){if(await this.done(),!c(this,he,"f"))throw Error("Final run was not received.");return c(this,he,"f")}async _createThreadAssistantStream(e,t,n){var o;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort()));const a={...t,stream:!0},i=await e.createAndRun(a,{...n,signal:this.controller.signal});this._connected();for await(const l of i)c(this,q,"m",Oe).call(this,l);if((o=i.controller.signal)!=null&&o.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}async _createAssistantStream(e,t,n,r){var l;const a=r==null?void 0:r.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort()));const i={...n,stream:!0},o=await e.create(t,i,{...r,signal:this.controller.signal});this._connected();for await(const d of o)c(this,q,"m",Oe).call(this,d);if((l=o.controller.signal)!=null&&l.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}static accumulateDelta(e,t){for(const[n,r]of Object.entries(t)){if(!e.hasOwnProperty(n)){e[n]=r;continue}let a=e[n];if(a==null){e[n]=r;continue}if(n==="index"||n==="type"){e[n]=r;continue}if(typeof a=="string"&&typeof r=="string")a+=r;else if(typeof a=="number"&&typeof r=="number")a+=r;else if(_t(a)&&_t(r))a=this.accumulateDelta(a,r);else if(Array.isArray(a)&&Array.isArray(r)){if(a.every(i=>typeof i=="string"||typeof i=="number")){a.push(...r);continue}for(const i of r){if(!_t(i))throw new Error(`Expected array delta entry to be an object but got: ${i}`);const o=i.index;if(o==null)throw console.error(i),new Error("Expected array delta entry to have an `index` property");if(typeof o!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${o}`);const l=a[o];l==null?a.push(i):a[o]=this.accumulateDelta(l,i)}continue}else throw Error(`Unhandled record type: ${n}, deltaValue: ${r}, accValue: ${a}`);e[n]=a}return e}_addRun(e){return e}async _threadAssistantStream(e,t,n){return await this._createThreadAssistantStream(t,e,n)}async _runAssistantStream(e,t,n,r){return await this._createAssistantStream(t,e,n,r)}async _runToolAssistantStream(e,t,n,r){return await this._createToolAssistantStream(t,e,n,r)}}de=Ne,Oe=function(e){if(!this.ended)switch(R(this,et,e),c(this,q,"m",Sn).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":c(this,q,"m",In).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":c(this,q,"m",xn).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":c(this,q,"m",bn).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},Pe=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");if(!c(this,he,"f"))throw Error("Final run has not been received");return c(this,he,"f")},bn=function(e){const[t,n]=c(this,q,"m",Cn).call(this,e,c(this,z,"f"));R(this,z,t),c(this,Ze,"f")[t.id]=t;for(const r of n){const a=t.content[r.index];(a==null?void 0:a.type)=="text"&&this._emit("textCreated",a.text)}switch(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,t),e.data.delta.content)for(const r of e.data.delta.content){if(r.type=="text"&&r.text){let a=r.text,i=t.content[r.index];if(i&&i.type=="text")this._emit("textDelta",a,i.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(r.index!=c(this,be,"f")){if(c(this,ue,"f"))switch(c(this,ue,"f").type){case"text":this._emit("textDone",c(this,ue,"f").text,c(this,z,"f"));break;case"image_file":this._emit("imageFileDone",c(this,ue,"f").image_file,c(this,z,"f"));break}R(this,be,r.index)}R(this,ue,t.content[r.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(c(this,be,"f")!==void 0){const r=e.data.content[c(this,be,"f")];if(r)switch(r.type){case"image_file":this._emit("imageFileDone",r.image_file,c(this,z,"f"));break;case"text":this._emit("textDone",r.text,c(this,z,"f"));break}}c(this,z,"f")&&this._emit("messageDone",e.data),R(this,z,void 0)}},xn=function(e){const t=c(this,q,"m",An).call(this,e);switch(R(this,Me,t),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":const n=e.data.delta;if(n.step_details&&n.step_details.type=="tool_calls"&&n.step_details.tool_calls&&t.step_details.type=="tool_calls")for(const a of n.step_details.tool_calls)a.index==c(this,lt,"f")?this._emit("toolCallDelta",a,t.step_details.tool_calls[a.index]):(c(this,G,"f")&&this._emit("toolCallDone",c(this,G,"f")),R(this,lt,a.index),R(this,G,t.step_details.tool_calls[a.index]),c(this,G,"f")&&this._emit("toolCallCreated",c(this,G,"f")));this._emit("runStepDelta",e.data.delta,t);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":R(this,Me,void 0),e.data.step_details.type=="tool_calls"&&c(this,G,"f")&&(this._emit("toolCallDone",c(this,G,"f")),R(this,G,void 0)),this._emit("runStepDone",e.data,t);break}},Sn=function(e){c(this,Ft,"f").push(e),this._emit("event",e)},An=function(e){switch(e.event){case"thread.run.step.created":return c(this,te,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let t=c(this,te,"f")[e.data.id];if(!t)throw Error("Received a RunStepDelta before creation of a snapshot");let n=e.data;if(n.delta){const r=de.accumulateDelta(t,n.delta);c(this,te,"f")[e.data.id]=r}return c(this,te,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":c(this,te,"f")[e.data.id]=e.data;break}if(c(this,te,"f")[e.data.id])return c(this,te,"f")[e.data.id];throw new Error("No snapshot available")},Cn=function(e,t){let n=[];switch(e.event){case"thread.message.created":return[e.data,n];case"thread.message.delta":if(!t)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let r=e.data;if(r.delta.content)for(const a of r.delta.content)if(a.index in t.content){let i=t.content[a.index];t.content[a.index]=c(this,q,"m",vn).call(this,a,i)}else t.content[a.index]=a,n.push(a);return[t,n];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(t)return[t,n];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},vn=function(e,t){return de.accumulateDelta(t,e)},In=function(e){switch(R(this,tt,e.data),e.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":R(this,he,e.data),c(this,G,"f")&&(this._emit("toolCallDone",c(this,G,"f")),R(this,G,void 0));break}};let Ht=class extends ${constructor(){super(...arguments),this.steps=new Es(this._client)}create(e,t,n){const{include:r,...a}=t;return this._client.post(f`/threads/${e}/runs`,{query:{include:r},body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}retrieve(e,t,n){const{thread_id:r}=t;return this._client.get(f`/threads/${r}/runs/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/runs/${e}`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/threads/${e}/runs`,L,{query:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}cancel(e,t,n){const{thread_id:r}=t;return this._client.post(f`/threads/${r}/runs/${e}/cancel`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t,n);return await this.poll(r.id,{thread_id:e},n)}createAndStream(e,t,n){return Ne.createAssistantStream(e,this._client.beta.threads.runs,t,n)}async poll(e,t,n){var a;const r=b([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const{data:i,response:o}=await this.retrieve(e,t,{...n,headers:{...n==null?void 0:n.headers,...r}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=o.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,t,n){return Ne.createAssistantStream(e,this._client.beta.threads.runs,t,n)}submitToolOutputs(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/runs/${e}/submit_tool_outputs`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}async submitToolOutputsAndPoll(e,t,n){const r=await this.submitToolOutputs(e,t,n);return await this.poll(r.id,t,n)}submitToolOutputsStream(e,t,n){return Ne.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};Ht.Steps=Es;class pt extends ${constructor(){super(...arguments),this.runs=new Ht(this._client),this.messages=new ks(this._client)}create(e={},t){return this._client.post("/threads",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/threads/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/threads/${e}`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t){return this._client.delete(f`/threads/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}createAndRun(e,t){return this._client.post("/threads/runs",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers]),stream:e.stream??!1})}async createAndRunPoll(e,t){const n=await this.createAndRun(e,t);return await this.runs.poll(n.id,{thread_id:n.thread_id},t)}createAndRunStream(e,t){return Ne.createThreadAssistantStream(e,this._client.beta.threads,t)}}pt.Runs=Ht;pt.Messages=ks;class Be extends ${constructor(){super(...arguments),this.realtime=new mt(this._client),this.assistants=new Is(this._client),this.threads=new pt(this._client)}}Be.Realtime=mt;Be.Assistants=Is;Be.Threads=pt;class Os extends ${create(e,t){return this._client.post("/completions",{body:e,...t,stream:e.stream??!1})}}class Ps extends ${retrieve(e,t,n){const{container_id:r}=t;return this._client.get(f`/containers/${r}/files/${e}/content`,{...n,headers:b([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}}let Vt=class extends ${constructor(){super(...arguments),this.content=new Ps(this._client)}create(e,t,n){return this._client.post(f`/containers/${e}/files`,fe({body:t,...n},this._client))}retrieve(e,t,n){const{container_id:r}=t;return this._client.get(f`/containers/${r}/files/${e}`,n)}list(e,t={},n){return this._client.getAPIList(f`/containers/${e}/files`,L,{query:t,...n})}delete(e,t,n){const{container_id:r}=t;return this._client.delete(f`/containers/${r}/files/${e}`,{...n,headers:b([{Accept:"*/*"},n==null?void 0:n.headers])})}};Vt.Content=Ps;class Kt extends ${constructor(){super(...arguments),this.files=new Vt(this._client)}create(e,t){return this._client.post("/containers",{body:e,...t})}retrieve(e,t){return this._client.get(f`/containers/${e}`,t)}list(e={},t){return this._client.getAPIList("/containers",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/containers/${e}`,{...t,headers:b([{Accept:"*/*"},t==null?void 0:t.headers])})}}Kt.Files=Vt;class Ts extends ${create(e,t){const n=!!e.encoding_format;let r=n?e.encoding_format:"base64";n&&X(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);const a=this._client.post("/embeddings",{body:{...e,encoding_format:r},...t});return n?a:(X(this._client).debug("embeddings/decoding base64 embeddings from base64"),a._thenUnwrap(i=>(i&&i.data&&i.data.forEach(o=>{const l=o.embedding;o.embedding=ia(l)}),i)))}}class Ms extends ${retrieve(e,t,n){const{eval_id:r,run_id:a}=t;return this._client.get(f`/evals/${r}/runs/${a}/output_items/${e}`,n)}list(e,t,n){const{eval_id:r,...a}=t;return this._client.getAPIList(f`/evals/${r}/runs/${e}/output_items`,L,{query:a,...n})}}class Gt extends ${constructor(){super(...arguments),this.outputItems=new Ms(this._client)}create(e,t,n){return this._client.post(f`/evals/${e}/runs`,{body:t,...n})}retrieve(e,t,n){const{eval_id:r}=t;return this._client.get(f`/evals/${r}/runs/${e}`,n)}list(e,t={},n){return this._client.getAPIList(f`/evals/${e}/runs`,L,{query:t,...n})}delete(e,t,n){const{eval_id:r}=t;return this._client.delete(f`/evals/${r}/runs/${e}`,n)}cancel(e,t,n){const{eval_id:r}=t;return this._client.post(f`/evals/${r}/runs/${e}`,n)}}Gt.OutputItems=Ms;class Qt extends ${constructor(){super(...arguments),this.runs=new Gt(this._client)}create(e,t){return this._client.post("/evals",{body:e,...t})}retrieve(e,t){return this._client.get(f`/evals/${e}`,t)}update(e,t,n){return this._client.post(f`/evals/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/evals",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/evals/${e}`,t)}}Qt.Runs=Gt;let Ns=class extends ${create(e,t){return this._client.post("/files",fe({body:e,...t},this._client))}retrieve(e,t){return this._client.get(f`/files/${e}`,t)}list(e={},t){return this._client.getAPIList("/files",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/files/${e}`,t)}content(e,t){return this._client.get(f`/files/${e}/content`,{...t,headers:b([{Accept:"application/binary"},t==null?void 0:t.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:t=5e3,maxWait:n=30*60*1e3}={}){const r=new Set(["processed","error","deleted"]),a=Date.now();let i=await this.retrieve(e);for(;!i.status||!r.has(i.status);)if(await Fe(t),i=await this.retrieve(e),Date.now()-a>n)throw new Lt({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return i}};class js extends ${}let Fs=class extends ${run(e,t){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...t})}validate(e,t){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...t})}};class zt extends ${constructor(){super(...arguments),this.graders=new Fs(this._client)}}zt.Graders=Fs;class Ls extends ${create(e,t,n){return this._client.getAPIList(f`/fine_tuning/checkpoints/${e}/permissions`,ft,{body:t,method:"post",...n})}retrieve(e,t={},n){return this._client.get(f`/fine_tuning/checkpoints/${e}/permissions`,{query:t,...n})}delete(e,t,n){const{fine_tuned_model_checkpoint:r}=t;return this._client.delete(f`/fine_tuning/checkpoints/${r}/permissions/${e}`,n)}}let Yt=class extends ${constructor(){super(...arguments),this.permissions=new Ls(this._client)}};Yt.Permissions=Ls;class Ds extends ${list(e,t={},n){return this._client.getAPIList(f`/fine_tuning/jobs/${e}/checkpoints`,L,{query:t,...n})}}class Zt extends ${constructor(){super(...arguments),this.checkpoints=new Ds(this._client)}create(e,t){return this._client.post("/fine_tuning/jobs",{body:e,...t})}retrieve(e,t){return this._client.get(f`/fine_tuning/jobs/${e}`,t)}list(e={},t){return this._client.getAPIList("/fine_tuning/jobs",L,{query:e,...t})}cancel(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/cancel`,t)}listEvents(e,t={},n){return this._client.getAPIList(f`/fine_tuning/jobs/${e}/events`,L,{query:t,...n})}pause(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/pause`,t)}resume(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/resume`,t)}}Zt.Checkpoints=Ds;class xe extends ${constructor(){super(...arguments),this.methods=new js(this._client),this.jobs=new Zt(this._client),this.checkpoints=new Yt(this._client),this.alpha=new zt(this._client)}}xe.Methods=js;xe.Jobs=Zt;xe.Checkpoints=Yt;xe.Alpha=zt;class Bs extends ${}class en extends ${constructor(){super(...arguments),this.graderModels=new Bs(this._client)}}en.GraderModels=Bs;class Us extends ${createVariation(e,t){return this._client.post("/images/variations",fe({body:e,...t},this._client))}edit(e,t){return this._client.post("/images/edits",fe({body:e,...t},this._client))}generate(e,t){return this._client.post("/images/generations",{body:e,...t})}}class Ws extends ${retrieve(e,t){return this._client.get(f`/models/${e}`,t)}list(e){return this._client.getAPIList("/models",ft,e)}delete(e,t){return this._client.delete(f`/models/${e}`,t)}}class qs extends ${create(e,t){return this._client.post("/moderations",{body:e,...t})}}function oa(s,e){return!e||!la(e)?{...s,output_parsed:null,output:s.output.map(t=>t.type==="function_call"?{...t,parsed_arguments:null}:t.type==="message"?{...t,content:t.content.map(n=>({...n,parsed:null}))}:t)}:Js(s,e)}function Js(s,e){const t=s.output.map(r=>{if(r.type==="function_call")return{...r,parsed_arguments:ha(e,r)};if(r.type==="message"){const a=r.content.map(i=>i.type==="output_text"?{...i,parsed:ca(e,i.text)}:i);return{...r,content:a}}return r}),n=Object.assign({},s,{output:t});return Object.getOwnPropertyDescriptor(s,"output_text")||Xs(n),Object.defineProperty(n,"output_parsed",{enumerable:!0,get(){for(const r of n.output)if(r.type==="message"){for(const a of r.content)if(a.type==="output_text"&&a.parsed!==null)return a.parsed}return null}}),n}function ca(s,e){var t,n,r,a;return((n=(t=s.text)==null?void 0:t.format)==null?void 0:n.type)!=="json_schema"?null:"$parseRaw"in((r=s.text)==null?void 0:r.format)?((a=s.text)==null?void 0:a.format).$parseRaw(e):JSON.parse(e)}function la(s){var e;return!!Ut((e=s.text)==null?void 0:e.format)}function ua(s){return(s==null?void 0:s.$brand)==="auto-parseable-tool"}function da(s,e){return s.find(t=>t.type==="function"&&t.name===e)}function ha(s,e){const t=da(s.tools??[],e.name);return{...e,...e,parsed_arguments:ua(t)?t.$parseRaw(e.arguments):t!=null&&t.strict?JSON.parse(e.arguments):null}}function Xs(s){const e=[];for(const t of s.output)if(t.type==="message")for(const n of t.content)n.type==="output_text"&&e.push(n.text);s.output_text=e.join("")}var ge,He,ce,Ve,Rn,$n,kn,En;class tn extends Bt{constructor(e){super(),ge.add(this),He.set(this,void 0),ce.set(this,void 0),Ve.set(this,void 0),R(this,He,e)}static createResponse(e,t,n){const r=new tn(t);return r._run(()=>r._createOrRetrieveResponse(e,t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}async _createOrRetrieveResponse(e,t,n){var o;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),c(this,ge,"m",Rn).call(this);let a,i=null;"response_id"in t?(a=await e.responses.retrieve(t.response_id,{stream:!0},{...n,signal:this.controller.signal,stream:!0}),i=t.starting_after??null):a=await e.responses.create({...t,stream:!0},{...n,signal:this.controller.signal}),this._connected();for await(const l of a)c(this,ge,"m",$n).call(this,l,i);if((o=a.controller.signal)!=null&&o.aborted)throw new Q;return c(this,ge,"m",kn).call(this)}[(He=new WeakMap,ce=new WeakMap,Ve=new WeakMap,ge=new WeakSet,Rn=function(){this.ended||R(this,ce,void 0)},$n=function(t,n){if(this.ended)return;const r=(i,o)=>{(n==null||o.sequence_number>n)&&this._emit(i,o)},a=c(this,ge,"m",En).call(this,t);switch(r("event",t),t.type){case"response.output_text.delta":{const i=a.output[t.output_index];if(!i)throw new v(`missing output at index ${t.output_index}`);if(i.type==="message"){const o=i.content[t.content_index];if(!o)throw new v(`missing content at index ${t.content_index}`);if(o.type!=="output_text")throw new v(`expected content to be 'output_text', got ${o.type}`);r("response.output_text.delta",{...t,snapshot:o.text})}break}case"response.function_call_arguments.delta":{const i=a.output[t.output_index];if(!i)throw new v(`missing output at index ${t.output_index}`);i.type==="function_call"&&r("response.function_call_arguments.delta",{...t,snapshot:i.arguments});break}default:r(t.type,t);break}},kn=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");const t=c(this,ce,"f");if(!t)throw new v("request ended without sending any events");R(this,ce,void 0);const n=fa(t,c(this,He,"f"));return R(this,Ve,n),n},En=function(t){let n=c(this,ce,"f");if(!n){if(t.type!=="response.created")throw new v(`When snapshot hasn't been set yet, expected 'response.created' event, got ${t.type}`);return n=R(this,ce,t.response),n}switch(t.type){case"response.output_item.added":{n.output.push(t.item);break}case"response.content_part.added":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);r.type==="message"&&r.content.push(t.part);break}case"response.output_text.delta":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);if(r.type==="message"){const a=r.content[t.content_index];if(!a)throw new v(`missing content at index ${t.content_index}`);if(a.type!=="output_text")throw new v(`expected content to be 'output_text', got ${a.type}`);a.text+=t.delta}break}case"response.function_call_arguments.delta":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);r.type==="function_call"&&(r.arguments+=t.delta);break}case"response.completed":{R(this,ce,t.response);break}}return n},Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("event",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const e=c(this,Ve,"f");if(!e)throw new v("stream ended without producing a ChatCompletion");return e}}function fa(s,e){return oa(s,e)}class Hs extends ${list(e,t={},n){return this._client.getAPIList(f`/responses/${e}/input_items`,L,{query:t,...n})}}class nn extends ${constructor(){super(...arguments),this.inputItems=new Hs(this._client)}create(e,t){return this._client.post("/responses",{body:e,...t,stream:e.stream??!1})._thenUnwrap(n=>("object"in n&&n.object==="response"&&Xs(n),n))}retrieve(e,t={},n){return this._client.get(f`/responses/${e}`,{query:t,...n,stream:(t==null?void 0:t.stream)??!1})}delete(e,t){return this._client.delete(f`/responses/${e}`,{...t,headers:b([{Accept:"*/*"},t==null?void 0:t.headers])})}parse(e,t){return this._client.responses.create(e,t)._thenUnwrap(n=>Js(n,e))}stream(e,t){return tn.createResponse(this._client,e,t)}cancel(e,t){return this._client.post(f`/responses/${e}/cancel`,{...t,headers:b([{Accept:"*/*"},t==null?void 0:t.headers])})}}nn.InputItems=Hs;class Vs extends ${create(e,t,n){return this._client.post(f`/uploads/${e}/parts`,fe({body:t,...n},this._client))}}class sn extends ${constructor(){super(...arguments),this.parts=new Vs(this._client)}create(e,t){return this._client.post("/uploads",{body:e,...t})}cancel(e,t){return this._client.post(f`/uploads/${e}/cancel`,t)}complete(e,t,n){return this._client.post(f`/uploads/${e}/complete`,{body:t,...n})}}sn.Parts=Vs;const ma=async s=>{const e=await Promise.allSettled(s),t=e.filter(r=>r.status==="rejected");if(t.length){for(const r of t)console.error(r.reason);throw new Error(`${t.length} promise(s) failed - see the above errors`)}const n=[];for(const r of e)r.status==="fulfilled"&&n.push(r.value);return n};class Ks extends ${create(e,t,n){return this._client.post(f`/vector_stores/${e}/file_batches`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{vector_store_id:r}=t;return this._client.get(f`/vector_stores/${r}/file_batches/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}cancel(e,t,n){const{vector_store_id:r}=t;return this._client.post(f`/vector_stores/${r}/file_batches/${e}/cancel`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t);return await this.poll(e,r.id,n)}listFiles(e,t,n){const{vector_store_id:r,...a}=t;return this._client.getAPIList(f`/vector_stores/${r}/file_batches/${e}/files`,L,{query:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async poll(e,t,n){var a;const r=b([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const{data:i,response:o}=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse();switch(i.status){case"in_progress":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=o.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:t,fileIds:n=[]},r){if(t==null||t.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const a=(r==null?void 0:r.maxConcurrency)??5,i=Math.min(a,t.length),o=this._client,l=t.values(),d=[...n];async function y(g){for(let h of g){const x=await o.files.create({file:h,purpose:"assistants"},r);d.push(x.id)}}const u=Array(i).fill(l).map(y);return await ma(u),await this.createAndPoll(e,{file_ids:d})}}class Gs extends ${create(e,t,n){return this._client.post(f`/vector_stores/${e}/files`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{vector_store_id:r}=t;return this._client.get(f`/vector_stores/${r}/files/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{vector_store_id:r,...a}=t;return this._client.post(f`/vector_stores/${r}/files/${e}`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/vector_stores/${e}/files`,L,{query:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t,n){const{vector_store_id:r}=t;return this._client.delete(f`/vector_stores/${r}/files/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t,n);return await this.poll(e,r.id,n)}async poll(e,t,n){var a;const r=b([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const i=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse(),o=i.data;switch(o.status){case"in_progress":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=i.response.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"failed":case"completed":return o}}}async upload(e,t,n){const r=await this._client.files.create({file:t,purpose:"assistants"},n);return this.create(e,{file_id:r.id},n)}async uploadAndPoll(e,t,n){const r=await this.upload(e,t,n);return await this.poll(e,r.id,n)}content(e,t,n){const{vector_store_id:r}=t;return this._client.getAPIList(f`/vector_stores/${r}/files/${e}/content`,ft,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class gt extends ${constructor(){super(...arguments),this.files=new Gs(this._client),this.fileBatches=new Ks(this._client)}create(e,t){return this._client.post("/vector_stores",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/vector_stores/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/vector_stores/${e}`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e={},t){return this._client.getAPIList("/vector_stores",L,{query:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}delete(e,t){return this._client.delete(f`/vector_stores/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}search(e,t,n){return this._client.getAPIList(f`/vector_stores/${e}/search`,ft,{body:t,method:"post",...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}gt.Files=Gs;gt.FileBatches=Ks;var rn,nt;class T{constructor({baseURL:e=Ce("OPENAI_BASE_URL"),apiKey:t=Ce("OPENAI_API_KEY"),organization:n=Ce("OPENAI_ORG_ID")??null,project:r=Ce("OPENAI_PROJECT_ID")??null,...a}={}){if(nt.set(this,void 0),this.completions=new Os(this),this.chat=new Xt(this),this.embeddings=new Ts(this),this.files=new Ns(this),this.images=new Us(this),this.audio=new De(this),this.moderations=new qs(this),this.models=new Ws(this),this.fineTuning=new xe(this),this.graders=new en(this),this.vectorStores=new gt(this),this.beta=new Be(this),this.batches=new vs(this),this.uploads=new sn(this),this.responses=new nn(this),this.evals=new Qt(this),this.containers=new Kt(this),t===void 0)throw new v("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const i={apiKey:t,organization:n,project:r,...a,baseURL:e||"https://api.openai.com/v1"};if(!i.dangerouslyAllowBrowser&&hr())throw new v(`It looks like you're running in a browser-like environment. + +This is disabled by default, as it risks exposing your secret API credentials to attackers. +If you understand the risks and have appropriate mitigations in place, +you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g., + +new OpenAI({ apiKey, dangerouslyAllowBrowser: true }); + +https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety +`);this.baseURL=i.baseURL,this.timeout=i.timeout??rn.DEFAULT_TIMEOUT,this.logger=i.logger??console;const o="warn";this.logLevel=o,this.logLevel=on(i.logLevel,"ClientOptions.logLevel",this)??on(Ce("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??o,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??_r(),R(this,nt,wr),this._options=i,this.apiKey=t,this.organization=n,this.project=r}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){}authHeaders(e){return b([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return kr(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${ye}`}defaultIdempotencyKey(){return`stainless-node-retry-${On()}`}makeStatusError(e,t,n,r){return J.generate(e,t,n,r)}buildURL(e,t){const n=ar(e)?new URL(e):new URL(this.baseURL+(this.baseURL.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),r=this.defaultQuery();return or(r)||(t={...r,...t}),typeof t=="object"&&t&&!Array.isArray(t)&&(n.search=this.stringifyQuery(t)),n.toString()}async prepareOptions(e){}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(r=>({method:e,path:t,...r})))}request(e,t=null){return new ht(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){var O,m;const r=await e,a=r.maxRetries??this.maxRetries;t==null&&(t=a),await this.prepareOptions(r);const{req:i,url:o,timeout:l}=this.buildRequest(r,{retryCount:a-t});await this.prepareRequest(i,{url:o,options:r});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),y=n===void 0?"":`, retryOf: ${n}`,u=Date.now();if(X(this).debug(`[${d}] sending request`,le({retryOfRequestLogID:n,method:r.method,url:o,options:r,headers:i.headers})),(O=r.signal)!=null&&O.aborted)throw new Q;const g=new AbortController,h=await this.fetchWithTimeout(o,i,l,g).catch(Rt),x=Date.now();if(h instanceof Error){const _=`retrying, ${t} attempts remaining`;if((m=r.signal)!=null&&m.aborted)throw new Q;const p=It(h)||/timed? ?out/i.test(String(h)+("cause"in h?String(h.cause):""));if(t)return X(this).info(`[${d}] connection ${p?"timed out":"failed"} - ${_}`),X(this).debug(`[${d}] connection ${p?"timed out":"failed"} (${_})`,le({retryOfRequestLogID:n,url:o,durationMs:x-u,message:h.message})),this.retryRequest(r,t,n??d);throw X(this).info(`[${d}] connection ${p?"timed out":"failed"} - error; no more retries left`),X(this).debug(`[${d}] connection ${p?"timed out":"failed"} (error; no more retries left)`,le({retryOfRequestLogID:n,url:o,durationMs:x-u,message:h.message})),p?new Lt:new ut({cause:h})}const w=[...h.headers.entries()].filter(([_])=>_==="x-request-id").map(([_,p])=>", "+_+": "+JSON.stringify(p)).join(""),C=`[${d}${y}${w}] ${i.method} ${o} ${h.ok?"succeeded":"failed"} with status ${h.status} in ${x-u}ms`;if(!h.ok){const _=this.shouldRetry(h);if(t&&_){const S=`retrying, ${t} attempts remaining`;return await yr(h.body),X(this).info(`${C} - ${S}`),X(this).debug(`[${d}] response error (${S})`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:x-u})),this.retryRequest(r,t,n??d,h.headers)}const p=_?"error; no more retries left":"error; not retryable";X(this).info(`${C} - ${p}`);const A=await h.text().catch(S=>Rt(S).message),k=ur(A),I=k?void 0:A;throw X(this).debug(`[${d}] response error (${p})`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,message:I,durationMs:Date.now()-u})),this.makeStatusError(h.status,k,I,h.headers)}return X(this).info(C),X(this).debug(`[${d}] response start`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:x-u})),{response:h,options:r,controller:g,requestLogID:d,retryOfRequestLogID:n,startTime:u}}getAPIList(e,t,n){return this.requestAPIList(t,{method:"get",path:e,...n})}requestAPIList(e,t){const n=this.makeRequest(t,null,void 0);return new Fr(this,n,e)}async fetchWithTimeout(e,t,n,r){const{signal:a,method:i,...o}=t||{};a&&a.addEventListener("abort",()=>r.abort());const l=setTimeout(()=>r.abort(),n),d=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body=="object"&&o.body!==null&&Symbol.asyncIterator in o.body,y={signal:r.signal,...d?{duplex:"half"}:{},method:"GET",...o};i&&(y.method=i.toUpperCase());try{return await this.fetch.call(void 0,e,y)}finally{clearTimeout(l)}}shouldRetry(e){const t=e.headers.get("x-should-retry");return t==="true"?!0:t==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let a;const i=r==null?void 0:r.get("retry-after-ms");if(i){const l=parseFloat(i);Number.isNaN(l)||(a=l)}const o=r==null?void 0:r.get("retry-after");if(o&&!a){const l=parseFloat(o);Number.isNaN(l)?a=Date.parse(o)-Date.now():a=l*1e3}if(!(a&&0<=a&&a<60*1e3)){const l=e.maxRetries??this.maxRetries;a=this.calculateDefaultRetryTimeoutMillis(t,l)}return await Fe(a),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){const a=t-e,i=Math.min(.5*Math.pow(2,a),8),o=1-Math.random()*.25;return i*o*1e3}buildRequest(e,{retryCount:t=0}={}){const n={...e},{method:r,path:a,query:i}=n,o=this.buildURL(a,i);"timeout"in n&&lr("timeout",n.timeout),n.timeout=n.timeout??this.timeout;const{bodyHeaders:l,body:d}=this.buildBody({options:n}),y=this.buildHeaders({options:e,method:r,bodyHeaders:l,retryCount:t});return{req:{method:r,headers:y,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&d instanceof globalThis.ReadableStream&&{duplex:"half"},...d&&{body:d},...this.fetchOptions??{},...n.fetchOptions??{}},url:o,timeout:n.timeout}}buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let a={};this.idempotencyHeader&&t!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),a[this.idempotencyHeader]=e.idempotencyKey);const i=b([a,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...gr(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};const n=b([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:qn(e)}:c(this,nt,"f").call(this,{body:e,headers:n})}}rn=T,nt=new WeakMap;T.OpenAI=rn;T.DEFAULT_TIMEOUT=6e5;T.OpenAIError=v;T.APIError=J;T.APIConnectionError=ut;T.APIConnectionTimeoutError=Lt;T.APIUserAbortError=Q;T.NotFoundError=Nn;T.ConflictError=jn;T.RateLimitError=Ln;T.BadRequestError=Pn;T.AuthenticationError=Tn;T.InternalServerError=Dn;T.PermissionDeniedError=Mn;T.UnprocessableEntityError=Fn;T.toFile=qr;T.Completions=Os;T.Chat=Xt;T.Embeddings=Ts;T.Files=Ns;T.Images=Us;T.Audio=De;T.Moderations=qs;T.Models=Ws;T.FineTuning=xe;T.Graders=en;T.VectorStores=gt;T.Beta=Be;T.Batches=vs;T.Uploads=sn;T.Responses=nn;T.Evals=Qt;T.Containers=Kt;const pa=Zs(()=>import("./docs-BrInh2Pn.js"),[],import.meta.url);let Ke=null;async function ga(s){if(Ke)return Ke;const e=await s.getObjectViewSystem("state","","香"),t=await s.getObjectViewSystem("channel","","香"),n=await s.getObjectViewSystem("device","","香"),r=await s.getObjectViewSystem("folder","","香"),a=await s.getObjectViewSystem("enum","","香");return Ke=Object.assign(e,t,n,r,a),Ke}function _e(s,e){return s&&typeof s=="object"?s[e]||s.en:s||""}async function _a(s){var x,w,C,O;const e=W.I18n.getLanguage(),t=await ga(s),n=Object.keys(t).sort(),r=new er,a=[],i=["UNREACH_STICKY"],o=[tr.Types.info],l=[],d=[],y=[],u=[];n.forEach(m=>{var _,p,A;((_=t[m])==null?void 0:_.type)==="enum"?l.push(m):(A=(p=t[m])==null?void 0:p.common)!=null&&A.smartName&&u.push(m)}),l.forEach(m=>{m.startsWith("enum.rooms.")?d.push(m):m.startsWith("enum.functions.")&&y.push(m);const _=t[m].common.members;_!=null&&_.length&&_.forEach(p=>{t[p]&&(u.includes(p)||u.push(p))})});const g={id:"",objects:t,_keysOptional:n,_usedIdsOptional:a,ignoreIndicators:i,excludedTypes:o},h=[];u.forEach(m=>{g.id=m;const _=r.detect(g);_&&_.forEach(p=>{var me;const A=(me=p.states.find(N=>N.id))==null?void 0:me.id;if(!A||h.find(N=>N.id===A))return;const k=t[A],I={id:A,name:_e(k.common.name,e),type:k.type,deviceType:p.type,states:p.states.filter(N=>N.id).map(N=>({id:N.id,name:N.name,role:N.defaultRole,type:t[N.id].common.type,unit:t[N.id].common.unit,read:t[N.id].common.read===void 0?!0:t[N.id].common.read,write:t[N.id].common.write===void 0?!0:t[N.id].common.write}))},F=A.split(".");let S,P;(k.type==="channel"||k.type==="state")&&(F.pop(),S=F.join("."),t[S]&&(t[S].type==="channel"||t[S].type==="folder")?(F.pop(),P=F.join("."),(!t[P]||t[P].type!=="device"&&t[S].type!=="folder")&&(P=void 0)):S=void 0);const M=d.find(N=>{var ie,Se,Ae;return(ie=t[N].common.members)!=null&&ie.includes(A)||S&&((Se=t[N].common.members)!=null&&Se.includes(S))?!0:P&&((Ae=t[N].common.members)==null?void 0:Ae.includes(P))});M&&(I.room=_e(t[M].common.name,e));const se=y.find(N=>{var ie,Se,Ae;return(ie=t[N].common.members)!=null&&ie.includes(A)||S&&((Se=t[N].common.members)!=null&&Se.includes(S))?!0:P&&((Ae=t[N].common.members)==null?void 0:Ae.includes(P))});se&&(I.function=_e(t[se].common.name,e)),h.push(I)})});for(let m=0;m(await pa).default,wa={ru:"Russian",en:"English",de:"German",es:"Spanish",fr:"French",it:"Italian",pl:"Polish",nl:"Dutch",pt:"Portuguese",uk:"Ukrainian","zh-cn":"Chinese"},Fa=s=>{const[e,t]=Y.useState(window.localStorage.getItem("openai-question")||""),[n,r]=Y.useState(""),[a,i]=Y.useState(!1),[o,l]=Y.useState(!1),[d,y]=Y.useState(window.localStorage.getItem("openai-model")||"gpt-4o"),[u,g]=Y.useState(!1),h=Y.useRef(null),x=Y.useRef(null),w=Y.useRef(null),C=Y.useCallback(async()=>{var p;let O;h.current?O=h.current:(O=await _a(s.socket),h.current=O,console.log(`devices: ${JSON.stringify(O,null,2)}`));let m;if(x.current)m=x.current;else{const A=Object.keys(s.runningInstances);for(let k=0;kM.trim());for(;P[0]==="";)P.shift();S=`${P.map(M=>`// ${M}`).join(` +`)} +${S}`}console.log(I),r(S||"")}catch(A){console.log(JSON.stringify(A)),A.error&&l(A.error.message),console.error(`Cannot request: ${A}, ${JSON.stringify(A.error||A,null,2)}`)}i(!1)},[e,d,s.runningInstances,s.socket]);return E.jsxs(j.Dialog,{maxWidth:"lg",sx:{"& .MuiDialog-paper":{height:"calc(100% - 100px)"}},open:!0,onClose:()=>s.onClose(),fullWidth:!0,children:[u&&E.jsxs(j.Dialog,{maxWidth:"lg",open:!0,onClose:()=>g(!1),fullWidth:!0,children:[E.jsx(j.DialogTitle,{children:W.I18n.t("No Chat GPT Key found")}),E.jsxs(j.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8},children:[E.jsx("div",{children:W.I18n.t("You have to enter OpenAI API key in the configuration of javascript adapter.")}),E.jsx(j.Button,{variant:"contained",onClick:()=>{const O=Object.keys(s.runningInstances);window.open(`../../#tab-instances/config/${O[0]||"system.adapter.javascript.0"}`,"_blank"),g(!1)},children:W.I18n.t("Open configuration")})]}),E.jsx(j.DialogActions,{children:E.jsx(j.Button,{variant:"contained",startIcon:E.jsx(an,{}),onClick:()=>g(!1),children:W.I18n.t("Close")})})]}),E.jsx(j.DialogTitle,{children:W.I18n.t("AI code generator")}),E.jsxs(j.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8,height:"100%"},children:[E.jsx("div",{children:E.jsx(j.TextField,{variant:"standard",multiline:!0,autoFocus:!0,disabled:a,fullWidth:!0,onKeyUp:O=>{O.key==="Enter"&&O.ctrlKey&&C()},label:W.I18n.t("Enter your question"),helperText:W.I18n.t("Press Ctrl+Enter to get the answer"),value:e,onChange:O=>{window.localStorage.setItem("openai-question",O.target.value),t(O.target.value)}})}),E.jsxs("div",{style:{display:"flex",alignItems:"baseline"},children:[E.jsx(j.Button,{variant:"contained",disabled:a||!e,startIcon:E.jsx(sr,{}),onClick:async()=>C(),children:a?E.jsx(j.CircularProgress,{size:24}):W.I18n.t("Ask")}),E.jsxs(j.FormControl,{style:{width:150,marginLeft:20},variant:"standard",children:[E.jsx(j.InputLabel,{children:W.I18n.t("Model")}),E.jsxs(j.Select,{variant:"standard",value:d,onChange:O=>{window.localStorage.setItem("openai-model",O.target.value),o&&l(!1),y(O.target.value)},children:[E.jsx(j.MenuItem,{value:"gpt-4o",children:"GPT-4o"}),E.jsx(j.MenuItem,{value:"gpt-4-turbo",children:"GPT-4 Turbo"}),E.jsx(j.MenuItem,{value:"gpt-4-32k",children:"GPT-4 32k"}),E.jsx(j.MenuItem,{value:"gpt-4",children:"GPT-4"}),E.jsx(j.MenuItem,{value:"gpt-3.5-turbo-16k",children:"GPT-3.5 Turbo"})]})]})]}),E.jsx("div",{children:W.I18n.t("Result")}),E.jsx("div",{style:{height:"calc(100% - 155px)"},children:o?E.jsx("div",{style:{color:s.themeType==="dark"?"#984242":"#bb0000"},children:o}):E.jsx(nr,{triggerPrettier:1,adapterName:s.adapterName,runningInstances:s.runningInstances,style:{height:"100%",width:"100%",resize:"none"},name:"ai",socket:s.socket,readOnly:!0,checkJs:!0,code:n,isDark:s.themeType==="dark",language:s.language||"javascript"})})]}),E.jsxs(j.DialogActions,{children:[E.jsx(j.Button,{color:"grey",variant:"outlined",disabled:!n,startIcon:E.jsx(Ys,{}),onClick:()=>{W.Utils.copyToClipboard(n),window.alert(W.I18n.t("Copied"))},children:W.I18n.t("Copy to clipboard")}),E.jsx(j.Button,{color:"primary",variant:"contained",disabled:!n||o,startIcon:E.jsx(zs,{}),onClick:()=>{s.onAddCode(n),s.onClose()},children:W.I18n.t("Use generated code")}),E.jsx(j.Button,{color:"grey",variant:"contained",startIcon:E.jsx(an,{}),onClick:()=>s.onClose(),children:W.I18n.t("Close")})]})]})};export{Fa as default}; diff --git a/admin/assets/Save-BSBgRX7g.js b/admin/assets/Save-BSBgRX7g.js new file mode 100644 index 000000000..f14262b56 --- /dev/null +++ b/admin/assets/Save-BSBgRX7g.js @@ -0,0 +1 @@ +import{c,j as s}from"./createSvgIcon-DMsh-YeH.js";const o=c(s.jsx("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save");export{o as I}; diff --git a/admin/assets/ScriptEditor-DCULXCiS.js b/admin/assets/ScriptEditor-DCULXCiS.js new file mode 100644 index 000000000..345393fc7 --- /dev/null +++ b/admin/assets/ScriptEditor-DCULXCiS.js @@ -0,0 +1,2 @@ +import{j as e}from"./createSvgIcon-DMsh-YeH.js";import{R as i}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as r,I as n}from"./index-f32XoI0M.js";import{i as a}from"./index-hex25_NL.js";import l from"./ScriptEditorVanillaMonaco-CZnuN4bN.js";import{I as c}from"./Save-BSBgRX7g.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";const o={textArea:{width:"calc(100% - 10px)",resize:"none"},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"},args:s=>({color:s.palette.mode==="dark"?"white":"black",height:30,width:"100%",fontSize:16}),argsTitle:s=>({color:s.palette.mode==="dark"?"white":"black",fontWeight:"bold"})};class k extends i.Component{constructor(t){super(t),this.state={changed:!1,source:!t.source&&t.isReturn?` +return false`:t.source}}componentDidMount(){setTimeout(()=>{var t;try{(t=window.document.getElementById("source-text-area"))==null||t.focus()}catch{}},100)}handleCancel(){this.props.onClose(!1)}handleOk(){(!this.props.isReturn||this.state.source.includes("return "))&&this.props.onClose(this.state.source)}onChange(t){this.setState({changed:!0,source:t})}render(){return e.jsxs(r.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":o.dialog},fullWidth:!0,open:!0,"aria-labelledby":"source-dialog-title",children:[e.jsx(r.DialogTitle,{id:"source-dialog-title",children:a.I18n.t("Function editor")}),e.jsxs(r.DialogContent,{style:o.fullHeight,children:[this.props.args&&e.jsxs(r.Box,{sx:o.args,children:[e.jsx(r.Box,{component:"span",sx:o.argsTitle,children:a.I18n.t("function (")}),this.props.args,e.jsx(r.Box,{component:"span",sx:o.argsTitle,children:")"})]},"arguments"),e.jsx(l,{triggerPrettier:1,adapterName:this.props.adapterName,runningInstances:this.props.runningInstances,style:{...o.textArea,height:this.props.args?"calc(100% - 30px)":"100%"},name:"blockly",socket:this.props.socket,readOnly:!1,checkJs:!1,changed:this.state.changed,code:this.state.source,isDark:this.props.themeType==="dark",onChange:t=>this.onChange(t),language:"javascript"},"scriptEditor")]}),e.jsxs(r.DialogActions,{children:[e.jsx(r.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:e.jsx(c,{}),children:a.I18n.t("Save")}),e.jsx(r.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:e.jsx(n,{}),children:a.I18n.t("Cancel")})]})]})}}export{k as default}; diff --git a/admin/assets/ScriptEditorVanillaMonaco-CZnuN4bN.js b/admin/assets/ScriptEditorVanillaMonaco-CZnuN4bN.js new file mode 100644 index 000000000..8c91cd9bc --- /dev/null +++ b/admin/assets/ScriptEditorVanillaMonaco-CZnuN4bN.js @@ -0,0 +1 @@ +import{j as n}from"./createSvgIcon-DMsh-YeH.js";import{R as S}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as p,o as b,aA as C}from"./index-f32XoI0M.js";import{i as f}from"./index-hex25_NL.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";function v(w){return/^script\.js\.global\./.test(w)}let O=0;function E(w){const t=/\x1b\[[0-9;]*m/g;return w.replace(t,"")}class R extends S.Component{monacoDiv=null;editor=null;monaco=window.monaco;insert="";originalCode;runningInstancesStr;monacoCounter=0;location;breakpoints;lastSearch="";typings={};decorations=[];triggerPrettier;constructor(t){super(t),this.state={name:"current",isDark:t.isDark||!1,language:t.language||"javascript",readOnly:t.readOnly||!1,alive:!0,check:!1,searchText:this.props.searchText||"",typingsLoaded:!1,showError:null},this.triggerPrettier=t.triggerPrettier,this.runningInstancesStr=JSON.stringify(this.props.runningInstances),this.originalCode=t.code||"",this.monacoDiv=S.createRef()}waitForMonaco(t){var e,s,o,r,l,a,h,g;let i=!!((r=(o=(s=(e=this.monaco)==null?void 0:e.languages)==null?void 0:s.typescript)==null?void 0:o.typescriptDefaults)!=null&&r.getCompilerOptions);if(!i||!this.props.runningInstances){if(this.monaco=window.monaco,i=!!((g=(h=(a=(l=this.monaco)==null?void 0:l.languages)==null?void 0:a.typescript)==null?void 0:h.typescriptDefaults)!=null&&g.getCompilerOptions),this.monacoCounter++,!i&&this.monacoCounter<20){console.log("wait for monaco loaded"),setTimeout(()=>this.waitForMonaco(t),200);return}this.monacoCounter>=20&&console.error("Cannot load monaco!")}else t&&t()}loadTypings(t){if(!this.editor)return;t||=this.props.runningInstances;const i=t&&Object.keys(t).find(e=>t==null?void 0:t[e]);i&&this.props.socket.sendTo(i.replace("system.adapter.",""),"loadTypings",null).then(e=>{this.setState({alive:!0,check:!0,typingsLoaded:!0}),this.setTypeCheck(!0),e.typings?(this.typings=e.typings,this.setEditorTypings(this.state.name)):console.error(`failed to load typings: ${e.error}`)})}componentDidMount(){var e,s,o,r,l,a,h,g,y,k,d,u;let t=!!((r=(o=(s=(e=this.monaco)==null?void 0:e.languages)==null?void 0:s.typescript)==null?void 0:o.typescriptDefaults)!=null&&r.getCompilerOptions);if((!t||!this.props.runningInstances)&&(this.monaco=window.monaco,t=!!((g=(h=(a=(l=this.monaco)==null?void 0:l.languages)==null?void 0:a.typescript)==null?void 0:h.typescriptDefaults)!=null&&g.getCompilerOptions),!t)){console.log("wait for monaco loaded..."),this.waitForMonaco(()=>this.componentDidMount());return}if(!this.editor&&t&&this.monaco){console.log("Init editor"),(k=(y=this.props).onRegisterSelect)==null||k.call(y,()=>{var m;if(this.editor){const D=this.editor.getSelection();if(D)return(m=this.editor.getModel())==null?void 0:m.getValueInRange(D)}});const c=this.monaco.languages.typescript.typescriptDefaults.getCompilerOptions();c.allowJs=!0,c.checkJs=this.props.checkJs!==!1,c.noLib=!0,c.lib=[],c.useUnknownInCatchVariables=!1,c.moduleResolution=this.monaco.languages.typescript.ModuleResolutionKind.NodeJs,c.target=this.monaco.languages.typescript.ScriptTarget.ESNext,c.module=this.monaco.languages.typescript.ModuleKind.ESNext,c.allowNonTsExtensions=!0,this.monaco.languages.typescript.typescriptDefaults.setCompilerOptions(c),this.setTypeCheck(!1),(d=this.monacoDiv)!=null&&d.current&&(this.editor=this.monaco.editor.create((u=this.monacoDiv)==null?void 0:u.current,{lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,glyphMargin:!!this.props.breakpoints,colorDecorators:!0}),this.editor.onDidChangeModelContent(()=>this.onChange()),this.loadTypings(),this.props.onForceSave&&this.editor.addCommand(this.monaco.KeyMod.CtrlCmd|this.monaco.KeyCode.KeyS,()=>this.props.onForceSave&&this.props.onForceSave()),setTimeout(()=>{this.highlightText(this.state.searchText),this.location=this.props.location||void 0,this.breakpoints=this.props.breakpoints,this.showDecorators()}))}const i={selectOnLineNumbers:!0,scrollBeyondLastLine:!1,automaticLayout:!0,readOnly:this.state.readOnly,language:this.state.language,isDark:this.state.isDark};this.setEditorOptions(i),this.editor&&(this.editor.focus(),this.editor.setValue(this.originalCode),this.props.onToggleBreakpoint?this.editor.onMouseDown(c=>{var D;const m=c.target;this.props.onToggleBreakpoint&&((D=m.detail)==null?void 0:D.glyphMarginLeft)!==void 0&&m.position&&this.props.onToggleBreakpoint(m.position.lineNumber-1)}):this.editor.onMouseDown(()=>{}))}setEditorOptions(t){var i;t&&(t.language&&this.setEditorLanguage(t.language),this.editor&&(t.readOnly!==void 0&&this.editor.updateOptions({readOnly:t.readOnly}),t.lineWrap!==void 0&&this.editor.updateOptions({wordWrap:t.lineWrap?"on":"off"})),t.typeCheck!==void 0&&this.setTypeCheck(t.typeCheck),t.isDark!==void 0&&((i=this.monaco)==null||i.editor.setTheme(t.isDark?"vs-dark":"vs")))}componentWillUnmount(){var t,i;this.editor&&((i=(t=this.props).onRegisterSelect)==null||i.call(t,null),this.editor.dispose(),this.editor=null)}async doPrettier(){var e,s,o,r;const t=this.props.runningInstances&&Object.keys(this.props.runningInstances).find(l=>{var a;return(a=this.props.runningInstances)==null?void 0:a[l]});if(!t){window.alert(f.I18n.t("No script adapter instance found to format the code"));return}const i=await this.props.socket.sendTo(t.replace("system.adapter.",""),"prettier",{code:(e=this.editor)==null?void 0:e.getValue(),type:this.state.language});i.error?this.setState({showError:{title:f.I18n.t("Error formatting code"),message:E(i.error)}}):i.code&&((s=this.editor)==null||s.setValue(i.code),(r=(o=this.props).onChange)==null||r.call(o,i.code),this.showDecorators())}setEditorLanguage(t){var e;if(!this.editor)return;const i=this.editor.getModel();if(i){const s=i.getValue(),o=i.uri.path,r=typeof o=="string"&&o.includes(".")?o.substring(0,o.lastIndexOf(".")):"index",l=t==="javascript"?"js":t==="typescript"?"ts":t;i.dispose();const a=t==="javascript"||t==="typescript"?"typescript":t,h=(e=this.monaco)==null?void 0:e.editor.createModel(s,a,this.monaco.Uri.from({scheme:window.location.protocol.replace(":",""),path:`${r}${O++}.${l}`}));h&&this.editor.setModel(h)}}setTypeCheck(t){var e,s;const i={noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive};(e=this.monaco)==null||e.languages.typescript.typescriptDefaults.setDiagnosticsOptions(i),(s=this.monaco)==null||s.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive})}setEditorTypings(t=""){var o,r,l,a,h,g,y,k;const i=v(t),e=`${t}.d.ts`,s=[];for(const d of Object.keys(this.typings))i&&(d==="global.d.ts"||d.startsWith("script.js.global")&&d!==e)||s.push({filePath:d,content:this.typings[d]});if((a=(l=(r=(o=this.monaco)==null?void 0:o.languages)==null?void 0:r.typescript)==null?void 0:l.typescriptDefaults)!=null&&a.setExtraLibs)this.monaco.languages.typescript.typescriptDefaults.setExtraLibs(s);else if((k=(y=(g=(h=this.monaco)==null?void 0:h.languages)==null?void 0:g.typescript)==null?void 0:y.typescriptDefaults)!=null&&k.addExtraLib){const d=this.monaco.languages.typescript.typescriptDefaults.getExtraLibs();s.forEach(u=>{!d[u.filePath]&&this.monaco&&this.monaco.languages.typescript.typescriptDefaults.addExtraLib(u.content,u.filePath)})}}insertTextIntoEditor(t){if(!this.editor||!this.monaco)return;const i=this.editor.getSelection();if(i){const e=new this.monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editor.executeEdits("",[{range:e,text:t,forceMoveMarkers:!0}])}this.editor.focus()}highlightText(t){var e;if(!this.editor||!this.monaco)return;const i=t?(e=this.editor.getModel())==null?void 0:e.findMatches(t,!0,!1,!1,null,!0):void 0;if(i!=null&&i.length)i.forEach(s=>{var o;return(o=this.editor)==null?void 0:o.setSelection(s.range)}),this.editor.revealLine(i[0].range.startLineNumber);else{const s=this.editor.getPosition();if(s){const o=s.lineNumber,r=s.column;this.editor.setSelection(new this.monaco.Range(o,r,o,r))}}}showDecorators(){var i;const t=[];if(this.location&&this.monaco&&(t.push({range:new this.monaco.Range(this.location.lineNumber+1,(this.location.columnNumber||0)+1,this.location.lineNumber+1,1e3),options:{isWholeLine:!1,className:this.props.isDark?"monacoCurrentLineDark":"monacoCurrentLine"}}),t.push({range:new this.monaco.Range(this.location.lineNumber+1,0,this.location.lineNumber+1,0),options:{isWholeLine:!0,className:this.props.isDark?"monacoCurrentFullLineDark":"monacoCurrentFullLine"}})),(i=this.breakpoints)==null||i.forEach(e=>{this.monaco&&t.push({range:new this.monaco.Range(e.location.lineNumber+1,0,e.location.lineNumber+1,100),options:{isWholeLine:!0,glyphMarginClassName:this.props.isDark?"monacoBreakPointDark":"monacoBreakPoint"}})}),this.editor){const e=this.editor.getModel();e&&(this.decorations=e.deltaDecorations(this.decorations,t))}}initNewScript(t,i){var e;this.setState({name:t}),this.originalCode=i||"",(e=this.editor)==null||e.setValue(i||""),this.highlightText(this.lastSearch),this.showDecorators(),this.setEditorTypings(t)}scrollToLineIfNeeded(t){if(this.editor){const i=this.editor.getVisibleRanges();(!i||!i[0]||i[0].startLineNumber>t||t>i[0].endLineNumber)&&this.editor.revealLineInCenter(t)}}UNSAFE_componentWillReceiveProps(t){const i={};this.state.name!==t.name&&this.initNewScript(t.name,t.code),JSON.stringify(t.runningInstances)!==this.runningInstancesStr&&(this.runningInstancesStr=JSON.stringify(t.runningInstances),this.state.typingsLoaded||this.loadTypings(t.runningInstances)),this.editor&&!t.changed&&(t.code!==this.originalCode||t.code!==this.editor.getValue())&&(this.originalCode=t.code||"",this.editor.setValue(this.originalCode),this.showDecorators(),this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),t.searchText!==this.lastSearch&&(this.lastSearch=t.searchText||"",this.highlightText(this.lastSearch)),JSON.stringify(t.location)!==JSON.stringify(this.location)&&JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.location=t.location||void 0,this.breakpoints=t.breakpoints,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)):JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.breakpoints=t.breakpoints,this.showDecorators()):JSON.stringify(t.location)!==JSON.stringify(this.location)&&(this.location=t.location||void 0,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),this.state.language!==(t.language||"javascript")?(this.setState({language:t.language||"javascript"}),i.language=t.language||"javascript"):this.state.readOnly!==(t.readOnly||!1)?(this.setState({readOnly:t.readOnly||!1}),i.readOnly=t.readOnly):this.state.isDark!==(t.isDark||!1)&&(this.setState({isDark:t.isDark||!1}),i.isDark=t.isDark),this.setEditorOptions(i),this.insert!==t.insert&&(this.insert=t.insert||"",this.insert&&(console.log(`Insert text: ${this.insert}`),setTimeout(e=>{this.insertTextIntoEditor(e),setTimeout(()=>this.props.onInserted&&this.props.onInserted(),100)},100,this.insert)))}onChange(){var t,i;!this.props.readOnly&&this.editor&&((i=(t=this.props).onChange)==null||i.call(t,this.editor.getValue()))}renderErrorDialog(){return this.state.showError?this.state.showError.full?n.jsxs(p.Dialog,{open:!0,maxWidth:"md",onClose:()=>this.setState({showError:null}),children:[n.jsx(p.DialogTitle,{children:this.state.showError.title||f.I18n.t("Error")}),n.jsx(p.DialogContent,{children:n.jsx("pre",{children:n.jsx("code",{children:this.state.showError.message})})}),n.jsx(p.DialogActions,{children:n.jsxs(p.Button,{variant:"contained",startIcon:n.jsx(b,{}),onClick:()=>this.setState({showError:null}),children:[f.I18n.t("Close")," "]})})]}):n.jsx(p.Snackbar,{open:!0,autoHideDuration:5e3,onClose:()=>this.setState({showError:null}),message:this.state.showError.title,action:n.jsxs(S.Fragment,{children:[n.jsx(p.Button,{color:"secondary",size:"small",onClick:()=>this.setState({showError:{...this.state.showError,full:!0}}),children:f.I18n.t("More")}),n.jsx(p.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({showError:null}),children:n.jsx(b,{fontSize:"small"})})]})}):null}render(){var t,i,e;return!((e=(i=(t=this.monaco)==null?void 0:t.languages)==null?void 0:i.typescript)!=null&&e.typescriptDefaults)||!this.props.runningInstances?(setTimeout(()=>{this.monaco=window.monaco,this.forceUpdate()},200),null):(this.props.triggerPrettier!==this.triggerPrettier&&(this.triggerPrettier=this.props.triggerPrettier,setTimeout(()=>this.doPrettier().catch(s=>console.error("Error formatting code:",s)),50)),n.jsxs("div",{ref:this.monacoDiv,style:{...this.props.style,width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:[this.renderErrorDialog(),!this.state.check&&n.jsx(p.Fab,{size:"small",title:f.I18n.t("Check is not active, because javascript adapter is disabled"),style:{bottom:10,right:10,opacity:.5,position:"absolute",zIndex:1,background:"red",color:"white"},color:"secondary",children:n.jsx(C,{})})]}))}}export{R as default}; diff --git a/admin/assets/createSvgIcon-BQT-7-GS.js b/admin/assets/createSvgIcon-BQT-7-GS.js deleted file mode 100644 index cf2501aab..000000000 --- a/admin/assets/createSvgIcon-BQT-7-GS.js +++ /dev/null @@ -1,30 +0,0 @@ -import{i as I,a as Wt}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{g as Ur}from"./_commonjsHelpers-Cpj98o6Y.js";import{i as Yr,a as qr}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";var ur={exports:{}},Ge={};/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Xr=I,Qr=Symbol.for("react.element"),Zr=Symbol.for("react.fragment"),Jr=Object.prototype.hasOwnProperty,en=Xr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,tn={key:!0,ref:!0,__self:!0,__source:!0};function fr(e,t,r){var n,a={},o=null,s=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(s=t.ref);for(n in t)Jr.call(t,n)&&!tn.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:Qr,type:e,key:o,ref:s,props:a,_owner:en.current}}Ge.Fragment=Zr;Ge.jsx=fr;Ge.jsxs=fr;ur.exports=Ge;var ze=ur.exports;function se(e,...t){const r=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${e}; visit ${r} for the full message.`}const rn="$$material";function gt(){return gt=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?j(be,--V):0,he--,z===10&&(he=1,Ke--),z}function Y(){return z=V2||Te(z)>3?"":" "}function yn(e,t){for(;--t&&Y()&&!(z<48||z>102||z>57&&z<65||z>70&&z<97););return _e(e,Fe()+(t<6&&re()==32&&Y()==32))}function bt(e){for(;Y();)switch(z){case e:return V;case 34:case 39:e!==34&&e!==39&&bt(z);break;case 40:e===41&&bt(e);break;case 92:Y();break}return V}function bn(e,t){for(;Y()&&e+z!==57;)if(e+z===84&&re()===47)break;return"/*"+_e(t,V-1)+"*"+He(e===47?e:Y())}function Sn(e){for(;!Te(re());)Y();return _e(e,V)}function vn(e){return yr(Le("",null,null,null,[""],e=gr(e),0,[0],e))}function Le(e,t,r,n,a,o,s,c,u){for(var f=0,p=0,d=s,m=0,b=0,g=0,h=1,v=1,S=1,$=0,x="",C=a,k=o,A=n,w=x;v;)switch(g=$,$=Y()){case 40:if(g!=108&&j(w,d-1)==58){yt(w+=_(Me($),"&","&\f"),"&\f")!=-1&&(S=-1);break}case 34:case 39:case 91:w+=Me($);break;case 9:case 10:case 13:case 32:w+=gn(g);break;case 92:w+=yn(Fe()-1,7);continue;case 47:switch(re()){case 42:case 47:Re(Cn(bn(Y(),Fe()),t,r),u);break;default:w+="/"}break;case 123*h:c[f++]=ee(w)*S;case 125*h:case 59:case 0:switch($){case 0:case 125:v=0;case 59+p:S==-1&&(w=_(w,/\f/g,"")),b>0&&ee(w)-d&&Re(b>32?Ht(w+";",n,r,d-1):Ht(_(w," ","")+";",n,r,d-2),u);break;case 59:w+=";";default:if(Re(A=Gt(w,t,r,f,p,a,c,x,C=[],k=[],d),o),$===123)if(p===0)Le(w,t,A,A,C,o,d,c,k);else switch(m===99&&j(w,3)===110?100:m){case 100:case 108:case 109:case 115:Le(e,A,A,n&&Re(Gt(e,A,A,0,0,a,c,x,a,C=[],d),k),a,k,d,c,n?C:k);break;default:Le(w,A,A,A,[""],k,0,c,k)}}f=p=b=0,h=S=1,x=w="",d=s;break;case 58:d=1+ee(w),b=g;default:if(h<1){if($==123)--h;else if($==125&&h++==0&&hn()==125)continue}switch(w+=He($),$*h){case 38:S=p>0?1:(w+="\f",-1);break;case 44:c[f++]=(ee(w)-1)*S,S=1;break;case 64:re()===45&&(w+=Me(Y())),m=re(),p=d=ee(x=w+=Sn(Fe())),$++;break;case 45:g===45&&ee(w)==2&&(h=0)}}return o}function Gt(e,t,r,n,a,o,s,c,u,f,p){for(var d=a-1,m=a===0?o:[""],b=Tt(m),g=0,h=0,v=0;g0?m[S]+" "+$:_($,/&\f/g,m[S])))&&(u[v++]=x);return Ve(e,t,r,a===0?kt:c,u,f,p)}function Cn(e,t,r){return Ve(e,t,r,dr,He(pn()),Ae(e,2,-2),0)}function Ht(e,t,r,n){return Ve(e,t,r,At,Ae(e,0,n),Ae(e,n+1,-1),n)}function me(e,t){for(var r="",n=Tt(e),a=0;a6)switch(j(e,t+1)){case 109:if(j(e,t+4)!==45)break;case 102:return _(e,/(.+:)(.+)-([^]+)/,"$1"+P+"$2-$3$1"+je+(j(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~yt(e,"stretch")?Sr(_(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(j(e,t+1)!==115)break;case 6444:switch(j(e,ee(e)-3-(~yt(e,"!important")&&10))){case 107:return _(e,":",":"+P)+e;case 101:return _(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+P+(j(e,14)===45?"inline-":"")+"box$3$1"+P+"$2$3$1"+W+"$2box$3")+e}break;case 5936:switch(j(e,t+11)){case 114:return P+e+W+_(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return P+e+W+_(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return P+e+W+_(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return P+e+W+e+e}return e}var En=function(t,r,n,a){if(t.length>-1&&!t.return)switch(t.type){case At:t.return=Sr(t.value,t.length);break;case mr:return me([ve(t,{value:_(t.value,"@","@"+P)})],a);case kt:if(t.length)return mn(t.props,function(o){switch(dn(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return me([ve(t,{props:[_(o,/:(read-\w+)/,":"+je+"$1")]})],a);case"::placeholder":return me([ve(t,{props:[_(o,/:(plac\w+)/,":"+P+"input-$1")]}),ve(t,{props:[_(o,/:(plac\w+)/,":"+je+"$1")]}),ve(t,{props:[_(o,/:(plac\w+)/,W+"input-$1")]})],a)}return""})}},On=[En],Rn=function(t){var r=t.key;if(r==="css"){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,function(h){var v=h.getAttribute("data-emotion");v.indexOf(" ")!==-1&&(document.head.appendChild(h),h.setAttribute("data-s",""))})}var a=t.stylisPlugins||On,o={},s,c=[];s=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+r+' "]'),function(h){for(var v=h.getAttribute("data-emotion").split(" "),S=1;S=4;++n,a-=4)r=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(a){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Fn={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Mn=/[A-Z]|^ms/g,Ln=/_EMO_([^_]+?)_([^]*?)_EMO_/g,wr=function(t){return t.charCodeAt(1)===45},Vt=function(t){return t!=null&&typeof t!="boolean"},dt=br(function(e){return wr(e)?e:e.replace(Mn,"-$&").toLowerCase()}),Ut=function(t,r){switch(t){case"animation":case"animationName":if(typeof r=="string")return r.replace(Ln,function(n,a,o){return te={name:a,styles:o,next:te},a})}return Fn[t]!==1&&!wr(t)&&typeof r=="number"&&r!==0?r+"px":r};function $e(e,t,r){if(r==null)return"";var n=r;if(n.__emotion_styles!==void 0)return n;switch(typeof r){case"boolean":return"";case"object":{var a=r;if(a.anim===1)return te={name:a.name,styles:a.styles,next:te},a.name;var o=r;if(o.styles!==void 0){var s=o.next;if(s!==void 0)for(;s!==void 0;)te={name:s.name,styles:s.styles,next:te},s=s.next;var c=o.styles+";";return c}return Nn(e,t,r)}case"function":{if(e!==void 0){var u=te,f=r(e);return te=u,$e(e,t,f)}break}}var p=r;if(t==null)return p;var d=t[p];return d!==void 0?d:p}function Nn(e,t,r){var n="";if(Array.isArray(r))for(var a=0;a96?Hn:Kn},Xt=function(t,r,n){var a;if(r){var o=r.shouldForwardProp;a=t.__emotion_forwardProp&&o?function(s){return t.__emotion_forwardProp(s)&&o(s)}:o}return typeof a!="function"&&n&&(a=t.__emotion_forwardProp),a},Vn=function(t){var r=t.cache,n=t.serialized,a=t.isStringTag;return $t(r,n,a),kr(function(){return Cr(r,n,a)}),null},Un=function e(t,r){var n=t.__emotion_real===t,a=n&&t.__emotion_base||t,o,s;r!==void 0&&(o=r.label,s=r.target);var c=Xt(t,r,n),u=c||qt(a),f=!u("as");return function(){var p=arguments,d=n&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(o!==void 0&&d.push("label:"+o+";"),p[0]==null||p[0].raw===void 0)d.push.apply(d,p);else{var m=p[0];d.push(m[0]);for(var b=p.length,g=1;gqn("prop-types",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),Zn=await Qn.then(e=>e());var Jn=Zn;const Ai=Ur(Jn);/** - * @mui/styled-engine v6.4.11 - * - * @license MIT - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */function ea(e,t){return vt(e,t)}function ta(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}const Qt=[];function Zt(e){return Qt[0]=e,Pt(Qt)}var Pr={exports:{}},R={};/** - * @license React - * react-is.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Et=Symbol.for("react.transitional.element"),Ot=Symbol.for("react.portal"),Ue=Symbol.for("react.fragment"),Ye=Symbol.for("react.strict_mode"),qe=Symbol.for("react.profiler"),Xe=Symbol.for("react.consumer"),Qe=Symbol.for("react.context"),Ze=Symbol.for("react.forward_ref"),Je=Symbol.for("react.suspense"),et=Symbol.for("react.suspense_list"),tt=Symbol.for("react.memo"),rt=Symbol.for("react.lazy"),ra=Symbol.for("react.view_transition"),na=Symbol.for("react.client.reference");function X(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case Et:switch(e=e.type,e){case Ue:case qe:case Ye:case Je:case et:case ra:return e;default:switch(e=e&&e.$$typeof,e){case Qe:case Ze:case rt:case tt:return e;case Xe:return e;default:return t}}case Ot:return t}}}R.ContextConsumer=Xe;R.ContextProvider=Qe;R.Element=Et;R.ForwardRef=Ze;R.Fragment=Ue;R.Lazy=rt;R.Memo=tt;R.Portal=Ot;R.Profiler=qe;R.StrictMode=Ye;R.Suspense=Je;R.SuspenseList=et;R.isContextConsumer=function(e){return X(e)===Xe};R.isContextProvider=function(e){return X(e)===Qe};R.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===Et};R.isForwardRef=function(e){return X(e)===Ze};R.isFragment=function(e){return X(e)===Ue};R.isLazy=function(e){return X(e)===rt};R.isMemo=function(e){return X(e)===tt};R.isPortal=function(e){return X(e)===Ot};R.isProfiler=function(e){return X(e)===qe};R.isStrictMode=function(e){return X(e)===Ye};R.isSuspense=function(e){return X(e)===Je};R.isSuspenseList=function(e){return X(e)===et};R.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Ue||e===qe||e===Ye||e===Je||e===et||typeof e=="object"&&e!==null&&(e.$$typeof===rt||e.$$typeof===tt||e.$$typeof===Qe||e.$$typeof===Xe||e.$$typeof===Ze||e.$$typeof===na||e.getModuleId!==void 0)};R.typeOf=X;Pr.exports=R;var _r=Pr.exports;function ae(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Er(e){if(I.isValidElement(e)||_r.isValidElementType(e)||!ae(e))return e;const t={};return Object.keys(e).forEach(r=>{t[r]=Er(e[r])}),t}function K(e,t,r={clone:!0}){const n=r.clone?{...e}:e;return ae(e)&&ae(t)&&Object.keys(t).forEach(a=>{I.isValidElement(t[a])||_r.isValidElementType(t[a])?n[a]=t[a]:ae(t[a])&&Object.prototype.hasOwnProperty.call(e,a)&&ae(e[a])?n[a]=K(e[a],t[a],r):r.clone?n[a]=ae(t[a])?Er(t[a]):t[a]:n[a]=t[a]}),n}const aa=e=>{const t=Object.keys(e).map(r=>({key:r,val:e[r]}))||[];return t.sort((r,n)=>r.val-n.val),t.reduce((r,n)=>({...r,[n.key]:n.val}),{})};function oa(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:n=5,...a}=e,o=aa(t),s=Object.keys(o);function c(m){return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${r})`}function u(m){return`@media (max-width:${(typeof t[m]=="number"?t[m]:m)-n/100}${r})`}function f(m,b){const g=s.indexOf(b);return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${r}) and (max-width:${(g!==-1&&typeof t[s[g]]=="number"?t[s[g]]:b)-n/100}${r})`}function p(m){return s.indexOf(m)+1n.startsWith("@container")).sort((n,a)=>{var s,c;const o=/min-width:\s*([0-9.]+)/;return+(((s=n.match(o))==null?void 0:s[1])||0)-+(((c=a.match(o))==null?void 0:c[1])||0)});return r.length?r.reduce((n,a)=>{const o=t[a];return delete n[a],n[a]=o,n},{...t}):t}function sa(e,t){return t==="@"||t.startsWith("@")&&(e.some(r=>t.startsWith(`@${r}`))||!!t.match(/^@\d/))}function ca(e,t){const r=t.match(/^@([^/]+)?\/?(.+)?$/);if(!r)return null;const[,n,a]=r,o=Number.isNaN(+n)?n||0:+n;return e.containerQueries(a).up(o)}function la(e){const t=(o,s)=>o.replace("@media",s?`@container ${s}`:"@container");function r(o,s){o.up=(...c)=>t(e.breakpoints.up(...c),s),o.down=(...c)=>t(e.breakpoints.down(...c),s),o.between=(...c)=>t(e.breakpoints.between(...c),s),o.only=(...c)=>t(e.breakpoints.only(...c),s),o.not=(...c)=>{const u=t(e.breakpoints.not(...c),s);return u.includes("not all and")?u.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):u}}const n={},a=o=>(r(n,o),n);return r(a),{...e,containerQueries:a}}const ua={borderRadius:4};function ke(e,t){return t?K(e,t,{clone:!1}):e}const nt={xs:0,sm:600,md:900,lg:1200,xl:1536},Jt={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${nt[e]}px)`},fa={containerQueries:e=>({up:t=>{let r=typeof t=="number"?t:nt[t]||t;return typeof r=="number"&&(r=`${r}px`),e?`@container ${e} (min-width:${r})`:`@container (min-width:${r})`}})};function oe(e,t,r){const n=e.theme||{};if(Array.isArray(t)){const o=n.breakpoints||Jt;return t.reduce((s,c,u)=>(s[o.up(o.keys[u])]=r(t[u]),s),{})}if(typeof t=="object"){const o=n.breakpoints||Jt;return Object.keys(t).reduce((s,c)=>{if(sa(o.keys,c)){const u=ca(n.containerQueries?n:fa,c);u&&(s[u]=r(t[c],c))}else if(Object.keys(o.values||nt).includes(c)){const u=o.up(c);s[u]=r(t[c],c)}else{const u=c;s[u]=t[u]}return s},{})}return r(t)}function Or(e={}){var r;return((r=e.keys)==null?void 0:r.reduce((n,a)=>{const o=e.up(a);return n[o]={},n},{}))||{}}function Rr(e,t){return e.reduce((r,n)=>{const a=r[n];return(!a||Object.keys(a).length===0)&&delete r[n],r},t)}function Ti(e,...t){const r=Or(e),n=[r,...t].reduce((a,o)=>K(a,o),{});return Rr(Object.keys(r),n)}function da(e,t){if(typeof e!="object")return{};const r={},n=Object.keys(t);return Array.isArray(e)?n.forEach((a,o)=>{o{e[a]!=null&&(r[a]=!0)}),r}function $i({values:e,breakpoints:t,base:r}){const n=r||da(e,t),a=Object.keys(n);if(a.length===0)return e;let o;return a.reduce((s,c,u)=>(Array.isArray(e)?(s[c]=e[u]!=null?e[u]:e[o],o=u):typeof e=="object"?(s[c]=e[c]!=null?e[c]:e[o],o=c):s[c]=e,s),{})}function ge(e){if(typeof e!="string")throw new Error(se(7));return e.charAt(0).toUpperCase()+e.slice(1)}function at(e,t,r=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&r){const n=`vars.${t}`.split(".").reduce((a,o)=>a&&a[o]?a[o]:null,e);if(n!=null)return n}return t.split(".").reduce((n,a)=>n&&n[a]!=null?n[a]:null,e)}function De(e,t,r,n=r){let a;return typeof e=="function"?a=e(r):Array.isArray(e)?a=e[r]||n:a=at(e,r)||n,t&&(a=t(a,n,e)),a}function N(e){const{prop:t,cssProperty:r=e.prop,themeKey:n,transform:a}=e,o=s=>{if(s[t]==null)return null;const c=s[t],u=s.theme,f=at(u,n)||{};return oe(s,c,d=>{let m=De(f,a,d);return d===m&&typeof d=="string"&&(m=De(f,a,`${t}${d==="default"?"":ge(d)}`,d)),r===!1?m:{[r]:m}})};return o.propTypes={},o.filterProps=[t],o}function ma(e){const t={};return r=>(t[r]===void 0&&(t[r]=e(r)),t[r])}const pa={m:"margin",p:"padding"},ha={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},er={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},ga=ma(e=>{if(e.length>2)if(er[e])e=er[e];else return[e];const[t,r]=e.split(""),n=pa[t],a=ha[r]||"";return Array.isArray(a)?a.map(o=>n+o):[n+a]}),Rt=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],Bt=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...Rt,...Bt];function Ee(e,t,r,n){const a=at(e,t,!0)??r;return typeof a=="number"||typeof a=="string"?o=>typeof o=="string"?o:typeof a=="string"?`calc(${o} * ${a})`:a*o:Array.isArray(a)?o=>{if(typeof o=="string")return o;const s=Math.abs(o),c=a[s];return o>=0?c:typeof c=="number"?-c:`-${c}`}:typeof a=="function"?a:()=>{}}function It(e){return Ee(e,"spacing",8)}function Oe(e,t){return typeof t=="string"||t==null?t:e(t)}function ya(e,t){return r=>e.reduce((n,a)=>(n[a]=Oe(t,r),n),{})}function ba(e,t,r,n){if(!t.includes(r))return null;const a=ga(r),o=ya(a,n),s=e[r];return oe(e,s,o)}function Br(e,t){const r=It(e.theme);return Object.keys(e).map(n=>ba(e,t,n,r)).reduce(ke,{})}function M(e){return Br(e,Rt)}M.propTypes={};M.filterProps=Rt;function L(e){return Br(e,Bt)}L.propTypes={};L.filterProps=Bt;function Ir(e=8,t=It({spacing:e})){if(e.mui)return e;const r=(...n)=>(n.length===0?[1]:n).map(o=>{const s=t(o);return typeof s=="number"?`${s}px`:s}).join(" ");return r.mui=!0,r}function ot(...e){const t=e.reduce((n,a)=>(a.filterProps.forEach(o=>{n[o]=a}),n),{}),r=n=>Object.keys(n).reduce((a,o)=>t[o]?ke(a,t[o](n)):a,{});return r.propTypes={},r.filterProps=e.reduce((n,a)=>n.concat(a.filterProps),[]),r}function q(e){return typeof e!="number"?e:`${e}px solid`}function Q(e,t){return N({prop:e,themeKey:"borders",transform:t})}const Sa=Q("border",q),va=Q("borderTop",q),Ca=Q("borderRight",q),wa=Q("borderBottom",q),xa=Q("borderLeft",q),ka=Q("borderColor"),Aa=Q("borderTopColor"),Ta=Q("borderRightColor"),$a=Q("borderBottomColor"),Pa=Q("borderLeftColor"),_a=Q("outline",q),Ea=Q("outlineColor"),it=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=Ee(e.theme,"shape.borderRadius",4),r=n=>({borderRadius:Oe(t,n)});return oe(e,e.borderRadius,r)}return null};it.propTypes={};it.filterProps=["borderRadius"];ot(Sa,va,Ca,wa,xa,ka,Aa,Ta,$a,Pa,it,_a,Ea);const st=e=>{if(e.gap!==void 0&&e.gap!==null){const t=Ee(e.theme,"spacing",8),r=n=>({gap:Oe(t,n)});return oe(e,e.gap,r)}return null};st.propTypes={};st.filterProps=["gap"];const ct=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=Ee(e.theme,"spacing",8),r=n=>({columnGap:Oe(t,n)});return oe(e,e.columnGap,r)}return null};ct.propTypes={};ct.filterProps=["columnGap"];const lt=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=Ee(e.theme,"spacing",8),r=n=>({rowGap:Oe(t,n)});return oe(e,e.rowGap,r)}return null};lt.propTypes={};lt.filterProps=["rowGap"];const Oa=N({prop:"gridColumn"}),Ra=N({prop:"gridRow"}),Ba=N({prop:"gridAutoFlow"}),Ia=N({prop:"gridAutoColumns"}),Fa=N({prop:"gridAutoRows"}),Ma=N({prop:"gridTemplateColumns"}),La=N({prop:"gridTemplateRows"}),Na=N({prop:"gridTemplateAreas"}),za=N({prop:"gridArea"});ot(st,ct,lt,Oa,Ra,Ba,Ia,Fa,Ma,La,Na,za);function pe(e,t){return t==="grey"?t:e}const ja=N({prop:"color",themeKey:"palette",transform:pe}),Da=N({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:pe}),Wa=N({prop:"backgroundColor",themeKey:"palette",transform:pe});ot(ja,Da,Wa);function U(e){return e<=1&&e!==0?`${e*100}%`:e}const Ga=N({prop:"width",transform:U}),Ft=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=r=>{var a,o,s,c,u;const n=((s=(o=(a=e.theme)==null?void 0:a.breakpoints)==null?void 0:o.values)==null?void 0:s[r])||nt[r];return n?((u=(c=e.theme)==null?void 0:c.breakpoints)==null?void 0:u.unit)!=="px"?{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:U(r)}};return oe(e,e.maxWidth,t)}return null};Ft.filterProps=["maxWidth"];const Ha=N({prop:"minWidth",transform:U}),Ka=N({prop:"height",transform:U}),Va=N({prop:"maxHeight",transform:U}),Ua=N({prop:"minHeight",transform:U});N({prop:"size",cssProperty:"width",transform:U});N({prop:"size",cssProperty:"height",transform:U});const Ya=N({prop:"boxSizing"});ot(Ga,Ft,Ha,Ka,Va,Ua,Ya);const ut={border:{themeKey:"borders",transform:q},borderTop:{themeKey:"borders",transform:q},borderRight:{themeKey:"borders",transform:q},borderBottom:{themeKey:"borders",transform:q},borderLeft:{themeKey:"borders",transform:q},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:q},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:it},color:{themeKey:"palette",transform:pe},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:pe},backgroundColor:{themeKey:"palette",transform:pe},p:{style:L},pt:{style:L},pr:{style:L},pb:{style:L},pl:{style:L},px:{style:L},py:{style:L},padding:{style:L},paddingTop:{style:L},paddingRight:{style:L},paddingBottom:{style:L},paddingLeft:{style:L},paddingX:{style:L},paddingY:{style:L},paddingInline:{style:L},paddingInlineStart:{style:L},paddingInlineEnd:{style:L},paddingBlock:{style:L},paddingBlockStart:{style:L},paddingBlockEnd:{style:L},m:{style:M},mt:{style:M},mr:{style:M},mb:{style:M},ml:{style:M},mx:{style:M},my:{style:M},margin:{style:M},marginTop:{style:M},marginRight:{style:M},marginBottom:{style:M},marginLeft:{style:M},marginX:{style:M},marginY:{style:M},marginInline:{style:M},marginInlineStart:{style:M},marginInlineEnd:{style:M},marginBlock:{style:M},marginBlockStart:{style:M},marginBlockEnd:{style:M},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:st},rowGap:{style:lt},columnGap:{style:ct},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:U},maxWidth:{style:Ft},minWidth:{transform:U},height:{transform:U},maxHeight:{transform:U},minHeight:{transform:U},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function qa(...e){const t=e.reduce((n,a)=>n.concat(Object.keys(a)),[]),r=new Set(t);return e.every(n=>r.size===Object.keys(n).length)}function Xa(e,t){return typeof e=="function"?e(t):e}function Qa(){function e(r,n,a,o){const s={[r]:n,theme:a},c=o[r];if(!c)return{[r]:n};const{cssProperty:u=r,themeKey:f,transform:p,style:d}=c;if(n==null)return null;if(f==="typography"&&n==="inherit")return{[r]:n};const m=at(a,f)||{};return d?d(s):oe(s,n,g=>{let h=De(m,p,g);return g===h&&typeof g=="string"&&(h=De(m,p,`${r}${g==="default"?"":ge(g)}`,g)),u===!1?h:{[u]:h}})}function t(r){const{sx:n,theme:a={}}=r||{};if(!n)return null;const o=a.unstable_sxConfig??ut;function s(c){let u=c;if(typeof c=="function")u=c(a);else if(typeof c!="object")return c;if(!u)return null;const f=Or(a.breakpoints),p=Object.keys(f);let d=f;return Object.keys(u).forEach(m=>{const b=Xa(u[m],a);if(b!=null)if(typeof b=="object")if(o[m])d=ke(d,e(m,b,a,o));else{const g=oe({theme:a},b,h=>({[m]:h}));qa(g,b)?d[m]=t({sx:b,theme:a}):d=ke(d,g)}else d=ke(d,e(m,b,a,o))}),ia(a,Rr(p,d))}return Array.isArray(n)?n.map(s):s(n)}return t}const ye=Qa();ye.filterProps=["sx"];function Za(e,t){var n;const r=this;if(r.vars){if(!((n=r.colorSchemes)!=null&&n[e])||typeof r.getColorSchemeSelector!="function")return{};let a=r.getColorSchemeSelector(e);return a==="&"?t:((a.includes("data-")||a.includes("."))&&(a=`*:where(${a.replace(/\s*&$/,"")}) &`),{[a]:t})}return r.palette.mode===e?t:{}}function Fr(e={},...t){const{breakpoints:r={},palette:n={},spacing:a,shape:o={},...s}=e,c=oa(r),u=Ir(a);let f=K({breakpoints:c,direction:"ltr",components:{},palette:{mode:"light",...n},spacing:u,shape:{...ua,...o}},s);return f=la(f),f.applyStyles=Za,f=t.reduce((p,d)=>K(p,d),f),f.unstable_sxConfig={...ut,...s==null?void 0:s.unstable_sxConfig},f.unstable_sx=function(d){return ye({sx:d,theme:this})},f}function Ja(e){return Object.keys(e).length===0}function Pi(e=null){const t=I.useContext(_t);return!t||Ja(t)?e:t}const tr=e=>e,eo=()=>{let e=tr;return{configure(t){e=t},generate(t){return e(t)},reset(){e=tr}}},to=eo();function Mr(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{n[a]=Lr(e,a,r)}),n}function Nr(e){const{variants:t,...r}=e,n={variants:t,style:Zt(r),isProcessed:!0};return n.style===r||t&&t.forEach(a=>{typeof a.style!="function"&&(a.style=Zt(a.style))}),n}const oo=Fr();function mt(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}function io(e){return e?(t,r)=>r[e]:null}function so(e,t,r){e.theme=uo(e.theme)?r:e.theme[t]||e.theme}function Ne(e,t){const r=typeof t=="function"?t(e):t;if(Array.isArray(r))return r.flatMap(n=>Ne(e,n));if(Array.isArray(r==null?void 0:r.variants)){let n;if(r.isProcessed)n=r.style;else{const{variants:a,...o}=r;n=o}return zr(e,r.variants,[n])}return r!=null&&r.isProcessed?r.style:r}function zr(e,t,r=[]){var a;let n;e:for(let o=0;o{ta(c,k=>k.filter(A=>A!==ye));const{name:f,slot:p,skipVariantsResolver:d,skipSx:m,overridesResolver:b=io(mo(p)),...g}=u,h=d!==void 0?d:p&&p!=="Root"&&p!=="root"||!1,v=m||!1;let S=mt;p==="Root"||p==="root"?S=n:p?S=a:fo(c)&&(S=void 0);const $=ea(c,{shouldForwardProp:S,label:lo(),...g}),x=k=>{if(k.__emotion_real===k)return k;if(typeof k=="function")return function(w){return Ne(w,k)};if(ae(k)){const A=Nr(k);return A.variants?function(D){return Ne(D,A)}:A.style}return k},C=(...k)=>{const A=[],w=k.map(x),D=[];if(A.push(o),f&&b&&D.push(function(T){var Se,jt;const G=(jt=(Se=T.theme.components)==null?void 0:Se[f])==null?void 0:jt.styleOverrides;if(!G)return null;const Z={};for(const Dt in G)Z[Dt]=Ne(T,G[Dt]);return b(T,Z)}),f&&!h&&D.push(function(T){var Z,Se;const B=T.theme,G=(Se=(Z=B==null?void 0:B.components)==null?void 0:Z[f])==null?void 0:Se.variants;return G?zr(T,G):null}),v||D.push(ye),Array.isArray(w[0])){const y=w.shift(),T=new Array(A.length).fill(""),B=new Array(D.length).fill("");let G;G=[...T,...y,...B],G.raw=[...T,...y.raw,...B],A.unshift(G)}const H=[...A,...w,...D],i=$(...H);return c.muiName&&(i.muiName=c.muiName),i};return $.withConfig&&(C.withConfig=$.withConfig),C}}function lo(e,t){return void 0}function uo(e){for(const t in e)return!1;return!0}function fo(e){return typeof e=="string"&&e.charCodeAt(0)>96}function mo(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}function Ct(e,t){const r={...t};for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const a=n;if(a==="components"||a==="slots")r[a]={...e[a],...r[a]};else if(a==="componentsProps"||a==="slotProps"){const o=e[a],s=t[a];if(!s)r[a]=o||{};else if(!o)r[a]=s;else{r[a]={...s};for(const c in o)if(Object.prototype.hasOwnProperty.call(o,c)){const u=c;r[a][u]=Ct(o[u],s[u])}}}else r[a]===void 0&&(r[a]=e[a])}return r}function po(e,t=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,r))}function Mt(e,t=0,r=1){return po(e,t,r)}function ho(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let r=e.match(t);return r&&r[0].length===1&&(r=r.map(n=>n+n)),r?`rgb${r.length===4?"a":""}(${r.map((n,a)=>a<3?parseInt(n,16):Math.round(parseInt(n,16)/255*1e3)/1e3).join(", ")})`:""}function go(e){const t=e.toString(16);return t.length===1?`0${t}`:t}function ie(e){if(e.type)return e;if(e.charAt(0)==="#")return ie(ho(e));const t=e.indexOf("("),r=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(r))throw new Error(se(9,e));let n=e.substring(t+1,e.length-1),a;if(r==="color"){if(n=n.split(" "),a=n.shift(),n.length===4&&n[3].charAt(0)==="/"&&(n[3]=n[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(a))throw new Error(se(10,a))}else n=n.split(",");return n=n.map(o=>parseFloat(o)),{type:r,values:n,colorSpace:a}}const yo=e=>{const t=ie(e);return t.values.slice(0,3).map((r,n)=>t.type.includes("hsl")&&n!==0?`${r}%`:r).join(" ")},we=(e,t)=>{try{return yo(e)}catch{return e}};function ft(e){const{type:t,colorSpace:r}=e;let{values:n}=e;return t.includes("rgb")?n=n.map((a,o)=>o<3?parseInt(a,10):a):t.includes("hsl")&&(n[1]=`${n[1]}%`,n[2]=`${n[2]}%`),t.includes("color")?n=`${r} ${n.join(" ")}`:n=`${n.join(", ")}`,`${t}(${n})`}function _i(e){if(e.startsWith("#"))return e;const{values:t}=ie(e);return`#${t.map((r,n)=>go(n===3?Math.round(255*r):r)).join("")}`}function jr(e){e=ie(e);const{values:t}=e,r=t[0],n=t[1]/100,a=t[2]/100,o=n*Math.min(a,1-a),s=(f,p=(f+r/30)%12)=>a-o*Math.max(Math.min(p-3,9-p,1),-1);let c="rgb";const u=[Math.round(s(0)*255),Math.round(s(8)*255),Math.round(s(4)*255)];return e.type==="hsla"&&(c+="a",u.push(t[3])),ft({type:c,values:u})}function wt(e){e=ie(e);let t=e.type==="hsl"||e.type==="hsla"?ie(jr(e)).values:e.values;return t=t.map(r=>(e.type!=="color"&&(r/=255),r<=.03928?r/12.92:((r+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function bo(e,t){const r=wt(e),n=wt(t);return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)}function So(e,t){return e=ie(e),t=Mt(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,ft(e)}function Be(e,t,r){try{return So(e,t)}catch{return e}}function Lt(e,t){if(e=ie(e),t=Mt(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let r=0;r<3;r+=1)e.values[r]*=1-t;return ft(e)}function E(e,t,r){try{return Lt(e,t)}catch{return e}}function Nt(e,t){if(e=ie(e),t=Mt(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let r=0;r<3;r+=1)e.values[r]+=(255-e.values[r])*t;else if(e.type.includes("color"))for(let r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return ft(e)}function O(e,t,r){try{return Nt(e,t)}catch{return e}}function vo(e,t=.15){return wt(e)>.5?Lt(e,t):Nt(e,t)}function Ie(e,t,r){try{return vo(e,t)}catch{return e}}function Co(e,t,r=void 0){const n={};for(const a in e){const o=e[a];let s="",c=!0;for(let u=0;u`var(--${e?`${e}-`:""}${n}${t(...a)})`}const nr=(e,t,r,n=[])=>{let a=e;t.forEach((o,s)=>{s===t.length-1?Array.isArray(a)?a[Number(o)]=r:a&&typeof a=="object"&&(a[o]=r):a&&typeof a=="object"&&(a[o]||(a[o]=n.includes(o)?[]:{}),a=a[o])})},To=(e,t,r)=>{function n(a,o=[],s=[]){Object.entries(a).forEach(([c,u])=>{(!r||r&&!r([...o,c]))&&u!=null&&(typeof u=="object"&&Object.keys(u).length>0?n(u,[...o,c],Array.isArray(u)?[...s,c]:s):t([...o,c],u,s))})}n(e)},$o=(e,t)=>typeof t=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(n=>e.includes(n))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function pt(e,t){const{prefix:r,shouldSkipGeneratingVar:n}=t||{},a={},o={},s={};return To(e,(c,u,f)=>{if((typeof u=="string"||typeof u=="number")&&(!n||!n(c,u))){const p=`--${r?`${r}-`:""}${c.join("-")}`,d=$o(c,u);Object.assign(a,{[p]:d}),nr(o,c,`var(${p})`,f),nr(s,c,`var(${p}, ${d})`,f)}},c=>c[0]==="vars"),{css:a,vars:o,varsWithDefaults:s}}function Po(e,t={}){const{getSelector:r=v,disableCssColorScheme:n,colorSchemeSelector:a}=t,{colorSchemes:o={},components:s,defaultColorScheme:c="light",...u}=e,{vars:f,css:p,varsWithDefaults:d}=pt(u,t);let m=d;const b={},{[c]:g,...h}=o;if(Object.entries(h||{}).forEach(([x,C])=>{const{vars:k,css:A,varsWithDefaults:w}=pt(C,t);m=K(m,w),b[x]={css:A,vars:k}}),g){const{css:x,vars:C,varsWithDefaults:k}=pt(g,t);m=K(m,k),b[c]={css:x,vars:C}}function v(x,C){var A,w;let k=a;if(a==="class"&&(k=".%s"),a==="data"&&(k="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(k=`[${a}="%s"]`),x){if(k==="media")return e.defaultColorScheme===x?":root":{[`@media (prefers-color-scheme: ${((w=(A=o[x])==null?void 0:A.palette)==null?void 0:w.mode)||x})`]:{":root":C}};if(k)return e.defaultColorScheme===x?`:root, ${k.replace("%s",String(x))}`:k.replace("%s",String(x))}return":root"}return{vars:m,generateThemeVars:()=>{let x={...f};return Object.entries(b).forEach(([,{vars:C}])=>{x=K(x,C)}),x},generateStyleSheets:()=>{var D,H;const x=[],C=e.defaultColorScheme||"light";function k(i,y){Object.keys(y).length&&x.push(typeof i=="string"?{[i]:{...y}}:i)}k(r(void 0,{...p}),p);const{[C]:A,...w}=b;if(A){const{css:i}=A,y=(H=(D=o[C])==null?void 0:D.palette)==null?void 0:H.mode,T=!n&&y?{colorScheme:y,...i}:{...i};k(r(C,{...T}),T)}return Object.entries(w).forEach(([i,{css:y}])=>{var G,Z;const T=(Z=(G=o[i])==null?void 0:G.palette)==null?void 0:Z.mode,B=!n&&T?{colorScheme:T,...y}:{...y};k(r(i,{...B}),B)}),x}}}function _o(e){return function(r){return e==="media"?`@media (prefers-color-scheme: ${r})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${r}"] &`:e==="class"?`.${r} &`:e==="data"?`[data-${r}] &`:`${e.replace("%s",r)} &`:"&"}}const Pe={black:"#000",white:"#fff"},Eo={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},ce={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},le={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Ce={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},ue={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},fe={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},de={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"};function Wr(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:Pe.white,default:Pe.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const Oo=Wr();function Gr(){return{text:{primary:Pe.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:Pe.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const ar=Gr();function or(e,t,r,n){const a=n.light||n,o=n.dark||n*1.5;e[t]||(e.hasOwnProperty(r)?e[t]=e[r]:t==="light"?e.light=Nt(e.main,a):t==="dark"&&(e.dark=Lt(e.main,o)))}function Ro(e="light"){return e==="dark"?{main:ue[200],light:ue[50],dark:ue[400]}:{main:ue[700],light:ue[400],dark:ue[800]}}function Bo(e="light"){return e==="dark"?{main:ce[200],light:ce[50],dark:ce[400]}:{main:ce[500],light:ce[300],dark:ce[700]}}function Io(e="light"){return e==="dark"?{main:le[500],light:le[300],dark:le[700]}:{main:le[700],light:le[400],dark:le[800]}}function Fo(e="light"){return e==="dark"?{main:fe[400],light:fe[300],dark:fe[700]}:{main:fe[700],light:fe[500],dark:fe[900]}}function Mo(e="light"){return e==="dark"?{main:de[400],light:de[300],dark:de[700]}:{main:de[800],light:de[500],dark:de[900]}}function Lo(e="light"){return e==="dark"?{main:Ce[400],light:Ce[300],dark:Ce[700]}:{main:"#ed6c02",light:Ce[500],dark:Ce[900]}}function zt(e){const{mode:t="light",contrastThreshold:r=3,tonalOffset:n=.2,...a}=e,o=e.primary||Ro(t),s=e.secondary||Bo(t),c=e.error||Io(t),u=e.info||Fo(t),f=e.success||Mo(t),p=e.warning||Lo(t);function d(h){return bo(h,ar.text.primary)>=r?ar.text.primary:Oo.text.primary}const m=({color:h,name:v,mainShade:S=500,lightShade:$=300,darkShade:x=700})=>{if(h={...h},!h.main&&h[S]&&(h.main=h[S]),!h.hasOwnProperty("main"))throw new Error(se(11,v?` (${v})`:"",S));if(typeof h.main!="string")throw new Error(se(12,v?` (${v})`:"",JSON.stringify(h.main)));return or(h,"light",$,n),or(h,"dark",x,n),h.contrastText||(h.contrastText=d(h.main)),h};let b;return t==="light"?b=Wr():t==="dark"&&(b=Gr()),K({common:{...Pe},mode:t,primary:m({color:o,name:"primary"}),secondary:m({color:s,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:m({color:c,name:"error"}),warning:m({color:p,name:"warning"}),info:m({color:u,name:"info"}),success:m({color:f,name:"success"}),grey:Eo,contrastThreshold:r,getContrastText:d,augmentColor:m,tonalOffset:n,...b},a)}function No(e){const t={};return Object.entries(e).forEach(n=>{const[a,o]=n;typeof o=="object"&&(t[a]=`${o.fontStyle?`${o.fontStyle} `:""}${o.fontVariant?`${o.fontVariant} `:""}${o.fontWeight?`${o.fontWeight} `:""}${o.fontStretch?`${o.fontStretch} `:""}${o.fontSize||""}${o.lineHeight?`/${o.lineHeight} `:""}${o.fontFamily||""}`)}),t}function zo(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function jo(e){return Math.round(e*1e5)/1e5}const ir={textTransform:"uppercase"},sr='"Roboto", "Helvetica", "Arial", sans-serif';function Do(e,t){const{fontFamily:r=sr,fontSize:n=14,fontWeightLight:a=300,fontWeightRegular:o=400,fontWeightMedium:s=500,fontWeightBold:c=700,htmlFontSize:u=16,allVariants:f,pxToRem:p,...d}=typeof t=="function"?t(e):t,m=n/14,b=p||(v=>`${v/u*m}rem`),g=(v,S,$,x,C)=>({fontFamily:r,fontWeight:v,fontSize:b(S),lineHeight:$,...r===sr?{letterSpacing:`${jo(x/S)}em`}:{},...C,...f}),h={h1:g(a,96,1.167,-1.5),h2:g(a,60,1.2,-.5),h3:g(o,48,1.167,0),h4:g(o,34,1.235,.25),h5:g(o,24,1.334,0),h6:g(s,20,1.6,.15),subtitle1:g(o,16,1.75,.15),subtitle2:g(s,14,1.57,.1),body1:g(o,16,1.5,.15),body2:g(o,14,1.43,.15),button:g(s,14,1.75,.4,ir),caption:g(o,12,1.66,.4),overline:g(o,12,2.66,1,ir),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return K({htmlFontSize:u,pxToRem:b,fontFamily:r,fontSize:n,fontWeightLight:a,fontWeightRegular:o,fontWeightMedium:s,fontWeightBold:c,...h},d,{clone:!1})}const Wo=.2,Go=.14,Ho=.12;function F(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${Wo})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${Go})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${Ho})`].join(",")}const Ko=["none",F(0,2,1,-1,0,1,1,0,0,1,3,0),F(0,3,1,-2,0,2,2,0,0,1,5,0),F(0,3,3,-2,0,3,4,0,0,1,8,0),F(0,2,4,-1,0,4,5,0,0,1,10,0),F(0,3,5,-1,0,5,8,0,0,1,14,0),F(0,3,5,-1,0,6,10,0,0,1,18,0),F(0,4,5,-2,0,7,10,1,0,2,16,1),F(0,5,5,-3,0,8,10,1,0,3,14,2),F(0,5,6,-3,0,9,12,1,0,3,16,2),F(0,6,6,-3,0,10,14,1,0,4,18,3),F(0,6,7,-4,0,11,15,1,0,4,20,3),F(0,7,8,-4,0,12,17,2,0,5,22,4),F(0,7,8,-4,0,13,19,2,0,5,24,4),F(0,7,9,-4,0,14,21,2,0,5,26,4),F(0,8,9,-5,0,15,22,2,0,6,28,5),F(0,8,10,-5,0,16,24,2,0,6,30,5),F(0,8,11,-5,0,17,26,2,0,6,32,5),F(0,9,11,-5,0,18,28,2,0,7,34,6),F(0,9,12,-6,0,19,29,2,0,7,36,6),F(0,10,13,-6,0,20,31,3,0,8,38,7),F(0,10,13,-6,0,21,33,3,0,8,40,7),F(0,10,14,-6,0,22,35,3,0,8,42,7),F(0,11,14,-7,0,23,36,3,0,9,44,8),F(0,11,15,-7,0,24,38,3,0,9,46,8)],Vo={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Uo={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function cr(e){return`${Math.round(e)}ms`}function Yo(e){if(!e)return 0;const t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function qo(e){const t={...Vo,...e.easing},r={...Uo,...e.duration};return{getAutoHeightDuration:Yo,create:(a=["all"],o={})=>{const{duration:s=r.standard,easing:c=t.easeInOut,delay:u=0,...f}=o;return(Array.isArray(a)?a:[a]).map(p=>`${p} ${typeof s=="string"?s:cr(s)} ${c} ${typeof u=="string"?u:cr(u)}`).join(",")},...e,easing:t,duration:r}}const Xo={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function Qo(e){return ae(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function Hr(e={}){const t={...e};function r(n){const a=Object.entries(n);for(let o=0;oK(b,g),m),m.unstable_sxConfig={...ut,...f==null?void 0:f.unstable_sxConfig},m.unstable_sx=function(g){return ye({sx:g,theme:this})},m.toRuntimeSource=Hr,m}function Oi(...e){return We(...e)}function Zo(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const Jo=[...Array(25)].map((e,t)=>{if(t===0)return"none";const r=Zo(t);return`linear-gradient(rgba(255 255 255 / ${r}), rgba(255 255 255 / ${r}))`});function Kr(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function Vr(e){return e==="dark"?Jo:[]}function ei(e){const{palette:t={mode:"light"},opacity:r,overlays:n,...a}=e,o=zt(t);return{palette:o,opacity:{...Kr(o.mode),...r},overlays:n||Vr(o.mode),...a}}function ti(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const ri=e=>[...[...Array(25)].map((t,r)=>`--${e?`${e}-`:""}overlays-${r}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],ni=e=>(t,r)=>{const n=e.rootSelector||":root",a=e.colorSchemeSelector;let o=a;if(a==="class"&&(o=".%s"),a==="data"&&(o="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(o=`[${a}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const s={};return ri(e.cssVarPrefix).forEach(c=>{s[c]=r[c],delete r[c]}),o==="media"?{[n]:r,"@media (prefers-color-scheme: dark)":{[n]:s}}:o?{[o.replace("%s",t)]:s,[`${n}, ${o.replace("%s",t)}`]:r}:{[n]:{...r,...s}}}if(o&&o!=="media")return`${n}, ${o.replace("%s",String(t))}`}else if(t){if(o==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[n]:r}};if(o)return o.replace("%s",String(t))}return n};function ai(e,t){t.forEach(r=>{e[r]||(e[r]={})})}function l(e,t,r){!e[t]&&r&&(e[t]=r)}function xe(e){return typeof e!="string"||!e.startsWith("hsl")?e:jr(e)}function ne(e,t){`${t}Channel`in e||(e[`${t}Channel`]=we(xe(e[t])))}function oi(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const J=e=>{try{return e()}catch{}},ii=(e="mui")=>Ao(e);function ht(e,t,r,n){if(!t)return;t=t===!0?{}:t;const a=n==="dark"?"dark":"light";if(!r){e[n]=ei({...t,palette:{mode:a,...t==null?void 0:t.palette}});return}const{palette:o,...s}=We({...r,palette:{mode:a,...t==null?void 0:t.palette}});return e[n]={...t,palette:o,opacity:{...Kr(a),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||Vr(a)},s}function si(e={},...t){const{colorSchemes:r={light:!0},defaultColorScheme:n,disableCssColorScheme:a=!1,cssVarPrefix:o="mui",shouldSkipGeneratingVar:s=ti,colorSchemeSelector:c=r.light&&r.dark?"media":void 0,rootSelector:u=":root",...f}=e,p=Object.keys(r)[0],d=n||(r.light&&p!=="light"?"light":p),m=ii(o),{[d]:b,light:g,dark:h,...v}=r,S={...v};let $=b;if((d==="dark"&&!("dark"in r)||d==="light"&&!("light"in r))&&($=!0),!$)throw new Error(se(21,d));const x=ht(S,$,f,d);g&&!S.light&&ht(S,g,void 0,"light"),h&&!S.dark&&ht(S,h,void 0,"dark");let C={defaultColorScheme:d,...x,cssVarPrefix:o,colorSchemeSelector:c,rootSelector:u,getCssVar:m,colorSchemes:S,font:{...No(x.typography),...x.font},spacing:oi(f.spacing)};Object.keys(C.colorSchemes).forEach(H=>{const i=C.colorSchemes[H].palette,y=T=>{const B=T.split("-"),G=B[1],Z=B[2];return m(T,i[G][Z])};if(i.mode==="light"&&(l(i.common,"background","#fff"),l(i.common,"onBackground","#000")),i.mode==="dark"&&(l(i.common,"background","#000"),l(i.common,"onBackground","#fff")),ai(i,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),i.mode==="light"){l(i.Alert,"errorColor",E(i.error.light,.6)),l(i.Alert,"infoColor",E(i.info.light,.6)),l(i.Alert,"successColor",E(i.success.light,.6)),l(i.Alert,"warningColor",E(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-main")),l(i.Alert,"infoFilledBg",y("palette-info-main")),l(i.Alert,"successFilledBg",y("palette-success-main")),l(i.Alert,"warningFilledBg",y("palette-warning-main")),l(i.Alert,"errorFilledColor",J(()=>i.getContrastText(i.error.main))),l(i.Alert,"infoFilledColor",J(()=>i.getContrastText(i.info.main))),l(i.Alert,"successFilledColor",J(()=>i.getContrastText(i.success.main))),l(i.Alert,"warningFilledColor",J(()=>i.getContrastText(i.warning.main))),l(i.Alert,"errorStandardBg",O(i.error.light,.9)),l(i.Alert,"infoStandardBg",O(i.info.light,.9)),l(i.Alert,"successStandardBg",O(i.success.light,.9)),l(i.Alert,"warningStandardBg",O(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-100")),l(i.Avatar,"defaultBg",y("palette-grey-400")),l(i.Button,"inheritContainedBg",y("palette-grey-300")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-A100")),l(i.Chip,"defaultBorder",y("palette-grey-400")),l(i.Chip,"defaultAvatarColor",y("palette-grey-700")),l(i.Chip,"defaultIconColor",y("palette-grey-700")),l(i.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),l(i.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),l(i.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),l(i.LinearProgress,"primaryBg",O(i.primary.main,.62)),l(i.LinearProgress,"secondaryBg",O(i.secondary.main,.62)),l(i.LinearProgress,"errorBg",O(i.error.main,.62)),l(i.LinearProgress,"infoBg",O(i.info.main,.62)),l(i.LinearProgress,"successBg",O(i.success.main,.62)),l(i.LinearProgress,"warningBg",O(i.warning.main,.62)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.11)`),l(i.Slider,"primaryTrack",O(i.primary.main,.62)),l(i.Slider,"secondaryTrack",O(i.secondary.main,.62)),l(i.Slider,"errorTrack",O(i.error.main,.62)),l(i.Slider,"infoTrack",O(i.info.main,.62)),l(i.Slider,"successTrack",O(i.success.main,.62)),l(i.Slider,"warningTrack",O(i.warning.main,.62));const T=Ie(i.background.default,.8);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",J(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",Ie(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-400")),l(i.StepContent,"border",y("palette-grey-400")),l(i.Switch,"defaultColor",y("palette-common-white")),l(i.Switch,"defaultDisabledColor",y("palette-grey-100")),l(i.Switch,"primaryDisabledColor",O(i.primary.main,.62)),l(i.Switch,"secondaryDisabledColor",O(i.secondary.main,.62)),l(i.Switch,"errorDisabledColor",O(i.error.main,.62)),l(i.Switch,"infoDisabledColor",O(i.info.main,.62)),l(i.Switch,"successDisabledColor",O(i.success.main,.62)),l(i.Switch,"warningDisabledColor",O(i.warning.main,.62)),l(i.TableCell,"border",O(Be(i.divider,1),.88)),l(i.Tooltip,"bg",Be(i.grey[700],.92))}if(i.mode==="dark"){l(i.Alert,"errorColor",O(i.error.light,.6)),l(i.Alert,"infoColor",O(i.info.light,.6)),l(i.Alert,"successColor",O(i.success.light,.6)),l(i.Alert,"warningColor",O(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-dark")),l(i.Alert,"infoFilledBg",y("palette-info-dark")),l(i.Alert,"successFilledBg",y("palette-success-dark")),l(i.Alert,"warningFilledBg",y("palette-warning-dark")),l(i.Alert,"errorFilledColor",J(()=>i.getContrastText(i.error.dark))),l(i.Alert,"infoFilledColor",J(()=>i.getContrastText(i.info.dark))),l(i.Alert,"successFilledColor",J(()=>i.getContrastText(i.success.dark))),l(i.Alert,"warningFilledColor",J(()=>i.getContrastText(i.warning.dark))),l(i.Alert,"errorStandardBg",E(i.error.light,.9)),l(i.Alert,"infoStandardBg",E(i.info.light,.9)),l(i.Alert,"successStandardBg",E(i.success.light,.9)),l(i.Alert,"warningStandardBg",E(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-900")),l(i.AppBar,"darkBg",y("palette-background-paper")),l(i.AppBar,"darkColor",y("palette-text-primary")),l(i.Avatar,"defaultBg",y("palette-grey-600")),l(i.Button,"inheritContainedBg",y("palette-grey-800")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-700")),l(i.Chip,"defaultBorder",y("palette-grey-700")),l(i.Chip,"defaultAvatarColor",y("palette-grey-300")),l(i.Chip,"defaultIconColor",y("palette-grey-300")),l(i.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),l(i.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),l(i.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),l(i.LinearProgress,"primaryBg",E(i.primary.main,.5)),l(i.LinearProgress,"secondaryBg",E(i.secondary.main,.5)),l(i.LinearProgress,"errorBg",E(i.error.main,.5)),l(i.LinearProgress,"infoBg",E(i.info.main,.5)),l(i.LinearProgress,"successBg",E(i.success.main,.5)),l(i.LinearProgress,"warningBg",E(i.warning.main,.5)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.13)`),l(i.Slider,"primaryTrack",E(i.primary.main,.5)),l(i.Slider,"secondaryTrack",E(i.secondary.main,.5)),l(i.Slider,"errorTrack",E(i.error.main,.5)),l(i.Slider,"infoTrack",E(i.info.main,.5)),l(i.Slider,"successTrack",E(i.success.main,.5)),l(i.Slider,"warningTrack",E(i.warning.main,.5));const T=Ie(i.background.default,.98);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",J(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",Ie(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-600")),l(i.StepContent,"border",y("palette-grey-600")),l(i.Switch,"defaultColor",y("palette-grey-300")),l(i.Switch,"defaultDisabledColor",y("palette-grey-600")),l(i.Switch,"primaryDisabledColor",E(i.primary.main,.55)),l(i.Switch,"secondaryDisabledColor",E(i.secondary.main,.55)),l(i.Switch,"errorDisabledColor",E(i.error.main,.55)),l(i.Switch,"infoDisabledColor",E(i.info.main,.55)),l(i.Switch,"successDisabledColor",E(i.success.main,.55)),l(i.Switch,"warningDisabledColor",E(i.warning.main,.55)),l(i.TableCell,"border",E(Be(i.divider,1),.68)),l(i.Tooltip,"bg",Be(i.grey[700],.92))}ne(i.background,"default"),ne(i.background,"paper"),ne(i.common,"background"),ne(i.common,"onBackground"),ne(i,"divider"),Object.keys(i).forEach(T=>{const B=i[T];T!=="tonalOffset"&&B&&typeof B=="object"&&(B.main&&l(i[T],"mainChannel",we(xe(B.main))),B.light&&l(i[T],"lightChannel",we(xe(B.light))),B.dark&&l(i[T],"darkChannel",we(xe(B.dark))),B.contrastText&&l(i[T],"contrastTextChannel",we(xe(B.contrastText))),T==="text"&&(ne(i[T],"primary"),ne(i[T],"secondary")),T==="action"&&(B.active&&ne(i[T],"active"),B.selected&&ne(i[T],"selected")))})}),C=t.reduce((H,i)=>K(H,i),C);const k={prefix:o,disableCssColorScheme:a,shouldSkipGeneratingVar:s,getSelector:ni(C)},{vars:A,generateThemeVars:w,generateStyleSheets:D}=Po(C,k);return C.vars=A,Object.entries(C.colorSchemes[C.defaultColorScheme]).forEach(([H,i])=>{C[H]=i}),C.generateThemeVars=w,C.generateStyleSheets=D,C.generateSpacing=function(){return Ir(f.spacing,It(this))},C.getColorSchemeSelector=_o(c),C.spacing=C.generateSpacing(),C.shouldSkipGeneratingVar=s,C.unstable_sxConfig={...ut,...f==null?void 0:f.unstable_sxConfig},C.unstable_sx=function(i){return ye({sx:i,theme:this})},C.toRuntimeSource=Hr,C}function lr(e,t,r){e.colorSchemes&&r&&(e.colorSchemes[t]={...r!==!0&&r,palette:zt({...r===!0?{}:r.palette,mode:t})})}function ci(e={},...t){const{palette:r,cssVariables:n=!1,colorSchemes:a=r?void 0:{light:!0},defaultColorScheme:o=r==null?void 0:r.mode,...s}=e,c=o||"light",u=a==null?void 0:a[c],f={...a,...r?{[c]:{...typeof u!="boolean"&&u,palette:r}}:void 0};if(n===!1){if(!("colorSchemes"in e))return We(e,...t);let p=r;"palette"in e||f[c]&&(f[c]!==!0?p=f[c].palette:c==="dark"&&(p={mode:"dark"}));const d=We({...e,palette:p},...t);return d.defaultColorScheme=c,d.colorSchemes=f,d.palette.mode==="light"&&(d.colorSchemes.light={...f.light!==!0&&f.light,palette:d.palette},lr(d,"dark",f.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...f.dark!==!0&&f.dark,palette:d.palette},lr(d,"light",f.light)),d}return!r&&!("light"in f)&&c==="light"&&(f.light=!0),si({...s,colorSchemes:f,defaultColorScheme:c,...typeof n!="boolean"&&n},...t)}const li=ci();function ui(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const fi=e=>ui(e)&&e!=="classes",di=co({themeId:rn,defaultTheme:li,rootShouldForwardProp:fi}),mi=ko;function pi(e){return xo(e)}function hi(e){return Lr("MuiSvgIcon",e)}const Ri=ao("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),gi=e=>{const{color:t,fontSize:r,classes:n}=e,a={root:["root",t!=="inherit"&&`color${ge(t)}`,`fontSize${ge(r)}`]};return Co(a,hi,n)},yi=di("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,r.color!=="inherit"&&t[`color${ge(r.color)}`],t[`fontSize${ge(r.fontSize)}`]]}})(mi(({theme:e})=>{var t,r,n,a,o,s,c,u,f,p,d,m,b,g;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(a=(t=e.transitions)==null?void 0:t.create)==null?void 0:a.call(t,"fill",{duration:(n=(r=(e.vars??e).transitions)==null?void 0:r.duration)==null?void 0:n.shorter}),variants:[{props:h=>!h.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((s=(o=e.typography)==null?void 0:o.pxToRem)==null?void 0:s.call(o,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((p=(f=e.typography)==null?void 0:f.pxToRem)==null?void 0:p.call(f,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,h])=>h&&h.main).map(([h])=>{var v,S;return{props:{color:h},style:{color:(S=(v=(e.vars??e).palette)==null?void 0:v[h])==null?void 0:S.main}}}),{props:{color:"action"},style:{color:(m=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:m.active}},{props:{color:"disabled"},style:{color:(g=(b=(e.vars??e).palette)==null?void 0:b.action)==null?void 0:g.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),xt=I.forwardRef(function(t,r){const n=pi({props:t,name:"MuiSvgIcon"}),{children:a,className:o,color:s="inherit",component:c="svg",fontSize:u="medium",htmlColor:f,inheritViewBox:p=!1,titleAccess:d,viewBox:m="0 0 24 24",...b}=n,g=I.isValidElement(a)&&a.type==="svg",h={...n,color:s,component:c,fontSize:u,instanceFontSize:t.fontSize,inheritViewBox:p,viewBox:m,hasSvgAsChild:g},v={};p||(v.viewBox=m);const S=gi(h);return ze.jsxs(yi,{as:c,className:ro(S.root,o),focusable:"false",color:f,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:r,...v,...b,...g&&a.props,ownerState:h,children:[g?a.props.children:a,d?ze.jsx("title",{children:d}):null]})});xt.muiName="SvgIcon";function Bi(e,t){function r(n,a){return ze.jsx(xt,{"data-testid":`${t}Icon`,ref:a,...n,children:e})}return r.muiName=xt.muiName,I.memo(I.forwardRef(r))}export{xt as $,Oe as A,Ir as B,oa as C,se as D,li as E,si as F,ue as G,Pe as H,fe as I,ce as J,to as K,ao as L,pi as M,Uo as N,di as O,Ai as P,mi as Q,Zo as R,Lt as S,rn as T,Nt as U,vo as V,fi as W,at as X,ui as Y,po as Z,gt as _,Eo as a,ho as a0,_i as a1,jr as a2,ie as a3,ft as a4,bo as a5,wt as a6,Oi as a7,qo as a8,Vo as a9,ei as aa,ti as ab,Do as ac,zo as ad,ri as ae,Ri as af,hi as ag,Pt as ah,Tr as ai,_t as aj,Ci as ak,Cr as al,$r as am,ki as an,xi as ao,wi as ap,Rn as aq,on as ar,Ei as as,ci as b,Bi as c,So as d,ae as e,ut as f,de as g,ye as h,Gn as i,ze as j,ro as k,co as l,Ct as m,ge as n,Ce as o,Co as p,Fr as q,le as r,ea as s,Lr as t,Pi as u,oe as v,$i as w,It as x,K as y,Ti as z}; diff --git a/admin/assets/createSvgIcon-DMsh-YeH.js b/admin/assets/createSvgIcon-DMsh-YeH.js new file mode 100644 index 000000000..8ea8f7682 --- /dev/null +++ b/admin/assets/createSvgIcon-DMsh-YeH.js @@ -0,0 +1,30 @@ +import{i as I,a as Wt}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{g as Ur}from"./_commonjsHelpers-Cpj98o6Y.js";import{i as Yr,a as qr}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";var ur={exports:{}},Ge={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xr=I,Qr=Symbol.for("react.element"),Zr=Symbol.for("react.fragment"),Jr=Object.prototype.hasOwnProperty,en=Xr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,tn={key:!0,ref:!0,__self:!0,__source:!0};function fr(e,t,r){var n,a={},o=null,s=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(s=t.ref);for(n in t)Jr.call(t,n)&&!tn.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:Qr,type:e,key:o,ref:s,props:a,_owner:en.current}}Ge.Fragment=Zr;Ge.jsx=fr;Ge.jsxs=fr;ur.exports=Ge;var ze=ur.exports;function se(e,...t){const r=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${e}; visit ${r} for the full message.`}const rn="$$material";function gt(){return gt=Object.assign?Object.assign.bind():function(e){for(var t=1;t0?j(be,--V):0,he--,z===10&&(he=1,Ke--),z}function Y(){return z=V2||Te(z)>3?"":" "}function yn(e,t){for(;--t&&Y()&&!(z<48||z>102||z>57&&z<65||z>70&&z<97););return Ee(e,Fe()+(t<6&&re()==32&&Y()==32))}function bt(e){for(;Y();)switch(z){case e:return V;case 34:case 39:e!==34&&e!==39&&bt(z);break;case 40:e===41&&bt(e);break;case 92:Y();break}return V}function bn(e,t){for(;Y()&&e+z!==57;)if(e+z===84&&re()===47)break;return"/*"+Ee(t,V-1)+"*"+He(e===47?e:Y())}function Sn(e){for(;!Te(re());)Y();return Ee(e,V)}function vn(e){return yr(Le("",null,null,null,[""],e=gr(e),0,[0],e))}function Le(e,t,r,n,a,o,s,c,u){for(var f=0,p=0,d=s,m=0,b=0,g=0,h=1,v=1,S=1,$=0,w="",C=a,k=o,A=n,x=w;v;)switch(g=$,$=Y()){case 40:if(g!=108&&j(x,d-1)==58){yt(x+=E(Me($),"&","&\f"),"&\f")!=-1&&(S=-1);break}case 34:case 39:case 91:x+=Me($);break;case 9:case 10:case 13:case 32:x+=gn(g);break;case 92:x+=yn(Fe()-1,7);continue;case 47:switch(re()){case 42:case 47:Re(Cn(bn(Y(),Fe()),t,r),u);break;default:x+="/"}break;case 123*h:c[f++]=ee(x)*S;case 125*h:case 59:case 0:switch($){case 0:case 125:v=0;case 59+p:S==-1&&(x=E(x,/\f/g,"")),b>0&&ee(x)-d&&Re(b>32?Ht(x+";",n,r,d-1):Ht(E(x," ","")+";",n,r,d-2),u);break;case 59:x+=";";default:if(Re(A=Gt(x,t,r,f,p,a,c,w,C=[],k=[],d),o),$===123)if(p===0)Le(x,t,A,A,C,o,d,c,k);else switch(m===99&&j(x,3)===110?100:m){case 100:case 108:case 109:case 115:Le(e,A,A,n&&Re(Gt(e,A,A,0,0,a,c,w,a,C=[],d),k),a,k,d,c,n?C:k);break;default:Le(x,A,A,A,[""],k,0,c,k)}}f=p=b=0,h=S=1,w=x="",d=s;break;case 58:d=1+ee(x),b=g;default:if(h<1){if($==123)--h;else if($==125&&h++==0&&hn()==125)continue}switch(x+=He($),$*h){case 38:S=p>0?1:(x+="\f",-1);break;case 44:c[f++]=(ee(x)-1)*S,S=1;break;case 64:re()===45&&(x+=Me(Y())),m=re(),p=d=ee(w=x+=Sn(Fe())),$++;break;case 45:g===45&&ee(x)==2&&(h=0)}}return o}function Gt(e,t,r,n,a,o,s,c,u,f,p){for(var d=a-1,m=a===0?o:[""],b=Tt(m),g=0,h=0,v=0;g0?m[S]+" "+$:E($,/&\f/g,m[S])))&&(u[v++]=w);return Ve(e,t,r,a===0?kt:c,u,f,p)}function Cn(e,t,r){return Ve(e,t,r,dr,He(pn()),Ae(e,2,-2),0)}function Ht(e,t,r,n){return Ve(e,t,r,At,Ae(e,0,n),Ae(e,n+1,-1),n)}function me(e,t){for(var r="",n=Tt(e),a=0;a6)switch(j(e,t+1)){case 109:if(j(e,t+4)!==45)break;case 102:return E(e,/(.+:)(.+)-([^]+)/,"$1"+P+"$2-$3$1"+je+(j(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~yt(e,"stretch")?Sr(E(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(j(e,t+1)!==115)break;case 6444:switch(j(e,ee(e)-3-(~yt(e,"!important")&&10))){case 107:return E(e,":",":"+P)+e;case 101:return E(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+P+(j(e,14)===45?"inline-":"")+"box$3$1"+P+"$2$3$1"+W+"$2box$3")+e}break;case 5936:switch(j(e,t+11)){case 114:return P+e+W+E(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return P+e+W+E(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return P+e+W+E(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return P+e+W+e+e}return e}var _n=function(t,r,n,a){if(t.length>-1&&!t.return)switch(t.type){case At:t.return=Sr(t.value,t.length);break;case mr:return me([ve(t,{value:E(t.value,"@","@"+P)})],a);case kt:if(t.length)return mn(t.props,function(o){switch(dn(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return me([ve(t,{props:[E(o,/:(read-\w+)/,":"+je+"$1")]})],a);case"::placeholder":return me([ve(t,{props:[E(o,/:(plac\w+)/,":"+P+"input-$1")]}),ve(t,{props:[E(o,/:(plac\w+)/,":"+je+"$1")]}),ve(t,{props:[E(o,/:(plac\w+)/,W+"input-$1")]})],a)}return""})}},On=[_n],Rn=function(t){var r=t.key;if(r==="css"){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,function(h){var v=h.getAttribute("data-emotion");v.indexOf(" ")!==-1&&(document.head.appendChild(h),h.setAttribute("data-s",""))})}var a=t.stylisPlugins||On,o={},s,c=[];s=t.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+r+' "]'),function(h){for(var v=h.getAttribute("data-emotion").split(" "),S=1;S=4;++n,a-=4)r=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(a){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}var Fn={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Mn=/[A-Z]|^ms/g,Ln=/_EMO_([^_]+?)_([^]*?)_EMO_/g,xr=function(t){return t.charCodeAt(1)===45},Vt=function(t){return t!=null&&typeof t!="boolean"},dt=br(function(e){return xr(e)?e:e.replace(Mn,"-$&").toLowerCase()}),Ut=function(t,r){switch(t){case"animation":case"animationName":if(typeof r=="string")return r.replace(Ln,function(n,a,o){return te={name:a,styles:o,next:te},a})}return Fn[t]!==1&&!xr(t)&&typeof r=="number"&&r!==0?r+"px":r};function $e(e,t,r){if(r==null)return"";var n=r;if(n.__emotion_styles!==void 0)return n;switch(typeof r){case"boolean":return"";case"object":{var a=r;if(a.anim===1)return te={name:a.name,styles:a.styles,next:te},a.name;var o=r;if(o.styles!==void 0){var s=o.next;if(s!==void 0)for(;s!==void 0;)te={name:s.name,styles:s.styles,next:te},s=s.next;var c=o.styles+";";return c}return Nn(e,t,r)}case"function":{if(e!==void 0){var u=te,f=r(e);return te=u,$e(e,t,f)}break}}var p=r;if(t==null)return p;var d=t[p];return d!==void 0?d:p}function Nn(e,t,r){var n="";if(Array.isArray(r))for(var a=0;a96?Hn:Kn},Xt=function(t,r,n){var a;if(r){var o=r.shouldForwardProp;a=t.__emotion_forwardProp&&o?function(s){return t.__emotion_forwardProp(s)&&o(s)}:o}return typeof a!="function"&&n&&(a=t.__emotion_forwardProp),a},Vn=function(t){var r=t.cache,n=t.serialized,a=t.isStringTag;return $t(r,n,a),kr(function(){return Cr(r,n,a)}),null},Un=function e(t,r){var n=t.__emotion_real===t,a=n&&t.__emotion_base||t,o,s;r!==void 0&&(o=r.label,s=r.target);var c=Xt(t,r,n),u=c||qt(a),f=!u("as");return function(){var p=arguments,d=n&&t.__emotion_styles!==void 0?t.__emotion_styles.slice(0):[];if(o!==void 0&&d.push("label:"+o+";"),p[0]==null||p[0].raw===void 0)d.push.apply(d,p);else{var m=p[0];d.push(m[0]);for(var b=p.length,g=1;gqn("prop-types",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),Zn=await Qn.then(e=>e());var Jn=Zn;const Ai=Ur(Jn);/** + * @mui/styled-engine v6.4.11 + * + * @license MIT + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */function ea(e,t){return vt(e,t)}function ta(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}const Qt=[];function Zt(e){return Qt[0]=e,Pt(Qt)}var Pr={exports:{}},R={};/** + * @license React + * react-is.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var _t=Symbol.for("react.transitional.element"),Ot=Symbol.for("react.portal"),Ue=Symbol.for("react.fragment"),Ye=Symbol.for("react.strict_mode"),qe=Symbol.for("react.profiler"),Xe=Symbol.for("react.consumer"),Qe=Symbol.for("react.context"),Ze=Symbol.for("react.forward_ref"),Je=Symbol.for("react.suspense"),et=Symbol.for("react.suspense_list"),tt=Symbol.for("react.memo"),rt=Symbol.for("react.lazy"),ra=Symbol.for("react.offscreen"),na=Symbol.for("react.client.reference");function X(e){if(typeof e=="object"&&e!==null){var t=e.$$typeof;switch(t){case _t:switch(e=e.type,e){case Ue:case qe:case Ye:case Je:case et:return e;default:switch(e=e&&e.$$typeof,e){case Qe:case Ze:case rt:case tt:return e;case Xe:return e;default:return t}}case Ot:return t}}}R.ContextConsumer=Xe;R.ContextProvider=Qe;R.Element=_t;R.ForwardRef=Ze;R.Fragment=Ue;R.Lazy=rt;R.Memo=tt;R.Portal=Ot;R.Profiler=qe;R.StrictMode=Ye;R.Suspense=Je;R.SuspenseList=et;R.isContextConsumer=function(e){return X(e)===Xe};R.isContextProvider=function(e){return X(e)===Qe};R.isElement=function(e){return typeof e=="object"&&e!==null&&e.$$typeof===_t};R.isForwardRef=function(e){return X(e)===Ze};R.isFragment=function(e){return X(e)===Ue};R.isLazy=function(e){return X(e)===rt};R.isMemo=function(e){return X(e)===tt};R.isPortal=function(e){return X(e)===Ot};R.isProfiler=function(e){return X(e)===qe};R.isStrictMode=function(e){return X(e)===Ye};R.isSuspense=function(e){return X(e)===Je};R.isSuspenseList=function(e){return X(e)===et};R.isValidElementType=function(e){return typeof e=="string"||typeof e=="function"||e===Ue||e===qe||e===Ye||e===Je||e===et||e===ra||typeof e=="object"&&e!==null&&(e.$$typeof===rt||e.$$typeof===tt||e.$$typeof===Qe||e.$$typeof===Xe||e.$$typeof===Ze||e.$$typeof===na||e.getModuleId!==void 0)};R.typeOf=X;Pr.exports=R;var Er=Pr.exports;function ae(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function _r(e){if(I.isValidElement(e)||Er.isValidElementType(e)||!ae(e))return e;const t={};return Object.keys(e).forEach(r=>{t[r]=_r(e[r])}),t}function K(e,t,r={clone:!0}){const n=r.clone?{...e}:e;return ae(e)&&ae(t)&&Object.keys(t).forEach(a=>{I.isValidElement(t[a])||Er.isValidElementType(t[a])?n[a]=t[a]:ae(t[a])&&Object.prototype.hasOwnProperty.call(e,a)&&ae(e[a])?n[a]=K(e[a],t[a],r):r.clone?n[a]=ae(t[a])?_r(t[a]):t[a]:n[a]=t[a]}),n}const aa=e=>{const t=Object.keys(e).map(r=>({key:r,val:e[r]}))||[];return t.sort((r,n)=>r.val-n.val),t.reduce((r,n)=>({...r,[n.key]:n.val}),{})};function oa(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:n=5,...a}=e,o=aa(t),s=Object.keys(o);function c(m){return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${r})`}function u(m){return`@media (max-width:${(typeof t[m]=="number"?t[m]:m)-n/100}${r})`}function f(m,b){const g=s.indexOf(b);return`@media (min-width:${typeof t[m]=="number"?t[m]:m}${r}) and (max-width:${(g!==-1&&typeof t[s[g]]=="number"?t[s[g]]:b)-n/100}${r})`}function p(m){return s.indexOf(m)+1n.startsWith("@container")).sort((n,a)=>{var s,c;const o=/min-width:\s*([0-9.]+)/;return+(((s=n.match(o))==null?void 0:s[1])||0)-+(((c=a.match(o))==null?void 0:c[1])||0)});return r.length?r.reduce((n,a)=>{const o=t[a];return delete n[a],n[a]=o,n},{...t}):t}function sa(e,t){return t==="@"||t.startsWith("@")&&(e.some(r=>t.startsWith(`@${r}`))||!!t.match(/^@\d/))}function ca(e,t){const r=t.match(/^@([^/]+)?\/?(.+)?$/);if(!r)return null;const[,n,a]=r,o=Number.isNaN(+n)?n||0:+n;return e.containerQueries(a).up(o)}function la(e){const t=(o,s)=>o.replace("@media",s?`@container ${s}`:"@container");function r(o,s){o.up=(...c)=>t(e.breakpoints.up(...c),s),o.down=(...c)=>t(e.breakpoints.down(...c),s),o.between=(...c)=>t(e.breakpoints.between(...c),s),o.only=(...c)=>t(e.breakpoints.only(...c),s),o.not=(...c)=>{const u=t(e.breakpoints.not(...c),s);return u.includes("not all and")?u.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):u}}const n={},a=o=>(r(n,o),n);return r(a),{...e,containerQueries:a}}const ua={borderRadius:4};function ke(e,t){return t?K(e,t,{clone:!1}):e}const nt={xs:0,sm:600,md:900,lg:1200,xl:1536},Jt={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${nt[e]}px)`},fa={containerQueries:e=>({up:t=>{let r=typeof t=="number"?t:nt[t]||t;return typeof r=="number"&&(r=`${r}px`),e?`@container ${e} (min-width:${r})`:`@container (min-width:${r})`}})};function oe(e,t,r){const n=e.theme||{};if(Array.isArray(t)){const o=n.breakpoints||Jt;return t.reduce((s,c,u)=>(s[o.up(o.keys[u])]=r(t[u]),s),{})}if(typeof t=="object"){const o=n.breakpoints||Jt;return Object.keys(t).reduce((s,c)=>{if(sa(o.keys,c)){const u=ca(n.containerQueries?n:fa,c);u&&(s[u]=r(t[c],c))}else if(Object.keys(o.values||nt).includes(c)){const u=o.up(c);s[u]=r(t[c],c)}else{const u=c;s[u]=t[u]}return s},{})}return r(t)}function Or(e={}){var r;return((r=e.keys)==null?void 0:r.reduce((n,a)=>{const o=e.up(a);return n[o]={},n},{}))||{}}function Rr(e,t){return e.reduce((r,n)=>{const a=r[n];return(!a||Object.keys(a).length===0)&&delete r[n],r},t)}function Ti(e,...t){const r=Or(e),n=[r,...t].reduce((a,o)=>K(a,o),{});return Rr(Object.keys(r),n)}function da(e,t){if(typeof e!="object")return{};const r={},n=Object.keys(t);return Array.isArray(e)?n.forEach((a,o)=>{o{e[a]!=null&&(r[a]=!0)}),r}function $i({values:e,breakpoints:t,base:r}){const n=r||da(e,t),a=Object.keys(n);if(a.length===0)return e;let o;return a.reduce((s,c,u)=>(Array.isArray(e)?(s[c]=e[u]!=null?e[u]:e[o],o=u):typeof e=="object"?(s[c]=e[c]!=null?e[c]:e[o],o=c):s[c]=e,s),{})}function ge(e){if(typeof e!="string")throw new Error(se(7));return e.charAt(0).toUpperCase()+e.slice(1)}function at(e,t,r=!0){if(!t||typeof t!="string")return null;if(e&&e.vars&&r){const n=`vars.${t}`.split(".").reduce((a,o)=>a&&a[o]?a[o]:null,e);if(n!=null)return n}return t.split(".").reduce((n,a)=>n&&n[a]!=null?n[a]:null,e)}function De(e,t,r,n=r){let a;return typeof e=="function"?a=e(r):Array.isArray(e)?a=e[r]||n:a=at(e,r)||n,t&&(a=t(a,n,e)),a}function N(e){const{prop:t,cssProperty:r=e.prop,themeKey:n,transform:a}=e,o=s=>{if(s[t]==null)return null;const c=s[t],u=s.theme,f=at(u,n)||{};return oe(s,c,d=>{let m=De(f,a,d);return d===m&&typeof d=="string"&&(m=De(f,a,`${t}${d==="default"?"":ge(d)}`,d)),r===!1?m:{[r]:m}})};return o.propTypes={},o.filterProps=[t],o}function ma(e){const t={};return r=>(t[r]===void 0&&(t[r]=e(r)),t[r])}const pa={m:"margin",p:"padding"},ha={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},er={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},ga=ma(e=>{if(e.length>2)if(er[e])e=er[e];else return[e];const[t,r]=e.split(""),n=pa[t],a=ha[r]||"";return Array.isArray(a)?a.map(o=>n+o):[n+a]}),Rt=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],Bt=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];[...Rt,...Bt];function _e(e,t,r,n){const a=at(e,t,!0)??r;return typeof a=="number"||typeof a=="string"?o=>typeof o=="string"?o:typeof a=="string"?`calc(${o} * ${a})`:a*o:Array.isArray(a)?o=>{if(typeof o=="string")return o;const s=Math.abs(o),c=a[s];return o>=0?c:typeof c=="number"?-c:`-${c}`}:typeof a=="function"?a:()=>{}}function It(e){return _e(e,"spacing",8)}function Oe(e,t){return typeof t=="string"||t==null?t:e(t)}function ya(e,t){return r=>e.reduce((n,a)=>(n[a]=Oe(t,r),n),{})}function ba(e,t,r,n){if(!t.includes(r))return null;const a=ga(r),o=ya(a,n),s=e[r];return oe(e,s,o)}function Br(e,t){const r=It(e.theme);return Object.keys(e).map(n=>ba(e,t,n,r)).reduce(ke,{})}function M(e){return Br(e,Rt)}M.propTypes={};M.filterProps=Rt;function L(e){return Br(e,Bt)}L.propTypes={};L.filterProps=Bt;function Ir(e=8,t=It({spacing:e})){if(e.mui)return e;const r=(...n)=>(n.length===0?[1]:n).map(o=>{const s=t(o);return typeof s=="number"?`${s}px`:s}).join(" ");return r.mui=!0,r}function ot(...e){const t=e.reduce((n,a)=>(a.filterProps.forEach(o=>{n[o]=a}),n),{}),r=n=>Object.keys(n).reduce((a,o)=>t[o]?ke(a,t[o](n)):a,{});return r.propTypes={},r.filterProps=e.reduce((n,a)=>n.concat(a.filterProps),[]),r}function q(e){return typeof e!="number"?e:`${e}px solid`}function Q(e,t){return N({prop:e,themeKey:"borders",transform:t})}const Sa=Q("border",q),va=Q("borderTop",q),Ca=Q("borderRight",q),xa=Q("borderBottom",q),wa=Q("borderLeft",q),ka=Q("borderColor"),Aa=Q("borderTopColor"),Ta=Q("borderRightColor"),$a=Q("borderBottomColor"),Pa=Q("borderLeftColor"),Ea=Q("outline",q),_a=Q("outlineColor"),it=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const t=_e(e.theme,"shape.borderRadius",4),r=n=>({borderRadius:Oe(t,n)});return oe(e,e.borderRadius,r)}return null};it.propTypes={};it.filterProps=["borderRadius"];ot(Sa,va,Ca,xa,wa,ka,Aa,Ta,$a,Pa,it,Ea,_a);const st=e=>{if(e.gap!==void 0&&e.gap!==null){const t=_e(e.theme,"spacing",8),r=n=>({gap:Oe(t,n)});return oe(e,e.gap,r)}return null};st.propTypes={};st.filterProps=["gap"];const ct=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const t=_e(e.theme,"spacing",8),r=n=>({columnGap:Oe(t,n)});return oe(e,e.columnGap,r)}return null};ct.propTypes={};ct.filterProps=["columnGap"];const lt=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const t=_e(e.theme,"spacing",8),r=n=>({rowGap:Oe(t,n)});return oe(e,e.rowGap,r)}return null};lt.propTypes={};lt.filterProps=["rowGap"];const Oa=N({prop:"gridColumn"}),Ra=N({prop:"gridRow"}),Ba=N({prop:"gridAutoFlow"}),Ia=N({prop:"gridAutoColumns"}),Fa=N({prop:"gridAutoRows"}),Ma=N({prop:"gridTemplateColumns"}),La=N({prop:"gridTemplateRows"}),Na=N({prop:"gridTemplateAreas"}),za=N({prop:"gridArea"});ot(st,ct,lt,Oa,Ra,Ba,Ia,Fa,Ma,La,Na,za);function pe(e,t){return t==="grey"?t:e}const ja=N({prop:"color",themeKey:"palette",transform:pe}),Da=N({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:pe}),Wa=N({prop:"backgroundColor",themeKey:"palette",transform:pe});ot(ja,Da,Wa);function U(e){return e<=1&&e!==0?`${e*100}%`:e}const Ga=N({prop:"width",transform:U}),Ft=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const t=r=>{var a,o,s,c,u;const n=((s=(o=(a=e.theme)==null?void 0:a.breakpoints)==null?void 0:o.values)==null?void 0:s[r])||nt[r];return n?((u=(c=e.theme)==null?void 0:c.breakpoints)==null?void 0:u.unit)!=="px"?{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:U(r)}};return oe(e,e.maxWidth,t)}return null};Ft.filterProps=["maxWidth"];const Ha=N({prop:"minWidth",transform:U}),Ka=N({prop:"height",transform:U}),Va=N({prop:"maxHeight",transform:U}),Ua=N({prop:"minHeight",transform:U});N({prop:"size",cssProperty:"width",transform:U});N({prop:"size",cssProperty:"height",transform:U});const Ya=N({prop:"boxSizing"});ot(Ga,Ft,Ha,Ka,Va,Ua,Ya);const ut={border:{themeKey:"borders",transform:q},borderTop:{themeKey:"borders",transform:q},borderRight:{themeKey:"borders",transform:q},borderBottom:{themeKey:"borders",transform:q},borderLeft:{themeKey:"borders",transform:q},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:q},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:it},color:{themeKey:"palette",transform:pe},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:pe},backgroundColor:{themeKey:"palette",transform:pe},p:{style:L},pt:{style:L},pr:{style:L},pb:{style:L},pl:{style:L},px:{style:L},py:{style:L},padding:{style:L},paddingTop:{style:L},paddingRight:{style:L},paddingBottom:{style:L},paddingLeft:{style:L},paddingX:{style:L},paddingY:{style:L},paddingInline:{style:L},paddingInlineStart:{style:L},paddingInlineEnd:{style:L},paddingBlock:{style:L},paddingBlockStart:{style:L},paddingBlockEnd:{style:L},m:{style:M},mt:{style:M},mr:{style:M},mb:{style:M},ml:{style:M},mx:{style:M},my:{style:M},margin:{style:M},marginTop:{style:M},marginRight:{style:M},marginBottom:{style:M},marginLeft:{style:M},marginX:{style:M},marginY:{style:M},marginInline:{style:M},marginInlineStart:{style:M},marginInlineEnd:{style:M},marginBlock:{style:M},marginBlockStart:{style:M},marginBlockEnd:{style:M},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:st},rowGap:{style:lt},columnGap:{style:ct},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:U},maxWidth:{style:Ft},minWidth:{transform:U},height:{transform:U},maxHeight:{transform:U},minHeight:{transform:U},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function qa(...e){const t=e.reduce((n,a)=>n.concat(Object.keys(a)),[]),r=new Set(t);return e.every(n=>r.size===Object.keys(n).length)}function Xa(e,t){return typeof e=="function"?e(t):e}function Qa(){function e(r,n,a,o){const s={[r]:n,theme:a},c=o[r];if(!c)return{[r]:n};const{cssProperty:u=r,themeKey:f,transform:p,style:d}=c;if(n==null)return null;if(f==="typography"&&n==="inherit")return{[r]:n};const m=at(a,f)||{};return d?d(s):oe(s,n,g=>{let h=De(m,p,g);return g===h&&typeof g=="string"&&(h=De(m,p,`${r}${g==="default"?"":ge(g)}`,g)),u===!1?h:{[u]:h}})}function t(r){const{sx:n,theme:a={}}=r||{};if(!n)return null;const o=a.unstable_sxConfig??ut;function s(c){let u=c;if(typeof c=="function")u=c(a);else if(typeof c!="object")return c;if(!u)return null;const f=Or(a.breakpoints),p=Object.keys(f);let d=f;return Object.keys(u).forEach(m=>{const b=Xa(u[m],a);if(b!=null)if(typeof b=="object")if(o[m])d=ke(d,e(m,b,a,o));else{const g=oe({theme:a},b,h=>({[m]:h}));qa(g,b)?d[m]=t({sx:b,theme:a}):d=ke(d,g)}else d=ke(d,e(m,b,a,o))}),ia(a,Rr(p,d))}return Array.isArray(n)?n.map(s):s(n)}return t}const ye=Qa();ye.filterProps=["sx"];function Za(e,t){var n;const r=this;if(r.vars){if(!((n=r.colorSchemes)!=null&&n[e])||typeof r.getColorSchemeSelector!="function")return{};let a=r.getColorSchemeSelector(e);return a==="&"?t:((a.includes("data-")||a.includes("."))&&(a=`*:where(${a.replace(/\s*&$/,"")}) &`),{[a]:t})}return r.palette.mode===e?t:{}}function Fr(e={},...t){const{breakpoints:r={},palette:n={},spacing:a,shape:o={},...s}=e,c=oa(r),u=Ir(a);let f=K({breakpoints:c,direction:"ltr",components:{},palette:{mode:"light",...n},spacing:u,shape:{...ua,...o}},s);return f=la(f),f.applyStyles=Za,f=t.reduce((p,d)=>K(p,d),f),f.unstable_sxConfig={...ut,...s==null?void 0:s.unstable_sxConfig},f.unstable_sx=function(d){return ye({sx:d,theme:this})},f}function Ja(e){return Object.keys(e).length===0}function Pi(e=null){const t=I.useContext(Et);return!t||Ja(t)?e:t}const tr=e=>e,eo=()=>{let e=tr;return{configure(t){e=t},generate(t){return e(t)},reset(){e=tr}}},to=eo();function Mr(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{n[a]=Lr(e,a,r)}),n}function Nr(e){const{variants:t,...r}=e,n={variants:t,style:Zt(r),isProcessed:!0};return n.style===r||t&&t.forEach(a=>{typeof a.style!="function"&&(a.style=Zt(a.style))}),n}const oo=Fr();function mt(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}function io(e){return e?(t,r)=>r[e]:null}function so(e,t,r){e.theme=uo(e.theme)?r:e.theme[t]||e.theme}function Ne(e,t){const r=typeof t=="function"?t(e):t;if(Array.isArray(r))return r.flatMap(n=>Ne(e,n));if(Array.isArray(r==null?void 0:r.variants)){let n;if(r.isProcessed)n=r.style;else{const{variants:a,...o}=r;n=o}return zr(e,r.variants,[n])}return r!=null&&r.isProcessed?r.style:r}function zr(e,t,r=[]){var a;let n;e:for(let o=0;o{ta(c,k=>k.filter(A=>A!==ye));const{name:f,slot:p,skipVariantsResolver:d,skipSx:m,overridesResolver:b=io(mo(p)),...g}=u,h=d!==void 0?d:p&&p!=="Root"&&p!=="root"||!1,v=m||!1;let S=mt;p==="Root"||p==="root"?S=n:p?S=a:fo(c)&&(S=void 0);const $=ea(c,{shouldForwardProp:S,label:lo(),...g}),w=k=>{if(k.__emotion_real===k)return k;if(typeof k=="function")return function(x){return Ne(x,k)};if(ae(k)){const A=Nr(k);return A.variants?function(D){return Ne(D,A)}:A.style}return k},C=(...k)=>{const A=[],x=k.map(w),D=[];if(A.push(o),f&&b&&D.push(function(T){var Se,jt;const G=(jt=(Se=T.theme.components)==null?void 0:Se[f])==null?void 0:jt.styleOverrides;if(!G)return null;const Z={};for(const Dt in G)Z[Dt]=Ne(T,G[Dt]);return b(T,Z)}),f&&!h&&D.push(function(T){var Z,Se;const B=T.theme,G=(Se=(Z=B==null?void 0:B.components)==null?void 0:Z[f])==null?void 0:Se.variants;return G?zr(T,G):null}),v||D.push(ye),Array.isArray(x[0])){const y=x.shift(),T=new Array(A.length).fill(""),B=new Array(D.length).fill("");let G;G=[...T,...y,...B],G.raw=[...T,...y.raw,...B],A.unshift(G)}const H=[...A,...x,...D],i=$(...H);return c.muiName&&(i.muiName=c.muiName),i};return $.withConfig&&(C.withConfig=$.withConfig),C}}function lo(e,t){return void 0}function uo(e){for(const t in e)return!1;return!0}function fo(e){return typeof e=="string"&&e.charCodeAt(0)>96}function mo(e){return e&&e.charAt(0).toLowerCase()+e.slice(1)}function Ct(e,t){const r={...t};for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const a=n;if(a==="components"||a==="slots")r[a]={...e[a],...r[a]};else if(a==="componentsProps"||a==="slotProps"){const o=e[a],s=t[a];if(!s)r[a]=o||{};else if(!o)r[a]=s;else{r[a]={...s};for(const c in o)if(Object.prototype.hasOwnProperty.call(o,c)){const u=c;r[a][u]=Ct(o[u],s[u])}}}else r[a]===void 0&&(r[a]=e[a])}return r}function po(e,t=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,r))}function Mt(e,t=0,r=1){return po(e,t,r)}function ho(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let r=e.match(t);return r&&r[0].length===1&&(r=r.map(n=>n+n)),r?`rgb${r.length===4?"a":""}(${r.map((n,a)=>a<3?parseInt(n,16):Math.round(parseInt(n,16)/255*1e3)/1e3).join(", ")})`:""}function go(e){const t=e.toString(16);return t.length===1?`0${t}`:t}function ie(e){if(e.type)return e;if(e.charAt(0)==="#")return ie(ho(e));const t=e.indexOf("("),r=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(r))throw new Error(se(9,e));let n=e.substring(t+1,e.length-1),a;if(r==="color"){if(n=n.split(" "),a=n.shift(),n.length===4&&n[3].charAt(0)==="/"&&(n[3]=n[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(a))throw new Error(se(10,a))}else n=n.split(",");return n=n.map(o=>parseFloat(o)),{type:r,values:n,colorSpace:a}}const yo=e=>{const t=ie(e);return t.values.slice(0,3).map((r,n)=>t.type.includes("hsl")&&n!==0?`${r}%`:r).join(" ")},xe=(e,t)=>{try{return yo(e)}catch{return e}};function ft(e){const{type:t,colorSpace:r}=e;let{values:n}=e;return t.includes("rgb")?n=n.map((a,o)=>o<3?parseInt(a,10):a):t.includes("hsl")&&(n[1]=`${n[1]}%`,n[2]=`${n[2]}%`),t.includes("color")?n=`${r} ${n.join(" ")}`:n=`${n.join(", ")}`,`${t}(${n})`}function Ei(e){if(e.startsWith("#"))return e;const{values:t}=ie(e);return`#${t.map((r,n)=>go(n===3?Math.round(255*r):r)).join("")}`}function jr(e){e=ie(e);const{values:t}=e,r=t[0],n=t[1]/100,a=t[2]/100,o=n*Math.min(a,1-a),s=(f,p=(f+r/30)%12)=>a-o*Math.max(Math.min(p-3,9-p,1),-1);let c="rgb";const u=[Math.round(s(0)*255),Math.round(s(8)*255),Math.round(s(4)*255)];return e.type==="hsla"&&(c+="a",u.push(t[3])),ft({type:c,values:u})}function xt(e){e=ie(e);let t=e.type==="hsl"||e.type==="hsla"?ie(jr(e)).values:e.values;return t=t.map(r=>(e.type!=="color"&&(r/=255),r<=.03928?r/12.92:((r+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function bo(e,t){const r=xt(e),n=xt(t);return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)}function So(e,t){return e=ie(e),t=Mt(t),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${t}`:e.values[3]=t,ft(e)}function Be(e,t,r){try{return So(e,t)}catch{return e}}function Lt(e,t){if(e=ie(e),t=Mt(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let r=0;r<3;r+=1)e.values[r]*=1-t;return ft(e)}function _(e,t,r){try{return Lt(e,t)}catch{return e}}function Nt(e,t){if(e=ie(e),t=Mt(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let r=0;r<3;r+=1)e.values[r]+=(255-e.values[r])*t;else if(e.type.includes("color"))for(let r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return ft(e)}function O(e,t,r){try{return Nt(e,t)}catch{return e}}function vo(e,t=.15){return xt(e)>.5?Lt(e,t):Nt(e,t)}function Ie(e,t,r){try{return vo(e,t)}catch{return e}}function Co(e,t,r=void 0){const n={};for(const a in e){const o=e[a];let s="",c=!0;for(let u=0;u`var(--${e?`${e}-`:""}${n}${t(...a)})`}const nr=(e,t,r,n=[])=>{let a=e;t.forEach((o,s)=>{s===t.length-1?Array.isArray(a)?a[Number(o)]=r:a&&typeof a=="object"&&(a[o]=r):a&&typeof a=="object"&&(a[o]||(a[o]=n.includes(o)?[]:{}),a=a[o])})},To=(e,t,r)=>{function n(a,o=[],s=[]){Object.entries(a).forEach(([c,u])=>{(!r||r&&!r([...o,c]))&&u!=null&&(typeof u=="object"&&Object.keys(u).length>0?n(u,[...o,c],Array.isArray(u)?[...s,c]:s):t([...o,c],u,s))})}n(e)},$o=(e,t)=>typeof t=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(n=>e.includes(n))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function pt(e,t){const{prefix:r,shouldSkipGeneratingVar:n}=t||{},a={},o={},s={};return To(e,(c,u,f)=>{if((typeof u=="string"||typeof u=="number")&&(!n||!n(c,u))){const p=`--${r?`${r}-`:""}${c.join("-")}`,d=$o(c,u);Object.assign(a,{[p]:d}),nr(o,c,`var(${p})`,f),nr(s,c,`var(${p}, ${d})`,f)}},c=>c[0]==="vars"),{css:a,vars:o,varsWithDefaults:s}}function Po(e,t={}){const{getSelector:r=v,disableCssColorScheme:n,colorSchemeSelector:a}=t,{colorSchemes:o={},components:s,defaultColorScheme:c="light",...u}=e,{vars:f,css:p,varsWithDefaults:d}=pt(u,t);let m=d;const b={},{[c]:g,...h}=o;if(Object.entries(h||{}).forEach(([w,C])=>{const{vars:k,css:A,varsWithDefaults:x}=pt(C,t);m=K(m,x),b[w]={css:A,vars:k}}),g){const{css:w,vars:C,varsWithDefaults:k}=pt(g,t);m=K(m,k),b[c]={css:w,vars:C}}function v(w,C){var A,x;let k=a;if(a==="class"&&(k=".%s"),a==="data"&&(k="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(k=`[${a}="%s"]`),w){if(k==="media")return e.defaultColorScheme===w?":root":{[`@media (prefers-color-scheme: ${((x=(A=o[w])==null?void 0:A.palette)==null?void 0:x.mode)||w})`]:{":root":C}};if(k)return e.defaultColorScheme===w?`:root, ${k.replace("%s",String(w))}`:k.replace("%s",String(w))}return":root"}return{vars:m,generateThemeVars:()=>{let w={...f};return Object.entries(b).forEach(([,{vars:C}])=>{w=K(w,C)}),w},generateStyleSheets:()=>{var D,H;const w=[],C=e.defaultColorScheme||"light";function k(i,y){Object.keys(y).length&&w.push(typeof i=="string"?{[i]:{...y}}:i)}k(r(void 0,{...p}),p);const{[C]:A,...x}=b;if(A){const{css:i}=A,y=(H=(D=o[C])==null?void 0:D.palette)==null?void 0:H.mode,T=!n&&y?{colorScheme:y,...i}:{...i};k(r(C,{...T}),T)}return Object.entries(x).forEach(([i,{css:y}])=>{var G,Z;const T=(Z=(G=o[i])==null?void 0:G.palette)==null?void 0:Z.mode,B=!n&&T?{colorScheme:T,...y}:{...y};k(r(i,{...B}),B)}),w}}}function Eo(e){return function(r){return e==="media"?`@media (prefers-color-scheme: ${r})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${r}"] &`:e==="class"?`.${r} &`:e==="data"?`[data-${r}] &`:`${e.replace("%s",r)} &`:"&"}}const Pe={black:"#000",white:"#fff"},_o={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},ce={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},le={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Ce={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},ue={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},fe={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},de={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"};function Wr(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:Pe.white,default:Pe.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const Oo=Wr();function Gr(){return{text:{primary:Pe.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:Pe.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const ar=Gr();function or(e,t,r,n){const a=n.light||n,o=n.dark||n*1.5;e[t]||(e.hasOwnProperty(r)?e[t]=e[r]:t==="light"?e.light=Nt(e.main,a):t==="dark"&&(e.dark=Lt(e.main,o)))}function Ro(e="light"){return e==="dark"?{main:ue[200],light:ue[50],dark:ue[400]}:{main:ue[700],light:ue[400],dark:ue[800]}}function Bo(e="light"){return e==="dark"?{main:ce[200],light:ce[50],dark:ce[400]}:{main:ce[500],light:ce[300],dark:ce[700]}}function Io(e="light"){return e==="dark"?{main:le[500],light:le[300],dark:le[700]}:{main:le[700],light:le[400],dark:le[800]}}function Fo(e="light"){return e==="dark"?{main:fe[400],light:fe[300],dark:fe[700]}:{main:fe[700],light:fe[500],dark:fe[900]}}function Mo(e="light"){return e==="dark"?{main:de[400],light:de[300],dark:de[700]}:{main:de[800],light:de[500],dark:de[900]}}function Lo(e="light"){return e==="dark"?{main:Ce[400],light:Ce[300],dark:Ce[700]}:{main:"#ed6c02",light:Ce[500],dark:Ce[900]}}function zt(e){const{mode:t="light",contrastThreshold:r=3,tonalOffset:n=.2,...a}=e,o=e.primary||Ro(t),s=e.secondary||Bo(t),c=e.error||Io(t),u=e.info||Fo(t),f=e.success||Mo(t),p=e.warning||Lo(t);function d(h){return bo(h,ar.text.primary)>=r?ar.text.primary:Oo.text.primary}const m=({color:h,name:v,mainShade:S=500,lightShade:$=300,darkShade:w=700})=>{if(h={...h},!h.main&&h[S]&&(h.main=h[S]),!h.hasOwnProperty("main"))throw new Error(se(11,v?` (${v})`:"",S));if(typeof h.main!="string")throw new Error(se(12,v?` (${v})`:"",JSON.stringify(h.main)));return or(h,"light",$,n),or(h,"dark",w,n),h.contrastText||(h.contrastText=d(h.main)),h};let b;return t==="light"?b=Wr():t==="dark"&&(b=Gr()),K({common:{...Pe},mode:t,primary:m({color:o,name:"primary"}),secondary:m({color:s,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:m({color:c,name:"error"}),warning:m({color:p,name:"warning"}),info:m({color:u,name:"info"}),success:m({color:f,name:"success"}),grey:_o,contrastThreshold:r,getContrastText:d,augmentColor:m,tonalOffset:n,...b},a)}function No(e){const t={};return Object.entries(e).forEach(n=>{const[a,o]=n;typeof o=="object"&&(t[a]=`${o.fontStyle?`${o.fontStyle} `:""}${o.fontVariant?`${o.fontVariant} `:""}${o.fontWeight?`${o.fontWeight} `:""}${o.fontStretch?`${o.fontStretch} `:""}${o.fontSize||""}${o.lineHeight?`/${o.lineHeight} `:""}${o.fontFamily||""}`)}),t}function zo(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function jo(e){return Math.round(e*1e5)/1e5}const ir={textTransform:"uppercase"},sr='"Roboto", "Helvetica", "Arial", sans-serif';function Do(e,t){const{fontFamily:r=sr,fontSize:n=14,fontWeightLight:a=300,fontWeightRegular:o=400,fontWeightMedium:s=500,fontWeightBold:c=700,htmlFontSize:u=16,allVariants:f,pxToRem:p,...d}=typeof t=="function"?t(e):t,m=n/14,b=p||(v=>`${v/u*m}rem`),g=(v,S,$,w,C)=>({fontFamily:r,fontWeight:v,fontSize:b(S),lineHeight:$,...r===sr?{letterSpacing:`${jo(w/S)}em`}:{},...C,...f}),h={h1:g(a,96,1.167,-1.5),h2:g(a,60,1.2,-.5),h3:g(o,48,1.167,0),h4:g(o,34,1.235,.25),h5:g(o,24,1.334,0),h6:g(s,20,1.6,.15),subtitle1:g(o,16,1.75,.15),subtitle2:g(s,14,1.57,.1),body1:g(o,16,1.5,.15),body2:g(o,14,1.43,.15),button:g(s,14,1.75,.4,ir),caption:g(o,12,1.66,.4),overline:g(o,12,2.66,1,ir),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return K({htmlFontSize:u,pxToRem:b,fontFamily:r,fontSize:n,fontWeightLight:a,fontWeightRegular:o,fontWeightMedium:s,fontWeightBold:c,...h},d,{clone:!1})}const Wo=.2,Go=.14,Ho=.12;function F(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${Wo})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${Go})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${Ho})`].join(",")}const Ko=["none",F(0,2,1,-1,0,1,1,0,0,1,3,0),F(0,3,1,-2,0,2,2,0,0,1,5,0),F(0,3,3,-2,0,3,4,0,0,1,8,0),F(0,2,4,-1,0,4,5,0,0,1,10,0),F(0,3,5,-1,0,5,8,0,0,1,14,0),F(0,3,5,-1,0,6,10,0,0,1,18,0),F(0,4,5,-2,0,7,10,1,0,2,16,1),F(0,5,5,-3,0,8,10,1,0,3,14,2),F(0,5,6,-3,0,9,12,1,0,3,16,2),F(0,6,6,-3,0,10,14,1,0,4,18,3),F(0,6,7,-4,0,11,15,1,0,4,20,3),F(0,7,8,-4,0,12,17,2,0,5,22,4),F(0,7,8,-4,0,13,19,2,0,5,24,4),F(0,7,9,-4,0,14,21,2,0,5,26,4),F(0,8,9,-5,0,15,22,2,0,6,28,5),F(0,8,10,-5,0,16,24,2,0,6,30,5),F(0,8,11,-5,0,17,26,2,0,6,32,5),F(0,9,11,-5,0,18,28,2,0,7,34,6),F(0,9,12,-6,0,19,29,2,0,7,36,6),F(0,10,13,-6,0,20,31,3,0,8,38,7),F(0,10,13,-6,0,21,33,3,0,8,40,7),F(0,10,14,-6,0,22,35,3,0,8,42,7),F(0,11,14,-7,0,23,36,3,0,9,44,8),F(0,11,15,-7,0,24,38,3,0,9,46,8)],Vo={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Uo={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function cr(e){return`${Math.round(e)}ms`}function Yo(e){if(!e)return 0;const t=e/36;return Math.min(Math.round((4+15*t**.25+t/5)*10),3e3)}function qo(e){const t={...Vo,...e.easing},r={...Uo,...e.duration};return{getAutoHeightDuration:Yo,create:(a=["all"],o={})=>{const{duration:s=r.standard,easing:c=t.easeInOut,delay:u=0,...f}=o;return(Array.isArray(a)?a:[a]).map(p=>`${p} ${typeof s=="string"?s:cr(s)} ${c} ${typeof u=="string"?u:cr(u)}`).join(",")},...e,easing:t,duration:r}}const Xo={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function Qo(e){return ae(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function Hr(e={}){const t={...e};function r(n){const a=Object.entries(n);for(let o=0;oK(b,g),m),m.unstable_sxConfig={...ut,...f==null?void 0:f.unstable_sxConfig},m.unstable_sx=function(g){return ye({sx:g,theme:this})},m.toRuntimeSource=Hr,m}function Oi(...e){return We(...e)}function Zo(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const Jo=[...Array(25)].map((e,t)=>{if(t===0)return"none";const r=Zo(t);return`linear-gradient(rgba(255 255 255 / ${r}), rgba(255 255 255 / ${r}))`});function Kr(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function Vr(e){return e==="dark"?Jo:[]}function ei(e){const{palette:t={mode:"light"},opacity:r,overlays:n,...a}=e,o=zt(t);return{palette:o,opacity:{...Kr(o.mode),...r},overlays:n||Vr(o.mode),...a}}function ti(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const ri=e=>[...[...Array(25)].map((t,r)=>`--${e?`${e}-`:""}overlays-${r}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],ni=e=>(t,r)=>{const n=e.rootSelector||":root",a=e.colorSchemeSelector;let o=a;if(a==="class"&&(o=".%s"),a==="data"&&(o="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(o=`[${a}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const s={};return ri(e.cssVarPrefix).forEach(c=>{s[c]=r[c],delete r[c]}),o==="media"?{[n]:r,"@media (prefers-color-scheme: dark)":{[n]:s}}:o?{[o.replace("%s",t)]:s,[`${n}, ${o.replace("%s",t)}`]:r}:{[n]:{...r,...s}}}if(o&&o!=="media")return`${n}, ${o.replace("%s",String(t))}`}else if(t){if(o==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[n]:r}};if(o)return o.replace("%s",String(t))}return n};function ai(e,t){t.forEach(r=>{e[r]||(e[r]={})})}function l(e,t,r){!e[t]&&r&&(e[t]=r)}function we(e){return typeof e!="string"||!e.startsWith("hsl")?e:jr(e)}function ne(e,t){`${t}Channel`in e||(e[`${t}Channel`]=xe(we(e[t])))}function oi(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const J=e=>{try{return e()}catch{}},ii=(e="mui")=>Ao(e);function ht(e,t,r,n){if(!t)return;t=t===!0?{}:t;const a=n==="dark"?"dark":"light";if(!r){e[n]=ei({...t,palette:{mode:a,...t==null?void 0:t.palette}});return}const{palette:o,...s}=We({...r,palette:{mode:a,...t==null?void 0:t.palette}});return e[n]={...t,palette:o,opacity:{...Kr(a),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||Vr(a)},s}function si(e={},...t){const{colorSchemes:r={light:!0},defaultColorScheme:n,disableCssColorScheme:a=!1,cssVarPrefix:o="mui",shouldSkipGeneratingVar:s=ti,colorSchemeSelector:c=r.light&&r.dark?"media":void 0,rootSelector:u=":root",...f}=e,p=Object.keys(r)[0],d=n||(r.light&&p!=="light"?"light":p),m=ii(o),{[d]:b,light:g,dark:h,...v}=r,S={...v};let $=b;if((d==="dark"&&!("dark"in r)||d==="light"&&!("light"in r))&&($=!0),!$)throw new Error(se(21,d));const w=ht(S,$,f,d);g&&!S.light&&ht(S,g,void 0,"light"),h&&!S.dark&&ht(S,h,void 0,"dark");let C={defaultColorScheme:d,...w,cssVarPrefix:o,colorSchemeSelector:c,rootSelector:u,getCssVar:m,colorSchemes:S,font:{...No(w.typography),...w.font},spacing:oi(f.spacing)};Object.keys(C.colorSchemes).forEach(H=>{const i=C.colorSchemes[H].palette,y=T=>{const B=T.split("-"),G=B[1],Z=B[2];return m(T,i[G][Z])};if(i.mode==="light"&&(l(i.common,"background","#fff"),l(i.common,"onBackground","#000")),i.mode==="dark"&&(l(i.common,"background","#000"),l(i.common,"onBackground","#fff")),ai(i,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),i.mode==="light"){l(i.Alert,"errorColor",_(i.error.light,.6)),l(i.Alert,"infoColor",_(i.info.light,.6)),l(i.Alert,"successColor",_(i.success.light,.6)),l(i.Alert,"warningColor",_(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-main")),l(i.Alert,"infoFilledBg",y("palette-info-main")),l(i.Alert,"successFilledBg",y("palette-success-main")),l(i.Alert,"warningFilledBg",y("palette-warning-main")),l(i.Alert,"errorFilledColor",J(()=>i.getContrastText(i.error.main))),l(i.Alert,"infoFilledColor",J(()=>i.getContrastText(i.info.main))),l(i.Alert,"successFilledColor",J(()=>i.getContrastText(i.success.main))),l(i.Alert,"warningFilledColor",J(()=>i.getContrastText(i.warning.main))),l(i.Alert,"errorStandardBg",O(i.error.light,.9)),l(i.Alert,"infoStandardBg",O(i.info.light,.9)),l(i.Alert,"successStandardBg",O(i.success.light,.9)),l(i.Alert,"warningStandardBg",O(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-100")),l(i.Avatar,"defaultBg",y("palette-grey-400")),l(i.Button,"inheritContainedBg",y("palette-grey-300")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-A100")),l(i.Chip,"defaultBorder",y("palette-grey-400")),l(i.Chip,"defaultAvatarColor",y("palette-grey-700")),l(i.Chip,"defaultIconColor",y("palette-grey-700")),l(i.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),l(i.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),l(i.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),l(i.LinearProgress,"primaryBg",O(i.primary.main,.62)),l(i.LinearProgress,"secondaryBg",O(i.secondary.main,.62)),l(i.LinearProgress,"errorBg",O(i.error.main,.62)),l(i.LinearProgress,"infoBg",O(i.info.main,.62)),l(i.LinearProgress,"successBg",O(i.success.main,.62)),l(i.LinearProgress,"warningBg",O(i.warning.main,.62)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.11)`),l(i.Slider,"primaryTrack",O(i.primary.main,.62)),l(i.Slider,"secondaryTrack",O(i.secondary.main,.62)),l(i.Slider,"errorTrack",O(i.error.main,.62)),l(i.Slider,"infoTrack",O(i.info.main,.62)),l(i.Slider,"successTrack",O(i.success.main,.62)),l(i.Slider,"warningTrack",O(i.warning.main,.62));const T=Ie(i.background.default,.8);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",J(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",Ie(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-400")),l(i.StepContent,"border",y("palette-grey-400")),l(i.Switch,"defaultColor",y("palette-common-white")),l(i.Switch,"defaultDisabledColor",y("palette-grey-100")),l(i.Switch,"primaryDisabledColor",O(i.primary.main,.62)),l(i.Switch,"secondaryDisabledColor",O(i.secondary.main,.62)),l(i.Switch,"errorDisabledColor",O(i.error.main,.62)),l(i.Switch,"infoDisabledColor",O(i.info.main,.62)),l(i.Switch,"successDisabledColor",O(i.success.main,.62)),l(i.Switch,"warningDisabledColor",O(i.warning.main,.62)),l(i.TableCell,"border",O(Be(i.divider,1),.88)),l(i.Tooltip,"bg",Be(i.grey[700],.92))}if(i.mode==="dark"){l(i.Alert,"errorColor",O(i.error.light,.6)),l(i.Alert,"infoColor",O(i.info.light,.6)),l(i.Alert,"successColor",O(i.success.light,.6)),l(i.Alert,"warningColor",O(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-dark")),l(i.Alert,"infoFilledBg",y("palette-info-dark")),l(i.Alert,"successFilledBg",y("palette-success-dark")),l(i.Alert,"warningFilledBg",y("palette-warning-dark")),l(i.Alert,"errorFilledColor",J(()=>i.getContrastText(i.error.dark))),l(i.Alert,"infoFilledColor",J(()=>i.getContrastText(i.info.dark))),l(i.Alert,"successFilledColor",J(()=>i.getContrastText(i.success.dark))),l(i.Alert,"warningFilledColor",J(()=>i.getContrastText(i.warning.dark))),l(i.Alert,"errorStandardBg",_(i.error.light,.9)),l(i.Alert,"infoStandardBg",_(i.info.light,.9)),l(i.Alert,"successStandardBg",_(i.success.light,.9)),l(i.Alert,"warningStandardBg",_(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-900")),l(i.AppBar,"darkBg",y("palette-background-paper")),l(i.AppBar,"darkColor",y("palette-text-primary")),l(i.Avatar,"defaultBg",y("palette-grey-600")),l(i.Button,"inheritContainedBg",y("palette-grey-800")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-700")),l(i.Chip,"defaultBorder",y("palette-grey-700")),l(i.Chip,"defaultAvatarColor",y("palette-grey-300")),l(i.Chip,"defaultIconColor",y("palette-grey-300")),l(i.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),l(i.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),l(i.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),l(i.LinearProgress,"primaryBg",_(i.primary.main,.5)),l(i.LinearProgress,"secondaryBg",_(i.secondary.main,.5)),l(i.LinearProgress,"errorBg",_(i.error.main,.5)),l(i.LinearProgress,"infoBg",_(i.info.main,.5)),l(i.LinearProgress,"successBg",_(i.success.main,.5)),l(i.LinearProgress,"warningBg",_(i.warning.main,.5)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.13)`),l(i.Slider,"primaryTrack",_(i.primary.main,.5)),l(i.Slider,"secondaryTrack",_(i.secondary.main,.5)),l(i.Slider,"errorTrack",_(i.error.main,.5)),l(i.Slider,"infoTrack",_(i.info.main,.5)),l(i.Slider,"successTrack",_(i.success.main,.5)),l(i.Slider,"warningTrack",_(i.warning.main,.5));const T=Ie(i.background.default,.98);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",J(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",Ie(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-600")),l(i.StepContent,"border",y("palette-grey-600")),l(i.Switch,"defaultColor",y("palette-grey-300")),l(i.Switch,"defaultDisabledColor",y("palette-grey-600")),l(i.Switch,"primaryDisabledColor",_(i.primary.main,.55)),l(i.Switch,"secondaryDisabledColor",_(i.secondary.main,.55)),l(i.Switch,"errorDisabledColor",_(i.error.main,.55)),l(i.Switch,"infoDisabledColor",_(i.info.main,.55)),l(i.Switch,"successDisabledColor",_(i.success.main,.55)),l(i.Switch,"warningDisabledColor",_(i.warning.main,.55)),l(i.TableCell,"border",_(Be(i.divider,1),.68)),l(i.Tooltip,"bg",Be(i.grey[700],.92))}ne(i.background,"default"),ne(i.background,"paper"),ne(i.common,"background"),ne(i.common,"onBackground"),ne(i,"divider"),Object.keys(i).forEach(T=>{const B=i[T];T!=="tonalOffset"&&B&&typeof B=="object"&&(B.main&&l(i[T],"mainChannel",xe(we(B.main))),B.light&&l(i[T],"lightChannel",xe(we(B.light))),B.dark&&l(i[T],"darkChannel",xe(we(B.dark))),B.contrastText&&l(i[T],"contrastTextChannel",xe(we(B.contrastText))),T==="text"&&(ne(i[T],"primary"),ne(i[T],"secondary")),T==="action"&&(B.active&&ne(i[T],"active"),B.selected&&ne(i[T],"selected")))})}),C=t.reduce((H,i)=>K(H,i),C);const k={prefix:o,disableCssColorScheme:a,shouldSkipGeneratingVar:s,getSelector:ni(C)},{vars:A,generateThemeVars:x,generateStyleSheets:D}=Po(C,k);return C.vars=A,Object.entries(C.colorSchemes[C.defaultColorScheme]).forEach(([H,i])=>{C[H]=i}),C.generateThemeVars=x,C.generateStyleSheets=D,C.generateSpacing=function(){return Ir(f.spacing,It(this))},C.getColorSchemeSelector=Eo(c),C.spacing=C.generateSpacing(),C.shouldSkipGeneratingVar=s,C.unstable_sxConfig={...ut,...f==null?void 0:f.unstable_sxConfig},C.unstable_sx=function(i){return ye({sx:i,theme:this})},C.toRuntimeSource=Hr,C}function lr(e,t,r){e.colorSchemes&&r&&(e.colorSchemes[t]={...r!==!0&&r,palette:zt({...r===!0?{}:r.palette,mode:t})})}function ci(e={},...t){const{palette:r,cssVariables:n=!1,colorSchemes:a=r?void 0:{light:!0},defaultColorScheme:o=r==null?void 0:r.mode,...s}=e,c=o||"light",u=a==null?void 0:a[c],f={...a,...r?{[c]:{...typeof u!="boolean"&&u,palette:r}}:void 0};if(n===!1){if(!("colorSchemes"in e))return We(e,...t);let p=r;"palette"in e||f[c]&&(f[c]!==!0?p=f[c].palette:c==="dark"&&(p={mode:"dark"}));const d=We({...e,palette:p},...t);return d.defaultColorScheme=c,d.colorSchemes=f,d.palette.mode==="light"&&(d.colorSchemes.light={...f.light!==!0&&f.light,palette:d.palette},lr(d,"dark",f.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...f.dark!==!0&&f.dark,palette:d.palette},lr(d,"light",f.light)),d}return!r&&!("light"in f)&&c==="light"&&(f.light=!0),si({...s,colorSchemes:f,defaultColorScheme:c,...typeof n!="boolean"&&n},...t)}const li=ci();function ui(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const fi=e=>ui(e)&&e!=="classes",di=co({themeId:rn,defaultTheme:li,rootShouldForwardProp:fi}),mi=ko;function pi(e){return wo(e)}function hi(e){return Lr("MuiSvgIcon",e)}const Ri=ao("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),gi=e=>{const{color:t,fontSize:r,classes:n}=e,a={root:["root",t!=="inherit"&&`color${ge(t)}`,`fontSize${ge(r)}`]};return Co(a,hi,n)},yi=di("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,r.color!=="inherit"&&t[`color${ge(r.color)}`],t[`fontSize${ge(r.fontSize)}`]]}})(mi(({theme:e})=>{var t,r,n,a,o,s,c,u,f,p,d,m,b,g;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(a=(t=e.transitions)==null?void 0:t.create)==null?void 0:a.call(t,"fill",{duration:(n=(r=(e.vars??e).transitions)==null?void 0:r.duration)==null?void 0:n.shorter}),variants:[{props:h=>!h.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((s=(o=e.typography)==null?void 0:o.pxToRem)==null?void 0:s.call(o,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((p=(f=e.typography)==null?void 0:f.pxToRem)==null?void 0:p.call(f,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,h])=>h&&h.main).map(([h])=>{var v,S;return{props:{color:h},style:{color:(S=(v=(e.vars??e).palette)==null?void 0:v[h])==null?void 0:S.main}}}),{props:{color:"action"},style:{color:(m=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:m.active}},{props:{color:"disabled"},style:{color:(g=(b=(e.vars??e).palette)==null?void 0:b.action)==null?void 0:g.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),wt=I.forwardRef(function(t,r){const n=pi({props:t,name:"MuiSvgIcon"}),{children:a,className:o,color:s="inherit",component:c="svg",fontSize:u="medium",htmlColor:f,inheritViewBox:p=!1,titleAccess:d,viewBox:m="0 0 24 24",...b}=n,g=I.isValidElement(a)&&a.type==="svg",h={...n,color:s,component:c,fontSize:u,instanceFontSize:t.fontSize,inheritViewBox:p,viewBox:m,hasSvgAsChild:g},v={};p||(v.viewBox=m);const S=gi(h);return ze.jsxs(yi,{as:c,className:ro(S.root,o),focusable:"false",color:f,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:r,...v,...b,...g&&a.props,ownerState:h,children:[g?a.props.children:a,d?ze.jsx("title",{children:d}):null]})});wt.muiName="SvgIcon";function Bi(e,t){function r(n,a){return ze.jsx(wt,{"data-testid":`${t}Icon`,ref:a,...n,children:e})}return r.muiName=wt.muiName,I.memo(I.forwardRef(r))}export{wt as $,Oe as A,Ir as B,oa as C,se as D,li as E,si as F,ue as G,Pe as H,fe as I,ce as J,to as K,ao as L,pi as M,Uo as N,di as O,Ai as P,mi as Q,Zo as R,Lt as S,rn as T,Nt as U,vo as V,fi as W,at as X,ui as Y,po as Z,gt as _,_o as a,ho as a0,Ei as a1,jr as a2,ie as a3,ft as a4,bo as a5,xt as a6,Oi as a7,qo as a8,Vo as a9,ei as aa,ti as ab,Do as ac,zo as ad,ri as ae,Ri as af,hi as ag,Pt as ah,Tr as ai,Et as aj,Ci as ak,Cr as al,$r as am,ki as an,wi as ao,xi as ap,Rn as aq,on as ar,_i as as,ci as b,Bi as c,So as d,ae as e,ut as f,de as g,ye as h,Gn as i,ze as j,ro as k,co as l,Ct as m,ge as n,Ce as o,Co as p,Fr as q,le as r,ea as s,Lr as t,Pi as u,oe as v,$i as w,It as x,K as y,Ti as z}; diff --git a/admin/assets/index-4_ThOlo9.js b/admin/assets/index-4_ThOlo9.js deleted file mode 100644 index ae5dfec42..000000000 --- a/admin/assets/index-4_ThOlo9.js +++ /dev/null @@ -1,1329 +0,0 @@ -import{i as p_,a as kI}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import{j as f,c as Er,g as L0,r as B0,_ as g_,i as zC,P as Ge}from"./createSvgIcon-BQT-7-GS.js";import{i as P0,y as EI,_ as II,a as xI,m as DI,S as UC,T as WC}from"./inheritsLoose--KnFDOw1.js";import{R as We,i as ve}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as D,I as Va,a as Jo,b as AI,C as OI,c as f_,M as vf,d as V$,e as A$,f as j0,F as RI,g as MI,h as G$,j as m_,k as NI,l as nw,m as uf,n as LI,o as Xl,p as BI,q as Ev,r as PI,s as jI,t as FI,u as zI,v as UI,w as WI,x as F0,y as z0,z as HI,_ as VI,A as GI,D as U0,B as Iv,E as W0,S as KI,L as JI,G as qI,H as b_,J as H0,K as YI,N as XI,O as ZI,P as QI,Q as ex,R as tx,T as nx,U as HC,V as sx,W as VC,X as rx,Y as ix,Z as ox,$ as ax,a0 as lx,a1 as cx,a2 as ux,a3 as dx,a4 as hx}from"./index-CuCs5aLs.js";import{g as Ga,c as Vo}from"./_commonjsHelpers-Cpj98o6Y.js";import{_ as px}from"./preload-helper-Dp1pzeXC.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))i(a);new MutationObserver(a=>{for(const c of a)if(c.type==="childList")for(const h of c.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&i(h)}).observe(document,{childList:!0,subtree:!0});function s(a){const c={};return a.integrity&&(c.integrity=a.integrity),a.referrerPolicy&&(c.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?c.credentials="include":a.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function i(a){if(a.ep)return;a.ep=!0;const c=s(a);fetch(a.href,c)}})();var V0,GC=P0;V0=GC.createRoot,GC.hydrateRoot;var G0={exports:{}},Nn={};/** @license React v17.0.2 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var xv=60103,Dv=60106,Nf=60107,Lf=60108,Bf=60114,Pf=60109,jf=60110,Ff=60112,zf=60113,sw=60120,Uf=60115,Wf=60116,K0=60121,J0=60122,q0=60117,Y0=60129,X0=60131;if(typeof Symbol=="function"&&Symbol.for){var Us=Symbol.for;xv=Us("react.element"),Dv=Us("react.portal"),Nf=Us("react.fragment"),Lf=Us("react.strict_mode"),Bf=Us("react.profiler"),Pf=Us("react.provider"),jf=Us("react.context"),Ff=Us("react.forward_ref"),zf=Us("react.suspense"),sw=Us("react.suspense_list"),Uf=Us("react.memo"),Wf=Us("react.lazy"),K0=Us("react.block"),J0=Us("react.server.block"),q0=Us("react.fundamental"),Y0=Us("react.debug_trace_mode"),X0=Us("react.legacy_hidden")}function co(o){if(typeof o=="object"&&o!==null){var n=o.$$typeof;switch(n){case xv:switch(o=o.type,o){case Nf:case Bf:case Lf:case zf:case sw:return o;default:switch(o=o&&o.$$typeof,o){case jf:case Ff:case Wf:case Uf:case Pf:return o;default:return n}}case Dv:return n}}}var gx=Pf,fx=xv,mx=Ff,bx=Nf,$x=Wf,vx=Uf,yx=Dv,_x=Bf,wx=Lf,Cx=zf;Nn.ContextConsumer=jf;Nn.ContextProvider=gx;Nn.Element=fx;Nn.ForwardRef=mx;Nn.Fragment=bx;Nn.Lazy=$x;Nn.Memo=vx;Nn.Portal=yx;Nn.Profiler=_x;Nn.StrictMode=wx;Nn.Suspense=Cx;Nn.isAsyncMode=function(){return!1};Nn.isConcurrentMode=function(){return!1};Nn.isContextConsumer=function(o){return co(o)===jf};Nn.isContextProvider=function(o){return co(o)===Pf};Nn.isElement=function(o){return typeof o=="object"&&o!==null&&o.$$typeof===xv};Nn.isForwardRef=function(o){return co(o)===Ff};Nn.isFragment=function(o){return co(o)===Nf};Nn.isLazy=function(o){return co(o)===Wf};Nn.isMemo=function(o){return co(o)===Uf};Nn.isPortal=function(o){return co(o)===Dv};Nn.isProfiler=function(o){return co(o)===Bf};Nn.isStrictMode=function(o){return co(o)===Lf};Nn.isSuspense=function(o){return co(o)===zf};Nn.isValidElementType=function(o){return typeof o=="string"||typeof o=="function"||o===Nf||o===Bf||o===Y0||o===Lf||o===zf||o===sw||o===X0||typeof o=="object"&&o!==null&&(o.$$typeof===Wf||o.$$typeof===Uf||o.$$typeof===Pf||o.$$typeof===jf||o.$$typeof===Ff||o.$$typeof===q0||o.$$typeof===K0||o[0]===J0)};Nn.typeOf=co;G0.exports=Nn;var Sx=G0.exports;function K$(o,n){const s=getComputedStyle(n);if(!s)return;let i=o===Bn.Horizontal?n.clientWidth:n.clientHeight;return i!==0?(o===Bn.Horizontal?i-=parseFloat(s.paddingLeft)+parseFloat(s.paddingRight):i-=parseFloat(s.paddingTop)+parseFloat(s.paddingBottom),i):void 0}/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */function p$(o,n,s=[],i={condition:!0}){const{condition:a}=i,c=function(h,g){var b={};for(var $ in h)Object.prototype.hasOwnProperty.call(h,$)&&g.indexOf($)<0&&(b[$]=h[$]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function"){var y=0;for($=Object.getOwnPropertySymbols(h);y<$.length;y++)g.indexOf($[y])<0&&Object.prototype.propertyIsEnumerable.call(h,$[y])&&(b[$[y]]=h[$[y]])}return b}(i,["condition"]);ve.useEffect(()=>(a&&window.addEventListener(o,n,c),()=>{a&&window.removeEventListener(o,n)}),[o,n,a,...s])}(function(o,n){n===void 0&&(n={});var s=n.insertAt;if(typeof document<"u"){var i=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",s==="top"&&i.firstChild?i.insertBefore(a,i.firstChild):i.appendChild(a),a.styleSheet?a.styleSheet.cssText=o:a.appendChild(document.createTextNode(o))}})(`/* === Main Container === */ -.__dbk__container { - height: 100%; - width: 100%; - - display: flex; - overflow: hidden; -} - -.__dbk__container.Horizontal { - flex-direction: row; -} - -.__dbk__container.Vertical { - flex-direction: column; -} -/* ====== */ - -/* === Wrapper for each child element === */ -.__dbk__child-wrapper { - height: 100%; - width: 100%; -} -/* ====== */ - -/* === Gutter === */ -.__dbk__gutter { - display: flex; - align-items: center; - justify-content: center; -} -/* .__dbk__gutter > div { - background: red; -} */ -.__dbk__gutter.Horizontal { - height: 100%; - padding: 0 2px; - flex-direction: column; -} -.__dbk__gutter.Horizontal:hover { - cursor: col-resize; -} - -.__dbk__gutter.Vertical { - width: 100%; - padding: 2px 0; - flex-direction: row; -} -.__dbk__gutter.Vertical:hover { - cursor: row-resize; -} - -.__dbk__gutter.Light { - background: #EDF0EF; -} -.__dbk__gutter.Light:hover > .__dbk__dragger { - background: #76747B; -} - -.__dbk__gutter.Dark { - background: #020203; -} -.__dbk__gutter.Dark:hover > .__dbk__dragger { - background: #9995A3; -} -/* ====== */ - -/* === Gutter's Dragger === */ -.__dbk__dragger { - border-radius: 2px; -} - -.__dbk__dragger.Horizontal { - width: 4px; - height: 24px; -} - -.__dbk__dragger.Vertical { - width: 24px; - height: 4px; -} - -.__dbk__dragger.Light { - background: #A6ACB5; -} - -.__dbk__dragger.Dark { - background: #434252; -} -/* ====== */`);const Tx=We.forwardRef(({className:o,theme:n,draggerClassName:s,direction:i=Bn.Vertical,onDragging:a},c)=>{const h=`__dbk__gutter ${i} ${o||n}`,g=`__dbk__dragger ${i} ${s||n}`;return f.jsx("div",Object.assign({className:h,ref:c,dir:i,onMouseDown:a,onTouchStart:O$?a:void 0},{children:f.jsx("div",{className:g},void 0)}),void 0)});var Ii;function $_(o,n,s){let i,a;return n?(i=o/2,a=o):s?(i=o,a=o/2):(i=o,a=o),{aGutterSize:i,bGutterSize:a}}function kx(o,n){switch(n.type){case Ii.SetIsReadyToCompute:return Object.assign(Object.assign({},o),{isReady:n.payload.isReady});case Ii.CreatePairs:{const{direction:s,children:i,gutters:a}=n.payload,c=i[0].parentNode;if(!c)throw new Error("Cannot create pairs - parent is undefined.");const h=K$(s,c);if(h===void 0)throw new Error(`Cannot create pairs - parent has undefined or zero size: ${h}.`);const g=[];return i.forEach((b,$)=>{if($>0){const y=i[$-1],w=i[$],T=a[$-1],C=s===Bn.Horizontal?y.getBoundingClientRect().left:y.getBoundingClientRect().top,E=s===Bn.Horizontal?w.getBoundingClientRect().right:w.getBoundingClientRect().bottom,k=s===Bn.Horizontal?y.getBoundingClientRect().width+T.getBoundingClientRect().width+w.getBoundingClientRect().width:y.getBoundingClientRect().height+T.getBoundingClientRect().height+w.getBoundingClientRect().height,A=s===Bn.Horizontal?T.getBoundingClientRect().width:T.getBoundingClientRect().height,P={idx:$-1,a:y,b:w,gutter:T,parent:c,start:C,end:E,size:k,gutterSize:A,aSizePct:100/i.length,bSizePct:100/i.length};g.push(P)}}),Object.assign(Object.assign({},o),{pairs:g})}case Ii.StartDragging:{const{gutterIdx:s}=n.payload;return Object.assign(Object.assign({},o),{isDragging:!0,draggingIdx:s})}case Ii.StopDragging:return Object.assign(Object.assign({},o),{isDragging:!1});case Ii.CalculateSizes:{const{direction:s,gutterIdx:i}=n.payload,a=o.pairs[i],c=K$(s,a.parent);if(!c)throw new Error("Cannot calculate sizes - 'pair.parent' has undefined or zero size.");const h=a.gutter[s===Bn.Horizontal?"clientWidth":"clientHeight"],g=i===0,b=i===o.pairs.length-1,{aGutterSize:$,bGutterSize:y}=$_(h,g,b);let w,T,C,E,k;return s===Bn.Horizontal?(w=a.a.getBoundingClientRect().left,T=a.b.getBoundingClientRect().right,E=(a.a.getBoundingClientRect().width+$)/c*100,k=(a.b.getBoundingClientRect().width+y)/c*100,C=a.a.getBoundingClientRect().width+$+y+a.b.getBoundingClientRect().width):(w=a.a.getBoundingClientRect().top,T=a.b.getBoundingClientRect().bottom,E=(a.a.getBoundingClientRect().height+$)/c*100,k=(a.b.getBoundingClientRect().height+y)/c*100,C=a.a.getBoundingClientRect().height+$+y+a.b.getBoundingClientRect().height),o.pairs[i]=Object.assign(Object.assign({},a),{start:w,end:T,size:C,aSizePct:E,bSizePct:k,gutterSize:h}),Object.assign({},o)}default:return o}}function Z0(o,n=0,s=[]){return ve.Children.toArray(o).reduce((i,a,c)=>(Sx.isFragment(a)?i.push.apply(i,Z0(a.props.children,n+1,s.concat(a.key||c))):ve.isValidElement(a)?i.push(ve.cloneElement(a,{key:s.concat(String(a.key)).join(".")})):typeof a!="string"&&typeof a!="number"||i.push(a),i),[])}(function(o){o[o.SetIsReadyToCompute=0]="SetIsReadyToCompute",o[o.CreatePairs=1]="CreatePairs",o[o.CalculateSizes=2]="CalculateSizes",o[o.StartDragging=3]="StartDragging",o[o.StopDragging=4]="StopDragging"})(Ii||(Ii={}));const KC=o=>"changedTouches"in o;var Bn,v_;(function(o){o.Horizontal="Horizontal",o.Vertical="Vertical"})(Bn||(Bn={})),function(o){o.Light="Light",o.Dark="Dark"}(v_||(v_={}));const O$=typeof window<"u"&&"ontouchstart"in window;function Sy(o){return o===Bn.Horizontal?"col-resize":"row-resize"}const Ex={isReady:!1,isDragging:!1,pairs:[]};function J$({direction:o=Bn.Horizontal,minWidths:n=[],minHeights:s=[],initialSizes:i,gutterTheme:a=v_.Dark,gutterClassName:c,draggerClassName:h,children:g,onResizeStarted:b,onResizeFinished:$,classes:y=[]}){const w=Z0(g),[T,C]=ve.useReducer(kx,Ex),E=ve.useRef(null),k=ve.useRef([]),A=ve.useRef([]);k.current=[],A.current=[];const P=We.useCallback(ce=>{C({type:Ii.SetIsReadyToCompute,payload:{isReady:ce}})},[]),N=We.useCallback((ce,W)=>{C({type:Ii.StartDragging,payload:{gutterIdx:W}});const te=T.pairs[W];b==null||b(te.idx),te.a.style.userSelect="none",te.b.style.userSelect="none",te.gutter.style.cursor=Sy(ce),te.parent.style.cursor=Sy(ce),document.body.style.cursor=Sy(ce)},[T.pairs]),B=We.useCallback(()=>{C({type:Ii.StopDragging});const ce=[];for(let te=0;te{C({type:Ii.CalculateSizes,payload:{direction:ce,gutterIdx:W}})},[]),H=We.useCallback((ce,W,te)=>{C({type:Ii.CreatePairs,payload:{direction:ce,children:W,gutters:te}})},[]),q=We.useCallback((ce,W,te,ke)=>{const Z=W[0].parentNode;if(!Z)throw new Error("Cannot set initial sizes - parent is undefined");if(K$(ce,Z)===void 0)throw new Error("Cannot set initial sizes - parent has undefined size");W.forEach((ze,Ce)=>{const at=Ce===0,he=Ce===W.length-1;let Ae,de=0;W.length>1&&(de=te[he?Ce-1:Ce].getBoundingClientRect()[ce===Bn.Horizontal?"width":"height"],de=at||he?de/2:de),Ae=ke&&Ce{if(T.draggingIdx===void 0)throw new Error("Cannot adjust size - 'draggingIdx' is undefined");const te=T.pairs[T.draggingIdx];if(te.size===void 0)throw new Error("Cannot adjust size - 'pair.size' is undefined");if(te.gutterSize===void 0)throw new Error("Cannot adjust size - 'pair.gutterSize' is undefined");const ke=te.aSizePct+te.bSizePct,Z=W/te.size*ke,ze=ke-W/te.size*ke,Ce=T.draggingIdx===0,at=T.draggingIdx===T.pairs.length-1,{aGutterSize:he,bGutterSize:Ae}=$_(te.gutterSize,Ce,at),de=`calc(${Z}% - ${he}px)`,Se=`calc(${ze}% - ${Ae}px)`;ce===Bn.Horizontal?(te.a.style.width=de,te.b.style.width=Se):(te.a.style.height=de,te.b.style.height=Se)},[T.draggingIdx,T.pairs,o]),ee=We.useCallback((ce,W,te)=>{if(!T.isDragging)return;if(T.draggingIdx===void 0)throw new Error("Cannot drag - 'draggingIdx' is undefined");const ke=T.pairs[T.draggingIdx];if(ke.start===void 0)throw new Error("Cannot drag - 'pair.start' is undefined");if(ke.size===void 0)throw new Error("Cannot drag - 'pair.size' is undefined");if(ke.gutterSize===void 0)throw new Error("Cannot drag - 'pair.gutterSize' is undefined");let Z=function(at,he){const Ae=KC(he)?he.changedTouches[0]:he;return at===Bn.Horizontal?Ae.clientX:Ae.clientY}(W,ce)-ke.start,ze=16,Ce=16;te.length>T.draggingIdx&&(ze=te[T.draggingIdx]),te.length>=T.draggingIdx+1&&(Ce=te[T.draggingIdx+1]),Z=ke.size-(ke.gutterSize+Ce)&&(Z=ke.size-(ke.gutterSize+Ce)),se(W,Z)},[T.isDragging,T.draggingIdx,T.pairs,se]),K=()=>{if(T.isDragging){if(T.draggingIdx===void 0)throw new Error("Cannot calculate sizes after dragging = 'state.draggingIdx' is undefined");S(o,T.draggingIdx),B()}},Y=ce=>{T.isDragging&&(KC(ce)&&ce.preventDefault(),ee(ce,o,o===Bn.Horizontal?n:s))};function X(ce,W){if(!ce.current)throw new Error("Can't add element to ref object - ref isn't initialized");W&&!ce.current.includes(W)&&ce.current.push(W)}return p$("mouseup",K,[T.isDragging,B]),p$("mousemove",Y,[o,T.isDragging,ee,n,s]),p$("touchend",K,[T.isDragging,B],{condition:O$}),p$("touchmove",Y,[o,T.isDragging,ee,n,s],{condition:O$,passive:!O$}),ve.useEffect(function(){if(!E.current)return;const ce=E.current.parentElement;if(!ce)return;const W=new ResizeObserver(()=>{const te=getComputedStyle(ce),ke=o===Bn.Horizontal?ce.clientWidth:ce.clientHeight;P(!!te&&!!ke)});return W.observe(ce),()=>{W.disconnect()}},[E.current,o]),ve.useEffect(function(){if(T.isReady&&(!k.current||k.current[0].offsetParent)){if(!k.current||!A.current)throw new Error("Cannot create pairs - either variable 'childRefs' or 'gutterRefs' is undefined");w.length<=1?q(o,k.current,A.current,i):(q(o,k.current,A.current,i),H(o,k.current,A.current))}},[g,T.isReady,o,q,H,i]),f.jsx("div",Object.assign({className:`__dbk__container ${o}`,ref:E},{children:T.isReady&&w.map((ce,W)=>f.jsxs(We.Fragment,{children:[f.jsx("div",Object.assign({ref:te=>X(k,te),className:"__dbk__child-wrapper "+(WX(A,te),className:c,theme:a,draggerClassName:h,direction:o,onDragging:()=>{return S(o,te=W),void N(o,te);var te}},void 0)]},W))}),void 0)}const{loadShare:Ix}=p_,{initPromise:xx}=kI,Dx=xx.then(o=>Ix("@iobroker/adapter-react-v5",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),Ax=await Dx.then(o=>o());var I=Ax;const Q0=ve.createContext({dragDropManager:void 0});function xf(o){"@babel/helpers - typeof";return xf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},xf(o)}function Ox(o,n){if(xf(o)!="object"||!o)return o;var s=o[Symbol.toPrimitive];if(s!==void 0){var i=s.call(o,n);if(xf(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(o)}function Rx(o){var n=Ox(o,"string");return xf(n)=="symbol"?n:n+""}function Mx(o,n,s){return(n=Rx(n))in o?Object.defineProperty(o,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[n]=s,o}function Si(o){return"Minified Redux error #"+o+"; visit https://redux.js.org/Errors?code="+o+" for the full message or use the non-minified dev environment for full errors. "}var JC=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),qC=function(){return Math.random().toString(36).substring(7).split("").join(".")},YC={INIT:"@@redux/INIT"+qC(),REPLACE:"@@redux/REPLACE"+qC()};function Nx(o){if(typeof o!="object"||o===null)return!1;for(var n=o;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(o)===n}function eT(o,n,s){var i;if(typeof n=="function"&&typeof s=="function"||typeof s=="function"&&typeof arguments[3]=="function")throw new Error(Si(0));if(typeof n=="function"&&typeof s>"u"&&(s=n,n=void 0),typeof s<"u"){if(typeof s!="function")throw new Error(Si(1));return s(eT)(o,n)}if(typeof o!="function")throw new Error(Si(2));var a=o,c=n,h=[],g=h,b=!1;function $(){g===h&&(g=h.slice())}function y(){if(b)throw new Error(Si(3));return c}function w(k){if(typeof k!="function")throw new Error(Si(4));if(b)throw new Error(Si(5));var A=!0;return $(),g.push(k),function(){if(A){if(b)throw new Error(Si(6));A=!1,$();var N=g.indexOf(k);g.splice(N,1),h=null}}}function T(k){if(!Nx(k))throw new Error(Si(7));if(typeof k.type>"u")throw new Error(Si(8));if(b)throw new Error(Si(9));try{b=!0,c=a(c,k)}finally{b=!1}for(var A=h=g,P=0;Pi&&i[a]?i[a]:s||null,o)}function Px(o,n){return o.filter(s=>s!==n)}function tT(o){return typeof o=="object"}function jx(o,n){const s=new Map,i=c=>{s.set(c,s.has(c)?s.get(c)+1:1)};o.forEach(i),n.forEach(i);const a=[];return s.forEach((c,h)=>{c===1&&a.push(h)}),a}function Fx(o,n){return o.filter(s=>n.indexOf(s)>-1)}const rw="dnd-core/INIT_COORDS",Av="dnd-core/BEGIN_DRAG",iw="dnd-core/PUBLISH_DRAG_SOURCE",Ov="dnd-core/HOVER",Rv="dnd-core/DROP",Mv="dnd-core/END_DRAG";function XC(o,n){return{type:rw,payload:{sourceClientOffset:n||null,clientOffset:o||null}}}const zx={type:rw,payload:{clientOffset:null,sourceClientOffset:null}};function Ux(o){return function(s=[],i={publishSource:!0}){const{publishSource:a=!0,clientOffset:c,getSourceClientOffset:h}=i,g=o.getMonitor(),b=o.getRegistry();o.dispatch(XC(c)),Wx(s,g,b);const $=Gx(s,g);if($==null){o.dispatch(zx);return}let y=null;if(c){if(!h)throw new Error("getSourceClientOffset must be defined");Hx(h),y=h($)}o.dispatch(XC(c,y));const T=b.getSource($).beginDrag(g,$);if(T==null)return;Vx(T),b.pinSource($);const C=b.getSourceType($);return{type:Av,payload:{itemType:C,item:T,sourceId:$,clientOffset:c||null,sourceClientOffset:y||null,isSourcePublic:!!a}}}}function Wx(o,n,s){Gt(!n.isDragging(),"Cannot call beginDrag while dragging."),o.forEach(function(i){Gt(s.getSource(i),"Expected sourceIds to be registered.")})}function Hx(o){Gt(typeof o=="function","When clientOffset is provided, getSourceClientOffset must be a function.")}function Vx(o){Gt(tT(o),"Item must be an object.")}function Gx(o,n){let s=null;for(let i=o.length-1;i>=0;i--)if(n.canDragSource(o[i])){s=o[i];break}return s}function Kx(o,n,s){return n in o?Object.defineProperty(o,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[n]=s,o}function Jx(o){for(var n=1;n{const b=Xx(h,g,a,i),$={type:Rv,payload:{dropResult:Jx({},s,b)}};o.dispatch($)})}}function Yx(o){Gt(o.isDragging(),"Cannot call drop while not dragging."),Gt(!o.didDrop(),"Cannot call drop twice during one drag operation.")}function Xx(o,n,s,i){const a=s.getTarget(o);let c=a?a.drop(i,o):void 0;return Zx(c),typeof c>"u"&&(c=n===0?{}:i.getDropResult()),c}function Zx(o){Gt(typeof o>"u"||tT(o),"Drop result must either be an object or undefined.")}function Qx(o){const n=o.getTargetIds().filter(o.canDropOnTarget,o);return n.reverse(),n}function eD(o){return function(){const s=o.getMonitor(),i=o.getRegistry();tD(s);const a=s.getSourceId();return a!=null&&(i.getSource(a,!0).endDrag(s,a),i.unpinSource()),{type:Mv}}}function tD(o){Gt(o.isDragging(),"Cannot call endDrag while not dragging.")}function y_(o,n){return n===null?o===null:Array.isArray(o)?o.some(s=>s===n):o===n}function nD(o){return function(s,{clientOffset:i}={}){sD(s);const a=s.slice(0),c=o.getMonitor(),h=o.getRegistry(),g=c.getItemType();return iD(a,h,g),rD(a,c,h),oD(a,c,h),{type:Ov,payload:{targetIds:a,clientOffset:i||null}}}}function sD(o){Gt(Array.isArray(o),"Expected targetIds to be an array.")}function rD(o,n,s){Gt(n.isDragging(),"Cannot call hover while not dragging."),Gt(!n.didDrop(),"Cannot call hover after drop.");for(let i=0;i=0;i--){const a=o[i],c=n.getTargetType(a);y_(c,s)||o.splice(i,1)}}function oD(o,n,s){o.forEach(function(i){s.getTarget(i).hover(n,i)})}function aD(o){return function(){if(o.getMonitor().isDragging())return{type:iw}}}function lD(o){return{beginDrag:Ux(o),publishDragSource:aD(o),hover:nD(o),drop:qx(o),endDrag:eD(o)}}class cD{receiveBackend(n){this.backend=n}getMonitor(){return this.monitor}getBackend(){return this.backend}getRegistry(){return this.monitor.registry}getActions(){const n=this,{dispatch:s}=this.store;function i(c){return(...h)=>{const g=c.apply(n,h);typeof g<"u"&&s(g)}}const a=lD(this);return Object.keys(a).reduce((c,h)=>{const g=a[h];return c[h]=i(g),c},{})}dispatch(n){this.store.dispatch(n)}constructor(n,s){this.isSetUp=!1,this.handleRefCountChange=()=>{const i=this.store.getState().refCount>0;this.backend&&(i&&!this.isSetUp?(this.backend.setup(),this.isSetUp=!0):!i&&this.isSetUp&&(this.backend.teardown(),this.isSetUp=!1))},this.store=n,this.monitor=s,n.subscribe(this.handleRefCountChange)}}function uD(o,n){return{x:o.x+n.x,y:o.y+n.y}}function nT(o,n){return{x:o.x-n.x,y:o.y-n.y}}function dD(o){const{clientOffset:n,initialClientOffset:s,initialSourceClientOffset:i}=o;return!n||!s||!i?null:nT(uD(n,i),s)}function hD(o){const{clientOffset:n,initialClientOffset:s}=o;return!n||!s?null:nT(n,s)}const yf=[],ow=[];yf.__IS_NONE__=!0;ow.__IS_ALL__=!0;function pD(o,n){return o===yf?!1:o===ow||typeof n>"u"?!0:Fx(n,o).length>0}class gD{subscribeToStateChange(n,s={}){const{handlerIds:i}=s;Gt(typeof n=="function","listener must be a function."),Gt(typeof i>"u"||Array.isArray(i),"handlerIds, when specified, must be an array of strings.");let a=this.store.getState().stateId;const c=()=>{const h=this.store.getState(),g=h.stateId;try{g===a||g===a+1&&!pD(h.dirtyHandlerIds,i)||n()}finally{a=g}};return this.store.subscribe(c)}subscribeToOffsetChange(n){Gt(typeof n=="function","listener must be a function.");let s=this.store.getState().dragOffset;const i=()=>{const a=this.store.getState().dragOffset;a!==s&&(s=a,n())};return this.store.subscribe(i)}canDragSource(n){if(!n)return!1;const s=this.registry.getSource(n);return Gt(s,`Expected to find a valid source. sourceId=${n}`),this.isDragging()?!1:s.canDrag(this,n)}canDropOnTarget(n){if(!n)return!1;const s=this.registry.getTarget(n);if(Gt(s,`Expected to find a valid target. targetId=${n}`),!this.isDragging()||this.didDrop())return!1;const i=this.registry.getTargetType(n),a=this.getItemType();return y_(i,a)&&s.canDrop(this,n)}isDragging(){return!!this.getItemType()}isDraggingSource(n){if(!n)return!1;const s=this.registry.getSource(n,!0);if(Gt(s,`Expected to find a valid source. sourceId=${n}`),!this.isDragging()||!this.isSourcePublic())return!1;const i=this.registry.getSourceType(n),a=this.getItemType();return i!==a?!1:s.isDragging(this,n)}isOverTarget(n,s={shallow:!1}){if(!n)return!1;const{shallow:i}=s;if(!this.isDragging())return!1;const a=this.registry.getTargetType(n),c=this.getItemType();if(c&&!y_(a,c))return!1;const h=this.getTargetIds();if(!h.length)return!1;const g=h.indexOf(n);return i?g===h.length-1:g>-1}getItemType(){return this.store.getState().dragOperation.itemType}getItem(){return this.store.getState().dragOperation.item}getSourceId(){return this.store.getState().dragOperation.sourceId}getTargetIds(){return this.store.getState().dragOperation.targetIds}getDropResult(){return this.store.getState().dragOperation.dropResult}didDrop(){return this.store.getState().dragOperation.didDrop}isSourcePublic(){return!!this.store.getState().dragOperation.isSourcePublic}getInitialClientOffset(){return this.store.getState().dragOffset.initialClientOffset}getInitialSourceClientOffset(){return this.store.getState().dragOffset.initialSourceClientOffset}getClientOffset(){return this.store.getState().dragOffset.clientOffset}getSourceClientOffset(){return dD(this.store.getState().dragOffset)}getDifferenceFromInitialOffset(){return hD(this.store.getState().dragOffset)}constructor(n,s){this.store=n,this.registry=s}}const ZC=typeof global<"u"?global:self,sT=ZC.MutationObserver||ZC.WebKitMutationObserver;function rT(o){return function(){const s=setTimeout(a,0),i=setInterval(a,50);function a(){clearTimeout(s),clearInterval(i),o()}}}function fD(o){let n=1;const s=new sT(o),i=document.createTextNode("");return s.observe(i,{characterData:!0}),function(){n=-n,i.data=n}}const mD=typeof sT=="function"?fD:rT;class bD{enqueueTask(n){const{queue:s,requestFlush:i}=this;s.length||(i(),this.flushing=!0),s[s.length]=n}constructor(){this.queue=[],this.pendingErrors=[],this.flushing=!1,this.index=0,this.capacity=1024,this.flush=()=>{const{queue:n}=this;for(;this.indexthis.capacity){for(let i=0,a=n.length-this.index;i{this.pendingErrors.push(n),this.requestErrorThrow()},this.requestFlush=mD(this.flush),this.requestErrorThrow=rT(()=>{if(this.pendingErrors.length)throw this.pendingErrors.shift()})}}class $D{call(){try{this.task&&this.task()}catch(n){this.onError(n)}finally{this.task=null,this.release(this)}}constructor(n,s){this.onError=n,this.release=s,this.task=null}}class vD{create(n){const s=this.freeTasks,i=s.length?s.pop():new $D(this.onError,a=>s[s.length]=a);return i.task=n,i}constructor(n){this.onError=n,this.freeTasks=[]}}const iT=new bD,yD=new vD(iT.registerPendingError);function _D(o){iT.enqueueTask(yD.create(o))}const aw="dnd-core/ADD_SOURCE",lw="dnd-core/ADD_TARGET",cw="dnd-core/REMOVE_SOURCE",Nv="dnd-core/REMOVE_TARGET";function wD(o){return{type:aw,payload:{sourceId:o}}}function CD(o){return{type:lw,payload:{targetId:o}}}function SD(o){return{type:cw,payload:{sourceId:o}}}function TD(o){return{type:Nv,payload:{targetId:o}}}function kD(o){Gt(typeof o.canDrag=="function","Expected canDrag to be a function."),Gt(typeof o.beginDrag=="function","Expected beginDrag to be a function."),Gt(typeof o.endDrag=="function","Expected endDrag to be a function.")}function ED(o){Gt(typeof o.canDrop=="function","Expected canDrop to be a function."),Gt(typeof o.hover=="function","Expected hover to be a function."),Gt(typeof o.drop=="function","Expected beginDrag to be a function.")}function __(o,n){if(n&&Array.isArray(o)){o.forEach(s=>__(s,!1));return}Gt(typeof o=="string"||typeof o=="symbol",n?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}var Ei;(function(o){o.SOURCE="SOURCE",o.TARGET="TARGET"})(Ei||(Ei={}));let ID=0;function xD(){return ID++}function DD(o){const n=xD().toString();switch(o){case Ei.SOURCE:return`S${n}`;case Ei.TARGET:return`T${n}`;default:throw new Error(`Unknown Handler Role: ${o}`)}}function QC(o){switch(o[0]){case"S":return Ei.SOURCE;case"T":return Ei.TARGET;default:throw new Error(`Cannot parse handler ID: ${o}`)}}function eS(o,n){const s=o.entries();let i=!1;do{const{done:a,value:[,c]}=s.next();if(c===n)return!0;i=!!a}while(!i);return!1}class AD{addSource(n,s){__(n),kD(s);const i=this.addHandler(Ei.SOURCE,n,s);return this.store.dispatch(wD(i)),i}addTarget(n,s){__(n,!0),ED(s);const i=this.addHandler(Ei.TARGET,n,s);return this.store.dispatch(CD(i)),i}containsHandler(n){return eS(this.dragSources,n)||eS(this.dropTargets,n)}getSource(n,s=!1){return Gt(this.isSourceId(n),"Expected a valid source ID."),s&&n===this.pinnedSourceId?this.pinnedSource:this.dragSources.get(n)}getTarget(n){return Gt(this.isTargetId(n),"Expected a valid target ID."),this.dropTargets.get(n)}getSourceType(n){return Gt(this.isSourceId(n),"Expected a valid source ID."),this.types.get(n)}getTargetType(n){return Gt(this.isTargetId(n),"Expected a valid target ID."),this.types.get(n)}isSourceId(n){return QC(n)===Ei.SOURCE}isTargetId(n){return QC(n)===Ei.TARGET}removeSource(n){Gt(this.getSource(n),"Expected an existing source."),this.store.dispatch(SD(n)),_D(()=>{this.dragSources.delete(n),this.types.delete(n)})}removeTarget(n){Gt(this.getTarget(n),"Expected an existing target."),this.store.dispatch(TD(n)),this.dropTargets.delete(n),this.types.delete(n)}pinSource(n){const s=this.getSource(n);Gt(s,"Expected an existing source."),this.pinnedSourceId=n,this.pinnedSource=s}unpinSource(){Gt(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}addHandler(n,s,i){const a=DD(n);return this.types.set(a,s),n===Ei.SOURCE?this.dragSources.set(a,i):n===Ei.TARGET&&this.dropTargets.set(a,i),a}constructor(n){this.types=new Map,this.dragSources=new Map,this.dropTargets=new Map,this.pinnedSourceId=null,this.pinnedSource=null,this.store=n}}const OD=(o,n)=>o===n;function RD(o,n){return!o&&!n?!0:!o||!n?!1:o.x===n.x&&o.y===n.y}function MD(o,n,s=OD){if(o.length!==n.length)return!1;for(let i=0;i0||!MD(s,i)))return yf;const h=i[i.length-1],g=s[s.length-1];return h!==g&&(h&&a.push(h),g&&a.push(g)),a}function LD(o,n,s){return n in o?Object.defineProperty(o,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[n]=s,o}function BD(o){for(var n=1;n=0)&&Object.prototype.propertyIsEnumerable.call(o,i)&&(s[i]=o[i])}return s}function YD(o,n){if(o==null)return{};var s={},i=Object.keys(o),a,c;for(c=0;c=0)&&(s[a]=o[a]);return s}let nS=0;const R$=Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");var oT=ve.memo(function(n){var{children:s}=n,i=qD(n,["children"]);const[a,c]=XD(i);return ve.useEffect(()=>{if(c){const h=aT();return++nS,()=>{--nS===0&&(h[R$]=null)}}},[]),f.jsx(Q0.Provider,{value:a,children:s})});function XD(o){if("manager"in o)return[{dragDropManager:o.manager},!1];const n=ZD(o.backend,o.context,o.options,o.debugMode),s=!o.context;return[n,s]}function ZD(o,n=aT(),s,i){const a=n;return a[R$]||(a[R$]={dragDropManager:KD(o,n,s,i)}),a[R$]}function aT(){return typeof global<"u"?global:window}var QD=function o(n,s){if(n===s)return!0;if(n&&s&&typeof n=="object"&&typeof s=="object"){if(n.constructor!==s.constructor)return!1;var i,a,c;if(Array.isArray(n)){if(i=n.length,i!=s.length)return!1;for(a=i;a--!==0;)if(!o(n[a],s[a]))return!1;return!0}if(n.constructor===RegExp)return n.source===s.source&&n.flags===s.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===s.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===s.toString();if(c=Object.keys(n),i=c.length,i!==Object.keys(s).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(s,c[a]))return!1;for(a=i;a--!==0;){var h=c[a];if(!o(n[h],s[h]))return!1}return!0}return n!==n&&s!==s};const eA=Ga(QD),vu=typeof window<"u"?ve.useLayoutEffect:ve.useEffect;function lT(o,n,s){const[i,a]=ve.useState(()=>n(o)),c=ve.useCallback(()=>{const h=n(o);eA(i,h)||(a(h),s&&s())},[i,o,s]);return vu(c),[i,c]}function tA(o,n,s){const[i,a]=lT(o,n,s);return vu(function(){const h=o.getHandlerId();if(h!=null)return o.subscribeToStateChange(a,{handlerIds:[h]})},[o,a]),i}function cT(o,n,s){return tA(n,o||(()=>({})),()=>s.reconnect())}function uT(o,n){const s=[];return typeof o!="function"&&s.push(o),ve.useMemo(()=>typeof o=="function"?o():o,s)}function nA(o){return ve.useMemo(()=>o.hooks.dragSource(),[o])}function sA(o){return ve.useMemo(()=>o.hooks.dragPreview(),[o])}let Ty=!1,ky=!1;class rA{receiveHandlerId(n){this.sourceId=n}getHandlerId(){return this.sourceId}canDrag(){Gt(!Ty,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return Ty=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{Ty=!1}}isDragging(){if(!this.sourceId)return!1;Gt(!ky,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return ky=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{ky=!1}}subscribeToStateChange(n,s){return this.internalMonitor.subscribeToStateChange(n,s)}isDraggingSource(n){return this.internalMonitor.isDraggingSource(n)}isOverTarget(n,s){return this.internalMonitor.isOverTarget(n,s)}getTargetIds(){return this.internalMonitor.getTargetIds()}isSourcePublic(){return this.internalMonitor.isSourcePublic()}getSourceId(){return this.internalMonitor.getSourceId()}subscribeToOffsetChange(n){return this.internalMonitor.subscribeToOffsetChange(n)}canDragSource(n){return this.internalMonitor.canDragSource(n)}canDropOnTarget(n){return this.internalMonitor.canDropOnTarget(n)}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(n){this.sourceId=null,this.internalMonitor=n.getMonitor()}}let Ey=!1;class iA{receiveHandlerId(n){this.targetId=n}getHandlerId(){return this.targetId}subscribeToStateChange(n,s){return this.internalMonitor.subscribeToStateChange(n,s)}canDrop(){if(!this.targetId)return!1;Gt(!Ey,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor");try{return Ey=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{Ey=!1}}isOver(n){return this.targetId?this.internalMonitor.isOverTarget(this.targetId,n):!1}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(n){this.targetId=null,this.internalMonitor=n.getMonitor()}}function oA(o,n,s){const i=s.getRegistry(),a=i.addTarget(o,n);return[a,()=>i.removeTarget(a)]}function aA(o,n,s){const i=s.getRegistry(),a=i.addSource(o,n);return[a,()=>i.removeSource(a)]}function w_(o,n,s,i){let a;if(a!==void 0)return!!a;if(o===n)return!0;if(typeof o!="object"||!o||typeof n!="object"||!n)return!1;const c=Object.keys(o),h=Object.keys(n);if(c.length!==h.length)return!1;const g=Object.prototype.hasOwnProperty.bind(n);for(let b=0;b, or turn it into a drag source or a drop target itself.`)}function cA(o){return(n=null,s=null)=>{if(!ve.isValidElement(n)){const c=n;return o(c,s),c}const i=n;return lA(i),uA(i,s?c=>o(c,s):o)}}function dT(o){const n={};return Object.keys(o).forEach(s=>{const i=o[s];if(s.endsWith("Ref"))n[s]=o[s];else{const a=cA(i);n[s]=()=>a}}),n}function sS(o,n){typeof o=="function"?o(n):o.current=n}function uA(o,n){const s=o.ref;return Gt(typeof s!="string","Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a or
. Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs"),s?ve.cloneElement(o,{ref:i=>{sS(s,i),sS(n,i)}}):ve.cloneElement(o,{ref:n})}class dA{receiveHandlerId(n){this.handlerId!==n&&(this.handlerId=n,this.reconnect())}get connectTarget(){return this.dragSource}get dragSourceOptions(){return this.dragSourceOptionsInternal}set dragSourceOptions(n){this.dragSourceOptionsInternal=n}get dragPreviewOptions(){return this.dragPreviewOptionsInternal}set dragPreviewOptions(n){this.dragPreviewOptionsInternal=n}reconnect(){const n=this.reconnectDragSource();this.reconnectDragPreview(n)}reconnectDragSource(){const n=this.dragSource,s=this.didHandlerIdChange()||this.didConnectedDragSourceChange()||this.didDragSourceOptionsChange();return s&&this.disconnectDragSource(),this.handlerId?n?(s&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragSource=n,this.lastConnectedDragSourceOptions=this.dragSourceOptions,this.dragSourceUnsubscribe=this.backend.connectDragSource(this.handlerId,n,this.dragSourceOptions)),s):(this.lastConnectedDragSource=n,s):s}reconnectDragPreview(n=!1){const s=this.dragPreview,i=n||this.didHandlerIdChange()||this.didConnectedDragPreviewChange()||this.didDragPreviewOptionsChange();if(i&&this.disconnectDragPreview(),!!this.handlerId){if(!s){this.lastConnectedDragPreview=s;return}i&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragPreview=s,this.lastConnectedDragPreviewOptions=this.dragPreviewOptions,this.dragPreviewUnsubscribe=this.backend.connectDragPreview(this.handlerId,s,this.dragPreviewOptions))}}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didConnectedDragSourceChange(){return this.lastConnectedDragSource!==this.dragSource}didConnectedDragPreviewChange(){return this.lastConnectedDragPreview!==this.dragPreview}didDragSourceOptionsChange(){return!w_(this.lastConnectedDragSourceOptions,this.dragSourceOptions)}didDragPreviewOptionsChange(){return!w_(this.lastConnectedDragPreviewOptions,this.dragPreviewOptions)}disconnectDragSource(){this.dragSourceUnsubscribe&&(this.dragSourceUnsubscribe(),this.dragSourceUnsubscribe=void 0)}disconnectDragPreview(){this.dragPreviewUnsubscribe&&(this.dragPreviewUnsubscribe(),this.dragPreviewUnsubscribe=void 0,this.dragPreviewNode=null,this.dragPreviewRef=null)}get dragSource(){return this.dragSourceNode||this.dragSourceRef&&this.dragSourceRef.current}get dragPreview(){return this.dragPreviewNode||this.dragPreviewRef&&this.dragPreviewRef.current}clearDragSource(){this.dragSourceNode=null,this.dragSourceRef=null}clearDragPreview(){this.dragPreviewNode=null,this.dragPreviewRef=null}constructor(n){this.hooks=dT({dragSource:(s,i)=>{this.clearDragSource(),this.dragSourceOptions=i||null,C_(s)?this.dragSourceRef=s:this.dragSourceNode=s,this.reconnectDragSource()},dragPreview:(s,i)=>{this.clearDragPreview(),this.dragPreviewOptions=i||null,C_(s)?this.dragPreviewRef=s:this.dragPreviewNode=s,this.reconnectDragPreview()}}),this.handlerId=null,this.dragSourceRef=null,this.dragSourceOptionsInternal=null,this.dragPreviewRef=null,this.dragPreviewOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDragSource=null,this.lastConnectedDragSourceOptions=null,this.lastConnectedDragPreview=null,this.lastConnectedDragPreviewOptions=null,this.backend=n}}class hA{get connectTarget(){return this.dropTarget}reconnect(){const n=this.didHandlerIdChange()||this.didDropTargetChange()||this.didOptionsChange();n&&this.disconnectDropTarget();const s=this.dropTarget;if(this.handlerId){if(!s){this.lastConnectedDropTarget=s;return}n&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDropTarget=s,this.lastConnectedDropTargetOptions=this.dropTargetOptions,this.unsubscribeDropTarget=this.backend.connectDropTarget(this.handlerId,s,this.dropTargetOptions))}}receiveHandlerId(n){n!==this.handlerId&&(this.handlerId=n,this.reconnect())}get dropTargetOptions(){return this.dropTargetOptionsInternal}set dropTargetOptions(n){this.dropTargetOptionsInternal=n}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didDropTargetChange(){return this.lastConnectedDropTarget!==this.dropTarget}didOptionsChange(){return!w_(this.lastConnectedDropTargetOptions,this.dropTargetOptions)}disconnectDropTarget(){this.unsubscribeDropTarget&&(this.unsubscribeDropTarget(),this.unsubscribeDropTarget=void 0)}get dropTarget(){return this.dropTargetNode||this.dropTargetRef&&this.dropTargetRef.current}clearDropTarget(){this.dropTargetRef=null,this.dropTargetNode=null}constructor(n){this.hooks=dT({dropTarget:(s,i)=>{this.clearDropTarget(),this.dropTargetOptions=i,C_(s)?this.dropTargetRef=s:this.dropTargetNode=s,this.reconnect()}}),this.handlerId=null,this.dropTargetRef=null,this.dropTargetOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDropTarget=null,this.lastConnectedDropTargetOptions=null,this.backend=n}}function Cu(){const{dragDropManager:o}=ve.useContext(Q0);return Gt(o!=null,"Expected drag drop context"),o}function pA(o,n){const s=Cu(),i=ve.useMemo(()=>new dA(s.getBackend()),[s]);return vu(()=>(i.dragSourceOptions=o||null,i.reconnect(),()=>i.disconnectDragSource()),[i,o]),vu(()=>(i.dragPreviewOptions=n||null,i.reconnect(),()=>i.disconnectDragPreview()),[i,n]),i}function gA(){const o=Cu();return ve.useMemo(()=>new rA(o),[o])}class fA{beginDrag(){const n=this.spec,s=this.monitor;let i=null;return typeof n.item=="object"?i=n.item:typeof n.item=="function"?i=n.item(s):i={},i??null}canDrag(){const n=this.spec,s=this.monitor;return typeof n.canDrag=="boolean"?n.canDrag:typeof n.canDrag=="function"?n.canDrag(s):!0}isDragging(n,s){const i=this.spec,a=this.monitor,{isDragging:c}=i;return c?c(a):s===n.getSourceId()}endDrag(){const n=this.spec,s=this.monitor,i=this.connector,{end:a}=n;a&&a(s.getItem(),s),i.reconnect()}constructor(n,s,i){this.spec=n,this.monitor=s,this.connector=i}}function mA(o,n,s){const i=ve.useMemo(()=>new fA(o,n,s),[n,s]);return ve.useEffect(()=>{i.spec=o},[o]),i}function bA(o){return ve.useMemo(()=>{const n=o.type;return Gt(n!=null,"spec.type must be defined"),n},[o])}function $A(o,n,s){const i=Cu(),a=mA(o,n,s),c=bA(o);vu(function(){if(c!=null){const[g,b]=aA(c,a,i);return n.receiveHandlerId(g),s.receiveHandlerId(g),b}},[i,n,s,a,c])}function hT(o,n){const s=uT(o);Gt(!s.begin,"useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)");const i=gA(),a=pA(s.options,s.previewOptions);return $A(s,i,a),[cT(s.collect,i,a),nA(a),sA(a)]}function vA(o){const s=Cu().getMonitor(),[i,a]=lT(s,o);return ve.useEffect(()=>s.subscribeToOffsetChange(a)),ve.useEffect(()=>s.subscribeToStateChange(a)),i}function yA(o){return ve.useMemo(()=>o.hooks.dropTarget(),[o])}function _A(o){const n=Cu(),s=ve.useMemo(()=>new hA(n.getBackend()),[n]);return vu(()=>(s.dropTargetOptions=o||null,s.reconnect(),()=>s.disconnectDropTarget()),[o]),s}function wA(){const o=Cu();return ve.useMemo(()=>new iA(o),[o])}function CA(o){const{accept:n}=o;return ve.useMemo(()=>(Gt(o.accept!=null,"accept must be defined"),Array.isArray(n)?n:[n]),[n])}class SA{canDrop(){const n=this.spec,s=this.monitor;return n.canDrop?n.canDrop(s.getItem(),s):!0}hover(){const n=this.spec,s=this.monitor;n.hover&&n.hover(s.getItem(),s)}drop(){const n=this.spec,s=this.monitor;if(n.drop)return n.drop(s.getItem(),s)}constructor(n,s){this.spec=n,this.monitor=s}}function TA(o,n){const s=ve.useMemo(()=>new SA(o,n),[n]);return ve.useEffect(()=>{s.spec=o},[o]),s}function kA(o,n,s){const i=Cu(),a=TA(o,n),c=CA(o);vu(function(){const[g,b]=oA(c,a,i);return n.receiveHandlerId(g),s.receiveHandlerId(g),b},[i,n,a,s,c.map(h=>h.toString()).join("|")])}function uw(o,n){const s=uT(o),i=wA(),a=_A(s.options);return kA(s,i,a),[cT(s.collect,i,a),yA(a)]}function pT(o){let n=null;return()=>(n==null&&(n=o()),n)}function EA(o,n){return o.filter(s=>s!==n)}function IA(o,n){const s=new Set,i=c=>s.add(c);o.forEach(i),n.forEach(i);const a=[];return s.forEach(c=>a.push(c)),a}class xA{enter(n){const s=this.entered.length,i=a=>this.isNodeInDocument(a)&&(!a.contains||a.contains(n));return this.entered=IA(this.entered.filter(i),[n]),s===0&&this.entered.length>0}leave(n){const s=this.entered.length;return this.entered=EA(this.entered.filter(this.isNodeInDocument),n),s>0&&this.entered.length===0}reset(){this.entered=[]}constructor(n){this.entered=[],this.isNodeInDocument=n}}class DA{initializeExposedProperties(){Object.keys(this.config.exposeProperties).forEach(n=>{Object.defineProperty(this.item,n,{configurable:!0,enumerable:!0,get(){return console.warn(`Browser doesn't allow reading "${n}" until the drop event.`),null}})})}loadDataTransfer(n){if(n){const s={};Object.keys(this.config.exposeProperties).forEach(i=>{const a=this.config.exposeProperties[i];a!=null&&(s[i]={value:a(n,this.config.matchesTypes),configurable:!0,enumerable:!0})}),Object.defineProperties(this.item,s)}}canDrag(){return!0}beginDrag(){return this.item}isDragging(n,s){return s===n.getSourceId()}endDrag(){}constructor(n){this.config=n,this.item={},this.initializeExposedProperties()}}const gT="__NATIVE_FILE__",fT="__NATIVE_URL__",mT="__NATIVE_TEXT__",bT="__NATIVE_HTML__",rS=Object.freeze(Object.defineProperty({__proto__:null,FILE:gT,HTML:bT,TEXT:mT,URL:fT},Symbol.toStringTag,{value:"Module"}));function Iy(o,n,s){const i=n.reduce((a,c)=>a||o.getData(c),"");return i??s}const S_={[gT]:{exposeProperties:{files:o=>Array.prototype.slice.call(o.files),items:o=>o.items,dataTransfer:o=>o},matchesTypes:["Files"]},[bT]:{exposeProperties:{html:(o,n)=>Iy(o,n,""),dataTransfer:o=>o},matchesTypes:["Html","text/html"]},[fT]:{exposeProperties:{urls:(o,n)=>Iy(o,n,"").split(` -`),dataTransfer:o=>o},matchesTypes:["Url","text/uri-list"]},[mT]:{exposeProperties:{text:(o,n)=>Iy(o,n,""),dataTransfer:o=>o},matchesTypes:["Text","text/plain"]}};function AA(o,n){const s=S_[o];if(!s)throw new Error(`native type ${o} has no configuration`);const i=new DA(s);return i.loadDataTransfer(n),i}function xy(o){if(!o)return null;const n=Array.prototype.slice.call(o.types||[]);return Object.keys(S_).filter(s=>{const i=S_[s];return i!=null&&i.matchesTypes?i.matchesTypes.some(a=>n.indexOf(a)>-1):!1})[0]||null}const OA=pT(()=>/firefox/i.test(navigator.userAgent)),$T=pT(()=>!!window.safari);class iS{interpolate(n){const{xs:s,ys:i,c1s:a,c2s:c,c3s:h}=this;let g=s.length-1;if(n===s[g])return i[g];let b=0,$=h.length-1,y;for(;b<=$;){y=Math.floor(.5*(b+$));const C=s[y];if(Cn)$=y-1;else return i[y]}g=Math.max(0,$);const w=n-s[g],T=w*w;return i[g]+a[g]*w+c[g]*T+h[g]*w*T}constructor(n,s){const{length:i}=n,a=[];for(let C=0;Cn[C]{let q=new iS([0,.5,1],[b.y,b.y/y*E,b.y+E-y]).interpolate(T);return $T()&&c&&(q+=(window.devicePixelRatio-1)*E),q},A=()=>new iS([0,.5,1],[b.x,b.x/$*C,b.x+C-$]).interpolate(w),{offsetX:P,offsetY:N}=a,B=P===0||P,S=N===0||N;return{x:B?P:A(),y:S?N:k()}}let BA=class{get window(){if(this.globalContext)return this.globalContext;if(typeof window<"u")return window}get document(){var n;return!((n=this.globalContext)===null||n===void 0)&&n.document?this.globalContext.document:this.window?this.window.document:void 0}get rootElement(){var n;return((n=this.optionsArgs)===null||n===void 0?void 0:n.rootElement)||this.window}constructor(n,s){this.ownerDocument=null,this.globalContext=n,this.optionsArgs=s}};function PA(o,n,s){return n in o?Object.defineProperty(o,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[n]=s,o}function oS(o){for(var n=1;n{this.sourcePreviewNodes.delete(n),this.sourcePreviewNodeOptions.delete(n)}}connectDragSource(n,s,i){this.sourceNodes.set(n,s),this.sourceNodeOptions.set(n,i);const a=h=>this.handleDragStart(h,n),c=h=>this.handleSelectStart(h);return s.setAttribute("draggable","true"),s.addEventListener("dragstart",a),s.addEventListener("selectstart",c),()=>{this.sourceNodes.delete(n),this.sourceNodeOptions.delete(n),s.removeEventListener("dragstart",a),s.removeEventListener("selectstart",c),s.setAttribute("draggable","false")}}connectDropTarget(n,s){const i=h=>this.handleDragEnter(h,n),a=h=>this.handleDragOver(h,n),c=h=>this.handleDrop(h,n);return s.addEventListener("dragenter",i),s.addEventListener("dragover",a),s.addEventListener("drop",c),()=>{s.removeEventListener("dragenter",i),s.removeEventListener("dragover",a),s.removeEventListener("drop",c)}}addEventListeners(n){n.addEventListener&&(n.addEventListener("dragstart",this.handleTopDragStart),n.addEventListener("dragstart",this.handleTopDragStartCapture,!0),n.addEventListener("dragend",this.handleTopDragEndCapture,!0),n.addEventListener("dragenter",this.handleTopDragEnter),n.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),n.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),n.addEventListener("dragover",this.handleTopDragOver),n.addEventListener("dragover",this.handleTopDragOverCapture,!0),n.addEventListener("drop",this.handleTopDrop),n.addEventListener("drop",this.handleTopDropCapture,!0))}removeEventListeners(n){n.removeEventListener&&(n.removeEventListener("dragstart",this.handleTopDragStart),n.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),n.removeEventListener("dragend",this.handleTopDragEndCapture,!0),n.removeEventListener("dragenter",this.handleTopDragEnter),n.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),n.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),n.removeEventListener("dragover",this.handleTopDragOver),n.removeEventListener("dragover",this.handleTopDragOverCapture,!0),n.removeEventListener("drop",this.handleTopDrop),n.removeEventListener("drop",this.handleTopDropCapture,!0))}getCurrentSourceNodeOptions(){const n=this.monitor.getSourceId(),s=this.sourceNodeOptions.get(n);return oS({dropEffect:this.altKeyPressed?"copy":"move"},s||{})}getCurrentDropEffect(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}getCurrentSourcePreviewNodeOptions(){const n=this.monitor.getSourceId(),s=this.sourcePreviewNodeOptions.get(n);return oS({anchorX:.5,anchorY:.5,captureDraggingState:!1},s||{})}isDraggingNativeItem(){const n=this.monitor.getItemType();return Object.keys(rS).some(s=>rS[s]===n)}beginDragNativeItem(n,s){this.clearCurrentDragSourceNode(),this.currentNativeSource=AA(n,s),this.currentNativeHandle=this.registry.addSource(n,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}setCurrentDragSourceNode(n){this.clearCurrentDragSourceNode(),this.currentDragSourceNode=n;const s=1e3;this.mouseMoveTimeoutTimer=setTimeout(()=>{var i;return(i=this.rootElement)===null||i===void 0?void 0:i.addEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)},s)}clearCurrentDragSourceNode(){if(this.currentDragSourceNode){if(this.currentDragSourceNode=null,this.rootElement){var n;(n=this.window)===null||n===void 0||n.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.rootElement.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)}return this.mouseMoveTimeoutTimer=null,!0}return!1}handleDragStart(n,s){n.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(s))}handleDragEnter(n,s){this.dragEnterTargetIds.unshift(s)}handleDragOver(n,s){this.dragOverTargetIds===null&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(s)}handleDrop(n,s){this.dropTargetIds.unshift(s)}constructor(n,s,i){this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.sourceNodes=new Map,this.sourceNodeOptions=new Map,this.dragStartSourceIds=null,this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.asyncEndDragFrameId=null,this.dragOverTargetIds=null,this.lastClientOffset=null,this.hoverRafId=null,this.getSourceClientOffset=a=>{const c=this.sourceNodes.get(a);return c&&vT(c)||null},this.endDragNativeItem=()=>{this.isDraggingNativeItem()&&(this.actions.endDrag(),this.currentNativeHandle&&this.registry.removeSource(this.currentNativeHandle),this.currentNativeHandle=null,this.currentNativeSource=null)},this.isNodeInDocument=a=>!!(a&&this.document&&this.document.body&&this.document.body.contains(a)),this.endDragIfSourceWasRemovedFromDOM=()=>{const a=this.currentDragSourceNode;a==null||this.isNodeInDocument(a)||(this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover())},this.scheduleHover=a=>{this.hoverRafId===null&&typeof requestAnimationFrame<"u"&&(this.hoverRafId=requestAnimationFrame(()=>{this.monitor.isDragging()&&this.actions.hover(a||[],{clientOffset:this.lastClientOffset}),this.hoverRafId=null}))},this.cancelHover=()=>{this.hoverRafId!==null&&typeof cancelAnimationFrame<"u"&&(cancelAnimationFrame(this.hoverRafId),this.hoverRafId=null)},this.handleTopDragStartCapture=()=>{this.clearCurrentDragSourceNode(),this.dragStartSourceIds=[]},this.handleTopDragStart=a=>{if(a.defaultPrevented)return;const{dragStartSourceIds:c}=this;this.dragStartSourceIds=null;const h=g$(a);this.monitor.isDragging()&&(this.actions.endDrag(),this.cancelHover()),this.actions.beginDrag(c||[],{publishSource:!1,getSourceClientOffset:this.getSourceClientOffset,clientOffset:h});const{dataTransfer:g}=a,b=xy(g);if(this.monitor.isDragging()){if(g&&typeof g.setDragImage=="function"){const y=this.monitor.getSourceId(),w=this.sourceNodes.get(y),T=this.sourcePreviewNodes.get(y)||w;if(T){const{anchorX:C,anchorY:E,offsetX:k,offsetY:A}=this.getCurrentSourcePreviewNodeOptions(),B=LA(w,T,h,{anchorX:C,anchorY:E},{offsetX:k,offsetY:A});g.setDragImage(T,B.x,B.y)}}try{g==null||g.setData("application/json",{})}catch{}this.setCurrentDragSourceNode(a.target);const{captureDraggingState:$}=this.getCurrentSourcePreviewNodeOptions();$?this.actions.publishDragSource():setTimeout(()=>this.actions.publishDragSource(),0)}else if(b)this.beginDragNativeItem(b);else{if(g&&!g.types&&(a.target&&!a.target.hasAttribute||!a.target.hasAttribute("draggable")))return;a.preventDefault()}},this.handleTopDragEndCapture=()=>{this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleTopDragEnterCapture=a=>{if(this.dragEnterTargetIds=[],this.isDraggingNativeItem()){var c;(c=this.currentNativeSource)===null||c===void 0||c.loadDataTransfer(a.dataTransfer)}if(!this.enterLeaveCounter.enter(a.target)||this.monitor.isDragging())return;const{dataTransfer:g}=a,b=xy(g);b&&this.beginDragNativeItem(b,g)},this.handleTopDragEnter=a=>{const{dragEnterTargetIds:c}=this;if(this.dragEnterTargetIds=[],!this.monitor.isDragging())return;this.altKeyPressed=a.altKey,c.length>0&&this.actions.hover(c,{clientOffset:g$(a)}),c.some(g=>this.monitor.canDropOnTarget(g))&&(a.preventDefault(),a.dataTransfer&&(a.dataTransfer.dropEffect=this.getCurrentDropEffect()))},this.handleTopDragOverCapture=a=>{if(this.dragOverTargetIds=[],this.isDraggingNativeItem()){var c;(c=this.currentNativeSource)===null||c===void 0||c.loadDataTransfer(a.dataTransfer)}},this.handleTopDragOver=a=>{const{dragOverTargetIds:c}=this;if(this.dragOverTargetIds=[],!this.monitor.isDragging()){a.preventDefault(),a.dataTransfer&&(a.dataTransfer.dropEffect="none");return}this.altKeyPressed=a.altKey,this.lastClientOffset=g$(a),this.scheduleHover(c),(c||[]).some(g=>this.monitor.canDropOnTarget(g))?(a.preventDefault(),a.dataTransfer&&(a.dataTransfer.dropEffect=this.getCurrentDropEffect())):this.isDraggingNativeItem()?a.preventDefault():(a.preventDefault(),a.dataTransfer&&(a.dataTransfer.dropEffect="none"))},this.handleTopDragLeaveCapture=a=>{this.isDraggingNativeItem()&&a.preventDefault(),this.enterLeaveCounter.leave(a.target)&&(this.isDraggingNativeItem()&&setTimeout(()=>this.endDragNativeItem(),0),this.cancelHover())},this.handleTopDropCapture=a=>{if(this.dropTargetIds=[],this.isDraggingNativeItem()){var c;a.preventDefault(),(c=this.currentNativeSource)===null||c===void 0||c.loadDataTransfer(a.dataTransfer)}else xy(a.dataTransfer)&&a.preventDefault();this.enterLeaveCounter.reset()},this.handleTopDrop=a=>{const{dropTargetIds:c}=this;this.dropTargetIds=[],this.actions.hover(c,{clientOffset:g$(a)}),this.actions.drop({dropEffect:this.getCurrentDropEffect()}),this.isDraggingNativeItem()?this.endDragNativeItem():this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleSelectStart=a=>{const c=a.target;typeof c.dragDrop=="function"&&(c.tagName==="INPUT"||c.tagName==="SELECT"||c.tagName==="TEXTAREA"||c.isContentEditable||(a.preventDefault(),c.dragDrop()))},this.options=new BA(s,i),this.actions=n.getActions(),this.monitor=n.getMonitor(),this.registry=n.getRegistry(),this.enterLeaveCounter=new xA(this.isNodeInDocument)}}let f$;function FA(){return f$||(f$=new Image,f$.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),f$}const yT=function(n,s,i){return new jA(n,s,i)},q$="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='512'%20height='512'%20shape-rendering='geometricPrecision'%20image-rendering='optimizeQuality'%20fill-rule='evenodd'%20xmlns:v='https://vecta.io/nano'%3e%3cpath%20fill='%23efda4e'%20d='M-.5-.5h512v512H-.5V-.5z'/%3e%3cpath%20fill='%23020100'%20d='M308.5%20287.5c1.777-3.005%202.777-6.338%203-10%209.147-21.963%2025.48-35.463%2049-40.5%2021.999-4.173%2043.666-2.84%2065%204%2014.575%205.411%2025.575%2014.911%2033%2028.5l-1%202c-12.413%205.624-24.58%2011.624-36.5%2018-5.321-8.25-12.821-13.417-22.5-15.5-13.957-3.122-27.29-1.455-40%205-8.125%205.36-10.958%2012.86-8.5%2022.5%203.223%206.223%208.057%2010.723%2014.5%2013.5l64%2020c38.459%2016.085%2052.626%2044.585%2042.5%2085.5-7.572%2026.208-24.738%2042.041-51.5%2047.5-25.102%205.733-49.768%204.4-74-4-19.291-8.625-32.291-22.958-39-43%2011.266-8.887%2023.433-16.387%2036.5-22.5%203.117%206.896%206.784%2013.563%2011%2020%2012.705%2012.307%2027.872%2016.807%2045.5%2013.5%2022.189-3.504%2032.355-16.338%2030.5-38.5-2.833-6.833-7.667-11.667-14.5-14.5l-57-17c-36.004-11.84-52.67-36.673-50-74.5z'/%3e%3cpath%20fill='%23020200'%20d='M222.5%20238.5h43l-.5%20159c-2.688%2052.355-30.188%2076.855-82.5%2073.5-24.871-3.543-41.204-17.21-49-41l.5-2.5a12.14%2012.14%200%200%200%204.5-3.5c10.653-5.825%2021.32-11.325%2032-16.5%204.763%2021.72%2017.763%2028.887%2039%2021.5%204.616-2.618%207.783-6.451%209.5-11.5%201.163-5.968%202.163-11.968%203-18l.5-161z'/%3e%3cpath%20fill='%23615820'%20d='M311.5%20277.5c-.223%203.662-1.223%206.995-3%2010%20.223-3.662%201.223-6.995%203-10z'/%3e%3c/svg%3e",_T="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20500%20500'%3e%3cpath%20fill='%234285f4'%20d='M44.271%2027.275l206.5%201v170l-58.5-36.5c-7.005-.916-12.505%201.584-16.5%207.5v147c4.625%204.412%2010.125%206.245%2016.5%205.5l57.5-35.5c.833%2054.003%201.356%20108.003.189%20162-1.272.546-45.599-.242-48.689%201.121-3.674%207.844-4.79%2011.207-13%2023.879-4.372%205.527-2.19%204.097-10.689%2012.258-5.166%202.748-4.191%203.45-14.311%206.242-17.67%201.983-35.336%201.983-53%200-9.535-3.774-10.879-4.163-18.526-11.22-5.562-4.39-11.131-11.803-11.974-15.28-4.068-7.881-3.42-9.116-5.5-13.5-3.672-1.503-35.798.203-40.746-1.335-5.823-2.314-2.946-.422-7.954-3.689-2.888-2.668-2.255-3.221-2.421-9.904L20.771%2050.275c.36-2.108-.41-5.806%202.522-11.615%204.343-5.852%205.374-7%2010.061-9.146%206.083-2.73%208.677-1.475%2010.917-2.239z'/%3e%3cpath%20d='M258.271%2030.275l154.63.407c5.654.559%2010.783%203.17%2014.37%207.093%204.907%204.408%206.204%208.723%207.5%2013.5v373c-.208%205.716-.297%207.982-4.848%2015.404-7.078%206.393-9.879%206.39-15.652%206.692-24.804%201.296-50.079%201.189-74.96%201.041-24.516-.014-68.46.89-81.5.391l-2.512-172.528c-20.083%2012.625-42.777%2025.125-63.028%2037.5-4.127%201.292-7.294.125-9.5-3.5l1-137c1.864-2.707%204.364-3.541%207.5-2.5%2020.366%2013.427%2064.35%2038.947%2065.581%2038.339l1.419-177.839z'%20fill='%23DDD'/%3e%3c/svg%3e",wT="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%20width='32'%20height='32'%3e%3cpath%20fill='%23007acc'%20d='M-.5-.5h503l-1%20179h10v333h-421v-7h-91V-.5z'/%3e%3cpath%20fill='%230f81cf'%20d='M502.5-.5h9v179h-10l1-179z'/%3e%3cpath%20fill='%23fdfefe'%20d='M470.5%20227.5c.33%2017.508-.003%2034.841-1%2052-23.486-15.709-48.82-19.875-76-12.5-15.89%208.078-19.39%2019.911-10.5%2035.5%204.673%205.577%2010.173%2010.077%2016.5%2013.5l38%2019c17.945%209.278%2031.112%2023.112%2039.5%2041.5%201.352%203.22%202.186%206.553%202.5%2010a305.16%20305.16%200%200%201%201%2026c-3.553%2033.726-21.886%2054.559-55%2062.5-34.769%207.363-68.435%204.196-101-9.5-.167-19.003%200-38.003.5-57%2022.903%2021.314%2049.736%2029.147%2080.5%2023.5%2019.435-5.701%2025.268-17.868%2017.5-36.5-4.718-6.44-10.552-11.606-17.5-15.5a1552.42%201552.42%200%200%201-47-24c-27.679-19.331-38.846-45.831-33.5-79.5%206.43-26.433%2022.597-43.933%2048.5-52.5%2026.131-6.625%2052.464-7.292%2079-2a565.56%20565.56%200%200%201%2018%205.5z'/%3e%3cpath%20fill='%23fefefe'%20d='M122.5%20222.5h182v46h-65v206h-52v-206h-65v-46z'/%3e%3cpath%20fill='%2370b3e1'%20d='M470.5%20227.5c1.327%2017.505%201.327%2035.171%200%2053-.607-.124-.94-.457-1-1%20.997-17.159%201.33-34.492%201-52z'/%3e%3cpath%20fill='%236cafe0'%20d='M479.5%20386.5c1.465%205.09%202.132%2010.423%202%2016-.002%203.518-.335%206.851-1%2010a305.16%20305.16%200%200%200-1-26z'/%3e%3cpath%20fill='%231283cf'%20d='M-.5%20504.5h91v7h-91v-7z'/%3e%3c/svg%3e",CT="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0ibXlHcmFkaWVudCI+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSIxMCUiIHN0b3AtY29sb3I9IiMxQzJENUYiIC8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSI5NSUiIHN0b3AtY29sb3I9IiMwQjFENTMiIC8+CiAgICA8L3JhZGlhbEdyYWRpZW50PgogICAgPHBhdGggZmlsbD0idXJsKCcjbXlHcmFkaWVudCcpIiBkPSJNLS4xLS4xaDUxMnY1MTJILS4xVi0uMXoiLz4KICAgIDxwYXRoIGZpbGw9IiNmOGY4ZmEiCiAgICAgICAgICBkPSJNNDgyLjUgMjMxLjV2NmgtMjVjLS45NzItOC4xNy01LjYzOS0xMi4xNy0xNC0xMi05LjUzMS4wMjktMTMuMzY1IDQuNjk1LTExLjUgMTRsNC41IDQuNSAzMyA4YzE5LjM4OCA5LjYzNCAyMy4zODggMjMuODAxIDEyIDQyLjVhMzUuMDYgMzUuMDYgMCAwIDAtOCA2Yy0xMy45MjUgNC43NjEtMjguMjU4IDYuMjYxLTQzIDQuNS0xMC42MDEtMS4wMjQtMTguOTM1LTUuODU3LTI1LTE0LjUtMS4wNzctMi4yMjktMS43NDQtNC41NjMtMi03di04aDI1YzEuNDk1IDQuMjc5IDMuODI4IDguMTEzIDcgMTEuNSA3LjQ3OCAyLjI1OCAxNC44MTEgMS45MjUgMjItMSAyLjg5NC0yLjkwOSAzLjcyNy02LjQwOSAyLjUtMTAuNWEzNi44IDM2LjggMCAwIDAtMTIuNS01LjUgNTM5Ljc5IDUzOS43OSAwIDAgMS0yOC04Yy0xMi44NzQtNi41NjItMTcuNzA3LTE3LjA2Mi0xNC41LTMxLjUgMy41Ny0xMC41NjkgMTAuNzM3LTE3LjQwMyAyMS41LTIwLjUgMTYuMTQ4LTQuNTM5IDMxLjQ4Mi0yLjcwNiA0NiA1LjUgMiAyLjY2NyA0LjMzMyA1IDcgNyAxLjg3MSAyLjczNCAyLjg3MSA1LjczNCAzIDl6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTRhYmJmIiBkPSJNMTUzLjUgMjA5LjVjLjA2LS41NDMuMzkzLS44NzYgMS0xYTEwMjQuNjMgMTAyNC42MyAwIDAgMSAxIDY0bC0yLTYzeiIvPgogICAgPHBhdGggZmlsbD0iI2ZhZmJmYyIKICAgICAgICAgIGQ9Ik0xNTMuNSAyMDkuNWwyIDYzYzEuMjc4IDExLjQ0NCA3LjYxMSAxNi4yNzcgMTkgMTQuNSA4LjcwNC0xLjM3OCAxMy4yMDQtNi41NDQgMTMuNS0xNS41LjUtMjAuNjY0LjY2Ny00MS4zMzEuNS02MiA5Ljc0My0uMjE5IDE5LjQwOS0uMjE5IDI5IDAgLjQwMSAyMy4zNjItLjA5OSA0Ni42OTYtMS41IDcwLTQuMjk4IDE0Ljk2OC0xNC4xMzEgMjMuNDY4LTI5LjUgMjUuNWEyMjUuMTQgMjI1LjE0IDAgMCAxLTMwIDBjLTE1LjgyMi0yLjE1NS0yNS42NTUtMTAuOTg4LTI5LjUtMjYuNWwtLjUtNjloMjd6Ii8+CiAgICA8cGF0aCBmaWxsPSIjZmVmZWZlIgogICAgICAgICAgZD0iTTIzMy41IDIwOS41aDI3Yy0uMzMxIDI1LjE3Mi4wMDIgNTAuMTcyIDEgNzUgMCAuNjY3LjMzMyAxIDEgMSAxMy4xNTYuOTk2IDI2LjQ5IDEuMzI5IDQwIDF2MTdoLTY5di05NHoiLz4KICAgIDxwYXRoIGZpbGw9IiNhNWFjYmYiIGQ9Ik0yMzMuNSAyMDkuNWM5LjE1Mi0uOTk0IDE4LjQ4NS0xLjMyNyAyOC0xdjc2Yy0uOTk4LTI0LjgyOC0xLjMzMS00OS44MjgtMS03NWgtMjd6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTdhZWMxIiBkPSJNMzE2LjUgMjA5LjVoNzNjLjMyMyA2LjE5LS4wMSAxMi4xOS0xIDE4di0xN2MtMjQuMTcyLjMzMS00OC4xNzItLjAwMi03Mi0xeiIvPgogICAgPHBhdGggZmlsbD0iI2E1YWNjMCIgZD0iTTg1LjUgMjEwLjVoLTU5djkzaDI3Yy0uMzI4LTExLjE3OS4wMDUtMjIuMTc5IDEtMzN2MzRoLTI5di05NWE5MDAuOTggOTAwLjk4IDAgMCAxIDYwIDF6Ii8+CiAgICA8cGF0aCBmaWxsPSIjZmNmY2ZjIgogICAgICAgICAgZD0iTTg1LjUgMjEwLjVjMjIuMjIzIDMuNzU4IDI5LjU1NiAxNi40MjUgMjIgMzgtNC4yMjggNS4zOTctOS4yMjggOS44OTctMTUgMTMuNS0xLjMwNS44MDQtMS45NzEgMS45NzEtMiAzLjVsMjMgMzZjLTQuNDUxIDEuMzI3LTkuMjg0IDEuOTk0LTE0LjUgMmExMjguMTkgMTI4LjE5IDAgMCAxLTE1LjUtMWMtNi45NTUtMTAuMzI2LTEzLjQ1NS0yMC45OTItMTkuNS0zMi0zLjI2OS0xLjMxOC02LjQzNS0xLjMxOC05LjUgMC0uOTk1IDEwLjgyMS0xLjMyOCAyMS44MjEtMSAzM2gtMjd2LTkzaDU5eiIvPgogICAgPHBhdGggZmlsbD0iI2ZlZmVmZSIKICAgICAgICAgIGQ9Ik0zMTYuNSAyMDkuNWMyMy44MjguOTk4IDQ3LjgyOCAxLjMzMSA3MiAxdjE3Yy0xNC42Ny0uMTY3LTI5LjMzNyAwLTQ0IC41LTEuMzI2IDYuNTk5LTEuMzI2IDEzLjA5OSAwIDE5LjUgMTQuNDkuOTk2IDI5LjE1NyAxLjMyOSA0NCAxdjE2Yy0xNC44NDMtLjMyOS0yOS41MS4wMDQtNDQgMWE1MC41MSA1MC41MSAwIDAgMCAwIDIwYzE0LjQ5Ljk5NiAyOS4xNTcgMS4zMjkgNDQgMXYxN2gtNzNjLS4zMzItMzEuNTA0LjAwMi02Mi44MzggMS05NHoiLz4KICAgIDxwYXRoIGZpbGw9IiMxODI3NWIiCiAgICAgICAgICBkPSJNNTUuNSAyMjkuNWM3LjA4OS0uMzg0IDE0LjA4OS4xMTYgMjEgMS41IDMuNDAxIDEuMzIgNC43MzUgMy44MiA0IDcuNWwtLjUgNWMtMS43NzEuODA0LTMuMjcxIDEuOTcxLTQuNSAzLjUtNi41OTIgMS4zMjktMTMuMjU5IDEuODI5LTIwIDEuNXYtMTl6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTVhY2MwIiBkPSJNNDgyLjUgMjMxLjVjLjk2OCAyLjEwNyAxLjMwMiA0LjQ0MSAxIDctOC44NDkuMzI2LTE3LjUxNi0uMDA3LTI2LTFoMjV2LTZ6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTZhZGMwIiBkPSJNMzQ0LjUgMjQ3LjVoNDV2MThoLTQ1YzE0LjQ5LS45OTYgMjkuMTU3LTEuMzI5IDQ0LTF2LTE2Yy0xNC44NDMuMzI5LTI5LjUxLS4wMDQtNDQtMXoiLz4KICAgIDxwYXRoIGZpbGw9IiNhMmE5YmUiIGQ9Ik00MjguNSAyNzUuNWgtMjV2OGMtLjk3Ny0yLjc4Ny0xLjMxLTUuNzg3LTEtOSA4Ljg0OS0uMzI2IDE3LjUxNi4wMDcgMjYgMXoiLz4KICAgIDxwYXRoIGZpbGw9IiNhNWFjYmYiCiAgICAgICAgICBkPSJNMTEzLjUgMzAxLjVjLjk3OC4zMTEgMS42NDUuOTc4IDIgMmwtMTYgMWMtNS43MTEtLjAwNS0xMS4wNDQtLjY3Mi0xNi0yYTEyOC4xOSAxMjguMTkgMCAwIDAgMTUuNSAxYzUuMjE2LS4wMDYgMTAuMDQ5LS42NzMgMTQuNS0yeiIvPgogICAgPHBhdGggZmlsbD0iI2E1YWNjMCIgZD0iTTIzMy41IDIwOS41djk0aDY5di0xN2MtMTMuNTEuMzI5LTI2Ljg0NC0uMDA0LTQwLTFoNDF2MTloLTcxYTIyNTYuNDEgMjI1Ni40MSAwIDAgMSAxLTk1eiIvPgogICAgPHBhdGggZmlsbD0iI2E2YWNjMCIKICAgICAgICAgIGQ9Ik0zMTYuNSAyMDkuNWMtLjk5OCAzMS4xNjItMS4zMzIgNjIuNDk2LTEgOTRoNzN2LTE3Yy0xNC44NDMuMzI5LTI5LjUxLS4wMDQtNDQtMWg0NXYxOWgtNzVhMjMwNC45NSAyMzA0Ljk1IDAgMCAxIDEtOTZjLjYwNy4xMjQuOTQuNDU3IDEgMXoiLz4KPC9zdmc+",zA=Er([f.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),f.jsx("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"AccessTime"),UA=Er(f.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddBox"),WA=Er(f.jsx("path",{d:"M4 8h4V4H4zm6 12h4v-4h-4zm-6 0h4v-4H4zm0-6h4v-4H4zm6 0h4v-4h-4zm6-10v4h4V4zm-6 4h4V4h-4zm6 6h4v-4h-4zm0 6h4v-4h-4z"}),"Apps"),HA=Er(f.jsx("path",{d:"M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54s-2.94 8.27-7 9.54c.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2"}),"Brightness3"),ST=Er(f.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm-1 4 6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2zm-1 7h5.5L14 6.5z"}),"FileCopy"),VA=Er(f.jsx("path",{d:"M7 2v11h3v9l7-12h-4l4-8z"}),"FlashOn"),GA=Er(f.jsx("path",{d:"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z"}),"Functions"),dw=Er(f.jsx("path",{d:"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4"}),"HelpOutline"),KA=Er(f.jsx("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause"),JA=Er(f.jsx("path",{d:"M8 5v14l11-7z"}),"PlayArrow"),qA=Er(f.jsx("path",{d:"M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4z"}),"PlayForWork"),YA=Er(f.jsx("path",{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15M14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2"}),"QuestionMark"),XA=Er(f.jsx("path",{d:"M10.59 9.17 5.41 4 4 5.41l5.17 5.17zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4zm.33 9.41-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04z"}),"Shuffle"),ZA=Er(f.jsx("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"}),"Storage"),QA=Er(f.jsx("path",{d:"M14 17H4v2h10zm6-8H4v2h16zM4 15h16v-2H4zM4 5v2h16V5z"}),"Subject");class hw extends We.Component{isShowInstance;oldId;constructor(n){super(n),this.state={name:n.name,id:n.id,instance:n.instance||0,prefix:hw.getPrefix(n.id)},this.isShowInstance=!n.folder&&!!n.instances&&(!!n.instance||!!n.instances[0]||n.instances.length>1),this.oldId=n.id}static getPrefix(n){const s=(n||"").split(".");return s.pop(),s.join(".")}getId(n){return n=(n||"").replace(/[\\/\][*,;'"`<>?\s]/g,"_"),`${this.state.prefix}.${n}`}handleCancel=()=>{this.props.onClose()};handleOk=()=>{this.props.onRename(this.oldId,this.state.id,this.state.name,this.state.instance===0?0:this.state.instance||void 0),this.props.onClose()};handleChange=n=>{this.setState({name:n,id:this.getId(n)})};render(){return f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"md",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[f.jsx(D.DialogTitle,{id:"confirmation-dialog-title",children:I.I18n.t("Rename")}),f.jsx(D.DialogContent,{children:f.jsxs("form",{noValidate:!0,autoComplete:"off",children:[f.jsx(D.TextField,{variant:"standard",style:{width:"100%"},id:"standard-name",autoFocus:!0,label:I.I18n.t("Name"),value:this.state.name,onKeyUp:n=>{n.key==="Enter"&&(n.preventDefault(),setTimeout(()=>this.handleOk(),200))},onChange:n=>this.handleChange(n.target.value),margin:"normal"}),f.jsx(D.TextField,{variant:"standard",id:"standard-name-id",style:{width:"100%"},label:I.I18n.t("ID"),value:this.state.id,disabled:!0,margin:"normal"}),this.isShowInstance&&f.jsxs(D.FormControl,{variant:"standard",children:[f.jsx(D.InputLabel,{htmlFor:"instance",children:I.I18n.t("Instance")}),f.jsx(D.Select,{variant:"standard",value:this.state.instance,onChange:n=>this.setState({instance:parseInt(n.target.value,10)}),inputProps:{name:"instance",id:"instance"},children:this.props.instances.map(n=>f.jsx(D.MenuItem,{value:n,children:n||"0"},n))})]})]})}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",onClick:this.handleOk,color:"primary",startIcon:f.jsx(Va,{}),children:I.I18n.t("Ok")}),f.jsx(D.Button,{color:"grey",variant:"contained",onClick:this.handleCancel,startIcon:f.jsx(Jo,{}),children:I.I18n.t("Cancel")})]})]})}}class eO extends We.Component{constructor(n){super(n),this.state={name:n.name,id:n.id}}handleCancel=()=>{this.props.onClose()};handleOk=()=>{this.props.onDelete(this.state.id),this.props.onClose()};render(){return f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"md",open:!0,"aria-labelledby":"confirmation-dialog-title",children:[f.jsx(D.DialogTitle,{id:"confirmation-dialog-title",children:I.I18n.t("Are you sure?")}),f.jsxs(D.DialogContent,{children:[f.jsx(AI,{}),f.jsx("span",{style:{fontSize:14,fontWeight:"bold"},children:I.I18n.t("Delete %s",this.state.name)})]}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",onClick:this.handleOk,color:"primary",startIcon:f.jsx(Va,{}),children:I.I18n.t("Ok")}),f.jsx(D.Button,{color:"grey",variant:"contained",onClick:this.handleCancel,startIcon:f.jsx(Jo,{}),children:I.I18n.t("Cancel")})]})]})}}const tO=""+new URL("tileJS-C48gYbHw.png",import.meta.url).href,nO=""+new URL("tileTS-CsXmgy4B.png",import.meta.url).href,sO=""+new URL("tileBlockly-BMpdinN3.png",import.meta.url).href,rO=""+new URL("tileRules-BkbaFIhs.png",import.meta.url).href,lr={card:{maxWidth:345,minWidth:250,display:"inline-block",margin:"0 10px 0 10px"},media:{height:122},text:{maxWidth:218,minHeight:30},complexity:{fontWeight:"bold",fontStyle:"italic",marginBottom:8}};class Ch extends We.Component{handleCancel=()=>{this.props.onClose()};static openHtml(n){const s=I.I18n.getLanguage();!n.includes("javascript.md")&&(s==="de"||s==="ru")&&(n=n.replace(/\/en\//,`/${s}/`));const i=window.open(n,"_blank");i==null||i.focus()}getJSCard(){return f.jsxs(D.Card,{style:lr.card,children:[f.jsxs(D.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("Javascript/js"),children:[f.jsx(D.CardMedia,{style:lr.media,image:tO,title:"JavaScript"}),f.jsxs(D.CardContent,{children:[f.jsx("h2",{children:"JavaScript"}),f.jsx("div",{style:lr.complexity,children:I.I18n.t("for programmers")}),f.jsx("div",{style:lr.text,children:I.I18n.t("JS description")})]})]}),f.jsxs(D.CardActions,{children:[f.jsx(D.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("Javascript/js"),children:I.I18n.t("Add")}),f.jsx(D.Button,{size:"small",color:"secondary",onClick:()=>Ch.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md"),children:I.I18n.t("Learn More")})]})]})}getTSCard(){return f.jsxs(D.Card,{style:lr.card,children:[f.jsxs(D.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("TypeScript/ts"),children:[f.jsx(D.CardMedia,{style:lr.media,image:nO,title:"TypeScript"}),f.jsxs(D.CardContent,{children:[f.jsx("h2",{children:"TypeScript"}),f.jsx("div",{style:lr.complexity,children:I.I18n.t("for professionals")}),f.jsx("div",{style:lr.text,children:I.I18n.t("TS description")})]})]}),f.jsxs(D.CardActions,{children:[f.jsx(D.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("TypeScript/ts"),children:I.I18n.t("Add")}),f.jsx(D.Button,{size:"small",color:"secondary",onClick:()=>Ch.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md"),children:I.I18n.t("Learn More")})]})]})}getBlocklyCard(){return f.jsxs(D.Card,{style:lr.card,children:[f.jsxs(D.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("Blockly"),children:[f.jsx(D.CardMedia,{style:lr.media,image:sO,title:"Blockly"}),f.jsxs(D.CardContent,{children:[f.jsx("h2",{children:"Blockly"}),f.jsx("div",{style:lr.complexity,children:I.I18n.t("normal")}),f.jsx("div",{style:lr.text,children:I.I18n.t("Blockly description")})]})]}),f.jsxs(D.CardActions,{children:[f.jsx(D.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("Blockly"),children:I.I18n.t("Add")}),f.jsx(D.Button,{size:"small",color:"secondary",onClick:()=>Ch.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/blockly.md"),children:I.I18n.t("Learn More")})]})]})}getRulesCard(){return f.jsxs(D.Card,{style:lr.card,children:[f.jsxs(D.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("Rules"),children:[f.jsx(D.CardMedia,{style:lr.media,image:rO,title:"Rules"}),f.jsxs(D.CardContent,{children:[f.jsx("h2",{children:"Rules"}),f.jsx("div",{style:lr.complexity,children:I.I18n.t("easy")}),f.jsx("div",{style:lr.text,children:I.I18n.t("Rules description")})]})]}),f.jsxs(D.CardActions,{children:[f.jsx(D.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("Rules"),children:I.I18n.t("Add")}),f.jsx(D.Button,{size:"small",color:"secondary",onClick:()=>Ch.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md"),children:I.I18n.t("Learn More")})]})]})}render(){return f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"lg",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[f.jsx(D.DialogTitle,{id:"confirmation-dialog-title",children:I.I18n.t("Add new script")}),f.jsxs(D.DialogContent,{style:{textAlign:"center"},children:[this.getRulesCard(),this.getBlocklyCard(),this.getJSCard(),this.getTSCard()]}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{color:"grey",onClick:this.handleCancel,startIcon:f.jsx(Jo,{}),children:I.I18n.t("Cancel")})})]})}}class Dy extends We.Component{isShowInstance;constructor(n){super(n),this.state={name:n.name||"Script",instance:n.instance||0,parent:n.parent,error:"",id:""},this.isShowInstance=!n.folder&&!!n.instances&&(!!n.instance||!!n.instances[0]||n.instances.length>1)}getId(n){return n=n||this.state.name||"",n=n.replace(/[\\/\][.*,;'"`<>?\s]/g,"_").trim().replace(/\.$/,"_"),`${this.state?this.state.parent:this.props.parent}.${n}`}handleOk=()=>{this.props.onAdd(this.getId(this.state.name),this.state.name,this.state.instance,this.props.type),this.props.onClose()};render(){var n;return console.log(this.state.name),f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"md",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[f.jsx(D.DialogTitle,{id:"confirmation-dialog-title",children:this.props.title||I.I18n.t("Create new")}),f.jsx(D.DialogContent,{children:f.jsxs("form",{noValidate:!0,autoComplete:"off",children:[f.jsx(D.TextField,{variant:"standard",style:{width:"100%"},id:"standard-name",autoFocus:!0,error:!!this.state.error,label:I.I18n.t("Name"),value:this.state.name||"",helperText:this.state.error,slotProps:{input:{endAdornment:this.state.name?f.jsx(D.IconButton,{size:"small",onClick:()=>this.setState({name:""}),children:f.jsx(OI,{})}):void 0}},onKeyUp:s=>{s.preventDefault(),s.key==="Enter"&&!this.state.error&&setTimeout(()=>this.handleOk(),200)},onChange:s=>{var c;const i=s.target.value,a=this.getId(i);i?(c=this.props.existingItems)!=null&&c.includes(a)?this.setState({name:i,id:a,error:I.I18n.t("Duplicate name")}):(console.log(`Set name: "${i}"`),this.setState({name:i,id:a,error:""})):this.setState({name:i,id:a,error:I.I18n.t("Empty name is not allowed")})},margin:"normal"}),f.jsxs(D.FormControl,{variant:"standard",style:{width:"100%"},children:[f.jsx(D.InputLabel,{htmlFor:"parent",children:I.I18n.t("Folder")}),f.jsx(D.Select,{variant:"standard",style:{width:"100%"},value:this.state.parent,onChange:s=>this.setState({parent:s.target.value}),inputProps:{name:"parent",id:"parent"},children:this.props.parents.map(s=>{const i=s.id.split(".");i.splice(0,2);const a=[];let c="script.js";return i.forEach(h=>{c+=`.${h}`;const g=this.props.parents.find(b=>b.id===c);g?a.push(g.name):a.push(h)}),a.length||a.push(s.name),f.jsx(D.MenuItem,{value:s.id,children:a.join(" / ")},s.id)})})]}),f.jsx(D.TextField,{variant:"standard",id:"standard-name-id",style:{width:"100%"},label:I.I18n.t("ID"),value:this.getId(),disabled:!0,margin:"normal"}),this.isShowInstance&&f.jsxs(D.FormControl,{variant:"standard",children:[f.jsx(D.InputLabel,{htmlFor:"instance",children:I.I18n.t("Instance")}),f.jsx(D.Select,{variant:"standard",value:this.state.instance,onChange:s=>this.setState({instance:parseInt(s.target.value,10)}),inputProps:{name:"instance",id:"instance"},children:(n=this.props.instances)==null?void 0:n.map(s=>f.jsx(D.MenuItem,{value:s,children:s||"0"},`instance${s}`))})]})]})}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",onClick:this.handleOk,disabled:!!this.state.error,color:"primary",startIcon:f.jsx(Va,{}),children:I.I18n.t("Ok")}),f.jsx(D.Button,{color:"grey",variant:"contained",onClick:()=>this.props.onClose(),startIcon:f.jsx(Jo,{}),children:I.I18n.t("Cancel")})]})]})}}const iO={title:o=>({background:o.palette.error.main,color:o.palette.error.contrastText,"&>h2":{color:o.palette.error.contrastText}})};class Hf extends We.Component{handleOk=()=>{this.props.onClose()};render(){return f.jsxs(D.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[f.jsx(D.DialogTitle,{sx:iO.title,id:"alert-dialog-title",children:this.props.title||I.I18n.t("Error")}),f.jsx(D.DialogContent,{children:f.jsx(D.DialogContentText,{id:"alert-dialog-description",children:this.props.text||I.I18n.t("Unknown error!")})}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:f.jsx(Va,{}),children:I.I18n.t("Ok")})})]})}}const nf={icon:{width:24,height:24},filterWithButton:{width:"100%"},title:{fontWeight:"bold",marginTop:16}};class oO extends We.Component{constructor(n){super(n),this.state={instances:[],filter:window.localStorage.getItem("javascript.debug.filter")||"",showAskForStop:!1,jsInstance:window.localStorage.getItem("javascript.debug.instance")||"",jsInstanceHost:"",adapterToDebug:window.localStorage.getItem("javascript.debug.adapter")||""}}componentDidMount(){this.props.socket.getAdapterInstances().then(n=>{const s=n.filter(g=>{var b;return g&&!((b=g.common)!=null&&b.onlyWWW)}).map(g=>{var y,w,T;const b=g._id.replace(/^system\.adapter\./,""),[$]=b.split(".");return{id:b,enabled:(y=g.common)==null?void 0:y.enabled,host:(w=g.common)==null?void 0:w.host,icon:(T=g.common)!=null&&T.icon?`../../adapter/${$}/${g.common.icon}`:""}});s.sort((g,b)=>g.id>b.id?1:g.idg.id===this.state.jsInstance):null;let c;if(!this.state.jsInstance||!a){const g=s.find(b=>b.id.startsWith("javascript."));c=(g==null?void 0:g.host)||"",i=(g==null?void 0:g.id)||""}else c=(a==null?void 0:a.host)||"";let h=this.state.adapterToDebug||"";h&&!s.find(g=>g.id===h)&&(h=""),this.setState({instances:s,jsInstance:i,adapterToDebug:h,jsInstanceHost:c})})}handleOk=()=>{var n;if((n=this.state.instances.find(s=>s.id===this.state.adapterToDebug))!=null&&n.enabled){this.props.socket.getObject(`system.adapter.${this.state.adapterToDebug}`).then(s=>{s&&(s.common.enabled=!1,this.props.socket.setObject(s._id,s).then(()=>this.props.onDebug(this.state.jsInstance,this.state.adapterToDebug)))});return}this.props.onDebug(this.state.jsInstance,this.state.adapterToDebug)};renderJavascriptList(){const n=this.state.instances.filter(s=>s.id.startsWith("javascript."));return n.length<2?null:f.jsxs(D.Grid2,{children:[f.jsx("div",{style:nf.title,children:I.I18n.t("Host")}),f.jsx(D.List,{component:"nav",children:n.map(s=>f.jsxs(D.ListItemButton,{component:"div",selected:this.state.jsInstance===s.id,onClick:()=>this.setState({jsInstance:s.id,jsInstanceHost:s.host}),children:[f.jsx(D.ListItemIcon,{children:f.jsx("img",{src:s.icon,alt:s.id,style:nf.icon})}),f.jsx(D.ListItemText,{primary:s.id})]},s.id))})]})}renderInstances(){if(!this.state.jsInstance)return f.jsx(D.Grid2,{});const n=this.state.instances.filter(s=>s.id!==this.state.jsInstance&&s.host===this.state.jsInstanceHost&&(!this.state.filter||s.id.includes(this.state.filter.toLowerCase())));return f.jsxs(D.Grid2,{children:[f.jsx("div",{style:nf.title,children:I.I18n.t("Instances")}),f.jsx(D.List,{component:"nav",children:n.map(s=>f.jsxs(D.ListItemButton,{selected:this.state.adapterToDebug===s.id,onDoubleClick:()=>this.setState({adapterToDebug:s.id},()=>this.handleOk()),onClick:()=>this.setState({adapterToDebug:s.id}),children:[f.jsx(D.ListItemIcon,{children:f.jsx("img",{src:s.icon,alt:s.id,style:nf.icon})}),f.jsx(D.ListItemText,{primary:s.id})]},s.id))})]})}render(){return f.jsxs(D.Dialog,{maxWidth:"md",fullWidth:!1,open:!0,onClose:()=>!1,"aria-labelledby":"confirmation-dialog-title",children:[f.jsx(D.DialogTitle,{id:"confirmation-dialog-title",children:this.props.title||I.I18n.t("Debug instance")}),f.jsx(D.DialogContent,{children:f.jsxs(D.Grid2,{container:!0,direction:"column",children:[f.jsx(D.Grid2,{children:f.jsx(D.Input,{style:nf.filterWithButton,value:this.state.filter,placeholder:I.I18n.t("Filter"),onChange:n=>{this.setState({filter:n.target.value}),window.localStorage.setItem("javascript.debug.filter",n.target.value)},endAdornment:f.jsx(D.InputAdornment,{position:"end",children:this.state.filter?f.jsx(D.IconButton,{size:"small","aria-label":"toggle password visibility",onClick:()=>this.setState({filter:""}),children:f.jsx(f_,{})}):""})})}),f.jsx(D.Grid2,{children:f.jsxs(D.Grid2,{container:!0,children:[this.renderJavascriptList(),this.renderInstances()]})})]})}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",onClick:this.handleOk,disabled:!this.state.jsInstance||!this.state.adapterToDebug,color:"primary",startIcon:f.jsx(Va,{}),children:I.I18n.t("Start")}),f.jsx(D.Button,{color:"grey",variant:"contained",onClick:()=>this.props.onClose(),startIcon:f.jsx(Jo,{}),children:I.I18n.t("Close")})]})]})}}const aO=48,aS=L0[400],lS=EI[400],cS=B0[400],kr="script.js",hh=`${kr}.common`,za=`${kr}.global`,sf=350,lO=16,TT={background:"#164477",color:"white"},bt={drawerPaper:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},toolbar:o=>({height:o.toolbar.height}),toolbarButtons:o=>({color:o.palette.mode==="dark"?"white !important":"black !important"}),iconButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},toolbarSearch:{width:"calc(100% - 105px)",lineHeight:"34px",marginLeft:5},iconButtons:{width:32,height:32,padding:2},iconDropdownMenu:{paddingRight:5},menu:{width:"100%",height:"100%"},innerMenu:{width:"100%",height:"calc(100% - 76px)",overflowX:"hidden",overflowY:"auto"},listItemIcon:{minWidth:32},scriptIcon:{width:18,height:18,borderRadius:2,marginTop:4,marginBottom:4,marginLeft:8,marginRight:4},folder:{cursor:"pointer",padding:0,userSelect:"none"},folderReorder:{opacity:.3,transitionDuration:"0.5s",transitionProperty:"opacity"},folderIcon:{width:20,height:20},folderIconReorder:{paddingTop:4,paddingBottom:4,paddingLeft:8,paddingRight:4},folderIconNoReorder:{cursor:"pointer",paddingTop:4,paddingBottom:4,paddingLeft:8,paddingRight:4},script:{cursor:"pointer",padding:0,userSelect:"none"},scriptReorder:{opacity:1,transitionDuration:"0.5s",transitionProperty:"opacity"},reorder:{},selected:TT,instances:{color:"gray",fontSize:"smaller"},childrenCount:{fontSize:10,opacity:.4},footer:{height:24,display:"flex"},footerButtons:o=>({"& img":{color:o.palette.mode==="dark"?"#ffffff":"#111111",cursor:"pointer",mt:"1px",mr:"2px",height:22,width:22,"&:hover":{backgroundColor:"#dbdbdb"}},"& svg":{color:o.palette.mode==="dark"?"#ffffff":"#111111",cursor:"pointer",mt:"1px",mr:"2px",height:22,width:22,"&:hover":{backgroundColor:"#dbdbdb"}}}),footerButtonsRight:{float:"right"}},ph={Blockly:_T,"Javascript/js":q$,def:q$,Rules:CT,"TypeScript/ts":wT};function T_(o,n,s){var i;return s=s||I.I18n.getLanguage(),(i=n==null?void 0:n.common)!=null&&i.name?typeof n.common.name=="object"?(n.common.name[s]||n.common.name.en||o.replace(/^script\.js./,"")).toString():n.common.name.toString():o.replace(/^script\.js./,"")}function uS(o){var a;const n=[{id:kr,depth:0,index:0,parent:null,title:"root",type:"folder",parentIndex:null}],s=Object.keys(o);for(let c=0;c1?g.join("."):null,instance:h.common.engine?parseInt(h.common.engine.split(".").pop(),10)||0:null,index:0,parentIndex:0}):n.push({id:s[c],title:T_(s[c],h),depth:g.length-1,type:"folder",parent:g.length>1?g.join("."):null,index:0,parentIndex:null})}let i;do i=!1,n.forEach(c=>{if(c.parent&&!n.find(g=>g.id===c.parent)){const g=c.parent.split(".");g.pop(),n.push({id:c.parent,title:c.parent.split(".").pop()||"",depth:g.length-1,type:"folder",parent:g.length>1?g.join("."):null,index:0,parentIndex:null}),i=!0}});while(i);return n.sort((c,h)=>{const g=c.id.toLowerCase(),b=h.id.toLowerCase();return c.type==="folder"&&h.type!=="folder"?-1:h.type==="folder"&&c.type!=="folder"||g>b?1:gc.index=h),n.forEach(c=>{if(c.parent){const h=n.find(g=>g.id===c.parent);h&&(c.parentIndex=h.index)}}),n}function cO(o){const{onDrop:n}=o,[{isOver:s,isOverAny:i},a]=uw({accept:"script",drop:c=>s?n(c):void 0,collect:c=>({isOver:c.isOver({shallow:!0}),isOverAny:c.isOver()})});return f.jsx("div",{ref:a,style:{background:s?"#40adff":void 0,opacity:i?.7:void 0},children:o.children},o.folderName)}function dS(o){const{name:n}=o,[{opacity:s},i]=hT({type:"script",item:()=>({name:n}),collect:a=>({opacity:a.isDragging()?.3:1})});return f.jsx("div",{ref:i,style:{opacity:s,transform:"translate3d(0, 0, 0)"},children:o.children},n)}class Ha extends We.Component{inputRef;filterTimer;problems;problemsTimer;onProblemUpdatedBound;parent=null;constructor(n){super(n);const s=window.localStorage?window.localStorage.getItem("SideMenu.expanded"):"[]";let i;try{i=JSON.parse(s||"[]")||[]}catch{i=[]}this.inputRef=We.createRef(),this.state={listItems:uS(n.scripts||{}),expanded:i,problems:[],reorder:!1,themeName:this.props.themeName,selected:window.localStorage&&window.localStorage.getItem("SideMenu.selected")||null,creatingScript:null,creatingFolder:!1,copingScript:"",renaming:null,deleting:null,choosingType:!1,errorText:"",instances:n.instances||[],menuOpened:!1,menuAnchorEl:null,menuAnchorFilterEl:null,searchMode:!1,expertMode:this.props.expertMode,searchText:"",width:this.props.width||300,typeFilter:window.localStorage&&window.localStorage.getItem("SideMenu.typeFilter")||"",statusFilter:window.localStorage&&window.localStorage.getItem("SideMenu.statusFilter")||"",runningInstances:this.props.runningInstances||{},scriptsHash:n.scriptsHash,showAdapterDebug:!1,isAllZeroInstances:!1};const a=this.ensureSelectedIsVisible();a&&Object.assign(this.state,{expanded:a}),this.filterTimer=null,Object.assign(this.state,{isAllZeroInstances:this.getIsAllZeroInstances()}),this.problems=null,this.problemsTimer=null,this.onProblemUpdatedBound=this.onProblemUpdated.bind(this)}readProblems(n,s){var i,a;if(s||(s=Object.keys(this.props.scripts)),!s||!s.length)n&&n();else{const c=s.shift(),h=this.props.scripts[c];if(((i=this.props.scripts)==null?void 0:i[c].type)==="script"&&((a=h.common)!=null&&a.enabled)&&!c.match(/^script\.js\.global\./)){const g=h.common.engine.split(".").pop(),b=this,$=`javascript.${g}.scriptProblem.${c.substring(kr.length+1)}`;this.props.socket.getState($).then(y=>{b.onProblemUpdated($,y),setTimeout(()=>b.readProblems(n,s),0)})}else setTimeout(()=>this.readProblems(n,s),0)}}componentDidMount(){this.readProblems(()=>{this.props.instances.forEach(n=>{this.props.socket.subscribeState(`javascript.${n}.scriptProblem.*`,this.onProblemUpdatedBound)})})}componentWillUnmount(){this.props.instances.forEach(n=>{this.props.socket.unsubscribeState(`javascript.${n}.scriptProblem.*`,this.onProblemUpdatedBound)})}onProblemUpdated(n,s){if(!s||!n)return;n=`${kr}.${n.replace(/^javascript\.\d+\.scriptProblem\./,"")}`,this.problems||(this.problems=JSON.parse(JSON.stringify(this.state.problems))||[]);let i=!1;if(s.val)this.problems.includes(n)||(this.problems.push(n),i=!0);else{const a=this.problems.indexOf(n);a!==-1&&(this.problems.splice(a,1),i=!0)}i&&!this.problemsTimer&&(this.problemsTimer=setTimeout(()=>{this.problemsTimer=null,this.setState({problems:this.problems}),this.problems=null},300))}static filterListStatic(n,s,i,a,c){s=JSON.parse(JSON.stringify(s));let h=!1;const g={listItems:s};if(n&&i&&a){const b=a.toLowerCase();if(s.forEach($=>{var C;const y=$.title.toLowerCase();$.filteredPartly=!1;let w=y.includes(b);const T=(C=c==null?void 0:c[$.id])==null?void 0:C.common;if(!w&&(T!=null&&T.source))if(T.engineType==="Blockly"){const E=T.source.lastIndexOf("//");w=T.source.substring(0,E).toLowerCase().includes(b)}else w=T.source.toLowerCase().includes(b);w?$.filtered&&($.filtered=!1,h=!0):$.filtered||($.filtered=!0,h=!0)}),h)for(let $=s.length-1;$>=0;$--){const y=s[$];if(!y.filtered||y.filteredPartly){let w=y;do w!=null&&w.parent&&s[w.parentIndex]&&(h=!0,s[w.parentIndex].filteredPartly=!0),w=w!=null&&w.parent&&s[w.parentIndex]?s[w.parentIndex]:null;while(w)}}}else s.forEach(b=>{(b.filtered||b.filteredPartly)&&(b.filtered=!1,b.filteredPartly=!1,h=!0)}),n||(g.searchText="",g.searchMode=!1,h=!0);return h?g:null}filterList(n,s){const i=Ha.filterListStatic(n,this.state.listItems,this.state.searchMode,this.state.searchText,this.props.scripts);i?this.setState(i,()=>s&&s()):s&&s()}static ensureSelectedIsVisibleStatic(n,s,i){s=JSON.parse(JSON.stringify(s));let a=!1,c=typeof n=="object"?n:i.find(h=>h.id===n);do{if(c!=null&&c.parent){const h=c.parent;c=i.find(g=>g.id===h)}else c=void 0;c&&(s.includes(c.id)||(s.push(c.id),a=!0))}while(c);return a?s:null}ensureSelectedIsVisible(n,s){return Ha.ensureSelectedIsVisibleStatic(n||this.state.selected,s||this.state.expanded,this.state.listItems)}static getDerivedStateFromProps(n,s){const i={};let a=!1;if(s.expertMode!==n.expertMode&&(a=!0,i.expertMode=n.expertMode),s.scriptsHash!==n.scriptsHash&&n.scripts){const c=uS(n.scripts||{});if(i.listItems=c,s.searchText){const b=Ha.filterListStatic(!0,c,s.searchMode,s.searchText,n.scripts);b&&Object.assign(i,b)}const h=Ha.getIsAllZeroInstancesStatic(c,n.instances||[]),g=Ha.ensureSelectedIsVisibleStatic(s.selected,s.expanded,s.listItems);i.isAllZeroInstances=h,g&&(i.expanded=g),a=!0}if(s.width!==n.width&&(a=!0,i.width=n.width),s.themeName!==n.themeName&&(a=!0,i.themeName=n.themeName),n.selectId&&s.selected!==n.selectId){const c=s.listItems.find(h=>h.id===n.selectId);if(!s.reorder&&c){const h=Ha.ensureSelectedIsVisibleStatic(c,s.expanded,s.listItems);i.selected=c.id,h&&(i.expanded=h),a=!0,window.localStorage&&window.localStorage.setItem("SideMenu.selected",c.id)}}return a?i:null}static getIsAllZeroInstancesStatic(n,s){let i=!s[0]&&s.length<=1;return i&&n.forEach(a=>{a.type!=="folder"&&a.instance!==0&&(i=!1)}),i}getIsAllZeroInstances(n,s){return n=n||this.state.listItems,s=s||this.state.instances,Ha.getIsAllZeroInstancesStatic(n||this.state.listItems,s||this.state.instances)}saveExpanded(n){window.localStorage.setItem("SideMenu.expanded",JSON.stringify(n||this.state.expanded))}showError(n){this.setState({errorText:n})}onToggle(n,s){if(s==null||s.stopPropagation(),n===kr)return;const i=[...this.state.expanded],a=i.indexOf(n);a!==-1?(i.splice(a,1),this.state.selected&&this.state.selected.startsWith(`${n}.`)&&window.localStorage&&window.localStorage.setItem("SideMenu.selected",n)):(i.push(n),i.sort()),this.setState({expanded:i}),this.saveExpanded(i)}renderItemButtonsOnEnd(n,s){if(this.state.reorder)return null;if(n.type!=="folder"){let i=n.enabled?aS:cS;return n.enabled&&this.state.problems.includes(n.id)&&(i=lS),[f.jsx(D.IconButton,{onClick:a=>{a.stopPropagation(),this.props.onEnableDisable&&this.props.onEnableDisable(n.id,!n.enabled)},title:n.enabled?I.I18n.t("Pause script"):I.I18n.t("Run script"),disabled:this.props.debugMode,style:{...bt.iconButtons,...this.props.debugMode?bt.iconButtonsDisabled:void 0,color:i},size:"medium",children:n.enabled?f.jsx(vf,{}):f.jsx(V$,{})},"startStop"),this.state.width>sf?f.jsx(D.IconButton,{style:this.props.debugMode?bt.iconButtonsDisabled:void 0,title:I.I18n.t("Delete script"),disabled:n.id===za||n.id===hh||this.props.debugMode,onClick:a=>this.onDelete(n,a),size:"medium",children:f.jsx(A$,{})},"delete"):null,f.jsx(D.IconButton,{style:this.props.debugMode?bt.iconButtonsDisabled:void 0,disabled:this.props.debugMode,title:I.I18n.t("Edit script or just double click"),onClick:a=>this.onEdit(n,a),size:"medium",children:f.jsx(j0,{})},"openInEdit")]}return this.state.width>sf&&n.id!==kr&&n.id!==hh&&n.id!==za&&s!=null&&s.length?f.jsx(D.IconButton,{style:this.props.debugMode?bt.iconButtonsDisabled:void 0,title:I.I18n.t("Delete folder"),disabled:n.id===za||n.id===hh||this.props.debugMode,onClick:i=>this.onDelete(n,i),size:"medium",children:f.jsx(A$,{})},"delete"):null}onDelete(n,s){return s==null||s.stopPropagation(),new Promise(i=>{if(!n){i();return}typeof n!="object"?this.setState({deleting:n},()=>i()):this.setState({deleting:n.id},()=>i())})}onEdit(n,s){this.onClick(n,s),this.props.onEdit&&this.props.onEdit(n.id)}getTextStyle(n){return!this.state.reorder&&n.type!=="folder"?{width:`calc(100% - ${this.state.width>sf?185:137}px)`,overflow:"hidden",whiteSpace:"nowrap",flex:"none",padding:"0 16px 0 0"}:{whiteSpace:"nowrap",padding:"0 16px 0 0"}}onClick(n,s){if(s==null||s.stopPropagation(),!this.state.reorder&&n){const i=this.ensureSelectedIsVisible(n),a={selected:n.id};i&&(a.expanded=i),this.setState(a),window.localStorage&&window.localStorage.setItem("SideMenu.selected",n.id)}}onDblClick(n,s){s==null||s.stopPropagation(),!this.state.reorder&&(n.type==="folder"?this.onToggle(n.id):this.onEdit(n))}isFilteredOut(n){return n.filtered&&!n.filteredPartly||this.state.typeFilter&&n.type!=="folder"&&n.type!==this.state.typeFilter||this.state.statusFilter&&n.type!=="folder"&&(this.state.statusFilter==="running"&&!n.enabled||this.state.statusFilter==="paused"&&n.enabled||this.state.statusFilter==="problems"&&(!n.enabled||this.state.problems.indexOf(n.id)===-1))?!0:n.id===za&&!this.state.expertMode}renderListItem(n,s,i){if(n.id===kr&&!this.state.reorder)return null;const a=(this.state.reorder?n.depth:n.depth-1)*lO;let c=n.title;if(this.state.searchText){const T=c.toLowerCase().indexOf(this.state.searchText.toLowerCase());T!==-1&&(c=[f.jsx("span",{children:c.substring(0,T)},"first"),f.jsx("span",{style:{color:"orange"},children:c.substring(T,T+this.state.searchText.length)},"second"),f.jsx("span",{children:c.substring(T+this.state.searchText.length)},"third")])}!this.state.isAllZeroInstances&&n.type!=="folder"&&(c=[f.jsx("span",{children:c},"title"),f.jsxs("span",{title:I.I18n.t("Instance"),style:bt.instances,children:["[",n.instance,"]"]},"instance")]);const h=this.state.reorder&&!this.props.debugMode,g=Object.assign({marginLeft:a,cursor:n.type==="folder"&&h?"default":"inherit",width:`calc(100% - ${a}px)`},n.id===this.state.selected&&!h?TT:void 0);h||(g.opacity=n.filteredPartly?.5:1),n.id===za&&n.id!==this.state.selected&&(g.color="#00a200");let b=n.id===kr;!b&&s&&(b=this.state.expanded.includes(n.id));let $;n.type==="folder"?$={...bt.folderIcon,...h?bt.folderIconReorder:bt.folderIconNoReorder}:$={...bt.scriptIcon},n.id===za?$.color="#356956":n.id===hh&&($.color="#4899e1");let y=null;(i&&i.length||s&&s.length)&&(y=f.jsx("span",{style:bt.childrenCount,children:i&&i.length!==s.length?`${i.length}(${s.length})`:s.length}));const w={...n.type==="folder"?bt.folder:bt.script,...h?bt.reorder:void 0,...h&&n.type!=="folder"?bt.scriptReorder:void 0,...h&&n.type==="folder"?bt.folderReorder:void 0,...g};return f.jsxs(D.ListItem,{style:w,className:I.Utils.clsx(h&&n.type==="folder"&&"folder-reorder",h&&n.type!=="folder"&&"script-reorder"),onClick:T=>this.onClick(n,T),onDoubleClick:T=>this.onDblClick(n,T),secondaryAction:this.renderItemButtonsOnEnd(n,s),children:[f.jsx(D.ListItemIcon,{style:bt.listItemIcon,children:n.type==="folder"?h||b?f.jsx(RI,{style:$,onClick:T=>!h&&this.onToggle(n.id,T)}):f.jsx(MI,{style:$,onClick:T=>!h&&this.onToggle(n.id,T)}):f.jsx("img",{style:$,alt:n.type,src:ph[n.type]||ph.def})}),f.jsx(D.ListItemText,{sx:{"& .MuiListItemText-primary":n.id===this.state.selected&&!h?bt.selected:void 0},style:this.getTextStyle(n),primary:f.jsxs("span",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[c,y]})})]},n.id)}onDragFinish(n,s){let i=`${s}.${n.split(".").pop()}`;i!==n&&(this.state.listItems.find(a=>a.id===i)&&(i+=`_${I.I18n.t("copy")}`),this.props.onRename&&this.props.onRename(n,i))}renderOneItem(n,s){const i=this.state.statusFilter||this.state.typeFilter?n.filter($=>$.parent===s.id?!this.isFilteredOut($):!1):[],a=n.filter($=>$.parent===s.id);if(this.isFilteredOut(s)||s.type==="folder"&&(this.state.statusFilter||this.state.typeFilter)&&!i.length)return null;const c=this.state.reorder&&!this.props.debugMode,h=this.renderListItem(s,a,i),g=[];let b;return a&&(c||this.state.expanded.includes(s.id)||s.id===kr)&&(b=a.map($=>this.renderOneItem(n,$))),c?s.type==="folder"?g.push(f.jsxs(cO,{onDrop:$=>this.onDragFinish($.name,s.id),folderName:s.id,children:[f.jsx(dS,{name:s.id,children:h},`draggable_${s.id}`),b||null]},`droppable_${s.id}`)):g.push(f.jsxs(dS,{name:s.id,children:[h,b||null]},`draggable_${s.id}`)):(g.push(h),b==null||b.forEach($=>g.push($))),g}renderAllItems(n){const s=n.filter(i=>!i.parent).map(i=>this.renderOneItem(n,i));return f.jsx(D.List,{dense:!0,disablePadding:!0,sx:bt.mainList,children:s})}onAddNew(n){n==null||n.stopPropagation();let s=this.state.listItems.find(a=>a.id===this.state.selected),i=kr;for(;s&&s.type!=="folder";)s=this.state.listItems[s.parentIndex];s&&(i=s.id),this.parent=i,this.setState({choosingType:!0})}onCopy(n,s){n==null||n.stopPropagation();let i=this.state.listItems.find(c=>c.id===s),a=kr;for(;i&&i.type!=="folder";)i=this.state.listItems[i.parentIndex];i&&(a=i.id),this.parent=a,this.setState({copingScript:s||""})}onAddNewFolder(n){n==null||n.stopPropagation();let s=this.state.listItems.find(a=>a.id===this.state.selected),i=kr;for(;s&&s.type!=="folder";)s=this.state.listItems[s.parentIndex];s&&(i=s.id),this.parent=i,this.setState({creatingFolder:!0})}onRename(n){n==null||n.stopPropagation(),this.setState({renaming:this.state.selected})}getUniqueName(n){let s=1,i=`${I.I18n.t("Script")} `;if(n){const a=T_(n,this.props.scripts[n]),c=a.match(/\d+$/);c?(i=a.replace(/\d+$/,""),s=parseInt(c[0],10)+1):i=a}for(;this.state.listItems.find(a=>a.id===`${this.parent}.${i.replace(/\.\s/g,"_")}${s}`);)s++;return i+s}getUniqueFolderName(){let n=1;for(;this.state.listItems.find(s=>s.id===`${this.parent}.${I.I18n.t("Folder")}_${n}`);)n++;return`${I.I18n.t("Folder")} ${n}`}onCloseMenu(n){this.setState({menuOpened:!1,menuAnchorEl:null,menuAnchorFilterEl:null},n)}getMainMenu(n,s){return f.jsxs(D.Menu,{id:"long-menu",anchorEl:this.state.menuAnchorEl,open:this.state.menuOpened,onClose:()=>this.setState({menuOpened:!1,menuAnchorEl:null}),slotProps:{paper:{style:{maxHeight:aO*7.5}}},children:[this.state.width<=sf?f.jsxs(D.MenuItem,{disabled:this.props.debugMode||!this.state.selected||this.state.selected===za||this.state.selected===hh||!!(n!=null&&n.length),onClick:i=>{if(i.stopPropagation(),i.preventDefault(),this.state.listItems.find(a=>a.parent===this.state.selected)){this.showError(I.I18n.t("Cannot delete non empty item!"));return}this.setState({menuOpened:!1,menuAnchorEl:null},()=>this.onDelete(this.state.selected).then(()=>{}))},children:[f.jsx(A$,{style:{...bt.iconDropdownMenu,color:"red"}}),I.I18n.t("Delete")]},"delete"):null,f.jsxs(D.MenuItem,{disabled:this.props.debugMode,selected:this.state.expertMode,onClick:i=>{i.stopPropagation(),i.preventDefault(),this.onCloseMenu(()=>this.props.onExpertModeChange&&this.props.onExpertModeChange(!this.state.expertMode))},children:[f.jsx(I.IconExpert,{style:{...bt.iconDropdownMenu,color:this.state.expertMode?"orange":"inherit"}}),I.I18n.t("Expert mode")]},"expertMode"),this.props.onExport&&f.jsxs(D.MenuItem,{onClick:i=>{i.stopPropagation(),i.preventDefault(),this.onCloseMenu(()=>this.props.onExport())},children:[f.jsx(G$,{style:bt.iconDropdownMenu}),I.I18n.t("Export all scripts")]},"exportAll"),this.props.onImport&&f.jsxs(D.MenuItem,{disabled:this.props.debugMode,onClick:i=>{i.stopPropagation(),i.preventDefault(),this.onCloseMenu(()=>this.props.onImport())},children:[f.jsx(m_,{style:bt.iconDropdownMenu}),I.I18n.t("Import scripts")]},"import"),this.props.onThemeChange&&f.jsxs(D.MenuItem,{onClick:()=>this.onCloseMenu(()=>{this.props.onThemeChange&&this.props.onThemeChange(I.Utils.toggleTheme(this.state.themeName))}),children:[f.jsx(NI,{style:bt.iconDropdownMenu}),I.I18n.t('Change theme (actual "%s")',this.state.themeName)]},"dark"),this.props.onAddNew&&f.jsxs(D.MenuItem,{disabled:!this.state.selected||!s||s.type==="folder",onClick:i=>{const a=this.state.selected;this.onCloseMenu(()=>this.onCopy(i,a))},children:[f.jsx(nw,{style:bt.iconDropdownMenu}),I.I18n.t("Copy script")]},"copy"),this.state.expertMode&&f.jsxs(D.MenuItem,{disabled:this.props.debugMode,onClick:i=>{i.stopPropagation(),i.preventDefault(),this.onCloseMenu(()=>this.setState({showAdapterDebug:!0}))},children:[f.jsx(uf,{style:bt.iconDropdownMenu}),I.I18n.t("Debug instance")]},"debugInstance")]},"menu")}getToolbarButtons(){const n=[],s=this.state.reorder&&!this.props.debugMode;if(this.state.searchMode&&!this.props.debugMode)n.push(f.jsx(D.Input,{value:this.state.searchText,style:bt.toolbarSearch,ref:this.inputRef,autoFocus:!0,placeholder:I.I18n.t("Search..."),onChange:i=>{this.setState({searchText:i.target.value}),this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>{this.filterTimer=null,this.filterList(!0),this.props.onSearch&&this.props.onSearch(this.state.searchText)},400)}},"searchInput")),n.push(f.jsx(D.IconButton,{sx:bt.toolbarButtons,style:{float:"right"},title:I.I18n.t("End search mode"),onClick:i=>{i.stopPropagation(),this.filterList(!1,()=>this.props.onSearch&&this.props.onSearch(this.state.searchText))},size:"medium",children:f.jsx(LI,{})},"disableSearch")),this.state.searchText&&n.push(f.jsx(D.IconButton,{title:I.I18n.t("Clear search input"),sx:bt.toolbarButtons,style:{marginTop:7,float:"right"},onClick:i=>{i.stopPropagation(),this.setState({searchText:""},()=>{this.filterList(!0),this.props.onSearch&&this.props.onSearch(this.state.searchText)})},size:"medium",children:f.jsx(Xl,{fontSize:"small"})},"cleanSearch"));else{if(!s){n.push(f.jsx(D.IconButton,{"aria-label":"More","aria-owns":this.state.menuOpened?"long-menu":void 0,title:I.I18n.t("Menu"),"aria-haspopup":"true",onClick:c=>{c.stopPropagation(),c.preventDefault(),this.setState({menuOpened:!0,menuAnchorEl:c.currentTarget})},size:"medium",children:f.jsx(BI,{})},"menuButton"));const i=this.state.listItems.find(c=>c.id===this.state.selected);let a;i&&this.state.width<=sf&&i.type==="folder"&&(a=this.state.listItems.filter(c=>c.parent===this.state.selected)),n.push(this.getMainMenu(a,i)),n.push(f.jsx(D.IconButton,{disabled:this.props.debugMode,title:I.I18n.t("Create new script"),sx:{...bt.toolbarButtons,...this.props.debugMode?bt.iconButtonsDisabled:void 0},style:{color:s?"red":"inherit"},onClick:c=>this.onAddNew(c),size:"medium",children:f.jsx(Ev,{})},"new-script")),n.push(f.jsx(D.IconButton,{disabled:this.props.debugMode,title:I.I18n.t("Create new folder"),sx:{...bt.toolbarButtons,...this.props.debugMode?bt.iconButtonsDisabled:void 0},style:{color:s?"red":"inherit"},onClick:c=>this.onAddNewFolder(c),size:"medium",children:f.jsx(PI,{})},"new-folder"))}n.push(f.jsx(D.IconButton,{disabled:s||this.props.debugMode,sx:{...bt.toolbarButtons,...this.props.debugMode?bt.iconButtonsDisabled:void 0},title:I.I18n.t("Search in scripts"),style:{float:"right",opacity:this.props.debugMode?.5:s?0:1},onClick:i=>{i.stopPropagation(),this.setState({searchMode:!0})},size:"medium",children:f.jsx(jI,{})},"search")),n.push(f.jsx(D.IconButton,{disabled:this.props.debugMode,title:I.I18n.t("Reorder scripts in folders"),sx:{...bt.toolbarButtons,...this.props.debugMode?bt.iconButtonsDisabled:void 0},style:{color:s?"red":"inherit",float:"right"},onClick:i=>{i.stopPropagation(),this.setState({reorder:!this.state.reorder})},size:"medium",children:f.jsx(FI,{})},"reorder")),!s&&this.state.selected&&this.state.selected!==za&&this.state.selected!==hh&&n.push(f.jsx(D.IconButton,{sx:{...bt.toolbarButtons,...this.props.debugMode?bt.iconButtonsDisabled:void 0},disabled:this.props.debugMode,title:I.I18n.t("Rename"),onClick:i=>this.onRename(i),size:"medium",children:f.jsx(zI,{})},"rename")),n.push(f.jsxs("span",{style:{opacity:.5,fontSize:10},children:["v",this.props.version]},"version"))}return n}getFolders(){const n=[{id:kr,name:I.I18n.t("Root folder")}];return this.state.listItems.forEach(s=>{s.type==="folder"&&s.id!==kr&&(!s.id.startsWith(za)||this.state.expertMode)&&n.push({id:s.id,name:s.title})}),n}onCollapseAll(){this.setState({expanded:[]}),this.saveExpanded([])}onExpandAll(){const n=[];this.state.listItems.forEach(s=>this.state.listItems.find(i=>i.parent===s.id)&&n.push(s.id)),this.setState({expanded:n}),this.saveExpanded(n)}getBottomButtons(){return this.state.reorder||this.props.debugMode?null:[f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx(vf,{style:{color:aS,opacity:this.state.statusFilter==="running"?1:.3,background:this.state.statusFilter==="running"?"gray":"inherit"},title:I.I18n.t("Show only running scripts"),onClick:n=>{n.stopPropagation(),n.preventDefault();const s=this.state.statusFilter==="running"?"":"running";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",s),this.setState({statusFilter:s})}})},"filterByRunning"),f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx(V$,{title:I.I18n.t("Show only paused scripts"),style:{color:cS,opacity:this.state.statusFilter==="paused"?1:.3,background:this.state.statusFilter==="paused"?"gray":"inherit"},onClick:()=>{const n=this.state.statusFilter==="paused"?"":"paused";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",n),this.setState({statusFilter:n})}})},"filterByPaused"),f.jsx(D.Box,{sx:bt.footerButtons,style:{marginRight:16},children:f.jsx(vf,{title:I.I18n.t("Show only scripts with problems"),style:{color:lS,opacity:this.state.statusFilter==="problems"?1:.3,background:this.state.statusFilter==="problems"?"gray":"inherit"},onClick:()=>{const n=this.state.statusFilter==="problems"?"":"problems";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",n),this.setState({statusFilter:n})}})},"filterByProblem"),f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx("img",{alt:"Blockly",style:{opacity:this.state.typeFilter==="Blockly"?1:.3,background:this.state.typeFilter==="Blockly"?"gray":"inherit"},src:ph.Blockly,onClick:()=>{const n=this.state.typeFilter==="Blockly"?"":"Blockly";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",n),this.setState({typeFilter:n})}})},"filterBlockly"),f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx("img",{alt:"Javascript",style:{opacity:this.state.typeFilter==="Javascript/js"?1:.3,background:this.state.typeFilter==="Javascript/js"?"gray":"inherit"},src:ph["Javascript/js"],onClick:()=>{const n=this.state.typeFilter==="Javascript/js"?"":"Javascript/js";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",n),this.setState({typeFilter:n})}})},"filterJS"),f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx("img",{alt:"TypeScript",style:{opacity:this.state.typeFilter==="TypeScript/ts"?1:.3,background:this.state.typeFilter==="TypeScript/ts"?"gray":"inherit"},src:ph["TypeScript/ts"],onClick:()=>{const n=this.state.typeFilter==="TypeScript/ts"?"":"TypeScript/ts";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",n),this.setState({typeFilter:n})}})},"filterTS"),f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx("img",{alt:"Rules",style:{opacity:this.state.typeFilter==="Rules"?1:.3,background:this.state.typeFilter==="Rules"?"gray":"inherit"},src:ph.Rules,onClick:()=>{const n=this.state.typeFilter==="Rules"?"":"Rules";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",n),this.setState({typeFilter:n})}})},"filterRules"),f.jsx("div",{style:{flexGrow:1}},"padding"),f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx(UI,{style:bt.footerButtonsRight,title:I.I18n.t("Expand all"),onClick:()=>this.onExpandAll()})},"expandAll"),this.state.expanded.length?f.jsx(D.Box,{sx:bt.footerButtons,children:f.jsx(WI,{style:bt.footerButtonsRight,title:I.I18n.t("Collapse all"),onClick:()=>this.onCollapseAll()})},"collapseAll"):f.jsx("div",{style:{height:22,width:24}})]}getAdapterDebugDialog(){return this.state.showAdapterDebug?f.jsx(oO,{socket:this.props.socket,onClose:()=>this.setState({showAdapterDebug:!1}),onDebug:(n,s)=>this.setState({showAdapterDebug:!1},()=>this.props.onDebugInstance({instance:n,adapter:s}))},"debug"):null}render(){var i,a,c;const n=this.state.renaming?this.state.listItems.find(h=>h.id===this.state.renaming):void 0,s=this.state.copingScript&&this.props.scripts[this.state.copingScript].type==="script"?this.props.scripts[this.state.copingScript]:void 0;return[f.jsxs(D.Drawer,{variant:"permanent",style:bt.menu,sx:{"& .MuiDrawer-paper":bt.drawerPaper},anchor:"left",onClick:()=>this.onClick({id:""}),children:[f.jsx(D.Box,{sx:bt.toolbar,children:this.getToolbarButtons()}),f.jsx(D.Divider,{}),f.jsx(oT,{backend:yT,children:f.jsx("div",{style:bt.innerMenu,children:this.renderAllItems(this.state.listItems)})}),f.jsx(D.Divider,{}),f.jsx("div",{style:bt.footer,children:this.getBottomButtons()})]},"drawer"),n?f.jsx(hw,{name:n.title,id:this.state.renaming||"",folder:n.type==="folder",instance:n.instance,instances:this.props.instances,onClose:()=>this.setState({renaming:null}),onRename:(h,g,b,$)=>this.props.onRename&&this.props.onRename(h,g,b,$)},"dialog-rename"):null,this.state.deleting?f.jsx(eO,{name:this.state.listItems.find(h=>h.id===this.state.deleting).title,id:this.state.deleting,onClose:()=>this.setState({deleting:null}),onDelete:h=>this.props.onDelete&&this.props.onDelete(h)},"dialog-delete"):null,this.state.choosingType?f.jsx(Ch,{onClose:h=>{const g={choosingType:!1};h&&(g.creatingScript=h),this.setState(g)}},"dialog-script-type"):null,this.state.creatingScript?f.jsx(Dy,{onClose:()=>this.setState({creatingScript:null}),title:I.I18n.t("Create new script"),name:this.getUniqueName(),parents:this.getFolders(),folder:!1,existingItems:this.state.listItems.map(h=>h.id),instance:this.props.instances[0]||0,instances:this.props.instances,type:this.state.creatingScript,parent:this.parent,onAdd:(h,g,b,$)=>this.props.onAddNew&&this.props.onAddNew(h,g,!1,b,$)},"dialog-new-script"):null,this.state.copingScript?f.jsx(Dy,{onClose:()=>this.setState({copingScript:""}),title:I.I18n.t("Copy script"),name:this.getUniqueName(this.state.copingScript),parents:this.getFolders(),folder:!1,instance:parseInt((a=(i=s==null?void 0:s.common)==null?void 0:i.engine)==null?void 0:a.split(".").pop(),10)||0,instances:this.props.instances,type:((c=s==null?void 0:s.common)==null?void 0:c.engineType)||"Javascript/js",parent:this.parent,onAdd:(h,g,b,$)=>{var w;const y=this.state.copingScript&&this.props.scripts[this.state.copingScript].type==="script"?this.props.scripts[this.state.copingScript]:void 0;y!=null&&y.common&&(y.common.enabled=!1),this.props.onAddNew&&this.props.onAddNew(h,g,!1,b,$,(w=y==null?void 0:y.common)==null?void 0:w.source)}},"dialog-copy-script"):null,this.state.creatingFolder?f.jsx(Dy,{onClose:()=>this.setState({creatingFolder:!1}),title:I.I18n.t("Create new folder"),parents:this.getFolders(),name:this.getUniqueFolderName(),parent:this.parent,onAdd:(h,g)=>this.props.onAddNew&&this.props.onAddNew(h,g,!0)},"dialog-new-folder"):null,this.state.errorText?f.jsx(Hf,{onClose:()=>this.setState({errorText:""}),text:this.state.errorText},"error"):null,this.getAdapterDebugDialog()]}}const uO="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAACFJREFUeAFjAIJRwP////8PYIKWHCigNQdKj/pn1D+jAABTG16wVQqVpQAAAABJRU5ErkJggg==",dO="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAABtJREFUeAFjAIJRwP8fCj7QkENn/4z6Z5QzCgBjbWaoyx1PqQAAAABJRU5ErkJggg==";function hO(o){let n,s=o.getHours();return s<10&&(s=`0${s.toString()}`),n=`${s}:`,s=o.getMinutes(),s<10&&(s=`0${s.toString()}`),n+=`${s}:`,s=o.getSeconds(),s<10&&(s=`0${s.toString()}`),n+=`${s}.`,s=o.getMilliseconds(),s<10?s=`00${s.toString()}`:s<100&&(s=`0${s.toString()}`),n+=s,n}const hS=34,cr={logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:o=>({display:"inline-block",color:o.palette.mode==="dark"?"white":"black",width:`calc(100% - ${hS}px)`,height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"}),info:o=>({background:o.palette.mode==="dark"?"darkgrey":"lightgrey",color:(o.palette.mode==="dark","black")}),error:o=>({background:"#FF0000",color:o.palette.mode==="dark"?"black":"white"}),warn:o=>({background:"#FF8000",color:o.palette.mode==="dark"?"black":"white"}),debug:o=>({background:"gray",opacity:.8,color:o.palette.mode==="dark"?"black":"white"}),silly:o=>({background:"gray",opacity:.6,color:o.palette.mode==="dark"?"black":"white"}),table:{fontFamily:"monospace",width:"100%"},toolbox:{width:hS,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trFrom:{width:90},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},trPreMessage:{padding:0,margin:0},iconButtons:{width:32,height:32,padding:4},layoutIcon:o=>({"& img":{width:24,height:24,background:o.palette.mode==="dark"?"#9d9d9d":void 0,borderRadius:o.palette.mode==="dark"?"30px":void 0}})};function pO(o){return o<10?`00${o}`:o<100?`0${o}`:o.toString()}const Fo={};class pw extends We.Component{messagesEnd;constructor(n){super(n),this.state={lines:{},goBottom:!0,selected:null,editing:this.props.editing||[]},this.messagesEnd=We.createRef()}static generateLine(n,s){let i=n.message||"";if(typeof i!="object"){const a=new RegExp(`${n.from.replace(".","\\.").replace(")","\\)").replace("(","\\(")} \\(\\d+\\) `,"g"),c=i.match(a);c?i=i.replace(c[0],""):i=i.replace(`${n.from} `,"")}return i.startsWith(`${s}: `)&&(i=i.substring(s.length+2)),f.jsxs(D.Box,{component:"tr",sx:cr[n.severity],children:[f.jsx("td",{style:cr.trFrom,children:n.from}),f.jsx("td",{style:cr.trTime,children:hO(new Date(n.ts))}),f.jsx("td",{style:cr.trSeverity,children:n.severity}),f.jsx("td",{children:f.jsx("pre",{style:cr.trPreMessage,children:i})})]},`tr_${n.ts}_${n.message.substring(n.message.length-10)}`)}scrollToBottom(){var n,s;(s=(n=this.messagesEnd)==null?void 0:n.current)==null||s.scrollIntoView({behavior:"smooth"})}logHandler=n=>{const s=this.state.lines,i=this.state.editing.filter($=>n.message.includes($));let a=null;if(!i.length||(i.length===1?a=i[0]:(i.sort(),a=i[i.length-1]),!a))return;const c=s[a]||[],h=Fo[a]||[];c.push(pw.generateLine(n,a));let g=n.severity;(g==="info"||g==="warn")&&(g+=" ");const b=new Date(n.ts);h.push(`${b.toLocaleString()}.${pO(b.getMilliseconds())} [${g}]: ${n.message}`),c.length>300&&(c.splice(0,c.length-300),h.splice(0,c.length-300)),Fo[a]=h,s[a]=c,this.setState({lines:s})};componentDidMount(){this.props.socket.registerLogHandler(this.logHandler)}componentWillUnmount(){this.props.socket.unregisterLogHandler(this.logHandler)}componentDidUpdate(){this.state.goBottom&&this.scrollToBottom()}static getDerivedStateFromProps(n,s){let i=!1;const a={};if(n.selected!==s.selected){const c=n.selected,h=s.lines;c&&(h[c]=h[c]||[],Fo[c]=Fo[c]||[]),a.selected=c,i=!0}if(JSON.stringify(n.editing)!==JSON.stringify(s.editing)){const c=JSON.parse(JSON.stringify(n.editing));i=!0;const h=s.lines;for(const g in Fo)Object.prototype.hasOwnProperty.call(Fo,g)&&(c.includes(g)||(delete Fo[g],delete h[g]));a.editing=c}return i?a:null}onCopy(){I.Utils.copyToClipboard((Fo[this.state.selected]||[]).join(` -`))}clearLog(){const n=this.state.lines;n[this.state.selected]&&(n[this.state.selected]=[]),Fo[this.state.selected]&&(Fo[this.state.selected]=[]),this.setState({lines:n})}renderLogList(n){return this.state.selected&&(n!=null&&n.length)?f.jsxs(D.Box,{sx:cr.logBoxInner,children:[f.jsx("table",{style:cr.table,children:f.jsx("tbody",{children:n})},"logTable"),f.jsx("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):f.jsx(D.Box,{sx:cr.logBoxInner,style:{paddingLeft:10},children:I.I18n.t("Log outputs")},"logList")}render(){const n=this.state.selected?this.state.lines[this.state.selected]:null;return f.jsxs("div",{style:cr.logBox,children:[f.jsxs("div",{style:cr.toolbox,children:[f.jsx(D.IconButton,{style:cr.iconButtons,onClick:()=>this.setState({goBottom:!this.state.goBottom}),color:this.state.goBottom?"secondary":void 0,size:"medium",children:f.jsx(F0,{})}),n!=null&&n.length?f.jsx(D.IconButton,{style:cr.iconButtons,onClick:()=>this.clearLog(),size:"medium",children:f.jsx(z0,{})}):null,n!=null&&n.length?f.jsx(D.IconButton,{style:cr.iconButtons,onClick:()=>this.onCopy(),size:"medium",children:f.jsx(nw,{})}):null,this.props.onLayoutChange?f.jsx(D.IconButton,{style:cr.iconButtons,onClick:()=>this.props.onLayoutChange&&this.props.onLayoutChange(),title:I.I18n.t("Change layout"),size:"medium",sx:cr.layoutIcon,children:f.jsx("img",{alt:"split",src:this.props.verticalLayout?uO:dO})}):null,f.jsx(D.IconButton,{style:cr.iconButtons,onClick:()=>this.props.onHideLog(),title:I.I18n.t("Hide logs"),size:"medium",children:f.jsx(HI,{})})]},"toolbox"),this.renderLogList(n)]})}}var pS="focus-outline-hidden";function kT(){var o=this;document.addEventListener("keydown",function(n){o.focusByKeyboard=!0},!0),document.addEventListener("mousedown",function(n){o.focusByKeyboard=!1},!0),document.addEventListener("focus",function(n){o.updateVisibility()},!0),document.addEventListener("focusout",function(n){window.setTimeout(function(){document.hasFocus()||(o.focusByKeyboard=!0,o.updateVisibility())},0)}),this.updateVisibility()}kT.prototype={focusByKeyboard:!0,updateVisibility:function(){this.hidden=!this.focusByKeyboard},set hidden(o){document.documentElement.classList.toggle(pS,o)},get hidden(){return document.documentElement.classList.contains(pS)}};new kT;var ET={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(o){(function(){var n={}.hasOwnProperty;function s(){for(var i=[],a=0;a4&&arguments[4]!==void 0?arguments[4]:"easeInOutCubic";return i>a?s:n+(s-n)*fO[c](i/a)};Su.calcEndPoint=function(n){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:window,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(mO(n))return parseInt(n)+i;var a=s===window||s===document.documentElement?window.pageYOffset:s.scrollTop-s.getBoundingClientRect().top,c=n.nodeName.toLowerCase()==="html"?-a:n.getBoundingClientRect().top+a;return c+i};(function(o,n){Object.defineProperty(n,"__esModule",{value:!0});var s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},i=Su;n.default=function(a){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=c.duration,g=h===void 0?500:h,b=c.context,$=b===void 0?window:b,y=c.offset,w=y===void 0?0:y,T=c.ease,C=T===void 0?"easeInOutCubic":T,E=c.callback;if((typeof window>"u"?"undefined":s(window))==="object"){var k=$.scrollTop!==null&&$.scrollTop!==void 0?$.scrollTop:window.pageYOffset,A=(0,i.calcEndPoint)(a,$,w),P=performance.now(),N=window.requestAnimationFrame,B=function S(){var H=performance.now()-P,q=(0,i.setPosition)(k,A,H,g,C);$!==window?$.scrollTop=q:window.scroll(0,q),H>g?typeof E=="function"&&E(a):N(S)};B()}},o.exports=n.default})(E_,E_.exports);var IT=E_.exports,I_={exports:{}};(function(o,n){Object.defineProperty(n,"__esModule",{value:!0});var s=Object.assign||function(h){for(var g=1;g0&&arguments[0]!==void 0?arguments[0]:{},g=h.query,b=g===void 0?'[href^="#"]:not([href="#"]':g,$=h.match,y=$===void 0?function(A){return document.getElementById(A.hash.substring(1))}:$,w=h.hashChange,T=w===void 0?!0:w,C=h.scrollSmoothConfig,E=document.querySelectorAll(b),k=function(P){P.preventDefault();var N=y(P.target);N&&(T&&history.replaceState(null,null,"#"+N.id),(0,a.default)(N,s({},C)))};Array.from(E).map(function(A){A.addEventListener("click",k,!1)})},o.exports=n.default})(I_,I_.exports);var bO=I_.exports,x_={exports:{}};(function(o,n){Object.defineProperty(n,"__esModule",{value:!0});function s(i){if(Array.isArray(i)){for(var a=0,c=Array(i.length);a0&&arguments[0]!==void 0?arguments[0]:{},a=i.activeClass,c=a===void 0?"active":a,h=i.query,g=h===void 0?'[href^="#"]:not([href="#"]):not([href="#0"])':h,b=i.threshold,$=b===void 0?[.25,.5,.75]:b,y=i.detectType,w=y===void 0?"max":y,T={threshold:$},C=function(q){return q.classList.remove(c)},E=function(q){return q.classList.add(c)},k=function(){document.querySelectorAll("."+c).forEach(C)},A=function(q){k(),E(document.querySelector('a[href="#'+q.id+'"]'))},P=function(q){q.forEach(function(se){se.intersectionRatio>=Math[w].apply(Math,s($))&&A(se.target)})},N=document.querySelectorAll(g),B=new IntersectionObserver(P,T),S=function(q){var se=document.querySelector("#"+q.hash.slice(1));B.observe(se)};N.forEach(S)},o.exports=n.default})(x_,x_.exports);var $O=x_.exports;(function(o,n){Object.defineProperty(n,"__esModule",{value:!0});var s=IT,i=$(s),a=Su,c=bO,h=$(c),g=$O,b=$(g);function $(y){return y&&y.__esModule?y:{default:y}}n.default={to:i.default,calcEndPoint:a.calcEndPoint,anchorScroll:h.default,observe:b.default},o.exports=n.default})(k_,k_.exports);var vO=k_.exports;const yO=Ga(vO);var gw={exports:{}},_O=gw.exports;(function(o){(function(n,s){o.exports?o.exports=s():n.Scrollparent=s()})(_O,function(){var n=/(auto|scroll)/,s=function(g,b){return g.parentNode===null?b:s(g.parentNode,b.concat([g]))},i=function(g,b){return getComputedStyle(g,null).getPropertyValue(b)},a=function(g){return i(g,"overflow")+i(g,"overflow-y")+i(g,"overflow-x")},c=function(g){return n.test(a(g))},h=function(g){if(g instanceof HTMLElement||g instanceof SVGElement){for(var b=s(g.parentNode,[]),$=0;$=n||se<0||w&&ee>=c}function P(){var q=Ay();if(A(q))return N(q);g=setTimeout(P,k(q))}function N(q){return g=void 0,T&&i?C(q):(i=a=void 0,h)}function B(){g!==void 0&&clearTimeout(g),$=0,i=b=a=g=void 0}function S(){return g===void 0?h:N(Ay())}function H(){var q=Ay(),se=A(q);if(i=arguments,a=this,b=q,se){if(g===void 0)return E(b);if(w)return g=setTimeout(P,n),C(b)}return g===void 0&&(g=setTimeout(P,n)),h}return H.cancel=B,H.flush=S,H}function D_(o){var n=typeof o;return!!o&&(n=="object"||n=="function")}function jO(o){return!!o&&typeof o=="object"}function FO(o){return typeof o=="symbol"||jO(o)&&NO.call(o)==TO}function mS(o){if(typeof o=="number")return o;if(FO(o))return fS;if(D_(o)){var n=typeof o.valueOf=="function"?o.valueOf():o;o=D_(n)?n+"":n}if(typeof o!="string")return o===0?o:+o;o=o.replace(kO,"");var s=IO.test(o);return s||xO.test(o)?DO(o.slice(2),s?2:8):EO.test(o)?fS:+o}var zO=PO;const UO=Ga(zO);var A_="data-focus-lock",xT="data-focus-lock-disabled",WO="data-no-focus-lock",HO="data-autofocus-inside",VO="data-no-autofocus";function Oy(o,n){return typeof o=="function"?o(n):o&&(o.current=n),o}function GO(o,n){var s=ve.useState(function(){return{value:o,callback:n,facade:{get current(){return s.value},set current(i){var a=s.value;a!==i&&(s.value=i,s.callback(i,a))}}}})[0];return s.callback=n,s.facade}var KO=typeof window<"u"?ve.useLayoutEffect:ve.useEffect,bS=new WeakMap;function JO(o,n){var s=GO(null,function(i){return o.forEach(function(a){return Oy(a,i)})});return KO(function(){var i=bS.get(s);if(i){var a=new Set(i),c=new Set(o),h=s.current;a.forEach(function(g){c.has(g)||Oy(g,null)}),c.forEach(function(g){a.has(g)||Oy(g,h)})}bS.set(s,o)},[o]),s}var Ry={width:"1px",height:"0px",padding:0,overflow:"hidden",position:"fixed",top:"1px",left:"1px"};function DT(o){return o}function AT(o,n){n===void 0&&(n=DT);var s=[],i=!1,a={read:function(){if(i)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return s.length?s[s.length-1]:o},useMedium:function(c){var h=n(c,i);return s.push(h),function(){s=s.filter(function(g){return g!==h})}},assignSyncMedium:function(c){for(i=!0;s.length;){var h=s;s=[],h.forEach(c)}s={push:function(g){return c(g)},filter:function(){return s}}},assignMedium:function(c){i=!0;var h=[];if(s.length){var g=s;s=[],g.forEach(c),h=s}var b=function(){var y=h;h=[],y.forEach(c)},$=function(){return Promise.resolve().then(b)};$(),s={push:function(y){h.push(y),$()},filter:function(y){return h=h.filter(y),s}}}};return a}function fw(o,n){return n===void 0&&(n=DT),AT(o,n)}function qO(o){o===void 0&&(o={});var n=AT(null);return n.options=VI({async:!0,ssr:!1},o),n}var OT=fw({},function(o){var n=o.target,s=o.currentTarget;return{target:n,currentTarget:s}}),RT=fw(),YO=fw(),XO=qO({async:!0,ssr:typeof document<"u"}),ZO=ve.createContext(void 0),QO=[],mw=ve.forwardRef(function(n,s){var i,a=ve.useState(),c=a[0],h=a[1],g=ve.useRef(),b=ve.useRef(!1),$=ve.useRef(null),y=ve.useState({}),w=y[1],T=n.children,C=n.disabled,E=C===void 0?!1:C,k=n.noFocusGuards,A=k===void 0?!1:k,P=n.persistentFocus,N=P===void 0?!1:P,B=n.crossFrame,S=B===void 0?!0:B,H=n.autoFocus,q=H===void 0?!0:H;n.allowTextSelection;var se=n.group,ee=n.className,K=n.whiteList,Y=n.hasPositiveIndices,X=n.shards,ce=X===void 0?QO:X,W=n.as,te=W===void 0?"div":W,ke=n.lockProps,Z=ke===void 0?{}:ke,ze=n.sideCar,Ce=n.returnFocus,at=Ce===void 0?!1:Ce,he=n.focusOptions,Ae=n.onActivation,de=n.onDeactivation,Se=ve.useState({}),xe=Se[0],He=ve.useCallback(function(ft){var st=ft.captureFocusRestore;if(!$.current){var At,mn=(At=document)==null?void 0:At.activeElement;$.current=mn,mn!==document.body&&($.current=st(mn))}g.current&&Ae&&Ae(g.current),b.current=!0,w()},[Ae]),ne=ve.useCallback(function(){b.current=!1,de&&de(g.current),w()},[de]),Ke=ve.useCallback(function(ft){var st=$.current;if(st){var At=(typeof st=="function"?st():st)||document.body,mn=typeof at=="function"?at(At):at;if(mn){var Ue=typeof mn=="object"?mn:void 0;$.current=null,ft?Promise.resolve().then(function(){return At.focus(Ue)}):At.focus(Ue)}}},[at]),Te=ve.useCallback(function(ft){b.current&&OT.useMedium(ft)},[]),Je=RT.useMedium,rt=ve.useCallback(function(ft){g.current!==ft&&(g.current=ft,h(ft))},[]),ht=g_((i={},i[xT]=E&&"disabled",i[A_]=se,i),Z),nt=A!==!0,Wt=nt&&A!=="tail",St=JO([s,rt]),lt=ve.useMemo(function(){return{observed:g,shards:ce,enabled:!E,active:b.current}},[E,b.current,ce,c]);return We.createElement(ve.Fragment,null,nt&&[We.createElement("div",{key:"guard-first","data-focus-guard":!0,tabIndex:E?-1:0,style:Ry}),Y?We.createElement("div",{key:"guard-nearest","data-focus-guard":!0,tabIndex:E?-1:1,style:Ry}):null],!E&&We.createElement(ze,{id:xe,sideCar:XO,observed:c,disabled:E,persistentFocus:N,crossFrame:S,autoFocus:q,whiteList:K,shards:ce,onActivation:He,onDeactivation:ne,returnFocus:Ke,focusOptions:he,noFocusGuards:A}),We.createElement(te,g_({ref:St},ht,{className:ee,onBlur:Je,onFocus:Te}),We.createElement(ZO.Provider,{value:lt},T)),Wt&&We.createElement("div",{"data-focus-guard":!0,tabIndex:E?-1:0,style:Ry}))});mw.propTypes={};function e1(o,n){function s(i){return i.displayName||i.name||"Component"}return function(a){var c=[],h;function g(){h=o(c.map(function($){return $.props})),n(h)}var b=function($){II(y,$);function y(){return $.apply(this,arguments)||this}y.peek=function(){return h};var w=y.prototype;return w.componentDidMount=function(){c.push(this),g()},w.componentDidUpdate=function(){g()},w.componentWillUnmount=function(){var C=c.indexOf(this);c.splice(C,1),g()},w.render=function(){return We.createElement(a,this.props)},y}(ve.PureComponent);return Mx(b,"displayName","SideEffect("+s(a)+")"),b}}var qo=function(o){for(var n=Array(o.length),s=0;s=0}).sort(c1)},d1=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"],vw=d1.join(","),h1="".concat(vw,", [data-focus-guard]"),UT=function(o,n){return qo((o.shadowRoot||o).children).reduce(function(s,i){return s.concat(i.matches(n?h1:vw)?[i]:[],UT(i))},[])},p1=function(o,n){var s;return o instanceof HTMLIFrameElement&&(!((s=o.contentDocument)===null||s===void 0)&&s.body)?Ah([o.contentDocument.body],n):[o]},Ah=function(o,n){return o.reduce(function(s,i){var a,c=UT(i,n),h=(a=[]).concat.apply(a,c.map(function(g){return p1(g,n)}));return s.concat(h,i.parentNode?qo(i.parentNode.querySelectorAll(vw)).filter(function(g){return g===i}):[])},[])},g1=function(o){var n=o.querySelectorAll("[".concat(HO,"]"));return qo(n).map(function(s){return Ah([s])}).reduce(function(s,i){return s.concat(i)},[])},yw=function(o,n){return qo(o).filter(function(s){return BT(n,s)}).filter(function(s){return o1(s)})},$S=function(o,n){return n===void 0&&(n=new Map),qo(o).filter(function(s){return PT(n,s)})},_w=function(o,n,s){return $w(yw(Ah(o,s),n),!0,s)},Df=function(o,n){return $w(yw(Ah(o),n),!1)},f1=function(o,n){return yw(g1(o),n)},bu=function(o,n){return o.shadowRoot?bu(o.shadowRoot,n):Object.getPrototypeOf(o).contains!==void 0&&Object.getPrototypeOf(o).contains.call(o,n)?!0:qo(o.children).some(function(s){var i;if(s instanceof HTMLIFrameElement){var a=(i=s.contentDocument)===null||i===void 0?void 0:i.body;return a?bu(a,n):!1}return bu(s,n)})},m1=function(o){for(var n=new Set,s=o.length,i=0;i0&&n.add(a),(c&Node.DOCUMENT_POSITION_CONTAINS)>0&&n.add(i)}return o.filter(function(h,g){return!n.has(g)})},WT=function(o){return o.parentNode?WT(o.parentNode):o},ww=function(o){var n=yu(o);return n.filter(Boolean).reduce(function(s,i){var a=i.getAttribute(A_);return s.push.apply(s,a?m1(qo(WT(i).querySelectorAll("[".concat(A_,'="').concat(a,'"]:not([').concat(xT,'="disabled"])')))):[i]),s},[])},b1=function(o){try{return o()}catch{return}},Af=function(o){if(o===void 0&&(o=document),!(!o||!o.activeElement)){var n=o.activeElement;return n.shadowRoot?Af(n.shadowRoot):n instanceof HTMLIFrameElement&&b1(function(){return n.contentWindow.document})?Af(n.contentWindow.document):n}},$1=function(o,n){return o===n},v1=function(o,n){return!!qo(o.querySelectorAll("iframe")).some(function(s){return $1(s,n)})},HT=function(o,n){return n===void 0&&(n=Af(MT(o).ownerDocument)),!n||n.dataset&&n.dataset.focusGuard?!1:ww(o).some(function(s){return bu(s,n)||v1(s,n)})},y1=function(o){o===void 0&&(o=document);var n=Af(o);return n?qo(o.querySelectorAll("[".concat(WO,"]"))).some(function(s){return bu(s,n)}):!1},_1=function(o,n){return n.filter(zT).filter(function(s){return s.name===o.name}).filter(function(s){return s.checked})[0]||o},Cw=function(o,n){return zT(o)&&o.name?_1(o,n):o},w1=function(o){var n=new Set;return o.forEach(function(s){return n.add(Cw(s,o))}),o.filter(function(s){return n.has(s)})},vS=function(o){return o[0]&&o.length>1?Cw(o[0],o):o[0]},yS=function(o,n){return o.indexOf(Cw(n,o))},R_="NEW_FOCUS",C1=function(o,n,s,i,a){var c=o.length,h=o[0],g=o[c-1],b=bw(i);if(!(i&&o.indexOf(i)>=0)){var $=i!==void 0?s.indexOf(i):-1,y=a?s.indexOf(a):$,w=a?o.indexOf(a):-1;if($===-1)return w!==-1?w:R_;if(w===-1)return R_;var T=$-y,C=s.indexOf(h),E=s.indexOf(g),k=w1(s),A=i!==void 0?k.indexOf(i):-1,P=a?k.indexOf(a):A,N=k.filter(function(ee){return ee.tabIndex>=0}),B=i!==void 0?N.indexOf(i):-1,S=a?N.indexOf(a):B,H=B>=0&&S>=0?S-B:P-A;if(!T&&w>=0||n.length===0)return w;var q=yS(o,n[0]),se=yS(o,n[n.length-1]);if($<=C&&b&&Math.abs(T)>1)return se;if($>=E&&b&&Math.abs(T)>1)return q;if(T&&Math.abs(H)>1)return w;if($<=C)return se;if($>E)return q;if(T)return Math.abs(T)>1?w:(c+w+T)%c}},S1=function(o){return function(n){var s,i=(s=jT(n))===null||s===void 0?void 0:s.autofocus;return n.autofocus||i!==void 0&&i!=="false"||o.indexOf(n)>=0}},_S=function(o,n,s){var i=o.map(function(c){var h=c.node;return h}),a=$S(i.filter(S1(s)));return a&&a.length?vS(a):vS($S(n))},M_=function(o,n){return n===void 0&&(n=[]),n.push(o),o.parentNode&&M_(o.parentNode.host||o.parentNode,n),n},My=function(o,n){for(var s=M_(o),i=M_(n),a=0;a=0)return c}return!1},VT=function(o,n,s){var i=yu(o),a=yu(n),c=i[0],h=!1;return a.filter(Boolean).forEach(function(g){h=My(h||g,g)||h,s.filter(Boolean).forEach(function(b){var $=My(c,b);$&&(!h||bu($,h)?h=$:h=My($,h))})}),h},wS=function(o,n){return o.reduce(function(s,i){return s.concat(f1(i,n))},[])},T1=function(o,n){var s=new Map;return n.forEach(function(i){return s.set(i.node,i)}),o.map(function(i){return s.get(i)}).filter(l1)},k1=function(o,n){var s=Af(yu(o).length>0?document:MT(o).ownerDocument),i=ww(o).filter(O_),a=VT(s||o,o,i),c=new Map,h=Df(i,c),g=h.filter(function(E){var k=E.node;return O_(k)});if(g[0]){var b=Df([a],c).map(function(E){var k=E.node;return k}),$=T1(b,g),y=$.map(function(E){var k=E.node;return k}),w=$.filter(function(E){var k=E.tabIndex;return k>=0}).map(function(E){var k=E.node;return k}),T=C1(y,w,b,s,n);if(T===R_){var C=_S(h,w,wS(i,c))||_S(h,y,wS(i,c));if(C)return{node:C};console.warn("focus-lock: cannot find any node to move focus into");return}return T===void 0?T:$[T]}},E1=function(o){var n=ww(o).filter(O_),s=VT(o,o,n),i=$w(Ah([s],!0),!0,!0),a=Ah(n,!1);return i.map(function(c){var h=c.node,g=c.index;return{node:h,index:g,lockItem:a.indexOf(h)>=0,guard:bw(h)}})},Sw=function(o,n){o&&("focus"in o&&o.focus(n),"contentWindow"in o&&o.contentWindow&&o.contentWindow.focus())},Ny=0,Ly=!1,GT=function(o,n,s){s===void 0&&(s={});var i=k1(o,n);if(!Ly&&i){if(Ny>2){console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),Ly=!0,setTimeout(function(){Ly=!1},1);return}Ny++,Sw(i.node,s.focusOptions),Ny--}};function rf(o){if(!o)return null;if(typeof WeakRef>"u")return function(){return o||null};var n=o?new WeakRef(o):null;return function(){return(n==null?void 0:n.deref())||null}}var I1=function(o){if(!o)return null;for(var n=[],s=o;s&&s!==document.body;)n.push({current:rf(s),parent:rf(s.parentElement),left:rf(s.previousElementSibling),right:rf(s.nextElementSibling)}),s=s.parentElement;return{element:rf(o),stack:n,ownerDocument:o.ownerDocument}},x1=function(o){var n,s,i,a,c;if(o)for(var h=o.stack,g=o.ownerDocument,b=new Map,$=0,y=h;$-1&&(A.filter(function(N){var B=N.guard,S=N.node;return B&&S.dataset.focusAutoGuard}).forEach(function(N){var B=N.node;return B.removeAttribute("tabIndex")}),SS(P,A.length,1,A),SS(P,-1,-1,A))}}}return n},ZT=function(n){Y$()&&n&&(n.stopPropagation(),n.preventDefault())},Ew=function(){return Tw(Y$)},K1=function(n){var s=n.target,i=n.currentTarget;i.contains(s)||z1(i,s)},J1=function(){return null},QT=function(){kw=!0},ek=function(){kw=!1,Of="just",Tw(function(){Of="meanwhile"})},q1=function(){document.addEventListener("focusin",ZT),document.addEventListener("focusout",Ew),window.addEventListener("focus",QT),window.addEventListener("blur",ek)},Y1=function(){document.removeEventListener("focusin",ZT),document.removeEventListener("focusout",Ew),window.removeEventListener("focus",QT),window.removeEventListener("blur",ek)};function X1(o){return o.filter(function(n){var s=n.disabled;return!s})}var tk={moveFocusInside:GT,focusInside:HT,focusNextElement:R1,focusPrevElement:M1,focusFirstElement:N1,focusLastElement:L1,captureFocusRestore:KT};function Z1(o){var n=o.slice(-1)[0];n&&!Eh&&q1();var s=Eh,i=s&&n&&n.id===s.id;Eh=n,s&&!i&&(s.onDeactivation(),o.filter(function(a){var c=a.id;return c===s.id}).length||s.returnFocus(!n)),n?(Gr=null,(!i||s.observed!==n.observed)&&n.onActivation(tk),Y$(),Tw(Y$)):(Y1(),Gr=null)}OT.assignSyncMedium(K1);RT.assignMedium(Ew);YO.assignMedium(function(o){return o(tk)});const Q1=e1(X1,Z1)(J1);var nk=ve.forwardRef(function(n,s){return We.createElement(mw,g_({sideCar:Q1,ref:s},n))}),sk=mw.propTypes||{};sk.sideCar;xI(sk,["sideCar"]);nk.propTypes={};var rk={exports:{}},kn={};/** - * @license React - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Iw=Symbol.for("react.element"),xw=Symbol.for("react.portal"),Lv=Symbol.for("react.fragment"),Bv=Symbol.for("react.strict_mode"),Pv=Symbol.for("react.profiler"),jv=Symbol.for("react.provider"),Fv=Symbol.for("react.context"),eR=Symbol.for("react.server_context"),zv=Symbol.for("react.forward_ref"),Uv=Symbol.for("react.suspense"),Wv=Symbol.for("react.suspense_list"),Hv=Symbol.for("react.memo"),Vv=Symbol.for("react.lazy"),tR=Symbol.for("react.offscreen"),ik;ik=Symbol.for("react.module.reference");function Ai(o){if(typeof o=="object"&&o!==null){var n=o.$$typeof;switch(n){case Iw:switch(o=o.type,o){case Lv:case Pv:case Bv:case Uv:case Wv:return o;default:switch(o=o&&o.$$typeof,o){case eR:case Fv:case zv:case Vv:case Hv:case jv:return o;default:return n}}case xw:return n}}}kn.ContextConsumer=Fv;kn.ContextProvider=jv;kn.Element=Iw;kn.ForwardRef=zv;kn.Fragment=Lv;kn.Lazy=Vv;kn.Memo=Hv;kn.Portal=xw;kn.Profiler=Pv;kn.StrictMode=Bv;kn.Suspense=Uv;kn.SuspenseList=Wv;kn.isAsyncMode=function(){return!1};kn.isConcurrentMode=function(){return!1};kn.isContextConsumer=function(o){return Ai(o)===Fv};kn.isContextProvider=function(o){return Ai(o)===jv};kn.isElement=function(o){return typeof o=="object"&&o!==null&&o.$$typeof===Iw};kn.isForwardRef=function(o){return Ai(o)===zv};kn.isFragment=function(o){return Ai(o)===Lv};kn.isLazy=function(o){return Ai(o)===Vv};kn.isMemo=function(o){return Ai(o)===Hv};kn.isPortal=function(o){return Ai(o)===xw};kn.isProfiler=function(o){return Ai(o)===Pv};kn.isStrictMode=function(o){return Ai(o)===Bv};kn.isSuspense=function(o){return Ai(o)===Uv};kn.isSuspenseList=function(o){return Ai(o)===Wv};kn.isValidElementType=function(o){return typeof o=="string"||typeof o=="function"||o===Lv||o===Pv||o===Bv||o===Uv||o===Wv||o===tR||typeof o=="object"&&o!==null&&(o.$$typeof===Vv||o.$$typeof===Hv||o.$$typeof===jv||o.$$typeof===Fv||o.$$typeof===zv||o.$$typeof===ik||o.getModuleId!==void 0)};kn.typeOf=Ai;rk.exports=kn;var ok=rk.exports;function nR(o){function n(de,Se,xe,He,ne){for(var Ke=0,Te=0,Je=0,rt=0,ht,nt,Wt=0,St=0,lt,ft=lt=ht=0,st=0,At=0,mn=0,Ue=0,Nt=xe.length,wt=Nt-1,qt,ct="",me="",ge="",ue="",we;stht)&&(Ue=(ct=ct.replace(" ",":")).length),0He&&(He=(Se=Se.trim()).charCodeAt(0)),He){case 38:return Se.replace(P,"$1"+de.trim());case 58:return de.trim()+Se.replace(P,"$1"+de.trim());default:if(0<1*xe&&0Te.charCodeAt(8))break;case 115:ne=ne.replace(Te,"-webkit-"+Te)+";"+ne;break;case 207:case 102:ne=ne.replace(Te,"-webkit-"+(102xe.charCodeAt(0)&&(xe=xe.trim()),Ae=xe,xe=[Ae],01?n-1:0),i=1;i0?" Args: "+s.join(", "):""))}var oR=function(){function o(s){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=s}var n=o.prototype;return n.indexOfGroup=function(s){for(var i=0,a=0;a=this.groupSizes.length){for(var a=this.groupSizes,c=a.length,h=c;s>=h;)(h<<=1)<0&&Vf(16,""+s);this.groupSizes=new Uint32Array(h),this.groupSizes.set(a),this.length=h;for(var g=c;g=this.length||this.groupSizes[s]===0)return i;for(var a=this.groupSizes[s],c=this.indexOfGroup(s),h=c+a,g=c;g=_f&&(_f=n+1),M$.set(o,n),Z$.set(n,o)},cR="style["+Oh+'][data-styled-version="5.3.11"]',uR=new RegExp("^"+Oh+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),dR=function(o,n,s){for(var i,a=s.split(","),c=0,h=a.length;c=0;$--){var y=b[$];if(y&&y.nodeType===1&&y.hasAttribute(Oh))return y}}(s),c=a!==void 0?a.nextSibling:null;i.setAttribute(Oh,"active"),i.setAttribute("data-styled-version","5.3.11");var h=pR();return h&&i.setAttribute("nonce",h),s.insertBefore(i,c),i},gR=function(){function o(s){var i=this.element=ak(s);i.appendChild(document.createTextNode("")),this.sheet=function(a){if(a.sheet)return a.sheet;for(var c=document.styleSheets,h=0,g=c.length;h=0){var a=document.createTextNode(i),c=this.nodes[s];return this.element.insertBefore(a,c||null),this.length++,!0}return!1},n.deleteRule=function(s){this.element.removeChild(this.nodes[s]),this.length--},n.getRule=function(s){return s0&&(w+=T+",")}),c+=""+$+y+'{content:"'+w+`"}/*!sc*/ -`}}}return c}(this)},o}(),$R=/(a)(d)/gi,IS=function(o){return String.fromCharCode(o+(o>25?39:97))};function L_(o){var n,s="";for(n=Math.abs(o);n>52;n=n/52|0)s=IS(n%52)+s;return(IS(n%52)+s).replace($R,"$1-$2")}var Sh=function(o,n){for(var s=n.length;s;)o=33*o^n.charCodeAt(--s);return o},lk=function(o){return Sh(5381,o)};function ck(o){for(var n=0;n>>0);if(!s.hasNameForId(a,g)){var b=i(h,"."+g,void 0,a);s.insertRules(a,g,b)}c.push(g),this.staticRulesId=g}else{for(var $=this.rules.length,y=Sh(this.baseHash,i.hash),w="",T=0;T<$;T++){var C=this.rules[T];if(typeof C=="string")w+=C;else if(C){var E=_u(C,n,s,i),k=Array.isArray(E)?E.join(""):E;y=Sh(y,k+T),w+=k}}if(w){var A=L_(y>>>0);if(!s.hasNameForId(a,A)){var P=i(w,"."+A,void 0,a);s.insertRules(a,A,P)}c.push(A)}}return c.join(" ")},o}(),_R=/^\s*\/\/.*$/gm,wR=[":","[",".","#"];function CR(o){var n,s,i,a,c=Zl,h=c.options,g=h===void 0?Zl:h,b=c.plugins,$=b===void 0?X$:b,y=new nR(g),w=[],T=function(k){function A(P){if(P)try{k(P+"}")}catch{}}return function(P,N,B,S,H,q,se,ee,K,Y){switch(P){case 1:if(K===0&&N.charCodeAt(0)===64)return k(N+";"),"";break;case 2:if(ee===0)return N+"/*|*/";break;case 3:switch(ee){case 102:case 112:return k(B[0]+N),"";default:return N+(Y===0?"/*|*/":"")}case-2:N.split("/*|*/}").forEach(A)}}}(function(k){w.push(k)}),C=function(k,A,P){return A===0&&wR.indexOf(P[s.length])!==-1||P.match(a)?k:"."+n};function E(k,A,P,N){N===void 0&&(N="&");var B=k.replace(_R,""),S=A&&P?P+" "+A+" { "+B+" }":B;return n=N,s=A,i=new RegExp("\\"+s+"\\b","g"),a=new RegExp("(\\"+s+"\\b){2,}"),y(P||!A?"":A,S)}return y.use([].concat($,[function(k,A,P){k===2&&P.length&&P[0].lastIndexOf(s)>0&&(P[0]=P[0].replace(i,C))},T,function(k){if(k===-2){var A=w;return w=[],A}}])),E.hash=$.length?$.reduce(function(k,A){return A.name||Vf(15),Sh(k,A.name)},5381).toString():"",E}var uk=We.createContext();uk.Consumer;var dk=We.createContext(),SR=(dk.Consumer,new Q$),B_=CR();function hk(){return ve.useContext(uk)||SR}function pk(){return ve.useContext(dk)||B_}var TR=function(){function o(n,s){var i=this;this.inject=function(a,c){c===void 0&&(c=B_);var h=i.name+c.hash;a.hasNameForId(i.id,h)||a.insertRules(i.id,h,c(i.rules,h,"@keyframes"))},this.toString=function(){return Vf(12,String(i.name))},this.name=n,this.id="sc-keyframes-"+n,this.rules=s}return o.prototype.getName=function(n){return n===void 0&&(n=B_),this.name+n.hash},o}(),kR=/([A-Z])/,ER=/([A-Z])/g,IR=/^ms-/,xR=function(o){return"-"+o.toLowerCase()};function xS(o){return kR.test(o)?o.replace(ER,xR).replace(IR,"-ms-"):o}var DS=function(o){return o==null||o===!1||o===""};function _u(o,n,s,i){if(Array.isArray(o)){for(var a,c=[],h=0,g=o.length;h1?n-1:0),i=1;i?@[\\\]^`{|}~-]+/g,AR=/(^-|-$)/g;function By(o){return o.replace(DR,"-").replace(AR,"")}var mk=function(o){return L_(lk(o)>>>0)};function b$(o){return typeof o=="string"&&!0}var P_=function(o){return typeof o=="function"||typeof o=="object"&&o!==null&&!Array.isArray(o)},OR=function(o){return o!=="__proto__"&&o!=="constructor"&&o!=="prototype"};function RR(o,n,s){var i=o[s];P_(n)&&P_(i)?bk(i,n):o[s]=n}function bk(o){for(var n=arguments.length,s=new Array(n>1?n-1:0),i=1;i=0||(Y[ee]=q[ee]);return Y}(n,["componentId"]),H=B&&B+"-"+(b$(N)?N:By(kS(N)));return $k(N,Go({},S,{attrs:T,componentId:H}),s)},Object.defineProperty(E,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(N){this._foldedDefaultProps=i?bk({},o.defaultProps,N):N}}),Object.defineProperty(E,"toString",{value:function(){return"."+E.styledComponentId}}),a&&DI(E,o,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),E}var Di=function(o){return function n(s,i,a){if(a===void 0&&(a=Zl),!ok.isValidElementType(i))return Vf(1,String(i));var c=function(){return s(i,a,gk.apply(void 0,arguments))};return c.withConfig=function(h){return n(s,i,Go({},a,{},h))},c.attrs=function(h){return n(s,i,Go({},a,{attrs:Array.prototype.concat(a.attrs,h).filter(Boolean)}))},c}($k,o)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(o){Di[o]=Di(o)});var MR=function(){function o(s,i){this.rules=s,this.componentId=i,this.isStatic=ck(s),Q$.registerId(this.componentId+1)}var n=o.prototype;return n.createStyles=function(s,i,a,c){var h=c(_u(this.rules,i,a,c).join(""),""),g=this.componentId+s;a.insertRules(g,g,h)},n.removeStyles=function(s,i){i.clearRules(this.componentId+s)},n.renderStyles=function(s,i,a,c){s>2&&Q$.registerId(this.componentId+s),this.removeStyles(s,a),this.createStyles(s,i,a,c)},o}();function NR(o){for(var n=arguments.length,s=new Array(n>1?n-1:0),i=1;io.length)&&(n=o.length);for(var s=0,i=Array(n);s=o.length?{done:!0}:{done:!1,value:o[i++]}},e:function(b){throw b},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var c,h=!0,g=!1;return{s:function(){s=s.call(o)},n:function(){var b=s.next();return h=b.done,b},e:function(b){g=!0,c=b},f:function(){try{h||s.return==null||s.return()}finally{if(g)throw c}}}}function Ti(o,n,s){return(n=yk(n))in o?Object.defineProperty(o,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[n]=s,o}function ev(o){return ev=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ev(o)}function UR(o,n){if(typeof n!="function"&&n!==null)throw new TypeError("Super expression must either be null or a function");o.prototype=Object.create(n&&n.prototype,{constructor:{value:o,writable:!0,configurable:!0}}),Object.defineProperty(o,"prototype",{writable:!1}),n&&j_(o,n)}function vk(){try{var o=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(vk=function(){return!!o})()}function WR(o,n){var s=o==null?null:typeof Symbol<"u"&&o[Symbol.iterator]||o["@@iterator"];if(s!=null){var i,a,c,h,g=[],b=!0,$=!1;try{if(c=(s=s.call(o)).next,n!==0)for(;!(b=(i=c.call(s)).done)&&(g.push(i.value),g.length!==n);b=!0);}catch(y){$=!0,a=y}finally{try{if(!b&&s.return!=null&&(h=s.return(),Object(h)!==h))return}finally{if($)throw a}}return g}}function HR(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function RS(o,n){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);n&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(o,a).enumerable})),s.push.apply(s,i)}return s}function tv(o){for(var n=1;ns.right&&(s.right=g.right),g.bottom>s.bottom&&(s.bottom=g.bottom),g.left=0+b&&a>=0+b&&i<=h-b&&s<=c-b}function ZR(o){return o===document.querySelector("body")||o===document.querySelector("html")}var QR=function(n){return/(left|right)/.test(n)},jy=function(n,s){return n>s},Fy=function(n,s){return n>s},zo=function(n){return n<0?0:n};function eM(o){return Object.keys(o).map(function(n){return{position:n,value:o[n]}}).sort(function(n,s){return s.value-n.value}).map(function(n){return n.position})}var FS,tM=Di.div(FS||(FS=uo([` - --reactour-accent: `,`; - `,` - position: fixed; - transition: transform 0.3s; - top: 0; - left: 0; - z-index: 1000000; - - transform: `,`; -`])),function(o){return o.accentColor},function(o){return o.defaultStyles?` - max-width: 331px; - min-width: 150px; - padding-right: 40px; - border-radius: `.concat(o.rounded,`px; - background-color: #fff; - padding: 24px 30px; - box-shadow: 0 0.5em 3em rgba(0, 0, 0, 0.3); - color: inherit; - `):""},function(o){var n=o.targetTop,s=o.targetRight,i=o.targetBottom,a=o.targetLeft,c=o.windowWidth,h=o.windowHeight,g=o.helperWidth,b=o.helperHeight,$=o.helperPosition,y=o.padding,w={left:a,right:c-s,top:n,bottom:h-i},T=function(P){return w[P]>(QR(P)?g+y*2:b+y*2)},C=function(P){for(var N=eM(w),B=0;By?H:y,se=Fy(n+b,h)?Fy(i+y,h)?i-b:i-b+y:n-y,ee=se>y?se:y,K={top:[q,n-b-y*2],right:[s+y*2,ee],bottom:[q,i+y*2],left:[a-g-y*2,ee],center:[c/2-g/2,h/2-b/2]};return P==="center"||T(P)?K[P]:C(K)},k=E($);return"translate(".concat(Math.round(k[0]),"px, ").concat(Math.round(k[1]),"px)")}),zS,nM=Di.span(zS||(zS=uo([` - position: absolute; - font-family: monospace; - background: var(--reactour-accent); - background: `,`; - height: 1.875em; - line-height: 2; - padding-left: 0.8125em; - padding-right: 0.8125em; - font-size: 1em; - border-radius: 1.625em; - color: white; - text-align: center; - box-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.3); - top: -0.8125em; - left: -0.8125em; -`])),function(o){return o.accentColor}),US,sM=Di.div(US||(US=uo([` - display: flex; - margin-top: 24px; - align-items: center; - justify-content: center; -`]))),WS,rM=Di.nav(WS||(WS=uo([` - counter-reset: dot; - display: flex; - justify-content: center; - align-items: center; - flex-wrap: wrap; -`]))),HS,iM=Di.button(HS||(HS=uo([` - counter-increment: dot; - width: 8px; - height: 8px; - border: `,`; - - border-radius: 100%; - padding: 0; - display: block; - margin: 4px; - transition: opacity 0.3s, transform 0.3s; - cursor: `,`; - transform: scale(`,`); - - color: `,`; - background: `,`; - - color: `,`; - background: `,`; - - &:before { - content: counter(dot); - position: absolute; - bottom: calc(100% + 0.25em); - left: 50%; - opacity: 0; - transform: translate(-50%, 1em); - transition: 0.3s; - display: `,`; - } - - &:hover { - background-color: currentColor; - - &:before { - opacity: 0.5; - transform: translate(-50%, -2px); - } - } -`])),function(o){return o.current===o.index?"0":"1px solid #caccce"},function(o){return o.disabled?"not-allowed":"pointer"},function(o){return o.current===o.index?1.25:1},function(o){return o.current===o.index?"var(--reactour-accent)":"#caccce"},function(o){return o.current===o.index?"var(--reactour-accent)":"none"},function(o){return o.current===o.index?o.accentColor:"#caccce"},function(o){return o.current===o.index?o.accentColor:"none"},function(o){return o.showNumber?"block":"none"}),VS,oM=Di.div(VS||(VS=uo([` - opacity: `,`; - color: `,`; - width: 100%; - left: 0; - top: 0; - height: 100%; - position: fixed; - z-index: 99999; - pointer-events: none; -`])),function(o){return!o.maskClassName&&.7},function(o){return!o.maskClassName&&"#000"});function kk(o){var n=o.windowWidth,s=o.windowHeight,i=o.targetWidth,a=o.targetHeight,c=o.targetTop,h=o.targetLeft,g=o.padding,b=o.rounded,$=o.roundedStep,y=o.disableInteraction,w=o.disableInteractionClassName,T=o.className,C=o.onClick,E=o.highlightedBorder,k=zo(i+g*2),A=zo(a+g*2),P=zo(c-g),N=zo(h-g),B=$?Math.min(k/2,A/2):b;return We.createElement(oM,{onClick:C,maskClassName:T},We.createElement("svg",{width:n,height:s,xmlns:"http://www.w3.org/2000/svg",className:T},We.createElement("defs",null,We.createElement("mask",{id:"mask-main"},We.createElement("rect",{x:0,y:0,width:n,height:s,fill:"white"}),We.createElement("rect",{x:N,y:P,width:k,height:A,fill:"black"}),We.createElement("rect",{x:N-1,y:P-1,width:B,height:B,fill:"white"}),We.createElement("circle",{cx:N+B,cy:P+B,r:B,fill:"black"}),We.createElement("rect",{x:N+k-B+1,y:P-1,width:B,height:B,fill:"white"}),We.createElement("circle",{cx:N+k-B,cy:P+B,r:B,fill:"black"}),We.createElement("rect",{x:N-1,y:P+A-B+1,width:B,height:B,fill:"white"}),We.createElement("circle",{cx:N+B,cy:P+A-B,r:B,fill:"black"}),We.createElement("rect",{x:N+k-B+1,y:P+A-B+1,width:B,height:B,fill:"white"}),We.createElement("circle",{cx:N+k-B,cy:P+A-B,r:B,fill:"black "})),We.createElement("clipPath",{id:"clip-path"},We.createElement("rect",{x:0,y:0,width:n,height:P}),We.createElement("rect",{x:0,y:P,width:N,height:A}),We.createElement("rect",{x:h+i+g,y:P,width:zo(n-i-N),height:A}),We.createElement("rect",{x:0,y:c+a+g,width:n,height:zo(s-a-P)}))),We.createElement("rect",{x:0,y:0,width:n,height:s,fill:"currentColor",mask:"url(#mask-main)"}),We.createElement("rect",{x:0,y:0,width:n,height:s,fill:"currentColor",clipPath:"url(#clip-path)",pointerEvents:"auto"}),We.createElement("rect",{x:N,y:P,width:k,height:A,pointerEvents:"auto",fill:"transparent",display:y?"block":"none",className:w}),E&&We.createElement("rect",{x:zo(N+E.width/2),y:zo(P+E.width/2),width:zo(k-E.width),height:zo(A-E.width),pointerEvents:"auto",fill:"none",strokeWidth:E.width,stroke:E.color,rx:B-2})))}kk.propTypes={windowWidth:Ge.number.isRequired,windowHeight:Ge.number.isRequired,targetWidth:Ge.number.isRequired,targetHeight:Ge.number.isRequired,targetTop:Ge.number.isRequired,targetLeft:Ge.number.isRequired,padding:Ge.number.isRequired,rounded:Ge.number.isRequired,roundedStep:Ge.bool,disableInteraction:Ge.bool.isRequired,disableInteractionClassName:Ge.string.isRequired,highlightedBorder:Ge.shape({color:Ge.string.isRequired,width:Ge.number.isRequired})};var aM=function(o){var n=o.step,s=o.refresh,i=ve.useState(0),a=GR(i,2),c=a[0],h=a[1];return ve.useEffect(function(){if(n.resizeObservables){var g=function(T){var C=xh(T),E;try{var k=function(){var P=E.value;if(!P.attributes)return 1;var N=n.resizeObservables.find(function(B){return P.matches(B)||P.querySelector(B)!=null});N&&h(c+1)};for(C.s();!(E=C.n()).done;)k()}catch(A){C.e(A)}finally{C.f()}},b=new MutationObserver(function(w){var T=xh(w),C;try{for(T.s();!(C=T.n()).done;){var E=C.value;E.addedNodes.length!==0&&g(E.addedNodes),E.removedNodes.length!==0&&g(E.removedNodes)}}catch(k){T.e(k)}finally{T.f()}}),$=document.documentElement||document.body,y={childList:!0,subtree:!0};return b.observe($,y),function(){b.disconnect()}}},[n,c]),ve.useEffect(function(){if(n.resizeObservables){var g=new ResizeObserver(function(T){s()}),b=xh(n.resizeObservables),$;try{for(b.s();!($=b.n()).done;){var y=$.value,w=document.querySelector(y);w&&g.observe(w)}}catch(T){b.e(T)}finally{b.f()}return function(){g.disconnect()}}},[n,c]),null},lM=function(o){var n=o.step,s=o.refresh;return ve.useEffect(function(){if(n.mutationObservables){var i=function(b){var $=xh(b),y;try{var w=function(){var C=y.value;if(!C.attributes)return 1;var E=n.mutationObservables.find(function(k){return C.matches(k)||C.querySelector(k)!=null});E&&s()};for($.s();!(y=$.n()).done;)w()}catch(T){$.e(T)}finally{$.f()}},a=new MutationObserver(function(g){var b=xh(g),$;try{for(b.s();!($=b.n()).done;){var y=$.value;y.addedNodes.length!==0&&i(y.addedNodes),y.removedNodes.length!==0&&i(y.removedNodes)}}catch(w){b.e(w)}finally{b.f()}}),c=document.documentElement||document.body,h={childList:!0,subtree:!0};return a.observe(c,h),function(){a.disconnect()}}},[n]),null};function cM(o){var n=o.children,s=ve.useRef(null);return s.current===null&&(s.current=document.createElement("div"),s.current.setAttribute("id","___reactour")),ve.useEffect(function(){return document.body.appendChild(s.current),function(){document.body.removeChild(s.current)}},[s]),P0.createPortal(n,s.current)}var uM={disableFocusLock:Ge.bool,badgeContent:Ge.func,highlightedMaskClassName:Ge.string,children:Ge.oneOfType([Ge.node,Ge.element]),className:Ge.string,closeButtonAriaLabel:Ge.string,closeWithMask:Ge.bool,inViewThreshold:Ge.number,isOpen:Ge.bool.isRequired,lastStepNextButton:Ge.node,maskClassName:Ge.string,maskSpace:Ge.number,nextButton:Ge.node,onAfterOpen:Ge.func,onBeforeClose:Ge.func,onRequestClose:Ge.func,prevButton:Ge.node,scrollDuration:Ge.number,scrollOffset:Ge.number,showButtons:Ge.bool,showCloseButton:Ge.bool,showNavigation:Ge.bool,showNavigationNumber:Ge.bool,showNumber:Ge.bool,startAt:Ge.number,goToStep:Ge.number,getCurrentStep:Ge.func,nextStep:Ge.func,prevStep:Ge.func,steps:Ge.arrayOf(Ge.shape({selector:Ge.string,content:Ge.oneOfType([Ge.node,Ge.element,Ge.func]).isRequired,position:Ge.oneOfType([Ge.arrayOf(Ge.number),Ge.oneOf(["top","right","bottom","left","center"])]),action:Ge.func,style:Ge.object,stepInteraction:Ge.bool,navDotAriaLabel:Ge.string,roundedStep:Ge.bool})),update:Ge.string,updateDelay:Ge.number,disableInteraction:Ge.bool,disableDotsNavigation:Ge.bool,disableKeyboardNavigation:Ge.oneOfType([Ge.arrayOf(Ge.oneOf(["esc","right","left"])),Ge.bool]),rounded:Ge.number,accentColor:Ge.string,highlightedBorder:Ge.shape({color:Ge.string.isRequired,width:Ge.number.isRequired})},dM={disableFocusLock:!1,showNavigation:!0,showNavigationNumber:!0,showButtons:!0,showCloseButton:!0,closeButtonAriaLabel:"Close",showNumber:!0,scrollDuration:1,maskSpace:10,updateDelay:1,disableInteraction:!1,rounded:0,accentColor:"#007aff",closeWithMask:!0},gh={mask:{disableInteraction:"reactour__mask--disable-interaction"},helper:{base:"reactour__helper",isOpen:"reactour__helper--is-open"},dot:{base:"reactour__dot",active:"reactour__dot--is-active"}},Rw=function(o){function n(){var s;return jR(this,n),s=PR(this,n),Ti(s,"unlockFocus",function(i){s.setState({focusUnlocked:!0},i())}),Ti(s,"showStep",function(){if(!(!s.helper||!s.helper.current)){var i=s.props.steps,a=s.state,c=a.current,h=a.focusUnlocked;h&&s.setState({focusUnlocked:!1});var g=i[c],b=g.selector?document.querySelector(g.selector):null,$=function(E){g.action&&typeof g.action=="function"&&s.unlockFocus(function(){return g.action(E)})};if(g.observe){var y=document.querySelector(g.observe),w={attributes:!0,childList:!0,characterData:!0};s.setState(function(C){return C.observer&&setTimeout(function(){C.observer.disconnect()},0),{observer:new MutationObserver(function(E){E.forEach(function(k){if(k.type==="childList"&&k.addedNodes.length>0){var A=function(){return $(k.addedNodes[0])};setTimeout(function(){return s.calculateNode(k.addedNodes[0],g,A)},100)}else if(k.type==="childList"&&k.removedNodes.length>0){var P=function(){return $(b)};s.calculateNode(b,g,P)}})})}},function(){return s.state.observer.observe(y,w)})}else s.state.observer&&(s.state.observer.disconnect(),s.setState({observer:null}));if(b){var T=function(){return $(b)};s.calculateNode(b,g,T)}else s.setState(zy(null,g,s.helper.current),$),g.selector&&console.warn("Doesn't find a DOM node '".concat(g.selector,"'. Please check the 'steps' Tour prop Array at position ").concat(c,"."))}}),Ti(s,"calculateNode",function(i,a,c){var h=s.props,g=h.scrollDuration,b=h.inViewThreshold,$=h.scrollOffset,y=Tk(i,a),w=Math.max(document.documentElement.clientWidth,window.innerWidth||0),T=Math.max(document.documentElement.clientHeight,window.innerHeight||0);if(XR(tv(tv({},y),{},{w,h:T,threshold:b})))s.setState(zy(i,a,s.helper.current),c);else{var C=CO(i),E=$||(y.height>T?-25:-(T/2)+y.height/2);yO.to(i,{context:ZR(C)?window:C,duration:g,offset:E,callback:function(A){s.setState(zy(A,a,s.helper.current),c)}})}}),Ti(s,"recalculateNode",function(i){var a=document.querySelector(i.selector),c=function(g){i.action&&typeof i.action=="function"&&s.unlockFocus(function(){return i.action(g)})};s.calculateNode(a,i,function(){return c(a)})}),Ti(s,"maskClickHandler",function(i){var a=s.props,c=a.closeWithMask,h=a.onRequestClose;c&&!i.target.classList.contains(gh.mask.disableInteraction)&&h(i)}),Ti(s,"nextStep",function(){var i=s.props,a=i.steps,c=i.getCurrentStep;s.setState(function(h){var g=h.current0?a.current-1:a.current;return typeof i=="function"&&i(c),{current:c}},s.showStep)}),Ti(s,"gotoStep",function(i){var a=s.props,c=a.steps,h=a.getCurrentStep;s.setState(function(g){var b=c[i]?i:g.current;return typeof h=="function"&&h(b),{current:b}},s.showStep)}),Ti(s,"keyDownHandler",function(i){var a=s.props,c=a.onRequestClose,h=a.nextStep,g=a.prevStep,b=a.disableKeyboardNavigation;if(i.stopPropagation(),b!==!0){var $,y,w;b&&($=b.includes("esc"),y=b.includes("right"),w=b.includes("left")),i.keyCode===27&&!$&&(i.preventDefault(),c()),i.keyCode===39&&!y&&(i.preventDefault(),typeof h=="function"?h():s.nextStep()),i.keyCode===37&&!w&&(i.preventDefault(),typeof g=="function"?g():s.prevStep())}}),s.state={isOpen:!1,current:0,top:0,right:0,bottom:0,left:0,width:0,height:0,w:0,h:0,inDOM:!1,observer:null,focusUnlocked:!1},s.helper=ve.createRef(),s.helperElement=null,s.debouncedShowStep=UO(s.showStep,70),s}return UR(n,o),zR(n,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isOpen,c=i.startAt;a&&this.open(c)}},{key:"UNSAFE_componentWillReceiveProps",value:function(i){var a=this.props,c=a.isOpen,h=a.update,g=a.updateDelay;!c&&i.isOpen?this.open(i.startAt):c&&!i.isOpen&&this.close(),c&&h!==i.update&&(i.steps[this.state.current]?setTimeout(this.showStep,g):this.props.onRequestClose()),c&&i.isOpen&&this.state.current!==i.goToStep&&this.gotoStep(i.goToStep)}},{key:"componentWillUnmount",value:function(){var i=this.props.isOpen;i&&this.close(),this.state.observer&&this.state.observer.disconnect()}},{key:"open",value:function(i){var a=this,c=this.props.onAfterOpen;this.setState(function(h){return{isOpen:!0,current:i!==void 0?i:h.current}},function(){setTimeout(a.showStep,1),a.helperElement=a.helper.current,a.props.disableFocusLock||a.helper.current.focus(),c&&c(a.helperElement)}),window.addEventListener("resize",this.debouncedShowStep,!1),window.addEventListener("keydown",this.keyDownHandler,!1)}},{key:"close",value:function(){this.setState(function(i){return i.observer&&i.observer.disconnect(),{isOpen:!1,observer:null}},this.onBeforeClose),window.removeEventListener("resize",this.debouncedShowStep),window.removeEventListener("keydown",this.keyDownHandler)}},{key:"onBeforeClose",value:function(){var i=this.props.onBeforeClose;i&&i(this.helperElement)}},{key:"render",value:function(){var i=this,a=this.props,c=a.className,h=a.steps,g=a.maskClassName,b=a.showButtons,$=a.showCloseButton,y=a.closeButtonAriaLabel,w=a.showNavigation,T=a.showNavigationNumber,C=a.showNumber,E=a.onRequestClose,k=a.maskSpace,A=a.lastStepNextButton,P=a.nextButton,N=a.prevButton,B=a.badgeContent,S=a.highlightedMaskClassName,H=a.disableInteraction,q=a.disableDotsNavigation,se=a.nextStep,ee=a.prevStep,K=a.rounded,Y=a.accentColor,X=a.CustomHelper,ce=a.disableFocusLock,W=a.highlightedBorder,te=this.state,ke=te.isOpen,Z=te.current,ze=te.inDOM,Ce=te.top,at=te.right,he=te.bottom,Ae=te.left,de=te.width,Se=te.height,xe=te.w,He=te.h,ne=te.helperWidth,Ke=te.helperHeight,Te=te.helperPosition;return ke?We.createElement(cM,null,We.createElement(JR,null),We.createElement(aM,{step:h[Z],refresh:function(){return i.recalculateNode(h[Z])}}),We.createElement(lM,{step:h[Z],refresh:function(){return i.recalculateNode(h[Z])}}),We.createElement(kk,{onClick:this.maskClickHandler,forwardRef:function(rt){return i.mask=rt},windowWidth:xe,windowHeight:He,targetWidth:de,targetHeight:Se,targetTop:Ce,targetLeft:Ae,padding:k,rounded:K,roundedStep:h[Z].roundedStep,className:g,disableInteraction:h[Z].stepInteraction===!1||H?!h[Z].stepInteraction:H,disableInteractionClassName:"".concat(gh.mask.disableInteraction," ").concat(S),highlightedBorder:W}),We.createElement(nk,{disabled:ce,autoFocus:!1},We.createElement(tM,{ref:this.helper,targetHeight:Se,targetWidth:de,targetTop:Ce,targetRight:at,targetBottom:he,targetLeft:Ae,windowWidth:xe,windowHeight:He,helperWidth:ne,helperHeight:Ke,helperPosition:Te,padding:k,tabIndex:-1,current:Z,style:h[Z].style?h[Z].style:{},rounded:K,className:gS(gh.helper.base,c,Ti({},gh.helper.isOpen,ke)),accentColor:Y,defaultStyles:!X,role:"dialog"},X?We.createElement(X,{current:Z,totalSteps:h.length,gotoStep:this.gotoStep,close:E,content:h[Z]&&(typeof h[Z].content=="function"?h[Z].content({close:E,goTo:this.gotoStep,inDOM:ze,step:Z+1}):h[Z].content)},this.props.children):We.createElement(We.Fragment,null,this.props.children,h[Z]&&(typeof h[Z].content=="function"?h[Z].content({close:E,goTo:this.gotoStep,inDOM:ze,step:Z+1}):h[Z].content),C&&We.createElement(nM,{"data-tour-elem":"badge",accentColor:Y},typeof B=="function"?B(Z+1,h.length):Z+1),(b||w)&&We.createElement(sM,{"data-tour-elem":"controls"},b&&We.createElement(PS,{onClick:typeof ee=="function"?ee:this.prevStep,disabled:Z===0,label:N||null}),w&&We.createElement(rM,{"data-tour-elem":"navigation"},h.map(function(Je,rt){return We.createElement(iM,{key:"".concat(Je.selector?Je.selector:"undef","_").concat(rt),onClick:function(){return i.gotoStep(rt)},current:Z,index:rt,accentColor:Y,disabled:Z===rt||q,showNumber:T,"data-tour-elem":"dot",className:gS(gh.dot.base,Ti({},gh.dot.active,Z===rt)),"aria-label":Je.navDotAriaLabel})})),b&&We.createElement(PS,{onClick:Z===h.length-1?A?E:function(){}:typeof se=="function"?se:this.nextStep,disabled:!A&&Z===h.length-1,inverted:!0,label:A&&Z===h.length-1?A:P||null})),$&&We.createElement(YR,{onClick:E,className:"reactour__close",ariaLabel:y}))))):null}}])}(ve.Component),zy=function(n,s,i){if(i){var a=Math.max(document.documentElement.clientWidth,window.innerWidth||0),c=Math.max(document.documentElement.clientHeight,window.innerHeight||0),h=N$(i),g=h.width,b=h.height,$={top:c+10,right:a/2+9,bottom:c/2+9,left:a/2-g/2,width:0,height:0,w:a,h:c,helperPosition:"center"};return n&&($=Tk(n,s)),function(){return tv(tv({w:a,h:c,helperWidth:g,helperHeight:b,helperPosition:s.position},$),{},{inDOM:!!n})}}};Rw.propTypes=uM;Rw.defaultProps=dM;const hM=""+new URL("blockly2js-B3Jxf2e-.svg",import.meta.url).href,pM=""+new URL("rules2js-DnYyR8mI.svg",import.meta.url).href;function gM(o){return/^script\.js\.global\./.test(o)}let fM=0;function mM(o){const n=/\x1b\[[0-9;]*m/g;return o.replace(n,"")}class Gv extends We.Component{monacoDiv=null;editor=null;monaco=window.monaco;insert="";originalCode;runningInstancesStr;monacoCounter=0;location;breakpoints;lastSearch="";typings={};decorations=[];triggerPrettier;constructor(n){super(n),this.state={name:"current",isDark:n.isDark||!1,language:n.language||"javascript",readOnly:n.readOnly||!1,alive:!0,check:!1,searchText:this.props.searchText||"",typingsLoaded:!1,showError:null},this.triggerPrettier=n.triggerPrettier,this.runningInstancesStr=JSON.stringify(this.props.runningInstances),this.originalCode=n.code||"",this.monacoDiv=We.createRef()}waitForMonaco(n){var i,a,c,h,g,b,$,y;let s=!!((h=(c=(a=(i=this.monaco)==null?void 0:i.languages)==null?void 0:a.typescript)==null?void 0:c.typescriptDefaults)!=null&&h.getCompilerOptions);if(!s||!this.props.runningInstances){if(this.monaco=window.monaco,s=!!((y=($=(b=(g=this.monaco)==null?void 0:g.languages)==null?void 0:b.typescript)==null?void 0:$.typescriptDefaults)!=null&&y.getCompilerOptions),this.monacoCounter++,!s&&this.monacoCounter<20){console.log("wait for monaco loaded"),setTimeout(()=>this.waitForMonaco(n),200);return}this.monacoCounter>=20&&console.error("Cannot load monaco!")}else n&&n()}loadTypings(n){if(!this.editor)return;n||=this.props.runningInstances;const s=n&&Object.keys(n).find(i=>n==null?void 0:n[i]);s&&this.props.socket.sendTo(s.replace("system.adapter.",""),"loadTypings",null).then(i=>{this.setState({alive:!0,check:!0,typingsLoaded:!0}),this.setTypeCheck(!0),i.typings?(this.typings=i.typings,this.setEditorTypings(this.state.name)):console.error(`failed to load typings: ${i.error}`)})}componentDidMount(){var i,a,c,h,g,b,$,y,w,T,C,E;let n=!!((h=(c=(a=(i=this.monaco)==null?void 0:i.languages)==null?void 0:a.typescript)==null?void 0:c.typescriptDefaults)!=null&&h.getCompilerOptions);if((!n||!this.props.runningInstances)&&(this.monaco=window.monaco,n=!!((y=($=(b=(g=this.monaco)==null?void 0:g.languages)==null?void 0:b.typescript)==null?void 0:$.typescriptDefaults)!=null&&y.getCompilerOptions),!n)){console.log("wait for monaco loaded..."),this.waitForMonaco(()=>this.componentDidMount());return}if(!this.editor&&n&&this.monaco){console.log("Init editor"),(T=(w=this.props).onRegisterSelect)==null||T.call(w,()=>{var A;if(this.editor){const P=this.editor.getSelection();if(P)return(A=this.editor.getModel())==null?void 0:A.getValueInRange(P)}});const k=this.monaco.languages.typescript.typescriptDefaults.getCompilerOptions();k.allowJs=!0,k.checkJs=this.props.checkJs!==!1,k.noLib=!0,k.lib=[],k.useUnknownInCatchVariables=!1,k.moduleResolution=this.monaco.languages.typescript.ModuleResolutionKind.NodeJs,k.target=this.monaco.languages.typescript.ScriptTarget.ESNext,k.module=this.monaco.languages.typescript.ModuleKind.ESNext,k.allowNonTsExtensions=!0,this.monaco.languages.typescript.typescriptDefaults.setCompilerOptions(k),this.setTypeCheck(!1),(C=this.monacoDiv)!=null&&C.current&&(this.editor=this.monaco.editor.create((E=this.monacoDiv)==null?void 0:E.current,{lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,glyphMargin:!!this.props.breakpoints,colorDecorators:!0}),this.editor.onDidChangeModelContent(()=>this.onChange()),this.loadTypings(),this.props.onForceSave&&this.editor.addCommand(this.monaco.KeyMod.CtrlCmd|this.monaco.KeyCode.KeyS,()=>this.props.onForceSave&&this.props.onForceSave()),setTimeout(()=>{this.highlightText(this.state.searchText),this.location=this.props.location||void 0,this.breakpoints=this.props.breakpoints,this.showDecorators()}))}const s={selectOnLineNumbers:!0,scrollBeyondLastLine:!1,automaticLayout:!0,readOnly:this.state.readOnly,language:this.state.language,isDark:this.state.isDark};this.setEditorOptions(s),this.editor&&(this.editor.focus(),this.editor.setValue(this.originalCode),this.props.onToggleBreakpoint?this.editor.onMouseDown(k=>{var P;const A=k.target;this.props.onToggleBreakpoint&&((P=A.detail)==null?void 0:P.glyphMarginLeft)!==void 0&&A.position&&this.props.onToggleBreakpoint(A.position.lineNumber-1)}):this.editor.onMouseDown(()=>{}))}setEditorOptions(n){var s;n&&(n.language&&this.setEditorLanguage(n.language),this.editor&&(n.readOnly!==void 0&&this.editor.updateOptions({readOnly:n.readOnly}),n.lineWrap!==void 0&&this.editor.updateOptions({wordWrap:n.lineWrap?"on":"off"})),n.typeCheck!==void 0&&this.setTypeCheck(n.typeCheck),n.isDark!==void 0&&((s=this.monaco)==null||s.editor.setTheme(n.isDark?"vs-dark":"vs")))}componentWillUnmount(){var n,s;this.editor&&((s=(n=this.props).onRegisterSelect)==null||s.call(n,null),this.editor.dispose(),this.editor=null)}async doPrettier(){var i,a,c,h;const n=this.props.runningInstances&&Object.keys(this.props.runningInstances).find(g=>{var b;return(b=this.props.runningInstances)==null?void 0:b[g]});if(!n){window.alert(I.I18n.t("No script adapter instance found to format the code"));return}const s=await this.props.socket.sendTo(n.replace("system.adapter.",""),"prettier",{code:(i=this.editor)==null?void 0:i.getValue(),type:this.state.language});s.error?this.setState({showError:{title:I.I18n.t("Error formatting code"),message:mM(s.error)}}):s.code&&((a=this.editor)==null||a.setValue(s.code),(h=(c=this.props).onChange)==null||h.call(c,s.code),this.showDecorators())}setEditorLanguage(n){var i;if(!this.editor)return;const s=this.editor.getModel();if(s){const a=s.getValue(),c=s.uri.path,h=typeof c=="string"&&c.includes(".")?c.substring(0,c.lastIndexOf(".")):"index",g=n==="javascript"?"js":n==="typescript"?"ts":n;s.dispose();const b=n==="javascript"||n==="typescript"?"typescript":n,$=(i=this.monaco)==null?void 0:i.editor.createModel(a,b,this.monaco.Uri.from({scheme:window.location.protocol.replace(":",""),path:`${h}${fM++}.${g}`}));$&&this.editor.setModel($)}}setTypeCheck(n){var i,a;const s={noSemanticValidation:!this.state.alive||!n,noSyntaxValidation:!this.state.alive};(i=this.monaco)==null||i.languages.typescript.typescriptDefaults.setDiagnosticsOptions(s),(a=this.monaco)==null||a.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!this.state.alive||!n,noSyntaxValidation:!this.state.alive})}setEditorTypings(n=""){var c,h,g,b,$,y,w,T;const s=gM(n),i=`${n}.d.ts`,a=[];for(const C of Object.keys(this.typings))s&&(C==="global.d.ts"||C.startsWith("script.js.global")&&C!==i)||a.push({filePath:C,content:this.typings[C]});if((b=(g=(h=(c=this.monaco)==null?void 0:c.languages)==null?void 0:h.typescript)==null?void 0:g.typescriptDefaults)!=null&&b.setExtraLibs)this.monaco.languages.typescript.typescriptDefaults.setExtraLibs(a);else if((T=(w=(y=($=this.monaco)==null?void 0:$.languages)==null?void 0:y.typescript)==null?void 0:w.typescriptDefaults)!=null&&T.addExtraLib){const C=this.monaco.languages.typescript.typescriptDefaults.getExtraLibs();a.forEach(E=>{!C[E.filePath]&&this.monaco&&this.monaco.languages.typescript.typescriptDefaults.addExtraLib(E.content,E.filePath)})}}insertTextIntoEditor(n){if(!this.editor||!this.monaco)return;const s=this.editor.getSelection();if(s){const i=new this.monaco.Range(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn);this.editor.executeEdits("",[{range:i,text:n,forceMoveMarkers:!0}])}this.editor.focus()}highlightText(n){var i;if(!this.editor||!this.monaco)return;const s=n?(i=this.editor.getModel())==null?void 0:i.findMatches(n,!0,!1,!1,null,!0):void 0;if(s!=null&&s.length)s.forEach(a=>{var c;return(c=this.editor)==null?void 0:c.setSelection(a.range)}),this.editor.revealLine(s[0].range.startLineNumber);else{const a=this.editor.getPosition();if(a){const c=a.lineNumber,h=a.column;this.editor.setSelection(new this.monaco.Range(c,h,c,h))}}}showDecorators(){var s;const n=[];if(this.location&&this.monaco&&(n.push({range:new this.monaco.Range(this.location.lineNumber+1,(this.location.columnNumber||0)+1,this.location.lineNumber+1,1e3),options:{isWholeLine:!1,className:this.props.isDark?"monacoCurrentLineDark":"monacoCurrentLine"}}),n.push({range:new this.monaco.Range(this.location.lineNumber+1,0,this.location.lineNumber+1,0),options:{isWholeLine:!0,className:this.props.isDark?"monacoCurrentFullLineDark":"monacoCurrentFullLine"}})),(s=this.breakpoints)==null||s.forEach(i=>{this.monaco&&n.push({range:new this.monaco.Range(i.location.lineNumber+1,0,i.location.lineNumber+1,100),options:{isWholeLine:!0,glyphMarginClassName:this.props.isDark?"monacoBreakPointDark":"monacoBreakPoint"}})}),this.editor){const i=this.editor.getModel();i&&(this.decorations=i.deltaDecorations(this.decorations,n))}}initNewScript(n,s){var i;this.setState({name:n}),this.originalCode=s||"",(i=this.editor)==null||i.setValue(s||""),this.highlightText(this.lastSearch),this.showDecorators(),this.setEditorTypings(n)}scrollToLineIfNeeded(n){if(this.editor){const s=this.editor.getVisibleRanges();(!s||!s[0]||s[0].startLineNumber>n||n>s[0].endLineNumber)&&this.editor.revealLineInCenter(n)}}UNSAFE_componentWillReceiveProps(n){const s={};this.state.name!==n.name&&this.initNewScript(n.name,n.code),JSON.stringify(n.runningInstances)!==this.runningInstancesStr&&(this.runningInstancesStr=JSON.stringify(n.runningInstances),this.state.typingsLoaded||this.loadTypings(n.runningInstances)),this.editor&&!n.changed&&(n.code!==this.originalCode||n.code!==this.editor.getValue())&&(this.originalCode=n.code||"",this.editor.setValue(this.originalCode),this.showDecorators(),this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),n.searchText!==this.lastSearch&&(this.lastSearch=n.searchText||"",this.highlightText(this.lastSearch)),JSON.stringify(n.location)!==JSON.stringify(this.location)&&JSON.stringify(n.breakpoints)!==JSON.stringify(this.breakpoints)?(this.location=n.location||void 0,this.breakpoints=n.breakpoints,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)):JSON.stringify(n.breakpoints)!==JSON.stringify(this.breakpoints)?(this.breakpoints=n.breakpoints,this.showDecorators()):JSON.stringify(n.location)!==JSON.stringify(this.location)&&(this.location=n.location||void 0,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),this.state.language!==(n.language||"javascript")?(this.setState({language:n.language||"javascript"}),s.language=n.language||"javascript"):this.state.readOnly!==(n.readOnly||!1)?(this.setState({readOnly:n.readOnly||!1}),s.readOnly=n.readOnly):this.state.isDark!==(n.isDark||!1)&&(this.setState({isDark:n.isDark||!1}),s.isDark=n.isDark),this.setEditorOptions(s),this.insert!==n.insert&&(this.insert=n.insert||"",this.insert&&(console.log(`Insert text: ${this.insert}`),setTimeout(i=>{this.insertTextIntoEditor(i),setTimeout(()=>this.props.onInserted&&this.props.onInserted(),100)},100,this.insert)))}onChange(){var n,s;!this.props.readOnly&&this.editor&&((s=(n=this.props).onChange)==null||s.call(n,this.editor.getValue()))}renderErrorDialog(){return this.state.showError?this.state.showError.full?f.jsxs(D.Dialog,{open:!0,maxWidth:"md",onClose:()=>this.setState({showError:null}),children:[f.jsx(D.DialogTitle,{children:this.state.showError.title||I.I18n.t("Error")}),f.jsx(D.DialogContent,{children:f.jsx("pre",{children:f.jsx("code",{children:this.state.showError.message})})}),f.jsx(D.DialogActions,{children:f.jsxs(D.Button,{variant:"contained",startIcon:f.jsx(Xl,{}),onClick:()=>this.setState({showError:null}),children:[I.I18n.t("Close")," "]})})]}):f.jsx(D.Snackbar,{open:!0,autoHideDuration:5e3,onClose:()=>this.setState({showError:null}),message:this.state.showError.title,action:f.jsxs(We.Fragment,{children:[f.jsx(D.Button,{color:"secondary",size:"small",onClick:()=>this.setState({showError:{...this.state.showError,full:!0}}),children:I.I18n.t("More")}),f.jsx(D.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({showError:null}),children:f.jsx(Xl,{fontSize:"small"})})]})}):null}render(){var n,s,i;return!((i=(s=(n=this.monaco)==null?void 0:n.languages)==null?void 0:s.typescript)!=null&&i.typescriptDefaults)||!this.props.runningInstances?(setTimeout(()=>{this.monaco=window.monaco,this.forceUpdate()},200),null):(this.props.triggerPrettier!==this.triggerPrettier&&(this.triggerPrettier=this.props.triggerPrettier,setTimeout(()=>this.doPrettier().catch(a=>console.error("Error formatting code:",a)),50)),f.jsxs("div",{ref:this.monacoDiv,style:{...this.props.style,width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:[this.renderErrorDialog(),!this.state.check&&f.jsx(D.Fab,{size:"small",title:I.I18n.t("Check is not active, because javascript adapter is disabled"),style:{bottom:10,right:10,opacity:.5,position:"absolute",zIndex:1,background:"red",color:"white"},color:"secondary",children:f.jsx(GI,{})})]}))}}var Mw={exports:{}},bM=Mw.exports;(function(o,n){(function(s,i){o.exports=i()})(bM,function(){var s={},i,a,c,h,g,b,$,y,w,T,C,E,k,A,P,N,B,S,H,q,se,ee,K,Y,X,ce,W,te,ke,Z,ze,Ce,at,he,Ae,de,Se,xe,He,ne,Ke,Te,Je,rt,ht,nt,Wt,St,lt,ft,st,At,mn,Ue,Nt,wt,qt,ct,me,ge,ue,we,Ve,re,Fe,It,pt,En,mt,Cn,$n,zn,Jn,Gs,ns,Rn,Kt,Pn,cs,Ks,jn,Un,Rs,ii,Ir,ec,xr,Ka,tc,nc,Tu,Yo,z,U,R,j,F,pe,Ee,_e,ae,je,it,Ft,Yt,on,Lt,an,_n,Tt,In,ss,Js,Xo,Dr,ho,Ts,tn,qs,Oi,rs,Ms,po,Zo,Ri,go,fo,oi,Mi,ku,Ja,Qo,Nh,sc,Xf,ea,Lh,Eu,rc,Bh,Ph,Zf,ic,qa,Iu,Qf,jh,oc,em,tm,ta,nm,ac,Qt,Sn,sm,rm,im,om,am,lm,xu,Ni,Wn,lc,mo,Fh,Du,hr,zh,Uh,Wh,Hh,Vh,Au,Ys,Ya,Ns,cm,na,ai,Xa,cc,wn,Kr,uc,um,dc,Gh,Kh,Jh,Ou,Za,bo,dm,Qa,Ru,el,tl,Jr,qh,hc,sa,Yh,Mu,Xs,nl,ra,Xh,Zh,hm,pm,gm,sl,Qh,$o,rl,Nu,Lu,ep,li,il,Li,tp,np,ia,Ar,sp,fm,rp,mm,ip,bm,Or,ie,De,be,et,xt,rn,qn,kt,Bu,ol,us,pc,op,Bi,Pi,al,nn,gc,Pu,ll,$m,vm,ym,cl,ji,ul,dl,fc,ap,lp,mc,hl,oa,Fi,aa,ju,_m,bc,pl,vo,Fu,wm,zi,cp,ci,Xn,fs,up,Cm,yo,dp,zu,gl,Uu,la,fl,ca,$c,ua,Wu,Sm,Tm,hp,Hu,ml,_o,Vu,M,qr,ui,Zn,Ot,km,Em,Im,Ui,Gu,xm,Dm,Am,pp,Rr,gp,Ku,Om,Rm,Mm,di,ut,Zs,is,xn,hi,Mr,tt,Hn,pr,Nm,wo,Ju,qu,fp,mp,Yu,Xu,bp,vc,bl,$l,Lm,yc,Bm,pi,Zu,Co,gr,$p,vp,vl,Wi,Hi,Qu,yp,yl,_p,_c,os,ed,wp,Yr,So,_l,To,wc,Dn,td,ko,Cp,Pm,da,Sp,ha,nd,Tp,kp,pa,Ep,Ip,Cc,sd,jm,Fm,zm,xp,rd,Um,wl,Dp,Ap,id,Cl,Op,od,ad,Rp,ld,cd,ga,ud,dd,Mp,Sc,Ht,Np,Lp,fa,hd,Bp,Pp,Qs,Wm,Tc,pd,gd,jp,er,Vi,fd,Fp,Re;i=function(e,t,r,l){if(!(e instanceof Be)&&typeof e!="string"||`${e}`.trim()==="")throw Error('Invalid type "'+e+'". The type must be a non-empty string or a Blockly.registry.Type.');if(e=`${e}`.toLowerCase(),typeof t!="string"||t.trim()==="")throw Error('Invalid name "'+t+'". The name must be a non-empty string.');const p=t.toLowerCase();if(!r)throw Error("Can not register a null value");let v=Gi[e],O=kc[e];if(v||(v=Gi[e]=Object.create(null),O=kc[e]=Object.create(null)),a(e,r),!l&&v[p]&&v[p]!==r)throw Error('Name "'+p+'" with type "'+e+'" already registered.');v[p]=r,O[p]=t},a=function(e,t){switch(e){case String(Be.FIELD):if(typeof t.fromJson!="function")throw Error('Type "'+e+'" must have a fromJson function')}},c=function(e,t){e=`${e}`.toLowerCase(),t=t.toLowerCase();const r=Gi[e];r&&r[t]?(delete Gi[e][t],delete kc[e][t]):console.warn("Unable to unregister ["+t+"]["+e+"] from the registry.")},h=function(e,t,r){e=`${e}`.toLowerCase(),t=t.toLowerCase();const l=Gi[e];if(!l||!l[t]){if(t="Unable to find ["+t+"]["+e+"] in the registry.",r)throw Error(t+" You must require or register a "+e+" plugin.");return console.warn(t),null}return l[t]},g=function(e,t){return e=`${e}`.toLowerCase(),t=t.toLowerCase(),(e=Gi[e])?!!e[t]:!1},b=function(e,t,r){return h(e,t,r)},$=function(e,t,r){return h(e,t,r)},y=function(e,t,r){e=`${e}`.toLowerCase();var l=Gi[e];if(!l){if(l=`Unable to find [${e}] in the registry.`,r)throw Error(`${l} You must require or register a ${e} plugin.`);return console.warn(l),null}if(!t)return l;e=kc[e],r=Object.create(null);for(const p of Object.keys(l))r[e[p]]=l[p];return r},w=function(e,t,r){return t=t.plugins[String(e)]||Nr,typeof t=="function"?t:b(e,t,r)},T=function(e,t,r,l){e=e+" was deprecated in "+t+" and will be deleted in "+r+".",l&&(e+=` -Use `+l+" instead."),Wp.has(e)||(Wp.add(e),console.warn(e))},C=function(){return"blockly-"+(ty++).toString(36)},E=function(){return Vm.genUid()},k=function(e){return e.type===fe.BLOCK_CREATE},A=function(e){return e.type===fe.BLOCK_DELETE},P=function(e){return e.type===fe.BLOCK_CHANGE},N=function(e){return e.type===fe.BLOCK_FIELD_INTERMEDIATE_CHANGE},B=function(e){return e.type===fe.BLOCK_MOVE},S=function(e){return e.type===fe.CLICK},H=function(e){return e.type===fe.BUBBLE_OPEN},q=function(e){return e.type===fe.VIEWPORT_CHANGE},s.setRecordUndo$$module$build$src$core$events$utils=function(e){Ec=e},se=function(){return Ec},ee=function(e){Xr.fireInternal(e)},K=function(e){if(te()){if(!Vn.length)try{requestAnimationFrame(()=>{setTimeout(Y,0)})}catch{setTimeout(Y,0)}X(e)}},Y=function(){const e=ce(Vn,!0);Vn.length=0;for(const t of e){if(!t.workspaceId)continue;let r;(r=he(t.workspaceId))==null||r.fireChangeListener(t)}},X=function(e){if(P(e)&&e.element==="mutation"){let t;for(t=Vn.length;0!l.isNull()),t||e.reverse(),e},W=function(){for(let e=0,t;t=Vn[e];e++)t.recordUndo=!1},s.disable$$module$build$src$core$events$utils=function(){$d++},s.enable$$module$build$src$core$events$utils=function(){$d--},te=function(){return $d===0},s.getGroup$$module$build$src$core$events$utils=function(){return Hp},s.setGroup$$module$build$src$core$events$utils=function(e){Xr.setGroupInternal(e)},ke=function(e){Hp=typeof e=="boolean"?e?E():"":e},Z=function(e){const t=[];e=e.getDescendants(!1);for(let r=0,l;l=e[r];r++)t[r]=l.id;return t},ze=function(e,t){const r=Ce(e.type);if(!r)throw Error("Unknown event type.");return r.fromJson(e,t)},Ce=function(e){const t=b(Be.EVENT,e);if(!t)throw Error(`Event type ${e} not found in registry.`);return t},at=function(e){if((B(e)||k(e))&&e.workspaceId){var t=he(e.workspaceId);if(!e.blockId)throw Error("Encountered a blockEvent without a proper blockId");if(e=t.getBlockById(e.blockId)){const r=Ec;try{Ec=!1;const l=e.getParent();if(l&&!l.hasDisabledReason(vd)){const p=e.getDescendants(!1);for(let v=0,O;O=p[v];v++)O.setDisabledReason(!1,vd)}else if((e.outputConnection||e.previousConnection)&&!t.isDragging())do e.setDisabledReason(!0,vd),e=e.getNextBlock();while(e)}finally{Ec=r}}}},he=function(e){return Ic[e]||null},Ae=function(){const e=[];for(const t in Ic)e.push(Ic[t]);return e},de=function(e){Ic[e.id]=e},Se=function(e){delete Ic[e.id]},xe=function(){return Gm},He=function(e){Gm=e},ne=function(){return gi},s.setSelected$$module$build$src$core$common=function(e){if(gi!==e){var t,r,l,p,v,O,G=new(Ce(fe.SELECTED))((l=(t=gi)==null?void 0:t.id)!=null?l:null,(p=e==null?void 0:e.id)!=null?p:null,(O=(v=e==null?void 0:e.workspace.id)!=null?v:(r=gi)==null?void 0:r.workspace.id)!=null?O:"");ee(G);var Ie;(Ie=gi)==null||Ie.unselect(),gi=e;var Qe;(Qe=gi)==null||Qe.select()}},Ke=function(){return ma},Te=function(e){ma=e},Je=function(e){for(;e.options.parentWorkspace;)e=e.options.parentWorkspace;const t=e.getParentSvg(),r=e.getCachedParentSvgSize();var l=t.parentElement;if(l instanceof HTMLElement){var p=l.offsetWidth;l=l.offsetHeight,r.width!==p&&(t.setAttribute("width",p+"px"),e.setCachedParentSvgSize(p,null)),r.height!==l&&(t.setAttribute("height",l+"px"),e.setCachedParentSvgSize(null,l)),e.resize()}},rt=function(e,t){const r=Object.create(null),l=e.getDescendants(!0);t&&(e=e.getNextBlock())&&(e=l.indexOf(e),l.splice(e,l.length-e));for(let p=0,v;v=l[p];p++)r[v.type]?r[v.type]++:r[v.type]=1;return r},ht=function(e){return function(){this.jsonInit(e)}},nt=function(e){Vp.defineBlocksWithJsonArrayInternal(e)},Wt=function(e){s.defineBlocks$$module$build$src$core$common(s.createBlockDefinitionsFromJsonArray$$module$build$src$core$common(e))},s.createBlockDefinitionsFromJsonArray$$module$build$src$core$common=function(e){const t={};for(let r=0;r>>/g,e),Mc="",e=document.createElement("style"),e.id="blockly-common-style",t=document.createTextNode(t),e.appendChild(t),document.head.insertBefore(e,document.head.firstChild)))},re=function(e,t,r){e=document.createElementNS(Nc,`${e}`);for(const l in t)e.setAttribute(l,`${t[l]}`);return r&&r.appendChild(e),e},Fe=function(e,t){return t=t.split(" "),t.every(r=>e.classList.contains(r))?!1:(e.classList.add(...t),!0)},It=function(e,t){e.classList.remove(...t.split(" "))},pt=function(e,t){return t=t.split(" "),t.every(r=>!e.classList.contains(r))?!1:(e.classList.remove(...t),!0)},En=function(e,t){return e.classList.contains(t)},mt=function(e){return e&&e.parentNode?e.parentNode.removeChild(e):null},Cn=function(e,t){const r=t.nextSibling;if(t=t.parentNode,!t)throw Error("Reference node has no parent.");r?t.insertBefore(e,r):t.appendChild(e)},$n=function(e,t){e.style.transform=t,e.style["-webkit-transform"]=t},zn=function(){ng++,Lr||(Lr=Object.create(null))},Jn=function(){ng--,ng||(Lr=null)},Gs=function(e){const t=e.textContent+` -`+e.className.baseVal;let r;if(Lr&&(r=Lr[t]))return r;try{r=e.getComputedTextLength()}catch{return 8*e.textContent.length}return Lr&&(Lr[t]=r),r},ns=function(e,t,r,l){return Rn(e,t+"pt",r,l)},Rn=function(e,t,r,l){const p=e.textContent;e=p+` -`+e.className.baseVal;var v;return Lr&&(v=Lr[e])||(Cd||(v=document.createElement("canvas"),v.className="blocklyComputeCanvas",document.body.appendChild(v),Cd=v.getContext("2d")),Cd.font=r+" "+t+" "+l,v=p?Cd.measureText(p).width:0,Lr&&(Lr[e]=v)),v},Kt=function(e,t,r,l){const p=document.createElement("span");p.style.font=r+" "+t+" "+l,p.textContent=e,e=document.createElement("div"),e.style.width="1px",e.style.height="0",t=document.createElement("div"),t.style.display="flex",t.style.position="fixed",t.style.top="0",t.style.left="0",t.appendChild(p),t.appendChild(e),document.body.appendChild(t),r={height:0,baseline:0};try{t.style.alignItems="baseline",r.baseline=e.offsetTop-p.offsetTop,t.style.alignItems="flex-end",r.height=e.offsetTop-p.offsetTop}finally{document.body.removeChild(t)}return r},Pn=function(e){return Xm.getSizeInternal(e)},cs=function(e){if(jn(e,"display")!=="none")return Ks(e);const t=e.style,r=t.display,l=t.visibility,p=t.position;t.visibility="hidden",t.position="absolute",t.display="inline";const v=e.offsetWidth;return e=e.offsetHeight,t.display=r,t.position=p,t.visibility=l,new Jt(v,e)},Ks=function(e){return new Jt(e.offsetWidth,e.offsetHeight)},jn=function(e,t){return e=window.getComputedStyle(e),e[t]||e.getPropertyValue(t)},Un=function(e){const t=new Le(0,0);e=e.getBoundingClientRect();var r=document.documentElement;return r=new Le(window.pageXOffset||r.scrollLeft,window.pageYOffset||r.scrollTop),t.x=e.left+r.x,t.y=e.top+r.y,t},Rs=function(){const e=document.body,t=document.documentElement;return new Le(e.scrollLeft||t.scrollLeft,e.scrollTop||t.scrollTop)},ii=function(e){const t=parseFloat(jn(e,"borderLeftWidth")),r=parseFloat(jn(e,"borderRightWidth")),l=parseFloat(jn(e,"borderTopWidth"));return e=parseFloat(jn(e,"borderBottomWidth")),new Bt(l,e,t,r)},Ir=function(e,t,r){e=ec(e,t,r),t.scrollLeft=e.x,t.scrollTop=e.y},ec=function(e,t,r){var l=Un(e),p=Un(t),v=ii(t);const O=l.x-p.x-v.left;return l=l.y-p.y-v.top,p=Ks(e),e=t.clientWidth-p.width,p=t.clientHeight-p.height,v=t.scrollLeft,t=t.scrollTop,r?(v+=O-e/2,t+=l-p/2):(v+=Math.min(O,Math.max(O-e,0)),t+=Math.min(l,Math.max(l-p,0))),new Le(v,t)},xr=function(e){const t=new Le(0,0);var r=e.x&&e.getAttribute("x");const l=e.y&&e.getAttribute("y");return r&&(t.x=parseInt(r)),l&&(t.y=parseInt(l)),(r=(r=e.getAttribute("transform"))&&r.match(Zm))&&(t.x+=Number(r[1]),r[3]&&(t.y+=Number(r[3]))),(e=e.getAttribute("style"))&&e.includes("translate")&&(e=e.match(Qm))&&(t.x+=Number(e[1]),e[3]&&(t.y+=Number(e[3]))),t},Ka=function(e){let t=0,r=0;for(;e;){const l=xr(e);if(t+=l.x,r+=l.y,(" "+(e.getAttribute("class")||"")+" ").includes(" injectionDiv "))break;e=e.parentNode}return new Le(t,r)},tc=function(){const e=Rs();return new Bt(e.y,document.documentElement.clientHeight+e.y,e.x,document.documentElement.clientWidth+e.x)},nc=function(){const e=document.documentElement,t=window;return new Le(t.pageXOffset||e.scrollLeft,t.pageYOffset||e.scrollTop)},Tu=function(e,t){var r=t.x;t=t.y;const l=e.getInjectionDiv().getBoundingClientRect();return r=new Le(r-l.left,t-l.top),t=e.getOriginOffsetInPixels(),Le.difference(r,t).scale(1/e.scale)},Yo=function(e,t){var r=t.scale(e.scale);t=r.x,r=r.y;const l=e.getInjectionDiv().getBoundingClientRect();return e=e.getOriginOffsetInPixels(),new Le(t+l.left+e.x,r+l.top+e.y)},z=function(e){({document:Td=Td,DOMParser:Bc=Bc,XMLSerializer:El=El}=e),Sd=new Bc,sg=new El},s.createElement$$module$build$src$core$utils$xml=function(e){return Td.createElementNS(rg,e)},s.createTextNode$$module$build$src$core$utils$xml=function(e){return Td.createTextNode(e)},s.textToDom$$module$build$src$core$utils$xml=function(e){let t=Sd.parseFromString(e,"text/xml");if(t&&t.documentElement&&!t.getElementsByTagName("parsererror").length)return t.documentElement;if((t=Sd.parseFromString(e,"text/html"))&&t.body.firstChild&&t.body.firstChild.nodeName.toLowerCase()==="xml")return t.body.firstChild;throw Error(`DOMParser was unable to parse: ${e}`)},U=function(e){return R(sg.serializeToString(e))},R=function(e){return e.replace(ny,t=>`&#${t.charCodeAt(0)};`)},j=function(e){return e?((e instanceof Element||typeof e=="string")&&(e=Yt(e),e=je(e)),F(e),e):null},F=function(e){const t=e.kind;if(e=e.contents,t&&t!==Il&&t!==kd)throw Error("Invalid toolbox kind "+t+". Please supply either "+Il+" or "+kd);if(!e)throw Error("Toolbox must have a contents attribute.")},pe=function(e){return e?e.contents?e.contents:Array.isArray(e)&&0r.kind.toUpperCase()==="CATEGORY").length},ae=function(e){return e&&e.contents?!!e.contents.filter(function(t){return t.kind.toUpperCase()==="CATEGORY"}).length:!1},je=function(e){const t={contents:it(e)};return e instanceof Node&&Ft(e,t),t},it=function(e){const t=[];let r=e.childNodes;r||(r=e);for(let l=0,p;p=r[l];l++){if(!p.tagName)continue;e={};const v=p.tagName.toUpperCase();e.kind=v,v==="BLOCK"?e.blockxml=p:p.childNodes&&0 document.")}else e instanceof Element&&(t=e);return t},on=function(e,t,r,l,p,v){const O=v.scrollbar&&v.scrollbar.canScrollVertically();return e.horizontal===wa.LEFT?(r=p.absoluteMetrics.left+r,O&&v.RTL&&(r+=Fn.scrollbarThickness)):(r=p.absoluteMetrics.left+p.viewMetrics.width-t.width-r,O&&!v.RTL&&(r-=Fn.scrollbarThickness)),e.vertical===Br.TOP?e=p.absoluteMetrics.top+l:(e=p.absoluteMetrics.top+p.viewMetrics.height-t.height-l,v.scrollbar&&v.scrollbar.canScrollHorizontally()&&(e-=Fn.scrollbarThickness)),new Bt(e,e+t.height,r,r+t.width)},Lt=function(e,t){return{horizontal:t.toolboxMetrics.position===Rt.LEFT||e.horizontalLayout&&!e.RTL?wa.RIGHT:wa.LEFT,vertical:t.toolboxMetrics.position===Rt.BOTTOM?Br.TOP:Br.BOTTOM}},an=function(e,t,r,l){const p=e.left,v=e.right-e.left,O=e.bottom-e.top;for(let G=0;Gv.id!==e.id).map(v=>v.getRelativeToSurfaceXY());for(;ho(Le.sum(r,l),p);)l.translate(t.RTL?-30:30,30);e.moveTo(Le.sum(r,l))},ho=function(e,t){return t.some(r=>1>=Math.abs(r.x-e.x)&&1>=Math.abs(r.y-e.y))},Ts=function(e,t){e.setAttribute(ob,t)},tn=function(e,t,r){Array.isArray(r)&&(r=r.join(" ")),e.setAttribute(ib+t,`${r}`)},qs=function(e){return e.saveState!==void 0&&e.loadState!==void 0},Oi=function(e){return Zo(e),po()?(Ri(),Promise.resolve()):(xl||(xl=new Promise(t=>{hg=t,ab=window.requestAnimationFrame(()=>{Ri(),t()})})),xl)},rs=function(){return xl||Promise.resolve()},Ms=function(e){e||window.cancelAnimationFrame(ab),Ri(e),!e&&hg&&hg()},po=function(){return Ym},Zo=function(e){dg.add(e),sr.set(e,s.getGroup$$module$build$src$core$events$utils());const t=e.getParent();t?Zo(t):Ad.add(e)},Ri=function(e){const t=e?new Set([e]):new Set([...Ad].map(v=>v.workspace)),r=[...Ad].filter(fo).filter(v=>t.has(v.workspace));for(var l of r)oi(l);for(const v of t)v.resizeContents();for(var p of r)l=p.getRelativeToSurfaceXY(),p.updateComponentLocations(l);for(const v of r)p=s.getGroup$$module$build$src$core$events$utils(),(l=sr.get(v))&&s.setGroup$$module$build$src$core$events$utils(l),v.bumpNeighbours(),s.setGroup$$module$build$src$core$events$utils(p);for(const v of r)go(v);e||(xl=null)},go=function(e){Ad.delete(e),dg.delete(e),sr.delete(e);for(const t of e.getChildren(!1))go(t)},fo=function(e){return!e.isDisposed()&&!e.getParent()},oi=function(e){if(dg.has(e)&&e.initialized){for(const t of e.getChildren(!1))oi(t);e.renderEfficiently()}},Mi=function(e,t){lb(e,t)},ku=function(e){lb=e},Ja=function(e,t){db.confirmInternal(e,t)},Qo=function(e,t){cb(e,t)},Nh=function(e){cb=e},sc=function(e,t,r){ub(e,t,r)},Xf=function(e){ub=e},ea=function(e){return e.getProcedureDef!==void 0},Lh=function(e){return e.getProcedureCall!==void 0&&e.renameProcedure!==void 0},Eu=function(e){return e.getVariableModel!==void 0},s.allUsedVarModels$$module$build$src$core$variables=function(e){e=e.getAllBlocks(!1);const t=new Set;for(let r=0;r1'),l.appendChild(r),t.push(l)),tr.variables_get){e.sort(Uc.compareByName);for(let p=0,v;v=e[p];p++)r=s.createElement$$module$build$src$core$utils$xml("block"),r.setAttribute("type","variables_get"),r.setAttribute("gap","8"),r.appendChild(ta(v)),t.push(r)}}return t},Ph=function(e){return pb.generateUniqueNameInternal(e)},Zf=function(e){return ic(mg.charAt(0),e.getAllVariableNames())},ic=function(e,t){if(!t.length)return e;const r=mg;let l="",p=r.indexOf(e);for(;;){let v=!1;for(let O=0;Ov.getVariableModel().name);if(l&&(r=l.some(v=>v.toLowerCase()===e),l=l.some(v=>v.toLowerCase()===t),r&&l))return p.getName()}return null},tm=function(e,t,r){e=e.toLowerCase(),t=t.toLowerCase(),r=r.getAllBlocks(!1);for(const p of r){if(!ea(p))continue;r=p.getProcedureDef();var l=r[1];const v=l.some(O=>O.toLowerCase()===e);if(l=l.some(O=>O.toLowerCase()===t),v&&l)return r[0]}return null},ta=function(e){const t=s.createElement$$module$build$src$core$utils$xml("field");return t.setAttribute("name","VAR"),t.setAttribute("id",e.getId()),t.setAttribute("variabletype",e.type),e=s.createTextNode$$module$build$src$core$utils$xml(e.name),t.appendChild(e),t},s.getOrCreateVariablePackage$$module$build$src$core$variables=function(e,t,r,l){let p=s.getVariable$$module$build$src$core$variables(e,t,r,l);return p||(p=nm(e,t,r,l)),p},s.getVariable$$module$build$src$core$variables=function(e,t,r,l){const p=e.getPotentialVariableMap();let v=null;if(t&&(v=e.getVariableById(t),!v&&p&&(v=p.getVariableById(t)),v))return v;if(r){if(l===void 0)throw Error("Tried to look up a variable by name without a type");v=e.getVariable(r,l),!v&&p&&(v=p.getVariable(r,l))}return v},nm=function(e,t,r,l){const p=e.getPotentialVariableMap();return r||(r=Ph(e.isFlyout?e.targetWorkspace:e)),p?p.createVariable(r,l,t):e.createVariable(r,l,t)},ac=function(e,t){e=e.getAllVariables();const r=[];if(t.length!==e.length)for(let l=0;l{Ie.disposed||Ie.setConnectionTracking(!0)},1)}return G},lc=function(e,t,{parentConnection:r,isShadow:l=!1}={}){if(!e.type)throw new gb(e);const p=t.newBlock(e.type,e.id);return p.setShadow(l),Fh(p,e),Du(p,e),hr(p,e),zh(r,p,e),Uh(p,e),Wh(p,e),Hh(p,e),Vh(p,e),Ys(p,t.rendered),p},mo=function(e,t){if(te())for(e=ac(e,t),t=0;tt&&(t=r[l].length);var p=-1/0;let v,O=1;do{l=p,v=e,e=[],p=r.length/O;let G=1;for(let Ie=0;Iel);return v},nl=function(e,t,r){const l=[0],p=[];for(var v=0;vl&&(l=G,p=O)}return p?ra(e,p,r):t},Xh=function(e,t){const r=[];for(let l=0;lSb&&Li()}else Ml!==mr&&(clearTimeout(Ia),_g=e.pageX,wg=e.pageY,Ia=setTimeout(fm,Tb))},il=function(){Ml=mr=null,Li()},Li=function(){Kc&&(Kc=!1,es&&(es.style.display="none")),Ia&&(clearTimeout(Ia),Ia=0)},tp=function(){Li(),Rl=!0},np=function(){Rl=!1},ia=function(){es&&mr&&(typeof Md=="function"?Md(es,mr):Ar())},Ar=function(){var e=sl(mr);e=s.wrap$$module$build$src$core$utils$string(e,wb),e=e.split(` -`);for(let t=0;tr+window.scrollY&&(p-=es.offsetHeight+2*Sg),e?l=Math.max(xa-window.scrollX,l):l+es.offsetWidth>t+window.scrollX-2*xa&&(l=t-es.offsetWidth-2*xa),{x:l,y:p}},fm=function(){if(!Rl&&(Ml=mr,es)){es.textContent="",ia();var e=mr.RTL;es.style.direction=e?"rtl":"ltr",es.style.display="block",Kc=!0;var{x:t,y:r}=sp(e);es.style.left=t+"px",es.style.top=r+"px"}},rp=function(){return Tg},mm=function(e){Tg=e},ip=function(){return kg},bm=function(e){kg=e},Or=function(e){e=`${e}`.toLowerCase().trim();var t=kb[e];if(t||(t=e.substring(0,2)==="0x"?"#"+e.substring(2):e,t=t[0]==="#"?t:"#"+t,/^#[0-9a-f]{6}$/.test(t)))return t;if(/^#[0-9a-f]{3}$/.test(t))return["#",t[1],t[1],t[2],t[2],t[3],t[3]].join("");var r=e.match(/^(?:rgb)?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);return r&&(e=Number(r[1]),t=Number(r[2]),r=Number(r[3]),0<=e&&256>e&&0<=t&&256>t&&0<=r&&256>r)?ie(e,t,r):null},ie=function(e,t,r){return t=e<<16|t<<8|r,16>e?"#"+(16777216|t).toString(16).substr(1):"#"+t.toString(16)},De=function(e){return e=Or(e),e?(e=parseInt(e.substr(1),16),[e>>16,e>>8&255,e&255]):[0,0,0]},be=function(e,t,r){let l=0,p=0,v=0;if(t===0)v=p=l=r;else{const O=Math.floor(e/60),G=e/60-O;e=r*(1-t);const Ie=r*(1-t*G);switch(t=r*(1-t*(1-G)),O){case 1:l=Ie,p=r,v=e;break;case 2:l=e,p=r,v=t;break;case 3:l=e,p=Ie,v=r;break;case 4:l=t,p=e,v=r;break;case 5:l=r,p=e,v=Ie;break;case 6:case 0:l=r,p=t,v=e}}return ie(Math.floor(l),Math.floor(p),Math.floor(v))},et=function(e,t,r){return e=Or(e),!e||(t=Or(t),!t)?null:(e=De(e),t=De(t),ie(Math.round(t[0]+r*(e[0]-t[0])),Math.round(t[1]+r*(e[1]-t[1])),Math.round(t[2]+r*(e[2]-t[2]))))},xt=function(e){return be(e,Tg,255*kg)},rn=function(e,t,r){const l=[];var p=e.split("");p.push("");var v=0;e=[];let O=null;for(let Qe=0;Qe=G?(v=2,O=G,(G=e.join(""))&&l.push(G),e.length=0):G==="{"?v=3:(e.push("%",G),v=0);else if(v===2)if("0"<=G&&"9">=G)O+=G;else{var Ie=void 0;l.push(parseInt((Ie=O)!=null?Ie:"",10)),Qe--,v=0}else v===3&&(G===""?(e.splice(0,0,"%{"),Qe--,v=0):G!=="}"?e.push(G):(v=e.join(""),/[A-Z]\w*/i.test(v)?(G=v.toUpperCase(),(G=G.startsWith("BKY_")?G.substring(4):null)&&G in s.Msg$$module$build$src$core$msg?(v=s.Msg$$module$build$src$core$msg[G],typeof v=="string"?Array.prototype.push.apply(l,rn(v,t,r)):t?l.push(`${v}`):l.push(v)):l.push("%{"+v+"}")):l.push("%{"+v+"}"),v=e.length=0))}for((t=e.join(""))&&l.push(t),Ie=[],e.length=0,p=0;p=r)return{hue:r,hex:be(r,rp(),255*ip())};if(r=Or(t))return{hue:null,hex:r};throw r='Invalid colour: "'+t+'"',e!==t&&(r+=' (from "'+e+'")'),Error(r)},us=function(){return $r},pc=function(e){if($r=e,e===null){let t;(t=document.querySelector("."+Nd))==null||t.remove()}},op=function(){const e=Ke()||document.body;document.querySelector("."+Nd)?$r=document.querySelector("."+Nd):($r=document.createElement("div"),$r.className=Nd),e.appendChild($r)},Bi=function(e,t,r,l){if(Pi(),Nl=e,Da=r,r=$r){if(r.style.direction=t?"rtl":"ltr",r.style.display="block",!l&&e instanceof vn){let O;l=(O=e.getSourceBlock())==null?void 0:O.workspace}var p;Eg=(p=l)!=null?p:null;var v;e=(v=l)!=null?v:xe(),Aa=e.getRenderer().getClassName(),Oa=e.getTheme().getClassName(),Aa&&Fe(r,Aa),Oa&&Fe(r,Oa)}},Pi=function(){if(al()){Nl=null;var e=$r;e&&(e.style.display="none",e.style.left="",e.style.top="",Da&&Da(),Da=null,e.textContent="",Aa&&(pt(e,Aa),Aa=""),Oa&&(pt(e,Oa),Oa=""),xe().markFocused())}},al=function(){return!!Nl},nn=function(e){Nl===e&&Pi()},gc=function(e){Eg!==null&&Eg!==e||Pi()},Pu=function(e,t,r){$r.style.left=e+"px",$r.style.top=t+"px",$r.style.height=r+"px"},ll=function(e,t,r,l){const p=vm(e,t,r);e=$m(e,t,r,l),0>p?Pu(e,0,r.height+p):Pu(e,p,r.height)},$m=function(e,t,r,l){return l?Math.min(Math.max(t.right-r.width,e.left),e.right-r.width):Math.max(Math.min(t.left,e.right-r.width),e.left)},vm=function(e,t,r){return t.bottom+r.height>=e.bottom?t.top-r.height:t.bottom},ym=function(e){return!(e==null||!e.repositionForWindowResize)},cl=function(){ym(Nl)&&Nl.repositionForWindowResize()||Pi()},ji=function(){return qc},ul=function(e){qc=e},dl=function(e,t,r,l){if(Bi(Ig,r,oa,l),t.length){var p=fc(t,r,e);Yc=p,ap(p,e,r),setTimeout(function(){p.focus()},1),qc=null}else hl()},fc=function(e,t,r){const l=new ug;l.setRole(Pr.MENU);for(let p=0;p{setTimeout(()=>{v.callback(v.scope,r)},0)})},{})}return l},ap=function(e,t,r){const l=tc();t=new Bt(t.clientY+l.top,t.clientY+l.top,t.clientX+l.left,t.clientX+l.left),lp(e);const p=e.getSize();r&&(t.left+=p.width,t.right+=p.width,l.left+=p.width,l.right+=p.width),ll(l,t,p,r),e.focus()},lp=function(e){var t=us();if(!t)throw Error("Attempting to create a context menu when widget div is null");t=e.render(t),Fe(t,"blocklyContextMenu"),Ue(t,"contextmenu",null,mc),e.focus()},mc=function(e){e.preventDefault(),e.stopPropagation()},hl=function(){nn(Ig),qc=null},oa=function(){Yc&&(Yc.dispose(),Yc=null)},s.callbackFactory$$module$build$src$core$contextmenu=function(e,t){return()=>{s.disable$$module$build$src$core$events$utils();let r;try{r=t instanceof Element?yo(t,e.workspace):Wn(t,e.workspace);const l=e.getRelativeToSurfaceXY();l.x=e.RTL?l.x-s.config$$module$build$src$core$config.snapRadius:l.x+s.config$$module$build$src$core$config.snapRadius,l.y+=2*s.config$$module$build$src$core$config.snapRadius,r.moveBy(l.x,l.y)}finally{s.enable$$module$build$src$core$events$utils()}return te()&&!r.isShadow()&&ee(new(Ce(fe.BLOCK_CREATE))(r)),s.setSelected$$module$build$src$core$common(r),r}},Fi=function(e,t){return t=me(t,e.getParentSvg(),e.getInverseScreenCTM()),t.x/=e.scale,t.y/=e.scale,t},aa=function(e,t,r){t=Fi(e,t),Ib.set(e,Le.difference(r,t))},ju=function(e,t){if(t=Fi(e,t),e=Ib.get(e),!e)throw Error("Drag not initialized");return Le.sum(e,t)},_m=function(e,t=!1){const r=s.createElement$$module$build$src$core$utils$xml("xml");var l=pl(s.allUsedVarModels$$module$build$src$core$variables(e));l.hasChildNodes()&&r.appendChild(l);for(const p of e.getTopComments())r.appendChild(bc(p,t));for(e=e.getTopBlocks(!0),l=0;l/g,"<$1$2>")},Xn=function(e){e=ci(e).split("<");let t="";for(let r=1;r"&&(t+=" ")}return e=e.join(` -`),e=e.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1"),e.replace(/^\n/,"")},fs=function(e,t){return t.setResizesEnabled(!1),t.clear(),e=s.domToWorkspace$$module$build$src$core$xml(e,t),t.setResizesEnabled(!0),e},s.domToWorkspace$$module$build$src$core$xml=function(e,t){let r=0;t.RTL&&(r=t.getWidth());const l=[];zn();const p=s.getGroup$$module$build$src$core$events$utils();p||s.setGroup$$module$build$src$core$events$utils(!0),t.setResizesEnabled&&t.setResizesEnabled(!1);let v=!0;try{for(let O=0,G;G=e.childNodes[O];O++){const Ie=G.nodeName.toLowerCase(),Qe=G;if(Ie==="block"||Ie==="shadow"&&!se()){const Mn=yo(Qe,t);l.push(Mn.id);let On;const Vr=parseInt((On=Qe.getAttribute("x"))!=null?On:"10",10);let uh;const tf=parseInt((uh=Qe.getAttribute("y"))!=null?uh:"10",10);isNaN(Vr)||isNaN(tf)||Mn.moveBy(t.RTL?r-Vr:Vr,tf,["create"]),v=!1}else{if(Ie==="shadow")throw TypeError("Shadow block cannot be a top-level block.");if(Ie==="comment")up(Qe,t);else if(Ie==="variables"){if(v)dp(Qe,t);else throw Error("'variables' tag must exist once before block and shadow tag elements in the workspace XML, but it was found in another location.");v=!1}}}}finally{s.setGroup$$module$build$src$core$events$utils(p),t.setResizesEnabled&&t.setResizesEnabled(!0),t.rendered&&Ms(),Jn()}return ee(new(Ce(fe.FINISHED_LOADING))(t)),l},up=function(e,t){var r;const l=(r=e.getAttribute("id"))!=null?r:void 0;r=t.rendered?new Pd(t,l):new Xc(t,l);var p;r.setText((p=e.textContent)!=null?p:"");var v;p=parseInt((v=e.getAttribute("x"))!=null?v:"",10);let O;v=parseInt((O=e.getAttribute("y"))!=null?O:"",10),isNaN(p)||isNaN(v)||(p=t.RTL?t.getWidth()-p:p,r.moveTo(new Le(p,v)));var G;t=parseInt((G=e.getAttribute("w"))!=null?G:"",10);let Ie;return G=parseInt((Ie=e.getAttribute("h"))!=null?Ie:"",10),isNaN(t)||isNaN(G)||r.setSize(new Jt(t,G)),e.getAttribute("collapsed")==="true"&&r.setCollapsed(!0),e.getAttribute("editable")==="false"&&r.setEditable(!1),e.getAttribute("movable")==="false"&&r.setMovable(!1),e.getAttribute("deletable")==="false"&&r.setDeletable(!1),r},Cm=function(e,t){if(!t.getBlocksBoundingBox)return s.domToWorkspace$$module$build$src$core$xml(e,t);var r=t.getBlocksBoundingBox();if(e=s.domToWorkspace$$module$build$src$core$xml(e,t),r&&r.top!==r.bottom){var l=r.bottom;r=t.RTL?r.right:r.left;var p=1/0;let v=-1/0,O=1/0;for(let G=0;Gv&&(v=Ie.x)}for(l=l-O+10,r=t.RTL?r-v:r-p,p=0;pQe.setBubbleVisible(v),1)}},la=function(e,t){for(let r=0;rp}),ml(p,{x:l.x,y:l.y,width:e.width,height:e.height},t.RTL,new Date)}},ml=function(e,t,r,l){const p=(new Date().getTime()-l.getTime())/150;1r)){var l=t.getSvgXY(e.getSvgRoot());e.outputConnection?(l.x+=(e.RTL?3:-3)*r,l.y+=13*r):e.previousConnection&&(l.x+=(e.RTL?-23:23)*r,l.y+=3*r);var p=re(oe.CIRCLE,{cx:l.x,cy:l.y,r:0,fill:"none",stroke:"#888","stroke-width":10},t.getParentSvg());e=re(oe.ANIMATE,{id:"animationCircle",begin:"indefinite",attributeName:"r",dur:"150ms",from:0,to:25*r},p),t=re(oe.ANIMATE,{id:"animationOpacity",begin:"indefinite",attributeName:"opacity",dur:"150ms",from:1,to:0},p),e.beginElement(),t.beginElement(),setTimeout(()=>void mt(p),150)}},Vu=function(e){if(qr(),e.workspace.getAudioManager().play("disconnect"),!(1>e.workspace.scale)){var t=e.getHeightWidth().height;t=Math.atan(10/t)/Math.PI*180,e.RTL||(t*=-1),Zc=e,M(e,t,new Date,0)}},M=function(e,t,r,l){const p=[.66,1,.66,0,-.66,-1,-.66,0];let v="";r.getTime()+200>new Date().getTime()&&(v=`skewX(${Math.round(p[l%p.length]*t)})`,jd=setTimeout(M,15,e,t,r,l+1)),e.getSvgRoot().setAttribute("transform",`${e.getTranslation()} ${v}`)},qr=function(){Zc&&(jd&&(clearTimeout(jd),jd=null),Zc.getSvgRoot().setAttribute("transform",Zc.getTranslation()),Zc=null)},ui=function(e){return e.getRelativeToSurfaceXY!==void 0&&e.isMovable!==void 0&&e.startDrag!==void 0&&e.drag!==void 0&&e.endDrag!==void 0&&e.revertDrag!==void 0},Zn=function(e,t){for(const r in t)e[r]=t[r]!==null&&typeof t[r]=="object"?Zn(e[r]||Object.create(null),t[r]):t[r];return e},Ot=function(e,t){i(Be.FIELD,e,t)},km=function(e){c(Be.FIELD,e)},s.fromJson$$module$build$src$core$field_registry=function(e){return Ab.fromJsonInternal(e)},Em=function(e){const t=$(Be.FIELD,e.type);return t?t.fromJson(e):(console.warn("Blockly could not create a field of type "+e.type+". The field is probably not being registered. This could be because the file is not loaded, the field does not register itself (Issue #1584), or the registration is not being reached."),null)},s.register$$module$build$src$core$extensions=function(e,t){if(typeof e!="string"||e.trim()==="")throw Error('Error: Invalid extension name "'+e+'"');if(Tn[e])throw Error('Error: Extension "'+e+'" is already registered.');if(typeof t!="function")throw Error('Error: Extension "'+e+'" must be a function');Tn[e]=t},s.registerMixin$$module$build$src$core$extensions=function(e,t){if(!t||typeof t!="object")throw Error('Error: Mixin "'+e+'" must be a object');s.register$$module$build$src$core$extensions(e,function(){this.mixin(t)})},s.registerMutator$$module$build$src$core$extensions=function(e,t,r,l){const p='Error when registering mutator "'+e+'": ';gp(p,t);const v=pp(t,p);if(r&&typeof r!="function")throw Error(p+'Extension "'+e+'" is not a function');s.register$$module$build$src$core$extensions(e,function(){v&&this.setMutator(new s.MutatorIcon$$module$build$src$core$icons$mutator_icon(l||[],this)),this.mixin(t),r&&r.apply(this)})},Im=function(e){Ui(e)?delete Tn[e]:console.warn('No extension mapping for name "'+e+'" found to unregister')},Ui=function(e){return!!Tn[e]},Gu=function(e,t,r){const l=Tn[e];if(typeof l!="function")throw Error('Error: Extension "'+e+'" not found.');let p;if(r?xm(e,t):p=Ku(t),l.apply(t),r)gp('Error after applying mutator "'+e+'": ',t);else if(!Om(p,t))throw Error('Error when applying extension "'+e+'": mutation properties changed when applying a non-mutator extension.')},xm=function(e,t){if(Ku(t).length)throw Error('Error: tried to apply mutation "'+e+'" to a block that already has mutator functions. Block id: '+t.id)},Dm=function(e,t){return Rr(e.mutationToDom,e.domToMutation,t+" mutationToDom/domToMutation")},Am=function(e,t){return Rr(e.saveExtraState,e.loadExtraState,t+" saveExtraState/loadExtraState")},pp=function(e,t){return Rr(e.compose,e.decompose,t+" compose/decompose")},Rr=function(e,t,r){if(e&&t){if(typeof e!="function"||typeof t!="function")throw Error(r+" must be a function");return!0}if(!e&&!t)return!1;throw Error(r+"Must have both or neither functions")},gp=function(e,t){const r=Dm(t,e),l=Am(t,e);if(!r&&!l)throw Error(e+"Mutations must contain either XML hooks, or JSON hooks, or both");pp(t,e)},Ku=function(e){const t=[];return e.domToMutation!==void 0&&t.push(e.domToMutation),e.mutationToDom!==void 0&&t.push(e.mutationToDom),e.saveExtraState!==void 0&&t.push(e.saveExtraState),e.loadExtraState!==void 0&&t.push(e.loadExtraState),e.compose!==void 0&&t.push(e.compose),e.decompose!==void 0&&t.push(e.decompose),t},Om=function(e,t){if(t=Ku(t),t.length!==e.length)return!1;for(let r=0;r!l.getReturnTypes()).map(l=>[l.getName(),l.getParameters().map(p=>p.getName()),!1]);e.getBlocksByType("procedures_defnoreturn",!1).forEach(l=>{!wo(l)&&ea(l)&&t.push(l.getProcedureDef())});const r=e.getProcedureMap().getProcedures().filter(l=>!!l.getReturnTypes()).map(l=>[l.getName(),l.getParameters().map(p=>p.getName()),!0]);return e.getBlocksByType("procedures_defreturn",!1).forEach(l=>{!wo(l)&&ea(l)&&r.push(l.getProcedureDef())}),t.sort(fp),r.sort(fp),[t,r]},fp=function(e,t){return e[0].localeCompare(t[0],void 0,{sensitivity:"base"})},s.findLegalName$$module$build$src$core$procedures=function(e,t){if(t.isInFlyout)return e;for(e=e||s.Msg$$module$build$src$core$msg.UNNAMED_KEY||"unnamed";!mp(e,t.workspace,t);){const r=e.match(/^(.*?)(\d+)$/);e=r?r[1]+(parseInt(r[2])+1):e+"2"}return e},mp=function(e,t,r){return!Yu(e,t,r)},Yu=function(e,t,r){for(const l of t.getAllBlocks(!1))if(l!==r&&ea(l)&&s.Names$$module$build$src$core$names.equals(l.getProcedureDef()[0],e))return!0;r=r&&wo(r)?r==null?void 0:r.getProcedureModel():void 0;for(const l of t.getProcedureMap().getProcedures())if(l!==r&&s.Names$$module$build$src$core$names.equals(l.getName(),e))return!0;return!1},s.rename$$module$build$src$core$procedures=function(e){var t=this.getSourceBlock();if(!t)throw new Gn;e=e.trim();const r=s.findLegalName$$module$build$src$core$procedures(e,t);wo(t)&&!t.isInsertionMarker()&&t.getProcedureModel().setName(r);const l=this.getValue();if(l!==e&&l!==r)for(e=t.workspace.getAllBlocks(!1),t=0;tLm(r,e)||Lh(r)&&s.Names$$module$build$src$core$names.equals(r.getProcedureCall(),e))},Lm=function(e,t){return wo(e)&&!e.isProcedureDef()&&e.getProcedureModel()&&s.Names$$module$build$src$core$names.equals(e.getProcedureModel().getName(),t)},s.mutateCallers$$module$build$src$core$procedures=function(e){const t=se();var r=e.getProcedureDef()[0];const l=e.mutationToDom(!0);e=$l(r,e.workspace);for(let v=0,O;O=e[v];v++){r=(r=O.mutationToDom())&&U(r),O.domToMutation&&O.domToMutation(l);var p=O.mutationToDom();p=p&&U(p),r!==p&&(s.setRecordUndo$$module$build$src$core$events$utils(!1),ee(new(Ce(fe.BLOCK_CHANGE))(O,"mutation",null,r,p)),s.setRecordUndo$$module$build$src$core$events$utils(t))}},s.getDefinition$$module$build$src$core$procedures=function(e,t){for(const r of t.getAllBlocks(!1))if(wo(r)&&r.isProcedureDef()&&s.Names$$module$build$src$core$names.equals(r.getProcedureModel().getName(),e)||ea(r)&&s.Names$$module$build$src$core$names.equals(r.getProcedureDef()[0],e))return r;return null},yc=function(e){return e.isDynamic},Bm=function(e){return e.pathDown!==void 0&&e.pathUp!==void 0},pi=function(e){return e.pathLeft!==void 0&&e.pathRight!==void 0},Zu=function(e,t){if(!e||!t)throw Error("Cannot connect null connections.");e.targetConnection=t,t.targetConnection=e},Co=function(e,t){let r=null;t=t.outputConnection;const l=t==null?void 0:t.getConnectionChecker();for(let p=0,v;v=e.inputList[p];p++){const O=v.connection;let G;if(O&&((G=l)!=null&&G.canConnect(t,O,!1))){if(r)return null;r=O}}return r},gr=function(e,t){let r;for(;r=Co(e,t);)if(e=r.targetBlock(),!e||e.isShadow())return r;return null},$p=function(e){return e.getType!==void 0&&e.initView!==void 0&&e.dispose!==void 0&&e.getWeight!==void 0&&e.getSize!==void 0&&e.applyColour!==void 0&&e.hideForInsertionMarker!==void 0&&e.updateEditable!==void 0&&e.updateCollapsed!==void 0&&e.isShownWhenCollapsed!==void 0&&e.setOffsetInBlock!==void 0&&e.onLocationChange!==void 0&&e.onClick!==void 0},vp=function(e){return $p(e)&&Ya(e)&&qs(e)&&e.setText!==void 0&&e.getText!==void 0&&e.setBubbleSize!==void 0&&e.getBubbleSize!==void 0&&e.getType()===Qn.COMMENT},vl=function(e){let t=e.outputConnection;return(!t||e.previousConnection&&e.previousConnection.isConnected())&&(t=e.previousConnection),t},Wi=function(e,t){i(Be.RENDERER,e,t)},Hi=function(e){c(Be.RENDERER,e)},Qu=function(e,t,r){return e=new(b(Be.RENDERER,e))(e),e.init(t,r),e},yp=function(e){qa(e.getTargetWorkspace(),void 0,"String")},yl=function(e){qa(e.getTargetWorkspace(),void 0,"Number")},_p=function(e){qa(e.getTargetWorkspace(),void 0,"Colour")},_c=function(e){let t=[],r=document.createElement("button");return r.setAttribute("text",s.Msg$$module$build$src$core$msg.NEW_STRING_VARIABLE),r.setAttribute("callbackKey","CREATE_VARIABLE_STRING"),t.push(r),r=document.createElement("button"),r.setAttribute("text",s.Msg$$module$build$src$core$msg.NEW_NUMBER_VARIABLE),r.setAttribute("callbackKey","CREATE_VARIABLE_NUMBER"),t.push(r),r=document.createElement("button"),r.setAttribute("text",s.Msg$$module$build$src$core$msg.NEW_COLOUR_VARIABLE),r.setAttribute("callbackKey","CREATE_VARIABLE_COLOUR"),t.push(r),e.registerButtonCallback("CREATE_VARIABLE_STRING",yp),e.registerButtonCallback("CREATE_VARIABLE_NUMBER",yl),e.registerButtonCallback("CREATE_VARIABLE_COLOUR",_p),e=os(e),t=t.concat(e)},os=function(e){e=e.getAllVariables();const t=[];if(0G.id!=e.id).map(G=>G.getRelativeToSurfaceXY());for(;wp(Le.sum(t,v),O)||Yr(e,Le.sum(p,v),l);)r.RTL?v.translate(-l,2*l):v.translate(l,2*l);e.moveTo(Le.sum(t,v))},wp=function(e,t){return t.some(r=>1>=Math.abs(r.x-e.x)&&1>=Math.abs(r.y-e.y))},Yr=function(e,t,r){return e.getConnections_(!1).some(l=>!!l.closest(r,t).connection)},So=function(e,t,r){const l=r.getBoundingRectangle(),p=l.right-l.left,v=na(t.top,l.top,t.top+t.height-(l.bottom-l.top))-l.top;let O=t.left;return t=t.left+t.width-p,e.RTL?O=Math.min(t,O):t=Math.max(O,t),(e=na(O,l.left,t)-l.left)||v?(r.moveBy(e,v,["inbounds"]),!0):!1},_l=function(e){return t=>{var r=e.getMetricsManager();if(r.hasFixedEdges()&&!e.isDragging()){var l;if(Up.includes((l=t.type)!=null?l:"")){l=r.getScrollMetrics(!0);const p=To(e,t);p&&(r=s.getGroup$$module$build$src$core$events$utils()||!1,s.setGroup$$module$build$src$core$events$utils(t.group),So(e,l,p)&&!t.group&&console.warn("Moved object in bounds but there was no event group. This may break undo."),s.setGroup$$module$build$src$core$events$utils(r))}else q(t)&&t.scale&&t.oldScale&&t.scale>t.oldScale&&wc(e)}}},To=function(e,t){let r=null;switch(t.type){case fe.BLOCK_CREATE:case fe.BLOCK_MOVE:(r=e.getBlockById(t.blockId))&&(r=r.getRootBlock());break;case fe.COMMENT_CREATE:case fe.COMMENT_MOVE:case fe.COMMENT_RESIZE:r=e.getCommentById(t.commentId)}return r},wc=function(e){var t=e.getMetricsManager();if(t.hasFixedEdges()&&!e.isDragging()){t=t.getScrollMetrics(!0);var r=e.getTopBoundedElements();for(let l=0,p;p=r[l];l++)So(e,t,p)}},Dn=function(e){return e.isDeletable!==void 0&&e.dispose!==void 0&&e.setDeleteStyle!==void 0},td=function(e){const t=e.toCopyData();Ds=t;let r;return cu=(r=e.workspace)!=null?r:null,t},ko=function(e,t,r){return e&&t?Cp(e,t,r):Ds&&cu?Cp(Ds,cu):null},Cp=function(e,t,r){let l;t=t.isMutator?t:(l=t.getRootWorkspace())!=null?l:t;let p,v;return(v=(p=$(Be.PASTER,e.paster,!1))==null?void 0:p.paste(e,t,r))!=null?v:null},Pm=function(e){const t=e.toCopyData();return t?ko(t,e.workspace):null},da=function(e){return e.toCopyData!==void 0},Sp=function(){un.registry.register({name:_i.ESCAPE,preconditionFn(e){return!e.options.readOnly},callback(e){return e.hideChaff(),!0},keyCodes:[Vt.ESC]})},ha=function(){un.registry.register({name:_i.DELETE,preconditionFn(e){const t=ne();return!e.options.readOnly&&t!=null&&Dn(t)&&t.isDeletable()&&!Qi.inProgress()},callback(e,t){return t.preventDefault(),e=ne(),e instanceof Ur?e.checkAndDelete():Dn(e)&&e.isDeletable()&&(s.setGroup$$module$build$src$core$events$utils(!0),e.dispose(),s.setGroup$$module$build$src$core$events$utils(!1)),!0},keyCodes:[Vt.DELETE,Vt.BACKSPACE]})},nd=function(){const e=un.registry.createSerializedKey(Vt.C,[Vt.CTRL]),t=un.registry.createSerializedKey(Vt.C,[Vt.ALT]),r=un.registry.createSerializedKey(Vt.C,[Vt.META]);un.registry.register({name:_i.COPY,preconditionFn(l){const p=ne();return!l.options.readOnly&&!Qi.inProgress()&&p!=null&&Dn(p)&&p.isDeletable()&&ui(p)&&p.isMovable()&&da(p)},callback(l,p){return p.preventDefault(),l.hideChaff(),p=ne(),!p||!da(p)?!1:(Bo=p.toCopyData(),wi=p.workspace instanceof Cr?p.workspace:l,Vl=ui(p)?p.getRelativeToSurfaceXY():null,!!Bo)},keyCodes:[e,t,r]})},Tp=function(){const e=un.registry.createSerializedKey(Vt.X,[Vt.CTRL]),t=un.registry.createSerializedKey(Vt.X,[Vt.ALT]),r=un.registry.createSerializedKey(Vt.X,[Vt.META]);un.registry.register({name:_i.CUT,preconditionFn(l){const p=ne();return!l.options.readOnly&&!Qi.inProgress()&&p!=null&&Dn(p)&&p.isDeletable()&&ui(p)&&p.isMovable()&&!p.workspace.isFlyout},callback(l){const p=ne();return p instanceof Ur?(Bo=p.toCopyData(),wi=l,Vl=p.getRelativeToSurfaceXY(),p.checkAndDelete(),!0):Dn(p)&&p.isDeletable()&&da(p)?(Bo=p.toCopyData(),wi=l,Vl=ui(p)?p.getRelativeToSurfaceXY():null,p.dispose(),!0):!1},keyCodes:[e,t,r]})},kp=function(){const e=un.registry.createSerializedKey(Vt.V,[Vt.CTRL]),t=un.registry.createSerializedKey(Vt.V,[Vt.ALT]),r=un.registry.createSerializedKey(Vt.V,[Vt.META]);un.registry.register({name:_i.PASTE,preconditionFn(l){return!l.options.readOnly&&!Qi.inProgress()},callback(){if(!Bo||!wi)return!1;if(!Vl)return!!ko(Bo,wi);const{left:l,top:p,width:v,height:O}=wi.getMetricsManager().getViewMetrics(!0);if(new Bt(p,p+O,l,l+v).contains(Vl.x,Vl.y))return!!ko(Bo,wi);const G=new Le(l+v/2,p+O/2);return!!ko(Bo,wi,G)},keyCodes:[e,t,r]})},pa=function(){const e=un.registry.createSerializedKey(Vt.Z,[Vt.CTRL]),t=un.registry.createSerializedKey(Vt.Z,[Vt.ALT]),r=un.registry.createSerializedKey(Vt.Z,[Vt.META]);un.registry.register({name:_i.UNDO,preconditionFn(l){return!l.options.readOnly&&!Qi.inProgress()},callback(l,p){return l.hideChaff(),l.undo(!1),p.preventDefault(),!0},keyCodes:[e,t,r]})},Ep=function(){const e=un.registry.createSerializedKey(Vt.Z,[Vt.SHIFT,Vt.CTRL]),t=un.registry.createSerializedKey(Vt.Z,[Vt.SHIFT,Vt.ALT]),r=un.registry.createSerializedKey(Vt.Z,[Vt.SHIFT,Vt.META]),l=un.registry.createSerializedKey(Vt.Y,[Vt.CTRL]);un.registry.register({name:_i.REDO,preconditionFn(p){return!Qi.inProgress()&&!p.options.readOnly},callback(p,v){return p.hideChaff(),p.undo(!0),v.preventDefault(),!0},keyCodes:[e,t,r,l]})},Ip=function(){Sp(),ha(),nd(),Tp(),kp(),pa(),Ep()},Cc=function(e){const t=e.saveState();return e.getParameters().length&&(t.parameters=e.getParameters().map(r=>r.saveState())),t},sd=function(e,t,r,l){if(e=e.loadState(r,l),!r.parameters)return e;for(const[p,v]of r.parameters.entries())e.insertParameter(t.loadState(v,l),p);return e},jm=function(e){const t=Object.create(null),r=y(Be.SERIALIZER,!0);for(const l in r){let p;const v=(p=r[l])==null?void 0:p.save(e);v&&(t[l]=v)}return t},Fm=function(e,t,{recordUndo:r=!1}={}){var l=y(Be.SERIALIZER,!0);if(l){l=Object.entries(l).sort((v,O)=>O[1].priority-v[1].priority);var p=se();s.setRecordUndo$$module$build$src$core$events$utils(r),(r=s.getGroup$$module$build$src$core$events$utils())||s.setGroup$$module$build$src$core$events$utils(!0),zn(),t instanceof Cr&&t.setResizesEnabled(!1);for(const[,v]of l.reverse()){let O;(O=v)==null||O.clear(t)}for(const[v,O]of l.reverse())if(e[v]){let G;(G=O)==null||G.load(e[v],t)}t instanceof Cr&&t.setResizesEnabled(!0),Jn(),ee(new(Ce(fe.FINISHED_LOADING))(t)),s.setGroup$$module$build$src$core$events$utils(r),s.setRecordUndo$$module$build$src$core$events$utils(p)}},zm=function(e,t){let r=null;r=typeof e=="string"?document.getElementById(e)||document.querySelector(e):e;var l;if(!document.contains(r)&&document!==((l=r)==null?void 0:l.ownerDocument))throw Error("Error: container is not in current document");e=new zr(t||{}),l=document.createElement("div"),Fe(l,"injectionDiv"),t!=null&&t.rtl&&Fe(l,"blocklyRTL"),l.tabIndex=0,tn(l,as.LABEL,s.Msg$$module$build$src$core$msg.WORKSPACE_ARIA_LABEL),r.appendChild(l),t=xp(l,e);const p=rd(l,t,e);return Um(p),He(p),Je(p),l.addEventListener("focusin",function(){He(p)}),Ue(l,"keydown",null,wl),Ue(wn(),"keydown",null,wl),(t=us())&&Ue(t,"keydown",null,wl),p},xp=function(e,t){e.setAttribute("dir","LTR"),Ve(t.hasCss,t.pathToMedia),e=re(oe.SVG,{xmlns:Nc,"xmlns:html":bi,"xmlns:xlink":nr,version:"1.1",class:"blocklySvg",tabindex:"0"},e);const r=re(oe.DEFS,{},e),l=String(Math.random()).substring(2);return t.gridPattern=eo.createDom(l,t.gridOptions,r),e},rd=function(e,t,r){r.parentWorkspace=null,r=new Cr(r);const l=r.options;r.scale=l.zoomOptions.startScale,t.appendChild(r.createDom("blocklyMainBackground",e));var p=r.getRenderer().getClassName();return p&&Fe(e,p),(p=r.getTheme().getClassName())&&Fe(e,p),!l.hasCategories&&l.languageTree&&(e=r.addFlyout(oe.SVG),Cn(e,t)),l.hasTrashcan&&r.addTrashcan(),l.zoomOptions&&l.zoomOptions.controls&&r.addZoomControls(),r.getThemeManager().subscribe(t,"workspaceBackgroundColour","background-color"),r.translate(0,0),r.addChangeListener(_l(r)),Je(r),op(),ai(),$o(),r},Um=function(e){const t=e.options;var r=e.getParentSvg();if(Ue(r.parentNode,"contextmenu",null,function(l){qt(l)||l.preventDefault()}),r=Ue(window,"resize",null,function(){Li(),e.hideComponents(!0),hc(),cl(),Je(e),wc(e)}),e.setResizeHandlerWrapper(r),Dp(),t.languageTree){r=e.getToolbox();const l=e.getFlyout(!0);r?r.init():l&&(l.init(e),l.show(t.languageTree),typeof l.scrollToStart=="function"&&l.scrollToStart())}t.hasTrashcan&&e.trashcan.init(),t.zoomOptions&&t.zoomOptions.controls&&e.zoomControls_.init(),t.moveOptions&&t.moveOptions.scrollbars?(e.scrollbar=new Jg(e,t.moveOptions.scrollbars===!0||!!t.moveOptions.scrollbars.horizontal,t.moveOptions.scrollbars===!0||!!t.moveOptions.scrollbars.vertical,"blocklyMainWorkspaceScrollbar"),e.scrollbar.resize()):e.setMetrics({x:.5,y:.5}),t.hasSounds&&Ap(t.pathToMedia,e)},wl=function(e){const t=xe();t&&!(qt(e)||t.rendered&&!t.isVisible())&&un.registry.onKeyDown(t,e)},Dp=function(){l$||(Ue(document,"scroll",null,function(){const e=Ae();for(let t=0,r;r=e[t];t++)r instanceof Cr&&r.updateInverseScreenCTM()}),Nt(document,"touchend",null,lt),Nt(document,"touchcancel",null,lt)),l$=!0},Ap=function(e,t){function r(){for(;p.length;){const v=p.pop();v&&wt(v)}l.preload()}const l=t.getAudioManager();l.load([e+"click.mp3",e+"click.wav",e+"click.ogg"],"click"),l.load([e+"disconnect.wav",e+"disconnect.mp3",e+"disconnect.ogg"],"disconnect"),l.load([e+"delete.mp3",e+"delete.ogg",e+"delete.wav"],"delete");const p=[];p.push(Ue(document,"pointermove",null,r,!0)),p.push(Ue(document,"touchstart",null,r,!0))},id=function(){zt.registry.register({displayText(){return s.Msg$$module$build$src$core$msg.UNDO},preconditionFn(e){return 0t.length?ga(t):Ja(s.Msg$$module$build$src$core$msg.DELETE_ALL_BLOCKS.replace("%1",String(t.length)),function(r){r&&ga(t)})}},scopeType:zt.ScopeType.WORKSPACE,id:"workspaceDelete",weight:6})},dd=function(){id(),Cl(),Op(),ad(),Rp(),ud()},Mp=function(){zt.registry.register({displayText(){return s.Msg$$module$build$src$core$msg.DUPLICATE_BLOCK},preconditionFn(e){return e=e.block,!e.isInFlyout&&e.isDeletable()&&e.isMovable()?e.isDuplicatable()?"enabled":"disabled":"hidden"},callback(e){if(e.block){var t=e.block.toCopyData();t&&ko(t,e.block.workspace)}},scopeType:zt.ScopeType.BLOCK,id:"blockDuplicate",weight:1})},Sc=function(){zt.registry.register({displayText(e){return e.block.hasIcon(no.TYPE)?s.Msg$$module$build$src$core$msg.REMOVE_COMMENT:s.Msg$$module$build$src$core$msg.ADD_COMMENT},preconditionFn(e){return e=e.block,!e.isInFlyout&&e.workspace.options.comments&&!e.isCollapsed()&&e.isEditable()?"enabled":"hidden"},callback(e){e=e.block,e.hasIcon(no.TYPE)?e.setCommentText(null):e.setCommentText("")},scopeType:zt.ScopeType.BLOCK,id:"blockComment",weight:2})},Ht=function(){zt.registry.register({displayText(e){return e.block.getInputsInline()?s.Msg$$module$build$src$core$msg.EXTERNAL_INPUTS:s.Msg$$module$build$src$core$msg.INLINE_INPUTS},preconditionFn(e){if(e=e.block,!e.isInFlyout&&e.isMovable()&&!e.isCollapsed()){for(let t=1;t(t.has(Bs)?1:0),e.getInheritedDisabled()||t?"disabled":"enabled"}return"hidden"},callback(e){e=e.block;const t=s.getGroup$$module$build$src$core$events$utils();t||s.setGroup$$module$build$src$core$events$utils(!0),e.setDisabledReason(!e.hasDisabledReason(Bs),Bs),s.setGroup$$module$build$src$core$events$utils(t)},scopeType:zt.ScopeType.BLOCK,id:"blockDisable",weight:5})},fa=function(){zt.registry.register({displayText(e){var t=e.block;return e=t.getDescendants(!1).length,(t=t.getNextBlock())&&(e-=t.getDescendants(!1).length),e===1?s.Msg$$module$build$src$core$msg.DELETE_BLOCK:s.Msg$$module$build$src$core$msg.DELETE_X_BLOCKS.replace("%1",`${e}`)},preconditionFn(e){return!e.block.isInFlyout&&e.block.isDeletable()?"enabled":"hidden"},callback(e){e.block&&e.block.checkAndDelete()},scopeType:zt.ScopeType.BLOCK,id:"blockDelete",weight:6})},hd=function(){zt.registry.register({displayText(){return s.Msg$$module$build$src$core$msg.HELP},preconditionFn(e){return e=e.block,(typeof e.helpUrl=="function"?e.helpUrl():e.helpUrl)?"enabled":"hidden"},callback(e){e.block.showHelp()},scopeType:zt.ScopeType.BLOCK,id:"blockHelp",weight:7})},Bp=function(){zt.registry.register({displayText:()=>s.Msg$$module$build$src$core$msg.REMOVE_COMMENT,preconditionFn(e){let t;return(t=e.comment)!=null&&t.isDeletable()?"enabled":"hidden"},callback(e){s.setGroup$$module$build$src$core$events$utils(!0);let t;(t=e.comment)==null||t.dispose(),s.setGroup$$module$build$src$core$events$utils(!1)},scopeType:zt.ScopeType.COMMENT,id:"commentDelete",weight:6})},Pp=function(){zt.registry.register({displayText:()=>s.Msg$$module$build$src$core$msg.DUPLICATE_COMMENT,preconditionFn(e){let t;return(t=e.comment)!=null&&t.isMovable()?"enabled":"hidden"},callback(e){if(e.comment){var t=e.comment.toCopyData();t&&ko(t,e.comment.workspace)}},scopeType:zt.ScopeType.COMMENT,id:"commentDuplicate",weight:1})},Qs=function(){zt.registry.register({displayText:()=>s.Msg$$module$build$src$core$msg.ADD_COMMENT,preconditionFn:e=>{let t;return(t=e.workspace)!=null&&t.isMutator?"hidden":"enabled"},callback:(e,t)=>{if(e=e.workspace){s.setGroup$$module$build$src$core$events$utils(!0);var r=new Pd(e);r.setText(s.Msg$$module$build$src$core$msg.WORKSPACE_COMMENT_DEFAULT_TEXT),r.moveTo(Wm(new Le(t.clientX,t.clientY),e)),s.setSelected$$module$build$src$core$common(r),s.setGroup$$module$build$src$core$events$utils(!1)}},scopeType:zt.ScopeType.WORKSPACE,id:"commentCreate",weight:8})},Wm=function(e,t){var r=t.getInjectionDiv().getBoundingClientRect();return e=new Le(e.x-r.left,e.y-r.top),r=t.getOriginOffsetInPixels(),e=Le.difference(e,r),e.scale(1/t.scale),e},Tc=function(){Mp(),Sc(),Ht(),Np(),Lp(),fa(),hd()},pd=function(){Pp(),Bp(),Qs()},gd=function(){dd(),Tc()},jp=function(e){return e.paste!==void 0},er=function(e){return e.getSvgRoot!==void 0},Vi=function(e){return typeof e.id=="string"&&e.workspace!==void 0&&e.select!==void 0&&e.unselect!==void 0},fd=function(e){return e.isSelectable()},Fp=function(e){xe().hideChaff(e)},Re=Re||{},Re.scope={},Re.ASSUME_ES5=!1,Re.ASSUME_NO_NATIVE_MAP=!1,Re.ASSUME_NO_NATIVE_SET=!1,Re.SIMPLE_FROUND_POLYFILL=!1,Re.ISOLATE_POLYFILLS=!1,Re.FORCE_POLYFILL_PROMISE=!1,Re.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1,Re.defineProperty=Re.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(e,t,r){return e==Array.prototype||e==Object.prototype||(e[t]=r.value),e},Re.getGlobal=function(e){e=[typeof globalThis=="object"&&globalThis,e,typeof window=="object"&&window,typeof self=="object"&&self,typeof Vo=="object"&&Vo];for(var t=0;t>>0,Re.propertyToPolyfillSymbol[p]=Re.IS_SYMBOL_NATIVE?Re.global.Symbol(p):Re.POLYFILL_PREFIX+r+"$"+p),Re.defineProperty(l,Re.propertyToPolyfillSymbol[p],{configurable:!0,writable:!0,value:t})))},Re.underscoreProtoCanBeSet=function(){var e={a:!0},t={};try{return t.__proto__=e,t.a}catch{}return!1},Re.setPrototypeOf=Re.TRUST_ES6_POLYFILLS&&typeof Object.setPrototypeOf=="function"?Object.setPrototypeOf:Re.underscoreProtoCanBeSet()?function(e,t){if(e.__proto__=t,e.__proto__!==t)throw new TypeError(e+" is not extensible");return e}:null,Re.arrayIteratorImpl=function(e){var t=0;return function(){return tr&&(r=Math.max(r+p,0));r{const e=Hm.length,t=[];for(let r=0;20>r;r++)t[r]=Hm.charAt(Math.random()*e);return t.join("")}},ty=0,bd={TEST_ONLY:Vm};bd.genUid=E,bd.getNextUniqueId=C;var Hp="",Ec=!0,$d=0,vd="ORPHANED_BLOCK",Vn=[],Xr={FIRE_QUEUE:Vn,enqueueEvent:X,fireNow:Y,fireInternal:K,setGroupInternal:ke};s.disable$$module$build$src$core$events$utils,s.enable$$module$build$src$core$events$utils,s.getGroup$$module$build$src$core$events$utils,s.setGroup$$module$build$src$core$events$utils,s.setRecordUndo$$module$build$src$core$events$utils;var Ic=Object.create(null),Gm,gi=null,ma,Sl=[],Vp={defineBlocksWithJsonArrayInternal:Wt},ms={TEST_ONLY:Vp};ms.createBlockDefinitionsFromJsonArray=s.createBlockDefinitionsFromJsonArray$$module$build$src$core$common,ms.defineBlocks=s.defineBlocks$$module$build$src$core$common,ms.defineBlocksWithJsonArray=nt,ms.draggingConnections=Sl,ms.getAllWorkspaces=Ae,ms.getBlockTypeCounts=rt,ms.getMainWorkspace=xe,ms.getParentContainer=Ke,ms.getSelected=ne,ms.getWorkspaceById=he,ms.registerWorkspace=de,ms.setMainWorkspace=He,ms.setParentContainer=Te,ms.setSelected=s.setSelected$$module$build$src$core$common,ms.svgResize=Je,ms.unregisterWorkpace=Se;var ba=class{constructor(){this.workspaceId=void 0,this.isUiEvent=!1,this.type="",this.group=s.getGroup$$module$build$src$core$events$utils(),this.recordUndo=se()}toJson(){return{type:this.type,group:this.group}}static fromJson(e,t,r){return r.isBlank=!1,r.group=e.group||"",r.workspaceId=t.id,r}isNull(){return!1}run(e){}getEventWorkspace_(){let e;if(this.workspaceId&&(e=he(this.workspaceId)),!e)throw Error("Workspace is null. Event must have been generated from real Blockly events.");return e}},Es=class extends ba{constructor(e){super(),this.recordUndo=!1,this.isUiEvent=!0,this.isBlank=typeof e>"u",this.workspaceId=e||""}},$a=class extends Es{constructor(e,t,r){t=e?e.workspace.id:t,t===null&&(t=void 0),super(t),this.type=fe.CLICK,this.blockId=e?e.id:void 0,this.targetType=r}toJson(){const e=super.toJson();if(!this.targetType)throw Error("The click target type is undefined. Either pass a block to the constructor, or call fromJson");return e.targetType=this.targetType,e.blockId=this.blockId,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new $a),t.targetType=e.targetType,t.blockId=e.blockId,t}},Gp;(function(e){e.BLOCK="block",e.WORKSPACE="workspace",e.ZOOM_CONTROLS="zoom_controls"})(Gp||(Gp={})),i(Be.EVENT,fe.CLICK,$a);var Km=750,Kp="ontouchstart"in globalThis||!!(globalThis.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!globalThis.navigator||!globalThis.navigator.maxTouchPoints&&!globalThis.navigator.msMaxTouchPoints),va=null,Eo={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"],mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]},ya=0,Ki={TOUCH_ENABLED:Kp,TOUCH_MAP:Eo};Ki.checkTouchIdentifier=mn,Ki.clearTouchIdentifier=ft,Ki.getTouchIdentifierFromEvent=At,Ki.longStart=St,Ki.longStop=lt,Ki.shouldHandleEvent=st;var Tl,Jm,Jp,xc,Dc,kl,qp,Yp,fi,Xp;(function(e){function t(l){return r.includes(l.toUpperCase())}Tl=e;const r=Tl.toUpperCase();Jm=t("JavaFX"),Jp=t("WebKit"),xc=t("Gecko")&&!Jp,Dc=t("Android"),e=globalThis.navigator&&globalThis.navigator.maxTouchPoints,kl=t("iPad")||t("Macintosh")&&0{l.push(this.componentData.get(p))}),l.sort(function(p,v){return p.weight-v.weight}),l.forEach(function(p){r.push(p.component)})}else e.forEach(l=>{r.push(this.componentData.get(l).component)});return r}};pn.Capability=Zr,function(e){e=e.ComponentWeight||(e.ComponentWeight={}),e[e.TOOLBOX_WEIGHT=0]="TOOLBOX_WEIGHT",e[e.FLYOUT_WEIGHT=1]="FLYOUT_WEIGHT",e[e.TRASHCAN_WEIGHT=2]="TRASHCAN_WEIGHT",e[e.ZOOM_CONTROLS_WEIGHT=3]="ZOOM_CONTROLS_WEIGHT"}(pn||(pn={})),pn.ComponentWeight;var tg=!1,Mc=` -.blocklySvg { - background-color: #fff; - outline: none; - overflow: hidden; /* IE overflows by default. */ - position: absolute; - display: block; -} - -.blocklyWidgetDiv { - display: none; - position: absolute; - z-index: 99999; /* big value for bootstrap3 compatibility */ -} - -.injectionDiv { - height: 100%; - position: relative; - overflow: hidden; /* So blocks in drag surface disappear at edges */ - touch-action: none; - user-select: none; - -webkit-user-select: none; -} - -.blocklyNonSelectable { - user-select: none; - -ms-user-select: none; - -webkit-user-select: none; -} - -.blocklyBlockCanvas.blocklyCanvasTransitioning, -.blocklyBubbleCanvas.blocklyCanvasTransitioning { - transition: transform .5s; -} - -.blocklyTooltipDiv { - background-color: #ffffc7; - border: 1px solid #ddc; - box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15); - color: #000; - display: none; - font: 9pt sans-serif; - opacity: .9; - padding: 2px; - position: absolute; - z-index: 100000; /* big value for bootstrap3 compatibility */ -} - -.blocklyDropDownDiv { - position: absolute; - left: 0; - top: 0; - z-index: 1000; - display: none; - border: 1px solid; - border-color: #dadce0; - background-color: #fff; - border-radius: 2px; - padding: 4px; - box-shadow: 0 0 3px 1px rgba(0,0,0,.3); -} - -.blocklyDropDownDiv.blocklyFocused { - box-shadow: 0 0 6px 1px rgba(0,0,0,.3); -} - -.blocklyDropDownContent { - max-height: 300px; /* @todo: spec for maximum height. */ - overflow: auto; - overflow-x: hidden; - position: relative; -} - -.blocklyDropDownArrow { - position: absolute; - left: 0; - top: 0; - width: 16px; - height: 16px; - z-index: -1; - background-color: inherit; - border-color: inherit; -} - -.blocklyDropDownButton { - display: inline-block; - float: left; - padding: 0; - margin: 4px; - border-radius: 4px; - outline: none; - border: 1px solid; - transition: box-shadow .1s; - cursor: pointer; -} - -.blocklyArrowTop { - border-top: 1px solid; - border-left: 1px solid; - border-top-left-radius: 4px; - border-color: inherit; -} - -.blocklyArrowBottom { - border-bottom: 1px solid; - border-right: 1px solid; - border-bottom-right-radius: 4px; - border-color: inherit; -} - -.blocklyResizeSE { - cursor: se-resize; - fill: #aaa; -} - -.blocklyResizeSW { - cursor: sw-resize; - fill: #aaa; -} - -.blocklyResizeLine { - stroke: #515A5A; - stroke-width: 1; -} - -.blocklyHighlightedConnectionPath { - fill: none; - stroke: #fc3; - stroke-width: 4px; -} - -.blocklyPathLight { - fill: none; - stroke-linecap: round; - stroke-width: 1; -} - -.blocklySelected>.blocklyPathLight { - display: none; -} - -.blocklyDraggable { - cursor: grab; - cursor: -webkit-grab; -} - -.blocklyDragging { - cursor: grabbing; - cursor: -webkit-grabbing; - /* Drag surface disables events to not block the toolbox, so we have to - * reenable them here for the cursor values to work. */ - pointer-events: auto; -} - - /* Changes cursor on mouse down. Not effective in Firefox because of - https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */ -.blocklyDraggable:active { - cursor: grabbing; - cursor: -webkit-grabbing; -} - -.blocklyDragging.blocklyDraggingDelete { - cursor: url("<<>>/handdelete.cur"), auto; -} - -.blocklyDragging>.blocklyPath, -.blocklyDragging>.blocklyPathLight { - fill-opacity: .8; - stroke-opacity: .8; -} - -.blocklyDragging>.blocklyPathDark { - display: none; -} - -.blocklyDisabled>.blocklyPath { - fill-opacity: .5; - stroke-opacity: .5; -} - -.blocklyDisabled>.blocklyPathLight, -.blocklyDisabled>.blocklyPathDark { - display: none; -} - -.blocklyInsertionMarker>.blocklyPath, -.blocklyInsertionMarker>.blocklyPathLight, -.blocklyInsertionMarker>.blocklyPathDark { - fill-opacity: .2; - stroke: none; -} - -.blocklyNonEditableText>text { - pointer-events: none; -} - -.blocklyFlyout { - position: absolute; - z-index: 20; -} - -.blocklyText text { - cursor: default; -} - -.blocklyHidden { - display: none; -} - -.blocklyFieldDropdown:not(.blocklyHidden) { - display: block; -} - -.blocklyIconGroup { - cursor: default; -} - -.blocklyIconGroup:not(:hover), -.blocklyIconGroupReadonly { - opacity: .6; -} - -.blocklyIconShape { - fill: #00f; - stroke: #fff; - stroke-width: 1px; -} - -.blocklyIconSymbol { - fill: #fff; -} - -.blocklyMinimalBody { - margin: 0; - padding: 0; - height: 100%; -} - -.blocklyHtmlInput { - border: none; - border-radius: 4px; - height: 100%; - margin: 0; - outline: none; - padding: 0; - width: 100%; - text-align: center; - display: block; - box-sizing: border-box; -} - -/* Remove the increase and decrease arrows on the field number editor */ -input.blocklyHtmlInput[type=number]::-webkit-inner-spin-button, -input.blocklyHtmlInput[type=number]::-webkit-outer-spin-button { - -webkit-appearance: none; - margin: 0; -} - -input[type=number] { - -moz-appearance: textfield; -} - -.blocklyMainBackground { - stroke-width: 1; - stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */ -} - -.blocklyMutatorBackground { - fill: #fff; - stroke: #ddd; - stroke-width: 1; -} - -.blocklyFlyoutBackground { - fill: #ddd; - fill-opacity: .8; -} - -.blocklyMainWorkspaceScrollbar { - z-index: 20; -} - -.blocklyFlyoutScrollbar { - z-index: 30; -} - -.blocklyScrollbarHorizontal, -.blocklyScrollbarVertical { - position: absolute; - outline: none; -} - -.blocklyScrollbarBackground { - opacity: 0; - pointer-events: none; -} - -.blocklyScrollbarHandle { - fill: #ccc; -} - -.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle, -.blocklyScrollbarHandle:hover { - fill: #bbb; -} - -/* Darken flyout scrollbars due to being on a grey background. */ -/* By contrast, workspace scrollbars are on a white background. */ -.blocklyFlyout .blocklyScrollbarHandle { - fill: #bbb; -} - -.blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle, -.blocklyFlyout .blocklyScrollbarHandle:hover { - fill: #aaa; -} - -.blocklyInvalidInput { - background: #faa; -} - -.blocklyVerticalMarker { - stroke-width: 3px; - fill: rgba(255,255,255,.5); - pointer-events: none; -} - -.blocklyComputeCanvas { - position: absolute; - width: 0; - height: 0; -} - -.blocklyNoPointerEvents { - pointer-events: none; -} - -.blocklyContextMenu { - border-radius: 4px; - max-height: 100%; -} - -.blocklyDropdownMenu { - border-radius: 2px; - padding: 0 !important; -} - -.blocklyDropdownMenu .blocklyMenuItem { - /* 28px on the left for icon or checkbox. */ - padding-left: 28px; -} - -/* BiDi override for the resting state. */ -.blocklyDropdownMenu .blocklyMenuItemRtl { - /* Flip left/right padding for BiDi. */ - padding-left: 5px; - padding-right: 28px; -} - -.blocklyWidgetDiv .blocklyMenu { - background: #fff; - border: 1px solid transparent; - box-shadow: 0 0 3px 1px rgba(0,0,0,.3); - font: normal 13px Arial, sans-serif; - margin: 0; - outline: none; - padding: 4px 0; - position: absolute; - overflow-y: auto; - overflow-x: hidden; - max-height: 100%; - z-index: 20000; /* Arbitrary, but some apps depend on it... */ -} - -.blocklyWidgetDiv .blocklyMenu.blocklyFocused { - box-shadow: 0 0 6px 1px rgba(0,0,0,.3); -} - -.blocklyDropDownDiv .blocklyMenu { - background: inherit; /* Compatibility with gapi, reset from goog-menu */ - border: inherit; /* Compatibility with gapi, reset from goog-menu */ - font: normal 13px "Helvetica Neue", Helvetica, sans-serif; - outline: none; - position: relative; /* Compatibility with gapi, reset from goog-menu */ - z-index: 20000; /* Arbitrary, but some apps depend on it... */ -} - -/* State: resting. */ -.blocklyMenuItem { - border: none; - color: #000; - cursor: pointer; - list-style: none; - margin: 0; - /* 7em on the right for shortcut. */ - min-width: 7em; - padding: 6px 15px; - white-space: nowrap; -} - -/* State: disabled. */ -.blocklyMenuItemDisabled { - color: #ccc; - cursor: inherit; -} - -/* State: hover. */ -.blocklyMenuItemHighlight { - background-color: rgba(0,0,0,.1); -} - -/* State: selected/checked. */ -.blocklyMenuItemCheckbox { - height: 16px; - position: absolute; - width: 16px; -} - -.blocklyMenuItemSelected .blocklyMenuItemCheckbox { - background: url(<<>>/sprites.png) no-repeat -48px -16px; - float: left; - margin-left: -24px; - position: static; /* Scroll with the menu. */ -} - -.blocklyMenuItemRtl .blocklyMenuItemCheckbox { - float: right; - margin-right: -24px; -} - -.blocklyBlockDragSurface, .blocklyAnimationLayer { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - overflow: visible !important; - z-index: 80; - pointer-events: none; -} -`,wd={};wd.inject=Ve,wd.register=we;var Le=class{constructor(e,t){this.x=e,this.y=t}clone(){return new Le(this.x,this.y)}scale(e){return this.x*=e,this.y*=e,this}translate(e,t){return this.x+=e,this.y+=t,this}static equals(e,t){return e===t?!0:e&&t?e.x===t.x&&e.y===t.y:!1}static distance(e,t){const r=e.x-t.x;return e=e.y-t.y,Math.sqrt(r*r+e*e)}static magnitude(e){return Math.sqrt(e.x*e.x+e.y*e.y)}static difference(e,t){return new Le(e.x-t.x,e.y-t.y)}static sum(e,t){return new Le(e.x+t.x,e.y+t.y)}},Nc="http://www.w3.org/2000/svg",bi="http://www.w3.org/1999/xhtml",nr="http://www.w3.org/1999/xlink",Ji;(function(e){e[e.ELEMENT_NODE=1]="ELEMENT_NODE",e[e.TEXT_NODE=3]="TEXT_NODE",e[e.COMMENT_NODE=8]="COMMENT_NODE"})(Ji||(Ji={}));var Lr=null,ng=0,Cd=null,ds={HTML_NS:bi};ds.NodeType=Ji,ds.SVG_NS=Nc,ds.XLINK_NS=nr,ds.addClass=Fe,ds.createSvgElement=re,ds.getFastTextWidth=ns,ds.getFastTextWidthWithSizeString=Rn,ds.getTextWidth=Gs,ds.hasClass=En,ds.insertAfter=Cn,ds.measureFontMetrics=Kt,ds.removeClass=pt,ds.removeClasses=It,ds.removeNode=mt,ds.setCssTransform=$n,ds.startTextWidthCache=zn,ds.stopTextWidthCache=Jn;var oe=class{constructor(e){this.tagName=e}toString(){return this.tagName}};oe.ANIMATE=new oe("animate"),oe.CIRCLE=new oe("circle"),oe.CLIPPATH=new oe("clipPath"),oe.DEFS=new oe("defs"),oe.FECOMPOSITE=new oe("feComposite"),oe.FECOMPONENTTRANSFER=new oe("feComponentTransfer"),oe.FEFLOOD=new oe("feFlood"),oe.FEFUNCA=new oe("feFuncA"),oe.FEGAUSSIANBLUR=new oe("feGaussianBlur"),oe.FEPOINTLIGHT=new oe("fePointLight"),oe.FESPECULARLIGHTING=new oe("feSpecularLighting"),oe.FILTER=new oe("filter"),oe.FOREIGNOBJECT=new oe("foreignObject"),oe.G=new oe("g"),oe.IMAGE=new oe("image"),oe.LINE=new oe("line"),oe.PATH=new oe("path"),oe.PATTERN=new oe("pattern"),oe.POLYGON=new oe("polygon"),oe.RECT=new oe("rect"),oe.SVG=new oe("svg"),oe.TEXT=new oe("text"),oe.TSPAN=new oe("tspan");var Bt=class{constructor(e,t,r,l){this.top=e,this.bottom=t,this.left=r,this.right=l}clone(){return new Bt(this.top,this.bottom,this.left,this.right)}getHeight(){return this.bottom-this.top}getWidth(){return this.right-this.left}contains(e,t){return e>=this.left&&e<=this.right&&t>=this.top&&t<=this.bottom}intersects(e){return this.left<=e.right&&this.right>=e.left&&this.bottom>=e.top&&this.top<=e.bottom}static equals(e,t){return e===t?!0:e&&t?e.top===t.top&&e.bottom===t.bottom&&e.left===t.left&&e.right===t.right:!1}static createFromPoint(e,t,r){const l=e.x;return e=e.y,new Bt(e,e+r,l,l+t)}},Jt=class{constructor(e,t){this.width=e,this.height=t}static equals(e,t){return e===t?!0:e&&t?e.width===t.width&&e.height===t.height:!1}static max(e,t){return new Jt(Math.max(e.width,t.width),Math.max(e.height,t.height))}static min(e,t){return new Jt(Math.min(e.width,t.width),Math.min(e.height,t.height))}},Xm={getSizeInternal:cs},$i={TEST_ONLY:Xm};$i.getBorderBox=ii,$i.getComputedStyle=jn,$i.getContainerOffsetToScrollInto=ec,$i.getPageOffset=Un,$i.getSize=Pn,$i.getViewportPageOffset=Rs,$i.scrollIntoContainerView=Ir;var Zm=/translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*)?/,Qm=/transform:\s*translate(?:3d)?\(\s*([-+\d.e]+)\s*px([ ,]\s*([-+\d.e]+)\s*px)?/,Lc={XY_REGEX:Zm,XY_STYLE_REGEX:Qm},Io={TEST_ONLY:Lc};Io.getDocumentScroll=nc,Io.getInjectionDivXY=Ka,Io.getRelativeXY=xr,Io.getViewportBBox=tc,Io.screenToWsCoordinates=Tu,Io.wsToScreenCoordinates=Yo;var Fn=class{constructor(e,t,r,l,p){this.workspace=e,this.horizontal=t,this.oldHostMetrics=null,this.ratio=1,this.origin=new Le(0,0),this.startDragHandle=this.handlePosition=this.handleLength=this.scrollbarLength=this.startDragMouse=0,this.containerVisible=this.isHandleVisible=!0,this.position=new Le(0,0),this.onMouseMoveWrapper_=this.onMouseUpWrapper_=null,this.pair=r||!1,this.margin=p!==void 0?p:Fn.DEFAULT_SCROLLBAR_MARGIN,e="blocklyScrollbar"+(this.horizontal?"Horizontal":"Vertical"),l&&(e+=" "+l),this.outerSvg=re(oe.SVG,{class:e}),l=re(oe.G,{},this.outerSvg),this.svgBackground=re(oe.RECT,{class:"blocklyScrollbarBackground"},l),e=Math.floor((Fn.scrollbarThickness-5)/2),this.svgHandle=re(oe.RECT,{class:"blocklyScrollbarHandle",rx:e,ry:e},l),this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarColour","fill"),this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarOpacity","fill-opacity"),Cn(this.outerSvg,this.workspace.getParentSvg()),this.setInitialThickness(),t?(this.lengthAttribute_="width",this.positionAttribute_="x"):(this.lengthAttribute_="height",this.positionAttribute_="y"),this.onMouseDownBarWrapper_=Ue(this.svgBackground,"pointerdown",this,this.onMouseDownBar),this.onMouseDownHandleWrapper_=Ue(this.svgHandle,"pointerdown",this,this.onMouseDownHandle)}setInitialThickness(){const e=Fn.scrollbarThickness;this.horizontal?(this.svgBackground.setAttribute("height",String(e)),this.outerSvg.setAttribute("height",String(e)),this.svgHandle.setAttribute("height",String(e-5)),this.svgHandle.setAttribute("y","2.5")):(this.svgBackground.setAttribute("width",String(e)),this.outerSvg.setAttribute("width",String(e)),this.svgHandle.setAttribute("width",String(e-5)),this.svgHandle.setAttribute("x","2.5"))}dispose(){this.cleanUp(),wt(this.onMouseDownBarWrapper_),wt(this.onMouseDownHandleWrapper_),mt(this.outerSvg),this.workspace.getThemeManager().unsubscribe(this.svgHandle)}constrainHandleLength(e){return e=0>=e||isNaN(e)?0:Math.min(e,this.scrollbarLength)}setHandleLength(e){this.handleLength=e,this.svgHandle.setAttribute(this.lengthAttribute_,String(this.handleLength))}constrainHandlePosition(e){return e=0>=e||isNaN(e)?0:Math.min(e,this.scrollbarLength-this.handleLength)}setHandlePosition(e){this.handlePosition=e,this.svgHandle.setAttribute(this.positionAttribute_,String(this.handlePosition))}setScrollbarLength(e){this.scrollbarLength=e,this.outerSvg.setAttribute(this.lengthAttribute_,String(this.scrollbarLength)),this.svgBackground.setAttribute(this.lengthAttribute_,String(this.scrollbarLength))}setPosition(e,t){this.position.x=e,this.position.y=t,$n(this.outerSvg,"translate("+(this.position.x+this.origin.x)+"px,"+(this.position.y+this.origin.y)+"px)")}resize(e){!e&&(e=this.workspace.getMetrics(),!e)||this.oldHostMetrics&&Fn.metricsAreEquivalent(e,this.oldHostMetrics)||(this.horizontal?this.resizeHorizontal(e):this.resizeVertical(e),this.oldHostMetrics=e,this.updateMetrics())}requiresViewResize(e){return this.oldHostMetrics?this.oldHostMetrics.viewWidth!==e.viewWidth||this.oldHostMetrics.viewHeight!==e.viewHeight||this.oldHostMetrics.absoluteLeft!==e.absoluteLeft||this.oldHostMetrics.absoluteTop!==e.absoluteTop:!0}resizeHorizontal(e){this.requiresViewResize(e)?this.resizeViewHorizontal(e):this.resizeContentHorizontal(e)}resizeViewHorizontal(e){var t=e.viewWidth-2*this.margin;this.pair&&(t-=Fn.scrollbarThickness),this.setScrollbarLength(Math.max(0,t)),t=e.absoluteLeft+this.margin,this.pair&&this.workspace.RTL&&(t+=Fn.scrollbarThickness),this.setPosition(t,e.absoluteTop+e.viewHeight-Fn.scrollbarThickness-this.margin),this.resizeContentHorizontal(e)}resizeContentHorizontal(e){if(e.viewWidth>=e.scrollWidth)this.setHandleLength(this.scrollbarLength),this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var t=this.scrollbarLength*e.viewWidth/e.scrollWidth;t=this.constrainHandleLength(t),this.setHandleLength(t),t=e.scrollWidth-e.viewWidth;var r=this.scrollbarLength-this.handleLength;e=(e.viewLeft-e.scrollLeft)/t*r,e=this.constrainHandlePosition(e),this.setHandlePosition(e),this.ratio=r/t}}resizeVertical(e){this.requiresViewResize(e)?this.resizeViewVertical(e):this.resizeContentVertical(e)}resizeViewVertical(e){let t=e.viewHeight-2*this.margin;this.pair&&(t-=Fn.scrollbarThickness),this.setScrollbarLength(Math.max(0,t)),this.setPosition(this.workspace.RTL?e.absoluteLeft+this.margin:e.absoluteLeft+e.viewWidth-Fn.scrollbarThickness-this.margin,e.absoluteTop+this.margin),this.resizeContentVertical(e)}resizeContentVertical(e){if(e.viewHeight>=e.scrollHeight)this.setHandleLength(this.scrollbarLength),this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var t=this.scrollbarLength*e.viewHeight/e.scrollHeight;t=this.constrainHandleLength(t),this.setHandleLength(t),t=e.scrollHeight-e.viewHeight;var r=this.scrollbarLength-this.handleLength;e=(e.viewTop-e.scrollTop)/t*r,e=this.constrainHandlePosition(e),this.setHandlePosition(e),this.ratio=r/t}}isVisible(){return this.isHandleVisible}setContainerVisible(e){const t=e!==this.containerVisible;this.containerVisible=e,t&&this.updateDisplay_()}setVisible(e){if(this.pair)throw Error("Unable to toggle visibility of paired scrollbars.");this.setVisibleInternal(e)}setVisibleInternal(e){const t=e!==this.isVisible();this.isHandleVisible=e,t&&this.updateDisplay_()}updateDisplay_(){this.containerVisible&&this.isVisible()?this.outerSvg.setAttribute("display","block"):this.outerSvg.setAttribute("display","none")}onMouseDownBar(e){if(this.workspace.markFocused(),ft(),this.cleanUp(),ct(e))e.stopPropagation();else{var t=me(e,this.workspace.getParentSvg(),this.workspace.getInverseScreenCTM());t=this.horizontal?t.x:t.y;var r=Ka(this.svgHandle);r=this.horizontal?r.x:r.y;var l=this.handlePosition,p=.95*this.handleLength;t<=r?l-=p:t>=r+this.handleLength&&(l+=p),this.setHandlePosition(this.constrainHandlePosition(l)),this.updateMetrics(),e.stopPropagation(),e.preventDefault()}}onMouseDownHandle(e){this.workspace.markFocused(),this.cleanUp(),ct(e)?e.stopPropagation():(this.startDragHandle=this.handlePosition,this.startDragMouse=this.horizontal?e.clientX:e.clientY,this.onMouseUpWrapper_=Ue(document,"pointerup",this,this.onMouseUpHandle),this.onMouseMoveWrapper_=Ue(document,"pointermove",this,this.onMouseMoveHandle),e.stopPropagation(),e.preventDefault())}onMouseMoveHandle(e){this.setHandlePosition(this.constrainHandlePosition(this.startDragHandle+((this.horizontal?e.clientX:e.clientY)-this.startDragMouse))),this.updateMetrics()}onMouseUpHandle(){ft(),this.cleanUp()}cleanUp(){this.workspace.hideChaff(!0),this.onMouseUpWrapper_&&(wt(this.onMouseUpWrapper_),this.onMouseUpWrapper_=null),this.onMouseMoveWrapper_&&(wt(this.onMouseMoveWrapper_),this.onMouseMoveWrapper_=null)}getRatio_(){let e=this.handlePosition/(this.scrollbarLength-this.handleLength);return isNaN(e)&&(e=0),e}updateMetrics(){const e=this.getRatio_();this.horizontal?this.workspace.setMetrics({x:e}):this.workspace.setMetrics({y:e})}set(e,t){this.setHandlePosition(this.constrainHandlePosition(e*this.ratio)),(t||t===void 0)&&this.updateMetrics()}setOrigin(e,t){this.origin=new Le(e,t)}static metricsAreEquivalent(e,t){return e.viewWidth===t.viewWidth&&e.viewHeight===t.viewHeight&&e.viewLeft===t.viewLeft&&e.viewTop===t.viewTop&&e.absoluteTop===t.absoluteTop&&e.absoluteLeft===t.absoluteLeft&&e.scrollWidth===t.scrollWidth&&e.scrollHeight===t.scrollHeight&&e.scrollLeft===t.scrollLeft&&e.scrollTop===t.scrollTop}};Fn.scrollbarThickness=Kp?25:15,Fn.DEFAULT_SCROLLBAR_MARGIN=.5;var Sd={parseFromString:function(){throw Error("DOMParser was not found in the global scope and was not properly injected using injectDependencies")}},sg={serializeToString:function(){throw Error("XMLSerializer was not foundin the global scope and was not properly injected using injectDependencies")}},{document:Td,DOMParser:Bc,XMLSerializer:El}=globalThis;Bc&&(Sd=new Bc),El&&(sg=new El);var rg="https://developers.google.com/blockly/xml",ny=/[\x00-\x09\x0B\x0C\x0E-\x1F]/g,xo={NAME_SPACE:rg};xo.createElement=s.createElement$$module$build$src$core$utils$xml,xo.createTextNode=s.createTextNode$$module$build$src$core$utils$xml,xo.domToText=U,xo.injectDependencies=z,xo.textToDom=s.textToDom$$module$build$src$core$utils$xml;var kd="categoryToolbox",Il="flyoutToolbox",Rt;(function(e){e[e.TOP=0]="TOP",e[e.BOTTOM=1]="BOTTOM",e[e.LEFT=2]="LEFT",e[e.RIGHT=3]="RIGHT"})(Rt||(Rt={}));var ig={hasCategoriesInternal:_e},qi={};qi.Position=Rt,qi.TEST_ONLY=ig,qi.convertFlyoutDefToJsonArray=pe,qi.convertToolboxDefToJson=j,qi.hasCategories=Ee,qi.isCategoryCollapsible=ae,qi.parseToolboxTree=Yt;var Br;(function(e){e[e.TOP=0]="TOP",e[e.BOTTOM=1]="BOTTOM"})(Br||(Br={}));var wa;(function(e){e[e.LEFT=0]="LEFT",e[e.RIGHT=1]="RIGHT"})(wa||(wa={}));var bs;(function(e){e[e.UP=0]="UP",e[e.DOWN=1]="DOWN"})(bs||(bs={}));var fr={};fr.bumpDirection=bs,fr.bumpPositionRect=an,fr.getCornerOppositeToolbox=Lt,fr.getStartPositionRect=on,fr.horizontalPosition=wa,fr.verticalPosition=Br;var Ls={width:96,height:124,url:"sprites.png"},og=class{constructor(e){this.workspace=e,this.id="zoomControls",this.boundEvents=[],this.zoomResetGroup=this.zoomOutGroup=this.zoomInGroup=null,this.HEIGHT=this.WIDTH=32,this.SMALL_SPACING=2,this.LARGE_SPACING=11,this.MARGIN_HORIZONTAL=this.MARGIN_VERTICAL=20,this.svgGroup=null,this.top=this.left=0,this.initialized=!1}createDom(){this.svgGroup=re(oe.G,{});const e=String(Math.random()).substring(2);return this.createZoomOutSvg(e),this.createZoomInSvg(e),this.workspace.isMovable()&&this.createZoomResetSvg(e),this.svgGroup}init(){this.workspace.getComponentManager().addComponent({component:this,weight:pn.ComponentWeight.ZOOM_CONTROLS_WEIGHT,capabilities:[pn.Capability.POSITIONABLE]}),this.initialized=!0}dispose(){this.workspace.getComponentManager().removeComponent("zoomControls"),this.svgGroup&&mt(this.svgGroup);for(const e of this.boundEvents)wt(e);this.boundEvents.length=0}getBoundingRectangle(){let e=this.SMALL_SPACING+2*this.HEIGHT;return this.zoomResetGroup&&(e+=this.LARGE_SPACING+this.HEIGHT),new Bt(this.top,this.top+e,this.left,this.left+this.WIDTH)}position(e,t){if(this.initialized){var r=Lt(this.workspace,e),l=this.SMALL_SPACING+2*this.HEIGHT;if(this.zoomResetGroup&&(l+=this.LARGE_SPACING+this.HEIGHT),e=on(r,new Jt(this.WIDTH,l),this.MARGIN_HORIZONTAL,this.MARGIN_VERTICAL,e,this.workspace),r=r.vertical,t=an(e,this.MARGIN_VERTICAL,r===Br.TOP?bs.DOWN:bs.UP,t),r===Br.TOP){var p=this.SMALL_SPACING+this.HEIGHT,v;(v=this.zoomInGroup)==null||v.setAttribute("transform","translate(0, "+p+")"),this.zoomResetGroup&&this.zoomResetGroup.setAttribute("transform","translate(0, "+(p+this.LARGE_SPACING+this.HEIGHT)+")")}else{v=this.zoomResetGroup?this.LARGE_SPACING+this.HEIGHT:0;let G;(G=this.zoomInGroup)==null||G.setAttribute("transform","translate(0, "+v+")"),v=v+this.SMALL_SPACING+this.HEIGHT,(p=this.zoomOutGroup)==null||p.setAttribute("transform","translate(0, "+v+")")}this.top=t.top,this.left=t.left;var O;(O=this.svgGroup)==null||O.setAttribute("transform","translate("+this.left+","+this.top+")")}}createZoomOutSvg(e){this.zoomOutGroup=re(oe.G,{class:"blocklyZoom blocklyZoomOut"},this.svgGroup);const t=re(oe.CLIPPATH,{id:"blocklyZoomoutClipPath"+e},this.zoomOutGroup);re(oe.RECT,{width:32,height:32},t),re(oe.IMAGE,{width:Ls.width,height:Ls.height,x:-64,y:-92,"clip-path":"url(#blocklyZoomoutClipPath"+e+")"},this.zoomOutGroup).setAttributeNS(nr,"xlink:href",this.workspace.options.pathToMedia+Ls.url),this.boundEvents.push(Ue(this.zoomOutGroup,"pointerdown",null,this.zoom.bind(this,-1)))}createZoomInSvg(e){this.zoomInGroup=re(oe.G,{class:"blocklyZoom blocklyZoomIn"},this.svgGroup);const t=re(oe.CLIPPATH,{id:"blocklyZoominClipPath"+e},this.zoomInGroup);re(oe.RECT,{width:32,height:32},t),re(oe.IMAGE,{width:Ls.width,height:Ls.height,x:-32,y:-92,"clip-path":"url(#blocklyZoominClipPath"+e+")"},this.zoomInGroup).setAttributeNS(nr,"xlink:href",this.workspace.options.pathToMedia+Ls.url),this.boundEvents.push(Ue(this.zoomInGroup,"pointerdown",null,this.zoom.bind(this,1)))}zoom(e,t){this.workspace.markFocused(),this.workspace.zoomCenter(e),this.fireZoomEvent(),ft(),t.stopPropagation(),t.preventDefault()}createZoomResetSvg(e){this.zoomResetGroup=re(oe.G,{class:"blocklyZoom blocklyZoomReset"},this.svgGroup);const t=re(oe.CLIPPATH,{id:"blocklyZoomresetClipPath"+e},this.zoomResetGroup);re(oe.RECT,{width:32,height:32},t),re(oe.IMAGE,{width:Ls.width,height:Ls.height,y:-92,"clip-path":"url(#blocklyZoomresetClipPath"+e+")"},this.zoomResetGroup).setAttributeNS(nr,"xlink:href",this.workspace.options.pathToMedia+Ls.url),this.boundEvents.push(Ue(this.zoomResetGroup,"pointerdown",null,this.resetZoom.bind(this)))}resetZoom(e){this.workspace.markFocused();const t=Math.log(this.workspace.options.zoomOptions.startScale/this.workspace.scale)/Math.log(this.workspace.options.zoomOptions.scaleSpeed);this.workspace.beginCanvasTransition(),this.workspace.zoomCenter(t),this.workspace.scrollCenter(),setTimeout(this.workspace.endCanvasTransition.bind(this.workspace),500),this.fireZoomEvent(),ft(),e.stopPropagation(),e.preventDefault()}fireZoomEvent(){const e=new(Ce(fe.CLICK))(null,this.workspace.id,"zoom_controls");ee(e)}};we(` -.blocklyZoom>image, .blocklyZoom>svg>image { - opacity: .4; -} - -.blocklyZoom>image:hover, .blocklyZoom>svg>image:hover { - opacity: .6; -} - -.blocklyZoom>image:active, .blocklyZoom>svg>image:active { - opacity: .8; -} -`);var eb=100,tb=75,nb=50,sb=25,sy={BLOCKS:nb,PROCEDURES:tb,VARIABLES:eb,WORKSPACE_COMMENTS:sb},ag={};ag.register=_n,ag.unregister=Tt;var rb=class{constructor(){this.priority=sb}save(e){const t=[];for(const r of e.getTopComments())(e=In(r,{addCoordinates:!0,saveIds:!0}))&&t.push(e);return t.length?t:null}load(e,t){for(const r of e)ss(r,t,{recordUndo:se()})}clear(e){for(const t of e.getTopComments())t.dispose()}};_n("workspaceComments",new rb);var Ed={};Ed.WorkspaceCommentSerializer=rb,Ed.append=ss,Ed.save=In;var lg={};lg.register=Js,lg.unregister=Xo;var Id=class{paste(e,t,r){e=e.commentState,r&&(e.x=r.x,e.y=r.y),s.disable$$module$build$src$core$events$utils();let l;try{l=ss(e,t),Dr(l)}finally{s.enable$$module$build$src$core$events$utils()}return l?(te()&&ee(new(Ce(fe.COMMENT_CREATE))(l)),s.setSelected$$module$build$src$core$common(l),l):null}};Id.TYPE="workspace-comment",Js(Id.TYPE,new Id);var cg;cg=28,s.config$$module$build$src$core$config={dragRadius:5,flyoutDragRadius:10,snapRadius:cg,connectingSnapRadius:cg,currentConnectionPreference:8,bumpDelay:250},s.config$$module$build$src$core$config;var ib="aria-",ob="role",Pr;(function(e){e.GRID="grid",e.GRIDCELL="gridcell",e.GROUP="group",e.LISTBOX="listbox",e.MENU="menu",e.MENUITEM="menuitem",e.MENUITEMCHECKBOX="menuitemcheckbox",e.OPTION="option",e.PRESENTATION="presentation",e.ROW="row",e.TREE="tree",e.TREEITEM="treeitem"})(Pr||(Pr={}));var as;(function(e){e.ACTIVEDESCENDANT="activedescendant",e.COLCOUNT="colcount",e.DISABLED="disabled",e.EXPANDED="expanded",e.INVALID="invalid",e.LABEL="label",e.LABELLEDBY="labelledby",e.LEVEL="level",e.ORIENTATION="orientation",e.POSINSET="posinset",e.ROWCOUNT="rowcount",e.SELECTED="selected",e.SETSIZE="setsize",e.VALUEMAX="valuemax",e.VALUEMIN="valuemin"})(as||(as={}));var Pc={};Pc.Role=Pr,Pc.State=as,Pc.setRole=Ts,Pc.setState=tn;var ug=class{constructor(){this.menuItems=[],this.roleName=this.element=this.onKeyDownHandler=this.pointerLeaveHandler=this.pointerEnterHandler=this.clickHandler=this.pointerMoveHandler=this.highlightedItem=this.openingCoords=null}addChild(e){this.menuItems.push(e)}render(e){const t=document.createElement("div");t.className="blocklyMenu goog-menu blocklyNonSelectable",t.tabIndex=0,this.roleName&&Ts(t,this.roleName),this.element=t;for(let r=0,l;l=this.menuItems[r];r++)t.appendChild(l.createDom());return this.pointerMoveHandler=Ue(t,"pointermove",this,this.handlePointerMove,!0),this.clickHandler=Ue(t,"pointerup",this,this.handleClick,!0),this.pointerEnterHandler=Ue(t,"pointerenter",this,this.handlePointerEnter,!0),this.pointerLeaveHandler=Ue(t,"pointerleave",this,this.handlePointerLeave,!0),this.onKeyDownHandler=Ue(t,"keydown",this,this.handleKeyEvent),e.appendChild(t),t}getElement(){return this.element}focus(){const e=this.getElement();e&&(e.focus({preventScroll:!0}),Fe(e,"blocklyFocused"))}blur(){const e=this.getElement();e&&(e.blur(),pt(e,"blocklyFocused"))}setRole(e){this.roleName=e}dispose(){this.pointerMoveHandler&&(wt(this.pointerMoveHandler),this.pointerMoveHandler=null),this.clickHandler&&(wt(this.clickHandler),this.clickHandler=null),this.pointerEnterHandler&&(wt(this.pointerEnterHandler),this.pointerEnterHandler=null),this.pointerLeaveHandler&&(wt(this.pointerLeaveHandler),this.pointerLeaveHandler=null),this.onKeyDownHandler&&(wt(this.onKeyDownHandler),this.onKeyDownHandler=null);for(let e=0,t;t=this.menuItems[e];e++)t.dispose();this.element=null}getMenuItem(e){const t=this.getElement();for(;e&&e!==t;){if(e.classList.contains("blocklyMenuItem")){for(let r=0,l;l=this.menuItems[r];r++)if(l.getElement()===e)return l}e=e.parentElement}return null}setHighlighted(e){var t=this.highlightedItem;if(t&&(t.setHighlighted(!1),this.highlightedItem=null),e){e.setHighlighted(!0),this.highlightedItem=e,t=this.getElement();const r=t==null?void 0:t.parentElement,l=e.getElement();r&&l&&(Ir(l,r),tn(t,as.ACTIVEDESCENDANT,e.getId()))}}highlightNext(){const e=this.highlightedItem?this.menuItems.indexOf(this.highlightedItem):-1;this.highlightHelper(e,1)}highlightPrevious(){const e=this.highlightedItem?this.menuItems.indexOf(this.highlightedItem):-1;this.highlightHelper(0>e?this.menuItems.length:e,-1)}highlightFirst(){this.highlightHelper(-1,1)}highlightLast(){this.highlightHelper(this.menuItems.length,-1)}highlightHelper(e,t){e+=t;let r;for(;r=this.menuItems[e];){if(r.isEnabled()){this.setHighlighted(r);break}e+=t}}handlePointerMove(e){Math.max(Math.abs(e.movementX),Math.abs(e.movementY))!==0&&(e=this.getMenuItem(e.target))&&(e.isEnabled()?this.highlightedItem!==e&&this.setHighlighted(e):this.setHighlighted(null))}handleClick(e){const t=this.openingCoords;if(this.openingCoords=null,t&&typeof e.clientX=="number"){const r=new Le(e.clientX,e.clientY);if(1>Le.distance(t,r))return}(e=this.getMenuItem(e.target))&&e.performAction()}handlePointerEnter(e){this.focus()}handlePointerLeave(e){this.getElement()&&this.setHighlighted(null)}handleKeyEvent(e){if(this.menuItems.length&&!(e.shiftKey||e.ctrlKey||e.metaKey||e.altKey)){var t=this.highlightedItem;switch(e.key){case"Enter":case" ":t&&t.performAction();break;case"ArrowUp":this.highlightPrevious();break;case"ArrowDown":this.highlightNext();break;case"PageUp":case"Home":this.highlightFirst();break;case"PageDown":case"End":this.highlightLast();break;default:return}e.preventDefault(),e.stopPropagation()}}getSize(){const e=this.getElement(),t=Pn(e);return t.height=e.scrollHeight,t}},xd=class{constructor(e,t){this.content=e,this.opt_value=t,this.enabled=!0,this.element=null,this.rightToLeft=!1,this.roleName=null,this.highlight=this.checked=this.checkable=!1,this.actionHandler=null}createDom(){const e=document.createElement("div");e.id=C(),this.element=e,e.className="blocklyMenuItem goog-menuitem "+(this.enabled?"":"blocklyMenuItemDisabled goog-menuitem-disabled ")+(this.checked?"blocklyMenuItemSelected goog-option-selected ":"")+(this.highlight?"blocklyMenuItemHighlight goog-menuitem-highlight ":"")+(this.rightToLeft?"blocklyMenuItemRtl goog-menuitem-rtl ":"");const t=document.createElement("div");if(t.className="blocklyMenuItemContent goog-menuitem-content",this.checkable){var r=document.createElement("div");r.className="blocklyMenuItemCheckbox goog-menuitem-checkbox",t.appendChild(r)}return r=this.content,typeof this.content=="string"&&(r=document.createTextNode(this.content)),t.appendChild(r),e.appendChild(t),this.roleName&&Ts(e,this.roleName),tn(e,as.SELECTED,this.checkable&&this.checked||!1),tn(e,as.DISABLED,!this.enabled),e}dispose(){this.element=null}getElement(){return this.element}getId(){return this.element.id}getValue(){let e;return(e=this.opt_value)!=null?e:null}setRightToLeft(e){this.rightToLeft=e}setRole(e){this.roleName=e}setCheckable(e){this.checkable=e}setChecked(e){this.checked=e}setHighlighted(e){this.highlight=e;const t=this.getElement();t&&this.isEnabled()&&(e?(Fe(t,"blocklyMenuItemHighlight"),Fe(t,"goog-menuitem-highlight")):(pt(t,"blocklyMenuItemHighlight"),pt(t,"goog-menuitem-highlight")))}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}performAction(){this.isEnabled()&&this.actionHandler&&this.actionHandler(this)}onAction(e,t){this.actionHandler=e.bind(t)}},jc="_TEMP_COLLAPSED_INPUT",Dd="_TEMP_COLLAPSED_FIELD",Bs="MANUALLY_DISABLED",ry={COLLAPSED_FIELD_NAME:Dd,COLLAPSED_INPUT_NAME:jc,MANUALLY_DISABLED:Bs};(function(e){e[e.VALUE=1]="VALUE",e[e.STATEMENT=3]="STATEMENT",e[e.DUMMY=5]="DUMMY",e[e.CUSTOM=6]="CUSTOM",e[e.END_ROW=7]="END_ROW"})(s.inputTypes$$module$build$src$core$inputs$input_types||(s.inputTypes$$module$build$src$core$inputs$input_types={})),s.inputTypes$$module$build$src$core$inputs$input_types;var Ad=new Set,dg=new WeakSet,sr=new WeakMap,xl=null,hg=null,ab=0,Fc={};Fc.finishQueuedRenders=rs,Fc.queueRender=Oi,Fc.triggerQueuedRenders=Ms;var lb=function(e,t){window.alert(e),t&&t()},cb=function(e,t){t(window.confirm(e))},ub=function(e,t,r){r(window.prompt(e,t))},db={confirmInternal:Qo},Yi={TEST_ONLY:db};Yi.alert=Mi,Yi.confirm=Ja,Yi.prompt=sc,Yi.setAlert=ku,Yi.setConfirm=Nh,Yi.setPrompt=Xf;var pg,hb;s.Msg$$module$build$src$core$msg=Object.create(null),pg=function(e){Object.keys(e).forEach(function(t){s.Msg$$module$build$src$core$msg[t]=e[t]})},hb={Msg:s.Msg$$module$build$src$core$msg,setLocale:pg};var zc=class extends ba{constructor(e){super(),this.isBlank=typeof e>"u",e&&(this.varId=e.getId(),this.workspaceId=e.workspace.id)}toJson(){const e=super.toJson();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");return e.varId=this.varId,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new zc),t.varId=e.varId,t}},gg=class extends zc{constructor(e){super(e),this.type=fe.VAR_CREATE,e&&(this.varType=e.type,this.varName=e.name)}toJson(){const e=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");return e.varType=this.varType,e.varName=this.varName,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new gg),t.varType=e.varType,t.varName=e.varName,t}run(e){const t=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");e?t.createVariable(this.varName,this.varType,this.varId):t.deleteVariableById(this.varId)}};i(Be.EVENT,fe.VAR_CREATE,gg);var Uc=class{constructor(e,t,r,l){this.workspace=e,this.name=t,this.type=r||"",this.id=l||E()}getId(){return this.id}static compareByName(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"base"})}},fg="VARIABLE",mg="ijkmnopqrstuvwxyzabcdefgh",pb={generateUniqueNameInternal:Zf},$s={CATEGORY_NAME:fg,TEST_ONLY:pb,VAR_LETTER_OPTIONS:mg};$s.allDeveloperVariables=s.allDeveloperVariables$$module$build$src$core$variables,$s.allUsedVarModels=s.allUsedVarModels$$module$build$src$core$variables,$s.createVariableButtonHandler=qa,$s.flyoutCategory=rc,$s.flyoutCategoryBlocks=Bh,$s.generateUniqueName=Ph,$s.generateUniqueNameFromOptions=ic,$s.generateVariableFieldDom=ta,$s.getAddedVariables=ac,$s.getOrCreateVariablePackage=s.getOrCreateVariablePackage$$module$build$src$core$variables,$s.getVariable=s.getVariable$$module$build$src$core$variables,$s.nameUsedWithAnyType=jh,$s.nameUsedWithConflictingParam=oc,$s.promptName=Iu,$s.renameVariable=s.renameVariable$$module$build$src$core$variables;var Dl=class extends Error{},gb=class extends Dl{constructor(e){super("Expected to find a 'type' property, defining the block type"),this.state=e}},Wc=class extends Dl{constructor(e,t,r){super(`The block ${t.toDevString()} is missing a(n) ${e} -connection`),this.block=t,this.state=r}},fb=class extends Dl{constructor(e,t,r,l){super(`The block ${r.toDevString()} could not connect its -${t} to its parent, because: ${e}`),this.childBlock=r,this.childState=l}},mb=class extends Dl{constructor(e){super(`Encountered a real block which is defined as a child of a shadow -block. It is an invariant of Blockly that shadow blocks only have shadow -children`),this.state=e}},bb=class extends Dl{constructor(e,t,r){super(`Cannot add an icon of type '${e}' to the block ${t.toDevString()}, because there is no icon registered with type '${e}'. Make sure that all of your icons have been registered.`),this.block=t,this.state=r}},Ca={};Ca.BadConnectionCheck=fb,Ca.DeserializationError=Dl,Ca.MissingBlockType=gb,Ca.MissingConnection=Wc,Ca.RealChildOfShadow=mb,Ca.UnregisteredIcon=bb;var $b=class{constructor(){this.priority=nb}save(e){const t=[];for(const r of e.getTopBlocks(!1))(e=Qt(r,{addCoordinates:!0,doFullSerialization:!1}))&&t.push(e);return t.length?{languageVersion:0,blocks:t}:null}load(e,t){e=e.blocks;for(const r of e)Ni(r,t,{recordUndo:se()})}clear(e){for(const t of e.getTopBlocks(!1))t.dispose(!1)}};_n("blocks",new $b);var Hc={};Hc.BlockSerializer=$b,Hc.append=Ni,Hc.appendInternal=Wn,Hc.save=Qt;var Qn=class{constructor(e){this.name=e}toString(){return this.name}equals(e){return this.name===e.toString()}};Qn.MUTATOR=new Qn("mutator"),Qn.WARNING=new Qn("warning"),Qn.COMMENT=new Qn("comment");var Sa=class extends ba{constructor(e){super(),this.isBlank=!e,e&&(this.blockId=e.id,this.workspaceId=e.workspace.id)}toJson(){const e=super.toJson();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");return e.blockId=this.blockId,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Sa),t.blockId=e.blockId,t}},Xi=class extends Sa{constructor(e,t,r,l,p){super(e),this.type=fe.BLOCK_CHANGE,e&&(this.element=t,this.name=r||void 0,this.oldValue=l,this.newValue=p)}toJson(){const e=super.toJson();if(!this.element)throw Error("The changed element is undefined. Either pass an element to the constructor, or call fromJson");return e.element=this.element,e.name=this.name,e.oldValue=this.oldValue,e.newValue=this.newValue,this.disabledReason&&(e.disabledReason=this.disabledReason),e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Xi),t.element=e.element,t.name=e.name,t.oldValue=e.oldValue,t.newValue=e.newValue,e.disabledReason!==void 0&&(t.disabledReason=e.disabledReason),t}setDisabledReason(e){if(this.element!=="disabled")throw Error('Cannot set the disabled reason for a BlockChange event if the element is not "disabled".');this.disabledReason=e}isNull(){return this.oldValue===this.newValue}run(e){var t=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");if(t=t.getBlockById(this.blockId),!t)throw Error("The associated block is undefined. Either pass a block to the constructor, or call fromJson");const r=t.getIcon(Qn.MUTATOR);switch(r&&Ya(r)&&r.bubbleIsVisible()&&r.setBubbleVisible(!1),e=e?this.newValue:this.oldValue,this.element){case"field":(t=t.getField(this.name))?t.setValue(e):console.warn("Can't set non-existent field: "+this.name);break;case"comment":t.setCommentText(e||null);break;case"collapsed":t.setCollapsed(!!e);break;case"disabled":var l;t.setDisabledReason(!!e,(l=this.disabledReason)!=null?l:Bs);break;case"inline":t.setInputsInline(!!e);break;case"mutation":l=Xi.getExtraBlockState_(t),t.loadExtraState?t.loadExtraState(JSON.parse(e||"{}")):t.domToMutation&&t.domToMutation(s.textToDom$$module$build$src$core$utils$xml(e||"")),ee(new Xi(t,"mutation",null,l,e));break;default:console.warn("Unknown change type: "+this.element)}}static getExtraBlockState_(e){return e.saveExtraState?(e=e.saveExtraState(!0))?JSON.stringify(e):"":e.mutationToDom&&(e=e.mutationToDom())?ci(e):""}};i(Be.EVENT,fe.BLOCK_CHANGE,Xi);var Vc={};Vc.clamp=na,Vc.toDegrees=cm,Vc.toRadians=Ns;var Od=16,vb=1,yb=12,bg=16,Rd=.25,$g=null,Ta=null,Al="",ka="",ln,Zi,Ea,vg=null,Do=null,_b=null,yg={getBoundsInfo:function(){const e=Un(vg),t=Pn(vg);return{left:e.x,right:e.x+t.width,top:e.y,bottom:e.y+t.height,width:t.width,height:t.height}},getPositionMetrics:function(e,t,r,l){const p=yg.getBoundsInfo(),v=Pn(ln);return t+v.heightp.top?bo(r,l,p,v):t+v.heightdocument.documentElement.clientTop?bo(r,l,p,v):dm(e,p,v)}},Is={ANIMATION_TIME:Rd,ARROW_HORIZONTAL_PADDING:yb,ARROW_SIZE:Od,BORDER_SIZE:vb,PADDING_Y:bg,TEST_ONLY:yg};Is.clearContent=Kr,Is.createDom=ai,Is.getContentDiv=wn,Is.getOwner=cc,Is.getPositionX=Qa,Is.hide=tl,Is.hideIfOwner=el,Is.hideWithoutAnimation=Jr,Is.isVisible=Ru,Is.repositionForWindowResize=hc,Is.setBoundsElement=Xa,Is.setColour=uc,Is.show=Ou,Is.showPositionedByBlock=um,Is.showPositionedByField=dc;var Gc=class{constructor(e){this.workspace=e,this.cursorSvg=this.cursor=null,this.markers=new Map,this.markerSvg=null}registerMarker(e,t){this.markers.has(e)&&this.unregisterMarker(e),t.setDrawer(this.workspace.getRenderer().makeMarkerDrawer(this.workspace,t)),this.setMarkerSvg(t.getDrawer().createDom()),this.markers.set(e,t)}unregisterMarker(e){const t=this.markers.get(e);if(t)t.dispose(),this.markers.delete(e);else throw Error("Marker with ID "+e+" does not exist. Can only unregister markers that exist.")}getCursor(){return this.cursor}getMarker(e){return this.markers.get(e)||null}setCursor(e){this.cursor&&this.cursor.getDrawer()&&this.cursor.getDrawer().dispose(),(this.cursor=e)&&(e=this.workspace.getRenderer().makeMarkerDrawer(this.workspace,this.cursor),this.cursor.setDrawer(e),this.setCursorSvg(this.cursor.getDrawer().createDom()))}setCursorSvg(e){e?(this.workspace.getBlockCanvas().appendChild(e),this.cursorSvg=e):this.cursorSvg=null}setMarkerSvg(e){e?this.workspace.getBlockCanvas()&&(this.cursorSvg?this.workspace.getBlockCanvas().insertBefore(e,this.cursorSvg):this.workspace.getBlockCanvas().appendChild(e)):this.markerSvg=null}updateMarkers(){this.workspace.keyboardAccessibilityMode&&this.cursorSvg&&this.workspace.getCursor().draw()}dispose(){const e=Object.keys(this.markers);for(let t=0,r;r=e[t];t++)this.unregisterMarker(r);this.markers.clear(),this.cursor&&(this.cursor.dispose(),this.cursor=null)}};Gc.LOCAL_MARKER="local_marker_1";var Ol={};Ol.commonWordPrefix=Yh,Ol.commonWordSuffix=Mu,Ol.isNumber=s.isNumber$$module$build$src$core$utils$string,Ol.shortestStringLength=sa,Ol.wrap=s.wrap$$module$build$src$core$utils$string;var Md=void 0,Kc=!1,Rl=!1,wb=50,Cb=0,Ia=0,_g=0,wg=0,mr=null,Ml=null,Cg=0,Sg=10,Sb=10,Tb=750,xa=5,es=null,br={HOVER_MS:Tb,LIMIT:wb,MARGINS:xa,OFFSET_X:Cg,OFFSET_Y:Sg,RADIUS_OK:Sb};br.bindMouseEvents=rl,br.block=tp,br.createDom=$o,br.dispose=il,br.getCustomTooltip=hm,br.getDiv=gm,br.getTooltipOfObject=sl,br.hide=Li,br.isVisible=pm,br.setCustomTooltip=Zh,br.unbindMouseEvents=Nu,br.unblock=np;var Tg=.45,kg=.65,kb={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},jr={};jr.blend=et,jr.getHsvSaturation=rp,jr.getHsvValue=ip,jr.hexToRgb=De,jr.hsvToHex=be,jr.hueToHex=xt,jr.names=kb,jr.parse=Or,jr.rgbToHex=ie,jr.setHsvSaturation=mm,jr.setHsvValue=bm;var Jc={};Jc.checkMessageReferences=Bu,Jc.parseBlockColour=ol,Jc.replaceMessageReferences=kt,Jc.tokenizeInterpolation=qn;var vn=class{constructor(e,t,r){this.DEFAULT_VALUE=null,this.name=void 0,this.constants_=this.mouseDownWrapper=this.textContent_=this.textElement_=this.borderRect_=this.fieldGroup_=this.markerSvg=this.cursorSvg=this.tooltip=this.validator_=null,this.disposed=!1,this.maxDisplayLength=50,this.sourceBlock_=null,this.enabled_=this.visible_=this.isDirty_=!0,this.suffixField=this.prefixField=this.clickTarget_=null,this.EDITABLE=!0,this.SERIALIZABLE=!1,this.CURSOR="",this.value_="DEFAULT_VALUE"in new.target.prototype?new.target.prototype.DEFAULT_VALUE:this.DEFAULT_VALUE,this.size_=new Jt(0,0),e!==vn.SKIP_SETUP&&(r&&this.configure_(r),this.setValue(e),t&&this.setValidator(t))}configure_(e){e.tooltip&&this.setTooltip(kt(e.tooltip))}setSourceBlock(e){if(this.sourceBlock_)throw Error("Field already bound to a block");this.sourceBlock_=e}getConstants(){return!this.constants_&&this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&this.sourceBlock_.workspace.rendered&&(this.constants_=this.sourceBlock_.workspace.getRenderer().getConstants()),this.constants_}getSourceBlock(){return this.sourceBlock_}init(){this.fieldGroup_||(this.fieldGroup_=re(oe.G,{}),this.isVisible()||(this.fieldGroup_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),this.initView(),this.updateEditable(),this.setTooltip(this.tooltip),this.bindEvents_(),this.initModel(),this.applyColour())}initView(){this.createBorderRect_(),this.createTextElement_()}initModel(){}isFullBlockField(){return!this.borderRect_}createBorderRect_(){this.borderRect_=re(oe.RECT,{rx:this.getConstants().FIELD_BORDER_RECT_RADIUS,ry:this.getConstants().FIELD_BORDER_RECT_RADIUS,x:0,y:0,height:this.size_.height,width:this.size_.width,class:"blocklyFieldRect"},this.fieldGroup_)}createTextElement_(){this.textElement_=re(oe.TEXT,{class:"blocklyText"},this.fieldGroup_),this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.textElement_.setAttribute("dominant-baseline","central"),this.textContent_=document.createTextNode(""),this.textElement_.appendChild(this.textContent_)}bindEvents_(){const e=this.getClickTarget_();if(!e)throw Error("A click target has not been set.");rl(e),this.mouseDownWrapper=Ue(e,"pointerdown",this,this.onMouseDown_)}fromXml(e){this.setValue(e.textContent)}toXml(e){return e.textContent=this.getValue(),e}saveState(e){return e=this.saveLegacyState(vn),e!==null?e:this.getValue()}loadState(e){this.loadLegacyState(vn,e)||this.setValue(e)}saveLegacyState(e){return e.prototype.saveState===this.saveState&&e.prototype.toXml!==this.toXml?(e=s.createElement$$module$build$src$core$utils$xml("field"),e.setAttribute("name",this.name||""),U(this.toXml(e)).replace(' xmlns="https://developers.google.com/blockly/xml"',"")):null}loadLegacyState(e,t){return e.prototype.loadState===this.loadState&&e.prototype.fromXml!==this.fromXml?(this.fromXml(s.textToDom$$module$build$src$core$utils$xml(t)),!0):!1}dispose(){el(this),nn(this);let e;(e=this.getSourceBlock())!=null&&e.isDeadOrDying()||mt(this.fieldGroup_),this.disposed=!0}updateEditable(){const e=this.fieldGroup_,t=this.getSourceBlock();this.EDITABLE&&e&&t&&(this.enabled_&&t.isEditable()?(Fe(e,"blocklyEditableText"),pt(e,"blocklyNonEditableText"),e.style.cursor=this.CURSOR):(Fe(e,"blocklyNonEditableText"),pt(e,"blocklyEditableText"),e.style.cursor=""))}setEnabled(e){this.enabled_=e,this.updateEditable()}isEnabled(){return this.enabled_}isClickable(){return this.enabled_&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()&&this.showEditor_!==vn.prototype.showEditor_}isClickableInFlyout(e){return!e}isCurrentlyEditable(){return this.enabled_&&this.EDITABLE&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()}isSerializable(){let e=!1;return this.name&&(this.SERIALIZABLE?e=!0:this.EDITABLE&&(console.warn("Detected an editable field that was not serializable. Please define SERIALIZABLE property as true on all editable custom fields. Proceeding with serialization."),e=!0)),e}isVisible(){return this.visible_}setVisible(e){if(this.visible_!==e){this.visible_=e;var t=this.fieldGroup_;t&&(t.style.display=e?"block":"none")}}setValidator(e){this.validator_=e}getValidator(){return this.validator_}getSvgRoot(){return this.fieldGroup_}getBorderRect(){if(!this.borderRect_)throw Error(`The border rectangle is ${this.borderRect_}.`);return this.borderRect_}getTextElement(){if(!this.textElement_)throw Error(`The text element is ${this.textElement_}.`);return this.textElement_}getTextContent(){if(!this.textContent_)throw Error(`The text content is ${this.textContent_}.`);return this.textContent_}applyColour(){}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_()),this.updateSize_()}showEditor(e){this.isClickable()&&this.showEditor_(e)}showEditor_(e){}repositionForWindowResize(){return!1}updateSize_(e){const t=this.getConstants();e=e!==void 0?e:this.isFullBlockField()?0:this.getConstants().FIELD_BORDER_RECT_X_PADDING;let r=2*e,l=t.FIELD_TEXT_HEIGHT,p=0;this.textElement_&&(p=ns(this.textElement_,t.FIELD_TEXT_FONTSIZE,t.FIELD_TEXT_FONTWEIGHT,t.FIELD_TEXT_FONTFAMILY),r+=p),this.isFullBlockField()||(l=Math.max(l,t.FIELD_BORDER_RECT_HEIGHT)),this.size_.height=l,this.size_.width=r,this.positionTextElement_(e,p),this.positionBorderRect_()}positionTextElement_(e,t){if(this.textElement_){var r=this.getConstants(),l=this.size_.height/2,p;this.textElement_.setAttribute("x",String((p=this.getSourceBlock())!=null&&p.RTL?this.size_.width-t-e:e)),this.textElement_.setAttribute("y",String(r.FIELD_TEXT_BASELINE_CENTER?l:l-r.FIELD_TEXT_HEIGHT/2+r.FIELD_TEXT_BASELINE))}}positionBorderRect_(){this.borderRect_&&(this.borderRect_.setAttribute("width",String(this.size_.width)),this.borderRect_.setAttribute("height",String(this.size_.height)),this.borderRect_.setAttribute("rx",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)),this.borderRect_.setAttribute("ry",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)))}getSize(){return this.isVisible()?(this.isDirty_?(this.render_(),this.isDirty_=!1):this.visible_&&this.size_.width===0&&(this.render_(),this.size_.width!==0&&console.warn("Deprecated use of setting size_.width to 0 to rerender a field. Set field.isDirty_ to true instead.")),this.size_):new Jt(0,0)}getScaledBBox(){let e;var t=this.getSourceBlock();if(!t)throw new Gn;if(this.isFullBlockField()){var r=this.sourceBlock_.getHeightWidth();const l=t.workspace.scale;e=this.getAbsoluteXY_(),t=(r.width+1)*l,r=(r.height+1)*l,Zp?(e.x+=1.5*l,e.y+=1.5*l):(e.x-=.5*l,e.y-=.5*l)}else r=this.borderRect_.getBoundingClientRect(),e=Un(this.borderRect_),t=r.width,r=r.height;return new Bt(e.y,e.y+r,e.x,e.x+t)}onLocationChange(e){}getDisplayText_(){let e=this.getText();return e?(e.length>this.maxDisplayLength&&(e=e.substring(0,this.maxDisplayLength-2)+"…"),e=e.replace(/\s/g,vn.NBSP),this.sourceBlock_&&this.sourceBlock_.RTL&&(e+="‏"),e):vn.NBSP}getText(){const e=this.getText_();return String(e!==null?e:this.getValue())}getText_(){return null}markDirty(){this.isDirty_=!0,this.constants_=null}forceRerender(){this.isDirty_=!0,this.sourceBlock_&&this.sourceBlock_.rendered&&this.sourceBlock_.queueRender()}setValue(e,t=!0){if(e!==null){var r=s.getGroup$$module$build$src$core$events$utils();r||s.setGroup$$module$build$src$core$events$utils(!0);try{const Ie=this.doClassValidation_(e),Qe=this.processValidation(e,Ie,t);if(!(Qe instanceof Error)){var l,p=(l=this.getValidator())==null?void 0:l.call(this,Qe),v=this.processValidation(Qe,p,t);if(!(v instanceof Error)){var O=this.sourceBlock_;if(!O||!O.disposed){var G=this.getValue();G===v?this.doValueUpdate_(v):(this.doValueUpdate_(v),t&&O&&te()&&ee(new(Ce(fe.BLOCK_CHANGE))(O,"field",this.name||null,G,v)),this.isDirty_&&this.forceRerender())}}}}finally{s.setGroup$$module$build$src$core$events$utils(r)}}}processValidation(e,t,r){return t===null?(this.doValueInvalid_(e,r),this.isDirty_&&this.forceRerender(),Error()):t===void 0?e:t}getValue(){return this.value_}doClassValidation_(e){return e??null}doValueUpdate_(e){this.value_=e,this.isDirty_=!0}doValueInvalid_(e,t){}onMouseDown_(e){this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&(e=this.sourceBlock_.workspace.getGesture(e))&&e.setStartField(this)}setTooltip(e){e||e===""||(e=this.sourceBlock_);const t=this.getClickTarget_();t?t.tooltip=e:this.tooltip=e}getTooltip(){const e=this.getClickTarget_();return sl(e||{tooltip:this.tooltip})}getClickTarget_(){return this.clickTarget_||this.getSvgRoot()}getAbsoluteXY_(){return Un(this.getClickTarget_())}referencesVariables(){return!1}refreshVariableName(){}getParentInput(){let e=null;const t=this.getSourceBlock();if(!t)throw new Gn;const r=t.inputList;for(let l=0;l{r.stopPropagation()})}addModelUpdateBindings(){this.view.addTextChangeListener((e,t)=>void super.setText(t)),this.view.addSizeChangeListener((e,t)=>void super.setSize(t)),this.view.addOnCollapseListener(()=>void super.setCollapsed(this.view.isCollapsed())),this.view.addDisposeListener(()=>{this.isDeadOrDying()||this.dispose()})}setText(e){this.view.setText(e)}setSize(e){this.view.setSize(e)}setCollapsed(e){this.view.setCollapsed(e)}setEditable(e){super.setEditable(e),this.view.setEditable(this.isEditable())}getSvgRoot(){return this.view.getSvgRoot()}getSize(){return super.getSize()}getBoundingRectangle(){const e=this.getRelativeToSurfaceXY();var t,r;const l=(r=(t=this.view)==null?void 0:t.getSize())!=null?r:this.getSize();return this.workspace.RTL?(t=e.x-l.width,r=e.x):(t=e.x,r=e.x+l.width),new Bt(e.y,e.y+l.height,t,r)}moveBy(e,t,r){const l=this.getRelativeToSurfaceXY();e=new Le(l.x+e,l.y+t),this.moveTo(e,r)}moveTo(e,t){super.moveTo(e,t),this.view.moveTo(e)}moveDuringDrag(e){this.location=e,this.view.moveTo(e)}setDragging(e){e?Fe(this.getSvgRoot(),"blocklyDragging"):pt(this.getSvgRoot(),"blocklyDragging")}dispose(){this.disposing=!0,this.view.isDeadOrDying()||this.view.dispose(),super.dispose()}startGesture(e){const t=this.workspace.getGesture(e);if(t){if(qt(e))e.stopPropagation();else{t.handleCommentStart(e,this);let r;(r=this.workspace.getLayerManager())==null||r.append(this,Ao)}s.setSelected$$module$build$src$core$common(this)}}setDeleteStyle(e){e?Fe(this.getSvgRoot(),"blocklyDraggingDelete"):pt(this.getSvgRoot(),"blocklyDraggingDelete")}isMovable(){return this.dragStrategy.isMovable()}startDrag(){this.dragStrategy.startDrag()}drag(e){this.dragStrategy.drag(e)}endDrag(){this.dragStrategy.endDrag()}revertDrag(){this.dragStrategy.revertDrag()}select(){Fe(this.getSvgRoot(),"blocklySelected")}unselect(){pt(this.getSvgRoot(),"blocklySelected")}toCopyData(){return{paster:Id.TYPE,commentState:In(this,{addCoordinates:!0})}}showContextMenu(e){const t=zt.registry.getContextMenuOptions(zt.ScopeType.COMMENT,{comment:this});dl(e,t,this.workspace.RTL,this.workspace)}snapToGrid(){if(!this.isDeadOrDying()){var e=this.workspace.getGrid();if(e!=null&&e.shouldSnap()){var t=this.getRelativeToSurfaceXY();e=e.alignXY(t),e!==t&&this.moveTo(e,["snap"])}}}},xs={};xs.appendDomToWorkspace=Cm,xs.blockToDom=zi,xs.blockToDomWithXY=vo,xs.clearWorkspaceAndLoadFromXml=fs,xs.deleteNext=Tm,xs.domToBlock=s.domToBlock$$module$build$src$core$xml,xs.domToBlockInternal=yo,xs.domToPrettyText=Xn,xs.domToText=ci,xs.domToVariables=dp,xs.domToWorkspace=s.domToWorkspace$$module$build$src$core$xml,xs.loadWorkspaceComment=up,xs.saveWorkspaceComment=bc,xs.variablesToDom=pl,xs.workspaceToDom=_m;var xg=class extends Sa{constructor(e){super(e),this.type=fe.BLOCK_CREATE,e&&(e.isShadow()&&(this.recordUndo=!1),this.xml=vo(e),this.ids=Z(e),this.json=Qt(e,{addCoordinates:!0}))}toJson(){const e=super.toJson();if(!this.xml)throw Error("The block XML is undefined. Either pass a block to the constructor, or call fromJson");if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");return e.xml=ci(this.xml),e.ids=this.ids,e.json=this.json,this.recordUndo||(e.recordUndo=this.recordUndo),e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new xg),t.xml=s.textToDom$$module$build$src$core$utils$xml(e.xml),t.ids=e.ids,t.json=e.json,e.recordUndo!==void 0&&(t.recordUndo=e.recordUndo),t}run(e){const t=this.getEventWorkspace_();if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!iy(t,this.ids))if(e)Ni(this.json,t);else for(e=0;ee.getBlockById(r)).filter(r=>r&&r.isShadow()).length===t.length};i(Be.EVENT,fe.BLOCK_CREATE,xg);var Dg=class extends Es{constructor(e,t){super(t),this.type=fe.THEME_CHANGE,this.themeName=e}toJson(){const e=super.toJson();if(!this.themeName)throw Error("The theme name is undefined. Either pass a theme name to the constructor, or call fromJson");return e.themeName=this.themeName,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Dg),t.themeName=e.themeName,t}};i(Be.EVENT,fe.THEME_CHANGE,Dg);var Ag=class extends Es{constructor(e,t,r,l,p){super(l),this.type=fe.VIEWPORT_CHANGE,this.viewTop=e,this.viewLeft=t,this.scale=r,this.oldScale=p}toJson(){const e=super.toJson();if(this.viewTop===void 0)throw Error("The view top is undefined. Either pass a value to the constructor, or call fromJson");if(this.viewLeft===void 0)throw Error("The view left is undefined. Either pass a value to the constructor, or call fromJson");if(this.scale===void 0)throw Error("The scale is undefined. Either pass a value to the constructor, or call fromJson");if(this.oldScale===void 0)throw Error("The old scale is undefined. Either pass a value to the constructor, or call fromJson");return e.viewTop=this.viewTop,e.viewLeft=this.viewLeft,e.scale=this.scale,e.oldScale=this.oldScale,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Ag),t.viewTop=e.viewTop,t.viewLeft=e.viewLeft,t.scale=e.scale,t.oldScale=e.oldScale,t}};i(Be.EVENT,fe.VIEWPORT_CHANGE,Ag);var Ze;(function(e){e[e.INPUT_VALUE=1]="INPUT_VALUE",e[e.OUTPUT_VALUE=2]="OUTPUT_VALUE",e[e.NEXT_STATEMENT=3]="NEXT_STATEMENT",e[e.PREVIOUS_STATEMENT=4]="PREVIOUS_STATEMENT"})(Ze||(Ze={}));var Ll=class{constructor(e){this.connectionChecker=e,this.connections=[]}addConnection(e,t){t=this.calculateIndexForYPos(t),this.connections.splice(t,0,e)}findIndexOfConnection(e,t){if(!this.connections.length)return-1;const r=this.calculateIndexForYPos(t);if(r>=this.connections.length)return-1;t=e.y;let l=r;for(;0<=l&&this.connections[l].y===t;){if(this.connections[l]===e)return l;l--}for(l=r;le)r=l;else{t=l;break}}return t}removeConnection(e,t){if(e=this.findIndexOfConnection(e,t),e===-1)throw Error("Unable to find connection in connectionDB.");this.connections.splice(e,1)}getNeighbours(e,t){function r(Qe){const Mn=p-l[Qe].x,On=v-l[Qe].y;return Math.sqrt(Mn*Mn+On*On)<=t&&Ie.push(l[Qe]),On(this.flyout?s.config$$module$build$src$core$config.flyoutDragRadius:s.config$$module$build$src$core$config.dragRadius)}updateIsDraggingFromFlyout(){let e;if(!this.targetBlock||(e=this.flyout)==null||!e.isBlockCreatable(this.targetBlock))return!1;if(!this.flyout.targetWorkspace)throw Error(`Cannot update dragging from the flyout because the ' + - 'flyout's target workspace is undefined`);return!this.flyout.isScrollable()||this.flyout.isDragTowardWorkspace(this.currentDragDeltaXY)?(this.startWorkspace_=this.flyout.targetWorkspace,this.startWorkspace_.updateScreenCalculationsIfScrolled(),s.getGroup$$module$build$src$core$events$utils()||s.setGroup$$module$build$src$core$events$utils(!0),this.startBlock=null,this.targetBlock=this.flyout.createBlock(this.targetBlock),s.setSelected$$module$build$src$core$common(this.targetBlock),!0):!1}updateIsDraggingWorkspace(){if(!this.startWorkspace_)throw Error("Cannot update dragging the workspace because the start workspace is undefined");(this.flyout?this.flyout.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())&&(this.dragging=!0,this.workspaceDragger=new xb(this.startWorkspace_),this.workspaceDragger.startDrag())}updateIsDragging(e){if(!this.startWorkspace_)throw Error("Cannot update dragging because the start workspace is undefined");if(this.calledUpdateIsDragging)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging=!0,this.flyout&&this.updateIsDraggingFromFlyout();const t=ne();t&&ui(t)&&t.isMovable()?(this.dragging=!0,this.dragger=this.createDragger(t,this.startWorkspace_),this.dragger.onDragStart(e),this.dragger.onDrag(e,this.currentDragDeltaXY)):this.updateIsDraggingWorkspace()}createDragger(e,t){return new(w(Be.BLOCK_DRAGGER,this.creatorWorkspace.options,!0))(e,t)}doStart(e){if(!this.startWorkspace_)throw Error("Cannot start the touch gesture becauase the start workspace is undefined");this.isPinchZoomEnabled=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch,qt(e)?this.cancel():(this.gestureHasStarted=!0,qr(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),this.currentDropdownOwner=cc(),this.startWorkspace_.hideChaff(!!this.flyout),this.startWorkspace_.markFocused(),this.mostRecentEvent=e,tp(),ct(e)?this.handleRightClick(e):(e.type.toLowerCase()==="pointerdown"&&e.pointerType!=="mouse"&&St(e,this),this.mouseDownXY=new Le(e.clientX,e.clientY),this.bindMouseEvents(e),this.isEnding_||this.handleTouchStart(e)))}bindMouseEvents(e){this.boundEvents.push(Ue(document,"pointerdown",null,this.handleStart.bind(this),!0)),this.boundEvents.push(Ue(document,"pointermove",null,this.handleMove.bind(this),!0)),this.boundEvents.push(Ue(document,"pointerup",null,this.handleUp.bind(this),!0)),e.preventDefault(),e.stopPropagation()}handleStart(e){this.isDragging()||(this.handleTouchStart(e),this.isMultiTouch()&<())}handleMove(e){this.isDragging()&&st(e)||!this.isMultiTouch()?(this.updateFromEvent(e),this.workspaceDragger?this.workspaceDragger.drag(this.currentDragDeltaXY):this.dragger&&this.dragger.onDrag(this.mostRecentEvent,this.currentDragDeltaXY),e.preventDefault(),e.stopPropagation()):this.isMultiTouch()&&(this.handleTouchMove(e),lt())}handleUp(e){if(this.isDragging()||this.handleTouchEnd(e),!this.isMultiTouch()||this.isDragging()){if(!st(e))return;if(this.updateFromEvent(e),lt(),this.isEnding_){console.log("Trying to end a gesture recursively.");return}this.isEnding_=!0,this.dragger?this.dragger.onDragEnd(e,this.currentDragDeltaXY):this.workspaceDragger?this.workspaceDragger.endDrag(this.currentDragDeltaXY):this.isBubbleClick()||this.isCommentClick()||(this.isFieldClick()?this.doFieldClick():this.isIconClick()?this.doIconClick():this.isBlockClick()?this.doBlockClick():this.isWorkspaceClick()&&this.doWorkspaceClick(e))}e.preventDefault(),e.stopPropagation(),this.dispose()}handleTouchStart(e){var t=At(e);this.cachedPoints.set(t,this.getTouchPoint(e));var r=Array.from(this.cachedPoints.keys());r.length===2&&(t=this.cachedPoints.get(r[0]),r=this.cachedPoints.get(r[1]),this.startDistance=Le.distance(t,r),this.multiTouch=!0,e.preventDefault())}handleTouchMove(e){const t=At(e);this.cachedPoints.set(t,this.getTouchPoint(e)),this.isPinchZoomEnabled&&this.cachedPoints.size===2?this.handlePinch(e):(this.updateFromEvent(e),this.workspaceDragger?this.workspaceDragger.drag(this.currentDragDeltaXY):this.dragger&&this.dragger.onDrag(this.mostRecentEvent,this.currentDragDeltaXY),e.preventDefault(),e.stopPropagation())}handlePinch(e){var t=Array.from(this.cachedPoints.keys()),r=this.cachedPoints.get(t[0]);if(t=this.cachedPoints.get(t[1]),r=Le.distance(r,t)/this.startDistance,0this.previousScale){if(t=r-this.previousScale,t=0this.cachedPoints.size&&(this.cachedPoints.clear(),this.previousScale=0)}getTouchPoint(e){return this.startWorkspace_?new Le(e.pageX,e.pageY):null}isMultiTouch(){return this.multiTouch}cancel(){this.isEnding_||(lt(),this.dragger?this.dragger.onDragEnd(this.mostRecentEvent,this.currentDragDeltaXY):this.workspaceDragger&&this.workspaceDragger.endDrag(this.currentDragDeltaXY),this.dispose())}handleRightClick(e){this.targetBlock?(this.bringBlockToFront(),this.targetBlock.workspace.hideChaff(!!this.flyout),this.targetBlock.showContextMenu(e)):this.startBubble?this.startBubble.showContextMenu(e):this.startComment?(this.startComment.workspace.hideChaff(),this.startComment.showContextMenu(e)):this.startWorkspace_&&!this.flyout&&(this.startWorkspace_.hideChaff(),this.startWorkspace_.showContextMenu(e)),e.preventDefault(),e.stopPropagation(),this.dispose()}handleWsStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleWsStart, but the gesture had already been started.");this.setStartWorkspace(t),this.mostRecentEvent=e,this.startBlock||this.startBubble||this.startComment||s.setSelected$$module$build$src$core$common(null),this.doStart(e)}fireWorkspaceClick(e){ee(new(Ce(fe.CLICK))(null,e.id,"workspace"))}handleFlyoutStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleFlyoutStart, but the gesture had already been started.");this.setStartFlyout(t),this.handleWsStart(e,t.getWorkspace())}handleBlockStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleBlockStart, but the gesture had already been started.");this.setStartBlock(t),this.mostRecentEvent=e}handleBubbleStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleBubbleStart, but the gesture had already been started.");this.setStartBubble(t),this.mostRecentEvent=e}handleCommentStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleCommentStart, but the gesture had already been started.");this.setStartComment(t),this.mostRecentEvent=e}doFieldClick(){if(!this.startField)throw Error("Cannot do a field click because the start field is undefined");this.currentDropdownOwner!==this.startField&&this.startField.showEditor(this.mostRecentEvent),this.bringBlockToFront()}doIconClick(){if(!this.startIcon)throw Error("Cannot do an icon click because the start icon is undefined");this.bringBlockToFront(),this.startIcon.onClick()}doBlockClick(){if(this.flyout&&this.flyout.autoClose){if(!this.targetBlock)throw Error("Cannot do a block click because the target block is undefined");if(this.targetBlock.isEnabled()){s.getGroup$$module$build$src$core$events$utils()||s.setGroup$$module$build$src$core$events$utils(!0);var e=this.flyout.createBlock(this.targetBlock);e.snapToGrid(),e.bumpNeighbours()}}else{if(!this.startWorkspace_)throw Error("Cannot do a block click because the start workspace is undefined");e=new(Ce(fe.CLICK))(this.startBlock,this.startWorkspace_.id,"block"),ee(e)}this.bringBlockToFront(),s.setGroup$$module$build$src$core$events$utils(!1)}doWorkspaceClick(e){e=this.creatorWorkspace,ne()&&ne().unselect(),this.fireWorkspaceClick(this.startWorkspace_||e)}bringBlockToFront(){this.targetBlock&&!this.flyout&&this.targetBlock.bringToFront()}setStartField(e){if(this.gestureHasStarted)throw Error("Tried to call gesture.setStartField, but the gesture had already been started.");this.startField||(this.startField=e)}setStartIcon(e){if(this.gestureHasStarted)throw Error("Tried to call gesture.setStartIcon, but the gesture had already been started.");this.startIcon||(this.startIcon=e)}setStartBubble(e){this.startBubble||(this.startBubble=e)}setStartComment(e){this.startComment||(this.startComment=e)}setStartBlock(e){this.startBlock||this.startBubble||(this.startBlock=e,s.setSelected$$module$build$src$core$common(this.startBlock),e.isInFlyout&&e!==e.getRootBlock()?this.setTargetBlock(e.getRootBlock()):this.setTargetBlock(e))}setTargetBlock(e){e.isShadow()?this.setTargetBlock(e.getParent()):this.targetBlock=e}setStartWorkspace(e){this.startWorkspace_||(this.startWorkspace_=e)}setStartFlyout(e){this.flyout||(this.flyout=e)}isBubbleClick(){return!!this.startBubble&&!this.hasExceededDragRadius}isCommentClick(){return!!this.startComment&&!this.hasExceededDragRadius}isBlockClick(){return!!this.startBlock&&!this.hasExceededDragRadius&&!this.isFieldClick()&&!this.isIconClick()}isFieldClick(){return this.startField?this.startField.isClickable()&&!this.hasExceededDragRadius&&(!this.flyout||this.startField.isClickableInFlyout(this.flyout.autoClose)):!1}isIconClick(){if(!this.startIcon)return!1;const e=!this.flyout||!this.startIcon.isClickableInFlyout||this.startIcon.isClickableInFlyout(this.flyout.autoClose);return!this.hasExceededDragRadius&&e}isWorkspaceClick(){return!this.startBlock&&!this.startBubble&&!this.startField&&!this.hasExceededDragRadius}getCurrentDragger(){let e,t;return(t=(e=this.workspaceDragger)!=null?e:this.dragger)!=null?t:null}isDragging(){return this.dragging}hasStarted(){return this.gestureHasStarted}static inProgress(){const e=Ae();for(let t=0,r;r=e[t];t++)if(r.currentGesture_)return!0;return!1}},eo=class{constructor(e,t){this.pattern=e,this.scale=1;let r;this.spacing=(r=t.spacing)!=null?r:0;let l;this.length=(l=t.length)!=null?l:1,this.line2=(this.line1=e.firstChild)&&this.line1.nextSibling;let p;this.snapToGrid=(p=t.snap)!=null?p:!1}setSpacing(e){this.spacing=e,this.update(this.scale)}getSpacing(){return this.spacing}setLength(e){this.length=e,this.update(this.scale)}getLength(){return this.length}setSnapToGrid(e){this.snapToGrid=e}shouldSnap(){return this.snapToGrid}getPatternId(){return this.pattern.id}update(e){this.scale=e;var t=this.spacing*e;this.pattern.setAttribute("width",`${t}`),this.pattern.setAttribute("height",`${t}`),t=Math.floor(this.spacing/2)+.5;let r=t-this.length/2,l=t+this.length/2;t*=e,r*=e,l*=e,this.setLineAttributes(this.line1,e,r,l,t,t),this.setLineAttributes(this.line2,e,t,t,r,l)}setLineAttributes(e,t,r,l,p,v){e&&(e.setAttribute("stroke-width",`${t}`),e.setAttribute("x1",`${r}`),e.setAttribute("y1",`${p}`),e.setAttribute("x2",`${l}`),e.setAttribute("y2",`${v}`))}moveTo(e,t){this.pattern.setAttribute("x",`${e}`),this.pattern.setAttribute("y",`${t}`)}alignXY(e){var t=this.getSpacing();const r=t/2,l=Math.round(Math.round((e.x-r)/t)*t+r);return t=Math.round(Math.round((e.y-r)/t)*t+r),l===e.x&&t===e.y?e:new Le(l,t)}static createDom(e,t,r){e=re(oe.PATTERN,{id:"blocklyGridPattern"+e,patternUnits:"userSpaceOnUse"},r);let l,p;if(0<((l=t.length)!=null?l:1)&&0<((p=t.spacing)!=null?p:0)){re(oe.LINE,{stroke:t.colour},e);let v;(v=t.length)!=null&&v&&re(oe.LINE,{stroke:t.colour},e)}else re(oe.LINE,{},e);return e}},jt=class{constructor(e){this.workspace=e,this.layers=new Map,(e=e.getInjectionDiv())&&(this.dragLayer=this.createDragLayer(e),this.animationLayer=this.createAnimationLayer(e)),e=this.createLayer(Ao),Fe(e,"blocklyBlockCanvas"),e=this.createLayer(Ma),Fe(e,"blocklyBubbleCanvas")}createDragLayer(e){const t=re(oe.SVG,{class:"blocklyBlockDragSurface",xmlns:Nc,"xmlns:html":bi,"xmlns:xlink":nr,version:"1.1"});return e.append(t),re(oe.G,{},t)}createAnimationLayer(e){const t=re(oe.SVG,{class:"blocklyAnimationLayer",xmlns:Nc,"xmlns:html":bi,"xmlns:xlink":nr,version:"1.1"});return e.append(t),re(oe.G,{},t)}appendToAnimationLayer(e){let t;const r=(t=this.dragLayer)==null?void 0:t.getAttribute("transform");if(r){let p;(p=this.animationLayer)==null||p.setAttribute("transform",r)}let l;(l=this.animationLayer)==null||l.appendChild(e.getSvgRoot())}translateLayers(e,t){e=`translate(${e.x}, ${e.y}) scale(${t})`;let r;(r=this.dragLayer)==null||r.setAttribute("transform",e);for(const[,l]of this.layers)l.setAttribute("transform",e)}moveToDragLayer(e){let t;(t=this.dragLayer)==null||t.appendChild(e.getSvgRoot())}moveOffDragLayer(e,t){this.append(e,t)}append(e,t){this.layers.has(t)||this.createLayer(t);let r;(r=this.layers.get(t))==null||r.appendChild(e.getSvgRoot())}createLayer(e){const t=this.workspace.getSvgGroup(),r=re(oe.G,{});let l=!1;const p=[...this.layers].sort((v,O)=>v[0]-O[0]);for(const[v,O]of p)if(et[1]===e)?e:(this.sourceBlock_&&console.warn("Cannot set the dropdown's value to an unavailable option. Block type: "+this.sourceBlock_.type+", Field name: "+this.name+", Value: "+e),null)}doValueUpdate_(e){super.doValueUpdate_(e),e=this.getOptions(!0);for(let t=0,r;r=e[t];t++)r[1]===this.value_&&(this.selectedOption=r)}applyColour(){const e=this.sourceBlock_;this.borderRect_&&(this.borderRect_.setAttribute("stroke",e.getColourTertiary()),this.menu_?this.borderRect_.setAttribute("fill",e.getColourTertiary()):this.borderRect_.setAttribute("fill","transparent")),e&&this.arrow&&(e.isShadow()?this.arrow.style.fill=e.getColourSecondary():this.arrow.style.fill=e.getColour())}render_(){this.getTextContent().nodeValue="",this.imageElement.style.display="none";const e=this.selectedOption&&this.selectedOption[0];e&&typeof e=="object"?this.renderSelectedImage(e):this.renderSelectedText(),this.positionBorderRect_()}renderSelectedImage(e){const t=this.getSourceBlock();if(!t)throw new Gn;this.imageElement.style.display="",this.imageElement.setAttributeNS(nr,"xlink:href",e.src),this.imageElement.setAttribute("height",String(e.height)),this.imageElement.setAttribute("width",String(e.width));const r=Number(e.height);e=Number(e.width);var l=!!this.borderRect_;const p=Math.max(l?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,r+rr.IMAGE_Y_PADDING);l=l?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;let v;v=this.svgArrow?this.positionSVGArrow(e+l,p/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2):ns(this.arrow,this.getConstants().FIELD_TEXT_FONTSIZE,this.getConstants().FIELD_TEXT_FONTWEIGHT,this.getConstants().FIELD_TEXT_FONTFAMILY),this.size_.width=e+v+2*l,this.size_.height=p;let O=0;t.RTL?this.imageElement.setAttribute("x",`${l+v}`):(O=e+v,this.getTextElement().setAttribute("text-anchor","end"),this.imageElement.setAttribute("x",`${l}`)),this.imageElement.setAttribute("y",String(p/2-r/2)),this.positionTextElement_(O+l,e+v)}renderSelectedText(){this.getTextContent().nodeValue=this.getDisplayText_();var e=this.getTextElement();Fe(e,"blocklyDropdownText"),e.setAttribute("text-anchor","start");var t=!!this.borderRect_;e=Math.max(t?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,this.getConstants().FIELD_TEXT_HEIGHT);const r=ns(this.getTextElement(),this.getConstants().FIELD_TEXT_FONTSIZE,this.getConstants().FIELD_TEXT_FONTWEIGHT,this.getConstants().FIELD_TEXT_FONTFAMILY);t=t?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;let l=0;this.svgArrow&&(l=this.positionSVGArrow(r+t,e/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2)),this.size_.width=r+l+2*t,this.size_.height=e,this.positionTextElement_(t,r)}positionSVGArrow(e,t){if(!this.svgArrow)return 0;const r=this.getSourceBlock();if(!r)throw new Gn;const l=this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0,p=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_PADDING,v=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE;return this.svgArrow.setAttribute("transform","translate("+(r.RTL?l:e+p)+","+t+")"),v+p}getText_(){if(!this.selectedOption)return null;const e=this.selectedOption[0];return typeof e=="object"?e.alt:e}static fromJson(e){if(!e.options)throw Error("options are required for the dropdown field. The options property must be assigned an array of [humanReadableValue, languageNeutralValue] tuples.");return new this(e.options,void 0,e)}trimOptions(e){let t=!1;const r=e.map(([O,G])=>typeof O=="string"?[kt(O),G]:(t=!0,[O.alt!==null?Object.assign({},O,{alt:kt(O.alt)}):Object.assign({},O),G]));if(t||2>e.length)return{options:r};var l=r.map(([O])=>O),p=sa(l);e=Yh(l,p);const v=Mu(l,p);return!e&&!v||p<=e+v?{options:r}:(p=e?l[0].substring(0,e-1):void 0,l=v?l[0].substr(1-v):void 0,{options:this.applyTrim(r,e,v),prefix:p,suffix:l})}applyTrim(e,t,r){return e.map(([l,p])=>[l.substring(t,l.length-r),p])}validateOptions(e){if(!Array.isArray(e))throw TypeError("FieldDropdown options must be an array.");if(!e.length)throw TypeError("FieldDropdown options must not be an empty array.");let t=!1;for(let r=0;re.width)return t;if(e=this.getWorkspaceViewRect(e),this.workspace.RTL){var r=this.anchor.x-t;r-this.size.widthe.right&&(t=-(e.right-this.anchor.x))}else{r=t+this.anchor.x;const l=r+this.size.width;re.right&&(t=e.right-this.anchor.x-this.size.width)}return t}getOptimalRelativeTop(e){let t=-this.size.height/4;if(this.size.height>e.height)return t;const r=this.anchor.y+t,l=r+this.size.height;return e=this.getWorkspaceViewRect(e),re.bottom&&(t=e.bottom-this.anchor.y-this.size.height),t}getWorkspaceViewRect(e){const t=e.top;let r=e.top+e.height,l=e.left;return e=e.left+e.width,r-=this.getScrollbarThickness(),this.workspace.RTL?l-=this.getScrollbarThickness():e-=this.getScrollbarThickness(),new Bt(t,r,l,e)}getScrollbarThickness(){return Fn.scrollbarThickness/this.workspace.scale}renderTail(){const e=[];var t=this.size.width/2,r=this.size.height/2,l=-this.relativeLeft,p=-this.relativeTop;if(t===l&&r===p)e.push("M "+t+","+r);else{p-=r,l-=t,this.workspace.RTL&&(l*=-1);var v=Math.sqrt(p*p+l*l),O=Math.acos(l/v);0>p&&(O=2*Math.PI-O);var G=O+Math.PI/2;G>2*Math.PI&&(G-=2*Math.PI);var Ie=Math.sin(G);const Mn=Math.cos(G);let On=(this.size.width+this.size.height)/Ps.TAIL_THICKNESS;On=Math.min(On,this.size.width,this.size.height)/4,G=1-Ps.ANCHOR_RADIUS/v,l=t+G*l,p=r+G*p,G=t+On*Mn;const Vr=r+On*Ie;t-=On*Mn,r-=On*Ie,Ie=Ns(this.workspace.RTL?-Ps.TAIL_ANGLE:Ps.TAIL_ANGLE),Ie=O+Ie,Ie>2*Math.PI&&(Ie-=2*Math.PI),O=Math.sin(Ie)*v/Ps.TAIL_BEND,v=Math.cos(Ie)*v/Ps.TAIL_BEND,e.push("M"+G+","+Vr),e.push("C"+(G+v)+","+(Vr+O)+" "+l+","+p+" "+l+","+p),e.push("C"+l+","+p+" "+(t+v)+","+(r+O)+" "+t+","+r)}e.push("z");let Qe;(Qe=this.tail)==null||Qe.setAttribute("d",e.join(" "))}bringToFront(){let e;const t=(e=this.svgRoot)==null?void 0:e.parentNode;return this.svgRoot&&(t==null?void 0:t.lastChild)!==this.svgRoot?(t==null||t.appendChild(this.svgRoot),!0):!1}getRelativeToSurfaceXY(){return new Le(this.workspace.RTL?-this.relativeLeft+this.anchor.x-this.size.width:this.anchor.x+this.relativeLeft,this.anchor.y+this.relativeTop)}getSvgRoot(){return this.svgRoot}moveDuringDrag(e){this.moveTo(e.x,e.y),this.relativeLeft=this.workspace.RTL?this.anchor.x-e.x-this.size.width:e.x-this.anchor.x,this.relativeTop=e.y-this.anchor.y,this.renderTail()}setDragging(e){}setDeleteStyle(e){}isDeletable(){return!1}showContextMenu(e){}isMovable(){return!0}startDrag(){this.dragStrategy.startDrag()}drag(e){this.dragStrategy.drag(e)}endDrag(){this.dragStrategy.endDrag()}revertDrag(){this.dragStrategy.revertDrag()}select(){}unselect(){}};Ps=fn,fn.BORDER_WIDTH=6,fn.DOUBLE_BORDER=2*Ps.BORDER_WIDTH,fn.MIN_SIZE=Ps.DOUBLE_BORDER,fn.TAIL_THICKNESS=1,fn.TAIL_ANGLE=20,fn.TAIL_BEND=4,fn.ANCHOR_RADIUS=8;var vs=class extends fn{constructor(e,t,r,l){super(t,r,l),this.workspace=t,this.anchor=r,this.ownerRect=l,this.autoLayout=!0,t=new zr(e),this.validateWorkspaceOptions(t),this.svgDialog=re(oe.SVG,{x:fn.BORDER_WIDTH,y:fn.BORDER_WIDTH},this.contentContainer),e.parentWorkspace=this.workspace,this.miniWorkspace=this.newWorkspaceSvg(new zr(e)),this.miniWorkspace.internalIsMutator=!0,e=this.miniWorkspace.createDom("blocklyMutatorBackground"),this.svgDialog.appendChild(e),t.languageTree&&(e.insertBefore(this.miniWorkspace.addFlyout(oe.G),this.miniWorkspace.getCanvas()),e=this.miniWorkspace.getFlyout(),e==null||e.init(this.miniWorkspace),e==null||e.show(t.languageTree)),this.miniWorkspace.addChangeListener(this.onWorkspaceChange.bind(this));let p,v;(p=this.miniWorkspace.getFlyout())==null||(v=p.getWorkspace())==null||v.addChangeListener(this.onWorkspaceChange.bind(this)),this.updateBubbleSize()}dispose(){this.miniWorkspace.dispose(),super.dispose()}getWorkspace(){return this.miniWorkspace}addWorkspaceChangeListener(e){this.miniWorkspace.addChangeListener(e)}validateWorkspaceOptions(e){if(e.hasCategories)throw Error("The miniworkspace bubble does not support toolboxes with categories");if(e.hasTrashcan)throw Error("The miniworkspace bubble does not support trashcans");if(e.zoomOptions.controls||e.zoomOptions.wheel||e.zoomOptions.pinch)throw Error("The miniworkspace bubble does not support zooming");if(e.moveOptions.scrollbars||e.moveOptions.wheel||e.moveOptions.drag)throw Error("The miniworkspace bubble does not scrolling/moving the workspace");if(e.horizontalLayout)throw Error("The miniworkspace bubble does not support horizontal layouts")}onWorkspaceChange(){this.bumpBlocksIntoBounds(),this.updateBubbleSize()}bumpBlocksIntoBounds(){if(!this.miniWorkspace.isDragging())for(const e of this.miniWorkspace.getTopBlocks(!1)){const t=e.getRelativeToSurfaceXY();if(20>t.y&&e.moveBy(0,20-t.y),e.RTL){let r=-20;const l=this.miniWorkspace.getFlyout();l&&(r-=l.getWidth()),t.x>r&&e.moveBy(r-t.x,0)}else 20>t.x&&e.moveBy(20-t.x,0)}}updateBubbleSize(){if(!this.miniWorkspace.isDragging()){var e=this.getSize(),t=this.calculateWorkspaceSize();Math.abs(e.width-t.width)({kind:"block",type:r}))}),t}getAnchorLocation(){const e=Na/2;return Le.sum(this.workspaceLocation,new Le(e,e))}getBubbleOwnerRect(){const e=this.sourceBlock.getSvgRoot().getBBox();return new Bt(e.y,e.y+e.height,e.x,e.x+e.width)}createRootBlock(){if(!this.sourceBlock.decompose)throw Error("Blocks with mutator icons must include a decompose method");this.rootBlock=this.sourceBlock.decompose(this.miniWorkspaceBubble.getWorkspace());for(var e of this.rootBlock.getDescendants(!1))e.queueRender();this.rootBlock.setMovable(!1),this.rootBlock.setDeletable(!1);let t,r,l,p;e=(p=(t=this.miniWorkspaceBubble)==null||(r=t.getWorkspace())==null||(l=r.getFlyout())==null?void 0:l.getWidth())!=null?p:0,this.rootBlock.moveBy(this.rootBlock.RTL?-(e+An):An,An)}addSaveConnectionsListener(){this.sourceBlock.saveConnections&&this.rootBlock&&(this.saveConnectionsListener=()=>{this.sourceBlock.saveConnections&&this.rootBlock&&this.sourceBlock.saveConnections(this.rootBlock)},this.saveConnectionsListener(),this.sourceBlock.workspace.addChangeListener(this.saveConnectionsListener))}createMiniWorkspaceChangeListener(){return e=>{s.MutatorIcon$$module$build$src$core$icons$mutator_icon.isIgnorableMutatorEvent(e)||this.updateWorkspacePid||(this.updateWorkspacePid=setTimeout(()=>{this.updateWorkspacePid=null,this.recomposeSourceBlock()},0))}}static isIgnorableMutatorEvent(e){return e.isUiEvent||k(e)||P(e)&&e.element==="disabled"}recomposeSourceBlock(){if(this.rootBlock){if(!this.sourceBlock.compose)throw Error("Blocks with mutator icons must include a compose method");var e=s.getGroup$$module$build$src$core$events$utils();e||s.setGroup$$module$build$src$core$events$utils(!0);var t=Xi.getExtraBlockState_(this.sourceBlock);this.sourceBlock.compose(this.rootBlock);var r=Xi.getExtraBlockState_(this.sourceBlock);t!==r&&ee(new(Ce(fe.BLOCK_CHANGE))(this.sourceBlock,"mutation",null,t,r)),s.setGroup$$module$build$src$core$events$utils(e)}}getWorkspace(){let e;return(e=this.miniWorkspaceBubble)==null?void 0:e.getWorkspace()}},s.MutatorIcon$$module$build$src$core$icons$mutator_icon.TYPE=Qn.MUTATOR,s.MutatorIcon$$module$build$src$core$icons$mutator_icon.WEIGHT=1,s.MutatorIcon$$module$build$src$core$icons$mutator_icon;var Tn=Object.create(null),Rb={allExtensions:Tn};s.register$$module$build$src$core$extensions("parent_tooltip_when_inline",di);var ti={TEST_ONLY:Rb};ti.apply=Gu,ti.buildTooltipForDropdown=s.buildTooltipForDropdown$$module$build$src$core$extensions,ti.buildTooltipWithFieldText=s.buildTooltipWithFieldText$$module$build$src$core$extensions,ti.isRegistered=Ui,ti.register=s.register$$module$build$src$core$extensions,ti.registerMixin=s.registerMixin$$module$build$src$core$extensions,ti.registerMutator=s.registerMutator$$module$build$src$core$extensions,ti.runAfterPageLoad=Rm,ti.unregister=Im;var Vt;(function(e){e[e.WIN_KEY_FF_LINUX=0]="WIN_KEY_FF_LINUX",e[e.MAC_ENTER=3]="MAC_ENTER",e[e.BACKSPACE=8]="BACKSPACE",e[e.TAB=9]="TAB",e[e.NUM_CENTER=12]="NUM_CENTER",e[e.ENTER=13]="ENTER",e[e.SHIFT=16]="SHIFT",e[e.CTRL=17]="CTRL",e[e.ALT=18]="ALT",e[e.PAUSE=19]="PAUSE",e[e.CAPS_LOCK=20]="CAPS_LOCK",e[e.ESC=27]="ESC",e[e.SPACE=32]="SPACE",e[e.PAGE_UP=33]="PAGE_UP",e[e.PAGE_DOWN=34]="PAGE_DOWN",e[e.END=35]="END",e[e.HOME=36]="HOME",e[e.LEFT=37]="LEFT",e[e.UP=38]="UP",e[e.RIGHT=39]="RIGHT",e[e.DOWN=40]="DOWN",e[e.PLUS_SIGN=43]="PLUS_SIGN",e[e.PRINT_SCREEN=44]="PRINT_SCREEN",e[e.INSERT=45]="INSERT",e[e.DELETE=46]="DELETE",e[e.ZERO=48]="ZERO",e[e.ONE=49]="ONE",e[e.TWO=50]="TWO",e[e.THREE=51]="THREE",e[e.FOUR=52]="FOUR",e[e.FIVE=53]="FIVE",e[e.SIX=54]="SIX",e[e.SEVEN=55]="SEVEN",e[e.EIGHT=56]="EIGHT",e[e.NINE=57]="NINE",e[e.FF_SEMICOLON=59]="FF_SEMICOLON",e[e.FF_EQUALS=61]="FF_EQUALS",e[e.FF_DASH=173]="FF_DASH",e[e.FF_HASH=163]="FF_HASH",e[e.QUESTION_MARK=63]="QUESTION_MARK",e[e.AT_SIGN=64]="AT_SIGN",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.META=91]="META",e[e.WIN_KEY_RIGHT=92]="WIN_KEY_RIGHT",e[e.CONTEXT_MENU=93]="CONTEXT_MENU",e[e.NUM_ZERO=96]="NUM_ZERO",e[e.NUM_ONE=97]="NUM_ONE",e[e.NUM_TWO=98]="NUM_TWO",e[e.NUM_THREE=99]="NUM_THREE",e[e.NUM_FOUR=100]="NUM_FOUR",e[e.NUM_FIVE=101]="NUM_FIVE",e[e.NUM_SIX=102]="NUM_SIX",e[e.NUM_SEVEN=103]="NUM_SEVEN",e[e.NUM_EIGHT=104]="NUM_EIGHT",e[e.NUM_NINE=105]="NUM_NINE",e[e.NUM_MULTIPLY=106]="NUM_MULTIPLY",e[e.NUM_PLUS=107]="NUM_PLUS",e[e.NUM_MINUS=109]="NUM_MINUS",e[e.NUM_PERIOD=110]="NUM_PERIOD",e[e.NUM_DIVISION=111]="NUM_DIVISION",e[e.F1=112]="F1",e[e.F2=113]="F2",e[e.F3=114]="F3",e[e.F4=115]="F4",e[e.F5=116]="F5",e[e.F6=117]="F6",e[e.F7=118]="F7",e[e.F8=119]="F8",e[e.F9=120]="F9",e[e.F10=121]="F10",e[e.F11=122]="F11",e[e.F12=123]="F12",e[e.NUMLOCK=144]="NUMLOCK",e[e.SCROLL_LOCK=145]="SCROLL_LOCK",e[e.FIRST_MEDIA_KEY=166]="FIRST_MEDIA_KEY",e[e.LAST_MEDIA_KEY=183]="LAST_MEDIA_KEY",e[e.SEMICOLON=186]="SEMICOLON",e[e.DASH=189]="DASH",e[e.EQUALS=187]="EQUALS",e[e.COMMA=188]="COMMA",e[e.PERIOD=190]="PERIOD",e[e.SLASH=191]="SLASH",e[e.APOSTROPHE=192]="APOSTROPHE",e[e.TILDE=192]="TILDE",e[e.SINGLE_QUOTE=222]="SINGLE_QUOTE",e[e.OPEN_SQUARE_BRACKET=219]="OPEN_SQUARE_BRACKET",e[e.BACKSLASH=220]="BACKSLASH",e[e.CLOSE_SQUARE_BRACKET=221]="CLOSE_SQUARE_BRACKET",e[e.WIN_KEY=224]="WIN_KEY",e[e.MAC_FF_META=224]="MAC_FF_META",e[e.MAC_WK_CMD_LEFT=91]="MAC_WK_CMD_LEFT",e[e.MAC_WK_CMD_RIGHT=93]="MAC_WK_CMD_RIGHT",e[e.WIN_IME=229]="WIN_IME",e[e.VK_NONAME=252]="VK_NONAME",e[e.PHANTOM=255]="PHANTOM"})(Vt||(Vt={}));var to={};to.arc=Hn,to.curve=Zs,to.line=Mr,to.lineOnAxis=tt,to.lineTo=hi,to.moveBy=xn,to.moveTo=is,to.point=ut;var Ln={};Ln.Coordinate=Le,Ln.KeyCodes=Vt,Ln.Rect=Bt,Ln.Size=Jt,Ln.Svg=oe,Ln.aria=Pc,Ln.array=Rc,Ln.browserEvents=gt,Ln.colour=jr,Ln.deprecation=md,Ln.dom=ds,Ln.extensions=ti,Ln.idGenerator=bd,Ln.math=Vc,Ln.object=Db,Ln.parsing=Jc,Ln.string=Ol,Ln.style=$i,Ln.svgMath=Io,Ln.svgPaths=to,Ln.toolbox=qi,Ln.userAgent=eg,Ln.xml=xo;var Mb=class extends fn{constructor(e,t,r){super(e,t,r),this.workspace=e,this.anchor=t,this.ownerRect=r,this.resizePointerMoveListener=this.resizePointerUpListener=null,this.textChangeListeners=[],this.sizeChangeListeners=[],this.text="",this.DEFAULT_SIZE=new Jt(160+fn.DOUBLE_BORDER,80+fn.DOUBLE_BORDER),this.MIN_SIZE=new Jt(45+fn.DOUBLE_BORDER,20+fn.DOUBLE_BORDER),this.editable=!0,Fe(this.svgRoot,"blocklyTextInputBubble"),{inputRoot:this.inputRoot,textArea:this.textArea}=this.createEditor(this.contentContainer),this.resizeGroup=this.createResizeHandle(this.svgRoot,e),this.setSize(this.DEFAULT_SIZE,!0)}getText(){return this.text}setText(e){this.text=e,this.textArea.value=e,this.onTextChange()}setEditable(e){(this.editable=e)?this.textArea.removeAttribute("readonly"):this.textArea.setAttribute("readonly","")}isEditable(){return this.editable}addTextChangeListener(e){this.textChangeListeners.push(e)}addSizeChangeListener(e){this.sizeChangeListeners.push(e)}createEditor(e){e=re(oe.FOREIGNOBJECT,{x:fn.BORDER_WIDTH,y:fn.BORDER_WIDTH},e);const t=document.createElementNS(bi,"body");t.setAttribute("xmlns",bi),t.className="blocklyMinimalBody";const r=document.createElementNS(bi,"textarea");return r.className="blocklyTextarea blocklyText",r.setAttribute("dir",this.workspace.RTL?"RTL":"LTR"),t.appendChild(r),e.appendChild(t),this.bindTextAreaEvents(r),setTimeout(()=>{r.focus()},0),{inputRoot:e,textArea:r}}bindTextAreaEvents(e){Ue(e,"wheel",this,t=>{t.stopPropagation()}),Ue(e,"focus",this,this.onStartEdit,!0),Ue(e,"change",this,this.onTextChange)}createResizeHandle(e,t){return e=re(oe.IMAGE,{class:"blocklyResizeHandle",href:`${t.options.pathToMedia}resize-handle.svg`},e),Ue(e,"pointerdown",this,this.onResizePointerDown),e}setSize(e,t=!1){e.width=Math.max(e.width,this.MIN_SIZE.width),e.height=Math.max(e.height,this.MIN_SIZE.height);const r=e.width-fn.DOUBLE_BORDER,l=e.height-fn.DOUBLE_BORDER;this.inputRoot.setAttribute("width",`${r}`),this.inputRoot.setAttribute("height",`${l}`),this.resizeGroup.setAttribute("y",`${l}`),this.workspace.RTL?this.resizeGroup.setAttribute("x",`${-fn.DOUBLE_BORDER}`):this.resizeGroup.setAttribute("x",`${r}`),super.setSize(e,t),this.onSizeChange()}getSize(){return super.getSize()}onResizePointerDown(e){this.bringToFront(),ct(e)||(aa(this.workspace,e,new Le(this.workspace.RTL?-this.getSize().width:this.getSize().width,this.getSize().height)),this.resizePointerUpListener=Ue(document,"pointerup",this,this.onResizePointerUp),this.resizePointerMoveListener=Ue(document,"pointermove",this,this.onResizePointerMove),this.workspace.hideChaff()),e.stopPropagation()}onResizePointerUp(e){ft(),this.resizePointerUpListener&&(wt(this.resizePointerUpListener),this.resizePointerUpListener=null),this.resizePointerMoveListener&&(wt(this.resizePointerMoveListener),this.resizePointerMoveListener=null)}onResizePointerMove(e){e=ju(this.workspace,e),this.setSize(new Jt(this.workspace.RTL?-e.x:e.x,e.y),!1),this.onSizeChange()}onStartEdit(){this.bringToFront()&&this.textArea.focus()}onTextChange(){this.text=this.textArea.value;for(const e of this.textChangeListeners)e()}onSizeChange(){for(const e of this.sizeChangeListeners)e()}};we(` -.blocklyTextInputBubble .blocklyTextarea { - background-color: var(--commentFillColour); - border: 0; - box-sizing: border-box; - display: block; - outline: 0; - padding: 5px; - resize: none; - width: 100%; - height: 100%; -} -`);var Og={};Og.register=pr,Og.unregister=Nm;var zd=17,Bl=160,Ud=80,no=class extends eu{constructor(e){super(e),this.sourceBlock=e,this.textInputBubble=null,this.text="",this.bubbleSize=new Jt(Bl,Ud),this.bubbleVisiblity=!1}getType(){return no.TYPE}initView(e){this.svgRoot||(super.initView(e),re(oe.CIRCLE,{class:"blocklyIconShape",r:"8",cx:"8",cy:"8"},this.svgRoot),re(oe.PATH,{class:"blocklyIconSymbol",d:"m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.4050.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25-1.201,0.998 -1.201,1.528 -1.204,2.19z"},this.svgRoot),re(oe.RECT,{class:"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},this.svgRoot),Fe(this.svgRoot,"blockly-icon-comment"))}dispose(){super.dispose();let e;(e=this.textInputBubble)==null||e.dispose()}getWeight(){return no.WEIGHT}getSize(){return new Jt(zd,zd)}applyColour(){super.applyColour();const e=this.sourceBlock.getColour();let t;(t=this.textInputBubble)==null||t.setColour(e)}updateEditable(){const e=this,t=()=>super.updateEditable;return Re.asyncExecutePromiseGeneratorFunction(function*(){t().call(e),e.bubbleIsVisible()&&(yield e.setBubbleVisible(!1),yield e.setBubbleVisible(!0))})}onLocationChange(e){super.onLocationChange(e),e=this.getAnchorLocation();let t;(t=this.textInputBubble)==null||t.setAnchorLocation(e)}setText(e){const t=this.text;ee(new(Ce(fe.BLOCK_CHANGE))(this.sourceBlock,"comment",null,t,e)),this.text=e;let r;(r=this.textInputBubble)==null||r.setText(this.text)}getText(){return this.text}setBubbleSize(e){this.bubbleSize=e;let t;(t=this.textInputBubble)==null||t.setSize(this.bubbleSize,!0)}getBubbleSize(){return this.bubbleSize}saveState(){return this.text?{text:this.text,pinned:this.bubbleIsVisible(),height:this.bubbleSize.height,width:this.bubbleSize.width}:null}loadState(e){let t;this.text=(t=e.text)!=null?t:"";let r,l;this.bubbleSize=new Jt((r=e.width)!=null?r:Bl,(l=e.height)!=null?l:Ud);let p;this.bubbleVisiblity=(p=e.pinned)!=null?p:!1,this.setBubbleVisible(this.bubbleVisiblity)}onClick(){super.onClick(),this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}onTextChange(){if(this.textInputBubble){var e=this.textInputBubble.getText();this.text!==e&&(ee(new(Ce(fe.BLOCK_CHANGE))(this.sourceBlock,"comment",null,this.text,e)),this.text=e)}}onSizeChange(){this.textInputBubble&&(this.bubbleSize=this.textInputBubble.getSize())}bubbleIsVisible(){return this.bubbleVisiblity}setBubbleVisible(e){const t=this;return Re.asyncExecutePromiseGeneratorFunction(function*(){t.bubbleVisiblity!==e&&(t.bubbleVisiblity=e,yield rs(),!t.sourceBlock.rendered||t.sourceBlock.isInFlyout||t.sourceBlock.isInsertionMarker()||(e?(t.sourceBlock.isEditable()?t.showEditableBubble():t.showNonEditableBubble(),t.applyColour()):t.hideBubble(),ee(new(Ce(fe.BUBBLE_OPEN))(t.sourceBlock,e,"comment"))))})}showEditableBubble(){this.createBubble();let e;(e=this.textInputBubble)==null||e.addTextChangeListener(()=>this.onTextChange());let t;(t=this.textInputBubble)==null||t.addSizeChangeListener(()=>this.onSizeChange())}showNonEditableBubble(){this.createBubble();let e;(e=this.textInputBubble)==null||e.setEditable(!1)}createBubble(){this.textInputBubble=new Mb(this.sourceBlock.workspace,this.getAnchorLocation(),this.getBubbleOwnerRect()),this.textInputBubble.setText(this.getText()),this.textInputBubble.setSize(this.bubbleSize,!0)}hideBubble(){let e;(e=this.textInputBubble)==null||e.dispose(),this.textInputBubble=null}getAnchorLocation(){const e=zd/2;return Le.sum(this.workspaceLocation,new Le(e,e))}getBubbleOwnerRect(){return this.sourceBlock.getBoundingRectangleWithoutChildren()}};no.TYPE=Qn.COMMENT,no.WEIGHT=3,pr(no.TYPE,no);var Rg=class extends Error{constructor(e){super(`Tried to append an icon of type ${e.getType()} when an icon of that type already exists on the block. Use getIcon to access the existing icon.`),this.icon=e}},tu={};tu.DuplicateIconType=Rg;var ir=class extends fn{constructor(e,t,r,l){super(t,r,l),this.text=e,this.workspace=t,this.anchor=r,this.ownerRect=l,this.paragraph=this.stringToSvg(e,this.contentContainer),this.updateBubbleSize()}getText(){return this.text}setText(e){this.text=e,mt(this.paragraph),this.paragraph=this.stringToSvg(e,this.contentContainer),this.updateBubbleSize()}stringToSvg(e,t){return t=this.createParagraph(t),e=this.createTextFragments(t,e),this.workspace.RTL&&this.rightAlignTextFragments(t.getBBox().width,e),t}createParagraph(e){return re(oe.G,{class:"blocklyText blocklyBubbleText blocklyNoPointerEvents",transform:`translate(0,${fn.BORDER_WIDTH})`,style:`direction: ${this.workspace.RTL?"rtl":"ltr"}`},e)}createTextFragments(e,t){let r=1;return t.split(` -`).map(l=>{const p=re(oe.TEXT,{y:`${r}em`,x:fn.BORDER_WIDTH},e);return l=document.createTextNode(l),p.appendChild(l),r+=1,p})}rightAlignTextFragments(e,t){for(const r of t)r.setAttribute("text-anchor","start"),r.setAttribute("x",`${e+fn.BORDER_WIDTH}`)}updateBubbleSize(){const e=this.paragraph.getBBox();this.setSize(new Jt(e.width+2*fn.BORDER_WIDTH,e.height+2*fn.BORDER_WIDTH),!0)}},Oo=17,so=class extends eu{constructor(e){super(e),this.sourceBlock=e,this.textMap=new Map,this.textBubble=null}getType(){return so.TYPE}initView(e){this.svgRoot||(super.initView(e),re(oe.PATH,{class:"blocklyIconShape",d:"M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"},this.svgRoot),re(oe.PATH,{class:"blocklyIconSymbol",d:"m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"},this.svgRoot),re(oe.RECT,{class:"blocklyIconSymbol",x:"7",y:"11",height:"2",width:"2"},this.svgRoot),Fe(this.svgRoot,"blockly-icon-warning"))}dispose(){super.dispose();let e;(e=this.textBubble)==null||e.dispose()}getWeight(){return so.WEIGHT}getSize(){return new Jt(Oo,Oo)}applyColour(){super.applyColour();let e;(e=this.textBubble)==null||e.setColour(this.sourceBlock.getColour())}updateCollapsed(){}isShownWhenCollapsed(){return!0}onLocationChange(e){super.onLocationChange(e);let t;(t=this.textBubble)==null||t.setAnchorLocation(this.getAnchorLocation())}addMessage(e,t){if(this.textMap.get(t)===e)return this;e?this.textMap.set(t,e):this.textMap.delete(t);let r;return(r=this.textBubble)==null||r.setText(this.getText()),this}getText(){return[...this.textMap.values()].join(` -`)}onClick(){super.onClick(),this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}bubbleIsVisible(){return!!this.textBubble}setBubbleVisible(e){const t=this;return Re.asyncExecutePromiseGeneratorFunction(function*(){if(t.bubbleIsVisible()!==e){if(yield rs(),e)t.textBubble=new ir(t.getText(),t.sourceBlock.workspace,t.getAnchorLocation(),t.getBubbleOwnerRect()),t.applyColour();else{let r;(r=t.textBubble)==null||r.dispose(),t.textBubble=null}ee(new(Ce(fe.BUBBLE_OPEN))(t.sourceBlock,e,"warning"))}})}getAnchorLocation(){const e=Oo/2;return Le.sum(this.workspaceLocation,new Le(e,e))}getBubbleOwnerRect(){const e=this.sourceBlock.getSvgRoot().getBBox();return new Bt(e.y,e.y+e.height,e.x,e.x+e.width)}};so.TYPE=Qn.WARNING,so.WEIGHT=2;var Ro={};Ro.CommentIcon=no,Ro.Icon=eu,Ro.IconType=Qn,Ro.MutatorIcon=s.MutatorIcon$$module$build$src$core$icons$mutator_icon,Ro.WarningIcon=so,Ro.exceptions=tu,Ro.registry=Og,s.Names$$module$build$src$core$names=class{constructor(e,t){this.db=new Map,this.dbReverse=new Set,this.variableMap=null,this.variablePrefix=t||"",this.reservedWords=new Set(e?e.split(","):[])}reset(){this.db.clear(),this.dbReverse.clear(),this.variableMap=null}setVariableMap(e){this.variableMap=e}getNameForUserVariable(e){return this.variableMap?(e=this.variableMap.getVariableById(e))?e.name:null:(console.warn(`Deprecated call to Names.prototype.getName without defining a variable map. To fix, add the following code in your generator's init() function: -Blockly.YourGeneratorName.nameDB_.setVariableMap(workspace.getVariableMap());`),null)}populateVariables(e){e=s.allUsedVarModels$$module$build$src$core$variables(e);for(let t=0;trect,`,`${e} .blocklyEditableText>rect {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"fill-opacity: .6;","stroke: none;","}",`${e} .blocklyNonEditableText>text,`,`${e} .blocklyEditableText>text {`,"fill: #000;","}",`${e} .blocklyFlyoutLabelText {`,"fill: #000;","}",`${e} .blocklyText.blocklyBubbleText {`,"fill: #000;","}",`${e} .blocklyEditableText:not(.editing):hover>rect {`,"stroke: #fff;","stroke-width: 2;","}",`${e} .blocklyHtmlInput {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"}",`${e} .blocklySelected>.blocklyPath {`,"stroke: #fc3;","stroke-width: 3px;","}",`${e} .blocklyHighlightedConnectionPath {`,"stroke: #fc3;","}",`${e} .blocklyReplaceable .blocklyPath {`,"fill-opacity: .5;","}",`${e} .blocklyReplaceable .blocklyPathLight,`,`${e} .blocklyReplaceable .blocklyPathDark {`,"display: none;","}",`${e} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"]}},Fl=class{constructor(e,t){this.inlinePath_=this.outlinePath_="",this.block_=e,this.info_=t,this.topLeft_=e.getRelativeToSurfaceXY(),this.constants_=t.getRenderer().getConstants()}draw(){this.drawOutline_(),this.drawInternals_(),this.updateConnectionHighlights(),this.block_.pathObject.setPath(this.outlinePath_+` -`+this.inlinePath_),this.info_.RTL&&this.block_.pathObject.flipRTL(),this.recordSizeOnBlock_()}recordSizeOnBlock_(){this.block_.height=this.info_.height,this.block_.width=this.info_.widthWithChildren,this.block_.childlessWidth=this.info_.width}drawOutline_(){this.drawTop_();for(let e=1;ee||e>this.fieldRow.length)throw Error("index "+e+" out of bounds.");return(t||t===""&&r)&&(typeof t=="string"&&(t=s.fromJson$$module$build$src$core$field_registry({type:"field_label",text:t})),t.setSourceBlock(this.sourceBlock),this.sourceBlock.initialized&&this.initField(t),t.name=r,t.setVisible(this.isVisible()),t.prefixField&&(e=this.insertFieldAt(e,t.prefixField)),this.fieldRow.splice(e,0,t),e++,t.suffixField&&(e=this.insertFieldAt(e,t.suffixField)),this.sourceBlock.rendered&&this.sourceBlock.queueRender()),e}removeField(e,t){for(let r=0,l;l=this.fieldRow[r];r++)if(l.name===e)return l.dispose(),this.fieldRow.splice(r,1),this.sourceBlock.rendered&&this.sourceBlock.queueRender(),!0;if(t)return!1;throw Error('Field "'+e+'" not found.')}isVisible(){return this.visible}setVisible(e){let t=[];if(this.visible===e)return t;this.visible=e;for(let l=0,p;p=this.fieldRow[l];l++)p.setVisible(e);if(this.connection){var r=this.connection;e?t=r.startTrackingAll():r.stopTrackingAll(),(r=r.targetBlock())&&(r.getSvgRoot().style.display=e?"block":"none")}return t}markDirty(){for(let e=0,t;t=this.fieldRow[e];e++)t.markDirty()}setCheck(e){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.setCheck(e),this}setAlign(e){return this.align=e,this.sourceBlock.rendered&&this.sourceBlock.queueRender(),this}setShadowDom(e){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.setShadowDom(e),this}getShadowDom(){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.getShadowDom()}init(){for(const e of this.fieldRow)e.init()}initModel(){for(const e of this.fieldRow)e.initModel()}initField(e){this.sourceBlock.rendered?e.init():e.initModel()}dispose(){for(let e=0,t;t=this.fieldRow[e];e++)t.dispose();this.connection&&this.connection.dispose()}makeConnection(e){return this.sourceBlock.makeConnection_(e)}},yi=class extends No{constructor(e,t){super(e,t),this.name=e,this.type=s.inputTypes$$module$build$src$core$inputs$input_types.DUMMY}},ro=class extends No{constructor(e,t){super(e,t),this.name=e,this.type=s.inputTypes$$module$build$src$core$inputs$input_types.END_ROW}},yr=class extends No{constructor(e,t){if(!e)throw Error("Statement inputs must have a non-empty name");super(e,t),this.name=e,this.type=s.inputTypes$$module$build$src$core$inputs$input_types.STATEMENT,this.connection=this.makeConnection(Ze.NEXT_STATEMENT)}},ls;s.ValueInput$$module$build$src$core$inputs$value_input=class extends No{constructor(e,t){if(!e)throw Error("Value inputs must have a non-empty name");super(e,t),this.name=e,this.type=s.inputTypes$$module$build$src$core$inputs$input_types.VALUE,this.connection=this.makeConnection(Ze.INPUT_VALUE)}},ls={},ls.ValueInput=s.ValueInput$$module$build$src$core$inputs$value_input;var hs=class{constructor(e,t){this.statementEdge=this.width=this.widthWithChildren=this.height=0,this.rows=[],this.inputRows=[],this.startY=this.startX=0,this.renderer_=e,this.block_=t,this.constants_=this.renderer_.getConstants(),this.outputConnection=t.outputConnection?new jb(this.constants_,t.outputConnection):null,this.isInline=t.getInputsInline()&&!t.isCollapsed(),this.isCollapsed=t.isCollapsed(),this.isInsertionMarker=t.isInsertionMarker(),this.RTL=t.RTL,this.topRow=new Bg(this.constants_),this.bottomRow=new or(this.constants_)}getRenderer(){return this.renderer_}measure(){this.createRows_(),this.addElemSpacing_(),this.addRowSpacing_(),this.computeBounds_(),this.alignRowElements_(),this.finalize_()}createRows_(){this.populateTopRow_(),this.rows.push(this.topRow);let e=new Ng(this.constants_);this.inputRows.push(e);var t=this.block_.getIcons();for(let r=0,l;l=t[r];r++){const p=new nu(this.constants_,l);this.isCollapsed&&!l.isShownWhenCollapsed()||e.elements.push(p)}t=void 0;for(let r=0,l;l=this.block_.inputList[r];r++)if(l.isVisible()){this.shouldStartNewRow_(l,t)&&(this.rows.push(e),e=new Ng(this.constants_),this.inputRows.push(e));for(let p=0,v;v=l.fieldRow[p];p++)e.elements.push(new jl(this.constants_,v,l));this.addInput_(l,e),t=l}this.isCollapsed&&(e.hasJaggedEdge=!0,e.elements.push(new Bb(this.constants_))),(e.elements.length||e.hasDummyInput)&&this.rows.push(e),this.populateBottomRow_(),this.rows.push(this.bottomRow)}populateTopRow_(){var e=!!this.block_.previousConnection;const t=(this.block_.hat?this.block_.hat==="cap":this.constants_.ADD_START_HATS)&&!this.outputConnection&&!e;let r=this.topRow.hasLeftSquareCorner(this.block_)?iu:ru;this.topRow.elements.push(new r(this.constants_)),t?(e=new Hd(this.constants_),this.topRow.elements.push(e),this.topRow.capline=e.ascenderHeight):e&&(this.topRow.hasPreviousConnection=!0,this.topRow.connection=new Fb(this.constants_,this.block_.previousConnection),this.topRow.elements.push(this.topRow.connection)),this.block_.inputList.length&&this.block_.inputList[0]instanceof yr&&!this.block_.isCollapsed()?this.topRow.minHeight=this.constants_.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT:this.topRow.minHeight=this.constants_.TOP_ROW_MIN_HEIGHT,r=this.topRow.hasRightSquareCorner(this.block_)?iu:ru,this.topRow.elements.push(new r(this.constants_,"right"))}populateBottomRow_(){this.bottomRow.hasNextConnection=!!this.block_.nextConnection,this.bottomRow.minHeight=this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof yr?this.constants_.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT:this.constants_.BOTTOM_ROW_MIN_HEIGHT,this.bottomRow.hasLeftSquareCorner(this.block_)?this.bottomRow.elements.push(new iu(this.constants_)):this.bottomRow.elements.push(new ru(this.constants_)),this.bottomRow.hasNextConnection&&(this.bottomRow.connection=new Pb(this.constants_,this.block_.nextConnection),this.bottomRow.elements.push(this.bottomRow.connection)),this.bottomRow.hasRightSquareCorner(this.block_)?this.bottomRow.elements.push(new iu(this.constants_,"right")):this.bottomRow.elements.push(new ru(this.constants_,"right"))}addInput_(e,t){this.isInline&&e instanceof s.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new Mg(this.constants_,e)),t.hasInlineInput=!0):e instanceof yr?(t.elements.push(new su(this.constants_,e)),t.hasStatement=!0):e instanceof s.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new cn(this.constants_,e)),t.hasExternalInput=!0):(e instanceof yi||e instanceof ro)&&(t.minHeight=Math.max(t.minHeight,e.getSourceBlock()&&e.getSourceBlock().isShadow()?this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT:this.constants_.DUMMY_INPUT_MIN_HEIGHT),t.hasDummyInput=!0),t.align===null&&(t.align=e.align)}shouldStartNewRow_(e,t){return t?t instanceof ro||e instanceof yr||t instanceof yr?!0:e instanceof s.ValueInput$$module$build$src$core$inputs$value_input||e instanceof yi||t instanceof s.ValueInput$$module$build$src$core$inputs$value_input?!this.isInline:!1:!1}addElemSpacing_(){for(let e=0,t;t=this.rows[e];e++){const r=t.elements;if(t.elements=[],t.startsWithElemSpacer()&&t.elements.push(new vr(this.constants_,this.getInRowSpacing_(null,r[0]))),r.length){for(let l=0;le.disposeInternal()),this.inputList.forEach(e=>e.dispose()),this.inputList.length=0,this.getConnections_(!0).forEach(e=>e.dispose()),this.disposed=!0}isDeadOrDying(){return this.disposing||this.disposed}initModel(){if(!this.initialized){for(const e of this.inputList)e.initModel();this.initialized=!0}}unplug(e){this.outputConnection&&this.unplugFromRow(e),this.previousConnection&&this.unplugFromStack(e)}unplugFromRow(e){let t=null,r;(r=this.outputConnection)!=null&&r.isConnected()&&(t=this.outputConnection.targetConnection,this.outputConnection.disconnect()),t&&e&&(e=this.getOnlyValueConnection())&&e.isConnected()&&!e.targetBlock().isShadow()&&(e=e.targetConnection,e==null||e.disconnect(),this.workspace.connectionChecker.canConnect(e,t,!1)?t.connect(e):e==null||e.onFailedConnect(t))}getOnlyValueConnection(){let e=null;for(let t=0;t(l=l+(r==="("||p===")"?"":" ")+p,r=p[p.length-1],l),""),t=t.trim()||"???",e&&t.length>e&&(t=t.substring(0,e-3)+"..."),t}toTokens(e="?"){const t=[];for(const l of this.inputList)if(l.name!=jc){for(const p of l.fieldRow)t.push(p.getText());if(l.connection){const p=l.connection.targetBlock();if(p){var r=l.connection;let v=r.getCheck();!v&&r.targetConnection&&(v=r.targetConnection.getCheck()),(r=!!v&&(v.includes("Boolean")||v.includes("Number")))&&t.push("("),t.push(...p.toTokens(e)),r&&t.push(")")}else t.push(e)}}return t}appendValueInput(e){return this.appendInput(new s.ValueInput$$module$build$src$core$inputs$value_input(e,this))}appendStatementInput(e){return this.statementInputCount++,this.appendInput(new yr(e,this))}appendDummyInput(e=""){return this.appendInput(new yi(e,this))}appendEndRowInput(e=""){return this.appendInput(new ro(e,this))}appendInput(e){return this.inputList.push(e),e}appendInputFromRegistry(e,t){return(e=b(Be.INPUT,e,!1))?this.appendInput(new e(t,this)):null}jsonInit(e){var t=e.type?'Block "'+e.type+'": ':"";if(e.output&&e.previousStatement)throw Error(t+"Must not have both an output and a previousStatement.");for(var r=0;e["args"+r];){if(e["message"+r]===void 0)throw Error(t+`args${r} must have a corresponding message (message${r}).`);r++}if(e.style&&e.style.hat&&(this.hat=e.style.hat,e.style=null),e.style&&e.colour)throw Error(t+"Must not have both a colour and a style.");for(e.style?this.jsonInitStyle(e,t):this.jsonInitColour(e,t),r=0;e["message"+r]!==void 0;)this.interpolate(e["message"+r],e["args"+r]||[],e["implicitAlign"+r]||e["lastDummyAlign"+r],t),r++;if(e.inputsInline!==void 0&&(s.disable$$module$build$src$core$events$utils(),this.setInputsInline(e.inputsInline),s.enable$$module$build$src$core$events$utils()),e.output!==void 0&&this.setOutput(!0,e.output),e.outputShape!==void 0&&this.setOutputShape(e.outputShape),e.previousStatement!==void 0&&this.setPreviousStatement(!0,e.previousStatement),e.nextStatement!==void 0&&this.setNextStatement(!0,e.nextStatement),e.tooltip!==void 0&&(r=kt(e.tooltip),this.setTooltip(r)),e.enableContextMenu!==void 0&&(this.contextMenu=!!e.enableContextMenu),e.suppressPrefixSuffix!==void 0&&(this.suppressPrefixSuffix=!!e.suppressPrefixSuffix),e.helpUrl!==void 0&&(r=kt(e.helpUrl),this.setHelpUrl(r)),typeof e.extensions=="string"&&(console.warn(t+"JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '"+e.type+"' block."),e.extensions=[e.extensions]),e.mutator!==void 0&&Gu(e.mutator,this,!0),e=e.extensions,Array.isArray(e))for(t=0;tv||v>t)throw Error('Block "'+this.type+'": Message index %'+v+" out of range.");if(r[v])throw Error('Block "'+this.type+'": Message index %'+v+" duplicated.");r[v]=!0,l++}}if(l!==t)throw Error('Block "'+this.type+'": Message does not reference all '+t+" arg(s).")}interpolateArguments(e,t,r){const l=[];for(let v=0;v=this.inputList.length)throw RangeError("Input index "+e+" out of bounds.");if(t>this.inputList.length)throw RangeError("Reference input "+t+" out of bounds.");const r=this.inputList[e];this.inputList.splice(e,1),et.getWeight()-r.getWeight()),e}removeIcon(e){if(!this.hasIcon(e))return!1;let t;return(t=this.getIcon(e))==null||t.dispose(),this.icons=this.icons.filter(r=>!r.getType().equals(e)),!0}hasIcon(e){return this.icons.some(t=>t.getType().equals(e))}getIcon(e){return e instanceof Qn?this.icons.find(t=>t.getType().equals(e)):this.icons.find(t=>t.getType().toString()===e)}getIcons(){return[...this.icons]}getRelativeToSurfaceXY(){return this.xy}moveBy(e,t,r){if(this.parentBlock_)throw Error("Block has parent");const l=new(Ce(fe.BLOCK_MOVE))(this);r&&l.setReason(r),this.xy.translate(e,t),l.recordNew(),ee(l)}makeConnection_(e){return new sn(this,e)}allInputsFilled(e){if(e===void 0&&(e=!0),!e&&this.isShadow())return!1;for(let r=0,l;l=this.inputList[r];r++)if(l.connection){var t=l.connection.targetBlock();if(!t||!t.allInputsFilled(e))return!1}return(t=this.getNextBlock())?t.allInputsFilled(e):!0}toDevString(){let e=this.type?'"'+this.type+'" block':"Block";return this.id&&(e+=' (id="'+this.id+'")'),e}};Lo.COLLAPSED_INPUT_NAME=jc,Lo.COLLAPSED_FIELD_NAME=Dd;var _r=class{constructor(e,t,r,l){this.workspace=e,this.targetWorkspace=t,this.isFlyoutLabel=l,this.onMouseUpWrapper=null,this.height=this.width=0,this.cursorSvg=this.svgText=this.svgGroup=null,this.text=r.text,this.position=new Le(0,0),this.callbackKey=r.callbackKey||r.callbackkey,this.cssClass=r["web-class"]||null,this.info=r}createDom(){var e=this.isFlyoutLabel?"blocklyFlyoutLabel":"blocklyFlyoutButton";this.cssClass&&(e+=" "+this.cssClass),this.svgGroup=re(oe.G,{class:e},this.workspace.getCanvas());let t;this.isFlyoutLabel||(t=re(oe.RECT,{class:"blocklyFlyoutButtonShadow",rx:_r.BORDER_RADIUS,ry:_r.BORDER_RADIUS,x:1,y:1},this.svgGroup)),e=re(oe.RECT,{class:this.isFlyoutLabel?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:_r.BORDER_RADIUS,ry:_r.BORDER_RADIUS},this.svgGroup);const r=re(oe.TEXT,{class:this.isFlyoutLabel?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup);var l=kt(this.text);this.workspace.RTL&&(l+="‏"),r.textContent=l,this.isFlyoutLabel&&(this.svgText=r,this.workspace.getThemeManager().subscribe(this.svgText,"flyoutForegroundColour","fill"));const p=jn(r,"fontSize"),v=jn(r,"fontWeight"),O=jn(r,"fontFamily");if(this.width=Rn(r,p,v,O),l=Kt(l,p,v,O),this.height=l.height,!this.isFlyoutLabel){this.width+=2*_r.TEXT_MARGIN_X,this.height+=2*_r.TEXT_MARGIN_Y;let G;(G=t)==null||G.setAttribute("width",String(this.width));let Ie;(Ie=t)==null||Ie.setAttribute("height",String(this.height))}return e.setAttribute("width",String(this.width)),e.setAttribute("height",String(this.height)),r.setAttribute("x",String(this.width/2)),r.setAttribute("y",String(this.height/2-l.height/2+l.baseline)),this.updateTransform(),this.onMouseUpWrapper=Ue(this.svgGroup,"pointerup",this,this.onMouseUp),this.svgGroup}show(){this.updateTransform(),this.svgGroup.setAttribute("display","block")}updateTransform(){this.svgGroup.setAttribute("transform","translate("+this.position.x+","+this.position.y+")")}moveTo(e,t){this.position.x=e,this.position.y=t,this.updateTransform()}isLabel(){return this.isFlyoutLabel}getPosition(){return this.position}getButtonText(){return this.text}getTargetWorkspace(){return this.targetWorkspace}getWorkspace(){return this.workspace}dispose(){this.onMouseUpWrapper&&wt(this.onMouseUpWrapper),this.svgGroup&&mt(this.svgGroup),this.svgText&&this.workspace.getThemeManager().unsubscribe(this.svgText)}setCursorSvg(e){e?this.svgGroup&&(this.svgGroup.appendChild(e),this.cursorSvg=e):this.cursorSvg=null}setMarkerSvg(){throw Error("Attempted to set a marker on a button.")}onMouseUp(e){(e=this.targetWorkspace.getGesture(e))&&e.cancel(),this.isFlyoutLabel&&this.callbackKey?console.warn("Labels should not have callbacks. Label text: "+this.text):this.isFlyoutLabel||this.callbackKey&&this.targetWorkspace.getButtonCallback(this.callbackKey)?this.isFlyoutLabel||(e=this.targetWorkspace.getButtonCallback(this.callbackKey))&&e(this):console.warn("Buttons should have callbacks. Button text: "+this.text)}};_r.TEXT_MARGIN_X=5,_r.TEXT_MARGIN_Y=2,_r.BORDER_RADIUS=4,we(` -.blocklyFlyoutButton { - fill: #888; - cursor: default; -} - -.blocklyFlyoutButtonShadow { - fill: #666; -} - -.blocklyFlyoutButton:hover { - fill: #aaa; -} - -.blocklyFlyoutLabel { - cursor: default; -} - -.blocklyFlyoutLabelBackground { - opacity: 0; -} -`);var Oe=class{constructor(e,t,r){if(this.wsCoordinate=null,!t)throw Error("Cannot create a node without a location.");this.type=e,this.isConnectionLocation=Oe.isConnectionType(e),this.location=t,this.processParams(r||null)}processParams(e){e&&e.wsCoordinate&&(this.wsCoordinate=e.wsCoordinate)}getLocation(){return this.location}getType(){return this.type}getWsCoordinate(){return this.wsCoordinate}isConnection(){return this.isConnectionLocation}findNextForInput(){var e=this.location.getParentInput();const t=e.getSourceBlock();for(e=t.inputList.indexOf(e),e+=1;et instanceof Lo&&p.block===t||t instanceof _r&&p.button===t);return 0>l?null:(r=r?l+1:l-1,r===-1||r===e.length?null:e[r])}findTopASTNodeForBlock(e){const t=vl(e);return t?Oe.createConnectionNode(t):Oe.createBlockNode(e)}getOutAstNodeForBlock(e){if(!e)return null;e=e.getTopStackBlock();const t=vl(e);return t&&t.targetConnection&&t.targetConnection.getParentInput()?Oe.createInputNode(t.targetConnection.getParentInput()):Oe.createStackNode(e)}findFirstFieldOrInput(e){e=e.inputList;for(let t=0;t{_o(r.getSourceBlock()),setTimeout(()=>{l.bringToFront()},0)})}}update(e,t){const r=this.getCandidate(e);((this.wouldDeleteBlock=this.shouldDelete(!!r,t))||this.shouldUpdatePreviews(r,e))&&(s.disable$$module$build$src$core$events$utils(),this.maybeHidePreview(r),this.maybeShowPreview(r),s.enable$$module$build$src$core$events$utils())}createMarkerBlock(e){s.disable$$module$build$src$core$events$utils();let t;try{const r=Qt(e,{addCoordinates:!1,addInputBlocks:!1,addNextBlocks:!1,doFullSerialization:!1});if(!r)throw Error(`Failed to serialize source block. ${e.toDevString()}`);t=Ni(r,this.workspace);for(const l of t.getDescendants(!1))l.setInsertionMarker(!0);t.initSvg(),t.getSvgRoot().setAttribute("visibility","hidden")}finally{s.enable$$module$build$src$core$events$utils()}return t}initAvailableConnections(){const e=this.topBlock.getConnections_(!1),t=this.topBlock.lastConnectionInStack(!0);return t&&t!==this.topBlock.nextConnection&&(e.push(t),this.lastOnStack=t),e}shouldUpdatePreviews(e,t){if(!e)return!!this.activeCandidate;if(!this.activeCandidate)return!0;const{local:r,closest:l}=this.activeCandidate;if(l===e.closest&&r===e.local)return!1;const p=r.x+t.x-l.x;return t=r.y+t.y-l.y,e.radius{let Ie;(Ie=l)==null||Ie.positionNearConnection(G,v,O);let Qe;(Qe=l)==null||Qe.getSvgRoot().setAttribute("visibility","visible")}),this.markerConnection=p}hideInsertionMarker(){if(this.markerConnection){var e=this.markerConnection,t=e.getSourceBlock(),r=t.outputConnection,l;if((l=t.previousConnection)!=null&&l.targetConnection||r!=null&&r.targetConnection)t.unplug(!0);else{let p;(p=e.targetBlock())==null||p.unplug(!1)}if(e.targetConnection)throw Error("markerConnection still connected at the end of disconnectInsertionMarker");this.markerConnection=null,(e=t.getSvgRoot())&&e.setAttribute("visibility","hidden")}}showInsertionInputOutline(e){e=e.closest,this.highlightedBlock=e.getSourceBlock(),this.highlightedBlock.highlightShapeForInput(e,!0)}hideInsertionInputOutline(){if(this.highlightedBlock){if(!this.activeCandidate)throw Error("Cannot hide the insertion marker outline because there is no active candidate");this.highlightedBlock.highlightShapeForInput(this.activeCandidate.closest,!1),this.highlightedBlock=null}}showReplacementFade(e){if(this.fadedBlock=e.closest.targetBlock(),!this.fadedBlock)throw Error("Cannot show the replacement fade because the closest connection does not have a target block");this.fadedBlock.fadeForReplacement(!0)}hideReplacementFade(){this.fadedBlock&&(this.fadedBlock.fadeForReplacement(!1),this.fadedBlock=null)}getInsertionMarkers(){const e=[];return this.firstMarker&&e.push(this.firstMarker),this.lastMarker&&e.push(this.lastMarker),e}disposeInsertionMarker(e){if(e){s.disable$$module$build$src$core$events$utils();try{e.dispose()}finally{s.enable$$module$build$src$core$events$utils()}}}};(function(e){e=e.PREVIEW_TYPE||(e.PREVIEW_TYPE={}),e[e.INSERTION_MARKER=0]="INSERTION_MARKER",e[e.INPUT_OUTLINE=1]="INPUT_OUTLINE",e[e.REPLACEMENT_FADE=2]="REPLACEMENT_FADE"})(wr||(wr={})),wr.PREVIEW_TYPE;var ou=class{constructor(e){this.overrides=null,this.name=e}getClassName(){return this.name+"-renderer"}init(e,t){this.constants_=this.makeConstants_(),t&&(this.overrides=t,Object.assign(this.constants_,t)),this.constants_.setTheme(e),this.constants_.init()}createDom(e,t){this.constants_.createDom(e,this.name+"-"+t.name,"."+this.getClassName()+"."+t.getClassName())}refreshDom(e,t){const r=this.getConstants();r.dispose(),this.constants_=this.makeConstants_(),this.overrides&&Object.assign(this.constants_,this.overrides),this.constants_.randomIdentifier=r.randomIdentifier,this.constants_.setTheme(t),this.constants_.init(),this.createDom(e,t)}dispose(){this.constants_&&this.constants_.dispose()}makeConstants_(){return new Vd}makeRenderInfo_(e){return new hs(this,e)}makeDrawer_(e,t){return new Fl(e,t)}makeMarkerDrawer(e,t){return new Fg(e,this.getConstants(),t)}makePathObject(e,t){return new Gd(e,t,this.constants_)}getConstants(){return this.constants_}shouldHighlightConnection(e){return!0}orphanCanConnectAtEnd(e,t,r){return!!sn.getConnectionForOrphanedConnection(e,r===Ze.OUTPUT_VALUE?t.outputConnection:t.previousConnection)}getConnectionPreviewMethod(e,t,r){return T("getConnectionPreviewMethod","v10","v12","an IConnectionPreviewer, if it fulfills your use case."),t.type===Ze.OUTPUT_VALUE||t.type===Ze.PREVIOUS_STATEMENT?!e.isConnected()||this.orphanCanConnectAtEnd(r,e.targetBlock(),t.type)?wr.PREVIEW_TYPE.INSERTION_MARKER:wr.PREVIEW_TYPE.REPLACEMENT_FADE:wr.PREVIEW_TYPE.INSERTION_MARKER}render(e){const t=this.makeRenderInfo_(e);t.measure(),this.makeDrawer_(e,t).draw()}},gn={};gn.BottomRow=or,gn.Connection=vi,gn.ConstantProvider=Vd,gn.Drawer=Fl,gn.ExternalValueInput=cn,gn.Field=jl,gn.Hat=Hd,gn.Icon=nu,gn.InRowSpacer=vr,gn.InlineInput=Mg,gn.InputConnection=Mo,gn.InputRow=Ng,gn.JaggedEdge=Bb,gn.MarkerSvg=Fg,gn.Measurable=Ct,gn.NextConnection=Pb,gn.OutputConnection=jb,gn.PathObject=Gd,gn.PreviousConnection=Fb,gn.RenderInfo=hs,gn.Renderer=ou,gn.RoundCorner=ru,gn.Row=Pl,gn.SpacerRow=Lg,gn.SquareCorner=iu,gn.StatementInput=su,gn.TopRow=Bg,gn.Types=J,gn.init=Qu,gn.register=Wi,gn.unregister=Hi;var Ub=class{constructor(e,t){this.workspace=e,this.theme=t,this.subscribedWorkspaces=[],this.componentDB=new Map}getTheme(){return this.theme}setTheme(e){var t=this.theme;this.theme=e,(e=this.workspace.getInjectionDiv())&&(t&&(t=t.getClassName())&&pt(e,t),(t=this.theme.getClassName())&&Fe(e,t));for(let r=0,l;l=this.subscribedWorkspaces[r];r++)l.refreshTheme();for(const[r,l]of this.componentDB)for(const p of l){e=p.element,t=p.propertyName;const v=this.theme&&this.theme.getComponentStyle(r);e.style.setProperty(t,v||"")}for(const r of this.subscribedWorkspaces)r.hideChaff()}subscribeWorkspace(e){this.subscribedWorkspaces.push(e)}unsubscribeWorkspace(e){if(!ue(this.subscribedWorkspaces,e))throw Error("Cannot unsubscribe a workspace that hasn't been subscribed.")}subscribe(e,t,r){this.componentDB.has(t)||this.componentDB.set(t,[]),this.componentDB.get(t).push({element:e,propertyName:r}),t=this.theme&&this.theme.getComponentStyle(t),e.style.setProperty(r,t||"")}unsubscribe(e){if(e)for(const[t,r]of this.componentDB){for(let l=r.length-1;0<=l;l--)r[l].element===e&&r.splice(l,1);r.length||this.componentDB.delete(t)}}dispose(){this.subscribedWorkspaces.length=0,this.componentDB.clear()}},zg="VARIABLE_DYNAMIC",Ba={CATEGORY_NAME:zg};Ba.flyoutCategory=_c,Ba.flyoutCategoryBlocks=os,Ba.onCreateVariableButtonClick_Colour=_p,Ba.onCreateVariableButtonClick_Number=yl,Ba.onCreateVariableButtonClick_String=yp;var Pa=30,ja=[];ja[Ze.INPUT_VALUE]=Ze.OUTPUT_VALUE,ja[Ze.OUTPUT_VALUE]=Ze.INPUT_VALUE,ja[Ze.NEXT_STATEMENT]=Ze.PREVIOUS_STATEMENT,ja[Ze.PREVIOUS_STATEMENT]=Ze.NEXT_STATEMENT;var Ug="RENAME_VARIABLE_ID",Wg="DELETE_VARIABLE_ID",Wb=class{canConnect(e,t,r,l){return this.canConnectWithReason(e,t,r,l)===sn.CAN_CONNECT}canConnectWithReason(e,t,r,l){const p=this.doSafetyChecks(e,t);return p!==sn.CAN_CONNECT?p:this.doTypeChecks(e,t)?r&&!this.doDragChecks(e,t,l||0)?sn.REASON_DRAG_CHECKS_FAILED:sn.CAN_CONNECT:sn.REASON_CHECKS_FAILED}getErrorMessage(e,t,r){switch(e){case sn.REASON_SELF_CONNECTION:return"Attempted to connect a block to itself.";case sn.REASON_DIFFERENT_WORKSPACES:return"Blocks not on same workspace.";case sn.REASON_WRONG_TYPE:return"Attempt to connect incompatible types.";case sn.REASON_TARGET_NULL:return"Target connection is null.";case sn.REASON_CHECKS_FAILED:return"Connection checks failed. "+(t+" expected "+t.getCheck()+", found "+r.getCheck());case sn.REASON_SHADOW_PARENT:return"Connecting non-shadow to shadow block.";case sn.REASON_DRAG_CHECKS_FAILED:return"Drag checks failed.";case sn.REASON_PREVIOUS_AND_OUTPUT:return"Block would have an output and a previous connection.";default:return"Unknown connection failure: this should never happen!"}}doSafetyChecks(e,t){if(!e||!t)return sn.REASON_TARGET_NULL;let r,l,p;return e.isSuperior()?(r=e.getSourceBlock(),l=t.getSourceBlock(),p=t):(l=e.getSourceBlock(),r=t.getSourceBlock(),p=e,e=t),r===l?sn.REASON_SELF_CONNECTION:p.type!==ja[e.type]?sn.REASON_WRONG_TYPE:r.workspace!==l.workspace?sn.REASON_DIFFERENT_WORKSPACES:r.isShadow()&&!l.isShadow()?sn.REASON_SHADOW_PARENT:p.type===Ze.OUTPUT_VALUE&&l.previousConnection&&l.previousConnection.isConnected()||p.type===Ze.PREVIOUS_STATEMENT&&l.outputConnection&&l.outputConnection.isConnected()?sn.REASON_PREVIOUS_AND_OUTPUT:sn.CAN_CONNECT}doTypeChecks(e,t){if(e=e.getCheck(),t=t.getCheck(),!e||!t)return!0;for(let r=0;rr||t.getSourceBlock().isInsertionMarker())return!1;switch(t.type){case Ze.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(e,t);case Ze.OUTPUT_VALUE:if(t.isConnected()&&!t.targetBlock().isInsertionMarker()||e.isConnected())return!1;break;case Ze.INPUT_VALUE:if(t.isConnected()&&!t.targetBlock().isMovable()&&!t.targetBlock().isShadow())return!1;break;case Ze.NEXT_STATEMENT:if(t.isConnected()&&!e.getSourceBlock().nextConnection&&!t.targetBlock().isShadow()&&t.targetBlock().nextConnection||t.targetBlock()&&!t.targetBlock().isMovable()&&!t.targetBlock().isShadow())return!1;break;default:return!1}return!Sl.includes(t)}canConnectToPrevious_(e,t){return e.targetConnection||Sl.includes(t)?!1:t.targetConnection?(e=t.targetBlock(),e.isInsertionMarker()?!e.getPreviousBlock():!1):!0}};i(Be.CONNECTION_CHECKER,Nr,Wb);var Hg=class extends zc{constructor(e){super(e),this.type=fe.VAR_DELETE,e&&(this.varType=e.type,this.varName=e.name)}toJson(){const e=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");return e.varType=this.varType,e.varName=this.varName,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Hg),t.varType=e.varType,t.varName=e.varName,t}run(e){const t=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");e?t.deleteVariableById(this.varId):t.createVariable(this.varName,this.varType,this.varId)}};i(Be.EVENT,fe.VAR_DELETE,Hg);var Kd=class extends zc{constructor(e,t){super(e),this.type=fe.VAR_RENAME,e&&(this.oldName=e.name,this.newName=typeof t>"u"?"":t)}toJson(){const e=super.toJson();if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");return e.oldName=this.oldName,e.newName=this.newName,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Kd),t.oldName=e.oldName,t.newName=e.newName,t}run(e){const t=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");e?t.renameVariableById(this.varId,this.newName):t.renameVariableById(this.varId,this.oldName)}};i(Be.EVENT,fe.VAR_RENAME,Kd);var Jd=class{constructor(e){this.workspace=e,this.variableMap=new Map}clear(){for(const e of this.variableMap.values())for(;0{p&&t&&this.deleteVariableInternal(t,l)})):this.deleteVariableInternal(t,l)}else console.warn("Can't delete non-existent variable: "+e)}deleteVariableInternal(e,t){const r=s.getGroup$$module$build$src$core$events$utils();r||s.setGroup$$module$build$src$core$events$utils(!0);try{for(let l=0;le.name)}getVariableUsesById(e){const t=[],r=this.workspace.getAllBlocks(!1);for(let l=0;l!r.isInsertionMarker())):[]}addTopComment(e){this.topComments.push(e),this.commentDB.has(e.id)&&console.warn('Overriding an existing comment on this workspace, with id "'+e.id+'"'),this.commentDB.set(e.id,e)}removeTopComment(e){if(!ue(this.topComments,e))throw Error("Comment not present in workspace's list of top-most comments.");this.commentDB.delete(e.id)}getTopComments(e=!1){const t=[].concat(this.topComments);return e&&1!r.isInsertionMarker())}clear(){this.isClearing=!0;try{const e=s.getGroup$$module$build$src$core$events$utils();for(e||s.setGroup$$module$build$src$core$events$utils(!0);this.topBlocks.length;)this.topBlocks[0].dispose(!1);for(;this.topComments.length;)this.topComments[this.topComments.length-1].dispose();s.setGroup$$module$build$src$core$events$utils(e),this.variableMap.clear(),this.potentialVariableMap&&this.potentialVariableMap.clear()}finally{this.isClearing=!1}}renameVariableById(e,t){this.variableMap.renameVariableById(e,t)}createVariable(e,t,r){return this.variableMap.createVariable(e,t,r)}getVariableUsesById(e){return this.variableMap.getVariableUsesById(e)}deleteVariableById(e){this.variableMap.deleteVariableById(e)}getVariable(e,t){return this.variableMap.getVariable(e,t)}getVariableById(e){return this.variableMap.getVariableById(e)}getVariablesOfType(e){return this.variableMap.getVariablesOfType(e)}getVariableTypes(){return this.variableMap.getVariableTypes(this)}getAllVariables(){return this.variableMap.getAllVariables()}getAllVariableNames(){return this.variableMap.getAllVariableNames()}getWidth(){return 0}newBlock(e,t){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts")}newComment(e){throw Error("The implementation of newComment should be monkey-patched in by blockly.ts")}remainingCapacity(){return isNaN(this.options.maxBlocks)?1/0:this.options.maxBlocks-this.getAllBlocks(!1).length}remainingCapacityOfType(e){return this.options.maxInstances?(this.options.maxInstances[e]!==void 0?this.options.maxInstances[e]:1/0)-this.getBlocksByType(e,!1).length:1/0}isCapacityAvailable(e){if(!this.hasBlockLimits())return!0;let t=0;for(const r in e){if(e[r]>this.remainingCapacityOfType(r))return!1;t+=e[r]}return!(t>this.remainingCapacity())}hasBlockLimits(){return this.options.maxBlocks!==1/0||!!this.options.maxInstances}getUndoStack(){return this.undoStack_}getRedoStack(){return this.redoStack_}undo(e){var t=e?this.redoStack_:this.undoStack_,r=e?this.undoStack_:this.redoStack_;const l=t.pop();if(l){for(var p=[l];t.length&&l.group&&l.group===t[t.length-1].group;){const v=t.pop();v&&p.push(v)}for(t=0;tthis.MAX_UNDO&&0<=this.MAX_UNDO;)this.undoStack_.shift();for(let t=0;t!!t.getStyleName())),this.refreshToolboxSelection(),this.toolbox&&this.toolbox.refreshTheme(),this.isVisible()&&this.setVisible(!0);const e=new(Ce(fe.THEME_CHANGE))(this.getTheme().name,this.id);ee(e)}updateBlockStyles(e){for(let t=0,r;r=e[t];t++){const l=r.getStyleName();l&&r.setStyle(l)}}getInverseScreenCTM(){if(this.inverseScreenCTMDirty){const e=this.getParentSvg().getScreenCTM();e&&(this.inverseScreenCTM=e.inverse(),this.inverseScreenCTMDirty=!1)}return this.inverseScreenCTM}updateInverseScreenCTM(){this.inverseScreenCTMDirty=!0}isVisible(){return this.visible}getSvgXY(e){let t=0,r=0,l=1;(this.getCanvas().contains(e)||this.getBubbleCanvas().contains(e))&&(l=this.scale);do{const p=xr(e);(e===this.getCanvas()||e===this.getBubbleCanvas())&&(l=1),t+=p.x*l,r+=p.y*l,e=e.parentNode}while(e&&e!==this.getParentSvg()&&e!==this.getInjectionDiv());return new Le(t,r)}getCachedParentSvgSize(){const e=this.cachedParentSvgSize;return new Jt(e.width,e.height)}getOriginOffsetInPixels(){return Ka(this.getCanvas())}getInjectionDiv(){if(!this.injectionDiv){let e=this.svgGroup_;for(;e;){if((" "+(e.getAttribute("class")||"")+" ").includes(" injectionDiv ")){this.injectionDiv=e;break}e=e.parentNode}}return this.injectionDiv}getSvgGroup(){return this.svgGroup_}getBlockCanvas(){return this.getCanvas()}setResizeHandlerWrapper(e){this.resizeHandlerWrapper=e}createDom(e,t){return this.injectionDiv||(this.injectionDiv=t??null),this.svgGroup_=re(oe.G,{class:"blocklyWorkspace"}),e&&(this.svgBackground_=re(oe.RECT,{height:"100%",width:"100%",class:e},this.svgGroup_),e==="blocklyMainBackground"&&this.grid?this.svgBackground_.style.fill="url(#"+this.grid.getPatternId()+")":this.themeManager_.subscribe(this.svgBackground_,"workspaceBackgroundColour","fill")),this.layerManager=new jt(this),this.svgBlockCanvas_=this.layerManager.getBlockLayer(),this.svgBubbleCanvas_=this.layerManager.getBubbleLayer(),this.isFlyout||(Ue(this.svgGroup_,"pointerdown",this,this.onMouseDown,!1),this.dummyWheelListener=()=>{},document.body.addEventListener("wheel",this.dummyWheelListener),Ue(this.svgGroup_,"wheel",this,this.onMouseWheel)),this.options.hasCategories&&(this.toolbox=new(w(Be.TOOLBOX,this.options,!0))(this)),this.grid&&this.grid.update(this.scale),this.recordDragTargets(),(e=w(Be.CURSOR,this.options))&&this.markerManager.setCursor(new e),this.renderer.createDom(this.svgGroup_,this.getTheme()),this.svgGroup_}dispose(){if(this.rendered=!1,this.currentGesture_&&this.currentGesture_.cancel(),this.svgGroup_&&mt(this.svgGroup_),this.toolbox&&(this.toolbox.dispose(),this.toolbox=null),this.flyout&&(this.flyout.dispose(),this.flyout=null),this.trashcan&&(this.trashcan.dispose(),this.trashcan=null),this.scrollbar&&(this.scrollbar.dispose(),this.scrollbar=null),this.zoomControls_&&this.zoomControls_.dispose(),this.audioManager&&this.audioManager.dispose(),this.grid&&(this.grid=null),this.renderer.dispose(),this.markerManager&&this.markerManager.dispose(),super.dispose(),this.themeManager_&&(this.themeManager_.unsubscribeWorkspace(this),this.themeManager_.unsubscribe(this.svgBackground_),this.options.parentWorkspace||this.themeManager_.dispose()),this.connectionDBList.length=0,this.toolboxCategoryCallbacks.clear(),this.flyoutButtonCallbacks.clear(),!this.options.parentWorkspace){const e=this.getParentSvg();e&&e.parentNode&&mt(e.parentNode)}this.resizeHandlerWrapper&&(wt(this.resizeHandlerWrapper),this.resizeHandlerWrapper=null),this.dummyWheelListener&&(document.body.removeEventListener("wheel",this.dummyWheelListener),this.dummyWheelListener=null)}addTrashcan(){this.trashcan=Cr.newTrashcan(this);const e=this.trashcan.createDom();this.svgGroup_.insertBefore(e,this.getCanvas())}static newTrashcan(e){throw Error("The implementation of newTrashcan should be monkey-patched in by blockly.ts")}addZoomControls(){this.zoomControls_=new og(this);const e=this.zoomControls_.createDom();this.svgGroup_.appendChild(e)}addFlyout(e){const t=new zr({parentWorkspace:this,rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,move:{scrollbars:!0}});return t.toolboxPosition=this.options.toolboxPosition,this.flyout=this.horizontalLayout?new(w(Be.FLYOUTS_HORIZONTAL_TOOLBOX,this.options,!0))(t):new(w(Be.FLYOUTS_VERTICAL_TOOLBOX,this.options,!0))(t),this.flyout.autoClose=!1,this.flyout.getWorkspace().setVisible(!0),this.flyout.createDom(e)}getFlyout(e){return this.flyout||e?this.flyout:this.toolbox?this.toolbox.getFlyout():null}getToolbox(){return this.toolbox}updateScreenCalculations(){this.updateInverseScreenCTM(),this.recordDragTargets()}resizeContents(){this.resizesEnabled&&this.rendered&&(this.scrollbar&&this.scrollbar.resize(),this.updateInverseScreenCTM())}resize(){this.toolbox&&this.toolbox.position(),this.flyout&&this.flyout.position();const e=this.componentManager.getComponents(pn.Capability.POSITIONABLE,!0),t=this.getMetricsManager().getUiMetrics(),r=[];for(let l=0,p;p=e[l];l++){p.position(t,r);const v=p.getBoundingRectangle();v&&r.push(v)}this.scrollbar&&this.scrollbar.resize(),this.updateScreenCalculations()}updateScreenCalculationsIfScrolled(){const e=nc();Le.equals(this.lastRecordedPageScroll,e)||(this.lastRecordedPageScroll=e,this.updateScreenCalculations())}getLayerManager(){return this.layerManager}getCanvas(){return this.layerManager.getBlockLayer()}setCachedParentSvgSize(e,t){const r=this.getParentSvg();e!=null&&(this.cachedParentSvgSize.width=e,r.setAttribute("data-cached-width",`${e}`)),t!=null&&(this.cachedParentSvgSize.height=t,r.setAttribute("data-cached-height",`${t}`))}getBubbleCanvas(){return this.layerManager.getBubbleLayer()}getParentSvg(){if(!this.cachedParentSvg){let e=this.svgGroup_;for(;e;){if(e.tagName==="svg"){this.cachedParentSvg=e;break}e=e.parentNode}}return this.cachedParentSvg}maybeFireViewportChangeEvent(){if(te()){var e=this.scale,t=-this.scrollY,r=-this.scrollX;if(!(e===this.oldScale&&1>Math.abs(t-this.oldTop)&&1>Math.abs(r-this.oldLeft))){var l=new(Ce(fe.VIEWPORT_CHANGE))(t,r,e,this.id,this.oldScale);this.oldScale=e,this.oldTop=t,this.oldLeft=r,ee(l)}}}translate(e,t){let r;(r=this.layerManager)==null||r.translateLayers(new Le(e,t),this.scale);let l;(l=this.grid)==null||l.moveTo(e,t),this.maybeFireViewportChangeEvent()}getWidth(){const e=this.getMetrics();return e?e.viewWidth/this.scale:0}setVisible(e){this.visible=e,this.svgGroup_&&(this.scrollbar&&this.scrollbar.setContainerVisible(e),this.getFlyout()&&this.getFlyout().setContainerVisible(e),this.getParentSvg().style.display=e?"block":"none",this.toolbox&&this.toolbox.setVisible(e),e||this.hideChaff(!0))}render(){const e=this.getAllBlocks(!1);for(let t=e.length-1;0<=t;t--)e[t].queueRender();this.getTopBlocks().flatMap(t=>t.getDescendants(!1)).filter(t=>t.isInsertionMarker()).forEach(t=>t.queueRender()),rs().then(()=>void this.markerManager.updateMarkers())}highlightBlock(e,t){if(t===void 0){for(let r=0,l;l=this.highlightedBlocks[r];r++)l.setHighlighted(!1);this.highlightedBlocks.length=0}(e=e?this.getBlockById(e):null)&&((t=t===void 0||t)?this.highlightedBlocks.includes(e)||this.highlightedBlocks.push(e):ue(this.highlightedBlocks,e),e.setHighlighted(t))}refreshToolboxSelection(){const e=this.isFlyout?this.targetWorkspace:this;e&&!e.currentGesture_&&e.toolbox&&e.toolbox.getFlyout()&&e.toolbox.refreshSelection()}renameVariableById(e,t){super.renameVariableById(e,t),this.refreshToolboxSelection()}deleteVariableById(e){super.deleteVariableById(e),this.refreshToolboxSelection()}createVariable(e,t,r){return e=super.createVariable(e,t,r),this.refreshToolboxSelection(),e}recordDragTargets(){const e=this.componentManager.getComponents(pn.Capability.DRAG_TARGET,!0);this.dragTargetAreas=[];for(let t=0,r;r=e[t];t++){const l=r.getClientRect();l&&this.dragTargetAreas.push({component:r,clientRect:l})}}newBlock(e,t){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts")}newComment(e){throw Error("The implementation of newComment should be monkey-patched in by blockly.ts")}getDragTarget(e){for(let t=0,r;r=this.dragTargetAreas[t];t++)if(r.clientRect.contains(e.clientX,e.clientY))return r.component;return null}onMouseDown(e){const t=this.getGesture(e);t&&t.handleWsStart(e,this)}startDrag(e,t){aa(this,e,t)}moveDrag(e){return ju(this,e)}isDragging(){return this.currentGesture_!==null&&this.currentGesture_.isDragging()}isDraggable(){return this.options.moveOptions&&this.options.moveOptions.drag}isMovable(){return this.options.moveOptions&&!!this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}isMovableHorizontally(){const e=!!this.scrollbar;return this.isMovable()&&(!e||e&&this.scrollbar.canScrollHorizontally())}isMovableVertically(){const e=!!this.scrollbar;return this.isMovable()&&(!e||e&&this.scrollbar.canScrollVertically())}onMouseWheel(e){if(Qi.inProgress())e.preventDefault(),e.stopPropagation();else{var t=this.options.zoomOptions&&this.options.zoomOptions.wheel,r=this.options.moveOptions&&this.options.moveOptions.wheel;if(t||r){var l=ge(e);if(Ac)var p=e.metaKey;t&&(e.ctrlKey||p||!r)?(l=-l.y/50,t=me(e,this.getParentSvg(),this.getInverseScreenCTM()),this.zoom(t.x,t.y,l)):(t=this.scrollX-l.x,r=this.scrollY-l.y,e.shiftKey&&!l.x&&(t=this.scrollX-l.y,r=this.scrollY),this.scroll(t,r)),e.preventDefault()}}}getBlocksBoundingBox(){const e=this.getTopBoundedElements();if(!e.length)return new Bt(0,0,0,0);const t=e[0].getBoundingRectangle();for(let l=1;lt.bottom&&(t.bottom=r.bottom),r.leftt.right&&(t.right=r.right))}return t}cleanUp(){this.setResizesEnabled(!1),s.setGroup$$module$build$src$core$events$utils(!0);var e=this.getTopBlocks(!0),t=e.filter(v=>v.isMovable());const r=e.filter(v=>!v.isMovable()).map(v=>v.getBoundingRectangle());e=function(v){for(const O of r)if(v.intersects(O))return O;return null};var l=0;const p=this.renderer.getConstants().MIN_BLOCK_HEIGHT;for(const v of t){for(t=v.getBoundingRectangle(),v.moveBy(-t.left,l-t.top,["cleanup"]),v.snapToGrid(),t=v.getBoundingRectangle(),l=e(t);l!=null;)l=l.top+l.getHeight()+p,v.moveBy(0,l-t.top,["cleanup"]),v.snapToGrid(),t=v.getBoundingRectangle(),l=e(t);l=v.getRelativeToSurfaceXY().y+v.getHeightWidth().height+p}s.setGroup$$module$build$src$core$events$utils(!1),this.setResizesEnabled(!0)}showContextMenu(e){if(!this.options.readOnly&&!this.isFlyout){var t=zt.registry.getContextMenuOptions(zt.ScopeType.WORKSPACE,{workspace:this});this.configureContextMenu&&this.configureContextMenu(t,e),dl(e,t,this.RTL,this)}}updateToolbox(e){if(e=j(e)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox.");if(Ee(e)){if(!this.toolbox)throw Error("Existing toolbox has no categories. Can't change mode.");this.options.languageTree=e,this.toolbox.render(e)}else{if(!this.flyout)throw Error("Existing toolbox has categories. Can't change mode.");this.options.languageTree=e,this.flyout.show(e)}}else if(this.options.languageTree)throw Error("Can't nullify an existing toolbox.")}markFocused(){this.options.parentWorkspace?this.options.parentWorkspace.markFocused():(He(this),this.getParentSvg().focus({preventScroll:!0}))}zoom(e,t,r){r=Math.pow(this.options.zoomOptions.scaleSpeed,r);const l=this.scale*r;if(this.scale!==l){l>this.options.zoomOptions.maxScale?r=this.options.zoomOptions.maxScale/this.scale:lthis.options.zoomOptions.maxScale?e=this.options.zoomOptions.maxScale:this.options.zoomOptions.minScale&&et.autoHide(e))}static setTopLevelWorkspaceMetrics(e){const t=this.getMetrics();typeof e.x=="number"&&(this.scrollX=-(t.scrollLeft+(t.scrollWidth-t.viewWidth)*e.x)),typeof e.y=="number"&&(this.scrollY=-(t.scrollTop+(t.scrollHeight-t.viewHeight)*e.y)),this.translate(this.scrollX+t.absoluteLeft,this.scrollY+t.absoluteTop)}},Vg=class extends Es{constructor(e,t,r){super(r),this.type=fe.SELECTED,this.oldElementId=e??void 0,this.newElementId=t??void 0}toJson(){const e=super.toJson();return e.oldElementId=this.oldElementId,e.newElementId=this.newElementId,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Vg),t.oldElementId=e.oldElementId,t.newElementId=e.newElementId,t}};i(Be.EVENT,fe.SELECTED,Vg);var au=class{paste(e,t,r){if(!t.isCapacityAvailable(e.typeCounts))return null;r&&(e.blockState.x=r.x,e.blockState.y=r.y),r=r||new Le(e.blockState.x||0,e.blockState.y||0),s.disable$$module$build$src$core$events$utils();let l;try{l=Ni(e.blockState,t),ed(l,r)}finally{s.enable$$module$build$src$core$events$utils()}return l&&(te()&&!l.isShadow()&&ee(new(Ce(fe.BLOCK_CREATE))(l)),s.setSelected$$module$build$src$core$common(l),l)}};au.TYPE="block",Js(au.TYPE,new au);var qd={};qd.bumpIntoBounds=So,qd.bumpIntoBoundsHandler=_l,qd.bumpTopObjectsIntoBounds=wc;var Vb=class{constructor(e){this.block=e,this.connectionPreviewer=this.connectionCandidate=this.startLoc=this.startChildConn=this.startParentConn=null,this.dragging=!1,this.dragOffset=new Le(0,0),this.inGroup=!1,this.workspace=e.workspace}isMovable(){if(this.block.isShadow()){let e,t;return(t=(e=this.block.getParent())==null?void 0:e.isMovable())!=null?t:!1}return this.block.isOwnMovable()&&!this.block.isDeadOrDying()&&!this.workspace.options.readOnly&&!this.block.isInFlyout}startDrag(e){if(this.block.isShadow())this.startDraggingShadow(e);else{this.dragging=!0,(this.inGroup=!!s.getGroup$$module$build$src$core$events$utils())||s.setGroup$$module$build$src$core$events$utils(!0),this.fireDragStartEvent(),this.startLoc=this.block.getRelativeToSurfaceXY(),this.connectionCandidate=null,this.connectionPreviewer=new(w(Be.CONNECTION_PREVIEWER,this.workspace.options))(this.block),zn(),this.workspace.setResizesEnabled(!1),qr(),e=!!e&&(e.altKey||e.ctrlKey||e.metaKey),this.shouldDisconnect(e)&&this.disconnectBlock(e),this.block.setDragging(!0);var t;(t=this.workspace.getLayerManager())==null||t.moveToDragLayer(this.block)}}startDraggingShadow(e){const t=this.block.getParent();if(!t)throw Error("Tried to drag a shadow block with no parent. Shadow blocks should always have parents.");this.dragOffset=Le.difference(t.getRelativeToSurfaceXY(),this.block.getRelativeToSurfaceXY()),t.startDrag(e)}shouldDisconnect(e){return!!(this.block.getParent()||e&&this.block.nextConnection&&this.block.nextConnection.targetBlock())}disconnectBlock(e){let t,r,l;if(this.startParentConn=(l=(t=this.block.outputConnection)==null?void 0:t.targetConnection)!=null?l:(r=this.block.previousConnection)==null?void 0:r.targetConnection,e){let p;this.startChildConn=(p=this.block.nextConnection)==null?void 0:p.targetConnection}this.block.unplug(e),Vu(this.block)}fireDragStartEvent(){const e=new(Ce(fe.BLOCK_DRAG))(this.block,!0,this.block.getDescendants(!1));ee(e)}fireDragEndEvent(){const e=new(Ce(fe.BLOCK_DRAG))(this.block,!1,this.block.getDescendants(!1));ee(e)}fireMoveEvent(){if(!this.block.isDeadOrDying()){var e=new(Ce(fe.BLOCK_MOVE))(this.block);e.setReason(["drag"]),e.oldCoordinate=this.startLoc,e.recordNew(),ee(e)}}drag(e){if(this.block.isShadow()){let t;(t=this.block.getParent())==null||t.drag(Le.sum(e,this.dragOffset))}else this.block.moveDuringDrag(e),this.updateConnectionPreview(this.block,Le.difference(e,this.startLoc))}updateConnectionPreview(e,t){var r=this.connectionCandidate;const l=this.getConnectionCandidate(e,t);if(l){this.connectionCandidate=t=r&&this.currCandidateIsBetter(r,t,l)?r:l;var{local:p,neighbour:v}=t;t=p.type===Ze.OUTPUT_VALUE||p.type===Ze.PREVIOUS_STATEMENT,r=v.isConnected()&&!v.targetBlock().isInsertionMarker(),t&&r&&!this.orphanCanConnectAtEnd(e,v.targetBlock(),p.type)?this.connectionPreviewer.previewReplacement(p,v,v.targetBlock()):this.connectionPreviewer.previewConnection(p,v)}else this.connectionPreviewer.hidePreview(),this.connectionCandidate=null}orphanCanConnectAtEnd(e,t,r){return!!sn.getConnectionForOrphanedConnection(e,r===Ze.OUTPUT_VALUE?t.outputConnection:t.previousConnection)}currCandidateIsBetter(e,t,r){const{local:l,neighbour:p}=e;e=new Le(l.x,l.y);const v=new Le(p.x,p.y);return t=Le.distance(Le.sum(e,t),v),r.distance>t-s.config$$module$build$src$core$config.currentConnectionPreference}getConnectionCandidate(e,t){e=this.getLocalConnections(e);let r=this.connectionCandidate?s.config$$module$build$src$core$config.connectingSnapRadius:s.config$$module$build$src$core$config.snapRadius,l=null;for(const p of e){const{connection:v,radius:O}=p.closest(r,t);v&&(l={local:p,neighbour:v,distance:O},r=O)}return l}getLocalConnections(e){const t=e.getConnections_(!1),r=e.lastConnectionInStack(!0);return r&&r!==e.nextConnection&&t.push(r),t}endDrag(e){if(this.block.isShadow()){let t;(t=this.block.getParent())==null||t.endDrag(e)}else{if(this.fireDragEndEvent(),this.fireMoveEvent(),Jn(),qr(),this.connectionPreviewer.hidePreview(),!this.block.isDeadOrDying()&&this.dragging){let t;(t=this.workspace.getLayerManager())==null||t.moveOffDragLayer(this.block,Ao),this.block.setDragging(!1)}this.connectionCandidate?(this.applyConnections(this.connectionCandidate),this.disposeStep()):this.block.queueRender().then(()=>this.disposeStep()),this.inGroup||s.setGroup$$module$build$src$core$events$utils(!1)}}disposeStep(){this.block.snapToGrid(),this.connectionPreviewer.dispose(),this.workspace.setResizesEnabled(!0)}applyConnections(e){const{local:t,neighbour:r}=e;t.connect(r);const l=t.isSuperior()?r:t,p=this.block.getRootBlock();rs().then(()=>{_o(l.getSourceBlock()),setTimeout(()=>{p.bringToFront()},0)})}revertDrag(){if(this.block.isShadow()){let t;(t=this.block.getParent())==null||t.revertDrag()}else{var e;if((e=this.startChildConn)==null||e.connect(this.block.nextConnection),this.startParentConn)switch(this.startParentConn.type){case Ze.INPUT_VALUE:this.startParentConn.connect(this.block.outputConnection);break;case Ze.NEXT_STATEMENT:this.startParentConn.connect(this.block.previousConnection)}else{this.block.moveTo(this.startLoc,["drag"]);let t;(t=this.workspace.getLayerManager())==null||t.moveOffDragLayer(this.block,Ao),So(this.workspace,this.workspace.getMetricsManager().getScrollMetrics(!0),this.block)}this.startParentConn=this.startChildConn=null,this.connectionPreviewer.hidePreview(),this.connectionCandidate=null,this.block.setDragging(!1),this.dragging=!1}}},Gb=class{constructor(){this.drawer=this.curNode=this.colour=null,this.type="marker"}setDrawer(e){this.drawer=e}getDrawer(){return this.drawer}getCurNode(){return this.curNode}setCurNode(e){const t=this.curNode;this.curNode=e,this.drawer&&this.drawer.draw(t,this.curNode)}draw(){this.drawer&&this.drawer.draw(this.curNode,this.curNode)}hide(){this.drawer&&this.drawer.hide()}dispose(){this.getDrawer()&&this.getDrawer().dispose()}},Gg=class extends Gb{constructor(){super(),this.type="cursor"}next(){var e=this.getCurNode();if(!e)return null;for(e=e.next();e&&e.next()&&(e.getType()===Oe.types.NEXT||e.getType()===Oe.types.BLOCK);)e=e.next();return e&&this.setCurNode(e),e}in(){var e=this.getCurNode();if(!e)return null;(e.getType()===Oe.types.PREVIOUS||e.getType()===Oe.types.OUTPUT)&&(e=e.next());let t,r;return(e=(r=(t=e)==null?void 0:t.in())!=null?r:null)&&this.setCurNode(e),e}prev(){var e=this.getCurNode();if(!e)return null;for(e=e.prev();e&&e.prev()&&(e.getType()===Oe.types.NEXT||e.getType()===Oe.types.BLOCK);)e=e.prev();return e&&this.setCurNode(e),e}out(){var e=this.getCurNode();return e?((e=e.out())&&e.getType()===Oe.types.BLOCK&&(e=e.prev()||e),e&&this.setCurNode(e),e):null}};i(Be.CURSOR,Nr,Gg);var lu=class extends Gg{constructor(){super()}next(){var e=this.getCurNode();return e?((e=this.getNextNode_(e,this.validNode_))&&this.setCurNode(e),e):null}in(){return this.next()}prev(){var e=this.getCurNode();return e?((e=this.getPreviousNode_(e,this.validNode_))&&this.setCurNode(e),e):null}out(){return this.prev()}getNextNode_(e,t){if(!e)return null;const r=e.in()||e.next();return t(r)?r:r?this.getNextNode_(r,t):(e=this.findSiblingOrParent(e.out()),t(e)?e:e?this.getNextNode_(e,t):null)}getPreviousNode_(e,t){if(!e)return null;let r=e.prev();return r=r?this.getRightMostChild(r):e.out(),t(r)?r:r?this.getPreviousNode_(r,t):null}validNode_(e){let t=!1;return e=e&&e.getType(),(e===Oe.types.OUTPUT||e===Oe.types.INPUT||e===Oe.types.FIELD||e===Oe.types.NEXT||e===Oe.types.PREVIOUS||e===Oe.types.WORKSPACE)&&(t=!0),t}findSiblingOrParent(e){if(!e)return null;const t=e.next();return t||this.findSiblingOrParent(e.out())}getRightMostChild(e){if(!e.in())return e;for(e=e.in();e&&e.next();)e=e.next();return this.getRightMostChild(e)}};lu.registrationName="basicCursor",i(Be.CURSOR,lu.registrationName,lu);var Kb=class extends lu{validNode_(e){let t=!1;const r=e&&e.getType();return e&&(e=e.getLocation(),r===Oe.types.FIELD&&e&&e.isTabNavigable()&&e.isClickable()&&(t=!0)),t}},Jb=10,Fs=class extends sn{constructor(e,t){super(e,t),this.highlighted=!1,this.targetConnection=null,this.db=e.workspace.connectionDBList[t],this.dbOpposite=e.workspace.connectionDBList[ja[t]],this.offsetInBlock=new Le(0,0),this.trackedState=Fs.TrackedState.WILL_TRACK}dispose(){super.dispose(),this.trackedState===Fs.TrackedState.TRACKED&&this.db.removeConnection(this,this.y);let e,t;(t=(e=this.sourceBlock_.pathObject).removeConnectionHighlight)==null||t.call(e,this)}getSourceBlock(){return super.getSourceBlock()}targetBlock(){return super.targetBlock()}distanceFrom(e){const t=this.x-e.x;return e=this.y-e.y,Math.sqrt(t*t+e*e)}bumpAwayFrom(e,t=!1){if(!this.sourceBlock_.workspace.isDragging()){var r=s.config$$module$build$src$core$config.snapRadius+Math.floor(Math.random()*Jb),l=s.config$$module$build$src$core$config.snapRadius+Math.floor(Math.random()*Jb),p=e.sourceBlock_.getRootBlock(),v=this.sourceBlock_.getRootBlock();if(!p.isInFlyout&&!v.isInFlyout){var O=!0;if(v.isMovable())p.isMovable()&&t&&(l=-l);else if(p.isMovable())O=!1,r=-r,l=-l;else return;t=O?e:this,e=O?this:e,p=O?v:p,(v=ne()===p)||p.addSelect(),p.RTL&&(r=-r),p.moveBy(t.x+r-e.x,t.y+l-e.y,["bump"]),v||p.removeSelect()}}}moveTo(e,t){let r=!1;return this.trackedState===Fs.TrackedState.WILL_TRACK?(this.db.addConnection(this,t),this.trackedState=Fs.TrackedState.TRACKED,r=!0):this.trackedState===Fs.TrackedState.TRACKED&&(this.db.removeConnection(this,this.y),this.db.addConnection(this,t),r=!0),this.x=e,this.y=t,r}moveBy(e,t){return this.moveTo(this.x+e,this.y+t)}moveToOffset(e){return this.moveTo(e.x+this.offsetInBlock.x,e.y+this.offsetInBlock.y)}setOffsetInBlock(e,t){this.offsetInBlock.x=e,this.offsetInBlock.y=t}getOffsetInBlock(){return this.offsetInBlock}tightenEfficiently(){var e=this.targetConnection;const t=this.targetBlock();e&&t&&(e=Le.difference(this.offsetInBlock,e.offsetInBlock),t.translate(e.x,e.y))}closest(e,t){return this.dbOpposite.searchForClosest(this,e,t)}highlight(){this.highlighted=!0,this.getSourceBlock().queueRender()}unhighlight(){this.highlighted=!1,this.getSourceBlock().queueRender()}isHighlighted(){return this.highlighted}setTracking(e){e&&this.trackedState===Fs.TrackedState.TRACKED||!e&&this.trackedState===Fs.TrackedState.UNTRACKED||this.sourceBlock_.isInFlyout||(e?(this.db.addConnection(this,this.y),this.trackedState=Fs.TrackedState.TRACKED):(this.trackedState===Fs.TrackedState.TRACKED&&this.db.removeConnection(this,this.y),this.trackedState=Fs.TrackedState.UNTRACKED))}stopTrackingAll(){if(this.setTracking(!1),this.targetConnection){const e=this.targetBlock().getDescendants(!1);for(let t=0;tclearTimeout(e)),this.warningTextDb.clear(),this.getIcons().forEach(e=>e.dispose())}checkAndDelete(){this.workspace.isFlyout||(s.setGroup$$module$build$src$core$events$utils(!0),this.workspace.hideChaff(),this.outputConnection?this.dispose(!1,!0):this.dispose(!0,!0),s.setGroup$$module$build$src$core$events$utils(!1))}toCopyData(){return this.isInsertionMarker_?null:{paster:au.TYPE,blockState:Qt(this,{addCoordinates:!0,addNextBlocks:!1}),typeCounts:rt(this,!0)}}applyColour(){this.pathObject.applyColour(this);const e=this.getIcons();for(let t=0;t{this.isDeadOrDying()||(this.warningTextDb.delete(t),this.setWarningText(e,t))},100));else if(this.isInFlyout&&(e=null),r=this.getIcon(so.TYPE),e){let l=this.getSurroundParent(),p=null;for(;l;)l.isCollapsed()&&(p=l),l=l.getSurroundParent();p&&p.setWarningText(s.Msg$$module$build$src$core$msg.COLLAPSED_WARNINGS_WARNING,Ur.COLLAPSED_WARNING_ID),r?r.addMessage(e,t):this.addIcon(new so(this).addMessage(e,t))}else r&&(t?(r.addMessage("",t),r.getText()||this.removeIcon(so.TYPE)):this.removeIcon(so.TYPE))}setMutator(e){this.removeIcon(s.MutatorIcon$$module$build$src$core$icons$mutator_icon.TYPE),e&&this.addIcon(e)}addIcon(e){return super.addIcon(e),e instanceof s.MutatorIcon$$module$build$src$core$icons$mutator_icon&&(this.mutator=e),e.initView(this.createIconPointerDownListener(e)),e.applyColour(),e.updateEditable(),this.queueRender(),e}createIconPointerDownListener(e){return t=>{this.isDeadOrDying()||(t=this.workspace.getGesture(t))&&t.setStartIcon(e)}}removeIcon(e){const t=super.removeIcon(e);return e.equals(s.MutatorIcon$$module$build$src$core$icons$mutator_icon.TYPE)&&(this.mutator=null),this.queueRender(),t}setEnabled(e){T("setEnabled","v11","v12","the setDisabledReason method of BlockSvg");const t=this.isEnabled();super.setEnabled(e),this.isEnabled()===t||this.getInheritedDisabled()||this.updateDisabled()}setDisabledReason(e,t){const r=this.isEnabled();super.setDisabledReason(e,t),this.isEnabled()===r||this.getInheritedDisabled()||this.updateDisabled()}setHighlighted(e){this.pathObject.updateHighlighted(e)}addSelect(){this.pathObject.updateSelected(!0)}removeSelect(){this.pathObject.updateSelected(!1)}setDeleteStyle(e){this.pathObject.updateDraggingDelete(e)}getColour(){return this.style.colourPrimary}setColour(e){super.setColour(e),e=this.workspace.getRenderer().getConstants().getBlockStyleForColour(this.colour_),this.pathObject.setStyle(e.style),this.style=e.style,this.styleName_=e.name,this.applyColour()}setStyle(e){const t=this.workspace.getRenderer().getConstants().getBlockStyle(e);if(this.styleName_=e,t)this.hat=t.hat,this.pathObject.setStyle(t),this.colour_=t.colourPrimary,this.style=t,this.applyColour();else throw Error("Invalid style name: "+e)}getStyle(){return this.style}bringToFront(e=!1){let t=this;if(!t.isDeadOrDying())do{const r=t.getSvgRoot(),l=r.parentNode,p=l.childNodes;if(p[p.length-1]!==r&&l.appendChild(r),e)break;t=t.getParent()}while(t)}setPreviousStatement(e,t){super.setPreviousStatement(e,t),this.queueRender()}setNextStatement(e,t){super.setNextStatement(e,t),this.queueRender()}setOutput(e,t){super.setOutput(e,t),this.queueRender()}setInputsInline(e){super.setInputsInline(e),this.queueRender()}removeInput(e,t){return e=super.removeInput(e,t),this.queueRender(),e}moveNumberedInputBefore(e,t){super.moveNumberedInputBefore(e,t),this.queueRender()}appendInput(e){return super.appendInput(e),this.queueRender(),e}setConnectionTracking(e){if(this.previousConnection&&this.previousConnection.setTracking(e),this.outputConnection&&this.outputConnection.setTracking(e),this.nextConnection){this.nextConnection.setTracking(e);var t=this.nextConnection.targetBlock();t&&t.setConnectionTracking(e)}if(!this.collapsed_)for(t=0;t=this.workspace.options.maxTrashcanContents||(e=new zr({scrollbars:!0,parentWorkspace:this.workspace,rtl:this.workspace.RTL,oneBasedIndex:this.workspace.options.oneBasedIndex,renderer:this.workspace.options.renderer,rendererOverrides:this.workspace.options.rendererOverrides,move:{scrollbars:!0}}),this.workspace.horizontalLayout?(e.toolboxPosition=this.workspace.toolboxPosition===Rt.TOP?Rt.BOTTOM:Rt.TOP,this.flyout=new(w(Be.FLYOUTS_HORIZONTAL_TOOLBOX,this.workspace.options,!0))(e)):(e.toolboxPosition=this.workspace.toolboxPosition===Rt.RIGHT?Rt.LEFT:Rt.RIGHT,this.flyout=new(w(Be.FLYOUTS_VERTICAL_TOOLBOX,this.workspace.options,!0))(e)),this.workspace.addChangeListener(this.onDelete.bind(this)))}createDom(){this.svgGroup=re(oe.G,{class:"blocklyTrash"});let e;const t=String(Math.random()).substring(2);e=re(oe.CLIPPATH,{id:"blocklyTrashBodyClipPath"+t},this.svgGroup),re(oe.RECT,{width:Ul,height:Xd,y:Wl},e);const r=re(oe.IMAGE,{width:Ls.width,x:-Zd,height:Ls.height,y:-Qd,"clip-path":"url(#blocklyTrashBodyClipPath"+t+")"},this.svgGroup);return r.setAttributeNS(nr,"xlink:href",this.workspace.options.pathToMedia+Ls.url),e=re(oe.CLIPPATH,{id:"blocklyTrashLidClipPath"+t},this.svgGroup),re(oe.RECT,{width:Ul,height:Wl},e),this.svgLid=re(oe.IMAGE,{width:Ls.width,x:-Zd,height:Ls.height,y:-Qd,"clip-path":"url(#blocklyTrashLidClipPath"+t+")"},this.svgGroup),this.svgLid.setAttributeNS(nr,"xlink:href",this.workspace.options.pathToMedia+Ls.url),Nt(this.svgGroup,"pointerdown",this,this.blockMouseDownWhenOpenable),Nt(this.svgGroup,"pointerup",this,this.click),Nt(r,"pointerover",this,this.mouseOver),Nt(r,"pointerout",this,this.mouseOut),this.animateLid(),this.svgGroup}init(){0{let r;(r=this.flyout)==null||r.show(e),t.cursor="";let l;(l=this.workspace.scrollbar)==null||l.setVisible(!1)},10),this.fireUiEvent(!0)}}closeFlyout(){if(this.contentsIsOpen()){var e;(e=this.flyout)==null||e.hide();var t;(t=this.workspace.scrollbar)==null||t.setVisible(!0),this.fireUiEvent(!1),this.workspace.recordDragTargets()}}autoHide(e){!e&&this.flyout&&this.closeFlyout()}emptyContents(){this.hasContents()&&(this.contents.length=0,this.setMinOpenness(0),this.closeFlyout())}position(e,t){if(this.initialized){var r=Lt(this.workspace,e);e=on(r,new Jt(Ul,Xd+Wl),hy,Xb,e,this.workspace),t=an(e,Xb,r.vertical===Br.TOP?bs.DOWN:bs.UP,t),this.top=t.top,this.left=t.left;var l;(l=this.svgGroup)==null||l.setAttribute("transform","translate("+this.left+","+this.top+")");var p;(p=this.flyout)==null||p.position()}}getBoundingRectangle(){return new Bt(this.top,this.top+Xd+Wl,this.left,this.left+Ul)}getClientRect(){if(!this.svgGroup)return null;var e=this.svgGroup.getBoundingClientRect();const t=e.top+Qd-Hl;return e=e.left+Zd-Hl,new Bt(t,t+Wl+Xd+2*Hl,e,e+Ul+2*Hl)}onDragOver(e){this.setLidOpen(this.wouldDelete_)}onDragExit(e){this.setLidOpen(!1)}onDrop(e){setTimeout(this.setLidOpen.bind(this,!1),100)}setLidOpen(e){this.isLidOpen!==e&&(this.lidTask&&clearTimeout(this.lidTask),this.isLidOpen=e,this.animateLid())}animateLid(){const e=fy;var t=1/(e+1);this.lidOpen+=this.isLidOpen?t:-t,this.lidOpen=Math.min(Math.max(this.lidOpen,this.minOpenness),1),this.setLidAngle(this.lidOpen*Zb),t=eh+this.lidOpen*(my-eh),this.svgGroup&&(this.svgGroup.style.opacity=`${t}`),this.lidOpen>this.minOpenness&&1>this.lidOpen&&(this.lidTask=setTimeout(this.animateLid.bind(this),gy/e))}setLidAngle(e){const t=this.workspace.toolboxPosition===Rt.RIGHT||this.workspace.horizontalLayout&&this.workspace.RTL;let r;(r=this.svgLid)==null||r.setAttribute("transform","rotate("+(t?-e:e)+","+(t?4:Ul-4)+","+(Wl-2)+")")}setMinOpenness(e){this.minOpenness=e,this.isLidOpen||this.setLidAngle(e*Zb)}closeLid(){this.setLidOpen(!1)}click(){this.hasContents()&&!this.workspace.isDragging()&&this.openFlyout()}fireUiEvent(e){e=new(Ce(fe.TRASHCAN_OPEN))(e,this.workspace.id),ee(e)}blockMouseDownWhenOpenable(e){!this.contentsIsOpen()&&this.hasContents()&&e.stopPropagation()}mouseOver(){this.hasContents()&&this.setLidOpen(!0)}mouseOut(){this.setLidOpen(!1)}onDelete(e){if(!(0>=this.workspace.options.maxTrashcanContents||!A(e)||e.wasShadow)){if(!e.oldJson)throw Error("Encountered a delete event without proper oldJson");if(e=JSON.stringify(this.cleanBlockJson(e.oldJson)),!this.contents.includes(e)){for(this.contents.unshift(e);this.contents.length>this.workspace.options.maxTrashcanContents;)this.contents.pop();this.setMinOpenness(py)}}}cleanBlockJson(e){function t(r){if(r){if(delete r.id,delete r.x,delete r.y,delete r.enabled,delete r.disabledReasons,r.icons&&r.icons.comment){var l=r.icons.comment;delete l.height,delete l.width,delete l.pinned}l=r.inputs;for(var p in l){var v=l[p];const O=v.block;v=v.shadow,O&&t(O),v&&t(v)}r.next&&(p=r.next,r=p.block,p=p.shadow,r&&t(r),p&&t(p))}}return e=JSON.parse(JSON.stringify(e)),t(e),Object.assign({},{kind:"BLOCK"},e)}},Ul=47,Xd=44,Wl=16,Xb=20,hy=20,Hl=10,Zd=0,Qd=32,py=.1,gy=80,fy=4,eh=.4,my=.8,Zb=45,un=class{constructor(){this.shortcuts=new Map,this.keyMap=new Map,this.reset()}reset(){this.shortcuts.clear(),this.keyMap.clear()}register(e,t){if(this.shortcuts.get(e.name)&&!t)throw Error(`Shortcut named "${e.name}" already exists.`);if(this.shortcuts.set(e.name,e),t=e.keyCodes,t!=null&&t.length)for(const r of t)this.addKeyMapping(r,e.name,!!e.allowCollision)}unregister(e){return this.shortcuts.get(e)?(this.removeAllKeyMappings(e),this.shortcuts.delete(e),!0):(console.warn(`Keyboard shortcut named "${e}" not found.`),!1)}addKeyMapping(e,t,r){e=`${e}`;const l=this.keyMap.get(e);if(l&&!r)throw Error(`Shortcut named "${t}" collides with shortcuts "${l}"`);l&&r?l.unshift(t):this.keyMap.set(e,[t])}removeKeyMapping(e,t,r){const l=this.keyMap.get(e);if(!l)return r||console.warn(`No keyboard shortcut named "${t}" registered with key code "${e}"`),!1;const p=l.indexOf(t);return-1Cc(t)),e.length?e:null}load(e,t){const r=t.getProcedureMap();for(const l of e)r.add(sd(this.procedureModelClass,this.parameterModelClass,l,t))}clear(e){e.getProcedureMap().clear()}},th={};th.ProcedureSerializer=$y,th.loadProcedure=sd,th.saveProcedure=Cc;var Qb=class{constructor(){this.priority=eb}save(e){const t=[];for(const r of e.getAllVariables())e={name:r.name,id:r.getId()},r.type&&(e.type=r.type),t.push(e);return t.length?t:null}load(e,t){for(const r of e)t.createVariable(r.name,r.type,r.id)}clear(e){e.getVariableMap().clear()}};_n("variables",new Qb);var e$={};e$.VariableSerializer=Qb;var nh={};nh.load=Fm,nh.save=jm;var vy={blocks:Hc,exceptions:Ca,priorities:sy,procedures:th,registry:ag,variables:e$,workspaceComments:Ed,workspaces:nh},Jg=class{constructor(e,t,r,l,p){this.workspace=e,this.oldHostMetrics=this.corner_=this.vScroll=this.hScroll=null,t=t===void 0?!0:t,r=r===void 0?!0:r;const v=t&&r;t&&(this.hScroll=new Fn(e,!0,v,l,p)),r&&(this.vScroll=new Fn(e,!1,v,l,p)),v&&(this.corner_=re(oe.RECT,{height:Fn.scrollbarThickness,width:Fn.scrollbarThickness,class:"blocklyScrollbarBackground"}),Cn(this.corner_,e.getBubbleCanvas()))}dispose(){mt(this.corner_),this.oldHostMetrics=this.corner_=null,this.hScroll&&(this.hScroll.dispose(),this.hScroll=null),this.vScroll&&(this.vScroll.dispose(),this.vScroll=null)}resize(){const e=this.workspace.getMetrics();if(e){var t=!1,r=!1;if(this.oldHostMetrics&&this.oldHostMetrics.viewWidth===e.viewWidth&&this.oldHostMetrics.viewHeight===e.viewHeight&&this.oldHostMetrics.absoluteTop===e.absoluteTop&&this.oldHostMetrics.absoluteLeft===e.absoluteLeft?(this.oldHostMetrics&&this.oldHostMetrics.scrollWidth===e.scrollWidth&&this.oldHostMetrics.viewLeft===e.viewLeft&&this.oldHostMetrics.scrollLeft===e.scrollLeft||(t=!0),this.oldHostMetrics&&this.oldHostMetrics.scrollHeight===e.scrollHeight&&this.oldHostMetrics.viewTop===e.viewTop&&this.oldHostMetrics.scrollTop===e.scrollTop||(r=!0)):r=t=!0,t||r){try{s.disable$$module$build$src$core$events$utils(),this.hScroll&&t&&this.hScroll.resize(e),this.vScroll&&r&&this.vScroll.resize(e)}finally{s.enable$$module$build$src$core$events$utils()}this.workspace.maybeFireViewportChangeEvent()}if(this.hScroll&&this.vScroll){if(!this.oldHostMetrics||this.oldHostMetrics.viewWidth!==e.viewWidth||this.oldHostMetrics.absoluteLeft!==e.absoluteLeft){let l;(l=this.corner_)==null||l.setAttribute("x",String(this.vScroll.position.x))}if(!this.oldHostMetrics||this.oldHostMetrics.viewHeight!==e.viewHeight||this.oldHostMetrics.absoluteTop!==e.absoluteTop){let l;(l=this.corner_)==null||l.setAttribute("y",String(this.hScroll.position.y))}}this.oldHostMetrics=e}}canScrollHorizontally(){return!!this.hScroll}canScrollVertically(){return!!this.vScroll}setOrigin(e,t){this.hScroll&&this.hScroll.setOrigin(e,t),this.vScroll&&this.vScroll.setOrigin(e,t)}set(e,t,r){this.hScroll&&this.hScroll.set(e,!1),this.vScroll&&this.vScroll.set(t,!1),(r||r===void 0)&&(e={},this.hScroll&&(e.x=this.hScroll.getRatio_()),this.vScroll&&(e.y=this.vScroll.getRatio_()),this.workspace.setMetrics(e))}setX(e){this.hScroll&&this.hScroll.set(e,!0)}setY(e){this.vScroll&&this.vScroll.set(e,!0)}setContainerVisible(e){this.hScroll&&this.hScroll.setContainerVisible(e),this.vScroll&&this.vScroll.setContainerVisible(e)}isVisible(){let e=!1;return this.hScroll&&(e=this.hScroll.isVisible()),this.vScroll&&(e=e||this.vScroll.isVisible()),e}setVisible(e){this.hScroll&&this.hScroll.setVisibleInternal(e),this.vScroll&&this.vScroll.setVisibleInternal(e)}resizeContent(e){this.hScroll&&this.hScroll.resizeContentHorizontal(e),this.vScroll&&this.vScroll.resizeContentVertical(e)}resizeView(e){this.hScroll&&this.hScroll.resizeViewHorizontal(e),this.vScroll&&this.vScroll.resizeViewVertical(e)}},qg=class{constructor(e){this.workspace_=e}getDimensionsPx_(e){let t=0,r=0;return e&&(t=e.getWidth(),r=e.getHeight()),new Jt(t,r)}getFlyoutMetrics(e){return e=this.getDimensionsPx_(this.workspace_.getFlyout(e)),{width:e.width,height:e.height,position:this.workspace_.toolboxPosition}}getToolboxMetrics(){const e=this.getDimensionsPx_(this.workspace_.getToolbox());return{width:e.width,height:e.height,position:this.workspace_.toolboxPosition}}getSvgMetrics(){return this.workspace_.getCachedParentSvgSize()}getAbsoluteMetrics(){let e=0,t=0;const r=this.getToolboxMetrics(),l=this.getFlyoutMetrics(),p=!!this.workspace_.getToolbox();var v;const O=!((v=this.workspace_.getFlyout())!=null&&v.autoClose);v=p?r.position:l.position;const G=v===Rt.TOP;return v===Rt.LEFT&&(p&&(e+=r.width),O&&(e+=l.width)),G&&(p&&(t+=r.height),O&&(t+=l.height)),{top:t,left:e}}getViewMetrics(e){e=e?this.workspace_.scale:1;const t=this.getSvgMetrics(),r=this.getToolboxMetrics(),l=this.getFlyoutMetrics(),p=!!this.workspace_.getToolbox();var v;const O=!((v=this.workspace_.getFlyout())!=null&&v.autoClose);v=p?r.position:l.position;const G=v===Rt.LEFT||v===Rt.RIGHT;return(v===Rt.TOP||v===Rt.BOTTOM)&&(p&&(t.height-=r.height),O&&(t.height-=l.height)),G&&(p&&(t.width-=r.width),O&&(t.width-=l.width)),{height:t.height/e,width:t.width/e,top:-this.workspace_.scrollY/e,left:-this.workspace_.scrollX/e}}getContentMetrics(e){e=e?1:this.workspace_.scale;const t=this.workspace_.getBlocksBoundingBox();return{height:(t.bottom-t.top)*e,width:(t.right-t.left)*e,top:t.top*e,left:t.left*e}}hasFixedEdges(){return!this.workspace_.isMovableHorizontally()||!this.workspace_.isMovableVertically()}getComputedFixedEdges_(e){if(!this.hasFixedEdges())return{};const t=this.workspace_.isMovableHorizontally(),r=this.workspace_.isMovableVertically();e=e||this.getViewMetrics(!1);const l={};return r||(l.top=e.top,l.bottom=e.top+e.height),t||(l.left=e.left,l.right=e.left+e.width),l}getPaddedContent_(e,t){const r=t.top+t.height,l=t.left+t.width,p=e.width;e=e.height;const v=p/2,O=e/2;return{top:Math.min(t.top-O,r-e),bottom:Math.max(r+O,t.top+e),left:Math.min(t.left-v,l-p),right:Math.max(l+v,t.left+p)}}getScrollMetrics(e,t,r){e=e?this.workspace_.scale:1,t=t||this.getViewMetrics(!1);var l=r||this.getContentMetrics();r=this.getComputedFixedEdges_(t),t=this.getPaddedContent_(t,l),l=r.top!==void 0?r.top:t.top;const p=r.left!==void 0?r.left:t.left;return{top:l/e,left:p/e,width:((r.right!==void 0?r.right:t.right)-p)/e,height:((r.bottom!==void 0?r.bottom:t.bottom)-l)/e}}getUiMetrics(){return{viewMetrics:this.getViewMetrics(),absoluteMetrics:this.getAbsoluteMetrics(),toolboxMetrics:this.getToolboxMetrics()}}getMetrics(){const e=this.getToolboxMetrics(),t=this.getFlyoutMetrics(!0),r=this.getSvgMetrics(),l=this.getAbsoluteMetrics(),p=this.getViewMetrics(),v=this.getContentMetrics(),O=this.getScrollMetrics(!1,p,v);return{contentHeight:v.height,contentWidth:v.width,contentTop:v.top,contentLeft:v.left,scrollHeight:O.height,scrollWidth:O.width,scrollTop:O.top,scrollLeft:O.left,viewHeight:p.height,viewWidth:p.width,viewTop:p.top,viewLeft:p.left,absoluteTop:l.top,absoluteLeft:l.left,svgHeight:r.height,svgWidth:r.width,toolboxWidth:e.width,toolboxHeight:e.height,toolboxPosition:e.position,flyoutWidth:t.width,flyoutHeight:t.height}}};i(Be.METRICS_MANAGER,Nr,qg),"Blockly"in globalThis||(globalThis.Blockly={Msg:hb});var sh=class extends Vd{constructor(){super(),this.GRID_UNIT=4,this.CURSOR_COLOUR="#ffa200",this.CURSOR_RADIUS=5,this.JAGGED_TEETH_WIDTH=this.JAGGED_TEETH_HEIGHT=0,this.START_HAT_HEIGHT=22,this.START_HAT_WIDTH=96,this.SHAPES={HEXAGONAL:1,ROUND:2,SQUARE:3,PUZZLE:4,NOTCH:5},this.SHAPE_IN_SHAPE_PADDING={1:{0:5*this.GRID_UNIT,1:2*this.GRID_UNIT,2:5*this.GRID_UNIT,3:5*this.GRID_UNIT},2:{0:3*this.GRID_UNIT,1:3*this.GRID_UNIT,2:1*this.GRID_UNIT,3:2*this.GRID_UNIT},3:{0:2*this.GRID_UNIT,1:2*this.GRID_UNIT,2:2*this.GRID_UNIT,3:2*this.GRID_UNIT}},this.FULL_BLOCK_FIELDS=!0,this.FIELD_TEXT_FONTWEIGHT="bold",this.FIELD_TEXT_FONTFAMILY='"Helvetica Neue", "Segoe UI", Helvetica, sans-serif',this.FIELD_COLOUR_FULL_BLOCK=this.FIELD_TEXTINPUT_BOX_SHADOW=this.FIELD_DROPDOWN_SVG_ARROW=this.FIELD_DROPDOWN_COLOURED_DIV=this.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW=!0,this.SELECTED_GLOW_COLOUR="#fff200",this.SELECTED_GLOW_SIZE=.5,this.REPLACEMENT_GLOW_COLOUR="#fff200",this.REPLACEMENT_GLOW_SIZE=2,this.selectedGlowFilterId="",this.selectedGlowFilter=null,this.replacementGlowFilterId="",this.SQUARED=this.ROUNDED=this.HEXAGONAL=this.replacementGlowFilter=null,this.SMALL_PADDING=this.GRID_UNIT,this.MEDIUM_PADDING=2*this.GRID_UNIT,this.MEDIUM_LARGE_PADDING=3*this.GRID_UNIT,this.LARGE_PADDING=4*this.GRID_UNIT,this.CORNER_RADIUS=1*this.GRID_UNIT,this.NOTCH_WIDTH=9*this.GRID_UNIT,this.NOTCH_HEIGHT=2*this.GRID_UNIT,this.STATEMENT_INPUT_NOTCH_OFFSET=this.NOTCH_OFFSET_LEFT=3*this.GRID_UNIT,this.MIN_BLOCK_WIDTH=2*this.GRID_UNIT,this.MIN_BLOCK_HEIGHT=12*this.GRID_UNIT,this.EMPTY_STATEMENT_INPUT_HEIGHT=6*this.GRID_UNIT,this.TOP_ROW_MIN_HEIGHT=this.CORNER_RADIUS,this.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT=this.LARGE_PADDING,this.BOTTOM_ROW_MIN_HEIGHT=this.CORNER_RADIUS,this.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT=6*this.GRID_UNIT,this.STATEMENT_BOTTOM_SPACER=-this.NOTCH_HEIGHT,this.STATEMENT_INPUT_SPACER_MIN_WIDTH=40*this.GRID_UNIT,this.STATEMENT_INPUT_PADDING_LEFT=4*this.GRID_UNIT,this.EMPTY_INLINE_INPUT_PADDING=4*this.GRID_UNIT,this.EMPTY_INLINE_INPUT_HEIGHT=8*this.GRID_UNIT,this.DUMMY_INPUT_MIN_HEIGHT=8*this.GRID_UNIT,this.DUMMY_INPUT_SHADOW_MIN_HEIGHT=6*this.GRID_UNIT,this.CURSOR_WS_WIDTH=20*this.GRID_UNIT,this.FIELD_TEXT_FONTSIZE=3*this.GRID_UNIT,this.FIELD_BORDER_RECT_RADIUS=this.CORNER_RADIUS,this.FIELD_BORDER_RECT_X_PADDING=2*this.GRID_UNIT,this.FIELD_BORDER_RECT_Y_PADDING=1.625*this.GRID_UNIT,this.FIELD_BORDER_RECT_HEIGHT=8*this.GRID_UNIT,this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=8*this.GRID_UNIT,this.FIELD_DROPDOWN_SVG_ARROW_PADDING=this.FIELD_BORDER_RECT_X_PADDING,this.FIELD_COLOUR_DEFAULT_WIDTH=6*this.GRID_UNIT,this.FIELD_COLOUR_DEFAULT_HEIGHT=8*this.GRID_UNIT,this.FIELD_CHECKBOX_X_OFFSET=1*this.GRID_UNIT,this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH=12*this.GRID_UNIT}setFontConstants_(e){super.setFontConstants_(e),this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=this.FIELD_BORDER_RECT_HEIGHT=this.FIELD_TEXT_HEIGHT+2*this.FIELD_BORDER_RECT_Y_PADDING}init(){super.init(),this.HEXAGONAL=this.makeHexagonal(),this.ROUNDED=this.makeRounded(),this.SQUARED=this.makeSquared(),this.STATEMENT_INPUT_NOTCH_OFFSET=this.NOTCH_OFFSET_LEFT+this.INSIDE_CORNERS.rightWidth}setDynamicProperties_(e){super.setDynamicProperties_(e),this.SELECTED_GLOW_COLOUR=e.getComponentStyle("selectedGlowColour")||this.SELECTED_GLOW_COLOUR;const t=Number(e.getComponentStyle("selectedGlowSize"));this.SELECTED_GLOW_SIZE=t&&!isNaN(t)?t:this.SELECTED_GLOW_SIZE,this.REPLACEMENT_GLOW_COLOUR=e.getComponentStyle("replacementGlowColour")||this.REPLACEMENT_GLOW_COLOUR,this.REPLACEMENT_GLOW_SIZE=(e=Number(e.getComponentStyle("replacementGlowSize")))&&!isNaN(e)?e:this.REPLACEMENT_GLOW_SIZE}dispose(){super.dispose(),this.selectedGlowFilter&&mt(this.selectedGlowFilter),this.replacementGlowFilter&&mt(this.replacementGlowFilter)}makeStartHat(){const e=this.START_HAT_HEIGHT,t=this.START_HAT_WIDTH,r=Zs("c",[ut(25,-e),ut(71,-e),ut(t,0)]);return{height:e,width:t,path:r}}makeHexagonal(){function e(r,l,p){var v=r/2;return v=v>t?t:v,p=p?-1:1,r=(l?-1:1)*r/2,hi(-p*v,r)+hi(p*v,r)}const t=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;return{type:this.SHAPES.HEXAGONAL,isDynamic:!0,width(r){return r/=2,r>t?t:r},height(r){return r},connectionOffsetY(r){return r/2},connectionOffsetX(r){return-r},pathDown(r){return e(r,!1,!1)},pathUp(r){return e(r,!0,!1)},pathRightDown(r){return e(r,!1,!0)},pathRightUp(r){return e(r,!1,!0)}}}makeRounded(){function e(l,p,v){const O=l>r?l-r:0;l=(l>r?r:l)/2;const G=v===p?"0":"1";return Hn("a","0 0,"+G,l,ut((v?1:-1)*l,(p?-1:1)*l))+tt("v",(p?-1:1)*O)+Hn("a","0 0,"+G,l,ut((v?-1:1)*l,(p?-1:1)*l))}const t=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH,r=2*t;return{type:this.SHAPES.ROUND,isDynamic:!0,width(l){return l/=2,l>t?t:l},height(l){return l},connectionOffsetY(l){return l/2},connectionOffsetX(l){return-l},pathDown(l){return e(l,!1,!1)},pathUp(l){return e(l,!0,!1)},pathRightDown(l){return e(l,!1,!0)},pathRightUp(l){return e(l,!1,!0)}}}makeSquared(){function e(r,l,p){r-=2*t;const v=p===l?"0":"1";return Hn("a","0 0,"+v,t,ut((p?1:-1)*t,(l?-1:1)*t))+tt("v",(l?-1:1)*r)+Hn("a","0 0,"+v,t,ut((p?-1:1)*t,(l?-1:1)*t))}const t=this.CORNER_RADIUS;return{type:this.SHAPES.SQUARE,isDynamic:!0,width(r){return t},height(r){return r},connectionOffsetY(r){return r/2},connectionOffsetX(r){return-r},pathDown(r){return e(r,!1,!1)},pathUp(r){return e(r,!0,!1)},pathRightDown(r){return e(r,!1,!0)},pathRightUp(r){return e(r,!1,!0)}}}shapeFor(e){let t=e.getCheck();switch(!t&&e.targetConnection&&(t=e.targetConnection.getCheck()),e.type){case Ze.INPUT_VALUE:case Ze.OUTPUT_VALUE:if(e=e.getSourceBlock().getOutputShape(),e!==null)switch(e){case this.SHAPES.HEXAGONAL:return this.HEXAGONAL;case this.SHAPES.ROUND:return this.ROUNDED;case this.SHAPES.SQUARE:return this.SQUARED}return t&&t.includes("Boolean")?this.HEXAGONAL:t&&t.includes("Number")?this.ROUNDED:(t&&t.includes("String"),this.ROUNDED);case Ze.PREVIOUS_STATEMENT:case Ze.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown type")}}makeNotch(){function e(Qe){return Zs("c",[ut(Qe*p/2,0),ut(Qe*p*3/4,O/2),ut(Qe*p,O)])+Mr([ut(Qe*p,v)])+Zs("c",[ut(Qe*p/4,O/2),ut(Qe*p/2,O),ut(Qe*p,O)])+tt("h",Qe*l)+Zs("c",[ut(Qe*p/2,0),ut(Qe*p*3/4,-(O/2)),ut(Qe*p,-O)])+Mr([ut(Qe*p,-v)])+Zs("c",[ut(Qe*p/4,-(O/2)),ut(Qe*p/2,-O),ut(Qe*p,-O)])}const t=this.NOTCH_WIDTH,r=this.NOTCH_HEIGHT,l=t/3,p=l/3,v=r/2,O=v/2,G=e(1),Ie=e(-1);return{type:this.SHAPES.NOTCH,width:t,height:r,pathLeft:G,pathRight:Ie}}makeInsideCorners(){const e=this.CORNER_RADIUS,t=Hn("a","0 0,0",e,ut(-e,e)),r=Hn("a","0 0,1",e,ut(-e,e)),l=Hn("a","0 0,0",e,ut(e,e)),p=Hn("a","0 0,1",e,ut(e,e));return{width:e,height:e,pathTop:t,pathBottom:l,rightWidth:e,rightHeight:e,pathTopRight:r,pathBottomRight:p}}generateSecondaryColour_(e){return et("#000",e,.15)||e}generateTertiaryColour_(e){return et("#000",e,.25)||e}createDom(e,t,r){super.createDom(e,t,r),e=re(oe.DEFS,{},e),t=re(oe.FILTER,{id:"blocklySelectedGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},e),re(oe.FEGAUSSIANBLUR,{in:"SourceGraphic",stdDeviation:this.SELECTED_GLOW_SIZE},t),r=re(oe.FECOMPONENTTRANSFER,{result:"outBlur"},t),re(oe.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},r),re(oe.FEFLOOD,{"flood-color":this.SELECTED_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},t),re(oe.FECOMPOSITE,{in:"outColor",in2:"outBlur",operator:"in",result:"outGlow"},t),this.selectedGlowFilterId=t.id,this.selectedGlowFilter=t,e=re(oe.FILTER,{id:"blocklyReplacementGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},e),re(oe.FEGAUSSIANBLUR,{in:"SourceGraphic",stdDeviation:this.REPLACEMENT_GLOW_SIZE},e),t=re(oe.FECOMPONENTTRANSFER,{result:"outBlur"},e),re(oe.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},t),re(oe.FEFLOOD,{"flood-color":this.REPLACEMENT_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},e),re(oe.FECOMPOSITE,{in:"outColor",in2:"outBlur",operator:"in",result:"outGlow"},e),re(oe.FECOMPOSITE,{in:"SourceGraphic",in2:"outGlow",operator:"over"},e),this.replacementGlowFilterId=e.id,this.replacementGlowFilter=e}getCSS_(e){return[`${e} .blocklyText,`,`${e} .blocklyFlyoutLabelText {`,`font: ${this.FIELD_TEXT_FONTWEIGHT} ${this.FIELD_TEXT_FONTSIZE}pt ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${e} .blocklyTextInputBubble textarea {`,"font-weight: normal;","}",`${e} .blocklyText {`,"fill: #fff;","}",`${e} .blocklyNonEditableText>rect:not(.blocklyDropdownRect),`,`${e} .blocklyEditableText>rect:not(.blocklyDropdownRect) {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"}",`${e} .blocklyNonEditableText>text,`,`${e} .blocklyEditableText>text,`,`${e} .blocklyNonEditableText>g>text,`,`${e} .blocklyEditableText>g>text {`,"fill: #575E75;","}",`${e} .blocklyFlyoutLabelText {`,"fill: #575E75;","}",`${e} .blocklyText.blocklyBubbleText {`,"fill: #575E75;","}",`${e} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableText:not(.editing):hover>rect,",`${e} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableText:not(.editing):hover>.blocklyPath {","stroke: #fff;","stroke-width: 2;","}",`${e} .blocklyHtmlInput {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"color: #575E75;","}",`${e} .blocklyDropdownText {`,"fill: #fff !important;","}",`${e}.blocklyWidgetDiv .blocklyMenuItem,`,`${e}.blocklyDropDownDiv .blocklyMenuItem {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${e}.blocklyDropDownDiv .blocklyMenuItemContent {`,"color: #fff;","}",`${e} .blocklyHighlightedConnectionPath {`,`stroke: ${this.SELECTED_GLOW_COLOUR};`,"}",`${e} .blocklyDisabled > .blocklyOutlinePath {`,`fill: url(#blocklyDisabledPattern${this.randomIdentifier})`,"}",`${e} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"]}},rh=class extends Fl{constructor(e,t){super(e,t)}draw(){const e=this.block_.pathObject;e.beginDrawing(),this.drawOutline_(),this.drawInternals_(),this.updateConnectionHighlights(),e.setPath(this.outlinePath_+` -`+this.inlinePath_),this.info_.RTL&&e.flipRTL(),this.recordSizeOnBlock_(),this.info_.outputConnection&&(e.outputShapeType=this.info_.outputConnection.shape.type),e.endDrawing()}drawOutline_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape&&!this.info_.hasStatementInput&&!this.info_.bottomRow.hasNextConnection?(this.drawFlatTop_(),this.drawRightDynamicConnection_(),this.drawFlatBottom_(),this.drawLeftDynamicConnection_()):super.drawOutline_()}drawLeft_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape?this.drawLeftDynamicConnection_():super.drawLeft_()}drawRightSideRow_(e){if(!(0>=e.height)){if(J.isSpacer(e)){const l=e.precedesStatement;var t=e.followsStatement;if(l||t){const p=this.constants_.INSIDE_CORNERS;var r=p.rightHeight;r=e.height-(l?r:0),t=t?p.pathBottomRight:"",e=0=r||0>=t)throw Error("Height and width values of an image field must be greater than 0.");this.size_=new Jt(t,r+Fa.Y_PADDING),this.imageHeight=r,typeof p=="function"&&(this.clickHandler=p),e!==vn.SKIP_SETUP&&(O?this.configure_(O):(this.flipRtl=!!v,this.altText=kt(l)||""),this.setValue(kt(e)))}configure_(e){super.configure_(e),e.flipRtl&&(this.flipRtl=e.flipRtl),e.alt&&(this.altText=kt(e.alt))}initView(){this.imageElement=re(oe.IMAGE,{height:this.imageHeight+"px",width:this.size_.width+"px",alt:this.altText},this.fieldGroup_),this.imageElement.setAttributeNS(nr,"xlink:href",this.value_),this.clickHandler&&(this.imageElement.style.cursor="pointer")}updateSize_(){}doClassValidation_(e){return typeof e!="string"?null:e}doValueUpdate_(e){this.value_=e,this.imageElement&&this.imageElement.setAttributeNS(nr,"xlink:href",this.value_)}getFlipRtl(){return this.flipRtl}setAlt(e){e!==this.altText&&(this.altText=e||"",this.imageElement&&this.imageElement.setAttribute("alt",this.altText))}showEditor_(){this.clickHandler&&this.clickHandler(this)}setOnClickHandler(e){this.clickHandler=e}getText_(){return this.altText}static fromJson(e){if(!e.src||!e.width||!e.height)throw Error("src, width, and height values for an image field arerequired. The width and height must be non-zero.");return new this(e.src,e.width,e.height,void 0,void 0,void 0,e)}};Fa.Y_PADDING=1,Ot("field_image",Fa),Fa.prototype.DEFAULT_VALUE="";var ih=class extends vn{constructor(e,t,r){super(vn.SKIP_SETUP),this.spellcheck_=!0,this.htmlInput_=null,this.isTextValid_=this.isBeingEdited_=!1,this.onKeyInputWrapper=this.onKeyDownWrapper=this.valueWhenEditorWasOpened_=null,this.fullBlockClickTarget_=!1,this.workspace_=null,this.SERIALIZABLE=!0,this.CURSOR="text",e!==vn.SKIP_SETUP&&(r&&this.configure_(r),this.setValue(e),t&&this.setValidator(t))}configure_(e){super.configure_(e),e.spellcheck!==void 0&&(this.spellcheck_=e.spellcheck)}initView(){if(!this.getSourceBlock())throw new Gn;super.initView(),this.isFullBlockField()&&(this.clickTarget_=this.sourceBlock_.getSvgRoot())}isFullBlockField(){const e=this.getSourceBlock();if(!e)throw new Gn;let t;return this.fullBlockClickTarget_=!((t=this.getConstants())==null||!t.FULL_BLOCK_FIELDS)&&e.isSimpleReporter()}doValueInvalid_(e,t=!0){this.isBeingEdited_&&(this.isDirty_=!0,this.isTextValid_=!1,e=this.value_,this.value_=this.valueWhenEditorWasOpened_,this.sourceBlock_&&te()&&this.value_!==e&&t&&ee(new(Ce(fe.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,e,this.value_)))}doValueUpdate_(e){this.isTextValid_=this.isDirty_=!0,this.value_=e}applyColour(){const e=this.getSourceBlock();if(!e)throw new Gn;this.getConstants().FULL_BLOCK_FIELDS&&this.fieldGroup_&&(!this.isFullBlockField()&&this.borderRect_?(this.borderRect_.style.display="block",this.borderRect_.setAttribute("stroke",e.getColourTertiary())):(this.borderRect_.style.display="none",e.pathObject.svgPath.setAttribute("fill",this.getConstants().FIELD_BORDER_RECT_COLOUR)))}getSize(){let e;return(e=this.getConstants())!=null&&e.FULL_BLOCK_FIELDS&&(this.render_(),this.isDirty_=!1),super.getSize()}onLocationChange(){this.isBeingEdited_&&this.resizeEditor_()}render_(){if(super.render_(),this.isBeingEdited_){var e=this.htmlInput_;this.isTextValid_?(pt(e,"blocklyInvalidInput"),tn(e,as.INVALID,!1)):(Fe(e,"blocklyInvalidInput"),tn(e,as.INVALID,!0))}if(e=this.getSourceBlock(),!e)throw new Gn;this.getConstants().FULL_BLOCK_FIELDS&&e.applyColour()}setSpellcheck(e){e!==this.spellcheck_&&(this.spellcheck_=e,this.htmlInput_&&this.htmlInput_.setAttribute("spellcheck",this.spellcheck_))}showEditor_(e,t=!1){this.workspace_=this.sourceBlock_.workspace,!t&&this.workspace_.options.modalInputs&&(_d||Qp||yd)?this.showPromptEditor():this.showInlineEditor(t)}showPromptEditor(){sc(s.Msg$$module$build$src$core$msg.CHANGE_VALUE_TITLE,this.getText(),e=>{e!==null&&this.setValue(this.getValueFromEditorText_(e)),this.onFinishEditing_(this.value_)})}showInlineEditor(e){const t=this.getSourceBlock();if(!t)throw new Gn;Bi(this,t.RTL,this.widgetDispose_.bind(this),this.workspace_),this.htmlInput_=this.widgetCreate_(),this.isBeingEdited_=!0,this.valueWhenEditorWasOpened_=this.value_,e||(this.htmlInput_.focus({preventScroll:!0}),this.htmlInput_.select())}widgetCreate_(){var e=this.getSourceBlock();if(!e)throw new Gn;s.setGroup$$module$build$src$core$events$utils(!0);const t=us();var r=this.getClickTarget_();if(!r)throw Error("A click target has not been set.");Fe(r,"editing"),r=document.createElement("input"),r.className="blocklyHtmlInput",r.setAttribute("spellcheck",this.spellcheck_);const l=this.workspace_.getScale();var p=this.getConstants().FIELD_TEXT_FONTSIZE*l+"pt";return t.style.fontSize=p,r.style.fontSize=p,p=ih.BORDERRADIUS*l+"px",this.isFullBlockField()&&(p=this.getScaledBBox(),p=(p.bottom-p.top)/2+"px",e=e.getParent()?e.getParent().getColourTertiary():this.sourceBlock_.getColourTertiary(),r.style.border=1*l+"px solid "+e,t.style.borderRadius=p,t.style.transition="box-shadow 0.25s ease 0s",this.getConstants().FIELD_TEXTINPUT_BOX_SHADOW&&(t.style.boxShadow="rgba(255, 255, 255, 0.3) 0 0 0 "+4*l+"px")),r.style.borderRadius=p,t.appendChild(r),r.value=r.defaultValue=this.getEditorText_(this.value_),r.setAttribute("data-untyped-default-value",String(this.value_)),this.resizeEditor_(),this.bindInputEvents_(r),r}widgetDispose_(){this.isBeingEdited_=!1,this.isTextValid_=!0,this.forceRerender(),this.onFinishEditing_(this.value_),this.sourceBlock_&&te()&&this.valueWhenEditorWasOpened_!==null&&this.valueWhenEditorWasOpened_!==this.value_&&(ee(new(Ce(fe.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,this.valueWhenEditorWasOpened_,this.value_)),this.valueWhenEditorWasOpened_=null),s.setGroup$$module$build$src$core$events$utils(!1),this.unbindInputEvents_();var e=us().style;if(e.width="auto",e.height="auto",e.fontSize="",e.transition="",e.boxShadow="",this.htmlInput_=null,e=this.getClickTarget_(),!e)throw Error("A click target has not been set.");pt(e,"editing")}onFinishEditing_(e){}bindInputEvents_(e){this.onKeyDownWrapper=Ue(e,"keydown",this,this.onHtmlInputKeyDown_),this.onKeyInputWrapper=Ue(e,"input",this,this.onHtmlInputChange)}unbindInputEvents_(){this.onKeyDownWrapper&&(wt(this.onKeyDownWrapper),this.onKeyDownWrapper=null),this.onKeyInputWrapper&&(wt(this.onKeyInputWrapper),this.onKeyInputWrapper=null)}onHtmlInputKeyDown_(e){e.key==="Enter"?(nn(this),Jr()):e.key==="Escape"?(this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),!1),nn(this),Jr()):e.key==="Tab"&&(nn(this),Jr(),this.sourceBlock_.tab(this,!e.shiftKey),e.preventDefault())}onHtmlInputChange(e){e=this.value_,this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1),this.sourceBlock_&&te()&&this.value_!==e&&ee(new(Ce(fe.BLOCK_FIELD_INTERMEDIATE_CHANGE))(this.sourceBlock_,this.name||null,e,this.value_))}setEditorValue_(e,t=!0){this.isDirty_=!0,this.isBeingEdited_&&(this.htmlInput_.value=this.getEditorText_(e)),this.setValue(e,t)}resizeEditor_(){rs().then(()=>{const e=this.getSourceBlock();if(!e)throw new Gn;const t=us(),r=this.getScaledBBox();t.style.width=r.right-r.left+"px",t.style.height=r.bottom-r.top+"px";const l=r.top;t.style.left=`${e.RTL?r.right-t.offsetWidth:r.left}px`,t.style.top=`${l}px`})}repositionForWindowResize(){let e;const t=(e=this.getSourceBlock())==null?void 0:e.getRootBlock();return t instanceof Ur?(So(this.workspace_,this.workspace_.getMetricsManager().getViewMetrics(!0),t)||this.resizeEditor_(),!0):!1}isTabNavigable(){return!0}getText_(){return this.isBeingEdited_&&this.htmlInput_?this.htmlInput_.value:null}getEditorText_(e){return`${e}`}getValueFromEditorText_(e){return e}};ih.BORDERRADIUS=4;var oh=class extends ih{constructor(e,t,r){super(e,t,r)}doClassValidation_(e){return e===void 0?null:`${e}`}static fromJson(e){return new this(kt(e.text),void 0,e)}};Ot("field_input",oh),oh.prototype.DEFAULT_VALUE="";var t$=class extends or{constructor(e){super(e)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(e){return!!e.outputConnection}hasRightSquareCorner(e){return!!e.outputConnection&&!e.statementInputCount&&!e.nextConnection}},ah=class extends su{constructor(e,t){if(super(e,t),this.connectedBottomNextConnection=!1,this.connectedBlock){for(e=this.connectedBlock;t=e.getNextBlock();)e=t;e.nextConnection||(this.height=this.connectedBlockHeight,this.connectedBottomNextConnection=!0)}}},n$=class extends Ct{constructor(e){super(e),this.width=this.height=0,this.type|=J.getType("RIGHT_CONNECTION")}},s$=class extends Bg{constructor(e){super(e)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(e){const t=(e.hat?e.hat==="cap":this.constants_.ADD_START_HATS)&&!e.outputConnection&&!e.previousConnection;return!!e.outputConnection||t}hasRightSquareCorner(e){return!!e.outputConnection&&!e.statementInputCount&&!e.nextConnection}},r$=class extends hs{constructor(e,t){super(e,t),this.isInline=!0,this.renderer_=e,this.constants_=this.renderer_.getConstants(),this.topRow=new s$(this.constants_),this.bottomRow=new t$(this.constants_),this.isMultiRow=!t.getInputsInline()||t.isCollapsed(),this.hasStatementInput=0=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!l.precedesStatement,J.isInputRow(v)&&v.hasStatement){v.measure();let O,G;t=v.width-((G=(O=v.getLastInput())==null?void 0:O.width)!=null?G:0)+e}else if(r&&(p===2||l)&&J.isInputRow(v)&&!v.hasStatement){l=v.xPos,r=null;for(let O=0;Or?r:this.height/2,t-r*(1-Math.sin(Math.acos((r-this.constants_.SMALL_PADDING)/r)));default:return 0}if(J.isInlineInput(e)&&e instanceof Mo){const p=e.connectedBlock;return e=p?p.pathObject.outputShapeType:e.shape.type,e==null||p&&p.outputConnection&&(p.statementInputCount||p.nextConnection)||r===l.SHAPES.HEXAGONAL&&r!==e?0:t-this.constants_.SHAPE_IN_SHAPE_PADDING[r][e]}return J.isField(e)&&e instanceof jl?r===l.SHAPES.ROUND&&e.field instanceof oh?t-2.75*l.GRID_UNIT:t-this.constants_.SHAPE_IN_SHAPE_PADDING[r][0]:J.isIcon(e)?this.constants_.SMALL_PADDING:0}finalizeVerticalAlignment_(){if(!this.outputConnection)for(let l=2;l=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!O.precedesStatement;if(e?this.topRow.hasPreviousConnection:p.followsStatement){var r=v.elements[1];if(r=v.elements.length===3&&r instanceof jl&&(r.field instanceof La||r.field instanceof Fa),!e&&r)p.height-=this.constants_.SMALL_PADDING,O.height-=this.constants_.SMALL_PADDING,v.height-=this.constants_.MEDIUM_PADDING;else if(!e&&!t)p.height+=this.constants_.SMALL_PADDING;else if(t){for(e=!1,t=0;t{if(!l.isDeadOrDying()){s.disable$$module$build$src$core$events$utils();try{l==null||l.positionNearConnection(p,v,O),l==null||l.getSvgRoot().setAttribute("visibility","visible")}finally{s.enable$$module$build$src$core$events$utils()}}}),p}createInsertionMarker(e){const t=Qt(e,{addCoordinates:!1,addInputBlocks:!1,addNextBlocks:!1,doFullSerialization:!1});if(!t)throw Error(`Failed to serialize source block. ${e.toDevString()}`);e=Ni(t,this.workspace);for(const r of e.getDescendants(!1))r.setInsertionMarker(!0);return e.initSvg(),e.getSvgRoot().setAttribute("visibility","hidden"),e}getMatchingConnection(e,t,r){if(e=e.getConnections_(!0),t=t.getConnections_(!0),e.length!==t.length)return null;for(let l=0;l{this.targetWorkspace.isDragging()||t.addSelect()})),this.listeners.push(Nt(e,"pointerleave",t,()=>{this.targetWorkspace.isDragging()||t.removeSelect()})),this.listeners.push(Nt(r,"pointerenter",t,()=>{this.targetWorkspace.isDragging()||t.addSelect()})),this.listeners.push(Nt(r,"pointerleave",t,()=>{this.targetWorkspace.isDragging()||t.removeSelect()}))}blockMouseDown(e){return t=>{const r=this.targetWorkspace.getGesture(t);r&&(r.setStartBlock(e),r.handleFlyoutStart(t,this))}}onMouseDown(e){const t=this.targetWorkspace.getGesture(e);t&&t.handleFlyoutStart(e,this)}isBlockCreatable(e){return e.isEnabled()}createBlock(e){let t=null;s.disable$$module$build$src$core$events$utils();var r=this.targetWorkspace.getAllVariables();this.targetWorkspace.setResizesEnabled(!1);try{t=this.placeNewBlock(e)}finally{s.enable$$module$build$src$core$events$utils()}if(this.targetWorkspace.hideChaff(),e=ac(this.targetWorkspace,r),te()){for(s.setGroup$$module$build$src$core$events$utils(!0),r=0;r-t||e<-180+t||e>180-t}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;const e=this.svgGroup_.getBoundingClientRect(),t=e.left;return this.toolboxPosition_===Rt.LEFT?new Bt(-1e9,1e9,-1e9,t+e.width):new Bt(-1e9,1e9,t,1e9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();let e=0;var t=this.workspace_.getTopBlocks(!1);for(let l=0,p;p=t[l];l++){var r=p.getHeightWidth().width;p.outputConnection&&(r-=this.tabWidth_),e=Math.max(e,r)}for(let l=0,p;p=this.buttons_[l];l++)e=Math.max(e,p.width);if(e+=1.5*this.MARGIN+this.tabWidth_,e*=this.workspace_.scale,e+=Fn.scrollbarThickness,this.width_!==e){for(let l=0,p;p=t[l];l++){if(this.RTL){r=p.getRelativeToSurfaceXY().x;let v=e/this.workspace_.scale-this.MARGIN;p.outputConnection||(v-=this.tabWidth_),p.moveBy(v-r,0)}this.rectMap_.has(p)&&this.moveRectToBlock_(this.rectMap_.get(p),p)}if(this.RTL)for(let l=0,p;p=this.buttons_[l];l++)t=p.getPosition().y,p.moveTo(e/this.workspace_.scale-p.width-this.MARGIN-this.tabWidth_,t);this.targetWorkspace.scrollbar||this.autoClose||this.targetWorkspace.getFlyout()!==this||this.toolboxPosition_!==Rt.LEFT||this.targetWorkspace.translate(this.targetWorkspace.scrollX+e,this.targetWorkspace.scrollY),this.width_=e,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets()}}};Xg.registryName="verticalFlyout",i(Be.FLYOUTS_VERTICAL_TOOLBOX,Nr,Xg);var d$=class extends lh{constructor(e){super(e),this.horizontalLayout=!0}setMetrics_(e){if(this.isVisible()){var t=this.workspace_.getMetricsManager(),r=t.getScrollMetrics(),l=t.getViewMetrics();t=t.getAbsoluteMetrics(),typeof e.x=="number"&&(this.workspace_.scrollX=-(r.left+(r.width-l.width)*e.x)),this.workspace_.translate(this.workspace_.scrollX+t.left,this.workspace_.scrollY+t.top)}}getX(){return 0}getY(){if(!this.isVisible())return 0;var e=this.targetWorkspace.getMetricsManager();const t=e.getAbsoluteMetrics(),r=e.getViewMetrics();e=e.getToolboxMetrics();const l=this.toolboxPosition_===Rt.TOP;return this.targetWorkspace.toolboxPosition===this.toolboxPosition_?this.targetWorkspace.getToolbox()?l?e.height:r.height-this.height_:l?0:r.height:l?0:r.height+t.top-this.height_}position(){if(this.isVisible()&&this.targetWorkspace.isVisible()){var e=this.targetWorkspace.getMetricsManager().getViewMetrics();this.width_=e.width,this.setBackgroundPath(e.width-2*this.CORNER_RADIUS,this.height_-this.CORNER_RADIUS),e=this.getX();var t=this.getY();this.positionAt_(this.width_,this.height_,e,t)}}setBackgroundPath(e,t){const r=this.toolboxPosition_===Rt.TOP,l=["M 0,"+(r?0:this.CORNER_RADIUS)];r?(l.push("h",e+2*this.CORNER_RADIUS),l.push("v",t),l.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,this.CORNER_RADIUS),l.push("h",-e),l.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,-this.CORNER_RADIUS)):(l.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,-this.CORNER_RADIUS),l.push("h",e),l.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,this.CORNER_RADIUS),l.push("v",t),l.push("h",-e-2*this.CORNER_RADIUS)),l.push("z"),this.svgBackground_.setAttribute("d",l.join(" "))}scrollToStart(){let e;(e=this.workspace_.scrollbar)==null||e.setX(this.RTL?1/0:0)}wheel_(e){var t=ge(e);if(t=t.x||t.y){const r=this.workspace_.getMetricsManager(),l=r.getScrollMetrics();t=r.getViewMetrics().left-l.left+t;let p;(p=this.workspace_.scrollbar)==null||p.setX(t),gc(this.workspace_),Jr()}e.preventDefault(),e.stopPropagation()}layout_(e,t){this.workspace_.scale=this.targetWorkspace.scale;const r=this.MARGIN;let l=r+this.tabWidth_;this.RTL&&(e=e.reverse());for(let G=0,Ie;Ie=e[G];G++)if(Ie.type==="block"){var p=Ie.block;if(p==null)continue;var v=p.getDescendants(!1);for(let Mn=0,On;On=v[Mn];Mn++)On.isInFlyout=!0;v=p.getSvgRoot();const Qe=p.getHeightWidth();var O=p.outputConnection?this.tabWidth_:0;O=this.RTL?l+Qe.width:l-O,p.moveBy(O,r),O=this.createRect_(p,O,r,Qe,G),l+=Qe.width+t[G],this.addBlockListeners_(v,p,O)}else Ie.type==="button"&&(p=Ie.button,this.initFlyoutButton_(p,l,r),l+=p.width+t[G])}isDragTowardWorkspace(e){e=Math.atan2(e.y,e.x)/Math.PI*180;const t=this.dragAngleRange_;return e<90+t&&e>90-t||e>-90-t&&e<-90+t}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;const e=this.svgGroup_.getBoundingClientRect(),t=e.top;return this.toolboxPosition_===Rt.TOP?new Bt(-1e9,t+e.height,-1e9,1e9):new Bt(t,1e9,-1e9,1e9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();let e=0;const t=this.workspace_.getTopBlocks(!1);for(let l=0,p;p=t[l];l++)e=Math.max(e,p.getHeightWidth().height);const r=this.buttons_;for(let l=0,p;p=r[l];l++)e=Math.max(e,p.height);if(e+=1.5*this.MARGIN,e*=this.workspace_.scale,e+=Fn.scrollbarThickness,this.height_!==e){for(let l=0,p;p=t[l];l++)this.rectMap_.has(p)&&this.moveRectToBlock_(this.rectMap_.get(p),p);this.targetWorkspace.scrollbar||this.autoClose||this.targetWorkspace.getFlyout()!==this||this.toolboxPosition_!==Rt.TOP||this.targetWorkspace.translate(this.targetWorkspace.scrollX,this.targetWorkspace.scrollY+e),this.height_=e,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets()}}};i(Be.FLYOUTS_HORIZONTAL_TOOLBOX,Nr,d$);var u=class extends rr{constructor(e,t,r,l,p){super(vn.SKIP_SETUP),this.defaultType="",this.variableTypes=[],this.variable=null,this.SERIALIZABLE=!0,this.menuGenerator_=u.dropdownCreate,this.defaultVariableName=typeof e=="string"?e:"",this.size_=new Jt(0,0),e!==vn.SKIP_SETUP&&(p?this.configure_(p):this.setTypes(r,l),t&&this.setValidator(t))}configure_(e){super.configure_(e),this.setTypes(e.variableTypes,e.defaultType)}initModel(){var e=this.getSourceBlock();if(!e)throw new Gn;this.variable||(e=s.getOrCreateVariablePackage$$module$build$src$core$variables(e.workspace,null,this.defaultVariableName,this.defaultType),this.doValueUpdate_(e.getId()))}shouldAddBorderRect_(){const e=this.getSourceBlock();if(!e)throw new Gn;return super.shouldAddBorderRect_()&&(!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||e.type!=="variables_get")}fromXml(e){var t=this.getSourceBlock();if(!t)throw new Gn;const r=e.getAttribute("id"),l=e.textContent,p=e.getAttribute("variabletype")||e.getAttribute("variableType")||"";if(t=s.getOrCreateVariablePackage$$module$build$src$core$variables(t.workspace,r,l,p),p!==null&&p!==t.type)throw Error("Serialized variable type with id '"+t.getId()+"' had type "+t.type+", and does not match variable field that references it: "+ci(e)+".");this.setValue(t.getId())}toXml(e){return this.initModel(),e.id=this.variable.getId(),e.textContent=this.variable.name,this.variable.type&&e.setAttribute("variabletype",this.variable.type),e}saveState(e){var t=this.saveLegacyState(u);return t!==null||(this.initModel(),t={id:this.variable.getId()},e&&(t.name=this.variable.name,t.type=this.variable.type)),t}loadState(e){const t=this.getSourceBlock();if(!t)throw new Gn;this.loadLegacyState(u,e)||(e=s.getOrCreateVariablePackage$$module$build$src$core$variables(t.workspace,e.id||null,e.name,e.type||""),this.setValue(e.getId()))}setSourceBlock(e){if(e.isShadow())throw Error("Variable fields are not allowed to exist on shadow blocks.");super.setSourceBlock(e)}getValue(){return this.variable?this.variable.getId():null}getText(){return this.variable?this.variable.name:""}getVariable(){return this.variable}getValidator(){return this.variable?this.validator_:null}doClassValidation_(e){if(e===null)return null;var t=this.getSourceBlock();if(!t)throw new Gn;return t=s.getVariable$$module$build$src$core$variables(t.workspace,e),t?(t=t.type,this.typeIsAllowed(t)?e:(console.warn("Variable type doesn't match this field! Type was "+t),null)):(console.warn("Variable id doesn't point to a real variable! ID was "+e),null)}doValueUpdate_(e){const t=this.getSourceBlock();if(!t)throw new Gn;this.variable=s.getVariable$$module$build$src$core$variables(t.workspace,e),super.doValueUpdate_(e)}typeIsAllowed(e){const t=this.getVariableTypes();if(!t)return!0;for(let r=0;rthis.max_&&(e.max=`${this.max_}`,tn(e,as.VALUEMAX,this.max_)),e}static fromJson(e){return new this(e.value,void 0,void 0,void 0,void 0,e)}};Ot("field_number",d),d.prototype.DEFAULT_VALUE=0;var m=class extends La{constructor(e,t,r){super(String(e??""),t,r),this.EDITABLE=!1,this.SERIALIZABLE=!0}static fromJson(e){return new this(kt(e.text),void 0,e)}};Ot("field_label_serializable",m);var _=class extends vn{constructor(e,t,r){super(vn.SKIP_SETUP),this.SERIALIZABLE=!0,this.CURSOR="default",this.value_=this.value_,this.checkChar=_.CHECK_CHAR,e!==vn.SKIP_SETUP&&(r&&this.configure_(r),this.setValue(e),t&&this.setValidator(t))}configure_(e){super.configure_(e),e.checkCharacter&&(this.checkChar=e.checkCharacter)}saveState(){const e=this.saveLegacyState(_);return e!==null?e:this.getValueBoolean()}initView(){super.initView();const e=this.getTextElement();Fe(e,"blocklyCheckbox"),e.style.display=this.value_?"block":"none"}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_()),this.updateSize_(this.getConstants().FIELD_CHECKBOX_X_OFFSET)}getDisplayText_(){return this.checkChar}setCheckCharacter(e){this.checkChar=e||_.CHECK_CHAR,this.forceRerender()}showEditor_(){this.setValue(!this.value_)}doClassValidation_(e){return e===!0||e==="TRUE"?"TRUE":e===!1||e==="FALSE"?"FALSE":null}doValueUpdate_(e){this.value_=this.convertValueToBool(e),this.textElement_&&(this.textElement_.style.display=this.value_?"block":"none")}getValue(){return this.value_?"TRUE":"FALSE"}getValueBoolean(){return this.value_}getText(){return String(this.convertValueToBool(this.value_))}convertValueToBool(e){return typeof e=="string"?e==="TRUE":!!e}static fromJson(e){return new this(e.checked,void 0,e)}};_.CHECK_CHAR="✓",Ot("field_checkbox",_),_.prototype.DEFAULT_VALUE=!1;var x=class{constructor(e,t){this.draggable=e,this.workspace=t,this.dragTarget=null,this.startLoc=e.getRelativeToSurfaceXY()}onDragStart(e){this.draggable.startDrag(e)}onDrag(e,t){this.moveDraggable(e,t),t=this.getRoot(this.draggable),Dn(t)&&t.setDeleteStyle(this.wouldDeleteDraggable(e,t)),this.updateDragTarget(e)}updateDragTarget(e){e=this.workspace.getDragTarget(e);const t=this.getRoot(this.draggable);if(this.dragTarget!==e){let r;(r=this.dragTarget)==null||r.onDragExit(t),e==null||e.onDragEnter(t)}e==null||e.onDragOver(t),this.dragTarget=e}moveDraggable(e,t){t=this.pixelsToWorkspaceUnits(t),t=Le.sum(this.startLoc,t),this.draggable.drag(t,e)}wouldDeleteDraggable(e,t){return(e=this.workspace.getDragTarget(e))&&this.workspace.getComponentManager().hasCapability(e.id,pn.Capability.DELETE_AREA)?e.wouldDelete(t):!1}onDragEnd(e){const t=s.getGroup$$module$build$src$core$events$utils();var r=this.workspace.getDragTarget(e);const l=this.getRoot(this.draggable);if(r){let p;(p=this.dragTarget)==null||p.onDrop(l)}this.shouldReturnToStart(e,l)&&this.draggable.revertDrag(),(r=Dn(l)&&this.wouldDeleteDraggable(e,l))&&this.draggable instanceof Ur&&Hu(this.draggable.getRootBlock()),this.draggable.endDrag(e),r&&Dn(l)&&(e=s.getGroup$$module$build$src$core$events$utils(),s.setGroup$$module$build$src$core$events$utils(t),l.dispose(),s.setGroup$$module$build$src$core$events$utils(e))}getRoot(e){return e instanceof Ur?e.getRootBlock():e}shouldReturnToStart(e,t){return(e=this.workspace.getDragTarget(e))?e.shouldPreventMove(t):!1}pixelsToWorkspaceUnits(e){return e=new Le(e.x/this.workspace.scale,e.y/this.workspace.scale),this.workspace.isMutator&&e.scale(1/this.workspace.options.parentWorkspace.scale),e}};i(Be.BLOCK_DRAGGER,Nr,x);var L={};L.BlockDragStrategy=Vb,L.BubbleDragStrategy=Ob,L.CommentDragStrategy=Eb,L.Dragger=x;var V=class extends Es{constructor(e,t,r){super(e?e.workspace.id:void 0),this.type=fe.BLOCK_DRAG,e&&(this.blockId=e.id,this.isStart=t,this.blocks=r)}toJson(){const e=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.blockId===void 0)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");return e.isStart=this.isStart,e.blockId=this.blockId,e.blocks=this.blocks,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new V),t.isStart=e.isStart,t.blockId=e.blockId,t.blocks=e.blocks,t}};i(Be.EVENT,fe.BLOCK_DRAG,V);var Q=class extends Sa{constructor(e,t,r,l){super(e),this.type=fe.BLOCK_FIELD_INTERMEDIATE_CHANGE,this.recordUndo=!1,e&&(this.name=t,this.oldValue=r,this.newValue=l)}toJson(){const e=super.toJson();if(!this.name)throw Error("The changed field name is undefined. Either pass a name to the constructor, or call fromJson.");return e.name=this.name,e.oldValue=this.oldValue,e.newValue=this.newValue,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Q),t.name=e.name,t.oldValue=e.oldValue,t.newValue=e.newValue,t}isNull(){return this.oldValue===this.newValue}run(e){var t=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");if(t=t.getBlockById(this.blockId),!t)throw Error("The associated block is undefined. Either pass a block to the constructor, or call fromJson");e=e?this.newValue:this.oldValue,(t=t.getField(this.name))?t.setValue(e):console.warn("Can't set non-existent field: "+this.name)}};i(Be.EVENT,fe.BLOCK_FIELD_INTERMEDIATE_CHANGE,Q);var le=class extends Sa{constructor(e){super(e),this.type=fe.BLOCK_MOVE,e&&(e.isShadow()&&(this.recordUndo=!1),e=this.currentLocation(),this.oldParentId=e.parentId,this.oldInputName=e.inputName,this.oldCoordinate=e.coordinate)}toJson(){const e=super.toJson();return e.oldParentId=this.oldParentId,e.oldInputName=this.oldInputName,this.oldCoordinate&&(e.oldCoordinate=`${Math.round(this.oldCoordinate.x)}, ${Math.round(this.oldCoordinate.y)}`),e.newParentId=this.newParentId,e.newInputName=this.newInputName,this.newCoordinate&&(e.newCoordinate=`${Math.round(this.newCoordinate.x)}, ${Math.round(this.newCoordinate.y)}`),this.reason&&(e.reason=this.reason),this.recordUndo||(e.recordUndo=this.recordUndo),e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new le),t.oldParentId=e.oldParentId,t.oldInputName=e.oldInputName,e.oldCoordinate&&(r=e.oldCoordinate.split(","),t.oldCoordinate=new Le(Number(r[0]),Number(r[1]))),t.newParentId=e.newParentId,t.newInputName=e.newInputName,e.newCoordinate&&(r=e.newCoordinate.split(","),t.newCoordinate=new Le(Number(r[0]),Number(r[1]))),e.reason!==void 0&&(t.reason=e.reason),e.recordUndo!==void 0&&(t.recordUndo=e.recordUndo),t}recordNew(){const e=this.currentLocation();this.newParentId=e.parentId,this.newInputName=e.inputName,this.newCoordinate=e.coordinate}setReason(e){this.reason=e}currentLocation(){var e=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");var t=e.getBlockById(this.blockId);if(!t)throw Error("The block associated with the block move event could not be found");e={};const r=t.getParent();return r?(e.parentId=r.id,(t=r.getInputWithBlock(t))&&(e.inputName=t.name)):e.coordinate=t.getRelativeToSurfaceXY(),e}isNull(){return this.oldParentId===this.newParentId&&this.oldInputName===this.newInputName&&Le.equals(this.oldCoordinate,this.newCoordinate)}run(e){var t=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");var r=t.getBlockById(this.blockId);if(r){var l=e?this.newParentId:this.oldParentId,p=e?this.newInputName:this.oldInputName;if(e=e?this.newCoordinate:this.oldCoordinate,l){var v=t.getBlockById(l);if(!v){console.warn("Can't connect to non-existent block: "+l);return}}if(r.getParent()&&r.unplug(),e)p=r.getRelativeToSurfaceXY(),r.moveBy(e.x-p.x,e.y-p.y,this.reason);else{t=r.outputConnection,(!t||r.previousConnection&&r.previousConnection.isConnected())&&(t=r.previousConnection);let O,G;r=(G=t)==null?void 0:G.type,p?(r=v.getInput(p))&&(O=r.connection):r===Ze.PREVIOUS_STATEMENT&&(O=v.nextConnection),O&&t?t.connect(O):console.warn("Can't connect to non-existent input: "+p)}}else console.warn("Can't move non-existent block: "+this.blockId)}};i(Be.EVENT,fe.BLOCK_MOVE,le);var Me=class extends Es{constructor(e,t,r){super(e?e.workspace.id:void 0),this.type=fe.BUBBLE_OPEN,e&&(this.blockId=e.id,this.isOpen=t,this.bubbleType=r)}toJson(){const e=super.toJson();if(this.isOpen===void 0)throw Error("Whether this event is for opening the bubble is undefined. Either pass the value to the constructor, or call fromJson");if(!this.bubbleType)throw Error("The type of bubble is undefined. Either pass the value to the constructor, or call fromJson");return e.isOpen=this.isOpen,e.bubbleType=this.bubbleType,e.blockId=this.blockId||"",e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Me),t.isOpen=e.isOpen,t.bubbleType=e.bubbleType,t.blockId=e.blockId,t}},Ne;(function(e){e.MUTATOR="mutator",e.COMMENT="comment",e.WARNING="warning"})(Ne||(Ne={})),i(Be.EVENT,fe.BUBBLE_OPEN,Me);var Pe=class extends ba{constructor(e){super(),this.isBlank=!e,e&&(this.commentId=e.id,this.workspaceId=e.workspace.id,this.group=s.getGroup$$module$build$src$core$events$utils(),this.recordUndo=se())}toJson(){const e=super.toJson();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");return e.commentId=this.commentId,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Pe),t.commentId=e.commentId,t}static CommentCreateDeleteHelper(e,t){const r=e.getEventWorkspace_();if(t){if(!e.json)throw Error("Encountered a comment event without proper json");ss(e.json,r)}else{if(!e.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");(t=r.getCommentById(e.commentId))?t.dispose():console.warn("Can't delete non-existent comment: "+e.commentId)}}},qe=class extends Pe{constructor(e,t,r){super(e),this.type=fe.COMMENT_CHANGE,e&&(this.oldContents_=typeof t>"u"?"":t,this.newContents_=typeof r>"u"?"":r)}toJson(){const e=super.toJson();if(!this.oldContents_)throw Error("The old contents is undefined. Either pass a value to the constructor, or call fromJson");if(!this.newContents_)throw Error("The new contents is undefined. Either pass a value to the constructor, or call fromJson");return e.oldContents=this.oldContents_,e.newContents=this.newContents_,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new qe),t.oldContents_=e.oldContents,t.newContents_=e.newContents,t}isNull(){return this.oldContents_===this.newContents_}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(t=t.getCommentById(this.commentId)){var r=e?this.newContents_:this.oldContents_;if(r===void 0)throw Error(e?"The new contents is undefined. Either pass a value to the constructor, or call fromJson":"The old contents is undefined. Either pass a value to the constructor, or call fromJson");t.setText(r)}else console.warn("Can't change non-existent comment: "+this.commentId)}};i(Be.EVENT,fe.COMMENT_CHANGE,qe);var dt=class extends Pe{constructor(e,t){super(e),this.newCollapsed=t,this.type=fe.COMMENT_COLLAPSE}toJson(){const e=super.toJson();if(this.newCollapsed===void 0)throw Error("The new collapse value undefined. Either call recordNew, or call fromJson");return e.newCollapsed=this.newCollapsed,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new dt),t.newCollapsed=e.newCollapsed,t}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");(t=t.getCommentById(this.commentId))?t.setCollapsed(e?!!this.newCollapsed:!this.newCollapsed):console.warn("Can't collapse or uncollapse non-existent comment: "+this.commentId)}};i(Be.EVENT,fe.COMMENT_COLLAPSE,dt);var $t=class extends Pe{constructor(e){super(e),this.type=fe.COMMENT_CREATE,e&&(this.xml=bc(e),this.json=In(e,{addCoordinates:!0}))}toJson(){const e=super.toJson();if(!this.xml)throw Error("The comment XML is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");return e.xml=ci(this.xml),e.json=this.json,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new $t),t.xml=s.textToDom$$module$build$src$core$utils$xml(e.xml),t.json=e.json,t}run(e){Pe.CommentCreateDeleteHelper(this,e)}};i(Be.EVENT,fe.COMMENT_CREATE,$t);var Ut=class extends Pe{constructor(e){super(e),this.type=fe.COMMENT_DELETE,e&&(this.xml=bc(e),this.json=In(e,{addCoordinates:!0}))}run(e){Pe.CommentCreateDeleteHelper(this,!e)}toJson(){const e=super.toJson();if(!this.xml)throw Error("The comment XML is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");return e.xml=ci(this.xml),e.json=this.json,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Ut),t.xml=s.textToDom$$module$build$src$core$utils$xml(e.xml),t.json=e.json,t}};i(Be.EVENT,fe.COMMENT_DELETE,Ut);var vt=class extends Es{constructor(e,t){super(e?e.workspace.id:void 0),this.type=fe.COMMENT_DRAG,e&&(this.commentId=e.id,this.isStart=t)}toJson(){const e=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.commentId===void 0)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");return e.isStart=this.isStart,e.commentId=this.commentId,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new vt),t.isStart=e.isStart,t.commentId=e.commentId,t}};i(Be.EVENT,fe.COMMENT_DRAG,vt);var Xt=class extends Pe{constructor(e){super(e),this.type=fe.COMMENT_MOVE,e&&(this.comment_=e,this.oldCoordinate_=e.getRelativeToSurfaceXY())}recordNew(){if(this.newCoordinate_)throw Error("Tried to record the new position of a comment on the same event twice.");if(!this.comment_)throw Error("The comment is undefined. Pass a comment to the constructor if you want to use the record functionality");this.newCoordinate_=this.comment_.getRelativeToSurfaceXY()}setReason(e){this.reason=e}setOldCoordinate(e){this.oldCoordinate_=e}toJson(){const e=super.toJson();if(!this.oldCoordinate_)throw Error("The old comment position is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.newCoordinate_)throw Error("The new comment position is undefined. Either call recordNew, or call fromJson");return e.oldCoordinate=`${Math.round(this.oldCoordinate_.x)}, ${Math.round(this.oldCoordinate_.y)}`,e.newCoordinate=Math.round(this.newCoordinate_.x)+","+Math.round(this.newCoordinate_.y),e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new Xt),r=e.oldCoordinate.split(","),t.oldCoordinate_=new Le(Number(r[0]),Number(r[1])),r=e.newCoordinate.split(","),t.newCoordinate_=new Le(Number(r[0]),Number(r[1])),t}isNull(){return Le.equals(this.oldCoordinate_,this.newCoordinate_)}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(t=t.getCommentById(this.commentId)){if(e=e?this.newCoordinate_:this.oldCoordinate_,!e)throw Error("Either oldCoordinate_ or newCoordinate_ is undefined. Either pass a comment to the constructor and call recordNew, or call fromJson");t.moveTo(e)}else console.warn("Can't move non-existent comment: "+this.commentId)}};i(Be.EVENT,fe.COMMENT_MOVE,Xt);var en=class extends Pe{constructor(e){super(e),this.type=fe.COMMENT_RESIZE,e&&(this.oldSize=e.getSize())}recordCurrentSizeAsNewSize(){if(this.newSize)throw Error("Tried to record the new size of a comment on the same event twice.");var e=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(e=e.getCommentById(this.commentId),!e)throw Error("The comment associated with the comment resize event could not be found");this.newSize=e.getSize()}toJson(){const e=super.toJson();if(!this.oldSize)throw Error("The old comment size is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.newSize)throw Error("The new comment size is undefined. Either call recordCurrentSizeAsNewSize, or call fromJson");return e.oldWidth=Math.round(this.oldSize.width),e.oldHeight=Math.round(this.oldSize.height),e.newWidth=Math.round(this.newSize.width),e.newHeight=Math.round(this.newSize.height),e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new en),t.oldSize=new Jt(e.oldWidth,e.oldHeight),t.newSize=new Jt(e.newWidth,e.newHeight),t}isNull(){return Jt.equals(this.oldSize,this.newSize)}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(t=t.getCommentById(this.commentId)){if(e=e?this.newSize:this.oldSize,!e)throw Error("Either oldSize or newSize is undefined. Either pass a comment to the constructor and call recordCurrentSizeAsNewSize, or call fromJson");t.setSize(e)}else console.warn("Can't resize non-existent comment: "+this.commentId)}};i(Be.EVENT,fe.COMMENT_RESIZE,en);var zs=class extends Es{constructor(e,t,r){super(r),this.type=fe.TOOLBOX_ITEM_SELECT,this.oldItem=e??void 0,this.newItem=t??void 0}toJson(){const e=super.toJson();return e.oldItem=this.oldItem,e.newItem=this.newItem,e}static fromJson(e,t,r){return t=super.fromJson(e,t,r??new zs),t.oldItem=e.oldItem,t.newItem=e.newItem,t}};i(Be.EVENT,fe.TOOLBOX_ITEM_SELECT,zs);var As=class extends ba{constructor(e){super(),this.isBlank=!0,this.recordUndo=!1,this.type=fe.FINISHED_LOADING,this.isBlank=!!e,e&&(this.workspaceId=e.id)}};i(Be.EVENT,fe.FINISHED_LOADING,As);var ar,Kn,Hr,Ci,Zg,iC,oC,aC,lC,cC,uC,dC,hC,pC,gC,fC,mC,bC,$C,vC,yC,_C,wC,CC,SC,Ye;s.BLOCK_CHANGE$$module$build$src$core$events$events=fe.BLOCK_CHANGE,s.BLOCK_CREATE$$module$build$src$core$events$events=fe.BLOCK_CREATE,s.BLOCK_DELETE$$module$build$src$core$events$events=fe.BLOCK_DELETE,ar=fe.BLOCK_DRAG,s.BLOCK_MOVE$$module$build$src$core$events$events=fe.BLOCK_MOVE,Kn=fe.BLOCK_FIELD_INTERMEDIATE_CHANGE,Hr=fe.BUBBLE_OPEN,Ci=fe.BLOCK_CHANGE,Zg=fe.CLICK,iC=fe.COMMENT_CHANGE,oC=fe.COMMENT_CREATE,aC=fe.COMMENT_DELETE,lC=fe.COMMENT_MOVE,cC=fe.COMMENT_RESIZE,uC=fe.COMMENT_DRAG,dC=fe.BLOCK_CREATE,hC=fe.BLOCK_DELETE,pC=fe.FINISHED_LOADING,gC=fe.MARKER_MOVE,fC=fe.BLOCK_MOVE,mC=fe.SELECTED,bC=fe.THEME_CHANGE,$C=fe.TOOLBOX_ITEM_SELECT,vC=fe.TRASHCAN_OPEN,yC=fe.UI,_C=fe.VAR_CREATE,wC=fe.VAR_DELETE,CC=fe.VAR_RENAME,SC=fe.VIEWPORT_CHANGE,Ye={},Ye.Abstract=ba,Ye.BLOCK_CHANGE=s.BLOCK_CHANGE$$module$build$src$core$events$events,Ye.BLOCK_CREATE=s.BLOCK_CREATE$$module$build$src$core$events$events,Ye.BLOCK_DELETE=s.BLOCK_DELETE$$module$build$src$core$events$events,Ye.BLOCK_DRAG=ar,Ye.BLOCK_FIELD_INTERMEDIATE_CHANGE=Kn,Ye.BLOCK_MOVE=s.BLOCK_MOVE$$module$build$src$core$events$events,Ye.BUBBLE_OPEN=Hr,Ye.BUMP_EVENTS=Up,Ye.BlockBase=Sa,Ye.BlockChange=Xi,Ye.BlockCreate=xg,Ye.BlockDelete=Pg,Ye.BlockDrag=V,Ye.BlockFieldIntermediateChange=Q,Ye.BlockMove=le,Ye.BubbleOpen=Me,Ye.BubbleType=Ne,Ye.CHANGE=Ci,Ye.CLICK=Zg,Ye.COMMENT_CHANGE=iC,Ye.COMMENT_CREATE=oC,Ye.COMMENT_DELETE=aC,Ye.COMMENT_DRAG=uC,Ye.COMMENT_MOVE=lC,Ye.COMMENT_RESIZE=cC,Ye.CREATE=dC,Ye.Click=$a,Ye.ClickTarget=Gp,Ye.CommentBase=Pe,Ye.CommentChange=qe,Ye.CommentCollapse=dt,Ye.CommentCreate=$t,Ye.CommentDelete=Ut,Ye.CommentDrag=vt,Ye.CommentMove=Xt,Ye.CommentResize=en,Ye.DELETE=hC,Ye.FINISHED_LOADING=pC,Ye.FinishedLoading=As,Ye.MARKER_MOVE=gC,Ye.MOVE=fC,Ye.MarkerMove=jg,Ye.SELECTED=mC,Ye.Selected=Vg,Ye.THEME_CHANGE=bC,Ye.TOOLBOX_ITEM_SELECT=$C,Ye.TRASHCAN_OPEN=vC,Ye.ThemeChange=Dg,Ye.ToolboxItemSelect=zs,Ye.TrashcanOpen=Kg,Ye.UI=yC,Ye.UiBase=Es,Ye.VAR_CREATE=_C,Ye.VAR_DELETE=wC,Ye.VAR_RENAME=CC,Ye.VIEWPORT_CHANGE=SC,Ye.VarBase=zc,Ye.VarCreate=gg,Ye.VarDelete=Hg,Ye.VarRename=Kd,Ye.ViewportChange=Ag,Ye.clearPendingUndo=W,Ye.disable=s.disable$$module$build$src$core$events$utils,Ye.disableOrphans=at,Ye.enable=s.enable$$module$build$src$core$events$utils,Ye.filter=ce,Ye.fire=ee,Ye.fromJson=ze,Ye.get=Ce,Ye.getDescendantIds=Z,Ye.getGroup=s.getGroup$$module$build$src$core$events$utils,Ye.getRecordUndo=se,Ye.isEnabled=te,Ye.setGroup=s.setGroup$$module$build$src$core$events$utils,Ye.setRecordUndo=s.setRecordUndo$$module$build$src$core$events$utils;var io={};io.BottomRow=t$,io.ConstantProvider=sh,io.Drawer=rh,io.MarkerSvg=i$,io.PathObject=o$,io.RenderInfo=r$,io.Renderer=Yg,io.RightConnectionShape=n$,io.StatementInput=ah,io.TopRow=s$,gd();var ys={};ys.registerCleanup=Op,ys.registerCollapse=ad,ys.registerCollapseExpandBlock=Np,ys.registerComment=Sc,ys.registerCommentCreate=Qs,ys.registerCommentDelete=Bp,ys.registerCommentDuplicate=Pp,ys.registerCommentOptions=pd,ys.registerDefaultOptions=gd,ys.registerDelete=fa,ys.registerDeleteAll=ud,ys.registerDisable=Lp,ys.registerDuplicate=Mp,ys.registerExpand=Rp,ys.registerHelp=hd,ys.registerInline=Ht,ys.registerRedo=Cl,ys.registerUndo=id;var h$={};h$.CommentView=Bd,h$.RenderedWorkspaceComment=Pd,h$.WorkspaceComment=Xc;var Qg={};Qg.Bubble=fn,Qg.MiniWorkspaceBubble=vs,Qg.TextBubble=ir,Qg.TextInputBubble=Mb;var TC=class extends Vd{constructor(){super(),this.FIELD_TEXT_BASELINE_CENTER=!1,this.DARK_PATH_OFFSET=1,this.MAX_BOTTOM_WIDTH=30,this.STATEMENT_BOTTOM_SPACER=-this.NOTCH_HEIGHT/2}getCSS_(e){return super.getCSS_(e).concat([`${e} .blocklyInsertionMarker>.blocklyPathLight,`,`${e} .blocklyInsertionMarker>.blocklyPathDark {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"])}},kC=class{constructor(e){this.inlineSteps_=this.steps_="",this.info_=e,this.RTL_=this.info_.RTL,e=e.getRenderer(),this.constants_=e.getConstants(),this.highlightConstants_=e.getHighlightConstants(),this.highlightOffset=this.highlightConstants_.OFFSET,this.outsideCornerPaths_=this.highlightConstants_.OUTSIDE_CORNER,this.insideCornerPaths_=this.highlightConstants_.INSIDE_CORNER,this.puzzleTabPaths_=this.highlightConstants_.PUZZLE_TAB,this.notchPaths_=this.highlightConstants_.NOTCH,this.startPaths_=this.highlightConstants_.START_HAT,this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH}getPath(){return this.steps_+` -`+this.inlineSteps_}drawTopCorner(e){this.steps_+=xn(e.xPos,this.info_.startY);for(let t=0,r;r=e.elements[t];t++)J.isLeftSquareCorner(r)?this.steps_+=this.highlightConstants_.START_POINT:J.isLeftRoundedCorner(r)?this.steps_+=this.outsideCornerPaths_.topLeft(this.RTL_):J.isPreviousConnection(r)?this.steps_+=this.notchPaths_.pathLeft:J.isHat(r)?this.steps_+=this.startPaths_.path(this.RTL_):J.isSpacer(r)&&r.width!==0&&(this.steps_+=tt("H",r.xPos+r.width-this.highlightOffset));this.steps_+=tt("H",e.xPos+e.width-this.highlightOffset)}drawJaggedEdge_(e){this.info_.RTL&&(this.steps_+=this.jaggedTeethPaths_.pathLeft+tt("v",e.height-this.jaggedTeethPaths_.height-this.highlightOffset))}drawValueInput(e){const t=e.getLastInput();if(this.RTL_){const r=e.height-t.connectionHeight;this.steps_+=is(t.xPos+t.width-this.highlightOffset,e.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)+tt("v",r)}else this.steps_+=is(t.xPos+t.width,e.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)}drawStatementInput(e){const t=e.getLastInput();if(t)if(this.RTL_){const r=e.height-2*this.insideCornerPaths_.height;this.steps_+=is(t.xPos,e.yPos)+this.insideCornerPaths_.pathTop(this.RTL_)+tt("v",r)+this.insideCornerPaths_.pathBottom(this.RTL_)+hi(e.width-t.xPos-this.insideCornerPaths_.width,0)}else this.steps_+=is(t.xPos,e.yPos+e.height)+this.insideCornerPaths_.pathBottom(this.RTL_)+hi(e.width-t.xPos-this.insideCornerPaths_.width,0)}drawRightSideRow(e){const t=e.xPos+e.width-this.highlightOffset;e instanceof Lg&&e.followsStatement&&(this.steps_+=tt("H",t)),this.RTL_&&(this.steps_+=tt("H",t),e.height>this.highlightOffset&&(this.steps_+=tt("V",e.yPos+e.height-this.highlightOffset)))}drawBottomRow(e){if(this.RTL_)this.steps_+=tt("V",e.baseline-this.highlightOffset);else{const t=this.info_.bottomRow.elements[0];J.isLeftSquareCorner(t)?this.steps_+=is(e.xPos+this.highlightOffset,e.baseline-this.highlightOffset):J.isLeftRoundedCorner(t)&&(this.steps_+=is(e.xPos,e.baseline),this.steps_+=this.outsideCornerPaths_.bottomLeft())}}drawLeft(){var e=this.info_.outputConnection;e&&(e=e.connectionOffsetY+e.height,this.RTL_?this.steps_+=is(this.info_.startX,e):(this.steps_+=is(this.info_.startX+this.highlightOffset,this.info_.bottomRow.baseline-this.highlightOffset),this.steps_+=tt("V",e)),this.steps_+=this.puzzleTabPaths_.pathUp(this.RTL_)),this.RTL_||(e=this.info_.topRow,J.isLeftRoundedCorner(e.elements[0])?this.steps_+=tt("V",this.outsideCornerPaths_.height):this.steps_+=tt("V",e.capline+this.highlightOffset))}drawInlineInput(e){const t=this.highlightOffset,r=e.xPos+e.connectionWidth;var l=e.centerline-e.height/2;const p=e.width-e.connectionWidth,v=l+t;this.RTL_?(l=e.connectionOffsetY-t,e=e.height-(e.connectionOffsetY+e.connectionHeight)+t,this.inlineSteps_+=is(r-t,v)+tt("v",l)+this.puzzleTabPaths_.pathDown(this.RTL_)+tt("v",e)+tt("h",p)):this.inlineSteps_+=is(e.xPos+e.width+t,v)+tt("v",e.height)+tt("h",-p)+is(r,l+e.connectionOffsetY)+this.puzzleTabPaths_.pathDown(this.RTL_)}},EC=class extends Fl{constructor(e,t){super(e,t),this.highlighter_=new kC(t)}draw(){this.drawOutline_(),this.drawInternals_(),this.updateConnectionHighlights();const e=this.block_.pathObject;e.setPath(this.outlinePath_+` -`+this.inlinePath_),e.setHighlightPath(this.highlighter_.getPath()),this.info_.RTL&&e.flipRTL(),this.recordSizeOnBlock_()}drawTop_(){this.highlighter_.drawTopCorner(this.info_.topRow),this.highlighter_.drawRightSideRow(this.info_.topRow),super.drawTop_()}drawJaggedEdge_(e){this.highlighter_.drawJaggedEdge_(e),super.drawJaggedEdge_(e)}drawValueInput_(e){this.highlighter_.drawValueInput(e),super.drawValueInput_(e)}drawStatementInput_(e){this.highlighter_.drawStatementInput(e),super.drawStatementInput_(e)}drawRightSideRow_(e){this.highlighter_.drawRightSideRow(e),this.outlinePath_+=tt("H",e.xPos+e.width)+tt("V",e.yPos+e.height)}drawBottom_(){this.highlighter_.drawBottomRow(this.info_.bottomRow),super.drawBottom_()}drawLeft_(){this.highlighter_.drawLeft(),super.drawLeft_()}drawInlineInput_(e){this.highlighter_.drawInlineInput(e),super.drawInlineInput_(e)}positionInlineInputConnection_(e){const t=e.centerline-e.height/2;if(e.connectionModel){let r=e.xPos+e.connectionWidth+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(r*=-1),e.connectionModel.setOffsetInBlock(r,t+e.connectionOffsetY+this.constants_.DARK_PATH_OFFSET)}}positionStatementInputConnection_(e){const t=e.getLastInput();if(t!=null&&t.connectionModel){let r=e.xPos+e.statementEdge+t.notchOffset;r=this.info_.RTL?-1*r:r+this.constants_.DARK_PATH_OFFSET,t.connectionModel.setOffsetInBlock(r,e.yPos+this.constants_.DARK_PATH_OFFSET)}}positionExternalValueConnection_(e){const t=e.getLastInput();if(t&&t.connectionModel){let r=e.xPos+e.width+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(r*=-1),t.connectionModel.setOffsetInBlock(r,e.yPos)}}positionNextConnection_(){const e=this.info_.bottomRow;if(e.connection){const t=e.connection,r=t.xPos;t.connectionModel.setOffsetInBlock((this.info_.RTL?-r:r)+this.constants_.DARK_PATH_OFFSET/2,e.baseline+this.constants_.DARK_PATH_OFFSET)}}},IC=class{constructor(e){this.OFFSET=.5,this.constantProvider=e,this.START_POINT=xn(this.OFFSET,this.OFFSET)}init(){this.INSIDE_CORNER=this.makeInsideCorner(),this.OUTSIDE_CORNER=this.makeOutsideCorner(),this.PUZZLE_TAB=this.makePuzzleTab(),this.NOTCH=this.makeNotch(),this.JAGGED_TEETH=this.makeJaggedTeeth(),this.START_HAT=this.makeStartHat()}makeInsideCorner(){const e=this.constantProvider.CORNER_RADIUS,t=this.OFFSET,r=(1-Math.SQRT1_2)*(e+t)-t,l=xn(r,r)+Hn("a","0 0,0",e,ut(-r-t,e-r)),p=Hn("a","0 0,0",e+t,ut(e+t,e+t)),v=xn(r,-r)+Hn("a","0 0,0",e+t,ut(e-r,r+t));return{width:e+t,height:e,pathTop(O){return O?l:""},pathBottom(O){return O?p:v}}}makeOutsideCorner(){const e=this.constantProvider.CORNER_RADIUS,t=this.OFFSET,r=(1-Math.SQRT1_2)*(e-t)+t,l=xn(r,r)+Hn("a","0 0,1",e-t,ut(e-r,-r+t)),p=xn(t,e)+Hn("a","0 0,1",e-t,ut(e,-e+t)),v=-r,O=xn(r,v)+Hn("a","0 0,1",e-t,ut(-r+t,-v-e));return{height:e,topLeft(G){return G?l:p},bottomLeft(){return O}}}makePuzzleTab(){const e=this.constantProvider.TAB_WIDTH,t=this.constantProvider.TAB_HEIGHT,r=xn(-2,-t+3.4)+hi(-.45*e,-2.1),l=tt("v",2.5)+xn(.97*-e,2.5)+Zs("q",[ut(.05*-e,10),ut(.3*e,9.5)])+xn(.67*e,-1.9)+tt("v",2.5),p=tt("v",-1.5)+xn(-.92*e,-.5)+Zs("q",[ut(-.19*e,-5.5),ut(0,-11)])+xn(.92*e,1),v=xn(-5,t-.7)+hi(.46*e,-2.1);return{width:e,height:t,pathUp(O){return O?r:p},pathDown(O){return O?l:v}}}makeNotch(){return{pathLeft:tt("h",this.OFFSET)+this.constantProvider.NOTCH.pathLeft}}makeJaggedTeeth(){return{pathLeft:hi(5.1,2.6)+xn(-10.2,6.8)+hi(5.1,2.6),height:12,width:10.2}}makeStartHat(){const e=this.constantProvider.START_HAT.height,t=xn(25,-8.7)+Zs("c",[ut(29.7,-6.2),ut(57.2,-.5),ut(75,8.7)]),r=Zs("c",[ut(17.8,-9.2),ut(45.3,-14.9),ut(75,-8.7)])+is(100.5,e+.5);return{path(l){return l?t:r}}}},xC=class extends Mg{constructor(e,t){super(e,t),this.constants_=e,this.connectedBlock&&(this.width+=this.constants_.DARK_PATH_OFFSET,this.height+=this.constants_.DARK_PATH_OFFSET)}},DC=class extends su{constructor(e,t){super(e,t),this.constants_=e,this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}},AC=class extends hs{constructor(e,t){super(e,t),this.renderer_=e}getRenderer(){return this.renderer_}populateBottomRow_(){super.populateBottomRow_(),this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof yr||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}addInput_(e,t){this.isInline&&e instanceof s.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new xC(this.constants_,e)),t.hasInlineInput=!0):e instanceof yr?(t.elements.push(new DC(this.constants_,e)),t.hasStatement=!0):e instanceof s.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new cn(this.constants_,e)),t.hasExternalInput=!0):(e instanceof yi||e instanceof ro)&&(t.minHeight=Math.max(t.minHeight,this.constants_.DUMMY_INPUT_MIN_HEIGHT),t.hasDummyInput=!0),this.isInline||t.align!==null||(t.align=e.align)}addElemSpacing_(){let e=!1;for(let r=0,l;l=this.rows[r];r++)l.hasExternalInput&&(e=!0);for(let r=0,l;l=this.rows[r];r++){var t=l.elements;if(l.elements=[],l.startsWithElemSpacer()&&l.elements.push(new vr(this.constants_,this.getInRowSpacing_(null,t[0]))),t.length){for(let p=0;p>>/sprites.png); - height: 16px; - vertical-align: middle; - visibility: hidden; - width: 16px; -} - -.blocklyTreeIconClosed { - background-position: -32px -1px; -} - -.blocklyToolboxDiv[dir="RTL"] .blocklyTreeIconClosed { - background-position: 0 -1px; -} - -.blocklyTreeSelected>.blocklyTreeIconClosed { - background-position: -32px -17px; -} - -.blocklyToolboxDiv[dir="RTL"] .blocklyTreeSelected>.blocklyTreeIconClosed { - background-position: 0 -17px; -} - -.blocklyTreeIconOpen { - background-position: -16px -1px; -} - -.blocklyTreeSelected>.blocklyTreeIconOpen { - background-position: -16px -17px; -} - -.blocklyTreeLabel { - cursor: default; - font: 16px sans-serif; - padding: 0 3px; - vertical-align: middle; -} - -.blocklyToolboxDelete .blocklyTreeLabel { - cursor: url("<<>>/handdelete.cur"), auto; -} - -.blocklyTreeSelected .blocklyTreeLabel { - color: #fff; -} -`),i(Be.TOOLBOX_ITEM,oo.registrationName,oo);var ef=class extends wy{constructor(e,t){super(e,t),this.cssConfig_={container:"blocklyTreeSeparator"},this.htmlDiv=null,Object.assign(this.cssConfig_,e.cssconfig||e.cssConfig)}init(){this.createDom_()}createDom_(){const e=document.createElement("div"),t=this.cssConfig_.container;return t&&Fe(e,t),this.htmlDiv=e}getDiv(){return this.htmlDiv}dispose(){mt(this.htmlDiv)}};ef.registrationName="sep",we(` -.blocklyTreeSeparator { - border-bottom: solid #e5e5e5 1px; - height: 0; - margin: 5px 0; -} - -.blocklyToolboxDiv[layout="h"] .blocklyTreeSeparator { - border-right: solid #e5e5e5 1px; - border-bottom: none; - height: auto; - margin: 0 5px 0 5px; - padding: 5px 0; - width: 0; -} -`),i(Be.TOOLBOX_ITEM,ef.registrationName,ef);var ch=class extends oo{constructor(e,t,r){super(e,t,r),this.subcategoriesDiv_=null,this.expanded_=!1,this.toolboxItems_=[]}makeDefaultCssConfig_(){const e=super.makeDefaultCssConfig_();return e.contents="blocklyToolboxContents",e}parseContents_(e){if("custom"in e)this.flyoutItems_=e.custom;else{const t=e.contents;if(t){this.flyoutItems_=[],e=!0;for(let r=0;r>>/handdelete.cur"), auto; -} - -.blocklyToolboxGrab { - cursor: url("<<>>/handclosed.cur"), auto; - cursor: grabbing; - cursor: -webkit-grabbing; -} - -/* Category tree in Toolbox. */ -.blocklyToolboxDiv { - background-color: #ddd; - overflow-x: visible; - overflow-y: auto; - padding: 4px 0 4px 0; - position: absolute; - z-index: 70; /* so blocks go under toolbox when dragging */ - -webkit-tap-highlight-color: transparent; /* issue #1345 */ -} - -.blocklyToolboxContents { - display: flex; - flex-wrap: wrap; - flex-direction: column; -} - -.blocklyToolboxContents:focus { - outline: none; -} -`),i(Be.TOOLBOX,Nr,LC);var fI="11.2.2",mI=Ze.INPUT_VALUE,bI=Ze.OUTPUT_VALUE,$I=Ze.NEXT_STATEMENT,vI=Ze.PREVIOUS_STATEMENT,yI=Rt.TOP,_I=Rt.BOTTOM,wI=Rt.LEFT,CI=Rt.RIGHT;zl.prototype.newBlock=function(e,t){return new Lo(this,e,t)},Cr.prototype.newBlock=function(e,t){return new Ur(this,e,t)},zl.prototype.newComment=function(e){return new Xc(this,e)},Cr.prototype.newComment=function(e){return new Pd(this,e)},Cr.newTrashcan=function(e){return new Yb(e)},vs.prototype.newWorkspaceSvg=function(e){return new Cr(e)},s.Names$$module$build$src$core$names.prototype.populateProcedures=function(e){e=qu(e),e=e[0].concat(e[1]);for(let t=0;t{this.setState({popper:I.I18n.t("Copied"),anchorEl:s}),setTimeout(()=>this.setState({popper:"",anchorEl:null}),1e3)},50)}render(){const n=new Blob([this.props.text],{type:"application/xml"}),s=`${this.props.scriptId.substring(10)}.xml`;return f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":of.dialog},fullWidth:!0,open:!0,"aria-labelledby":"export-dialog-title",children:[f.jsx(D.DialogTitle,{id:"export-dialog-title",children:I.I18n.t("Export selected blocks")}),f.jsx(D.DialogContent,{style:of.overflowY,children:f.jsx("pre",{id:"export-text",style:{...of.textArea,...this.props.themeType==="dark"?void 0:of.textAreaLight},children:this.props.text})}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",color:"secondary",startIcon:f.jsx(G$,{}),children:f.jsx("a",{download:s,target:"_blank",rel:"noreferrer",href:URL.createObjectURL(n),style:{textDecoration:"inherit",color:"inherit"},children:I.I18n.t("Download as file")})}),f.jsx(D.Button,{variant:"contained",onClick:i=>this.onCopy(i),color:"secondary",startIcon:f.jsx(ST,{}),children:I.I18n.t("Copy to clipboard")}),f.jsx(D.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"primary",startIcon:f.jsx(Jo,{}),children:I.I18n.t("Close")}),f.jsx(D.Popper,{id:"popper",style:{zIndex:1e4},open:!!this.state.popper,placement:"top",anchorEl:this.state.anchorEl,transition:!0,children:({TransitionProps:i})=>f.jsx(D.Fade,{...i,timeout:350,children:f.jsx(D.Paper,{children:f.jsx("p",{style:of.typography,children:this.state.popper})})})}),f.jsx("textarea",{id:"copy_input",readOnly:!0,style:{position:"absolute",left:-9999},tabIndex:-1,"aria-hidden":!0,value:this.props.text})]})]},"export-dialog")}}const Ws={textArea:{width:"calc(100% - 10px)",height:"calc(80% - 20px)",resize:"none",fontFamily:"monospace",fontSize:"1em",backgroundColor:"transparent",borderRadius:4,outline:"none"},dropzone:{marginTop:20,width:"100%",borderWidth:5,borderStyle:"dashed",borderColor:"#d0cccc",textAlign:"center",boxSizing:"border-box",paddingTop:45,borderRadius:10,height:"calc(100% - 10px)"},dropzoneDiv:{width:"100%",height:"20%",position:"relative"},dropzoneRejected:{borderColor:"#970000"},dropzoneAccepted:{borderColor:"#17cd02"},icon:{height:"80%",width:"80%",opacity:.3,color:"#eeeeee",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:0},iconError:{color:"#ffc3c6"},iconOk:{color:"#aaeebc"},text:{top:"50%",left:"50%",transform:"translate(-50%,-50%)",color:"#868686",position:"absolute",zIndex:1},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"}};class Kv extends We.Component{constructor(n){super(n),this.state={text:"",imageStatus:"",error:""}}componentDidMount(){setTimeout(()=>{var n;try{(n=window.document.getElementById("import-text-area"))==null||n.focus()}catch{}},100)}static readFileDataUrl(n,s){const i=new FileReader;i.onload=()=>{s(null,{data:i.result,name:n.name})},i.onabort=()=>{console.error("file reading was aborted"),s(I.I18n.t("file reading was aborted"))},i.onerror=a=>{console.error("file reading has failed"),s(I.I18n.t("file reading has failed: %s",a))},i.readAsText(n)}handleDropFile(n){if(!(n!=null&&n.length))return;const s=n[n.length-1];s&&Kv.readFileDataUrl(s,(i,a)=>{var c;i||!a?this.setState({error:i||"No data"}):this.setState({text:((c=a.data)==null?void 0:c.toString())||""})})}handleCancel(){this.props.onClose()}handleOk(){this.props.onClose(this.state.text)}onChange(n){this.setState({text:n.target.value})}render(){const n={...Ws.dropzone,...this.state.imageStatus==="accepted"?Ws.dropzoneAccepted:this.state.imageStatus==="rejected"?Ws.dropzoneRejected:void 0};return f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":Ws.dialog},fullWidth:!0,open:!0,"aria-labelledby":"import-dialog-title",children:[f.jsx(D.DialogTitle,{id:"import-dialog-title",children:I.I18n.t("Import blocks")}),f.jsxs(D.DialogContent,{style:Ws.fullHeight,children:[f.jsx("textarea",{autoFocus:!0,id:"import-text-area",placeholder:I.I18n.t("Paste your blocks here"),style:{...Ws.textArea,color:this.props.themeType==="dark"?"#ffffff":"#000000"},onChange:s=>this.onChange(s),value:this.state.text}),f.jsx(U0,{maxSize:5e7,onDrop:(s,i)=>{var a,c,h;s.length?this.handleDropFile(s):window.alert(((h=(c=(a=i==null?void 0:i[0])==null?void 0:a.errors)==null?void 0:c[0])==null?void 0:h.message)||I.I18n.t("ra_Cannot upload"))},multiple:!1,accept:{"text/plain":[],"text/xml":[],"application/xml":[]},children:({getRootProps:s,getInputProps:i,isDragActive:a,isDragReject:c})=>c?(this.state.imageStatus!=="rejected"&&this.setState({imageStatus:"rejected"}),f.jsxs("div",{style:{...n,...Ws.dropzoneDiv},...s(),children:[f.jsx("input",{...i()}),f.jsx("span",{style:Ws.text,children:I.I18n.t("Some files will be rejected")},"text"),f.jsx(Iv,{style:{...Ws.icon,...Ws.iconError}},"icon")]})):a?(this.state.imageStatus!=="accepted"&&this.setState({imageStatus:"accepted"}),f.jsxs("div",{style:{...n,...Ws.dropzoneDiv},...s(),children:[f.jsx("input",{...i()}),f.jsx("span",{style:Ws.text,children:I.I18n.t("All files will be accepted")},"text"),f.jsx(Ev,{style:{...Ws.icon,...Ws.iconOk}},"icon")]})):(this.state.imageStatus!=="wait"&&this.setState({imageStatus:"wait"}),f.jsxs("div",{style:{...n,...Ws.dropzoneDiv},...s(),children:[f.jsx("input",{...i()}),f.jsx("span",{style:Ws.text,children:I.I18n.t("Drop some files here or click...")},"text"),f.jsx(W0,{style:Ws.icon},"icon")]}))})]}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",disabled:!this.state.text,onClick:()=>this.handleOk(),color:"primary",startIcon:f.jsx(Va,{}),children:I.I18n.t("Import")}),f.jsx(D.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:f.jsx(Jo,{}),children:I.I18n.t("Close")})]})]})}}/** - * @license - * Copyright 2023 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */const yt=window.Blockly;class Uy extends Error{constructor(){super("The field has not yet been attached to its input. Call appendField to attach it.")}}class nv extends yt.Field{textGroup=null;borderRect_=null;maxLines_=1/0;isOverflowedY_=!1;constructor(n,s,i){super(n),n!==Symbol("SKIP_SETUP")&&(i&&this.configure_(i),this.SERIALIZABLE=!0,this.setValue((n==null?void 0:n.toString())||""),s&&this.setValidator(s))}configure_(n){super.configure_(n),n.maxLines&&this.setMaxLines(n.maxLines)}toXml(n){return n.textContent=this.getValue().replace(/\n/g," "),n}fromXml(n){this.setValue(n.textContent.replace(/ /g,` -`))}saveState(){const n=this.saveLegacyState(nv);return n!==null?n:this.getValue()}loadState(n){this.loadLegacyState(yt.Field,n)||this.setValue(n)}initView(){this.createBorderRect_(),this.textGroup=yt.utils.dom.createSvgElement(yt.utils.Svg.G,{class:"blocklyEditableText"},this.fieldGroup_)}onHtmlInputKeyDownSuper_(n){n.key==="Enter"?(yt.WidgetDiv.hideIfOwner(this),yt.dropDownDiv.hideWithoutAnimation()):n.key==="Escape"?(this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),!1),yt.WidgetDiv.hideIfOwner(this),yt.dropDownDiv.hideWithoutAnimation()):n.key==="Tab"&&(yt.WidgetDiv.hideIfOwner(this),yt.dropDownDiv.hideWithoutAnimation(),this.sourceBlock_.tab(this,!n.shiftKey),n.preventDefault())}onHtmlInputChange_(n){const s=this.value_;this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1),this.sourceBlock_&&yt.Events.isEnabled()&&this.value_!==s&&yt.Events.fire(new(yt.Events.get("block_field_intermediate_change"))(this.sourceBlock_,this.name||null,s,this.value_))}onFinishEditing_(n){}getValueFromEditorText_(n){return n}bindInputEvents_(n){this.onKeyDownWrapper_=yt.browserEvents.conditionalBind(n,"keydown",this,this.onHtmlInputKeyDown_),this.onKeyInputWrapper_=yt.browserEvents.conditionalBind(n,"input",this,this.onHtmlInputChange_)}getDisplayText_(){const n=this.getSourceBlock();if(!n)throw new Error("The field has not yet been attached to its input. Call appendField to attach it.");let s=this.getText();if(!s)return yt.Field.NBSP;const i=s.split(` -`);s="";const a=this.isOverflowedY_?this.maxLines_:i.length;for(let c=0;cthis.maxDisplayLength?h=`${h.substring(0,this.maxDisplayLength-4)}...`:this.isOverflowedY_&&c===a-1&&(h=`${h.substring(0,h.length-3)}...`),h=h.replace(/\s/g,yt.Field.NBSP),s+=h,c!==a-1&&(s+=` -`)}return n.RTL&&(s+="‏"),s}doValueUpdate_(n){super.doValueUpdate_(n),this.value_!==null&&(this.isOverflowedY_=this.value_.split(` -`).length>this.maxLines_)}render_(){const n=this.getSourceBlock();if(!n)throw new Error("The field has not yet been attached to its input. Call appendField to attach it.");let s;const i=this.textGroup;for(;s=i.firstChild;)i.removeChild(s);const a=this.getConstants();if(!a)throw Error("Constants not found");const c=this.getDisplayText_().split(` -`);let h=0;for(let g=0;gh&&(h=y),g+=n.FIELD_TEXT_HEIGHT+(b>0?n.FIELD_BORDER_RECT_Y_PADDING:0)}if(this.isBeingEdited_){const b=String(this.value_).split(` -`),$=yt.utils.dom.createSvgElement(yt.utils.Svg.TEXT,{class:"blocklyText blocklyMultilineText"});for(let T=0;Tthis.maxDisplayLength&&(b[T]=b[T].substring(0,this.maxDisplayLength)),$.textContent=b[T];const C=yt.utils.dom.getFastTextWidth($,i,a,c);C>h&&(h=C)}const y=this.htmlInput_,w=y.offsetWidth-y.clientWidth;h+=w}this.borderRect_&&(g+=n.FIELD_BORDER_RECT_Y_PADDING*2,h+=n.FIELD_BORDER_RECT_X_PADDING*2+1,this.borderRect_.setAttribute("width",`${h}`),this.borderRect_.setAttribute("height",`${g}`)),this.size_.width=h,this.size_.height=g,this.positionBorderRect_()}showInlineEditor_(n){const s=this.getSourceBlock();if(!s)throw new Uy;yt.WidgetDiv.show(this,s.RTL,this.widgetDispose_.bind(this),this.workspace_),this.htmlInput_=this.widgetCreate_(),this.isBeingEdited_=!0,this.valueWhenEditorWasOpened_=this.value_,n||(this.htmlInput_.focus({preventScroll:!0}),this.htmlInput_.select())}getEditorText_(n){return`${n}`}getScaledBBox(){let n,s,i;const a=this.getSourceBlock();if(!a)throw new Uy;if(this.isFullBlockField()){const c=this.sourceBlock_.getHeightWidth(),h=a.workspace.scale;i=this.getAbsoluteXY_(),n=(c.width+1)*h,s=(c.height+1)*h,yt.utils.userAgent.GECKO?(i.x+=1.5*h,i.y+=1.5*h):(i.x-=.5*h,i.y-=.5*h)}else{const c=this.borderRect_.getBoundingClientRect();i=yt.utils.style.getPageOffset(this.borderRect_),n=c.width,s=c.height}return new yt.utils.Rect(i.y,i.y+s,i.x,i.x+n)}resizeEditor_(){yt.renderManagement.finishQueuedRenders().then(()=>{const n=this.getSourceBlock();if(!n)throw new Uy;const s=yt.WidgetDiv.getDiv(),i=this.getScaledBBox();s.style.width=`${i.right-i.left}px`,s.style.height=`${i.bottom-i.top}px`;const a=n.RTL?i.right-s.offsetWidth:i.left,c=i.top;s.style.left=`${a}px`,s.style.top=`${c}px`})}unbindInputEvents_(){this.onKeyDownWrapper_&&(yt.browserEvents.unbind(this.onKeyDownWrapper_),this.onKeyDownWrapper_=null),this.onKeyInputWrapper_&&(yt.browserEvents.unbind(this.onKeyInputWrapper_),this.onKeyInputWrapper_=null)}getClickTarget_(){return this.clickTarget_||this.getSvgRoot()}widgetDispose_(){this.isBeingEdited_=!1,this.isTextValid_=!0,this.forceRerender(),this.onFinishEditing_(this.value_),this.sourceBlock_&&yt.Events.isEnabled()&&this.valueWhenEditorWasOpened_!==null&&this.valueWhenEditorWasOpened_!==this.value_&&(yt.Events.fire(new(yt.Events.get("change"))(this.sourceBlock_,"field",this.name||null,this.valueWhenEditorWasOpened_,this.value_)),this.valueWhenEditorWasOpened_=null),yt.Events.setGroup(!1),this.unbindInputEvents_();const n=yt.WidgetDiv.getDiv().style;n.width="auto",n.height="auto",n.fontSize="",n.transition="",n.boxShadow="",this.htmlInput_=null;const s=this.getClickTarget_();if(!s)throw new Error("A click target has not been set.");yt.utils.dom.removeClass(s,"editing")}showEditor_(n,s){this.workspace_=this.sourceBlock_.workspace,!s&&this.workspace_.options.modalInputs&&(yt.utils.userAgent.MOBILE||yt.utils.userAgent.ANDROID||yt.utils.userAgent.IPAD)?this.showPromptEditor_():this.showInlineEditor_(!!s),this.forceRerender()}widgetCreate_(){const n=yt.WidgetDiv.getDiv(),s=this.workspace_.getScale(),i=this.getConstants();if(!i)throw Error("Constants not found");const a=document.createElement("textarea");a.className="blocklyHtmlInput blocklyHtmlTextAreaInput",a.setAttribute("spellcheck",String(this.spellcheck_));const c=`${i.FIELD_TEXT_FONTSIZE*s}pt`;n.style.fontSize=c,a.style.fontSize=c;const h=`${yt.FieldTextInput.BORDERRADIUS*s}px`;a.style.borderRadius=h;const g=i.FIELD_BORDER_RECT_X_PADDING*s,b=i.FIELD_BORDER_RECT_Y_PADDING*s/2;a.style.padding=`${b}px ${g}px ${b}px ${g}px`;const $=i.FIELD_TEXT_HEIGHT+i.FIELD_BORDER_RECT_Y_PADDING;return a.style.lineHeight=`${$*s}px`,n.appendChild(a),a.value=a.defaultValue=this.getEditorText_(this.value_),a.setAttribute("data-untyped-default-value",String(this.value_)),a.setAttribute("data-old-value",""),yt.utils.userAgent.GECKO?setTimeout(this.resizeEditor_.bind(this),0):this.resizeEditor_(),this.bindInputEvents_(a),a}setMaxLines(n){typeof n=="number"&&n>0&&n!==this.maxLines_&&(this.maxLines_=n,this.forceRerender())}getMaxLines(){return this.maxLines_}onHtmlInputKeyDown_(n){n.key!=="Enter"&&this.onHtmlInputKeyDownSuper_(n)}static fromJson(n){const s=yt.utils.parsing.replaceMessageReferences(n.text);return new this(s,void 0,n)}}yt.Css.register(` -.blocklyHtmlTextAreaInput { - font-family: monospace; - resize: none; - overflow: hidden; - height: 100%; - text-align: left; -} - -.blocklyHtmlTextAreaInputOverflowedY { - overflow-y: scroll; -} -`);/** - * @license - * Copyright 2024 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */const Ik="text_multiline",wM={type:Ik,message0:"%1 %2",args0:[{type:"field_image",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAARCAYAAADpPU2iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAdhgAAHYYBXaITgQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS42/U4J6AAAAP1JREFUOE+Vks0KQUEYhjmRIja4ABtZ2dm5A3t3Ia6AUm7CylYuQRaUhZSlLZJiQbFAyRnPN33y01HOW08z8873zpwzM4F3GWOCruvGIE4/rLaV+Nq1hVGMBqzhqlxgCys4wJA65xnogMHsQ5lujnYHTejBBCK2mE4abjCgMGhNxHgDFWjDSG07kdfVa2pZMf4ZyMAdWmpZMfYOsLiDMYMjlMB+K613QISRhTnITnsYg5yUd0DETmEoMlkFOeIT/A58iyK5E18BuTBfgYXfwNJv4P9/oEBerLylOnRhygmGdPpTTBZAPkde61lbQe4moWUvYUZYLfUNftIY4zwA5X2Z9AYnQrEAAAAASUVORK5CYII=",width:12,height:17,alt:"¶"},{type:"field_multilinetext",name:"TEXT",text:""}],output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_TEXT_HELPURL}",tooltip:"%{BKY_TEXT_TEXT_TOOLTIP}",extensions:["parent_tooltip_when_inline"]};function CM(o,n){const s=n.multiline_quote_(o.getFieldValue("TEXT")),i=s.indexOf("+")!==-1?6.2:0;return[s,i]}const SM=window.Blockly.common.createBlockDefinitionsFromJsonArray([wM]);SM[Ik];/** - * @license - * Copyright 2023 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */const Zt=window.Blockly;class F_ extends Zt.Field{picker=null;highlightedIndex=null;boundEvents=[];SERIALIZABLE=!0;CURSOR="default";isDirty_=!1;colours=["#ffffff","#cccccc","#c0c0c0","#999999","#666666","#333333","#000000","#ffcccc","#ff6666","#ff0000","#cc0000","#990000","#660000","#330000","#ffcc99","#ff9966","#ff9900","#ff6600","#cc6600","#993300","#663300","#ffff99","#ffff66","#ffcc66","#ffcc33","#cc9933","#996633","#663333","#ffffcc","#ffff33","#ffff00","#ffcc00","#999900","#666600","#333300","#99ff99","#66ff99","#33ff33","#33cc00","#009900","#006600","#003300","#99ffff","#33ffff","#66cccc","#00cccc","#339999","#336666","#003333","#ccffff","#66ffff","#33ccff","#3366ff","#3333ff","#000099","#000066","#ccccff","#9999ff","#6666cc","#6633ff","#6600cc","#333399","#330099","#ffccff","#ff99ff","#cc66cc","#cc33cc","#993399","#663366","#330033"];titles=[];columns=7;constructor(n,s,i){super(n),n!==Symbol("SKIP_SETUP")&&(i&&this.configure_(i),this.setValue(n),s&&this.setValidator(s))}configure_(n){super.configure_(n),n.colourOptions&&(this.colours=n.colourOptions),n.colourTitles&&(this.titles=n.colourTitles),n.columns&&(this.columns=n.columns)}initView(){const n=this.getConstants();if(!n)throw Error("Constants not found");this.size_=new Zt.utils.Size(n.FIELD_COLOUR_DEFAULT_WIDTH,n.FIELD_COLOUR_DEFAULT_HEIGHT),this.createBorderRect_(),this.getBorderRect().style.fillOpacity="1",this.getBorderRect().setAttribute("stroke","#fff"),this.isFullBlockField()&&(this.clickTarget_=this.sourceBlock_.getSvgRoot())}isFullBlockField(){if(!this.getSourceBlock())throw new Zt.UnattachedFieldError;const s=this.getConstants();return this.blockIsSimpleReporter()&&!!(s!=null&&s.FIELD_COLOUR_FULL_BLOCK)}blockIsSimpleReporter(){const n=this.getSourceBlock();if(!n)throw new Zt.UnattachedFieldError;if(!n.outputConnection)return!1;for(const s of n.inputList)if(s.connection||s.fieldRow.length>1)return!1;return!0}applyColour(){const n=this.getSourceBlock();if(!n)throw new Zt.UnattachedFieldError;if(!this.fieldGroup_)return;const s=this.borderRect_;if(!s)throw new Error("The border rect has not been initialized");this.isFullBlockField()?(s.style.display="none",n.pathObject.svgPath.setAttribute("fill",this.getValue()),n.pathObject.svgPath.setAttribute("stroke","#fff")):(s.style.display="block",s.style.fill=this.getValue())}getSize(){var n;return(n=this.getConstants())!=null&&n.FIELD_COLOUR_FULL_BLOCK&&(this.render_(),this.isDirty_=!1),super.getSize()}render_(){super.render_();const n=this.getSourceBlock();if(!n)throw new Zt.UnattachedFieldError;n.applyColour()}updateSize_(n){const s=this.getConstants();if(!s)return;let i,a;this.isFullBlockField()?(i=(n??0)*2,a=s.FIELD_TEXT_HEIGHT):(i=s.FIELD_COLOUR_DEFAULT_WIDTH,a=s.FIELD_COLOUR_DEFAULT_HEIGHT),this.size_.height=a,this.size_.width=i,this.positionBorderRect_()}doClassValidation_(n){return typeof n!="string"?null:Zt.utils.colour.parse(n)}getText(){let n=this.value_;return/^#(.)\1(.)\2(.)\3$/.test(n)&&(n=`#${n[1]}${n[3]}${n[5]}`),n}setColours(n,s){return this.colours=n,s&&(this.titles=s),this}setColumns(n){return this.columns=n,this}showEditor_(){if(this.dropdownCreate(),!this.picker)throw Error("Picker not found");Zt.DropDownDiv.getContentDiv().appendChild(this.picker),Zt.DropDownDiv.showPositionedByField(this,this.dropdownDispose.bind(this)),this.picker.focus({preventScroll:!0})}onClick(n){const s=n.target,i=s==null?void 0:s.getAttribute("data-colour");i!==null&&(this.setValue(i),Zt.DropDownDiv.hideIfOwner(this))}onKeyDown(n){let s=!0,i;switch(n.key){case"ArrowUp":this.moveHighlightBy(0,-1);break;case"ArrowDown":this.moveHighlightBy(0,1);break;case"ArrowLeft":this.moveHighlightBy(-1,0);break;case"ArrowRight":this.moveHighlightBy(1,0);break;case"Enter":if(i=this.getHighlighted(),i){const a=i.getAttribute("data-colour");a!==null&&this.setValue(a)}Zt.DropDownDiv.hideWithoutAnimation();break;default:s=!1}s&&n.stopPropagation()}moveHighlightBy(n,s){if(!this.highlightedIndex)return;const i=this.colours,a=this.columns;let c=this.highlightedIndex%a,h=Math.floor(this.highlightedIndex/a);c+=n,h+=s,n<0?c<0&&h>0?(c=a-1,h--):c<0&&(c=0):n>0?c>a-1&&ha-1&&c--:s<0?h<0&&(h=0):s>0&&h>Math.floor(i.length/a)-1&&(h=Math.floor(i.length/a)-1);const g=this.picker.childNodes[h].childNodes[c],b=h*a+c;this.setHighlightedCell(g,b)}onMouseMove(n){const s=n.target,i=s&&Number(s.getAttribute("data-index"));i!==null&&i!==this.highlightedIndex&&this.setHighlightedCell(s,i)}onMouseEnter(){var n;(n=this.picker)==null||n.focus({preventScroll:!0})}onMouseLeave(){var s;(s=this.picker)==null||s.blur();const n=this.getHighlighted();n&&Zt.utils.dom.removeClass(n,"blocklyColourHighlighted")}getHighlighted(){var a;if(!this.highlightedIndex)return null;const n=this.highlightedIndex%this.columns,s=Math.floor(this.highlightedIndex/this.columns),i=(a=this.picker)==null?void 0:a.childNodes[s];return i?i.childNodes[n]:null}setHighlightedCell(n,s){const i=this.getHighlighted();i&&Zt.utils.dom.removeClass(i,"blocklyColourHighlighted"),Zt.utils.dom.addClass(n,"blocklyColourHighlighted"),this.highlightedIndex=s;const a=n.getAttribute("id");a&&this.picker&&Zt.utils.aria.setState(this.picker,Zt.utils.aria.State.ACTIVEDESCENDANT,a)}dropdownCreate(){const n=this.columns,s=this.colours,i=this.getValue(),a=document.createElement("table");a.className="blocklyColourTable",a.tabIndex=0,a.dir="ltr",Zt.utils.aria.setRole(a,Zt.utils.aria.Role.GRID),Zt.utils.aria.setState(a,Zt.utils.aria.State.EXPANDED,!0),Zt.utils.aria.setState(a,Zt.utils.aria.State.ROWCOUNT,Math.floor(s.length/n)),Zt.utils.aria.setState(a,Zt.utils.aria.State.COLCOUNT,n);let c=null;for(let h=0;htr>td { - border: 0.5px solid #888; - box-sizing: border-box; - cursor: pointer; - display: inline-block; - height: 20px; - padding: 0; - width: 20px; -} - -.blocklyColourTable>tr>td.blocklyColourHighlighted { - border-color: #eee; - box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3); - position: relative; -} - -.blocklyColourSelected, .blocklyColourSelected:hover { - border-color: #eee !important; - outline: 1px solid #333; - position: relative; -} -`);/** - * @license - * Copyright 2024 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */const xk="colour_picker",TM={type:xk,message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",helpUrl:"%{BKY_COLOUR_PICKER_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_PICKER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]};function kM(o,n){return[n.quote_(o.getFieldValue("COLOUR")),0]}const EM=window.Blockly.common.createBlockDefinitionsFromJsonArray([TM]);EM[xk];/** - * @license - * Copyright 2024 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */const Dk="colour_random",IM={type:Dk,message0:"%{BKY_COLOUR_RANDOM_TITLE}",output:"Colour",helpUrl:"%{BKY_COLOUR_RANDOM_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RANDOM_TOOLTIP}"};function xM(o,n){return[`${n.provideFunction_("colourRandom",` -function ${n.FUNCTION_NAME_PLACEHOLDER_}() { - var num = Math.floor(Math.random() * 0x1000000); - return '#' + ('00000' + num.toString(16)).substr(-6); -} -`)}()`,2]}const DM=window.Blockly.common.createBlockDefinitionsFromJsonArray([IM]);DM[Dk];/** - * @license - * Copyright 2024 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */const Ak="colour_rgb",AM={type:Ak,message0:"%{BKY_COLOUR_RGB_TITLE} %{BKY_COLOUR_RGB_RED} %1 %{BKY_COLOUR_RGB_GREEN} %2 %{BKY_COLOUR_RGB_BLUE} %3",args0:[{type:"input_value",name:"RED",check:"Number",align:"RIGHT"},{type:"input_value",name:"GREEN",check:"Number",align:"RIGHT"},{type:"input_value",name:"BLUE",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_RGB_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RGB_TOOLTIP}"};function OM(o,n){const s=n.valueToCode(o,"RED",99)||0,i=n.valueToCode(o,"GREEN",99)||0,a=n.valueToCode(o,"BLUE",99)||0;return[`${n.provideFunction_("colourRgb",` -function ${n.FUNCTION_NAME_PLACEHOLDER_}(r, g, b) { - r = Math.max(Math.min(Number(r), 100), 0) * 2.55; - g = Math.max(Math.min(Number(g), 100), 0) * 2.55; - b = Math.max(Math.min(Number(b), 100), 0) * 2.55; - r = ('0' + (Math.round(r) || 0).toString(16)).slice(-2); - g = ('0' + (Math.round(g) || 0).toString(16)).slice(-2); - b = ('0' + (Math.round(b) || 0).toString(16)).slice(-2); - return '#' + r + g + b; -} -`)}(${s}, ${i}, ${a})`,2]}const RM=window.Blockly.common.createBlockDefinitionsFromJsonArray([AM]);RM[Ak];/** - * @license - * Copyright 2024 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */const Ok="colour_blend",MM={type:Ok,message0:"%{BKY_COLOUR_BLEND_TITLE} %{BKY_COLOUR_BLEND_COLOUR1} %1 %{BKY_COLOUR_BLEND_COLOUR2} %2 %{BKY_COLOUR_BLEND_RATIO} %3",args0:[{type:"input_value",name:"COLOUR1",check:"Colour",align:"RIGHT"},{type:"input_value",name:"COLOUR2",check:"Colour",align:"RIGHT"},{type:"input_value",name:"RATIO",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_BLEND_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_BLEND_TOOLTIP}"};function NM(o,n){const s=n.valueToCode(o,"COLOUR1",99)||"'#000000'",i=n.valueToCode(o,"COLOUR2",99)||"'#000000'",a=n.valueToCode(o,"RATIO",99)||.5;return[`${n.provideFunction_("colourBlend",` -function ${n.FUNCTION_NAME_PLACEHOLDER_}(c1, c2, ratio) { - ratio = Math.max(Math.min(Number(ratio), 1), 0); - var r1 = parseInt(c1.substring(1, 3), 16); - var g1 = parseInt(c1.substring(3, 5), 16); - var b1 = parseInt(c1.substring(5, 7), 16); - var r2 = parseInt(c2.substring(1, 3), 16); - var g2 = parseInt(c2.substring(3, 5), 16); - var b2 = parseInt(c2.substring(5, 7), 16); - var r = Math.round(r1 * (1 - ratio) + r2 * ratio); - var g = Math.round(g1 * (1 - ratio) + g2 * ratio); - var b = Math.round(b1 * (1 - ratio) + b2 * ratio); - r = ('0' + (r || 0).toString(16)).slice(-2); - g = ('0' + (g || 0).toString(16)).slice(-2); - b = ('0' + (b || 0).toString(16)).slice(-2); - return '#' + r + g + b; -} -`)}(${s}, ${i}, ${a})`,2]}const LM=window.Blockly.common.createBlockDefinitionsFromJsonArray([MM]);LM[Ok];function BM(){window.Blockly.FieldMultilineInput||(window.Blockly.fieldRegistry.register("field_multilinetext",nv),window.Blockly.JavaScript.forBlock.text_multiline=CM,window.Blockly.FieldMultilineInput=nv,Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"text_multiline",message0:"%1 %2",args0:[{type:"field_image",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAARCAYAAADpPU2iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAdhgAAHYYBXaITgQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS42/U4J6AAAAP1JREFUOE+Vks0KQUEYhjmRIja4ABtZ2dm5A3t3Ia6AUm7CylYuQRaUhZSlLZJiQbFAyRnPN33y01HOW08z8873zpwzM4F3GWOCruvGIE4/rLaV+Nq1hVGMBqzhqlxgCys4wJA65xnogMHsQ5lujnYHTejBBCK2mE4abjCgMGhNxHgDFWjDSG07kdfVa2pZMf4ZyMAdWmpZMfYOsLiDMYMjlMB+K613QISRhTnITnsYg5yUd0DETmEoMlkFOeIT/A58iyK5E18BuTBfgYXfwNJv4P9/oEBerLylOnRhygmGdPpTTBZAPkde61lbQe4moWUvYUZYLfUNftIY4zwA5X2Z9AYnQrEAAAAASUVORK5CYII=",width:12,height:17,alt:"¶"},{type:"field_multilinetext",name:"TEXT",text:""}],output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_TEXT_HELPURL}",tooltip:"%{BKY_TEXT_TEXT_TOOLTIP}",extensions:["parent_tooltip_when_inline"]}]))),window.Blockly.FieldColour||(window.Blockly.fieldRegistry.register("field_colour",F_),window.Blockly.JavaScript.forBlock.colour_picker=kM,window.Blockly.JavaScript.forBlock.colour_blend=NM,window.Blockly.JavaScript.forBlock.colour_random=xM,window.Blockly.JavaScript.forBlock.colour_rgb=OM,window.Blockly.FieldColour=F_,Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_picker",message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",helpUrl:"%{BKY_COLOUR_PICKER_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_PICKER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]}])),Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_random",message0:"%{BKY_COLOUR_RANDOM_TITLE}",output:"Colour",helpUrl:"%{BKY_COLOUR_RANDOM_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RANDOM_TOOLTIP}"}])),Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_rgb",message0:"%{BKY_COLOUR_RGB_TITLE} %{BKY_COLOUR_RGB_RED} %1 %{BKY_COLOUR_RGB_GREEN} %2 %{BKY_COLOUR_RGB_BLUE} %3",args0:[{type:"input_value",name:"RED",check:"Number",align:"RIGHT"},{type:"input_value",name:"GREEN",check:"Number",align:"RIGHT"},{type:"input_value",name:"BLUE",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_RGB_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RGB_TOOLTIP}"}])),Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_blend",message0:"%{BKY_COLOUR_BLEND_TITLE} %{BKY_COLOUR_BLEND_COLOUR1} %1 %{BKY_COLOUR_BLEND_COLOUR2} %2 %{BKY_COLOUR_BLEND_RATIO} %3",args0:[{type:"input_value",name:"COLOUR1",check:"Colour",align:"RIGHT"},{type:"input_value",name:"COLOUR2",check:"Colour",align:"RIGHT"},{type:"input_value",name:"RATIO",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_BLEND_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_BLEND_TOOLTIP}"}])))}let $$=!1,v$=!1,Wy=null,Hy=null;const KS=[];function Rk(o,n,s,i){var a;if(i=i||[],(o.tagName==="BLOCK"||o.tagName==="block")&&(s=o.id),o.tagName==="FIELD"||o.tagName==="field")for(let c=0;cRk(c,n,s,i)),i}class dn extends We.Component{blockly=null;blocklyWorkspace=null;originalCode;someSelected=null;changeTimer=null;someSelectedTime=0;ignoreChanges=!1;blinkBlock;onResizeBind;didUpdate=null;lastCommand="";lastSearch;static Blockly=window.Blockly;constructor(n){super(n),this.state={languageOwnLoaded:v$,languageBlocklyLoaded:$$,changed:!1,message:"",error:"",themeType:this.props.themeType,exportText:"",importText:!1,searchText:this.props.searchText||"",showInputPrompt:null},this.originalCode=n.code||"",this.someSelected=null,this.onResizeBind=this.onResize.bind(this),this.lastSearch=this.props.searchText||"",this.blinkBlock=null,BM(),dn.Blockly.dialog.setPrompt(this.onShowNameDialog),this.loadLanguages()}onShowNameDialog=(n,s,i)=>{this.setState({showInputPrompt:{promptText:n,defaultText:s,callback:i,value:s}})};static loadJS(n,s,i){const a=document.createElement("script");try{a.src=n,a.onload=s,a.onerror=s,(i||window.document.body).appendChild(a)}catch(c){console.error(`Cannot load ${n}: ${c}`),s&&s()}}static loadScripts(n,s){if(!(n!=null&&n.length)){s&&s();return}const i=n.pop();i&&!KS.includes(i)?(KS.push(i),dn.loadJS(`../../adapter/${i}/blockly.js`,()=>setTimeout(()=>dn.loadScripts(n,s),0))):setTimeout(()=>dn.loadScripts(n,s),0)}static loadCustomBlockly(n,s){var a;const i=[];for(const c in n)!Object.prototype.hasOwnProperty.call(n,c)||!n[c]||!c.match(/^system\.adapter\./)||n[c].type!=="adapter"||(a=n[c].common)!=null&&a.blockly&&(console.log(`Detected custom blockly: ${n[c].common.name}`),i.push(n[c].common.name));dn.loadScripts(i,s)}static loadXMLDoc(n){let s;return window.DOMParser?s=i=>new window.DOMParser().parseFromString(i,"text/xml"):typeof window.ActiveXObject<"u"&&new window.ActiveXObject("Microsoft.XMLDOM")?s=i=>{const a=new window.ActiveXObject("Microsoft.XMLDOM");return a.async="false",a.loadXML(i),a}:s=()=>null,s(n)}searchBlocks(n){if(this.blocklyWorkspace){const s=dn.Blockly.Xml.workspaceToDom(this.blocklyWorkspace),i=Rk(s,n.toLowerCase());return console.log(`Search "${n}" found blocks: ${i.length?JSON.stringify(i):"none"}`),i}return[]}searchId(){const n=this.lastSearch?this.searchBlocks(this.lastSearch):null;n!=null&&n.length?(this.someSelected=n,this.someSelected.forEach(s=>{var i;return(i=this.blocklyWorkspace)==null?void 0:i.highlightBlock(s,!0)}),this.someSelectedTime=Date.now()):this.someSelected&&(this.someSelected.forEach(s=>{var i;return(i=this.blocklyWorkspace)==null?void 0:i.highlightBlock(s,!1)}),this.someSelected=null)}UNSAFE_componentWillReceiveProps(n){n.command&&this.lastCommand!==n.command&&(this.lastCommand=n.command,setTimeout(()=>this.lastCommand="",300),this.lastCommand==="check"?this.blocklyCheckBlocks((s,i)=>{s?(i&&dn.blocklyBlinkBlock(i),this.setState({error:{text:I.I18n.t(s),title:I.I18n.t("Error was found")}}),this.blinkBlock=i):this.setState({message:I.I18n.t("Ok")})}):this.lastCommand==="export"?this.exportBlocks():this.lastCommand==="import"&&this.importBlocks()),n.searchText!==this.lastSearch&&(this.lastSearch=n.searchText,this.searchId()),this.state.themeType!==n.themeType&&this.setState({themeType:n.themeType},()=>this.updateBackground()),this.originalCode!==n.code&&(this.originalCode=n.code||"",this.loadCode(),this.searchId())}loadLanguages(){if(!$$){const n=window.document.createElement("script");n.setAttribute("type","text/javascript"),n.setAttribute("src",`google-blockly/msg/js/${I.I18n.getLanguage()}.js`),n.onload=()=>{$$=!0,this.setState({languageBlocklyLoaded:$$})},window.document.getElementsByTagName("head")[0].appendChild(n)}if(!v$){const n=window.document.createElement("script");n.setAttribute("type","text/javascript"),n.setAttribute("src",`google-blockly/own/msg/${I.I18n.getLanguage()}.js`),n.onload=()=>{v$=!0,this.setState({languageOwnLoaded:v$})},window.document.getElementsByTagName("head")[0].appendChild(n)}}onResize(){this.blocklyWorkspace&&dn.Blockly.svgResize(this.blocklyWorkspace)}static jsCode2Blockly(n){n=n||"";const s=n.split(/[\r\n]+|\r|\n/g);let i="";for(let c=s.length-1;c>=0;c--)if(s[c].substring(0,2)==="//"){i=s[c].substring(2);break}if(i.substring(0,4)==="n.select(),s),setTimeout(()=>n.unselect(),s+150)}blocklyRemoveOrphanedShadows(){if(this.blocklyWorkspace){const n=this.blocklyWorkspace.getAllBlocks();let s;for(let i=0;s=n[i];i++)if(s.isShadow()){const a=s.getConnections_(!0);let c;for(let h=0;c=a[h];h++)if(!c.targetConnection){s.dispose();break}}}}blocklyCheckBlocks(n){let s;if(!this.blocklyWorkspace||this.blocklyWorkspace.getAllBlocks().length===0)return n&&n("no blocks found"),!1;let i=this.blocklyGetUnconnectedBlock();return i?s="not properly connected":(i=this.blocklyGetBlockWithWarning(),i&&(s="warning on this block")),i?(n?n(s,i):dn.blocklyBlinkBlock(i),!1):(n(),!0)}blocklyGetUnconnectedBlock(){var i;const n=(i=this.blocklyWorkspace)==null?void 0:i.getAllBlocks();let s;if(n)for(let a=0;s=n[a];a++){const c=s.getConnections_(!0);let h;for(let g=0;h=c[g];g++)if(!h.sourceBlock_||(h.type===dn.Blockly.INPUT_VALUE||h.type===dn.Blockly.OUTPUT_VALUE)&&!h.targetConnection&&!h._optional)return s}return null}blocklyGetBlockWithWarning(){var i;const n=(i=this.blocklyWorkspace)==null?void 0:i.getAllBlocks();let s;if(n){for(let a=0;s=n[a];a++)if(s.warning)return s}return null}blocklyCode2JSCode(n){if(!this.blocklyWorkspace)return"";let s=dn.Blockly.JavaScript.workspaceToCode(this.blocklyWorkspace);if(!n){s+=` -`;const i=dn.Blockly.Xml.workspaceToDom(this.blocklyWorkspace),a=dn.Blockly.Xml.domToText(i);s+=`//${btoa(encodeURIComponent(a))}`}return s}exportBlocks(){if(!this.blocklyWorkspace)return;let n;const s=dn.Blockly.getSelected();if(s){const i=dn.Blockly.Xml.blockToDom(s),a=s.getRelativeToSurfaceXY();i.setAttribute("x",(s.RTL?-a.x:a.x).toString()),i.setAttribute("y",a.y.toString()),n=dn.Blockly.Xml.domToPrettyText(i)}else{const i=dn.Blockly.Xml.workspaceToDom(this.blocklyWorkspace);n=dn.Blockly.Xml.domToPrettyText(i)}this.setState({exportText:n})}importBlocks(){this.setState({importText:!0})}onImportBlocks(n){if(this.blocklyWorkspace&&(n=(n||"").trim(),n))try{n.startsWith("${n}`),n=n.replace(/[\n\r]/g,"").replace(/.*<\/variables>/g,""),window.scripts.loading=!0;const s=dn.Blockly.utils.xml.textToDom(n);if(s.nodeName==="xml")for(let i=0;i';window.scripts.loading=!0;const s=dn.Blockly.utils.xml.textToDom(n);dn.Blockly.Xml.domToWorkspace(s,this.blocklyWorkspace),window.scripts.loading=!1}catch(n){console.error(n),setTimeout(()=>this.setState({error:I.I18n.t("Cannot extract Blockly code!")}))}setTimeout(()=>this.ignoreChanges=!1,100)}}onBlocklyChanged(){this.blocklyRemoveOrphanedShadows(),this.setState({changed:!0}),this.onChange()}async componentDidUpdate(){if(!this.blockly||(this.didUpdate&&(clearTimeout(this.didUpdate),this.didUpdate=null),this.blocklyWorkspace))return;window.addEventListener("resize",this.onResizeBind,!1),Wy=Wy||await this.getToolbox(),Hy=Hy||dn.Blockly.utils.xml.textToDom(Wy),this.blocklyWorkspace=dn.Blockly.inject(this.blockly,{renderer:"thrasos",theme:this.state.themeType==="dark"?GS:"classic",media:"google-blockly/media/",toolbox:Hy,zoom:{controls:!0,wheel:!1,startScale:1,maxScale:3,minScale:.3,scaleSpeed:1.2,pinch:!0},move:{scrollbars:{horizontal:!0,vertical:!0},drag:!0,wheel:!0},trashcan:!0,grid:{spacing:25,length:1,snap:!0},sounds:!1}),window.scripts={blocklyWorkspace:this.blocklyWorkspace},this.blocklyWorkspace.registerToolboxCategoryCallback("PROCEDURE",window.Blockly.Procedures.flyoutCategoryNew),this.blocklyWorkspace.addChangeListener(s=>{var i;if(this.someSelected&&Date.now()-this.someSelectedTime>500){const a=(i=this.blocklyWorkspace)==null?void 0:i.getAllBlocks();this.someSelected=null,a==null||a.forEach(c=>c.removeSelect())}[dn.Blockly.Events.UI,dn.Blockly.Events.CREATE,dn.Blockly.Events.VIEWPORT_CHANGE].includes(s.type)||this.ignoreChanges||(this.changeTimer&&clearTimeout(this.changeTimer),this.changeTimer=setTimeout(()=>{this.changeTimer=null,this.onBlocklyChanged()},200))}),this.loadCode(),this.onResize();const n=document.getElementsByClassName("blocklyToolboxDiv")[0];this.blockly.appendChild(n),this.updateBackground(),setTimeout(()=>this.searchId(),200)}updateBackground(){var n;this.state.themeType==="dark"?(n=this.blocklyWorkspace)==null||n.setTheme(GS):this.blocklyWorkspace&&(this.blocklyWorkspace.getThemeManager(),this.blocklyWorkspace.setTheme(dn.Blockly.Themes.Classic))}componentWillUnmount(){this.blocklyWorkspace&&(this.blocklyWorkspace.dispose(),this.blocklyWorkspace=null,this.changeTimer&&clearTimeout(this.changeTimer),this.changeTimer=null,window.removeEventListener("resize",this.onResizeBind))}onChange(){this.originalCode=this.blocklyCode2JSCode(),this.props.onChange&&this.props.onChange(this.originalCode)}async getToolbox(n){const s=window.document.getElementById("toolbox");let i=s==null?void 0:s.outerHTML;if(!i)return n?(console.error("Cannot load blocks!"),""):new Promise(a=>{setTimeout(()=>a(this.getToolbox(!0)),500)});if(i=i.replace(/{(\w+)}/g,(a,c)=>window.MSG[c]),window.Blockly.CustomBlocks){let a="";const c=I.I18n.getLanguage();for(let h=0;h`;for(const $ in b.blocks)Object.prototype.hasOwnProperty.call(b.blocks,$)&&(a+=b.blocks[$]);a+=""}i=i.replace("%%CUSTOM_BLOCKS%%",a)}return i}renderMessageDialog(){return this.state.message?f.jsx(I.Message,{text:typeof this.state.message=="object"?this.state.message.text:this.state.message,title:typeof this.state.message=="object"?this.state.message.title:"",onClose:()=>this.setState({message:""})},"dialogMessage"):null}renderErrorDialog(){return this.state.error?f.jsx(Hf,{text:typeof this.state.error=="object"?this.state.error.text.toString():this.state.error,title:typeof this.state.error=="object"?this.state.error.title:"",onClose:()=>{this.blinkBlock&&(dn.blocklyBlinkBlock(this.blinkBlock),this.blinkBlock=null),this.setState({error:""})}},"dialogError"):null}renderExportDialog(){return this.state.exportText?f.jsx(Ek,{themeType:this.state.themeType,onClose:()=>this.setState({exportText:""}),text:this.state.exportText,scriptId:this.props.scriptId},"dialogExport"):null}renderImportDialog(){return this.state.importText?f.jsx(Kv,{themeType:this.props.themeType,onClose:n=>{this.setState({importText:!1}),this.onImportBlocks(n)}},"dialogImport"):null}renderDialogPrompt(){return this.state.showInputPrompt?f.jsxs(D.Dialog,{onClose:()=>{var s;const n=(s=this.state.showInputPrompt)==null?void 0:s.callback;n&&n(null),this.setState({showInputPrompt:null})},maxWidth:"sm",fullWidth:!0,open:!0,children:[f.jsx(D.DialogTitle,{children:this.state.showInputPrompt.promptText}),f.jsx(D.DialogContent,{children:f.jsx(D.TextField,{variant:"standard",fullWidth:!0,value:this.state.showInputPrompt.value,onKeyUp:n=>{var s,i;if(n.key==="Enter"){const a=(s=this.state.showInputPrompt)==null?void 0:s.callback,c=(i=this.state.showInputPrompt)==null?void 0:i.value;a&&a(c===void 0?null:c),this.setState({showInputPrompt:null})}},onChange:n=>{var i,a;const s={...this.state.showInputPrompt};(i=this.state.showInputPrompt)!=null&&i.callback&&(s.callback=(a=this.state.showInputPrompt)==null?void 0:a.callback),s.value=n.target.value,this.setState({showInputPrompt:s})}})}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",disabled:!this.state.showInputPrompt.value,onClick:()=>{var i,a;const n=(i=this.state.showInputPrompt)==null?void 0:i.callback,s=(a=this.state.showInputPrompt)==null?void 0:a.value;n&&n(s===void 0?null:s),this.setState({showInputPrompt:null})},color:"primary",startIcon:f.jsx(Va,{}),children:I.I18n.t("Apply")}),f.jsx(D.Button,{color:"grey",variant:"contained",onClick:()=>{var s;const n=(s=this.state.showInputPrompt)==null?void 0:s.callback;n&&n(null),this.setState({showInputPrompt:null})},startIcon:f.jsx(Jo,{}),children:I.I18n.t("Close")})]})]},"inputDialog"):null}render(){return this.state.languageBlocklyLoaded&&this.state.languageOwnLoaded?(this.didUpdate=setTimeout(()=>{this.didUpdate=null,this.componentDidUpdate()},100),[f.jsx("div",{ref:n=>this.blockly=n,style:{width:"100%",height:"100%",position:"relative"}},"blocklyDOM"),this.renderDialogPrompt(),this.renderMessageDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderImportDialog()]):null}}const fh={textArea:{width:"calc(100% - 10px)",resize:"none"},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"},args:o=>({color:o.palette.mode==="dark"?"white":"black",height:30,width:"100%",fontSize:16}),argsTitle:o=>({color:o.palette.mode==="dark"?"white":"black",fontWeight:"bold"})};class PM extends We.Component{constructor(n){super(n),this.state={changed:!1,source:!n.source&&n.isReturn?` -return false`:n.source}}componentDidMount(){setTimeout(()=>{var n;try{(n=window.document.getElementById("source-text-area"))==null||n.focus()}catch{}},100)}handleCancel(){this.props.onClose(!1)}handleOk(){(!this.props.isReturn||this.state.source.includes("return "))&&this.props.onClose(this.state.source)}onChange(n){this.setState({changed:!0,source:n})}render(){return f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":fh.dialog},fullWidth:!0,open:!0,"aria-labelledby":"source-dialog-title",children:[f.jsx(D.DialogTitle,{id:"source-dialog-title",children:I.I18n.t("Function editor")}),f.jsxs(D.DialogContent,{style:fh.fullHeight,children:[this.props.args&&f.jsxs(D.Box,{sx:fh.args,children:[f.jsx(D.Box,{component:"span",sx:fh.argsTitle,children:I.I18n.t("function (")}),this.props.args,f.jsx(D.Box,{component:"span",sx:fh.argsTitle,children:")"})]},"arguments"),f.jsx(Gv,{triggerPrettier:1,adapterName:this.props.adapterName,runningInstances:this.props.runningInstances,style:{...fh.textArea,height:this.props.args?"calc(100% - 30px)":"100%"},name:"blockly",socket:this.props.socket,readOnly:!1,checkJs:!1,changed:this.state.changed,code:this.state.source,isDark:this.props.themeType==="dark",onChange:n=>this.onChange(n),language:"javascript"},"scriptEditor")]}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:f.jsx(KI,{}),children:I.I18n.t("Save")}),f.jsx(D.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:f.jsx(Jo,{}),children:I.I18n.t("Cancel")})]})]})}}const jM="_wrapperRules_nnott_1",FM="_rootWrapper_nnott_9",zM="_addClass_nnott_14",Vy={wrapperRules:jM,rootWrapper:FM,addClass:zM},UM="_switchesItem_10ls3_1",WM="_switchesItemActive_10ls3_28",HM="_iconTheme_10ls3_36",Gy={switchesItem:UM,switchesItemActive:WM,iconTheme:HM},Ky={},VM={Shuffle:XA,Apps:WA,Functions:GA,Language:JI,AddBox:UA,Pause:KA,Subject:QA,PlayForWork:qA,Brightness3:HA,HelpOutline:dw,Storage:ZA,AccessTime:zA,PlayArrow:JA,FlashOn:VA};function $u({iconName:o,className:n,adapter:s,socket:i,onClick:a,style:c}){const[h,g]=ve.useState("");if(ve.useEffect(()=>{s&&i&&(Ky[s]instanceof Promise||(Ky[s]=i.getObject(`system.adapter.${s}`)),Ky[s].then($=>{var y;return((y=$==null?void 0:$.common)==null?void 0:y.icon)&&g(`../../adapter/${s}/${$.common.icon}`)}))},[s,i]),s)return f.jsx("img",{onClick:$=>a&&a($),src:h||"",className:n,style:c,alt:""});const b=o&&VM[o]||qI;return f.jsx(b,{className:n,style:c,onClick:$=>a&&a($)})}const Mk=({name:o,id:n,active:s,icon:i,adapter:a,socket:c,onDoubleClick:h,title:g,onTouchMove:b,style:$})=>f.jsxs("div",{onDoubleClick:h,onTouchMove:b,title:g?I.I18n.t(g):void 0,className:I.Utils.clsx(Gy.switchesItem,s&&Gy.switchesItemActive,`block-${n}`),children:[f.jsx($u,{iconName:i,className:Gy.iconTheme,adapter:a,socket:c,style:$}),f.jsx("span",{children:o?I.I18n.t(o):""})]},n),GM="_cardStyle_8rq8v_1",KM="_cardStyleActive_8rq8v_17",JM="_controlMenu_8rq8v_22",qM="_closeBtn_8rq8v_31",YM="_isDelete_8rq8v_73",XM="_drag_mobile_8rq8v_90",mh={cardStyle:GM,cardStyleActive:KM,controlMenu:JM,closeBtn:qM,isDelete:YM,drag_mobile:XM};function Rh(o,n,s){let i;switch(o){case"actions":if(s==="else")return i={...n,actions:{...n[o],else:[...n[o].else]}},i;if(s==="then")return i={...n,actions:{...n[o],then:[...n[o].then]}},i;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return i={...n,triggers:[...n.triggers]},i;case"conditions":return i={...n,conditions:[...n.conditions]},i;default:throw new Error(`Unknown name: ${o}`)}}function du(o,n,s,i){var a;switch(o){case"actions":return n.actions[s]=n.actions[s].filter(c=>c._id!==i),n;case"conditions":return n.conditions[s]=(a=n.conditions[s])==null?void 0:a.filter(c=>c._id!==i),n;case"triggers":default:return n.triggers=n.triggers.filter(c=>c._id!==i),n}}const ZM="_nameCard_15el3_28",QM="_iconThemCard_15el3_40",eN="_iconThemCardSelectable_15el3_49",tN="_iconHelp_15el3_53",nN="_blockName_15el3_64",sN="_controlMenuTop_15el3_123",rN="_debugInfo_15el3_132",iN="_tagCard_15el3_142",oN="_displayFlex_15el3_161",aN="_blockMarginTop_15el3_166",lN="_nameBlock_15el3_167",cN="_frontText_15el3_171",uN="_backText_15el3_177",dN="_iconTag_15el3_181",hN="_displayItalic_15el3_191",ot={nameCard:ZM,iconThemCard:QM,iconThemCardSelectable:eN,iconHelp:tN,blockName:nN,controlMenuTop:sN,debugInfo:rN,tagCard:iN,displayFlex:oN,blockMarginTop:aN,nameBlock:lN,frontText:cN,backText:uN,iconTag:dN,displayItalic:hN},pN="_root_1dr6a_1",gN="_square_1dr6a_11",fN="_icon_1dr6a_16",Jy={root:pN,square:gN,icon:fN},wf=({fullWidth:o,size:n,onClick:s,style:i,className:a,value:c,square:h,icon:g})=>f.jsx(D.Button,{variant:"outlined",color:"primary",onClick:s,fullWidth:o,style:i,className:I.Utils.clsx(Jy.root,a,h?Jy.square:""),size:n||"medium",children:g?f.jsx(I.Icon,{className:Jy.icon,src:g}):c}),mN="_root_1ucda_1",bN={root:mN},$N=({size:o,value:n,title:s,onChange:i,className:a,customValue:c,disabled:h})=>{const[g,b]=ve.useState(!1);return f.jsxs(f.Fragment,{children:[f.jsx(D.Checkbox,{disabled:h,checked:!!(c?n:g),className:I.Utils.clsx(bN.root,a),onChange:$=>{c&&b($.target.checked),i&&i($.target.checked)},size:o||"medium"}),s||null]})},Nk=ve.memo($N),vN="_root_19roy_1",JS={root:vN},Yl=o=>{const[n,s]=ve.useState(""),{value:i,type:a,error:c,className:h,icon:g,label:b,style:$,onChange:y,fullWidth:w,autoComplete:T,customValue:C,autoFocus:E,rows:k,size:A,variant:P,multiline:N,disabled:B}=Object.assign({value:"",type:"text",error:"",className:null,table:!1,native:{},variant:"standard",size:"medium",component:null,styleComponentBlock:null,fullWidth:!1,autoComplete:"",customValue:!1,autoFocus:!1,rows:1},o);return f.jsx(D.TextField,{error:!!c,autoFocus:E,fullWidth:w,label:b,disabled:B,variant:P,multiline:N,rows:k,value:C?i:n,type:a,helperText:c,style:$,className:I.Utils.clsx(JS.root,h),autoComplete:T,onChange:S=>{!C&&s(S.target.value),y&&y(S.target.value)},slotProps:{input:{endAdornment:g?f.jsx(D.InputAdornment,{position:"end",children:f.jsx(I.Icon,{className:JS.icon,src:g})}):null}},margin:"normal",size:A})},yN={formControl:{m:"10px 0","& .MuiFormControl-marginNormal":{mt:0,mb:0},"& > *":{color:"#2d0440 !important"},"& .MuiSelect-icon":{color:"#81688c"},"& label.Mui-focused":{color:"#81688c"},"& .MuiInput-underline:after":{borderBottomColor:"#510573"},"& .MuiInput-underline:before":{borderBottomColor:"#81688c"},"& .MuiInput-underline:hover:before":{borderBottomColor:"#81688c"}}},_N=({multiple:o,value:n,customValue:s,socket:i,title:a,attr:c,adapter:h,style:g,onChange:b,onInstanceHide:$})=>{const[y,w]=ve.useState(n||"test1"),[T,C]=ve.useState([]);return ve.useEffect(()=>{i==null||i.getAdapterInstances(h).then(E=>{const k=E.map(A=>({value:A._id.replace("system.adapter.",""),title:A._id.replace("system.adapter.","")}));k.length===1?$(k[0].value):k.unshift({value:h,title:I.I18n.t("All")}),C(k)})},[i,h,$]),f.jsxs(D.FormControl,{sx:yN.formControl,fullWidth:!0,style:g,children:[f.jsx(D.Select,{variant:"standard",value:(s?n:y)||"_",fullWidth:!0,multiple:o,renderValue:E=>o&&Array.isArray(E)?E.join(", "):E,onChange:E=>{!s&&w(E.target.value),b(E.target.value)},input:c?f.jsx(D.Input,{name:c,id:`${c}-helper`}):f.jsx(D.Input,{name:c}),children:T.map(E=>f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:E.value||"_",children:I.I18n.t(E.title)},`key-${E.value}`))}),a?f.jsx(D.FormHelperText,{children:I.I18n.t(a)}):null]})},wN="_modalWrapper_587ci_33",CN="_modalDialog_587ci_40",qS={modalWrapper:wN,modalDialog:CN},z_=({onClose:o,children:n,titleButtonApply:s,titleButtonClose:i,onApply:a,className:c,textInput:h,defaultValue:g,disabled:b})=>{const[$,y]=ve.useState(g||""),[w]=ve.useState(g||"");return f.jsxs(D.Dialog,{open:!0,maxWidth:"md",disableEscapeKeyDown:!1,onClose:o,classes:{paper:qS.modalDialog},className:qS.modalWrapper,children:[f.jsxs(D.DialogContent,{children:[h&&f.jsx(Yl,{className:c,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"medium",rows:10,multiline:!0,value:$,onChange:y,customValue:!0}),!h&&n]}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{disabled:b===void 0?w===$:b,onClick:()=>a(h?$:null),variant:"contained",color:"primary",children:I.I18n.t(s||"Ok")}),f.jsx(D.Button,{color:"grey",onClick:o,variant:"contained",children:I.I18n.t(i||"Cancel")})]})]})},SN="_root_15mo1_1",TN={root:SN},kN=({multiple:o,value:n,customValue:s,title:i,attr:a,options:c,style:h,onChange:g,className:b,doNotTranslate:$,doNotTranslate2:y})=>{const[w,T]=ve.useState(n===void 0?c[0].value:n),C=s?n:w,E=C===""||C===null||C===void 0?"_":C;return f.jsxs(D.FormControl,{variant:"standard",className:I.Utils.clsx(TN.root,b),fullWidth:!0,style:h,children:[f.jsxs(D.Select,{variant:"standard",value:E,fullWidth:!0,multiple:o,renderValue:k=>{if(o&&Array.isArray(k)){k.sort();let P=k.indexOf("0");P!==-1&&(k.splice(P,1),k.push("0")),P=k.indexOf("_"),P!==-1&&(k.splice(P,1),k.unshift("_"));const N=c.find(S=>S.only);return N&&k.includes(N.value)?N.titleShort?$?N.titleShort:I.I18n.t(N.titleShort):$?N.title:I.I18n.t(N.title):k.map(S=>c.find(H=>H.value===S||S==="_"&&H.value==="")||S).map(S=>typeof S=="object"?S.titleShort?$?S.titleShort:I.I18n.t(S.titleShort):$?S.title:I.I18n.t(S.title):$?S:I.I18n.t(S)).join(", ")}const A=c?c.find(P=>P.value===k||k==="_"&&P.value===""):null;return A!=null&&A.title?$?A==null?void 0:A.title:I.I18n.t(A==null?void 0:A.title):k},onChange:k=>{if(s||T(k.target.value),o){const A=k.target.value,P=c.find(N=>N.only);if(P){const N=P.value;if(A.length===c.length-1&&A.includes(N))return g(A.filter(B=>B!==N),a);if(A.includes(N))return g(c.map(B=>B.value),a)}}g(k.target.value,a)},input:a?f.jsx(D.Input,{name:a,id:`${a}-helper`}):f.jsx(D.Input,{name:a}),children:[!o&&(c==null?void 0:c.map(k=>f.jsxs(D.MenuItem,{style:{placeContent:"space-between"},value:k.value===""||k.value===null||k.value===void 0?"_":k.value,children:[$?k.title:I.I18n.t(k.title),k.title2&&f.jsx("div",{children:y?k.title2:I.I18n.t(k.title2)})]},`key-${k.value}`))),o&&(c==null?void 0:c.map(k=>f.jsxs(D.MenuItem,{style:{placeContent:"space-between"},value:k.value||"_",children:[$?k.title:I.I18n.t(k.title)," ",f.jsx(Nk,{customValue:!0,value:n==null?void 0:n.includes(k.value)})]},`key-${k.value}`)))]}),i?f.jsx(D.FormHelperText,{children:I.I18n.t(i)}):null]})},EN="_root_1gt4d_1",IN="_mark_1gt4d_27",YS={root:EN,mark:IN},xN=({size:o,value:n,style:s,onChange:i,className:a,customValue:c,min:h,max:g,step:b,unit:$})=>{const[y,w]=ve.useState(0);h=h!==void 0?h:0,g=g!==void 0?g:0,b=b!==void 0?b:(g-h)/100;const T=[{value:h,label:h+($||"")},{value:g,label:g+($||"")}];return f.jsx(D.Slider,{defaultValue:c?n:y,"aria-labelledby":"discrete-slider",valueLabelDisplay:"auto",classes:{mark:YS.mark},marks:T,step:b,min:h,max:g,value:c?n:y,style:s,className:I.Utils.clsx(YS.root,a),onChange:(C,E)=>{Array.isArray(E)?(!c&&w(E[0]),i(E[0])):(!c&&w(E),i(E))},size:o||"medium"})},DN="_root_rzul6_1",AN={root:DN},ON=({label:o,size:n,value:s,style:i,onChange:a,className:c,customValue:h})=>{const[g,b]=ve.useState(!1);return f.jsx(D.FormControlLabel,{className:AN.root,control:f.jsx(D.Switch,{checked:h?s:g,style:i,className:c,onChange:$=>{h||b($.target.checked),a($.target.checked)},size:n||"medium"}),label:o??"all"})},RN=ve.memo(ON),MN="_root_135pm_1",NN={root:MN},LN=({value:o,style:n,onChange:s,className:i})=>f.jsx(D.TextField,{variant:"standard",id:"time",type:"time",onChange:a=>s(a.currentTarget.value),value:o,className:I.Utils.clsx(NN.root,i),fullWidth:!0,style:n,slotProps:{htmlInput:{step:300},inputLabel:{shrink:!0}}}),BN="_root_135pm_1",y$={root:BN},qy=[31,29,31,30,31,30,31,31,30,31,30,31],PN=({value:o,onChange:n,className:s,style:i})=>{const[a,c]=(o||"01.01").toString().split(".");let h=parseInt(c,10)||0,g=parseInt(a,10)||0;g>12?g=12:g<0&&(g=0),h>qy[g]?h=qy[g]:h<0&&(h=0);const b=[];for(let $=0;$n(`${$.target.value.toString().padStart(2,"0")}.${h.toString().padStart(2,"0")}`),value:g,children:[f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:0,children:I.I18n.t("Any month")},0),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:1,children:I.I18n.t("January")},1),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:2,children:I.I18n.t("February")},2),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:3,children:I.I18n.t("March")},3),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:4,children:I.I18n.t("April")},4),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:5,children:I.I18n.t("May")},5),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:6,children:I.I18n.t("June")},6),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:7,children:I.I18n.t("July")},7),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:8,children:I.I18n.t("August")},8),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:9,children:I.I18n.t("September")},9),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:10,children:I.I18n.t("October")},10),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:11,children:I.I18n.t("November")},11),f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:12,children:I.I18n.t("December")},12)]})}),f.jsx(D.FormControl,{variant:"standard",className:I.Utils.clsx(y$.root,s),style:i,children:f.jsxs(D.Select,{variant:"standard",className:I.Utils.clsx(y$.root,s),margin:"dense",label:I.I18n.t("Date"),onChange:$=>n(`${g.toString().padStart(2,"0")}.${$.target.value.toString().padStart(2,"0")}`),value:h,children:[f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:0,children:I.I18n.t("Any")},"A"),b.map($=>f.jsx(D.MenuItem,{style:{placeContent:"space-between"},value:$,children:$},$))]})})]})};let Yy;function jN(o){return Yy=Yy||I.I18n.getLanguage(),o&&typeof o=="object"?o[Yy]||o.en:o||""}function Dh(o){return o===null?"null":o===void 0?"undefined":Array.isArray(o)?o.join(", "):typeof o=="object"?JSON.stringify(o):o.toString()}const Ss={selectTriggers:0,addScheduleByDoubleClick:1,openTagsMenu:2,selectIntervalTag:3,selectActions:4,addActionPrintText:5,showJavascript:6,switchBackToRules:7,saveTheScript:8},FN=[{selector:".blocks-triggers",content:"Select triggers"},{selector:".block-TriggerScheduleBlock",content:"Double click to add the block"},{selector:".tag-card",content:"Open drop down menu"},{selector:".tag-card-interval",content:"Select interval"},{selector:".blocks-actions",content:"Select action blocks"},{selector:".block-ActionPrintText",content:"Double click to add the block"},{selector:".button-js-code",content:"Check the script"},{selector:".button-js-code",content:"Switch back to rules"},{selector:".button-save",content:"Save the script"}];class yn extends ve.Component{debugHideTimeout=null;lastObjectIdChange=0;enableSimulationProcessing=!1;lastDebugMessage=0;debugMessageTimeout=null;static getStaticData(){return{acceptedBy:"actions",name:"Not found",id:"ActionEmpty",icon:"Shuffle"}}static compile(n,s){return""}constructor(n,s){super(n),s||={};const i=n.settings||{tagCard:s.tagCardArray?typeof s.tagCardArray[0]!="string"?s.tagCardArray[0].title:s.tagCardArray[0]:""};!i.tagCard&&s.tagCardArray&&(i.tagCard=typeof s.tagCardArray[0]!="string"?s.tagCardArray[0].title:s.tagCardArray[0]),this.state={inputs:s.inputs||n.inputs||[],name:s.name||n.name||"",icon:s.icon||n.icon||"",adapter:s.adapter||n.adapter||"",helpDialog:s.helpDialog||n.helpDialog||"",tagCardArray:s.tagCardArray||[],openTagMenu:!1,openModal:!1,iconTag:!1,error:"",helpText:"",instanceSelectionOptions:[],instanceSelectionDef:"",hideAttributes:[],settings:i,debugMessage:null,enableSimulation:this.props.enableSimulation}}componentWillUnmount(){this.debugMessageTimeout&&(clearTimeout(this.debugMessageTimeout),this.debugMessageTimeout=null),this.debugHideTimeout&&(clearTimeout(this.debugHideTimeout),this.debugHideTimeout=null)}onTagChange(n,s,i,a,c){let h=!1;const g=JSON.parse(JSON.stringify(this.state.settings));this.state.inputs.forEach(b=>{const $=b.attr,y=b.defaultValue;$&&y!==void 0&&g[$]===void 0&&(h=!0,g[$]=y)}),h?(this.setState({settings:g},()=>s==null?void 0:s()),this.props.onChange(g)):s&&s()}onUpdate(){}onValueChanged(n,s){}renderText(n,s,i){const{className:a}=this.props,{attr:c,frontText:h,backText:g,nameBlock:b,name:$,doNotTranslate:y,doNotTranslateBack:w}=n;return f.jsxs(ve.Fragment,{children:[f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),children:[h&&f.jsx("div",{className:ot.frontText,children:y?h:I.I18n.t(h)}),f.jsx(Yl,{className:a,autoComplete:"off",label:jN($),variant:"outlined",size:"small",fullWidth:!0,value:s,onChange:i,customValue:!0}),g&&f.jsx("div",{className:ot.backText,children:w?g:I.I18n.t(g)})]}),b&&f.jsx("div",{className:ot.nameBlock,children:I.I18n.t(b)})]},c)}renderSwitch(n,s,i){const{className:a}=this.props,{attr:c,frontText:h,backText:g,nameBlock:b,doNotTranslate:$,doNotTranslateBack:y}=n;return f.jsxs("div",{children:[f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),children:[h&&f.jsx("div",{className:ot.frontText,children:$?h:I.I18n.t(h)}),f.jsx(RN,{className:a,label:"",customValue:!0,value:s,onChange:i}),g&&f.jsx("div",{className:ot.backText,children:y?g:I.I18n.t(g)})]}),b&&f.jsx("div",{className:ot.nameBlock,children:I.I18n.t(b)})]},c)}renderNameText({attr:n,signature:s,doNotTranslate:i,defaultValue:a},c){return f.jsx("div",{className:I.Utils.clsx(s?ot.displayItalic:ot.displayFlex,ot.blockMarginTop),children:c?i?c:I.I18n.t(c):i?a:I.I18n.t(a)},n)}renderNumber(n,s,i){const{className:a}=this.props,{settings:c}=this.state,{attr:h,backText:g,frontText:b,openCheckbox:$,doNotTranslate:y,doNotTranslateBack:w}=n;let T=!0;return $&&(T=typeof c.offset=="boolean"?c.offset:!0),T?f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),children:[b&&f.jsx("div",{className:ot.frontText,children:y?b:I.I18n.t(b)}),f.jsx(Yl,{className:I.Utils.clsx(a,n.className),fullWidth:!0,autoComplete:"off",label:n.noHelperText?"":"number",variant:"outlined",size:"small",type:"number",value:s,onChange:i,customValue:!0}),g&&f.jsx("div",{className:ot.backText,children:w?g:I.I18n.t(g)})]},h):null}renderColor(n,s,i){const{className:a}=this.props,{attr:c,backText:h,frontText:g,doNotTranslate:b,doNotTranslateBack:$}=n;return f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),children:[g&&f.jsx("div",{className:ot.frontText,children:b?g:I.I18n.t(g)}),f.jsx(Yl,{className:a,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",type:"color",value:s,onChange:i}),h&&f.jsx("div",{className:ot.backText,children:$?h:I.I18n.t(h)})]},c)}renderCheckbox(n,s,i){const{className:a}=this.props,{settings:c}=this.state,{attr:h,backText:g,frontText:b,defaultValue:$,doNotTranslate:y,doNotTranslateBack:w}=n;return f.jsxs("div",{className:ot.displayFlex,children:[b&&f.jsx("div",{className:ot.frontText,children:y?b:I.I18n.t(b)}),f.jsx(Nk,{className:a,size:"small",value:typeof c[h]=="boolean"?!!c[h]:!!$,customValue:!0,onChange:i}),g&&f.jsx("div",{onClick:()=>i(typeof c[h]=="boolean"?!c[h]:!$),className:ot.backText,children:w?g:I.I18n.t(g)})]},h)}renderSlider(n,s,i){const{className:a}=this.props,{attr:c,frontText:h,backText:g,nameBlock:b,min:$,max:y,step:w,unit:T,doNotTranslate:C,doNotTranslateBack:E}=n;return f.jsxs("div",{children:[f.jsxs("div",{className:ot.displayFlex,style:{marginRight:20},children:[h&&f.jsx("div",{className:ot.frontText,children:C?h:I.I18n.t(h)}),f.jsx(xN,{customValue:!0,min:$,max:y,step:w,unit:T,className:a,autoComplete:"off",label:"number",variant:"outlined",size:"small",value:s,onChange:k=>{console.log(k),i(k)}}),g&&f.jsx("div",{style:{marginLeft:20},className:ot.backText,children:E?g:I.I18n.t(g)})]}),b&&f.jsx("div",{className:ot.nameBlock,children:I.I18n.t(b)})]},c)}renderButton(n,s,i){const{className:a}=this.props,{attr:c,frontText:h,backText:g,doNotTranslate:b,doNotTranslateBack:$}=n;return f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),children:[h&&f.jsx("div",{className:ot.frontText,children:b?h:I.I18n.t(h)}),f.jsx(wf,{fullWidth:!0,value:s.toString(),className:a,onClick:()=>i(s)}),g&&f.jsx("div",{className:ot.backText,children:$?g:I.I18n.t(g)})]},c)}async findIcon(n){var s;if(!n)return null;if((s=n.common)!=null&&s.icon)return I.getSelectIdIcon(n,"../..");if(n.type==="state"||n.type==="channel"){const i=n._id.split(".");i.pop();const a=i.join(".");try{const c=await this.props.socket.getObject(a);return await this.findIcon(c)}catch{return null}}return null}renderObjectID(n,s,i){const{attr:a,openCheckbox:c,checkReadOnly:h}=n,{settings:g}=this.state,b=this.state[`showSelectId${a}`],{className:$,socket:y,style:w}=this.props;let T=!0;c&&(T=typeof g.offset=="boolean"?g.offset:!0);const C=g[a],E=C?this.state[C]:void 0;return C&&!E&&E!==!1&&setTimeout(async k=>{var B;const A=await y.getObject(s),P=await this.findIcon(A),N={[k]:A||!1,[`${k}___icon`]:P,error:h&&this.lastObjectIdChange&&Date.now()-this.lastObjectIdChange<1e3&&((B=A==null?void 0:A.common)==null?void 0:B.write)===!1?I.I18n.t("Read only ID selected: %s",g[k]):""};this.setState(N)},0,C),T?f.jsxs("div",{className:ot.blockMarginTop,children:[f.jsxs("div",{className:ot.displayFlex,children:[n.title?f.jsx("div",{children:I.I18n.t(n.title)}):null,f.jsx(Yl,{className:$,style:w,autoComplete:"off",fullWidth:!0,disabled:!0,variant:"outlined",size:"small",value:s,customValue:!0}),f.jsx(wf,{icon:this.state[`${C}___icon`],square:!0,style:{...w||void 0,marginLeft:7},value:"...",className:$,onClick:()=>{const k={};k[`showSelectId${a}`]=!0,this.setState(k)}})]}),E?f.jsx("div",{className:I.Utils.clsx(ot.nameBlock,ot.displayItalic),children:I.Utils.getObjectNameFromObj(E,I.I18n.getLanguage())}):null,b?f.jsx(I.DialogSelectID,{theme:this.props.theme,imagePrefix:"../..",dialogName:"javascript",themeType:I.Utils.getThemeName(),socket:y,selected:s,onClose:()=>{const k={};k[`showSelectId${a}`]=!1,this.setState(k)},onOk:(k,A)=>{const P={};P[`showSelectId${a}`]=!1;const N=Array.isArray(k)?k[0]:k;this.setState(P,async()=>{var S,H,q,se,ee,K,Y,X,ce,W;const B=N?await y.getObject(N):void 0;this.lastObjectIdChange=Date.now(),i({[a]:k,[`${a}Role`]:(S=B==null?void 0:B.common)==null?void 0:S.role,[`${a}Type`]:(H=B==null?void 0:B.common)==null?void 0:H.type,[`${a}Unit`]:(q=B==null?void 0:B.common)==null?void 0:q.unit,[`${a}States`]:(se=B==null?void 0:B.common)==null?void 0:se.states,[`${a}Min`]:(ee=B==null?void 0:B.common)==null?void 0:ee.min,[`${a}Max`]:(K=B==null?void 0:B.common)==null?void 0:K.max,[`${a}Step`]:(Y=B==null?void 0:B.common)==null?void 0:Y.step,[`${a}Def`]:(X=B==null?void 0:B.common)==null?void 0:X.def,[`${a}Write`]:(ce=B==null?void 0:B.common)==null?void 0:ce.write,[`${a}Read`]:(W=B==null?void 0:B.common)==null?void 0:W.read},()=>this.props.setOnUpdate&&this.props.setOnUpdate(!0))})}}):null]},a):null}renderIconTag(){return f.jsx("div",{className:ot.iconTag,onClick:n=>{this.state.settings.tagCard&&(this.state.tagCardArray.length<3?this.onChangeTag():this.setState({openTagMenu:n.currentTarget}))},children:this.state.settings.tagCard})}renderTime(n,s,i){const{attr:a,backText:c,frontText:h,doNotTranslate:g,doNotTranslateBack:b}=n;return f.jsxs("div",{className:ot.displayFlex,style:{whiteSpace:"nowrap"},children:[h&&f.jsx("div",{className:ot.frontText,children:g?h:I.I18n.t(h)}),f.jsx(LN,{value:s,onChange:i}),c&&f.jsx("div",{className:ot.backText,children:b?c:I.I18n.t(c)})]},a)}renderSelect(n,s,i){const{className:a,style:c}=this.props,{name:h,options:g,frontText:b,backText:$,attr:y,multiple:w,doNotTranslate:T,doNotTranslate2:C,doNotTranslateBack:E}=n;return f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),style:{whiteSpace:"nowrap"},children:[b&&f.jsx("div",{className:ot.frontText,children:I.I18n.t(b)}),f.jsx(kN,{attr:y,doNotTranslate:T,doNotTranslate2:C,title:h,className:a,style:c,options:g,value:s,onChange:i,multiple:w,customValue:!0}),$&&f.jsx("div",{className:ot.backText,children:E?$:I.I18n.t($)})]},y)}renderInstance(n,s,i){const{socket:a}=this.props,{name:c,frontText:h,backText:g,attr:b,adapter:$,doNotTranslate:y,doNotTranslateBack:w}=n;return this.state.hideAttributes.includes(b)?null:f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),style:{whiteSpace:"nowrap"},children:[h&&f.jsx("div",{className:ot.frontText,children:y?h:I.I18n.t(h)}),f.jsx(_N,{attr:b,socket:a,adapter:$,title:c,value:s,onChange:T=>{i(Array.isArray(T)?T[0]:T)},customValue:!0,onInstanceHide:T=>this.setState({hideAttributes:[...this.state.hideAttributes,b]},()=>i(T))}),g&&f.jsx("div",{className:ot.backText,children:w?g:I.I18n.t(g)})]},b)}renderDialog(n){const{onShowDialog:s,frontText:i,backText:a,attr:c,icon:h,doNotTranslate:g,doNotTranslateBack:b}=n;return f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),style:{whiteSpace:"nowrap"},children:[i&&f.jsx("div",{className:ot.frontText,children:g?i:I.I18n.t(i)}),f.jsx($u,{iconName:h,className:I.Utils.clsx(ot.iconDialog),onClick:()=>s&&s()}),a&&f.jsx("div",{className:ot.backText,children:b?a:I.I18n.t(a)})]},c)}renderModalInput(n,s,i){const{openModal:a}=this.state,{className:c}=this.props,{attr:h,nameBlock:g,frontText:b,backText:$,noTextEdit:y,doNotTranslate:w,doNotTranslateBack:T}=n;return f.jsxs("div",{children:[f.jsxs("div",{className:I.Utils.clsx(ot.displayFlex,ot.blockMarginTop),children:[b&&f.jsx("div",{className:ot.frontText,children:w?b:I.I18n.t(b)}),f.jsx(Yl,{disabled:!!y,className:c,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",value:s,onChange:i,customValue:!0}),f.jsx(wf,{square:!0,style:{marginLeft:5},value:"...",className:c,onClick:()=>this.setState({openModal:!0})}),$&&f.jsx("div",{className:ot.backText,children:T?$:I.I18n.t($)})]}),a?f.jsx(z_,{onApply:C=>this.setState({openModal:!1},()=>C!=null&&i(C)),onClose:()=>this.setState({openModal:!1}),defaultValue:s,textInput:!0}):null,g&&f.jsx("div",{className:ot.nameBlock,children:I.I18n.t(g)})]},h)}renderDate(n,s,i){const{attr:a,backText:c,frontText:h,doNotTranslate:g,doNotTranslateBack:b}=n;return f.jsxs("div",{className:ot.displayFlex,style:{whiteSpace:"nowrap"},children:[h&&f.jsx("div",{className:ot.frontText,children:g?h:I.I18n.t(h)}),f.jsx(PN,{value:s,onChange:i}),c&&f.jsx("div",{className:ot.backText,children:b?c:I.I18n.t(c)})]},a)}static getReplacesInText(n){var i;let s="";return(i=n.trigger)!=null&&i.oidType?s=".replace(/%s/g, obj.state.val).replace(/%id/g, obj.id).replace(/%name/g, obj.common && obj.common.name).replace(/%old/g, obj.oldState.val)":n.conditionsStates.length&&(s=`.replace(/%s/g, ${n.conditionsStates[0].name}).replace(/%id/g, "${n.conditionsStates[0].id}")`),s}renderTags(){const{tagCardArray:n,openTagMenu:s}=this.state,{tagCard:i}=this.state.settings;let a=i!=="="&&i!=="<>"&&i!==">="&&i!=="()"&&i!=="."&&i!=="<="&&i!=="<"&&i!==">"&&i?I.I18n.t(i):i;return n.length>=3&&(a=f.jsxs("div",{children:[f.jsx("div",{"aria-controls":"simple-menu","aria-haspopup":"true",onClick:c=>{this.setState({openTagMenu:c.currentTarget},()=>{this.props.isTourOpen&&this.props.tourStep===Ss.openTagsMenu&&setTimeout(()=>this.props.setTourStep&&this.props.setTourStep(Ss.selectIntervalTag),300)})},children:a}),f.jsx(D.Menu,{id:"simple-menu",anchorEl:s,keepMounted:!0,open:!!s,onClose:()=>this.setState({openTagMenu:null}),children:n.map((c,h)=>{let g;return typeof c!="string"?g=c.title:g=c,f.jsxs(D.MenuItem,{selected:g===i,className:`tag-card-${g}`,style:{placeContent:"space-between"},onClick:b=>{b.stopPropagation(),this.props.isTourOpen&&(this.props.tourStep===Ss.openTagsMenu||this.props.tourStep===Ss.selectIntervalTag)&&g==="interval"&&setTimeout(()=>{var y,w;return(w=(y=this.props).setTourStep)==null?void 0:w.call(y,Ss.selectActions)},500);const $=JSON.parse(JSON.stringify(this.state.settings));$.tagCard=g,this.setState({openTagMenu:null,settings:$},()=>{this.props.onChange(this.state.settings),this.onTagChange(this.state.settings.tagCard)})},children:[g.search(/>|<|<>|<=|>=|=/)!==-1?g:I.I18n.t(g),typeof c!="string"&&c.title2&&f.jsx("div",{style:{marginLeft:4},children:I.I18n.t(c.title2)})]},`${g}_${h}`)})})]})),a}getData(){return{acceptedBy:"triggers",name:"",id:""}}onChangeTag(){const{tagCardArray:n,settings:s,settings:{tagCard:i}}=this.state;let a;if(typeof n[0]!="string"?a=n.map(c=>c.title):a=[...n],i&&a.length<3){const c={...s},h=a[(a.indexOf(i)+1)%a.length];c.tagCard=h,this.setState({settings:c},()=>{this.props.onChange(c),this.onTagChange(h)})}}componentDidMount(){this.onTagChange()}componentDidUpdate(){this.props.acceptedBy!=="triggers"&&this.props.onUpdate&&setTimeout(()=>this.onUpdate(),0)}onChangeInput(n){return(s,i,a)=>{const c=JSON.parse(JSON.stringify(this.state.settings));typeof s=="object"&&(!i||typeof i=="function")?(Object.keys(s).forEach(h=>c[h]=s[h]),typeof i=="function"&&(a=i,i=void 0)):c[i||n]=s,c.id=this.getData().id,c._id=this.props._id,this.setState({settings:c},()=>{this.onValueChanged(s,i||n),this.props.onChange(c),a==null||a()})}}renderSpecific(){return null}renderDebug(n){return""}renderDebugInfo(){return this.state.debugMessage?f.jsx("div",{className:ot.debugInfo,style:{opacity:1,height:22,bottom:-22},children:this.renderDebug?this.renderDebug(this.state.debugMessage):I.I18n.t("executed")},this.state.debugMessage.ts):null}renderCron(n,s,i){return null}renderWizard(n,s,i){return null}renderWriteState(){return null}renderInputElement(n,s){const{nameRender:i,defaultValue:a,attr:c}=n,{settings:h}=this.state;let g=c?h[c]:void 0;switch(g===void 0&&(g=a),i){case"renderTime":return c?this.renderTime(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderTime")},`invalid_${s}`);case"renderNameText":return this.renderNameText(n,a);case"renderSelect":return c?this.renderSelect(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderSelect")},`invalid_${s}`);case"renderModalInput":return c?this.renderModalInput(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderModalInput")},`invalid_${s}`);case"renderObjectID":return c?this.renderObjectID(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderObjectID")},`invalid_${s}`);case"renderDialog":return c?this.renderDialog(n):f.jsx("div",{children:I.I18n.t("Invalid renderDialog")},`invalid_${s}`);case"renderInstance":return c?this.renderInstance(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderInstance")},`invalid_${s}`);case"renderText":return c?this.renderText(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderText")},`invalid_${s}`);case"renderSlider":return c?this.renderSlider(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderSlider")},`invalid_${s}`);case"renderCheckbox":return c?this.renderCheckbox(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderCheckbox")},`invalid_${s}`);case"renderButton":return c?this.renderButton(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderButton")},`invalid_${s}`);case"renderColor":return c?this.renderColor(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderColor")},`invalid_${s}`);case"renderSwitch":return c?this.renderSwitch(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderSwitch")},`invalid_${s}`);case"renderDate":return c?this.renderDate(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderDate")},`invalid_${s}`);case"renderCron":return c?this.renderCron(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderCron")},`invalid_${s}`);case"renderWizard":return c?this.renderWizard(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderWizard")},`invalid_${s}`);case"renderWriteState":return this.renderWriteState();case"renderNumber":return c?this.renderNumber(n,g,this.onChangeInput(c)):f.jsx("div",{children:I.I18n.t("Invalid renderNumber")},`invalid_${s}`);default:return this[i]?this[i](n,g,c?this.onChangeInput(c):null):f.jsx("div",{children:I.I18n.t("Invalid input type: %s",i)},`invalid_${s}`)}}render(){var T;const{inputs:n,name:s,icon:i,iconTag:a,settings:c,adapter:h,settings:{tagCard:g},helpDialog:b}=this.state,{socket:$,notFound:y}=this.props;this.state.settings&&!this.state.settings.tagCard&&((T=this.state.tagCardArray)!=null&&T.length)&&setTimeout(()=>{const C=JSON.parse(JSON.stringify(this.state.settings));C.tagCard=typeof this.state.tagCardArray[0]!="string"?this.state.tagCardArray[0].title:this.state.tagCardArray[0],this.setState({settings:C})},50),this.state.enableSimulation!==this.props.enableSimulation&&!this.enableSimulationProcessing&&(this.enableSimulationProcessing=!0,setTimeout(()=>{this.setState({enableSimulation:this.props.enableSimulation},()=>{this.enableSimulationProcessing=!1})},50));let w;if(this.props.onDebugMessage)for(let C=this.props.onDebugMessage.length-1;C>=0;C--){const E=this.props.onDebugMessage[C];if(E.blockId===this.props._id&&E.ts>this.lastDebugMessage&&E.ts>Date.now()-1e3){w=E;break}}return w&&(this.lastDebugMessage=w.ts,this.debugMessageTimeout&&clearTimeout(this.debugMessageTimeout),this.debugHideTimeout&&(clearTimeout(this.debugHideTimeout),this.debugHideTimeout=null),this.debugMessageTimeout=setTimeout(C=>{const E=JSON.parse(C),k=E.hideTimeout||5e3;this.debugMessageTimeout=null,this.setState({debugMessage:E},()=>{this.debugHideTimeout&&clearTimeout(this.debugHideTimeout),this.debugHideTimeout=setTimeout(()=>{this.debugHideTimeout=null,this.setState({debugMessage:null})},k)})},50,JSON.stringify(w))),f.jsxs(ve.Fragment,{children:[a?this.renderIconTag():f.jsx($u,{iconName:i,className:I.Utils.clsx(ot.iconThemCard,g&&this.state.tagCardArray.length&&ot.iconThemCardSelectable),adapter:h,socket:$,onClick:C=>{g&&(this.state.tagCardArray.length<3?this.onChangeTag():this.setState({openTagMenu:C.currentTarget}))}}),f.jsxs("div",{className:ot.blockName,children:[f.jsxs("span",{className:ot.nameCard,children:[I.I18n.t(s),y?I.I18n.t("%s not found",c.id):"",b?f.jsx(D.IconButton,{className:ot.iconHelp,size:"small",onClick:()=>this.setState({helpText:I.I18n.t(b)}),children:f.jsx(dw,{})}):null]}),n.map((C,E)=>this.renderInputElement(C,E))]}),g&&f.jsx("div",{className:ot.controlMenuTop,style:{opacity:1,height:22,top:-22},children:f.jsx("div",{onClick:()=>this.onChangeTag(),className:I.Utils.clsx(ot.tagCard,"tag-card"),children:this.renderTags()})}),this.renderDebugInfo(),this.state.error?f.jsx(I.DialogError,{title:I.I18n.t("Warning"),text:this.state.error,onClose:()=>this.setState({error:""})}):null,this.state.helpText?f.jsx(I.DialogMessage,{title:I.I18n.t("Instructions"),text:this.state.helpText,onClose:()=>this.setState({helpText:""})}):null,this.renderSpecific()]})}}const XS={en:{name:"Google - English",engine:"google",params:[]},de:{name:"Google - Deutsch",engine:"google",params:[]},ru:{name:"Google - Русский",engine:"google",params:[]},it:{name:"Google - Italiano",engine:"google",params:[]},es:{name:"Google - Espaniol",engine:"google",params:[]},fr:{name:"Google - Français",engine:"google",params:[]},ru_YA:{name:"Yandex - Русский",engine:"yandex",params:["key","voice","emotion","ill","drunk","robot"],voice:["jane","zahar"],emotion:["none","good","neutral","evil","mixed"]},ru_YA_CLOUD:{name:"Yandex Cloud - Русский",engine:"yandexCloud",params:["key","folderID","voice","emotion"],voice:["alyss","oksana","jane","zahar"],emotion:["good","neutral","evil"]},"en-US":{name:"PicoTTS - Englisch US",engine:"PicoTTS",params:[]},"en-GB":{name:"PicoTTS - Englisch GB",engine:"PicoTTS",params:[]},"de-DE":{name:"PicoTTS - Deutsch",engine:"PicoTTS",params:[]},"it-IT":{name:"PicoTTS - Italiano",engine:"PicoTTS",params:[]},"es-ES":{name:"PicoTTS - Espaniol",engine:"PicoTTS",params:[]},"fr-FR":{name:"PicoTTS - Français",engine:"PicoTTS",params:[]},"ru-RU_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"ru-RU",ename:"Tatyana",ssml:!0,name:"Cloud - Русский - Татьяна"},"ru-RU_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"ru-RU",ename:"Maxim",ssml:!0,name:"Cloud - Русский - Максим"},"de-DE_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"de-DE",ename:"Marlene",ssml:!0,name:"Cloud - Deutsch - Marlene"},"de-DE_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"de-DE",ename:"Hans",ssml:!0,name:"Cloud - Deutsch - Hans"},"en-US_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Salli",ssml:!0,name:"Cloud - en-US - Female - Salli"},"en-US_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Joey",ssml:!0,name:"Cloud - en-US - Male - Joey"},"da-DK_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"da-DK",ename:"Naja",ssml:!0,name:"Cloud - da-DK - Female - Naja"},"da-DK_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"da-DK",ename:"Mads",ssml:!0,name:"Cloud - da-DK - Male - Mads"},"en-AU_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-AU",ename:"Nicole",ssml:!0,name:"Cloud - en-AU - Female - Nicole"},"en-AU_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-AU",ename:"Russell",ssml:!0,name:"Cloud - en-AU - Male - Russell"},"en-GB_CLOUD_Female_Amy":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Amy",ssml:!0,name:"Cloud - en-GB - Female - Amy"},"en-GB_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Brian",ssml:!0,name:"Cloud - en-GB - Male - Brian"},"en-GB_CLOUD_Female_Emma":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Emma",ssml:!0,name:"Cloud - en-GB - Female - Emma"},"en-GB-WLS_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB-WLS",ename:"Gwyneth",ssml:!0,name:"Cloud - en-GB-WLS - Female - Gwyneth"},"en-GB-WLS_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-GB-WLS",ename:"Geraint",ssml:!0,name:"Cloud - en-GB-WLS - Male - Geraint"},"cy-GB_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"cy-GB",ename:"Gwyneth",ssml:!0,name:"Cloud - cy-GB - Female - Gwyneth"},"cy-GB_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"cy-GB",ename:"Geraint",ssml:!0,name:"Cloud - cy-GB - Male - Geraint"},"en-IN_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-IN",ename:"Raveena",ssml:!0,name:"Cloud - en-IN - Female - Raveena"},"en-US_CLOUD_Male_Chipmunk":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Chipmunk",ssml:!0,name:"Cloud - en-US - Male - Chipmunk"},"en-US_CLOUD_Male_Eric":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Eric",ssml:!0,name:"Cloud - en-US - Male - Eric"},"en-US_CLOUD_Female_Ivy":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Ivy",ssml:!0,name:"Cloud - en-US - Female - Ivy"},"en-US_CLOUD_Female_Jennifer":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Jennifer",ssml:!0,name:"Cloud - en-US - Female - Jennifer"},"en-US_CLOUD_Male_Justin":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Justin",ssml:!0,name:"Cloud - en-US - Male - Justin"},"en-US_CLOUD_Female_Kendra":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Kendra",ssml:!0,name:"Cloud - en-US - Female - Kendra"},"en-US_CLOUD_Female_Kimberly":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Kimberly",ssml:!0,name:"Cloud - en-US - Female - Kimberly"},"es-ES_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"es-ES",ename:"Conchita",ssml:!0,name:"Cloud - es-ES - Female - Conchita"},"es-ES_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"es-ES",ename:"Enrique",ssml:!0,name:"Cloud - es-ES - Male - Enrique"},"es-US_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"es-US",ename:"Penelope",ssml:!0,name:"Cloud - es-US - Female - Penelope"},"es-US_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"es-US",ename:"Miguel",ssml:!0,name:"Cloud - es-US - Male - Miguel"},"fr-CA_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"fr-CA",ename:"Chantal",ssml:!0,name:"Cloud - fr-CA - Female - Chantal"},"fr-FR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"fr-FR",ename:"Celine",ssml:!0,name:"Cloud - fr-FR - Female - Celine"},"fr-FR_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"fr-FR",ename:"Mathieu",ssml:!0,name:"Cloud - fr-FR - Male - Mathieu"},"is-IS_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"is-IS",ename:"Dora",ssml:!0,name:"Cloud - is-IS - Female - Dora"},"is-IS_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"is-IS",ename:"Karl",ssml:!0,name:"Cloud - is-IS - Male - Karl"},"it-IT_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"it-IT",ename:"Carla",ssml:!0,name:"Cloud - it-IT - Female - Carla"},"it-IT_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"it-IT",ename:"Giorgio",ssml:!0,name:"Cloud - it-IT - Male - Giorgio"},"nb-NO_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"nb-NO",ename:"Liv",ssml:!0,name:"Cloud - nb-NO - Female - Liv"},"nl-NL_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"nl-NL",ename:"Lotte",ssml:!0,name:"Cloud - nl-NL - Female - Lotte"},"nl-NL_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"nl-NL",ename:"Ruben",ssml:!0,name:"Cloud - nl-NL - Male - Ruben"},"pl-PL_CLOUD_Female_Agnieszka":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Agnieszka",ssml:!0,name:"Cloud - pl-PL - Female - Agnieszka"},"pl-PL_CLOUD_Male_Jacek":{gender:"Male",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Jacek",ssml:!0,name:"Cloud - pl-PL - Male - Jacek"},"pl-PL_CLOUD_Female_Ewa":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Ewa",ssml:!0,name:"Cloud - pl-PL - Female - Ewa"},"pl-PL_CLOUD_Male_Jan":{gender:"Male",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Jan",ssml:!0,name:"Cloud - pl-PL - Male - Jan"},"pl-PL_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Maja",ssml:!0,name:"Cloud - pl-PL - Female - Maja"},"pt-BR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pt-BR",ename:"Vitoria",ssml:!0,name:"Cloud - pt-BR - Female - Vitoria"},"pt-BR_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"pt-BR",ename:"Ricardo",ssml:!0,name:"Cloud - pt-BR - Male - Ricardo"},"pt-PT_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"pt-PT",ename:"Cristiano",ssml:!0,name:"Cloud - pt-PT - Male - Cristiano"},"pt-PT_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pt-PT",ename:"Ines",ssml:!0,name:"Cloud - pt-PT - Female - Ines"},"ro-RO_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"ro-RO",ename:"Carmen",ssml:!0,name:"Cloud - ro-RO - Female - Carmen"},"sv-SE_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"sv-SE",ename:"Astrid",ssml:!0,name:"Cloud - sv-SE - Female - Astrid"},"tr-TR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"tr-TR",ename:"Filiz",ssml:!0,name:"Cloud - tr-TR - Female - Filiz"},"ru-RU_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"ru-RU",ename:"Tatyana",ssml:!0,name:"AWS Polly - Русский - Татьяна"},"ru-RU_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"ru-RU",ename:"Maxim",ssml:!0,name:"AWS Polly - Русский - Максим"},"de-DE_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Marlene",ssml:!0,name:"AWS Polly - Deutsch - Marlene"},"de-DE_AP_Female_Vicky":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Vicky",ssml:!0,name:"AWS Polly - Deutsch - Vicky"},"de-DE_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Hans",ssml:!0,name:"AWS Polly - Deutsch - Hans"},"en-US_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Salli",ssml:!0,name:"AWS Polly - en-US - Female - Salli"},"en-US_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Joey",ssml:!0,name:"AWS Polly - en-US - Male - Joey"},"da-DK_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"da-DK",ename:"Naja",ssml:!0,name:"AWS Polly - da-DK - Female - Naja"},"da-DK_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"da-DK",ename:"Mads",ssml:!0,name:"AWS Polly - da-DK - Male - Mads"},"en-AU_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-AU",ename:"Nicole",ssml:!0,name:"AWS Polly - en-AU - Female - Nicole"},"en-AU_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-AU",ename:"Russell",ssml:!0,name:"AWS Polly - en-AU - Male - Russell"},"en-GB_AP_Female_Amy":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Amy",ssml:!0,name:"AWS Polly - en-GB - Female - Amy"},"en-GB_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Brian",ssml:!0,name:"AWS Polly - en-GB - Male - Brian"},"en-GB_AP_Female_Emma":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Emma",ssml:!0,name:"AWS Polly - en-GB - Female - Emma"},"en-GB-WLS_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB-WLS",ename:"Gwyneth",ssml:!0,name:"AWS Polly - en-GB-WLS - Female - Gwyneth"},"en-GB-WLS_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB-WLS",ename:"Geraint",ssml:!0,name:"AWS Polly - en-GB-WLS - Male - Geraint"},"cy-GB_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"cy-GB",ename:"Gwyneth",ssml:!0,name:"AWS Polly - cy-GB - Female - Gwyneth"},"cy-GB_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"cy-GB",ename:"Geraint",ssml:!0,name:"AWS Polly - cy-GB - Male - Geraint"},"en-IN_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-IN",ename:"Raveena",ssml:!0,name:"AWS Polly - en-IN - Female - Raveena"},"en-US_AP_Male_Chipmunk":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Chipmunk",ssml:!0,name:"AWS Polly - en-US - Male - Chipmunk"},"en-US_AP_Male_Eric":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Eric",ssml:!0,name:"AWS Polly - en-US - Male - Eric"},"en-US_AP_Female_Ivy":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Ivy",ssml:!0,name:"AWS Polly - en-US - Female - Ivy"},"en-US_AP_Female_Jennifer":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Jennifer",ssml:!0,name:"AWS Polly - en-US - Female - Jennifer"},"en-US_AP_Male_Justin":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Justin",ssml:!0,name:"AWS Polly - en-US - Male - Justin"},"en-US_AP_Female_Kendra":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Kendra",ssml:!0,name:"AWS Polly - en-US - Female - Kendra"},"en-US_AP_Female_Kimberly":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Kimberly",ssml:!0,name:"AWS Polly - en-US - Female - Kimberly"},"es-ES_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"es-ES",ename:"Conchita",ssml:!0,name:"AWS Polly - es-ES - Female - Conchita"},"es-ES_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"es-ES",ename:"Enrique",ssml:!0,name:"AWS Polly - es-ES - Male - Enrique"},"es-US_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"es-US",ename:"Penelope",ssml:!0,name:"AWS Polly - es-US - Female - Penelope"},"es-US_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"es-US",ename:"Miguel",ssml:!0,name:"AWS Polly - es-US - Male - Miguel"},"fr-CA_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-CA",ename:"Chantal",ssml:!0,name:"AWS Polly - fr-CA - Female - Chantal"},"fr-FR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-FR",ename:"Celine",ssml:!0,name:"AWS Polly - fr-FR - Female - Celine"},"fr-FR_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-FR",ename:"Mathieu",ssml:!0,name:"AWS Polly - fr-FR - Male - Mathieu"},"is-IS_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"is-IS",ename:"Dora",ssml:!0,name:"AWS Polly - is-IS - Female - Dora"},"is-IS_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"is-IS",ename:"Karl",ssml:!0,name:"AWS Polly - is-IS - Male - Karl"},"it-IT_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"it-IT",ename:"Carla",ssml:!0,name:"AWS Polly - it-IT - Female - Carla"},"it-IT_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"it-IT",ename:"Giorgio",ssml:!0,name:"AWS Polly - it-IT - Male - Giorgio"},"nb-NO_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"nb-NO",ename:"Liv",ssml:!0,name:"AWS Polly - nb-NO - Female - Liv"},"nl-NL_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"nl-NL",ename:"Lotte",ssml:!0,name:"AWS Polly - nl-NL - Female - Lotte"},"nl-NL_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"nl-NL",ename:"Ruben",ssml:!0,name:"AWS Polly - nl-NL - Male - Ruben"},"pl-PL_AP_Female_Agnieszka":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Agnieszka",ssml:!0,name:"AWS Polly - pl-PL - Female - Agnieszka"},"pl-PL_AP_Male_Jacek":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Jacek",ssml:!0,name:"AWS Polly - pl-PL - Male - Jacek"},"pl-PL_AP_Female_Ewa":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Ewa",ssml:!0,name:"AWS Polly - pl-PL - Female - Ewa"},"pl-PL_AP_Male_Jan":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Jan",ssml:!0,name:"AWS Polly - pl-PL - Male - Jan"},"pl-PL_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Maja",ssml:!0,name:"AWS Polly - pl-PL - Female - Maja"},"pt-BR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-BR",ename:"Vitoria",ssml:!0,name:"AWS Polly - pt-BR - Female - Vitoria"},"pt-BR_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-BR",ename:"Ricardo",ssml:!0,name:"AWS Polly - pt-BR - Male - Ricardo"},"pt-PT_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-PT",ename:"Cristiano",ssml:!0,name:"AWS Polly - pt-PT - Male - Cristiano"},"pt-PT_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-PT",ename:"Ines",ssml:!0,name:"AWS Polly - pt-PT - Female - Ines"},"ro-RO_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"ro-RO",ename:"Carmen",ssml:!0,name:"AWS Polly - ro-RO - Female - Carmen"},"sv-SE_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"sv-SE",ename:"Astrid",ssml:!0,name:"AWS Polly - sv-SE - Female - Astrid"},"tr-TR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"tr-TR",ename:"Filiz",ssml:!0,name:"AWS Polly - tr-TR - Female - Filiz"}};class sv extends yn{constructor(n){super(n,sv.getStaticData())}static compile(n,s){return n.text?`// Sayit ${n.text||""} - const subActionVar${n._id} = "${n.language&&n.language!=="_"?`${n.language};`:""}${n.volume?`${n.volume};`:""}${(n.text||"").replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}; - _sendToFrontEnd(${n._id}, {text: subActionVar${n._id}}); - await setStateAsync("${n.instance}.tts.text", subActionVar${n._id});`:`// no text defined -_sendToFrontEnd(${n._id}, {text: 'No text defined'});`}renderDebug(n){return`${I.I18n.t("Say:")} ${n.data.text}`}onTagChange(){const n=I.I18n.getLanguage(),i=Object.keys(XS).filter(a=>a.startsWith(n)).map(a=>({title:XS[a].name,value:a}));i.unshift({title:"Default",value:"_"}),this.setState({inputs:[{attr:"instance",nameRender:"renderInstance",adapter:"sayit",defaultValue:"sayit.0",frontText:"Instance:"},{nameRender:"renderSelect",frontText:"Language:",options:i,defaultValue:"_",attr:"language"},{nameRender:"renderNameText",defaultValue:"Volume",attr:"textVol"},{nameRender:"renderSlider",attr:"volume",defaultValue:100,min:0,max:100},{attr:"text",nameRender:"renderModalInput",defaultValue:"Hallo",nameBlock:"",frontText:"Text:"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Say It",id:"ActionSayText",adapter:"sayit",title:"Say some text via sayit adapter",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return sv.getStaticData()}}class rv extends yn{constructor(n){super(n,rv.getStaticData())}static compile(n,s){const i=(n.text||"").replace(/"/g,'\\"');return i?`// Pushover ${n.text||""} - const subActionVar${n._id} = "${i}"${yn.getReplacesInText(s)}; - _sendToFrontEnd(${n._id}, {text: subActionVar${n._id}}); - sendTo("${n.instance}", "send", { - message: subActionVar${n._id}, - title: "${(n.title||"").replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}, - sound: "${n.sound}", - priority: ${n.priority} - });`:`// no text defined -_sendToFrontEnd(${n._id}, {text: 'No text defined'});`}renderDebug(n){return`Sent: ${n.data.text}`}onTagChange(){this.setState({inputs:[{nameRender:"renderInstance",adapter:"pushover",frontText:"Instance:",defaultValue:"pushover.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"title",defaultValue:"ioBroker",frontText:"Title:"},{nameRender:"renderSelect",attr:"sound",defaultValue:"magic",frontText:"Sound:",doNotTranslate:!0,options:[{value:"pushover",title:"pushover"},{value:"bike",title:"bike"},{value:"bugle",title:"bugle"},{value:"cashregister",title:"cashregister"},{value:"classical",title:"classical"},{value:"cosmic",title:"cosmic"},{value:"falling",title:"falling"},{value:"gamelan",title:"gamelan"},{value:"incoming",title:"incoming"},{value:"intermission",title:"intermission"},{value:"magic",title:"magic"},{value:"mechanical",title:"mechanical"},{value:"pianobar",title:"pianobar"},{value:"siren",title:"siren"},{value:"spacealarm",title:"spacealarm"},{value:"tugboat",title:"tugboat"},{value:"alien",title:"alien"},{value:"climb",title:"climb"},{value:"persistent",title:"persistent"},{value:"echo",title:"echo"},{value:"updown",title:"updown"},{value:"none",title:"none"}]},{nameRender:"renderSelect",attr:"priority",defaultValue:-1,frontText:"Priority:",options:[{value:-1,title:"quiet"},{value:0,title:"normal"},{value:1,title:"high-priority"},{value:2,title:"acknowledgment"}]}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Pushover",id:"ActionPushover",adapter:"pushover",title:"Sends message via pushover",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return rv.getStaticData()}}class iv extends yn{constructor(n){super(n,iv.getStaticData())}static compile(n,s){const i=(n.text||"").replace(/"/g,'\\"');return i?`// whatsapp ${i||""} - const subActionVar${n._id} = "${(i||"").replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}; - _sendToFrontEnd(${n._id}, {text: subActionVar${n._id}}); - sendTo("${n.instance}", "send", {text: subActionVar${n._id}${n.phone?`, phone: "${n.phone.replace(/"/g,'\\"')}"`:""}});`:`// no text defined -_sendToFrontEnd(${n._id}, {text: 'No text defined'});`}renderDebug(n){return`${I.I18n.t("Sent:")} ${n.data.text}`}onTagChange(){this.setState({inputs:[{nameRender:"renderInstance",adapter:"whatsapp-cmb",frontText:"Instance:",defaultValue:"whatsapp-cmb.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"phone",defaultValue:"",frontText:"Phone:",backText:"(optional)"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Whatsapp-cmb",id:"ActionWhatsappcmb",adapter:"whatsapp-cmb",title:"Sends message via whatsapp-cmb",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return iv.getStaticData()}}class ov extends yn{constructor(n){super(n,ov.getStaticData())}static compile(n,s){const i=(n.text||"").replace(/"/g,'\\"');return i?`// Pushsafer ${n.text||""} - const subActionVar${n._id} = "${i}"${yn.getReplacesInText(s)}; - _sendToFrontEnd(${n._id}, {text: subActionVar${n._id}}); - sendTo("${n.instance}", "send", { - message: subActionVar${n._id}, - title: "${(n.title||"").replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}, - ${n.sound&&n.sound!=="_"?`sound: "${n.sound}",`:""} - priority: ${n.priority}, - ${n.vibration&&n.vibration!=="_"?`vibration: ${n.vibration},`:""} - });`:`// no text defined -_sendToFrontEnd(${n._id}, {text: 'No text defined'});`}renderDebug(n){return`Sent: ${n.data.text}`}onTagChange(){this.setState({inputs:[{nameRender:"renderInstance",adapter:"pushsafer",frontText:"Instance:",defaultValue:"pushsafer.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"title",defaultValue:"ioBroker",frontText:"Title:"},{nameRender:"renderSelect",attr:"sound",defaultValue:"magic",frontText:"Sound:",doNotTranslate:!0,options:[{value:"_",title:"Device Default"},{value:"0",title:"Silent"},{value:"1",title:"Ahem (IM)"},{value:"2",title:"Applause (Mail)"},{value:"3",title:"Arrow (Reminder)"},{value:"4",title:"Baby (SMS)"},{value:"5",title:"Bell (Alarm)"},{value:"6",title:"Bicycle (Alarm2)"},{value:"7",title:"Boing (Alarm3)"},{value:"8",title:"Buzzer (Alarm4)"},{value:"9",title:"Camera (Alarm5)"},{value:"10",title:"Car Horn (Alarm6)"},{value:"11",title:"Cash Register (Alarm7)"},{value:"12",title:"Chime (Alarm8)"},{value:"13",title:"Creaky Door (Alarm9)"},{value:"14",title:"Cuckoo Clock (Alarm10)"},{value:"15",title:"Disconnect (Call)"},{value:"16",title:"Dog (Call2)"},{value:"17",title:"Doorbell (Call3)"},{value:"18",title:"Fanfare (Call4)"},{value:"19",title:"Gun Shot (Call5)"},{value:"20",title:"Honk (Call6)"},{value:"21",title:"Jaw Harp (Call7)"},{value:"22",title:"Morse (Call8)"},{value:"23",title:"Electricity (Call9)"},{value:"24",title:"Radio Tuner (Call10)"},{value:"25",title:"Sirens"},{value:"26",title:"Military Trumpets"},{value:"27",title:"Ufo"},{value:"28",title:"Whah Whah Whah"},{value:"29",title:"Man Saying Goodbye"},{value:"30",title:"Man Saying Hello"},{value:"31",title:"Man Saying No"},{value:"32",title:"Man Saying Ok"},{value:"33",title:"Man Saying Ooohhhweee"},{value:"34",title:"Man Saying Warning"},{value:"35",title:"Man Saying Welcome"},{value:"36",title:"Man Saying Yeah"},{value:"37",title:"Man Saying Yes"},{value:"38",title:"Beep short"},{value:"39",title:"Weeeee short"},{value:"40",title:"Cut in and out short"},{value:"41",title:"Finger flicking glas short"},{value:"42",title:"Wa Wa Waaaa short"},{value:"43",title:"Laser short"},{value:"44",title:"Wind Chime short"},{value:"45",title:"Echo short"},{value:"46",title:"Zipper short"},{value:"47",title:"HiHat short"},{value:"48",title:"Beep 2 short"},{value:"49",title:"Beep 3 short"},{value:"50",title:"Beep 4 short"},{value:"51",title:"The Alarm is armed"},{value:"52",title:"The Alarm is disarmed"},{value:"53",title:"The Backup is ready"},{value:"54",title:"The Door is closed"},{value:"55",title:"The Door is opend"},{value:"56",title:"The Window is closed"},{value:"57",title:"The Window is open"},{value:"58",title:"The Light is off"},{value:"59",title:"The Light is on"},{value:"60",title:"The Doorbell rings"},{value:"61",title:"Pager short"},{value:"62",title:"Pager long"}]},{nameRender:"renderSelect",attr:"priority",defaultValue:0,frontText:"Priority:",options:[{value:-2,title:"lowest priority"},{value:-1,title:"lower priority"},{value:0,title:"normal priority"},{value:1,title:"high priority"},{value:2,title:"highest priority"}]},{nameRender:"renderSelect",attr:"vibration",defaultValue:0,frontText:"Vibration:",options:[{value:"_",title:"default"},{value:1,title:"1"},{value:2,title:"2"},{value:3,title:"3"}]}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Pushsafer",id:"ActionPushsafer",adapter:"pushsafer",title:"Sends message via Pushsafer",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return ov.getStaticData()}}const Lk=`async function (obj) { - "__%%DEBUG_TRIGGER%%__"; - __%%CONDITIONS_VARS%%__ - const _cond = __%%CONDITION%%__; - - "__%%DEBUG_CONDITIONS%%__"; - - if (_cond) { -__%%THEN%%__ - } else { -__%%ELSE%%__ - } -}`,Bk=`async function (obj) { - "__%%DEBUG_TRIGGER%%__"; - __%%CONDITIONS_VARS%%__ - const _cond = __%%CONDITION%%__; - - "__%%DEBUG_CONDITIONS%%__"; - - if (__%%STATE%%__ === false && _cond) { - __%%STATE%%__ = true; -__%%THEN%%__ - } else if (__%%STATE%%__ === true && !_cond) { - __%%STATE%%__ = false; -__%%ELSE%%__ - } -}`,zN=`"__%%DEBUG_TRIGGER%%__"; -__%%CONDITIONS_VARS%%__ -const _cond = __%%CONDITION%%__; - -"__%%DEBUG_CONDITIONS%%__"; - -if (_cond) { -__%%THEN%%__ -} else { -__%%ELSE%%__ -}`,Xy={triggers:[],conditions:[[]],justCheck:!1,actions:{then:[],else:[]}};function UN(o,n,s){const i=[];let a=o.triggers;a.length||(a=[{id:"TriggerScriptSave"}]);const c=[],h=[],g=o.conditions.find($=>$.find(y=>y.tagCard==="()"));a.forEach(($,y)=>{var T;const w=Nw($.id,s);if(w){const C={trigger:$,condition:{index:0},justCheck:g?!1:o.justCheck||!o.conditions.length||!o.conditions[0].length,conditionsDebug:[],conditionsVars:[],conditionsStates:[]},E=w.compile($,C),k=WN(o.conditions,C,s),A=ZS(o.actions.then,C,s),P=ZS(o.actions.else,C,s);c.push(`cond${y}`),(T=C.prelines)!=null&&T.length&&C.prelines.forEach(N=>h.push(N)),E.includes(" __%%CONDITIONS_VARS%%__")&&(C.conditionsVars=C.conditionsVars.map((N,B)=>B?` ${N}`:N),C.conditionsDebug=C.conditionsDebug.map((N,B)=>B?` ${N}`:N)),i.push(E.replace("__%%CONDITIONS_VARS%%__",C.conditionsVars.join(` -`)).replace('"__%%DEBUG_CONDITIONS%%__";',C.conditionsDebug.join(` -`)).replace("__%%CONDITION%%__",k).replace("__%%THEN%%__",A||"// ignore").replace("__%%ELSE%%__",P||"// ignore").replace(/__%%STATE%%__/g,`cond${y}`))}});let b=i.join(` - -`);return(!o.justCheck||g)&&(b=`${c.map($=>`let ${$} = false;`).join(` -`)} - -${b}`),h&&(b=`${h.join(` -`)} - -${b}`),b}function Nw(o,n){return n.find(s=>s.getStaticData&&s.getStaticData().id===o)}function ZS(o,n,s){const i=[];return o==null||o.forEach(a=>{const c=Nw(a.id,s);c&&i.push(c.compile(a,n))}),` ${i.join(` - - `)}`}function WN(o,n,s){const i=[];let a=0;return o==null||o.forEach(c=>{const h=[];c==null||c.forEach(g=>{const b=Nw(g.id,s);b&&(n.condition.index=a++,h.push(b.compile(g,n)))}),i.push(`(${h.join(`) && - (`)})`)}),i.length?i.length===1?i[0]||"true":`(${i.join(") || (")})`:"true"}function HN(o,n){return UN(o,null,n)}function QS(o){if(!o)return Xy;const n=o.split(` -`);try{const s=(n.pop()||"").replace(/^\/\//,"");let i=JSON.parse(s);return i.triggers||(i=Xy),i}catch{return Xy}}function VN(o,n){let s="";const i=HN(o,n);return s+=i,s+=` -/* -const demo = ${JSON.stringify(o,null,2).replace(/\*\//g,"* /")}; -*/ -`,`${s} -//${JSON.stringify(o)}`}class av extends yn{constructor(n){super(n,av.getStaticData())}static compile(n,s){return zN.replace('"__%%DEBUG_TRIGGER%%__"',`_sendToFrontEnd(${n._id}, {trigger: true})`)}renderDebug(){return I.I18n.t("Triggered")}onTagChange(n){this.setState({inputs:[{nameRender:"renderNameText",defaultValue:"On script save or adapter start",attr:"script"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"triggers",name:"Start script",id:"TriggerScriptSave",icon:"PlayArrow",title:"Triggers the on script saving or the javascript instance restart"}}getData(){return av.getStaticData()}}var Pk={exports:{}};(function(o,n){(function(){var s=Math.PI,i=Math.sin,a=Math.cos,c=Math.tan,h=Math.asin,g=Math.atan2,b=Math.acos,$=s/180,y=1e3*60*60*24,w=2440588,T=2451545;function C(he){return he.valueOf()/y-.5+w}function E(he){return new Date((he+.5-w)*y)}function k(he){return C(he)-T}var A=$*23.4397;function P(he,Ae){return g(i(he)*a(A)-c(Ae)*i(A),a(he))}function N(he,Ae){return h(i(Ae)*a(A)+a(Ae)*i(A)*i(he))}function B(he,Ae,de){return g(i(he),a(he)*i(Ae)-c(de)*a(Ae))}function S(he,Ae,de){return h(i(Ae)*i(de)+a(Ae)*a(de)*a(he))}function H(he,Ae){return $*(280.16+360.9856235*he)-Ae}function q(he){return he<0&&(he=0),2967e-7/Math.tan(he+.00312536/(he+.08901179))}function se(he){return $*(357.5291+.98560028*he)}function ee(he){var Ae=$*(1.9148*i(he)+.02*i(2*he)+3e-4*i(3*he)),de=$*102.9372;return he+Ae+de+s}function K(he){var Ae=se(he),de=ee(Ae);return{dec:N(de,0),ra:P(de,0)}}var Y={};Y.getPosition=function(he,Ae,de){var Se=$*-de,xe=$*Ae,He=k(he),ne=K(He),Ke=H(He,Se)-ne.ra;return{azimuth:B(Ke,xe,ne.dec),altitude:S(Ke,xe,ne.dec)}};var X=Y.times=[[-.833,"sunrise","sunset"],[-.3,"sunriseEnd","sunsetStart"],[-6,"dawn","dusk"],[-12,"nauticalDawn","nauticalDusk"],[-18,"nightEnd","night"],[6,"goldenHourEnd","goldenHour"]];Y.addTime=function(he,Ae,de){X.push([he,Ae,de])};var ce=9e-4;function W(he,Ae){return Math.round(he-ce-Ae/(2*s))}function te(he,Ae,de){return ce+(he+Ae)/(2*s)+de}function ke(he,Ae,de){return T+he+.0053*i(Ae)-.0069*i(2*de)}function Z(he,Ae,de){return b((i(he)-i(Ae)*i(de))/(a(Ae)*a(de)))}function ze(he,Ae,de,Se,xe,He,ne){var Ke=Z(he,de,Se),Te=te(Ke,Ae,xe);return ke(Te,He,ne)}Y.getTimes=function(he,Ae,de){var Se=$*-de,xe=$*Ae,He=k(he),ne=W(He,Se),Ke=te(0,Se,ne),Te=se(Ke),Je=ee(Te),rt=N(Je,0),ht=ke(Ke,Te,Je),nt,Wt,St,lt,ft,st={solarNoon:E(ht),nadir:E(ht+.5)};for(nt=0,Wt=X.length;nt=0&&(mn=Math.sqrt(lt)/(Math.abs(ht)*2),st=Wt-mn,At=Wt+mn,Math.abs(st)<=1&&ft++,Math.abs(At)<=1&&ft++,st<-1&&(st=At)),ft===1?ne<0?Je=Ue+st:rt=Ue+st:ft===2&&(Je=Ue+(St<0?At:st),rt=Ue+(St<0?st:At)),!(Je&&rt));Ue+=2)ne=Te;var Nt={};return Je&&(Nt.rise=at(xe,Je)),rt&&(Nt.set=at(xe,rt)),!Je&&!rt&&(Nt[St>0?"alwaysUp":"alwaysDown"]=!0),Nt},o.exports=Y})()})(Pk);var GN=Pk.exports;const jk=Ga(GN),KN='{"time":{"start":"00:00","end":"24:00","mode":"hours","interval":1},"period":{"days":1}}';class pu extends yn{coordinates=null;constructor(n){super(n,pu.getStaticData())}static compile(n,s){var c;let i="",a=s.justCheck?Lk:Bk;if(a=a.replace('"__%%DEBUG_TRIGGER%%__"',`_sendToFrontEnd(${n._id}, {trigger: true})`),n.tagCard==="interval")i=`setInterval(${a}, ${n.interval||1} * ${n.unit==="s"?1e3:n.unit==="m"?6e4:36e5});`;else if(n.tagCard==="cron")i=`schedule("${n.cron}", ${a});`;else if(n.tagCard==="at"){const[h,g]=(n.at||"").split(":");let b="*";if((c=n==null?void 0:n.dow)!=null&&c.length&&!n.dow.includes("_")){const $=[...n.dow].map(C=>parseInt(C,10));$.sort();const y=[];let w=$[0],T=1;for(;T<$.length;T++)$[T]-$[T-1]>1?(w===$[T-1]?y.push(w.toString()):$[T-1]-w===1?y.push(`${w},${$[T-1]}`):y.push(`${w}-${$[T-1]}`),w=$[T]):T===$.length-1&&(w===$[T-1]||$[T]-w===1?y.push(`${w},${$[T]}`):y.push(`${w}-${$[T]}`));b=y.join(",")}i=`schedule("${g||"0"} ${h||"0"} * * ${b}", ${a});`}else n.tagCard==="astro"?i=`schedule({astro: "${n.astro}", shift: ${n.offset?n.offsetValue:0}}, ${a});`:n.tagCard==="wizard"&&(i=`schedule('${n.wizard}', ${a});`);return i}static _time2String(n){return n?`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}`:"--:--"}async _setAstro(n,s,i){var b,$;if(n||=this.state.settings.astro||"solarNoon",s??=this.state.settings.offset,i??=this.state.settings.offsetValue,i=parseInt(i,10)||0,!this.coordinates){const y=await this.props.socket.getObject("system.adapter.javascript.0"),w=(b=y==null?void 0:y.native)==null?void 0:b.latitude,T=($=y==null?void 0:y.native)==null?void 0:$.longitude;if(!w&&!T){const C=await this.props.socket.getObject("system.config");C!=null&&C.common&&(C.common.latitude||C.common.longitude)?this.coordinates={latitude:parseFloat(C.common.latitude),longitude:parseFloat(C.common.longitude)}:this.coordinates=null}else this.coordinates={latitude:parseFloat(w),longitude:parseFloat(T)}}const a=this.coordinates&&jk.getTimes(new Date,this.coordinates.latitude,this.coordinates.longitude),c=a?Object.keys(a).map(y=>({value:y,title:y,title2:`[${pu._time2String(a[y])}]`,order:a?pu._time2String(a[y]):"??:??"})):[];c.sort((y,w)=>y.order>w.order?1:y.ordersuper.onTagChange())}_setInterval(n){n=parseInt(n||this.state.settings.interval,10)||30;let s;n===1?s=[{value:"s",title:"second"},{value:"m",title:"minute"},{value:"h",title:"hour"}]:s=[{value:"s",title:"seconds"},{value:"m",title:"minutes"},{value:"h",title:"hours"}],this.setState({inputs:[{nameRender:"renderNumber",attr:"interval",frontText:"every",defaultValue:30,className:"block-input-interval"},{nameRender:"renderSelect",attr:"unit",defaultValue:"s",options:s}]},()=>super.onTagChange())}renderDebug(n){return I.I18n.t("Triggered")}onValueChanged(n,s){this.state.settings.tagCard==="astro"?s==="astro"?this._setAstro(n):s==="offset"?this._setAstro(void 0,n):s==="offsetValue"&&this._setAstro(void 0,void 0,n):this.state.settings.tagCard==="interval"&&s==="interval"&&this._setInterval(n)}renderCron(n,s,i){const{className:a}=this.props;return f.jsxs("div",{children:[f.jsxs("div",{style:{display:"flex",alignItems:"baseline"},children:[f.jsx("div",{style:{width:"100%"},children:this.renderText({nameRender:"renderText",attr:"cron",defaultValue:s},this.state.settings.cron||s,i)}),f.jsx(wf,{square:!0,style:{marginLeft:7},value:"...",className:a,onClick:()=>this.setState({openDialog:!0,textCron:this.state.settings.cron})})]}),this.state.openDialog?f.jsx(z_,{disabled:this.state.settings.cron===this.state.textCron,onApply:()=>{const c=this.state.textCron;i(c,"cron",()=>{i(I.convertCronToText(c,I.I18n.getLanguage()),"addText"),this.setState({openDialog:!1})})},onClose:()=>this.setState({openDialog:!1,textCron:""}),children:f.jsx(I.ComplexCron,{cronExpression:this.state.settings.cron,onChange:c=>this.setState({textCron:c}),language:I.I18n.getLanguage()})}):null,this.renderNameText({nameRender:"renderNameText",defaultValue:I.I18n.t("every hour at 0 minutes"),attr:"addText",signature:!0,doNotTranslate:!0},this.state.settings.addText||I.I18n.t("every hour at 0 minutes"))]},"cron")}renderWizard(n,s,i){const{className:a}=this.props;return f.jsxs("div",{children:[f.jsxs("div",{style:{display:"flex",alignItems:"center",marginTop:7},children:[f.jsx(Yl,{className:a,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",multiline:!0,rows:2,value:this.state.settings.wizardText,onChange:c=>i(c),customValue:!0}),f.jsx(wf,{square:!0,style:{marginLeft:7},value:"...",className:a,onClick:()=>this.setState({openDialog:!0,wizard:this.state.settings.wizard,wizardText:I.Schedule.state2text(this.state.settings.wizard)})})]}),this.state.openDialog?f.jsx(z_,{disabled:this.state.settings.wizard===this.state.wizard,onApply:()=>this.setState({openDialog:!1},()=>{const c=JSON.parse(this.state.wizard);c.valid||={from:I.Schedule.now2string()},c.valid.from||=I.Schedule.now2string(),i({wizardText:this.state.wizardText,wizard:JSON.stringify(c)})}),onClose:()=>this.setState({openDialog:!1}),children:f.jsx(I.Schedule,{theme:this.props.theme,schedule:s,onChange:(c,h)=>this.setState({wizardText:h||"",wizard:c})})}):null]},"wizard")}onTagChange(n){switch(n||=this.state.settings.tagCard,n){case"interval":this._setInterval();break;case"cron":this.setState({inputs:[{nameRender:"renderCron",attr:"cron",defaultValue:"0 * * * *"}]},()=>super.onTagChange());break;case"wizard":{const s=JSON.parse(KN);s.valid||={from:I.Schedule.now2string()},s.valid.from||=I.Schedule.now2string(),this.setState({inputs:[{nameRender:"renderWizard",attr:"wizard",defaultValue:JSON.stringify(s)}]},()=>super.onTagChange(null,()=>{const i=I.Schedule.state2text(this.state.settings.wizard||s);if(this.state.settings.wizard!==i){const a=JSON.parse(JSON.stringify(this.state.settings));a.wizardText=i,this.setState({settings:a}),this.props.onChange(a)}}));break}case"at":this.setState({inputs:[{nameRender:"renderTime",prefix:"at",attr:"at",defaultValue:"07:30"},{nameRender:"renderSelect",attr:"dow",default:"",multiple:!0,defaultValue:["_","1","2","3","4","5","6","0"],options:[{value:"_",title:"Every day",only:!0},{value:"1",title:"Monday",titleShort:"Mo"},{value:"2",title:"Tuesday",titleShort:"Tu"},{value:"3",title:"Wednesday",titleShort:"We"},{value:"4",title:"Thursday",titleShort:"Th"},{value:"5",title:"Friday",titleShort:"Fr"},{value:"6",title:"Saturday",titleShort:"Sa"},{value:"0",title:"Sunday",titleShort:"Su"}]}]},()=>super.onTagChange());break;case"astro":this._setAstro();break}}static getStaticData(){return{acceptedBy:"triggers",name:"Schedule",id:"TriggerScheduleBlock",icon:"AccessTime",tagCardArray:["cron","wizard","interval","at","astro"],title:"Triggers the rule periodically or on some specific time"}}getData(){return pu.getStaticData()}}const bh={valueAck:{color:"#b02323"},valueNotAck:{color:"#12ac15"}},Fk=We.forwardRef((o,n)=>f.jsx(D.Slide,{direction:"up",ref:n,...o}));Fk.displayName="Transition";class lv extends yn{inputRef;constructor(n){super(n,lv.getStaticData()),this.inputRef=We.createRef()}static compile(n,s){let i=s.justCheck?Lk:Bk;return i=i.replace('"__%%DEBUG_TRIGGER%%__"',`_sendToFrontEnd(${n._id}, {val: obj.state.val, ack: obj.state.ack, valOld: obj.oldState && obj.oldState.val, ackOld: obj.oldState && obj.oldState.ack})`),`on({id: "${n.oid||""}", change: "${n.tagCard==="on update"?"any":"ne"}"}, ${i});`}renderDebug(n){return n.data.valOld!==void 0?f.jsxs("span",{children:[I.I18n.t("Triggered")," ",f.jsx("span",{style:n.data.ackOld?bh.valueAck:bh.valueNotAck,children:Dh(n.data.valOld)})," ","→"," ",f.jsx("span",{style:n.data.ack?bh.valueAck:bh.valueNotAck,children:Dh(n.data.val)})]}):f.jsxs("span",{children:[I.I18n.t("Triggered")," ",f.jsx("span",{style:n.data.ack?bh.valueAck:bh.valueNotAck,children:Dh(n.data.val)})]})}onWriteValue(){this.setState({openSimulate:!1});let n=this.state.simulateValue;window.localStorage.setItem(`javascript.app.${this.state.settings.oid}_ack`,this.state.simulateAck?"true":"false"),this.state.settings.oidType==="boolean"?(n=n===!0||n==="true"||n==="1",window.localStorage.setItem(`javascript.app.${this.state.settings.oid}`,n?"true":"false")):this.state.settings.oidType==="number"?(n=parseFloat(n)||0,window.localStorage.setItem(`javascript.app.${this.state.settings.oid}`,n.toString())):window.localStorage.setItem(`javascript.app.${this.state.settings.oid}`,(n==null?void 0:n.toString())||""),this.props.socket.setState(this.state.settings.oid,{val:n,ack:!!this.state.simulateAck})}renderWriteState(){return[f.jsx(D.Button,{disabled:!this.state.settings.oid||!this.state.enableSimulation,variant:"contained",color:"primary",onClick:()=>{this.setState({openSimulate:!0,simulateValue:this.state.settings.oidType==="boolean"?window.localStorage.getItem(`javascript.app.${this.state.settings.oid}`)==="true":window.localStorage.getItem(`javascript.app.${this.state.settings.oid}`)||"",simulateAck:window.localStorage.getItem(`javascript.app.${this.state.settings.oid}_ack`)==="true"}),setTimeout(()=>{var n;return(n=this.inputRef.current)==null?void 0:n.focus()},200)},children:I.I18n.t("Simulate")},"buttonWrite"),f.jsxs(D.Dialog,{open:!!this.state.openSimulate,TransitionComponent:Fk,keepMounted:!0,onClose:()=>this.setState({openSimulate:!1}),"aria-labelledby":"simulate-dialog-slide-title","aria-describedby":"simulate-dialog-slide-description",children:[f.jsx(D.DialogTitle,{id:"simulate-dialog-slide-title",children:I.I18n.t("Trigger with value")}),f.jsxs(D.DialogContent,{children:[this.state.settings.oidType==="boolean"?f.jsx(D.FormControlLabel,{control:f.jsx(D.Switch,{inputRef:this.inputRef,onKeyUp:n=>n.key==="Enter"&&this.onWriteValue(),value:!!this.state.simulateValue,onChange:n=>this.setState({simulateValue:n.target.checked})}),label:I.I18n.t("Value")}):f.jsx(D.TextField,{variant:"standard",inputRef:this.inputRef,label:I.I18n.t("Value"),fullWidth:!0,onKeyUp:n=>n.key==="Enter"&&this.onWriteValue(),value:!this.state.simulateValue&&this.state.simulateValue!==0?"":this.state.simulateValue,onChange:n=>this.setState({simulateValue:n.target.value})}),f.jsx("br",{}),f.jsx(D.FormControlLabel,{control:f.jsx(D.Checkbox,{checked:!!this.state.simulateAck,onChange:n=>this.setState({simulateAck:n.target.checked}),color:"primary"}),label:I.I18n.t("Ack")})]}),f.jsxs(D.DialogActions,{children:[f.jsxs(D.Button,{variant:"contained",onClick:()=>this.onWriteValue(),color:"primary",children:[f.jsx(b_,{}),I.I18n.t("Write")]}),f.jsxs(D.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({openSimulate:!1}),children:[f.jsx(Iv,{}),I.I18n.t("Close")]})]})]},"dialogWrite")]}onTagChange(n){this.setState({inputs:[{nameRender:"renderObjectID",attr:"oid",defaultValue:""},{nameRender:"renderWriteState"}]},()=>{super.onTagChange()})}static getStaticData(){return{acceptedBy:"triggers",name:"State",id:"TriggerState",icon:"FlashOn",tagCardArray:["on change","on update"],title:"Triggers the rule on update or change of some state"}}getData(){return lv.getStaticData()}}const JN=""+new URL("hysteresis-CLhhemcG.png",import.meta.url).href,e0=`function __hysteresis(val, limit, state, hist, comp) { - let cond1, cond2; - if (comp === '>') { - cond1 = val > limit + hist; - cond2 = val <= limit - hist; - } else if (comp === '<') { - cond1 = val < limit - hist; - cond2 = val >= limit + hist; - } else if (comp === '>=') { - cond1 = val >= limit + hist; - cond2 = val < limit - hist; - } else if (comp === '<=') { - cond1 = val <= limit - hist; - cond2 = val > limit + hist; - } else if (comp === '=') { - cond1 = val <= limit + hist && val > limit - hist; - cond2 = val > limit + hist || val <= limit - hist; - } else if (comp === '<>') { - cond1 = val > limit + hist || val <= limit - hist; - cond2 = val <= limit + hist && val > limit - hist; - } - - if (!state && cond1) { - return true; - } else if (state && cond2) { - return false; - } else { - return state; - } -}`;class Cf extends yn{constructor(n){super(n,Cf.getStaticData())}isAllTriggersOnState(){var n,s,i,a;return!!((s=(n=this.props.userRules)==null?void 0:n.triggers)!=null&&s.find(c=>c.id==="TriggerState"))&&!((a=(i=this.props.userRules)==null?void 0:i.triggers)!=null&&a.find(c=>c.id!=="TriggerState"))}static compile(n,s){var h,g;let i=n.value;i==null&&(i=!1);let a,c;if(n.tagCard==="()")s.prelines=s.prelines||[],!s.prelines.find(b=>b!==e0)&&s.prelines.push(e0),n.useTrigger?(a="obj.state.val",i===""&&(i=0),c=`__hysteresis(subCondVar${n._id}, ${i}, __%%STATE%%__, ${n.hist}, "${n.histComp}")`):(a=`(await getStateAsync("${n.oid}")).val`,i===""&&(i=0),typeof i=="string"&&parseFloat(i.trim()).toString()!==i.trim()&&(i=`"${i}"`),c=`__hysteresis(subCondVar${n._id}, ${i}, __%%STATE%%__, ${n.hist}, "${n.histComp}")`);else if(n.tagCard!=="includes"){const b=n.tagCard==="="?"==":n.tagCard==="<>"?"!=":n.tagCard;n.useTrigger?(a="obj.state.val",((h=s==null?void 0:s.trigger)==null?void 0:h.oidType)==="string"?(i=i.replace(/"/g,'\\"'),c=`subCondVar${n._id} ${b} "${i}"`):(i===""&&(i=0),typeof i=="string"&&parseFloat(i.trim()).toString()!==i.trim()&&(i=`"${i}"`),c=`subCondVar${n._id} ${b} ${i}`)):(a=`(await getStateAsync("${n.oid}")).val`,n.oidType==="string"?(i=i.replace(/"/g,'\\"'),c=`subCondVar${n._id} ${b} "${i}"`):(i===""&&(i=0),typeof i=="string"&&parseFloat(i.trim()).toString()!==i.trim()&&(i=`"${i}"`),c=`subCondVar${n._id} ${b} ${i}`))}else n.useTrigger?(a="obj.state.val",((g=s==null?void 0:s.trigger)==null?void 0:g.oidType)==="string"?(i=i.replace(/"/g,'\\"'),c=`obj.state.val.includes("${i}")`):c="false"):(a=`(await getStateAsync("${n.oid}")).val`,n.oidType==="string"?(i=i.replace(/"/g,'\\"'),c=`subCondVar${n._id}.includes("${i}")`):c="false");return s.conditionsStates.push({name:`subCondVar${n._id}`,id:n.oid}),s.conditionsVars.push(`const subCondVar${n._id} = ${a};`),s.conditionsVars.push(`const subCond${n._id} = ${c};`),s.conditionsDebug.push(`_sendToFrontEnd(${n._id}, {result: subCond${n._id}, value: subCondVar${n._id}, compareWith: "${i}"});`),`subCond${n._id}`}renderDebug(n){const s=this.state.settings.tagCard;return s!=="()"?`${n.data.result.toString().toUpperCase()} [${n.data.value} ${s} ${n.data.compareWith}]`:I.I18n.t("Triggered")}onShowHelp=()=>this.setState({showHysteresisHelp:!0});_setInputs(n,s,i,a,c){var k,A;const h=this.isAllTriggersOnState();s=s||this.state.settings.tagCard,i=i||this.state.settings.oidType,a=a||this.state.settings.oidUnit,c=c||this.state.settings.oidStates,n===void 0&&(n=this.state.settings.useTrigger),h&&n&&((A=(k=this.props.userRules)==null?void 0:k.triggers)==null?void 0:A.length)===1&&(i=this.props.userRules.triggers[0].oidType,a=this.props.userRules.triggers[0].oidUnit,c=this.props.userRules.triggers[0].oidStates);const g=Cf.getStaticData().tagCardArray,b=g.find(P=>P.title===s)||g[0];let $,y=null;i==="number"?($=[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:"()",title2:"[hysteresis]",text:"hysteresis"}],c&&(y=Object.keys(c).map(P=>c?{value:P,title:c[P]}:null).filter(P=>P))):i==="boolean"?($=[{title:"=",title2:"[equal]",text:"equal to"},{title:"<>",title2:"[not equal]",text:"not equal to"}],y=[{title:"false",value:!1},{title:"true",value:!0}]):($=[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:".",title2:"[includes]",text:"includes"}],c&&(y=Object.keys(c).map(P=>({value:P,title:c?c[P]:P.toString()}))));let w=null;$.find(P=>P.title===s)||(s=$[0].title,w=w||{...this.state.settings},w.tagCard=s);let T,C={nameRender:"renderText",defaultValue:"",attr:"value",frontText:s==="()"?"Limit":(b==null?void 0:b.text)||"compare with",doNotTranslateBack:!0,backText:a};y&&(C={nameRender:"renderSelect",defaultValue:y[0].value,options:y,attr:"value",frontText:(b==null?void 0:b.text)||"compare with",doNotTranslateBack:!0,backText:a},y.find(P=>P.value===this.state.settings.value)||(w=w||{...this.state.settings},w.value=y[0].value),y.length<=2&&($=[{title:"=",title2:"[equal]",text:"equal to"},{title:"<>",title2:"[not equal]",text:"not equal to"}])),h&&n?T=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1},C]:h?T=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"},{nameRender:"renderObjectID",attr:"oid",defaultValue:""},C]:T=[{nameRender:"renderObjectID",attr:"oid",defaultValue:""},C],s==="()"&&(T.splice(1,0,{nameRender:"renderDialog",icon:"HelpOutline",frontText:"Explanation",onShowDialog:this.onShowHelp}),T.splice(2,0,{nameRender:"renderSelect",attr:"histComp",defaultValue:">",frontText:"Condition",doNotTranslate:!0,options:[{title:">",value:">"},{title:">=",value:">="},{title:"<",value:"<"},{title:"<=",value:"<="},{title:"=",value:"="},{title:"<>",value:"<>"}]}),T.push({frontText:"Δ",doNotTranslate:!0,nameRender:"renderNumber",noHelperText:!0,attr:"hist",defaultValue:1,doNotTranslateBack:!0,backText:a}));const E={iconTag:!0,tagCardArray:$,inputs:T};this.setState(E,()=>super.onTagChange(null,()=>{w&&(this.setState({settings:w}),this.props.onChange(w))}))}onValueChanged(n,s){typeof n=="object"?this._setInputs(n.useTrigger,n.tagCard,n.oidType,n.states):s==="useTrigger"?this._setInputs(n):s==="oidType"?this._setInputs(void 0,void 0,n):s==="oidUnit"?this._setInputs(void 0,void 0,void 0,n):s==="oidStates"&&this._setInputs(void 0,void 0,void 0,void 0,n)}onUpdate(){this._setInputs(this.state.settings.useTrigger)}onTagChange(n){this._setInputs(this.state.settings.useTrigger,n)}static getStaticData(){return{acceptedBy:"conditions",name:"State condition",id:"ConditionState",icon:"Shuffle",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:".",title2:"[includes]",text:"includes"},{title:"()",title2:"[hysteresis]",text:"hysteresis"}],title:"Compares the state value with user defined value"}}getData(){return Cf.getStaticData()}renderSpecific(){return this.state.showHysteresisHelp?f.jsxs(D.Dialog,{open:!0,maxWidth:"md",onClose:()=>this.setState({showHysteresisHelp:!1}),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[f.jsx(D.DialogContent,{children:f.jsx(D.DialogContentText,{id:"alert-dialog-description",children:f.jsx("img",{src:JN,alt:"Hysteresis"})})}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{onClick:()=>this.setState({showHysteresisHelp:!1}),color:"primary",autoFocus:!0,children:I.I18n.t("OK")})})]}):null}}const t0=[31,29,31,30,31,30,31,31,30,31,30,31];class Sf extends yn{constructor(n){super(n,Sf.getStaticData())}static compile(n,s){const i=n.tagCard==="="?"===":n.tagCard==="<>"?"!==":n.tagCard;let a;if(n.withDate){const[c,h]=(n.date||"01.01").toString().split(".");let g=parseInt(h,10)||0,b=parseInt(c,10)||0;b>12?b=12:b<0&&(b=0),g>t0[b]?g=t0[b]:g<0&&(g=0),g&&b?a=`formatDate(Date.now(), 'MM.DD-hh:mm') ${i} "${n.date}-${n.time}"`:g===0&&b?a=`formatDate(Date.now(), 'MM-hh:mm') ${i} "${b.toString().padStart(2,"0")}-${n.time}"`:b===0&&g?a=`formatDate(Date.now(), 'DD-hh:mm') ${i} "${g.toString().padStart(2,"0")}-${n.time}"`:a=`formatDate(Date.now(), 'hh:mm') ${i} "${n.time}"`}else a=`formatDate(Date.now(), 'hh:mm') ${i} "${n.time}"`;return s.conditionsVars.push(`const subCond${n._id} = ${a};`),s.conditionsDebug.push(`_sendToFrontEnd(${n._id}, {result: subCond${n._id}});`),`subCond${n._id}`}_setInputs(n,s){s=s===void 0?this.state.settings.withDate:s,n=n||this.state.settings.tagCard;const i=Sf.getStaticData().tagCardArray,a=i==null?void 0:i.find(h=>h.title===n),c=[{nameRender:"renderNameText",attr:"interval",defaultValue:"Actual time of day"},{frontText:(a==null?void 0:a.text)||n,nameRender:"renderTime",attr:"time",defaultValue:"12:00"},{frontText:"with date",nameRender:"renderCheckbox",attr:"withDate",defaultValue:!1}];s&&c.push({nameRender:"renderDate",attr:"date",defaultValue:"01.01"}),this.setState({inputs:c,iconTag:!0},()=>super.onTagChange())}onValueChanged(n,s){s==="withDate"&&this._setInputs(void 0,n)}onTagChange(n){this._setInputs(n)}static getStaticData(){return{acceptedBy:"conditions",name:"Time condition",id:"ConditionTime",icon:"Shuffle",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"}],title:"Compares current time with the user specific time"}}getData(){return Sf.getStaticData()}}class ql extends yn{coordinates=null;constructor(n){super(n,ql.getStaticData())}static compile(n,s){const i=n.tagCard==="="?"===":n.tagCard==="<>"?"!==":n.tagCard;let a;n.offset&&(a=parseInt(n.offsetValue,10)||0);const c=`formatDate(Date.now(), 'hh:mm') ${i} formatDate(getAstroDate("${n.astro}"${a?`, undefined, ${a}`:""}), 'hh:mm')`;return s.conditionsVars.push(`const subCond${n._id} = ${c};`),s.conditionsDebug.push(`_sendToFrontEnd(${n._id}, {result: ${c}});`),c}static _time2String(n){return n?`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}`:"--:--"}onValueChanged(n,s){s==="astro"?this._setAstro(n):s==="offset"?this._setAstro(void 0,n):s==="offsetValue"&&this._setAstro(void 0,void 0,n)}async _setAstro(n,s,i){if(n=n||this.state.settings.astro||"solarNoon",s=s===void 0?this.state.settings.offset:s,i=i===void 0?this.state.settings.offsetValue:i,i=parseInt(i,10)||0,!this.coordinates){const y=await this.props.socket.getObject("system.adapter.javascript.0");if(!(y!=null&&y.native.latitude)&&!(y!=null&&y.native.longitude)){const w=await this.props.socket.getObject("system.config");w&&(w.common.latitude||w.common.longitude)?this.coordinates={latitude:w.common.latitude,longitude:w.common.longitude}:this.coordinates=null}else this.coordinates={latitude:y==null?void 0:y.native.latitude,longitude:y==null?void 0:y.native.longitude}}const a=this.coordinates?jk.getTimes(new Date,this.coordinates.latitude,this.coordinates.longitude):null,c=a?Object.keys(a).map(y=>({value:y,title:y,title2:`[${ql._time2String(a[y])}]`,order:ql._time2String(a[y])})):[];c.sort((y,w)=>y.order>w.order?1:y.ordery.title===this.state.settings.tagCard)||h[0];let b="--:--";if(n&&a&&a[n]){const y=new Date(a[n]);s&&y.setMinutes(y.getMinutes()+parseInt(i,10)),b=`(${I.I18n.t(g.text)} ${ql._time2String(y)})`}let $;s?$=[{nameRender:"renderNameText",defaultValue:"Actual time of day",attr:"text"},{frontText:g.text,attr:"astro",nameRender:"renderSelect",options:c,doNotTranslate2:!0,defaultValue:"solarNoon"},{backText:"with offset",nameRender:"renderCheckbox",attr:"offset"},{backText:i===1?"minute":"minutes",frontText:"offset",nameRender:"renderNumber",defaultValue:0,attr:"offsetValue",noHelperText:!0},{nameRender:"renderNameText",attr:"textTime",doNotTranslate:!0,defaultValue:b}]:$=[{nameRender:"renderNameText",defaultValue:"Actual time of day",attr:"text"},{frontText:g.text,attr:"astro",nameRender:"renderSelect",options:c,doNotTranslate2:!0,defaultValue:"solarNoon"},{backText:"with offset",nameRender:"renderCheckbox",attr:"offset"},{nameRender:"renderNameText",attr:"textTime",doNotTranslate:!0,defaultValue:b}],this.setState({inputs:$},()=>super.onTagChange())}onTagChange(){this._setAstro()}static getStaticData(){return{acceptedBy:"conditions",name:"Astronomical",id:"ConditionAstronomical",icon:"Brightness3",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal to"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal to"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"}],title:"Compares current time with astronomical event"}}getData(){return ql.getStaticData()}}const n0={valueAck:{color:"#b02323"},valueNotAck:{color:"#12ac15"}};class cv extends yn{constructor(n){super(n,cv.getStaticData())}isAllTriggersOnState(){var n,s,i,a;return!!((s=(n=this.props.userRules)==null?void 0:n.triggers)!=null&&s.find(c=>c.id==="TriggerState"))&&!((a=(i=this.props.userRules)==null?void 0:i.triggers)!=null&&a.find(c=>c.id!=="TriggerState"))}static compile(n,s){let i=n.value;n.useTrigger?i=n.toggle?"!obj.state.val":"obj.state.val":(i==null&&(i=""),typeof n.value=="string"&&parseFloat(n.value).toString()!==n.value&&n.value!=="true"&&n.value!=="false"&&(i=`"${i.replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}`));let a;return n.toggle&&!n.useTrigger?a=`const subActionVar${n._id} = !(await getStateAsync("${n.oid}")).val`:a=`const subActionVar${n._id} = ${i}`,`// set state ${n.oid} to ${n.toggle&&!n.useTrigger?"toggle":i} - ${a}; - _sendToFrontEnd(${n._id}, {val: subActionVar${n._id}, ack: ${n.tagCard==="update"}}); - await setStateAsync("${n.oid}", subActionVar${n._id}, ${n.tagCard==="update"});`}renderDebug(n){return f.jsxs("span",{children:[I.I18n.t("Set:")," ",f.jsx("span",{style:n.data.ack?n0.valueAck:n0.valueNotAck,children:Dh(n.data.val)})]})}_setInputs(n,s){const i=this.isAllTriggersOnState();s=s===void 0?this.state.settings.toggle:s,n=n===void 0?this.state.settings.useTrigger:n;let a="",c;const{oidType:h,oidUnit:g,oidStates:b,oidMax:$,oidMin:y,oidRole:w,oidWrite:T,oidStep:C}=this.state.settings;let E;h&&(h==="number"?(a="number",$!==void 0&&y!==void 0&&(a="slider")):h==="boolean"?(a="boolean",w&&w.includes("button")&&T&&(a="button")):(a="",w&&w.includes("color")&&(a="color")),b&&(c=Object.keys(b).map(A=>({value:A,title:b[A]})),a="select"));let k;if(i&&n)k=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1}],a==="boolean"&&k.push({backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1});else{switch(a){case"number":k=[{backText:g||"",frontText:"with",nameRender:"renderNumber",defaultValue:$===void 0?0:$,attr:"value"}],this.state.settings.value!==void 0&&isNaN(parseFloat(this.state.settings.value))&&(E={value:$===void 0?0:$});break;case"slider":{k=[{nameRender:"renderSlider",defaultValue:$,min:y,max:$,unit:g,step:C,attr:"value"}];const A=parseFloat(this.state.settings.value);this.state.settings.value!==void 0&&(isNaN(A)||A$)&&(E={value:$});break}case"select":k=[{nameRender:"renderSelect",frontText:"with",options:c,defaultValue:(c==null?void 0:c[0].value)||"",attr:"value"}],this.state.settings.value!==void 0&&!(c!=null&&c.find(A=>A.value===this.state.settings.value))&&(E={value:(c==null?void 0:c[0].value)||""});break;case"boolean":k=[{backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1}],s||k.push({backText:"true",frontText:"false",nameRender:"renderSwitch",defaultValue:!1,attr:"value"}),this.state.settings.value!==void 0&&this.state.settings.value!==!1&&this.state.settings.value!==!0&&(E={value:!1});break;case"button":k=[{nameRender:"renderButton",defaultValue:!0,attr:"value"}],this.state.settings.value!==void 0&&this.state.settings.value!==!0&&(E={value:!0});break;case"color":k=[{nameRender:"renderColor",frontText:"with",defaultValue:"#FFFFFF",attr:"value"}],this.state.settings.value!==void 0&&(typeof this.state.settings.value!="string"||!this.state.settings.value.startsWith("#")&&!this.state.settings.value.startsWith("rgb"))&&(E={value:"#FFFFFF"});break;default:k=[{backText:g||"",frontText:"with",nameRender:"renderText",defaultValue:"",attr:"value"}];break}i&&k.unshift({backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"})}return{inputs:k,newSettings:E}}onTagChange(n,s,i,a,c){c=c===void 0?this.state.settings.useTrigger:c;const{inputs:h,newSettings:g}=this._setInputs(c,a);h.unshift({nameRender:"renderObjectID",attr:"oid",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:h},()=>super.onTagChange(null,()=>{if(g){const b=JSON.parse(JSON.stringify(this.state.settings));Object.assign(b,g),this.setState(b),this.props.onChange(b)}}))}onValueChanged(n,s){this.onTagChange(void 0,void 0,void 0,s==="toggle"?n:void 0,s==="useTrigger"?n:void 0)}onUpdate(){this.onTagChange()}static getStaticData(){return{acceptedBy:"actions",name:"Set state action",id:"ActionSetState",icon:"PlayForWork",tagCardArray:["control","update"],title:"Control or update some state",helpDialog:"You can use %s in the value to use the current trigger value or %id to display the triggered object ID"}}getData(){return cv.getStaticData()}}class uv extends yn{constructor(n){super(n,uv.getStaticData())}static compile(n,s){return`// exec "${n.exec}" - const subActionVar${n._id} = "${(n.exec||"").replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}; - _sendToFrontEnd(${n._id}, {exec: subActionVar${n._id}}); - console.log(subActionVar${n._id});`}renderDebug(n){return`Exec: ${n.data.exec}`}onTagChange(n){this.setState({inputs:[{nameRender:"renderModalInput",attr:"exec",defaultValue:"ls /opt/iobroker",nameBlock:"Shell command"}]},()=>super.onTagChange(n))}static getStaticData(){return{acceptedBy:"actions",name:"Exec",id:"ActionExec",icon:"Apps",title:"Executes some shell command",helpDialog:"You can use %s in the command to use current trigger value or %id to use the triggered object ID"}}getData(){return uv.getStaticData()}}class dv extends yn{constructor(n){super(n,dv.getStaticData())}static compile(n,s){return`// HTTP request ${n.url} - const subActionVar${n._id} = "${(n.url||"").replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}; - _sendToFrontEnd(${n._id}, {url: subActionVar${n._id}}); - request(subActionVar${n._id});`}renderDebug(n){return`URL: ${n.data.url}`}onTagChange(n){this.setState({inputs:[{nameRender:"renderModalInput",attr:"url",defaultValue:"http://mydevice.com?...",nameBlock:"URL"}]},()=>super.onTagChange(n))}static getStaticData(){return{acceptedBy:"actions",name:"HTTP Call",id:"ActionHTTPCall",icon:"Language",title:"Make a HTTP get request",helpDialog:"You can use %s in the URL to use current trigger value or %id to use the triggered object ID"}}getData(){return dv.getStaticData()}}class hv extends yn{constructor(n){super(n,hv.getStaticData())}static compile(n,s){return`// Log ${n.text} - const subActionVar${n._id} = "${(n.text||"").replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}; - _sendToFrontEnd(${n._id}, {text: subActionVar${n._id}}); - console.log(subActionVar${n._id});`}renderDebug(n){return I.I18n.t("Log: %s",n.data.text)}onTagChange(){this.setState({inputs:[{nameRender:"renderModalInput",attr:"text",defaultValue:"My device triggered",nameBlock:"Log text"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Log text",id:"ActionPrintText",icon:"Subject",title:"Print some text in log",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return hv.getStaticData()}}class pv extends yn{constructor(n){super(n,pv.getStaticData())}static compile(n){const s=n.unit==="ms"?1:n.unit==="s"?1e3:n.unit==="m"?6e4:36e5;return`// pause for ${s}ms - _sendToFrontEnd(${n._id}, {paused: true}); - - await wait(${n.pause} * ${s}); - - _sendToFrontEnd(${n._id}, {paused: false});`}renderDebug(n){return I.I18n.t("Paused: %s",n.data.paused)}_getOptions(n){return n=n===void 0?this.state.settings.pause:n,n===1||n==="1"?[{value:"ms",title:"millisecond"},{value:"s",title:"second"},{value:"m",title:"minute"},{value:"h",title:"hour"}]:[{value:"ms",title:"milliseconds"},{value:"s",title:"seconds"},{value:"m",title:"minutes"},{value:"h",title:"hours"}]}_setInputs(n){this.setState({inputs:[{nameRender:"renderNumber",attr:"pause",defaultValue:100,noHelperText:!0},{nameRender:"renderSelect",attr:"unit",defaultValue:"ms",options:this._getOptions(n)}]},()=>super.onTagChange())}onValueChanged(n,s){s==="pause"&&this._setInputs(n)}onTagChange(){this._setInputs()}static getStaticData(){return{acceptedBy:"actions",name:"Pause",id:"ActionPause",icon:"Pause",title:"Make a pause between actions"}}getData(){return pv.getStaticData()}}class gv extends yn{constructor(n){super(n,gv.getStaticData())}static compile(n){const s=(n.func||"").split(` -`).map(i=>` ${i}`);return s.unshift(` _sendToFrontEnd(${n._id}, {func: 'executed'});`),s.unshift("// user function"),s.join(` -`)}renderDebug(){return I.I18n.t("Function: executed")}onTagChange(n){this.setState({inputs:[{nameRender:"renderModalInput",attr:"func",noTextEdit:!0,defaultValue:'console.log("Test")',nameBlock:"Function"}]},()=>super.onTagChange(n))}static getStaticData(){return{acceptedBy:"actions",name:"User function",id:"ActionFunction",icon:"Functions",title:"Write your own code",helpDialog:"This is advances option. You can write your own code here and it will be executed on trigger"}}getData(){return gv.getStaticData()}}class fv extends yn{constructor(n){super(n,fv.getStaticData())}isAllTriggersOnState(){var n,s,i,a;return!!((s=(n=this.props.userRules)==null?void 0:n.triggers)!=null&&s.find(c=>c.id==="TriggerState"))&&!((a=(i=this.props.userRules)==null?void 0:i.triggers)!=null&&a.find(c=>c.id!=="TriggerState"))}static compile(n,s){let i=n.value;n.useTrigger?i=n.toggle?"!obj.state.val":"obj.state.val":(i==null&&(i=""),typeof n.value=="string"&&parseFloat(n.value).toString()!==n.value&&n.value!=="true"&&n.value!=="false"&&(i=`"${i.replace(/"/g,'\\"')}"${yn.getReplacesInText(s)}`));let a;return n.toggle&&!n.useTrigger?a=`const subActionVar${n._id} = !(await getStateAsync("${n.oid}")).val`:a=`const subActionVar${n._id} = ${i}`,`// set delayed state ${n.oid} to ${n.toggle&&!n.useTrigger?"toggle":i} with delay of ${n.delay}ms - ${a}; - _sendToFrontEnd(${n._id}, {val: subActionVar${n._id}, ack: ${n.tagCard==="update"}}); - setStateDelayed("${n.oid}", subActionVar${n._id}, ${n.tagCard==="update"}, ${parseInt(n.delay,10)}, ${n.clearRunning?"true":"false"});`}renderDebug(n){var s,i;return f.jsxs("span",{children:[I.I18n.t("Set:")," ",f.jsx("span",{className:n.data.ack?(s=this.props.classes)==null?void 0:s.valueAck:(i=this.props.classes)==null?void 0:i.valueNotAck,children:Dh(n.data.val)})]})}_setInputs(n,s){const i=this.isAllTriggersOnState();s=s===void 0?this.state.settings.toggle:s,n=n===void 0?this.state.settings.useTrigger:n;let a="",c;const{oidType:h,oidUnit:g,oidStates:b,oidMax:$,oidMin:y,oidRole:w,oidWrite:T,oidStep:C}=this.state.settings;let E;h&&(h==="number"?(a="number",$!==void 0&&y!==void 0&&(a="slider")):h==="boolean"?(a="boolean",w&&w.includes("button")&&T&&(a="button")):(a="",w&&w.includes("color")&&(a="color")),b&&(c=Object.keys(b).map(A=>({value:A,title:b[A]})),a="select"));let k;if(i&&n)k=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1}],a==="boolean"&&k.push({backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1});else{switch(a){case"number":k=[{backText:g||"",frontText:"with",nameRender:"renderNumber",defaultValue:$===void 0?0:$,attr:"value"}],this.state.settings.value!==void 0&&isNaN(parseFloat(this.state.settings.value))&&(E={value:$===void 0?0:$});break;case"slider":{k=[{nameRender:"renderSlider",defaultValue:$,min:y,max:$,unit:g,step:C,attr:"value"}];const A=parseFloat(this.state.settings.value);this.state.settings.value!==void 0&&(isNaN(A)||A$)&&(E={value:$});break}case"select":k=[{nameRender:"renderSelect",frontText:"with",options:c,defaultValue:(c==null?void 0:c[0].value)||"",attr:"value"}],this.state.settings.value!==void 0&&!(c!=null&&c.find(A=>A.value===this.state.settings.value))&&(E={value:(c==null?void 0:c[0].value)||""});break;case"boolean":k=[{backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1}],s||k.push({backText:"true",frontText:"false",nameRender:"renderSwitch",defaultValue:!1,attr:"value"}),this.state.settings.value!==void 0&&this.state.settings.value!==!1&&this.state.settings.value!==!0&&(E={value:!1});break;case"button":k=[{nameRender:"renderButton",defaultValue:!0,attr:"value"}],this.state.settings.value!==void 0&&this.state.settings.value!==!0&&(E={value:!0});break;case"color":k=[{nameRender:"renderColor",frontText:"with",defaultValue:"#FFFFFF",attr:"value"}],this.state.settings.value!==void 0&&(typeof this.state.settings.value!="string"||!this.state.settings.value.startsWith("#")&&!this.state.settings.value.startsWith("rgb"))&&(E={value:"#FFFFFF"});break;default:k=[{backText:g||"",frontText:"with",nameRender:"renderText",defaultValue:"",attr:"value"}];break}i&&k.unshift({backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"})}return k.push({backText:"ms",frontText:"Delay",nameRender:"renderNumber",defaultValue:1e3,noHelperText:!0,attr:"delay"}),k.push({backText:"clear running",nameRender:"renderCheckbox",defaultValue:!0,attr:"clearRunning"}),{inputs:k,newSettings:E}}onTagChange(n,s,i,a,c){c=c===void 0?this.state.settings.useTrigger:c;const{inputs:h,newSettings:g}=this._setInputs(c,a);h.unshift({nameRender:"renderObjectID",attr:"oid",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:h},()=>super.onTagChange(null,()=>{if(g){const b=JSON.parse(JSON.stringify(this.state.settings));Object.assign(b,g),this.setState(b),this.props.onChange(b)}}))}onValueChanged(n,s){this.onTagChange(void 0,void 0,void 0,s==="toggle"?n:void 0,s==="useTrigger"?n:void 0)}onUpdate(){this.onTagChange()}static getStaticData(){return{acceptedBy:"actions",name:"Set with delay",id:"ActionSetStateDelayed",icon:"PlayForWork",tagCardArray:["control","update"],title:"Control or update some state with delay",helpDialog:"You can use %s in the value to use the current trigger value or %id to display the triggered object ID"}}getData(){return fv.getStaticData()}}class mv extends yn{constructor(n){super(n,mv.getStaticData())}isAllTriggersOnState(){var n,s,i,a;return!!((s=(n=this.props.userRules)==null?void 0:n.triggers)!=null&&s.find(c=>c.id==="TriggerState"))&&!((a=(i=this.props.userRules)==null?void 0:i.triggers)!=null&&a.find(c=>c.id!=="TriggerState"))}static compile(n){const s=`const val2_${n._id} = (await getStateAsync("${n.oid1}")).val;`,i=`const val1_${n._id} = (await getStateAsync("${n.oid2}")).val;`;return`// ${n.oid1} ${n.operation} ${n.oid2} => ${n.oidResult} - ${s} - ${i} - _sendToFrontEnd(${n._id}, {val: val1_${n._id} ${n.operation} val2_${n._id}, ack: ${n.tagCard==="update"}}); - await setStateAsync("${n.oidResult}", val1_${n._id} ${n.operation} val2_${n._id}, ${n.tagCard==="update"});`}renderDebug(n){var s,i;return f.jsxs("span",{children:[I.I18n.t("Set:")," ",f.jsx("span",{className:n.data.ack?(s=this.props.classes)==null?void 0:s.valueAck:(i=this.props.classes)==null?void 0:i.valueNotAck,children:Dh(n.data.val)})]})}onTagChange(){const n=[];n.push({nameRender:"renderObjectID",title:"ID1",attr:"oid1",defaultValue:"",checkReadOnly:!1}),n.push({nameRender:"renderSelect",options:[{value:"+",title:"+"},{value:"-",title:"-"},{value:"*",title:"*"},{value:"/",title:"/"}],doNotTranslate:!0,defaultValue:"+",attr:"operation"}),n.push({nameRender:"renderObjectID",title:"ID2",attr:"oid2",defaultValue:"",checkReadOnly:!1}),n.push({nameRender:"renderNameText",defaultValue:"store in",attr:"textEqual"}),n.push({nameRender:"renderObjectID",attr:"oidResult",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:n},()=>super.onTagChange(null,()=>{const s=JSON.parse(JSON.stringify(this.state.settings));this.props.onChange(s)}))}onValueChanged(n,s){this.onTagChange()}onUpdate(){this.onTagChange()}static getStaticData(){return{acceptedBy:"actions",name:"Operate two states",id:"ActionOperateStates",icon:"AddBox",tagCardArray:["control","update"],title:"Operations with two states"}}getData(){return mv.getStaticData()}}const qN=[pu,av,lv,Cf,Sf,ql,cv,uv,dv,hv,pv,gv,fv,mv],_$={sayit:sv,pushover:rv,"whatsapp-cmb":iv,pushsafer:ov},Gf=ve.createContext({blocks:null,socket:null,onUpdate:!1,setOnUpdate:o=>{},setOnDebugMessage:o=>{},onDebugMessage:[],enableSimulation:!1,setEnableSimulation:o=>{}}),YN=({children:o,socket:n})=>{const[s,i]=ve.useState(null),[a,c]=ve.useState(!1),[h,g]=ve.useState([]),[b,$]=ve.useState(!1);return ve.useEffect(()=>{a&&c(!1)},[a]),ve.useEffect(()=>{(async()=>{const y=await n.getAdapterInstances(),w=Object.keys(_$).filter(A=>y.find(P=>{var N;return((N=P==null?void 0:P.common)==null?void 0:N.name)===A})),T=[],C=y.filter(A=>A.common.javascriptRules),E=[];for(const A of C){if(E.includes(A.common.name)||!A.common.javascriptRules)continue;let P;if(A.common.javascriptRules.url.startsWith("http:")||A.common.javascriptRules.url.startsWith("https:")?P=A.common.javascriptRules.url:A.common.javascriptRules.url.startsWith("./")?P=`${window.location.protocol}//${window.location.host}${A.common.javascriptRules.url.replace(/^\./,"")}`:P=`${window.location.protocol}//${window.location.host}/adapter/${A.common.name}/${A.common.javascriptRules.url}`,A.common.javascriptRules.i18n===!0){const N=P.lastIndexOf("/");let B;N!==-1?B=P.substring(0,N):B=P;const S=I.I18n.getLanguage(),H=`${B}/i18n/${S}.json`;await fetch(H).then(q=>q.json()).then(q=>I.I18n.extendTranslations(q,S)).catch(q=>{if(S!=="en")return fetch(`${B}/i18n/en.json`).then(se=>se.json()).then(se=>I.I18n.extendTranslations(se,S)).catch(se=>console.error(`Cannot load i18n "${H}": ${se}`));console.log(`Cannot load i18n "${H}": ${q}`)})}else if(A.common.javascriptRules.i18n&&typeof A.common.javascriptRules.i18n=="object")try{I.I18n.extendTranslations(A.common.javascriptRules.i18n)}catch(N){console.error(`Cannot import i18n for "${A.common.javascriptRules.name}": ${N}`)}try{p_.registerRemotes([{name:A.common.javascriptRules.name,entry:P,type:A.common.javascriptRules.type}]);const N=(await p_.loadRemote(`${A.common.javascriptRules.name}/${A.common.javascriptRules.name}`)).default;N&&(T.push(N),E.push(A.common.name),_$[A.common.name]=null)}catch(N){console.error(`Cannot load component "${A.common.javascriptRules.name}": ${N}`)}}const k=w.filter(A=>_$[A]).map(A=>_$[A]);i([...qN,...k,...T])})()},[]),f.jsx(Gf.Provider,{value:{blocks:s,socket:n,onUpdate:a,setOnUpdate:c,onDebugMessage:h,setOnDebugMessage:g,enableSimulation:b,setEnableSimulation:$},children:o})};function XN(o,n,s){const{_id:i,acceptedBy:a}=o;let c;if(!a||!n[a])return console.warn(`Cannot find ${a}`),n;switch(a){case"actions":if(c=n.actions[s].find(h=>h._id===i),!c)console.warn(`Cannot find ${i}`);else{const h=n.actions[s].indexOf(c);n.actions[s][h]=o}return n;case"conditions":if(c=n.conditions[s].find(h=>h._id===i),!c)console.warn(`Cannot find ${i}`);else{const h=n.conditions[s].indexOf(c);n.conditions[s][h]=o}return n;default:if(c=n.triggers.find(h=>h._id===i),!c)console.warn(`Cannot find ${i}`);else{const h=n.triggers.indexOf(c);n.triggers[h]=o}return n}}const zk=ve.memo(o=>{var Y;const{setUserRules:n,userRules:s,_id:i,id:a,blockValue:c,active:h,acceptedBy:g,isTourOpen:b,setTourStep:$,tourStep:y}=o,[w,T]=ve.useState(null),{blocks:C,socket:E,onUpdate:k,setOnUpdate:A,onDebugMessage:P,enableSimulation:N}=ve.useContext(Gf),B=ve.useCallback(X=>C==null?void 0:C.find(ce=>ce.getStaticData().id===X),[C]),S=ve.useCallback(X=>{const ce=XN(X,s,c);ce&&n(ce)},[s]),H=X=>{X.currentTarget!==w&&T(X.currentTarget)},q=()=>T(null),se=ve.useMemo(()=>{const X=B(a)||yn;return f.jsx(X,{...o,notFound:!B(a),isTourOpen:b,setTourStep:$,tourStep:y,onUpdate:k,setOnUpdate:A,enableSimulation:N,onDebugMessage:P,onChange:S,className:void 0,socket:E})},[s,k,P,N]),[ee,K]=ve.useState(!1);return f.jsxs("div",{onMouseMove:H,onMouseEnter:H,onMouseLeave:q,onMouseDown:X=>{if(X.ctrlKey){let ce;const W=Rh(g,s,c);g==="conditions"?(ce=W.conditions[c].find(te=>te._id===i),ce&&W.conditions[c].splice(W.conditions[c].indexOf(ce),0,{...ce,_id:Date.now()})):g==="actions"?(ce=W.actions[c].find(te=>te._id===i),ce&&W.actions[c].splice(W.actions[c].indexOf(ce),0,{...ce,_id:Date.now()})):(ce=W.triggers.find(te=>te._id===i),ce&&W.triggers.splice(W[g].indexOf(ce),0,{...ce,_id:Date.now()})),n(W)}},id:"height",style:h?{width:(((Y=document.getElementById("width"))==null?void 0:Y.clientWidth)||0)-70}:void 0,className:`${mh.cardStyle} ${h?mh.cardStyleActive:null} ${ee?mh.isDelete:null}`,children:[f.jsx("div",{className:mh.drag_mobile}),se,n&&f.jsx("div",{className:mh.controlMenu,style:w?{opacity:1}:{opacity:0},children:f.jsx("div",{onClick:()=>{let X=Rh(g,s,c);X=du(g,X,c,i),K(!0),setTimeout(()=>{g==="triggers"&&A(!0),n(X)},300)},className:mh.closeBtn})})]})}),ZN={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},QN=(o,n,s)=>{if(!o||!n)return{display:"none"};let{x:i,y:a}=n;const c=`translate(${i}px, ${a}px)`;return{transform:c,WebkitTransform:c}},eL=o=>{const{itemType:n,isDragging:s,item:i,initialOffset:a,currentOffset:c,targetIds:h}=vA(b=>({item:b.getItem(),itemType:b.getItemType(),initialOffset:b.getInitialSourceClientOffset(),currentOffset:b.getSourceClientOffset(),isDragging:b.isDragging(),targetIds:b.getTargetIds()})),g=()=>{switch(n){case"box":return h.length?f.jsx(zk,{active:!0,...i,allBlocks:o.allBlocks}):f.jsx(Mk,{active:!0,...i,socket:o.socket});default:return null}};return s?f.jsx("div",{style:ZN,children:f.jsx("div",{style:QN(a,c),children:g()})}):null},tL="_border_wrpm3_1",nL="_emptyBlockStyle_wrpm3_6",sL="_emptyBlock_wrpm3_6",rL="_selectOnChange_wrpm3_22",iL="_selectOnChangeHelp_wrpm3_28",oL="_selectOnChangeHelpIcon_wrpm3_34",aL="_emptyBlockNone_wrpm3_49",lL="_mainBlockItemRules_wrpm3_55",cL="_nameBlockItems_wrpm3_63",uL="_contentBlockItem_wrpm3_73",dL="_wrapperMargin_wrpm3_81",hL="_contentHeightOn_wrpm3_87",pL="_contentHeightOff_wrpm3_99",gL="_cardAdd_wrpm3_105",fL="_blockCardAdd_wrpm3_125",mL="_addClassOverflow_wrpm3_136",bL="_addClassHeight_wrpm3_140",ps={border:tL,emptyBlockStyle:nL,emptyBlock:sL,selectOnChange:rL,selectOnChangeHelp:iL,selectOnChangeHelpIcon:oL,emptyBlockNone:aL,mainBlockItemRules:lL,nameBlockItems:cL,contentBlockItem:uL,wrapperMargin:dL,contentHeightOn:hL,contentHeightOff:pL,cardAdd:gL,blockCardAdd:fL,addClassOverflow:mL,addClassHeight:bL};function U_(o,n){const[s,i]=ve.useState(window.localStorage.getItem(n)?JSON.parse(window.localStorage.getItem(n)||""):o);return[s,c=>{window.localStorage.setItem(n,JSON.stringify(c)),i(c)},!!window.localStorage.getItem(n)]}var bv={exports:{}};/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */var $L=bv.exports;(function(o,n){(function(){var s,i="4.17.21",a=200,c="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",h="Expected a function",g="Invalid `variable` option passed into `_.template`",b="__lodash_hash_undefined__",$=500,y="__lodash_placeholder__",w=1,T=2,C=4,E=1,k=2,A=1,P=2,N=4,B=8,S=16,H=32,q=64,se=128,ee=256,K=512,Y=30,X="...",ce=800,W=16,te=1,ke=2,Z=3,ze=1/0,Ce=9007199254740991,at=17976931348623157e292,he=NaN,Ae=4294967295,de=Ae-1,Se=Ae>>>1,xe=[["ary",se],["bind",A],["bindKey",P],["curry",B],["curryRight",S],["flip",K],["partial",H],["partialRight",q],["rearg",ee]],He="[object Arguments]",ne="[object Array]",Ke="[object AsyncFunction]",Te="[object Boolean]",Je="[object Date]",rt="[object DOMException]",ht="[object Error]",nt="[object Function]",Wt="[object GeneratorFunction]",St="[object Map]",lt="[object Number]",ft="[object Null]",st="[object Object]",At="[object Promise]",mn="[object Proxy]",Ue="[object RegExp]",Nt="[object Set]",wt="[object String]",qt="[object Symbol]",ct="[object Undefined]",me="[object WeakMap]",ge="[object WeakSet]",ue="[object ArrayBuffer]",we="[object DataView]",Ve="[object Float32Array]",re="[object Float64Array]",Fe="[object Int8Array]",It="[object Int16Array]",pt="[object Int32Array]",En="[object Uint8Array]",mt="[object Uint8ClampedArray]",Cn="[object Uint16Array]",$n="[object Uint32Array]",zn=/\b__p \+= '';/g,Jn=/\b(__p \+=) '' \+/g,Gs=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ns=/&(?:amp|lt|gt|quot|#39);/g,Rn=/[&<>"']/g,Kt=RegExp(ns.source),Pn=RegExp(Rn.source),cs=/<%-([\s\S]+?)%>/g,Ks=/<%([\s\S]+?)%>/g,jn=/<%=([\s\S]+?)%>/g,Un=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Rs=/^\w*$/,ii=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ir=/[\\^$.*+?()[\]{}|]/g,ec=RegExp(Ir.source),xr=/^\s+/,Ka=/\s/,tc=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,nc=/\{\n\/\* \[wrapped with (.+)\] \*/,Tu=/,? & /,Yo=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,z=/[()=,{}\[\]\/\s]/,U=/\\(\\)?/g,R=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,j=/\w*$/,F=/^[-+]0x[0-9a-f]+$/i,pe=/^0b[01]+$/i,Ee=/^\[object .+?Constructor\]$/,_e=/^0o[0-7]+$/i,ae=/^(?:0|[1-9]\d*)$/,je=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,it=/($^)/,Ft=/['\n\r\u2028\u2029\\]/g,Yt="\\ud800-\\udfff",on="\\u0300-\\u036f",Lt="\\ufe20-\\ufe2f",an="\\u20d0-\\u20ff",_n=on+Lt+an,Tt="\\u2700-\\u27bf",In="a-z\\xdf-\\xf6\\xf8-\\xff",ss="\\xac\\xb1\\xd7\\xf7",Js="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Xo="\\u2000-\\u206f",Dr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ho="A-Z\\xc0-\\xd6\\xd8-\\xde",Ts="\\ufe0e\\ufe0f",tn=ss+Js+Xo+Dr,qs="['’]",Oi="["+Yt+"]",rs="["+tn+"]",Ms="["+_n+"]",po="\\d+",Zo="["+Tt+"]",Ri="["+In+"]",go="[^"+Yt+tn+po+Tt+In+ho+"]",fo="\\ud83c[\\udffb-\\udfff]",oi="(?:"+Ms+"|"+fo+")",Mi="[^"+Yt+"]",ku="(?:\\ud83c[\\udde6-\\uddff]){2}",Ja="[\\ud800-\\udbff][\\udc00-\\udfff]",Qo="["+ho+"]",Nh="\\u200d",sc="(?:"+Ri+"|"+go+")",Xf="(?:"+Qo+"|"+go+")",ea="(?:"+qs+"(?:d|ll|m|re|s|t|ve))?",Lh="(?:"+qs+"(?:D|LL|M|RE|S|T|VE))?",Eu=oi+"?",rc="["+Ts+"]?",Bh="(?:"+Nh+"(?:"+[Mi,ku,Ja].join("|")+")"+rc+Eu+")*",Ph="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Zf="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",ic=rc+Eu+Bh,qa="(?:"+[Zo,ku,Ja].join("|")+")"+ic,Iu="(?:"+[Mi+Ms+"?",Ms,ku,Ja,Oi].join("|")+")",Qf=RegExp(qs,"g"),jh=RegExp(Ms,"g"),oc=RegExp(fo+"(?="+fo+")|"+Iu+ic,"g"),em=RegExp([Qo+"?"+Ri+"+"+ea+"(?="+[rs,Qo,"$"].join("|")+")",Xf+"+"+Lh+"(?="+[rs,Qo+sc,"$"].join("|")+")",Qo+"?"+sc+"+"+ea,Qo+"+"+Lh,Zf,Ph,po,qa].join("|"),"g"),tm=RegExp("["+Nh+Yt+_n+Ts+"]"),ta=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,nm=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ac=-1,Qt={};Qt[Ve]=Qt[re]=Qt[Fe]=Qt[It]=Qt[pt]=Qt[En]=Qt[mt]=Qt[Cn]=Qt[$n]=!0,Qt[He]=Qt[ne]=Qt[ue]=Qt[Te]=Qt[we]=Qt[Je]=Qt[ht]=Qt[nt]=Qt[St]=Qt[lt]=Qt[st]=Qt[Ue]=Qt[Nt]=Qt[wt]=Qt[me]=!1;var Sn={};Sn[He]=Sn[ne]=Sn[ue]=Sn[we]=Sn[Te]=Sn[Je]=Sn[Ve]=Sn[re]=Sn[Fe]=Sn[It]=Sn[pt]=Sn[St]=Sn[lt]=Sn[st]=Sn[Ue]=Sn[Nt]=Sn[wt]=Sn[qt]=Sn[En]=Sn[mt]=Sn[Cn]=Sn[$n]=!0,Sn[ht]=Sn[nt]=Sn[me]=!1;var sm={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},rm={"&":"&","<":"<",">":">",'"':""","'":"'"},im={"&":"&","<":"<",">":">",""":'"',"'":"'"},om={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},am=parseFloat,lm=parseInt,xu=typeof Vo=="object"&&Vo&&Vo.Object===Object&&Vo,Ni=typeof self=="object"&&self&&self.Object===Object&&self,Wn=xu||Ni||Function("return this")(),lc=n&&!n.nodeType&&n,mo=lc&&!0&&o&&!o.nodeType&&o,Fh=mo&&mo.exports===lc,Du=Fh&&xu.process,hr=function(){try{var ie=mo&&mo.require&&mo.require("util").types;return ie||Du&&Du.binding&&Du.binding("util")}catch{}}(),zh=hr&&hr.isArrayBuffer,Uh=hr&&hr.isDate,Wh=hr&&hr.isMap,Hh=hr&&hr.isRegExp,Vh=hr&&hr.isSet,Au=hr&&hr.isTypedArray;function Ys(ie,De,be){switch(be.length){case 0:return ie.call(De);case 1:return ie.call(De,be[0]);case 2:return ie.call(De,be[0],be[1]);case 3:return ie.call(De,be[0],be[1],be[2])}return ie.apply(De,be)}function Ya(ie,De,be,et){for(var xt=-1,rn=ie==null?0:ie.length;++xt-1}function cc(ie,De,be){for(var et=-1,xt=ie==null?0:ie.length;++et-1;);return be}function Zh(ie,De){for(var be=ie.length;be--&&bo(De,ie[be],0)>-1;);return be}function hm(ie,De){for(var be=ie.length,et=0;be--;)ie[be]===De&&++et;return et}var pm=tl(sm),gm=tl(rm);function sl(ie){return"\\"+om[ie]}function Qh(ie,De){return ie==null?s:ie[De]}function $o(ie){return tm.test(ie)}function rl(ie){return ta.test(ie)}function Nu(ie){for(var De,be=[];!(De=ie.next()).done;)be.push(De.value);return be}function Lu(ie){var De=-1,be=Array(ie.size);return ie.forEach(function(et,xt){be[++De]=[xt,et]}),be}function ep(ie,De){return function(be){return ie(De(be))}}function li(ie,De){for(var be=-1,et=ie.length,xt=0,rn=[];++be-1}function Mm(u,d){var m=this.__data__,_=$l(m,u);return _<0?(++this.size,m.push([u,d])):m[_][1]=d,this}Rr.prototype.clear=gp,Rr.prototype.delete=Ku,Rr.prototype.get=Om,Rr.prototype.has=Rm,Rr.prototype.set=Mm;function di(u){var d=-1,m=u==null?0:u.length;for(this.clear();++d=d?u:d)),u}function gr(u,d,m,_,x,L){var V,Q=d&w,le=d&T,Me=d&C;if(m&&(V=x?m(u,_,x,L):m(u)),V!==s)return V;if(!An(u))return u;var Ne=jt(u);if(Ne){if(V=Ji(u),!Q)return Vn(u,V)}else{var Pe=Le(u),qe=Pe==nt||Pe==Wt;if(ei(u))return Wp(u,Q);if(Pe==st||Pe==He||qe&&!x){if(V=le||qe?{}:Lr(u),!Q)return le?Gm(u,Bm(V,u)):Ic(u,yc(V,u))}else{if(!Sn[Pe])return x?u:{};V=ng(u,Pe,Q)}}L||(L=new pr);var dt=L.get(u);if(dt)return dt;L.set(u,V),Rg(u)?u.forEach(function(vt){V.add(gr(vt,d,m,vt,u,L))}):Rb(u)&&u.forEach(function(vt,Xt){V.set(Xt,gr(vt,d,m,Xt,u,L))});var $t=Me?le?_d:Ac:le?hs:ls,Ut=Ne?s:$t(u);return Ns(Ut||u,function(vt,Xt){Ut&&(Xt=vt,vt=u[Xt]),bl(V,Xt,gr(vt,d,m,Xt,u,L))}),V}function $p(u){var d=ls(u);return function(m){return vp(m,u,d)}}function vp(u,d,m){var _=m.length;if(u==null)return!_;for(u=kt(u);_--;){var x=m[_],L=d[x],V=u[x];if(V===s&&!(x in u)||!L(V))return!1}return!0}function vl(u,d,m){if(typeof u!="function")throw new us(h);return Il(function(){u.apply(s,m)},d)}function Wi(u,d,m,_){var x=-1,L=Xa,V=!0,Q=u.length,le=[],Me=d.length;if(!Q)return le;m&&(d=wn(d,Xs(m))),_?(L=cc,V=!1):d.length>=a&&(L=ra,V=!1,d=new Mr(d));e:for(;++xx?0:x+m),_=_===s||_>x?x:Ct(_),_<0&&(_+=x),_=m>_?0:Pl(_);m<_;)u[m++]=d;return u}function _c(u,d){var m=[];return Hi(u,function(_,x,L){d(_,x,L)&&m.push(_)}),m}function os(u,d,m,_,x){var L=-1,V=u.length;for(m||(m=ds),x||(x=[]);++L0&&m(Q)?d>1?os(Q,d-1,m,_,x):Kr(x,Q):_||(x[x.length]=Q)}return x}var ed=Vp(),wp=Vp(!0);function Yr(u,d){return u&&ed(u,d,ls)}function So(u,d){return u&&wp(u,d,ls)}function _l(u,d){return ai(d,function(m){return vs(u[m])})}function To(u,d){d=ks(d,u);for(var m=0,_=d.length;u!=null&&m<_;)u=u[bs(d[m++])];return m&&m==_?u:s}function wc(u,d,m){var _=d(u);return jt(u)?_:Kr(_,m(u))}function Dn(u){return u==null?u===s?ct:ft:Fi&&Fi in kt(u)?tg(u):Bc(u)}function td(u,d){return u>d}function ko(u,d){return u!=null&&nn.call(u,d)}function Cp(u,d){return u!=null&&d in kt(u)}function Pm(u,d,m){return u>=fs(d,m)&&u=120&&Ne.length>=120)?new Mr(V&&Ne):s}Ne=u[0];var Pe=-1,qe=Q[0];e:for(;++Pe-1;)Q!==u&&mc.call(Q,le,1),mc.call(u,le,1);return u}function ud(u,d){for(var m=u?d.length:0,_=m-1;m--;){var x=d[m];if(m==_||x!==L){var L=x;oe(x)?mc.call(u,x,1):fd(u,x)}}return u}function dd(u,d){return u+vo(yo()*(d-u+1))}function Mp(u,d,m,_){for(var x=-1,L=Xn(pl((d-u)/(m||1)),0),V=be(L);L--;)V[_?L:++x]=u,u+=m;return V}function Sc(u,d){var m="";if(!u||d<1||d>Ce)return m;do d%2&&(m+=u),d=vo(d/2),d&&(u+=u);while(d);return m}function Ht(u,d){return Rt(El(u,d,Ds),u+"")}function Np(u){return Yu(Pa(u))}function Lp(u,d){var m=Pa(u);return Br(m,Co(d,0,m.length))}function fa(u,d,m,_){if(!An(u))return u;d=ks(d,u);for(var x=-1,L=d.length,V=L-1,Q=u;Q!=null&&++xx?0:x+d),m=m>x?x:m,m<0&&(m+=x),x=d>m?0:m-d>>>0,d>>>=0;for(var L=be(x);++_>>1,V=u[L];V!==null&&!ir(V)&&(m?V<=d:V=a){var Me=d?null:qp(u);if(Me)return il(Me);V=!1,x=ra,le=new Mr}else le=d?[]:Q;e:for(;++_=_?u:Qs(u,d,m)}var Up=ju||function(u){return Wn.clearTimeout(u)};function Wp(u,d){if(d)return u.slice();var m=u.length,_=dl?dl(m):new u.constructor(m);return u.copy(_),_}function md(u){var d=new u.constructor(u.byteLength);return new ul(d).set(new ul(u)),d}function Hm(u,d){var m=d?md(u.buffer):u.buffer;return new u.constructor(m,u.byteOffset,u.byteLength)}function Vm(u){var d=new u.constructor(u.source,j.exec(u));return d.lastIndex=u.lastIndex,d}function ty(u){return _o?kt(_o.call(u)):{}}function bd(u,d){var m=d?md(u.buffer):u.buffer;return new u.constructor(m,u.byteOffset,u.length)}function Hp(u,d){if(u!==d){var m=u!==s,_=u===null,x=u===u,L=ir(u),V=d!==s,Q=d===null,le=d===d,Me=ir(d);if(!Q&&!Me&&!L&&u>d||L&&V&&le&&!Q&&!Me||_&&V&&le||!m&&le||!x)return 1;if(!_&&!L&&!Me&&u=Q)return le;var Me=m[_];return le*(Me=="desc"?-1:1)}}return u.index-d.index}function $d(u,d,m,_){for(var x=-1,L=u.length,V=m.length,Q=-1,le=d.length,Me=Xn(L-V,0),Ne=be(le+Me),Pe=!_;++Q1?m[x-1]:s,V=x>2?m[2]:s;for(L=u.length>3&&typeof L=="function"?(x--,L):s,V&&Bt(m[0],m[1],V)&&(L=x<3?s:L,x=1),d=kt(d);++_-1?x[L?d[V]:V]:s}}function Kp(u){return mi(function(d){var m=d.length,_=m,x=Zn.prototype.thru;for(u&&d.reverse();_--;){var L=d[_];if(typeof L!="function")throw new us(h);if(x&&!V&&Oc(L)=="wrapper")var V=new Zn([],!0)}for(_=V?_:m;++_1&&en.reverse(),Ne&&leQ))return!1;var Me=L.get(u),Ne=L.get(d);if(Me&&Ne)return Me==d&&Ne==u;var Pe=-1,qe=!0,dt=m&k?new Mr:s;for(L.set(u,d),L.set(d,u);++Pe1?"& ":"")+d[_],d=d.join(m>2?", ":" "),u.replace(tc,`{ -/* [wrapped with `+d+`] */ -`)}function ds(u){return jt(u)||eo(u)||!!(hl&&u&&u[hl])}function oe(u,d){var m=typeof u;return d=d??Ce,!!d&&(m=="number"||m!="symbol"&&ae.test(u))&&u>-1&&u%1==0&&u0){if(++d>=ce)return arguments[0]}else d=0;return u.apply(s,arguments)}}function Br(u,d){var m=-1,_=u.length,x=_-1;for(d=d===s?_:d;++m1?u[d-1]:s;return m=typeof m=="function"?(u.pop(),m):s,Vc(u,m)});function ka(u){var d=M(u);return d.__chain__=!0,d}function ln(u,d){return d(u),u}function Zi(u,d){return d(u)}var Ea=mi(function(u){var d=u.length,m=d?u[0]:0,_=this.__wrapped__,x=function(L){return Zu(L,u)};return d>1||this.__actions__.length||!(_ instanceof Ot)||!oe(m)?this.thru(x):(_=_.slice(m,+m+(d?1:0)),_.__actions__.push({func:Zi,args:[x],thisArg:s}),new Zn(_,this.__chain__).thru(function(L){return d&&!L.length&&L.push(s),L}))});function vg(){return ka(this)}function Do(){return new Zn(this.value(),this.__chain__)}function _b(){this.__values__===s&&(this.__values__=Lb(this.value()));var u=this.__index__>=this.__values__.length,d=u?s:this.__values__[this.__index__++];return{done:u,value:d}}function yg(){return this}function Is(u){for(var d,m=this;m instanceof ui;){var _=og(m);_.__index__=0,_.__values__=s,d?x.__wrapped__=_:d=_;var x=_;m=m.__wrapped__}return x.__wrapped__=u,d}function Gc(){var u=this.__wrapped__;if(u instanceof Ot){var d=u;return this.__actions__.length&&(d=new Ot(this)),d=d.reverse(),d.__actions__.push({func:Zi,args:[Yi],thisArg:s}),new Zn(d,this.__chain__)}return this.thru(Yi)}function Ol(){return Gi(this.__wrapped__,this.__actions__)}var Md=gi(function(u,d,m){nn.call(u,m)?++u[m]:pi(u,m,1)});function Kc(u,d,m){var _=jt(u)?na:yp;return m&&Bt(u,d,m)&&(d=s),_(u,gt(d,3))}function Rl(u,d){var m=jt(u)?ai:_c;return m(u,gt(d,3))}var wb=Km(ib),Cb=Km(ob);function Ia(u,d){return os(xa(u,d),1)}function _g(u,d){return os(xa(u,d),ze)}function wg(u,d,m){return m=m===s?1:Ct(m),os(xa(u,d),m)}function mr(u,d){var m=jt(u)?Ns:Hi;return m(u,gt(d,3))}function Ml(u,d){var m=jt(u)?cm:Qu;return m(u,gt(d,3))}var Cg=gi(function(u,d,m){nn.call(u,m)?u[m].push(d):pi(u,m,[d])});function Sg(u,d,m,_){u=ts(u)?u:Pa(u),m=m&&!_?Ct(m):0;var x=u.length;return m<0&&(m=Xn(x+m,0)),tu(u)?m<=x&&u.indexOf(d,m)>-1:!!x&&bo(u,d,m)>-1}var Sb=Ht(function(u,d,m){var _=-1,x=typeof d=="function",L=ts(u)?be(u.length):[];return Hi(u,function(V){L[++_]=x?Ys(d,V,m):ha(V,d,m)}),L}),Tb=gi(function(u,d,m){pi(u,m,d)});function xa(u,d){var m=jt(u)?wn:Dp;return m(u,gt(d,3))}function es(u,d,m,_){return u==null?[]:(jt(d)||(d=d==null?[]:[d]),m=_?s:m,jt(m)||(m=m==null?[]:[m]),ad(u,d,m))}var br=gi(function(u,d,m){u[m?0:1].push(d)},function(){return[[],[]]});function Tg(u,d,m){var _=jt(u)?uc:Jr,x=arguments.length<3;return _(u,gt(d,4),m,x,Hi)}function kg(u,d,m){var _=jt(u)?um:Jr,x=arguments.length<3;return _(u,gt(d,4),m,x,Qu)}function kb(u,d){var m=jt(u)?ai:_c;return m(u,Ld(gt(d,3)))}function jr(u){var d=jt(u)?Yu:Np;return d(u)}function Jc(u,d,m){(m?Bt(u,d,m):d===s)?d=1:d=Ct(d);var _=jt(u)?Xu:Lp;return _(u,d)}function vn(u){var d=jt(u)?bp:Pp;return d(u)}function Gn(u){if(u==null)return 0;if(ts(u))return tu(u)?ia(u):u.length;var d=Le(u);return d==St||d==Nt?u.size:rd(u).length}function Nl(u,d,m){var _=jt(u)?dc:Wm;return m&&Bt(u,d,m)&&(d=s),_(u,gt(d,3))}var Eg=Ht(function(u,d){if(u==null)return[];var m=d.length;return m>1&&Bt(u,d[0],d[1])?d=[]:m>2&&Bt(d[0],d[1],d[2])&&(d=[d[0]]),ad(u,os(d,1),[])}),Da=_m||function(){return Wn.Date.now()};function Nd(u,d){if(typeof d!="function")throw new us(h);return u=Ct(u),function(){if(--u<1)return d.apply(this,arguments)}}function Aa(u,d,m){return d=m?s:d,d=u&&d==null?u.length:d,fi(u,se,s,s,s,s,d)}function Oa(u,d){var m;if(typeof d!="function")throw new us(h);return u=Ct(u),function(){return--u>0&&(m=d.apply(this,arguments)),u<=1&&(d=s),m}}var $r=Ht(function(u,d,m){var _=A;if(m.length){var x=li(m,_a($r));_|=H}return fi(u,_,d,m,x)}),Fr=Ht(function(u,d,m){var _=A|P;if(m.length){var x=li(m,_a(Fr));_|=H}return fi(d,_,u,m,x)});function qc(u,d,m){d=m?s:d;var _=fi(u,B,s,s,s,s,s,d);return _.placeholder=qc.placeholder,_}function Ig(u,d,m){d=m?s:d;var _=fi(u,S,s,s,s,s,s,d);return _.placeholder=Ig.placeholder,_}function Yc(u,d,m){var _,x,L,V,Q,le,Me=0,Ne=!1,Pe=!1,qe=!0;if(typeof u!="function")throw new us(h);d=or(d)||0,An(m)&&(Ne=!!m.leading,Pe="maxWait"in m,L=Pe?Xn(or(m.maxWait)||0,d):L,qe="trailing"in m?!!m.trailing:qe);function dt(Kn){var Hr=_,Ci=x;return _=x=s,Me=Kn,V=u.apply(Ci,Hr),V}function $t(Kn){return Me=Kn,Q=Il(Xt,d),Ne?dt(Kn):V}function Ut(Kn){var Hr=Kn-le,Ci=Kn-Me,Zg=d-Hr;return Pe?fs(Zg,L-Ci):Zg}function vt(Kn){var Hr=Kn-le,Ci=Kn-Me;return le===s||Hr>=d||Hr<0||Pe&&Ci>=L}function Xt(){var Kn=Da();if(vt(Kn))return en(Kn);Q=Il(Xt,Ut(Kn))}function en(Kn){return Q=s,qe&&_?dt(Kn):(_=x=s,V)}function zs(){Q!==s&&Up(Q),Me=0,_=le=x=Q=s}function As(){return Q===s?V:en(Da())}function ar(){var Kn=Da(),Hr=vt(Kn);if(_=arguments,x=this,le=Kn,Hr){if(Q===s)return $t(le);if(Pe)return Up(Q),Q=Il(Xt,d),dt(le)}return Q===s&&(Q=Il(Xt,d)),V}return ar.cancel=zs,ar.flush=As,ar}var Ra=Ht(function(u,d){return vl(u,1,d)}),zt=Ht(function(u,d,m){return vl(u,or(d)||0,m)});function Ao(u){return fi(u,K)}function Ma(u,d){if(typeof u!="function"||d!=null&&typeof d!="function")throw new us(h);var m=function(){var _=arguments,x=d?d.apply(this,_):_[0],L=m.cache;if(L.has(x))return L.get(x);var V=u.apply(this,_);return m.cache=L.set(x,V)||L,V};return m.cache=new(Ma.Cache||di),m}Ma.Cache=di;function Ld(u){if(typeof u!="function")throw new us(h);return function(){var d=arguments;switch(d.length){case 0:return!u.call(this);case 1:return!u.call(this,d[0]);case 2:return!u.call(this,d[0],d[1]);case 3:return!u.call(this,d[0],d[1],d[2])}return!u.apply(this,d)}}function Eb(u){return Oa(2,u)}var Ib=tr(function(u,d){d=d.length==1&&jt(d[0])?wn(d[0],Xs(gt())):wn(os(d,1),Xs(gt()));var m=d.length;return Ht(function(_){for(var x=-1,L=fs(_.length,m);++x=d}),eo=nd(function(){return arguments}())?nd:function(u){return Tn(u)&&nn.call(u,"callee")&&!lp.call(u,"callee")},jt=be.isArray,Db=zh?Xs(zh):Tp;function ts(u){return u!=null&&Na(u.length)&&!vs(u)}function Yn(u){return Tn(u)&&ts(u)}function ay(u){return u===!0||u===!1||Tn(u)&&Dn(u)==Te}var ei=wm||rh,zr=Uh?Xs(Uh):kp;function Ab(u){return Tn(u)&&u.nodeType===1&&!Bl(u)}function Fd(u){if(u==null)return!0;if(ts(u)&&(jt(u)||typeof u=="string"||typeof u.splice=="function"||ei(u)||Oo(u)||eo(u)))return!u.length;var d=Le(u);if(d==St||d==Nt)return!u.size;if(Lc(u))return!rd(u).length;for(var m in u)if(nn.call(u,m))return!1;return!0}function rr(u,d){return pa(u,d)}function Ob(u,d,m){m=typeof m=="function"?m:s;var _=m?m(u,d):s;return _===s?pa(u,d,s,m):!!_}function Ps(u){if(!Tn(u))return!1;var d=Dn(u);return d==ht||d==rt||typeof u.message=="string"&&typeof u.name=="string"&&!Bl(u)}function fn(u){return typeof u=="number"&&zi(u)}function vs(u){if(!An(u))return!1;var d=Dn(u);return d==nt||d==Wt||d==Ke||d==mn}function eu(u){return typeof u=="number"&&u==Ct(u)}function Na(u){return typeof u=="number"&&u>-1&&u%1==0&&u<=Ce}function An(u){var d=typeof u;return u!=null&&(d=="object"||d=="function")}function Tn(u){return u!=null&&typeof u=="object"}var Rb=Wh?Xs(Wh):Ip;function ti(u,d){return u===d||Cc(u,d,Zr(d))}function Vt(u,d,m){return m=typeof m=="function"?m:s,Cc(u,d,Zr(d),m)}function to(u){return zd(u)&&u!=+u}function Ln(u){if(Qm(u))throw new xt(c);return sd(u)}function Mb(u){return u===null}function Og(u){return u==null}function zd(u){return typeof u=="number"||Tn(u)&&Dn(u)==lt}function Bl(u){if(!Tn(u)||Dn(u)!=st)return!1;var d=fc(u);if(d===null)return!0;var m=nn.call(d,"constructor")&&d.constructor;return typeof m=="function"&&m instanceof m&&al.call(m)==$m}var Ud=Hh?Xs(Hh):jm;function no(u){return eu(u)&&u>=-Ce&&u<=Ce}var Rg=Vh?Xs(Vh):Fm;function tu(u){return typeof u=="string"||!jt(u)&&Tn(u)&&Dn(u)==wt}function ir(u){return typeof u=="symbol"||Tn(u)&&Dn(u)==qt}var Oo=Au?Xs(Au):zm;function so(u){return u===s}function Ro(u){return Tn(u)&&Le(u)==me}function Nb(u){return Tn(u)&&Dn(u)==ge}var Wd=xc(wl),js=xc(function(u,d){return u<=d});function Lb(u){if(!u)return[];if(ts(u))return tu(u)?Ar(u):Vn(u);if(oa&&u[oa])return Nu(u[oa]());var d=Le(u),m=d==St?Lu:d==Nt?il:Pa;return m(u)}function J(u){if(!u)return u===0?u:0;if(u=or(u),u===ze||u===-ze){var d=u<0?-1:1;return d*at}return u===u?u:0}function Ct(u){var d=J(u),m=d%1;return d===d?m?d-m:d:0}function Pl(u){return u?Co(Ct(u),0,Ae):0}function or(u){if(typeof u=="number")return u;if(ir(u))return he;if(An(u)){var d=typeof u.valueOf=="function"?u.valueOf():u;u=An(d)?d+"":d}if(typeof u!="string")return u===0?u:+u;u=Mu(u);var m=pe.test(u);return m||_e.test(u)?lm(u.slice(2),m?2:8):F.test(u)?he:+u}function vi(u){return Xr(u,hs(u))}function Mo(u){return u?Co(Ct(u),-Ce,Ce):u===0?u:0}function cn(u){return u==null?"":er(u)}var jl=ma(function(u,d){if(Lc(d)||ts(d)){Xr(d,ls(d),u);return}for(var m in d)nn.call(d,m)&&bl(u,m,d[m])}),Hd=ma(function(u,d){Xr(d,hs(d),u)}),nu=ma(function(u,d,m,_){Xr(d,hs(d),u,_)}),vr=ma(function(u,d,m,_){Xr(d,ls(d),u,_)}),Mg=mi(Zu);function su(u,d){var m=qr(u);return d==null?m:yc(m,d)}var Ng=Ht(function(u,d){u=kt(u);var m=-1,_=d.length,x=_>2?d[2]:s;for(x&&Bt(d[0],d[1],x)&&(_=1);++m<_;)for(var L=d[m],V=hs(L),Q=-1,le=V.length;++Q1),L}),Xr(u,_d(u),m),_&&(m=gr(m,w|T|C,Ym));for(var x=d.length;x--;)fd(m,d[x]);return m});function jg(u,d){return zb(u,Ld(gt(d)))}var ly=mi(function(u,d){return u==null?{}:Rp(u,d)});function zb(u,d){if(u==null)return{};var m=wn(_d(u),function(_){return[_]});return d=gt(d),ld(u,m,function(_,x){return d(_,x[0])})}function cy(u,d,m){d=ks(d,u);var _=-1,x=d.length;for(x||(x=1,u=s);++_d){var _=u;u=d,d=_}if(m||u%1||d%1){var x=yo();return fs(u+x*(d-u+am("1e-"+((x+"").length-1))),d)}return dd(u,d)}var Hg=Es(function(u,d,m){return d=d.toLowerCase(),u+(m?Kd(d):d)});function Kd(u){return Hl(cn(u).toLowerCase())}function Jd(u){return u=cn(u),u&&u.replace(je,pm).replace(jh,"")}function zl(u,d,m){u=cn(u),d=er(d);var _=u.length;m=m===s?_:Co(Ct(m),0,_);var x=m;return m-=d.length,m>=0&&u.slice(m,x)==d}function uy(u){return u=cn(u),u&&Pn.test(u)?u.replace(Rn,gm):u}function Hb(u){return u=cn(u),u&&ec.test(u)?u.replace(Ir,"\\$&"):u}var dy=Es(function(u,d,m){return u+(m?"-":"")+d.toLowerCase()}),Cr=Es(function(u,d,m){return u+(m?" ":"")+d.toLowerCase()}),Vg=ba("toLowerCase");function au(u,d,m){u=cn(u),d=Ct(d);var _=d?ia(u):0;if(!d||_>=d)return u;var x=(d-_)/2;return Tl(vo(x),m)+u+Tl(pl(x),m)}function qd(u,d,m){u=cn(u),d=Ct(d);var _=d?ia(u):0;return d&&_>>0,m?(u=cn(u),u&&(typeof d=="string"||d!=null&&!Ud(d))&&(d=er(d),!d&&$o(u))?fe(Ar(u),0,m):u.split(d,m)):[]}var Fs=Es(function(u,d,m){return u+(m?" ":"")+Hl(d)});function Ur(u,d,m){return u=cn(u),m=m==null?0:Co(Ct(m),0,u.length),d=er(d),u.slice(m,m+d.length)==d}function qb(u,d,m){var _=M.templateSettings;m&&Bt(u,d,m)&&(d=s),u=cn(u),d=nu({},d,_,Xp);var x=nu({},d.imports,_.imports,Xp),L=ls(x),V=nl(x,L),Q,le,Me=0,Ne=d.interpolate||it,Pe="__p += '",qe=Bu((d.escape||it).source+"|"+Ne.source+"|"+(Ne===jn?R:it).source+"|"+(d.evaluate||it).source+"|$","g"),dt="//# sourceURL="+(nn.call(d,"sourceURL")?(d.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++ac+"]")+` -`;u.replace(qe,function(vt,Xt,en,zs,As,ar){return en||(en=zs),Pe+=u.slice(Me,ar).replace(Ft,sl),Xt&&(Q=!0,Pe+=`' + -__e(`+Xt+`) + -'`),As&&(le=!0,Pe+=`'; -`+As+`; -__p += '`),en&&(Pe+=`' + -((__t = (`+en+`)) == null ? '' : __t) + -'`),Me=ar+vt.length,vt}),Pe+=`'; -`;var $t=nn.call(d,"variable")&&d.variable;if(!$t)Pe=`with (obj) { -`+Pe+` -} -`;else if(z.test($t))throw new xt(g);Pe=(le?Pe.replace(zn,""):Pe).replace(Jn,"$1").replace(Gs,"$1;"),Pe="function("+($t||"obj")+`) { -`+($t?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(Q?", __e = _.escape":"")+(le?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+Pe+`return __p -}`;var Ut=Qd(function(){return rn(L,dt+"return "+Pe).apply(s,V)});if(Ut.source=Pe,Ps(Ut))throw Ut;return Ut}function Yd(u){return cn(u).toLowerCase()}function Kg(u){return cn(u).toUpperCase()}function Yb(u,d,m){if(u=cn(u),u&&(m||d===s))return Mu(u);if(!u||!(d=er(d)))return u;var _=Ar(u),x=Ar(d),L=Xh(_,x),V=Zh(_,x)+1;return fe(_,L,V).join("")}function Ul(u,d,m){if(u=cn(u),u&&(m||d===s))return u.slice(0,sp(u)+1);if(!u||!(d=er(d)))return u;var _=Ar(u),x=Zh(_,Ar(d))+1;return fe(_,0,x).join("")}function Xd(u,d,m){if(u=cn(u),u&&(m||d===s))return u.replace(xr,"");if(!u||!(d=er(d)))return u;var _=Ar(u),x=Xh(_,Ar(d));return fe(_,x).join("")}function Wl(u,d){var m=Y,_=X;if(An(d)){var x="separator"in d?d.separator:x;m="length"in d?Ct(d.length):m,_="omission"in d?er(d.omission):_}u=cn(u);var L=u.length;if($o(u)){var V=Ar(u);L=V.length}if(m>=L)return u;var Q=m-ia(_);if(Q<1)return _;var le=V?fe(V,0,Q).join(""):u.slice(0,Q);if(x===s)return le+_;if(V&&(Q+=le.length-Q),Ud(x)){if(u.slice(Q).search(x)){var Me,Ne=le;for(x.global||(x=Bu(x.source,cn(j.exec(x))+"g")),x.lastIndex=0;Me=x.exec(Ne);)var Pe=Me.index;le=le.slice(0,Pe===s?Q:Pe)}}else if(u.indexOf(er(x),Q)!=Q){var qe=le.lastIndexOf(x);qe>-1&&(le=le.slice(0,qe))}return le+_}function Xb(u){return u=cn(u),u&&Kt.test(u)?u.replace(ns,fm):u}var hy=Es(function(u,d,m){return u+(m?" ":"")+d.toUpperCase()}),Hl=ba("toUpperCase");function Zd(u,d,m){return u=cn(u),d=m?s:d,d===s?rl(u)?ip(u):Jh(u):u.match(d)||[]}var Qd=Ht(function(u,d){try{return Ys(u,s,d)}catch(m){return Ps(m)?m:new xt(m)}}),py=mi(function(u,d){return Ns(d,function(m){m=bs(m),pi(u,m,$r(u[m],u))}),u});function gy(u){var d=u==null?0:u.length,m=gt();return u=d?wn(u,function(_){if(typeof _[1]!="function")throw new us(h);return[m(_[0]),_[1]]}):[],Ht(function(_){for(var x=-1;++xCe)return[];var m=Ae,_=fs(u,Ae);d=gt(d),u-=Ae;for(var x=sa(_,d);++m0||d<0)?new Ot(m):(u<0?m=m.takeRight(-u):u&&(m=m.drop(u)),d!==s&&(d=Ct(d),m=d<0?m.dropRight(-d):m.take(d-u)),m)},Ot.prototype.takeRightWhile=function(u){return this.reverse().takeWhile(u).reverse()},Ot.prototype.toArray=function(){return this.take(Ae)},Yr(Ot.prototype,function(u,d){var m=/^(?:filter|find|map|reject)|While$/.test(d),_=/^(?:head|last)$/.test(d),x=M[_?"take"+(d=="last"?"Right":""):d],L=_||/^find/.test(d);x&&(M.prototype[d]=function(){var V=this.__wrapped__,Q=_?[1]:arguments,le=V instanceof Ot,Me=Q[0],Ne=le||jt(V),Pe=function(Xt){var en=x.apply(M,Kr([Xt],Q));return _&&qe?en[0]:en};Ne&&m&&typeof Me=="function"&&Me.length!=1&&(le=Ne=!1);var qe=this.__chain__,dt=!!this.__actions__.length,$t=L&&!qe,Ut=le&&!dt;if(!L&&Ne){V=Ut?V:new Ot(this);var vt=u.apply(V,Q);return vt.__actions__.push({func:Zi,args:[Pe],thisArg:s}),new Zn(vt,qe)}return $t&&Ut?u.apply(this,Q):(vt=this.thru(Pe),$t?_?vt.value()[0]:vt.value():vt)})}),Ns(["pop","push","shift","sort","splice","unshift"],function(u){var d=pc[u],m=/^(?:push|sort|unshift)$/.test(u)?"tap":"thru",_=/^(?:pop|shift)$/.test(u);M.prototype[u]=function(){var x=arguments;if(_&&!this.__chain__){var L=this.value();return d.apply(jt(L)?L:[],x)}return this[m](function(V){return d.apply(jt(V)?V:[],x)})}}),Yr(Ot.prototype,function(u,d){var m=M[d];if(m){var _=m.name+"";nn.call(ua,_)||(ua[_]=[]),ua[_].push({name:d,func:m})}}),ua[va(s,P).name]=[{name:"wrapper",func:s}],Ot.prototype.clone=km,Ot.prototype.reverse=Em,Ot.prototype.value=Im,M.prototype.at=Ea,M.prototype.chain=vg,M.prototype.commit=Do,M.prototype.next=_b,M.prototype.plant=Is,M.prototype.reverse=Gc,M.prototype.toJSON=M.prototype.valueOf=M.prototype.value=Ol,M.prototype.first=M.prototype.head,oa&&(M.prototype[oa]=yg),M},Or=bm();mo?((mo.exports=Or)._=Or,lc._=Or):Wn._=Or}).call($L)})(bv,bv.exports);var vL=bv.exports;const W_=Ga(vL),Zy=W_.throttle((o,n)=>o(n),0);function L$(o,n){const s=n.find(i=>i._id===o);return{card:s,index:s?n.indexOf(s):-1}}function Qy(o,n,s,i,a,c,h,g,b){const{card:$,index:y}=L$(o,s);if(!(yn&&g>b)&&$&&y!==n){const w=W_.clone(s);w.splice(y,1),w.splice(n,0,$);const T=W_.clone(a);switch(c){case"actions":T.actions[h]=w,Zy(i,T);return;case"conditions":T.conditions[h]=w,Zy(i,T);return;default:T.triggers=w,Zy(i,T);return}}}const yL="_drag_7xfhc_1",_L="_root_7xfhc_11",s0={drag:yL,root:_L},Uk=({typeBlock:o,allProperties:n,id:s,isActive:i,setUserRules:a,userRules:c,children:h,_id:g,blockValue:b})=>{const{setOnUpdate:$}=ve.useContext(Gf),[{opacity:y},w,T]=hT({type:"box",item:()=>({...n,id:s,isActive:i,_id:g}),end:(A,P)=>{const{acceptedBy:N}=A,B=P.getDropResult();let S;if(!B)return typeof g=="number"&&!P.getTargetIds().length&&(S=Rh(N,c,b),S=du(N,S,b,g),a(S)),null;if(B.blockValue!==b){const H=typeof g=="number"?g:Date.now();S=Rh(N,c,B.blockValue);const q={id:A.id,acceptedBy:A.acceptedBy};switch(N){case"actions":return b&&(S=du("actions",S,b,H)),S=du("actions",S,B.blockValue,H),S.actions[B.blockValue].push({...q,_id:H}),a(S);case"conditions":return typeof b=="number"&&(S=du("conditions",S,b,H)),S=du("conditions",S,B.blockValue,H),S.conditions[B.blockValue].push({...q,_id:H}),a(S);default:return $(!0),S=du("triggers",S,B.blockValue,H),S.triggers.push({...q,_id:H}),a(S)}}},collect:A=>({opacity:A.isDragging()?.4:1,isDragging:A.isDragging()})}),C=ve.useRef(null),[,E]=uw({accept:"box",canDrop:()=>!1,hover({_id:A,acceptedBy:P},N){var se;if(!C.current||o!==P)return;const B=(se=C.current)==null?void 0:se.getBoundingClientRect(),S=(B.bottom-B.top)/2,H=N.getClientOffset(),q=((H==null?void 0:H.y)||0)-B.top;if(g&&A!==g)switch(P){case"actions":if(b==="then"||b==="else"){const{index:ee}=L$(g,c.actions[b]);ee!==A&&Qy(A,ee,c[P][b],a,c,P,b,q,S)}return;case"conditions":if(typeof b=="number"){const{index:ee}=L$(g,c[P][b]);ee!==A&&Qy(A,ee,c[P][b],a,c,P,b,q,S)}return;default:{const{index:ee}=L$(g,c[P]);ee!==A&&Qy(A,ee,c[P],a,c,P,void 0,q,S);return}}}});ve.useEffect(()=>{T(FA(),{captureDraggingState:!0})},[]),w(E(C));const k=window.innerWidth<600;return f.jsxs("div",{ref:k&&g?null:C,className:s0.root,style:{opacity:y},children:[f.jsx("div",{className:g?s0.drag:null,ref:g&&k?C:null}),h]})},wL=({onClose:o,open:n})=>f.jsxs(D.Dialog,{open:n,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[f.jsx(D.DialogContent,{children:f.jsxs("div",{style:{fontSize:"1rem",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,lineHeight:1.5,letterSpacing:"0.00938em"},children:[f.jsx("h3",{children:I.I18n.t("On condition change")}),f.jsx("div",{children:I.I18n.t("help_on_change")}),f.jsx("h3",{children:I.I18n.t("Just check")}),f.jsx("div",{children:I.I18n.t("help_just_check")})]})}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{onClick:o,color:"primary",autoFocus:!0,startIcon:f.jsx(Va,{}),children:I.I18n.t("OK")})})]}),CL=({onClose:o,open:n})=>f.jsxs(D.Dialog,{open:n,onClose:o,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[f.jsx(D.DialogContent,{children:f.jsxs(D.DialogContentText,{id:"alert-dialog-description",children:[f.jsx("h3",{children:I.I18n.t("On condition change")}),f.jsx("div",{children:I.I18n.t("help_on_change")}),f.jsx("h3",{children:I.I18n.t("Just check")}),f.jsx("div",{children:I.I18n.t("help_just_check")})]})}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{onClick:o,color:"primary",autoFocus:!0,children:I.I18n.t("OK")})})]}),r0=({size:o,blockValue:n,boolean:s,typeBlock:i,userRules:a,setUserRules:c,animation:h,setTourStep:g,tourStep:b,isTourOpen:$,theme:y,themeType:w,themeName:T})=>{var ke;const[C,E]=ve.useState(!1),[k,A]=ve.useState(!1),[P,N]=ve.useState(!1),[B,S]=ve.useState("");s===void 0&&(s=!0);const H=uw({accept:"box",drop:()=>({blockValue:n}),hover:({acceptedBy:Z,_id:ze},Ce)=>{E(Z===i),N(!!ze),S(Ce.getHandlerId()||"")},canDrop:({acceptedBy:Z})=>(A(Z===i),Z===i),collect:Z=>{var ze;return{isOver:Z.isOver(),canDrop:((ze=Z.getItem())==null?void 0:ze.acceptedBy)===i,offset:Z.getClientOffset(),targetId:Z.getHandlerId()}}}),q=H[0],{canDrop:se,isOver:ee,offset:K,targetId:Y}=q,X=H[1];ve.useEffect(()=>{S("")},[K]);const ce=se&ⅇlet W="";ce?W=C?"#00fb003d":"#fb00002e":se?W=k?"#00fb003d":"#fb00002e":K&&(W=Y===B?"#fb00002e":"");let te;return i==="actions"?te=a.actions[n]:i==="conditions"?te=a.conditions[n]:te=a.triggers,f.jsx("div",{ref:X,style:{backgroundColor:W},className:`${I.Utils.clsx(ps.contentBlockItem,o&&ps.addClassHeight)} ${s?h?ps.contentHeightOn:null:ps.contentHeightOff}`,children:f.jsxs("div",{className:ps.wrapperMargin,children:[te.map(Z=>f.jsx(Uk,{typeBlock:i,...Z,blockValue:n,allProperties:Z,userRules:a,setUserRules:c,children:f.jsx(zk,{...Z,isTourOpen:$,setTourStep:g,tourStep:b,settings:Z,blockValue:n,userRules:a,setUserRules:c,theme:y,themeType:w,themeName:T})},Z._id)),f.jsx("div",{style:ce&&C&&!P?{height:((ke=document.getElementById("height"))==null?void 0:ke.clientHeight)||200}:void 0,className:`${ps.emptyBlockStyle} ${ce&&C&&!P?ps.emptyBlock:ps.emptyBlockNone}`})]})})},e_=({size:o,typeBlock:n,name:s,nameAdditionally:i,additionally:a,border:c,userRules:h,setUserRules:g,iconName:b,adapter:$,socket:y,setTourStep:w,tourStep:T,isTourOpen:C,theme:E,themeType:k,themeName:A})=>{const[P,N,B]=U_(n==="actions"?!1:[],`additionallyClickItems_${n}`),[S,H]=ve.useState(!1),[q,se]=ve.useState(!1);ve.useEffect(()=>{if(n==="conditions"&&(P==null?void 0:P.length)!==h.conditions.length-1){const Y=[];h.conditions.forEach((X,ce)=>{ce>0&&Y.push({_id:Date.now(),open:!0})}),N([...P,...Y])}n==="actions"&&!B&&h.actions.else.length&&N(!0)},[]);const[ee,K]=ve.useState(!1);return f.jsxs("div",{className:`${I.Utils.clsx(ps.mainBlockItemRules,o&&ps.addClassOverflow)} ${c&&!o?ps.border:null}`,children:[f.jsxs("span",{id:"width",className:ps.nameBlockItems,children:[f.jsx($u,{iconName:b,className:ps.iconThemCard,adapter:$,socket:y}),s]}),n==="conditions"?f.jsxs("div",{style:{width:"100%"},children:[f.jsxs(D.Select,{variant:"standard",className:ps.selectOnChange,value:h.justCheck||!1,onChange:Y=>{const X=Rh("conditions",h);X.justCheck=Y.target.value==="true",g(X)},children:[f.jsx(D.MenuItem,{value:"false",children:I.I18n.t("on condition change")}),f.jsx(D.MenuItem,{value:"true",children:I.I18n.t("just check")})]}),f.jsx(D.IconButton,{size:"small",title:I.I18n.t("Explanation"),className:ps.selectOnChangeHelp,onClick:()=>H(!0),children:f.jsx(dw,{className:ps.selectOnChangeHelpIcon})})]}):null,f.jsx(r0,{setTourStep:w,tourStep:T,isTourOpen:C,blockValue:n==="actions"?"then":n==="conditions"?0:n,typeBlock:n,setUserRules:g,userRules:h,theme:E,themeName:A,themeType:k,size:o}),a&&[...Array(n==="actions"?1:h.conditions.length-1)].map((Y,X)=>{const ce=(W=X)=>n==="actions"?!!P:!!P.find((te,ke)=>ke===W&&te.open);return f.jsxs(ve.Fragment,{children:[f.jsxs("div",{onClick:()=>{if(n==="actions")return N(!P),null;let W=JSON.parse(JSON.stringify(P));if(h.conditions[X+1].length)return W[X].open=!W[X].open,N(W),null;W=W.filter((te,ke)=>ke!==X),N(W),K(X),setTimeout(()=>{K(!1),g({...h,conditions:[...h.conditions.filter((te,ke)=>ke!==X+1)]})},250)},className:ps.blockCardAdd,children:[ce()?"-":"+",f.jsx("div",{className:ps.cardAdd,children:i})]},X),f.jsx(r0,{blockValue:n==="actions"?"else":n==="conditions"?X+1:n,typeBlock:n,setUserRules:g,userRules:h,boolean:ce(),animation:ee===X,size:o,theme:E,themeName:A,themeType:k})]},`${X}_block_${n}`)}),a&&n==="conditions"&&f.jsxs("div",{onClick:()=>{N([...P,{_id:Date.now(),open:!0}]),g({...h,conditions:[...h.conditions,[]]}),K(h.conditions.length-1),setTimeout(()=>K(!1),1e3)},className:ps.blockCardAdd,children:["+",f.jsx("div",{className:ps.cardAdd,children:i})]}),f.jsx(wL,{open:S,onClose:()=>H(!1)}),f.jsx(CL,{open:q,onClose:()=>se(!1)})]})},SL="_menuRules_1qqcb_1",TL="_switchesRenderWrapper_1qqcb_13",kL="_menuOff_1qqcb_22",EL="_menuTitle_1qqcb_28",IL="_marginAuto_1qqcb_42",xL="_inputWidth_1qqcb_47",DL="_menuWrapper_1qqcb_52",AL="_hamburgerWrapper_1qqcb_57",OL="_hamburgerOff_1qqcb_74",RL="_nothingFound_1qqcb_82",ML="_resetSearch_1qqcb_89",NL="_controlPanel_1qqcb_101",LL="_controlPanelAppBar_1qqcb_112",BL="_addClassMenu_1qqcb_126",PL="_addClassBackground_1qqcb_132",jL="_addClassPosition_1qqcb_136",ur={menuRules:SL,switchesRenderWrapper:TL,menuOff:kL,menuTitle:EL,marginAuto:IL,inputWidth:xL,menuWrapper:DL,hamburgerWrapper:AL,hamburgerOff:OL,nothingFound:RL,resetSearch:ML,controlPanel:NL,controlPanelAppBar:LL,addClassMenu:BL,addClassBackground:PL,addClassPosition:jL},FL=o=>{const{allProperties:n,allProperties:{acceptedBy:s,id:i},setUserRules:a,userRules:c,setTourStep:h,tourStep:g,isTourOpen:b,onTouchMove:$,isActive:y}=o;return f.jsx(Uk,{allProperties:n,id:n.id,isActive:y,setUserRules:a,userRules:c,children:f.jsx(Mk,{onDoubleClick:()=>{b&&g===Ss.addScheduleByDoubleClick&&i==="TriggerScheduleBlock"&&h(Ss.openTagsMenu),b&&g===Ss.addActionPrintText&&i==="ActionPrintText"&&h(Ss.showJavascript);const w=Date.now();let T;switch(s){case"actions":T="then";break;case"conditions":T=c[s].length-1;break}const C=Rh(s,c,T),E={id:i,_id:w,acceptedBy:s};T!==void 0?s==="actions"?C.actions[T].push({...E}):s==="conditions"&&C.conditions[T].push({...E}):C.triggers.push({...E}),a(C)},...o,...n,onTouchMove:$})})},zL="_hamburgerMenu_hqnsm_8",UL="_animate_hqnsm_21",i0={hamburgerMenu:zL,animate:UL};function WL({bool:o}){return f.jsx("div",{className:`${i0.hamburgerMenu} ${o?i0.animate:""}`})}const HL=({addClass:o,setAllBlocks:n,allBlocks:s,userRules:i,onChangeBlocks:a,setTourStep:c,tourStep:h,isTourOpen:g})=>{const{blocks:b,socket:$}=ve.useContext(Gf),[y,w]=U_(!1,"hamburgerOnOff"),[T,C]=U_({text:"",type:"triggers",index:0},"filterControlPanel"),E=(P=T.text,N=T.type)=>{if(!b)return;let B=[...b];B=B.filter(S=>{if(!P)return!0;const{name:H}=S.getStaticData();return H&&I.I18n.t(H).toLowerCase().includes(P.toLowerCase())}),B=B.filter(S=>N===S.getStaticData().acceptedBy),n(B)},k=(P,N)=>{g&&N===0&&h===Ss.selectTriggers&&c(Ss.addScheduleByDoubleClick),g&&N===2&&h===Ss.selectActions&&c(Ss.addActionPrintText),C({...T,index:N,type:["triggers","conditions","actions"][N]}),E(T.text,["triggers","conditions","actions"][N])},A=P=>({id:`scrollable-force-tab-${P}`,"aria-controls":`scrollable-force-tabpanel-${P}`});return ve.useEffect(()=>{E()},[b]),f.jsx(D.ClickAwayListener,{mouseEvent:!1,touchEvent:"onTouchStart",onClickAway:()=>w(!0),children:f.jsxs("div",{className:I.Utils.clsx(ur.menuWrapper,o[1035]&&ur.addClassMenu),children:[f.jsx("div",{className:`${ur.hamburgerWrapper} ${y?ur.hamburgerOff:null}`,onClick:()=>w(!y),children:f.jsx(WL,{bool:!y})}),f.jsxs("div",{className:`${I.Utils.clsx(ur.menuRules,o[1035]&&ur.addClassBackground,o[835]&&ur.addClassPosition)} ${y?ur.menuOff:null}`,children:[f.jsx("div",{className:ur.controlPanel,children:f.jsx(D.AppBar,{className:ur.controlPanelAppBar,position:"static",children:f.jsxs(D.Tabs,{value:T.index,onChange:k,children:[f.jsx(D.Tab,{className:"blocks-triggers",title:I.I18n.t("Triggers"),icon:f.jsx($u,{iconName:"FlashOn"}),...A(0)}),f.jsx(D.Tab,{title:I.I18n.t("Conditions"),className:"blocks-conditions",icon:f.jsx($u,{iconName:"Help"}),...A(1)}),f.jsx(D.Tab,{title:I.I18n.t("Actions"),className:"blocks-actions",icon:f.jsx($u,{iconName:"PlayForWork"}),...A(2)})]})})}),f.jsx("div",{className:ur.switchesRenderWrapper,children:f.jsxs("span",{children:[s.map(P=>{const{name:N,id:B,icon:S,adapter:H}=P.getStaticData();return f.jsx(ve.Fragment,{children:f.jsx(FL,{adapter:H,allProperties:P.getStaticData(),icon:S,id:B,isActive:!1,isTourOpen:g,name:N,onTouchMove:()=>w(!0),setTourStep:c,setUserRules:a,socket:$,tourStep:h,userRules:i})},B)}),!s.length&&f.jsxs("div",{className:ur.nothingFound,children:[I.I18n.t("Nothing found"),"...",f.jsx("div",{className:ur.resetSearch,onClick:()=>{C({...T,text:""}),E("")},children:I.I18n.t("reset search")})]})]})}),f.jsx("div",{className:I.Utils.clsx(ur.menuTitle,ur.marginAuto)}),f.jsx(Yl,{className:ur.inputWidth,fullWidth:!0,customValue:!0,value:T.text,size:"small",autoComplete:"off",label:I.I18n.t("search"),variant:"outlined",onChange:P=>{C({...T,text:P}),E(P)}})]})]})})};let t_=[];const VL=({code:o,onChange:n,themeName:s,themeType:i,theme:a,setTourStep:c,tourStep:h,isTourOpen:g,command:b,scriptId:$,changed:y,running:w})=>{var W;const{blocks:T,socket:C,setOnUpdate:E,setOnDebugMessage:k,setEnableSimulation:A}=ve.useContext(Gf),[P,N]=ve.useState([]),[B,S]=ve.useState(QS(o)),[H,q]=ve.useState(""),[se,ee]=ve.useState(!1);ve.useEffect(()=>{let te,ke;const Z=(at,he)=>{at===`${te}.alive`&&ke!==(he==null?void 0:he.val)&&(ke=!!(he!=null&&he.val),ke&&te&&(C==null||C.sendTo(te.replace(/^system\.adapter\./,""),"rulesOn",$)))},ze=(at,he)=>{var Ae,de;C&&te!==((Ae=he==null?void 0:he.common)==null?void 0:Ae.engine)&&(te&&(C.unsubscribeState(`${te}.alive`,Z),ke&&C.sendTo(te.replace(/^system\.adapter\./,""),"rulesOn",$)),te=(de=he==null?void 0:he.common)==null?void 0:de.engine,te&&te&&C.subscribeState(`${te}.alive`,Z))},Ce=(at,he)=>{if(he)try{const Ae=JSON.parse(he.val),de=Date.now();if(Ae.ruleId===$&&de-Ae.ts<1e3){const Se=[...t_,{blockId:Ae.blockId,data:Ae.data,ts:Ae.ts}];Se.length>200&&Se.splice(0,200-Se.length);for(let xe=Se.length-1;xe>=0;xe--)if(Se[xe].ts{var he;te=(he=at==null?void 0:at.common)==null?void 0:he.engine,C.subscribeObject($,ze),te&&(C.subscribeState(`${te}.alive`,Z),C.subscribeState(`${te.replace(/^system\.adapter\./,"")}.debug.rules`,Ce))}),function(){C==null||C.unsubscribeState($,Z),te&&(C==null||C.unsubscribeObject(`${te}.alive`,ze),ke&&(C==null||C.sendTo(te.replace(/^system\.adapter\./,""),"rulesOff",$)),C==null||C.unsubscribeState(`${te.replace(/^system\.adapter\./,"")}.debug.rules`,Ce))}},[]),ve.useEffect(()=>{A(!y&&w)},[y,w,A]),ve.useEffect(()=>{b&&(q(b),se||ee(!0))},[b]),ve.useEffect(()=>{const te=QS(o);JSON.stringify(te)!==JSON.stringify(B)&&(S(te),E(!0))},[o]),ve.useEffect(()=>{document.getElementsByTagName("HTML")[0].className=s||"blue"},[s]);const K=ve.useCallback(te=>{S(te),T&&n(VN(te,T))},[T,n]),Y=ve.useRef(null),[X,ce]=ve.useState({835:!1,1035:!1});return ve.useEffect(()=>{Y.current&&(Y.current.clientWidth<=1035&&ce({835:!1,1035:!0}),Y.current.clientWidth<=835&&ce({1035:!0,835:!0}),Y.current.clientWidth>1035&&ce({835:!1,1035:!1}))},[((W=Y.current)==null?void 0:W.clientWidth)||0]),!T||!C?null:f.jsxs("div",{className:Vy.wrapperRules,ref:Y,children:[f.jsx(eL,{allBlocks:P,socket:C}),se?H==="export"?f.jsx(Ek,{scriptId:$,themeType:i,onClose:()=>ee(!1),text:JSON.stringify(B,null,2)}):f.jsx(Kv,{themeType:i,onClose:te=>{ee(!1),te&&K(JSON.parse(te))}}):null,f.jsxs("div",{className:I.Utils.clsx(Vy.rootWrapper,X[835]&&Vy.addClass),children:[f.jsx(HL,{setAllBlocks:N,allBlocks:P,userRules:B,onChangeBlocks:K,setTourStep:c,tourStep:h,addClass:X,isTourOpen:g}),f.jsx(e_,{socket:C,setUserRules:K,userRules:B,isTourOpen:g,setTourStep:c,tourStep:h,name:`${I.I18n.t("when")}...`,typeBlock:"triggers",iconName:"FlashOn",size:X[835],themeType:i,themeName:s,theme:a}),f.jsx(e_,{socket:C,setUserRules:K,isTourOpen:g,setTourStep:c,tourStep:h,userRules:B,name:`...${I.I18n.t("and")}...`,typeBlock:"conditions",iconName:"Help",nameAdditionally:I.I18n.t("or"),additionally:!0,border:!0,size:X[835],themeType:i,themeName:s,theme:a}),f.jsx(e_,{socket:C,setUserRules:K,isTourOpen:g,setTourStep:c,tourStep:h,userRules:B,name:`...${I.I18n.t("then")}`,typeBlock:"actions",iconName:"PlayForWork",nameAdditionally:I.I18n.t("else"),additionally:!0,size:X[835],themeType:i,themeName:s,theme:a})]})]},"rulesEditor")},GL={editorDiv:{height:"100%",width:"100%",overflow:"hidden",position:"relative"}};let KL=class extends We.Component{constructor(n){super(n),this.state={lines:(this.props.script||"").split(/\r\n|\n/)}}render(){return f.jsx("div",{style:GL.editorDiv,children:f.jsx(Gv,{triggerPrettier:1,name:this.props.scriptName,adapterName:this.props.adapterName,readOnly:!0,code:this.props.script||"",isDark:this.props.themeType==="dark",socket:this.props.socket,runningInstances:this.props.runningInstances,language:"javascript",breakpoints:this.props.breakpoints,location:this.props.paused?this.props.location:null,onToggleBreakpoint:n=>this.props.onToggleBreakpoint(n)},"scriptEditor2")},"scriptEditorDiv2")}};const o0=34,ao={logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:o=>({display:"inline-block",color:o.palette.mode==="dark"?"white":"black",width:`calc(100% - ${o0}px)`,height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"}),info:o=>({background:o.palette.mode==="dark"?"darkgrey":"lightgrey",color:(o.palette.mode==="dark","black")}),error:o=>({background:"#FF0000",color:o.palette.mode==="dark"?"black":"white"}),warn:o=>({background:"#FF8000",color:o.palette.mode==="dark"?"black":"white"}),debug:o=>({background:"gray",opacity:.8,color:o.palette.mode==="dark"?"black":"white"}),silly:o=>({background:"gray",opacity:.6,color:o.palette.mode==="dark"?"black":"white"}),table:{fontFamily:"monospace",width:"100%"},toolbox:{width:o0,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},iconButtons:{width:32,height:32,padding:4}};function JL(o){let n,s=o.getHours();return s<10&&(s=`0${s.toString()}`),n=`${s}:`,s=o.getMinutes(),s<10&&(s=`0${s.toString()}`),n+=`${s}:`,s=o.getSeconds(),s<10&&(s=`0${s.toString()}`),n+=`${s}.`,s=o.getMilliseconds(),s<10?s=`00${s.toString()}`:s<100&&(s=`0${s.toString()}`),n+=s,n}let qL=class Wk extends We.Component{messagesEnd;constructor(n){super(n),this.state={goBottom:!0},this.messagesEnd=We.createRef()}static generateLine(n){return f.jsxs(D.Box,{component:"tr",sx:ao[n.severity],children:[f.jsx("td",{style:ao.trTime,children:JL(new Date(n.ts))}),f.jsx("td",{style:ao.trSeverity,children:n.severity}),f.jsx("td",{children:n.text})]},`tr_${n.ts}_${n.text.substring(n.text.length-10,n.text.length)}`)}renderLogList(n){return n!=null&&n.length?f.jsxs(D.Box,{sx:ao.logBoxInner,children:[f.jsx("table",{style:ao.table,children:f.jsx("tbody",{children:n.map(s=>Wk.generateLine(s))})},"logTable"),f.jsx("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):f.jsx(D.Box,{sx:ao.logBoxInner,style:{paddingLeft:10},children:I.I18n.t("Log outputs")},"logList")}onCopy(){I.Utils.copyToClipboard(this.props.console.join(` -`))}scrollToBottom(){var n,s;(s=(n=this.messagesEnd)==null?void 0:n.current)==null||s.scrollIntoView({behavior:"smooth"})}componentDidUpdate(){this.state.goBottom&&this.scrollToBottom()}render(){const n=this.props.console;return f.jsxs("div",{style:ao.logBox,children:[f.jsxs("div",{style:ao.toolbox,children:[f.jsx(D.IconButton,{style:ao.iconButtons,onClick:()=>this.setState({goBottom:!this.state.goBottom}),color:this.state.goBottom?"secondary":void 0,size:"medium",children:f.jsx(F0,{})}),n!=null&&n.length?f.jsx(D.IconButton,{style:ao.iconButtons,onClick:()=>this.props.onClearAllLogs(),size:"medium",children:f.jsx(z0,{})}):null,n!=null&&n.length?f.jsx(D.IconButton,{style:ao.iconButtons,onClick:()=>this.onCopy(),size:"medium",children:f.jsx(nw,{})}):null]},"toolbox"),this.renderLogList(n)]})}};var Lw={exports:{}},YL=Lw.exports;(function(o,n){(function(s,i){o.exports=i(ve)})(YL,function(s){return function(i){var a={};function c(h){if(a[h])return a[h].exports;var g=a[h]={i:h,l:!1,exports:{}};return i[h].call(g.exports,g,g.exports,c),g.l=!0,g.exports}return c.m=i,c.c=a,c.d=function(h,g,b){c.o(h,g)||Object.defineProperty(h,g,{enumerable:!0,get:b})},c.r=function(h){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(h,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(h,"__esModule",{value:!0})},c.t=function(h,g){if(1&g&&(h=c(h)),8&g||4&g&&typeof h=="object"&&h&&h.__esModule)return h;var b=Object.create(null);if(c.r(b),Object.defineProperty(b,"default",{enumerable:!0,value:h}),2&g&&typeof h!="string")for(var $ in h)c.d(b,$,function(y){return h[y]}.bind(null,$));return b},c.n=function(h){var g=h&&h.__esModule?function(){return h.default}:function(){return h};return c.d(g,"a",g),g},c.o=function(h,g){return Object.prototype.hasOwnProperty.call(h,g)},c.p="",c(c.s=48)}([function(i,a){i.exports=s},function(i,a){var c=i.exports={version:"2.6.12"};typeof __e=="number"&&(__e=c)},function(i,a,c){var h=c(26)("wks"),g=c(17),b=c(3).Symbol,$=typeof b=="function";(i.exports=function(y){return h[y]||(h[y]=$&&b[y]||($?b:g)("Symbol."+y))}).store=h},function(i,a){var c=i.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=c)},function(i,a,c){i.exports=!c(8)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(i,a){var c={}.hasOwnProperty;i.exports=function(h,g){return c.call(h,g)}},function(i,a,c){var h=c(7),g=c(16);i.exports=c(4)?function(b,$,y){return h.f(b,$,g(1,y))}:function(b,$,y){return b[$]=y,b}},function(i,a,c){var h=c(10),g=c(35),b=c(23),$=Object.defineProperty;a.f=c(4)?Object.defineProperty:function(y,w,T){if(h(y),w=b(w,!0),h(T),g)try{return $(y,w,T)}catch{}if("get"in T||"set"in T)throw TypeError("Accessors not supported!");return"value"in T&&(y[w]=T.value),y}},function(i,a){i.exports=function(c){try{return!!c()}catch{return!0}}},function(i,a,c){var h=c(40),g=c(22);i.exports=function(b){return h(g(b))}},function(i,a,c){var h=c(11);i.exports=function(g){if(!h(g))throw TypeError(g+" is not an object!");return g}},function(i,a){i.exports=function(c){return typeof c=="object"?c!==null:typeof c=="function"}},function(i,a){i.exports={}},function(i,a,c){var h=c(39),g=c(27);i.exports=Object.keys||function(b){return h(b,g)}},function(i,a){i.exports=!0},function(i,a,c){var h=c(3),g=c(1),b=c(53),$=c(6),y=c(5),w=function(T,C,E){var k,A,P,N=T&w.F,B=T&w.G,S=T&w.S,H=T&w.P,q=T&w.B,se=T&w.W,ee=B?g:g[C]||(g[C]={}),K=ee.prototype,Y=B?h:S?h[C]:(h[C]||{}).prototype;for(k in B&&(E=C),E)(A=!N&&Y&&Y[k]!==void 0)&&y(ee,k)||(P=A?Y[k]:E[k],ee[k]=B&&typeof Y[k]!="function"?E[k]:q&&A?b(P,h):se&&Y[k]==P?function(X){var ce=function(W,te,ke){if(this instanceof X){switch(arguments.length){case 0:return new X;case 1:return new X(W);case 2:return new X(W,te)}return new X(W,te,ke)}return X.apply(this,arguments)};return ce.prototype=X.prototype,ce}(P):H&&typeof P=="function"?b(Function.call,P):P,H&&((ee.virtual||(ee.virtual={}))[k]=P,T&w.R&&K&&!K[k]&&$(K,k,P)))};w.F=1,w.G=2,w.S=4,w.P=8,w.B=16,w.W=32,w.U=64,w.R=128,i.exports=w},function(i,a){i.exports=function(c,h){return{enumerable:!(1&c),configurable:!(2&c),writable:!(4&c),value:h}}},function(i,a){var c=0,h=Math.random();i.exports=function(g){return"Symbol(".concat(g===void 0?"":g,")_",(++c+h).toString(36))}},function(i,a,c){var h=c(22);i.exports=function(g){return Object(h(g))}},function(i,a){a.f={}.propertyIsEnumerable},function(i,a,c){var h=c(52)(!0);c(34)(String,"String",function(g){this._t=String(g),this._i=0},function(){var g,b=this._t,$=this._i;return $>=b.length?{value:void 0,done:!0}:(g=h(b,$),this._i+=g.length,{value:g,done:!1})})},function(i,a){var c=Math.ceil,h=Math.floor;i.exports=function(g){return isNaN(g=+g)?0:(g>0?h:c)(g)}},function(i,a){i.exports=function(c){if(c==null)throw TypeError("Can't call method on "+c);return c}},function(i,a,c){var h=c(11);i.exports=function(g,b){if(!h(g))return g;var $,y;if(b&&typeof($=g.toString)=="function"&&!h(y=$.call(g))||typeof($=g.valueOf)=="function"&&!h(y=$.call(g))||!b&&typeof($=g.toString)=="function"&&!h(y=$.call(g)))return y;throw TypeError("Can't convert object to primitive value")}},function(i,a){var c={}.toString;i.exports=function(h){return c.call(h).slice(8,-1)}},function(i,a,c){var h=c(26)("keys"),g=c(17);i.exports=function(b){return h[b]||(h[b]=g(b))}},function(i,a,c){var h=c(1),g=c(3),b=g["__core-js_shared__"]||(g["__core-js_shared__"]={});(i.exports=function($,y){return b[$]||(b[$]=y!==void 0?y:{})})("versions",[]).push({version:h.version,mode:c(14)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(i,a){i.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(i,a,c){var h=c(7).f,g=c(5),b=c(2)("toStringTag");i.exports=function($,y,w){$&&!g($=w?$:$.prototype,b)&&h($,b,{configurable:!0,value:y})}},function(i,a,c){c(62);for(var h=c(3),g=c(6),b=c(12),$=c(2)("toStringTag"),y="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),w=0;wdocument.F=Object<\/script>"),T.close(),w=T.F;E--;)delete w.prototype[b[E]];return w()};i.exports=Object.create||function(T,C){var E;return T!==null?(y.prototype=h(T),E=new y,y.prototype=null,E[$]=T):E=w(),C===void 0?E:g(E,C)}},function(i,a,c){var h=c(5),g=c(9),b=c(57)(!1),$=c(25)("IE_PROTO");i.exports=function(y,w){var T,C=g(y),E=0,k=[];for(T in C)T!=$&&h(C,T)&&k.push(T);for(;w.length>E;)h(C,T=w[E++])&&(~b(k,T)||k.push(T));return k}},function(i,a,c){var h=c(24);i.exports=Object("z").propertyIsEnumerable(0)?Object:function(g){return h(g)=="String"?g.split(""):Object(g)}},function(i,a,c){var h=c(39),g=c(27).concat("length","prototype");a.f=Object.getOwnPropertyNames||function(b){return h(b,g)}},function(i,a,c){var h=c(24),g=c(2)("toStringTag"),b=h(function(){return arguments}())=="Arguments";i.exports=function($){var y,w,T;return $===void 0?"Undefined":$===null?"Null":typeof(w=function(C,E){try{return C[E]}catch{}}(y=Object($),g))=="string"?w:b?h(y):(T=h(y))=="Object"&&typeof y.callee=="function"?"Arguments":T}},function(i,a){var c;c=function(){return this}();try{c=c||new Function("return this")()}catch{typeof window=="object"&&(c=window)}i.exports=c},function(i,a){var c=/-?\d+(\.\d+)?%?/g;i.exports=function(h){return h.match(c)}},function(i,a,c){Object.defineProperty(a,"__esModule",{value:!0}),a.getBase16Theme=a.createStyling=a.invertTheme=void 0;var h=A(c(49)),g=A(c(76)),b=A(c(81)),$=A(c(89)),y=A(c(93)),w=function(K){if(K&&K.__esModule)return K;var Y={};if(K!=null)for(var X in K)Object.prototype.hasOwnProperty.call(K,X)&&(Y[X]=K[X]);return Y.default=K,Y}(c(94)),T=A(c(132)),C=A(c(133)),E=A(c(138)),k=c(139);function A(K){return K&&K.__esModule?K:{default:K}}var P=w.default,N=(0,$.default)(P),B=(0,E.default)(C.default,k.rgb2yuv,function(K){var Y,X=(0,b.default)(K,3),ce=X[0],W=X[1],te=X[2];return[(Y=ce,Y<.25?1:Y<.5?.9-Y:1.1-Y),W,te]},k.yuv2rgb,T.default),S=function(K){return function(Y){return{className:[Y.className,K.className].filter(Boolean).join(" "),style:(0,g.default)({},Y.style||{},K.style||{})}}},H=function(K,Y){var X=(0,$.default)(Y);for(var ce in K)X.indexOf(ce)===-1&&X.push(ce);return X.reduce(function(W,te){return W[te]=function(ke,Z){if(ke===void 0)return Z;if(Z===void 0)return ke;var ze=ke===void 0?"undefined":(0,h.default)(ke),Ce=Z===void 0?"undefined":(0,h.default)(Z);switch(ze){case"string":switch(Ce){case"string":return[Z,ke].filter(Boolean).join(" ");case"object":return S({className:ke,style:Z});case"function":return function(at){for(var he=arguments.length,Ae=Array(he>1?he-1:0),de=1;de1?he-1:0),de=1;de1?he-1:0),de=1;de1?he-1:0),de=1;de1?he-1:0),de=1;de2?X-2:0),W=2;W3?Y-3:0),ce=3;ce1&&arguments[1]!==void 0?arguments[1]:{},te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ke=W.defaultBase16,Z=ke===void 0?P:ke,ze=W.base16Themes,Ce=ze===void 0?null:ze,at=ee(te,Ce);at&&(te=(0,g.default)({},at,te));var he=N.reduce(function(xe,He){return xe[He]=te[He]||Z[He],xe},{}),Ae=(0,$.default)(te).reduce(function(xe,He){return N.indexOf(He)===-1&&(xe[He]=te[He]),xe},{}),de=K(he),Se=H(Ae,de);return(0,y.default)(q,2).apply(void 0,[Se].concat(X))},3),a.getBase16Theme=function(K,Y){if(K&&K.extend&&(K=K.extend),typeof K=="string"){var X=K.split(":"),ce=(0,b.default)(X,2),W=ce[0],te=ce[1];K=(Y||{})[W]||w[W],te==="inverted"&&(K=se(K))}return K&&K.hasOwnProperty("base00")?K:void 0})},function(i,a,c){var h,g=typeof Reflect=="object"?Reflect:null,b=g&&typeof g.apply=="function"?g.apply:function(S,H,q){return Function.prototype.apply.call(S,H,q)};h=g&&typeof g.ownKeys=="function"?g.ownKeys:Object.getOwnPropertySymbols?function(S){return Object.getOwnPropertyNames(S).concat(Object.getOwnPropertySymbols(S))}:function(S){return Object.getOwnPropertyNames(S)};var $=Number.isNaN||function(S){return S!=S};function y(){y.init.call(this)}i.exports=y,i.exports.once=function(S,H){return new Promise(function(q,se){function ee(){K!==void 0&&S.removeListener("error",K),q([].slice.call(arguments))}var K;H!=="error"&&(K=function(Y){S.removeListener(H,ee),se(Y)},S.once("error",K)),S.once(H,ee)})},y.EventEmitter=y,y.prototype._events=void 0,y.prototype._eventsCount=0,y.prototype._maxListeners=void 0;var w=10;function T(S){if(typeof S!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof S)}function C(S){return S._maxListeners===void 0?y.defaultMaxListeners:S._maxListeners}function E(S,H,q,se){var ee,K,Y,X;if(T(q),(K=S._events)===void 0?(K=S._events=Object.create(null),S._eventsCount=0):(K.newListener!==void 0&&(S.emit("newListener",H,q.listener?q.listener:q),K=S._events),Y=K[H]),Y===void 0)Y=K[H]=q,++S._eventsCount;else if(typeof Y=="function"?Y=K[H]=se?[q,Y]:[Y,q]:se?Y.unshift(q):Y.push(q),(ee=C(S))>0&&Y.length>ee&&!Y.warned){Y.warned=!0;var ce=new Error("Possible EventEmitter memory leak detected. "+Y.length+" "+String(H)+" listeners added. Use emitter.setMaxListeners() to increase limit");ce.name="MaxListenersExceededWarning",ce.emitter=S,ce.type=H,ce.count=Y.length,X=ce,console&&console.warn&&console.warn(X)}return S}function k(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function A(S,H,q){var se={fired:!1,wrapFn:void 0,target:S,type:H,listener:q},ee=k.bind(se);return ee.listener=q,se.wrapFn=ee,ee}function P(S,H,q){var se=S._events;if(se===void 0)return[];var ee=se[H];return ee===void 0?[]:typeof ee=="function"?q?[ee.listener||ee]:[ee]:q?function(K){for(var Y=new Array(K.length),X=0;X0&&(K=H[0]),K instanceof Error)throw K;var Y=new Error("Unhandled error."+(K?" ("+K.message+")":""));throw Y.context=K,Y}var X=ee[S];if(X===void 0)return!1;if(typeof X=="function")b(X,this,H);else{var ce=X.length,W=B(X,ce);for(q=0;q=0;K--)if(q[K]===H||q[K].listener===H){Y=q[K].listener,ee=K;break}if(ee<0)return this;ee===0?q.shift():function(X,ce){for(;ce+1=0;se--)this.removeListener(S,H[se]);return this},y.prototype.listeners=function(S){return P(this,S,!0)},y.prototype.rawListeners=function(S){return P(this,S,!1)},y.listenerCount=function(S,H){return typeof S.listenerCount=="function"?S.listenerCount(H):N.call(S,H)},y.prototype.listenerCount=N,y.prototype.eventNames=function(){return this._eventsCount>0?h(this._events):[]}},function(i,a,c){i.exports.Dispatcher=c(140)},function(i,a,c){i.exports=c(142)},function(i,a,c){a.__esModule=!0;var h=$(c(50)),g=$(c(65)),b=typeof g.default=="function"&&typeof h.default=="symbol"?function(y){return typeof y}:function(y){return y&&typeof g.default=="function"&&y.constructor===g.default&&y!==g.default.prototype?"symbol":typeof y};function $(y){return y&&y.__esModule?y:{default:y}}a.default=typeof g.default=="function"&&b(h.default)==="symbol"?function(y){return y===void 0?"undefined":b(y)}:function(y){return y&&typeof g.default=="function"&&y.constructor===g.default&&y!==g.default.prototype?"symbol":y===void 0?"undefined":b(y)}},function(i,a,c){i.exports={default:c(51),__esModule:!0}},function(i,a,c){c(20),c(29),i.exports=c(30).f("iterator")},function(i,a,c){var h=c(21),g=c(22);i.exports=function(b){return function($,y){var w,T,C=String(g($)),E=h(y),k=C.length;return E<0||E>=k?b?"":void 0:(w=C.charCodeAt(E))<55296||w>56319||E+1===k||(T=C.charCodeAt(E+1))<56320||T>57343?b?C.charAt(E):w:b?C.slice(E,E+2):T-56320+(w-55296<<10)+65536}}},function(i,a,c){var h=c(54);i.exports=function(g,b,$){if(h(g),b===void 0)return g;switch($){case 1:return function(y){return g.call(b,y)};case 2:return function(y,w){return g.call(b,y,w)};case 3:return function(y,w,T){return g.call(b,y,w,T)}}return function(){return g.apply(b,arguments)}}},function(i,a){i.exports=function(c){if(typeof c!="function")throw TypeError(c+" is not a function!");return c}},function(i,a,c){var h=c(38),g=c(16),b=c(28),$={};c(6)($,c(2)("iterator"),function(){return this}),i.exports=function(y,w,T){y.prototype=h($,{next:g(1,T)}),b(y,w+" Iterator")}},function(i,a,c){var h=c(7),g=c(10),b=c(13);i.exports=c(4)?Object.defineProperties:function($,y){g($);for(var w,T=b(y),C=T.length,E=0;C>E;)h.f($,w=T[E++],y[w]);return $}},function(i,a,c){var h=c(9),g=c(58),b=c(59);i.exports=function($){return function(y,w,T){var C,E=h(y),k=g(E.length),A=b(T,k);if($&&w!=w){for(;k>A;)if((C=E[A++])!=C)return!0}else for(;k>A;A++)if(($||A in E)&&E[A]===w)return $||A||0;return!$&&-1}}},function(i,a,c){var h=c(21),g=Math.min;i.exports=function(b){return b>0?g(h(b),9007199254740991):0}},function(i,a,c){var h=c(21),g=Math.max,b=Math.min;i.exports=function($,y){return($=h($))<0?g($+y,0):b($,y)}},function(i,a,c){var h=c(3).document;i.exports=h&&h.documentElement},function(i,a,c){var h=c(5),g=c(18),b=c(25)("IE_PROTO"),$=Object.prototype;i.exports=Object.getPrototypeOf||function(y){return y=g(y),h(y,b)?y[b]:typeof y.constructor=="function"&&y instanceof y.constructor?y.constructor.prototype:y instanceof Object?$:null}},function(i,a,c){var h=c(63),g=c(64),b=c(12),$=c(9);i.exports=c(34)(Array,"Array",function(y,w){this._t=$(y),this._i=0,this._k=w},function(){var y=this._t,w=this._k,T=this._i++;return!y||T>=y.length?(this._t=void 0,g(1)):g(0,w=="keys"?T:w=="values"?y[T]:[T,y[T]])},"values"),b.Arguments=b.Array,h("keys"),h("values"),h("entries")},function(i,a){i.exports=function(){}},function(i,a){i.exports=function(c,h){return{value:h,done:!!c}}},function(i,a,c){i.exports={default:c(66),__esModule:!0}},function(i,a,c){c(67),c(73),c(74),c(75),i.exports=c(1).Symbol},function(i,a,c){var h=c(3),g=c(5),b=c(4),$=c(15),y=c(37),w=c(68).KEY,T=c(8),C=c(26),E=c(28),k=c(17),A=c(2),P=c(30),N=c(31),B=c(69),S=c(70),H=c(10),q=c(11),se=c(18),ee=c(9),K=c(23),Y=c(16),X=c(38),ce=c(71),W=c(72),te=c(32),ke=c(7),Z=c(13),ze=W.f,Ce=ke.f,at=ce.f,he=h.Symbol,Ae=h.JSON,de=Ae&&Ae.stringify,Se=A("_hidden"),xe=A("toPrimitive"),He={}.propertyIsEnumerable,ne=C("symbol-registry"),Ke=C("symbols"),Te=C("op-symbols"),Je=Object.prototype,rt=typeof he=="function"&&!!te.f,ht=h.QObject,nt=!ht||!ht.prototype||!ht.prototype.findChild,Wt=b&&T(function(){return X(Ce({},"a",{get:function(){return Ce(this,"a",{value:7}).a}})).a!=7})?function(ue,we,Ve){var re=ze(Je,we);re&&delete Je[we],Ce(ue,we,Ve),re&&ue!==Je&&Ce(Je,we,re)}:Ce,St=function(ue){var we=Ke[ue]=X(he.prototype);return we._k=ue,we},lt=rt&&typeof he.iterator=="symbol"?function(ue){return typeof ue=="symbol"}:function(ue){return ue instanceof he},ft=function(ue,we,Ve){return ue===Je&&ft(Te,we,Ve),H(ue),we=K(we,!0),H(Ve),g(Ke,we)?(Ve.enumerable?(g(ue,Se)&&ue[Se][we]&&(ue[Se][we]=!1),Ve=X(Ve,{enumerable:Y(0,!1)})):(g(ue,Se)||Ce(ue,Se,Y(1,{})),ue[Se][we]=!0),Wt(ue,we,Ve)):Ce(ue,we,Ve)},st=function(ue,we){H(ue);for(var Ve,re=B(we=ee(we)),Fe=0,It=re.length;It>Fe;)ft(ue,Ve=re[Fe++],we[Ve]);return ue},At=function(ue){var we=He.call(this,ue=K(ue,!0));return!(this===Je&&g(Ke,ue)&&!g(Te,ue))&&(!(we||!g(this,ue)||!g(Ke,ue)||g(this,Se)&&this[Se][ue])||we)},mn=function(ue,we){if(ue=ee(ue),we=K(we,!0),ue!==Je||!g(Ke,we)||g(Te,we)){var Ve=ze(ue,we);return!Ve||!g(Ke,we)||g(ue,Se)&&ue[Se][we]||(Ve.enumerable=!0),Ve}},Ue=function(ue){for(var we,Ve=at(ee(ue)),re=[],Fe=0;Ve.length>Fe;)g(Ke,we=Ve[Fe++])||we==Se||we==w||re.push(we);return re},Nt=function(ue){for(var we,Ve=ue===Je,re=at(Ve?Te:ee(ue)),Fe=[],It=0;re.length>It;)!g(Ke,we=re[It++])||Ve&&!g(Je,we)||Fe.push(Ke[we]);return Fe};rt||(y((he=function(){if(this instanceof he)throw TypeError("Symbol is not a constructor!");var ue=k(arguments.length>0?arguments[0]:void 0),we=function(Ve){this===Je&&we.call(Te,Ve),g(this,Se)&&g(this[Se],ue)&&(this[Se][ue]=!1),Wt(this,ue,Y(1,Ve))};return b&&nt&&Wt(Je,ue,{configurable:!0,set:we}),St(ue)}).prototype,"toString",function(){return this._k}),W.f=mn,ke.f=ft,c(41).f=ce.f=Ue,c(19).f=At,te.f=Nt,b&&!c(14)&&y(Je,"propertyIsEnumerable",At,!0),P.f=function(ue){return St(A(ue))}),$($.G+$.W+$.F*!rt,{Symbol:he});for(var wt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),qt=0;wt.length>qt;)A(wt[qt++]);for(var ct=Z(A.store),me=0;ct.length>me;)N(ct[me++]);$($.S+$.F*!rt,"Symbol",{for:function(ue){return g(ne,ue+="")?ne[ue]:ne[ue]=he(ue)},keyFor:function(ue){if(!lt(ue))throw TypeError(ue+" is not a symbol!");for(var we in ne)if(ne[we]===ue)return we},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),$($.S+$.F*!rt,"Object",{create:function(ue,we){return we===void 0?X(ue):st(X(ue),we)},defineProperty:ft,defineProperties:st,getOwnPropertyDescriptor:mn,getOwnPropertyNames:Ue,getOwnPropertySymbols:Nt});var ge=T(function(){te.f(1)});$($.S+$.F*ge,"Object",{getOwnPropertySymbols:function(ue){return te.f(se(ue))}}),Ae&&$($.S+$.F*(!rt||T(function(){var ue=he();return de([ue])!="[null]"||de({a:ue})!="{}"||de(Object(ue))!="{}"})),"JSON",{stringify:function(ue){for(var we,Ve,re=[ue],Fe=1;arguments.length>Fe;)re.push(arguments[Fe++]);if(Ve=we=re[1],(q(we)||ue!==void 0)&&!lt(ue))return S(we)||(we=function(It,pt){if(typeof Ve=="function"&&(pt=Ve.call(this,It,pt)),!lt(pt))return pt}),re[1]=we,de.apply(Ae,re)}}),he.prototype[xe]||c(6)(he.prototype,xe,he.prototype.valueOf),E(he,"Symbol"),E(Math,"Math",!0),E(h.JSON,"JSON",!0)},function(i,a,c){var h=c(17)("meta"),g=c(11),b=c(5),$=c(7).f,y=0,w=Object.isExtensible||function(){return!0},T=!c(8)(function(){return w(Object.preventExtensions({}))}),C=function(k){$(k,h,{value:{i:"O"+ ++y,w:{}}})},E=i.exports={KEY:h,NEED:!1,fastKey:function(k,A){if(!g(k))return typeof k=="symbol"?k:(typeof k=="string"?"S":"P")+k;if(!b(k,h)){if(!w(k))return"F";if(!A)return"E";C(k)}return k[h].i},getWeak:function(k,A){if(!b(k,h)){if(!w(k))return!0;if(!A)return!1;C(k)}return k[h].w},onFreeze:function(k){return T&&E.NEED&&w(k)&&!b(k,h)&&C(k),k}}},function(i,a,c){var h=c(13),g=c(32),b=c(19);i.exports=function($){var y=h($),w=g.f;if(w)for(var T,C=w($),E=b.f,k=0;C.length>k;)E.call($,T=C[k++])&&y.push(T);return y}},function(i,a,c){var h=c(24);i.exports=Array.isArray||function(g){return h(g)=="Array"}},function(i,a,c){var h=c(9),g=c(41).f,b={}.toString,$=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];i.exports.f=function(y){return $&&b.call(y)=="[object Window]"?function(w){try{return g(w)}catch{return $.slice()}}(y):g(h(y))}},function(i,a,c){var h=c(19),g=c(16),b=c(9),$=c(23),y=c(5),w=c(35),T=Object.getOwnPropertyDescriptor;a.f=c(4)?T:function(C,E){if(C=b(C),E=$(E,!0),w)try{return T(C,E)}catch{}if(y(C,E))return g(!h.f.call(C,E),C[E])}},function(i,a){},function(i,a,c){c(31)("asyncIterator")},function(i,a,c){c(31)("observable")},function(i,a,c){a.__esModule=!0;var h,g=c(77),b=(h=g)&&h.__esModule?h:{default:h};a.default=b.default||function($){for(var y=1;yP;)for(var S,H=w(arguments[P++]),q=N?g(H).concat(N(H)):g(H),se=q.length,ee=0;se>ee;)S=q[ee++],h&&!B.call(H,S)||(k[S]=H[S]);return k}:T},function(i,a,c){a.__esModule=!0;var h=b(c(82)),g=b(c(85));function b($){return $&&$.__esModule?$:{default:$}}a.default=function($,y){if(Array.isArray($))return $;if((0,h.default)(Object($)))return function(w,T){var C=[],E=!0,k=!1,A=void 0;try{for(var P,N=(0,g.default)(w);!(E=(P=N.next()).done)&&(C.push(P.value),!T||C.length!==T);E=!0);}catch(B){k=!0,A=B}finally{try{!E&&N.return&&N.return()}finally{if(k)throw A}}return C}($,y);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(i,a,c){i.exports={default:c(83),__esModule:!0}},function(i,a,c){c(29),c(20),i.exports=c(84)},function(i,a,c){var h=c(42),g=c(2)("iterator"),b=c(12);i.exports=c(1).isIterable=function($){var y=Object($);return y[g]!==void 0||"@@iterator"in y||b.hasOwnProperty(h(y))}},function(i,a,c){i.exports={default:c(86),__esModule:!0}},function(i,a,c){c(29),c(20),i.exports=c(87)},function(i,a,c){var h=c(10),g=c(88);i.exports=c(1).getIterator=function(b){var $=g(b);if(typeof $!="function")throw TypeError(b+" is not iterable!");return h($.call(b))}},function(i,a,c){var h=c(42),g=c(2)("iterator"),b=c(12);i.exports=c(1).getIteratorMethod=function($){if($!=null)return $[g]||$["@@iterator"]||b[h($)]}},function(i,a,c){i.exports={default:c(90),__esModule:!0}},function(i,a,c){c(91),i.exports=c(1).Object.keys},function(i,a,c){var h=c(18),g=c(13);c(92)("keys",function(){return function(b){return g(h(b))}})},function(i,a,c){var h=c(15),g=c(1),b=c(8);i.exports=function($,y){var w=(g.Object||{})[$]||Object[$],T={};T[$]=y(w),h(h.S+h.F*b(function(){w(1)}),"Object",T)}},function(i,a,c){(function(h){var g=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],b=/^\s+|\s+$/g,$=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,y=/\{\n\/\* \[wrapped with (.+)\] \*/,w=/,? & /,T=/^[-+]0x[0-9a-f]+$/i,C=/^0b[01]+$/i,E=/^\[object .+?Constructor\]$/,k=/^0o[0-7]+$/i,A=/^(?:0|[1-9]\d*)$/,P=parseInt,N=typeof h=="object"&&h&&h.Object===Object&&h,B=typeof self=="object"&&self&&self.Object===Object&&self,S=N||B||Function("return this")();function H(me,ge,ue){switch(ue.length){case 0:return me.call(ge);case 1:return me.call(ge,ue[0]);case 2:return me.call(ge,ue[0],ue[1]);case 3:return me.call(ge,ue[0],ue[1],ue[2])}return me.apply(ge,ue)}function q(me,ge){return!!(me&&me.length)&&function(ue,we,Ve){if(we!=we)return function(It,pt,En,mt){for(var Cn=It.length,$n=En+-1;++$n-1}function se(me){return me!=me}function ee(me,ge){for(var ue=me.length,we=0;ue--;)me[ue]===ge&&we++;return we}function K(me,ge){for(var ue=-1,we=me.length,Ve=0,re=[];++ue2?X:void 0);function He(me){return wt(me)?Ae(me):{}}function ne(me){return!(!wt(me)||function(ge){return!!Z&&Z in ge}(me))&&(function(ge){var ue=wt(ge)?at.call(ge):"";return ue=="[object Function]"||ue=="[object GeneratorFunction]"}(me)||function(ge){var ue=!1;if(ge!=null&&typeof ge.toString!="function")try{ue=!!(ge+"")}catch{}return ue}(me)?he:E).test(function(ge){if(ge!=null){try{return ze.call(ge)}catch{}try{return ge+""}catch{}}return""}(me))}function Ke(me,ge,ue,we){for(var Ve=-1,re=me.length,Fe=ue.length,It=-1,pt=ge.length,En=de(re-Fe,0),mt=Array(pt+En),Cn=!we;++It1&&Kt.reverse(),mt&&pt1?"& ":"")+ge[we],ge=ge.join(ue>2?", ":" "),me.replace($,`{ -/* [wrapped with `+ge+`] */ -`)}function st(me,ge){return!!(ge=ge??9007199254740991)&&(typeof me=="number"||A.test(me))&&me>-1&&me%1==0&&me1&&b--,y=6*b<1?h+6*(g-h)*b:2*b<1?g:3*b<2?h+(g-h)*(2/3-b)*6:h,$[E]=255*y;return $}},function(i,a,c){(function(h){var g=typeof h=="object"&&h&&h.Object===Object&&h,b=typeof self=="object"&&self&&self.Object===Object&&self,$=g||b||Function("return this")();function y(K,Y,X){switch(X.length){case 0:return K.call(Y);case 1:return K.call(Y,X[0]);case 2:return K.call(Y,X[0],X[1]);case 3:return K.call(Y,X[0],X[1],X[2])}return K.apply(Y,X)}function w(K,Y){for(var X=-1,ce=Y.length,W=K.length;++X-1&&W%1==0&&W<=9007199254740991}(ce.length)&&!function(W){var te=function(ke){var Z=typeof ke;return!!ke&&(Z=="object"||Z=="function")}(W)?E.call(W):"";return te=="[object Function]"||te=="[object GeneratorFunction]"}(ce)}(X)}(Y)&&C.call(Y,"callee")&&(!A.call(Y,"callee")||E.call(Y)=="[object Arguments]")}(K)||!!(P&&K&&K[P])}var S=Array.isArray,H,q,se,ee=(q=function(K){var Y=(K=function(W,te,ke,Z,ze){var Ce=-1,at=W.length;for(ke||(ke=B),ze||(ze=[]);++Ce2?b-2:0),y=2;y"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var R,j=E(z);if(U){var F=E(this).constructor;R=Reflect.construct(j,arguments,F)}else R=j.apply(this,arguments);return P(this,R)}}c.r(a);var B=c(0),S=c.n(B);function H(){var z=this.constructor.getDerivedStateFromProps(this.props,this.state);z!=null&&this.setState(z)}function q(z){this.setState(function(U){var R=this.constructor.getDerivedStateFromProps(z,U);return R??null}.bind(this))}function se(z,U){try{var R=this.props,j=this.state;this.props=z,this.state=U,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(R,j)}finally{this.props=R,this.state=j}}function ee(z){var U=z.prototype;if(!U||!U.isReactComponent)throw new Error("Can only polyfill class components");if(typeof z.getDerivedStateFromProps!="function"&&typeof U.getSnapshotBeforeUpdate!="function")return z;var R=null,j=null,F=null;if(typeof U.componentWillMount=="function"?R="componentWillMount":typeof U.UNSAFE_componentWillMount=="function"&&(R="UNSAFE_componentWillMount"),typeof U.componentWillReceiveProps=="function"?j="componentWillReceiveProps":typeof U.UNSAFE_componentWillReceiveProps=="function"&&(j="UNSAFE_componentWillReceiveProps"),typeof U.componentWillUpdate=="function"?F="componentWillUpdate":typeof U.UNSAFE_componentWillUpdate=="function"&&(F="UNSAFE_componentWillUpdate"),R!==null||j!==null||F!==null){var pe=z.displayName||z.name,Ee=typeof z.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error(`Unsafe legacy lifecycles will not be called for components using new component APIs. - -`+pe+" uses "+Ee+" but also contains the following legacy lifecycles:"+(R!==null?` - `+R:"")+(j!==null?` - `+j:"")+(F!==null?` - `+F:"")+` - -The above lifecycles should be removed. Learn more about this warning here: -https://fb.me/react-async-component-lifecycle-hooks`)}if(typeof z.getDerivedStateFromProps=="function"&&(U.componentWillMount=H,U.componentWillReceiveProps=q),typeof U.getSnapshotBeforeUpdate=="function"){if(typeof U.componentDidUpdate!="function")throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");U.componentWillUpdate=se;var _e=U.componentDidUpdate;U.componentDidUpdate=function(ae,je,it){var Ft=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:it;_e.call(this,ae,je,Ft)}}return z}function K(z,U){if(z==null)return{};var R,j,F=function(Ee,_e){if(Ee==null)return{};var ae,je,it={},Ft=Object.keys(Ee);for(je=0;je=0||(it[ae]=Ee[ae]);return it}(z,U);if(Object.getOwnPropertySymbols){var pe=Object.getOwnPropertySymbols(z);for(j=0;j=0||Object.prototype.propertyIsEnumerable.call(z,R)&&(F[R]=z[R])}return F}function Y(z){var U=function(R){return{}.toString.call(R).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(z);return U==="number"&&(U=isNaN(z)?"nan":(0|z)!=z?"float":"integer"),U}H.__suppressDeprecationWarning=!0,q.__suppressDeprecationWarning=!0,se.__suppressDeprecationWarning=!0;var X={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},ce={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},W={globalFontFamily:"monospace",globalCursor:"default",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},te=c(45),ke=function(z){var U=function(R){return{backgroundColor:R.base00,ellipsisColor:R.base09,braceColor:R.base07,expandedIcon:R.base0D,collapsedIcon:R.base0E,keyColor:R.base07,arrayKeyColor:R.base0C,objectSize:R.base04,copyToClipboard:R.base0F,copyToClipboardCheck:R.base0D,objectBorder:R.base02,dataTypes:{boolean:R.base0E,date:R.base0D,float:R.base0B,function:R.base0D,integer:R.base0F,string:R.base09,nan:R.base08,null:R.base0A,undefined:R.base05,regexp:R.base0A,background:R.base02},editVariable:{editIcon:R.base0E,cancelIcon:R.base09,removeIcon:R.base09,addIcon:R.base0E,checkIcon:R.base0E,background:R.base01,color:R.base0A,border:R.base07},addKeyModal:{background:R.base05,border:R.base04,color:R.base0A,labelColor:R.base01},validationFailure:{background:R.base09,iconColor:R.base01,fontColor:R.base01}}}(z);return{"app-container":{fontFamily:W.globalFontFamily,cursor:W.globalCursor,backgroundColor:U.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:U.ellipsisColor,fontSize:W.ellipsisFontSize,lineHeight:W.ellipsisLineHeight,cursor:W.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:W.braceCursor,fontWeight:W.braceFontWeight,color:U.braceColor},"expanded-icon":{color:U.expandedIcon},"collapsed-icon":{color:U.collapsedIcon},colon:{display:"inline-block",margin:W.keyMargin,color:U.keyColor,verticalAlign:"top"},objectKeyVal:function(R,j){return{style:b({paddingTop:W.keyValPaddingTop,paddingRight:W.keyValPaddingRight,paddingBottom:W.keyValPaddingBottom,borderLeft:W.keyValBorderLeft+" "+U.objectBorder,":hover":{paddingLeft:j.paddingLeft-1+"px",borderLeft:W.keyValBorderHover+" "+U.objectBorder}},j)}},"object-key-val-no-border":{padding:W.keyValPadding},"pushed-content":{marginLeft:W.pushedContentMarginLeft},variableValue:function(R,j){return{style:b({display:"inline-block",paddingRight:W.variableValuePaddingRight,position:"relative"},j)}},"object-name":{display:"inline-block",color:U.keyColor,letterSpacing:W.keyLetterSpacing,fontStyle:W.keyFontStyle,verticalAlign:W.keyVerticalAlign,opacity:W.keyOpacity,":hover":{opacity:W.keyOpacityHover}},"array-key":{display:"inline-block",color:U.arrayKeyColor,letterSpacing:W.keyLetterSpacing,fontStyle:W.keyFontStyle,verticalAlign:W.keyVerticalAlign,opacity:W.keyOpacity,":hover":{opacity:W.keyOpacityHover}},"object-size":{color:U.objectSize,borderRadius:W.objectSizeBorderRadius,fontStyle:W.objectSizeFontStyle,margin:W.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:W.dataTypeFontSize,marginRight:W.dataTypeMarginRight,opacity:W.datatypeOpacity},boolean:{display:"inline-block",color:U.dataTypes.boolean},date:{display:"inline-block",color:U.dataTypes.date},"date-value":{marginLeft:W.dateValueMarginLeft},float:{display:"inline-block",color:U.dataTypes.float},function:{display:"inline-block",color:U.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:U.dataTypes.integer},string:{display:"inline-block",color:U.dataTypes.string},nan:{display:"inline-block",color:U.dataTypes.nan,fontSize:W.nanFontSize,fontWeight:W.nanFontWeight,backgroundColor:U.dataTypes.background,padding:W.nanPadding,borderRadius:W.nanBorderRadius},null:{display:"inline-block",color:U.dataTypes.null,fontSize:W.nullFontSize,fontWeight:W.nullFontWeight,backgroundColor:U.dataTypes.background,padding:W.nullPadding,borderRadius:W.nullBorderRadius},undefined:{display:"inline-block",color:U.dataTypes.undefined,fontSize:W.undefinedFontSize,padding:W.undefinedPadding,borderRadius:W.undefinedBorderRadius,backgroundColor:U.dataTypes.background},regexp:{display:"inline-block",color:U.dataTypes.regexp},"copy-to-clipboard":{cursor:W.clipboardCursor},"copy-icon":{color:U.copyToClipboard,fontSize:W.iconFontSize,marginRight:W.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:U.copyToClipboardCheck,marginLeft:W.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:W.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:W.metaDataPadding},"icon-container":{display:"inline-block",width:W.iconContainerWidth},tooltip:{padding:W.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:U.editVariable.removeIcon,cursor:W.iconCursor,fontSize:W.iconFontSize,marginRight:W.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:U.editVariable.addIcon,cursor:W.iconCursor,fontSize:W.iconFontSize,marginRight:W.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:U.editVariable.editIcon,cursor:W.iconCursor,fontSize:W.iconFontSize,marginRight:W.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:W.iconCursor,color:U.editVariable.checkIcon,fontSize:W.iconFontSize,paddingRight:W.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:W.iconCursor,color:U.editVariable.cancelIcon,fontSize:W.iconFontSize,paddingRight:W.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:W.editInputMinWidth,borderRadius:W.editInputBorderRadius,backgroundColor:U.editVariable.background,color:U.editVariable.color,padding:W.editInputPadding,marginRight:W.editInputMarginRight,fontFamily:W.editInputFontFamily},"detected-row":{paddingTop:W.detectedRowPaddingTop},"key-modal-request":{position:W.addKeyCoverPosition,top:W.addKeyCoverPositionPx,left:W.addKeyCoverPositionPx,right:W.addKeyCoverPositionPx,bottom:W.addKeyCoverPositionPx,backgroundColor:W.addKeyCoverBackground},"key-modal":{width:W.addKeyModalWidth,backgroundColor:U.addKeyModal.background,marginLeft:W.addKeyModalMargin,marginRight:W.addKeyModalMargin,padding:W.addKeyModalPadding,borderRadius:W.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:U.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:U.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:U.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:U.addKeyModal.labelColor,fontSize:W.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:U.editVariable.addIcon,fontSize:W.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:U.ellipsisColor,fontSize:W.ellipsisFontSize,lineHeight:W.ellipsisLineHeight,cursor:W.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:U.validationFailure.fontColor,backgroundColor:U.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:U.validationFailure.iconColor,fontSize:W.iconFontSize,transform:"rotate(45deg)"}}};function Z(z,U,R){return z||console.error("theme has not been set"),function(j){var F=X;return j!==!1&&j!=="none"||(F=ce),Object(te.createStyling)(ke,{defaultBase16:F})(j)}(z)(U,R)}var ze=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=(j.rjvId,j.type_name),pe=j.displayDataTypes,Ee=j.theme;return pe?S.a.createElement("span",Object.assign({className:"data-type-label"},Z(Ee,"data-type-label")),F):null}}]),R}(S.a.PureComponent),Ce=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props;return S.a.createElement("div",Z(j.theme,"boolean"),S.a.createElement(ze,Object.assign({type_name:"bool"},j)),j.value?"true":"false")}}]),R}(S.a.PureComponent),at=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props;return S.a.createElement("div",Z(j.theme,"date"),S.a.createElement(ze,Object.assign({type_name:"date"},j)),S.a.createElement("span",Object.assign({className:"date-value"},Z(j.theme,"date-value")),j.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),R}(S.a.PureComponent),he=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props;return S.a.createElement("div",Z(j.theme,"float"),S.a.createElement(ze,Object.assign({type_name:"float"},j)),this.props.value)}}]),R}(S.a.PureComponent);function Ae(z,U){(U==null||U>z.length)&&(U=z.length);for(var R=0,j=new Array(U);R"u"||z[Symbol.iterator]==null){if(Array.isArray(z)||(R=de(z))||U){R&&(z=R);var j=0,F=function(){};return{s:F,n:function(){return j>=z.length?{done:!0}:{done:!1,value:z[j++]}},e:function(ae){throw ae},f:F}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var pe,Ee=!0,_e=!1;return{s:function(){R=z[Symbol.iterator]()},n:function(){var ae=R.next();return Ee=ae.done,ae},e:function(ae){_e=!0,pe=ae},f:function(){try{Ee||R.return==null||R.return()}finally{if(_e)throw pe}}}}function xe(z){return function(U){if(Array.isArray(U))return Ae(U)}(z)||function(U){if(typeof Symbol<"u"&&Symbol.iterator in Object(U))return Array.from(U)}(z)||de(z)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}var He=c(46),ne=new(c(47)).Dispatcher,Ke=new(function(z){C(R,z);var U=N(R);function R(){var j;$(this,R);for(var F=arguments.length,pe=new Array(F),Ee=0;EeF&&(_e.style.cursor="pointer",this.state.collapsed&&(Ee=S.a.createElement("span",null,Ee.substring(0,F),S.a.createElement("span",Z(pe,"ellipsis")," ...")))),S.a.createElement("div",Z(pe,"string"),S.a.createElement(ze,Object.assign({type_name:"string"},j)),S.a.createElement("span",Object.assign({className:"string-value"},_e,{onClick:this.toggleCollapsed}),'"',Ee,'"'))}}]),R}(S.a.PureComponent),lt=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){return S.a.createElement("div",Z(this.props.theme,"undefined"),"undefined")}}]),R}(S.a.PureComponent);function ft(){return(ft=Object.assign||function(z){for(var U=1;U=0||(Xo[ss]=Tt[ss]);return Xo}(z,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),it,Ft=je.value!==void 0,Yt=Object(B.useRef)(null),on=Ue(Yt,U),Lt=Object(B.useRef)(0),an=Object(B.useRef)(),_n=function(){var Tt=Yt.current,In=R&&an.current?an.current:function(Dr){var ho=window.getComputedStyle(Dr);if(ho===null)return null;var Ts,tn=(Ts=ho,me.reduce(function(Oi,rs){return Oi[rs]=Ts[rs],Oi},{})),qs=tn.boxSizing;return qs===""?null:(ge&&qs==="border-box"&&(tn.width=parseFloat(tn.width)+parseFloat(tn.borderRightWidth)+parseFloat(tn.borderLeftWidth)+parseFloat(tn.paddingRight)+parseFloat(tn.paddingLeft)+"px"),{sizingStyle:tn,paddingSize:parseFloat(tn.paddingBottom)+parseFloat(tn.paddingTop),borderSize:parseFloat(tn.borderBottomWidth)+parseFloat(tn.borderTopWidth)})}(Tt);if(In){an.current=In;var ss=function(Dr,ho,Ts,tn){Ts===void 0&&(Ts=1),tn===void 0&&(tn=1/0),qt||((qt=document.createElement("textarea")).setAttribute("tab-index","-1"),qt.setAttribute("aria-hidden","true"),wt(qt)),qt.parentNode===null&&document.body.appendChild(qt);var qs=Dr.paddingSize,Oi=Dr.borderSize,rs=Dr.sizingStyle,Ms=rs.boxSizing;Object.keys(rs).forEach(function(fo){var oi=fo;qt.style[oi]=rs[oi]}),wt(qt),qt.value=ho;var po=function(fo,oi){var Mi=fo.scrollHeight;return oi.sizingStyle.boxSizing==="border-box"?Mi+oi.borderSize:Mi-oi.paddingSize}(qt,Dr);qt.value="x";var Zo=qt.scrollHeight-qs,Ri=Zo*Ts;Ms==="border-box"&&(Ri=Ri+qs+Oi),po=Math.max(Ri,po);var go=Zo*tn;return Ms==="border-box"&&(go=go+qs+Oi),[po=Math.min(go,po),Zo]}(In,Tt.value||Tt.placeholder||"x",F,j),Js=ss[0],Xo=ss[1];Lt.current!==Js&&(Lt.current=Js,Tt.style.setProperty("height",Js+"px","important"),ae(Js,{rowHeight:Xo}))}};return Object(B.useLayoutEffect)(_n),it=At(_n),Object(B.useLayoutEffect)(function(){var Tt=function(In){it.current(In)};return window.addEventListener("resize",Tt),function(){window.removeEventListener("resize",Tt)}},[]),Object(B.createElement)("textarea",ft({},je,{onChange:function(Tt){Ft||_n(),Ee(Tt)},ref:on}))},we=Object(B.forwardRef)(ue);function Ve(z){z=z.trim();try{if((z=JSON.stringify(JSON.parse(z)))[0]==="[")return re("array",JSON.parse(z));if(z[0]==="{")return re("object",JSON.parse(z));if(z.match(/\-?\d+\.\d+/)&&z.match(/\-?\d+\.\d+/)[0]===z)return re("float",parseFloat(z));if(z.match(/\-?\d+e-\d+/)&&z.match(/\-?\d+e-\d+/)[0]===z)return re("float",Number(z));if(z.match(/\-?\d+/)&&z.match(/\-?\d+/)[0]===z)return re("integer",parseInt(z));if(z.match(/\-?\d+e\+\d+/)&&z.match(/\-?\d+e\+\d+/)[0]===z)return re("integer",Number(z))}catch{}switch(z=z.toLowerCase()){case"undefined":return re("undefined",void 0);case"nan":return re("nan",NaN);case"null":return re("null",null);case"true":return re("boolean",!0);case"false":return re("boolean",!1);default:if(z=Date.parse(z))return re("date",new Date(z))}return re(!1,null)}function re(z,U){return{type:z,value:U}}var Fe=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),R}(S.a.PureComponent),It=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),R}(S.a.PureComponent),pt=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]),Ee=Kt(F).style;return S.a.createElement("span",pe,S.a.createElement("svg",{fill:Ee.color,width:Ee.height,height:Ee.width,style:Ee,viewBox:"0 0 1792 1792"},S.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),R}(S.a.PureComponent),En=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]),Ee=Kt(F).style;return S.a.createElement("span",pe,S.a.createElement("svg",{fill:Ee.color,width:Ee.height,height:Ee.width,style:Ee,viewBox:"0 0 1792 1792"},S.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),R}(S.a.PureComponent),mt=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",{style:b(b({},Kt(F).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},S.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),R}(S.a.PureComponent),Cn=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",{style:b(b({},Kt(F).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},S.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),R}(S.a.PureComponent),$n=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("g",null,S.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),R}(S.a.PureComponent),zn=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("g",null,S.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),R}(S.a.PureComponent),Jn=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("g",null,S.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),R}(S.a.PureComponent),Gs=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("g",null,S.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),R}(S.a.PureComponent),ns=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("g",null,S.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),R}(S.a.PureComponent),Rn=function(z){C(R,z);var U=N(R);function R(){return $(this,R),U.apply(this,arguments)}return w(R,[{key:"render",value:function(){var j=this.props,F=j.style,pe=K(j,["style"]);return S.a.createElement("span",pe,S.a.createElement("svg",Object.assign({},Kt(F),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),S.a.createElement("g",null,S.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),R}(S.a.PureComponent);function Kt(z){return z||(z={}),{style:b(b({verticalAlign:"middle"},z),{},{color:z.color?z.color:"#000000",height:"1em",width:"1em"})}}var Pn=function(z){C(R,z);var U=N(R);function R(j){var F;return $(this,R),(F=U.call(this,j)).copiedTimer=null,F.handleCopy=function(){var pe=document.createElement("textarea"),Ee=F.props,_e=Ee.clickCallback,ae=Ee.src,je=Ee.namespace;pe.innerHTML=JSON.stringify(F.clipboardValue(ae),null," "),document.body.appendChild(pe),pe.select(),document.execCommand("copy"),document.body.removeChild(pe),F.copiedTimer=setTimeout(function(){F.setState({copied:!1})},5500),F.setState({copied:!0},function(){typeof _e=="function"&&_e({src:ae,namespace:je,name:je[je.length-1]})})},F.getClippyIcon=function(){var pe=F.props.theme;return F.state.copied?S.a.createElement("span",null,S.a.createElement($n,Object.assign({className:"copy-icon"},Z(pe,"copy-icon"))),S.a.createElement("span",Z(pe,"copy-icon-copied"),"✔")):S.a.createElement($n,Object.assign({className:"copy-icon"},Z(pe,"copy-icon")))},F.clipboardValue=function(pe){switch(Y(pe)){case"function":case"regexp":return pe.toString();default:return pe}},F.state={copied:!1},F}return w(R,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var j=this.props,F=(j.src,j.theme),pe=j.hidden,Ee=j.rowHovered,_e=Z(F,"copy-to-clipboard").style,ae="inline";return pe&&(ae="none"),S.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:Ee?"inline-block":"none"}},S.a.createElement("span",{style:b(b({},_e),{},{display:ae}),onClick:this.handleCopy},this.getClippyIcon()))}}]),R}(S.a.PureComponent),cs=function(z){C(R,z);var U=N(R);function R(j){var F;return $(this,R),(F=U.call(this,j)).getEditIcon=function(){var pe=F.props,Ee=pe.variable,_e=pe.theme;return S.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:F.state.hovered?"inline-block":"none"}},S.a.createElement(ns,Object.assign({className:"click-to-edit-icon"},Z(_e,"editVarIcon"),{onClick:function(){F.prepopInput(Ee)}})))},F.prepopInput=function(pe){if(F.props.onEdit!==!1){var Ee=function(ae){var je;switch(Y(ae)){case"undefined":je="undefined";break;case"nan":je="NaN";break;case"string":je=ae;break;case"date":case"function":case"regexp":je=ae.toString();break;default:try{je=JSON.stringify(ae,null," ")}catch{je=""}}return je}(pe.value),_e=Ve(Ee);F.setState({editMode:!0,editValue:Ee,parsedInput:{type:_e.type,value:_e.value}})}},F.getRemoveIcon=function(){var pe=F.props,Ee=pe.variable,_e=pe.namespace,ae=pe.theme,je=pe.rjvId;return S.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:F.state.hovered?"inline-block":"none"}},S.a.createElement(zn,Object.assign({className:"click-to-remove-icon"},Z(ae,"removeVarIcon"),{onClick:function(){ne.dispatch({name:"VARIABLE_REMOVED",rjvId:je,data:{name:Ee.name,namespace:_e,existing_value:Ee.value,variable_removed:!0}})}})))},F.getValue=function(pe,Ee){var _e=!Ee&&pe.type,ae=A(F).props;switch(_e){case!1:return F.getEditInput();case"string":return S.a.createElement(St,Object.assign({value:pe.value},ae));case"integer":return S.a.createElement(nt,Object.assign({value:pe.value},ae));case"float":return S.a.createElement(he,Object.assign({value:pe.value},ae));case"boolean":return S.a.createElement(Ce,Object.assign({value:pe.value},ae));case"function":return S.a.createElement(Je,Object.assign({value:pe.value},ae));case"null":return S.a.createElement(ht,ae);case"nan":return S.a.createElement(rt,ae);case"undefined":return S.a.createElement(lt,ae);case"date":return S.a.createElement(at,Object.assign({value:pe.value},ae));case"regexp":return S.a.createElement(Wt,Object.assign({value:pe.value},ae));default:return S.a.createElement("div",{className:"object-value"},JSON.stringify(pe.value))}},F.getEditInput=function(){var pe=F.props.theme,Ee=F.state.editValue;return S.a.createElement("div",null,S.a.createElement(we,Object.assign({type:"text",inputRef:function(_e){return _e&&_e.focus()},value:Ee,className:"variable-editor",onChange:function(_e){var ae=_e.target.value,je=Ve(ae);F.setState({editValue:ae,parsedInput:{type:je.type,value:je.value}})},onKeyDown:function(_e){switch(_e.key){case"Escape":F.setState({editMode:!1,editValue:""});break;case"Enter":(_e.ctrlKey||_e.metaKey)&&F.submitEdit(!0)}_e.stopPropagation()},placeholder:"update this value",minRows:2},Z(pe,"edit-input"))),S.a.createElement("div",Z(pe,"edit-icon-container"),S.a.createElement(zn,Object.assign({className:"edit-cancel"},Z(pe,"cancel-icon"),{onClick:function(){F.setState({editMode:!1,editValue:""})}})),S.a.createElement(Rn,Object.assign({className:"edit-check string-value"},Z(pe,"check-icon"),{onClick:function(){F.submitEdit()}})),S.a.createElement("div",null,F.showDetected())))},F.submitEdit=function(pe){var Ee=F.props,_e=Ee.variable,ae=Ee.namespace,je=Ee.rjvId,it=F.state,Ft=it.editValue,Yt=it.parsedInput,on=Ft;pe&&Yt.type&&(on=Yt.value),F.setState({editMode:!1}),ne.dispatch({name:"VARIABLE_UPDATED",rjvId:je,data:{name:_e.name,namespace:ae,existing_value:_e.value,new_value:on,variable_removed:!1}})},F.showDetected=function(){var pe=F.props,Ee=pe.theme,_e=(pe.variable,pe.namespace,pe.rjvId,F.state.parsedInput),ae=(_e.type,_e.value,F.getDetectedInput());if(ae)return S.a.createElement("div",null,S.a.createElement("div",Z(Ee,"detected-row"),ae,S.a.createElement(Rn,{className:"edit-check detected",style:b({verticalAlign:"top",paddingLeft:"3px"},Z(Ee,"check-icon").style),onClick:function(){F.submitEdit(!0)}})))},F.getDetectedInput=function(){var pe=F.state.parsedInput,Ee=pe.type,_e=pe.value,ae=A(F).props,je=ae.theme;if(Ee!==!1)switch(Ee.toLowerCase()){case"object":return S.a.createElement("span",null,S.a.createElement("span",{style:b(b({},Z(je,"brace").style),{},{cursor:"default"})},"{"),S.a.createElement("span",{style:b(b({},Z(je,"ellipsis").style),{},{cursor:"default"})},"..."),S.a.createElement("span",{style:b(b({},Z(je,"brace").style),{},{cursor:"default"})},"}"));case"array":return S.a.createElement("span",null,S.a.createElement("span",{style:b(b({},Z(je,"brace").style),{},{cursor:"default"})},"["),S.a.createElement("span",{style:b(b({},Z(je,"ellipsis").style),{},{cursor:"default"})},"..."),S.a.createElement("span",{style:b(b({},Z(je,"brace").style),{},{cursor:"default"})},"]"));case"string":return S.a.createElement(St,Object.assign({value:_e},ae));case"integer":return S.a.createElement(nt,Object.assign({value:_e},ae));case"float":return S.a.createElement(he,Object.assign({value:_e},ae));case"boolean":return S.a.createElement(Ce,Object.assign({value:_e},ae));case"function":return S.a.createElement(Je,Object.assign({value:_e},ae));case"null":return S.a.createElement(ht,ae);case"nan":return S.a.createElement(rt,ae);case"undefined":return S.a.createElement(lt,ae);case"date":return S.a.createElement(at,Object.assign({value:new Date(_e)},ae))}},F.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},F}return w(R,[{key:"render",value:function(){var j=this,F=this.props,pe=F.variable,Ee=F.singleIndent,_e=F.type,ae=F.theme,je=F.namespace,it=F.indentWidth,Ft=F.enableClipboard,Yt=F.onEdit,on=F.onDelete,Lt=F.onSelect,an=F.displayArrayKey,_n=F.quotesOnKeys,Tt=this.state.editMode;return S.a.createElement("div",Object.assign({},Z(ae,"objectKeyVal",{paddingLeft:it*Ee}),{onMouseEnter:function(){return j.setState(b(b({},j.state),{},{hovered:!0}))},onMouseLeave:function(){return j.setState(b(b({},j.state),{},{hovered:!1}))},className:"variable-row",key:pe.name}),_e=="array"?an?S.a.createElement("span",Object.assign({},Z(ae,"array-key"),{key:pe.name+"_"+je}),pe.name,S.a.createElement("div",Z(ae,"colon"),":")):null:S.a.createElement("span",null,S.a.createElement("span",Object.assign({},Z(ae,"object-name"),{className:"object-key",key:pe.name+"_"+je}),!!_n&&S.a.createElement("span",{style:{verticalAlign:"top"}},'"'),S.a.createElement("span",{style:{display:"inline-block"}},pe.name),!!_n&&S.a.createElement("span",{style:{verticalAlign:"top"}},'"')),S.a.createElement("span",Z(ae,"colon"),":")),S.a.createElement("div",Object.assign({className:"variable-value",onClick:Lt===!1&&Yt===!1?null:function(In){var ss=xe(je);(In.ctrlKey||In.metaKey)&&Yt!==!1?j.prepopInput(pe):Lt!==!1&&(ss.shift(),Lt(b(b({},pe),{},{namespace:ss})))}},Z(ae,"variableValue",{cursor:Lt===!1?"default":"pointer"})),this.getValue(pe,Tt)),Ft?S.a.createElement(Pn,{rowHovered:this.state.hovered,hidden:Tt,src:pe.value,clickCallback:Ft,theme:ae,namespace:[].concat(xe(je),[pe.name])}):null,Yt!==!1&&Tt==0?this.getEditIcon():null,on!==!1&&Tt==0?this.getRemoveIcon():null)}}]),R}(S.a.PureComponent),Ks=function(z){C(R,z);var U=N(R);function R(){var j;$(this,R);for(var F=arguments.length,pe=new Array(F),Ee=0;Ee0?Ft:null,namespace:it.splice(0,it.length-1),existing_value:Yt,variable_removed:!1,key_name:null};Y(Yt)==="object"?ne.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:on,data:an}):ne.dispatch({name:"VARIABLE_ADDED",rjvId:on,data:b(b({},an),{},{new_value:[].concat(xe(Yt),[null])})})}})))},j.getRemoveObject=function(_e){var ae=j.props,je=ae.theme,it=(ae.hover,ae.namespace),Ft=ae.name,Yt=ae.src,on=ae.rjvId;if(it.length!==1)return S.a.createElement("span",{className:"click-to-remove",style:{display:_e?"inline-block":"none"}},S.a.createElement(zn,Object.assign({className:"click-to-remove-icon"},Z(je,"removeVarIcon"),{onClick:function(){ne.dispatch({name:"VARIABLE_REMOVED",rjvId:on,data:{name:Ft,namespace:it.splice(0,it.length-1),existing_value:Yt,variable_removed:!0}})}})))},j.render=function(){var _e=j.props,ae=_e.theme,je=_e.onDelete,it=_e.onAdd,Ft=_e.enableClipboard,Yt=_e.src,on=_e.namespace,Lt=_e.rowHovered;return S.a.createElement("div",Object.assign({},Z(ae,"object-meta-data"),{className:"object-meta-data",onClick:function(an){an.stopPropagation()}}),j.getObjectSize(),Ft?S.a.createElement(Pn,{rowHovered:Lt,clickCallback:Ft,src:Yt,theme:ae,namespace:on}):null,it!==!1?j.getAddAttribute(Lt):null,je!==!1?j.getRemoveObject(Lt):null)},j}return R}(S.a.PureComponent);function jn(z){var U=z.parent_type,R=z.namespace,j=z.quotesOnKeys,F=z.theme,pe=z.jsvRoot,Ee=z.name,_e=z.displayArrayKey,ae=z.name?z.name:"";return!pe||Ee!==!1&&Ee!==null?U=="array"?_e?S.a.createElement("span",Object.assign({},Z(F,"array-key"),{key:R}),S.a.createElement("span",{className:"array-key"},ae),S.a.createElement("span",Z(F,"colon"),":")):S.a.createElement("span",null):S.a.createElement("span",Object.assign({},Z(F,"object-name"),{key:R}),S.a.createElement("span",{className:"object-key"},j&&S.a.createElement("span",{style:{verticalAlign:"top"}},'"'),S.a.createElement("span",null,ae),j&&S.a.createElement("span",{style:{verticalAlign:"top"}},'"')),S.a.createElement("span",Z(F,"colon"),":")):S.a.createElement("span",null)}function Un(z){var U=z.theme;switch(z.iconStyle){case"triangle":return S.a.createElement(Cn,Object.assign({},Z(U,"expanded-icon"),{className:"expanded-icon"}));case"square":return S.a.createElement(pt,Object.assign({},Z(U,"expanded-icon"),{className:"expanded-icon"}));default:return S.a.createElement(Fe,Object.assign({},Z(U,"expanded-icon"),{className:"expanded-icon"}))}}function Rs(z){var U=z.theme;switch(z.iconStyle){case"triangle":return S.a.createElement(mt,Object.assign({},Z(U,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return S.a.createElement(En,Object.assign({},Z(U,"collapsed-icon"),{className:"collapsed-icon"}));default:return S.a.createElement(It,Object.assign({},Z(U,"collapsed-icon"),{className:"collapsed-icon"}))}}var ii=function(z){C(R,z);var U=N(R);function R(j){var F;return $(this,R),(F=U.call(this,j)).toggleCollapsed=function(pe){var Ee=[];for(var _e in F.state.expanded)Ee.push(F.state.expanded[_e]);Ee[pe]=!Ee[pe],F.setState({expanded:Ee})},F.state={expanded:[]},F}return w(R,[{key:"getExpandedIcon",value:function(j){var F=this.props,pe=F.theme,Ee=F.iconStyle;return this.state.expanded[j]?S.a.createElement(Un,{theme:pe,iconStyle:Ee}):S.a.createElement(Rs,{theme:pe,iconStyle:Ee})}},{key:"render",value:function(){var j=this,F=this.props,pe=F.src,Ee=F.groupArraysAfterLength,_e=(F.depth,F.name),ae=F.theme,je=F.jsvRoot,it=F.namespace,Ft=(F.parent_type,K(F,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),Yt=0,on=5*this.props.indentWidth;je||(Yt=5*this.props.indentWidth);var Lt=Ee,an=Math.ceil(pe.length/Lt);return S.a.createElement("div",Object.assign({className:"object-key-val"},Z(ae,je?"jsv-root":"objectKeyVal",{paddingLeft:Yt})),S.a.createElement(jn,this.props),S.a.createElement("span",null,S.a.createElement(Ks,Object.assign({size:pe.length},this.props))),xe(Array(an)).map(function(_n,Tt){return S.a.createElement("div",Object.assign({key:Tt,className:"object-key-val array-group"},Z(ae,"objectKeyVal",{marginLeft:6,paddingLeft:on})),S.a.createElement("span",Z(ae,"brace-row"),S.a.createElement("div",Object.assign({className:"icon-container"},Z(ae,"icon-container"),{onClick:function(In){j.toggleCollapsed(Tt)}}),j.getExpandedIcon(Tt)),j.state.expanded[Tt]?S.a.createElement(xr,Object.assign({key:_e+Tt,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:Lt,index_offset:Tt*Lt,src:pe.slice(Tt*Lt,Tt*Lt+Lt),namespace:it,type:"array",parent_type:"array_group",theme:ae},Ft)):S.a.createElement("span",Object.assign({},Z(ae,"brace"),{onClick:function(In){j.toggleCollapsed(Tt)},className:"array-group-brace"}),"[",S.a.createElement("div",Object.assign({},Z(ae,"array-group-meta-data"),{className:"array-group-meta-data"}),S.a.createElement("span",Object.assign({className:"object-size"},Z(ae,"object-size")),Tt*Lt," - ",Tt*Lt+Lt>pe.length?pe.length:Tt*Lt+Lt)),"]")))}))}}]),R}(S.a.PureComponent),Ir=function(z){C(R,z);var U=N(R);function R(j){var F;$(this,R),(F=U.call(this,j)).toggleCollapsed=function(){F.setState({expanded:!F.state.expanded},function(){Te.set(F.props.rjvId,F.props.namespace,"expanded",F.state.expanded)})},F.getObjectContent=function(Ee,_e,ae){return S.a.createElement("div",{className:"pushed-content object-container"},S.a.createElement("div",Object.assign({className:"object-content"},Z(F.props.theme,"pushed-content")),F.renderObjectContents(_e,ae)))},F.getEllipsis=function(){return F.state.size===0?null:S.a.createElement("div",Object.assign({},Z(F.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:F.toggleCollapsed}),"...")},F.getObjectMetaData=function(Ee){var _e=F.props,ae=(_e.rjvId,_e.theme,F.state),je=ae.size,it=ae.hovered;return S.a.createElement(Ks,Object.assign({rowHovered:it,size:je},F.props))},F.renderObjectContents=function(Ee,_e){var ae,je=F.props,it=je.depth,Ft=je.parent_type,Yt=je.index_offset,on=je.groupArraysAfterLength,Lt=je.namespace,an=F.state.object_type,_n=[],Tt=Object.keys(Ee||{});return F.props.sortKeys&&an!=="array"&&(Tt=Tt.sort()),Tt.forEach(function(In){if(ae=new ec(In,Ee[In]),Ft==="array_group"&&Yt&&(ae.name=parseInt(ae.name)+Yt),Ee.hasOwnProperty(In))if(ae.type==="object")_n.push(S.a.createElement(xr,Object.assign({key:ae.name,depth:it+1,name:ae.name,src:ae.value,namespace:Lt.concat(ae.name),parent_type:an},_e)));else if(ae.type==="array"){var ss=xr;on&&ae.value.length>on&&(ss=ii),_n.push(S.a.createElement(ss,Object.assign({key:ae.name,depth:it+1,name:ae.name,src:ae.value,namespace:Lt.concat(ae.name),type:"array",parent_type:an},_e)))}else _n.push(S.a.createElement(cs,Object.assign({key:ae.name+"_"+Lt,variable:ae,singleIndent:5,namespace:Lt,type:F.props.type},_e)))}),_n};var pe=R.getState(j);return F.state=b(b({},pe),{},{prevProps:{}}),F}return w(R,[{key:"getBraceStart",value:function(j,F){var pe=this,Ee=this.props,_e=Ee.src,ae=Ee.theme,je=Ee.iconStyle;if(Ee.parent_type==="array_group")return S.a.createElement("span",null,S.a.createElement("span",Z(ae,"brace"),j==="array"?"[":"{"),F?this.getObjectMetaData(_e):null);var it=F?Un:Rs;return S.a.createElement("span",null,S.a.createElement("span",Object.assign({onClick:function(Ft){pe.toggleCollapsed()}},Z(ae,"brace-row")),S.a.createElement("div",Object.assign({className:"icon-container"},Z(ae,"icon-container")),S.a.createElement(it,{theme:ae,iconStyle:je})),S.a.createElement(jn,this.props),S.a.createElement("span",Z(ae,"brace"),j==="array"?"[":"{")),F?this.getObjectMetaData(_e):null)}},{key:"render",value:function(){var j=this,F=this.props,pe=F.depth,Ee=F.src,_e=(F.namespace,F.name,F.type,F.parent_type),ae=F.theme,je=F.jsvRoot,it=F.iconStyle,Ft=K(F,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),Yt=this.state,on=Yt.object_type,Lt=Yt.expanded,an={};return je||_e==="array_group"?_e==="array_group"&&(an.borderLeft=0,an.display="inline"):an.paddingLeft=5*this.props.indentWidth,S.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return j.setState(b(b({},j.state),{},{hovered:!0}))},onMouseLeave:function(){return j.setState(b(b({},j.state),{},{hovered:!1}))}},Z(ae,je?"jsv-root":"objectKeyVal",an)),this.getBraceStart(on,Lt),Lt?this.getObjectContent(pe,Ee,b({theme:ae,iconStyle:it},Ft)):this.getEllipsis(),S.a.createElement("span",{className:"brace-row"},S.a.createElement("span",{style:b(b({},Z(ae,"brace").style),{},{paddingLeft:Lt?"3px":"0px"})},on==="array"?"]":"}"),Lt?null:this.getObjectMetaData(Ee)))}}],[{key:"getDerivedStateFromProps",value:function(j,F){var pe=F.prevProps;return j.src!==pe.src||j.collapsed!==pe.collapsed||j.name!==pe.name||j.namespace!==pe.namespace||j.rjvId!==pe.rjvId?b(b({},R.getState(j)),{},{prevProps:j}):null}}]),R}(S.a.PureComponent);Ir.getState=function(z){var U=Object.keys(z.src).length,R=(z.collapsed===!1||z.collapsed!==!0&&z.collapsed>z.depth)&&(!z.shouldCollapse||z.shouldCollapse({name:z.name,src:z.src,type:Y(z.src),namespace:z.namespace})===!1)&&U!==0;return{expanded:Te.get(z.rjvId,z.namespace,"expanded",R),object_type:z.type==="array"?"array":"object",parent_type:z.type==="array"?"array":"object",size:U,hovered:!1}};var ec=function z(U,R){$(this,z),this.name=U,this.value=R,this.type=Y(R)};ee(Ir);var xr=Ir,Ka=function(z){C(R,z);var U=N(R);function R(){var j;$(this,R);for(var F=arguments.length,pe=new Array(F),Ee=0;Ee_e.groupArraysAfterLength&&(je=ii),S.a.createElement("div",{className:"pretty-json-container object-container"},S.a.createElement("div",{className:"object-content"},S.a.createElement(je,Object.assign({namespace:ae,depth:0,jsvRoot:!0},_e))))},j}return R}(S.a.PureComponent),tc=function(z){C(R,z);var U=N(R);function R(j){var F;return $(this,R),(F=U.call(this,j)).closeModal=function(){ne.dispatch({rjvId:F.props.rjvId,name:"RESET"})},F.submit=function(){F.props.submit(F.state.input)},F.state={input:j.input?j.input:""},F}return w(R,[{key:"render",value:function(){var j=this,F=this.props,pe=F.theme,Ee=F.rjvId,_e=F.isValid,ae=this.state.input,je=_e(ae);return S.a.createElement("div",Object.assign({className:"key-modal-request"},Z(pe,"key-modal-request"),{onClick:this.closeModal}),S.a.createElement("div",Object.assign({},Z(pe,"key-modal"),{onClick:function(it){it.stopPropagation()}}),S.a.createElement("div",Z(pe,"key-modal-label"),"Key Name:"),S.a.createElement("div",{style:{position:"relative"}},S.a.createElement("input",Object.assign({},Z(pe,"key-modal-input"),{className:"key-modal-input",ref:function(it){return it&&it.focus()},spellCheck:!1,value:ae,placeholder:"...",onChange:function(it){j.setState({input:it.target.value})},onKeyPress:function(it){je&&it.key==="Enter"?j.submit():it.key==="Escape"&&j.closeModal()}})),je?S.a.createElement(Rn,Object.assign({},Z(pe,"key-modal-submit"),{className:"key-modal-submit",onClick:function(it){return j.submit()}})):null),S.a.createElement("span",Z(pe,"key-modal-cancel"),S.a.createElement(Gs,Object.assign({},Z(pe,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){ne.dispatch({rjvId:Ee,name:"RESET"})}})))))}}]),R}(S.a.PureComponent),nc=function(z){C(R,z);var U=N(R);function R(){var j;$(this,R);for(var F=arguments.length,pe=new Array(F),Ee=0;Ee({color:o.palette.mode==="dark"?"#CCC":"#333"}),frameTextSecondary:{fontStyle:"italic",fontSize:12,opacity:.6,pl:1},listRoot:{padding:0,fontSize:"small"},scopeType:{verticalAlign:"top",textTransform:"uppercase",width:50},scopeType_local:{color:"#53a944"},scopeType_closure:{color:"#365b80"},scopeType_user:{color:"#a48a15"},scopeName:{color:"#bc5b5b",width:"calc(100% - 82px)",whiteSpace:"nowrap",textOverflow:"ellipsis"},scopeButton:{width:32},scopeValueEditable:{cursor:"pointer"},selectedFrame:{backgroundColor:"#777",color:"white"},splitter:{width:"100%",height:"calc(100% - 36px)",overflow:"hidden",fontSize:12},toolbarScopes:o=>({width:24,display:"inline-block",height:"100%",background:o.palette.mode==="dark"?"#222":"#EEE",verticalAlign:"top"}),scopesAfterToolbar:{width:"calc(100% - 24px)",display:"inline-block",height:"100%",verticalAlign:"top"},scopeNameName:{fontWeight:"bold",display:"inline-block",verticalAlign:"top"},scopeNameEqual:o=>({display:"inline-block",color:o.palette.mode==="dark"?"#EEE":"#222",verticalAlign:"top"}),scopeNameValue:{verticalAlign:"top",display:"inline-block",color:"#3b709f",whiteSpace:"nowrap"},scopeButtonDel:{padding:0,float:"right"},valueNull:{color:"#a44a24"},valueUndefined:{color:"#a44a24"},valueString:{color:"#1e8816"},valueNumber:{color:"#163c88"},valueBoolean:{color:"#a44a24"},valueObject:{color:"#721b70"},valueNone:{color:"#8a8a8a"},valueFunc:{color:"#ac4343"},error:o=>({color:o.palette.mode==="dark"?"#FF8080":"#FF0000",fontStyle:"italic"})};function QL(o){var s,i;const n={};return o.className==="ReferenceError"?o.description:((i=(s=o.preview)==null?void 0:s.properties)==null||i.forEach(a=>{(a==null?void 0:a.type)==="object"?a.subtype==="null"?n[a.name]=null:n[a.name]=`{ ${a.value==="Object"?"...":a.value} }`:a.type==="boolean"?n[a.name||a.description]=a.value==="true":a.type==="number"?n[a.name||a.description]=parseFloat(a.value):a.type==="function"?n[a.name||a.description]="function(){}":a.type==="undefined"?n[a.name||a.description]=void 0:n[a.name||a.description]=a.value}),n)}let eB=class extends We.Component{editRef;scopeValue=null;constructor(n){super(n);const s=window.localStorage.getItem("JS.framesSizes");let i=[30,70];if(s)try{i=JSON.parse(s)}catch{}this.state={editValue:null,callFrames:this.props.callFrames,framesSizes:i},this.editRef=We.createRef()}onExpressionNameUpdate(){this.state.editValue&&this.props.onExpressionNameUpdate(this.state.editValue.index,this.scopeValue,()=>{this.setState({editValue:null}),this.scopeValue=null})}renderExpression(n,s){const i=this.state.editValue&&this.state.editValue.type==="expression"&&this.state.editValue.index===s?f.jsx(D.Input,{inputRef:this.editRef,fullWidth:!0,margin:"dense",onBlur:()=>this.state.editValue&&this.setState({editValue:null}),defaultValue:n.name,onKeyUp:a=>{a.key==="Enter"?this.onExpressionNameUpdate():a.key==="Escape"&&this.setState({editValue:null})},onChange:a=>this.scopeValue=a.target.value,endAdornment:f.jsx(D.InputAdornment,{position:"end",children:f.jsx(D.IconButton,{onClick:()=>this.onExpressionNameUpdate(),size:"medium",children:f.jsx(b_,{})})})}):[f.jsx("div",{style:bn.scopeNameName,title:I.I18n.t("Double click to edit expression"),children:n.name},"name"),f.jsxs(D.Box,{sx:bn.scopeNameEqual,children:[" ","="," "]},"="),f.jsx("div",{style:bn.scopeNameValue,children:this.formatValue(n.value)},"val")];return f.jsxs("tr",{children:[f.jsx("td",{style:{...bn.scopeType,...bn.scopeType_user},children:"user"}),f.jsx("td",{style:bn.scopeName,onDoubleClick:()=>{this.scopeValue=n.name||"",this.setState({editValue:{type:"expression",valueType:"string",index:s,name:n.name,value:n.name||""}})},children:i}),f.jsx(D.IconButton,{style:bn.scopeButtonDel,size:"small",disabled:!!this.state.editValue,onClick:()=>this.props.onExpressionDelete(s),children:f.jsx(A$,{})})]},`user_${s}${n.name}`)}renderExpressions(){return this.props.expressions.map((n,s)=>this.renderExpression(n,s))}renderOneFrameTitle(n,s){if(this.props.mainScriptId===this.props.currentScriptId&&n.location.scriptId!==this.props.mainScriptId)return null;const i=(n.url.split("/").pop()||"").replace(/^script\.js\./,"");return f.jsx(D.ListItemButton,{onClick:()=>this.props.onChangeCurrentFrame(s),dense:!0,selected:this.props.currentFrame===s,style:bn.frameRoot,children:f.jsx(D.ListItemText,{sx:{...bn.frameTextRoot,"& .MuiListItemText-primary":bn.frameTextPrimary,"& .MuiListItemText-secondary":bn.frameTextSecondary},title:n.url,primary:n.functionName||"anonymous",secondary:`${i} (${n.location.lineNumber}:${n.location.columnNumber})`})},n.callFrameId)}formatValue(n,s){if(!n)return s?"none":f.jsx("span",{style:bn.valueNone,children:"none"});if(n.type==="undefined")return s?"undefined":f.jsx("span",{style:bn.valueUndefined,children:"undefined"});if(n.type==="null")return s?"null":f.jsx("span",{style:bn.valueNull,children:"null"});if(n.type==="function"){const i=n.description?n.description.length>100?`${n.description.substring(0,100)}...`:n.description:"function";return s?i:f.jsx("span",{style:bn.valueFunc,title:n.description,children:i})}if(n.type==="object"){const i=QL(n);return s?JSON.stringify(i):typeof i=="string"?f.jsx(D.Box,{component:"span",sx:bn.error,children:i}):f.jsx(ZL,{name:!1,enableClipboard:!1,style:{backgroundColor:"inherit",marginTop:3},src:i,collapsed:!0,theme:this.props.themeType==="dark"?"brewer":"rjv-default",displayDataTypes:!1})}if(n.value===void 0)return s?"undefined":f.jsx("span",{style:bn.valueUndefined,children:"undefined"});if(n.value===null)return s?"null":f.jsx("span",{style:bn.valueNull,children:"null"});if(n.type==="string"){if(s)return n.value;const i=`"${n.value?n.value.length>100?`${n.value.substring(0,100)}...`:n.value:""}"`;return f.jsx("span",{style:bn.valueString,title:i,children:i})}return n.type==="boolean"?s?n.value.toString():f.jsx("span",{style:bn.valueBoolean,children:n.value.toString()}):n.value.toString()}onWriteScopeValue(){var n,s;this.scopeValue==="true"?this.scopeValue=!0:this.scopeValue==="false"?this.scopeValue=!1:this.scopeValue==="null"?this.scopeValue=null:this.scopeValue==="undefined"?this.scopeValue=void 0:parseFloat(this.scopeValue).toString()===this.scopeValue&&(this.scopeValue=parseFloat(this.scopeValue)),this.props.onWriteScopeValue({variableName:((n=this.state.editValue)==null?void 0:n.name)||"",scopeNumber:0,newValue:{value:this.scopeValue,valueType:typeof this.scopeValue},callFrameId:(s=this.props.callFrames)==null?void 0:s[this.props.currentFrame].callFrameId}),this.setState({editValue:null}),this.scopeValue=null}componentDidUpdate(){var n;(n=this.editRef.current)==null||n.focus()}renderScope(n,s,i){var h,g,b,$;const a=!this.props.currentFrame&&s.value&&(s.value.type==="undefined"||s.value.type==="string"||s.value.type==="number"||s.value.type==="boolean"||((h=s.value)==null?void 0:h.value)===null||((g=s.value)==null?void 0:g.value)===void 0&&s.value.type!=="object"),c=((b=this.state.editValue)==null?void 0:b.type)===i&&(($=this.state.editValue)==null?void 0:$.name)===s.name?[f.jsx("div",{style:bn.scopeNameName,children:s.name},"name"),f.jsxs(D.Box,{sx:bn.scopeNameEqual,children:[" ","="," "]},"="),f.jsx(D.Input,{inputRef:this.editRef,margin:"dense",onBlur:()=>this.state.editValue&&this.setState({editValue:null}),defaultValue:this.formatValue(s.value,!0),onKeyUp:y=>{y.key==="Enter"?this.onWriteScopeValue():y.key==="Escape"&&this.setState({editValue:null})},onChange:y=>this.scopeValue=y.target.value,endAdornment:f.jsx(D.InputAdornment,{position:"end",children:f.jsx(D.IconButton,{onClick:()=>this.onWriteScopeValue(),size:"medium",children:f.jsx(b_,{})})})},"input")]:[f.jsx("div",{style:bn.scopeNameName,title:I.I18n.t("Double click to write value"),children:s.name},"name"),f.jsxs(D.Box,{sx:bn.scopeNameEqual,children:[" ","="," "]},"="),f.jsxs("div",{style:bn.scopeNameValue,children:[this.formatValue(s.value)," (",s.value.type,")"]},"val")];return f.jsxs("tr",{children:[f.jsx("td",{style:{...bn.scopeType,...bn[`scopeType_${i}`]},children:i}),f.jsx("td",{style:{...bn.scopeName,...!this.props.currentFrame&&a?bn.scopeValueEditable:void 0},onDoubleClick:()=>{a&&(this.scopeValue=s.value.value,this.setState({editValue:{scopeId:n,type:i,index:0,valueType:s.value.type,name:s.name,value:s.value.value}}))},children:c})]},`${i}_${n}_${s.name}`)}renderScopes(n){var a,c,h,g,b,$;if(!n)return null;const s=this.renderExpressions();let i=(h=(c=(a=this.props.scopes)==null?void 0:a.local)==null?void 0:c.properties)==null?void 0:h.result.map(y=>this.props.scopes&&this.renderScope("",y,"local"));return i==null||i.forEach(y=>y&&s.push(y)),i=($=(b=(g=this.props.scopes)==null?void 0:g.closure)==null?void 0:b.properties)==null?void 0:$.result.map(y=>this.props.scopes&&this.renderScope("",y,"closure")),i==null||i.forEach(y=>y&&s.push(y)),f.jsx("table",{style:{width:"100%",fontSize:"small"},children:f.jsx("tbody",{children:s})})}render(){var n,s;return f.jsxs(J$,{direction:Bn.Horizontal,initialSizes:this.state.framesSizes,minWidths:[100,200],onResizeFinished:(i,a)=>{this.setState({framesSizes:a}),window.localStorage.setItem("JS.framesSizes",JSON.stringify(a))},gutterClassName:this.props.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[f.jsx("div",{style:{width:"100%",height:"100%",overflow:"auto"},children:f.jsx(D.List,{style:bn.listRoot,children:((n=this.props.callFrames)==null?void 0:n.map((i,a)=>this.renderOneFrameTitle(i,a)))||null})}),f.jsxs("div",{style:{width:"100%",height:"100%",overflow:"auto"},children:[f.jsx(D.Box,{sx:bn.toolbarScopes,children:f.jsx(D.IconButton,{size:"small",onClick:()=>this.props.onExpressionAdd((i,a)=>{this.scopeValue=a.name||"",this.setState({editValue:{type:"expression",valueType:"string",index:i,name:a.name,value:a.name||""}})}),children:f.jsx(Ev,{})})}),f.jsx("div",{style:bn.scopesAfterToolbar,children:((s=this.props.callFrames)==null?void 0:s.length)&&this.renderScopes(this.props.callFrames[this.props.currentFrame])})]})]})}};const _s={root:o=>({width:"100%",height:`calc(100% - ${parseInt(o.toolbar.height,10)+38+5}px)`,overflow:"hidden",position:"relative"}),toolbar:{minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)"},buttonRun:{color:"green"},buttonPause:{color:"orange"},buttonRestart:{color:"darkgreen"},buttonNext:{color:"blue"},buttonStep:{color:"blue"},buttonOut:{color:"blue"},buttonException:{},tabFile:o=>({textTransform:"inherit",color:o.palette.mode==="dark"?"#DDD":"inherit"}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},closeButton:{position:"absolute",top:8,right:0,zIndex:10,padding:8,cursor:"pointer"},tabsRoot:o=>({minHeight:24,background:o.palette.mode==="dark"?"#333":"#e6e6e6",color:o.palette.mode==="dark"?"white":"inherit"}),tabRoot:{minHeight:24},bpListItem:{borderTop:"1px dashed #bfbfbf44"},monospace:{fontFamily:"Courier New, monospace",whiteSpace:"pre",fontSize:12},arrow:{color:"#fffa4f"}};class $v extends We.Component{console=null;scripts={};mainScriptId=null;constructor(n){super(n);const s=window.localStorage.getItem(`javascript.tools.bp.${this.props.src}`);let i;try{i=s?JSON.parse(s):[]}catch{i=[]}const a=window.localStorage.getItem(`javascript.tools.exps.${this.props.src}`);let c;try{c=(a?JSON.parse(a):[]).map($=>({name:$,value:{type:"undefined",description:"",value:"undefined",name:"name"}}))}catch{c=[]}const h=window.localStorage.getItem("JS.toolSizes");let g=[80,20];if(h)try{g=JSON.parse(h)}catch{}this.state={starting:!0,selected:null,tabs:{},script:"",breakpoints:i,expressions:c,running:!1,error:"",started:!1,paused:!0,location:null,toolsTab:window.localStorage.getItem("javascript.tools.tab")||"console",stopOnException:window.localStorage.getItem("javascript.tools.stopOnException")==="true",console:[],finished:!1,currentFrame:0,scopes:{},queryBreakpoints:null,logErrors:0,logWarnings:0,logs:0,toolSizes:g,instance:void 0,context:null}}async componentDidMount(){var s,i;let n;if(this.props.debugInstance)n=this.props.debugInstance.instance;else{const a=await this.props.socket.getObject(this.props.src);n=((i=(s=a==null?void 0:a.common)==null?void 0:s.engine)==null?void 0:i.replace("system.adapter.",""))||""}this.setState({instance:n},()=>{this.state.instance?(this.props.socket.setState(`${this.state.instance}.debug.from`,{val:'{"cmd": "subscribed"}',ack:!0}),setTimeout(()=>this.props.socket.subscribeState(`${this.state.instance}.debug.from`,this.fromInstance),200)):this.setState({error:"Unknown instance"})})}componentWillUnmount(){this.state.instance&&(this.props.socket.unsubscribeState(`${this.state.instance}.debug.from`,this.fromInstance),this.props.socket.sendTo(this.state.instance,"debugStop"))}sendToInstance(n){this.props.socket.setState(`${this.state.instance}.debug.to`,{val:JSON.stringify(n),ack:!1})}reinitBreakpoints(n){if(this.state.breakpoints.length){const i=JSON.parse(JSON.stringify(this.state.breakpoints)).map(a=>a.location);this.setState({breakpoints:[]},()=>{this.sendToInstance({breakpoints:i,cmd:"sb"}),this.state.stopOnException&&this.sendToInstance({cmd:"stopOnException",state:!0}),n&&n()})}else this.state.stopOnException&&this.sendToInstance({cmd:"stopOnException",state:!0}),n&&n()}static getLocation(n){return n.callFrames?n.callFrames[0].location:null}readCurrentScope(){var s;const n=((s=this.state.context)==null?void 0:s.callFrames)&&this.state.context.callFrames[this.state.currentFrame];if(n){const i=n.scopeChain.filter(a=>a.type!=="global");i.length?this.sendToInstance({cmd:"scope",scopes:i}):(this.state.scopes.global||this.state.scopes.local||this.state.scopes.closure)&&this.setState({scopes:{}})}}readExpressions(n){var s;this.state.expressions.length&&((s=this.state.context)!=null&&s.callFrames)&&this.state.context.callFrames[this.state.currentFrame]&&(n!==void 0?this.sendToInstance({cmd:"expressions",expressions:[this.state.expressions[n]],callFrameId:this.state.context.callFrames[this.state.currentFrame].callFrameId}):this.sendToInstance({cmd:"expressions",expressions:this.state.expressions,callFrameId:this.state.context.callFrames[this.state.currentFrame].callFrameId}))}fromInstance=(n,s)=>{var i,a,c,h,g,b,$,y,w,T;if(s!=null&&s.val&&this.state.instance!==void 0)try{const C=JSON.parse(s.val);if(C.cmd==="subscribed")this.props.socket.sendTo(this.state.instance,"debug",this.props.debugInstance||{scriptName:this.props.src});else if(C.cmd==="readyToDebug"){this.mainScriptId=C.scriptId,this.scripts[C.scriptId]=C.script,C.script.startsWith(`(async () => {debugger; -`)?this.scripts[C.scriptId]=`(async () => { -${C.script.substring(24)}`:C.script.startsWith("debugger;")&&(this.scripts[C.scriptId]=C.script.substring(9));const E=JSON.parse(JSON.stringify(this.state.tabs));E[C.scriptId]=this.props.debugInstance?C.url:this.props.src.replace("script.js.","");const k=`${Date.now()}.${Math.random()*1e4}`;(a=(i=C.context)==null?void 0:i.callFrames)==null||a.forEach((A,P)=>A.id=k+P),this.setState({starting:!1,finished:!1,selected:this.mainScriptId,script:this.scripts[C.scriptId],tabs:E,currentFrame:0,started:!0,paused:!0,location:$v.getLocation(C.context),context:C.context},()=>this.reinitBreakpoints(()=>{this.readCurrentScope(),this.readExpressions()}))}else if(C.cmd==="paused"){const E=`${Date.now()}.${Math.random()*1e4}`;(h=(c=C.context)==null?void 0:c.callFrames)==null||h.forEach((B,S)=>B.id=E+S);const k=$v.getLocation(C.context),A=JSON.parse(JSON.stringify(this.state.tabs)),P=C.context.callFrames[0].url.split("iobroker.javascript");k&&(A[k.scriptId]=(P[1]||P[0]).replace("script.js.",""));const N={tabs:A,paused:!0,location:k,currentFrame:0,context:C.context};N.script=!(k!=null&&k.scriptId)||this.scripts[k.scriptId]===void 0?I.I18n.t("loading..."):this.scripts[k.scriptId],N.selected=k==null?void 0:k.scriptId,this.setState(N,()=>{this.readCurrentScope(),this.readExpressions(),k!=null&&k.scriptId&&(this.scripts[k.scriptId]||this.sendToInstance({cmd:"source",scriptId:k.scriptId}))})}else if(C.cmd==="script")this.scripts[C.scriptId]=C.text,this.state.selected===C.scriptId&&this.setState({script:this.scripts[C.scriptId]});else if(C.cmd==="resumed")this.setState({paused:!1});else if(C.cmd==="log")if(this.state.toolsTab==="console"){this.console=null;const E=[...this.state.console];E.push({text:C.text,severity:C.severity,ts:C.ts}),this.setState({console:E})}else C.severity==="error"?this.setState({logErrors:this.state.logErrors+1}):C.severity==="warn"?this.setState({logWarnings:this.state.logWarnings+1}):this.setState({logs:this.state.logs+1}),this.console=this.console||[...this.state.console],this.console.push({text:C.text,severity:C.severity,ts:C.ts});else if(C.cmd==="error")this.setState({error:C.error});else if(C.cmd==="finished"||C.cmd==="debugStopped")this.setState({finished:!0,starting:!1,started:!0});else if(C.cmd==="sb"){const E=JSON.parse(JSON.stringify(this.state.breakpoints));let k=!1;C.breakpoints.filter(A=>A).forEach(A=>{E.find(N=>N.location.scriptId===A.location.scriptId&&N.location.lineNumber===A.location.lineNumber)||(k=!0,E.push(A))}),k&&window.localStorage.setItem(`javascript.tools.bp.${this.props.src}`,JSON.stringify(E)),k&&this.setState({breakpoints:E})}else if(C.cmd==="cb"){const E=JSON.parse(JSON.stringify(this.state.breakpoints));let k=!1;C.breakpoints.filter(A=>A!=null).forEach(A=>{const P=E.find(N=>N.id===A);if(P){const N=E.indexOf(P);E.splice(N,1),k=!0}}),k&&window.localStorage.setItem(`javascript.tools.bp.${this.props.src}`,JSON.stringify(E)),k&&this.setState({breakpoints:E})}else if(C.cmd==="scope"){const E=C.scopes.find(A=>A.type==="local")||void 0,k=C.scopes.find(A=>A.type==="closure")||void 0;console.log(JSON.stringify(k)),this.setState({scopes:{local:E,closure:k}})}else if(C.cmd==="setValue"){const E=JSON.parse(JSON.stringify(this.state.scopes));let k;C.scopeNumber===0?k=(b=(g=E==null?void 0:E.local)==null?void 0:g.properties)==null?void 0:b.result.find(A=>A.name===C.variableName):k=(y=($=E==null?void 0:E.closure)==null?void 0:$.properties)==null?void 0:y.result.find(A=>A.name===C.variableName),k&&(k.value.value=C.newValue.value,this.setState({scopes:E}))}else if(C.cmd==="expressions"){const E=JSON.parse(JSON.stringify(this.state.expressions));let k=!1;C.expressions.forEach(A=>{const P=E.find(N=>N.name===A.name);P&&(k=!0,P.value=A.result)}),k&&this.setState({expressions:E}),console.log(`expressions: ${JSON.stringify(C)}`)}else C.cmd==="getPossibleBreakpoints"?((w=C.breakpoints)==null?void 0:w.length)===1?this.sendToInstance({breakpoints:C.breakpoints,cmd:"sb"}):(T=C.breakpoints)!=null&&T.length?this.setState({queryBreakpoints:C.breakpoints}):window.alert("cannot set"):console.error(`Unknown command: ${JSON.stringify(C)}`)}catch{}};getTextAtLocation(n){let s=this.state.script.split(/\r\n|\n/)[n.lineNumber],i;return n.columnNumber!==void 0&&n.columnNumber>=10?(s=s.substring(n.columnNumber-10,n.columnNumber+20),i=`${"".padStart(10," ")}↑`):n.columnNumber!==void 0&&(s=s.substring(0,30-n.columnNumber),i=`${"".padStart(n.columnNumber," ")}↑`),[f.jsx("div",{style:_s.monospace,children:s},"line"),f.jsx("div",{style:{..._s.monospace,..._s.arrow},children:i},"arrow")]}renderQueryBreakpoints(){return this.state.queryBreakpoints?f.jsxs(D.Dialog,{onClose:()=>this.setState({queryBreakpoints:null}),"aria-labelledby":"bp-dialog-title",open:!0,children:[f.jsx(D.DialogTitle,{id:"bp-dialog-title",children:I.I18n.t("Select breakpoint")}),f.jsx(D.List,{children:this.state.queryBreakpoints.map((n,s)=>f.jsx(D.ListItemButton,{style:_s.bpListItem,dense:!0,onClick:()=>{this.sendToInstance({breakpoints:[n],cmd:"sb"}),this.setState({queryBreakpoints:null})},children:f.jsx(D.ListItemText,{primary:this.getTextAtLocation(n)})},s))})]}):null}renderError(){return this.state.error?f.jsx(Hf,{onClose:()=>this.setState({error:""}),text:this.state.error},"dialogError"):null}closeTab(n,s){s==null||s.stopPropagation();const i=JSON.parse(JSON.stringify(this.state.tabs));delete i[n];const a={tabs:i,script:this.mainScriptId?this.scripts[this.mainScriptId]:"...",selected:this.mainScriptId};this.state.location&&this.state.location.scriptId!==this.mainScriptId&&(a.location=null),this.setState(a)}renderTabs(){const n=!this.state.tabs||!this.state.started;return f.jsx(D.Tabs,{component:"div",indicatorColor:"primary",style:{position:"relative",width:"calc(100% - 300px)",display:"inline-block"},value:this.state.selected,onChange:(s,i)=>{this.scripts[i]?this.setState({selected:i,script:this.scripts[i]}):this.setState({selected:i,script:"loading..."},()=>this.sendToInstance({cmd:"source",scriptId:i}))},scrollButtons:"auto",children:Object.keys(this.state.tabs||[]).map(s=>{let i=s;const a=this.state.tabs[s]||"";this.state.tabs[s]&&(i=this.state.tabs[s].split("/").pop()||"");const c=[f.jsx("div",{style:_s.tabText,children:i},"text"),s!==this.mainScriptId?f.jsx("span",{style:_s.closeButton,children:f.jsx(Xl,{onClick:h=>this.closeTab(s,h),fontSize:"small"},"close")},"icon"):null];return f.jsx(D.Tab,{disabled:n,sx:_s.tabFile,label:c,title:a,value:s},s)})})}onResume(){this.sendToInstance({cmd:"cont"})}onPause(){this.sendToInstance({cmd:"pause"})}onNext(){this.sendToInstance({cmd:"next"})}onStepIn(){this.sendToInstance({cmd:"step"})}onStepOut(){this.sendToInstance({cmd:"out"})}onRestart(){this.setState({started:!1,starting:!0},()=>this.state.instance!==void 0&&this.props.socket.sendTo(this.state.instance,"debug",this.props.debugInstance||{scriptName:this.props.src}))}onToggleException(){const n=!this.state.stopOnException;window.localStorage.setItem("javascript.tools.stopOnException",n?"true":"false"),this.setState({stopOnException:n},()=>this.sendToInstance({cmd:"stopOnException",state:n}))}renderToolbar(){const n=!this.state.started;return f.jsxs(D.Toolbar,{variant:"dense",style:_s.toolbar,children:[f.jsx(D.IconButton,{style:_s.buttonRestart,disabled:n,onClick:()=>this.onRestart(),title:I.I18n.t("Restart"),size:"medium",children:f.jsx(H0,{})}),!this.state.finished&&this.state.paused?f.jsx(D.IconButton,{style:_s.buttonRun,disabled:n,onClick:()=>this.onResume(),title:I.I18n.t("Resume execution"),size:"medium",children:f.jsx(V$,{})}):!this.state.finished&&f.jsx(D.IconButton,{disabled:n,style:_s.buttonPause,onClick:()=>this.onPause(),title:I.I18n.t("Pause execution"),size:"medium",children:f.jsx(vf,{})}),!this.state.finished&&f.jsx(D.IconButton,{style:_s.buttonNext,disabled:n||!this.state.paused,onClick:()=>this.onNext(),title:I.I18n.t("Go to next line"),size:"medium",children:f.jsx(YI,{})}),!this.state.finished&&f.jsx(D.IconButton,{style:_s.buttonStep,disabled:n||!this.state.paused,onClick:()=>this.onStepIn(),title:I.I18n.t("Step into function"),size:"medium",children:f.jsx(XI,{})}),!this.state.finished&&f.jsx(D.IconButton,{style:_s.buttonOut,disabled:n||!this.state.paused,onClick:()=>this.onStepOut(),title:I.I18n.t("Step out from function"),size:"medium",children:f.jsx(ZI,{})}),!this.state.finished&&f.jsx(D.IconButton,{style:_s.buttonException,color:this.state.stopOnException?"primary":"default",disabled:n||!this.state.paused,onClick:()=>this.onToggleException(),title:I.I18n.t("Stop on exception"),size:"medium",children:f.jsx(QI,{})}),this.renderTabs()]},"toolbar1")}getPossibleBreakpoints(n){const s={...n,columnNumber:1e3};this.sendToInstance({cmd:"getPossibleBreakpoints",start:n,end:s})}toggleBreakpoint(n){const s=this.state.breakpoints.find(i=>i.location.scriptId===this.state.selected&&i.location.lineNumber===n);if(s){const i=JSON.parse(JSON.stringify(this.state.breakpoints));this.setState({breakpoints:i},()=>this.sendToInstance({breakpoints:[s.id],cmd:"cb"}))}else this.getPossibleBreakpoints({scriptId:this.state.selected,lineNumber:n,columnNumber:0})}renderCode(){if(this.state.script&&this.state.started){const n=this.state.breakpoints.filter(s=>s.location.scriptId===this.state.selected);return f.jsx(KL,{runningInstances:this.props.runningInstances,socket:this.props.socket,adapterName:this.props.adapterName,scriptName:this.state.selected?this.state.tabs[this.state.selected]:"",sourceId:this.state.selected,script:this.state.script,paused:this.state.paused,breakpoints:n,location:this.state.location,themeType:this.props.themeType,themeName:this.props.themeName,onToggleBreakpoint:s=>this.toggleBreakpoint(s)})}return null}renderFrames(){var n;return this.state.paused?f.jsx(eB,{currentScriptId:this.state.selected,scopes:this.state.scopes,expressions:this.state.expressions,themeType:this.props.themeType,callFrames:(n=this.state.context)==null?void 0:n.callFrames,currentFrame:this.state.currentFrame,onChangeCurrentFrame:s=>{this.setState({currentFrame:s,scopes:{}},()=>{this.readCurrentScope(),this.readExpressions()})},onWriteScopeValue:s=>{this.sendToInstance({cmd:"setValue",variableName:s.variableName,scopeNumber:s.scopeNumber,newValue:s.newValue,callFrameId:s.callFrameId})},onExpressionDelete:s=>{const i=JSON.parse(JSON.stringify(this.state.expressions));i.splice(s,1),this.setState({expressions:i}),window.localStorage.setItem(`javascript.tools.exps.${this.props.src}`,JSON.stringify(i.map(a=>a.name)))},onExpressionAdd:s=>{const i=JSON.parse(JSON.stringify(this.state.expressions));i.push({name:"",value:{value:""}}),this.setState({expressions:i},()=>s&&s(i.length-1,this.state.expressions[i.length-1]))},onExpressionNameUpdate:(s,i,a)=>{const c=JSON.parse(JSON.stringify(this.state.expressions));if(!i)c.splice(s,1);else{if(c.find(h=>h.name===i))return a&&a();c[s].name=i}this.setState({expressions:c},()=>{i&&this.readExpressions(s),a&&a()}),window.localStorage.setItem(`javascript.tools.exps.${this.props.src}`,JSON.stringify(c.map(h=>h.name)))}}):null}renderConsole(){return f.jsx(qL,{console:this.state.console,onClearAllLogs:()=>this.setState({console:[],logErrors:0,logWarnings:0,logs:0})})}renderTools(){const n=!this.state.tabs||!this.state.started;let s;return this.state.logErrors?s=f.jsx(D.Badge,{badgeContent:this.state.logErrors,color:"error",children:f.jsx("span",{children:I.I18n.t("Console")})}):this.state.logWarnings?s=f.jsx(D.Badge,{badgeContent:this.state.logWarnings,color:"secondary",children:f.jsx("span",{children:I.I18n.t("Console")})}):this.state.logs?s=f.jsx(D.Badge,{badgeContent:this.state.logs,color:"default",children:f.jsx("span",{children:I.I18n.t("Console")})}):s=I.I18n.t("Console"),f.jsxs("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:[f.jsxs(D.Tabs,{sx:_s.tabsRoot,component:"div",indicatorColor:"primary",style:{position:"relative",width:"100%"},value:this.state.toolsTab,onChange:(i,a)=>{const c={toolsTab:a};this.console&&a==="console"&&(c.console=this.console,this.console=null,c.logs=0,c.logWarnings=0,c.logErrors=0),window.localStorage.setItem("javascript.tools.tab",a),this.setState(c)},scrollButtons:"auto",children:[f.jsx(D.Tab,{style:_s.tabRoot,disabled:n,label:I.I18n.t("Stack"),value:"stack"}),f.jsx(D.Tab,{style:_s.tabRoot,disabled:n,label:s,value:"console"})]}),f.jsxs("div",{style:{width:"100%",height:"calc(100% - 36px)",overflow:"hidden"},children:[this.state.toolsTab==="stack"&&!n?this.renderFrames():null,this.state.toolsTab==="console"&&!n?this.renderConsole():null]})]})}render(){return f.jsxs(D.Box,{sx:_s.root,children:[this.state.starting?f.jsx(D.LinearProgress,{}):null,this.renderToolbar(),f.jsxs(J$,{direction:Bn.Vertical,initialSizes:this.state.toolSizes,minHeights:[100,100],onResizeFinished:(n,s)=>{this.setState({toolSizes:s}),window.localStorage.setItem("JS.toolSizes",JSON.stringify(s))},gutterClassName:this.props.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[f.jsxs("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:[this.renderCode(),this.renderQueryBreakpoints()]}),f.jsx("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:this.renderTools()})]}),this.renderError()]},"debugger")}}function Mt(o,n,s,i,a){if(typeof n=="function"?o!==n||!0:!n.has(o))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n.set(o,s),s}function $e(o,n,s,i){if(s==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof n=="function"?o!==n||!i:!n.has(o))throw new TypeError("Cannot read private member from an object whose class did not declare it");return s==="m"?i:s==="a"?i.call(o):i?i.value:n.get(o)}let Hk=function(){const{crypto:o}=globalThis;if(o!=null&&o.randomUUID)return Hk=o.randomUUID.bind(o),o.randomUUID();const n=new Uint8Array(1),s=o?()=>o.getRandomValues(n)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,i=>(+i^s()&15>>+i/4).toString(16))};function H_(o){return typeof o=="object"&&o!==null&&("name"in o&&o.name==="AbortError"||"message"in o&&String(o.message).includes("FetchRequestCanceledException"))}const V_=o=>{if(o instanceof Error)return o;if(typeof o=="object"&&o!==null){try{if(Object.prototype.toString.call(o)==="[object Error]"){const n=new Error(o.message,o.cause?{cause:o.cause}:{});return o.stack&&(n.stack=o.stack),o.cause&&!n.cause&&(n.cause=o.cause),o.name&&(n.name=o.name),n}}catch{}try{return new Error(JSON.stringify(o))}catch{}}return new Error(o)};class Dt extends Error{}class Vs extends Dt{constructor(n,s,i,a){super(`${Vs.makeMessage(n,s,i)}`),this.status=n,this.headers=a,this.requestID=a==null?void 0:a.get("x-request-id"),this.error=s;const c=s;this.code=c==null?void 0:c.code,this.param=c==null?void 0:c.param,this.type=c==null?void 0:c.type}static makeMessage(n,s,i){const a=s!=null&&s.message?typeof s.message=="string"?s.message:JSON.stringify(s.message):s?JSON.stringify(s):i;return n&&a?`${n} ${a}`:n?`${n} status code (no body)`:a||"(no status code or body)"}static generate(n,s,i,a){if(!n||!a)return new Jv({message:i,cause:V_(s)});const c=s==null?void 0:s.error;return n===400?new Vk(n,c,i,a):n===401?new Gk(n,c,i,a):n===403?new Kk(n,c,i,a):n===404?new Jk(n,c,i,a):n===409?new qk(n,c,i,a):n===422?new Yk(n,c,i,a):n===429?new Xk(n,c,i,a):n>=500?new Zk(n,c,i,a):new Vs(n,c,i,a)}}class xi extends Vs{constructor({message:n}={}){super(void 0,void 0,n||"Request was aborted.",void 0)}}class Jv extends Vs{constructor({message:n,cause:s}){super(void 0,void 0,n||"Connection error.",void 0),s&&(this.cause=s)}}class Bw extends Jv{constructor({message:n}={}){super({message:n??"Request timed out."})}}class Vk extends Vs{}class Gk extends Vs{}class Kk extends Vs{}class Jk extends Vs{}class qk extends Vs{}class Yk extends Vs{}class Xk extends Vs{}class Zk extends Vs{}class Qk extends Dt{constructor(){super("Could not parse response content as the length limit was reached")}}class eE extends Dt{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}const tB=/^[a-z][a-z0-9+.-]*:/i,nB=o=>tB.test(o);function sB(o){return typeof o!="object"?{}:o??{}}function rB(o){if(!o)return!0;for(const n in o)return!1;return!0}function iB(o,n){return Object.prototype.hasOwnProperty.call(o,n)}function n_(o){return o!=null&&typeof o=="object"&&!Array.isArray(o)}const oB=(o,n)=>{if(typeof n!="number"||!Number.isInteger(n))throw new Dt(`${o} must be an integer`);if(n<0)throw new Dt(`${o} must be a positive integer`);return n},aB=o=>{try{return JSON.parse(o)}catch{return}},Kf=o=>new Promise(n=>setTimeout(n,o)),vv={off:0,error:200,warn:300,info:400,debug:500},a0=(o,n,s)=>{if(o){if(iB(vv,o))return o;dr(s).warn(`${n} was set to ${JSON.stringify(o)}, expected one of ${JSON.stringify(Object.keys(vv))}`)}};function df(){}function w$(o,n,s){return!n||vv[o]>vv[s]?df:n[o].bind(n)}const lB={error:df,warn:df,info:df,debug:df};let l0=new WeakMap;function dr(o){const n=o.logger,s=o.logLevel??"off";if(!n)return lB;const i=l0.get(n);if(i&&i[0]===s)return i[1];const a={error:w$("error",n,s),warn:w$("warn",n,s),info:w$("info",n,s),debug:w$("debug",n,s)};return l0.set(n,[s,a]),a}const hu=o=>(o.options&&(o.options={...o.options},delete o.options.headers),o.headers&&(o.headers=Object.fromEntries((o.headers instanceof Headers?[...o.headers]:Object.entries(o.headers)).map(([n,s])=>[n,n.toLowerCase()==="authorization"||n.toLowerCase()==="cookie"||n.toLowerCase()==="set-cookie"?"***":s]))),"retryOfRequestLogID"in o&&(o.retryOfRequestLogID&&(o.retryOf=o.retryOfRequestLogID),delete o.retryOfRequestLogID),o),_h="5.3.0",cB=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function uB(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}const dB=()=>{var s;const o=uB();if(o==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_h,"X-Stainless-OS":u0(Deno.build.os),"X-Stainless-Arch":c0(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:((s=Deno.version)==null?void 0:s.deno)??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_h,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(o==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_h,"X-Stainless-OS":u0(globalThis.process.platform??"unknown"),"X-Stainless-Arch":c0(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const n=hB();return n?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_h,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${n.browser}`,"X-Stainless-Runtime-Version":n.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":_h,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function hB(){if(typeof navigator>"u"||!navigator)return null;const o=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(const{key:n,pattern:s}of o){const i=s.exec(navigator.userAgent);if(i){const a=i[1]||0,c=i[2]||0,h=i[3]||0;return{browser:n,version:`${a}.${c}.${h}`}}}return null}const c0=o=>o==="x32"?"x32":o==="x86_64"||o==="x64"?"x64":o==="arm"?"arm":o==="aarch64"||o==="arm64"?"arm64":o?`other:${o}`:"unknown",u0=o=>(o=o.toLowerCase(),o.includes("ios")?"iOS":o==="android"?"Android":o==="darwin"?"MacOS":o==="win32"?"Windows":o==="freebsd"?"FreeBSD":o==="openbsd"?"OpenBSD":o==="linux"?"Linux":o?`Other:${o}`:"Unknown");let d0;const pB=()=>d0??(d0=dB());function gB(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function tE(...o){const n=globalThis.ReadableStream;if(typeof n>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new n(...o)}function nE(o){let n=Symbol.asyncIterator in o?o[Symbol.asyncIterator]():o[Symbol.iterator]();return tE({start(){},async pull(s){const{done:i,value:a}=await n.next();i?s.close():s.enqueue(a)},async cancel(){var s;await((s=n.return)==null?void 0:s.call(n))}})}function sE(o){if(o[Symbol.asyncIterator])return o;const n=o.getReader();return{async next(){try{const s=await n.read();return s!=null&&s.done&&n.releaseLock(),s}catch(s){throw n.releaseLock(),s}},async return(){const s=n.cancel();return n.releaseLock(),await s,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function fB(o){var i,a;if(o===null||typeof o!="object")return;if(o[Symbol.asyncIterator]){await((a=(i=o[Symbol.asyncIterator]()).return)==null?void 0:a.call(i));return}const n=o.getReader(),s=n.cancel();n.releaseLock(),await s}const mB=({headers:o,body:n})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(n)}),G_="RFC3986",K_={RFC1738:o=>String(o).replace(/%20/g,"+"),RFC3986:o=>String(o)},bB="RFC1738",$B=Array.isArray,Uo=(()=>{const o=[];for(let n=0;n<256;++n)o.push("%"+((n<16?"0":"")+n.toString(16)).toUpperCase());return o})(),s_=1024,vB=(o,n,s,i,a)=>{if(o.length===0)return o;let c=o;if(typeof o=="symbol"?c=Symbol.prototype.toString.call(o):typeof o!="string"&&(c=String(o)),s==="iso-8859-1")return escape(c).replace(/%u[0-9a-f]{4}/gi,function(g){return"%26%23"+parseInt(g.slice(2),16)+"%3B"});let h="";for(let g=0;g=s_?c.slice(g,g+s_):c,$=[];for(let y=0;y=48&&w<=57||w>=65&&w<=90||w>=97&&w<=122||a===bB&&(w===40||w===41)){$[$.length]=b.charAt(y);continue}if(w<128){$[$.length]=Uo[w];continue}if(w<2048){$[$.length]=Uo[192|w>>6]+Uo[128|w&63];continue}if(w<55296||w>=57344){$[$.length]=Uo[224|w>>12]+Uo[128|w>>6&63]+Uo[128|w&63];continue}y+=1,w=65536+((w&1023)<<10|b.charCodeAt(y)&1023),$[$.length]=Uo[240|w>>18]+Uo[128|w>>12&63]+Uo[128|w>>6&63]+Uo[128|w&63]}h+=$.join("")}return h};function yB(o){return!o||typeof o!="object"?!1:!!(o.constructor&&o.constructor.isBuffer&&o.constructor.isBuffer(o))}function h0(o,n){if($B(o)){const s=[];for(let i=0;i"u"&&(S=0)}if(typeof $=="function"?N=$(n,N):N instanceof Date?N=T==null?void 0:T(N):s==="comma"&&Wo(N)&&(N=h0(N,function(Y){return Y instanceof Date?T==null?void 0:T(Y):Y})),N===null){if(c)return b&&!k?b(n,Cs.encoder,A,"key",C):n;N=""}if(SB(N)||yB(N)){if(b){const Y=k?n:b(n,Cs.encoder,A,"key",C);return[(E==null?void 0:E(Y))+"="+(E==null?void 0:E(b(N,Cs.encoder,A,"value",C)))]}return[(E==null?void 0:E(n))+"="+(E==null?void 0:E(String(N)))]}const q=[];if(typeof N>"u")return q;let se;if(s==="comma"&&Wo(N))k&&b&&(N=h0(N,b)),se=[{value:N.length>0?N.join(",")||null:void 0}];else if(Wo($))se=$;else{const Y=Object.keys(N);se=y?Y.sort(y):Y}const ee=g?String(n).replace(/\./g,"%2E"):String(n),K=i&&Wo(N)&&N.length===1?ee+"[]":ee;if(a&&Wo(N)&&N.length===0)return K+"[]";for(let Y=0;Y"u"?o.encodeDotInKeys?!0:Cs.allowDots:!!o.allowDots;return{addQueryPrefix:typeof o.addQueryPrefix=="boolean"?o.addQueryPrefix:Cs.addQueryPrefix,allowDots:h,allowEmptyArrays:typeof o.allowEmptyArrays=="boolean"?!!o.allowEmptyArrays:Cs.allowEmptyArrays,arrayFormat:c,charset:n,charsetSentinel:typeof o.charsetSentinel=="boolean"?o.charsetSentinel:Cs.charsetSentinel,commaRoundTrip:!!o.commaRoundTrip,delimiter:typeof o.delimiter>"u"?Cs.delimiter:o.delimiter,encode:typeof o.encode=="boolean"?o.encode:Cs.encode,encodeDotInKeys:typeof o.encodeDotInKeys=="boolean"?o.encodeDotInKeys:Cs.encodeDotInKeys,encoder:typeof o.encoder=="function"?o.encoder:Cs.encoder,encodeValuesOnly:typeof o.encodeValuesOnly=="boolean"?o.encodeValuesOnly:Cs.encodeValuesOnly,filter:a,format:s,formatter:i,serializeDate:typeof o.serializeDate=="function"?o.serializeDate:Cs.serializeDate,skipNulls:typeof o.skipNulls=="boolean"?o.skipNulls:Cs.skipNulls,sort:typeof o.sort=="function"?o.sort:null,strictNullHandling:typeof o.strictNullHandling=="boolean"?o.strictNullHandling:Cs.strictNullHandling}}function kB(o,n={}){let s=o;const i=TB(n);let a,c;typeof i.filter=="function"?(c=i.filter,s=c("",s)):Wo(i.filter)&&(c=i.filter,a=c);const h=[];if(typeof s!="object"||s===null)return"";const g=rE[i.arrayFormat],b=g==="comma"&&i.commaRoundTrip;a||(a=Object.keys(s)),i.sort&&a.sort(i.sort);const $=new WeakMap;for(let T=0;T0?w+y:""}function EB(o){let n=0;for(const a of o)n+=a.length;const s=new Uint8Array(n);let i=0;for(const a of o)s.set(a,i),i+=a.length;return s}let p0;function Pw(o){let n;return(p0??(n=new globalThis.TextEncoder,p0=n.encode.bind(n)))(o)}let g0;function f0(o){let n;return(g0??(n=new globalThis.TextDecoder,g0=n.decode.bind(n)))(o)}var ni,si;class qv{constructor(){ni.set(this,void 0),si.set(this,void 0),Mt(this,ni,new Uint8Array),Mt(this,si,null)}decode(n){if(n==null)return[];const s=n instanceof ArrayBuffer?new Uint8Array(n):typeof n=="string"?Pw(n):n;Mt(this,ni,EB([$e(this,ni,"f"),s]));const i=[];let a;for(;(a=IB($e(this,ni,"f"),$e(this,si,"f")))!=null;){if(a.carriage&&$e(this,si,"f")==null){Mt(this,si,a.index);continue}if($e(this,si,"f")!=null&&(a.index!==$e(this,si,"f")+1||a.carriage)){i.push(f0($e(this,ni,"f").subarray(0,$e(this,si,"f")-1))),Mt(this,ni,$e(this,ni,"f").subarray($e(this,si,"f"))),Mt(this,si,null);continue}const c=$e(this,si,"f")!==null?a.preceding-1:a.preceding,h=f0($e(this,ni,"f").subarray(0,c));i.push(h),Mt(this,ni,$e(this,ni,"f").subarray(a.index)),Mt(this,si,null)}return i}flush(){return $e(this,ni,"f").length?this.decode(` -`):[]}}ni=new WeakMap,si=new WeakMap;qv.NEWLINE_CHARS=new Set([` -`,"\r"]);qv.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function IB(o,n){for(let a=n??0;a({next:()=>{if(c.length===0){const h=i.next();n.push(h),s.push(h)}return c.shift()}});return[new Ko(()=>a(n),this.controller),new Ko(()=>a(s),this.controller)]}toReadableStream(){const n=this;let s;return tE({async start(){s=n[Symbol.asyncIterator]()},async pull(i){try{const{value:a,done:c}=await s.next();if(c)return i.close();const h=Pw(JSON.stringify(a)+` -`);i.enqueue(h)}catch(a){i.error(a)}},async cancel(){var i;await((i=s.return)==null?void 0:i.call(s))}})}}async function*DB(o,n){if(!o.body)throw n.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Dt("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Dt("Attempted to iterate over a response with no body");const s=new OB,i=new qv,a=sE(o.body);for await(const c of AB(a))for(const h of i.decode(c)){const g=s.decode(h);g&&(yield g)}for(const c of i.flush()){const h=s.decode(c);h&&(yield h)}}async function*AB(o){let n=new Uint8Array;for await(const s of o){if(s==null)continue;const i=s instanceof ArrayBuffer?new Uint8Array(s):typeof s=="string"?Pw(s):s;let a=new Uint8Array(n.length+i.length);a.set(n),a.set(i,n.length),n=a;let c;for(;(c=xB(n))!==-1;)yield n.slice(0,c),n=n.slice(c)}n.length>0&&(yield n)}class OB{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(n){if(n.endsWith("\r")&&(n=n.substring(0,n.length-1)),!n){if(!this.event&&!this.data.length)return null;const c={event:this.event,data:this.data.join(` -`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],c}if(this.chunks.push(n),n.startsWith(":"))return null;let[s,i,a]=RB(n,":");return a.startsWith(" ")&&(a=a.substring(1)),s==="event"?this.event=a:s==="data"&&this.data.push(a),null}}function RB(o,n){const s=o.indexOf(n);return s!==-1?[o.substring(0,s),n,o.substring(s+n.length)]:[o,"",""]}async function aE(o,n){const{response:s,requestLogID:i,retryOfRequestLogID:a,startTime:c}=n,h=await(async()=>{var w;if(n.options.stream)return dr(o).debug("response",s.status,s.url,s.headers,s.body),n.options.__streamClass?n.options.__streamClass.fromSSEResponse(s,n.controller):Ko.fromSSEResponse(s,n.controller);if(s.status===204)return null;if(n.options.__binaryResponse)return s;const g=s.headers.get("content-type"),b=(w=g==null?void 0:g.split(";")[0])==null?void 0:w.trim();if((b==null?void 0:b.includes("application/json"))||(b==null?void 0:b.endsWith("+json"))){const T=await s.json();return lE(T,s)}return await s.text()})();return dr(o).debug(`[${i}] response parsed`,hu({retryOfRequestLogID:a,url:s.url,status:s.status,body:h,durationMs:Date.now()-c})),h}function lE(o,n){return!o||typeof o!="object"||Array.isArray(o)?o:Object.defineProperty(o,"_request_id",{value:n.headers.get("x-request-id"),enumerable:!1})}var hf;class Yv extends Promise{constructor(n,s,i=aE){super(a=>{a(null)}),this.responsePromise=s,this.parseResponse=i,hf.set(this,void 0),Mt(this,hf,n)}_thenUnwrap(n){return new Yv($e(this,hf,"f"),this.responsePromise,async(s,i)=>lE(n(await this.parseResponse(s,i),i),i.response))}asResponse(){return this.responsePromise.then(n=>n.response)}async withResponse(){const[n,s]=await Promise.all([this.parse(),this.asResponse()]);return{data:n,response:s,request_id:s.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(n=>this.parseResponse($e(this,hf,"f"),n))),this.parsedPromise}then(n,s){return this.parse().then(n,s)}catch(n){return this.parse().catch(n)}finally(n){return this.parse().finally(n)}}hf=new WeakMap;var C$;class cE{constructor(n,s,i,a){C$.set(this,void 0),Mt(this,C$,n),this.options=a,this.response=s,this.body=i}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const n=this.nextPageRequestOptions();if(!n)throw new Dt("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await $e(this,C$,"f").requestAPIList(this.constructor,n)}async*iterPages(){let n=this;for(yield n;n.hasNextPage();)n=await n.getNextPage(),yield n}async*[(C$=new WeakMap,Symbol.asyncIterator)](){for await(const n of this.iterPages())for(const s of n.getPaginatedItems())yield s}}class MB extends Yv{constructor(n,s,i){super(n,s,async(a,c)=>new i(a,c.response,await aE(a,c),c.options))}async*[Symbol.asyncIterator](){const n=await this;for await(const s of n)yield s}}class Xv extends cE{constructor(n,s,i,a){super(n,s,i,a),this.data=i.data||[],this.object=i.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class gs extends cE{constructor(n,s,i,a){super(n,s,i,a),this.data=i.data||[],this.has_more=i.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){var i;const n=this.getPaginatedItems(),s=(i=n[n.length-1])==null?void 0:i.id;return s?{...this.options,query:{...sB(this.options.query),after:s}}:null}}const uE=()=>{var o;if(typeof File>"u"){const{process:n}=globalThis,s=typeof((o=n==null?void 0:n.versions)==null?void 0:o.node)=="string"&&parseInt(n.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(s?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Tf(o,n,s){return uE(),new File(o,n??"unknown_file",s)}function B$(o){return(typeof o=="object"&&o!==null&&("name"in o&&o.name&&String(o.name)||"url"in o&&o.url&&String(o.url)||"filename"in o&&o.filename&&String(o.filename)||"path"in o&&o.path&&String(o.path))||"").split(/[\\/]/).pop()||void 0}const dE=o=>o!=null&&typeof o=="object"&&typeof o[Symbol.asyncIterator]=="function",wu=async(o,n)=>({...o,body:await LB(o.body,n)}),m0=new WeakMap;function NB(o){const n=typeof o=="function"?o:o.fetch,s=m0.get(n);if(s)return s;const i=(async()=>{try{const a="Response"in n?n.Response:(await n("data:,")).constructor,c=new FormData;return c.toString()!==await new a(c).text()}catch{return!0}})();return m0.set(n,i),i}const LB=async(o,n)=>{if(!await NB(n))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");const s=new FormData;return await Promise.all(Object.entries(o||{}).map(([i,a])=>J_(s,i,a))),s},BB=o=>o instanceof Blob&&"name"in o,J_=async(o,n,s)=>{if(s!==void 0){if(s==null)throw new TypeError(`Received null for "${n}"; to pass null in FormData, you must use the string 'null'`);if(typeof s=="string"||typeof s=="number"||typeof s=="boolean")o.append(n,String(s));else if(s instanceof Response)o.append(n,Tf([await s.blob()],B$(s)));else if(dE(s))o.append(n,Tf([await new Response(nE(s)).blob()],B$(s)));else if(BB(s))o.append(n,s,B$(s));else if(Array.isArray(s))await Promise.all(s.map(i=>J_(o,n+"[]",i)));else if(typeof s=="object")await Promise.all(Object.entries(s).map(([i,a])=>J_(o,`${n}[${i}]`,a)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${s} instead`)}},hE=o=>o!=null&&typeof o=="object"&&typeof o.size=="number"&&typeof o.type=="string"&&typeof o.text=="function"&&typeof o.slice=="function"&&typeof o.arrayBuffer=="function",PB=o=>o!=null&&typeof o=="object"&&typeof o.name=="string"&&typeof o.lastModified=="number"&&hE(o),jB=o=>o!=null&&typeof o=="object"&&typeof o.url=="string"&&typeof o.blob=="function";async function FB(o,n,s){if(uE(),o=await o,PB(o))return o instanceof File?o:Tf([await o.arrayBuffer()],o.name);if(jB(o)){const a=await o.blob();return n||(n=new URL(o.url).pathname.split(/[\\/]/).pop()),Tf(await q_(a),n,s)}const i=await q_(o);if(n||(n=B$(o)),!(s!=null&&s.type)){const a=i.find(c=>typeof c=="object"&&"type"in c&&c.type);typeof a=="string"&&(s={...s,type:a})}return Tf(i,n,s)}async function q_(o){var s;let n=[];if(typeof o=="string"||ArrayBuffer.isView(o)||o instanceof ArrayBuffer)n.push(o);else if(hE(o))n.push(o instanceof Blob?o:await o.arrayBuffer());else if(dE(o))for await(const i of o)n.push(...await q_(i));else{const i=(s=o==null?void 0:o.constructor)==null?void 0:s.name;throw new Error(`Unexpected data type: ${typeof o}${i?`; constructor: ${i}`:""}${zB(o)}`)}return n}function zB(o){return typeof o!="object"||o===null?"":`; props: [${Object.getOwnPropertyNames(o).map(s=>`"${s}"`).join(", ")}]`}class Pt{constructor(n){this._client=n}}function pE(o){return o.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const UB=(o=pE)=>function(s,...i){if(s.length===1)return s[0];let a=!1;const c=s.reduce((y,w,T)=>(/[?#]/.test(w)&&(a=!0),y+w+(T===i.length?"":(a?encodeURIComponent:o)(String(i[T])))),""),h=c.split(/[?#]/,1)[0],g=[],b=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;let $;for(;($=b.exec(h))!==null;)g.push({start:$.index,length:$[0].length});if(g.length>0){let y=0;const w=g.reduce((T,C)=>{const E=" ".repeat(C.start-y),k="^".repeat(C.length);return y=C.start+C.length,T+E+k},"");throw new Dt(`Path parameters result in path with invalid segments: -${c} -${w}`)}return c},Xe=UB(pE);let gE=class extends Pt{list(n,s={},i){return this._client.getAPIList(Xe`/chat/completions/${n}/messages`,gs,{query:s,...i})}};function WB(o){return typeof o.parse=="function"}const yv=o=>(o==null?void 0:o.role)==="assistant",fE=o=>(o==null?void 0:o.role)==="tool";var Y_,P$,j$,pf,gf,F$,ff,Wa,mf,_v,wv,wh,mE;class jw{constructor(){Y_.add(this),this.controller=new AbortController,P$.set(this,void 0),j$.set(this,()=>{}),pf.set(this,()=>{}),gf.set(this,void 0),F$.set(this,()=>{}),ff.set(this,()=>{}),Wa.set(this,{}),mf.set(this,!1),_v.set(this,!1),wv.set(this,!1),wh.set(this,!1),Mt(this,P$,new Promise((n,s)=>{Mt(this,j$,n,"f"),Mt(this,pf,s,"f")})),Mt(this,gf,new Promise((n,s)=>{Mt(this,F$,n,"f"),Mt(this,ff,s,"f")})),$e(this,P$,"f").catch(()=>{}),$e(this,gf,"f").catch(()=>{})}_run(n){setTimeout(()=>{n().then(()=>{this._emitFinal(),this._emit("end")},$e(this,Y_,"m",mE).bind(this))},0)}_connected(){this.ended||($e(this,j$,"f").call(this),this._emit("connect"))}get ended(){return $e(this,mf,"f")}get errored(){return $e(this,_v,"f")}get aborted(){return $e(this,wv,"f")}abort(){this.controller.abort()}on(n,s){return($e(this,Wa,"f")[n]||($e(this,Wa,"f")[n]=[])).push({listener:s}),this}off(n,s){const i=$e(this,Wa,"f")[n];if(!i)return this;const a=i.findIndex(c=>c.listener===s);return a>=0&&i.splice(a,1),this}once(n,s){return($e(this,Wa,"f")[n]||($e(this,Wa,"f")[n]=[])).push({listener:s,once:!0}),this}emitted(n){return new Promise((s,i)=>{Mt(this,wh,!0),n!=="error"&&this.once("error",i),this.once(n,s)})}async done(){Mt(this,wh,!0),await $e(this,gf,"f")}_emit(n,...s){if($e(this,mf,"f"))return;n==="end"&&(Mt(this,mf,!0),$e(this,F$,"f").call(this));const i=$e(this,Wa,"f")[n];if(i&&($e(this,Wa,"f")[n]=i.filter(a=>!a.once),i.forEach(({listener:a})=>a(...s))),n==="abort"){const a=s[0];!$e(this,wh,"f")&&!(i!=null&&i.length)&&Promise.reject(a),$e(this,pf,"f").call(this,a),$e(this,ff,"f").call(this,a),this._emit("end");return}if(n==="error"){const a=s[0];!$e(this,wh,"f")&&!(i!=null&&i.length)&&Promise.reject(a),$e(this,pf,"f").call(this,a),$e(this,ff,"f").call(this,a),this._emit("end")}}_emitFinal(){}}P$=new WeakMap,j$=new WeakMap,pf=new WeakMap,gf=new WeakMap,F$=new WeakMap,ff=new WeakMap,Wa=new WeakMap,mf=new WeakMap,_v=new WeakMap,wv=new WeakMap,wh=new WeakMap,Y_=new WeakSet,mE=function(n){if(Mt(this,_v,!0),n instanceof Error&&n.name==="AbortError"&&(n=new xi),n instanceof xi)return Mt(this,wv,!0),this._emit("abort",n);if(n instanceof Dt)return this._emit("error",n);if(n instanceof Error){const s=new Dt(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new Dt(String(n)))};function Fw(o){return(o==null?void 0:o.$brand)==="auto-parseable-response-format"}function Jf(o){return(o==null?void 0:o.$brand)==="auto-parseable-tool"}function HB(o,n){return!n||!bE(n)?{...o,choices:o.choices.map(s=>({...s,message:{...s.message,parsed:null,...s.message.tool_calls?{tool_calls:s.message.tool_calls}:void 0}}))}:zw(o,n)}function zw(o,n){const s=o.choices.map(i=>{var a;if(i.finish_reason==="length")throw new Qk;if(i.finish_reason==="content_filter")throw new eE;return{...i,message:{...i.message,...i.message.tool_calls?{tool_calls:((a=i.message.tool_calls)==null?void 0:a.map(c=>GB(n,c)))??void 0}:void 0,parsed:i.message.content&&!i.message.refusal?VB(n,i.message.content):null}}});return{...o,choices:s}}function VB(o,n){var s,i;return((s=o.response_format)==null?void 0:s.type)!=="json_schema"?null:((i=o.response_format)==null?void 0:i.type)==="json_schema"?"$parseRaw"in o.response_format?o.response_format.$parseRaw(n):JSON.parse(n):null}function GB(o,n){var i;const s=(i=o.tools)==null?void 0:i.find(a=>{var c;return((c=a.function)==null?void 0:c.name)===n.function.name});return{...n,function:{...n.function,parsed_arguments:Jf(s)?s.$parseRaw(n.function.arguments):s!=null&&s.function.strict?JSON.parse(n.function.arguments):null}}}function KB(o,n){var i;if(!o)return!1;const s=(i=o.tools)==null?void 0:i.find(a=>{var c;return((c=a.function)==null?void 0:c.name)===n.function.name});return Jf(s)||(s==null?void 0:s.function.strict)||!1}function bE(o){var n;return Fw(o.response_format)?!0:((n=o.tools)==null?void 0:n.some(s=>Jf(s)||s.type==="function"&&s.function.strict===!0))??!1}function JB(o){for(const n of o??[]){if(n.type!=="function")throw new Dt(`Currently only \`function\` tool types support auto-parsing; Received \`${n.type}\``);if(n.function.strict!==!0)throw new Dt(`The \`${n.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Tr,X_,Cv,Z_,Q_,ew,$E,vE;const qB=10;class yE extends jw{constructor(){super(...arguments),Tr.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(n){var i;this._chatCompletions.push(n),this._emit("chatCompletion",n);const s=(i=n.choices[0])==null?void 0:i.message;return s&&this._addMessage(s),n}_addMessage(n,s=!0){if("content"in n||(n.content=null),this.messages.push(n),s){if(this._emit("message",n),fE(n)&&n.content)this._emit("functionToolCallResult",n.content);else if(yv(n)&&n.tool_calls)for(const i of n.tool_calls)i.type==="function"&&this._emit("functionToolCall",i.function)}}async finalChatCompletion(){await this.done();const n=this._chatCompletions[this._chatCompletions.length-1];if(!n)throw new Dt("stream ended without producing a ChatCompletion");return n}async finalContent(){return await this.done(),$e(this,Tr,"m",X_).call(this)}async finalMessage(){return await this.done(),$e(this,Tr,"m",Cv).call(this)}async finalFunctionToolCall(){return await this.done(),$e(this,Tr,"m",Z_).call(this)}async finalFunctionToolCallResult(){return await this.done(),$e(this,Tr,"m",Q_).call(this)}async totalUsage(){return await this.done(),$e(this,Tr,"m",ew).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const n=this._chatCompletions[this._chatCompletions.length-1];n&&this._emit("finalChatCompletion",n);const s=$e(this,Tr,"m",Cv).call(this);s&&this._emit("finalMessage",s);const i=$e(this,Tr,"m",X_).call(this);i&&this._emit("finalContent",i);const a=$e(this,Tr,"m",Z_).call(this);a&&this._emit("finalFunctionToolCall",a);const c=$e(this,Tr,"m",Q_).call(this);c!=null&&this._emit("finalFunctionToolCallResult",c),this._chatCompletions.some(h=>h.usage)&&this._emit("totalUsage",$e(this,Tr,"m",ew).call(this))}async _createChatCompletion(n,s,i){const a=i==null?void 0:i.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort())),$e(this,Tr,"m",$E).call(this,s);const c=await n.chat.completions.create({...s,stream:!1},{...i,signal:this.controller.signal});return this._connected(),this._addChatCompletion(zw(c,s))}async _runChatCompletion(n,s,i){for(const a of s.messages)this._addMessage(a,!1);return await this._createChatCompletion(n,s,i)}async _runTools(n,s,i){var C,E,k;const a="tool",{tool_choice:c="auto",stream:h,...g}=s,b=typeof c!="string"&&((C=c==null?void 0:c.function)==null?void 0:C.name),{maxChatCompletions:$=qB}=i||{},y=s.tools.map(A=>{if(Jf(A)){if(!A.$callback)throw new Dt("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:A.$callback,name:A.function.name,description:A.function.description||"",parameters:A.function.parameters,parse:A.$parseRaw,strict:!0}}}return A}),w={};for(const A of y)A.type==="function"&&(w[A.function.name||A.function.function.name]=A.function);const T="tools"in s?y.map(A=>A.type==="function"?{type:"function",function:{name:A.function.name||A.function.function.name,parameters:A.function.parameters,description:A.function.description,strict:A.function.strict}}:A):void 0;for(const A of s.messages)this._addMessage(A,!1);for(let A=0;A<$;++A){const N=(E=(await this._createChatCompletion(n,{...g,tool_choice:c,tools:T,messages:[...this.messages]},i)).choices[0])==null?void 0:E.message;if(!N)throw new Dt("missing message in ChatCompletion response");if(!((k=N.tool_calls)!=null&&k.length))return;for(const B of N.tool_calls){if(B.type!=="function")continue;const S=B.id,{name:H,arguments:q}=B.function,se=w[H];if(se){if(b&&b!==H){const X=`Invalid tool_call: ${JSON.stringify(H)}. ${JSON.stringify(b)} requested. Please try again`;this._addMessage({role:a,tool_call_id:S,content:X});continue}}else{const X=`Invalid tool_call: ${JSON.stringify(H)}. Available options are: ${Object.keys(w).map(ce=>JSON.stringify(ce)).join(", ")}. Please try again`;this._addMessage({role:a,tool_call_id:S,content:X});continue}let ee;try{ee=WB(se)?await se.parse(q):q}catch(X){const ce=X instanceof Error?X.message:String(X);this._addMessage({role:a,tool_call_id:S,content:ce});continue}const K=await se.function(ee,this),Y=$e(this,Tr,"m",vE).call(this,K);if(this._addMessage({role:a,tool_call_id:S,content:Y}),b)return}}}}Tr=new WeakSet,X_=function(){return $e(this,Tr,"m",Cv).call(this).content??null},Cv=function(){let n=this.messages.length;for(;n-- >0;){const s=this.messages[n];if(yv(s))return{...s,content:s.content??null,refusal:s.refusal??null}}throw new Dt("stream ended without producing a ChatCompletionMessage with role=assistant")},Z_=function(){var n,s;for(let i=this.messages.length-1;i>=0;i--){const a=this.messages[i];if(yv(a)&&((n=a==null?void 0:a.tool_calls)!=null&&n.length))return(s=a.tool_calls.at(-1))==null?void 0:s.function}},Q_=function(){for(let n=this.messages.length-1;n>=0;n--){const s=this.messages[n];if(fE(s)&&s.content!=null&&typeof s.content=="string"&&this.messages.some(i=>{var a;return i.role==="assistant"&&((a=i.tool_calls)==null?void 0:a.some(c=>c.type==="function"&&c.id===s.tool_call_id))}))return s.content}},ew=function(){const n={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:s}of this._chatCompletions)s&&(n.completion_tokens+=s.completion_tokens,n.prompt_tokens+=s.prompt_tokens,n.total_tokens+=s.total_tokens);return n},$E=function(n){if(n.n!=null&&n.n>1)throw new Dt("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},vE=function(n){return typeof n=="string"?n:n===void 0?"undefined":JSON.stringify(n)};class Uw extends yE{static runTools(n,s,i){const a=new Uw,c={...i,headers:{...i==null?void 0:i.headers,"X-Stainless-Helper-Method":"runTools"}};return a._run(()=>a._runTools(n,s,c)),a}_addMessage(n,s=!0){super._addMessage(n,s),yv(n)&&n.content&&this._emit("content",n.content)}}const _E=1,wE=2,CE=4,SE=8,TE=16,kE=32,EE=64,IE=128,xE=256,DE=IE|xE,AE=TE|kE|DE|EE,OE=_E|wE|AE,RE=CE|SE,YB=OE|RE,Os={STR:_E,NUM:wE,ARR:CE,OBJ:SE,NULL:TE,BOOL:kE,NAN:EE,INFINITY:IE,MINUS_INFINITY:xE,INF:DE,SPECIAL:AE,ATOM:OE,COLLECTION:RE,ALL:YB};class XB extends Error{}class ZB extends Error{}function QB(o,n=Os.ALL){if(typeof o!="string")throw new TypeError(`expecting str, got ${typeof o}`);if(!o.trim())throw new Error(`${o} is empty`);return eP(o.trim(),n)}const eP=(o,n)=>{const s=o.length;let i=0;const a=T=>{throw new XB(`${T} at position ${i}`)},c=T=>{throw new ZB(`${T} at position ${i}`)},h=()=>(w(),i>=s&&a("Unexpected end of input"),o[i]==='"'?g():o[i]==="{"?b():o[i]==="["?$():o.substring(i,i+4)==="null"||Os.NULL&n&&s-i<4&&"null".startsWith(o.substring(i))?(i+=4,null):o.substring(i,i+4)==="true"||Os.BOOL&n&&s-i<4&&"true".startsWith(o.substring(i))?(i+=4,!0):o.substring(i,i+5)==="false"||Os.BOOL&n&&s-i<5&&"false".startsWith(o.substring(i))?(i+=5,!1):o.substring(i,i+8)==="Infinity"||Os.INFINITY&n&&s-i<8&&"Infinity".startsWith(o.substring(i))?(i+=8,1/0):o.substring(i,i+9)==="-Infinity"||Os.MINUS_INFINITY&n&&1{const T=i;let C=!1;for(i++;i{i++,w();const T={};try{for(;o[i]!=="}";){if(w(),i>=s&&Os.OBJ&n)return T;const C=g();w(),i++;try{const E=h();Object.defineProperty(T,C,{value:E,writable:!0,enumerable:!0,configurable:!0})}catch(E){if(Os.OBJ&n)return T;throw E}w(),o[i]===","&&i++}}catch{if(Os.OBJ&n)return T;a("Expected '}' at end of object")}return i++,T},$=()=>{i++;const T=[];try{for(;o[i]!=="]";)T.push(h()),w(),o[i]===","&&i++}catch{if(Os.ARR&n)return T;a("Expected ']' at end of array")}return i++,T},y=()=>{if(i===0){o==="-"&&Os.NUM&n&&a("Not sure what '-' is");try{return JSON.parse(o)}catch(C){if(Os.NUM&n)try{return o[o.length-1]==="."?JSON.parse(o.substring(0,o.lastIndexOf("."))):JSON.parse(o.substring(0,o.lastIndexOf("e")))}catch{}c(String(C))}}const T=i;for(o[i]==="-"&&i++;o[i]&&!",]}".includes(o[i]);)i++;i==s&&!(Os.NUM&n)&&a("Unterminated number literal");try{return JSON.parse(o.substring(T,i))}catch{o.substring(T,i)==="-"&&Os.NUM&n&&a("Not sure what '-' is");try{return JSON.parse(o.substring(T,o.lastIndexOf("e")))}catch(E){c(String(E))}}},w=()=>{for(;iQB(o,Os.ALL^Os.NUM);var ws,Ua,$h,Kl,i_,S$,o_,a_,l_,T$,c_,$0;class Mf extends yE{constructor(n){super(),ws.add(this),Ua.set(this,void 0),$h.set(this,void 0),Kl.set(this,void 0),Mt(this,Ua,n),Mt(this,$h,[])}get currentChatCompletionSnapshot(){return $e(this,Kl,"f")}static fromReadableStream(n){const s=new Mf(null);return s._run(()=>s._fromReadableStream(n)),s}static createChatCompletion(n,s,i){const a=new Mf(s);return a._run(()=>a._runChatCompletion(n,{...s,stream:!0},{...i,headers:{...i==null?void 0:i.headers,"X-Stainless-Helper-Method":"stream"}})),a}async _createChatCompletion(n,s,i){var h;super._createChatCompletion;const a=i==null?void 0:i.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort())),$e(this,ws,"m",i_).call(this);const c=await n.chat.completions.create({...s,stream:!0},{...i,signal:this.controller.signal});this._connected();for await(const g of c)$e(this,ws,"m",o_).call(this,g);if((h=c.controller.signal)!=null&&h.aborted)throw new xi;return this._addChatCompletion($e(this,ws,"m",T$).call(this))}async _fromReadableStream(n,s){var h;const i=s==null?void 0:s.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort())),$e(this,ws,"m",i_).call(this),this._connected();const a=Ko.fromReadableStream(n,this.controller);let c;for await(const g of a)c&&c!==g.id&&this._addChatCompletion($e(this,ws,"m",T$).call(this)),$e(this,ws,"m",o_).call(this,g),c=g.id;if((h=a.controller.signal)!=null&&h.aborted)throw new xi;return this._addChatCompletion($e(this,ws,"m",T$).call(this))}[(Ua=new WeakMap,$h=new WeakMap,Kl=new WeakMap,ws=new WeakSet,i_=function(){this.ended||Mt(this,Kl,void 0)},S$=function(s){let i=$e(this,$h,"f")[s.index];return i||(i={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},$e(this,$h,"f")[s.index]=i,i)},o_=function(s){var a,c,h,g,b,$,y,w,T,C,E,k,A,P,N;if(this.ended)return;const i=$e(this,ws,"m",$0).call(this,s);this._emit("chunk",s,i);for(const B of s.choices){const S=i.choices[B.index];B.delta.content!=null&&((a=S.message)==null?void 0:a.role)==="assistant"&&((c=S.message)!=null&&c.content)&&(this._emit("content",B.delta.content,S.message.content),this._emit("content.delta",{delta:B.delta.content,snapshot:S.message.content,parsed:S.message.parsed})),B.delta.refusal!=null&&((h=S.message)==null?void 0:h.role)==="assistant"&&((g=S.message)!=null&&g.refusal)&&this._emit("refusal.delta",{delta:B.delta.refusal,snapshot:S.message.refusal}),((b=B.logprobs)==null?void 0:b.content)!=null&&(($=S.message)==null?void 0:$.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(y=B.logprobs)==null?void 0:y.content,snapshot:((w=S.logprobs)==null?void 0:w.content)??[]}),((T=B.logprobs)==null?void 0:T.refusal)!=null&&((C=S.message)==null?void 0:C.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(E=B.logprobs)==null?void 0:E.refusal,snapshot:((k=S.logprobs)==null?void 0:k.refusal)??[]});const H=$e(this,ws,"m",S$).call(this,S);S.finish_reason&&($e(this,ws,"m",l_).call(this,S),H.current_tool_call_index!=null&&$e(this,ws,"m",a_).call(this,S,H.current_tool_call_index));for(const q of B.delta.tool_calls??[])H.current_tool_call_index!==q.index&&($e(this,ws,"m",l_).call(this,S),H.current_tool_call_index!=null&&$e(this,ws,"m",a_).call(this,S,H.current_tool_call_index)),H.current_tool_call_index=q.index;for(const q of B.delta.tool_calls??[]){const se=(A=S.message.tool_calls)==null?void 0:A[q.index];se!=null&&se.type&&((se==null?void 0:se.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(P=se.function)==null?void 0:P.name,index:q.index,arguments:se.function.arguments,parsed_arguments:se.function.parsed_arguments,arguments_delta:((N=q.function)==null?void 0:N.arguments)??""}):(se==null||se.type,void 0))}}},a_=function(s,i){var h,g,b;if($e(this,ws,"m",S$).call(this,s).done_tool_calls.has(i))return;const c=(h=s.message.tool_calls)==null?void 0:h[i];if(!c)throw new Error("no tool call snapshot");if(!c.type)throw new Error("tool call snapshot missing `type`");if(c.type==="function"){const $=(b=(g=$e(this,Ua,"f"))==null?void 0:g.tools)==null?void 0:b.find(y=>y.type==="function"&&y.function.name===c.function.name);this._emit("tool_calls.function.arguments.done",{name:c.function.name,index:i,arguments:c.function.arguments,parsed_arguments:Jf($)?$.$parseRaw(c.function.arguments):$!=null&&$.function.strict?JSON.parse(c.function.arguments):null})}else c.type},l_=function(s){var a,c;const i=$e(this,ws,"m",S$).call(this,s);if(s.message.content&&!i.content_done){i.content_done=!0;const h=$e(this,ws,"m",c_).call(this);this._emit("content.done",{content:s.message.content,parsed:h?h.$parseRaw(s.message.content):null})}s.message.refusal&&!i.refusal_done&&(i.refusal_done=!0,this._emit("refusal.done",{refusal:s.message.refusal})),(a=s.logprobs)!=null&&a.content&&!i.logprobs_content_done&&(i.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:s.logprobs.content})),(c=s.logprobs)!=null&&c.refusal&&!i.logprobs_refusal_done&&(i.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:s.logprobs.refusal}))},T$=function(){if(this.ended)throw new Dt("stream has ended, this shouldn't happen");const s=$e(this,Kl,"f");if(!s)throw new Dt("request ended without sending any chunks");return Mt(this,Kl,void 0),Mt(this,$h,[]),tP(s,$e(this,Ua,"f"))},c_=function(){var i;const s=(i=$e(this,Ua,"f"))==null?void 0:i.response_format;return Fw(s)?s:null},$0=function(s){var i,a,c,h;let g=$e(this,Kl,"f");const{choices:b,...$}=s;g?Object.assign(g,$):g=Mt(this,Kl,{...$,choices:[]});for(const{delta:y,finish_reason:w,index:T,logprobs:C=null,...E}of s.choices){let k=g.choices[T];if(k||(k=g.choices[T]={finish_reason:w,index:T,message:{},logprobs:C,...E}),C)if(!k.logprobs)k.logprobs=Object.assign({},C);else{const{content:q,refusal:se,...ee}=C;Object.assign(k.logprobs,ee),q&&((i=k.logprobs).content??(i.content=[]),k.logprobs.content.push(...q)),se&&((a=k.logprobs).refusal??(a.refusal=[]),k.logprobs.refusal.push(...se))}if(w&&(k.finish_reason=w,$e(this,Ua,"f")&&bE($e(this,Ua,"f")))){if(w==="length")throw new Qk;if(w==="content_filter")throw new eE}if(Object.assign(k,E),!y)continue;const{content:A,refusal:P,function_call:N,role:B,tool_calls:S,...H}=y;if(Object.assign(k.message,H),P&&(k.message.refusal=(k.message.refusal||"")+P),B&&(k.message.role=B),N&&(k.message.function_call?(N.name&&(k.message.function_call.name=N.name),N.arguments&&((c=k.message.function_call).arguments??(c.arguments=""),k.message.function_call.arguments+=N.arguments)):k.message.function_call=N),A&&(k.message.content=(k.message.content||"")+A,!k.message.refusal&&$e(this,ws,"m",c_).call(this)&&(k.message.parsed=b0(k.message.content))),S){k.message.tool_calls||(k.message.tool_calls=[]);for(const{index:q,id:se,type:ee,function:K,...Y}of S){const X=(h=k.message.tool_calls)[q]??(h[q]={});Object.assign(X,Y),se&&(X.id=se),ee&&(X.type=ee),K&&(X.function??(X.function={name:K.name??"",arguments:""})),K!=null&&K.name&&(X.function.name=K.name),K!=null&&K.arguments&&(X.function.arguments+=K.arguments,KB($e(this,Ua,"f"),X)&&(X.function.parsed_arguments=b0(X.function.arguments)))}}}return g},Symbol.asyncIterator)](){const n=[],s=[];let i=!1;return this.on("chunk",a=>{const c=s.shift();c?c.resolve(a):n.push(a)}),this.on("end",()=>{i=!0;for(const a of s)a.resolve(void 0);s.length=0}),this.on("abort",a=>{i=!0;for(const c of s)c.reject(a);s.length=0}),this.on("error",a=>{i=!0;for(const c of s)c.reject(a);s.length=0}),{next:async()=>n.length?{value:n.shift(),done:!1}:i?{value:void 0,done:!0}:new Promise((c,h)=>s.push({resolve:c,reject:h})).then(c=>c?{value:c,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Ko(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function tP(o,n){const{id:s,choices:i,created:a,model:c,system_fingerprint:h,...g}=o,b={...g,id:s,choices:i.map(({message:$,finish_reason:y,index:w,logprobs:T,...C})=>{if(!y)throw new Dt(`missing finish_reason for choice ${w}`);const{content:E=null,function_call:k,tool_calls:A,...P}=$,N=$.role;if(!N)throw new Dt(`missing role for choice ${w}`);if(k){const{arguments:B,name:S}=k;if(B==null)throw new Dt(`missing function_call.arguments for choice ${w}`);if(!S)throw new Dt(`missing function_call.name for choice ${w}`);return{...C,message:{content:E,function_call:{arguments:B,name:S},role:N,refusal:$.refusal??null},finish_reason:y,index:w,logprobs:T}}return A?{...C,index:w,finish_reason:y,logprobs:T,message:{...P,role:N,content:E,refusal:$.refusal??null,tool_calls:A.map((B,S)=>{const{function:H,type:q,id:se,...ee}=B,{arguments:K,name:Y,...X}=H||{};if(se==null)throw new Dt(`missing choices[${w}].tool_calls[${S}].id -${k$(o)}`);if(q==null)throw new Dt(`missing choices[${w}].tool_calls[${S}].type -${k$(o)}`);if(Y==null)throw new Dt(`missing choices[${w}].tool_calls[${S}].function.name -${k$(o)}`);if(K==null)throw new Dt(`missing choices[${w}].tool_calls[${S}].function.arguments -${k$(o)}`);return{...ee,id:se,type:q,function:{...X,name:Y,arguments:K}}})}}:{...C,message:{...P,content:E,role:N,refusal:$.refusal??null},finish_reason:y,index:w,logprobs:T}}),created:a,model:c,object:"chat.completion",...h?{system_fingerprint:h}:{}};return HB(b,n)}function k$(o){return JSON.stringify(o)}class Sv extends Mf{static fromReadableStream(n){const s=new Sv(null);return s._run(()=>s._fromReadableStream(n)),s}static runTools(n,s,i){const a=new Sv(s),c={...i,headers:{...i==null?void 0:i.headers,"X-Stainless-Helper-Method":"runTools"}};return a._run(()=>a._runTools(n,s,c)),a}}let Ww=class extends Pt{constructor(){super(...arguments),this.messages=new gE(this._client)}create(n,s){return this._client.post("/chat/completions",{body:n,...s,stream:n.stream??!1})}retrieve(n,s){return this._client.get(Xe`/chat/completions/${n}`,s)}update(n,s,i){return this._client.post(Xe`/chat/completions/${n}`,{body:s,...i})}list(n={},s){return this._client.getAPIList("/chat/completions",gs,{query:n,...s})}delete(n,s){return this._client.delete(Xe`/chat/completions/${n}`,s)}parse(n,s){return JB(n.tools),this._client.chat.completions.create(n,{...s,headers:{...s==null?void 0:s.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(i=>zw(i,n))}runTools(n,s){return n.stream?Sv.runTools(this._client,n,s):Uw.runTools(this._client,n,s)}stream(n,s){return Mf.createChatCompletion(this._client,n,s)}};Ww.Messages=gE;class Hw extends Pt{constructor(){super(...arguments),this.completions=new Ww(this._client)}}Hw.Completions=Ww;const ME=Symbol("brand.privateNullableHeaders"),v0=Array.isArray;function*nP(o){if(!o)return;if(ME in o){const{values:i,nulls:a}=o;yield*i.entries();for(const c of a)yield[c,null];return}let n=!1,s;o instanceof Headers?s=o.entries():v0(o)?s=o:(n=!0,s=Object.entries(o??{}));for(let i of s){const a=i[0];if(typeof a!="string")throw new TypeError("expected header name to be a string");const c=v0(i[1])?i[1]:[i[1]];let h=!1;for(const g of c)g!==void 0&&(n&&!h&&(h=!0,yield[a,null]),yield[a,g])}}const _t=o=>{const n=new Headers,s=new Set;for(const i of o){const a=new Set;for(const[c,h]of nP(i)){const g=c.toLowerCase();a.has(g)||(n.delete(c),a.add(g)),h===null?(n.delete(c),s.add(g)):(n.append(c,h),s.delete(g))}}return{[ME]:!0,values:n,nulls:s}};class NE extends Pt{create(n,s){return this._client.post("/audio/speech",{body:n,...s,headers:_t([{Accept:"application/octet-stream"},s==null?void 0:s.headers]),__binaryResponse:!0})}}class LE extends Pt{create(n,s){return this._client.post("/audio/transcriptions",wu({body:n,...s,stream:n.stream??!1,__metadata:{model:n.model}},this._client))}}class BE extends Pt{create(n,s){return this._client.post("/audio/translations",wu({body:n,...s,__metadata:{model:n.model}},this._client))}}class qf extends Pt{constructor(){super(...arguments),this.transcriptions=new LE(this._client),this.translations=new BE(this._client),this.speech=new NE(this._client)}}qf.Transcriptions=LE;qf.Translations=BE;qf.Speech=NE;class PE extends Pt{create(n,s){return this._client.post("/batches",{body:n,...s})}retrieve(n,s){return this._client.get(Xe`/batches/${n}`,s)}list(n={},s){return this._client.getAPIList("/batches",gs,{query:n,...s})}cancel(n,s){return this._client.post(Xe`/batches/${n}/cancel`,s)}}class jE extends Pt{create(n,s){return this._client.post("/assistants",{body:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}retrieve(n,s){return this._client.get(Xe`/assistants/${n}`,{...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}update(n,s,i){return this._client.post(Xe`/assistants/${n}`,{body:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}list(n={},s){return this._client.getAPIList("/assistants",gs,{query:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}delete(n,s){return this._client.delete(Xe`/assistants/${n}`,{...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}}class FE extends Pt{create(n,s){return this._client.post("/realtime/sessions",{body:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}}class zE extends Pt{create(n,s){return this._client.post("/realtime/transcription_sessions",{body:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}}class Zv extends Pt{constructor(){super(...arguments),this.sessions=new FE(this._client),this.transcriptionSessions=new zE(this._client)}}Zv.Sessions=FE;Zv.TranscriptionSessions=zE;class UE extends Pt{create(n,s,i){return this._client.post(Xe`/threads/${n}/messages`,{body:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}retrieve(n,s,i){const{thread_id:a}=s;return this._client.get(Xe`/threads/${a}/messages/${n}`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}update(n,s,i){const{thread_id:a,...c}=s;return this._client.post(Xe`/threads/${a}/messages/${n}`,{body:c,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}list(n,s={},i){return this._client.getAPIList(Xe`/threads/${n}/messages`,gs,{query:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}delete(n,s,i){const{thread_id:a}=s;return this._client.delete(Xe`/threads/${a}/messages/${n}`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}}class WE extends Pt{retrieve(n,s,i){const{thread_id:a,run_id:c,...h}=s;return this._client.get(Xe`/threads/${a}/runs/${c}/steps/${n}`,{query:h,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}list(n,s,i){const{thread_id:a,...c}=s;return this._client.getAPIList(Xe`/threads/${a}/runs/${n}/steps`,gs,{query:c,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}}const sP=o=>{if(typeof Buffer<"u"){const n=Buffer.from(o,"base64");return Array.from(new Float32Array(n.buffer,n.byteOffset,n.length/Float32Array.BYTES_PER_ELEMENT))}else{const n=atob(o),s=n.length,i=new Uint8Array(s);for(let a=0;a{var n,s,i,a;if(typeof globalThis.process<"u")return((n=u_==null?void 0:u_[o])==null?void 0:n.trim())??void 0;if(typeof globalThis.Deno<"u")return(a=(i=(s=globalThis.Deno.env)==null?void 0:s.get)==null?void 0:i.call(s,o))==null?void 0:a.trim()};var Hs,fu,tw,Ho,z$,lo,mu,Th,gu,Tv,ri,U$,W$,kf,bf,$f,y0,_0,w0,C0,S0,T0,k0;class Ef extends jw{constructor(){super(...arguments),Hs.add(this),tw.set(this,[]),Ho.set(this,{}),z$.set(this,{}),lo.set(this,void 0),mu.set(this,void 0),Th.set(this,void 0),gu.set(this,void 0),Tv.set(this,void 0),ri.set(this,void 0),U$.set(this,void 0),W$.set(this,void 0),kf.set(this,void 0)}[(tw=new WeakMap,Ho=new WeakMap,z$=new WeakMap,lo=new WeakMap,mu=new WeakMap,Th=new WeakMap,gu=new WeakMap,Tv=new WeakMap,ri=new WeakMap,U$=new WeakMap,W$=new WeakMap,kf=new WeakMap,Hs=new WeakSet,Symbol.asyncIterator)](){const n=[],s=[];let i=!1;return this.on("event",a=>{const c=s.shift();c?c.resolve(a):n.push(a)}),this.on("end",()=>{i=!0;for(const a of s)a.resolve(void 0);s.length=0}),this.on("abort",a=>{i=!0;for(const c of s)c.reject(a);s.length=0}),this.on("error",a=>{i=!0;for(const c of s)c.reject(a);s.length=0}),{next:async()=>n.length?{value:n.shift(),done:!1}:i?{value:void 0,done:!0}:new Promise((c,h)=>s.push({resolve:c,reject:h})).then(c=>c?{value:c,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(n){const s=new fu;return s._run(()=>s._fromReadableStream(n)),s}async _fromReadableStream(n,s){var c;const i=s==null?void 0:s.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort())),this._connected();const a=Ko.fromReadableStream(n,this.controller);for await(const h of a)$e(this,Hs,"m",bf).call(this,h);if((c=a.controller.signal)!=null&&c.aborted)throw new xi;return this._addRun($e(this,Hs,"m",$f).call(this))}toReadableStream(){return new Ko(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(n,s,i,a){const c=new fu;return c._run(()=>c._runToolAssistantStream(n,s,i,{...a,headers:{...a==null?void 0:a.headers,"X-Stainless-Helper-Method":"stream"}})),c}async _createToolAssistantStream(n,s,i,a){var b;const c=a==null?void 0:a.signal;c&&(c.aborted&&this.controller.abort(),c.addEventListener("abort",()=>this.controller.abort()));const h={...i,stream:!0},g=await n.submitToolOutputs(s,h,{...a,signal:this.controller.signal});this._connected();for await(const $ of g)$e(this,Hs,"m",bf).call(this,$);if((b=g.controller.signal)!=null&&b.aborted)throw new xi;return this._addRun($e(this,Hs,"m",$f).call(this))}static createThreadAssistantStream(n,s,i){const a=new fu;return a._run(()=>a._threadAssistantStream(n,s,{...i,headers:{...i==null?void 0:i.headers,"X-Stainless-Helper-Method":"stream"}})),a}static createAssistantStream(n,s,i,a){const c=new fu;return c._run(()=>c._runAssistantStream(n,s,i,{...a,headers:{...a==null?void 0:a.headers,"X-Stainless-Helper-Method":"stream"}})),c}currentEvent(){return $e(this,U$,"f")}currentRun(){return $e(this,W$,"f")}currentMessageSnapshot(){return $e(this,lo,"f")}currentRunStepSnapshot(){return $e(this,kf,"f")}async finalRunSteps(){return await this.done(),Object.values($e(this,Ho,"f"))}async finalMessages(){return await this.done(),Object.values($e(this,z$,"f"))}async finalRun(){if(await this.done(),!$e(this,mu,"f"))throw Error("Final run was not received.");return $e(this,mu,"f")}async _createThreadAssistantStream(n,s,i){var g;const a=i==null?void 0:i.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort()));const c={...s,stream:!0},h=await n.createAndRun(c,{...i,signal:this.controller.signal});this._connected();for await(const b of h)$e(this,Hs,"m",bf).call(this,b);if((g=h.controller.signal)!=null&&g.aborted)throw new xi;return this._addRun($e(this,Hs,"m",$f).call(this))}async _createAssistantStream(n,s,i,a){var b;const c=a==null?void 0:a.signal;c&&(c.aborted&&this.controller.abort(),c.addEventListener("abort",()=>this.controller.abort()));const h={...i,stream:!0},g=await n.create(s,h,{...a,signal:this.controller.signal});this._connected();for await(const $ of g)$e(this,Hs,"m",bf).call(this,$);if((b=g.controller.signal)!=null&&b.aborted)throw new xi;return this._addRun($e(this,Hs,"m",$f).call(this))}static accumulateDelta(n,s){for(const[i,a]of Object.entries(s)){if(!n.hasOwnProperty(i)){n[i]=a;continue}let c=n[i];if(c==null){n[i]=a;continue}if(i==="index"||i==="type"){n[i]=a;continue}if(typeof c=="string"&&typeof a=="string")c+=a;else if(typeof c=="number"&&typeof a=="number")c+=a;else if(n_(c)&&n_(a))c=this.accumulateDelta(c,a);else if(Array.isArray(c)&&Array.isArray(a)){if(c.every(h=>typeof h=="string"||typeof h=="number")){c.push(...a);continue}for(const h of a){if(!n_(h))throw new Error(`Expected array delta entry to be an object but got: ${h}`);const g=h.index;if(g==null)throw console.error(h),new Error("Expected array delta entry to have an `index` property");if(typeof g!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${g}`);const b=c[g];b==null?c.push(h):c[g]=this.accumulateDelta(b,h)}continue}else throw Error(`Unhandled record type: ${i}, deltaValue: ${a}, accValue: ${c}`);n[i]=c}return n}_addRun(n){return n}async _threadAssistantStream(n,s,i){return await this._createThreadAssistantStream(s,n,i)}async _runAssistantStream(n,s,i,a){return await this._createAssistantStream(s,n,i,a)}async _runToolAssistantStream(n,s,i,a){return await this._createToolAssistantStream(s,n,i,a)}}fu=Ef,bf=function(n){if(!this.ended)switch(Mt(this,U$,n),$e(this,Hs,"m",w0).call(this,n),n.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":$e(this,Hs,"m",k0).call(this,n);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":$e(this,Hs,"m",_0).call(this,n);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":$e(this,Hs,"m",y0).call(this,n);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},$f=function(){if(this.ended)throw new Dt("stream has ended, this shouldn't happen");if(!$e(this,mu,"f"))throw Error("Final run has not been received");return $e(this,mu,"f")},y0=function(n){const[s,i]=$e(this,Hs,"m",S0).call(this,n,$e(this,lo,"f"));Mt(this,lo,s),$e(this,z$,"f")[s.id]=s;for(const a of i){const c=s.content[a.index];(c==null?void 0:c.type)=="text"&&this._emit("textCreated",c.text)}switch(n.event){case"thread.message.created":this._emit("messageCreated",n.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",n.data.delta,s),n.data.delta.content)for(const a of n.data.delta.content){if(a.type=="text"&&a.text){let c=a.text,h=s.content[a.index];if(h&&h.type=="text")this._emit("textDelta",c,h.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(a.index!=$e(this,Th,"f")){if($e(this,gu,"f"))switch($e(this,gu,"f").type){case"text":this._emit("textDone",$e(this,gu,"f").text,$e(this,lo,"f"));break;case"image_file":this._emit("imageFileDone",$e(this,gu,"f").image_file,$e(this,lo,"f"));break}Mt(this,Th,a.index)}Mt(this,gu,s.content[a.index])}break;case"thread.message.completed":case"thread.message.incomplete":if($e(this,Th,"f")!==void 0){const a=n.data.content[$e(this,Th,"f")];if(a)switch(a.type){case"image_file":this._emit("imageFileDone",a.image_file,$e(this,lo,"f"));break;case"text":this._emit("textDone",a.text,$e(this,lo,"f"));break}}$e(this,lo,"f")&&this._emit("messageDone",n.data),Mt(this,lo,void 0)}},_0=function(n){const s=$e(this,Hs,"m",C0).call(this,n);switch(Mt(this,kf,s),n.event){case"thread.run.step.created":this._emit("runStepCreated",n.data);break;case"thread.run.step.delta":const i=n.data.delta;if(i.step_details&&i.step_details.type=="tool_calls"&&i.step_details.tool_calls&&s.step_details.type=="tool_calls")for(const c of i.step_details.tool_calls)c.index==$e(this,Tv,"f")?this._emit("toolCallDelta",c,s.step_details.tool_calls[c.index]):($e(this,ri,"f")&&this._emit("toolCallDone",$e(this,ri,"f")),Mt(this,Tv,c.index),Mt(this,ri,s.step_details.tool_calls[c.index]),$e(this,ri,"f")&&this._emit("toolCallCreated",$e(this,ri,"f")));this._emit("runStepDelta",n.data.delta,s);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":Mt(this,kf,void 0),n.data.step_details.type=="tool_calls"&&$e(this,ri,"f")&&(this._emit("toolCallDone",$e(this,ri,"f")),Mt(this,ri,void 0)),this._emit("runStepDone",n.data,s);break}},w0=function(n){$e(this,tw,"f").push(n),this._emit("event",n)},C0=function(n){switch(n.event){case"thread.run.step.created":return $e(this,Ho,"f")[n.data.id]=n.data,n.data;case"thread.run.step.delta":let s=$e(this,Ho,"f")[n.data.id];if(!s)throw Error("Received a RunStepDelta before creation of a snapshot");let i=n.data;if(i.delta){const a=fu.accumulateDelta(s,i.delta);$e(this,Ho,"f")[n.data.id]=a}return $e(this,Ho,"f")[n.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":$e(this,Ho,"f")[n.data.id]=n.data;break}if($e(this,Ho,"f")[n.data.id])return $e(this,Ho,"f")[n.data.id];throw new Error("No snapshot available")},S0=function(n,s){let i=[];switch(n.event){case"thread.message.created":return[n.data,i];case"thread.message.delta":if(!s)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let a=n.data;if(a.delta.content)for(const c of a.delta.content)if(c.index in s.content){let h=s.content[c.index];s.content[c.index]=$e(this,Hs,"m",T0).call(this,c,h)}else s.content[c.index]=c,i.push(c);return[s,i];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(s)return[s,i];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},T0=function(n,s){return fu.accumulateDelta(s,n)},k0=function(n){switch(Mt(this,W$,n.data),n.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":Mt(this,mu,n.data),$e(this,ri,"f")&&(this._emit("toolCallDone",$e(this,ri,"f")),Mt(this,ri,void 0));break}};let Vw=class extends Pt{constructor(){super(...arguments),this.steps=new WE(this._client)}create(n,s,i){const{include:a,...c}=s;return this._client.post(Xe`/threads/${n}/runs`,{query:{include:a},body:c,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers]),stream:s.stream??!1})}retrieve(n,s,i){const{thread_id:a}=s;return this._client.get(Xe`/threads/${a}/runs/${n}`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}update(n,s,i){const{thread_id:a,...c}=s;return this._client.post(Xe`/threads/${a}/runs/${n}`,{body:c,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}list(n,s={},i){return this._client.getAPIList(Xe`/threads/${n}/runs`,gs,{query:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}cancel(n,s,i){const{thread_id:a}=s;return this._client.post(Xe`/threads/${a}/runs/${n}/cancel`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}async createAndPoll(n,s,i){const a=await this.create(n,s,i);return await this.poll(a.id,{thread_id:n},i)}createAndStream(n,s,i){return Ef.createAssistantStream(n,this._client.beta.threads.runs,s,i)}async poll(n,s,i){var c;const a=_t([i==null?void 0:i.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((c=i==null?void 0:i.pollIntervalMs)==null?void 0:c.toString())??void 0}]);for(;;){const{data:h,response:g}=await this.retrieve(n,s,{...i,headers:{...i==null?void 0:i.headers,...a}}).withResponse();switch(h.status){case"queued":case"in_progress":case"cancelling":let b=5e3;if(i!=null&&i.pollIntervalMs)b=i.pollIntervalMs;else{const $=g.headers.get("openai-poll-after-ms");if($){const y=parseInt($);isNaN(y)||(b=y)}}await Kf(b);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return h}}}stream(n,s,i){return Ef.createAssistantStream(n,this._client.beta.threads.runs,s,i)}submitToolOutputs(n,s,i){const{thread_id:a,...c}=s;return this._client.post(Xe`/threads/${a}/runs/${n}/submit_tool_outputs`,{body:c,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers]),stream:s.stream??!1})}async submitToolOutputsAndPoll(n,s,i){const a=await this.submitToolOutputs(n,s,i);return await this.poll(a.id,s,i)}submitToolOutputsStream(n,s,i){return Ef.createToolAssistantStream(n,this._client.beta.threads.runs,s,i)}};Vw.Steps=WE;class Qv extends Pt{constructor(){super(...arguments),this.runs=new Vw(this._client),this.messages=new UE(this._client)}create(n={},s){return this._client.post("/threads",{body:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}retrieve(n,s){return this._client.get(Xe`/threads/${n}`,{...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}update(n,s,i){return this._client.post(Xe`/threads/${n}`,{body:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}delete(n,s){return this._client.delete(Xe`/threads/${n}`,{...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}createAndRun(n,s){return this._client.post("/threads/runs",{body:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers]),stream:n.stream??!1})}async createAndRunPoll(n,s){const i=await this.createAndRun(n,s);return await this.runs.poll(i.id,{thread_id:i.thread_id},s)}createAndRunStream(n,s){return Ef.createThreadAssistantStream(n,this._client.beta.threads,s)}}Qv.Runs=Vw;Qv.Messages=UE;class Yf extends Pt{constructor(){super(...arguments),this.realtime=new Zv(this._client),this.assistants=new jE(this._client),this.threads=new Qv(this._client)}}Yf.Realtime=Zv;Yf.Assistants=jE;Yf.Threads=Qv;class HE extends Pt{create(n,s){return this._client.post("/completions",{body:n,...s,stream:n.stream??!1})}}class VE extends Pt{retrieve(n,s,i){const{container_id:a}=s;return this._client.get(Xe`/containers/${a}/files/${n}/content`,{...i,headers:_t([{Accept:"application/binary"},i==null?void 0:i.headers]),__binaryResponse:!0})}}let Gw=class extends Pt{constructor(){super(...arguments),this.content=new VE(this._client)}create(n,s,i){return this._client.post(Xe`/containers/${n}/files`,wu({body:s,...i},this._client))}retrieve(n,s,i){const{container_id:a}=s;return this._client.get(Xe`/containers/${a}/files/${n}`,i)}list(n,s={},i){return this._client.getAPIList(Xe`/containers/${n}/files`,gs,{query:s,...i})}delete(n,s,i){const{container_id:a}=s;return this._client.delete(Xe`/containers/${a}/files/${n}`,{...i,headers:_t([{Accept:"*/*"},i==null?void 0:i.headers])})}};Gw.Content=VE;class Kw extends Pt{constructor(){super(...arguments),this.files=new Gw(this._client)}create(n,s){return this._client.post("/containers",{body:n,...s})}retrieve(n,s){return this._client.get(Xe`/containers/${n}`,s)}list(n={},s){return this._client.getAPIList("/containers",gs,{query:n,...s})}delete(n,s){return this._client.delete(Xe`/containers/${n}`,{...s,headers:_t([{Accept:"*/*"},s==null?void 0:s.headers])})}}Kw.Files=Gw;class GE extends Pt{create(n,s){const i=!!n.encoding_format;let a=i?n.encoding_format:"base64";i&&dr(this._client).debug("embeddings/user defined encoding_format:",n.encoding_format);const c=this._client.post("/embeddings",{body:{...n,encoding_format:a},...s});return i?c:(dr(this._client).debug("embeddings/decoding base64 embeddings from base64"),c._thenUnwrap(h=>(h&&h.data&&h.data.forEach(g=>{const b=g.embedding;g.embedding=sP(b)}),h)))}}class KE extends Pt{retrieve(n,s,i){const{eval_id:a,run_id:c}=s;return this._client.get(Xe`/evals/${a}/runs/${c}/output_items/${n}`,i)}list(n,s,i){const{eval_id:a,...c}=s;return this._client.getAPIList(Xe`/evals/${a}/runs/${n}/output_items`,gs,{query:c,...i})}}class Jw extends Pt{constructor(){super(...arguments),this.outputItems=new KE(this._client)}create(n,s,i){return this._client.post(Xe`/evals/${n}/runs`,{body:s,...i})}retrieve(n,s,i){const{eval_id:a}=s;return this._client.get(Xe`/evals/${a}/runs/${n}`,i)}list(n,s={},i){return this._client.getAPIList(Xe`/evals/${n}/runs`,gs,{query:s,...i})}delete(n,s,i){const{eval_id:a}=s;return this._client.delete(Xe`/evals/${a}/runs/${n}`,i)}cancel(n,s,i){const{eval_id:a}=s;return this._client.post(Xe`/evals/${a}/runs/${n}`,i)}}Jw.OutputItems=KE;class qw extends Pt{constructor(){super(...arguments),this.runs=new Jw(this._client)}create(n,s){return this._client.post("/evals",{body:n,...s})}retrieve(n,s){return this._client.get(Xe`/evals/${n}`,s)}update(n,s,i){return this._client.post(Xe`/evals/${n}`,{body:s,...i})}list(n={},s){return this._client.getAPIList("/evals",gs,{query:n,...s})}delete(n,s){return this._client.delete(Xe`/evals/${n}`,s)}}qw.Runs=Jw;let JE=class extends Pt{create(n,s){return this._client.post("/files",wu({body:n,...s},this._client))}retrieve(n,s){return this._client.get(Xe`/files/${n}`,s)}list(n={},s){return this._client.getAPIList("/files",gs,{query:n,...s})}delete(n,s){return this._client.delete(Xe`/files/${n}`,s)}content(n,s){return this._client.get(Xe`/files/${n}/content`,{...s,headers:_t([{Accept:"application/binary"},s==null?void 0:s.headers]),__binaryResponse:!0})}async waitForProcessing(n,{pollInterval:s=5e3,maxWait:i=30*60*1e3}={}){const a=new Set(["processed","error","deleted"]),c=Date.now();let h=await this.retrieve(n);for(;!h.status||!a.has(h.status);)if(await Kf(s),h=await this.retrieve(n),Date.now()-c>i)throw new Bw({message:`Giving up on waiting for file ${n} to finish processing after ${i} milliseconds.`});return h}};class qE extends Pt{}let YE=class extends Pt{run(n,s){return this._client.post("/fine_tuning/alpha/graders/run",{body:n,...s})}validate(n,s){return this._client.post("/fine_tuning/alpha/graders/validate",{body:n,...s})}};class Yw extends Pt{constructor(){super(...arguments),this.graders=new YE(this._client)}}Yw.Graders=YE;class XE extends Pt{create(n,s,i){return this._client.getAPIList(Xe`/fine_tuning/checkpoints/${n}/permissions`,Xv,{body:s,method:"post",...i})}retrieve(n,s={},i){return this._client.get(Xe`/fine_tuning/checkpoints/${n}/permissions`,{query:s,...i})}delete(n,s,i){const{fine_tuned_model_checkpoint:a}=s;return this._client.delete(Xe`/fine_tuning/checkpoints/${a}/permissions/${n}`,i)}}let Xw=class extends Pt{constructor(){super(...arguments),this.permissions=new XE(this._client)}};Xw.Permissions=XE;class ZE extends Pt{list(n,s={},i){return this._client.getAPIList(Xe`/fine_tuning/jobs/${n}/checkpoints`,gs,{query:s,...i})}}class Zw extends Pt{constructor(){super(...arguments),this.checkpoints=new ZE(this._client)}create(n,s){return this._client.post("/fine_tuning/jobs",{body:n,...s})}retrieve(n,s){return this._client.get(Xe`/fine_tuning/jobs/${n}`,s)}list(n={},s){return this._client.getAPIList("/fine_tuning/jobs",gs,{query:n,...s})}cancel(n,s){return this._client.post(Xe`/fine_tuning/jobs/${n}/cancel`,s)}listEvents(n,s={},i){return this._client.getAPIList(Xe`/fine_tuning/jobs/${n}/events`,gs,{query:s,...i})}pause(n,s){return this._client.post(Xe`/fine_tuning/jobs/${n}/pause`,s)}resume(n,s){return this._client.post(Xe`/fine_tuning/jobs/${n}/resume`,s)}}Zw.Checkpoints=ZE;class Mh extends Pt{constructor(){super(...arguments),this.methods=new qE(this._client),this.jobs=new Zw(this._client),this.checkpoints=new Xw(this._client),this.alpha=new Yw(this._client)}}Mh.Methods=qE;Mh.Jobs=Zw;Mh.Checkpoints=Xw;Mh.Alpha=Yw;class QE extends Pt{}class Qw extends Pt{constructor(){super(...arguments),this.graderModels=new QE(this._client)}}Qw.GraderModels=QE;class eI extends Pt{createVariation(n,s){return this._client.post("/images/variations",wu({body:n,...s},this._client))}edit(n,s){return this._client.post("/images/edits",wu({body:n,...s},this._client))}generate(n,s){return this._client.post("/images/generations",{body:n,...s})}}class tI extends Pt{retrieve(n,s){return this._client.get(Xe`/models/${n}`,s)}list(n){return this._client.getAPIList("/models",Xv,n)}delete(n,s){return this._client.delete(Xe`/models/${n}`,s)}}class nI extends Pt{create(n,s){return this._client.post("/moderations",{body:n,...s})}}function rP(o,n){return!n||!oP(n)?{...o,output_parsed:null,output:o.output.map(s=>s.type==="function_call"?{...s,parsed_arguments:null}:s.type==="message"?{...s,content:s.content.map(i=>({...i,parsed:null}))}:s)}:sI(o,n)}function sI(o,n){const s=o.output.map(a=>{if(a.type==="function_call")return{...a,parsed_arguments:cP(n,a)};if(a.type==="message"){const c=a.content.map(h=>h.type==="output_text"?{...h,parsed:iP(n,h.text)}:h);return{...a,content:c}}return a}),i=Object.assign({},o,{output:s});return Object.getOwnPropertyDescriptor(o,"output_text")||rI(i),Object.defineProperty(i,"output_parsed",{enumerable:!0,get(){for(const a of i.output)if(a.type==="message"){for(const c of a.content)if(c.type==="output_text"&&c.parsed!==null)return c.parsed}return null}}),i}function iP(o,n){var s,i,a,c;return((i=(s=o.text)==null?void 0:s.format)==null?void 0:i.type)!=="json_schema"?null:"$parseRaw"in((a=o.text)==null?void 0:a.format)?((c=o.text)==null?void 0:c.format).$parseRaw(n):JSON.parse(n)}function oP(o){var n;return!!Fw((n=o.text)==null?void 0:n.format)}function aP(o){return(o==null?void 0:o.$brand)==="auto-parseable-tool"}function lP(o,n){return o.find(s=>s.type==="function"&&s.name===n)}function cP(o,n){const s=lP(o.tools??[],n.name);return{...n,...n,parsed_arguments:aP(s)?s.$parseRaw(n.arguments):s!=null&&s.strict?JSON.parse(n.arguments):null}}function rI(o){const n=[];for(const s of o.output)if(s.type==="message")for(const i of s.content)i.type==="output_text"&&n.push(i.text);o.output_text=n.join("")}var vh,E$,Jl,I$,E0,I0,x0,D0;class eC extends jw{constructor(n){super(),vh.add(this),E$.set(this,void 0),Jl.set(this,void 0),I$.set(this,void 0),Mt(this,E$,n)}static createResponse(n,s,i){const a=new eC(s);return a._run(()=>a._createOrRetrieveResponse(n,s,{...i,headers:{...i==null?void 0:i.headers,"X-Stainless-Helper-Method":"stream"}})),a}async _createOrRetrieveResponse(n,s,i){var g;const a=i==null?void 0:i.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort())),$e(this,vh,"m",E0).call(this);let c,h=null;"response_id"in s?(c=await n.responses.retrieve(s.response_id,{stream:!0},{...i,signal:this.controller.signal,stream:!0}),h=s.starting_after??null):c=await n.responses.create({...s,stream:!0},{...i,signal:this.controller.signal}),this._connected();for await(const b of c)$e(this,vh,"m",I0).call(this,b,h);if((g=c.controller.signal)!=null&&g.aborted)throw new xi;return $e(this,vh,"m",x0).call(this)}[(E$=new WeakMap,Jl=new WeakMap,I$=new WeakMap,vh=new WeakSet,E0=function(){this.ended||Mt(this,Jl,void 0)},I0=function(s,i){if(this.ended)return;const a=(h,g)=>{(i==null||g.sequence_number>i)&&this._emit(h,g)},c=$e(this,vh,"m",D0).call(this,s);switch(a("event",s),s.type){case"response.output_text.delta":{const h=c.output[s.output_index];if(!h)throw new Dt(`missing output at index ${s.output_index}`);if(h.type==="message"){const g=h.content[s.content_index];if(!g)throw new Dt(`missing content at index ${s.content_index}`);if(g.type!=="output_text")throw new Dt(`expected content to be 'output_text', got ${g.type}`);a("response.output_text.delta",{...s,snapshot:g.text})}break}case"response.function_call_arguments.delta":{const h=c.output[s.output_index];if(!h)throw new Dt(`missing output at index ${s.output_index}`);h.type==="function_call"&&a("response.function_call_arguments.delta",{...s,snapshot:h.arguments});break}default:a(s.type,s);break}},x0=function(){if(this.ended)throw new Dt("stream has ended, this shouldn't happen");const s=$e(this,Jl,"f");if(!s)throw new Dt("request ended without sending any events");Mt(this,Jl,void 0);const i=uP(s,$e(this,E$,"f"));return Mt(this,I$,i),i},D0=function(s){let i=$e(this,Jl,"f");if(!i){if(s.type!=="response.created")throw new Dt(`When snapshot hasn't been set yet, expected 'response.created' event, got ${s.type}`);return i=Mt(this,Jl,s.response),i}switch(s.type){case"response.output_item.added":{i.output.push(s.item);break}case"response.content_part.added":{const a=i.output[s.output_index];if(!a)throw new Dt(`missing output at index ${s.output_index}`);a.type==="message"&&a.content.push(s.part);break}case"response.output_text.delta":{const a=i.output[s.output_index];if(!a)throw new Dt(`missing output at index ${s.output_index}`);if(a.type==="message"){const c=a.content[s.content_index];if(!c)throw new Dt(`missing content at index ${s.content_index}`);if(c.type!=="output_text")throw new Dt(`expected content to be 'output_text', got ${c.type}`);c.text+=s.delta}break}case"response.function_call_arguments.delta":{const a=i.output[s.output_index];if(!a)throw new Dt(`missing output at index ${s.output_index}`);a.type==="function_call"&&(a.arguments+=s.delta);break}case"response.completed":{Mt(this,Jl,s.response);break}}return i},Symbol.asyncIterator)](){const n=[],s=[];let i=!1;return this.on("event",a=>{const c=s.shift();c?c.resolve(a):n.push(a)}),this.on("end",()=>{i=!0;for(const a of s)a.resolve(void 0);s.length=0}),this.on("abort",a=>{i=!0;for(const c of s)c.reject(a);s.length=0}),this.on("error",a=>{i=!0;for(const c of s)c.reject(a);s.length=0}),{next:async()=>n.length?{value:n.shift(),done:!1}:i?{value:void 0,done:!0}:new Promise((c,h)=>s.push({resolve:c,reject:h})).then(c=>c?{value:c,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const n=$e(this,I$,"f");if(!n)throw new Dt("stream ended without producing a ChatCompletion");return n}}function uP(o,n){return rP(o,n)}class iI extends Pt{list(n,s={},i){return this._client.getAPIList(Xe`/responses/${n}/input_items`,gs,{query:s,...i})}}class tC extends Pt{constructor(){super(...arguments),this.inputItems=new iI(this._client)}create(n,s){return this._client.post("/responses",{body:n,...s,stream:n.stream??!1})._thenUnwrap(i=>("object"in i&&i.object==="response"&&rI(i),i))}retrieve(n,s={},i){return this._client.get(Xe`/responses/${n}`,{query:s,...i,stream:(s==null?void 0:s.stream)??!1})}delete(n,s){return this._client.delete(Xe`/responses/${n}`,{...s,headers:_t([{Accept:"*/*"},s==null?void 0:s.headers])})}parse(n,s){return this._client.responses.create(n,s)._thenUnwrap(i=>sI(i,n))}stream(n,s){return eC.createResponse(this._client,n,s)}cancel(n,s){return this._client.post(Xe`/responses/${n}/cancel`,s)}}tC.InputItems=iI;class oI extends Pt{create(n,s,i){return this._client.post(Xe`/uploads/${n}/parts`,wu({body:s,...i},this._client))}}class nC extends Pt{constructor(){super(...arguments),this.parts=new oI(this._client)}create(n,s){return this._client.post("/uploads",{body:n,...s})}cancel(n,s){return this._client.post(Xe`/uploads/${n}/cancel`,s)}complete(n,s,i){return this._client.post(Xe`/uploads/${n}/complete`,{body:s,...i})}}nC.Parts=oI;const dP=async o=>{const n=await Promise.allSettled(o),s=n.filter(a=>a.status==="rejected");if(s.length){for(const a of s)console.error(a.reason);throw new Error(`${s.length} promise(s) failed - see the above errors`)}const i=[];for(const a of n)a.status==="fulfilled"&&i.push(a.value);return i};class aI extends Pt{create(n,s,i){return this._client.post(Xe`/vector_stores/${n}/file_batches`,{body:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}retrieve(n,s,i){const{vector_store_id:a}=s;return this._client.get(Xe`/vector_stores/${a}/file_batches/${n}`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}cancel(n,s,i){const{vector_store_id:a}=s;return this._client.post(Xe`/vector_stores/${a}/file_batches/${n}/cancel`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}async createAndPoll(n,s,i){const a=await this.create(n,s);return await this.poll(n,a.id,i)}listFiles(n,s,i){const{vector_store_id:a,...c}=s;return this._client.getAPIList(Xe`/vector_stores/${a}/file_batches/${n}/files`,gs,{query:c,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}async poll(n,s,i){var c;const a=_t([i==null?void 0:i.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((c=i==null?void 0:i.pollIntervalMs)==null?void 0:c.toString())??void 0}]);for(;;){const{data:h,response:g}=await this.retrieve(s,{vector_store_id:n},{...i,headers:a}).withResponse();switch(h.status){case"in_progress":let b=5e3;if(i!=null&&i.pollIntervalMs)b=i.pollIntervalMs;else{const $=g.headers.get("openai-poll-after-ms");if($){const y=parseInt($);isNaN(y)||(b=y)}}await Kf(b);break;case"failed":case"cancelled":case"completed":return h}}}async uploadAndPoll(n,{files:s,fileIds:i=[]},a){if(s==null||s.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const c=(a==null?void 0:a.maxConcurrency)??5,h=Math.min(c,s.length),g=this._client,b=s.values(),$=[...i];async function y(T){for(let C of T){const E=await g.files.create({file:C,purpose:"assistants"},a);$.push(E.id)}}const w=Array(h).fill(b).map(y);return await dP(w),await this.createAndPoll(n,{file_ids:$})}}class lI extends Pt{create(n,s,i){return this._client.post(Xe`/vector_stores/${n}/files`,{body:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}retrieve(n,s,i){const{vector_store_id:a}=s;return this._client.get(Xe`/vector_stores/${a}/files/${n}`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}update(n,s,i){const{vector_store_id:a,...c}=s;return this._client.post(Xe`/vector_stores/${a}/files/${n}`,{body:c,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}list(n,s={},i){return this._client.getAPIList(Xe`/vector_stores/${n}/files`,gs,{query:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}delete(n,s,i){const{vector_store_id:a}=s;return this._client.delete(Xe`/vector_stores/${a}/files/${n}`,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}async createAndPoll(n,s,i){const a=await this.create(n,s,i);return await this.poll(n,a.id,i)}async poll(n,s,i){var c;const a=_t([i==null?void 0:i.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((c=i==null?void 0:i.pollIntervalMs)==null?void 0:c.toString())??void 0}]);for(;;){const h=await this.retrieve(s,{vector_store_id:n},{...i,headers:a}).withResponse(),g=h.data;switch(g.status){case"in_progress":let b=5e3;if(i!=null&&i.pollIntervalMs)b=i.pollIntervalMs;else{const $=h.response.headers.get("openai-poll-after-ms");if($){const y=parseInt($);isNaN(y)||(b=y)}}await Kf(b);break;case"failed":case"completed":return g}}}async upload(n,s,i){const a=await this._client.files.create({file:s,purpose:"assistants"},i);return this.create(n,{file_id:a.id},i)}async uploadAndPoll(n,s,i){const a=await this.upload(n,s,i);return await this.poll(n,a.id,i)}content(n,s,i){const{vector_store_id:a}=s;return this._client.getAPIList(Xe`/vector_stores/${a}/files/${n}/content`,Xv,{...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}}class ey extends Pt{constructor(){super(...arguments),this.files=new lI(this._client),this.fileBatches=new aI(this._client)}create(n,s){return this._client.post("/vector_stores",{body:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}retrieve(n,s){return this._client.get(Xe`/vector_stores/${n}`,{...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}update(n,s,i){return this._client.post(Xe`/vector_stores/${n}`,{body:s,...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}list(n={},s){return this._client.getAPIList("/vector_stores",gs,{query:n,...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}delete(n,s){return this._client.delete(Xe`/vector_stores/${n}`,{...s,headers:_t([{"OpenAI-Beta":"assistants=v2"},s==null?void 0:s.headers])})}search(n,s,i){return this._client.getAPIList(Xe`/vector_stores/${n}/search`,Xv,{body:s,method:"post",...i,headers:_t([{"OpenAI-Beta":"assistants=v2"},i==null?void 0:i.headers])})}}ey.Files=lI;ey.FileBatches=aI;var sC,H$;class hn{constructor({baseURL:n=af("OPENAI_BASE_URL"),apiKey:s=af("OPENAI_API_KEY"),organization:i=af("OPENAI_ORG_ID")??null,project:a=af("OPENAI_PROJECT_ID")??null,...c}={}){if(H$.set(this,void 0),this.completions=new HE(this),this.chat=new Hw(this),this.embeddings=new GE(this),this.files=new JE(this),this.images=new eI(this),this.audio=new qf(this),this.moderations=new nI(this),this.models=new tI(this),this.fineTuning=new Mh(this),this.graders=new Qw(this),this.vectorStores=new ey(this),this.beta=new Yf(this),this.batches=new PE(this),this.uploads=new nC(this),this.responses=new tC(this),this.evals=new qw(this),this.containers=new Kw(this),s===void 0)throw new Dt("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const h={apiKey:s,organization:i,project:a,...c,baseURL:n||"https://api.openai.com/v1"};if(!h.dangerouslyAllowBrowser&&cB())throw new Dt(`It looks like you're running in a browser-like environment. - -This is disabled by default, as it risks exposing your secret API credentials to attackers. -If you understand the risks and have appropriate mitigations in place, -you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g., - -new OpenAI({ apiKey, dangerouslyAllowBrowser: true }); - -https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety -`);this.baseURL=h.baseURL,this.timeout=h.timeout??sC.DEFAULT_TIMEOUT,this.logger=h.logger??console;const g="warn";this.logLevel=g,this.logLevel=a0(h.logLevel,"ClientOptions.logLevel",this)??a0(af("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??g,this.fetchOptions=h.fetchOptions,this.maxRetries=h.maxRetries??2,this.fetch=h.fetch??gB(),Mt(this,H$,mB),this._options=h,this.apiKey=s,this.organization=i,this.project=a}withOptions(n){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,...n})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:n,nulls:s}){}authHeaders(n){return _t([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(n){return kB(n,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${_h}`}defaultIdempotencyKey(){return`stainless-node-retry-${Hk()}`}makeStatusError(n,s,i,a){return Vs.generate(n,s,i,a)}buildURL(n,s){const i=nB(n)?new URL(n):new URL(this.baseURL+(this.baseURL.endsWith("/")&&n.startsWith("/")?n.slice(1):n)),a=this.defaultQuery();return rB(a)||(s={...a,...s}),typeof s=="object"&&s&&!Array.isArray(s)&&(i.search=this.stringifyQuery(s)),i.toString()}async prepareOptions(n){}async prepareRequest(n,{url:s,options:i}){}get(n,s){return this.methodRequest("get",n,s)}post(n,s){return this.methodRequest("post",n,s)}patch(n,s){return this.methodRequest("patch",n,s)}put(n,s){return this.methodRequest("put",n,s)}delete(n,s){return this.methodRequest("delete",n,s)}methodRequest(n,s,i){return this.request(Promise.resolve(i).then(a=>({method:n,path:s,...a})))}request(n,s=null){return new Yv(this,this.makeRequest(n,s,void 0))}async makeRequest(n,s,i){var P,N;const a=await n,c=a.maxRetries??this.maxRetries;s==null&&(s=c),await this.prepareOptions(a);const{req:h,url:g,timeout:b}=this.buildRequest(a,{retryCount:c-s});await this.prepareRequest(h,{url:g,options:a});const $="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),y=i===void 0?"":`, retryOf: ${i}`,w=Date.now();if(dr(this).debug(`[${$}] sending request`,hu({retryOfRequestLogID:i,method:a.method,url:g,options:a,headers:h.headers})),(P=a.signal)!=null&&P.aborted)throw new xi;const T=new AbortController,C=await this.fetchWithTimeout(g,h,b,T).catch(V_),E=Date.now();if(C instanceof Error){const B=`retrying, ${s} attempts remaining`;if((N=a.signal)!=null&&N.aborted)throw new xi;const S=H_(C)||/timed? ?out/i.test(String(C)+("cause"in C?String(C.cause):""));if(s)return dr(this).info(`[${$}] connection ${S?"timed out":"failed"} - ${B}`),dr(this).debug(`[${$}] connection ${S?"timed out":"failed"} (${B})`,hu({retryOfRequestLogID:i,url:g,durationMs:E-w,message:C.message})),this.retryRequest(a,s,i??$);throw dr(this).info(`[${$}] connection ${S?"timed out":"failed"} - error; no more retries left`),dr(this).debug(`[${$}] connection ${S?"timed out":"failed"} (error; no more retries left)`,hu({retryOfRequestLogID:i,url:g,durationMs:E-w,message:C.message})),S?new Bw:new Jv({cause:C})}const k=[...C.headers.entries()].filter(([B])=>B==="x-request-id").map(([B,S])=>", "+B+": "+JSON.stringify(S)).join(""),A=`[${$}${y}${k}] ${h.method} ${g} ${C.ok?"succeeded":"failed"} with status ${C.status} in ${E-w}ms`;if(!C.ok){const B=this.shouldRetry(C);if(s&&B){const K=`retrying, ${s} attempts remaining`;return await fB(C.body),dr(this).info(`${A} - ${K}`),dr(this).debug(`[${$}] response error (${K})`,hu({retryOfRequestLogID:i,url:C.url,status:C.status,headers:C.headers,durationMs:E-w})),this.retryRequest(a,s,i??$,C.headers)}const S=B?"error; no more retries left":"error; not retryable";dr(this).info(`${A} - ${S}`);const H=await C.text().catch(K=>V_(K).message),q=aB(H),se=q?void 0:H;throw dr(this).debug(`[${$}] response error (${S})`,hu({retryOfRequestLogID:i,url:C.url,status:C.status,headers:C.headers,message:se,durationMs:Date.now()-w})),this.makeStatusError(C.status,q,se,C.headers)}return dr(this).info(A),dr(this).debug(`[${$}] response start`,hu({retryOfRequestLogID:i,url:C.url,status:C.status,headers:C.headers,durationMs:E-w})),{response:C,options:a,controller:T,requestLogID:$,retryOfRequestLogID:i,startTime:w}}getAPIList(n,s,i){return this.requestAPIList(s,{method:"get",path:n,...i})}requestAPIList(n,s){const i=this.makeRequest(s,null,void 0);return new MB(this,i,n)}async fetchWithTimeout(n,s,i,a){const{signal:c,method:h,...g}=s||{};c&&c.addEventListener("abort",()=>a.abort());const b=setTimeout(()=>a.abort(),i),$=globalThis.ReadableStream&&g.body instanceof globalThis.ReadableStream||typeof g.body=="object"&&g.body!==null&&Symbol.asyncIterator in g.body,y={signal:a.signal,...$?{duplex:"half"}:{},method:"GET",...g};h&&(y.method=h.toUpperCase());try{return await this.fetch.call(void 0,n,y)}finally{clearTimeout(b)}}shouldRetry(n){const s=n.headers.get("x-should-retry");return s==="true"?!0:s==="false"?!1:n.status===408||n.status===409||n.status===429||n.status>=500}async retryRequest(n,s,i,a){let c;const h=a==null?void 0:a.get("retry-after-ms");if(h){const b=parseFloat(h);Number.isNaN(b)||(c=b)}const g=a==null?void 0:a.get("retry-after");if(g&&!c){const b=parseFloat(g);Number.isNaN(b)?c=Date.parse(g)-Date.now():c=b*1e3}if(!(c&&0<=c&&c<60*1e3)){const b=n.maxRetries??this.maxRetries;c=this.calculateDefaultRetryTimeoutMillis(s,b)}return await Kf(c),this.makeRequest(n,s-1,i)}calculateDefaultRetryTimeoutMillis(n,s){const c=s-n,h=Math.min(.5*Math.pow(2,c),8),g=1-Math.random()*.25;return h*g*1e3}buildRequest(n,{retryCount:s=0}={}){const i={...n},{method:a,path:c,query:h}=i,g=this.buildURL(c,h);"timeout"in i&&oB("timeout",i.timeout),i.timeout=i.timeout??this.timeout;const{bodyHeaders:b,body:$}=this.buildBody({options:i}),y=this.buildHeaders({options:n,method:a,bodyHeaders:b,retryCount:s});return{req:{method:a,headers:y,...i.signal&&{signal:i.signal},...globalThis.ReadableStream&&$ instanceof globalThis.ReadableStream&&{duplex:"half"},...$&&{body:$},...this.fetchOptions??{},...i.fetchOptions??{}},url:g,timeout:i.timeout}}buildHeaders({options:n,method:s,bodyHeaders:i,retryCount:a}){let c={};this.idempotencyHeader&&s!=="get"&&(n.idempotencyKey||(n.idempotencyKey=this.defaultIdempotencyKey()),c[this.idempotencyHeader]=n.idempotencyKey);const h=_t([c,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(a),...n.timeout?{"X-Stainless-Timeout":String(Math.trunc(n.timeout/1e3))}:{},...pB(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},this.authHeaders(n),this._options.defaultHeaders,i,n.headers]);return this.validateHeaders(h),h.values}buildBody({options:{body:n,headers:s}}){if(!n)return{bodyHeaders:void 0,body:void 0};const i=_t([s]);return ArrayBuffer.isView(n)||n instanceof ArrayBuffer||n instanceof DataView||typeof n=="string"&&i.values.has("content-type")||n instanceof Blob||n instanceof FormData||n instanceof URLSearchParams||globalThis.ReadableStream&&n instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:n}:typeof n=="object"&&(Symbol.asyncIterator in n||Symbol.iterator in n&&"next"in n&&typeof n.next=="function")?{bodyHeaders:void 0,body:nE(n)}:$e(this,H$,"f").call(this,{body:n,headers:i})}}sC=hn,H$=new WeakMap;hn.OpenAI=sC;hn.DEFAULT_TIMEOUT=6e5;hn.OpenAIError=Dt;hn.APIError=Vs;hn.APIConnectionError=Jv;hn.APIConnectionTimeoutError=Bw;hn.APIUserAbortError=xi;hn.NotFoundError=Jk;hn.ConflictError=qk;hn.RateLimitError=Xk;hn.BadRequestError=Vk;hn.AuthenticationError=Gk;hn.InternalServerError=Zk;hn.PermissionDeniedError=Kk;hn.UnprocessableEntityError=Yk;hn.toFile=FB;hn.Completions=HE;hn.Chat=Hw;hn.Embeddings=GE;hn.Files=JE;hn.Images=eI;hn.Audio=qf;hn.Moderations=nI;hn.Models=tI;hn.FineTuning=Mh;hn.Graders=Qw;hn.VectorStores=ey;hn.Beta=Yf;hn.Batches=PE;hn.Uploads=nC;hn.Responses=tC;hn.Evals=qw;hn.Containers=Kw;const hP=px(()=>import("./docs-BrInh2Pn.js"),[],import.meta.url);let x$=null;async function pP(o){if(x$)return x$;const n=await o.getObjectViewSystem("state","","香"),s=await o.getObjectViewSystem("channel","","香"),i=await o.getObjectViewSystem("device","","香"),a=await o.getObjectViewSystem("folder","","香"),c=await o.getObjectViewSystem("enum","","香");return x$=Object.assign(n,s,i,a,c),x$}function yh(o,n){return o&&typeof o=="object"?o[n]||o.en:o||""}async function gP(o){var E,k,A,P;const n=I.I18n.getLanguage(),s=await pP(o),i=Object.keys(s).sort(),a=new ex,c=[],h=["UNREACH_STICKY"],g=[tx.Types.info],b=[],$=[],y=[],w=[];i.forEach(N=>{var B,S,H;((B=s[N])==null?void 0:B.type)==="enum"?b.push(N):(H=(S=s[N])==null?void 0:S.common)!=null&&H.smartName&&w.push(N)}),b.forEach(N=>{N.startsWith("enum.rooms.")?$.push(N):N.startsWith("enum.functions.")&&y.push(N);const B=s[N].common.members;B!=null&&B.length&&B.forEach(S=>{s[S]&&(w.includes(S)||w.push(S))})});const T={id:"",objects:s,_keysOptional:i,_usedIdsOptional:c,ignoreIndicators:h,excludedTypes:g},C=[];w.forEach(N=>{T.id=N;const B=a.detect(T);B&&B.forEach(S=>{var W;const H=(W=S.states.find(te=>te.id))==null?void 0:W.id;if(!H||C.find(te=>te.id===H))return;const q=s[H],se={id:H,name:yh(q.common.name,n),type:q.type,deviceType:S.type,states:S.states.filter(te=>te.id).map(te=>({id:te.id,name:te.name,role:te.defaultRole,type:s[te.id].common.type,unit:s[te.id].common.unit,read:s[te.id].common.read===void 0?!0:s[te.id].common.read,write:s[te.id].common.write===void 0?!0:s[te.id].common.write}))},ee=H.split(".");let K,Y;(q.type==="channel"||q.type==="state")&&(ee.pop(),K=ee.join("."),s[K]&&(s[K].type==="channel"||s[K].type==="folder")?(ee.pop(),Y=ee.join("."),(!s[Y]||s[Y].type!=="device"&&s[K].type!=="folder")&&(Y=void 0)):K=void 0);const X=$.find(te=>{var ke,Z,ze;return(ke=s[te].common.members)!=null&&ke.includes(H)||K&&((Z=s[te].common.members)!=null&&Z.includes(K))?!0:Y&&((ze=s[te].common.members)==null?void 0:ze.includes(Y))});X&&(se.room=yh(s[X].common.name,n));const ce=y.find(te=>{var ke,Z,ze;return(ke=s[te].common.members)!=null&&ke.includes(H)||K&&((Z=s[te].common.members)!=null&&Z.includes(K))?!0:Y&&((ze=s[te].common.members)==null?void 0:ze.includes(Y))});ce&&(se.function=yh(s[ce].common.name,n)),C.push(se)})});for(let N=0;N(await hP).default,mP={ru:"Russian",en:"English",de:"German",es:"Spanish",fr:"French",it:"Italian",pl:"Polish",nl:"Dutch",pt:"Portuguese",uk:"Ukrainian","zh-cn":"Chinese"};function bP(){return f.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 2406 2406",children:[f.jsx("path",{d:"M1 578.4C1 259.5 259.5 1 578.4 1h1249.1c319 0 577.5 258.5 577.5 577.4V2406H578.4C259.5 2406 1 2147.5 1 1828.6V578.4z",fill:"#74aa9c"}),f.jsx("path",{d:"M1107.3 299.1c-198 0-373.9 127.3-435.2 315.3C544.8 640.6 434.9 720.2 370.5 833c-99.3 171.4-76.6 386.9 56.4 533.8-41.1 123.1-27 257.7 38.6 369.2 98.7 172 297.3 260.2 491.6 219.2 86.1 97 209.8 152.3 339.6 151.8 198 0 373.9-127.3 435.3-315.3 127.5-26.3 237.2-105.9 301-218.5 99.9-171.4 77.2-386.9-55.8-533.9v-.6c41.1-123.1 27-257.8-38.6-369.8-98.7-171.4-297.3-259.6-491-218.6-86.6-96.8-210.5-151.8-340.3-151.2zm0 117.5-.6.6c79.7 0 156.3 27.5 217.6 78.4-2.5 1.2-7.4 4.3-11 6.1L952.8 709.3c-18.4 10.4-29.4 30-29.4 51.4V1248l-155.1-89.4V755.8c-.1-187.1 151.6-338.9 339-339.2zm434.2 141.9c121.6-.2 234 64.5 294.7 169.8 39.2 68.6 53.9 148.8 40.4 226.5-2.5-1.8-7.3-4.3-10.4-6.1l-360.4-208.2c-18.4-10.4-41-10.4-59.4 0L1024 984.2V805.4L1372.7 604c51.3-29.7 109.5-45.4 168.8-45.5zM650 743.5v427.9c0 21.4 11 40.4 29.4 51.4l421.7 243-155.7 90L597.2 1355c-162-93.8-217.4-300.9-123.8-462.8C513.1 823.6 575.5 771 650 743.5zm807.9 106 348.8 200.8c162.5 93.7 217.6 300.6 123.8 462.8l.6.6c-39.8 68.6-102.4 121.2-176.5 148.2v-428c0-21.4-11-41-29.4-51.4l-422.3-243.7 155-89.3zM1201.7 997l177.8 102.8v205.1l-177.8 102.8-177.8-102.8v-205.1L1201.7 997zm279.5 161.6 155.1 89.4v402.2c0 187.3-152 339.2-339 339.2v-.6c-79.1 0-156.3-27.6-217-78.4 2.5-1.2 8-4.3 11-6.1l360.4-207.5c18.4-10.4 30-30 29.4-51.4l.1-486.8zM1380 1421.9v178.8l-348.8 200.8c-162.5 93.1-369.6 38-463.4-123.7h.6c-39.8-68-54-148.8-40.5-226.5 2.5 1.8 7.4 4.3 10.4 6.1l360.4 208.2c18.4 10.4 41 10.4 59.4 0l421.9-243.7z",fill:"white"})]})}const A0={toolbarButtons:{padding:4,marginLeft:4},fullHeightDialog:{height:"calc(100% - 100px)"}},$P=o=>{const[n,s]=ve.useState(window.localStorage.getItem("openai-question")||""),[i,a]=ve.useState(""),[c,h]=ve.useState(!1),[g,b]=ve.useState(!1),[$,y]=ve.useState(!1),[w,T]=ve.useState(window.localStorage.getItem("openai-model")||"gpt-4o"),[C,E]=ve.useState(!1),k=ve.useRef(null),A=ve.useRef(null),P=ve.useRef(null),N=ve.useCallback(async()=>{var q;let B;k.current?B=k.current:(B=await gP(o.socket),k.current=B,console.log(`devices: ${JSON.stringify(B,null,2)}`));let S;if(A.current)S=A.current;else{const se=Object.keys(o.runningInstances);for(let ee=0;eeW.trim());for(;ce[0]==="";)ce.shift();X=`${ce.map(W=>`// ${W}`).join(` -`)} -${X}`}console.log(K),a(X||"")}catch(se){console.log(JSON.stringify(se)),se.error&&y(se.error.message),console.error(`Cannot request: ${se}, ${JSON.stringify(se.error||se,null,2)}`)}b(!1)},[n,w,o.runningInstances,o.socket]);return f.jsxs(f.Fragment,{children:[f.jsx(D.IconButton,{"aria-label":"AI",title:I.I18n.t("AI code generator"),style:A0.toolbarButtons,size:"medium",onClick:()=>h(!0),children:f.jsx(bP,{})},"ai"),C&&f.jsxs(D.Dialog,{maxWidth:"lg",open:!0,onClose:()=>E(!1),fullWidth:!0,children:[f.jsx(D.DialogTitle,{children:I.I18n.t("No Chat GPT Key found")}),f.jsxs(D.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8},children:[f.jsx("div",{children:I.I18n.t("You have to enter OpenAI API key in the configuration of javascript adapter.")}),f.jsx(D.Button,{variant:"contained",onClick:()=>{const B=Object.keys(o.runningInstances);window.open(`../../#tab-instances/config/${B[0]||"system.adapter.javascript.0"}`,"_blank"),E(!1)},children:I.I18n.t("Open configuration")})]}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{variant:"contained",startIcon:f.jsx(f_,{}),onClick:()=>E(!1),children:I.I18n.t("Close")})})]}),c&&f.jsxs(D.Dialog,{maxWidth:"lg",sx:{"& .MuiDialog-paper":A0.fullHeightDialog},open:!0,onClose:()=>h(!1),fullWidth:!0,children:[f.jsx(D.DialogTitle,{children:I.I18n.t("AI code generator")}),f.jsxs(D.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8,height:"100%"},children:[f.jsx("div",{children:f.jsx(D.TextField,{variant:"standard",multiline:!0,autoFocus:!0,disabled:g,fullWidth:!0,onKeyUp:B=>{B.key==="Enter"&&B.ctrlKey&&N()},label:I.I18n.t("Enter your question"),helperText:I.I18n.t("Press Ctrl+Enter to get the answer"),value:n,onChange:B=>{window.localStorage.setItem("openai-question",B.target.value),s(B.target.value)}})}),f.jsxs("div",{style:{display:"flex",alignItems:"baseline"},children:[f.jsx(D.Button,{variant:"contained",disabled:g||!n,startIcon:f.jsx(YA,{}),onClick:async()=>N(),children:g?f.jsx(D.CircularProgress,{size:24}):I.I18n.t("Ask")}),f.jsxs(D.FormControl,{style:{width:150,marginLeft:20},variant:"standard",children:[f.jsx(D.InputLabel,{children:I.I18n.t("Model")}),f.jsxs(D.Select,{variant:"standard",value:w,onChange:B=>{window.localStorage.setItem("openai-model",B.target.value),$&&y(!1),T(B.target.value)},children:[f.jsx(D.MenuItem,{value:"gpt-4o",children:"GPT-4o"}),f.jsx(D.MenuItem,{value:"gpt-4-turbo",children:"GPT-4 Turbo"}),f.jsx(D.MenuItem,{value:"gpt-4-32k",children:"GPT-4 32k"}),f.jsx(D.MenuItem,{value:"gpt-4",children:"GPT-4"}),f.jsx(D.MenuItem,{value:"gpt-3.5-turbo-16k",children:"GPT-3.5 Turbo"})]})]})]}),f.jsx("div",{children:I.I18n.t("Result")}),f.jsx("div",{style:{height:"calc(100% - 155px)"},children:$?f.jsx("div",{style:{color:o.themeType==="dark"?"#984242":"#bb0000"},children:$}):f.jsx(Gv,{triggerPrettier:1,adapterName:o.adapterName,runningInstances:o.runningInstances,style:{height:"100%",width:"100%",resize:"none"},name:"ai",socket:o.socket,readOnly:!0,checkJs:!0,code:i,isDark:o.themeType==="dark",language:o.language||"javascript"})})]}),f.jsxs(D.DialogActions,{children:[f.jsx(D.Button,{color:"grey",variant:"outlined",disabled:!i,startIcon:f.jsx(ST,{}),onClick:()=>{I.Utils.copyToClipboard(i),window.alert(I.I18n.t("Copied"))},children:I.I18n.t("Copy to clipboard")}),f.jsx(D.Button,{color:"primary",variant:"contained",disabled:!i||$,startIcon:f.jsx(Va,{}),onClick:()=>{o.onAddCode(i),h(!1)},children:I.I18n.t("Use generated code")}),f.jsx(D.Button,{color:"grey",variant:"contained",startIcon:f.jsx(f_,{}),onClick:()=>h(!1),children:I.I18n.t("Close")})]})]})]})},O0={Blockly:_T,"Javascript/js":q$,Rules:CT,def:q$,"TypeScript/ts":wT},vP=48,R0="#02a102",d_="#70aae9",yP=L0[400],_P=B0[400],Et={toolbar:o=>({minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)",backgroundColor:o.palette.mode==="dark"?"#1e1e1e":"#E2E2E2"}),toolbarButtons:{padding:4,marginLeft:4},toolbarButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},editorDiv:o=>({height:`calc(100% - ${(parseInt(o.toolbar.height,10)||48)+38+10}px)`,width:"100%",overflow:"hidden",position:"relative"}),textButton:{marginRight:10,minHeight:24,padding:"6px 16px"},saveButton:{background:"#ff9900"},tabIcon:{width:24,height:24,verticalAlign:"middle",marginBottom:2,marginRight:2,borderRadius:3},hintIcon:{padding:"0 8px 0 8px"},hintButton:{marginTop:8,marginLeft:20},tabMenuButton:{position:"absolute",top:0,right:0},tabChanged:o=>({color:o.palette.secondary.main}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},tabChangedIcon:{color:"#FF0000",fontSize:16,marginLeft:5},closeButton:{marginLeft:5},notRunning:{color:"#ffbc00",marginRight:8,marginLeft:8},tabButton:{minHeight:48},tabButtonWrapper:{display:"inline-block"},menuIcon:{width:18,height:18,borderRadius:2,marginRight:5}};class kh extends We.Component{getSelect=null;cron={initValue:null,callback:null};scriptDialog={initValue:null,callback:null,args:null,isReturn:!1};objects;scripts;selectId={initValue:null,callback:null};confirmCallback=null;constructor(n){super(n);const s=window.localStorage.getItem("Editor.selected")||"",i=window.localStorage.getItem("Editor.editing")||"[]";let a;try{a=JSON.parse(i)}catch{a=[]}s&&!a.includes(s)&&a.push(s),this.state={askAboutDebug:!1,astroEvents:null,blockly:null,changed:{},cmdToBlockly:"",cmdToRules:"",confirm:"",debugEnabled:!1,editing:a,insert:"",instancesLoaded:!1,isTourOpen:window.localStorage.getItem("tour")!=="true",menuDebugAnchorEl:null,menuOpened:!!this.props.menuOpened,menuTabsOpened:!1,triggerPrettier:1,rules:null,runningInstances:this.props.runningInstances||{},searchText:"",selected:s,showAdapterDebug:!1,showAstro:!1,showCompiledCode:!1,showCron:!1,showDebugMenu:!1,showScript:!1,showSelectId:!1,themeType:this.props.themeType,toast:"",tourStep:Ss.selectTriggers,verboseEnabled:!1,visible:n.visible},this.setChangedInAdmin(),window.systemLang=I.I18n.getLanguage(),window.main={objects:{},getObject:(c,h)=>this.props.socket.getObject(c).then(g=>h&&h(null,g)).catch(g=>h&&h(g)),instances:[],selectIdDialog:(c,h,g)=>{typeof h=="function"&&(g=h,h=null),this.selectId.callback=g,this.selectId.initValue=c,this.selectId.type=h,this.setState({showSelectId:!0})},cronDialog:(c,h)=>{this.cron.callback=h,this.cron.initValue=c,this.setState({showCron:!0})},showScriptDialog:(c,h,g,b)=>{this.scriptDialog.callback=b,this.scriptDialog.initValue=c,this.scriptDialog.args=h,this.scriptDialog.isReturn=g||!1,this.setState({showScript:!0})}},this.objects=n.objects,this.scripts={},!this.state.selected&&this.state.editing.length&&Object.assign(this.state,{selected:this.state.editing[0]}),this.getAllAdapterInstances().then(()=>{this.props.onSelectedChange&&this.state.selected&&setTimeout(()=>this.props.onSelectedChange(this.state.selected,this.state.editing),100)})}getAllAdapterInstances(){return this.props.socket.getAdapterInstances(!0).then(n=>{const s={},i=n.map(a=>(s[a._id]=a,a._id));window.main.objects=s,window.main.instances=i,this.setState({instancesLoaded:!0})})}static onInstanceChanged(n,s){if(n)if(!s&&window.main.instances.includes(n)){delete window.main.objects[n];const i=window.main.instances.indexOf(n);window.main.instances.splice(i,1)}else s&&s.type==="instance"&&(window.main.instances.includes(n)||(window.main.instances.push(n),window.main.instances.sort()),window.main.objects[n]=s)}setChangedInAdmin(){const n=Object.keys(this.state.changed).find(s=>this.state.changed[s]);typeof window.parent<"u"&&window.parent&&(window.parent.configNotSaved=!!n)}componentDidMount(){window.addEventListener("beforeunload",this.onBrowserClose,!1),this.props.socket.subscribeObject("system.adapter.*",kh.onInstanceChanged)}componentWillUnmount(){window.removeEventListener("beforeunload",this.onBrowserClose),this.props.socket.unsubscribeObject("system.adapter.*",kh.onInstanceChanged)}onBrowserClose=n=>{const s=Object.keys(this.scripts).find(i=>JSON.stringify(this.scripts[i])!==JSON.stringify(this.props.objects[i].common));if(s){console.log(`Script ${JSON.stringify(this.scripts[s])}`);const i=I.I18n.t("Configuration not saved.");return n=n||window.event,n&&(n.returnValue=i),i}};removeNonExistingScripts(n,s){n=n||this.props,s=s||{};let i=!1;if(this.state.editing&&this.state.editing.find(c=>n&&!n.objects[c])){const c=JSON.parse(JSON.stringify(this.state.editing));for(let h=c.length-1;h>=0;h--)this.objects[c[h]]||(i=!0,c.splice(h,1));i&&(s.editing=c),this.state.selected&&!this.objects[this.state.selected]&&(i=!0,s.selected=c[0]||"",s.selected&&this.scripts[s.selected]&&(this.state.blockly!==(this.scripts[s.selected].engineType==="Blockly")&&(s.blockly=this.scripts[s.selected].engineType==="Blockly",i=!0),this.state.rules!==(this.scripts[s.selected].engineType==="Rules")&&(s.rules=this.scripts[s.selected].engineType==="Rules",i=!0),this.state.verboseEnabled!==this.scripts[s.selected].verbose&&(s.verboseEnabled=this.scripts[s.selected].verbose,i=!0),this.state.debugEnabled!==this.scripts[s.selected].debug&&(s.debugEnabled=this.scripts[s.selected].debug,i=!0)))}return i}UNSAFE_componentWillReceiveProps(n){var a,c;const s={};let i=!1;if(JSON.stringify(n.runningInstances)!==JSON.stringify(this.state.runningInstances)&&(i=!0,s.runningInstances=n.runningInstances),this.state.menuOpened!==n.menuOpened&&(s.menuOpened=n.menuOpened,i=!0),this.state.themeType!==n.themeType&&(s.themeType=n.themeType,i=!0),this.removeNonExistingScripts(n,s)&&(i=!0),this.state.searchText!==n.searchText&&(s.searchText=n.searchText,i=!0),this.objects!==n.objects){this.objects=n.objects,window.main.objects=n.objects,Object.keys(this.scripts).forEach(g=>{const b=this.scripts[g].source;this.scripts[g]=JSON.parse(JSON.stringify(this.objects[g].common)),this.scripts[g].source=b}),this.state.selected&&this.objects[this.state.selected]&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.objects[this.state.selected].common)),this.state.blockly!==(this.scripts[this.state.selected].engineType==="Blockly")&&(s.blockly=this.scripts[this.state.selected].engineType==="Blockly",i=!0),this.state.rules!==(this.scripts[this.state.selected].engineType==="Rules")&&(s.rules=this.scripts[this.state.selected].engineType==="Rules",i=!0),this.state.verboseEnabled!==this.scripts[this.state.selected].verbose&&(s.verboseEnabled=this.scripts[this.state.selected].verbose,i=!0),this.state.debugEnabled!==this.scripts[this.state.selected].debug&&(s.debugEnabled=this.scripts[this.state.selected].debug,i=!0));const h=JSON.parse(JSON.stringify(this.state.editing));for(let g=h.length-1;g>=0;g--)this.objects[h[g]]||(i=!0,h.splice(g,1),this.state.changed[h[g]]!==void 0&&(s.changed=s.changed||JSON.parse(JSON.stringify(this.state.changed)),s.changed&&delete s.changed[h[g]]));this.state.selected&&!this.objects[this.state.selected]&&(s.selected=h[0]||""),i&&(s.editing=h)}else for(const h in this.scripts)if(Object.prototype.hasOwnProperty.call(this.scripts,h)){if((a=this.objects[h])!=null&&a.common){if(this.objects[h].type==="script"){const g=this.scripts[h].source,b=JSON.parse(JSON.stringify(this.scripts[h]));b.source=this.objects[h].common.source,JSON.stringify(b)!==JSON.stringify(this.objects[h].common)&&(this.scripts[h]=JSON.parse(JSON.stringify(this.objects[h].common)),this.scripts[h].source=g),g!==this.objects[h].common.source?this.state.changed[h]?(c=this.objects[h].from)!=null&&c.startsWith("system.adapter.javascript.")&&(this.objects[h].from="system.adapter.admin.0",this.setState({toast:I.I18n.t("Script %s was modified on disk.",h.split(".").pop())})):this.scripts[h].source=this.objects[h].common.source:this.state.changed[h]&&(s.changed=s.changed||JSON.parse(JSON.stringify(this.state.changed)),s.changed&&(s.changed[h]=!1),i=!0)}}else if(this.scripts[h]&&(delete this.scripts[h],this.state.selected===h)){if(this.state.editing.indexOf(h)!==-1){const g=JSON.parse(JSON.stringify(this.state.editing)),b=g.indexOf(h);b!==-1&&(g.splice(b,1),s.editing=g,i=!0)}s.selected=this.state.editing[0]||"",i=!0}}if(this.state.selected!==n.selected&&n.selected){n.selected&&(this.scripts[n.selected]=this.scripts[n.selected]||JSON.parse(JSON.stringify(this.props.objects[n.selected].common)));const h=this.props.objects[n.selected]&&this.props.objects[n.selected].common,g=h&&JSON.stringify(this.scripts[n.selected])!==JSON.stringify(h),b=JSON.parse(JSON.stringify(this.state.editing));n.selected&&b.indexOf(n.selected)===-1&&(b.push(n.selected),this.props.onSelectedChange(n.selected,b),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(b))),i=!0,s.changed=s.changed||JSON.parse(JSON.stringify(this.state.changed)),s.changed&&(s.changed[n.selected]=g),s.editing=b,s.selected=n.selected,s.blockly=this.scripts[n.selected].engineType==="Blockly",s.rules=this.scripts[n.selected].engineType==="Rules",s.verboseEnabled=this.scripts[n.selected].verbose,s.debugEnabled=this.scripts[n.selected].debug,s.showCompiledCode=!1}this.state.visible!==n.visible&&(i=!0,s.visible=n.visible),i&&this.setState(s,()=>this.setChangedInAdmin())}onRestart(){this.props.onRestart&&this.props.onRestart(this.state.selected)}onStartStop(){const n=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));n.enabled=!n.enabled,this.props.onChange&&this.props.onChange(this.state.selected,n)}onSave(){if(this.state.isTourOpen&&this.state.tourStep===Ss.saveTheScript&&(this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true")),this.state.changed[this.state.selected]){const n=JSON.parse(JSON.stringify(this.state.changed));n[this.state.selected]=!1,this.setState({changed:n},()=>{this.setChangedInAdmin(),this.props.onChange&&this.props.onChange(this.state.selected,this.scripts[this.state.selected])})}}onSaveAll(){const n=JSON.parse(JSON.stringify(this.state.changed));Object.keys(n).forEach(s=>{n[s]&&(n[s]=!1,this.props.onChange&&this.props.onChange(s,this.scripts[s]))}),this.setState({changed:n},()=>this.setChangedInAdmin())}onCancel(){this.scripts[this.state.selected]=JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));const n=JSON.parse(JSON.stringify(this.state.changed));n[this.state.selected]=!1,this.setState({changed:n},()=>this.setChangedInAdmin())}onRegisterSelect(n){this.getSelect=n}onConvertBlockly2JS(){this.showConfirmDialog(I.I18n.t("It will not be possible to revert this operation."),n=>{if(n){this.scripts[this.state.selected].engineType="Javascript/js";const i=this.scripts[this.state.selected].source.split(` -`);i.pop(),this.scripts[this.state.selected].source=i.join(` -`);const a=this.state.selected,c=JSON.parse(JSON.stringify(this.state.changed));c[this.state.selected]=!0,this.setState({changed:c,blockly:!1,selected:""},()=>{this.setChangedInAdmin(),setTimeout(()=>this.setState({selected:a}),100)})}})}onChange(n){n=n||{},n&&(n.script!==void 0&&(this.scripts[this.state.selected].source=n.script),n.debug!==void 0&&(this.scripts[this.state.selected].debug=n.debug),n.verbose!==void 0&&(this.scripts[this.state.selected].verbose=n.verbose));const s=JSON.stringify(this.scripts[this.state.selected])!==JSON.stringify(this.props.objects[this.state.selected].common);if(s!==(this.state.changed[this.state.selected]||!1)){const i=JSON.parse(JSON.stringify(this.state.changed));i[this.state.selected]=s,this.objects[this.state.selected].from="system.adapter.admin.0",this.setState({changed:i},()=>this.setChangedInAdmin())}}onTabChange(n){if(this.props.debugMode)return;window.localStorage&&window.localStorage.setItem("Editor.selected",n);const s=this.scripts[n]||this.props.objects[n]&&this.props.objects[n].common;this.setState({selected:n,rules:s.engineType==="Rules",blockly:s.engineType==="Blockly",showCompiledCode:!1,verboseEnabled:s.verbose,debugEnabled:s.debug}),this.props.onSelectedChange&&this.props.onSelectedChange(n,this.state.editing)}isScriptChanged(n){return!!(this.scripts[n]&&this.props.objects[n]&&JSON.stringify(this.scripts[n])!==JSON.stringify(this.props.objects[n].common))}onTabClose(n,s){s==null||s.stopPropagation();const i=this.state.editing.indexOf(n);if(this.state.editing.includes(n))if(this.isScriptChanged(n))this.showConfirmDialog(I.I18n.t("Discard changes for %s",this.props.objects[n].common.name),a=>{a&&(delete this.scripts[n],this.onTabClose(n))});else{const a=JSON.parse(JSON.stringify(this.state.editing));a.splice(i,1);const c={editing:a};if(n===this.state.selected?a.length?i===0||a.length===1?c.selected=a[0]:c.selected=a[i-1]:c.selected="":this.state.selected&&!a.length&&(c.selected=""),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(a)),c.selected!==void 0){c.changed=c.changed||JSON.parse(JSON.stringify(this.state.changed))||{},c.changed&&(c.changed[c.selected]=this.isScriptChanged(c.selected));const h=c.selected&&(this.scripts[c.selected]||this.props.objects[c.selected]&&this.props.objects[c.selected].common);c.blockly=h?h.engineType==="Blockly":!1,c.rules=h?h.engineType==="Rules":!1,c.verboseEnabled=h?h.verbose:!1,c.debugEnabled=h?h.debug:!1,c.showCompiledCode=!1}this.setState(c,()=>{this.setChangedInAdmin(),c.selected!==void 0?(this.props.onSelectedChange&&this.props.onSelectedChange(c.selected,this.state.editing),window.localStorage&&window.localStorage.setItem("Editor.selected",c.selected)):this.props.onSelectedChange&&this.props.onSelectedChange(this.state.selected,this.state.editing)})}}showConfirmDialog(n,s){this.confirmCallback=s,this.setState({confirm:n})}sendCommandToBlockly(n){this.setState({cmdToBlockly:n},()=>setTimeout(()=>this.setState({cmdToBlockly:""}),200))}sendCommandToRules(n){this.setState({cmdToRules:n},()=>setTimeout(()=>this.setState({cmdToRules:""}),200))}static getText(n){return typeof n=="object"?n[I.I18n.getLanguage()]||n.en:n}getScriptFullName(n){const s=n.split(".");s.shift(),s.shift();const i=[];let a="script.js";for(let c=0;cthis.onTabChange(s),indicatorColor:"primary",style:{position:"relative",marginLeft:10,width:this.state.editing.length>1?"calc(100% - 50px)":"100%",display:"inline-block"},textColor:"primary",variant:"scrollable",scrollButtons:"auto",allowScrollButtonsMobile:!0,children:[this.state.editing.map(n=>{if(!this.props.objects[n]){const h=[f.jsx(D.Box,{sx:this.isScriptChanged(n)?Et.tabChanged:void 0,style:Et.tabText,children:n.split(".").pop()},"text"),f.jsx(D.IconButton,{onClick:g=>this.onTabClose(n,g),style:Et.closeButton,size:"small",component:"span",children:f.jsx(Xl,{})},"icon")];return f.jsx(D.Tab,{wrapped:!0,href:`#${n}`,label:h,value:n,sx:{"& .MuiTab-wrapper":Et.tabButtonWrapper}},n)}let s=kh.getText(this.props.objects[n].common.name)||"";const i=this.getScriptFullName(n);s.length>18&&(s=`${s.substring(0,15)}...`);const a=this.scripts[n]&&this.props.objects[n].common&&this.props.objects[n].common.source!==this.scripts[n].source,c=[f.jsx(D.Box,{sx:this.isScriptChanged(n)?Et.tabChanged:void 0,style:Et.tabText,children:s},"text"),a?f.jsx("span",{style:Et.tabChangedIcon,children:"▣"},"changedSign"):null,!this.props.debugInstance&&(!this.props.debugMode||this.state.selected!==n)&&f.jsx(D.IconButton,{onClick:h=>this.onTabClose(n,h),style:Et.closeButton,size:"small",component:"span",children:f.jsx(Xl,{})},"icon")];return f.jsx(D.Tab,{disabled:!!this.props.debugInstance||this.state.selected!==n&&this.props.debugMode,wrapped:!0,iconPosition:"start",icon:f.jsx("img",{alt:"",src:O0[this.props.objects[n].common.engineType]||O0.def,style:Et.tabIcon},"icon"),href:`#${n}`,label:c,style:Et.tabButton,value:n,title:i,sx:{"& .MuiTab-wrapper":Et.tabButtonWrapper}},n)}),this.props.debugInstance?f.jsx(D.Tab,{disabled:!1,wrapped:!0,href:`#${this.props.debugInstance.adapter}`,label:this.props.debugInstance.adapter,style:Et.tabButton,value:this.props.debugInstance.adapter,title:this.props.debugInstance.adapter,sx:{"& .MuiTab-wrapper":Et.tabButtonWrapper}},this.props.debugInstance.adapter):""]},"tabs1"),this.state.editing.length>1?f.jsx(D.IconButton,{href:"#","aria-label":"Close all but current",style:Et.tabMenuButton,title:I.I18n.t("Close all but current"),"aria-haspopup":"false",onClick:n=>{const s=[this.state.selected];Object.keys(this.scripts).forEach(i=>i!==this.state.selected&&JSON.stringify(this.scripts[i])!==JSON.stringify(this.props.objects[i].common)&&s.push(i)),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(s)),this.setState({menuTabsOpened:!1,editing:s})},size:"medium",children:f.jsx(nx,{})},"menuButton"):null]:f.jsx(D.Box,{sx:Et.toolbar,children:f.jsxs(D.Button,{color:"grey",disabled:!0,style:Et.hintButton,href:"",children:[f.jsx("span",{children:I.I18n.t("Click on this icon")},"select2"),f.jsx(j0,{style:Et.hintIcon},"select3"),f.jsx("span",{children:I.I18n.t("for edit or create script")},"select4")]},"select1")},"tabs2")}getDebugMenu(){return this.state.showDebugMenu?f.jsxs(D.Menu,{id:"menu-debug",anchorEl:this.state.menuDebugAnchorEl,open:this.state.showDebugMenu,onClose:()=>this.setState({showDebugMenu:!1,menuDebugAnchorEl:null}),slotProps:{root:{style:{maxHeight:vP*7.5}}},children:[f.jsxs(D.MenuItem,{title:I.I18n.t("debug_help"),onClick:n=>{n.stopPropagation(),n.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,debugEnabled:!this.state.debugEnabled},()=>this.onChange({debug:this.state.debugEnabled}))},children:[f.jsx(D.Checkbox,{checked:this.state.debugEnabled}),f.jsx(uf,{style:{...Et.menuIcon,color:R0}}),I.I18n.t("debug_label")]},"debugEnabled"),f.jsxs(D.MenuItem,{title:I.I18n.t("verbose_help"),onClick:n=>{n.stopPropagation(),n.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,verboseEnabled:!this.state.verboseEnabled},()=>this.onChange({verbose:this.state.verboseEnabled}))},children:[f.jsx(D.Checkbox,{checked:this.state.verboseEnabled}),f.jsx(HC,{style:{...Et.menuIcon,color:d_}}),I.I18n.t("verbose_label")]},"verboseEnabled")]},"menuDebug"):null}getDebugBadge(){return[this.state.debugEnabled&&this.state.verboseEnabled?f.jsx(uf,{style:{...Et.menuIcon,color:d_}},"DebugVerbose"):null,this.state.debugEnabled&&!this.state.verboseEnabled?f.jsx(uf,{style:{...Et.menuIcon,color:R0}},"DebugNoVerbose"):null,!this.state.debugEnabled&&this.state.verboseEnabled?f.jsx(HC,{style:{...Et.menuIcon,color:d_}},"noDebugVerbose"):null]}getAskAboutDebug(){return this.state.askAboutDebug?f.jsx(I.DialogConfirm,{onClose:()=>{this.setState({askAboutDebug:!1},()=>this.props.onDebugModeChange(!0))},ok:I.I18n.t("Yes"),cancel:I.I18n.t("Cancel"),text:I.I18n.t("The script will be stopped and must be activated manually after debugging. Continue?")}):null}getToolbar(){const n=!!(this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine]),s=!!(this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].enabled);if(this.state.selected){const i=Object.keys(this.state.changed).filter(c=>this.state.changed[c]).length,a=this.state.changed[this.state.selected];return f.jsxs(D.Toolbar,{variant:"dense",sx:Et.toolbar,children:[!this.props.debugInstance&&this.state.menuOpened&&this.props.onLocate&&f.jsx(D.IconButton,{style:Et.toolbarButtons,title:I.I18n.t("Locate file"),onClick:()=>this.props.onLocate(this.state.selected),size:"medium",children:f.jsx(sx,{})},"locate"),!this.props.debugInstance&&!a&&n?f.jsx(D.IconButton,{disabled:this.props.debugMode,style:Et.toolbarButtons,onClick:()=>this.onRestart(),title:I.I18n.t("Restart"),size:"medium",children:f.jsx(H0,{})},"restart"):null,!this.props.debugInstance&&!a?f.jsx(D.IconButton,{disabled:this.props.debugMode,onClick:()=>this.onStartStop(),title:s?I.I18n.t("Pause script"):I.I18n.t("Run script"),size:"medium",style:{...Et.toolbarButtons,color:s?yP:_P},children:s?f.jsx(vf,{}):f.jsx(V$,{})},"start-stop"):null,!this.props.debugInstance&&!a&&!s?f.jsx("span",{style:Et.notRunning,children:I.I18n.t("Script is not running")}):null,!a&&s&&!n?f.jsx("span",{style:Et.notRunning,children:I.I18n.t("Instance is disabled")}):null,a?f.jsx(D.Button,{color:"grey",variant:"contained",style:{...Et.textButton,...Et.saveButton},className:"button-save",onClick:()=>this.onSave(),endIcon:f.jsx(VC,{}),children:I.I18n.t("Save")},"save"):null,i>1||i===1&&!a?f.jsx(D.Button,{color:"grey",variant:"contained",style:Et.textButton,onClick:()=>this.onSaveAll(),endIcon:f.jsx(VC,{}),children:I.I18n.t("Save all")},"saveall"):null,a?f.jsx(D.Button,{color:"grey",variant:"contained",style:Et.textButton,onClick:()=>this.onCancel(),endIcon:f.jsx(Iv,{}),children:I.I18n.t("Cancel")},"cancel"):null,f.jsx("div",{style:{flex:2}}),!this.props.debugInstance&&!this.state.showCompiledCode&&f.jsx(D.IconButton,{style:Et.toolbarButtons,title:I.I18n.t("Prettify the script"),onClick:()=>this.setState({triggerPrettier:this.state.triggerPrettier+1}),size:"medium",children:f.jsx(rx,{})},"prettier"),this.state.blockly&&!this.state.showCompiledCode?f.jsx(D.IconButton,{"aria-label":"Export Blocks",title:I.I18n.t("Export blocks"),style:Et.toolbarButtons,onClick:()=>this.sendCommandToBlockly("export"),size:"medium",children:f.jsx(G$,{})},"export"):null,this.state.blockly&&!this.state.showCompiledCode&&f.jsx(D.IconButton,{"aria-label":"Import Blocks",title:I.I18n.t("Import blocks"),style:Et.toolbarButtons,onClick:()=>this.sendCommandToBlockly("import"),size:"medium",children:f.jsx(m_,{})},"import"),this.state.blockly&&!this.state.showCompiledCode&&f.jsx(D.IconButton,{"aria-label":"Check code",title:I.I18n.t("Check blocks"),style:Et.toolbarButtons,onClick:()=>this.sendCommandToBlockly("check"),size:"medium",children:f.jsx(ix,{})},"check"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode?f.jsx(D.IconButton,{"aria-label":"create CRON",title:I.I18n.t("Create or edit CRON or time wizard"),style:Et.toolbarButtons,onClick:()=>this.setState({showCron:!0}),size:"medium",children:f.jsx(ox,{})},"select-cron"):null,this.scripts[this.state.selected]&&this.scripts[this.state.selected].engineType!=="Blockly"&&this.scripts[this.state.selected].engineType!=="Rules"?f.jsx($P,{adapterName:this.props.adapterName,socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,language:this.scripts[this.state.selected].engineType==="TypeScript/ts"?"typescript":"javascript",onAddCode:c=>this.setState({insert:c})}):null,f.jsx(D.IconButton,{"aria-label":"Show astronomical events",title:I.I18n.t("Show astronomical events"),style:Et.toolbarButtons,disabled:!n,onClick:()=>{this.setState({showAstro:!0,astroEvents:null}),this.props.socket.sendTo(this.scripts[this.state.selected].engine.replace("system.adapter.",""),"calcAstroAll",{}).then(c=>this.setState({astroEvents:c}))},size:"medium",children:f.jsx(ax,{})},"show-astro"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode&&f.jsx(D.IconButton,{"aria-label":"select ID",title:I.I18n.t("Insert object ID"),style:Et.toolbarButtons,onClick:()=>this.setState({showSelectId:!0}),size:"medium",children:f.jsx(lx,{})},"select-id"),this.state.blockly&&!this.state.rules&&this.state.showCompiledCode&&f.jsx(D.Button,{color:"grey","aria-label":"convert to javascript",title:I.I18n.t("Convert blockly to javascript for ever."),onClick:()=>this.onConvertBlockly2JS(),children:"Blockly=>JS"},"convert2js"),this.state.rules&&!this.state.showCompiledCode&&f.jsx(D.IconButton,{"aria-label":"Export Blocks",title:I.I18n.t("Export blocks"),style:Et.toolbarButtons,onClick:()=>this.sendCommandToRules("export"),size:"medium",children:f.jsx(G$,{})},"export"),this.state.rules&&!this.state.showCompiledCode&&f.jsx(D.IconButton,{"aria-label":"Import Blocks",title:I.I18n.t("Import blocks"),style:Et.toolbarButtons,onClick:()=>this.sendCommandToRules("import"),size:"medium",children:f.jsx(m_,{})},"import"),this.props.expertMode&&!a&&(this.props.debugMode||!this.state.blockly&&!this.state.rules||(this.state.blockly||this.state.rules)&&this.state.showCompiledCode)&&f.jsx(D.IconButton,{style:Et.toolbarButtons,color:this.props.debugMode?"primary":"default",disabled:!this.props.debugMode&&!n,onClick:()=>{!this.props.debugMode&&s?this.setState({askAboutDebug:!0}):this.props.onDebugModeChange(!this.props.debugMode)},size:"medium",children:f.jsx(uf,{style:{fontSize:32}})}),(this.state.blockly||this.state.rules)&&f.jsx(D.Button,{"aria-label":"blockly",title:I.I18n.t("Show javascript code"),className:"button-js-code",color:this.state.showCompiledCode?"secondary":"inherit",disabled:this.props.debugMode,style:{...Et.toolbarButtons,...this.props.debugMode?Et.toolbarButtonsDisabled:void 0,padding:"0 5px"},onClick:()=>{this.props.debugMode||(this.setState({showCompiledCode:!this.state.showCompiledCode}),this.state.isTourOpen&&this.state.tourStep===Ss.showJavascript&&this.setState({tourStep:Ss.switchBackToRules}),this.state.isTourOpen&&this.state.tourStep===Ss.switchBackToRules&&this.setState({tourStep:Ss.saveTheScript}))},children:f.jsx("img",{alt:this.state.blockly?"blockly2js":"rules2js",src:this.state.blockly?hM:pM})},"blockly-code"),f.jsx(D.IconButton,{disabled:this.props.debugMode,"aria-label":"Debug menu",title:I.I18n.t("Debug options"),style:Et.toolbarButtons,onClick:c=>this.setState({showDebugMenu:!0,menuDebugAnchorEl:c.currentTarget}),size:"medium",children:f.jsx(D.Badge,{style:Et.badgeMargin,badgeContent:this.getDebugBadge(),children:f.jsx(cx,{})})},"debug")]},"toolbar1")}return null}getScriptEditor(){return!this.props.debugMode&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly!==null&&(!this.state.blockly||this.state.showCompiledCode)&&(!this.state.rules||this.state.showCompiledCode)?(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),f.jsx(D.Box,{sx:Et.editorDiv,children:f.jsx(Gv,{name:this.state.selected,adapterName:this.props.adapterName,insert:this.state.insert,onInserted:()=>this.setState({insert:""}),onForceSave:()=>this.onSave(),searchText:this.state.searchText,onRegisterSelect:n=>this.onRegisterSelect(n),readOnly:this.state.showCompiledCode,changed:this.state.changed[this.state.selected],code:this.scripts[this.state.selected].source||"",isDark:this.state.themeType==="dark",socket:this.props.socket,runningInstances:this.state.runningInstances,triggerPrettier:this.state.triggerPrettier,onChange:n=>this.onChange({script:n}),language:this.scripts[this.state.selected].engineType==="TypeScript/ts"?"typescript":"javascript"},"scriptEditor1")},"scriptEditorDiv")):null}getBlocklyEditor(){return!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly&&!this.state.showCompiledCode&&this.state.visible?(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),f.jsx(D.Box,{sx:Et.editorDiv,children:f.jsx(dn,{command:this.state.cmdToBlockly,themeType:this.state.themeType,searchText:this.state.searchText,code:this.scripts[this.state.selected].source||"",scriptId:this.state.selected,onChange:n=>this.onChange({script:n})},"BlocklyEditor")},"blocklyEditorDiv")):null}getRulesEditor(){var n,s;if(!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.rules&&!this.state.showCompiledCode&&this.state.visible){this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));const i=!!this.state.selected&&!!((n=this.scripts[this.state.selected])!=null&&n.engine)&&this.state.runningInstances[this.scripts[this.state.selected].engine],a=!!this.state.selected&&((s=this.scripts[this.state.selected])==null?void 0:s.enabled);return f.jsx(D.Box,{sx:Et.editorDiv,children:f.jsx(VL,{scriptId:this.state.selected,setTourStep:this.setTourStep,tourStep:this.state.tourStep,isTourOpen:this.state.isTourOpen,changed:this.state.changed[this.state.selected],running:i&&a,command:this.state.cmdToRules,themeType:this.state.themeType,themeName:this.props.themeName,theme:this.props.theme,searchText:this.state.searchText,resizing:this.props.resizing,code:this.scripts[this.state.selected].source||"",onChange:c=>this.onChange({script:c})},"flowEditor")},"flowEditorDiv")}return null}getConfirmDialog(){return this.state.confirm?f.jsx(I.DialogConfirm,{text:this.state.confirm,onClose:n=>{if(this.confirmCallback){const s=this.confirmCallback;this.confirmCallback=null,s(n)}this.setState({confirm:""})}},"dialogConfirm1"):null}getSelectIdDialog(){var n;if(this.state.showSelectId){const s=["state","channel","device","adapter","instance","enum","host","config","script","user","group"],i=["adapter","instance","enum","host","config","script","user","group"];let a=this.selectId.callback?this.selectId.initValue||"":this.getSelect&&this.getSelect()||"",c=a.indexOf("/*");c!==-1&&(a=a.substring(0,c)),c=a.indexOf("//"),c!==-1&&(a=a.substring(0,c));let h=a.match(/"([^"]+)"/);return h&&(a=h[1]),h=a.match(/'([^']+)'/),h&&(a=h[1]),f.jsx(I.DialogSelectID,{theme:this.props.theme,imagePrefix:"../..",themeName:this.props.themeName,themeType:this.state.themeType,socket:this.props.socket,selected:a,expertMode:this.selectId.type&&this.selectId.type!=="all"&&i.includes(this.selectId.type)?!0:void 0,types:((n=this.selectId)==null?void 0:n.type)==="all"?s:[this.selectId.type||"state"],onClose:()=>{this.setState({showSelectId:!1}),this.selectId.callback&&(this.selectId.callback=null)},onOk:(g,b)=>{this.selectId.initValue=null,this.selectId.callback?(this.selectId.callback(g),this.selectId.callback=null):this.setState({insert:`'${g}'/*${b}*/`})}},"dialogSelectID1")}return null}getCronDialog(){return this.state.showCron?f.jsx(I.DialogCron,{theme:this.props.theme,cron:this.cron.callback?this.cron.initValue||"":this.getSelect?this.getSelect():"* * * * *",onClose:()=>this.setState({showCron:!1}),onOk:n=>{this.cron.initValue=null,this.cron.callback?(this.cron.callback(n),this.cron.callback=null):this.setState({insert:`'${n}'`})}},"dialogCron1"):null}getAstroDialog(){return this.state.showAstro?f.jsxs(D.Dialog,{open:!0,onClose:()=>this.setState({showAstro:!1}),children:[f.jsx(D.DialogTitle,{children:I.I18n.t("Astronomical events today")}),f.jsx(D.DialogContent,{children:this.state.astroEvents?f.jsx(D.TableContainer,{component:D.Paper,children:f.jsxs(D.Table,{size:"small",children:[f.jsx(D.TableHead,{children:f.jsxs(D.TableRow,{children:[f.jsx(D.TableCell,{children:I.I18n.t("Name")}),f.jsx(D.TableCell,{children:I.I18n.t("Server time")}),f.jsx(D.TableCell,{children:I.I18n.t("Description")})]})}),f.jsx(D.TableBody,{children:Object.keys(this.state.astroEvents).map(n=>{var s,i,a,c;return f.jsxs(D.TableRow,{children:[f.jsx(D.TableCell,{component:"th",scope:"row",children:n.startsWith("next")?"":n}),f.jsx(D.Tooltip,{title:`${I.I18n.t("Local time")}: ${(s=this.state.astroEvents)!=null&&s[n].isValidDate?new Date((i=this.state.astroEvents)==null?void 0:i[n].date).toLocaleTimeString():"n/a"}`,children:f.jsx(D.TableCell,{align:"right",children:(a=this.state.astroEvents)!=null&&a[n].isValidDate?(c=this.state.astroEvents)==null?void 0:c[n].serverTime:"n/a"})}),f.jsx(D.TableCell,{children:I.I18n.t(n)})]},n)})})]})}):f.jsx(D.LinearProgress,{})}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{variant:"contained",onClick:()=>this.setState({showAstro:!1}),color:"primary",startIcon:f.jsx(Xl,{}),children:I.I18n.t("Close")})})]},"dialogAstro"):null}getEditorDialog(){return this.state.showScript?f.jsx(PM,{adapterName:this.props.adapterName,source:this.scriptDialog.initValue||"",args:this.scriptDialog.args?this.scriptDialog.args.join(", "):"",isReturn:this.scriptDialog.isReturn,socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,onClose:n=>{this.scriptDialog.initValue=null,this.scriptDialog.callback&&(n!==!1&&this.scriptDialog.callback(n||""),this.scriptDialog.callback=null),this.setState({showScript:!1})}},"scriptEditorDialog"):null}getToast(){return f.jsx(D.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!!this.state.toast,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:f.jsx("span",{id:"message-id",children:this.state.toast}),action:[f.jsx(D.IconButton,{"aria-label":"close",color:"inherit",style:Et.closeToast,onClick:()=>this.setState({toast:""}),size:"medium",children:f.jsx(Xl,{})},"close")]},"toast")}setTourStep=n=>this.setState({tourStep:n});getTour(){return this.state.instancesLoaded&&this.state.selected&&this.props.isAnyRulesExists===1&&this.props.objects[this.state.selected]&&this.state.rules&&this.state.visible?f.jsx(Rw,{steps:FN,isOpen:this.state.isTourOpen,onRequestClose:()=>{this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true"),this.props.socket.setState("javascript.0.variables.rulesTour",{val:!0,ack:!0})},goToStep:this.state.tourStep},"tour"):null}getDebug(){return this.props.debugMode?this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine]?f.jsx($v,{runningInstances:this.state.runningInstances,adapterName:this.props.adapterName,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,src:this.props.debugInstance?this.props.debugInstance.adapter:this.state.selected,debugInstance:this.props.debugInstance},"debugger"):(setTimeout(()=>this.props.onDebugModeChange(!1)),null):null}render(){return this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly===null&&this.state.rules===null&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),setTimeout(()=>{const n={blockly:this.scripts[this.state.selected].engineType==="Blockly",rules:this.scripts[this.state.selected].engineType==="Rules",showCompiledCode:!1,debugEnabled:this.scripts[this.state.selected].debug,verboseEnabled:this.scripts[this.state.selected].verbose};this.removeNonExistingScripts(null,n),this.setState(n)},100)),[this.getTabs(),this.getToolbar(),this.getScriptEditor(),this.getAskAboutDebug(),this.getBlocklyEditor(),this.getRulesEditor(),this.getDebug(),this.getConfirmDialog(),this.getSelectIdDialog(),this.getCronDialog(),this.getEditorDialog(),this.getAstroDialog(),this.getDebugMenu(),this.getToast(),this.getTour()]}}const Sr={dialog:{height:"95%"},dropzone:{marginTop:20,width:"100%",borderWidth:5,borderStyle:"dashed",borderColor:"#d0cccc",textAlign:"center",boxSizing:"border-box",paddingTop:45,borderRadius:10,height:"calc(100% - 10px)"},dropzoneDiv:{width:"100%",height:"100%"},dropzoneRejected:{borderColor:"#970000"},dropzoneAccepted:{borderColor:"#17cd02"},icon:{height:"30%",width:"30%",color:"#eeeeee",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:0},iconError:{color:"#ffc3c6"},iconOk:{color:"#aaeebc"},text:{top:"50%",left:"50%",transform:"translate(-50%,-50%)",color:"#868686",position:"absolute",zIndex:1}};class rC extends We.Component{constructor(n){super(n),this.state={error:"",imageStatus:""}}componentDidMount(){setTimeout(()=>{var n;try{(n=window.document.getElementById("import-text-area"))==null||n.focus()}catch{}},100)}handleCancel(){this.props.onClose()}static readFileDataUrl(n,s){const i=new FileReader;i.onload=()=>{s(null,{data:i.result,name:n.name})},i.onabort=()=>{console.error("file reading was aborted"),s(I.I18n.t("file reading was aborted"))},i.onerror=a=>{console.error("file reading has failed"),s(I.I18n.t("file reading has failed: %s",a))},i.readAsDataURL(n)}handleDropFile(n){if(!(n!=null&&n.length))return;const s=n[n.length-1];s&&rC.readFileDataUrl(s,(i,a)=>{var c;i||!a?this.setState({error:i||"No data"}):this.props.onClose(((c=a.data)==null?void 0:c.toString())||"")})}render(){const n={...Sr.dropzone,...this.state.imageStatus==="accepted"?Sr.dropzoneAccepted:this.state.imageStatus==="rejected"?Sr.dropzoneRejected:void 0};return f.jsxs(D.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":Sr.dialog},fullWidth:!0,open:!0,"aria-labelledby":"import-dialog-title",PaperProps:{style:{minHeight:"90%",maxHeight:"90%"}},children:[f.jsx(D.DialogTitle,{id:"import-dialog-title",children:I.I18n.t("Import scripts")}),f.jsxs(D.DialogContent,{children:[f.jsx(U0,{maxSize:5e7,onDrop:(s,i)=>{var a,c,h;s.length?this.handleDropFile(s):window.alert(((h=(c=(a=i==null?void 0:i[0])==null?void 0:a.errors)==null?void 0:c[0])==null?void 0:h.message)||I.I18n.t("ra_Cannot upload"))},multiple:!1,accept:{"application/zip":[],"application/x-zip-compressed":[]},children:({getRootProps:s,getInputProps:i,isDragActive:a,isDragReject:c})=>c?(this.state.imageStatus!=="rejected"&&this.setState({imageStatus:"rejected"}),f.jsxs("div",{style:{...n,...Sr.dropzoneDiv},...s(),children:[f.jsx("input",{...i()}),f.jsx("span",{style:Sr.text,children:I.I18n.t("Some files will be rejected")},"text"),f.jsx(Iv,{style:{...Sr.icon,...Sr.iconError}},"icon")]})):a?(this.state.imageStatus!=="accepted"&&this.setState({imageStatus:"accepted"}),f.jsxs("div",{style:{...n,...Sr.dropzoneDiv},...s(),children:[f.jsx("input",{...i()}),f.jsx("span",{style:Sr.text,children:I.I18n.t("All files will be accepted")},"text"),f.jsx(Ev,{style:{...Sr.icon,...Sr.iconOk}},"icon")]})):(this.state.imageStatus!=="wait"&&this.setState({imageStatus:"wait"}),f.jsxs("div",{style:{...n,...Sr.dropzoneDiv},...s(),children:[f.jsx("input",{...i()}),f.jsx("span",{style:Sr.text,children:I.I18n.t("Drop some files here or click...")},"text"),f.jsx(W0,{style:Sr.icon},"icon")]}))},"image-drop"),this.state.error?f.jsx(Hf,{text:this.state.error,onClose:()=>this.setState({error:""})}):null]}),f.jsx(D.DialogActions,{children:f.jsx(D.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:f.jsx(Jo,{}),children:I.I18n.t("Close")})})]})}}const wP="Acknowledged",CP="Actions",SP="Add",TP="All",kP="Any",EP="Apply",IP="April",xP="Ask",DP="Astronomical",AP="August",OP="Cancel",RP="Close",MP="Condition",NP="Conditions",LP="Console",BP="Copied",PP="December",jP="Default",FP="Delay",zP="Delete",UP="Description",WP="Done",HP="Exec shell",VP="Explanation",GP="Export",KP="Februar",JP="February",qP="Filter",YP="Folder",XP="Fr",ZP="Friday",QP="ID",e2="ID1",t2="ID2",n2="Import",s2="Instance",r2="Instances",i2="Instructions",o2="Januar",a2="January",l2="July",c2="June",u2="Limit",d2="March",h2="May",p2="Menu",g2="Message",f2="Mo",m2="Model",b2="Monday",$2="Month",v2="More",y2="Name",_2="November",w2="OK",C2="October",S2="Ok",T2="Pause",k2="Pushover",E2="Pushsafer",I2="Rename",x2="Repeat",D2="Restart",A2="Result",O2="Sa",R2="Saturday",M2="Save",N2="Schedule",L2="Script",B2="September",P2="Simulate",j2="Stack",F2="Start",z2="State",U2="Su",W2="Sunday",H2="Telegram",V2="Th",G2="Thursday",K2="Time",J2="Triggered",q2="Triggers",Y2="Tu",X2="Tuesday",Z2="URL",Q2="Value",ej="Volume",tj="We",nj="Wednesday",sj="Write",rj="Yes",ij="acknowledgment",oj="all",aj="and",lj="Astro",cj="at",uj="control",dj="copy",hj="CRON",pj="Dawn",gj="This is a special mode in which states and objects will not change. But only information about each planned change will be displayed in the protocol.",fj="Debug",mj="Dusk",bj="easy",$j="every",vj="Function",yj="ID",_j="Name",wj="Role",Cj="Room",Sj="Golden hour",Tj="End of golden hour",kj='The code will be executed only every time when condition is true. E.g. if triggering on the temperature sensor value and the condition is "if temperature is greater than 20°C", the "then" actions will be executed every time when sensor sends the temperature and it is over 20°C. By 21°C, by 22°C and so on.',Ej='The code will be executed only if the condition result changes. E.g. if triggering on the temperature sensor value and the condition is "if temperature is greater than 20°C", the "then" actions will be executed once when temperature is over 20. Next time the "then" actions will be executed when the temperature fails under 20 and then rises over 20 again.',Ij="hours",xj="includes",Dj="interval",Aj="magic",Oj="milliseconds",Rj="minutes",Mj="ms",Nj="Nadir",Lj="Nautical dawn",Bj="Nautical dusk",Pj="Next Sunrise",jj="Next sunset",Fj="Night",zj="Night end",Uj="normal",Wj="offset",Hj="one",Vj="or",Gj="quiet",Kj="search",Jj="seconds",qj="Solar noon",Yj="sunrise",Xj="Sunrise end",Zj="Sunset",Qj="Sunset start",eF="then",tF="Acknowledge",nF="From",sF="Last changed",rF="Quality",iF="Timestamp",oF="User",aF="Value",lF="two",cF="update",uF="Adds debug output to the log for many system commands",dF="Verbose log outputs",hF="when",pF="Wizard",gF={"%s not found":"%s not found","()":"()","(at %s)":"(at %s)","(optional)":"(optional)","-":"-",".":".","AI code generator":"AI code generator",Ack:wP,Actions:CP,"Actual time of day":"Actual time of day",Add:SP,"Add new script":"Add new script",All:TP,"All files will be accepted":"All files will be accepted",Any:kP,"Any month":"Any month",Apply:EP,April:IP,"Are you sure?":"Are you sure?",Ask:xP,Astronomical:DP,"Astronomical events today":"Astronomical events today",August:AP,"Blockly description":"Creating rules by graphic blocks","Body:":"Body:",Cancel:OP,"Cannot delete non empty item!":"Cannot delete non empty item!","Change layout":"Change layout",'Change theme (actual "%s")':'Change theme (now - "%s")',"Check blocks":"Check blocks","Check is not active, because javascript adapter is disabled":"Check is not active, because Javascript adapter is disabled","Clear search input":"Clear search input","Click on this icon":"Click on this icon",Close:RP,"Close all but current":"Close all but current","Collapse all":"Collapse all","Compares current time with astronomical event":"Compares current time with astronomical event","Compares current time with the user specific time":"Compares current time with the user specific time","Compares the state value with user defined value":"Compares the state value with user defined value",Condition:MP,Conditions:NP,"Configuration not saved.":"Configuration not saved.",Console:LP,"Control or update some state":"Control or update some state","Control or update some state with delay":"Control or update some state with delay","Convert blockly to javascript for ever.":"Permanently convert Blockly to Javascript.",Copied:BP,"Copy script":"Copy script","Copy to clipboard":"Copy to clipboard","Create new":"Create new","Create new folder":"Create new folder","Create new script":"Create new script","Create or edit CRON or time wizard":"Create or edit CRON or time wizard","Dark Theme":"Dark theme","Dark style":"Dark style",Date:"Date","Debug instance":"Debug instance","Debug options":"Debug options",December:PP,Default:jP,"Define cron...":"Define cron...","Define schedule...":"Define schedule...",Delay:FP,Delete:zP,"Delete %s":"Delete %s...","Delete folder":"Delete folder","Delete script":"Delete script",Description:UP,"Deselect all":"Deselect all","Discard changes for %s":"Discard changes for %s",Done:WP,"Double click to write value":"Double click to write value","Download as file":"Download as file","Drop some files here or click...":"Drop some files here or click...","Duplicate name":"Duplicate name","Edit script or just double click":"Edit script or just double click","Empty name is not allowed":"Empty name is not allowed","End search mode":"End search mode","Enter your question":"Enter your request",Error:"Error","Error formatting code":"Error formatting code","Error was found":"Error was found","Every day":"Every day",Exec:HP,"Executes some shell command":"Executes some shell command","Existing scripts will be overwritten.":"Existing scripts will be overwritten.","Expand all":"Expand all","Expert mode":"Expert mode",Explanation:VP,Export:GP,"Export all scripts":"Export all scripts","Export blocks":"Export blocks","Export selected blocks":"Export selected blocks",Februar:KP,February:JP,Filter:qP,Folder:YP,Fr:XP,Friday:ZP,Function:"Function","Function editor":"Function editor","Function: executed":"Function: executed","Go to next line":"Go to next line","HTTP Call":"HTTP Call","Hide logs":"Hide logs",ID:QP,ID1:e2,ID2:t2,Import:n2,"Import blocks":"Import blocks","Import error":"Import error","Import scripts":"Import scripts","Insert object ID":"Insert object ID",Instance:s2,"Instance is disabled":"Instance is disabled","Instance:":"Instance:",Instances:r2,Instructions:i2,"Invalid CRON":"Invalid CRON","It will not be possible to revert this operation.":"It will not be possible to revert this operation.","JS description":"Creating rules by writing Javascript",Januar:o2,January:a2,July:l2,June:c2,"Just check":"Just check","Language:":"Language:","Learn More":"Learn More","Light style":"Light style",Limit:u2,"Local time":"Local time","Locate file":"Locate file","Log outputs":"Log outputs","Log text":"Log text","Log: %s":"Log: %s","Make a HTTP get request":"Make a HTTP get request","Make a pause between actions":"Make a pause between actions",March:d2,"March ":"March ",May:h2,Menu:p2,Message:g2,Mo:f2,Model:m2,Monday:b2,Month:$2,More:v2,Name:y2,"No Chat GPT Key found":"No Chat GPT Key found","No active host found":"No active host found","Nothing found":"Nothing found",November:_2,OK:w2,October:C2,Ok:S2,"On condition change":"On condition result change","On script save or adapter start":"On script save or adapter start","On weekdays":"On weekdays","Open configuration":"Open configuration","Operate two states":"Operate two states","Operations with two states":"Operations with two states","Paste your blocks here":"Paste your blocks here",Pause:T2,"Pause execution":"Pause execution","Pause script":"Pause script","Phone:":"Phone:","Please select object ID...":"Please select object ID...","Press Ctrl+Enter to get the answer":"Press Ctrl+Enter to get the answer","Prettify the script":"Prettify the script","Print some text in log":"Print some text in log","Priority:":"Priority:",Pushover:k2,Pushsafer:E2,"Read only ID selected: %s":"Read only ID selected: %s",Rename:I2,"Reorder scripts in folders":"Reorder scripts in folders",Repeat:x2,Restart:D2,Result:A2,"Resume execution":"Resume execution","Root folder":"Root folder","Rules description":"Create rules with IF, THEN, ELSE blocks","Run script":"Run script",Sa:O2,Saturday:R2,Save:M2,"Save all":"Save all","Say It":"Say It","Say some text via sayit adapter":"Say some text via sayit adapter",Schedule:N2,Script:L2,"Script %s was modified on disk":"Script %s was modified on disk","Script is not running":"Script is not running","Search in scripts":"Search in scripts","Search...":"Search...","Select all":"Select all","Send email":"Send email","Sends an email":"Sends an email","Sends message via Pushsafer":"Sends message via Pushsafer","Sends message via pushover":"Sends message via pushover","Sends message via telegram":"Sends message via telegram","Sends message via whatsapp-cmb":"Sends message via whatsapp-cmb",September:B2,"Server time":"Server time","Set state action":"Set state action","Set with delay":"Set with delay","Shell command":"Shell command","Show astronomical events":"Show astronomical events","Show javascript code":"Show Javascript code","Show logs":"Show logs","Show only paused scripts":"Show only paused scripts","Show only running scripts":"Show only running scripts","Show only scripts with problems":"Show only scripts with problems",Simulate:P2,"Some files will be rejected":"Some files will be rejected","Sound:":"Sound:",Stack:j2,Start:F2,"Start script":"Start script",State:z2,"State condition":"State condition","Step into function":"Step into function","Step out from function":"Step out from function","Stop on exception":"Stop on exception",Su:U2,"Subject:":"Subject:",Sunday:W2,"TS description":"Creating rules by writing Typescript",Telegram:H2,"Text:":"Text:",Th:V2,"The script will be stopped and must be activated manually after debugging. Continue?":"The script will be stopped and must be activated manually after debugging. Continue?","This is advances option. You can write your own code here and it will be executed on trigger":"This is advances option. You can write your own code here and it will be executed on trigger",Thursday:G2,Time:K2,"Time condition":"Time condition","Title:":"Title:","To:":"To:","Trigger with value":"Trigger with value",Triggered:J2,Triggers:q2,"Triggers the on script saving or the javascript instance restart":"Triggers the on script saving or the javascript instance restart","Triggers the rule on update or change of some state":"Triggers the rule on update or change of some state","Triggers the rule periodically or on some specific time":"Triggers the rule periodically or on some specific time",Tu:Y2,Tuesday:X2,URL:Z2,"Unknown error":"Unknown error","Unknown error!":"Unknown error!","Use generated code":"Use generated code","User function":"User function","User:":"User:",Value:Q2,"Vibration:":"Vibration:",Volume:ej,We:tj,Wednesday:nj,"Whatsapp-cmb":"Whatsapp-cmb",Write:sj,"Write your own code":"Write your own code",Yes:rj,"Yet exists!":"Yet exists!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"You can use %s in the URL to use current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"You can use %s in the command to use current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"You can use %s in the text to display current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"You can use %s in the value to use the current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You have to enter OpenAI API key in the configuration of javascript adapter.":"You have to enter OpenAI API key in the configuration of javascript adapter.","[equal]":"[equal]","[greater or equal]":"[greater or equal]","[greater]":"[greater]","[hysteresis]":"[hysteresis]","[includes]":"[includes]","[less or equal]":"[less or equal]","[less]":"[less]","[not equal]":"[not equal]",acknowledgment:ij,all:oj,and:aj,astro:lj,at:cj,"clear running":"clear running",control:uj,copy:dj,cron:hj,dawn:pj,debug_help:gj,debug_label:fj,default:"default",dusk:mj,easy:bj,else:"else","equal to":"equal to",every:$j,"every hour at 0 minutes":"every hour at 0 minutes",false:"false","file reading has failed: %s":"file reading has failed: %s","file reading was aborted":"file reading was aborted",filter_func:vj,filter_id:yj,filter_name:_j,filter_role:wj,filter_room:Cj,"for edit or create script":"for edit or create a new script","for professionals":"for professionals","for programmers":"for programmers",goldenHour:Sj,goldenHourEnd:Tj,"greater or equal":"greater or equal","greater or equal to":"greater or equal to","greater than":"greater than",help_just_check:kj,help_on_change:Ej,"high priority":"high priority","high-priority":"high-priority","highest priority":"highest priority",hours:Ij,includes:xj,interval:Dj,"just check":"just check","less or equal":"less or equal","less or equal to":"less or equal to","less than":"less than","lower priority":"lower priority","lowest priority":"lowest priority",magic:Aj,milliseconds:Oj,minutes:Rj,ms:Mj,nadir:Nj,nauticalDawn:Lj,nauticalDusk:Bj,nextSunrise:Pj,nextSunset:jj,night:Fj,nightEnd:zj,"no blocks found":"No blocks found","no group":"NO GROUP",normal:Uj,"normal priority":"normal priority","not equal to":"not equal to","not properly connected":"This block is not properly connected to other blocks.",offset:Wj,"on change":"on change","on condition change":"on condition change","on update":"on update",one:Hj,or:Vj,quiet:Gj,"reset search":"reset search",search:Kj,seconds:Jj,solarNoon:qj,"store in":"store in",sunrise:Yj,sunriseEnd:Xj,sunset:Zj,sunsetStart:Qj,then:eF,"toggle value":"toggle value",tooltip_ack:tF,tooltip_from:nF,tooltip_lc:sF,tooltip_quality:rF,tooltip_ts:iF,tooltip_user:oF,tooltip_value:aF,true:"true",two:lF,undefined:"undefined",update:cF,"use seconds":"use seconds","use trigger value":"use trigger value",verbose_help:uF,verbose_label:dF,when:hF,with:"with","with date":"with date","with offset":"with offset",wizard:pF},fF="Bestätigt",mF="Aktionen",bF="Hinzufügen",$F="Alle",vF="Egal",yF="Anwenden",_F="April",wF="Fragen",CF="Astronomisch",SF="August",TF="Abbrechen",kF="Schließen",EF="Bedingung",IF="Bedingungen",xF="Konsole",DF="Kopiert",AF="Dezember",OF="Standard",RF="Verzögerung",MF="Löschen",NF="Beschreibung",LF="Fertig",BF="Exec shell",PF="Erläuterung",jF="Export",FF="Februar",zF="Februar",UF="Filter",WF="Ordner",HF="Fr",VF="Freitag",GF="ID",KF="ID1",JF="ID2",qF="Import",YF="Instanz",XF="Instanzen",ZF="Anleitung",QF="Januar",ez="Januar",tz="Juli",nz="Juni",sz="Grenze",rz="März",iz="Mai",oz="Menü",az="Nachricht",lz="Mo",cz="Modell",uz="Montag",dz="Monat",hz="Mehr",pz="Name",gz="November",fz="OK",mz="Oktober",bz="Ok",$z="Pause",vz="Pushover",yz="Pushsafer",_z="Umbenennen",wz="Wiederholen",Cz="Neustart",Sz="Ergebnis",Tz="Sa",kz="Samstag",Ez="Speichern",Iz="Zeitplan",xz="Skript",Dz="September",Az="Simulieren",Oz="Stack",Rz="Start",Mz="Zustand",Nz="So",Lz="Sonntag",Bz="Telegram",Pz="Do",jz="Donnerstag",Fz="Zeit",zz="Ausgelöst",Uz="Löst aus",Wz="Di",Hz="Dienstag",Vz="URL",Gz="Wert",Kz="Volumen",Jz="Mi",qz="Mittwoch",Yz="Schreiben",Xz="Ja",Zz="Wissen",Qz="alle",eU="und",tU="Astro",nU="um",sU="Steuerung",rU="Kopie",iU="CRON",oU="Morgendämmerung",aU="Dies ist ein spezieller Modus, in dem sich Zustände und Objekte nicht ändern. Im Protokoll werden jedoch nur Informationen zu jeder geplanten Änderung angezeigt.",lU="Debuggen",cU="Abenddämmerung",uU="einfach",dU="jeder",hU="Funktion",pU="ID",gU="Name",fU="Rolle",mU="Raum",bU="Goldene Abendstunde",$U="Vormittag",vU='Der Code wird jedes Mal ausgeführt, wenn die Bedingung erfüllt ist. z.B. wenn der Temperatur wert sich ändert und die Bedingung "Wenn die Temperatur größer als 20°C ist" lautet, werden die "Dann" -Aktionen jedes Mal ausgeführt, wenn der Sensor die Temperatur sendet und diese über 20°C liegt. Bei 21°C, bei 22°C und so weiter.',yU='Der Code wird nur ausgeführt, wenn sich das Ergebnis der Bedingung ändert. z.B. wenn sich der Temperatur wert ändert und die Bedingung "Wenn die Temperatur größer als 20°C ist" lautet, werden die "Dann" -Aktionen einmal ausgeführt, wenn die Temperatur über 20°C liegt. Das nächste Mal werden die "Dann" -Aktionen ausgeführt, wenn die Temperatur unter 20°C gefallen ist und dann wieder über 20°C ansteigt.',_U="Stunden",wU="beinhaltet",CU="Intervall",SU="Magie",TU="Millisekunden",kU="Minuten",EU="ms",IU="Nadir",xU="nautische Morgendämmerung",DU="nautische Abenddämmerung",AU="Nächster Sonnenaufgang",OU="Nächster Sonnenuntergang",RU="Nacht",MU="astronomische Morgendämmerung",NU="Normal",LU="Versatz",BU="einer",PU="oder",jU="ruhig",FU="Suche",zU="Sekunden",UU="(Nach-)Mittag",WU="Sonnenaufgang",HU="Goldene Morgenstunde",VU="Sonnenuntergang",GU="Sonnenuntergang (Anfang)",KU="dann",JU="Bestätigen",qU="Von",YU="Zuletzt geändert",XU="Qualität",ZU="Zeitstempel",QU="Benutzer",eW="Wert",tW="zwei",nW="Aktualisieren",sW="Fügt Debug-Ausgaben für viele Systembefehle zum Protokoll hinzu",rW="Ausführliche Protokollausgaben",iW="falls",oW="Assistent",aW={"%s not found":"%s nicht gefunden","()":"()","(at %s)":"(um %s)","(optional)":"(optional)","-":"-",".":".","AI code generator":"KI-Codegenerator",Ack:fF,Actions:mF,"Actual time of day":"Tatsächliche Tageszeit",Add:bF,"Add new script":"Neues Skript hinzufügen",All:$F,"All files will be accepted":"Alle Dateien werden akzeptiert",Any:vF,"Any month":"Jeden Monat",Apply:yF,April:_F,"Are you sure?":"Wirklich sicher?",Ask:wF,Astronomical:CF,"Astronomical events today":"Astronomische Ereignisse heute",August:SF,"Blockly description":"Erstellen von Regeln durch Grafikblöcke","Body:":"Körper:",Cancel:TF,"Cannot delete non empty item!":"Kann nicht gelöscht werden, weil noch einige Elementen darin sind!","Change layout":"Layout ändern",'Change theme (actual "%s")':'Thema ändern (jetzt - "%s")',"Check blocks":"Blöcke prüfen","Check is not active, because javascript adapter is disabled":"Syntax-Check ist nicht aktiv, weil der Javascript Adapter nicht aktiv ist.","Clear search input":"Sucheingabe löschen","Click on this icon":"Auf dieses Symbol klicken",Close:kF,"Close all but current":"Alle anderen außer dem Aktiven schließen","Collapse all":"Alles einklappen","Compares current time with astronomical event":"Vergleicht die aktuelle Zeit mit einem astronomischen Ereignis","Compares current time with the user specific time":"Vergleicht die aktuelle Zeit mit der benutzerspezifischen Zeit","Compares the state value with user defined value":"Vergleicht den Zustandswert mit dem benutzerdefinierten Wert",Condition:EF,Conditions:IF,"Configuration not saved.":"Die Konfiguration ist nicht gespeichert.",Console:xF,"Control or update some state":"Zustand steuern oder aktualisieren","Control or update some state with delay":"Zustand mit Verzögerung steuern oder aktualisieren","Convert blockly to javascript for ever.":"Blockly dauerhaft in Javascript konvertieren.",Copied:DF,"Copy script":"Skript kopieren","Copy to clipboard":"In die Zwischenablage kopieren","Create new":"Neu erstellen","Create new folder":"Neuen Ordner erstellen","Create new script":"Neues Skript erstellen","Create or edit CRON or time wizard":"CRON- oder Zeit-Assistenten erstellen oder bearbeiten","Dark Theme":"Dunkles Thema","Dark style":"Dunkler Stil",Date:"Datum","Debug instance":"Debug-Instanz","Debug options":"Debug-Optionen",December:AF,Default:OF,"Define cron...":"Cron definieren ...","Define schedule...":"Zeitplan definieren ...",Delay:RF,Delete:MF,"Delete %s":"Löschen %s...","Delete folder":"Ordner löschen","Delete script":"Skript löschen",Description:NF,"Deselect all":"Alles abwählen","Discard changes for %s":"Änderungen für %s verwerfen",Done:LF,"Double click to write value":"Doppelklick zum Schreiben des Wertes","Download as file":"Download als Datei","Drop some files here or click...":"Dateien hier ablegen oder klicken ...","Duplicate name":"Doppelter Name","Edit script or just double click":"Skript bearbeiten oder einfach doppelklicken","Empty name is not allowed":"Leerer Name ist nicht zulässig","End search mode":"Suchmodus beenden","Enter your question":"Anfrage eingeben",Error:"Fehler","Error formatting code":"Fehler beim Formatieren des Codes","Error was found":"Fehler wurde gefunden","Every day":"Täglich",Exec:BF,"Executes some shell command":"Führt einen Shell-Befehl aus","Existing scripts will be overwritten.":"Vorhandene Skripte werden überschrieben.","Expand all":"Alle erweitern","Expert mode":"Expertenmodus",Explanation:PF,Export:jF,"Export all scripts":"Alle Skripte exportieren","Export blocks":"Blöcke exportieren","Export selected blocks":"Ausgewählte Blöcke exportieren",Februar:FF,February:zF,Filter:UF,Folder:WF,Fr:HF,Friday:VF,Function:"Funktion","Function editor":"Funktions-Editor","Function: executed":"Funktion: ausgeführt","Go to next line":"Gehe zur nächsten Zeile","HTTP Call":"HTTP-Aufruf","Hide logs":"Protokoll ausblenden",ID:GF,ID1:KF,ID2:JF,Import:qF,"Import blocks":"Blöcke importieren","Import error":"Fehler beim Importieren","Import scripts":"Skripte importieren","Insert object ID":"Objekt-ID einfügen",Instance:YF,"Instance is disabled":"Instanz ist deaktiviert","Instance:":"Instanz:",Instances:XF,Instructions:ZF,"Invalid CRON":"Ungültiger CRON","It will not be possible to revert this operation.":"Dieser Vorgang kann nicht rückgängig gemacht werden.","JS description":"Regeln erstellen mit JavaScript",Januar:QF,January:ez,July:tz,June:nz,"Just check":"Einfach überprüfen","Language:":"Sprache:","Learn More":"Mehr erfahren","Light style":"Heller Stil",Limit:sz,"Local time":"Lokale Zeit","Locate file":"Datei zeigen","Log outputs":"Protokoll","Log text":"Protokolltext","Log: %s":"Log: %s","Make a HTTP get request":"Eine HTTP-Abrufanforderung stellen","Make a pause between actions":"Eine Pause zwischen den Aktionen machen",March:rz,"March ":"März ",May:iz,Menu:oz,Message:az,Mo:lz,Model:cz,Monday:uz,Month:dz,More:hz,Name:pz,"No Chat GPT Key found":"Kein Chat-GPT-Schlüssel gefunden","No active host found":"Kein aktiver Host gefunden","Nothing found":"Nichts gefunden",November:gz,OK:fz,October:mz,Ok:bz,"On condition change":"Bei Änderung des Ergebnis der Bedingung","On script save or adapter start":"Beim Speichern des Skripts oder beim Starten des Adapters","On weekdays":"An Wochentagen","Open configuration":"Konfiguration öffnen","Operate two states":"Zwei Zustände operieren","Operations with two states":"Operationen mit zwei Zuständen","Paste your blocks here":"Fügen Sie Ihre Blöcke hier ein",Pause:$z,"Pause execution":"Ausführung pausieren","Pause script":"Skript anhalten","Phone:":"Telefon:","Please select object ID...":"Objekt-ID auswählen ...","Press Ctrl+Enter to get the answer":"Strg+Eingabetaste, um die Antwort zu erhalten","Prettify the script":"Verschönern Sie das Skript","Print some text in log":"Einen Text im Protokoll ausdrucken","Priority:":"Priorität:",Pushover:vz,Pushsafer:yz,"Read only ID selected: %s":"Schreibgeschützte ID ausgewählt: %s",Rename:_z,"Reorder scripts in folders":"Skripte in Ordnern neu ordnen",Repeat:wz,Restart:Cz,Result:Sz,"Resume execution":"Ausführung fortsetzen","Root folder":"Root-Verzeichnis","Rules description":"Regeln erstellen mit WENN-, DANN- und SONST-Blöcken","Run script":"Skript ausführen",Sa:Tz,Saturday:kz,Save:Ez,"Save all":"Alle speichern","Say It":"Say It","Say some text via sayit adapter":"Einen Text über den Sayit-Adapter sagen",Schedule:Iz,Script:xz,"Script %s was modified on disk":'Skript "%s" wurde auf der Festplatte geändert',"Script is not running":"Skript läuft nicht","Search in scripts":"Suche in Skripten","Search...":"Suche...","Select all":"Alles auswählen","Send email":"E-Mail senden","Sends an email":"Sendet eine E-Mail","Sends message via Pushsafer":"Sendet eine Nachricht über Pushsafer","Sends message via pushover":"Sendet eine Nachricht per Pushover","Sends message via telegram":"Sendet eine Nachricht per telegram","Sends message via whatsapp-cmb":"Sendet eine Nachricht über WhatsApp-Cmb",September:Dz,"Server time":"Server-Zeit","Set state action":"Zustand setzten","Set with delay":"Setzen mit Verzögerung","Shell command":"Shell-Befehl","Show astronomical events":"Astronomische Ereignisse anzeigen","Show javascript code":"Javascript-Code zeigen","Show logs":"Protokoll anzeigen","Show only paused scripts":"Nur angehaltene Skripte zeigen","Show only running scripts":"Nur laufende Skripte zeigen","Show only scripts with problems":"Nur Skripte mit Problemen zeigen",Simulate:Az,"Some files will be rejected":"Einige Dateien werden abgelehnt","Sound:":"Klang:",Stack:Oz,Start:Rz,"Start script":"Skript starten",State:Mz,"State condition":"Zustandsbedingung","Step into function":"Schritt in die Funktion","Step out from function":"Raus aus der Funktion","Stop on exception":"Bei Ausnahme anhalten",Su:Nz,"Subject:":"Gegenstand:",Sunday:Lz,"TS description":"Regeln erstellen mit TypeScript",Telegram:Bz,"Text:":"Text:",Th:Pz,"The script will be stopped and must be activated manually after debugging. Continue?":"Das Skript wird gestoppt und muss nach dem Debuggen manuell aktiviert werden. Fortsetzen?","This is advances option. You can write your own code here and it will be executed on trigger":"Dies ist eine erweiterte Option. Sie können hier Ihren eigenen Code schreiben, der beim Auslösen ausgeführt wird",Thursday:jz,Time:Fz,"Time condition":"Zeitbedingung","Title:":"Titel:","To:":"Zu:","Trigger with value":"Trigger mit Wert",Triggered:zz,Triggers:Uz,"Triggers the on script saving or the javascript instance restart":"Löst das Speichern des Skripts oder den Neustart der Javascript-Instanz aus","Triggers the rule on update or change of some state":"Löst die Regel beim Aktualisieren oder Ändern eines Zustands aus","Triggers the rule periodically or on some specific time":"Löst periodisch oder zu einem bestimmten Zeitpunkt aus",Tu:Wz,Tuesday:Hz,URL:Vz,"Unknown error":"Unbekannter Fehler","Unknown error!":"Unbekannter Fehler!","Use generated code":"Code verwenden","User function":"Benutzerfunktion","User:":"Benutzer:",Value:Gz,"Vibration:":"Vibration:",Volume:Kz,We:Jz,Wednesday:qz,"Whatsapp-cmb":"WhatsApp-cmb",Write:Yz,"Write your own code":"Eigenen Code schreiben",Yes:Xz,"Yet exists!":"Existiert schon!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Sie können %s in der URL verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ausgelöste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Sie können %s im Befehl verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ausgelöste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Sie können %s im Text verwenden, um den aktuellen Triggerwert anzuzeigen, %id, um die ausgelöste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Sie können %s im Wert verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ID des ausgelösten Objekts zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You have to enter OpenAI API key in the configuration of javascript adapter.":"Sie müssen den OpenAI-API-Schlüssel in der Konfiguration des Javascript-Adapters eingeben.","[equal]":"[gleich]","[greater or equal]":"[größer oder gleich]","[greater]":"[größer]","[hysteresis]":"[Hysterese]","[includes]":"[enthält]","[less or equal]":"[kleiner oder gleich]","[less]":"[kleiner]","[not equal]":"[ungleich]",acknowledgment:Zz,all:Qz,and:eU,astro:tU,at:nU,"clear running":"laufende abbrechen",control:sU,copy:rU,cron:iU,dawn:oU,debug_help:aU,debug_label:lU,default:"Standard",dusk:cU,easy:uU,else:"sonst","equal to":"gleich",every:dU,"every hour at 0 minutes":"jede Stunde bei 0 Minuten",false:"falsch","file reading has failed: %s":"Das Lesen der Datei ist fehlgeschlagen: %s","file reading was aborted":"Das Lesen der Datei wurde abgebrochen",filter_func:hU,filter_id:pU,filter_name:gU,filter_role:fU,filter_room:mU,"for edit or create script":"zum Bearbeiten oder zum Erstellen eines neues Skripts","for professionals":"für Profis","for programmers":"für Programmierer",goldenHour:bU,goldenHourEnd:$U,"greater or equal":"größer oder gleich","greater or equal to":"größer oder gleich","greater than":"größer als",help_just_check:vU,help_on_change:yU,"high priority":"hohe Priorität","high-priority":"hohe Priorität","highest priority":"höchste Priorität",hours:_U,includes:wU,interval:CU,"just check":"einfach prüfen","less or equal":"kleiner oder gleich","less or equal to":"kleiner oder gleich","less than":"kleiner als","lower priority":"geringere Priorität","lowest priority":"niedrigste Priorität",magic:SU,milliseconds:TU,minutes:kU,ms:EU,nadir:IU,nauticalDawn:xU,nauticalDusk:DU,nextSunrise:AU,nextSunset:OU,night:RU,nightEnd:MU,"no blocks found":"Keine Blöcke gefunden","no group":"KEINE GRUPPE",normal:NU,"normal priority":"normale Priorität","not equal to":"ungleich","not properly connected":"Dieser Block ist mit anderen nicht richtig verbunden.",offset:LU,"on change":"bei Änderung","on condition change":"bei Zustandsänderung","on update":"beim Aktualisieren",one:BU,or:PU,quiet:jU,"reset search":"Suche zurücksetzen",search:FU,seconds:zU,solarNoon:UU,"store in":"speichern in",sunrise:WU,sunriseEnd:HU,sunset:VU,sunsetStart:GU,then:KU,"toggle value":"Wert umschalten",tooltip_ack:JU,tooltip_from:qU,tooltip_lc:YU,tooltip_quality:XU,tooltip_ts:ZU,tooltip_user:QU,tooltip_value:eW,true:"wahr",two:tW,undefined:"nicht definiert",update:nW,"use seconds":"Sekunden verwenden","use trigger value":"Triggerwert benutzen",verbose_help:sW,verbose_label:rW,when:iW,with:"mit","with date":"mit Datum","with offset":"mit Versatz",wizard:oW},lW="Admitido",cW="Comportamiento",uW="Añadir",dW="Todos",hW="Alguna",pW="Apply",gW="abril",fW="Preguntar",mW="Astronómico",bW="agosto",$W="Cancelar",vW="Cerrar",yW="Condición",_W="Condiciones",wW="Consola",CW="Copiado",SW="diciembre",TW="Defecto",kW="Demora",EW="Eliminar",IW="Descripción",xW="Hecho",DW="Ejecutivo shell",AW="Explicación",OW="Exportar",RW="Februar",MW="febrero",NW="Filtrar",LW="Carpeta",BW="P.",PW="viernes",jW="CARNÉ DE IDENTIDAD",FW="ID1",zW="ID2",UW="Importar",WW="Ejemplo",HW="Instancias",VW="Instrucciones",GW="Enero",KW="enero",JW="julio",qW="junio",YW="Límite",XW="marzo",ZW="Mayo",QW="Menú",e3="Mensaje",t3="Mes",n3="Modelo",s3="lunes",r3="Mes",i3="Más",o3="Nombre",a3="noviembre",l3="OK",c3="octubre",u3="Okay",d3="Pausa",h3="Persona fácil de convencer",p3="Pushsafer",g3="Rebautizar",f3="Repetir",m3="Reiniciar",b3="Resultado",$3="Sa",v3="sábado",y3="Salvar",_3="Calendario",w3="Guión",C3="septiembre",S3="Simular",T3="Stack",k3="Comienzo",E3="Expresar",I3="Su",x3="domingo",D3="Telegrama",A3="4",O3="jueves",R3="Tiempo",M3="Motivado",N3="Disparadores",L3="Tu",B3="martes",P3="URL",j3="Valor",F3="Volumen",z3="3",U3="miércoles",W3="Escribir",H3="sí",V3="Reconocimiento",G3="todos",K3="y",J3="astro",q3="a",Y3="control",X3="Copiar",Z3="CRON",Q3="Amanecer",e5="Este es un modo especial en el que los estados y los objetos no cambiarán. Pero solo se mostrará información sobre cada cambio planificado en el protocolo.",t5="Depurar",n5="Oscuridad",s5="fácil",r5="cada",i5="Función",o5="CARNÉ DE IDENTIDAD",a5="Nombre",l5="Papel",c5="Habitación",u5="hora dorada",d5="Fin de la hora dorada",h5='El código se ejecutará solo cada vez que la condición sea verdadera. P.ej. si se activa en el valor del sensor de temperatura y la condición es "si la temperatura es superior a 20 ° C", las acciones "entonces" se ejecutarán cada vez que el sensor envíe la temperatura y supere los 20 ° C. Por 21 ° C, por 22 ° C y así sucesivamente.',p5='El código se ejecutará solo si cambia el resultado de la condición. P.ej. si se activa en el valor del sensor de temperatura y la condición es "si la temperatura es superior a 20 ° C", las acciones "entonces" se ejecutarán una vez cuando la temperatura sea superior a 20. La próxima vez, las acciones "entonces" se ejecutarán cuando la temperatura falla por debajo de 20 y luego sube por encima de 20 nuevamente.',g5="horas",f5="incluye",m5="intervalo",b5="magia",$5="milisegundos",v5="minutos",y5="ms",_5="nadir",w5="Amanecer náutico",C5="Atardecer náutico",S5="próximo amanecer",T5="Próxima puesta de sol",k5="Noche",E5="Fin de la noche",I5="normal",x5="compensar",D5="uno",A5="o",O5="tranquilo",R5="buscar",M5="segundos",N5="Mediodía solar",L5="amanecer",B5="Final del amanecer",P5="puesta de sol",j5="Inicio al atardecer",F5="entonces",z5="Reconocer",U5="De",W5="Último cambio",H5="Calidad",V5="Marca de tiempo",G5="Usuario",K5="Valor",J5="dos",q5="actualizar",Y5="Agrega salida de depuración al registro para muchos comandos del sistema",X5="Salidas de registro detalladas",Z5="cuando",Q5="Wizard",eH={"%s not found":"%s no encontrado","()":"()","(at %s)":"(en %s)","(optional)":"(Opcional)","-":"-",".":".","AI code generator":"Generador de código de IA",Ack:lW,Actions:cW,"Actual time of day":"Hora real del día",Add:uW,"Add new script":"Agregar nuevo script",All:dW,"All files will be accepted":"Todos los archivos serán aceptados.",Any:hW,"Any month":"Cualquier mes",Apply:pW,April:gW,"Are you sure?":"¿Estás seguro?",Ask:fW,Astronomical:mW,"Astronomical events today":"Eventos astronómicos hoy",August:bW,"Blockly description":"Crear reglas por bloques gráficos","Body:":"Cuerpo:",Cancel:$W,"Cannot delete non empty item!":"¡No se puede eliminar un elemento no vacío!","Change layout":"Cambia el diseño",'Change theme (actual "%s")':'Cambiar tema (ahora - "%s")',"Check blocks":"Comprobar bloques","Check is not active, because javascript adapter is disabled":"La comprobación no está activa porque el adaptador Javascript está desactivado","Clear search input":"Borrar entrada de búsqueda","Click on this icon":"Haga clic en este ícono",Close:vW,"Close all but current":"Cerrar todo menos el actual","Collapse all":"Desplegar todo","Compares current time with astronomical event":"Compara la hora actual con un evento astronómico","Compares current time with the user specific time":"Compara la hora actual con la hora específica del usuario","Compares the state value with user defined value":"Compara el valor del estado con el valor definido por el usuario",Condition:yW,Conditions:_W,"Configuration not saved.":"Configuración no guardada.",Console:wW,"Control or update some state":"Controlar o actualizar algún estado","Control or update some state with delay":"Controlar o actualizar algún estado con retraso","Convert blockly to javascript for ever.":"Convierta instantáneamente en bloque a Javascript.",Copied:CW,"Copy script":"Copiar guion","Copy to clipboard":"Copiar al portapapeles","Create new":"Crear nuevo","Create new folder":"Crear nueva carpeta","Create new script":"Crear nuevo script","Create or edit CRON or time wizard":"Crear o editar CRON o asistente de tiempo","Dark Theme":"Tema oscuro","Dark style":"Estilo oscuro",Date:"Fecha","Debug instance":"Instancia de depuración","Debug options":"Opciones de depuración",December:SW,Default:TW,"Define cron...":"Definir cron ...","Define schedule...":"Definir horario ...",Delay:kW,Delete:EW,"Delete %s":"Eliminar %s ...","Delete folder":"Eliminar carpeta","Delete script":"Eliminar guión",Description:IW,"Deselect all":"Deseleccionar todo","Discard changes for %s":"Descartar cambios para %s",Done:xW,"Double click to write value":"Doble clic para escribir el valor","Download as file":"Descargar como archivo","Drop some files here or click...":"Suelta algunos archivos aquí o haz clic ...","Duplicate name":"Nombre duplicado","Edit script or just double click":"Editar guión o simplemente hacer doble clic","Empty name is not allowed":"No se permite el nombre vacío","End search mode":"Fin del modo de búsqueda","Enter your question":"Ingrese su solicitud",Error:"Error","Error formatting code":"Código de formato de error","Error was found":"Error encontrado","Every day":"Diario",Exec:DW,"Executes some shell command":"Ejecuta algún comando de shell","Existing scripts will be overwritten.":"Los guiones existentes se sobrescribirán.","Expand all":"Expandir todo","Expert mode":"Modo experto",Explanation:AW,Export:OW,"Export all scripts":"Exportar todos los scripts","Export blocks":"Exportar bloques","Export selected blocks":"Exportar bloques seleccionados",Februar:RW,February:MW,Filter:NW,Folder:LW,Fr:BW,Friday:PW,Function:"Función","Function editor":"Editor de funciones","Function: executed":"Función: ejecutada","Go to next line":"Ir a la siguiente línea","HTTP Call":"Llamada HTTP","Hide logs":"Ocultar registros",ID:jW,ID1:FW,ID2:zW,Import:UW,"Import blocks":"Importar bloques","Import error":"Error de importación","Import scripts":"Importar guiones","Insert object ID":"Insertar ID de objeto",Instance:WW,"Instance is disabled":"La instancia está deshabilitada","Instance:":"Ejemplo:",Instances:HW,Instructions:VW,"Invalid CRON":"CRON inválido","It will not be possible to revert this operation.":"No será posible revertir esta operación.","JS description":"Crear reglas escribiendo Javascript",Januar:GW,January:KW,July:JW,June:qW,"Just check":"Sólo revisa","Language:":"Idioma:","Learn More":"Aprende más","Light style":"Estilo ligero",Limit:YW,"Local time":"Hora local","Locate file":"Localizar el archivo","Log outputs":"Salidas de registro","Log text":"Texto de registro","Log: %s":"Log: %s","Make a HTTP get request":"Realizar una solicitud de obtención HTTP","Make a pause between actions":"Hacer una pausa entre acciones",March:XW,"March ":"marzo",May:ZW,Menu:QW,Message:e3,Mo:t3,Model:n3,Monday:s3,Month:r3,More:i3,Name:o3,"No Chat GPT Key found":"No se ha encontrado ninguna clave GPT de chat","No active host found":"No se encontró un host activo","Nothing found":"Nada Encontrado",November:a3,OK:l3,October:c3,Ok:u3,"On condition change":"En condición de cambio","On script save or adapter start":"Al guardar el script o al iniciar el adaptador","On weekdays":"De lunes a viernes","Open configuration":"Configuración abierta","Operate two states":"Operar dos estados","Operations with two states":"Operaciones con dos estados","Paste your blocks here":"Pega tus bloques aquí",Pause:d3,"Pause execution":"Pausar ejecución","Pause script":"Pausar guion","Phone:":"Teléfono:","Please select object ID...":"Por favor, seleccione la ID del objeto ...","Press Ctrl+Enter to get the answer":"Presiona Ctrl+Enter para obtener la respuesta","Prettify the script":"Embellecer el guión","Print some text in log":"Imprime texto en el registro","Priority:":"Prioridad:",Pushover:h3,Pushsafer:p3,"Read only ID selected: %s":"ID de solo lectura seleccionado: %s",Rename:g3,"Reorder scripts in folders":"Reordenar guiones en carpetas",Repeat:f3,Restart:m3,Result:b3,"Resume execution":"Reanudar ejecución","Root folder":"Carpeta raíz","Rules description":"Crea reglas con bloques IF, THEN, ELSE","Run script":"Ejecutar guión",Sa:$3,Saturday:v3,Save:y3,"Save all":"Salvar a todos","Say It":"Say It","Say some text via sayit adapter":"Di un mensaje de texto a través del adaptador sayit",Schedule:_3,Script:w3,"Script %s was modified on disk":"El script %s fue modificado en el disco","Script is not running":"El script no se está ejecutando","Search in scripts":"Buscar en guiones","Search...":"Buscar...","Select all":"Seleccionar todo","Send email":"Enviar correo electrónico","Sends an email":"Envía un correo electrónico","Sends message via Pushsafer":"Envía mensaje a través de Pushsafer","Sends message via pushover":"Envía un mensaje a través de un pushover","Sends message via telegram":"Envía mensaje por telegrama","Sends message via whatsapp-cmb":"Envía mensaje vía whatsapp-cmb",September:C3,"Server time":"Tiempo del servidor","Set state action":"Establecer acción estatal","Set with delay":"Establecer con retraso","Shell command":"Comando de Shell","Show astronomical events":"Mostrar eventos astronómicos","Show javascript code":"Mostrar código Javascript","Show logs":"Mostrar registros","Show only paused scripts":"Mostrar solo secuencias de comandos pausadas","Show only running scripts":"Mostrar solo scripts en ejecución","Show only scripts with problems":"Mostrar solo guiones con problemas",Simulate:S3,"Some files will be rejected":"Algunos archivos serán rechazados","Sound:":"Sonido:",Stack:T3,Start:k3,"Start script":"Iniciar guion",State:E3,"State condition":"Condición del estado","Step into function":"Entra en función","Step out from function":"Sal de la función","Stop on exception":"Deténgase en excepción",Su:I3,"Subject:":"Sujeto:",Sunday:x3,"TS description":"Crear reglas escribiendo el mecanografiado",Telegram:D3,"Text:":"Texto:",Th:A3,"The script will be stopped and must be activated manually after debugging. Continue?":"El script se detendrá y deberá activarse manualmente después de la depuración. ¿Continuar?","This is advances option. You can write your own code here and it will be executed on trigger":"Esta es la opción de avances. Puede escribir su propio código aquí y se ejecutará en el disparador",Thursday:O3,Time:R3,"Time condition":"Condición de tiempo","Title:":"Título:","To:":"A:","Trigger with value":"Activar con valor",Triggered:M3,Triggers:N3,"Triggers the on script saving or the javascript instance restart":"Activa el guardado de la secuencia de comandos o el reinicio de la instancia de JavaScript","Triggers the rule on update or change of some state":"Activa la regla de actualización o cambio de algún estado","Triggers the rule periodically or on some specific time":"Activa la regla periódicamente o en un momento específico",Tu:L3,Tuesday:B3,URL:P3,"Unknown error":"Error desconocido","Unknown error!":"¡Error desconocido!","Use generated code":"Usar código generado","User function":"Función de usuario","User:":"Usuario:",Value:j3,"Vibration:":"Vibración:",Volume:F3,We:z3,Wednesday:U3,"Whatsapp-cmb":"Whatsapp-cmb",Write:W3,"Write your own code":"Escribe tu propio código",Yes:H3,"Yet exists!":"¡Sin embargo existe!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Puede usar %s en la URL para usar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación antiguo","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Puede usar %s en el comando para usar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación anterior","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Puede usar %s en el texto para mostrar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación antiguo","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Puede usar %s en el valor para usar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación antiguo","You have to enter OpenAI API key in the configuration of javascript adapter.":"Debe ingresar la clave API de OpenAI en la configuración del adaptador de JavaScript.","[equal]":"[igual]","[greater or equal]":"[mayor o igual]","[greater]":"[mayor que]","[hysteresis]":"[histéresis]","[includes]":"[incluye]","[less or equal]":"[menor o igual]","[less]":"[menos]","[not equal]":"[no es igual]",acknowledgment:V3,all:G3,and:K3,astro:J3,at:q3,"clear running":"carrera clara",control:Y3,copy:X3,cron:Z3,dawn:Q3,debug_help:e5,debug_label:t5,default:"defecto",dusk:n5,easy:s5,else:"demás","equal to":"igual a",every:r5,"every hour at 0 minutes":"cada hora a los 0 minutos",false:"falso","file reading has failed: %s":"la lectura del archivo ha fallado: %s","file reading was aborted":"la lectura del archivo fue abortada",filter_func:i5,filter_id:o5,filter_name:a5,filter_role:l5,filter_room:c5,"for edit or create script":"para editar o crear un nuevo script","for professionals":"para profesionales","for programmers":"para programadores",goldenHour:u5,goldenHourEnd:d5,"greater or equal":"mayor o igual","greater or equal to":"mayor o igual a","greater than":"mas grande que",help_just_check:h5,help_on_change:p5,"high priority":"alta prioridad","high-priority":"alta prioridad","highest priority":"más alta prioridad",hours:g5,includes:f5,interval:m5,"just check":"Sólo revisa","less or equal":"menor o igual","less or equal to":"menor o igual a","less than":"menos que","lower priority":"prioridad más baja","lowest priority":"prioridad más baja",magic:b5,milliseconds:$5,minutes:v5,ms:y5,nadir:_5,nauticalDawn:w5,nauticalDusk:C5,nextSunrise:S5,nextSunset:T5,night:k5,nightEnd:E5,"no blocks found":"No se encontraron bloques","no group":"NO GRUPO",normal:I5,"normal priority":"prioridad normal","not equal to":"no igual a","not properly connected":"Este bloque no está conectado correctamente a otros bloques.",offset:x5,"on change":"en el cambio","on condition change":"con cambio de condición","on update":"en actualización",one:D5,or:A5,quiet:O5,"reset search":"restablecer la búsqueda",search:R5,seconds:M5,solarNoon:N5,"store in":"almacenar en",sunrise:L5,sunriseEnd:B5,sunset:P5,sunsetStart:j5,then:F5,"toggle value":"alternar valor",tooltip_ack:z5,tooltip_from:U5,tooltip_lc:W5,tooltip_quality:H5,tooltip_ts:V5,tooltip_user:G5,tooltip_value:K5,true:"cierto",two:J5,undefined:"indefinido",update:q5,"use seconds":"usar segundos","use trigger value":"usar valor de activación",verbose_help:Y5,verbose_label:X5,when:Z5,with:"con","with date":"con fecha","with offset":"con desplazamiento",wizard:Q5},tH="Reconnu",nH="Actions",sH="Ajouter",rH="Tout",iH="Tout",oH="Postuler",aH="avril",lH="Demander",cH="Astronomique",uH="août",dH="Annuler",hH="proche",pH="État",gH="Conditions",fH="Console",mH="Copié",bH="décembre",$H="Défaut",vH="Retard",yH="Effacer",_H="Description",wH="Terminé",CH="Exec shell",SH="Explication",TH="Exportation",kH="Février",EH="février",IH="Filtre",xH="Dossier",DH="Fr",AH="Vendredi",OH="ID",RH="ID1",MH="ID2",NH="Importation",LH="Exemple",BH="Instances",PH="Instructions",jH="Janvier",FH="janvier",zH="juillet",UH="juin",WH="Limite",HH="Mars",VH="Mai",GH="M e n u",KH="Message",JH="Mo",qH="Modèle",YH="Lundi",XH="Mois",ZH="Plus",QH="Nom",e4="novembre",t4="OK",n4="octobre",s4="D'accord",r4="Pause",i4="Pushover",o4="Pushsafer",a4="Renommer",l4="Répéter",c4="Redémarrer",u4="Résultat",d4="Sa",h4="samedi",p4="sauver",g4="Horaire",f4="Scénario",m4="septembre",b4="Simuler",$4="Stack",v4="Début",y4="État",_4="Su",w4="dimanche",C4="Télégramme",S4="4",T4="Jeudi",k4="Temps",E4="Déclenché",I4="Déclencheurs",x4="Tu",D4="Mardi",A4="URL",O4="Valeur",R4="Le volume",M4="3",N4="Mercredi",L4="Écrivez",B4="Oui",P4="reconnaissance",j4="tout",F4="et",z4="astro",U4="à",W4="contrôler",H4="copie",V4="CRON",G4="Aube",K4="Il s'agit d'un mode spécial dans lequel les états et les objets ne changeront pas. Mais seules les informations sur chaque changement prévu seront affichées dans le protocole.",J4="Déboguer",q4="Crépuscule",Y4="facile",X4="chaque",Z4="Une fonction",Q4="ID",e8="Nom",t8="Rôle",n8="Pièce",s8="Heure d'or",r8="Fin de l'heure d'or",i8="Le code ne sera exécuté que chaque fois que la condition est vraie. Par exemple. si déclenchement sur la valeur du capteur de température et que la condition est «si la température est supérieure à 20 ° C», les actions «alors» seront exécutées à chaque fois que le capteur envoie la température et qu'elle est supérieure à 20 ° C. À 21 ° C, à 22 ° C et ainsi de suite.",o8="Le code ne sera exécuté que si le résultat de la condition change. Par exemple. si le déclenchement sur la valeur du capteur de température et que la condition est «si la température est supérieure à 20 ° C», les actions «alors» seront exécutées une fois lorsque la température est supérieure à 20. La prochaine fois, les actions «alors» seront exécutées lorsque la température échoue sous 20 puis remonte au-dessus de 20.",a8="les heures",l8="comprend",c8="intervalle",u8="la magie",d8="millisecondes",h8="minutes",p8="ms",g8="nadir",f8="Aube nautique",m8="Crépuscule nautique",b8="Prochain lever de soleil",$8="Prochain coucher de soleil",v8="Nuit",y8="Fin de nuit",_8="Ordinaire",w8="décalage",C8="une",S8="ou",T8="calmer",k8="chercher",E8="secondes",I8="Midi solaire",x8="lever du soleil",D8="Fin du lever du soleil",A8="le coucher du soleil",O8="Début du coucher du soleil",R8="alors",M8="Reconnaître",N8="De",L8="Dernière modification",B8="Qualité",P8="Horodatage",j8="Utilisateur",F8="Valeur",z8="deux",U8="mettre à jour",W8="Ajoute une sortie de débogage au journal pour de nombreuses commandes système",H8="Sorties de journal détaillées",V8="lorsque",G8="Wizard",K8={"%s not found":"%s non trouvé","()":"()","(at %s)":"(à %s)","(optional)":"(optionnel)","-":"-",".":".","AI code generator":"Générateur de code IA",Ack:tH,Actions:nH,"Actual time of day":"Heure réelle de la journée",Add:sH,"Add new script":"Ajouter un nouveau script",All:rH,"All files will be accepted":"Tous les fichiers seront acceptés",Any:iH,"Any month":"N'importe quel mois",Apply:oH,April:aH,"Are you sure?":"Êtes-vous sûr?",Ask:lH,Astronomical:cH,"Astronomical events today":"Événements astronomiques aujourd'hui",August:uH,"Blockly description":"Création de règles par blocs graphiques","Body:":"Corps:",Cancel:dH,"Cannot delete non empty item!":"Impossible de supprimer un élément non vide!","Change layout":"Changer la disposition",'Change theme (actual "%s")':'Changer de thème (maintenant - "%s")',"Check blocks":"Vérifier les blocs","Check is not active, because javascript adapter is disabled":"La vérification n'est pas active, car l'adaptateur Javascript est désactivé","Clear search input":"Effacer la recherche","Click on this icon":"Cliquez sur cette icône",Close:hH,"Close all but current":"Ferme tout sauf courant","Collapse all":"Réduire tout","Compares current time with astronomical event":"Compare l'heure actuelle avec un événement astronomique","Compares current time with the user specific time":"Compare l'heure actuelle avec l'heure spécifique de l'utilisateur","Compares the state value with user defined value":"Compare la valeur d'état avec la valeur définie par l'utilisateur",Condition:pH,Conditions:gH,"Configuration not saved.":"Configuration non enregistrée.",Console:fH,"Control or update some state":"Contrôler ou mettre à jour un état","Control or update some state with delay":"Contrôler ou mettre à jour un état avec un délai","Convert blockly to javascript for ever.":"Convertissez instantanément en Javascript.",Copied:mH,"Copy script":"Copier le script","Copy to clipboard":"Copier dans le presse-papier","Create new":"Créer un nouveau","Create new folder":"Créer un nouveau dossier","Create new script":"Créer un nouveau script","Create or edit CRON or time wizard":"Créer ou éditer CRON ou un assistant de temps","Dark Theme":"Thème sombre","Dark style":"Style sombre",Date:"Date","Debug instance":"Instance de débogage","Debug options":"Options de débogage",December:bH,Default:$H,"Define cron...":"Définir le cron ...","Define schedule...":"Définir le calendrier ...",Delay:vH,Delete:yH,"Delete %s":"Supprimer %s ...","Delete folder":"Supprimer le dossier","Delete script":"Supprimer le script",Description:_H,"Deselect all":"Tout déselectionner","Discard changes for %s":"Ignorer les modifications pour %s",Done:wH,"Double click to write value":"Double clic pour écrire la valeur","Download as file":"Télécharger le fichier","Drop some files here or click...":"Déposer des fichiers ici ou cliquez sur ...","Duplicate name":"Nom en double","Edit script or just double click":"Modifiez le script ou double-cliquez simplement sur","Empty name is not allowed":"Le nom vide n'est pas autorisé","End search mode":"Fin du mode de recherche","Enter your question":"Entrez votre demande",Error:"Erreur","Error formatting code":"Erreur lors du formatage du code","Error was found":"Une erreur a été trouvée","Every day":"Tous les jours",Exec:CH,"Executes some shell command":"Exécute une commande shell","Existing scripts will be overwritten.":"Les scripts existants seront écrasés.","Expand all":"Développer tout","Expert mode":"Mode expert",Explanation:SH,Export:TH,"Export all scripts":"Exporter tous les scripts","Export blocks":"Blocs d'exportation","Export selected blocks":"Exporter les blocs sélectionnés",Februar:kH,February:EH,Filter:IH,Folder:xH,Fr:DH,Friday:AH,Function:"Fonction","Function editor":"Éditeur de fonction","Function: executed":"Fonction : exécutée","Go to next line":"Aller à la ligne suivante","HTTP Call":"Appel HTTP","Hide logs":"Masquer les journaux",ID:OH,ID1:RH,ID2:MH,Import:NH,"Import blocks":"Blocs d'importation","Import error":"Erreur d'importation","Import scripts":"Importer des scripts","Insert object ID":"Insérer un identifiant d'objet",Instance:LH,"Instance is disabled":"L'instance est désactivée","Instance:":"Exemple:",Instances:BH,Instructions:PH,"Invalid CRON":"CRON invalide","It will not be possible to revert this operation.":"Il ne sera pas possible de revenir sur cette opération.","JS description":"Créer des règles en écrivant du Javascript",Januar:jH,January:FH,July:zH,June:UH,"Just check":"Vérifiez simplement","Language:":"Langue:","Learn More":"Apprendre encore plus","Light style":"Style de lumière",Limit:WH,"Local time":"Heure locale","Locate file":"Localiser le fichier","Log outputs":"Journal des sorties","Log text":"Texte du journal","Log: %s":"Log : %s","Make a HTTP get request":"Faire une requête HTTP Get","Make a pause between actions":"Faites une pause entre les actions",March:HH,"March ":"mars",May:VH,Menu:GH,Message:KH,Mo:JH,Model:qH,Monday:YH,Month:XH,More:ZH,Name:QH,"No Chat GPT Key found":"Aucune clé GPT de chat trouvée","No active host found":"Aucun hôte actif trouvé","Nothing found":"Rien n'a été trouvé",November:e4,OK:t4,October:n4,Ok:s4,"On condition change":"En cas de changement de condition","On script save or adapter start":"Lors de l'enregistrement du script ou du démarrage de l'adaptateur","On weekdays":"En semaine","Open configuration":"Configuration ouverte","Operate two states":"Opérer deux états","Operations with two states":"Opérations à deux états","Paste your blocks here":"Collez vos blocs ici",Pause:r4,"Pause execution":"Suspendre l'exécution","Pause script":"Script de pause","Phone:":"Téléphone:","Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","Press Ctrl+Enter to get the answer":"Appuyez sur Ctrl+Entrée pour obtenir la réponse","Prettify the script":"Embellir le scénario","Print some text in log":"Imprimer du texte dans le journal","Priority:":"Priorité:",Pushover:i4,Pushsafer:o4,"Read only ID selected: %s":"ID en lecture seule sélectionné: %s",Rename:a4,"Reorder scripts in folders":"Réorganiser les scripts dans des dossiers",Repeat:l4,Restart:c4,Result:u4,"Resume execution":"Reprendre l'exécution","Root folder":"Dossier racine","Rules description":"Créer des règles avec des blocs IF, THEN, ELSE","Run script":"Script de lancement",Sa:d4,Saturday:h4,Save:p4,"Save all":"Sauver tous","Say It":"Say It","Say some text via sayit adapter":"Dites du texte via l'adaptateur sayit",Schedule:g4,Script:f4,"Script %s was modified on disk":"Le script %s a été modifié sur le disque","Script is not running":"Le script n'est pas en cours d'exécution","Search in scripts":"Rechercher dans les scripts","Search...":"Chercher...","Select all":"Tout sélectionner","Send email":"Envoyer un e-mail","Sends an email":"Envoie un e-mail","Sends message via Pushsafer":"Envoie un message via Pushsafer","Sends message via pushover":"Envoie un message via pushover","Sends message via telegram":"Envoie un message par télégramme","Sends message via whatsapp-cmb":"Envoie un message via whatsapp-cmb",September:m4,"Server time":"Heure du serveur","Set state action":"Définir l'action de l'état","Set with delay":"Set avec retard","Shell command":"Commande Shell","Show astronomical events":"Afficher les événements astronomiques","Show javascript code":"Afficher le code Javascript","Show logs":"Afficher les journaux","Show only paused scripts":"Afficher uniquement les scripts en pause","Show only running scripts":"Afficher uniquement les scripts en cours d'exécution","Show only scripts with problems":"Afficher uniquement les scripts avec des problèmes",Simulate:b4,"Some files will be rejected":"Certains fichiers seront rejetés","Sound:":"Sonner:",Stack:$4,Start:v4,"Start script":"Lancer le script",State:y4,"State condition":"État condition","Step into function":"Entrez dans la fonction","Step out from function":"Sortez de la fonction","Stop on exception":"Arrêt sur exception",Su:_4,"Subject:":"Sujet:",Sunday:w4,"TS description":"Créer des règles en écrivant des caractères dactylographiés",Telegram:C4,"Text:":"Texte:",Th:S4,"The script will be stopped and must be activated manually after debugging. Continue?":"Le script sera arrêté et doit être activé manuellement après le débogage. Continuez?","This is advances option. You can write your own code here and it will be executed on trigger":"C'est une option avancée. Vous pouvez écrire votre propre code ici et il sera exécuté au déclenchement",Thursday:T4,Time:k4,"Time condition":"Condition de temps","Title:":"Titre:","To:":"À:","Trigger with value":"Déclencheur avec valeur",Triggered:E4,Triggers:I4,"Triggers the on script saving or the javascript instance restart":"Déclenche l'enregistrement du script ou le redémarrage de l'instance javascript","Triggers the rule on update or change of some state":"Déclenche la règle sur la mise à jour ou le changement d'un état","Triggers the rule periodically or on some specific time":"Déclenche la règle périodiquement ou à une heure précise",Tu:x4,Tuesday:D4,URL:A4,"Unknown error":"Erreur inconnue","Unknown error!":"Erreur inconnue!","Use generated code":"Utiliser le code généré","User function":"Fonction utilisateur","User:":"Utilisateur:",Value:O4,"Vibration:":"Vibration:",Volume:R4,We:M4,Wednesday:N4,"Whatsapp-cmb":"Whatsapp-cmb",Write:L4,"Write your own code":"Écrivez votre propre code",Yes:B4,"Yet exists!":"Pourtant existe!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Vous pouvez utiliser %s dans l'URL pour utiliser la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Vous pouvez utiliser %s dans la commande pour utiliser la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Vous pouvez utiliser %s dans le texte pour afficher la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Vous pouvez utiliser %s dans la valeur pour utiliser la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You have to enter OpenAI API key in the configuration of javascript adapter.":"Vous devez entrer la clé API OpenAI dans la configuration de l'adaptateur javascript.","[equal]":"[égal]","[greater or equal]":"[supérieur ou égal]","[greater]":"[plus grand]","[hysteresis]":"[hystérèse]","[includes]":"[comprend]","[less or equal]":"[inférieur ou égal]","[less]":"[moins]","[not equal]":"[inégal]",acknowledgment:P4,all:j4,and:F4,astro:z4,at:U4,"clear running":"course claire",control:W4,copy:H4,cron:V4,dawn:G4,debug_help:K4,debug_label:J4,default:"défaut",dusk:q4,easy:Y4,else:"autre","equal to":"égal à",every:X4,"every hour at 0 minutes":"toutes les heures à 0 minute",false:"faux","file reading has failed: %s":"La lecture du fichier a échoué: %s","file reading was aborted":"la lecture du fichier a été abandonnée",filter_func:Z4,filter_id:Q4,filter_name:e8,filter_role:t8,filter_room:n8,"for edit or create script":"pour éditer ou créer un nouveau script","for professionals":"pour les professionnels","for programmers":"pour les programmeurs",goldenHour:s8,goldenHourEnd:r8,"greater or equal":"supérieur ou égal","greater or equal to":"supérieur ou égal à","greater than":"plus grand que",help_just_check:i8,help_on_change:o8,"high priority":"haute priorité","high-priority":"haute priorité","highest priority":"priorité la plus élevée",hours:a8,includes:l8,interval:c8,"just check":"Vérifiez simplement","less or equal":"inférieur ou égal","less or equal to":"inférieur ou égal à","less than":"moins que","lower priority":"priorité inférieure","lowest priority":"priorité la plus basse",magic:u8,milliseconds:d8,minutes:h8,ms:p8,nadir:g8,nauticalDawn:f8,nauticalDusk:m8,nextSunrise:b8,nextSunset:$8,night:v8,nightEnd:y8,"no blocks found":"Aucun bloc trouvé","no group":"PAS DE GROUPE",normal:_8,"normal priority":"priorité normale","not equal to":"pas égal à","not properly connected":"Ce bloc n'est pas correctement connecté à d'autres blocs.",offset:w8,"on change":"sur le changement","on condition change":"sur changement de condition","on update":"sur mise à jour",one:C8,or:S8,quiet:T8,"reset search":"Réinitialiser la recherche",search:k8,seconds:E8,solarNoon:I8,"store in":"stocker dans",sunrise:x8,sunriseEnd:D8,sunset:A8,sunsetStart:O8,then:R8,"toggle value":"valeur de bascule",tooltip_ack:M8,tooltip_from:N8,tooltip_lc:L8,tooltip_quality:B8,tooltip_ts:P8,tooltip_user:j8,tooltip_value:F8,true:"vrai",two:z8,undefined:"indéfini",update:U8,"use seconds":"utiliser les secondes","use trigger value":"use trigger value",verbose_help:W8,verbose_label:H8,when:V8,with:"avec","with date":"avec date","with offset":"avec offset",wizard:G8},J8="Riconosciuto",q8="Azioni",Y8="Inserisci",X8="Tutti",Z8="Qualunque",Q8="Applica",eV="aprile",tV="Chiedere",nV="Astronomico",sV="agosto",rV="Annulla",iV="Vicino",oV="Condizione",aV="Condizioni",lV="Console",cV="Copiato",uV="dicembre",dV="Predefinito",hV="Ritardo",pV="Elimina",gV="Descrizione",fV="Fatto",mV="Execshell",bV="Spiegazione",$V="Esportare",vV="Februar",yV="febbraio",_V="Filtro",wV="Cartella",CV="P",SV="Venerdì",TV="ID",kV="ID1",EV="ID2",IV="Importare",xV="Esempio",DV="istanze",AV="Istruzioni",OV="Januar",RV="gennaio",MV="luglio",NV="giugno",LV="Limite",BV="marzo",PV="Maggio",jV="Menu",FV="Messaggio",zV="Mo",UV="Modello",WV="Lunedi",HV="Mese",VV="Di più",GV="Nome",KV="novembre",JV="OK",qV="ottobre",YV="Ok",XV="Pausa",ZV="Pushover",QV="Pushsafer",eG="Rinominare",tG="Ripetere",nG="Ricomincia",sG="Risultato",rG="Sa",iG="Sabato",oG="Salva",aG="Programma",lG="copione",cG="settembre",uG="Simulare",dG="Stack",hG="Cominciare",pG="Stato",gG="Su",fG="Domenica",mG="Telegramma",bG="4",$G="giovedi",vG="Tempo",yG="Innescato",_G="Trigger",wG="Tu",CG="martedì",SG="URL",TG="Valore",kG="Volume",EG="3",IG="mercoledì",xG="Scrivi",DG="sì",AG="riconoscimento",OG="tutti",RG="e",MG="astro",NG="a",LG="controllo",BG="copia",PG="CRON",jG="alba",FG="Questa è una modalità speciale in cui gli stati e gli oggetti non cambieranno. Ma nel protocollo verranno visualizzate solo le informazioni su ogni modifica pianificata.",zG="Debug",UG="crepuscolo",WG="facile",HG="ogni",VG="Funzione",GG="ID",KG="Nome",JG="Ruolo",qG="Camera",YG="Ora d'oro",XG="Fine dell'ora d'oro",ZG='Il codice verrà eseguito solo ogni volta che la condizione è vera. Per esempio. se si attiva il valore del sensore di temperatura e la condizione è "se la temperatura è maggiore di 20 ° C", le azioni "allora" verranno eseguite ogni volta che il sensore invia la temperatura e questa è superiore a 20 ° C. Di 21 ° C, di 22 ° C e così via.',QG='Il codice verrà eseguito solo se il risultato della condizione cambia. Per esempio. se si attiva il valore del sensore di temperatura e la condizione è "se la temperatura è maggiore di 20 ° C", le azioni "allora" verranno eseguite una volta quando la temperatura è superiore a 20. La prossima volta le azioni "allora" verranno eseguite quando la temperatura fallisce sotto 20 e poi sale di nuovo oltre 20.',e6="ore",t6="include",n6="intervallo",s6="Magia",r6="millisecondi",i6="minuti",o6="ms",a6="nadir",l6="Alba nautica",c6="Crepuscolo nautico",u6="Prossima alba",d6="Prossimo tramonto",h6="Notte",p6="Fine della notte",g6="normale",f6="compensare",m6="uno",b6="o",$6="silenzioso",v6="ricerca",y6="secondi",_6="Mezzogiorno solare",w6="Alba",C6="Fine dell'alba",S6="tramonto",T6="Inizio del tramonto",k6="poi",E6="Riconoscere",I6="A partire dal",x6="Ultima modifica",D6="Qualità",A6="timestamp",O6="Utente",R6="Valore",M6="Due",N6="aggiornare",L6="Aggiunge l'output di debug al registro per molti comandi di sistema",B6="Output di log dettagliati",P6="quando",j6="procedura guidata",F6={"%s not found":"%s non trovato","()":"()","(at %s)":"(a %s)","(optional)":"(opzionale)","-":"-",".":".","AI code generator":"Generatore di codice AI",Ack:J8,Actions:q8,"Actual time of day":"Ora effettiva della giornata",Add:Y8,"Add new script":"Aggiungi nuovo script",All:X8,"All files will be accepted":"Tutti i file saranno accettati",Any:Z8,"Any month":"Ogni mese",Apply:Q8,April:eV,"Are you sure?":"Sei sicuro?",Ask:tV,Astronomical:nV,"Astronomical events today":"Eventi astronomici oggi",August:sV,"Blockly description":"Creazione di regole tramite blocchi grafici","Body:":"Corpo:",Cancel:rV,"Cannot delete non empty item!":"Impossibile eliminare l'elemento non vuoto!","Change layout":"Cambia layout",'Change theme (actual "%s")':'Cambia tema (ora - "%s")',"Check blocks":"Controlla i blocchi","Check is not active, because javascript adapter is disabled":"Il controllo non è attivo perché l'adattatore Javascript è disabilitato","Clear search input":"Cancella input di ricerca","Click on this icon":"Clicca su questa icona",Close:iV,"Close all but current":"Chiudi tutto tranne corrente","Collapse all":"Comprimi tutto","Compares current time with astronomical event":"Confronta l'ora corrente con l'evento astronomico","Compares current time with the user specific time":"Confronta l'ora corrente con l'ora specifica dell'utente","Compares the state value with user defined value":"Confronta il valore dello stato con il valore definito dall'utente",Condition:oV,Conditions:aV,"Configuration not saved.":"Configurazione non salvata.",Console:lV,"Control or update some state":"Controlla o aggiorna uno stato","Control or update some state with delay":"Controlla o aggiorna uno stato con ritardo","Convert blockly to javascript for ever.":"Converti istantaneamente a blocchi in Javascript.",Copied:cV,"Copy script":"Copia script","Copy to clipboard":"Copia negli appunti","Create new":"Creare nuovo","Create new folder":"Crea una nuova cartella","Create new script":"Crea nuovo script","Create or edit CRON or time wizard":"Crea o modifica la procedura guidata CRON o time","Dark Theme":"Tema scuro","Dark style":"Stile scuro",Date:"Data","Debug instance":"Istanza di debug","Debug options":"Opzioni di debug",December:uV,Default:dV,"Define cron...":"Definisci cron ...","Define schedule...":"Definisci programma ...",Delay:hV,Delete:pV,"Delete %s":"Elimina %s ...","Delete folder":"Elimina cartella","Delete script":"Elimina script",Description:gV,"Deselect all":"Deselezionare tutto","Discard changes for %s":"Annulla modifiche per %s",Done:fV,"Double click to write value":"Doppio clic per scrivere il valore","Download as file":"Scarica come file","Drop some files here or click...":"Trascina alcuni file qui o fai clic su ...","Duplicate name":"Nome duplicato","Edit script or just double click":"Modifica lo script o fai doppio clic","Empty name is not allowed":"Il nome vuoto non è consentito","End search mode":"Termina la modalità di ricerca","Enter your question":"Inserisci la tua richiesta",Error:"Errore","Error formatting code":"Errore di formattazione del codice","Error was found":"Errore trovato","Every day":"Ogni giorno",Exec:mV,"Executes some shell command":"Esegue alcuni comandi della shell","Existing scripts will be overwritten.":"Gli script esistenti verranno sovrascritti.","Expand all":"Espandi tutto","Expert mode":"Modalità esperto",Explanation:bV,Export:$V,"Export all scripts":"Esporta tutti gli script","Export blocks":"Esporta blocchi","Export selected blocks":"Esporta i blocchi selezionati",Februar:vV,February:yV,Filter:_V,Folder:wV,Fr:CV,Friday:SV,Function:"Funzione","Function editor":"Editor di funzioni","Function: executed":"Funzione: eseguita","Go to next line":"Vai alla riga successiva","HTTP Call":"Chiamata HTTP","Hide logs":"Nascondi i registri",ID:TV,ID1:kV,ID2:EV,Import:IV,"Import blocks":"Importa blocchi","Import error":"Errore di importazione","Import scripts":"Importa script","Insert object ID":"Inserisci l'ID oggetto",Instance:xV,"Instance is disabled":"L'istanza è disabilitata","Instance:":"Esempio:",Instances:DV,Instructions:AV,"Invalid CRON":"CRON non valido","It will not be possible to revert this operation.":"Non sarà possibile ripristinare questa operazione.","JS description":"Creare regole scrivendo Javascript",Januar:OV,January:RV,July:MV,June:NV,"Just check":"Controlla solamente","Language:":"Linguaggio:","Learn More":"Per saperne di più","Light style":"Stile leggero",Limit:LV,"Local time":"Ora locale","Locate file":"Localizza file","Log outputs":"Registra le uscite","Log text":"Testo del registro","Log: %s":"Log: %s","Make a HTTP get request":"Effettua una richiesta get HTTP","Make a pause between actions":"Fai una pausa tra le azioni",March:BV,"March ":"marzo",May:PV,Menu:jV,Message:FV,Mo:zV,Model:UV,Monday:WV,Month:HV,More:VV,Name:GV,"No Chat GPT Key found":"Nessuna chiave GPT chat trovata","No active host found":"Nessun host attivo trovato","Nothing found":"Non abbiamo trovato nulla",November:KV,OK:JV,October:qV,Ok:YV,"On condition change":"A condizione che cambino","On script save or adapter start":"Al salvataggio dello script o all'avvio dell'adattatore","On weekdays":"Nei giorni della settimana","Open configuration":"Configurazione aperta","Operate two states":"Gestisci due stati","Operations with two states":"Operazioni con due stati","Paste your blocks here":"Incolla qui i tuoi blocchi",Pause:XV,"Pause execution":"Metti in pausa l'esecuzione","Pause script":"Metti in pausa lo script","Phone:":"Telefono:","Please select object ID...":"Seleziona l'ID oggetto ...","Press Ctrl+Enter to get the answer":"Premi Ctrl+Invio per ottenere la risposta","Prettify the script":"Abbellire la sceneggiatura","Print some text in log":"Stampa del testo nel registro","Priority:":"Priorità:",Pushover:ZV,Pushsafer:QV,"Read only ID selected: %s":"ID di sola lettura selezionato: %s",Rename:eG,"Reorder scripts in folders":"Riordina gli script nelle cartelle",Repeat:tG,Restart:nG,Result:sG,"Resume execution":"Riprendi esecuzione","Root folder":"Cartella root","Rules description":"Crea regole con i blocchi IF, THEN, ELSE","Run script":"Esegui script",Sa:rG,Saturday:iG,Save:oG,"Save all":"Salva tutto","Say It":"Say It","Say some text via sayit adapter":"Pronuncia del testo tramite l'adattatore sayit",Schedule:aG,Script:lG,"Script %s was modified on disk":"Lo script %s è stato modificato sul disco","Script is not running":"Lo script non è in esecuzione","Search in scripts":"Cerca negli script","Search...":"Ricerca...","Select all":"Seleziona tutto","Send email":"Invia una email","Sends an email":"Invia un'e-mail","Sends message via Pushsafer":"Invia messaggio tramite Pushsafer","Sends message via pushover":"Invia messaggio tramite pushover","Sends message via telegram":"Invia messaggio tramite telegramma","Sends message via whatsapp-cmb":"Invia messaggio tramite whatsapp-cmb",September:cG,"Server time":"Ora del server","Set state action":"Imposta l'azione dello stato","Set with delay":"Impostato con ritardo","Shell command":"Comando Shell","Show astronomical events":"Mostra eventi astronomici","Show javascript code":"Mostra codice Javascript","Show logs":"Mostra i log","Show only paused scripts":"Mostra solo script in pausa","Show only running scripts":"Mostra solo gli script in esecuzione","Show only scripts with problems":"Mostra solo script con problemi",Simulate:uG,"Some files will be rejected":"Alcuni file verranno rifiutati","Sound:":"Suono:",Stack:dG,Start:hG,"Start script":"Avvia script",State:pG,"State condition":"Condizione dello stato","Step into function":"Entra in funzione","Step out from function":"Esci dalla funzione","Stop on exception":"Ferma in caso di eccezione",Su:gG,"Subject:":"Soggetto:",Sunday:fG,"TS description":"Creare regole scrivendo dattiloscritto",Telegram:mG,"Text:":"Testo:",Th:bG,"The script will be stopped and must be activated manually after debugging. Continue?":"Lo script verrà interrotto e dovrà essere attivato manualmente dopo il debug. Continua?","This is advances option. You can write your own code here and it will be executed on trigger":"Questa è un'opzione anticipata. Puoi scrivere il tuo codice qui e verrà eseguito al trigger",Thursday:$G,Time:vG,"Time condition":"Condizione temporale","Title:":"Titolo:","To:":"Per:","Trigger with value":"Trigger con valore",Triggered:yG,Triggers:_G,"Triggers the on script saving or the javascript instance restart":"Attiva il salvataggio dello script o il riavvio dell'istanza javascript","Triggers the rule on update or change of some state":"Attiva la regola in caso di aggiornamento o modifica di uno stato","Triggers the rule periodically or on some specific time":"Attiva la regola periodicamente o in un momento specifico",Tu:wG,Tuesday:CG,URL:SG,"Unknown error":"Errore sconosciuto","Unknown error!":"Errore sconosciuto!","Use generated code":"Usa il codice generato","User function":"Funzione utente","User:":"Utente:",Value:TG,"Vibration:":"Vibrazione:",Volume:kG,We:EG,Wednesday:IG,"Whatsapp-cmb":"Whatsapp-cmb",Write:xG,"Write your own code":"Scrivi il tuo codice",Yes:DG,"Yet exists!":"Esiste ancora!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"È possibile utilizzare %s nell'URL per utilizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"È possibile utilizzare %s nel comando per utilizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"È possibile utilizzare %s nel testo per visualizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"È possibile utilizzare %s nel valore per utilizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You have to enter OpenAI API key in the configuration of javascript adapter.":"Devi inserire la chiave API OpenAI nella configurazione dell'adattatore javascript.","[equal]":"[pari]","[greater or equal]":"[maggiore o uguale]","[greater]":"[maggiore]","[hysteresis]":"[isteresi]","[includes]":"[include]","[less or equal]":"[minore o uguale]","[less]":"[Di meno]","[not equal]":"[non uguale]",acknowledgment:AG,all:OG,and:RG,astro:MG,at:NG,"clear running":"chiara esecuzione",control:LG,copy:BG,cron:PG,dawn:jG,debug_help:FG,debug_label:zG,default:"predefinito",dusk:UG,easy:WG,else:"altro","equal to":"uguale a",every:HG,"every hour at 0 minutes":"ogni ora a 0 minuti",false:"falso","file reading has failed: %s":"lettura file non riuscita: %s","file reading was aborted":"la lettura del file è stata interrotta",filter_func:VG,filter_id:GG,filter_name:KG,filter_role:JG,filter_room:qG,"for edit or create script":"per modificare o creare un nuovo script","for professionals":"per i professionisti","for programmers":"per i programmatori",goldenHour:YG,goldenHourEnd:XG,"greater or equal":"maggiore o uguale","greater or equal to":"maggiore o uguale a","greater than":"più grande di",help_just_check:ZG,help_on_change:QG,"high priority":"priorità alta","high-priority":"priorità alta","highest priority":"massima priorità",hours:e6,includes:t6,interval:n6,"just check":"controlla solamente","less or equal":"inferiore o uguale","less or equal to":"minore o uguale a","less than":"meno di","lower priority":"priorità inferiore","lowest priority":"priorità più bassa",magic:s6,milliseconds:r6,minutes:i6,ms:o6,nadir:a6,nauticalDawn:l6,nauticalDusk:c6,nextSunrise:u6,nextSunset:d6,night:h6,nightEnd:p6,"no blocks found":"Nessun blocco trovato","no group":"NESSUN GRUPPO",normal:g6,"normal priority":"priorità normale","not equal to":"non uguale a","not properly connected":"Questo blocco non è correttamente collegato ad altri blocchi.",offset:f6,"on change":"sul cambiamento","on condition change":"a cambio di condizione","on update":"in aggiornamento",one:m6,or:b6,quiet:$6,"reset search":"resetta la ricerca",search:v6,seconds:y6,solarNoon:_6,"store in":"conservare in",sunrise:w6,sunriseEnd:C6,sunset:S6,sunsetStart:T6,then:k6,"toggle value":"alterna valore",tooltip_ack:E6,tooltip_from:I6,tooltip_lc:x6,tooltip_quality:D6,tooltip_ts:A6,tooltip_user:O6,tooltip_value:R6,true:"vero",two:M6,undefined:"non definito",update:N6,"use seconds":"usa i secondi","use trigger value":"usa il trigger",verbose_help:L6,verbose_label:B6,when:P6,with:"con","with date":"con data","with offset":"con offset",wizard:j6},z6="Erkend",U6="Acties",W6="Toevoegen",H6="Alle",V6="Ieder",G6="Solliciteer",K6="april",J6="Vragen",q6="Astronomisch",Y6="augustus",X6="annuleren",Z6="Dichtbij",Q6="Staat",e9="Voorwaarden",t9="Troosten",n9="Gekopieerd",s9="december",r9="Standaard",i9="Vertraging",o9="Verwijder",a9="Beschrijving",l9="Gedaan",c9="Exec shell",u9="Uitleg",d9="Exporteren",h9="Februari",p9="februari",g9="Filter",f9="Map",m9="Vr",b9="vrijdag",$9="ID kaart",v9="ID1",y9="ID2",_9="Importeren",w9="Voorbeeld",C9="Instanties",S9="Instructies",T9="Januar",k9="januari",E9="juli",I9="juni",x9="Begrenzing",D9="maart",A9="mei",O9="Menu",R9="Bericht",M9="Ma",N9="Model",L9="maandag",B9="Maand",P9="Meer",j9="Naam",F9="november",z9="OK",U9="oktober",W9="OK",H9="Pauze",V9="Pushover",G9="Duwijzer",K9="andere naam geven",J9="Herhaling",q9="Herstarten",Y9="Resultaat",X9="Za",Z9="zaterdag",Q9="Opslaan",e7="Schema",t7="Script",n7="september",s7="Simuleren",r7="Stack",i7="Begin",o7="Staat",a7="Zo",l7="zondag",c7="Telegram",u7="4",d7="donderdag",h7="Tijd",p7="Veroorzaakt",g7="Triggers",f7="Di",m7="dinsdag",b7="URL",$7="Waarde",v7="Volume",y7="3",_7="woensdag",w7="Schrijven",C7="Ja",S7="erkenning",T7="alle",k7="en",E7="astro",I7="Bij",x7="controle",D7="kopiëren",A7="cron",O7="dageraad",R7="Dit is een speciale modus waarin toestanden en objecten niet veranderen. Maar alleen informatie over elke geplande wijziging wordt in het protocol weergegeven.",M7="Debuggen",N7="schemer",L7="eenvoudig",B7="elke",P7="Functie",j7="ID kaart",F7="Naam",z7="Rol",U7="Kamer",W7="gouden uur",H7="Einde van gouden uur",V7='De code wordt alleen uitgevoerd als de voorwaarde waar is. Bijv. als het triggeren op de temperatuursensorwaarde en de conditie is "als de temperatuur hoger is dan 20 ° C", zullen de "dan" acties worden uitgevoerd elke keer dat de sensor de temperatuur verzendt en deze hoger is dan 20 ° C. Bij 21 ° C, bij 22 ° C enzovoort.',G7='De code wordt alleen uitgevoerd als het conditieresultaat verandert. Bijv. als de temperatuursensor wordt geactiveerd en de conditie is "als de temperatuur hoger is dan 20 ° C", worden de "dan" -acties eenmaal uitgevoerd wanneer de temperatuur hoger is dan 20. De volgende keer worden de "dan" -acties uitgevoerd wanneer de temperatuur faalt onder de 20 en stijgt dan weer boven de 20.',K7="uren",J7="omvat",q7="interval",Y7="magie",X7="milliseconden",Z7="minuten",Q7="ms",eK="nadir",tK="Nautische dageraad",nK="Nautische schemering",sK="Volgende zonsopgang",rK="Volgende zonsondergang",iK="nacht",oK="Einde van de nacht",aK="normaal",lK="compensatie",cK="een",uK="of",dK="stil",hK="zoeken",pK="seconden",gK="Zonne-middag",fK="zonsopkomst",mK="Einde zonsopgang",bK="zonsondergang",$K="Begin van de zonsondergang",vK="vervolgens",yK="Erkennen",_K="Van",wK="Laatst gewijzigd",CK="Kwaliteit",SK="tijdstempel",TK="Gebruiker",kK="Waarde",EK="twee",IK="bijwerken",xK="Voegt foutopsporingsuitvoer toe aan het logboek voor veel systeemopdrachten",DK="Uitgebreide log-uitgangen",AK="wanneer",OK="tovenaar",RK={"%s not found":"%s niet gevonden","()":"()","(at %s)":"(op %s)","(optional)":"(optioneel)","-":"-",".":".","AI code generator":"AI-codegenerator",Ack:z6,Actions:U6,"Actual time of day":"Werkelijke tijd van de dag",Add:W6,"Add new script":"Nieuw script toevoegen",All:H6,"All files will be accepted":"Alle bestanden worden geaccepteerd",Any:V6,"Any month":"Elke maand",Apply:G6,April:K6,"Are you sure?":"Weet je zeker dat?",Ask:J6,Astronomical:q6,"Astronomical events today":"Astronomische gebeurtenissen vandaag",August:Y6,"Blockly description":"Regels maken door grafische blokken","Body:":"Lichaam:",Cancel:X6,"Cannot delete non empty item!":"Kan niet leeg item niet verwijderen!","Change layout":"Opmaak veranderen",'Change theme (actual "%s")':'Thema wijzigen (nu - "%s")',"Check blocks":"Controleer blokken","Check is not active, because javascript adapter is disabled":"Controle is niet actief, omdat Javascript-adapter is uitgeschakeld","Clear search input":"Zoekopdracht wissen","Click on this icon":"Klik op dit pictogram",Close:Z6,"Close all but current":"Alles sluiten behalve huidig","Collapse all":"Alles inklappen","Compares current time with astronomical event":"Vergelijkt huidige tijd met astronomische gebeurtenis","Compares current time with the user specific time":"Vergelijkt de huidige tijd met de gebruikerspecifieke tijd","Compares the state value with user defined value":"Vergelijkt de statuswaarde met de door de gebruiker gedefinieerde waarde",Condition:Q6,Conditions:e9,"Configuration not saved.":"Configuratie niet opgeslagen.",Console:t9,"Control or update some state":"Beheer of update een bepaalde staat","Control or update some state with delay":"Beheer of update een bepaalde staat met vertraging","Convert blockly to javascript for ever.":"Converteer direct blockly naar Javascript.",Copied:n9,"Copy script":"Kopieer script","Copy to clipboard":"Kopieer naar klembord","Create new":"Maak nieuw","Create new folder":"Maak een nieuwe map","Create new script":"Maak een nieuw script","Create or edit CRON or time wizard":"Creëer of bewerk CRON of tijdwizard","Dark Theme":"Donker thema","Dark style":"Donkere stijl",Date:"Datum","Debug instance":"Debug-instantie","Debug options":"Foutopsporingsopties",December:s9,Default:r9,"Define cron...":"Definieer cron ...","Define schedule...":"Definieer schema ...",Delay:i9,Delete:o9,"Delete %s":"%s verwijderen ...","Delete folder":"Verwijder map","Delete script":"Script verwijderen",Description:a9,"Deselect all":"Deselecteer alles","Discard changes for %s":"Wijzigingen voor %s annuleren",Done:l9,"Double click to write value":"Dubbelklikken om waarde te schrijven","Download as file":"Download","Drop some files here or click...":"Zet hier enkele bestanden neer of klik op ...","Duplicate name":"Dubbele naam","Edit script or just double click":"Bewerk het script of dubbelklik erop","Empty name is not allowed":"Lege naam is niet toegestaan","End search mode":"Zoekmodus beëindigen","Enter your question":"Voer uw verzoek in",Error:"Fout","Error formatting code":"Fout bij het opmaken van de code","Error was found":"Er is een fout gevonden","Every day":"Elke dag",Exec:c9,"Executes some shell command":"Voert een shell-commando uit","Existing scripts will be overwritten.":"Bestaande scripts worden overschreven.","Expand all":"Alles uitvouwen","Expert mode":"Expert modus",Explanation:u9,Export:d9,"Export all scripts":"Exporteer alle scripts","Export blocks":"Blokken exporteren","Export selected blocks":"Exporteer geselecteerde blokken",Februar:h9,February:p9,Filter:g9,Folder:f9,Fr:m9,Friday:b9,Function:"Functie","Function editor":"Functie-editor","Function: executed":"Functie: uitgevoerd","Go to next line":"Ga naar de volgende regel","HTTP Call":"HTTP-oproep","Hide logs":"Verberg logboeken",ID:$9,ID1:v9,ID2:y9,Import:_9,"Import blocks":"Blokken importeren","Import error":"Importfout","Import scripts":"Scripts importeren","Insert object ID":"Object-ID invoegen",Instance:w9,"Instance is disabled":"Exemplaar is uitgeschakeld","Instance:":"Voorbeeld:",Instances:C9,Instructions:S9,"Invalid CRON":"Ongeldige CRON","It will not be possible to revert this operation.":"Het is niet mogelijk om deze bewerking terug te zetten.","JS description":"Regels maken door Javascript te schrijven",Januar:T9,January:k9,July:E9,June:I9,"Just check":"Kijk maar","Language:":"Taal:","Learn More":"Leer meer","Light style":"Lichte stijl",Limit:x9,"Local time":"Lokale tijd","Locate file":"Vind het bestand","Log outputs":"Log uitgangen","Log text":"Log tekst","Log: %s":"Logboek: %s","Make a HTTP get request":"Maak een HTTP-ophaalverzoek","Make a pause between actions":"Pauzeer tussen acties",March:D9,"March ":"maart",May:A9,Menu:O9,Message:R9,Mo:M9,Model:N9,Monday:L9,Month:B9,More:P9,Name:j9,"No Chat GPT Key found":"Geen Chat GPT-sleutel gevonden","No active host found":"Geen actieve host gevonden","Nothing found":"Niets gevonden",November:F9,OK:z9,October:U9,Ok:W9,"On condition change":"Op voorwaarde verandering","On script save or adapter start":"Bij het opslaan van het script of het starten van de adapter","On weekdays":"Op weekdagen","Open configuration":"Configuratie openen","Operate two states":"Bedien twee toestanden:","Operations with two states":"Bewerkingen met twee toestanden","Paste your blocks here":"Plak hier je blokken",Pause:H9,"Pause execution":"Uitvoering pauzeren","Pause script":"Pauzeer script","Phone:":"Telefoon:","Please select object ID...":"Selecteer object-ID ...","Press Ctrl+Enter to get the answer":"Druk op Ctrl+Enter om het antwoord te krijgen","Prettify the script":"Maak het script mooier","Print some text in log":"Druk wat tekst af in het logboek","Priority:":"Prioriteit:",Pushover:V9,Pushsafer:G9,"Read only ID selected: %s":"Alleen-lezen ID geselecteerd: %s",Rename:K9,"Reorder scripts in folders":"Sorteer scripts in mappen opnieuw",Repeat:J9,Restart:q9,Result:Y9,"Resume execution":"Uitvoering hervatten","Root folder":"Hoofdmap","Rules description":"Maak regels met IF, THEN, ELSE blokken","Run script":"Voer script uit",Sa:X9,Saturday:Z9,Save:Q9,"Save all":"Sla alles op","Say It":"Say It","Say some text via sayit adapter":"Zeg wat tekst via de sayit-adapter",Schedule:e7,Script:t7,"Script %s was modified on disk":"Script %s is gewijzigd op schijf","Script is not running":"Script is niet actief","Search in scripts":"Zoeken in scripts","Search...":"Zoeken...","Select all":"Selecteer alles","Send email":"E-mail verzenden","Sends an email":"Stuurt een e-mail","Sends message via Pushsafer":"Stuurt bericht via Pushsafer","Sends message via pushover":"Stuurt bericht via pushover","Sends message via telegram":"Verzendt bericht via telegram","Sends message via whatsapp-cmb":"Stuurt bericht via whatsapp-cmb",September:n7,"Server time":"Servertijd","Set state action":"Stel statusactie in","Set with delay":"Met vertraging ingesteld","Shell command":"Shell-opdracht","Show astronomical events":"Laat astronomische gebeurtenissen zien","Show javascript code":"Javascript-code weergeven","Show logs":"Toon logboeken","Show only paused scripts":"Toon alleen onderbroken scripts","Show only running scripts":"Toon alleen actieve scripts","Show only scripts with problems":"Toon alleen scripts met problemen",Simulate:s7,"Some files will be rejected":"Sommige bestanden worden geweigerd","Sound:":"Geluid:",Stack:r7,Start:i7,"Start script":"Start het script",State:o7,"State condition":"Staat staat","Step into function":"Stap in functie","Step out from function":"Stap uit de functie","Stop on exception":"Stop bij uitzondering",Su:a7,"Subject:":"Onderwerpen:",Sunday:l7,"TS description":"Regels maken door Typescript te schrijven",Telegram:c7,"Text:":"Tekst:",Th:u7,"The script will be stopped and must be activated manually after debugging. Continue?":"Het script wordt gestopt en moet na het debuggen handmatig worden geactiveerd. Doorgaan met?","This is advances option. You can write your own code here and it will be executed on trigger":"Dit is een voorschotoptie. U kunt hier uw eigen code schrijven en deze wordt bij een trigger uitgevoerd",Thursday:d7,Time:h7,"Time condition":"Tijdsvoorwaarde","Title:":"Titel:","To:":"Naar:","Trigger with value":"Trigger met waarde",Triggered:p7,Triggers:g7,"Triggers the on script saving or the javascript instance restart":"Activeert het opslaan van het script of het opnieuw opstarten van de JavaScript-instantie","Triggers the rule on update or change of some state":"Activeert de regel voor het bijwerken of wijzigen van een bepaalde staat","Triggers the rule periodically or on some specific time":"Activeert de regel periodiek of op een specifieke tijd",Tu:f7,Tuesday:m7,URL:b7,"Unknown error":"Onbekende fout","Unknown error!":"Onbekende fout!","Use generated code":"Gebruik gegenereerde code","User function":"Gebruikersfunctie","User:":"Gebruiker:",Value:$7,"Vibration:":"Trilling:",Volume:v7,We:y7,Wednesday:_7,"Whatsapp-cmb":"Whatsapp-cmb",Write:w7,"Write your own code":"Schrijf je eigen code",Yes:C7,"Yet exists!":"Toch bestaat!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"U kunt %s in de URL gebruiken om de huidige triggerwaarde te gebruiken, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"U kunt %s in de opdracht gebruiken om de huidige triggerwaarde te gebruiken, %id om de getriggerde object-ID te gebruiken, %name om de getriggerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"U kunt %s in de tekst gebruiken om de huidige triggerwaarde weer te geven, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam weer te geven of %old om de oude triggerwaarde te gebruiken","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"U kunt %s in de waarde gebruiken om de huidige triggerwaarde te gebruiken, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You have to enter OpenAI API key in the configuration of javascript adapter.":"U moet de OpenAI API-sleutel invoeren in de configuratie van de javascript-adapter.","[equal]":"[Gelijk]","[greater or equal]":"[groter of gelijk]","[greater]":"[groter]","[hysteresis]":"[hysterese]","[includes]":"[inclusief]","[less or equal]":"[minder of gelijk]","[less]":"[minder]","[not equal]":"[niet gelijk]",acknowledgment:S7,all:T7,and:k7,astro:E7,at:I7,"clear running":"duidelijk rennen",control:x7,copy:D7,cron:A7,dawn:O7,debug_help:R7,debug_label:M7,default:"standaard",dusk:N7,easy:L7,else:"anders","equal to":"gelijk aan",every:B7,"every hour at 0 minutes":"elk uur op 0 minuten",false:"false","file reading has failed: %s":"bestands lezen is mislukt: %s","file reading was aborted":"bestands lezen is afgebroken",filter_func:P7,filter_id:j7,filter_name:F7,filter_role:z7,filter_room:U7,"for edit or create script":"voor bewerken of een nieuw script maken","for professionals":"voor professionals","for programmers":"voor programmeurs",goldenHour:W7,goldenHourEnd:H7,"greater or equal":"groter of gelijk","greater or equal to":"groter of gelijk aan","greater than":"groter dan",help_just_check:V7,help_on_change:G7,"high priority":"hoge prioriteit","high-priority":"hoge prioriteit","highest priority":"hoogste prioriteit",hours:K7,includes:J7,interval:q7,"just check":"kijk maar","less or equal":"minder of gelijk","less or equal to":"minder of gelijk aan","less than":"minder dan","lower priority":"lagere prioriteit","lowest priority":"laagste prioriteit",magic:Y7,milliseconds:X7,minutes:Z7,ms:Q7,nadir:eK,nauticalDawn:tK,nauticalDusk:nK,nextSunrise:sK,nextSunset:rK,night:iK,nightEnd:oK,"no blocks found":"Geen blokken gevonden","no group":"GEEN GROEP",normal:aK,"normal priority":"normale prioriteit","not equal to":"niet gelijk aan","not properly connected":"Dit blok is niet correct verbonden met andere blokken.",offset:lK,"on change":"bij verandering","on condition change":"op voorwaarde verandering","on update":"bij update",one:cK,or:uK,quiet:dK,"reset search":"reset zoeken",search:hK,seconds:pK,solarNoon:gK,"store in":"opslaan in",sunrise:fK,sunriseEnd:mK,sunset:bK,sunsetStart:$K,then:vK,"toggle value":"schakelwaarde",tooltip_ack:yK,tooltip_from:_K,tooltip_lc:wK,tooltip_quality:CK,tooltip_ts:SK,tooltip_user:TK,tooltip_value:kK,true:"waar",two:EK,undefined:"ongedefinieerd",update:IK,"use seconds":"gebruik seconden","use trigger value":"triggerwaarde gebruiken",verbose_help:xK,verbose_label:DK,when:AK,with:"met","with date":"met datum","with offset":"met offset",wizard:OK},MK="Potwierdzony",NK="Działania",LK="Dodaj",BK="Wszystko",PK="Każdy",jK="Zastosuj",FK="Kwiecień",zK="Zapytać",UK="Astronomiczny",WK="Sierpień",HK="Odwołaj",VK="Zamknij",GK="Stan",KK="Warunki",JK="Konsola",qK="Skopiowano",YK="Grudzień",XK="Domyślna",ZK="Opóźnienie",QK="Usuń",eJ="Opis",tJ="Gotowe",nJ="Uruchom shell",sJ="Wyjaśnienie",rJ="Eksport",iJ="Luty",oJ="Luty",aJ="Filtr",lJ="Folder",cJ="Pt",uJ="Piątek",dJ="ID",hJ="ID1",pJ="ID2",gJ="Import",fJ="Instancja",mJ="Instancje",bJ="Instrukcje",$J="Styczeń",vJ="Styczeń",yJ="Lipiec",_J="Czerwiec",wJ="Limit",CJ="Marzec",SJ="Maj",TJ="Menu",kJ="Wiadomość",EJ="Po",IJ="Model",xJ="Poniedziałek",DJ="Miesiąc",AJ="Więcej",OJ="Nazwa",RJ="Listopad",MJ="OK",NJ="Październik",LJ="Ok",BJ="Pauza",PJ="Pushover",jJ="Pushsafer",FJ="Przemianuj",zJ="Powtórz",UJ="Uruchom ponownie",WJ="Wynik",HJ="So",VJ="Sobota",GJ="Zapisz",KJ="Harmonogram",JJ="Skrypt",qJ="Wrzesień",YJ="Symulacja",XJ="Stos",ZJ="Początek",QJ="Stan",eq="Nd",tq="Niedziela",nq="Telegram",sq="Cz",rq="Czwartek",iq="Czas",oq="Wyzwolony",aq="Wyzwalacze",lq="Wt",cq="Wtorek",uq="URL",dq="Wartość",hq="Wolumen",pq="Śr",gq="Środa",fq="Pisać",mq="Tak",bq="potwierdzenie",$q="wszystko",vq="i",yq="Astro",_q="w",wq="kontrola",Cq="Kopiuj",Sq="CRON",Tq="Świt",kq="Jest to specjalny tryb, w którym stany i obiekty się nie zmieniają. Jednak w protokole będą wyświetlane tylko informacje o każdej planowanej zmianie.",Eq="Odpluskwić",Iq="Zmierzch",xq="łatwy",Dq="każdy",Aq="Funkcja",Oq="ID",Rq="Nazwa",Mq="Rola",Nq="Pokój",Lq="Złota godzina",Bq="Koniec złotej godziny",Pq="Kod zostanie wykonany tylko za każdym razem, gdy warunek będzie spełniony. Na przykład. jeśli wyzwalanie na wartość czujnika temperatury i warunek to „jeśli temperatura jest wyższa niż 20 ° C”, to działania „następnie” będą wykonywane za każdym razem, gdy czujnik wyśle temperaturę i jest powyżej 20 ° C. O 21 ° C, o 22 ° C i tak dalej.",jq="Kod zostanie wykonany tylko wtedy, gdy wynik warunku ulegnie zmianie. Na przykład. jeśli wyzwalanie na wartość czujnika temperatury i warunek „jeśli temperatura jest wyższa niż 20 ° C”, to akcje „następnie” zostaną wykonane raz, gdy temperatura przekroczy 20. Następnym razem działania „następnie” zostaną wykonane, gdy temperatura nie udaje się poniżej 20, a następnie ponownie wzrasta powyżej 20.",Fq="godziny",zq="zawiera",Uq="interwał",Wq="magia",Hq="milisekund",Vq="minuty",Gq="ms",Kq="Północ słoneczna",Jq="Żeglarski świt",qq="Żeglarski zmierzch",Yq="Następny wschód słońca",Xq="Następny zachód słońca",Zq="Noc",Qq="Koniec nocy",eY="normalny",tY="przesunięcie",nY="jeden",sY="lub",rY="cisza",iY="Szukaj",oY="sekundy",aY="Południe słoneczne",lY="Wschód słońca",cY="Koniec wschodu słońca",uY="Zachód słońca",dY="Początek zachodu słońca",hY="następnie",pY="Akceptuj",gY="Od",fY="Ostatnia zmiana",mY="Jakość",bY="Znacznik czasu",$Y="Użytkownik",vY="Wartość",yY="dwa",_Y="aktualizacja",wY="Dodaje wyniki debugowania do dziennika dla wielu poleceń systemowych",CY="Pełne dane wyjściowe dziennika",SY="gdy",TY="Wizard",kY={"%s not found":"%s nie znaleziono","()":"()","(at %s)":"(w %s)","(optional)":"(opcjonalny)","-":"-",".":".","AI code generator":"Generator kodu AI",Ack:MK,Actions:NK,"Actual time of day":"Aktualna pora dnia",Add:LK,"Add new script":"Dodaj nowy skrypt",All:BK,"All files will be accepted":"Wszystkie pliki zostaną zaakceptowane",Any:PK,"Any month":"Dowolny miesiąc",Apply:jK,April:FK,"Are you sure?":"Jesteś pewny?",Ask:zK,Astronomical:UK,"Astronomical events today":"Wydarzenia astronomiczne dzisiaj",August:WK,"Blockly description":"Tworzenie reguł za pomocą bloków graficznych","Body:":"Treść:",Cancel:HK,"Cannot delete non empty item!":"Nie można usunąć niepustego elementu!","Change layout":"Zmiana układu",'Change theme (actual "%s")':"Zmień motyw (obecnie - „%s”)","Check blocks":"Sprawdź bloki","Check is not active, because javascript adapter is disabled":"Sprawdzanie nie jest aktywne, ponieważ adapter Javascript jest wyłączony","Clear search input":"Wyczyść dane wyszukiwania","Click on this icon":"Kliknij tę ikonę",Close:VK,"Close all but current":"Zamknij wszystkie oprócz bieżących","Collapse all":"Zwinąć wszystkie","Compares current time with astronomical event":"Porównuje aktualny czas z wydarzeniem astronomicznym","Compares current time with the user specific time":"Porównuje aktualny czas z czasem określonym przez użytkownika","Compares the state value with user defined value":"Porównuje wartość stanu z wartością zdefiniowaną przez użytkownika",Condition:GK,Conditions:KK,"Configuration not saved.":"Konfiguracja nie została zapisana.",Console:JK,"Control or update some state":"Kontroluj lub aktualizuj stan","Control or update some state with delay":"Kontroluj lub aktualizuj jakiś stan z opóźnieniem","Convert blockly to javascript for ever.":"Bezpowrotna konwersja Blockly na Javascript.",Copied:qK,"Copy script":"Skopiuj skrypt","Copy to clipboard":"Skopiuj do schowka","Create new":"Utwórz nowy","Create new folder":"Utwórz nowy folder","Create new script":"Utwórz nowy skrypt","Create or edit CRON or time wizard":"Utwórz lub edytuj CRON lub kreator czasu","Dark Theme":"Ciemny schemat","Dark style":"Ciemny styl",Date:"Data","Debug instance":"Debuguj instancję","Debug options":"Opcje debugowania",December:YK,Default:XK,"Define cron...":"Zdefiniuj CRON ...","Define schedule...":"Zdefiniuj harmonogram ...",Delay:ZK,Delete:QK,"Delete %s":"Usuń %s ...","Delete folder":"Usuń folder","Delete script":"Usuń skrypt",Description:eJ,"Deselect all":"Odznacz wszystkie","Discard changes for %s":"Odrzuć zmiany dla %s",Done:tJ,"Double click to write value":"Kliknij dwukrotnie, aby zapisać wartość","Download as file":"Download jako plik plik","Drop some files here or click...":"Upuść niektóre pliki tutaj lub kliknij ...","Duplicate name":"Duplikat nazwy","Edit script or just double click":"Edytuj skrypt lub po prostu kliknij dwukrotnie","Empty name is not allowed":"Pusta nazwa jest niedozwolona","End search mode":"Zakończ tryb wyszukiwania","Enter your question":"Wpisz swoją prośbę",Error:"Błąd","Error formatting code":"Błąd formatowania kodu","Error was found":"Błąd został znaleziony","Every day":"Codziennie",Exec:nJ,"Executes some shell command":"Wykonuje polecenie powłoki","Existing scripts will be overwritten.":"Istniejące skrypty zostaną zastąpione.","Expand all":"Rozwiń wszystkie","Expert mode":"Tryb ekspercki",Explanation:sJ,Export:rJ,"Export all scripts":"Wyeksportuj wszystkie skrypty","Export blocks":"Eksportuj bloki","Export selected blocks":"Eksportuj wybrane bloki",Februar:iJ,February:oJ,Filter:aJ,Folder:lJ,Fr:cJ,Friday:uJ,Function:"Funkcja","Function editor":"Edytor funkcji","Function: executed":"Funkcja: wykonywana","Go to next line":"Przejdź do następnej linii","HTTP Call":"Połączenie HTTP","Hide logs":"Ukryj dzienniki",ID:dJ,ID1:hJ,ID2:pJ,Import:gJ,"Import blocks":"Importuj bloki","Import error":"Błąd importowania","Import scripts":"Importuj skrypty","Insert object ID":"Wstaw identyfikator obiektu",Instance:fJ,"Instance is disabled":"Instancja jest wyłączona","Instance:":"Instancja:",Instances:mJ,Instructions:bJ,"Invalid CRON":"Nieprawidłowy CRON","It will not be possible to revert this operation.":"Cofnięcie tej operacji nie będzie możliwe.","JS description":"Tworzenie reguł w Javascript",Januar:$J,January:vJ,July:yJ,June:_J,"Just check":"Po prostu sprawdź","Language:":"Język:","Learn More":"Ucz się więcej","Light style":"Lekki styl",Limit:wJ,"Local time":"Czas lokalny","Locate file":"Znajdź plik","Log outputs":"Log dziennika","Log text":"Tekst dziennika","Log: %s":"Dziennik: %s","Make a HTTP get request":"Złóż żądanie HTTP get","Make a pause between actions":"Zrób przerwę między czynnościami",March:CJ,"March ":"Marzec ",May:SJ,Menu:TJ,Message:kJ,Mo:EJ,Model:IJ,Monday:xJ,Month:DJ,More:AJ,Name:OJ,"No Chat GPT Key found":"Nie znaleziono klucza GPT czatu","No active host found":"Nie znaleziono aktywnego hosta","Nothing found":"Nic nie znaleziono",November:RJ,OK:MJ,October:NJ,Ok:LJ,"On condition change":"W przypadku zmiany warunków","On script save or adapter start":"Podczas zapisywania skryptu lub uruchamiania adaptera","On weekdays":"W dni powszednie","Open configuration":"Otwarta konfiguracja","Operate two states":"Obsługuj dwa stany","Operations with two states":"Operacje z dwoma stanami","Paste your blocks here":"Wklej tutaj swoje bloki",Pause:BJ,"Pause execution":"Wstrzymaj wykonanie","Pause script":"Wstrzymaj skrypt","Phone:":"Telefon:","Please select object ID...":"Wybierz identyfikator obiektu ...","Press Ctrl+Enter to get the answer":"Naciśnij klawisze Ctrl+Enter, aby uzyskać odpowiedź","Prettify the script":"Upiększ skrypt","Print some text in log":"Wydrukuj tekst w dzienniku","Priority:":"Priorytet:",Pushover:PJ,Pushsafer:jJ,"Read only ID selected: %s":"Wybrano identyfikator tylko do odczytu: %s",Rename:FJ,"Reorder scripts in folders":"Zmień kolejność skryptów w folderach",Repeat:zJ,Restart:UJ,Result:WJ,"Resume execution":"Wznów wykonanie","Root folder":"Folder główny","Rules description":"Twórz reguły z blokami IF, THEN, ELSE","Run script":"Uruchom skrypt",Sa:HJ,Saturday:VJ,Save:GJ,"Save all":"Zapisz wszystko","Say It":"Wypowiedz","Say some text via sayit adapter":"Powiedz tekst przez adapter sayit",Schedule:KJ,Script:JJ,"Script %s was modified on disk":"Skrypt %s został zmodyfikowany na dysku","Script is not running":"Skrypt nie działa","Search in scripts":"Szukaj w skryptach","Search...":"Szukaj...","Select all":"Zaznacz wszystko","Send email":"Wysłać email","Sends an email":"Wysyła e-mail","Sends message via Pushsafer":"Wysyła wiadomość przez Pushsafer","Sends message via pushover":"Wysyła wiadomość przez pushover","Sends message via telegram":"Wysyła wiadomość telegramem","Sends message via whatsapp-cmb":"Wysyła wiadomość przez WhatsApp-cmb",September:qJ,"Server time":"Czas serwera","Set state action":"Ustaw stan działania","Set with delay":"Ustaw z opóźnieniem","Shell command":"Polecenie powłoki","Show astronomical events":"Pokaż wydarzenia astronomiczne","Show javascript code":"Pokaż kod JavaScript","Show logs":"Pokaż dzienniki","Show only paused scripts":"Pokaż tylko wstrzymane skrypty","Show only running scripts":"Pokaż tylko działające skrypty","Show only scripts with problems":"Pokaż tylko skrypty z problemami",Simulate:YJ,"Some files will be rejected":"Niektóre pliki zostaną odrzucone","Sound:":"Dźwięk:",Stack:XJ,Start:ZJ,"Start script":"Uruchom skrypt",State:QJ,"State condition":"Warunek stanu","Step into function":"Wejdź do funkcji","Step out from function":"Wyjdź z funkcji","Stop on exception":"Zatrzymaj się na wyjątku",Su:eq,"Subject:":"Temat:",Sunday:tq,"TS description":"Tworzenie reguł w Typescript",Telegram:nq,"Text:":"Tekst:",Th:sq,"The script will be stopped and must be activated manually after debugging. Continue?":"Skrypt zostanie zatrzymany i należy go aktywować ręcznie po debugowaniu. Kontyntynuj?","This is advances option. You can write your own code here and it will be executed on trigger":"To jest opcja zaawansowana. Możesz tutaj napisać własny kod, który zostanie wykonany po wyzwoleniu",Thursday:rq,Time:iq,"Time condition":"Warunek czasowy","Title:":"Tytuł:","To:":"Do:","Trigger with value":"Wyzwalacz z wartością",Triggered:oq,Triggers:aq,"Triggers the on script saving or the javascript instance restart":"Uruchamia zapisywanie skryptu lub restart instancji javascript","Triggers the rule on update or change of some state":"Uruchamia regułę przy aktualizacji lub zmianie jakiegoś stanu","Triggers the rule periodically or on some specific time":"Uruchamia regułę okresowo lub w określonym czasie",Tu:lq,Tuesday:cq,URL:uq,"Unknown error":"Nieznany błąd","Unknown error!":"Nieznany błąd!","Use generated code":"Użyj wygenerowanego kodu","User function":"Funkcja użytkownika","User:":"Użytkownik:",Value:dq,"Vibration:":"Wibracja:",Volume:hq,We:pq,Wednesday:gq,"Whatsapp-cmb":"Whatsapp-cmb",Write:fq,"Write your own code":"Napisz swój własny kod",Yes:mq,"Yet exists!":"A jednak istnieje!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Możesz użyć %s w adresie URL, aby użyć bieżącej wartości wyzwalacza, %id, aby użyć wyzwalanego identyfikatora obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwalanego obiektu, lub %old, aby użyć starej wartości wyzwalacza","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Możesz użyć %s w poleceniu, aby użyć bieżącej wartości wyzwalającej, %id, aby użyć identyfikatora wyzwalanego obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwalanego obiektu, lub %old, aby użyć starej wartości wyzwalającej","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Możesz użyć %s w tekście, aby wyświetlić aktualną wartość wyzwalającą, %id, aby użyć identyfikatora wyzwolonego obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwolonego obiektu lub %old, aby użyć starej wartości wyzwalającej","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Możesz użyć %s w wartości, aby użyć bieżącej wartości wyzwalacza, %id, aby użyć identyfikatora wyzwalanego obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwalanego obiektu, lub %old, aby użyć starej wartości wyzwalacza","You have to enter OpenAI API key in the configuration of javascript adapter.":"Należy wprowadzić klucz OpenAI API w konfiguracji adaptera javascript.","[equal]":"[równy]","[greater or equal]":"[większe lub równe]","[greater]":"[większe]","[hysteresis]":"[histereza]","[includes]":"[obejmuje]","[less or equal]":"[mniejsze lub równe]","[less]":"[mniejsze]","[not equal]":"[nie równe]",acknowledgment:bq,all:$q,and:vq,astro:yq,at:_q,"clear running":"czyste uruchomienie",control:wq,copy:Cq,cron:Sq,dawn:Tq,debug_help:kq,debug_label:Eq,default:"domyślna",dusk:Iq,easy:xq,else:"inaczej","equal to":"równy",every:Dq,"every hour at 0 minutes":"co godzinę po 0 minutach",false:"fałsz","file reading has failed: %s":"odczyt pliku nie powiódł się: %s","file reading was aborted":"odczyt pliku został przerwany",filter_func:Aq,filter_id:Oq,filter_name:Rq,filter_role:Mq,filter_room:Nq,"for edit or create script":"do edycji lub utwórz nowy skrypt","for professionals":"dla profesjonalistów","for programmers":"dla programistów",goldenHour:Lq,goldenHourEnd:Bq,"greater or equal":"większe lub równe","greater or equal to":"więcej lub równo","greater than":"więcej niż",help_just_check:Pq,help_on_change:jq,"high priority":"wysoki priorytet","high-priority":"wysoki priorytet","highest priority":"najwyższy priorytet",hours:Fq,includes:zq,interval:Uq,"just check":"po prostu sprawdź","less or equal":"mniejsze lub równe","less or equal to":"mniej lub równo","less than":"mniej niż","lower priority":"niższy priorytet","lowest priority":"najniższy priorytet",magic:Wq,milliseconds:Hq,minutes:Vq,ms:Gq,nadir:Kq,nauticalDawn:Jq,nauticalDusk:qq,nextSunrise:Yq,nextSunset:Xq,night:Zq,nightEnd:Qq,"no blocks found":"Nie znaleziono bloków","no group":"BRAK GRUPY",normal:eY,"normal priority":"normalny priorytet","not equal to":"nie równa się","not properly connected":"Ten blok nie jest poprawnie podłączony do innych bloków.",offset:tY,"on change":"na zmianę","on condition change":"pod warunkiem zmiany warunków","on update":"po aktualizacji",one:nY,or:sY,quiet:rY,"reset search":"zresetuj wyszukiwanie",search:iY,seconds:oY,solarNoon:aY,"store in":"przechowaj w",sunrise:lY,sunriseEnd:cY,sunset:uY,sunsetStart:dY,then:hY,"toggle value":"wartość przełączania",tooltip_ack:pY,tooltip_from:gY,tooltip_lc:fY,tooltip_quality:mY,tooltip_ts:bY,tooltip_user:$Y,tooltip_value:vY,true:"prawda",two:yY,undefined:"nieokreślony",update:_Y,"use seconds":"użyj sekund","use trigger value":"użyj wartości wyzwalającej",verbose_help:wY,verbose_label:CY,when:SY,with:"z","with date":"z datą","with offset":"z przesunięciem",wizard:TY},EY="Reconhecido",IY="Ações",xY="Adicionar",DY="Todos",AY="Nenhum",OY="Aplique",RY="abril",MY="Perguntar",NY="Astronômico",LY="agosto",BY="Cancelar",PY="Fechar",jY="Doença",FY="Condições",zY="Console",UY="Copiado",WY="dezembro",HY="Predefinição",VY="Atraso",GY="Deletar",KY="Descrição",JY="Pronto",qY="Exec shell",YY="Explicação",XY="Exportação",ZY="Februar",QY="fevereiro",eX="Filtro",tX="Pasta",nX="Fr",sX="Sexta-feira",rX="ID",iX="ID1",oX="ID2",aX="Importar",lX="Instância",cX="Instâncias",uX="Instruções",dX="Januar",hX="janeiro",pX="julho",gX="junho",fX="Limite",mX="março",bX="maio",$X="Menu",vX="mensagem",yX="Mo",_X="Modelo",wX="Segunda-feira",CX="Mês",SX="Mais",TX="Nome",kX="novembro",EX="OK",IX="outubro",xX="Ok",DX="Pausa",AX="Pushover",OX="Pushsafer",RX="Renomear",MX="Repetir",NX="Reiniciar",LX="Resultado",BX="Sá",PX="Sábado",jX="Salve",FX="Cronograma",zX="Script",UX="setembro",WX="Simular",HX="Pilha",VX="Começar",GX="Estado",KX="Su",JX="Domingo",qX="Telegrama",YX="4",XX="Quinta-feira",ZX="Tempo",QX="Provocado",eZ="Gatilhos",tZ="Tu",nZ="terça",sZ="URL",rZ="Valor",iZ="Volume",oZ="3",aZ="quarta",lZ="Escrever",cZ="sim",uZ="reconhecimento",dZ="todos",hZ="e",pZ="astro",gZ="no",fZ="ao controle",mZ="copiar",bZ="CRON",$Z="alvorecer",vZ="Este é um modo especial no qual estados e objetos não serão alterados. Mas apenas as informações sobre cada mudança planejada serão exibidas no protocolo.",yZ="Depurar",_Z="Crepúsculo",wZ="fácil",CZ="cada",SZ="Função",TZ="ID",kZ="Nome",EZ="Tipo",IZ="Quarto",xZ="Hora dourada",DZ="Fim da hora de ouro",AZ='O código será executado apenas sempre que a condição for verdadeira. Por exemplo. se disparar no valor do sensor de temperatura e a condição for "se a temperatura for maior que 20 ° C", as ações "então" serão executadas toda vez que o sensor enviar a temperatura e ela estiver acima de 20 ° C. Por 21 ° C, por 22 ° C e assim por diante.',OZ='O código será executado apenas se o resultado da condição mudar. Por exemplo. se disparar no valor do sensor de temperatura e a condição for "se a temperatura for maior que 20 ° C", as ações "então" serão executadas uma vez quando a temperatura estiver acima de 20. Na próxima vez, as ações "então" serão executadas quando a temperatura falha abaixo de 20 e sobe acima de 20 novamente.',RZ="horas",MZ="inclui",NZ="intervalo",LZ="Magia",BZ="milissegundos",PZ="minutos",jZ="ms",FZ="nadir",zZ="Madrugada náutica",UZ="Crepúsculo náutico",WZ="próximo nascer do sol",HZ="Próximo pôr do sol",VZ="Noite",GZ="Fim de noite",KZ="normal",JZ="Deslocamento",qZ="1",YZ="ou",XZ="quieto",ZZ="procurar",QZ="segundos",eQ="Meio-dia solar",tQ="nascer do sol",nQ="Fim do nascer do sol",sQ="pôr do sol",rQ="Começo do pôr do sol",iQ="então",oQ="reconhecer",aQ="de",lQ="Última alteração",cQ="Qualidade",uQ="timestamp",dQ="usuário",hQ="valor",pQ="dois",gQ="atualizar",fQ="Adiciona saída de depuração ao log para muitos comandos do sistema",mQ="Saídas de log detalhadas",bQ="quando",$Q="Wizard",vQ={"%s not found":"%s não encontrado","()":"()","(at %s)":"(em %s)","(optional)":"(opcional)","-":"-",".":".","AI code generator":"Gerador de código de IA",Ack:EY,Actions:IY,"Actual time of day":"Hora real do dia",Add:xY,"Add new script":"Adicionar novo script",All:DY,"All files will be accepted":"Todos os arquivos serão aceitos",Any:AY,"Any month":"Qualquer mês",Apply:OY,April:RY,"Are you sure?":"Você tem certeza?",Ask:MY,Astronomical:NY,"Astronomical events today":"Eventos astronômicos hoje",August:LY,"Blockly description":"Criando regras por blocos gráficos","Body:":"Corpo:",Cancel:BY,"Cannot delete non empty item!":"Não pode ser deletar, porque não está vazio!","Change layout":"Alterar layout",'Change theme (actual "%s")':'Alterar tema (agora - "%s")',"Check blocks":"Verificar blocos","Check is not active, because javascript adapter is disabled":"A verificação de sintaxe não está ativa porque o adaptador javascript não está rodando.","Clear search input":"Limpar entrada de pesquisa","Click on this icon":"Clique neste ícone",Close:PY,"Close all but current":"Fechar tudo, menos atual","Collapse all":"Recolher todos","Compares current time with astronomical event":"Compara o tempo atual com o evento astronômico","Compares current time with the user specific time":"Compara a hora atual com a hora específica do usuário","Compares the state value with user defined value":"Compara o valor do estado com o valor definido pelo usuário",Condition:jY,Conditions:FY,"Configuration not saved.":"Configuração não esta salva.",Console:zY,"Control or update some state":"Controlar ou atualizar algum estado","Control or update some state with delay":"Controlar ou atualizar algum estado com atraso","Convert blockly to javascript for ever.":"Converter Blockly em Javascript permanentemente.",Copied:UY,"Copy script":"Copiar script","Copy to clipboard":"Copiar para área de transferência","Create new":"Crie um novo","Create new folder":"Criar nova pasta","Create new script":"Criar novo script","Create or edit CRON or time wizard":"Criar ou editar o assistente cron ou o assistente de horário","Dark Theme":"Layout escuro","Dark style":"Estilo escuro",Date:"Encontro","Debug instance":"Instância de depuração","Debug options":"Opções de depuração",December:WY,Default:HY,"Define cron...":"Definir cron...","Define schedule...":"Definir agendamento ...",Delay:VY,Delete:GY,"Delete %s":"Deletar %s...","Delete folder":"Deletar pasta","Delete script":"Deletar script",Description:KY,"Deselect all":"Desmarcar todos","Discard changes for %s":"Descartar alterações para %s",Done:JY,"Double click to write value":"Clique duas vezes para escrever o valor","Download as file":"Baixar como arquivo","Drop some files here or click...":"Solte alguns arquivos aqui ou clique em...","Duplicate name":"Nome duplicado","Edit script or just double click":"Edite o script ou clique duas vezes","Empty name is not allowed":"Nome vazio não é permitido","End search mode":"Finalizar modo de pesquisa","Enter your question":"Digite sua solicitação",Error:"Erro","Error formatting code":"Erro de formatação de código","Error was found":"Erro foi encontrado","Every day":"Todos os dias",Exec:qY,"Executes some shell command":"Executa algum comando shell","Existing scripts will be overwritten.":"Os scripts existentes serão substituídos.","Expand all":"Expandir todos","Expert mode":"Modo de especialista",Explanation:YY,Export:XY,"Export all scripts":"Exportar todos os scripts","Export blocks":"Exportar blocos","Export selected blocks":"Exportar blocos selecionados",Februar:ZY,February:QY,Filter:eX,Folder:tX,Fr:nX,Friday:sX,Function:"Função","Function editor":"Editor de funções","Function: executed":"Função: executado","Go to next line":"Vá para a próxima linha","HTTP Call":"Chamada HTTP","Hide logs":"Ocultar logs",ID:rX,ID1:iX,ID2:oX,Import:aX,"Import blocks":"Importar blocos","Import error":"Erro de importação","Import scripts":"Importar script","Insert object ID":"Inserir ID do objeto",Instance:lX,"Instance is disabled":"Instância está desativada","Instance:":"Instância:",Instances:cX,Instructions:uX,"Invalid CRON":"CRON inválido","It will not be possible to revert this operation.":"Não será possível reverter esta operação.","JS description":"Criando regras escrevendo Javascript",Januar:dX,January:hX,July:pX,June:gX,"Just check":"Apenas verifique","Language:":"Língua:","Learn More":"Aprender mais","Light style":"Estilo claro",Limit:fX,"Local time":"Hora local","Locate file":"Localize o arquivo","Log outputs":"Saídas de log","Log text":"Texto de registro","Log: %s":"Log: %s","Make a HTTP get request":"Faça uma solicitação HTTP get","Make a pause between actions":"Faça uma pausa entre as ações",March:mX,"March ":"Março",May:bX,Menu:$X,Message:vX,Mo:yX,Model:_X,Monday:wX,Month:CX,More:SX,Name:TX,"No Chat GPT Key found":"Nenhuma chave GPT de bate-papo encontrada","No active host found":"Nenhum host ativo encontrado","Nothing found":"Nada encontrado",November:kX,OK:EX,October:IX,Ok:xX,"On condition change":"Na mudança de condição","On script save or adapter start":"Ao salvar o script ou iniciar o adaptador","On weekdays":"Nos dias úteis","Open configuration":"Configuração aberta","Operate two states":"Operar dois estados","Operations with two states":"Operações com dois estados","Paste your blocks here":"Cole seus blocos aqui",Pause:DX,"Pause execution":"Pausar a execução","Pause script":"Pausar script","Phone:":"Telefone:","Please select object ID...":"Selecione o ID do objeto...","Press Ctrl+Enter to get the answer":"Pressione Ctrl+Enter para obter a resposta","Prettify the script":"Embeleze o roteiro","Print some text in log":"Imprimir algum texto no log","Priority:":"Prioridade:",Pushover:AX,Pushsafer:OX,"Read only ID selected: %s":"ID somente leitura selecionada: %s",Rename:RX,"Reorder scripts in folders":"Reordenar scripts em pastas",Repeat:MX,Restart:NX,Result:LX,"Resume execution":"Retomar execução","Root folder":"Pasta principal","Rules description":"Crie regras com blocos IF, THEN, ELSE","Run script":"Executar script",Sa:BX,Saturday:PX,Save:jX,"Save all":"Salvar tudo","Say It":"Say It","Say some text via sayit adapter":"Diga algum texto através do adaptador sayit",Schedule:FX,Script:zX,"Script %s was modified on disk":'O script "%s" foi modificado no disco rígido',"Script is not running":"Script não está sendo executado","Search in scripts":"Pesquisa em scripts","Search...":"Procurar...","Select all":"Selecionar tudo","Send email":"Enviar email","Sends an email":"Envia um email","Sends message via Pushsafer":"Envia mensagem via Pushsafer","Sends message via pushover":"Envia mensagem via pushover","Sends message via telegram":"Envia mensagem via telegrama","Sends message via whatsapp-cmb":"Envia mensagem via whatsapp-cmb",September:UX,"Server time":"Tempo de servidor","Set state action":"Definir ação de estado","Set with delay":"Definido com atraso","Shell command":"Comando shell","Show astronomical events":"Mostrar eventos astronômicos","Show javascript code":"Mostrar código Javascript","Show logs":"Mostrar logs","Show only paused scripts":"Mostrar apenas scripts pausados","Show only running scripts":"Mostrar apenas scripts em execução","Show only scripts with problems":"Mostrar apenas scripts com problemas",Simulate:WX,"Some files will be rejected":"Alguns arquivos serão rejeitados","Sound:":"Som:",Stack:HX,Start:VX,"Start script":"Iniciar script",State:GX,"State condition":"Condição de estado","Step into function":"Entre na função","Step out from function":"Saia da função","Stop on exception":"Pare na exceção",Su:KX,"Subject:":"Sujeito:",Sunday:JX,"TS description":"Criando regras escrevendo Typecript",Telegram:qX,"Text:":"Texto:",Th:YX,"The script will be stopped and must be activated manually after debugging. Continue?":"O script será interrompido e deve ser ativado manualmente após a depuração. Continuar?","This is advances option. You can write your own code here and it will be executed on trigger":"Esta é a opção de avanços. Você pode escrever seu próprio código aqui e ele será executado no gatilho",Thursday:XX,Time:ZX,"Time condition":"Condição de tempo","Title:":"Título:","To:":"Para:","Trigger with value":"Trigger com valor",Triggered:QX,Triggers:eZ,"Triggers the on script saving or the javascript instance restart":"Aciona o salvamento do script ou a reinicialização da instância javascript","Triggers the rule on update or change of some state":"Aciona a regra na atualização ou mudança de algum estado","Triggers the rule periodically or on some specific time":"Aciona a regra periodicamente ou em algum momento específico",Tu:tZ,Tuesday:nZ,URL:sZ,"Unknown error":"Erro desconhecido","Unknown error!":"Erro desconhecido!","Use generated code":"Usar código gerado","User function":"Função do usuário","User:":"Do utilizador:",Value:rZ,"Vibration:":"Vibração:",Volume:iZ,We:oZ,Wednesday:aZ,"Whatsapp-cmb":"Whatsapp-cmb",Write:lZ,"Write your own code":"Escreva seu próprio código",Yes:cZ,"Yet exists!":"Ainda existe!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Você pode usar %s na URL para usar o valor do gatilho atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do gatilho antigo","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Você pode usar %s no comando para usar o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Você pode usar %s no texto para exibir o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Você pode usar %s no valor para usar o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","You have to enter OpenAI API key in the configuration of javascript adapter.":"Você deve inserir a chave da API OpenAI na configuração do adaptador javascript.","[equal]":"[igual]","[greater or equal]":"[maior ou igual]","[greater]":"[maior]","[hysteresis]":"[histerese]","[includes]":"[inclui]","[less or equal]":"[menor ou igual]","[less]":"[menos]","[not equal]":"[não igual]",acknowledgment:uZ,all:dZ,and:hZ,astro:pZ,at:gZ,"clear running":"corrida limpa",control:fZ,copy:mZ,cron:bZ,dawn:$Z,debug_help:vZ,debug_label:yZ,default:"predefinição",dusk:_Z,easy:wZ,else:"outro","equal to":"igual a",every:CZ,"every hour at 0 minutes":"a cada hora em 0 minutos",false:"falso","file reading has failed: %s":"a leitura do arquivo falhou: %s","file reading was aborted":"a leitura do arquivo foi abortada",filter_func:SZ,filter_id:TZ,filter_name:kZ,filter_role:EZ,filter_room:IZ,"for edit or create script":"para editar ou criar um novo script","for professionals":"para profissionais","for programmers":"para programadores",goldenHour:xZ,goldenHourEnd:DZ,"greater or equal":"maior ou igual","greater or equal to":"maior ou igual a","greater than":"Maior que",help_just_check:AZ,help_on_change:OZ,"high priority":"prioridade máxima","high-priority":"prioridade máxima","highest priority":"Prioridade máxima",hours:RZ,includes:MZ,interval:NZ,"just check":"Apenas verifique","less or equal":"menor ou igual","less or equal to":"menor ou igual a","less than":"Menor que","lower priority":"prioridade mais baixa","lowest priority":"prioridade mais baixa",magic:LZ,milliseconds:BZ,minutes:PZ,ms:jZ,nadir:FZ,nauticalDawn:zZ,nauticalDusk:UZ,nextSunrise:WZ,nextSunset:HZ,night:VZ,nightEnd:GZ,"no blocks found":"Nenhum bloco encontrado","no group":"SEM GRUPO",normal:KZ,"normal priority":"prioridade normal","not equal to":"não é igual a","not properly connected":"Este bloco não está conectado corretamente com outros blocos.",offset:JZ,"on change":"em mudança","on condition change":"na mudança de condição","on update":"em atualização",one:qZ,or:YZ,quiet:XZ,"reset search":"redefinir pesquisa",search:ZZ,seconds:QZ,solarNoon:eQ,"store in":"armazenar em",sunrise:tQ,sunriseEnd:nQ,sunset:sQ,sunsetStart:rQ,then:iQ,"toggle value":"valor de alternância",tooltip_ack:oQ,tooltip_from:aQ,tooltip_lc:lQ,tooltip_quality:cQ,tooltip_ts:uQ,tooltip_user:dQ,tooltip_value:hQ,true:"verdade",two:pQ,undefined:"Indefinido",update:gQ,"use seconds":"use segundos","use trigger value":"use o gatilho",verbose_help:fQ,verbose_label:mQ,when:bQ,with:"com","with date":"com data","with offset":"com deslocamento",wizard:$Q},yQ="Подтверждение",_Q="Действия",wQ="Добавить",CQ="Все",SQ="Любая",TQ="Применить",kQ="Апрель",EQ="Спросить",IQ="Aстрономический",xQ="Август",DQ="Отмена",AQ="Закрыть",OQ="Условие",RQ="Условия",MQ="Приставка",NQ="Скопировано",LQ="Декабрь",BQ="Дефолт",PQ="Задержка",jQ="Удалить",FQ="Описание",zQ="Готово",UQ="Исполнить shell",WQ="Объяснение",HQ="Экспорт",VQ="Февраль",GQ="Февраль",KQ="Фильтр",JQ="Папка",qQ="Пт",YQ="пятница",XQ="ID",ZQ="ID1",QQ="ID2",eee="Импорт",tee="Экземпляр",nee="Экземпляры",see="Инструкции",ree="Январь",iee="Январь",oee="Июль",aee="Июнь",lee="Предел",cee="Март",uee="Май",dee="Меню",hee="Сообщение",pee="Пн",gee="Модель",fee="понедельник",mee="Месяц",bee="Более",$ee="Имя",vee="Ноябрь",yee="Ок",_ee="Октябрь",wee="Ok",Cee="Пауза",See="Pushover",Tee="Pushsafer",kee="Переименовать",Eee="Повторение",Iee="Перезапустить",xee="Результат",Dee="Сб",Aee="суббота",Oee="Сохранить",Ree="Расписание",Mee="скрипт",Nee="Сентябрь",Lee="Симулировать",Bee="Stack",Pee="Начинать",jee="Состояние",Fee="Вс",zee="Воскресенье",Uee="Telegram",Wee="Чт",Hee="Четверг",Vee="Время",Gee="Срабатывает",Kee="Триггеры",Jee="Вт",qee="вторник",Yee="URL",Xee="Значение",Zee="Громкость",Qee="Ср",ete="среда",tte="Напишите",nte="Да",ste="подтверждение",rte="все",ite="и",ote="Астро",ate="в",lte="контроль",cte="копия",ute="CRON",dte="Рассвет",hte="Это особый режим, в котором состояния и объекты не будут меняться. Но в протоколе будет отображаться только информация о каждом планируемом изменении.",pte="Отлаживать",gte="Сумерки",fte="легкий",mte="каждые(ый)",bte="Функция",$te="ID",vte="Название",yte="Роль",_te="Комната",wte="Золотой час",Cte="Конец золотого часа",Ste="Код будет выполняться только каждый раз, когда условие истинно. Например. при срабатывании по значению датчика температуры и условию «если температура выше 20°C», действия «затем» будут выполняться каждый раз, когда датчик отправляет значение температуры, и оно превышает 20°C. На 21°С, на 22°С и так далее.",Tte="Код будет выполнен только в случае изменения результата условия. Например, при срабатывании по значению датчика температуры и условию «если температура больше 20°C», действия «затем» будут выполнены один раз, когда температура превысит 20°C. В следующий раз действия «затем» будут выполнены, когда температура опустится ниже 20°C, а затем снова поднимается выше 20°C.",kte="час(ов)",Ete="содержит",Ite="интервал",xte="магия",Dte="миллисекунды",Ate="минут(у)",Ote="мс",Rte="Надир",Mte="Морской рассвет",Nte="Морские сумерки",Lte="Следующий восход",Bte="Следующий закат",Pte="Ночь",jte="Конец ночи",Fte="нормальный",zte="сдвиг",Ute="один",Wte="или",Hte="тихий",Vte="поиск",Gte="секунд",Kte="Солнечный полдень",Jte="Восход солнца",qte="Конец восхода",Yte="Закат солнца",Xte="Начало заката",Zte="тогда",Qte="Подтверждено",ene="От",tne="Последнее изменение",nne="Качественный",sne="Время",rne="Пользователь",ine="Значение",one="два",ane="обновить",lne="Добавляет вывод отладки в журнал для многих системных команд.",cne="Подробный протокол",une="если",dne="Мастер",hne={"%s not found":"%s не найден","()":"()","(at %s)":"(в %s)","(optional)":"(необязательный)","-":"-",".":".","AI code generator":"ИИ Генератор кода",Ack:yQ,Actions:_Q,"Actual time of day":"Фактическое время суток",Add:wQ,"Add new script":"Добавить новый скрипт",All:CQ,"All files will be accepted":"Все файлы будут приняты",Any:SQ,"Any month":"В любой месяц",Apply:TQ,April:kQ,"Are you sure?":"Вы уверены?",Ask:EQ,Astronomical:IQ,"Astronomical events today":"Астрономические события сегодня",August:xQ,"Blockly description":"Создание правил графическими блоками","Body:":"Тело:",Cancel:DQ,"Cannot delete non empty item!":"Не удается удалить непустой элемент!","Change layout":"Изменить макет",'Change theme (actual "%s")':'Сменить тему (сейчас - "%s")',"Check blocks":"Проверить блоки","Check is not active, because javascript adapter is disabled":"Проверка неактивна, потому что адаптер Javascript отключен","Clear search input":"Очистить ввод","Click on this icon":"Нажмите на этот значок",Close:AQ,"Close all but current":"Закрыть все кроме текущего","Collapse all":"Свернуть все","Compares current time with astronomical event":"Сравнивает текущее время с астрономическим событием","Compares current time with the user specific time":"Сравнивает текущее время с конкретным временем пользователя","Compares the state value with user defined value":"Сравнивает значение состояния с пользовательским значением",Condition:OQ,Conditions:RQ,"Configuration not saved.":"Конфигурация не сохранена.",Console:MQ,"Control or update some state":"Контролировать или обновлять какое-то состояние","Control or update some state with delay":"Контролировать или обновлять какое-либо состояние с задержкой","Convert blockly to javascript for ever.":"Преобразовать blockly в Javascript навсегда.",Copied:NQ,"Copy script":"Скопировать скрипт","Copy to clipboard":"Скопировать в буфер обмена","Create new":"Создать новый","Create new folder":"Создать новую папку","Create new script":"Создать новый скрипт","Create or edit CRON or time wizard":"Создание или редактирование CRON или мастера времени","Dark Theme":"Тёмная тема","Dark style":"Темный стиль",Date:"Дата","Debug instance":"Экземпляр отладки","Debug options":"Варианты отладки",December:LQ,Default:BQ,"Define cron...":"Задать правило ...","Define schedule...":"Задать расписание...",Delay:PQ,Delete:jQ,"Delete %s":"Удалить %s...","Delete folder":"Удалить папку","Delete script":"Удалить скрипт",Description:FQ,"Deselect all":"Снять выбор со всех","Discard changes for %s":"Отменить изменения для %s",Done:zQ,"Double click to write value":"Двойной щелчок для записи значения","Download as file":"Скачать как файл","Drop some files here or click...":"Перетыщите сюда файлы или нажмите ...","Duplicate name":"Повторяющееся имя","Edit script or just double click":"Редактировать скрипт или просто дважды щелкнуть","Empty name is not allowed":"Пустое имя не допускается","End search mode":"Закончить поиск","Enter your question":"Введи свою просьбу",Error:"Ошибка","Error formatting code":"Ошибка форматирования кода","Error was found":"Ошибка была найдена","Every day":"Каждый день",Exec:UQ,"Executes some shell command":"Выполняет некоторую команду оболочки","Existing scripts will be overwritten.":"Существующие скрипты будут перезаписаны.","Expand all":"Открыть все","Expert mode":"Экспертный режим",Explanation:WQ,Export:HQ,"Export all scripts":"Экспорт всех скриптов","Export blocks":"Экспортировать блоки","Export selected blocks":"Экспортировать выбранные блоки",Februar:VQ,February:GQ,Filter:KQ,Folder:JQ,Fr:qQ,Friday:YQ,Function:"Функция","Function editor":"Редактор функции","Function: executed":"Функция: выполнено","Go to next line":"Перейти к следующей строке","HTTP Call":"HTTP-вызов","Hide logs":"Скрыть журналы",ID:XQ,ID1:ZQ,ID2:QQ,Import:eee,"Import blocks":"Импортировать блоки","Import error":"Ошибка импорта","Import scripts":"Импорт скриптов","Insert object ID":"Вставить ID объекта",Instance:tee,"Instance is disabled":"Экземпляр отключен","Instance:":"Пример:",Instances:nee,Instructions:see,"Invalid CRON":"Неправильный CRON","It will not be possible to revert this operation.":"Невозможно вернуть эту операцию.","JS description":"Создание правил путём написания Javascript",Januar:ree,January:iee,July:oee,June:aee,"Just check":"Просто проверить","Language:":"Язык:","Learn More":"Узнать больше","Light style":"Светлый стиль",Limit:lee,"Local time":"Местное время","Locate file":"Показать файл в дереве","Log outputs":"Журнал","Log text":"Текст журнала","Log: %s":"Журнал: %s","Make a HTTP get request":"Сделайте HTTP-запрос на получение","Make a pause between actions":"Сделайте паузу между действиями",March:cee,"March ":"Март ",May:uee,Menu:dee,Message:hee,Mo:pee,Model:gee,Monday:fee,Month:mee,More:bee,Name:$ee,"No Chat GPT Key found":"Ключ GPT для чата не найден","No active host found":"Активный host не найден","Nothing found":"Ничего не найдено",November:vee,OK:yee,October:_ee,Ok:wee,"On condition change":"При изменении реузльтата условий","On script save or adapter start":"При сохранении скрипта или запуске адаптера","On weekdays":"По дням недели","Open configuration":"Открыть настройки","Operate two states":"Операции над двумя состояниями","Operations with two states":"Операции с двумя состояниями","Paste your blocks here":"Вставьте свои блоки сюда",Pause:Cee,"Pause execution":"Приостановить выполнение","Pause script":"Остановить скрипт","Phone:":"Телефон:","Please select object ID...":"Пожалуйста, выберите ID объекта ...","Press Ctrl+Enter to get the answer":"Нажмите Ctrl+Enter, чтобы получить ответ","Prettify the script":"Украсьте сценарий","Print some text in log":"Напечатать текст в журнале","Priority:":"Приоритет:",Pushover:See,Pushsafer:Tee,"Read only ID selected: %s":"Выбран идентификатор только для чтения: %s",Rename:kee,"Reorder scripts in folders":"Сортировать скрипты в папках",Repeat:Eee,Restart:Iee,Result:xee,"Resume execution":"Возобновить выполнение","Root folder":"Корневая папка","Rules description":"Создавайте правила с блоками ЕСЛИ, ТО, ИНАЧЕ","Run script":"Запустить скрипт",Sa:Dee,Saturday:Aee,Save:Oee,"Save all":"Сохранить все","Say It":"Say It","Say some text via sayit adapter":"Произнесите текст через адаптер Sayit",Schedule:Ree,Script:Mee,"Script %s was modified on disk":'Скрипт "%s" был изменен на диске',"Script is not running":"Сценарий не запущен","Search in scripts":"Поиск в скриптах","Search...":"Поиск...","Select all":"Выбрать все","Send email":"Отправить email","Sends an email":"Отправляет электронное письмо","Sends message via Pushsafer":"Отправляет сообщение через Pushsafer","Sends message via pushover":"Отправляет сообщение через пустышку","Sends message via telegram":"Отправляет сообщение в телеграмме","Sends message via whatsapp-cmb":"Отправляет сообщение через whatsapp-cmb",September:Nee,"Server time":"Время сервера","Set state action":"Установить состояние","Set with delay":"Установить с задержкой","Shell command":"Команда оболочки","Show astronomical events":"Показать астрономические события","Show javascript code":"Показать код Javascript","Show logs":"Показать журналы","Show only paused scripts":"Показывать только приостановленные сценарии","Show only running scripts":"Показывать только запущенные скрипты","Show only scripts with problems":"Показывать только скрипты с проблемами",Simulate:Lee,"Some files will be rejected":"Некоторые файлы будут отклонены","Sound:":"Звук:",Stack:Bee,Start:Pee,"Start script":"Старт скрипта",State:jee,"State condition":"Сравнение состояния","Step into function":"Шаг в функционирование","Step out from function":"Выйти из функции","Stop on exception":"Остановить при исключении",Su:Fee,"Subject:":"Предмет:",Sunday:zee,"TS description":"Создание правил путём написания Typescript",Telegram:Uee,"Text:":"Текст:",Th:Wee,"The script will be stopped and must be activated manually after debugging. Continue?":"Cкрипт будет остановлен и должен быть активирован вручную после отладки. Продолжать?","This is advances option. You can write your own code here and it will be executed on trigger":"Это расширеный вариант. Вы можете написать здесь свой код и он будет выполняться по триггеру",Thursday:Hee,Time:Vee,"Time condition":"Условие времени","Title:":"Заголовок:","To:":"К:","Trigger with value":"Триггер со значением",Triggered:Gee,Triggers:Kee,"Triggers the on script saving or the javascript instance restart":"Запускает при сохранении скрипта или перезапуске экземпляра javascript","Triggers the rule on update or change of some state":"Запускает правило при обновлении или изменении какого-либо состояния","Triggers the rule periodically or on some specific time":"Срабатывает правило периодически или в определенное время",Tu:Jee,Tuesday:qee,URL:Yee,"Unknown error":"Неизвестная ошибка","Unknown error!":"Неизвестная ошибка!","Use generated code":"Использовать сгенерированный код","User function":"Функция пользователя","User:":"Пользователь:",Value:Xee,"Vibration:":"Вибрация:",Volume:Zee,We:Qee,Wednesday:ete,"Whatsapp-cmb":"Whatsapp-cmb",Write:tte,"Write your own code":"Напишите свой код",Yes:nte,"Yet exists!":"Имя уже существует!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Вы можете использовать %s в URL-адресе, чтобы использовать текущее значение триггера, %id, чтобы использовать идентификатор инициированного объекта, %name, чтобы показать имя идентификатора инициированного объекта, или %old, чтобы использовать старое значение триггера.","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Вы можете использовать %s в команде, чтобы использовать текущее значение триггера, %id, чтобы использовать идентификатор сработавшего объекта, %name, чтобы показать имя сработавшего идентификатора объекта, или %old, чтобы использовать старое значение триггера.","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Вы можете использовать %s в тексте для отображения текущего значения триггера, %id для использования идентификатора сработавшего объекта, %name для отображения имени сработавшего идентификатора объекта или %old для использования старого значения триггера.","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Вы можете использовать %s в значении, чтобы использовать текущее значение триггера, %id, чтобы использовать идентификатор инициированного объекта, %name, чтобы показать имя идентификатора инициированного объекта, или %old, чтобы использовать старое значение триггера.","You have to enter OpenAI API key in the configuration of javascript adapter.":"Вы должны ввести ключ OpenAI API в конфигурации адаптера javascript.","[equal]":"[равно]","[greater or equal]":"[больше или равно]","[greater]":"[больше]","[hysteresis]":"[гистерезис]","[includes]":"[содержит]","[less or equal]":"[меньше или равно]","[less]":"[меньше]","[not equal]":"[не равно]",acknowledgment:ste,all:rte,and:ite,astro:ote,at:ate,"clear running":"остановить уже бегущие",control:lte,copy:cte,cron:ute,dawn:dte,debug_help:hte,debug_label:pte,default:"дефолт",dusk:gte,easy:fte,else:"иначе","equal to":"равно",every:mte,"every hour at 0 minutes":"каждый час через 0 минут",false:"false","file reading has failed: %s":"Ошибка чтения файла: %s","file reading was aborted":"Чтение файла было прервано",filter_func:bte,filter_id:$te,filter_name:vte,filter_role:yte,filter_room:_te,"for edit or create script":"для редактирования или создайте новый скрипт","for professionals":"для профессионалов","for programmers":"для программистов",goldenHour:wte,goldenHourEnd:Cte,"greater or equal":"больше или равно","greater or equal to":"больше или равно","greater than":"больше чем",help_just_check:Ste,help_on_change:Tte,"high priority":"высокий приоритет","high-priority":"высокий-приоритет","highest priority":"высший приоритет",hours:kte,includes:Ete,interval:Ite,"just check":"просто проверить","less or equal":"меньше или равно","less or equal to":"меньше или равно","less than":"меньше, чем","lower priority":"более низкий приоритет","lowest priority":"самый низкий приоритет",magic:xte,milliseconds:Dte,minutes:Ate,ms:Ote,nadir:Rte,nauticalDawn:Mte,nauticalDusk:Nte,nextSunrise:Lte,nextSunset:Bte,night:Pte,nightEnd:jte,"no blocks found":"Блоков нет","no group":"Нет группы",normal:Fte,"normal priority":"нормальный приоритет","not equal to":"не равно","not properly connected":"Этот блок неправильно соединён или не соединён с другими блоками.",offset:zte,"on change":"по изменению","on condition change":"при изменении результата условия","on update":"при обновлении",one:Ute,or:Wte,quiet:Hte,"reset search":"Cбросить поиск",search:Vte,seconds:Gte,solarNoon:Kte,"store in":"сохранить в",sunrise:Jte,sunriseEnd:qte,sunset:Yte,sunsetStart:Xte,then:Zte,"toggle value":"инвертировать текщее значение",tooltip_ack:Qte,tooltip_from:ene,tooltip_lc:tne,tooltip_quality:nne,tooltip_ts:sne,tooltip_user:rne,tooltip_value:ine,true:"true",two:one,undefined:"неопределенный",update:ane,"use seconds":"использовать секунды","use trigger value":"использовать значение триггера",verbose_help:lne,verbose_label:cne,when:une,with:"с","with date":"с датой","with offset":"со сдвигом",wizard:dne},pne="Визнано",gne="Дії",fne="додати",mne="все",bne="Будь-який",$ne="Застосувати",vne="квітень",yne="Запитуйте",_ne="Астрономічний",wne="серпень",Cne="Скасувати",Sne="Закрити",Tne="Хвороба",kne="Умови",Ene="Консоль",Ine="Скопійовано",xne="Грудень",Dne="За замовчуванням",Ane="Затримка",One="Видалити",Rne="опис",Mne="Готово",Nne="Виконавча оболонка",Lne="Пояснення",Bne="Експорт",Pne="Лютий",jne="Лютий",Fne="фільтр",zne="Папка",Une="О",Wne="П'ятниця",Hne="ID",Vne="ID1",Gne="ID2",Kne="Імпорт",Jne="Екземпляр",qne="Примірники",Yne="Інструкції",Xne="січень",Zne="січня",Qne="липень",ese="червень",tse="Ліміт",nse="березень",sse="Може",rse="Меню",ise="повідомлення",ose="пн",ase="Модель",lse="понеділок",cse="місяць",use="Більше",dse="Ім'я",hse="Листопад",pse="в порядку",gse="жовтень",fse="В порядку",mse="Пауза",bse="Pushover",$se="Pushsafer",vse="Перейменувати",yse="Повторіть",_se="Перезапустіть",wse="Результат",Cse="Sa",Sse="Субота",Tse="зберегти",kse="розклад",Ese="Сценарій",Ise="Вересень",xse="Симулювати",Dse="Стек",Ase="старт",Ose="Держава",Rse="Нд",Mse="неділя",Nse="Телеграма",Lse="чт",Bse="четвер",Pse="час",jse="Спрацьовує",Fse="Тригери",zse="вт",Use="вівторок",Wse="URL",Hse="Значення",Vse="Обсяг",Gse="ми",Kse="Середа",Jse="Напишіть",qse="Так",Yse="підтвердження",Xse="все",Zse="і",Qse="Астро",ere="в",tre="КОНТРОЛЬ",nre="копія",sre="CRON",rre="Світанок",ire="Це особливий режим, в якому стану та об'єкти не змінюватимуться. Але в протоколі відображатиметься лише інформація про кожну заплановану зміну.",ore="Відлагоджувати",are="Сутінки",lre="легко",cre="кожен",ure="функція",dre="ID",hre="Ім'я",pre="Роль",gre="Кімната",fre="Золота година",mre="Кінець золотої години",bre="Код буде виконуватися лише щоразу, коли умова виконується. наприклад якщо спрацьовує значення датчика температури та умова «якщо температура перевищує 20°C», дії «тоді» виконуватимуться щоразу, коли датчик надсилає температуру, і вона перевищує 20°C. На 21°C, на 22°C і так далі.",$re="Код буде виконано лише у разі зміни результату умови. наприклад якщо спрацьовує значення датчика температури та умова «якщо температура перевищує 20°C», дії «тоді» будуть виконані один раз, коли температура буде вище 20. Наступного разу дії «тоді» буде виконано, коли температура падає нижче 20, а потім знову піднімається вище 20.",vre="години",yre="включає в себе",_re="інтервал",wre="магія",Cre="мілісекунд",Sre="хвилин",Tre="РС",kre="Надір",Ere="Морський світанок",Ire="Морські сутінки",xre="Наступний схід сонця",Dre="Наступний захід сонця",Are="ніч",Ore="Кінець ночі",Rre="нормально",Mre="зсув",Nre="один",Lre="або",Bre="тихо",Pre="пошук",jre="секунд",Fre="Сонячний полудень",zre="схід сонця",Ure="Кінець сходу сонця",Wre="Захід сонця",Hre="Початок заходу сонця",Vre="потім",Gre="Визнати",Kre="Від",Jre="Востаннє змінено",qre="якість",Yre="Мітка часу",Xre="Користувач",Zre="Значення",Qre="два",eie="оновлення",tie="Додає вихідні дані налагодження до журналу для багатьох системних команд",nie="Докладні результати журналу",sie="коли",rie="майстер",iie={"%s not found":"%s не знайдено","()":"()","(at %s)":"(у %s)","(optional)":"(необов'язково)","-":"-",".":".","AI code generator":"Генератор коду ШІ",Ack:pne,Actions:gne,"Actual time of day":"Фактичний час доби",Add:fne,"Add new script":"Додати новий сценарій",All:mne,"All files will be accepted":"Усі файли будуть прийняті",Any:bne,"Any month":"Будь-який місяць",Apply:$ne,April:vne,"Are you sure?":"Ти впевнений?",Ask:yne,Astronomical:_ne,"Astronomical events today":"Астрономічні події сьогодні",August:wne,"Blockly description":"Створення правил за графічними блоками","Body:":"Тіло:",Cancel:Cne,"Cannot delete non empty item!":"Неможливо видалити непорожній елемент!","Change layout":"Змінити макет",'Change theme (actual "%s")':'Змінити тему (тепер - "%s")',"Check blocks":"Перевірте блоки","Check is not active, because javascript adapter is disabled":"Перевірка не активна, оскільки адаптер Javascript вимкнено","Clear search input":"Очистити пошуковий запит","Click on this icon":"Натисніть на цей значок",Close:Sne,"Close all but current":"Закрити всі, крім поточних","Collapse all":"Закрити всі","Compares current time with astronomical event":"Порівнює поточний час з астрономічною подією","Compares current time with the user specific time":"Порівнює поточний час із конкретним часом користувача","Compares the state value with user defined value":"Порівнює значення стану з визначеним користувачем значенням",Condition:Tne,Conditions:kne,"Configuration not saved.":"Конфігурація не збережена.",Console:Ene,"Control or update some state":"Контролюйте або оновлюйте певний стан","Control or update some state with delay":"Контролюйте або оновлюйте деякий стан із затримкою","Convert blockly to javascript for ever.":"Назавжди конвертуйте Blockly у Javascript.",Copied:Ine,"Copy script":"Копіювати сценарій","Copy to clipboard":"Копіювати в буфер обміну","Create new":"Створити новий","Create new folder":"Створити нову папку","Create new script":"Створіть новий сценарій","Create or edit CRON or time wizard":"Створення або редагування CRON або майстра часу","Dark Theme":"Темна тема","Dark style":"Темний стиль",Date:"Дата","Debug instance":"Екземпляр налагодження","Debug options":"Параметри налагодження",December:xne,Default:Dne,"Define cron...":"Визначити cron...","Define schedule...":"Визначити розклад...",Delay:Ane,Delete:One,"Delete %s":"Видалити %s...","Delete folder":"Видалити папку","Delete script":"Видалити сценарій",Description:Rne,"Deselect all":"Зняти вибір із усіх","Discard changes for %s":"Скасувати зміни для %s",Done:Mne,"Double click to write value":"Двічі клацніть, щоб записати значення","Download as file":"Завантажити файл","Drop some files here or click...":"Перетягніть кілька файлів сюди або натисніть...","Duplicate name":"Повторюване ім'я","Edit script or just double click":"Відредагуйте сценарій або просто двічі клацніть","Empty name is not allowed":"Порожнє ім'я не допускається","End search mode":"Завершити режим пошуку","Enter your question":"Введи своє прохання",Error:"Помилка","Error formatting code":"Помилка форматування коду","Error was found":"Виявлено помилку","Every day":"Кожен день",Exec:Nne,"Executes some shell command":"Виконує певну команду оболонки","Existing scripts will be overwritten.":"Існуючі сценарії буде перезаписано.","Expand all":"Розгорнути все","Expert mode":"Експертний режим",Explanation:Lne,Export:Bne,"Export all scripts":"Експортувати всі сценарії","Export blocks":"Експорт блоків","Export selected blocks":"Експортувати вибрані блоки",Februar:Pne,February:jne,Filter:Fne,Folder:zne,Fr:Une,Friday:Wne,Function:"функція","Function editor":"Редактор функцій","Function: executed":"Функція: виконано","Go to next line":"Перейти до наступного рядка","HTTP Call":"Виклик HTTP","Hide logs":"Приховати журнали",ID:Hne,ID1:Vne,ID2:Gne,Import:Kne,"Import blocks":"Імпорт блоків","Import error":"Помилка імпорту","Import scripts":"Імпорт скриптів","Insert object ID":"Вставте ID об'єкта",Instance:Jne,"Instance is disabled":"Примірник вимкнено","Instance:":"екземпляр:",Instances:qne,Instructions:Yne,"Invalid CRON":"Недійсний CRON","It will not be possible to revert this operation.":"Скасувати цю операцію буде неможливо.","JS description":"Створення правил шляхом написання Javascript",Januar:Xne,January:Zne,July:Qne,June:ese,"Just check":"Просто перевірте","Language:":"Мову:","Learn More":"Вивчайте більше","Light style":"Легкий стиль",Limit:tse,"Local time":"Місцевий час","Locate file":"Знайти файл","Log outputs":"Виходи журналу","Log text":"Текст журналу","Log: %s":"Журнал: %s","Make a HTTP get request":"Зробіть HTTP-запит на отримання","Make a pause between actions":"Між діями робіть паузу",March:nse,"March ":"березень",May:sse,Menu:rse,Message:ise,Mo:ose,Model:ase,Monday:lse,Month:cse,More:use,Name:dse,"No Chat GPT Key found":"Ключ GPT для чату не знайдено","No active host found":"Активний хост не знайдено","Nothing found":"Нічого не знайдено",November:hse,OK:pse,October:gse,Ok:fse,"On condition change":"За умови зміни результату","On script save or adapter start":"Під час збереження сценарію або запуску адаптера","On weekdays":"В будні дні","Open configuration":"Відкрита конфігурація","Operate two states":"Керуйте двома станами","Operations with two states":"Операції з двома станами","Paste your blocks here":"Вставте сюди свої блоки",Pause:mse,"Pause execution":"Призупинити виконання","Pause script":"Призупинити сценарій","Phone:":"телефон:","Please select object ID...":"Виберіть ідентифікатор об'єкта...","Press Ctrl+Enter to get the answer":"Натисніть Ctrl+Enter, щоб отримати відповідь","Prettify the script":"Прикрасьте сценарій","Print some text in log":"Надрукувати текст у журналі","Priority:":"Пріоритет:",Pushover:bse,Pushsafer:$se,"Read only ID selected: %s":"Вибрано ідентифікатор лише для читання: %s",Rename:vse,"Reorder scripts in folders":"Зміна порядку сценаріїв у папках",Repeat:yse,Restart:_se,Result:wse,"Resume execution":"Відновити виконання","Root folder":"Коренева папка","Rules description":"Створюйте правила з блоками IF, THEN, ELSE","Run script":"Запустіть сценарій",Sa:Cse,Saturday:Sse,Save:Tse,"Save all":"Зберегти все","Say It":"Скажи це","Say some text via sayit adapter":"Скажіть текст через адаптер sayit",Schedule:kse,Script:Ese,"Script %s was modified on disk":"Сценарій %s змінено на диску","Script is not running":"Сценарій не працює","Search in scripts":"Пошук у скриптах","Search...":"пошук...","Select all":"Вибрати все","Send email":"Відправити лист","Sends an email":"Надсилає електронний лист","Sends message via Pushsafer":"Надсилає повідомлення через Pushsafer","Sends message via pushover":"Надсилає повідомлення через pushover","Sends message via telegram":"Надсилає повідомлення через телеграм","Sends message via whatsapp-cmb":"Надсилає повідомлення через whatsapp-cmb",September:Ise,"Server time":"Час сервера","Set state action":"Встановити дію стану","Set with delay":"Встановити із затримкою","Shell command":"Команда оболонки","Show astronomical events":"Показати астрономічні події","Show javascript code":"Показати код Javascript","Show logs":"Показати журнали","Show only paused scripts":"Показувати лише призупинені сценарії","Show only running scripts":"Показувати лише запущені сценарії","Show only scripts with problems":"Показувати лише сценарії з проблемами",Simulate:xse,"Some files will be rejected":"Деякі файли буде відхилено","Sound:":"звук:",Stack:Dse,Start:Ase,"Start script":"Запустити сценарій",State:Ose,"State condition":"Стан стану","Step into function":"Крок у функції","Step out from function":"Вийти з функції","Stop on exception":"Зупинка на винятках",Su:Rse,"Subject:":"Тема:",Sunday:Mse,"TS description":"Створення правил шляхом написання Typescript",Telegram:Nse,"Text:":"Текст:",Th:Lse,"The script will be stopped and must be activated manually after debugging. Continue?":"Сценарій буде зупинено, і його необхідно активувати вручну після налагодження. Продовжити?","This is advances option. You can write your own code here and it will be executed on trigger":"Це авансовий варіант. Ви можете написати тут свій власний код, і він буде виконано на тригері",Thursday:Bse,Time:Pse,"Time condition":"Умова часу","Title:":"Назва:","To:":"до:","Trigger with value":"Тригер зі значенням",Triggered:jse,Triggers:Fse,"Triggers the on script saving or the javascript instance restart":"Ініціює збереження сценарію або перезапуск екземпляра JavaScript","Triggers the rule on update or change of some state":"Запускає правило при оновленні або зміні якогось стану","Triggers the rule periodically or on some specific time":"Спрацьовує правило періодично або в певний час",Tu:zse,Tuesday:Use,URL:Wse,"Unknown error":"Невідома помилка","Unknown error!":"Невідома помилка!","Use generated code":"Використовуйте згенерований код","User function":"Функція користувача","User:":"Користувач:",Value:Hse,"Vibration:":"Вібрація:",Volume:Vse,We:Gse,Wednesday:Kse,"Whatsapp-cmb":"Whatsapp-cmb",Write:Jse,"Write your own code":"Напишіть власний код",Yes:qse,"Yet exists!":"Все ж існує!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Ви можете використовувати %s в URL-адресі, щоб використовувати поточне значення тригера, %id, щоб використовувати ідентифікатор активованого об’єкта, %name, щоб показати назву ідентифікатора активованого об’єкта, або %old, щоб використовувати старе значення тригера","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Ви можете використовувати %s у команді, щоб використовувати поточне значення тригера, %id, щоб використовувати ідентифікатор активованого об’єкта, %name, щоб показати назву ідентифікатора активованого об’єкта, або %old, щоб використовувати старе значення тригера","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Ви можете використовувати %s у тексті для відображення поточного значення тригера, %id для використання ідентифікатора активованого об’єкта, %name для відображення імені ідентифікатора активованого об’єкта або %old для використання старого значення тригера","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Ви можете використовувати %s у значенні, щоб використовувати поточне значення тригера, %id, щоб використовувати ідентифікатор активованого об’єкта, %name, щоб показати назву ідентифікатора активованого об’єкта, або %old, щоб використовувати старе значення тригера","You have to enter OpenAI API key in the configuration of javascript adapter.":"Ви повинні ввести ключ OpenAI API у конфігурації адаптера JavaScript.","[equal]":"[рівний]","[greater or equal]":"[більше або дорівнює]","[greater]":"[більший]","[hysteresis]":"[гістерезис]","[includes]":"[включає]","[less or equal]":"[менше або рівно]","[less]":"[менше]","[not equal]":"[не дорівнює]",acknowledgment:Yse,all:Xse,and:Zse,astro:Qse,at:ere,"clear running":"чіткий біг",control:tre,copy:nre,cron:sre,dawn:rre,debug_help:ire,debug_label:ore,default:"за замовчуванням",dusk:are,easy:lre,else:"інше","equal to":"дорівнює",every:cre,"every hour at 0 minutes":"щогодини о 0 хвилин",false:"помилковий","file reading has failed: %s":"не вдалося прочитати файл: %s","file reading was aborted":"читання файлу було перервано",filter_func:ure,filter_id:dre,filter_name:hre,filter_role:pre,filter_room:gre,"for edit or create script":"для редагування або створення нового сценарію","for professionals":"для професіоналів","for programmers":"для програмістів",goldenHour:fre,goldenHourEnd:mre,"greater or equal":"більший або рівний","greater or equal to":"більше або дорівнює","greater than":"більше, ніж, величніше ніж, крутіший за",help_just_check:bre,help_on_change:$re,"high priority":"високий пріоритет","high-priority":"високий пріоритет","highest priority":"найвищий пріоритет",hours:vre,includes:yre,interval:_re,"just check":"просто перевірте","less or equal":"менше або дорівнює","less or equal to":"менше або дорівнює","less than":"менше ніж","lower priority":"нижчий пріоритет","lowest priority":"найнижчий пріоритет",magic:wre,milliseconds:Cre,minutes:Sre,ms:Tre,nadir:kre,nauticalDawn:Ere,nauticalDusk:Ire,nextSunrise:xre,nextSunset:Dre,night:Are,nightEnd:Ore,"no blocks found":"Блоків не знайдено","no group":"НЕМАЄ ГРУПИ",normal:Rre,"normal priority":"нормальний пріоритет","not equal to":"не дорівнює","not properly connected":"Цей блок неправильно з’єднаний з іншими блоками.",offset:Mre,"on change":"на зміну","on condition change":"про зміну умов","on update":"на оновлення",one:Nre,or:Lre,quiet:Bre,"reset search":"скинути пошук",search:Pre,seconds:jre,solarNoon:Fre,"store in":"зберігати в",sunrise:zre,sunriseEnd:Ure,sunset:Wre,sunsetStart:Hre,then:Vre,"toggle value":"значення перемикання",tooltip_ack:Gre,tooltip_from:Kre,tooltip_lc:Jre,tooltip_quality:qre,tooltip_ts:Yre,tooltip_user:Xre,tooltip_value:Zre,true:"правда",two:Qre,undefined:"невизначений",update:eie,"use seconds":"використовуйте секунди","use trigger value":"використовувати значення тригера",verbose_help:tie,verbose_label:nie,when:sie,with:"з","with date":"з датою","with offset":"зі зміщенням",wizard:rie},oie="确认",aie="动作",lie="添加",cie="所有",uie="任何",die="申请",hie="四月",pie="问",gie="天文",fie="八月",mie="取消",bie="关闭",$ie="健康)状况",vie="情况",yie="安慰",_ie="复制的",wie="十二月",Cie="默认",Sie="延迟",Tie="删除",kie="描述",Eie="完成",Iie="执行力",xie="解释",Die="导出",Aie="二月",Oie="二月",Rie="筛选",Mie="文件夹",Nie="r",Lie="星期五",Bie="ID",Pie="ID1",jie="ID2",Fie="导入",zie="实例",Uie="实例",Wie="指示",Hie="亚努尔",Vie="一月",Gie="七月",Kie="六月",Jie="限制",qie="三月",Yie="五月",Xie="菜单",Zie="信息",Qie="莫",eoe="模型",toe="星期一",noe="月",soe="更多的",roe="名称",ioe="十一月",ooe="好的",aoe="十月",loe="确定",coe="暂停",uoe="俯卧撑",doe="推安全",hoe="重命名",poe="重复",goe="重启",foe="结果",moe="萨",boe="星期六",$oe="保存",voe="日程",yoe="脚本",_oe="九月",woe="模拟",Coe="堆",Soe="开始",Toe="状态",koe="苏",Eoe="星期日",Ioe="电报",xoe="4",Doe="星期四",Aoe="时间",Ooe="触发",Roe="扳机",Moe="涂",Noe="星期二",Loe="网址",Boe="价值",Poe="体积",joe="3",Foe="星期三",zoe="写",Uoe="是的",Woe="致谢",Hoe="全部",Voe="和",Goe="天文",Koe="在",Joe="控制",qoe="复制",Yoe="克朗",Xoe="黎明",Zoe="这是一种特殊模式,其中状态和对象不会改变。但只有有关每个计划更改的信息才会显示在协议中。",Qoe="调试",eae="黄昏",tae="简单的",nae="每一个",sae="功能",rae="ID",iae="名字",oae="角色",aae="房间",lae="黄金时段",cae="黄金时段结束",uae="仅在条件为真时才执行代码。例如。如果触发温度传感器值并且条件为“如果温度大于20°C”,则每次传感器发送温度且温度超过20°C时,将执行“然后”动作。 21°C,22°C等。",dae="仅当条件结果更改时,代码才会执行。例如。如果触发温度传感器值且条件为“如果温度大于20°C”,则温度超过20时将执行一次“则”动作,下一次,当温度超过20时将执行“则”动作低于20失败,然后再次超过20。",hae="小时",pae="包括",gae="间隔",fae="魔法",mae="毫秒",bae="分钟",$ae="毫秒",vae="最低点",yae="航海黎明",_ae="航海黄昏",wae="下一个日出",Cae="下一个日落",Sae="夜晚",Tae="夜晚结束",kae="普通的",Eae="抵消",Iae="一",xae="或",Dae="安静的",Aae="搜索",Oae="秒",Rae="星期日正午",Mae="日出",Nae="日出结束",Lae="日落",Bae="日落开始",Pae="然后",jae="确认",Fae="从",zae="上一次改变",Uae="质量",Wae="时间戳",Hae="用户",Vae="值",Gae="二",Kae="更新",Jae="将调试输出添加到许多系统命令的日志中",qae="详细日志输出",Yae="什么时候",Xae="巫师",Zae={"%s not found":"%s 未找到","()":"()","(at %s)":"(在 %s)","(optional)":"(选修的)","-":"-",".":".","AI code generator":"AI代码生成器",Ack:oie,Actions:aie,"Actual time of day":"一天中的实际时间",Add:lie,"Add new script":"添加新脚本",All:cie,"All files will be accepted":"所有文件都将被接受",Any:uie,"Any month":"任何月份",Apply:die,April:hie,"Are you sure?":"你确定吗?",Ask:pie,Astronomical:gie,"Astronomical events today":"今天的天文事件",August:fie,"Blockly description":"按图形块创建规则","Body:":"身体:",Cancel:mie,"Cannot delete non empty item!":"无法删除非空项目!","Change layout":"变更版面",'Change theme (actual "%s")':"更改主题(现在为“%s”)","Check blocks":"检查块","Check is not active, because javascript adapter is disabled":"检查未激活,因为禁用了Javascript适配器","Clear search input":"清除搜索输入","Click on this icon":"单击此图标",Close:bie,"Close all but current":"关闭所有(当前除外)","Collapse all":"全部收缩","Compares current time with astronomical event":"将当前时间与天文事件进行比较","Compares current time with the user specific time":"将当前时间与用户特定时间进行比较","Compares the state value with user defined value":"比较状态值和用户定义的值",Condition:$ie,Conditions:vie,"Configuration not saved.":"配置未保存。",Console:yie,"Control or update some state":"控制或更新某些状态","Control or update some state with delay":"延迟控制或更新某些状态","Convert blockly to javascript for ever.":"立即将blockly转换为Javascript。",Copied:_ie,"Copy script":"复制脚本","Copy to clipboard":"复制到剪贴板","Create new":"创建新的","Create new folder":"创建新文件夹","Create new script":"创建新脚本","Create or edit CRON or time wizard":"创建或编辑周期任务或时间向导","Dark Theme":"深色调主题","Dark style":"深色调风格",Date:"日期","Debug instance":"调试实例","Debug options":"调试选项",December:wie,Default:Cie,"Define cron...":"定义周期任务...","Define schedule...":"定义调度器......",Delay:Sie,Delete:Tie,"Delete %s":"删除%s...","Delete folder":"删除文件夹","Delete script":"删除脚本",Description:kie,"Deselect all":"取消全选","Discard changes for %s":"放弃%s的更改",Done:Eie,"Double click to write value":"Double click to write value","Download as file":"档案","Drop some files here or click...":"将文件拖拽到这里或单击......","Duplicate name":"重名","Edit script or just double click":"双击编辑脚本","Empty name is not allowed":"不允许使用空名称","End search mode":"结束搜索模式","Enter your question":"输入您的要求",Error:"错误","Error formatting code":"代码格式错误","Error was found":"发现错误","Every day":"每天",Exec:Iie,"Executes some shell command":"执行一些shell命令","Existing scripts will be overwritten.":"现有脚本将被覆盖。","Expand all":"展开全部","Expert mode":"专家模式",Explanation:xie,Export:Die,"Export all scripts":"导出所有脚本","Export blocks":"导出块","Export selected blocks":"导出选定的块",Februar:Aie,February:Oie,Filter:Rie,Folder:Mie,Fr:Nie,Friday:Lie,Function:"功能","Function editor":"功能编辑器","Function: executed":"功能:执行","Go to next line":"转到下一行","HTTP Call":"HTTP呼叫","Hide logs":"隐藏日志",ID:Bie,ID1:Pie,ID2:jie,Import:Fie,"Import blocks":"导入块","Import error":"导入错误","Import scripts":"导入脚本","Insert object ID":"插入对象ID",Instance:zie,"Instance is disabled":"实例已禁用","Instance:":"实例:",Instances:Uie,Instructions:Wie,"Invalid CRON":"无效的周期任务","It will not be possible to revert this operation.":"无法恢复此操作。","JS description":"通过编写Javascript来创建规则",Januar:Hie,January:Vie,July:Gie,June:Kie,"Just check":"只是检查","Language:":"语言:","Learn More":"了解更多","Light style":"浅色调风格",Limit:Jie,"Local time":"当地时间","Locate file":"定位文件","Log outputs":"记录输出","Log text":"记录文字","Log: %s":"日志:%s","Make a HTTP get request":"发出HTTP获取请求","Make a pause between actions":"在动作之间暂停",March:qie,"March ":"行进",May:Yie,Menu:Xie,Message:Zie,Mo:Qie,Model:eoe,Monday:toe,Month:noe,More:soe,Name:roe,"No Chat GPT Key found":"找不到聊天 GPT 密钥","No active host found":"找不到活动主机","Nothing found":"没有发现",November:ioe,OK:ooe,October:aoe,Ok:loe,"On condition change":"条件变化时","On script save or adapter start":"在脚本保存或适配器启动时","On weekdays":"在工作日","Open configuration":"开放配置","Operate two states":"操作两种状态","Operations with two states":"具有两种状态的操作","Paste your blocks here":"在此处粘贴您的区块",Pause:coe,"Pause execution":"暂停执行","Pause script":"暂停脚本","Phone:":"电话:","Please select object ID...":"请选择对象ID...","Press Ctrl+Enter to get the answer":"按 Ctrl+Enter 即可得到答案","Prettify the script":"美化脚本","Print some text in log":"在日志中打印一些文本","Priority:":"优先:",Pushover:uoe,Pushsafer:doe,"Read only ID selected: %s":"选择的只读ID:%s",Rename:hoe,"Reorder scripts in folders":"重新排序文件夹中的脚本",Repeat:poe,Restart:goe,Result:foe,"Resume execution":"恢复执行","Root folder":"根文件夹","Rules description":"使用IF,THEN,ELSE块创建规则","Run script":"运行脚本",Sa:moe,Saturday:boe,Save:$oe,"Save all":"保存全部","Say It":"Say It","Say some text via sayit adapter":"通过sayit适配器说一些文字",Schedule:voe,Script:yoe,"Script %s was modified on disk":"脚本%s已在磁盘上修改","Script is not running":"脚本没有运行","Search in scripts":"在脚本中搜索","Search...":"搜索...","Select all":"全选","Send email":"发送电子邮件","Sends an email":"发送邮件","Sends message via Pushsafer":"通过Pushsafer发送消息","Sends message via pushover":"通过推播发送消息","Sends message via telegram":"通过电报发送消息","Sends message via whatsapp-cmb":"通过whatsapp-cmb发送消息",September:_oe,"Server time":"服务器时间","Set state action":"设定状态动作","Set with delay":"延迟设置","Shell command":"Shell命令","Show astronomical events":"显示天文事件","Show javascript code":"显示Javascript代码","Show logs":"显示记录","Show only paused scripts":"仅显示暂停的脚本","Show only running scripts":"仅显示正在运行的脚本","Show only scripts with problems":"仅显示有问题的脚本",Simulate:woe,"Some files will be rejected":"有些文件将被拒绝","Sound:":"声音:",Stack:Coe,Start:Soe,"Start script":"启动脚本",State:Toe,"State condition":"状态条件","Step into function":"进入功能","Step out from function":"退出函数","Stop on exception":"异常停止",Su:koe,"Subject:":"学科:",Sunday:Eoe,"TS description":"通过编写Typescript来创建规则",Telegram:Ioe,"Text:":"文本:",Th:xoe,"The script will be stopped and must be activated manually after debugging. Continue?":"该脚本将停止,并且必须在调试后手动激活。继续?","This is advances option. You can write your own code here and it will be executed on trigger":"这是高级选项。您可以在此处编写自己的代码,它将在触发器上执行",Thursday:Doe,Time:Aoe,"Time condition":"时间条件","Title:":"标题:","To:":"到:","Trigger with value":"用值触发",Triggered:Ooe,Triggers:Roe,"Triggers the on script saving or the javascript instance restart":"触发脚本保存或javascript实例重启","Triggers the rule on update or change of some state":"在某些状态的更新或更改时触发规则","Triggers the rule periodically or on some specific time":"定期或在特定时间触发规则",Tu:Moe,Tuesday:Noe,URL:Loe,"Unknown error":"未知错误","Unknown error!":"未知错误!","Use generated code":"使用生成的代码","User function":"用户功能","User:":"用户:",Value:Boe,"Vibration:":"振动:",Volume:Poe,We:joe,Wednesday:Foe,"Whatsapp-cmb":"Whatsapp的cmb",Write:zoe,"Write your own code":"编写自己的代码",Yes:Uoe,"Yet exists!":"不存在!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"您可以在 URL 中使用 %s 以使用当前触发值,%id 以使用触发对象 ID,%name 以显示触发对象 ID 名称或 %old 以使用旧触发值","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"您可以在命令中使用 %s 以使用当前触发值,%id 使用触发对象 ID,%name 显示触发对象 ID 名称或 %old 使用旧触发值","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"您可以在文本中使用 %s 显示当前触发值,%id 使用触发对象 ID,%name 显示触发对象 ID 名称或 %old 使用旧触发值","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"您可以在值中使用 %s 以使用当前触发器值,%id 使用触发对象 ID,%name 显示触发对象 ID 名称或 %old 使用旧触发器值","You have to enter OpenAI API key in the configuration of javascript adapter.":"您必须在 javascript 适配器的配置中输入 OpenAI API 密钥。","[equal]":"[平等的]","[greater or equal]":"[大于等于]","[greater]":"[更大]","[hysteresis]":"[磁滞]","[includes]":"[包括]","[less or equal]":"[小于或等于]","[less]":"[较少的]","[not equal]":"[不相等]",acknowledgment:Woe,all:Hoe,and:Voe,astro:Goe,at:Koe,"clear running":"畅通无阻",control:Joe,copy:qoe,cron:Yoe,dawn:Xoe,debug_help:Zoe,debug_label:Qoe,default:"默认",dusk:eae,easy:tae,else:"别的","equal to":"等于",every:nae,"every hour at 0 minutes":"每小时0分钟",false:"错误的","file reading has failed: %s":"文件读取失败:%s","file reading was aborted":"文件读取中止",filter_func:sae,filter_id:rae,filter_name:iae,filter_role:oae,filter_room:aae,"for edit or create script":"用于编辑或创建脚本","for professionals":"对于专业人士","for programmers":"对于程序员",goldenHour:lae,goldenHourEnd:cae,"greater or equal":"大于或等于","greater or equal to":"大于或等于","greater than":"比...更棒",help_just_check:uae,help_on_change:dae,"high priority":"高优先级","high-priority":"高优先级","highest priority":"最高优先级",hours:hae,includes:pae,interval:gae,"just check":"只是检查","less or equal":"小于或等于","less or equal to":"小于或等于","less than":"少于","lower priority":"低优先级","lowest priority":"最低优先级",magic:fae,milliseconds:mae,minutes:bae,ms:$ae,nadir:vae,nauticalDawn:yae,nauticalDusk:_ae,nextSunrise:wae,nextSunset:Cae,night:Sae,nightEnd:Tae,"no blocks found":"找不到块","no group":"没有组",normal:kae,"normal priority":"正常优先","not equal to":"不等于","not properly connected":"此块未正确连接到其他块。",offset:Eae,"on change":"在变化","on condition change":"在条件变化时","on update":"更新时",one:Iae,or:xae,quiet:Dae,"reset search":"重置搜索",search:Aae,seconds:Oae,solarNoon:Rae,"store in":"存放在",sunrise:Mae,sunriseEnd:Nae,sunset:Lae,sunsetStart:Bae,then:Pae,"toggle value":"切换值",tooltip_ack:jae,tooltip_from:Fae,tooltip_lc:zae,tooltip_quality:Uae,tooltip_ts:Wae,tooltip_user:Hae,tooltip_value:Vae,true:"真的",two:Gae,undefined:"不明确的",update:Kae,"use seconds":"精确到秒","use trigger value":"使用触发值",verbose_help:Jae,verbose_label:qae,when:Yae,with:"和","with date":"有日期","with offset":"带偏移",wizard:Xae},lf={root:{flexGrow:1,display:"flex",width:"100%",height:"100%"},mainDiv:{width:"100%",height:"100%",overflow:"hidden"},content:o=>({width:"100%",height:"100%",backgroundColor:o.palette.background&&o.palette.background.default,position:"relative"}),menuOpenCloseButton:o=>({position:"absolute",left:0,borderRadius:"0 5px 5px 0",top:6,pt:1,cursor:"pointer",zIndex:1,height:25,width:20,background:o.palette.secondary.main,color:o.palette.primary.main,pl:"3px","&:hover":{color:"white"}}),showLogButton:o=>({position:"absolute",right:3,borderRadius:"5px 5px 0 0",bottom:0,pt:"3px",cursor:"pointer",zIndex:10,height:20,width:25,background:o.palette.secondary.main,color:o.palette.primary.main,pl:1,"&:hover":{color:"white"}})};class Qae extends I.GenericApp{hosts=[];importFile=null;scripts={};confirmCallback=null;constructor(n){super(n,{Connection:I.AdminConnection,translations:{en:gF,de:aW,es:eH,fr:K8,it:F6,nl:RK,pl:kY,pt:vQ,ru:hne,uk:iie,"zh-cn":Zae},bottomButtons:!1,socket:{autoSubscribeLog:!0},sentryDSN:window.sentryDSN});const s=window.localStorage.getItem("JS.logSizes");let i=[80,20];if(s)try{i=JSON.parse(s)}catch{}const a=window.localStorage.getItem("JS.splitSizes");let c=[20,80];if(a)try{c=JSON.parse(a)}catch{}Object.assign(this.state,{splitSizes:c,logSizes:i}),window.alert=h=>{console.error(h),this.showJsError(h.toString())}}onScriptsChanged=(n,s)=>{if(!n)return;let i=!1;const a={};n.startsWith("script.js.")&&(s?JSON.stringify(this.scripts[n])!==JSON.stringify(s)&&(this.scripts[n]=s,i=!0,a.scriptsHash=this.state.scriptsHash+1):this.scripts[n]&&(delete this.scripts[n],i=!0,a.scriptsHash=this.state.scriptsHash+1)),i&&this.setState(a)};onInstanceChanged=(n,s)=>{var c;if(!n)return;let i=!1;const a={};if(n.match(/^system\.adapter\.[-_\w\d]+\$/)){if(n.startsWith(`system.adapter.${this.adapterName}.`)){const h=parseInt(n.split(".").pop()||"0",10)||0;if((s==null?void 0:s.type)==="instance")this.state.instances.includes(h)||(a.instances=[...this.state.instances],a.instances.push(h),a.instances.sort(),i=!0,this.socket.subscribeState(`${s._id}.alive`,this.onInstanceAliveChange));else if(!s&&this.state.instances.includes(h)){this.socket.unsubscribeState(`${n}.alive`,this.onInstanceAliveChange),a.instances=[...this.state.instances];const g=a.instances.indexOf(h);a.instances.splice(g,1),i=!0}}(c=s==null?void 0:s.common)!=null&&c.blockly&&(this.confirmCallback=h=>h&&window.location.reload(),a.confirm=I.I18n.t("Some blocks were updated. Reload admin?"),i=!0)}i&&this.setState(a)};onHostChanged=(n,s)=>{if(n&&n.startsWith("system.host.")){if((s==null?void 0:s.type)==="host")this.hosts.includes(n)||(this.hosts.push(n),this.hosts.sort());else if(!s&&this.hosts.includes(n)){const i=this.hosts.indexOf(n);this.hosts.splice(i,1)}}};onConnectionReady(){window.systemLang=this.socket.systemLang,this.setState({ready:!1,scriptsHash:0,instances:[],updating:!1,resizing:!1,selected:null,logMessage:{},editing:[],menuOpened:window.localStorage.getItem("App.menuOpened")!=="false",menuSelectId:"",expertMode:window.localStorage.getItem("App.expertMode")==="true",logHorzLayout:window.localStorage.getItem("App.logHorzLayout")==="true",runningInstances:{},confirm:"",importFile:!1,message:"",searchText:"",hideLog:window.localStorage.getItem("App.hideLog")==="true",debugMode:!1,debugInstance:null,splitSizes:[20,80]},async()=>{const n={},s=await this.subscribeOnInstances();n.instances=s.instances,n.runningInstances=s.runningInstances,await this.readAdaptersWithBlockly();const i=await this.socket.getHosts();this.hosts=i.map(h=>h._id);const a=await this.readAllScripts();window.localStorage.getItem("App.expertMode")!=="true"&&window.localStorage.getItem("App.expertMode")!=="false"&&Object.keys(a).find(h=>h.startsWith("script.js.global.")&&a[h].type==="script")&&(n.expertMode=!0),this.scripts=a;let c=this.state.scriptsHash;this.compareScripts(a)&&c++,n.scriptsHash=c,n.ready=!0,this.setState(n),await this.socket.subscribeObject("script.*",this.onScriptsChanged),await this.socket.subscribeObject("system.adapter.*",this.onInstanceChanged),await this.socket.subscribeObject("system.host.*",this.onHostChanged)})}async subscribeOnInstances(){const s=(await this.socket.getAdapterInstances(this.adapterName)).map(a=>parseInt(a._id.split(".").pop()||"0")).sort(),i={};s.forEach(a=>i[`system.adapter.${this.adapterName}.${a}`]=!1);for(let a=0;an[i]=s[i]),n}async readAdaptersWithBlockly(){const n=await this.socket.getObjectViewSystem("adapter","system.adapter.","system.adapter.香");return new Promise(s=>dn.loadCustomBlockly(n,()=>s()))}onInstanceAliveChange=(n,s)=>{if(n&&(n=n?n.substring(0,n.length-6):"",this.state.runningInstances[n]!==(s?s.val:!1))){const i=JSON.parse(JSON.stringify(this.state.runningInstances));i[n]=s?!!s.val:!1,this.setState({runningInstances:i})}};onToggleExpertMode(n){this.onExpertModeChange(n)}compareScripts(n){const s=Object.keys(this.scripts),i=Object.keys(n);if(s.length!==i.length)return this.scripts=n,!0;if(JSON.stringify(s)!==JSON.stringify(i))return this.scripts=n,!0;for(let a=0;a ${s}`),this.setState({updating:!0});try{if(((c=this.scripts[n])==null?void 0:c.type)==="script"){const h=JSON.parse(JSON.stringify(this.scripts[n].common));h.name=i||h.name,a!==void 0&&(h.engine=`system.adapter.javascript.${a}`);const g=s.split(".");g.pop();const b=g.join(".");this.scripts[b]&&this.scripts[b].type==="script"&&(g.pop(),s=`${g.join(".")}.${s.split(".").pop()}`),await this.updateScript(n,s,h)}else await this.renameGroup(n,s,i)}catch(h){h.toString().includes("canceled")||this.showJsError(h)}this.setState({updating:!1})}async renameGroup(n,s,i,a){if(a){if(a.length){let c=a.pop();if(c){const h=await this.socket.getObject(c);if(h){try{await this.socket.delObject(c)}catch{}c=s+c.substring(n.length),h._id=c,h.common=h.common||{},h.common.expert=!0,await this.socket.setObject(c,h),await this.renameGroup(n,s,i,a)}}}}else{a=[],a=Object.keys(this.scripts).filter(h=>h.startsWith(`${n}.`));let c=await this.socket.getObject(n);c=c||{common:{},type:"channel"},c.common.name=i||c.common.name||n.split(".").pop()||"",c._id=s;try{await this.socket.delObject(n)}catch{}try{await this.socket.setObject(s,c),await this.renameGroup(n,s,i,a)}catch(h){console.log(h);const g={_id:s,type:"channel",common:{name:i||n.split(".").pop()||"",expert:!0},native:{}};await this.socket.setObject(s,g),await this.renameGroup(n,s,i,a)}}}onUpdateScript(n,s){this.scripts[n]&&this.scripts[n].type==="script"&&this.updateScript(n,n,s).then(()=>{}).catch(i=>!i.toString().includes("canceled")&&this.showJsError(i))}onSelect(n){this.scripts[n]&&this.scripts[n].common&&this.scripts[n].type==="script"&&this.setState({selected:n,menuSelectId:n},()=>setTimeout(()=>this.setState({menuSelectId:""}),300))}onExpertModeChange(n){this.state.expertMode!==n&&(window.localStorage.setItem("App.expertMode",n?"true":"false"),this.setState({expertMode:n}))}showJsError(n){this.setState({errorText:n?n.toString():""})}showMessage(n){this.setState({message:n?n.toString():""})}onDelete(n){this.socket.delObject(n).catch(s=>this.showJsError(s))}onEdit(n){this.state.selected!==n&&this.setState({selected:n})}onAddNew(n,s,i,a,c,h){const g=new RegExp(`^${n}\\.`);if(Object.keys(this.scripts).find(b=>n===b||g.test(n)))return this.showJsError(I.I18n.t("Yet exists!"));i?this.socket.setObject(n,{_id:n,type:"channel",common:{name:s,expert:!0},native:{}}).then(()=>setTimeout(()=>this.setState({menuSelectId:n},()=>setTimeout(()=>this.setState({menuSelectId:""}),300)),1e3)).catch(b=>this.showJsError(b)):(c==="Blockly"&&!h&&(h=` -//${btoa(encodeURIComponent(''))}`),this.socket.setObject(n,{_id:n,type:"script",common:{name:s,expert:!0,engineType:c||"Javascript/js",enabled:!1,engine:`system.adapter.javascript.${a||0}`,source:h||"",debug:!1,verbose:!1},native:{}}).then(()=>setTimeout(()=>this.onSelect(n),1e3)).catch(b=>this.showJsError(b)))}async updateScript(n,s,i){let a=await this.socket.getObject(n);const c={common:{}};if(i.engine!==void 0&&(c.common.engine=i.engine),i.enabled!==void 0&&(c.common.enabled=i.enabled),i.source!==void 0&&(c.common.source=i.source),i.debug!==void 0&&(c.common.debug=i.debug),i.verbose!==void 0&&(c.common.verbose=i.verbose),c.from="system.adapter.admin.0",n===s&&(a!=null&&a.common)&&i.name===a.common.name)return(!i.engineType||i.engineType!==a.common.engineType)&&i.engineType!==void 0&&(c.common.engineType=i.engineType||"Javascript/js"),c.type="script",this.socket.extendObject(n,c);if(a!=null&&a.common){a.common.engineType=i.engineType||a.common.engineType||"Javascript/js",await this.socket.delObject(n),c.common.engine!==void 0&&(a.common.engine=c.common.engine),c.common.enabled!==void 0&&(a.common.enabled=c.common.enabled),c.common.source!==void 0&&(a.common.source=c.common.source),c.common.name!==void 0&&(a.common.name=c.common.name),c.common.debug!==void 0&&(a.common.debug=c.common.debug),c.common.verbose!==void 0&&(a.common.verbose=c.common.verbose),a._rev!==void 0&&delete a._rev,a.common.name=i.name,a.common.expert=!0,a.type="script",a._id=s,await this.socket.setObject(s,a);return}return a=c,a.common.name=i.name,a.common.expert=!0,a.type="script",a._id=s,this.socket.setObject(s,a)}onEnableDisable(n,s){var i;if(((i=this.scripts[n])==null?void 0:i.type)==="script"){const a=this.scripts[n].common;a.enabled=s,a.expert=!0,this.updateScript(n,n,a).catch(c=>c!=="canceled"&&this.showJsError(c))}}async getLiveHost(){for(let n=0;n{if(typeof c=="string"){const h=document.createElement("a");h.href=`../../files/${c}`,document.body.appendChild(h),h.click(),h.remove()}else if(c.error&&this.showJsError(c.error),c.data){const h=document.createElement("a");h.href=`data: application/zip;base64,${c.data}`,h.download=`${i}scripts.zip`,document.body.appendChild(h),h.click(),h.remove()}})}onImport(n){this.importFile=n||null,n?(this.confirmCallback=this.onImportConfirmed.bind(this),this.setState({importFile:!1,confirm:I.I18n.t("Existing scripts will be overwritten.")})):this.setState({importFile:!1})}async onImportConfirmed(n){let s=this.importFile;if(this.importFile=null,n&&s){s=s.split(",")[1];const i=await this.getLiveHost();if(!i){this.showJsError(I.I18n.t("No active host found"));return}this.socket.getRawSocket().emit("sendToHost",i,"writeObjectsAsZip",{data:s,adapter:"javascript",id:"script.js"},a=>{a==="permissionError"?this.showJsError(I.I18n.t(a)):!a||a.error?this.showJsError(a?I.I18n.t(a.error||""):I.I18n.t("Unknown error")):this.showMessage(I.I18n.t("Done"))})}}toggleLogLayout(){window.localStorage.setItem("App.logHorzLayout",this.state.logHorzLayout?"false":"true"),this.setState({logHorzLayout:!this.state.logHorzLayout})}renderEditor(){const n=Object.keys(this.scripts).reduce((s,i)=>s+(this.scripts[i].common.engineType==="Rules"?1:0),0);return f.jsx(kh,{debugMode:this.state.debugMode,onDebugModeChange:s=>{s?this.setState({debugMode:!0}):this.setState({debugMode:!1,debugInstance:null})},visible:!this.state.resizing,socket:this.socket,adapterName:this.adapterName,onLocate:s=>this.setState({menuSelectId:s}),runningInstances:this.state.runningInstances,menuOpened:this.state.menuOpened,searchText:this.state.searchText,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,expertMode:this.state.expertMode,onChange:(s,i)=>this.onUpdateScript(s,i),isAnyRulesExists:n,debugInstance:this.state.debugInstance,onSelectedChange:(s,i)=>{const a={};let c=!1;s!==this.state.selected&&(c=!0,a.selected=s),JSON.stringify(i)!==JSON.stringify(this.state.editing)&&(c=!0,a.editing=JSON.parse(JSON.stringify(i))),c&&this.setState(a)},onRestart:s=>this.socket.extendObject(s,{common:{enabled:!0}}),selected:this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].type==="script"?this.state.selected:"",objects:this.scripts,resizing:this.state.resizing},"editor")}showLogButton(){return f.jsx(D.Box,{title:I.I18n.t("Show logs"),sx:lf.showLogButton,onClick:()=>{window.localStorage.setItem("App.hideLog","false"),this.setState({hideLog:!1,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:f.jsx(ux,{})},"showLog")}renderErrorDialog(){return this.state.errorText?f.jsx(Hf,{onClose:()=>this.setState({errorText:""}),text:this.state.errorText},"dialogError"):null}renderMain(){let n;return this.state.debugMode||this.state.hideLog?n=f.jsxs(f.Fragment,{children:[!this.state.debugMode&&this.state.hideLog?this.showLogButton():void 0,this.renderEditor()]}):n=f.jsxs(J$,{direction:this.state.logHorzLayout?Bn.Horizontal:Bn.Vertical,initialSizes:this.state.logSizes,minWidths:[500,100],minHeights:[150,50],onResizeStarted:()=>this.setState({resizing:!0}),onResizeFinished:(s,i)=>{this.setState({logSizes:i,resizing:!1}),window.localStorage.setItem("JS.logSizes",JSON.stringify(i))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[this.renderEditor(),f.jsx(pw,{verticalLayout:!this.state.logHorzLayout,onLayoutChange:()=>this.toggleLogLayout(),editing:this.state.editing,socket:this.socket,selected:this.state.selected,onHideLog:()=>{window.localStorage.setItem("App.hideLog","true"),this.setState({hideLog:!0,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)}},"log")]}),[this.state.message?f.jsx(I.Message,{onClose:()=>this.setState({message:""}),text:this.state.message},"dialogMessage"):null,this.renderErrorDialog(),this.state.importFile?f.jsx(rC,{onClose:s=>this.onImport(s)},"dialogImportFile"):null,this.state.confirm?f.jsx(I.Confirm,{onClose:s=>{this.state.confirm&&this.setState({confirm:""}),this.confirmCallback&&this.confirmCallback(s),this.confirmCallback=null},text:this.state.confirm},"dialogConfirm"):null,f.jsxs(D.Box,{sx:lf.content,className:"iobVerticalSplitter",children:[f.jsx(D.Box,{sx:lf.menuOpenCloseButton,onClick:()=>{window.localStorage.setItem("App.menuOpened",this.state.menuOpened?"false":"true"),this.setState({menuOpened:!this.state.menuOpened,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:this.state.menuOpened?f.jsx(dx,{}):f.jsx(hx,{})},"closeMenu"),n]},"main")]}render(){if(!this.state.ready)return f.jsx(UC,{injectFirst:!0,children:f.jsx(WC,{theme:this.state.theme,children:f.jsx(I.Loader,{themeType:this.state.themeType})})});let n;return this.state.menuOpened?n=f.jsxs(J$,{direction:Bn.Horizontal,initialSizes:this.state.splitSizes,minWidths:[270,400],onResizeFinished:(s,i)=>{this.setState({splitSizes:i}),window.localStorage.setItem("JS.splitSizes",JSON.stringify(i))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[f.jsx("div",{style:lf.mainDiv,children:f.jsx(Ha,{debugMode:this.state.debugMode,onDebugInstance:s=>this.setState({debugInstance:s,debugMode:!!s}),scripts:this.scripts,scriptsHash:this.state.scriptsHash,instances:this.state.instances,onRename:this.onRename.bind(this),socket:this.socket,selectId:this.state.menuSelectId,onEdit:this.onEdit.bind(this),expertMode:this.state.expertMode,themeName:this.state.themeName,onThemeChange:s=>{I.Utils.setThemeName(s);const i=I.Utils.getThemeType(s);this.setState({themeName:s,themeType:i},()=>this.toggleTheme(s))},runningInstances:this.state.runningInstances,onExpertModeChange:this.onExpertModeChange.bind(this),onDelete:this.onDelete.bind(this),onAddNew:this.onAddNew.bind(this),onEnableDisable:this.onEnableDisable.bind(this),onExport:this.onExport.bind(this),width:500,onImport:()=>this.setState({importFile:!0}),onSearch:s=>this.setState({searchText:s}),version:this.props.version},"sidemenu")},"menu"),this.renderMain()]}):n=this.renderMain(),f.jsx(UC,{injectFirst:!0,children:f.jsx(WC,{theme:this.state.theme,children:f.jsx("div",{style:lf.root,children:f.jsx(YN,{socket:this.socket,children:n})})})})}}window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function ele(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(o=>{o.unregister()})}const tle="9.0.3",cI={version:tle};var Ql;(function(o){o.mouse="mouse",o.touch="touch",o.keyboard="keyboard"})(Ql||(Ql={}));class nle{get delay(){var n;return(n=this.args.delay)!==null&&n!==void 0?n:0}get scrollAngleRanges(){return this.args.scrollAngleRanges}get getDropTargetElementsAtPoint(){return this.args.getDropTargetElementsAtPoint}get ignoreContextMenu(){var n;return(n=this.args.ignoreContextMenu)!==null&&n!==void 0?n:!1}get enableHoverOutsideTarget(){var n;return(n=this.args.enableHoverOutsideTarget)!==null&&n!==void 0?n:!1}get enableKeyboardEvents(){var n;return(n=this.args.enableKeyboardEvents)!==null&&n!==void 0?n:!1}get enableMouseEvents(){var n;return(n=this.args.enableMouseEvents)!==null&&n!==void 0?n:!1}get enableTouchEvents(){var n;return(n=this.args.enableTouchEvents)!==null&&n!==void 0?n:!0}get touchSlop(){return this.args.touchSlop||0}get delayTouchStart(){var n,s,i,a;return(a=(i=(n=this.args)===null||n===void 0?void 0:n.delayTouchStart)!==null&&i!==void 0?i:(s=this.args)===null||s===void 0?void 0:s.delay)!==null&&a!==void 0?a:0}get delayMouseStart(){var n,s,i,a;return(a=(i=(n=this.args)===null||n===void 0?void 0:n.delayMouseStart)!==null&&i!==void 0?i:(s=this.args)===null||s===void 0?void 0:s.delay)!==null&&a!==void 0?a:0}get window(){if(this.context&&this.context.window)return this.context.window;if(typeof window<"u")return window}get document(){var n;if(!((n=this.context)===null||n===void 0)&&n.document)return this.context.document;if(this.window)return this.window.document}get rootElement(){var n;return((n=this.args)===null||n===void 0?void 0:n.rootElement)||this.document}constructor(n,s){this.args=n,this.context=s}}function sle(o,n,s,i){return Math.sqrt(Math.pow(Math.abs(s-o),2)+Math.pow(Math.abs(i-n),2))}function rle(o,n,s,i,a){if(!a)return!1;const c=Math.atan2(i-n,s-o)*180/Math.PI+180;for(let h=0;h=g.start)&&(g.end==null||c<=g.end))return!0}return!1}const ile={Left:1},ole={Left:0};function h_(o){return o.button===void 0||o.button===ole.Left}function ale(o){return o.buttons===void 0||(o.buttons&ile.Left)===0}function uI(o){return!!o.targetTouches}const lle=1;function cle(o){const n=o.nodeType===lle?o:o.parentElement;if(!n)return;const{top:s,left:i}=n.getBoundingClientRect();return{x:i,y:s}}function ule(o,n){if(o.targetTouches.length===1)return kv(o.targetTouches[0]);if(n&&o.touches.length===1&&o.touches[0].target===n.target)return kv(o.touches[0])}function kv(o,n){return uI(o)?ule(o,n):{x:o.clientX,y:o.clientY}}const M0=(()=>{let o=!1;try{addEventListener("test",()=>{},Object.defineProperty({},"passive",{get(){return o=!0,!0}}))}catch{}return o})(),cf={[Ql.mouse]:{start:"mousedown",move:"mousemove",end:"mouseup",contextmenu:"contextmenu"},[Ql.touch]:{start:"touchstart",move:"touchmove",end:"touchend"},[Ql.keyboard]:{keydown:"keydown"}};class If{profile(){var n;return{sourceNodes:this.sourceNodes.size,sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,targetNodes:this.targetNodes.size,dragOverTargetIds:((n=this.dragOverTargetIds)===null||n===void 0?void 0:n.length)||0}}get document(){return this.options.document}setup(){const n=this.options.rootElement;n&&(Gt(!If.isSetUp,"Cannot have two Touch backends at the same time."),If.isSetUp=!0,this.addEventListener(n,"start",this.getTopMoveStartHandler()),this.addEventListener(n,"start",this.handleTopMoveStartCapture,!0),this.addEventListener(n,"move",this.handleTopMove),this.addEventListener(n,"move",this.handleTopMoveCapture,!0),this.addEventListener(n,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.addEventListener(n,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.addEventListener(n,"keydown",this.handleCancelOnEscape,!0))}teardown(){const n=this.options.rootElement;n&&(If.isSetUp=!1,this._mouseClientOffset={},this.removeEventListener(n,"start",this.handleTopMoveStartCapture,!0),this.removeEventListener(n,"start",this.handleTopMoveStart),this.removeEventListener(n,"move",this.handleTopMoveCapture,!0),this.removeEventListener(n,"move",this.handleTopMove),this.removeEventListener(n,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.removeEventListener(n,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.removeEventListener(n,"keydown",this.handleCancelOnEscape,!0),this.uninstallSourceNodeRemovalObserver())}addEventListener(n,s,i,a=!1){const c=M0?{capture:a,passive:!1}:a;this.listenerTypes.forEach(function(h){const g=cf[h][s];g&&n.addEventListener(g,i,c)})}removeEventListener(n,s,i,a=!1){const c=M0?{capture:a,passive:!1}:a;this.listenerTypes.forEach(function(h){const g=cf[h][s];g&&n.removeEventListener(g,i,c)})}connectDragSource(n,s){const i=this.handleMoveStart.bind(this,n);return this.sourceNodes.set(n,s),this.addEventListener(s,"start",i),()=>{this.sourceNodes.delete(n),this.removeEventListener(s,"start",i)}}connectDragPreview(n,s,i){return this.sourcePreviewNodeOptions.set(n,i),this.sourcePreviewNodes.set(n,s),()=>{this.sourcePreviewNodes.delete(n),this.sourcePreviewNodeOptions.delete(n)}}connectDropTarget(n,s){const i=this.options.rootElement;if(!this.document||!i)return()=>{};const a=c=>{if(!this.document||!i||!this.monitor.isDragging())return;let h;switch(c.type){case cf.mouse.move:h={x:c.clientX,y:c.clientY};break;case cf.touch.move:var g,b;h={x:((g=c.touches[0])===null||g===void 0?void 0:g.clientX)||0,y:((b=c.touches[0])===null||b===void 0?void 0:b.clientY)||0};break}const $=h!=null?this.document.elementFromPoint(h.x,h.y):void 0,y=$&&s.contains($);if($===s||y)return this.handleMove(c,n)};return this.addEventListener(this.document.body,"move",a),this.targetNodes.set(n,s),()=>{this.document&&(this.targetNodes.delete(n),this.removeEventListener(this.document.body,"move",a))}}getTopMoveStartHandler(){return!this.options.delayTouchStart&&!this.options.delayMouseStart?this.handleTopMoveStart:this.handleTopMoveStartDelay}installSourceNodeRemovalObserver(n){this.uninstallSourceNodeRemovalObserver(),this.draggedSourceNode=n,this.draggedSourceNodeRemovalObserver=new MutationObserver(()=>{n&&!n.parentElement&&(this.resurrectSourceNode(),this.uninstallSourceNodeRemovalObserver())}),!(!n||!n.parentElement)&&this.draggedSourceNodeRemovalObserver.observe(n.parentElement,{childList:!0})}resurrectSourceNode(){this.document&&this.draggedSourceNode&&(this.draggedSourceNode.style.display="none",this.draggedSourceNode.removeAttribute("data-reactid"),this.document.body.appendChild(this.draggedSourceNode))}uninstallSourceNodeRemovalObserver(){this.draggedSourceNodeRemovalObserver&&this.draggedSourceNodeRemovalObserver.disconnect(),this.draggedSourceNodeRemovalObserver=void 0,this.draggedSourceNode=void 0}constructor(n,s,i){this.getSourceClientOffset=a=>{const c=this.sourceNodes.get(a);return c&&cle(c)},this.handleTopMoveStartCapture=a=>{h_(a)&&(this.moveStartSourceIds=[])},this.handleMoveStart=a=>{Array.isArray(this.moveStartSourceIds)&&this.moveStartSourceIds.unshift(a)},this.handleTopMoveStart=a=>{if(!h_(a))return;const c=kv(a);c&&(uI(a)&&(this.lastTargetTouchFallback=a.targetTouches[0]),this._mouseClientOffset=c),this.waitingForDelay=!1},this.handleTopMoveStartDelay=a=>{if(!h_(a))return;const c=a.type===cf.touch.start?this.options.delayTouchStart:this.options.delayMouseStart;this.timeout=setTimeout(this.handleTopMoveStart.bind(this,a),c),this.waitingForDelay=!0},this.handleTopMoveCapture=()=>{this.dragOverTargetIds=[]},this.handleMove=(a,c)=>{this.dragOverTargetIds&&this.dragOverTargetIds.unshift(c)},this.handleTopMove=a=>{if(this.timeout&&clearTimeout(this.timeout),!this.document||this.waitingForDelay)return;const{moveStartSourceIds:c,dragOverTargetIds:h}=this,g=this.options.enableHoverOutsideTarget,b=kv(a,this.lastTargetTouchFallback);if(!b)return;if(this._isScrolling||!this.monitor.isDragging()&&rle(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,b.x,b.y,this.options.scrollAngleRanges)){this._isScrolling=!0;return}if(!this.monitor.isDragging()&&this._mouseClientOffset.hasOwnProperty("x")&&c&&sle(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,b.x,b.y)>(this.options.touchSlop?this.options.touchSlop:0)&&(this.moveStartSourceIds=void 0,this.actions.beginDrag(c,{clientOffset:this._mouseClientOffset,getSourceClientOffset:this.getSourceClientOffset,publishSource:!1})),!this.monitor.isDragging())return;const $=this.sourceNodes.get(this.monitor.getSourceId());this.installSourceNodeRemovalObserver($),this.actions.publishDragSource(),a.cancelable&&a.preventDefault();const y=(h||[]).map(E=>this.targetNodes.get(E)).filter(E=>!!E),w=this.options.getDropTargetElementsAtPoint?this.options.getDropTargetElementsAtPoint(b.x,b.y,y):this.document.elementsFromPoint(b.x,b.y),T=[];for(const E in w){if(!w.hasOwnProperty(E))continue;let k=w[E];for(k!=null&&T.push(k);k;)k=k.parentElement,k&&T.indexOf(k)===-1&&T.push(k)}const C=T.filter(E=>y.indexOf(E)>-1).map(E=>this._getDropTargetId(E)).filter(E=>!!E).filter((E,k,A)=>A.indexOf(E)===k);if(g)for(const E in this.targetNodes){const k=this.targetNodes.get(E);if($&&k&&k.contains($)&&C.indexOf(E)===-1){C.unshift(E);break}}C.reverse(),this.actions.hover(C,{clientOffset:b})},this._getDropTargetId=a=>{const c=this.targetNodes.keys();let h=c.next();for(;h.done===!1;){const g=h.value;if(a===this.targetNodes.get(g))return g;h=c.next()}},this.handleTopMoveEndCapture=a=>{if(this._isScrolling=!1,this.lastTargetTouchFallback=void 0,!!ale(a)){if(!this.monitor.isDragging()||this.monitor.didDrop()){this.moveStartSourceIds=void 0;return}a.cancelable&&a.preventDefault(),this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.drop(),this.actions.endDrag()}},this.handleCancelOnEscape=a=>{a.key==="Escape"&&this.monitor.isDragging()&&(this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.endDrag())},this.options=new nle(i,s),this.actions=n.getActions(),this.monitor=n.getMonitor(),this.sourceNodes=new Map,this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.targetNodes=new Map,this.listenerTypes=[],this._mouseClientOffset={},this._isScrolling=!1,this.options.enableMouseEvents&&this.listenerTypes.push(Ql.mouse),this.options.enableTouchEvents&&this.listenerTypes.push(Ql.touch),this.options.enableKeyboardEvents&&this.listenerTypes.push(Ql.keyboard)}}const dle=function(n,s={},i={}){return new If(n,s,i)};window.GenericBlock=yn;window.adapterName="javascript";window.sentryDSN="https://504499a725eb4898930d3b9e9da95740@sentry.iobroker.net/56";console.log(`iobroker.${window.adapterName}@${cI.version}`);const hle=window.innerWidth<600,N0=document.getElementById("root");N0&&V0(N0).render(f.jsx(oT,{backend:hle?dle:yT,children:f.jsx(Qae,{version:cI.version})}));ele();const D$=window.loadDynamicScript;D$&&D$(window.location.port==="3000"?`${window.location.protocol}//${window.location.hostname}:8081/lib/js/socket.io.js`:"./../../lib/js/socket.io.js",()=>D$("vs/loader.js",()=>D$("vs/configure.js",()=>typeof window.socketLoadedHandler=="function"&&window.socketLoadedHandler()))); diff --git a/admin/assets/index-BeXkxxIT.js b/admin/assets/index-BeXkxxIT.js new file mode 100644 index 000000000..bbff87ba7 --- /dev/null +++ b/admin/assets/index-BeXkxxIT.js @@ -0,0 +1,16 @@ +import{j as M}from"./createSvgIcon-DMsh-YeH.js";import{R as dt,i as Rt}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as Oe,m as Ft,z as Nt,g as Lt}from"./index-hex25_NL.js";import{i as G,x as Vt,y as zt,l as qt,U as It,e as Wt,q as Kt,o as $t,E as Jt,d as Ut,M as Ht,ax as Gt,ay as Yt,az as Qt,a3 as Zt}from"./index-f32XoI0M.js";import Xt from"./ScriptEditorVanillaMonaco-CZnuN4bN.js";import{g as ea}from"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";const ta={editorDiv:{height:"100%",width:"100%",overflow:"hidden",position:"relative"}};class aa extends dt.Component{constructor(v){super(v),this.state={lines:(this.props.script||"").split(/\r\n|\n/)}}render(){return M.jsx("div",{style:ta.editorDiv,children:M.jsx(Xt,{triggerPrettier:1,name:this.props.scriptName,adapterName:this.props.adapterName,readOnly:!0,code:this.props.script||"",isDark:this.props.themeType==="dark",socket:this.props.socket,runningInstances:this.props.runningInstances,language:"javascript",breakpoints:this.props.breakpoints,location:this.props.paused?this.props.location:null,onToggleBreakpoint:v=>this.props.onToggleBreakpoint(v)},"scriptEditor2")},"scriptEditorDiv2")}}const At=34,Ke={logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:X=>({display:"inline-block",color:X.palette.mode==="dark"?"white":"black",width:`calc(100% - ${At}px)`,height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"}),info:X=>({background:X.palette.mode==="dark"?"darkgrey":"lightgrey",color:(X.palette.mode==="dark","black")}),error:X=>({background:"#FF0000",color:X.palette.mode==="dark"?"black":"white"}),warn:X=>({background:"#FF8000",color:X.palette.mode==="dark"?"black":"white"}),debug:X=>({background:"gray",opacity:.8,color:X.palette.mode==="dark"?"black":"white"}),silly:X=>({background:"gray",opacity:.6,color:X.palette.mode==="dark"?"black":"white"}),table:{fontFamily:"monospace",width:"100%"},toolbox:{width:At,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},iconButtons:{width:32,height:32,padding:4}};function ra(X){let v,g=X.getHours();return g<10&&(g=`0${g.toString()}`),v=`${g}:`,g=X.getMinutes(),g<10&&(g=`0${g.toString()}`),v+=`${g}:`,g=X.getSeconds(),g<10&&(g=`0${g.toString()}`),v+=`${g}.`,g=X.getMilliseconds(),g<10?g=`00${g.toString()}`:g<100&&(g=`0${g.toString()}`),v+=g,v}class _t extends dt.Component{messagesEnd;constructor(v){super(v),this.state={goBottom:!0},this.messagesEnd=dt.createRef()}static generateLine(v){return M.jsxs(G.Box,{component:"tr",sx:Ke[v.severity],children:[M.jsx("td",{style:Ke.trTime,children:ra(new Date(v.ts))}),M.jsx("td",{style:Ke.trSeverity,children:v.severity}),M.jsx("td",{children:v.text})]},`tr_${v.ts}_${v.text.substring(v.text.length-10,v.text.length)}`)}renderLogList(v){return v!=null&&v.length?M.jsxs(G.Box,{sx:Ke.logBoxInner,children:[M.jsx("table",{style:Ke.table,children:M.jsx("tbody",{children:v.map(g=>_t.generateLine(g))})},"logTable"),M.jsx("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):M.jsx(G.Box,{sx:Ke.logBoxInner,style:{paddingLeft:10},children:Oe.I18n.t("Log outputs")},"logList")}onCopy(){Oe.Utils.copyToClipboard(this.props.console.join(` +`))}scrollToBottom(){var v,g;(g=(v=this.messagesEnd)==null?void 0:v.current)==null||g.scrollIntoView({behavior:"smooth"})}componentDidUpdate(){this.state.goBottom&&this.scrollToBottom()}render(){const v=this.props.console;return M.jsxs("div",{style:Ke.logBox,children:[M.jsxs("div",{style:Ke.toolbox,children:[M.jsx(G.IconButton,{style:Ke.iconButtons,onClick:()=>this.setState({goBottom:!this.state.goBottom}),color:this.state.goBottom?"secondary":void 0,size:"medium",children:M.jsx(Vt,{})}),v!=null&&v.length?M.jsx(G.IconButton,{style:Ke.iconButtons,onClick:()=>this.props.onClearAllLogs(),size:"medium",children:M.jsx(zt,{})}):null,v!=null&&v.length?M.jsx(G.IconButton,{style:Ke.iconButtons,onClick:()=>this.onCopy(),size:"medium",children:M.jsx(qt,{})}):null]},"toolbox"),this.renderLogList(v)]})}}var wt={exports:{}},na=wt.exports;(function(X,v){(function(g,a){X.exports=a(Rt)})(na,function(g){return function(a){var t={};function e(s){if(t[s])return t[s].exports;var c=t[s]={i:s,l:!1,exports:{}};return a[s].call(c.exports,c,c.exports,e),c.l=!0,c.exports}return e.m=a,e.c=t,e.d=function(s,c,d){e.o(s,c)||Object.defineProperty(s,c,{enumerable:!0,get:d})},e.r=function(s){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})},e.t=function(s,c){if(1&c&&(s=e(s)),8&c||4&c&&typeof s=="object"&&s&&s.__esModule)return s;var d=Object.create(null);if(e.r(d),Object.defineProperty(d,"default",{enumerable:!0,value:s}),2&c&&typeof s!="string")for(var p in s)e.d(d,p,function(f){return s[f]}.bind(null,p));return d},e.n=function(s){var c=s&&s.__esModule?function(){return s.default}:function(){return s};return e.d(c,"a",c),c},e.o=function(s,c){return Object.prototype.hasOwnProperty.call(s,c)},e.p="",e(e.s=48)}([function(a,t){a.exports=g},function(a,t){var e=a.exports={version:"2.6.12"};typeof __e=="number"&&(__e=e)},function(a,t,e){var s=e(26)("wks"),c=e(17),d=e(3).Symbol,p=typeof d=="function";(a.exports=function(f){return s[f]||(s[f]=p&&d[f]||(p?d:c)("Symbol."+f))}).store=s},function(a,t){var e=a.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=e)},function(a,t,e){a.exports=!e(8)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(a,t){var e={}.hasOwnProperty;a.exports=function(s,c){return e.call(s,c)}},function(a,t,e){var s=e(7),c=e(16);a.exports=e(4)?function(d,p,f){return s.f(d,p,c(1,f))}:function(d,p,f){return d[p]=f,d}},function(a,t,e){var s=e(10),c=e(35),d=e(23),p=Object.defineProperty;t.f=e(4)?Object.defineProperty:function(f,h,E){if(s(f),h=d(h,!0),s(E),c)try{return p(f,h,E)}catch{}if("get"in E||"set"in E)throw TypeError("Accessors not supported!");return"value"in E&&(f[h]=E.value),f}},function(a,t){a.exports=function(e){try{return!!e()}catch{return!0}}},function(a,t,e){var s=e(40),c=e(22);a.exports=function(d){return s(c(d))}},function(a,t,e){var s=e(11);a.exports=function(c){if(!s(c))throw TypeError(c+" is not an object!");return c}},function(a,t){a.exports=function(e){return typeof e=="object"?e!==null:typeof e=="function"}},function(a,t){a.exports={}},function(a,t,e){var s=e(39),c=e(27);a.exports=Object.keys||function(d){return s(d,c)}},function(a,t){a.exports=!0},function(a,t,e){var s=e(3),c=e(1),d=e(53),p=e(6),f=e(5),h=function(E,b,w){var I,D,H,L=E&h.F,ee=E&h.G,r=E&h.S,B=E&h.P,V=E&h.B,z=E&h.W,q=ee?c:c[b]||(c[b]={}),k=q.prototype,A=ee?s:r?s[b]:(s[b]||{}).prototype;for(I in ee&&(w=b),w)(D=!L&&A&&A[I]!==void 0)&&f(q,I)||(H=D?A[I]:w[I],q[I]=ee&&typeof A[I]!="function"?w[I]:V&&D?d(H,s):z&&A[I]==H?function(T){var W=function(S,te,J){if(this instanceof T){switch(arguments.length){case 0:return new T;case 1:return new T(S);case 2:return new T(S,te)}return new T(S,te,J)}return T.apply(this,arguments)};return W.prototype=T.prototype,W}(H):B&&typeof H=="function"?d(Function.call,H):H,B&&((q.virtual||(q.virtual={}))[I]=H,E&h.R&&k&&!k[I]&&p(k,I,H)))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,h.U=64,h.R=128,a.exports=h},function(a,t){a.exports=function(e,s){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:s}}},function(a,t){var e=0,s=Math.random();a.exports=function(c){return"Symbol(".concat(c===void 0?"":c,")_",(++e+s).toString(36))}},function(a,t,e){var s=e(22);a.exports=function(c){return Object(s(c))}},function(a,t){t.f={}.propertyIsEnumerable},function(a,t,e){var s=e(52)(!0);e(34)(String,"String",function(c){this._t=String(c),this._i=0},function(){var c,d=this._t,p=this._i;return p>=d.length?{value:void 0,done:!0}:(c=s(d,p),this._i+=c.length,{value:c,done:!1})})},function(a,t){var e=Math.ceil,s=Math.floor;a.exports=function(c){return isNaN(c=+c)?0:(c>0?s:e)(c)}},function(a,t){a.exports=function(e){if(e==null)throw TypeError("Can't call method on "+e);return e}},function(a,t,e){var s=e(11);a.exports=function(c,d){if(!s(c))return c;var p,f;if(d&&typeof(p=c.toString)=="function"&&!s(f=p.call(c))||typeof(p=c.valueOf)=="function"&&!s(f=p.call(c))||!d&&typeof(p=c.toString)=="function"&&!s(f=p.call(c)))return f;throw TypeError("Can't convert object to primitive value")}},function(a,t){var e={}.toString;a.exports=function(s){return e.call(s).slice(8,-1)}},function(a,t,e){var s=e(26)("keys"),c=e(17);a.exports=function(d){return s[d]||(s[d]=c(d))}},function(a,t,e){var s=e(1),c=e(3),d=c["__core-js_shared__"]||(c["__core-js_shared__"]={});(a.exports=function(p,f){return d[p]||(d[p]=f!==void 0?f:{})})("versions",[]).push({version:s.version,mode:e(14)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(a,t){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,t,e){var s=e(7).f,c=e(5),d=e(2)("toStringTag");a.exports=function(p,f,h){p&&!c(p=h?p:p.prototype,d)&&s(p,d,{configurable:!0,value:f})}},function(a,t,e){e(62);for(var s=e(3),c=e(6),d=e(12),p=e(2)("toStringTag"),f="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),h=0;hdocument.F=Object<\/script>"),E.close(),h=E.F;w--;)delete h.prototype[d[w]];return h()};a.exports=Object.create||function(E,b){var w;return E!==null?(f.prototype=s(E),w=new f,f.prototype=null,w[p]=E):w=h(),b===void 0?w:c(w,b)}},function(a,t,e){var s=e(5),c=e(9),d=e(57)(!1),p=e(25)("IE_PROTO");a.exports=function(f,h){var E,b=c(f),w=0,I=[];for(E in b)E!=p&&s(b,E)&&I.push(E);for(;h.length>w;)s(b,E=h[w++])&&(~d(I,E)||I.push(E));return I}},function(a,t,e){var s=e(24);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(c){return s(c)=="String"?c.split(""):Object(c)}},function(a,t,e){var s=e(39),c=e(27).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(d){return s(d,c)}},function(a,t,e){var s=e(24),c=e(2)("toStringTag"),d=s(function(){return arguments}())=="Arguments";a.exports=function(p){var f,h,E;return p===void 0?"Undefined":p===null?"Null":typeof(h=function(b,w){try{return b[w]}catch{}}(f=Object(p),c))=="string"?h:d?s(f):(E=s(f))=="Object"&&typeof f.callee=="function"?"Arguments":E}},function(a,t){var e;e=function(){return this}();try{e=e||new Function("return this")()}catch{typeof window=="object"&&(e=window)}a.exports=e},function(a,t){var e=/-?\d+(\.\d+)?%?/g;a.exports=function(s){return s.match(e)}},function(a,t,e){Object.defineProperty(t,"__esModule",{value:!0}),t.getBase16Theme=t.createStyling=t.invertTheme=void 0;var s=D(e(49)),c=D(e(76)),d=D(e(81)),p=D(e(89)),f=D(e(93)),h=function(k){if(k&&k.__esModule)return k;var A={};if(k!=null)for(var T in k)Object.prototype.hasOwnProperty.call(k,T)&&(A[T]=k[T]);return A.default=k,A}(e(94)),E=D(e(132)),b=D(e(133)),w=D(e(138)),I=e(139);function D(k){return k&&k.__esModule?k:{default:k}}var H=h.default,L=(0,p.default)(H),ee=(0,w.default)(b.default,I.rgb2yuv,function(k){var A,T=(0,d.default)(k,3),W=T[0],S=T[1],te=T[2];return[(A=W,A<.25?1:A<.5?.9-A:1.1-A),S,te]},I.yuv2rgb,E.default),r=function(k){return function(A){return{className:[A.className,k.className].filter(Boolean).join(" "),style:(0,c.default)({},A.style||{},k.style||{})}}},B=function(k,A){var T=(0,p.default)(A);for(var W in k)T.indexOf(W)===-1&&T.push(W);return T.reduce(function(S,te){return S[te]=function(J,C){if(J===void 0)return C;if(C===void 0)return J;var Q=J===void 0?"undefined":(0,s.default)(J),he=C===void 0?"undefined":(0,s.default)(C);switch(Q){case"string":switch(he){case"string":return[C,J].filter(Boolean).join(" ");case"object":return r({className:J,style:C});case"function":return function(ue){for(var U=arguments.length,ce=Array(U>1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z2?T-2:0),S=2;S3?A-3:0),W=3;W1&&arguments[1]!==void 0?arguments[1]:{},te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},J=S.defaultBase16,C=J===void 0?H:J,Q=S.base16Themes,he=Q===void 0?null:Q,ue=q(te,he);ue&&(te=(0,c.default)({},ue,te));var U=L.reduce(function(ge,Me){return ge[Me]=te[Me]||C[Me],ge},{}),ce=(0,p.default)(te).reduce(function(ge,Me){return L.indexOf(Me)===-1&&(ge[Me]=te[Me]),ge},{}),Z=k(U),me=B(ce,Z);return(0,f.default)(V,2).apply(void 0,[me].concat(T))},3),t.getBase16Theme=function(k,A){if(k&&k.extend&&(k=k.extend),typeof k=="string"){var T=k.split(":"),W=(0,d.default)(T,2),S=W[0],te=W[1];k=(A||{})[S]||h[S],te==="inverted"&&(k=z(k))}return k&&k.hasOwnProperty("base00")?k:void 0})},function(a,t,e){var s,c=typeof Reflect=="object"?Reflect:null,d=c&&typeof c.apply=="function"?c.apply:function(r,B,V){return Function.prototype.apply.call(r,B,V)};s=c&&typeof c.ownKeys=="function"?c.ownKeys:Object.getOwnPropertySymbols?function(r){return Object.getOwnPropertyNames(r).concat(Object.getOwnPropertySymbols(r))}:function(r){return Object.getOwnPropertyNames(r)};var p=Number.isNaN||function(r){return r!=r};function f(){f.init.call(this)}a.exports=f,a.exports.once=function(r,B){return new Promise(function(V,z){function q(){k!==void 0&&r.removeListener("error",k),V([].slice.call(arguments))}var k;B!=="error"&&(k=function(A){r.removeListener(B,q),z(A)},r.once("error",k)),r.once(B,q)})},f.EventEmitter=f,f.prototype._events=void 0,f.prototype._eventsCount=0,f.prototype._maxListeners=void 0;var h=10;function E(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}function b(r){return r._maxListeners===void 0?f.defaultMaxListeners:r._maxListeners}function w(r,B,V,z){var q,k,A,T;if(E(V),(k=r._events)===void 0?(k=r._events=Object.create(null),r._eventsCount=0):(k.newListener!==void 0&&(r.emit("newListener",B,V.listener?V.listener:V),k=r._events),A=k[B]),A===void 0)A=k[B]=V,++r._eventsCount;else if(typeof A=="function"?A=k[B]=z?[V,A]:[A,V]:z?A.unshift(V):A.push(V),(q=b(r))>0&&A.length>q&&!A.warned){A.warned=!0;var W=new Error("Possible EventEmitter memory leak detected. "+A.length+" "+String(B)+" listeners added. Use emitter.setMaxListeners() to increase limit");W.name="MaxListenersExceededWarning",W.emitter=r,W.type=B,W.count=A.length,T=W,console&&console.warn&&console.warn(T)}return r}function I(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function D(r,B,V){var z={fired:!1,wrapFn:void 0,target:r,type:B,listener:V},q=I.bind(z);return q.listener=V,z.wrapFn=q,q}function H(r,B,V){var z=r._events;if(z===void 0)return[];var q=z[B];return q===void 0?[]:typeof q=="function"?V?[q.listener||q]:[q]:V?function(k){for(var A=new Array(k.length),T=0;T0&&(k=B[0]),k instanceof Error)throw k;var A=new Error("Unhandled error."+(k?" ("+k.message+")":""));throw A.context=k,A}var T=q[r];if(T===void 0)return!1;if(typeof T=="function")d(T,this,B);else{var W=T.length,S=ee(T,W);for(V=0;V=0;k--)if(V[k]===B||V[k].listener===B){A=V[k].listener,q=k;break}if(q<0)return this;q===0?V.shift():function(T,W){for(;W+1=0;z--)this.removeListener(r,B[z]);return this},f.prototype.listeners=function(r){return H(this,r,!0)},f.prototype.rawListeners=function(r){return H(this,r,!1)},f.listenerCount=function(r,B){return typeof r.listenerCount=="function"?r.listenerCount(B):L.call(r,B)},f.prototype.listenerCount=L,f.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},function(a,t,e){a.exports.Dispatcher=e(140)},function(a,t,e){a.exports=e(142)},function(a,t,e){t.__esModule=!0;var s=p(e(50)),c=p(e(65)),d=typeof c.default=="function"&&typeof s.default=="symbol"?function(f){return typeof f}:function(f){return f&&typeof c.default=="function"&&f.constructor===c.default&&f!==c.default.prototype?"symbol":typeof f};function p(f){return f&&f.__esModule?f:{default:f}}t.default=typeof c.default=="function"&&d(s.default)==="symbol"?function(f){return f===void 0?"undefined":d(f)}:function(f){return f&&typeof c.default=="function"&&f.constructor===c.default&&f!==c.default.prototype?"symbol":f===void 0?"undefined":d(f)}},function(a,t,e){a.exports={default:e(51),__esModule:!0}},function(a,t,e){e(20),e(29),a.exports=e(30).f("iterator")},function(a,t,e){var s=e(21),c=e(22);a.exports=function(d){return function(p,f){var h,E,b=String(c(p)),w=s(f),I=b.length;return w<0||w>=I?d?"":void 0:(h=b.charCodeAt(w))<55296||h>56319||w+1===I||(E=b.charCodeAt(w+1))<56320||E>57343?d?b.charAt(w):h:d?b.slice(w,w+2):E-56320+(h-55296<<10)+65536}}},function(a,t,e){var s=e(54);a.exports=function(c,d,p){if(s(c),d===void 0)return c;switch(p){case 1:return function(f){return c.call(d,f)};case 2:return function(f,h){return c.call(d,f,h)};case 3:return function(f,h,E){return c.call(d,f,h,E)}}return function(){return c.apply(d,arguments)}}},function(a,t){a.exports=function(e){if(typeof e!="function")throw TypeError(e+" is not a function!");return e}},function(a,t,e){var s=e(38),c=e(16),d=e(28),p={};e(6)(p,e(2)("iterator"),function(){return this}),a.exports=function(f,h,E){f.prototype=s(p,{next:c(1,E)}),d(f,h+" Iterator")}},function(a,t,e){var s=e(7),c=e(10),d=e(13);a.exports=e(4)?Object.defineProperties:function(p,f){c(p);for(var h,E=d(f),b=E.length,w=0;b>w;)s.f(p,h=E[w++],f[h]);return p}},function(a,t,e){var s=e(9),c=e(58),d=e(59);a.exports=function(p){return function(f,h,E){var b,w=s(f),I=c(w.length),D=d(E,I);if(p&&h!=h){for(;I>D;)if((b=w[D++])!=b)return!0}else for(;I>D;D++)if((p||D in w)&&w[D]===h)return p||D||0;return!p&&-1}}},function(a,t,e){var s=e(21),c=Math.min;a.exports=function(d){return d>0?c(s(d),9007199254740991):0}},function(a,t,e){var s=e(21),c=Math.max,d=Math.min;a.exports=function(p,f){return(p=s(p))<0?c(p+f,0):d(p,f)}},function(a,t,e){var s=e(3).document;a.exports=s&&s.documentElement},function(a,t,e){var s=e(5),c=e(18),d=e(25)("IE_PROTO"),p=Object.prototype;a.exports=Object.getPrototypeOf||function(f){return f=c(f),s(f,d)?f[d]:typeof f.constructor=="function"&&f instanceof f.constructor?f.constructor.prototype:f instanceof Object?p:null}},function(a,t,e){var s=e(63),c=e(64),d=e(12),p=e(9);a.exports=e(34)(Array,"Array",function(f,h){this._t=p(f),this._i=0,this._k=h},function(){var f=this._t,h=this._k,E=this._i++;return!f||E>=f.length?(this._t=void 0,c(1)):c(0,h=="keys"?E:h=="values"?f[E]:[E,f[E]])},"values"),d.Arguments=d.Array,s("keys"),s("values"),s("entries")},function(a,t){a.exports=function(){}},function(a,t){a.exports=function(e,s){return{value:s,done:!!e}}},function(a,t,e){a.exports={default:e(66),__esModule:!0}},function(a,t,e){e(67),e(73),e(74),e(75),a.exports=e(1).Symbol},function(a,t,e){var s=e(3),c=e(5),d=e(4),p=e(15),f=e(37),h=e(68).KEY,E=e(8),b=e(26),w=e(28),I=e(17),D=e(2),H=e(30),L=e(31),ee=e(69),r=e(70),B=e(10),V=e(11),z=e(18),q=e(9),k=e(23),A=e(16),T=e(38),W=e(71),S=e(72),te=e(32),J=e(7),C=e(13),Q=S.f,he=J.f,ue=W.f,U=s.Symbol,ce=s.JSON,Z=ce&&ce.stringify,me=D("_hidden"),ge=D("toPrimitive"),Me={}.propertyIsEnumerable,Ee=b("symbol-registry"),Ce=b("symbols"),be=b("op-symbols"),ye=Object.prototype,Be=typeof U=="function"&&!!te.f,Ue=s.QObject,Ze=!Ue||!Ue.prototype||!Ue.prototype.findChild,Xe=d&&E(function(){return T(he({},"a",{get:function(){return he(this,"a",{value:7}).a}})).a!=7})?function(j,N,R){var K=Q(ye,N);K&&delete ye[N],he(j,N,R),K&&j!==ye&&he(ye,N,K)}:he,et=function(j){var N=Ce[j]=T(U.prototype);return N._k=j,N},tt=Be&&typeof U.iterator=="symbol"?function(j){return typeof j=="symbol"}:function(j){return j instanceof U},He=function(j,N,R){return j===ye&&He(be,N,R),B(j),N=k(N,!0),B(R),c(Ce,N)?(R.enumerable?(c(j,me)&&j[me][N]&&(j[me][N]=!1),R=T(R,{enumerable:A(0,!1)})):(c(j,me)||he(j,me,A(1,{})),j[me][N]=!0),Xe(j,N,R)):he(j,N,R)},nt=function(j,N){B(j);for(var R,K=ee(N=q(N)),ne=0,ae=K.length;ae>ne;)He(j,R=K[ne++],N[R]);return j},st=function(j){var N=Me.call(this,j=k(j,!0));return!(this===ye&&c(Ce,j)&&!c(be,j))&&(!(N||!c(this,j)||!c(Ce,j)||c(this,me)&&this[me][j])||N)},at=function(j,N){if(j=q(j),N=k(N,!0),j!==ye||!c(Ce,N)||c(be,N)){var R=Q(j,N);return!R||!c(Ce,N)||c(j,me)&&j[me][N]||(R.enumerable=!0),R}},ot=function(j){for(var N,R=ue(q(j)),K=[],ne=0;R.length>ne;)c(Ce,N=R[ne++])||N==me||N==h||K.push(N);return K},Ge=function(j){for(var N,R=j===ye,K=ue(R?be:q(j)),ne=[],ae=0;K.length>ae;)!c(Ce,N=K[ae++])||R&&!c(ye,N)||ne.push(Ce[N]);return ne};Be||(f((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor!");var j=I(arguments.length>0?arguments[0]:void 0),N=function(R){this===ye&&N.call(be,R),c(this,me)&&c(this[me],j)&&(this[me][j]=!1),Xe(this,j,A(1,R))};return d&&Ze&&Xe(ye,j,{configurable:!0,set:N}),et(j)}).prototype,"toString",function(){return this._k}),S.f=at,J.f=He,e(41).f=W.f=ot,e(19).f=st,te.f=Ge,d&&!e(14)&&f(ye,"propertyIsEnumerable",st,!0),H.f=function(j){return et(D(j))}),p(p.G+p.W+p.F*!Be,{Symbol:U});for(var Ve="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Ie=0;Ve.length>Ie;)D(Ve[Ie++]);for(var rt=C(D.store),F=0;rt.length>F;)L(rt[F++]);p(p.S+p.F*!Be,"Symbol",{for:function(j){return c(Ee,j+="")?Ee[j]:Ee[j]=U(j)},keyFor:function(j){if(!tt(j))throw TypeError(j+" is not a symbol!");for(var N in Ee)if(Ee[N]===j)return N},useSetter:function(){Ze=!0},useSimple:function(){Ze=!1}}),p(p.S+p.F*!Be,"Object",{create:function(j,N){return N===void 0?T(j):nt(T(j),N)},defineProperty:He,defineProperties:nt,getOwnPropertyDescriptor:at,getOwnPropertyNames:ot,getOwnPropertySymbols:Ge});var x=E(function(){te.f(1)});p(p.S+p.F*x,"Object",{getOwnPropertySymbols:function(j){return te.f(z(j))}}),ce&&p(p.S+p.F*(!Be||E(function(){var j=U();return Z([j])!="[null]"||Z({a:j})!="{}"||Z(Object(j))!="{}"})),"JSON",{stringify:function(j){for(var N,R,K=[j],ne=1;arguments.length>ne;)K.push(arguments[ne++]);if(R=N=K[1],(V(N)||j!==void 0)&&!tt(j))return r(N)||(N=function(ae,pe){if(typeof R=="function"&&(pe=R.call(this,ae,pe)),!tt(pe))return pe}),K[1]=N,Z.apply(ce,K)}}),U.prototype[ge]||e(6)(U.prototype,ge,U.prototype.valueOf),w(U,"Symbol"),w(Math,"Math",!0),w(s.JSON,"JSON",!0)},function(a,t,e){var s=e(17)("meta"),c=e(11),d=e(5),p=e(7).f,f=0,h=Object.isExtensible||function(){return!0},E=!e(8)(function(){return h(Object.preventExtensions({}))}),b=function(I){p(I,s,{value:{i:"O"+ ++f,w:{}}})},w=a.exports={KEY:s,NEED:!1,fastKey:function(I,D){if(!c(I))return typeof I=="symbol"?I:(typeof I=="string"?"S":"P")+I;if(!d(I,s)){if(!h(I))return"F";if(!D)return"E";b(I)}return I[s].i},getWeak:function(I,D){if(!d(I,s)){if(!h(I))return!0;if(!D)return!1;b(I)}return I[s].w},onFreeze:function(I){return E&&w.NEED&&h(I)&&!d(I,s)&&b(I),I}}},function(a,t,e){var s=e(13),c=e(32),d=e(19);a.exports=function(p){var f=s(p),h=c.f;if(h)for(var E,b=h(p),w=d.f,I=0;b.length>I;)w.call(p,E=b[I++])&&f.push(E);return f}},function(a,t,e){var s=e(24);a.exports=Array.isArray||function(c){return s(c)=="Array"}},function(a,t,e){var s=e(9),c=e(41).f,d={}.toString,p=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];a.exports.f=function(f){return p&&d.call(f)=="[object Window]"?function(h){try{return c(h)}catch{return p.slice()}}(f):c(s(f))}},function(a,t,e){var s=e(19),c=e(16),d=e(9),p=e(23),f=e(5),h=e(35),E=Object.getOwnPropertyDescriptor;t.f=e(4)?E:function(b,w){if(b=d(b),w=p(w,!0),h)try{return E(b,w)}catch{}if(f(b,w))return c(!s.f.call(b,w),b[w])}},function(a,t){},function(a,t,e){e(31)("asyncIterator")},function(a,t,e){e(31)("observable")},function(a,t,e){t.__esModule=!0;var s,c=e(77),d=(s=c)&&s.__esModule?s:{default:s};t.default=d.default||function(p){for(var f=1;fH;)for(var r,B=h(arguments[H++]),V=L?c(B).concat(L(B)):c(B),z=V.length,q=0;z>q;)r=V[q++],s&&!ee.call(B,r)||(I[r]=B[r]);return I}:E},function(a,t,e){t.__esModule=!0;var s=d(e(82)),c=d(e(85));function d(p){return p&&p.__esModule?p:{default:p}}t.default=function(p,f){if(Array.isArray(p))return p;if((0,s.default)(Object(p)))return function(h,E){var b=[],w=!0,I=!1,D=void 0;try{for(var H,L=(0,c.default)(h);!(w=(H=L.next()).done)&&(b.push(H.value),!E||b.length!==E);w=!0);}catch(ee){I=!0,D=ee}finally{try{!w&&L.return&&L.return()}finally{if(I)throw D}}return b}(p,f);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(a,t,e){a.exports={default:e(83),__esModule:!0}},function(a,t,e){e(29),e(20),a.exports=e(84)},function(a,t,e){var s=e(42),c=e(2)("iterator"),d=e(12);a.exports=e(1).isIterable=function(p){var f=Object(p);return f[c]!==void 0||"@@iterator"in f||d.hasOwnProperty(s(f))}},function(a,t,e){a.exports={default:e(86),__esModule:!0}},function(a,t,e){e(29),e(20),a.exports=e(87)},function(a,t,e){var s=e(10),c=e(88);a.exports=e(1).getIterator=function(d){var p=c(d);if(typeof p!="function")throw TypeError(d+" is not iterable!");return s(p.call(d))}},function(a,t,e){var s=e(42),c=e(2)("iterator"),d=e(12);a.exports=e(1).getIteratorMethod=function(p){if(p!=null)return p[c]||p["@@iterator"]||d[s(p)]}},function(a,t,e){a.exports={default:e(90),__esModule:!0}},function(a,t,e){e(91),a.exports=e(1).Object.keys},function(a,t,e){var s=e(18),c=e(13);e(92)("keys",function(){return function(d){return c(s(d))}})},function(a,t,e){var s=e(15),c=e(1),d=e(8);a.exports=function(p,f){var h=(c.Object||{})[p]||Object[p],E={};E[p]=f(h),s(s.S+s.F*d(function(){h(1)}),"Object",E)}},function(a,t,e){(function(s){var c=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],d=/^\s+|\s+$/g,p=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,f=/\{\n\/\* \[wrapped with (.+)\] \*/,h=/,? & /,E=/^[-+]0x[0-9a-f]+$/i,b=/^0b[01]+$/i,w=/^\[object .+?Constructor\]$/,I=/^0o[0-7]+$/i,D=/^(?:0|[1-9]\d*)$/,H=parseInt,L=typeof s=="object"&&s&&s.Object===Object&&s,ee=typeof self=="object"&&self&&self.Object===Object&&self,r=L||ee||Function("return this")();function B(F,x,j){switch(j.length){case 0:return F.call(x);case 1:return F.call(x,j[0]);case 2:return F.call(x,j[0],j[1]);case 3:return F.call(x,j[0],j[1],j[2])}return F.apply(x,j)}function V(F,x){return!!(F&&F.length)&&function(j,N,R){if(N!=N)return function(ae,pe,xe,je){for(var Ae=ae.length,ve=xe+-1;++ve-1}function z(F){return F!=F}function q(F,x){for(var j=F.length,N=0;j--;)F[j]===x&&N++;return N}function k(F,x){for(var j=-1,N=F.length,R=0,K=[];++j2?T:void 0);function Me(F){return Ve(F)?ce(F):{}}function Ee(F){return!(!Ve(F)||function(x){return!!C&&C in x}(F))&&(function(x){var j=Ve(x)?ue.call(x):"";return j=="[object Function]"||j=="[object GeneratorFunction]"}(F)||function(x){var j=!1;if(x!=null&&typeof x.toString!="function")try{j=!!(x+"")}catch{}return j}(F)?U:w).test(function(x){if(x!=null){try{return Q.call(x)}catch{}try{return x+""}catch{}}return""}(F))}function Ce(F,x,j,N){for(var R=-1,K=F.length,ne=j.length,ae=-1,pe=x.length,xe=Z(K-ne,0),je=Array(pe+xe),Ae=!N;++ae1&&oe.reverse(),je&&pe1?"& ":"")+x[N],x=x.join(j>2?", ":" "),F.replace(p,`{ +/* [wrapped with `+x+`] */ +`)}function nt(F,x){return!!(x=x??9007199254740991)&&(typeof F=="number"||D.test(F))&&F>-1&&F%1==0&&F1&&d--,f=6*d<1?s+6*(c-s)*d:2*d<1?c:3*d<2?s+(c-s)*(2/3-d)*6:s,p[w]=255*f;return p}},function(a,t,e){(function(s){var c=typeof s=="object"&&s&&s.Object===Object&&s,d=typeof self=="object"&&self&&self.Object===Object&&self,p=c||d||Function("return this")();function f(k,A,T){switch(T.length){case 0:return k.call(A);case 1:return k.call(A,T[0]);case 2:return k.call(A,T[0],T[1]);case 3:return k.call(A,T[0],T[1],T[2])}return k.apply(A,T)}function h(k,A){for(var T=-1,W=A.length,S=k.length;++T-1&&S%1==0&&S<=9007199254740991}(W.length)&&!function(S){var te=function(J){var C=typeof J;return!!J&&(C=="object"||C=="function")}(S)?w.call(S):"";return te=="[object Function]"||te=="[object GeneratorFunction]"}(W)}(T)}(A)&&b.call(A,"callee")&&(!D.call(A,"callee")||w.call(A)=="[object Arguments]")}(k)||!!(H&&k&&k[H])}var r=Array.isArray,B,V,z,q=(V=function(k){var A=(k=function(S,te,J,C,Q){var he=-1,ue=S.length;for(J||(J=ee),Q||(Q=[]);++he2?d-2:0),f=2;f"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var n,o=w(l);if(u){var i=w(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return H(this,n)}}e.r(t);var ee=e(0),r=e.n(ee);function B(){var l=this.constructor.getDerivedStateFromProps(this.props,this.state);l!=null&&this.setState(l)}function V(l){this.setState(function(u){var n=this.constructor.getDerivedStateFromProps(l,u);return n??null}.bind(this))}function z(l,u){try{var n=this.props,o=this.state;this.props=l,this.state=u,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,o)}finally{this.props=n,this.state=o}}function q(l){var u=l.prototype;if(!u||!u.isReactComponent)throw new Error("Can only polyfill class components");if(typeof l.getDerivedStateFromProps!="function"&&typeof u.getSnapshotBeforeUpdate!="function")return l;var n=null,o=null,i=null;if(typeof u.componentWillMount=="function"?n="componentWillMount":typeof u.UNSAFE_componentWillMount=="function"&&(n="UNSAFE_componentWillMount"),typeof u.componentWillReceiveProps=="function"?o="componentWillReceiveProps":typeof u.UNSAFE_componentWillReceiveProps=="function"&&(o="UNSAFE_componentWillReceiveProps"),typeof u.componentWillUpdate=="function"?i="componentWillUpdate":typeof u.UNSAFE_componentWillUpdate=="function"&&(i="UNSAFE_componentWillUpdate"),n!==null||o!==null||i!==null){var y=l.displayName||l.name,O=typeof l.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error(`Unsafe legacy lifecycles will not be called for components using new component APIs. + +`+y+" uses "+O+" but also contains the following legacy lifecycles:"+(n!==null?` + `+n:"")+(o!==null?` + `+o:"")+(i!==null?` + `+i:"")+` + +The above lifecycles should be removed. Learn more about this warning here: +https://fb.me/react-async-component-lifecycle-hooks`)}if(typeof l.getDerivedStateFromProps=="function"&&(u.componentWillMount=B,u.componentWillReceiveProps=V),typeof u.getSnapshotBeforeUpdate=="function"){if(typeof u.componentDidUpdate!="function")throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");u.componentWillUpdate=z;var _=u.componentDidUpdate;u.componentDidUpdate=function(m,P,$){var se=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:$;_.call(this,m,P,se)}}return l}function k(l,u){if(l==null)return{};var n,o,i=function(O,_){if(O==null)return{};var m,P,$={},se=Object.keys(O);for(P=0;P=0||($[m]=O[m]);return $}(l,u);if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(l);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(l,n)&&(i[n]=l[n])}return i}function A(l){var u=function(n){return{}.toString.call(n).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(l);return u==="number"&&(u=isNaN(l)?"nan":(0|l)!=l?"float":"integer"),u}B.__suppressDeprecationWarning=!0,V.__suppressDeprecationWarning=!0,z.__suppressDeprecationWarning=!0;var T={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},W={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},S={globalFontFamily:"monospace",globalCursor:"default",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},te=e(45),J=function(l){var u=function(n){return{backgroundColor:n.base00,ellipsisColor:n.base09,braceColor:n.base07,expandedIcon:n.base0D,collapsedIcon:n.base0E,keyColor:n.base07,arrayKeyColor:n.base0C,objectSize:n.base04,copyToClipboard:n.base0F,copyToClipboardCheck:n.base0D,objectBorder:n.base02,dataTypes:{boolean:n.base0E,date:n.base0D,float:n.base0B,function:n.base0D,integer:n.base0F,string:n.base09,nan:n.base08,null:n.base0A,undefined:n.base05,regexp:n.base0A,background:n.base02},editVariable:{editIcon:n.base0E,cancelIcon:n.base09,removeIcon:n.base09,addIcon:n.base0E,checkIcon:n.base0E,background:n.base01,color:n.base0A,border:n.base07},addKeyModal:{background:n.base05,border:n.base04,color:n.base0A,labelColor:n.base01},validationFailure:{background:n.base09,iconColor:n.base01,fontColor:n.base01}}}(l);return{"app-container":{fontFamily:S.globalFontFamily,cursor:S.globalCursor,backgroundColor:u.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:u.ellipsisColor,fontSize:S.ellipsisFontSize,lineHeight:S.ellipsisLineHeight,cursor:S.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:S.braceCursor,fontWeight:S.braceFontWeight,color:u.braceColor},"expanded-icon":{color:u.expandedIcon},"collapsed-icon":{color:u.collapsedIcon},colon:{display:"inline-block",margin:S.keyMargin,color:u.keyColor,verticalAlign:"top"},objectKeyVal:function(n,o){return{style:d({paddingTop:S.keyValPaddingTop,paddingRight:S.keyValPaddingRight,paddingBottom:S.keyValPaddingBottom,borderLeft:S.keyValBorderLeft+" "+u.objectBorder,":hover":{paddingLeft:o.paddingLeft-1+"px",borderLeft:S.keyValBorderHover+" "+u.objectBorder}},o)}},"object-key-val-no-border":{padding:S.keyValPadding},"pushed-content":{marginLeft:S.pushedContentMarginLeft},variableValue:function(n,o){return{style:d({display:"inline-block",paddingRight:S.variableValuePaddingRight,position:"relative"},o)}},"object-name":{display:"inline-block",color:u.keyColor,letterSpacing:S.keyLetterSpacing,fontStyle:S.keyFontStyle,verticalAlign:S.keyVerticalAlign,opacity:S.keyOpacity,":hover":{opacity:S.keyOpacityHover}},"array-key":{display:"inline-block",color:u.arrayKeyColor,letterSpacing:S.keyLetterSpacing,fontStyle:S.keyFontStyle,verticalAlign:S.keyVerticalAlign,opacity:S.keyOpacity,":hover":{opacity:S.keyOpacityHover}},"object-size":{color:u.objectSize,borderRadius:S.objectSizeBorderRadius,fontStyle:S.objectSizeFontStyle,margin:S.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:S.dataTypeFontSize,marginRight:S.dataTypeMarginRight,opacity:S.datatypeOpacity},boolean:{display:"inline-block",color:u.dataTypes.boolean},date:{display:"inline-block",color:u.dataTypes.date},"date-value":{marginLeft:S.dateValueMarginLeft},float:{display:"inline-block",color:u.dataTypes.float},function:{display:"inline-block",color:u.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:u.dataTypes.integer},string:{display:"inline-block",color:u.dataTypes.string},nan:{display:"inline-block",color:u.dataTypes.nan,fontSize:S.nanFontSize,fontWeight:S.nanFontWeight,backgroundColor:u.dataTypes.background,padding:S.nanPadding,borderRadius:S.nanBorderRadius},null:{display:"inline-block",color:u.dataTypes.null,fontSize:S.nullFontSize,fontWeight:S.nullFontWeight,backgroundColor:u.dataTypes.background,padding:S.nullPadding,borderRadius:S.nullBorderRadius},undefined:{display:"inline-block",color:u.dataTypes.undefined,fontSize:S.undefinedFontSize,padding:S.undefinedPadding,borderRadius:S.undefinedBorderRadius,backgroundColor:u.dataTypes.background},regexp:{display:"inline-block",color:u.dataTypes.regexp},"copy-to-clipboard":{cursor:S.clipboardCursor},"copy-icon":{color:u.copyToClipboard,fontSize:S.iconFontSize,marginRight:S.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:u.copyToClipboardCheck,marginLeft:S.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:S.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:S.metaDataPadding},"icon-container":{display:"inline-block",width:S.iconContainerWidth},tooltip:{padding:S.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:u.editVariable.removeIcon,cursor:S.iconCursor,fontSize:S.iconFontSize,marginRight:S.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:u.editVariable.addIcon,cursor:S.iconCursor,fontSize:S.iconFontSize,marginRight:S.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:u.editVariable.editIcon,cursor:S.iconCursor,fontSize:S.iconFontSize,marginRight:S.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:S.iconCursor,color:u.editVariable.checkIcon,fontSize:S.iconFontSize,paddingRight:S.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:S.iconCursor,color:u.editVariable.cancelIcon,fontSize:S.iconFontSize,paddingRight:S.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:S.editInputMinWidth,borderRadius:S.editInputBorderRadius,backgroundColor:u.editVariable.background,color:u.editVariable.color,padding:S.editInputPadding,marginRight:S.editInputMarginRight,fontFamily:S.editInputFontFamily},"detected-row":{paddingTop:S.detectedRowPaddingTop},"key-modal-request":{position:S.addKeyCoverPosition,top:S.addKeyCoverPositionPx,left:S.addKeyCoverPositionPx,right:S.addKeyCoverPositionPx,bottom:S.addKeyCoverPositionPx,backgroundColor:S.addKeyCoverBackground},"key-modal":{width:S.addKeyModalWidth,backgroundColor:u.addKeyModal.background,marginLeft:S.addKeyModalMargin,marginRight:S.addKeyModalMargin,padding:S.addKeyModalPadding,borderRadius:S.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:u.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:u.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:u.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:u.addKeyModal.labelColor,fontSize:S.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:u.editVariable.addIcon,fontSize:S.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:u.ellipsisColor,fontSize:S.ellipsisFontSize,lineHeight:S.ellipsisLineHeight,cursor:S.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:u.validationFailure.fontColor,backgroundColor:u.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:u.validationFailure.iconColor,fontSize:S.iconFontSize,transform:"rotate(45deg)"}}};function C(l,u,n){return l||console.error("theme has not been set"),function(o){var i=T;return o!==!1&&o!=="none"||(i=W),Object(te.createStyling)(J,{defaultBase16:i})(o)}(l)(u,n)}var Q=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=(o.rjvId,o.type_name),y=o.displayDataTypes,O=o.theme;return y?r.a.createElement("span",Object.assign({className:"data-type-label"},C(O,"data-type-label")),i):null}}]),n}(r.a.PureComponent),he=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props;return r.a.createElement("div",C(o.theme,"boolean"),r.a.createElement(Q,Object.assign({type_name:"bool"},o)),o.value?"true":"false")}}]),n}(r.a.PureComponent),ue=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props;return r.a.createElement("div",C(o.theme,"date"),r.a.createElement(Q,Object.assign({type_name:"date"},o)),r.a.createElement("span",Object.assign({className:"date-value"},C(o.theme,"date-value")),o.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),n}(r.a.PureComponent),U=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props;return r.a.createElement("div",C(o.theme,"float"),r.a.createElement(Q,Object.assign({type_name:"float"},o)),this.props.value)}}]),n}(r.a.PureComponent);function ce(l,u){(u==null||u>l.length)&&(u=l.length);for(var n=0,o=new Array(u);n"u"||l[Symbol.iterator]==null){if(Array.isArray(l)||(n=Z(l))||u){n&&(l=n);var o=0,i=function(){};return{s:i,n:function(){return o>=l.length?{done:!0}:{done:!1,value:l[o++]}},e:function(m){throw m},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var y,O=!0,_=!1;return{s:function(){n=l[Symbol.iterator]()},n:function(){var m=n.next();return O=m.done,m},e:function(m){_=!0,y=m},f:function(){try{O||n.return==null||n.return()}finally{if(_)throw y}}}}function ge(l){return function(u){if(Array.isArray(u))return ce(u)}(l)||function(u){if(typeof Symbol<"u"&&Symbol.iterator in Object(u))return Array.from(u)}(l)||Z(l)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}var Me=e(46),Ee=new(e(47)).Dispatcher,Ce=new(function(l){b(n,l);var u=L(n);function n(){var o;p(this,n);for(var i=arguments.length,y=new Array(i),O=0;Oi&&(_.style.cursor="pointer",this.state.collapsed&&(O=r.a.createElement("span",null,O.substring(0,i),r.a.createElement("span",C(y,"ellipsis")," ...")))),r.a.createElement("div",C(y,"string"),r.a.createElement(Q,Object.assign({type_name:"string"},o)),r.a.createElement("span",Object.assign({className:"string-value"},_,{onClick:this.toggleCollapsed}),'"',O,'"'))}}]),n}(r.a.PureComponent),tt=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){return r.a.createElement("div",C(this.props.theme,"undefined"),"undefined")}}]),n}(r.a.PureComponent);function He(){return(He=Object.assign||function(l){for(var u=1;u=0||(vt[Le]=Y[Le]);return vt}(l,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),$,se=P.value!==void 0,ie=Object(ee.useRef)(null),de=ot(ie,u),re=Object(ee.useRef)(0),fe=Object(ee.useRef)(),Se=function(){var Y=ie.current,we=n&&fe.current?fe.current:function(Qe){var gt=window.getComputedStyle(Qe);if(gt===null)return null;var lt,Ne=(lt=gt,F.reduce(function(bt,ut){return bt[ut]=lt[ut],bt},{})),ct=Ne.boxSizing;return ct===""?null:(x&&ct==="border-box"&&(Ne.width=parseFloat(Ne.width)+parseFloat(Ne.borderRightWidth)+parseFloat(Ne.borderLeftWidth)+parseFloat(Ne.paddingRight)+parseFloat(Ne.paddingLeft)+"px"),{sizingStyle:Ne,paddingSize:parseFloat(Ne.paddingBottom)+parseFloat(Ne.paddingTop),borderSize:parseFloat(Ne.borderBottomWidth)+parseFloat(Ne.borderTopWidth)})}(Y);if(we){fe.current=we;var Le=function(Qe,gt,lt,Ne){lt===void 0&&(lt=1),Ne===void 0&&(Ne=1/0),Ie||((Ie=document.createElement("textarea")).setAttribute("tab-index","-1"),Ie.setAttribute("aria-hidden","true"),Ve(Ie)),Ie.parentNode===null&&document.body.appendChild(Ie);var ct=Qe.paddingSize,bt=Qe.borderSize,ut=Qe.sizingStyle,Ot=ut.boxSizing;Object.keys(ut).forEach(function(Et){var pt=Et;Ie.style[pt]=ut[pt]}),Ve(Ie),Ie.value=gt;var yt=function(Et,pt){var Ct=Et.scrollHeight;return pt.sizingStyle.boxSizing==="border-box"?Ct+pt.borderSize:Ct-pt.paddingSize}(Ie,Qe);Ie.value="x";var xt=Ie.scrollHeight-ct,jt=xt*lt;Ot==="border-box"&&(jt=jt+ct+bt),yt=Math.max(jt,yt);var St=xt*Ne;return Ot==="border-box"&&(St=St+ct+bt),[yt=Math.min(St,yt),xt]}(we,Y.value||Y.placeholder||"x",i,o),Ye=Le[0],vt=Le[1];re.current!==Ye&&(re.current=Ye,Y.style.setProperty("height",Ye+"px","important"),m(Ye,{rowHeight:vt}))}};return Object(ee.useLayoutEffect)(Se),$=st(Se),Object(ee.useLayoutEffect)(function(){var Y=function(we){$.current(we)};return window.addEventListener("resize",Y),function(){window.removeEventListener("resize",Y)}},[]),Object(ee.createElement)("textarea",He({},P,{onChange:function(Y){se||Se(),O(Y)},ref:de}))},N=Object(ee.forwardRef)(j);function R(l){l=l.trim();try{if((l=JSON.stringify(JSON.parse(l)))[0]==="[")return K("array",JSON.parse(l));if(l[0]==="{")return K("object",JSON.parse(l));if(l.match(/\-?\d+\.\d+/)&&l.match(/\-?\d+\.\d+/)[0]===l)return K("float",parseFloat(l));if(l.match(/\-?\d+e-\d+/)&&l.match(/\-?\d+e-\d+/)[0]===l)return K("float",Number(l));if(l.match(/\-?\d+/)&&l.match(/\-?\d+/)[0]===l)return K("integer",parseInt(l));if(l.match(/\-?\d+e\+\d+/)&&l.match(/\-?\d+e\+\d+/)[0]===l)return K("integer",Number(l))}catch{}switch(l=l.toLowerCase()){case"undefined":return K("undefined",void 0);case"nan":return K("nan",NaN);case"null":return K("null",null);case"true":return K("boolean",!0);case"false":return K("boolean",!1);default:if(l=Date.parse(l))return K("date",new Date(l))}return K(!1,null)}function K(l,u){return{type:l,value:u}}var ne=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),n}(r.a.PureComponent),ae=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),n}(r.a.PureComponent),pe=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]),O=oe(i).style;return r.a.createElement("span",y,r.a.createElement("svg",{fill:O.color,width:O.height,height:O.width,style:O,viewBox:"0 0 1792 1792"},r.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),n}(r.a.PureComponent),xe=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]),O=oe(i).style;return r.a.createElement("span",y,r.a.createElement("svg",{fill:O.color,width:O.height,height:O.width,style:O,viewBox:"0 0 1792 1792"},r.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),n}(r.a.PureComponent),je=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",{style:d(d({},oe(i).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},r.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),n}(r.a.PureComponent),Ae=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",{style:d(d({},oe(i).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},r.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),n}(r.a.PureComponent),ve=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("g",null,r.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),n}(r.a.PureComponent),Te=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("g",null,r.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),n}(r.a.PureComponent),De=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("g",null,r.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),n}(r.a.PureComponent),$e=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("g",null,r.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),n}(r.a.PureComponent),ze=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("g",null,r.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),n}(r.a.PureComponent),ke=function(l){b(n,l);var u=L(n);function n(){return p(this,n),u.apply(this,arguments)}return h(n,[{key:"render",value:function(){var o=this.props,i=o.style,y=k(o,["style"]);return r.a.createElement("span",y,r.a.createElement("svg",Object.assign({},oe(i),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),r.a.createElement("g",null,r.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),n}(r.a.PureComponent);function oe(l){return l||(l={}),{style:d(d({verticalAlign:"middle"},l),{},{color:l.color?l.color:"#000000",height:"1em",width:"1em"})}}var Fe=function(l){b(n,l);var u=L(n);function n(o){var i;return p(this,n),(i=u.call(this,o)).copiedTimer=null,i.handleCopy=function(){var y=document.createElement("textarea"),O=i.props,_=O.clickCallback,m=O.src,P=O.namespace;y.innerHTML=JSON.stringify(i.clipboardValue(m),null," "),document.body.appendChild(y),y.select(),document.execCommand("copy"),document.body.removeChild(y),i.copiedTimer=setTimeout(function(){i.setState({copied:!1})},5500),i.setState({copied:!0},function(){typeof _=="function"&&_({src:m,namespace:P,name:P[P.length-1]})})},i.getClippyIcon=function(){var y=i.props.theme;return i.state.copied?r.a.createElement("span",null,r.a.createElement(ve,Object.assign({className:"copy-icon"},C(y,"copy-icon"))),r.a.createElement("span",C(y,"copy-icon-copied"),"✔")):r.a.createElement(ve,Object.assign({className:"copy-icon"},C(y,"copy-icon")))},i.clipboardValue=function(y){switch(A(y)){case"function":case"regexp":return y.toString();default:return y}},i.state={copied:!1},i}return h(n,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var o=this.props,i=(o.src,o.theme),y=o.hidden,O=o.rowHovered,_=C(i,"copy-to-clipboard").style,m="inline";return y&&(m="none"),r.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:O?"inline-block":"none"}},r.a.createElement("span",{style:d(d({},_),{},{display:m}),onClick:this.handleCopy},this.getClippyIcon()))}}]),n}(r.a.PureComponent),Pe=function(l){b(n,l);var u=L(n);function n(o){var i;return p(this,n),(i=u.call(this,o)).getEditIcon=function(){var y=i.props,O=y.variable,_=y.theme;return r.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:i.state.hovered?"inline-block":"none"}},r.a.createElement(ze,Object.assign({className:"click-to-edit-icon"},C(_,"editVarIcon"),{onClick:function(){i.prepopInput(O)}})))},i.prepopInput=function(y){if(i.props.onEdit!==!1){var O=function(m){var P;switch(A(m)){case"undefined":P="undefined";break;case"nan":P="NaN";break;case"string":P=m;break;case"date":case"function":case"regexp":P=m.toString();break;default:try{P=JSON.stringify(m,null," ")}catch{P=""}}return P}(y.value),_=R(O);i.setState({editMode:!0,editValue:O,parsedInput:{type:_.type,value:_.value}})}},i.getRemoveIcon=function(){var y=i.props,O=y.variable,_=y.namespace,m=y.theme,P=y.rjvId;return r.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:i.state.hovered?"inline-block":"none"}},r.a.createElement(Te,Object.assign({className:"click-to-remove-icon"},C(m,"removeVarIcon"),{onClick:function(){Ee.dispatch({name:"VARIABLE_REMOVED",rjvId:P,data:{name:O.name,namespace:_,existing_value:O.value,variable_removed:!0}})}})))},i.getValue=function(y,O){var _=!O&&y.type,m=D(i).props;switch(_){case!1:return i.getEditInput();case"string":return r.a.createElement(et,Object.assign({value:y.value},m));case"integer":return r.a.createElement(Ze,Object.assign({value:y.value},m));case"float":return r.a.createElement(U,Object.assign({value:y.value},m));case"boolean":return r.a.createElement(he,Object.assign({value:y.value},m));case"function":return r.a.createElement(ye,Object.assign({value:y.value},m));case"null":return r.a.createElement(Ue,m);case"nan":return r.a.createElement(Be,m);case"undefined":return r.a.createElement(tt,m);case"date":return r.a.createElement(ue,Object.assign({value:y.value},m));case"regexp":return r.a.createElement(Xe,Object.assign({value:y.value},m));default:return r.a.createElement("div",{className:"object-value"},JSON.stringify(y.value))}},i.getEditInput=function(){var y=i.props.theme,O=i.state.editValue;return r.a.createElement("div",null,r.a.createElement(N,Object.assign({type:"text",inputRef:function(_){return _&&_.focus()},value:O,className:"variable-editor",onChange:function(_){var m=_.target.value,P=R(m);i.setState({editValue:m,parsedInput:{type:P.type,value:P.value}})},onKeyDown:function(_){switch(_.key){case"Escape":i.setState({editMode:!1,editValue:""});break;case"Enter":(_.ctrlKey||_.metaKey)&&i.submitEdit(!0)}_.stopPropagation()},placeholder:"update this value",minRows:2},C(y,"edit-input"))),r.a.createElement("div",C(y,"edit-icon-container"),r.a.createElement(Te,Object.assign({className:"edit-cancel"},C(y,"cancel-icon"),{onClick:function(){i.setState({editMode:!1,editValue:""})}})),r.a.createElement(ke,Object.assign({className:"edit-check string-value"},C(y,"check-icon"),{onClick:function(){i.submitEdit()}})),r.a.createElement("div",null,i.showDetected())))},i.submitEdit=function(y){var O=i.props,_=O.variable,m=O.namespace,P=O.rjvId,$=i.state,se=$.editValue,ie=$.parsedInput,de=se;y&&ie.type&&(de=ie.value),i.setState({editMode:!1}),Ee.dispatch({name:"VARIABLE_UPDATED",rjvId:P,data:{name:_.name,namespace:m,existing_value:_.value,new_value:de,variable_removed:!1}})},i.showDetected=function(){var y=i.props,O=y.theme,_=(y.variable,y.namespace,y.rjvId,i.state.parsedInput),m=(_.type,_.value,i.getDetectedInput());if(m)return r.a.createElement("div",null,r.a.createElement("div",C(O,"detected-row"),m,r.a.createElement(ke,{className:"edit-check detected",style:d({verticalAlign:"top",paddingLeft:"3px"},C(O,"check-icon").style),onClick:function(){i.submitEdit(!0)}})))},i.getDetectedInput=function(){var y=i.state.parsedInput,O=y.type,_=y.value,m=D(i).props,P=m.theme;if(O!==!1)switch(O.toLowerCase()){case"object":return r.a.createElement("span",null,r.a.createElement("span",{style:d(d({},C(P,"brace").style),{},{cursor:"default"})},"{"),r.a.createElement("span",{style:d(d({},C(P,"ellipsis").style),{},{cursor:"default"})},"..."),r.a.createElement("span",{style:d(d({},C(P,"brace").style),{},{cursor:"default"})},"}"));case"array":return r.a.createElement("span",null,r.a.createElement("span",{style:d(d({},C(P,"brace").style),{},{cursor:"default"})},"["),r.a.createElement("span",{style:d(d({},C(P,"ellipsis").style),{},{cursor:"default"})},"..."),r.a.createElement("span",{style:d(d({},C(P,"brace").style),{},{cursor:"default"})},"]"));case"string":return r.a.createElement(et,Object.assign({value:_},m));case"integer":return r.a.createElement(Ze,Object.assign({value:_},m));case"float":return r.a.createElement(U,Object.assign({value:_},m));case"boolean":return r.a.createElement(he,Object.assign({value:_},m));case"function":return r.a.createElement(ye,Object.assign({value:_},m));case"null":return r.a.createElement(Ue,m);case"nan":return r.a.createElement(Be,m);case"undefined":return r.a.createElement(tt,m);case"date":return r.a.createElement(ue,Object.assign({value:new Date(_)},m))}},i.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},i}return h(n,[{key:"render",value:function(){var o=this,i=this.props,y=i.variable,O=i.singleIndent,_=i.type,m=i.theme,P=i.namespace,$=i.indentWidth,se=i.enableClipboard,ie=i.onEdit,de=i.onDelete,re=i.onSelect,fe=i.displayArrayKey,Se=i.quotesOnKeys,Y=this.state.editMode;return r.a.createElement("div",Object.assign({},C(m,"objectKeyVal",{paddingLeft:$*O}),{onMouseEnter:function(){return o.setState(d(d({},o.state),{},{hovered:!0}))},onMouseLeave:function(){return o.setState(d(d({},o.state),{},{hovered:!1}))},className:"variable-row",key:y.name}),_=="array"?fe?r.a.createElement("span",Object.assign({},C(m,"array-key"),{key:y.name+"_"+P}),y.name,r.a.createElement("div",C(m,"colon"),":")):null:r.a.createElement("span",null,r.a.createElement("span",Object.assign({},C(m,"object-name"),{className:"object-key",key:y.name+"_"+P}),!!Se&&r.a.createElement("span",{style:{verticalAlign:"top"}},'"'),r.a.createElement("span",{style:{display:"inline-block"}},y.name),!!Se&&r.a.createElement("span",{style:{verticalAlign:"top"}},'"')),r.a.createElement("span",C(m,"colon"),":")),r.a.createElement("div",Object.assign({className:"variable-value",onClick:re===!1&&ie===!1?null:function(we){var Le=ge(P);(we.ctrlKey||we.metaKey)&&ie!==!1?o.prepopInput(y):re!==!1&&(Le.shift(),re(d(d({},y),{},{namespace:Le})))}},C(m,"variableValue",{cursor:re===!1?"default":"pointer"})),this.getValue(y,Y)),se?r.a.createElement(Fe,{rowHovered:this.state.hovered,hidden:Y,src:y.value,clickCallback:se,theme:m,namespace:[].concat(ge(P),[y.name])}):null,ie!==!1&&Y==0?this.getEditIcon():null,de!==!1&&Y==0?this.getRemoveIcon():null)}}]),n}(r.a.PureComponent),Je=function(l){b(n,l);var u=L(n);function n(){var o;p(this,n);for(var i=arguments.length,y=new Array(i),O=0;O0?se:null,namespace:$.splice(0,$.length-1),existing_value:ie,variable_removed:!1,key_name:null};A(ie)==="object"?Ee.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:de,data:fe}):Ee.dispatch({name:"VARIABLE_ADDED",rjvId:de,data:d(d({},fe),{},{new_value:[].concat(ge(ie),[null])})})}})))},o.getRemoveObject=function(_){var m=o.props,P=m.theme,$=(m.hover,m.namespace),se=m.name,ie=m.src,de=m.rjvId;if($.length!==1)return r.a.createElement("span",{className:"click-to-remove",style:{display:_?"inline-block":"none"}},r.a.createElement(Te,Object.assign({className:"click-to-remove-icon"},C(P,"removeVarIcon"),{onClick:function(){Ee.dispatch({name:"VARIABLE_REMOVED",rjvId:de,data:{name:se,namespace:$.splice(0,$.length-1),existing_value:ie,variable_removed:!0}})}})))},o.render=function(){var _=o.props,m=_.theme,P=_.onDelete,$=_.onAdd,se=_.enableClipboard,ie=_.src,de=_.namespace,re=_.rowHovered;return r.a.createElement("div",Object.assign({},C(m,"object-meta-data"),{className:"object-meta-data",onClick:function(fe){fe.stopPropagation()}}),o.getObjectSize(),se?r.a.createElement(Fe,{rowHovered:re,clickCallback:se,src:ie,theme:m,namespace:de}):null,$!==!1?o.getAddAttribute(re):null,P!==!1?o.getRemoveObject(re):null)},o}return n}(r.a.PureComponent);function qe(l){var u=l.parent_type,n=l.namespace,o=l.quotesOnKeys,i=l.theme,y=l.jsvRoot,O=l.name,_=l.displayArrayKey,m=l.name?l.name:"";return!y||O!==!1&&O!==null?u=="array"?_?r.a.createElement("span",Object.assign({},C(i,"array-key"),{key:n}),r.a.createElement("span",{className:"array-key"},m),r.a.createElement("span",C(i,"colon"),":")):r.a.createElement("span",null):r.a.createElement("span",Object.assign({},C(i,"object-name"),{key:n}),r.a.createElement("span",{className:"object-key"},o&&r.a.createElement("span",{style:{verticalAlign:"top"}},'"'),r.a.createElement("span",null,m),o&&r.a.createElement("span",{style:{verticalAlign:"top"}},'"')),r.a.createElement("span",C(i,"colon"),":")):r.a.createElement("span",null)}function Re(l){var u=l.theme;switch(l.iconStyle){case"triangle":return r.a.createElement(Ae,Object.assign({},C(u,"expanded-icon"),{className:"expanded-icon"}));case"square":return r.a.createElement(pe,Object.assign({},C(u,"expanded-icon"),{className:"expanded-icon"}));default:return r.a.createElement(ne,Object.assign({},C(u,"expanded-icon"),{className:"expanded-icon"}))}}function We(l){var u=l.theme;switch(l.iconStyle){case"triangle":return r.a.createElement(je,Object.assign({},C(u,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return r.a.createElement(xe,Object.assign({},C(u,"collapsed-icon"),{className:"collapsed-icon"}));default:return r.a.createElement(ae,Object.assign({},C(u,"collapsed-icon"),{className:"collapsed-icon"}))}}var it=function(l){b(n,l);var u=L(n);function n(o){var i;return p(this,n),(i=u.call(this,o)).toggleCollapsed=function(y){var O=[];for(var _ in i.state.expanded)O.push(i.state.expanded[_]);O[y]=!O[y],i.setState({expanded:O})},i.state={expanded:[]},i}return h(n,[{key:"getExpandedIcon",value:function(o){var i=this.props,y=i.theme,O=i.iconStyle;return this.state.expanded[o]?r.a.createElement(Re,{theme:y,iconStyle:O}):r.a.createElement(We,{theme:y,iconStyle:O})}},{key:"render",value:function(){var o=this,i=this.props,y=i.src,O=i.groupArraysAfterLength,_=(i.depth,i.name),m=i.theme,P=i.jsvRoot,$=i.namespace,se=(i.parent_type,k(i,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),ie=0,de=5*this.props.indentWidth;P||(ie=5*this.props.indentWidth);var re=O,fe=Math.ceil(y.length/re);return r.a.createElement("div",Object.assign({className:"object-key-val"},C(m,P?"jsv-root":"objectKeyVal",{paddingLeft:ie})),r.a.createElement(qe,this.props),r.a.createElement("span",null,r.a.createElement(Je,Object.assign({size:y.length},this.props))),ge(Array(fe)).map(function(Se,Y){return r.a.createElement("div",Object.assign({key:Y,className:"object-key-val array-group"},C(m,"objectKeyVal",{marginLeft:6,paddingLeft:de})),r.a.createElement("span",C(m,"brace-row"),r.a.createElement("div",Object.assign({className:"icon-container"},C(m,"icon-container"),{onClick:function(we){o.toggleCollapsed(Y)}}),o.getExpandedIcon(Y)),o.state.expanded[Y]?r.a.createElement(ht,Object.assign({key:_+Y,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:re,index_offset:Y*re,src:y.slice(Y*re,Y*re+re),namespace:$,type:"array",parent_type:"array_group",theme:m},se)):r.a.createElement("span",Object.assign({},C(m,"brace"),{onClick:function(we){o.toggleCollapsed(Y)},className:"array-group-brace"}),"[",r.a.createElement("div",Object.assign({},C(m,"array-group-meta-data"),{className:"array-group-meta-data"}),r.a.createElement("span",Object.assign({className:"object-size"},C(m,"object-size")),Y*re," - ",Y*re+re>y.length?y.length:Y*re+re)),"]")))}))}}]),n}(r.a.PureComponent),ft=function(l){b(n,l);var u=L(n);function n(o){var i;p(this,n),(i=u.call(this,o)).toggleCollapsed=function(){i.setState({expanded:!i.state.expanded},function(){be.set(i.props.rjvId,i.props.namespace,"expanded",i.state.expanded)})},i.getObjectContent=function(O,_,m){return r.a.createElement("div",{className:"pushed-content object-container"},r.a.createElement("div",Object.assign({className:"object-content"},C(i.props.theme,"pushed-content")),i.renderObjectContents(_,m)))},i.getEllipsis=function(){return i.state.size===0?null:r.a.createElement("div",Object.assign({},C(i.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:i.toggleCollapsed}),"...")},i.getObjectMetaData=function(O){var _=i.props,m=(_.rjvId,_.theme,i.state),P=m.size,$=m.hovered;return r.a.createElement(Je,Object.assign({rowHovered:$,size:P},i.props))},i.renderObjectContents=function(O,_){var m,P=i.props,$=P.depth,se=P.parent_type,ie=P.index_offset,de=P.groupArraysAfterLength,re=P.namespace,fe=i.state.object_type,Se=[],Y=Object.keys(O||{});return i.props.sortKeys&&fe!=="array"&&(Y=Y.sort()),Y.forEach(function(we){if(m=new Mt(we,O[we]),se==="array_group"&&ie&&(m.name=parseInt(m.name)+ie),O.hasOwnProperty(we))if(m.type==="object")Se.push(r.a.createElement(ht,Object.assign({key:m.name,depth:$+1,name:m.name,src:m.value,namespace:re.concat(m.name),parent_type:fe},_)));else if(m.type==="array"){var Le=ht;de&&m.value.length>de&&(Le=it),Se.push(r.a.createElement(Le,Object.assign({key:m.name,depth:$+1,name:m.name,src:m.value,namespace:re.concat(m.name),type:"array",parent_type:fe},_)))}else Se.push(r.a.createElement(Pe,Object.assign({key:m.name+"_"+re,variable:m,singleIndent:5,namespace:re,type:i.props.type},_)))}),Se};var y=n.getState(o);return i.state=d(d({},y),{},{prevProps:{}}),i}return h(n,[{key:"getBraceStart",value:function(o,i){var y=this,O=this.props,_=O.src,m=O.theme,P=O.iconStyle;if(O.parent_type==="array_group")return r.a.createElement("span",null,r.a.createElement("span",C(m,"brace"),o==="array"?"[":"{"),i?this.getObjectMetaData(_):null);var $=i?Re:We;return r.a.createElement("span",null,r.a.createElement("span",Object.assign({onClick:function(se){y.toggleCollapsed()}},C(m,"brace-row")),r.a.createElement("div",Object.assign({className:"icon-container"},C(m,"icon-container")),r.a.createElement($,{theme:m,iconStyle:P})),r.a.createElement(qe,this.props),r.a.createElement("span",C(m,"brace"),o==="array"?"[":"{")),i?this.getObjectMetaData(_):null)}},{key:"render",value:function(){var o=this,i=this.props,y=i.depth,O=i.src,_=(i.namespace,i.name,i.type,i.parent_type),m=i.theme,P=i.jsvRoot,$=i.iconStyle,se=k(i,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),ie=this.state,de=ie.object_type,re=ie.expanded,fe={};return P||_==="array_group"?_==="array_group"&&(fe.borderLeft=0,fe.display="inline"):fe.paddingLeft=5*this.props.indentWidth,r.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return o.setState(d(d({},o.state),{},{hovered:!0}))},onMouseLeave:function(){return o.setState(d(d({},o.state),{},{hovered:!1}))}},C(m,P?"jsv-root":"objectKeyVal",fe)),this.getBraceStart(de,re),re?this.getObjectContent(y,O,d({theme:m,iconStyle:$},se)):this.getEllipsis(),r.a.createElement("span",{className:"brace-row"},r.a.createElement("span",{style:d(d({},C(m,"brace").style),{},{paddingLeft:re?"3px":"0px"})},de==="array"?"]":"}"),re?null:this.getObjectMetaData(O)))}}],[{key:"getDerivedStateFromProps",value:function(o,i){var y=i.prevProps;return o.src!==y.src||o.collapsed!==y.collapsed||o.name!==y.name||o.namespace!==y.namespace||o.rjvId!==y.rjvId?d(d({},n.getState(o)),{},{prevProps:o}):null}}]),n}(r.a.PureComponent);ft.getState=function(l){var u=Object.keys(l.src).length,n=(l.collapsed===!1||l.collapsed!==!0&&l.collapsed>l.depth)&&(!l.shouldCollapse||l.shouldCollapse({name:l.name,src:l.src,type:A(l.src),namespace:l.namespace})===!1)&&u!==0;return{expanded:be.get(l.rjvId,l.namespace,"expanded",n),object_type:l.type==="array"?"array":"object",parent_type:l.type==="array"?"array":"object",size:u,hovered:!1}};var Mt=function l(u,n){p(this,l),this.name=u,this.value=n,this.type=A(n)};q(ft);var ht=ft,Pt=function(l){b(n,l);var u=L(n);function n(){var o;p(this,n);for(var i=arguments.length,y=new Array(i),O=0;O_.groupArraysAfterLength&&(P=it),r.a.createElement("div",{className:"pretty-json-container object-container"},r.a.createElement("div",{className:"object-content"},r.a.createElement(P,Object.assign({namespace:m,depth:0,jsvRoot:!0},_))))},o}return n}(r.a.PureComponent),Tt=function(l){b(n,l);var u=L(n);function n(o){var i;return p(this,n),(i=u.call(this,o)).closeModal=function(){Ee.dispatch({rjvId:i.props.rjvId,name:"RESET"})},i.submit=function(){i.props.submit(i.state.input)},i.state={input:o.input?o.input:""},i}return h(n,[{key:"render",value:function(){var o=this,i=this.props,y=i.theme,O=i.rjvId,_=i.isValid,m=this.state.input,P=_(m);return r.a.createElement("div",Object.assign({className:"key-modal-request"},C(y,"key-modal-request"),{onClick:this.closeModal}),r.a.createElement("div",Object.assign({},C(y,"key-modal"),{onClick:function($){$.stopPropagation()}}),r.a.createElement("div",C(y,"key-modal-label"),"Key Name:"),r.a.createElement("div",{style:{position:"relative"}},r.a.createElement("input",Object.assign({},C(y,"key-modal-input"),{className:"key-modal-input",ref:function($){return $&&$.focus()},spellCheck:!1,value:m,placeholder:"...",onChange:function($){o.setState({input:$.target.value})},onKeyPress:function($){P&&$.key==="Enter"?o.submit():$.key==="Escape"&&o.closeModal()}})),P?r.a.createElement(ke,Object.assign({},C(y,"key-modal-submit"),{className:"key-modal-submit",onClick:function($){return o.submit()}})):null),r.a.createElement("span",C(y,"key-modal-cancel"),r.a.createElement($e,Object.assign({},C(y,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){Ee.dispatch({rjvId:O,name:"RESET"})}})))))}}]),n}(r.a.PureComponent),Bt=function(l){b(n,l);var u=L(n);function n(){var o;p(this,n);for(var i=arguments.length,y=new Array(i),O=0;O({color:X.palette.mode==="dark"?"#CCC":"#333"}),frameTextSecondary:{fontStyle:"italic",fontSize:12,opacity:.6,pl:1},listRoot:{padding:0,fontSize:"small"},scopeType:{verticalAlign:"top",textTransform:"uppercase",width:50},scopeType_local:{color:"#53a944"},scopeType_closure:{color:"#365b80"},scopeType_user:{color:"#a48a15"},scopeName:{color:"#bc5b5b",width:"calc(100% - 82px)",whiteSpace:"nowrap",textOverflow:"ellipsis"},scopeButton:{width:32},scopeValueEditable:{cursor:"pointer"},selectedFrame:{backgroundColor:"#777",color:"white"},splitter:{width:"100%",height:"calc(100% - 36px)",overflow:"hidden",fontSize:12},toolbarScopes:X=>({width:24,display:"inline-block",height:"100%",background:X.palette.mode==="dark"?"#222":"#EEE",verticalAlign:"top"}),scopesAfterToolbar:{width:"calc(100% - 24px)",display:"inline-block",height:"100%",verticalAlign:"top"},scopeNameName:{fontWeight:"bold",display:"inline-block",verticalAlign:"top"},scopeNameEqual:X=>({display:"inline-block",color:X.palette.mode==="dark"?"#EEE":"#222",verticalAlign:"top"}),scopeNameValue:{verticalAlign:"top",display:"inline-block",color:"#3b709f",whiteSpace:"nowrap"},scopeButtonDel:{padding:0,float:"right"},valueNull:{color:"#a44a24"},valueUndefined:{color:"#a44a24"},valueString:{color:"#1e8816"},valueNumber:{color:"#163c88"},valueBoolean:{color:"#a44a24"},valueObject:{color:"#721b70"},valueNone:{color:"#8a8a8a"},valueFunc:{color:"#ac4343"},error:X=>({color:X.palette.mode==="dark"?"#FF8080":"#FF0000",fontStyle:"italic"})};function ia(X){var g,a;const v={};return X.className==="ReferenceError"?X.description:((a=(g=X.preview)==null?void 0:g.properties)==null||a.forEach(t=>{(t==null?void 0:t.type)==="object"?t.subtype==="null"?v[t.name]=null:v[t.name]=`{ ${t.value==="Object"?"...":t.value} }`:t.type==="boolean"?v[t.name||t.description]=t.value==="true":t.type==="number"?v[t.name||t.description]=parseFloat(t.value):t.type==="function"?v[t.name||t.description]="function(){}":t.type==="undefined"?v[t.name||t.description]=void 0:v[t.name||t.description]=t.value}),v)}class la extends dt.Component{editRef;scopeValue=null;constructor(v){super(v);const g=window.localStorage.getItem("JS.framesSizes");let a=[30,70];if(g)try{a=JSON.parse(g)}catch{}this.state={editValue:null,callFrames:this.props.callFrames,framesSizes:a},this.editRef=dt.createRef()}onExpressionNameUpdate(){this.state.editValue&&this.props.onExpressionNameUpdate(this.state.editValue.index,this.scopeValue,()=>{this.setState({editValue:null}),this.scopeValue=null})}renderExpression(v,g){const a=this.state.editValue&&this.state.editValue.type==="expression"&&this.state.editValue.index===g?M.jsx(G.Input,{inputRef:this.editRef,fullWidth:!0,margin:"dense",onBlur:()=>this.state.editValue&&this.setState({editValue:null}),defaultValue:v.name,onKeyUp:t=>{t.key==="Enter"?this.onExpressionNameUpdate():t.key==="Escape"&&this.setState({editValue:null})},onChange:t=>this.scopeValue=t.target.value,endAdornment:M.jsx(G.InputAdornment,{position:"end",children:M.jsx(G.IconButton,{onClick:()=>this.onExpressionNameUpdate(),size:"medium",children:M.jsx(It,{})})})}):[M.jsx("div",{style:le.scopeNameName,title:Oe.I18n.t("Double click to edit expression"),children:v.name},"name"),M.jsxs(G.Box,{sx:le.scopeNameEqual,children:[" ","="," "]},"="),M.jsx("div",{style:le.scopeNameValue,children:this.formatValue(v.value)},"val")];return M.jsxs("tr",{children:[M.jsx("td",{style:{...le.scopeType,...le.scopeType_user},children:"user"}),M.jsx("td",{style:le.scopeName,onDoubleClick:()=>{this.scopeValue=v.name||"",this.setState({editValue:{type:"expression",valueType:"string",index:g,name:v.name,value:v.name||""}})},children:a}),M.jsx(G.IconButton,{style:le.scopeButtonDel,size:"small",disabled:!!this.state.editValue,onClick:()=>this.props.onExpressionDelete(g),children:M.jsx(Wt,{})})]},`user_${g}${v.name}`)}renderExpressions(){return this.props.expressions.map((v,g)=>this.renderExpression(v,g))}renderOneFrameTitle(v,g){if(this.props.mainScriptId===this.props.currentScriptId&&v.location.scriptId!==this.props.mainScriptId)return null;const a=(v.url.split("/").pop()||"").replace(/^script\.js\./,"");return M.jsx(G.ListItemButton,{onClick:()=>this.props.onChangeCurrentFrame(g),dense:!0,selected:this.props.currentFrame===g,style:le.frameRoot,children:M.jsx(G.ListItemText,{sx:{...le.frameTextRoot,"& .MuiListItemText-primary":le.frameTextPrimary,"& .MuiListItemText-secondary":le.frameTextSecondary},title:v.url,primary:v.functionName||"anonymous",secondary:`${a} (${v.location.lineNumber}:${v.location.columnNumber})`})},v.callFrameId)}formatValue(v,g){if(!v)return g?"none":M.jsx("span",{style:le.valueNone,children:"none"});if(v.type==="undefined")return g?"undefined":M.jsx("span",{style:le.valueUndefined,children:"undefined"});if(v.type==="null")return g?"null":M.jsx("span",{style:le.valueNull,children:"null"});if(v.type==="function"){const a=v.description?v.description.length>100?`${v.description.substring(0,100)}...`:v.description:"function";return g?a:M.jsx("span",{style:le.valueFunc,title:v.description,children:a})}if(v.type==="object"){const a=ia(v);return g?JSON.stringify(a):typeof a=="string"?M.jsx(G.Box,{component:"span",sx:le.error,children:a}):M.jsx(oa,{name:!1,enableClipboard:!1,style:{backgroundColor:"inherit",marginTop:3},src:a,collapsed:!0,theme:this.props.themeType==="dark"?"brewer":"rjv-default",displayDataTypes:!1})}if(v.value===void 0)return g?"undefined":M.jsx("span",{style:le.valueUndefined,children:"undefined"});if(v.value===null)return g?"null":M.jsx("span",{style:le.valueNull,children:"null"});if(v.type==="string"){if(g)return v.value;const a=`"${v.value?v.value.length>100?`${v.value.substring(0,100)}...`:v.value:""}"`;return M.jsx("span",{style:le.valueString,title:a,children:a})}return v.type==="boolean"?g?v.value.toString():M.jsx("span",{style:le.valueBoolean,children:v.value.toString()}):v.value.toString()}onWriteScopeValue(){var v,g;this.scopeValue==="true"?this.scopeValue=!0:this.scopeValue==="false"?this.scopeValue=!1:this.scopeValue==="null"?this.scopeValue=null:this.scopeValue==="undefined"?this.scopeValue=void 0:parseFloat(this.scopeValue).toString()===this.scopeValue&&(this.scopeValue=parseFloat(this.scopeValue)),this.props.onWriteScopeValue({variableName:((v=this.state.editValue)==null?void 0:v.name)||"",scopeNumber:0,newValue:{value:this.scopeValue,valueType:typeof this.scopeValue},callFrameId:(g=this.props.callFrames)==null?void 0:g[this.props.currentFrame].callFrameId}),this.setState({editValue:null}),this.scopeValue=null}componentDidUpdate(){var v;(v=this.editRef.current)==null||v.focus()}renderScope(v,g,a){var s,c,d,p;const t=!this.props.currentFrame&&g.value&&(g.value.type==="undefined"||g.value.type==="string"||g.value.type==="number"||g.value.type==="boolean"||((s=g.value)==null?void 0:s.value)===null||((c=g.value)==null?void 0:c.value)===void 0&&g.value.type!=="object"),e=((d=this.state.editValue)==null?void 0:d.type)===a&&((p=this.state.editValue)==null?void 0:p.name)===g.name?[M.jsx("div",{style:le.scopeNameName,children:g.name},"name"),M.jsxs(G.Box,{sx:le.scopeNameEqual,children:[" ","="," "]},"="),M.jsx(G.Input,{inputRef:this.editRef,margin:"dense",onBlur:()=>this.state.editValue&&this.setState({editValue:null}),defaultValue:this.formatValue(g.value,!0),onKeyUp:f=>{f.key==="Enter"?this.onWriteScopeValue():f.key==="Escape"&&this.setState({editValue:null})},onChange:f=>this.scopeValue=f.target.value,endAdornment:M.jsx(G.InputAdornment,{position:"end",children:M.jsx(G.IconButton,{onClick:()=>this.onWriteScopeValue(),size:"medium",children:M.jsx(It,{})})})},"input")]:[M.jsx("div",{style:le.scopeNameName,title:Oe.I18n.t("Double click to write value"),children:g.name},"name"),M.jsxs(G.Box,{sx:le.scopeNameEqual,children:[" ","="," "]},"="),M.jsxs("div",{style:le.scopeNameValue,children:[this.formatValue(g.value)," (",g.value.type,")"]},"val")];return M.jsxs("tr",{children:[M.jsx("td",{style:{...le.scopeType,...le[`scopeType_${a}`]},children:a}),M.jsx("td",{style:{...le.scopeName,...!this.props.currentFrame&&t?le.scopeValueEditable:void 0},onDoubleClick:()=>{t&&(this.scopeValue=g.value.value,this.setState({editValue:{scopeId:v,type:a,index:0,valueType:g.value.type,name:g.name,value:g.value.value}}))},children:e})]},`${a}_${v}_${g.name}`)}renderScopes(v){var t,e,s,c,d,p;if(!v)return null;const g=this.renderExpressions();let a=(s=(e=(t=this.props.scopes)==null?void 0:t.local)==null?void 0:e.properties)==null?void 0:s.result.map(f=>this.props.scopes&&this.renderScope("",f,"local"));return a==null||a.forEach(f=>f&&g.push(f)),a=(p=(d=(c=this.props.scopes)==null?void 0:c.closure)==null?void 0:d.properties)==null?void 0:p.result.map(f=>this.props.scopes&&this.renderScope("",f,"closure")),a==null||a.forEach(f=>f&&g.push(f)),M.jsx("table",{style:{width:"100%",fontSize:"small"},children:M.jsx("tbody",{children:g})})}render(){var v,g;return M.jsxs(Ft,{direction:Nt.Horizontal,initialSizes:this.state.framesSizes,minWidths:[100,200],onResizeFinished:(a,t)=>{this.setState({framesSizes:t}),window.localStorage.setItem("JS.framesSizes",JSON.stringify(t))},gutterClassName:this.props.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[M.jsx("div",{style:{width:"100%",height:"100%",overflow:"auto"},children:M.jsx(G.List,{style:le.listRoot,children:((v=this.props.callFrames)==null?void 0:v.map((a,t)=>this.renderOneFrameTitle(a,t)))||null})}),M.jsxs("div",{style:{width:"100%",height:"100%",overflow:"auto"},children:[M.jsx(G.Box,{sx:le.toolbarScopes,children:M.jsx(G.IconButton,{size:"small",onClick:()=>this.props.onExpressionAdd((a,t)=>{this.scopeValue=t.name||"",this.setState({editValue:{type:"expression",valueType:"string",index:a,name:t.name,value:t.name||""}})}),children:M.jsx(Kt,{})})}),M.jsx("div",{style:le.scopesAfterToolbar,children:((g=this.props.callFrames)==null?void 0:g.length)&&this.renderScopes(this.props.callFrames[this.props.currentFrame])})]})]})}}const _e={root:X=>({width:"100%",height:`calc(100% - ${parseInt(X.toolbar.height,10)+38+5}px)`,overflow:"hidden",position:"relative"}),toolbar:{minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)"},buttonRun:{color:"green"},buttonPause:{color:"orange"},buttonRestart:{color:"darkgreen"},buttonNext:{color:"blue"},buttonStep:{color:"blue"},buttonOut:{color:"blue"},buttonException:{},tabFile:X=>({textTransform:"inherit",color:X.palette.mode==="dark"?"#DDD":"inherit"}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},closeButton:{position:"absolute",top:8,right:0,zIndex:10,padding:8,cursor:"pointer"},tabsRoot:X=>({minHeight:24,background:X.palette.mode==="dark"?"#333":"#e6e6e6",color:X.palette.mode==="dark"?"white":"inherit"}),tabRoot:{minHeight:24},bpListItem:{borderTop:"1px dashed #bfbfbf44"},monospace:{fontFamily:"Courier New, monospace",whiteSpace:"pre",fontSize:12},arrow:{color:"#fffa4f"}};class kt extends dt.Component{console=null;scripts={};mainScriptId=null;constructor(v){super(v);const g=window.localStorage.getItem(`javascript.tools.bp.${this.props.src}`);let a;try{a=g?JSON.parse(g):[]}catch{a=[]}const t=window.localStorage.getItem(`javascript.tools.exps.${this.props.src}`);let e;try{e=(t?JSON.parse(t):[]).map(p=>({name:p,value:{type:"undefined",description:"",value:"undefined",name:"name"}}))}catch{e=[]}const s=window.localStorage.getItem("JS.toolSizes");let c=[80,20];if(s)try{c=JSON.parse(s)}catch{}this.state={starting:!0,selected:null,tabs:{},script:"",breakpoints:a,expressions:e,running:!1,error:"",started:!1,paused:!0,location:null,toolsTab:window.localStorage.getItem("javascript.tools.tab")||"console",stopOnException:window.localStorage.getItem("javascript.tools.stopOnException")==="true",console:[],finished:!1,currentFrame:0,scopes:{},queryBreakpoints:null,logErrors:0,logWarnings:0,logs:0,toolSizes:c,instance:void 0,context:null}}async componentDidMount(){var g,a;let v;if(this.props.debugInstance)v=this.props.debugInstance.instance;else{const t=await this.props.socket.getObject(this.props.src);v=((a=(g=t==null?void 0:t.common)==null?void 0:g.engine)==null?void 0:a.replace("system.adapter.",""))||""}this.setState({instance:v},()=>{this.state.instance?(this.props.socket.setState(`${this.state.instance}.debug.from`,{val:'{"cmd": "subscribed"}',ack:!0}),setTimeout(()=>this.props.socket.subscribeState(`${this.state.instance}.debug.from`,this.fromInstance),200)):this.setState({error:"Unknown instance"})})}componentWillUnmount(){this.state.instance&&(this.props.socket.unsubscribeState(`${this.state.instance}.debug.from`,this.fromInstance),this.props.socket.sendTo(this.state.instance,"debugStop"))}sendToInstance(v){this.props.socket.setState(`${this.state.instance}.debug.to`,{val:JSON.stringify(v),ack:!1})}reinitBreakpoints(v){if(this.state.breakpoints.length){const a=JSON.parse(JSON.stringify(this.state.breakpoints)).map(t=>t.location);this.setState({breakpoints:[]},()=>{this.sendToInstance({breakpoints:a,cmd:"sb"}),this.state.stopOnException&&this.sendToInstance({cmd:"stopOnException",state:!0}),v&&v()})}else this.state.stopOnException&&this.sendToInstance({cmd:"stopOnException",state:!0}),v&&v()}static getLocation(v){return v.callFrames?v.callFrames[0].location:null}readCurrentScope(){var g;const v=((g=this.state.context)==null?void 0:g.callFrames)&&this.state.context.callFrames[this.state.currentFrame];if(v){const a=v.scopeChain.filter(t=>t.type!=="global");a.length?this.sendToInstance({cmd:"scope",scopes:a}):(this.state.scopes.global||this.state.scopes.local||this.state.scopes.closure)&&this.setState({scopes:{}})}}readExpressions(v){var g;this.state.expressions.length&&((g=this.state.context)!=null&&g.callFrames)&&this.state.context.callFrames[this.state.currentFrame]&&(v!==void 0?this.sendToInstance({cmd:"expressions",expressions:[this.state.expressions[v]],callFrameId:this.state.context.callFrames[this.state.currentFrame].callFrameId}):this.sendToInstance({cmd:"expressions",expressions:this.state.expressions,callFrameId:this.state.context.callFrames[this.state.currentFrame].callFrameId}))}fromInstance=(v,g)=>{var a,t,e,s,c,d,p,f,h,E;if(g!=null&&g.val&&this.state.instance!==void 0)try{const b=JSON.parse(g.val);if(b.cmd==="subscribed")this.props.socket.sendTo(this.state.instance,"debug",this.props.debugInstance||{scriptName:this.props.src});else if(b.cmd==="readyToDebug"){this.mainScriptId=b.scriptId,this.scripts[b.scriptId]=b.script,b.script.startsWith(`(async () => {debugger; +`)?this.scripts[b.scriptId]=`(async () => { +${b.script.substring(24)}`:b.script.startsWith("debugger;")&&(this.scripts[b.scriptId]=b.script.substring(9));const w=JSON.parse(JSON.stringify(this.state.tabs));w[b.scriptId]=this.props.debugInstance?b.url:this.props.src.replace("script.js.","");const I=`${Date.now()}.${Math.random()*1e4}`;(t=(a=b.context)==null?void 0:a.callFrames)==null||t.forEach((D,H)=>D.id=I+H),this.setState({starting:!1,finished:!1,selected:this.mainScriptId,script:this.scripts[b.scriptId],tabs:w,currentFrame:0,started:!0,paused:!0,location:kt.getLocation(b.context),context:b.context},()=>this.reinitBreakpoints(()=>{this.readCurrentScope(),this.readExpressions()}))}else if(b.cmd==="paused"){const w=`${Date.now()}.${Math.random()*1e4}`;(s=(e=b.context)==null?void 0:e.callFrames)==null||s.forEach((ee,r)=>ee.id=w+r);const I=kt.getLocation(b.context),D=JSON.parse(JSON.stringify(this.state.tabs)),H=b.context.callFrames[0].url.split("iobroker.javascript");I&&(D[I.scriptId]=(H[1]||H[0]).replace("script.js.",""));const L={tabs:D,paused:!0,location:I,currentFrame:0,context:b.context};L.script=!(I!=null&&I.scriptId)||this.scripts[I.scriptId]===void 0?Oe.I18n.t("loading..."):this.scripts[I.scriptId],L.selected=I==null?void 0:I.scriptId,this.setState(L,()=>{this.readCurrentScope(),this.readExpressions(),I!=null&&I.scriptId&&(this.scripts[I.scriptId]||this.sendToInstance({cmd:"source",scriptId:I.scriptId}))})}else if(b.cmd==="script")this.scripts[b.scriptId]=b.text,this.state.selected===b.scriptId&&this.setState({script:this.scripts[b.scriptId]});else if(b.cmd==="resumed")this.setState({paused:!1});else if(b.cmd==="log")if(this.state.toolsTab==="console"){this.console=null;const w=[...this.state.console];w.push({text:b.text,severity:b.severity,ts:b.ts}),this.setState({console:w})}else b.severity==="error"?this.setState({logErrors:this.state.logErrors+1}):b.severity==="warn"?this.setState({logWarnings:this.state.logWarnings+1}):this.setState({logs:this.state.logs+1}),this.console=this.console||[...this.state.console],this.console.push({text:b.text,severity:b.severity,ts:b.ts});else if(b.cmd==="error")this.setState({error:b.error});else if(b.cmd==="finished"||b.cmd==="debugStopped")this.setState({finished:!0,starting:!1,started:!0});else if(b.cmd==="sb"){const w=JSON.parse(JSON.stringify(this.state.breakpoints));let I=!1;b.breakpoints.filter(D=>D).forEach(D=>{w.find(L=>L.location.scriptId===D.location.scriptId&&L.location.lineNumber===D.location.lineNumber)||(I=!0,w.push(D))}),I&&window.localStorage.setItem(`javascript.tools.bp.${this.props.src}`,JSON.stringify(w)),I&&this.setState({breakpoints:w})}else if(b.cmd==="cb"){const w=JSON.parse(JSON.stringify(this.state.breakpoints));let I=!1;b.breakpoints.filter(D=>D!=null).forEach(D=>{const H=w.find(L=>L.id===D);if(H){const L=w.indexOf(H);w.splice(L,1),I=!0}}),I&&window.localStorage.setItem(`javascript.tools.bp.${this.props.src}`,JSON.stringify(w)),I&&this.setState({breakpoints:w})}else if(b.cmd==="scope"){const w=b.scopes.find(D=>D.type==="local")||void 0,I=b.scopes.find(D=>D.type==="closure")||void 0;console.log(JSON.stringify(I)),this.setState({scopes:{local:w,closure:I}})}else if(b.cmd==="setValue"){const w=JSON.parse(JSON.stringify(this.state.scopes));let I;b.scopeNumber===0?I=(d=(c=w==null?void 0:w.local)==null?void 0:c.properties)==null?void 0:d.result.find(D=>D.name===b.variableName):I=(f=(p=w==null?void 0:w.closure)==null?void 0:p.properties)==null?void 0:f.result.find(D=>D.name===b.variableName),I&&(I.value.value=b.newValue.value,this.setState({scopes:w}))}else if(b.cmd==="expressions"){const w=JSON.parse(JSON.stringify(this.state.expressions));let I=!1;b.expressions.forEach(D=>{const H=w.find(L=>L.name===D.name);H&&(I=!0,H.value=D.result)}),I&&this.setState({expressions:w}),console.log(`expressions: ${JSON.stringify(b)}`)}else b.cmd==="getPossibleBreakpoints"?((h=b.breakpoints)==null?void 0:h.length)===1?this.sendToInstance({breakpoints:b.breakpoints,cmd:"sb"}):(E=b.breakpoints)!=null&&E.length?this.setState({queryBreakpoints:b.breakpoints}):window.alert("cannot set"):console.error(`Unknown command: ${JSON.stringify(b)}`)}catch{}};getTextAtLocation(v){let g=this.state.script.split(/\r\n|\n/)[v.lineNumber],a;return v.columnNumber!==void 0&&v.columnNumber>=10?(g=g.substring(v.columnNumber-10,v.columnNumber+20),a=`${"".padStart(10," ")}↑`):v.columnNumber!==void 0&&(g=g.substring(0,30-v.columnNumber),a=`${"".padStart(v.columnNumber," ")}↑`),[M.jsx("div",{style:_e.monospace,children:g},"line"),M.jsx("div",{style:{..._e.monospace,..._e.arrow},children:a},"arrow")]}renderQueryBreakpoints(){return this.state.queryBreakpoints?M.jsxs(G.Dialog,{onClose:()=>this.setState({queryBreakpoints:null}),"aria-labelledby":"bp-dialog-title",open:!0,children:[M.jsx(G.DialogTitle,{id:"bp-dialog-title",children:Oe.I18n.t("Select breakpoint")}),M.jsx(G.List,{children:this.state.queryBreakpoints.map((v,g)=>M.jsx(G.ListItemButton,{style:_e.bpListItem,dense:!0,onClick:()=>{this.sendToInstance({breakpoints:[v],cmd:"sb"}),this.setState({queryBreakpoints:null})},children:M.jsx(G.ListItemText,{primary:this.getTextAtLocation(v)})},g))})]}):null}renderError(){return this.state.error?M.jsx(Lt,{onClose:()=>this.setState({error:""}),text:this.state.error},"dialogError"):null}closeTab(v,g){g==null||g.stopPropagation();const a=JSON.parse(JSON.stringify(this.state.tabs));delete a[v];const t={tabs:a,script:this.mainScriptId?this.scripts[this.mainScriptId]:"...",selected:this.mainScriptId};this.state.location&&this.state.location.scriptId!==this.mainScriptId&&(t.location=null),this.setState(t)}renderTabs(){const v=!this.state.tabs||!this.state.started;return M.jsx(G.Tabs,{component:"div",indicatorColor:"primary",style:{position:"relative",width:"calc(100% - 300px)",display:"inline-block"},value:this.state.selected,onChange:(g,a)=>{this.scripts[a]?this.setState({selected:a,script:this.scripts[a]}):this.setState({selected:a,script:"loading..."},()=>this.sendToInstance({cmd:"source",scriptId:a}))},scrollButtons:"auto",children:Object.keys(this.state.tabs||[]).map(g=>{let a=g;const t=this.state.tabs[g]||"";this.state.tabs[g]&&(a=this.state.tabs[g].split("/").pop()||"");const e=[M.jsx("div",{style:_e.tabText,children:a},"text"),g!==this.mainScriptId?M.jsx("span",{style:_e.closeButton,children:M.jsx($t,{onClick:s=>this.closeTab(g,s),fontSize:"small"},"close")},"icon"):null];return M.jsx(G.Tab,{disabled:v,sx:_e.tabFile,label:e,title:t,value:g},g)})})}onResume(){this.sendToInstance({cmd:"cont"})}onPause(){this.sendToInstance({cmd:"pause"})}onNext(){this.sendToInstance({cmd:"next"})}onStepIn(){this.sendToInstance({cmd:"step"})}onStepOut(){this.sendToInstance({cmd:"out"})}onRestart(){this.setState({started:!1,starting:!0},()=>this.state.instance!==void 0&&this.props.socket.sendTo(this.state.instance,"debug",this.props.debugInstance||{scriptName:this.props.src}))}onToggleException(){const v=!this.state.stopOnException;window.localStorage.setItem("javascript.tools.stopOnException",v?"true":"false"),this.setState({stopOnException:v},()=>this.sendToInstance({cmd:"stopOnException",state:v}))}renderToolbar(){const v=!this.state.started;return M.jsxs(G.Toolbar,{variant:"dense",style:_e.toolbar,children:[M.jsx(G.IconButton,{style:_e.buttonRestart,disabled:v,onClick:()=>this.onRestart(),title:Oe.I18n.t("Restart"),size:"medium",children:M.jsx(Jt,{})}),!this.state.finished&&this.state.paused?M.jsx(G.IconButton,{style:_e.buttonRun,disabled:v,onClick:()=>this.onResume(),title:Oe.I18n.t("Resume execution"),size:"medium",children:M.jsx(Ut,{})}):!this.state.finished&&M.jsx(G.IconButton,{disabled:v,style:_e.buttonPause,onClick:()=>this.onPause(),title:Oe.I18n.t("Pause execution"),size:"medium",children:M.jsx(Ht,{})}),!this.state.finished&&M.jsx(G.IconButton,{style:_e.buttonNext,disabled:v||!this.state.paused,onClick:()=>this.onNext(),title:Oe.I18n.t("Go to next line"),size:"medium",children:M.jsx(Gt,{})}),!this.state.finished&&M.jsx(G.IconButton,{style:_e.buttonStep,disabled:v||!this.state.paused,onClick:()=>this.onStepIn(),title:Oe.I18n.t("Step into function"),size:"medium",children:M.jsx(Yt,{})}),!this.state.finished&&M.jsx(G.IconButton,{style:_e.buttonOut,disabled:v||!this.state.paused,onClick:()=>this.onStepOut(),title:Oe.I18n.t("Step out from function"),size:"medium",children:M.jsx(Qt,{})}),!this.state.finished&&M.jsx(G.IconButton,{style:_e.buttonException,color:this.state.stopOnException?"primary":"default",disabled:v||!this.state.paused,onClick:()=>this.onToggleException(),title:Oe.I18n.t("Stop on exception"),size:"medium",children:M.jsx(Zt,{})}),this.renderTabs()]},"toolbar1")}getPossibleBreakpoints(v){const g={...v,columnNumber:1e3};this.sendToInstance({cmd:"getPossibleBreakpoints",start:v,end:g})}toggleBreakpoint(v){const g=this.state.breakpoints.find(a=>a.location.scriptId===this.state.selected&&a.location.lineNumber===v);if(g){const a=JSON.parse(JSON.stringify(this.state.breakpoints));this.setState({breakpoints:a},()=>this.sendToInstance({breakpoints:[g.id],cmd:"cb"}))}else this.getPossibleBreakpoints({scriptId:this.state.selected,lineNumber:v,columnNumber:0})}renderCode(){if(this.state.script&&this.state.started){const v=this.state.breakpoints.filter(g=>g.location.scriptId===this.state.selected);return M.jsx(aa,{runningInstances:this.props.runningInstances,socket:this.props.socket,adapterName:this.props.adapterName,scriptName:this.state.selected?this.state.tabs[this.state.selected]:"",sourceId:this.state.selected,script:this.state.script,paused:this.state.paused,breakpoints:v,location:this.state.location,themeType:this.props.themeType,themeName:this.props.themeName,onToggleBreakpoint:g=>this.toggleBreakpoint(g)})}return null}renderFrames(){var v;return this.state.paused?M.jsx(la,{currentScriptId:this.state.selected,scopes:this.state.scopes,expressions:this.state.expressions,themeType:this.props.themeType,callFrames:(v=this.state.context)==null?void 0:v.callFrames,currentFrame:this.state.currentFrame,onChangeCurrentFrame:g=>{this.setState({currentFrame:g,scopes:{}},()=>{this.readCurrentScope(),this.readExpressions()})},onWriteScopeValue:g=>{this.sendToInstance({cmd:"setValue",variableName:g.variableName,scopeNumber:g.scopeNumber,newValue:g.newValue,callFrameId:g.callFrameId})},onExpressionDelete:g=>{const a=JSON.parse(JSON.stringify(this.state.expressions));a.splice(g,1),this.setState({expressions:a}),window.localStorage.setItem(`javascript.tools.exps.${this.props.src}`,JSON.stringify(a.map(t=>t.name)))},onExpressionAdd:g=>{const a=JSON.parse(JSON.stringify(this.state.expressions));a.push({name:"",value:{value:""}}),this.setState({expressions:a},()=>g&&g(a.length-1,this.state.expressions[a.length-1]))},onExpressionNameUpdate:(g,a,t)=>{const e=JSON.parse(JSON.stringify(this.state.expressions));if(!a)e.splice(g,1);else{if(e.find(s=>s.name===a))return t&&t();e[g].name=a}this.setState({expressions:e},()=>{a&&this.readExpressions(g),t&&t()}),window.localStorage.setItem(`javascript.tools.exps.${this.props.src}`,JSON.stringify(e.map(s=>s.name)))}}):null}renderConsole(){return M.jsx(_t,{console:this.state.console,onClearAllLogs:()=>this.setState({console:[],logErrors:0,logWarnings:0,logs:0})})}renderTools(){const v=!this.state.tabs||!this.state.started;let g;return this.state.logErrors?g=M.jsx(G.Badge,{badgeContent:this.state.logErrors,color:"error",children:M.jsx("span",{children:Oe.I18n.t("Console")})}):this.state.logWarnings?g=M.jsx(G.Badge,{badgeContent:this.state.logWarnings,color:"secondary",children:M.jsx("span",{children:Oe.I18n.t("Console")})}):this.state.logs?g=M.jsx(G.Badge,{badgeContent:this.state.logs,color:"default",children:M.jsx("span",{children:Oe.I18n.t("Console")})}):g=Oe.I18n.t("Console"),M.jsxs("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:[M.jsxs(G.Tabs,{sx:_e.tabsRoot,component:"div",indicatorColor:"primary",style:{position:"relative",width:"100%"},value:this.state.toolsTab,onChange:(a,t)=>{const e={toolsTab:t};this.console&&t==="console"&&(e.console=this.console,this.console=null,e.logs=0,e.logWarnings=0,e.logErrors=0),window.localStorage.setItem("javascript.tools.tab",t),this.setState(e)},scrollButtons:"auto",children:[M.jsx(G.Tab,{style:_e.tabRoot,disabled:v,label:Oe.I18n.t("Stack"),value:"stack"}),M.jsx(G.Tab,{style:_e.tabRoot,disabled:v,label:g,value:"console"})]}),M.jsxs("div",{style:{width:"100%",height:"calc(100% - 36px)",overflow:"hidden"},children:[this.state.toolsTab==="stack"&&!v?this.renderFrames():null,this.state.toolsTab==="console"&&!v?this.renderConsole():null]})]})}render(){return M.jsxs(G.Box,{sx:_e.root,children:[this.state.starting?M.jsx(G.LinearProgress,{}):null,this.renderToolbar(),M.jsxs(Ft,{direction:Nt.Vertical,initialSizes:this.state.toolSizes,minHeights:[100,100],onResizeFinished:(v,g)=>{this.setState({toolSizes:g}),window.localStorage.setItem("JS.toolSizes",JSON.stringify(g))},gutterClassName:this.props.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[M.jsxs("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:[this.renderCode(),this.renderQueryBreakpoints()]}),M.jsx("div",{style:{width:"100%",height:"100%",overflow:"hidden"},children:this.renderTools()})]}),this.renderError()]},"debugger")}}export{kt as default}; diff --git a/admin/assets/index-Bis-ZPl5.js b/admin/assets/index-Bis-ZPl5.js new file mode 100644 index 000000000..f1f2ba681 --- /dev/null +++ b/admin/assets/index-Bis-ZPl5.js @@ -0,0 +1,930 @@ +import{c as U,j as Q,o as Pe,a as YM,b as vM,d as bM,P as _}from"./createSvgIcon-DMsh-YeH.js";import{i as x,R as M}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as j,c as Ne,C as Oe,a as nt,S as ML,Q as uN,b as lN,Y as cL,Z,$ as uL,a0 as lL,a1 as NL,a2 as LL,a3 as QM,a4 as gL,a5 as jL,a6 as yL,a7 as TL,a8 as DL,a9 as UM,aa as dL,ab as hL,ac as zL,ad as wL,ae as CL,af as IL,ag as pL,ah as AL,ai as mL,aj as OL,ak as EL,al as fL,am as $M,an as PM,ao as xL,ap as WM,D as _L,aq as SL,ar as kL,as as YL,at as BM,au as vL,av as bL,aw as QL,T as UL,I as Pi}from"./index-f32XoI0M.js";import{I as cn}from"./Save-BSBgRX7g.js";import{c as ir,g as $L}from"./_commonjsHelpers-Cpj98o6Y.js";import{u as PL}from"./useTheme-N2j2HWMZ.js";import{t as B}from"./index-Dm1jc4t6.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";const un=U(Q.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add"),WL=U(Q.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack"),BL=U(Q.jsx("path",{d:"m10 17 5-5-5-5z"}),"ArrowRight"),JL=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 11h-3v3.75c0 1.24-1.01 2.25-2.25 2.25S8.5 17.99 8.5 16.75s1.01-2.25 2.25-2.25c.46 0 .89.14 1.25.38V11h4zm-3-4V3.5L18.5 9z"}),"AudioFile"),RL=U([Q.jsx("path",{d:"M16.5 12h-9c-.55 0-1 .45-1 1v1h11v-1c0-.55-.45-1-1-1M7.25 8.5h4v2h-4zm5.5 0h4v2h-4z"},"0"),Q.jsx("path",{d:"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-1 15h-1.5v-1.5h-11V17H5v-3.83c0-.66.25-1.26.65-1.72V9c0-1.1.9-2 2-2H11c.37 0 .72.12 1 .32.28-.2.63-.32 1-.32h3.35c1.1 0 2 .9 2 2v2.45c.4.46.65 1.06.65 1.72z"},"1")],"BedroomParent"),FL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2"}),"Bookmark"),GL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2m0 15-5-2.18L7 18V5h10z"}),"BookmarkBorder"),HL=U(Q.jsx("path",{d:"M22 24H2v-4h20zM13.06 5.19l3.75 3.75L7.75 18H4v-3.75zm4.82 2.68-3.75-3.75 1.83-1.83c.39-.39 1.02-.39 1.41 0l2.34 2.34c.39.39.39 1.02 0 1.41z"}),"BorderColor"),VL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4"),ZL=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6"}),"Brightness5"),ca=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness6"),XL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7"),KL=U(Q.jsx("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build"),qL=U(Q.jsx("path",{d:"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m0 18H4V8h16z"}),"CalendarToday"),ua=U(Q.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"}),"Code"),eg=U(Q.jsx("path",{d:"m20.71 5.63-2.34-2.34a.996.996 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42M6.92 19 5 17.08l8.06-8.06 1.92 1.92z"}),"Colorize"),tg=U(Q.jsx("path",{d:"m13.7826 15.1719 2.1213-2.1213 5.9963 5.9962-2.1213 2.1213zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49c-1.17-1.17-3.07-1.17-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21"}),"Construction"),sg=U(Q.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy"),NN=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2m-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3z"}),"CreateNewFolder"),ig=U(Q.jsx("path",{d:"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2z"}),"Crop"),rg=U(Q.jsx("path",{d:"M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7m17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4z"}),"DataObject"),Kr=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 16H8v-2h8zm0-4H8v-2h8zm-3-5V3.5L18.5 9z"}),"Description"),og=U(Q.jsx("path",{d:"M18.41 5.8 17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83M6.21 18H5v-1.21l8.66-8.66 1.21 1.21zM11 20l4-4h6v4z"}),"DriveFileRenameOutline"),mi=U(Q.jsx("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit"),ng=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error"),ag=U(Q.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore"),Mg=U(Q.jsx("path",{d:"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3"}),"FindInPage"),cg=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen"),ug=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m-2.06 11L15 15.28 12.06 17l.78-3.33-2.59-2.24 3.41-.29L15 8l1.34 3.14 3.41.29-2.59 2.24z"}),"FolderSpecial"),lg=U(Q.jsx("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-4.05 16.5-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13z"}),"FontDownload"),Ng=U(Q.jsx("path",{d:"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"}),"FormatItalic"),Lg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Image"),la=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),LN=U(Q.jsx("path",{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm7 7V3.5L18.5 9z"}),"InsertDriveFile"),gg=U(Q.jsx("path",{d:"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"}),"KeyboardReturn"),gN=U(Q.jsx("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link"),jg=U(Q.jsx("path",{d:"M3 13h2v-2H3zm0 4h2v-2H3zm0-8h2V7H3zm4 4h14v-2H7zm0 4h14v-2H7zM7 7v2h14V7z"}),"List"),yg=U(Q.jsx("path",{d:"M19 5v14H5V5zm1.1-2H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9M11 7h6v2h-6zm0 4h6v2h-6zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7z"}),"ListAlt"),Tg=U(Q.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-5 14h-2V9h-2V7h4z"}),"LooksOne"),Dg=U(Q.jsx("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3z"}),"MusicNote"),dg=U(Q.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),Na=U(Q.jsx("path",{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonOutlined"),hg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Photo"),Sr=U(Q.jsx("path",{d:"M5 4v2h14V4zm0 10h4v6h6v-6h4l-7-7z"}),"Publish"),jN=U(Q.jsx("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh"),La=U(Q.jsx("path",{d:"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7m-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1s1.8.3 2.5 1zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2M8 18H6v-2h2zm3.5 0h-2v-2h2zm3.5 0h-2v-2h2z"}),"Router"),zg=U(Q.jsx("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"SaveAlt"),ln=U(Q.jsx("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings"),kr=U(Q.jsx("path",{d:"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2m-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69s.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69"}),"SettingsApplications"),wg=U(Q.jsx("path",{d:"m3.5 18.49 6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z"}),"ShowChart"),ga=U(Q.jsx("path",{d:"M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m3.61 6.34c1.07 0 1.93.86 1.93 1.93s-.86 1.93-1.93 1.93-1.93-.86-1.93-1.93c-.01-1.07.86-1.93 1.93-1.93m-6-1.58c1.3 0 2.36 1.06 2.36 2.36s-1.06 2.36-2.36 2.36-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36m0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68M11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09"}),"SupervisedUserCircle"),Cg=U(Q.jsx("path",{d:"M2.5 4v3h5v12h3V7h5V4zm19 5h-9v3h3v7h3v-7h3z"}),"TextFields"),Ig=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFileOutlined"),pg=U(Q.jsx("path",{d:"M16 13h-3V3h-2v10H8l4 4zM4 19v2h16v-2z"}),"VerticalAlignBottom"),Ag=U(Q.jsx("path",{d:"M8 11h3v10h2V11h3l-4-4zM4 3v2h16V3z"}),"VerticalAlignTop"),mg=U(Q.jsx("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11z"}),"Videocam"),Og=U(Q.jsx("path",{d:"M14.67 5v14H9.33V5zm1 14H21V5h-5.33zm-7.34 0V5H3v14z"}),"ViewColumn"),Eg=U(Q.jsx("path",{d:"M4 15h16v-2H4zm0 4h16v-2H4zm0-8h16V9H4zm0-6v2h16V5z"}),"ViewHeadline"),fg=U(Q.jsx("path",{d:"M14.67 5v6.5H9.33V5zm1 6.5H21V5h-5.33zm-1 7.5v-6.5H9.33V19zm1-6.5V19H21v-6.5zm-7.34 0H3V19h5.33zm0-1V5H3v6.5z"}),"ViewModule"),xg=U(Q.jsx("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility"),_g=U(Q.jsx("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning"),Qs=U(Q.jsx("path",{d:"m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9m8 8 3 3 3-3c-1.65-1.66-4.34-1.66-6 0m-4-4 2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13"}),"Wifi"),rr=U(Q.jsx("path",{d:"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53zM2 3.05 5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0"}),"WifiOff"),Oo=11/23/100;function JM(s){const e={r:0,g:0,b:0};if(s.length===7)e.r=parseInt(s.substring(1,3),16),e.g=parseInt(s.substring(3,5),16),e.b=parseInt(s.substring(5,7),16);else if(s.length===4){const t=s[1],i=s[2],r=s[3];e.r=parseInt(t+t,16),e.g=parseInt(i+i,16),e.b=parseInt(r+r,16)}return e}function Sg(s){return`#${Math.round(s.r).toString(16)}${Math.round(s.g).toString(16)}${Math.round(s.b).toString(16)}`}function kg(s,e,t){const i=JM(s),r=JM(e);return i.r+=r.r*(.05+Oo*(t-1)),i.g+=r.g*(.05+Oo*(t-1)),i.b+=r.b*(.05+Oo*(t-1)),Sg(i)}function RM(s,e){const t={};for(let i=1;i<=24;i++)t[`elevation${i}`]={backgroundColor:kg(s,e,i)};return t}function Yg(s,e){var n,a,c,l,N,u,L,g,y,T,D;let t,i;s==="dark"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#121212","#fff")},t={name:s,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="blue"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="colored"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#151d21","#fff")},t={name:s,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):s==="PT"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):s==="DX"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(i={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(a=(n=t.palette)==null?void 0:n.primary)==null?void 0:a.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:YM[300],dark:YM[400]});const r=vM(t),o=r.palette;return vM(r,{...e||void 0,components:{...i,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(c=o.grey)==null?void 0:c[300],color:o.getContrastText&&((l=o.grey)!=null&&l[300])?o.getContrastText(o.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(N=o.text)==null?void 0:N.primary,borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(u=o.action)==null?void 0:u.disabledBackground}`},"&:hover":{borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:bM(((L=o.text)==null?void 0:L.primary)||"",((g=o.action)==null?void 0:g.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(y=o.text)==null?void 0:y.primary,"&:hover":{backgroundColor:bM(((T=o.text)==null?void 0:T.primary)||"",((D=o.action)==null?void 0:D.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function vg(){let s,e;const t=new Promise((i,r)=>{s=i,e=r});return t.resolve=s,t.reject=e,t}function Nn(s){return(s==null?void 0:s.rows.map(e=>e.value).filter(e=>!!e))??[]}function Tt(s){return s!=null&&s.startsWith("system.host.")||(s=`system.host.${s}`),s}function ui(s){return s!=null&&s.startsWith("system.host.")&&(s=s.substring(12)),s}function FM(s){return new Promise(e=>{setTimeout(e,s)})}function or(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}var rt;(function(s){s[s.CONNECTING=0]="CONNECTING",s[s.CONNECTED=1]="CONNECTED",s[s.OBJECTS_LOADED=2]="OBJECTS_LOADED",s[s.READY=3]="READY"})(rt||(rt={}));var Ie;(function(s){s.PERMISSION_ERROR="permissionError",s.NOT_CONNECTED="notConnectedError",s.TIMEOUT="timeout",s.NOT_ADMIN="Allowed only in admin",s.NOT_SUPPORTED="Not supported"})(Ie||(Ie={}));const W3e=Ie.PERMISSION_ERROR;Ie.NOT_CONNECTED;const bg=["material","echarts","vis"];class ze{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=vg();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let i=1;i<=30;i++){if(window.io||window.iob)return e();await FM(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,i=(this.props.protocol||window.location.protocol).replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),ze.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a.pop(),bg.includes(a[a.length-1])&&a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}`:`${i}://${e}`;return this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",n=>{window.addEventListener("storage",this.onAccessTokenUpdated);const a=ze.readTokens();if(a&&!a.owner){const c=Date.now();this.saveTokens({access_token:a.access_token,refresh_token:a.refresh_token,expires_in:Math.round((a.expires_in.getTime()-c)/1e3),refresh_token_expires_in:Math.round((a.refresh_token_expires_in.getTime()-c)/1e3),token_type:"Bearer"},a.stayLoggedIn)}this.onReadyDone=!1,n!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(c=>{const[l,N,u]=c.version.split(".");parseInt(l,10)*1e4+parseInt(N,10)*100+parseInt(u,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(g,y)=>this.onPreConnect(g,y))}).catch(c=>this.onError({message:c.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(c,l)=>{this.onPreConnect(c,l)})}),this._socket.on("reconnect",()=>{var n,a;this.onReadyDone=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(c=>c(!0)))}),this._socket.on("disconnect",()=>{var n,a;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.CONNECTING),this.onConnectionHandlers.forEach(c=>c(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a;n==null?a="":typeof n.toString=="function"?a=n.toString():(a=JSON.stringify(n),console.error(`Received strange error: ${a}`)),a.includes("User not authorized")?this.authenticate():a.includes("websocket error")?(console.error(`Socket Error => reload: ${n}`),window.location.reload()):console.error(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>{setTimeout(()=>this.objectChange(n,a),0)}),this._socket.on("stateChange",(n,a)=>{setTimeout(()=>this.stateChange(n,a),0)}),this._socket.on("im",(n,a,c)=>{setTimeout(()=>this.instanceMessage(n,a,c),0)}),this._socket.on("fileChange",(n,a,c)=>{setTimeout(()=>this.fileChange(n,a,c),0)}),this._socket.on("cmdStdout",(n,a)=>{var c;(c=this.onCmdStdoutHandler)==null||c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;(c=this.onCmdStderrHandler)==null||c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;(c=this.onCmdExitHandler)==null||c.call(this,n,a)}),Promise.resolve()}onPreConnect(e,t){var i,r;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(o=>console.error(`Cannot load data: ${o}`)):(r=(i=this.props).onProgress)==null||r.call(i,rt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(o=>o(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[i,r,o,n,a]=e.split(";"),c=new Date(r);return c.getTime(){if(e.key==="iob_tokens"){const t=ze.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,i)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):i?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(i=>{if(i.ok)return i.json();throw new Error("Cannot refresh access token")}).then(i=>{if(i.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${i.access_token}`),this.saveTokens(i,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(i.access_token);else throw new Error("Cannot get access token")}).catch(i=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${i}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(i),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const r=JSON.parse(t);if(e{r?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,i)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,i))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>{i?t(i):e(r||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(i=>console.error(`Cannot load data: ${i}`)),this.loaded)return;await FM(ze.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,i,r,o,n,a,c,l;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(N){this.onError(`Cannot read user permissions: ${N}`);return}try{this.props.admin5only&&!ze.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(N){this.onError(`Cannot read system config: ${N}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(i=(t=this.props).onLanguage)==null||i.call(t,this.systemLang),this.loaded=!0,(o=(r=this.props).onProgress)==null||o.call(r,rt.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.onReadyDone||(this.onReadyDone=!0,(l=(c=this.props).onReady)==null||l.call(c,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,i,r;e.length===3?[t,i,r]=e:([t,r]=e,i=!1);let o;if(Array.isArray(t)?o=t:o=[t],typeof r!="function")throw new Error("The state change handler must be a function!");const n=[];for(let a=0;aa.includes("*"))){let a;for(let c=0;cconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const a=await(ze.isWeb()?this.getStates(o):this.getForeignStates(o));if(a)for(const[c,l]of Object.entries(a)){const N=r(c,l);N instanceof Promise&&N.catch(u=>console.error(`Cannot call state change handler: ${u}`))}}catch(a){console.error(`Cannot getState "${o.join(", ")}": ${a.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var o;let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let n=0;n{try{const N=l(e,t,i);N instanceof Promise&&N.catch(u=>console.error(`Cannot call object change handler: ${u}`))}catch(N){console.error(`Error by callback of objectChange: ${N}`)}});if(r){const a=(n=(o=this.props).onObjectChange)==null?void 0:n.call(o,e,t);a instanceof Promise&&a.catch(c=>console.error(`Cannot call object change handler: ${c}`))}}stateChange(e,t){for(const i of Object.values(this.statesSubscribes))if(i.reg.test(e))for(const r of i.cbs)try{const o=r(e,t??null);o instanceof Promise&&o.catch(n=>console.error(`Cannot call state change handler: ${n}`))}catch(o){console.error(`Error by callback of stateChanged: ${o}`)}}instanceMessage(e,t,i){var r;(r=this._instanceSubscriptions[t])==null||r.forEach(o=>{if(o.messageType===e){const n=o.callback(i,t,e);n instanceof Promise&&n.catch(a=>console.error(`Cannot call instance message handler: ${a}`))}})}fileChange(e,t,i){for(const r of Object.values(this.filesSubscribes))if(r.regId.test(e)&&r.regFilePattern.test(t))for(const o of r.cbs)try{o(e,t,i)}catch(n){console.error(`Error by callback of fileChange: ${n}`)}}async subscribeFiles(e,t,i){if(typeof i!="function")throw new Error("The state change handler must be a function!");let r;Array.isArray(t)?r=t:r=[t];const o=[];for(let n=0;n{const u={elapsed:!1,clearTimeout:()=>{}};let L;i!==!1&&(L=setTimeout(()=>{u.elapsed=!0,r==null||r(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(Ie.TIMEOUT))},i??this.props.cmdTimeout),u.clearTimeout=()=>{clearTimeout(L)});try{await a(l,N,u)}catch(g){e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(g.toString()))}});return e&&(this._promises[e]=c),c}resetCache(e,t){t?Object.keys(this._promises).filter(i=>i.startsWith(e)).forEach(i=>{delete this._promises[i]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getStates",e,(r,o)=>{this.states=o??{},r?i(r):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(r,o)=>{r?i(r):t(o)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>{r?i(r):t(o)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setBinaryState",e,t,o=>{o?r(o):i()})}})}setState(e,t,i){return typeof i=="boolean"&&(t={val:t,ack:i}),this.request({commandTimeout:!1,executor:(r,o)=>{if(e&&e===this.ignoreState){let n;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?n=t:n={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=n,this.statesSubscribes[e])for(const a of this.statesSubscribes[e].cbs)try{const c=a(e,n);c instanceof Promise&&c.catch(l=>console.error(`Cannot call state change handler: ${l}`))}catch(c){console.error(`Error by callback of stateChanged: ${c}`)}r();return}this._socket.emit("setState",e,t,n=>{n?o(n):r()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{if(!e&&this.objects){i(this.objects);return}this._socket.emit(ze.isWeb()?"getObjects":"getAllObjects",(o,n)=>{var a,c;t||(c=(a=this.props).onProgress)==null||c.call(a,rt.OBJECTS_LOADED),o?r(o):(this.objects=n??{},i(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjects",e,(r,o)=>{r?i(r):t(o)})}})}_subscribe(e){var t,i;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("subscribeObjects",r),Object.keys(this.objectsSubscribes).forEach(o=>this._socket.emit("subscribeObjects",o)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("subscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("subscribeFiles",n,a)})}else if(!e&&this.subscribed){this.subscribed=!1,(i=this.props.autoSubscribes)!=null&&i.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("unsubscribeObjects",r),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("unsubscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("unsubscribeFiles",n,a)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("requireLog",e,r=>{r?i(r):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObject",e,{maintenance:t},o=>{o?r(o):i()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObjects",e,{maintenance:t},o=>{o?r(o):i()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(r,o)=>{r?i(r):t(o)})}})}sendTo(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendTo",e,t,i,o=>{r(o)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("extendObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(o,n)=>{if(o)r(o);else{const a={};if(n)for(let c=0;c{i=i||"",r=r||"香",this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(a);else{const l={};if(c&&c.rows)for(let N=0;N{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>{var o;i?t(i):e((o=r.rows)==null?void 0:o.map(n=>n.value).filter(n=>!!n))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>{o?r(o):i(n)})}})}readFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit(i?"readFile64":"readFile",e,t,(n,a,c)=>{n?o(n):r({file:a,mimeType:c})})}})}writeFile64(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>{n?o(n):r()});else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>{a?o(a):r()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o?r(o):i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o?r(o):i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n?o(n):r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n?o(n):r()})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c?n(c):o())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let i=await this.getObject("system.config");i??={},i.common??={},i.native??={},t(i)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>{r?i(r):(o??={},o.common??={},o.native??={},t(o))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>{r?i(r):t(o??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>{o?r(o):i(n)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>{o?r(o):i(n)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>{o?r(o):i({values:n,sessionId:c,step:a})})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(r):t({version:o,serverName:n})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(i,r)=>{i?t(i):e(r)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>{o?r(o):i(!!n)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,i)=>{e(i)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var i;const t=await this.getObject("system.meta.uuid");e((i=t==null?void 0:t.native)==null?void 0:i.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>{o?r(o):i(n)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=e?`system.adapter.${e}.`:"system.adapter.",o=`${r}香`,n=await this.getObjectViewSystem("instance",r,o),a=Object.values(n);i(e?a.filter(c=>c.common.name===e):a)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),o=Object.values(r);i(e?o.filter(n=>n.common.name===e):o)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",i=>{i?t(i):e(null)})}})}subscribeOnInstance(e,t,i,r){return this.request({commandTimeout:!1,executor:(o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(a):c&&(c.error?n(c.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c)))})}})}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(this.request({commandTimeout:!1,executor:(N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>L?u(L):N(g))}}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>!!a.find(c=>c)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:i=>(this._socket.emit("log",e,t),i(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function Qg(s,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(s.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(s.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(s.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(r=>r.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:s,type:t}}function Ug(s){var i,r,o,n;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((r=(i=s.native)==null?void 0:i.hardware)!=null&&r.networkInterfaces){const a=(n=(o=s.native)==null?void 0:o.hardware)==null?void 0:n.networkInterfaces;Object.keys(a).forEach(c=>{a[c].forEach(l=>{l.family!=="IPv6"?e.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv4"}):t.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class B3e extends ze{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var r;const i=await this.getObject("system.certificates");(r=i==null?void 0:i.native)!=null&&r.certificates?t(Object.entries(i.native.certificates).map(([o,n])=>Qg(o,n)).filter(o=>!!o)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>{i(r)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,r=>{i(r)})}})}upgradeController(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:i},n=>{const a=n;a.error?o(a.error):r(a.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("updateLicenses",e,t,(o,n)=>{o?r(o):i(n)})}})}upgradeOsPackages(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!i},o=>{r(o)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("readLogs",e,(r,o)=>{r&&i(r),t(o)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>{r&&i(r),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o&&r(o),i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o&&r(o),i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n&&o(n),r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n&&o(n),r()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}renameGroup(e,t,i){return this.request({commandTimeout:!1,executor:async r=>{const o=await this.getGroups(!0),n=o.filter(c=>c._id.startsWith(`${e}.`));for(const c of n){const l=c._id,N=t+c._id.substring(e.length);c._id=N,await this.setObject(N,c),await this.delObject(l)}const a=o.find(c=>c._id===e);if(a){const c=a._id;a._id=t,i!==void 0&&(a.common??={},a.common.name=i),await this.setObject(t,a),await this.delObject(c)}r()}})}getHostInfo(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfo"'):a?r(a):o('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfoShort"'):a?r(a):o('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,i,r){return this.request({cacheKey:`repository_${e}`,forceUpdate:i,commandTimeout:r,executor:(o,n,a)=>{this._socket.emit("sendToHost",e,"getRepository",t,c=>{a.elapsed||(a.clearTimeout(),c===Ie.PERMISSION_ERROR?n('May not read "getRepository"'):c?o(c):n('Cannot read "getRepository"'))})}})}getInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getInstalled"'):a?r(a):o('Cannot read "getInstalled"'))})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c&&n(c),o())})}})}readBaseSettings(e){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,o=>{r.elapsed||(r.clearTimeout(),o===Ie.PERMISSION_ERROR?i('May not read "BaseSettings"'):o?o.error?i(new Error(o.error)):t(o):i('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,n=>{o.elapsed||(o.clearTimeout(),n===Ie.PERMISSION_ERROR?r('May not write "BaseSettings"'):n?i(n):r('Cannot write "BaseSettings"'))})}})}restartController(e){return e=ui(e),this.request({executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{r.elapsed||(r.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=ui(e),this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getDiagData",t,n=>{o.elapsed||(o.clearTimeout(),i(n||null))})}})}changePassword(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("changePassword",e,t,n=>{o.elapsed||(o.clearTimeout(),n&&r(n),i())})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getHostByIp(e,t){return e=ui(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(i,r,o)=>{this._socket.emit("getHostByIp",e,(n,a)=>{if(o.elapsed)return;o.clearTimeout();const{IPs4:c,IPs6:l}=Ug(a);i([...c,...l])})}})}encrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("encrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}decrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("decrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}chmodFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chmodFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}chownFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chownFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}clearNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,i)=>{this._socket.emit("getIsEasyModeStrict",(r,o)=>{i.elapsed||(i.clearTimeout(),r&&t(r),e(!!o))})}})}getEasyMode(){return this.request({executor:(e,t,i)=>{this._socket.emit("getEasyMode",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(new Error(r)):e(o))})}})}getRatings(e){return this.request({executor:(t,i,r)=>{this._socket.emit("getRatings",!!e,(o,n)=>{r.elapsed||(r.clearTimeout(),o?i(new Error(o)):t(n))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(i,r,o)=>{try{const n=await fetch("./session",{signal:t.signal});if(o.elapsed)return;o.clearTimeout();const a=await n.json();i(a)}catch(n){r(`getCurrentSession: ${n}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,i)=>{this._socket.emit("getCurrentInstance",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(r):e(o))})}})}getAdapterInstances(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`instances_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapterInstances",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getAdapters(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`adapter_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapters",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactAdapters",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactInstances",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactInstalled",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactInstalled"'):a?r(a):o('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,i){return e=Tt(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactRepository",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactRepository"'):a?r(a):o('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactHosts",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactSystemRepositories",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}}const X=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Xt="9.24.0",ie=globalThis;function qr(){return eo(ie),ie}function eo(s){const e=s.__SENTRY__=s.__SENTRY__||{};return e.version=e.version||Xt,e[Xt]=e[Xt]||{}}function to(s,e,t=ie){const i=t.__SENTRY__=t.__SENTRY__||{},r=i[Xt]=i[Xt]||{};return r[s]||(r[s]=e())}const yN=Object.prototype.toString;function ja(s){switch(yN.call(s)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return bt(s,Error)}}function Vs(s,e){return yN.call(s)===`[object ${e}]`}function TN(s){return Vs(s,"ErrorEvent")}function GM(s){return Vs(s,"DOMError")}function $g(s){return Vs(s,"DOMException")}function ht(s){return Vs(s,"String")}function ya(s){return typeof s=="object"&&s!==null&&"__sentry_template_string__"in s&&"__sentry_template_values__"in s}function Ta(s){return s===null||ya(s)||typeof s!="object"&&typeof s!="function"}function _i(s){return Vs(s,"Object")}function so(s){return typeof Event<"u"&&bt(s,Event)}function Pg(s){return typeof Element<"u"&&bt(s,Element)}function Wg(s){return Vs(s,"RegExp")}function io(s){return!!(s!=null&&s.then&&typeof s.then=="function")}function Bg(s){return _i(s)&&"nativeEvent"in s&&"preventDefault"in s&&"stopPropagation"in s}function bt(s,e){try{return s instanceof e}catch{return!1}}function DN(s){return!!(typeof s=="object"&&s!==null&&(s.__isVue||s._isVue))}function Jg(s){return typeof Request<"u"&&bt(s,Request)}const Da=ie,Rg=80;function dN(s,e={}){if(!s)return"";try{let t=s;const i=5,r=[];let o=0,n=0;const a=" > ",c=a.length;let l;const N=Array.isArray(e)?e:e.keyAttrs,u=!Array.isArray(e)&&e.maxStringLength||Rg;for(;t&&o++1&&n+r.length*c+l.length>=u));)r.push(l),n+=l.length,t=t.parentNode;return r.reverse().join(a)}catch{return""}}function Fg(s,e){const t=s,i=[];if(!(t!=null&&t.tagName))return"";if(Da.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}i.push(t.tagName.toLowerCase());const r=e!=null&&e.length?e.filter(n=>t.getAttribute(n)).map(n=>[n,t.getAttribute(n)]):null;if(r!=null&&r.length)r.forEach(n=>{i.push(`[${n[0]}="${n[1]}"]`)});else{t.id&&i.push(`#${t.id}`);const n=t.className;if(n&&ht(n)){const a=n.split(/\s+/);for(const c of a)i.push(`.${c}`)}}const o=["aria-label","type","name","title","alt"];for(const n of o){const a=t.getAttribute(n);a&&i.push(`[${n}="${a}"]`)}return i.join("")}function da(){try{return Da.document.location.href}catch{return""}}function Gg(s){if(!Da.HTMLElement)return null;let e=s;const t=5;for(let i=0;i{const o=Yr[r];t[r]=e[r],e[r]=o});try{return s()}finally{i.forEach(r=>{e[r]=t[r]})}}function Vg(){let s=!1;const e={enable:()=>{s=!0},disable:()=>{s=!1},isEnabled:()=>s};return X?Ln.forEach(t=>{e[t]=(...i)=>{s&&Zs(()=>{ie.console[t](`${Hg}[${t}]:`,...i)})}}):Ln.forEach(t=>{e[t]=()=>{}}),e}const F=to("logger",Vg);function vr(s,e=0){return typeof s!="string"||e===0||s.length<=e?s:`${s.slice(0,e)}...`}function HM(s,e){if(!Array.isArray(s))return"";const t=[];for(let i=0;iZg(s,i,t))}function Ue(s,e,t){if(!(e in s))return;const i=s[e];if(typeof i!="function")return;const r=t(i);typeof r=="function"&&hN(r,i);try{s[e]=r}catch{X&&F.log(`Failed to replace method "${e}" in object`,s)}}function Kt(s,e,t){try{Object.defineProperty(s,e,{value:t,writable:!0,configurable:!0})}catch{X&&F.log(`Failed to add non-enumerable property "${e}" to object`,s)}}function hN(s,e){try{const t=e.prototype||{};s.prototype=e.prototype=t,Kt(s,"__sentry_original__",e)}catch{}}function ha(s){return s.__sentry_original__}function zN(s){if(ja(s))return{message:s.message,name:s.name,stack:s.stack,...ZM(s)};if(so(s)){const e={type:s.type,target:VM(s.target),currentTarget:VM(s.currentTarget),...ZM(s)};return typeof CustomEvent<"u"&&bt(s,CustomEvent)&&(e.detail=s.detail),e}else return s}function VM(s){try{return Pg(s)?dN(s):Object.prototype.toString.call(s)}catch{return""}}function ZM(s){if(typeof s=="object"&&s!==null){const e={};for(const t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t]=s[t]);return e}else return{}}function Xg(s,e=40){const t=Object.keys(zN(s));t.sort();const i=t[0];if(!i)return"[object has no keys]";if(i.length>=e)return vr(i,e);for(let r=t.length;r>0;r--){const o=t.slice(0,r).join(", ");if(!(o.length>e))return r===t.length?o:vr(o,e)}return""}function Kg(){const s=ie;return s.crypto||s.msCrypto}function Je(s=Kg()){let e=()=>Math.random()*16;try{if(s!=null&&s.randomUUID)return s.randomUUID().replace(/-/g,"");s!=null&&s.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return s.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function wN(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)==null?void 0:t[0]}function Vt(s){const{message:e,event_id:t}=s;if(e)return e;const i=wN(s);return i?i.type&&i.value?`${i.type}: ${i.value}`:i.type||i.value||t||"":t||""}function gn(s,e,t){const i=s.exception=s.exception||{},r=i.values=i.values||[],o=r[0]=r[0]||{};o.value||(o.value=e||""),o.type||(o.type="Error")}function Rs(s,e){const t=wN(s);if(!t)return;const i={type:"generic",handled:!0},r=t.mechanism;if(t.mechanism={...i,...r,...e},e&&"data"in e){const o={...r==null?void 0:r.data,...e.data};t.mechanism.data=o}}function XM(s){if(qg(s))return!0;try{Kt(s,"__sentry_captured__",!0)}catch{}return!1}function qg(s){try{return s.__sentry_captured__}catch{}}const CN=1e3;function Wi(){return Date.now()/CN}function ej(){const{performance:s}=ie;if(!(s!=null&&s.now))return Wi;const e=Date.now()-s.now(),t=s.timeOrigin==null?e:s.timeOrigin;return()=>(t+s.now())/CN}const zt=ej();function tj(s){const e=zt(),t={sid:Je(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>ij(t)};return s&&Fs(t,s),t}function Fs(s,e={}){if(e.user&&(!s.ipAddress&&e.user.ip_address&&(s.ipAddress=e.user.ip_address),!s.did&&!e.did&&(s.did=e.user.id||e.user.email||e.user.username)),s.timestamp=e.timestamp||zt(),e.abnormal_mechanism&&(s.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(s.ignoreDuration=e.ignoreDuration),e.sid&&(s.sid=e.sid.length===32?e.sid:Je()),e.init!==void 0&&(s.init=e.init),!s.did&&e.did&&(s.did=`${e.did}`),typeof e.started=="number"&&(s.started=e.started),s.ignoreDuration)s.duration=void 0;else if(typeof e.duration=="number")s.duration=e.duration;else{const t=s.timestamp-s.started;s.duration=t>=0?t:0}e.release&&(s.release=e.release),e.environment&&(s.environment=e.environment),!s.ipAddress&&e.ipAddress&&(s.ipAddress=e.ipAddress),!s.userAgent&&e.userAgent&&(s.userAgent=e.userAgent),typeof e.errors=="number"&&(s.errors=e.errors),e.status&&(s.status=e.status)}function sj(s,e){let t={};s.status==="ok"&&(t={status:"exited"}),Fs(s,t)}function ij(s){return{sid:`${s.sid}`,init:s.init,started:new Date(s.started*1e3).toISOString(),timestamp:new Date(s.timestamp*1e3).toISOString(),status:s.status,errors:s.errors,did:typeof s.did=="number"||typeof s.did=="string"?`${s.did}`:void 0,duration:s.duration,abnormal_mechanism:s.abnormal_mechanism,attrs:{release:s.release,environment:s.environment,ip_address:s.ipAddress,user_agent:s.userAgent}}}function Bi(s,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(s&&Object.keys(e).length===0)return s;const i={...s};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=Bi(i[r],e[r],t-1));return i}const jn="_sentrySpan";function KM(s,e){e?Kt(s,jn,e):delete s[jn]}function qM(s){return s[jn]}function ec(){return Je()}function IN(){return Je().substring(16)}const rj=100;class wt{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:ec(),sampleRand:Math.random()}}clone(){const e=new wt;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,KM(e,qM(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Fs(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,i=t instanceof wt?t.getScopeData():_i(t)?e:void 0,{tags:r,extra:o,user:n,contexts:a,level:c,fingerprint:l=[],propagationContext:N}=i||{};return this._tags={...this._tags,...r},this._extra={...this._extra,...o},this._contexts={...this._contexts,...a},n&&Object.keys(n).length&&(this._user=n),c&&(this._level=c),l.length&&(this._fingerprint=l),N&&(this._propagationContext=N),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,KM(this,void 0),this._attachments=[],this.setPropagationContext({traceId:ec(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var o;const i=typeof t=="number"?t:rj;if(i<=0)return this;const r={timestamp:Wi(),...e,message:e.message?vr(e.message,2048):e.message};return this._breadcrumbs.push(r),this._breadcrumbs.length>i&&(this._breadcrumbs=this._breadcrumbs.slice(-i),(o=this._client)==null||o.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:qM(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=Bi(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const i=(t==null?void 0:t.event_id)||Je();if(!this._client)return F.warn("No client configured on scope - will not capture exception!"),i;const r=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:i},this),i}captureMessage(e,t,i){const r=(i==null?void 0:i.event_id)||Je();if(!this._client)return F.warn("No client configured on scope - will not capture message!"),r;const o=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:o,...i,event_id:r},this),r}captureEvent(e,t){const i=(t==null?void 0:t.event_id)||Je();return this._client?(this._client.captureEvent(e,{...t,event_id:i},this),i):(F.warn("No client configured on scope - will not capture event!"),i)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function oj(){return to("defaultCurrentScope",()=>new wt)}function nj(){return to("defaultIsolationScope",()=>new wt)}class aj{constructor(e,t){let i;e?i=e:i=new wt;let r;t?r=t:r=new wt,this._stack=[{scope:i}],this._isolationScope=r}withScope(e){const t=this._pushScope();let i;try{i=e(t)}catch(r){throw this._popScope(),r}return io(i)?i.then(r=>(this._popScope(),r),r=>{throw this._popScope(),r}):(this._popScope(),i)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Gs(){const s=qr(),e=eo(s);return e.stack=e.stack||new aj(oj(),nj())}function Mj(s){return Gs().withScope(s)}function cj(s,e){const t=Gs();return t.withScope(()=>(t.getStackTop().scope=s,e(s)))}function tc(s){return Gs().withScope(()=>s(Gs().getIsolationScope()))}function uj(){return{withIsolationScope:tc,withScope:Mj,withSetScope:cj,withSetIsolationScope:(s,e)=>tc(e),getCurrentScope:()=>Gs().getScope(),getIsolationScope:()=>Gs().getIsolationScope()}}function za(s){const e=eo(s);return e.acs?e.acs:uj()}function Ct(){const s=qr();return za(s).getCurrentScope()}function Ji(){const s=qr();return za(s).getIsolationScope()}function lj(){return to("globalScope",()=>new wt)}function Nj(...s){const e=qr(),t=za(e);if(s.length===2){const[i,r]=s;return i?t.withSetScope(i,r):t.withScope(r)}return t.withScope(s[0])}function Ee(){return Ct().getClient()}function Lj(s){const e=s.getPropagationContext(),{traceId:t,parentSpanId:i,propagationSpanId:r}=e,o={trace_id:t,span_id:r||IN()};return i&&(o.parent_span_id=i),o}const gj="sentry.source",jj="sentry.sample_rate",yj="sentry.previous_trace_sample_rate",Tj="sentry.op",Dj="sentry.origin",pN="sentry.profile_id",AN="sentry.exclusive_time",dj=0,hj=1,zj="_sentryScope",wj="_sentryIsolationScope";function mN(s){return{scope:s[zj],isolationScope:s[wj]}}function Cj(s){if(typeof s=="boolean")return Number(s);const e=typeof s=="string"?parseFloat(s):s;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Ij="sentry-",pj=/^sentry-/;function Aj(s){const e=mj(s);if(!e)return;const t=Object.entries(e).reduce((i,[r,o])=>{if(r.match(pj)){const n=r.slice(Ij.length);i[n]=o}return i},{});if(Object.keys(t).length>0)return t}function mj(s){if(!(!s||!ht(s)&&!Array.isArray(s)))return Array.isArray(s)?s.reduce((e,t)=>{const i=sc(t);return Object.entries(i).forEach(([r,o])=>{e[r]=o}),e},{}):sc(s)}function sc(s){return s.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,i])=>(t&&i&&(e[t]=i),e),{})}const ON=1;let ic=!1;function Oj(s){const{spanId:e,traceId:t,isRemote:i}=s.spanContext(),r=i?e:wa(s).parent_span_id,o=mN(s).scope,n=i?(o==null?void 0:o.getPropagationContext().propagationSpanId)||IN():e;return{parent_span_id:r,span_id:n,trace_id:t}}function Ej(s){if(s&&s.length>0)return s.map(({context:{spanId:e,traceId:t,traceFlags:i,...r},attributes:o})=>({span_id:e,trace_id:t,sampled:i===ON,attributes:o,...r}))}function rc(s){return typeof s=="number"?oc(s):Array.isArray(s)?s[0]+s[1]/1e9:s instanceof Date?oc(s.getTime()):zt()}function oc(s){return s>9999999999?s/1e3:s}function wa(s){var i;if(xj(s))return s.getSpanJSON();const{spanId:e,traceId:t}=s.spanContext();if(fj(s)){const{attributes:r,startTime:o,name:n,endTime:a,status:c,links:l}=s,N="parentSpanId"in s?s.parentSpanId:"parentSpanContext"in s?(i=s.parentSpanContext)==null?void 0:i.spanId:void 0;return{span_id:e,trace_id:t,data:r,description:n,parent_span_id:N,start_timestamp:rc(o),timestamp:rc(a)||void 0,status:Sj(c),op:r[Tj],origin:r[Dj],links:Ej(l)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function fj(s){const e=s;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function xj(s){return typeof s.getSpanJSON=="function"}function _j(s){const{traceFlags:e}=s.spanContext();return e===ON}function Sj(s){if(!(!s||s.code===dj))return s.code===hj?"ok":s.message||"unknown_error"}const kj="_sentryRootSpan";function EN(s){return s[kj]||s}function nc(){ic||(Zs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),ic=!0)}const fN=50,qt="?",ac=/\(error: (.*)\)/,Mc=/captureMessage|captureException/;function xN(...s){const e=s.sort((t,i)=>t[0]-i[0]).map(t=>t[1]);return(t,i=0,r=0)=>{const o=[],n=t.split(` +`);for(let a=i;a1024)continue;const l=ac.test(c)?c.replace(ac,"$1"):c;if(!l.match(/\S*Error: /)){for(const N of e){const u=N(l);if(u){o.push(u);break}}if(o.length>=fN+r)break}}return vj(o.slice(r))}}function Yj(s){return Array.isArray(s)?xN(...s):s}function vj(s){if(!s.length)return[];const e=Array.from(s);return/sentryWrapped/.test(nr(e).function||"")&&e.pop(),e.reverse(),Mc.test(nr(e).function||"")&&(e.pop(),Mc.test(nr(e).function||"")&&e.pop()),e.slice(0,fN).map(t=>({...t,filename:t.filename||nr(e).filename,function:t.function||qt}))}function nr(s){return s[s.length-1]||{}}const Eo="";function Qt(s){try{return!s||typeof s!="function"?Eo:s.name||Eo}catch{return Eo}}function cc(s){const e=s.exception;if(e){const t=[];try{return e.values.forEach(i=>{i.stacktrace.frames&&t.push(...i.stacktrace.frames)}),t}catch{return}}}const Ar={},uc={};function rs(s,e){Ar[s]=Ar[s]||[],Ar[s].push(e)}function os(s,e){if(!uc[s]){uc[s]=!0;try{e()}catch(t){X&&F.error(`Error while instrumenting ${s}`,t)}}}function Ke(s,e){const t=s&&Ar[s];if(t)for(const i of t)try{i(e)}catch(r){X&&F.error(`Error while triggering instrumentation handler. +Type: ${s} +Name: ${Qt(i)} +Error:`,r)}}let fo=null;function bj(s){const e="error";rs(e,s),os(e,Qj)}function Qj(){fo=ie.onerror,ie.onerror=function(s,e,t,i,r){return Ke("error",{column:i,error:r,line:t,msg:s,url:e}),fo?fo.apply(this,arguments):!1},ie.onerror.__SENTRY_INSTRUMENTED__=!0}let xo=null;function Uj(s){const e="unhandledrejection";rs(e,s),os(e,$j)}function $j(){xo=ie.onunhandledrejection,ie.onunhandledrejection=function(s){return Ke("unhandledrejection",s),xo?xo.apply(this,arguments):!0},ie.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Pj(s){var t;if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;const e=s||((t=Ee())==null?void 0:t.getOptions());return!!e&&(e.tracesSampleRate!=null||!!e.tracesSampler)}const Ca="production",Wj=/^o(\d+)\./,Bj=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Jj(s){return s==="http"||s==="https"}function oo(s,e=!1){const{host:t,path:i,pass:r,port:o,projectId:n,protocol:a,publicKey:c}=s;return`${a}://${c}${e&&r?`:${r}`:""}@${t}${o?`:${o}`:""}/${i&&`${i}/`}${n}`}function Rj(s){const e=Bj.exec(s);if(!e){Zs(()=>{console.error(`Invalid Sentry Dsn: ${s}`)});return}const[t,i,r="",o="",n="",a=""]=e.slice(1);let c="",l=a;const N=l.split("/");if(N.length>1&&(c=N.slice(0,-1).join("/"),l=N.pop()),l){const u=l.match(/^\d+/);u&&(l=u[0])}return _N({host:o,pass:r,path:c,projectId:l,port:n,protocol:t,publicKey:i})}function _N(s){return{protocol:s.protocol,publicKey:s.publicKey||"",pass:s.pass||"",host:s.host,port:s.port||"",path:s.path||"",projectId:s.projectId}}function Fj(s){if(!X)return!0;const{port:e,projectId:t,protocol:i}=s;return["protocol","publicKey","host","projectId"].find(n=>s[n]?!1:(F.error(`Invalid Sentry Dsn: ${n} missing`),!0))?!1:t.match(/^\d+$/)?Jj(i)?e&&isNaN(parseInt(e,10))?(F.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(F.error(`Invalid Sentry Dsn: Invalid protocol ${i}`),!1):(F.error(`Invalid Sentry Dsn: Invalid projectId ${t}`),!1)}function Gj(s){const e=s.match(Wj);return e==null?void 0:e[1]}function Hj(s){const e=typeof s=="string"?Rj(s):_N(s);if(!(!e||!Fj(e)))return e}const Vj="_frozenDsc";function SN(s,e){const t=e.getOptions(),{publicKey:i,host:r}=e.getDsn()||{};let o;t.orgId?o=String(t.orgId):r&&(o=Gj(r));const n={environment:t.environment||Ca,release:t.release,public_key:i,trace_id:s,org_id:o};return e.emit("createDsc",n),n}function Zj(s,e){const t=e.getPropagationContext();return t.dsc||SN(t.traceId,s)}function Xj(s){var y;const e=Ee();if(!e)return{};const t=EN(s),i=wa(t),r=i.data,o=t.spanContext().traceState,n=(o==null?void 0:o.get("sentry.sample_rate"))??r[jj]??r[yj];function a(T){return(typeof n=="number"||typeof n=="string")&&(T.sample_rate=`${n}`),T}const c=t[Vj];if(c)return a(c);const l=o==null?void 0:o.get("sentry.dsc"),N=l&&Aj(l);if(N)return a(N);const u=SN(s.spanContext().traceId,e),L=r[gj],g=i.description;return L!=="url"&&g&&(u.transaction=g),Pj()&&(u.sampled=String(_j(t)),u.sample_rand=(o==null?void 0:o.get("sentry.sample_rand"))??((y=mN(t).scope)==null?void 0:y.getPropagationContext().sampleRand.toString())),a(u),e.emit("createDsc",u,t),u}function Dt(s,e=100,t=1/0){try{return yn("",s,e,t)}catch(i){return{ERROR:`**non-serializable** (${i})`}}}function kN(s,e=3,t=100*1024){const i=Dt(s,e);return ty(i)>t?kN(s,e-1,t):i}function yn(s,e,t=1/0,i=1/0,r=sy()){const[o,n]=r;if(e==null||["boolean","string"].includes(typeof e)||typeof e=="number"&&Number.isFinite(e))return e;const a=Kj(s,e);if(!a.startsWith("[object "))return a;if(e.__sentry_skip_normalization__)return e;const c=typeof e.__sentry_override_normalization_depth__=="number"?e.__sentry_override_normalization_depth__:t;if(c===0)return a.replace("object ","");if(o(e))return"[Circular ~]";const l=e;if(l&&typeof l.toJSON=="function")try{const g=l.toJSON();return yn("",g,c-1,i,r)}catch{}const N=Array.isArray(e)?[]:{};let u=0;const L=zN(e);for(const g in L){if(!Object.prototype.hasOwnProperty.call(L,g))continue;if(u>=i){N[g]="[MaxProperties ~]";break}const y=L[g];N[g]=yn(g,y,c-1,i,r),u++}return n(e),N}function Kj(s,e){try{if(s==="domain"&&e&&typeof e=="object"&&e._events)return"[Domain]";if(s==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&e===global)return"[Global]";if(typeof window<"u"&&e===window)return"[Window]";if(typeof document<"u"&&e===document)return"[Document]";if(DN(e))return"[VueViewModel]";if(Bg(e))return"[SyntheticEvent]";if(typeof e=="number"&&!Number.isFinite(e))return`[${e}]`;if(typeof e=="function")return`[Function: ${Qt(e)}]`;if(typeof e=="symbol")return`[${String(e)}]`;if(typeof e=="bigint")return`[BigInt: ${String(e)}]`;const t=qj(e);return/^HTML(\w*)Element$/.test(t)?`[HTMLElement: ${t}]`:`[object ${t}]`}catch(t){return`**non-serializable** (${t})`}}function qj(s){const e=Object.getPrototypeOf(s);return e!=null&&e.constructor?e.constructor.name:"null prototype"}function ey(s){return~-encodeURI(s).split(/%..|./).length}function ty(s){return ey(JSON.stringify(s))}function sy(){const s=new WeakSet;function e(i){return s.has(i)?!0:(s.add(i),!1)}function t(i){s.delete(i)}return[e,t]}function Ri(s,e=[]){return[s,e]}function iy(s,e){const[t,i]=s;return[t,[...i,e]]}function lc(s,e){const t=s[1];for(const i of t){const r=i[0].type;if(e(i,r))return!0}return!1}function Tn(s){const e=eo(ie);return e.encodePolyfill?e.encodePolyfill(s):new TextEncoder().encode(s)}function ry(s){const[e,t]=s;let i=JSON.stringify(e);function r(o){typeof i=="string"?i=typeof o=="string"?i+o:[Tn(i),o]:i.push(typeof o=="string"?Tn(o):o)}for(const o of t){const[n,a]=o;if(r(` +${JSON.stringify(n)} +`),typeof a=="string"||a instanceof Uint8Array)r(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(Dt(a))}r(c)}}return typeof i=="string"?i:oy(i)}function oy(s){const e=s.reduce((r,o)=>r+o.length,0),t=new Uint8Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function ny(s){const e=typeof s.data=="string"?Tn(s.data):s.data;return[{type:"attachment",length:e.length,filename:s.filename,content_type:s.contentType,attachment_type:s.attachmentType},e]}const ay={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item"};function Nc(s){return ay[s]}function YN(s){if(!(s!=null&&s.sdk))return;const{name:e,version:t}=s.sdk;return{name:e,version:t}}function My(s,e,t,i){var o;const r=(o=s.sdkProcessingMetadata)==null?void 0:o.dynamicSamplingContext;return{event_id:s.event_id,sent_at:new Date().toISOString(),...e&&{sdk:e},...!!t&&i&&{dsn:oo(i)},...r&&{trace:r}}}function cy(s,e){return e&&(s.sdk=s.sdk||{},s.sdk.name=s.sdk.name||e.name,s.sdk.version=s.sdk.version||e.version,s.sdk.integrations=[...s.sdk.integrations||[],...e.integrations||[]],s.sdk.packages=[...s.sdk.packages||[],...e.packages||[]]),s}function uy(s,e,t,i){const r=YN(t),o={sent_at:new Date().toISOString(),...r&&{sdk:r},...!!i&&e&&{dsn:oo(e)}},n="aggregates"in s?[{type:"sessions"},s]:[{type:"session"},s.toJSON()];return Ri(o,[n])}function ly(s,e,t,i){const r=YN(t),o=s.type&&s.type!=="replay_event"?s.type:"event";cy(s,t==null?void 0:t.sdk);const n=My(s,r,i,e);return delete s.sdkProcessingMetadata,Ri(n,[[{type:o},s]])}var dt;(function(s){s[s.PENDING=0]="PENDING";const t=1;s[s.RESOLVED=t]="RESOLVED";const i=2;s[s.REJECTED=i]="REJECTED"})(dt||(dt={}));function es(s){return new Ut(e=>{e(s)})}function br(s){return new Ut((e,t)=>{t(s)})}class Ut{constructor(e){this._state=dt.PENDING,this._handlers=[],this._runExecutor(e)}then(e,t){return new Ut((i,r)=>{this._handlers.push([!1,o=>{if(!e)i(o);else try{i(e(o))}catch(n){r(n)}},o=>{if(!t)r(o);else try{i(t(o))}catch(n){r(n)}}]),this._executeHandlers()})}catch(e){return this.then(t=>t,e)}finally(e){return new Ut((t,i)=>{let r,o;return this.then(n=>{o=!1,r=n,e&&e()},n=>{o=!0,r=n,e&&e()}).then(()=>{if(o){i(r);return}t(r)})})}_executeHandlers(){if(this._state===dt.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach(t=>{t[0]||(this._state===dt.RESOLVED&&t[1](this._value),this._state===dt.REJECTED&&t[2](this._value),t[0]=!0)})}_runExecutor(e){const t=(o,n)=>{if(this._state===dt.PENDING){if(io(n)){n.then(i,r);return}this._state=o,this._value=n,this._executeHandlers()}},i=o=>{t(dt.RESOLVED,o)},r=o=>{t(dt.REJECTED,o)};try{e(i,r)}catch(o){r(o)}}}function Dn(s,e,t,i=0){return new Ut((r,o)=>{const n=s[i];if(e===null||typeof n!="function")r(e);else{const a=n({...e},t);X&&n.id&&a===null&&F.log(`Event processor "${n.id}" dropped event`),io(a)?a.then(c=>Dn(s,c,t,i+1).then(r)).then(null,o):Dn(s,a,t,i+1).then(r).then(null,o)}})}let ar,Lc,Mr;function Ny(s){const e=ie._sentryDebugIds;if(!e)return{};const t=Object.keys(e);return Mr&&t.length===Lc||(Lc=t.length,Mr=t.reduce((i,r)=>{ar||(ar={});const o=ar[r];if(o)i[o[0]]=o[1];else{const n=s(r);for(let a=n.length-1;a>=0;a--){const c=n[a],l=c==null?void 0:c.filename,N=e[r];if(l&&N){i[l]=N,ar[r]=[l,N];break}}}return i},{})),Mr}function Ly(s,e){const{fingerprint:t,span:i,breadcrumbs:r,sdkProcessingMetadata:o}=e;gy(s,e),i&&Ty(s,i),Dy(s,t),jy(s,r),yy(s,o)}function gc(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,sdkProcessingMetadata:a,breadcrumbs:c,fingerprint:l,eventProcessors:N,attachments:u,propagationContext:L,transactionName:g,span:y}=e;cr(s,"extra",t),cr(s,"tags",i),cr(s,"user",r),cr(s,"contexts",o),s.sdkProcessingMetadata=Bi(s.sdkProcessingMetadata,a,2),n&&(s.level=n),g&&(s.transactionName=g),y&&(s.span=y),c.length&&(s.breadcrumbs=[...s.breadcrumbs,...c]),l.length&&(s.fingerprint=[...s.fingerprint,...l]),N.length&&(s.eventProcessors=[...s.eventProcessors,...N]),u.length&&(s.attachments=[...s.attachments,...u]),s.propagationContext={...s.propagationContext,...L}}function cr(s,e,t){s[e]=Bi(s[e],t,1)}function gy(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,transactionName:a}=e;Object.keys(t).length&&(s.extra={...t,...s.extra}),Object.keys(i).length&&(s.tags={...i,...s.tags}),Object.keys(r).length&&(s.user={...r,...s.user}),Object.keys(o).length&&(s.contexts={...o,...s.contexts}),n&&(s.level=n),a&&s.type!=="transaction"&&(s.transaction=a)}function jy(s,e){const t=[...s.breadcrumbs||[],...e];s.breadcrumbs=t.length?t:void 0}function yy(s,e){s.sdkProcessingMetadata={...s.sdkProcessingMetadata,...e}}function Ty(s,e){s.contexts={trace:Oj(e),...s.contexts},s.sdkProcessingMetadata={dynamicSamplingContext:Xj(e),...s.sdkProcessingMetadata};const t=EN(e),i=wa(t).description;i&&!s.transaction&&s.type==="transaction"&&(s.transaction=i)}function Dy(s,e){s.fingerprint=s.fingerprint?Array.isArray(s.fingerprint)?s.fingerprint:[s.fingerprint]:[],e&&(s.fingerprint=s.fingerprint.concat(e)),s.fingerprint.length||delete s.fingerprint}function dy(s,e,t,i,r,o){const{normalizeDepth:n=3,normalizeMaxBreadth:a=1e3}=s,c={...e,event_id:e.event_id||t.event_id||Je(),timestamp:e.timestamp||Wi()},l=t.integrations||s.integrations.map(D=>D.name);hy(c,s),Cy(c,l),r&&r.emit("applyFrameMetadata",e),e.type===void 0&&zy(c,s.stackParser);const N=py(i,t.captureContext);t.mechanism&&Rs(c,t.mechanism);const u=r?r.getEventProcessors():[],L=lj().getScopeData();if(o){const D=o.getScopeData();gc(L,D)}if(N){const D=N.getScopeData();gc(L,D)}const g=[...t.attachments||[],...L.attachments];g.length&&(t.attachments=g),Ly(c,L);const y=[...u,...L.eventProcessors];return Dn(y,c,t).then(D=>(D&&wy(D),typeof n=="number"&&n>0?Iy(D,n,a):D))}function hy(s,e){const{environment:t,release:i,dist:r,maxValueLength:o=250}=e;s.environment=s.environment||t||Ca,!s.release&&i&&(s.release=i),!s.dist&&r&&(s.dist=r);const n=s.request;n!=null&&n.url&&(n.url=vr(n.url,o))}function zy(s,e){var i,r;const t=Ny(e);(r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.filename&&(c.debug_id=t[c.filename])})})}function wy(s){var i,r;const e={};if((r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.debug_id&&(c.abs_path?e[c.abs_path]=c.debug_id:c.filename&&(e[c.filename]=c.debug_id),delete c.debug_id)})}),Object.keys(e).length===0)return;s.debug_meta=s.debug_meta||{},s.debug_meta.images=s.debug_meta.images||[];const t=s.debug_meta.images;Object.entries(e).forEach(([o,n])=>{t.push({type:"sourcemap",code_file:o,debug_id:n})})}function Cy(s,e){e.length>0&&(s.sdk=s.sdk||{},s.sdk.integrations=[...s.sdk.integrations||[],...e])}function Iy(s,e,t){var r,o;if(!s)return null;const i={...s,...s.breadcrumbs&&{breadcrumbs:s.breadcrumbs.map(n=>({...n,...n.data&&{data:Dt(n.data,e,t)}}))},...s.user&&{user:Dt(s.user,e,t)},...s.contexts&&{contexts:Dt(s.contexts,e,t)},...s.extra&&{extra:Dt(s.extra,e,t)}};return(r=s.contexts)!=null&&r.trace&&i.contexts&&(i.contexts.trace=s.contexts.trace,s.contexts.trace.data&&(i.contexts.trace.data=Dt(s.contexts.trace.data,e,t))),s.spans&&(i.spans=s.spans.map(n=>({...n,...n.data&&{data:Dt(n.data,e,t)}}))),(o=s.contexts)!=null&&o.flags&&i.contexts&&(i.contexts.flags=Dt(s.contexts.flags,3,t)),i}function py(s,e){if(!e)return s;const t=s?s.clone():new wt;return t.update(e),t}function Ay(s,e){return Ct().captureException(s,void 0)}function vN(s,e){return Ct().captureEvent(s,e)}function jc(s){const e=Ji(),t=Ct(),{userAgent:i}=ie.navigator||{},r=tj({user:t.getUser()||e.getUser(),...i&&{userAgent:i},...s}),o=e.getSession();return(o==null?void 0:o.status)==="ok"&&Fs(o,{status:"exited"}),bN(),e.setSession(r),r}function bN(){const s=Ji(),t=Ct().getSession()||s.getSession();t&&sj(t),QN(),s.setSession()}function QN(){const s=Ji(),e=Ee(),t=s.getSession();t&&e&&e.captureSession(t)}function yc(s=!1){if(s){bN();return}QN()}const my="7";function Oy(s){const e=s.protocol?`${s.protocol}:`:"",t=s.port?`:${s.port}`:"";return`${e}//${s.host}${t}${s.path?`/${s.path}`:""}/api/`}function Ey(s){return`${Oy(s)}${s.projectId}/envelope/`}function fy(s,e){const t={sentry_version:my};return s.publicKey&&(t.sentry_key=s.publicKey),e&&(t.sentry_client=`${e.name}/${e.version}`),new URLSearchParams(t).toString()}function xy(s,e,t){return e||`${Ey(s)}?${fy(s,t)}`}const Tc=[];function _y(s){const e={};return s.forEach(t=>{const{name:i}=t,r=e[i];r&&!r.isDefaultInstance&&t.isDefaultInstance||(e[i]=t)}),Object.values(e)}function Sy(s){const e=s.defaultIntegrations||[],t=s.integrations;e.forEach(r=>{r.isDefaultInstance=!0});let i;if(Array.isArray(t))i=[...e,...t];else if(typeof t=="function"){const r=t(e);i=Array.isArray(r)?r:[r]}else i=e;return _y(i)}function ky(s,e){const t={};return e.forEach(i=>{i&&UN(s,i,t)}),t}function Dc(s,e){for(const t of e)t!=null&&t.afterAllSetup&&t.afterAllSetup(s)}function UN(s,e,t){if(t[e.name]){X&&F.log(`Integration skipped because it was already installed: ${e.name}`);return}if(t[e.name]=e,Tc.indexOf(e.name)===-1&&typeof e.setupOnce=="function"&&(e.setupOnce(),Tc.push(e.name)),e.setup&&typeof e.setup=="function"&&e.setup(s),typeof e.preprocessEvent=="function"){const i=e.preprocessEvent.bind(e);s.on("preprocessEvent",(r,o)=>i(r,o,s))}if(typeof e.processEvent=="function"){const i=e.processEvent.bind(e),r=Object.assign((o,n)=>i(o,n,s),{id:e.name});s.addEventProcessor(r)}X&&F.log(`Integration installed: ${e.name}`)}function $N(s){const e=[];s.message&&e.push(s.message);try{const t=s.exception.values[s.exception.values.length-1];t!=null&&t.value&&(e.push(t.value),t.type&&e.push(`${t.type}: ${t.value}`))}catch{}return e}function Yy(s){var c;const{trace_id:e,parent_span_id:t,span_id:i,status:r,origin:o,data:n,op:a}=((c=s.contexts)==null?void 0:c.trace)??{};return{data:n??{},description:s.transaction,op:a,parent_span_id:t,span_id:i??"",start_timestamp:s.start_timestamp??0,status:r,timestamp:s.timestamp,trace_id:e??"",origin:o,profile_id:n==null?void 0:n[pN],exclusive_time:n==null?void 0:n[AN],measurements:s.measurements,is_segment:!0}}function vy(s){return{type:"transaction",timestamp:s.timestamp,start_timestamp:s.start_timestamp,transaction:s.description,contexts:{trace:{trace_id:s.trace_id,span_id:s.span_id,parent_span_id:s.parent_span_id,op:s.op,status:s.status,origin:s.origin,data:{...s.data,...s.profile_id&&{[pN]:s.profile_id},...s.exclusive_time&&{[AN]:s.exclusive_time}}}},measurements:s.measurements}}function by(s,e,t){const i=[{type:"client_report"},{timestamp:Wi(),discarded_events:s}];return Ri(e?{dsn:e}:{},[i])}const dc="Not capturing exception because it's already been captured.",hc="Discarded session because of missing or non-string release",PN=Symbol.for("SentryInternalError"),WN=Symbol.for("SentryDoNotSendEventError");function mr(s){return{message:s,[PN]:!0}}function _o(s){return{message:s,[WN]:!0}}function zc(s){return!!s&&typeof s=="object"&&PN in s}function wc(s){return!!s&&typeof s=="object"&&WN in s}class Qy{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=Hj(e.dsn):X&&F.warn("No DSN provided, client will not send events."),this._dsn){const t=xy(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,i){const r=Je();if(XM(e))return X&&F.log(dc),r;const o={event_id:r,...t};return this._process(this.eventFromException(e,o).then(n=>this._captureEvent(n,o,i))),o.event_id}captureMessage(e,t,i,r){const o={event_id:Je(),...i},n=ya(e)?e:String(e),a=Ta(e)?this.eventFromMessage(n,t,o):this.eventFromException(e,o);return this._process(a.then(c=>this._captureEvent(c,o,r))),o.event_id}captureEvent(e,t,i){const r=Je();if(t!=null&&t.originalException&&XM(t.originalException))return X&&F.log(dc),r;const o={event_id:r,...t},n=e.sdkProcessingMetadata||{},a=n.capturedSpanScope,c=n.capturedSpanIsolationScope;return this._process(this._captureEvent(e,o,a||i,c)),o.event_id}captureSession(e){this.sendSession(e),Fs(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit("flush"),this._isClientDoneProcessing(e).then(i=>t.flush(e).then(r=>i&&r))):es(!0)}close(e){return this.flush(e).then(t=>(this.getOptions().enabled=!1,this.emit("close"),t))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];UN(this,e,this._integrations),t||Dc(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let i=ly(e,this._dsn,this._options._metadata,this._options.tunnel);for(const o of t.attachments||[])i=iy(i,ny(o));const r=this.sendEnvelope(i);r&&r.then(o=>this.emit("afterSendEvent",e,o),null)}sendSession(e){const{release:t,environment:i=Ca}=this._options;if("aggregates"in e){const o=e.attrs||{};if(!o.release&&!t){X&&F.warn(hc);return}o.release=o.release||t,o.environment=o.environment||i,e.attrs=o}else{if(!e.release&&!t){X&&F.warn(hc);return}e.release=e.release||t,e.environment=e.environment||i}this.emit("beforeSendSession",e);const r=uy(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(r)}recordDroppedEvent(e,t,i=1){if(this._options.sendClientReports){const r=`${e}:${t}`;X&&F.log(`Recording outcome: "${r}"${i>1?` (${i} times)`:""}`),this._outcomes[r]=(this._outcomes[r]||0)+i}}on(e,t){const i=this._hooks[e]=this._hooks[e]||[];return i.push(t),()=>{const r=i.indexOf(t);r>-1&&i.splice(r,1)}}emit(e,...t){const i=this._hooks[e];i&&i.forEach(r=>r(...t))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,t=>(X&&F.error("Error while sending envelope:",t),t)):(X&&F.error("Transport disabled"),es({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=ky(this,e),Dc(this,e)}_updateSessionFromEvent(e,t){var c;let i=t.level==="fatal",r=!1;const o=(c=t.exception)==null?void 0:c.values;if(o){r=!0;for(const l of o){const N=l.mechanism;if((N==null?void 0:N.handled)===!1){i=!0;break}}}const n=e.status==="ok";(n&&e.errors===0||n&&i)&&(Fs(e,{...i&&{status:"crashed"},errors:e.errors||Number(r||i)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Ut(t=>{let i=0;const r=1,o=setInterval(()=>{this._numProcessing==0?(clearInterval(o),t(!0)):(i+=r,e&&i>=e&&(clearInterval(o),t(!1)))},r)})}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,i,r){const o=this.getOptions(),n=Object.keys(this._integrations);return!t.integrations&&(n!=null&&n.length)&&(t.integrations=n),this.emit("preprocessEvent",e,t),e.type||r.setLastEventId(e.event_id||t.event_id),dy(o,e,t,i,this,r).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,t),a.contexts={trace:Lj(i),...a.contexts};const c=Zj(this,i);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(e,t={},i=Ct(),r=Ji()){return X&&dn(e)&&F.log(`Captured error event \`${$N(e)[0]||""}\``),this._processEvent(e,t,i,r).then(o=>o.event_id,o=>{X&&(wc(o)?F.log(o.message):zc(o)?F.warn(o.message):F.warn(o))})}_processEvent(e,t,i,r){const o=this.getOptions(),{sampleRate:n}=o,a=BN(e),c=dn(e),l=e.type||"error",N=`before send for type \`${l}\``,u=typeof n>"u"?void 0:Cj(n);if(c&&typeof u=="number"&&Math.random()>u)return this.recordDroppedEvent("sample_rate","error"),br(_o(`Discarding event because it's not included in the random sample (sampling rate = ${n})`));const L=l==="replay_event"?"replay":l;return this._prepareEvent(e,t,i,r).then(g=>{if(g===null)throw this.recordDroppedEvent("event_processor",L),_o("An event processor returned `null`, will not send event.");if(t.data&&t.data.__sentry__===!0)return g;const T=$y(this,o,g,t);return Uy(T,N)}).then(g=>{var D;if(g===null){if(this.recordDroppedEvent("before_send",L),a){const p=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",p)}throw _o(`${N} returned \`null\`, will not send event.`)}const y=i.getSession()||r.getSession();if(c&&y&&this._updateSessionFromEvent(y,g),a){const z=((D=g.sdkProcessingMetadata)==null?void 0:D.spanCountBeforeProcessing)||0,p=g.spans?g.spans.length:0,C=z-p;C>0&&this.recordDroppedEvent("before_send","span",C)}const T=g.transaction_info;if(a&&T&&g.transaction!==e.transaction){const z="custom";g.transaction_info={...T,source:z}}return this.sendEvent(g,t),g}).then(null,g=>{throw wc(g)||zc(g)?g:(this.captureException(g,{data:{__sentry__:!0},originalException:g}),mr(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${g}`))})}_process(e){this._numProcessing++,e.then(t=>(this._numProcessing--,t),t=>(this._numProcessing--,t))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([t,i])=>{const[r,o]=t.split(":");return{reason:r,category:o,quantity:i}})}_flushOutcomes(){X&&F.log("Flushing outcomes...");const e=this._clearOutcomes();if(e.length===0){X&&F.log("No outcomes to send");return}if(!this._dsn){X&&F.log("No dsn provided, will not send outcomes");return}X&&F.log("Sending outcomes:",e);const t=by(e,this._options.tunnel&&oo(this._dsn));this.sendEnvelope(t)}}function Uy(s,e){const t=`${e} must return \`null\` or a valid event.`;if(io(s))return s.then(i=>{if(!_i(i)&&i!==null)throw mr(t);return i},i=>{throw mr(`${e} rejected with ${i}`)});if(!_i(s)&&s!==null)throw mr(t);return s}function $y(s,e,t,i){const{beforeSend:r,beforeSendTransaction:o,beforeSendSpan:n}=e;let a=t;if(dn(a)&&r)return r(a,i);if(BN(a)){if(n){const c=n(Yy(a));if(c?a=Bi(t,vy(c)):nc(),a.spans){const l=[];for(const N of a.spans){const u=n(N);u?l.push(u):(nc(),l.push(N))}a.spans=l}}if(o){if(a.spans){const c=a.spans.length;a.sdkProcessingMetadata={...t.sdkProcessingMetadata,spanCountBeforeProcessing:c}}return o(a,i)}}return a}function dn(s){return s.type===void 0}function BN(s){return s.type==="transaction"}function Py(s){return[{type:"log",item_count:s.length,content_type:"application/vnd.sentry.items.log+json"},{items:s}]}function Wy(s,e,t,i){const r={};return e!=null&&e.sdk&&(r.sdk={name:e.sdk.name,version:e.sdk.version}),t&&i&&(r.dsn=oo(i)),Ri(r,[Py(s)])}ie._sentryClientToLogBufferMap=new WeakMap;function So(s,e){var o;const t=By(s)??[];if(t.length===0)return;const i=s.getOptions(),r=Wy(t,i._metadata,i.tunnel,s.getDsn());(o=ie._sentryClientToLogBufferMap)==null||o.set(s,[]),s.emit("flushLogs"),s.sendEnvelope(r)}function By(s){var e;return(e=ie._sentryClientToLogBufferMap)==null?void 0:e.get(s)}function Jy(s,e){e.debug===!0&&(X?F.enable():Zs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Ct().update(e.initialScope);const i=new s(e);return Ry(i),i.init(),i}function Ry(s){Ct().setClient(s)}const JN=Symbol.for("SentryBufferFullError");function Fy(s){const e=[];function t(){return s===void 0||e.lengthi(a)).then(null,()=>i(a).then(null,()=>{})),a}function o(n){return new Ut((a,c)=>{let l=e.length;if(!l)return a(!0);const N=setTimeout(()=>{n&&n>0&&a(!1)},n);e.forEach(u=>{es(u).then(()=>{--l||(clearTimeout(N),a(!0))},c)})})}return{$:e,add:r,drain:o}}const Gy=60*1e3;function Hy(s,e=Date.now()){const t=parseInt(`${s}`,10);if(!isNaN(t))return t*1e3;const i=Date.parse(`${s}`);return isNaN(i)?Gy:i-e}function Vy(s,e){return s[e]||s.all||0}function Zy(s,e,t=Date.now()){return Vy(s,e)>t}function Xy(s,{statusCode:e,headers:t},i=Date.now()){const r={...s},o=t==null?void 0:t["x-sentry-rate-limits"],n=t==null?void 0:t["retry-after"];if(o)for(const a of o.trim().split(",")){const[c,l,,,N]=a.split(":",5),u=parseInt(c,10),L=(isNaN(u)?60:u)*1e3;if(!l)r.all=i+L;else for(const g of l.split(";"))g==="metric_bucket"?(!N||N.split(";").includes("custom"))&&(r[g]=i+L):r[g]=i+L}else n?r.all=i+Hy(n,i):e===429&&(r.all=i+60*1e3);return r}const Ky=64;function qy(s,e,t=Fy(s.bufferSize||Ky)){let i={};const r=n=>t.drain(n);function o(n){const a=[];if(lc(n,(u,L)=>{const g=Nc(L);Zy(i,g)?s.recordDroppedEvent("ratelimit_backoff",g):a.push(u)}),a.length===0)return es({});const c=Ri(n[0],a),l=u=>{lc(c,(L,g)=>{s.recordDroppedEvent(u,Nc(g))})},N=()=>e({body:ry(c)}).then(u=>(u.statusCode!==void 0&&(u.statusCode<200||u.statusCode>=300)&&X&&F.warn(`Sentry responded with status code ${u.statusCode} to sent event.`),i=Xy(i,u),u),u=>{throw l("network_error"),X&&F.error("Encountered error running transport request:",u),u});return t.add(N).then(u=>u,u=>{if(u===JN)return X&&F.error("Skipped sending event because buffer is full."),l("queue_overflow"),es({});throw u})}return{send:o,flush:r}}function eT(s){var e;((e=s.user)==null?void 0:e.ip_address)===void 0&&(s.user={...s.user,ip_address:"{{auto}}"})}function tT(s){var e;"aggregates"in s?((e=s.attrs)==null?void 0:e.ip_address)===void 0&&(s.attrs={...s.attrs,ip_address:"{{auto}}"}):s.ipAddress===void 0&&(s.ipAddress="{{auto}}")}function sT(s,e,t=[e],i="npm"){const r=s._metadata||{};r.sdk||(r.sdk={name:`sentry.javascript.${e}`,packages:t.map(o=>({name:`${i}:@sentry/${o}`,version:Xt})),version:Xt}),s._metadata=r}const iT=100;function ts(s,e){const t=Ee(),i=Ji();if(!t)return;const{beforeBreadcrumb:r=null,maxBreadcrumbs:o=iT}=t.getOptions();if(o<=0)return;const a={timestamp:Wi(),...s},c=r?Zs(()=>r(a,e)):a;c!==null&&(t.emit&&t.emit("beforeAddBreadcrumb",c,e),i.addBreadcrumb(c,o))}let Cc;const rT="FunctionToString",Ic=new WeakMap,oT=()=>({name:rT,setupOnce(){Cc=Function.prototype.toString;try{Function.prototype.toString=function(...s){const e=ha(this),t=Ic.has(Ee())&&e!==void 0?e:this;return Cc.apply(t,s)}}catch{}},setup(s){Ic.set(s,!0)}}),nT=oT,aT=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],MT="EventFilters",cT=(s={})=>{let e;return{name:MT,setup(t){const i=t.getOptions();e=pc(s,i)},processEvent(t,i,r){if(!e){const o=r.getOptions();e=pc(s,o)}return lT(t,e)?null:t}}},uT=(s={})=>({...cT(s),name:"InboundFilters"});function pc(s={},e={}){return{allowUrls:[...s.allowUrls||[],...e.allowUrls||[]],denyUrls:[...s.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...s.ignoreErrors||[],...e.ignoreErrors||[],...s.disableErrorDefaults?[]:aT],ignoreTransactions:[...s.ignoreTransactions||[],...e.ignoreTransactions||[]]}}function lT(s,e){if(s.type){if(s.type==="transaction"&<(s,e.ignoreTransactions))return X&&F.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Vt(s)}`),!0}else{if(NT(s,e.ignoreErrors))return X&&F.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Vt(s)}`),!0;if(TT(s))return X&&F.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Vt(s)}`),!0;if(gT(s,e.denyUrls))return X&&F.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${Vt(s)}. +Url: ${Qr(s)}`),!0;if(!jT(s,e.allowUrls))return X&&F.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${Vt(s)}. +Url: ${Qr(s)}`),!0}return!1}function NT(s,e){return e!=null&&e.length?$N(s).some(t=>ro(t,e)):!1}function LT(s,e){if(!(e!=null&&e.length))return!1;const t=s.transaction;return t?ro(t,e):!1}function gT(s,e){if(!(e!=null&&e.length))return!1;const t=Qr(s);return t?ro(t,e):!1}function jT(s,e){if(!(e!=null&&e.length))return!0;const t=Qr(s);return t?ro(t,e):!0}function yT(s=[]){for(let e=s.length-1;e>=0;e--){const t=s[e];if(t&&t.filename!==""&&t.filename!=="[native code]")return t.filename||null}return null}function Qr(s){var e,t;try{const i=[...((e=s.exception)==null?void 0:e.values)??[]].reverse().find(o=>{var n,a,c;return((n=o.mechanism)==null?void 0:n.parent_id)===void 0&&((c=(a=o.stacktrace)==null?void 0:a.frames)==null?void 0:c.length)}),r=(t=i==null?void 0:i.stacktrace)==null?void 0:t.frames;return r?yT(r):null}catch{return X&&F.error(`Cannot extract url for event ${Vt(s)}`),null}}function TT(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)!=null&&t.length?!s.message&&!s.exception.values.some(i=>i.stacktrace||i.type&&i.type!=="Error"||i.value):!1}function DT(s,e,t,i,r,o){var a;if(!((a=r.exception)!=null&&a.values)||!o||!bt(o.originalException,Error))return;const n=r.exception.values.length>0?r.exception.values[r.exception.values.length-1]:void 0;n&&(r.exception.values=hn(s,e,i,o.originalException,t,r.exception.values,n,0))}function hn(s,e,t,i,r,o,n,a){if(o.length>=t+1)return o;let c=[...o];if(bt(i[r],Error)){Ac(n,a);const l=s(e,i[r]),N=c.length;mc(l,r,N,a),c=hn(s,e,t,i[r],r,[l,...c],l,N)}return Array.isArray(i.errors)&&i.errors.forEach((l,N)=>{if(bt(l,Error)){Ac(n,a);const u=s(e,l),L=c.length;mc(u,`errors[${N}]`,L,a),c=hn(s,e,t,l,r,[u,...c],u,L)}}),c}function Ac(s,e){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,...s.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function mc(s,e,t,i){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,type:"chained",source:e,exception_id:t,parent_id:i}}function dT(s){const e="console";rs(e,s),os(e,hT)}function hT(){"console"in ie&&Ln.forEach(function(s){s in ie.console&&Ue(ie.console,s,function(e){return Yr[s]=e,function(...t){Ke("console",{args:t,level:s});const r=Yr[s];r==null||r.apply(ie.console,t)}})})}function zT(s){return s==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(s)?s:"log"}const wT="Dedupe",CT=()=>{let s;return{name:wT,processEvent(e){if(e.type)return e;try{if(IT(e,s))return X&&F.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return s=e}}},RN=CT;function IT(s,e){return e?!!(pT(s,e)||AT(s,e)):!1}function pT(s,e){const t=s.message,i=e.message;return!(!t&&!i||t&&!i||!t&&i||t!==i||!GN(s,e)||!FN(s,e))}function AT(s,e){const t=Oc(e),i=Oc(s);return!(!t||!i||t.type!==i.type||t.value!==i.value||!GN(s,e)||!FN(s,e))}function FN(s,e){let t=cc(s),i=cc(e);if(!t&&!i)return!0;if(t&&!i||!t&&i||(t=t,i=i,i.length!==t.length))return!1;for(let r=0;r=400&&s<500?"warning":s>=500?"error":void 0}const Si=ie;function mT(){return"history"in Si&&!!Si.history}function OT(){if(!("fetch"in Si))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function zn(s){return s&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(s.toString())}function ET(){var t;if(typeof EdgeRuntime=="string")return!0;if(!OT())return!1;if(zn(Si.fetch))return!0;let s=!1;const e=Si.document;if(e&&typeof e.createElement=="function")try{const i=e.createElement("iframe");i.hidden=!0,e.head.appendChild(i),(t=i.contentWindow)!=null&&t.fetch&&(s=zn(i.contentWindow.fetch)),e.head.removeChild(i)}catch(i){X&&F.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",i)}return s}function fT(s,e){const t="fetch";rs(t,s),os(t,()=>xT(void 0,e))}function xT(s,e=!1){e&&!ET()||Ue(ie,"fetch",function(t){return function(...i){const r=new Error,{method:o,url:n}=_T(i),a={args:i,fetchData:{method:o,url:n},startTimestamp:zt()*1e3,virtualError:r,headers:ST(i)};return Ke("fetch",{...a}),t.apply(ie,i).then(async c=>(Ke("fetch",{...a,endTimestamp:zt()*1e3,response:c}),c),c=>{if(Ke("fetch",{...a,endTimestamp:zt()*1e3,error:c}),ja(c)&&c.stack===void 0&&(c.stack=r.stack,Kt(c,"framesToPop",1)),c instanceof TypeError&&(c.message==="Failed to fetch"||c.message==="Load failed"||c.message==="NetworkError when attempting to fetch resource."))try{const l=new URL(a.fetchData.url);c.message=`${c.message} (${l.host})`}catch{}throw c})}})}function wn(s,e){return!!s&&typeof s=="object"&&!!s[e]}function Ec(s){return typeof s=="string"?s:s?wn(s,"url")?s.url:s.toString?s.toString():"":""}function _T(s){if(s.length===0)return{method:"GET",url:""};if(s.length===2){const[t,i]=s;return{url:Ec(t),method:wn(i,"method")?String(i.method).toUpperCase():"GET"}}const e=s[0];return{url:Ec(e),method:wn(e,"method")?String(e.method).toUpperCase():"GET"}}function ST(s){const[e,t]=s;try{if(typeof t=="object"&&t!==null&&"headers"in t&&t.headers)return new Headers(t.headers);if(Jg(e))return new Headers(e.headers)}catch{}}function kT(){return"npm"}const Le=ie;let Cn=0;function VN(){return Cn>0}function YT(){Cn++,setTimeout(()=>{Cn--})}function Hs(s,e={}){function t(r){return typeof r=="function"}if(!t(s))return s;try{const r=s.__sentry_wrapped__;if(r)return typeof r=="function"?r:s;if(ha(s))return s}catch{return s}const i=function(...r){try{const o=r.map(n=>Hs(n,e));return s.apply(this,o)}catch(o){throw YT(),Nj(n=>{n.addEventProcessor(a=>(e.mechanism&&(gn(a,void 0),Rs(a,e.mechanism)),a.extra={...a.extra,arguments:r},a)),Ay(o)}),o}};try{for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&(i[r]=s[r])}catch{}hN(i,s),Kt(s,"__sentry_wrapped__",i);try{Object.getOwnPropertyDescriptor(i,"name").configurable&&Object.defineProperty(i,"name",{get(){return s.name}})}catch{}return i}function vT(){const s=da(),{referrer:e}=Le.document||{},{userAgent:t}=Le.navigator||{},i={...e&&{Referer:e},...t&&{"User-Agent":t}};return{url:s,headers:i}}function Ia(s,e){const t=pa(s,e),i={type:PT(e),value:WT(e)};return t.length&&(i.stacktrace={frames:t}),i.type===void 0&&i.value===""&&(i.value="Unrecoverable error caught"),i}function bT(s,e,t,i){const r=Ee(),o=r==null?void 0:r.getOptions().normalizeDepth,n=GT(e),a={__serialized__:kN(e,o)};if(n)return{exception:{values:[Ia(s,n)]},extra:a};const c={exception:{values:[{type:so(e)?e.constructor.name:i?"UnhandledRejection":"Error",value:RT(e,{isUnhandledRejection:i})}]},extra:a};if(t){const l=pa(s,t);l.length&&(c.exception.values[0].stacktrace={frames:l})}return c}function Yo(s,e){return{exception:{values:[Ia(s,e)]}}}function pa(s,e){const t=e.stacktrace||e.stack||"",i=UT(e),r=$T(e);try{return s(t,i,r)}catch{}return[]}const QT=/Minified React error #\d+;/i;function UT(s){return s&&QT.test(s.message)?1:0}function $T(s){return typeof s.framesToPop=="number"?s.framesToPop:0}function ZN(s){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?s instanceof WebAssembly.Exception:!1}function PT(s){const e=s==null?void 0:s.name;return!e&&ZN(s)?s.message&&Array.isArray(s.message)&&s.message.length==2?s.message[0]:"WebAssembly.Exception":e}function WT(s){const e=s==null?void 0:s.message;return ZN(s)?Array.isArray(s.message)&&s.message.length==2?s.message[1]:"wasm exception":e?e.error&&typeof e.error.message=="string"?e.error.message:e:"No error message"}function BT(s,e,t,i){const r=(t==null?void 0:t.syntheticException)||void 0,o=Aa(s,e,r,i);return Rs(o),o.level="error",t!=null&&t.event_id&&(o.event_id=t.event_id),es(o)}function JT(s,e,t="info",i,r){const o=(i==null?void 0:i.syntheticException)||void 0,n=In(s,e,o,r);return n.level=t,i!=null&&i.event_id&&(n.event_id=i.event_id),es(n)}function Aa(s,e,t,i,r){let o;if(TN(e)&&e.error)return Yo(s,e.error);if(GM(e)||$g(e)){const n=e;if("stack"in e)o=Yo(s,e);else{const a=n.name||(GM(n)?"DOMError":"DOMException"),c=n.message?`${a}: ${n.message}`:a;o=In(s,c,t,i),gn(o,c)}return"code"in n&&(o.tags={...o.tags,"DOMException.code":`${n.code}`}),o}return ja(e)?Yo(s,e):_i(e)||so(e)?(o=bT(s,e,t,r),Rs(o,{synthetic:!0}),o):(o=In(s,e,t,i),gn(o,`${e}`),Rs(o,{synthetic:!0}),o)}function In(s,e,t,i){const r={};if(i&&t){const o=pa(s,t);o.length&&(r.exception={values:[{value:e,stacktrace:{frames:o}}]}),Rs(r,{synthetic:!0})}if(ya(e)){const{__sentry_template_string__:o,__sentry_template_values__:n}=e;return r.logentry={message:o,params:n},r}return r.message=e,r}function RT(s,{isUnhandledRejection:e}){const t=Xg(s),i=e?"promise rejection":"exception";return TN(s)?`Event \`ErrorEvent\` captured as ${i} with message \`${s.message}\``:so(s)?`Event \`${FT(s)}\` (type=${s.type}) captured as ${i}`:`Object captured as ${i} with keys: ${t}`}function FT(s){try{const e=Object.getPrototypeOf(s);return e?e.constructor.name:void 0}catch{}}function GT(s){for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const t=s[e];if(t instanceof Error)return t}}const HT=5e3;class VT extends Qy{constructor(e){const t=ZT(e),i=Le.SENTRY_SDK_SOURCE||kT();sT(t,"browser",["browser"],i),super(t);const{sendDefaultPii:r,sendClientReports:o,_experiments:n}=this._options,a=n==null?void 0:n.enableLogs;Le.document&&(o||a)&&Le.document.addEventListener("visibilitychange",()=>{Le.document.visibilityState==="hidden"&&(o&&this._flushOutcomes(),a&&So(this))}),a&&(this.on("flush",()=>{So(this)}),this.on("afterCaptureLog",()=>{this._logFlushIdleTimeout&&clearTimeout(this._logFlushIdleTimeout),this._logFlushIdleTimeout=setTimeout(()=>{So(this)},HT)})),r&&(this.on("postprocessEvent",eT),this.on("beforeSendSession",tT))}eventFromException(e,t){return BT(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",i){return JT(this._options.stackParser,e,t,i,this._options.attachStacktrace)}_prepareEvent(e,t,i,r){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,i,r)}}function ZT(s){var e;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(e=Le.SENTRY_RELEASE)==null?void 0:e.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...s}}const XT=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ae=ie,KT=1e3;let fc,pn,An;function qT(s){const e="dom";rs(e,s),os(e,eD)}function eD(){if(!Ae.document)return;const s=Ke.bind(null,"dom"),e=xc(s,!0);Ae.document.addEventListener("click",e,!1),Ae.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach(t=>{var o,n;const r=(o=Ae[t])==null?void 0:o.prototype;(n=r==null?void 0:r.hasOwnProperty)!=null&&n.call(r,"addEventListener")&&(Ue(r,"addEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},L=u[c]=u[c]||{refCount:0};if(!L.handler){const g=xc(s);L.handler=g,a.call(this,c,g,N)}L.refCount++}catch{}return a.call(this,c,l,N)}}),Ue(r,"removeEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__||{},L=u[c];L&&(L.refCount--,L.refCount<=0&&(a.call(this,c,L.handler,N),L.handler=void 0,delete u[c]),Object.keys(u).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return a.call(this,c,l,N)}}))})}function tD(s){if(s.type!==pn)return!1;try{if(!s.target||s.target._sentryId!==An)return!1}catch{}return!0}function sD(s,e){return s!=="keypress"?!1:e!=null&&e.tagName?!(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable):!0}function xc(s,e=!1){return t=>{if(!t||t._sentryCaptured)return;const i=iD(t);if(sD(t.type,i))return;Kt(t,"_sentryCaptured",!0),i&&!i._sentryId&&Kt(i,"_sentryId",Je());const r=t.type==="keypress"?"input":t.type;tD(t)||(s({event:t,name:r,global:e}),pn=t.type,An=i?i._sentryId:void 0),clearTimeout(fc),fc=Ae.setTimeout(()=>{An=void 0,pn=void 0},KT)}}function iD(s){try{return s.target}catch{return null}}let ur;function XN(s){const e="history";rs(e,s),os(e,rD)}function rD(){if(Ae.addEventListener("popstate",()=>{const e=Ae.location.href,t=ur;if(ur=e,t===e)return;Ke("history",{from:t,to:e})}),!mT())return;function s(e){return function(...t){const i=t.length>2?t[2]:void 0;if(i){const r=ur,o=oD(String(i));if(ur=o,r===o)return e.apply(this,t);Ke("history",{from:r,to:o})}return e.apply(this,t)}}Ue(Ae.history,"pushState",s),Ue(Ae.history,"replaceState",s)}function oD(s){try{return new URL(s,Ae.location.origin).toString()}catch{return s}}const Or={};function nD(s){const e=Or[s];if(e)return e;let t=Ae[s];if(zn(t))return Or[s]=t.bind(Ae);const i=Ae.document;if(i&&typeof i.createElement=="function")try{const r=i.createElement("iframe");r.hidden=!0,i.head.appendChild(r);const o=r.contentWindow;o!=null&&o[s]&&(t=o[s]),i.head.removeChild(r)}catch(r){XT&&F.warn(`Could not create sandbox iframe for ${s} check, bailing to window.${s}: `,r)}return t&&(Or[s]=t.bind(Ae))}function _c(s){Or[s]=void 0}const hi="__sentry_xhr_v3__";function aD(s){const e="xhr";rs(e,s),os(e,MD)}function MD(){if(!Ae.XMLHttpRequest)return;const s=XMLHttpRequest.prototype;s.open=new Proxy(s.open,{apply(e,t,i){const r=new Error,o=zt()*1e3,n=ht(i[0])?i[0].toUpperCase():void 0,a=cD(i[1]);if(!n||!a)return e.apply(t,i);t[hi]={method:n,url:a,request_headers:{}},n==="POST"&&a.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const c=()=>{const l=t[hi];if(l&&t.readyState===4){try{l.status_code=t.status}catch{}const N={endTimestamp:zt()*1e3,startTimestamp:o,xhr:t,virtualError:r};Ke("xhr",N)}};return"onreadystatechange"in t&&typeof t.onreadystatechange=="function"?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply(l,N,u){return c(),l.apply(N,u)}}):t.addEventListener("readystatechange",c),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(l,N,u){const[L,g]=u,y=N[hi];return y&&ht(L)&&ht(g)&&(y.request_headers[L.toLowerCase()]=g),l.apply(N,u)}}),e.apply(t,i)}}),s.send=new Proxy(s.send,{apply(e,t,i){const r=t[hi];if(!r)return e.apply(t,i);i[0]!==void 0&&(r.body=i[0]);const o={startTimestamp:zt()*1e3,xhr:t};return Ke("xhr",o),e.apply(t,i)}})}function cD(s){if(ht(s))return s;try{return s.toString()}catch{}}function uD(s,e=nD("fetch")){let t=0,i=0;function r(o){const n=o.body.length;t+=n,i++;const a={body:o.body,method:"POST",referrerPolicy:"strict-origin",headers:s.headers,keepalive:t<=6e4&&i<15,...s.fetchOptions};if(!e)return _c("fetch"),br("No fetch implementation available");try{return e(s.url,a).then(c=>(t-=n,i--,{statusCode:c.status,headers:{"x-sentry-rate-limits":c.headers.get("X-Sentry-Rate-Limits"),"retry-after":c.headers.get("Retry-After")}}))}catch(c){return _c("fetch"),t-=n,i--,br(c)}}return qy(s,r)}const lD=30,ND=50;function mn(s,e,t,i){const r={filename:s,function:e===""?qt:e,in_app:!0};return t!==void 0&&(r.lineno=t),i!==void 0&&(r.colno=i),r}const LD=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,gD=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,jD=/\((\S*)(?::(\d+))(?::(\d+))\)/,yD=s=>{const e=LD.exec(s);if(e){const[,i,r,o]=e;return mn(i,qt,+r,+o)}const t=gD.exec(s);if(t){if(t[2]&&t[2].indexOf("eval")===0){const n=jD.exec(t[2]);n&&(t[2]=n[1],t[3]=n[2],t[4]=n[3])}const[r,o]=KN(t[1]||qt,t[2]);return mn(o,r,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}},TD=[lD,yD],DD=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,dD=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,hD=s=>{const e=DD.exec(s);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const o=dD.exec(e[3]);o&&(e[1]=e[1]||"eval",e[3]=o[1],e[4]=o[2],e[5]="")}let i=e[3],r=e[1]||qt;return[r,i]=KN(r,i),mn(i,r,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}},zD=[ND,hD],wD=[TD,zD],CD=xN(...wD),KN=(s,e)=>{const t=s.indexOf("safari-extension")!==-1,i=s.indexOf("safari-web-extension")!==-1;return t||i?[s.indexOf("@")!==-1?s.split("@")[0]:qt,t?`safari-extension:${e}`:`safari-web-extension:${e}`]:[s,e]},no=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,lr=1024,ID="Breadcrumbs",pD=(s={})=>{const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...s};return{name:ID,setup(t){e.console&&dT(ED(t)),e.dom&&qT(OD(t,e.dom)),e.xhr&&aD(fD(t)),e.fetch&&fT(xD(t)),e.history&&XN(_D(t)),e.sentry&&t.on("beforeSendEvent",mD(t))}}},AD=pD;function mD(s){return function(t){Ee()===s&&ts({category:`sentry.${t.type==="transaction"?"transaction":"event"}`,event_id:t.event_id,level:t.level,message:Vt(t)},{event:t})}}function OD(s,e){return function(i){if(Ee()!==s)return;let r,o,n=typeof e=="object"?e.serializeAttribute:void 0,a=typeof e=="object"&&typeof e.maxStringLength=="number"?e.maxStringLength:void 0;a&&a>lr&&(no&&F.warn(`\`dom.maxStringLength\` cannot exceed ${lr}, but a value of ${a} was configured. Sentry will use ${lr} instead.`),a=lr),typeof n=="string"&&(n=[n]);try{const l=i.event,N=SD(l)?l.target:l;r=dN(N,{keyAttrs:n,maxStringLength:a}),o=Gg(N)}catch{r=""}if(r.length===0)return;const c={category:`ui.${i.name}`,message:r};o&&(c.data={"ui.component_name":o}),ts(c,{event:i.event,name:i.name,global:i.global})}}function ED(s){return function(t){if(Ee()!==s)return;const i={category:"console",data:{arguments:t.args,logger:"console"},level:zT(t.level),message:HM(t.args," ")};if(t.level==="assert")if(t.args[0]===!1)i.message=`Assertion failed: ${HM(t.args.slice(1)," ")||"console.assert"}`,i.data.arguments=t.args.slice(1);else return;ts(i,{input:t.args,level:t.level})}}function fD(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t,o=t.xhr[hi];if(!i||!r||!o)return;const{method:n,url:a,status_code:c,body:l}=o,N={method:n,url:a,status_code:c},u={xhr:t.xhr,input:l,startTimestamp:i,endTimestamp:r},L={category:"xhr",data:N,type:"http",level:HN(c)};s.emit("beforeOutgoingRequestBreadcrumb",L,u),ts(L,u)}}function xD(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t;if(r&&!(t.fetchData.url.match(/sentry_key/)&&t.fetchData.method==="POST"))if(t.fetchData.method,t.fetchData.url,t.error){const o=t.fetchData,n={data:t.error,input:t.args,startTimestamp:i,endTimestamp:r},a={category:"fetch",data:o,level:"error",type:"http"};s.emit("beforeOutgoingRequestBreadcrumb",a,n),ts(a,n)}else{const o=t.response,n={...t.fetchData,status_code:o==null?void 0:o.status};t.fetchData.request_body_size,t.fetchData.response_body_size,o==null||o.status;const a={input:t.args,response:o,startTimestamp:i,endTimestamp:r},c={category:"fetch",data:n,type:"http",level:HN(n.status_code)};s.emit("beforeOutgoingRequestBreadcrumb",c,a),ts(c,a)}}}function _D(s){return function(t){if(Ee()!==s)return;let i=t.from,r=t.to;const o=ko(Le.location.href);let n=i?ko(i):void 0;const a=ko(r);n!=null&&n.path||(n=o),o.protocol===a.protocol&&o.host===a.host&&(r=a.relative),o.protocol===n.protocol&&o.host===n.host&&(i=n.relative),ts({category:"navigation",data:{from:i,to:r}})}}function SD(s){return!!s&&!!s.target}const kD=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],YD="BrowserApiErrors",vD=(s={})=>{const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...s};return{name:YD,setupOnce(){e.setTimeout&&Ue(Le,"setTimeout",Sc),e.setInterval&&Ue(Le,"setInterval",Sc),e.requestAnimationFrame&&Ue(Le,"requestAnimationFrame",QD),e.XMLHttpRequest&&"XMLHttpRequest"in Le&&Ue(XMLHttpRequest.prototype,"send",UD);const t=e.eventTarget;t&&(Array.isArray(t)?t:kD).forEach(r=>$D(r,e))}}},bD=vD;function Sc(s){return function(...e){const t=e[0];return e[0]=Hs(t,{mechanism:{data:{function:Qt(s)},handled:!1,type:"instrument"}}),s.apply(this,e)}}function QD(s){return function(e){return s.apply(this,[Hs(e,{mechanism:{data:{function:"requestAnimationFrame",handler:Qt(s)},handled:!1,type:"instrument"}})])}}function UD(s){return function(...e){const t=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(r=>{r in t&&typeof t[r]=="function"&&Ue(t,r,function(o){const n={mechanism:{data:{function:r,handler:Qt(o)},handled:!1,type:"instrument"}},a=ha(o);return a&&(n.mechanism.data.handler=Qt(a)),Hs(o,n)})}),s.apply(this,e)}}function $D(s,e){var r,o;const i=(r=Le[s])==null?void 0:r.prototype;(o=i==null?void 0:i.hasOwnProperty)!=null&&o.call(i,"addEventListener")&&(Ue(i,"addEventListener",function(n){return function(a,c,l){try{PD(c)&&(c.handleEvent=Hs(c.handleEvent,{mechanism:{data:{function:"handleEvent",handler:Qt(c),target:s},handled:!1,type:"instrument"}}))}catch{}return e.unregisterOriginalCallbacks&&WD(this,a,c),n.apply(this,[a,Hs(c,{mechanism:{data:{function:"addEventListener",handler:Qt(c),target:s},handled:!1,type:"instrument"}}),l])}}),Ue(i,"removeEventListener",function(n){return function(a,c,l){try{const N=c.__sentry_wrapped__;N&&n.call(this,a,N,l)}catch{}return n.call(this,a,c,l)}}))}function PD(s){return typeof s.handleEvent=="function"}function WD(s,e,t){s&&typeof s=="object"&&"removeEventListener"in s&&typeof s.removeEventListener=="function"&&s.removeEventListener(e,t)}const BD=()=>({name:"BrowserSession",setupOnce(){if(typeof Le.document>"u"){no&&F.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}jc({ignoreDuration:!0}),yc(),XN(({from:s,to:e})=>{s!==void 0&&s!==e&&(jc({ignoreDuration:!0}),yc())})}}),JD="GlobalHandlers",RD=(s={})=>{const e={onerror:!0,onunhandledrejection:!0,...s};return{name:JD,setupOnce(){Error.stackTraceLimit=50},setup(t){e.onerror&&(GD(t),kc("onerror")),e.onunhandledrejection&&(HD(t),kc("onunhandledrejection"))}}},FD=RD;function GD(s){bj(e=>{const{stackParser:t,attachStacktrace:i}=qN();if(Ee()!==s||VN())return;const{msg:r,url:o,line:n,column:a,error:c}=e,l=XD(Aa(t,c||r,void 0,i,!1),o,n,a);l.level="error",vN(l,{originalException:c,mechanism:{handled:!1,type:"onerror"}})})}function HD(s){Uj(e=>{const{stackParser:t,attachStacktrace:i}=qN();if(Ee()!==s||VN())return;const r=VD(e),o=Ta(r)?ZD(r):Aa(t,r,void 0,i,!0);o.level="error",vN(o,{originalException:r,mechanism:{handled:!1,type:"onunhandledrejection"}})})}function VD(s){if(Ta(s))return s;try{if("reason"in s)return s.reason;if("detail"in s&&"reason"in s.detail)return s.detail.reason}catch{}return s}function ZD(s){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(s)}`}]}}}function XD(s,e,t,i){const r=s.exception=s.exception||{},o=r.values=r.values||[],n=o[0]=o[0]||{},a=n.stacktrace=n.stacktrace||{},c=a.frames=a.frames||[],l=i,N=t,u=ht(e)&&e.length>0?e:da();return c.length===0&&c.push({colno:l,filename:u,function:qt,in_app:!0,lineno:N}),s}function kc(s){no&&F.log(`Global Handler attached: ${s}`)}function qN(){const s=Ee();return(s==null?void 0:s.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}const KD=()=>({name:"HttpContext",preprocessEvent(s){var i;if(!Le.navigator&&!Le.location&&!Le.document)return;const e=vT(),t={...e.headers,...(i=s.request)==null?void 0:i.headers};s.request={...e,...s.request,headers:t}}}),qD="cause",ed=5,td="LinkedErrors",sd=(s={})=>{const e=s.limit||ed,t=s.key||qD;return{name:td,preprocessEvent(i,r,o){const n=o.getOptions();DT(Ia,n.stackParser,t,e,i,r)}}},id=sd;function rd(){return od()?(no&&Zs(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function od(){var o;if(typeof Le.window>"u")return!1;const s=Le;if(s.nw)return!1;const e=s.chrome||s.browser;if(!((o=e==null?void 0:e.runtime)!=null&&o.id))return!1;const t=da(),i=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(Le===Le.top&&i.some(n=>t.startsWith(`${n}://`)))}function nd(s){return[uT(),nT(),bD(),AD(),FD(),id(),RN(),KD(),BD()]}function ad(s={}){const e=!s.skipBrowserExtensionCheck&&rd(),t={...s,enabled:e?!1:s.enabled,stackParser:Yj(s.stackParser||CD),integrations:Sy({integrations:s.integrations,defaultIntegrations:s.defaultIntegrations==null?nd():s.defaultIntegrations}),transport:s.transport||uD};return Jy(VT,t)}function Md(){console.log(` +██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗ +██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝ +██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗ +██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║ +╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ +`),console.log("Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters"),console.log("Help us to create open source project with reactJS!"),console.log("See you :)")}const cd=` +/** + * Copyright 2018-2024 Denis Haev (bluefox) + * + * MIT License + * + **/ + +.logo-background-light, .logo-background-colored { + background: white; +} +.logo-background-dark, .logo-background-blue { + background: black; +} +.logo-div { + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + overflow: hidden; + border-radius: 50%; + z-index: 2; +} +.logo-border { + /*border-color: #164477;*/ + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + border-radius: 50%; + border-style: solid; + box-sizing: border-box; + width: 100%; + height: 100%; + position: absolute; +} +.logo-top { + position: absolute; + width: 4.5%; + height: 16%; + top: 0; + z-index: 2; +} +.logo-i { + position: absolute; + width: 14.5%; + height: 60%; + top: 20%; + left: 42%; + background: #3399CC; +} +.logo-i-top { + position: absolute; + width: 14.5%; + height: 4%; + left: 42%; + background: #3399CC; + border-radius: 100%; +} +.logo-back { + width: 100%; + height: 100%; + z-index: 0; + overflow: hidden; +} +@keyframes logo-grow { + 0% { + width: 230px; + height: 230px; + transform: translate(-50%,-50%) scale(1); + opacity: 1 + } + 99% { + width: 230px; + height: 230px; + transform: translate(-50%,-50%) scale(10); + opacity: 0; + } + 100% { + width: 0; + height: 0; + opacity: 0; + } +} +@keyframes logo-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } +@keyframes logo-color-inside-light { + 0% { + background: #FEFEFE; + } + 100% { + background: #3399CC; + } +} +@keyframes logo-color-inside-dark { + 0% { + background: #030303; + } + 100% { + background: #3399CC; + } +} +@keyframes logo-color-inside-colored { + 0% { + background: #FEFEFE; + } + 100% { + background: #3399CC; + } +} +@keyframes logo-color-inside-blue { + 0% { + background: #030303; + } + 100% { + background: #3399CC; + } +} + +@keyframes logo-color-outside-light { + 0% { + border-color: #FEFEFE; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} +@keyframes logo-color-outside-dark { + 0% { + border-color: #040404; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} +@keyframes logo-color-outside-colored { + 0% { + border-color: #FEFEFE; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} +@keyframes logo-color-outside-blue { + 0% { + border-color: #040404; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} + +.logo-animate-wait { + animation: logo-color-outside 1.5s, logo-spin 1.5s linear infinite; +} + +.logo-animate-grow-light { + background: #DDD; +} +.logo-animate-grow-dark { + background: #1d1d1d; +} +.logo-animate-grow-colored { + background: #DDD; +} +.logo-animate-grow-blue { + background: #1d1d1d; +} + +.logo-animate-grow { + display: inline-block; + text-align: center; + z-index: 1; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + width: 245px; + height: 245px; + border-radius: 50%; + position: absolute; + animation: logo-grow 1s 1 ease forwards; +} + +.logo-animate-color-inside-light { + animation: logo-color-inside-light 2.5s; +} +.logo-animate-color-inside-dark { + animation: logo-color-inside-dark 2.5s; +} +.logo-animate-color-inside-colored { + animation: logo-color-inside-colored 2.5s; +} +.logo-animate-color-inside-blue { + animation: logo-color-inside-blue 2.5s; +} + +.logo-animate-color-outside-light { + animation: logo-color-outside-light 1.5s; +} +.logo-animate-color-outside-dark { + animation: logo-color-outside-dark 1.5s; +} +.logo-animate-color-outside-colored { + animation: logo-color-outside-colored 1.5s; +} +.logo-animate-color-outside-blue { + animation: logo-color-outside-blue 1.5s; +} +`;function ud(s){x.useEffect(()=>{if(!window.document.getElementById("loader-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","loader-iobroker-component"),i.innerHTML=cd,window.document.head.appendChild(i)}},[]);const e=s.size||234,t=s.themeName||s.theme||s.themeType||"light";return M.createElement("div",{className:`logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:void 0,backgroundSize:"cover"}},window.loadingHideLogo==="true"?null:M.createElement(M.Fragment,null,M.createElement("div",{className:"logo-div",style:{width:e,height:e}},M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"37%"}}),M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"57%"}}),M.createElement("div",{className:`logo-border logo-background-${t} logo-animate-wait`,style:{borderWidth:e*.132}}),M.createElement("div",{className:`logo-i logo-animate-color-inside-${t}`}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{top:"18%"}}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{bottom:"18%"}})),M.createElement("div",{className:`logo-animate-grow logo-animate-grow-${t}`,style:{width:e+11,height:e+11}})))}class Oi extends x.Component{onHashChangedBound;constructor(e){super(e),this.onHashChangedBound=this.onHashChanged.bind(this)}componentDidMount(){window.addEventListener("hashchange",this.onHashChangedBound)}componentWillUnmount(){window.removeEventListener("hashchange",this.onHashChangedBound)}onHashChanged(){}static getLocation(){let e=window.location.hash;e=e.replace(/^#/,"");const t=e.split("/").map(i=>{try{return i?decodeURIComponent(i):""}catch{return console.error(`Router: Cannot decode ${i}`),i}});return{tab:t[0]||"",dialog:t[1]||"",id:t[2]||"",arg:t[3]||""}}static doNavigate(e,t,i,r){let o="";const n=Oi.getLocation();r!==void 0&&!i&&(i=n.id),i&&!t&&(t=n.dialog),(t&&!e||e===null)&&(e=n.tab),e&&(o=`#${e}`,t&&(o+=`/${t}`,i&&(o+=`/${i}`,r!==void 0&&(o+=`/${r}`)))),window.location.hash!==o&&(window.location.hash=o)}}function ld(){const s=document.getSelection();if(!(s!=null&&s.rangeCount))return()=>{};let e=document.activeElement;const t=[];for(let i=0;i{s.type==="Caret"&&s.removeAllRanges(),s.rangeCount||t.forEach(i=>s.addRange(i)),e&&e.focus()}}const Yc={"text/plain":"Text","text/html":"Url",default:"Text"},Nd="Copy to clipboard: #{key}, Enter";function Ld(s){const e=`${/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl"}+C`;return s.replace(/#{\s*key\s*}/g,e)}function e0(s,e){let t,i,r,o,n=!1;e=e||{};const a=e.debug||!1;try{if(t=ld(),i=document.createRange(),r=document.getSelection(),o=document.createElement("span"),o.textContent=s,o.ariaHidden="true",o.style.all="unset",o.style.position="fixed",o.style.top="0px",o.style.clip="rect(0, 0, 0, 0)",o.style.whiteSpace="pre",o.style.userSelect="text",o.addEventListener("copy",l=>{var N,u,L,g;if(l.stopPropagation(),e!=null&&e.format)if(l.preventDefault(),typeof l.clipboardData>"u"){a&&console.warn("unable to use e.clipboardData"),a&&console.warn("trying IE specific stuff"),(N=window.clipboardData)==null||N.clearData();const y=Yc[e.format]||Yc.default;(u=window.clipboardData)==null||u.setData(y,s)}else(L=l.clipboardData)==null||L.clearData(),(g=l.clipboardData)==null||g.setData(e.format,s)}),document.body.appendChild(o),i.selectNodeContents(o),r==null||r.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");n=!0}catch(c){a&&console.error("unable to copy using execCommand: ",c),a&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",s),n=!0}catch(l){a&&console.error("unable to copy using clipboardData: ",l),a&&console.error("falling back to prompt");const N=Ld("message"in e?e.message||"":Nd);window.prompt(N,s)}}finally{r&&(i&&typeof r.removeRange=="function"?r.removeRange(i):r.removeAllRanges()),o&&document.body.removeChild(o),t&&t()}return n}class d{static translations={};static unknownTranslations=[];static lang=window.sysLang||"en";static _disableWarning=!1;static setLanguage(e){e&&(d.lang=e)}static extendTranslations(e,t){if(e.prefix){const i=e;if(typeof i.prefix=="string"){const r=i.prefix;delete i.prefix,Object.keys(i).forEach(o=>{const n=o,a={},c=i[n];Object.keys(c).forEach(l=>{l&&c&&(l.startsWith(r)?a[l]=c[l]:a[`${r}${l}`]=c[l])}),e[n]=a})}else console.warn("Found prefix in translations, but it is not a string")}try{if(!t)e.en&&e.de&&e.ru?Object.keys(e).forEach(i=>{const r=i;d.translations[r]=d.translations[r]||{};const o=d.translations[r];Object.assign(o,e[r])}):Object.keys(e).forEach(i=>{const r=e[i];Object.keys(r).forEach(o=>{const n=o,a=d.translations[n];a?a[i]?a[i]!==r[n]&&console.warn(`Translation for word "${i}" in "${n}" was ignored: existing = "${a[i]}", new = ${r[n]}`):a[i]=r[n]:console.warn(`Used unknown language: ${n}`)})});else{d.translations[t]||console.warn(`Used unknown language: ${t}`),d.translations[t]=d.translations[t]||{};const i=d.translations[t];i&&Object.keys(e).forEach(r=>{i[r]?i[r]!==e[r]&&console.warn(`Translation for word "${r}" in "${t}" was ignored: existing = "${i[r]}", new = ${e[r]}`):i[r]=e[r]})}}catch(i){console.error(`Cannot apply translations: ${i}`)}}static setTranslations(e){e&&(d.translations=e)}static getLanguage(){return d.lang}static t(e,...t){const i=d.translations[d.lang];if(i){const r=i[e];if(r)e=r;else if(d.unknownTranslations.includes(e)||(d.unknownTranslations.push(e),!d._disableWarning&&console.log(`Translate: ${e}`)),d.lang!=="en"&&d.translations.en){const o=d.translations.en[e];o&&(e=o)}}for(const r of t)e=e.replace("%s",r);return e}static i18nShow(e){const t={};e?typeof e=="string"?(d.unknownTranslations.forEach(i=>{i.startsWith(e)&&(t[i]=i.replace(e,""))}),console.log(JSON.stringify(t,null,2))):typeof e=="object"&&(d.unknownTranslations.forEach(i=>{e.test(i)&&(t[i]=i)}),console.log(JSON.stringify(t,null,2))):(d.unknownTranslations.forEach(i=>t[i]=i),console.log(JSON.stringify(t,null,2)))}static disableWarning(e){d._disableWarning=!!e}}window.i18nShow=d.i18nShow;window.i18nDisableWarning=d.disableWarning;const st="material",gd=["Su","Mo","Tu","We","Th","Fr","Sa"],jd=["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vo={0:"0x00 - good",1:"0x01 - general problem",2:"0x02 - no connection problem",16:"0x10 - substitute value from controller",32:"0x20 - substitute initial value",64:"0x40 - substitute value from device or instance",128:"0x80 - substitute value from sensor",17:"0x11 - general problem by instance",65:"0x41 - general problem by device",129:"0x81 - general problem by sensor",18:"0x12 - instance not connected",66:"0x42 - device not connected",130:"0x82 - sensor not connected",68:"0x44 - device reports error",132:"0x84 - sensor reports error"},vc={JVBERi0:"pdf",R0lGODdh:"gif",R0lGODlh:"gif",iVBORw0KGgo:"png","/9j/":"jpg",PHN2Zw:"svg",Qk1:"bmp",AAABAA:"ico"};class O{static namespace=st;static INSTANCES="instances";static dateFormat=["DD","MM"];static FORBIDDEN_CHARS=/[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;static CapitalWords(e){return(e||"").split(/[\s_]/).filter(t=>t).map(t=>t?t[0].toUpperCase()+t.substring(1).toLowerCase():"").join(" ")}static formatSeconds(e){const t=Math.floor(e/86400);e%=3600*24;const i=Math.floor(e/3600).toString().padStart(2,"0");e%=3600;const r=Math.floor(e/60).toString().padStart(2,"0");e%=60;const o=Math.floor(e).toString().padStart(2,"0");let n="";return t&&(n+=`${t} ${d.t("ra_daysShortText")} `),n+=`${i}:${r}:${o}`,n}static getObjectName(e,t,i,r,o){var c;const n=e[t];let a;if(typeof i=="string"&&!r&&(r={language:i},i=null),r=r||{},r.language||(r.language=e["system.config"]&&e["system.config"].common&&e["system.config"].common.language||window.sysLang||"en"),i!=null&&i.name){const l=i.name;typeof l=="object"?a=r.language&&l[r.language]||l.en:a=l}else if(o&&((c=n==null?void 0:n.common)!=null&&c.desc)){const l=n.common.desc;typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!o&&(n!=null&&n.common)){const l=n.common.name||n.common.desc;l&&typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else{const l=t.lastIndexOf(".");a=t.substring(l+1).replace(/[_.]/g," "),a=O.CapitalWords(a)}return(a==null?void 0:a.trim())||""}static getObjectNameFromObj(e,t,i,r,o){var c,l;const n=e;let a=(e==null?void 0:e._id)||"";if(typeof t=="string"&&!i&&(i={language:t},t=null),i=i||{},t!=null&&t.name){const N=t.name;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N}else if(r&&((c=n==null?void 0:n.common)!=null&&c.desc)){const N=n.common.desc;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!r&&((l=n==null?void 0:n.common)!=null&&l.name)){let N=n.common.name;!N&&n.common.desc&&(N=n.common.desc),typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}return o?a:a.trim()}static getSettingsOrder(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subOrder&&o[n].subOrder[t])return JSON.parse(JSON.stringify(o[n].subOrder[t]))}else if(o[n].order)return JSON.parse(JSON.stringify(o[n].order))}}return null}static getSettingsCustomURLs(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subURLs&&o[n].subURLs[t])return JSON.parse(JSON.stringify(o[n].subURLs[t]))}else if(o[n].URLs)return JSON.parse(JSON.stringify(o[n].URLs))}}return null}static reorder(e,t,i){const r=Array.from(e),[o]=r.splice(t,1);return r.splice(i,0,o),r}static getSettings(e,t,i){let r;const o=(e==null?void 0:e._id)||(t==null?void 0:t.id);let n;if(e&&Object.prototype.hasOwnProperty.call(e,"common")?n=e.common:n=e,n!=null&&n.custom?(r=n.custom,r=r[st]&&r[st][t.user||"admin"]?JSON.parse(JSON.stringify(r[st][t.user||"admin"])):{enabled:!0}):r={enabled:i===void 0?!0:i,useCustom:!1},Object.prototype.hasOwnProperty.call(r,"enabled")||(r.enabled=i===void 0?!0:i),t&&(!r.name&&t.name&&(r.name=t.name),!r.icon&&t.icon&&(r.icon=t.icon),!r.color&&t.color&&(r.color=t.color)),n&&(!r.color&&n.color&&(r.color=n.color),!r.icon&&n.icon&&(r.icon=n.icon),!r.name&&n.name&&(r.name=n.name)),typeof r.name=="object"&&(r.name=t.language&&r.name[t.language]||r.name.en,r.name=(r.name||"").toString().replace(/_/g," "),r.name===r.name.toUpperCase()&&(r.name=r.name[0]+r.name.substring(1).toLowerCase())),!r.name&&o){const a=o.lastIndexOf(".");r.name=o.substring(a+1).replace(/[_.]/g," "),r.name=(r.name||"").toString().replace(/_/g," "),r.name=O.CapitalWords(r.name)}return r}static setSettings(e,t,i){if(e){e.common=e.common||{},e.common.custom=e.common.custom||{},e.common.custom[st]=e.common.custom[st]||{},e.common.custom[st][i.user||"admin"]=t;const r=e.common.custom[st][i.user||"admin"];return r.useCommon&&(r.color!==void 0&&(e.common.color=r.color,delete r.color),r.icon!==void 0&&(e.common.icon=r.icon,delete r.icon),r.name!==void 0&&(typeof e.common.name!="object"&&i.language?e.common.name={[i.language]:r.name}:typeof e.common.name=="object"&&i.language&&(e.common.name[i.language]=r.name),delete r.name)),!0}return!1}static getIcon(e,t){return e!=null&&e.icon?e.icon.length<=2?M.createElement("span",{style:t||{}},e.icon):e.icon.startsWith("data:image")?M.createElement("img",{alt:e.name,src:e.icon,style:t||{}}):M.createElement("img",{alt:e.name,src:(e.prefix||"")+e.icon,style:t}):null}static getObjectIcon(e,t){var i;if(typeof e=="object"&&(t=e,e=t==null?void 0:t._id),(i=t==null?void 0:t.common)!=null&&i.icon){let r=t.common.icon;if(typeof r=="string"&&r.length<=2||r.startsWith("data:image"))return r;const o=e.split(".");return o[0]==="system"?r=`adapter/${o[2]}${r.startsWith("/")?"":"/"}${r}`:r=`adapter/${o[0]}${r.startsWith("/")?"":"/"}${r}`,window.location.pathname.match(/adapter\/[^/]+\/[^/]+\.html/)?r=`../../${r}`:window.location.pathname.match(/material\/[.\d]+/)?r=`../../${r}`:window.location.pathname.match(/material\//)&&(r=`../${r}`),r}return null}static splitCamelCase(e){return e?O.CapitalWords(e):""}static isUseBright(e,t){if(!e)return t===void 0?!0:t;e=e.toString(),e.startsWith("#")&&(e=e.slice(1));let i,r,o;const n=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(n&&n.length===4)i=parseInt(n[1],10),r=parseInt(n[2],10),o=parseInt(n[3],10);else{if(e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8)e=e.substring(0,6);else if(e.length!==6)return!1;i=parseInt(e.slice(0,2),16),r=parseInt(e.slice(2,4),16),o=parseInt(e.slice(4,6),16)}return i*.299+r*.587+o*.114<=186}static getTimeString(e){if(e=parseFloat(e),Number.isNaN(e))return"--:--";const t=Math.floor(e/3600),i=Math.floor(e%3600/60).toString().padStart(2,"0"),r=(e%60).toString().padStart(2,"0");return t?`${t}:${i}:${r}`:`${i}:${r}`}static getWindDirection(e){return e>=0&&e<11.25?"N":e>=11.25&&e<33.75?"NNE":e>=33.75&&e<56.25?"NE":e>=56.25&&e<78.75?"ENE":e>=78.75&&e<101.25?"E":e>=101.25&&e<123.75?"ESE":e>=123.75&&e<146.25?"SE":e>=146.25&&e<168.75?"SSE":e>=168.75&&e<191.25?"S":e>=191.25&&e<213.75?"SSW":e>=213.75&&e<236.25?"SW":e>=236.25&&e<258.75?"WSW":e>=258.75&&e<281.25?"W":e>=281.25&&e<303.75?"WNW":e>=303.75&&e<326.25?"NW":e>=326.25&&e<348.75?"NNW":"N"}static padding(e){return typeof e=="string"?e.length<2?`0${e}`:e:e<10?`0${e}`:e.toString()}static setDataFormat(e){e&&(O.dateFormat=e.toUpperCase().split(/[.-/]/),O.dateFormat.splice(O.dateFormat.indexOf("YYYY"),1))}static date2string(e){if(typeof e=="string"){if(e=e.trim(),!e)return"";if(e.match(/^[\w\s]+$/))return e;const i=e.match(/(\d{1,4})[-./](\d{1,2})[-./](\d{1,4})/);if(i){const r=[parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10)],o=r.find(n=>n>31);if(o!==void 0){r.splice(r.indexOf(o),1);const n=r.find(a=>a>12);n?(r.splice(r.indexOf(n),1),e=new Date(o,r[0]-1,n)):O.dateFormat[0][0]==="M"&&O.dateFormat[1][0]==="D"?(e=new Date(o,r[0]-1,r[1]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[1]-1,r[0]))):O.dateFormat[0][0]==="D"&&O.dateFormat[1][0]==="M"?(e=new Date(o,r[1]-1,r[0]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[0]-1,r[1]))):e=new Date(e)}else e=new Date(e)}else e=new Date(e)}else e=new Date(e);let t=d.t(`ra_dow_${gd[e.getDay()]}`).replace("ra_dow_","");return t+=`. ${e.getDate()} ${d.t(`ra_month_${jd[e.getMonth()]}`).replace("ra_month_","")}`,t}static renderTextWithA(e){let t=e.match(/||[^<]+<\/b>|[^<]+<\/i>/);if(t){const i=[];let r=1;do{const o=e.substring(0,t.index);if(e=e.substring((t.index||0)+t[0].length),o&&i.push(M.createElement("span",{key:`a${r++}`},o)),t[0].startsWith(""))i.push(M.createElement("b",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith(""))i.push(M.createElement("i",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith("([^<]*)||[^<]+<\/b>|[^<]+<\/i>/):null,!t&&e&&i.push(M.createElement("span",{key:`a${r++}`},e))}while(t);return i}return e}static getSmartName(e,t,i,r){var n,a;if(!t){if(!r)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const c=e;return(n=c==null?void 0:c.common)!=null&&n.custom&&c.common.custom[i]?c.common.custom[i].smartName:void 0}if(!r)return e[t].common.smartName;const o=e[t];return(a=o==null?void 0:o.common)!=null&&a.custom&&o.common.custom[i]&&o.common.custom[i].smartName||null}static getSmartNameFromObj(e,t,i){var o,n;if(!i)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const r=(n=(o=e==null?void 0:e.common)==null?void 0:o.custom)==null?void 0:n[t];return r?r.smartName:void 0}static enableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName={}):e.common.smartName={}}static removeSmartName(e,t,i){i?e.common&&e.common.custom&&e.common.custom[t]&&(e.common.custom[t]=null):e.common.smartName=null}static updateSmartName(e,t,i,r,o,n){const a=d.getLanguage();if(typeof e.common.smartName=="string"){const c=e.common.smartName;e.common.smartName={},e.common.smartName[a]=c}if(e.native&&e.native.byON){delete e.native.byON;let c=e.common.smartName;c&&typeof c!="object"&&(c={en:c,[a]:c}),e.common.smartName=c}if(r!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},r?e.common.custom[o].smartName.smartType=r:delete e.common.custom[o].smartName.smartType):(e.common.smartName=e.common.smartName||{},r?e.common.smartName.smartType=r:delete e.common.smartName.smartType)),i!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},e.common.custom[o].smartName.byON=i):(e.common.smartName=e.common.smartName||{},e.common.smartName.byON=i)),t!==void 0){let c;if(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},c=e.common.custom[o].smartName):(e.common.smartName=e.common.smartName||{},c=e.common.smartName),c[a]=t,c&&(!c[a]||c[a]===e.common.name&&(!e.common.role||e.common.role.includes("button")))){delete c[a];let l=!0;for(const N in c)if(Object.prototype.hasOwnProperty.call(c,N)){l=!1;break}if(l)if(n&&e.common.custom&&e.common.custom[o])e.common.custom[o].smartName.byON===void 0?delete e.common.custom[o]:(delete e.common.custom[o].en,delete e.common.custom[o].de,delete e.common.custom[o].ru,delete e.common.custom[o].nl,delete e.common.custom[o].pl,delete e.common.custom[o].it,delete e.common.custom[o].fr,delete e.common.custom[o].pt,delete e.common.custom[o].es,delete e.common.custom[o].uk,delete e.common.custom[o]["zh-cn"]);else if(e.common.smartName&&e.common.smartName.byON!==void 0){const N=e.common.smartName;delete N.en,delete N.de,delete N.ru,delete N.nl,delete N.pl,delete N.it,delete N.fr,delete N.pt,delete N.es,delete N.uk,delete N["zh-cn"]}else e.common.smartName=null}}}static disableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName=!1):e.common.smartName=!1}static copyToClipboard(e,t){return t&&(t.stopPropagation(),t.preventDefault()),e0(e)}static getFileExtension(e){const t=(e||"").lastIndexOf(".");return t!==-1?e.substring(t+1).toLowerCase():null}static formatBytes(e){if(Math.abs(e)<1024)return`${e} B`;const t=["KB","MB","GB"];let i=-1;do e/=1024,++i;while(Math.abs(e)>=1024&&i186?`#000000${i||""}`:`#FFFFFF${i||""}`;const a=(255-r).toString(16),c=(255-o).toString(16),l=(255-n).toString(16);return`#${a.padStart(2,"0")}${c.padStart(2,"0")}${l.padStart(2,"0")}${i||""}`}static color2rgb(e){if(e==null||e===""||typeof e!="string")return!1;if(e.startsWith("rgba")){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else if(e.startsWith("rgb")){const t=e.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else e.startsWith("#")&&(e=e.slice(1));return e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length!==6&&e.length!==8?(console.warn(`Cannot invert color: ${e}`),!1):[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}static rgb2lab(e){let t=e[0]/255,i=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=(t*.4124+i*.3576+r*.1805)/.95047,n=t*.2126+i*.7152+r*.0722,a=(t*.0193+i*.1192+r*.9505)/1.08883;return o=o>.008856?o**.33333333:7.787*o+.137931,n=n>.008856?n**.33333333:7.787*n+.137931,a=a>.008856?a**.33333333:7.787*a+.137931,[116*n-16,500*(o-n),200*(n-a)]}static colorDistance(e,t){const i=O.color2rgb(e),r=O.color2rgb(t);if(!i||!r)return 0;const o=O.rgb2lab(i),n=O.rgb2lab(r),a=o[0]-n[0],c=o[1]-n[1],l=o[2]-n[2],N=Math.sqrt(o[1]*o[1]+o[2]*o[2]),u=Math.sqrt(n[1]*n[1]+n[2]*n[2]),L=N-u;let g=c*c+l*l-L*L;g=g<0?0:Math.sqrt(g);const y=1+.045*N,T=1+.015*N,D=a,z=L/y,p=g/T,C=D*D+z*z+p*p;return C<0?0:C}static _toVal(e){let t,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e))for(let r=0;r{if(i=i.trim(),i){const r=i.split("="),o=decodeURIComponent(r[0]).trim();if(r.length>1){const n=decodeURIComponent(r[1]);if(n==="true")t[o]=!0;else if(n==="false")t[o]=!1;else{const a=parseFloat(n);a.toString()===n?t[o]=a:t[o]=n}}else t[o]=!0}}),t}static getParentId(e){const t=(e||"").toString().split(".");return t.length>1?(t.pop(),t.join(".")):null}static formatDate(e,t){if(!e)return"";let i;const r=(e.getMonth()+1).toString().padStart(2,"0"),o=e.getDate().toString().padStart(2,"0");return t==="MM/DD/YYYY"?i=`${r}/${o}/${e.getFullYear()}`:i=`${e.getFullYear()}-${r}-${o}`,i+=` ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`,i}static formatTime(e){if(e){e=Math.round(e);const t=Math.floor(e/(3600*24)),i=Math.floor(e%(3600*24)/3600),r=Math.floor(e%3600/60),o=e%60;return t?`${t}.${i.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:i?`${i}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:`0:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}return"0:00:00"}static MDtext2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static MDgetTitle(e){var o;const t=O.MDextractHeader(e),i=t.header;let r=t.body;if(!i.title){r=r.replace(/{[^}]*}/g,""),r=r.trim();const n=r.replace(/\r/g,"").split(` +`);for(let a=0;a{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===t[c]?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static MDremoveDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static generateFile(e,t){const i=document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}static quality2text(e){const t=e&4294901760,i=vo[e];let r;return i?r=[i]:e&1?r=[vo[1],`0x${(e&65534).toString(16)}`]:e&2?r=[vo[2],`0x${(e&65533).toString(16)}`]:r=[`0x${e.toString(16)}`],t&&r.push(`0x${(t>>16).toString(16).toUpperCase()}`),r}static clone(e){return JSON.parse(JSON.stringify(e))}static getStates(e){var r;const t=(r=e==null?void 0:e.common)==null?void 0:r.states;let i;if(t)if(typeof t=="string"&&t[0]==="{")try{i=JSON.parse(t)}catch{console.error(`Cannot parse states: ${t}`),i=null}else if(typeof t=="string"){const o=t.split(";");i={};for(let n=0;ni[n]=o):(e==null?void 0:e.common.type)==="string"?t.forEach(o=>i[o]=o):(e==null?void 0:e.common.type)==="boolean"&&(i.false=t[0],i.true=t[1])):typeof t=="object"&&(i=t);return i||null}static async getSvg(e){const i=await(await fetch(e)).blob();return new Promise(r=>{const o=new FileReader;o.onload=()=>{var n;return r(((n=o.result)==null?void 0:n.toString())||"")},o.readAsDataURL(i)})}static detectMimeType(e){const t=Object.keys(vc).find(i=>e.startsWith(i));return t?vc[t]:null}static isStableRepository(e){return!!(typeof e=="string"&&e.toLowerCase().startsWith("stable")||e&&typeof e!="string"&&e.find(t=>t.toLowerCase().startsWith("stable")))}static isStringInteger(e){return typeof e=="number"?Math.round(e)===e:parseInt(e,10).toString()===e}static isValidDate(e){return e instanceof Date&&!isNaN(e)}static getStyle(e,...t){const i={};for(let r=0;r{if(typeof t[r][o]=="function")i[o]=t[r][o](e);else if(typeof t[r][o]=="object"){const n=t[r][o];i[o]={},Object.keys(n).forEach(a=>{typeof n[a]=="function"?i[o][a]=n(e):(n[a]||n[a]===0)&&(i[o][a]=n[a])})}else(t[r][o]||t[r][o]===0)&&(i[o]=t[r][o])});return i}}const bo={buttonIcon:{marginRight:8}};class yd extends M.Component{isIFrame;constructor(e){super(e);const t=e.newReact===void 0?!0:e.newReact;if(e.isIFrame!==void 0)this.isIFrame=e.isIFrame;else try{this.isIFrame=!t&&window.self!==window.top}catch{this.isIFrame=!t}}render(){const e=this.props.noTextOnButtons,t={borderRadius:this.props.theme.saveToolbar.button.borderRadius||3,height:this.props.theme.saveToolbar.button.height||32},i={bottom:this.isIFrame?38:0,left:this.props.paddingLeft||0,right:0,position:"absolute",background:this.props.theme.saveToolbar.background};return this.props.dense&&(i.minHeight=48),this.props.error&&(t.border="1px solid red"),M.createElement(j.Toolbar,{style:i},M.createElement(j.Fab,{variant:"extended","aria-label":"Save",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!1),style:t},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),!e&&d.t("ra_Save")),M.createElement(j.Fab,{variant:"extended","aria-label":"Save and close",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!0),style:{...t,marginLeft:10}},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),e?"+":d.t("ra_Save and close"),e&&M.createElement(Ne,null)),M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.Fab,{variant:"extended","aria-label":"Close",onClick:()=>this.props.onClose(),style:t},M.createElement(Ne,{style:e?void 0:bo.buttonIcon}),!e&&d.t("ra_Close")))}}const bc={suppress:{fontSize:12},suppressRoot:{marginTop:"16px"}};class t0 extends x.Component{constructor(e){if(super(e),!this.props.dialogName&&this.props.suppressQuestionMinutes)throw new Error("dialogName required if suppressQuestionMinutes used");let t=!1;this.props.suppressQuestionMinutes&&(t=parseInt((window._localStorage||window.localStorage).getItem(this.props.dialogName),10)||0,t?Date.now()>t&&((window._localStorage||window.localStorage).removeItem(this.props.dialogName),t=!1):t=!1),this.state={suppress:t}}handleOk(){this.state.suppress&&(window._localStorage||window.localStorage).setItem(this.props.dialogName,Date.now()+(this.props.suppressQuestionMinutes||2)*6e4),this.props.onClose&&this.props.onClose(!0)}handleCancel(){this.props.onClose&&this.props.onClose(!1)}render(){return typeof this.state.suppress=="number"?(setTimeout(()=>this.props.onClose&&this.props.onClose(!0),100),null):M.createElement(j.Dialog,{open:!0,maxWidth:"md",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:(e,t)=>{t!=="backdropClick"&&t!=="escapeKeyDown"&&this.handleCancel()},"aria-labelledby":"ar_confirmation_dialog_title","aria-describedby":"ar_confirmation_dialog_description"},M.createElement(j.DialogTitle,{id:"ar_confirmation_dialog_title"},this.props.title||d.t("ra_Are you sure?")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_confirmation_dialog_description"},this.props.icon||null,this.props.text,this.props.suppressQuestionMinutes?M.createElement("br",null):null,this.props.suppressQuestionMinutes?M.createElement(j.FormControlLabel,{sx:{"& .FormControlLabel-label":bc.suppress,"&.FormControlLabel-root":bc.suppressRoot},control:M.createElement(j.Checkbox,{id:`ar_dialog_confirm_suppress_${this.props.dialogName||""}`,checked:!!this.state.suppress,onChange:()=>this.setState({suppress:!this.state.suppress})}),label:this.props.suppressText||d.t("ra_Suppress question for next %s minutes",(this.props.suppressQuestionMinutes||2).toString())}):null)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_confirm_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_confirm_cancel_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Ne,null)},this.props.cancel||d.t("ra_Cancel"))))}}class s0 extends x.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},M.createElement(j.DialogTitle,{id:"ar_alert_dialog_title"},this.props.title||d.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_alert_dialog_description"},this.props.text||d.t("ra_Unknown error!"))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_error_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},d.t("ra_Ok"))))}}const Td="Actions",Dd="Append",dd="Cancel",hd="Categories",zd="Checked",wd="Delete",Cd="Close",Id="Commercial",pd="Configure",Ad="Connected",md="Continue",Od="Copied",Ed="Create",fd="Crop",xd="Delete",_d="Delete",Sd="Discard",kd="Disconnected",Yd="Error",vd="Filter",bd="Friday",Qd="Latitude",Ud="Logout",$d="Longitude",Pd="Message",Wd="Monday",Bd="Name",Jd="Objects",Rd="Ok",Fd="Product",Gd="Rename/Move/Copy",Hd="Repeat",Vd="Replace",Zd="Root",Xd="Saturday",Kd="Save",qd="Selected",eh="States",th="Sunday",sh="Thursday",ih="Timestamp",rh="Tuesday",oh="Update",nh="Valid till",ah="Value",Mh="Version",ch="Wednesday",uh="Width",lh="Yes",Nh="different",Lh="Everyone can read object",gh="Everyone can read state",jh="Everyone can write object",yh="Everyone can write state",Th="Group can read object",Dh="Group can read state",dh="Group can write object",hh="Group can write state",zh="Owner can read object",wh="Owner can read state",Ch="Owner can write object",Ih="Owner can write state",ph="Buttons",Ah="Changed from",mh="close",Oh="Create boolean state",Eh="Create channel",fh="Create device",xh="Create number state",_h="Create state",Sh="Create string state",kh="days",Yh="Fr",vh="Mo",bh="Sa",Qh="Su",Uh="Th",$h="Tu",Ph="We",Wh="Expert mode",Bh="FALSE",Jh="All files",Rh="Audio",Fh="Code/JSON",Gh="Images",Hh="Text",Vh="Video",Zh="Settings",Xh="without",Kh="Function",qh="ID",ez="Name",tz="Role",sz="Room",iz="Type",rz="Invalid settings",oz="Last change",nz="locally",az="Apr",Mz="Aug",cz="Dec",uz="Feb",lz="Jan",Nz="Jul",Lz="Jun",gz="Mai",jz="Mar",yz="Nov",Tz="Oct",Dz="Sep",dz="Apr",hz="Aug",zz="Dec",wz="Feb",Cz="Jan",Iz="Jul",pz="Jun",Az="Mai",mz="Mar",Oz="Nov",Ez="Oct",fz="Sep",xz="none",_z="Object changed by",Sz="Object last changed at",kz="Settings from other adapter %s",Yz="Quality code",vz="repeat",bz='To select folder, just hold the key "shift" by clicking the folder.',Qz="Show all",Uz="State changed by",$z="Object changed from",Pz="Timestamp",Wz="Acknowledged",Bz="Comment",Jz="Copy the state value",Rz="Hold Cltr/⌘ key to open the link",Fz="Custom settings",Gz="Delete object",Hz="Edit object",Vz="Edit the state value",Zz="Expires in",Xz="From",Kz="Last changed",qz="Quality",ew="Time stamp",tw="User",sw="Value",iw="TRUE",rw="Value",ow="Warning: The CRON job will run every minute during the specified period!",nw="Warning: The CRON job will run every second during the specified period!",aw="CRON",Mw="Date",cw="Dates",uw="Day",lw="Day of week",Nw="Every",Lw="every N days",gw="every Nth day of the week",jw="every N day of week",yw="every N hours",Tw="every N minutes",Dw="every N months",dw="every N seconds",hw="every day",zw="every day of the week",ww="every day of the week",Cw="every hour",Iw="every minute",pw="every month",Aw="every second",mw="From",Ow="Hours",Ew="Interval",fw="Interval between",xw="Invalid CRON",_w="Minutes",Sw="months",kw="Once",Yw="Period",vw="Seconds",bw="Simple",Qw="Specific time",Uw="specific dates",$w="specific day(s) of the week",Pw="specific day of weeks",Ww="specific hours",Bw="specific minutes",Jw="specific months",Rw="specific seconds",Fw="Time",Gw="To",Hw="Wizard",Vw="all",Zw="Astro day",Xw="Astro night",Kw="Dawn",qw="Dusk",eC="Golden hour",tC="Golden hour end",sC="Nadir",iC="Nautical dawn",rC="Nautical dusk",oC="Night",nC="Night end",aC="Solar noon",MC="Sunrise",cC="Sunrise end",uC="Sunset",lC="Sunset start",NC="at",LC="at %s",gC="every day",jC="every hour",yC="every minute",TC="every month",DC="every %s day",dC="every %s hours",hC="every %s minutes",zC="every %s months",wC="every %s weeks",CC="every %s years",IC="every week",pC="every year",AC="from %s to %s",mC="never",OC="on %s of %s",EC="on %s and %s of",fC="on every date of",xC="%s",_C="%s and %s",SC="on %s",kC="on %s and %s",YC="on weekends",vC="on working days",bC="will ne be not executed any more, because start is in the past",QC="on %s",UC="from %s",$C="Execute from to",PC="to %s",WC="every",BC="Specific time",JC="from",RC="From-to",FC="Interval time",GC="invert",HC="none",VC="on",ZC="Period",XC="Daily",KC="Dates",qC="Day",eI="Every",tI="Every day",sI="Every month",iI="Every week",rI="Every year",oI="Hours",nI="Minutes",aI="month",MI="Monthly",cI="Once",uI="Specific months",lI="Week",NI="Weekdays",LI="Weekend",gI="Weekly",jI="Workdays",yI="Year",TI="Yearly",DI="Specific time",dI="Time",hI="to",zI="Valid",wI="from",CI="to",II="Whole day",pI="every month",AI={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license",ra_Actions:Td,"ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:Dd,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:dd,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:hd,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:zd,ra_Clear:wd,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:Cd,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:Id,ra_Configure:pd,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:Ad,ra_Continue:md,ra_Copied:Od,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:Ed,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:fd,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:xd,ra_Delete:_d,"ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:Sd,ra_Disconnected:kd,"ra_Do not ask for next 2 hours in this session":"Do not ask for next 2 hours in this session","ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit full path":"Edit full path","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value","ra_Enter the code from that page here":"Enter the code from that page here",ra_Error:Yd,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:vd,"ra_Filter and Data Actions":"Filter and Data Actions","ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:bd,"ra_Get %s access":"Get %s access","ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_If the button above does not work, you can authorize manually this app by visiting this url":"If the button above does not work, you can authorize manually this app by visiting this url","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:Qd,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist","ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Logout:Ud,ra_Longitude:$d,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:Pd,ra_Monday:Wd,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:Bd,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:Jd,ra_Ok:Rd,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please allow popups in your browser for this page!":"Please allow popups in your browser for this page!","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Press ENTER Key to add new item":"Press ENTER Key to add new item","ra_Private certificate":"Private certificate",ra_Product:Fd,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Rename_Move_Copy:Gd,"ra_Renew %s access":"Renew %s access",ra_Repeat:Hd,ra_Replace:Vd,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:Zd,ra_Saturday:Xd,ra_Save:Kd,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:qd,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Session will expire in %s seconds. Continue?":"Session will expire in %s seconds. Continue?","ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:eh,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Successfully authorized. Token valid till %s and will be automatically renewed.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Successfully authorized. Token valid till %s but it can expire as the instance is not running.","ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:th,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:sh,ra_Timestamp:ih,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:rh,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:oh,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:nh,ra_Value:ah,ra_Version:Mh,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:ch,ra_Width:uh,ra_Yes:lh,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text",ra___different__:Nh,ra_aclEveryone_read_object:Lh,ra_aclEveryone_read_state:gh,ra_aclEveryone_write_object:jh,ra_aclEveryone_write_state:yh,ra_aclGroup_read_object:Th,ra_aclGroup_read_state:Dh,ra_aclGroup_write_object:dh,ra_aclGroup_write_state:hh,ra_aclOwner_read_object:zh,ra_aclOwner_read_state:wh,ra_aclOwner_write_object:Ch,ra_aclOwner_write_state:Ih,ra_buttons:ph,ra_changedFrom:Ah,ra_close:mh,ra_create_boolean_state:Oh,ra_create_channel:Eh,ra_create_device:fh,ra_create_number_state:xh,ra_create_state:_h,ra_create_string_state:Sh,ra_daysShortText:kh,ra_dow_Fr:Yh,ra_dow_Mo:vh,ra_dow_Sa:bh,ra_dow_Su:Qh,ra_dow_Th:Uh,ra_dow_Tu:$h,ra_dow_We:Ph,ra_expertMode:Wh,ra_false:Bh,ra_fileType_all:Jh,ra_fileType_audio:Rh,ra_fileType_code:Fh,ra_fileType_images:Gh,ra_fileType_txt:Hh,ra_fileType_video:Vh,"ra_fileType_video,":"Video",ra_filter_customs:Zh,ra_filter_customs_without:Xh,ra_filter_func:Kh,ra_filter_id:qh,ra_filter_name:ez,ra_filter_role:tz,ra_filter_room:sz,ra_filter_type:iz,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:rz,ra_lastChange:oz,ra_locally:nz,ra_month_Apr:az,ra_month_Aug:Mz,ra_month_Dec:cz,ra_month_Feb:uz,ra_month_Jan:lz,ra_month_Jul:Nz,ra_month_Jun:Lz,ra_month_Mai:gz,ra_month_Mar:jz,ra_month_Nov:yz,ra_month_Oct:Tz,ra_month_Sep:Dz,ra_months_Apr:dz,ra_months_Aug:hz,ra_months_Dec:zz,ra_months_Feb:wz,ra_months_Jan:Cz,ra_months_Jul:Iz,ra_months_Jun:pz,ra_months_Mai:Az,ra_months_Mar:mz,ra_months_Nov:Oz,ra_months_Oct:Ez,ra_months_Sep:fz,"ra_no confirm for 5 mins":"no confirm for 5 mins",ra_none:xz,ra_object_changed_by:_z,ra_object_changed_by_user:Sz,ra_otherConfig:kz,ra_qualityCode:Yz,ra_repeat:vz,ra_select_folder_hint:bz,ra_show_all:Qz,ra_state_changed_by:Uz,ra_state_changed_from:$z,ra_timestamp:Pz,ra_tooltip_ack:Wz,ra_tooltip_comment:Bz,ra_tooltip_copyState:Jz,ra_tooltip_ctrlForLink:Rz,ra_tooltip_customConfig:Fz,ra_tooltip_deleteObject:Gz,ra_tooltip_editObject:Hz,ra_tooltip_editState:Vz,ra_tooltip_expire:Zz,ra_tooltip_from:Xz,ra_tooltip_lc:Kz,ra_tooltip_quality:qz,ra_tooltip_ts:ew,ra_tooltip_user:tw,ra_tooltip_value:sw,ra_true:iw,"ra_use seconds":"use seconds",ra_val:rw,"ra_via internet":"via internet",ra_warning_every_minute:ow,ra_warning_every_second:nw,sc_cron:aw,sc_date:Mw,sc_dates:cw,sc_dow:uw,sc_dows:lw,sc_every:Nw,sc_everyN_dates:Lw,sc_everyN_dow:gw,sc_everyN_dows:jw,sc_everyN_hours:yw,sc_everyN_minutes:Tw,sc_everyN_months:Dw,sc_everyN_seconds:dw,sc_every_dates:hw,sc_every_dow:zw,sc_every_dows:ww,sc_every_hours:Cw,sc_every_minutes:Iw,sc_every_months:pw,sc_every_seconds:Aw,sc_from:mw,sc_hours:Ow,sc_interval:Ew,sc_intervalBetween:fw,sc_invalid_cron:xw,sc_minutes:_w,sc_months:Sw,sc_once:kw,sc_period:Yw,sc_seconds:vw,sc_simple:bw,sc_specific:Qw,sc_specific_dates:Uw,sc_specific_dow:$w,sc_specific_dows:Pw,sc_specific_hours:Ww,sc_specific_minutes:Bw,sc_specific_months:Jw,sc_specific_seconds:Rw,sc_time:Fw,sc_to:Gw,sc_wizard:Hw,sch_all:Vw,sch_astroDay:Zw,sch_astroNight:Xw,sch_astro_dawn:Kw,sch_astro_dusk:qw,sch_astro_goldenHour:eC,sch_astro_goldenHourEnd:tC,sch_astro_nadir:sC,sch_astro_nauticalDawn:iC,sch_astro_nauticalDusk:rC,sch_astro_night:oC,sch_astro_nightEnd:nC,sch_astro_solarNoon:aC,sch_astro_sunrise:MC,sch_astro_sunriseEnd:cC,sch_astro_sunset:uC,sch_astro_sunsetStart:lC,sch_at:NC,sch_desc_atTime:LC,sch_desc_everyDay:gC,sch_desc_everyHour:jC,sch_desc_everyMinute:yC,sch_desc_everyMonth:TC,sch_desc_everyNDay:DC,sch_desc_everyNHours:dC,sch_desc_everyNMinutes:hC,sch_desc_everyNMonths:zC,sch_desc_everyNWeeks:wC,sch_desc_everyNYears:CC,sch_desc_everyWeek:IC,sch_desc_everyYear:pC,sch_desc_intervalFromTo:AC,sch_desc_never:mC,sch_desc_onDate:OC,sch_desc_onDates:EC,sch_desc_onEveryDate:fC,sch_desc_onMonth:xC,sch_desc_onMonths:_C,sch_desc_onWeekday:SC,sch_desc_onWeekdays:kC,sch_desc_onWeekends:YC,sch_desc_onWorkdays:vC,sch_desc_onceInPast:bC,sch_desc_once_on:QC,sch_desc_validFrom:UC,sch_desc_validFromTo:$C,sch_desc_validTo:PC,sch_every:WC,sch_exactTime:BC,sch_from:JC,sch_fromTo:RC,sch_intervalTime:FC,sch_invert:GC,sch_no_one:HC,sch_on:VC,sch_period:ZC,sch_periodDaily:XC,sch_periodDates:KC,sch_periodDay:qC,sch_periodEvery:eI,sch_periodEveryDay:tI,sch_periodEveryMonth:sI,sch_periodEveryWeek:iI,sch_periodEveryYear:rI,sch_periodHours:oI,sch_periodMinutes:nI,sch_periodMonth:aI,sch_periodMonthly:MI,sch_periodOnce:cI,sch_periodSpecificMonths:uI,sch_periodWeek:lI,sch_periodWeekdays:NI,sch_periodWeekend:LI,sch_periodWeekly:gI,sch_periodWorkdays:jI,sch_periodYear:yI,sch_periodYearly:TI,sch_specificTime:DI,sch_time:dI,sch_to:hI,sch_valid:zI,sch_validFrom:wI,sch_validTo:CI,sch_wholeDay:II,sch_yearEveryMonth:pI},mI="Aktionen",OI="Anhängen",EI="Abbrechen",fI="Kategorien",xI="Geprüft",_I="Löschen",SI="Schließen",kI="Kommerziell",YI="Konfigurieren",vI="Verbunden",bI="Weitermachen",QI="Kopiert",UI="Erstellen",$I="Ernte",PI="Entf",WI="Löschen",BI="Verwerfen",JI="Getrennt",RI="Fehler",FI="Filter",GI="Freitag",HI="Breite",VI="Ausloggen",ZI="Längengrad",XI="Meldung",KI="Montag",qI="Name",e1="Objekte",t1="OK",s1="Produkt",i1="Umbenennen/Verschieben/Kopieren",r1="Wiederholen",o1="Ersetzen",n1="Anfang",a1="Samstag",M1="Speichern",c1="Ausgewählt",u1="Zustände",l1="Sonntag",N1="Donnerstag",L1="Zeitstempel",g1="Dienstag",j1="Aktualisieren",y1="Gültig bis",T1="Wert",D1="Ausführung",d1="Mittwoch",h1="Breite",z1="Ja",w1="unterschiedlich",C1="Jeder kann Objekt lesen",I1="Jeder kann Zustand lesen",p1="Jeder kann ein Objekt schreiben",A1="Jeder kann Zustand schreiben",m1="Gruppe kann Objekt lesen",O1="Gruppe kann Status lesen",E1="Gruppe kann Objekt schreiben",f1="Gruppe kann Status schreiben",x1="Besitzer kann Objekt lesen",_1="Besitzer kann Zustand lesen",S1="Besitzer kann Objekt schreiben",k1="Besitzer kann Zustand schreiben",Y1="Tasten",v1="Geändert von",b1="Schließen",Q1="Booleschen Zustand erstellen",U1="Kanal erstellen",$1="Gerät erstellen",P1="Nummern-Zustand erstellen",W1="Zustand erstellen",B1="String-Zustand erstellen",J1="T.",R1="Fr",F1="Mo",G1="Sa",H1="So",V1="Do",Z1="Di",X1="Mi",K1="Expertenmodus",q1="FALSCH",ep="Alle Dateien",tp="Audio",sp="Code/JSON",ip="Bilder",rp="Text",op="Video",np="Einstellungen",ap="ohne",Mp="Funktion",cp="ID",up="Name",lp="Rolle",Np="Raum",Lp="Typ",gp="Ungültige Einstellungen",jp="Letzte Änderung",yp="örtlich",Tp="Apr",Dp="Aug",dp="Dez",hp="Feb",zp="Jan",wp="Jul",Cp="Jun",Ip="Mai",pp="Mär",Ap="Nov",mp="Okt",Op="Sep",Ep="Apr",fp="Aug",xp="Dez",_p="Feb",Sp="Jan",kp="Jul",Yp="Jun",vp="Mai",bp="Mär",Qp="Nov",Up="Okt",$p="Sep",Pp="kein",Wp="Objekt geändert von",Bp="Objekt zuletzt geändert um",Jp="Einstellungen von anderen Adaptern %s",Rp="Qualitätscode",Fp="wiederholen",Gp='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',Hp="Alle anzeigen",Vp="Zustand geändert durch",Zp="Objekt geändert von",Xp="Zeitstempel",Kp="Bestätigt",qp="Kommentar",eA="Statuswert kopieren",tA="Strg/⌘-Taste gedrückt halten, um den Link zu öffnen",sA="Benutzerdefinierte Einstellungen",iA="Objekt löschen",rA="Objekt bearbeiten",oA="Statuswert bearbeiten",nA="Läuft ab in",aA="Von",MA="Zuletzt geändert",cA="Qualität",uA="Zeitstempel",lA="Benutzer",NA="Wert",LA="WAHR",gA="Wert",jA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",yA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",TA="CRON",DA="Datum",dA="Tage",hA="Tag",zA="Wochentage",wA="Jeden",CA="alle N Tage",IA="jeden x-ten Tag der Woche",pA="alle N Wochentage",AA="alle N Stunden",mA="alle N Minuten",OA="alle N Monate",EA="alle N Sekunden",fA="jeden Tag",xA="jeden Tag der Woche",_A="jeden Tag der Woche",SA="jede Stunde",kA="jede Minute",YA="jeden Monat",vA="jede Sekunde",bA="Von",QA="Stunden",UA="Intervall",$A="Intervall zwischen",PA="Ungültiger CRON",WA="Minuten",BA="Monate",JA="Einmal",RA="Zeitraum",FA="Sekunden",GA="Einfach",HA="Bestimmte Zeit",VA="bestimmte Tage",ZA="bestimmte(r) Tag(e) der Woche",XA="bestimmten Wochentag",KA="bestimmte Stunden",qA="bestimmte Minuten",e2="bestimmte Monate",t2="bestimmte Sekunden",s2="Zeit",i2="Bis",r2="Wizard",o2="alle",n2="Astronomischer Tag",a2="Astronomische Nacht",M2="Morgendämmerung",c2="Abenddämmerung",u2="Goldene Stunde",l2="Goldene Stundenende",N2="Nadir",L2="Nautische Morgendämmerung",g2="Nautische Abenddämmerung",j2="Nacht",y2="Nachtende",T2="Sonnenmittag",D2="Sonnenaufgang",d2="Sonnenaufgangende",h2="Sonnenuntergang",z2="Sonnenuntergangstart",w2="am",C2="um %s",I2="jeden Tag",p2="jede Stunde",A2="jede Minute",m2="jeden Monat",O2="jeden %s Tag",E2="alle %s Stunden",f2="alle %s Minuten",x2="alle %s Monate",_2="alle %s Wochen",S2="alle %s Jahre",k2="jede Woche",Y2="jedes Jahr",v2="von %s bis %s",b2="noch nie",Q2="am %s von %s",U2="am %s und %s von",$2="an jedem Datum von",P2="%s",W2="%s und %s",B2="auf %s",J2="auf %s und %s",R2="an Wochenenden",F2="an Werktagen",G2="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",H2="auf %s",V2="von %s",Z2="Ausführen von bis",X2="bis %s",K2="jeden",q2="Bestimmte Zeit",em="von",tm="Von bis",sm="Zeitintervall",im="umkehren",rm="keiner",om="am",nm="Zeitraum",am="Täglich",Mm="Daten",cm="Tag",um="Jeden",lm="Jeden Tag",Nm="Jeden Monat",Lm="Jede Woche",gm="Jedes Jahr",jm="Stunden",ym="Minuten",Tm="Monat",Dm="Monatlich",dm="Einmal",hm="Bestimmte Monate",zm="Woche",wm="Wochentage",Cm="Wochenende",Im="Wöchentlich",pm="Arbeitstage",Am="Jahr",mm="Jährlich",Om="Bestimmte Zeit",Em="Zeit",fm="zu",xm="Gültigkeit",_m="von",Sm="bis",km="Ganzer Tag",Ym="jeden Monat",vm={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren",ra_Actions:mI,"ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:OI,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:EI,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:fI,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:xI,ra_Clear:_I,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:SI,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:kI,ra_Configure:YI,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:vI,ra_Continue:bI,ra_Copied:QI,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:UI,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:$I,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:PI,ra_Delete:WI,"ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:BI,ra_Disconnected:JI,"ra_Do not ask for next 2 hours in this session":"Fragen Sie nicht nach den nächsten 2 Stunden in dieser Sitzung","ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit full path":"Vollständigen Pfad bearbeiten","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten","ra_Enter the code from that page here":"Geben Sie den Code von dieser Seite hier ein",ra_Error:RI,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:FI,"ra_Filter and Data Actions":"Filter- und Datenaktionen","ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:GI,"ra_Get %s access":"%s Zugriff erhalten","ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:HI,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Logout:VI,ra_Longitude:ZI,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:XI,ra_Monday:KI,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:qI,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:e1,ra_Ok:t1,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please allow popups in your browser for this page!":"Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Press ENTER Key to add new item":"Die Eingabetaste drücken, um ein neues Element hinzuzufügen","ra_Private certificate":"Privates Zertifikat",ra_Product:s1,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Rename_Move_Copy:i1,"ra_Renew %s access":"%s Zugriff erneuern",ra_Repeat:r1,ra_Replace:o1,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:n1,ra_Saturday:a1,ra_Save:M1,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:c1,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Session will expire in %s seconds. Continue?":"Die Sitzung läuft in %s Sekunden ab. Fortfahren?","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:u1,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.","ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:l1,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:N1,ra_Timestamp:L1,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:g1,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:j1,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:y1,ra_Value:T1,ra_Version:D1,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:d1,ra_Width:h1,ra_Yes:z1,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben",ra___different__:w1,ra_aclEveryone_read_object:C1,ra_aclEveryone_read_state:I1,ra_aclEveryone_write_object:p1,ra_aclEveryone_write_state:A1,ra_aclGroup_read_object:m1,ra_aclGroup_read_state:O1,ra_aclGroup_write_object:E1,ra_aclGroup_write_state:f1,ra_aclOwner_read_object:x1,ra_aclOwner_read_state:_1,ra_aclOwner_write_object:S1,ra_aclOwner_write_state:k1,ra_buttons:Y1,ra_changedFrom:v1,ra_close:b1,ra_create_boolean_state:Q1,ra_create_channel:U1,ra_create_device:$1,ra_create_number_state:P1,ra_create_state:W1,ra_create_string_state:B1,ra_daysShortText:J1,ra_dow_Fr:R1,ra_dow_Mo:F1,ra_dow_Sa:G1,ra_dow_Su:H1,ra_dow_Th:V1,ra_dow_Tu:Z1,ra_dow_We:X1,ra_expertMode:K1,ra_false:q1,ra_fileType_all:ep,ra_fileType_audio:tp,ra_fileType_code:sp,ra_fileType_images:ip,ra_fileType_txt:rp,ra_fileType_video:op,"ra_fileType_video,":"Video",ra_filter_customs:np,ra_filter_customs_without:ap,ra_filter_func:Mp,ra_filter_id:cp,ra_filter_name:up,ra_filter_role:lp,ra_filter_room:Np,ra_filter_type:Lp,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:gp,ra_lastChange:jp,ra_locally:yp,ra_month_Apr:Tp,ra_month_Aug:Dp,ra_month_Dec:dp,ra_month_Feb:hp,ra_month_Jan:zp,ra_month_Jul:wp,ra_month_Jun:Cp,ra_month_Mai:Ip,ra_month_Mar:pp,ra_month_Nov:Ap,ra_month_Oct:mp,ra_month_Sep:Op,ra_months_Apr:Ep,ra_months_Aug:fp,ra_months_Dec:xp,ra_months_Feb:_p,ra_months_Jan:Sp,ra_months_Jul:kp,ra_months_Jun:Yp,ra_months_Mai:vp,ra_months_Mar:bp,ra_months_Nov:Qp,ra_months_Oct:Up,ra_months_Sep:$p,"ra_no confirm for 5 mins":"5 Minuten lang keine Bestätigung",ra_none:Pp,ra_object_changed_by:Wp,ra_object_changed_by_user:Bp,ra_otherConfig:Jp,ra_qualityCode:Rp,ra_repeat:Fp,ra_select_folder_hint:Gp,ra_show_all:Hp,ra_state_changed_by:Vp,ra_state_changed_from:Zp,ra_timestamp:Xp,ra_tooltip_ack:Kp,ra_tooltip_comment:qp,ra_tooltip_copyState:eA,ra_tooltip_ctrlForLink:tA,ra_tooltip_customConfig:sA,ra_tooltip_deleteObject:iA,ra_tooltip_editObject:rA,ra_tooltip_editState:oA,ra_tooltip_expire:nA,ra_tooltip_from:aA,ra_tooltip_lc:MA,ra_tooltip_quality:cA,ra_tooltip_ts:uA,ra_tooltip_user:lA,ra_tooltip_value:NA,ra_true:LA,"ra_use seconds":"Sekunden benutzen",ra_val:gA,"ra_via internet":"übers Internet",ra_warning_every_minute:jA,ra_warning_every_second:yA,sc_cron:TA,sc_date:DA,sc_dates:dA,sc_dow:hA,sc_dows:zA,sc_every:wA,sc_everyN_dates:CA,sc_everyN_dow:IA,sc_everyN_dows:pA,sc_everyN_hours:AA,sc_everyN_minutes:mA,sc_everyN_months:OA,sc_everyN_seconds:EA,sc_every_dates:fA,sc_every_dow:xA,sc_every_dows:_A,sc_every_hours:SA,sc_every_minutes:kA,sc_every_months:YA,sc_every_seconds:vA,sc_from:bA,sc_hours:QA,sc_interval:UA,sc_intervalBetween:$A,sc_invalid_cron:PA,sc_minutes:WA,sc_months:BA,sc_once:JA,sc_period:RA,sc_seconds:FA,sc_simple:GA,sc_specific:HA,sc_specific_dates:VA,sc_specific_dow:ZA,sc_specific_dows:XA,sc_specific_hours:KA,sc_specific_minutes:qA,sc_specific_months:e2,sc_specific_seconds:t2,sc_time:s2,sc_to:i2,sc_wizard:r2,sch_all:o2,sch_astroDay:n2,sch_astroNight:a2,sch_astro_dawn:M2,sch_astro_dusk:c2,sch_astro_goldenHour:u2,sch_astro_goldenHourEnd:l2,sch_astro_nadir:N2,sch_astro_nauticalDawn:L2,sch_astro_nauticalDusk:g2,sch_astro_night:j2,sch_astro_nightEnd:y2,sch_astro_solarNoon:T2,sch_astro_sunrise:D2,sch_astro_sunriseEnd:d2,sch_astro_sunset:h2,sch_astro_sunsetStart:z2,sch_at:w2,sch_desc_atTime:C2,sch_desc_everyDay:I2,sch_desc_everyHour:p2,sch_desc_everyMinute:A2,sch_desc_everyMonth:m2,sch_desc_everyNDay:O2,sch_desc_everyNHours:E2,sch_desc_everyNMinutes:f2,sch_desc_everyNMonths:x2,sch_desc_everyNWeeks:_2,sch_desc_everyNYears:S2,sch_desc_everyWeek:k2,sch_desc_everyYear:Y2,sch_desc_intervalFromTo:v2,sch_desc_never:b2,sch_desc_onDate:Q2,sch_desc_onDates:U2,sch_desc_onEveryDate:$2,sch_desc_onMonth:P2,sch_desc_onMonths:W2,sch_desc_onWeekday:B2,sch_desc_onWeekdays:J2,sch_desc_onWeekends:R2,sch_desc_onWorkdays:F2,sch_desc_onceInPast:G2,sch_desc_once_on:H2,sch_desc_validFrom:V2,sch_desc_validFromTo:Z2,sch_desc_validTo:X2,sch_every:K2,sch_exactTime:q2,sch_from:em,sch_fromTo:tm,sch_intervalTime:sm,sch_invert:im,sch_no_one:rm,sch_on:om,sch_period:nm,sch_periodDaily:am,sch_periodDates:Mm,sch_periodDay:cm,sch_periodEvery:um,sch_periodEveryDay:lm,sch_periodEveryMonth:Nm,sch_periodEveryWeek:Lm,sch_periodEveryYear:gm,sch_periodHours:jm,sch_periodMinutes:ym,sch_periodMonth:Tm,sch_periodMonthly:Dm,sch_periodOnce:dm,sch_periodSpecificMonths:hm,sch_periodWeek:zm,sch_periodWeekdays:wm,sch_periodWeekend:Cm,sch_periodWeekly:Im,sch_periodWorkdays:pm,sch_periodYear:Am,sch_periodYearly:mm,sch_specificTime:Om,sch_time:Em,sch_to:fm,sch_valid:xm,sch_validFrom:_m,sch_validTo:Sm,sch_wholeDay:km,sch_yearEveryMonth:Ym},bm="Действия",Qm="Добавить",Um="Отмена",$m="Категории",Pm="Проверено",Wm="Удалить",Bm="Закрыть",Jm="Коммерческая",Rm="Настроить",Fm="Соединение установлено",Gm="Продолжать",Hm="скопировано",Vm="Создать",Zm="Обрезать",Xm="Delete",Km="Удалить",qm="Отказаться",eO="Отключено",tO="Ошибка",sO="Фильтр",iO="Пятница",rO="Широта",oO="Выйти",nO="Долгота",aO="Сообщение",MO="Понедельник",cO="Имя",uO="Объекты",lO="Ok",NO="Продукт",LO="Переименовать/Переместить/Копировать",gO="Повторение",jO="Заменять",yO="Начало",TO="Суббота",DO="Сохранить",dO="выбранный",hO="Состояния",zO="Воскресенье",wO="Четверг",CO="Времени",IO="Вторник",pO="Обновить",AO="Годен до",mO="Значение",OO="Версия",EO="Среда",fO="Ширина",xO="Да",_O="разное",SO="Каждый может читать объект",kO="Каждый может читать состояние",YO="Каждый может написать объект",vO="Каждый может написать состояние",bO="Группа может читать объект",QO="Группа может читать состояние",UO="Группа может писать объект",$O="Группа может записывать состояние",PO="Владелец может читать объект",WO="Владелец может читать состояние",BO="Владелец может писать объект",JO="Владелец может писать состояние",RO="Кнопки",FO="Изменено с",GO="Закрыть",HO="Создать логическое состояние",VO="Создать канал",ZO="Создать устройство",XO="Создать состояние номера",KO="Создать состояние",qO="Создать состояние строки",eE="д.",tE="Пт",sE="Пн",iE="Сб",rE="Вс",oE="Чт",nE="Вт",aE="Ср",ME="Экспертный режим",cE="ЛОЖЬ",uE="Все файлы",lE="Аудио",NE="Код/JSON",LE="Картинки",gE="Текст",jE="видео",yE="настройки",TE="без",DE="функция",dE="ID",hE="Имя",zE="роль",wE="комната",CE="Тип",IE="Неверные настройки",pE="Последнее изменение",AE="локально",mE="Апр",OE="Авг",EE="Дек",fE="Фев",xE="Янв",_E="Июл",SE="Июн",kE="Май",YE="Мрт",vE="Ноя",bE="Окт",QE="Сен",UE="Апр",$E="Авг",PE="Дек",WE="Фев",BE="Янв",JE="Июнь",RE="Июль",FE="Май",GE="Март",HE="Ноя",VE="Окт",ZE="Сен",XE="ничего",KE="Объект изменен",qE="Последний раз объект изменен в",ef="Настройки из другого адаптера %s",tf="Код качества",sf="повтор",rf="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",of="Показать все",nf="Состояние изменено",af="Объект изменен с",Mf="Отметка времени",cf="Подтверждено",uf="Комментарий",lf="Скопируйте значение состояния",Nf="Удерживайте клавишу Cltr/⌘, чтобы открыть ссылку",Lf="Пользовательские настройки",gf="Удалить объект",jf="Редактировать объект",yf="Изменить значение состояния",Tf="Истекает через",Df="От",df="Последнее изменение",hf="Качество",zf="Отметка времени",wf="пользователь",Cf="Значение",If="истинный",pf="Значение",Af="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",mf="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",Of="CRON",Ef="Дата",ff="Даты",xf="День",_f="День недели",Sf="каждый(ую/ые)",kf="каждый N день",Yf="каждый N-й день недели",vf="каждый N день недели",bf="каждые N часов",Qf="каждые N минут",Uf="каждые N месяцев",$f="каждые N секунд",Pf="каждый день",Wf="Каждый день недели",Bf="каждый день недели",Jf="каждый час",Rf="каждую минуту",Ff="каждый месяц",Gf="каждую секунду",Hf="От",Vf="часы",Zf="Интервал",Xf="Интервал между",Kf="Неверный CRON",qf="минуты",ex="Месяцы",tx="один раз",sx="Период",ix="секунды",rx="Просто",ox="Конкретное время",nx="конкретные даты",ax="конкретный день(а) недели",Mx="конкретный день недели",cx="конкретные часы",ux="конкретные минуты",lx="конкретные месяцы",Nx="конкретные секунды",Lx="Время",gx="До",jx="Форма",yx="все",Tx="днём",Dx="ночью",dx="Рассвет",hx="Сумерки",zx="Золотой час",wx="Конец золотого часа",Cx="Надир",Ix="Морской рассвет",px="Морские сумерки",Ax="Ночь",mx="Конец ночи",Ox="Солнечный полдень",Ex="Восход",fx="Восход солнца",xx="Заход солнца",_x="Начало заката",Sx="дата",kx="в %s",Yx="каждый день",vx="каждый час",bx="каждую минуту",Qx="каждый месяц",Ux="каждый %s день",$x="каждый %s часов",Px="каждые %s минут",Wx="каждые %s месяцев",Bx="каждые %s недель",Jx="каждые %s лет",Rx="каждую неделю",Fx="каждый год",Gx="от %s до %s",Hx="никогда",Vx="%s %s",Zx="%s и %s",Xx="в каждый день",Kx="%s",qx="%s и %s",e_="%s",t_="%s и %s",s_="на выходных",i_="в рабочие дни",r_="не будет больше выполняться, потому что начало в прошлом",o_="%s",n_="%s",a_="Выполнить с",M_="%s",c_="каждый",u_="Конкретное время",l_="от",N_="От и до",L_="Интервал времени",g_="инвертировать",j_="никакой",y_="на",T_="период",D_="Ежедневно",d_="Даты",h_="День",z_="каждый",w_="Каждый день",C_="Каждый месяц",I_="Каждую неделю",p_="Каждый год",A_="часов",m_="минут",O_="месяц",E_="ежемесячно",f_="однажды",x_="Конкретные месяцы",__="Неделю",S_="Будние дни",k_="выходные",Y_="еженедельно",v_="Рабочие дни",b_="Год",Q_="каждый год",U_="Конкретное время",$_="Время",P_="в",W_="действительный",B_="от",J_="в",R_="Весь день",F_="каждый месяц",G_={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию",ra_Actions:bm,"ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:Qm,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:Um,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:$m,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:Pm,ra_Clear:Wm,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:Bm,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:Jm,ra_Configure:Rm,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:Fm,ra_Continue:Gm,ra_Copied:Hm,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:Vm,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:Zm,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:Xm,ra_Delete:Km,"ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:qm,ra_Disconnected:eO,"ra_Do not ask for next 2 hours in this session":"Не спрашивайте о следующих 2 часах в этом сеансе","ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit full path":"Изменить полный путь","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение","ra_Enter the code from that page here":"Введите код с этой страницы здесь",ra_Error:tO,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:sO,"ra_Filter and Data Actions":"Фильтрация и действия с данными","ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:iO,"ra_Get %s access":"Получить %s доступ","ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:rO,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Logout:oO,ra_Longitude:nO,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:aO,ra_Monday:MO,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:cO,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:uO,ra_Ok:lO,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please allow popups in your browser for this page!":"Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Press ENTER Key to add new item":"Нажмите клавишу ENTER, чтобы добавить новый элемент.","ra_Private certificate":"Частный сертификат",ra_Product:NO,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Rename_Move_Copy:LO,"ra_Renew %s access":"Продлить доступ %s",ra_Repeat:gO,ra_Replace:jO,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:yO,ra_Saturday:TO,ra_Save:DO,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:dO,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Session will expire in %s seconds. Continue?":"Сессия истечет через %s секунд. Продолжить?","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:hO,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.","ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:zO,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:wO,ra_Timestamp:CO,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:IO,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:pO,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:AO,ra_Value:mO,ra_Version:OO,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:EO,ra_Width:fO,ra_Yes:xO,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст",ra___different__:_O,ra_aclEveryone_read_object:SO,ra_aclEveryone_read_state:kO,ra_aclEveryone_write_object:YO,ra_aclEveryone_write_state:vO,ra_aclGroup_read_object:bO,ra_aclGroup_read_state:QO,ra_aclGroup_write_object:UO,ra_aclGroup_write_state:$O,ra_aclOwner_read_object:PO,ra_aclOwner_read_state:WO,ra_aclOwner_write_object:BO,ra_aclOwner_write_state:JO,ra_buttons:RO,ra_changedFrom:FO,ra_close:GO,ra_create_boolean_state:HO,ra_create_channel:VO,ra_create_device:ZO,ra_create_number_state:XO,ra_create_state:KO,ra_create_string_state:qO,ra_daysShortText:eE,ra_dow_Fr:tE,ra_dow_Mo:sE,ra_dow_Sa:iE,ra_dow_Su:rE,ra_dow_Th:oE,ra_dow_Tu:nE,ra_dow_We:aE,ra_expertMode:ME,ra_false:cE,ra_fileType_all:uE,ra_fileType_audio:lE,ra_fileType_code:NE,ra_fileType_images:LE,ra_fileType_txt:gE,ra_fileType_video:jE,"ra_fileType_video,":"видео",ra_filter_customs:yE,ra_filter_customs_without:TE,ra_filter_func:DE,ra_filter_id:dE,ra_filter_name:hE,ra_filter_role:zE,ra_filter_room:wE,ra_filter_type:CE,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:IE,ra_lastChange:pE,ra_locally:AE,ra_month_Apr:mE,ra_month_Aug:OE,ra_month_Dec:EE,ra_month_Feb:fE,ra_month_Jan:xE,ra_month_Jul:_E,ra_month_Jun:SE,ra_month_Mai:kE,ra_month_Mar:YE,ra_month_Nov:vE,ra_month_Oct:bE,ra_month_Sep:QE,ra_months_Apr:UE,ra_months_Aug:$E,ra_months_Dec:PE,ra_months_Feb:WE,ra_months_Jan:BE,ra_months_Jul:JE,ra_months_Jun:RE,ra_months_Mai:FE,ra_months_Mar:GE,ra_months_Nov:HE,ra_months_Oct:VE,ra_months_Sep:ZE,"ra_no confirm for 5 mins":"не спрашивать подтверждения в течение 5 минут",ra_none:XE,ra_object_changed_by:KE,ra_object_changed_by_user:qE,ra_otherConfig:ef,ra_qualityCode:tf,ra_repeat:sf,ra_select_folder_hint:rf,ra_show_all:of,ra_state_changed_by:nf,ra_state_changed_from:af,ra_timestamp:Mf,ra_tooltip_ack:cf,ra_tooltip_comment:uf,ra_tooltip_copyState:lf,ra_tooltip_ctrlForLink:Nf,ra_tooltip_customConfig:Lf,ra_tooltip_deleteObject:gf,ra_tooltip_editObject:jf,ra_tooltip_editState:yf,ra_tooltip_expire:Tf,ra_tooltip_from:Df,ra_tooltip_lc:df,ra_tooltip_quality:hf,ra_tooltip_ts:zf,ra_tooltip_user:wf,ra_tooltip_value:Cf,ra_true:If,"ra_use seconds":"секунды",ra_val:pf,"ra_via internet":"через интернет",ra_warning_every_minute:Af,ra_warning_every_second:mf,sc_cron:Of,sc_date:Ef,sc_dates:ff,sc_dow:xf,sc_dows:_f,sc_every:Sf,sc_everyN_dates:kf,sc_everyN_dow:Yf,sc_everyN_dows:vf,sc_everyN_hours:bf,sc_everyN_minutes:Qf,sc_everyN_months:Uf,sc_everyN_seconds:$f,sc_every_dates:Pf,sc_every_dow:Wf,sc_every_dows:Bf,sc_every_hours:Jf,sc_every_minutes:Rf,sc_every_months:Ff,sc_every_seconds:Gf,sc_from:Hf,sc_hours:Vf,sc_interval:Zf,sc_intervalBetween:Xf,sc_invalid_cron:Kf,sc_minutes:qf,sc_months:ex,sc_once:tx,sc_period:sx,sc_seconds:ix,sc_simple:rx,sc_specific:ox,sc_specific_dates:nx,sc_specific_dow:ax,sc_specific_dows:Mx,sc_specific_hours:cx,sc_specific_minutes:ux,sc_specific_months:lx,sc_specific_seconds:Nx,sc_time:Lx,sc_to:gx,sc_wizard:jx,sch_all:yx,sch_astroDay:Tx,sch_astroNight:Dx,sch_astro_dawn:dx,sch_astro_dusk:hx,sch_astro_goldenHour:zx,sch_astro_goldenHourEnd:wx,sch_astro_nadir:Cx,sch_astro_nauticalDawn:Ix,sch_astro_nauticalDusk:px,sch_astro_night:Ax,sch_astro_nightEnd:mx,sch_astro_solarNoon:Ox,sch_astro_sunrise:Ex,sch_astro_sunriseEnd:fx,sch_astro_sunset:xx,sch_astro_sunsetStart:_x,sch_at:Sx,sch_desc_atTime:kx,sch_desc_everyDay:Yx,sch_desc_everyHour:vx,sch_desc_everyMinute:bx,sch_desc_everyMonth:Qx,sch_desc_everyNDay:Ux,sch_desc_everyNHours:$x,sch_desc_everyNMinutes:Px,sch_desc_everyNMonths:Wx,sch_desc_everyNWeeks:Bx,sch_desc_everyNYears:Jx,sch_desc_everyWeek:Rx,sch_desc_everyYear:Fx,sch_desc_intervalFromTo:Gx,sch_desc_never:Hx,sch_desc_onDate:Vx,sch_desc_onDates:Zx,sch_desc_onEveryDate:Xx,sch_desc_onMonth:Kx,sch_desc_onMonths:qx,sch_desc_onWeekday:e_,sch_desc_onWeekdays:t_,sch_desc_onWeekends:s_,sch_desc_onWorkdays:i_,sch_desc_onceInPast:r_,sch_desc_once_on:o_,sch_desc_validFrom:n_,sch_desc_validFromTo:a_,sch_desc_validTo:M_,sch_every:c_,sch_exactTime:u_,sch_from:l_,sch_fromTo:N_,sch_intervalTime:L_,sch_invert:g_,sch_no_one:j_,sch_on:y_,sch_period:T_,sch_periodDaily:D_,sch_periodDates:d_,sch_periodDay:h_,sch_periodEvery:z_,sch_periodEveryDay:w_,sch_periodEveryMonth:C_,sch_periodEveryWeek:I_,sch_periodEveryYear:p_,sch_periodHours:A_,sch_periodMinutes:m_,sch_periodMonth:O_,sch_periodMonthly:E_,sch_periodOnce:f_,sch_periodSpecificMonths:x_,sch_periodWeek:__,sch_periodWeekdays:S_,sch_periodWeekend:k_,sch_periodWeekly:Y_,sch_periodWorkdays:v_,sch_periodYear:b_,sch_periodYearly:Q_,sch_specificTime:U_,sch_time:$_,sch_to:P_,sch_valid:W_,sch_validFrom:B_,sch_validTo:J_,sch_wholeDay:R_,sch_yearEveryMonth:F_},H_="Ações",V_="Acrescentar",Z_="Cancelar",X_="Categorias",K_="Verificado",q_="Excluir",eS="Perto",tS="Comercial",sS="Configurar",iS="Conectado",rS="Continuar",oS="Copiado",nS="Crio",aS="Colheita",MS="Delete",cS="Excluir",uS="Descartar",lS="Desconectado",NS="Erro",LS="Filtro",gS="Sexta-feira",jS="Latitude",yS="Sair",TS="Longitude",DS="mensagem",dS="Segunda-feira",hS="Nome",zS="Objetos",wS="Está bem",CS="produtos",IS="Renomear/Mover/Copiar",pS="Repita",AS="Substituir",mS="Raiz",OS="Sábado",ES="Salve ",fS="Selecionado",xS="Estados",_S="Domingo",SS="Quinta-feira",kS="Timestamp",YS="Terça-feira",vS="Atualizar",bS="Válida até",QS="Valor",US="Versão",$S="Quarta-feira",PS="Largura",WS="Sim",BS="diferente",JS="Todos podem ler objetos",RS="Todos podem ler o estado",FS="Todos podem escrever objetos",GS="Todos podem escrever o estado",HS="O grupo pode ler o objeto",VS="O grupo pode ler o estado",ZS="O grupo pode escrever o objeto",XS="O grupo pode escrever o estado",KS="O proprietário pode ler o objeto",qS="O proprietário pode ler o estado",e3="O proprietário pode escrever o objeto",t3="O proprietário pode escrever o estado",s3="Botões",i3="Mudou de",r3="fechar",o3="Criar estado booleano",n3="Criar canal",a3="Criar dispositivo",M3="Criar estado numérico",c3="Criar estado",u3="Criar estado de string",l3="d.",N3="Fr",L3="Mo",g3="Sa",j3="Su",y3="º",T3="Tu",D3="Nós",d3="Modo especialista",h3="FALSO",z3="Todos os arquivos",w3="áudio",C3="Código/JSON",I3="Imagens",p3="Texto",A3="Vídeo",m3="Configurações",O3="sem",E3="Função",f3="ID",x3="Nome",_3="Papel (Função)",S3="Quarto",k3="Tipo",Y3="Configurações inválidas",v3="Última mudança",b3="localmente",Q3="abril",U3="agosto",$3="dezembro",P3="fevereiro",W3="janeiro",B3="julho",J3="junho",R3="Mai",F3="março",G3="novembro",H3="outubro",V3="setembro",Z3="abril",X3="agosto",K3="dezembro",q3="fevereiro",e5="janeiro",t5="julho",s5="junho",i5="Mai",r5="março",o5="novembro",n5="outubro",a5="setembro",M5="Nenhum",c5="Objeto alterado por",u5="Objeto alterado pela última vez em",l5="Configurações de outro adaptador %s",N5="Código de qualidade",L5="repetir",g5='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',j5="Mostrar tudo",y5="Estado alterado por",T5="Objeto alterado de",D5="Timestamp",d5="Confirmado",h5="Comente",z5="Copie o valor do estado",w5="Segure a tecla Ctrl/⌘ para abrir o link",C5="Opções customizadas",I5="Excluir objeto",p5="Editar objeto",A5="Edite o valor do estado",m5="Expira em",O5="De",E5="Última alteração",f5="Qualidade",x5="Timestamp",_5="Usuário",S5="Valor",k5="verdadeiro",Y5="Valor",v5="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",b5="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",Q5="CRON",U5="Data",$5="Dias",P5="Dia",W5="Dia da semana",B5="todos",J5="a cada N dias",R5="todo enésimo dia da semana",F5="todos os N dias da semana",G5="a cada N horas",H5="a cada N minutos",V5="a cada N meses",Z5="a cada N segundos",X5="todo dia",K5="todos os dias da semana",q5="todos os dias da semana",ek="toda hora",tk="todo minuto",sk="todo mês",ik="todo segundo",rk="de",ok="horas",nk="intervalo",ak="intervalo entre",Mk="CRON inválido",ck="minutos",uk="meses",lk="uma vez",Nk="período",Lk="segundos",gk="simples",jk="tempo específico",yk="datas específicas",Tk="dia(s) específico(s) da semana",Dk="dia específico de semanas",dk="horas específicas",hk="minutos específicos",zk="meses específicos",wk="segundos específicos",Ck="tempo",Ik="para",pk="assistente",Ak="tudo",mk="dia astral",Ok="noite astral",Ek="amanhecer",fk="anoitecer",xk="hora dourada",_k="Fim da hora dourada",Sk="nadir",kk="Amanhecer náutico",Yk="Anoitecer náutico",vk="noite",bk="fim da noite",Qk="meio-dia solar",Uk="nascer do sol",$k="fim do nascer do sol",Pk="pôr do sol",Wk="início do pôr do sol",Bk="às",Jk="em %s",Rk="todo dia",Fk="toda hora",Gk="todo minuto",Hk="todo mês",Vk="a cada %s dias",Zk="a cada %s horas",Xk="a cada %s minutos",Kk="a cada %s meses",qk="a cada %s semanas",eY="a cada %s anos",tY="toda semana",sY="todo ano",iY="de %s para %s",rY="nunca",oY="em %s de %s",nY="em %s e %s de",aY="em toda data de",MY="%s",cY="%s e %s",uY="em %s",lY="em %s e %s",NY="nos fins de semana",LY="em dias úteis",gY="não será mais executado, porque o começo está no passado",jY="em %s",yY="de %s",TY="Executar de até",DY="até %s",dY="cada",hY="tempo específico",zY="de",wY="de a´t",CY="tempo de intervalo",IY="invertido",pY="nenhum",AY="em",mY="período",OY="diariamente",EY="datas",fY="dia",xY="todos",_Y="todo dia",SY="todo mês",kY="toda semana",YY="todo ano",vY="horas",bY="minutos",QY="mês",UY="por mês",$Y="uma vez",PY="meses específicos",WY="semana",BY="dias úteis",JY="final de semana",RY="semanal",FY="dias úteis",GY="ano",HY="anual",VY="tempo específico",ZY="tempo",XY="para",KY="válido",qY="de",ev="para",tv="dia inteiro",sv="todo mês",iv={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença",ra_Actions:H_,"ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:V_,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:Z_,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:X_,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:K_,ra_Clear:q_,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:eS,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:tS,ra_Configure:sS,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:iS,ra_Continue:rS,ra_Copied:oS,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:nS,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:aS,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:MS,ra_Delete:cS,"ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:uS,ra_Disconnected:lS,"ra_Do not ask for next 2 hours in this session":"Não peça as próximas 2 horas nesta sessão","ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit full path":"Editar caminho completo","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Digite o código dessa página aqui",ra_Error:NS,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:LS,"ra_Filter and Data Actions":"Ações de filtro e dados","ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:gS,"ra_Get %s access":"Obtenha acesso %s","ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:jS,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Logout:yS,ra_Longitude:TS,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:DS,ra_Monday:dS,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:hS,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:zS,ra_Ok:wS,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please allow popups in your browser for this page!":"Por favor, permita pop-ups no seu navegador para esta página!","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Press ENTER Key to add new item":"Pressione a tecla ENTER para adicionar um novo item","ra_Private certificate":"certificado privado",ra_Product:CS,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Rename_Move_Copy:IS,"ra_Renew %s access":"Renovar acesso %s",ra_Repeat:pS,ra_Replace:AS,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:mS,ra_Saturday:OS,ra_Save:ES,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:fS,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"A sessão irá expirar em %s segundos. Continuar?","ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:xS,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado com sucesso. Token válido até %s e será renovado automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.","ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:_S,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:SS,ra_Timestamp:kS,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:YS,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:vS,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:bS,ra_Value:QS,ra_Version:US,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:$S,ra_Width:PS,ra_Yes:WS,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto",ra___different__:BS,ra_aclEveryone_read_object:JS,ra_aclEveryone_read_state:RS,ra_aclEveryone_write_object:FS,ra_aclEveryone_write_state:GS,ra_aclGroup_read_object:HS,ra_aclGroup_read_state:VS,ra_aclGroup_write_object:ZS,ra_aclGroup_write_state:XS,ra_aclOwner_read_object:KS,ra_aclOwner_read_state:qS,ra_aclOwner_write_object:e3,ra_aclOwner_write_state:t3,ra_buttons:s3,ra_changedFrom:i3,ra_close:r3,ra_create_boolean_state:o3,ra_create_channel:n3,ra_create_device:a3,ra_create_number_state:M3,ra_create_state:c3,ra_create_string_state:u3,ra_daysShortText:l3,ra_dow_Fr:N3,ra_dow_Mo:L3,ra_dow_Sa:g3,ra_dow_Su:j3,ra_dow_Th:y3,ra_dow_Tu:T3,ra_dow_We:D3,ra_expertMode:d3,ra_false:h3,ra_fileType_all:z3,ra_fileType_audio:w3,ra_fileType_code:C3,ra_fileType_images:I3,ra_fileType_txt:p3,ra_fileType_video:A3,"ra_fileType_video,":"Vídeo",ra_filter_customs:m3,ra_filter_customs_without:O3,ra_filter_func:E3,ra_filter_id:f3,ra_filter_name:x3,ra_filter_role:_3,ra_filter_room:S3,ra_filter_type:k3,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:Y3,ra_lastChange:v3,ra_locally:b3,ra_month_Apr:Q3,ra_month_Aug:U3,ra_month_Dec:$3,ra_month_Feb:P3,ra_month_Jan:W3,ra_month_Jul:B3,ra_month_Jun:J3,ra_month_Mai:R3,ra_month_Mar:F3,ra_month_Nov:G3,ra_month_Oct:H3,ra_month_Sep:V3,ra_months_Apr:Z3,ra_months_Aug:X3,ra_months_Dec:K3,ra_months_Feb:q3,ra_months_Jan:e5,ra_months_Jul:t5,ra_months_Jun:s5,ra_months_Mai:i5,ra_months_Mar:r5,ra_months_Nov:o5,ra_months_Oct:n5,ra_months_Sep:a5,"ra_no confirm for 5 mins":"sem confirmação por 5 minutos",ra_none:M5,ra_object_changed_by:c5,ra_object_changed_by_user:u5,ra_otherConfig:l5,ra_qualityCode:N5,ra_repeat:L5,ra_select_folder_hint:g5,ra_show_all:j5,ra_state_changed_by:y5,ra_state_changed_from:T5,ra_timestamp:D5,ra_tooltip_ack:d5,ra_tooltip_comment:h5,ra_tooltip_copyState:z5,ra_tooltip_ctrlForLink:w5,ra_tooltip_customConfig:C5,ra_tooltip_deleteObject:I5,ra_tooltip_editObject:p5,ra_tooltip_editState:A5,ra_tooltip_expire:m5,ra_tooltip_from:O5,ra_tooltip_lc:E5,ra_tooltip_quality:f5,ra_tooltip_ts:x5,ra_tooltip_user:_5,ra_tooltip_value:S5,ra_true:k5,"ra_use seconds":"use segundos",ra_val:Y5,"ra_via internet":"via internet",ra_warning_every_minute:v5,ra_warning_every_second:b5,sc_cron:Q5,sc_date:U5,sc_dates:$5,sc_dow:P5,sc_dows:W5,sc_every:B5,sc_everyN_dates:J5,sc_everyN_dow:R5,sc_everyN_dows:F5,sc_everyN_hours:G5,sc_everyN_minutes:H5,sc_everyN_months:V5,sc_everyN_seconds:Z5,sc_every_dates:X5,sc_every_dow:K5,sc_every_dows:q5,sc_every_hours:ek,sc_every_minutes:tk,sc_every_months:sk,sc_every_seconds:ik,sc_from:rk,sc_hours:ok,sc_interval:nk,sc_intervalBetween:ak,sc_invalid_cron:Mk,sc_minutes:ck,sc_months:uk,sc_once:lk,sc_period:Nk,sc_seconds:Lk,sc_simple:gk,sc_specific:jk,sc_specific_dates:yk,sc_specific_dow:Tk,sc_specific_dows:Dk,sc_specific_hours:dk,sc_specific_minutes:hk,sc_specific_months:zk,sc_specific_seconds:wk,sc_time:Ck,sc_to:Ik,sc_wizard:pk,sch_all:Ak,sch_astroDay:mk,sch_astroNight:Ok,sch_astro_dawn:Ek,sch_astro_dusk:fk,sch_astro_goldenHour:xk,sch_astro_goldenHourEnd:_k,sch_astro_nadir:Sk,sch_astro_nauticalDawn:kk,sch_astro_nauticalDusk:Yk,sch_astro_night:vk,sch_astro_nightEnd:bk,sch_astro_solarNoon:Qk,sch_astro_sunrise:Uk,sch_astro_sunriseEnd:$k,sch_astro_sunset:Pk,sch_astro_sunsetStart:Wk,sch_at:Bk,sch_desc_atTime:Jk,sch_desc_everyDay:Rk,sch_desc_everyHour:Fk,sch_desc_everyMinute:Gk,sch_desc_everyMonth:Hk,sch_desc_everyNDay:Vk,sch_desc_everyNHours:Zk,sch_desc_everyNMinutes:Xk,sch_desc_everyNMonths:Kk,sch_desc_everyNWeeks:qk,sch_desc_everyNYears:eY,sch_desc_everyWeek:tY,sch_desc_everyYear:sY,sch_desc_intervalFromTo:iY,sch_desc_never:rY,sch_desc_onDate:oY,sch_desc_onDates:nY,sch_desc_onEveryDate:aY,sch_desc_onMonth:MY,sch_desc_onMonths:cY,sch_desc_onWeekday:uY,sch_desc_onWeekdays:lY,sch_desc_onWeekends:NY,sch_desc_onWorkdays:LY,sch_desc_onceInPast:gY,sch_desc_once_on:jY,sch_desc_validFrom:yY,sch_desc_validFromTo:TY,sch_desc_validTo:DY,sch_every:dY,sch_exactTime:hY,sch_from:zY,sch_fromTo:wY,sch_intervalTime:CY,sch_invert:IY,sch_no_one:pY,sch_on:AY,sch_period:mY,sch_periodDaily:OY,sch_periodDates:EY,sch_periodDay:fY,sch_periodEvery:xY,sch_periodEveryDay:_Y,sch_periodEveryMonth:SY,sch_periodEveryWeek:kY,sch_periodEveryYear:YY,sch_periodHours:vY,sch_periodMinutes:bY,sch_periodMonth:QY,sch_periodMonthly:UY,sch_periodOnce:$Y,sch_periodSpecificMonths:PY,sch_periodWeek:WY,sch_periodWeekdays:BY,sch_periodWeekend:JY,sch_periodWeekly:RY,sch_periodWorkdays:FY,sch_periodYear:GY,sch_periodYearly:HY,sch_specificTime:VY,sch_time:ZY,sch_to:XY,sch_valid:KY,sch_validFrom:qY,sch_validTo:ev,sch_wholeDay:tv,sch_yearEveryMonth:sv},rv="Acties",ov="toevoegen",nv="Annuleer",av="Categorieën",Mv="Gecontroleerd",cv="Verwijderen",uv="Dichtbij",lv="Reclame",Nv="Configureren",Lv="Verbonden",gv="Doorgaan",jv="Gekopieerd",yv="Creëer",Tv="Bijsnijden",Dv="Delete",dv="Verwijderen",hv="Weggooien",zv="Verbinding verbroken",wv="Fout",Cv="Filter",Iv="Vrijdag",pv="Breedtegraad",Av="Uitloggen",mv="Lengtegraad",Ov="Bericht",Ev="Maandag",fv="Naam",xv="Voorwerpen",_v="OK",Sv="Product",kv="Hernoemen/Verplaatsen/Kopiëren",Yv="Herhaling",vv="Vervangen",bv="Wortel",Qv="Zaterdag",Uv="Sparen",$v="Geselecteerd",Pv="Staten",Wv="Zondag",Bv="Donderdag",Jv="Tijdstempel",Rv="Dinsdag",Fv="Bijwerken",Gv="Geldig tot",Hv="Waarde",Vv="Versie",Zv="Woensdag",Xv="Breedte",Kv="Ja",qv="verschillend",eb="Iedereen kan object lezen",tb="Iedereen kan staat lezen",sb="Iedereen kan object schrijven",ib="Iedereen kan staat schrijven",rb="Groep kan object lezen",ob="Groep kan status lezen",nb="Groep kan object schrijven",ab="Groep kan staat schrijven",Mb="Eigenaar kan object lezen",cb="Eigenaar kan staat lezen",ub="Eigenaar kan object schrijven",lb="Eigenaar kan staat schrijven",Nb="Toetsen",Lb="Veranderd van",gb="dichtbij",jb="Creëer een Booleaanse status",yb="Kanaal maken",Tb="Apparaat maken",Db="Nummerstatus maken",db="Staat creëren",hb="Tekenreeksstatus maken",zb="d.",wb="Fr",Cb="Mo",Ib="Za",pb="Zo",Ab="Th",mb="Tu",Ob="Wij",Eb="Expert modus",fb="ONWAAR",xb="Alle bestanden",_b="Audio",Sb="Code/JSON",kb="Afbeeldingen",Yb="Tekst",vb="Video",bb="Instellingen",Qb="zonder",Ub="Functie",$b="ID",Pb="Naam",Wb="Rol",Bb="Kamer",Jb="Type",Rb="Ongeldige instellingen",Fb="Laatste wijziging",Gb="plaatselijk",Hb="april",Vb="aug",Zb="dec",Xb="februari",Kb="jan",qb="jul",eQ="juni",tQ="Mei",sQ="mrt",iQ="nov",rQ="Okt",oQ="sept",nQ="april",aQ="aug",MQ="dec",cQ="februari",uQ="jan",lQ="jul",NQ="juni",LQ="Mei",gQ="mrt",jQ="nov",yQ="Okt",TQ="sept",DQ="geen",dQ="Object veranderd door",hQ="Object voor het laatst gewijzigd om",zQ="Instellingen van andere adapter %s",wQ="Kwaliteitscode",CQ="herhalen",IQ='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',pQ="Alles weergeven",AQ="Staat veranderd door",mQ="Object veranderd van",OQ="Tijdstempel",EQ="Erkende vlag",fQ="Opmerking",xQ="Kopieer de statuswaarde",_Q="Houd de Cltr/⌘-toets ingedrukt om de link te openen",SQ="Aangepaste instellingen",kQ="Object verwijderen",YQ="Object bewerken",vQ="Bewerk de statuswaarde",bQ="Verloopt over",QQ="Van",UQ="Laatst gewijzigd",$Q="Kwaliteit",PQ="Tijdstempel",WQ="Gebruiker",BQ="Waarde",JQ="WAAR",RQ="Waarde",FQ="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",GQ="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",HQ="CRON",VQ="Datum",ZQ="data",XQ="Dag",KQ="Dag van de week",qQ="elk",eU="elke N dagen",tU="elke N-de dag van de week",sU="elke N dag van de week",iU="elke N uur",rU="elke N minuten",oU="elke N maanden",nU="elke N seconden",aU="elke dag",MU="elke dag van de week",cU="elke dag van de week",uU="elk uur",lU="elke minuut",NU="elke maand",LU="elke seconde",gU="Van",jU="uren",yU="Interval",TU="Interval tussen",DU="Ongeldige CRON",dU="Notulen",hU="maanden",zU="Een keer",wU="Periode",CU="seconden",IU="Gemakkelijk",pU="Specifieke tijd",AU="specifieke data",mU="specifieke dag(en) van de week",OU="specifieke dag van weken",EU="specifieke uren",fU="specifieke minuten",xU="specifieke maanden",_U="specifieke seconden",SU="Tijd",kU="Naar",YU="tovenaar",vU="allemaal",bU="Astro-dag",QU="Astro-nacht",UU="Dageraad",$U="Schemer",PU="gouden uur",WU="Gouden uur einde",BU="Nadir",JU="Nautische dageraad",RU="Nautische schemering",FU="Nacht",GU="Nacht einde",HU="Zonne middag",VU="zonsopkomst",ZU="Sunrise einde",XU="Zonsondergang",KU="Zonsondergang start",qU="Bij",e8="op %s",t8="elke dag",s8="elk uur",i8="elke minuut",r8="elke maand",o8="elke %s dag",n8="elke %s uur",a8="elke %s minuten",M8="elke %s maanden",c8="elke %s weken",u8="elke %s jaar",l8="elke week",N8="elk jaar",L8="van %s tot %s",g8="nooit",j8="op %s van %s",y8="op %s en %s van",T8="op elke datum van",D8="%s",d8="%s en %s",h8="op %s",z8="op %s en %s",w8="in het weekend",C8="op werkdagen",I8="zal niet meer worden uitgevoerd, omdat start verleden tijd is",p8="op %s",A8="van %s",m8="Uitvoeren van tot",O8="tot %s",E8="elk",f8="Specifieke tijd",x8="van",_8="Van naar",S8="Interval tijd",k8="omkeren",Y8="geen",v8="Aan",b8="Periode",Q8="Dagelijks",U8="data",$8="Dag",P8="elk",W8="Elke dag",B8="Elke maand",J8="Elke week",R8="Elk jaar",F8="uren",G8="Notulen",H8="maand",V8="Maandelijks",Z8="Een keer",X8="Specifieke maanden",K8="Week",q8="Doordeweekse dagen",e6="Weekend",t6="Wekelijks",s6="werkdagen",i6="Jaar",r6="jaar-",o6="Specifieke tijd",n6="Tijd",a6="naar",M6="Geldig",c6="van",u6="naar",l6="Hele dag",N6="elke maand",L6={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie",ra_Actions:rv,"ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:ov,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:nv,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:av,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:Mv,ra_Clear:cv,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:uv,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:lv,ra_Configure:Nv,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:Lv,ra_Continue:gv,ra_Copied:jv,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:yv,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Tv,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:Dv,ra_Delete:dv,"ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:hv,ra_Disconnected:zv,"ra_Do not ask for next 2 hours in this session":"Vraag niet om de volgende 2 uur in deze sessie","ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit full path":"Volledig pad bewerken","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken","ra_Enter the code from that page here":"Voer hier de code van die pagina in",ra_Error:wv,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:Cv,"ra_Filter and Data Actions":"Filter- en gegevensacties","ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:Iv,"ra_Get %s access":"Krijg %s toegang","ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:pv,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Logout:Av,ra_Longitude:mv,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:Ov,ra_Monday:Ev,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:fv,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:xv,ra_Ok:_v,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please allow popups in your browser for this page!":"Sta pop-ups toe in uw browser voor deze pagina!","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Press ENTER Key to add new item":"Druk op de ENTER-toets om een nieuw item toe te voegen","ra_Private certificate":"Privé certificaat",ra_Product:Sv,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Rename_Move_Copy:kv,"ra_Renew %s access":"%s toegang verlengen",ra_Repeat:Yv,ra_Replace:vv,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:bv,ra_Saturday:Qv,ra_Save:Uv,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:$v,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Session will expire in %s seconds. Continue?":"Sessie verloopt over %s seconden. Doorgaan?","ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:Pv,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.","ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:Wv,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:Bv,ra_Timestamp:Jv,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:Rv,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:Fv,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:Gv,ra_Value:Hv,ra_Version:Vv,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:Zv,ra_Width:Xv,ra_Yes:Kv,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren",ra___different__:qv,ra_aclEveryone_read_object:eb,ra_aclEveryone_read_state:tb,ra_aclEveryone_write_object:sb,ra_aclEveryone_write_state:ib,ra_aclGroup_read_object:rb,ra_aclGroup_read_state:ob,ra_aclGroup_write_object:nb,ra_aclGroup_write_state:ab,ra_aclOwner_read_object:Mb,ra_aclOwner_read_state:cb,ra_aclOwner_write_object:ub,ra_aclOwner_write_state:lb,ra_buttons:Nb,ra_changedFrom:Lb,ra_close:gb,ra_create_boolean_state:jb,ra_create_channel:yb,ra_create_device:Tb,ra_create_number_state:Db,ra_create_state:db,ra_create_string_state:hb,ra_daysShortText:zb,ra_dow_Fr:wb,ra_dow_Mo:Cb,ra_dow_Sa:Ib,ra_dow_Su:pb,ra_dow_Th:Ab,ra_dow_Tu:mb,ra_dow_We:Ob,ra_expertMode:Eb,ra_false:fb,ra_fileType_all:xb,ra_fileType_audio:_b,ra_fileType_code:Sb,ra_fileType_images:kb,ra_fileType_txt:Yb,ra_fileType_video:vb,"ra_fileType_video,":"Video",ra_filter_customs:bb,ra_filter_customs_without:Qb,ra_filter_func:Ub,ra_filter_id:$b,ra_filter_name:Pb,ra_filter_role:Wb,ra_filter_room:Bb,ra_filter_type:Jb,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:Rb,ra_lastChange:Fb,ra_locally:Gb,ra_month_Apr:Hb,ra_month_Aug:Vb,ra_month_Dec:Zb,ra_month_Feb:Xb,ra_month_Jan:Kb,ra_month_Jul:qb,ra_month_Jun:eQ,ra_month_Mai:tQ,ra_month_Mar:sQ,ra_month_Nov:iQ,ra_month_Oct:rQ,ra_month_Sep:oQ,ra_months_Apr:nQ,ra_months_Aug:aQ,ra_months_Dec:MQ,ra_months_Feb:cQ,ra_months_Jan:uQ,ra_months_Jul:lQ,ra_months_Jun:NQ,ra_months_Mai:LQ,ra_months_Mar:gQ,ra_months_Nov:jQ,ra_months_Oct:yQ,ra_months_Sep:TQ,"ra_no confirm for 5 mins":"geen bevestiging gedurende 5 minuten",ra_none:DQ,ra_object_changed_by:dQ,ra_object_changed_by_user:hQ,ra_otherConfig:zQ,ra_qualityCode:wQ,ra_repeat:CQ,ra_select_folder_hint:IQ,ra_show_all:pQ,ra_state_changed_by:AQ,ra_state_changed_from:mQ,ra_timestamp:OQ,ra_tooltip_ack:EQ,ra_tooltip_comment:fQ,ra_tooltip_copyState:xQ,ra_tooltip_ctrlForLink:_Q,ra_tooltip_customConfig:SQ,ra_tooltip_deleteObject:kQ,ra_tooltip_editObject:YQ,ra_tooltip_editState:vQ,ra_tooltip_expire:bQ,ra_tooltip_from:QQ,ra_tooltip_lc:UQ,ra_tooltip_quality:$Q,ra_tooltip_ts:PQ,ra_tooltip_user:WQ,ra_tooltip_value:BQ,ra_true:JQ,"ra_use seconds":"gebruik seconden",ra_val:RQ,"ra_via internet":"via internet",ra_warning_every_minute:FQ,ra_warning_every_second:GQ,sc_cron:HQ,sc_date:VQ,sc_dates:ZQ,sc_dow:XQ,sc_dows:KQ,sc_every:qQ,sc_everyN_dates:eU,sc_everyN_dow:tU,sc_everyN_dows:sU,sc_everyN_hours:iU,sc_everyN_minutes:rU,sc_everyN_months:oU,sc_everyN_seconds:nU,sc_every_dates:aU,sc_every_dow:MU,sc_every_dows:cU,sc_every_hours:uU,sc_every_minutes:lU,sc_every_months:NU,sc_every_seconds:LU,sc_from:gU,sc_hours:jU,sc_interval:yU,sc_intervalBetween:TU,sc_invalid_cron:DU,sc_minutes:dU,sc_months:hU,sc_once:zU,sc_period:wU,sc_seconds:CU,sc_simple:IU,sc_specific:pU,sc_specific_dates:AU,sc_specific_dow:mU,sc_specific_dows:OU,sc_specific_hours:EU,sc_specific_minutes:fU,sc_specific_months:xU,sc_specific_seconds:_U,sc_time:SU,sc_to:kU,sc_wizard:YU,sch_all:vU,sch_astroDay:bU,sch_astroNight:QU,sch_astro_dawn:UU,sch_astro_dusk:$U,sch_astro_goldenHour:PU,sch_astro_goldenHourEnd:WU,sch_astro_nadir:BU,sch_astro_nauticalDawn:JU,sch_astro_nauticalDusk:RU,sch_astro_night:FU,sch_astro_nightEnd:GU,sch_astro_solarNoon:HU,sch_astro_sunrise:VU,sch_astro_sunriseEnd:ZU,sch_astro_sunset:XU,sch_astro_sunsetStart:KU,sch_at:qU,sch_desc_atTime:e8,sch_desc_everyDay:t8,sch_desc_everyHour:s8,sch_desc_everyMinute:i8,sch_desc_everyMonth:r8,sch_desc_everyNDay:o8,sch_desc_everyNHours:n8,sch_desc_everyNMinutes:a8,sch_desc_everyNMonths:M8,sch_desc_everyNWeeks:c8,sch_desc_everyNYears:u8,sch_desc_everyWeek:l8,sch_desc_everyYear:N8,sch_desc_intervalFromTo:L8,sch_desc_never:g8,sch_desc_onDate:j8,sch_desc_onDates:y8,sch_desc_onEveryDate:T8,sch_desc_onMonth:D8,sch_desc_onMonths:d8,sch_desc_onWeekday:h8,sch_desc_onWeekdays:z8,sch_desc_onWeekends:w8,sch_desc_onWorkdays:C8,sch_desc_onceInPast:I8,sch_desc_once_on:p8,sch_desc_validFrom:A8,sch_desc_validFromTo:m8,sch_desc_validTo:O8,sch_every:E8,sch_exactTime:f8,sch_from:x8,sch_fromTo:_8,sch_intervalTime:S8,sch_invert:k8,sch_no_one:Y8,sch_on:v8,sch_period:b8,sch_periodDaily:Q8,sch_periodDates:U8,sch_periodDay:$8,sch_periodEvery:P8,sch_periodEveryDay:W8,sch_periodEveryMonth:B8,sch_periodEveryWeek:J8,sch_periodEveryYear:R8,sch_periodHours:F8,sch_periodMinutes:G8,sch_periodMonth:H8,sch_periodMonthly:V8,sch_periodOnce:Z8,sch_periodSpecificMonths:X8,sch_periodWeek:K8,sch_periodWeekdays:q8,sch_periodWeekend:e6,sch_periodWeekly:t6,sch_periodWorkdays:s6,sch_periodYear:i6,sch_periodYearly:r6,sch_specificTime:o6,sch_time:n6,sch_to:a6,sch_valid:M6,sch_validFrom:c6,sch_validTo:u6,sch_wholeDay:l6,sch_yearEveryMonth:N6},g6="Actes",j6="Ajouter",y6="Annuler",T6="Catégories",D6="Vérifié",d6="Effacer",h6="Fermer",z6="Commercial",w6="Configurer",C6="Lié",I6="Continuer",p6="Copié",A6="Créer",m6="Recadrer",O6="Delete",E6="Supprimer",f6="Jeter",x6="Débranché",_6="Erreur",S6="Filtre",k6="Vendredi",Y6="Latitude",v6="Déconnexion",b6="Longitude",Q6="Message",U6="Lundi",$6="Nom",P6="Objets",W6="D'accord",B6="Produit",J6="Renommer/Déplacer/Copier",R6="Répéter",F6="Remplacer",G6="Racine",H6="Samedi",V6="sauver",Z6="Choisi",X6="États",K6="Dimanche",q6="Jeudi",e9="Horodatage",t9="Mardi",s9="Mise à jour",i9="Valable jusqu'au",r9="Valeur",o9="Version",n9="Mercredi",a9="Largeur",M9="Oui",c9="différent",u9="Tout le monde peut lire un objet",l9="Tout le monde peut lire l'état",N9="Tout le monde peut écrire un objet",L9="Tout le monde peut écrire l'état",g9="Le groupe peut lire l'objet",j9="Le groupe peut lire l'état",y9="Le groupe peut écrire un objet",T9="Le groupe peut écrire l'état",D9="Le propriétaire peut lire l'objet",d9="Le propriétaire peut lire l'état",h9="Le propriétaire peut écrire un objet",z9="Le propriétaire peut écrire l'état",w9="Boutons",C9="Changé de",I9="Fermer",p9="Créer un état booléen",A9="Créer une chaîne",m9="Créer un appareil",O9="Créer un état de numéro",E9="Créer un état",f9="Créer un état de chaîne",x9="j.",_9="Fr",S9="Mo",k9="Sa",Y9="Su",v9="Th",b9="Tu",Q9="Nous",U9="Mode expert",$9="FAUX",P9="Tous les fichiers",W9="l'audio",B9="Code/JSON",J9="Images",R9="Texte",F9="Vidéo",G9="Paramètres",H9="sans",V9="Une fonction",Z9="ID",X9="Prénom",K9="Rôle",q9="Pièce",e7="Type",t7="Paramètres invalides",s7="Dernier changement",i7="localement",r7="Avr",o7="Août",n7="Déc",a7="Fév",M7="Jan",c7="Juil",u7="Juin",l7="Mai",N7="Mar",L7="Nov",g7="Oct",j7="Sep",y7="Avr",T7="Août",D7="Déc",d7="Fév",h7="Jan",z7="Juil",w7="Juin",C7="Mai",I7="Mar",p7="Nov",A7="Oct",m7="Sep",O7="rien",E7="Objet modifié par",f7="Objet modifié pour la dernière fois à",x7="Paramètres d'un autre adaptateur %s",_7="Code de qualité",S7="répéter",k7='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',Y7="Tout afficher",v7="État modifié par",b7="Objet changé de",Q7="Horodatage",U7="Drapeau reconnu",$7="Commentaire",P7="Copiez la valeur d'état",W7="Maintenez la touche Cltr/⌘ enfoncée pour ouvrir le lien",B7="Paramètres personnalisés",J7="Supprimer un objet",R7="Modifier l'objet",F7="Modifier la valeur d'état",G7="Expire dans",H7="De",V7="Dernière modification",Z7="Qualité",X7="Horodatage",K7="Utilisateur",q7="Valeur",e$="VRAI",t$="Valeur",s$="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",i$="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",r$="CRON",o$="Date",n$="Rendez-vous",a$="Jour",M$="Jour de la semaine",c$="Chaque",u$="tous les N jours",l$="chaque Nième jour de la semaine",N$="tous les N jours de la semaine",L$="toutes les N heures",g$="toutes les N minutes",j$="tous les N mois",y$="toutes les N secondes",T$="tous les jours",D$="Chaque jour de la semaine",d$="Chaque jour de la semaine",h$="Toutes les heures",z$="chaque minute",w$="chaque mois",C$="chaque seconde",I$="De",p$="Heures",A$="Intervalle",m$="Intervalle entre",O$="CRON non valide",E$="Minutes",f$="mois",x$="Une fois que",_$="Période",S$="Secondes",k$="Facile",Y$="Temps spécifique",v$="dates spécifiques",b$="jour(s) spécifique(s) de la semaine",Q$="jour spécifique de semaines",U$="heures spécifiques",$$="minutes spécifiques",P$="mois spécifiques",W$="secondes spécifiques",B$="Temps",J$="À",R$="sorcier",F$="tout",G$="Journée astronomique",H$="Nuit astronomique",V$="Aube",Z$="Crépuscule",X$="Heure d'or",K$="Fin de l'heure d'or",q$="Nadir",eP="Aube nautique",tP="Crépuscule nautique",sP="Nuit",iP="Fin de nuit",rP="Midi solaire",oP="lever du soleil",nP="Fin du lever du soleil",aP="Le coucher du soleil",MP="Coucher du soleil",cP="à",uP="à %s",lP="tous les jours",NP="Toutes les heures",LP="chaque minute",gP="chaque mois",jP="chaque %s jour",yP="chaque %s heures",TP="toutes les %s minutes",DP="tous les %s mois",dP="chaque %s semaines",hP="tous les %s ans",zP="toutes les semaines",wP="chaque année",CP="de %s à %s",IP="jamais",pP="sur %s de %s",AP="sur %s et %s de",mP="à chaque date de",OP="%s",EP="%s et %s",fP="sur %s",xP="sur %s et %s",_P="les weekends",SP="les jours ouvrables",kP="ne sera plus exécuté, car start est dans le passé",YP="sur %s",vP="de %s",bP="Exécuter de à",QP="à %s",UP="chaque",$P="Temps spécifique",PP="de",WP="De à",BP="Temps d'interval",JP="inverser",RP="aucun",FP="sur",GP="Période",HP="du quotidien",VP="Rendez-vous",ZP="journée",XP="Chaque",KP="Tous les jours",qP="Chaque mois",eW="Toutes les semaines",tW="Chaque année",sW="Heures",iW="Minutes",rW="mois",oW="Mensuel",nW="Une fois que",aW="Mois spécifiques",MW="La semaine",cW="Jours de la semaine",uW="Weekend",lW="Hebdomadaire",NW="Jours ouvrables",LW="Année",gW="Annuel",jW="Temps spécifique",yW="Temps",TW="à",DW="Valide",dW="de",hW="à",zW="Toute la journée",wW="chaque mois",CW={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence",ra_Actions:g6,"ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:j6,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:y6,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:T6,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:D6,ra_Clear:d6,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:h6,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:z6,ra_Configure:w6,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:C6,ra_Continue:I6,ra_Copied:p6,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:A6,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:m6,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:O6,ra_Delete:E6,"ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:f6,ra_Disconnected:x6,"ra_Do not ask for next 2 hours in this session":"Ne demandez pas les 2 prochaines heures de cette session","ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit full path":"Modifier le chemin complet","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur","ra_Enter the code from that page here":"Entrez le code de cette page ici",ra_Error:_6,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:S6,"ra_Filter and Data Actions":"Actions sur les filtres et les données","ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:k6,"ra_Get %s access":"Obtenir l'accès %s","ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:Y6,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Logout:v6,ra_Longitude:b6,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:Q6,ra_Monday:U6,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:$6,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:P6,ra_Ok:W6,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please allow popups in your browser for this page!":"Veuillez autoriser les popups dans votre navigateur pour cette page !","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Press ENTER Key to add new item":"Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément","ra_Private certificate":"Certificat privé",ra_Product:B6,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Rename_Move_Copy:J6,"ra_Renew %s access":"Renouveler l'accès %s",ra_Repeat:R6,ra_Replace:F6,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:G6,ra_Saturday:H6,ra_Save:V6,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:Z6,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Session will expire in %s seconds. Continue?":"La session expirera dans %s secondes. Continuer ?","ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:X6,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.","ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:K6,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:q6,ra_Timestamp:e9,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:t9,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:s9,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:i9,ra_Value:r9,ra_Version:o9,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:n9,ra_Width:a9,ra_Yes:M9,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte",ra___different__:c9,ra_aclEveryone_read_object:u9,ra_aclEveryone_read_state:l9,ra_aclEveryone_write_object:N9,ra_aclEveryone_write_state:L9,ra_aclGroup_read_object:g9,ra_aclGroup_read_state:j9,ra_aclGroup_write_object:y9,ra_aclGroup_write_state:T9,ra_aclOwner_read_object:D9,ra_aclOwner_read_state:d9,ra_aclOwner_write_object:h9,ra_aclOwner_write_state:z9,ra_buttons:w9,ra_changedFrom:C9,ra_close:I9,ra_create_boolean_state:p9,ra_create_channel:A9,ra_create_device:m9,ra_create_number_state:O9,ra_create_state:E9,ra_create_string_state:f9,ra_daysShortText:x9,ra_dow_Fr:_9,ra_dow_Mo:S9,ra_dow_Sa:k9,ra_dow_Su:Y9,ra_dow_Th:v9,ra_dow_Tu:b9,ra_dow_We:Q9,ra_expertMode:U9,ra_false:$9,ra_fileType_all:P9,ra_fileType_audio:W9,ra_fileType_code:B9,ra_fileType_images:J9,ra_fileType_txt:R9,ra_fileType_video:F9,"ra_fileType_video,":"Vidéo",ra_filter_customs:G9,ra_filter_customs_without:H9,ra_filter_func:V9,ra_filter_id:Z9,ra_filter_name:X9,ra_filter_role:K9,ra_filter_room:q9,ra_filter_type:e7,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:t7,ra_lastChange:s7,ra_locally:i7,ra_month_Apr:r7,ra_month_Aug:o7,ra_month_Dec:n7,ra_month_Feb:a7,ra_month_Jan:M7,ra_month_Jul:c7,ra_month_Jun:u7,ra_month_Mai:l7,ra_month_Mar:N7,ra_month_Nov:L7,ra_month_Oct:g7,ra_month_Sep:j7,ra_months_Apr:y7,ra_months_Aug:T7,ra_months_Dec:D7,ra_months_Feb:d7,ra_months_Jan:h7,ra_months_Jul:z7,ra_months_Jun:w7,ra_months_Mai:C7,ra_months_Mar:I7,ra_months_Nov:p7,ra_months_Oct:A7,ra_months_Sep:m7,"ra_no confirm for 5 mins":"pas de confirmation pendant 5 minutes",ra_none:O7,ra_object_changed_by:E7,ra_object_changed_by_user:f7,ra_otherConfig:x7,ra_qualityCode:_7,ra_repeat:S7,ra_select_folder_hint:k7,ra_show_all:Y7,ra_state_changed_by:v7,ra_state_changed_from:b7,ra_timestamp:Q7,ra_tooltip_ack:U7,ra_tooltip_comment:$7,ra_tooltip_copyState:P7,ra_tooltip_ctrlForLink:W7,ra_tooltip_customConfig:B7,ra_tooltip_deleteObject:J7,ra_tooltip_editObject:R7,ra_tooltip_editState:F7,ra_tooltip_expire:G7,ra_tooltip_from:H7,ra_tooltip_lc:V7,ra_tooltip_quality:Z7,ra_tooltip_ts:X7,ra_tooltip_user:K7,ra_tooltip_value:q7,ra_true:e$,"ra_use seconds":"utiliser les secondes",ra_val:t$,"ra_via internet":"par Internet",ra_warning_every_minute:s$,ra_warning_every_second:i$,sc_cron:r$,sc_date:o$,sc_dates:n$,sc_dow:a$,sc_dows:M$,sc_every:c$,sc_everyN_dates:u$,sc_everyN_dow:l$,sc_everyN_dows:N$,sc_everyN_hours:L$,sc_everyN_minutes:g$,sc_everyN_months:j$,sc_everyN_seconds:y$,sc_every_dates:T$,sc_every_dow:D$,sc_every_dows:d$,sc_every_hours:h$,sc_every_minutes:z$,sc_every_months:w$,sc_every_seconds:C$,sc_from:I$,sc_hours:p$,sc_interval:A$,sc_intervalBetween:m$,sc_invalid_cron:O$,sc_minutes:E$,sc_months:f$,sc_once:x$,sc_period:_$,sc_seconds:S$,sc_simple:k$,sc_specific:Y$,sc_specific_dates:v$,sc_specific_dow:b$,sc_specific_dows:Q$,sc_specific_hours:U$,sc_specific_minutes:$$,sc_specific_months:P$,sc_specific_seconds:W$,sc_time:B$,sc_to:J$,sc_wizard:R$,sch_all:F$,sch_astroDay:G$,sch_astroNight:H$,sch_astro_dawn:V$,sch_astro_dusk:Z$,sch_astro_goldenHour:X$,sch_astro_goldenHourEnd:K$,sch_astro_nadir:q$,sch_astro_nauticalDawn:eP,sch_astro_nauticalDusk:tP,sch_astro_night:sP,sch_astro_nightEnd:iP,sch_astro_solarNoon:rP,sch_astro_sunrise:oP,sch_astro_sunriseEnd:nP,sch_astro_sunset:aP,sch_astro_sunsetStart:MP,sch_at:cP,sch_desc_atTime:uP,sch_desc_everyDay:lP,sch_desc_everyHour:NP,sch_desc_everyMinute:LP,sch_desc_everyMonth:gP,sch_desc_everyNDay:jP,sch_desc_everyNHours:yP,sch_desc_everyNMinutes:TP,sch_desc_everyNMonths:DP,sch_desc_everyNWeeks:dP,sch_desc_everyNYears:hP,sch_desc_everyWeek:zP,sch_desc_everyYear:wP,sch_desc_intervalFromTo:CP,sch_desc_never:IP,sch_desc_onDate:pP,sch_desc_onDates:AP,sch_desc_onEveryDate:mP,sch_desc_onMonth:OP,sch_desc_onMonths:EP,sch_desc_onWeekday:fP,sch_desc_onWeekdays:xP,sch_desc_onWeekends:_P,sch_desc_onWorkdays:SP,sch_desc_onceInPast:kP,sch_desc_once_on:YP,sch_desc_validFrom:vP,sch_desc_validFromTo:bP,sch_desc_validTo:QP,sch_every:UP,sch_exactTime:$P,sch_from:PP,sch_fromTo:WP,sch_intervalTime:BP,sch_invert:JP,sch_no_one:RP,sch_on:FP,sch_period:GP,sch_periodDaily:HP,sch_periodDates:VP,sch_periodDay:ZP,sch_periodEvery:XP,sch_periodEveryDay:KP,sch_periodEveryMonth:qP,sch_periodEveryWeek:eW,sch_periodEveryYear:tW,sch_periodHours:sW,sch_periodMinutes:iW,sch_periodMonth:rW,sch_periodMonthly:oW,sch_periodOnce:nW,sch_periodSpecificMonths:aW,sch_periodWeek:MW,sch_periodWeekdays:cW,sch_periodWeekend:uW,sch_periodWeekly:lW,sch_periodWorkdays:NW,sch_periodYear:LW,sch_periodYearly:gW,sch_specificTime:jW,sch_time:yW,sch_to:TW,sch_valid:DW,sch_validFrom:dW,sch_validTo:hW,sch_wholeDay:zW,sch_yearEveryMonth:wW},IW="Azioni",pW="Aggiungere",AW="Annulla",mW="Categorie",OW="Controllato",EW="Elimina",fW="Vicino",xW="Commerciale",_W="Configura",SW="Collegato",kW="Continuare",YW="Copiato",vW="Creare",bW="Raccolto",QW="Delete",UW="Elimina",$W="Scartare",PW="Disconnesso",WW="Errore",BW="Filtro",JW="Venerdì",RW="Latitudine",FW="Esci",GW="Longitudine",HW="Messaggio",VW="Lunedi",ZW="Nome",XW="Oggetti",KW="Ok",qW="Prodotto",eB="Rinomina/Sposta/Copia",tB="Ripetere",sB="Sostituire",iB="Radice",rB="Sabato",oB="Salva",nB="Selezionato",aB="stati",MB="Domenica",cB="Giovedì",uB="Timestamp",lB="Martedì",NB="Aggiornare",LB="Valido fino a",gB="Valore",jB="Versione",yB="Mercoledì",TB="Larghezza",DB="SÌ",dB="diverso",hB="Tutti possono leggere gli oggetti",zB="Tutti possono leggere lo stato",wB="Tutti possono scrivere oggetti",CB="Tutti possono scrivere stato",IB="Il gruppo può leggere l'oggetto",pB="Il gruppo può leggere lo stato",AB="Il gruppo può scrivere l'oggetto",mB="Il gruppo può scrivere lo stato",OB="Il proprietario può leggere l'oggetto",EB="Il proprietario può leggere lo stato",fB="Il proprietario può scrivere l'oggetto",xB="Il proprietario può scrivere lo stato",_B="Bottoni",SB="Cambiato da",kB="vicino",YB="Crea uno stato booleano",vB="Crea canale",bB="Crea dispositivo",QB="Crea lo stato del numero",UB="Crea stato",$B="Crea lo stato della stringa",PB="g.",WB="fr",BB="momento",JB="Sa",RB="su",FB="th",GB="Tu",HB="Noi",VB="Modalità esperto",ZB="FALSO",XB="Tutti i files",KB="Audio",qB="Codice/JSON",eJ="immagini",tJ="Testo",sJ="video",iJ="impostazioni",rJ="senza",oJ="Funzione",nJ="ID",aJ="Nome",MJ="Ruolo",cJ="Camera",uJ="genere",lJ="Impostazioni non valide",NJ="Ultima modifica",LJ="localmente",gJ="apr",jJ="agosto",yJ="Dic",TJ="febbraio",DJ="gen",dJ="lug",hJ="giu",zJ="Mai",wJ="marzo",CJ="nov",IJ="ottobre",pJ="Sett",AJ="apr",mJ="agosto",OJ="Dic",EJ="febbraio",fJ="gen",xJ="lug",_J="giu",SJ="Mai",kJ="marzo",YJ="nov",vJ="ottobre",bJ="Sett",QJ="nessuna",UJ="Oggetto modificato da",$J="L'oggetto è stato modificato l'ultima volta alle",PJ="Impostazioni dall'altro adattatore %s",WJ="Codice di qualità",BJ="ripetere",JJ='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',RJ="Mostra tutto",FJ="Stato cambiato da",GJ="Oggetto cambiato da",HJ="Timestamp",VJ="Bandiera riconosciuta",ZJ="Commento",XJ="Copia il valore dello stato",KJ="Tieni premuto il tasto Cltr/⌘ per aprire il collegamento",qJ="Impostazioni personalizzate",eR="Elimina oggetto",tR="Modifica oggetto",sR="Modifica il valore dello stato",iR="Scade tra",rR="A partire dal",oR="Ultima modifica",nR="Qualità",aR="Data e ora",MR="Utente",cR="Valore",uR="VERO",lR="Valore",NR="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",LR="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",gR="CRON",jR="Data",yR="Date",TR="Giorno",DR="Giorno della settimana",dR="Ogni",hR="ogni N giorni",zR="ogni Nesimo giorno della settimana",wR="ogni N giorno della settimana",CR="ogni N ore",IR="ogni N minuti",pR="ogni N mesi",AR="ogni N secondi",mR="ogni giorno",OR="Tutti i giorni della settimana",ER="Tutti i giorni della settimana",fR="ogni ora",xR="ogni minuto",_R="ogni mese",SR="ogni secondo",kR="A partire dal",YR="Ore",vR="Intervallo",bR="Intervallo tra",QR="CRON non valido",UR="Minuti",$R="mesi",PR="Una volta",WR="Periodo",BR="secondi",JR="Semplice",RR="Orario preciso",FR="date specifiche",GR="giorno/i specifico/i della settimana",HR="giorno specifico delle settimane",VR="orari specifici",ZR="minuti specifici",XR="mesi specifici",KR="secondi specifici",qR="Tempo",eF="Per",tF="procedura guidata",sF="tutti",iF="Astro day",rF="Astro night",oF="Alba",nF="Crepuscolo",aF="Ora d'oro",MF="Fine dell'ora d'oro",cF="Nadir",uF="Alba nautica",lF="Crepuscolo nautico",NF="Notte",LF="Fine della notte",gF="Mezzogiorno solare",jF="Alba",yF="Fine dell'alba",TF="Tramonto",DF="Inizio del tramonto",dF="a",hF="a %s",zF="ogni giorno",wF="ogni ora",CF="ogni minuto",IF="ogni mese",pF="ogni %s giorno",AF="ogni %s ore",mF="ogni %s minuti",OF="ogni %s mesi",EF="ogni %s settimane",fF="ogni %s anni",xF="ogni settimana",_F="ogni anno",SF="da %s a %s",kF="mai",YF="su %s di %s",vF="su %s e %s di",bF="in ogni data di",QF="%s",UF="%s e %s",$F="su %s",PF="su %s e %s",WF="nei finesettimana",BF="nei giorni lavorativi",JF="non verrà più eseguito, perché start è nel passato",RF="su %s",FF="da %s",GF="Eseguire da a",HF="a %s",VF="ogni",ZF="Orario preciso",XF="a partire dal",KF="Da A",qF="Intervallo di tempo",eG="invertire",tG="nessuna",sG="sopra",iG="Periodo",rG="Quotidiano",oG="Date",nG="Giorno",aG="Ogni",MG="Ogni giorno",cG="Ogni mese",uG="Ogni settimana",lG="Ogni anno",NG="Ore",LG="Minuti",gG="mese",jG="Mensile",yG="Una volta",TG="Mesi specifici",DG="Settimana",dG="Giorni della settimana",hG="Fine settimana",zG="settimanalmente",wG="giorni feriali",CG="Anno",IG="Annuale",pG="Orario preciso",AG="Tempo",mG="per",OG="Valido",EG="a partire dal",fG="per",xG="Giorno intero",_G="ogni mese",SG={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza",ra_Actions:IW,"ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:pW,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:AW,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:mW,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:OW,ra_Clear:EW,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:fW,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:xW,ra_Configure:_W,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:SW,ra_Continue:kW,ra_Copied:YW,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:vW,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:bW,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:QW,ra_Delete:UW,"ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:$W,ra_Disconnected:PW,"ra_Do not ask for next 2 hours in this session":"Non chiedere per le prossime 2 ore in questa sessione","ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit full path":"Modifica percorso completo","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore","ra_Enter the code from that page here":"Inserisci qui il codice da quella pagina",ra_Error:WW,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:BW,"ra_Filter and Data Actions":"Azioni sui filtri e sui dati","ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:JW,"ra_Get %s access":"Ottieni l'accesso %s","ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:RW,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Logout:FW,ra_Longitude:GW,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:HW,ra_Monday:VW,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:ZW,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:XW,ra_Ok:KW,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please allow popups in your browser for this page!":"Si prega di abilitare i popup nel browser per questa pagina!","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Press ENTER Key to add new item":"Premere il tasto INVIO per aggiungere un nuovo elemento","ra_Private certificate":"Certificato privato",ra_Product:qW,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Rename_Move_Copy:eB,"ra_Renew %s access":"Rinnova l'accesso %s",ra_Repeat:tB,ra_Replace:sB,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:iB,ra_Saturday:rB,ra_Save:oB,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:nB,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sessione scadrà tra %s secondi. Continuare?","ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:aB,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.","ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:MB,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:cB,ra_Timestamp:uB,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:lB,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:NB,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:LB,ra_Value:gB,ra_Version:jB,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:yB,ra_Width:TB,ra_Yes:DB,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo",ra___different__:dB,ra_aclEveryone_read_object:hB,ra_aclEveryone_read_state:zB,ra_aclEveryone_write_object:wB,ra_aclEveryone_write_state:CB,ra_aclGroup_read_object:IB,ra_aclGroup_read_state:pB,ra_aclGroup_write_object:AB,ra_aclGroup_write_state:mB,ra_aclOwner_read_object:OB,ra_aclOwner_read_state:EB,ra_aclOwner_write_object:fB,ra_aclOwner_write_state:xB,ra_buttons:_B,ra_changedFrom:SB,ra_close:kB,ra_create_boolean_state:YB,ra_create_channel:vB,ra_create_device:bB,ra_create_number_state:QB,ra_create_state:UB,ra_create_string_state:$B,ra_daysShortText:PB,ra_dow_Fr:WB,ra_dow_Mo:BB,ra_dow_Sa:JB,ra_dow_Su:RB,ra_dow_Th:FB,ra_dow_Tu:GB,ra_dow_We:HB,ra_expertMode:VB,ra_false:ZB,ra_fileType_all:XB,ra_fileType_audio:KB,ra_fileType_code:qB,ra_fileType_images:eJ,ra_fileType_txt:tJ,ra_fileType_video:sJ,"ra_fileType_video,":"video",ra_filter_customs:iJ,ra_filter_customs_without:rJ,ra_filter_func:oJ,ra_filter_id:nJ,ra_filter_name:aJ,ra_filter_role:MJ,ra_filter_room:cJ,ra_filter_type:uJ,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:lJ,ra_lastChange:NJ,ra_locally:LJ,ra_month_Apr:gJ,ra_month_Aug:jJ,ra_month_Dec:yJ,ra_month_Feb:TJ,ra_month_Jan:DJ,ra_month_Jul:dJ,ra_month_Jun:hJ,ra_month_Mai:zJ,ra_month_Mar:wJ,ra_month_Nov:CJ,ra_month_Oct:IJ,ra_month_Sep:pJ,ra_months_Apr:AJ,ra_months_Aug:mJ,ra_months_Dec:OJ,ra_months_Feb:EJ,ra_months_Jan:fJ,ra_months_Jul:xJ,ra_months_Jun:_J,ra_months_Mai:SJ,ra_months_Mar:kJ,ra_months_Nov:YJ,ra_months_Oct:vJ,ra_months_Sep:bJ,"ra_no confirm for 5 mins":"nessuna conferma per 5 minuti",ra_none:QJ,ra_object_changed_by:UJ,ra_object_changed_by_user:$J,ra_otherConfig:PJ,ra_qualityCode:WJ,ra_repeat:BJ,ra_select_folder_hint:JJ,ra_show_all:RJ,ra_state_changed_by:FJ,ra_state_changed_from:GJ,ra_timestamp:HJ,ra_tooltip_ack:VJ,ra_tooltip_comment:ZJ,ra_tooltip_copyState:XJ,ra_tooltip_ctrlForLink:KJ,ra_tooltip_customConfig:qJ,ra_tooltip_deleteObject:eR,ra_tooltip_editObject:tR,ra_tooltip_editState:sR,ra_tooltip_expire:iR,ra_tooltip_from:rR,ra_tooltip_lc:oR,ra_tooltip_quality:nR,ra_tooltip_ts:aR,ra_tooltip_user:MR,ra_tooltip_value:cR,ra_true:uR,"ra_use seconds":"usa i secondi",ra_val:lR,"ra_via internet":"attraverso internet",ra_warning_every_minute:NR,ra_warning_every_second:LR,sc_cron:gR,sc_date:jR,sc_dates:yR,sc_dow:TR,sc_dows:DR,sc_every:dR,sc_everyN_dates:hR,sc_everyN_dow:zR,sc_everyN_dows:wR,sc_everyN_hours:CR,sc_everyN_minutes:IR,sc_everyN_months:pR,sc_everyN_seconds:AR,sc_every_dates:mR,sc_every_dow:OR,sc_every_dows:ER,sc_every_hours:fR,sc_every_minutes:xR,sc_every_months:_R,sc_every_seconds:SR,sc_from:kR,sc_hours:YR,sc_interval:vR,sc_intervalBetween:bR,sc_invalid_cron:QR,sc_minutes:UR,sc_months:$R,sc_once:PR,sc_period:WR,sc_seconds:BR,sc_simple:JR,sc_specific:RR,sc_specific_dates:FR,sc_specific_dow:GR,sc_specific_dows:HR,sc_specific_hours:VR,sc_specific_minutes:ZR,sc_specific_months:XR,sc_specific_seconds:KR,sc_time:qR,sc_to:eF,sc_wizard:tF,sch_all:sF,sch_astroDay:iF,sch_astroNight:rF,sch_astro_dawn:oF,sch_astro_dusk:nF,sch_astro_goldenHour:aF,sch_astro_goldenHourEnd:MF,sch_astro_nadir:cF,sch_astro_nauticalDawn:uF,sch_astro_nauticalDusk:lF,sch_astro_night:NF,sch_astro_nightEnd:LF,sch_astro_solarNoon:gF,sch_astro_sunrise:jF,sch_astro_sunriseEnd:yF,sch_astro_sunset:TF,sch_astro_sunsetStart:DF,sch_at:dF,sch_desc_atTime:hF,sch_desc_everyDay:zF,sch_desc_everyHour:wF,sch_desc_everyMinute:CF,sch_desc_everyMonth:IF,sch_desc_everyNDay:pF,sch_desc_everyNHours:AF,sch_desc_everyNMinutes:mF,sch_desc_everyNMonths:OF,sch_desc_everyNWeeks:EF,sch_desc_everyNYears:fF,sch_desc_everyWeek:xF,sch_desc_everyYear:_F,sch_desc_intervalFromTo:SF,sch_desc_never:kF,sch_desc_onDate:YF,sch_desc_onDates:vF,sch_desc_onEveryDate:bF,sch_desc_onMonth:QF,sch_desc_onMonths:UF,sch_desc_onWeekday:$F,sch_desc_onWeekdays:PF,sch_desc_onWeekends:WF,sch_desc_onWorkdays:BF,sch_desc_onceInPast:JF,sch_desc_once_on:RF,sch_desc_validFrom:FF,sch_desc_validFromTo:GF,sch_desc_validTo:HF,sch_every:VF,sch_exactTime:ZF,sch_from:XF,sch_fromTo:KF,sch_intervalTime:qF,sch_invert:eG,sch_no_one:tG,sch_on:sG,sch_period:iG,sch_periodDaily:rG,sch_periodDates:oG,sch_periodDay:nG,sch_periodEvery:aG,sch_periodEveryDay:MG,sch_periodEveryMonth:cG,sch_periodEveryWeek:uG,sch_periodEveryYear:lG,sch_periodHours:NG,sch_periodMinutes:LG,sch_periodMonth:gG,sch_periodMonthly:jG,sch_periodOnce:yG,sch_periodSpecificMonths:TG,sch_periodWeek:DG,sch_periodWeekdays:dG,sch_periodWeekend:hG,sch_periodWeekly:zG,sch_periodWorkdays:wG,sch_periodYear:CG,sch_periodYearly:IG,sch_specificTime:pG,sch_time:AG,sch_to:mG,sch_valid:OG,sch_validFrom:EG,sch_validTo:fG,sch_wholeDay:xG,sch_yearEveryMonth:_G},kG="Comportamiento",YG="Adjuntar",vG="Cancelar",bG="Categorías",QG="Comprobado",UG="Borrar",$G="Cerca",PG="Comercial",WG="Configurar",BG="Conectado",JG="Continuar",RG="Copiado",FG="Crear",GG="Cultivo",HG="Delete",VG="Eliminar",ZG="Desechar",XG="Desconectado",KG="Error",qG="Filtrar",eH="Viernes",tH="Latitud",sH="Cerrar sesión",iH="Longitud",rH="Mensaje",oH="Lunes",nH="Nombre",aH="Objetos",MH="Okay",cH="Producto",uH="Cambiar nombre/Mover/Copiar",lH="Repetir",NH="Reemplazar",LH="Raíz",gH="Sábado",jH="Salvar",yH="Seleccionado",TH="Estados",DH="Domingo",dH="Jueves",hH="Marca de tiempo",zH="Martes",wH="Actualizar",CH="Válida hasta",IH="Valor",pH="Versión",AH="Miércoles",mH="Anchura",OH="Sí",EH="diferente",fH="Todo el mundo puede leer el objeto",xH="Todos pueden leer el estado",_H="Todos pueden escribir objetos",SH="Todos pueden escribir el estado",kH="El grupo puede leer el objeto",YH="El grupo puede leer el estado",vH="El grupo puede escribir un objeto",bH="El grupo puede escribir el estado",QH="El propietario puede leer el objeto",UH="El propietario puede leer el estado",$H="El propietario puede escribir el objeto",PH="El propietario puede escribir el estado",WH="Botones",BH="Cambiaron desde",JH="cerrar",RH="Crear estado booleano",FH="Crear canal",GH="Crear dispositivo",HH="Crear estado numérico",VH="Crear estado",ZH="Crear estado de cadena",XH="d.",KH="Fr",qH="Mes",eV="Sa",tV="Su",sV="Th",iV="Tu",rV="Nosotros",oV="Modo experto",nV="FALSO",aV="Todos los archivos",MV="Audio",cV="Código/JSON",uV="Imágenes",lV="Texto",NV="Video",LV="Configuraciones",gV="sin",jV="Función",yV="ID",TV="Nombre",DV="Papel",dV="Habitación",hV="Tipo",zV="Configuraciones inválidas",wV="Ultimo cambio",CV="en la zona",IV="Abr",pV="Ago",AV="Dic",mV="Feb",OV="Ene",EV="Jul",fV="Jun",xV="Mai",_V="Mar",SV="Nov",kV="Oct",YV="Sep",vV="Abr",bV="Ago",QV="Dic",UV="Feb",$V="Ene",PV="Jul",WV="Jun",BV="Mai",JV="Mar",RV="Nov",FV="Oct",GV="Sep",HV="ninguno",VV="Objeto cambiado por",ZV="Objeto cambiado por última vez a las",XV="Configuraciones de otro adaptador %s",KV="Código de calidad",qV="repetir",eZ='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',tZ="Mostrar todo",sZ="Estado cambiado por",iZ="Objeto cambiado de",rZ="Marca de tiempo",oZ="Bandera reconocida",nZ="Comentario",aZ="Copie el valor del estado",MZ="Mantenga presionada la tecla Cltr/⌘ para abrir el enlace",cZ="Ajustes personalizados",uZ="Eliminar objeto",lZ="Editar objeto",NZ="Edite el valor del estado",LZ="Caduca en",gZ="Desde",jZ="Último cambio",yZ="Calidad",TZ="Sello de tiempo",DZ="Usuario",dZ="Valor",hZ="VERDADERO",zZ="Valor",wZ="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",CZ="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",IZ="CRON",pZ="Fecha",AZ="fechas",mZ="Día",OZ="Día de la semana",EZ="Cada",fZ="cada N días",xZ="cada enésimo día de la semana",_Z="cada N día de la semana",SZ="cada N horas",kZ="cada N minutos",YZ="cada N meses",vZ="cada N segundos",bZ="cada día",QZ="Cada día de la semana",UZ="Cada día de la semana",$Z="cada hora",PZ="cada minuto",WZ="cada mes",BZ="cada segundo",JZ="De",RZ="Horas",FZ="Intervalo",GZ="Intervalo entre",HZ="CRON no válido",VZ="Minutos",ZZ="meses",XZ="Una vez",KZ="Período",qZ="Segundos",eX="Sencillo",tX="Tiempo específico",sX="fechas especificas",iX="día(s) específico(s) de la semana",rX="día específico de semanas",oX="horas específicas",nX="minutos específicos",aX="meses específicos",MX="segundos específicos",cX="Hora",uX="A",lX="Mago",NX="todas",LX="Día astro",gX="Noche astro",jX="Amanecer",yX="Oscuridad",TX="hora dorada",DX="Fin de la hora dorada",dX="Nadir",hX="Amanecer náutico",zX="Anochecer náutico",wX="Noche",CX="Fin de la noche",IX="Mediodía solar",pX="amanecer",AX="Fin del amanecer",mX="Puesta de sol",OX="Puesta de sol",EX="a",fX="en %s",xX="cada día",_X="cada hora",SX="cada minuto",kX="cada mes",YX="cada %s días",vX="cada %s horas",bX="cada %s minutos",QX="cada %s meses",UX="cada %s semanas",$X="cada %s años",PX="cada semana",WX="todos los años",BX="de %s a %s",JX="Nunca",RX="en %s de %s",FX="en %s y %s de",GX="en cada fecha de",HX="%s",VX="%s y %s",ZX="en %s",XX="en %s y %s",KX="en los fines de semana",qX="en días laborables",eK="ya no se ejecutará más, porque el inicio está en el pasado",tK="en %s",sK="de %s",iK="Ejecutar desde hasta",rK="a %s",oK="cada",nK="Tiempo específico",aK="de",MK="De-a",cK="Tiempo de intervalo",uK="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",lK="ninguna",NK="en",LK="Período",gK="Diario",jK="fechas",yK="Día",TK="Cada",DK="Cada día",dK="Cada mes",hK="Cada semana",zK="Todos los años",wK="Horas",CK="Minutos",IK="mes",pK="Mensual",AK="Una vez",mK="Meses específicos",OK="Semana",EK="Días laborables",fK="Fin de semana",xK="Semanal",_K="Días laborables",SK="Año",kK="Anual",YK="Tiempo específico",vK="Hora",bK="a",QK="Válido",UK="de",$K="a",PK="Todo el dia",WK="cada mes",BK={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia",ra_Actions:kG,"ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:YG,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:vG,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:bG,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:QG,ra_Clear:UG,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:$G,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:PG,ra_Configure:WG,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:BG,ra_Continue:JG,ra_Copied:RG,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:FG,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:GG,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:HG,ra_Delete:VG,"ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:ZG,ra_Disconnected:XG,"ra_Do not ask for next 2 hours in this session":"No preguntes por las siguientes 2 horas en esta sesión.","ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit full path":"Editar ruta completa","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Introduzca el código de esa página aquí",ra_Error:KG,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:qG,"ra_Filter and Data Actions":"Acciones de filtrado y datos","ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:eH,"ra_Get %s access":"Obtener %s acceso","ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:tH,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Logout:sH,ra_Longitude:iH,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:rH,ra_Monday:oH,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:nH,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:aH,ra_Ok:MH,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please allow popups in your browser for this page!":"¡Permita ventanas emergentes en su navegador para esta página!","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Press ENTER Key to add new item":"Presione la tecla ENTER para agregar un nuevo elemento","ra_Private certificate":"certificado privado",ra_Product:cH,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Rename_Move_Copy:uH,"ra_Renew %s access":"Renovar el acceso a %s",ra_Repeat:lH,ra_Replace:NH,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:LH,ra_Saturday:gH,ra_Save:jH,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:yH,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sesión expirará en %s segundos. ¿Continuar?","ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:TH,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.","ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:DH,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:dH,ra_Timestamp:hH,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:zH,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:wH,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:CH,ra_Value:IH,ra_Version:pH,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:AH,ra_Width:mH,ra_Yes:OH,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto",ra___different__:EH,ra_aclEveryone_read_object:fH,ra_aclEveryone_read_state:xH,ra_aclEveryone_write_object:_H,ra_aclEveryone_write_state:SH,ra_aclGroup_read_object:kH,ra_aclGroup_read_state:YH,ra_aclGroup_write_object:vH,ra_aclGroup_write_state:bH,ra_aclOwner_read_object:QH,ra_aclOwner_read_state:UH,ra_aclOwner_write_object:$H,ra_aclOwner_write_state:PH,ra_buttons:WH,ra_changedFrom:BH,ra_close:JH,ra_create_boolean_state:RH,ra_create_channel:FH,ra_create_device:GH,ra_create_number_state:HH,ra_create_state:VH,ra_create_string_state:ZH,ra_daysShortText:XH,ra_dow_Fr:KH,ra_dow_Mo:qH,ra_dow_Sa:eV,ra_dow_Su:tV,ra_dow_Th:sV,ra_dow_Tu:iV,ra_dow_We:rV,ra_expertMode:oV,ra_false:nV,ra_fileType_all:aV,ra_fileType_audio:MV,ra_fileType_code:cV,ra_fileType_images:uV,ra_fileType_txt:lV,ra_fileType_video:NV,"ra_fileType_video,":"Video",ra_filter_customs:LV,ra_filter_customs_without:gV,ra_filter_func:jV,ra_filter_id:yV,ra_filter_name:TV,ra_filter_role:DV,ra_filter_room:dV,ra_filter_type:hV,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:zV,ra_lastChange:wV,ra_locally:CV,ra_month_Apr:IV,ra_month_Aug:pV,ra_month_Dec:AV,ra_month_Feb:mV,ra_month_Jan:OV,ra_month_Jul:EV,ra_month_Jun:fV,ra_month_Mai:xV,ra_month_Mar:_V,ra_month_Nov:SV,ra_month_Oct:kV,ra_month_Sep:YV,ra_months_Apr:vV,ra_months_Aug:bV,ra_months_Dec:QV,ra_months_Feb:UV,ra_months_Jan:$V,ra_months_Jul:PV,ra_months_Jun:WV,ra_months_Mai:BV,ra_months_Mar:JV,ra_months_Nov:RV,ra_months_Oct:FV,ra_months_Sep:GV,"ra_no confirm for 5 mins":"Sin confirmación durante 5 minutos",ra_none:HV,ra_object_changed_by:VV,ra_object_changed_by_user:ZV,ra_otherConfig:XV,ra_qualityCode:KV,ra_repeat:qV,ra_select_folder_hint:eZ,ra_show_all:tZ,ra_state_changed_by:sZ,ra_state_changed_from:iZ,ra_timestamp:rZ,ra_tooltip_ack:oZ,ra_tooltip_comment:nZ,ra_tooltip_copyState:aZ,ra_tooltip_ctrlForLink:MZ,ra_tooltip_customConfig:cZ,ra_tooltip_deleteObject:uZ,ra_tooltip_editObject:lZ,ra_tooltip_editState:NZ,ra_tooltip_expire:LZ,ra_tooltip_from:gZ,ra_tooltip_lc:jZ,ra_tooltip_quality:yZ,ra_tooltip_ts:TZ,ra_tooltip_user:DZ,ra_tooltip_value:dZ,ra_true:hZ,"ra_use seconds":"usar segundos",ra_val:zZ,"ra_via internet":"vía Internet",ra_warning_every_minute:wZ,ra_warning_every_second:CZ,sc_cron:IZ,sc_date:pZ,sc_dates:AZ,sc_dow:mZ,sc_dows:OZ,sc_every:EZ,sc_everyN_dates:fZ,sc_everyN_dow:xZ,sc_everyN_dows:_Z,sc_everyN_hours:SZ,sc_everyN_minutes:kZ,sc_everyN_months:YZ,sc_everyN_seconds:vZ,sc_every_dates:bZ,sc_every_dow:QZ,sc_every_dows:UZ,sc_every_hours:$Z,sc_every_minutes:PZ,sc_every_months:WZ,sc_every_seconds:BZ,sc_from:JZ,sc_hours:RZ,sc_interval:FZ,sc_intervalBetween:GZ,sc_invalid_cron:HZ,sc_minutes:VZ,sc_months:ZZ,sc_once:XZ,sc_period:KZ,sc_seconds:qZ,sc_simple:eX,sc_specific:tX,sc_specific_dates:sX,sc_specific_dow:iX,sc_specific_dows:rX,sc_specific_hours:oX,sc_specific_minutes:nX,sc_specific_months:aX,sc_specific_seconds:MX,sc_time:cX,sc_to:uX,sc_wizard:lX,sch_all:NX,sch_astroDay:LX,sch_astroNight:gX,sch_astro_dawn:jX,sch_astro_dusk:yX,sch_astro_goldenHour:TX,sch_astro_goldenHourEnd:DX,sch_astro_nadir:dX,sch_astro_nauticalDawn:hX,sch_astro_nauticalDusk:zX,sch_astro_night:wX,sch_astro_nightEnd:CX,sch_astro_solarNoon:IX,sch_astro_sunrise:pX,sch_astro_sunriseEnd:AX,sch_astro_sunset:mX,sch_astro_sunsetStart:OX,sch_at:EX,sch_desc_atTime:fX,sch_desc_everyDay:xX,sch_desc_everyHour:_X,sch_desc_everyMinute:SX,sch_desc_everyMonth:kX,sch_desc_everyNDay:YX,sch_desc_everyNHours:vX,sch_desc_everyNMinutes:bX,sch_desc_everyNMonths:QX,sch_desc_everyNWeeks:UX,sch_desc_everyNYears:$X,sch_desc_everyWeek:PX,sch_desc_everyYear:WX,sch_desc_intervalFromTo:BX,sch_desc_never:JX,sch_desc_onDate:RX,sch_desc_onDates:FX,sch_desc_onEveryDate:GX,sch_desc_onMonth:HX,sch_desc_onMonths:VX,sch_desc_onWeekday:ZX,sch_desc_onWeekdays:XX,sch_desc_onWeekends:KX,sch_desc_onWorkdays:qX,sch_desc_onceInPast:eK,sch_desc_once_on:tK,sch_desc_validFrom:sK,sch_desc_validFromTo:iK,sch_desc_validTo:rK,sch_every:oK,sch_exactTime:nK,sch_from:aK,sch_fromTo:MK,sch_intervalTime:cK,sch_invert:uK,sch_no_one:lK,sch_on:NK,sch_period:LK,sch_periodDaily:gK,sch_periodDates:jK,sch_periodDay:yK,sch_periodEvery:TK,sch_periodEveryDay:DK,sch_periodEveryMonth:dK,sch_periodEveryWeek:hK,sch_periodEveryYear:zK,sch_periodHours:wK,sch_periodMinutes:CK,sch_periodMonth:IK,sch_periodMonthly:pK,sch_periodOnce:AK,sch_periodSpecificMonths:mK,sch_periodWeek:OK,sch_periodWeekdays:EK,sch_periodWeekend:fK,sch_periodWeekly:xK,sch_periodWorkdays:_K,sch_periodYear:SK,sch_periodYearly:kK,sch_specificTime:YK,sch_time:vK,sch_to:bK,sch_valid:QK,sch_validFrom:UK,sch_validTo:$K,sch_wholeDay:PK,sch_yearEveryMonth:WK},JK="Akcje",RK="Dodać",FK="Anuluj",GK="Kategorie",HK="Sprawdzony",VK="Kasować",ZK="Blisko",XK="Handlowy",KK="Konfiguruj",qK="Połączony",eq="Kontynuować",tq="Skopiowano",sq="Stwórz",iq="Przyciąć",rq="Delete",oq="Usunąć",nq="Wyrzucać",aq="Niepowiązany",Mq="Błąd",cq="Filtr",uq="Piątek",lq="Szerokość",Nq="Wyloguj",Lq="Długość geograficzna",gq="Wiadomość",jq="Poniedziałek",yq="Nazwa",Tq="Obiekty",Dq="Dobrze",dq="Produkt",hq="Zmień nazwę/Przenieś/Kopiuj",zq="Powtarzać",wq="Zastępować",Cq="Korzeń",Iq="Sobota",pq="Zapisać",Aq="Wybrany",mq="Stany",Oq="Niedziela",Eq="Czwartek",fq="Znak czasu",xq="Wtorek",_q="Aktualizacja",Sq="Obowiązuje do",kq="Wartość",Yq="Wersja",vq="Środa",bq="Szerokość",Qq="Tak",Uq="różne",$q="Każdy może czytać obiekt",Pq="Każdy może czytać stan",Wq="Każdy może pisać przedmiot",Bq="Każdy może pisać stan",Jq="Grupa może odczytać obiekt",Rq="Grupa może odczytać stan",Fq="Grupa może pisać obiekt",Gq="Grupa może pisać stan",Hq="Właściciel może czytać obiekt",Vq="Właściciel może odczytać stan",Zq="Właściciel może napisać obiekt",Xq="Właściciel może pisać stan",Kq="guziki",qq="Zmieniony z",eee="blisko",tee="Utwórz stan logiczny",see="Utwórz kanał",iee="Utwórz urządzenie",ree="Utwórz stan liczbowy",oee="Utwórz stan",nee="Utwórz stan ciągu",aee="d.",Mee="Ks",cee="Mo",uee="Sa",lee="Su",Nee="Th",Lee="Tu",gee="My",jee="Tryb ekspercki",yee="FAŁSZ",Tee="Wszystkie pliki",Dee="Audio",dee="Kod/JSON",hee="Obrazy",zee="Tekst",wee="Wideo",Cee="Ustawienia",Iee="bez",pee="Funkcjonować",Aee="ID",mee="Imię",Oee="Rola",Eee="Sala",fee="Rodzaj",xee="Nieprawidłowe ustawienia",_ee="Ostatnia zmiana",See="lokalnie",kee="kwiecień",Yee="sierpień",vee="grudzień",bee="luty",Qee="styczeń",Uee="lipiec",$ee="czerwiec",Pee="Mai",Wee="Zniszczyć",Bee="listopad",Jee="październik",Ree="wrzesień",Fee="kwiecień",Gee="sierpień",Hee="grudzień",Vee="luty",Zee="styczeń",Xee="lipiec",Kee="czerwiec",qee="Mai",ete="Zniszczyć",tte="listopad",ste="październik",ite="wrzesień",rte="Żaden",ote="Obiekt zmieniony przez",nte="Obiekt ostatnio zmieniony o godz",ate="Ustawienia z innego adaptera %s",Mte="Kod jakości",cte="powtarzać",ute="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",lte="Pokaż wszystko",Nte="Stan zmieniony przez",Lte="Obiekt zmieniony z",gte="Znak czasu",jte="Potwierdzon",yte="Komentarz",Tte="Skopiuj wartość stanu",Dte="Przytrzymaj klawisz CTRL/⌘, aby otworzyć link",dte="Własne ustawienia",hte="Usuń obiekt",zte="Edytuj obiekt",wte="Edytuj wartość stanu",Cte="Wygasa za",Ite="Z",pte="Ostatnia zmiana",Ate="Jakość",mte="Znak czasu",Ote="Użytkownik",Ete="Wartość",fte="PRAWDA",xte="Wartość",_te="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Ste="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",kte="CRON",Yte="Data",vte="Daktyle",bte="Dzień",Qte="Dzień tygodnia",Ute="Każdy",$te="co N dni",Pte="w każdy N-ty dzień tygodnia",Wte="co N dnia tygodnia",Bte="co N godzin",Jte="co N minut",Rte="co N miesięcy",Fte="co N sekund",Gte="codziennie",Hte="każdy dzień tygodnia",Vte="każdy dzień tygodnia",Zte="co godzinę",Xte="każda minuta",Kte="każdego miesiąca",qte="każda sekunda",ese="Od",tse="godziny",sse="Interwał",ise="Interwał między",rse="Nieprawidłowy CRON",ose="Minuty",nse="miesięcy",ase="Pewnego razu",Mse="Kropka",cse="sekundy",use="Prosty",lse="Określony czas",Nse="konkretne daty",Lse="określone dni tygodnia",gse="określony dzień tygodni",jse="określone godziny",yse="określone minuty",Tse="określone miesiące",Dse="określone sekundy",dse="Czas",hse="Do",zse="Czarodziej",wse="wszystko",Cse="Dzień Astro",Ise="Noc Astro",pse="Świt",Ase="Zmierzch",mse="złota godzina",Ose="Koniec złotej godziny",Ese="Nadir",fse="Morski świt",xse="Morski zmierzch",_se="Noc",Sse="Koniec nocy",kse="Południe słoneczne",Yse="wschód słońca",vse="Koniec wschodu słońca",bse="Zachód słońca",Qse="Początek zachodu słońca",Use="w",$se="na %s",Pse="codziennie",Wse="co godzinę",Bse="każda minuta",Jse="każdego miesiąca",Rse="każdego dnia %s",Fse="co %s godzin",Gse="co %s minut",Hse="co %s miesięcy",Vse="co %s tygodni",Zse="co %s lat",Xse="co tydzień",Kse="każdego roku",qse="od %s do %s",eie="nigdy",tie="na %s z %s",sie="na %s i %s z",iie="w każdą datę",rie="%s",oie="%s i %s",nie="na %s",aie="na %s i %s",Mie="w weekendy",cie="w dni robocze",uie="nie będzie już wykonywany, ponieważ start jest w przeszłości",lie="na %s",Nie="z %s",Lie="Wykonaj od do",gie="do %s",jie="każdy",yie="Określony czas",Tie="od",Die="Od-do",die="Czas przerwy",hie="odwracać",zie="Żaden",wie="na",Cie="Kropka",Iie="Codziennie",pie="Daktyle",Aie="Dzień",mie="Każdy",Oie="Codziennie",Eie="Każdego miesiąca",fie="Co tydzień",xie="Każdego roku",_ie="godziny",Sie="Minuty",kie="miesiąc",Yie="Miesięczny",vie="Pewnego razu",bie="Określone miesiące",Qie="Tydzień",Uie="Dni powszednie",$ie="Weekend",Pie="Co tydzień",Wie="Dni robocze",Bie="Rok",Jie="Rocznie",Rie="Określony czas",Fie="Czas",Gie="do",Hie="Ważny",Vie="od",Zie="do",Xie="Cały dzień",Kie="każdego miesiąca",qie={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję",ra_Actions:JK,"ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:RK,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:FK,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:GK,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:HK,ra_Clear:VK,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:ZK,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:XK,ra_Configure:KK,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:qK,ra_Continue:eq,ra_Copied:tq,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:sq,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:iq,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:rq,ra_Delete:oq,"ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:nq,ra_Disconnected:aq,"ra_Do not ask for next 2 hours in this session":"Nie proś o kolejne 2 godziny w tej sesji","ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit full path":"Edytuj pełną ścieżkę","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość","ra_Enter the code from that page here":"Wpisz kod z tej strony tutaj",ra_Error:Mq,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:cq,"ra_Filter and Data Actions":"Akcje filtrów i danych","ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:uq,"ra_Get %s access":"Uzyskaj dostęp %s","ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:lq,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Logout:Nq,ra_Longitude:Lq,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:gq,ra_Monday:jq,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:yq,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:Tq,ra_Ok:Dq,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please allow popups in your browser for this page!":"Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Press ENTER Key to add new item":"Naciśnij klawisz ENTER, aby dodać nowy element","ra_Private certificate":"Prywatny certyfikat",ra_Product:dq,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Rename_Move_Copy:hq,"ra_Renew %s access":"Odnów dostęp %s",ra_Repeat:zq,ra_Replace:wq,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:Cq,ra_Saturday:Iq,ra_Save:pq,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:Aq,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Session will expire in %s seconds. Continue?":"Sesja wygaśnie za %s sekund. Kontynuować?","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:mq,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.","ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:Oq,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:Eq,ra_Timestamp:fq,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:xq,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:_q,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Sq,ra_Value:kq,ra_Version:Yq,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:vq,ra_Width:bq,ra_Yes:Qq,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst",ra___different__:Uq,ra_aclEveryone_read_object:$q,ra_aclEveryone_read_state:Pq,ra_aclEveryone_write_object:Wq,ra_aclEveryone_write_state:Bq,ra_aclGroup_read_object:Jq,ra_aclGroup_read_state:Rq,ra_aclGroup_write_object:Fq,ra_aclGroup_write_state:Gq,ra_aclOwner_read_object:Hq,ra_aclOwner_read_state:Vq,ra_aclOwner_write_object:Zq,ra_aclOwner_write_state:Xq,ra_buttons:Kq,ra_changedFrom:qq,ra_close:eee,ra_create_boolean_state:tee,ra_create_channel:see,ra_create_device:iee,ra_create_number_state:ree,ra_create_state:oee,ra_create_string_state:nee,ra_daysShortText:aee,ra_dow_Fr:Mee,ra_dow_Mo:cee,ra_dow_Sa:uee,ra_dow_Su:lee,ra_dow_Th:Nee,ra_dow_Tu:Lee,ra_dow_We:gee,ra_expertMode:jee,ra_false:yee,ra_fileType_all:Tee,ra_fileType_audio:Dee,ra_fileType_code:dee,ra_fileType_images:hee,ra_fileType_txt:zee,ra_fileType_video:wee,"ra_fileType_video,":"Wideo",ra_filter_customs:Cee,ra_filter_customs_without:Iee,ra_filter_func:pee,ra_filter_id:Aee,ra_filter_name:mee,ra_filter_role:Oee,ra_filter_room:Eee,ra_filter_type:fee,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:xee,ra_lastChange:_ee,ra_locally:See,ra_month_Apr:kee,ra_month_Aug:Yee,ra_month_Dec:vee,ra_month_Feb:bee,ra_month_Jan:Qee,ra_month_Jul:Uee,ra_month_Jun:$ee,ra_month_Mai:Pee,ra_month_Mar:Wee,ra_month_Nov:Bee,ra_month_Oct:Jee,ra_month_Sep:Ree,ra_months_Apr:Fee,ra_months_Aug:Gee,ra_months_Dec:Hee,ra_months_Feb:Vee,ra_months_Jan:Zee,ra_months_Jul:Xee,ra_months_Jun:Kee,ra_months_Mai:qee,ra_months_Mar:ete,ra_months_Nov:tte,ra_months_Oct:ste,ra_months_Sep:ite,"ra_no confirm for 5 mins":"brak potwierdzenia przez 5 minut",ra_none:rte,ra_object_changed_by:ote,ra_object_changed_by_user:nte,ra_otherConfig:ate,ra_qualityCode:Mte,ra_repeat:cte,ra_select_folder_hint:ute,ra_show_all:lte,ra_state_changed_by:Nte,ra_state_changed_from:Lte,ra_timestamp:gte,ra_tooltip_ack:jte,ra_tooltip_comment:yte,ra_tooltip_copyState:Tte,ra_tooltip_ctrlForLink:Dte,ra_tooltip_customConfig:dte,ra_tooltip_deleteObject:hte,ra_tooltip_editObject:zte,ra_tooltip_editState:wte,ra_tooltip_expire:Cte,ra_tooltip_from:Ite,ra_tooltip_lc:pte,ra_tooltip_quality:Ate,ra_tooltip_ts:mte,ra_tooltip_user:Ote,ra_tooltip_value:Ete,ra_true:fte,"ra_use seconds":"użyj sekund",ra_val:xte,"ra_via internet":"przez internet",ra_warning_every_minute:_te,ra_warning_every_second:Ste,sc_cron:kte,sc_date:Yte,sc_dates:vte,sc_dow:bte,sc_dows:Qte,sc_every:Ute,sc_everyN_dates:$te,sc_everyN_dow:Pte,sc_everyN_dows:Wte,sc_everyN_hours:Bte,sc_everyN_minutes:Jte,sc_everyN_months:Rte,sc_everyN_seconds:Fte,sc_every_dates:Gte,sc_every_dow:Hte,sc_every_dows:Vte,sc_every_hours:Zte,sc_every_minutes:Xte,sc_every_months:Kte,sc_every_seconds:qte,sc_from:ese,sc_hours:tse,sc_interval:sse,sc_intervalBetween:ise,sc_invalid_cron:rse,sc_minutes:ose,sc_months:nse,sc_once:ase,sc_period:Mse,sc_seconds:cse,sc_simple:use,sc_specific:lse,sc_specific_dates:Nse,sc_specific_dow:Lse,sc_specific_dows:gse,sc_specific_hours:jse,sc_specific_minutes:yse,sc_specific_months:Tse,sc_specific_seconds:Dse,sc_time:dse,sc_to:hse,sc_wizard:zse,sch_all:wse,sch_astroDay:Cse,sch_astroNight:Ise,sch_astro_dawn:pse,sch_astro_dusk:Ase,sch_astro_goldenHour:mse,sch_astro_goldenHourEnd:Ose,sch_astro_nadir:Ese,sch_astro_nauticalDawn:fse,sch_astro_nauticalDusk:xse,sch_astro_night:_se,sch_astro_nightEnd:Sse,sch_astro_solarNoon:kse,sch_astro_sunrise:Yse,sch_astro_sunriseEnd:vse,sch_astro_sunset:bse,sch_astro_sunsetStart:Qse,sch_at:Use,sch_desc_atTime:$se,sch_desc_everyDay:Pse,sch_desc_everyHour:Wse,sch_desc_everyMinute:Bse,sch_desc_everyMonth:Jse,sch_desc_everyNDay:Rse,sch_desc_everyNHours:Fse,sch_desc_everyNMinutes:Gse,sch_desc_everyNMonths:Hse,sch_desc_everyNWeeks:Vse,sch_desc_everyNYears:Zse,sch_desc_everyWeek:Xse,sch_desc_everyYear:Kse,sch_desc_intervalFromTo:qse,sch_desc_never:eie,sch_desc_onDate:tie,sch_desc_onDates:sie,sch_desc_onEveryDate:iie,sch_desc_onMonth:rie,sch_desc_onMonths:oie,sch_desc_onWeekday:nie,sch_desc_onWeekdays:aie,sch_desc_onWeekends:Mie,sch_desc_onWorkdays:cie,sch_desc_onceInPast:uie,sch_desc_once_on:lie,sch_desc_validFrom:Nie,sch_desc_validFromTo:Lie,sch_desc_validTo:gie,sch_every:jie,sch_exactTime:yie,sch_from:Tie,sch_fromTo:Die,sch_intervalTime:die,sch_invert:hie,sch_no_one:zie,sch_on:wie,sch_period:Cie,sch_periodDaily:Iie,sch_periodDates:pie,sch_periodDay:Aie,sch_periodEvery:mie,sch_periodEveryDay:Oie,sch_periodEveryMonth:Eie,sch_periodEveryWeek:fie,sch_periodEveryYear:xie,sch_periodHours:_ie,sch_periodMinutes:Sie,sch_periodMonth:kie,sch_periodMonthly:Yie,sch_periodOnce:vie,sch_periodSpecificMonths:bie,sch_periodWeek:Qie,sch_periodWeekdays:Uie,sch_periodWeekend:$ie,sch_periodWeekly:Pie,sch_periodWorkdays:Wie,sch_periodYear:Bie,sch_periodYearly:Jie,sch_specificTime:Rie,sch_time:Fie,sch_to:Gie,sch_valid:Hie,sch_validFrom:Vie,sch_validTo:Zie,sch_wholeDay:Xie,sch_yearEveryMonth:Kie},ere="Дії",tre="Додайте",sre="Скасувати",ire="Категорії",rre="Перевірено",ore="Видалити",nre="Закрити",are="Комерційний",Mre="Налаштувати",cre="Підключено",ure="Продовжити",lre="Скопійовано",Nre="Створити",Lre="Урожай",gre="Delete",jre="Видалити",yre="Відкинути",Tre="Відключено",Dre="Помилка",dre="фільтр",hre="П'ятниця",zre="Широта",wre="Вийти",Cre="Довгота",Ire="повідомлення",pre="понеділок",Are="Ім'я",mre="Об'єкти",Ore="В порядку",Ere="Продукт",fre="Перейменувати/Перемістити/Копіювати",xre="Повторіть",_re="Замінити",Sre="Корінь",kre="Субота",Yre="зберегти",vre="Вибране",bre="держави",Qre="неділя",Ure="четвер",$re="Мітка часу",Pre="вівторок",Wre="оновлення",Bre="Дійсний до",Jre="Значення",Rre="Версія",Fre="Середа",Gre="Ширина",Hre="Так",Vre="інший",Zre="Кожен може читати об'єкт",Xre="Кожен може читати стан",Kre="Кожен може написати об'єкт",qre="Кожен може написати стан",eoe="Група може читати об'єкт",toe="Група може читати стан",soe="Група може писати об'єкт",ioe="Група може писати стан",roe="Власник може читати об'єкт",ooe="Власник може читати стан",noe="Власник може написати об'єкт",aoe="Власник може написати стан",Moe="кнопки",coe="Змінено з",uoe="закрити",loe="Створіть логічний стан",Noe="Створити канал",Loe="Створити пристрій",goe="Створити номерний стан",joe="Створити состояние",yoe="Створити рядковий стан",Toe="днів",Doe="О",doe="пн",hoe="Sa",zoe="Нд",woe="чт",Coe="вт",Ioe="ми",poe="Експертний режим",Aoe="НЕПРАВДА",moe="Всі файли",Ooe="Аудіо",Eoe="Код/JSON",foe="Зображення",xoe="текст",_oe="відео",Soe="Налаштування",koe="без",Yoe="функція",voe="ID",boe="Ім'я",Qoe="Роль",Uoe="Кімната",$oe="Тип",Poe="Недійсні налаштування",Woe="Остання зміна",Boe="локально",Joe="квіт",Roe="серп",Foe="груд",Goe="лютий",Hoe="січня",Voe="лип",Zoe="черв",Xoe="травень",Koe="березень",qoe="Листопад",ene="жовт",tne="вер",sne="квіт",ine="серп",rne="груд",one="лютий",nne="січня",ane="лип",Mne="черв",cne="травень",une="березень",lne="Листопад",Nne="жовт",Lne="вер",gne="немає",jne="Об'єкт змінено",yne="Об'єкт востаннє змінено о",Tne="Налаштування з іншого адаптера %s",Dne="Код якості",dne="повторити",hne="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",zne="Показати все",wne="Стан змінено на",Cne="Об'єкт змінено з",Ine="Мітка часу",pne="Визнано",Ane="коментар",mne="Скопіюйте значення стану",One="Утримуйте клавішу Cltr/⌘, щоб відкрити посилання",Ene="Спеціальні налаштування",fne="Видалити об'єкт",xne="Редагувати об'єкт",_ne="Відредагуйте значення стану",Sne="Термін дії закінчується через",kne="Від",Yne="Востаннє змінено",vne="якість",bne="Позначка часу",Qne="Користувач",Une="Значення",$ne="ПРАВДА",Pne="Значення",Wne="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",Bne="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Jne="CRON",Rne="Дата",Fne="дати",Gne="День",Hne="День тижня",Vne="кожен",Zne="кожні N днів",Xne="кожен N-й день тижня",Kne="кожні N днів тижня",qne="кожні N годин",eae="кожні N хвилин",tae="кожні N місяців",sae="кожні N секунд",iae="кожен день",rae="кожен день тижня",oae="кожен день тижня",nae="щогодини",aae="кожну хвилину",Mae="щомісяця",cae="кожна секунда",uae="Від",lae="години",Nae="Інтервал",Lae="Інтервал між",gae="Недійсний CRON",jae="хвилин",yae="місяців",Tae="Один раз",Dae="Крапка",dae="секунд",hae="просто",zae="Конкретний час",wae="конкретні дати",Cae="конкретний день (дні) тижня",Iae="конкретний день тижня",pae="конкретні години",Aae="конкретні хвилини",mae="конкретні місяці",Oae="конкретні секунди",Eae="час",fae="до",xae="майстер",_ae="все",Sae="Астродень",kae="Астро ніч",Yae="Світанок",vae="Сутінки",bae="Золота година",Qae="Кінець золотої години",Uae="Надір",$ae="Морський світанок",Pae="Морські сутінки",Wae="ніч",Bae="Кінець ночі",Jae="Сонячний полудень",Rae="Схід сонця",Fae="Кінець сходу сонця",Gae="Захід сонця",Hae="Початок заходу сонця",Vae="в",Zae="в %s",Xae="кожен день",Kae="щогодини",qae="кожну хвилину",eMe="щомісяця",tMe="кожен %s день",sMe="кожні %s годин",iMe="кожні %s хвилин",rMe="кожні %s місяців",oMe="кожні %s тижнів",nMe="кожні %s років",aMe="щотижня",MMe="щороку",cMe="від %s до %s",uMe="ніколи",lMe="на %s з %s",NMe="на %s і %s з",LMe="на кожну дату",gMe="%s",jMe="%s і %s",yMe="на %s",TMe="на %s і %s",DMe="на вихідних",dMe="в робочі дні",hMe="більше не виконуватиметься, оскільки запуск у минулому",zMe="на %s",wMe="від %s",CMe="Виконати від до",IMe="до %s",pMe="кожен",AMe="Конкретний час",mMe="від",OMe="Від до",EMe="Час інтервалу",fMe="інвертувати",xMe="немає",_Me="на",SMe="Крапка",kMe="Щодня",YMe="дати",vMe="День",bMe="кожен",QMe="Кожен день",UMe="Щомісяця",$Me="Щотижня",PMe="Щороку",WMe="години",BMe="хвилин",JMe="місяць",RMe="Щомісяця",FMe="Один раз",GMe="Конкретні місяці",HMe="тиждень",VMe="будні",ZMe="Вихідні",XMe="Щотижня",KMe="робочі дні",qMe="рік",ece="щорічно",tce="Конкретний час",sce="час",ice="до",rce="Дійсний",oce="від",nce="до",ace="Цілий день",Mce="щомісяця",cce={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію",ra_Actions:ere,"ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:tre,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:sre,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:ire,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:rre,ra_Clear:ore,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:nre,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:are,ra_Configure:Mre,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:cre,ra_Continue:ure,ra_Copied:lre,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:Nre,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:Lre,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:gre,ra_Delete:jre,"ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:yre,ra_Disconnected:Tre,"ra_Do not ask for next 2 hours in this session":"Не запитуйте про наступні 2 години цього сеансу","ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit full path":"Редагувати повний шлях","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення","ra_Enter the code from that page here":"Введіть тут код з цієї сторінки",ra_Error:Dre,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:dre,"ra_Filter and Data Actions":"Фільтр і дії з даними","ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:hre,"ra_Get %s access":"Отримайте доступ %s","ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:zre,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Logout:wre,ra_Longitude:Cre,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:Ire,ra_Monday:pre,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:Are,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:mre,ra_Ok:Ore,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please allow popups in your browser for this page!":"Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Press ENTER Key to add new item":"Натисніть клавішу ENTER, щоб додати новий елемент","ra_Private certificate":"Приватний сертифікат",ra_Product:Ere,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Rename_Move_Copy:fre,"ra_Renew %s access":"Поновити доступ %s",ra_Repeat:xre,ra_Replace:_re,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:Sre,ra_Saturday:kre,ra_Save:Yre,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:vre,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Session will expire in %s seconds. Continue?":"Сеанс закінчиться через %s секунд. Продовжити?","ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:bre,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.","ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:Qre,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Ure,ra_Timestamp:$re,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:Pre,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Wre,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Bre,ra_Value:Jre,ra_Version:Rre,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:Fre,ra_Width:Gre,ra_Yes:Hre,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст",ra___different__:Vre,ra_aclEveryone_read_object:Zre,ra_aclEveryone_read_state:Xre,ra_aclEveryone_write_object:Kre,ra_aclEveryone_write_state:qre,ra_aclGroup_read_object:eoe,ra_aclGroup_read_state:toe,ra_aclGroup_write_object:soe,ra_aclGroup_write_state:ioe,ra_aclOwner_read_object:roe,ra_aclOwner_read_state:ooe,ra_aclOwner_write_object:noe,ra_aclOwner_write_state:aoe,ra_buttons:Moe,ra_changedFrom:coe,ra_close:uoe,ra_create_boolean_state:loe,ra_create_channel:Noe,ra_create_device:Loe,ra_create_number_state:goe,ra_create_state:joe,ra_create_string_state:yoe,ra_daysShortText:Toe,ra_dow_Fr:Doe,ra_dow_Mo:doe,ra_dow_Sa:hoe,ra_dow_Su:zoe,ra_dow_Th:woe,ra_dow_Tu:Coe,ra_dow_We:Ioe,ra_expertMode:poe,ra_false:Aoe,ra_fileType_all:moe,ra_fileType_audio:Ooe,ra_fileType_code:Eoe,ra_fileType_images:foe,ra_fileType_txt:xoe,ra_fileType_video:_oe,"ra_fileType_video,":"відео",ra_filter_customs:Soe,ra_filter_customs_without:koe,ra_filter_func:Yoe,ra_filter_id:voe,ra_filter_name:boe,ra_filter_role:Qoe,ra_filter_room:Uoe,ra_filter_type:$oe,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Poe,ra_lastChange:Woe,ra_locally:Boe,ra_month_Apr:Joe,ra_month_Aug:Roe,ra_month_Dec:Foe,ra_month_Feb:Goe,ra_month_Jan:Hoe,ra_month_Jul:Voe,ra_month_Jun:Zoe,ra_month_Mai:Xoe,ra_month_Mar:Koe,ra_month_Nov:qoe,ra_month_Oct:ene,ra_month_Sep:tne,ra_months_Apr:sne,ra_months_Aug:ine,ra_months_Dec:rne,ra_months_Feb:one,ra_months_Jan:nne,ra_months_Jul:ane,ra_months_Jun:Mne,ra_months_Mai:cne,ra_months_Mar:une,ra_months_Nov:lne,ra_months_Oct:Nne,ra_months_Sep:Lne,"ra_no confirm for 5 mins":"без підтвердження протягом 5 хв",ra_none:gne,ra_object_changed_by:jne,ra_object_changed_by_user:yne,ra_otherConfig:Tne,ra_qualityCode:Dne,ra_repeat:dne,ra_select_folder_hint:hne,ra_show_all:zne,ra_state_changed_by:wne,ra_state_changed_from:Cne,ra_timestamp:Ine,ra_tooltip_ack:pne,ra_tooltip_comment:Ane,ra_tooltip_copyState:mne,ra_tooltip_ctrlForLink:One,ra_tooltip_customConfig:Ene,ra_tooltip_deleteObject:fne,ra_tooltip_editObject:xne,ra_tooltip_editState:_ne,ra_tooltip_expire:Sne,ra_tooltip_from:kne,ra_tooltip_lc:Yne,ra_tooltip_quality:vne,ra_tooltip_ts:bne,ra_tooltip_user:Qne,ra_tooltip_value:Une,ra_true:$ne,"ra_use seconds":"використовуйте секунди",ra_val:Pne,"ra_via internet":"через інтернет",ra_warning_every_minute:Wne,ra_warning_every_second:Bne,sc_cron:Jne,sc_date:Rne,sc_dates:Fne,sc_dow:Gne,sc_dows:Hne,sc_every:Vne,sc_everyN_dates:Zne,sc_everyN_dow:Xne,sc_everyN_dows:Kne,sc_everyN_hours:qne,sc_everyN_minutes:eae,sc_everyN_months:tae,sc_everyN_seconds:sae,sc_every_dates:iae,sc_every_dow:rae,sc_every_dows:oae,sc_every_hours:nae,sc_every_minutes:aae,sc_every_months:Mae,sc_every_seconds:cae,sc_from:uae,sc_hours:lae,sc_interval:Nae,sc_intervalBetween:Lae,sc_invalid_cron:gae,sc_minutes:jae,sc_months:yae,sc_once:Tae,sc_period:Dae,sc_seconds:dae,sc_simple:hae,sc_specific:zae,sc_specific_dates:wae,sc_specific_dow:Cae,sc_specific_dows:Iae,sc_specific_hours:pae,sc_specific_minutes:Aae,sc_specific_months:mae,sc_specific_seconds:Oae,sc_time:Eae,sc_to:fae,sc_wizard:xae,sch_all:_ae,sch_astroDay:Sae,sch_astroNight:kae,sch_astro_dawn:Yae,sch_astro_dusk:vae,sch_astro_goldenHour:bae,sch_astro_goldenHourEnd:Qae,sch_astro_nadir:Uae,sch_astro_nauticalDawn:$ae,sch_astro_nauticalDusk:Pae,sch_astro_night:Wae,sch_astro_nightEnd:Bae,sch_astro_solarNoon:Jae,sch_astro_sunrise:Rae,sch_astro_sunriseEnd:Fae,sch_astro_sunset:Gae,sch_astro_sunsetStart:Hae,sch_at:Vae,sch_desc_atTime:Zae,sch_desc_everyDay:Xae,sch_desc_everyHour:Kae,sch_desc_everyMinute:qae,sch_desc_everyMonth:eMe,sch_desc_everyNDay:tMe,sch_desc_everyNHours:sMe,sch_desc_everyNMinutes:iMe,sch_desc_everyNMonths:rMe,sch_desc_everyNWeeks:oMe,sch_desc_everyNYears:nMe,sch_desc_everyWeek:aMe,sch_desc_everyYear:MMe,sch_desc_intervalFromTo:cMe,sch_desc_never:uMe,sch_desc_onDate:lMe,sch_desc_onDates:NMe,sch_desc_onEveryDate:LMe,sch_desc_onMonth:gMe,sch_desc_onMonths:jMe,sch_desc_onWeekday:yMe,sch_desc_onWeekdays:TMe,sch_desc_onWeekends:DMe,sch_desc_onWorkdays:dMe,sch_desc_onceInPast:hMe,sch_desc_once_on:zMe,sch_desc_validFrom:wMe,sch_desc_validFromTo:CMe,sch_desc_validTo:IMe,sch_every:pMe,sch_exactTime:AMe,sch_from:mMe,sch_fromTo:OMe,sch_intervalTime:EMe,sch_invert:fMe,sch_no_one:xMe,sch_on:_Me,sch_period:SMe,sch_periodDaily:kMe,sch_periodDates:YMe,sch_periodDay:vMe,sch_periodEvery:bMe,sch_periodEveryDay:QMe,sch_periodEveryMonth:UMe,sch_periodEveryWeek:$Me,sch_periodEveryYear:PMe,sch_periodHours:WMe,sch_periodMinutes:BMe,sch_periodMonth:JMe,sch_periodMonthly:RMe,sch_periodOnce:FMe,sch_periodSpecificMonths:GMe,sch_periodWeek:HMe,sch_periodWeekdays:VMe,sch_periodWeekend:ZMe,sch_periodWeekly:XMe,sch_periodWorkdays:KMe,sch_periodYear:qMe,sch_periodYearly:ece,sch_specificTime:tce,sch_time:sce,sch_to:ice,sch_valid:rce,sch_validFrom:oce,sch_validTo:nce,sch_wholeDay:ace,sch_yearEveryMonth:Mce},uce="操作",lce="附加",Nce="取消",Lce="类别",gce="勾选",jce="删除",yce="关",Tce="商业的",Dce="配置",dce="连接的",hce="继续",zce="复制的",wce="创建",Cce="庄稼",Ice="Delete",pce="删除",Ace="丢弃",mce="断开连接",Oce="错误",Ece="筛选",fce="星期五",xce="纬度",_ce="登出",Sce="经度",kce="信息",Yce="周一",vce="姓名",bce="对象",Qce="好",Uce="产品",$ce="重命名/移动/复制",Pce="重复",Wce="代替",Bce="根",Jce="周六",Rce="保存",Fce="已选",Gce="状态",Hce="星期日",Vce="周四",Zce="时间戳记",Xce="周二",Kce="更新资料",qce="有效期至",eue="值",tue="版本",sue="周三",iue="宽度",rue="是的",oue="不同的",nue="每个人都可以阅读对象",aue="每个人都可以阅读状态",Mue="每个人都可以写对象",cue="每个人都可以写状态",uue="组可以读取对象",lue="群组可以读取状态",Nue="组可以写对象",Lue="组可以写状态",gue="所有者可以读取对象",jue="所有者可以读取状态",yue="所有者可以写对象",Tue="所有者可以写状态",Due="纽扣",due="更改为",hue="关闭",zue="创建布尔状态",wue="创建频道",Cue="创建设备",Iue="创建号码状态",pue="创建状态",Aue="创建字符串状态",mue="天",Oue="r",Eue="莫",fue="萨",xue="苏",_ue="Th",Sue="Tu",kue="我们",Yue="专家模式",vue="错误的",bue="所有文件",Que="声音的",Uue="代码/JSON",$ue="图片",Pue="文本",Wue="视频",Bue="设定值",Jue="没有",Rue="功能",Fue="ID",Gue="名称",Hue="角色",Vue="房间",Zue="类型",Xue="无效的设定",Kue="最后一次变更",que="本地",ele="4月",tle="八月",sle="十二月",ile="二月",rle="简",ole="七月",nle="君",ale="迈",Mle="三月",cle="十一月",ule="十月",lle="九月",Nle="4月",Lle="八月",gle="十二月",jle="二月",yle="简",Tle="七月",Dle="君",dle="迈",hle="三月",zle="十一月",wle="十月",Cle="九月",Ile="没有任何",ple="物件变更者",Ale="对象上次更改时间为",mle="来自其他适配器%s的设置",Ole="质量代码",Ele="重复",fle="要选择文件夹,只需按住“shift”键单击文件夹即可。",xle="显示全部",_le="状态由",Sle="对象已从更改",kle="时间戳记",Yle="致谢国旗",vle="评论",ble="复制状态值",Qle="按住 Cltr/⌘ 键打开链接",Ule="自定义设置",$le="删除物件",Ple="编辑物件",Wle="编辑状态值",Ble="有效期:",Jle="从",Rle="最后改变了",Fle="质量",Gle="时间戳",Hle="用户",Vle="值",Zle="真的",Xle="值",Kle="警告:CRON 作业将在指定期间内每分钟运行一次!",qle="警告:CRON 作业将在指定期间内每秒运行一次!",eNe="周期任务",tNe="日期",sNe="日",iNe="天",rNe="星期",oNe="每",nNe="每N天",aNe="每周的第 N 天",MNe="每周N天",cNe="每N小时一次",uNe="每N分钟",lNe="每N个月",NNe="每N秒",LNe="每天",gNe="一周的每一天",jNe="一周的每一天",yNe="每小时",TNe="每分钟",DNe="每月",dNe="每秒",hNe="从",zNe="小时",wNe="间隔",CNe="间隔时间",INe="无效的 CRON",pNe="分钟",ANe="月",mNe="一次",ONe="周期",ENe="秒",fNe="简单模式",xNe="特定的时间",_Ne="特定的日子",SNe="一周中的特定日子",kNe="特定的一周",YNe="特定的小时",vNe="特定的分钟",bNe="特定的月份",QNe="特定的描述",UNe="时间",$Ne="至",PNe="向导模式",WNe="全选",BNe="天文白天",JNe="天文夜晚",RNe="黎明",FNe="黄昏",GNe="黄金时段",HNe="黄金时段结束",VNe="天底",ZNe="航海黎明",XNe="航海黄昏",KNe="夜晚",qNe="夜晚结束",e0e="正午",t0e="日出",s0e="日出结束",i0e="日落",r0e="日落开始",o0e="在",n0e="的%s",a0e="每天",M0e="每小时",c0e="每分钟",u0e="每月",l0e="每%s天",N0e="每%s小时",L0e="每%s分钟",g0e="每%s月",j0e="每%s周",y0e="每%s年",T0e="每周",D0e="每年",d0e="从%s到%s",h0e="决不",z0e="在%s的%s上",w0e="在%s和%s上",C0e="在每天",I0e="%s",p0e="%s和%s",A0e="在%s上",m0e="在%s和%s上",O0e="在周末",E0e="在工作日",f0e="将不再执行,因为起始时间已经是过去的时间了。",x0e="在%s上",_0e="来自%s",S0e="从执行到",k0e="到%s",Y0e="每",v0e="特定的时间",b0e="从",Q0e="从到",U0e="间隔时间",$0e="倒置",P0e="取消全选",W0e="的",B0e="周期",J0e="每天",R0e="日期",F0e="天",G0e="每",H0e="每天",V0e="每月",Z0e="每周",X0e="每年",K0e="小时",q0e="分钟",e4e="月",t4e="每月一次",s4e="一次",i4e="特定的月份",r4e="周",o4e="工作日",n4e="周末",a4e="每周",M4e="工作日",c4e="年",u4e="每年",l4e="特定的时间",N4e="时间",L4e="至",g4e="生效",j4e="从",y4e="至",T4e="一整天",D4e="每月",d4e={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可",ra_Actions:uce,"ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:lce,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:Nce,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:Lce,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:gce,ra_Clear:jce,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:yce,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Tce,ra_Configure:Dce,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:dce,ra_Continue:hce,ra_Copied:zce,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:wce,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:Cce,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:Ice,ra_Delete:pce,"ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:Ace,ra_Disconnected:mce,"ra_Do not ask for next 2 hours in this session":"本次会话中不要询问接下来的 2 个小时","ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit full path":"编辑完整路径","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值","ra_Enter the code from that page here":"在此处输入该页面的代码",ra_Error:Oce,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:Ece,"ra_Filter and Data Actions":"过滤和数据操作","ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:fce,"ra_Get %s access":"获取 %s 访问权限","ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_If the button above does not work, you can authorize manually this app by visiting this url":"如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:xce,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Logout:_ce,ra_Longitude:Sce,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:kce,ra_Monday:Yce,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:vce,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:bce,ra_Ok:Qce,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please allow popups in your browser for this page!":"请允许浏览器弹出此页面!","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Press ENTER Key to add new item":"按 ENTER 键添加新项目","ra_Private certificate":"私有证书",ra_Product:Uce,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Rename_Move_Copy:$ce,"ra_Renew %s access":"续订 %s 访问权限",ra_Repeat:Pce,ra_Replace:Wce,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:Bce,ra_Saturday:Jce,ra_Save:Rce,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Fce,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Session will expire in %s seconds. Continue?":"会话将在 %s 秒后过期。是否继续?","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:Gce,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"授权成功。令牌有效期至 %s,并将自动续订。","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。","ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Hce,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Vce,ra_Timestamp:Zce,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Xce,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:Kce,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:qce,ra_Value:eue,ra_Version:tue,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:sue,ra_Width:iue,ra_Yes:rue,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目",ra___different__:oue,ra_aclEveryone_read_object:nue,ra_aclEveryone_read_state:aue,ra_aclEveryone_write_object:Mue,ra_aclEveryone_write_state:cue,ra_aclGroup_read_object:uue,ra_aclGroup_read_state:lue,ra_aclGroup_write_object:Nue,ra_aclGroup_write_state:Lue,ra_aclOwner_read_object:gue,ra_aclOwner_read_state:jue,ra_aclOwner_write_object:yue,ra_aclOwner_write_state:Tue,ra_buttons:Due,ra_changedFrom:due,ra_close:hue,ra_create_boolean_state:zue,ra_create_channel:wue,ra_create_device:Cue,ra_create_number_state:Iue,ra_create_state:pue,ra_create_string_state:Aue,ra_daysShortText:mue,ra_dow_Fr:Oue,ra_dow_Mo:Eue,ra_dow_Sa:fue,ra_dow_Su:xue,ra_dow_Th:_ue,ra_dow_Tu:Sue,ra_dow_We:kue,ra_expertMode:Yue,ra_false:vue,ra_fileType_all:bue,ra_fileType_audio:Que,ra_fileType_code:Uue,ra_fileType_images:$ue,ra_fileType_txt:Pue,ra_fileType_video:Wue,"ra_fileType_video,":"视频",ra_filter_customs:Bue,ra_filter_customs_without:Jue,ra_filter_func:Rue,ra_filter_id:Fue,ra_filter_name:Gue,ra_filter_role:Hue,ra_filter_room:Vue,ra_filter_type:Zue,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:Xue,ra_lastChange:Kue,ra_locally:que,ra_month_Apr:ele,ra_month_Aug:tle,ra_month_Dec:sle,ra_month_Feb:ile,ra_month_Jan:rle,ra_month_Jul:ole,ra_month_Jun:nle,ra_month_Mai:ale,ra_month_Mar:Mle,ra_month_Nov:cle,ra_month_Oct:ule,ra_month_Sep:lle,ra_months_Apr:Nle,ra_months_Aug:Lle,ra_months_Dec:gle,ra_months_Feb:jle,ra_months_Jan:yle,ra_months_Jul:Tle,ra_months_Jun:Dle,ra_months_Mai:dle,ra_months_Mar:hle,ra_months_Nov:zle,ra_months_Oct:wle,ra_months_Sep:Cle,"ra_no confirm for 5 mins":"5分钟内无需确认",ra_none:Ile,ra_object_changed_by:ple,ra_object_changed_by_user:Ale,ra_otherConfig:mle,ra_qualityCode:Ole,ra_repeat:Ele,ra_select_folder_hint:fle,ra_show_all:xle,ra_state_changed_by:_le,ra_state_changed_from:Sle,ra_timestamp:kle,ra_tooltip_ack:Yle,ra_tooltip_comment:vle,ra_tooltip_copyState:ble,ra_tooltip_ctrlForLink:Qle,ra_tooltip_customConfig:Ule,ra_tooltip_deleteObject:$le,ra_tooltip_editObject:Ple,ra_tooltip_editState:Wle,ra_tooltip_expire:Ble,ra_tooltip_from:Jle,ra_tooltip_lc:Rle,ra_tooltip_quality:Fle,ra_tooltip_ts:Gle,ra_tooltip_user:Hle,ra_tooltip_value:Vle,ra_true:Zle,"ra_use seconds":"用秒",ra_val:Xle,"ra_via internet":"通过互联网",ra_warning_every_minute:Kle,ra_warning_every_second:qle,sc_cron:eNe,sc_date:tNe,sc_dates:sNe,sc_dow:iNe,sc_dows:rNe,sc_every:oNe,sc_everyN_dates:nNe,sc_everyN_dow:aNe,sc_everyN_dows:MNe,sc_everyN_hours:cNe,sc_everyN_minutes:uNe,sc_everyN_months:lNe,sc_everyN_seconds:NNe,sc_every_dates:LNe,sc_every_dow:gNe,sc_every_dows:jNe,sc_every_hours:yNe,sc_every_minutes:TNe,sc_every_months:DNe,sc_every_seconds:dNe,sc_from:hNe,sc_hours:zNe,sc_interval:wNe,sc_intervalBetween:CNe,sc_invalid_cron:INe,sc_minutes:pNe,sc_months:ANe,sc_once:mNe,sc_period:ONe,sc_seconds:ENe,sc_simple:fNe,sc_specific:xNe,sc_specific_dates:_Ne,sc_specific_dow:SNe,sc_specific_dows:kNe,sc_specific_hours:YNe,sc_specific_minutes:vNe,sc_specific_months:bNe,sc_specific_seconds:QNe,sc_time:UNe,sc_to:$Ne,sc_wizard:PNe,sch_all:WNe,sch_astroDay:BNe,sch_astroNight:JNe,sch_astro_dawn:RNe,sch_astro_dusk:FNe,sch_astro_goldenHour:GNe,sch_astro_goldenHourEnd:HNe,sch_astro_nadir:VNe,sch_astro_nauticalDawn:ZNe,sch_astro_nauticalDusk:XNe,sch_astro_night:KNe,sch_astro_nightEnd:qNe,sch_astro_solarNoon:e0e,sch_astro_sunrise:t0e,sch_astro_sunriseEnd:s0e,sch_astro_sunset:i0e,sch_astro_sunsetStart:r0e,sch_at:o0e,sch_desc_atTime:n0e,sch_desc_everyDay:a0e,sch_desc_everyHour:M0e,sch_desc_everyMinute:c0e,sch_desc_everyMonth:u0e,sch_desc_everyNDay:l0e,sch_desc_everyNHours:N0e,sch_desc_everyNMinutes:L0e,sch_desc_everyNMonths:g0e,sch_desc_everyNWeeks:j0e,sch_desc_everyNYears:y0e,sch_desc_everyWeek:T0e,sch_desc_everyYear:D0e,sch_desc_intervalFromTo:d0e,sch_desc_never:h0e,sch_desc_onDate:z0e,sch_desc_onDates:w0e,sch_desc_onEveryDate:C0e,sch_desc_onMonth:I0e,sch_desc_onMonths:p0e,sch_desc_onWeekday:A0e,sch_desc_onWeekdays:m0e,sch_desc_onWeekends:O0e,sch_desc_onWorkdays:E0e,sch_desc_onceInPast:f0e,sch_desc_once_on:x0e,sch_desc_validFrom:_0e,sch_desc_validFromTo:S0e,sch_desc_validTo:k0e,sch_every:Y0e,sch_exactTime:v0e,sch_from:b0e,sch_fromTo:Q0e,sch_intervalTime:U0e,sch_invert:$0e,sch_no_one:P0e,sch_on:W0e,sch_period:B0e,sch_periodDaily:J0e,sch_periodDates:R0e,sch_periodDay:F0e,sch_periodEvery:G0e,sch_periodEveryDay:H0e,sch_periodEveryMonth:V0e,sch_periodEveryWeek:Z0e,sch_periodEveryYear:X0e,sch_periodHours:K0e,sch_periodMinutes:q0e,sch_periodMonth:e4e,sch_periodMonthly:t4e,sch_periodOnce:s4e,sch_periodSpecificMonths:i4e,sch_periodWeek:r4e,sch_periodWeekdays:o4e,sch_periodWeekend:n4e,sch_periodWeekly:a4e,sch_periodWorkdays:M4e,sch_periodYear:c4e,sch_periodYearly:u4e,sch_specificTime:l4e,sch_time:N4e,sch_to:L4e,sch_valid:g4e,sch_validFrom:j4e,sch_validTo:y4e,sch_wholeDay:T4e,sch_yearEveryMonth:D4e},h4e={en:AI,de:vm,ru:G_,pt:iv,nl:L6,fr:CW,it:SG,es:BK,pl:qie,uk:cce,"zh-cn":d4e},z4e=` +html { + height: 100%; +} + +body { + margin: 0; + padding: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 100%; + height: 100%; + overflow: hidden; +} + +/* scrollbar */ +::-webkit-scrollbar-track { + background-color: #ccc; + border-radius: 5px; +} + +::-webkit-scrollbar { + width: 5px; + height: 5px; + background-color: #ccc; +} + +::-webkit-scrollbar-thumb { + background-color: #575757; + border-radius: 5px; +} + +#root { + height: 100%; +} + +.App { + height: 100%; +} + +@keyframes glow { + from { + background-color: initial; + } + to { + background-color: #58c458; + } +} +`;function w4e(){try{return window.self!==window.top}catch{return!0}}class Gt extends Oi{socket;isIFrame=w4e();instance;adapterName;instanceId;newReact;encryptedFields;sentryDSN;alertDialogRendered;_secret;_systemConfig;savedNative;common=null;sentryStarted=!1;sentryInited=!1;resizeTimer=null;constructor(e,t){const i=e.Connection||(t==null?void 0:t.Connection)||ze;if(!window.document.getElementById("generic-app-iobroker-component")){const N=window.document.createElement("style");N.setAttribute("id","generic-app-iobroker-component"),N.innerHTML=z4e,window.document.head.appendChild(N)}if(!Gt.isWeb()&&window.io&&window.location.port==="3000")try{const N=new window.SocketClient;delete window.io,window.io=N}catch{}super(e),Md();const r=(window.location.search||"").replace(/^\?/,"").replace(/#.*$/,""),o={};r.trim().split("&").filter(N=>N.trim()).forEach(N=>{const u=N.split("=");o[u[0]]=u.length===2?u[1]:!0,o[u[0]]==="true"?o[u[0]]=!0:o[u[0]]==="false"&&(o[u[0]]=!1)}),this.instance=(t==null?void 0:t.instance)??e.instance??(o.instance!==void 0?parseInt(o.instance,10)||0:parseInt(window.location.search.slice(1),10)||0);const n=window.location.pathname.split("/");this.adapterName=(t==null?void 0:t.adapterName)||e.adapterName||window.adapterName||n[n.length-2]||"iot",this.instanceId=`system.adapter.${this.adapterName}.${this.instance}`,this.newReact=o.newReact===!0;const a=Oi.getLocation();a.tab=a.tab||(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"";const c=this.createTheme();this.state=Object.assign(this.state||{},{selectedTab:(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"",selectedTabNum:-1,native:{},errorText:"",changed:!1,connected:!1,loaded:!1,isConfigurationError:"",expertMode:!1,toast:"",theme:c,themeName:this.getThemeName(c),themeType:this.getThemeType(c),bottomButtons:(t&&t.bottomButtons)===!1?!1:(e==null?void 0:e.bottomButtons)!==!1,width:Gt.getWidth(),confirmClose:!1,_alert:!1,_alertType:"info",_alertMessage:""});const l=h4e;t!=null&&t.translations?Object.keys(t.translations).forEach(N=>{t.translations&&(l[N]=Object.assign(l[N],t.translations[N]||{}))}):e.translations&&Object.keys(e.translations).forEach(N=>{e.translations&&(l[N]=Object.assign(l[N],e.translations[N]||{}))}),d.setTranslations(l),this.savedNative={},this.encryptedFields=e.encryptedFields||(t==null?void 0:t.encryptedFields)||[],this.sentryDSN=t&&t.sentryDSN||e.sentryDSN,window.socketUrl&&(window.socketUrl.startsWith(":")?window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`:!window.socketUrl.startsWith("http://")&&!window.socketUrl.startsWith("https://")&&(window.socketUrl=`${window.location.protocol}//${window.socketUrl}`)),this.alertDialogRendered=!1,window.iobOldAlert||(window.iobOldAlert=window.alert),window.alert=N=>{if(!this.alertDialogRendered){window.iobOldAlert(N);return}N!=null&&N.toString().toLowerCase().includes("error")?(console.error(N),this.showAlert(N.toString(),"error")):(console.log(N),this.showAlert(N.toString(),"info"))},this.socket=new i({...(e==null?void 0:e.socket)||(t==null?void 0:t.socket),name:this.adapterName,doNotLoadAllObjects:t==null?void 0:t.doNotLoadAllObjects,onProgress:N=>{N===rt.CONNECTING?this.setState({connected:!1}):N===rt.READY?this.setState({connected:!0}):this.setState({connected:!0})},onReady:()=>{d.setLanguage(this.socket.systemLang),this.socket.subscribeObject("system.config",this.onSystemConfigChanged).then(()=>this.getSystemConfig()).then(N=>(this._secret=typeof N<"u"&&N.native&&N.native.secret||"Zgfr56gFe87jJOM",this._systemConfig=(N==null?void 0:N.common)||{},this.socket.getObject(this.instanceId))).then(async N=>{var T,D;let u;const L=N,y=((T=await this.socket.getState(`${this.instanceId}.plugins.sentry.enabled`))==null?void 0:T.val)!==!1&&((D=this._systemConfig)==null?void 0:D.diag)!=="none"&&(L==null?void 0:L.common)&&L.common.name&&L.common.version&&!L.common.disableDataReporting&&window.location.host!=="localhost:3000";!this.sentryStarted&&this.sentryDSN&&y&&(this.sentryStarted=!0,ad({dsn:this.sentryDSN,release:`iobroker.${L.common.name}@${L.common.version}`,integrations:[RN()]}),console.log("Sentry initialized")),!this.sentryInited&&y&&(this.sentryInited=!0,u=this.socket.getObject("system.meta.uuid").then(z=>{z&&z.native&&z.native.uuid&&Ct().setUser({id:z.native.uuid})})),u=u instanceof Promise?u:Promise.resolve(),u.then(()=>{L?(this.common=L==null?void 0:L.common,this.onPrepareLoad(L.native,L.encryptedNative),this.savedNative=JSON.parse(JSON.stringify(L.native)),this.setState({native:L.native,loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady())):(console.warn("Cannot load instance settings"),this.setState({native:{},loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady()))})}).catch(N=>window.alert(`Cannot settings: ${N}`))},onError:N=>{console.error(N),this.showError(N)}})}static isWeb(){return window.socketUrl!==void 0}showAlert(e,t){t!=="error"&&t!=="warning"&&t!=="info"&&t!=="success"&&(t="info"),this.setState({_alert:!0,_alertType:t,_alertMessage:e})}renderAlertSnackbar(){return this.alertDialogRendered=!0,M.createElement(j.Snackbar,{style:this.state._alertType==="error"?{backgroundColor:"#f44336"}:this.state._alertType==="success"?{backgroundColor:"#4caf50"}:void 0,open:this.state._alert,autoHideDuration:6e3,onClose:(e,t)=>t!=="clickaway"&&this.setState({_alert:!1}),message:this.state._alertMessage})}onSystemConfigChanged=(e,t)=>{var i,r;t&&e==="system.config"&&(this.socket.systemLang!==(t==null?void 0:t.common.language)&&(this.socket.systemLang=(t==null?void 0:t.common.language)||"en",d.setLanguage(this.socket.systemLang)),((i=this._systemConfig)==null?void 0:i.expertMode)!==!!((r=t==null?void 0:t.common)!=null&&r.expertMode)?(this._systemConfig=(t==null?void 0:t.common)||{},this.setState({expertMode:this.getExpertMode()})):this._systemConfig=(t==null?void 0:t.common)||{})};componentDidMount(){window.addEventListener("resize",this.onResize,!0),window.addEventListener("message",this.onReceiveMessage,!1),super.componentDidMount()}componentWillUnmount(){window.removeEventListener("resize",this.onResize,!0),window.removeEventListener("message",this.onReceiveMessage,!1),window.iobOldAlert&&(window.alert=window.iobOldAlert,delete window.iobOldAlert),super.componentWillUnmount()}onReceiveMessage=e=>{if(e!=null&&e.data)if(e.data==="updateTheme"){const t=O.getThemeName();O.setThemeName(O.getThemeName());const i=this.createTheme(t);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(t),this.onThemeChanged&&this.onThemeChanged(t)})}else e.data==="updateExpertMode"?this.onToggleExpertMode&&this.onToggleExpertMode(this.getExpertMode()):e.data!=="chartReady"&&console.debug(`Received unknown message: "${JSON.stringify(e.data)}". May be it will be processed later`)};onResize=()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{this.resizeTimer=null,this.setState({width:Gt.getWidth()})},200)};static getWidth(){const e={xs:0,sm:600,md:960,lg:1280,xl:1920},t=window.innerWidth;return Object.keys(e).reverse().find(o=>t>=e[o])||"xs"}createTheme(e){return Yg(O.getThemeName(e))}getThemeName(e){return e.name}getThemeType(e){return e.palette.mode}onThemeChanged(e){}onToggleExpertMode(e){}toggleTheme(e){const t=this.state.themeName;if(e=e||(t==="dark"||t==="blue"||t==="colored"?"light":"dark"),e!==t){O.setThemeName(e);const i=this.createTheme(e);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(e||"light"),this.onThemeChanged&&this.onThemeChanged(e||"light")})}}getSystemConfig(){return this.socket.getSystemConfig()}getExpertMode(){var e;return window.sessionStorage.getItem("App.expertMode")==="true"||!!((e=this._systemConfig)!=null&&e.expertMode)}onConnectionReady(){}encrypt(e){let t="";if(this._secret)for(let i=0;i{e[i]&&(e[i]=this.encrypt(e[i]))}),!0}onPrepareLoad(e,t){var i;(i=this.encryptedFields)==null||i.forEach(r=>{e[r]&&(e[r]=this.decrypt(e[r]))}),t==null||t.forEach(r=>{this.encryptedFields=this.encryptedFields||[],!this.encryptedFields.includes(r)&&this.encryptedFields.push(r),e[r]&&(e[r]=this.decrypt(e[r]))})}async getExtendableInstances(){try{const e=await this.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香");return Object.values(e).filter(t=>{var i;return!!((i=t==null?void 0:t.common)!=null&&i.webExtendable)})}catch{return[]}}async getIpAddresses(e){var o;const t=await this.socket.getHostByIp(e||((o=this.common)==null?void 0:o.host)||""),i=t.find(n=>n.address==="0.0.0.0");i&&(i.name=`[IPv4] 0.0.0.0 - ${d.t("ra_Listen on all IPs")}`);const r=t.find(n=>n.address==="::");return r&&(r.name=`[IPv4] :: - ${d.t("ra_Listen on all IPs")}`),t}onSave(e){let t;if(this.state.isConfigurationError){this.setState({errorText:this.state.isConfigurationError});return}this.socket.getObject(this.instanceId).then(i=>{t=i||{};for(const r in this.state.native)Object.prototype.hasOwnProperty.call(this.state.native,r)&&(this.state.native[r]===null?t.native[r]=null:this.state.native[r]!==void 0?t.native[r]=JSON.parse(JSON.stringify(this.state.native[r])):delete t.native[r]);if(this.state.common)for(const r in this.state.common)this.state.common[r]===null?t.common[r]=null:this.state.common[r]!==void 0?t.common[r]=JSON.parse(JSON.stringify(this.state.common[r])):delete t.common[r];return this.onPrepareSave(t.native)!==!1?this.socket.setObject(this.instanceId,t):Promise.reject(new Error("Invalid configuration"))}).then(()=>{this.savedNative=t.native,globalThis.changed=!1;try{window.parent.postMessage("nochange","*")}catch{}this.setState({changed:!1},()=>{e&&Gt.onClose()})}).catch(i=>console.error(`Cannot save configuration: ${i}`))}renderToast(){return this.state.toast?M.createElement(j.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:M.createElement("span",{id:"message-id"},this.state.toast),action:[M.createElement(j.IconButton,{key:"close","aria-label":"Close",color:"inherit",onClick:()=>this.setState({toast:""}),size:"large"},M.createElement(Ne,null))]}):null}static onClose(){if(typeof window.parent<"u"&&window.parent)try{window.parent.$iframeDialog&&typeof window.parent.$iframeDialog.close=="function"?window.parent.$iframeDialog.close():window.parent.postMessage("close","*")}catch{window.parent.postMessage("close","*")}}renderError(){return this.state.errorText?M.createElement(s0,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}getIsChanged(e){e=e||this.state.native;const t=JSON.stringify(e)!==JSON.stringify(this.savedNative);return globalThis.changed=t,t}onLoadConfig(e){JSON.stringify(e)!==JSON.stringify(this.state.native)&&this.setState({native:e,changed:this.getIsChanged(e)})}setConfigurationError(e){this.state.isConfigurationError!==e&&this.setState({isConfigurationError:e})}renderSaveCloseButtons(){return!this.state.confirmClose&&!this.state.bottomButtons?null:M.createElement(M.Fragment,null,this.state.bottomButtons?M.createElement(yd,{theme:this.state.theme,newReact:this.newReact,noTextOnButtons:this.state.width==="xs"||this.state.width==="sm"||this.state.width==="md",changed:this.state.changed,onSave:e=>this.onSave(e),onClose:()=>{this.state.changed?this.setState({confirmClose:!0}):Gt.onClose()},error:!!this.state.isConfigurationError}):null,this.state.confirmClose?M.createElement(t0,{title:d.t("ra_Please confirm"),text:d.t("ra_Some data are not stored. Discard?"),ok:d.t("ra_Discard"),cancel:d.t("ra_Cancel"),onClose:e=>this.setState({confirmClose:!1},()=>e&&Gt.onClose())}):null)}_updateNativeValue(e,t,i){typeof t!="object"&&(t=t.split("."));const r=t.shift()||"";if(!t.length)return i&&typeof i=="object"?JSON.stringify(e[r])!==JSON.stringify(i)?(e[r]=i,!0):!1:e[r]!==i?(e[r]=i,!0):!1;if(e[r]=e[r]||{},typeof e[r]!="object")throw new Error(`attribute ${r} is no object, but ${typeof e[r]}`);return this._updateNativeValue(e[r],t,i)}updateNativeValue(e,t,i){const r=JSON.parse(JSON.stringify(this.state.native));if(this._updateNativeValue(r,e,t)){const o=this.getIsChanged(r);if(o!==this.state.changed)try{window.parent.postMessage(o?"change":"nochange","*")}catch{}this.setState({native:r,changed:o},i)}}showError(e){this.setState({errorText:e})}showToast(e){this.setState({toast:e})}renderHelperDialogs(){return M.createElement(M.Fragment,null,this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar())}render(){return this.state.loaded?M.createElement("div",{className:"App"},this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar()):M.createElement(ud,{themeType:this.state.themeType})}}var Be={},Fi={},C4e=typeof ir=="object"&&ir&&ir.Object===Object&&ir,i0=C4e,I4e=i0,p4e=typeof self=="object"&&self&&self.Object===Object&&self,A4e=I4e||p4e||Function("return this")(),ut=A4e,m4e=ut,O4e=m4e.Symbol,Gi=O4e,Qc=Gi,r0=Object.prototype,E4e=r0.hasOwnProperty,f4e=r0.toString,li=Qc?Qc.toStringTag:void 0;function x4e(s){var e=E4e.call(s,li),t=s[li];try{s[li]=void 0;var i=!0}catch{}var r=f4e.call(s);return i&&(e?s[li]=t:delete s[li]),r}var _4e=x4e,S4e=Object.prototype,k4e=S4e.toString;function Y4e(s){return k4e.call(s)}var v4e=Y4e,Uc=Gi,b4e=_4e,Q4e=v4e,U4e="[object Null]",$4e="[object Undefined]",$c=Uc?Uc.toStringTag:void 0;function P4e(s){return s==null?s===void 0?$4e:U4e:$c&&$c in Object(s)?b4e(s):Q4e(s)}var ns=P4e,W4e=Array.isArray,qe=W4e;function B4e(s){return s!=null&&typeof s=="object"}var It=B4e,J4e=ns,R4e=qe,F4e=It,G4e="[object String]";function H4e(s){return typeof s=="string"||!R4e(s)&&F4e(s)&&J4e(s)==G4e}var V4e=H4e;function Z4e(s){return function(e,t,i){for(var r=-1,o=Object(e),n=i(e),a=n.length;a--;){var c=n[s?a:++r];if(t(o[c],c,o)===!1)break}return e}}var X4e=Z4e,K4e=X4e,q4e=K4e(),eLe=q4e;function tLe(s,e){for(var t=-1,i=Array(s);++t-1&&s%1==0&&s-1&&s%1==0&&s<=TLe}var Oa=DLe,dLe=ns,hLe=Oa,zLe=It,wLe="[object Arguments]",CLe="[object Array]",ILe="[object Boolean]",pLe="[object Date]",ALe="[object Error]",mLe="[object Function]",OLe="[object Map]",ELe="[object Number]",fLe="[object Object]",xLe="[object RegExp]",_Le="[object Set]",SLe="[object String]",kLe="[object WeakMap]",YLe="[object ArrayBuffer]",vLe="[object DataView]",bLe="[object Float32Array]",QLe="[object Float64Array]",ULe="[object Int8Array]",$Le="[object Int16Array]",PLe="[object Int32Array]",WLe="[object Uint8Array]",BLe="[object Uint8ClampedArray]",JLe="[object Uint16Array]",RLe="[object Uint32Array]",oe={};oe[bLe]=oe[QLe]=oe[ULe]=oe[$Le]=oe[PLe]=oe[WLe]=oe[BLe]=oe[JLe]=oe[RLe]=!0;oe[wLe]=oe[CLe]=oe[YLe]=oe[ILe]=oe[vLe]=oe[pLe]=oe[ALe]=oe[mLe]=oe[OLe]=oe[ELe]=oe[fLe]=oe[xLe]=oe[_Le]=oe[SLe]=oe[kLe]=!1;function FLe(s){return zLe(s)&&hLe(s.length)&&!!oe[dLe(s)]}var GLe=FLe;function HLe(s){return function(e){return s(e)}}var Ea=HLe,$r={exports:{}};$r.exports;(function(s,e){var t=i0,i=e&&!e.nodeType&&e,r=i&&!0&&s&&!s.nodeType&&s,o=r&&r.exports===i,n=o&&t.process,a=function(){try{var c=r&&r.require&&r.require("util").types;return c||n&&n.binding&&n.binding("util")}catch{}}();s.exports=a})($r,$r.exports);var fa=$r.exports,VLe=GLe,ZLe=Ea,Wc=fa,Bc=Wc&&Wc.isTypedArray,XLe=Bc?ZLe(Bc):VLe,M0=XLe,KLe=sLe,qLe=n0,ege=qe,tge=ma,sge=a0,ige=M0,rge=Object.prototype,oge=rge.hasOwnProperty;function nge(s,e){var t=ege(s),i=!t&&qLe(s),r=!t&&!i&&tge(s),o=!t&&!i&&!r&&ige(s),n=t||i||r||o,a=n?KLe(s.length,String):[],c=a.length;for(var l in s)(e||oge.call(s,l))&&!(n&&(l=="length"||r&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||sge(l,c)))&&a.push(l);return a}var c0=nge,age=Object.prototype;function Mge(s){var e=s&&s.constructor,t=typeof e=="function"&&e.prototype||age;return s===t}var xa=Mge;function cge(s,e){return function(t){return s(e(t))}}var u0=cge,uge=u0,lge=uge(Object.keys,Object),Nge=lge,Lge=xa,gge=Nge,jge=Object.prototype,yge=jge.hasOwnProperty;function Tge(s){if(!Lge(s))return gge(s);var e=[];for(var t in Object(s))yge.call(s,t)&&t!="constructor"&&e.push(t);return e}var Dge=Tge;function dge(s){var e=typeof s;return s!=null&&(e=="object"||e=="function")}var Xs=dge,hge=ns,zge=Xs,wge="[object AsyncFunction]",Cge="[object Function]",Ige="[object GeneratorFunction]",pge="[object Proxy]";function Age(s){if(!zge(s))return!1;var e=hge(s);return e==Cge||e==Ige||e==wge||e==pge}var l0=Age,mge=l0,Oge=Oa;function Ege(s){return s!=null&&Oge(s.length)&&!mge(s)}var ao=Ege,fge=c0,xge=Dge,_ge=ao;function Sge(s){return _ge(s)?fge(s):xge(s)}var Hi=Sge,kge=eLe,Yge=Hi;function vge(s,e){return s&&kge(s,e,Yge)}var N0=vge;function bge(s){return s}var L0=bge,Qge=L0;function Uge(s){return typeof s=="function"?s:Qge}var $ge=Uge,Pge=N0,Wge=$ge;function Bge(s,e){return s&&Pge(s,Wge(e))}var _a=Bge,Jge=u0,Rge=Jge(Object.getPrototypeOf,Object),Sa=Rge,Fge=ns,Gge=Sa,Hge=It,Vge="[object Object]",Zge=Function.prototype,Xge=Object.prototype,g0=Zge.toString,Kge=Xge.hasOwnProperty,qge=g0.call(Object);function eje(s){if(!Hge(s)||Fge(s)!=Vge)return!1;var e=Gge(s);if(e===null)return!0;var t=Kge.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&g0.call(t)==qge}var tje=eje;function sje(s,e){for(var t=-1,i=s==null?0:s.length,r=Array(i);++t-1}var Dje=Tje,dje=Mo;function hje(s,e){var t=this.__data__,i=dje(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}var zje=hje,wje=rje,Cje=Nje,Ije=jje,pje=Dje,Aje=zje;function Ks(s){var e=-1,t=s==null?0:s.length;for(this.clear();++ea))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&QTe?new kTe:void 0;for(o.set(s,e),o.set(e,s);++u0&&arguments[0]!==void 0?arguments[0]:[],t=[];return(0,Aze.default)(e,function(i){Array.isArray(i)?s(i).map(function(r){return t.push(r)}):(0,Ize.default)(i)?(0,wze.default)(i,function(r,o){r===!0&&t.push(o),t.push(o+"-"+r)}):(0,hze.default)(i)&&t.push(i)}),t};Fi.default=mze;var Vi={};function Oze(s,e){for(var t=-1,i=s==null?0:s.length;++t1&&arguments[1]!==void 0?arguments[1]:[],i=e.default&&(0,HIe.default)(e.default)||{};return t.map(function(r){var o=e[r];return o&&(0,FIe.default)(o,function(n,a){i[a]||(i[a]={}),i[a]=VIe({},i[a],o[a])}),r}),i};Vi.default=ZIe;var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0});Zi.autoprefix=void 0;var XIe=_a,Cu=qIe(XIe),KIe=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){n1e(r,i);function r(){var o,n,a,c;o1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){N1e(r,i);function r(){var o,n,a,c;l1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:!0;i[n]=a};return e===0&&r("first-child"),e===t-1&&r("last-child"),(e===0||e%2===0)&&r("even"),Math.abs(e%2)===1&&r("odd"),r("nth-child",e),i};Ja.default=g1e;Object.defineProperty(Be,"__esModule",{value:!0});Be.ReactCSS=Be.loop=Be.handleActive=Ra=Be.handleHover=Be.hover=void 0;var j1e=Fi,y1e=ii(j1e),T1e=Vi,D1e=ii(T1e),d1e=Zi,h1e=ii(d1e),z1e=Xi,U0=ii(z1e),w1e=Ki,C1e=ii(w1e),I1e=Ja,p1e=ii(I1e);function ii(s){return s&&s.__esModule?s:{default:s}}Be.hover=U0.default;var Ra=Be.handleHover=U0.default;Be.handleActive=C1e.default;Be.loop=p1e.default;var A1e=Be.ReactCSS=function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),r=1;ra?L=1:L=Math.round(u*100/a)/100,t.a!==L)return{h:t.h,s:t.s,l:t.l,a:L,source:"rgb"}}else{var g=void 0;if(N<0?g=0:N>n?g=1:g=Math.round(N*100/n)/100,r!==g)return{h:t.h,s:t.s,l:t.l,a:g,source:"rgb"}}return null},Bo={},O1e=function(e,t,i,r){if(typeof document>"u"&&!r)return null;var o=r?new r:document.createElement("canvas");o.width=i*2,o.height=i*2;var n=o.getContext("2d");return n?(n.fillStyle=e,n.fillRect(0,0,o.width,o.height),n.fillStyle=t,n.fillRect(0,0,i,i),n.translate(i,i),n.fillRect(0,0,i,i),o.toDataURL()):null},E1e=function(e,t,i,r){var o=e+"-"+t+"-"+i+(r?"-server":"");if(Bo[o])return Bo[o];var n=O1e(e,t,i,r);return Bo[o]=n,n},Au=Object.assign||function(s){for(var e=1;e-1},B1e=function(e){return Number(String(e).replace(/%/g,""))},J1e=1,K=function(s){Q1e(e,s);function e(t){v1e(this,e);var i=b1e(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.handleBlur=function(){i.state.blurValue&&i.setState({value:i.state.blurValue,blurValue:null})},i.handleChange=function(r){i.setUpdatedValue(r.target.value,r)},i.handleKeyDown=function(r){var o=B1e(r.target.value);if(!isNaN(o)&&W1e(r.keyCode)){var n=i.getArrowOffset(),a=r.keyCode===$0?o+n:o-n;i.setUpdatedValue(a,r)}},i.handleDrag=function(r){if(i.props.dragLabel){var o=Math.round(i.props.value+r.movementX);o>=0&&o<=i.props.dragMax&&i.props.onChange&&i.props.onChange(i.getValueObjectWithLabel(o),r)}},i.handleMouseDown=function(r){i.props.dragLabel&&(r.preventDefault(),i.handleDrag(r),window.addEventListener("mousemove",i.handleDrag),window.addEventListener("mouseup",i.handleMouseUp))},i.handleMouseUp=function(){i.unbindEventListeners()},i.unbindEventListeners=function(){window.removeEventListener("mousemove",i.handleDrag),window.removeEventListener("mouseup",i.handleMouseUp)},i.state={value:String(t.value).toUpperCase(),blurValue:String(t.value).toUpperCase()},i.inputId="rc-editable-input-"+J1e++,i}return k1e(e,[{key:"componentDidUpdate",value:function(i,r){this.props.value!==this.state.value&&(i.value!==this.props.value||r.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(i){return Y1e({},this.props.label,i)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||U1e}},{key:"setUpdatedValue",value:function(i,r){var o=this.props.label?this.getValueObjectWithLabel(i):i;this.props.onChange&&this.props.onChange(o,r),this.setState({value:i})}},{key:"render",value:function(){var i=this,r=G({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return M.createElement("div",{style:r.wrap},M.createElement("input",{id:this.inputId,style:r.input,ref:function(n){return i.input=n},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?M.createElement("label",{htmlFor:this.inputId,style:r.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),e}(x.PureComponent||x.Component),R1e=function(e,t,i,r){var o=r.clientWidth,n=r.clientHeight,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(r.getBoundingClientRect().left+window.pageXOffset),N=c-(r.getBoundingClientRect().top+window.pageYOffset);if(t==="vertical"){var u=void 0;if(N<0)u=359;else if(N>n)u=0;else{var L=-(N*100/n)+100;u=360*L/100}if(i.h!==u)return{h:u,s:i.s,l:i.l,a:i.a,source:"hsl"}}else{var g=void 0;if(l<0)g=0;else if(l>o)g=359;else{var y=l*100/o;g=360*y/100}if(i.h!==g)return{h:g,s:i.s,l:i.l,a:i.a,source:"hsl"}}return null},F1e=function(){function s(e,t){for(var i=0;i-1}function tpe(s,e){var t=this.__data__,i=yo(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}function pt(s){var e=-1,t=s==null?0:s.length;for(this.clear();++e-1&&s%1==0&&s<=MAe}function ni(s){return s!=null&&Za(s.length)&&!Ga(s)}function cAe(s){return Pt(s)&&ni(s)}function uAe(){return!1}var H0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yu=H0&&typeof module=="object"&&module&&!module.nodeType&&module,lAe=Yu&&Yu.exports===H0,vu=lAe?et.Buffer:void 0,NAe=vu?vu.isBuffer:void 0,Fr=NAe||uAe,LAe="[object Object]",gAe=Function.prototype,jAe=Object.prototype,V0=gAe.toString,yAe=jAe.hasOwnProperty,TAe=V0.call(Object);function DAe(s){if(!Pt(s)||Ms(s)!=LAe)return!1;var e=F0(s);if(e===null)return!0;var t=yAe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&V0.call(t)==TAe}var dAe="[object Arguments]",hAe="[object Array]",zAe="[object Boolean]",wAe="[object Date]",CAe="[object Error]",IAe="[object Function]",pAe="[object Map]",AAe="[object Number]",mAe="[object Object]",OAe="[object RegExp]",EAe="[object Set]",fAe="[object String]",xAe="[object WeakMap]",_Ae="[object ArrayBuffer]",SAe="[object DataView]",kAe="[object Float32Array]",YAe="[object Float64Array]",vAe="[object Int8Array]",bAe="[object Int16Array]",QAe="[object Int32Array]",UAe="[object Uint8Array]",$Ae="[object Uint8ClampedArray]",PAe="[object Uint16Array]",WAe="[object Uint32Array]",ne={};ne[kAe]=ne[YAe]=ne[vAe]=ne[bAe]=ne[QAe]=ne[UAe]=ne[$Ae]=ne[PAe]=ne[WAe]=!0;ne[dAe]=ne[hAe]=ne[_Ae]=ne[zAe]=ne[SAe]=ne[wAe]=ne[CAe]=ne[IAe]=ne[pAe]=ne[AAe]=ne[mAe]=ne[OAe]=ne[EAe]=ne[fAe]=ne[xAe]=!1;function BAe(s){return Pt(s)&&Za(s.length)&&!!ne[Ms(s)]}function JAe(s){return function(e){return s(e)}}var Z0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ei=Z0&&typeof module=="object"&&module&&!module.nodeType&&module,RAe=Ei&&Ei.exports===Z0,Ro=RAe&&P0.process,bu=function(){try{var s=Ei&&Ei.require&&Ei.require("util").types;return s||Ro&&Ro.binding&&Ro.binding("util")}catch{}}(),Qu=bu&&bu.isTypedArray,Xa=Qu?JAe(Qu):BAe;function kn(s,e){if(!(e==="constructor"&&typeof s[e]=="function")&&e!="__proto__")return s[e]}var FAe=Object.prototype,GAe=FAe.hasOwnProperty;function HAe(s,e,t){var i=s[e];(!(GAe.call(s,e)&&qi(i,t))||t===void 0&&!(e in s))&&Ha(s,e,t)}function VAe(s,e,t,i){var r=!t;t||(t={});for(var o=-1,n=e.length;++o-1&&s%1==0&&s0){if(++e>=l2e)return arguments[0]}else e=0;return s.apply(void 0,arguments)}}var j2e=g2e(u2e);function y2e(s,e){return j2e(M2e(s,e,Do),s+"")}function T2e(s,e,t){if(!Re(t))return!1;var i=typeof e;return(i=="number"?ni(t)&&Ka(e,t.length):i=="string"&&e in t)?qi(t[e],s):!1}function D2e(s){return y2e(function(e,t){var i=-1,r=t.length,o=r>1?t[r-1]:void 0,n=r>2?t[2]:void 0;for(o=s.length>3&&typeof o=="function"?(r--,o):void 0,n&&T2e(t[0],t[1],n)&&(o=r<3?void 0:o,r=1),e=Object(e);++i=e||A<0||u&&S>=o}function z(){var h=Fo();if(D(h))return p(h);a=setTimeout(z,T(h))}function p(h){return a=void 0,L&&i?g(h):(i=r=void 0,n)}function C(){a!==void 0&&clearTimeout(a),l=0,i=c=r=a=void 0}function m(){return a===void 0?n:p(Fo())}function I(){var h=Fo(),A=D(h);if(i=arguments,r=this,c=h,A){if(a===void 0)return y(c);if(u)return clearTimeout(a),a=setTimeout(z,e),g(c)}return a===void 0&&(a=setTimeout(z,e)),n}return I.cancel=C,I.flush=m,I}var x2e="Expected a function";function _2e(s,e,t){var i=!0,r=!0;if(typeof s!="function")throw new TypeError(x2e);return Re(t)&&(i="leading"in t?!!t.leading:i,r="trailing"in t?!!t.trailing:r),e4(s,e,{leading:i,maxWait:e,trailing:r})}var S2e=function(e,t,i){var r=i.getBoundingClientRect(),o=r.width,n=r.height,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(i.getBoundingClientRect().left+window.pageXOffset),N=c-(i.getBoundingClientRect().top+window.pageYOffset);l<0?l=0:l>o&&(l=o),N<0?N=0:N>n&&(N=n);var u=l/o,L=1-N/n;return{h:t.h,s:u,v:L,a:t.a,source:"hsv"}},k2e=function(){function s(e,t){for(var i=0;i=0,o=!t&&r&&(e==="hex"||e==="hex6"||e==="hex3"||e==="hex4"||e==="hex8"||e==="name");return o?e==="name"&&this._a===0?this.toName():this.toRgbString():(e==="rgb"&&(i=this.toRgbString()),e==="prgb"&&(i=this.toPercentageRgbString()),(e==="hex"||e==="hex6")&&(i=this.toHexString()),e==="hex3"&&(i=this.toHexString(!0)),e==="hex4"&&(i=this.toHex8String(!0)),e==="hex8"&&(i=this.toHex8String()),e==="name"&&(i=this.toName()),e==="hsl"&&(i=this.toHslString()),e==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return $(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(ime,arguments)},brighten:function(){return this._applyModification(rme,arguments)},darken:function(){return this._applyModification(ome,arguments)},desaturate:function(){return this._applyModification(eme,arguments)},saturate:function(){return this._applyModification(tme,arguments)},greyscale:function(){return this._applyModification(sme,arguments)},spin:function(){return this._applyModification(nme,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(cme,arguments)},complement:function(){return this._applyCombination(ame,arguments)},monochromatic:function(){return this._applyCombination(ume,arguments)},splitcomplement:function(){return this._applyCombination(Mme,arguments)},triad:function(){return this._applyCombination(Fu,[3])},tetrad:function(){return this._applyCombination(Fu,[4])}};$.fromRatio=function(s,e){if(Gr(s)=="object"){var t={};for(var i in s)s.hasOwnProperty(i)&&(i==="a"?t[i]=s[i]:t[i]=zi(s[i]));s=t}return $(s,e)};function V2e(s){var e={r:0,g:0,b:0},t=1,i=null,r=null,o=null,n=!1,a=!1;return typeof s=="string"&&(s=jme(s)),Gr(s)=="object"&&(Nt(s.r)&&Nt(s.g)&&Nt(s.b)?(e=Z2e(s.r,s.g,s.b),n=!0,a=String(s.r).substr(-1)==="%"?"prgb":"rgb"):Nt(s.h)&&Nt(s.s)&&Nt(s.v)?(i=zi(s.s),r=zi(s.v),e=K2e(s.h,i,r),n=!0,a="hsv"):Nt(s.h)&&Nt(s.s)&&Nt(s.l)&&(i=zi(s.s),o=zi(s.l),e=X2e(s.h,i,o),n=!0,a="hsl"),s.hasOwnProperty("a")&&(t=s.a)),t=s4(t),{ok:n,format:s.format||a,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:t}}function Z2e(s,e,t){return{r:ce(s,255)*255,g:ce(e,255)*255,b:ce(t,255)*255}}function Wu(s,e,t){s=ce(s,255),e=ce(e,255),t=ce(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=(i+r)/2;if(i==r)o=n=0;else{var c=i-r;switch(n=a>.5?c/(2-i-r):c/(i+r),i){case s:o=(e-t)/c+(e1&&(u-=1),u<1/6?l+(N-l)*6*u:u<1/2?N:u<2/3?l+(N-l)*(2/3-u)*6:l}if(e===0)i=r=o=t;else{var a=t<.5?t*(1+e):t+e-t*e,c=2*t-a;i=n(c,a,s+1/3),r=n(c,a,s),o=n(c,a,s-1/3)}return{r:i*255,g:r*255,b:o*255}}function Bu(s,e,t){s=ce(s,255),e=ce(e,255),t=ce(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=i,c=i-r;if(n=i===0?0:c/i,i==r)o=0;else{switch(i){case s:o=(e-t)/c+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push($(i));return o}function ume(s,e){e=e||6;for(var t=$(s).toHsv(),i=t.h,r=t.s,o=t.v,n=[],a=1/e;e--;)n.push($({h:i,s:r,v:o})),o=(o+a)%1;return n}$.mix=function(s,e,t){t=t===0?0:t||50;var i=$(s).toRgb(),r=$(e).toRgb(),o=t/100,n={r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a};return $(n)};$.readability=function(s,e){var t=$(s),i=$(e);return(Math.max(t.getLuminance(),i.getLuminance())+.05)/(Math.min(t.getLuminance(),i.getLuminance())+.05)};$.isReadable=function(s,e,t){var i=$.readability(s,e),r,o;switch(o=!1,r=yme(t),r.level+r.size){case"AAsmall":case"AAAlarge":o=i>=4.5;break;case"AAlarge":o=i>=3;break;case"AAAsmall":o=i>=7;break}return o};$.mostReadable=function(s,e,t){var i=null,r=0,o,n,a,c;t=t||{},n=t.includeFallbackColors,a=t.level,c=t.size;for(var l=0;lr&&(r=o,i=$(e[l]));return $.isReadable(s,i,{level:a,size:c})||!n?i:(t.includeFallbackColors=!1,$.mostReadable(s,["#fff","#000"],t))};var Yn=$.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},lme=$.hexNames=Nme(Yn);function Nme(s){var e={};for(var t in s)s.hasOwnProperty(t)&&(e[s[t]]=t);return e}function s4(s){return s=parseFloat(s),(isNaN(s)||s<0||s>1)&&(s=1),s}function ce(s,e){Lme(s)&&(s="100%");var t=gme(s);return s=Math.min(e,Math.max(0,parseFloat(s))),t&&(s=parseInt(s*e,10)/100),Math.abs(s-e)<1e-6?1:s%e/parseFloat(e)}function wo(s){return Math.min(1,Math.max(0,s))}function be(s){return parseInt(s,16)}function Lme(s){return typeof s=="string"&&s.indexOf(".")!=-1&&parseFloat(s)===1}function gme(s){return typeof s=="string"&&s.indexOf("%")!=-1}function Xe(s){return s.length==1?"0"+s:""+s}function zi(s){return s<=1&&(s=s*100+"%"),s}function i4(s){return Math.round(parseFloat(s)*255).toString(16)}function Gu(s){return be(s)/255}var Ze=function(){var s="[-\\+]?\\d+%?",e="[-\\+]?\\d*\\.\\d+%?",t="(?:"+e+")|(?:"+s+")",i="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",r="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Nt(s){return!!Ze.CSS_UNIT.exec(s)}function jme(s){s=s.replace(G2e,"").replace(H2e,"").toLowerCase();var e=!1;if(Yn[s])s=Yn[s],e=!0;else if(s=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var t;return(t=Ze.rgb.exec(s))?{r:t[1],g:t[2],b:t[3]}:(t=Ze.rgba.exec(s))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Ze.hsl.exec(s))?{h:t[1],s:t[2],l:t[3]}:(t=Ze.hsla.exec(s))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Ze.hsv.exec(s))?{h:t[1],s:t[2],v:t[3]}:(t=Ze.hsva.exec(s))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Ze.hex8.exec(s))?{r:be(t[1]),g:be(t[2]),b:be(t[3]),a:Gu(t[4]),format:e?"name":"hex8"}:(t=Ze.hex6.exec(s))?{r:be(t[1]),g:be(t[2]),b:be(t[3]),format:e?"name":"hex"}:(t=Ze.hex4.exec(s))?{r:be(t[1]+""+t[1]),g:be(t[2]+""+t[2]),b:be(t[3]+""+t[3]),a:Gu(t[4]+""+t[4]),format:e?"name":"hex8"}:(t=Ze.hex3.exec(s))?{r:be(t[1]+""+t[1]),g:be(t[2]+""+t[2]),b:be(t[3]+""+t[3]),format:e?"name":"hex"}:!1}function yme(s){var e,t;return s=s||{level:"AA",size:"small"},e=(s.level||"AA").toUpperCase(),t=(s.size||"small").toLowerCase(),e!=="AA"&&e!=="AAA"&&(e="AA"),t!=="small"&&t!=="large"&&(t="small"),{level:e,size:t}}var Hu=function(e){var t=["r","g","b","a","h","s","l","v"],i=0,r=0;return F2e(t,function(o){if(e[o]&&(i+=1,isNaN(e[o])||(r+=1),o==="s"||o==="l")){var n=/^\d+%$/;n.test(e[o])&&(r+=1)}}),i===r?e:!1},wi=function(e,t){var i=e.hex?$(e.hex):$(e),r=i.toHsl(),o=i.toHsv(),n=i.toRgb(),a=i.toHex();r.s===0&&(r.h=t||0,o.h=t||0);var c=a==="000000"&&n.a===0;return{hsl:r,hex:c?"transparent":"#"+a,rgb:n,hsv:o,oldHue:e.h||t||r.h,source:e.source}},Wt=function(e){if(e==="transparent")return!0;var t=String(e).charAt(0)==="#"?1:0;return e.length!==4+t&&e.length<7+t&&$(e).isValid()},eM=function(e){if(!e)return"#fff";var t=wi(e);if(t.hex==="transparent")return"rgba(0,0,0,0.4)";var i=(t.rgb.r*299+t.rgb.g*587+t.rgb.b*114)/1e3;return i>=128?"#000":"#fff"},Go=function(e,t){var i=e.replace("°","");return $(t+" ("+i+")")._ok},Li=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){Ime(r,i);function r(){var o,n,a,c;Cme(this,r);for(var l=arguments.length,N=Array(l),u=0;ua))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&vme?new Hr:void 0;for(o.set(s,e),o.set(e,s);++u=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var gr=24,ZOe=L4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?gr:i,o=s.height,n=o===void 0?gr:o,a=s.style,c=a===void 0?{}:a,l=VOe(s,["fill","width","height","style"]);return Nl.default.createElement("svg",ll({viewBox:"0 0 "+gr+" "+gr,style:ll({fill:t,width:r,height:n},c)},l),Nl.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))},XOe=function(){function s(e,t){for(var i=0;i1&&(r.a=1),i.props.onChange({h:i.props.hsl.h,s:i.props.hsl.s,l:i.props.hsl.l,a:Math.round(r.a*100)/100,source:"rgb"},o)):(r.h||r.s||r.l)&&(typeof r.s=="string"&&r.s.includes("%")&&(r.s=r.s.replace("%","")),typeof r.l=="string"&&r.l.includes("%")&&(r.l=r.l.replace("%","")),r.s==1?r.s=.01:r.l==1&&(r.l=.01),i.props.onChange({h:r.h||i.props.hsl.h,s:Number(ul(r.s)?i.props.hsl.s:r.s),l:Number(ul(r.l)?i.props.hsl.l:r.l),source:"hsl"},o))},i.showHighlight=function(r){r.currentTarget.style.background="#eee"},i.hideHighlight=function(r){r.currentTarget.style.background="transparent"},t.hsl.a!==1&&t.view==="hex"?i.state={view:"rgb"}:i.state={view:t.view},i}return XOe(e,[{key:"render",value:function(){var i=this,r=G({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),o=void 0;return this.state.view==="hex"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):this.state.view==="rgb"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):this.state.view==="hsl"&&(o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"s",value:Math.round(this.props.hsl.s*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"l",value:Math.round(this.props.hsl.l*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),M.createElement("div",{style:r.wrap,className:"flexbox-fix"},o,M.createElement("div",{style:r.toggle},M.createElement("div",{style:r.icon,onClick:this.toggleViews,ref:function(a){return i.icon=a}},M.createElement(ZOe,{style:r.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(i,r){return i.hsl.a!==1&&r.view==="hex"?{view:"rgb"}:null}}]),e}(M.Component);g4.defaultProps={view:"hex"};var Ll=function(){var e=G({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return M.createElement("div",{style:e.picker})},tEe=function(){var e=G({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return M.createElement("div",{style:e.picker})},nM=function(e){var t=e.width,i=e.onChange,r=e.disableAlpha,o=e.rgb,n=e.hsl,a=e.hsv,c=e.hex,l=e.renderers,N=e.styles,u=N===void 0?{}:N,L=e.className,g=L===void 0?"":L,y=e.defaultView,T=G(Ye({default:{picker:{width:t,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+o.r+", "+o.g+", "+o.b+", "+o.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},u),{disableAlpha:r});return M.createElement("div",{style:T.picker,className:"chrome-picker "+g},M.createElement("div",{style:T.saturation},M.createElement(zo,{style:T.Saturation,hsl:n,hsv:a,pointer:tEe,onChange:i})),M.createElement("div",{style:T.body},M.createElement("div",{style:T.controls,className:"flexbox-fix"},M.createElement("div",{style:T.color},M.createElement("div",{style:T.swatch},M.createElement("div",{style:T.active}),M.createElement(ri,{renderers:l}))),M.createElement("div",{style:T.toggles},M.createElement("div",{style:T.hue},M.createElement(oi,{style:T.Hue,hsl:n,pointer:Ll,onChange:i})),M.createElement("div",{style:T.alpha},M.createElement(Fa,{style:T.Alpha,rgb:o,hsl:n,pointer:Ll,renderers:l,onChange:i})))),M.createElement(g4,{rgb:o,hsl:n,hex:c,view:y,onChange:i,disableAlpha:r})))};nM.propTypes={width:_.oneOfType([_.string,_.number]),disableAlpha:_.bool,styles:_.object,defaultView:_.oneOf(["hex","rgb","hsl"])};nM.defaultProps={width:225,disableAlpha:!1,styles:{}};const sEe=ve(nM);var iEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.active,a=G({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:eM(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:n,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{style:a.color,color:t,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:a.dot}))},rEe=function(e){var t=e.hex,i=e.rgb,r=e.onChange,o=G({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),n=function(c,l){c.r||c.g||c.b?r({r:c.r||i.r,g:c.g||i.g,b:c.b||i.b,source:"rgb"},l):r({hex:c.hex,source:"hex"},l)};return M.createElement("div",{style:o.fields,className:"flexbox-fix"},M.createElement("div",{style:o.active}),M.createElement(K,{style:{wrap:o.HEXwrap,input:o.HEXinput,label:o.HEXlabel},label:"hex",value:t,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"r",value:i.r,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"g",value:i.g,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"b",value:i.b,onChange:n}))},aM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.colors,o=e.hex,n=e.rgb,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=G(Ye({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},c)),L=function(y,T){y.hex?Wt(y.hex)&&t({hex:y.hex,source:"hex"},T):t(y,T)};return M.createElement(er,{style:u.Compact,styles:c},M.createElement("div",{style:u.compact,className:"compact-picker "+N},M.createElement("div",null,Ns(r,function(g){return M.createElement(iEe,{key:g,color:g,active:g.toLowerCase()===o,onClick:L,onSwatchHover:i})}),M.createElement("div",{style:u.clear})),M.createElement(rEe,{hex:o,rgb:n,onChange:L})))};aM.propTypes={colors:_.arrayOf(_.string),styles:_.object};aM.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}};ve(aM);var oEe=function(e){var t=e.hover,i=e.color,r=e.onClick,o=e.onSwatchHover,n={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},a=G({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:n}},{hover:t});return M.createElement("div",{style:a.swatch},M.createElement(ls,{color:i,onClick:r,onHover:o,focusStyle:n}))};const nEe=Ra(oEe);var MM=function(e){var t=e.width,i=e.colors,r=e.onChange,o=e.onSwatchHover,n=e.triangle,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=G(Ye({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},c),{"hide-triangle":n==="hide","top-left-triangle":n==="top-left","top-right-triangle":n==="top-right","bottom-left-triangle":n==="bottom-left","bottom-right-triangle":n==="bottom-right"}),L=function(y,T){return r({hex:y,source:"hex"},T)};return M.createElement("div",{style:u.card,className:"github-picker "+N},M.createElement("div",{style:u.triangleShadow}),M.createElement("div",{style:u.triangle}),Ns(i,function(g){return M.createElement(nEe,{color:g,key:g,onClick:L,onSwatchHover:o})}))};MM.propTypes={width:_.oneOfType([_.string,_.number]),colors:_.arrayOf(_.string),triangle:_.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:_.object};MM.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}};ve(MM);var aEe=function(e){var t=e.direction,i=G({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:t==="vertical"});return M.createElement("div",{style:i.picker})},MEe=Object.assign||function(s){for(var e=1;e.5});return M.createElement("div",{style:i.picker})},NEe=function(){var e=G({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return M.createElement("div",{style:e.pointer},M.createElement("div",{style:e.left},M.createElement("div",{style:e.leftInside})),M.createElement("div",{style:e.right},M.createElement("div",{style:e.rightInside})))},gl=function(e){var t=e.onClick,i=e.label,r=e.children,o=e.active,n=G({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:o});return M.createElement("div",{style:n.button,onClick:t},i||r)},LEe=function(e){var t=e.rgb,i=e.currentColor,r=G({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:i,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return M.createElement("div",null,M.createElement("div",{style:r.label},"new"),M.createElement("div",{style:r.swatches},M.createElement("div",{style:r.new}),M.createElement("div",{style:r.current})),M.createElement("div",{style:r.label},"current"))},gEe=function(){function s(e,t){for(var i=0;i100&&(N.a=100),N.a/=100,t({h:r.h,s:r.s,l:r.l,a:N.a,source:"rgb"},u))};return M.createElement("div",{style:a.fields,className:"flexbox-fix"},M.createElement("div",{style:a.double},M.createElement(K,{style:{input:a.input,label:a.label},label:"hex",value:o.replace("#",""),onChange:c})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"r",value:i.r,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"g",value:i.g,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"b",value:i.b,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.alpha},M.createElement(K,{style:{input:a.input,label:a.label},label:"a",value:Math.round(i.a*100),onChange:c,dragLabel:"true",dragMax:"100"})))},dEe=Object.assign||function(s){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var jr=24,AEe=y4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?jr:i,o=s.height,n=o===void 0?jr:o,a=s.style,c=a===void 0?{}:a,l=pEe(s,["fill","width","height","style"]);return yl.default.createElement("svg",jl({viewBox:"0 0 "+jr+" "+jr,style:jl({fill:t,width:r,height:n},c)},l),yl.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))},mEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.first,a=e.last,c=e.active,l=G({default:{color:{width:"40px",height:"24px",cursor:"pointer",background:t,marginBottom:"1px"},check:{color:eM(t),marginLeft:"8px",display:"none"}},first:{color:{overflow:"hidden",borderRadius:"2px 2px 0 0"}},last:{color:{overflow:"hidden",borderRadius:"0 0 2px 2px"}},active:{check:{display:"block"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},check:{color:"#333"}},transparent:{check:{color:"#333"}}},{first:n,last:a,active:c,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{color:t,style:l.color,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:l.check},M.createElement(AEe,null)))},OEe=function(e){var t=e.onClick,i=e.onSwatchHover,r=e.group,o=e.active,n=G({default:{group:{paddingBottom:"10px",width:"40px",float:"left",marginRight:"10px"}}});return M.createElement("div",{style:n.group},Ns(r,function(a,c){return M.createElement(mEe,{key:a,color:a,active:a.toLowerCase()===o,first:c===0,last:c===r.length-1,onClick:t,onSwatchHover:i})}))},LM=function(e){var t=e.width,i=e.height,r=e.onChange,o=e.onSwatchHover,n=e.colors,a=e.hex,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=G(Ye({default:{picker:{width:t,height:i},overflow:{height:i,overflowY:"scroll"},body:{padding:"16px 0 6px 16px"},clear:{clear:"both"}}},l)),g=function(T,D){return r({hex:T,source:"hex"},D)};return M.createElement("div",{style:L.picker,className:"swatches-picker "+u},M.createElement(er,null,M.createElement("div",{style:L.overflow},M.createElement("div",{style:L.body},Ns(n,function(y){return M.createElement(OEe,{key:y.toString(),group:y,active:a,onClick:g,onSwatchHover:o})}),M.createElement("div",{style:L.clear})))))};LM.propTypes={width:_.oneOfType([_.string,_.number]),height:_.oneOfType([_.string,_.number]),colors:_.arrayOf(_.arrayOf(_.string)),styles:_.object};LM.defaultProps={width:320,height:240,colors:[[zs[900],zs[700],zs[500],zs[300],zs[100]],[ws[900],ws[700],ws[500],ws[300],ws[100]],[Cs[900],Cs[700],Cs[500],Cs[300],Cs[100]],[Is[900],Is[700],Is[500],Is[300],Is[100]],[ps[900],ps[700],ps[500],ps[300],ps[100]],[As[900],As[700],As[500],As[300],As[100]],[ms[900],ms[700],ms[500],ms[300],ms[100]],[Os[900],Os[700],Os[500],Os[300],Os[100]],[Es[900],Es[700],Es[500],Es[300],Es[100]],["#194D33",Ci[700],Ci[500],Ci[300],Ci[100]],[fs[900],fs[700],fs[500],fs[300],fs[100]],[xs[900],xs[700],xs[500],xs[300],xs[100]],[_s[900],_s[700],_s[500],_s[300],_s[100]],[Ss[900],Ss[700],Ss[500],Ss[300],Ss[100]],[ks[900],ks[700],ks[500],ks[300],ks[100]],[Ys[900],Ys[700],Ys[500],Ys[300],Ys[100]],[vs[900],vs[700],vs[500],vs[300],vs[100]],[bs[900],bs[700],bs[500],bs[300],bs[100]],["#000000","#525252","#969696","#D9D9D9","#FFFFFF"]],styles:{}};ve(LM);var gM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.hex,o=e.colors,n=e.width,a=e.triangle,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=G(Ye({default:{card:{width:n,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},l),{"hide-triangle":a==="hide","top-left-triangle":a==="top-left","top-right-triangle":a==="top-right"}),g=function(T,D){Wt(T)&&t({hex:T,source:"hex"},D)};return M.createElement("div",{style:L.card,className:"twitter-picker "+u},M.createElement("div",{style:L.triangleShadow}),M.createElement("div",{style:L.triangle}),M.createElement("div",{style:L.body},Ns(o,function(y,T){return M.createElement(ls,{key:T,color:y,hex:y,style:L.swatch,onClick:g,onHover:i,focusStyle:{boxShadow:"0 0 4px "+y}})}),M.createElement("div",{style:L.hash},"#"),M.createElement(K,{label:null,style:{input:L.input},value:r.replace("#",""),onChange:g}),M.createElement("div",{style:L.clear})))};gM.propTypes={width:_.oneOfType([_.string,_.number]),triangle:_.oneOf(["hide","top-left","top-right"]),colors:_.arrayOf(_.string),styles:_.object};gM.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}};ve(gM);var jM=function(e){var t=G({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",border:"2px #fff solid",transform:"translate(-12px, -13px)",background:"hsl("+Math.round(e.hsl.h)+", "+Math.round(e.hsl.s*100)+"%, "+Math.round(e.hsl.l*100)+"%)"}}});return M.createElement("div",{style:t.picker})};jM.propTypes={hsl:_.shape({h:_.number,s:_.number,l:_.number,a:_.number})};jM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var yM=function(e){var t=G({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",transform:"translate(-10px, -7px)",background:"hsl("+Math.round(e.hsl.h)+", 100%, 50%)",border:"2px white solid"}}});return M.createElement("div",{style:t.picker})};yM.propTypes={hsl:_.shape({h:_.number,s:_.number,l:_.number,a:_.number})};yM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var EEe=function(e){var t=e.onChange,i=e.rgb,r=e.hsl,o=e.hex,n=e.hsv,a=function(g,y){if(g.hex)Wt(g.hex)&&t({hex:g.hex,source:"hex"},y);else if(g.rgb){var T=g.rgb.split(",");Go(g.rgb,"rgb")&&t({r:T[0],g:T[1],b:T[2],a:1,source:"rgb"},y)}else if(g.hsv){var D=g.hsv.split(",");Go(g.hsv,"hsv")&&(D[2]=D[2].replace("%",""),D[1]=D[1].replace("%",""),D[0]=D[0].replace("°",""),D[1]==1?D[1]=.01:D[2]==1&&(D[2]=.01),t({h:Number(D[0]),s:Number(D[1]),v:Number(D[2]),source:"hsv"},y))}else if(g.hsl){var z=g.hsl.split(",");Go(g.hsl,"hsl")&&(z[2]=z[2].replace("%",""),z[1]=z[1].replace("%",""),z[0]=z[0].replace("°",""),u[1]==1?u[1]=.01:u[2]==1&&(u[2]=.01),t({h:Number(z[0]),s:Number(z[1]),v:Number(z[2]),source:"hsl"},y))}},c=G({default:{wrap:{display:"flex",height:"100px",marginTop:"4px"},fields:{width:"100%"},column:{paddingTop:"10px",display:"flex",justifyContent:"space-between"},double:{padding:"0px 4.4px",boxSizing:"border-box"},input:{width:"100%",height:"38px",boxSizing:"border-box",padding:"4px 10% 3px",textAlign:"center",border:"1px solid #dadce0",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",fontFamily:"Roboto,Arial,sans-serif"},input2:{height:"38px",width:"100%",border:"1px solid #dadce0",boxSizing:"border-box",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",paddingLeft:"10px",fontFamily:"Roboto,Arial,sans-serif"},label:{textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"35px",top:"-6px",left:"0",right:"0",marginLeft:"auto",marginRight:"auto",fontFamily:"Roboto,Arial,sans-serif"},label2:{left:"10px",textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"32px",top:"-6px",fontFamily:"Roboto,Arial,sans-serif"},single:{flexGrow:"1",margin:"0px 4.4px"}}}),l=i.r+", "+i.g+", "+i.b,N=Math.round(r.h)+"°, "+Math.round(r.s*100)+"%, "+Math.round(r.l*100)+"%",u=Math.round(n.h)+"°, "+Math.round(n.s*100)+"%, "+Math.round(n.v*100)+"%";return M.createElement("div",{style:c.wrap,className:"flexbox-fix"},M.createElement("div",{style:c.fields},M.createElement("div",{style:c.double},M.createElement(K,{style:{input:c.input,label:c.label},label:"hex",value:o,onChange:a})),M.createElement("div",{style:c.column},M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"rgb",value:l,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsv",value:u,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsl",value:N,onChange:a})))))},TM=function(e){var t=e.width,i=e.onChange,r=e.rgb,o=e.hsl,n=e.hsv,a=e.hex,c=e.header,l=e.styles,N=l===void 0?{}:l,u=e.className,L=u===void 0?"":u,g=G(Ye({default:{picker:{width:t,background:"#fff",border:"1px solid #dfe1e5",boxSizing:"initial",display:"flex",flexWrap:"wrap",borderRadius:"8px 8px 0px 0px"},head:{height:"57px",width:"100%",paddingTop:"16px",paddingBottom:"16px",paddingLeft:"16px",fontSize:"20px",boxSizing:"border-box",fontFamily:"Roboto-Regular,HelveticaNeue,Arial,sans-serif"},saturation:{width:"70%",padding:"0px",position:"relative",overflow:"hidden"},swatch:{width:"30%",height:"228px",padding:"0px",background:"rgba("+r.r+", "+r.g+", "+r.b+", 1)",position:"relative",overflow:"hidden"},body:{margin:"auto",width:"95%"},controls:{display:"flex",boxSizing:"border-box",height:"52px",paddingTop:"22px"},color:{width:"32px"},hue:{height:"8px",position:"relative",margin:"0px 16px 0px 16px",width:"100%"},Hue:{radius:"2px"}}},N));return M.createElement("div",{style:g.picker,className:"google-picker "+L},M.createElement("div",{style:g.head},c),M.createElement("div",{style:g.swatch}),M.createElement("div",{style:g.saturation},M.createElement(zo,{hsl:o,hsv:n,pointer:jM,onChange:i})),M.createElement("div",{style:g.body},M.createElement("div",{style:g.controls,className:"flexbox-fix"},M.createElement("div",{style:g.hue},M.createElement(oi,{style:g.Hue,hsl:o,radius:"4px",pointer:yM,onChange:i}))),M.createElement(EEe,{rgb:r,hsl:o,hex:a,hsv:n,onChange:i})))};TM.propTypes={width:_.oneOfType([_.string,_.number]),styles:_.object,header:_.string};TM.defaultProps={width:652,styles:{},header:"Color picker"};ve(TM);const He={color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{mt:"16px",p:"5px",backgroundColor:"background.paper",borderRadius:"1px",boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{"& .MuiPaper-root":{textAlign:"right",backgroundColor:"#00000000",boxShadow:"none"}},popoverList:{padding:0},closeButton:s=>({backgroundColor:`${s.palette.background.paper} !important`,borderRadius:"0 0 25% 25%","&:hover":{backgroundColor:`${s.palette.secondary.main} !important`}}),textDense:{mt:0,mb:0},iconButton:{width:16,height:16},button:{width:32,height:32,minWidth:32,minHeight:32}};class Ii extends x.Component{constructor(e){super(e),this.state={displayColorPicker:!1,color:this.props.value||this.props.color||"",anchorEl:null}}handleClick=e=>{this.setState({displayColorPicker:!this.state.displayColorPicker,anchorEl:this.state.displayColorPicker?null:e.currentTarget})};handleClose=()=>{this.setState({displayColorPicker:!1,anchorEl:null})};static getColor(e,t){if(e&&typeof e=="object"){const i=e;if(i.rgb)return t?`#${i.rgb.r.toString(16).padStart(2,"0")}${i.rgb.g.toString(16).padStart(2,"0")}${i.rgb.b.toString(16).padStart(2,"0")}`:`rgba(${i.rgb.r},${i.rgb.g},${i.rgb.b},${i.rgb.a})`;const r=e;return t?`#${r.r.toString(16).padStart(2,"0")}${r.g.toString(16).padStart(2,"0")}${r.b.toString(16).padStart(2,"0")}`:`rgba(${r.r},${r.g},${r.b},${r.a})`}return typeof e=="string"?t?Ii.rgb2hex(e||""):e||"":""}static rgb2hex(e){const t=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(t){const i=parseInt(t[1],10).toString(16).padStart(2,"0"),r=parseInt(t[2],10).toString(16).padStart(2,"0"),o=parseInt(t[3],10).toString(16).padStart(2,"0");return(t==null?void 0:t.length)===4?`#${i}${r}${o}`:e}return e}handleChange=e=>{this.setState({color:e},()=>this.props.onChange&&this.props.onChange(Ii.getColor(e)))};componentDidUpdate(e,t){const i=Ii.getColor(this.props.color||this.props.value||"");i!==t.color&&this.setState({color:i})}renderCustomPalette(){return this.props.customPalette?M.createElement("div",{style:{width:"100%",display:"flex",flexWrap:"wrap"}},this.props.customPalette.map(e=>M.createElement(j.Button,{style:He.button,key:e,onClick:()=>{this.handleChange(e),setTimeout(()=>this.handleClose(),300)}},M.createElement("div",{style:{...He.iconButton,background:e}})))):null}render(){var i;const e={...this.props.style||{}};e.position="relative";const{color:t}=this.state;return M.createElement(j.Box,{component:"div",style:e,sx:this.props.sx||void 0,className:this.props.className||""},this.props.noInputField?null:M.createElement(j.TextField,{disabled:this.props.disabled,variant:"standard",id:"ar_color_picker_name",label:this.props.label||this.props.name,value:t||"",margin:"dense",sx:{"&.MuiFormControl-root":He.textDense,width:t?"calc(100% - 80px)":"calc(100% - 56px)",mr:t?void 0:1},onChange:r=>this.handleChange(r.target.value)}),!this.props.noInputField&&t?M.createElement(j.IconButton,{disabled:this.props.disabled,onClick:()=>this.handleChange(""),size:"small",style:this.props.label||this.props.name?He.delButton:void 0},M.createElement(nt,null)):null,M.createElement(j.Box,{component:"div",onClick:r=>!this.props.disabled&&this.handleClick(r),title:d.t("ra_Select color"),sx:{...He.swatch,...this.props.disabled?He.swatchDisabled:void 0,background:t?void 0:"transparent",border:t?void 0:"1px dashed #ccc",boxSizing:"border-box",marginTop:this.props.noInputField||!(this.props.label||this.props.name)?0:void 0}},M.createElement("div",{style:{...He.color,background:Ii.getColor(t),width:this.props.noInputField?this.props.barWidth||16:this.props.barWidth||36}})),this.state.displayColorPicker&&!this.props.disabled?M.createElement(j.Menu,{sx:{...He.popover,"&. MuiMenu-list":He.popoverList},anchorEl:this.state.anchorEl,open:!0,onClose:()=>this.handleClose()},M.createElement(sEe,{color:this.state.color||void 0,onChangeComplete:r=>this.handleChange(r.rgb),styles:{default:{picker:{backgroundColor:((i=this.props.theme)==null?void 0:i.palette.background.paper)||"#888"}}}}),t&&this.props.noInputField?M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleChange("")},M.createElement(nt,null)):null,M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleClose()},M.createElement(Ne,null)),this.renderCustomPalette()):null)}}var T4={exports:{}};(function(s,e){(function(i,r){s.exports=r()})(globalThis,()=>(()=>{var t={949:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.CronParser=void 0;var l=c(515),N=function(){function u(L,g,y){g===void 0&&(g=!0),y===void 0&&(y=!1),this.expression=L,this.dayOfWeekStartIndexZero=g,this.monthStartIndexZero=y}return u.prototype.parse=function(){var L,g,y=(L=this.expression)!==null&&L!==void 0?L:"";if(y.startsWith("@")){var T=this.parseSpecial(this.expression);g=this.extractParts(T)}else g=this.extractParts(this.expression);return this.normalize(g),this.validate(g),g},u.prototype.parseSpecial=function(L){var g={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"},y=g[L];if(!y)throw new Error("Unknown special expression.");return y},u.prototype.extractParts=function(L){if(!this.expression)throw new Error("cron expression is empty");for(var g=L.trim().split(/[ ]+/),y=0;y7)throw new Error("Expression has ".concat(g.length," parts; too many!"));return g},u.prototype.normalize=function(L){var g=this;if(L[3]=L[3].replace("?","*"),L[5]=L[5].replace("?","*"),L[2]=L[2].replace("?","*"),L[0].indexOf("0/")==0&&(L[0]=L[0].replace("0/","*/")),L[1].indexOf("0/")==0&&(L[1]=L[1].replace("0/","*/")),L[2].indexOf("0/")==0&&(L[2]=L[2].replace("0/","*/")),L[3].indexOf("1/")==0&&(L[3]=L[3].replace("1/","*/")),L[4].indexOf("1/")==0&&(L[4]=L[4].replace("1/","*/")),L[6].indexOf("1/")==0&&(L[6]=L[6].replace("1/","*/")),L[5]=L[5].replace(/(^\d)|([^#/\s]\d)/g,function(I){var h=I.replace(/\D/,""),A=h;return g.dayOfWeekStartIndexZero?h=="7"&&(A="0"):A=(parseInt(h)-1).toString(),I.replace(h,A)}),L[5]=="L"&&(L[5]="6"),L[3]=="?"&&(L[3]="*"),L[3].indexOf("W")>-1&&(L[3].indexOf(",")>-1||L[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var y={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var T in y)L[5]=L[5].replace(new RegExp(T,"gi"),y[T].toString());L[4]=L[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(I){var h=I.replace(/\D/,""),A=h;return g.monthStartIndexZero&&(A=(parseInt(h)+1).toString()),I.replace(h,A)});var D={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var z in D)L[4]=L[4].replace(new RegExp(z,"gi"),D[z].toString());L[0]=="0"&&(L[0]=""),!/\*|\-|\,|\//.test(L[2])&&(/\*|\//.test(L[1])||/\*|\//.test(L[0]))&&(L[2]+="-".concat(L[2]));for(var p=0;p-1&&!/^\*|\-|\,/.test(L[p])){var C=null;switch(p){case 4:C="12";break;case 5:C="6";break;case 6:C="9999";break;default:C=null;break}if(C!==null){var m=L[p].split("/");L[p]="".concat(m[0],"-").concat(C,"/").concat(m[1])}}},u.prototype.validate=function(L){var g="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(L[0],g),this.validateOnlyExpectedCharactersFound(L[1],g),this.validateOnlyExpectedCharactersFound(L[2],g),this.validateOnlyExpectedCharactersFound(L[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(L[4],g),this.validateOnlyExpectedCharactersFound(L[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(L[6],g),this.validateAnyRanges(L)},u.prototype.validateAnyRanges=function(L){l.default.secondRange(L[0]),l.default.minuteRange(L[1]),l.default.hourRange(L[2]),l.default.dayOfMonthRange(L[3]),l.default.monthRange(L[4],this.monthStartIndexZero),l.default.dayOfWeekRange(L[5],this.dayOfWeekStartIndexZero)},u.prototype.validateOnlyExpectedCharactersFound=function(L,g){var y=L.match(new RegExp("[^".concat(g,"]+"),"gi"));if(y&&y.length)throw new Error("Expression contains invalid values: '".concat(y.toString(),"'"))},u}();a.CronParser=N},333:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.ExpressionDescriptor=void 0;var l=c(823),N=c(949),u=function(){function L(g,y){if(this.expression=g,this.options=y,this.expressionParts=new Array(5),!this.options.locale&&L.defaultLocale&&(this.options.locale=L.defaultLocale),!L.locales[this.options.locale]){var T=Object.keys(L.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(T,"'.")),this.options.locale=T}this.i18n=L.locales[this.options.locale],y.use24HourTimeFormat===void 0&&(y.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return L.toString=function(g,y){var T=y===void 0?{}:y,D=T.throwExceptionOnParseError,z=D===void 0?!0:D,p=T.verbose,C=p===void 0?!1:p,m=T.dayOfWeekStartIndexZero,I=m===void 0?!0:m,h=T.monthStartIndexZero,A=h===void 0?!1:h,S=T.use24HourTimeFormat,f=T.locale,P=f===void 0?null:f,v=T.tzOffset,ee=v===void 0?0:v,ae={throwExceptionOnParseError:z,verbose:C,dayOfWeekStartIndexZero:I,monthStartIndexZero:A,use24HourTimeFormat:S,locale:P,tzOffset:ee};ae.tzOffset&&console.warn("'tzOffset' option has been deprecated and will be removed in a future release.");var J=new L(g,ae);return J.getFullDescription()},L.initialize=function(g,y){y===void 0&&(y="en"),L.specialCharacters=["/","-",",","*"],L.defaultLocale=y,g.load(L.locales)},L.prototype.getFullDescription=function(){var g="";try{var y=new N.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);this.expressionParts=y.parse();var T=this.getTimeOfDayDescription(),D=this.getDayOfMonthDescription(),z=this.getMonthDescription(),p=this.getDayOfWeekDescription(),C=this.getYearDescription();g+=T+D+p+z+C,g=this.transformVerbosity(g,!!this.options.verbose),g=g.charAt(0).toLocaleUpperCase()+g.substr(1)}catch(m){if(!this.options.throwExceptionOnParseError)g=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(m)}return g},L.prototype.getTimeOfDayDescription=function(){var g=this.expressionParts[0],y=this.expressionParts[1],T=this.expressionParts[2],D="";if(!l.StringUtilities.containsAny(y,L.specialCharacters)&&!l.StringUtilities.containsAny(T,L.specialCharacters)&&!l.StringUtilities.containsAny(g,L.specialCharacters))D+=this.i18n.atSpace()+this.formatTime(T,y,g);else if(!g&&y.indexOf("-")>-1&&!(y.indexOf(",")>-1)&&!(y.indexOf("/")>-1)&&!l.StringUtilities.containsAny(T,L.specialCharacters)){var z=y.split("-");D+=l.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(T,z[0],""),this.formatTime(T,z[1],""))}else if(!g&&T.indexOf(",")>-1&&T.indexOf("-")==-1&&T.indexOf("/")==-1&&!l.StringUtilities.containsAny(y,L.specialCharacters)){var p=T.split(",");D+=this.i18n.at();for(var C=0;C-1?p=D.substring(0,D.indexOf("#")):D.indexOf("L")>-1&&(p=p.replace("L",""));var C=parseInt(p);if(g.options.tzOffset){var m=g.expressionParts[2],I=parseInt(m)+(g.options.tzOffset?g.options.tzOffset:0);I>=24?C++:I<0&&C--,C>6?C=0:C<0&&(C=6)}var h=g.i18n.daysOfTheWeekInCase?g.i18n.daysOfTheWeekInCase(z)[C]:y[C];if(D.indexOf("#")>-1){var A=null,S=D.substring(D.indexOf("#")+1),f=D.substring(0,D.indexOf("#"));switch(S){case"1":A=g.i18n.first(f);break;case"2":A=g.i18n.second(f);break;case"3":A=g.i18n.third(f);break;case"4":A=g.i18n.fourth(f);break;case"5":A=g.i18n.fifth(f);break}h=A+" "+h}return h},function(D){return parseInt(D)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0DaysOfTheWeek(D),D)},function(D){var z=D.substring(0,D.indexOf("-")),p=g.expressionParts[3]!="*";return p?g.i18n.commaAndX0ThroughX1(z):g.i18n.commaX0ThroughX1(z)},function(D){var z=null;if(D.indexOf("#")>-1){var p=D.substring(D.indexOf("#")+1),C=D.substring(0,D.indexOf("#"));z=g.i18n.commaOnThe(p,C).trim()+g.i18n.spaceX0OfTheMonth()}else if(D.indexOf("L")>-1)z=g.i18n.commaOnTheLastX0OfTheMonth(D.replace("L",""));else{var m=g.expressionParts[3]!="*";z=m?g.i18n.commaAndOnX0():g.i18n.commaOnlyOnX0(D)}return z}),T},L.prototype.getMonthDescription=function(){var g=this,y=this.i18n.monthsOfTheYear(),T=this.getSegmentDescription(this.expressionParts[4],"",function(D,z){return z&&g.i18n.monthsOfTheYearInCase?g.i18n.monthsOfTheYearInCase(z)[parseInt(D)-1]:y[parseInt(D)-1]},function(D){return parseInt(D)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0Months(D),D)},function(D){return g.i18n.commaMonthX0ThroughMonthX1()||g.i18n.commaX0ThroughX1()},function(D){return g.i18n.commaOnlyInMonthX0?g.i18n.commaOnlyInMonthX0():g.i18n.commaOnlyInX0()});return T},L.prototype.getDayOfMonthDescription=function(){var g=this,y=null,T=this.expressionParts[3];switch(T){case"L":y=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":y=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var D=T.match(/(\d{1,2}W)|(W\d{1,2})/);if(D){var z=parseInt(D[0].replace("W","")),p=z==1?this.i18n.firstWeekday():l.StringUtilities.format(this.i18n.weekdayNearestDayX0(),z.toString());y=l.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),p);break}else{var C=T.match(/L-(\d{1,2})/);if(C){var m=C[1];y=l.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(m),m);break}else{if(T=="*"&&this.expressionParts[5]!="*")return"";y=this.getSegmentDescription(T,this.i18n.commaEveryDay(),function(I){return I=="L"?g.i18n.lastDay():g.i18n.dayX0?l.StringUtilities.format(g.i18n.dayX0(),I):I},function(I){return I=="1"?g.i18n.commaEveryDay():g.i18n.commaEveryX0Days(I)},function(I){return g.i18n.commaBetweenDayX0AndX1OfTheMonth(I)},function(I){return g.i18n.commaOnDayX0OfTheMonth(I)})}break}}return y},L.prototype.getYearDescription=function(){var g=this,y=this.getSegmentDescription(this.expressionParts[6],"",function(T){return/^\d+$/.test(T)?new Date(parseInt(T),1).getFullYear().toString():T},function(T){return l.StringUtilities.format(g.i18n.commaEveryX0Years(T),T)},function(T){return g.i18n.commaYearX0ThroughYearX1()||g.i18n.commaX0ThroughX1()},function(T){return g.i18n.commaOnlyInYearX0?g.i18n.commaOnlyInYearX0():g.i18n.commaOnlyInX0()});return y},L.prototype.getSegmentDescription=function(g,y,T,D,z,p){var C=null,m=g.indexOf("/")>-1,I=g.indexOf("-")>-1,h=g.indexOf(",")>-1;if(!g)C="";else if(g==="*")C=y;else if(!m&&!I&&!h)C=l.StringUtilities.format(p(g),T(g));else if(h){for(var A=g.split(","),S="",f=0;f0&&A.length>2&&(S+=",",f0&&A.length>1&&(f==A.length-1||A.length==2)&&(S+="".concat(this.i18n.spaceAnd()," ")),A[f].indexOf("/")>-1||A[f].indexOf("-")>-1){var P=A[f].indexOf("-")>-1&&A[f].indexOf("/")==-1,v=this.getSegmentDescription(A[f],y,T,D,P?this.i18n.commaX0ThroughX1:z,p);P&&(v=v.replace(", ","")),S+=v}else m?S+=this.getSegmentDescription(A[f],y,T,D,z,p):S+=T(A[f]);m?C=S:C=l.StringUtilities.format(p(g),S)}else if(m){var A=g.split("/");if(C=l.StringUtilities.format(D(A[1]),A[1]),A[0].indexOf("-")>-1){var ee=this.generateRangeSegmentDescription(A[0],z,T);ee.indexOf(", ")!=0&&(C+=", "),C+=ee}else if(A[0].indexOf("*")==-1){var ae=l.StringUtilities.format(p(A[0]),T(A[0]));ae=ae.replace(", ",""),C+=l.StringUtilities.format(this.i18n.commaStartingX0(),ae)}}else I&&(C=this.generateRangeSegmentDescription(g,z,T));return C},L.prototype.generateRangeSegmentDescription=function(g,y,T){var D="",z=g.split("-"),p=T(z[0],1),C=T(z[1],2),m=y(g);return D+=l.StringUtilities.format(m,p,C),D},L.prototype.formatTime=function(g,y,T){var D=0,z=0;this.options.tzOffset&&(D=this.options.tzOffset>0?Math.floor(this.options.tzOffset):Math.ceil(this.options.tzOffset),z=parseFloat((this.options.tzOffset%1).toFixed(2)),z!=0&&(z*=60));var p=parseInt(g)+D,C=parseInt(y)+z;C>=60?(C-=60,p+=1):C<0&&(C+=60,p-=1),p>=24?p=p-24:p<0&&(p=24+p);var m="",I=!1;this.options.use24HourTimeFormat||(I=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),m=I?"".concat(this.getPeriod(p)," "):" ".concat(this.getPeriod(p)),p>12&&(p-=12),p===0&&(p=12));var h="";return T&&(h=":".concat(("00"+T).substring(T.length))),"".concat(I?m:"").concat(("00"+p.toString()).substring(p.toString().length),":").concat(("00"+C.toString()).substring(C.toString().length)).concat(h).concat(I?"":m)},L.prototype.transformVerbosity=function(g,y){if(!y&&(g=g.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),g=g.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),g=g.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),g=g.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var T=0,D=Object.entries(this.i18n.conciseVerbosityReplacements());T=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},L.locales={},L}();a.ExpressionDescriptor=u},747:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.enLocaleLoader=void 0;var l=c(486),N=function(){function u(){}return u.prototype.load=function(L){L.en=new l.en},u}();a.enLocaleLoader=N},486:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.en=void 0;var c=function(){function l(){}return l.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},l.prototype.atX0MinutesPastTheHourGt20=function(){return null},l.prototype.commaMonthX0ThroughMonthX1=function(){return null},l.prototype.commaYearX0ThroughYearX1=function(){return null},l.prototype.use24HourTimeFormatByDefault=function(){return!1},l.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},l.prototype.everyMinute=function(){return"every minute"},l.prototype.everyHour=function(){return"every hour"},l.prototype.atSpace=function(){return"At "},l.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},l.prototype.at=function(){return"At"},l.prototype.spaceAnd=function(){return" and"},l.prototype.everySecond=function(){return"every second"},l.prototype.everyX0Seconds=function(){return"every %s seconds"},l.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},l.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},l.prototype.everyX0Minutes=function(){return"every %s minutes"},l.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},l.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},l.prototype.everyX0Hours=function(){return"every %s hours"},l.prototype.betweenX0AndX1=function(){return"between %s and %s"},l.prototype.atX0=function(){return"at %s"},l.prototype.commaEveryDay=function(){return", every day"},l.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},l.prototype.commaX0ThroughX1=function(){return", %s through %s"},l.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},l.prototype.first=function(){return"first"},l.prototype.second=function(){return"second"},l.prototype.third=function(){return"third"},l.prototype.fourth=function(){return"fourth"},l.prototype.fifth=function(){return"fifth"},l.prototype.commaOnThe=function(){return", on the "},l.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},l.prototype.lastDay=function(){return"the last day"},l.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},l.prototype.commaOnlyOnX0=function(){return", only on %s"},l.prototype.commaAndOnX0=function(){return", and on %s"},l.prototype.commaEveryX0Months=function(){return", every %s months"},l.prototype.commaOnlyInX0=function(){return", only in %s"},l.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},l.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},l.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},l.prototype.firstWeekday=function(){return"first weekday"},l.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},l.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},l.prototype.commaEveryX0Days=function(){return", every %s days"},l.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},l.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},l.prototype.commaEveryHour=function(){return", every hour"},l.prototype.commaEveryX0Years=function(){return", every %s years"},l.prototype.commaStartingX0=function(){return", starting %s"},l.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},l.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},l}();a.en=c},515:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0});function c(N,u){if(!N)throw new Error(u)}var l=function(){function N(){}return N.secondRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"seconds part must be >= 0 and <= 59")}},N.minuteRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"minutes part must be >= 0 and <= 59")}},N.hourRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=23,"hours part must be >= 0 and <= 23")}},N.dayOfMonthRange=function(u){for(var L=u.split(","),g=0;g=1&&y<=31,"DOM part must be >= 1 and <= 31")}},N.monthRange=function(u,L){for(var g=u.split(","),y=0;y=1&&T<=12,L?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},N.dayOfWeekRange=function(u,L){for(var g=u.split(","),y=0;y=0&&T<=6,L?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},N}();a.default=l},823:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.StringUtilities=void 0;var c=function(){function l(){}return l.format=function(N){for(var u=[],L=1;L-1})},l}();a.StringUtilities=c}},i={};function r(n){var a=i[n];if(a!==void 0)return a.exports;var c=i[n]={exports:{}};return t[n](c,c.exports,r),c.exports}var o={};return(()=>{var n=o;Object.defineProperty(n,"__esModule",{value:!0}),n.toString=void 0;var a=r(333),c=r(747);a.ExpressionDescriptor.initialize(new c.enLocaleLoader),n.default=a.ExpressionDescriptor;var l=a.ExpressionDescriptor.toString;n.toString=l})(),o})())})(T4);var lt=T4.exports;const fEe=$L(lt);var xEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.fr=void 0;var N=function(){function u(){}return u.prototype.conciseVerbosityReplacements=function(){return{"de le":"du"}},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe."},u.prototype.everyMinute=function(){return"toutes les minutes"},u.prototype.everyHour=function(){return"toutes les heures"},u.prototype.atSpace=function(){return"À "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Toutes les minutes entre %s et %s"},u.prototype.at=function(){return"À"},u.prototype.spaceAnd=function(){return" et"},u.prototype.everySecond=function(){return"toutes les secondes"},u.prototype.everyX0Seconds=function(){return"toutes les %s secondes"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"les secondes entre %s et %s après la minute"},u.prototype.atX0SecondsPastTheMinute=function(){return"%s secondes après la minute"},u.prototype.everyX0Minutes=function(){return"toutes les %s minutes"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"les minutes entre %s et %s après l'heure"},u.prototype.atX0MinutesPastTheHour=function(){return"%s minutes après l'heure"},u.prototype.everyX0Hours=function(){return"toutes les %s heures"},u.prototype.betweenX0AndX1=function(){return"de %s à %s"},u.prototype.atX0=function(){return"%s"},u.prototype.commaEveryDay=function(){return", tous les jours"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", tous les %s jours de la semaine"},u.prototype.commaX0ThroughX1=function(){return", de %s à %s"},u.prototype.commaAndX0ThroughX1=function(){return", et de %s à %s"},u.prototype.first=function(){return"premier"},u.prototype.second=function(){return"second"},u.prototype.third=function(){return"troisième"},u.prototype.fourth=function(){return"quatrième"},u.prototype.fifth=function(){return"cinquième"},u.prototype.commaOnThe=function(){return", le "},u.prototype.spaceX0OfTheMonth=function(){return" %s du mois"},u.prototype.lastDay=function(){return"le dernier jour"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", le dernier %s du mois"},u.prototype.commaOnlyOnX0=function(){return", uniquement le %s"},u.prototype.commaAndOnX0=function(){return", et %s"},u.prototype.commaEveryX0Months=function(){return", tous les %s mois"},u.prototype.commaOnlyInX0=function(){return", uniquement en %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", le dernier jour du mois"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", le dernier jour ouvrable du mois"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s jours avant le dernier jour du mois"},u.prototype.firstWeekday=function(){return"premier jour ouvrable"},u.prototype.weekdayNearestDayX0=function(){return"jour ouvrable le plus proche du %s"},u.prototype.commaOnTheX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryX0Days=function(){return", tous les %s jours"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", du %s au %s du mois"},u.prototype.commaOnDayX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryHour=function(){return", chaque heure"},u.prototype.commaEveryX0Years=function(){return", tous les %s ans"},u.prototype.commaDaysX0ThroughX1=function(){return", du %s au %s"},u.prototype.commaStartingX0=function(){return", à partir de %s"},u.prototype.daysOfTheWeek=function(){return["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},u.prototype.monthsOfTheYear=function(){return["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},u}();return l.fr=N,c().locales.fr=new N,n})())})(xEe);var _Ee={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.es=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocurrió un error mientras se generaba la descripción de la expresión. Revise la sintaxis de la expresión de cron."},u.prototype.at=function(){return"A las"},u.prototype.atSpace=function(){return"A las "},u.prototype.atX0=function(){return"a las %s"},u.prototype.atX0MinutesPastTheHour=function(){return"a los %s minutos de la hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"a los %s segundos del minuto"},u.prototype.betweenX0AndX1=function(){return"entre las %s y las %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre los días %s y %s del mes"},u.prototype.commaEveryDay=function(){return", cada día"},u.prototype.commaEveryX0Days=function(){return", cada %s días"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s días de la semana"},u.prototype.commaEveryX0Months=function(){return", cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", el día %s del mes"},u.prototype.commaOnlyInX0=function(){return", sólo en %s"},u.prototype.commaOnlyOnX0=function(){return", sólo el %s"},u.prototype.commaAndOnX0=function(){return", y el %s"},u.prototype.commaOnThe=function(){return", en el "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", en el último día del mes"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en el último día de la semana del mes"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s días antes del último día del mes"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", en el último %s del mes"},u.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", y de %s a %s"},u.prototype.everyHour=function(){return"cada hora"},u.prototype.everyMinute=function(){return"cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minuto entre las %s y las %s"},u.prototype.everySecond=function(){return"cada segundo"},u.prototype.everyX0Hours=function(){return"cada %s horas"},u.prototype.everyX0Minutes=function(){return"cada %s minutos"},u.prototype.everyX0Seconds=function(){return"cada %s segundos"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primero"},u.prototype.firstWeekday=function(){return"primer día de la semana"},u.prototype.fourth=function(){return"cuarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minuto %s al %s pasada la hora"},u.prototype.second=function(){return"segundo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En los segundos %s al %s de cada minuto"},u.prototype.spaceAnd=function(){return" y"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},u.prototype.lastDay=function(){return"el último día"},u.prototype.third=function(){return"tercer"},u.prototype.weekdayNearestDayX0=function(){return"día de la semana más próximo al %s"},u.prototype.commaEveryX0Years=function(){return", cada %s años"},u.prototype.commaStartingX0=function(){return", comenzando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},u.prototype.monthsOfTheYear=function(){return["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},u}();return l.es=N,c().locales.es=new N,n})())})(_Ee);var SEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.de=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"jede Minute"},u.prototype.everyHour=function(){return"jede Stunde"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Beim Generieren der Ausdrucksbeschreibung ist ein Fehler aufgetreten. Überprüfen Sie die Syntax des Cron-Ausdrucks."},u.prototype.atSpace=function(){return"Um "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Jede Minute zwischen %s und %s"},u.prototype.at=function(){return"Um"},u.prototype.spaceAnd=function(){return" und"},u.prototype.everySecond=function(){return"Jede Sekunde"},u.prototype.everyX0Seconds=function(){return"alle %s Sekunden"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"Sekunden %s bis %s"},u.prototype.atX0SecondsPastTheMinute=function(){return"bei Sekunde %s"},u.prototype.everyX0Minutes=function(){return"alle %s Minuten"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"Minuten %s bis %s"},u.prototype.atX0MinutesPastTheHour=function(){return"bei Minute %s"},u.prototype.everyX0Hours=function(){return"alle %s Stunden"},u.prototype.betweenX0AndX1=function(){return"zwischen %s und %s"},u.prototype.atX0=function(){return"um %s"},u.prototype.commaEveryDay=function(){return", jeden Tag"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", alle %s Tage der Woche"},u.prototype.commaX0ThroughX1=function(){return", %s bis %s"},u.prototype.commaAndX0ThroughX1=function(){return", und %s bis %s"},u.prototype.first=function(){return"ersten"},u.prototype.second=function(){return"zweiten"},u.prototype.third=function(){return"dritten"},u.prototype.fourth=function(){return"vierten"},u.prototype.fifth=function(){return"fünften"},u.prototype.commaOnThe=function(){return", am "},u.prototype.spaceX0OfTheMonth=function(){return" %s des Monats"},u.prototype.lastDay=function(){return"der letzte Tag"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", am letzten %s des Monats"},u.prototype.commaOnlyOnX0=function(){return", nur jeden %s"},u.prototype.commaAndOnX0=function(){return", und jeden %s"},u.prototype.commaEveryX0Months=function(){return", alle %s Monate"},u.prototype.commaOnlyInX0=function(){return", nur im %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", am letzten Tag des Monats"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", am letzten Werktag des Monats"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s tage vor dem letzten Tag des Monats"},u.prototype.firstWeekday=function(){return"ersten Werktag"},u.prototype.weekdayNearestDayX0=function(){return"Werktag am nächsten zum %s Tag"},u.prototype.commaOnTheX0OfTheMonth=function(){return", am %s des Monats"},u.prototype.commaEveryX0Days=function(){return", alle %s Tage"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", zwischen Tag %s und %s des Monats"},u.prototype.commaOnDayX0OfTheMonth=function(){return", an Tag %s des Monats"},u.prototype.commaEveryX0Years=function(){return", alle %s Jahre"},u.prototype.commaStartingX0=function(){return", beginnend %s"},u.prototype.daysOfTheWeek=function(){return["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},u.prototype.monthsOfTheYear=function(){return["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},u}();return l.de=N,c().locales.de=new N,n})())})(SEe);var kEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.it=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"È verificato un errore durante la generazione la descrizione espressione. Controllare la sintassi delle espressioni cron."},u.prototype.at=function(){return"Alle"},u.prototype.atSpace=function(){return"Alle "},u.prototype.atX0=function(){return"alle %s"},u.prototype.atX0MinutesPastTheHour=function(){return"al %s minuto passata l'ora"},u.prototype.atX0SecondsPastTheMinute=function(){return"al %s secondo passato il minuto"},u.prototype.betweenX0AndX1=function(){return"tra le %s e le %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tra il giorno %s e %s del mese"},u.prototype.commaEveryDay=function(){return", ogni giorno"},u.prototype.commaEveryX0Days=function(){return", ogni %s giorni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", ogni %s giorni della settimana"},u.prototype.commaEveryX0Months=function(){return", ogni %s mesi"},u.prototype.commaEveryX0Years=function(){return", ogni %s anni"},u.prototype.commaOnDayX0OfTheMonth=function(){return", il giorno %s del mese"},u.prototype.commaOnlyInX0=function(){return", solo in %s"},u.prototype.commaOnlyOnX0=function(){return", solo il %s"},u.prototype.commaAndOnX0=function(){return", e il %s"},u.prototype.commaOnThe=function(){return", il "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", l'ultimo giorno del mese"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", nell'ultima settimana del mese"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s giorni prima dell'ultimo giorno del mese"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", l'ultimo %s del mese"},u.prototype.commaOnTheX0OfTheMonth=function(){return", il %s del mese"},u.prototype.commaX0ThroughX1=function(){return", %s al %s"},u.prototype.commaAndX0ThroughX1=function(){return", e %s al %s"},u.prototype.everyHour=function(){return"ogni ora"},u.prototype.everyMinute=function(){return"ogni minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Ogni minuto tra le %s e le %s"},u.prototype.everySecond=function(){return"ogni secondo"},u.prototype.everyX0Hours=function(){return"ogni %s ore"},u.prototype.everyX0Minutes=function(){return"ogni %s minuti"},u.prototype.everyX0Seconds=function(){return"ogni %s secondi"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primo"},u.prototype.firstWeekday=function(){return"primo giorno della settimana"},u.prototype.fourth=function(){return"quarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuti %s al %s dopo l'ora"},u.prototype.second=function(){return"secondo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"secondi %s al %s oltre il minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mese"},u.prototype.lastDay=function(){return"l'ultimo giorno"},u.prototype.third=function(){return"terzo"},u.prototype.weekdayNearestDayX0=function(){return"giorno della settimana più vicino al %s"},u.prototype.commaStartingX0=function(){return", a partire %s"},u.prototype.daysOfTheWeek=function(){return["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},u.prototype.monthsOfTheYear=function(){return["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},u}();return l.it=N,c().locales.it=new N,n})())})(kEe);var YEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:g=>{g.exports=t}},r={};function o(g){var y=r[g];if(y!==void 0)return y.exports;var T=r[g]={exports:{}};return i[g](T,T.exports,o),T.exports}o.n=g=>{var y=g&&g.__esModule?()=>g.default:()=>g;return o.d(y,{a:y}),y},o.d=(g,y)=>{for(var T in y)o.o(y,T)&&!o.o(g,T)&&Object.defineProperty(g,T,{enumerable:!0,get:y[T]})},o.o=(g,y)=>Object.prototype.hasOwnProperty.call(g,y),o.r=g=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.ru=void 0;var N=function(g,y){var T=Number(g);return T!==void 0?y[T%100>4&&T%100<20?2:[2,0,1,1,1,2][T%10<5?Math.abs(T)%10:5]]:y[2]},u=function(g,y){var T=Number(g);return T!==void 0?y[T===0?0:T===1||T===2||T===4?1:2]:y[1]},L=function(){function g(){}return g.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},g.prototype.atX0MinutesPastTheHourGt20=function(){return null},g.prototype.commaMonthX0ThroughMonthX1=function(){return null},g.prototype.commaYearX0ThroughYearX1=function(){return null},g.prototype.use24HourTimeFormatByDefault=function(){return!0},g.prototype.everyMinute=function(){return"каждую минуту"},g.prototype.everyHour=function(){return"каждый час"},g.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Произошла ошибка во время генерации описания выражения. Проверьте синтаксис крон-выражения."},g.prototype.atSpace=function(){return"В "},g.prototype.everyMinuteBetweenX0AndX1=function(){return"Каждую минуту с %s по %s"},g.prototype.at=function(){return"В"},g.prototype.spaceAnd=function(){return" и"},g.prototype.everySecond=function(){return"каждую секунду"},g.prototype.everyX0Seconds=function(y){return N(y,["каждую %s секунду","каждые %s секунды","каждые %s секунд"])},g.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды с %s по %s"},g.prototype.atX0SecondsPastTheMinute=function(y){return N(y,["в %s секунду","в %s секунды","в %s секунд"])},g.prototype.everyX0Minutes=function(y){return N(y,["каждую %s минуту","каждые %s минуты","каждые %s минут"])},g.prototype.minutesX0ThroughX1PastTheHour=function(){return"минуты с %s по %s"},g.prototype.atX0MinutesPastTheHour=function(y){return N(y,["в %s минуту","в %s минуты","в %s минут"])},g.prototype.everyX0Hours=function(y){return N(y,["каждый %s час","каждые %s часа","каждые %s часов"])},g.prototype.betweenX0AndX1=function(){return"с %s по %s"},g.prototype.atX0=function(){return"в %s"},g.prototype.commaEveryDay=function(){return", каждый день"},g.prototype.commaEveryX0DaysOfTheWeek=function(y){return N(y,["",", каждые %s дня недели",", каждые %s дней недели"])},g.prototype.commaX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?", со %s по %s":", с %s по %s"},g.prototype.commaAndX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?" и со %s по %s":" и с %s по %s"},g.prototype.first=function(y){return u(y,["первое","первый","первую"])},g.prototype.second=function(y){return u(y,["второе","второй","вторую"])},g.prototype.third=function(y){return u(y,["третье","третий","третью"])},g.prototype.fourth=function(y){return u(y,["четвертое","четвертый","четвертую"])},g.prototype.fifth=function(y){return u(y,["пятое","пятый","пятую"])},g.prototype.commaOnThe=function(y){return y==="2"?", во ":", в "},g.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},g.prototype.lastDay=function(){return"последний день"},g.prototype.commaOnTheLastX0OfTheMonth=function(y){return u(y,[", в последнее %s месяца",", в последний %s месяца",", в последнюю %s месяца"])},g.prototype.commaOnlyOnX0=function(y){return y&&y[0]==="2"?", только во %s":", только в %s"},g.prototype.commaAndOnX0=function(){return", и %s"},g.prototype.commaEveryX0Months=function(y){return N(y,[""," каждые %s месяца"," каждые %s месяцев"])},g.prototype.commaOnlyInMonthX0=function(){return", только %s"},g.prototype.commaOnlyInX0=function(){return", только в %s"},g.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последний день месяца"},g.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последний будний день месяца"},g.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(y){return N(y,[", за %s день до конца месяца",", за %s дня до конца месяца",", за %s дней до конца месяца"])},g.prototype.firstWeekday=function(){return"первый будний день"},g.prototype.weekdayNearestDayX0=function(){return"ближайший будний день к %s числу"},g.prototype.commaOnTheX0OfTheMonth=function(){return", в %s месяца"},g.prototype.commaEveryX0Days=function(y){return N(y,[", каждый %s день",", каждые %s дня",", каждые %s дней"])},g.prototype.commaBetweenDayX0AndX1OfTheMonth=function(y){return y&&y.substring(0,y.indexOf("-"))=="2"?", со %s по %s число месяца":", с %s по %s число месяца"},g.prototype.commaOnDayX0OfTheMonth=function(y){return y&&y[0]=="2"?", во %s число месяца":", в %s число месяца"},g.prototype.commaEveryX0Years=function(y){return N(y,[", каждый %s год",", каждые %s года",", каждые %s лет"])},g.prototype.commaStartingX0=function(){return", начало %s"},g.prototype.daysOfTheWeek=function(){return["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},g.prototype.daysOfTheWeekInCase=function(y){return y===void 0&&(y=2),y==1?["воскресенья","понедельника","вторника","среды","четверга","пятницы","субботы"]:["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"]},g.prototype.monthsOfTheYear=function(){return["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},g.prototype.monthsOfTheYearInCase=function(y){return y==1?["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]:this.monthsOfTheYear()},g}();return l.ru=L,c().locales.ru=new L,n})())})(YEe);var vEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.zh_CN=void 0;var N=function(){function u(){}return u.prototype.setPeriodBeforeTime=function(){return!0},u.prototype.pm=function(){return"下午"},u.prototype.am=function(){return"上午"},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return", 从%s年至%s年"},u.prototype.use24HourTimeFormatByDefault=function(){return!1},u.prototype.everyMinute=function(){return"每分钟"},u.prototype.everyHour=function(){return"每小时"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"生成表达式描述时发生了错误,请检查cron表达式语法。"},u.prototype.atSpace=function(){return"在"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 至 %s 之间的每分钟"},u.prototype.at=function(){return"在"},u.prototype.spaceAnd=function(){return" 和"},u.prototype.everySecond=function(){return"每秒"},u.prototype.everyX0Seconds=function(){return"每隔 %s 秒"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分钟后的第 %s 到 %s 秒"},u.prototype.atX0SecondsPastTheMinute=function(){return"在一分钟后的第 %s 秒"},u.prototype.everyX0Minutes=function(){return"每隔 %s 分钟"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整点后的第 %s 到 %s 分钟"},u.prototype.atX0MinutesPastTheHour=function(){return"在整点后的第 %s 分钟"},u.prototype.everyX0Hours=function(){return"每隔 %s 小时"},u.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之间"},u.prototype.atX0=function(){return"在%s"},u.prototype.commaEveryDay=function(){return", 每天"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每周的每 %s 天"},u.prototype.commaX0ThroughX1=function(){return", %s至%s"},u.prototype.commaAndX0ThroughX1=function(){return", 和%s至%s"},u.prototype.first=function(){return"第一个"},u.prototype.second=function(){return"第二个"},u.prototype.third=function(){return"第三个"},u.prototype.fourth=function(){return"第四个"},u.prototype.fifth=function(){return"第五个"},u.prototype.commaOnThe=function(){return", 限每月的"},u.prototype.spaceX0OfTheMonth=function(){return"%s"},u.prototype.lastDay=function(){return"本月最后一天"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", 限每月的最后一个%s"},u.prototype.commaOnlyOnX0=function(){return", 仅%s"},u.prototype.commaAndOnX0=function(){return", 或者为%s"},u.prototype.commaEveryX0Months=function(){return", 每隔 %s 个月"},u.prototype.commaOnlyInX0=function(){return", 仅限%s"},u.prototype.commaOnlyInMonthX0=function(){return", 仅于%s份"},u.prototype.commaOnlyInYearX0=function(){return", 仅于 %s 年"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", 限每月的最后一天"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 限每月的最后一个工作日"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 限每月最后%s天"},u.prototype.firstWeekday=function(){return"第一个工作日"},u.prototype.weekdayNearestDayX0=function(){return"最接近 %s 号的工作日"},u.prototype.commaOnTheX0OfTheMonth=function(){return", 限每月的%s"},u.prototype.commaEveryX0Days=function(){return", 每隔 %s 天"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 限每月的 %s 至 %s 之间"},u.prototype.commaOnDayX0OfTheMonth=function(){return", 限每月%s"},u.prototype.commaEveryX0Years=function(){return", 每隔 %s 年"},u.prototype.commaStartingX0=function(){return", %s开始"},u.prototype.dayX0=function(){return" %s 号"},u.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},u.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},u}();return l.zh_CN=N,c().locales.zh_CN=new N,n})())})(vEe);var bEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.uk=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"щохвилини"},u.prototype.everyHour=function(){return"щогодини"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"ВІдбулася помилка підчас генерації опису. Перевірта правильність написання cron виразу."},u.prototype.atSpace=function(){return"О "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Щохвилини між %s та %s"},u.prototype.at=function(){return"О"},u.prototype.spaceAnd=function(){return" та"},u.prototype.everySecond=function(){return"Щосекунди"},u.prototype.everyX0Seconds=function(){return"кожні %s секунд"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"з %s по %s секунду"},u.prototype.atX0SecondsPastTheMinute=function(){return"о %s секунді"},u.prototype.everyX0Minutes=function(){return"кожні %s хвилин"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"з %s по %s хвилину"},u.prototype.atX0MinutesPastTheHour=function(){return"о %s хвилині"},u.prototype.everyX0Hours=function(){return"кожні %s годин"},u.prototype.betweenX0AndX1=function(){return"між %s та %s"},u.prototype.atX0=function(){return"о %s"},u.prototype.commaEveryDay=function(){return", щоденно"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожен %s день тижня"},u.prototype.commaX0ThroughX1=function(){return", %s по %s"},u.prototype.commaAndX0ThroughX1=function(){return", та %s по %s"},u.prototype.first=function(){return"перший"},u.prototype.second=function(){return"другий"},u.prototype.third=function(){return"третій"},u.prototype.fourth=function(){return"четвертий"},u.prototype.fifth=function(){return"п'ятий"},u.prototype.commaOnThe=function(){return", в "},u.prototype.spaceX0OfTheMonth=function(){return" %s місяця"},u.prototype.lastDay=function(){return"останній день"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", в останній %s місяця"},u.prototype.commaOnlyOnX0=function(){return", тільки в %s"},u.prototype.commaAndOnX0=function(){return", і в %s"},u.prototype.commaEveryX0Months=function(){return", кожен %s місяць"},u.prototype.commaOnlyInX0=function(){return", тільки в %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", в останній день місяця"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в останній будень місяця"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s днів до останнього дня місяця"},u.prototype.firstWeekday=function(){return"перший будень"},u.prototype.weekdayNearestDayX0=function(){return"будень найближчий до %s дня"},u.prototype.commaOnTheX0OfTheMonth=function(){return", в %s місяця"},u.prototype.commaEveryX0Days=function(){return", кожен %s день"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", між %s та %s днями місяця"},u.prototype.commaOnDayX0OfTheMonth=function(){return", на %s день місяця"},u.prototype.commaEveryX0Years=function(){return", кожні %s роки"},u.prototype.commaStartingX0=function(){return", початок %s"},u.prototype.daysOfTheWeek=function(){return["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"]},u.prototype.monthsOfTheYear=function(){return["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},u}();return l.uk=N,c().locales.uk=new N,n})())})(bEe);var QEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pt_BR=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},u.prototype.at=function(){return"às"},u.prototype.atSpace=function(){return"às "},u.prototype.atX0=function(){return"Às %s"},u.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},u.prototype.betweenX0AndX1=function(){return"entre %s e %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},u.prototype.commaEveryDay=function(){return", a cada dia"},u.prototype.commaEveryX0Days=function(){return", a cada %s dias"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},u.prototype.commaEveryX0Months=function(){return", a cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},u.prototype.commaOnlyInX0=function(L){return L&&L.length>1&&L[1]==="-"?"somente %s":", somente em %s"},u.prototype.commaOnlyOnX0=function(L){return L&&L.length>1&&L[1]==="-"?", somente %s":", somente de %s"},u.prototype.commaAndOnX0=function(){return", e de %s"},u.prototype.commaOnThe=function(L,g){return g==="6"||g==="0"?", no":", na "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},u.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},u.prototype.everyHour=function(){return"a cada hora"},u.prototype.everyMinute=function(){return"a cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},u.prototype.everySecond=function(){return"a cada segundo"},u.prototype.everyX0Hours=function(){return"a cada %s horas"},u.prototype.everyX0Minutes=function(){return"a cada %s minutos"},u.prototype.everyX0Seconds=function(){return"a cada %s segundos"},u.prototype.fifth=function(L){return L==="6"||L==="0"?"quinto":"quinta"},u.prototype.first=function(L){return L==="6"||L==="0"?"primeiro":"primeira"},u.prototype.firstWeekday=function(){return"primeiro dia da semana"},u.prototype.fourth=function(L){return L==="6"||L==="0"?"quarto":"quarta"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},u.prototype.second=function(L){return L==="6"||L==="0"?"segundo":"segunda"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},u.prototype.lastDay=function(){return"o último dia"},u.prototype.third=function(L){return L==="6"||L==="0"?"terceiro":"terceira"},u.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},u.prototype.commaEveryX0Years=function(){return", a cada %s anos"},u.prototype.commaStartingX0=function(){return", iniciando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},u.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},u}();return l.pt_BR=N,c().locales.pt_BR=new N,n})())})(QEe);var UEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pl=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Wystąpił błąd podczas generowania opisu wyrażenia cron. Sprawdź składnię wyrażenia cron."},u.prototype.at=function(){return"O"},u.prototype.atSpace=function(){return"O "},u.prototype.atX0=function(){return"o %s"},u.prototype.atX0MinutesPastTheHour=function(){return"w %s minucie"},u.prototype.atX0SecondsPastTheMinute=function(){return"w %s sekundzie"},u.prototype.betweenX0AndX1=function(){return"od %s do %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s-ego do %s-ego dnia miesiąca"},u.prototype.commaEveryDay=function(){return", co dzień"},u.prototype.commaEveryX0Days=function(){return", co %s dni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", co %s dni tygodnia"},u.prototype.commaEveryX0Months=function(){return", co %s miesięcy"},u.prototype.commaEveryX0Years=function(){return", co %s lat"},u.prototype.commaOnDayX0OfTheMonth=function(){return", %s-ego dnia miesiąca"},u.prototype.commaOnlyInX0=function(){return", tylko %s"},u.prototype.commaOnlyOnX0=function(){return", tylko %s"},u.prototype.commaAndOnX0=function(){return", i %s"},u.prototype.commaOnThe=function(){return", "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", ostatni dzień miesiąca"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ostatni dzień roboczy miesiąca"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni przed ostatnim dniem miesiąca"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", ostatni %s miesiąca"},u.prototype.commaOnTheX0OfTheMonth=function(){return", %s miesiąca"},u.prototype.commaX0ThroughX1=function(){return", od %s do %s"},u.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},u.prototype.everyHour=function(){return"co godzinę"},u.prototype.everyMinute=function(){return"co minutę"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Co minutę od %s do %s"},u.prototype.everySecond=function(){return"co sekundę"},u.prototype.everyX0Hours=function(){return"co %s godzin"},u.prototype.everyX0Minutes=function(){return"co %s minut"},u.prototype.everyX0Seconds=function(){return"co %s sekund"},u.prototype.fifth=function(){return"piąty"},u.prototype.first=function(){return"pierwszy"},u.prototype.firstWeekday=function(){return"pierwszy dzień roboczy"},u.prototype.fourth=function(){return"czwarty"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},u.prototype.second=function(){return"drugi"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},u.prototype.spaceAnd=function(){return" i"},u.prototype.spaceX0OfTheMonth=function(){return" %s miesiąca"},u.prototype.lastDay=function(){return"ostatni dzień"},u.prototype.third=function(){return"trzeci"},u.prototype.weekdayNearestDayX0=function(){return"dzień roboczy najbliższy %s-ego dnia"},u.prototype.commaStartingX0=function(){return", startowy %s"},u.prototype.daysOfTheWeek=function(){return["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},u.prototype.monthsOfTheYear=function(){return["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},u}();return l.pl=N,c().locales.pl=new N,n})())})(UEe);function D4(s,e){return fEe.toString(s,{locale:e})}const xe={mainDiv:{width:"100%",height:"100%"},periodSelect:{display:"block",width:250},tabContent:{padding:20,height:"calc(100% - 240px)",overflow:"auto"},numberButton:{padding:4,minWidth:40,margin:5},appBar:{color:"white"},warning:{marginLeft:16,color:"red",fontSize:12}},$Ee=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],PEe=["January","February","March","April","May","June","July","August","September","October","November","December"];function Tl(s,e){const t=[];if(s==="*"){if(e===24||e===60||e===7)for(let r=0;r1){const n=parseInt(o[1],10);for(let a=parseInt(o[0],10);a<=n;a++)t.push(a)}else t.push(parseInt(i[r],10))}t.sort();for(let r=t.length-1;r>=0;r--)t[r]===t[r+1]&&t.splice(r+1,1);return t}function Dl(s,e){if(typeof s!="object"&&(s=[s]),s.length===e)return"*";const t=[];if(!s.length)return"-";s=s.map(o=>parseInt(o,10)),s.sort((o,n)=>o-n);let i=s[0],r=s[0];for(let o=1;othis.props.onChange&&this.props.onChange(this.state.cron),100)}static cron2state(e){e=e.replace(/['"]/g,"").trim();const t=e.split(" ").map(r=>r.trim());let i;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",dates:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:!1,minutes:t[0]||"*",hours:t[1]||"*",dates:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i}static state2cron(e){let t=`${e.minutes} ${e.hours} ${e.dates} ${e.months} ${e.dow}`;return e.seconds!==!1&&(t=`${e.seconds} ${t}`),t}recalcCron(){const e=kt.state2cron(this.state);e!==this.state.cron&&this.setState({cron:e},()=>this.props.onChange&&this.props.onChange(this.state.cron))}onToggle(e,t,i){if(e===!0)this.setCronAttr(t,"*");else if(e===!1)i===60||i===24?this.setCronAttr(t,"0"):this.setCronAttr(t,"1");else{const r=Tl(this.state[t],i),o=r.indexOf(e);o!==-1?r.splice(o,1):(r.push(e),r.sort()),this.setCronAttr(t,Dl(r,i))}}getDigitsSelector(e,t){let i=[];if(t===7)i=[1,2,3,4,5,6,0];else if(t===60||t===24)for(let o=0;othis.onToggle(!1,e,t)},d.t("ra_Deselect all")),M.createElement(j.Button,{key:"addall",variant:"contained",style:xe.numberButton,color:"secondary",onClick:()=>this.onToggle(!0,e,t)},d.t("ra_Select all")),M.createElement("div",{key:"all"},i.map(o=>[t===7&&o===4||t===12&&o===7||t===31&&!((o-1)%10)||t===60&&o&&!(o%10)||t===24&&o&&!(o%6)?M.createElement("div",{key:`allInner${o}`,style:{width:"100%"}}):null,M.createElement(j.Button,{key:`_${o}`,variant:r.indexOf(o)!==-1?"contained":"outlined",style:xe.numberButton,color:r.indexOf(o)!==-1?"secondary":"primary",onClick:()=>this.onToggle(o,e,t)},t===7?d.t($Ee[o]):t===12?PEe[o-1]:o)]))]}getPeriodsTab(e,t){const i=this.state[e];let r=i==="*",o=i==null?!1:i.toString().includes("/"),n;if(this.state.modes[e]===null){n=r?"every":o?"everyN":"specific";const c=JSON.parse(JSON.stringify(this.state.modes));return c[e]=n,setTimeout(()=>this.setState({modes:c},()=>this.recalcCron()),100),null}r=this.state.modes[e]==="every",o=this.state.modes[e]==="everyN",n=this.state.modes[e];let a=1;return o&&i&&(a=parseInt(i.replace("*/",""),10)||1),M.createElement("div",null,M.createElement(j.Select,{variant:"standard",style:{...xe.periodSelect,verticalAlign:"bottom"},value:n,onChange:c=>{const l=JSON.parse(JSON.stringify(this.state.modes));if(l[e]=c.target.value,c.target.value==="every")this.setCronAttr(e,"*",l);else if(c.target.value==="everyN"){const N=parseInt((this.state[e]||"").toString().replace("*/",""),10)||1;this.setCronAttr(e,`*/${N}`,l)}else if(c.target.value==="specific"){let N=parseInt((this.state[e]||"").toString().split(",")[0],10)||0;!N&&(e==="months"||e==="dates")&&(N=1),this.setCronAttr(e,Dl(N,t),l)}}},M.createElement(j.MenuItem,{key:"every",value:"every"},d.t(`sc_every_${e}`)),M.createElement(j.MenuItem,{key:"everyN",value:"everyN"},d.t(`sc_everyN_${e}`)),M.createElement(j.MenuItem,{key:"specific",value:"specific"},d.t(`sc_specific_${e}`))),o&&M.createElement(j.TextField,{variant:"standard",key:"interval",label:d.t(`sc_${e}`),value:a,slotProps:{htmlInput:{min:1,max:t},inputLabel:{shrink:!0}},onChange:c=>{this.setState({[e]:`*/${c.target.value}`},()=>this.recalcCron())},type:"number",margin:"normal"}),!r&&!o&&this.getDigitsSelector(e,t))}static convertCronToText(e,t){return e.split(" ").includes("-")?d.t("ra_Invalid CRON"):D4(e,t)}setCronAttr(e,t,i){i?e==="seconds"?this.setState({seconds:t,modes:i},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t,modes:i},()=>this.recalcCron()):e==="hours"?this.setState({hours:t,modes:i},()=>this.recalcCron()):e==="dates"?this.setState({dates:t,modes:i},()=>this.recalcCron()):e==="months"?this.setState({months:t,modes:i},()=>this.recalcCron()):e==="dow"?this.setState({dow:t,modes:i},()=>this.recalcCron()):this.setState({modes:i},()=>this.recalcCron()):e==="seconds"?this.setState({seconds:t},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t},()=>this.recalcCron()):e==="hours"?this.setState({hours:t},()=>this.recalcCron()):e==="dates"?this.setState({dates:t},()=>this.recalcCron()):e==="months"?this.setState({months:t},()=>this.recalcCron()):e==="dow"&&this.setState({dow:t},()=>this.recalcCron())}render(){const e=this.state.seconds!==!1?this.state.tab:this.state.tab+1,t=this.state.minutes==="*"||this.state.minutes==="*/1",i=this.state.seconds==="*"||this.state.seconds==="*/1";return M.createElement("div",{style:xe.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)",height:60}},kt.convertCronToText(this.state.cron,this.props.language||"en"),M.createElement("span",{style:xe.warning},i?d.t("ra_warning_every_second"):t?d.t("ra_warning_every_minute"):"")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:!!this.state.seconds,onChange:r=>this.setState({seconds:r.target.checked?"*":!1},()=>this.recalcCron())}),label:d.t("ra_use seconds")}),M.createElement(j.AppBar,{position:"static",sx:{"&.MuiAppBar-root":xe.appBar},color:"secondary"},M.createElement(j.Tabs,{value:this.state.tab,style:xe.appBar,color:"secondary",onChange:(r,o)=>this.setState({tab:o})},this.state.seconds!==!1&&M.createElement(j.Tab,{id:"sc_seconds",label:d.t("sc_seconds")}),M.createElement(j.Tab,{id:"minutes",label:d.t("sc_minutes")}),M.createElement(j.Tab,{id:"hours",label:d.t("sc_hours")}),M.createElement(j.Tab,{id:"dates",label:d.t("sc_dates")}),M.createElement(j.Tab,{id:"months",label:d.t("sc_months")}),M.createElement(j.Tab,{id:"dow",label:d.t("sc_dows")}))),e===0&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("seconds",60)),e===1&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("minutes",60)),e===2&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("hours",24)),e===3&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dates",31)),e===4&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("months",12)),e===5&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dow",7)))}}const gs={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:s=>({color:s.palette.primary.main})};function J3e(s){const{open:e,toggleTranslation:t,noTranslation:i,title:r,fullWidth:o,help:n,maxWidth:a,progress:c,icon:l,applyDisabled:N,applyButton:u,onClose:L,children:g,titleButtonApply:y,titleButtonClose:T,onApply:D,textInput:z,defaultValue:p,overflowHidden:C}=s,[m,I]=x.useState(p||"");x.useEffect(()=>{I(p||"")},[p]);let h=null;return l&&(h=l),M.createElement(j.Dialog,{open:e,maxWidth:a||"md",fullWidth:!!o,disableEscapeKeyDown:!1,onClose:L,sx:{"& .MuiDialog-paper":gs.modalDialog}},r&&M.createElement(j.DialogTitle,null,l?M.createElement(h,{style:gs.titleIcon}):null,r,d.getLanguage()!=="en"&&t?M.createElement(j.IconButton,{size:"large",sx:O.getStyle(s.theme,gs.languageButton,i&&gs.languageButtonActive),onClick:()=>t(),title:d.t("Disable/Enable translation")},M.createElement(ML,null)):null),M.createElement(j.DialogContent,{style:{...gs.content,...C?gs.overflowHidden:void 0,paddingTop:8}},z&&M.createElement(j.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:m,onChange:A=>I(A.target.value)}),g,n?M.createElement("div",null,n):null),M.createElement(j.DialogActions,null,u!==!1&&M.createElement(j.Button,{startIcon:M.createElement(Oe,null),disabled:c||N&&p===m,onClick:()=>D(z?m:""),variant:"contained",color:"primary"},d.t(y||"ra_Ok")),M.createElement(j.Button,{color:"grey",onClick:L,disabled:c,variant:"contained",startIcon:M.createElement(Ne,null)},d.t(T||"ra_Cancel"))))}function WEe(){const s=PL();return[...s.breakpoints.keys].reverse().reduce((t,i)=>{const r=j.useMediaQuery(s.breakpoints.up(i));return!t&&r?i:t},null)||"xs"}function Io(){return s=>function(t){const i=WEe();return M.createElement(s,{...t,width:i})}}function BEe(s){const[e,t]=M.useState(s.input||s.value||""),[i,r]=M.useState("");return M.createElement(j.Dialog,{open:!0,onClose:()=>s.onClose(null),"aria-labelledby":"form-dialog-title",fullWidth:s.fullWidth!==void 0?s.fullWidth:!1},M.createElement(j.DialogTitle,{id:"form-dialog-title"},s.titleText),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,s.promptText),M.createElement(j.TextField,{variant:"standard",autoFocus:!0,margin:"dense",error:!!i,helperText:i===!0||!i?"":i,value:e,label:s.labelText||"",type:s.type||"text",onKeyUp:o=>o.code==="Enter"&&e&&s.onClose(e),onChange:o=>{let n="";s.verify&&(n=!s.verify(o.target.value)),s.rule?t(s.rule(o.target.value)):t(o.target.value),r(n)},fullWidth:!0})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!e||!!i,onClick:()=>s.onClose(e),color:"primary",startIcon:M.createElement(Oe,null)},s.applyText||d.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>s.onClose(null),startIcon:M.createElement(Ne,null)},s.cancelText||d.t("ra_Cancel"))))}const JEe=Io()(BEe);function $n(s){return M.createElement("svg",{onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 486 486",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),xmlns:"http://www.w3.org/2000/svg",className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m414.928297,149.715165 c-2.639376,-57.222555 -35.669446,-106.505345 -83.345894,-132.039151 c-3.758948,-2.049842 -7.636885,-3.932022 -11.590542,-5.641125 c-19.303146,-8.394083 -40.607459,-13.050853 -63.004303,-13.050853 c-84.113909,0 -152.791790,65.703174 -157.718988,148.605566 l0.043268,-0.010816 v0.281245 c0,3.061243 -0.146031,16.750306 -0.146031,16.750306 l-2.352723,5.224668 h15.744315 c5.916964,-19.384275 24.078904,-32.635245 45.513024,-32.635245 c26.231510,0 47.573684,21.915481 47.573684,48.146991 c0,26.226103 -21.342174,47.146409 -47.573684,47.146409 c-25.111939,0 -45.734774,-19.735831 -47.443879,-44.658471 h-18.789334 c-0.400232,0 -0.778832,0.638209 -1.162839,0.584122 l-19.762875,55.199753 c-2.774590,7.696379 2.926030,16.214860 11.103771,16.214860 h17.020735 l-0.129805,87.899899 c0,17.356066 14.073071,31.174935 31.429136,31.174935 h56.205745 v82.648189 c0,12.877778 12.937273,22.580734 25.815051,22.580734 h144.597825 c12.877778,0 23.429877,-9.702955 23.429877,-22.580734 v-166.037352 c0,-22.645636 5.976457,-44.761234 16.561008,-64.789128 c11.055093,-20.925714 17.523731,-44.620611 18.129489,-69.792045 c0.027042,-1.260193 0.037858,-2.552839 0.037858,-3.845485 c0,-2.466302 -0.070310,-4.938014 -0.183890,-7.377273 zm-155.393308,-11.731165 h-13.456494 v13.559257 c0,4.732489 -4.267352,8.567157 -8.999842,8.567157 c-4.727079,0 -8.999842,-3.834667 -8.999842,-8.567157 v-13.559257 h-12.185483 c-4.732489,0 -8.567157,-4.267352 -8.567157,-8.999842 c0,-4.727079 3.834667,-8.999842 8.567157,-8.999842 h12.185483 v-12.077311 c0,-4.732489 4.272762,-8.567157 8.999842,-8.567157 c4.732489,0 8.999842,3.834667 8.999842,8.567157 v12.077311 h13.456494 c4.727079,0 8.567157,4.272762 8.567157,8.999842 c0,4.732489 -3.840077,8.999842 -8.567157,8.999842 zm0,0"}),M.createElement("path",{fill:"currentColor",d:"m187.695312 285.875c3.9375-3.980469 6.414063-9.449219 6.414063-15.523438 0-12.128906-9.855469-21.980468-21.984375-21.980468-6.007812 0-11.472656 2.410156-15.457031 6.347656-4.023438 4.003906-6.523438 9.539062-6.523438 15.636719 0 12.125 9.855469 21.980469 21.980469 21.980469 6.078125 0 11.585938-2.476563 15.570312-6.460938zm0 0"}))}function Ws(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m524,128l-192,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,288c0,26.51 21.49,48 48,48l416,0c26.51,0 48,-21.49 48,-48l0,-224c0,-26.51 -21.49,-48 -48,-48z"}))}function fr(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m631.75617,292.093l-72.424,124.155a63.997,63.997 0 0 1 -55.281,31.752l-399.964,0c-18.523,0 -30.064,-20.093 -20.731,-36.093l72.424,-124.155a64,64 0 0 1 55.282,-31.752l399.964,0c18.523,0 30.064,20.093 20.73,36.093zm-420.694,-68.093l328,0l0,-48c0,-26.51 -21.49,-48 -48,-48l-160,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,278.046l69.077,-118.418c17.137,-29.378 48.912,-47.628 82.923,-47.628z"}))}function DM(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))}var REe=s=>typeof s!="string"?{}:s.split(/ ?; ?/).reduce((e,t)=>{const[i,r]=t.split(/ ?: ?/).map((o,n)=>n===0?o.replace(/\s+/g,""):o.trim());if(i&&r){const o=i.replace(/(\w)-(\w)/g,(a,c,l)=>`${c}${l.toUpperCase()}`);let n=r.trim();Number.isNaN(Number(r))||(n=Number(r)),e[i.startsWith("-")?i:o]=n}return e},{});function FEe(s=6){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let i=s;i>0;--i)t+=e[Math.round(Math.random()*(e.length-1))];return t}var GEe=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],dl={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function HEe(s,e){var o;const{key:t,level:i,...r}=e;switch(s.nodeType){case 1:return x.createElement(ZEe(s.nodeName),VEe(s,t),hl(s.childNodes,i,r));case 3:{const n=((o=s.nodeValue)==null?void 0:o.toString())??"";if(!r.allowWhiteSpaces&&/^\s+$/.test(n)&&!/[\u00A0\u202F]/.test(n))return null;if(!s.parentNode)return n;const a=s.parentNode.nodeName.toLowerCase();return GEe.includes(a)?(/\S/.test(n)&&console.warn(`A textNode is not allowed inside '${a}'. Your text "${n}" will be ignored`),null):n}case 8:return null;case 11:return hl(s.childNodes,i,e);default:return null}}function VEe(s,e){const t={key:e};if(s instanceof Element){const i=s.getAttribute("class");i&&(t.className=i),[...s.attributes].forEach(r=>{switch(r.name){case"class":break;case"style":t[r.name]=REe(r.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":t[dl[r.name]||r.name]=!0;break;default:t[dl[r.name]||r.name]=r.value}})}return t}function hl(s,e,t){const i=[...s].map((r,o)=>Vr(r,{...t,index:o,level:e+1})).filter(Boolean);return i.length?i:null}function ZEe(s){return/[a-z]+[A-Z]+[a-z]+/.test(s)?s:s.toLowerCase()}function d4(s,e={}){return typeof s=="string"?XEe(s,e):s instanceof Node?Vr(s,e):null}function Vr(s,e={}){if(!s||!(s instanceof Node))return null;const{actions:t=[],index:i=0,level:r=0,randomKey:o}=e;let n=s,a=`${r}-${i}`;const c=[];return o&&r===0&&(a=`${FEe()}-${a}`),Array.isArray(t)&&t.forEach(l=>{l.condition(n,a,r)&&(typeof l.pre=="function"&&(n=l.pre(n,a,r),n instanceof Node||(n=s)),typeof l.post=="function"&&c.push(l.post(n,a,r)))}),c.length?c:HEe(n,{key:a,level:r,...e})}function XEe(s,e={}){if(!s||typeof s!="string")return null;const{includeAllNodes:t=!1,nodeOnly:i=!1,selector:r="body > *",type:o="text/html"}=e;try{const a=new DOMParser().parseFromString(s,o);if(t){const{childNodes:l}=a.body;return i?l:[...l].map(N=>Vr(N,e))}const c=a.querySelector(r)||a.body.childNodes[0];if(!(c instanceof Node))throw new TypeError("Error parsing input");return i?c:Vr(c,e)}catch{}return null}var KEe=Object.defineProperty,qEe=(s,e,t)=>e in s?KEe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,yr=(s,e,t)=>qEe(s,typeof e!="symbol"?e+"":e,t),zl="react-inlinesvg",efe=10,se={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function tfe(s){return s[Math.floor(Math.random()*s.length)]}function pi(){var s;return!!(typeof window<"u"&&((s=window.document)!=null&&s.createElement))}function sfe(){return nfe()&&typeof window<"u"&&window!==null}function ife(s,...e){const t={};for(const i in s)({}).hasOwnProperty.call(s,i)&&(e.includes(i)||(t[i]=s[i]));return t}function rfe(s){const e="abcdefghijklmnopqrstuvwxyz",i=`${e}${e.toUpperCase()}1234567890`;let r="";for(let o=0;o299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(o=>r.includes(o)))throw new Error(`Content type isn't valid: ${r}`);return t.text()}function ofe(s=1){return new Promise(e=>{setTimeout(e,s*1e3)})}function nfe(){if(!document)return!1;const s=document.createElement("div");s.innerHTML="";const e=s.firstChild;return!!e&&e.namespaceURI==="http://www.w3.org/2000/svg"}var afe=class{constructor(){yr(this,"cacheApi"),yr(this,"cacheStore"),yr(this,"subscribers",[]),yr(this,"isReady",!1),this.cacheStore=new Map;let s=zl,e=!1;pi()&&(s=window.REACT_INLINESVG_CACHE_NAME??zl,e=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),e?caches.open(s).then(t=>{this.cacheApi=t}).catch(t=>{console.error(`Failed to open cache: ${t.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const t=[...this.subscribers];this.subscribers.length=0,t.forEach(i=>{try{i()}catch(r){console.error(`Error in CacheStore subscriber callback: ${r.message}`)}})}):this.isReady=!0}onReady(s){this.isReady?s():this.subscribers.push(s)}async get(s,e){var t;return await(this.cacheApi?this.fetchAndAddToPersistentCache(s,e):this.fetchAndAddToInternalCache(s,e)),((t=this.cacheStore.get(s))==null?void 0:t.content)??""}set(s,e){this.cacheStore.set(s,e)}isCached(s){var e;return((e=this.cacheStore.get(s))==null?void 0:e.status)===se.LOADED}async fetchAndAddToInternalCache(s,e){const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToInternalCache(s,e)});return}if(!(t!=null&&t.content)){this.cacheStore.set(s,{content:"",status:se.LOADING});try{const i=await h4(s,e);this.cacheStore.set(s,{content:i,status:se.LOADED})}catch(i){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),i}}}async fetchAndAddToPersistentCache(s,e){var r,o,n;const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADED)return;if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToPersistentCache(s,e)});return}this.cacheStore.set(s,{content:"",status:se.LOADING});const i=await((r=this.cacheApi)==null?void 0:r.match(s));if(i){const a=await i.text();this.cacheStore.set(s,{content:a,status:se.LOADED});return}try{await((o=this.cacheApi)==null?void 0:o.add(new Request(s,e)));const a=await((n=this.cacheApi)==null?void 0:n.match(s)),c=await(a==null?void 0:a.text())??"";this.cacheStore.set(s,{content:c,status:se.LOADED})}catch(a){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),a}}async handleLoading(s,e){var t;for(let i=0;i({[s]:e}))}async delete(s){this.cacheApi&&await this.cacheApi.delete(s),this.cacheStore.delete(s)}async clear(){if(this.cacheApi){const s=await this.cacheApi.keys();await Promise.allSettled(s.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function wl(s){const e=x.useRef(void 0);return x.useEffect(()=>{e.current=s}),e.current}function Mfe(s){const{baseURL:e,content:t,description:i,handleError:r,hash:o,preProcessor:n,title:a,uniquifyIDs:c=!1}=s;try{const l=cfe(t,n),N=d4(l,{nodeOnly:!0});if(!N||!(N instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const u=z4(N,{baseURL:e,hash:o,uniquifyIDs:c});if(i){const L=u.querySelector("desc");L!=null&&L.parentNode&&L.parentNode.removeChild(L);const g=document.createElementNS("http://www.w3.org/2000/svg","desc");g.innerHTML=i,u.prepend(g)}if(typeof a<"u"){const L=u.querySelector("title");if(L!=null&&L.parentNode&&L.parentNode.removeChild(L),a){const g=document.createElementNS("http://www.w3.org/2000/svg","title");g.innerHTML=a,u.prepend(g)}}return u}catch(l){return r(l)}}function cfe(s,e){return e?e(s):s}function z4(s,e){const{baseURL:t="",hash:i,uniquifyIDs:r}=e,o=["id","href","xlink:href","xlink:role","xlink:arcrole"],n=["href","xlink:href"],a=(c,l)=>n.includes(c)&&(l?!l.includes("#"):!1);return r&&[...s.children].forEach(c=>{var l;if((l=c.attributes)!=null&&l.length){const N=Object.values(c.attributes).map(u=>{const L=u,g=/url\((.*?)\)/.exec(u.value);return g!=null&&g[1]&&(L.value=u.value.replace(g[0],`url(${t}${g[1]}__${i})`)),L});o.forEach(u=>{const L=N.find(g=>g.name===u);L&&!a(u,L.value)&&(L.value=`${L.value}__${i}`)})}return c.children.length?z4(c,e):c}),s}var Us;function ufe(s){const{cacheRequests:e=!0,children:t=null,description:i,fetchOptions:r,innerRef:o,loader:n=null,onError:a,onLoad:c,src:l,title:N,uniqueHash:u}=s,[L,g]=x.useReducer((J,H)=>({...J,...H}),{content:"",element:null,isCached:e&&Us.isCached(s.src),status:se.IDLE}),{content:y,element:T,isCached:D,status:z}=L,p=wl(s),C=wl(L),m=x.useRef(u??rfe(8)),I=x.useRef(!1),h=x.useRef(!1),A=x.useCallback(J=>{I.current&&(g({status:J.message==="Browser does not support SVG"?se.UNSUPPORTED:se.FAILED}),a==null||a(J))},[a]),S=x.useCallback((J,H=!1)=>{I.current&&g({content:J,isCached:H,status:se.LOADED})},[]),f=x.useCallback(async()=>{const J=await h4(l,r);S(J)},[r,S,l]),P=x.useCallback(()=>{try{const J=Mfe({...s,handleError:A,hash:m.current,content:y}),H=d4(J);if(!H||!x.isValidElement(H))throw new Error("Could not convert the src to a React element");g({element:H,status:se.READY})}catch(J){A(J)}},[y,A,s]),v=x.useCallback(async()=>{const J=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(l);let H;if(J?H=J[1]?window.atob(J[2]):decodeURIComponent(J[2]):l.includes("{I.current&&g({content:"",element:null,isCached:!1,status:se.LOADING})},[]);x.useEffect(()=>{if(I.current=!0,!(!pi()||h.current)){try{if(z===se.IDLE){if(!sfe())throw new Error("Browser does not support SVG");if(!l)throw new Error("Missing src");ee()}}catch(J){A(J)}return h.current=!0,()=>{I.current=!1}}},[]),x.useEffect(()=>{if(!(!pi()||!p)&&p.src!==l){if(!l){A(new Error("Missing src"));return}ee()}},[A,ee,p,l]),x.useEffect(()=>{z===se.LOADED&&P()},[z,P]),x.useEffect(()=>{!pi()||!p||p.src!==l||(p.title!==N||p.description!==i)&&P()},[i,P,p,l,N]),x.useEffect(()=>{if(C)switch(z){case se.LOADING:{C.status!==se.LOADING&&v();break}case se.LOADED:{C.status!==se.LOADED&&P();break}case se.READY:{C.status!==se.READY&&(c==null||c(l,D));break}}},[v,P,D,c,C,l,z]);const ae=ife(s,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return pi()?T?x.cloneElement(T,{ref:o,...ae}):[se.UNSUPPORTED,se.FAILED].includes(z)?t:n:n}function Pn(s){Us||(Us=new afe);const{loader:e}=s,[t,i]=x.useState(Us.isReady);return x.useEffect(()=>{t||Us.onReady(()=>{i(!0)})},[t]),t?M.createElement(ufe,{...s}):e}function lfe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"}))}function R3e(s){let e;const t=s==null?void 0:s._id;return t?(t.startsWith("_design/")||t==="system"?e=M.createElement(kr,{className:"iconOwn"}):t==="0_userdata"||t==="0_userdata.0"?e=M.createElement(hg,{className:"iconOwn"}):t==="alias"||t==="alias.0"?e=M.createElement(lfe,{className:"iconOwn"}):t==="system.adapter"?e=M.createElement(kr,{className:"iconOwn"}):t==="system.group"?e=M.createElement(ga,{className:"iconOwn"}):t==="system.user"?e=M.createElement(Na,{className:"iconOwn"}):t==="system.host"?e=M.createElement(La,{className:"iconOwn"}):t.endsWith(".connection")||t.endsWith(".connected")?e=M.createElement(Qs,{className:"iconOwn"}):t.endsWith(".info")?e=M.createElement(la,{className:"iconOwn"}):(s==null?void 0:s.type)==="meta"&&(e=M.createElement(Kr,{className:"iconOwn"})),e||null):null}function F3e(s,e){e=e||".";let t="";const i=s==null?void 0:s.common;if(i){const r=i.icon;if(r)if(r.startsWith("data:image/"))t=r;else if(r.includes(".")){let o;s.type==="instance"||s.type==="adapter"?t=`${e}/adapter/${i.name}/${r}`:s._id&&s._id.startsWith("system.adapter.")?(o=s._id.split(".",3),r[0]==="/"?o[2]+=r:o[2]+=`/${r}`,t=`${e}/adapter/${o[2]}`):(o=s._id.split(".",2),r[0]==="/"?o[0]+=r:o[0]+=`/${r}`,t=`${e}/adapter/${o[0]}`)}else return null}return t||null}const Nfe=window.location.hostname.endsWith("iobroker.in"),Cl=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);function me(s){var e,t,i;if(s.src){if(typeof s.src=="string"){if(s.src.length<3)return s.sx?M.createElement(j.Box,{component:"span",sx:s.sx,title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src):M.createElement("span",{title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src);if(s.src.startsWith("data:image/svg"))return M.createElement(Pn,{title:s.title||void 0,src:s.src,className:O.clsx(s.className,"iconOwn"),width:((e=s.style)==null?void 0:e.width)||28,height:((t=s.style)==null?void 0:t.height)||((i=s.style)==null?void 0:i.width)||28,style:s.style||void 0});if(Nfe&&!s.src.startsWith("http://")&&!s.src.startsWith("https://")){let r=s.src;return r.startsWith("./")?r=Cl+r.substring(2):r.startsWith("/")||(r=Cl+r),s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)})}return s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError})}return s.src}return null}const Bt={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}},we={images:["png","jpg","svg","jpeg","bmp","gif","apng","avif","webp","ico"],code:["js","json","json5","md"],txt:["log","txt","html","css","xml","ics"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};function Il(s,e){let t="";const i=new Uint8Array((s==null?void 0:s.data)||s),r=i.byteLength;for(let o=0;o{let o="";r.file!==void 0&&(o=r.file);const n={copyPossible:this.state.copyPossible,ext:this.state.ext};if(o.type==="Buffer")if(i.toLowerCase().endsWith(".json5")){n.ext="json5",n.copyPossible=!0;try{o=atob(Il(o,!0))}catch{console.error("Cannot convert base64 to string"),o=""}}else{const a=O.detectMimeType(Il(o));a&&(n.ext=a,n.copyPossible=we.code.includes(a)||we.txt.includes(a))}n.copyPossible&&(n.ext&&we.txt.includes(n.ext)?(n.text=o,n.editingValue=o):n.ext&&we.code.includes(n.ext)&&(n.code=o,n.editingValue=o)),this.setState(n)}).catch(r=>window.alert(`Cannot read file: ${r}`))}}componentDidMount(){this.readFile();const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}componentWillUnmount(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}onFileChanged=(e,t,i)=>{this.state.changed||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.timeout=null,i===null?window.alert("Show file was deleted!"):this.state.text!==null||this.state.code!==null?this.readFile():this.setState({forceUpdate:Date.now()})},300))};getEditorOrViewer(){return M.createElement(j.TextField,{variant:"standard",style:Bt.textarea,multiline:!0,value:this.state.editingValue||this.state.code||this.state.text,slotProps:{htmlInput:{readOnly:!this.state.editing}}})}getContent(){return this.state.ext&&we.images.includes(this.state.ext)?this.state.imgError?M.createElement(DM,{style:{...Bt.img,...this.props.getStyleBackgroundImage()}}):M.createElement(me,{onError:e=>{e.target.onerror=null,this.setState({imgError:!0})},style:{...Bt.img,...this.props.getStyleBackgroundImage()},src:`${this.props.href}?ts=${this.state.forceUpdate}`,alt:this.props.href}):this.state.ext&&we.audio.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("audio",{style:{width:"100%"},src:this.props.href,controls:!0})):this.state.ext&&we.video.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("video",{style:{width:"100%",height:"100%"},controls:!0},M.createElement("source",{src:this.props.href,type:`video/${this.state.ext}}`}))):this.state.code!==null||this.state.text!==null||this.state.editing?this.getEditorOrViewer():null}onSave(){}render(){return M.createElement(j.Dialog,{sx:{"&.MuiDialog-scrollPaper":Bt.dialog,"& .MuiDialog-paper":Bt.paper},scroll:"paper",open:!!this.props.href,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"ar_dialog_file_view_title"},M.createElement("div",{style:Bt.dialogTitle},M.createElement(j.DialogTitle,{id:"ar_dialog_file_view_title"},`${this.props.t(this.state.editing?"Edit":"View")}: ${this.props.href}`),this.state.ext&&we.images.includes(this.state.ext)&&M.createElement("div",null,M.createElement(j.IconButton,{size:"large",color:"inherit",onClick:this.props.setStateBackgroundImage},M.createElement(ca,null)))),M.createElement(j.DialogContent,{style:Bt.content},this.getContent()),M.createElement(j.DialogActions,null,this.state.copyPossible?M.createElement(j.Button,{color:"grey",onClick:e=>{e.stopPropagation(),e.preventDefault(),O.copyToClipboard(this.state.text||this.state.code||"")},startIcon:M.createElement(sg,null)},this.props.t("Copy content")):null,this.state.editing?M.createElement(j.Button,{color:"grey",disabled:this.state.editingValue===this.state.code||this.state.editingValue===this.state.text,variant:"contained",onClick:()=>this.onSave(),startIcon:M.createElement(cn,null)},this.props.t("Save")):null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"primary",startIcon:M.createElement(Ne,null)},this.props.t("Close"))))}}const gfe=Io()(Lfe),js=32,Lt=32,Tr=120,pl=64,Al="Not found",Dr={all:LN,images:Lg,code:ua,txt:lg,audio:JL,video:mg},Y={root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - 8px)",overflowX:"hidden",overflowY:"auto",padding:8},filesDivHint:{position:"absolute",bottom:0,left:20,opacity:.7,fontStyle:"italic",fontSize:12},filesDivTable:{height:"calc(100% - 56px)"},filesDivTile:{height:`calc(100% - ${48*2+8}px)`,display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:`0 0 ${pl}px`},itemTile:s=>({position:"relative",userSelect:"none",cursor:"pointer",height:Tr,width:pl,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:"4px",borderRadius:"4px","&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:s=>({width:"100%",height:Tr-32-16-8,display:"block",pl:1,color:s.palette.secondary.main||"#fbff7d"}),itemFolderIconBack:s=>({position:"absolute",top:22,left:18,zIndex:1,color:(s.palette.mode==="dark","#FFF")}),itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:Tr-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:Tr-32-16-8,display:"block",objectFit:"contain"},itemSelected:s=>({background:s.palette.primary.main,color:O.invertColor(s.palette.primary.main,!0)}),itemTable:s=>({userSelect:"none",cursor:"pointer",height:js,display:"inline-flex",lineHeight:`${js}px`,"&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameTable:{display:"inline-block",pl:"10px",fontSize:"1rem",verticalAlign:"top",flexGrow:1,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden","@media screen and (max-width: 500px)":{textAlign:"end",direction:"rtl"}},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right",whiteSpace:"nowrap"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemNoImageTable:{marginTop:6},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:s=>({marginTop:"1px",marginLeft:"8px",display:"inline-block",width:30,height:30,color:s.palette.secondary.main||"#fbff7d"}),itemDownloadButtonTable:s=>({display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"middle",textAlign:"center",padding:0,borderRadius:`${Lt/2}px`,"&:hover":{backgroundColor:s.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"},"& span":{pt:"9px"},"& svg":{width:14,height:14,fontSize:"1rem",mt:"-3px",verticalAlign:"middle",color:s.palette.mode==="dark"?"#EEE":"#111"}}),itemDownloadEmptyTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,padding:0},itemAclButtonTable:{width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:s=>({m:"20px",border:"3px dashed grey",borderRadius:"30px",width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:s.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"}),uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",height:"30%",width:"100%",margin:"auto",opacity:.3},menuButtonExpertActive:{color:"#c00000"},menuButtonRestrictActive:{color:"#c05000"},pathDiv:s=>({display:"flex",width:"calc(100% - 16px)",ml:1,mr:1,textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap",backgroundColor:s.palette.secondary.main,color:s.palette.secondary.contrastText,borderRadius:"4px 4px 0 0"}),pathDivInput:{width:"100%"},pathDivBreadcrumbDir:s=>({pl:"2px",pr:"2px",cursor:"pointer",color:"white","&:hover":{backgroundColor:s.palette.primary.main,color:s.palette.primary.contrastText}}),pathDivBreadcrumbSelected:{color:"#FFF"},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},specialFolder:s=>({color:s.palette.mode==="dark"?"#229b0f":"#5dd300"}),tooltip:{pointerEvents:"none"}},mt="0_userdata.0";function ys(s){const e=(s||"").split("/");return e.length&&e.pop(),e.join("/")}function Vo(s){const e=O.getFileExtension(s);return!!(e!=null&&e.toLowerCase().match(/[a-z]+/)&&e.length<5)}const te="Table",Zo="Tile";function ml(s,e){return s.folder&&e.folder?s.name>e.name?1:s.namee.name?1:s.name{var l;return c.startsWith(`${this.limitToPath}/`)||c===this.limitToPath||((l=this.limitToPath)==null?void 0:l.startsWith(`${c}/`))}))}catch{i=[]}let r;this.props.showViewTypeButton?r=this.localStorage.getItem("files.viewType")||te:r=te;let o=this.props.selected||this.localStorage.getItem("files.selected")||mt,n;if(e.restrictToFolder){o=e.restrictToFolder,n=e.restrictToFolder;const c=e.restrictToFolder.split("/");i=[];let l="";for(let N=0;N{if(this.state.viewType===te&&!this.findItem(this.state.selected)){const t=this.state.selected.split("/");for(;t.length&&!this.findItem(t.join("/"));)t.pop();let i;t.length?i=t.join("/"):i=mt,this.setState({selected:i,path:i,pathFocus:!1},()=>this.scrollToSelected())}else this.scrollToSelected();this.initialReadFinished=!0})}scrollToSelected(){if(this.mounted){const e=document.getElementById(this.state.selected);e==null||e.scrollIntoView()}}async componentDidMount(){this.mounted=!0,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`)),this.supportSubscribes=await this.props.socket.checkFeatureSupported("BINARY_STATE_EVENT"),this.supportSubscribes&&await this.props.socket.subscribeFiles("*","*",this.onFileChange)}componentWillUnmount(){this.supportSubscribes&&this.props.socket.unsubscribeFiles("*","*",this.onFileChange),this.mounted=!1,this.browseList=null,this.browseListRunning=!1,Object.values(this._tempTimeout).forEach(e=>e&&clearTimeout(e)),this._tempTimeout={}}browseFoldersCb(e,t,i){if(!(e!=null&&e.length))i(t);else{const r=e.shift();r?this.browseFolder(r,t).catch(o=>console.error(`Cannot read folder ${r}: ${o.message}`)).then(()=>{setTimeout(()=>this.browseFoldersCb(e,t,i),0)}):setTimeout(()=>this.browseFoldersCb(e,t,i),0)}}browseFolders(e,t){let i;return t?i=t:(i={},Object.keys(this.state.folders).forEach(r=>i[r]=this.state.folders[r])),e!=null&&e.length?new Promise(r=>{this.browseFoldersCb(e,i,r)}):Promise.resolve(i)}readDirSerial(e,t){return new Promise((i,r)=>{this.browseList&&(this.browseList.push({resolve:i,reject:r,adapter:e,relPath:t}),this.browseListRunning||this.processBrowseList())})}processBrowseList(e=0){!this.browseListRunning&&this.browseList&&this.browseList.length&&(this.browseListRunning=!0,this.browseList.length>10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.resolve;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}).catch(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.reject;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}))}async browseFolder(e,t,i,r){let o;if(t?o=t:(o={},Object.keys(this.state.folders).forEach(u=>{o[u]=this.state.folders[u]})),o[e]&&!r)return i?Promise.resolve(o):new Promise((u,L)=>{Promise.all(o[e].filter(g=>g.folder).map(g=>this.browseFolder(g.id,o,!0).catch(()=>{}))).then(()=>u(o)).catch(g=>L(new Error(g)))});if(!e||e==="/"){try{let u=await this.props.socket.readMetaItems();const L=[];let g=null;if(this.state.restrictToFolder){const T=this.state.restrictToFolder.split("/")[0];u=u.filter(D=>D._id===T)}else this.state.expertMode||(u=u.filter(T=>!T._id.endsWith(".admin")));const y=u.findIndex(T=>T._id==="system.meta.uuid");if(y!==-1&&u.splice(y,1),u.forEach(T=>{if(this.limitToObjectID&&this.limitToObjectID!==T._id)return;const D={id:T._id,name:T._id,title:T.common&&T.common.name||T._id,meta:!0,from:T.from,ts:T.ts,color:T.common&&T.common.color,icon:T.common&&T.common.icon,folder:!0,acl:T.acl,level:0};D.id===mt?g=D:L.push(D)}),L.sort((T,D)=>T.id>D.id?1:T.idT.folder).map(T=>this.browseFolder(T.id,o,!0).catch(()=>{}))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read meta items: ${L.message}`),o[e||"/"]=[]}return o}const n=e.split("/"),a=n.length,c=n.shift(),l=n.join("/");let N;try{N=await this.readDirSerial(c||"",l)}catch(u){if(u==="Not exists"&&c==="0_userdata.0")N=[];else throw u}try{const u=[];if(N.forEach(L=>{var y;const g={id:`${e}/${L.file}`,ext:O.getFileExtension(L.file),folder:L.isDir,name:L.file,size:(y=L.stats)==null?void 0:y.size,modified:L.modifiedAt,acl:L.acl,level:a};this.state.restrictToFolder?(g.folder&&(g.id.startsWith(`${this.state.restrictToFolder}/`)||g.id===this.state.restrictToFolder||this.state.restrictToFolder.startsWith(`${g.id}/`))||g.id.startsWith(`${this.state.restrictToFolder}/`))&&u.push(g):this.limitToPath?(g.folder&&(g.id.startsWith(`${this.limitToPath}/`)||g.id===this.limitToPath||this.limitToPath.startsWith(`${g.id}/`))||g.id.startsWith(`${this.limitToPath}/`))&&u.push(g):u.push(g)}),u.sort(ml),o[e]=u,!i)return Promise.all(u.filter(L=>L.folder).map(L=>this.browseFolder(L.id,o,!0))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read ${c}${l?`/${l}`:""}: ${L==null?void 0:L.message}`),o[e]=[]}return o}toggleFolder(e,t){t==null||t.stopPropagation();const i=[...this.state.expanded],r=i.indexOf(e.id);r===-1?(i.push(e.id),i.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(i)),e.temp?this.setState({expanded:i}):this.browseFolder(e.id).then(o=>this.setState({expanded:i,folders:o})).catch(o=>window.alert(o===Al?this.props.t('ra_Cannot find "%s"',e.id):this.props.t('ra_Cannot read "%s"',e.id)))):(i.splice(r,1),this.localStorage.setItem("files.expanded",JSON.stringify(i)),this.setState({expanded:i}))}onFileChange=(e,t,i)=>{const r=`${e}/${t}`,o=r.lastIndexOf("/"),n=r.substring(0,o);console.log(`File changed ${r}[${i}]`),this.state.folders[n]&&(this._tempTimeout[n]&&clearTimeout(this._tempTimeout[n]),this._tempTimeout[n]=setTimeout(()=>{delete this._tempTimeout[n],this.browseFolder(n,null,!1,!0).then(a=>this.setState({folders:a})).catch(a=>console.error(`Cannot read folder: ${a.message}`))},300))};changeFolder(e,t){var r;e==null||e.stopPropagation(),this.lastSelect=Date.now();let i=t||ys(this.state.currentDir);if(i==="/"&&(i=""),this.state.viewType==="Tile"&&((r=this.refFileDiv.current)!=null&&r.scrollTop)&&(this.scrollPositions[this.state.currentDir]=this.refFileDiv.current.scrollTop),this.localStorage.setItem("files.currentDir",i),t&&e&&(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)){this.setState({selected:i});return}if(i&&!this.state.folders[i]){this.browseFolder(i).then(o=>this.setState({folders:o,path:i,currentDir:i,selected:i,pathFocus:!1},()=>this.props.onSelect&&this.props.onSelect(""))).catch(o=>console.error(`Cannot read folder: ${o.message}`));return}this.setState({currentDir:i,selected:i,path:i,pathFocus:!1},()=>{if(this.props.onSelect&&this.props.onSelect(""),this.state.viewType==="Tile"&&this.scrollPositions[this.state.currentDir]){const o=this.scrollPositions[this.state.currentDir];delete this.scrollPositions[this.state.currentDir],this.refFileDiv.current&&(this.refFileDiv.current.scrollTop=o)}})}select(e,t,i){t&&t.stopPropagation(),this.lastSelect=Date.now(),this.localStorage.setItem("files.selected",e),this.setState({selected:e,path:e,pathFocus:!1},()=>{if(this.props.onSelect){const r=O.getFileExtension(e);(!this.props.filterFiles||r&&this.props.filterFiles.includes(r))&&(!this.state.filterByType||r&&we[this.state.filterByType].includes(r))?this.props.onSelect(e,!1,!!this.state.folders[e]):this.props.onSelect("")}i&&i()})}getText(e){if(e)return typeof e=="object"?e[this.props.lang]||e.en||void 0:e}renderFolder(e,t){var c;if(this.state.filterEmpty&&!((c=this.state.folders[e.id])!=null&&c.length)&&e.id!==mt&&!e.temp)return null;const i=t?fr:Ws,r=this.state.viewType===te?e.level*this.levelPadding:0,o=e.name===mt,n=o||e.name==="vis.0"||e.name==="vis-2.0",a=O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`],n&&Y.specialFolder);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,style:this.state.viewType===te?{marginLeft:r,width:`calc(100% - ${r}px`}:void 0,onClick:l=>this.state.viewType===te?this.select(e.id,l):this.changeFolder(l,e.id),onDoubleClick:l=>this.state.viewType===te&&this.toggleFolder(e,l),title:this.getText(e.title),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:{},e.temp?Y.itemFolderTemp:{})},M.createElement(i,{style:a,onClick:this.state.viewType===te?l=>this.toggleFolder(e,l):void 0}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},o?this.props.t("ra_User files"):e.name),M.createElement(j.Box,{component:"div",style:Y[`itemSize${this.state.viewType}`],sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.state.folders[e.id]?this.state.folders[e.id].length:""),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),this.state.viewType===te&&this.props.expertMode?M.createElement(j.Box,{component:"div",sx:{...Y.itemDeleteButtonTable,display:{md:"inline-block",sm:"none"}}}):null,this.state.viewType===te&&this.props.allowDownload?M.createElement("div",{style:Y[`itemDownloadEmpty${this.state.viewType}`]}):null,this.state.viewType===te&&this.props.allowDelete&&this.state.folders[e.id]&&this.state.folders[e.id].length?M.createElement(j.IconButton,{"aria-label":"delete",onClick:l=>{l.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderBackFolder(){return M.createElement(j.Box,{component:"div",key:this.state.currentDir,id:this.state.currentDir,onClick:e=>this.changeFolder(e),title:this.props.t("ra_Back to %s",ys(this.state.currentDir)),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`])},M.createElement(Ws,{style:O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`])}),M.createElement(WL,{sx:Y.itemFolderIconBack}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},".."))}formatSize(e){return M.createElement("div",{style:Y[`itemSize${this.state.viewType}`]},e||e===0?O.formatBytes(e):"")}formatAcl(e){const t=e?e.permissions||e.file:0;let i;return t?i=t.toString(16).padStart(3,"0"):i="",M.createElement("div",{style:Y[`itemAccess${this.state.viewType}`]},this.props.modalEditOfAccessControl?M.createElement(j.IconButton,{size:"large",onClick:()=>this.setState({modalEditOfAccess:!0}),sx:Y[`itemAclButton${this.state.viewType}`]},i||"---"):i||"---")}getFileIcon(e){switch(e){case"json":case"json5":return M.createElement(FL,{style:Y[`itemIcon${this.state.viewType}`]});case"css":return M.createElement(GL,{style:Y[`itemIcon${this.state.viewType}`]});case"js":case"ts":return M.createElement(ua,{style:Y[`itemIcon${this.state.viewType}`]});case"html":case"md":return M.createElement(Kr,{style:Y[`itemIcon${this.state.viewType}`]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return M.createElement(Dg,{style:Y[`itemIcon${this.state.viewType}`]});default:return M.createElement(LN,{style:Y[`itemIcon${this.state.viewType}`]})}}static getEditFile(e){switch(e){case"json":case"json5":case"js":case"html":case"txt":case"css":case"log":return!0;default:return!1}}setStateBackgroundImage=()=>{const e=["light","dark","colored","delete"];this.setState(({backgroundImage:t})=>t&&e.indexOf(t)!==-1&&e.length-1!==e.indexOf(t)?(this.localStorage.setItem("files.backgroundImage",e[e.indexOf(t)+1]),{backgroundImage:e[e.indexOf(t)+1]}):(this.localStorage.setItem("files.backgroundImage",e[0]),{backgroundImage:e[0]}))};getStyleBackgroundImage=()=>{switch(this.state.backgroundImage){case"light":return Y.backgroundImageLight;case"dark":return Y.backgroundImageDark;case"colored":return Y.backgroundImageColored;case"delete":return null;default:return null}};renderFile(e){const t=this.state.viewType===te?e.level*this.levelPadding:0,i=O.getFileExtension(e.name);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,onDoubleClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},onClick:r=>this.select(e.id,r),style:this.state.viewType===te?{marginLeft:t,width:`calc(100% - ${t}px)`}:void 0,className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFile${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:void 0)},i&&we.images.includes(i)?this.state.fileErrors.includes(e.id)?M.createElement(DM,{style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage(),...Y[`itemNoImage${this.state.viewType}`]}}):M.createElement(me,{onError:r=>{r.target.onerror=null;const o=[...this.state.fileErrors];o.includes(e.id)||(o.push(e.id),this.setState({fileErrors:o}))},style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage()},src:this.imagePrefix+e.id,alt:e.name}):this.getFileIcon(i),M.createElement(j.Box,{component:"div",sx:Y[`itemName${this.state.viewType}`]},e.name),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.formatSize(e.size)),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode&&dM.getEditFile(i)?M.createElement(j.IconButton,{"aria-label":"edit",onClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},sx:Y.itemDeleteButtonTable,size:"large"},M.createElement(mi,{fontSize:"small"})):M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]})),this.state.viewType===te&&this.props.allowDownload?M.createElement(j.Box,{component:"a",className:"MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeLarge",sx:Y.itemDownloadButtonTable,tabIndex:0,download:e.id,href:this.imagePrefix+e.id,onClick:r=>r.stopPropagation()},M.createElement(zg,null)):null,this.state.viewType===te&&this.props.allowDelete&&e.id!=="vis.0/"&&e.id!=="vis-2.0/"&&e.id!==mt?M.createElement(j.IconButton,{"aria-label":"delete",onClick:r=>{r.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderItems(e){var t;if((t=this.state.folders)!=null&&t[e]){if(this.state.viewType===Zo){const r=[];return e&&e!=="/"&&r.push(this.renderBackFolder()),this.state.folders[e].forEach(o=>{o.folder?r.push(this.renderFolder(o)):(!this.props.filterFiles||o.ext&&this.props.filterFiles.includes(o.ext))&&(!this.state.filterByType||o.ext&&we[this.state.filterByType].includes(o.ext))&&r.push(this.renderFile(o))}),r}const i=[];return this.state.folders[e].forEach(r=>{if(r.folder){const o=this.state.expanded.includes(r.id),n=this.renderFolder(r,o);if(Array.isArray(n)?n.forEach(a=>i.push(a)):i.push(n),this.state.folders[r.id]&&o){const a=this.renderItems(r.id);Array.isArray(a)?a.forEach(c=>i.push(c)):i.push(a)}}else(!this.props.filterFiles||r.ext&&this.props.filterFiles.includes(r.ext))&&(!this.state.filterByType||r.ext&&we[this.state.filterByType].includes(r.ext))&&i.push(this.renderFile(r))}),i}return M.createElement("div",{style:{position:"relative"}},M.createElement(j.CircularProgress,{key:e,color:"secondary",size:24}),M.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}renderToolbar(){const e=this.props.showTypeSelector?Dr[this.state.filterByType||"all"]||Dr.all:null,t=this.findFirstFolder(this.state.selected);return M.createElement(j.Toolbar,{key:"toolbar",variant:"dense"},this.props.allowNonRestricted&&this.props.restrictToFolder?M.createElement(j.IconButton,{edge:"start",title:this.state.restrictToFolder?this.props.t("ra_Show all folders"):this.props.t("ra_Restrict to folder"),style:{...Y.menuButton,...this.state.restrictToFolder?Y.menuButtonRestrictActive:void 0},"aria-label":"restricted to folder",onClick:()=>this.setState({restrictToFolder:(this.state.restrictToFolder?"":this.props.restrictToFolder)||"",loadAllFolders:!0}),size:"small"},M.createElement(ug,{fontSize:"small"})):null,this.props.showExpertButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle expert mode"),style:{...Y.menuButton,...this.state.expertMode?Y.menuButtonExpertActive:void 0},"aria-label":"expert mode",onClick:()=>this.setState({expertMode:!this.state.expertMode}),size:"small"},M.createElement($n,null)):null,this.props.showViewTypeButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle view mode"),style:Y.menuButton,"aria-label":"view mode",onClick:()=>{const i=this.state.viewType===te?Zo:te;this.localStorage.setItem("files.viewType",i);let r=this.state.selected;Vo(r)&&(r=ys(r)),this.setState({viewType:i,currentDir:r},()=>{this.state.viewType===te&&this.scrollToSelected()})},size:"small"},this.state.viewType!==te?M.createElement(jg,{fontSize:"small"}):M.createElement(fg,{fontSize:"small"})):null,M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Hide empty folders"),style:Y.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:()=>{this.localStorage.setItem("file.empty",this.state.filterEmpty?"false":"true"),this.setState({filterEmpty:!this.state.filterEmpty})},size:"small"},M.createElement(cg,{fontSize:"small"})),M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Reload files"),style:Y.menuButton,color:"inherit","aria-label":"reload files",onClick:()=>this.setState({folders:{}},()=>this.loadFolders()),size:"small"},M.createElement(jN,{fontSize:"small"})),this.props.allowCreateFolder?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),style:Y.menuButton,color:"inherit","aria-label":"add folder",onClick:()=>this.setState({addFolder:!0}),size:"small"},M.createElement(NN,{fontSize:"small"})):null,this.props.allowUpload?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),style:Y.menuButton,color:"inherit","aria-label":"upload file",onClick:()=>this.setState({uploadFile:!0}),size:"small"},M.createElement(Sr,{fontSize:"small"})):null,this.props.showTypeSelector&&e?M.createElement(j.Tooltip,{title:this.props.t("ra_Filter files"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{size:"small",onClick:i=>this.setState({showTypesMenu:i.target})},M.createElement(e,{fontSize:"small"}))):null,this.state.showTypesMenu?M.createElement(j.Menu,{open:!0,anchorEl:this.state.showTypesMenu,onClose:()=>this.setState({showTypesMenu:null})},Object.keys(Dr).map(i=>{const r=Dr[i];return M.createElement(j.MenuItem,{key:i,selected:this.state.filterByType===i,onClick:()=>{i==="all"?(this.localStorage.removeItem("files.filterByType"),this.setState({filterByType:"",showTypesMenu:null})):(this.localStorage.setItem("files.filterByType",i),this.setState({filterByType:i,showTypesMenu:null}))}},M.createElement(j.ListItemIcon,null,M.createElement(r,{fontSize:"small"})),M.createElement(j.ListItemText,null,this.props.t(`ra_fileType_${i}`)))})):null,M.createElement(j.Tooltip,{title:this.props.t("ra_Background image"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{color:"inherit",edge:"start",style:Y.menuButton,onClick:this.setStateBackgroundImage,size:"small"},M.createElement(ca,{fontSize:"small"}))),this.state.viewType!==te&&this.props.allowDelete?M.createElement(j.Tooltip,{title:this.props.t("ra_Delete"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement("span",null,M.createElement(j.IconButton,{"aria-label":"delete",disabled:!this.state.selected||this.state.selected==="vis.0/"||this.state.selected==="vis-2.0/"||this.state.selected===mt,color:"inherit",edge:"start",style:Y.menuButton,onClick:i=>{i.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(this.state.selected):this.setState({deleteItem:this.state.selected})},size:"small"},M.createElement(nt,{fontSize:"small"})))):null)}findItem(e,t){if(t=t||this.state.folders,!t)return null;const i=e.split("/");i.pop();const r=i.join("/")||"/";return t[r]&&t[r].find(o=>o.id===e)||null}renderInputDialog(){if(this.state.addFolder){const e=this.findFirstFolder(this.state.selected);return e?M.createElement(JEe,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:t=>this.state.folders[e].find(i=>i.name===t)?"":this.props.t("ra_Duplicate name"),onClose:t=>{if(t){const i={};Object.keys(this.state.folders).forEach(a=>i[a]=this.state.folders[a]);const r=this.findItem(e),o=`${e}/${t}`;i[e].push({id:o,level:((r==null?void 0:r.level)||0)+1,name:t,folder:!0,temp:!0}),i[e].sort(ml),i[o]=[];const n=[...this.state.expanded];n.includes(e)||(n.push(e),n.sort()),this.localStorage.setItem("files.expanded",JSON.stringify(n)),this.setState({addFolder:!1,folders:i,expanded:n},()=>this.select(o))}else this.setState({addFolder:!1})},replace:t=>t.replace(/[^-_\w]/,"_")}):(window.alert(this.props.t("ra_Invalid parent folder!")),null)}return null}componentDidUpdate(){this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(()=>{this.setOpacityTimer=null;const e=window.document.getElementsByClassName("browserItem");for(let t=0;tthis.setState({uploadFile:!1})},M.createElement(Ne,null)),M.createElement(uN,{key:"dropzone",onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:e=>{let t=e.length;e.forEach(i=>{const r=new FileReader;r.onabort=()=>console.log("file reading was aborted"),r.onerror=()=>console.log("file reading has failed"),r.onload=()=>{const o=this.findFirstFolder(this.state.selected);if(!o)window.alert(this.props.t("ra_Invalid parent folder!"));else{const n=`${o}/${i.name}`;this.uploadFile(n,r.result).then(()=>{--t||this.setState({uploadFile:!1},()=>{if(this.supportSubscribes){const a=[...this.state.expanded];a.includes(o)||(a.push(o),a.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(a))),this.setState({expanded:a},()=>this.select(n))}else setTimeout(()=>this.browseFolder(o,null,!1,!0).then(a=>{const c=[...this.state.expanded];c.includes(o)||(c.push(o),c.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(c))),this.setState({folders:a,expanded:c},()=>this.select(n))}),500)})})}},r.readAsArrayBuffer(i)})}},({getRootProps:e,getInputProps:t})=>M.createElement("div",{style:{...Y.uploadDiv,...this.state.uploadFile==="dragging"?Y.uploadDivDragging:void 0},...e()},M.createElement("input",{...t()}),M.createElement(j.Box,{component:"div",sx:Y.uploadCenterDiv},M.createElement("div",{style:Y.uploadCenterTextAndIcon},M.createElement(Sr,{style:Y.uploadCenterIcon}),M.createElement("div",{style:Y.uploadCenterText},this.state.uploadFile==="dragging"?this.props.t("ra_Drop file here"):this.props.t("ra_Place your files here or click here to open the browse dialog"))))))]:null}deleteRecursive(e){const t=this.findItem(e);if(t!=null&&t.folder)return(this.state.folders[e]?Promise.all(this.state.folders[e].map(o=>this.deleteRecursive(o.id))):Promise.resolve()).then(()=>{if(t.level>=1){const o=e.split("/"),n=o.shift();this.props.socket.deleteFolder(n||"",o.join("/")).then(()=>{const a=JSON.parse(JSON.stringify(this.state.folders));delete a[t.id];const c=ys(t.id),l=a[c];if(l){const N=l.findIndex(u=>u.id===t.id);N!==-1&&l.splice(N,1),this.select(c,null,()=>this.setState({folders:a}))}})}});const i=e.split("/"),r=i.shift();return i.length?this.props.socket.deleteFile(r||"",i.join("/")).catch(o=>window.alert(`Cannot delete file: ${o}`)):Promise.resolve()}deleteItem(e){e=e||this.state.deleteItem,this.state.suppressDeleteConfirm&&(this.suppressDeleteConfirm=Date.now()+6e4*5),this.setState({deleteItem:"",suppressDeleteConfirm:!1},()=>this.deleteRecursive(e).then(()=>{const t={},i=this.state.expanded.indexOf(e);if(i!==-1){const r=[...this.state.expanded];r.splice(i,1),this.localStorage.setItem("files.expanded",JSON.stringify(r)),t.expanded=r}if(this.state.selected===e){const r=this.state.selected.split("/");r.pop(),t.selected=r.join("/")}if(this.supportSubscribes)this.setState(t);else{const r=this.findFirstFolder(e),o={};Object.keys(this.state.folders).forEach(n=>{n!==r&&!n.startsWith(`${r}/`)&&(o[n]=this.state.folders[n])}),t.folders=o,this.setState(t,()=>setTimeout(()=>{this.browseFolders([...this.state.expanded],o).then(n=>this.setState({folders:n})).catch(n=>console.error(n))},200))}}))}renderDeleteDialog(){return this.state.deleteItem?M.createElement(j.Dialog,{key:"deleteDialog",open:!0,onClose:()=>this.setState({deleteItem:""}),"aria-labelledby":"ar_dialog_file_delete_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_file_delete_title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.props.t("ra_Are you sure?")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.suppressDeleteConfirm,onChange:()=>{this.setState({suppressDeleteConfirm:!this.state.suppressDeleteConfirm})}}),label:this.props.t("ra_no confirm for 5 mins")})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.deleteItem(""),color:"primary",autoFocus:!0},this.props.t("ra_Delete")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({deleteItem:""}),color:"grey"},this.props.t("ra_Cancel")))):null}renderViewDialog(){const e=this.props.FileViewer||gfe;return this.state.viewer?M.createElement(e,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeType:this.props.themeType,setStateBackgroundImage:this.setStateBackgroundImage,getStyleBackgroundImage:this.getStyleBackgroundImage,t:this.props.t,socket:this.props.socket,onClose:()=>this.setState({viewer:"",formatEditFile:""})}):null}renderError(){return this.state.errorText?M.createElement(s0,{key:"errorDialog",text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}updateItemsAcl(e){this.cacheFolders||=JSON.parse(JSON.stringify(this.state.folders));let t;e.forEach(i=>{const r=this.findItem(i.id,this.cacheFolders);r&&JSON.stringify(r.acl)!==JSON.stringify(i.acl)&&(r.acl=i.acl,t=!0)}),t&&(this.cacheFoldersTimeout&&clearTimeout(this.cacheFoldersTimeout),this.cacheFoldersTimeout=setTimeout(()=>{this.cacheFoldersTimeout=null;const i=this.cacheFolders||{};this.cacheFolders=null,this.setState({folders:i})},200))}changeToPath(){setTimeout(()=>{if(this.state.path!==this.state.selected&&(!this.lastSelect||Date.now()-this.lastSelect>100)){let e=this.state.path;Vo(this.state.path)&&(e=ys(this.state.path)),new Promise(t=>{this.state.folders[e]?t(!0):this.browseFolder(e).then(i=>this.setState({folders:i},()=>t(!0))).catch(i=>this.setState({errorText:i===Al?this.props.t('ra_Cannot find "%s"',e):this.props.t('ra_Cannot read "%s"',e)}))}).then(t=>t&&this.setState({selected:this.state.path,currentDir:e,pathFocus:!1})).catch(t=>console.error(t))}else(!this.lastSelect||Date.now()-this.lastSelect>100)&&this.setState({pathFocus:!1})},100)}renderBreadcrumb(){const e=this.state.currentDir.startsWith("/")?this.state.currentDir.split("/"):`/${this.state.currentDir}`.split("/"),t=[];return M.createElement(j.Breadcrumbs,{style:{paddingLeft:8,color:"#FFF"}},e.map((i,r)=>{i&&t.push(i);const o=t.join("/");return rthis.changeFolder(n,o||"/")},i||this.props.t("ra_Root")):M.createElement("div",{style:Y.pathDivBreadcrumbSelected,key:`${this.state.selected}_${r}`,onClick:()=>this.setState({pathFocus:!0})},i)}))}renderPath(){return M.createElement(j.Box,{component:"div",key:"path",sx:Y.pathDiv},this.state.pathFocus?M.createElement(j.Input,{value:this.state.path,onKeyDown:e=>{e.key==="Enter"?this.changeToPath():e.key==="Escape"&&this.setState({pathFocus:!1})},endAdornment:M.createElement(j.IconButton,{size:"small",onClick:()=>this.changeToPath()},M.createElement(gg,null)),onBlur:()=>this.changeToPath(),onChange:e=>this.setState({path:e.target.value}),style:Y.pathDivInput}):this.renderBreadcrumb())}render(){return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(()=>{this.setState({loadAllFolders:!1,folders:{}},()=>{this.foldersLoading=!1,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`))})},300)),M.createElement("div",{style:{...Y.root,...this.props.style},className:this.props.className},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===Zo?this.renderPath():null,M.createElement("div",{style:{...Y.filesDiv,...Y[`filesDiv${this.state.viewType}`]},onClick:e=>{this.state.viewType!==te&&(this.state.selected!==(this.state.currentDir||"/")?this.changeFolder(e,this.state.currentDir||"/"):e.stopPropagation())},id:"dev",ref:this.refFileDiv},this.state.viewType===te?this.renderItems("/"):this.renderItems(this.state.currentDir||"/"),this.state.viewType!==te?M.createElement("div",{style:Y.filesDivHint},this.props.t("ra_select_folder_hint")):null),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl?this.props.modalEditOfAccessControl(this):null,this.renderError())):M.createElement(j.LinearProgress,null)}}const jfe=Io()(dM),yfe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIC0xMjAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDBoLTQ2NGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgzMnYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDI4OHYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTE5MmMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMzkyIDIyNGgtMjR2LTE2aDI0em0zNDQgMGgtMjR2LTE2aDI0em00MC0zMmgtNDQ4di0xNzZoNDQ4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2IDE3NmMzNS4zNDc2NTYgMCA2NC0yOC42NTIzNDQgNjQtNjRzLTI4LjY1MjM0NC02NC02NC02NC02NCAyOC42NTIzNDQtNjQgNjRjLjAzOTA2MiAzNS4zMjgxMjUgMjguNjcxODc1IDYzLjk2MDkzOCA2NCA2NHptLTgtMTExLjI4MTI1djE1LjI4MTI1aDE2di0xNS4yODEyNWMyNC42MDU0NjkgNC4xNjAxNTYgNDEuOTE3OTY5IDI2LjQ3NjU2MiAzOS44MzIwMzEgNTEuMzQzNzUtMi4wODU5MzcgMjQuODY3MTg4LTIyLjg3ODkwNiA0My45ODQzNzUtNDcuODMyMDMxIDQzLjk4NDM3NXMtNDUuNzQ2MDk0LTE5LjExNzE4Ny00Ny44MzIwMzEtNDMuOTg0Mzc1Yy0yLjA4NTkzOC0yNC44NjcxODggMTUuMjI2NTYyLTQ3LjE4MzU5NCAzOS44MzIwMzEtNTEuMzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjAgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYwIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzY4IDE3NmMxNi4wOTM3NS4wMTk1MzEgMjkuNjg3NS0xMS45Mzc1IDMxLjcxODc1LTI3LjkwNjI1IDIuMDM1MTU2LTE1Ljk2NDg0NC04LjEzMjgxMi0zMC45NDUzMTItMjMuNzE4NzUtMzQuOTU3MDMxdi0xNy4xMzY3MTloLTE2djE3LjEzNjcxOWMtMTUuNTg1OTM4IDQuMDExNzE5LTI1Ljc1MzkwNiAxOC45OTIxODctMjMuNzE4NzUgMzQuOTU3MDMxIDIuMDMxMjUgMTUuOTY4NzUgMTUuNjI1IDI3LjkyNTc4MSAzMS43MTg3NSAyNy45MDYyNXptMC00OGM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2cy03LjE2NDA2MiAxNi0xNiAxNi0xNi03LjE2NDA2Mi0xNi0xNiA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im02NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggMTEyaDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTMyYy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDh6bTgtNjRoMTZ2MTZoLTE2em0wIDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMiAxMzZjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MzIgMTY4YzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Tfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy41NDYgMTA1LjEyNWMwLTEuMDQ0LS4yMDUtMi4wOTEtLjY0Ny0zLjA3MmwtNDMuOTMtOTcuNjNjLTEuMjEtMi42OTItMy44ODgtNC40MjMtNi44MzktNC40MjNoLTE4Mi42M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMy44MTJ2ODIuNjNoLTgyLjYyNXYtODIuNjNoMjMuODEzYzQuMTQzIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xODIuNjNjLTIuOTUxIDAtNS42MjkgMS43MzEtNi44NCA0LjQyM2wtNDMuOTMgOTcuNjNjLS40NDEuOTgxLS42NDYgMi4wMjgtLjY0NyAzLjA3MmgtLjAxNXYxMi4yMDNjMCAyOS41MTQgMjIuODI3IDUzLjc4IDUxLjc1MSA1Ni4xMTJsMzEuODY1IDU4LjQxOWgtNC4wMDdjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjMzYy4wMDUgMCAuMDEuMDAxLjAxNS4wMDFzLjAxMS0uMDAxLjAxNi0uMDAxaDE2LjYxOGM0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTIuMTg5bC0zMi40NTYtNTkuNTAzYzE1Ljc1LTMuNDEzIDI5LjA1Ny0xMy40MzMgMzYuODc5LTI3LjAwMyA5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM3LjgyMiAxMy41NzEgMjEuMTI5IDIzLjU5MSAzNi44NzkgMjcuMDAzbC0zMi40NTYgNTkuNTAzaC0xMi4xODhjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjE4Yy4wMDUgMCAuMDExLjAwMS4wMTYuMDAxcy4wMS0uMDAxLjAxNS0uMDAxaDE2LjYzM2M0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNC4wMDdsMzEuODY1LTU4LjQxOWMyOC45MjQtMi4zMzIgNTEuNzUxLTI2LjU5OCA1MS43NTEtNTYuMTEydi0xMi4yMDN6bS0xOS4wODUtNy40OTVoLTc4LjUyM3YtODIuNjNoNDEuMzQzem0tOTMuNTIzLTgyLjYzdjgyLjYzaC04Mi42MjV2LTgyLjYzem0tMTk1LjI1IDgyLjYzaC04Mi42MjV2LTgyLjYzaDgyLjYyNXptLTEzOC45NjgtODIuNjNoNDEuMzQzdjgyLjYzaC03OC41MjR6bS4wMzQgMTQzLjY0MWMtLjAxMSAwLS4wMjEtLjAwMS0uMDMyLS4wMDEtMjIuNzY3LS4wMTUtNDEuMjg1LTE4LjU0Mi00MS4yODUtNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTMxIDQxLjMxLTQxLjMwOCA0MS4zMTN6bTk3LjYyMSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMwIDIyLjc3OC0xOC41MzQgNDEuMzEyLTQxLjMxMyA0MS4zMTJ6bTk3LjYyNSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMtLjAwMSAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42MjUgMGMtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42NDgtLjAwMWMtLjAwNSAwLS4wMDkgMC0uMDE0IDAtLjAwMyAwLS4wMDYgMC0uMDA5IDAtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjLS4wMDEgMjIuNzcyLTE4LjUyMSA0MS4zLTQxLjI5IDQxLjMxMnoiLz4KICAgIDwvZz4KPC9zdmc+",Dfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOC41MzYgNTA4LjUzNiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ5OC41MzYgMzQ0LjMyMWgtMTcuMjk4Yy40MzQtMTcuNjcyLTEwLjI2Ny0zNC4yMTItMjkuNTQ3LTM0LjIxMnMtMjkuOTgyIDE2LjU0LTI5LjU0NyAzNC4yMTJoLTE3LjI5OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OTdjMCAyNC42MDEgMTUuNzEyIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5M3YtNjYuNjRjMzYuMDg4IDEuMjY2IDU3Ljg0Ni0yMi4zOSA4MS4xNDktNDUuNjk0IDI4LjUxNy0zLjAyNCA1MC44MDktMjcuMjE2IDUwLjgwOS01Ni41MjJ2LTI1LjY5OGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwaC0xNy4yOThjLjQzNC0xNy42NzEtMTAuMjY3LTM0LjIxMi0yOS41NDctMzQuMjEycy0yOS45ODIgMTYuNTQtMjkuNTQ3IDM0LjIxMmgtMTcuM2MtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OThjMCAyNC42MDEgMTUuNzExIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5NCAwLTI1Ljg5NSAwLTUxLjc5MSAwLTc3LjY4NmgyMi43MTZjMTIuMjg1IDAgMTguNzI2IDE1LjUzIDEwLjAzMyAyNC4yMjEtOS4xMjIgOS4xMjEgNS4wMiAyMy4yNjQgMTQuMTQyIDE0LjE0MyA2LjQ1OC02LjQ1NyAxMC4wMTQtMTUuMDQyIDEwLjAxNC0yNC4xNzUgMC0xOC44NTItMTUuMzM3LTM0LjE4OC0zNC4xODktMzQuMTg4aC0yMi43MTZ2LTE4LjgyNGMyNi4yNTctNS4wNDMgNDYuMTYxLTI4LjE3NSA0Ni4xNjEtNTUuODgxdi0yMC44NTFjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMzYuOTE0di0yNC4yMzZoMzYuOTE0YzEyLjg0IDAgMTIuODU5LTIwIDAtMjBoLTkzLjgyOGMtMTIuODQgMC0xMi44NTkgMjAgMCAyMGgzNi45MTR2MjQuMjM1aC0zNi45MTRjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjAuODUxYzAgMjguMjMzIDIwLjY2OSA1MS43MTkgNDcuNjY3IDU2LjE1MXYxOC41NTVoLTIyLjcxNmMtMTguODUyIDAtMzQuMTg5IDE1LjMzNy0zNC4xODkgMzQuMTg4IDAgOS4xMzIgMy41NTYgMTcuNzE3IDEwLjAxNCAyNC4xNzUgOS4xMjEgOS4xMjEgMjMuMjYzLTUuMDIxIDE0LjE0My0xNC4xNDMtOC42ODUtOC42ODQtMi4yNjQtMjQuMjIxIDEwLjAzMy0yNC4yMjFoMjIuNzE2djc3LjY4NmMwIDMyLjM2NC0yNi4zMyA1OC42OTQtNTguNjk0IDU4LjY5NC0xNS42NzcgMC0zMC40MTctNi4xMDUtNDEuNTAyLTE3LjE5MWwtMTEuMjE4LTExLjIxOGMyMi41LTcuNTc1IDM4Ljc1Ni0yOC44NTYgMzguNzU2LTUzLjg3N3YtMjUuNjk4YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5OGMuNDM0LTE3LjY3MS0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4zYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwdjI1LjY5OGMwIDI4LjcwNyAyMS4zOTQgNTIuNDk4IDQ5LjA3MyA1Ni4zbDIyLjkzNyAyMi45MzdjMTUuMTY0IDE1LjE2MyAzNi4wMSAyMy40ODYgNTcuNDMzIDIzLjAwM3Y2Ni42MTRjMCAzMi4zNjQtMjYuMzMgNTguNjkzLTU4LjY5MyA1OC42OTMtMTUuNjc3IDAtMzAuNDE3LTYuMTA1LTQxLjUwMi0xNy4xOTFsLTExLjYwMi0xMS42MDJjMjEuOTE0LTcuODk4IDM3LjYyNS0yOC44OTIgMzcuNjI1LTUzLjQ5NHYtMjUuNjk3YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5N2MuNDM0LTE3LjY3Mi0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4yOTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjUuNjk3YzAgMjkuMzA1IDIyLjI5MiA1My40OTcgNTAuODA4IDU2LjUyMWwyMi43MTcgMjIuNzE2YzE0Ljg2MyAxNC44NjMgMzQuNjI1IDIzLjA0OCA1NS42NDUgMjMuMDQ4IDQzLjM5MiAwIDc4LjY5My0zNS4zMDIgNzguNjkzLTc4LjY5M3YtNjkuNjU3YzE0LjQyNi00LjE2NCAyNy4xNjEtMTIuMzQyIDM2LjkwNS0yMy4yNTd2MjAuNTIyYzAgMTIuODQgMjAgMTIuODU5IDIwIDB2LTIwLjUyMmM5LjUyIDEwLjY2MyAyMS44ODkgMTguNzIzIDM1LjkwNSAyMi45NzJ2NjkuOTQ2YzAgNDMuMzkyIDM1LjMwMiA3OC42OTMgNzguNjkzIDc4LjY5MyAyMS4wMiAwIDQwLjc4MS04LjE4NiA1NS42NDUtMjMuMDQ4bDIyLjcxNi0yMi43MTZjMjguNTE2LTMuMDI1IDUwLjgwOC0yNy4yMTYgNTAuODA4LTU2LjUyMXYtMjUuNjk3Yy4wMDEtNS41MjQtNC40NzYtMTAuMDAxLTkuOTk5LTEwLjAwMXptLTExMi4yOTgtMTQ5LjkyN2MwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0zMjYuOTE0LTI0LjY2NGMwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0xMDQuODEyIDEyMC41OTljMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTIgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjgtMzYuODQ1LTM2Ljg0NXYtMTUuNjk3em0xMjMuNDExLTI3OC4zNjR2LTEwLjg1MWg3My44Mjh2MTAuODUxYzAgNDcuNTk2LTczLjgyOCA0Ny41OTYtNzMuODI4IDB6bTIyNS4wNDIgMjUzLjdjMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTMgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjktMzYuODQ1LTM2Ljg0NXYtMTUuNjk3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yODEuMjA2IDQ0MS44NDctMTYuNDM4LTkuNDl2LTIxLjY0NWMwLTEyLjg0LTIwLTEyLjg1OS0yMCAwdjIxLjYxOWwtMTYuNDgzIDkuNTE2Yy0zLjA5NCAxLjc4Ni01IDUuMDg3LTUgOC42NnYyNC43OGMwIDMuNTczIDEuOTA2IDYuODc0IDUgOC42NmwyMS40NiAxMi4zOWMzLjA2NyAxLjc3MSA2LjkzMyAxLjc3MSAxMCAwbDIxLjQ2LTEyLjM5YzMuMDk0LTEuNzg2IDUtNS4wODcgNS04LjY2di0yNC43OGMuMDAxLTMuNTczLTEuOTA1LTYuODc0LTQuOTk5LTguNjZ6bS0xNSAyNy42NjctMTEuNDYgNi42MTctMTEuNDYtNi42MTd2LTEzLjIzM2wxMS40Ni02LjYxNyAxMS40NiA2LjYxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ1LjUzNSAzNzQuMTgzYzEuNjM1IDMuOTI0IDUuNzE2IDYuNDY2IDkuOTY4IDYuMTM4IDQuMTY5LS4zMjIgNy43NzgtMy4yNzIgOC44OTctNy4zMDMgMi4zNjQtOC41MTMtNy4xOTEtMTUuNzU5LTE0Ljc3My0xMS4yMzUtNC4yMTQgMi41MTQtNS45NDUgNy44OC00LjA5MiAxMi40eiIvPgogICAgPC9nPgo8L3N2Zz4=",dfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtOSAxN2M0LjQxMSAwIDgtMy41ODkgOC04IDAtMS4yNTYtLjI5OS0yLjQ0MS0uODE4LTMuNTAxIDEuMTAzLTEuNTQ4IDIuODk4LTIuNDk5IDQuODE4LTIuNDk5IDIuODQgMCA1LjI3OCAyLjA2NCA1Ljc5OSA0LjgzMS0uMTkuMTA1LS4zNzUuMjE4LS41NTQuMzQyLTEuMjI0LS43NDctMi42MzYtMS4xNzMtNC4wNzQtMS4xNzNoLS4xNzF2MmguMTcxYy44OTYgMCAxLjc4LjIyMSAyLjU4LjYxNS0uMDgzLjEwOS0uMTcxLjIxMS0uMjQ4LjMyNmwtLjMzNi41MDQgMS42NjQgMS4xMDkuMzM2LS41MDRjLjg1Ny0xLjI4MyAyLjI5LTIuMDUgMy44MzMtMi4wNSAxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTdjLTEuMTAzIDAtMi0uODk3LTItMmgtMmMwIDIuMjA2IDEuNzk0IDQgNCA0aDI1YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00Yy0uNDczIDAtLjkzNS4wNi0xLjM4Ny4xNTctMS4xNTktMy42MjMtNC41NDItNi4xNTctOC40My02LjE1Ny0zLjU0OSAwLTYuNzQ2IDIuMTA3LTguMTQ0IDUuMzY5bC0uMjc3LjY0NmMtLjM1Ni4wMTMtLjcwNi4wNTUtMS4wNS4xMjMtLjgyLTMuNTQyLTQuMDIzLTYuMTM4LTcuNzEyLTYuMTM4LTIuMzEyIDAtNC40ODggMS4wMzQtNS45NzggMi43NTEtMS40NjctMS42ODItMy42Mi0yLjc1MS02LjAyMi0yLjc1MS00LjQxMSAwLTggMy41ODktOCA4czMuNTg5IDggOCA4em0yOS4xODMtMTRjMy4wNDcgMCA1LjY3NiAyLjAxNyA2LjU0MSA0Ljg3Ny0uMTYzLjA5My0uMzI1LjE4OC0uNDc5LjI5NS0xLjIyNS0uNzQ2LTIuNjM2LTEuMTcyLTQuMDc0LTEuMTcyaC0uMTcxdjJoLjE3MWMuODk1IDAgMS43OC4yMjEgMi41OC42MTUtLjA4My4xMDktLjE3MS4yMTEtLjI0OC4zMjZsLS4zMzYuNTA0IDEuNjY0IDEuMTA5LjMzNi0uNTA0Yy44NTctMS4yODMgMi4yOS0yLjA1IDMuODMzLTIuMDUgMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC0xNC41NTZjLjM0NC0uNTkxLjU1Ni0xLjI2OC41NTYtMiAwLTEuNTcxLS45MTgtMi45MTktMi4yMzgtMy41NzNsLjExNi0uMjdjMS4wODItMi41MjUgMy41NTctNC4xNTcgNi4zMDUtNC4xNTd6bS0yOS4xODMgMGMzLjMwOSAwIDYgMi42OTEgNiA2cy0yLjY5MSA2LTYgNi02LTIuNjkxLTYtNiAyLjY5MS02IDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMzd2LTQuNWw0LTN2LTIuNWgtMnYxLjVsLTIgMS41di01aC0ydjdsLTItMS41di0xLjVoLTJ2Mi41bDQgM3YyLjVoLTEwdi02LjVsNC0zdi0yLjVoLTJ2MS41bC0yIDEuNXYtNC41ODZsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny40MTRsLTItMS41di0xLjVoLTJ2Mi41bDQgM3Y0LjVoLTE0di0xLjI3OWwuNDk2LS4xNjVjMy4yOTItMS4wOTggNS41MDQtNC4xNjYgNS41MDQtNy42MzYgMC0yLjE0OS0uODM3LTQuMTcxLTIuMzU3LTUuNjkxbC00LjY0My00LjY0My0zLjgyNSAzLjgyNWMtLjM5LS44MDItLjg5Ni0xLjU0Ni0xLjUzMi0yLjE4M2wtNC42NDMtNC42NDItNC42NDMgNC42NDNjLTEuNTIgMS41Mi0yLjM1NyAzLjU0Mi0yLjM1NyA1LjY5MSAwIDMuNDcgMi4yMTIgNi41MzggNS41MDMgNy42MzVsLjQ5Ny4xNjV2NC4yOGgtMTYuMjgxbC40OSAxLjk1OWMzLjUzOSAxNC4xNTUgMTYuMjAxIDI0LjA0MSAzMC43OTEgMjQuMDQxczI3LjI1Mi05Ljg4NiAzMC43OTEtMjQuMDQxbC40OS0xLjk1OXptLTI3LjM2NCA2LjI1OCAxLjE0NSAxLjcxN2MuMTQzLjIxNC4yMTkuNDY0LjIxOS43MjIgMCAuNzE5LS41ODQgMS4zMDMtMS4zMDMgMS4zMDNoLTE1LjM5NGMtLjcxOSAwLTEuMzAzLS41ODQtMS4zMDMtMS4zMDMgMC0uMjU4LjA3Ni0uNTA4LjIxOS0uNzIzbDEuMTQ2LTEuNzE4Yy40MTUtLjYyNC42MzUtMS4zNTEuNjM1LTIuMTAxIDAtLjc3LS4yNDYtMS41MjUtLjY4MS0yLjE1NWgxNS4zNjJjLS40MzUuNjMxLS42ODEgMS4zODUtLjY4MSAyLjE1NSAwIC43NS4yMiAxLjQ3Ny42MzYgMi4xMDN6bS0xLjYzNi0yMi44NDQgMy4yMjkgMy4yMjljMS4xNDIgMS4xNDIgMS43NzEgMi42NjIgMS43NzEgNC4yNzcgMCAyLjU1Ny0xLjYwNCA0LjgxNy00IDUuNjgxdi0xLjE4NmwyLjcwNy0yLjcwNy0xLjQxNC0xLjQxNC0xLjI5MyAxLjI5MnYtMi4xNzJsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny4wMTRjLTIuMzk2LS44NjMtNC0zLjEyMi00LTUuNjggMC0xLjYxNS42MjktMy4xMzUgMS43NzEtNC4yNzd6bS0xNSA0LjUwNmMwLTEuNjE1LjYyOS0zLjEzNSAxLjc3MS00LjI3N2wzLjIyOS0zLjIyOSAzLjIyOSAzLjIyOWMuNjY2LjY2NiAxLjE1MyAxLjQ4MSAxLjQ0OSAyLjM3MS0xLjA4NCAxLjQtMS42NzggMy4xMDYtMS42NzggNC45MDYgMCAuNDY0LjA0Ni45MTguMTIyIDEuMzY0LS42MDkuNTgxLTEuMzI5IDEuMDM0LTIuMTIyIDEuMzE5di02LjNsMS44MzItMi43NDgtMS42NjQtMS4xMDktMS4zMjMgMS45ODUtMS4xMzgtMS4xMzgtMS40MTQgMS40MTQgMS43MDcgMS43MDd2Mi4xNzJsLTEuMjkzLTEuMjkzLTEuNDE0IDEuNDE0IDIuNzA3IDIuNzA3djEuMTg2Yy0yLjM5Ni0uODYzLTQtMy4xMjItNC01LjY4em02IDcuODAxLjQ5Ni0uMTY1Yy44MjUtLjI3NSAxLjU4OS0uNjk2IDIuMjgxLTEuMjE2LjkxNiAxLjk0OCAyLjU4NiAzLjUwMiA0LjcyNiA0LjIxNWwuNDk3LjE2NXYxLjI4aC04em0tNy40MTQgNi4yNzkuODkuODljLjMzMy4zMzMuNTI0Ljc5NS41MjQgMS4yNjUgMCAuMzU0LS4xMDQuNjk4LS4zLjk5M2wtMS4xNDUgMS43MTdjLS4zNjMuNTQ0LS41NTUgMS4xNzgtLjU1NSAxLjgzMiAwIDEuODIyIDEuNDgxIDMuMzAzIDMuMzAzIDMuMzAzaDE1LjM5NWMxLjgyMSAwIDMuMzAyLTEuNDgxIDMuMzAyLTMuMzAzIDAtLjY1NC0uMTkyLTEuMjg4LS41NTUtMS44MzJsLTEuMTQ1LTEuNzE2Yy0uMTk2LS4yOTUtLjMtLjYzOS0uMy0uOTk0IDAtLjQ3MS4xOTEtLjkzMy41MjQtMS4yNjZsLjg5LS44OWg2LjgzNmMtLjE2LjM4NS0uMjUuODA2LS4yNSAxLjI0NyAwIDEuNDkyIDEuMDExIDIuNzg4IDIuNDU5IDMuMTQ5bDQuMjIgMS4wNTVjLjc3OC4xOTYgMS4zMjEuODkxIDEuMzIxIDEuNjkzIDAgLjcxNy0uNDMgMS4zNTMtMS4wOTYgMS42MThsLTYuMjc1IDIuNTExYy0xLjU5Ny42MzktMi42MjkgMi4xNjMtMi42MjkgMy44ODIgMCAxLjQ5Ni44MDcgMi44ODggMi4xMDcgMy42M2wyLjcxNSAxLjU1MWMtMy4wMDQgMS4wNDktNi4yMTUgMS42MjEtOS41MzcgMS42NTNsLTUuMDg2LTMuMzkxYy0uMTI0LS4wODItLjE5OS0uMjIxLS4xOTktLjM3MSAwLS4yMTkuMTU3LS40MDQuMzc0LS40NGwzLjQzNS0uNTcyYzEuMjY5LS4yMTMgMi4xOTEtMS4zMDIgMi4xOTEtMi41OSAwLTEuNDQ3LTEuMTc3LTIuNjI0LTIuNjI0LTIuNjI0aC0yMC42MDVjLTIuOTg5LTMuMzY3LTUuMjU2LTcuNDMtNi40ODYtMTJ6bTE0LjUwMyAyMC4yNjIgMi4yMyAxLjQ4N2MtNi4zMjktLjc4NC0xMi4xMDUtMy41NDgtMTYuNjA3LTcuNzQ5aDE4LjY2NGMuMzQ0IDAgLjYyNC4yOC42MjQuNjI0IDAgLjMwNy0uMjE5LjU2NS0uNTIxLjYxNmwtMy40MzQuNTcyYy0xLjE4NS4xOTgtMi4wNDUgMS4yMTItMi4wNDUgMi40MTQgMCAuODE5LjQwNyAxLjU4MSAxLjA4OSAyLjAzNnptMTguMTAzLS44NzUtNC4wOTMtMi4zMzljLS42NzgtLjM4OC0xLjA5OS0xLjExMy0xLjA5OS0xLjg5NCAwLS44OTcuNTM5LTEuNjkyIDEuMzcyLTIuMDI1bDYuMjc1LTIuNTExYzEuNDI5LS41NzEgMi4zNTMtMS45MzUgMi4zNTMtMy40NzUgMC0xLjcyMS0xLjE2Ni0zLjIxNC0yLjgzNS0zLjYzMmwtNC4yMi0xLjA1NWMtLjU1Ny0uMTQtLjk0NS0uNjM3LS45NDUtMS4yMSAwLS42ODcuNTU5LTEuMjQ2IDEuMjQ2LTEuMjQ2aDE4LjQ2OGMtMi4zNzYgOC44MjgtOC41NjUgMTUuODE0LTE2LjUyMiAxOS4zODd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDE3aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgMjFoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MyAxN2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDE5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgMjNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSAxN2gydjJoLTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",hfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik01MTEuOTc2LDQxNi4wNjNjLTAuMDA1LTAuMDc1LTAuMDA0LTAuMTQ5LTAuMDExLTAuMjI0Yy0wLjAyNy0wLjI5Ny0wLjA3LTAuNTg4LTAuMTMxLTAuODczCgkJYy0wLjAwNi0wLjAyOC0wLjAxNS0wLjA1Ni0wLjAyMi0wLjA4NGMtMC4wNTktMC4yNjItMC4xMzItMC41MTgtMC4yMTgtMC43NjhjLTAuMDIzLTAuMDY3LTAuMDQ4LTAuMTMyLTAuMDczLTAuMTk4CgkJYy0wLjA4NC0wLjIyNy0wLjE3OS0wLjQ0OC0wLjI4NC0wLjY2M2MtMC4wMTgtMC4wMzgtMC4wMy0wLjA3Ny0wLjA0OS0wLjExNWwtNDAuMTEyLTc5LjExOFY3My43MgoJCWMwLTguMDA2LTYuNTEzLTE0LjUxOS0xNC41MTktMTQuNTE5SDU1LjQ0MWMtOC4wMDYsMC0xNC41MTksNi41MTMtMTQuNTE5LDE0LjUxOXYyNjAuMjk4TDAuODExLDQxMy4xMzcKCQljLTAuMDE5LDAuMDM4LTAuMDMxLDAuMDc3LTAuMDQ5LDAuMTE1Yy0wLjEwNSwwLjIxNS0wLjE5OSwwLjQzNi0wLjI4NCwwLjY2MmMtMC4wMjUsMC4wNjYtMC4wNSwwLjEzMi0wLjA3MywwLjE5OQoJCWMtMC4wODUsMC4yNTEtMC4xNTksMC41MDgtMC4yMTgsMC43N2MtMC4wMDYsMC4wMjctMC4wMTUsMC4wNTQtMC4wMjEsMC4wODFjLTAuMDYxLDAuMjg2LTAuMTA0LDAuNTc3LTAuMTMxLDAuODc0CgkJYy0wLjAwNywwLjA3NC0wLjAwNywwLjE0OS0wLjAxMSwwLjIyM0MwLjAxNCw0MTYuMjE3LDAsNDE2LjM3MSwwLDQxNi41Mjl2MTkuMDI2YzAsOS41MDksNy43MzUsMTcuMjQ0LDE3LjI0NCwxNy4yNDRoNDc3LjUxMgoJCWM5LjUwOSwwLDE3LjI0NC03LjczNSwxNy4yNDQtMTcuMjQ0di0xOS4wMjZDNTEyLDQxNi4zNzEsNTExLjk4Niw0MTYuMjE3LDUxMS45NzYsNDE2LjA2M3ogTTU1LjkyMyw3NC4yMDNoNDAwLjE1NHYyNTQuMTA5CgkJSDU1LjkyM1Y3NC4yMDN6IE01My4wMjksMzQzLjMxMUg0NTguOTdsMzMuMzE4LDY1LjcxN2gtMTY0Ljc4bC04LjI3MS0yOS45ODljLTEuNjg0LTYuMTA1LTcuMjgyLTEwLjM2OS0xMy42MTUtMTAuMzY5aC05OS4yNDYKCQljLTYuMzMzLDAtMTEuOTMyLDQuMjY0LTEzLjYxNSwxMC4zNjhsLTguMjcxLDI5Ljk5SDE5LjcxMUw1My4wMjksMzQzLjMxMXogTTMxMS45NDgsNDA5LjAyOUgyMDAuMDUybDYuOTkzLTI1LjM1OGg5Ny45MQoJCUwzMTEuOTQ4LDQwOS4wMjl6IE00OTcsNDM1LjU1NGMwLDEuMjM3LTEuMDA3LDIuMjQ0LTIuMjQ0LDIuMjQ0SDE3LjI0NGMtMS4yMzcsMC0yLjI0NC0xLjAwNy0yLjI0NC0yLjI0NHYtMTEuNTI2aDQ4MlY0MzUuNTU0eiIKCQkvPgoJPHBhdGggZD0iTTQzMi41NzcsMjEzLjc1NmMtNC4xNDMsMC03LjUsMy4zNTctNy41LDcuNXY3Ni4wNTVIODYuOTIzdi03Ni4wNTVjMC00LjE0My0zLjM1Ny03LjUtNy41LTcuNQoJCQljLTQuMTQzLDAtNy41LDMuMzU3LTcuNSw3LjV2NzkuMjk0YzAsNi40ODUsNS4yNzUsMTEuNzYxLDExLjc2MSwxMS43NjFoMzQ0LjYzM2M2LjQ4NSwwLDExLjc2MS01LjI3NSwxMS43NjEtMTEuNzYxdi03OS4yOTQKCQkJQzQ0MC4wNzcsMjE3LjExNSw0MzYuNzIsMjEzLjc1Niw0MzIuNTc3LDIxMy43NTZ6Ii8+Cgk8cGF0aCBkPSJNNDI4LjMxNiw5MC4yMDNIODMuNjg0Yy02LjQ4NSwwLTExLjc2MSw1LjI3NS0xMS43NjEsMTEuNzYxdjc5LjI5NGMwLDQuMTQzLDMuMzU3LDcuNSw3LjUsNy41YzQuMTQzLDAsNy41LTMuMzU3LDcuNS03LjUKCQkJdi03Ni4wNTVoMzM4LjE1NHY3Ni4wNTVjMCw0LjE0MywzLjM1Nyw3LjUsNy41LDcuNXM3LjUtMy4zNTcsNy41LTcuNXYtNzkuMjk0QzQ0MC4wNzcsOTUuNDc3LDQzNC44MDIsOTAuMjAzLDQyOC4zMTYsOTAuMjAzeiIvPgo8L2c+Cjwvc3ZnPgo=",zfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE2NC4zOTkgMjA1Ljg3MmM0LjA5OS42NjQgOC4yMDYtMS4yNzMgMTAuMjg0LTQuOTFsNjAtMTA1YzEuNzY5LTMuMDk1IDEuNzU2LTYuODk3LS4wMzMtOS45OHMtNS4wODUtNC45ODEtOC42NDktNC45ODFoLTM2LjY4MmwtMTMuNDg2LTcyLjgyMWMtLjc3Mi00LjE2OS00LjA4OS03LjM5OC04LjI3Ny04LjA1OC00LjE4NS0uNjYtOC4zMzcgMS4zOTQtMTAuMzUzIDUuMTIzbC02MCAxMTFjLTEuNjc1IDMuMDk5LTEuNTk3IDYuODUxLjIwOCA5Ljg3NiAxLjgwNCAzLjAyNSA1LjA2NiA0Ljg3OSA4LjU4OSA0Ljg3OWgzNi44MDJsMTMuMzkzIDY2Ljk2MWMuODE3IDQuMDkgNC4wODggNy4yNDIgOC4yMDQgNy45MTF6bS0xMy4zOTktOTQuODcxaC0yOC4yMjhsMzguNTU0LTcxLjMyMyA5Ljg0MSA1My4xNDRjLjg3OCA0Ljc0IDUuMDEzIDguMTc5IDkuODMzIDguMTc5aDI3Ljc2OWwtMzguMiA2Ni44NS05Ljc2My00OC44MTFjLS45MzUtNC42NzQtNS4wMzktOC4wMzktOS44MDYtOC4wMzl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwIDQ1OS4wMDFjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoMjZjNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBoLTU2di02OGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHY2OGgtNDB2LTIyM2g0MHY2NWMwIDUuNTIzIDQuNDc4IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi03NWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHYyMzNoLTQwdi0xNzNjMC01LjUyMy00LjQ3OC0xMC0xMC0xMGgtNjBjLTUuNTIyIDAtMTAgNC40NzctMTAgMTB2MTczaC00MHYtMTEzYzAtNS41MjMtNC40NzgtMTAtMTAtMTBoLTYwYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwdjExM2gtNzN2LTQ0OWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHYyNmgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDN6bTI1Ni0xNjNoNDB2MTYzaC00MHptLTEyMCA2MGg0MHYxMDNoLTQweiIvPgogICAgICAgIDxwYXRoIGQ9Im00MzYgMTQ2LjAwMWM1LjUyMiAwIDEwLTQuNDc3IDEwLTEwdi02MGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgzNS44NTdsLTEwMCAxMDBoLTU1Ljg1N2MtMi42NTIgMC01LjE5NSAxLjA1NC03LjA3MSAyLjkyOWwtOTAgOTBjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAzLjkwNyAzLjkwNSAxMC4yMzYgMy45MDQgMTQuMTQzIDBsODcuMDcxLTg3LjA3MWg1NS44NTdjMi42NTIgMCA1LjE5NS0xLjA1NCA3LjA3MS0yLjkyOWwxMDIuOTI5LTEwMi45M3YzNS44NTdjMCA1LjUyNCA0LjQ3OCAxMC4wMDEgMTAgMTAuMDAxeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjQzNiIgY3k9IjM0Ni4wMDEiIHI9IjEwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",wfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHJlY3QgeD0iMjE2IiB5PSI4OC40ODkiIHdpZHRoPSI4MCIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjIxNiIgeT0iNjIuNDg5IiB3aWR0aD0iODAiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cGF0aCBkPSJNMzAsNTIuNDk0djkuMjg1Yy0yLjM0Ny0wLjgzMi00Ljg3Mi0xLjI4NS03LjUtMS4yODVjLTEyLjQwNiwwLTIyLjUsMTAuMDkzLTIyLjUsMjIuNWMwLDEyLjQwNywxMC4wOTQsMjIuNSwyMi41LDIyLjUKCQkJYzIuNjI4LDAsNS4xNTMtMC40NTMsNy41LTEuMjg1djM1NS4yOThoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NWMyLjg5OS0xLjc1NSw0LjgxNC0yLjkxNSw5LjMyNS0yLjkxNQoJCQljNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1YzguNjk4LDAsMTMuMzU0LTIuODE5LDE3LjA5NC01LjA4NQoJCQljMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1YzMuNzQsMi4yNjYsOC4zOTUsNS4wODUsMTcuMDkzLDUuMDg1CgkJCXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1YzQuNTEsMCw2LjQyNSwxLjE2LDkuMzIyLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTN2LTQwN0gzMHogTTIyLjUsOTAuNDk0Yy00LjEzNiwwLTcuNS0zLjM2NC03LjUtNy41YzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjUKCQkJczcuNSwzLjM2NCw3LjUsNy41QzMwLDg3LjEzLDI2LjYzNiw5MC40OTQsMjIuNSw5MC40OTR6IE0xODguNSw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTIxNi43OWgtMTV2MjIyLjk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFoNDYuMjVWNDQyLjY2NHoiLz4KICAgICAgICA8cmVjdCB4PSIxNTcuMjUiIHk9IjEzNi45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjE1Ny4yNSIgeT0iMTExLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTU3LjI1IiB5PSI4Ni45OTQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9Ijk3LjI1IiB5PSIxMzAuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iNjYiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iMTA1Ljk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iNDM1Ljc1IiB5PSIxMTMuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI0MzUuNzUiIHk9IjEzOC45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjQzNS43NSIgeT0iODguOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjE1NS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjEwNS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iMTMwLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4OS41LDYwLjQ5NGMtMi42MjgsMC01LjE1MywwLjQ1My03LjUsMS4yODV2LTkuMjg1SDMwOC41djQwNy4wMTNoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NQoJCQljMi44OTktMS43NTUsNC44MTQtMi45MTUsOS4zMjUtMi45MTVjNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1CgkJCWM4LjY5OCwwLDEzLjM1NC0yLjgxOSwxNy4wOTQtNS4wODVjMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk1LDUuMDg1LDE3LjA5Myw1LjA4NXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1CgkJCWM0LjUxLDAsNi40MjUsMS4xNiw5LjMyMiwyLjkxNWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTNWMTA0LjIwOGMyLjM0NywwLjgzMiw0Ljg3MiwxLjI4NSw3LjUsMS4yODUKCQkJYzEyLjQwNiwwLDIyLjUtMTAuMDkzLDIyLjUtMjIuNUM1MTIsNzAuNTg1LDUwMS45MDYsNjAuNDk0LDQ4OS41LDYwLjQ5NHogTTQ2Nyw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTI1MC43OWgtMTV2MjU2Ljk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFINDY3VjQ0Mi42NjR6IE00ODkuNSw5MC40OTRjLTQuMTM2LDAtNy41LTMuMzY0LTcuNS03LjUKCQkJYzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjVzNy41LDMuMzY0LDcuNSw3LjVDNDk3LDg3LjEzLDQ5My42MzYsOTAuNDk0LDQ4OS41LDkwLjQ5NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Cfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDIgMTJjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTItNGMwIDEuMTAzLS44OTcgMi0yIDJzLTItLjg5Ny0yLTJjMC0uMTc4LjAzMS0uMzQ3LjA3NS0uNTExbDEuMjE4IDEuMjE4IDEuNDE0LTEuNDE0LTEuMjE4LTEuMjE4Yy4xNjQtLjA0NC4zMzMtLjA3NS41MTEtLjA3NSAxLjEwMyAwIDIgLjg5NyAyIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTQtMS43OTQtNC00LTR6bTAgNmMtMS4xMDMgMC0yLS44OTctMi0ycy44OTctMiAyLTJjLjE3OCAwIC4zNDcuMDMxLjUxMS4wNzVsLTEuMjE4IDEuMjE4IDEuNDE0IDEuNDE0IDEuMjE4LTEuMjE4Yy4wNDQuMTY0LjA3NS4zMzMuMDc1LjUxMSAwIDEuMTAzLS44OTcgMi0yIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUxIDEyaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTNoLTJjLTEuNjU0IDAtMyAxLjM0Ni0zIDNzMS4zNDYgMyAzIDN6bTAtNGgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxaC0yYy0uNTUxIDAtMS0uNDQ5LTEtMXMuNDQ5LTEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMyA2aC0yYy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTN6bTAgNGgtMmMtLjU1MSAwLTEtLjQ0OS0xLTFzLjQ0OS0xIDEtMWgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im02Mi45OTcgNThjMC0uMTYzLS4wMzctLjMyNi0uMTE3LS40NzRsLTIuODgtNS4zNDl2LTM4LjE3Ny0xMGMwLTEuNjU0LTEuMzQ2LTMtMy0zaC01MGMtMS42NTQgMC0zIDEuMzQ2LTMgM3YxMCAzOC4xNzdsLTIuODggNS4zNDljLS4wOC4xNDgtLjExNy4zMTEtLjExNy40NzRoLS4wMDN2MmMwIDEuNjU0IDEuMzQ2IDMgMyAzaDU2YzEuNjU0IDAgMy0xLjM0NiAzLTN2LTJ6bS02Ljk5Ny0xMy4yNTF2LTI5Ljc0OWgydjMzLjQ2M3ptLTQxLjkzMS0yLjc0OWMuMTg5IDEuNTAyLjc5MiAyLjg3NSAxLjY5NSA0aC0yLjc2NHYtNHptMzYuOTMxIDB2NGgtMi43NjVjLjkwNC0xLjEyNSAxLjUwNy0yLjQ5OCAxLjY5NS00em0tNS42OSA0aC0uMzF2LTIuMzgyYy40MDItLjQ2LjctMS4wMDkuODU4LTEuNjE4aDIuMDUyYy0uMjgyIDEuNjY2LTEuMjQ2IDMuMTAxLTIuNiA0em0tOC4zMS0xLjY5di0yLjMxaDEuMTQyYy40NDcgMS43MjEgMiAzIDMuODU4IDMgLjM0NyAwIC42NzgtLjA1OCAxLS4xNDJ2MS4xNDJoLTQuMzFjLS42Ny0uNDQ1LTEuMjQ1LTEuMDItMS42OS0xLjY5em0zLjI3OC00LjMxYy4zNDctLjU5NS45ODUtMSAxLjcyMi0xczEuMzc1LjQwNSAxLjcyMiAxem0yLjcyMiAydi43MjJjLS4yOTUuMTcyLS42MzQuMjc4LTEgLjI3OC0uNzM3IDAtMS4zNzUtLjQwNS0xLjcyMi0xem0yLjg1OC0yYy0uNDQ3LTEuNzIxLTItMy0zLjg1OC0zcy0zLjQxMSAxLjI3OS0zLjg1OCAzaC0yLjA1MmMuNDc4LTIuODMzIDIuOTQyLTUgNS45MS01czUuNDMxIDIuMTY3IDUuOTEgNXptLTExLjcyNS03LjA4NGMuNTEzLTIuNzkyIDIuOTU5LTQuOTE2IDUuODk3LTQuOTE2IDEuNjEgMCAzLjA2NS42MzEgNC4xNDMgMS42Ni0uOTczLS40MjMtMi4wNDYtLjY2LTMuMTczLS42Ni0yLjkxOCAwLTUuNDY5IDEuNTc2LTYuODY3IDMuOTE2em0uODY3IDQuMDg0YzAtMy4zMDkgMi42OTEtNiA2LTYgMi4zMzUgMCA0LjM1NyAxLjM0MyA1LjM0OCAzLjI5NC0xLjI1My0uODE1LTIuNzQ1LTEuMjk0LTQuMzQ4LTEuMjk0LTMuMDA0IDAtNS42MjQgMS42NjctNi45OTIgNC4xMjItLjAwMS0uMDQxLS4wMDgtLjA4MS0uMDA4LS4xMjJ6bS0uOTMxIDVjLjEyOSAxLjAyNy40NDkgMS45OTYuOTMxIDIuODY0djEuMTM2aC02di0xLjEzNmMuNDgyLS44NjkuODAyLTEuODM3LjkzMS0yLjg2NHptLTEzLjA2OSA0di0xLjE0MmMuMzIyLjA4NC42NTMuMTQyIDEgLjE0MiAxLjg1OCAwIDMuNDExLTEuMjc5IDMuODU4LTNoMS4xNDJ2Mi4zMWMtLjQ0NS42Ny0xLjAyIDEuMjQ1LTEuNjkgMS42OXptMC00aDIuNzIyYy0uMzQ3LjU5NS0uOTg1IDEtMS43MjIgMS0uMzY2IDAtLjcwNS0uMTA2LTEtLjI3OHptLS43MjItMmMuMzQ3LS41OTUuOTg1LTEgMS43MjItMXMxLjM3NS40MDUgMS43MjIgMXptOC43MTQtMi44NzhjLTEuMzY4LTIuNDU1LTMuOTg4LTQuMTIyLTYuOTkyLTQuMTIyLTEuNjAzIDAtMy4wOTUuNDc5LTQuMzQ4IDEuMjk0Ljk5MS0xLjk1MSAzLjAxMy0zLjI5NCA1LjM0OC0zLjI5NCAzLjMwOSAwIDYgMi42OTEgNiA2IDAgLjA0MS0uMDA3LjA4MS0uMDA4LjEyMnptLTUuOTkyLTguMTIyYy0xLjEwNiAwLTIuMTYuMjI2LTMuMTE5LjYzNCAxLjA3Ni0xLjAxNSAyLjUyMi0xLjYzNCA0LjExOS0xLjYzNCAyLjk2MSAwIDUuNDIyIDIuMTU4IDUuOTA3IDQuOTgzLTEuMzg4LTIuMzc4LTMuOTYxLTMuOTgzLTYuOTA3LTMuOTgzem0tMSA2YzIuOTY3IDAgNS40MzEgMi4xNjcgNS45MSA1aC0yLjA1MmMtLjQ0Ny0xLjcyMS0yLTMtMy44NTgtM3MtMy40MTEgMS4yNzktMy44NTggM2gtMi4wNTJjLjQ3OS0yLjgzMyAyLjk0My01IDUuOTEtNXptLTMuODU4IDdjLjE1OC42MDkuNDU2IDEuMTU3Ljg1OCAxLjYxOHYyLjM4MmgtLjMxYy0xLjM1NC0uODk5LTIuMzE5LTIuMzM0LTIuNi00em0tNS4xNDIgNmg1LjEzNmMuMjc4LjE1NC41NjcuMjkuODY0LjQxMXYzLjU4OWgtNnptOCAuOTMxYy4zMjguMDQxLjY2MS4wNjkgMSAuMDY5IDEuNDAxIDAgMi43MTgtLjM2NCAzLjg2NC0xaDEuMTM2djRoLTZ6bTgtLjkzMWg2djRoLTZ6bTggMGgxLjEzNmMxLjE0Ny42MzYgMi40NjMgMSAzLjg2NCAxIC4zMzkgMCAuNjcyLS4wMjggMS0uMDY5djMuMDY5aC02em04IC40MTFjLjI5Ny0uMTIxLjU4Ni0uMjU3Ljg2NC0uNDExaDUuMTM2djRoLTZ6bTcuOTY4LTcuNTcyLjAxOS0uMDAzLTIuNzc0LTE2LjY0M2MtLjIxMi0xLjI3MS0xLjMwMS0yLjE5My0yLjU4OS0yLjE5My0xLjQ0NyAwLTIuNjI0IDEuMTc3LTIuNjI0IDIuNjI0djEuMzc2aDJ2LTEuMzc2YzAtLjM0NC4yOC0uNjI0LjYyNC0uNjI0LjMwNyAwIC41NjUuMjE5LjYxNi41MjFsMi41OCAxNS40NzloLS44ODljLS4xMjktMS4wMy0uNDUxLTItLjkzNC0yLjg3IDAtLjA0NC4wMDMtLjA4Ni4wMDMtLjEzIDAtMS40Mi0uMzc2LTIuNzUxLTEuMDI3LTMuOTA4LS40NTctNC4wNTQtMy44NDEtNy4wOTItNy45NDMtNy4wOTItNC40MTEgMC04IDMuNTg5LTggOCAwIDEuMzczLjM2NCAyLjcxMyAxLjAzMSAzLjkwNC4wODIuNzIxLjI2MSAxLjQyNS41MzIgMi4wOTZoLTMuMTg3Yy4yNjMtLjY1LjQ0Mi0xLjMzLjUyNy0yLjAyOC42OTItMS4yMDggMS4wNjctMi41NzQgMS4wNjctMy45NzIgMC00LjQxMS0zLjU4OS04LTgtOC00LjA4IDAtNy40NDggMy4wMDYtNy45MzQgNy4wMjctLjY3NCAxLjE3Mi0xLjA2NiAyLjUyNi0xLjA2NiAzLjk3MyAwIC4wNDQuMDAzLjA4Ni4wMDQuMTMtLjQ4NC44Ny0uODA1IDEuODQtLjkzNSAyLjg3aC0uODg5bDIuNTgtMTUuNDc5Yy4wNTEtLjMwMi4zMDktLjUyMS42MTYtLjUyMS4zNDQgMCAuNjI0LjI4LjYyNC42MjR2MS4zNzZoMnYtMS4zNzZjMC0xLjQ0Ny0xLjE3Ny0yLjYyNC0yLjYyNC0yLjYyNC0xLjI4OCAwLTIuMzc3LjkyMi0yLjU4OCAyLjE5MmwtMi43NzQgMTYuNjQ0LjAxOS4wMDNjLS4wMS4wNTQtLjAzMy4xMDQtLjAzMy4xNjF2M2gtMXYtMjNoNDR2MjNoLTF2LTNjMC0uMDU3LS4wMjMtLjEwNy0uMDMyLS4xNjF6bTEuMDMyLTI1LjgzOXY0aC00NHYtNHptLTIwLTJoLTR2LTRjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptLTI4LTljMC0uNTUxLjQ0OS0xIDEtMWg1MGMuNTUxIDAgMSAuNDQ5IDEgMXY5aC0yMnYtNGMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY0aC0yMnptMCAxMWgydjI5Ljc0OWwtMiAzLjcxNHptMy41OTcgMzFoMS40MDN2N2MwIC41NTMuNDQ4IDEgMSAxaDQwYy41NTIgMCAxLS40NDcgMS0xdi03aDEuNDAzbDUuOTIzIDExaC01Ni42NTJ6bTUwLjQwMyAxNWgtNTZjLS41NTEgMC0xLS40NDgtMS0xdi0xaDU4djFjMCAuNTUyLS40NDkgMS0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDE2aDR2MmgtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTZoNHYyaC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMSA5aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Ife="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMTMuMjA2IDEwNi4yNjVoLTEzLjYyM3YtODYuMjhhMS43NDkgMS43NDkgMCAwIDAgLTEuNTU0LTEuNzM4bC00Ni01LjE5MmExLjc1IDEuNzUgMCAwIDAgLTEuOTQ2IDEuNzM5djMuNDQxaC0xOS45MTZhMS43NSAxLjc1IDAgMCAwIC0xLjc1IDEuNzV2ODYuMjhoLTEzLjYyM2ExLjc1IDEuNzUgMCAxIDAgMCAzLjVoMzUuMjg5djMuNDQxYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzUgMS42MSAxLjYxIDAgMCAwIC4yLS4wMTFsNDUuOS01LjE4aDE1LjI3NmExLjc1IDEuNzUgMCAwIDAgMC0zLjV6bS04MS4yODktODQuNTNoMTguMTY2djQuNWgtMTEuOTE3YTEuNzUgMS43NSAwIDAgMCAtMS43NSAxLjc1djc4LjI4aC00LjV6bTggODQuNTN2LTc2LjUzaDEwLjE2NnY3Ni41M3ptMTMuNjY2LTg5LjUxMyA0Mi41IDQuOHY4NC45bC00Mi41IDQuOHoiLz4KICAgICAgICA8cGF0aCBkPSJtNjEuMTI1IDU4Ljc5MmE1LjIwOCA1LjIwOCAwIDEgMCA1LjIwOCA1LjIwOCA1LjIxNCA1LjIxNCAwIDAgMCAtNS4yMDgtNS4yMDh6bTAgNi45MTZhMS43MDggMS43MDggMCAxIDEgMS43MDgtMS43MDggMS43MSAxLjcxIDAgMCAxIC0xLjcwOCAxLjcwOHoiLz4KICAgIDwvZz4KPC9zdmc+",pfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQwMS4wNjcsMEgxMTAuOTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2NDk0LjkzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDI5MC4xMzMKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1Y4LjUzM0M0MDkuNiwzLjgxNCw0MDUuNzc3LDAsNDAxLjA2NywweiBNMzkyLjUzMyw0OTQuOTMzSDExOS40NjdWMTcuMDY3aDI3My4wNjdWNDk0LjkzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzY2LjkzMywzNC4xMzNIMTQ1LjA2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjQ2MC44YzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjIxLjg2NwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzdi00NjAuOEMzNzUuNDY3LDM3Ljk0OCwzNzEuNjQ0LDM0LjEzMywzNjYuOTMzLDM0LjEzM3ogTTM1OC40LDQ5NC45MzNIMTUzLjZWNTEuMmgyMDQuOFY0OTQuOTMzegoJCQkiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNDcuMDUzLDAtODUuMzMzLDM4LjI4MS04NS4zMzMsODUuMzMzdjguNTMzYzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTUzLjYKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxNTMuNkMzNDEuMzMzLDEwNi41NDcsMzAzLjA1Myw2OC4yNjcsMjU2LDY4LjI2N3ogTTE4Ny43MzMsMTUzLjYKCQkJYzAtMzcuNjQxLDMwLjYyNi02OC4yNjcsNjguMjY3LTY4LjI2N2MzNy42NDEsMCw2OC4yNjcsMzAuNjI2LDY4LjI2Nyw2OC4yNjdIMTg3LjczM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywxODcuNzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjE5Ni4yNjdDMjQ3LjQ2NywxOTEuNTQ4LDI0My42NDQsMTg3LjczMywyMzguOTMzLDE4Ny43MzN6IE0yMzAuNCwzMDcuMmgtNDIuNjY3VjIwNC44SDIzMC40CgkJCVYzMDcuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMTg3LjczM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMTk2LjI2N0MzNDEuMzMzLDE5MS41NDgsMzM3LjUxLDE4Ny43MzMsMzMyLjgsMTg3LjczM3ogTTMyNC4yNjcsMzA3LjJIMjgxLjZWMjA0LjhoNDIuNjY3VjMwNy4yCgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNDEuMzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjM0OS44NjdDMjQ3LjQ2NywzNDUuMTQ4LDI0My42NDQsMzQxLjMzMywyMzguOTMzLDM0MS4zMzN6IE0yMzAuNCw0NjAuOGgtNDIuNjY3VjM1OC40SDIzMC40CgkJCVY0NjAuOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMzQxLjMzM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMzQ5Ljg2N0MzNDEuMzMzLDM0NS4xNDgsMzM3LjUxLDM0MS4zMzMsMzMyLjgsMzQxLjMzM3ogTTMyNC4yNjcsNDYwLjhIMjgxLjZWMzU4LjRoNDIuNjY3VjQ2MC44CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjg1LjMzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODE0LDguNTMzLTguNTMzVjc2LjgKCQkJQzI2NC41MzMsNzIuMDgxLDI2MC43MSw2OC4yNjcsMjU2LDY4LjI2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzIwLjQzNSw5Ny42OThjLTMuMzI4LTMuMzM2LTguNzMtMy4zMzYtMTIuMDY2LDBMMjQ5Ljk2NywxNTYuMWMtMy4zMzcsMy4zMzctMy4zMzcsOC43MywwLDEyLjA2NgoJCQljMS42NjQsMS42NjQsMy44NDksMi41LDYuMDMzLDIuNWMyLjE4NSwwLDQuMzY5LTAuODM2LDYuMDMzLTIuNWw1OC40MDItNTguNDAyQzMyMy43NzIsMTA2LjQyOCwzMjMuNzcyLDEwMS4wMzUsMzIwLjQzNSw5Ny42OTh6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTI2Mi4wMzMsMTU2LjFMMjAzLjYzMSw5Ny42OWMtMy4zMjgtMy4zMzctOC43My0zLjMzNy0xMi4wNjYsMGMtMy4zMzcsMy4zMzYtMy4zMzcsOC43MywwLDEyLjA2Nmw1OC40MDIsNTguNDExCgkJCWMxLjY2NCwxLjY2NCwzLjg0OSwyLjUsNi4wMzMsMi41YzIuMTg1LDAsNC4zNjktMC44MzYsNi4wMzMtMi41QzI2NS4zNywxNjQuODMsMjY1LjM3LDE1OS40MzcsMjYyLjAzMywxNTYuMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNTkuNzMzLDQ5NC45MzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM0MwLDUwOC4xODYsMy44MjMsNTEyLDguNTMzLDUxMmg1MS4yCgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNjguMjY3LDQ5OC43NDgsNjQuNDQ0LDQ5NC45MzMsNTkuNzMzLDQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsNDk0LjkzM2gtMTAyLjRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDEwMi40CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNTEyLDQ5OC43NDgsNTA4LjE3Nyw0OTQuOTMzLDUwMy40NjcsNDk0LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Afe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjBhOTYgOTYgMCAxIDAgOTYgOTYgOTYuMTA4IDk2LjEwOCAwIDAgMCAtOTYtOTZ6bTAgMTc2YTgwIDgwIDAgMSAxIDgwLTgwIDgwLjA5MSA4MC4wOTEgMCAwIDEgLTgwIDgweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYgMTI4YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjguMTQ1IDEyOC4xNDUgMCAwIDAgLTEyOC0xMjh6bTAgMjQwYTExMiAxMTIgMCAxIDEgMTEyLTExMiAxMTIuMTI3IDExMi4xMjcgMCAwIDEgLTExMiAxMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMiA0ODh2LTQ2NGE4IDggMCAwIDAgLTgtOGgtMzM2YTggOCAwIDAgMCAtOCA4djQ2NGE4IDggMCAwIDAgOCA4aDMzNmE4IDggMCAwIDAgOC04em0tMzM2LTM3NmgzMjB2MzA0aC0zMjB6bTk2LTgwaDE0NHY0MGE4IDggMCAwIDAgOCA4aDcydjE2aC0yMjR6bTIyNCAzMmgtNjR2LTMyaDY0em0tMjQwLTMydjY0aC04MHYtNjR6bS04MCA0NDh2LTQ4aDMyMHY0OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDQwYTI0IDI0IDAgMSAwIDI0IDI0IDI0LjAyNyAyNC4wMjcgMCAwIDAgLTI0LTI0em0wIDMyYTggOCAwIDEgMSA4LTggOC4wMDkgOC4wMDkgMCAwIDEgLTggOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTEyIDU2aDQ4djE2aC00OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDQwaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDcyaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjcyIDIwMGE4IDggMCAwIDAgLTE2IDBjMCA2LjM3My0yLjQxNyA5LjE5MS02LjA3NCAxMy40NTgtNC40MjYgNS4xNTktOS45MjYgMTEuNTgtOS45MjYgMjMuODcyczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTMtNi4wNzQgMTMuNDYxYy00LjQyNiA1LjE1OS05LjkyNiAxMS41ODEtOS45MjYgMjMuODc0YTggOCAwIDAgMCAxNiAwYzAtNi4zNzUgMi40MTctOS4xOTQgNi4wNzQtMTMuNDYyIDQuNDIzLTUuMTU5IDkuOTI2LTExLjU4IDkuOTI2LTIzLjg3M3MtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXMyLjQxNy05LjE5MSA2LjA3NC0xMy40NThjNC40MjYtNS4xNTkgOS45MjYtMTEuNTggOS45MjYtMjMuODcyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTYgMjM3LjMzYzAtNi4zNzMgMi40MTctOS4xOTIgNi4wNzUtMTMuNDYuODEyLS45NDcgMS42MjMtMS45IDIuNDA3LTIuODc4YTggOCAwIDAgMCAtMTIuNS05Ljk4NGMtLjY2OC44MzYtMS4zNjEgMS42NDEtMi4wNTMgMi40NDktNC40MjkgNS4xNTktOS45MjkgMTEuNTgxLTkuOTI5IDIzLjg3M3M1LjUgMTguNzE0IDkuOTI2IDIzLjg3M2MzLjY1NyA0LjI2OCA2LjA3NCA3LjA4NyA2LjA3NCAxMy40NjJzLTIuNDE3IDkuMTk0LTYuMDc1IDEzLjQ2MmMtLjgxMy45NDktMS42MjUgMS45LTIuNDA5IDIuODgxYTggOCAwIDAgMCAxMi41IDkuOTg0Yy42NjgtLjgzNyAxLjM2Mi0xLjY0NCAyLjA1NC0yLjQ1MiA0LjQzLTUuMTYgOS45My0xMS41ODIgOS45My0yMy44NzVzLTUuNS0xOC43MTUtOS45MjYtMjMuODc0Yy0zLjY1Ny00LjI2OC02LjA3NC03LjA5MS02LjA3NC0xMy40NjF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxNiAyMzcuMzNjMC02LjM3MyAyLjQxNy05LjE5MiA2LjA3NS0xMy40Ni44MTItLjk0NyAxLjYyMy0xLjkgMi40MDctMi44NzhhOCA4IDAgMCAwIC0xMi41LTkuOTg0Yy0uNjY4LjgzNi0xLjM2MSAxLjY0MS0yLjA1MyAyLjQ0OS00LjQyOSA1LjE1OS05LjkyOSAxMS41ODEtOS45MjkgMjMuODczczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTQtNi4wNzUgMTMuNDYyYy0uODEzLjk0OS0xLjYyNSAxLjktMi40MDkgMi44ODFhOCA4IDAgMCAwIDEyLjUgOS45ODRjLjY2OC0uODM3IDEuMzYyLTEuNjQ0IDIuMDU0LTIuNDUyIDQuNDMtNS4xNiA5LjkzLTExLjU4MiA5LjkzLTIzLjg3NXMtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXoiLz4KICAgIDwvZz4KPC9zdmc+",mfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3Ni4wNjUgNDc2LjA2NSI+CjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+Cgk8cGF0aCBkPSJNNDMyLjU1OCwxNzIuMDJDNDE5LjMwMyw2NC41ODcsMzIxLjQ2Ni0xMS43NiwyMTQuMDMzLDEuNDk1UzMwLjI1MywxMTIuNTg3LDQzLjUwOCwyMjAuMDIKCQljMTEuMDA4LDg5LjIyMiw4MS4zMDMsMTU5LjUxNywxNzAuNTI1LDE3MC41MjV2MzcuNTJoLTU2Yy0xMy4yNTUsMC0yNCwxMC43NDUtMjQsMjR2MjRoMjA4di0yNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTU2CgkJdi0zNy41MkMzNjkuNDY2LDM3Ny4yOSw0NDUuODEzLDI3OS40NTMsNDMyLjU1OCwxNzIuMDJ6IE0zMTguMDMzLDQ0NC4wNjVjNC40MTgsMCw4LDMuNTgyLDgsOHY4aC0xNzZ2LThjMC00LjQxOCwzLjU4Mi04LDgtOAoJCUgzMTguMDMzeiBNMjMwLjAzMyw0MjguMDY1di0zMmgxNnYzMkgyMzAuMDMzeiBNMjM4LjAzMywzNzYuMDY1Yy05OS40MTEsMC0xODAtODAuNTg5LTE4MC0xODAKCQljMC4xMTUtOTkuMzY0LDgwLjYzNi0xNzkuODg1LDE4MC0xODBjOTkuNDExLDAsMTgwLDgwLjU4OSwxODAsMTgwUzMzNy40NDQsMzc2LjA2NSwyMzguMDMzLDM3Ni4wNjV6Ii8+Cgk8cGF0aCBkPSJNNDA2LjAzMywyMTIuMDY1di0xNmMwLTQuNDE4LTMuNTgyLTgtOC04aC05My41MzZjMzkuOC0yNy44MzIsNDkuNTAyLTgyLjY1OCwyMS42Ny0xMjIuNDU4CgkJYy0xNi40NjctMjMuNTQ4LTQzLjQtMzcuNTY1LTcyLjEzNC0zNy41NDJoLTE2Yy00LjQxOCwwLTgsMy41ODItOCw4djkzLjUzNmMtMjcuODMyLTM5LjgtODIuNjU4LTQ5LjUwMi0xMjIuNDU4LTIxLjY3CgkJYy0yMy41NDgsMTYuNDY3LTM3LjU2NSw0My40LTM3LjU0Miw3Mi4xMzR2MTZjMCw0LjQxOCwzLjU4Miw4LDgsOGg5My41MzZjLTIzLjQ2NSwxNi40NzgtMzcuNDYzLDQzLjMyOC0zNy41MzYsNzIKCQljMC4wNTcsNDguNTc3LDM5LjQyMyw4Ny45NDMsODgsODhoMTZjNC40MTgsMCw4LTMuNTgyLDgtOHYtOTMuNTM2YzI3LjgzMiwzOS44LDgyLjY1OCw0OS41MDIsMTIyLjQ1OCwyMS42NwoJCUMzOTIuMDM4LDI2Ny43MzMsNDA2LjA1NiwyNDAuOCw0MDYuMDMzLDIxMi4wNjV6IE0yNDYuMDMzLDQ0LjA2NWg4YzM5Ljc2NCwwLjA1NSw3MS45NTUsMzIuMzM2LDcxLjksNzIuMQoJCWMtMC4wNDMsMzEuMTctMjAuMTM4LDU4Ljc3Mi00OS43ODgsNjguMzg4Yy00LjIwMi0xNC4wNTItMTUuNzU4LTI0LjY3Ny0zMC4xMTItMjcuNjg4VjQ0LjA2NXogTTg2LjAzMywxODguMDY1di04CgkJYzAuMDczLTM5Ljc2NCwzMi4zNjgtNzEuOTQsNzIuMTMzLTcxLjg2N2MzMS4xNDgsMC4wNTcsNTguNzI3LDIwLjEzOCw2OC4zNDcsNDkuNzYzYy0xNC4wNDcsNC4yMDMtMjQuNjY4LDE1Ljc1NS0yNy42OCwzMC4xMDQKCQlIODYuMDMzeiBNMjMwLjAzMywzNDguMDY1aC04Yy0zOS43NjQtMC4wNTUtNzEuOTU1LTMyLjMzNi03MS45LTcyLjFjMC4wNDMtMzEuMTcsMjAuMTM4LTU4Ljc3Miw0OS43ODgtNjguMzg4CgkJYzQuMjAyLDE0LjA1MiwxNS43NTgsMjQuNjc3LDMwLjExMiwyNy42ODhWMzQ4LjA2NXogTTIzOC4wMzMsMjIwLjA2NWMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNAoJCXMyNCwxMC43NDUsMjQsMjRTMjUxLjI4NywyMjAuMDY1LDIzOC4wMzMsMjIwLjA2NXogTTMxNy45LDI4My45MzJjLTMxLjE0OC0wLjA1Ny01OC43MjctMjAuMTM4LTY4LjM0Ny00OS43NjMKCQljMTQuMDQ3LTQuMjAzLDI0LjY2OC0xNS43NTUsMjcuNjgtMzAuMTA0aDExMi44djhDMzg5Ljk1OSwyNTEuODMsMzU3LjY2NCwyODQuMDA2LDMxNy45LDI4My45MzJ6Ii8+CjwvZz4KPC9zdmc+Cg==",Ofe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk5LDEyNi4wMDFoLTAuMDI3YzYuMjkyLTguMzYyLDEwLjAyNy0xOC43NTIsMTAuMDI3LTMwYzAtMjcuNTctMjIuNDMtNTAuMDAxLTUwLTUwLjAwMQoJCXMtNTAuMDAxLDIyLjQzLTUwLjAwMSw1MC4wMDFjMCwxMS4yNDgsMy43MzYsMjEuNjM4LDEwLjAyNywzMGgtMC4wMjdjLTUuNTIyLDAtMTAsNC40NzctMTAsMTB2MzUuNTQ1CgkJYy0xMS4zMjgtNy4yMzMtMjMuMTI4LTEzLjY1OC0zNS4zMzQtMTkuMjQxdi0xNi4zMDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAsNC40NzctMTAsMTB2OC4wMzcKCQljLTMuMzY5LTEuMjQ3LTYuNzY0LTIuNDM4LTEwLjE4Ni0zLjU2MmMtOC4yOTEtMi43MjMtMTYuNjgzLTUuMDUyLTI1LjE0Ni03LjAxMXYtMjAuODMzYzAtNS41MjMtNC40NzgtMTAtMTAtMTAKCQljLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTYuOTMyYy0xMS42OC0xLjg0OS0yMy40NzQtMi45NzQtMzUuMzMyLTMuMzgxVjk2LjAwMWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJdjMwLjE4M2MtMTEuODU5LDAuNDA3LTIzLjY1MywxLjUzMi0zNS4zMzMsMy4zODF2LTE2LjkzMmMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjIwLjgzMwoJCWMtOC40NjIsMS45NTktMTYuODUyLDQuMjg3LTI1LjE0Miw3LjAwOWMtMy40MjQsMS4xMjQtNi44MTksMi4zMTYtMTAuMTkxLDMuNTYzdi04LjAzN2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwCgkJYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjE2LjMwNGMtMTIuMjA1LDUuNTgzLTI0LjAwNCwxMi4wMDctMzUuMzM0LDE5LjI0di0zNS41NDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMC4wMjcKCQljNi4yOTMtOC4zNjIsMTAuMDI3LTE4Ljc1MiwxMC4wMjctMzBjMC0yNy41Ny0yMi40My01MC01MC01MHMtNTAsMjIuNDMtNTAsNTBjMCwxMS4yNDgsMy43MzQsMjEuNjM4LDEwLjAyNywzMEgxMAoJCWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYzMTkuOTk5YzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDBoNDBoMzEuMDMzYzUuNTIyLDAsMTAtNC40NzcsMTAtMTBjMC01LjUyMi00LjQ3OC0xMC0xMC0xMEgxMDAKCQl2LTIwLjAwMWgzMTEuOTk4djIwLjAwMWgtMjEuMDMzYy01LjUyMywwLTEwLDQuNDc4LTEwLDEwYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoMzEuMDMzaDQwLjAwMWg0MGM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwCgkJVjEzNi4wMDFDNTExLjk5OSwxMzAuNDc3LDUwNy41MjEsMTI2LjAwMSw1MDEuOTk5LDEyNi4wMDF6IE04MCw0NDUuOTk5SDUwSDIwVjE0Ni4wMDFoMjB2NDEuODk4YzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQlzMTAtNC40NzcsMTAtMTB2LTQxLjg5OGgyMFY0NDUuOTk5eiBNNTAsMTI2LjAwMWMtMTYuNTQzLDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1Ny0zMCwzMC0zMGMxNi41NDMsMCwzMCwxMy40NTgsMzAsMzAKCQlTNjYuNTQzLDEyNi4wMDEsNTAsMTI2LjAwMXogTTEzNS4zMzQsNDA1Ljk5OEgxMDBWMTk1LjYyOWMxMS4zMTgtOC4wMiwyMy4xMjYtMTUuMDk1LDM1LjMzNC0yMS4yMThWNDA1Ljk5OHogTTE5MC42NjcsNDA2CgkJaC0zNS4zMzNWMTY1LjM4NGMxMS41LTQuNjMsMjMuMjk4LTguNDQ5LDM1LjMzMy0xMS40MzdWNDA2eiBNMjQ2LDQwNmgtMzUuMzMzVjE0OS43ODdjMTEuNjE0LTEuOTU4LDIzLjQwOS0zLjE2OCwzNS4zMzMtMy41OTkKCQlWNDA2eiBNMzAxLjMzMiw0MDUuOTk4SDI2NnYtMjU5LjgxYzExLjkyNCwwLjQzMSwyMy43MTcsMS42NDEsMzUuMzMyLDMuNTk5VjQwNS45OTh6IE0zNTYuNjY0LDQwNS45OTloLTM1LjMzMlYxNTMuOTQ4CgkJYzEyLjAzNSwyLjk4OCwyMy44MzIsNi44MDcsMzUuMzMyLDExLjQzOFY0MDUuOTk5eiBNNDExLjk5OCw0MDUuOTk4aC0zNS4zMzRWMTc0LjQxMmMxMi4yMDksNi4xMjMsMjQuMDE3LDEzLjIsMzUuMzM0LDIxLjIyCgkJVjQwNS45OTh6IE00OTEuOTk5LDQ0NS45OTloLTMwaC0zMC4wMDFWMTQ2LjAwMWgyMC4wMDF2NDEuODk4YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtNDEuODk4aDIwCgkJVjQ0NS45OTl6IE00NjEuOTk5LDEyNi4wMDFjLTE2LjU0MiwwLTMwLjAwMS0xMy40NTgtMzAuMDAxLTMwYzAtMTYuNTQzLDEzLjQ1OS0zMC4wMDEsMzAuMDAxLTMwLjAwMQoJCWMxNi41NDIsMCwzMCwxMy40NTgsMzAsMzAuMDAxQzQ5MS45OTksMTEyLjU0Miw0NzguNTQxLDEyNi4wMDEsNDYxLjk5OSwxMjYuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTAsNDQ1Ljk5OWgtMC4yMzZjLTUuNTIzLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMEgxNTBjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCUMxNjAsNDUwLjQ3NywxNTUuNTIzLDQ0NS45OTksMTUwLDQ0NS45OTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Mi4yMzQsNDQ1Ljk5OWgtMC4yMzdjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3OCwxMCwxMCwxMGgwLjIzN2M1LjUyMywwLDEwLTQuNDc3LDEwLTEwCgkJQzM3Mi4yMzQsNDUwLjQ3NywzNjcuNzU4LDQ0NS45OTksMzYyLjIzNCw0NDUuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MCwyMDYuNjMxYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzcsMTAsMTAsMTBzMTAtNC40NzcsMTAtMTB2LTAuMjM1CgkJQzYwLDIxMS4xMDgsNTUuNTIzLDIwNi42MzEsNTAsMjA2LjYzMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjk5OSwyMDYuNjMxYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtMC4yMzUKCQlDNDcxLjk5OSwyMTEuMTA4LDQ2Ny41MjEsMjA2LjYzMSw0NjEuOTk5LDIwNi42MzF6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Efe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuMDA1LDEwOC4wMDNjLTEzLjI1NSwwLTI0LDEwLjc0NS0yNCwyNGMwLDQuNDE4LDMuNTgyLDgsOCw4czgtMy41ODIsOC04czMuNTgyLTgsOC04czgtMy41ODIsOC04CgkJCVMxMDguNDIzLDEwOC4wMDMsMTA0LjAwNSwxMDguMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zODUuMzU3LDc2LjExNWwtMjgwLTQ4Yy0wLjQ0Ny0wLjA3My0wLjg5OS0wLjExMS0xLjM1Mi0wLjExMkM0Ni42MTIsMjcuOTU2LDAuMDQ3LDc0LjQ0NCwwLDEzMS44MzcKCQkJYy0wLjAyNiwzMS4wNTksMTMuODQzLDYwLjUwMSwzNy44MDUsODAuMjYxbDU4LjQ0LDIzMy44NDhjMC44OTIsMy41NTksNC4wOTEsNi4wNTYsNy43Niw2LjA1Nmg2NAoJCQljNC40MTgsMC4wMDgsOC4wMDctMy41NjYsOC4wMTUtNy45ODVjMC0wLjE3MS0wLjAwNS0wLjM0MS0wLjAxNS0wLjUxMWwtMTMuNi0yMTcuNGwyMjIuOTItMzguMjE2CgkJCWMzLjg1NC0wLjY0NSw2LjY3OS0zLjk4LDYuNjgtNy44ODh2LTk2QzM5Mi4wMDcsODAuMTA1LDM4OS4xOTksNzYuNzczLDM4NS4zNTcsNzYuMTE1eiBNMTEwLjI1Myw0MzYuMDAzTDU3LjYwNSwyMjUuMTcxCgkJCWMwLjUwNCwwLjI0OCwxLjA0LDAuNDE2LDEuNTQ0LDAuNjY0YzIuNTc2LDEuMjMyLDUuMTg5LDIuMzUyLDcuODQsMy4zNmMwLjc0NCwwLjI4LDEuNDY0LDAuNiwyLjIwOCwwLjg2NAoJCQljMy4zMTksMS4xNzQsNi42OTcsMi4xNzUsMTAuMTIsM2MwLjgsMC4xOTIsMS42LDAuMzI4LDIuNCwwLjUwNGMyLjc2OCwwLjU5Miw1LjU2NSwxLjA3Nyw4LjM5MiwxLjQ1NgoJCQljMS4wMDgsMC4xMjgsMi4wMTYsMC4yNjQsMy4wMjQsMC4zNjhjMy42MTEsMC4zOSw3LjI0LDAuNTk2LDEwLjg3MiwwLjYxNmMwLjQ1My0wLjAwMSwwLjkwNS0wLjAzOSwxLjM1Mi0wLjExMmw0MS4yMTYtNy4wODgKCQkJbDEyLjkyLDIwNy4ySDExMC4yNTN6IE0zNDQuMDA1LDE3OC43MzlsLTIzOC4wODgsNDAuOGwtMi41NzYsMC40NjRjLTQ4LjM2Ny0wLjMwNC04Ny4zOTktMzkuNjMyLTg3LjMzNi04OAoJCQljMC4wNTUtNDguMzIsMzkuMDE4LTg3LjU3OSw4Ny4zMzYtODhsMjQwLjY2NCw0MS4yNjRWMTc4LjczOXogTTM3Ni4wMDUsMTczLjI1OWwtMTYsMi43NDR2LTg4bDE2LDIuNzQ0VjE3My4yNTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNC4wMDUsNzYuMDAzYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMxNjAuMDA1LDEwMS4wNzUsMTM0LjkzMyw3Ni4wMDMsMTA0LjAwNSw3Ni4wMDN6IE0xMDQuMDA1LDE3Mi4wMDNjLTIyLjA5MSwwLTQwLTE3LjkwOS00MC00MGMwLjAyNi0yMi4wOCwxNy45Mi0zOS45NzQsNDAtNDAKCQkJYzIyLjA5MSwwLDQwLDE3LjkwOSw0MCw0MFMxMjYuMDk3LDE3Mi4wMDMsMTA0LjAwNSwxNzIuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDEuOTMzLDQxMS41MjNsLTkuNjY0LTE1NS4wMjRjLTAuMjc2LTQuNDE4LTQuMDgyLTcuNzc2LTguNS03LjVjLTQuNDE4LDAuMjc2LTcuNzc2LDQuMDgyLTcuNSw4LjVsOS42NjQsMTU1CgkJCWMwLjI2Myw0LjIyNywzLjc3Myw3LjUxNiw4LjAwOCw3LjUwNGMwLjE2OCwwLDAuMzM2LDAsMC41MDQsMEMxMzguODU0LDQxOS43MjgsMTQyLjIwNyw0MTUuOTMyLDE0MS45MzMsNDExLjUyM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDcyLjAwNSwxMjQuMDAzaC00OGMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGg0OGM0LjQxOCwwLDgtMy41ODIsOC04UzQ3Ni40MjMsMTI0LjAwMyw0NzIuMDA1LDEyNC4wMDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ3Mi4wMDUsMTU2LjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDE1Ni4wMDMsNDcyLjAwNSwxNTYuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzIuMDA1LDkyLjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDkyLjAwMyw0NzIuMDA1LDkyLjAwM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",ffe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OC40NTcsNzcuMjI3YTguMDYzLDguMDYzLDAsMCwwLTEwLjQsMTIuMzI1djYuOTI3YTUuMjczLDUuMjczLDAsMCwwLDEwLjU0NSwwVjg5LjU1M2E4LjA2Myw4LjA2MywwLDAsMC0uMTQ2LTEyLjMyNlpNNDUuODc0LDg3LjI0YTEuNzUsMS43NSwwLDAsMC0uNzcxLDEuNDUxdjcuNzg3YTEuNzczLDEuNzczLDAsMCwxLTMuNTQ1LDBWODguNjkxYTEuNzQ3LDEuNzQ3LDAsMCwwLS43NzMtMS40NTFBNC41NjYsNC41NjYsMCwwLDEsNDIuNCw3OC45NzhhNC44NzYsNC44NzYsMCwwLDEsLjk0LS4wOTIsNC41LDQuNSwwLDAsMSwyLjg5MywxLjA0MSw0LjU2Miw0LjU2MiwwLDAsMS0uMzU2LDcuMzEzWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDUuMjI4LDQ0LjY2Myw2NS41OCw0My4zNlYxOS41MTRhNS4zNyw1LjM3LDAsMCwwLTUuMzYzLTUuMzY0SDI2LjQ0M2E1LjM3LDUuMzcsMCwwLDAtNS4zNjMsNS4zNjR2ODguOTcyYTUuMzcsNS4zNywwLDAsMCw1LjM2Myw1LjM2NEg2MC4yMTdhNS4zNyw1LjM3LDAsMCwwLDUuMzYzLTUuMzY0VjU5LjhsMzkuNjQ4LTEuM2ExLjc1LDEuNzUsMCwwLDAsMS42OTItMS43NDlWNDYuNDEyQTEuNzUsMS43NSwwLDAsMCwxMDUuMjI4LDQ0LjY2M1pNNjIuMDgsMTA4LjQ4NmExLjg2NiwxLjg2NiwwLDAsMS0xLjg2MywxLjg2NEgyNi40NDNhMS44NjYsMS44NjYsMCwwLDEtMS44NjMtMS44NjRWMTkuNTE0YTEuODY2LDEuODY2LDAsMCwxLDEuODYzLTEuODY0SDYwLjIxN2ExLjg2NiwxLjg2NiwwLDAsMSwxLjg2MywxLjg2NFY0My4yNDVsLTYuMjY3LS4yMDZhMTUuMTI3LDE1LjEyNywwLDEsMCwwLDE3LjA4Nmw2LjI2NC0uMjA2Wk00NC4zOSw2MC41aDBMNTEsNjAuMjg0YTExLjYxMiwxMS42MTIsMCwxLDEsLjA0LTE3LjRsLTYuNjQ5LS4yMTloLS4wNThBOC45Miw4LjkyLDAsMSwwLDQ0LjM5LDYwLjVabTU5LjAzLTUuNDQyLTM5LjU4NywxLjNoLS4wMDhMNDQuMzM0LDU3YTUuNDIsNS40MiwwLDAsMS0uMDI3LTEwLjg0bDU5LjExMywxLjk0M1oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",xfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuMzQsMTE3LjMzNmMtNS45MDYsMC0xMC42ODgsNC43NzMtMTAuNjg4LDEwLjY2NHY4NS4zMzVINDY5LjM0di0yMS4zMzZjMC0yMy41MjMtMTkuMTU2LTQyLjY2My00Mi42ODgtNDIuNjYzCgkJYy0xMi43MTgsMC0yNC4xNTUsNS42MDktMzEuOTk5LDE0LjQ5MWMtNy44MTItOC44ODItMTkuMjUtMTQuNDkxLTMyLTE0LjQ5MWMtMTIuNzE4LDAtMjQuMTU1LDUuNjA5LTMxLjk5OSwxNC40OTEKCQljLTcuODEyLTguODgyLTE5LjI1LTE0LjQ5MS0zMi0xNC40OTFjLTEyLjcxOSwwLTI0LjE1Niw1LjYwOS0zMS45OTIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxCgkJYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxCgkJYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xOS44MzUsMC0zNi41NywxMy42MTYtNDEuMzIsMzEuOTk5SDMyYy01Ljg5MSwwLTEwLjY2NCw0Ljc3My0xMC42NjQsMTAuNjY0djIxLjMzNkgxMC42NjQKCQlDNC43NzMsMjEzLjMzNSwwLDIxOC4xMDgsMCwyMjMuOTk5czQuNzczLDEwLjY2NCwxMC42NjQsMTAuNjY0aDEwLjY3MnYyMS4zMzZjMCw1Ljg5MSw0Ljc3MywxMC42NjQsMTAuNjY0LDEwLjY2NGgzMnYyMDIuNjc4CgkJYzAsMjMuNTE2LDE5LjE0MSw0Mi42NTYsNDIuNjY0LDQyLjY1NmMxMi43NDIsMCwyNC4xOC01LjYyNSwzMi0xNC41YzcuODI4LDguODc1LDE5LjI3MywxNC41LDMyLDE0LjUKCQljMTIuNzQyLDAsMjQuMTgtNS42MjUsMzItMTQuNWM3LjgyOCw4Ljg3NSwxOS4yNzMsMTQuNSwzMiwxNC41YzEyLjc0MiwwLDI0LjE4LTUuNjI1LDMyLTE0LjUKCQljNy44MzYsOC44NzUsMTkuMjczLDE0LjUsMzEuOTkyLDE0LjVjMTIuNzUsMCwyNC4xODgtNS42MjUsMzItMTQuNWM3Ljg0NCw4Ljg3NSwxOS4yODEsMTQuNSwzMS45OTksMTQuNQoJCWMxMi43NSwwLDI0LjE4OC01LjYyNSwzMi0xNC41YzcuODQ0LDguODc1LDE5LjI4MSwxNC41LDMxLjk5OSwxNC41YzIzLjUzMSwwLDQyLjY4OC0xOS4xNDEsNDIuNjg4LTQyLjY1NlYyMzQuNjYzaDMyCgkJYzUuODc1LDAsMTAuNjU2LTQuNzczLDEwLjY1Ni0xMC42NjRWMTI4QzUxMS45OTYsMTIyLjEwOSw1MDcuMjE1LDExNy4zMzYsNTAxLjM0LDExNy4zMzZ6IE02NCwyNDUuMzM1SDQyLjY2NHYtNDIuNjcySDY0VjI0NS4zMzUKCQl6IE0xMjcuOTk5LDQ2OS4zNDFjMCwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMjU1Ljk5OXYtNjQKCQljMC0xMS43NTgsOS41Ny0yMS4zMzYsMjEuMzI4LTIxLjMzNmMxMS43NzMsMCwyMS4zMzYsOS41NzgsMjEuMzM2LDIxLjMzNlY0NjkuMzQxeiBNMTkxLjk5OSw0NjkuMzQxCgkJYy0wLjAwMSwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2CgkJYzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6IE0yNTUuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzM2LDIxLjMxMgoJCWMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2YzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6CgkJIE0zMTkuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzUsMC0yMS4zMTItOS41NjItMjEuMzEyLTIxLjMxMlYxOTEuOTk5CgkJYzAtMTEuNzU4LDkuNTYyLTIxLjMzNiwyMS4zMTItMjEuMzM2YzExLjc4MSwwLDIxLjM0NCw5LjU3OCwyMS4zNDQsMjEuMzM2VjQ2OS4zNDF6IE0zODMuOTk3LDQ2OS4zNDEKCQljMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzQ5LDAtMjEuMzEyLTkuNTYyLTIxLjMxMi0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU2Mi0yMS4zMzYsMjEuMzEyLTIxLjMzNgoJCWMxMS43ODEsMCwyMS4zNDQsOS41NzgsMjEuMzQ0LDIxLjMzNlY0NjkuMzQxeiBNNDQ3Ljk5Niw0NjkuMzQxYzAsMTEuNzUtOS41NjIsMjEuMzEyLTIxLjM0NCwyMS4zMTIKCQljLTExLjc0OSwwLTIxLjMxMi05LjU2Mi0yMS4zMTItMjEuMzEyVjE5MS45OTljMC0xMS43NTgsOS41NjItMjEuMzM2LDIxLjMxMi0yMS4zMzZjMTEuNzgxLDAsMjEuMzQ0LDkuNTc4LDIxLjM0NCwyMS4zMzZWNDY5LjM0MQoJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU2Ljg3MSwxMDMuNjcyYy0xLjMxMi00LjUzOS0wLjUtNy44NDQsMi42ODgtMTEuMDU1YzguNjU2LTguNjk1LDExLjUzMS0xOS45ODQsOC4wNjItMzEuODEyCgkJCWMtMi4zMTItNy45MzgtNi44MTItMTMuNTQ3LTcuMzc1LTE0LjI1Yy0wLjAzMSwwLTAuMDMxLTAuMDA4LTAuMDMxLTAuMDA4di0wLjAxNWMtMS45NjktMi4zNTktNC45MDYtMy44NjctOC4yMTktMy44NjcKCQkJYy01Ljg5LDAtMTAuNjU1LDQuNzgxLTEwLjY1NSwxMC42NzJjMCwyLjU4NiwwLjkwNiw0Ljk2MSwyLjQzOCw2LjgwNWMwLjAzMSwwLjAyMywyLjI4MSwyLjkzOCwzLjM3NSw2LjY1NgoJCQljMS4yNjYsNC4zNjcsMC40NjksNy41ODYtMi43MTksMTAuNzY2Yy04LjYyNSw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc4LDMxLjk5OGMyLjMyOCw4LjEwMiw2LjgyOCwxMy44MzYsNy4zMjgsMTQuNDY5di0wLjAwOAoJCQljMS45NjksMi40MjIsNC45NTMsMy45NzcsOC4zMTIsMy45NzdjNS44OTEsMCwxMC42NTYtNC43NzMsMTAuNjU2LTEwLjY2NGMwLTIuNTM5LTAuODc1LTQuODY3LTIuMzQ0LTYuNjk1CgkJCUMzNjAuMjc4LDExMC42MSwzNTcuOTY1LDEwNy41NTUsMzU2Ljg3MSwxMDMuNjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNjguNjU2LDk2LjYxYy0yLjQ2MS05LjgzNi0wLjQ5Mi0xOC4xOTUsNi0yNS41NDdjMTEuNDA2LTEyLjg5MSwxNS4wMzEtMjguNjk1LDEwLjUtNDUuNzI2CgkJCWMtMy4xODgtMTEuOTM4LTkuMzEyLTIwLjIyNy0xMC0yMS4xMzNWNC4yMmMtMS45NjktMi41NTUtNS4wMjMtNC4yMTktOC40OTItNC4yMTljLTUuODkzLDAtMTAuNjY2LDQuNzczLTEwLjY2NiwxMC42NjQKCQkJYzAsMi40MTQsMC44MDUsNC42MzMsMi4xNTYsNi40MTRoLTAuMDE2YzAuMDQ3LDAuMDYyLDQuNDkyLDYuMTA5LDYuNTQ3LDE0LjMyYzIuNDUzLDkuODI3LDAuNDg0LDE4LjE4Ny02LjAxNiwyNS41MzgKCQkJYy0xMS4zOSwxMi44OTEtMTUuMDE1LDI4LjY5Ni0xMC40ODMsNDUuNzI3YzMuMTcyLDExLjkzOCw5LjMwNSwyMC4yMjcsOS45ODQsMjEuMTMzbDAuMDE2LTAuMDE2CgkJCWMxLjk0NSwyLjU3LDUuMDE2LDQuMjE5LDguNDc3LDQuMjE5YzUuODk4LDAsMTAuNjgtNC43NzMsMTAuNjgtMTAuNjY0YzAtMi40MTQtMC44MTItNC42MzMtMi4xNTYtNi40MTQKCQkJQzI3NS4xNCwxMTAuODYsMjcwLjY5NSwxMDQuODEzLDI2OC42NTYsOTYuNjF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE4OS42NCwxMTAuNjQxYy0wLjAyMy0wLjAzMS0yLjMyOC0zLjA4Ni0zLjQ0NS02Ljk2OWMtMS4zMDUtNC41MzktMC41LTcuODQ0LDIuNjk1LTExLjA1NQoJCQljOC42NjQtOC42OTUsMTEuNTIzLTE5Ljk4NCw4LjA2Mi0zMS44MTJjLTIuMzItNy45MzgtNi43ODktMTMuNTMxLTcuMzkxLTE0LjI1YzAsMCwwLTAuMDA4LTAuMDA4LTAuMDA4bC0wLjAwOC0wLjAyM3YwLjAwOAoJCQljLTEuOTYxLTIuMzU5LTQuOTA2LTMuODY3LTguMjExLTMuODY3Yy01Ljg5MSwwLTEwLjY3Miw0Ljc4MS0xMC42NzIsMTAuNjcyYzAsMi41ODYsMC45MjIsNC45NjEsMi40NTMsNi44MDUKCQkJYzAuMDIzLDAuMDIzLDIuMjczLDIuOTM4LDMuMzU5LDYuNjU2YzEuMjgxLDQuMzY3LDAuNDY5LDcuNTg2LTIuNzAzLDEwLjc2NmMtOC42NCw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc3LDMxLjk5OAoJCQljMi4zMjgsOC4xMDIsNi44MjgsMTMuODM2LDcuMzM2LDE0LjQ2OXYtMC4wMDhjMS45NjEsMi40MjIsNC45NDUsMy45NzcsOC4zMDUsMy45NzdjNS44OTEsMCwxMC42NjQtNC43NzMsMTAuNjY0LTEwLjY2NAoJCQljMC0yLjUzOS0wLjg5MS00Ljg2Ny0yLjM2Ny02LjY5NUgxODkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",_fe="PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIC0xIDQ5NiA0OTUiIHdpZHRoPSI0OTZwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ4OCAzMjAuNWgtNDB2LTMyYzAtMi4xMjg5MDYtLjgzOTg0NC00LjE2MDE1Ni0yLjM0Mzc1LTUuNjU2MjVsLTEyMC0xMjBjLTEuNDk2MDk0LTEuNTAzOTA2LTMuNTI3MzQ0LTIuMzQzNzUtNS42NTYyNS0yLjM0Mzc1aC0xNnYtMTUyYzAtNC40MjU3ODEtMy41NzQyMTktOC04LThoLTk2Yy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djE1MmgtMjRjLTIuMTI4OTA2IDAtNC4xNjAxNTYuODM5ODQ0LTUuNjU2MjUgMi4zNDM3NWwtMTIwIDEyMGMtMS41MDM5MDYgMS40OTYwOTQtMi4zNDM3NSAzLjUyNzM0NC0yLjM0Mzc1IDUuNjU2MjV2MzJoLTMyYy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djQ4YzAgNC40MjU3ODEgMy41NzQyMTkgOCA4IDhoNDgwYzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQ4YzAtNC40MjU3ODEtMy41NzQyMTktOC04LTh6bS0yODAtMzA0aDgwdjE5MmgtODB6bS0xNTIgMjc1LjMxMjUgMTE1LjMxMjUtMTE1LjMxMjVoMjAuNjg3NXY0MGMwIDQuNDI1NzgxIDMuNTc0MjE5IDggOCA4aDk2YzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQwaDEyLjY4NzVsMTE1LjMxMjUgMTE1LjMxMjV2MjguNjg3NWgtMzc2em00MjQgNzYuNjg3NWgtNDY0di0zMmg0NjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNzkuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjI3LjMxMjUgNDQwLjVjLTIuMTM2NzE5LTIuMTQ0NTMxLTMuMzEyNS00Ljk3NjU2Mi0zLjMxMjUtOHMxLjE3NTc4MS01Ljg1NTQ2OSAzLjMxMjUtOGwxMC4zNDM3NS0xMC4zNDM3NS0xMS4zMTI1LTExLjMxMjUtMTAuMzQzNzUgMTAuMzQzNzVjLTUuMTYwMTU2IDUuMTYwMTU2LTggMTIuMDE1NjI1LTggMTkuMzEyNXMyLjgzOTg0NCAxNC4xNjAxNTYgOCAxOS4zMTI1bDQuNjg3NSA0LjY4NzVjMi4xMzY3MTkgMi4xNDQ1MzEgMy4zMTI1IDQuOTc2NTYyIDMuMzEyNSA4cy0xLjE3NTc4MSA1Ljg1NTQ2OS0zLjMxMjUgOGwtMTAuMzQzNzUgMTAuMzQzNzUgMTEuMzEyNSAxMS4zMTI1IDEwLjM0Mzc1LTEwLjM0Mzc1YzUuMTYwMTU2LTUuMTYwMTU2IDgtMTIuMDE1NjI1IDgtMTkuMzEyNXMtMi44Mzk4NDQtMTQuMTYwMTU2LTgtMTkuMzEyNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3NS4zMTI1IDQ0MC41Yy0yLjEzNjcxOS0yLjE0NDUzMS0zLjMxMjUtNC45NzY1NjItMy4zMTI1LThzMS4xNzU3ODEtNS44NTU0NjkgMy4zMTI1LThsMTAuMzQzNzUtMTAuMzQzNzUtMTEuMzEyNS0xMS4zMTI1LTEwLjM0Mzc1IDEwLjM0Mzc1Yy01LjE2MDE1NiA1LjE2MDE1Ni04IDEyLjAxNTYyNS04IDE5LjMxMjVzMi44Mzk4NDQgMTQuMTYwMTU2IDggMTkuMzEyNWw0LjY4NzUgNC42ODc1YzIuMTM2NzE5IDIuMTQ0NTMxIDMuMzEyNSA0Ljk3NjU2MiAzLjMxMjUgOHMtMS4xNzU3ODEgNS44NTU0NjktMy4zMTI1IDhsLTEwLjM0Mzc1IDEwLjM0Mzc1IDExLjMxMjUgMTEuMzEyNSAxMC4zNDM3NS0xMC4zNDM3NWM1LjE2MDE1Ni01LjE2MDE1NiA4LTEyLjAxNTYyNSA4LTE5LjMxMjVzLTIuODM5ODQ0LTE0LjE2MDE1Ni04LTE5LjMxMjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjMuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI4OC41aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAyODguNWgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAgMjg4LjVoMTZ2MTZoLTE2em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Sfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDUgNTEyLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0zMjcuMTU5LDIuNzY2Yy00LjA2My0zLjY4OC0xMC4yNS0zLjY4OC0xNC4zMTMsMGMtNC42NDIsNC4xODYtMTEwLjg4OSwxMDEuMjkyLTE2MC4yMjgsMjEzLjgzOQoJCQkJYy01LjMxOC0xLjg2Ny0xMS40NC0zLjI2Ni0xOS4zNTUtMy4yNjZjLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWMxMiwwLDE3LjU2MywzLjg2NSwyNC42MDQsOC43NgoJCQkJYzguMDUyLDUuNjA0LDE4LjA4MywxMi41NzMsMzYuNzcxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N2MtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzMKCQkJCWMtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTExLjIwOCwwLTE2LjgyMy0zLjQxOS0yMy4yNDItNy44NTRjNDAuMTIxLTkyLjY2MSwxMjMuNjYxLTE3Ny40NjYsMTQ4LjYwNy0yMDEuNDkKCQkJCWMzMy4yMTksMzIuMDEsMTcwLjY2NywxNzEuODY1LDE3MC42NjcsMjk0LjY3N2MwLDk0LjEwNC03Ni41NjMsMTcwLjY2Ny0xNzAuNjY3LDE3MC42NjdjLTQyLjQ3NywwLTgyLjY2OS0xNS44MjItMTEzLjc4LTQzLjc1OAoJCQkJYzExLjU0Mi0yLjEzOCwxOC45OTQtNy4xNzcsMjUuMTg2LTExLjQ4MmM3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NmM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzYKCQkJCWMtMTIsMC0xNy41NjMtMy44NjUtMjQuNTk0LTguNzZjLTguMDYzLTUuNjA0LTE4LjA5NC0xMi41NzMtMzYuNzgxLTEyLjU3M2MtMTguNjc3LDAtMjguNjk4LDYuOTY5LTM2Ljc1LDEyLjU3MwoJCQkJYy03LjAzMSw0Ljg5Ni0xMi41ODMsOC43Ni0yNC41NzMsOC43NmMtMTEuOTY5LDAtMTcuNTIxLTMuODY1LTI0LjU0Mi04Ljc1Yy04LjA0Mi01LjYwNC0xOC4wNjMtMTIuNTgzLTM2LjcyOS0xMi41ODMKCQkJCWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzUKCQkJCWM4LjA0Miw1LjYwNCwxOC4wNjMsMTIuNTgzLDM2LjcyOSwxMi41ODNjMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NQoJCQkJYzEyLDAsMTcuNTYzLDMuODY1LDI0LjYwNCw4Ljc2YzQuMzQ1LDMuMDIzLDkuNDE0LDYuMzU1LDE1Ljk2MSw4Ljg2NWMzNi42LDQyLjk5Niw4OS42NTUsNjcuNzA4LDE0Ni4xNzQsNjcuNzA4CgkJCQljMTA1Ljg2NSwwLDE5Mi04Ni4xMzUsMTkyLTE5MkM1MTIuMDAzLDE3MS42NDEsMzM0LjcwMSw5LjU4OSwzMjcuMTU5LDIuNzY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMC42NjksMzYyLjY3MmMxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzUKCQkJCWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzQuNzczLDM2Mi42NzIsMTAuNjY5LDM2Mi42NzJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzMy4yNjMsMzQxLjMzOWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMiwwLDE3LjU2MywzLjg2NSwyNC41OTQsOC43NgoJCQkJYzguMDYzLDUuNjA0LDE4LjA5NCwxMi41NzMsMzYuNzgxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzEyLjE5OCwwLDE4LjQwNiwzLjk2OSwyNi4yNSw4Ljk5YzkuMDUyLDUuNzgxLDE5LjMxMywxMi4zNDQsMzcuNzUsMTIuMzQ0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjcKCQkJCWMwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMi4xOTgsMC0xOC40MDYtMy45NjktMjYuMjUtOC45OWMtOS4wNTItNS43ODEtMTkuMzEzLTEyLjM0NC0zNy43NS0xMi4zNDQKCQkJCWMtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU5NCw4Ljc2LTI0LjU4Myw4Ljc2Yy0xMiwwLTE3LjU2My0zLjg2NS0yNC42MDQtOC43NgoJCQkJQzE2MS45ODIsMzQ4LjMwNywxNTEuOTUxLDM0MS4zMzksMTMzLjI2MywzNDEuMzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzMuMjYzLDI3Ny4zMzljLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlDMTQzLjkzLDI4Mi4xMDksMTM5LjE1OSwyNzcuMzM5LDEzMy4yNjMsMjc3LjMzOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjMxLjQwOSwzMDcuNDMyYzcuMDMxLTQuODk2LDEyLjU5NC04Ljc2LDI0LjU5NC04Ljc2YzExLjk2OSwwLDE3LjUyMSwzLjg2NSwyNC41NDIsOC43NQoJCQkJYzguMDQyLDUuNjA0LDE4LjA2MywxMi41ODMsMzYuNzI5LDEyLjU4M2MxOC42NzcsMCwyOC43MDgtNi45NzksMzYuNzYtMTIuNTgzYzcuMDMxLTQuODg1LDEyLjU4My04Ljc1LDI0LjU2My04Ljc1CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42NzcsMC0yOC42OTgsNi45NjktMzYuNzUsMTIuNTczCgkJCQljLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzVjLTguMDQyLTUuNjA0LTE4LjA2My0xMi41ODMtMzYuNzI5LTEyLjU4MwoJCQkJYy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjcKCQkJCXM0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N0MyMTMuMzE1LDMyMC4wMDUsMjIzLjM0NiwzMTMuMDM2LDIzMS40MDksMzA3LjQzMnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",kfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTIgMTYzLjg3YzAtMTMuOS01LjQxMi0yNi45NjEtMTUuMjMzLTM2Ljc3LTkuODE1LTkuODI4LTIyLjg3Ni0xNS4yNC0zNi43NzYtMTUuMjRoLTgwLjk3Yy0yNi43MDUgMC00OC40My0yMS43MjYtNDguNDMtNDguNDMgMC0xMi45MzggNS4wMzctMjUuMTAxIDE0LjE4NC0zNC4yNDcgOS4xNDQtOS4xNDYgMjEuMzA3LTE0LjE4MyAzNC4yNDUtMTQuMTgzaDEyNS40OGM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMTI1LjQ4Yy0xNi45NDUgMC0zMi44NzQgNi41OTctNDQuODUzIDE4LjU3Ny0xMS45NzkgMTEuOTc5LTE4LjU3NyAyNy45MDgtMTguNTc3IDQ0Ljg1MyAwIDM0Ljk3NSAyOC40NTUgNjMuNDMgNjMuNDMgNjMuNDNoODAuOTdjOS44OSAwIDE5LjE4MiAzLjg1IDI2LjE2OSAxMC44NDcgNi45OTEgNi45ODIgMTAuODQxIDE2LjI3MyAxMC44NDEgMjYuMTYzIDAgOC42MzctMy4wMzggMTcuMDQ0LTguNTU3IDIzLjY3NGwtMjIuMzA1IDI2LjgyMmMtNy44ODQtMi43MjUtMTYuOTg5LS45NzItMjMuMjgyIDUuMzExbC05LjA1OCA5LjA1OGMtMjAuMzItLjQyLTQzLjA5OCAzLjk0LTYyLjgyMSA3LjQyNy00LjA3OS43MjEtNi44MDEgNC42MTMtNi4wNzkgOC42OTEuNzIxIDQuMDc5IDQuNjEzIDYuNzk5IDguNjkxIDYuMDc5IDE4Ljk0Mi0zLjM1IDM4LjM5Mi01Ljc2OCA1Ny44MDktNy4xODUgNy42ODEtLjU2NiAxNC44MzMgNC4zOTMgMTYuOTg1IDExLjc4IDEuODI3IDYuMjcgNDcuMDI3IDE2MC4xNjcgNDguNTMzIDE2Ni41NzUuNDk4IDIuMTE5LS43MzggMy42Ni0yLjkxMiAzLjY2LTIyLjc4NiAwLTQxLjA0MiAxNS42Ni00OC40NjQgMzYuNDg4aC0zMjAuMzcxYy00LjE0MiAwLTcuNSAzLjM1Ny03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDMyNy43ODdjNS40NDUgMCA5Ljg3NSA0LjQzIDkuODc1IDkuODc1cy00LjQzMSA5Ljg3NS05Ljg3NiA5Ljg3NWgtNDM2LjkwNmMzLjI2NS0xMS4zOTEgMTMuNzc1LTE5Ljc1IDI2LjItMTkuNzVoNTIuOTE5YzQuMTQyIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC00NC45NDRjNjIuNDYyLTExMS41OTggMTcxLjkwMy0xNzcuMDI3IDI5NC43NzgtMjA1LjQ4NiA0LjAzNS0uOTM1IDYuNTQ5LTQuOTYzIDUuNjE0LTguOTk5LS45MzQtNC4wMzUtNC45NjQtNi41NDktOC45OTktNS42MTQtNzEuNjMyIDE2LjU5OS0xNDMuNTkzIDQ3LjA1MS0yMDEuNDczIDkyLjYwNmwtMTAuMDcxLTEwLjA3Yy04LjYzNS04Ljc1Mi0yMy4xNTktOC42NzgtMzEuODI2LS4wMS04LjYzMSA4LjYzMi04LjcyOCAyMy4xNjYgMCAzMS44MDdsOC4wNTEgOC4wNTFjLTI5LjQ2NyAyOC45NTktNTQuMTAyIDYyLjMyLTc0LjA0MiA5OC45Mi0xOC40ODcgNC41MDItMzIuMjU2IDIxLjE5MS0zMi4yNTYgNDEuMDQ1IDAgNC4xNDMgMy4zNTggNy41IDcuNSA3LjVoNDQ1LjQ1NWMxMy43MTYgMCAyNC44NzUtMTEuMTU5IDI0Ljg3NS0yNC44NzUgMC0xMC43NS02Ljg1NS0xOS45MjctMTYuNDI0LTIzLjM5NSA1LjI2My0xMy41NzMgMTcuOTAzLTIyLjk2OSAzMi41OTgtMjIuOTY5IDExLjQ4MyAwIDIwLjMwMi0xMS40MDEgMTcuNDExLTIyLjUxLS4wMTgtLjA3MS0uMDM4LS4xNDItLjA1OC0uMjExbC00NS44NTctMTU3LjM5MSA5LjE2My05LjE1NmM3LjM1OS03LjMwMyA4LjY0NC0xOS4wOTMgMy4xOTctMjcuNzYybDIyLjExNS0yNi41OTNjNy43NTQtOS4zMTggMTIuMDI1LTIxLjEzMiAxMi4wMjUtMzMuMjY4em0tNDAzLjE0NiAxNzEuNDEzYzEuNDItMS40MjEgMy4zMDUtMi4yMDMgNS4zMDctMi4yMDMgMS45OTkgMCAzLjg3Ny43NzkgNS4yOTYgMi4yMDRsOS4wMTQgOS4wMTRjLTMuODI1IDMuMjQzLTcuNTgyIDYuNTUxLTExLjI3NCA5LjkyMmwtOC4zNDQtOC4zNDRjLTIuOTItMi45Mi0yLjkyLTcuNjcyLjAwMS0xMC41OTN6bTM1NS4yMDUtOTQuMzk4LTMuOTg2IDMuOTgzYy0yLjQ5Ni00LjQ2MS02LjAzNy04LjIwMy0xMC4yMzMtMTAuOTYxbDMuNjE5LTMuNjE5YzIuOTI2LTIuOTIgNy42OC0yLjkyMiAxMC41OTgtLjAwNCAxLjQyMSAxLjQyMSAyLjIwMyAzLjMwMiAyLjIwMyA1LjI5NyAwIDItLjc4MiAzLjg4NS0yLjIwMSA1LjMwNHptLTIxNS43NjUgOTQuNzY0Yy0xMy44MjQgNy42NTMtMjIuNDEyIDIyLjIzNS0yMi40MTIgMzguMDU2IDAgMTEuOTg3IDUuMDE5IDIzLjU2MyAxMy43NzEgMzEuNzU4IDguMDY2IDcuNTUzIDE4Ljc4OCAxMS43NTYgMjkuNzg2IDExLjc1NS45NCAwIDE1MS4wOC05LjgzOCAxNTEuMDgtOS44MzggNi45MTEtLjQ1NCAxMy4yMjUtMy45MTYgMTcuMzIyLTkuNDk4IDQuMDk2LTUuNTc5IDUuNTA3LTEyLjYzNyAzLjg3Mi0xOS4zNjJsLTE5LjUzOC04MC4zMjNjLTMuMDE3LTEyLjQwNC0xNS4xODMtMjAuMDEzLTI3LjY5My0xNy4zMjktMzAuMDk0IDYuNDY2LTU5Ljc4NyAxNS41OTQtODguMjU2IDI3LjEzLTE5Ljc2OCA4LjAxLTM5LjI1OSAxNy4zMTMtNTcuOTMyIDI3LjY1MXptMTA3LjI2NiA2MC45NjktNjcuNDMgNC40MzN2LTE3LjY4MWMwLS4yMzguMjAyLS40NC40NC0uNDRoNjYuNTVjLjI0MyAwIC40NC4xOTcuNDQuNDR6bTQyLjA3MS0xMDEuMDg1Yy42MTMtLjEzMiAxLjIyMy0uMTk1IDEuODIzLS4xOTUgMy44MTQgMCA3LjIxIDIuNTU5IDguMTQ1IDYuNDAzbDE5LjUzOCA4MC4zMjNjLjU5NSAyLjQ0Ni4xMDIgNC45MTEtMS4zODggNi45NC0xLjQ5MiAyLjAzMi0zLjY5OSAzLjI0Mi02LjIxNSAzLjQwOGwtNDguOTc0IDMuMjE5di0xMi4yNjFjMC04LjUxNC02LjkyNi0xNS40NC0xNS40NC0xNS40NGgtNjYuNTVjLTguNTE0IDAtMTUuNDQgNi45MjctMTUuNDQgMTUuNDR2MTguNjY3bC0xLjg1LjEyMmMtNy45NTcuNTE4LTE1LjU1Mi0yLjE5Mi0yMS4zNzUtNy42NDUtNS44MTktNS40NDktOS4wMjQtMTIuODM5LTkuMDI0LTIwLjgwOSAwLTEwLjM2NyA1LjYyNC0xOS45MjEgMTQuNjc3LTI0LjkzMyAxOC4xNDgtMTAuMDQ3IDM3LjA5LTE5LjA4OCA1Ni4zMDEtMjYuODczIDI3LjY2Ni0xMS4yMTEgNTYuNTI1LTIwLjA4MyA4NS43NzItMjYuMzY2eiIvPgogICAgPC9nPgo8L3N2Zz4=",Yfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQzNS4yIDMyNC4yNjdoLTEwLjkwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY3Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTIzMi43NzJjLTE0LjEzOCAwLTI1LjYtMTEuNDYyLTI1LjYtMjUuNnMxMS40NjItMjUuNiAyNS42LTI1LjZoMzYuNTA2YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2g2Mi4xMDZjMTQuMTM4IDAgMjUuNi0xMS40NjIgMjUuNi0yNS42cy0xMS40NjItMjUuNi0yNS42LTI1LjZoLTYyLjEwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY2Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTM2LjUwNmMtNDIuNDE1IDAtNzYuOCAzNC4zODUtNzYuOCA3Ni44czM0LjM4NSA3Ni44IDc2LjggNzYuOGgyMzIuNzcyYzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gxMC45MDdjMTQuMTM4IDAgMjUuNiAxMS40NjIgMjUuNiAyNS42cy0xMS40NjIgMjUuNi0yNS42IDI1LjZoLTMwOS41NzJjLTMuMDI0LTUuMjYzLTguNjI0LTguNTE1LTE0LjY5NC04LjUzM3YtMTcuMDY3YzAtOS40MjYtNy42NDEtMTcuMDY3LTE3LjA2Ny0xNy4wNjdoLTE3LjA2N2MtOS40MjYgMC0xNy4wNjcgNy42NDEtMTcuMDY3IDE3LjA2N3YxNy4wNjdjLTYuMDcuMDE4LTExLjY3IDMuMjctMTQuNjk0IDguNTMzaC0xOS40MzljLTE0LjEzOCAwLTI1LjYgMTEuNDYyLTI1LjYgMjUuNnMxMS40NjIgMjUuNiAyNS42IDI1LjZoMTkuNDM5YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gzMDkuNTczYzQyLjQxNSAwIDc2LjgtMzQuMzg1IDc2LjgtNzYuOHMtMzQuMzg1LTc2LjgtNzYuOC03Ni44em0tNTkuNzMzLTI1LjZoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNzYuOC01MS4yYzAgNC43MTMtMy44MjEgOC41MzMtOC41MzMgOC41MzNoLTU5LjczNHYtMTcuMDY3aDU5LjczM2M0LjcxMyAwIDguNTM0IDMuODIxIDguNTM0IDguNTM0em0tMTE5LjQ2Ny01MS4yaDE3LjA2N3YxNy4wNjdoLTE3LjA2N3ptLTguNTMzIDM0LjEzM2g0Mi42Njd2MzQuMTMzaC01MS4ydi0zNC4xMzN6bS0xMTkuNDY3IDY4LjI2N2MuMDM4LTMyLjk3NCAyNi43NTktNTkuNjk2IDU5LjczMy01OS43MzNoMzQuMTMzdjE3LjA2NmgtMzQuMTMzYy0yMy41NjQgMC00Mi42NjcgMTkuMTAzLTQyLjY2NyA0Mi42NjdzMTkuMTAzIDQyLjY2NyA0Mi42NjcgNDIuNjY3aDIzMC40djE3LjA2NmgtMjMwLjRjLTMyLjk3NC0uMDM4LTU5LjY5NS0yNi43NTktNTkuNzMzLTU5LjczM3ptMzA3LjIgNjguMjY2di0zNC4xMzNoNTEuMnYzNC4xMzN6bS0yODEuNiAzNC4xMzRoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNTkuNzMzIDUxLjJjMC00LjcxMyAzLjgyMS04LjUzMyA4LjUzMy04LjUzM2gxNy4wNjd2MTcuMDY2aC0xNy4wNjdjLTQuNzEzIDAtOC41MzMtMy44Mi04LjUzMy04LjUzM3ptNDIuNjY2IDE3LjA2NnYtMzQuMTMzaDUxLjJ2MzQuMTMzem0zNzUuNDY3LTguNTMzaC0zMDcuMnYtMTcuMDY3aDMwNy4yYzIzLjU2NCAwIDQyLjY2Ny0xOS4xMDMgNDIuNjY3LTQyLjY2N3MtMTkuMTAzLTQyLjY2Ny00Mi42NjctNDIuNjY3aC04LjUzM3YtMTcuMDY3aDguNTMzYzMyLjk5IDAgNTkuNzMzIDI2Ljc0NCA1OS43MzMgNTkuNzMzcy0yNi43NDMgNTkuNzM1LTU5LjczMyA1OS43MzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4Ny43MzMgMTYyLjEzM2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyMS04LjUzMy04LjUzMy04LjUzMy00LjcxMyAwLTguNTMzIDMuODIxLTguNTMzIDguNTMzdjE3LjA2N2MwIDQuNzEzIDMuODIxIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xODcuNzMzIDExMC45MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTg3LjczMyA1OS43MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTU0Ljc0MyAxNTcuODY3YzEuNTEzIDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxMy0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjkuMTQzIDExMy40OTNjMS41MTMgMi42NjIgNC4zMzcgNC4zMDkgNy4zOTkgNC4zMTZzNS44OTMtMS42MjggNy40MTgtNC4yODMgMS41MTEtNS45MjQtLjAzOC04LjU2NmwtOC41MzMtMTQuNzhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMy41NDMgNjkuMTg4YzIuMzcyIDQuMDQ3IDcuNTY2IDUuNDIgMTEuNjI4IDMuMDc0IDQuMDYyLTIuMzQ1IDUuNDctNy41MyAzLjE1MS0xMS42MDhsLTguNTMzLTE0Ljc4OGMtMS41MTMtMi42NjItNC4zMzctNC4zMDktNy4zOTktNC4zMTZzLTUuODkzIDEuNjI4LTcuNDE4IDQuMjgzLTEuNTExIDUuOTI0LjAzOCA4LjU2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjA5LjA2NyAxNjAuOTljNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzhjMS41NDktMi42NDIgMS41NjMtNS45MTEuMDM4LTguNTY2cy00LjM1Ni00LjI5LTcuNDE4LTQuMjgzLTUuODg2IDEuNjU0LTcuMzk5IDQuMzE2bC04LjUzMyAxNC43OGMtMi4zNTggNC4wODEtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0LjY2NyAxMTYuNjUxYzQuMDgxIDIuMzU2IDkuMy45NTggMTEuNjU3LTMuMTIzbDguNTMzLTE0Ljc4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzhjLTIuMzU4IDQuMDgtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjYwLjI2NyA3Mi4zMTFjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzg4Yy0yLjM1OCA0LjA4MS0uOTYgOS4zIDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI3My4wNjdjNC43MTMgMCA4LjUzMy0zLjgyIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMjIxLjg2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMTcwLjY2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNTEuMDEgMjY4LjhjMi4zNzIgNC4wNDcgNy41NjYgNS40MiAxMS42MjggMy4wNzQgNC4wNjItMi4zNDUgNS40Ny03LjUzIDMuMTUxLTExLjYwOGwtOC41MzMtMTQuNzhjLTEuNTE0LTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyNS40MSAyMjQuNDI3YzEuNTE0IDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxNC0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTkuODEgMTgwLjEyMmMyLjM3MiA0LjA0NyA3LjU2NiA1LjQyIDExLjYyOCAzLjA3NCA0LjA2Mi0yLjM0NSA1LjQ3LTcuNTMgMy4xNTEtMTEuNjA4bC04LjUzMy0xNC43ODhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNS4zMzMgMjcxLjkyM2M0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4LTQuMDYyLTIuMzQ1LTkuMjU2LS45NzItMTEuNjI4IDMuMDc0bC04LjUzMyAxNC43OGMtMi4zNTcgNC4wODItLjk1OSA5LjMwMSAzLjEyMiAxMS42NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMC45MzMgMjI3LjU4NGM0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4cy05LjI1Ni0uOTcyLTExLjYyOCAzLjA3NGwtOC41MzMgMTQuNzhjLTIuMzU3IDQuMDgyLS45NTkgOS4zMDEgMy4xMjIgMTEuNjU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NTYuNTMzIDE4My4yNDVjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzIuMzE4LTQuMDc4LjkxMS05LjI2Mi0zLjE1MS0xMS42MDgtNC4wNjItMi4zNDUtOS4yNTYtLjk3Mi0xMS42MjggMy4wNzRsLTguNTMzIDE0Ljc4OGMtMi4zNTcgNC4wODItLjk1OSA5LjMgMy4xMjIgMTEuNjU3eiIvPgogICAgPC9nPgo8L3N2Zz4=",vfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDIgNTEyLjAwMiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM5OC41ODkgMjQ2LjM0MmMtNjQuNjY2LTE3LjMyOC0xMTUuNjAxLTY4LjI2NC0xMzIuOTI5LTEzMi45MjktMS4xNzEtNC4zNzItNS4xMzMtNy40MTItOS42NTktNy40MTJzLTguNDg4IDMuMDQtOS42NTkgNy40MTJjLTE3LjMyOCA2NC42NjYtNjguMjYzIDExNS42MDEtMTMyLjkyOSAxMzIuOTI5LTQuMzcyIDEuMTcxLTcuNDEyIDUuMTMzLTcuNDEyIDkuNjU5czMuMDQgOC40ODggNy40MTIgOS42NTljNjQuNjY2IDE3LjMyOSAxMTUuNjAxIDY4LjI2NCAxMzIuOTI5IDEzMi45MjkgMS4xNzEgNC4zNzIgNS4xMzMgNy40MTIgOS42NTkgNy40MTJzOC40ODgtMy4wNCA5LjY1OS03LjQxMmMxNy4zMjgtNjQuNjY1IDY4LjI2NC0xMTUuNjAxIDEzMi45MjktMTMyLjkyOSA0LjM3Mi0xLjE3MSA3LjQxMi01LjEzMyA3LjQxMi05LjY1OXMtMy4wNC04LjQ4OC03LjQxMi05LjY1OXptLTE0Mi41ODggMTE5LjE3NmMtMjEuMDM5LTQ5LjA5Ni02MC40Mi04OC40NzgtMTA5LjUxNi0xMDkuNTE3IDQ5LjA5Ni0yMS4wMzkgODguNDc4LTYwLjQyIDEwOS41MTYtMTA5LjUxNyAyMS4wMzkgNDkuMDk3IDYwLjQyIDg4LjQ3OCAxMDkuNTE3IDEwOS41MTctNDkuMDk3IDIxLjAzOS04OC40NzggNjAuNDItMTA5LjUxNyAxMDkuNTE3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuMDM2IDIwMC40NThjLTEuODg2LTIuNTQ1LTQuODY3LTQuMDQ3LTguMDM1LTQuMDQ3cy02LjE0OSAxLjUwMS04LjAzNSA0LjA0N2MtMTMuNDE2IDE4LjEwNy0yOS40IDM0LjA5MS00Ny41MDggNDcuNTA4LTIuNTQ1IDEuODg2LTQuMDQ3IDQuODY3LTQuMDQ3IDguMDM1czEuNTAxIDYuMTQ5IDQuMDQ3IDguMDM1YzE4LjEwOCAxMy40MTYgMzQuMDkyIDI5LjQgNDcuNTA4IDQ3LjUwOCAxLjg4NiAyLjU0NSA0Ljg2NyA0LjA0NyA4LjAzNSA0LjA0N3M2LjE0OS0xLjUwMSA4LjAzNS00LjA0N2MxMy40MTYtMTguMTA4IDI5LjQtMzQuMDkyIDQ3LjUwOC00Ny41MDggMi41NDUtMS44ODYgNC4wNDctNC44NjcgNC4wNDctOC4wMzVzLTEuNTAxLTYuMTQ5LTQuMDQ3LTguMDM1Yy0xOC4xMDgtMTMuNDE3LTM0LjA5Mi0yOS40MDEtNDcuNTA4LTQ3LjUwOHptLTguMDM1IDg4LjkwOWMtMTAuMDQtMTIuMTYyLTIxLjIwNC0yMy4zMjYtMzMuMzY2LTMzLjM2NiAxMi4xNjMtMTAuMDQgMjMuMzI2LTIxLjIwNCAzMy4zNjYtMzMuMzY2IDEwLjA0IDEyLjE2MyAyMS4yMDQgMjMuMzI2IDMzLjM2NiAzMy4zNjYtMTIuMTYyIDEwLjA0LTIzLjMyNiAyMS4yMDQtMzMuMzY2IDMzLjM2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2LjAwMSA3NS45OTljNS41MjMgMCAxMC00LjQ3NyAxMC0xMHYtNTUuOTk5YzAtNS41MjMtNC40NzctMTAtMTAtMTBzLTEwIDQuNDc3LTEwIDEwdjU1Ljk5OWMwIDUuNTIzIDQuNDc3IDEwIDEwIDEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTQuNTc5IDEyOC43MjFjMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWMzLjkwNS0zLjkwNSAzLjkwNS0xMC4yMzcgMC0xNC4xNDNsLTM5LjU5Ny0zOS41OThjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDMgMHMtMy45MDUgMTAuMjM3IDAgMTQuMTQzeiIvPgogICAgICAgIDxwYXRoIGQ9Im03NiAyNTYuMDAxYzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTU2Yy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwczQuNDc3IDEwIDEwIDEwaDU2YzUuNTIyIDAgMTAtNC40NzcgMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNC41NzkgMzgzLjI4MS0zOS41OTggMzkuNTk4Yy0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDMgMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWwzOS41OTgtMzkuNTk4YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3MtMTAuMjM3LTMuOTA2LTE0LjE0MiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMDAxIDQzNi4wMDNjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2NTUuOTk5YzAgNS41MjMgNC40NzcgMTAgMTAgMTBzMTAtNC40NzcgMTAtMTB2LTU1Ljk5OWMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTcuNDI0IDM4My4yODFjLTMuOTA1LTMuOTA0LTEwLjIzNi0zLjkwNC0xNC4xNDMgMC0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDNsMzkuNTk3IDM5LjU5OGMxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MSAyLjkyOXM1LjExOS0uOTc3IDcuMDcxLTIuOTI5YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3oiLz4KICAgICAgICA8cGF0aCBkPSJtNTAyLjAwMiAyNDYuMDAxaC01NS45OTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoNTUuOTk5YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTAuMzUzIDEzMS42NDljMi41NTkgMCA1LjExOS0uOTc2IDcuMDcxLTIuOTI5bDM5LjU5Ny0zOS41OThjMy45MDUtMy45MDUgMy45MDUtMTAuMjM3IDAtMTQuMTQzcy0xMC4yMzctMy45MDUtMTQuMTQzIDBsLTM5LjU5NyAzOS41OThjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MiAyLjkyOXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYxLjg2OCAzOC43MzVjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMSA1LjA3Ny0yLjE3NSA3LjQyOC04LjA1NCA1LjI1Mi0xMy4xM2wtLjAwMy0uMDA3Yy0yLjE3NS01LjA3Ni04LjA1MS03LjQyMy0xMy4xMjktNS4yNDktNS4wNzYgMi4xNzUtNy40MjYgOC4wNTgtNS4yNSAxMy4xMzQgMS42MjUgMy43OTIgNS4zMTYgNi4wNjMgOS4xOTYgNi4wNjN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2OS44NDQgNzQuMTMxIDEzLjA1NCAzMS41MTRjMS41OTUgMy44NTEgNS4zMTggNi4xNzUgOS4yNDMgNi4xNzUgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjQgNS4xMDItMi4xMTQgNy41MjUtNy45NjMgNS40MTItMTMuMDY2bC0xMy4wNTQtMzEuNTE0Yy0yLjExNC01LjEwMy03Ljk2My03LjUyNy0xMy4wNjYtNS40MTJzLTcuNTI2IDcuOTY0LTUuNDEyIDEzLjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQuNTQyIDE3MC45NDNjMS4zNTcuNjI2IDIuNzgyLjkyMyA0LjE4NC45MjMgMy43OCAwIDcuMzk4LTIuMTU0IDkuMDg2LTUuODEyIDIuMzE0LTUuMDE0LjEyNS0xMC45NTYtNC44ODktMTMuMjdsLS4wMDYtLjAwM2MtNS4wMTMtMi4zMTUtMTAuOTUyLS4xMjUtMTMuMjY3IDQuODkxLTIuMzE2IDUuMDE0LS4xMjMgMTAuOTU2IDQuODkyIDEzLjI3MXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjYuNDc3IDE4OC4zMjEgMzEuNTE1IDEzLjA1NGMxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2IDIuMTE0LTUuMTAzLS4zMS0xMC45NTItNS40MTItMTMuMDY1bC0zMS41MTYtMTMuMDU0Yy01LjEwMS0yLjExMy0xMC45NTIuMzEtMTMuMDY1IDUuNDEyLTIuMTE0IDUuMTAyLjMxIDEwLjk1MiA1LjQxMiAxMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwNS42NDUgMzI5LjEwNGM1LjEwMy0yLjExMyA3LjUyNi03Ljk2MyA1LjQxMi0xMy4wNjUtMi4xMTMtNS4xMDMtNy45NjQtNy41MjctMTMuMDY1LTUuNDEybC0zMS41MTQgMTMuMDU0Yy01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjUgMS41OTUgMy44NTIgNS4zMTggNi4xNzYgOS4yNDMgNi4xNzYgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI0Ljc5MyAzNDAuOTQ3LS4wMDcuMDAzYy01LjA3NiAyLjE3NS03LjQyNCA4LjA1My01LjI0OSAxMy4xMjkgMS42MjUgMy43OTIgNS4zMTcgNi4wNjIgOS4xOTggNi4wNjIgMS4zMTUgMCAyLjY1Mi0uMjYxIDMuOTM2LS44MTIgNS4wNzctMi4xNzUgNy40MjgtOC4wNTQgNS4yNTItMTMuMTMxLTIuMTc0LTUuMDc1LTguMDUzLTcuNDI2LTEzLjEzLTUuMjUxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjYuMDU0IDQ3NC4xOWMtNS4wMTUtMi4zMTUtMTAuOTU2LS4xMjUtMTMuMjcgNC44ODlsLS4wMDMuMDA2Yy0yLjMxNCA1LjAxNC0uMTI0IDEwLjk1MyA0Ljg5MSAxMy4yNjcgMS4zNTYuNjI2IDIuNzguOTIyIDQuMTgyLjkyMiAzLjc4MSAwIDcuNDAxLTIuMTU2IDkuMDg5LTUuODE0IDIuMzE0LTUuMDE0LjEyNS0xMC45NTUtNC44ODktMTMuMjd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NS45NjMgNDAwLjk0NWMtNS4xMDEtMi4xMTQtMTAuOTUyLjMxLTEzLjA2NSA1LjQxMmwtMTMuMDU0IDMxLjUxNWMtMi4xMTQgNS4xMDMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NSAxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2bDEzLjA1NC0zMS41MTVjMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDYuMTk5IDQ3NC4wNzhjLTUuMDc2IDIuMTc1LTcuNDI4IDguMDU0LTUuMjUyIDEzLjEzbC4wMDMuMDA3YzEuNjI1IDMuNzkxIDUuMzE0IDYuMDYgOS4xOTIgNi4wNiAxLjMxNSAwIDIuNjUxLS4yNjEgMy45MzctLjgxMiA1LjA3Ni0yLjE3NSA3LjQyNi04LjA1OCA1LjI1LTEzLjEzNC0yLjE3NC01LjA3Ni04LjA1MS03LjQyNi0xMy4xMy01LjI1MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjE1OCA0MzcuODcxLTEzLjA1NC0zMS41MTRjLTIuMTE0LTUuMTAzLTcuOTY1LTcuNTI3LTEzLjA2NS01LjQxMi01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjVsMTMuMDU0IDMxLjUxNGMxLjU5NSAzLjg1MiA1LjMxOCA2LjE3NiA5LjI0MyA2LjE3NiAxLjI3NSAwIDIuNTcyLS4yNDUgMy44MjMtLjc2NCA1LjEwMi0yLjExMiA3LjUyNS03Ljk2MiA1LjQxMS0xMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4Ny4yMDggMzQwLjk0N2MtNS4wNzYtMi4xNzctMTAuOTU1LjE3Ny0xMy4xMyA1LjI1Mi0yLjE3NiA1LjA3Ny4xNzYgMTAuOTU2IDUuMjUyIDEzLjEzMWwuMDA2LjAwM2MxLjI4NS41NSAyLjYxOS44MTEgMy45MzMuODExIDMuODc5IDAgNy41NjktMi4yNzIgOS4xOTQtNi4wNjQgMi4xNzctNS4wNzctLjE3OC0xMC45NTctNS4yNTUtMTMuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NDUuNTI1IDMyMy42ODEtMzEuNTE0LTEzLjA1NGMtNS4xMDItMi4xMTMtMTAuOTUxLjMxLTEzLjA2NSA1LjQxMnMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NWwzMS41MTQgMTMuMDU0YzEuMjUyLjUxOSAyLjU0OC43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzYgMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00ODMuMjc0IDE3MS44NjZjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMWwuMDA3LS4wMDNjNS4wNzYtMi4xNzUgNy40MjQtOC4wNTMgNS4yNDktMTMuMTI5cy04LjA2LTcuNDI3LTEzLjEzNC01LjI1Yy01LjA3NyAyLjE3NS03LjQyOCA4LjA1NC01LjI1MiAxMy4xMzEgMS42MjUgMy43OTEgNS4zMTYgNi4wNjIgOS4xOTYgNi4wNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNi4zNTcgMTgyLjg5N2MtNS4xMDMgMi4xMTMtNy41MjYgNy45NjMtNS40MTIgMTMuMDY1IDEuNTk1IDMuODUyIDUuMzE4IDYuMTc2IDkuMjQzIDYuMTc2IDEuMjc1IDAgMi41NzItLjI0NSAzLjgyMy0uNzY0bDMxLjUxNC0xMy4wNTRjNS4xMDMtMi4xMTMgNy41MjYtNy45NjMgNS40MTItMTMuMDY1LTIuMTE0LTUuMTAzLTcuOTYzLTcuNTI3LTEzLjA2Ni01LjQxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ2LjE5OSAzNy45MjNjMS4yODUuNTUxIDIuNjIxLjgxMSAzLjkzNS44MTEgMy44OCAwIDcuNTcxLTIuMjcxIDkuMTk2LTYuMDYzbC4wMDMtLjAwN2MyLjE3Ni01LjA3Ni0uMTc3LTEwLjk1Mi01LjI1My0xMy4xMjctNS4wNzQtMi4xNzYtMTAuOTU3LjE3OS0xMy4xMzIgNS4yNTYtMi4xNzcgNS4wNzYuMTc1IDEwLjk1NSA1LjI1MSAxMy4xM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMzE2LjAzOSAxMTEuMDU3YzEuMjUxLjUxOSAyLjU0Ny43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzZsMTMuMDU0LTMxLjUxNGMyLjExNC01LjEwMy0uMzEtMTAuOTUzLTUuNDEyLTEzLjA2Ni01LjEwMS0yLjExNC0xMC45NTEuMzEtMTMuMDY1IDUuNDEybC0xMy4wNTQgMzEuNTE0Yy0yLjExNSA1LjEwMi4zMDkgMTAuOTUyIDUuNDExIDEzLjA2NnoiLz4KICAgIDwvZz4KPC9zdmc+",bfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAuMDAzLDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04cy04LDMuNTgyLTgsOHYzMkMyMzIuMDAzLDQ0LjQxOCwyMzUuNTg0LDQ4LDI0MC4wMDMsNDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0MS4wNzUsMzYuNjU2bDE2LDI3LjcwNGMyLjE4NCwzLjg0MSw3LjA2OCw1LjE4NCwxMC45MDksM3M1LjE4NC03LjA2OCwzLTEwLjkwOWMtMC4wMTctMC4wMzEtMC4wMzUtMC4wNjEtMC4wNTMtMC4wOTIKCQkJCWwtMTYtMjcuNzA0Yy0yLjE4NC0zLjg0MS03LjA2OC01LjE4NC0xMC45MDktM2MtMy44NDEsMi4xODQtNS4xODQsNy4wNjgtMywxMC45MDlDMTQxLjAzOSwzNi41OTUsMTQxLjA1NywzNi42MjYsMTQxLjA3NSwzNi42NTYKCQkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuNTY3LDEwNi44NzVjMC4wMywwLjAxOCwwLjA2MSwwLjAzNSwwLjA5MiwwLjA1M2wyNy43MDQsMTZjMy44MTIsMi4yMzQsOC43MTMsMC45NTYsMTAuOTQ3LTIuODU2CgkJCQljMi4yMzQtMy44MTIsMC45NTYtOC43MTMtMi44NTYtMTAuOTQ3Yy0wLjAzLTAuMDE4LTAuMDYxLTAuMDM1LTAuMDkyLTAuMDUzbC0yNy43MDQtMTZjLTMuODEyLTIuMjM0LTguNzEzLTAuOTU2LTEwLjk0NywyLjg1NgoJCQkJQzcxLjQ3Nyw5OS43MzksNzIuNzU1LDEwNC42NDEsNzYuNTY3LDEwNi44NzV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTk2LjAwMywxOTJjMC00LjQxOC0zLjU4Mi04LTgtOGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJDOTIuNDIxLDIwMCw5Ni4wMDMsMTk2LjQxOCw5Ni4wMDMsMTkyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuNDU2LDI2MS4wMThjLTAuMDMxLDAuMDE4LTAuMDYyLDAuMDM2LTAuMDkzLDAuMDU0bC0yNy43MDQsMTZjLTMuODQxLDIuMTgzLTUuMTg1LDcuMDY3LTMuMDAyLDEwLjkwOAoJCQkJYzIuMTgzLDMuODQxLDcuMDY3LDUuMTg1LDEwLjkwOCwzLjAwMmMwLjAzMS0wLjAxOCwwLjA2Mi0wLjAzNiwwLjA5My0wLjA1NGwyNy43MDQtMTZjMy44NDEtMi4xODMsNS4xODUtNy4wNjcsMy4wMDItMTAuOTA4CgkJCQlDMTEzLjE4MSwyNjAuMTc5LDEwOC4yOTcsMjU4LjgzNSwxMDQuNDU2LDI2MS4wMTh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQwMy40NCwyNzcuMTI2Yy0wLjAzMS0wLjAxOC0wLjA2Mi0wLjAzNi0wLjA5My0wLjA1NGwtMjcuNzA0LTE2Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMi4yMzUsMy44MTEtMC45NTcsOC43MTMsMi44NTQsMTAuOTQ4YzAuMDMxLDAuMDE4LDAuMDYyLDAuMDM2LDAuMDkzLDAuMDU0bDI3LjcwNCwxNmMzLjgxMSwyLjIzNSw4LjcxMywwLjk1NywxMC45NDgtMi44NTQKCQkJCUM0MDguNTI5LDI4NC4yNjIsNDA3LjI1MSwyNzkuMzYxLDQwMy40NCwyNzcuMTI2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjQuMDAzLDE4NGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJjNC40MTgsMCw4LTMuNTgyLDgtOFM0MjguNDIxLDE4NCw0MjQuMDAzLDE4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzcxLjY1MSwxMjRjMS40MDQsMCwyLjc4NC0wLjM3LDQtMS4wNzJsMjcuNzA0LTE2YzMuODQxLTIuMTg0LDUuMTg0LTcuMDY4LDMtMTAuOTA5cy03LjA2OC01LjE4NC0xMC45MDktMwoJCQkJYy0wLjAzMSwwLjAxNy0wLjA2MSwwLjAzNS0wLjA5MiwwLjA1M2wtMjcuNzA0LDE2Yy0zLjgyNiwyLjIwOS01LjEzNyw3LjEwMi0yLjkyOCwxMC45MjgKCQkJCUMzNjYuMTUyLDEyMi40NzUsMzY4Ljc5MywxMjQsMzcxLjY1MSwxMjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMxMS45OTMsNjcuMjkxYzAuMDAzLDAuMDAyLDAuMDA2LDAuMDA0LDAuMDA5LDAuMDA1YzMuODI3LDIuMjA3LDguNzIsMC44OTQsMTAuOTI3LTIuOTM0CgkJCQljMC0wLjAwMSwwLjAwMS0wLjAwMiwwLjAwMS0wLjAwMmwxNi0yNy43MDRjMi4yMzUtMy44MTEsMC45NTctOC43MTMtMi44NTQtMTAuOTQ4Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMC4wMTgsMC4wMzEtMC4wMzYsMC4wNjItMC4wNTQsMC4wOTNsLTE2LDI3LjcwNEMzMDYuODYyLDYwLjE4NCwzMDguMTY5LDY1LjA3OCwzMTEuOTkzLDY3LjI5MXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LjAwMywzMjBjNC40MTgsMCw4LTMuNTgyLDgtOHYtODhoMTZjMTcuNjczLDAsMzItMTQuMzI3LDMyLTMycy0xNC4zMjctMzItMzItMzJjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMnYxNmgtMTYKCQkJCXYtMTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiwxNC4zMjctMzIsMzJzMTQuMzI3LDMyLDMyLDMyaDE2djg4YzAsNC40MTgsMy41ODIsOCw4LDhzOC0zLjU4Miw4LTh2LTg4aDE2djg4CgkJCQlDMjQ4LjAwMywzMTYuNDE4LDI1MS41ODQsMzIwLDI1Ni4wMDMsMzIweiBNMjY0LjAwMywxOTJjMC04LjgzNyw3LjE2My0xNiwxNi0xNnMxNiw3LjE2MywxNiwxNnMtNy4xNjMsMTYtMTYsMTZoLTE2VjE5MnoKCQkJCSBNMjE2LjAwMywyMDhoLTE2Yy04LjgzNywwLTE2LTcuMTYzLTE2LTE2czcuMTYzLTE2LDE2LTE2czE2LDcuMTYzLDE2LDE2VjIwOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQ2LjIxOSw2NC4xNTJjLTcwLjYxMS0zLjM5Mi0xMzAuNjAzLDUxLjA5OS0xMzMuOTk1LDEyMS43MWMtMS45NDMsNDAuNDMyLDE1LjM1NCw3OS40LDQ2LjY0MywxMDUuMDgyCgkJCQljNS42MzksNC40MTcsOC45OTQsMTEuMTM1LDkuMTM2LDE4LjI5NlYzMjhjMC4wNDIsMTAuMTM0LDYuNDQ1LDE5LjE1LDE2LDIyLjUyOFYzNjBjMC4wMjEsNS45MjMsMi4yNDUsMTEuNjI3LDYuMjQsMTYKCQkJCWMtOC4zMiw5LjA0NC04LjMyLDIyLjk1NiwwLDMyYy04Ljg5NCw5Ljc1LTguMiwyNC44NjQsMS41NSwzMy43NThjNC40MjksNC4wNCwxMC4yMTUsNi4yNjgsMTYuMjEsNi4yNDIKCQkJCWM0LjMwNiwwLjExMyw3Ljg4OS0zLjI4Nyw4LjAwMS03LjU5M2MwLjA0NC0xLjY4LTAuNDU2LTMuMzMtMS40MjUtNC43MDNjLTAuMjUzLTAuNDg5LTAuNTUzLTAuOTUzLTAuODk2LTEuMzg0CgkJCQljLTAuNjU4LTAuNjAyLTEuNDA5LTEuMDk0LTIuMjI0LTEuNDU2Yy0wLjIzMi0wLjEyLTAuNDY0LTAuMjE2LTAuNzA0LTAuMzEyYy0wLjgxLTAuMjk1LTEuNjU5LTAuNDY1LTIuNTItMC41MDQKCQkJCWMtMC4wOCwwLTAuMTUyLTAuMDQ4LTAuMjMyLTAuMDQ4Yy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMgoJCQkJYy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMmMtNC40MTgsMC04LTMuNTgyLTgtOHYtOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04CgkJCQlzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LTMuNTgyLTgtOHYtMTguNzZjLTAuMTMxLTExLjk2Mi01LjY0LTIzLjIzLTE1LTMwLjY4Yy00Ny43ODgtMzkuMjc0LTU0LjY4OS0xMDkuODUyLTE1LjQxNS0xNTcuNjQKCQkJCWMyMi40NjYtMjcuMzM2LDU2LjUyOC00Mi40NDgsOTEuODcxLTQwLjc2YzU5LjEwNywzLjUxNiwxMDUuNTM2LDUxLjk1NywxMDYuNTQ0LDExMS4xNmMwLjI4NywzNC4wNTItMTUuMDI0LDY2LjM2My00MS41Niw4Ny43MDQKCQkJCWMtOS4yOSw3LjY1Mi0xNC42MDIsMTkuMTA5LTE0LjQ0LDMxLjE0NFYzMjhjMCw0LjQxOC0zLjU4Miw4LTgsOGgtMjRjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMTZ2OAoJCQkJYzAsNC40MTgtMy41ODIsOC04LDhoLThjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoOGM0LjQxOCwwLDgsMy41ODIsOCw4cy0zLjU4Miw4LTgsOGgtOGMtNC40MTgsMC04LDMuNTgyLTgsOAoJCQkJczMuNTgyLDgsOCw4aDhjNC40MTgsMCw4LDMuNTgyLDgsOHMtMy41ODIsOC04LDhoLTQwYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMwLjYzMgoJCQkJYy00LjQxNywxMi40OTctMTguMTI5LDE5LjA0Ny0zMC42MjYsMTQuNjNjLTMuODI2LTEuMzUyLTcuMjQ2LTMuNjUzLTkuOTQyLTYuNjg2Yy0yLjkzOC0zLjMtNy45OTYtMy41OTQtMTEuMjk2LTAuNjU2CgkJCQljLTMuMywyLjkzOC0zLjU5NCw3Ljk5Ni0wLjY1NiwxMS4yOTZjMTQuNjMxLDE2LjQ4NywzOS44NTcsMTcuOTkyLDU2LjM0NCwzLjM2MmM2LjgxLTYuMDQzLDExLjM0OS0xNC4yMzIsMTIuODY0LTIzLjIxCgkJCQljMTIuNTI5LTMuOTE2LDE5LjUxMS0xNy4yNDcsMTUuNTk2LTI5Ljc3NmMtMS4wNC0zLjMyOS0yLjgwMS02LjM4OC01LjE1Ni04Ljk2YzguMzItOS4wNDQsOC4zMi0yMi45NTYsMC0zMgoJCQkJYzMuOTk1LTQuMzczLDYuMjE5LTEwLjA3Nyw2LjI0LTE2di05LjQ3MmM5LjU1NS0zLjM3OCwxNS45NTgtMTIuMzk0LDE2LTIyLjUyOHYtMTcuODMyYy0wLjEwNy03LjE4NywzLjAwNy0xNC4wNDYsOC40ODgtMTguNjk2CgkJCQljMzAuMzQ0LTI0LjM5NSw0Ny44NS02MS4zMzksNDcuNTEyLTEwMC4yNzJDMzY2Ljg0NywxMjMuNTMyLDMxMy43NzcsNjguMTY5LDI0Ni4yMTksNjQuMTUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Qfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjU1Ljk5OSwwYy03OS4wNDQsMC0xNDMuMzUyLDY0LjMwOC0xNDMuMzUyLDE0My4zNTN2NzAuMTkzYzAsNC43OCwzLjg3OSw4LjY1Niw4LjY1OSw4LjY1Nmg0OC4wNTcKCQkJYzQuNzgsMCw4LjY1Ni0zLjg3Niw4LjY1Ni04LjY1NnYtNzAuMTkzYzAtNDIuOTk4LDM0Ljk4MS03Ny45OCw3Ny45NzktNzcuOThzNzcuOTc5LDM0Ljk4Miw3Ny45NzksNzcuOTh2NzAuMTkzCgkJCWMwLDQuNzgsMy44OCw4LjY1Niw4LjY2MSw4LjY1Nmg0OC4wNTdjNC43OCwwLDguNjU2LTMuODc2LDguNjU2LTguNjU2di03MC4xOTNDMzk5LjM1Miw2NC4zMDgsMzM1LjA0NCwwLDI1NS45OTksMHoKCQkJIE0zODIuMDQsMjA0Ljg5aC0zMC43NDh2LTYxLjUzN2MwLTUyLjU0NC00Mi43NDgtOTUuMjkyLTk1LjI5MS05NS4yOTJzLTk1LjI5MSw0Mi43NDgtOTUuMjkxLDk1LjI5MnY2MS41MzdoLTMwLjc0OHYtNjEuNTM3CgkJCWMwLTY5LjQ5OSw1Ni41NC0xMjYuMDQsMTI2LjAzOC0xMjYuMDRjNjkuNDk5LDAsMTI2LjA0LDU2LjU0MSwxMjYuMDQsMTI2LjA0VjIwNC44OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDEwLjYzLDIwNC44OUgxMDEuMzcxYy0yMC41MDUsMC0zNy4xODgsMTYuNjgzLTM3LjE4OCwzNy4xODh2MjMyLjczNGMwLDIwLjUwNSwxNi42ODMsMzcuMTg4LDM3LjE4OCwzNy4xODhINDEwLjYzCgkJCWMyMC41MDUsMCwzNy4xODctMTYuNjgzLDM3LjE4Ny0zNy4xODlWMjQyLjA3OEM0NDcuODE3LDIyMS41NzMsNDMxLjEzNSwyMDQuODksNDEwLjYzLDIwNC44OXogTTQzMC41MDUsNDc0LjgxMQoJCQljMCwxMC45Ni04LjkxNiwxOS44NzYtMTkuODc1LDE5Ljg3NkgxMDEuMzcxYy0xMC45NiwwLTE5Ljg3Ni04LjkxNi0xOS44NzYtMTkuODc2VjI0Mi4wNzhjMC0xMC45Niw4LjkxNi0xOS44NzYsMTkuODc2LTE5Ljg3NgoJCQlINDEwLjYzYzEwLjk1OSwwLDE5Ljg3NSw4LjkxNiwxOS44NzUsMTkuODc2VjQ3NC44MTF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI4NS4xMSwzNjkuNzgxYzEwLjExMy04LjUyMSwxNS45OTgtMjAuOTc4LDE1Ljk5OC0zNC4zNjVjMC0yNC44NzMtMjAuMjM2LTQ1LjEwOS00NS4xMDktNDUuMTA5CgkJCWMtMjQuODc0LDAtNDUuMTEsMjAuMjM2LTQ1LjExLDQ1LjEwOWMwLDEzLjM4Nyw1Ljg4NSwyNS44NDQsMTYsMzQuMzY3bC05LjczMSw0Ni4zNjJjLTAuNTM1LDIuNTU0LDAuMTA4LDUuMjExLDEuNzUyLDcuMjM2CgkJCWMxLjY0NSwyLjAyMyw0LjExMywzLjIsNi43MiwzLjJoNjAuNzM4YzIuNjA4LDAsNS4wNzYtMS4xNzYsNi43MTktMy4yYzEuNjQzLTIuMDI2LDIuMjg2LTQuNjgzLDEuNzUxLTcuMjM0TDI4NS4xMSwzNjkuNzgxegoJCQkgTTI3MC44NTEsMzU4LjgyYy0zLjA0LDEuOTM2LTQuNTY1LDUuNTUzLTMuODI0LDkuMDgxbDguNjgsNDEuMzY2aC0zOS40MTVsOC42ODItNDEuMzYzYzAuNzQtMy41MjktMC43ODItNy4xNDYtMy44MjQtOS4wODEKCQkJYy04LjEwOC01LjE2LTEyLjk0OC0xMy45MTEtMTIuOTQ4LTIzLjQwNmMwLTE1LjMyNywxMi40NjktMjcuNzk2LDI3Ljc5Ny0yNy43OTZjMTUuMzI3LDAsMjcuNzk2LDEyLjQ2OSwyNy43OTYsMjcuNzk2CgkJCUMyODMuNzk3LDM0NC45MTQsMjc4Ljk1NywzNTMuNjYzLDI3MC44NTEsMzU4LjgyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Ufe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk0LjkzMzU5NCAwaC00NzcuODY3MTg4Yy05LjQyMTg3NS4wMDc4MTI1LTE3LjA1ODU5MzUgNy42NDQ1MzEtMTcuMDY2NDA2IDE3LjA2NjQwNnY1OS43MzQzNzVjLjAwNzgxMjUgOS40MjE4NzUgNy42NDQ1MzEgMTcuMDU0Njg4IDE3LjA2NjQwNiAxNy4wNjY0MDdoMTAuODk0NTMybC0yNi44MzU5MzggNDYuOTY0ODQzYy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE5NTMxIDEuNTI3MzQ0IDIuNjI4OTA3IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45NjQ4NDRjLTEuNTA3ODEyIDIuNjQwNjI1LTEuNSA1Ljg4NjcxOS4wMjczNDQgOC41MTU2MjUgMS41MjczNDQgMi42MzI4MTMgNC4zMzk4NDQgNC4yNSA3LjM4MjgxMiA0LjI1aDE5LjQyNTc4MmwtMjYuODM1OTM4IDQ2Ljk2ODc1Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODI4MTMuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjI4OTA2IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNyA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEyIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNTM5MDZoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEzIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNiA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoNDk0LjkyOTY4OGMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDk0IDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MTcxODcgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYyODkwNiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45NjQ4NDRoMTkuNDI1NzgyYzMuMDQyOTY4LS4wMDM5MDYgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNTM5MDYgMS41MjczNDQtMi42Mjg5MDYgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY0ODQ0aDE5LjQyNTc4MmMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDkzIDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYzMjgxMiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45Njg3NWgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYxNzE4NyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjI4OTA2IDEuNTM1MTU2LTUuODc1LjAyNzM0NC04LjUxNTYyNWwtMjYuODM1OTM4LTQ2Ljk2NDg0NGgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYyMTA5MyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjMyODEyIDEuNTM1MTU2LTUuODc4OTA2LjAyNzM0NC04LjUxOTUzMWwtMjYuODM1OTM4LTQ2Ljk2NDg0M2gxMC44OTQ1MzJjOS40MjE4NzUtLjAxMTcxOSAxNy4wNTQ2ODctNy42NDQ1MzIgMTcuMDY2NDA2LTE3LjA2NjQwN3YtNTkuNzM0Mzc1Yy0uMDExNzE5LTkuNDIxODc1LTcuNjQ0NTMxLTE3LjA1NDY4NzItMTcuMDY2NDA2LTE3LjA2NjQwNnptLTQ0Ny4zMTY0MDYgOTMuODY3MTg4aDQ2LjI1djQyLjY2Nzk2OGgtNzAuNjI4OTA3em0zMTkuMzE2NDA2IDB2NDIuNjY3OTY4aC0yMjEuODY3MTg4di00Mi42Njc5Njh6bTY4LjI2NTYyNSAwdjQyLjY2Nzk2OGgtMTcuMDY2NDA3di00Mi42Njc5Njh6bS0yOTAuMTMyODEzIDM0MS4zMzIwMzF2LTQyLjY2NDA2M2gyMjEuODY3MTg4djQyLjY2NDA2M3ptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY3OTY5aC0yMjEuODY3MTg4di00Mi42Njc5Njl6bTAtMjU2aC0yMjEuODY3MTg4di00Mi42NjQwNjNoMjIxLjg2NzE4OHptMTcuMDY2NDA2LTQyLjY2NDA2M2gxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bS0yMzguOTMzNTk0IDE2Mi4xMzI4MTN2LTQyLjY2Nzk2OWgyMjEuODY3MTg4djQyLjY2Nzk2OXptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY0MDYzaC0yMjEuODY3MTg4di00Mi42NjQwNjN6bS0yMjEuODY3MTg4LTc2LjgwMDc4MXYtNDIuNjY3OTY5aDIyMS44NjcxODh2NDIuNjY3OTY5em0tMTcuMDY2NDA2LTU5LjczNDM3NWgtMTcuMDY2NDA2di00Mi42NjQwNjNoMTcuMDY2NDA2em0wIDE3LjA2NjQwNnY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0yNTYgMGgxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bTAtMTcuMDcwMzEydi00Mi42NjQwNjNoMTcuMDY2NDA2djQyLjY2NDA2M3ptMC01OS43MzA0Njl2LTQyLjY2Nzk2OWgxNy4wNjY0MDZ2NDIuNjY3OTY5em0wLTU5LjczNDM3NXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTM0LjEzMjgxMi00Mi42Njc5NjloMTcuMDY2NDA3djQyLjY2Nzk2OWgtMTcuMDY2NDA3em0wLTE3LjA2NjQwNnYtNDIuNjY0MDYzaDE3LjA2NjQwN3Y0Mi42NjQwNjN6bS0xNy4wNjY0MDYtNTkuNzMwNDY5aC0xNy4wNjY0MDZ2LTQyLjY2Nzk2OGgxNy4wNjY0MDZ6bS0yNzMuMDY2NDA2IDBoLTE3LjA2NjQwNnYtNDIuNjY3OTY4aDE3LjA2NjQwNnptLTgwLjM4MjgxMiAxNy4wNjY0MDZoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzMwNDY5aDQ2LjI1djQyLjY2Nzk2OWgtNzAuNjI4OTA3em0wIDU5LjczNDM3NWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptMCA1OS43MzQzNzVoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzM0Mzc1aDQ2LjI1djQyLjY2NDA2M2gtNzAuNjI4OTA3em0wIDU5LjczMDQ2OWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptNjMuMzE2NDA2IDQyLjY2Nzk2OXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTI3My4wNjY0MDYgMHYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTEwNC43NTc4MTIgMGgtNzAuNjI1di00Mi42Njc5NjloNDYuMjV6bTAtNTkuNzM0Mzc1aC03MC42MjV2LTQyLjY2NDA2M2g0Ni4yNXptMC01OS43MzQzNzVoLTcwLjYyNXYtNDIuNjY0MDYzaDQ2LjI1em0wLTU5LjczMDQ2OWgtNzAuNjI1di00Mi42Njc5NjloMTcuMDY2NDA3djE3LjA2NjQwNmMwIDQuNzE0ODQ0IDMuODIwMzEyIDguNTM1MTU3IDguNTM1MTU2IDguNTM1MTU3IDQuNzEwOTM3IDAgOC41MzEyNS0zLjgyMDMxMyA4LjUzMTI1LTguNTM1MTU3di0xNy4wNjY0MDZoMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42Njc5NjloMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42NjQwNjNoMTIuMTE3MTg3em0wLTU5LjczMDQ2OWgtMzYuNDkyMTg3di00Mi42Njc5NjhoMTIuMTE3MTg3em0tMTkuNDI1NzgxLTU5LjczNDM3NWgtNDUyLjI2NTYyNXYtNTkuNzM0Mzc1aDQ3Ny44NjcxODhsLjAwNzgxMiA1OS43MzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01OS43MzQzNzUgNDIuNjY3OTY5aC0xNy4wNjY0MDZjLTQuNzE0ODQ0IDAtOC41MzUxNTcgMy44MjAzMTItOC41MzUxNTcgOC41MzEyNSAwIDQuNzE0ODQzIDMuODIwMzEzIDguNTM1MTU2IDguNTM1MTU3IDguNTM1MTU2aDE3LjA2NjQwNmM0LjcxMDkzNyAwIDguNTMxMjUtMy44MjAzMTMgOC41MzEyNS04LjUzNTE1NiAwLTQuNzEwOTM4LTMuODIwMzEzLTguNTMxMjUtOC41MzEyNS04LjUzMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ1LjA2NjQwNiA0Mi42Njc5NjloLTUxLjE5OTIxOGMtNC43MTQ4NDQgMC04LjUzNTE1NyAzLjgyMDMxMi04LjUzNTE1NyA4LjUzMTI1IDAgNC43MTQ4NDMgMy44MjAzMTMgOC41MzUxNTYgOC41MzUxNTcgOC41MzUxNTZoNTEuMTk5MjE4YzQuNzE0ODQ0IDAgOC41MzUxNTYtMy44MjAzMTMgOC41MzUxNTYtOC41MzUxNTYgMC00LjcxMDkzOC0zLjgyMDMxMi04LjUzMTI1LTguNTM1MTU2LTguNTMxMjV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",$fe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMjQzLjc4M2MtLjk1MSAwLTEuODY4LjE0MS0yLjczOS4zODlsLS4wMDItLjAwNy0yOC43MjIgOC4xODdjLTUuMzExIDEuNTE0LTguMzkgNy4wNDctNi44NzYgMTIuMzU4IDEuMjUzIDQuMzk2IDUuMjU4IDcuMjYxIDkuNjEyIDcuMjYxLjkwNyAwIDEuODMtLjEyNSAyLjc0Ni0uMzg1bDE1Ljk4MS00LjU1NHYzNS40MmwtMTI0IDM1LjM0NXYtMzUuNDJsMjEuNDY0LTYuMTE4YzUuMzExLTEuNTE0IDguMzktNy4wNDcgNi44NzYtMTIuMzU4cy03LjA0NS04LjM4Ny0xMi4zNTgtNi44NzZsLTI4LjcyMyA4LjE4Ny4wMDEuMDA3Yy00LjE4OSAxLjE5My03LjI2IDUuMDM5LTcuMjYgOS42MXYxMjcuMTk5Yy04LjM2My02LjI5My0xOC43NTItMTAuMDI4LTMwLTEwLjAyOC0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDA2bDEyNC0zNS4zNDV2NTcuNzMzYy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xNjcuMTcyYzAtNS41MjMtNC40NzctMTAtMTAtMTB6bS0xODQgMjQ4LjIxN2MtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xNDQtNDEuMDQ1Yy0xNi41NDIgMC0zMC0xMy40NTgtMzAtMzBzMTMuNDU4LTMwIDMwLTMwIDMwIDEzLjQ1OCAzMCAzMC0xMy40NTggMzAtMzAgMzB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUwOC4wMTMgMi4wMWMtMi41MTEtMS44ODktNS43NjMtMi40ODctOC43ODItMS42MTlsLTEwNC40MDggMzAuMDg5Yy00LjI4MiAxLjIzNC03LjIzMSA1LjE1Mi03LjIzMSA5LjYwOXYxMjcuMTk5Yy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDNsOTcuMTc3LTI4LjAwNWM0LjI4Mi0xLjIzNCA3LjIzMS01LjE1MiA3LjIzMS05LjYwOXYtNTYuMjE3YzAtMy4xNDItMS40NzctNi4xMDEtMy45ODctNy45OXptLTE1MC40MjEgMjM1LjI1MWMtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xMzQuNDA4LTE3OC41NjktODQuNDA4IDI0LjMyNXYtMzUuNDAzbDg0LjQwOC0yNC4zMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MS41OTEgMzQ4Ljc2Mi00OC4yODgtNy4wMTctMjEuNTk1LTQzLjc1NmMtMS42ODUtMy40MTMtNS4xNjEtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0yMS41OTUgNDMuNzU2LTQ4LjI4OCA3LjAxN2MtMy43NjcuNTQ3LTYuODk2IDMuMTg2LTguMDczIDYuODA2cy0uMTk1IDcuNTk0IDIuNTMxIDEwLjI1MWwzNC45NDEgMzQuMDYtOC4yNDkgNDguMDkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNiA3LjE2MiAyLjUzMiAxMC41MzEuNzYxbDQzLjE5LTIyLjcwNyA0My4xOSAyMi43MDZjMS40NjMuNzcgMy4wNjEgMS4xNDkgNC42NTIgMS4xNDkgMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzNyA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtOC4yNDktNDguMDkzIDM0Ljk0MS0zNC4wNmMyLjcyNi0yLjY1NyAzLjcwNy02LjYzMSAyLjUzMS0xMC4yNTFzLTQuMzA0LTYuMjU4LTguMDcxLTYuODA1em0tNDcuMTI0IDQwLjQ2NGMtMi4zNTcgMi4yOTctMy40MzMgNS42MDctMi44NzYgOC44NTFsNS43MTIgMzMuMzA0LTI5LjkwOS0xNS43MjRjLTIuOTEzLTEuNTMyLTYuMzkzLTEuNTMyLTkuMzA3IDBsLTI5LjkwOSAxNS43MjQgNS43MTItMzMuMzA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MWwtMjQuMTk2LTIzLjU4NiAzMy40MzktNC44NTljMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDE0Ljk1NS0zMC4zMDEgMTQuOTU0IDMwLjMwMWMxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDMzLjQzOSA0Ljg1OXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjIgOTAuNzA2LTYuNjIgMzguNTkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNyA3LjE2MyAyLjUzMyAxMC41MzEuNzYxbDM0LjY1OC0xOC4yMjEgMzQuNjU5IDE4LjIyMWMxLjQ2My43NjkgMy4wNjEgMS4xNDggNC42NTIgMS4xNDggMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzOCA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtNi42Mi0zOC41OTMgMjguMDQtMjcuMzMxYzIuNzI2LTIuNjU3IDMuNzA3LTYuNjMxIDIuNTMxLTEwLjI1MXMtNC4zMDYtNi4yNTgtOC4wNzMtNi44MDZsLTM4Ljc1LTUuNjMxLTE3LjMyOC0zNS4xMTJjLTEuNjg0LTMuNDEzLTUuMTYtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0xNy4zMjkgMzUuMTEzLTM4Ljc1IDUuNjMxYy0zLjc2Ny41NDctNi44OTYgMy4xODYtOC4wNzMgNi44MDZzLS4xOTUgNy41OTQgMi41MzEgMTAuMjUxem0yNC4zMy0zMC45ODNjMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDEwLjY4OC0yMS42NTcgMTAuNjg4IDIxLjY1N2MxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDIzLjkgMy40NzMtMTcuMjkyIDE2Ljg1OGMtMi4zNTcgMi4yOTgtMy40MzMgNS42MDgtMi44NzYgOC44NTJsNC4wODMgMjMuODA0LTIxLjM3Ny0xMS4yMzhjLTEuNDU3LS43NjYtMy4wNTUtMS4xNDktNC42NTMtMS4xNDktMS41OTkgMC0zLjE5Ny4zODMtNC42NTMgMS4xNDlsLTIxLjM3NyAxMS4yMzggNC4wODMtMjMuODA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MmwtMTcuMjk2LTE2Ljg1OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0IDg2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMTU2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzQgMTI2LjMwNmgtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoMTBjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NCAxNDYuMzA2aDEwYzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwaC0xMGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3NyAxMCAxMCAxMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYyIDI4NC4zMWMyLjYzIDAgNS4yMS0xLjA3IDcuMDctMi45M3MyLjkzLTQuNDQgMi45My03LjA3YzAtMi42NC0xLjA3LTUuMjEtMi45My03LjA4LTEuODYtMS44Ni00LjQ0LTIuOTItNy4wNy0yLjkycy01LjIxIDEuMDYtNy4wNyAyLjkyYy0xLjg2IDEuODctMi45MyA0LjQ0LTIuOTMgNy4wOCAwIDIuNjMgMS4wNyA1LjIxIDIuOTMgNy4wN3M0LjQ0IDIuOTMgNy4wNyAyLjkzeiIvPgogICAgPC9nPgo8L3N2Zz4=",Pfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwNS40IDUwNS40Ij4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzNy4xLDIzMy40NWMxNC44LTEwLjQsMjQuNi0yNy43LDI0LjYtNDcuMmMwLTMxLjktMjUuOC01Ny43LTU3LjctNTcuN2MtMzEuOSwwLTU3LjcsMjUuOC01Ny43LDU3LjcKCQkJYzAsMTkuNSw5LjcsMzYuOCwyNC42LDQ3LjJjLTEyLjcsNC40LTI0LjMsMTEuMi0zNC4xLDIwYy0xMy41LTExLjUtMjkuNC0yMC4zLTQ2LjgtMjUuNWMyMS4xLTEyLjgsMzUuMy0zNi4xLDM1LjMtNjIuNgoJCQljMC00MC40LTMyLjctNzMuMS03My4xLTczLjFjLTQwLjQsMC03My4xLDMyLjgtNzMuMSw3My4xYzAsMjYuNSwxNC4xLDQ5LjgsMzUuMyw2Mi42Yy0xNy4yLDUuMi0zMi45LDEzLjktNDYuMywyNS4yCgkJCWMtOS44LTguNi0yMS4yLTE1LjMtMzMuNy0xOS42YzE0LjgtMTAuNCwyNC42LTI3LjcsMjQuNi00Ny4yYzAtMzEuOS0yNS44LTU3LjctNTcuNy01Ny43cy01Ny43LDI1LjgtNTcuNyw1Ny43CgkJCWMwLDE5LjUsOS43LDM2LjgsMjQuNiw0Ny4yQzI4LjUsMjQ3LjI1LDAsMjg0Ljk1LDAsMzI5LjI1djYuNmMwLDAuMiwwLjIsMC40LDAuNCwwLjRoMTIyLjNjLTAuNyw1LjUtMS4xLDExLjItMS4xLDE2Ljl2Ni44CgkJCWMwLDI5LjQsMjMuOCw1My4yLDUzLjIsNTMuMmgxNTVjMjkuNCwwLDUzLjItMjMuOCw1My4yLTUzLjJ2LTYuOGMwLTUuNy0wLjQtMTEuNC0xLjEtMTYuOUg1MDVjMC4yLDAsMC40LTAuMiwwLjQtMC40di02LjYKCQkJQzUwNS4yLDI4NC44NSw0NzYuOCwyNDcuMTUsNDM3LjEsMjMzLjQ1eiBNMzYyLjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43CgkJCWMwLDIyLjctMTguMyw0MS4yLTQwLjksNDEuN2MtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzM4MC41LDIyNy40NSwzNjIuMywyMDguOTUsMzYyLjMsMTg2LjE1eiBNMTk0LjksMTY1LjM1CgkJCWMwLTMxLjUsMjUuNi01Ny4xLDU3LjEtNTcuMXM1Ny4xLDI1LjYsNTcuMSw1Ny4xYzAsMzAuNC0yMy45LDU1LjMtNTMuOCw1N2MtMS4xLDAtMi4yLDAtMy4zLDBjLTEuMSwwLTIuMiwwLTMuMywwCgkJCUMyMTguOCwyMjAuNjUsMTk0LjksMTk1Ljc1LDE5NC45LDE2NS4zNXogTTU5LjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43YzAsMjIuNy0xOC4zLDQxLjItNDAuOSw0MS43CgkJCWMtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzc3LjYsMjI3LjQ1LDU5LjMsMjA4Ljk1LDU5LjMsMTg2LjE1eiBNMTI1LjUsMzIwLjE1SDE2LjJjNC41LTQyLjYsNDAuNS03Niw4NC4yLTc2LjMKCQkJYzAuMiwwLDAuNCwwLDAuNiwwczAuNCwwLDAuNiwwYzIwLjgsMC4xLDM5LjgsNy44LDU0LjUsMjAuM0MxNDEuNywyNzkuNzUsMTMxLDI5OC45NSwxMjUuNSwzMjAuMTV6IE0zNjYuOCwzNTkuOTUKCQkJYzAsMjAuNS0xNi43LDM3LjItMzcuMiwzNy4yaC0xNTVjLTIwLjUsMC0zNy4yLTE2LjctMzcuMi0zNy4ydi02LjhjMC02Mi4xLDQ5LjYtMTEyLjksMTExLjMtMTE0LjdjMS4xLDAuMSwyLjMsMC4xLDMuNCwwLjEKCQkJczIuMywwLDMuNC0wLjFjNjEuNywxLjgsMTExLjMsNTIuNiwxMTEuMywxMTQuN1YzNTkuOTV6IE0zNzguNywzMjAuMTVjLTUuNS0yMS4xLTE2LTQwLTMwLjMtNTUuNmMxNC44LTEyLjgsMzQtMjAuNSw1NS0yMC43CgkJCWMwLjIsMCwwLjQsMCwwLjYsMHMwLjQsMCwwLjYsMGM0My43LDAuMyw3OS43LDMzLjcsODQuMiw3Ni4zSDM3OC43eiIvPgogICAgPC9nPgo8L3N2Zz4K",Wfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Bfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAxNjBoLTMydi04MGMwLTguODIyLTcuMTc4LTE2LTE2LTE2aC0zMnYtNDBjMC0xMy4yMzMtMTAuNzY3LTI0LTI0LTI0aC0yMjRjLTEzLjIzMyAwLTI0IDEwLjc2Ny0yNCAyNHY0MGgtMzJjLTguODIyIDAtMTYgNy4xNzgtMTYgMTZ2ODBoLTMyYy0yMi4wNTYgMC00MCAxNy45NDQtNDAgNDB2MTc2YzAgMjIuMDU2IDE3Ljk0NCA0MCA0MCA0MGg4MHY3MmMwIDEzLjIzMyAxMC43NjcgMjQgMjQgMjRoMjI0YzEzLjIzMyAwIDI0LTEwLjc2NyAyNC0yNHYtNzJoODBjMjIuMDU2IDAgNDAtMTcuOTQ0IDQwLTQwdi0xNzZjMC0yMi4wNTYtMTcuOTQ0LTQwLTQwLTQwem0tNDgtODB2ODBoLTMydi04MHptLTI4OC01NmMwLTQuNDExIDMuNTg5LTggOC04aDIyNGM0LjQxMSAwIDggMy41ODkgOCA4djEzNmgtMjQwYzAtMS42MzUgMC0xMzAuMjExIDAtMTM2em0tNDggNTZoMzJ2ODBoLTMyem0yODggNDA4YzAgNC40MTEtMy41ODkgOC04IDhoLTIyNGMtNC40MTEgMC04LTMuNTg5LTgtOHYtMTM2aDI0MHptMTIwLTExMmMwIDEzLjIzMy0xMC43NjcgMjQtMjQgMjRoLTgwdi00OGgxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOGMtMjguNjU3IDAtMjkwLjg4MyAwLTMwNCAwLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDhoMTZ2NDhoLTgwYy0xMy4yMzMgMC0yNC0xMC43NjctMjQtMjR2LTE3NmMwLTEzLjIzMyAxMC43NjctMjQgMjQtMjRoNDMyYzEzLjIzMyAwIDI0IDEwLjc2NyAyNCAyNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDU2IDE5MmMtMTMuMjMzIDAtMjQgMTAuNzY3LTI0IDI0czEwLjc2NyAyNCAyNCAyNCAyNC0xMC43NjcgMjQtMjQtMTAuNzY3LTI0LTI0LTI0em0wIDMyYy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTIgMTkyYy0xMy4yMzMgMC0yNCAxMC43NjctMjQgMjRzMTAuNzY3IDI0IDI0IDI0IDI0LTEwLjc2NyAyNC0yNC0xMC43NjctMjQtMjQtMjR6bTAgMzJjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCAzNzZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0MTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0NTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Jfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NzMuNTc0IDI1Mi40MzJoLTczLjE4NHYtNDMuNzYxYzAtMTEuNDczLTkuMzM0LTIwLjgwNy0yMC44MDctMjAuODA3LTkuODg2IDAtMzQuMjk1IDAtNDQuMzAyIDB2LTE3Ljg0MWMwLTEyLjM5OS0xMC4wODctMjIuNDg2LTIyLjQ4Ni0yMi40ODZoLTE3LjU5NWwxNC43MjQtNDcuNTM1YzE2Ljc1OS42OTIgMzAuNTM5LTEyLjc1IDMwLjUzOS0yOS4yODQgMC0xNi4xNjQtMTMuMTUxLTI5LjMxNS0yOS4zMTUtMjkuMzE1LTI5LjI2OCAwLTQwLjQ1NSAzOC41MS0xNS41NDEgNTQuMTU0bC0xNi4xMDEgNTEuOTc5aC0zMC4xMzNjLTEwLjU3NiAwLTE5LjgzMSA3LjUxNC0yMi4wMDYgMTcuODY2LS4xMDYuNTA3LS4xNiAxLjAyNC0uMTYgMS41NDJ2MjAuOTE5aC0zOC4xNDZ2LTE4LjgwMWMwLTguNjczLTcuMDU3LTE1LjczLTE1LjczLTE1LjczaC0xLjM3OXYtMTkuNTcyYzkuNDY5LS4yMDMgMTcuMTEzLTcuOTUzIDE3LjExMy0xNy40N3YtMTUuNjE2YzAtOS41MTctNy42NDQtMTcuMjY3LTE3LjExMy0xNy40N3YtNDMuNjk5YzAtMjEuNjk1LTE3LjY1LTM5LjM0Ni0zOS4zNDYtMzkuMzQ2aC01MS42NzdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NXMzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg1MS42NzhjMTMuNDI5IDAgMjQuMzU1IDEwLjkyNiAyNC4zNTUgMjQuMzU1djQzLjY4MmgtMzcuOTU3di0yMi41ODRjMC00LjE0LTMuMzU2LTcuNDk1LTcuNDk1LTcuNDk1aC05Ni4ydi0zNy45NTdoMzUuNjM4YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTUtNy40OTUtNy40OTUtNy40OTVoLTQzLjEzM2MtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djUyLjk0N2MwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoOTYuMnYxNS4xMDljLTkuNDY4LjIwMy0xNy4xMTIgNy45NTQtMTcuMTEyIDE3LjQ3djE1LjYxNmMwIDkuNTE2IDcuNjQ0IDE3LjI2NyAxNy4xMTIgMTcuNDd2MTkuNTcyaC0xLjM3OWMtOC42NzMgMC0xNS43MyA3LjA1Ny0xNS43MyAxNS43M3YxOC44MDFoLTIyLjU1NWMtMTEuNDczIDAtMjAuODA3IDkuMzM0LTIwLjgwNyAyMC44MDd2Mi40ODlsLTMzLjQwMiA3LjU4OWMtMy40MTMuNzc1LTUuODM1IDMuODA5LTUuODM1IDcuMzA5djEwNy4yNDNjMCAzLjQ5OSAyLjQyMSA2LjUzMyA1LjgzMyA3LjMwOGwzMy40MDQgNy41OTh2Mi40ODdjMCAxMS40NzMgOS4zMzQgMjAuODA3IDIwLjgwNyAyMC44MDdoNi40MjR2MjcuNzk5aC0xNS4xMjdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NSAwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoMzMzLjg0OWMxLjM3OCAwIDIuNDk4IDEuMTIxIDIuNDk4IDIuNDk4djI1LjUyYy0xNS44MzYtMi44My0zMi40MTguMTAzLTQ2LjcwNyA4LjgxMS0xNi43NTQgMTAuMjExLTM3LjU3IDEwLjIxMi01NC4zMjQgMC0yMS41NjctMTMuMTQ0LTQ4LjM2MS0xMy4xNDUtNjkuOTI4IDAtMTYuNzU0IDEwLjIxMS0zNy41NyAxMC4yMTItNTQuMzI0IDAtMjEuNTY3LTEzLjE0NC00OC4zNjEtMTMuMTQ1LTY5LjkyOCAwLTE2Ljc1NCAxMC4yMTItMzcuNTcgMTAuMjEyLTU0LjMyNCAwbC0yNy40NjktMTYuNzQydi0yMC4wODdoMTAuNjc2YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTYtNy40OTUtNy40OTUtNy40OTVoLTE4LjE3MmMtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djk3LjU0OWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDQ5Ny4wMDljNC4xNCAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1IDAtODguNTA2IDAtMTE4LjAwOSAwLTIxMy40ODcuMDAxLTIxLjE4OC0xNy4yMzctMzguNDI2LTM4LjQyNS0zOC40MjZ6bS0xNjIuNDI1LTE5Ni4wMzdjNy44OTggMCAxNC4zMjUgNi40MjYgMTQuMzI1IDE0LjMyNHMtNi40MjYgMTQuMzI1LTE0LjMyNSAxNC4zMjVjLTcuODk4IDAtMTQuMzI0LTYuNDI2LTE0LjMyNC0xNC4zMjVzNi40MjYtMTQuMzI0IDE0LjMyNC0xNC4zMjR6bS0yNjcuNjA0IDI3Ni40NC0yNC4yNDctNS41MTV2LTk1LjI3N2wyNC4yNDctNS41MDl6bTE5OC42NTMtMTY0Ljk3NGMuOTQ3LTMuMTI1IDMuODY3LTUuMzMzIDcuMTc2LTUuMzMzaDYzLjQyYzQuMTMzIDAgNy40OTUgMy4zNjIgNy40OTUgNy40OTV2MTcuODQxaC03OC4wOTF6bS0xNDAuMzA1LTUxLjU2OXYtMTUuNjE2YzAtMS4zNzggMS4xMjEtMi40OTggMi40OTgtMi40OThoNjcuMTg1YzEuMzc4IDAgMi40OTggMS4xMjEgMi40OTggMi40OTh2MTUuNjE2YzAgMS4zNzgtMS4xMjEgMi40OTgtMi40OTggMi40OThoLTY3LjE4NWMtMS4zNzcuMDAxLTIuNDk4LTEuMTItMi40OTgtMi40OTh6bTU1LjA2OSAxNy40ODl2MTkuNTUzaC0zNy45NTd2LTE5LjU1M3ptLTU1LjA2NiAzNS4yODNjMC0uNDA3LjMzMi0uNzM5LjczOS0uNzM5aDcwLjY5NmMuNDA3IDAgLjczOS4zMzIuNzM5LjczOXYxOC44MDFoLTcyLjE3NXYtMTguODAxem0tLjAwMyAzMy43OTFoMjQwLjE0OHYxNTMuNjU2aC0yNDAuMTQ4em0tMzcuNTQyIDE1My42NTZjLTMuMjA3IDAtNS44MTYtMi42MDktNS44MTYtNS44MTZ2LTE0Mi4wMjNjMC0zLjIwNyAyLjYwOS01LjgxNiA1LjgxNi01LjgxNmgyMi41NTF2MTUzLjY1NmMtNS4yMTEtLjAwMS0xNy40ODgtLjAwMS0yMi41NTEtLjAwMXptMjk5LjM3MiA0Mi43OWgtMjc3Ljk1N3YtMjcuNzk5aDI3Ny45NTZ2MjcuNzk5em03LjQ5NS00Mi43OTRjLS4wMjkgMC0uMDU4LjAwNC0uMDg3LjAwNGgtMTQuMDk5di0xNTMuNjU2aDIyLjU1MWMzLjIwNyAwIDUuODE2IDIuNjA5IDUuODE2IDUuODE2djE0Mi4wMjRjMCAzLjIwNy0yLjYwOSA1LjgxNi01LjgxNiA1LjgxNmgtOC4yNzhjLS4wMjkgMC0uMDU4LS4wMDQtLjA4Ny0uMDA0em0xMjUuNzkxIDE0MC4zNDNjLTkuMzc5IDAtNDcxLjEwNyAwLTQ4Mi4wMTkgMHYtNDQuOTE2bDE5LjY2NyAxMS45ODdjMjEuNTY3IDEzLjE0NSA0OC4zNjEgMTMuMTQ1IDY5LjkyOCAwIDE2Ljc1NC0xMC4yMTEgMzcuNTctMTAuMjEyIDU0LjMyNCAwIDIxLjU2OCAxMy4xNDUgNDguMzYxIDEzLjE0NSA2OS45MjggMCAxNi43NTQtMTAuMjExIDM3LjU3LTEwLjIxMiA1NC4zMjQgMCAyMS41NjggMTMuMTQ1IDQ4LjM2MSAxMy4xNDUgNjkuOTI4IDAgMTcuMDk3LTEwLjQyMSAzNy45NDEtOS45ODYgNTQuMzI0IDAgMjEuNTY3IDEzLjE0NCA0OC4zNjIgMTMuMTQ0IDY5LjkyOCAwbDE5LjY2Ny0xMS45ODdjLjAwMSAxMC41NTYuMDAxIDIyLjM4LjAwMSA0NC45MTZ6bTAtNjIuNDcyYy0yOS43ODkgMTguMTU2LTMwLjM1MyAxOC44MzYtMzYuNTI3IDIxLjEzMnYtNDQuMjU3YzAtNC4xMzktMy4zNTYtNy40OTUtNy40OTUtNy40OTVzLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djQ3LjQyN2MtMTkuNDcyIDEuMTcyLTI4Ljk4NC03LjY4OC0zOC41MDYtMTEuODM2di0zMC4wNTRjMC05LjY0My03Ljg0Ni0xNy40ODktMTcuNDg5LTE3LjQ4OWgtMTAuNzgzdi0yNy43OTljMTMuMzQyIDAgMjEuNjc2LTEwLjA0OSAyMS42NzYtMjAuODA3di0zMS43NTVoNDUuMTAydjYyLjMzMWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1czcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1di02OS44MjZjMC00LjEzOS0zLjM1Ni03LjQ5NS03LjQ5NS03LjQ5NWgtNTIuNTk3di0zNi41MjdoNzMuMTg0YzEyLjkyMyAwIDIzLjQzNiAxMC41MTMgMjMuNDM2IDIzLjQzNXYxNDMuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxMS4wMjQgMjI3LjE1M2gtNzkuNzI2Yy00LjE0IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTV2OTAuMDdjMCA0LjE0IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDc5LjcyNmM0LjE0IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTV2LTkwLjA3Yy4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6bS03LjQ5NSA5MC4wN2gtNjQuNzM1di03NS4wNzloNjQuNzM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTIuNjM1IDI0MC45N2gtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1IDAgNC4xNCAzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg2NC41MDVjNC4xMzkgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NS4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMi42MzUgMjcyLjE4OGgtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1czMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDY0LjUwNWM0LjEzOSAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1cy0zLjM1NS03LjQ5NS03LjQ5NS03LjQ5NXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzEyLjYzNSAzMDMuNDA2aC02NC41MDVjLTQuMTM5IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTVzMy4zNTYgNy40OTUgNy40OTUgNy40OTVoNjQuNTA1YzQuMTM5IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTVzLTMuMzU1LTcuNDk1LTcuNDk1LTcuNDk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjEuODk5IDI4Ny4xNzloNy41NDhsLTIuOTA0IDcuNDMyYy0xLjUwNyAzLjg1NS4zOTcgOC4yMDIgNC4yNTMgOS43MDkuODk2LjM1IDEuODE5LjUxNiAyLjcyNi41MTYgMi45OTcgMCA1LjgyNi0xLjgwOSA2Ljk4My00Ljc2OWw2LjktMTcuNjU1Yy45MDItMi4zMDcuNjA2LTQuOTEtLjc5MS02Ljk1NXMtMy43MTMtMy4yNjgtNi4xOS0zLjI2OGgtNy41NDhsMi45MDQtNy40MzJjMS41MDctMy44NTUtLjM5Ny04LjIwMi00LjI1My05LjcwOS0zLjg1NS0xLjUwOS04LjIwMy4zOTYtOS43MDkgNC4yNTNsLTYuOSAxNy42NTVjLS45MDIgMi4zMDctLjYwNiA0LjkxLjc5MSA2Ljk1NSAxLjM5NiAyLjA0NCAzLjcxMyAzLjI2OCA2LjE5IDMuMjY4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Rfe="PHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTk0LjcyNyA3My43MDhhNi43NSA2Ljc1IDAgMSAwIDYuNzUgNi43NSA2Ljc1NiA2Ljc1NiAwIDAgMCAtNi43NS02Ljc1em0wIDEwYTMuMjUgMy4yNSAwIDEgMSAzLjI1LTMuMjUgMy4yNTQgMy4yNTQgMCAwIDEgLTMuMjUgMy4yNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuMDgxIDczLjcwOGE2Ljc1IDYuNzUgMCAxIDAgNi43NSA2Ljc1IDYuNzU3IDYuNzU3IDAgMCAwIC02Ljc1LTYuNzV6bTAgMTBhMy4yNSAzLjI1IDAgMSAxIDMuMjUtMy4yNSAzLjI1NCAzLjI1NCAwIDAgMSAtMy4yNSAzLjI1eiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjY0Ljk2NiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9Ijc3LjU5MSIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjkwLjIxNiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjEwMi44NDEiIGN5PSI0OC4wMjEiIHI9IjMiLz4KICAgICAgICA8cGF0aCBkPSJtMTIxLjUgMzMuNWgtMTE1YTEuNzUxIDEuNzUxIDAgMCAwIC0xLjc1IDEuNzV2NTcuNWExLjc1MSAxLjc1MSAwIDAgMCAxLjc1IDEuNzVoMTUuOTQydjguMjVhMS43NTEgMS43NTEgMCAwIDAgMS43NSAxLjc1aDEwYTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoNTYuMTE2djguMjVhMS43NSAxLjc1IDAgMCAwIDEuNzUgMS43NWgxMGExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoMTUuOTQyYTEuNzUxIDEuNzUxIDAgMCAwIDEuNzUtMS43NXYtNTcuNWExLjc1MSAxLjc1MSAwIDAgMCAtMS43NS0xLjc1em0tODkuMDU4IDY3LjVoLTYuNXYtNi41aDYuNXptNjkuNjE2IDBoLTYuNXYtNi41aDYuNXptMTcuNjkyLTEwaC0xMTEuNXYtNTRoMTExLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyLjY5MiA3NC4yNWExMC4yNSAxMC4yNSAwIDEgMCAtMTAuMjUtMTAuMjUgMTAuMjYxIDEwLjI2MSAwIDAgMCAxMC4yNSAxMC4yNXptLTEuNzUtMTYuNzYydjQuMDEyYTEuNzUgMS43NSAwIDAgMCAzLjUgMHYtNC4wMTJhNi43NSA2Ljc1IDAgMSAxIC0zLjUgMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjkyIDQ5Ljk1OGExLjc0OSAxLjc0OSAwIDAgMCAxLjc1LTEuNzV2LTNhMS43NSAxLjc1IDAgMCAwIC0zLjUgMHYzYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4Ljc5MiA1MS4zNTNhMS43NSAxLjc1IDAgMCAwIDIuMzM3LS44MTZsMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyLTEuNTJsLTEuMyAyLjdhMS43NSAxLjc1IDAgMCAwIC44MTUgMi4zMzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1LjA1MiA1NS45MTlhMS43NDggMS43NDggMCAwIDAgMS4wODgtLjM4bDIuMzQ4LTEuODY4YTEuNzUgMS43NSAwIDAgMCAtMi4xNzktMi43MzlsLTIuMzQ4IDEuODY4YTEuNzUgMS43NSAwIDAgMCAxLjA5MSAzLjEyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNC4yNTYgNTAuNTM3YTEuNzUgMS43NSAwIDEgMCAzLjE1Mi0xLjUyMWwtMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyIDEuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2LjkgNTMuNjcxIDIuMzQ5IDEuODY4YTEuNzUgMS43NSAwIDAgMCAyLjE3OC0yLjc0bC0yLjM0OC0xLjg2N2ExLjc1IDEuNzUgMCAxIDAgLTIuMTc5IDIuNzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Im01OC44MDggNzAuMjkyaDUwLjE5MmExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTEwYTEuNzUgMS43NSAwIDAgMCAtMS43NS0xLjc1aC01MC4xOTJhMS43NDkgMS43NDkgMCAwIDAgLTEuNzUgMS43NXYxMGExLjc1IDEuNzUgMCAwIDAgMS43NSAxLjc1em0xLjc1LTEwaDQ2LjY5MnY2LjVoLTQ2LjY5MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYuMTM1IDg3LjIwOGgzMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAtMy41aC0zMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAgMy41eiIvPgogICAgPC9nPgo8L3N2Zz4=",Ffe="PHN2ZyBoZWlnaHQ9IjYwMHB0IiB2aWV3Qm94PSItNDUgLTE5IDYwMCA2MDAuMDAxIiB3aWR0aD0iNjAwcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTguMjE0ODQ0IDBoLTUwLjk3NjU2M2MtMTguMTk1MzEyLjAyNzM0MzgtMzIuOTMzNTkzIDE0Ljc2OTUzMS0zMi45NjQ4NDMgMzIuOTY0ODQ0djI0Ljg3MTA5NGgtMTQ0LjgyNDIxOWMtNjEuNDM3NS4wOTM3NS0xMTIuMjUzOTA3IDQ3Ljg3MTA5My0xMTYuMTMyODEzIDEwOS4xODc1aC0zOS4wNjY0MDZjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40Njg3NS05Ljk4ODI4MSA5Ljk4ODI4MXYzMC41MTE3MTloLTEwLjI4NTE1N2MtMy43MDcwMzEgMC03LjEwNTQ2OCAyLjA0Njg3NC04LjgzNTkzNyA1LjMyODEyNGwtODUuNzY5NTMxIDE2Mi41NTQ2ODhjLTEuNjM2NzE5IDMuMDk3NjU2LTEuNTMxMjUgNi44MjQyMTkuMjc3MzQ0IDkuODI0MjE5IDEuODA4NTkzIDMgNS4wNTA3ODEgNC44MjgxMjUgOC41NTQ2ODcgNC44MjgxMjVoMTA4LjEyMTA5NGMuMTc1NzgxIDMuOTU3MDMxLjY3NTc4MSA3Ljg4NjcxOCAxLjQ5NjA5MyAxMS43NjE3MTggNy41NzAzMTMgMzUuMDU0Njg4IDM4LjU1ODU5NCA2MC4wOTM3NSA3NC40MjU3ODIgNjAuMTI1IDM1Ljg3MTA5NC4wMzUxNTcgNjYuOTAyMzQ0LTI0Ljk0OTIxOCA3NC41MzUxNTYtNTkuOTk2MDkzLjg0Mzc1LTMuOTEwMTU3IDEuMzY3MTg4LTcuODkwNjI1IDEuNTUwNzgxLTExLjg5NDUzMWgxMDguMTM2NzE5YzMuNSAwIDYuNzUtMS44MzIwMzIgOC41NTQ2ODgtNC44MzIwMzIgMS44MDg1OTMtMyAxLjkxNzk2OC02LjcyNjU2Mi4yNzczNDMtOS44MjAzMTJsLTg1Ljc2OTUzMS0xNjIuNTQ2ODc1Yy0xLjczMDQ2OS0zLjI4OTA2My01LjE0NDUzMS01LjMzOTg0NC04Ljg1OTM3NS01LjMzMjAzMWgtMTAuMjYxNzE5di0zMC41MTE3MTljMC01LjUxOTUzMS00LjQ3MjY1Ni05Ljk4ODI4MS05Ljk4ODI4MS05Ljk4ODI4MWgtNDQuNTM1MTU2YzIuMTQwNjI1LTIyLjQ3MjY1NyAyMC45ODgyODEtMzkuNjQ0NTMyIDQzLjU2MjUtMzkuNjk5MjE5aDE0NC44MDQ2ODd2MjguMTYwMTU2Yy4wMzUxNTYgMTguMTkxNDA2IDE0Ljc3NzM0NCAzMi45MzM1OTQgMzIuOTY4NzUgMzIuOTYwOTM3aDUwLjk4MDQ2OWM1LjUxNTYyNSAwIDkuOTg4MjgxLTQuNDY0ODQzIDkuOTg4MjgxLTkuOTg4Mjgxdi0xNjguNDY4NzVjMC01LjUxMTcxOS00LjQ2NDg0NC05Ljk4MDQ2ODUtOS45NzY1NjItOS45ODgyODF6bS0yNTAuOTE3OTY5IDM5Ny42MzI4MTJjLTUuNTY2NDA2IDI1LjkzMzU5NC0yOC41MDc4MTMgNDQuNDUzMTI2LTU1LjAzMTI1IDQ0LjQyMTg3Ni0yNi41MzEyNS0uMDI3MzQ0LTQ5LjQyNTc4MS0xOC41OTc2NTctNTQuOTMzNTk0LTQ0LjU0Njg3Ni0uNTU0Njg3LTIuNDUzMTI0LS45MjU3ODEtNC45NDkyMTgtMS4xMjEwOTMtNy40NTMxMjRoMTEyLjIzNDM3NGMtLjE5OTIxOCAyLjU1MDc4MS0uNTg1OTM3IDUuMDgyMDMxLTEuMTQ4NDM3IDcuNTc4MTI0em0xMTIuNjA1NDY5LTI3LjU3NDIxOGgtMTAxLjM5NDUzMmMtLjA2NjQwNiAwLS4xMzY3MTggMC0uMjAzMTI0IDBoLTEzMS45NjA5MzhjLS4wNzAzMTIgMC0uMTM2NzE5IDAtLjIwNzAzMSAwaC0xMDEuMzk0NTMxbDc1LjI1MzkwNi0xNDIuNTU0Njg4aDE4NC42ODM1OTR6bS05OS40NzI2NTYtMTYyLjUzNTE1NmgtMTM2LjE5MTQwN3YtMjAuNTE5NTMyaDEzNi4xOTE0MDd6bTguOTk2MDkzLTEwMC4xODM1OTRjLTMzLjUzNTE1Ni4yNzM0MzctNjEuMjQ2MDkzIDI2LjIzODI4MS02My42OTUzMTIgNTkuNjgzNTk0aC0zMi40MzM1OTRjMy44NDc2NTYtNTAuMjczNDM4IDQ1LjczMDQ2OS04OS4xMjUgOTYuMTUyMzQ0LTg5LjE4NzVoMTQ0LjgwNDY4N3YyOS41MDM5MDZ6bTIxOC43Njk1MzEgNjEuMTQwNjI1aC00MC45ODQzNzRjLTcuMTY3OTY5LS4wMTk1MzEtMTIuOTcyNjU3LTUuODI0MjE5LTEyLjk5MjE4OC0xMi45ODgyODF2LTEyMi41MDc4MTNjLjAxOTUzMS03LjE2MDE1NiA1LjgyNDIxOS0xMi45NjQ4NDQgMTIuOTkyMTg4LTEyLjk4NDM3NWg0MC45ODQzNzR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im05MC41MTU2MjUgNDE1Ljk5MjE4OGMwLTUuNTE1NjI2LTQuNDcyNjU2LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4MjgyaC02MS4zOTg0MzhjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40NzI2NTYtOS45ODgyODEgOS45ODgyODIgMCA1LjUxOTUzMSA0LjQ3MjY1NiA5Ljk5MjE4NyA5Ljk4ODI4MSA5Ljk5MjE4N2g2MS4zOTg0MzhjNS41MTU2MjUgMCA5Ljk4ODI4MS00LjQ3MjY1NiA5Ljk4ODI4MS05Ljk5MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNy41MzkwNjIgNDcyLjY3MTg3NS00MC4wNzAzMTIgMzcuNzQ2MDk0Yy0yLjY0MDYyNSAyLjQzMzU5My0zLjc3MzQzOCA2LjEwMTU2Mi0yLjk1NzAzMSA5LjU5NzY1Ni44MTI1IDMuNTAzOTA2IDMuNDQxNDA2IDYuMjk2ODc1IDYuODg2NzE5IDcuMzE2NDA2IDMuNDQ1MzEyIDEuMDIzNDM4IDcuMTc1NzgxLjExNzE4OCA5Ljc2NTYyNC0yLjM3NWw0MC4wNzAzMTMtMzcuNzM4MjgxYzIuNjQwNjI1LTIuNDMzNTk0IDMuNzY5NTMxLTYuMTAxNTYyIDIuOTU3MDMxLTkuNjA1NDY5LS44MTY0MDYtMy40OTYwOTMtMy40NDUzMTItNi4yOTI5NjktNi44ODY3MTgtNy4zMTY0MDYtMy40NDkyMTktMS4wMTk1MzEtNy4xNzU3ODItLjExMzI4MS05Ljc2NTYyNiAyLjM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM2NS41NDY4NzUgNDA2LjAwMzkwNmgtNjEuMzkwNjI1Yy01LjUxOTUzMSAwLTkuOTkyMTg4IDQuNDcyNjU2LTkuOTkyMTg4IDkuOTg4MjgyIDAgNS41MTk1MzEgNC40NzI2NTcgOS45OTIxODcgOS45OTIxODggOS45OTIxODdoNjEuMzkwNjI1YzUuNTE5NTMxIDAgOS45ODgyODEtNC40NzI2NTYgOS45ODgyODEtOS45OTIxODcgMC01LjUxNTYyNi00LjQ2ODc1LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4Mjgyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY3LjA0Njg3NSA0NzIuNjcxODc1Yy0yLjU4OTg0NC0yLjQ4ODI4MS02LjMxNjQwNi0zLjM5NDUzMS05Ljc2NTYyNS0yLjM3NS0zLjQ0NTMxMiAxLjAyMzQzNy02LjA3NDIxOSAzLjgyMDMxMy02Ljg4NjcxOSA3LjMxNjQwNi0uODE2NDA2IDMuNTAzOTA3LjMxNjQwNyA3LjE3MTg3NSAyLjk1MzEyNSA5LjYwNTQ2OWw0MC4wNjI1IDM3LjcyMjY1NmMyLjU4OTg0NCAyLjQ5MjE4OCA2LjMxNjQwNiAzLjQwMjM0NCA5Ljc2NTYyNSAyLjM3NSAzLjQ0MTQwNy0xLjAxOTUzMSA2LjA3MDMxMy0zLjgxMjUgNi44ODY3MTktNy4zMTY0MDYuODEyNS0zLjQ5NjA5NC0uMzE2NDA2LTcuMTY0MDYyLTIuOTU3MDMxLTkuNjAxNTYyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyLjI3MzQzOCA0OTAuOTMzNTk0Yy01LjUxNTYyNiAwLTkuOTg4MjgyIDQuNDcyNjU2LTkuOTg4MjgyIDkuOTkyMTg3djUwLjg0NzY1N2MwIC4yNDYwOTMtLjAyMzQzNy41MDM5MDYtLjAyMzQzNy43MzgyODEgMCA1LjUxNTYyNSA0LjQ3MjY1NiA5Ljk4ODI4MSA5Ljk4ODI4MSA5Ljk4ODI4MS40MjU3ODEtLjAwMzkwNi44NTU0NjktLjAyNzM0NCAxLjI3NzM0NC0uMDg1OTM4IDQuOTkyMTg3LS42Mjg5MDYgOC43MzgyODEtNC44Nzg5MDYgOC43MzgyODEtOS45MDYyNXYtNTEuNTgyMDMxYzAtNS41MTk1MzEtNC40NzI2NTYtOS45OTIxODctOS45OTIxODctOS45OTIxODd6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Gfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzguNTExLDg4LjYyMkM0MDMuNjk0LDY5LjIyMywzMjguNDM3LDM5LjAxNywyNjAuODc4LDEuMjY5Yy0zLjAzLTEuNjkyLTYuNzIzLTEuNjkzLTkuNzU1LDAKCQkJQzE4MS42MjEsNDAuMDk5LDExMC40MzIsNjguNjcyLDMzLjQ4OSw4OC42MjNjLTQuNDEsMS4xNDQtNy40OSw1LjEyNC03LjQ5LDkuNjh2MTEwLjM5NGMwLDExMy41MzUsNTUuMjkyLDE4OC42MzksMTAxLjY3OCwyMzEuNjUKCQkJYzQ5Ljc1Nyw0Ni4xMzgsMTA3LjQ2LDcxLjY1NSwxMjguMzI0LDcxLjY1NWMyMC44NjQsMCw3OC41NjctMjUuNTE3LDEyOC4zMjQtNzEuNjU1CgkJCWM0Ni4zODQtNDMuMDExLDEwMS42NzgtMTE4LjExNCwxMDEuNjc4LTIzMS42NVY5OC4zMDJDNDg2LjAwMiw5My43NDYsNDgyLjkyMiw4OS43NjYsNDc4LjUxMSw4OC42MjJ6IE0zNzAuNzI2LDQyNS42NzgKCQkJYy0yNy41NTcsMjUuNTUzLTU0LjMzNiw0MS42ODUtNzEuOTUsNTAuNzE4Yy0yMi4zMTksMTEuNDQ3LTM3LjgxLDE1LjYwMy00Mi43NzYsMTUuNjAzYy00Ljk2NiwwLTIwLjQ1Ni00LjE1NS00Mi43NzYtMTUuNjAzCgkJCWMtMTcuNjEyLTkuMDMzLTQ0LjM5Mi0yNS4xNjUtNzEuOTUtNTAuNzE4Yy00My40NjQtNDAuMzAzLTk1LjI3Ni0xMTAuNjYzLTk1LjI3Ni0yMTYuOTgzVjEwNi4wMDgKCQkJYzczLjk2NC0xOS44LDE0Mi44MDEtNDcuNTIzLDIxMC4wMDMtODQuNTc0YzY1LjQ5OCwzNi4wNTksMTM3LjgyNyw2NS4xODUsMjEwLDg0LjU3MXYxMDIuNjloMC4wMDEKCQkJQzQ2Ni4wMDEsMzE1LjAxNSw0MTQuMTksMzg1LjM3NSwzNzAuNzI2LDQyNS42Nzh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ0My43OTMsMTE1LjM2OGMtNjMuMzM2LTE4LjQxMy0xMjQuOTM2LTQzLjQyNC0xODMuMDg3LTc0LjMzN2MtMi45MzgtMS41NjMtNi40NjEtMS41Ni05LjM5NywwLjAwNgoJCQlDMTkzLjA2OSw3Mi4wNzksMTMxLjQ3LDk3LjA5NCw2OC4yMiwxMTUuMzg3Yy00LjI3NywxLjIzNy03LjIyMiw1LjE1My03LjIyMiw5LjYwNnY4My43MDJjMCwzOS4wNzcsNy40MDUsNzYuMTYxLDIyLjAwOCwxMTAuMjIyCgkJCWMxNC41MywzMy44OTEsMzYuMjAxLDY0LjgyLDY0LjQwOSw5MS45MzNjMjAuMTc1LDE5LjM5LDQzLjQ2OSwzNi40NzcsNjcuMzY3LDQ5LjQxM2M0LjI4MiwyLjMxOCwyNi4zMDUsMTQuMDAzLDM5LjQwMiwxNi40MjEKCQkJYzAuNiwwLjExLDEuMjA3LDAuMTY2LDEuODE1LDAuMTY2YzAuNjA4LDAsMS4yMTUtMC4wNTYsMS44MTUtMC4xNjZjMTMuMDk3LTIuNDE4LDM1LjEyLTE0LjEwMywzOS40MDItMTYuNDIxCgkJCWMyMy44OTUtMTIuOTM2LDQ3LjE5LTMwLjAyMyw2Ny4zNjctNDkuNDEzYzI4LjIwOC0yNy4xMTEsNDkuODc4LTU4LjA0MSw2NC40MDktOTEuOTMzYzE0LjYwMy0zNC4wNiwyMi4wMDgtNzEuMTQ0LDIyLjAwOC0xMTAuMjIyCgkJCXYtODMuNzI0QzQ1MS4wMDEsMTIwLjUyNCw0NDguMDYzLDExNi42MTEsNDQzLjc5MywxMTUuMzY4eiBNNDMxLjAwMSwyMDguNjk1YzAsNzMuMzc2LTI3LjAwOCwxMzYuNTM4LTgwLjI3NiwxODcuNzM0CgkJCWMtMTguODk4LDE4LjE2Mi00MC42OTMsMzQuMTUzLTYzLjAyOSw0Ni4yNDVjLTEwLjE2Nyw1LjUwMy0yMy44OTIsMTEuOTE5LTMxLjY5NywxMy45MzRjLTcuODA1LTIuMDE1LTIxLjUzLTguNDMxLTMxLjY5Ni0xMy45MzQKCQkJYy0yMi4zMzctMTIuMDkzLTQ0LjEzMi0yOC4wODQtNjMuMDI5LTQ2LjI0NWMtNTMuMjY3LTUxLjE5NS04MC4yNzYtMTE0LjM1OS04MC4yNzYtMTg3LjczNFYxMzIuNDgKCQkJYzYwLjM1NC0xNy45NjksMTE5LjE3Mi00MS45MzEsMTc1LjAxOS03MS4zMDZjNTUuNzU3LDI5LjI1MSwxMTQuNTY5LDUzLjIwNCwxNzQuOTgzLDcxLjI3NFYyMDguNjk1eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuMDI3LDM1OC4zMDVsLTAuMi0wLjIxNWMtMy43MDEtNC4wNTUtOS45ODctNC4zNjctMTQuMDczLTAuNjg5Yy00LjEwNSwzLjY5NC00LjQzOCwxMC4wMTctMC43NDQsMTQuMTIybDAuMiwwLjIxNQoJCQljMS45NzEsMi4xNTgsNC42NzMsMy4yNTYsNy4zODcsMy4yNTZjMi4zODMsMCw0Ljc3NS0wLjg0OCw2LjY4Ni0yLjU2N0MxNzYuMzg4LDM2OC43MzMsMTc2LjcyMSwzNjIuNDA5LDE3My4wMjcsMzU4LjMwNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjI2Ljk2Myw0MDMuNjk1Yy0xMi4wNDYtNy42MDItMjMuNjQ1LTE2LjM2NC0zNC40NzMtMjYuMDQ0Yy00LjExNy0zLjY4Mi0xMC40MzktMy4zMjctMTQuMTIsMC43OQoJCQljLTMuNjgsNC4xMTgtMy4zMjYsMTAuNDM5LDAuNzkyLDE0LjEyYzExLjY1MywxMC40MTgsMjQuMTQ1LDE5Ljg1NCwzNy4xMjksMjguMDQ4YzEuNjU3LDEuMDQ1LDMuNTAyLDEuNTQ0LDUuMzI3LDEuNTQ0CgkJCWMzLjMxOCwwLDYuNTY0LTEuNjUsOC40NjYtNC42NjRDMjMzLjAzMiw0MTIuODE4LDIzMS42MzUsNDA2LjY0MiwyMjYuOTYzLDQwMy42OTV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMwOC44OTgsMjA5LjA3N3YtMzIuOTIxYzAtMjkuMTY4LTIzLjczLTUyLjg5OC01Mi45LTUyLjg5OGMtMjkuMTY4LDAtNTIuODk4LDIzLjczLTUyLjg5OCw1Mi44OTh2MzIuOTIxCgkJCWMtMTEuODk4LDAuNDI5LTIxLjQ0NywxMC4yMzUtMjEuNDQ3LDIyLjIzNnY3Ni43NjljLTAuMDAxLDEyLjI3Myw5Ljk4NCwyMi4yNTcsMjIuMjU3LDIyLjI1N0gzMDguMDkKCQkJYzEyLjI3MywwLDIyLjI1OC05Ljk4NCwyMi4yNTgtMjIuMjU3di03Ni43NjlDMzMwLjM0OCwyMTkuMzExLDMyMC43OTgsMjA5LjUwNCwzMDguODk4LDIwOS4wNzd6IE0yMjMuMDk5LDE3Ni4xNTYKCQkJYzAtMTguMTQsMTQuNzU5LTMyLjg5OCwzMi45LTMyLjg5OGMxOC4xNCwwLDMyLjg5OCwxNC43NTgsMzIuODk4LDMyLjg5OHYzMi45aC02NS43OTlWMTc2LjE1NnogTTMxMC4zNDcsMzA4LjA4MwoJCQljMCwxLjIyNC0xLjAzNCwyLjI1Ny0yLjI1OCwyLjI1N0gyMDMuOTA4Yy0xLjIyNCwwLTIuMjU4LTEuMDMzLTIuMjU4LTIuMjU3di03Ni43NjloMC4wMDFjMC0xLjIyNCwxLjAzNC0yLjI1NywyLjI1OC0yLjI1N2g5LjE4OQoJCQloODUuNzk5aDkuMTkyYzEuMjI0LDAsMi4yNTgsMS4wMzMsMi4yNTgsMi4yNTdWMzA4LjA4M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI0OS42NGMtNy43MDEsMC0xMy45ODIsNi4yODEtMTMuOTgyLDEzLjk4MmMwLDMuNzg2LDEuNTIzLDcuMjI1LDMuOTgyLDkuNzQ2djkuNzg3YzAsNS41MjIsNC40NzcsMTAsMTAsMTAKCQkJYzUuNTIzLDAsMTAtNC40NzgsMTAtMTB2LTkuNzg3YzIuNDU5LTIuNTIyLDMuOTgyLTUuOTYsMy45ODItOS43NDZDMjY5Ljk4MiwyNTUuOTIxLDI2My43MDEsMjQ5LjY0LDI1NiwyNDkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Hfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk2Ljg4MjgxMiAwaC00ODEuNzY1NjI0Yy04LjM0NzY1NyAwLTE1LjExNzE4OCA2Ljc2OTUzMS0xNS4xMTcxODggMTUuMTE3MTg4djQ4MS43NjU2MjRjMCA4LjM0NzY1NyA2Ljc2OTUzMSAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGg0ODEuNzY1NjI0YzguMzQ3NjU3IDAgMTUuMTE3MTg4LTYuNzY5NTMxIDE1LjExNzE4OC0xNS4xMTcxODh2LTQ4MS43NjU2MjRjMC04LjM0NzY1Ny02Ljc2OTUzMS0xNS4xMTcxODgtMTUuMTE3MTg4LTE1LjExNzE4OHptLTQwNi4xNzU3ODEgNDIxLjI5Mjk2OXYtODguNjk1MzEzaDExOS4wNzQyMTl2ODguNjk1MzEzem0tNjAuNDcyNjU2LTM5MS4wNTg1OTRoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTM1Mi44Mzk4NDQtNTguNDUzMTI1djI4LjIxODc1aC0yNTQuMTQ4NDM4di0yOC4yMTg3NXptLTI1NC4xNDg0MzggMjM5Ljg3MTA5NGgyNTQuMTUyMzQ0djMwLjIzODI4MWgtMjU0LjE1MjM0NHptMC0zMC4yMzQzNzV2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTZ2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTd2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptLTk4LjY5MTQwNiAzMC4yMzQzNzZoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTAgNjAuNDcyNjU2aDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptMzgzLjA3ODEyNSAwaDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptNjguNDUzMTI1LTMwLjIzNDM3NWgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1N2gtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0tMjQxLjc1IDI3Mi4xMjVoMzAuMjM4Mjgxdjg4LjY5NTMxM2gtMzAuMjM4Mjgxem02MC40NzY1NjMgMGgxMjAuODAwNzgxdjg4LjY5NTMxM2gtMTIwLjgwMDc4MXptLTI3MC4yNTc4MTMgMTQ5LjE2Nzk2OXYtMTQ5LjE2Nzk2OWgzMC4yMzgyODF2MTAzLjgxMjVjMCA4LjM0NzY1NiA2Ljc2OTUzMiAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGgzNjAuODIwMzEyYzguMzQ3NjU2IDAgMTUuMTE3MTg4LTYuNzY5NTMyIDE1LjExNzE4OC0xNS4xMTcxODh2LTEwMy44MTI1aDMwLjIzODI4MXYxNDkuMTY3OTY5em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Vfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0yIDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM0OC4yNDYwOTQgMzc2Ljc4NTE1NmMtMy4yNS0yLjYwNTQ2OC03Ljk5MjE4OC0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTI4Ljk0OTIxOSAzNi4wOTM3NWMtMy45ODQzNzUgNC45Njg3NS0uMzY3MTg4IDEyLjI1NzgxMiA1Ljg3NSAxMi4yNTc4MTIgMi4yMTA5MzcgMCA0LjM5ODQzNy0uOTY4NzUgNS44ODY3MTktMi44MjQyMTlsMjguOTQ5MjE4LTM2LjA5Mzc1YzIuNjA1NDY5LTMuMjUgMi4wODU5MzgtNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzkwLjM1OTM3NSAzNTguNzM4MjgxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg3LTIuMDgyMDMxLTEwLjU5NzY1NiAxLjE2NDA2M2wtMjguOTQ5MjE5IDM2LjA5Mzc1Yy0zLjk4NDM3NSA0Ljk2ODc1LS4zNjcxODggMTIuMjU3ODEyIDUuODc1IDEyLjI1NzgxMiAyLjIxMDkzOCAwIDQuMzk4NDM4LS45Njg3NSA1Ljg4NjcxOS0yLjgyNDIxOGwyOC45NDkyMTktMzYuMDkzNzVjMi42MDU0NjgtMy4yNDYwOTQgMi4wODU5MzctNy45OTIxODgtMS4xNjQwNjMtMTAuNTk3NjU3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTExLjc1IDQyMi4wNTA3ODFjMi4xMDkzNzUgMCA0LjIwNzAzMS0uODc4OTA2IDUuNjk5MjE5LTIuNTk3NjU2bDM5LjYxMzI4MS00NS42NDQ1MzFjMi43MzA0NjktMy4xNDQ1MzIgMi4zOTQ1MzEtNy45MDYyNS0uNzUtMTAuNjMyODEzLTMuMTQ0NTMxLTIuNzMwNDY5LTcuOTEwMTU2LTIuMzk0NTMxLTEwLjYzNjcxOS43NWwtMzkuNjE3MTg3IDQ1LjY0NDUzMWMtNC4yNTM5MDYgNC45MDIzNDQtLjY5NTMxMyAxMi40ODA0NjkgNS42OTE0MDYgMTIuNDgwNDY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk2LjYyMTA5NCAzNzYuNzg1MTU2Yy0zLjI1LTIuNjA1NDY4LTcuOTk2MDk0LTIuMDgyMDMxLTEwLjYwMTU2MyAxLjE2NDA2M2wtMTQuNDcyNjU2IDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5NjA5NCAxLjE2NDA2MyAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjUgOC4wMTE3MTggMi4wNjI1IDEwLjU5NzY1Ni0xLjE2NDA2MmwxNC40NzY1NjItMTguMDQ2ODc2YzIuNjA1NDY5LTMuMjUgMi4wODIwMzItNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDM3Ljk5MjE4OCAzOTQuODMyMDMxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg4LTIuMDgyMDMxLTEwLjU5NzY1NyAxLjE2NDA2M2wtMTQuNDc2NTYyIDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5MjE4NyAxLjE2NDA2MiAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjEwOTQgOC4wMTE3MTkgMi4wNjI1IDEwLjYwMTU2My0xLjE2NDA2M2wxNC40NzI2NTYtMTguMDQ2ODc0YzIuNjA1NDY5LTMuMjQ2MDk0IDIuMDgyMDMxLTcuOTkyMTg4LTEuMTY0MDYyLTEwLjU5NzY1N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNi40NzI2NTYgMzYyLjk4NDM3NWMtMy4yNS0yLjYwNTQ2OS03Ljk5MjE4Ny0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTE0LjQ3NjU2MiAxOC4wNTA3ODFjLTIuNjA1NDY5IDMuMjQ2MDkzLTIuMDgyMDMyIDcuOTkyMTg3IDEuMTY0MDYyIDEwLjU5NzY1NiAzLjI2OTUzMSAyLjYyMTA5NCA4LjAxMTcxOSAyLjA2MjUgMTAuNTk3NjU2LTEuMTY0MDYzbDE0LjQ3MjY1Ni0xOC4wNDY4NzRjMi42MDkzNzYtMy4yNSAyLjA4NTkzOC03Ljk5NjA5NC0xLjE2MDE1Ni0xMC42MDE1NjN6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01MDQuNDYwOTM4IDBjLTE3LjI1MzkwNyAwLTQ2Ni41OTM3NSAwLTQ5Ni45MjE4NzYgMC00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzY3MTg4LTcuNTM5MDYyIDcuNTM5MDYydjQ5My44NjcxODhjMCA0LjE3MTg3NSAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MiA3LjUzOTA2Mmg0MjIuMjEwOTM4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC00LjE2NDA2Mi0zLjM3ODkwNi03LjU0Mjk2OS03LjUzOTA2Mi03LjU0Mjk2OWgtNDE0LjY3MTg3NXYtMTQzLjg4MjgxMmgxNC4zNjcxODd2OTAuOTU3MDMxYzAgNC4xNjQwNjIgMy4zNzUgNy41MzkwNjIgNy41MzkwNjMgNy41MzkwNjJoMTI2LjQwMjM0NGM0LjE2MDE1NiAwIDcuNTM5MDYyLTMuMzc1IDcuNTM5MDYyLTcuNTM5MDYyIDAtNC4xNjAxNTYtMy4zNzg5MDYtNy41MzkwNjItNy41MzkwNjItNy41MzkwNjJoLTExOC44NjMyODF2LTgzLjQxNzk2OWgxNC41MzkwNjJ2MjYuMTIxMDkzYzAgNC4xNjQwNjMgMy4zNzUgNy41MzkwNjMgNy41MzkwNjIgNy41MzkwNjMgNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM3NSA3LjUzOTA2My03LjUzOTA2M3YtMjYuMTIxMDkzaDE1My43MTA5Mzd2ODMuNDE3OTY5aC0zNC4zMDg1OTNjLTQuMTYwMTU3IDAtNy41MzkwNjMgMy4zNzg5MDYtNy41MzkwNjMgNy41MzkwNjIgMCA0LjE2NDA2MiAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MyA3LjUzOTA2MmgyODEuNDcyNjU2YzQuMTY0MDYzIDAgNy41MzkwNjMtMy4zNzUgNy41MzkwNjMtNy41MzkwNjJ2LTkwLjk1NzAzMWgxNC4zNjcxODd2MTQzLjg4MjgxMmgtMzcuMDE1NjI1Yy00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzc4OTA3LTcuNTM5MDYyIDcuNTQyOTY5IDAgNC4xNzE4NzUgMy4zNzg5MDYgNy41MzkwNjIgNy41MzkwNjIgNy41MzkwNjJoNDQuNTU0Njg4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC01My44NjMyODEgMC00MzcuNDk2MDk0IDAtNDkzLjg2NzE4OCAwLTQuMTcxODc0LTMuMzc4OTA2LTcuNTM5MDYyLTcuNTM5MDYyLTcuNTM5MDYyem0tNDQ1LjM5ODQzOCAzMzQuOTAyMzQ0Yy0xMy43MTQ4NDQgMC0zMC4wNTg1OTQgMC00My45ODQzNzUgMCAwLTkuNTUwNzgyIDAtMTYuMjU3ODEzIDAtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2Mmg0My45ODQzNzV6bTAtNDEuODcxMDk0aC00My45ODQzNzV2LTI2Ljc3NzM0M2g0My45ODQzNzV6bTAtNDEuODU5Mzc0Yy05LjcwMzEyNSAwLTMzLjkxNzk2OSAwLTQzLjk4NDM3NSAwdi0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMTUuMDc4MTI1LTI2Ljc4MTI1aDM2My43MTg3NXYyNi43ODEyNWgtMzYzLjcxODc1em0wIDgzLjcxODc1aDI4OS4zMDA3ODFjNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM2NzE4NyA3LjUzOTA2My03LjUzOTA2MyAwLTQuMTYwMTU2LTMuMzc1LTcuNTM5MDYyLTcuNTM5MDYzLTcuNTM5MDYyLTEuMjM0Mzc1IDAtMjgyLjk0MTQwNiAwLTI4OS4zMDA3ODEgMHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1aC00NC4yNTc4MTNjLTQuMTY0MDYyIDAtNy41MzkwNjIgMy4zNzg5MDYtNy41MzkwNjIgNy41MzkwNjIgMCA0LjE3MTg3NiAzLjM3NSA3LjUzOTA2MyA3LjUzOTA2MiA3LjUzOTA2M2g0NC4yNTc4MTN2MjYuNzg5MDYzYy0xMS42MjUgMC0zNTQuNDkyMTg3IDAtMzYzLjcxODc1IDB6bTAgNDEuODcxMDk0aDM2My43MTg3NXYyNi43NzczNDNoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2MmgtMzYzLjcxODc1em0wIDQxLjg2NzE4N2gzNjMuNzE4NzV2MjYuNzgxMjVoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2M2gtMzYzLjcxODc1em0wIDY4LjY0ODQzOHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1Yy0zNS42MTcxODcgMC0zMjYuOTUzMTI1IDAtMzYzLjcxODc1IDB6bTM5My4zMzU5MzcgOTguNDk2MDk0aC0xODMuMzI4MTI0di00MC42Njc5NjljMC00LjE2NDA2My0zLjM3NS03LjUzOTA2My03LjUzOTA2My03LjUzOTA2M3MtNy41MzkwNjMgMy4zNzUtNy41MzkwNjMgNy41MzkwNjN2NDAuNjY3OTY5aC0yNi4xNDA2MjR2LTgzLjQxNDA2M2gyNi4xNDA2MjR2MTIuNTg1OTM3YzAgNC4xNjc5NjkgMy4zNzUgNy41MzkwNjMgNy41MzkwNjMgNy41MzkwNjNzNy41MzkwNjMtMy4zNzEwOTQgNy41MzkwNjMtNy41MzkwNjN2LTEyLjU4OTg0M2gxNTMuNzEwOTM3djI2LjEyMTA5M2MwIDQuMTY0MDYzIDMuMzc1IDcuNTM5MDYzIDcuNTM5MDYzIDcuNTM5MDYzIDQuMTY0MDYyIDAgNy41MzkwNjItMy4zNzUgNy41MzkwNjItNy41MzkwNjN2LTI2LjEyMTA5M2gxNC41MzkwNjJ6bTI5LjQ0NTMxMy05OC40OTYwOTRjLTEzLjc4OTA2MyAwLTI5Ljg2NzE4NyAwLTQzLjk4NDM3NSAwdi0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2M2g0My45ODQzNzV6bTAtNDEuODY3MTg4aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMC00MS44NTkzNzVoLTQzLjk4NDM3NXYtMjYuNzg5MDYyaDQzLjk4NDM3NXptMC00MS44NzEwOTRoLTQzLjk4NDM3NXYtMjYuNzc3MzQzaDQzLjk4NDM3NXptMC00MS44NTkzNzRoLTQzLjk4NDM3NXYtMjYuNzg5MDYzaDQzLjk4NDM3NXptMC00MS44NjcxODhoLTQzLjk4NDM3NXYtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Zfe="PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01Ni44MzggMWgtNDkuNjc2Yy0zLjM5OCAwLTYuMTYyIDIuNzY0LTYuMTYyIDYuMTYyIDAgLjY2NS4xMDYgMS4zMi4zMTYgMS45NDlsLjU1OCAxLjY3NmMuODQxIDIuNTIgMy4xOSA0LjIxMyA1Ljg0NyA0LjIxM2g0LjM4NGwxLjUwNiAxMy41NTJjLjI4MiAyLjUzNiAyLjQxOCA0LjQ0OCA0Ljk2OSA0LjQ0OGgyNi44NGMyLjU1MSAwIDQuNjg4LTEuOTEyIDQuOTY5LTQuNDQ4bDEuNTA2LTEzLjU1Mmg0LjM4NGMyLjY1NyAwIDUuMDA2LTEuNjkzIDUuODQ2LTQuMjE0bC41NTgtMS42NzRjLjIxMS0uNjMuMzE3LTEuMjg1LjMxNy0xLjk1IDAtMy4zOTgtMi43NjQtNi4xNjItNi4xNjItNi4xNjJ6bS0zMi44MzggMzBoLTR2LThjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptMTAgMGgtNHYtOGMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyem0xMCAwaC00di04YzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTQuNDAyLTIuNjY4Yy0uMTQ3IDEuMzI0LTEuMTM4IDIuMzYzLTIuNDAyIDIuNjExdi03Ljk0M2MwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY4aC0ydi04YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0djhoLTJ2LThjMC0yLjIwNi0xLjc5NC00LTQtNHMtNCAxLjc5NC00IDR2Ny45NDJjLTEuMjY0LS4yNDgtMi4yNTQtMS4yODctMi40MDItMi42MTFsLTEuNDgxLTEzLjMzMWgzNS43NjZ6bTEyLjM4NC0xOS44NTMtLjU1OCAxLjY3NWMtLjU2NyAxLjcwMi0yLjE1NCAyLjg0Ni0zLjk0OSAyLjg0NmgtNDguNTU4Yy0xLjc5NCAwLTMuMzgxLTEuMTQ0LTMuOTQ5LTIuODQ2bC0uNTU4LTEuNjc2Yy0uMTQyLS40MjQtLjIxNC0uODY3LS4yMTQtMS4zMTYgMC0yLjI5NSAxLjg2Ny00LjE2MiA0LjE2Mi00LjE2Mmg0OS42NzZjMi4yOTUgMCA0LjE2MiAxLjg2NyA0LjE2MiA0LjE2MiAwIC40NDktLjA3Mi44OTItLjIxNCAxLjMxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTUgNWgtNmMtMS4xMDMgMC0yIC44OTctMiAydjJjMCAxLjEwMy44OTcgMiAyIDJoNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTJjMC0xLjEwMy0uODk3LTItMi0yem0tNiA0di0yaDZsLjAwMSAyeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDcgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgOWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDloMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NCA0MHYtMWgtMWMtLjExOSAwLTEuNzk5LjA0Mi0zLjE3OSAyLjAzNS0uMDQ2LS4wNjMtLjA5Mi0uMTMxLS4xMzgtLjE5My0uOTAzLTEuMjMtMS42ODMtMi4yOTMtMS42ODMtNC44NDJ2LTFoLTFjLS4xMzkgMC0yLjg5My4wNTctNC42MjQgMy4yNzgtMi4wNTMtMy4yMjMtNS4zMjgtMy4yNzgtNS4zNzYtMy4yNzhoLTF2MWMwIDIuNTU5LS43ODQgMy42MzMtMS42OTIgNC44NzctLjA0LjA1NS0uMDguMTE0LS4xMi4xNjktMS4zODMtMi4wMDQtMy4wNjktMi4wNDYtMy4xODgtMi4wNDZoLTF2MWMwIDIuNTQzLS45OTUgMy44MzMtMi4xNDcgNS4zMjctMS4zMzcgMS43MzMtMi44NTMgMy42OTctMi44NTMgNy42NzMgMCA2LjA3NSAzLjkyNSAxMCAxMCAxMGgxNGM2LjA3NSAwIDEwLTMuOTI1IDEwLTEwIDAtMy45NzYtMS41MTYtNS45NC0yLjg1My03LjY3My0xLjE1Mi0xLjQ5NC0yLjE0Ny0yLjc4NC0yLjE0Ny01LjMyN3ptLTE5IDE3YzAtMi4zOTYgMS4zNTgtMy43MTkgMi42NzItNSAuODUxLS44MyAxLjcyNC0xLjY4IDIuMTE1LTIuNzczLjU2LjMxIDEuMjEzIDEuMDQzIDEuMjEzIDIuNzczdjNoMnYtMWMwLTEuOTg2IDEuMjM5LTIuNjYgMi4xNDctMi44ODcuMzU1IDEuMzA0IDEuMjk1IDIuMjQ0IDIuMTQ2IDMuMDk0LjkxNi45MTYgMS43MDcgMS43MDcgMS43MDcgMi43OTMgMCAxLjM4My0xLjQ2MyA0LTcgNHMtNy0yLjYxNy03LTR6bTE0IDRoLS4xMDJjMS41NjItMS4yOCAyLjEwMi0yLjg5OSAyLjEwMi00IDAtMS45MTQtMS4yMTgtMy4xMzItMi4yOTMtNC4yMDctLjkxNi0uOTE2LTEuNzA3LTEuNzA3LTEuNzA3LTIuNzkzdi0xaC0xYy0uODkyIDAtMi4xOTMuMjc4LTMuMjQ1IDEuMDg5LS42ODItMi4zOTUtMi42MjgtMy4wODktMy43NTUtMy4wODloLTF2MWMwIC44NDUtLjY1NSAxLjUyNi0xLjcyNCAyLjU2OC0xLjQ2IDEuNDIzLTMuMjc2IDMuMTkzLTMuMjc2IDYuNDMyIDAgMS4xMDEuNTQgMi43MiAyLjEwMiA0aC0uMTAyYy0zLjg2OCAwLTgtMi4xMDItOC04IDAtMy4yOTQgMS4xODMtNC44MjggMi40MzYtNi40NTIgMS4wNTUtMS4zNjcgMi4xMzktMi43NzIgMi40NjUtNS4wODQuODkxLjczOSAyLjA5OSAyLjY0MiAyLjA5OSA3LjUzNmgyYzAtMi41Ni0uMzIzLTQuNDYxLS44MDMtNS44NzguMjI4LS4zNjYuNDY5LS43MTMuNzI2LTEuMDY2Ljg0Ni0xLjE1OSAxLjc5MS0yLjQ1MyAyLjAyMy00Ljg3OSAxLjQ1Ni40NTMgNC4wNTQgMi4wNjkgNC4wNTQgNy44MjNoMmMwLTEuNjMtLjE5MS0yLjk5LS41MDYtNC4xMzIuNjM3LTIuMjczIDEuNzYxLTMuMjE4IDIuNTY3LTMuNjAxLjIzOCAyLjM0NiAxLjEzNyAzLjU3IDIuMDEgNC43NTkuMjYyLjM1Ny41MDcuNzA4LjczOCAxLjA4LS40ODMgMS40MTgtLjgwOSAzLjMyNC0uODA5IDUuODk0aDJjMC00LjkwNiAxLjIxNC02LjgwNyAyLjA5OC03LjU0Mi4zMjUgMi4zMTUgMS40MTEgMy43MjIgMi40NjYgNS4wOSAxLjI1MyAxLjYyNCAyLjQzNiAzLjE1OCAyLjQzNiA2LjQ1MiAwIDUuODk4LTQuMTMyIDgtOCA4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Xfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQ2NywwSDQ1QzIwLjE4NywwLDAsMjAuMTg3LDAsNDV2NDIyYzAsMjQuODEzLDIwLjE4Nyw0NSw0NSw0NWg0MjJjMjQuODEzLDAsNDUtMjAuMTg3LDQ1LTQ1VjQ1CgkJCUM1MTIsMjAuMTg3LDQ5MS44MTMsMCw0NjcsMHogTTQ4Miw0NjdjMCw4LjI3MS02LjcyOSwxNS0xNSwxNUg0NWMtOC4yNzEsMC0xNS02LjcyOS0xNS0xNVY0NWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1aDQyMgoJCQljOC4yNzEsMCwxNSw2LjcyOSwxNSwxNVY0Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI1Niw4MWMtOTYuNDk1LDAtMTc1LDc4LjUwNS0xNzUsMTc1czc4LjUwNSwxNzUsMTc1LDE3NXMxNzUtNzguNTA1LDE3NS0xNzVTMzUyLjQ5NSw4MSwyNTYsODF6IE0yNTYsNDAxCgkJCWMtNzkuOTUzLDAtMTQ1LTY1LjA0Ny0xNDUtMTQ1czY1LjA0Ny0xNDUsMTQ1LTE0NXMxNDUsNjUuMDQ3LDE0NSwxNDVTMzM1Ljk1Myw0MDEsMjU2LDQwMXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTg3LDIxNmMtMjIuMDU2LDAtNDAsMTcuOTQ0LTQwLDQwYzAsMjIuMDU2LDE3Ljk0NCw0MCw0MCw0MGMyMi4wNTYsMCw0MC0xNy45NDQsNDAtNDBDMjI3LDIzMy45NDQsMjA5LjA1NiwyMTYsMTg3LDIxNnoKCQkJIE0xODcsMjY2Yy01LjUxNCwwLTEwLTQuNDg2LTEwLTEwYzAtNS41MTQsNC40ODYtMTAsMTAtMTBjNS41MTQsMCwxMCw0LjQ4NiwxMCwxMEMxOTcsMjYxLjUxNCwxOTIuNTE0LDI2NiwxODcsMjY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMjUsMjE2Yy0yMi4wNTYsMC00MCwxNy45NDQtNDAsNDBjMCwyMi4wNTYsMTcuOTQ0LDQwLDQwLDQwYzIyLjA1NiwwLDQwLTE3Ljk0NCw0MC00MEMzNjUsMjMzLjk0NCwzNDcuMDU2LDIxNiwzMjUsMjE2egoJCQkgTTMyNSwyNjZjLTUuNTE0LDAtMTAtNC40ODYtMTAtMTBjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwQzMzNSwyNjEuNTE0LDMzMC41MTQsMjY2LDMyNSwyNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Kfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMzYwLDBIMTIwQzk3LjkyLDAuMDI2LDgwLjAyNiwxNy45Miw4MCw0MHYzNjhjMC4wMjQsMTkuMDAxLDEzLjM4OSwzNS4zNzMsMzIsMzkuMlY0ODBoNDh2LTMyaDE2MHYzMmg0OHYtMzIuOAoJCQljMTguNjExLTMuODI3LDMxLjk3Ni0yMC4xOTksMzItMzkuMlY0MEMzOTkuOTc0LDE3LjkyLDM4Mi4wOCwwLjAyNiwzNjAsMHogTTE0NCw0NjRoLTE2di0xNmgxNlY0NjR6IE0zNTIsNDY0aC0xNnYtMTZoMTZWNDY0egoJCQkgTTM4NCw0MDhjMCwxMy4yNTUtMTAuNzQ1LDI0LTI0LDI0SDEyMGMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0VjQwYzAtMTMuMjU1LDEwLjc0NS0yNCwyNC0yNGgyNDBjMTMuMjU1LDAsMjQsMTAuNzQ1LDI0LDI0VjQwOAoJCQl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwxNjBjLTcwLjY5MiwwLTEyOCw1Ny4zMDgtMTI4LDEyOGMwLjA4NCw3MC42NTgsNTcuMzQyLDEyNy45MTYsMTI4LDEyOGM3MC42OTIsMCwxMjgtNTcuMzA4LDEyOC0xMjgKCQkJUzMxMC42OTIsMTYwLDI0MCwxNjB6IE0yNDAsNDAwYy02MS44NTYsMC0xMTItNTAuMTQ0LTExMi0xMTJjMC4wNjYtNjEuODI4LDUwLjE3Mi0xMTEuOTM0LDExMi0xMTJjNjEuODU2LDAsMTEyLDUwLjE0NCwxMTIsMTEyCgkJCVMzMDEuODU2LDQwMCwyNDAsNDAweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAsMTkyYy01My4wMTksMC05Niw0Mi45ODEtOTYsOTZjMC4wNTcsNTIuOTk2LDQzLjAwNCw5NS45NDMsOTYsOTZjNTMuMDE5LDAsOTYtNDIuOTgxLDk2LTk2UzI5My4wMTksMTkyLDI0MCwxOTJ6CgkJCSBNMjQwLDM2OGMtNDQuMTgzLDAtODAtMzUuODE3LTgwLTgwYzAuMDQ5LTQ0LjE2MywzNS44MzctNzkuOTUyLDgwLTgwYzQ0LjE4MywwLDgwLDM1LjgxNyw4MCw4MEMzMjAsMzMyLjE4MywyODQuMTgzLDM2OCwyNDAsMzY4CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQwLDMyYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMyOTYsNTcuMDcyLDI3MC45MjgsMzIsMjQwLDMyeiBNMjQwLDEyOGMtMjIuMDkxLDAtNDAtMTcuOTA5LTQwLTQwYzAuMDI2LTIyLjA4LDE3LjkyLTM5Ljk3NCw0MC00MGMyMi4wOTEsMCw0MCwxNy45MDksNDAsNDAKCQkJUzI2Mi4wOTEsMTI4LDI0MCwxMjh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCw2NGMtMTMuMjU1LDAtMjQsMTAuNzQ1LTI0LDI0czEwLjc0NSwyNCwyNCwyNHMyNC0xMC43NDUsMjQtMjRTMjUzLjI1NSw2NCwyNDAsNjR6IE0yNDAsOTZjLTQuNDE4LDAtOC0zLjU4Mi04LTgKCQkJczMuNTgyLTgsOC04czgsMy41ODIsOCw4UzI0NC40MTgsOTYsMjQwLDk2eiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjM1MiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iNDAwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz4KICAgICAgICA8cmVjdCB4PSIzNTIiIHk9IjQwMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwyNDhjLTIyLjA5MSwwLTQwLDE3LjkwOS00MCw0MGMwLjAyNiwyMi4wOCwxNy45MiwzOS45NzQsNDAsNDBjMjIuMDkxLDAsNDAtMTcuOTA5LDQwLTQwCgkJCUMyODAsMjY1LjkwOSwyNjIuMDkxLDI0OCwyNDAsMjQ4eiBNMjQwLDMxMmMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNHMyNCwxMC43NDUsMjQsMjRTMjUzLjI1NSwzMTIsMjQwLDMxMnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDgsMjgwSDE2Yy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThTNTIuNDE4LDI4MCw0OCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjY1NiwyMjYuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNjktOC4yNDMtMi45ODEtMTEuMzEyLDAuMTk3Yy0yLjk5NCwzLjEtMi45OTQsOC4wMTUsMCwxMS4xMTVsMjQsMjQKCQkJYzMuMTc4LDMuMDY5LDguMjQzLDIuOTgxLDExLjMxMi0wLjE5N0M1Ni42NSwyMzQuMzU5LDU2LjY1LDIyOS40NDQsNTMuNjU2LDIyNi4zNDR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjQ2LDMzOC4zNDRjLTMuMS0yLjk5NS04LjAxNi0yLjk5NS0xMS4xMTYsMGwtMjQsMjRjLTMuMTc4LDMuMDctMy4yNjYsOC4xMzQtMC4xOTYsMTEuMzEyczguMTM0LDMuMjY2LDExLjMxMiwwLjE5NgoJCQljMC4wNjctMC4wNjQsMC4xMzItMC4xMywwLjE5Ni0wLjE5NmwyNC0yNEM1Ni43MjYsMzQ2LjQ3OCw1Ni42MzgsMzQxLjQxNCw1My40NiwzMzguMzQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjQsMjgwaC0zMmMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGgzMmM0LjQxOCwwLDgtMy41ODIsOC04UzQ2OC40MTgsMjgwLDQ2NCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2MS40NiwyMDIuMzQ0Yy0zLjEtMi45OTQtOC4wMTUtMi45OTQtMTEuMTE2LDBsLTI0LDI0Yy0zLjEyNCwzLjEyNS0zLjEyMyw4LjE5LDAuMDAyLDExLjMxNAoJCQljMS41LDEuNDk5LDMuNTM0LDIuMzQyLDUuNjU0LDIuMzQyYzIuMTIyLDAsNC4xNTYtMC44NDQsNS42NTYtMi4zNDRsMjQtMjRDNDY0LjcyNiwyMTAuNDc4LDQ2NC42MzgsMjA1LjQxNCw0NjEuNDYsMjAyLjM0NHoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjY1NiwzNjIuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNy04LjI0Mi0yLjk4Mi0xMS4zMTIsMC4xOTZjLTIuOTk1LDMuMS0yLjk5NSw4LjAxNiwwLDExLjExNmwyNCwyNAoJCQljMy4xNzgsMy4wNyw4LjI0MiwyLjk4MiwxMS4zMTItMC4xOTZDNDY0LjY1MSwzNzAuMzYsNDY0LjY1MSwzNjUuNDQ0LDQ2MS42NTYsMzYyLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",qfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTEyIDU2LjE2NDA2MmMwLTEyLjc5Njg3NC0xMC40MDYyNS0yMy4yMDMxMjQtMjMuMjAzMTI1LTIzLjIwMzEyNGgtNDkuOTY4NzV2LTE1LjA0Njg3NmMwLTkuODc4OTA2LTguMDM1MTU2LTE3LjkxNDA2Mi0xNy45MTQwNjMtMTcuOTE0MDYyaC0xMDMuMDg5ODQzYy05Ljg3ODkwNyAwLTE3LjkxNDA2MyA4LjAzOTA2Mi0xNy45MTQwNjMgMTcuOTE0MDYydjE1LjA0Njg3NmgtODcuODE2NDA2di0xNS4wNDY4NzZjMC05Ljg3ODkwNi04LjAzOTA2Mi0xNy45MTQwNjItMTcuOTE3OTY5LTE3LjkxNDA2MmgtMTAzLjA4OTg0M2MtOS44Nzg5MDcgMC0xNy45MTQwNjMgOC4wMzkwNjItMTcuOTE0MDYzIDE3LjkxNDA2MnYxNS4wNDY4NzZoLTQ5Ljk2ODc1Yy0xMi43OTY4NzUgMC0yMy4yMDMxMjUgMTAuNDA2MjUtMjMuMjAzMTI1IDIzLjIwMzEyNHY0OS41YzAgNi4wNTA3ODIgMi4zMjgxMjUgMTEuNTYyNSA2LjEzNjcxOSAxNS42OTkyMTktMy44MDg1OTQgNC4xMzI4MTMtNi4xMzY3MTkgOS42NDg0MzgtNi4xMzY3MTkgMTUuNjk5MjE5djMwNS44MDg1OTRjMCAxMi43OTI5NjggMTAuNDA2MjUgMjMuMjAzMTI1IDIzLjIwMzEyNSAyMy4yMDMxMjVoMi4zNzg5MDZ2MjIuNDUzMTI1YzAgMTIuNzgxMjUgMTAuMzk4NDM4IDIzLjE3NTc4MSAyMy4xNzk2ODggMjMuMTc1NzgxaDIzMi42MTcxODdjNC4xNDQ1MzIgMCA3LjUwMzkwNi0zLjM1OTM3NSA3LjUwMzkwNi03LjUgMC00LjE0NDUzMS0zLjM1OTM3NC03LjUwMzkwNi03LjUwMzkwNi03LjUwMzkwNmgtMjMyLjYxNzE4N2MtNC41MDc4MTMgMC04LjE3MTg3NS0zLjY2Nzk2OS04LjE3MTg3NS04LjE3MTg3NXYtMjIuNDUzMTI1aDQzMC44MjAzMTJ2MjIuNDUzMTI1YzAgNC41MDc4MTItMy42NjQwNjIgOC4xNzE4NzUtOC4xNzE4NzUgOC4xNzE4NzVoLTE0Ny4xMjVjLTQuMTQ4NDM3IDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41MDM5MDYgMCA0LjE0MDYyNSAzLjM1NTQ2OSA3LjUgNy41MDM5MDYgNy41aDE0Ny4xMjVjMTIuNzgxMjUgMCAyMy4xNzk2ODgtMTAuMzk0NTMxIDIzLjE3OTY4OC0yMy4xNzU3ODF2LTIyLjQ1MzEyNWgyLjM3ODkwNmMxMi43OTI5NjkgMCAyMy4yMDMxMjUtMTAuNDEwMTU3IDIzLjIwMzEyNS0yMy4yMDMxMjV2LTMwNS44MDg1OTRjMC02LjA1MDc4MS0yLjMzMjAzMS0xMS41NjY0MDYtNi4xMzY3MTktMTUuNjk5MjE5IDMuODA0Njg4LTQuMTM2NzE5IDYuMTM2NzE5LTkuNjQ4NDM3IDYuMTM2NzE5LTE1LjY5OTIxOXptLTE5Ny4wODU5MzgtMzguMjVjMC0xLjYwNTQ2OCAxLjMwNDY4OC0yLjkwNjI1IDIuOTEwMTU3LTIuOTA2MjVoMTAzLjA4OTg0M2MxLjYwNTQ2OSAwIDIuOTEwMTU3IDEuMzA0Njg4IDIuOTEwMTU3IDIuOTA2MjV2MTUuMDQ2ODc2aC0xMDguOTEwMTU3em0tMjI2LjczODI4MSAwYzAtMS42MDU0NjggMS4zMDQ2ODgtMi45MDYyNSAyLjkxMDE1Ny0yLjkwNjI1aDEwMy4wODk4NDNjMS42MDU0NjkgMCAyLjkxMDE1NyAxLjMwNDY4OCAyLjkxMDE1NyAyLjkwNjI1djE1LjA0Njg3NmgtMTA4LjkxMDE1N3ptNDA4LjgxNjQwNyA0MjQuOTU3MDMyYzAgNC41MTk1MzEtMy42NzU3ODIgOC4xOTkyMTgtOC4xOTUzMTMgOC4xOTkyMThoLTQ2NS41OTM3NWMtNC41MTk1MzEgMC04LjE5NTMxMy0zLjY3OTY4Ny04LjE5NTMxMy04LjE5OTIxOHYtMzA1LjgwODU5NGMwLTQuNTE5NTMxIDMuNjc1NzgyLTguMTk5MjE5IDguMTk1MzEzLTguMTk5MjE5aDQ2NS41OTM3NWM0LjUyMzQzNyAwIDguMTk1MzEzIDMuNjc5Njg4IDguMTk1MzEzIDguMTk5MjE5em0wLTMzNy4yMDcwMzJjMCA0LjUxOTUzMi0zLjY3NTc4MiA4LjE5NTMxMy04LjE5NTMxMyA4LjE5NTMxM2gtNDY1LjU5Mzc1Yy00LjUxOTUzMSAwLTguMTk1MzEzLTMuNjc1NzgxLTguMTk1MzEzLTguMTk1MzEzdi00OS41YzAtNC41MjM0MzcgMy42NzU3ODItOC4xOTkyMTggOC4xOTUzMTMtOC4xOTkyMThoNDY1LjU5Mzc1YzQuNTE5NTMxIDAgOC4xOTUzMTMgMy42NzU3ODEgOC4xOTUzMTMgOC4xOTkyMTh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMDk3NjU2IDU1LjE1MjM0NGMtMTQuMjA3MDMxIDAtMjUuNzYxNzE4IDExLjU1NDY4Ny0yNS43NjE3MTggMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1NDY4NyAyNS43NjE3MTkgMjUuNzYxNzE4IDI1Ljc2MTcxOSAxNC4yMDMxMjUgMCAyNS43NjE3MTktMTEuNTU0Njg3IDI1Ljc2MTcxOS0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU4NTk0LTI1Ljc1NzgxMi0yNS43NjE3MTktMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODcgMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE5LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg4IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOCAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3OS4xNjc5NjkgNTUuMTUyMzQ0Yy0xNC4yMDcwMzEgMC0yNS43NjE3MTkgMTEuNTU0Njg3LTI1Ljc2MTcxOSAyNS43NTc4MTIgMCAxNC4yMDcwMzIgMTEuNTU0Njg4IDI1Ljc2MTcxOSAyNS43NjE3MTkgMjUuNzYxNzE5IDE0LjIwMzEyNSAwIDI1Ljc1NzgxMi0xMS41NTQ2ODcgMjUuNzU3ODEyLTI1Ljc2MTcxOSAwLTE0LjIwMzEyNS0xMS41NTQ2ODctMjUuNzU3ODEyLTI1Ljc1NzgxMi0yNS43NTc4MTJ6bTAgMzYuNTE1NjI1Yy01LjkzMzU5NCAwLTEwLjc1NzgxMy00LjgyNDIxOS0xMC43NTc4MTMtMTAuNzUzOTA3IDAtNS45Mjk2ODcgNC44MjQyMTktMTAuNzU3ODEyIDEwLjc1NzgxMy0xMC43NTc4MTIgNS45Mjk2ODcgMCAxMC43NTM5MDYgNC44MjgxMjUgMTAuNzUzOTA2IDEwLjc1NzgxMiAwIDUuOTI5Njg4LTQuODI0MjE5IDEwLjc1MzkwNy0xMC43NTM5MDYgMTAuNzUzOTA3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzMyLjgzMjAzMSA1NS4xNTIzNDRjLTE0LjIwMzEyNSAwLTI1Ljc1NzgxMiAxMS41NTQ2ODctMjUuNzU3ODEyIDI1Ljc1NzgxMiAwIDE0LjIwNzAzMiAxMS41NTQ2ODcgMjUuNzYxNzE5IDI1Ljc1NzgxMiAyNS43NjE3MTkgMTQuMjA3MDMxIDAgMjUuNzYxNzE5LTExLjU1NDY4NyAyNS43NjE3MTktMjUuNzYxNzE5IDAtMTQuMjAzMTI1LTExLjU1NDY4OC0yNS43NTc4MTItMjUuNzYxNzE5LTI1Ljc1NzgxMnptMCAzNi41MTU2MjVjLTUuOTI5Njg3IDAtMTAuNzUzOTA2LTQuODI0MjE5LTEwLjc1MzkwNi0xMC43NTM5MDcgMC01LjkyOTY4NyA0LjgyNDIxOS0xMC43NTc4MTIgMTAuNzUzOTA2LTEwLjc1NzgxMiA1LjkzMzU5NCAwIDEwLjc1NzgxMyA0LjgyODEyNSAxMC43NTc4MTMgMTAuNzU3ODEyIDAgNS45Mjk2ODgtNC44MjQyMTkgMTAuNzUzOTA3LTEwLjc1NzgxMyAxMC43NTM5MDd6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDUuOTAyMzQ0IDU1LjE1MjM0NGMtMTQuMjAzMTI1IDAtMjUuNzYxNzE5IDExLjU1NDY4Ny0yNS43NjE3MTkgMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1ODU5NCAyNS43NjE3MTkgMjUuNzYxNzE5IDI1Ljc2MTcxOSAxNC4yMDcwMzEgMCAyNS43NjE3MTgtMTEuNTU0Njg3IDI1Ljc2MTcxOC0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU0Njg3LTI1Ljc1NzgxMi0yNS43NjE3MTgtMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODggMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE4LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg3IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOSAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzNC43NDIxODggMTcxLjkzNzVoLTIxOC4xNDg0MzhjLTQuMTQ0NTMxIDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41IDAgNC4xNDQ1MzEgMy4zNTkzNzUgNy41MDM5MDYgNy41MDM5MDYgNy41MDM5MDZoMjE4LjE0ODQzOGMxLjQzNzUgMCAyLjYwNTQ2OCAxLjE3MTg3NSAyLjYwNTQ2OCAyLjYwOTM3NXYxOS44NTE1NjNjMCAxLjQzNzUtMS4xNjc5NjggMi42MDkzNzUtMi42MDU0NjggMi42MDkzNzVoLTM1Ny40ODQzNzZjLTEuNDM3NSAwLTIuNjA1NDY4LTEuMTcxODc1LTIuNjA1NDY4LTIuNjA5Mzc1di0xOS44NTE1NjNjMC0xLjQzNzUgMS4xNjc5NjgtMi42MDkzNzUgMi42MDU0NjgtMi42MDkzNzVoMTA0LjI2OTUzMmM0LjE0NDUzMSAwIDcuNTAzOTA2LTMuMzU5Mzc1IDcuNTAzOTA2LTcuNTAzOTA2IDAtNC4xNDA2MjUtMy4zNTkzNzUtNy41LTcuNTAzOTA2LTcuNWgtMTA0LjI2OTUzMmMtOS43MTA5MzcgMC0xNy42MDkzNzQgNy44OTg0MzgtMTcuNjA5Mzc0IDE3LjYxMzI4MXYxOS44NTE1NjNjMCA5LjcxMDkzNyA3Ljg5ODQzNyAxNy42MTMyODEgMTcuNjA5Mzc0IDE3LjYxMzI4MWgxMC4wMzUxNTd2MTY2LjQ2NDg0NGMwIDE0LjI3NzM0MyAxMS42MTcxODcgMjUuODk0NTMxIDI1Ljg5NDUzMSAyNS44OTQ1MzFoMjg1LjYyNWMxNC4yNzczNDQgMCAyNS44OTQ1MzEtMTEuNjE3MTg4IDI1Ljg5NDUzMS0yNS44OTQ1MzF2LTE2Ni40NjQ4NDRoMTAuMDM1MTU3YzkuNzEwOTM3IDAgMTcuNjEzMjgxLTcuODk4NDM3IDE3LjYxMzI4MS0xNy42MTMyODF2LTE5Ljg1MTU2M2MwLTkuNzEwOTM3LTcuOTAyMzQ0LTE3LjYxMzI4MS0xNy42MTMyODEtMTcuNjEzMjgxem0tMjUuMDQyOTY5IDIyMS41NDI5NjljMCA2LjAwMzkwNi00Ljg4MjgxMyAxMC44ODY3MTktMTAuODg2NzE5IDEwLjg4NjcxOWgtMjg1LjYyNWMtNi4wMDM5MDYgMC0xMC44OTA2MjUtNC44ODI4MTMtMTAuODkwNjI1LTEwLjg4NjcxOXYtMTY2LjQ2NDg0NGgzMDcuNDAyMzQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyLjU0Mjk2OSAyOTQuODU5Mzc1YzIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNiA1LjUyMzQzNy0yLjQyMTg3NWwyMy4wMTE3MTktMjUuMDE1NjI1YzIuODA4NTk0LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDYtMTAuNjAxNTYzLTMuMDUwNzgxLTIuODA0Njg3LTcuNzkyOTY5LTIuNjA5Mzc0LTEwLjYwMTU2My40NDE0MDdsLTIzLjAxMTcxOCAyNS4wMTU2MjVjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA5Mzc2IDcuNzkyOTY4LjQ0MTQwNiAxMC42MDE1NjIgMS40NDE0MDYgMS4zMjQyMTkgMy4yNjE3MTggMS45ODA0NjkgNS4wNzgxMjUgMS45ODA0Njl6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTQuMTg3NSAzMjQuMTM2NzE5YzEuNDQxNDA2IDEuMzI4MTI1IDMuMjYxNzE5IDEuOTgwNDY5IDUuMDc4MTI1IDEuOTgwNDY5IDIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNyA1LjUyMzQzNy0yLjQyMTg3Nmw0Ny4zMTY0MDctNTEuNDI5Njg3YzIuODA0Njg3LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDctMTAuNjA1NDY5LTMuMDUwNzgxLTIuODA0Njg3LTcuNzk2ODc0LTIuNjA1NDY4LTEwLjYwMTU2Mi40NDE0MDZsLTQ3LjMxNjQwNiA1MS40MzM1OTRjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA1NDY5IDcuNzk2ODc1LjQ0MTQwNiAxMC42MDE1NjN6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",exe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMjIuMjUgMTcuMjY2aC0xMTYuNWE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NSA1Ljc1djY3Ljk5NGE1Ljc1NyA1Ljc1NyAwIDAgMCA1Ljc1IDUuNzVoOS44ODNsLTMuMDY4IDQuNDRhNi4wNzkgNi4wNzkgMCAwIDAgMTAgNi45MTJsNy44NDctMTEuMzUyaDY3LjE3Nmw3Ljg0NCAxMS4zNTFhNi4wNzkgNi4wNzkgMCAwIDAgMTAtNi45MTJsLTMuMDY4LTQuNDM5aDkuODgzYTUuNzU3IDUuNzU3IDAgMCAwIDUuNzUzLTUuNzV2LTY3Ljk5NGE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NS01Ljc1em0tMTAyLjU2MSA4OC44NTZhMi41ODIgMi41ODIgMCAwIDEgLTIuMTIyIDEuMTEyIDIuNTggMi41OCAwIDAgMSAtMi4xMjMtNC4wNDZsNC40NDMtNi40MjhoNi4yNzF6bTkyLjg2Ny0yLjkzNGEyLjU4IDIuNTggMCAwIDEgLTIuMTIzIDQuMDQ2IDIuNTg1IDIuNTg1IDAgMCAxIC0yLjEyMy0xLjExMmwtNi40NjgtOS4zNjJoNi4yNzF6bTExLjk0NC0xMi4xNzhhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUgMi4yNWgtMTE2LjVhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUtMi4yNXYtNjcuOTk0YTIuMjUzIDIuMjUzIDAgMCAxIDIuMjUtMi4yNWgxMTYuNWEyLjI1MyAyLjI1MyAwIDAgMSAyLjI1IDIuMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExOC4yNSAyNS4yNjZoLTEwOC41YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1IDEuNzV2NTkuOTk0YTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzVoMTA4LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNTkuOTk0YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1LTEuNzV6bS0xLjc1IDU5Ljk5NGgtMTA1di01Ni40OTRoMTA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4zNzUgNDcuOTIyaDcuM3YxOS45MzJhMS43NSAxLjc1IDAgMCAwIDMuNSAwdi0xOS45MzJoNy4zYTEuNzUgMS43NSAwIDAgMCAwLTMuNWgtMTguMWExLjc1IDEuNzUgMCAwIDAgMCAzLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTc1Ljk2MyA2OC41MjdhMS43NDkgMS43NDkgMCAwIDAgMy4yMyAwbDkuMDQ3LTIxLjY4MWExLjc1IDEuNzUgMCAxIDAgLTMuMjMtMS4zNDZsLTcuNDMyIDE3LjgwOS03LjQzMi0xNy44MDlhMS43NSAxLjc1IDAgMSAwIC0zLjIzIDEuMzQ4eiIvPgogICAgPC9nPgo8L3N2Zz4=",txe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTksMkg1QTMsMywwLDAsMCwyLDVWNTlhMywzLDAsMCwwLDMsM0g1OWEzLDMsMCwwLDAsMy0zVjVBMywzLDAsMCwwLDU5LDJabTEsNTdhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWNUExLDEsMCwwLDEsNSw0SDU5YTEsMSwwLDAsMSwxLDFaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDZBMjYsMjYsMCwxLDAsNTgsMzIsMjYuMDI5LDI2LjAyOSwwLDAsMCwzMiw2Wm0wLDUwQTI0LDI0LDAsMSwxLDU2LDMyLDI0LjAyOCwyNC4wMjgsMCwwLDEsMzIsNTZaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDEwQTIyLDIyLDAsMSwwLDU0LDMyLDIyLjAyNSwyMi4wMjUsMCwwLDAsMzIsMTBabTEwLjE3NSw0LjgxM2MyLjQ2OSw5LjU1LTMuNjEzLDEyLjktNi40MjgsMTMuOTExYTUsNSwwLDAsMC0xLjY1LTEuMjQ3LDExLjM3NCwxMS4zNzQsMCwwLDAsMy4zMTEtNi43OTRjLjI0OS0yLjg0NS0uNzktNS43MDYtMy4wNS04LjUzMUExOS44MjQsMTkuODI0LDAsMCwxLDQyLjE3NSwxNC44MTNaTTM1LDMyYTMsMywwLDEsMS0zLTNBMywzLDAsMCwxLDM1LDMyWk0zMS41ODYsMTIuMDIxYzIuNzY3LDIuODczLDQuMDY2LDUuNzIyLDMuODMxLDguNDdhMTAuMSwxMC4xLDAsMCwxLTMuNzg0LDYuNTMsMTkuNjUyLDE5LjY1MiwwLDAsMC05LjU4NS0xMi4zNDRBMTkuODM4LDE5LjgzOCwwLDAsMSwzMS41ODYsMTIuMDIxWk0yMC4xMiwxNS45NDhhMTcuNjU3LDE3LjY1NywwLDAsMSw5LjU5MiwxMS42MzMsNC45NTEsNC45NTEsMCwwLDAtLjk1Ny42NDcsMTguODg2LDE4Ljg4NiwwLDAsMC0xNC4zMzgtNS43NTJBMjAuMTI2LDIwLjEyNiwwLDAsMSwyMC4xMiwxNS45NDhaTTEyLDMyYTE5Ljg3LDE5Ljg3LDAsMCwxLDEuNDQyLTcuNDE2QTE2LjM4NSwxNi4zODUsMCwwLDEsMjUuODE2LDI4LjI2YTEzLjc5LDEzLjc5LDAsMCwwLTguMDY0LDEuMjkxQTEyLjY0NCwxMi42NDQsMCwwLDAsMTIuMzExLDM1LjQsMTkuOTEzLDE5LjkxMywwLDAsMSwxMiwzMlptMS4xNjQsNi42NmMxLjEzLTMuNTI5LDIuOTgyLTYsNS41Mi03LjM0YTEyLjY0MywxMi42NDMsMCwwLDEsOC41NjEtLjc4N0E0LjkxOSw0LjkxOSwwLDAsMCwyNywzMmMwLC4xMDkuMDI1LjIxMS4wMzIuMzE4LTIuMDA4LjkxNS03Ljk2MSw0LjQyLTguOSwxNC4wNjNBMjAuMDM0LDIwLjAzNCwwLDAsMSwxMy4xNjQsMzguNjZabTYuODc4LDkuMzMzYy4zNjQtOS4yNzksNS41NjMtMTIuNzQzLDcuNTMxLTEzLjcxOWE1LDUsMCwwLDAsMS4wNjUsMS40Yy0uOTU4LDIuNjA5LTIuODUzLDkuNzkxLDIuMTA4LDE2LjI2MUExOS44NTYsMTkuODU2LDAsMCwxLDIwLjA0Miw0Ny45OTNaTTMzLjM4MSw1MS45M2MtNS40LTUuNzMzLTMuOTItMTIuNDk1LTIuOTg4LTE1LjIxOUE0LjkyOSw0LjkyOSwwLDAsMCwzMiwzN2MuMDgxLDAsLjE1Ni0uMDIuMjM1LS4wMjQuNiwzLjA0OSwyLjgyOSw5LjIyMywxMS4xMTEsMTEuNDc1QTE5Ljg1NiwxOS44NTYsMCwwLDEsMzMuMzgxLDUxLjkzWm0xMS45NjYtNS4wNzhjLTguNDQxLTEuNjE3LTEwLjYyMy03LjI5Mi0xMS4xNzQtMTAuMzdhNS4wMDYsNS4wMDYsMCwwLDAsMS4wODQtLjcxOWMxLjg2OCwxLjksNi4yMTUsNS42MzMsMTEuNTIyLDUuNjMzYTExLjIwOCwxMS4yMDgsMCwwLDAsMy4wODUtLjQ1NUEyMC4wNjksMjAuMDY5LDAsMCwxLDQ1LjM0Nyw0Ni44NTJaTTUyLDMyYTE5LjksMTkuOSwwLDAsMS0xLjA3NCw2LjQxNGMtNi41MDcsMy4xMi0xMi40NjItMi4xODQtMTQuNDM4LTQuMjUxYTQuOTI3LDQuOTI3LDAsMCwwLC4zNjktMS4wMjUsMTYuNiwxNi42LDAsMCwwLDEuNzg5LjA5NCwxOC4zMjgsMTguMzI4LDAsMCwwLDEyLjkyNi01LjMzOUEyMCwyMCwwLDAsMSw1MiwzMlptLTE1LjA4OC0uODY4YTQuNzQ1LDQuNzQ1LDAsMCwwLS4xNzMtLjY1YzIuOTI2LTEuMTU1LDkuMjM0LTQuNzY2LDcuODE3LTE0LjAyOGEyMC4wNTcsMjAuMDU3LDAsMCwxLDYuMzk0LDkuMkExNi4zNDQsMTYuMzQ0LDAsMCwxLDM2LjkxMiwzMS4xMzJaIi8+CiAgICAgICAgPHBhdGggZD0iTTksMTJBMywzLDAsMSwwLDYsOSwzLDMsMCwwLDAsOSwxMlpNOSw4QTEsMSwwLDEsMSw4LDksMSwxLDAsMCwxLDksOFoiLz4KICAgICAgICA8cGF0aCBkPSJNNTUsNmEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCw1NSw2Wm0wLDRhMSwxLDAsMSwxLDEtMUExLDEsMCwwLDEsNTUsMTBaIi8+CiAgICAgICAgPHBhdGggZD0iTTEyLDU1YTMsMywwLDAsMC0zLTMsMi45NjYsMi45NjYsMCwwLDAtMSwuMTg0VjQ1SDZWNTVhMywzLDAsMCwwLDMsM2g2VjU2SDExLjgxNkEyLjk2NiwyLjk2NiwwLDAsMCwxMiw1NVpNOSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw5LDU2WiIvPgogICAgICAgIDxwYXRoIGQ9Ik01Niw1Mi4xODRBMi45NjYsMi45NjYsMCwwLDAsNTUsNTJhMywzLDAsMCwwLTMsMywyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDV2Mkg1NWEzLDMsMCwwLDAsMy0zVjQ5SDU2Wk01NSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw1NSw1NloiLz4KICAgICAgICA8cmVjdCB4PSIxNyIgeT0iNTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",sxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyOC42MDcgNDI4LjYwNyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00MjMuNzczLDM0My44NzFMNDIzLjc3MywzNDMuODcxYy02LjYxNy00LjU5OS0xMi40NC0xMC4yNDYtMTcuMjQxLTE2LjcxOGMtMTEuNDk0LTEzLjA2MS0yNi4xMjItMjkuMjU3LTUzLjI5LTI5LjI1NwoJCQkJYy0yNy4xNjcsMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtMTAuOTcxLTEyLjUzOS0yNS42LTI5Ljc4LTUzLjI5LTI5Ljc4Yy0yNy42OSwwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1CgkJCQlzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1Yy03LjQ1OC05Ljg1LTE2Ljg4OS0xOC4wMzUtMjcuNjktMjQuMDMzYy01LjE5NC0yLjU5Ny0xMS41MDktMC40OTItMTQuMTA2LDQuNzAyCgkJCQljLTIuNTk3LDUuMTk0LTAuNDkyLDExLjUwOSw0LjcwMiwxNC4xMDZjOC4yMDMsNC45NDQsMTUuNDU3LDExLjMxNCwyMS40MiwxOC44MDhjMTIuMDE2LDE0LjEwNiwyNi4xMjIsMjkuNzgsNTMuMjksMjkuNzgKCQkJCXM0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4YzEyLjAxNi0xNC4xMDYsMTkuODUzLTIyLjQ2NSwzNy42MTYtMjIuNDY1czI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1CgkJCQljMTAuOTcxLDEyLjUzOSwyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4YzI3LjY5LDAsNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NQoJCQkJYzE3Ljc2MywwLDI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1YzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDM1My41OTQsNDI4LjY3OSwzNDcuMDQ1LDQyMy43NzMsMzQzLjg3MXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDIzLjc3MywyNjUuNTAzTDQyMy43NzMsMjY1LjUwM2MtNi42MTctNC41OTktMTIuNDQtMTAuMjQ2LTE3LjI0MS0xNi43MThjLTExLjQ5NC0xMy4wNjEtMjYuMTIyLTI5LjI1Ny01My4yOS0yOS4yNTcKCQkJCWMtMjcuMTY3LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjVzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1CgkJCQljLTEwLjk3MS0xMi41MzktMjUuNi0yOS43OC01My4yOS0yOS43OGMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NQoJCQkJcy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJcy0wLjQ5MiwxMS41MDksNC43MDIsMTQuMTA2YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NWM0LjkwNSwzLjE3NCwxMS40NTUsMS43NzEsMTQuNjI5LTMuMTM1CgkJCQlDNDMwLjA4MiwyNzUuMjI3LDQyOC42NzksMjY4LjY3Nyw0MjMuNzczLDI2NS41MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyMy43NzMsMTgxLjkxMUw0MjMuNzczLDE4MS45MTFjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhzLTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjVzLTI1LjYtMjkuNzgtNTMuMjktMjkuNzgKCQkJCWMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMmMtMi41OTcsNS4xOTQtMC40OTIsMTEuNTA5LDQuNzAyLDE0LjEwNgoJCQkJYzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4czQxLjI3My0xNS42NzMsNTMuMjktMjkuNzgKCQkJCWMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NXMyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQljMjcuNjksMCw0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4czE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDE5MS42MzUsNDI4LjY3OSwxODUuMDg1LDQyMy43NzMsMTgxLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNS44MTQsODIuMTI0YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NmM0LjkwNSwzLjE3NCwxMS40NTUsMS43NywxNC42MjktMy4xMzUKCQkJCWMzLjE3NC00LjkwNSwxLjc3MS0xMS40NTUtMy4xMzUtMTQuNjI5aDBjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1cy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NQoJCQkJYy0xMC45NzEtMTIuNTM5LTI1LjYtMjkuNzgtNTMuMjktMjkuNzhjLTI3LjY5LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjUKCQkJCVM1My44OCw5OS44ODcsNDIuOTA4LDg3LjM0OGMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJUzAuNjIxLDc5LjUyNyw1LjgxNCw4Mi4xMjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",ixe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwOCA1MDgiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxMzkuMyIgd2lkdGg9IjE2LjQiIGhlaWdodD0iMzguMiIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTA0LjEsMjEuNCA4OC45LDI3LjcgOTgsNDkuOCAxMTMuMiw0My41IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNy41LDg5LjQgMjEuMywxMDQuNiA0My4zLDExMy43IDQ5LjUsOTguNSAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkwLjksMjEuNCAxODEuOCw0My41IDE5Ni45LDQ5LjggMjA2LDI3LjcgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQzLjMsMTgyLjcgMjEuMywxOTEuOCAyNy41LDIwNyA0OS41LDE5Ny45IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNjcuNCw4OS40IDI0NS40LDk4LjUgMjUxLjcsMTEzLjcgMjczLjcsMTA0LjYgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI0NiwzNy42IDIxOS4xLDY0LjYgMjMwLjcsNzYuMyAyNTcuNiw0OS4yIAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2NC4zLDIyMC4xIDM3LjQsMjQ3LjEgNDksMjU4LjggNzUuOSwyMzEuNyAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQuMywxNDAgMCwxNDAgMCwxNTYuNCAxNC4zLDE1Ni40IDM4LjEsMTU2LjQgMzguMSwxNDAgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU5LjEsNDcuNyA0OSwzNy42IDM3LjQsNDkuMiA2NC4zLDc2LjMgNzUuOSw2NC42IAkJIi8+CiAgICAgICAgPHBhdGggZD0iTTMxOS41LDE3Mi45djE2LjVjNDkuNywwLDkwLjEsNDAuNiw5MC4xLDkwLjZINDI2QzQyNi4xLDIyMC45LDM3OC4zLDE3Mi45LDMxOS41LDE3Mi45eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjYuMSwyOTUuNWMwLjYtNS42LDAuOS0xMC42LDAuOS0xNS42YzAtODEuNy02Ni4yLTE0OC4yLTE0Ny41LTE0OC4yYy0yOC40LDAtNTUuNSw4LjItNzguNywyM2MwLjItMi4yLDAuNS00LjMsMC41LTYuNQoJCQljMC01Mi00Mi4xLTk0LjMtOTMuOC05NC4zcy05My44LDQyLjMtOTMuOCw5NC4zYzAsMzAuNiwxNC45LDU5LjEsMzkuNSw3Ni43Yy0xNS40LDE3LjItMjUuNSwzOS4zLTI3LjMsNjMuNwoJCQljLTM3LDQtNjUuOCwzNS41LTY1LjgsNzMuN2MwLDQwLjksMzMuMSw3NC4xLDczLjcsNzQuMWgzNjAuNWM0MC43LDAsNzMuNy0zMy4yLDczLjctNzQuMUM1MDgsMzMzLjcsNDkxLjQsMzA3LjcsNDY2LjEsMjk1LjV6CgkJCSBNNzAsMTQ4LjJjMC00Mi45LDM0LjctNzcuOCw3Ny40LTc3LjhjNDIuNywwLDc3LjQsMzQuOSw3Ny40LDc3LjhjMCw2LjktMC45LDEzLjktMi43LDIwLjZjLTguMyw3LjQtMTUuNywxNS41LTIyLjEsMjQuNAoJCQljLTMzLjEtOS4xLTY4LjctMS4zLTk0LjksMjAuMUM4My4zLDE5OSw3MCwxNzQuNSw3MCwxNDguMnogTTQzNC4zLDQxOS45SDczLjdjLTMxLjYsMC01Ny40LTI1LjktNTcuNC01Ny42CgkJCWMwLTMxLjgsMjUuNy01Ny42LDU3LjQtNTcuNmg4LjJ2LTguMmMwLTQ5LjksNDAuNC05MC42LDkwLjEtOTAuNmMxNC40LDAsMzQuNyw2LjgsMzQuNyw2LjhzMzguNy02NC40LDExMi44LTY0LjQKCQkJYzcyLjMsMCwxMzEuMSw1OS4xLDEzMS4xLDEzMS43YzAsMTMuOS0yLjYsMjYuMS0yLjYsMjYuMWw2LjIsMi4zYzIyLjMsOC40LDM3LjMsMzAuMSwzNy4zLDUzLjkKCQkJQzQ5MS42LDM5NCw0NjUuOSw0MTkuOSw0MzQuMyw0MTkuOXoiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg4LjQsNDU1LjIgNDcuNSw0OTYuNCA1OS4xLDUwOCAxMDAsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE3OC42LDQ1NS4yIDEzNy42LDQ5Ni40IDE0OS4yLDUwOCAxOTAuMSw0NjYuOCAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjY4LjcsNDU1LjIgMjI3LjcsNDk2LjQgMjM5LjMsNTA4IDI4MC4zLDQ2Ni44IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzNTguOCw0NTUuMiAzMTcuOSw0OTYuNCAzMjkuNCw1MDggMzcwLjQsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ0OC45LDQ1NS4yIDQwOCw0OTYuNCA0MTkuNiw1MDggNDYwLjUsNDY2LjggCQkiLz4KICAgIDwvZz4KPC9zdmc+Cg==",rxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgNTVoLTV2LTQ0YTMuMDA5IDMuMDA5IDAgMCAwIDMtM3YtNWExIDEgMCAwIDAgLTEtMWgtNTJhMSAxIDAgMCAwIC0xIDF2NWEzLjAwOSAzLjAwOSAwIDAgMCAzIDN2NDRoLTVhMSAxIDAgMCAwIC0xIDF2NWExIDEgMCAwIDAgMSAxaDU4YTEgMSAwIDAgMCAxLTF2LTVhMSAxIDAgMCAwIC0xLTF6bS01NC00N3YtNGg1MHY0YTEgMSAwIDAgMSAtMSAxaC00OGExIDEgMCAwIDEgLTEtMXptNDcgM3Y0NGgtNDR2LTQ0em02IDQ5aC01NnYtM2g1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMTJoLTQwYTEgMSAwIDAgMCAtMSAxdjQwYTEgMSAwIDAgMCAxIDFoNDBhMSAxIDAgMCAwIDEtMXYtNDBhMSAxIDAgMCAwIC0xLTF6bS0yMSA0MGgtMTh2LTE5aDE4em0wLTIxaC0xOHYtMTdoMTh6bTIwIDIxaC0xOHYtMTloMTh6bTAtMjFoLTE4di0xN2gxOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTUuMTcyIDE4aDUuNjU3djJoLTUuNjU3eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcwNyAtLjcwNyAuNzA3IC43MDcgLTguMTYzIDE4LjI5MykiLz4KICAgICAgICA8cGF0aCBkPSJtMTQuMTM2IDIwLjVoMTIuNzI4djJoLTEyLjcyOHoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC05LjE5OCAyMC43OTMpIi8+CiAgICA8L2c+Cjwvc3ZnPg==",oxe={"Alarm Systems":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSItMzEgMCA1MTEgNTExLjk5OTk4IiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzUuMzI4MTI1IDExOS4xNjc5NjljMjAuODM5ODQ0IDguMDU4NTkzIDM1LjY0NDUzMSAyMS4xNDg0MzcgNDQuNjMyODEzIDQxLjUwMzkwNiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzEuNjg3NSAxMjguNTg1OTM4YzE4Ljk4MDQ2OSA3LjMzOTg0MyAzMS4zODI4MTIgMTguODMyMDMxIDM5LjAzNTE1NiAzNi4xNjQwNjIgMS42Njc5NjkgMy43NzM0MzggNS4zNjMyODIgNi4wMjM0MzggOS4yNDIxODggNi4wMjM0MzggMS4zNjMyODEgMCAyLjc0NjA5NC0uMjc3MzQ0IDQuMDcwMzEyLS44NjMyODIgNS4xMDU0NjktMi4yNTM5MDYgNy40MTQwNjMtOC4yMTQ4NDQgNS4xNjAxNTYtMTMuMzE2NDA2LTkuODIwMzEyLTIyLjI1LTI2LjI1LTM3LjU3NDIxOS01MC4yMjY1NjItNDYuODQzNzUtNS4xOTkyMTktMi4wMTE3MTktMTEuMDQ2ODc1LjU3NDIxOS0xMy4wNTg1OTQgNS43NzczNDQtMi4wMTE3MTggNS4yMDMxMjUuNTc4MTI1IDExLjA0Njg3NSA1Ljc3NzM0NCAxMy4wNTg1OTR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDcuMTA1NDY5IDIzNy44MTI1YzIwLjA4OTg0MyAwIDM2LjQzNzUtMTYuMzQzNzUgMzYuNDM3NS0zNi40MzM1OTQgMC0yMC4wOTM3NS0xNi4zNDc2NTctMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDM3NSAxNi4zNDM3NS0zNi40Mzc1IDM2LjQzNzUgMCAyMC4wODk4NDQgMTYuMzQ3NjU2IDM2LjQzMzU5NCAzNi40Mzc1IDM2LjQzMzU5NHptMC01Mi42NzU3ODFjOC45NTMxMjUgMCAxNi4yNDIxODcgNy4yODUxNTYgMTYuMjQyMTg3IDE2LjI0MjE4NyAwIDguOTUzMTI1LTcuMjg5MDYyIDE2LjIzODI4Mi0xNi4yNDIxODcgMTYuMjM4MjgyLTguOTU3MDMxIDAtMTYuMjQyMTg4LTcuMjg1MTU3LTE2LjI0MjE4OC0xNi4yMzgyODIgMC04Ljk1NzAzMSA3LjI4NTE1Ny0xNi4yNDIxODcgMTYuMjQyMTg4LTE2LjI0MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM5MC4xNzk2ODggMTQ3LjAxNTYyNWMzLjc2NTYyNCAwIDcuMzk4NDM3LS41NzQyMTkgMTAuODIwMzEyLTEuNjM2NzE5bDcuMzM5ODQ0IDkuODcxMDk0YzEzLjk0MTQwNiAxOC43NSAyMS42MjEwOTQgNDEuOTQ1MzEyIDIxLjYyMTA5NCA2NS4zMTI1djU5LjE1MjM0NGMwIDUuNTc4MTI1IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2IDUuNTc0MjE4IDAgMTAuMDk3NjU2LTQuNTE5NTMxIDEwLjA5NzY1Ni0xMC4wOTc2NTZ2LTU5LjE1MjM0NGMwLTI3LjY3NTc4MS05LjA5Mzc1LTU1LjE1MjM0NC0yNS42MDkzNzUtNzcuMzU5Mzc1bC02LjY3NTc4MS04Ljk4MDQ2OWM1LjQ0OTIxOC02LjM2NzE4NyA4Ljc0NjA5NC0xNC42MjUgOC43NDYwOTQtMjMuNjQwNjI1IDAtMjAuMDkzNzUtMTYuMzQzNzUtMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDMzNTk0IDE2LjM0Mzc1LTM2LjQzMzU5NCAzNi40Mzc1IDAgMjAuMDg5ODQ0IDE2LjM0Mzc1IDM2LjQzMzU5NCAzNi40MzM1OTQgMzYuNDMzNTk0em0wLTUyLjY3NTc4MWM4Ljk1NzAzMSAwIDE2LjI0MjE4NyA3LjI4NTE1NiAxNi4yNDIxODcgMTYuMjQyMTg3IDAgOC45NTMxMjUtNy4yODUxNTYgMTYuMjQyMTg4LTE2LjI0MjE4NyAxNi4yNDIxODgtOC45NTMxMjYgMC0xNi4yNDIxODgtNy4yODkwNjMtMTYuMjQyMTg4LTE2LjI0MjE4OCAwLTguOTU3MDMxIDcuMjg5MDYyLTE2LjI0MjE4NyAxNi4yNDIxODgtMTYuMjQyMTg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjA1ODU5NCAzNDkuMDUwNzgxYy01LjU3ODEyNSAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU3djYzLjMyMDMxMmMwIDE0LjIzMDQ2OS0xMS41NzgxMjYgMjUuODA4NTk0LTI1LjgwODU5NCAyNS44MDg1OTRoLTQ0LjU5NzY1NnYtMzMuNDI5Njg4YzAtNS41NzgxMjUtNC41MTk1MzItMTAuMDk3NjU2LTEwLjA5Mzc1LTEwLjA5NzY1NmgtNDIuMjY1NjI2di0xMTIuNDUzMTI1YzIxLjg1NTQ2OS0yNC4wMzUxNTYgMzUuMTkxNDA3LTU1Ljk0OTIxOSAzNS4xOTE0MDctOTAuOTE3OTY5IDAtNzQuNTk3NjU2LTYwLjY4NzUtMTM1LjI4NTE1Ni0xMzUuMjgxMjUtMTM1LjI4NTE1NnMtMTM1LjI4MTI1IDYwLjY4NzUtMTM1LjI4MTI1IDEzNS4yODUxNTZjMCAzMy4xMDU0NjkgMTEuOTU3MDMxIDYzLjQ2NDg0NCAzMS43NzczNDMgODcuMDAzOTA2djIxMy41MTk1MzJjMCA1LjU3ODEyNSA0LjUyMzQzOCAxMC4wOTc2NTYgMTAuMDk3NjU3IDEwLjA5NzY1NmgyMzUuNzYxNzE5YzUuNTc0MjE4IDAgMTAuMDkzNzUtNC41MTk1MzEgMTAuMDkzNzUtMTAuMDk3NjU2di0zMy40Mjk2ODhoNDQuNTk3NjU2YzI1LjM2NzE4NyAwIDQ2LjAwMzkwNi0yMC42MzY3MTggNDYuMDAzOTA2LTQ2LjAwMzkwNnYtNjMuMzIwMzEyYzAtNS41NzgxMjYtNC41MjM0MzgtMTAuMDk3NjU3LTEwLjA5NzY1Ni0xMC4wOTc2NTd6bS0yMzIuOTUzMTI1LTI2Mi43NjE3MTljNjMuNDU3MDMxIDAgMTE1LjA4NTkzNyA1MS42Mjg5MDcgMTE1LjA4NTkzNyAxMTUuMDg5ODQ0IDAgNjMuNDU3MDMyLTUxLjYyODkwNiAxMTUuMDg1OTM4LTExNS4wODU5MzcgMTE1LjA4NTkzOC02My40NjA5MzggMC0xMTUuMDg1OTM4LTUxLjYyODkwNi0xMTUuMDg1OTM4LTExNS4wODU5MzggMC02My40NjA5MzcgNTEuNjI1LTExNS4wODk4NDQgMTE1LjA4NTkzOC0xMTUuMDg5ODQ0em0tODMuMzA4NTk0IDIyMS42MDE1NjNjMjIuOTgwNDY5IDE4LjAxNTYyNSA1MS45MTAxNTYgMjguNzY5NTMxIDgzLjMwODU5NCAyOC43Njk1MzEgMjkuODYzMjgxIDAgNTcuNDkyMTg3LTkuNzM0Mzc1IDc5Ljg5NDUzMS0yNi4xODc1djE4MS4zMzIwMzJoLTE2My4yMDMxMjV6bTIxNS41NjY0MDYgMTgzLjkxNDA2M2gtMzIuMTY3OTY5di02Ni44NTkzNzZoMzIuMTY3OTY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ4LjE2MDE1NiAzNzcuNzg5MDYyaDE3LjkyNTc4MmM1LjU3NDIxOCAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzgtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyNTc4MmMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk4LjE0NDUzMSAzNzcuNzg5MDYyaDE3LjkyMTg3NWM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyMTg3NWMtNS41NzgxMjUgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTE5NTMxIDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY2LjA0Njg3NSAzNTcuNTkzNzVoLTE3LjkyMTg3NWMtNS41NzQyMTkgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDE3LjkyMTg3NWM1LjU3ODEyNSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDguMTYwMTU2IDQyMC42NzU3ODFoNjcuOTA2MjVjNS41NzQyMTkgMCAxMC4wOTc2NTYtNC41MTk1MzEgMTAuMDk3NjU2LTEwLjA5NzY1NnMtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTY3LjkwNjI1Yy01LjU3NDIxOCAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU2czQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4LjEyNSA0NDMuMTU2MjVoLTk5Ljk2NDg0NGMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDk5Ljk2NDg0NGM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMzU1NDY5IDQwLjEzNjcxOWMxLjg0Mzc1IDMuMzIwMzEyIDUuMjg1MTU2IDUuMTkxNDA2IDguODMyMDMxIDUuMTkxNDA2IDEuNjYwMTU2IDAgMy4zNDM3NS0uNDE0MDYzIDQuODk4NDM4LTEuMjc3MzQ0IDQuODc1LTIuNzEwOTM3IDYuNjI1LTguODU5Mzc1IDMuOTE0MDYyLTEzLjczNDM3NWwtMTMuOTg0Mzc1LTI1LjEyODkwNmMtMi43MTA5MzctNC44NzEwOTQtOC44NTkzNzUtNi42MjUtMTMuNzM0Mzc1LTMuOTEwMTU2LTQuODcxMDk0IDIuNzEwOTM3LTYuNjI1IDguODU5Mzc1LTMuOTE0MDYyIDEzLjczNDM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTYzLjE0NDUzMSA4My4wMTU2MjUtMjYuMDU0Njg3LTE1LjAzOTA2M2MtNC44MzIwMzItMi43ODkwNjItMTEuMDAzOTA2LTEuMTMyODEyLTEzLjc5Mjk2OSAzLjY5NTMxM3MtMS4xMzI4MTMgMTEuMDAzOTA2IDMuNjk1MzEzIDEzLjc5Mjk2OWwyNi4wNTQ2ODcgMTUuMDQyOTY4YzEuNTg5ODQ0LjkxNzk2OSAzLjMyODEyNSAxLjM1MTU2MyA1LjAzOTA2MyAxLjM1MTU2MyAzLjQ4ODI4MSAwIDYuODgyODEyLTEuODA4NTk0IDguNzUzOTA2LTUuMDQ2ODc1IDIuNzg5MDYyLTQuODMyMDMxIDEuMTMyODEyLTExLjAwNzgxMi0zLjY5NTMxMy0xMy43OTY4NzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4xMTMyODEgMTQ2LjIxMDkzOC0zMC4wODU5MzctMS4yODEyNWMtNS41ODIwMzItLjI1LTEwLjI4MTI1IDQuMDg5ODQzLTEwLjUxOTUzMiA5LjY2MDE1Ni0uMjM0Mzc0IDUuNTcwMzEyIDQuMDg5ODQ0IDEwLjI4MTI1IDkuNjYwMTU3IDEwLjUxNTYyNWwzMC4wODU5MzcgMS4yODEyNWMuMTQ0NTMyLjAwNzgxMi4yOTI5NjkuMDA3ODEyLjQzNzUuMDA3ODEyIDUuMzc4OTA2IDAgOS44NTE1NjMtNC4yNDIxODcgMTAuMDc4MTI1LTkuNjY3OTY5LjIzODI4MS01LjU3MDMxMi00LjA4NTkzNy0xMC4yNzczNDMtOS42NTYyNS0xMC41MTU2MjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODMuNjQwNjI1IDE5OC42MjUuMTIxMDk0LjI5Njg3NWMxLjU4OTg0MyAzLjkyNTc4MSA1LjM2NzE4NyA2LjMwNDY4NyA5LjM1OTM3NSA2LjMwNDY4NyAxLjI2MTcxOCAwIDIuNTQ2ODc1LS4yMzgyODEgMy43ODkwNjItLjc0MjE4NyA1LjE2Nzk2OS0yLjA5Mzc1IDcuNjYwMTU2LTcuOTgwNDY5IDUuNTY2NDA2LTEzLjE0ODQzN2wtLjEyMTA5My0uMjk2ODc2Yy0yLjA5Mzc1LTUuMTY3OTY4LTcuOTgwNDY5LTcuNjU2MjUtMTMuMTQ4NDM4LTUuNTYyNXMtNy42NjAxNTYgNy45ODA0NjktNS41NjY0MDYgMTMuMTQ4NDM4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ5LjM2NzE4OCAzMTUuNjY3OTY5Yy0yLjA3ODEyNi01LjE3MTg3NS03Ljk2NDg0NC03LjY3OTY4OC0xMy4xMzY3MTktNS42MDE1NjMtNS4xNzE4NzUgMi4wODIwMzItNy42Nzk2ODggNy45NjA5MzgtNS42MDE1NjMgMTMuMTM2NzE5bC4xMTcxODguMjkyOTY5YzEuNTg1OTM3IDMuOTQxNDA2IDUuMzcxMDk0IDYuMzM1OTM3IDkuMzc1IDYuMzM1OTM3IDEuMjUzOTA2IDAgMi41MjczNDQtLjIzNDM3NSAzLjc2MTcxOC0uNzM0Mzc1IDUuMTc1NzgyLTIuMDc4MTI1IDcuNjgzNTk0LTcuOTYwOTM3IDUuNjAxNTYzLTEzLjEzMjgxMnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Amplifier:yfe,Awnings:Tfe,"Battery Status":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zOTQuMDYzIDM5MS45OTZjLTkuMTk4LTUuMjktMTguMzczLTEwLjYyMy0yNy41NTgtMTUuOTM3IDUuMDAyLTExLjc2OSAxMC4xOTQtMjMuOTAyIDE0LjkwMy0zNi4wNTMgMS44MDktNC42NjcgMS4xODktOS45MTEtMS42NTUtMTQuMDI4LTUuNzc2LTguMzYxLTE2Ljg2My04Ljg1NS0yNC4zNDQtMS43NC0xOS42NjEgMTguNy0zOS4wODUgMzctNTguNjUyIDU1LjUzNy0zLjc3NSAzLjU3Ny01LjYzOSA4LjQzNC01LjExIDEzLjMyNy41MjMgNC44NDYgMy4zMzkgOS4xNDQgNy43MjUgMTEuNzkyIDkuMzQ1IDUuNjQxIDE4Ljc2MSAxMC45NTUgMjguMDk4IDE2LjI5MS00LjY0NCAxMC45NTEtMTAuMzcyIDI0LjI0Ni0xNC45MiAzNi4wMDItMi44ODcgNy40NjIuNDIxIDE1Ljc0NCA3LjY5MyAxOS4yNjQgNS43MTQgMi43NjYgMTIuMjggMi4yMTEgMTguMjk5LTMuNDgzIDE5LjM0NC0xOC4zIDM5LjM0My0zNy4yMTQgNTguNjctNTUuNTQ3IDMuODE4LTMuNjIyIDUuNjc0LTguNTEyIDUuMDktMTMuNDE2LS41OTEtNC45NjItMy41OTQtOS4zMzgtOC4yMzktMTIuMDA5em0tNy4xNzQgMTQuNTRjLTE1LjYzNCAxNC44MzItNTguOTQ5IDU2Ljk3My02MC4xMDkgNTYuNDEyLS4xMTgtLjA1Ny0uMzA2LS4xNzgtLjI0LS4zNDkgNS4xNzktMTMuNTI2IDExLjYzNS0yOC4yNzIgMTYuOTE4LTQwLjczMiAxLjQ5My0zLjUyMi45MDctOC4yOC0zLjc2OC0xMC45Ny0xMC44NC02LjIzNy0yMS43OTEtMTIuMzU0LTMyLjU2NC0xOC44NDUtLjgwMi0uNDgzLS43NjctLjcxLS4wNTEtMS4zODggMjAuODc0LTE5Ljc3OSA1Ny45NTktNTUuMzExIDU5LjgwMy01Ni40NTkuMzk2LjA4NC41NDQuMjk5LjU0NS4zODQtNS4zMDcgMTMuNjg0LTExLjIxMyAyNy4zMDUtMTYuOSA0MC43MzktMS43OTQgNC4yMzctLjI5MyA4LjY0OSAzLjczOSAxMC45OCA0LjM5OSAyLjU0IDguNzk2IDUuMDg3IDEzLjE5MSA3LjYzNCA2LjM3NCAzLjY5MyAxMi43NDggNy4zODcgMTkuMTM0IDExLjA1OSAxLjEwNi42MzUgMS4xMzYuNzQ0LjMwMiAxLjUzNXptLTgxLjc4NC0yMDguNGgtMjAxLjQ2Yy0xMC4yNzMgMC0xOC42MzEgOC4zMy0xOC42MzEgMTguNTY5djQ0LjI3NmMwIDEwLjIzOSA4LjM1NyAxOC41NjkgMTguNjMxIDE4LjU2OWgyMDEuNDYxYzEwLjI3MyAwIDE4LjYzMS04LjMzIDE4LjYzMS0xOC41Njl2LTQ0LjI3NmMtLjAwMS0xMC4yMzktOC4zNTgtMTguNTY5LTE4LjYzMi0xOC41Njl6bTMuNjMxIDYyLjg0NWMwIDEuOTY4LTEuNjI5IDMuNTY5LTMuNjMxIDMuNTY5aC0yMDEuNDZjLTIuMDAyIDAtMy42MzEtMS42MDEtMy42MzEtMy41Njl2LTQ0LjI3NmMwLTEuOTY4IDEuNjI5LTMuNTY5IDMuNjMxLTMuNTY5aDIwMS40NjFjMi4wMDIgMCAzLjYzMSAxLjYwMSAzLjYzMSAzLjU2OXY0NC4yNzZ6bTE1LTE0My44OThjMC0xMC4yMzktOC4zNTctMTguNTY5LTE4LjYzMS0xOC41NjloLTIwMS40NmMtMTAuMjczIDAtMTguNjMxIDguMzMtMTguNjMxIDE4LjU2OXY0NC4yNzZjMCAxMC4yMzkgOC4zNTcgMTguNTY5IDE4LjYzMSAxOC41NjloMjAxLjQ2MWMxMC4yNzMgMCAxOC42MzEtOC4zMyAxOC42MzEtMTguNTY5di00NC4yNzZ6bS0xNSA0NC4yNzdjMCAxLjk2OC0xLjYyOSAzLjU2OS0zLjYzMSAzLjU2OWgtMjAxLjQ2Yy0yLjAwMiAwLTMuNjMxLTEuNjAxLTMuNjMxLTMuNTY5di00NC4yNzZjMC0xLjk2OCAxLjYyOS0zLjU2OSAzLjYzMS0zLjU2OWgyMDEuNDYxYzIuMDAyIDAgMy42MzEgMS42MDEgMy42MzEgMy41Njl2NDQuMjc2em0zOC4yNDcgMTIzLjg1N2MtMTguNjUzIDAtMzYuMjY2IDQuNTI5LTUxLjgwMyAxMi41NDJoLTE5MS41MzVjLTEwLjI3MiAwLTE4LjYzIDguMzMxLTE4LjYzIDE4LjU3djQ0LjI3YzAgMTAuMjM5IDguMzU3IDE4LjU3IDE4LjYzIDE4LjU3aDEzMS42MjFjLTEuMDk2IDYuMzE4LTEuNjczIDEyLjgxMi0xLjY3MyAxOS40MzggMCAyNC4yNDMgNy42NTEgNDYuNzI5IDIwLjY2IDY1LjE4MmgtMTUwLjYwOGMtMi4wMDIgMC0zLjYzLTEuNjAyLTMuNjMtMy41N3YtNDQuMjdjMC0xLjk2OSAxLjYyOC0zLjU3IDMuNjMtMy41N2gxMDcuNjQxYzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMDcuNjQxYy0xMC4yNzIgMC0xOC42MyA4LjMzMS0xOC42MyAxOC41N3Y0NC4yN2MwIDEwLjIzOSA4LjM1NyAxOC41NyAxOC42MyAxOC41N2gxNjMuMjM3YzcuMDcgNy4wNjMgMTUuMDY1IDEzLjE5OSAyMy43ODUgMTguMjFoLTE5OC4yNDJjLTE0LjIyNyAwLTI1LjgtMTEuNTc0LTI1LjgtMjUuOHYtMzY1LjA4OWMwLTE0LjIyNiAxMS41NzMtMjUuOCAyNS44LTI1LjhoMjIzLjljMTQuMjI3IDAgMjUuOCAxMS41NzQgMjUuOCAyNS44djE1Ni42NGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xNTYuNjRjMC0yMi40OTctMTguMzAzLTQwLjgtNDAuOC00MC44aC00MC4wNjd2LTM1LjYxMWMwLTE2LjM3Ni0xMy4zMjMtMjkuNjk5LTI5LjY5OS0yOS42OTloLTg0LjM2N2MtMTYuMzc2IDAtMjkuNjk5IDEzLjMyMy0yOS42OTkgMjkuNjk5djM1LjYxMWgtNDAuMDY4Yy0yMi40OTcgMC00MC44IDE4LjMwMy00MC44IDQwLjh2MzY1LjA5YzAgMjIuNDk3IDE4LjMwMyA0MC44IDQwLjggNDAuOGgyMjMuOWMzLjg5MiAwIDcuNzMxLS41NTMgMTEuNDQyLTEuNjM2IDYuMjQ4IDEuMDcxIDEyLjY2NyAxLjYzNiAxOS4yMTYgMS42MzYgNjIuNTI0IDAgMTEzLjM5Mi01MC44NjcgMTEzLjM5Mi0xMTMuMzkyIDAtNjIuNTI0LTUwLjg2Ny0xMTMuMzkxLTExMy4zOTItMTEzLjM5MXptLTE5OS40OTEtMjU1LjUxOGMwLTguMTA1IDYuNTk0LTE0LjY5OSAxNC42OTktMTQuNjk5aDg0LjM2N2M4LjEwNSAwIDE0LjY5OSA2LjU5NCAxNC42OTkgMTQuNjk5djM1LjYxMWgtMTEzLjc2NXptLTQzLjg0NyAzMzQuNDcxYy0yLjAwMiAwLTMuNjMtMS42MDItMy42My0zLjU3di00NC4yN2MwLTEuOTY5IDEuNjI4LTMuNTcgMy42My0zLjU3aDE2OS4zNDFjLTE1LjY2NiAxMy41MjEtMjcuNiAzMS4yNS0zNC4wNDEgNTEuNDF6bTI0My4zMzggMTMyLjgzYy01NC4yNTMgMC05OC4zOTItNDQuMTM4LTk4LjM5Mi05OC4zOTIgMC01NC4yNTMgNDQuMTM5LTk4LjM5MSA5OC4zOTItOTguMzkxczk4LjM5MiA0NC4xMzggOTguMzkyIDk4LjM5MWMwIDU0LjI1NC00NC4xMzkgOTguMzkyLTk4LjM5MiA5OC4zOTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Ceiling Spotlights":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDc0IDc0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDYuNDQgNGgtMi45N2ExIDEgMCAwIDEgMC0yaDIuOTdhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNjguNjQgMTAuMzhoLTYzLjI4YTEgMSAwIDAgMSAtMS0xdi02LjM4YTEgMSAwIDAgMSAxLTFoMjEuMmExIDEgMCAwIDEgMCAyaC0yMC4ydjQuMzhoNjEuMjh2LTQuMzhoLTE0LjJhMSAxIDAgMCAxIDAtMmgxNS4yYTEgMSAwIDAgMSAxIDF2Ni4zOGExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYuNDcgNGgtMi45MWExIDEgMCAwIDEgMC0yaDIuOTFhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgNTEuMjA3YTEgMSAwIDAgMSAtMS0xdi00MC44MjhhMSAxIDAgMSAxIDIgMHY0MC44MjhhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ljc3MSA2Ny4wN2gtMTkuNTQyYTEgMSAwIDAgMSAtLjk3Ny0xLjIxNWwzLjQ5LTE1Ljg1NWExIDEgMCAwIDEgLjk3Ny0uNzg1aDEyLjU2MmExIDEgMCAwIDEgLjk3Ny43ODVsMy40OSAxNS44NmExIDEgMCAwIDEgLS45NzcgMS4yMTV6bS0xOC4zLTJoMTcuMDU2bC0zLjA0OS0xMy44NmgtMTAuOTU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyA3MmE1LjkzNiA1LjkzNiAwIDAgMSAtNS45My01LjkzIDEgMSAwIDAgMSAyIDAgMy45MyAzLjkzIDAgMCAwIDcuODYgMCAxIDEgMCAwIDEgMiAwIDUuOTM2IDUuOTM2IDAgMCAxIC01LjkzIDUuOTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiAzNS4xMTRhMSAxIDAgMCAxIC0xLTF2LTI0LjczNWExIDEgMCAwIDEgMiAwdjI0LjczNWExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjkuNiA1MC4wMjZoLTE4LjM3YTEgMSAwIDAgMSAtLjk3Ni0xLjIxNWwzLjI4LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgwOWExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgybC0yLjgzOS0xMi45MDloLTEwLjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiA1NC42NmE1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQtNS42MzQgMSAxIDAgMSAxIDIgMCAzLjYzNCAzLjYzNCAwIDEgMCA3LjI2OCAwIDEgMSAwIDEgMSAyIDAgNS42NDEgNS42NDEgMCAwIDEgLTUuNjM0IDUuNjM0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMy41ODQgMzUuMTE0YTEgMSAwIDAgMSAtMS0xdi0yNC43MzVhMSAxIDAgMCAxIDIgMHYyNC43MzVhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyLjc3IDUwLjAyNmgtMTguMzdhMSAxIDAgMCAxIC0uOTc2LTEuMjE1bDMuMjc2LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgxMmExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgxbC0yLjgzOS0xMi45MDloLTEwLjIwM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTMuNTg0IDU0LjY2YTUuNjQxIDUuNjQxIDAgMCAxIC01LjYzNC01LjYzNCAxIDEgMCAwIDEgMiAwIDMuNjM0IDMuNjM0IDAgMCAwIDcuMjY4IDAgMSAxIDAgMCAxIDIgMCA1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQgNS42MzR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Chandelier:Dfe,Climate:dfe,"Coffee Makers":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NjYgMTExLjk5NmgtNDkuNzE5bC0xMDkuMjE1LTQ2LjM2MSA0Ljg4OS01NC43NDZjLjI1LTIuNzk2LS42ODctNS41NjgtMi41ODItNy42MzktMS44OTQtMi4wNy00LjU3Mi0zLjI1LTcuMzc4LTMuMjVoLTYwYy0yLjgwNyAwLTUuNDg0IDEuMTgtNy4zNzkgMy4yNS0xLjg5NSAyLjA3MS0yLjgzMSA0Ljg0My0yLjU4MiA3LjYzOWw0Ljg5OCA1NC44NTQtMTA0Ljc5NSA0Ni4yNTNoLTI2LjEzN2MtMzguNTk4IDAtNzAgMzEuNDAyLTcwIDcwdjY5Ljk5N2MwIDE2LjU0MiAxMy40NTggMzAgMzAgMzBzMzAtMTMuNDU4IDMwLTMwdi02OS45OTdjMC01LjQyIDQuNTgtMTAgMTAtMTBoMjYuOTE1bDIxLjQ4MyAxMjEuNzM4YzEuOTI3IDEwLjkyMyA5LjkwNCAxOC4yNjMgMTkuODQ4IDE4LjI2M3Y0MC4wMDNjLTkuNjUyIDAtMTcuMjE3IDYuODAyLTE5Ljc0NCAxNy43NTFsLTMwLjAwMSAxMzBjLS42ODUgMi45NjkuMDIxIDYuMDg5IDEuOTE4IDguNDc0czQuNzc4IDMuNzc0IDcuODI2IDMuNzc0aDI4MGMzLjA0NyAwIDUuOTI5LTEuMzkgNy44MjYtMy43NzQgMS44OTctMi4zODUgMi42MDQtNS41MDUgMS45MTgtOC40NzRsLTMwLjAwMS0xMzBjLTIuNTI1LTEwLjk0OS0xMC4wOTEtMTcuNzUxLTE5Ljc0My0xNy43NTF2LTQwLjAwMmM5Ljk0NCAwIDE3LjkyLTcuMzM5IDE5Ljg0Ny0xOC4yNjJsMTQuMzgxLTgxLjQ5MiA2NC4wNTYtNTUuMjM2YzIuMjAzLTEuODk5IDMuNDctNC42NjUgMy40Ny03LjU3M3YtMjcuNDM4Yy4wMDEtNS41MjQtNC40NzctMTAuMDAxLTkuOTk5LTEwLjAwMXptLTE3NC45MzgtOTEuOTk2LTMuNzUgNDEuOTk2aC0zMC42MzRsLTMuNzUxLTQxLjk5NnptLTQxLjQyMyA2MS45OTZoNDQuNzg1bDcwLjY3MiAzMGgtMTgzLjQyOHptLTE0My42MzkgNzAuMDAxYy0xNi41NDIgMC0zMCAxMy40NTgtMzAgMzB2NjkuOTk3YzAgNS41MTQtNC40ODYgMTAtMTAgMTBzLTEwLTQuNDg2LTEwLTEwdi02OS45OTdjMC0yNy41NyAyMi40My01MCA1MC01MGgxOS44NTZsMy41MyAyMHptNjguMDk0IDEzOC4yNjMtMjcuOTI5LTE1OC4yNjRoNjIuNzYybDIuNTI4IDM1LjgxN2MuMzcyIDUuMjcgNC43NjIgOS4yOTYgOS45NjUgOS4yOTYuMjM2IDAgLjQ3NS0uMDA4LjcxNC0uMDI1IDUuNTA5LS4zODkgOS42Ni01LjE3IDkuMjcxLTEwLjY3OWwtMi40MjktMzQuNDA5aDkwLjUzOWwtMTEuMjk1IDE2MC4wMDJoLTY3Ljk0OWwtMi41MjktMzUuODE3Yy0uMzg5LTUuNTA5LTUuMTY2LTkuNjYxLTEwLjY3OS05LjI3MS01LjUwOS4zODktOS42NiA1LjE3LTkuMjcxIDEwLjY3OWwyLjQyOSAzNC40MDloLTQ1LjUxOGMtLjE5OS0uMzIxLS40NjMtLjkxNC0uNjA5LTEuNzM4em0tLjEwMyA4My45ODhjLjI1OS0xLjEyNS42MS0xLjg1Ny44NTMtMi4yNDloNDUuMzZsLTExLjA3NyAxMjBoLTYyLjMxem0xMzQuMjEyLTIuMjQ4IDExLjA3NyAxMjBoLTkwLjA2OWwxMS4wNzctMTIwem02Ni4yOTcgMi4yNDggMjcuMTc1IDExNy43NTJoLTYyLjMxbC0xMS4wNzctMTIwaDQ1LjM2Yy4yNDMuMzkxLjU5MyAxLjEyMy44NTIgMi4yNDh6bS0yMC4yNTUtMjIuMjQ4aC0xNTkuOTk4di00MC4wMDJoMTU5Ljk5OHptMjAuMTUxLTYxLjc0Yy0uMTQ2LjgyNC0uNDA5IDEuNDE3LS42MDggMS43MzdoLTQ1LjUxOGwxMS4yOTUtMTYwLjAwMWg2Mi43NjJsLTEyLjkzNyA3My4zMDljMCAuMDAxIDAgLjAwMi0uMDAxLjAwM3ptODEuNjA0LTE0NS40MDctNDIuMDI5IDM2LjI0MiA4LjY2NS00OS4wOTloMzMuMzY0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjQuNTk5IDIyMS45OTdjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTBoLS4wMDdjLTUuNTIzIDAtOS45OTYgNC40NzctOS45OTYgMTBzNC40OCAxMCAxMC4wMDMgMTB6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Cold Water":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3NSA0NzUiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik00MzguNDEzLDM0My4xODhDNDI4LjA1OSwzMzUuMDg1LDQxNS4xNzQsMzI1LDM5MC44MzUsMzI1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3NywxOC4xODgKCQlDMzM0LjQ5NiwzNTAuMDQ1LDMyOC4xNjUsMzU1LDMxNC4xNywzNTVjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzQzI3NC43MjksMzM1LjA4NSwyNjEuODQ0LDMyNSwyMzcuNTA2LDMyNQoJCWMtMjQuMzM5LDAtMzcuMjI0LDEwLjA4NS00Ny41NzgsMTguMTg4QzE4MS4xNjYsMzUwLjA0NSwxNzQuODM0LDM1NSwxNjAuODQsMzU1Yy0xMy45OTYsMC0yMC4zMjctNC45NTUtMjkuMDktMTEuODEzCgkJQzEyMS4zOTUsMzM1LjA4NCwxMDguNTA5LDMyNSw4NC4xNywzMjVjLTI0LjMzOSwwLTM3LjIyNSwxMC4wODQtNDcuNTc5LDE4LjE4OEMyNy44MjgsMzUwLjA0NSwyMS40OTYsMzU1LDcuNSwzNTV2MzAKCQljMjQuMzM5LDAsMzcuMjI1LTEwLjA4NCw0Ny41NzktMTguMTg4QzYzLjg0MiwzNTkuOTU1LDcwLjE3NCwzNTUsODQuMTcsMzU1YzEzLjk5NiwwLDIwLjMyNyw0Ljk1NSwyOS4wOTEsMTEuODEzCgkJQzEyMy42MTUsMzc0LjkxNiwxMzYuNSwzODUsMTYwLjg0LDM4NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg0LDQ3LjU3OC0xOC4xODhDMjE3LjE4LDM1OS45NTUsMjIzLjUxMSwzNTUsMjM3LjUwNiwzNTUKCQljMTMuOTk0LDAsMjAuMzI1LDQuOTU1LDI5LjA4NywxMS44MTNDMjc2Ljk0NywzNzQuOTE1LDI4OS44MzMsMzg1LDMxNC4xNywzODVjMjQuMzM4LDAsMzcuMjI0LTEwLjA4NSw0Ny41NzctMTguMTg4CgkJQzM3MC41MSwzNTkuOTU1LDM3Ni44NDEsMzU1LDM5MC44MzUsMzU1YzEzLjk5NSwwLDIwLjMyNSw0Ljk1NSwyOS4wODgsMTEuODEzQzQzMC4yNzcsMzc0LjkxNSw0NDMuMTYyLDM4NSw0NjcuNSwzODV2LTMwCgkJQzQ1My41MDYsMzU1LDQ0Ny4xNzUsMzUwLjA0NSw0MzguNDEzLDM0My4xODh6Ii8+Cgk8cGF0aCBkPSJNMzkwLjgzNSw0MTVjLTI0LjMzOCwwLTM3LjIyNCwxMC4wODUtNDcuNTc3LDE4LjE4OEMzMzQuNDk2LDQ0MC4wNDUsMzI4LjE2NSw0NDUsMzE0LjE3LDQ0NQoJCWMtMTMuOTk0LDAtMjAuMzI1LTQuOTU1LTI5LjA4Ny0xMS44MTNDMjc0LjcyOSw0MjUuMDg1LDI2MS44NDQsNDE1LDIzNy41MDYsNDE1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3OCwxOC4xODgKCQlDMTgxLjE2Niw0NDAuMDQ1LDE3NC44MzQsNDQ1LDE2MC44NCw0NDVjLTEzLjk5NiwwLTIwLjMyNy00Ljk1NS0yOS4wOS0xMS44MTNDMTIxLjM5NSw0MjUuMDg0LDEwOC41MDksNDE1LDg0LjE3LDQxNQoJCWMtMjQuMzM5LDAtMzcuMjI1LDEwLjA4NC00Ny41NzksMTguMTg4QzI3LjgyOCw0NDAuMDQ1LDIxLjQ5Niw0NDUsNy41LDQ0NXYzMGMyNC4zMzksMCwzNy4yMjUtMTAuMDg0LDQ3LjU3OS0xOC4xODgKCQlDNjMuODQyLDQ0OS45NTUsNzAuMTc0LDQ0NSw4NC4xNyw0NDVjMTMuOTk2LDAsMjAuMzI3LDQuOTU1LDI5LjA5MSwxMS44MTNDMTIzLjYxNSw0NjQuOTE2LDEzNi41LDQ3NSwxNjAuODQsNDc1CgkJYzI0LjMzOCwwLDM3LjIyNC0xMC4wODQsNDcuNTc4LTE4LjE4OEMyMTcuMTgsNDQ5Ljk1NSwyMjMuNTExLDQ0NSwyMzcuNTA2LDQ0NWMxMy45OTQsMCwyMC4zMjUsNC45NTUsMjkuMDg3LDExLjgxMwoJCUMyNzYuOTQ3LDQ2NC45MTUsMjg5LjgzMyw0NzUsMzE0LjE3LDQ3NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg1LDQ3LjU3Ny0xOC4xODhDMzcwLjUxLDQ0OS45NTUsMzc2Ljg0MSw0NDUsMzkwLjgzNSw0NDUKCQljMTMuOTk1LDAsMjAuMzI1LDQuOTU1LDI5LjA4OCwxMS44MTNDNDMwLjI3Nyw0NjQuOTE1LDQ0My4xNjIsNDc1LDQ2Ny41LDQ3NXYtMzBjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzCgkJQzQyOC4wNTksNDI1LjA4NSw0MTUuMTc0LDQxNSwzOTAuODM1LDQxNXoiLz4KCTxwb2x5Z29uIHBvaW50cz0iMTg0LjM3OCwyNTguMzIzIDIyMi41LDIzNi4zMTMgMjIyLjUsMjgwLjMzMyAyNTIuNSwyODAuMzMzIDI1Mi41LDIzNi4zMTMgMjkwLjYyMiwyNTguMzIzIDMwNS42MjIsMjMyLjM0MwoJCTI2Ny41LDIxMC4zMzMgMzA1LjYyMiwxODguMzIzIDI5MC42MjIsMTYyLjM0MyAyNTIuNSwxODQuMzUzIDI1Mi41LDE0MC4zMzMgMjIyLjUsMTQwLjMzMyAyMjIuNSwxODQuMzUzIDE4NC4zNzgsMTYyLjM0MwoJCTE2OS4zNzgsMTg4LjMyMyAyMDcuNSwyMTAuMzMzIDE2OS4zNzgsMjMyLjM0MyAJCQkiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjQuMDk1LDExNy45OSA2Mi4yMTYsOTUuOTggNjIuMjE2LDE0MCA5Mi4yMTYsMTQwIDkyLjIxNiw5NS45OCAxMzAuMzM4LDExNy45OSAxNDUuMzM4LDkyLjAxIDEwNy4yMTYsNzAKCQkxNDUuMzM4LDQ3Ljk5IDEzMC4zMzgsMjIuMDEgOTIuMjE2LDQ0LjAyIDkyLjIxNiwwIDYyLjIxNiwwIDYyLjIxNiw0NC4wMiAyNC4wOTUsMjIuMDEgOS4wOTUsNDcuOTkgNDcuMjE3LDcwIDkuMDk1LDkyLjAxCgkJIi8+Cgk8cG9seWdvbiBwb2ludHM9IjM0NC42NjIsMTE3Ljk5IDM4Mi43ODQsOTUuOTggMzgyLjc4NCwxNDAgNDEyLjc4NCwxNDAgNDEyLjc4NCw5NS45OCA0NTAuOTA1LDExNy45OSA0NjUuOTA1LDkyLjAxIDQyNy43ODMsNzAKCQk0NjUuOTA1LDQ3Ljk5IDQ1MC45MDUsMjIuMDEgNDEyLjc4NCw0NC4wMiA0MTIuNzg0LDAgMzgyLjc4NCwwIDM4Mi43ODQsNDQuMDIgMzQ0LjY2MiwyMi4wMSAzMjkuNjYyLDQ3Ljk5IDM2Ny43ODQsNzAKCQkzMjkuNjYyLDkyLjAxIAkJCSIvPgo8L2c+Cjwvc3ZnPgo=",Computer:hfe,Consumption:zfe,Curtains:wfe,Dishwashers:Cfe,Doors:Ife,Doorstep:pfe,Dryer:Afe,Fan:mfe,"Floor Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNzcuMDE4IDEwNC40LTU0Ljg2MS05My40MTZjLTMuOTgtNi43NzUtMTEuMzM0LTEwLjk4NC0xOS4xOTEtMTAuOTg0aC05MS42NTVjLTcuNjk3IDAtMTQuOTczIDQuMDc5LTE4Ljk4NyAxMC42NDRsLTU3LjEzNSA5My40MTRjLTkuMDU1IDE0LjgwMyAxLjYyNiAzMy44NyAxOC45ODcgMzMuODdoMjguMTgyYzIuMjIyIDMzLjQ1MiAyNi44MDggNjAuODg0IDU4LjkxNiA2Ny40MS0uMjc0IDEuODI2LS4xODQtMTMuNTEtLjE4NCAyMTcuMTk1aC0zNy40ODRjLTExLjg5OCAwLTIxLjU3OSA5LjY4LTIxLjU3OSAyMS41Nzl2NDYuMzFjMCAxMS44OTggOS42OCAyMS41NzkgMjEuNTc5IDIxLjU3OWgxMDQuNzljMTEuODk5IDAgMjEuNTc5LTkuNjggMjEuNTc5LTIxLjU3OXYtNDYuMzFjMC0xMS44OTgtOS42OC0yMS41NzktMjEuNTc5LTIxLjU3OWgtMzcuNDg0YzAtMjMwLjc2Ni4wOS0yMTUuMzctLjE4NC0yMTcuMTk1IDIyLjAyNS00LjQ3NiA0MC41MDUtMTguNzk1IDUwLjY2Ni0zOC4xNDF2MzcuNjMxYzAgOC4yMzUgNi42NzYgMTQuOTExIDE0LjkxMSAxNC45MTFzMTQuOTExLTYuNjc2IDE0LjkxMS0xNC45MTF2LTY2LjloNi42MWMxNy4xNjYgMCAyNy44OTMtMTguNzA4IDE5LjE5Mi0zMy41Mjh6bS03Ni44NjYgMzc3Ljc3OGgtODguMzAydi0yOS44MjJoODguMzAyem0tODQuNTk5LTQ1Mi4zNTZoODMuMDgzbDQ1Ljk3NCA3OC4yODRjLTcuMDYxIDAtMTY5LjkwMyAwLTE3Ni45MzggMHptNDAuNDQ3IDE0Ny4xNzJjLTIyLjU5NSAwLTQxLjI2Ny0xNy4xMTctNDMuNzI5LTM5LjA2Nmg4Ny40NThjLTIuNDYyIDIxLjk0OS0yMS4xMzQgMzkuMDY2LTQzLjcyOSAzOS4wNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Garage Doors":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDY0YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04SDhDMy41ODIsMCwwLDMuNTgyLDAsOHY0OGMwLDQuNDE4LDMuNTgyLDgsOCw4aDE2djQwMEg4CgkJYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDQ2NGM0LjQxOCwwLDgtMy41ODIsOC04cy0zLjU4Mi04LTgtOGgtMTZWNjRINDcyeiBNNDA4LDQ2NEg3MnYtNDhoMzM2VjQ2NHogTTQwOCw0MDBINzJ2LTQ4CgkJaDMzNlY0MDB6IE00MDgsMzM2SDcydi00OGgzMzZWMzM2eiBNNDA4LDI3Mkg3MnYtNDhoMzM2VjI3MnogTTQwOCwyMDhINzJ2LTQ4aDMzNlYyMDh6IE00MDgsMTQ0SDcyVjk2aDMzNlYxNDR6IE00NDAsNDY0aC0xNlY4OAoJCWMwLTQuNDE4LTMuNTgyLTgtOC04SDY0Yy00LjQxOCwwLTgsMy41ODItOCw4djM3Nkg0MFY2NGg0MDBWNDY0eiBNMTYsNDhWMTZoNDQ4djMySDE2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTYsNDU2aDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LDMuNTgyLTgsOFMyMTEuNTgyLDQ1NiwyMTYsNDU2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Gates:Ofe,Hairdryer:Efe,Handle:ffe,"Hanging Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05My41MjUgMzU5Ljc3MWgxMDcuODg1djQuMTI5YTUzLjA3MiA1My4wNzIgMCAxIDAgMTA2LjE0NCAwdi00LjEyNGgxMTAuOTIxYTYgNiAwIDAgMCA2LTZjMC04Mi4wMTUtNTguOTEzLTE1MC41MTgtMTM2LjY0LTE2NS40NDR2LTIwLjMxOWEzMS44ODMgMzEuODgzIDAgMCAwIC0yNS44MzUtMzEuMjZ2LTEyMC43NTNhNiA2IDAgMCAwIC0xMiAwdjEyMC43NTNhMzEuODgzIDMxLjg4MyAwIDAgMCAtMjUuODM1IDMxLjI2djIwLjMxNGMtNzcuNzI3IDE0LjkyNi0xMzYuNjQgODMuNDI5LTEzNi42NCAxNjUuNDQ0YTYgNiAwIDAgMCA2IDZ6bTIwMi4wMjkgNC4xMjlhNDEuMDcyIDQxLjA3MiAwIDEgMSAtODIuMTQ0IDB2LTQuMTI0aDgyLjE0NHptLTM5LjU1NC0yMTUuNzIyYTE5Ljg1MSAxOS44NTEgMCAwIDEgMTkuMTggMTQuODY4aC0zOC4zNmExOS44NTEgMTkuODUxIDAgMCAxIDE5LjE4LTE0Ljg2OHptLTE5LjgzNSAyNi44NjhoMzkuNjd2MTEuNDI0YTE2OC4yODggMTY4LjI4OCAwIDAgMCAtMzkuNjcgMHptMTkuODM1IDIyLjI1NGM4NC4yNzQgMCAxNTMuMiA2Ni45NiAxNTYuMzYxIDE1MC40NzRoLTMxMi43MjJjMy4xNjEtODMuNTE3IDcyLjA4Ny0xNTAuNDc0IDE1Ni4zNjEtMTUwLjQ3NHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUwIDQ1NS41MDh2NDAuNDkyYTYgNiAwIDAgMCAxMiAwdi00MC40OTJhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDMuNDIyIDQzMS40ODhhNiA2IDAgMCAwIC0uMDc1IDguNDg1bDI4LjM0NCAyOC44NTFhNiA2IDAgMCAwIDguNTYxLTguNDFsLTI4LjM0NC0yOC44NTFhNiA2IDAgMCAwIC04LjQ4Ni0uMDc1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuMDkyIDQzMS41NjMtMjguMzQ0IDI4Ljg1MWE2IDYgMCAwIDAgOC41NjEgOC40MWwyOC4zNDQtMjguODUxYTYgNiAwIDAgMCAtOC41NjEtOC40MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTg2Ljc1IDIzNi44MWExNjguNzMxIDE2OC43MzEgMCAwIDAgLTQ1LjkyNyA0OC4xNDMgNiA2IDAgMSAwIDEwLjE0MSA2LjQxNyAxNTYuNzgxIDE1Ni43ODEgMCAwIDEgNDIuNjc3LTQ0LjczNiA2IDYgMCAwIDAgLTYuODkxLTkuODI0eiIvPgogICAgPC9nPgo8L3N2Zz4=",Heater:xfe,Hoods:_fe,"Hot Water":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMCA1MTAiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTUgMjQxLjkwMmMtMTguMjIzIDAtMzMuMzU4LTUuOTM3LTQ1LjA5Mi0xNy42MnYtMTQ5LjM1NGMwLTQxLjMxNS0zMy42MTMtNzQuOTI4LTc0LjkyOS03NC45MjhzLTc0LjkyOCAzMy42MTMtNzQuOTI4IDc0LjkyOHYxNDkuMzk1Yy0yNC4yNTQgMjQuMTA3LTY5LjQ3NiAyNC40MTUtOTMuNjYzLTMuODAzLTUuOTgxLTYuOTc4LTE2Ljc5My02Ljk4Mi0yMi43NzcgMC0yNC41ODYgMjguNjg1LTcyLjUzOCAyOC43OTgtOTcuMjIzIDAtNi4zMjItNy4zNzgtMTcuODY3LTYuODY3LTIzLjUzNy45NjMtLjE0OC4yMDQtMTUuNjg4IDIwLjQxOC00Ny44NTIgMjAuNDE4LTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTVjMjguNjMyIDAgNDguNDg5LTExLjI4IDYwLjAyNy0yMC42MjQgMzMuNDQ3IDI3LjYxNSA4Ni41MTIgMjcuNjI1IDExOS45NzMtLjAyMiAzMC4xOTEgMjQuOTQ0IDc0LjM2MiAyNi4xNzkgMTA1LjA1MiA5Ljk1N3Y0MC40NzFjLTI3Ljk4NCAyMy4xMzEtNDMuODExIDU3Ljg3OC00Mi42NTggOTQuNDUzIDEuOTc0IDYyLjcyOCA1My43NDMgMTEzLjg2NCAxMTcuNTg2IDExMy44NjQgNjQuODcxIDAgMTE3LjY0Ny01Mi43NzYgMTE3LjY0Ny0xMTcuNjQ2IDAtMzUuMDctMTUuODM3LTY4LjQwNi00Mi43MTktOTAuNjY2di00MC40OTdjMTMuMzI1IDcuMDUyIDI4LjUxNyAxMC43MSA0NS4wOTIgMTAuNzEgOC4yODQgMCAxNS02LjcxNiAxNS0xNXMtNi43MTUtMTQuOTk5LTE0Ljk5OS0xNC45OTl6bS0xMjAuMDItMjExLjkwMmMyNC43NzMgMCA0NC45MjggMjAuMTU1IDQ0LjkyOCA0NC45Mjh2MTQ5LjUzN2MtOC4zMTQgOC4yMTEtMTguMzI3IDEzLjU1MS0yOS45MjkgMTUuOTUzdi0xNDMuOTU3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVzLTE1IDYuNzE2LTE1IDE1djE0My45NDdjLTExLjYwMy0yLjQwOS0yMS42MTUtNy43NTktMjkuOTI4LTE1Ljk4M3YtMTQ5LjQ5N2MuMDAxLTI0Ljc3MyAyMC4xNTYtNDQuOTI4IDQ0LjkyOS00NC45Mjh6bS0uMDAxIDM0My41MDRjMTAuNTMyIDAgMTkuMTAxIDguNTY4IDE5LjEwMSAxOS4xcy04LjU2OCAxOS4xLTE5LjEwMSAxOS4xYy0xMC41MzEgMC0xOS4xLTguNTY4LTE5LjEtMTkuMXM4LjU2OS0xOS4xIDE5LjEtMTkuMXptODcuNjQ4IDE4Ljg1YzAgNDguMzI5LTM5LjMxOCA4Ny42NDYtODcuNjQ3IDg3LjY0Ni00Ni44MzEgMC04Ni4xMjktMzguMDQ0LTg3LjYwMi04NC44MDgtLjkyLTI5LjIxOCAxMi43MDQtNTYuODc1IDM2LjQ0My03My45ODEgMy45MTItMi44MTkgNi4yMy03LjM0NyA2LjIzLTEyLjE2OXYtNDcuNzc0YzkuMTQ4IDQuODIgMTkuMTc3IDguMDMzIDI5LjkyOCA5LjU2OHY3NS4wMmMtMTkuNzU4IDYuMzU1LTM0LjEgMjQuOTA1LTM0LjEgNDYuNzQ4IDAgMjcuMDc0IDIyLjAyNiA0OS4xIDQ5LjEgNDkuMXM0OS4xMDEtMjIuMDI2IDQ5LjEwMS00OS4xYzAtMjEuODQzLTE0LjM0Mi00MC4zOTMtMzQuMTAxLTQ2Ljc0OHYtNzUuMDE0YzEwLjc1LTEuNTMxIDIwLjc4LTQuNzM4IDI5LjkyOS05LjU1MnY0Ny43NTNjMCA0LjgyMiAyLjMxOCA5LjM1MSA2LjIzIDEyLjE2OSAyMi44NDggMTYuNDYzIDM2LjQ4OSA0My4wNTkgMzYuNDg5IDcxLjE0MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc4LjE5IDMwOC4zMzJjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuODU3IDM3OS4xMTdjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjQuODYzIDE1NC4xNDNjLTUuODU4IDUuODU4LTUuODU4IDE1LjM1NSAwIDIxLjIxMyA1Ljg1NyA1Ljg1NyAxNS4zNTUgNS44NTggMjEuMjEzIDAgMjEuMDQ2LTIxLjA0NiAyMS4wNDYtNTUuMjkxIDAtNzYuMzM4LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ny01Ljg1OC0xNS4zNTUtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzQ5IDkuMzQ5IDkuMzQ5IDI0LjU2MSAwIDMzLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTQyLjI1MSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcxIDkuMzcxIDkuMzczIDI0LjUzOSAwIDMzLjkxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjE5LjYzOSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcgOS4zNzEgOS4zNzMgMjQuNTM5IDAgMzMuOTEyeiIvPgogICAgPC9nPgo8L3N2Zz4=",Humidity:Sfe,Iron:kfe,Irrigation:Yfe,"Led Strip":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTYgMThhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDI2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiA0MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgNTBhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDU4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiAzNGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTIgNjJoOGExIDEgMCAwIDAgMS0xdi00OWg2djQxYTEgMSAwIDAgMCAuMjkzLjcwN2w4IDhhMSAxIDAgMCAwIC43MDcuMjkzaDhhMSAxIDAgMCAwIC43MDctLjI5M2w4LThhMSAxIDAgMCAwIC4yOTMtLjcwN3YtNTBhMSAxIDAgMCAwIC0xLTFoLThhMSAxIDAgMCAwIC0xIDF2NDloLTZ2LTQ5YTEgMSAwIDAgMCAtMS0xaC0xNmExIDEgMCAwIDAgLS43MDcuMjkzbC04IDhhMSAxIDAgMCAwIC0uMjkzLjcwN3Y1MGExIDEgMCAwIDAgMSAxem0zMy0xM3YtNDVoNnY0OC41ODZsLTYgNnptLTggNWg2djZoLTZ6bS04LTV2LTQ1aDZ2NTQuNTg2bC02LTZ6bS04LTQ1aDZ2NmgtNnptLTggNTF2LTQzLjU4Nmw2LTZ2NTQuNTg2aC02eiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMyA2aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgNTZoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00IDMxaDV2MmgtNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNiAyNWgydjVoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNiAtLjggLjggLjYgLTE5LjIgMTYuNikiLz4KICAgICAgICA8cGF0aCBkPSJtNC41IDM1LjVoNXYyaC01eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjggLS42IC42IC44IC0yMC41MDUgMTEuNTA1KSIvPgogICAgICAgIDxwYXRoIGQ9Im01NSAzMWg1djJoLTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU0LjUgMjYuNWg1djJoLTV6IiB0cmFuc2Zvcm09Im1hdHJpeCguOCAtLjYgLjYgLjggLTUuMDk4IDM5LjcxMikiLz4KICAgICAgICA8cGF0aCBkPSJtNTYgMzRoMnY1aC0yeiIgdHJhbnNmb3JtPSJtYXRyaXgoLjYgLS44IC44IC42IC02LjQgNjAuMikiLz4KICAgIDwvZz4KPC9zdmc+",Light:vfe,Lightings:bfe,Lock:Qfe,Louvre:Ufe,"Mowing Machine":"PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NyA1NGM1LjUxNCAwIDEwLTQuNDg2IDEwLTEwcy00LjQ4Ni0xMC0xMC0xMC0xMCA0LjQ4Ni0xMCAxMCA0LjQ4NiAxMCAxMCAxMHptLTcuOTMxLTExYy4xODMtMS40NTguNzU5LTIuNzkyIDEuNjE5LTMuODk4bDEuMzYyIDEuMzYzIDEuNDE0LTEuNDE0LTEuMzYyLTEuMzYyYzEuMTA2LS44NiAyLjQ0LTEuNDM2IDMuODk4LTEuNjE5djEuOTNoMnYtMS45MzFjMS40NTguMTgzIDIuNzkyLjc1OSAzLjg5OCAxLjYxOWwtMS4zNjIgMS4zNjIgMS40MTQgMS40MTQgMS4zNjItMS4zNjNjLjg2IDEuMTA2IDEuNDM2IDIuNDQgMS42MTkgMy44OThoLTEuOTMxdjJoMS45MzFjLS4xODMgMS40NTgtLjc1OSAyLjc5Mi0xLjYxOSAzLjg5OGwtMS4zNjItMS4zNjMtMS40MTQgMS40MTQgMS4zNjIgMS4zNjJjLTEuMTA2Ljg2LTIuNDQgMS40MzYtMy44OTggMS42MTl2LTEuOTI5aC0ydjEuOTMxYy0xLjQ1OC0uMTgzLTIuNzkyLS43NTktMy44OTgtMS42MTlsMS4zNjItMS4zNjItMS40MTQtMS40MTQtMS4zNjIgMS4zNjNjLS44Ni0xLjEwNi0xLjQzNi0yLjQ0LTEuNjE5LTMuODk4aDEuOTMxdi0yaC0xLjkzMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMjFoLTI0Ljk4Yy0xLjUxMSAwLTIuOTg0LjQyNi00LjI2MiAxLjIyOWwtMjIuMDIxIDEzLjg2NmMtMi4zNCAxLjQ3My0zLjczNyA0LjAwNS0zLjczNyA2Ljc2OXY2LjEzNmMwIC41NTMuNDQ4IDEgMSAxaDMzLjA4OGMuMzQxIDAgLjY1OC0uMTc0Ljg0Mi0uNDYuMTg0LS4yODcuMjA5LS42NDcuMDY3LS45NTctLjc1LTEuNjM1LTEuMDgtMy4zODctLjk3OS01LjIwOC4zMDktNS41OTEgNC45MzYtMTAuMTQ1IDEwLjUzNS0xMC4zNjYgMy4wMjgtLjExNiA1Ljg5Mi45NjcgOC4wNjkgMy4wNiAyLjE3OCAyLjA5MyAzLjM3OCA0LjkxIDMuMzc4IDcuOTMxIDAgLjU1My40NDggMSAxIDFoM2MuNTUyIDAgMS0uNDQ3IDEtMXYtMTdjMC0zLjMwOS0yLjY5MS02LTYtNnptLTI4LjE3NyAyLjkyM2MuOTU5LS42MDQgMi4wNjQtLjkyMyAzLjE5Ny0uOTIzaDEwLjM3bC04LjM5MSA1LjAzNXYtLjAzNWgtMTEuNjUxem0tMjIuMDIgMTMuODY0IDEyLjM2OC03Ljc4N2gxMS41NTJsLTE4LjIzMyAxMC45NGMtMS4xNTcuNjk0LTIuNDggMS4wNi0zLjgyNyAxLjA2aC00LjU5NmMuMjQ4LTEuNzI4IDEuMjI5LTMuMjYzIDIuNzM2LTQuMjEzem01NC4xOTcgNS4yMTNoLTEuMDM4Yy0uMjM5LTMuMTg4LTEuNjIzLTYuMTMyLTMuOTU1LTguMzc0LTIuNTczLTIuNDczLTUuOTYzLTMuNzUtOS41MzQtMy42MTUtNi4xOS4yNDUtMTEuMzc0IDQuOTctMTIuMzE3IDEwLjk4OWgtMTcuMTU2djJoMTcuMDEzYy4wMDIgMS4zNjEuMjAyIDIuNzE1LjYxNSA0aC0zMC42Mjh2LTRoNC42NjNjMS43MDkgMCAzLjM4OS0uNDY1IDQuODU2LTEuMzQ1bDMyLjc1OC0xOS42NTVoMTAuNzIzYzIuMjA2IDAgNCAxLjc5NCA0IDR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDQ4YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNi42NTEgMTUuNjM1Yy0xLjc1NyAyLjEyNS0xLjQ1OCA1LjI4Mi42NjcgNy4wNGw0LjYyNCAzLjgyM2MuMTg3LjE1NC40MTIuMjI5LjYzNy4yMjkuMjg4IDAgLjU3My0uMTI0Ljc3MS0uMzYyIDEuNzU3LTIuMTI1IDEuNDU4LTUuMjgyLS42NjctNy4wNGwtNC42MjQtMy44MjNjLS40MjYtLjM1Mi0xLjA1Ni0uMjkyLTEuNDA4LjEzM3ptNS42NjIgOC41NzYtMy43MjEtMy4wNzdjLTEuMDA0LS44MzEtMS4zMjktMi4xODUtLjkwNS0zLjM0NWwzLjcyMSAzLjA3N2MxLjAwNS44MzEgMS4zMjkgMi4xODUuOTA1IDMuMzQ1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMS40NDUgOS4yMjktNC42MjQgMy44MjNjLTIuMTI1IDEuNzU4LTIuNDI0IDQuOTE2LS42NjcgNy4wNC4xOTguMjM5LjQ4My4zNjIuNzcxLjM2Mi4yMjUgMCAuNDUtLjA3NS42MzctLjIyOWw0LjYyNC0zLjgyM2MyLjEyNS0xLjc1NyAyLjQyNC00LjkxNS42NjctNy4wNC0uMzUyLS40MjQtLjk4My0uNDg0LTEuNDA4LS4xMzN6bS0uNTMzIDUuNjMyLTMuNzIyIDMuMDc4Yy0uMTUyLS40MTUtLjIxMS0uODYzLS4xNjgtMS4zMTYuMDc2LS43OTguNDU4LTEuNTE5IDEuMDc1LTIuMDI5bDMuNzIxLTMuMDc3Yy40MjMgMS4xNi4wOTkgMi41MTMtLjkwNiAzLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+",Music:$fe,"Outdoor Blinds":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NTcgMGgtNDAyYy0zMC4zMjcgMC01NSAyNC42NzMtNTUgNTV2NDU3aDQzMnYtNDA4LjAzNWM3LjUwNyAzLjg0OCAxNiA2LjAzNSAyNSA2LjAzNSAzMC4zMjcgMCA1NS0yNC42NzMgNTUtNTVzLTI0LjY3My01NS01NS01NXptLTQwMiAzMGgzNTMuMDM1Yy0zLjg0OCA3LjUwNy02LjAzNSAxNi02LjAzNSAyNXY3aC0zNzJ2LTdjMC0xMy43ODUgMTEuMjE1LTI1IDI1LTI1em0tMjUgMjcydi0zMGgzNzJ2MzB6bTM3MiAzMHYzMGgtMzcydi0zMHptLTM3Mi05MHYtMzBoMzcydjMwem0wLTYwdi0zMGgzNzJ2MzB6bTAtNjB2LTMwaDM3MnYzMHptMCAzNjB2LTkwaDM3MnY5MHptNDI3LTQwMmMtMTMuNzg1IDAtMjUtMTEuMjE1LTI1LTI1czExLjIxNS0yNSAyNS0yNSAyNSAxMS4yMTUgMjUgMjUtMTEuMjE1IDI1LTI1IDI1eiIvPgogICAgICAgIDxwYXRoIGQ9Im02MCA0MjJoMzB2MzBoLTMweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDIgNDIyaDMwdjMwaC0zMHoiLz4KICAgIDwvZz4KPC9zdmc+",People:Pfe,Pool:Wfe,"Power Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTIgM2MtLjI3NiAwLS41LS4yMjQtLjUtLjV2LTJjMC0uMjc2LjIyNC0uNS41LS41cy41LjIyNC41LjV2MmMwIC4yNzYtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4LjcxOCA1Ljc4MmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDYtLjE5NS0uMTk1LS4xOTUtLjUxMiAwLS43MDdsMS40MTQtMS40MTRjLjE5NS0uMTk1LjUxMi0uMTk1LjcwNyAwcy4xOTUuNTEyIDAgLjcwN2wtMS40MTQgMS40MTRjLS4wOTcuMDk3LS4yMjUuMTQ2LS4zNTMuMTQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMy41IDEyLjVoLTJjLS4yNzYgMC0uNS0uMjI0LS41LS41cy4yMjQtLjUuNS0uNWgyYy4yNzYgMCAuNS4yMjQuNS41cy0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjAuMTMyIDIwLjYzMmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDZsLTEuNDE0LTEuNDE0Yy0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN3MuNTEyLS4xOTUuNzA3IDBsMS40MTQgMS40MTRjLjE5NS4xOTUuMTk1LjUxMiAwIC43MDctLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDI0Yy0uMjc2IDAtLjUtLjIyNC0uNS0uNXYtMmMwLS4yNzYuMjI0LS41LjUtLjVzLjUuMjI0LjUuNXYyYzAgLjI3Ni0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMy44NjggMjAuNjMyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0Ni0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN2wxLjQxNC0xLjQxNGMuMTk1LS4xOTUuNTEyLS4xOTUuNzA3IDBzLjE5NS41MTIgMCAuNzA3bC0xLjQxNCAxLjQxNGMtLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIuNSAxMi41aC0yYy0uMjc2IDAtLjUtLjIyNC0uNS0uNXMuMjI0LS41LjUtLjVoMmMuMjc2IDAgLjUuMjI0LjUuNXMtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUuMjgyIDUuNzgyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0NmwtMS40MTMtMS40MTRjLS4xOTUtLjE5NS0uMTk1LS41MTIgMC0uNzA3cy41MTItLjE5NS43MDcgMGwxLjQxNCAxLjQxNGMuMTk1LjE5NS4xOTUuNTEyIDAgLjcwNy0uMDk4LjA5Ny0uMjI2LjE0Ni0uMzU0LjE0NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAuNTczIDIwYy0uMDU5IDAtLjExNy0uMDEtLjE3NS0uMDMxLS4yMTktLjA4Mi0uMzUyLS4zMDQtLjMyMS0uNTM0bC44NTMtNi40MzVoLTMuNDNjLS4xODkgMC0uMzYyLS4xMDctLjQ0Ny0uMjc2cy0uMDY3LS4zNzIuMDQ3LS41MjRsNi04Yy4xMzktLjE4Ni4zODYtLjI1Mi41OTctLjE2LjIxMi4wOTEuMzM1LjMxNC4yOTcuNTQybC0uOTA0IDUuNDE4aDMuNDFjLjE4NCAwIC4zNTMuMTAxLjQ0LjI2M3MuMDc4LjM1OC0uMDIyLjUxM2wtNS45MjcgOWMtLjA5NS4xNDMtLjI1NC4yMjQtLjQxOC4yMjR6bS0yLjA3My04aDNjLjE0NSAwIC4yODEuMDYzLjM3Ni4xNzEuMDk1LjEwNy4xMzkuMjUyLjEyLjM5NWwtLjY0MSA0LjgzOCA0LjIxNy02LjQwNGgtMy4wNzJjLS4xNDcgMC0uMjg2LS4wNjQtLjM4Mi0uMTc3LS4wOTUtLjExMi0uMTM2LS4yNjEtLjExMS0uNDA1bC42NjMtMy45Nzh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Printer:Bfe,Pump:Jfe,Receiver:Rfe,Sconces:Ffe,Security:Gfe,Shading:Hfe,Shutters:Vfe,SmokeDetector:Zfe,Sockets:Xfe,Speaker:Kfe,Stove:qfe,"Table Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05Ny41IDIyMC4zNjEtMTUuOTE0IDE1LjkxNGE2IDYgMCAxIDAgOC40ODQgOC40ODZsMTUuOTE1LTE1LjkxNWE2IDYgMCAxIDAgLTguNDg0LTguNDg1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS41MSAxMTdhNiA2IDAgMCAwIDQuMjQzLTEwLjI0MmwtMTUuOTE0LTE1LjkxNWE2IDYgMCAwIDAgLTguNDg2IDguNDg2bDE1LjkxNCAxNS45MTRhNS45NzggNS45NzggMCAwIDAgNC4yNDMgMS43NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzNS41IDI0Mi41MDgtMTUuOTEtMTUuOTE0YTYgNiAwIDAgMCAtOC40ODYgOC40ODVsMTUuOTE0IDE1LjkxNWE2IDYgMCAwIDAgOC40ODYtOC40ODZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTg2LjgyNiAxNzFhNiA2IDAgMCAwIC02LTZoLTI0LjgzN2E2IDYgMCAwIDAgMCAxMmgyNC44MzdhNiA2IDAgMCAwIDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTU1IDIzOS41MjFhNiA2IDAgMCAwIC02IDZ2MjQuODM2YTYgNiAwIDAgMCAxMiAwdi0yNC44MzZhNiA2IDAgMCAwIC02LTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzOC44NTIgNDUxLjk2OWE0MS44MzcgNDEuODM3IDAgMCAwIC00MS4xNjYtMzUuOTY5aC0yOC42ODZ2LTMyNi42ODRhNjkuMzA5IDY5LjMwOSAwIDAgMCAtMTIxLjctNDUuMzgyIDU2LjAyMiA1Ni4wMjIgMCAwIDAgLTQ4LjcwOSA2LjM0OWwtODEuNTE5IDU0LjA2OGE2IDYgMCAwIDAgLS45MjUgOS4yNDJsMjMuNDIyIDIzLjQyMy0xLjQ0MiAxLjQ0MmEzNS4xODggMzUuMTg4IDAgMCAwIDQ5Ljc2MyA0OS43NjNsMS40NDItMS40NDIgMjMuNDIyIDIzLjQyMWE2IDYgMCAwIDAgNC4yNDYgMS43NTljLjIgMCAuNC0uMDEuNi0uMDNhNiA2IDAgMCAwIDQuNC0yLjY1NGw1NC4wNjctODEuNTE5YTU2LjA4OCA1Ni4wODggMCAwIDAgMy40ODgtNTUuNjU2IDI2LjM4NiAyNi4zODYgMCAwIDEgNDYuNDQ1IDE3LjIxNnYzMjYuNjg0aC0yOS4xODJhNDIgNDIgMCAwIDAgLTQxLjM0MyAzNi4wNzYgMjYuNCAyNi40IDAgMCAwIC0yMi40NzUgMjUuOTU2djcuOTY4YTYuMjgyIDYuMjgyIDAgMCAwIDYuMzE5IDZoMjE2LjY5MmE1Ljk5MiA1Ljk5MiAwIDAgMCA1Ljk4OS02di03Ljk2OGEyNi4yNDcgMjYuMjQ3IDAgMCAwIC0yMy4xNDgtMjYuMDYzem0tMjU5LjQ1Mi0yNzIuMjM0YTIzLjE4OCAyMy4xODggMCAwIDEgLTMyLjc5My0zMi43OTJsMS40NDMtMS40NDMgMzIuNzkzIDMyLjc5M3ptMzYuNjQ4IDE2Ljc5NC04Ni4yMy04Ni4yMjkgMTguMDkzLTEyIDgwLjE0IDgwLjE0em01MC4wMTItNzUuNC0zMS4yNDYgNDcuMTEtNzYuNy03Ni43MDUgNDcuMTEtMzEuMjQ2YTQzLjg5NCA0My44OTQgMCAwIDEgNjAuODQgNjAuODQxem0zMy41MjgtNzAuMjcyYTM4LjI1MiAzOC4yNTIgMCAwIDAgLTI2LjY4OCAxMC44MjMgNTQuNjIgNTQuNjIgMCAwIDAgLTE0LjE4Ni0xMi40MzUgNTcuMzEgNTcuMzEgMCAwIDEgOTguMjg2IDQwLjA3MXYzMjYuNjg0aC0xOXYtMzI2LjY4NGEzOC40NjEgMzguNDYxIDAgMCAwIC0zOC40MDktMzguNDY0em0tMi43NyAzNzcuMTQzaDEwMC44NjhjMTQuMjU5IDAgMjYuMTk1IDExIDI4Ljk3NiAyNGgtMTU4LjgxOWMyLjc4MS0xMyAxNC43MTYtMjQgMjguOTc1LTI0em0xNTMuMTgyIDUyaC0yMDV2LTEuOTY4YTE0LjMyIDE0LjMyIDAgMCAxIDE0LjMxOS0xNC4wMzJoMTc2LjY5MmExNC4wMzQgMTQuMDM0IDAgMCAxIDEzLjk4OSAxNC4wMzJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwNSAzODEuMDMxYTYgNiAwIDAgMCAxMiAwdi03NS44MDZhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTEgMjkwLjg0NGE2IDYgMCAwIDAgNi02di00LjgzNGE2IDYgMCAwIDAgLTEyIDB2NC44MzRhNiA2IDAgMCAwIDYgNnoiLz4KICAgIDwvZz4KPC9zdmc+","Temperature Sensors":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTM1MiwzODUuNDA2VjUzLjMzM0MzNTIsMjMuOTI3LDMyOC4wNzMsMCwyOTguNjY3LDBzLTUzLjMzMywyMy45MjctNTMuMzMzLDUzLjMzM3YzMzIuMDczCgkJCQlDMjMxLjcxOSwzOTkuMzY1LDIyNCw0MTguMDMxLDIyNCw0MzcuMzMzQzIyNCw0NzguNSwyNTcuNSw1MTIsMjk4LjY2Nyw1MTJjNDEuMTY3LDAsNzQuNjY3LTMzLjUsNzQuNjY3LTc0LjY2NwoJCQkJQzM3My4zMzMsNDE4LjAzMSwzNjUuNjE1LDM5OS4zNjUsMzUyLDM4NS40MDZ6IE0yOTguNjY3LDQ5MC42NjdjLTI5LjQwNiwwLTUzLjMzMy0yMy45MjctNTMuMzMzLTUzLjMzMwoJCQkJYzAtMTUuMTA0LDYuMzIzLTI5LjEyNSwxNy44MTMtMzkuNDY5YzIuMjQtMi4wMzEsMy41MjEtNC45MDYsMy41MjEtNy45MjdWNTMuMzMzYzAtMTcuNjQ2LDE0LjM1NC0zMiwzMi0zMgoJCQkJYzE3LjY0NiwwLDMyLDE0LjM1NCwzMiwzMnYzMzYuNjA0YzAsMy4wMjEsMS4yODEsNS44OTYsMy41MjEsNy45MjdDMzQ1LjY3Nyw0MDguMjA4LDM1Miw0MjIuMjI5LDM1Miw0MzcuMzMzCgkJCQlDMzUyLDQ2Ni43NCwzMjguMDczLDQ5MC42NjcsMjk4LjY2Nyw0OTAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDkuMzMzLDQwNy4yOThWMjI0YzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42Njd2MTgzLjI5OAoJCQkJYy0xMi4zODksNC40MTgtMjEuMzMzLDE2LjE0Ny0yMS4zMzMsMzAuMDM1YzAsMTcuNjQ2LDE0LjM1NCwzMiwzMiwzMmMxNy42NDYsMCwzMi0xNC4zNTQsMzItMzIKCQkJCUMzMzAuNjY3LDQyMy40NDUsMzIxLjcyMyw0MTEuNzE2LDMwOS4zMzMsNDA3LjI5OHogTTI5OC42NjcsNDQ4Yy01Ljg4NSwwLTEwLjY2Ny00Ljc4MS0xMC42NjctMTAuNjY3CgkJCQljMC01Ljg4NSw0Ljc4MS0xMC42NjcsMTAuNjY3LTEwLjY2N2M1Ljg4NSwwLDEwLjY2Nyw0Ljc4MSwxMC42NjcsMTAuNjY3QzMwOS4zMzMsNDQzLjIxOSwzMDQuNTUyLDQ0OCwyOTguNjY3LDQ0OHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjEzLjMzMywzNDEuMzMzaC02NGMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDY0CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzQ2LjEwNCwyMTkuMjI5LDM0MS4zMzMsMjEzLjMzMywzNDEuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI5OC42NjdIMTkyYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3YzAsNS44OTYsNC43NzEsMTAuNjY3LDEwLjY2NywxMC42NjdoMjEuMzMzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzAzLjQzOCwyMTkuMjI5LDI5OC42NjcsMjEzLjMzMywyOTguNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI1NkgxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwyNjAuNzcxLDIxOS4yMjksMjU2LDIxMy4zMzMsMjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDkuMzMzLDIzNC42NjdoNjRjNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N3MtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdoLTY0CgkJCQljLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdTMTQzLjQzOCwyMzQuNjY3LDE0OS4zMzMsMjM0LjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTQ5LjMzMywxMDYuNjY3aDY0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3aC02NAoJCQkJYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzE0My40MzgsMTA2LjY2NywxNDkuMzMzLDEwNi42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTcwLjY2N0gxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwxNzUuNDM4LDIxOS4yMjksMTcwLjY2NywyMTMuMzMzLDE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTI4SDE5MmMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDIxLjMzMwoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdDMjI0LDEzMi43NzEsMjE5LjIyOSwxMjgsMjEzLjMzMywxMjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Tv:exe,"Vacuum Cleaner":"PHN2ZyB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ0MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOC0uMDI3MzQ0LTIyLjA4MjAzMS0xNy45MTc5NjktMzkuOTcyNjU2LTQwLTQwLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzMy41ODIwMzEtOCA4LThjMzAuOTE0MDYyLjAzNTE1NiA1NS45NjQ4NDQgMjUuMDg1OTM4IDU2IDU2IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzLTMuNTgyMDMxLTgtOC04LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04YzEzLjI1MzkwNiAwIDI0IDEwLjc0NjA5NCAyNCAyNCAwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04LS4wNDY4NzUtMzkuNzQ2MDk0LTMyLjI1MzkwNi03MS45NTMxMjUtNzItNzItNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOHMzLjU4MjAzMS04IDgtOGM0OC41NzgxMjUuMDU4NTkzOCA4Ny45NDE0MDYgMzkuNDIxODc1IDg4IDg4IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOCAuMDM1MTU2LTMwLjkxNDA2MiAyNS4wODU5MzgtNTUuOTY0ODQ0IDU2LTU2IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0yMi4wODIwMzEuMDI3MzQ0LTM5Ljk3MjY1NiAxNy45MTc5NjktNDAgNDAgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04IDAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNCA0LjQxNzk2OSAwIDggMy41ODIwMzEgOCA4cy0zLjU4MjAzMSA4LTggOC04IDMuNTgyMDMxLTggOC0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LTggLjA1ODU5MzgtNDguNTc4MTI1IDM5LjQyMTg3NS04Ny45NDE0MDYyIDg4LTg4IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0zOS43NDYwOTQuMDQ2ODc1LTcxLjk1MzEyNSAzMi4yNTM5MDYtNzIgNzIgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0MTZjMjYuNTA3ODEyIDAgNDgtMjEuNDkyMTg4IDQ4LTQ4cy0yMS40OTIxODgtNDgtNDgtNDgtNDggMjEuNDkyMTg4LTQ4IDQ4Yy4wMjczNDQgMjYuNSAyMS41IDQ3Ljk3MjY1NiA0OCA0OHptMC04MGMxNy42NzE4NzUgMCAzMiAxNC4zMjgxMjUgMzIgMzJzLTE0LjMyODEyNSAzMi0zMiAzMi0zMi0xNC4zMjgxMjUtMzItMzIgMTQuMzI4MTI1LTMyIDMyLTMyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQwIDE4NGMxMy4yNTM5MDYgMCAyNC0xMC43NDYwOTQgMjQtMjRzLTEwLjc0NjA5NC0yNC0yNC0yNC0yNCAxMC43NDYwOTQtMjQgMjQgMTAuNzQ2MDk0IDI0IDI0IDI0em0wLTMyYzQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzE3Ljk0NTMxMiAxNTJ2LjA0Njg3NWguMDU0Njg4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE1Mmg0OHYxNmgtNDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODAgMTUyaDQ4djE2aC00OHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0OGMtMTAxLjI2NTYyNS0uMDExNzE5LTE4OC45NDUzMTIgNzAuMzMyMDMxLTIxMC44OTA2MjUgMTY5LjE4NzUtMjEuOTQ1MzEzIDk4Ljg1OTM3NSAyNy43MzQzNzUgMTk5LjY5MTQwNiAxMTkuNDkyMTg3IDI0Mi41MzEyNSA1Ny45MjU3ODIgMjcuMDM1MTU2IDEyNC44NTE1NjMgMjcuMDM1MTU2IDE4Mi43ODEyNSAwIDkxLjc1NzgxMy00Mi44MzU5MzggMTQxLjQzMzU5NC0xNDMuNjY0MDYyIDExOS40OTIxODgtMjQyLjUyMzQzOC0yMS45NDE0MDYtOTguODU1NDY4LTEwOS42MTMyODEtMTY5LjE5OTIxOC0yMTAuODc1LTE2OS4xOTUzMTJ6bTAgMTZjMTA3LjI4NTE1Ni4xMzI4MTIgMTk1LjM5ODQzOCA4NC44MDQ2ODggMTk5LjgwMDc4MSAxOTJoLTE2Yy00LjU4MjAzMS05OC4xNzk2ODgtODUuNTE1NjI1LTE3NS40MjE4NzUtMTgzLjgwMDc4MS0xNzUuNDIxODc1cy0xNzkuMjE4NzUgNzcuMjQyMTg3LTE4My44MDA3ODEgMTc1LjQyMTg3NWgtMTZjNC40MDIzNDMtMTA3LjE5NTMxMiA5Mi41MTU2MjUtMTkxLjg2NzE4OCAxOTkuODAwNzgxLTE5MnptMjkuMTEzMjgxIDI0NS40OTYwOTRjMzAuNjgzNTk0IDExLjk4ODI4MSA1MC44ODI4MTMgNDEuNTU4NTk0IDUwLjg4NjcxOSA3NC41MDM5MDZ2MjcuNjQwNjI1Yy00OS44Nzg5MDYgMjcuMTQ0NTMxLTExMC4xMjEwOTQgMjcuMTQ0NTMxLTE2MCAwdi0yNy42NDA2MjVjLjAwMzkwNi0yNi40Mjk2ODggMTMuMDYyNS01MS4xNTIzNDQgMzQuODg2NzE5LTY2LjA1NDY4OCAyMS44MjgxMjUtMTQuOTA2MjUgNDkuNjA5Mzc1LTE4LjA2NjQwNiA3NC4yMjY1NjItOC40NDkyMTh6bTY2Ljg4NjcxOSA3NC41MDM5MDZjMC01My4wMTk1MzEtNDIuOTgwNDY5LTk2LTk2LTk2cy05NiA0Mi45ODA0NjktOTYgOTZ2MTcuNzM0Mzc1Yy0zOC44NjMyODEtMjYuOTgwNDY5LTY0LjUwNzgxMi02OS4xMzI4MTMtNzAuNjAxNTYyLTExNi4wNDY4NzUtNi4wOTc2NTctNDYuOTE3OTY5IDcuOTI1NzgxLTk0LjIyMjY1NiAzOC42MDE1NjItMTMwLjIzODI4MXYzNi41NTA3ODFjLjAyNzM0NCAyMi4wODIwMzEgMTcuOTE3OTY5IDM5Ljk3MjY1NiA0MCA0MGgxNzZjMjIuMDgyMDMxLS4wMjczNDQgMzkuOTcyNjU2LTE3LjkxNzk2OSA0MC00MHYtMzYuNTUwNzgxYzMwLjY3NTc4MSAzNi4wMTU2MjUgNDQuNjk5MjE5IDgzLjMyMDMxMiAzOC42MDE1NjIgMTMwLjIzODI4MS02LjA5Mzc1IDQ2LjkxNDA2Mi0zMS43MzgyODEgODkuMDY2NDA2LTcwLjYwMTU2MiAxMTYuMDQ2ODc1em0tMjA4LTI0NC44NjMyODFjNjMuNTg5ODQ0LTU3LjUxNTYyNSAxNjAuNDEwMTU2LTU3LjUxNTYyNSAyMjQgMHY1Mi44NjMyODFjMCAxMy4yNTM5MDYtMTAuNzQ2MDk0IDI0LTI0IDI0aC0xNzZjLTEzLjI1MzkwNiAwLTI0LTEwLjc0NjA5NC0yNC0yNHptLTg3LjcxMDkzOCAxMzIuODYzMjgxaDE2YzIuODM1OTM4IDYxLjAzOTA2MiAzNS42NzE4NzYgMTE2LjcyMjY1NiA4Ny43MTA5MzggMTQ4Ljc1MzkwNnYxOC42NDQ1MzJjLTYxLjQzNzUtMzMuODUxNTYzLTEwMC43NTM5MDYtOTcuMzEyNS0xMDMuNzEwOTM4LTE2Ny4zOTg0Mzh6bTExOS43MTA5MzggMTc1LjI0NjA5NHYtMTcuNjQ0NTMyYzUwLjUwMzkwNiAyNC41NjI1IDEwOS40OTYwOTQgMjQuNTYyNSAxNjAgMHYxNy42NzE4NzZjLTUwLjk5NjA5NCAyMi4zMzU5MzctMTA5LjAwMzkwNiAyMi4zMzU5MzctMTYwIDB6bTE3Ni03Ljg0NzY1NnYtMTguNjQ0NTMyYzUyLjA0Mjk2OS0zMi4wMjczNDQgODQuODg2NzE5LTg3LjcxMDkzNyA4Ny43MjY1NjItMTQ4Ljc1MzkwNmgxNmMtMi45NjA5MzcgNzAuMDg5ODQ0LTQyLjI4NTE1NiAxMzMuNTUwNzgxLTEwMy43MjY1NjIgMTY3LjM5ODQzOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ventilation:txe,"Washing Machines":"PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIDAgNDk2IDQ5NiIgd2lkdGg9IjQ5NnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDg4IDBoLTQwMGMtNC40MjU3ODEgMC04IDMuNTg1OTM4LTggOHYyOTYuODMyMDMxYy0yLjYwMTU2Mi0uNTI3MzQzLTUuMjczNDM4LS44MzIwMzEtOC0uODMyMDMxLTIyLjA1NDY4OCAwLTQwIDE3Ljk0NTMxMi00MCA0MHYuMTY3OTY5Yy03LjgyNDIxOSA1Ljg4NjcxOS0xMy4xNTIzNDQgMTQuMzk4NDM3LTE1LjEyMTA5NCAyMy44MzIwMzFoLTguODc4OTA2Yy00LjQyNTc4MSAwLTggMy41ODU5MzgtOCA4djMyYzAgNC40MTQwNjIgMy41NzQyMTkgOCA4IDhoOHYyNGMwIDMwLjg3ODkwNiAyNS4xMjg5MDYgNTYgNTYgNTZoNDE2YzQuNDI1NzgxIDAgOC0zLjU4NTkzOCA4LTh2LTQ4MGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04em0tOCAxNnY4MGgtMzg0di04MHptLTQzNS42NTYyNSAzMzkuMTc1NzgxYzIuODM5ODQ0LTEuNjAxNTYyIDQuNDMzNTk0LTQuNzYxNzE5IDQuMDE1NjI1LThsLS4xMjg5MDYtLjkyOTY4N2MtLjEwMTU2My0uNzM0Mzc1LS4yMzA0NjktMS40Njg3NS0uMjMwNDY5LTIuMjQ2MDk0IDAtMTMuMjMwNDY5IDEwLjc2OTUzMS0yNCAyNC0yNCA4LjQ0OTIxOSAwIDE2LjEyMTA5NCA0LjQwNjI1IDIwLjUyNzM0NCAxMS44MDA3ODEgMS4xOTkyMTggMi4wMTU2MjUgMy4yMzQzNzUgMy40MDYyNSA1LjU1MDc4MSAzLjc5Mjk2OSAyLjMyODEyNS4zOTg0MzggNC42OTkyMTktLjI2NTYyNSA2LjQ5NjA5NC0xLjc5Mjk2OSAzLjEyMTA5My0yLjY0ODQzNyA4LjMyMDMxMi01LjgwMDc4MSAxNS40MjU3ODEtNS44MDA3ODEgOC41NTg1OTQgMCAxNi41MzUxNTYgNC43MjY1NjIgMjAuODE2NDA2IDEyLjMzNTkzOCAxLjY2NDA2MyAyLjk3NjU2MiA1LjA1NDY4OCA0LjU1ODU5MyA4LjM4MjgxMyAzLjk2MDkzNyA4LjM1MTU2Mi0xLjQ4ODI4MSAxNi45MDYyNSA0LjI0NjA5NCAxOC40OTYwOTMgMTIuNzQyMTg3LjU3MDMxMyAzLjAzOTA2MyAyLjgzOTg0NCA1LjQ4ODI4MiA1LjgzOTg0NCA2LjI3MzQzOCAzLjAxNTYyNS44MDA3ODEgNi4xNjc5NjktLjIzNDM3NSA4LjE2Nzk2OS0yLjYwOTM3NSA0LjYxNzE4Ny01LjUyNzM0NCAxMS4yODkwNjMtOC43MDMxMjUgMTguMjk2ODc1LTguNzAzMTI1IDEwLjQxNDA2MiAwIDE5LjIxNDg0NCA2LjcxMDkzOCAyMi41MjczNDQgMTZoLTE4OC45MjU3ODJjMS45NDE0MDctNS4yOTY4NzUgNS42MDU0NjktOS45Mzc1IDEwLjc0MjE4OC0xMi44MjQyMTl6bTEwNy42NTYyNS03NS4xNzU3ODFjMC03NC45OTIxODggNjEuMDA3ODEyLTEzNiAxMzYtMTM2czEzNiA2MS4wMDc4MTIgMTM2IDEzNi02MS4wMDc4MTIgMTM2LTEzNiAxMzZjLTExLjI4OTA2MiAwLTIyLjMyODEyNS0xLjUxOTUzMS0zMy4wNzgxMjUtNC4yMTQ4NDQuNjI4OTA2LTEuMTQ0NTMxIDEuMDc4MTI1LTIuMzk0NTMxIDEuMDc4MTI1LTMuNzg1MTU2di0xMi4zMzU5MzhjMTAuMzY3MTg4IDIuODYzMjgyIDIxLjA3ODEyNSA0LjMzNTkzOCAzMiA0LjMzNTkzOCA2Ni4xNjc5NjkgMCAxMjAtNTMuODMyMDMxIDEyMC0xMjBzLTUzLjgzMjAzMS0xMjAtMTIwLTEyMC0xMjAgNTMuODMyMDMxLTEyMCAxMjBjMCAyMS4wODk4NDQgNS40ODA0NjkgNDEuNDMzNTk0IDE1LjgyNDIxOSA1OS41MDM5MDYtMS43OTI5NjkuODA4NTk0LTMuNTM1MTU3IDEuNzI2NTYzLTUuMTkxNDA3IDIuODAwNzgyLTQuMDU4NTkzLTYuMTEzMjgyLTEwLjE1MjM0My0xMC42MzI4MTMtMTcuMjA3MDMxLTEyLjgyNDIxOS02LjE2Nzk2OS0xNS43NjE3MTktOS40MjU3ODEtMzIuMzU5Mzc1LTkuNDI1NzgxLTQ5LjQ4MDQ2OXptNDguNDY0ODQ0IDU2LjA0Njg3NWMtNi4zNjcxODgtOS45MTAxNTYtMTEtMjAuNzAzMTI1LTEzLjY3OTY4OC0zMi4wNDY4NzVoNS4yMTQ4NDRjNy4yODkwNjIgMCAxNC4xNTIzNDQtMi44Mzk4NDQgMTkuMzEyNS04bDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGM1LjE2Nzk2OSA1LjE2MDE1NiAxMi4wMjM0MzggOCAxOS4zMTI1IDhoNS4wOTc2NTZjLTEwLjg4MjgxMiA0NS43OTI5NjktNTIuMDI3MzQ0IDgwLTEwMS4wOTc2NTYgODAtMTAuOTc2NTYyIDAtMjEuNjk1MzEyLTEuNzkyOTY5LTMyLTUuMTI4OTA2di0yLjg3MTA5NGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04aC04LjgwODU5NGMtMy42ODc1LTE4LjA4OTg0NC0xOS42MjUtMzEuNzI2NTYyLTM4LjcyNjU2Mi0zMS45NTMxMjV6bS0xNi40NjQ4NDQtNTYuMDQ2ODc1YzAtNTcuMzQzNzUgNDYuNjU2MjUtMTA0IDEwNC0xMDRzMTA0IDQ2LjY1NjI1IDEwNCAxMDRjMCAyLjcwMzEyNS0uMTk5MjE5IDUuMzUxNTYyLS40MDYyNSA4aC03LjU5Mzc1Yy0zLjAyMzQzOCAwLTUuODU1NDY5LTEuMTc1NzgxLTgtMy4zMTI1bC00LjY4NzUtNC42ODc1Yy0xMC4zMjgxMjUtMTAuMzEyNS0yOC4yOTY4NzUtMTAuMzIwMzEyLTM4LjYyNSAwbC00LjY4NzUgNC42Nzk2ODhjLTQuMjgxMjUgNC4yODEyNS0xMS43MTg3NSA0LjI4MTI1LTE2IDBsLTQuNjg3NS00LjY3OTY4OGMtMTAuMzI4MTI1LTEwLjMxMjUtMjguMjk2ODc1LTEwLjMyMDMxMi0zOC42MjUgMGwtNC42ODc1IDQuNjc5Njg4Yy00LjI4MTI1IDQuMjgxMjUtMTEuNzE4NzUgNC4yODEyNS0xNiAwbC00LjY4NzUtNC42Nzk2ODhjLTEwLjMyODEyNS0xMC4zMTI1LTI4LjI5Njg3NS0xMC4zMjAzMTItMzguNjI1IDBsLTQuNjg3NSA0LjY3OTY4OGMtMi4xNDQ1MzEgMi4xNDQ1MzEtNC45NzY1NjIgMy4zMjAzMTItOCAzLjMyMDMxMmgtNy42OTUzMTJjLS4xOTkyMTktMi42NDg0MzgtLjMwNDY4OC01LjMyMDMxMi0uMzA0Njg4LTh6bS0xNjggMTA0aDIyNHYxNmgtMjI0em0xNjAgOTZoLTEwNGMtMjIuMDU0Njg4IDAtNDAtMTcuOTQ1MzEyLTQwLTQwdi0yNGgxOTJ2MjRjMCAyMi4wNTQ2ODgtMTcuOTQ1MzEyIDQwLTQwIDQwem00Ny4xMTMyODEgMGMxMC40MDYyNS0xMC4xNzU3ODEgMTYuODg2NzE5LTI0LjMzNTkzOCAxNi44ODY3MTktNDB2LTE1Ljg3MTA5NGMxNS40MjU3ODEgNS4xNDQ1MzIgMzEuNTAzOTA2IDcuODcxMDk0IDQ4IDcuODcxMDk0IDgzLjgxNjQwNiAwIDE1Mi02OC4xODM1OTQgMTUyLTE1MnMtNjguMTgzNTk0LTE1Mi0xNTItMTUyLTE1MiA2OC4xODM1OTQtMTUyIDE1MmMwIDEzLjAxNTYyNSAxLjgwMDc4MSAyNS43MzQzNzUgNS4wMDc4MTIgMzguMTEzMjgxLTYuMjIyNjU2LTMuOTA2MjUtMTMuNDY0ODQzLTYuMTEzMjgxLTIxLjAwNzgxMi02LjExMzI4MS02LjUzNTE1NiAwLTEzIDEuNjcxODc1LTE4Ljc4NTE1NiA0LjgxNjQwNi0xLjU4OTg0NC0xLjcyNjU2Mi0zLjM3NS0zLjIxNDg0NC01LjIxNDg0NC00LjYyNXYtMjAwLjE5MTQwNmgzODR2MzY4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjAwIDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY0IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ4IDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ0OCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDE2IDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM4NCA2NGgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=","Water Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNjguOTkgMTg3LjQ5OWMtNS43NTEtOS45NTktMjAuMTk2LTEwLjAxNi0yNS45NzkgMC0yMS44MSA0MC42MTEtMzIuMDExIDQ4LjA2MS0zMi4wMTEgNjcuNTAxIDAgMjQuODEzIDIwLjE4NyA0NSA0NSA0NXM0NS0yMC4xODcgNDUtNDVjMC0xOS40NTgtMTAuNDg2LTI3LjQyMS0zMi4wMS02Ny41MDF6bS0xMi45OSA4Mi41MDFjLTguMjcxIDAtMTUtNi43MjktMTUtMTUgMC02LjY4NyAzLjA0Mi04LjIxNSAxNS0zMC4wMDUgMTEuOTc0IDIxLjgxOCAxNSAyMy4zMTggMTUgMzAuMDA1IDAgOC4yNzEtNi43MjkgMTUtMTUgMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNiAwaC0zMDBjLTguNzY5IDAtMTUuNjc2IDcuNTAyLTE0Ljk0OCAxNi4yNDZsMzAgMzYwYy42NDggNy43NzQgNy4xNDcgMTMuNzU0IDE0Ljk0OCAxMy43NTRoNzV2MzJoLTE1Yy0xMy4zMTggMC0yMC4wNDggMTYuMTY1LTEwLjYwNiAyNS42MDZsNjAgNjBjNS44NTcgNS44NTggMTUuMzU1IDUuODU5IDIxLjIxMyAwbDYwLTYwYzkuNDE3LTkuNDE3IDIuNzQ1LTI1LjYwNi0xMC42MDctMjUuNjA2aC0xNXYtMzJoNzVjNy44MDEgMCAxNC4zLTUuOTggMTQuOTQ4LTEzLjc1NGwzMC0zNjBjLjcyOC04LjczOS02LjE3NC0xNi4yNDYtMTQuOTQ4LTE2LjI0NnptLTE2LjMwMiAzMC01LjM0NiA2NC4xNDdjLTIxLjc2OCA4LjM0My0zNS44NzEgMjUuODUzLTUzLjM1MiAyNS44NTMtMjIuNzE3IDAtNDAuNDIzLTMwLTc1LTMwLTM0LjcyNyAwLTUyLjE3NiAzMC03NSAzMC0xNy40ODUgMC0zMS41NTYtMTcuNDk5LTUzLjM1Mi0yNS44NTNsLTUuMzQ2LTY0LjE0N3ptLTI3LjUgMzMwaC03Ni4xOThjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2NjJjMCA2LjQzMiA0LjA0OCAxMS45MTkgOS43MzYgMTQuMDVsLTI0LjczNiAyNC43MzctMjQuNzM2LTI0LjczNmM1LjY4OC0yLjEzMSA5LjczNi03LjYxOCA5LjczNi0xNC4wNXYtNjJjMC04LjI4NC02LjcxNi0xNS0xNS0xNWgtNzYuMTk4bC0xOS4yMDgtMjMwLjUwMmMxNC4zMTUgOS4xNTMgMjkuMDc2IDIwLjUwMSA1MC40MDYgMjAuNTAxIDM0LjcyNyAwIDUyLjE3Ni0zMCA3NS0zMCAyMi43MTcgMCA0MC40MjMgMzAgNzUgMzAgMjEuMDE5IDAgMzUuNDQ5LTEwLjkzNyA1MC40MDYtMjAuNTAyeiIvPgogICAgPC9nPgo8L3N2Zz4=","Water Heater":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTY3LDE4NS4zMjV2MjgxYTM1LjU0MSwzNS41NDEsMCwwLDAsMzUuNDY5LDM1LjYzMUwzMTkuMDYsNTAyaC4wMDZBMzUuODkxLDM1Ljg5MSwwLDAsMCwzNTUsNDY2LjM2OVY0NjRoNjAuNjJjMzQuODM3LDAsNjMuMzgtMjcuODcsNjMuMzgtNjIuNzE1VjE4OS43M2MwLTM0Ljg0NC0yOC41NDMtNjIuNzMtNjMuMzgtNjIuNzNIMzU1di05LjY4OWMwLS4wNzQtLjE2LS4xNDYtLjE2Mi0uMjE5cy0uMDY1LS4xMTQtLjA2NS0uMTg3QTYyLjA0NCw2Mi4wNDQsMCwwLDAsMjkyLjc2Myw1NUgyMTlWNDRoMTcuODI4QzI0NS42NSw0NCwyNTMsMzcuMiwyNTMsMjguMzc0VjI2YTE2LjE2NywxNi4xNjcsMCwwLDAtMTYuMTcyLTE2SDE4OS43MDZBMTUuNzcsMTUuNzcsMCwwLDAsMTc0LDI2djIuMzc0QTE1LjQ1NCwxNS40NTQsMCwwLDAsMTg5LjcwNiw0NEgyMDdWNTVIMTMzLjc3MUMxMDEuNSw1NSw3NC45MjQsODAsNzIuMSwxMTFIMzkuMmE2LjA1Niw2LjA1NiwwLDAsMC01LjIsOC45MjlaTTM1NSwxNjFoNjAuNjJBMjguNTgxLDI4LjU4MSwwLDAsMSw0NDQsMTg5LjczVjQwMS4yODVBMjguNTY4LDI4LjU2OCwwLDAsMSw0MTUuNjIsNDMwSDM1NVptMCwyODFoNjAuNjJBNDAuNTgxLDQwLjU4MSwwLDAsMCw0NTYsNDAxLjI4NVYxODkuNzNBNDAuNTk0LDQwLjU5NCwwLDAsMCw0MTUuNjIsMTQ5SDM1NVYxMzloNjAuNjJjMjguMjIxLDAsNTEuMzgsMjIuNSw1MS4zOCw1MC43M1Y0MDEuMjg1QzQ2Nyw0MjkuNTEzLDQ0My44NDEsNDUyLDQxNS42Miw0NTJIMzU1Wm0tMTIsMjQuMzY5QTIzLjg5MSwyMy44OTEsMCwwLDEsMzE5LjA2Niw0OTBoMGwtMjE2LjU5MS0uMDQxQTIzLjUyNywyMy41MjcsMCwwLDEsNzksNDY2LjMyOFY0NTIuNTdsMjY0LC4wNDlaTTE5MCwzMmE0LDQsMCwwLDEtNC00VjI2YTQsNCwwLDAsMSw0LTRoNDdhNCw0LDAsMCwxLDQsNHYyYTQsNCwwLDAsMS00LDRaTTEzMy43NzEsNjdIMjkyLjc2M2E0OS44MjksNDkuODI5LDAsMCwxLDQ5LjU3Niw0NEg4NC4yQTQ5LjgzLDQ5LjgzLDAsMCwxLDEzMy43NzEsNjdaTTM0MywxMjNWNDQwLjYxOUw3OSw0NDAuNTdWMTgzLjlhNi44NTMsNi44NTMsMCwwLDAtLjgtMi44NTFMNDguOTM0LDEyM1oiLz4KICAgICAgICA8cGF0aCBkPSJNMjAzLDM4OC40NDNBMzUuMDE3LDM1LjAxNywwLDAsMCwyMzgsMzUzLjZWMjM2Ljg0NGEzNSwzNSwwLDAsMC03MCwwVjM1My42QTM1LjAxNywzNS4wMTcsMCwwLDAsMjAzLDM4OC40NDNabS0yMy0xNTEuNmEyMywyMywwLDAsMSw0NiwwVjI4OUgxODBaTTE4MCwzMDFoNDZ2NTIuNmEyMywyMywwLDAsMS00NiwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik05OSwzMTQuOTEzYTYsNiwwLDAsMCw2LTZWMjMzLjEwNmE2LDYsMCwwLDAtMTIsMHY3NS44MDdBNiw2LDAsMCwwLDk5LDMxNC45MTNaIi8+CiAgICAgICAgPHBhdGggZD0iTTk5LDIxOC43MjZhNiw2LDAsMCwwLDYtNnYtNC44MzRhNiw2LDAsMCwwLTEyLDB2NC44MzRBNiw2LDAsMCwwLDk5LDIxOC43MjZaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Water:sxe,Weather:ixe,Window:rxe},nxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",axe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM2Mi43ODcgMzYyLjc4NyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNjAuOTQ1LDE0NC45NzljLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTlsLTQ3LjQ4NCw4MS4zMzNjLTEuMzU0LDIuMzE5LTEuMzY1LDUuMTg2LTAuMDI3LDcuNTE2CgkJYzEuMzM3LDIuMzI5LDMuODE4LDMuNzY2LDYuNTA0LDMuNzY2aDk0Ljk2OGMyLjY4NiwwLDUuMTY3LTEuNDM3LDYuNTA0LTMuNzY2YzEuMzM4LTIuMzMsMS4zMjctNS4xOTYtMC4wMjctNy41MTZsLTQ3LjQ4My04MS4zMzMKCQlDMjY2LjA3OCwxNDYuMzk1LDI2My42MTIsMTQ0Ljk3OSwyNjAuOTQ1LDE0NC45Nzl6IE0yMjYuNTI0LDIyNi4zMTJsMzQuNDIxLTU4Ljk1OGwzNC40Miw1OC45NThIMjI2LjUyNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU1LjI4NywyNTQuNjloLTE3NS42Mmw4MS4yNzgtMTM5LjIxOGw2Mi45MjYsMTA3Ljc4M2MyLjA4OCwzLjU3OCw2LjY4Myw0Ljc4NCwxMC4yNTgsMi42OTYKCQljMy41NzctMi4wODgsNC43ODQtNi42ODEsMi42OTUtMTAuMjU4TDI2Ny40MjIsOTYuODE1Yy0wLjAyMS0wLjAzNi0wLjA0OC0wLjA2Ny0wLjA2OS0wLjEwM2MtMC4xMjYtMC4yMDgtMC4yNjItMC40MDgtMC40MDctMC42MDMKCQljLTAuMDQ0LTAuMDU5LTAuMDg2LTAuMTE4LTAuMTMxLTAuMTc2Yy0wLjE4My0wLjIzLTAuMzc2LTAuNDUxLTAuNTg0LTAuNjU4Yy0wLjAyNC0wLjAyNC0wLjA1MS0wLjA0NS0wLjA3Ni0wLjA2OQoJCWMtMC4xODYtMC4xOC0wLjM4My0wLjM0OS0wLjU4Ny0wLjUwOWMtMC4wNjUtMC4wNTEtMC4xMzItMC4xLTAuMTk5LTAuMTQ4Yy0wLjE4Ny0wLjEzNy0wLjM3OS0wLjI2NC0wLjU3OC0wLjM4NAoJCWMtMC4wNTUtMC4wMzMtMC4xMDgtMC4wNjgtMC4xNjQtMC4xYy0wLjI2MS0wLjE0Ny0wLjUzLTAuMjgyLTAuODA5LTAuMzk3Yy0wLjAxMS0wLjAwNC0wLjAyMi0wLjAwOC0wLjAzMy0wLjAxMgoJCWMtMC4yNi0wLjEwNi0wLjUyOC0wLjE5Ni0wLjgwMi0wLjI3M2MtMC4wNzMtMC4wMjEtMC4xNDYtMC4wMzgtMC4yMi0wLjA1NmMtMC4yMjItMC4wNTUtMC40NDctMC4xLTAuNjc3LTAuMTM1CgkJYy0wLjA3OS0wLjAxMi0wLjE1Ny0wLjAyNi0wLjIzNi0wLjAzNmMtMC4yOTctMC4wMzYtMC41OTgtMC4wNi0wLjkwNi0wLjA2SDEwMS44NDJjLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTkKCQlMMS4wMjMsMjU4LjQwOGMtMS4zNTQsMi4zMTktMS4zNjUsNS4xODYtMC4wMjcsNy41MTZjMS4zMzcsMi4zMjksMy44MTgsMy43NjYsNi41MDQsMy43NjZoODYuNTM4YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDEKCQlzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzUuODg5YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDFzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzYuNTg2aDE4OC42ODQKCQljNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNVMzNTkuNDMsMjU0LjY5LDM1NS4yODcsMjU0LjY5eiBNMTYyLjI5OCwyNTQuNjloLTE5LjI2M2w2OS40My0xMTkuNDcKCQljMi4wODEtMy41ODIsMC44NjUtOC4xNzItMi43MTYtMTAuMjUzYy0zLjU4LTIuMDgzLTguMTczLTAuODY2LTEwLjI1MywyLjcxNmwtNzMuODEsMTI3LjAwN0gxMDcuMWw4NS4xOTItMTQ2LjU5NGg1NS41OQoJCUwxNjIuMjk4LDI1NC42OXogTTEwNi4xNDcsMTA4LjA5NmgzNC4wOTFMNzQuNzg5LDIyMC43MTdjLTIuMDgxLDMuNTgyLTAuODY1LDguMTcyLDIuNzE2LDEwLjI1MwoJCWMxLjE4NiwwLjY4OSwyLjQ4MiwxLjAxNywzLjc2MiwxLjAxN2MyLjU4NCwwLDUuMS0xLjMzNyw2LjQ5MS0zLjczM2w2OS44My0xMjAuMTU4aDE3LjM1Nkw4OS43NTEsMjU0LjY5SDIwLjU2M0wxMDYuMTQ3LDEwOC4wOTZ6IgogICAgICAgIC8+CiAgICA8L2c+Cjwvc3ZnPgo=",Mxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTYuNzA0IDI3Mi4wODZoLTgxLjcwNHYtODguMDczYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djg4LjA3M2gtMTV2LTE5My43MWMwLTguMjQ5LTYuNzExLTE0Ljk1OS0xNC45NTktMTQuOTU5aC05MS41ODJjLTguMjQ4IDAtMTQuOTU5IDYuNzEtMTQuOTU5IDE0Ljk1OXYxOTMuNzFoLTE1di0xOTMuNzFjMC04LjI0OS02LjcxMS0xNC45NTktMTQuOTU5LTE0Ljk1OWgtOTEuNTgyYy04LjI0OCAwLTE0Ljk1OSA2LjcxLTE0Ljk1OSAxNC45NTl2MTkzLjcxaC0xNXYtMjIzLjY2OWgyODh2MTAwLjU5NmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xMDAuNTk2aDMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODgzIDE1LjI5Ni0xNS4zNDR2LTE3LjczYzAtOC40Ni02Ljg2MS0xNS4zNDMtMTUuMjk2LTE1LjM0M2gtMzI0LjQwOGMtOC40MzUgMC0xNS4yOTYgNi44ODMtMTUuMjk2IDE1LjM0NHYxNy43M2MwIDguNDYgNi44NjEgMTUuMzQ0IDE1LjI5NiAxNS4zNDRoMy4yMDR2MjIzLjY2OWgtODEuNzA0Yy04LjQzNS0uMDAxLTE1LjI5NiA2Ljg2MS0xNS4yOTYgMTUuMjk1djE3LjYyMmMwIDguNDM1IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aC41djE0My40ODZoLS41Yy04LjQzNSAwLTE1LjI5NiA2Ljg2Mi0xNS4yOTYgMTUuMjk2djE3LjYyMmMwIDguNDM0IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aDIyMy4yMDRjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTIyMy4yMDRjLS4xNjMgMC0uMjk2LS4xMzMtLjI5Ni0uMjk2di0xNy42MjJjMC0uMTYzLjEzMy0uMjk2LjI5Ni0uMjk2aDQ4MS40MDhjLjE2MyAwIC4yOTYuMTMzLjI5Ni4yOTZ2MTcuNjIyYzAgLjE2My0uMTMzLjI5Ni0uMjk2LjI5NmgtMjIzLjIwNGMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMjMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODYyIDE1LjI5Ni0xNS4yOTZ2LTE3LjYyMmMwLTguNDM0LTYuODYxLTE1LjI5Ni0xNS4yOTYtMTUuMjk2aC0uNXYtMTQzLjQ4NmguNWM4LjQzNSAwIDE1LjI5Ni02Ljg2MiAxNS4yOTYtMTUuMjk2di0xNy42MjJjMC04LjQzNC02Ljg2MS0xNS4yOTYtMTUuMjk2LTE1LjI5NnptLTQwMy4yMDQtMjM5LjAxMnYtMTcuNzNjMC0uMjEyLjE1My0uMzQ0LjI5Ni0uMzQ0aDMyNC40MDhjLjE0MyAwIC4yOTYuMTMxLjI5Ni4zNDR2MTcuNzNjMCAuMjEyLS4xNTMuMzQ0LS4yOTYuMzQ0LTE1LjM2NyAwLTMwOS4wNTEgMC0zMjQuNDA4IDAtLjE0My0uMDAxLS4yOTYtLjEzMi0uMjk2LS4zNDR6bTE4NC45NTkgNDUuMzQzIDkxLjU0MS0uMDQxdjE5My43MWgtOTEuNTAyem0tMTM2LjUgMCA5MS41NDEtLjA0MXYxOTMuNzFoLTkxLjUwMnptMzM5LjI0NSAzODQuODE3aC00NTAuNDA4di0xNDIuOTM0aDQ1MC40MDh6bTE1Ljc5Ni0xNTguMjNjMCAuMTY0LS4xMzMuMjk2LS4yOTYuMjk2LTIuODI0IDAtNDcxLjE1MyAwLTQ4MS40MDggMC0uMTYzIDAtLjI5Ni0uMTMzLS4yOTYtLjI5NnYtMTcuNjIyYzAtLjE2My4xMzMtLjI5Ni4yOTYtLjI5Nmg0ODEuNDA4Yy4xNjMgMCAuMjk2LjEzMy4yOTYuMjk2eiIvPgogICAgICAgIDxwYXRoIGQ9Im02Ny42NTUgNDQyLjcwNGgxOC45OWM4Ljc2OCAwIDE1LjktNy4xMzMgMTUuOS0xNS45MDF2LTY5LjUyYzAtOC43NjgtNy4xMzMtMTUuOTAxLTE1LjktMTUuOTAxaC0xOC45OWMtOC43NjggMC0xNS45IDcuMTMzLTE1LjkgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkgMTUuOTAxem0tLjktODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45LS45MDFoMTguOTljLjQ5NiAwIC45LjQwNC45LjkwMXY2OS41MmMwIC40OTctLjQwNC45MDEtLjkuOTAxaC0xOC45OWMtLjQ5NiAwLS45LS40MDQtLjktLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM5LjQwNiA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMTAuNzk2IDQ0Mi43MDRoMTguOTljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTljLTguNzY4IDAtMTUuOSA3LjEzMy0xNS45IDE1LjkwMXY2OS41MmMwIDguNzY4IDcuMTMyIDE1LjkwMSAxNS45IDE1LjkwMXptLS45LTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOS0uOTAxaDE4Ljk5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTljLS40OTYgMC0uOS0uNDA0LS45LS45MDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI4Mi41NDcgNDQyLjcwNGgxOC45ODljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTg5Yy04Ljc2OCAwLTE1LjkwMSA3LjEzMy0xNS45MDEgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAxLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzU0LjEzMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjLS4wMDEgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAyLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDI1LjUyMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTYuNDExIDEwNy4yNjhjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDIzLjUxMiAyMy41MTJjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjYwNCA5Mi44MzJjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDExLjc1NiAxMS43NTZjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgIDwvZz4KPC9zdmc+",cxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00MTMuOTA3IDBjLTU0LjEwNCAwLTk4LjEyMiA0NC4wMDUtOTguMTIyIDk4LjA5NnY0My41ODJzLTY5LjgzMS0zNi45MTItNzEuMDY1LTM3LjU5M2MtOS41NDQtNS4yNjYtMTIuMTg1LTUuMjY3LTIxLjczMSAwLTEuMjM0LjY4MS0xMzYuMTQxIDcxLjk1OC0xMzYuMTQxIDcxLjk1OC0xMS40MzcgNi4wMTctMTMuMDQ1IDcuNzQ1LTE3Ljg3OCAxNS43ODMtLjc4OCAxLjMxMS02NS42OTggMTA0LjIzLTY1LjY5OCAxMDQuMjMtMy4xNzUgNS4wMjMtNC4wNzcgMTAuOTYyLTIuNTM5IDE2LjcyMiAxLjYxNyA2LjA1NiA1Ljg0IDExLjI2OSAxMS41NzcgMTQuMjk1IDMuNjQ2IDEuOTMgNy41ODIgMi44NSAxMS40NjUgMi44NSA2LjIwMiAwIDEyLjI1NS0yLjM1OCAxNi43NDUtNi42ODh2NjUuMDQ0YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTg3LjU0MXM0OS4xMzQtNzcuODU1IDQ5LjY1Mi03OC42ODJjMi4zMzQtMy43MjkgMy4zMjgtNS4yODMgNC40OTYtNi4zMTggMS4zMzMtMS4xODEgMy42NjUtMi40NjQgOC42NjUtNS4xMDdsMTEzLjAwMi01OS42NDljLjgwMS0uNDI1IDEuNDktLjgwMyAyLjA5My0xLjEzMy4xNDEtLjA3Ny4yODUtLjE1Ni40MjgtLjIzNC4xNDMuMDc4LjI4Ny4xNTcuNDI4LjIzNC42MDMuMzMxIDEuMjkyLjcwOCAyLjEwOSAxLjE0MiAwIDAgMTE4LjE5MyA2Mi40MTMgMTE5LjY0MiA2My4zMS44NjkuNTM4IDEuNTA5Ljk5NSAyLjAwOSAxLjQzOCAxLjE2NyAxLjAzNSAyLjE2MiAyLjU4OSA0LjQ5NiA2LjMxOC41MTguODI3IDQ5LjY1MSA3OC42ODEgNDkuNjUxIDc4LjY4MXYxNjAuNzE2aC04NC45MjF2LTEwNC4zNGgxMi42MjVjNy42NTIgMCAxMy44NzgtNi4yMjYgMTMuODc4LTEzLjg3OHYtMjEuNDNjMC03LjY1Mi02LjIyNi0xMy44NzgtMTMuODc4LTEzLjg3OGgtODUuMTIyYy00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDg0djE5LjE4NmgtMjA5Ljgxdi0xOS4xODZoOTEuMmM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtOTIuMzIyYy03LjY1MiAwLTEzLjg3OCA2LjIyNi0xMy44NzggMTMuODc4djIxLjQzYzAgNy42NTIgNi4yMjYgMTMuODc4IDEzLjg3OCAxMy44NzhoMTIuNjI1djEwNC4zMzloLTg0Ljk0N3YtMzguNTYzYzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc2LjUzNmMwIDYuOTM0IDUuNjQxIDEyLjU3NCAxMi41NzQgMTIuNTc0aDQ0NS45MDdjNy4xNjcgMCAxMi45OTktNS44MzIgMTIuOTk5LTEyLjk5OXYtNDAwLjkwNWMuMDAxLTU0LjA5MS00NC4wMDQtOTguMDk2LTk4LjA5Mi05OC4wOTZ6bS0yNzMuNDQgNDk3aC04NC45NDh2LTIwLjU0Nmg4NC45NDd2MjAuNTQ2em0xNTkuNzgzLTEzOS44ODYtNjYuMzgyIDU5Ljg0NS02Ni4zODItNTkuODQ1em0tMTQ0Ljc4MyA5LjM1OSA2Ny4yMDEgNjAuNTg0LTY3LjIwMSA2MC41ODR6bTEyLjAyIDEzMC41MjcgNjYuMzgyLTU5Ljg0NSA2Ni4zODEgNTkuODQ1em0xNDQuNzgzLTkuMzU5LTY3LjIwMS02MC41ODQgNjcuMjAxLTYwLjU4NHptOTkuOTE5IDkuMzU5aC04NC45MTl2LTIwLjU0Nmg4NC45MTl6bTUzLjQ0NS0xOTguODIzYy0uMzQ3LS43Mi0uNzMzLTEuNDI3LTEuMTY2LTIuMTE3bC01MS45NDUtODIuMjY2aDg0LjQ3N3Y4NC4zODN6bS0xMzQuODQ4LTIwMC4wODFjMC00NS44MTkgMzcuMjg4LTgzLjA5NiA4My4xMjItODMuMDk2IDQ1LjgxNiAwIDgzLjA5MiAzNy4yNzYgODMuMDkyIDgzLjA5NnYxLjI4N2gtMTY2LjIxNHptMCAxNi4yODdoMTY2LjIxNHY4NC40MTJoLTkzLjk0OXMtMy41MjMtNS42NTYtNC4zMTItNi45NjZjLTQuODMxLTguMDM2LTYuNDQtOS43NjYtMTcuODY4LTE1Ljc3OGwtNTAuMDg2LTI2LjQ1di0zNS4yMTh6bTk1LjI0NiAxODAuMTc3cy01MC4yNzUtNzkuNjU2LTUwLjc4LTgwLjQ2M2MtNC43OTktNy42NjUtNi41MTQtOS44MjUtMTMuMjgxLTEzLjY5Mi0uNTIxLS4yOTctMTE5LjkyOS02My40MDgtMTIwLjQ4Mi02My43MTEtNS4xMDEtMi43OTUtNy44NDctMy4zMi0xMi4wNjctMS41NzItLjAzNy4wMTUtLjA3Ni4wMzQtLjExMy4wNS0uNjE2LjI1OS0xMTcuOTg1IDYyLjE5Ny0xMTcuOTg1IDYyLjE5Ny0xMS43MjcgNi4yLTEyLjk2MSA3LjI5NS0xOC44NjggMTYuNzI5LS41MDUuODA3LTUwLjc4IDgwLjQ2My01MC43OCA4MC40NjMtLjAxLjAxNi0uMDE2LjAzMy0uMDI2LjA0OWwtMTAuMjk0IDE2LjMxYy0yLjM3NSAzLjc2Ny03Ljg4NSA1LjA5Ni0xMi4wMzkgMi44OTQtMi4wNi0xLjA4Ni0zLjU1Mi0yLjg3My00LjA5My00LjkwMS0uMzE2LTEuMTg0LS40NDYtMi45ODQuNzI5LTQuODQzIDAgMCA2NS4wMzctMTAzLjEyNCA2NS44NzItMTA0LjUxMiAzLjQ0OC01LjczNCAzLjQ0OC01LjczNCAxMi4wMTctMTAuMjQzIDAgMCAxMzkuMTkzLTczLjYzOSAxNDAuMDEyLTc0LjAxMy44Mi4zNzQgMTQwLjAxMiA3NC4wMTMgMTQwLjAxMiA3NC4wMTMuMDAzLjAwMi4wMDcuMDA0LjAxMS4wMDYgOC41NTkgNC41MDIgOC41NTkgNC41MDIgMTIuMDA3IDEwLjIzOC44MzQgMS4zODggMS44MTYgMy4wMiAzLjA1OCA0Ljk4N2w2Mi44MzMgOTkuNTA5YzEuMTY4IDEuODYgMS4wMzQgMy42NjkuNzE2IDQuODU5LS41NDQgMi4wMzItMi4wMzIgMy44Mi00LjA3MiA0Ljg5OS00LjIyNiAyLjIzMS05LjY0NS45MjQtMTIuMDY5LTIuODk2bC0xMC4yOTItMTYuMzA3Yy0uMDEtLjAxNy0uMDE2LS4wMzUtLjAyNi0uMDV6bTcwLjk2OCAyMDIuNDRoLTY5LjgxMXYtODQuNDExaDY5LjgxMXptLTY5LjgxMS05OS40MTF2LTc0LjM4OWM3LjMxMyA3LjA0MiAxOC43NjMgOC44NzQgMjguMjM4IDMuODc1IDUuNi0yLjk2NSA5Ljc0Ni04LjAxNiAxMS40MzgtMTMuODk3aDMwLjEzNXY4NC40MTJoLTY5LjgxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg1LjI2MiAyMzcuODczYzAtMjguMzQ3LTIzLjA2Mi01MS40MDktNTEuNDA4LTUxLjQwOS0yOC4zMzEgMC01MS4zNzkgMjMuMDYyLTUxLjM3OSA1MS40MDlzMjMuMDQ5IDUxLjQwOSA1MS4zNzkgNTEuNDA5YzI4LjM0Ny0uMDAxIDUxLjQwOC0yMy4wNjMgNTEuNDA4LTUxLjQwOXptLTg3Ljc4NyAwYzAtMjAuMDc2IDE2LjMyLTM2LjQwOSAzNi4zNzktMzYuNDA5IDIwLjA3NSAwIDM2LjQwOCAxNi4zMzMgMzYuNDA4IDM2LjQwOXMtMTYuMzMzIDM2LjQwOS0zNi40MDggMzYuNDA5Yy0yMC4wNTktLjAwMS0zNi4zNzktMTYuMzM0LTM2LjM3OS0zNi40MDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTIuOTk1IDE2Ni40ODktMzEuOTk1LTIzLjk5NnYtMTEyLjQ5M2M4LjI4NCAwIDE1LTYuNzE2IDE1LTE1cy02LjcxNi0xNS0xNS0xNWgtOTBjLTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTV2NDQuOTkybC04OC4wMDktNjYuMDA2Yy0xNS44OTMtMTEuOTA0LTM4LjA5LTExLjkwNS01My45ODkuMDA1bC0yMDkuOTk5IDE1Ny41Yy0xOS44NTMgMTQuODkzLTIzLjg5MSA0My4xNTUtOS4wMDEgNjMuMDA0IDcuMjIgOS42MiAxNy43NTIgMTUuODUzIDI5LjY1NyAxNy41NSAyLjE1Ny4zMDggNC4zMS40NiA2LjQ1LjQ1OSA1LjEwOSAwIDEwLjEzLS44NzYgMTQuODkxLTIuNTY0djI1Mi4wNmMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDM2MGM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di0yNTIuMDY4YzQuNzYzIDEuNjg1IDkuODAzIDIuNTYgMTQuOTc4IDIuNTYgMTQuMSAwIDI3LjU2NS02LjcyOSAzNi4wMjItMTggMTQuODg4LTE5Ljg0NiAxMC44NDktNDguMTA4LTkuMDA1LTYzLjAwM3ptLTkxLjk5NS0xMzYuNDg5aDMwdjg5Ljk5MmwtMzAtMjIuNXptLTEyMCAyNzJoLTUwdi05Mmg1MHptMzAgMHYtMTA3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTgwYy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djEwN2gtMTA5Ljk5OXYtNzcuMDA0bDE2NC45OTktMTIzLjc1MiAxNjUgMTIzLjc1M3Y3Ny4wMDN6bS0yMTkuOTk5IDMwaDIwOS45OTl2MzBoLTQ1Yy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djQ1aC00NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY0NWgtOTB6bTExOS45OTkgMTUwdi0zMGg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg5MHYxNTB6bTI2Ny4wMDItMjcwLjUxMWMtMi44NjMgMy44MTUtNy4yNDUgNi4wMDQtMTIuMDI0IDYuMDA0LTMuMjYgMC02LjM2NS0xLjAzNi04Ljk3OS0yLjk5NmwtMTkxLjk5OS0xNDQuMDAzYy01LjMzMy00LTEyLjY2Ny00LTE4IDBsLTE5Mi4wMDggMTQ0LjAwOWMtMy4xOTMgMi4zOTctNy4xMzYgMy40MDgtMTEuMDk4IDIuODQyLTMuOTczLS41NjYtNy40ODgtMi42NDctOS44OTYtNS44NTYtNC45NjEtNi42MTQtMy42MTItMTYuMDM1IDMuMDA2LTIxbDIwOS45OTEtMTU3LjQ5MmMyLjY1Mi0xLjk4NyA1LjgzLTIuOTc5IDkuMDA3LTIuOTc5IDMuMTc1IDAgNi4zNDkuOTkyIDguOTk2IDIuOTc0bDIwOS45OTYgMTU3LjQ5N2M2LjYyIDQuOTY2IDcuOTY5IDE0LjM4NiAzLjAwOCAyMXoiLz4KICAgIDwvZz4KPC9zdmc+",lxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDg1LjQsMjcyLjA2N2gtOC41MzN2LTE3OS4yYzAtNDIuNjY3LTM0LjEzMy03Ni44LTc2LjgtNzYuOGMtMzcuNzcsMC02NC45MzUsMjguMDA2LTY3Ljk3NCw2OS4wNDEKCQkJCWMtMTkuODI5LDMuNzQ4LTM0LjQyNiwyMC44MjYtMzQuNDI2LDQxLjg5MmMwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNoNjguMjY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzMwoJCQkJYzAtMjAuODMzLTE0LjI3NC0zNy43NjktMzMuNzY3LTQxLjc2N2MyLjU1LTI3LjExNiwxOC44MzYtNTIuMSw1MC44MzQtNTIuMWMzMy4yOCwwLDU5LjczMywyNi40NTMsNTkuNzMzLDU5LjczM3YxNzkuMkgyMDIuOTc1CgkJCQljLTMuODYtMTkuNjgxLTIwLjg3OC0zNC4xMzMtNDEuODQxLTM0LjEzM2MtOC41MzMtMTAuMjQtMjAuNDgtMTcuMDY3LTM0LjEzMy0xNy4wNjdjLTE2LjIxMywwLTMwLjcyLDkuMzg3LTM3LjU0NywyMy4wNAoJCQkJYy02LjgyNy0zLjQxMy0xNC41MDctNS45NzMtMjIuMTg3LTUuOTczYy0yMC45NjMsMC0zNy45ODEsMTQuNDUyLTQxLjg0MSwzNC4xMzNIMjQuNmMtMTQuNTA3LDAtMjUuNiwxMS4wOTMtMjUuNiwyNS42CgkJCQljMCwxNC41MDcsMTEuMDkzLDI1LjYsMjUuNiwyNS42aDEwLjI1NWwyMy4wMjUsOTEuMzA3YzYuODI3LDI2LjQ1MywzMC43Miw0NS4yMjcsNTguMDI3LDQ1LjIyN2g2LjgyN2wtMTEuMDkzLDIyLjE4NwoJCQkJYy0yLjU2LDQuMjY3LTAuODUzLDkuMzg3LDMuNDEzLDExLjA5M2MwLjg1MywwLjg1MywyLjU2LDAuODUzLDMuNDEzLDAuODUzYzMuNDEzLDAsNS45NzMtMS43MDcsNy42OC00LjI2N0wxNDEuMDgsNDU5LjhoMjM2LjgKCQkJCWwxNC41MDcsMjkuMDEzYzEuNzA3LDMuNDEzLDQuMjY3LDUuMTIsNy42OCw1LjEyYzEuNzA3LDAsMi41NiwwLDMuNDEzLTEuNzA3YzMuNDEzLTEuNzA3LDUuMTItNi44MjcsMy40MTMtMTEuMDkzCgkJCQlsLTEwLjY4OS0yMS4zNzljMjYuNDE5LTAuOTM4LDQ5LjI2Ni0xOS4zOSw1NS45MTYtNDQuMzI4bDIzLjI0LTkyLjE2aDEwLjA0YzE0LjUwNywwLDI1LjYtMTEuMDkzLDI1LjYtMjUuNgoJCQkJQzUxMSwyODMuMTYsNDk5LjkwNywyNzIuMDY3LDQ4NS40LDI3Mi4wNjd6IE0zNjUuMDgsMTE4LjQ2N2gtNDguNjRjMy40MTMtMTAuMjQsMTMuNjUzLTE3LjA2NywyNC43NDctMTcuMDY3CgkJCQlTMzYxLjY2NywxMDguMjI3LDM2NS4wOCwxMTguNDY3eiBNNjcuMjY3LDI1NWM3LjY4LDAsMTQuNTA3LDMuNDEzLDIwLjQ4LDkuMzg3YzEuNzA3LDIuNTYsNS4xMiwzLjQxMyw4LjUzMywyLjU2CgkJCQlzNS4xMi0zLjQxMyw1Ljk3My02LjgyN2MyLjU2LTEyLjgsMTIuOC0yMi4xODcsMjUuNi0yMi4xODdjOS4zODcsMCwxNy45Miw0LjI2NywyMi4xODcsMTIuOGMxLjcwNywzLjQxMyw1Ljk3Myw1LjEyLDkuMzg3LDQuMjY3CgkJCQljMC44NTMsMCwxLjcwNywwLDIuNTYsMGMxMS4wOTMsMCwyMC40OCw2LjgyNywyMy44OTMsMTcuMDY3SDQzLjM3M0M0Ni43ODcsMjYxLjgyNyw1Ni4xNzMsMjU1LDY3LjI2NywyNTV6IE00MzYuNzYsNDEwLjMwNwoJCQkJYy01LjEyLDE4Ljc3My0yMi4xODcsMzIuNDI3LTQxLjgxMywzMi40MjdIMTE2Ljc2Yy0xOS42MjcsMC0zNi42OTMtMTMuNjUzLTQxLjgxMy0zMi40MjdsLTIyLjE4Ny04Ny4wNGg0MDQuNDhMNDM2Ljc2LDQxMC4zMDd6CgkJCQkgTTQ4NS40LDMwNi4yaC0xNy4wNjdINDEuNjY3SDI0LjZjLTUuMTIsMC04LjUzMy0zLjQxMy04LjUzMy04LjUzM3MzLjQxMy04LjUzMyw4LjUzMy04LjUzM2g4LjUzM2gxNjIuMTMzSDQ4NS40CgkJCQljNS4xMiwwLDguNTMzLDMuNDEzLDguNTMzLDguNTMzUzQ5MC41MiwzMDYuMiw0ODUuNCwzMDYuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzA2LjIsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMyOTcuNjY3LDE3MC41MiwzMDEuMDgsMTczLjkzMywzMDYuMiwxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyMTMuMTg3YzUuMTIsMCw4LjUzMy00LjI2Nyw4LjUzMy04LjUzM3YtOS4zODdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y5LjM4NwoJCQkJQzI5Ny42NjcsMjA5Ljc3MywzMDEuMDgsMjEzLjE4NywzMDYuMiwyMTMuMTg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyNDYuNDY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzM3YtNC4yNjdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y0LjI2NwoJCQkJQzI5Ny42NjcsMjQzLjA1MywzMDEuMDgsMjQ2LjQ2NywzMDYuMiwyNDYuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDAuMzMzLDE3My45MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzdjQuMjY3QzMzMS44LDE3MC41MiwzMzUuMjEzLDE3My45MzMsMzQwLjMzMywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMzEuOCwyMDQuNjUzYzAsNS4xMiwzLjQxMyw4LjUzMyw4LjUzMyw4LjUzM2M1LjEyLDAsOC41MzMtNC4yNjcsOC41MzMtOC41MzN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJYy01LjEyLDAtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjA0LjY1M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzMxLjgsMjM3LjkzM2MwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzVjIzNy45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM3NC40NjcsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMzNjUuOTMzLDE3MC41MiwzNjkuMzQ3LDE3My45MzMsMzc0LjQ2NywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIwNC42NTNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzUzM4MywyMDguOTIsMzgzLDIwNC42NTN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM1YyMDQuNjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIzNy45MzNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCXMtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjM3LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Nxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OTYsMzQ0aC04VjI4MGEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMyVjExMmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDg4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJWMjQ4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJ2NjRIMTZhOCw4LDAsMCwwLTgsOHYzMmE4LDgsMCwwLDAsOCw4aDh2MzJhOCw4LDAsMCwwLDgsOEg1NmE3Ljk5LDcuOTksMCwwLDAsNy44NC02LjQzTDcwLjU2LDM5Mkg0NDEuNDRsNi43MiwzMy41N0E3Ljk5LDcuOTksMCwwLDAsNDU2LDQzMmgyNGE4LDgsMCwwLDAsOC04VjM5Mmg4YTgsOCwwLDAsMCw4LThWMzUyQTgsOCwwLDAsMCw0OTYsMzQ0Wk03MiwxMTJBMTYuMDIxLDE2LjAyMSwwLDAsMSw4OCw5Nkg0MjRhMTYuMDIxLDE2LjAyMSwwLDAsMSwxNiwxNlYyNDhINDI0VjIxNmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDI5NmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLDMydjMySDI0OFYyMTZhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMi0zMkgxMjBhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMiwzMnYzMkg3MlpNNDA4LDIxNnYzMkgyODBWMjE2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZoOTZBMTYuMDIxLDE2LjAyMSwwLDAsMSw0MDgsMjE2Wm0tMTc2LDB2MzJIMTA0VjIxNmExNi4wMjEsMTYuMDIxLDAsMCwxLDE2LTE2aDk2QTE2LjAyMSwxNi4wMjEsMCwwLDEsMjMyLDIxNlpNNDAsMjgwYTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZINDU2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYsMTZ2NjRINDBabTkuNDQsMTM2SDQwVjM5Mkg1NC4yNFpNNDcyLDQxNmgtOS40NGwtNC44LTI0SDQ3MlptMTYtNDBIMjRWMzYwSDQ4OFoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Lxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NS4zOTMgNDUuMzkzIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzLjUxOCwxMi43MDlMMjUuMTc4LDAuNzI4Yy0xLjUxMS0wLjk3OC0zLjQ1OC0wLjk2OC00Ljk2LDAuMDIxTDEuODU5LDEyLjcxOWMtMS4xNCwwLjc1MS0xLjQ1NSwyLjI4NC0wLjcwNSwzLjQyNAoJCQljMC43NTEsMS4xNCwyLjI4MywxLjQ1NiwzLjQyNCwwLjcwNEwyMi43MTUsNS4wMjFMNDAuODMsMTYuODU3YzAuNDE2LDAuMjY5LDAuODgxLDAuMzk2LDEuMzQxLDAuMzk2CgkJCWMwLjgxMiwwLDEuNjA0LTAuMzk3LDIuMDc3LTEuMTI3QzQ0Ljk5LDE0Ljk4LDQ0LjY2MiwxMy40NTIsNDMuNTE4LDEyLjcwOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzguODc5LDI3LjYxNmMtMC4xNTEtMC44NjUtMC45MDMtMS41MDUtMS43OC0xLjUwNWgtMS4wMDhsLTAuMzgzLTMuOTg3Yy0wLjQwOS00LjI2NC0zLjk0OC03LjQ5LTguMjMyLTcuNDlIMTcuOTIKCQkJYy00LjI4NSwwLTcuODIzLDMuMjI3LTguMjMzLDcuNDlsLTAuMzgyLDMuOTg3SDguMjk2Yy0wLjg3OCwwLTEuNjI5LDAuNjQtMS43ODIsMS41MDVsLTEuNSw4LjUwNAoJCQljLTAuMTg2LDEuMDU0LDAuMTEyLDIuMTM5LDAuOCwyLjk1N2MwLjY2MiwwLjc4OCwxLjYzNywxLjI1OCwyLjY1NywxLjI5M3YxLjQxMmMwLDEuOTk5LDEuNjAyLDMuNjEsMy42MDMsMy42MWgxLjEzOAoJCQljMS45OTksMCwzLjYyNS0xLjYxMSwzLjYyNS0zLjYxdi0xLjM4OWgxMS43MzJ2MS4zODZjMCwyLDEuNjEzLDMuNjEzLDMuNjEyLDMuNjEzaDEuMTM5YzEuOTk5LDAsMy42MTQtMS42MTMsMy42MTQtMy42MTNWNDAuMzcKCQkJYzEuMDItMC4wMzUsMS45ODktMC41MDEsMi42NDktMS4yODhjMC42ODgtMC44MiwwLjk4Mi0xLjg5OSwwLjc5OC0yLjk1NUwzOC44NzksMjcuNjE2eiBNMTEuNjQyLDM3LjExMwoJCQljLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1N2MxLjY4OCwwLDMuMDU3LDEuMzY3LDMuMDU3LDMuMDU3CgkJCUMxNC42OTksMzUuNzQ2LDEzLjMzLDM3LjExMywxMS42NDIsMzcuMTEzeiBNMTIuNDA0LDI2LjExMWwwLjM1My0zLjY3OGMwLjI1Ny0yLjY3NCwyLjQ3Ni00LjY4OCw1LjE2My00LjY4OGgwLjU1MXYxLjE1NgoJCQljMCwxLjAwMywwLjc5NywxLjgwMiwxLjc5OSwxLjgwMmg0Ljg1NmMxLjAwMiwwLDEuODEzLTAuNzk5LDEuODEzLTEuODAydi0xLjE1NWgwLjUzN2MyLjY4NywwLDQuOTA2LDIuMDE0LDUuMTYyLDQuNjg4CgkJCWwwLjM1NCwzLjY3OEwxMi40MDQsMjYuMTExTDEyLjQwNCwyNi4xMTF6IE0zMy43NSwzNy4xMTNjLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1NwoJCQljMS42ODgsMCwzLjA1NywxLjM2NywzLjA1NywzLjA1N0MzNi44MDcsMzUuNzQ2LDM1LjQzOCwzNy4xMTMsMzMuNzUsMzcuMTEzeiIvPgogICAgPC9nPgo8L3N2Zz4K",gxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDk0LjU5NCwzOTQuMjM3aC0xOS40NjFjMTIuOTU0LTE5LjU0MywyMC41MTItNDIuOTU4LDIwLjUxMi02OC4xMDljMC02OC4xNTctNTUuNDQ5LTEyMy42MDYtMTIzLjYwNi0xMjMuNjA2CgkJCWMtNy4xNzEsMC0xNC4yLDAuNjIyLTIxLjA0LDEuNzk5YzE3Ljg1My0yMS40MzUsMjguNjA4LTQ4Ljk3OSwyOC42MDgtNzguOTlDMzc5LjYwNiw1Ny4xNzQsMzI0LjE1NywxLjcyNCwyNTYsMS43MjQKCQkJYy02OC4xNTcsMC0xMjMuNjA2LDU1LjQ0OS0xMjMuNjA2LDEyMy42MDZjMCwzMC4wMTIsMTAuNzU1LDU3LjU1NSwyOC42MDgsNzguOTljLTYuODQtMS4xNzgtMTMuODY5LTEuNzk5LTIxLjA0LTEuNzk5CgkJCWMtNjguMTU3LDAtMTIzLjYwNiw1NS40NDktMTIzLjYwNiwxMjMuNjA2YzAsMjUuMTUxLDcuNTU4LDQ4LjU2NywyMC41MTIsNjguMTA5SDE3LjQwNkwwLDUxMC4yNzZoOTMuMjk0bDE1LjEzNS0yMC4xODFoNjMuMDY0CgkJCWwxNS4xMzUsMjAuMTgxaDEzOC43NDJsMTUuMTM1LTIwLjE4MWg2My4wNjRsMTUuMTM1LDIwLjE4MUg1MTJMNDk0LjU5NCwzOTQuMjM3eiBNNDY5LjUxOSwzNzMuNjdsLTEzLjE0Mi03LjU4OAoJCQljNC43MzYtOS45NTgsNy43Ni0yMC44ODEsOC42ODgtMzIuMzg3aDE1LjE3NUM0NzkuMjU0LDM0Ny45NDgsNDc1LjUwMywzNjEuNDUsNDY5LjUxOSwzNzMuNjd6IE00MDkuODc3LDM5NC41MzN2LTEzNi44MQoJCQljMjQuMDQ1LDEzLjM1NCw0MC4zNjEsMzkuMDA1LDQwLjM2MSw2OC40MDVTNDMzLjkyMiwzODEuMTc4LDQwOS44NzcsMzk0LjUzM3ogTTQxOS41ODEsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMNDE5LjU4MSw0MjMuNjA4eiBNNDQ4Ljc4NywzNzkuMTc2CgkJCWwxMy4xNDgsNy41OTFjLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzQzNC4zMzYsMzk2LjQ2NCw0NDIuMzc1LDM4OC40MjUsNDQ4Ljc4NywzNzkuMTc2egoJCQkgTTQ4MC4yNDEsMzE4LjU2aC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEM0NzUuNTAzLDI5MC44MDUsNDc5LjI1NCwzMDQuMzA3LDQ4MC4yNDEsMzE4LjU2egoJCQkgTTQzMi42NzgsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTkKCQkJTDQzMi42NzgsMjM2LjIzMXogTTQxMS45OTQsMjQxLjc4OWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4di0xNS4xNzZjMTQuMjUyLDAuOTg3LDI3Ljc1NCw0LjczOCwzOS45NzQsMTAuNzIyCgkJCUw0MTEuOTk0LDI0MS43ODl6IE0zOTQuNzQyLDI1MS4zdjE0OS42NTVjLTcuMTg5LDIuMTg2LTE0LjgxLDMuMzcyLTIyLjcwMywzLjM3MmMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zCgkJCWM3LjE4OS0yLjE4NiwxNC44MS0zLjM3MiwyMi43MDMtMy4zNzJDMzc5LjkzMiwyNDcuOTI4LDM4Ny41NTIsMjQ5LjExNCwzOTQuNzQyLDI1MS4zeiBNMTc3LjgsMzk0LjUzM3YtMTM2LjgxCgkJCWMyNC4wNDUsMTMuMzU0LDQwLjM2MSwzOS4wMDUsNDAuMzYxLDY4LjQwNVMyMDEuODQ1LDM4MS4xNzgsMTc3LjgsMzk0LjUzM3ogTTE4Ny41MDQsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMMTg3LjUwNCw0MjMuNjA4eiBNMjgyLjE0MiwyNjUuNDg4CgkJCWM3Ljc5NC0xMS41MTcsMTcuNzQtMjEuNDYzLDI5LjI1Ni0yOS4yNTZsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OUwyODIuMTQyLDI2NS40ODh6IE0yODcuNywyODYuMTczCgkJCWMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3aC0xNS4xNzVjMC45ODctMTQuMjUzLDQuNzM3LTI3Ljc1NCwxMC43MjItMzkuOTc1TDI4Ny43LDI4Ni4xNzN6IE0zMTYuNjQsMjE1LjIyNwoJCQlsLTcuNTkxLTEzLjE0OGM5LjI0OS02LjQxMiwxNy4yODctMTQuNDUsMjMuNjk5LTIzLjY5OWwxMy4xNDgsNy41OTFDMzM4LjEwMywxOTcuNDg3LDMyOC4xNTcsMjA3LjQzMywzMTYuNjQsMjE1LjIyN3oKCQkJIE0yOTMuODM5LDE5My43MzZWNTYuOTI1QzMxNy44ODQsNzAuMjgsMzM0LjIsOTUuOTMsMzM0LjIsMTI1LjMzMVMzMTcuODg0LDE4MC4zODEsMjkzLjgzOSwxOTMuNzM2eiBNMjk1Ljk1NSwyMDkuNjY5CgkJCWw3LjU4NywxMy4xNDJjLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVDMjc1LjA3NCwyMTcuNDMsMjg1Ljk5NiwyMTQuNDA3LDI5NS45NTUsMjA5LjY2OXogTTI3Ny4wNCwyNDcuMTM4CgkJCWMtOC45NTEsMTAuNzQ3LTE2LjExOSwyMy4wMjgtMjEuMDQsMzYuMzg5Yy00LjkyMS0xMy4zNjEtMTIuMDg5LTI1LjY0MS0yMS4wNC0zNi4zODljNi44NCwxLjE3OCwxMy44NjksMS43OTksMjEuMDQsMS43OTkKCQkJQzI2My4xNzEsMjQ4LjkzNywyNzAuMiwyNDguMzE1LDI3Ny4wNCwyNDcuMTM4eiBNMjQ4LjE2NCwzMTguNTZoLTE1LjE3NWMtMC45MjctMTEuNTA2LTMuOTUxLTIyLjQyOS04LjY4OC0zMi4zODdsMTMuMTQyLTcuNTg4CgkJCUMyNDMuNDI2LDI5MC44MDUsMjQ3LjE3NywzMDQuMzA3LDI0OC4xNjQsMzE4LjU2eiBNMjQ4LjQzMSwyMzMuNTMzYy0xNC4yNTItMC45ODctMjcuNzU0LTQuNzM4LTM5Ljk3NC0xMC43MjJsNy41ODctMTMuMTQyCgkJCWM5Ljk1OCw0LjczNiwyMC44ODEsNy43NiwzMi4zODcsOC42ODhWMjMzLjUzM3ogTTIxOC4xNjEsMTkzLjczNmMtMjQuMDQ1LTEzLjM1NC00MC4zNjEtMzkuMDA1LTQwLjM2MS02OC40MDUKCQkJYzAtMjkuNCwxNi4zMTYtNTUuMDUxLDQwLjM2MS02OC40MDVWMTkzLjczNnogTTE3OS4yNTEsMTc4LjM3OWM2LjQxMiw5LjI0OSwxNC40NSwxNy4yODcsMjMuNjk5LDIzLjY5OWwtNy41OTEsMTMuMTQ4CgkJCWMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDE3OS4yNTEsMTc4LjM3OXogTTIwMC42MDEsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTYKCQkJbC0xMy4xNDgsNy41OTFjLTYuNDEyLTkuMjQ5LTE0LjQ1LTE3LjI4Ny0yMy42OTktMjMuNjk5TDIwMC42MDEsMjM2LjIzMXogTTIxNi43MSwzNzkuMTc2bDEzLjE0OCw3LjU5MQoJCQljLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzIwMi4yNTksMzk2LjQ2NCwyMTAuMjk4LDM4OC40MjUsMjE2LjcxLDM3OS4xNzZ6IE0yMjQuMywzNjYuMDgyCgkJCWM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1Yy0wLjk4NywxNC4yNTMtNC43MzcsMjcuNzU0LTEwLjcyMiwzOS45NzVMMjI0LjMsMzY2LjA4MnogTTI1NiwzNjguNzI5CgkJCWMzLjMzMiw5LjA0NSw3LjY5NywxNy41OTMsMTIuOTQ0LDI1LjUwOGgtMjUuODg4QzI0OC4zMDMsMzg2LjMyMSwyNTIuNjY4LDM3Ny43NzQsMjU2LDM2OC43Mjl6IE0yNjMuODM2LDMzMy42OTVoMTUuMTc1CgkJCWMwLjkyNywxMS41MDYsMy45NTEsMjIuNDI5LDguNjg4LDMyLjM4N2wtMTMuMTQyLDcuNTg4QzI2OC41NzQsMzYxLjQ1LDI2NC44MjMsMzQ3Ljk0OCwyNjMuODM2LDMzMy42OTV6IE0yOTUuMjksMzc5LjE3NgoJCQljNi40MTIsOS4yNDksMTQuNDUsMTcuMjg3LDIzLjY5OSwyMy42OTlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDI5NS4yOSwzNzkuMTc2egoJCQkgTTI5My44MzksMzI2LjEyOGMwLTI5LjQsMTYuMzE2LTU1LjA1MSw0MC4zNjEtNjguNDA1djEzNi44MUMzMTAuMTU1LDM4MS4xNzgsMjkzLjgzOSwzNTUuNTI4LDI5My44MzksMzI2LjEyOHogTTMzMi4wODQsNDEwLjQ2NgoJCQljOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDMzMi4wODQsNDEwLjQ2NnogTTM2NC40NzEsMjE3LjkyNVYyMzMuMQoJCQljLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMzM2LjcxNiwyMjIuNjYzLDM1MC4yMTgsMjE4LjkxMiwzNjQuNDcxLDIxNy45MjV6IE0zNTMuNDgsMTcyLjg3MwoJCQlsLTEzLjE0Mi03LjU4OGM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1QzM2My4yMTYsMTQ3LjE1MSwzNTkuNDY1LDE2MC42NTMsMzUzLjQ4LDE3Mi44NzN6IE0zNjQuMjAyLDExNy43NjMKCQkJaC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEMzNTkuNDY1LDkwLjAwOCwzNjMuMjE2LDEwMy41MSwzNjQuMjAyLDExNy43NjN6IE0zMTYuNjQsMzUuNDM0CgkJCWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTlMMzE2LjY0LDM1LjQzNHogTTI5NS45NTYsNDAuOTkyCgkJCWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4VjE3LjEyOGMxNC4yNTIsMC45ODcsMjcuNzU0LDQuNzM4LDM5Ljk3NCwxMC43MjJMMjk1Ljk1Niw0MC45OTJ6IE0yNzguNzAzLDUwLjUwM3YxNDkuNjU1CgkJCWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyYy03Ljg5NCwwLTE1LjUxNC0xLjE4Ny0yMi43MDMtMy4zNzJWNTAuNTAzYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MgoJCQlDMjYzLjg5NCw0Ny4xMzEsMjcxLjUxNCw0OC4zMTcsMjc4LjcwMyw1MC41MDN6IE0yNDguNDMyLDE3LjEyOHYxNS4xNzVjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDIKCQkJQzIyMC42NzgsMjEuODY2LDIzNC4xOCwxOC4xMTUsMjQ4LjQzMiwxNy4xMjh6IE0xOTUuMzYsMzUuNDM0bDcuNTkxLDEzLjE0OGMtOS4yNDksNi40MTItMTcuMjg3LDE0LjQ1LTIzLjY5OSwyMy42OTkKCQkJbC0xMy4xNDgtNy41OTFDMTczLjg5Nyw1My4xNzQsMTgzLjg0Myw0My4yMjgsMTk1LjM2LDM1LjQzNHogTTE1OC41Miw3Ny43ODhsMTMuMTQyLDcuNTg4Yy00LjczNiw5Ljk1OC03Ljc2LDIwLjg4MS04LjY4OCwzMi4zODcKCQkJaC0xNS4xNzVDMTQ4Ljc4NSwxMDMuNTEsMTUyLjUzNSw5MC4wMDgsMTU4LjUyLDc3Ljc4OHogTTE1OC41MiwxNzIuODczYy01Ljk4NC0xMi4yMi05LjczNS0yNS43MjItMTAuNzIyLTM5Ljk3NWgxNS4xNzUKCQkJYzAuOTI3LDExLjUwNiwzLjk1MSwyMi40MjksOC42ODgsMzIuMzg3TDE1OC41MiwxNzIuODczeiBNMTg3LjUwNCwyMjguNjQ3bC03LjU4NywxMy4xNDJjLTkuOTU4LTQuNzM2LTIwLjg4MS03Ljc2LTMyLjM4Ny04LjY4OAoJCQl2LTE1LjE3NkMxNjEuNzgyLDIxOC45MTIsMTc1LjI4NCwyMjIuNjY0LDE4Ny41MDQsMjI4LjY0N3ogTTE2Mi42NjUsMjUxLjN2MTQ5LjY1NWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyCgkJCWMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MkMxNDcuODU1LDI0Ny45MjgsMTU1LjQ3NSwyNDkuMTE0LDE2Mi42NjUsMjUxLjN6CgkJCSBNNjEuNzYyLDMyNi4xMjhjMC0yOS40LDE2LjMxNi01NS4wNTEsNDAuMzYxLTY4LjQwNXYxMzYuODFDNzguMDc4LDM4MS4xNzgsNjEuNzYyLDM1NS41MjgsNjEuNzYyLDMyNi4xMjh6IE04Ni45MTMsNDAyLjg3NgoJCQlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2bDEzLjE0OC03LjU5MUM2OS42MjUsMzg4LjQyNSw3Ny42NjQsMzk2LjQ2NCw4Ni45MTMsNDAyLjg3NnoKCQkJIE0xMDAuMDA3LDQxMC40NjZjOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDEwMC4wMDcsNDEwLjQ2NnoKCQkJIE0xMzIuMzk0LDIxNy45MjVWMjMzLjFjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMTA0LjYzOSwyMjIuNjYzLDExOC4xNDEsMjE4LjkxMiwxMzIuMzk0LDIxNy45MjUKCQkJeiBNNzkuMzIyLDIzNi4yMzFsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OWwtMTMuMTQ4LTcuNTkxCgkJCUM1Ny44NTksMjUzLjk3MSw2Ny44MDUsMjQ0LjAyNSw3OS4zMjIsMjM2LjIzMXogTTQyLjQ4MSwyNzguNTg1bDEzLjE0Miw3LjU4OGMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3SDMxLjc1OQoJCQlDMzIuNzQ2LDMwNC4zMDcsMzYuNDk3LDI5MC44MDUsNDIuNDgxLDI3OC41ODV6IE0zMS43NTksMzMzLjY5NWgxNS4xNzVjMC45MjcsMTEuNTA2LDMuOTUxLDIyLjQyOSw4LjY4OCwzMi4zODdMNDIuNDgsMzczLjY3CgkJCUMzNi40OTcsMzYxLjQ1LDMyLjc0NiwzNDcuOTQ4LDMxLjc1OSwzMzMuNjk1eiBNNDI2LjI3NCw0OTUuMTRsLTE1LjEzNS0yMC4xODFoLTc4LjJsLTE1LjEzNSwyMC4xODFIMTk0LjE5N2wtMTUuMTM1LTIwLjE4MQoJCQloLTc4LjJMODUuNzI2LDQ5NS4xNEgxNy41NzVsMTIuODY1LTg1Ljc2OGgxOC4yM2MyMi42MiwyNC43ODYsNTUuMTcxLDQwLjM2MSw5MS4yOTEsNDAuMzYxczY4LjY3MS0xNS41NzUsOTEuMjkxLTQwLjM2MWg0OS40OTQKCQkJYzIyLjYyLDI0Ljc4Niw1NS4xNzEsNDAuMzYxLDkxLjI5MSw0MC4zNjFzNjguNjcxLTE1LjU3NSw5MS4yOTEtNDAuMzYxaDE4LjIzbDEyLjg2NSw4NS43NjhINDI2LjI3NHoiLz4KICAgICAgICA8cmVjdCB4PSIzMDUuOTQ4IiB5PSIxMTYuNzU1IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjE5MC45MTkiIHk9IjExNi43NTUiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTExLjIwNSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyNDguNDMzIiB5PSI2NS43OTkiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMzAuMjcxIi8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTcxLjc0NyIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSI0MjEuOTg2IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjMwNi45NTciIHk9IjMxNy41NTIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzY0LjQ3MiIgeT0iMzEyLjAwMiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIzNjQuNDcyIiB5PSIyNjYuNTk2IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjMwLjI3MSIvPgogICAgICAgIDxyZWN0IHg9IjM2NC40NzIiIHk9IjM3Mi41NDQiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTg5LjkxIiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9Ijc0Ljg4IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjEzMi4zOTUiIHk9IjMxMi4wMDIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTMyLjM5NSIgeT0iMjY2LjU5NiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIzMC4yNzEiLz4KICAgICAgICA8cmVjdCB4PSIxMzIuMzk1IiB5PSIzNzIuNTQ0IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ2MS4zODciIHk9IjQ3MC44ODEiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTg4OSAtMC4xNDgzIDAuMTQ4MyAwLjk4ODkgLTY1Ljc3MiA3NC44NDExKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ1Ni4yMSIgeT0iNDMxLjkzNSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODg5IC0wLjE0ODMgMC4xNDgzIDAuOTg4OSAtNjAuNzE5OSA3My42OTAzKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjI0LjE0NSIvPgogICAgICAgIDxyZWN0IHg9IjI0OC40MzMiIHk9IjQ2NC44NyIgd2lkdGg9IjQ1LjQwNiIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMTguMTYyIiB5PSI0NjQuODciIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjYzLjU2OSIgeT0iNDI0LjUwOSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMzMuMjk4IiB5PSI0MjQuNTA5IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjM2LjEyNyIgeT0iNDM2LjQ2MSIgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNDgzIC0wLjk4ODkgMC45ODg5IDAuMTQ4MyAtMzk4LjA2NzUgNDI1Ljg0MjcpIgogICAgICAgICAgICAgIHdpZHRoPSIyNC4xNDUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzUuNDY4IiB5PSI0NzAuODYiIHRyYW5zZm9ybT0ibWF0cml4KDAuMTQ4MyAtMC45ODg5IDAuOTg4OSAwLjE0ODMgLTQzNi40ODM4IDQ1MC4wMzI1KSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgPC9nPgo8L3N2Zz4K",jxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik02MSwyMUgzYTEsMSwwLDAsMCwwLDJINjFhMSwxLDAsMCwwLDAtMloiLz4KICAgICAgICA8cGF0aCBkPSJNNjEsMkg0OWExLDEsMCwwLDAtMSwxVjE3SDQ2di0uNzY0YTEwLjUzMywxMC41MzMsMCwwLDAtMS4xLTQuNjgzQTguNTIyLDguNTIyLDAsMCwxLDQ0LDcuNzY0VjNhMSwxLDAsMCwwLTEtMUgzOWExLDEsMCwwLDAtMSwxVjcuNzY0YTguNTIyLDguNTIyLDAsMCwxLS45LDMuNzg5Yy0uMDM5LjA4LS4wNjcuMTY1LS4xLjI0Ni0uMDM4LS4wODEtLjA2Ni0uMTY2LS4xLS4yNDZBOC41MjIsOC41MjIsMCwwLDEsMzYsNy43NjRWM2ExLDEsMCwwLDAtMS0xSDMxYTEsMSwwLDAsMC0xLDFWNy43NjRhOC41MjIsOC41MjIsMCwwLDEtLjg5NSwzLjc4OUExMC41MzMsMTAuNTMzLDAsMCwwLDI4LDE2LjIzNlYxN0gxOFYxMC40MTRhMi4zOTQsMi4zOTQsMCwwLDEsLjcwNy0xLjcwNkE0LjM4NSw0LjM4NSwwLDAsMCwyMCw1LjU4NlY0aDJWNS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMjQsMTAuNDE0VjE0YTEsMSwwLDAsMCwyLDBWMTAuNDE0YTQuMzg1LDQuMzg1LDAsMCwwLTEuMjkzLTMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDI0LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxOWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC41MTUsNC41MTUsMCwwLDAsMTcsNy42NDlhNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDE2LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxMWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC4zODUsNC4zODUsMCwwLDAsOCwxMC40MTRWMTdIM2ExLDEsMCwwLDAsMCwySDYxYTEsMSwwLDAsMCwwLTJINTBWMTRINjBhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw2MSwyWk00Miw0VjdINDBWNFpNMTAuNzA3LDguNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDEyLDUuNTg2VjRoMlY1LjU4NmE0LjM4NSw0LjM4NSwwLDAsMCwxLjI5MywzLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwxNiwxMC40MTRWMTJIMTBWMTAuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDEwLjcwNyw4LjcwOFpNMTAsMTRoNnYzSDEwWm0yMCwyLjIzNmE4LjUyMiw4LjUyMiwwLDAsMSwuODk1LTMuNzg5QTEwLjUzMywxMC41MzMsMCwwLDAsMzIsNy43NjRWNGgyVjcuNzY0YTEwLjUzMywxMC41MzMsMCwwLDAsMS4xLDQuNjgzLDguNTIyLDguNTIyLDAsMCwxLC45LDMuNzg5VjE3SDMwWk0zOCwxN3YtLjc2NGE4LjUyMiw4LjUyMiwwLDAsMSwuOS0zLjc4OUExMC41NDEsMTAuNTQxLDAsMCwwLDM5LjkyNCw5aDIuMTUyYTEwLjU0MSwxMC41NDEsMCwwLDAsMS4wMjksMy40NDcsOC41MjIsOC41MjIsMCwwLDEsLjksMy43ODlWMTdaTTYwLDRWNkg1MFY0Wk01MCwxMlY4SDYwdjRaIi8+CiAgICAgICAgPHBhdGggZD0iTTYxLDQ0SDNhMSwxLDAsMCwwLDAsMkg2MFY2MEg0NlY0OWExLDEsMCwwLDAtMiwwVjYwSDQyVjUzYTEsMSwwLDAsMC0xLTFIMjZhMSwxLDAsMCwwLTEsMXY3SDIyVjQ5YTEsMSwwLDAsMC0xLTFINWExLDEsMCwwLDAtMSwxVjYwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsMS0xVjQ1QTEsMSwwLDAsMCw2MSw0NFpNNDAsNTZIMzdWNTRoM1ptLTUsMEgzMlY1NGgzWm0tNS0ydjJIMjdWNTRaTTIwLDUyLjM4MmEzLjk0NywzLjk0NywwLDAsMC02LDBWNTBoNlpNMTksNTVhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTksNTVaTTYsNTRoNnYySDZabTYtNHYySDZWNTBaTTYsNThoNnYySDZabTgsMlY1Ny42MThhMy45NDcsMy45NDcsMCwwLDAsNiwwVjYwWm0xMy0yaDN2MkgyN1ptNSwwaDN2MkgzMlptNSwyVjU4aDN2MloiLz4KICAgICAgICA8cGF0aCBkPSJNNTcsNTZhMSwxLDAsMCwwLDEtMVY1MWExLDEsMCwwLDAtMS0xSDQ5YTEsMSwwLDAsMC0xLDF2NGExLDEsMCwwLDAsMSwxWm0tNy00aDZ2Mkg1MFoiLz4KICAgICAgICA8cGF0aCBkPSJNNjAsMjkuMTg0VjI2YTEsMSwwLDAsMC0xLTFINTVhMSwxLDAsMCwwLTEsMXYzLjE4NEEzLDMsMCwwLDAsNTIsMzJ2N2EyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDlWMzRhMSwxLDAsMCwwLDAtMkg0MWExLDEsMCwwLDAsMCwydjZIMzhWMzFhMSwxLDAsMCwwLTEtMUgyNWExLDEsMCwwLDAtMSwxdjlIMjJWMzlhMSwxLDAsMCwwLTIsMHYxSDE0VjMzLjQxNGEyLjM5NCwyLjM5NCwwLDAsMSwuNzA3LTEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDE2LDI4LjU4NlYyN2gydjEuNTg2YTQuMzg1LDQuMzg1LDAsMCwwLDEuMjkzLDMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDIwLDMzLjQxNFYzNWExLDEsMCwwLDAsMiwwVjMzLjQxNGE0LjM4NSw0LjM4NSwwLDAsMC0xLjI5My0zLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwyMCwyOC41ODZWMjZhMSwxLDAsMCwwLTEtMUgxNWExLDEsMCwwLDAtMSwxdjIuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDYsNC41MTUsNC41MTUsMCwwLDAtLjI5My4zNTcsNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDEyLDI4LjU4NlYyNmExLDEsMCwwLDAtMS0xSDdhMSwxLDAsMCwwLTEsMXYyLjU4NmEyLjM5NCwyLjM5NCwwLDAsMS0uNzA3LDEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDQsMzMuNDE0VjQwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsLjctMS43MTNBMi45NjQsMi45NjQsMCwwLDAsNjIsMzlWMzJBMywzLDAsMCwwLDYwLDI5LjE4NFpNNi43MDcsMzEuNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDgsMjguNTg2VjI3aDJ2MS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMTIsMzMuNDE0VjM1SDZWMzMuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDYuNzA3LDMxLjcwOFpNNiwzN2g2djNINlpNNTYsMjdoMnYySDU2Wm0tMSw0aDRhMSwxLDAsMCwxLDEsMXYzSDU0VjMyQTEsMSwwLDAsMSw1NSwzMVpNMzYsMzZIMzJWMzJoNFptLTYtNHYySDI2VjMyWm0tNCw0aDR2NEgyNlptNiw0VjM4aDR2MlptMTEsMFYzNGg0djZabTEyLDBhMSwxLDAsMCwxLTEtMVYzN2g2djJhMSwxLDAsMCwxLTEsMVoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",yxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Txe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4yNzMgNTEyLjI3MyIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy44OTEgMjM4LjM5OWMtNi43MjMtMzUuODgxLTIxLjg1My02Ni45MDUtNDMuNzU1LTg5LjcxOC05Ljg0NS0xMC4yNTMtMjEuNDU2LTE5Ljc1LTM0LjUxNC0yOC4yMjctMTQuOTQtOS42OTktMzIuMTkyLTE4LjQzOC01NC4yOTMtMjcuNTAzLTkuNjg0LTMuOTcyLTE5LjM3NS03LjYzNy0yOC40MDYtMTEuMDA1LTE0LjY0Mi01LjQ2LTMwLjA2NC0xMC45NTgtNDUuODQzLTE2LjMzNy01LjQyNy0xLjg1MS0xMC45MjEtMy42MDYtMTYuMjM0LTUuMzAzLTguNTA1LTIuNzE3LTE3LjMtNS41MjctMjUuNzcxLTguNzIxLTUuMjI0LTEuOTctNy40MjYtMy40NjQtOC4zMjEtNC4yNTguMDQ2LS4wNTYuMDk2LS4xMTUuMTUxLS4xNzcgNC4wNDgtNC42MTUgMjcuNjAzLTIzLjEwNSA0MS41MDEtMzMuNjc3IDIuNTYyLTEuOTQ5IDMuNTk1LTUuMzE1IDIuNTY2LTguMzY1cy0zLjg4OS01LjEwNC03LjEwNy01LjEwNGwtMTU0LjA1Mi0uMDA0Yy0xLjMyMSAwLTIuNjE5LjM0OS0zLjc2MiAxLjAxMi0xNy4yODIgMTAuMDIxLTMxLjYyMyAyNS43OS0zOS4zNDYgNDMuMjYyLTguOTQ2IDIwLjI0LTkuMDE2IDQxLjQyNS0uMjAyIDYxLjI2MyAxMi4wNyAyNy4xNjcgMzcuNTY3IDQyLjIzNyA2MC4wNjMgNTUuNTMzIDUuODcgMy40NjkgMTEuNDE0IDYuNzQ2IDE2LjY1NSAxMC4xNjcgMy4wOTUgMi4wMiA2LjI3MyA0LjAwMyA5LjM0NyA1LjkyMiAxMS41NDUgNy4yMDggMjIuNDUgMTQuMDE2IDMxLjE2NyAyMy42MDQgOC45ODEgOS44NzcgMTEuNjkzIDIyLjUwMSA3Ljg0MiAzNi41MDctOC45NDggMzIuNTQ0LTM1LjU0NCA2MS43ODEtNTkuMDA5IDg3LjU3Ni00LjM0MiA0Ljc3My04LjQ0MiA5LjI4MS0xMi40MDkgMTMuNzc2LTExLjEwNyAxMi41ODctMjcuMzkzIDMwLjg5LTQ0LjYzNCA1MC4yNjctNTYuODY5IDYzLjkxNC05NC40MTUgMTA2LjIyOS05OCAxMTEuODQ2LTEuNDc0IDIuMzA5LTEuNTcxIDUuMjM4LS4yNTQgNy42NCAxLjMxNiAyLjQwMiAzLjgzOCAzLjg5NSA2LjU3NyAzLjg5NWw0NDYuMzE2LjAwM2guMDAxYzMuMjUxIDAgNi4xMzItMi4wOTQgNy4xMzUtNS4xODcgMTEuNjU5LTM1Ljk2IDIyLjIxMi03Mi4yMzIgMzUuMjgzLTEyMS4yODMgMTUuNTkxLTU4LjUxNSAxOS4xODUtMTA1LjM1NCAxMS4zMDgtMTQ3LjQwNHptLTI1LjgwMyAxNDMuNTQzYy0xMi4zNyA0Ni40Mi0yMi40NjQgODEuMzA1LTMzLjM4NSAxMTUuMzMxbC0yNi45NC0uMDAyYzEuMjg4LTMuOTQ4IDIuNTczLTcuOTAzIDMuODYxLTExLjg0MiAxMS41OC0zNS40MSAyMi44NzctNzAuOTI1IDMyLjUwNC0xMDYuODg4IDEuNTM1LTUuNzQgMy4xMjItMTEuNjc0IDQuNjctMTcuNjQ1IDEuMDQtNC4wMDktMS4zNjgtOC4xMDMtNS4zNzgtOS4xNDItNC4wMDktMS4wMzgtOC4xMDIgMS4zNjktOS4xNDIgNS4zNzgtMS41MzMgNS45MTQtMy4xMTMgMTEuODItNC42NDEgMTcuNTMxLTkuNDM5IDM1LjI3NS0yMC43OTcgNzEuMDI1LTMyLjI3IDEwNi4xMDQtMS43OTcgNS40OTMtMy41OTUgMTAuOTkyLTUuMzg5IDE2LjUwNGgtMTU3Ljk3OGMtLjQzMi0xLjg1OC0xLjU2Ny0zLjU1My0zLjMwOS00LjY0OS0zLjUwNC0yLjIwNi04LjEzNi0xLjE1Mi0xMC4zNDIgMi4zNTMtLjQ5NS43ODYtLjk3MyAxLjU0Mi0xLjQ0OSAyLjI5NmgtMTU2LjIzNGMyNC40NzMtMzAuNTUxIDkxLjg5Ny0xMTIuMDczIDEyNC4yMzgtMTQ4LjcyNCAxNy4yNC0xOS41MzcgMzEuMzY4LTM4LjcyNiA0MS45OTQtNTcuMDMzIDE3LjU5OC0zMC4zMTkgMjQuNTY3LTU2Ljc2NSAyMC43MTYtNzguNjAxLTguMjczLTQ2LjkwOS00NS4xMjctNjUuNzY0LTc3LjY0My04Mi4zOTgtMy40MzktMS43NTktNi45OTUtMy41NzktMTAuNDA3LTUuMzc1bC0uNjA5LS4zMjFjLTMuNjYzLTEuOTMzLTguMi0uNTMtMTAuMTMzIDMuMTMzcy0uNTMgOC4yIDMuMTMzIDEwLjEzM2wuNjE2LjMyNWMzLjQ5NiAxLjg0IDcuMDkxIDMuNjggMTAuNTY4IDUuNDU4IDMyLjI1NyAxNi41MDIgNjIuNzI2IDMyLjA5IDY5LjcwMyA3MS42NSAzLjIyIDE4LjI1Ni0zLjE0NSA0MS4yOTEtMTguOTE3IDY4LjQ2Ni05Ljk4OSAxNy4yMS0yMy45MTQgMzYuMTA0LTQwLjI2OCA1NC42MzgtMzUuMjg2IDM5Ljk4OC0xMTYuMDk4IDEzNy44MzgtMTMyLjA1NiAxNTguNjQ4aC0zMy44NWMxNy44ODItMjAuNzUzIDU2Ljc0NC02NC40MjggODYuOTgxLTk4LjQxMSAxNy4yNTItMTkuMzg5IDMzLjU0Ny0zNy43MDIgNDQuNjc1LTUwLjMxMyAzLjg5Mi00LjQxIDcuOTU2LTguODc4IDEyLjI1OC0xMy42MDcgMjQuNTk3LTI3LjA0IDUyLjQ3Ni01Ny42ODggNjIuMzc1LTkzLjY5MyA1LjIwNy0xOC45MzkgMS4yMjctMzYuOS0xMS4yMDctNTAuNTc1LTE2LjQyMy0xOC4wNjItMzkuODYzLTMwLjIzNy02MC42MzUtNDIuNTE0LTIxLjU2NS0xMi43NDYtNDMuODY0LTI1LjkyNi01My45ODctNDguNzEtMTUuMDIzLTMzLjgxNSA0LjM2Ni02Ny43MTggMzEuNjY3LTg0LjQ0N2gxMy42MzljLTIwLjU1NyAxNS4wNzQtMzIuNTY4IDMwLjMwNS0zNi40OTQgNDYuMTk1LTMuMTgzIDEyLjg4Mi0uODEzIDI1Ljc1NiA3LjA0NSAzOC4yNjUgNC4zMjQgNi44ODMgOS45MDQgMTMuMTEyIDE3LjA1OCAxOS4wNDIgMy4xODggMi42NDMgNy45MTYgMi4yMDEgMTAuNTYxLS45ODggMi42NDMtMy4xODkgMi4yMDEtNy45MTctLjk4OC0xMC41NjEtNS45MDktNC44OTgtMTAuNDY1LTkuOTU5LTEzLjkyOS0xNS40NzItNS42ODgtOS4wNTYtNy4zODQtMTcuNzg2LTUuMTg1LTI2LjY4OCAzLjk3OS0xNi4xMDMgMjAuNTY4LTMyLjg1MSA0OS4zMTQtNDkuNzkzaDUwLjcxNWMtMTMuMzA2IDEwLjQ3OS0yOC4xMDUgMjQuNzc1LTI0LjA5NSA0Mi4zNTMgMy45NzkgMTcuNDQxIDI0LjE3NyAyNy4xNzkgMzkuMTc4IDMzLjQ3MiAxOS41NTggOC4yMDUgMzkuODM1IDE0LjcyIDU5LjQ0NSAyMS4wMjEgMzIuMDg4IDEwLjMxIDY1LjI2OSAyMC45NzEgOTUuMDAzIDM5LjEzNyAzMy45MzQgMjAuNzMxIDU1LjUxOCA1MS4xNTggNjIuNDIgODcuOTg5IDQuNDc4IDIzLjg5NiAzLjQyNiA1MC42MzQtMy4zMTEgODQuMTUybC0uMTA3LjUzNmMtLjgxNCA0LjA2MiAxLjgxOCA4LjAxNCA1Ljg4IDguODI4LjQ5OC4xLjk5My4xNDcgMS40ODEuMTQ3IDMuNTAxIDAgNi42MzItMi40NjQgNy4zNDYtNi4wMjhsLjEwNi0uNTMyYzcuMTI4LTM1LjQ2MiA4LjE5MS02NC4wMTggMy4zNDktODkuODY3LTcuNzA3LTQxLjEyMy0zMS42ODYtNzUuMDItNjkuMzQ0LTk4LjAyNi0zMS4yNjItMTkuMDk5LTY1LjMwOS0zMC4wMzktOTguMjM0LTQwLjYxOC0xOS4zMDctNi4yMDMtMzkuMjcxLTEyLjYxOC01OC4yMy0yMC41NzItNS43ODctMi40MjktMTAuNzEyLTQuOTEyLTE1LjA1Ny03LjU5LTUuNDY0LTMuMzY4LTEzLjcyMS04LjQ1Ny0xNS4zMDItMTUuMzg4LTIuNTc5LTExLjMwOSAxNC4zMy0yMy45OTggMjUuNTItMzIuMzk1IDMuMjE2LTIuNDE0IDYuMTA2LTQuNTg1IDguNDczLTYuNjE3IDAgMCAxMy43ODkgMCAxMy43ODcuMDAyLTkuODkyIDcuNzg2LTM0LjE1NiAxOS43MzMtMzAuMTc0IDM1LjY1MyAxLjk5OCA3Ljk4NiAxMC42ODggMTIuMTkxIDE4LjAzNSAxNC45NjIgMTMuOTgxIDUuMjcyIDI4LjMyNCA5LjM2NyA0Mi40NTYgMTQuMTg2IDE1LjY0NCA1LjMzNSAzMC45MzMgMTAuNzgzIDQ1LjQ0MiAxNi4xOTUgOC45MTMgMy4zMjUgMTguNDcgNi45MzggMjcuOTU3IDEwLjgyOSAyMS4yMTQgOC43MDEgMzcuNjc5IDE3LjAyOCA1MS44MTYgMjYuMjA2IDEyLjA5NCA3Ljg1MiAyMi44MTMgMTYuNjExIDMxLjg2MSAyNi4wMzUgMTkuODc1IDIwLjcwMSAzMy42NDggNDkuMDg4IDM5LjgzMSA4Mi4wOTEgNy40NTEgMzkuNzcxIDMuOTM3IDg0LjUwNS0xMS4wNTggMTQwLjc4MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ0LjM2NSAxOTkuNDA3YzEuNDYxIDIuMDczIDMuNzggMy4xOCA2LjEzOCAzLjE4IDEuNDkyIDAgMy0uNDQ0IDQuMzEzLTEuMzcgMy4zODYtMi4zODYgNC4xOTYtNy4wNjUgMS44MTEtMTAuNDUxLTQuMTA5LTUuODMxLTguODExLTExLjI5My0xMy45NzMtMTYuMjMzLTIuOTkzLTIuODY1LTcuNzQxLTIuNzYtMTAuNjA0LjIzMi0yLjg2NCAyLjk5My0yLjc2MSA3Ljc0LjIzMiAxMC42MDQgNC40NjUgNC4yNzQgOC41MzEgOC45OTcgMTIuMDgzIDE0LjAzOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU1LjA4MyAxMjIuNTE4LS40NzMtLjI0NmMtNS43NzYtMi45OTMtMTEuNTQ1LTUuOTgzLTE3LjMzNC04Ljk0NS0zLjY4NC0xLjg4My04LjIwNi0uNDI2LTEwLjA5MyAzLjI2Mi0xLjg4NiAzLjY4OC0uNDI2IDguMjA2IDMuMjYyIDEwLjA5MyA1Ljc2NSAyLjk0OSAxMS41MTEgNS45MjcgMTcuMjYzIDguOTA4bC40NzMuMjQ1YzEuMTA0LjU3MiAyLjI4My44NDMgMy40NDUuODQzIDIuNzEyIDAgNS4zMzEtMS40NzYgNi42NjUtNC4wNSAxLjkwNi0zLjY3OC40Ny04LjIwNC0zLjIwOC0xMC4xMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc5LjY4MyA1Ny41ODRjMS43NDQtNS41MSA0LjcxOS0xMC4xOTYgOC4xNjMtMTIuODU2IDMuMjc4LTIuNTMyIDMuODgyLTcuMjQyIDEuMzUxLTEwLjUyLTIuNTM0LTMuMjc5LTcuMjQ0LTMuODgyLTEwLjUyMS0xLjM1MS01Ljg4OSA0LjU0OS0xMC42MSAxMS43MjQtMTMuMjkzIDIwLjIwMS0xLjI1IDMuOTQ5LjkzOCA4LjE2NCA0Ljg4NyA5LjQxNC43NTMuMjM4IDEuNTE1LjM1MiAyLjI2NS4zNTIgMy4xODItLjAwMSA2LjEzNi0yLjA0MyA3LjE0OC01LjI0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDEuMTM2IDk1LjkwM2MtNi43NTEtMy4zMTQtMTEuNDI0LTYuMjY4LTE1LjE1Mi05LjU3Ni0zLjA5OC0yLjc1LTcuODM4LTIuNDY2LTEwLjU4OC42MzEtMi43NSAzLjA5OC0yLjQ2NyA3LjgzOC42MzEgMTAuNTg4IDQuNzc5IDQuMjQyIDEwLjQ4NCA3Ljg4OCAxOC40OTkgMTEuODIyIDEuMDYzLjUyMiAyLjE5Ljc2OSAzLjMuNzY5IDIuNzcgMCA1LjQzNS0xLjU0MiA2LjczOC00LjE5NiAxLjgyNS0zLjcxOC4yOS04LjIxMi0zLjQyOC0xMC4wMzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3NS44NTUgNDQxLjI3NmMtMy41NTMtMi4xMjYtOC4xNTktLjk3Mi0xMC4yODcgMi41ODMtMy40OTQgNS44MzUtNi45NDkgMTEuNTc2LTEwLjMwNiAxNy4xMjItMi4xNDUgMy41NDMtMS4wMTEgOC4xNTUgMi41MzMgMTAuMjk5IDEuMjE1LjczNSAyLjU1NCAxLjA4NSAzLjg3NyAxLjA4NSAyLjUzNyAwIDUuMDE0LTEuMjg4IDYuNDIzLTMuNjE4IDMuMzY4LTUuNTY1IDYuODM3LTExLjMyNyAxMC4zNDMtMTcuMTgzIDIuMTI3LTMuNTU0Ljk3MS04LjE2LTIuNTgzLTEwLjI4OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzY0Ljg2NCAyMjQuMTUyYy00LjA2Ny43ODYtNi43MjcgNC43Mi01Ljk0IDguNzg3LjkxIDQuNzEzIDEuMzcyIDkuNDY4IDEuMzcyIDE0LjEzMiAwIC4zNTgtLjAwMy43MTYtLjAwOSAxLjA5LS4wMTUuOTc2LS4wNDQgMS45NDctLjA4NyAyLjkxNS0uMTg3IDQuMTM4IDMuMDE4IDcuNjQzIDcuMTU1IDcuODI5LjExNS4wMDUuMjI5LjAwOC4zNDMuMDA4IDMuOTg2IDAgNy4zMDYtMy4xNCA3LjQ4Ni03LjE2My4wNTEtMS4xMTcuMDg0LTIuMjM5LjEwMS0zLjM1LjAwOC0uNDQzLjAxMS0uODg3LjAxMS0xLjMzIDAtNS42MTctLjU1NC0xMS4zMy0xLjY0NS0xNi45NzgtLjc4Ny00LjA2Ny00LjcyOC02LjcyNS04Ljc4Ny01Ljk0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDYuMjU0IDM4OS40ODFjLTMuNTgyLTIuMDczLTguMTcyLS44NTMtMTAuMjQ5IDIuNzMxLTMuMjMyIDUuNTgyLTYuNjA2IDExLjM3LTEwLjA2MiAxNy4yNjEtMi4wOTYgMy41NzMtLjg5NyA4LjE2OCAyLjY3NiAxMC4yNjQgMS4xOTIuNjk5IDIuNDk4IDEuMDMxIDMuNzg3IDEuMDMxIDIuNTc0IDAgNS4wOC0xLjMyNiA2LjQ3Ny0zLjcwNyAzLjQ2OS01LjkxNSA2Ljg1Ni0xMS43MjggMTAuMTAzLTE3LjMzMiAyLjA3Ni0zLjU4My44NTItOC4xNzEtMi43MzItMTAuMjQ4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjEuOTI5IDI4My4zMTRjLTMuODgzLTEuNDQ2LTguMjAxLjUzLTkuNjQ2IDQuNDEzLTIuMDkxIDUuNjE5LTQuNTkyIDExLjQwNC03LjY0NiAxNy42ODYtMS44MTEgMy43MjUtLjI1OSA4LjIxMyAzLjQ2NiAxMC4wMjQgMS4wNTcuNTE0IDIuMTc0Ljc1NiAzLjI3My43NTYgMi43ODEgMCA1LjQ1NC0xLjU1MyA2Ljc1MS00LjIyMyAzLjI2Ni02LjcxOCA1Ljk1Mi0xMi45MzcgOC4yMTQtMTkuMDExIDEuNDQ1LTMuODgyLS41My04LjItNC40MTItOS42NDV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzNS45MiAzMzcuMjc1Yy0zLjU4NS0yLjA3NS04LjE3My0uODUyLTEwLjI0OSAyLjczMy0zLjEwOSA1LjM3Mi02LjYzNCAxMS40Ni05Ljk3NSAxNy41MTctMiAzLjYyNy0uNjgyIDguMTg5IDIuOTQ1IDEwLjE5IDEuMTQ4LjYzMyAyLjM5MS45MzQgMy42MTUuOTM0IDIuNjQ0IDAgNS4yMDctMS40MDEgNi41NzQtMy44NzkgMy4yNjYtNS45MiA2Ljc0OS0xMS45MzggOS44MjItMTcuMjQ3IDIuMDc3LTMuNTg1Ljg1Mi04LjE3Mi0yLjczMi0xMC4yNDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwOC4wMDEgMTUxLjQwMmMtMy4yMTgtMS44MzgtNi40NzQtMy43NjMtOS42MjEtNS42MjQtMi41MzEtMS40OTYtNS4wNTktMi45OS03LjYtNC40NjEtMy41ODYtMi4wNzUtOC4xNzQtLjg1Mi0xMC4yNDggMi43MzMtMi4wNzYgMy41ODQtLjg1MyA4LjE3MyAyLjczMiAxMC4yNDkgMi41MDEgMS40NDggNC45OSAyLjkxOSA3LjQ4MiA0LjM5MyAzLjE5NCAxLjg4OCA2LjQ5OCAzLjg0MSA5LjgxMyA1LjczNSAxLjE3NC42NyAyLjQ1Mi45ODkgMy43MTQuOTg5IDIuNjA0IDAgNS4xMzUtMS4zNTggNi41MTktMy43ODEgMi4wNTYtMy41OTcuODA2LTguMTc4LTIuNzkxLTEwLjIzM3oiLz4KICAgIDwvZz4KPC9zdmc+",dxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxODguNjMyIiB5PSIyNTYiIHdpZHRoPSIzNS45MyIgaGVpZ2h0PSIxNy45NjUiLz4KICAgICAgICA8cGF0aCBkPSJNNDQxLjkxNyw0NzEuNTc5bDE2LjAzOS04OC4yMTljMC40ODItMi42MjMtMC4yMjgtNS4zMTYtMS45MzktNy4zNmMtMS43MDItMi4wNDQtNC4yMjgtMy4yMjgtNi44OTUtMy4yMjhoLTg5LjgyNQoJCQljLTIuNjY3LDAtNS4xOTMsMS4xODQtNi44OTUsMy4yMjhjLTEuNzExLDIuMDQ0LTIuNDIxLDQuNzM3LTEuOTM5LDcuMzZsMTYuMDM5LDg4LjIxOUgyNjAuNDkxVjMxLjQzOQoJCQljMC00Ljk2NS00LjAxOC04Ljk4Mi04Ljk4Mi04Ljk4Mkg1My44OTVjLTQuOTY1LDAtOC45ODIsNC4wMTgtOC45ODIsOC45ODJ2NDQwLjE0SDB2MTcuOTY1aDUzLjg5NWgxOTcuNjE0aDEyNS43NTRoNTMuODk1SDUxMgoJCQl2LTE3Ljk2NUg0NDEuOTE3eiBNMjQyLjUyNiw0NzEuNTc5SDYyLjg3N1Y0MC40MjFoMTc5LjY0OVY0NzEuNTc5eiBNNDIzLjY1OCw0NzEuNTc5aC0zOC44OTVsLTE0LjcwMi04MC44NDJoNjguMjk4CgkJCUw0MjMuNjU4LDQ3MS41Nzl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OC4xMDUsNzYuMzUxYy0yNy40NTYsMC00NC40ODksMTIuNDk2LTUzLjg5NSwyNS4xOTVjLTkuNDA4LTEyLjY5OS0yNi40MzktMjUuMTk1LTUzLjg5NS0yNS4xOTUKCQkJYy00Ljk2NSwwLTguOTgyLDQuMDE4LTguOTgyLDguOTgyYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJjMzMuNzU0LDAsNDMuMjcyLDIzLjMwNyw0NC45MTIsMjguMjQ2djIzMi4yNDYKCQkJYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJzOC45ODItNC4wMTgsOC45ODItOC45ODJWMTIyLjU3MmMxLjU0NC00LjY4LDEwLjk4Ny0yOC4yNTcsNDQuOTEyLTI4LjI1NwoJCQljNC45NjUsMCw4Ljk4Mi00LjAxOCw4Ljk4Mi04Ljk4MkM0NjcuMDg4LDgwLjM2OCw0NjMuMDcsNzYuMzUxLDQ1OC4xMDUsNzYuMzUxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDExOS4yNjNjLTE1LjU1My0xNS41NTMtMzYuODQyLTIyLjM3Ny01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwxNTYuMTU4LDM4MS4zOTUsMTM0LjgzMywzNjUuODMzLDExOS4yNjN6IE0zNjcuMDA5LDE2NC45MDMKCQkJYy0xMS4xNTgsMC40MzktMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NzksMjMuNTg4LDQuNTM1LDMyLjkzOSwxMy44NzcKCQkJQzM2Mi40NzQsMTQxLjMxNiwzNjcuNTcsMTUzLjcwMiwzNjcuMDA5LDE2NC45MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2NS44MzMsMjAwLjEwNWMtMTUuNTUzLTE1LjU1My0zNi44NDItMjIuMzY5LTU1LjY2Ny0xNy43OThjLTMuMjU0LDAuNzk4LTUuNzk4LDMuMzQyLTYuNTk2LDYuNTk2CgkJCWMtNC41NzksMTguNzcyLDIuMjM3LDQwLjA5NywxNy43OTgsNTUuNjY3YzEyLjM2LDEyLjM2LDI4LjM2LDE5LjIwMiw0My44MTYsMTkuMjAyYzQuMDA5LDAsNy45ODItMC40NjUsMTEuODUxLTEuNDA0CgkJCWMzLjI1NS0wLjc5OCw1Ljc5OC0zLjM0Miw2LjU5Ni02LjU5NkMzODguMjExLDIzNywzODEuMzk1LDIxNS42NzYsMzY1LjgzMywyMDAuMTA1eiBNMzY3LjAwOSwyNDUuNzQ2CgkJCWMtMTEuMTU4LDAuNDkxLTIzLjU5Ni00LjU0NC0zMi45MzktMTMuODc3Yy05LjM0Mi05LjM1MS0xNC40MzktMjEuNzM3LTEzLjg3Ny0zMi45MzljMTEuMTIzLTAuNTM1LDIzLjU4OCw0LjUzNSwzMi45MzksMTMuODc3CgkJCUMzNjIuNDc0LDIyMi4xNTgsMzY3LjU3LDIzNC41NDQsMzY3LjAwOSwyNDUuNzQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDI4MC45NDdjLTE1LjU1My0xNS41NjEtMzYuODQyLTIyLjM2OS01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwzMTcuODQyLDM4MS4zOTUsMjk2LjUxOCwzNjUuODMzLDI4MC45NDd6IE0zNjcuMDA5LDMyNi41ODgKCQkJYy0xMS4xNTgsMC40NDctMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NywyMy41ODgsNC41MzUsMzIuOTM5LDEzLjg3NwoJCQlDMzYyLjQ3NCwzMDMsMzY3LjU3LDMxNS4zODYsMzY3LjAwOSwzMjYuNTg4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDkuMzg2LDEwOC4wNjFjLTAuNzk4LTMuMjU0LTMuMzQyLTUuNzk4LTYuNTk2LTYuNTk2Yy0xOC43ODktNC41Ny00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjgsMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDE0OC4xNTgsNTEzLjk2NSwxMjYuODMzLDUwOS4zODYsMTA4LjA2MXogTTQ3OC44ODYsMTUxLjAyNgoJCQljLTkuMzUxLDkuMzQyLTIxLjg3NywxNC4zMjUtMzIuOTM5LDEzLjg3N2MtMC41NjEtMTEuMjAyLDQuNTM1LTIzLjU4OCwxMy44NzctMzIuOTM5YzkuMzUxLTkuMzQyLDIxLjc5OC0xNC40NDcsMzIuOTM5LTEzLjg3NwoJCQlDNDkzLjMyNSwxMjkuMjg5LDQ4OC4yMjgsMTQxLjY3NSw0NzguODg2LDE1MS4wMjZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwOS4zODYsMTg4LjkwM2MtMC43OTgtMy4yNTQtMy4zNDItNS43OTgtNi41OTYtNi41OTZjLTE4Ljc4OS00LjU3OS00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjksMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDIyOSw1MTMuOTY1LDIwNy42NzYsNTA5LjM4NiwxODguOTAzeiBNNDc4Ljg4NiwyMzEuODY4CgkJCWMtOS4zNTEsOS4zMzMtMjEuODc3LDE0LjM2OC0zMi45MzksMTMuODc3Yy0wLjU2MS0xMS4yMDIsNC41MzUtMjMuNTg4LDEzLjg3Ny0zMi45MzljOS4zNTEtOS4zNDIsMjEuNzk4LTE0LjQwMywzMi45MzktMTMuODc3CgkJCUM0OTMuMzI1LDIxMC4xMzIsNDg4LjIyOCwyMjIuNTE3LDQ3OC44ODYsMjMxLjg2OHoiLz4KICAgICAgICA8cGF0aCBkPSJNNTA5LjM4NiwyNjkuNzQ2Yy0wLjc5OC0zLjI1NC0zLjM0Mi01Ljc5OC02LjU5Ni02LjU5NmMtMTguNzg5LTQuNTc5LTQwLjEwNSwyLjIzNy01NS42NjcsMTcuNzk4CgkJCWMtMTUuNTYxLDE1LjU3LTIyLjM3NywzNi44OTUtMTcuNzk4LDU1LjY2N2MwLjc5OCwzLjI1NSwzLjM0Miw1Ljc5OCw2LjU5Niw2LjU5NmMzLjg2OSwwLjkzOSw3LjgzMywxLjQwNCwxMS44NDIsMS40MDQKCQkJYzE1LjQ2NSwwLDMxLjQ2NS02Ljg0Miw0My44MjUtMTkuMjAyQzUwNy4xNDksMzA5Ljg0Miw1MTMuOTY1LDI4OC41MTgsNTA5LjM4NiwyNjkuNzQ2eiBNNDc4Ljg4NiwzMTIuNzEKCQkJYy05LjM1MSw5LjM0Mi0yMS44NzcsMTQuMzMzLTMyLjkzOSwxMy44NzdjLTAuNTYxLTExLjIwMiw0LjUzNS0yMy41ODgsMTMuODc3LTMyLjkzOWM5LjM1MS05LjM0MiwyMS43OTgtMTQuNDQ3LDMyLjkzOS0xMy44NzcKCQkJQzQ5My4zMjUsMjkwLjk3NCw0ODguMjI4LDMwMy4zNiw0NzguODg2LDMxMi43MXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",hxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDIzMC41NjZoMjMyLjEzNWMyMi40MDUgMCA0MC42MzQtMTguMjI4IDQwLjYzNC00MC42MzN2LTE0OS4zYy0uMDAxLTIyLjQwNS0xOC4yMjktNDAuNjMzLTQwLjYzNS00MC42MzNoLTIzMi4xMzRjLTIyLjQwNSAwLTQwLjYzNCAxOC4yMjgtNDAuNjM0IDQwLjYzM3YxNDkuMjk5YzAgMjIuNDA2IDE4LjIyOCA0MC42MzQgNDAuNjM0IDQwLjYzNHptLTI1LjYzNC0xODkuOTMzYzAtMTQuMTM0IDExLjQ5OS0yNS42MzMgMjUuNjM0LTI1LjYzM2gyMzIuMTM1YzE0LjEzNSAwIDI1LjYzNCAxMS40OTkgMjUuNjM0IDI1LjYzM3YxNDkuMjk5YzAgMTQuMTM0LTExLjQ5OSAyNS42MzMtMjUuNjM0IDI1LjYzM2gtMjMyLjEzNWMtMTQuMTM1IDAtMjUuNjM0LTExLjQ5OS0yNS42MzQtMjUuNjMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDUuMTEgMTY0LjgxM2MxMC40MjMgMi4wODEgMTguODUgMTAuMTggMjAuOTcgMjAuMTU3IDEuNTM2IDcuMjIyIDguMDIyIDEyLjQ2MyAxNS40MjIgMTIuNDYzaDE0OC45NDdjNy40OCAwIDEzLjk4LTUuMzEgMTUuNDU1LTEyLjYyNCAyLjExNS0xMC40ODIgMTAuNTc2LTE4LjkzNiAyMS4wNTItMjEuMDM4IDcuMzA4LTEuNDY2IDEyLjYxMS03Ljk2NSAxMi42MTEtMTUuNDU0di02Ni4wNjdjMC03LjQ4NC01LjMxMS0xMy45ODUtMTIuNjI3LTE1LjQ1Ny0xMC40NzItMi4xMDctMTguOTI1LTEwLjU2My0yMS4wMzYtMjEuMDQxLTEuNDc1LTcuMzEyLTcuOTY3LTEyLjYxOC0xNS40MzktMTIuNjE4aC0xNDguOTcxYy03LjM5NSAwLTEzLjg3OCA1LjI0Mi0xNS40MTQgMTIuNDY1LTIuMTE4IDkuOTY5LTEwLjU0IDE4LjA2Ny0yMC45NTUgMjAuMTUzLTcuMzU1IDEuNDcyLTEyLjY5MiA3Ljk3OS0xMi42OTIgMTUuNDd2NjguMTI1YzAgNy40OTQgNS4zMzEgMTMuOTk5IDEyLjY3NyAxNS40NjZ6bTIuMzIzLTgzLjU5MmMwLS4zNzQuMjYyLS42ODcuNjM4LS43NjIgMTYuMjAzLTMuMjQ0IDI5LjMzNy0xNiAzMi42ODItMzEuNzQxLjA3My0uMzQ0LjM3OC0uNTg1Ljc0Mi0uNTg1aDE0OC45NzJjLjM1NyAwIC42NjYuMjQ1LjczMy41ODMgMy4yOSAxNi4zMjUgMTYuNDY0IDI5LjQ5OSAzMi43ODIgMzIuNzgyLjM0LjA2OC41ODYuMzg1LjU4Ni43NTJ2NjYuMDY3YzAgLjM2MS0uMjQxLjY4My0uNTYxLjc0Ny0xNi4zMjYgMy4yNzQtMjkuNTEgMTYuNDQ3LTMyLjgwNiAzMi43NzgtLjA2OS4zNDItLjM4Ni41OTEtLjc1Mi41OTFoLTE0OC45NDdjLS4zNjIgMC0uNjc4LS4yNDYtLjc1LS41ODItMy4zNDctMTUuNzUyLTE2LjQ5LTI4LjUxMS0zMi43MDUtMzEuNzQ4LS4zNTctLjA3MS0uNjE0LS4zODktLjYxNC0uNzU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNzIuMDY3IDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU4IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDE5OS41MDNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXYtNC4xNDJjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2NC4xNDJjMCA0LjE0MyAzLjM1NyA3LjUgNy41IDcuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcyLjA2NyAxODAuMzYyYy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQuMTQyYzAgNC4xNDIgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQuMTQyYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4OS43MzMgMTY0LjFoNDkuN2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNS42MzNoMTcuMzVjMi42IDAgNS4wMTQtMS4zNDYgNi4zOC0zLjU1N3MxLjQ5MS00Ljk3Mi4zMjgtNy4yOTdsLTI0Ljg1LTQ5LjdjLTEuMjcxLTIuNTQxLTMuODY3LTQuMTQ2LTYuNzA4LTQuMTQ2cy01LjQzOCAxLjYwNS02LjcwOCA0LjE0NmwtMTQuNDkzIDI4Ljk4N2gtMjguNDk4Yy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQ5LjdjLS4wMDEgNC4xNDIgMy4zNTcgNy41IDcuNDk5IDcuNXptNDkuNzAxLTczLjU2MyAxMi43MTUgMjUuNDNoLTI1LjQzem0tNDIuMjAxIDIzLjg2M2gxMy40OThsLTIuODU2IDUuNzEzYy0xLjE2MyAyLjMyNS0xLjAzOCA1LjA4Ni4zMjggNy4yOTdzMy43OCAzLjU1NyA2LjM4IDMuNTU3aDE3LjM1MXYxOC4xMzNoLTM0Ljd2LTM0Ljd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMy45ODMgMTQ3LjUzM2MxNy44MzggMCAzMi4zNS0xNC41MTIgMzIuMzUtMzIuMzUgMC0xNy44MzctMTQuNTEyLTMyLjM1LTMyLjM1LTMyLjM1cy0zMi4zNTEgMTQuNTEyLTMyLjM1MSAzMi4zNWMuMDAxIDE3LjgzOCAxNC41MTQgMzIuMzUgMzIuMzUxIDMyLjM1em0wLTQ5LjY5OWM5LjU2NiAwIDE3LjM1IDcuNzgzIDE3LjM1IDE3LjM1cy03Ljc4MyAxNy4zNS0xNy4zNSAxNy4zNS0xNy4zNTEtNy43ODMtMTcuMzUxLTE3LjM1Yy4wMDEtOS41NjcgNy43ODQtMTcuMzUgMTcuMzUxLTE3LjM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzAuODY3IDI0OC41Yy04LjU0NyAwLTE1LjUgNi45NTMtMTUuNSAxNS41djE3LjEzM2MwIDguNTQ3IDYuOTUzIDE1LjUgMTUuNSAxNS41aDUwLjI2NmM4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptNTAuNzY2IDE1LjV2MTcuMTMzYzAgLjI3Ni0uMjI1LjUtLjUuNWgtNTAuMjY2Yy0uMjc1IDAtLjUtLjIyNC0uNS0uNXYtMTcuMTMzYzAtLjI3Ni4yMjUtLjUuNS0uNWg1MC4yNjZjLjI3NSAwIC41LjIyNC41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ5Ni41IDQ2My44NjdoLTE3LjY3MmMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtMTM2LjUwNWM5LjYwOC0zLjE2IDE2LjU2Ny0xMi4yMTIgMTYuNTY3LTIyLjg2NHYtOC4yODRjMC04LjcwMy03LjA4MS0xNS43ODMtMTUuNzg0LTE1Ljc4M2gtMi41NjJjMS4xNDMtMi44IDEuNzc5LTUuODYgMS43NzktOS4wNjcgMC0xMy4yNy0xMC43OTYtMjQuMDY2LTI0LjA2Ni0yNC4wNjZzLTI0LjA2NiAxMC43OTYtMjQuMDY2IDI0LjA2NmMwIDMuMjA3LjYzNSA2LjI2NiAxLjc3OSA5LjA2N2gtMi41NjNjLTguNzAzIDAtMTUuNzgzIDcuMDgxLTE1Ljc4MyAxNS43ODN2OC4yODRjMCAxMC41MTggNi43ODYgMTkuNDc2IDE2LjIwNyAyMi43NDEtMTguNjE2IDE4LjQzOC00MC4wMzcgMzMuMzUxLTYzLjczNCA0NC4zMzctMy43NTggMS43NDItNS4zOTMgNi4yMDEtMy42NSA5Ljk1OCAxLjI3IDIuNzM3IDMuOTc4IDQuMzQ4IDYuODEgNC4zNDggMS4wNTYgMCAyLjEyOS0uMjI0IDMuMTQ5LS42OTggMjEuMDU4LTkuNzYyIDQwLjQyNy0yMi40MzIgNTcuNzg2LTM3Ljc1NHYyMy43MTJjLTQ1LjQxIDM1LjQ5NS0xMDAuMDE0IDU0LjI0Ny0xNTguMTY3IDU0LjI0Ny01OC4xNDggMC0xMTIuNzU2LTE4Ljc1My0xNTguMTY3LTU0LjI0OXYtMjMuNjljNDMuNzY0IDM4LjY5IDk5LjI4IDU5LjgwNSAxNTguMTY3IDU5LjgwNSAyMy41OTIgMCA0Ni45MTMtMy40NDEgNjkuMzE0LTEwLjIyOCAzLjk2NC0xLjIwMSA2LjIwNC01LjM4OCA1LjAwMy05LjM1My0xLjIwMS0zLjk2NC01LjM4OS02LjIwNy05LjM1My01LjAwMy0yMC45ODkgNi4zNTktNDIuODQ3IDkuNTgzLTY0Ljk2NCA5LjU4My01OS41NzIgMC0xMTUuNDYyLTIzLjA3LTE1Ny44MDItNjUuMDE4IDkuNDE5LTMuMjY3IDE2LjIwMi0xMi4yMjQgMTYuMjAyLTIyLjc0di04LjI4NGMwLTguNzAzLTcuMDgtMTUuNzgzLTE1Ljc4My0xNS43ODNoLTIuNTYzYzEuMTQzLTIuOCAxLjc3OS01Ljg2IDEuNzc5LTkuMDY3IDAtMTMuMjctMTAuNzk2LTI0LjA2Ni0yNC4wNjYtMjQuMDY2cy0yNC4wNyAxMC43OTgtMjQuMDcgMjQuMDY4YzAgMy4yMDcuNjM2IDYuMjY2IDEuNzc5IDkuMDY3aC0yLjU2MmMtOC43MDMgMC0xNS43ODQgNy4wODEtMTUuNzg0IDE1Ljc4M3Y4LjI4NGMwIDEwLjY1MiA2Ljk1OSAxOS43MDQgMTYuNTY3IDIyLjg2NHYxMzYuNTA2Yy05LjYwOCAzLjE2LTE2LjU2NyAxMi4yMTItMTYuNTY3IDIyLjg2NHY4LjI4NGMwIC4yNjQuMDI3LjUyMi4wNC43ODNoLTE3LjY3M2MtOC41NDcgMC0xNS41IDYuOTUzLTE1LjUgMTUuNXYxNy4xMzJjMCA4LjU0NyA2Ljk1MyAxNS41IDE1LjUgMTUuNWg1OS44MzNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTU5LjgzM2MtLjI3NSAwLS41LS4yMjQtLjUtLjV2LTE3LjEzM2MwLS4yNzYuMjI1LS41LjUtLjVoNDgxYy4yNzUgMCAuNS4yMjQuNS41djE3LjEzM2MwIC4yNzYtLjIyNS41LS41LjVoLTM5MS4xNjdjLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMzkxLjE2N2M4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptLTY3LjMzMy0xNjQuNTc3Yy4xNjEtLjg3OC4xNTgtMS43NzguMDA1LTIuNjU2aDE4LjEyOHYxOC4xMzNoLTE4LjEzM3ptMCA0My45MDRjLjAxMi0uMjM5LjAxMi0uNDc5IDAtLjcxOXYtMTIuNzA5aDE4LjEzM3YxMDAuOTY3aC0xOC4xMzN6bTAtMTAzLjc2MWMwLTQuOTk5IDQuMDY3LTkuMDY2IDkuMDY2LTkuMDY2czkuMDY2IDQuMDY3IDkuMDY2IDkuMDY2LTQuMDY3IDkuMDY3LTkuMDY2IDkuMDY3LTkuMDY2LTQuMDY3LTkuMDY2LTkuMDY3em0tMTYuNTY3IDI0Ljg1YzAtLjQzMi4zNTItLjc4My43ODMtLjc4M2g0OS43Yy40MzMgMCAuNzg0LjM1Mi43ODQuNzgzdjguMjg0YzAgNC45OTktNC4wNjcgOS4wNjYtOS4wNjcgOS4wNjZoLTMzLjEzM2MtNSAwLTkuMDY3LTQuMDY3LTkuMDY3LTkuMDY2em0tMTU2LjYgMTQ0LjE3NmM1Ny42NDggMCAxMTIuMDA3LTE3LjQyMiAxNTguMTY3LTUwLjUxNHY3My45OTFjLTkuNjA4IDMuMTYtMTYuNTY3IDEyLjIxMi0xNi41NjcgMjIuODY0djguMjg0YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMjgzLjI3OWMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtNzMuOTkyYzQ2LjE2MSAzMy4wOTIgMTAwLjUyMyA1MC41MTUgMTU4LjE2NiA1MC41MTV6bS0xNzMuMTY3LTExMC43ODljLS4wMTIuMjQ3LS4wMTIuNDk1IDAgLjc0MnYxNi4zNTVoLTE4LjEzM3YtMTguMTMzaDE4LjEzM3ptLTE4LjEzMyAzMi4wOTdoMTguMTMzdjEwMC45NjdoLTE4LjEzM3ptMC05MC4zMzRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ni05LjA2NnM5LjA2NiA0LjA2NyA5LjA2NiA5LjA2Ni00LjA2NyA5LjA2Ny05LjA2NiA5LjA2Ny05LjA2Ni00LjA2Ny05LjA2Ni05LjA2N3ptLTE2LjU2NyAyNC44NWMwLS40MzIuMzUyLS43ODMuNzg0LS43ODNoNDkuN2MuNDMyIDAgLjc4My4zNTIuNzgzLjc4M3Y4LjI4NGMwIDQuOTk5LTQuMDY3IDkuMDY2LTkuMDY3IDkuMDY2aC0zMy4xMzNjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2NnptLjc4NCAxOTkuNTg0Yy0uNDMzIDAtLjc4NC0uMzUyLS43ODQtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzgzLjc4M3ptMzY0LjQ2NiAwYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzg0Ljc4M3oiLz4KICAgIDwvZz4KPC9zdmc+",zxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDc0LjYwOCw4MC40MzlsLTIzMi04MGMtMS42OS0wLjU4My0zLjUyNi0wLjU4My01LjIxNiwwbC0yMzIsODBDMi4xNjYsODEuNTUxLDAuMDAxLDg0LjU4NywwLDg3Ljk5OXYzODQKCQkJYzAsNC40MTgsMy41ODIsOCw4LDhoNDBjNC40MTgsMCw4LTMuNTgyLDgtOHYtMjQ4aDM2OHYyNDhjMCw0LjQxOCwzLjU4Miw4LDgsOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04di0zODQKCQkJQzQ3OS45OTksODQuNTg3LDQ3Ny44MzQsODEuNTUxLDQ3NC42MDgsODAuNDM5eiBNNDAsMjE1Ljk5OXYyNDhIMTZ2LTMwNGgyNFYyMTUuOTk5eiBNNDI0LDIwNy45OTlINTZ2LTE2aDM2OFYyMDcuOTk5egoJCQkgTTQyNCwxNzUuOTk5SDU2di0xNmgzNjhWMTc1Ljk5OXogTTQ2NCw0NjMuOTk5aC0yNHYtMzA0aDI0VjQ2My45OTl6IE00NjQsMTQzLjk5OUgxNlY5My43MDNsMjI0LTc3LjI0bDIyNCw3Ny4yNFYxNDMuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zOTUuNTc2LDM0NC43OTlsLTI5LjYtMTQuOGwtMjYuNC01Mi44Yy00LjA2MS04LjEyNS0xMi4zODEtMTMuMjQyLTIxLjQ2NC0xMy4ySDE2MS44ODgKCQkJYy05LjA5OC0wLjAzLTE3LjQyMSw1LjExNC0yMS40NjQsMTMuMjY0bC0yNi40LDUyLjhsLTI5LjYsMTQuOGMtMi43MDUsMS4zNTItNC40MTYsNC4xMTItNC40MjQsNy4xMzZ2MTEyYzAsOC44MzcsNy4xNjMsMTYsMTYsMTYKCQkJaDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTI0aDE5MnYyNGMwLDguODM3LDcuMTYzLDE2LDE2LDE2aDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTExMgoJCQlDNDAwLjAxNywzNDguOTUyLDM5OC4zMDEsMzQ2LjE2LDM5NS41NzYsMzQ0Ljc5OXogTTE1NC43MzYsMjg0LjQyM2MxLjM0NS0yLjcxOCw0LjExOS00LjQzNCw3LjE1Mi00LjQyNGgxNTYuMjI0CgkJCWMzLjAzMy0wLjAxLDUuODA3LDEuNzA2LDcuMTUyLDQuNDI0bDIxLjc5Miw0My41NzZIMTMyLjk0NEwxNTQuNzM2LDI4NC40MjN6IE0xMjgsNDYzLjk5OUg5NnYtMjRoMzJWNDYzLjk5OXogTTM4NCw0NjMuOTk5aC0zMgoJCQl2LTI0aDMyVjQ2My45OTl6IE0zODQsNDIzLjk5OUgxMzZIOTZ2LTY3LjA1NmwyNS44ODgtMTIuOTQ0aDIzNi4yMjRMMzg0LDM1Ni45NDNWNDIzLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzE2OCwzNjcuMTYyLDE2MC44MzcsMzU5Ljk5OSwxNTIsMzU5Ljk5OXogTTE1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzM2OCwzNjcuMTYyLDM2MC44MzcsMzU5Ljk5OSwzNTIsMzU5Ljk5OXogTTM1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjgwLDM1OS45OTloLTgwYy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoODBjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzI5NiwzNjcuMTYyLDI4OC44MzcsMzU5Ljk5OSwyODAsMzU5Ljk5OXogTTI4MCwzOTEuOTk5aC04MHYtMTZoODBWMzkxLjk5OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",wxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMS45NzggNTExLjk3OCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjIzLjI0OGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0xNi42OTZjMC0xMi41NTcgMTAuMjE2LTIyLjc3MyAyMi43NzItMjIuNzczaDE1LjM5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTUuMzkyYy0yMC44MjggMC0zNy43NzIgMTYuOTQ1LTM3Ljc3MiAzNy43NzN2MTYuNjk2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjgxLjE4N2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNC43NDZjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2MjQuNzQ2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE1Ny44NTYgMjA4Ljg2djM2LjMzOWMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0zNi4zMzljMC0zLjI5NCAyLjc5Ni02LjA3OCA2LjEwNS02LjA3OGgxMy4yMzdjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTEzLjIzN2MtMTEuNjM3IDAtMjEuMTA1IDkuNDU1LTIxLjEwNSAyMS4wNzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyOC4xODEgMjExLjQzYzIuOTQyIDEuOTY0IDYuMzgyIDIuOTYzIDkuODg5IDIuOTYzIDIuNDQyIDAgNC45MTktLjQ4NSA3LjI4Mi0xLjQ2N2wyNC43Ni0xMC4yNTUgNjMuNTk1IDQuOTA2IDQuNjYxIDE2LjEyMWMxLjYxOSA1LjYwMSA1LjU5NiAxMC4wNzQgMTEuMTk3IDEyLjU5NSAzLjE0OCAxLjQxNyA2LjU5MSAyLjEyNCAxMC4wNDEgMi4xMjQgMy42NTMgMCA3LjMxNi0uNzkzIDEwLjY0NC0yLjM3NGwxMTcuMjkxLTU1LjcyOWM2LjQ2OS0zLjA3NCAxMS40MjUtOS4wMSAxMy4yNTgtMTUuODggMS41ODItNS45MzIuNjI5LTExLjgzNS0yLjY4NC0xNi42MTlsLTIzLjYzOS0zNC4xNjRjMTcuNzYzLTIwLjQ2MiAyMS45NDEtNDkuNTk1IDEwLjEyNy03NC40NjEtMTYuMjcyLTM0LjIwMS01Ny4zMzItNDguNzk3LTkxLjUxLTMyLjU1LTI2LjE4MSAxMi40MzUtNDEuNTkyIDQwLjAwOC0zOC45MSA2OC40NThsLTMzLjc2NiAxNi4wNDJjLS4wMDEgMC0uMDAxIDAtLjAwMSAwLTEwLjcyNSA1LjA5Ni0xNS4zOTEgMTcuMjgxLTExLjYxMSAzMC4zMTVsOC43NDUgMzAuMjQyaC00Ny4xNTdsLTI1LjA1NS0xMC4zNzdjLTUuNzYzLTIuMzcxLTEyLjE3OS0xLjc5My0xNy4xNjcgMS41NDYtNC43MTMgMy4xNTctNy40MTYgOC4yMjEtNy40MTYgMTMuODkzdjQwLjc2MWMtLjAwMiA1LjY5MSAyLjcwNiAxMC43NiA3LjQyNiAxMy45MXptMjU3LjYtNTUuMDc3Yy43OSAxLjE0Ljk2NiAyLjU1OC41MjQgNC4yMTQtLjY5MiAyLjU5My0yLjczNCA1LjAyNi01LjIwMiA2LjE5OWwtMTE3LjI5MSA1NS43MjhjLTIuNDcgMS4xNzMtNS42NDYgMS4yMjEtOC4wOTEuMTItMS41NjUtLjcwNC0yLjU1Ni0xLjc0MS0yLjk0My0zLjA4M2wtMjIuMzc2LTc3LjM4NSAxMDkuNTQyLTUyLjA0em0tODYuMjUyLTEzNi4xNjJjLjAwMSAwIC4wMDItLjAwMS4wMDMtLjAwMSAyNi43MTYtMTIuNzAzIDU4LjgwNi0xLjI4OCA3MS41MjQgMjUuNDQyIDguNjY0IDE4LjIzNyA2LjMzIDM5LjQxNy01LjQ2MyA1NS4xNzNsLS4wMjQtLjAyNi0yOC4wMDItNDAuNDdjLTcuNzI5LTExLjE2LTIwLjEzNS0xNS4yNDEtMzAuODY4LTEwLjE1N2wtMzcuODAzIDE3Ljk1OC0uMDEyLjAwM2MuMjE3LTIwLjE5IDExLjg5OS0zOS4wMTkgMzAuNjQ1LTQ3LjkyMnptLTcyLjY3NiA4NC40OTggODYuMjczLTQwLjk4NGM0Ljc1LTIuMjUxIDkuNDkyIDEuMzY2IDEyLjEwNyA1LjE0M2w2LjA2MiA4Ljc2LTEwNS4xMTUgNDkuOTM3LTIuOTY3LTEwLjI2MmMtMS4yNzgtNC40MDQtMS4wOS0xMC4zNDYgMy42NC0xMi41OTR6bS01MC40NTMgNjIuMDA5aDQ1LjQ3OGw3LjM2NSAyNS40OS01Mi44NDMtNC4wNzd6bS00MC42NDctOS45MzhjMC0uMzk1LjA3OS0uOTcyLjc2NS0xLjQzMS4yMDQtLjEzNy43NzEtLjQ1NSAxLjYxMy0uNDU1LjQyNyAwIC45MjQuMDgyIDEuNDguMzExbDIxLjc4OCA5LjAyNHYyNS44MzRsLTIxLjc5NyA5LjAyN2MtMS42NjUuNjk0LTIuNzkyLjA4NS0zLjA5Ni0uMTE4LS42NjgtLjQ0Ni0uNzU0LS45OTktLjc1NC0xLjQzMXYtNDAuNzYxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTcuOTYgNDY0LjQ3OWMtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOC03LjY3OC0yLjkyOC0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xOTAuOTIgNDY4LjI3N2MtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyNy03LjY3OC0yLjkyNy0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDcuOTU3IDQ2NC40NzljLTIuOTI5IDIuOTI5LTIuOTI5IDcuNjc4IDAgMTAuNjA2bC4wMjguMDI4YzEuNDYyIDEuNDYxIDMuMzcxIDIuMTkgNS4yODMgMi4xOSAxLjkyIDAgMy44NDItLjczNiA1LjMxLTIuMjA0IDIuOTI5LTIuOTI5IDIuOTE1LTcuNjkyLS4wMTQtMTAuNjIxLTIuOTMtMi45MjgtNy42NzgtMi45MjgtMTAuNjA3LjAwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjIyMiA0ODEuMTAyYzEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOS03LjY3OC0yLjkyOS0xMC42MDcgMHMtMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjIgMy4zNzEgMi4xOTEgNS4yODMgMi4xOTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MC43ODQgNDA5LjM4NWMyMi43MTMtMi4yNzggNDEuMTkxLTIyLjc5MiA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcwOS0xLjU0OS03LjIzNC00LjI0OC05LjY3MS0yLjY5Mi0yLjQzMS02LjM1Mi0zLjYwOS0xMC4wMS0zLjIzM2wtMjguODEgMi44OTJjLTkuOTIzIDEuMDEtMTkuMDM3IDUuNTAyLTI2LjE1MSAxMi4xNTJsLjA2My01LjE1NGMwLTIyLjkwMy0xOC4zMzctNDMuMjY2LTQxLjA1NC00NS41NzhsLTI4Ljc4My0yLjg5Yy0zLjY4Ny0uMzc5LTcuMzM0LjgwMi0xMC4wMjUgMy4yMzItMi42OTkgMi40MzgtNC4yNDggNS45NjItNC4yNDggOS42NzF2MjguNzQzYzAgMjIuOTAzIDE4LjQ3MyA0My40MTcgNDEuMTg1IDQ1LjcyOWwyNy44NjMgMi44MTR2NTMuOTk2aC01NC41MTljLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTE5LjMwNGMyLjQ0NCAwIDQuNDM0IDEuOTc2IDQuNDM0IDQuNDA1djQ1LjUyM2MwIDIuNDAzLTIuMDMgNC40MzQtNC40MzQgNC40MzRoLTQ3My4xMzRjLTIuMzg4IDAtNC40MDUtMi4wMy00LjQwNS00LjQzNHYtNDUuNTIzYzAtMi4zODggMi4wMTgtNC40MDUgNC40MDUtNC40MDVoMzE5LjE5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNzUuMTI2di0xNS4zOTdsMjguMDU3LTIuODMzYzIyLjcxMy0yLjI3OCA0MS4xOS0yMi43OTIgNDEuMTktNDUuNzI5di0yOC43NDNjMC0zLjcwNS0xLjU1Mi03LjIyOS00LjI1Ny05LjY2OS0yLjctMi40MzUtNi4zNTktMy42MTItMTAuMDAxLTMuMjM1bC0yOC44MSAyLjg5MmMtOS45MzQgMS4wMTEtMTkuMDU4IDUuNTA3LTI2LjE4IDEyLjE2MyAwIDAgLjE5OS00LjQyOS4xOTktNS4wMTMgMC0yMi45MDctMTguNDc0LTQzLjQyLTQxLjE5LTQ1LjcyOWwtMjguNzc2LTIuODljLTMuNjY2LS4zNzUtNy4zMDguNzk2LTkuOTk3IDMuMjIyLTIuNzA0IDIuNDM5LTQuMjU1IDUuOTY3LTQuMjU1IDkuNjgxdjI4Ljc0M2MwIDIyLjkwMyAxOC40NzQgNDMuNDE3IDQxLjE4NiA0NS43MjlsMjcuODM0IDIuODEzdjUzLjk5NmgtMTY0LjI1M3YtMTUuMzk4bDI4LjAyNi0yLjgzMmMyMi43MTMtMi4yNzQgNDEuMTkxLTIyLjc4OSA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcxMy0xLjU1MS03LjI0Mi00LjI1NS05LjY4MS0yLjY4OS0yLjQyNi02LjMzMy0zLjYwNC05Ljk3NS0zLjIyNGwtMjguODEgMi44OTJjLTkuOTM0IDEuMDExLTE5LjA1OCA1LjUwNy0yNi4xNzkgMTIuMTYyIDAgMCAuMTk4LTQuNDMuMTk4LTUuMDEyIDAtMjIuOTAzLTE4LjQ3NC00My40MTctNDEuMTktNDUuNzI5bC0yOC43NzYtMi44OWMtMy42Ni0uMzc0LTcuMzA2Ljc5NS05Ljk5NyAzLjIyMi0yLjcwNCAyLjQzOS00LjI1NSA1Ljk2OC00LjI1NSA5LjY4MXYyOC43NDNjMCAyMi45MDMgMTguNDc0IDQzLjQxNyA0MS4xODYgNDUuNzI5bDI3LjgzNSAyLjgxM3YzMS43OTUgMjIuMjAxaC00OS44MTJjLTEwLjcgMC0xOS40MDUgOC43MDUtMTkuNDA1IDE5LjQwNXY0NS41MjNjMCAxMC43MTYgOC43MDUgMTkuNDM0IDE5LjQwNSAxOS40MzRoNDczLjEzNGMxMC43MTYgMCAxOS40MzQtOC43MTggMTkuNDM0LTE5LjQzNHYtNDUuNTIzYzAtMTAuNy04LjcxOC0xOS40MDUtMTkuNDM0LTE5LjQwNWgtNDkuNzg1di0xNS4zOTh6bS0yOC4wMjgtMzguNzU2YzAtMTUuMTcxIDEyLjY3Mi0yOS4yNzkgMjcuNjYtMzAuODA1bDI2LjU1OS0yLjY2NnYyNi40OThjMCAxNS4xOTItMTIuNjggMjkuMjk5LTI3LjY5MyAzMC44MDVsLTE1LjQxNSAxLjU1OCAxOS4wNjktMjEuMDk3YzIuNzc3LTMuMDczIDIuNTM3LTcuODE2LS41MzUtMTAuNTkzLTMuMDcyLTIuNzc1LTcuODE0LTIuNTM5LTEwLjU5NC41MzVsLTE5LjA1MSAyMS4wNzd6bS0xNS0yMy40NTctMTguODgtMjAuODg4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M2wxOS4wNjcgMjEuMDk2LTE1LjQwOC0xLjU1NmMtMTUuMDE0LTEuNTI4LTI3LjY5OC0xNS42MzUtMjcuNjk4LTMwLjgwNXYtMjYuNDk3bDI2LjU0OCAyLjY2NmMxNS4wMTUgMS41MjggMjcuNSAxNS42MzUgMjcuNSAzMC44MDV6bS0xNjQuMjgyIDIzLjQ1N2MwLTE1LjE3IDEyLjY4NS0yOS4yNzcgMjcuNjg4LTMwLjgwNWwyNi41NTktMi42NjZ2MjYuNDk4YzAgMTUuMTkyLTEyLjY3OSAyOS4yOTktMjcuNjkyIDMwLjgwNWwtMTUuNDE0IDEuNTU3IDE5LjA2OC0yMS4wOTZjMi43NzctMy4wNzMgMi41MzctNy44MTYtLjUzNS0xMC41OTMtMy4wNzItMi43NzUtNy44MTQtMi41MzktMTAuNTk0LjUzNWwtMTkuMDc5IDIxLjEwOHYtMTUuMzQzem0tNDQuOTgtMzQuMjg2IDE5LjA2OSAyMS4wOTctMTUuNDA5LTEuNTU3Yy0xNS4wMTUtMS41MjgtMjcuNjk5LTE1LjYzNS0yNy42OTktMzAuODA1di0yNi40OTVsMjYuNTIxIDIuNjYzYzE1LjAxNSAxLjUyNiAyNy40OTkgMTUuNjMzIDI3LjQ5OSAzMC44MDV2MTUuMDkxbC0xOC44NTItMjAuODU3Yy0yLjc3OC0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M3ptLTEzNC4yNzMgMzQuMjg2YzAtMTUuMTcgMTIuNjg1LTI5LjI3NyAyNy42ODgtMzAuODA1bDI2LjUzLTIuNjYzdjI2LjQ5NWMwIDE1LjE5NS0xMi42NzkgMjkuMzAxLTI3LjY5MiAzMC44MDVsLTE1LjQwNSAxLjU1NyAxOS4wODMtMjEuMDk0YzIuNzc5LTMuMDcyIDIuNTQyLTcuODE0LS41My0xMC41OTMtMy4wNjgtMi43NzgtNy44MTMtMi41NDItMTAuNTkzLjUzbC0xOS4wODEgMjEuMDkxem0tNDQuOTgxLTM0LjI4NiAxOS4wNjkgMjEuMDk3LTE1LjQwOS0xLjU1OGMtMTUuMDE1LTEuNTI4LTI3LjY5OS0xNS42MzUtMjcuNjk5LTMwLjgwNXYtMjYuNDk1bDI2LjUyIDIuNjYzYzE1LjAxNSAxLjUyOCAyNy41MDEgMTUuNjM1IDI3LjUwMSAzMC44MDV2MTUuMDkybC0xOC44NTMtMjAuODU4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41MjEtLjUzNSAxMC41OTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Cxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNi42MjIgMTUxLjc0MWgxMC44djM1LjY4MWMwIDExLjEyNSA5LjA1MSAyMC4xNzUgMjAuMTc1IDIwLjE3NWgxNC44MTRjNC43OTkgMCA5LjIwOC0xLjY5MSAxMi42NzUtNC41IDMuNDY3IDIuODA5IDcuODc1IDQuNSAxMi42NzUgNC41aDE0LjgxNGMxMS4xMjQgMCAyMC4xNzUtOS4wNSAyMC4xNzUtMjAuMTc1di0zOS45NGgyMC4xMzl2MTg1LjExNWgtMjMuNDU3Yy0xMC45MzggMC0xOS44MzcgOC44OTgtMTkuODM3IDE5LjgzNnYzNy4zMjRjMCA5Ljk2OCA3LjM5OCAxOC4yMTkgMTYuOTg4IDE5LjYwOHY4Ny41NzZjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzVjOC4zMDQgMCAxNS4wNTktNi43NTUgMTUuMDU5LTE1LjA1OXYtNTMuODQ0aDUxLjQ2NGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWMtOS43NjUgMC04NS43ODUgMC05Ni45MTcgMHYtMTguNTAzaDIyOC44MzR2MTguNTAzYy0xMS4xMzcgMC04Ny4yMTcgMC05Ni45MTcgMC00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU3IDcuNSA3LjUgNy41aDUxLjQ2NXY1My44NDRjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzRjOC4zMDQgMCAxNS4wNi02Ljc1NSAxNS4wNi0xNS4wNTkgMC0xMC4xNTQgMC03Ny4wMzYgMC04Ny41NzYgOS41OS0xLjM4OSAxNi45ODgtOS42NCAxNi45ODgtMTkuNjA4di0zNy4zMjRjMC0xMC45MzgtOC44OTgtMTkuODM2LTE5LjgzNy0xOS44MzZoLTIzLjQ1N3YtNzUuMDU4YzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc1LjA1OGgtMjUuMTY0YzAtMjEuNzEzIDAtMTYyLjkxMiAwLTE4NS4xMTVoMjUuMTY0djc1LjA1OGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di03NS4wNThoMjAuMTM5djM5Ljk0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1aDE0LjgxNGM0Ljc5OSAwIDkuMjA4LTEuNjkxIDEyLjY3NS00LjUgMy40NjcgMi44MDkgNy44NzUgNC41IDEyLjY3NCA0LjVoMTQuODE1YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTM1LjY4MWgxMC44YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTE0LjgxNGMwLTExLjEyNS05LjA1MS0yMC4xNzUtMjAuMTc1LTIwLjE3NWgtMTAuOHYtMzUuNjgxYzAtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTVjLTQuNzk5IDAtOS4yMDcgMS42OTEtMTIuNjc0IDQuNS0zLjQ2Ny0yLjgwOS03Ljg3NS00LjUtMTIuNjc1LTQuNWgtMTQuODE0Yy0xMS4xMjQgMC0yMC4xNzUgOS4wNS0yMC4xNzUgMjAuMTc0djM5Ljk0MWgtMjAuMTM5di04MC42NjNjLS4wMDEtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTRjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzR2NTAuNTM0aC05NS44OTZ2LTUwLjUzNGMwLTExLjEyNC05LjA1LTIwLjE3NC0yMC4xNzQtMjAuMTc0aC0xNC44MTVjLTExLjEyNCAwLTIwLjE3NCA5LjA1LTIwLjE3NCAyMC4xNzR2ODAuNjYzaC0yMC4xMzl2LTM5Ljk0MWMwLTExLjEyNC05LjA1MS0yMC4xNzQtMjAuMTc1LTIwLjE3NGgtMTQuODE0Yy00Ljc5OSAwLTkuMjA4IDEuNjkxLTEyLjY3NSA0LjUtMy40NjctMi44MDktNy44NzUtNC41LTEyLjY3NS00LjVoLTE0LjgxNGMtMTEuMTI0IDAtMjAuMTc1IDkuMDUtMjAuMTc1IDIwLjE3NHYzNS42ODFoLTEwLjhjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzV2MTQuODE0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1em0xNDEuMjY3LTQuMjZoMjUuMTYzdjE4NS4xMTVoLTI1LjE2M3ptNDAuMTYzIDY4LjcxMmg5NS44OTZ2NzYuOTAxaC05NS44OTZ6bTk1Ljg5NS0xNWgtOTUuODk2di0yMy41ODNoOTUuODk2em0tMTMxLjkxOSAyNDEuOTA0LS4wNTEgNTMuOTAzLTMwLjM5My0uMDM5YzAtLjAwMS0uMDAxLS4wMDgtLjAwMS0uMDJ2LTUzLjg0NHptMTk4LjMyOSA1My45MDMtMzAuMzkzLS4wNTl2LTUzLjg0NGgzMC40NDV6bTEyLjIxMS0xNDkuNDAzYzIuNjY3IDAgNC44MzcgMi4xNjkgNC44MzcgNC44MzZ2MzcuMzI0YzAgMi42NjctMi4xNyA0LjgzNi00LjgzNyA0LjgzNi0xMy4yMDIgMC0yNDEuMjU2IDAtMjUzLjEzNyAwLTIuNjY3IDAtNC44MzctMi4xNjktNC44MzctNC44MzZ2LTM3LjMyNGMwLTIuNjY3IDIuMTctNC44MzYgNC44MzctNC44MzZ6bS0xNzQuNTE2LTE1di0yNC41MDNoOTUuODk2djI0LjUwM3ptOTUuODk1LTE2OS45ODdoLTk1Ljg5NnYtMTUuMTI4aDk1Ljg5NnptLTExNS45NzctMzAuMTI5di0xNi42NDVoMTM2LjA2djE2LjY0NWMtNC42NTMgMC0xMzAuNDExIDAtMTM2LjA2IDB6bTI5Ny40MDgtMjAuOTA0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NXYxNC44MTRjMCAyLjgwNS0yLjM3IDUuMTc1LTUuMTc1IDUuMTc1aC0xMC44di0yNS4xNjR6bS00NS43OS01NS44NTVoMTQuODE1YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE1Yy0yLjgwNSAwLTUuMTc0LTIuMzctNS4xNzQtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM2OS01LjE3NCA1LjE3NC01LjE3NHptLTQ1LjMzOCA1LjE3NGMwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtMi45MDQgMC0xMjIuNjAyIDAtMTI2LjUyNnptLTE1IDcxLjU4NWMtMTMuNDYzIDAtMjUuMTg2IDAtNDAuMjIxIDB2LTE2LjY0NWg0MC4yMjF6bS02MC4zMDMtMTEyLjMwN2MwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODU0IDAgNS4xNzUgMi4zMjEgNS4xNzUgNS4xNzR2ODAuNjYzYy05LjEwNiAwLTE2LjA1OCAwLTI1LjE2NCAwIDAtOS4zNzMgMC03MC44ODUgMC04MC42NjN6bS0xNSA2NS41MzR2MTUuMTI4aC05NS44OTZ2LTE1LjEyOHptLTEzNi4wNTgtNjUuNTM0YzAtMi44MDUgMi4zNjktNS4xNzQgNS4xNzQtNS4xNzRoMTQuODE1YzIuODA1IDAgNS4xNzQgMi4zNyA1LjE3NCA1LjE3NHY4MC42NjNjLTkuMTA0IDAtMTYuMDM5IDAtMjUuMTYzIDB6bTUuMDgxIDk1LjY2M3YxNi42NDVjLTE1LjI3MyAwLTI2LjQ2IDAtNDAuMjIgMHYtMTYuNjQ1em0tNzUuMjA5LTYwLjExNWgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjgwNSAwLTUuMTc1LTIuMzctNS4xNzUtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM3LTUuMTc0IDUuMTc1LTUuMTc0em0tNDUuMzM5IDUuMTc0YzAtMi44MDUgMi4zNy01LjE3NCA1LjE3NS01LjE3NGgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtNS42NzkgMC0xMjAuODI3IDAtMTI2LjUyNnptLTMwLjk3NSA1NS44NTZjMC0yLjg1NCAyLjMyMS01LjE3NSA1LjE3NS01LjE3NWgxMC44djI1LjE2NGgtMTAuOGMtMi44NTQgMC01LjE3NS0yLjMyMS01LjE3NS01LjE3NXoiLz4KICAgIDwvZz4KPC9zdmc+",Ixe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDI4MGgtMTZWMTY2LjRjMC0xMi05LjYtMjIuNC0yMi40LTIyLjRoLTRjLTEyLDAtMjIuNCw5LjYtMjIuNCwyMi40VjI4MGgtMjR2LTE2YzAtMTMuNi0xMC40LTI0LTI0LTI0SDEyMAoJCQljLTEzLjYsMC0yNCwxMC40LTI0LDI0djE2SDcyVjE2Ni40YzAtMTItOS42LTIyLjQtMjIuNC0yMi40aC0zLjJjLTEyLjgsMC0yMi40LDkuNi0yMi40LDIyLjRWMjgwSDhjLTQuOCwwLTgsMy4yLTgsOHMzLjIsOCw4LDhoOAoJCQl2MTQ0YzAsNC44LDMuMiw4LDgsOGg4djhjMCw0LjgsMy4yLDgsOCw4czgtMy4yLDgtOHYtOGgzODR2OGMwLDQuOCwzLjIsOCw4LDhzOC0zLjIsOC04di04aDhjNC44LDAsOC0zLjIsOC04VjI5Nmg4CgkJCWM0LjgsMCw4LTMuMiw4LThTNDc2LjgsMjgwLDQ3MiwyODB6IE00MzAuNCwxNjBoNGMzLjIsMCw2LjQsMi40LDYuNCw2LjRWMjgwaC0xNlYxNjYuNEg0MjRDNDI0LDE2My4yLDQyNi40LDE2MCw0MzAuNCwxNjB6CgkJCSBNMTEyLDI2NGMwLTQuOCwzLjItOCw4LThoMjQwYzQuOCwwLDgsMy4yLDgsOHYxNkgxMTJWMjY0eiBNNDAsMTY2LjRjMC00LDIuNC02LjQsNi40LTYuNGg0YzMuMiwwLDUuNiwyLjQsNS42LDYuNFYyODBINDBWMTY2LjR6CgkJCSBNMjMyLDQzMkgzMnYtNjRoMjAwVjQzMnogTTQ0OCw0MzJIMjQ4di02NGgyMDBWNDMyeiBNNDQ4LDM1MkgzMnYtNTZoNDE2VjM1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjA4LDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzIxNiwzODcuMiwyMTIuOCwzODQsMjA4LDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjcyLDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzI4MCwzODcuMiwyNzYuOCwzODQsMjcyLDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzg0LDE2SDk2Yy00LjgsMC04LDMuMi04LDh2MTYwYzAsNC44LDMuMiw4LDgsOGgyODhjNC44LDAsOC0zLjIsOC04VjI0QzM5MiwxOS4yLDM4OC44LDE2LDM4NCwxNnogTTM3NiwxNzZIMTA0VjMyaDI3MgoJCQlWMTc2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTIsMTQ0aC04Yy00LjgsMC04LDMuMi04LDhzMy4yLDgsOCw4aDhjNC44LDAsOC0zLjIsOC04UzM1Ni44LDE0NCwzNTIsMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTcuNiw1MC40Yy0zLjItMy4yLTgtMy4yLTExLjIsMGwtMjQsMjRjLTMuMiwzLjItMy4yLDgsMCwxMS4yYzMuMiwzLjIsOCwzLjIsMTEuMiwwbDI0LTI0CgkJCUMxNjAuOCw1OC40LDE2MC44LDUzLjYsMTU3LjYsNTAuNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMTk3LjYsNTAuNGMtMy4yLTMuMi04LTMuMi0xMS4yLDBsLTU2LDU2Yy0zLjIsMy4yLTMuMiw4LDAsMTEuMmMzLjIsMy4yLDgsMy4yLDExLjIsMGw1Ni01NgoJCQlDMjAwLjgsNTguNCwyMDAuOCw1My42LDE5Ny42LDUwLjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",pxe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2aC0xNDRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTg0aC0xNzZ2LTI0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0djE2aDE2djE2aC0zMnYtMzJoLTE2djMyaC0zMnYtMTZoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYyNGgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTc2YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoNDY0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTM2OGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMTM2IDE2aDEyOHY5NmgtMTI4em0tMTYgMjI0aC0xNDR2LTMyaDE0NHptLTMwNC0zMmgxNDR2MzJoLTE0NHptMCA0OGgxNDR2MTEyaC0xNDR6bTE2MCAwaDY0djExMmgtNjR6bTgwIDBoNjR2MTEyaC02NHptODAgMTEydi0yNDBoMTI4djI0MHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAxNDRoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDI1NmgxNnYzMmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im04MCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTIgMzIwYzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ0IDMyMGMwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4cy04LTMuNTgyMDMxLTgtOCAzLjU4MjAzMS04IDgtOCA4IDMuNTgyMDMxIDggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggMTUyaDE2MGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGMwLTIuMTIxMDk0LS44NDM3NS00LjE1NjI1LTIuMzQzNzUtNS42NTYyNWwtMzItMzJjLTEuNS0xLjUtMy41MzUxNTYtMi4zNDM3NS01LjY1NjI1LTIuMzQzNzVoLTh2LTcyYzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTY0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djcyaC04Yy0yLjEyMTA5NCAwLTQuMTU2MjUuODQzNzUtNS42NTYyNSAyLjM0Mzc1bC0zMiAzMmMtMS41IDEuNS0yLjM0Mzc1IDMuNTM1MTU2LTIuMzQzNzUgNS42NTYyNXYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em01Ni0xMzZoNDh2NjRoLTQ4em0tNDggMTA3LjMxMjUgMjcuMzEyNS0yNy4zMTI1aDg5LjM3NWwyNy4zMTI1IDI3LjMxMjV2MTIuNjg3NWgtMTQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDM2OGgtOTZjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg5NmM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di02NGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tOCA2NGgtODB2LTQ4aDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjMyIDMxMmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDggMzkyaDE2djMyaC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3MiAzOTJoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyIDIwMGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi0xNTMuMTM2NzE5aC0xNnYxNTMuMTM2NzE5Yy0xNC4wODU5MzggMy42MzY3MTktMjMuOTQ1MzEyIDE2LjMxNjQwNi0yNCAzMC44NjMyODF2OGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em0yNC0zMmM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2aC0zMmMwLTguODM1OTM4IDcuMTY0MDYyLTE2IDE2LTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDEzNmg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi04OS4xMzY3MTloLTE2djg5LjEzNjcxOWMtMTQuMDg1OTM4IDMuNjM2NzE5LTIzLjk0NTMxMiAxNi4zMTY0MDYtMjQgMzAuODYzMjgxdjhjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOHptMjQtMzJjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNmgtMzJjMC04LjgzNTkzOCA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Axe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTAuNDE3IDIzMy4yMjUtNTguNjQ0LTExNy4yNzljLTE1LjkzOS0zMS44NzctNDcuOTc4LTUxLjY4LTgzLjYyLTUxLjY4LTguNTg2IDAtMTYuOTg0IDEuMTg4LTI1LjAzMiAzLjQzNy4xMDUtMS40ODkuMTc4LTIuOTg4LjE3OC00LjUwMyAwLTM0Ljg0OS0yOC4zNTEtNjMuMi02My4yLTYzLjJzLTYzLjIgMjguMzUyLTYzLjIgNjMuMmMwIDMwLjk5MyAyMi40MzIgNTYuODI4IDUxLjkwOSA2Mi4xNjlsLTYxLjM2NiA2MS40N2MtNi44NzUgNi44ODYtMjEuODcxIDI3LjgyLTEwLjMzMyA1NC40Ni0xLjcwNS0uMTkxLTMuNDIxLS4yOTktNS4xNDQtLjI5OS0yMy4wODcgMC00Mi4zMzYgMTYuNjktNDYuMzUxIDM4LjYzNS03Ljc0LTQuMTQ0LTE2LjU3My02LjUwMS0yNS45NDktNi41MDEtMzAuNDE5IDAtNTUuMTY3IDI0Ljc0OC01NS4xNjcgNTUuMTY3IDAgOS4wNjMgMi4yMTEgMTcuNjE1IDYuMSAyNS4xNjdoLTQwLjU5OHYtMzM4LjQ2OGMwLTguMjg0LTYuNzE2LTE1LTE1LTE1cy0xNSA2LjcxNi0xNSAxNXY0ODJjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNXMxNS02LjcxNiAxNS0xNXYtNDkuMjY3aDMwNi41NjNjOC4yODQgMCAxNS02LjcxNiAxNS0xNXYtNjQuMjY3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTM2LjQxMmMzLjI3NC04LjM5NSAzLjIxNC0xNS4yNjMgMy4yMTQtMTguMiAyOC40NjkgMCA0OC4yLTIyLjA5OCA0OC4yLTQ3LjEzMyAwLTI1Ljk4OS0yMS4xNDQtNDcuMTMzLTQ3LjEzMy00Ny4xMzNoLTEyLjMwNGw1NS45MDQtNTYuMDg2IDUzLjczNiAxMDYuNzc3LS4xMDMgMjA1LjMwMWMtLjAwMiAzLjk3OSAxLjU3OCA3Ljc5NiA0LjM5MSAxMC42MTEgMi44MTMgMi44MTQgNi42MyA0LjM5NiAxMC42MDkgNC4zOTZoODAuMzM1YzguMjg0IDAgMTUtNi43MTYgMTUtMTV2LTI1Ny4wNjZjMC0yLjMyOS0uNTQyLTQuNjI1LTEuNTgzLTYuNzA4em0tMjYzLjUxNy0xNzAuMDI1YzAtMTguMzA3IDE0Ljg5NC0zMy4yIDMzLjItMzMuMnMzMy4yIDE0Ljg5NCAzMy4yIDMzLjItMTQuODk0IDMzLjItMzMuMiAzMy4yYy0xOC4zMDcgMC0zMy4yLTE0Ljg5My0zMy4yLTMzLjJ6bS0xMjcuMjMzIDIzOS45MzNjMTMuODc3IDAgMjUuMTY3IDExLjI5IDI1LjE2NyAyNS4xNjdzLTExLjI5IDI1LjE2Ny0yNS4xNjcgMjUuMTY3LTI1LjE2Ny0xMS4yOS0yNS4xNjctMjUuMTY3IDExLjI5LTI1LjE2NyAyNS4xNjctMjUuMTY3em0yMDEuODk2IDgwLjMzNHYzNC4yNjdoLTI5MS41NjN2LTM0LjI2N3ptLTE3LjEzLTExMi40NjdjOS40NDcgMCAxNy4xMzMgNy42ODYgMTcuMTMzIDE3LjEzMyAwIDkuNTgzLTcuODE0IDE3LjEzMy0xNy4xMzMgMTcuMTMzaC0xNi4wNjdjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2MTYuMDY3YzAgOS41ODMtNy44MTQgMTcuMTMzLTE3LjEzMyAxNy4xMzNoLTY0LjI2N2MtOS40NDcgMC0xNy4xMzMtNy42ODYtMTcuMTMzLTE3LjEzM3YtNDguMmMwLTkuNDQ3IDcuNjg2LTE3LjEzMyAxNy4xMzMtMTcuMTMzIDkuMjk3IDAgMTcuMTMzIDcuNTI2IDE3LjEzMyAxNy4xMzN2MTYuMDY3YzAgOC4yODQgNi43MTYgMTUgMTUgMTVzMTUtNi43MTYgMTUtMTV2LTE2LjA2N2MwLTkuNDI5IDcuNjE2LTE3LjEzMyAxNy4xMzMtMTcuMTMzem0xNzcuNTY3IDIxMWgtNTAuMzI2bC4wOTctMTkzLjg1OWMuMDAxLTIuMzQ0LS41NDctNC42NTYtMS42MDEtNi43NWwtNjQuNjg1LTEyOC41MzNjLTIuMTY3LTQuMzA1LTYuMjY5LTcuMzA2LTExLjAyNy04LjA2OC00Ljc2MS0uNzYyLTkuNTk0LjgxLTEyLjk5NSA0LjIyMmwtODYuNDU4IDg2LjczOWMtNy4yNjMgNy4yOTEtMTkuMTE1IDYuODA3LTI2LjMwOC0uMzg2LTcuMzgxLTcuMzgxLTcuNzI4LTE5LjYxMS0uMDIyLTI3LjMyOWw5NS4yNy05NS40MzFjMTEuNzk5LTExLjgyNSAyNy41LTE4LjMzNyA0NC4yMTctMTguMzM3IDI0LjE5OSAwIDQ1Ljk1NSAxMy40NDggNTYuNzc5IDM1LjA5N2w1Ny4wNTkgMTE0LjEwOXoiLz4KICAgIDwvZz4KPC9zdmc+",mxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTkyLjU0NSwxODUuMDljNTEuMDI5LDAsOTIuNTQ1LTQxLjUxNiw5Mi41NDUtOTIuNTQ1UzE0My41NzQsMCw5Mi41NDUsMFMwLDQxLjUxNiwwLDkyLjU0NSAgICBTNDEuNTE2LDE4NS4wOSw5Mi41NDUsMTg1LjA5eiBNOTIuNTQ1LDIwYzQwLjAwMSwwLDcyLjU0NSwzMi41NDQsNzIuNTQ1LDcyLjU0NXMtMzIuNTQ0LDcyLjU0NS03Mi41NDUsNzIuNTQ1ICAgIFMyMCwxMzIuNTQ2LDIwLDkyLjU0NVM1Mi41NDQsMjAsOTIuNTQ1LDIweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDAuNTAxLDExNC41MjZjMS45NTIsMS45NDUsNC41MDYsMi45MTcsNy4wNiwyLjkxN2MyLjU2NCwwLDUuMTMtMC45OCw3LjA4My0yLjk0ICAgIGMzLjg5OC0zLjkxMiwzLjg4OC0xMC4yNDQtMC4wMjMtMTQuMTQzbC0xMi4wMDgtMTEuOTY4VjQ0YzAtNS41MjItNC40NzgtMTAtMTAtMTBzLTEwLDQuNDc4LTEwLDEwdjQ4LjU0NSAgICBjMCwyLjY1OCwxLjA1OSw1LjIwNywyLjk0LDcuMDgzTDEwMC41MDEsMTE0LjUyNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNTAyLDMzMmgtNjEuNTQ3Yy04LjQ2LTEyLjAzNC0yMS4xNzItMjAuNTU4LTM1LjY3MS0yMy43MjhsLTQzLjk2NC05LjYxMyAgICBjMTcuOTkxLTEyLjEzNCwyOS44NDctMzIuNzAyLDI5Ljg0Ny01NS45ODh2LTI0LjQxN3YtMTEuMjk3di0yLjU0MmMwLTM3LjIxMi0zMC4yNzQtNjcuNDg2LTY3LjQ4Ni02Ny40ODYgICAgcy02Ny40ODYsMzAuMjc0LTY3LjQ4Niw2Ny40ODZ2Mi41NDJ2MTEuMjk3djI0LjQxN2MwLDIzLjI1NiwxMS44MjUsNDMuODAzLDI5Ljc3OCw1NS45NDNsLTQzLjkzNiw5LjYzOSAgICBjLTEuODc3LDAuNDEyLTMuNzIyLDAuOTE3LTUuNTM1LDEuNTAyVjIyN2MwLTUuNTIyLTQuNDc4LTEwLTEwLTEwaC02OGMtNS41MjIsMC0xMCw0LjQ3OC0xMCwxMHM0LjQ3OCwxMCwxMCwxMGg1OHYxNDBoLTY4di01MCAgICBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwcy0zMCwxMy40NTgtMzAsMzB2NTBIMjBWMjM3aDU4YzUuNTIyLDAsMTAtNC40NzgsMTAtMTBzLTQuNDc4LTEwLTEwLTEwSDEwYy01LjUyMiwwLTEwLDQuNDc4LTEwLDEwdjE2MCAgICBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg3OHYxOWgtMWMtMTcuMDk0LDAtMzEsMTMuOTA2LTMxLDMxdjVIMTBjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg0OTIgICAgYzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTQwdi00MHYtNDB2LTQwQzUxMiwzMzYuNDc4LDUwNy41MjIsMzMyLDUwMiwzMzJ6IE00NDEuMTc5LDQ1MkgzODR2LTIwaDEwOHYyMEg0NDEuMTc5eiBNNDkyLDQxMkgzODQgICAgdi0yMGgxMDhWNDEyeiBNNDkyLDM3MkgzODR2LTIwaDUwLjg3NGMwLjAzLDAsMC4wNiwwLjAwNiwwLjA4OSwwLjAwNmMwLjAzMSwwLDAuMDYzLTAuMDA2LDAuMDk0LTAuMDA2SDQ5MlYzNzJ6IE0yNzUuNjkyLDIwNC40MTYgICAgYzAtMjYuMTg0LDIxLjMwMy00Ny40ODYsNDcuNDg2LTQ3LjQ4NmMyNC45MzMsMCw0NS40MzksMTkuMzE0LDQ3LjM0Miw0My43NjdsLTIzLjI0Ni0xMy42NTcgICAgYy00LjIxMS0yLjQ3NS05LjU5My0xLjU0NC0xMi43MywyLjE5OWMtMTAuMTI2LDEyLjA4NS0yNC45NzcsMTkuMDE3LTQwLjc0NCwxOS4wMTdoLTE4LjEwN3YtMS4yOTdWMjA0LjQxNnogTTI3NS42OTIsMjI4LjI1NSAgICBIMjkzLjhjMTguODI1LDAsMzYuNy03LjE3OSw1MC4yMDUtMTkuOTRsMjYuNjYsMTUuNjYzdjE4LjY5NGMwLDI2LjE4NC0yMS4zMDMsNDcuNDg2LTQ3LjQ4Niw0Ny40ODZzLTQ3LjQ4Ni0yMS4zMDMtNDcuNDg2LTQ3LjQ4NiAgICBWMjI4LjI1NXogTTMzOC44NDQsMzA4LjMwM2wtMTUuODE1LDQyLjI5NGwtMTUuODQ0LTQyLjM3YzUuMTMsMS4yNTIsMTAuNDgzLDEuOTMxLDE1Ljk5MywxLjkzMSAgICBDMzI4LjU3MiwzMTAuMTU4LDMzMy44MTMsMzA5LjUwNCwzMzguODQ0LDMwOC4zMDN6IE0yMjYsMzk3YzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTU1LjYyM2MzLjA4NS0xLjYyNiw2LjM3NC0yLjgzMiw5LjgyLTMuNTg4ICAgIGw0My43NC05LjU5NmwyNC4xMDMsNjQuNDU3YzEuNDYxLDMuOTA3LDUuMTk0LDYuNDk3LDkuMzY2LDYuNDk3czcuOTA1LTIuNTksOS4zNjYtNi40OThsMjQuMTA0LTY0LjQ2MWw0NC4wMTEsOS42MjMgICAgYzMuODYzLDAuODQ0LDcuNTI5LDIuMjc0LDEwLjkwMiw0LjE4OEgzNzRjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDB2NDB2MzBIMjE1LjE3OXYtNTVIMjI2eiBNMTk1LjE3OSwzOTd2NTVIMTgwdi01ICAgIGMwLTE3LjA5NC0xMy45MDYtMzEtMzEtMzFoLTF2LTE5SDE5NS4xNzl6IE0xMDgsMzI3YzAtNS41MTQsNC40ODYtMTAsMTAtMTBzMTAsNC40ODYsMTAsMTB2ODloLTIwVjMyN3ogTTc2LDQ0NyAgICBjMC02LjA2NSw0LjkzNS0xMSwxMS0xMWgxMWg0MGgxMWM2LjA2NSwwLDExLDQuOTM1LDExLDExdjVINzZWNDQ3eiBNNDkyLDQ5MkgyMHYtMjBoNDcyVjQ5MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzLDIxOS45M2MtMS44NiwxLjg2LTIuOTMsNC40NC0yLjkzLDcuMDdzMS4wNjksNS4yMSwyLjkzLDcuMDY5YzEuODYsMS44Niw0LjQ0LDIuOTMxLDcuMDcsMi45MzEgICAgczUuMjEtMS4wNyw3LjA2OS0yLjkzMUMxMjYuOTMsMjMyLjIxLDEyOCwyMjkuNjMsMTI4LDIyN3MtMS4wNy01LjIxLTIuOTMxLTcuMDdjLTEuODU5LTEuODYtNC40MzktMi45My03LjA2OS0yLjkzICAgIFMxMTIuNzksMjE4LjA2OSwxMTAuOTMsMjE5LjkzeiIvPgogICAgPC9nPgo8L3N2Zz4K",Oxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTUsMzUuOTM1YzQuNDkzLS41NTUsOC00LjgsOC05LjkzNSwwLTQuODg1LTMuNTM1LTE5LTktMTlzLTksMTQuMTE1LTksMTljMCw1LjEzOCwzLjUwNyw5LjM4LDgsOS45MzVWNDJINDkuOTQ5YTkuOTc4LDkuOTc4LDAsMCwwLTE0LjQ0MS03LjkyMmwtMS42LTIuNTEzTDMyLjM4OCwyN0gzNi41YTEuNSwxLjUsMCwwLDEsMCwzSDM2djJoLjVhMy41LDMuNSwwLDAsMCwwLTdIMzFhMSwxLDAsMCwwLS45NDgsMS4zMTZMMzEuNjEzLDMxSDIwVjI5aDNhMSwxLDAsMCwwLDEtMSw1LDUsMCwwLDAtMTAsMCwxLDEsMCwwLDAsMSwxaDN2Mi42NzVsLTEuOTY0LDIuN2E5Ljk5MSw5Ljk5MSwwLDEsMCw0LjUxLDExLjYwNiwzLjk4NSwzLjk4NSwwLDEsMCw2LjQyNS00LjYzNGw1LjUyMS04LjI4MywxLjMyOSwyLjA4OUE5Ljk5NSw5Ljk5NSwwLDEsMCw0OS45NDksNDRINjNWNDJINTVaTTQ3LDI2YzAtNS4wNjcsMy42NjEtMTcsNy0xN3M3LDExLjkzMyw3LDE3YzAsNC4wMjItMi42MTQsNy4zNTEtNiw3LjkwOVYxOC41MzVsMi41NTUtMS43LTEuMTEtMS42NjQtMywyQTEsMSwwLDAsMCw1MywxOHY3bC0yLjQtMS44LTEuMiwxLjZMNTMsMjcuNXY2LjQwOUM0OS42MTQsMzMuMzUxLDQ3LDMwLjAyMiw0NywyNlpNMTksMjVhMy4wMDYsMy4wMDYsMCwwLDEsMi44MjksMkgxNi4xNzFBMy4wMDYsMy4wMDYsMCwwLDEsMTksMjVabTUsMTVhMy44MzYsMy44MzYsMCwwLDAtLjU2LjA1N0wyMC41LDMzaDkuNjMybC00LjgyNSw3LjIzN0EzLjk2OCwzLjk2OCwwLDAsMCwyNCw0MFpNMTEsNTFhOCw4LDAsMSwxLDMuODU3LTE1bC0zLjAxMSw0LjE0QTIuOTYsMi45NiwwLDAsMCwxMSw0MGEzLDMsMCwxLDAsMi43MzgsNC4yMTRsNS4xLjM5MkE4LjAxNCw4LjAxNCwwLDAsMSwxMSw1MVptNy45OC04LjM4OS01LjEtLjM5MmEzLjAwNSwzLjAwNSwwLDAsMC0uNDE0LS45MTZsMy00LjEyNUE3Ljk2OSw3Ljk2OSwwLDAsMSwxOC45OCw0Mi42MTFaTTEyLDQzYTEsMSwwLDEsMS0xLTFBMSwxLDAsMCwxLDEyLDQzWm04Ljg3OS0xLjQ3MmE5Ljk2OCw5Ljk2OCwwLDAsMC0zLjIyOC01Ljk3NGwxLjExMS0xLjUyNywyLjgzMiw2LjhBNC4wMzIsNC4wMzIsMCwwLDAsMjAuODc5LDQxLjUyOFpNMjQsNDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjQsNDZabTE2LDVhOCw4LDAsMCwxLTUuMS0xNC4xNTZsMi43NDgsNC4zMTlBMi45NjYsMi45NjYsMCwwLDAsMzcsNDNhMywzLDAsMSwwLDMtMywyLjk2MywyLjk2MywwLDAsMC0uNjcxLjA4MmwtMi43NDEtNC4zMDdBOCw4LDAsMSwxLDQwLDUxWm0wLTlhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsNDAsNDJaIi8+CiAgICAgICAgPHBhdGggZD0iTTcsMThhNCw0LDAsMCwwLDIuNzg4LTEuMTM5LDUuNjMzLDUuNjMzLDAsMCwwLDMuOTYxLS41NDVBMy45NTQsMy45NTQsMCwwLDAsMTcsMThhNCw0LDAsMSwwLS4wODMtOCw2LDYsMCwwLDAtMTEuOS41MzhBMy45OTIsMy45OTIsMCwwLDAsNywxOFptLS42NTMtNS44NzdhMSwxLDAsMCwwLC42Ny0uOTc3QS42LjYsMCwwLDAsNywxMWE0LDQsMCwwLDEsOC0uMDQxYzAsLjAzMy0uMDE4LjE1Mi0uMDIuMTg1YTEsMSwwLDAsMCwxLjMzOS45ODZBMS45NywxLjk3LDAsMCwxLDE3LDEyYTIsMiwwLDEsMS0xLjksMi41NzMsMSwxLDAsMCwwLTEuNTg5LS40ODcsMy44LDMuOCwwLDAsMS0zLjc1MS42OTMsMSwxLDAsMCwwLTEuMTI5LjM3MiwxLjk5NCwxLjk5NCwwLDEsMS0yLjI4Mi0zLjAyOFoiLz4KICAgICAgICA8cmVjdCB4PSIxIiB5PSI1NSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Exe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xNjguOTkyIDI3Ny41OTFjMC0yNi41NTEtMjEuNjAxLTQ4LjE1MS00OC4xNTEtNDguMTUxcy00OC4xNTEgMjEuNjAxLTQ4LjE1MSA0OC4xNTEgMjEuNjAxIDQ4LjE1IDQ4LjE1MSA0OC4xNSA0OC4xNTEtMjEuNiA0OC4xNTEtNDguMTV6bS04MS4zMDMgMGMwLTE4LjI3OSAxNC44NzItMzMuMTUxIDMzLjE1MS0zMy4xNTFzMzMuMTUxIDE0Ljg3MiAzMy4xNTEgMzMuMTUxLTE0Ljg3MiAzMy4xNS0zMy4xNTEgMzMuMTUtMzMuMTUxLTE0Ljg3MS0zMy4xNTEtMzMuMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3OS4yNzIgNDYyaC0zNC4wNjJsLTM5LjE1OC0zNi42NjdjLTMuMDIzLTIuODMxLTcuNzctMi42NzUtMTAuNjAxLjM0OXMtMi42NzUgNy43Ny4zNDkgMTAuNjAxbDQxLjMyMSAzOC42OTJjMS4zOSAxLjMwMiAzLjIyMiAyLjAyNSA1LjEyNiAyLjAyNWgzNy4wMjRjOS43NzUgMCAxNy43MjggNy45NTMgMTcuNzI4IDE3LjcyOXYyLjI3MWgtNjAuODQ0Yy0yLjE0OCAwLTQuMjYxLS43MDMtNS45ODEtMS45ODZsLTE4OC40OTItMTc4LjkxNHYtMjQuMTMybDEzMi4yMDcgMTIzLjc5NmMzLjAyMyAyLjgzMSA3Ljc3IDIuNjc1IDEwLjYwMS0uMzQ5czIuNjc1LTcuNzctLjM0OS0xMC42MDFsLTE0Mi40NTktMTMzLjM5NnYtMi40NThjMC04LjI4NC02Ljc0LTE1LjAyNC0xNS4wMjUtMTUuMDI0aC0xMi41NDh2LTQyLjc4NmgxMS40MzhjNi41MzYgMCAxMi4zOC0zLjkwMSAxNC44ODYtOS45MzggMi41MDctNi4wMzcgMS4xNDUtMTIuOTMtMy40NzEtMTcuNTZsLTEwNC43MDYtMTA1LjAzNmMtMS4xNjgtMS4xNzItMi40ODctMi4xMzgtMy45MS0yLjg4OXYtMTAuODY5aDUwLjE0OGM4Ljk1OSAwIDE2LjI0OC03LjI4OSAxNi4yNDgtMTYuMjQ4di0yNS4yMTNjMC04Ljk1OS03LjI4OS0xNi4yNDgtMTYuMjQ4LTE2LjI0OGgtNTAuMTY2Yy0uMTg0LTMuOTc4LTMuNDU4LTcuMTQ5LTcuNDgyLTcuMTQ5LTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjV2NjguMjIzYy0xLjQyNy43NTEtMi43NDkgMS43MTktMy45MiAyLjg5NGwtNDAuMDE1IDQwLjE0Yy0yLjkyNSAyLjkzNC0yLjkxNyA3LjY4Mi4wMTcgMTAuNjA2IDIuOTMzIDIuOTIzIDcuNjgxIDIuOTE3IDEwLjYwNi0uMDE3bDQwLjAxNi00MC4xNDFjLjI3MS0uMjcxLjU3OS0uMzI4Ljc5MS0uMzI4LjIxMSAwIC41MjEuMDU3Ljc5Mi4zMjlsMTA0LjcwNSAxMDUuMDM1Yy4xNTcuMTU4LjUyNy41MjkuMjQgMS4yMTktLjI4Ni42ODktLjgwOS42ODktMS4wMzIuNjg5aC0yMDkuNDFjLS4yMjQgMC0uNzQ3IDAtMS4wMzMtLjY4OXMuMDg0LTEuMDYxLjI0MS0xLjIxOWw0My41MjEtNDMuNjU4YzIuOTI1LTIuOTM0IDIuOTE3LTcuNjgzLS4wMTctMTAuNjA2LTIuOTM0LTIuOTI1LTcuNjgzLTIuOTE4LTEwLjYwNi4wMTdsLTQzLjUyMSA0My42NTdjLTQuNjE1IDQuNjMtNS45NzggMTEuNTIyLTMuNDcyIDE3LjU2MSAyLjUwNyA2LjAzNyA4LjM1IDkuOTM4IDE0Ljg4NyA5LjkzOGgxMS40Mzh2NjkuNDQ0YzAgNC4xNDMgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU3IDcuNS03LjV2LTY5LjQ0NGgxNTYuNTM1djEzMi44ODJoLTE1Ni41MzZ2LTMzLjQ1MmMwLTQuMTQzLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTctNy41IDcuNXYxODYuNDJoLTIwLjA3M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWg0OTdjNC4xNDMgMCA3LjUtMy4zNTcgNy41LTcuNXYtOS43NzFjMC0xOC4wNDctMTQuNjgyLTMyLjcyOS0zMi43MjgtMzIuNzI5em0tMjk5LjUzLTQzOC42MDN2MjUuMjEzYzAgLjY4OC0uNTYgMS4yNDgtMS4yNDggMS4yNDhoLTUwLjE0OHYtMjcuNzA5aDUwLjE0OGMuNjg5IDAgMS4yNDguNTYgMS4yNDggMS4yNDh6bTE2Ny4xOTYgNDEzLjI5MSA2My41NDEgNjAuMzEyaC02My41NDF6bS0xNSA2MC4zMTJoLTYwLjgxMXYtMTMyLjI3bDYwLjgxMSA1Ny43MnptLTc1LjgxLTE0Ni41MDh2MTQ2LjUwOGgtNDIuMDJ2LTE1Ni45NDJoMTIuNTQ4YzQuOTM5IDAgOS4zMTYtMi40MDYgMTIuMDU2LTYuMDk2em0tMjkuNDQ2LTgxLjUzMi0uMDEyIDU2LjA5N3MtLjAwNC4wMDEtLjAxNC4wMDFoLTEyLjU0OHYtNTYuMTEzem0tMjcuNTc0IDIyOC4wNGgtMzcuMTV2LTEzNy45NjloMzcuMTV6bS0xMDQuMzg0LTYxLjQ4NGg1Mi4yMzR2MjEuNDM2aC01Mi4yMzR6bTUyLjIzNC0xNWgtNTIuMjM0di0yMS40MzZoNTIuMjM0em0tNTIuMjM0IDUxLjQzNWg1Mi4yMzR2MjUuMDQ5aC01Mi4yMzR6bTUyLjIzNC0xMTIuOTJ2MjUuMDQ5aC01Mi4yMzR2LTI1LjA0OXptLTEwNC4zODUgMGgzNy4xNXYxMzcuOTY5aC0zNy4xNXoiLz4KICAgIDwvZz4KPC9zdmc+",fxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",xxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjE2LDI1MkgxMTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzIyMS41MSwyNTIsMjE2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1MmMtNS41MSwwLTEwLDQuNDktMTAsMTBzNC40OSwxMCwxMCwxMHMxMC00LjQ5LDEwLTEwUzI2MS41MSwyNTIsMjU2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzk2LDI1MkgyOTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzQwMS41MSwyNTIsMzk2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjg2LDEwN2gtNjBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NjBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg2MGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi02MAoJCQlDMjk2LDExMS40NzcsMjkxLjUyMywxMDcsMjg2LDEwN3ogTTI3NiwxNjdoLTQwdi00MGg0MFYxNjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMiw0OTJoLTEzVjIzM2MwLTYyLjIzNy0yNC4yMzYtMTIwLjc0OC02OC4yNDQtMTY0Ljc1NkMzNzYuNzQ4LDI0LjIzNiwzMTguMjM3LDAsMjU2LDBTMTM1LjI1MiwyNC4yMzYsOTEuMjQ0LDY4LjI0NAoJCQlTMjMsMTcwLjc2MywyMywyMzN2MjU5SDEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwczQuNDc3LDEwLDEwLDEwaDQ5MmM1LjUyMywwLDEwLTQuNDc3LDEwLTEwUzUwNy41MjMsNDkyLDUwMiw0OTJ6IE0zODYsNDkySDEyNgoJCQl2LTIwaDI2MFY0OTJ6IE0zODYsNDUySDEyNnYtMjBoMjYwVjQ1MnogTTM4Niw0MTJIMTI2di0yMGgyNjBWNDEyeiBNMzg2LDM3MkgxMjZ2LTIwaDI2MFYzNzJ6IE0zODYsMzMySDEyNnYtMjBoMjYwVjMzMnoKCQkJIE00MjksNDkyaC0yM1YzMDJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMEgxMTZjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTkwSDgzVjIzM2MwLTk1LjY2OCw3Ny4zODMtMTczLjUsMTcyLjUtMTczLjUKCQkJQzM1MS4xNjgsNTkuNSw0MjksMTM3LjMzMiw0MjksMjMzVjQ5MnogTTQ2OSw0OTJoLTIwVjIzM2MwLTEwNi42OTYtODYuODA0LTE5My41LTE5My41LTE5My41CgkJCWMtNTEuNjM5LDAtMTAwLjA2MywyMC4xMzctMTM2LjM1Miw1Ni43MDJDODIuOTQsMTMyLjY4NCw2MywxODEuMjY3LDYzLDIzM3YyNTlINDNWMjMzYzAtMTE3LjQ0OSw5NS41NTEtMjEzLDIxMy0yMTMKCQkJczIxMyw5NS41NTEsMjEzLDIxM1Y0OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",_xe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MDguNTQxIDIxOC4zODQtMTYyLjUwNy0yMDMuMTM0Yy03Ljc1My05LjY5Mi0xOS4zMTgtMTUuMjUtMzEuNzI5LTE1LjI1aC04My4xNTVjLTguNzAzIDAtMTUuNzgzIDcuMDgtMTUuNzgzIDE1Ljc4M3YxNi41NjdjMCA4LjcwMyA3LjA4IDE1Ljc4MyAxNS43ODMgMTUuNzgzaDMzLjkxN3YxMTcuNTMzaC0zMC42MzJsLTEyMC4zMzQtMTUwLjQxNmMtNy43NTMtOS42OTEtMTkuMzE4LTE1LjI1LTMxLjcyOS0xNS4yNWgtNjYuNTg5Yy04LjcwMyAwLTE1Ljc4MyA3LjA4LTE1Ljc4MyAxNS43ODN2MTYuNTY3YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2gxNy4zNXYxMTcuNTMzaC0xNy4zNWMtOC43MDMuMDAxLTE1Ljc4MyA3LjA4MS0xNS43ODMgMTUuNzg0djMwNi40ODNjMCAxMy4yNzEgMTAuNzk2IDI0LjA2NyAyNC4wNjcgMjQuMDY3aDQ3Mi4xNWM4LjcwMyAwIDE1Ljc4My03LjA4IDE1Ljc4My0xNS43ODN2LTc0LjU1LTE0My4yODktNTAuMTM0YzAtMy41NzEtMS4yMjgtNy4wNzMtMy40NTktOS44NnptLTYyLjAyNCAxOTUuNzgzYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtNzQuNTUtMTIxLjkwOGwxOC4xMzQgMjIuNjY3djE3NC41NzR6bS0yMzEuOTM0IDBjLS40MzIgMC0uNzg0LS4zNTItLjc4NC0uNzgzdi02Ny4wNWgxOC4xMzN2NjcuODMzem0tNjYuMjY2LTgyLjgzNGMtLjQzMiAwLS43ODQtLjM1Mi0uNzg0LS43ODR2LTY3LjA0OWgxOC4xMzN2NjcuODMzem0tNjYuMjY3LTgyLjgzM2MtLjQzMiAwLS43ODMtLjM1Mi0uNzgzLS43ODN2LTY3LjA1aDE4LjEzM3Y2Ny44MzN6bTgzLjYxNi05MS43NDF2OC45MDhoLTE4LjEzM3YtMzEuNTc0em02Ni4yNjcgODIuODMzdjguOTA4aC0xOC4xMzN2LTMxLjU3NHptODEuMjY3IDguMTI1di0xOTYuNDI4Yy4wNzIuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zODl2MTc0LjU3NWgtMTcuMzVjLS40MzEgMC0uNzgzLS4zNTItLjc4My0uNzgzem0xMTcuNTMzIDUwLjQ4M2gtMTguMTMzdi0xMjIuNjkxbDE4LjEzNCAyMi42Njd2MTAwLjAyNHptLTE4LjEzMyAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bS0xNSAxOC4xMzNoLTE3LjM1Yy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4NHYtNzQuNTQ5LTEyMS45MDhsMTguMTMzIDIyLjY2NnptLTMzLjEzMy0xMTUuOTY2aC0xOC4xMzR2LTEyMi42OTFsMTguMTM0IDIyLjY2N3ptLTE4LjEzNCAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzN2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzg0aC04NC40NHYtNTIuOTU1LTE0Ljg3OXptLTk5LjQwMSAxNy41MDl2MTAwLjAyNGgtMTguMTMzdi0xMjIuNjkxbDUuMDg2IDYuMzU3em0tMTUwLjY2Ni0xODguMzMzIDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzMgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptMzMuMTMzLTUuMTU4IDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzQgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptLTExNC40LTk3LjgzM2gtMTguMTMzdi0xMTQuMzc4Yy4wNzMuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zOXptMTUgNjQuN2gxOC4xMzN2MTguMTMzaC0xOC4xMzN6bTY2LjI2NiA4Mi44MzNoMTguMTM0djE4LjEzM2gtMTguMTMzdi0xOC4xMzN6bTY2LjI2NyA4Mi44MzNoMTguMTMzdjE4LjEzM2gtMTguMTMzem0zMy4xMzMtNDkuN2gxNTAuNjY3djY3LjA1YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMTUwLjcwN3ptMjA3LjMxNi03Ny4zNDYgOS42MTggMTIuMDIydjEwMC4wMjRoLTE4LjEzM3YtMTIyLjY5em0tOC41MTUgMTI3LjA0NmgxOC4xMzN2MTguMTMzaC0xOC4xMzN6bS0yNDguNS0zNjMuNjgzdi0xNi41NjdjMC0uNDMyLjM1Mi0uNzgzLjc4My0uNzgzaDgzLjE1NWM3LjgzIDAgMTUuMTI1IDMuNTA2IDIwLjAxNyA5LjYybDE2Mi41MDcgMjAzLjEzNGMwIC4wMDEuMDAxLjAwMS4wMDIuMDAyLjEwOS4xMzcuMTcuMzExLjE3LjQ4OHYyOC43NTNsLTE3MS44NjYtMjE0LjgzMWMtNC41OTMtNS43NC0xMS40NDItOS4wMzItMTguNzkzLTkuMDMyaC0uNjQyLTc0LjU1Yy0uNDMyLS4wMDEtLjc4My0uMzUyLS43ODMtLjc4NHptNjcuODMzIDE1Ljc4M3Y4NC40aC0xOC4xMzR2LTg0LjR6bS0xOC4xMzQgOTkuNGgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzR2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzgzaC0xOC4xNzR2LTIwLjI1NmMwLTMuNTctMS4yMjgtNy4wNzItMy40NTgtOS44NTkgMC0uMDAxIDAtLjAwMSAwLS4wMDFsLTMwLjE3NC0zNy43MThoNTEuNzY2em0tMjgzLjItMTQ4LjMxN3YtMTYuNTY3YzAtLjQzMS4zNTItLjc4My43ODMtLjc4M2g2Ni41ODhjNy44MyAwIDE1LjEyNSAzLjUwNiAyMC4wMTYgOS42MmwxNjIuNTA4IDIwMy4xMzRjLjExLjEzOC4xNzEuMzEzLjE3MS40OXYyOC43NTRsLTE3MS44NjUtMjE0LjgzMmMtNC41OTItNS43NC0xMS40NDItOS4wMzMtMTguNzkzLTkuMDMzaC0uNjQyLTU3Ljk4M2MtLjQzMSAwLS43ODMtLjM1MS0uNzgzLS43ODN6bTUxLjI2NyAxNS43ODN2ODQuNGgtMTguMTM0di04NC40em0tMTguMTM0IDk5LjRoMTguMTMzdjE4LjEzM2gtMTguMTMzem0tMjQuMDY2IDM0OS40NjdjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2N3YtMzA2LjQ4M2MwLS40MzIuMzUyLS43ODQuNzgzLS43ODRoNTAuNDgzdjY3LjA1YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2g1MC40ODN2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODQgMTUuNzg0IDE1Ljc4NGg1MC40ODR2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODMgMTUuNzg0IDE1Ljc4M2g1MC40ODN2NjcuMDVjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yNDAuMjE3em00NzIuOTMzLS43ODNjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yMTYuMTljLjAxMy0uMjYxLjA0LS41MTkuMDQtLjc4M3YtNjcuMDVoMjE2LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+",Sxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk4LDMwLjU5OGgtMTUyYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjQwLjAwM2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDIwLjAwMXY3NC43OTRoLTE5MAoJCQkJYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjQwLjAwMmMwLDUuNTIzLDQuNDc4LDEwLDEwLDEwSDIwMHY3NC43OTZIMTBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NDAuMDAxYzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQkJCWgxMy45OTZWNDcxLjRjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGgxODEuNzZjMi4yNTYsMCw0LjQ0NS0wLjc2Myw2LjIxMy0yLjE2NWwyODYuMjQzLTIyNi45NzIKCQkJCWMyLjM5Mi0xLjg5NiwzLjc4Ni00Ljc4MiwzLjc4Ni03LjgzNVY4MC42MDFWNDAuNTk4QzUxMS45OTgsMzUuMDc1LDUwNy41MjIsMzAuNTk4LDUwMS45OTgsMzAuNTk4eiBNMTg5Ljk5OSwyMDUuMzk3di0yMC4wMDIKCQkJCWgxODB2MjAuMDAySDE4OS45OTl6IE0yMCwzNDAuMTk0di0yMC4wMDFoMTgwdjIwLjAwMUgyMHogTTQ5MS45OTgsMTA5Ljg3OWgtNDEuMDM1Yy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJCQljMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg0MS4wMzV2MTA5LjcxNUwyMTIuMjcxLDQ2MS40SDQzLjk5NnYtNjIuMjUzaDQxLjAzNmM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMEg0My45OTYKCQkJCXYtMTguOTUzSDIxMGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi00MC4wMDF2LTg0Ljc5NmgxNTkuOTk5YzUuNTIzLDAsMTAtNC40NzcsMTAtMTB2LTQwLjAwMlY5MC42MDFoMTAxLjk5OVYxMDkuODc5egoJCQkJIE00OTEuOTk4LDcwLjYwMWgtMTMyVjUwLjU5OGgxMzJWNzAuNjAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTQsMzc5LjE0NGgtMC4yMzZjLTUuNTI0LDAtMTAsNC40NzctMTAsMTBzNC40NzYsMTAsMTAsMTBIMTE0YzUuNTIyLDAsMTAtNC40NzcsMTAtMTBTMTE5LjUyMiwzNzkuMTQ0LDExNCwzNzkuMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjEuOTk4LDEyOS44OGgwLjIzNWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMGgtMC4yMzVjLTUuNTIzLDAtMTAsNC40NzctMTAsMTAKCQkJCVM0MTYuNDc1LDEyOS44OCw0MjEuOTk4LDEyOS44OHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",kxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNS41MTggNjRoMi45ODZjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDIxaDQ0Ljk5MnYyLjAyMWMwIC41NTMuNDQ3IDEgMSAxaDNjLjU1MyAwIDEtLjQ0NyAxLTF2LTYwLjVjMC0xLjM3OC0xLjEyMS0yLjUtMi41LTIuNXMtMi41IDEuMTIyLTIuNSAyLjV2MTUuNTA0aC0yLjk5OHYtMTMuOTk2YzAtLjU1Mi0uNDQ3LTEtMS0xaC0xNS45OTZjLS41NTMgMC0xIC40NDgtMSAxdjEzLjk5NWgtMy4wMDJ2LTEzLjk5NWMwLS41NTItLjQ0Ny0xLTEtMWgtMTUuOTk2Yy0uNTUzIDAtMSAuNDQ4LTEgMXYxMy45OTVoLTN2LTE1LjUwM2MwLTEuMzc4LTEuMTIxLTIuNS0yLjUtMi41cy0yLjUgMS4xMjItMi41IDIuNWwuMDE0IDYwLjVjMCAuNTUzLjQ0NyAxIDEgMXptNTAuOTc4LTYxLjVjMC0uMjc2LjIyNS0uNS41LS41cy41LjIyNC41LjV2NTkuNWgtMXptLTE0Ljk5OCAyLjUwOGgyLjAwMnYxLjAwOGgtMi4wMDJ6bS01Ljk5NiAwaDMuOTk2djIuMDA4YzAgLjU1Mi40NDcgMSAxIDFoNC4wMDJjLjU1MyAwIDEtLjQ0OCAxLTF2LTIuMDA4aDMuOTk4djEyLjk5NWgtMTMuOTk2em0tMTUuMDAyIDBoMnYxLjAwOGgtMnptLTUuOTk2IDBoMy45OTZ2Mi4wMDhjMCAuNTUyLjQ0NyAxIDEgMWg0Yy41NTMgMCAxLS40NDggMS0xdi0yLjAwOGg0djEyLjk5NWgtMTMuOTk2em0tNSAxNC45OTVoNCAxNS45OTYgNS4wMDIgMTUuOTk2IDMuOTk4djFoLTQ0Ljk5MnptMCAzaDQ0Ljk5MnYxMy45NzFoLTIuOTk2di0xMC45OWMwLS41NTItLjQ0Ny0xLTEtMWgtMzdjLS41NTMgMC0xIC40NDgtMSAxdjEwLjk5MWgtMi45OTZ6bTE5Ljk5NiA2Ljk4MWg1Yy41NTMgMCAxLS40NDggMS0xdi0yaDE0djkuOTkxaC0zNXYtOS45OTFoMTR2MmMwIC41NTIuNDQ3IDEgMSAxem0xLTJ2LTFoM3Yxem0tMjAuOTk2IDEwLjk5MWgzLjk5NiAzNyAzLjk5NnYxLjAwMmgtNDQuOTkyem0wIDMuMDAyaDQ0Ljk5MnYxNGgtMi45OTR2LTExLjk5YzAtLjU1My0uNDQ3LTEtMS0xaC0xNC4wMDJjLS41NTMgMC0xIC40NDctMSAxdjExLjk5aC0yLjk5NHYtOC45ODhjMC0uNTUzLS40NDctMS0xLTFoLTYuOTk0Yy0uMDA0IDAtLjAwNi0uMDAyLS4wMS0uMDAycy0uMDA2LjAwMi0uMDEuMDAyaC0zLjk4MmMtLjAwNCAwLS4wMDYtLjAwMi0uMDEtLjAwMnMtLjAwNi4wMDItLjAxLjAwMmgtNi45ODZjLS41NTMgMC0xIC40NDctMSAxdjguOTg4aC0zem0zMS45OTYgNi4wMTdoNC4wMDJjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDA4aDN2MTAuOTloLTEyLjAwMnYtMTAuOTloM3YyLjAwOGMwIC41NTMuNDQ3IDEgMSAxem0xLTJ2LTEuMDA4aDIuMDAydjEuMDA4em0tMjIgNWg0LjAwMmMuNTUzIDAgMS0uNDQ3IDEtMXYtMi4wMDZoNS4wMDR2Ny45ODhoLTE2LjAwMnYtNy45ODhoNC45OTZ2Mi4wMDZjMCAuNTUzLjQ0NyAxIDEgMXptMS0ydi0xLjAwNmgyLjAwMnYxLjAwNnptLTExLjk5NiA4Ljk4M2g0IDE4LjAwMiA0Ljk5NCAxNC4wMDIgMy45OTR2MS4wMDJoLTQ0Ljk5MnptLTIuNS01NS45NzdjLjI3NSAwIC41LjIyNC41LjV2NTkuNWgtLjk4NmwtLjAxNC01OS41YzAtLjI3Ni4yMjUtLjUuNS0uNXoiLz4KICAgIDwvZz4KPC9zdmc+",Yxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMgM3YtMmgtMzFjLS41NTMgMC0xIC40NDctMSAxdjhjMCAuNTUzLjQ0NyAxIDEgMWgxdjUwaC0zMnYyaDMzIDQgOCA0IDEzdi0yaC0xMnYtNWgxMnYtMmgtMTMtNC0zdi0yaDIwdi0yaC0yMWMtLjU1MyAwLTEgLjQ0Ny0xIDF2NGMwIC41NTMuNDQ3IDEgMSAxaDN2NWgtNnYtNTBoMjR2LTJoLTI1LTQtMXYtNnptLTE2IDUzaDJ2NWgtMnptLTEwLTQ1djUwaC0ydi01MHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjEgMzJjMC0yLjExOC0uNTAxLTQuMjM4LTEuNDQ3LTYuMTMxbC0uNjU4LTEuMzE2Yy0uMzQtLjY3OC0xLjQ0OS0uNjc4LTEuNzg5IDBsLS42NTggMS4zMTZjLS45NDcgMS44OTMtMS40NDggNC4wMTMtMS40NDggNi4xMzEgMCAuMjQxLjAyOS40ODEuMDQyLjcyMi0uNjQ2LS40ODMtMS4zODMtLjgzNy0yLjE3Mi0xLjAzNGwtMi42MjgtLjY1N2MtLjMzOC0uMDg3LS43MDEuMDE1LS45NDkuMjYzcy0uMzQ5LjYwOC0uMjYzLjk0OWwuNjU3IDIuNjI5Yy4yNjkgMS4wNzMuODIzIDIuMDU1IDEuNjA1IDIuODM2Ljc4MS43ODIgMS43NjMgMS4zMzcgMi44MzYgMS42MDVoLjAwMWwuNjcyLjE2OC0xLjI1LjYyNS44OTUgMS43ODkgMi41NTQtMS4yNzd2Mi4zODJoLTdjLS41NTMgMC0xIC40NDctMSAxdjRjMCAuNTUzLjQ0NyAxIDEgMWgxLjA5NWwuOTEgOS4xYy4wNTEuNTEuNDgxLjkuOTk1LjloMTBjLjUxNCAwIC45NDQtLjM5Ljk5NS0uOWwuOTEtOS4xaDEuMDk1Yy41NTMgMCAxLS40NDcgMS0xdi00YzAtLjU1My0uNDQ3LTEtMS0xaC03di0yLjM4MmwyLjU1MyAxLjI3Ni44OTUtMS43ODktMS4yNS0uNjI1LjY3Mi0uMTY4aC4wMDFjMS4wNzMtLjI2OSAyLjA1NS0uODIzIDIuODM2LTEuNjA1Ljc4Mi0uNzgxIDEuMzM3LTEuNzYzIDEuNjA1LTIuODM3bC42NTctMi42MjhjLjA4Ni0uMzQxLS4wMTUtLjcwMS0uMjYzLS45NDlzLS42MDktLjM1LS45NDktLjI2M2wtMi42MjkuNjU3Yy0uNzg4LjE5Ny0xLjUyNS41NTEtMi4xNzEgMS4wMzQuMDE0LS4yNC4wNDMtLjQ4LjA0My0uNzIxem0xLjA5NSAyNWgtOC4xODlsLS44LThoOS43OXptMi45MDUtMTBoLTE0di0yaDE0em0tNy0xOS43MzRjLjY1NSAxLjQ4NSAxIDMuMTEgMSA0LjczNHMtLjM0NSAzLjI0OS0xIDQuNzM0Yy0uNjU1LTEuNDg1LTEtMy4xMS0xLTQuNzM0cy4zNDUtMy4yNDkgMS00LjczNHptLTUuMjkzIDkuMDI3Yy0uNTI1LS41MjUtLjg5OC0xLjE4Ni0xLjA4LTEuOTA3bC0uMjUyLTEuMDExIDEuMDEuMjUyYy43MjMuMTgyIDEuMzgzLjU1NSAxLjkwOCAxLjA4cy44OTggMS4xODYgMS4wOCAxLjkwN2wuMjUyIDEuMDExLTEuMDEtLjI1MmMtLjcyMi0uMTgyLTEuMzgzLS41NTUtMS45MDgtMS4wOHptMTAuOTA3LTIuNjY2IDEuMDExLS4yNTItLjI1MiAxLjAxYy0uMTgyLjcyMy0uNTU1IDEuMzgzLTEuMDggMS45MDhzLTEuMTg2Ljg5OC0xLjkwOCAxLjA4bC0xLjAxLjI1Mi4yNTItMS4wMWMuMTgyLS43MjMuNTU1LTEuMzgzIDEuMDgtMS45MDhzMS4xODYtLjg5OCAxLjkwNy0xLjA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im01IDE1aDEzYzIuNzU3IDAgNS0yLjI0MyA1LTVzLTIuMjQzLTUtNS01Yy0uNDM4IDAtLjg3Ny4wNjEtMS4zMDMuMTgtLjc2Ni0yLjQ1NS0zLjAyMy00LjE4LTUuNjk3LTQuMTgtMy4zMDkgMC02IDIuNjkxLTYgNi0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0em0wLTZjLjI3IDAgLjUzMy4wNTQuNzgzLjE2LjM1Mi4xNDcuNzU2LjA4NSAxLjA0My0uMTYzLjI4OC0uMjQ4LjQxMS0uNjM5LjMxNy0xLjAwNy0uMDk4LS4zNzctLjE0My0uNjkyLS4xNDMtLjk5IDAtMi4yMDYgMS43OTQtNCA0LTQgMi4wODEgMCAzLjc4NCAxLjU3NCAzLjk2MSAzLjY2Mi4wMjguMzQ1LjIzMy42NDguNTQuODA2LjMwOC4xNTguNjc1LjE0NS45Ny0uMDMyLjQ4My0uMjkuOTk3LS40MzYgMS41MjktLjQzNiAxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM2gtMTNjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yeiIvPgogICAgPC9nPgo8L3N2Zz4=",vxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",bxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOSA1MDkiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNTkuMiAwdjg5LjhoLTg5LjgwMXY4OS44aC04OS44djg5LjhoLTg5Ljc5OXY4OS44aC04OS44djE0OS44aDUwOXYtNTA5em0xMTkuOCA0NzloLTQ0OXYtODkuOGg4OS44di04OS44aDg5Ljh2LTg5LjhoODkuOHYtODkuOGg4OS44di04OS44aDg5Ljh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTY4LjQ0OCAxNzYuOTU2IDk0LjA0MS05NC4wNC0zLjYyOSA0My4wNjYgMjkuODk1IDIuNTE5IDguNTYyLTEwMS42MjYtMTAxLjYyNyA4LjU2MiAyLjUxOCAyOS44OTQgNDMuMDY4LTMuNjI4LTk0LjA0MSA5NC4wNHoiLz4KICAgIDwvZz4KPC9zdmc+",Qxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y0Mi42NjcKCQkJQzI0Ny40NjcsMzcuOTU2LDI0My42NDQsMzQuMTMzLDIzOC45MzMsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzcuODY3LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjc2LjhjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzUzQ4Ni40LDgxLjUxLDQ4Ni40LDc2LjhWNDIuNjY3CgkJCUM0ODYuNCwzNy45NTYsNDgyLjU3NywzNC4xMzMsNDc3Ljg2NywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE3OS4yLDBIOC41MzNDMy44MjMsMCwwLDMuODIzLDAsOC41MzN2NDk0LjkzM0MwLDUwOC4xNzcsMy44MjMsNTEyLDguNTMzLDUxMkgxNzkuMmM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzMKCQkJVjguNTMzQzE4Ny43MzMsMy44MjMsMTgzLjkxLDAsMTc5LjIsMHogTTE3MC42NjcsNDk0LjkzM2gtMTUzLjZWMTcuMDY3aDE1My42VjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMzU4LjRIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxMzYuNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gzMjQuMjY3CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzY2LjkzM0M1MTIsMzYyLjIyMyw1MDguMTc3LDM1OC40LDUwMy40NjcsMzU4LjR6IE00OTQuOTMzLDQ5NC45MzNoLTMwNy4yVjM3NS40NjdoMzA3LjIKCQkJVjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMEgxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjguNTMzQzUxMiwzLjgyMyw1MDguMTc3LDAsNTAzLjQ2NywweiBNNDk0LjkzMywzNC4xMzNoLTMwNy4yVjE3LjA2N2gzMDcuMlYzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzNi41MzMsMjQ3LjQ2N2gtMjUuNmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDI1LjZjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMxNDEuMjQ0LDI0Ny40NjcsMTM2LjUzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTAuOTMzLDI0Ny40NjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YyNS42YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YyNTYKCQkJQzExOS40NjcsMjUxLjI5LDExNS42NDQsMjQ3LjQ2NywxMTAuOTMzLDI0Ny40Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Ni45MzMsNDE4LjEzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDUxLjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMzNzEuNjQ0LDQxOC4xMzMsMzY2LjkzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDEuMzMzLDQxOC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxNy4wNjdjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCXYtMTcuMDY3QzM0OS44NjcsNDIxLjk1NiwzNDYuMDQ0LDQxOC4xMzMsMzQxLjMzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yOTAuMTMzLDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMyOTguNjY3LDM3Ljk1NiwyOTQuODQ0LDM0LjEzMywyOTAuMTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywxMTkuNDY3Yy00NS45MzUsMC03Ni44LDE3LjE0My03Ni44LDQyLjY2N1YxNzkuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTcuMDY3djc2LjgKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM0gzMzIuOGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhIMzU4LjRjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzM2Ni45MzMsMTM2LjYxLDMzNi4wNjgsMTE5LjQ2NywyOTAuMTMzLDExOS40Njd6IE0zNDkuODY3LDE3MC42NjdIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZIMjU2di03Ni44CgkJCWMwLTQuNzEtMy44MjMtOC41MzMtOC41MzMtOC41MzNIMjMwLjR2LTguNTMzYzAtMTIuNDA3LDIwLjkzMi0yNS42LDU5LjczMy0yNS42czU5LjczMywxMy4xOTMsNTkuNzMzLDI1LjZWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQ5Ljg2NywxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDI2LjY2NywxMzYuNjEsMzk1LjgwMiwxMTkuNDY3LDM0OS44NjcsMTE5LjQ2N3ogTTQwOS42LDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJSDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3YzAtOS44MTMtNC43MzYtMTguNTc3LTEzLjM4LTI1LjU1N2MzNi40MzcsMC44MDIsNTYuMDQ3LDEzLjU0Miw1Ni4wNDcsMjUuNTU3CgkJCVYxNzAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDkuNiwxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjg1LjMzMwoJCQljMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczM2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhoMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUM0ODYuNCwxMzYuNjEsNDU1LjUzNSwxMTkuNDY3LDQwOS42LDExOS40Njd6IE00NjkuMzMzLDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJaDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTMzA0LjI0Nyw4NS4zMzMsMjkwLjEzMyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMzNjYuOTMzLDM3Ljk1NiwzNjMuMTEsMzQuMTMzLDM1OC40LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzU4LjQsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzM3Mi41MTQsODUuMzMzLDM1OC40LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDNDM1LjIsMzcuOTU2LDQzMS4zNzcsMzQuMTMzLDQyNi42NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjYuNjY3LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVM0NDAuNzgxLDg1LjMzMyw0MjYuNjY3LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDg2LjQsMzI0LjI2N0gxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzA3LjIKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YzMzIuOEM0OTQuOTMzLDMyOC4wOSw0OTEuMTEsMzI0LjI2Nyw0ODYuNCwzMjQuMjY3eiBNNDc3Ljg2NywzNTguNEgxODcuNzMzdi0xNy4wNjdoMjkwLjEzMwoJCQlWMzU4LjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2OS4zMzMsMzkyLjUzM2gtMjU2Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NjguMjY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNTYKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNjguMjY3QzQ3Ny44NjcsMzk2LjM1Niw0NzQuMDQ0LDM5Mi41MzMsNDY5LjMzMywzOTIuNTMzeiBNNDYwLjgsNDYwLjhIMjIxLjg2N3YtNTEuMkg0NjAuOAoJCQlWNDYwLjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTUuNzU4IDYxLTEuNTY5LTUuNTdjNC4wNTMtMi4yMDQgNi44MTEtNi41MDEgNi44MTEtMTEuNDN2LTFjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMnYtMTBjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMmgtMjZjLTEuMTAzIDAtMiAuODk3LTIgMnYyYzAgMS4xMDMuODk3IDIgMiAydjEwYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MmMwIDEuMTAzLjg5NyAyIDIgMnYxYzAgNC45MjkgMi43NTggOS4yMjYgNi44MTEgMTEuNDNsLTEuNTY5IDUuNTdoLTEzLjM0M2MtLjQ2NS0yLjI3OS0yLjQ4NC00LTQuODk5LTRoLTF2LTkuMDAzYzQuNjkzLTEuOTYzIDgtNi42IDgtMTEuOTk3di03aC0xOHYtNGg0djJoMnYtMmMwLTEuMTAzLS44OTctMi0yLTJoLTYtMS0xYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NGgtMnY3YzAgNS4zOTcgMy4zMDcgMTAuMDM0IDggMTEuOTk3djkuMDAzaC0xYy0yLjQxNCAwLTQuNDM0IDEuNzIxLTQuODk5IDRoLTUuMTAxdjJoNjR2LTJ6bS0yMC43NTktMzhoMjYuMDAxdjJoLTI2em0yLjAwMSA4aDR2LTJoLTR2LTJoMjJ2MTBoLTIyem0tMi4wMDEgOGgyNi4wMDF2MmgtMjZ6bTIuMDAxIDV2LTFoMjJ2MWMwIDYuMDY1LTQuOTM1IDExLTExIDExcy0xMS00LjkzNS0xMS0xMXptNi42NjEgMTIuMjRjMS4zNi40ODMgMi44MTYuNzYgNC4zMzkuNzZzMi45NzktLjI3NyA0LjMzOS0uNzZsMS4zNCA0Ljc2aC0xMS4zNTh6bS0zNi42NjEtMzEuMjRoMSAxdjRoLTJ6bTIwIDZ2MmgtMjJ2LTJ6bS0yMiA1di0xaDIydjFjMCA2LjA2NS00LjkzNSAxMS0xMSAxMXMtMTEtNC45MzUtMTEtMTF6bTggMTIuNjM3Yy45NjUuMjI5IDEuOTY2LjM2MyAzIC4zNjNzMi4wMzUtLjEzNCAzLS4zNjN2OC4zNjNoLTZ6bS0zIDEwLjM2M2gxMmMxLjMwMiAwIDIuNDAyLjgzOSAyLjgxNiAyaC0xNy42MzJjLjQxNC0xLjE2MSAxLjUxNC0yIDIuODE2LTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQgMjFoMjRjMS42NTQgMCAzLTEuMzQ2IDMtM3YtMTRjMC0xLjY1NC0xLjM0Ni0zLTMtM2gtMjRjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2MTRjMCAxLjY1NCAxLjM0NiAzIDMgM3ptLTEtMTdjMC0uNTUxLjQ0OC0xIDEtMWgyNGMuNTUyIDAgMSAuNDQ5IDEgMXYxNGMwIC41NTEtLjQ0OCAxLTEgMWgtMjRjLS41NTIgMC0xLS40NDktMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyLjUxNWgydjE2Ljk3MWgtMnoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC00LjU1NiAxMSkiLz4KICAgICAgICA8cGF0aCBkPSJtMjAgMi41MTVoMnYxNi45NzFoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzA3IC0uNzA3IC43MDcgLjcwNyAtMS42MjcgMTguMDcxKSIvPgogICAgICAgIDxwYXRoIGQ9Im0zNSA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzUgMTNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxMWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDExaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgM2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDMgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDEzaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTUgMTdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01NyAxNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUzIDE1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",$xe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",Pxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTIzOC45MzMsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWNzYuOGMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWNDIuNjY3CgkJCUMyNDcuNDY3LDM3Ljk1NiwyNDMuNjQ0LDM0LjEzMywyMzguOTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDc3Ljg2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1M0ODYuNCw4MS41MSw0ODYuNCw3Ni44VjQyLjY2NwoJCQlDNDg2LjQsMzcuOTU2LDQ4Mi41NzcsMzQuMTMzLDQ3Ny44NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzkuMiwwSDguNTMzQzMuODIzLDAsMCwzLjgyMywwLDguNTMzdjQ5NC45MzNDMCw1MDguMTc3LDMuODIzLDUxMiw4LjUzMyw1MTJIMTc5LjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVY4LjUzM0MxODcuNzMzLDMuODIzLDE4My45MSwwLDE3OS4yLDB6IE0xNzAuNjY3LDQ5NC45MzNoLTE1My42VjE3LjA2N2gxNTMuNlY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDM1OC40SDE3OS4yYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjM2Ni45MzNDNTEyLDM2Mi4yMjMsNTA4LjE3NywzNTguNCw1MDMuNDY3LDM1OC40eiBNNDk0LjkzMyw0OTQuOTMzaC0zMDcuMlYzNzUuNDY3aDMwNy4yCgkJCVY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDBIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMyNC4yNjcKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y4LjUzM0M1MTIsMy44MjMsNTA4LjE3NywwLDUwMy40NjcsMHogTTQ5NC45MzMsMzQuMTMzaC0zMDcuMlYxNy4wNjdoMzA3LjJWMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzYuNTMzLDI0Ny40NjdoLTI1LjZjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNS42YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMTQxLjI0NCwyNDcuNDY3LDEzNi41MzMsMjQ3LjQ2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzMywyNDcuNDY3Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MjUuNmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWMjU2CgkJCUMxMTkuNDY3LDI1MS4yOSwxMTUuNjQ0LDI0Ny40NjcsMTEwLjkzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjYuOTMzLDQxOC4xMzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1MS4yYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMzcxLjY0NCw0MTguMTMzLDM2Ni45MzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQxLjMzMyw0MTguMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTcuMDY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQl2LTE3LjA2N0MzNDkuODY3LDQyMS45NTYsMzQ2LjA0NCw0MTguMTMzLDM0MS4zMzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMjk4LjY2NywzNy45NTYsMjk0Ljg0NCwzNC4xMzMsMjkwLjEzMywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsMTE5LjQ2N2MtNDUuOTM1LDAtNzYuOCwxNy4xNDMtNzYuOCw0Mi42NjdWMTc5LjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDE3LjA2N3Y3Ni44CgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNIMzMyLjhjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44SDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUMzNjYuOTMzLDEzNi42MSwzMzYuMDY4LDExOS40NjcsMjkwLjEzMywxMTkuNDY3eiBNMzQ5Ljg2NywxNzAuNjY3SDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWMjU2SDI1NnYtNzYuOAoJCQljMC00LjcxLTMuODIzLTguNTMzLTguNTMzLTguNTMzSDIzMC40di04LjUzM2MwLTEyLjQwNywyMC45MzItMjUuNiw1OS43MzMtMjUuNnM1OS43MzMsMTMuMTkzLDU5LjczMywyNS42VjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM0OS44NjcsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzSDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2ODUuMzMzCgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoNTkuNzMzYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNzYuOGgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzQyNi42NjcsMTM2LjYxLDM5NS44MDIsMTE5LjQ2NywzNDkuODY3LDExOS40Njd6IE00MDkuNiwxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCUgzNTguNGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjYsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzaC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDg2LjQsMTM2LjYxLDQ1NS41MzUsMTE5LjQ2Nyw0MDkuNiwxMTkuNDY3eiBNNDY5LjMzMywxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCWgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjdjMC05LjgxMy00LjczNi0xOC41NzctMTMuMzgtMjUuNTU3YzM2LjQzNywwLjgwMiw1Ni4wNDcsMTMuNTQyLDU2LjA0NywyNS41NTcKCQkJVjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzMwNC4yNDcsODUuMzMzLDI5MC4xMzMsODUuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTguNCwzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMzY2LjkzMywzNy45NTYsMzYzLjExLDM0LjEzMywzNTguNCwzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVMzNzIuNTE0LDg1LjMzMywzNTguNCw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyNi42NjcsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NTEuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTUxLjIKCQkJQzQzNS4yLDM3Ljk1Niw0MzEuMzc3LDM0LjEzMyw0MjYuNjY3LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2Nyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTNDQwLjc4MSw4NS4zMzMsNDI2LjY2Nyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4Ni40LDMyNC4yNjdIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMwNy4yCgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzMyLjhDNDk0LjkzMywzMjguMDksNDkxLjExLDMyNC4yNjcsNDg2LjQsMzI0LjI2N3ogTTQ3Ny44NjcsMzU4LjRIMTg3LjczM3YtMTcuMDY3aDI5MC4xMzMKCQkJVjM1OC40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjkuMzMzLDM5Mi41MzNoLTI1NmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjY4LjI2N2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjU2CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTY4LjI2N0M0NzcuODY3LDM5Ni4zNTYsNDc0LjA0NCwzOTIuNTMzLDQ2OS4zMzMsMzkyLjUzM3ogTTQ2MC44LDQ2MC44SDIyMS44Njd2LTUxLjJINDYwLjgKCQkJVjQ2MC44eiIvPgogICAgPC9nPgo8L3N2Zz4K",Wxe="PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE5NC44MzYgNThoLTExOS4zMjhjLTI0LjQ0NSAwLTQ0LjMzNiAxOS44ODktNDQuMzM2IDQ0LjMzNnYxMTkuMzI4YzAgMjQuNDQ3IDE5Ljg5MSA0NC4zMzYgNDQuMzM2IDQ0LjMzNmgxMTkuMzI4YzI0LjQ0NSAwIDQ0LjMzNi0xOS44ODkgNDQuMzM2LTQ0LjMzNnYtMTE5LjMyOGMwLTI0LjQ0Ny0xOS44OTEtNDQuMzM2LTQ0LjMzNi00NC4zMzZ6bTM2LjMzNiAxNjMuNjY0YzAgMjAuMDM1LTE2LjMwMSAzNi4zMzYtMzYuMzM2IDM2LjMzNmgtMTE5LjMyOGMtMjAuMDM1IDAtMzYuMzM2LTE2LjMwMS0zNi4zMzYtMzYuMzM2di0xMTkuMzI4YzAtMjAuMDM1IDE2LjMwMS0zNi4zMzYgMzYuMzM2LTM2LjMzNmgxMTkuMzI4YzIwLjAzNSAwIDM2LjMzNiAxNi4zMDEgMzYuMzM2IDM2LjMzNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM1LjE3MiA3NGMtNDkuNjI1IDAtOTAgNDAuMzczLTkwIDkwczQwLjM3NSA5MCA5MCA5MCA5MC00MC4zNzMgOTAtOTAtNDAuMzc1LTkwLTkwLTkwem0wIDE3MmMtNDUuMjE1IDAtODItMzYuNzg1LTgyLTgyczM2Ljc4NS04MiA4Mi04MiA4MiAzNi43ODUgODIgODItMzYuNzg1IDgyLTgyIDgyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzUuMTcyIDkwYy00MC44MDUgMC03NCAzMy4xOTUtNzQgNzRzMzMuMTk1IDc0IDc0IDc0IDc0LTMzLjE5NSA3NC03NC0zMy4xOTUtNzQtNzQtNzR6bTAgMTQwYy0zNi4zOTEgMC02Ni0yOS42MDctNjYtNjZzMjkuNjA5LTY2IDY2LTY2IDY2IDI5LjYwNyA2NiA2Ni0yOS42MSA2Ni02NiA2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNzkuMTcyIDEzOHYzMmMwIDIuMjA5IDEuNzg5IDQgNCA0aDEwNGMyLjIxMSAwIDQtMS43OTEgNC00di0zMmMwLTIuMjA5LTEuNzg5LTQtNC00aC0xMDRjLTIuMjExIDAtNCAxLjc5MS00IDR6bTggNGg5NnYyNGgtOTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNy4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyOS4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE0NS4xNzIgMTUxLjQ3Yy0yLjUwMiAwLTQuNTMgMi4wMjgtNC41MyA0LjUzIDAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTMgMi41MDEgMCA0LjUzLTIuMDI4IDQuNTMtNC41My0uMDAxLTIuNTAyLTIuMDI5LTQuNTMtNC41My00LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDEuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTMuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjE5OS4xNzIiIGN5PSIzOCIgcj0iNCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzkuMTcyIDQ2Yy02LjYxNyAwLTEyIDUuMzgzLTEyIDEyczUuMzgzIDEyIDEyIDEyIDEyLTUuMzgzIDEyLTEyLTUuMzgzLTEyLTEyLTEyem0wIDE2Yy0yLjIwNyAwLTQtMS43OTUtNC00czEuNzkzLTQgNC00IDQgMS43OTUgNCA0LTEuNzkzIDQtNCA0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuODI4IDExMCAyLjgyOC0yLjgyOGMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2cy00LjA5NC0xLjU2Mi01LjY1NiAwbC0yLjgyOCAyLjgyOC0yLjgyOC0yLjgyOGMtMS41NjItMS41NjItNC4wOTQtMS41NjItNS42NTYgMHMtMS41NjIgNC4wOTQgMCA1LjY1NmwyLjgyOCAyLjgyOC0yLjgyOCAyLjgyOGMtMS41NjIgMS41NjItMS41NjIgNC4wOTQgMCA1LjY1Ni43ODEuNzgxIDEuODA1IDEuMTcyIDIuODI4IDEuMTcyczIuMDQ3LS4zOTEgMi44MjgtMS4xNzJsMi44MjgtMi44MjggMi44MjggMi44MjhjLjc4MS43ODEgMS44MDUgMS4xNzIgMi44MjggMS4xNzJzMi4wNDctLjM5MSAyLjgyOC0xLjE3MmMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuMTcyIDE5NGgtNC45MzRsNS44NTktOS43NjhjMS4xMzctMS44OTUuNTIzLTQuMzUyLTEuMzcxLTUuNDg4LTEuODk4LTEuMTM3LTQuMzUyLS41MjEtNS40ODggMS4zNzFsLTkuNDk2IDE1LjgyNmMtLjc0MiAxLjIzNi0uNzYyIDIuNzc1LS4wNTEgNC4wMjlzMi4wMzkgMi4wMjkgMy40OCAyLjAyOWg1LjUyN2wtNS4xMDUgMTAuMjExYy0uOTg4IDEuOTc3LS4xODggNC4zNzkgMS43ODkgNS4zNjcuNTc0LjI4NyAxLjE4NC40MjIgMS43ODUuNDIyIDEuNDY5IDAgMi44NzktLjgwOSAzLjU4Mi0yLjIxMWw4LTE2Yy42MjEtMS4yNC41NTUtMi43MTMtLjE3Ni0zLjg5My0uNzI5LTEuMTc2LTIuMDE0LTEuODk1LTMuNDAxLTEuODk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDcuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTE5LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjMuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc1LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Bxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMi41IDUxMi41IiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsNDE4LjVjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjV2NzguNWMwLDkuNjczLDE1LDkuNjczLDE1LDBWNDI2QzUxMi4yNSw0MjEuODU4LDUwOC44OTMsNDE4LjUsNTA0Ljc1LDQxOC41eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsMjQ5LjM1NWgtNTguODk0di0yNy4wNDNoMTguMDExYzEwLjk2NCwwLDE5Ljg4My04LjkxOSwxOS44ODMtMTkuODgzVjE5Ljg4NEM0ODMuNzUsOC45Miw0NzQuODMxLDAsNDYzLjg2NywwICAgSDE4NC4wNTljLTEwLjk2NCwwLTE5Ljg4Myw4LjkyLTE5Ljg4MywxOS44ODR2MjYuOTI5YzAsOS42NzMsMTUsOS42NzMsMTUsMFYxOS44ODRjMC0yLjY5MywyLjE5LTQuODg0LDQuODgzLTQuODg0aDI3OS44MDkgICBjMi42OTIsMCw0Ljg4MywyLjE5MSw0Ljg4Myw0Ljg4NHYxNDUuNDI5aC0yMi44OTRWODUuNDA2YzAtMi40NzUtMS4yMjEtNC43OS0zLjI2My02LjE4OGMtMi4wNDEtMS4zOTgtNC42NDEtMS42OTktNi45NDktMC44MDUgICBjLTEuOTYyLDAuNzYxLTQzLjM0LDE3LjY1OS01Mi4xNDYsODYuODk5SDE3OS4xNzZ2LTc5LjVjMC05LjY3My0xNS05LjY3My0xNSwwdjExNi42MTdjMCwxMC45NjQsOC45MTksMTkuODgzLDE5Ljg4MywxOS44ODMgICBoMTAwLjc0NnYyNy4wNDNIMTE0LjUxNmMxNi42MTItMTYuNTk0LDE4LjIzNC00Mi44NzEsMTguMjM0LTY0Ljk0OWMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41aC00MC41di0xNC4xNTkgICBjMjQuMDYsNS4xMTQsNTAuMjg4LTE0LjYxNiw0OS45NjctMzkuNjQ1Yy0wLjA0My0zLjM1Mi0wLjQ1OS02Ljc1OC0zLjU1Ni04LjgwM2MtMTQuMjQ2LTkuNDAzLTMzLjg2Ni01LjQ4NS00Ni40MTEsNC43ODN2LTEzLjUyOSAgIGMyMS40MzMtMTQuNzkzLDIzLjAyNS00OS42MjksMi40MjktNjUuODg5Yy0yLjA3NS0xLjYzOC00LjM3MS0zLjE5Ny02LjgzNC00LjIwMWMtMTAuNTcxLTQuMzE2LTIyLjE5MSwxNC41MTMtMjQuNzEsMjEuNzgxICAgYy01Ljk1MSwxNy4xNzQtMC41NjgsMzYuOTI2LDE0LjExNCw0Ny44MjR2MTMuOTMxYy05LjYyNy03LjgzMy0yMi4yLTExLjY5Ni0zNC40ODMtOS4yMzZjLTUuMDc2LDEuMDE3LTEzLjk3MSwzLjMxNC0xNS4wNzgsOS40NjcgICBjLTQuNzU4LDI2LjQ3NiwyNS4yMzUsNDguNjQzLDQ5LjU2Miw0My41Mzl2MTQuMTM3aC00My41Yy00LjE0MywwLTcuNSwzLjM1OC03LjUsNy41YzAsMjIuMDQ3LDEuMTk2LDQ4LjM1NywxNy44MDYsNjQuOTQ5SDcuNzUgICBjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjVWNTA0LjVjMCw5LjY3MywxNSw5LjY3MywxNSwwdi0zNWgxMzUuNXYzNWMwLDkuNjczLDE1LDkuNjczLDE1LDB2LTE5MWgyNjUuMjE1ICAgYzAuMDM5LDIuNjEzLDAuMjg5LDE2LjY4OCwwLjMyLDIwLjkwNkgzMDQuMzU2Yy0yOS42NTEsMC01MS42Miw3LjcxOC02NS4yOTgsMjIuOTM5Yy0xNi40MjIsMTguMjc0LTE0LjI2LDQwLjQyNi0xNC4xNTksNDEuMzU5ICAgYzAuNDA4LDMuODExLDMuNjI0LDYuNzAxLDcuNDU3LDYuNzAxaDk2Ljg5NHYxMy41aC0yOS41Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMjkuNVY0OTdoLTk2Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMTAwLjgyNSAgIGMwLjgzMiwwLjMxOCwxLjczMSwwLjUsMi42NzUsMC41czEuODQzLTAuMTgyLDIuNjc1LTAuNUg0NDAuMjVjOS42NzMsMCw5LjY3My0xNSwwLTE1aC05NnYtOTEuNTk0aDUwLjEwNiAgIGMxNy4yMTgsMCwyOS42NjQtNC4xNTEsMzguMDUyLTEyLjY5YzE0LjY5OS0xNC45NjUsMTQuMjUxLTQwLjAyMiwxMy42ODQtNzEuNzQ3Yy0wLjA0NC0yLjQ1NC0wLjA4Ny00Ljk1LTAuMTI1LTcuNDdoNTEuMjgzVjM4NCAgIGMwLDkuNjczLDE1LDkuNjczLDE1LDBWMjU2Ljg1NUM1MTIuMjUsMjUyLjcxMyw1MDguODkzLDI0OS4zNTUsNTA0Ljc1LDI0OS4zNTV6IE05Ny4yNzYsMTI4LjQ5NiAgIGM5LjY1Mi02LjEyNCwxOC4wNDktNC42ODEsMjIuNDIxLTMuMTM3Yy0xLjMyLDE1LjU0Ny0yMC4yMjEsMjYuODYtMzQuNjY4LDIxLjk2M0M4NS42MzUsMTQyLjUxMSw4OC4wNzcsMTM0LjMzMiw5Ny4yNzYsMTI4LjQ5NnogICAgTTQ3LjQyNCwxNDQuMDk3Yy02LjM3Mi00LjA0My0xMS43OTItMTEuMDA1LTEyLjQ5My0xOC43NDJjMTUuMDItNS4yOCwzMi42ODMsNi40MTgsMzQuNjQsMjEuOTY3ICAgQzYyLjI4NiwxNDkuNzkyLDUzLjgxLDE0OC4xNDgsNDcuNDI0LDE0NC4wOTd6IE03Ny42MzcsNTEuMTY5YzEyLjU2LDkuNTU0LDExLjk5NywzMS4zNTktMC4wNDQsNDEuMDU0ICAgYy0zLjcxNS0zLjA1NS05LjMxOS05LjQ4MS05LjMxOS0yMC40NDFDNjguMjczLDYwLjM1Miw3My45OTEsNTQuMDM1LDc3LjYzNyw1MS4xNjl6IE0zMy44NTYsMTkxLjkwNmg4My43ODEgICBjLTEuMjcsNDAuNTE1LTEzLjM2Miw1Ni41LTQxLjg4OCw1Ni41QzQ2LjgzMiwyNDguNDA3LDM1LjA3MiwyMzIuOTM2LDMzLjg1NiwxOTEuOTA2eiBNNDIxLjcwNywzODIuMjA1ICAgYy01LjQyMSw1LjUxOS0xNC4zNjcsOC4yMDEtMjcuMzUxLDguMjAxSDI0MC4wMTNjMC42OTQtNS45ODgsMy4wMDYtMTUuMDI2LDEwLjIwMy0yMy4wMzUgICBjMTAuNzEyLTExLjkyMSwyOC45MjctMTcuOTY1LDU0LjE0MS0xNy45NjVoMTI2LjczNkM0MzAuNDczLDM2NC4xMDUsNDI4LjI1MSwzNzUuNTQzLDQyMS43MDcsMzgyLjIwNXogTTQ2OC43NSwxODAuMzEzdjIyLjExNyAgIGMwLDIuNjkzLTIuMTksNC44ODMtNC44ODMsNC44ODNoLTE4LjAxMXYtMjdINDY4Ljc1eiBNNDE5LjEyNiwxMTEuMzU4YzQuMDg0LTUuMzk1LDguMTktOS40MSwxMS43My0xMi4zMjJ2MTg3Ljg2MyAgIGMtMy41MjgtMy4wMjMtNy42MDQtNy4xNDYtMTEuNjU5LTEyLjYyMmMtMTQuNjE1LTE5LjczOS0yMi4zNDEtNDguMDQ5LTIyLjM0MS04MS44NzIgICBDMzk2Ljg1NiwxNTguNjMyLDQwNC41NTgsMTMwLjYwNiw0MTkuMTI2LDExMS4zNTh6IE0zODMuODczLDIyMi4zMTNjMS40MzIsMTAuMDk1LDMuNTUzLDE5LjA3Nyw2LjEzOCwyNy4wNDNoLTI2Ljg5di0yNy4wNDMgICBIMzgzLjg3M3ogTTE3OS4xNzYsMjAyLjQyOXYtMjIuMTE3aDIwMi45OTNjLTAuNDY5LDguOTkyLTAuNDE1LDE4LjAxNSwwLjE2OSwyN0gxODQuMDU5ICAgQzE4MS4zNjYsMjA3LjMxMywxNzkuMTc2LDIwNS4xMjIsMTc5LjE3NiwyMDIuNDI5eiBNMjk5LjgwNSwyMjIuMzEzaDQ4LjMxNnYyNy4wNDNoLTQ4LjMxNlYyMjIuMzEzeiBNMzk1LjkwMSwyNjQuMzU1ICAgYzcuODE1LDE2LjcsMTcuNTE2LDI3LjQ4OCwyNS4zNjUsMzQuMTQ1SDE1LjI1di0zNC4xNDVIMzk1LjkwMXogTTE1LjI1LDQ1NC41di02M2gxMzUuNXY2M0gxNS4yNXogTTE1MC43NSwzNzYuNUgxNS4yNXYtNjNoMTM1LjUgICBWMzc2LjV6IE00NDUuODU2LDI5OC41di0zNC4xNDVoNTEuMzk0VjI5OC41SDQ0NS44NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTU0Ljc1LDM1Mi41aDU3YzkuNjczLDAsOS42NzMtMTUsMC0xNWgtNTdDNDUuMDc3LDMzNy41LDQ1LjA3NywzNTIuNSw1NC43NSwzNTIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTExLjc1LDQxNS41aC01N2MtOS42NzMsMC05LjY3MywxNSwwLDE1aDU3QzEyMS40MjMsNDMwLjUsMTIxLjQyMyw0MTUuNSwxMTEuNzUsNDE1LjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Jxe={Anteroom:nxe,Attic:axe,Balcony:Mxe,Barn:cxe,Basement:uxe,Bathroom:lxe,Bedroom:Nxe,"Boiler Room":"PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSItMyAwIDQ4MCA0ODAiIHdpZHRoPSI0ODBwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTIzNC45Njg3NSA2NGMtMTMuMjUzOTA2IDAtMjQgMTAuNzQ2MDk0LTI0IDI0czEwLjc0NjA5NCAyNCAyNCAyNCAyNC0xMC43NDYwOTQgMjQtMjQtMTAuNzQ2MDk0LTI0LTI0LTI0em0wIDMyYy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04czMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzA2Ljk2ODc1IDE2MGgtMTQ0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoMTQ0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LTh6bS04IDY0aC0xMjh2LTQ4aDEyOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE4Ni45Njg3NSAxOTJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjE4Ljk2ODc1IDE5MmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjYuOTY4NzUgMTkyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEzOC45Njg3NSA3MnYzMmgxNnYtMjRoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ni45Njg3NSAwaC0zMmMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOGgtNTZ2LTU2aDI0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTQ4YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0di0xNmMtLjAyNzM0NC0yMi4wODIwMzEtMTcuOTIxODc1LTM5Ljk3MjY1Ni00MC00MGgtMTZ2LTE2aC0xNnYxNmgtMTcuNzYxNzE5bC02LjQ4MDQ2OS0yNS45Mzc1Yy0uODg2NzE4LTMuNTYyNS00LjA4NTkzNy02LjA2MjUtNy43NTc4MTItNi4wNjI1aC00OGMtMy42NzE4NzUgMC02Ljg3MTA5NCAyLjUtNy43NjE3MTkgNi4wNjI1bC02LjQ4MDQ2OSAyNS45Mzc1aC0xNy43NTc4MTJ2LTE2aC0xNnYxNmgtMTZjLTIyLjA4MjAzMS4wMjczNDQtMzkuOTcyNjU2IDE3LjkxNzk2OS00MCA0MHY1NmgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgyNHYyMjRoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTQxLjcxMDkzOGMxMi4zNzEwOTQgNi4zNzUgMjYuMDgyMDMxIDkuNzAzMTI2IDQwIDkuNzEwOTM4aDh2MjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGg4YzEzLjkxNDA2Mi0uMDA3ODEyIDI3LjYyODkwNi0zLjMzNTkzOCA0MC05LjcxMDkzOHY0MS43MTA5MzhoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTE3Nmg1NmMzMC45MTAxNTYtLjAzOTA2MiA1NS45NjA5MzgtMjUuMDg5ODQ0IDU2LTU2di0xOTJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOHptLTg4IDEwNHYzMmgtMTZ2LTMyem0tMTYxLjc1MzkwNi04OGgzNS41MDM5MDZsNCAxNmgtNDMuNTAzOTA2em0tOTQuMjQ2MDk0IDU2YzAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNGgxNzZjMTMuMjUzOTA2IDAgMjQgMTAuNzQ2MDk0IDI0IDI0djU2aC0yMjR6bS0zMiAxMjB2LTQ4aDE2djQ4em04MCAyNzJoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNjkuNTU4NTk0YzQuNTM1MTU2IDYuNDg0Mzc1IDkuOTE0MDYyIDEyLjMzMjAzMiAxNiAxNy4zOTA2MjV6bTExMi0xNmgtMzJ2LTE2aDMyem0xMjggNDhoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNTIuMTY3OTY5YzYuMDgyMDMxLTUuMDU4NTkzIDExLjQ2NDg0NC0xMC45MDYyNSAxNi0xNy4zOTA2MjV6bTAtMTIwYy0uMDQyOTY5IDM5Ljc0NjA5NC0zMi4yNTM5MDYgNzEuOTU3MDMxLTcyIDcyaC04MGMtMzkuNzQ2MDk0LS4wNDI5NjktNzEuOTU3MDMxLTMyLjI1MzkwNi03Mi03MnYtMTY4aDIyNHptMTEyLTExMmMtLjAyNzM0NCAyMi4wODIwMzEtMTcuOTIxODc1IDM5Ljk3MjY1Ni00MCA0MGgtNTZ2LTE2aDU2YzEzLjI1MzkwNiAwIDI0LTEwLjc0NjA5NCAyNC0yNHYtMTg0aDE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNTYuNjI1IDUzLjY1NjI1IDEwLjM0Mzc1LTEwLjM0Mzc1IDE4LjM0Mzc1IDE4LjM0Mzc1IDExLjMxMjUtMTEuMzEyNS0yNC0yNGMtMy4xMjUtMy4xMjEwOTQtOC4xODc1LTMuMTIxMDk0LTExLjMxMjUgMGwtMTAuOTM3NSAxMC45Mzc1LTM0LjM5ODQzOC0yNy41MjczNDQtMTAuMDA3ODEyIDEyLjQ5MjE4OCA0MCAzMmMzLjE4MzU5NCAyLjU1MDc4MSA3Ljc3MzQzOCAyLjI5Mjk2OCAxMC42NTYyNS0uNTg5ODQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMCA4Ny40MzM1OTQgNDAgMTZjMi45NzI2NTYgMS4xODM1OTQgNi4zNjMyODEuNDg0Mzc1IDguNjI1LTEuNzc3MzQ0bDExLjkxNzk2OS0xMS45MjE4NzUgMjYuODQ3NjU2IDEzLjQ2NDg0NCA3LjE1MjM0NC0xNC4zMjAzMTMtMzItMTZjLTMuMDc4MTI1LTEuNTM1MTU2LTYuNzk2ODc1LS45Mjk2ODctOS4yMzA0NjkgMS41MDM5MDZsLTEyLjI3MzQzOCAxMi4yMjY1NjMtMzUuMTAxNTYyLTE0LjA0Mjk2OXptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Carport:Lxe,Cellar:gxe,Chamber:jxe,Corridor:yxe,"Dining Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K","Dining Room":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dining:Txe,"Dressing Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTcuMDA0IDI3Ni4xNjljMC00LjEzOSAzLjM3NC03LjUxMiA3LjUxMi03LjUxMnM3LjQ4MyAzLjM3MyA3LjQ4MyA3LjUxMnYxMzcuMzQgMzkuOTk3YzAgNC4xMzktMy4zNDUgNy40ODMtNy40ODMgNy40ODNoLTQ5Ny4wMDRjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODMgMC0xMjQuNzU0IDAtMjQ5LjUzNiAwLTM3NC4yOTEgMC03Ljc2NyAzLjE3NS0xNC44MjUgOC4yNzctMTkuOTI4IDUuMTAzLTUuMTAzIDEyLjE2MS04LjI3NyAxOS45MjgtOC4yNzdoMTI0LjI0NGM3LjkwOSAwIDE1LjM2NCAzLjMxNiAyMC43MjIgOS4wOTkgNS4zNTctNS43ODMgMTIuODEyLTkuMDk5IDIwLjcyMi05LjA5OWgxMjQuMjQzYzcuODgxIDAgMTUuMzY0IDMuMzE2IDIwLjY5MyA5LjA5OSA1LjM1OC01Ljc4MyAxMi44MTMtOS4wOTkgMjAuNzIyLTkuMDk5aDEyNC4yNDRjNy43NjcgMCAxNC44MjYgMy4xNzUgMTkuOTI4IDguMjc3IDUuMTAyIDUuMTAzIDguMjc3IDEyLjE2MSA4LjI3NyAxOS45Mjh2MjUuNjI1IDEzNy4zNGMwIDQuMTM5LTMuMzQ1IDcuNTEyLTcuNDgzIDcuNTEyLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTEyOS44NTVoLTY3LjgzNXYxMi45MjZsNDYuODMgMjMuODM5YzQuMTk1IDIuMTI2IDcuMTE1IDUuNzU1IDguNDQ3IDkuODk0IDEuMzYgNC4xMzkgMS4xMzQgOC43ODctLjk5MiAxMi45NTQtMS40NDYgMi44MzUtMy42NTcgNS4xNTktNi4yOTMgNi43NzUtMi42NjQgMS42NDQtNS43MjYgMi41MjMtOC44NzIgMi41MjNoLTMuMzQ1djk1LjYxM2MwIDQuMTM5LTMuMzQ1IDcuNDg0LTcuNDg0IDcuNDg0aC03MS4xNWMtNC4xMzkgMC03LjQ4My0zLjM0NS03LjQ4My03LjQ4NHYtMzQuNTU0YzAtNC4xNjcgMy4zNDUtNy41MTIgNy40ODMtNy41MTIgNC4xMzkgMCA3LjUxMiAzLjM0NSA3LjUxMiA3LjUxMnYyNy4wNDNoNTYuMTI3di04OC4xMDJoLTU2LjEyN3YyNy4wNzFjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy40ODMtMy4zNzMtNy40ODMtNy41MTJ2LTI3LjA3MWgtMy4zNDVjLTQuNzA2IDAtOC45NTctMS44OTktMTIuMDE5LTQuOTg5LTMuMDktMy4wNjEtNC45ODktNy4zMTMtNC45ODktMTIuMDE5IDAtMy4zNDUuOTkyLTYuNTIgMi42OTMtOS4xNTYgMS43MjktMi42NjQgNC4xMzktNC44MTkgNi45NzQtNi4xOGw0Ni4wMzUtMjMuNDQzdi0xMy4xMjRoLTY3LjgzNHYyOTMuNzAxaDE1MC42NjN2LTEyOS44NTd6bS03My44NDMtMTM3LjE5OWMtLjgyMi0uNTEtMS42NzItLjUxLTIuNDk1IDBsLTQ1LjcyMyAyMy4zMDFjLS45MDcuMzQtMS40NzQuOTM2LTEuNDc0IDEuOTU2IDAgMS4xMDUuOTA3IDIuMDEzIDIuMDEzIDIuMDEzaDkyLjgwN2MuNzkzIDAgMS40NDYtLjM5NyAxLjc4Ni0xLjEwNS41MS0uOTkyLjE0Mi0yLjE4My0uODc4LTIuNjkzbC0xNS4zMzYtNy44MjNjLTkuMDQzLTQuNTkzLTE4LjA1Ny05LjE1OC0zMC43LTE1LjY0OXptLTE2NS44LS4wODVjLS43MDktLjQyNS0xLjQ3NC0uNDI1LTIuMjQgMGwtNDUuODY1IDIzLjM4NmMtLjg3OS4zNC0xLjQ0Ni45MzYtMS40NDYgMS45NTYgMCAxLjEwNS45MDcgMi4wMTMgMi4wMTMgMi4wMTNoOTIuODA3Yy43OTQgMCAxLjQ0Ni0uMzk3IDEuNzg2LTEuMTA1LjUxLS45OTIuMTQyLTIuMTgzLS44NzktMi42OTMtMTUuMzkyLTcuODI0LTMwLjgxMi0xNS42NDgtNDYuMTc2LTIzLjU1N3ptLTIxMS42NjYtMjYuNTZjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODRzMy4zNzMtNy41MTIgNy41MTItNy41MTJoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNzQgNy41MTIgNy41MTIgMCA0LjEzOS0zLjM3MyA3LjQ4NC03LjUxMiA3LjQ4NHptMCAxMDEuOTM0Yy00LjEzOSAwLTcuNTEyLTMuMzczLTcuNTEyLTcuNTEyczMuMzczLTcuNDgzIDcuNTEyLTcuNDgzaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzQ1IDcuNTEyIDcuNDgzIDAgNC4xMzktMy4zNzMgNy41MTItNy41MTIgNy41MTJ6bTAtMzMuOTg4Yy00LjEzOSAwLTcuNTEyLTMuMzQ1LTcuNTEyLTcuNDgzczMuMzczLTcuNTEyIDcuNTEyLTcuNTEyaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzczIDcuNTEyIDcuNTEycy0zLjM3MyA3LjQ4My03LjUxMiA3LjQ4M3ptMC0zMy45NTljLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJzMy4zNzMtNy40ODMgNy41MTItNy40ODNoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNDUgNy41MTIgNy40ODMgMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnptMjAyLjgyMi0yMC44NjN2LTEzLjEyNGgtNjcuODM0djEyOS44NTdjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTE2Mi45NjdjMC0zLjYyOC0xLjQ3NC02LjkxNy0zLjg4My05LjMyNi0yLjM4MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNi0zLjg4NGgtMTI0LjI0NGMtMy42MjggMC02LjkxNyAxLjUwMi05LjMyNyAzLjg4NC0yLjM4MSAyLjQwOS0zLjg4MyA1LjY5Ny0zLjg4MyA5LjMyNnYxOTIuMzYxaDE1LjMwOGM2LjA5NCAwIDExLjU5NCAyLjQ2NiAxNS41OSA2LjQ2NCAzLjk5NyAzLjk5NyA2LjQ5MiA5LjUyNSA2LjQ5MiAxNS41OXYyMy4zMDFjMCA2LjA2Ny0yLjQ5NSAxMS41OTQtNi40OTIgMTUuNTkxcy05LjQ5NiA2LjQ2My0xNS41OSA2LjQ2M2gtMTUuMzA4djEwNy4wMDloMTUwLjY2M3YtMTY5LjgyNWMwLTQuMTM5IDMuMzc0LTcuNTEyIDcuNTEyLTcuNTEyczcuNTEyIDMuMzczIDcuNTEyIDcuNTEydjEyOS44NTZoMTUwLjY2M3YtMjkzLjdoLTY3LjgzNHYxMi45MjZsNDYuNjMgMjMuNzI2YzQuMTY3IDIuMTI2IDcuMiA1LjUyOCA4LjY0NiAxMC4wMDcgMi40NjYgNy41NjgtLjUzOSAxNS41OS03LjI4NSAxOS43MjktMi42NjQgMS42NDQtNS43NTQgMi41MjMtOC44NzIgMi41MjNoLTkyLjgwN2MtNC43MDYgMC04Ljk1OC0xLjg5OS0xMi4wNDctNC45ODktMy4wNjEtMy4wNjEtNC45Ni03LjMxMy00Ljk2LTEyLjAxOSAwLTMuMzQ1Ljk5Mi02LjUyIDIuNjkzLTkuMTU2IDEuNzAxLTIuNjY0IDQuMTEtNC44MTkgNi45NzMtNi4xOHptLTIzMy41MjEgMTcyLjMyaDYuMDk0YzQuMTM5IDAgNy41MTIgMy4zNzMgNy41MTIgNy41MTJzLTMuMzczIDcuNTEyLTcuNTEyIDcuNTEyaC02LjA5NHYxMS4xOThoMTUuMzA4YzEuOTU2IDAgMy43MTMtLjc5NCA0Ljk4OS0yLjA2OSAxLjI3Ni0xLjMwNSAyLjA5OC0zLjA2MSAyLjA5OC00Ljk5di0yMy4zMDJjMC0xLjkyOC0uODIyLTMuNjg1LTIuMDk4LTQuOTg5LTEuMjc1LTEuMjc2LTMuMDMzLTIuMDY5LTQuOTg5LTIuMDY5aC0xNS4zMDh6bTMzMS4zNDUtMjE4LjU1NHYxOC4xMTNoMTUwLjY2M3YtMTguMTEzYzAtMy42MjgtMS40NzQtNi45MTctMy44ODMtOS4zMjYtMi40MDktMi4zODEtNS42OTgtMy44ODQtOS4zMjctMy44ODRoLTEyNC4yNDNjLTMuNjI4IDAtNi45MTcgMS41MDItOS4zMjYgMy44ODQtMi40MSAyLjQxLTMuODg0IDUuNjk4LTMuODg0IDkuMzI2em0tMTY1LjY1OCAxOC4xMTRoMTUwLjY2M3YtMTguMTE0YzAtMy42MjgtMS41MDItNi45MTctMy44ODMtOS4zMjYtMi40MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNy0zLjg4NGgtMTI0LjI0M2MtMy42MjkgMC02Ljk0NSAxLjUwMi05LjMyNyAzLjg4NC0yLjQxIDIuNDA5LTMuODgzIDUuNjk3LTMuODgzIDkuMzI2em0zMTYuMzIxIDMyMy42OTJoLTMxNi4zMjF2MjQuOTczaDMxNi4zMjJ2LTI0Ljk3M3oiLz4KICAgIDwvZz4KPC9zdmc+",Driveway:Dxe,Entrance:dxe,"Equipment Room":"PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC00IDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTMwMy4wOTM3NSAxNzQuMjVjMy4zOTQ1MzEgMi4zNzg5MDYgOC4wNzAzMTIgMS41NTA3ODEgMTAuNDQ1MzEyLTEuODM5ODQ0bDE1Ljk1MzEyNi0yMi43ODkwNjJjMi4zNzg5MDYtMy4zOTQ1MzIgMS41NTQ2ODctOC4wNzAzMTMtMS44Mzk4NDQtMTAuNDQ1MzEzLTMuMzk0NTMyLTIuMzc1LTguMDcwMzEzLTEuNTUwNzgxLTEwLjQ0NTMxMyAxLjg0Mzc1bC0xNS45NTcwMzEgMjIuNzg1MTU3Yy0yLjM3NSAzLjM5NDUzMS0xLjU1MDc4MSA4LjA3MDMxMiAxLjg0Mzc1IDEwLjQ0NTMxMnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM0MS42NzE4NzUgMTU1Ljk4NDM3NS01LjQxNzk2OSAyNy4yODUxNTZjLS45MTc5NjggNC42NDA2MjUgMi42MzI4MTMgOC45NjA5MzggNy4zNjcxODggOC45NjA5MzggMy41MDc4MTIgMCA2LjY0MDYyNS0yLjQ3MjY1NyA3LjM0NzY1Ni02LjAzOTA2M2w1LjQxNDA2Mi0yNy4yODkwNjJjLjgwODU5NC00LjA2MjUtMS44MzIwMzEtOC4wMTE3MTktNS44OTQ1MzEtOC44MTY0MDYtNC4wNjY0MDYtLjgwNDY4OC04LjAxMTcxOSAxLjgzMjAzMS04LjgxNjQwNiA1Ljg5ODQzN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTMwOS41ODk4NDQgMTIxLjQ0OTIxOWMtMi4xNDQ1MzItMy41NDI5NjktNi43NTc4MTMtNC42NzE4NzUtMTAuMzAwNzgyLTIuNTI3MzQ0bC0yMy43ODkwNjIgMTQuNDIxODc1Yy0zLjU0Mjk2OSAyLjE0ODQzOC00LjY3MTg3NSA2Ljc2MTcxOS0yLjUyNzM0NCAxMC4zMDQ2ODggMi4xNTIzNDQgMy41NDI5NjggNi43NjU2MjUgNC42Njc5NjggMTAuMzA0Njg4IDIuNTIzNDM3bDIzLjc4OTA2Mi0xNC40MTc5NjljMy41NDI5NjktMi4xNDg0MzcgNC42NzE4NzUtNi43NjE3MTggMi41MjM0MzgtMTAuMzA0Njg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtODMuNjUyMzQ0IDE1Mi4xNzk2ODhjMi43NTc4MTIgMS4zNTkzNzQgNi4xMTMyODEgMS40MDYyNSA4Ljk2ODc1IDAgNy0zLjQ1MzEyNiAyOS44MzU5MzctMTYuNTA3ODEzIDI5LjgzNTkzNy0zOS40NjQ4NDQgMC0xOC4yMDMxMjUtMjEuMjE0ODQzLTI3LjA2NjQwNi0zNC4zMTI1LTE2LjA3NDIxOS01LjA2MjUtNC4yNjE3MTktMTEuOTQxNDA2LTUuODkwNjI1LTE4Ljc1MzkwNi00LjA4OTg0NC05LjMxNjQwNiAyLjQ1NzAzMS0xNS41NzAzMTMgMTAuNTYyNS0xNS41NzAzMTMgMjAuMTY0MDYzIDAgMjMuMDE1NjI1IDIyLjg0Mzc1IDM2LjAzMTI1IDI5LjgzMjAzMiAzOS40NjQ4NDR6bS0zLjc3NzM0NC00Mi4zNjcxODhjMS4zOTg0MzggMi40Njg3NSA0LjQ2ODc1IDQuNjI1IDguMDIzNDM4IDQuNzEwOTM4IDMuNTgyMDMxLjExMzI4MSA2Ljk3MjY1Ni0yLjA0Njg3NiA4LjQ2MDkzNy00LjY1MjM0NCAzLjA1NDY4Ny01LjM1NTQ2OSAxMS4wOTc2NTYtMy4xNDQ1MzIgMTEuMDk3NjU2IDIuODQ3NjU2IDAgMTIuNjkxNDA2LTEzLjM5NDUzMSAyMS41NjY0MDYtMTkuMzI0MjE5IDI0Ljg3NS01LjkyOTY4Ny0zLjI5Mjk2OS0xOS4zMTI1LTEyLjE0NDUzMS0xOS4zMTI1LTI0Ljg3NSAwLTYuMDQyOTY5IDguMDg1OTM4LTguMTMyODEyIDExLjA1NDY4OC0yLjkwNjI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMDMuNjE3MTg4aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDA2MjYtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTkzNzQtNy41IDcuNSAwIDQuMTQ0NTMxIDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMzAuMDI3MzQ0aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDQ1MzItMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjgtNy41IDcuNSAwIDQuMTQwNjI1IDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxNTYuNDM3NWgyOS42MzY3MTljNC4xNDQ1MzEgMCA3LjUtMy4zNTU0NjkgNy41LTcuNXMtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjktNy41IDcuNXMzLjM1NTQ2OSA3LjUgNy41IDcuNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NS43Njk1MzEgMTUuMDA3ODEyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY4IDcuNS03LjUgMC00LjE0NDUzMS0zLjM1NTQ2OS03LjQ5OTk5OTUtNy41LTcuNDk5OTk5NWgtNzMuNzEwOTM3Yy0uMTE3MTg4IDAtLjIzMDQ2OS4wMTE3MTg3LS4zNDc2NTYuMDE1NjI1LTIuNDk2MDk0LS4xMjg5MDY1LTUgLjk4NDM3NDUtNi41MzkwNjMgMy4xODM1OTM1bC0yNS44OTA2MjUgMzYuOTcyNjU3LTMyLjgzOTg0NC0yMi45OTYwOTRjLTE3LjM3MTA5NC0xMi4xNjQwNjMtMzguOTAyMzQ0LTE2LjI4OTA2My01OS41OTM3NS0xMS41MzkwNjNsLTIuNTk3NjU2LTEuODIwMzEyYy05LjU4OTg0NC02LjcxMDkzOC0yMi44MTY0MDYtNC4zNDc2NTctMjkuNSA1LjE5OTIxOWwtNS45Njg3NSA4LjUyMzQzN2MtNi42OTUzMTIgOS41NjI1LTQuMzYzMjgxIDIyLjgwMDc4MSA1LjIwMzEyNSAyOS40OTYwOTRsMi4wNDY4NzUgMS40MzM1OTNjLTYuODU5Mzc1IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDgyMDMyIDUzLjE3OTY4OCAzNy4yMzgyODJsNC4xOTE0MDYgMi45MzM1OTRjLTYuODUxNTYzIDMwLjU3MDMxMiAyNi44MDQ2ODcgNTQuMTE3MTg3IDUzLjE3NTc4MSAzNy4yMzgyODFsNC4xOTUzMTMgMi45MzM1OTNjLTYuODU5Mzc2IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDc4MTI2IDUzLjE3NTc4MSAzNy4yMzQzNzZsMi4wNTQ2ODcgMS40NDE0MDZjOS41NjY0MDYgNi42OTUzMTIgMjIuODAwNzgyIDQuMzYzMjgxIDI5LjQ5NjA5NC01LjIwMzEyNWw1Ljk2ODc1LTguNTIzNDM4YzYuNjk1MzEyLTkuNTYyNSA0LjM2MzI4MS0yMi44MDA3ODEtNS4xOTkyMTktMjkuNDk2MDkzbC0zLjI3MzQzNy0yLjI5Mjk2OWMtMi42MTMyODItMjEuMDY2NDA3LTEzLjg1NTQ2OS0zOS44ODY3MTktMzEuMjI2NTYzLTUyLjA1NDY4OGwtMzAuMTk5MjE5LTIxLjE0MDYyNSAyMy42NTIzNDQtMzMuNzc3MzQ0em0tMjE1LjQ1NzAzMSA0My40NzI2NTcgMjQuNjIxMDk0IDE3LjI0MjE4N2MtMTEuNzk2ODc1IDIuNzkyOTY5LTIzLjIyMjY1Ni01LjIzNDM3NS0yNC42MjEwOTQtMTcuMjQyMTg3em01Ny4zNjcxODggNDAuMTY3OTY5IDI0LjYyNSAxNy4yNDIxODdjLTExLjc2OTUzMiAyLjc5Njg3NS0yMy4yMjI2NTctNS4yMDcwMzEtMjQuNjI1LTE3LjI0MjE4N3ptNTcuMzcxMDkzIDQwLjE3MTg3NGMxNC45MTc5NjkgMTAuNDQ1MzEzIDkuNzc3MzQ0IDYuODQzNzUgMjQuNjI1IDE3LjI0MjE4OC0xMS43NzM0MzcgMi43OTY4NzUtMjMuMjIyNjU2LTUuMjE0ODQ0LTI0LjYyNS0xNy4yNDIxODh6bTY0LjEyODkwNyA2LjM0Mzc1LTUuOTY4NzUgOC41MjM0MzhjLTEuOTUzMTI2IDIuNzg5MDYyLTUuODEyNSAzLjQ3MjY1Ni04LjYwNTQ2OSAxLjUxOTUzMS0yLjQxMDE1Ny0xLjY4NzUtMTY5Ljg1OTM3NS0xMTguOTQxNDA2LTE3Mi4wMTk1MzEtMTIwLjQ0OTIxOS0yLjc2OTUzMi0xLjk0MTQwNi0zLjQ1NzAzMi01LjgzMjAzMS0xLjUxNTYyNi04LjYwNTQ2OGw1Ljk2ODc1LTguNTIzNDM4YzEuOTQ5MjE5LTIuNzgxMjUgNS44NDM3NS0zLjQ0OTIxOCA4LjYwNTQ2OS0xLjUxNTYyNWwxNzIuMDE5NTMxIDEyMC40NDUzMTNjMi43NzM0MzggMS45NDE0MDYgMy40NTcwMzIgNS44MzU5MzcgMS41MTU2MjYgOC42MDU0Njh6bS0xNC45MDIzNDQtMzYuMjg5MDYyYy03Ljg5NDUzMi01LjUzMTI1LTEyNS4wNDY4NzUtODcuNTU4NTk0LTEyOC43MTA5MzgtOTAuMTI1IDExLjQ3MjY1Ni4zNTE1NjIgMjIuNjcxODc1IDQgMzIuMjczNDM4IDEwLjcyMjY1Nmw3NS4zMjQyMTggNTIuNzQyMTg4YzkuNTk3NjU3IDYuNzIyNjU2IDE2Ljg1OTM3NiAxNiAyMS4xMTMyODIgMjYuNjYwMTU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDkwLjgyMDMxMiAzMTAuNTE1NjI1aC0yMTcuMzIwMzEyYy00LjE0NDUzMSAwLTcuNSAzLjM1OTM3NS03LjUgNy41IDAgNC4xNDQ1MzEgMy4zNTU0NjkgNy41MDM5MDYgNy41IDcuNTAzOTA2aDIxNy4zMjAzMTJjMy40MDYyNSAwIDYuMTc5Njg4IDIuNzY5NTMxIDYuMTc5Njg4IDYuMTc1NzgxdjEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzggNi4xNzk2ODgtNi4xNzk2ODggNi4xNzk2ODgtMy40NDUzMTIgMC00NjMuNjA5Mzc0IDAtNDY5LjY0MDYyNCAwLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc2OTUzMi02LjE3OTY4OC02LjE3OTY4OHYtMTMuNjc5Njg4YzAtMy40MDYyNSAyLjc3MzQzOC02LjE3NTc4MSA2LjE3OTY4OC02LjE3NTc4MWgyMTcuMzIwMzEyYzQuMTQ0NTMxIDAgNy41LTMuMzU5Mzc1IDcuNS03LjUwMzkwNiAwLTQuMTQwNjI1LTMuMzU1NDY5LTcuNS03LjUtNy41aC04NS4zNTU0NjljLjU5NzY1Ny0xLjk1MzEyNS45MjU3ODEtNC4wMjczNDQuOTI1NzgxLTYuMTc1Nzgxdi0xMy42Nzk2ODhjMC0xMS42Nzk2ODctOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODctMjEuMTc5Njg3aC0xMTEuNzEwOTM3Yy0xMS42Nzk2ODggMC0yMS4xNzk2ODggOS41LTIxLjE3OTY4OCAyMS4xNzk2ODd2MTMuNjc5Njg4YzAgNS4yMTQ4NDQgMS45MDIzNDQgOS45ODQzNzUgNS4wMzkwNjIgMTMuNjc5Njg3LTMuMTM2NzE4IDMuNjkxNDA3LTUuMDM5MDYyIDguNDY0ODQ0LTUuMDM5MDYyIDEzLjY3NTc4MXYxMy42Nzk2ODhjMCAxMS4zMjgxMjUgOC45NDUzMTIgMjAuNTc4MTI1IDIwLjEzNjcxOSAyMS4xMjg5MDZ2Ni42MDkzNzVjMCAxMS42Nzk2ODggOS41MDM5MDYgMjEuMTc5Njg4IDIxLjE3OTY4NyAyMS4xNzk2ODhoMjAuNzE0ODQ0djk1LjE0MDYyNWMwIDcuODc4OTA2IDYuNDEwMTU2IDE0LjI4OTA2MiAxNC4yOTI5NjkgMTQuMjg5MDYyaDE0LjE1MjM0M2M3Ljg3ODkwNyAwIDE0LjI5Mjk2OS02LjQxMDE1NiAxNC4yOTI5NjktMTQuMjg5MDYydi05NS4xNDA2MjVoMzAyLjQ2MDkzOHY5NS4xNDA2MjVjMCA3Ljg3ODkwNiA2LjQxMDE1NiAxNC4yODkwNjIgMTQuMjkyOTY5IDE0LjI4OTA2MmgxNC4xNTIzNDNjNy44ODI4MTMgMCAxNC4yOTI5NjktNi40MTAxNTYgMTQuMjkyOTY5LTE0LjI4OTA2MnYtOTUuMTQwNjI1aDIwLjcxMDkzOGMxMS42Nzk2ODcgMCAyMS4xNzk2ODctOS41IDIxLjE3OTY4Ny0yMS4xNzk2ODh2LTYuNjA5Mzc1YzExLjE5NTMxMy0uNTUwNzgxIDIwLjE0MDYyNS05LjgwMDc4MSAyMC4xNDA2MjUtMjEuMTI4OTA2di0xMy42Nzk2ODhjMC0xMS42NzU3ODEtOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODgtMjEuMTc5Njg3em0tNDc1LjgyMDMxMi0xOS44NTU0NjljMC0zLjQwNjI1IDIuNzczNDM4LTYuMTc5Njg3IDYuMTc5Njg4LTYuMTc5Njg3aDExMS43MTA5MzdjMy40MDYyNSAwIDYuMTc5Njg3IDIuNzczNDM3IDYuMTc5Njg3IDYuMTc5Njg3djEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzcgNi4xNzk2ODctNi4xNzk2ODcgNi4xNzk2ODdoLTExMS43MTA5MzdjLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc3MzQzNy02LjE3OTY4OC02LjE3OTY4N3ptNzQuNzY1NjI1IDE5OC4wNjI1aC0xMi43MzQzNzV2LTk0LjQyOTY4N2gxMi43MzQzNzV6bTM0NS4yMDMxMjUgMGgtMTIuNzM4Mjgxdi05NC40Mjk2ODdoMTIuNzM4Mjgxem00MS44OTA2MjUtMTE1LjYwOTM3NWMwIDMuNDA2MjUtMi43Njk1MzEgNi4xNzk2ODgtNi4xNzk2ODcgNi4xNzk2ODgtMTMuNzE0ODQ0IDAtNDE1LjAzNTE1NyAwLTQyOS4zNjMyODIgMC0zLjQwNjI1IDAtNi4xNzk2ODctMi43NzM0MzgtNi4xNzk2ODctNi4xNzk2ODh2LTYuNTU4NTkzaDQ0MS43MjI2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjguOTYwOTM4IDExMi41MjczNDRjNC4xNDQ1MzEgMCA3LjUtMy4zNTkzNzUgNy41LTcuNXYtNDEuMTM2NzE5YzAtMTYuMzE2NDA2LTEzLjI3MzQzOC0yOS41OTM3NS0yOS41ODk4NDQtMjkuNTkzNzVoLTE3Ny4yODEyNWMtMTYuMzE2NDA2IDAtMjkuNTg5ODQ0IDEzLjI3MzQzNy0yOS41ODk4NDQgMjkuNTkzNzV2MTE3LjI3NzM0NGMwIDE2LjMxNjQwNiAxMy4yNzM0MzggMjkuNTg5ODQzIDI5LjU4OTg0NCAyOS41ODk4NDNoMTc3LjI4MTI1YzE2LjMxNjQwNiAwIDI5LjU5Mzc1LTEzLjI3MzQzNyAyOS41OTM3NS0yOS41ODk4NDN2LTQxLjE0MDYyNWMwLTQuMTQwNjI1LTMuMzU5Mzc1LTcuNS03LjUwMzkwNi03LjUtNC4xNDA2MjYgMC03LjUgMy4zNTkzNzUtNy41IDcuNXY0MS4xNDA2MjVjMCA4LjA0Mjk2OS02LjU0Njg3NiAxNC41ODk4NDMtMTQuNTg5ODQ0IDE0LjU4OTg0M2gtMTc3LjI4MTI1Yy04LjA0Mjk2OSAwLTE0LjU4OTg0NC02LjU0Njg3NC0xNC41ODk4NDQtMTQuNTg5ODQzdi0xMTcuMjc3MzQ0YzAtOC4wNDY4NzUgNi41NDY4NzUtMTQuNTkzNzUgMTQuNTg5ODQ0LTE0LjU5Mzc1aDE3Ny4yODEyNWM4LjA0Mjk2OCAwIDE0LjU4OTg0NCA2LjU0Njg3NSAxNC41ODk4NDQgMTQuNTkzNzV2NDEuMTM2NzE5YzAgNC4xNDA2MjUgMy4zNTkzNzQgNy41IDcuNSA3LjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNC43NzM0MzggNjEuNTcwMzEyYy00LjE0NDUzMiAwLTcuNSAzLjM1OTM3Ni03LjUgNy41djEwNi45MTQwNjNjMCA0LjE0NDUzMSAzLjM1NTQ2OCA3LjUgNy41IDcuNWgxNjYuOTE0MDYyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY5IDcuNS03LjV2LTEwNi45MTQwNjNjMC00LjE0MDYyNC0zLjM1NTQ2OS03LjUtNy41LTcuNXptMTU5LjQxNDA2MiAxMDYuOTE0MDYzaC0xNTEuOTE0MDYydi05MS45MTQwNjNoMTUxLjkxNDA2MnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==","Front Yard":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMTI2LjQ5LDM2Ljk0N2MtMzEuNTc5LDAtNTcuMjcsMjUuNjkxLTU3LjI3LDU3LjI3YzAsMzEuNTc5LDI1LjY5MSw1Ny4yNyw1Ny4yNyw1Ny4yN2MzMS41NzgsMCw1Ny4yNy0yNS42OTEsNTcuMjctNTcuMjcKCQkJQzE4My43NjEsNjIuNjM4LDE1OC4wNywzNi45NDcsMTI2LjQ5LDM2Ljk0N3ogTTEyNi40OSwxMzEuNDg3Yy0yMC41NTEsMC0zNy4yNy0xNi43MTktMzcuMjctMzcuMjcKCQkJYzAtMjAuNTUxLDE2LjcxOS0zNy4yNywzNy4yNy0zNy4yN2MyMC41NSwwLDM3LjI3LDE2LjcxOSwzNy4yNywzNy4yN0MxNjMuNzYxLDExNC43NjgsMTQ3LjA0MiwxMzEuNDg3LDEyNi40OSwxMzEuNDg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMFYxMEMxMzYuNDksNC40NzcsMTMyLjAxNCwwLDEyNi40OSwweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMTU2LjA5N2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMHYtMTIuMzM4CgkJCUMxMzYuNDksMTYwLjU3NCwxMzIuMDE0LDE1Ni4wOTcsMTI2LjQ5LDE1Ni4wOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMC43MDgsODQuMjE3SDE5OC4zN2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzhjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCQlTMjE2LjIzLDg0LjIxNywyMTAuNzA4LDg0LjIxN3oiLz4KICAgICAgICA8cGF0aCBkPSJNNTQuNjEsODQuMjE3SDQyLjI3MmMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzljNS41MjMsMCwxMC00LjQ3Nyw5Ljk5OS0xMAoJCQlDNjQuNjEsODguNjk0LDYwLjEzNCw4NC4yMTcsNTQuNjEsODQuMjE3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMDAuOTc3LDE5LjcyOWMtMy45MDUtMy45MDUtMTAuMjM3LTMuOTA1LTE0LjE0MiwwbC05Ljg3Nyw5Ljg3N2MtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzCgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOWMyLjU1OSwwLDUuMTE5LTAuOTc2LDcuMDcxLTIuOTI5bDkuODc3LTkuODc3QzIwNC44ODMsMjkuOTY2LDIwNC44ODMsMjMuNjM0LDIwMC45NzcsMTkuNzI5CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIzLDE0NC42ODVjLTMuOTA2LTMuOTA1LTEwLjIzOC0zLjkwNS0xNC4xNDMsMGwtOS44NzcsOS44NzdjLTMuOTA1LDMuOTA2LTMuOTA1LDEwLjIzOCwwLDE0LjE0MwoJCQljMS45NTIsMS45NTMsNC41MTIsMi45MjksNy4wNzEsMi45MjlzNS4xMTktMC45NzYsNy4wNzItMi45MjlsOS44NzctOS44NzdDNzkuOTI4LDE1NC45MjIsNzkuOTI4LDE0OC41OSw3Ni4wMjMsMTQ0LjY4NXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIxLDI5LjYwNmwtOS44NzctOS44NzdjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDIsMGMtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzbDkuODc3LDkuODc3CgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOXM1LjExOS0wLjk3Niw3LjA3MS0yLjkyOUM3OS45MjcsMzkuODQzLDc5LjkyNywzMy41MTEsNzYuMDIxLDI5LjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDU5LjU0LDQ2OC4zODljLTAuMTI5LTAuNjQtMC4zMi0xLjI3LTAuNTctMS44N2MtMC4yNS0wLjYtMC41Ni0xLjE4LTAuOTItMS43MmMtMC4zNi0wLjU1LTAuNzgtMS4wNi0xLjI0LTEuNTMKCQkJYy0wLjQ2LTAuNDYtMC45Ny0wLjg3LTEuNTItMS4yNGMtMC41NC0wLjM2LTEuMTItMC42Ny0xLjczLTAuOTJjLTAuNTk5LTAuMjUtMS4yMjktMC40NC0xLjg3LTAuNTdjLTEuMjktMC4yNi0yLjYyLTAuMjYtMy45MDksMAoJCQljLTAuNjMxLDAuMTMtMS4yNjEsMC4zMi0xLjg3LDAuNTdjLTAuNjAxLDAuMjUtMS4xODEsMC41Ni0xLjcyMSwwLjkyYy0wLjU1LDAuMzctMS4wNiwwLjc4LTEuNTIsMS4yNAoJCQljLTAuNDYsMC40Ny0wLjg4LDAuOTgtMS4yNSwxLjUzYy0wLjM2LDAuNTQtMC42NywxLjEyLTAuOTIsMS43MmMtMC4yNSwwLjYtMC40NCwxLjIzLTAuNTcsMS44NwoJCQljLTAuMTMsMC42NTEtMC4xOSwxLjMwMS0wLjE5LDEuOTYxYzAsMC42NSwwLjA2LDEuMzEsMC4xOSwxLjk1YzAuMTMsMC42NCwwLjMyLDEuMjcsMC41NywxLjg3YzAuMjUsMC42LDAuNTYsMS4xOCwwLjkyLDEuNzMKCQkJYzAuMzcsMC41NCwwLjc5LDEuMDYsMS4yNSwxLjUyYzAuNDYsMC40NiwwLjk3LDAuODgsMS41MiwxLjI0YzAuNTQsMC4zNiwxLjEyLDAuNjcsMS43MjEsMC45MmMwLjYwOSwwLjI1LDEuMjM5LDAuNDQsMS44NywwLjU3CgkJCWMwLjY1LDAuMTMsMS4zMSwwLjIsMS45NiwwLjJjMC42NSwwLDEuMzEtMC4wNywxLjk0OS0wLjJjMC42NDEtMC4xMywxLjI3LTAuMzIsMS44Ny0wLjU3YzAuNjEtMC4yNSwxLjE5LTAuNTYsMS43My0wLjkyCgkJCWMwLjU1LTAuMzYsMS4wNi0wLjc4LDEuNTItMS4yNGMwLjQ2LTAuNDYsMC44OC0wLjk4LDEuMjQtMS41MmMwLjM2MS0wLjU1LDAuNjctMS4xMywwLjkyLTEuNzNjMC4yNS0wLjYsMC40NC0xLjIzLDAuNTctMS44NwoJCQlzMC4yLTEuMywwLjItMS45NUM0NTkuNzQsNDY5LjY4OSw0NTkuNjcsNDY5LjAzOSw0NTkuNTQsNDY4LjM4OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjczOSw0NjAuMzQ2SDYyLjEzOGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgzNDcuNmM1LjUyMywwLDEwLTQuNDc3LDEwLjAwMS0xMAoJCQlDNDE5LjczOSw0NjQuODIzLDQxNS4yNjEsNDYwLjM0Niw0MDkuNzM5LDQ2MC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMS41NjMsNDI3LjkzMWgtNi44MDljLTMuODA2LTIxLjMxMi0yMi40NzYtMzcuNTQtNDQuODY0LTM3LjU0Yy0zLjMsMC02LjU5MSwwLjM2Mi05LjgwMywxLjA2N1YyOTMuMjkKCQkJYzM2LjQ4Mi00LjkwMiw2NC43MDQtMzYuMjM2LDY0LjcwNC03NC4wMzdjMC0xOS43MDktNy43ODEtMzguNTMxLTIxLjUyNC01Mi40NjRjMC4xODYtMS44MTQsMC4yNzgtMy42NDEsMC4yNzgtNS40NjgKCQkJYzAtMjkuNDc3LTIzLjk4MS01My40NTgtNTMuNDU4LTUzLjQ1OGMtMjkuNDc3LDAtNTMuNDU4LDIzLjk4Mi01My40NTgsNTMuNDU4YzAsMS44MjcsMC4wOTMsMy42NTMsMC4yNzcsNS40NjcKCQkJYy0xMy43NDEsMTMuOTM0LTIxLjUyMywzMi43NTYtMjEuNTIzLDUyLjQ2NWMwLDM3LjgwMiwyOC4yMjMsNjkuMTM2LDY0LjcwNCw3NC4wMzd2ODkuNjJjLTQuNjg1LTEuNjMyLTkuNzE2LTIuNTItMTQuOTUxLTIuNTIKCQkJYy0yNS4xMjksMC00NS41NzMsMjAuNDQ0LTQ1LjU3Myw0NS41NzR2MS45NjhoLTguNTA2di0zNS4xM2gwLjAwMWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi00M2MwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC0wLjAwMQoJCQl2LTQ3LjMyOWMwLTIuODQ0LTEuMjExLTUuNTUzLTMuMzMtNy40NUwzMTYuMjcsMjQ2Ljg2Yy0zLjc5Ny0zLjM5OS05LjU0My0zLjM5OS0xMy4zNCwwbC0yNC43ODcsMjIuMTkxbC0yNC43ODgtMjIuMTkxCgkJCWMtMy43OTctMy4zOTgtOS41NDMtMy4zOTgtMTMuMzQsMGwtMjQuNzg4LDIyLjE5MWwtMjQuNzg4LTIyLjE5MWMtMy43OTctMy4zOTktOS41NDMtMy4zOTktMTMuMzQsMC4wMDFsLTI0Ljc4NywyMi4xOTEKCQkJbC0yNC43ODgtMjIuMTkxYy0zLjc5Ny0zLjM5OC05LjU0My0zLjM5OC0xMy4zNCwwTDg5LjM5OCwyNjkuMDVMNjQuNjEsMjQ2Ljg1OWMtMy43OTYtMy4zOTktOS41NDMtMy4zOTktMTMuMzQtMC4wMDEKCQkJbC0zMS40NTgsMjguMTYzYy0yLjExOSwxLjg5Ny0zLjMzLDQuNjA2LTMuMzMsNy40NTF2NDcuMzI5aC0wLjAwMWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHY0M2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDAuMDAxCgkJCXYzNS4xM2gtNi4wNDRjLTUuNTIzLDAtMTAsNC40NzctMTAsMTBWNTAyYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDkxLjEyM2M1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi02NC4wNjkKCQkJQzUxMS41NjMsNDMyLjQwOCw1MDcuMDg1LDQyNy45MzEsNTAxLjU2Myw0MjcuOTMxeiBNNDQ5Ljg5LDQxMC4zOTFjMTEuMjk2LDAsMjAuOTA1LDcuMzYyLDI0LjI4MSwxNy41NGgtMjMuNDYydi0xLjk2OAoJCQljMC01LjQ0MS0wLjk1OS0xMC42NjItMi43MTYtMTUuNTA0QzQ0OC42Miw0MTAuNDE0LDQ0OS4yNTMsNDEwLjM5MSw0NDkuODksNDEwLjM5MXogTTQyMC4wODcsMTg1LjU3NHYzMy4xMThsLTEwLjQwNy0xMC40MDcKCQkJYy0zLjkwNi0zLjkwNC0xMC4yMzYtMy45MDQtMTQuMTQzLDBjLTMuOTA1LDMuOTA1LTMuOTA1LDEwLjIzNywwLDE0LjE0M2wyMy4yNTcsMjMuMjU3YzAuNDA3LDAuNDA2LDAuODM5LDAuNzcsMS4yOTMsMS4wOTEKCQkJdjI2LjI2NWMtMjUuNDA1LTQuNzEyLTQ0LjcwNC0yNy4wMzktNDQuNzA0LTUzLjc4OWMwLTE1LjgxNiw2Ljg0NS0zMC44NTQsMTguNzc4LTQxLjI1NmMyLjc0LTIuMzg4LDMuOTY5LTYuMDc1LDMuMjA5LTkuNjI5CgkJCWMtMC40OTItMi4yOTktMC43NDEtNC42Ny0wLjc0MS03LjA0N2MwLTE4LjQ0OSwxNS4wMDktMzMuNDU4LDMzLjQ1OC0zMy40NThjMTguNDQ5LDAsMzMuNDU4LDE1LjAwOSwzMy40NTgsMzMuNDU4CgkJCWMwLDIuMzc4LTAuMjQ5LDQuNzQ4LTAuNzQxLDcuMDQ1Yy0wLjc2MiwzLjU1NSwwLjQ2Nyw3LjI0MywzLjIwOCw5LjYzMmMxMS45MzUsMTAuNDAzLDE4Ljc3OSwyNS40NCwxOC43NzksNDEuMjU2CgkJCWMwLDI2Ljc1LTE5LjI5OSw0OS4wNzYtNDQuNzA0LDUzLjc4OHYtMjYuMjY1YzAuNDUzLTAuMzIyLDAuODg3LTAuNjg1LDEuMjkzLTEuMDkxbDIzLjI1Ny0yMy4yNTcKCQkJYzMuOTA1LTMuOTA1LDMuOTA1LTEwLjIzNywwLTE0LjE0M2MtMy45MDYtMy45MDQtMTAuMjM2LTMuOTA0LTE0LjE0MywwbC0xMC40MDcsMTAuNDA3di0zMy4xMThjMC01LjUyMy00LjQ3OC0xMC0xMC0xMAoJCQlDNDI0LjU2NCwxNzUuNTc0LDQyMC4wODcsMTgwLjA1MSw0MjAuMDg3LDE4NS41NzR6IE0zNzkuNTYzLDQyNS45NjNjMC0xNC4xMDIsMTEuNDcyLTI1LjU3NCwyNS41NzMtMjUuNTc0CgkJCWMxNC4xMDIsMCwyNS41NzMsMTEuNDcyLDI1LjU3MywyNS41NzR2MS45NjhoLTUxLjE0NlY0MjUuOTYzeiBNMjg4LjE0MywyODYuOTQxbDIxLjQ1Ny0xOS4yMWwyMS40NTcsMTkuMjFWMzI5LjhoLTQyLjkxNFYyODYuOTQxCgkJCXogTTIyNS4yMjcsMjg2Ljk0MWwyMS40NTgtMTkuMjFsMjEuNDU3LDE5LjIxVjMyOS44aC00Mi45MTVWMjg2Ljk0MXogTTE2Mi4zMTMsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44aC00Mi45MTUKCQkJVjI4Ni45NDF6IE05OS4zOTgsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44SDk5LjM5OFYyODYuOTQxeiBNMzYuNDgzLDI4Ni45NDFsMjEuNDU3LTE5LjIxbDIxLjQ1NywxOS4yMVYzMjkuOAoJCQlIMzYuNDgzVjI4Ni45NDF6IE0yNi40ODIsMzQ5LjgwMWgzMTQuNTc1djIzSDI2LjQ4MlYzNDkuODAxeiBNMzMxLjA1NywzOTIuODAxdjM1LjEzaC00Mi45MTR2LTM1LjEzSDMzMS4wNTd6IE0yNjguMTQzLDM5Mi44MDEKCQkJdjM1LjEzaC00Mi45MTV2LTM1LjEzSDI2OC4xNDN6IE0yMDUuMjI3LDM5Mi44MDF2MzUuMTNoLTQyLjkxNXYtMzUuMTNIMjA1LjIyN3ogTTE0Mi4zMTMsMzkyLjgwMXYzNS4xM0g5OS4zOTh2LTM1LjEzSDE0Mi4zMTN6CgkJCSBNNzkuMzk4LDM5Mi44MDF2MzUuMTNIMzYuNDgzdi0zNS4xM0g3OS4zOTh6IE0yMC40MzgsNDkydi00NC4wNjloNDcxLjEyM1Y0OTJIMjAuNDM4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzguNDg3LDEyNy44NDNjLTAuNTU2LDAtMS4xMTIsMC4wMTEtMS42NjgsMC4wMzNjLTcuNTQzLTE0LjQyLTIyLjUxOS0yMy45MjMtMzguODk0LTIzLjkyMwoJCQljLTIwLjU4NywwLTM4LjA0NywxNC42ODMtNDIuNzczLDM0LjM0NmMtMTkuNzgzLDEuOTMtMzUuMzA5LDE5LjAwMS0zNS4zMDksMzkuNzA3YzAsMjEuOTk0LDE3LjUxNywzOS44ODcsMzkuMDQ4LDM5Ljg4N2g3OS41OTYKCQkJYzI0LjI4NSwwLDQ0LjA0MS0yMC4xOTgsNDQuMDQxLTQ1LjAyNUMzMjIuNTI3LDE0OC4wNDEsMzAyLjc3MSwxMjcuODQzLDI3OC40ODcsMTI3Ljg0M3ogTTI3OC40ODcsMTk3Ljg5M2gtNzkuNTk2CgkJCWMtMTAuNTAzLDAtMTkuMDQ4LTguOTIxLTE5LjA0OC0xOS44ODdjMC0xMC45NjcsOC41NDUtMTkuODg4LDE5LjA0OC0xOS44ODhjMS4wNTYsMCwyLjE0OCwwLjA5OSwzLjI0NCwwLjI5NgoJCQljMi44OTMsMC41MTYsNS44Ny0wLjI2Nyw4LjEzNS0yLjE0MWMyLjI2NS0xLjg3NSwzLjU5LTQuNjUyLDMuNjIzLTcuNTkyYzAuMTUzLTEzLjYzNSwxMC45MzMtMjQuNzI4LDI0LjAzMi0yNC43MjgKCQkJYzEwLjYzOCwwLDE5Ljg3Nyw3LjEwOCwyMi45ODgsMTcuNjg5YzEuNTExLDUuMTM1LDYuNzk0LDguMTczLDExLjk5NCw2Ljg4NmMxLjgzOC0wLjQ1NCwzLjcxNS0wLjY4NCw1LjU4LTAuNjg0CgkJCWMxMy4yNTYsMCwyNC4wNDEsMTEuMjI2LDI0LjA0MSwyNS4wMjVDMzAyLjUyNywxODYuNjY3LDI5MS43NDMsMTk3Ljg5MywyNzguNDg3LDE5Ny44OTN6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gallery:hxe,Garage:zxe,Garden:wxe,"Ground Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgIGQ9Ik0yOTkuNjY4LDIzMS41NzJoLTMuMzM4di02NS43NDZjMC01LjcyNC00LjY1Ny0xMC4zOC0xMC4zOC0xMC4zOGgtNTkuMzU1Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAuMDAxLDQuMDI0LDMuMjYzLDcuMjg3LDcuMjg3LDcuMjg3aDg2Ljc5MWM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMzMDYuOTU1LDIzNC44MzUsMzAzLjY5MywyMzEuNTcyLDI5OS42NjgsMjMxLjU3MnogTTI4MS43NTgsMjMxLjU3M2gtNTAuOTd2LTYxLjU1NGg1MC45N1YyMzEuNTczeiIvPgogICAgICAgIDxwYXRoIG9wYWNpdHk9IjAuMjUiICBkPSJNNDEyLjU3MiwyMzEuNTcyaC0zLjMzOHYtNjUuNzQ2YzAtNS43MjQtNC42NTctMTAuMzgtMTAuMzc5LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g4Ni43OTFjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDE5Ljg1OSwyMzQuODM1LDQxNi41OTcsMjMxLjU3Miw0MTIuNTcyLDIzMS41NzJ6IE0zOTQuNjYxLDIzMS41NzNoLTUwLjk3di02MS41NTRoNTAuOTdWMjMxLjU3M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTgyLjgxMyw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTUsNC41MjktMTAuMDk1LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0aDU5LjUwNGg3LjgxNGM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMxOTAuMSw0MTcuMDk1LDE4Ni44MzgsNDEzLjgzMywxODIuODEzLDQxMy44MzN6IE0xNjcuNzEyLDQxMy44MzNoLTQ0LjkzMXYtNTUuNTY3aDQ0LjkzMVY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDQuMzE0LDQxMy44MzNoLTAuNTI4di02MC4wNDVjMC01LjU2Ni00LjUyOS0xMC4wOTUtMTAuMDk1LTEwLjA5NWgtNTMuODg2Yy01LjU2NiwwLTEwLjA5Niw0LjUyOS0xMC4wOTYsMTAuMDk1djYwLjA0NQoJCQloLTAuNTI4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjUsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoNy44MTRIMzk2LjVoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDExLjYwMSw0MTcuMDk1LDQwOC4zMzksNDEzLjgzMyw0MDQuMzE0LDQxMy44MzN6IE0zODkuMjEzLDQxMy44MzNoLTQ0LjkzMnYtNTUuNTY3aDQ0LjkzMlY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzYuNTQ1LDQwNS4wODljLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MTIuNjNjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4NwoJCQljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtMTIuNjNDMjgzLjgzMiw0MDguMzUyLDI4MC41Nyw0MDUuMDg5LDI3Ni41NDUsNDA1LjA4OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==","Guest Bathroom":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMuNjE4IDYyLTIuNzE4LTUuNDQ3YTEgMSAwIDAgMCAtLjktLjU1M2gtMXYtMzBoM3YtMmgtM3YtMTlhNS4wMDYgNS4wMDYgMCAwIDAgLTUtNWgtMTRhNS4wMDYgNS4wMDYgMCAwIDAgLTUgNXYxYTMgMyAwIDAgMCAtMyAzdjFoLTVhMyAzIDAgMCAwIC0zIDN2MmExIDEgMCAwIDAgMSAxaDE1di0yaC0xNHYtMWExIDEgMCAwIDEgMS0xaDE4YTEgMSAwIDAgMSAxIDF2MWgtNHYyaDVhMSAxIDAgMCAwIDEtMXYtMmEzIDMgMCAwIDAgLTMtM2gtNXYtMWEzIDMgMCAwIDAgLTMtM3YtMWEzIDMgMCAwIDEgMy0zaDE0YTMgMyAwIDAgMSAzIDN2MTloLTV2Mmg1djE0aC0zdi0yaC0ydjZoMnYtMmgzdjE0aC0xYTEgMSAwIDAgMCAtLjkuNTUzbC0yLjcxOCA1LjQ0N2gtNTIuMzgydjJoNjR2LTJ6bS0yNS42MTgtNTN2MWgtNHYtMWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXptMTguNjE4IDQ5aDIuNzY0bDIgNGgtNi43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI5IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDM0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMyAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDEgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDI0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAyOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDE4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMThoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI1IDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAxOGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIgMzcuOTg3djE5LjAxM2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTE5LjFsMi0uMDEzdjIuMTEzaDJ2LTZoLTJ2MS44ODJsLTE4LjAwNi4xMTguMDEyIDJ6bTIgMTIuMDEzaDEwdjFoLTEwem0wIDZ2LTNoMTB2M3ptMTAtOGgtMTB2LTEwLjAyNmwxMC0uMDY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyOWM0LjQ4NiAwIDgtNS4yNzEgOC0xMnMtMy41MTQtMTItOC0xMi04IDUuMjcxLTggMTIgMy41MTQgMTIgOCAxMnptMC0yMmMzLjI1MiAwIDYgNC41NzkgNiAxMHMtMi43NDggMTAtNiAxMC02LTQuNTc5LTYtMTAgMi43NDgtMTAgNi0xMHoiLz4KICAgICAgICA8cGF0aCBkPSJtNS4wOTUgMTMuNWg3LjgxdjJoLTcuODF6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzY4IC0uNjQgLjY0IC43NjggLTcuMTk3IDkuMTIyKSIvPgogICAgICAgIDxwYXRoIGQ9Im03LjA5NSAxOC41aDcuODF2MmgtNy44MXoiIHRyYW5zZm9ybT0ibWF0cml4KC43NjggLS42NCAuNjQgLjc2OCAtOS45MzQgMTEuNTYyKSIvPgogICAgPC9nPgo8L3N2Zz4=","Guest Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NTYsMzI4YTQwLjAzNyw0MC4wMzcsMCwwLDAtOCwuODA0OTNWMTQ0YTcuOTc1MjIsNy45NzUyMiwwLDAsMC0yLjM0MzgxLTUuNjU3NDcsMTQuNjQ1MzUsMTQuNjQ1MzUsMCwwLDEsMC0yMC42ODUwNkE3Ljk3NTIyLDcuOTc1MjIsMCwwLDAsNDQ4LDExMlY4OGg0MGE3Ljk5OTQ2LDcuOTk5NDYsMCwwLDAsNi45NDU4LTExLjk2ODc1bC0zMi01NkE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAsNDU2LDE2SDM4NGE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAtNi45NDU4LDQuMDMxMjVsLTMyLDU2QTcuOTk5NDYsNy45OTk0NiwwLDAsMCwzNTIsODhoNDB2MjRhNy45NzUyMiw3Ljk3NTIyLDAsMCwwLDIuMzQzODEsNS42NTc0NywxNC42NDUzNSwxNC42NDUzNSwwLDAsMSwwLDIwLjY4NTA2QTcuOTc1MjIsNy45NzUyMiwwLDAsMCwzOTIsMTQ0VjMyMEgzMTJWMjg4aDI0YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMjQ4YTguMDAwMDgsOC4wMDAwOCwwLDAsMC04LThIMzEyVjIxNmg0OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAsOC04VjExMmE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDIwOGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djk2YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhoNDh2MjRIMjA1LjQxNjA4bC0xMy42MDU1My0zNC4wMTQ2NS00Ljk3NDEyLTM5Ljc5M0E1Ni41MzE0OCw1Ni41MzE0OCwwLDAsMCwxODQsMTU0LjI2VjgwQTY0LDY0LDAsMCwwLDU2LDgwdjUyLjgyODYxQTU2LjA0MTkzLDU2LjA0MTkzLDAsMCwwLDMzLjU5NDI0LDE2MS45MTlsLTE3LjE4MzYsNTEuNTUwNzhhNy45OTgsNy45OTgsMCwwLDAtLjE3MTg3LDQuNDcwN2w1LjU5MTM3LDIyLjM2NTQ4QTcuOTk3NDUsNy45OTc0NSwwLDAsMCwxNiwyNDhWNDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhINDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMzY4QTQwLjA0NTUyLDQwLjA0NTUyLDAsMCwwLDQ1NiwzMjhabTI0LDQwdjU2SDQzMlYzNjhhMjQsMjQsMCwwLDEsNDgsMFpNMjY0LDQyNFY0MDBhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgtOEg0MDhhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgsOHYyNFpNOTYsNDI0VjQwMGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOC04SDI0MGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOCw4djI0Wm0zMjAtODB2MzMuMzc2MjJBMjMuODgyMTIsMjMuODgyMTIsMCwwLDAsNDA4LDM3NkgyNzJhMjMuOTAxMTEsMjMuOTAxMTEsMCwwLDAtMTYsNi4xMzA4NkEyMy45MDExMSwyMy45MDExMSwwLDAsMCwyNDAsMzc2SDEwNGEyMy44ODIxMiwyMy44ODIxMiwwLDAsMC04LDEuMzc2MjJWMzQ0YTguMDA5MTcsOC4wMDkxNywwLDAsMSw4LThINDA4QTguMDA5MTcsOC4wMDkxNywwLDAsMSw0MTYsMzQ0Wm0xMC40NTE3Mi0yMDhINDEzLjU0ODI4YTMwLjg0MzUxLDMwLjg0MzUxLDAsMCwwLDAtMTZoMTIuOTAzNDRBMzAuODQzNTEsMzAuODQzNTEsMCwwLDAsNDI2LjQ1MTcyLDEzNlpNMzg4LjY0MjU4LDMyaDYyLjcxNDg0bDIyLjg1Njk0LDQwSDM2NS43ODU2NFpNNDMyLDg4djE2SDQwOFY4OFptLTI0LDY0aDI0VjMzNi4wMjJjLS4zNjYzMy4yNzU2NC0uNzI0MTguNTYyLTEuMDgwNjkuODQ5NjFBMjQuMDQzNjksMjQuMDQzNjksMCwwLDAsNDA4LDMyMFpNMjk2LDMyMEgxMDRhMjQuMDQzNjksMjQuMDQzNjksMCwwLDAtMjIuOTE5MzEsMTYuODcxNThBMzkuOSwzOS45LDAsMCwwLDMyLDMzNi4wMjJWMjg4SDI5NlptMzItNDhIMzJWMjU2SDMyOFpNNzIsMjQwSDY0VjIyNS41NDFsNy4zMTY4OS0xOC4yOTJMNzIsMjA5LjI5Nzg1Wm04OC0uMDAwMjQuMDAwMjQuMDAwMjRIMTYwWk0yMTYsMjAwVjEyMEgzNTJ2ODBIMzEyVjE2OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDI2NGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djMyWm01Ni0yNGgyNHY2NEgyNzJaTTEyMCwzMmE0OC4wNTQsNDguMDU0LDAsMCwxLDQ4LDQ4djUwLjg1MzUyYTU2LjcyNTYyLDU2LjcyNTYyLDAsMCwwLTcuOTE5OTItNS43MzUzNmwtMTEuNDQxNjUtNi44NjVBMzEuNzk0MDUsMzEuNzk0MDUsMCwwLDAsMTUyLDEwNFY4MGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04aC02LjExMTMzYTIwLjgzMDUzLDIwLjgzMDUzLDAsMCwxLTE4LjczMzQtMTEuNTc4MTIsOC4wMDA2NCw4LjAwMDY0LDAsMCwwLTEyLjgxMi0yLjA3OTExbC0xNiwxNkE4LjAwMDc2LDguMDAwNzYsMCwwLDAsODgsODB2MjRhMzEuODAxODgsMzEuODAxODgsMCwwLDAsMi43NTc1MSwxMi45NzExOUw3MiwxMjUuMDFWODBBNDguMDU0LDQ4LjA1NCwwLDAsMSwxMjAsMzJabTE2LDcyYTE2LDE2LDAsMCwxLTMyLDBWODMuMzEzNDhsNi45NDY3OC02Ljk0NjI5QTM2LjY5ODE2LDM2LjY5ODE2LDAsMCwwLDEzNiw4Ny45NTMxMlptLTM0Ljc3MTkxLDI1Ljg5MjA5YTMxLjkxNjEzLDMxLjkxNjEzLDAsMCwwLDM2LjcwNDQ3LjU5NzE3bDEuMjM3MTguNzQyNDNMMTIwLDE1NS4xOTMzNmwtMTkuODY2MjctMjQuODMyMjhaTTQ4Ljc3MywxNjYuOTc5NDlBNDAuMDM1MzgsNDAuMDM1MzgsMCwwLDEsNzAuOTYzODcsMTQyLjg2MjNsMTMuOTExNjItNS45NjE5MSwyOC44Nzc0NCwzNi4wOTY2OGE3Ljk5OTQzLDcuOTk5NDMsMCwwLDAsMTIuNDk0MTQsMEwxNTIuOTksMTM5LjU2ODM2YTM5LjcyNzc5LDM5LjcyNzc5LDAsMCwxLDE3Ljk2OTQ4LDI4LjYwODRsNS4xMDI1NCw0MC44MTU0M2E3Ljk4MjgxLDcuOTgyODEsMCwwLDAsLjUxMDI2LDEuOTc4NTFMMTg4LjE4MzU5LDI0MEgxODBsLTIwLTI2LjY2N1YyMDEuODA2NjRhNTAuODIzMzgsNTAuODIzMzgsMCwwLDAsMS45MzI2Mi0zNy4zMDc2MmwtMi4zNDMyNi03LjAyOTI5LTE1LjE3ODcyLDUuMDYwNTQsMi4zNDMyNyw3LjAyOTNhMzQuOTU1MTMsMzQuOTU1MTMsMCwwLDEtMS45MDkxOCwyNi44NjIzMUE3Ljk5OTM0LDcuOTk5MzQsMCwwLDAsMTQ0LDIwMHY0MEg4OFYyMDhhOC4wMDY0Myw4LjAwNjQzLDAsMCwwLS40MTA2NC0yLjUzMDI3bC04LTI0YTguMDAwMDksOC4wMDAwOSwwLDAsMC0xNS4wMTcwOS0uNDQwNDNsLTE2LDQwQTcuOTk3MjMsNy45OTcyMywwLDAsMCw0OCwyMjR2MTZIMzguMjQ2MDlsLTUuOTE5OTItMjMuNjgwNjZaTTMyLDM2OGEyNCwyNCwwLDAsMSw0OCwwdjU2SDMyWk00ODAsNDgwSDMyVjQ0MEg0ODBaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gym:Cxe,Hall:Ixe,"Home Theater":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSIxIC00NCA1MTEuOTk4OTkgNTExIiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggZD0ibTI4Mi41MTk1MzEgMzMzLjk4ODI4MWMtNC4xNzE4NzUgMC03LjU0Njg3NSAzLjM3ODkwNy03LjU0Njg3NSA3LjU0Njg3NSAwIDQuMTY3OTY5IDMuMzc1IDcuNTQ2ODc1IDcuNTQ2ODc1IDcuNTQ2ODc1aDExNC4zMzk4NDRjNy4wODIwMzEgMCAxMi44NDM3NS01Ljc2MTcxOSAxMi44NDM3NS0xMi44NDc2NTZ2LTE5MS45Mjk2ODdjMC03LjA4MjAzMi01Ljc2MTcxOS0xMi44NDc2NTctMTIuODQzNzUtMTIuODQ3NjU3aC0yODEuNzE4NzVjLTcuMDgyMDMxIDAtMTIuODQzNzUgNS43NjU2MjUtMTIuODQzNzUgMTIuODQ3NjU3djE5MS45Mjk2ODdjMCA3LjA4NTkzNyA1Ljc2MTcxOSAxMi44NDc2NTYgMTIuODQzNzUgMTIuODQ3NjU2aDEzNy4xOTE0MDZjNC4xNjc5NjkgMCA3LjU0Njg3NS0zLjM3ODkwNiA3LjU0Njg3NS03LjU0Njg3NSAwLTQuMTY3OTY4LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc1LTcuNTQ2ODc1aC0xMzQuOTQ1MzEydi0xODcuNDM3NWgyNzcuMjI2NTYydjE4Ny40Mzc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00OS4yNjE3MTkgODIuNzQyMTg4YzE1LjU4MjAzMSAwIDI4LjI2MTcxOS0xMi42Nzk2ODggMjguMjYxNzE5LTI4LjI1MzkwNyAwLTE1LjU4NTkzNy0xMi42Nzk2ODgtMjguMjYxNzE5LTI4LjI2MTcxOS0yOC4yNjE3MTktMTUuNTc4MTI1IDAtMjguMjUzOTA3IDEyLjY3NTc4Mi0yOC4yNTM5MDcgMjguMjYxNzE5IDAgMTUuNTc0MjE5IDEyLjY3NTc4MiAyOC4yNTM5MDcgMjguMjUzOTA3IDI4LjI1MzkwN3ptMC00MS40MjU3ODJjNy4yNjE3MTkgMCAxMy4xNjc5NjkgNS45MDYyNSAxMy4xNjc5NjkgMTMuMTcxODc1IDAgNy4yNTM5MDctNS45MDYyNSAxMy4xNjAxNTctMTMuMTY3OTY5IDEzLjE2MDE1Ny03LjI1MzkwNyAwLTEzLjE2MDE1Ny01LjkwNjI1LTEzLjE2MDE1Ny0xMy4xNjAxNTcgMC03LjI2NTYyNSA1LjkwNjI1LTEzLjE3MTg3NSAxMy4xNjAxNTctMTMuMTcxODc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxLjVjLTI3LjE2NDA2MiAwLTQ5LjI2OTUzMSAyMi4xMDU0NjktNDkuMjY5NTMxIDQ5LjI2OTUzMXY1Ni4zMDQ2ODhjLTUuNjUyMzQ0LTEuMzY3MTg4LTYuMDQyOTY5LS41MzUxNTctNTQuMzMyMDMxLS43NzczNDQtNC4xNjQwNjMgMC03LjU0Mjk2OSAzLjM4MjgxMy03LjU0Mjk2OSA3LjU0Njg3NXMzLjM3ODkwNiA3LjU0Njg3NSA3LjU0Mjk2OSA3LjU0Njg3NWg0Ny43MjI2NTZjNy43MzA0NjkgMCAxMy45MTQwNjMgNi4zMDQ2ODcgMTMuOTE0MDYzIDEzLjkxNDA2M3YyMTEuOTMzNTkzYzAgNy42NjQwNjMtNi4yNDYwOTQgMTMuOTE0MDYzLTEzLjkxNDA2MyAxMy45MTQwNjMtNTkuNDE3OTY5IDAtMjMxLjU1NDY4NyAwLTMwMS43MTg3NSAwLTcuNjY3OTY5IDAtMTMuOTE0MDYzLTYuMjUtMTMuOTE0MDYzLTEzLjkxNDA2MyAwLTEwLjc0NjA5MyAwLTIwNC41ODk4NDMgMC0yMTEuOTMzNTkzIDAtNS4yNzM0MzggMi45NTcwMzItOS44Nzg5MDcgNy4zMDQ2ODgtMTIuMjQ2MDk0IDUuODQzNzUtMy4xNzU3ODItNC4yNDIxODgtMS4wNDY4NzUgMjMwLjQyMTg3NS0xLjY2Nzk2OSA0LjE3NTc4MSAwIDcuNTQ2ODc1LTMuMzgyODEzIDcuNTQ2ODc1LTcuNTQ2ODc1cy0zLjM3MTA5NC03LjU0Njg3NS03LjU0Njg3NS03LjU0Njg3NWMtMjM2LjM1MTU2My4yNzM0MzctMjI0LjU1MDc4MS0uNjQ0NTMxLTIzMC40MjE4NzUuNzc3MzQ0di01Ni4zMDQ2ODhjMC0yNy4xNjQwNjItMjIuMTA1NDY5LTQ5LjI2OTUzMS00OS4yNjk1MzEtNDkuMjY5NTMxLTIyLjc2OTUzMSAwLTQyLjQ0OTIxOSAxNS40MzM1OTQtNDcuODYzMjgxIDM3LjUyNzM0NC0uOTg0Mzc2IDQuMDU0Njg3IDEuNSA4LjE0MDYyNSA1LjU0Mjk2OCA5LjEyNSA0LjA0Njg3NS45ODgyODEgOC4xMjg5MDYtMS40ODgyODIgOS4xMjUtNS41MzEyNSAzLjc0NjA5NC0xNS4zMjQyMTkgMTcuMzk4NDM4LTI2LjAzMTI1IDMzLjE5NTMxMy0yNi4wMzEyNSAxOC44NDM3NSAwIDM0LjE3NTc4MSAxNS4zMzU5MzcgMzQuMTc1NzgxIDM0LjE3OTY4N3Y2NS4zMTY0MDdjLTMuMTEzMjgxIDMuNTExNzE4LTUuMzkwNjI1IDcuNzczNDM3LTYuNTExNzE5IDEyLjQ4MDQ2OC0yLjY3MTg3NS0xMi44MjQyMTgtMTQuMDU4NTkzLTIyLjQ4ODI4MS0yNy42NjQwNjItMjIuNDg4MjgxLTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42Nzk2ODctMjguMjUzOTA3IDI4LjI1NzgxMyAwIDE1LjU3ODEyNCAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIxMDkzOCAyNi44NzEwOTMtMTkuNTMxMjV2NjEuMzk4NDM4Yy0zLjY4MzU5My0xMS4zMjAzMTMtMTQuMzM1OTM3LTE5LjUyNzM0NC0yNi44NzEwOTMtMTkuNTI3MzQ0LTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42NzU3ODEtMjguMjUzOTA3IDI4LjI1MzkwNiAwIDE1LjU4MjAzMSAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIwNzAzMSAyNi44NzEwOTMtMTkuNTMxMjV2NjEuNDAyMzQ0Yy0zLjY4MzU5My0xMS4zMjQyMTgtMTQuMzM1OTM3LTE5LjUzMTI1LTI2Ljg3MTA5My0xOS41MzEyNS0xNS41NzgxMjUgMC0yOC4yNTM5MDcgMTIuNjc1NzgyLTI4LjI1MzkwNyAyOC4yNTM5MDYgMCAxNS41ODIwMzIgMTIuNjc1NzgyIDI4LjI1NzgxMyAyOC4yNTM5MDcgMjguMjU3ODEzIDEyLjUzNTE1NiAwIDIzLjE4NzUtOC4yMDcwMzEgMjYuODcxMDkzLTE5LjUzMTI1djE3LjA4OTg0NGMtMjAuMTA1NDY4IDI1LjUzMTI1LTYxLjAzOTA2MiAxMS4xMjUtNjEuMDM5MDYyLTIxLjA5NzY1N3YtMjI1Ljg0Mzc1YzAtNC4xNzU3ODEtMy4zODI4MTItNy41NDY4NzQtNy41NDY4NzUtNy41NDY4NzQtNC4xNzU3ODEgMC03LjU0Njg3NSAzLjM3MTA5My03LjU0Njg3NSA3LjU0Njg3NHYyMjUuODQzNzVjMCAyNC42MDE1NjMgMTguMTIxMDk0IDQ1LjA1MDc4MiA0MS43MTg3NSA0OC42OTUzMTN2NjIuNTI3MzQ0aC0xOC45NjQ4NDRjLTQuMTY3OTY4IDAtNy41NDY4NzUgMy4zNzg5MDYtNy41NDY4NzUgNy41NDY4NzUgMCA0LjE2Nzk2OCAzLjM3ODkwNyA3LjU0Njg3NSA3LjU0Njg3NSA3LjU0Njg3NWg1My4wMTk1MzJjNC4xNjc5NjggMCA3LjU0Njg3NC0zLjM3ODkwNyA3LjU0Njg3NC03LjU0Njg3NSAwLTQuMTY3OTY5LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc0LTcuNTQ2ODc1aC0xOC45NjQ4NDR2LTYyLjUzMTI1YzcuMDQyOTY4LTEuMDg1OTM4IDEzLjU5NzY1Ni0zLjY2Nzk2OSAxOS4zMjQyMTgtNy40MTAxNTd2OS4xOTkyMTljMCAxNS45ODQzNzUgMTMuMDE5NTMyIDI5LjAwMzkwNyAyOS4wMDc4MTMgMjkuMDAzOTA3aDQ1LjgyMDMxM3YzNS44OTg0MzdjMCA2LjI4OTA2MyA1LjEwOTM3NCAxMS40MTAxNTYgMTEuMzk4NDM3IDExLjQxMDE1NmgyMS4xMjg5MDZjNi4yODkwNjMgMCAxMS4zOTg0MzgtNS4xMjEwOTMgMTEuMzk4NDM4LTExLjQxMDE1NnYtMzUuODk4NDM3aDEyMi4yMjY1NjJ2MzUuODk4NDM3YzAgNi4yODkwNjMgNS4xMDkzNzUgMTEuNDEwMTU2IDExLjM5ODQzOCAxMS40MTAxNTZoMjEuMTI4OTA2YzYuMjg5MDYzIDAgMTEuMzk4NDM3LTUuMTIxMDkzIDExLjM5ODQzNy0xMS40MTAxNTZ2LTM1Ljg5ODQzN2g0NS44MjAzMTNjMTUuOTg4MjgxIDAgMjkuMDA3ODEzLTEzLjAxOTUzMiAyOS4wMDc4MTMtMjkuMDAzOTA3di05LjE5OTIxOWM1LjcyNjU2MiAzLjc0MjE4OCAxMi4yODEyNSA2LjMyNDIxOSAxOS4zMjQyMTggNy40MTAxNTd2NjIuNTMxMjVoLTE4Ljk2NDg0NGMtNC4xNjc5NjggMC03LjU0Njg3NCAzLjM3ODkwNi03LjU0Njg3NCA3LjU0Njg3NSAwIDQuMTY3OTY4IDMuMzc4OTA2IDcuNTQ2ODc1IDcuNTQ2ODc0IDcuNTQ2ODc1aDUzLjAxOTUzMmM0LjE2Nzk2OCAwIDcuNTQ2ODc1LTMuMzc4OTA3IDcuNTQ2ODc1LTcuNTQ2ODc1IDAtNC4xNjc5NjktMy4zNzg5MDctNy41NDY4NzUtNy41NDY4NzUtNy41NDY4NzVoLTE4Ljk2NDg0NHYtNjIuNTI3MzQ0YzIzLjU5NzY1Ni0zLjY0NDUzMSA0MS43MTg3NS0yNC4wOTM3NSA0MS43MTg3NS00OC42OTUzMTN2LTI0NS45ODgyODFjMC0yNy4xNjQwNjItMjIuMDkzNzUtNDkuMjY5NTMxLTQ5LjI2MTcxOS00OS4yNjk1MzF6bS00MTMuNDc2NTYyIDE0NmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY0MDYyIDAtNy4yNTc4MTMgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY0MDYzLTEzLjE2NDA2MyA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjMgMCA3LjI1NzgxMi01LjkwNjI1IDEzLjE2NDA2Mi0xMy4xNjQwNjIgMTMuMTY0MDYyem0wIDc4Ljg1NTQ2OWMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0wIDc4Ljg1MTU2MmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0xMzAuNTM1MTU2IDEwMy4yNTM5MDdoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNjYuMTUyMzQ0IDBoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNTAuOTU3MDMxLTExMS43MDMxMjZjMCAzMi4yMzgyODItNDAuOTQxNDA2IDQ2LjYyMTA5NC02MS4wMzkwNjIgMjEuMDk3NjU3di0xNy4wODU5MzhjMy42ODM1OTMgMTEuMzIwMzEzIDE0LjMzNTkzNyAxOS41MjczNDQgMjYuODcxMDkzIDE5LjUyNzM0NCAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTMgMC0xNS41NzgxMjQtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMi0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTQ1MzFjMy42ODM1OTMgMTEuMzIwMzEyIDE0LjMzNTkzNyAxOS41MjczNDMgMjYuODcxMDkzIDE5LjUyNzM0MyAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTIgMC0xNS41NzgxMjUtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMS0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTg0MzhjMy42ODM1OTMgMTEuMzI0MjE5IDE0LjMzNTkzNyAxOS41MzEyNSAyNi44NzEwOTMgMTkuNTMxMjUgMTUuNTc4MTI1IDAgMjguMjUzOTA3LTEyLjY3NTc4MSAyOC4yNTM5MDctMjguMjU3ODEyIDAtMTUuNTc4MTI2LTEyLjY3NTc4Mi0yOC4yNTM5MDctMjguMjUzOTA3LTI4LjI1MzkwNy0xMy42MDU0NjkgMC0yNC45OTIxODcgOS42NjAxNTctMjcuNjY0MDYyIDIyLjQ4NDM3NS0xLjEyMTA5NC00LjcwNzAzMS0zLjM5ODQzOC04Ljk2ODc1LTYuNTExNzE5LTEyLjQ3NjU2MnYtNjUuMzIwMzEzYzAtMTguODQzNzUgMTUuMzMyMDMxLTM0LjE3OTY4NyAzNC4xNzk2ODgtMzQuMTc5Njg3IDE4Ljg0Mzc1IDAgMzQuMTY3OTY4IDE1LjMzNTkzNyAzNC4xNjc5NjggMzQuMTc5Njg3djI0NS45ODgyODF6bS00Ny4zMzIwMzEtNC43MTg3NWMwLTcuMjU3ODEyIDUuOTA2MjUtMTMuMTY0MDYyIDEzLjE2NDA2Mi0xMy4xNjQwNjIgNy4yNTc4MTMgMCAxMy4xNjQwNjMgNS45MDYyNSAxMy4xNjQwNjMgMTMuMTY0MDYyIDAgNy4yNjE3MTktNS45MDYyNSAxMy4xNjc5NjktMTMuMTY0MDYzIDEzLjE2Nzk2OS03LjI1NzgxMiAwLTEzLjE2NDA2Mi01LjkwNjI1LTEzLjE2NDA2Mi0xMy4xNjc5Njl6bTAtNzguODUxNTYyYzAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYyLTEzLjE2NDA2MiA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwNjI1IDEzLjE2NDA2MyAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjMgMTMuMTY3OTY5LTcuMjU3ODEyIDAtMTMuMTY0MDYyLTUuOTA2MjUtMTMuMTY0MDYyLTEzLjE2Nzk2OXptMC03OC44NTE1NjJjMC03LjI1NzgxMyA1LjkwNjI1LTEzLjE2NDA2MyAxMy4xNjQwNjItMTMuMTY0MDYzIDcuMjU3ODEzIDAgMTMuMTY0MDYzIDUuOTA2MjUgMTMuMTY0MDYzIDEzLjE2NDA2MyAwIDcuMjU3ODEyLTUuOTA2MjUgMTMuMTY0MDYyLTEzLjE2NDA2MyAxMy4xNjQwNjItNy4yNTc4MTIgMC0xMy4xNjQwNjItNS45MDYyNS0xMy4xNjQwNjItMTMuMTY0MDYyem0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxIDI2LjIyNjU2MmMtMTUuNTgyMDMxIDAtMjguMjU3ODEyIDEyLjY3NTc4Mi0yOC4yNTc4MTIgMjguMjU3ODEzIDAgMTUuNTc4MTI1IDEyLjY3NTc4MSAyOC4yNTM5MDYgMjguMjU3ODEyIDI4LjI1MzkwNiAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTM5MDYgMC0xNS41ODIwMzEtMTIuNjc1NzgyLTI4LjI1NzgxMy0yOC4yNTM5MDctMjguMjU3ODEzem0wIDQxLjQyMTg3NmMtNy4yNjE3MTkgMC0xMy4xNjc5NjktNS45MDYyNS0xMy4xNjc5NjktMTMuMTY0MDYzIDAtNy4yNjE3MTkgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY3OTY5LTEzLjE2NDA2MyA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwMjM0NCAxMy4xNjQwNjMgMTMuMTY0MDYzIDAgNy4yNTc4MTMtNS45MDYyNSAxMy4xNjQwNjMtMTMuMTY0MDYzIDEzLjE2NDA2M3ptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Kitchen:pxe,"Laundry Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgMmgtNThjLS41NTIgMC0xIC40NDgtMSAxdjU4YzAgLjU1Mi40NDggMSAxIDFoNThjLjU1MiAwIDEtLjQ0OCAxLTF2LTU4YzAtLjU1Mi0uNDQ4LTEtMS0xem0tMSA2aC00di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC02Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyaC0zYy0uNTUyIDAtMSAuNDQ4LTEgMXY5aC0ydi0xNGgxOHptLTEyLjE0MiAzMS0xLjY5Mi0xMWg5LjY2OWwtMS42OTIgMTF6bTEuMTQyLTEzYzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTguNzU5LjM0OWMtLjE5LS4yMjItLjQ2Ny0uMzQ5LS43NTktLjM0OWgtMmMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNGgtMmMtLjI5MiAwLS41NjkuMTI3LS43NTkuMzQ5cy0uMjc0LjUxNS0uMjI5LjgwM2wxLjgyMyAxMS44NDhoLTMuODM1di0xOWgxOHYxOWgtMy44MzVsMS44MjMtMTEuODQ4Yy4wNDUtLjI4OC0uMDM5LS41ODItLjIyOS0uODAzem0tNy43NTktMTcuMzQ5di0yaDR2MTFoLTR6bS0yIDloLTJ2LThoMnptOCAwdi04aDR2OHptLTE2LTE0djE0aC0ydi0xMGMwLS41NTItLjQ0OC0xLTEtMWgtNmMtLjU1MiAwLTEgLjQ0OC0xIDF2MTBoLTJ2LTdjMC0uMjY1LS4xMDUtLjUyLS4yOTMtLjcwN2wtMS43MDctMS43MDd2LTIuNTg2YzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyLjU4NmwtMS43MDcgMS43MDdjLS4xODguMTg3LS4yOTMuNDQyLS4yOTMuNzA3djdoLTJ2LTEwYzAtLjU1Mi0uNDQ4LTEtMS0xaC04Yy0uNTUyIDAtMSAuNDQ4LTEgMXYxMGgtMnYtMTR6bS00IDE0aC00di05aDR6bS0xMS43MDctOC4yOTMgMS43MDcgMS43MDd2Ni41ODZoLTZ2LTYuNTg2bDEuNzA3LTEuNzA3Yy4xODgtLjE4Ny4yOTMtLjQ0Mi4yOTMtLjcwN3YtMmgydjJjMCAuMjY1LjEwNS41Mi4yOTMuNzA3em0tMTAuMjkzIDguMjkzaC02di05aDZ6bS0xMCAyaDM2djQwaC0zNnptNDUgMjhoLTJ2LTFoMnptLTMgMmg0LjY0OWw0LjM1MSAzLjQ4djYuNTJoLTl6bTExIDEwdi03YzAtLjMwNC0uMTM4LS41OTEtLjM3NS0uNzgxbC01LTRjLS4xNzgtLjE0Mi0uMzk4LS4yMTktLjYyNS0uMjE5di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyYy0uNTUyIDAtMSAuNDQ4LTEgMXYxMWgtMnYtMTloMTh2MTl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDIyaC0zMGMtLjU1MiAwLTEgLjQ0OC0xIDF2MzRjMCAuNTUyLjQ0OCAxIDEgMWgzMGMuNTUyIDAgMS0uNDQ4IDEtMXYtMzRjMC0uNTUyLS40NDgtMS0xLTF6bS0xIDJ2NWgtMjh2LTV6bS0yOCAzMnYtMjVoMjh2MjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDMzYy02LjA2NSAwLTExIDQuOTM1LTExIDExczQuOTM1IDExIDExIDExIDExLTQuOTM1IDExLTExLTQuOTM1LTExLTExLTExem0wIDIwYy00Ljk2MiAwLTktNC4wMzgtOS05czQuMDM4LTkgOS05IDkgNC4wMzggOSA5LTQuMDM4IDktOSA5eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNi4xOTkgNDguMjg2IDEuMzk5IDEuNDI5Yy42NzctLjY2MyAxLjIyNi0xLjQzMiAxLjYzMS0yLjI4NmwtMS44MDctLjg1N2MtLjMwMy42MzktLjcxNCAxLjIxNi0xLjIyMyAxLjcxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjIgMzZ2MmMzLjMwOSAwIDYgMi42OTEgNiA2aDJjMC00LjQxMS0zLjU4OS04LTgtOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAgMjVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNCAyNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+","Living Area":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTQuNSAyNzcuNjY3aC01LjV2LTM2LjVjMC0xNS4xNjQtMTIuMzM2LTI3LjUtMjcuNS0yNy41aC0xMTBjLTcuODc1IDAtMTQuOTgyIDMuMzMyLTIwIDguNjU1LTUuMDE4LTUuMzIyLTEyLjEyNS04LjY1NS0yMC04LjY1NWgtMTEwYy03Ljg3NSAwLTE0Ljk4MiAzLjMzMi0yMCA4LjY1NS01LjAxOC01LjMyMi0xMi4xMjUtOC42NTUtMjAtOC42NTVoLTQwLjVjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoNDAuNWM2Ljg5MyAwIDEyLjUgNS42MDcgMTIuNSAxMi41djc3LjAxOGMtMy43NTMtMS45MjQtOC0zLjAxOC0xMi41LTMuMDE4aC0xMDEuNXYtMjBjMC05LjY0OS03Ljg1MS0xNy41LTE3LjUtMTcuNWgtMy41di0zNi41YzAtNi44OTMgNS42MDctMTIuNSAxMi41LTEyLjVoMzQuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMzQuNWMtMTUuMTY0IDAtMjcuNSAxMi4zMzYtMjcuNSAyNy41djM2LjVoLTYuNWMtOS42NDkgMC0xNy41IDcuODUxLTE3LjUgMTcuNXY0Mi41YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQyLjVjMC0xLjM3OCAxLjEyMi0yLjUgMi41LTIuNWgyNWMxLjM3OCAwIDIuNSAxLjEyMiAyLjUgMi41djE0MC41aC0yNy41Yy0xLjM3OCAwLTIuNS0xLjEyMi0yLjUtMi41di02MC41YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djYwLjVjMCA5LjY0OSA3Ljg1MSAxNy41IDE3LjUgMTcuNWgyNy41djE0LjY2N2MwIDYuODkzIDUuNjA3IDEyLjUgMTIuNSAxMi41aDI1YzYuODkzIDAgMTIuNS01LjYwNyAxMi41LTEyLjV2LTE0LjY2N2gzMjJ2MTQuNjY3YzAgNi44OTMgNS42MDcgMTIuNSAxMi41IDEyLjVoMjVjNi44OTMgMCAxMi41LTUuNjA3IDEyLjUtMTIuNXYtMTQuNjY3aDI3LjVjOS42NDkgMCAxNy41LTcuODUxIDE3LjUtMTcuNXYtMTM4YzAtOS42NS03Ljg1MS0xNy41LTE3LjUtMTcuNXptLTE0My00OWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXYzNi41aC00LjVjLTkuNjQ5IDAtMTcuNSA3Ljg1MS0xNy41IDE3LjV2MjBoLTEwMC41Yy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTI5MS41IDIwN3YtMTVoMzI2YzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC0zMjZ2LTE1LjVoMTAxLjVjNy44NzUgMCAxNC45ODItMy4zMzIgMjAtOC42NTUgNS4wMTggNS4zMjIgMTIuMTI1IDguNjU1IDIwIDguNjU1aDExMGM3Ljg3NSAwIDE0Ljk4Mi0zLjMzMiAyMC04LjY1NSA1LjAxOCA1LjMyMiAxMi4xMjUgOC42NTUgMjAgOC42NTVoMTAwLjV2MTUuNWgtMzFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoMzF2MTV6bTM5Mi02MC41aC0xMDAuNWMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMDAuNXptLTEyOC0xMi41YzAgNi44OTMtNS42MDcgMTIuNS0xMi41IDEyLjVoLTExMGMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXptLTEyMi41LTEzNGgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXY3Ny4wMThjLTMuNzUzLTEuOTI0LTgtMy4wMTgtMTIuNS0zLjAxOGgtMTEwYy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTQwIDEwMS41YzYuODkzIDAgMTIuNSA1LjYwNyAxMi41IDEyLjV2MjBjMCA2Ljg5My01LjYwNyAxMi41LTEyLjUgMTIuNWgtMTAxLjV2LTQ1em0tODEuNSAxMzIuNjY2aC0yMHYtMTIuMTY3aDIwem0zNTIgMHYtMTIuMTY3aDIwdjEyLjE2N3ptNjUtMjkuNjY2YzAgMS4zNzgtMS4xMjIgMi41LTIuNSAyLjVoLTI3LjV2LTE0MC41YzAtMS4zNzggMS4xMjItMi41IDIuNS0yLjVoMjVjMS4zNzggMCAyLjUgMS4xMjIgMi41IDIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuNDkgMTMwLjE2N2gxMTIuMDJjNi44ODcgMCAxMi40OS01LjYwMyAxMi40OS0xMi40OXYtMTYuNTQ5YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djE0LjAzOWgtMTA3di02NmgxMDd2MTYuOTYxYzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTE5LjQ3MmMwLTYuODg3LTUuNjAzLTEyLjQ5LTEyLjQ5LTEyLjQ5aC0xMTIuMDJjLTYuODg3IDAtMTIuNDkgNS42MDMtMTIuNDkgMTIuNDl2NzEuMDIxYzAgNi44ODYgNS42MDMgMTIuNDkgMTIuNDkgMTIuNDl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzMS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4MS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMC4yMzIgMjQ3LjIxNWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjhjNy4zNDkgNC44MjggMTMuNTIyIDExLjAwMiAxOC4zNTEgMTguMzUxIDEuMzg3IDIuMTEgMy43NDMgMy4zODEgNi4yNjggMy4zODFzNC44ODEtMS4yNzEgNi4yNjgtMy4zODFjNC44MjgtNy4zNDkgMTEuMDAyLTEzLjUyMiAxOC4zNTEtMTguMzUxIDIuMTEtMS4zODcgMy4zODEtMy43NDMgMy4zODEtNi4yNjhzLTEuMjcxLTQuODgxLTMuMzgxLTYuMjY4Yy03LjM0OS00LjgyOC0xMy41MjItMTEuMDAyLTE4LjM1MS0xOC4zNTEtMS4zODctMi4xMS0zLjc0My0zLjM4MS02LjI2OC0zLjM4MXMtNC44ODEgMS4yNy02LjI2OCAzLjM4MXptMTQuMzQ0IDI0LjYxOGMtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTQgNS41ODMtNS4xODkgOC4wNzYtOC4wNzYgMi40OTQgMi44ODggNS4xODkgNS41ODMgOC4wNzYgOC4wNzZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Living Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzMsMzMxLjkxNlYyNzMuNjQ4QTM5LjcxLDM5LjcxLDAsMCwwLDQzMy4zMjgsMjM0SDM3NlYxNzBoNDQuMDA5YTYuMjg5LDYuMjg5LDAsMCwwLDUuNzQ3LTguMDJMNDA0LjgzMSw5Mi4yNDhBNS45NzYsNS45NzYsMCwwLDAsMzk5LjA4NCw4OEgzNDAuOTE2YTUuOTMyLDUuOTMyLDAsMCwwLTUuNzQ3LDQuMkwzMTQuMjQ0LDE2MS45MmE2LjM3Miw2LjM3MiwwLDAsMCwuOTM0LDUuNDgzLDYuMTc2LDYuMTc2LDAsMCwwLDQuODEzLDIuNkgzNjR2NjRIODguNjc1QTM5LjcxMywzOS43MTMsMCwwLDAsNDksMjczLjY0OHY1OC4yNjhhMzkuNDE3LDM5LjQxNywwLDAsMC0zNywzOS41NTZWNDYzLjFhNS45MTUsNS45MTUsMCwwLDAsNiw1LjlIMzV2MzBhNi4yNDYsNi4yNDYsMCwwLDAsNi4yOCw2aDY3Ljg2N0E1Ljg3Nyw1Ljg3NywwLDAsMCwxMTUsNDk5VjQ2OUg0MDd2MzBhNS44NzksNS44NzksMCwwLDAsNS44NTUsNmg2Ny44NjlBNi4yNDMsNi4yNDMsMCwwLDAsNDg3LDQ5OVY0NjloMTdhNS45MTMsNS45MTMsMCwwLDAsNi01LjlWMzcxLjQ3MkEzOS40MTcsMzkuNDE3LDAsMCwwLDQ3MywzMzEuOTE2Wk0zNDUuMzgxLDEwMGg0OS4yMzhsMTcuMzI2LDU4aC04My44OVpNODguNjc1LDI0Nkg0MzMuMzI4QTI3LjcsMjcuNywwLDAsMSw0NjEsMjczLjY0OHY1OS4zYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAsMzguNTI2VjM5MEg5MVYzNzEuNDcyYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAtMzguNTI2di01OS4zQTI3LjcsMjcuNywwLDAsMSw4OC42NzUsMjQ2Wk0xMDMsNDkzSDQ3VjQ2OWg1NlptMzcyLDBINDE5VjQ2OWg1NlptMjMtMzZIMjRWMzcxLjQ3MmEyNy41LDI3LjUsMCwxLDEsNTUsMFYzOTUuOGE2LjQ0OCw2LjQ0OCwwLDAsMCw2LjMxLDYuMkg0MzYuNjkzQTYuNDQ1LDYuNDQ1LDAsMCwwLDQ0MywzOTUuOFYzNzEuNDcyYTI3LjUsMjcuNSwwLDEsMSw1NSwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTQsMjAzLjIzOFY1Ni42MjZBNS42NCw1LjY0LDAsMCwwLDIwOC4wNjIsNTFoLTUzLjkyTDExMi4yNzIsOC45NDRhNS43MzcsNS43MzcsMCwwLDAtOC40ODQuMDQ3TDYxLjkxOSw1MUg4YTUuNjkzLDUuNjkzLDAsMCwwLTYsNS42MjZWMjAzLjIzOEE1LjgsNS44LDAsMCwwLDgsMjA5SDIwOC4wNjJBNS43NDksNS43NDksMCwwLDAsMjE0LDIwMy4yMzhaTTE3NCwxMzEuOGwtNDIuMjMsMTkuNjg2TDgwLjM2NSwxMTYuNDQzYTYuMjQ1LDYuMjQ1LDAsMCwwLTcuMTMxLjE2M0w0MSwxNDAuNjg2Vjg3SDE3NFpNNDEsMTU1LjY4OWwzNi4wNjItMjYuOTExLDUwLjg4NSwzNC41NDJhNi4xNyw2LjE3LDAsMCwwLDMuNDI3LDEuMDM5LDUuMTY5LDUuMTY5LDAsMCwwLDIuMzMyLS41NTdMMTc0LDE0NS4wMjVWMTczSDQxWk0xNzguMTU1LDc1SDM3LjY4OUwyMy4yNDMsNjNIMTkyLjVaTTI5LDg0LjA5MVYxNzYuMkwxNCwxODkuOTI4VjcwLjQ3M1pNMzcuNywxODVIMTc4LjE0bDEzLjc2NywxMkgyMy44MzVaTTE4NiwxNzYuMjFWODQuMDc4bDE2LTEzLjlWMTkwLjIyNlpNMTA4LjAzLDIxLjg1OSwxMzcuMTcyLDUxSDc4Ljg4OVoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4LjM3NCwxMzMuMmEyMC4yMTQsMjAuMjE0LDAsMSwwLTIwLjIxNC0yMC4yMTRBMjAuMjM2LDIwLjIzNiwwLDAsMCwxMjguMzc0LDEzMy4yWm0wLTI4LjQyN2E4LjIxNCw4LjIxNCwwLDEsMS04LjIxNCw4LjIxM0E4LjIyMyw4LjIyMywwLDAsMSwxMjguMzc0LDEwNC43NjhaIi8+CiAgICAgICAgPHBhdGggZD0iTTM0OC43ODcsMzA4LjQ0YTIyLjA4NywyMi4wODcsMCwwLDAsMCwyMS42NjJsLTguNDc5LDguNDc5YTYsNiwwLDEsMCw4LjQ4NCw4LjQ4NWw4LjQ3OS04LjQ4YTIyLjA5LDIyLjA5LDAsMCwwLDIxLjY2MiwwbDguNDc4LDguNDc5YTYsNiwwLDAsMCw4LjQ4Ni04LjQ4NWwtOC40ODctOC40ODhhMjIuMjExLDIyLjIxMSwwLDAsMCwwLTIxLjY0NGw4LjQ4Ny04LjQ4OGE2LDYsMCwwLDAtOC40ODYtOC40ODVsLTguNDc4LDguNDc5YTIyLjA5MiwyMi4wOTIsMCwwLDAtMjEuNjYxLDBsLTguNDgtOC40NzlhNiw2LDAsMSwwLTguNDg0LDguNDg1Wm0xOS4zMTYuNjc4YTEwLjE1NiwxMC4xNTYsMCwxLDEtNy4xNzksMi45NzRBMTAuMDgzLDEwLjA4MywwLDAsMSwzNjguMSwzMDkuMTE4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMzguNzg3LDMwOC40NGEyMi4wODcsMjIuMDg3LDAsMCwwLDAsMjEuNjYybC04LjQ3OSw4LjQ3OWE2LDYsMCwxLDAsOC40ODQsOC40ODVsOC40NzktOC40OGEyMi4wOSwyMi4wOSwwLDAsMCwyMS42NjIsMGw4LjQ3OCw4LjQ3OWE2LDYsMCwwLDAsOC40ODYtOC40ODVsLTguNDg3LTguNDg4YTIyLjIxMSwyMi4yMTEsMCwwLDAsMC0yMS42NDRsOC40ODctOC40ODhhNiw2LDAsMCwwLTguNDg2LTguNDg1bC04LjQ3OCw4LjQ3OWEyMi4wOTIsMjIuMDkyLDAsMCwwLTIxLjY2MSwwbC04LjQ4LTguNDc5YTYsNiwwLDEsMC04LjQ4NCw4LjQ4NVptMTkuMzE2LjY3OGExMC4xNTYsMTAuMTU2LDAsMSwxLTcuMTc5LDIuOTc0QTEwLjA4MywxMC4wODMsMCwwLDEsMjU4LjEsMzA5LjExOFoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4Ljc4NywzMDguNDRhMjIuMDg3LDIyLjA4NywwLDAsMCwwLDIxLjY2MmwtOC40NzksOC40NzlhNiw2LDAsMSwwLDguNDg0LDguNDg1bDguNDc5LTguNDhhMjIuMDksMjIuMDksMCwwLDAsMjEuNjYyLDBsOC40NzgsOC40NzlhNiw2LDAsMCwwLDguNDg2LTguNDg1bC04LjQ4Ny04LjQ4OGEyMi4yMTEsMjIuMjExLDAsMCwwLDAtMjEuNjQ0bDguNDg3LTguNDg4YTYsNiwwLDAsMC04LjQ4Ni04LjQ4NWwtOC40NzgsOC40NzlhMjIuMDkyLDIyLjA5MiwwLDAsMC0yMS42NjEsMGwtOC40OC04LjQ3OWE2LDYsMCwxLDAtOC40ODQsOC40ODVabTE5LjMxNi42NzhhMTAuMTU2LDEwLjE1NiwwLDEsMS03LjE3OSwyLjk3NEExMC4wODMsMTAuMDgzLDAsMCwxLDE0OC4xLDMwOS4xMThaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=","Locker Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDYwIDYwIiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMjMgNGgtMTVjLTIuMjA5MTM5IDAtNCAxLjc5MDg2MS00IDR2MzRjMCAyLjIwOTEzOSAxLjc5MDg2MSA0IDQgNGg2Yy41NTIyODQ3IDAgMS0uNDQ3NzE1MyAxLTFzLS40NDc3MTUzLTEtMS0xaC02Yy0xLjEwNDU2OTUgMC0yLS44OTU0MzA1LTItMnYtMzRjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYxMi4wNWMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyLjA1YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDEyaDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDE2aDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxIDE5YzAtLjU1MjI4NDctLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDFoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im05IDM1Yy0uNTUyMjg0NzUgMC0xIC40NDc3MTUzLTEgMXY1YzAgLjU1MjI4NDcuNDQ3NzE1MjUgMSAxIDFoM2MuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtMnYtNGMwLS41NTIyODQ3LS40NDc3MTUyNS0xLTEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMGgtMTVjLTIuOTEyMjE0Mi4wMDE4MDY5MS01LjU5MzQwMDggMS41ODYwMDUxOC03IDQuMTM2LTEuNDA2NTk5Mi0yLjU0OTk5NDgyLTQuMDg3Nzg1OC00LjEzNDE5MzA5LTctNC4xMzZoLTE1Yy00LjQxNjIyMTkyLjAwNDk1OTg4LTcuOTk1MDQwMTIgMy41ODM3NzgwOC04IDh2MzRjLjAwNDk1OTg4IDQuNDE2MjIxOSAzLjU4Mzc3ODA4IDcuOTk1MDQwMSA4IDhoNmMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtNmMtMy4zMTIzMzc1Ny0uMDAzMzA3NC01Ljk5NjY5MjYyLTIuNjg3NjYyNC02LTZ2LTM0Yy4wMDMzMDczOC0zLjMxMjMzNzU3IDIuNjg3NjYyNDMtNS45OTY2OTI2MiA2LTZoMTVjMy4zMTIzMzc2LjAwMzMwNzM4IDUuOTk2NjkyNiAyLjY4NzY2MjQzIDYgNnYxMmMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyYy4wMDMzMDc0LTMuMzEyMzM3NTcgMi42ODc2NjI0LTUuOTk2NjkyNjIgNi02aDE1YzMuMzEyMzM3Ni4wMDMzMDczOCA1Ljk5NjY5MjYgMi42ODc2NjI0MyA2IDZ2MzRjLS4wMDMzMDc0IDMuMzEyMzM3Ni0yLjY4NzY2MjQgNS45OTY2OTI2LTYgNmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMWg2YzQuNDE2MjIxOS0uMDA0OTU5OSA3Ljk5NTA0MDEtMy41ODM3NzgxIDgtOHYtMzRjLS4wMDQ5NTk5LTQuNDE2MjIxOTItMy41ODM3NzgxLTcuOTk1MDQwMTItOC04eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NiA0Nmg2YzIuMjA5MTM5IDAgNC0xLjc5MDg2MSA0LTR2LTM0YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTRoLTE1Yy0yLjIwOTEzOSAwLTQgMS43OTA4NjEtNCA0djEyLjA1YzAgLjU1MjI4NDcuNDQ3NzE1MyAxIDEgMXMxLS40NDc3MTUzIDEtMXYtMTIuMDVjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYzNGMwIDEuMTA0NTY5NS0uODk1NDMwNSAyLTIgMmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTJoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTZoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMjBoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDkgMjd2M2MwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTNjMC0uNTUyMjg0Ny0uNDQ3NzE1My0xLTEtMXMtMSAuNDQ3NzE1My0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3IDIzYy0zLjg2NDE2NTcuMDA0NDA4Ni02Ljk5NTU5MTQgMy4xMzU4MzQzLTcgN3Y2Yy0xLjY1Njg1NDIgMC0zIDEuMzQzMTQ1OC0zIDN2MThjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzaDIwYzEuNjU2ODU0MiAwIDMtMS4zNDMxNDU4IDMtM3YtMThjMC0xLjY1Njg1NDItMS4zNDMxNDU4LTMtMy0zdi02Yy0uMDA0NDA4Ni0zLjg2NDE2NTctMy4xMzU4MzQzLTYuOTk1NTkxNC03LTd6bTE0IDE2djE4YzAgLjU1MjI4NDctLjQ0NzcxNTMgMS0xIDFoLTIwYy0uNTUyMjg0NyAwLTEtLjQ0NzcxNTMtMS0xdi0xOGMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoMjBjLjU1MjI4NDcgMCAxIC40NDc3MTUzIDEgMXptLTctM2gtOHYtNmMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoNmMuNTUyMjg0NyAwIDEgLjQ0NzcxNTMgMSAxem00LTZ2NmgtMnYtNmMwLTEuNjU2ODU0Mi0xLjM0MzE0NTgtMy0zLTNoLTZjLTEuNjU2ODU0MiAwLTMgMS4zNDMxNDU4LTMgM3Y2aC0ydi02Yy4wMDMzMDYxLTIuNzYwMDUzMiAyLjIzOTk0NjgtNC45OTY2OTM5IDUtNWg2YzIuNzYwMDUzMi4wMDMzMDYxIDQuOTk2NjkzOSAyLjIzOTk0NjggNSA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMS4yMTMgNDEuMTQ0Yy0xLjUwNDE3Mi0uMzY5MzcyNy0zLjA5NDY0MjYtLjAyNTYwNjgtNC4zMTIuOTMyLTEuMjE3ODgzNC45NjE4MTM0LTEuOTIwMTI3NSAyLjQzNDYwODktMS45MDA3NDAzIDMuOTg2MzY1Ny4wMTkzODcxIDEuNTUxNzU2OC43NTgyMDc2IDMuMDA2NTQ4MSAxLjk5OTc0MDMgMy45Mzc2MzQzdjNjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzczMtMS4zNDMxNDU4IDMtM3YtM2MxLjU0NDUxMDctMS4xNTY5NTQ0IDIuMjg1MzQ5Mi0zLjA5OTQ1NTcgMS45MDM1MTkxLTQuOTkxMDg1Mi0uMzgxODMwMS0xLjg5MTYyOTYtMS44MTgxNTg3LTMuMzk0NjY0My0zLjY5MDUxOTEtMy44NjE5MTQ4em0uNTg3IDcuMjU2Yy0uNDk3MTQ3OS4zNTc2MDY2LS43OTQyNDAxLjkzMDYyMzItLjggMS41NDN2My4wNTdjMCAuNTUyMjg0Ny0uNDQ3NzE1MyAxLTEgMXMtMS0uNDQ3NzE1My0xLTF2LTMuMDgxYy0uMDA1NzA4Mi0uNjAyMDUyMi0uMjk5NDI1OS0xLjE2NDk0OTItLjc5LTEuNTE0LTEuMDM1MDU1My0uNzcxNzg3Mi0xLjQ2MDIxNjQtMi4xMTkyNTA3LTEuMDU1NTM2NC0zLjM0NTMxMzFzMS41NDg0MjEtMi4wNTU2ODY3IDIuODM5NTM2NC0yLjA1OTY4NjljLjI1NTAzMDkuMDAwNTA4NS41MDkxMTQ0LjAzMTA1MjIuNzU3LjA5MSAxLjA1NTg2OC4yNjMyNDYxIDEuODgyOTA3IDEuMDgzMzc3MiAyLjE1NSAyLjEzNy4zMTMzNzQ2IDEuMTgzOTY5NS0uMTI0NDE2NSAyLjQzOTU1MTItMS4xMDYgMy4xNzJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nursery:Axe,Office:mxe,Outdoors:Oxe,Playroom:Exe,Pool:fxe,"Rear Wall":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTAzLjQ2Nyw4LjUzM0gzODRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM3YxMTkuNDY3VjI1NnY1MS4yaC02OS43MzVjMC45NDgtMi42NzEsMS40NjgtNS41NDIsMS40NjgtOC41MzMKCQkJCWMwLTE0LjExNC0xMS40ODYtMjUuNi0yNS42LTI1LjZoLTE3LjA2N1YyNTZoODUuMzMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxMTAuOTMzYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzMKCQkJCUgxNjIuMTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDg1LjMzM3YxNy4wNjdIMjMwLjQKCQkJCWMtMTQuMTE0LDAtMjUuNiwxMS40ODYtMjUuNiwyNS42YzAsMi45OTEsMC41MjEsNS44NjIsMS40NjgsOC41MzNoLTY5LjczNVYyNTZWMTM2LjUzM1YxNy4wNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzMwoJCQkJSDguNTMzQzMuODIzLDguNTMzLDAsMTIuMzQ4LDAsMTcuMDY3djExOS40NjdWMjU2djExOS40Njd2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDEyOGgyNTZoMTE5LjQ2NwoJCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YzNzUuNDY3VjI1NlYxMzYuNTMzVjE3LjA2N0M1MTIsMTIuMzQ4LDUwOC4xNzcsOC41MzMsNTAzLjQ2Nyw4LjUzM3ogTTE3MC42NjcsMTUzLjZoMTcwLjY2NwoJCQkJdjUxLjJIMTcwLjY2N1YxNTMuNnogTTM0MS4zMzMsMTE5LjQ2N3YxNy4wNjdIMTcwLjY2N3YtMTcuMDY3SDM0MS4zMzN6IE0xNzAuNjY3LDIyMS44NjdoMTcwLjY2N3YxNy4wNjdIMTcwLjY2N1YyMjEuODY3egoJCQkJIE0zNzUuNDY3LDQ4Ni40SDI2NC41MzN2LTkzLjg2N2g1MS4yaDU5LjczM1Y0ODYuNHogTTMwNy4yLDM3NS40NjdIMjA0LjhWMzU4LjRoMTAyLjRWMzc1LjQ2N3ogTTQ5NC45MzMsMjQ3LjQ2N2gtMTcuMDY3VjE3OS4yCgkJCQljMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtMjUuNmgtMjUuNmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjY4LjI2N2gtMTcuMDY3di0xMDIuNGgxMDIuNFYyNDcuNDY3egoJCQkJIE00MjYuNjY3LDI0Ny40Njd2LTU5LjczM2g4LjUzM3Y1OS43MzNINDI2LjY2N3ogTTQ1Mi4yNjcsMTg3LjczM2g4LjUzM3Y1OS43MzNoLTguNTMzVjE4Ny43MzN6IE0zOTIuNTMzLDMxNS43MzN2LTUxLjJoMjUuNgoJCQkJaDI1LjZoMjUuNmgyNS42djEwMi40aC0xMDIuNFYzMTUuNzMzeiBNMzkyLjUzMywyNS42aDEwMi40VjEyOGgtMTAyLjRWMjUuNnogTTIyMS44NjcsMjk4LjY2N2MwLTQuNzEsMy44MzEtOC41MzMsOC41MzMtOC41MzMKCQkJCWg1MS4yYzQuNzAyLDAsOC41MzMsMy44MjMsOC41MzMsOC41MzNzLTMuODMxLDguNTMzLTguNTMzLDguNTMzaC01MS4yQzIyNS42OTgsMzA3LjIsMjIxLjg2NywzMDMuMzc3LDIyMS44NjcsMjk4LjY2N3oKCQkJCSBNMjMwLjQsMzI0LjI2N2g1MS4yaDkzLjg2N3Y1MS4yaC01MS4yVjM1OC40YzAtOS40MTItNy42NTQtMTcuMDY3LTE3LjA2Ny0xNy4wNjdIMjA0LjhjLTkuNDEyLDAtMTcuMDY3LDcuNjU0LTE3LjA2NywxNy4wNjcKCQkJCXYxNy4wNjdoLTUxLjJ2LTUxLjJIMjMwLjR6IE01MS4yLDMzMi44aDM0LjEzM3Y4LjUzM0g1MS4yVjMzMi44eiBNODUuMzMzLDMxNS43MzNINTEuMlYzMDcuMmgzNC4xMzNWMzE1LjczM3ogTTUxLjIsMzU4LjQKCQkJCWgzNC4xMzN2OC41MzNINTEuMlYzNTguNHogTTEwMi40LDM0OS44Njd2LTI1LjZ2LTI1LjZjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzCgkJCQl2MjUuNnYyNS42djE3LjA2N0gxNy4wNjd2LTEwMi40aDEwMi40djUxLjJ2NTEuMkgxMDIuNFYzNDkuODY3eiBNNTkuNzMzLDExMC45MzNINzYuOFYxMjhINTkuNzMzVjExMC45MzN6IE01MS4yLDE0NS4wNjdoMzQuMTMzCgkJCQloMzQuMTMzdjEwMi40aC0xMDIuNHYtMTAyLjRINTEuMnogTTE3LjA2NywyNS42aDEwMi40VjEyOGgtMjUuNnYtMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzNoLTguNTMzSDUxLjJoLTguNTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1YxMjgKCQkJCWgtMjUuNlYyNS42eiBNMTcuMDY3LDM4NGgyNS42aDUxLjJoMjUuNnYxMDIuNGgtMTAyLjRWMzg0eiBNMTM2LjUzMywzOTIuNTMzaDU5LjczM2g1MS4yVjQ4Ni40SDEzNi41MzNWMzkyLjUzM3ogTTQ5NC45MzMsNDg2LjQKCQkJCWgtMTcuMDY3di02OC4yNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDg2LjRoLTguNTMzdi02OC4yNjcKCQkJCWMwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjgxNC04LjUzMyw4LjUzM1Y0ODYuNGgtOC41MzN2LTY4LjI2N2MwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzCgkJCQlzLTguNTMzLDMuODE0LTguNTMzLDguNTMzVjQ4Ni40aC0xNy4wNjdWMzg0aDEwMi40VjQ4Ni40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjEuODY3LDQwOS42SDIwNC44Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNoOC41MzN2OC41MzMKCQkJCWMwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM3YtMTcuMDY3QzIzMC40LDQxMy40MTQsMjI2LjU3Nyw0MDkuNiwyMjEuODY3LDQwOS42eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDcuMiw0MDkuNmgtMTcuMDY3Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDM1LjJjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJdi04LjUzM2g4LjUzM2M0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNTMzExLjkxLDQwOS42LDMwNy4yLDQwOS42eiIvPgogICAgPC9nPgo8L3N2Zz4K","Second Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5OS42NjgsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTVjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzMwNi45NTUsMjM0LjgzNSwzMDMuNjkzLDIzMS41NzIsMjk5LjY2OCwyMzEuNTcyeiBNMjgxLjc1OCwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQxMi41NzIsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM3OS0xMC4zOGgtNTkuMzU2Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxOS44NTksMjM0LjgzNSw0MTYuNTk3LDIzMS41NzIsNDEyLjU3MiwyMzEuNTcyeiBNMzk0LjY2MSwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgZD0iTTE4Mi44MTMsNDEzLjgzM2gtMC41Mjh2LTYwLjA0NWMwLTUuNTY2LTQuNTI5LTEwLjA5NS0xMC4wOTUtMTAuMDk1aC01My44ODZjLTUuNTY2LDAtMTAuMDk1LDQuNTI5LTEwLjA5NSwxMC4wOTV2NjAuMDQ1CgkJCWgtMC41MjhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNSwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g3LjgxNGg1OS41MDRoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkwLjEsNDE3LjA5NSwxODYuODM4LDQxMy44MzMsMTgyLjgxMyw0MTMuODMzeiBNMTY3LjcxMiw0MTMuODMzaC00NC45MzF2LTU1LjU2N2g0NC45MzFWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNNDA0LjMxNCw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTYsNC41MjktMTAuMDk2LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0SDM5Ni41aDcuODE0YzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxMS42MDEsNDE3LjA5NSw0MDguMzM5LDQxMy44MzMsNDA0LjMxNCw0MTMuODMzeiBNMzg5LjIxMyw0MTMuODMzaC00NC45MzJ2LTU1LjU2N2g0NC45MzJWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNMjc2LjU0NSw0MDUuMDg5Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3djEyLjYzYzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODcKCQkJYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODd2LTEyLjYzQzI4My44MzIsNDA4LjM1MiwyODAuNTcsNDA1LjA4OSwyNzYuNTQ1LDQwNS4wODl6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Shed:xxe,"Sleeping Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDU2LDIyNGMtMTQuMTMzLDAtMjQsNi4zMDEtMjQsMTUuMzJ2MjcuNTA1QzQxOS4zMzMsMjQxLjc5MywzOTkuODUsMjI0LDM3NiwyMjRIMTUyYy00LjQxNy0wLjAwMS03Ljk5OSwzLjU3OS04LDcuOTk2CgkJCWMwLDAuMDAxLDAsMC4wMDMsMCwwLjAwNHY0OC4wNjdjMC4wNDUtMTMuMDUyLTUuMjAxLTI2LjA3NS0xNS41ODYtMzUuNTgzYy0xOS41NTItMTcuOTAyLTQ5LjkxNS0xNi41NjQtNjcuODE2LDIuOTg5CgkJCWMtMTYuNzY0LDE4LjMwOS0xNi44MDEsNDYuMzgtMC4wODYsNjQuNzM0Yy00LjYxMiwwLjUwOC04Ljk2OCwyLjM4LTEyLjUxMiw1LjM3NVYxMTUuMTk5QzQ4LDEwNC40MzQsMzcuNDYxLDk2LDI0LDk2CgkJCXMtMjQsOC40MzQtMjQsMTkuMTk5djM0NS42MDJDMCw0NzEuNTY2LDEwLjUzOSw0ODAsMjQsNDgwczI0LTguNDM0LDI0LTE5LjE5OVY0MDhoMzg0djU2LjY4YzAsOS4wMTksOS44NjcsMTUuMzIsMjQsMTUuMzIKCQkJczI0LTYuMzAxLDI0LTE1LjMyVjIzOS4zMkM0ODAsMjMwLjMwMSw0NzAuMTMzLDIyNCw0NTYsMjI0eiBNMzIsNDYwLjgwMWMtMC4wODYsMC42NTYtMi43NzMsMy4xOTktOCwzLjE5OQoJCQljLTUuMjUsMC03LjkyMi0yLjU0My04LTMuMTk5VjExNS4xOTljMC4wNzgtMC42NTYsMi43NS0zLjE5OSw4LTMuMTk5YzUuMjI3LDAsNy45MTQsMi41NDMsOCwzLjE5OVY0NjAuODAxeiBNMTYwLDI0MGgyMTYKCQkJYzMwLjE3MiwwLDUzLjE3Miw0NC45MjYsNTUuNzU4LDg4SDE2MFYyNDB6IE0xNDQsMjgwLjA4M3YzOC41NmMtMy40NTItMy4zNTMtNy44NDgtNS41NjYtMTIuNTk3LTYuMzQyCgkJCUMxMzkuNzkzLDMwMy4xMzcsMTQzLjk1NiwyOTEuNiwxNDQsMjgwLjA4M3ogTTk2LDI0OGMxNy42NzMsMCwzMiwxNC4zMjcsMzIsMzJjMCwxNy42NzMtMTQuMzI3LDMyLTMyLDMycy0zMi0xNC4zMjctMzItMzIKCQkJQzY0LjAxOSwyNjIuMzM1LDc4LjMzNSwyNDguMDE5LDk2LDI0OHogTTQzMiwzOTJINDh2LTQ4LjAyM2M0LjE2My0wLjMyOCw3LjM3NC0zLjgwMSw3LjM3NS03Ljk3NwoJCQljLTAuMDc3LTQuMzMxLDMuMzY0LTcuOTA5LDcuNjk1LThoNjQuNjFjNC4zMzEsMC4wOTEsNy43NzIsMy42NjksNy42OTUsOGMtMC4wMDEsNC40MTcsMy41NzksNy45OTksNy45OTYsOAoJCQljMC4wMDEsMCwwLjAwMywwLDAuMDA0LDBINDMyVjM5MnogTTQ2NCw0NjIuNTk0Yy01LjE2OSwxLjg3NS0xMC44MzEsMS44NzUtMTYsMFYyNDEuNDA2YzUuMTY5LTEuODc1LDEwLjgzMS0xLjg3NSwxNiwwVjQ2Mi41OTR6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTEzNy4wNzgsMTc2bDI5LjA3LTM0Ljg3OWMxLjk4Ni0yLjM4NiwyLjQxMy01LjcwNSwxLjA5NC04LjUxNmMtMS4zMTYtMi44MS00LjEzOS00LjYwNS03LjI0Mi00LjYwNWgtNDh2MTZoMzAuOTIyCgkJCWwtMjkuMDcsMzQuODc5Yy0yLjgyNywzLjM5OC0yLjM2NCw4LjQ0NCwxLjAzNCwxMS4yN2MxLjQzNywxLjE5NSwzLjI0NiwxLjg1LDUuMTE0LDEuODUxaDQ4di0xNkgxMzcuMDc4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjQuMzU5LDEzNmw0NS45NTMtNTkuMDljMS44NzctMi40MTEsMi4yMTctNS42ODEsMC44NzUtOC40MjZjLTEuMzQ0LTIuNzQzLTQuMTMyLTQuNDgzLTcuMTg4LTQuNDg0aC02NHYxNmg0Ny42NDEKCQkJbC00NS45NTMsNTkuMDljLTIuNzE0LDMuNDg0LTIuMDg5LDguNTA5LDEuMzk2LDExLjIyM2MxLjQwNSwxLjA5NCwzLjEzNiwxLjY4OCw0LjkxNywxLjY4OGg2NHYtMTZIMjI0LjM1OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzI4LDk2bDYyLjM5OC04My4xOTljMi42NTItMy41MzMsMS45MzktOC41NDYtMS41OTQtMTEuMTk5QzM4Ny40MTksMC41NjIsMzg1LjczMywwLDM4NCwwaC03MnYxNmg1NmwtNjIuMzk4LDgzLjE5OQoJCQljLTEuODE4LDIuNDI0LTIuMTEyLDUuNjY4LTAuNzU4LDguMzc5QzMwNi4yLDExMC4yODgsMzA4Ljk3LDExMiwzMTIsMTEyaDgwVjk2SDMyOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Stairway:_xe,Stairwell:Sxe,Storeroom:kxe,"Summer House":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuODMyLDIyNS4yNjNoLTQzLjAzOWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY2MC4xMzRjMCw0LjE0MiwzLjM1Nyw3LjUsNy41LDcuNWg0My4wMzljNC4xNDIsMCw3LjUtMy4zNTgsNy41LTcuNQoJCQl2LTYwLjEzNEMxODEuMzMyLDIyOC42MjIsMTc3Ljk3NCwyMjUuMjYzLDE3My44MzIsMjI1LjI2M3ogTTE2Ni4zMzEsMjg1LjM5N2gtMjguMDM4di00NS4xMzNoMjguMDM4VjI4NS4zOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OS4xMjcsMjAxLjE5M2MzLjMxNCwyLjI3OCw4LjA5MSwxLjQ3MSwxMC40My0xLjkzMmMwLDAsMjMuMDA5LTMzLjQ2OSwyMy4wMjktMzMuNDk4CgkJCWMyLjMxNS0zLjM2OCwxLjQyOC04LjEyMS0xLjkzMi0xMC40MzFMMjcxLjc2Myw0Ljg2MWMtOS40MjktNi40OC0yMi4wOTctNi40ODEtMzEuNTI2LDBjMCwwLTEzOS43NjIsOTYuMDc3LTE0MC4yNzMsOTYuNDI4CgkJCWMtNy45MTEsNS40MzgsMC40MjksMTcuOTEsOC40OTcsMTIuMzYzbDE0MC4yNzQtOTYuNDI5YzQuMzQ3LTIuOTg3LDEwLjE4Ny0yLjk4NywxNC41MzEtMC4wMDFsMjEyLjcwOSwxNDYuMjI0bC0xNC41MzEsMjEuMTM3CgkJCWMwLDAtMjAxLjE0My0xMzguMjcyLTIwMS4xOTUtMTM4LjMwOGMtMi40OTUtMS43MTUtNS45OTktMS43MTgtOC40OTgtMC4wMDFMNTAuNTU3LDE4NC41ODNsLTE0LjUzLTIxLjEzNwoJCQljMCwwLDQ3LjExNy0zMi4zOSw0Ny4yODktMzIuNTA5YzcuODA3LTUuMzY2LTAuNDE2LTE3LjkxNy04LjQ5OC0xMi4zNjJjMCwwLTUzLjMwMSwzNi42NC01My40NzEsMzYuNzU3CgkJCWMtMy4zNzQsMi4zMi00LjI0MSw3LjA3MS0xLjkzMywxMC40MzFsMjEuNzA5LDMxLjU3OXYzMDcuMTU2YzAsNC4xNDIsMy4zNTgsNy41LDcuNSw3LjVIMjU2YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjVWMzk1Ljk3MQoJCQlINDAyLjY0djEwOC41MjhjMCw0LjE0MiwzLjM1OCw3LjUsNy41MDEsNy41aDMwLjQ4OGM0LjE0MiwwLDcuNS0zLjM1OCw3LjUtNy41VjM5NS45NzFoMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4NwoJCQljMC00LjE0My0zLjM1OC03LjUtNy41LTcuNWgtMjMuNzY5di01Ny4yNTloMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4OGMwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC0yMy43Njl2LTU0LjEwMwoJCQlMNDU5LjEyNywyMDEuMTkzeiBNNDE3LjY0MSwxODYuODc2aDE1LjQ4N3Y2MC44NThoLTE1LjQ4N1YxODYuODc2eiBNMjU2LDYxLjU1NmwzOS4wNzUsMjYuODYxaC03OC4xNDlMMjU2LDYxLjU1NnoKCQkJIE01Ni4xMjUsMjcwLjMzMmgzOC4zOTl2NTMuMDU1YzAsNC4xNDEsMy4zNTgsNy41LDcuNSw3LjVIMjAyLjZjNC4xNDIsMCw3LjUwMS0zLjM1OCw3LjUwMS03LjV2LTUzLjA1NWgzOC4zOTh2NjguNDU2SDU2LjEyNQoJCQlWMjcwLjMzMnogTTEwOS41MjUsMzE1Ljg4NlYyMDkuNzc3aDg1LjU3NXYxMDYuMTA5SDEwOS41MjV6IE05NC41MjQsNDk2Ljk5OEg1Ni4xMjV2LTU5Ljc1NGgzOC4zOTlWNDk2Ljk5OHogTTE2Ni4zMzEsNDk2Ljk5NwoJCQloLTI4LjAzOHYtODUuNzgzaDI4LjAzOFY0OTYuOTk3eiBNMTk1LjA5OSw0OTYuOTk3aC0xMy43Njd2LTkzLjI4M2MwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC00My4wMzkKCQkJYy00LjE0MiwwLTcuNTAxLDMuMzU4LTcuNTAxLDcuNXY5My4yODNoLTEzLjc2OFYzODAuNzI3aDg1LjU3NVY0OTYuOTk3eiBNMjQ4LjQ5OSw0OTYuOTk4SDIxMC4xdi01OS43NTRoMzguMzk4VjQ5Ni45OTh6CgkJCSBNMjQ4LjUsNDIyLjI0NGgtMzguMzk5di00OS4wMThjLTAuMDAxLTQuMTQyLTMuMzU5LTcuNS03LjUwMi03LjVIMTAyLjAyNGMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNTAxdjQ5LjAxOEg1Ni4xMjV2LTY4LjQ1NgoJCQlIMjQ4LjVWNDIyLjI0NHogTTI0OC41LDI1NS4yMjVjMCwwLjAwMywwLDAuMDA2LDAsMC4wMXYwLjA5NmgtMzguMzk5di01My4wNTVjMC00LjE0Mi0zLjM1OC03LjUtNy41LTcuNUgxMDIuMDI0CgkJCWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY1My4wNTVINTYuMTI1di01Ni4zNzNsMTcuNjYzLTEyLjE0M2MwLjI5NywwLjAzNiwwLjU5NywwLjA2LDAuOTA0LDAuMDZIMjQ4LjVWMjU1LjIyNXoKCQkJIE05NS41MjMsMTcxLjg3NWw5OS41ODEtNjguNDU2aDEyMS43OTNsOTkuNTgxLDY4LjQ1NmgtNi4zMzZIOTUuNTIzeiBNNDAyLjY0LDE4Ni44NzZ2NjAuODU4SDI2My41MDF2LTYwLjg1OEg0MDIuNjR6CgkJCSBNMjYzLjUwMSwyOTMuMjIzaDE1LjQ4NnY1Ny4yNTloLTE1LjQ4NlYyOTMuMjIzeiBNNDMzLjEyOCw0OTYuOTk4aC0xNS40ODdWMzk1Ljk3MWgxNS40ODdWNDk2Ljk5OHogTTQ2NC4zOTcsMzY1LjQ4NHYxNS40ODYKCQkJSDI2My41MDF2LTE1LjQ4Nkg0NjQuMzk3eiBNMjkzLjk4OCwzNTAuNDgydi01Ny4yNTloMTUuNDg3djU3LjI1OUgyOTMuOTg4eiBNMzI0LjQ3NiwzNTAuNDgydi01Ny4yNTloMTYuMzM3djU3LjI1OUgzMjQuNDc2egoJCQkgTTM1NS44MTQsMzUwLjQ4MnYtNTcuMjU5aDE1LjQ4N3Y1Ny4yNTlIMzU1LjgxNHogTTM4Ni4zMDIsMzUwLjQ4MnYtNTcuMjU5aDE2LjMzN3Y1Ny4yNTlIMzg2LjMwMnogTTQxNy42NDEsMzUwLjQ4MnYtNTcuMjU5CgkJCWgxNS40ODd2NTcuMjU5SDQxNy42NDF6IE00NjQuMzk3LDI2Mi43MzV2MTUuNDg3SDI2My41MDF2LTE1LjQ4N0g0NjQuMzk3eiIvPgogICAgPC9nPgo8L3N2Zz4K","Swimming Pool":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4Ny43MzMgMTg3LjczMyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xODcuNTk5LDE1MS40NThMMTUzLjQ2NSwzMy4xODZjLTAuNDIyLTEuNDYxLTEuNzU4LTIuNDY2LTMuMjc5LTIuNDY2SDM3LjU0N2MtMS41MjEsMC0yLjg1NywxLjAwNS0zLjI3OSwyLjQ2NgoJCQlMMC4xMzUsMTUxLjQ1OEMwLjA0NCwxNTEuNzY1LDAsMTUyLjA4NSwwLDE1Mi40MDV2MjUuMDg4YzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNIMTg0LjMyCgkJCWMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzdi0yNS4wODhDMTg3LjczMywxNTIuMDg1LDE4Ny42ODcsMTUxLjc2NSwxODcuNTk5LDE1MS40NTh6IE0xODAuOTA3LDE3NC4wOEg2LjgyN3YtMjEuMTkyCgkJCUw0MC4xMTUsMzcuNTQ3SDE0Ny42MmwzMy4yODcsMTE1LjM0MlYxNzQuMDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTc4LjUwNyw2LjgyN2MtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3Y1MS4yYzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNzMy40MTMtMS41MjksMy40MTMtMy40MTN2LTUxLjIKCQkJQzgxLjkyLDguMzU2LDgwLjM5MSw2LjgyNyw3OC41MDcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsNi44MjdjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTN2NTEuMmMwLDEuODg0LDEuNTI5LDMuNDEzLDMuNDEzLDMuNDEzYzEuODg0LDAsMy40MTMtMS41MjksMy40MTMtMy40MTMKCQkJdi01MS4yQzExMi42NCw4LjM1NiwxMTEuMTExLDYuODI3LDEwOS4yMjcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsMTcuMDY3aC0zMC43MmMtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3MxLjUyOSwzLjQxMywzLjQxMywzLjQxM2gzMC43MmMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzCgkJCVMxMTEuMTExLDE3LjA2NywxMDkuMjI3LDE3LjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTA5LjIyNywzMC43MmgtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSwzMC43MiwxMDkuMjI3LDMwLjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDkuMjI3LDQ0LjM3M2gtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSw0NC4zNzMsMTA5LjIyNyw0NC4zNzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE2My43ODksMTQ2LjE3OWwtMTcuNTE2LTk4Ljk4N2MtMC4yODgtMS42My0xLjcwNS0yLjgxOC0zLjM2LTIuODE4SDQ4LjMyOGMtMS42MTMsMC0zLjAwNSwxLjEyNi0zLjM0LDIuNzAzCgkJCWwtMjEuMDE5LDk4Ljk4N2MtMC4yMTMsMS4wMDcsMC4wMzgsMi4wNTcsMC42ODYsMi44NTdjMC42NDksMC44LDEuNjIxLDEuMjY1LDIuNjUyLDEuMjY1aDEzMy4xMmMxLjAwOSwwLDEuOTY2LTAuNDQ3LDIuNjE2LTEuMjE5CgkJCUMxNjMuNjkxLDE0OC4xOTUsMTYzLjk2NSwxNDcuMTc0LDE2My43ODksMTQ2LjE3OXogTTMxLjUyLDE0My4zNkw1MS4wODksNTEuMmg4OC45NThsMTYuMzA5LDkyLjE2SDMxLjUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Terrace:Yxe,Toilet:vxe,Upstairs:bxe,Wardrobe:Qxe,Washroom:Uxe,Wc:$xe,Windscreen:Pxe,Workshop:Wxe,Workspace:Bxe},Rxe=[{_id:"hood",name:{en:"Hood",ru:"Вытяжка",de:"Abzugshaube",fr:"Capot",it:"Cappe",nl:"Hood",pl:"Okapy",pt:"Hood",es:"Campana","zh-cn":"抽油烟机"},icon:"Hoods.svg"},{_id:"alarm_system",name:{en:"Alarm System",ru:"Сигнализация",de:"Alarmanlage",fr:"Systèmes D'Alarme",it:"Sistemi Di Allarme",nl:"Alarm Systems",pl:"Systemy Alarmowe",pt:"Sistemas De Alarme",es:"Sistemas De Alarma","zh-cn":"报警系统"},icon:"Alarm Systems.svg"},{_id:"battery_status",name:{en:"Battery Status",ru:"Заряд батареи",de:"Batteriestatus",fr:"État De La Batterie",it:"Stato Della Batteria",nl:"Batterij Status",pl:"Stan Baterii",pt:"Estado Da Bateria",es:"Estado De La Batería","zh-cn":"电池状态"},icon:"Battery Status.svg"},{_id:"lighting",name:{en:"Lighting",ru:"Светильник",de:"Beleuchtung",fr:"Éclairages",it:"Illuminazione",nl:"Verlichting",pl:"Oprawy Oświetleniowe",pt:"Iluminações",es:"Iluminaciones","zh-cn":"照明"},icon:"Lightings.svg"},{_id:"shading",name:{en:"Shading",ru:"Затенение",de:"Beschattungen",fr:"Ombres",it:"Ombreggiatura",nl:"Shading",pl:"Zacienienie",pt:"Shading",es:"Sombreado","zh-cn":"底纹"},icon:"Shading.svg"},{_id:"irrigation",name:{en:"Irrigation",ru:"Орошение",de:"Bewässerung",fr:"Irrigation",it:"Irrigazione",nl:"Irrigatie",pl:"Nawadnianie",pt:"Irrigação",es:"Irrigación","zh-cn":"灌溉"},icon:"Irrigation.svg"},{_id:"iron",name:{en:"Iron",ru:"Утюг",de:"Bügeleisen",fr:"Le Fer",it:"Ferro",nl:"Ijzer",pl:"Żelazo",pt:"Ferro",es:"Hierro","zh-cn":"铁"},icon:"Iron.svg"},{_id:"computer",name:{en:"Computer",ru:"Компьютер",de:"Rechner",fr:"L'Ordinateur",it:"Computer",nl:"Computer",pl:"Komputer",pt:"Computador",es:"Ordenador","zh-cn":"电脑"},icon:"Computer.svg"},{_id:"ceiling_spotlight",name:{en:"Ceiling Spotlight",ru:"Потолочный прожектор",de:"Deckenspot",fr:"Plafond Spotlight",it:"Faretti A Soffitto",nl:"Plafond Spotlight",pl:"Reflektory Sufitowe",pt:"Tecto Foco",es:"Focos De Techo","zh-cn":"天花射灯"},icon:"Ceiling Spotlights.svg"},{_id:"printer",name:{en:"Printer",de:"Drucker",ru:"Принтер",pt:"Impressora",nl:"Printer",fr:"Imprimante",it:"Stampante",es:"Impresora",pl:"Drukarka","zh-cn":"打印机"},icon:"Printer.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"window",name:{en:"Window",ru:"Окно",de:"Fenster",fr:"La Fenêtre",it:"Finestra",nl:"Venster",pl:"Okno",pt:"Janela",es:"Ventana","zh-cn":"窗户"},icon:"Window.svg"},{_id:"garage_door",name:{en:"Garage Door",ru:"Гаражные Ворота",de:"Garagentor",fr:"Portes De Garage",it:"Garage Door",nl:"Garage Door",pl:"Bramy Garażowe",pt:"Portas De Garagem",es:"Las Puertas De Garaje","zh-cn":"车库门"},icon:"Garage Doors.svg"},{_id:"hairdryer",name:{en:"Hairdryer",ru:"Фен",de:"Haartrockner",fr:"Sèche-Cheveux",it:"Asciugacapelli",nl:"Haardroger",pl:"Suszarka Do Włosów",pt:"Secador De Cabelo",es:"Secador De Pelo","zh-cn":"电吹风"},icon:"Hairdryer.svg"},{_id:"hanging_lamp",name:{en:"Hanging Lamp",ru:"Подвесной светильник",de:"Hängelampe",fr:"Lampes Suspendues",it:"Lampade A Sospensione",nl:"Opknoping Lampen",pl:"Lampy Wiszące",pt:"Lâmpadas De Suspensão",es:"Lámparas Colgantes","zh-cn":"挂灯"},icon:"Hanging Lamps.svg"},{_id:"doorstep",name:{en:"Enterance",ru:"Входная дверь",de:"Haustür",fr:"Seuil De Porte",it:"Gradino Della Porta",nl:"Drempel",pl:"Próg",pt:"Porta",es:"Peldaño","zh-cn":"门阶"},icon:"Doorstep.svg"},{_id:"hot_water",name:{en:"Hot Water",ru:"Горячая вода",de:"Heißwasser",fr:"Eau Chaude",it:"Acqua Calda",nl:"Heet Water",pl:"Gorąca Woda",pt:"Água Quente",es:"Agua Caliente","zh-cn":"热水"},icon:"Hot Water.svg"},{_id:"heating",name:{en:"Heating",ru:"Отопление",de:"Heizung",fr:"Chauffe-Eau",it:"Riscaldatore",nl:"Verwarmer",pl:"Podgrzewacz",pt:"Aquecedor",es:"Calentador","zh-cn":"加热器"},icon:"Heater.svg"},{_id:"stove",name:{en:"Stove",ru:"Печь",de:"Herd",fr:"Le Fourneau",it:"Stufa",nl:"Fornuis",pl:"Kuchenka",pt:"Forno",es:"Cocina","zh-cn":"火炉"},icon:"Stove.svg"},{_id:"louvre",name:{en:"Louvre",ru:"Жалюзи",de:"Jalousie",fr:"Persienne",it:"Persiana Di Ventilazione",nl:"Louvre",pl:"Żaluzja",pt:"Trapeira",es:"Lumbrera","zh-cn":"卢浮宫"},icon:"Louvre.svg"},{_id:"coffee_maker",name:{en:"Coffee Maker",ru:"Кофеварка",de:"Kaffemaschine",fr:"Cafetière",it:"Macchine Da Caffè",nl:"Koffie Maker",pl:"Ekspresy Do Kawy",pt:"Cafeteira",es:"Cafetera","zh-cn":"咖啡壶"},icon:"Coffee Makers.svg"},{_id:"cold_water",name:{en:"Cold Water",ru:"Холодная вода",de:"Kaltwasser",fr:"Eau Froide",it:"Acqua Fredda",nl:"Koud Water",pl:"Zimna Woda",pt:"Água Fria",es:"Agua Fría","zh-cn":"冷水"},icon:"Cold Water.svg"},{_id:"climate",name:{en:"Climate",ru:"Климат",de:"Klima",fr:"Climat",it:"Clima",nl:"Klimaat",pl:"Klimat",pt:"Clima",es:"Clima","zh-cn":"气候"},icon:"Climate.svg"},{_id:"speaker",name:{en:"Speaker",ru:"Звуковая система",de:"Lautsprecher",fr:"Orateur",it:"Altoparlante",nl:"Spreker",pl:"Głośnik",pt:"Palestrante",es:"Altavoz","zh-cn":"扬声器"},icon:"Speaker.svg"},{_id:"led_strip",name:{en:"Led Strip",ru:"Светодиодная лента",de:"LED Leiste",fr:"Led Strip",it:"Led Strip",nl:"Loden Strip",pl:"Pasek Ledowy",pt:"Led Faixa",es:"Tira Llevada","zh-cn":"灯带"},icon:"Led Strip.svg"},{_id:"light",name:{en:"Light",ru:"Свет",de:"Licht",fr:"Lumière",it:"Leggero",nl:"Licht",pl:"Lekki",pt:"Luz",es:"Luz","zh-cn":"光"},icon:"Light.svg"},{_id:"fan",name:{en:"Fan",ru:"Вентилятор",de:"Lüfter",fr:"Ventilateur",it:"Fan",nl:"Ventilator",pl:"Wentylator",pt:"Ventilador",es:"Ventilador","zh-cn":"扇子"},icon:"Fan.svg"},{_id:"humidity",name:{en:"Humidity",ru:"Влажность",de:"Luftfeuchtigkeit",fr:"Humidité",it:"Umidità",nl:"Vochtigheid",pl:"Wilgotność",pt:"Umidade",es:"Humedad","zh-cn":"湿度"},icon:"Humidity.svg"},{_id:"ventilation",name:{en:"Ventilation",ru:"Вентиляция",de:"Lüftung",fr:"Ventilation",it:"Ventilazione",nl:"Ventilatie",pl:"Wentylacja",pt:"Ventilação",es:"Ventilación","zh-cn":"通风"},icon:"Ventilation.svg"},{_id:"chandelier",name:{en:"Chandelier",ru:"Люстра",de:"Kronleuchter",fr:"Lustre",it:"Lampadario",nl:"Kroonluchter",pl:"Żyrandol",pt:"Lustre",es:"Candelabro","zh-cn":"枝形吊灯"},icon:"Chandelier.svg"},{_id:"awning",name:{en:"Awning",ru:"Маркиза",de:"Markise",fr:"Auvents",it:"Tende",nl:"Luifels",pl:"Okrycia",pt:"Toldos",es:"Toldos","zh-cn":"遮阳篷"},icon:"Awnings.svg"},{_id:"music",name:{en:"Music",ru:"Музыка",de:"Musik",fr:"Musique",it:"Musica",nl:"Muziek",pl:"Muzyka",pt:"Música",es:"Música","zh-cn":"音乐"},icon:"Music.svg"},{_id:"people",name:{en:"People",ru:"Люди",de:"Personen",fr:"Gens",it:"Persone",nl:"Mensen",pl:"Ludzie",pt:"Pessoas",es:"Personas","zh-cn":"人们"},icon:"People.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"pump",name:{en:"Pump",ru:"Насос",de:"Pumpe",fr:"Pompe",it:"Pompa",nl:"Pomp",pl:"Pompa",pt:"Bombear",es:"Bomba","zh-cn":"泵"},icon:"Pump.svg"},{_id:"outdoor_blinds",name:{en:"Outdoor Blinds",ru:"Внещгте жалюзи",de:"Raffstore",fr:"Volets",it:"Tende Da Esterni",nl:"Outdoor Blinds",pl:"Rolety Zewnętrzne",pt:"Estores Exteriores",es:"Persianas Exteriores","zh-cn":"室外百叶窗"},icon:"Outdoor Blinds.svg"},{_id:"mowing_machine",name:{en:"Mowing Machine",ru:"Газонокосилка",de:"Rasenmäher",fr:"Machine De Fauchage",it:"Macchina Di Falciatura",nl:"Maaimachine",pl:"Kosiarka",pt:"Roçada Máquina",es:"Segadora","zh-cn":"割草机"},icon:"Mowing Machine.svg"},{_id:"receiver",name:{en:"Receiver",ru:"Приставка",de:"Receiver",fr:"Destinataire",it:"Ricevitore",nl:"Ontvanger",pl:"Odbiorca",pt:"Recebedor",es:"Receptor","zh-cn":"接收者"},icon:"Receiver.svg"},{_id:"shutters",name:{en:"Shutters",ru:"Ставни",de:"Rollladen",fr:"Volets",it:"Persiane",nl:"Shutters",pl:"Żaluzje",pt:"Persianas",es:"Persianas","zh-cn":"百叶窗"},icon:"Shutters.svg"},{_id:"smoke_detector",name:{en:"Smoke detector",de:"Rauchmelder",ru:"Детектор дыма",pt:"Detector de fumaça",nl:"Rookdetector",fr:"Détecteur de fumée",it:"Rilevatore di fumo",es:"Detector de humo",pl:"Wykrywacz dymu","zh-cn":"烟雾探测器"},icon:"SmokeDetector.svg"},{_id:"lock",name:{en:"Lock",ru:"Замок",de:"Schloß",fr:"Fermer À Clé",it:"Serratura",nl:"Slot",pl:"Zamek",pt:"Trancar",es:"Cerrar Con Llave","zh-cn":"锁"},icon:"Lock.svg"},{_id:"security",name:{en:"Security",ru:"Безопасность",de:"Sicherheit",fr:"Sécurité",it:"Sicurezza",nl:"Veiligheid",pl:"Bezpieczeństwo",pt:"Segurança",es:"Seguridad","zh-cn":"安全"},icon:"Security.svg"},{_id:"dishwasher",name:{en:"Dishwasher",ru:"Посудомоечная машина",de:"Spülmaschine",fr:"Lave-Vaisselles",it:"Lavastoviglie",nl:"Vaatwassers",pl:"Zmywarki",pt:"Máquinas De Lavar Louça",es:"Lavaplatos","zh-cn":"洗碗机"},icon:"Dishwashers.svg"},{_id:"vacuum_cleaner",name:{en:"Vacuum Cleaner",ru:"Пылесос",de:"Staubsauger",fr:"Aspirateur",it:"Aspirapolvere",nl:"Stofzuiger",pl:"Odkurzacz",pt:"Aspirador De Pó",es:"Aspiradora","zh-cn":"吸尘器"},icon:"Vacuum Cleaner.svg"},{_id:"socket",name:{en:"Socket",ru:"Розетка",de:"Steckdose",fr:"Prise",it:"Socket",nl:"Socket",pl:"Gniazdka",pt:"Tomada",es:"Zócalo","zh-cn":"套接字"},icon:"Sockets.svg"},{_id:"floor_lamp",name:{en:"Floor Lamp",ru:"Торшер",de:"Stehlampe",fr:"Lampes Pour Plancher",it:"Lampade A Stelo",nl:"Vloerlampen",pl:"Lampy Podłogowe",pt:"Lâmpadas Chão",es:"Lámparas De Pie","zh-cn":"落地灯"},icon:"Floor Lamps.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"temperature_sensor",name:{en:"Temperature Sensor",ru:"Температурный датчик",de:"Temperatur-Sensor",fr:"Capteur De Température",it:"Sensori Di Temperatura",nl:"Temperatuursensor",pl:"Czujniki Temperatury",pt:"Sensores De Temperatura",es:"Sensores De Temperatura","zh-cn":"温度传感器"},icon:"Temperature Sensors.svg"},{_id:"table_lamp",name:{en:"Table Lamp",ru:"Настольная лампа",de:"Tischlampe",fr:"Lampe De Chevet",it:"Lampade Da Tavolo",nl:"Tafellampen",pl:"Lampy Stołowe",pt:"Lâmpadas De Mesa",es:"Lámparas De Mesa","zh-cn":"台灯"},icon:"Table Lamps.svg"},{_id:"gate",name:{en:"Gate",ru:"Ворота",de:"Tor",fr:"Porte",it:"Gate",nl:"Gate",pl:"Bramy",pt:"Portões",es:"Puertas","zh-cn":"盖茨"},icon:"Gates.svg"},{_id:"dryer",name:{en:"Dryer",ru:"Сушилка",de:"Trockner",fr:"Séchoir",it:"Asciugatrice",nl:"Droger",pl:"Suszarka",pt:"Secador",es:"Secadora","zh-cn":"烘干机"},icon:"Dryer.svg"},{_id:"door",name:{en:"Door",ru:"Дверь",de:"Tür",fr:"Des Portes",it:"Porte",nl:"Deuren",pl:"Drzwi",pt:"Portas",es:"Puertas","zh-cn":"门"},icon:"Doors.svg"},{_id:"tv",name:{en:"Tv",ru:"Телевизор",de:"TV",fr:"La Télé",it:"Tv",nl:"Tv",pl:"Telewizja",pt:"Televisão",es:"Televisor","zh-cn":"电视"},icon:"Tv.svg"},{_id:"consumption",name:{en:"Consumption",ru:"Потребление",de:"Verbrauch",fr:"Consommation",it:"Consumo",nl:"Consumptie",pl:"Konsumpcja",pt:"Consumo",es:"Consumo","zh-cn":"消费"},icon:"Consumption.svg"},{_id:"amplifier",name:{en:"Amplifier",ru:"Усилитель звука",de:"Verstärker",fr:"Amplificateur",it:"Amplificatore",nl:"Versterker",pl:"Wzmacniacz",pt:"Amplificador",es:"Amplificador","zh-cn":"放大器"},icon:"Amplifier.svg"},{_id:"curtains",name:{en:"Curtains",ru:"Шторы",de:"Vorhänge",fr:"Des Rideaux",it:"Le Tende",nl:"Gordijnen",pl:"Zasłony",pt:"Cortinas",es:"Cortinas","zh-cn":"窗帘"},icon:"Curtains.svg"},{_id:"sconce",name:{en:"Sconce",ru:"Настенный светильник",de:"Wandlampe",fr:"Sconce",it:"Sconce",nl:"Sconce",pl:"Kinkiety",pt:"Arandelas",es:"Los Apliques","zh-cn":"壁灯"},icon:"Sconces.svg"},{_id:"washing_machine",name:{en:"Washing Machine",ru:"Стиральная машина",de:"Waschmaschine",fr:"Machines À Laver",it:"Lavatrici",nl:"Wasmachines",pl:"Pralki",pt:"Máquinas De Lavar Roupas",es:"Lavadoras","zh-cn":"洗衣机"},icon:"Washing Machines.svg"},{_id:"water",name:{en:"Water",ru:"Вода",de:"Wasser",fr:"L'Eau",it:"Acqua",nl:"Water",pl:"Woda",pt:"Água",es:"Agua","zh-cn":"水"},icon:"Water.svg"},{_id:"water_heater",name:{en:"Water Heater",ru:"Нагреватель воды",de:"Wasserkocher",fr:"Chauffe-Eau",it:"Scaldabagno",nl:"Waterkoker",pl:"Podgrzewacz Wody",pt:"Aquecedor De Água",es:"Calentador De Agua","zh-cn":"热水器"},icon:"Water Heater.svg"},{_id:"water_consumption",name:{en:"Water Consumption",ru:"Потребление воды",de:"Wasserverbrauch",fr:"Consommation D'Eau",it:"Consumo D'Acqua",nl:"Waterverbruik",pl:"Konsumpcja Wody",pt:"Consumo De Água",es:"Consumo De Agua","zh-cn":"耗水量"},icon:"Water Consumption.svg"},{_id:"weather",name:{en:"Weather",ru:"Погода",de:"Wetter",fr:"La Météo",it:"Tempo Metereologico",nl:"Weer",pl:"Pogoda",pt:"Clima",es:"Tiempo","zh-cn":"天气"},icon:"Weather.svg"}],Fxe=[{_id:"storeroom",name:{en:"Storeroom",ru:"Кладовая",de:"Abstellraum",fr:"Débarras",it:"Dispensa",nl:"Bergplaats",pl:"Magazyn",pt:"Despensa",es:"Trastero","zh-cn":"库房"},icon:"Storeroom.svg"},{_id:"second_floor",name:{en:"Second floor",ru:"Второй этаж",de:"Erster OG",pt:"Primeiro andar",nl:"Eerste verdieping",fr:"Premier étage",it:"Primo piano",es:"Primer piso",pl:"Pierwsze piętro","zh-cn":"第一层"},icon:"Second Floor.svg"},{_id:"dressing_room",name:{en:"Dressing Room",ru:"Гардеробная",de:"Ankleide",fr:"Vestiaire",it:"Camerino",nl:"Kleedkamer",pl:"Przebieralnia",pt:"Provador",es:"Vestidor","zh-cn":"更衣室"},icon:"Dressing Room.svg"},{_id:"workspace",name:{en:"Workspace",ru:"Рабочая Среда",de:"Arbeitszimmer",fr:"Espace De Travail",it:"Area Di Lavoro",nl:"Workspace",pl:"Workspace",pt:"Área De Trabalho",es:"Espacio De Trabajo","zh-cn":"工作区"},icon:"Workspace.svg"},{_id:"driveway",name:{en:"Driveway",ru:"Дорога",de:"Auffahrt",fr:"Allée",it:"Viale",nl:"Pad",pl:"Podjazd",pt:"Entrada Da Garagem",es:"Entrada De Coches","zh-cn":"车道"},icon:"Driveway.svg"},{_id:"outdoors",name:{en:"Outdoors",ru:"На Улице",de:"Außenbereich",fr:"En Plein Air",it:"All'Aperto",nl:"Buitenshuis",pl:"Na Dworze",pt:"Ao Ar Livre",es:"Al Aire Libre","zh-cn":"户外"},icon:"Outdoors.svg"},{_id:"bathroom",name:{en:"Bathroom",ru:"Ванная Комната",de:"Badezimmer",fr:"Salle De Bains",it:"Bagno",nl:"Badkamer",pl:"Łazienka",pt:"Banheiro",es:"Baño","zh-cn":"浴室"},icon:"Bathroom.svg"},{_id:"balcony",name:{en:"Balcony",ru:"Балкон",de:"Balkon",fr:"Balcon",it:"Balcone",nl:"Balkon",pl:"Balkon",pt:"Sacada",es:"Balcón","zh-cn":"阳台"},icon:"Balcony.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"carport",name:{en:"Carport",ru:"Навес",de:"Carport",fr:"Carport",it:"Posto Auto Coperto",nl:"Carport",pl:"Wiata",pt:"Telheiro",es:"Cochera","zh-cn":"车棚"},icon:"Carport.svg"},{_id:"attic",name:{en:"Attic",ru:"Чердак",de:"Dachgeschoss",fr:"Grenier",it:"Attico",nl:"Zolder",pl:"Poddasze",pt:"Sótão",es:"Ático","zh-cn":"阁楼"},icon:"Attic.svg"},{_id:"hall",name:{en:"Hall",ru:"Зал",de:"Diele",fr:"Salle",it:"Sala",nl:"Hal",pl:"Sala",pt:"Corredor",es:"Sala","zh-cn":"大厅"},icon:"Hall.svg"},{_id:"entrance",name:{en:"Entrance",ru:"Вход",de:"Eingang",fr:"Entrée",it:"Ingresso",nl:"Ingang",pl:"Wejście",pt:"Entrada",es:"Entrada","zh-cn":"入口"},icon:"Entrance.svg"},{_id:"ground_floor",name:{en:"Ground Floor",ru:"Первый Этаж",de:"Erdgeschoss",fr:"Rez-De-Chaussée",it:"Piano Terra",nl:"Begane Grond",pl:"Parter",pt:"Térreo",es:"Planta Baja","zh-cn":"一楼"},icon:"Ground Floor.svg"},{_id:"dining_area",name:{en:"Dining Area",ru:"Столовая",de:"Essbereich",fr:"Salle À Manger",it:"Zona Pranzo",nl:"Eethoek",pl:"Jadalnia",pt:"Área De Refeições",es:"Comedor","zh-cn":"用餐区"},icon:"Dining Area.svg"},{_id:"dining_room",name:{en:"Dining Room",ru:"Столовая",de:"Esszimmer",fr:"Salle À Manger",it:"Sala Da Pranzo",nl:"Eetkamer",pl:"Jadalnia",pt:"Sala De Jantar",es:"Comedor","zh-cn":"饭厅"},icon:"Dining Room.svg"},{_id:"gym",name:{en:"Gym",ru:"Спортзал",de:"Fitnessraum",fr:"Gym",it:"Palestra",nl:"Sportschool",pl:"Siłownia",pt:"Ginásio",es:"Gimnasio","zh-cn":"健身房"},icon:"Gym.svg"},{_id:"gallery",name:{en:"Gallery",ru:"Галерея",de:"Galerie",fr:"Galerie",it:"Galleria",nl:"Galerij",pl:"Galeria",pt:"Galeria",es:"Galería","zh-cn":"画廊"},icon:"Gallery.svg"},{_id:"garage",name:{en:"Garage",ru:"Гараж",de:"Garage",fr:"Garage",it:"Box Auto",nl:"Garage",pl:"Garaż",pt:"Garagem",es:"Garaje","zh-cn":"车库"},icon:"Garage.svg"},{_id:"wardrobe",name:{en:"Wardrobe",ru:"Гардероб",de:"Garderobe",fr:"Penderie",it:"Armadio",nl:"Garderobe",pl:"Szafa",pt:"Guarda Roupa",es:"Armario","zh-cn":"衣柜"},icon:"Wardrobe.svg"},{_id:"garden",name:{en:"Garden",ru:"Сад",de:"Garten",fr:"Jardin",it:"Giardino",nl:"Tuin",pl:"Ogród",pt:"Jardim",es:"Jardín","zh-cn":"花园"},icon:"Garden.svg"},{_id:"summer_house",name:{en:"Summer House",ru:"Дача",de:"Gartenhaus",fr:"Maison D'Été",it:"Casa Estiva",nl:"Zomerhuis",pl:"Domek Letniskowy",pt:"Summer House",es:"Casa De Verano","zh-cn":"凉亭"},icon:"Summer House.svg"},{_id:"guest_bathroom",name:{en:"Guest Bathroom",ru:"Гостевая Комната",de:"Gäste-WC",fr:"Salle De Bains Invité",it:"Guest Bathroom",nl:"Gastenbadkamer",pl:"Łazienka Gościnna",pt:"Banheiro De Hóspedes",es:"Baño De Visitas","zh-cn":"客用浴室"},icon:"Guest Bathroom.svg"},{_id:"guest_room",name:{en:"Guest Room",ru:"Гостевая Комната",de:"Gästezimmer",fr:"Chambre D'Amis",it:"Stanza Degli Ospiti",nl:"Guest Room",pl:"Pokój Gościnny",pt:"Quarto De Hóspedes",es:"Habitación De Huéspedes","zh-cn":"客房"},icon:"Guest Room.svg"},{_id:"laundry_room",name:{en:"Laundry Room",ru:"Прачечная",de:"Hauswirtschaftsraum",fr:"Buanderie",it:"Lavanderia",nl:"Wasruimte",pl:"Pralnia",pt:"Lavandaria",es:"Cuarto De Lavado","zh-cn":"洗衣房"},icon:"Laundry Room.svg"},{_id:"home_theater",name:{en:"Home Theater",ru:"Домашний Театр",de:"Heimkino",fr:"Cinéma Maison",it:"Home Theater",nl:"Thuisbioscoop",pl:"Kino Domowe",pt:"Cinema Em Casa",es:"Cine En Casa","zh-cn":"家庭电影院"},icon:"Home Theater.svg"},{_id:"boiler_room",name:{en:"Boiler Room",ru:"Бойлерная",de:"Heizungsraum",fr:"Chaufferie",it:"Locale Caldaia",nl:"Boiler Room",pl:"Kotłownia",pt:"Sala Da Caldeira",es:"Sala De Calderas","zh-cn":"锅炉房"},icon:"Boiler Room.svg"},{_id:"chamber",name:{en:"Chamber",ru:"Камера",de:"Kammer",fr:"Chambre",it:"Camera",nl:"Kamer",pl:"Izba",pt:"Câmara",es:"Cámara","zh-cn":"商会"},icon:"Chamber.svg"},{_id:"basement,_cellar",name:{en:"Basement, Cellar",ru:"Подвал, Погреб",de:"Keller",fr:"Sous-Sol, Cave",it:"Taverna, Cantina",nl:"Kelder, Kelder",pl:"Piwnica, Piwnica",pt:"Porão, Adega",es:"Sótano, Bodega","zh-cn":"地下室,地窖"},icon:"Basement.svg"},{_id:"nursery",name:{en:"Nursery",ru:"Питомник",de:"Kinderzimmer",fr:"Garderie",it:"Asilo",nl:"Kinderkamer",pl:"Żłobek",pt:"Berçário",es:"Guardería","zh-cn":"苗圃"},icon:"Nursery.svg"},{_id:"corridor",name:{en:"Corridor",ru:"Коридор",de:"Korridor",fr:"Couloir",it:"Corridoio",nl:"Gang",pl:"Korytarz",pt:"Corredor",es:"Corredor","zh-cn":"走廊"},icon:"Corridor.svg"},{_id:"kitchen",name:{en:"Kitchen",ru:"Кухня",de:"Küche",fr:"Cuisine",it:"Cucina",nl:"Keuken",pl:"Kuchnia",pt:"Cozinha",es:"Cocina","zh-cn":"厨房"},icon:"Kitchen.svg"},{_id:"upstairs",name:{en:"Upstairs",ru:"Вверх По Лестнице",de:"Obergeschoss",fr:"En Haut",it:"Di Sopra",nl:"Boven",pl:"Na Górę",pt:"Andar De Cima",es:"Piso Superior","zh-cn":"楼上"},icon:"Upstairs.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"rear_wall",name:{en:"Rear Wall",ru:"Задняя Стенка",de:"Rückwand",fr:"Paroi Arrière",it:"Parete Posteriore",nl:"Achterwand",pl:"Tylna Ściana",pt:"Parede Traseira",es:"Pared Posterior","zh-cn":"后墙"},icon:"Rear Wall.svg"},{_id:"barn",name:{en:"Barn",ru:"Амбар",de:"Scheune",fr:"Grange",it:"Fienile",nl:"Schuur",pl:"Stodoła",pt:"Celeiro",es:"Granero","zh-cn":"谷仓"},icon:"Barn.svg"},{_id:"sleeping_area",name:{en:"Sleeping Area",ru:"Спальное Место",de:"Schlafbereich",fr:"Coin Montagne",it:"Area Sleeping",nl:"Sleeping Area",pl:"Powierzchnia Spania",pt:"Sleeping Area",es:"Área De Dormir","zh-cn":"睡眠区"},icon:"Sleeping Area.svg"},{_id:"bedroom",name:{en:"Bedroom",ru:"Спальная Комната",de:"Schlafzimmer",fr:"Chambre",it:"Camera Da Letto",nl:"Slaapkamer",pl:"Sypialnia",pt:"Quarto",es:"Cuarto","zh-cn":"卧室"},icon:"Bedroom.svg"},{_id:"shed",name:{en:"Shed",ru:"Сбрасывать",de:"Schuppen",fr:"Hangar",it:"Capannone",nl:"Schuur",pl:"Budka",pt:"Cabana",es:"Cobertizo","zh-cn":"棚"},icon:"Shed.svg"},{_id:"swimming_pool",name:{en:"Swimming Pool",ru:"Плавательный Бассейн",de:"Schwimmbad",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"游泳池"},icon:"Swimming Pool.svg"},{_id:"dining",name:{en:"Dining",ru:"Обеденный",de:"Speis",fr:"À Manger",it:"Cenare",nl:"Dining",pl:"Jadalnia",pt:"Jantar",es:"Comida","zh-cn":"用餐"},icon:"Dining.svg"},{_id:"playroom",name:{en:"Playroom",ru:"Игровая Комната",de:"Spielzimmer",fr:"Salle De Jeux",it:"Stanza Dei Giochi",nl:"Speelkamer",pl:"Pokój Zabaw",pt:"Sala De Jogos",es:"Cuarto De Jugar","zh-cn":"游戏室"},icon:"Playroom.svg"},{_id:"stairway",name:{en:"Stairway",ru:"Лестница",de:"Treppe",fr:"Escalier",it:"Scala",nl:"Trap",pl:"Klatka Schodowa",pt:"Escada",es:"Escalera","zh-cn":"楼梯"},icon:"Stairway.svg"},{_id:"equipment_room",name:{en:"Equipment Room",ru:"Оборудование Номера",de:"Technikraum",fr:"Salle D'Équipement",it:"Stanza Degli Attrezzi",nl:"Technische Ruimte",pl:"Wyposażenie Pokoi",pt:"Sala De Equipamentos",es:"Cuarto De Equipos","zh-cn":"机房"},icon:"Equipment Room.svg"},{_id:"terrace",name:{en:"Terrace",ru:"Терраса",de:"Terrasse",fr:"Terrasse",it:"Terrazza",nl:"Terras",pl:"Taras",pt:"Terraço",es:"Terraza","zh-cn":"阳台"},icon:"Terrace.svg"},{_id:"toilet",name:{en:"Toilet",ru:"Туалет",de:"Toilette",fr:"Toilette",it:"Gabinetto",nl:"Toilet",pl:"Toaleta",pt:"Banheiro",es:"Inodoro","zh-cn":"洗手间"},icon:"Toilet.svg"},{_id:"stairwell",name:{en:"Stairwell",ru:"Лестничная клетка",de:"Treppenhaus",fr:"Cage D'Escalier",it:"Tromba Delle Scale",nl:"Trappenhuis",pl:"Klatka Schodowa",pt:"Caixa De Escada",es:"Hueco De Escalera","zh-cn":"楼梯间"},icon:"Stairwell.svg"},{_id:"locker_room",name:{en:"Locker Room",ru:"Камера Хранения",de:"Umkleideraum",fr:"Vestiaire",it:"Spogliatoio",nl:"Kleedkamer",pl:"Szatnia",pt:"Vestiário",es:"Vestuario","zh-cn":"更衣室"},icon:"Locker Room.svg"},{_id:"basement",name:{en:"Basement",ru:"Подвал",de:"Untergeschoss",fr:"Sous-Sol",it:"Seminterrato",nl:"Kelder",pl:"Piwnica",pt:"Porão",es:"Sótano","zh-cn":"地下室"},icon:"Basement.svg"},{_id:"front_yard",name:{en:"Front Yard",ru:"Передний Двор",de:"Vorgarten",fr:"Front Yard",it:"Cortile",nl:"Voortuin",pl:"Podwórko",pt:"Jardim Da Frente",es:"Patio Delantero","zh-cn":"前院"},icon:"Front Yard.svg"},{_id:"anteroom",name:{en:"Anteroom",ru:"Передняя",de:"Vorraum",fr:"Antichambre",it:"Anticamera",nl:"Voorkamer",pl:"Przedpokój",pt:"Ante-Sala",es:"Antesala","zh-cn":"接待室"},icon:"Anteroom.svg"},{_id:"washroom",name:{en:"Washroom",ru:"Уборная",de:"Waschraum",fr:"Toilettes",it:"Bagno",nl:"Waskamer",pl:"Umywalnia",pt:"Banheiro",es:"Baño","zh-cn":"卫生间"},icon:"Washroom.svg"},{_id:"wc",name:{en:"Wc",ru:"Туалет",de:"WC",fr:"Toilettes",it:"Bagno",nl:"Wc",pl:"Toaleta",pt:"Banheiro",es:"Wc","zh-cn":"厕所"},icon:"Wc.svg"},{_id:"workshop",name:{en:"Workshop",ru:"Мастерская",de:"Werkstatt",fr:"Atelier",it:"Laboratorio",nl:"Werkplaats",pl:"Warsztat",pt:"Oficina",es:"Taller","zh-cn":"作坊"},icon:"Workshop.svg"},{_id:"windscreen",name:{en:"Windscreen",ru:"Ветровое Стекло",de:"Windfang",fr:"Pare-Brise",it:"Parabrezza",nl:"Voorruit",pl:"Szyba Przednia",pt:"Pára-Brisas",es:"Parabrisas","zh-cn":"风档"},icon:"Windscreen.svg"},{_id:"living_area",name:{en:"Living Area",ru:"Жилая Площадь",de:"Wohnbereich",fr:"Salon",it:"Zona Giorno",nl:"Living Area",pl:"Powierzchnia Mieszkalna",pt:"Sala-De-Estar",es:"Sala De Estar","zh-cn":"生活区域"},icon:"Living Area.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"}];class Gxe extends x.Component{constructor(e){super(e),this.state={opened:!1,names:[],filter:"",icons:null,loading:!1,isAnyName:!1}}loadAllIcons(){this.state.loading||this.state.icons||this.setState({loading:!0},()=>{const e=[],t=[];if(this.props.icons){const i=this.props.icons.map((r,o)=>{let n;if(typeof r=="object"){if(n=r.icon||r.src||r.href||"",t[o]=typeof r.name=="object"?r.name[this.props.lang]||r.name.en||r._id||"":r.name||"",!t[o]){const a=n.split(".");a.pop(),t[o]=a[a.length-1]}}else n=r;return n?n.startsWith("data:")?(e[o]=n,Promise.resolve()):O.getSvg(n).then(a=>e[o]=a):Promise.resolve()});Promise.all(i).catch(r=>console.error(r)).then(()=>this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)}))}else{let i=this.props.onlyRooms||!this.props.onlyRooms&&!this.props.onlyDevices?Fxe:null;if(i&&(i.forEach(r=>{r.name&&typeof r.name=="object"&&(r.name=r.name[this.props.lang]||r.name.en||r._id),r.name=r.name||r._id}),i=i.filter((r,o)=>!(i!=null&&i.find((n,a)=>o!==a&&n.icon===r.icon&&n.name===r.name))),i.forEach((r,o)=>{t[o]=r.name,e[o]=`data:image/svg+xml;base64,${Jxe[r.icon.replace(/\.svg$/,"")]}`})),i=this.props.onlyDevices||!this.props.onlyRooms&&!this.props.onlyDevices?Rxe:null,i){const r=e.length;i&&i.forEach(o=>{o.name&&typeof o.name=="object"&&(o.name=o.name[this.props.lang]||o.name.en||o._id),o.name=o.name||o._id}),i=i.filter((o,n)=>!(i!=null&&i.find((a,c)=>n!==c&&a.icon===o.icon&&a.name===o.name))),i.forEach((o,n)=>{t[n+r]=o.name,e[n+r]=`data:image/svg+xml;base64,${oxe[o.icon.replace(/\.svg$/,"")]}`})}this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)})}})}render(){return this.state.loading?M.createElement(j.CircularProgress,null):M.createElement(M.Fragment,null,M.createElement(j.Button,{color:"grey",variant:"outlined",title:this.props.t("ra_Select predefined icon"),onClick:()=>this.setState({opened:!0},()=>this.loadAllIcons()),style:{minWidth:40,marginRight:8}},"..."),this.state.opened?M.createElement(j.Dialog,{onClose:()=>this.setState({opened:!1}),open:!0},M.createElement(j.DialogTitle,null,this.props.t("ra_Select predefined icon"),this.state.isAnyName?M.createElement(j.TextField,{variant:"standard",margin:"dense",style:{marginLeft:20},value:this.state.filter,onChange:e=>this.setState({filter:e.target.value.toLowerCase()}),placeholder:this.props.t("ra_Filter"),slotProps:{input:{endAdornment:this.state.filter?M.createElement(j.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({filter:""})},M.createElement(lN,null)):void 0}}}):null),M.createElement(j.DialogContent,null,M.createElement("div",{style:{width:"100%",textAlign:"center"}},this.state.icons&&this.state.icons.map((e,t)=>!this.state.filter||this.state.names[t]&&this.state.names[t].toLowerCase().includes(this.state.filter)?M.createElement(j.Tooltip,{title:this.state.names[t]||"",key:t,slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>this.setState({opened:!1},()=>{const i=this.props.onSelect||this.props.onChange;i&&i(e)}),size:"large"},M.createElement(me,{src:e,alt:t.toString(),style:{width:32,height:32,borderRadius:5}}))):null))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({opened:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Close")))):null)}}const Ot={formContainer:{display:"flex",justifyContent:"left",alignItems:"center"},formControl:{display:"flex",padding:24,flexGrow:1e3},divContainer:{width:64,height:32,whiteSpace:"nowrap",lineHeight:"32px",marginRight:8},dragField:{textAlign:"center",display:"table",minHeight:90,width:"calc(100% - 60px)",border:"2px dashed #777",borderRadius:10,padding:4},formIcon:{margin:10,opacity:.6},text:{display:"table-cell",verticalAlign:"middle"}};function G3e(s){var a,c,l,N;const e=s.icon,t=s.onChange,i=x.useCallback(u=>{const L=new FileReader;L.addEventListener("load",()=>t(L.result),!1),u[0]&&L.readAsDataURL(u[0])},[t]),{getRootProps:r,getInputProps:o,isDragActive:n}=cL({onDrop:i});return M.createElement("div",{style:Ot.formContainer},e?M.createElement(e,{style:Ot.formIcon}):null,M.createElement(j.FormControl,{variant:"standard",style:{...Ot.formControl,padding:3}},M.createElement(j.InputLabel,{shrink:!0,sx:(a=s.customStyles)!=null&&a.label?{"&.MuiInputLabel-root":s.customStyles.label}:void 0,classes:{root:(c=s.customClasses)==null?void 0:c.label}},s.label),M.createElement("div",{style:Ot.formContainer},s.value?M.createElement("div",{style:Ot.divContainer},M.createElement(me,{style:{...s.previewStyle,...((l=s.customStyles)==null?void 0:l.icon)||void 0},src:s.value,className:O.clsx(s.previewClassName,(N=s.customClasses)==null?void 0:N.icon)}),!s.disabled&&M.createElement(j.IconButton,{style:{verticalAlign:"top"},title:d.t("ra_Clear icon"),size:"small",onClick:()=>s.onChange("")},M.createElement(lN,null))):!s.disabled&&M.createElement(Gxe,{icons:s.icons,onlyRooms:s.onlyRooms,onlyDevices:s.onlyDevices,onSelect:u=>s.onChange(u),t:d.t,lang:d.getLanguage()}),!s.disabled&&M.createElement("div",{...r(),style:{...Ot.dragField,...n?{backgroundColor:"rgba(0, 255, 0, 0.1)"}:{cursor:"pointer"}}},M.createElement("input",{...o()}),n?M.createElement("span",{style:Ot.text},d.t("ra_Drop the files here...")):M.createElement("span",{style:Ot.text},d.t("ra_Drag 'n' drop some files here, or click to select files"))))))}function Hxe(s){const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;return t!=null&&t.remove?t.remove():t&&e.removeChild(t),e.remove(),t}function Vxe(s){const e={};if(!s)return e;for(let t,i=0;io[1].toUpperCase()),e[t]=s[i].value}return e}class xr extends x.Component{svg;static REMOTE_SERVER=window.location.hostname.includes("iobroker.in");static REMOTE_PREFIX=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);constructor(e){var t;super(e),this.state={svg:!!((t=this.props.src)!=null&&t.startsWith("data:")),created:!0,color:this.props.color||"",src:this.props.src||"",imgError:!1,showError:!!this.props.showError},this.svg=this.state.svg&&this.state.src?this.getSvgFromData(this.state.src):null}static getDerivedStateFromProps(e,t){var o;const i={};let r=!1;return e&&t&&e.src!==t.src&&(i.src=e.src,i.svg=(o=e.src)==null?void 0:o.startsWith("data:"),i.created=!1,r=!0),e&&t&&e.color!==t.color&&(i.color=e.color,i.created=!1,r=!0),e&&t&&e.showError!==t.showError&&(i.showError=e.showError,r=!0),r?i:null}getSvgFromData(e){const t="data:image/svg+xml;base64,";if(!e.startsWith(t))return null;e=e.substring(t.length);try{e=atob(e);const i=Hxe(e),r=i.innerHTML,o=Vxe(i.attributes);return i.remove(),M.createElement(j.Box,{component:"svg",sx:this.props.sx,className:this.props.className,style:this.state.color?{color:this.state.color}:void 0,...o,dangerouslySetInnerHTML:{__html:r}})}catch{}return null}render(){if(this.state.svg)return this.state.created||setTimeout(()=>{this.svg=this.state.src?this.getSvgFromData(this.state.src):null,this.setState({created:!0})},50),this.svg;if(this.state.src){if(this.state.imgError||!this.state.src)return M.createElement(DM,{className:this.props.className});if(xr.REMOTE_SERVER&&!this.state.src.startsWith("http://")&&!this.state.src.startsWith("https://")){let e=(this.props.imagePrefix||"")+this.state.src;return e.startsWith("./")?e=xr.REMOTE_PREFIX+e.substring(2):e.startsWith("/")||(e=xr.REMOTE_PREFIX+e),M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:`https://remote-files.iobroker.in${e}`,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:(this.props.imagePrefix||"")+this.state.src,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return null}}function Zxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"},child:[]}]})(s)}function Xxe(s){return Z({attr:{t:"1569683928793",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H212V212h200v200zM864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H612V212h200v200zM864 544H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z m-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function Kxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"},child:[]}]})(s)}function qxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z"},child:[]}]})(s)}function e_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z"},child:[]}]})(s)}function t_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z"},child:[]}]})(s)}function s_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function i_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function r_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M24 5.25v13a.75.75 0 0 1-1.136.643L16.5 15.075v2.175A1.75 1.75 0 0 1 14.75 19h-13A1.75 1.75 0 0 1 0 17.25v-11C0 5.284.784 4.5 1.75 4.5h13c.966 0 1.75.784 1.75 1.75v2.175l6.364-3.818A.75.75 0 0 1 24 5.25Zm-9 1a.25.25 0 0 0-.25-.25h-13a.25.25 0 0 0-.25.25v11c0 .138.112.25.25.25h13a.25.25 0 0 0 .25-.25v-11Zm1.5 7.075 6 3.6V6.575l-6 3.6Z"},child:[]}]})(s)}function Ol(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M3.89,17.6c0-0.99,0.31-1.88,0.93-2.65s1.41-1.27,2.38-1.49c0.26-1.17,0.85-2.14,1.78-2.88c0.93-0.75,2-1.12,3.22-1.12 + c1.18,0,2.24,0.36,3.16,1.09c0.93,0.73,1.53,1.66,1.8,2.8h0.27c1.18,0,2.18,0.41,3.01,1.24s1.25,1.83,1.25,3 + c0,1.18-0.42,2.18-1.25,3.01s-1.83,1.25-3.01,1.25H8.16c-0.58,0-1.13-0.11-1.65-0.34S5.52,21,5.14,20.62 + c-0.38-0.38-0.68-0.84-0.91-1.36S3.89,18.17,3.89,17.6z M5.34,17.6c0,0.76,0.28,1.42,0.82,1.96s1.21,0.82,1.99,0.82h9.28 + c0.77,0,1.44-0.27,1.99-0.82c0.55-0.55,0.83-1.2,0.83-1.96c0-0.76-0.27-1.42-0.83-1.96c-0.55-0.54-1.21-0.82-1.99-0.82h-1.39 + c-0.1,0-0.15-0.05-0.15-0.15l-0.07-0.49c-0.1-0.94-0.5-1.73-1.19-2.35s-1.51-0.93-2.45-0.93c-0.94,0-1.76,0.31-2.46,0.94 + c-0.7,0.62-1.09,1.41-1.18,2.34l-0.07,0.42c0,0.1-0.05,0.15-0.16,0.15l-0.45,0.07c-0.72,0.06-1.32,0.36-1.81,0.89 + C5.59,16.24,5.34,16.87,5.34,17.6z M14.19,8.88c-0.1,0.09-0.08,0.16,0.07,0.21c0.43,0.19,0.79,0.37,1.08,0.55 + c0.11,0.03,0.19,0.02,0.22-0.03c0.61-0.57,1.31-0.86,2.12-0.86c0.81,0,1.5,0.27,2.1,0.81c0.59,0.54,0.92,1.21,0.99,2l0.09,0.64h1.42 + c0.65,0,1.21,0.23,1.68,0.7c0.47,0.47,0.7,1.02,0.7,1.66c0,0.6-0.21,1.12-0.62,1.57s-0.92,0.7-1.53,0.77c-0.1,0-0.15,0.05-0.15,0.16 + v1.13c0,0.11,0.05,0.16,0.15,0.16c1.01-0.06,1.86-0.46,2.55-1.19s1.04-1.6,1.04-2.6c0-1.06-0.37-1.96-1.12-2.7 + c-0.75-0.75-1.65-1.12-2.7-1.12h-0.15c-0.26-1-0.81-1.82-1.65-2.47c-0.83-0.65-1.77-0.97-2.8-0.97C16.28,7.29,15.11,7.82,14.19,8.88 + z`},child:[]}]})(s)}function o_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M4.37,14.62c0-0.24,0.08-0.45,0.25-0.62c0.17-0.16,0.38-0.24,0.6-0.24h2.04c0.23,0,0.42,0.08,0.58,0.25 + c0.15,0.17,0.23,0.37,0.23,0.61S8,15.06,7.85,15.23c-0.15,0.17-0.35,0.25-0.58,0.25H5.23c-0.23,0-0.43-0.08-0.6-0.25 + C4.46,15.06,4.37,14.86,4.37,14.62z M7.23,21.55c0-0.23,0.08-0.43,0.23-0.61l1.47-1.43c0.15-0.16,0.35-0.23,0.59-0.23 + c0.24,0,0.44,0.08,0.6,0.23s0.24,0.34,0.24,0.57c0,0.24-0.08,0.46-0.24,0.64L8.7,22.14c-0.41,0.32-0.82,0.32-1.23,0 + C7.31,21.98,7.23,21.78,7.23,21.55z M7.23,7.71c0-0.23,0.08-0.43,0.23-0.61C7.66,6.93,7.87,6.85,8.1,6.85 + c0.22,0,0.42,0.08,0.59,0.24l1.43,1.47c0.16,0.15,0.24,0.35,0.24,0.59c0,0.24-0.08,0.44-0.24,0.6s-0.36,0.24-0.6,0.24 + c-0.24,0-0.44-0.08-0.59-0.24L7.47,8.32C7.31,8.16,7.23,7.95,7.23,7.71z M9.78,14.62c0-0.93,0.23-1.8,0.7-2.6s1.1-1.44,1.91-1.91 + s1.67-0.7,2.6-0.7c0.7,0,1.37,0.14,2.02,0.42c0.64,0.28,1.2,0.65,1.66,1.12c0.47,0.47,0.84,1.02,1.11,1.66 + c0.27,0.64,0.41,1.32,0.41,2.02c0,0.94-0.23,1.81-0.7,2.61c-0.47,0.8-1.1,1.43-1.9,1.9c-0.8,0.47-1.67,0.7-2.61,0.7 + s-1.81-0.23-2.61-0.7c-0.8-0.47-1.43-1.1-1.9-1.9C10.02,16.43,9.78,15.56,9.78,14.62z M11.48,14.62c0,0.98,0.34,1.81,1.03,2.5 + c0.68,0.69,1.51,1.04,2.49,1.04s1.81-0.35,2.5-1.04s1.04-1.52,1.04-2.5c0-0.96-0.35-1.78-1.04-2.47c-0.69-0.68-1.52-1.02-2.5-1.02 + c-0.97,0-1.8,0.34-2.48,1.02C11.82,12.84,11.48,13.66,11.48,14.62z M14.14,22.4c0-0.24,0.08-0.44,0.25-0.6s0.37-0.24,0.6-0.24 + c0.24,0,0.45,0.08,0.61,0.24s0.24,0.36,0.24,0.6v1.99c0,0.24-0.08,0.45-0.25,0.62c-0.17,0.17-0.37,0.25-0.6,0.25 + s-0.44-0.08-0.6-0.25c-0.17-0.17-0.25-0.38-0.25-0.62V22.4z M14.14,6.9V4.86c0-0.23,0.08-0.43,0.25-0.6C14.56,4.09,14.76,4,15,4 + s0.43,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6V6.9c0,0.23-0.08,0.42-0.25,0.58S15.23,7.71,15,7.71s-0.44-0.08-0.6-0.23 + S14.14,7.13,14.14,6.9z M19.66,20.08c0-0.23,0.08-0.42,0.23-0.56c0.15-0.16,0.34-0.23,0.56-0.23c0.24,0,0.44,0.08,0.6,0.23 + l1.46,1.43c0.16,0.17,0.24,0.38,0.24,0.61c0,0.23-0.08,0.43-0.24,0.59c-0.4,0.31-0.8,0.31-1.2,0l-1.42-1.42 + C19.74,20.55,19.66,20.34,19.66,20.08z M19.66,9.16c0-0.25,0.08-0.45,0.23-0.59l1.42-1.47c0.17-0.16,0.37-0.24,0.59-0.24 + c0.24,0,0.44,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6c0,0.25-0.08,0.46-0.24,0.62l-1.46,1.43c-0.18,0.16-0.38,0.24-0.6,0.24 + c-0.23,0-0.41-0.08-0.56-0.24S19.66,9.4,19.66,9.16z M21.92,14.62c0-0.24,0.08-0.44,0.24-0.62c0.16-0.16,0.35-0.24,0.57-0.24h2.02 + c0.23,0,0.43,0.09,0.6,0.26c0.17,0.17,0.26,0.37,0.26,0.6s-0.09,0.43-0.26,0.6c-0.17,0.17-0.37,0.25-0.6,0.25h-2.02 + c-0.23,0-0.43-0.08-0.58-0.25S21.92,14.86,21.92,14.62z`},child:[]}]})(s)}function n_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.38,21.83c0-0.3,0.1-0.55,0.29-0.76c0.19-0.21,0.43-0.31,0.7-0.31v-0.02l13.16,0.04c0.06-0.01,0.1-0.02,0.1-0.02 + c0.27,0.01,0.51,0.12,0.7,0.33c0.19,0.21,0.29,0.47,0.28,0.77c0,0.3-0.1,0.55-0.29,0.76c-0.19,0.21-0.43,0.31-0.7,0.31v0.01 + L8.59,22.9c-0.1,0.01-0.17,0.02-0.22,0.02c-0.28-0.01-0.51-0.11-0.7-0.32C7.47,22.39,7.37,22.13,7.38,21.83z M8.2,16.37 + c-0.01-0.43,0.04-0.93,0.16-1.52c0.06-0.3,0.2-0.76,0.44-1.37c0.02-0.05,0.07-0.14,0.13-0.28c0.01,0.02,0.03,0.03,0.04,0.05 + s0.02,0.02,0.02,0.03c0.11,0.44,0.27,0.84,0.49,1.2c0.21,0.32,0.48,0.56,0.82,0.69c0.26,0.11,0.63,0.17,1.1,0.18 + c0.02,0,0.05,0,0.08,0c0.03,0,0.06,0,0.08,0c-0.33-0.33-0.59-0.67-0.79-1c-0.3-0.52-0.49-1.12-0.57-1.81 + c-0.06-0.54-0.03-1.19,0.09-1.96c0.02-0.15,0.12-0.49,0.29-1.01c0.15-0.47,0.36-0.9,0.64-1.28C11.54,7.8,12,7.3,12.61,6.78 + c0.37-0.31,0.89-0.67,1.56-1.07c0.07-0.04,0.18-0.11,0.35-0.19c0,0.02,0,0.04,0,0.05s0,0.03,0,0.04v0.02 + c-0.24,0.57-0.41,1.15-0.49,1.73c-0.06,0.53,0.02,1.02,0.24,1.48c0.17,0.36,0.48,0.75,0.92,1.15c0.09,0.09,0.29,0.29,0.6,0.58 + c0.3,0.29,0.54,0.52,0.7,0.68l0.25,0.25c0.26-0.38,0.41-0.83,0.44-1.35c0.04-0.55,0-1.15-0.14-1.8c0-0.01,0-0.04,0.01-0.11 + c0.02,0.02,0.13,0.1,0.3,0.24c0.56,0.5,0.98,0.95,1.28,1.34c0.48,0.62,0.83,1.21,1.06,1.74c0.19,0.46,0.31,0.92,0.38,1.4 + c0.06,0.42,0.08,0.77,0.07,1.05c-0.01,0.78-0.1,1.43-0.25,1.96c-0.07,0.21-0.13,0.38-0.19,0.52c0.25-0.07,0.47-0.16,0.65-0.26 + c0.25-0.16,0.45-0.37,0.6-0.66c0.16-0.29,0.29-0.62,0.38-0.98c0-0.01,0.01-0.03,0.03-0.05c0.01,0.02,0.02,0.05,0.05,0.09 + c0.02,0.04,0.04,0.07,0.05,0.1c0.13,0.31,0.22,0.63,0.27,0.97c0.08,0.38,0.1,0.75,0.08,1.13c-0.02,0.29-0.07,0.56-0.16,0.81 + c-0.08,0.24-0.16,0.43-0.22,0.58c-0.19,0.38-0.39,0.71-0.62,0.98c-0.06,0.07-0.11,0.13-0.14,0.16H9.67 + c-0.01-0.01-0.03-0.03-0.07-0.06s-0.06-0.05-0.08-0.07C9.26,18.98,8.98,18.6,8.7,18.1c-0.08-0.15-0.18-0.38-0.29-0.69 + C8.29,17.1,8.22,16.75,8.2,16.37z`},child:[]}]})(s)}function a_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.56,17.19c0-0.88,0.24-1.89,0.72-3.03s1.1-2.25,1.86-3.31c1.56-2.06,2.92-3.62,4.06-4.67l0.75-0.72 + c0.25,0.26,0.53,0.5,0.83,0.72c0.41,0.42,1.04,1.11,1.88,2.09s1.57,1.85,2.17,2.65c0.71,1.01,1.32,2.1,1.81,3.25 + s0.74,2.16,0.74,3.03c0,1-0.19,1.95-0.58,2.86c-0.39,0.91-0.91,1.7-1.57,2.36c-0.66,0.66-1.45,1.19-2.37,1.58 + c-0.92,0.39-1.89,0.59-2.91,0.59c-1,0-1.95-0.19-2.86-0.57c-0.91-0.38-1.7-0.89-2.36-1.55c-0.66-0.65-1.19-1.44-1.58-2.35 + S7.56,18.23,7.56,17.19z M9.82,14.26c0,0.83,0.17,1.49,0.52,1.99c0.35,0.49,0.88,0.74,1.59,0.74c0.72,0,1.25-0.25,1.61-0.74 + c0.35-0.49,0.53-1.15,0.54-1.99c-0.01-0.84-0.19-1.5-0.54-2c-0.35-0.49-0.89-0.74-1.61-0.74c-0.71,0-1.24,0.25-1.59,0.74 + C9.99,12.76,9.82,13.42,9.82,14.26z M11.39,14.26c0-0.15,0-0.27,0-0.35s0.01-0.19,0.02-0.33c0.01-0.14,0.02-0.25,0.05-0.32 + s0.05-0.16,0.09-0.24c0.04-0.08,0.09-0.15,0.15-0.18c0.07-0.04,0.14-0.06,0.23-0.06c0.14,0,0.25,0.04,0.33,0.12s0.14,0.21,0.17,0.38 + c0.03,0.18,0.05,0.32,0.06,0.45s0.01,0.3,0.01,0.52c0,0.23,0,0.4-0.01,0.52c-0.01,0.12-0.03,0.27-0.06,0.45 + c-0.03,0.17-0.09,0.3-0.17,0.38s-0.19,0.12-0.33,0.12c-0.09,0-0.16-0.02-0.23-0.06c-0.07-0.04-0.12-0.1-0.15-0.18 + c-0.04-0.08-0.07-0.17-0.09-0.24c-0.02-0.08-0.04-0.19-0.05-0.32c-0.01-0.14-0.02-0.25-0.02-0.32S11.39,14.41,11.39,14.26z + M11.98,22.01h1.32l4.99-10.74h-1.35L11.98,22.01z M16.28,19.02c0.01,0.84,0.2,1.5,0.55,2c0.35,0.49,0.89,0.74,1.6,0.74 + c0.72,0,1.25-0.25,1.6-0.74c0.35-0.49,0.52-1.16,0.53-2c-0.01-0.84-0.18-1.5-0.53-1.99c-0.35-0.49-0.88-0.74-1.6-0.74 + c-0.71,0-1.25,0.25-1.6,0.74C16.47,17.52,16.29,18.18,16.28,19.02z M17.85,19.02c0-0.23,0-0.4,0.01-0.52 + c0.01-0.12,0.03-0.27,0.06-0.45s0.09-0.3,0.17-0.38s0.19-0.12,0.33-0.12c0.09,0,0.17,0.02,0.24,0.06c0.07,0.04,0.12,0.1,0.16,0.19 + c0.04,0.09,0.07,0.17,0.1,0.24s0.04,0.18,0.05,0.32l0.01,0.32l0,0.34c0,0.16,0,0.28,0,0.35l-0.01,0.32l-0.05,0.32l-0.1,0.24 + l-0.16,0.19l-0.24,0.06c-0.14,0-0.25-0.04-0.33-0.12s-0.14-0.21-0.17-0.38c-0.03-0.18-0.05-0.33-0.06-0.45S17.85,19.25,17.85,19.02z + `},child:[]}]})(s)}function M_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M6.34,12.48c0-0.94,0.3-1.78,0.89-2.52s1.34-1.21,2.25-1.41C9.73,7.43,10.3,6.5,11.2,5.78s1.92-1.08,3.08-1.08 + c1.12,0,2.13,0.35,3.02,1.05c0.89,0.7,1.46,1.6,1.73,2.69h0.27c1.12,0,2.08,0.39,2.88,1.18c0.79,0.78,1.19,1.74,1.19,2.85 + c0,0.6-0.12,1.17-0.37,1.7c-0.25,0.53-0.59,0.99-1.03,1.37v0.03c0,0.59-0.19,1.12-0.56,1.59c-0.37,0.47-0.84,0.76-1.4,0.89 + c-0.14,0.62-0.45,1.15-0.91,1.58c-0.46,0.43-1.01,0.7-1.63,0.8c0.29,0.34,0.43,0.72,0.43,1.13c0,0.48-0.17,0.89-0.51,1.24 + c-0.34,0.34-0.75,0.52-1.23,0.52c-0.48,0-0.89-0.17-1.23-0.52c-0.34-0.34-0.51-0.76-0.51-1.24c0-0.19,0.03-0.38,0.1-0.57h-0.1 + c-0.58,0-1.08-0.21-1.5-0.63c-0.42-0.42-0.63-0.92-0.63-1.5c0-0.4,0.1-0.76,0.3-1.07c-0.52-0.29-0.89-0.7-1.12-1.25h-1.28v-0.01 + c-1.07-0.07-1.98-0.49-2.73-1.27S6.34,13.56,6.34,12.48z M7.74,12.23c0,0.8,0.28,1.48,0.84,2.04s1.24,0.84,2.03,0.84 + c0.49,0,0.95-0.11,1.37-0.34c0.12,0.74,0.47,1.36,1.04,1.86s1.25,0.74,2.02,0.74c0.87,0,1.61-0.31,2.22-0.92 + c0.41,0.48,0.92,0.71,1.54,0.71c0.57,0,1.05-0.2,1.46-0.6c0.4-0.4,0.6-0.89,0.6-1.46c0.4-0.27,0.72-0.61,0.95-1.04 + c0.23-0.42,0.35-0.88,0.35-1.37c0-0.79-0.28-1.47-0.85-2.02c-0.57-0.55-1.25-0.83-2.05-0.83c-0.56,0-1.07,0.15-1.53,0.44 + c0.06-0.24,0.08-0.51,0.08-0.79c0-0.96-0.34-1.78-1.03-2.46c-0.69-0.68-1.52-1.01-2.49-1.01c-0.94,0-1.75,0.33-2.43,0.97 + s-1.04,1.44-1.07,2.37c-0.02,0-0.05,0-0.08,0c-0.04,0-0.07,0-0.09,0c-0.79,0-1.46,0.28-2.03,0.84S7.74,11.45,7.74,12.23z`},child:[]}]})(s)}function c_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M9.91,19.56c0-0.85,0.2-1.64,0.59-2.38s0.94-1.35,1.65-1.84V5.42c0-0.8,0.27-1.48,0.82-2.03S14.2,2.55,15,2.55 + c0.81,0,1.49,0.28,2.04,0.83c0.55,0.56,0.83,1.23,0.83,2.03v9.92c0.71,0.49,1.25,1.11,1.64,1.84s0.58,1.53,0.58,2.38 + c0,0.92-0.23,1.78-0.68,2.56s-1.07,1.4-1.85,1.85s-1.63,0.68-2.56,0.68c-0.92,0-1.77-0.23-2.55-0.68s-1.4-1.07-1.86-1.85 + S9.91,20.48,9.91,19.56z M11.67,19.56c0,0.93,0.33,1.73,0.98,2.39c0.65,0.66,1.44,0.99,2.36,0.99c0.93,0,1.73-0.33,2.4-1 + s1.01-1.46,1.01-2.37c0-0.62-0.16-1.2-0.48-1.73c-0.32-0.53-0.76-0.94-1.32-1.23l-0.28-0.14c-0.1-0.04-0.15-0.14-0.15-0.29V5.42 + c0-0.32-0.11-0.59-0.34-0.81C15.62,4.4,15.34,4.29,15,4.29c-0.32,0-0.6,0.11-0.83,0.32c-0.23,0.21-0.34,0.48-0.34,0.81v10.74 + c0,0.15-0.05,0.25-0.14,0.29l-0.27,0.14c-0.55,0.29-0.98,0.7-1.29,1.23C11.82,18.35,11.67,18.92,11.67,19.56z M12.45,19.56 + c0,0.71,0.24,1.32,0.73,1.82s1.07,0.75,1.76,0.75s1.28-0.25,1.79-0.75c0.51-0.5,0.76-1.11,0.76-1.81c0-0.63-0.22-1.19-0.65-1.67 + c-0.43-0.48-0.96-0.77-1.58-0.85V9.69c0-0.06-0.03-0.13-0.1-0.19c-0.07-0.07-0.14-0.1-0.22-0.1c-0.09,0-0.16,0.03-0.21,0.08 + c-0.05,0.06-0.08,0.12-0.08,0.21v7.34c-0.61,0.09-1.13,0.37-1.56,0.85C12.66,18.37,12.45,18.92,12.45,19.56z`},child:[]}]})(s)}function u_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"},child:[]}]})(s)}function l_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"},child:[]},{tag:"path",attr:{d:"M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"},child:[]}]})(s)}function El(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"},child:[]}]})(s)}function N_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M8 12a4 4 0 0 0 4 4m0 -8a4 4 0 0 0 -4 4"},child:[]},{tag:"path",attr:{d:"M3 12h1"},child:[]},{tag:"path",attr:{d:"M12 3v1"},child:[]},{tag:"path",attr:{d:"M12 20v1"},child:[]},{tag:"path",attr:{d:"M5.6 5.6l.7 .7"},child:[]},{tag:"path",attr:{d:"M6.3 17.7l-.7 .7"},child:[]},{tag:"path",attr:{d:"M20 7l-3 5h4l-3 5"},child:[]}]})(s)}function L_e(s){return Z({attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M224,127.17a96.48,96.48,0,0,1-2.39,22.18A24,24,0,0,1,198.21,168H152a24,24,0,0,0-24,24,24,24,0,0,1-32,22.61C58.73,201.44,32,169.81,32,128a96,96,0,0,1,95-96C179.84,31.47,223.55,74.35,224,127.17Z",opacity:"0.2"},child:[]},{tag:"path",attr:{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"},child:[]}]})(s)}function g_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M296,320H216a24,24,0,0,0,0,48h80a24,24,0,0,0,0-48Zm0,32H216a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"}),M.createElement("path",{d:"M68.071,123.492c22.578-13.918,52.2-25.229,85.674-32.71l-3.49-15.615c-35.688,7.977-66.163,19.653-90.58,34.705-17.914,11.043-32.041,23.643-41.99,37.451l12.98,9.354C39.376,144.588,51.961,133.423,68.071,123.492Z"}),M.createElement("path",{d:"M435.533,137.112C409.439,121.027,374,108.967,332.845,102.144,322.474,87,288.213,80,256,80s-66.474,7-76.845,22.144C138,108.967,102.561,121.027,76.467,137.112,47.376,155.045,32,176.792,32,200v96c0,29,24.155,55.7,68.016,75.193C141.813,389.77,197.209,400,256,400s114.187-10.23,155.984-28.807C455.845,351.7,480,325,480,296V200C480,176.792,464.624,155.045,435.533,137.112ZM177.64,151.23C185.676,168.192,221.98,176,256,176s70.324-7.808,78.36-24.77c21.862,4.212,41.832,10.19,58.13,17.44C422.343,181.941,432,195.509,432,200s-9.657,18.059-39.51,31.33C357.224,247.008,307.475,256,256,256s-101.224-8.992-136.49-24.67C89.657,218.059,80,204.491,80,200s9.657-18.059,39.512-31.331C135.808,161.42,155.778,155.442,177.64,151.23Zm14.36-19c15.6,8,40.35,11.773,64,11.773s48.4-3.775,64-11.773V144c0,.687-2.715,5.08-15.618,9.381C291.577,157.649,274.4,160,256,160s-35.577-2.351-48.382-6.619C194.715,149.08,192,144.687,192,144Zm15.618-29.608C220.423,98.351,237.605,96,256,96s35.577,2.351,48.382,6.619C317.285,106.92,320,111.313,320,112s-2.715,5.08-15.618,9.381C291.577,125.649,274.4,128,256,128s-35.577-2.351-48.382-6.619C194.715,117.08,192,112.687,192,112S194.715,106.92,207.618,102.619ZM176,118.937v16.319c-23.589,4.453-45.254,10.9-62.99,18.794C82.779,167.489,64,185.1,64,200s18.779,32.511,49.01,45.95C150.249,262.505,202.367,272,256,272s105.751-9.5,142.99-26.05C429.221,232.511,448,214.9,448,200s-18.779-32.511-49.008-45.95c-17.738-7.89-39.4-14.341-62.992-18.794V118.937C411.852,132.7,464,165.41,464,200c0,21.967-21.328,44.044-58.516,60.572C365.688,278.259,312.6,288,256,288s-109.688-9.741-149.484-27.428C69.328,244.044,48,221.967,48,200,48,165.41,100.148,132.7,176,118.937ZM464,296c0,21.967-21.327,44.044-58.514,60.572C365.689,374.259,312.6,384,256,384s-109.689-9.741-149.486-27.428C69.327,340.044,48,317.967,48,296V239.371c11.522,13.444,29.066,25.621,52.018,35.822C141.814,293.77,197.211,304,256,304s114.186-10.23,155.982-28.807c22.952-10.2,40.5-22.378,52.018-35.822Z"}),M.createElement("path",{d:"M418.482,385.814C374.684,405.28,316.979,416,256,416a488.01,488.01,0,0,1-78.705-6.23l-2.59,15.789A504.064,504.064,0,0,0,256,432c63.169,0,123.181-11.21,168.981-31.565q1.3-.576,2.572-1.16l-6.655-14.55Q419.7,385.274,418.482,385.814Z"}),M.createElement("path",{d:"M436.123,377.062l7.754,14c5.883-3.259,11.492-6.728,16.674-10.31l-9.1-13.161C446.7,370.871,441.546,374.059,436.123,377.062Z"}),M.createElement("rect",{x:"248",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"280",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"216",y:"192",width:"16",height:"16"})))}function j_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M298.667 298.667c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32c0 17.642 14.357 32 32 32zm0-42.667c5.867 0 10.667 4.779 10.667 10.667s-4.8 10.667-10.667 10.667S288 272.555 288 266.667 292.8 256 298.667 256z"}),M.createElement("path",{fill:"currentColor",d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667c-.597 0-1.131.256-1.707.341-.555.085-1.088.149-1.621.32-.939.32-1.749.789-2.56 1.344-.32.213-.704.277-1.003.533-.107.085-.149.213-.256.32-.768.704-1.365 1.579-1.899 2.496-.213.341-.512.619-.661.981-.597 1.345-.96 2.774-.96 4.332v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h42.667c.576 0 1.173-.043 1.749-.149l256-42.667a10.672 10.672 0 0 0 8.917-10.517V53.333c0-5.227-3.776-9.664-8.917-10.517L235.541 21.333h159.125v480c0 5.888 4.779 10.667 10.667 10.667H448c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-96-428.31v387.264l-234.667 39.125V23.253L352 62.357z"}))}function fl(s){return M.createElement("svg",{viewBox:"0 0 512.006 512.006",...s},M.createElement("path",{d:"M502.379 211.249c0 74.656-60.52 135.176-135.176 135.176-6.469.01-12.919-.473-19.311-1.448-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825a142.128 142.128 0 0 1 19.311-1.352c74.656 0 135.176 60.521 135.176 135.177z",fill:"#c52828"}),M.createElement("path",{d:"M463.757 211.249c-.029 67.173-49.378 124.131-115.865 133.728-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825 66.516 9.598 115.875 66.613 115.865 133.825z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M380.527 230.56h-26.649a8.208 8.208 0 0 1-8.4-7.242l-7.242-90.472c-.212-4.47 3.235-8.275 7.705-8.497.232-.01.463-.01.695 0h41.036a8.105 8.105 0 0 1 8.4 7.802c.01.232.01.463 0 .695l-7.242 90.472c-.501 4.181-4.093 7.319-8.303 7.242zM362.085 269.181h10.235c7.84 0 14.194 6.353 14.194 14.194v10.235c0 7.84-6.353 14.194-14.194 14.194h-10.235c-7.84 0-14.194-6.353-14.194-14.194v-10.235c.001-7.84 6.354-14.194 14.194-14.194z"})),M.createElement("path",{d:"M308.015 332.714a132.057 132.057 0 0 1-24.332-15.256 138.367 138.367 0 0 1-25.587-26.456 134.123 134.123 0 0 1-26.07-79.754 136.453 136.453 0 0 1 3.09-28.966 129.801 129.801 0 0 1 9.655-28.966c-24.428-39.201-50.691-78.113-85.547-108.334-2.607-2.221-5.214-4.442-7.917-6.566a161.051 161.051 0 0 0-14.387-10.621 80.965 80.965 0 0 0-13.807-7.145c1.641 7.338 3.476 14.773 4.731 22.208a180.355 180.355 0 0 1 2.993 26.939v7.145a192.012 192.012 0 0 1-60.829 139.521 202.647 202.647 0 0 0-43.836 52.719 149.063 149.063 0 0 0-6.566 120.017 152.006 152.006 0 0 0 22.208 40.167 164.926 164.926 0 0 0 106.21 61.891 86.874 86.874 0 0 1-44.801-32.249 51.315 51.315 0 0 1-3.669-5.6 77.46 77.46 0 0 1-6.469-13.325 79.464 79.464 0 0 1 3.766-63.726 111.914 111.914 0 0 1 23.463-28.387 101.983 101.983 0 0 0 32.442-74.25v-3.862a97.875 97.875 0 0 0-4.731-27.132 112.539 112.539 0 0 1 10.911 6.566 108.053 108.053 0 0 1 30.222 30.801 100.963 100.963 0 0 1 15.835 46.443v8.4a100.92 100.92 0 0 1-18.249 57.933c22.98 13.035 38.622-8.593 44.994-28.966a60.067 60.067 0 0 0 2.51-12.842 88.458 88.458 0 0 1 28.966 61.312v5.214c-2.704 33.678-25.346 62.451-57.45 72.995 73.353-11.789 128.717-72.889 133.245-147.053a131.977 131.977 0 0 1-30.994-10.815z",fill:"#f57c00"}),M.createElement("path",{d:"M263.117 417.489v-5.214a88.462 88.462 0 0 0-28.966-61.312 60.129 60.129 0 0 1-2.51 12.842c-5.986 20.47-22.014 42.098-44.994 28.966a100.923 100.923 0 0 0 18.249-57.933v-.966-7.338a100.971 100.971 0 0 0-15.835-46.443 108.027 108.027 0 0 0-30.222-30.801 108.949 108.949 0 0 0-39.877-35.532 97.838 97.838 0 0 1 4.731 27.132v3.862a101.988 101.988 0 0 1-32.442 74.25 111.924 111.924 0 0 0-23.366 28.387 79.491 79.491 0 0 0-3.573 63.726 83.948 83.948 0 0 0 35.436 42.291 51.315 51.315 0 0 0 3.669 5.6 86.886 86.886 0 0 0 44.415 32.249 164.927 164.927 0 0 1-106.21-61.892 152.082 152.082 0 0 1-22.014-40.167 149.055 149.055 0 0 1 6.564-120.015 202.714 202.714 0 0 1 44.029-53.202A192.012 192.012 0 0 0 131.03 76.458v-7.145a180.486 180.486 0 0 0-2.993-26.939c-1.255-7.435-3.09-14.869-4.731-22.208a80.965 80.965 0 0 1 13.807 7.145 159.446 159.446 0 0 1 14.773 10.718c2.704 2.124 5.311 4.345 7.917 6.566 34.856 30.222 61.119 69.133 85.547 108.334a129.75 129.75 0 0 0-9.655 28.966 136.634 136.634 0 0 0-3.669 29.353 134.116 134.116 0 0 0 26.07 79.754 138.396 138.396 0 0 0 25.587 26.456 132.164 132.164 0 0 0 24.332 15.256 152.203 152.203 0 0 1-44.898 84.775z",fill:"#ff9801"}),M.createElement("path",{d:"M147.831 500.912h-1.448c-61.756-8.7-113.963-50.15-136.432-108.334a158.725 158.725 0 0 1 7.338-127.355 212.528 212.528 0 0 1 45.96-55.809 181.787 181.787 0 0 0 57.933-132.473v-6.759a171.298 171.298 0 0 0-2.8-25.587c-.966-5.697-2.221-11.2-3.476-16.704l-1.159-5.117c-1.178-5.204 2.076-10.37 7.28-11.548a9.663 9.663 0 0 1 5.948.541 89.473 89.473 0 0 1 15.449 8.014 172.47 172.47 0 0 1 15.449 11.2c41.036 32.732 70.871 77.244 95.589 117.314a9.673 9.673 0 0 1 .483 9.655 121.056 121.056 0 0 0-9.655 26.842 128.158 128.158 0 0 0-2.607 26.456c.01 59.198 41.374 110.333 99.258 122.721a9.655 9.655 0 0 1 7.628 9.655c-3.186 77.244-61.216 141.742-141.163 156.129-5.253.927-10.254-2.588-11.181-7.84a9.65 9.65 0 0 1 6.353-10.795c29.99-9.8 50.517-37.492 51.174-69.037a67.618 67.618 0 0 0-14.387-40.746 56.78 56.78 0 0 1-24.139 31.091 33.122 33.122 0 0 1-33.408-1.448c-4.644-2.626-6.276-8.516-3.659-13.16.145-.261.299-.502.473-.743a91.187 91.187 0 0 0 16.511-52.429v-.772a90.743 90.743 0 0 0-14.58-48.277 98.107 98.107 0 0 0-19.311-21.532v9.945a111.13 111.13 0 0 1-35.436 81.299 103.445 103.445 0 0 0-21.532 25.78 69.873 69.873 0 0 0-3.09 56.002 76.304 76.304 0 0 0 49.533 44.512c5.33.801 9.009 5.774 8.207 11.104-.801 5.328-5.774 8.997-11.103 8.205zM137.113 39.478v1.738a188.136 188.136 0 0 1 3.09 28.194v7.435A200.926 200.926 0 0 1 76.38 223.318a192.998 192.998 0 0 0-42.098 50.498 139.414 139.414 0 0 0-6.469 111.907 148.682 148.682 0 0 0 65.561 76.568 89.522 89.522 0 0 1-15.159-49.726 91.25 91.25 0 0 1 9.655-40.167 119.46 119.46 0 0 1 25.394-31.091 92.026 92.026 0 0 0 29.449-67.588v-3.09a88.799 88.799 0 0 0-4.248-24.911 9.653 9.653 0 0 1 6.237-12.147 9.638 9.638 0 0 1 7.473.657 119.392 119.392 0 0 1 44.705 40.649 110.062 110.062 0 0 1 17.669 58.898v1.159a110.343 110.343 0 0 1-13.035 52.139 12.555 12.555 0 0 0 4.731-1.448c9.655-5.31 17.283-22.497 18.345-35.436.434-5.31 5.088-9.269 10.409-8.844a9.61 9.61 0 0 1 6.006 2.761 95.586 95.586 0 0 1 32.153 68.168 89.528 89.528 0 0 1-13.711 47.408 146.774 146.774 0 0 0 69.133-108.817c-62.77-17.37-106.22-74.492-106.21-139.618a146.655 146.655 0 0 1 3.283-30.994 139.876 139.876 0 0 1 8.497-26.263c-23.27-37.077-51.27-78.402-88.541-108.045a113.049 113.049 0 0 0-8.496-6.467z"}),M.createElement("path",{d:"M367.203 356.081a144.841 144.841 0 0 1-89.506-30.994 143.882 143.882 0 0 1-55.326-113.838 146.655 146.655 0 0 1 3.283-30.994 140.652 140.652 0 0 1 10.814-31.091c23.965-50.498 74.839-82.699 130.735-82.747 79.986.019 144.813 64.875 144.803 144.861a144.848 144.848 0 0 1-55.297 113.809 143.543 143.543 0 0 1-89.506 30.994zm0-270.353c-48.47.019-92.586 27.943-113.355 71.74a121.83 121.83 0 0 0-9.655 26.939 127.805 127.805 0 0 0-2.51 26.842c.01 59.198 41.374 110.333 99.258 122.721a125.763 125.763 0 0 0 26.263 2.8c69.326 0 125.521-56.195 125.521-125.521S436.519 85.728 367.203 85.728z"}),M.createElement("path",{d:"M380.527 240.215h-26.649c-9.279.097-17.109-6.894-18.056-16.125l-7.242-90.085a17.201 17.201 0 0 1 4.538-13.035 18.38 18.38 0 0 1 13.518-5.89h41.036a18.375 18.375 0 0 1 13.518 5.89 17.204 17.204 0 0 1 4.635 13.035l-7.242 90.472c-1.139 9.076-8.912 15.854-18.056 15.738zm-25.49-19.311h24.525l6.952-86.899h-38.622l7.145 86.899zM372.32 317.459h-10.235c-13.151-.048-23.801-10.698-23.849-23.849v-10.235c.048-13.151 10.698-23.801 23.849-23.849h10.138c13.189 0 23.888 10.66 23.946 23.849v10.138c0 13.18-10.669 23.888-23.849 23.946zm-10.138-38.622a4.635 4.635 0 0 0-4.538 4.538v10.138a4.635 4.635 0 0 0 4.538 4.538h10.138a4.635 4.635 0 0 0 4.538-4.538v-10.138a4.635 4.635 0 0 0-4.538-4.538h-10.138z"}))}function xl(s){return M.createElement("svg",{viewBox:"0 0 512.002 512.002",...s},M.createElement("path",{d:"M481.929 324.35c0 65.951-53.464 119.415-119.415 119.415a111.938 111.938 0 0 1-17.059-1.279c-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221a125.333 125.333 0 0 1 17.059-1.194c65.951-.001 119.415 53.462 119.415 119.414z",fill:"#c52828"}),M.createElement("path",{d:"M447.81 324.35c-.026 59.341-43.621 109.657-102.356 118.135-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221 58.77 8.487 102.373 58.846 102.356 118.221z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M374.285 341.409h-23.542a7.251 7.251 0 0 1-7.421-6.397l-6.397-79.923a7.174 7.174 0 0 1 6.807-7.506c.205-.009.409-.009.614 0h36.251a7.16 7.16 0 0 1 7.421 6.892c.009.205.009.409 0 .614l-6.397 79.923a7.249 7.249 0 0 1-7.336 6.397zM357.993 375.527h9.041c6.926 0 12.539 5.612 12.539 12.539v9.041c0 6.926-5.612 12.539-12.539 12.539h-9.041c-6.926 0-12.539-5.612-12.539-12.539v-9.041c0-6.926 5.621-12.539 12.539-12.539z"})),M.createElement("path",{d:"M318.415 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 159.575 159.575 0 0 1-61.413 12.283 149.268 149.268 0 0 1-20.556-1.365 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.753 152.753 0 0 1-12.368-60.219 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504 7.335-11.771c4.504-7.353 14.117-9.656 21.469-5.143a15.525 15.525 0 0 1 5.143 5.143l34.716 55.869c-2.644 4.18-5.032 8.53-7.335 12.709a96.424 96.424 0 0 0-11.515 44.439 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.344 115.344 0 0 0-11.6 31.048 120.546 120.546 0 0 0-2.729 25.589c.041 48.9 29.878 92.828 75.315 110.885z",fill:"#0377bc"}),M.createElement("path",{d:"M277.217 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 158.847 158.847 0 0 1-40.772 10.833 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.657 152.657 0 0 1-12.368-60.134 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504c9.212 14.671 18.339 29.427 27.465 44.098-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.323 115.323 0 0 0-12.283 31.133 120.546 120.546 0 0 0-2.729 25.589c.043 48.9 29.88 92.828 75.317 110.885z",fill:"#02a9f4"}),M.createElement("path",{d:"M411.388 144.545a477.911 477.911 0 0 0-27.636-43.842c-9.894-14.586-19.192-29.598-28.489-44.525L328.395 13.53c-3.037-4.708-9.323-6.065-14.031-3.028a10.259 10.259 0 0 0-3.028 3.028l-12.794 20.215-14.074 22.433c-9.297 14.927-18.595 29.939-28.489 44.525-6.994 10.236-13.989 20.471-20.301 31.133-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.758 98.758 0 0 0 29.939 70.284 106.83 106.83 0 0 0 9.98 8.53 119.423 119.423 0 0 1 84.017-60.902 114.9 114.9 0 0 1 21.068-1.877c5.186.009 10.372.324 15.524.938a119.369 119.369 0 0 1 39.578 12.539 96.462 96.462 0 0 0-6.228-73.866z",fill:"#0377bc"}),M.createElement("path",{d:"M379.573 188.899a93.046 93.046 0 0 1-1.535 17.059 131.537 131.537 0 0 0-15.524-1.024 114.797 114.797 0 0 0-21.068 1.877 119.425 119.425 0 0 0-84.017 60.902 106.96 106.96 0 0 1-9.98-8.53c-31.099-29.743-38.878-76.417-19.106-114.638 2.303-4.35 4.691-8.53 7.335-12.709 6.312-10.662 13.306-20.898 20.301-31.133 9.894-14.586 19.192-29.598 28.489-44.525l14.074-22.433 14.074 22.433c9.297 14.927 18.595 29.939 28.489 44.525a477.911 477.911 0 0 1 27.636 43.842 96.401 96.401 0 0 1 10.832 44.354z",fill:"#02a9f4"}),M.createElement("path",{d:"M187.656 512.002a167.398 167.398 0 0 1-64.655-12.88 165.226 165.226 0 0 1-88.623-86.746 160.466 160.466 0 0 1-13.05-63.631 158.81 158.81 0 0 1 17.656-72.928 698.388 698.388 0 0 1 39.663-63.887l3.412-5.032c12.027-17.998 23.627-36.677 34.886-54.76L167.1 71.531c6.986-11.353 21.861-14.893 33.214-7.898a24.1 24.1 0 0 1 7.898 7.898l17.059 27.38 17.827 28.404a8.521 8.521 0 0 1 0 9.383c-2.559 4.009-4.777 8.018-6.994 12.112a87.69 87.69 0 0 0-10.065 40.089 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83 99.608 99.608 0 0 0 9.212 7.847 8.534 8.534 0 0 1 2.303 10.918 106.955 106.955 0 0 0-10.747 28.745 112.483 112.483 0 0 0-2.559 23.712c.009 45.429 27.721 86.26 69.943 103.038 4.393 1.706 6.559 6.653 4.853 11.046a8.584 8.584 0 0 1-.93 1.749 162.407 162.407 0 0 1-20.301 24.139 164.29 164.29 0 0 1-52.884 34.886 167.489 167.489 0 0 1-64.653 12.795zm0-435.012a6.99 6.99 0 0 0-6.056 3.412l-50.154 80.69c-11.344 18.168-23.03 37.019-35.227 55.187l-3.412 5.032a687.543 687.543 0 0 0-38.725 62.266 141.613 141.613 0 0 0-15.695 65.166 143.56 143.56 0 0 0 11.686 56.893 148.16 148.16 0 0 0 79.411 77.79 152.855 152.855 0 0 0 116.344 0 147.616 147.616 0 0 0 47.425-31.133 143.446 143.446 0 0 0 12.027-13.306c-43.322-21.802-70.668-66.139-70.711-114.638a129.576 129.576 0 0 1 2.9-27.38 124.357 124.357 0 0 1 9.212-26.954 136.293 136.293 0 0 1-5.203-4.691 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 1.621-3.071 3.241-5.971 4.862-8.53l-14.927-24.054-17.059-27.38a7.087 7.087 0 0 0-6.141-3.837z"}),M.createElement("path",{d:"M99.971 442.4A8.521 8.521 0 0 1 94 439.926a129.631 129.631 0 0 1-28.318-41.113 126.28 126.28 0 0 1-10.236-50.069 124.503 124.503 0 0 1 13.818-57.234c1.868-4.325 6.883-6.32 11.208-4.452s6.32 6.883 4.452 11.208c-.162.375-.35.742-.563 1.092a107.494 107.494 0 0 0-11.856 49.387 109.211 109.211 0 0 0 8.53 43.331 112.626 112.626 0 0 0 24.565 35.739c3.344 3.318 3.369 8.717.051 12.061a8.549 8.549 0 0 1-6.022 2.525l.342-.001zM257.428 276.242a8.526 8.526 0 0 1-5.118-1.706 115.222 115.222 0 0 1-10.747-9.212 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 2.559-4.862 5.118-9.212 7.677-13.306 6.312-10.662 13.392-21.068 20.386-31.218 9.041-13.903 17.912-27.807 26.442-41.881L304 8.753c5.485-8.734 17.017-11.379 25.751-5.894a18.698 18.698 0 0 1 5.894 5.894l28.574 45.634c8.53 13.733 17.059 27.977 26.612 41.539l1.706 2.474a457.473 457.473 0 0 1 26.442 42.136 104.968 104.968 0 0 1 6.824 80.434c-1.433 4.487-6.235 6.969-10.722 5.536a8.282 8.282 0 0 1-1.39-.589 112.612 112.612 0 0 0-106.535 2.388 110.28 110.28 0 0 0-42.136 43.416 8.52 8.52 0 0 1-5.715 4.265l-1.877.256zm62.437-258.959a1.541 1.541 0 0 0-1.365.768l-28.489 45.378c-8.53 13.903-17.571 28.233-26.954 42.051-6.909 10.065-13.903 20.301-20.045 30.707-2.644 4.18-4.947 8.53-7.165 12.368a87.722 87.722 0 0 0-9.809 40.345 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83l1.791 1.706a127.216 127.216 0 0 1 43.331-41.369 129.73 129.73 0 0 1 113.359-7.25 87.904 87.904 0 0 0-8.53-57.831 444.102 444.102 0 0 0-25.589-40.516l-1.706-2.474c-9.383-13.818-18.339-28.148-26.954-42.051L321.23 18.05a1.532 1.532 0 0 0-1.365-.767z"}),M.createElement("path",{d:"M271.246 243.233a8.519 8.519 0 0 1-5.971-2.388 75.502 75.502 0 0 1-16.292-23.456 71.923 71.923 0 0 1-5.885-28.489 70.537 70.537 0 0 1 7.933-32.498c1.877-3.582 4.009-7.25 6.227-10.833l.512-.768a8.538 8.538 0 0 1 11.609-3.284 8.538 8.538 0 0 1 3.284 11.609 6.997 6.997 0 0 1-.392.631l-.512.853c-2.132 3.327-3.924 6.568-5.63 9.724a53.307 53.307 0 0 0-5.971 24.565 54.816 54.816 0 0 0 4.435 21.665 58.198 58.198 0 0 0 12.624 18.083c3.395 3.267 3.489 8.666.222 12.061a8.518 8.518 0 0 1-6.193 2.61v-.085z"}),M.createElement("path",{d:"M362.514 452.294c-70.66 0-127.945-57.285-127.945-127.945a129.576 129.576 0 0 1 2.9-27.38 123.98 123.98 0 0 1 12.453-33.351 127.15 127.15 0 0 1 48.619-50.154c37.94-21.495 84.136-22.518 122.997-2.729 62.744 32.489 87.275 109.7 54.777 172.452-22.005 42.512-65.916 69.184-113.801 69.107zm0-238.83c-40.763.009-78.234 22.382-97.579 58.257a107.238 107.238 0 0 0-10.747 28.83 112.818 112.818 0 0 0-2.559 23.798c0 61.243 49.643 110.885 110.885 110.885s110.885-49.642 110.885-110.885-49.643-110.885-110.885-110.885z"}),M.createElement("path",{d:"M374.285 349.939h-23.542c-8.231.085-15.157-6.141-15.95-14.33l-6.397-79.496a15.26 15.26 0 0 1 4.009-11.515 16.312 16.312 0 0 1 11.942-5.203h36.251a16.31 16.31 0 0 1 11.941 5.203 15.27 15.27 0 0 1 4.094 11.515l-6.397 79.923c-.999 8.026-7.865 14.013-15.951 13.903zm-22.519-17.06h21.665l6.141-76.767h-34.119l6.313 76.767zM367.034 418.176h-9.041c-11.617-.043-21.026-9.451-21.068-21.068v-9.041c.043-11.617 9.451-21.026 21.068-21.068h8.956c11.651 0 21.102 9.417 21.153 21.068v8.956c.001 11.651-9.416 21.11-21.068 21.153zm-8.956-34.119a4.095 4.095 0 0 0-4.009 4.009v8.956a4.095 4.095 0 0 0 4.009 4.009h8.956a4.095 4.095 0 0 0 4.009-4.009v-8.956a4.095 4.095 0 0 0-4.009-4.009h-8.956z"}))}function y_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M462,226c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.52,0,10-4.48,10-10S467.52,226,462,226z"}),M.createElement("path",{fill:"currentColor",d:"M50,226c-5.52,0-10,4.48-10,10s4.48,10,10,10s10-4.48,10-10S55.52,226,50,226z"}),M.createElement("path",{fill:"currentColor",d:`M502,126h-0.027C508.265,117.637,512,107.248,512,96c0-27.57-22.43-50-50-50s-50,22.43-50,50 + c0,11.248,3.735,21.637,10.027,30H422c-5.522,0-10,4.478-10,10v50.03c-7.399,0.025-17.158,0.065-23,0.113V166.63 + c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.435c-0.931-0.964-1.899-2.045-2.923-3.258 + c-10.745-12.754-24.515-23.761-40.077-32.106V121.83c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.983 + c-12.92-4.643-26.438-7.5-40-8.448V96c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v30.365 + c-13.565,0.948-27.084,3.807-40,8.452V120.17c0-5.522-4.477-10-10-10s-10,4.478-10,10v23.542 + c-15.764,8.457-29.695,19.652-40.55,32.652c-0.758,0.908-1.587,1.755-2.45,2.566v-12.3c0-5.522-4.477-10-10-10s-10,4.478-10,10 + v20.385c-4.189,0.067-14.913,0.05-23,0.024V136c0-5.522-4.477-10-10-10h-0.027C96.265,117.637,100,107.248,100,96 + c0-27.57-22.43-50-50-50S0,68.43,0,96c0,11.248,3.735,21.637,10.027,30H10c-5.523,0-10,4.478-10,10v320c0,5.522,4.477,10,10,10h80 + c5.523,0,10-4.478,10-10v-11h312v11c0,5.522,4.478,10,10,10h80c5.522,0,10-4.478,10-10V136C512,130.478,507.522,126,502,126z + M80,446H20V146h20v50c0,5.522,4.477,10,10,10s10-4.478,10-10v-50h20V446z M50,126c-16.542,0-30-13.458-30-30s13.458-30,30-30 + s30,13.458,30,30S66.542,126,50,126z M123,425h-23v-19h23V425z M123,386h-23V247h23V386z M123,227h-23v-19.959 + c3.808,0.011,8.197,0.022,12.244,0.022c4.378,0,8.351-0.012,10.756-0.046V227z M186,425h-43v-19h43V425z M186,276v40v70h-43 + V244.817c16.149-3.513,31.29-11.046,43-21.321V276z M186,194.605c-2.373,2.327-4.659,4.785-6.815,7.365 + c-8.521,10.2-21.771,18.214-36.185,22.224v-21.525c6.846-3.098,13.007-7.736,17.806-13.49c7.006-8.391,15.56-15.917,25.194-22.232 + V194.605z M206,156.285c12.757-5.415,26.344-8.765,40-9.871v20.099c-14.162,1.416-27.777,5.83-40,12.895V156.285z M206,203.562 + c11.538-9.26,25.37-15.088,40-16.922V266h-40V203.562z M246,425h-40v-19h40V425z M246,386h-40v-60h40V386z M306,425h-40v-19h40 + V425z M306,386h-40v-60h40V386z M306,306H206v-20h100V306z M306,266h-40v-79.359c14.617,1.835,28.449,7.664,40,16.924V266z + M306,179.418c-12.232-7.071-25.847-11.487-40-12.904v-20.1c13.651,1.106,27.238,4.454,40,9.865V179.418z M369,425h-43v-19h43V425 + z M369,386h-43v-70v-40v-52.635c11.722,10.137,26.674,17.329,43,20.634V386z M369,223.458 + c-14.663-3.788-27.83-11.575-36.517-21.887c-2.039-2.417-4.216-4.742-6.483-6.965v-27.672c9.465,6.201,17.88,13.567,24.789,21.767 + c4.64,5.496,10.324,11.234,18.211,14.57V223.458z M412,425h-23v-19h23V425z M412,386h-23V246h23V386z M412,226h-23v-19.856 + c5.683-0.048,15.526-0.088,23-0.113V226z M492,446h-60V146h20v50c0,5.522,4.478,10,10,10c5.522,0,10-4.478,10-10v-50h20V446z + M462,126c-16.542,0-30-13.458-30-30s13.458-30,30-30s30,13.458,30,30S478.542,126,462,126z`}))}function T_e(s){return M.createElement("svg",{viewBox:"0 0 511.448 511.448",...s},M.createElement("path",{d:"M344.556 112.216C318.38 78.84 291.34 44.344 269.516 7.32c-5.76-9.76-21.824-9.76-27.552 0-21.856 37.024-48.896 71.52-75.072 104.896-53.056 67.68-103.168 131.616-103.168 207.232 0 105.888 86.112 192 192 192s192-86.112 192-192c0-75.616-50.112-139.552-103.168-207.232z",fill:"#2196f3"}),M.createElement("g",{fill:"#fafafa"},M.createElement("path",{d:"M207.724 287.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.832 0-16 7.168-16 16s7.168 16 16 16 16-7.168 16-16-7.168-16-16-16zM303.724 447.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM175.724 415.448a16.07 16.07 0 0 1-11.328-4.672c-6.24-6.24-6.24-16.384 0-22.624l160-160c6.24-6.24 16.384-6.24 22.624 0s6.24 16.384 0 22.624l-160 160a15.943 15.943 0 0 1-11.296 4.672z"})))}function _l(s){return M.createElement("svg",{viewBox:"0 0 508.16 508.16",...s},M.createElement("path",{d:"M504.18 13.67a3.924 3.924 0 0 0-.42.02H4a4 4 0 0 0-4 4v47.28a4 4 0 0 0 4 4h19.72l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.16a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h479.8a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.64-42.08h9.84a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h19.72a4 4 0 0 0 4-4V17.69a4 4 0 0 0-3.98-4.02zM99.08 486.49H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm26.8 378.24h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm.16-47.28h-18.96V68.97h18.96v39.28zm247.84 378.24h-240v-39.28h240v39.28zm-240-47.28v-39.28h239.68v39.28H133.88zm240-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm-240-47.28V68.97h239.84v39.28H133.88zm266.64 378.24h-18.64l-.32-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm.32-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm-18.96-47.28V68.97h18.8v39.28h-18.8zm63.56 8v39.28h-36.92v-39.28h36.92zm-36.76-8V68.97h36.92v39.28h-36.92zm36.76 55.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.76l-.16-39.28h36.92zm42.68 181.12h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h36.92v17.44a4 4 0 0 0 8 0v-17.44h22.04l12.48 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6V68.97h22.04l12.56 39.28zm11.56-47.28H8V21.69h491.76l-.08 39.28z",fill:"currentColor"}),M.createElement("path",{d:"M454.32 37.33h-13.76a4 4 0 0 0 0 8h13.76a4 4 0 0 0 0-8zM414.84 37.33h-96a4 4 0 0 0 0 8h96a4 4 0 0 0 0-8z",fill:"currentColor"}))}function D_e(s){return M.createElement("svg",{viewBox:"0 0 63.907 63.907",fill:"currentColor",...s},M.createElement("circle",{fill:"currentColor",cx:30.515,cy:6.136,r:6.136}),M.createElement("path",{fill:"currentColor",d:"M47.399 27.455C42.346 24.53 38.2 20.579 34.71 15.931c-2.193-3.084-7.991-2.923-10.347-.097-3.584 3.487-6.625 7.081-9.037 10.677a3.209 3.209 0 0 0 5.329 3.573 54.205 54.205 0 0 1 3.59-4.734c-.051 3.333.116 9.347.2 12.05.028.9-.177 1.78-.595 2.579-3.308 6.317-5.424 12.294-7.572 19.606a3.37 3.37 0 1 0 6.465 1.901c1.982-6.742 3.897-12.201 6.884-17.981.152.006.304.006.458-.001 1.907 5.69 3.815 11.383 5.725 17.073 1.387 4.147 7.822 1.993 6.431-2.155-2.087-6.221-4.171-12.439-6.251-18.659-.121-.357-.414-1.755-.455-2.211-.344-3.832-.469-7.652-.432-11.477a51.027 51.027 0 0 0 9.782 7.328c3.597 2.088 6.063-3.891 2.514-5.948z"}))}function d_e(s){return M.createElement("svg",{viewBox:"0 0 285 285",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:`M88.4,87.996c2.525-2.146,2.832-5.933,0.687-8.458C82.801,72.144,79.34,62.719,79.34,53c0-22.607,18.393-41,41-41 + c22.607,0,41,18.393,41,41c0,9.729-3.467,19.161-9.761,26.557c-2.148,2.523-1.843,6.311,0.681,8.458 + c1.129,0.961,2.511,1.431,3.886,1.431c1.698,0,3.386-0.717,4.572-2.111C168.858,77.77,173.34,65.576,173.34,53 + c0-29.225-23.775-53-53-53c-29.225,0-53,23.775-53,53c0,12.563,4.476,24.748,12.602,34.31C82.089,89.835,85.873,90.141,88.4,87.996 + z`}),M.createElement("path",{fill:"currentColor",d:`M120.186,41.201c13.228,0,23.812,8.105,27.313,19.879c0.761-2.562,1.176-5.271,1.176-8.08 + c0-15.649-12.685-28.335-28.335-28.335c-15.648,0-28.334,12.686-28.334,28.335c0,2.623,0.364,5.16,1.031,7.571 + C96.691,49.076,107.152,41.201,120.186,41.201z`}),M.createElement("path",{fill:"currentColor",d:`M234.21,169.856c-3.769-22.452-19.597-26.04-27.034-26.462c-2.342-0.133-4.516-1.32-5.801-3.282 + c-5.388-8.225-12.609-10.4-18.742-10.4c-4.405,0-8.249,1.122-10.449,1.932c-0.275,0.102-0.559,0.15-0.837,0.15 + c-0.87,0-1.701-0.47-2.163-1.262c-5.472-9.387-13.252-11.809-19.822-11.809c-3.824,0-7.237,0.82-9.548,1.564 + c-0.241,0.077-0.764,0.114-1.001,0.114c-1.256,0-2.637-1.03-2.637-2.376V69.753c0-11.035-8.224-16.552-16.5-16.552 + c-8.276,0-16.5,5.517-16.5,16.552v84.912c0,4.989-3.811,8.074-7.918,8.074c-2.495,0-4.899-1.138-6.552-3.678l-7.937-12.281 + c-3.508-5.788-8.576-8.188-13.625-8.189c-11.412-0.001-22.574,12.258-14.644,25.344l62.491,119.692 + c0.408,0.782,1.225,1.373,2.108,1.373h87.757c1.253,0,2.289-1.075,2.365-2.325l2.196-35.816c0.025-0.413,0.162-0.84,0.39-1.186 + C231.591,212.679,237.828,191.414,234.21,169.856z`})))}function Xo(s){return M.createElement("svg",{viewBox:"1 -10 511.99999 511",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M 405.5 150 C 405.5 232.566406 338.566406 299.5 256 299.5 C 173.433594 299.5 106.5 232.566406 106.5 150 C 106.5 67.433594 173.433594 0.5 256 0.5 C 338.566406 0.5 405.5 67.433594 405.5 150 Z M 405.5 150 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(25.882353%,75.294118%,88.627451%)",fillOpacity:1}}),M.createElement("path",{d:"M 512 342.921875 C 512 425.488281 445.066406 492.421875 362.5 492.421875 C 279.933594 492.421875 213 425.488281 213 342.921875 C 213 260.355469 279.933594 193.421875 362.5 193.421875 C 445.066406 193.421875 512 260.355469 512 342.921875 Z M 512 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,81.568627%,38.039216%)",fillOpacity:1}}),M.createElement("path",{d:"M 220.746094 295.308594 C 232.050781 298.039062 243.855469 299.5 256 299.5 C 321.917969 299.5 377.871094 256.835938 397.753906 197.613281 C 386.449219 194.878906 374.644531 193.421875 362.5 193.421875 C 296.582031 193.421875 240.628906 236.085938 220.746094 295.308594 Z M 220.746094 295.308594 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(28.627451%,74.117647%,56.470588%)",fillOpacity:1}}),M.createElement("path",{d:"M 299 342.921875 C 299 425.488281 232.066406 492.421875 149.5 492.421875 C 66.933594 492.421875 0 425.488281 0 342.921875 C 0 260.355469 66.933594 193.421875 149.5 193.421875 C 232.066406 193.421875 299 260.355469 299 342.921875 Z M 299 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(98.039216%,43.921569%,69.803922%)",fillOpacity:1}}),M.createElement("path",{d:"M 114.246094 197.613281 C 134.128906 256.835938 190.082031 299.5 256 299.5 C 268.144531 299.5 279.949219 298.039062 291.253906 295.308594 C 271.371094 236.085938 215.417969 193.421875 149.5 193.421875 C 137.355469 193.421875 125.550781 194.878906 114.246094 197.613281 Z M 114.246094 197.613281 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(68.627451%,48.235294%,77.647059%)",fillOpacity:1}}),M.createElement("path",{d:"M 213 342.921875 C 213 383.800781 229.414062 420.839844 256 447.828125 C 282.585938 420.839844 299 383.800781 299 342.921875 C 299 302.042969 282.585938 265.003906 256 238.015625 C 229.414062 265.003906 213 302.042969 213 342.921875 Z M 213 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(93.72549%,38.039216%,13.333333%)",fillOpacity:1}}),M.createElement("path",{d:"M 291.253906 295.320312 C 279.949219 298.046875 268.140625 299.5 256 299.5 C 243.859375 299.5 232.050781 298.046875 220.746094 295.320312 C 228.058594 273.542969 240.242188 254.015625 256 238.015625 C 271.757812 254.015625 283.941406 273.542969 291.253906 295.320312 Z M 291.253906 295.320312 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,100%,100%)",fillOpacity:1}})))}function h_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 365.445 365.445",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M146.7 162.775h-26.8a6.655 6.655 0 0 0-6.647 6.647v26.602a6.653 6.653 0 0 0 6.647 6.646h26.8a6.654 6.654 0 0 0 6.647-6.646v-26.602a6.655 6.655 0 0 0-6.647-6.647zM245.547 162.775h-26.801a6.653 6.653 0 0 0-6.646 6.647v26.602a6.652 6.652 0 0 0 6.646 6.646h26.801a6.654 6.654 0 0 0 6.646-6.646v-26.602a6.655 6.655 0 0 0-6.646-6.647z"})),M.createElement("path",{d:"M345.445 1.204H20c-11.046 0-20 8.954-20 20v323.037c0 11.045 8.954 20 20 20h325.445c11.045 0 20-8.955 20-20V21.204c0-11.045-8.953-20-20-20zM182.723 287.66c-57.955 0-104.937-46.981-104.937-104.937 0-57.957 46.982-104.938 104.937-104.938S287.66 124.767 287.66 182.723 240.678 287.66 182.723 287.66z",fill:"currentColor"}))}function z_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 45.659 45.659",...s},M.createElement("path",{fill:"currentColor",d:"M30.619 27.309V7.781C30.619 3.49 27.124 0 22.833 0c-4.29 0-7.785 3.491-7.785 7.78v19.528a10.722 10.722 0 0 0-3.05 7.522c0 5.972 4.857 10.828 10.829 10.828 5.97 0 10.834-4.856 10.834-10.828 0-2.918-1.141-5.572-3.042-7.521zM22.825 42.66c-4.316 0-7.824-3.512-7.824-7.828 0-2.527 1.174-4.779 3.077-6.211V16.237h3.372c.552 0 1-.47 1-1.022 0-.553-.448-1.021-1-1.021h-3.372v-2.466h3.372c.552 0 1-.434 1-.986a.989.989 0 0 0-1-.986h-3.372V7.78c0-2.636 2.119-4.78 4.754-4.78 2.637 0 4.756 2.144 4.756 4.781v20.871c1.903 1.434 3.047 3.671 3.047 6.18 0 4.316-3.494 7.828-7.81 7.828z"}),M.createElement("path",{fill:"currentColor",d:"M25.334 30.463V18.632h-5.002v11.831a4.973 4.973 0 0 0-2.537 4.369 5.038 5.038 0 0 0 5.038 5.046 5.034 5.034 0 0 0 5.034-5.046c0-1.866-.982-3.495-2.533-4.369z"}))}function w_e(s){return M.createElement("svg",{viewBox:"0 0 297 297",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:"m243.404,138.042c-5.775,0-10.458,4.683-10.458,10.458 0,46.564-37.883,84.446-84.446,84.446s-84.446-37.882-84.446-84.446 37.883-84.446 84.446-84.446c5.775,0 10.458-4.683 10.458-10.458s-4.683-10.457-10.458-10.457c-58.097,0-105.361,47.265-105.361,105.361s47.264,105.361 105.361,105.361 105.361-47.264 105.361-105.361c0-5.775-4.681-10.458-10.457-10.458z"}),M.createElement("path",{fill:"currentColor",d:"m142.963,121.344l-20.272-30.41c-3.203-4.807-9.695-6.104-14.502-2.9-4.805,3.202-6.104,9.695-2.9,14.502l20.279,30.422c-3.015,4.436-4.78,9.787-4.78,15.543 0,15.281 12.432,27.713 27.713,27.713 15.281,0 27.713-12.432 27.713-27.713 0-15.281-12.432-27.713-27.713-27.713-1.897-0.001-3.749,0.191-5.538,0.556zm12.335,27.156c0,3.748-3.05,6.798-6.798,6.798s-6.798-3.05-6.798-6.798 3.05-6.798 6.798-6.798 6.798,3.05 6.798,6.798z"}),M.createElement("path",{fill:"currentColor",d:"M148.5,0C66.617,0,0,66.617,0,148.5S66.617,297,148.5,297S297,230.383,297,148.5S230.383,0,148.5,0z M158.958,275.653 v-6.366c0-5.775-4.683-10.458-10.458-10.458c-5.775,0-10.458,4.683-10.458,10.458v6.366 c-62.027-5.056-111.64-54.668-116.695-116.695h6.366c5.775,0,10.458-4.683,10.458-10.458s-4.683-10.458-10.458-10.458h-6.366 c5.056-62.027,54.668-111.64,116.695-116.695v6.366c0,5.775,4.683,10.458,10.458,10.458c5.775,0,10.458-4.683,10.458-10.458v-6.366 c62.027,5.056,111.64,54.668,116.695,116.695h-6.366c-5.775,0-10.458,4.683-10.458,10.458s4.683,10.458,10.458,10.458h6.366 C270.598,220.985,220.985,270.598,158.958,275.653z"})))}function C_e(s){return M.createElement("svg",{viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M228.5 205.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H228.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M232.826 280.905c-.339 3.356-18.813-.782-20.919-1.06l-45.073-5.94-45.074-5.94-14.507-1.912c-1.456-.192-6.201-.055-6.412-2.147-.621-6.157 0-12.699 0-18.878v-43.5-82.076-5.13c0-2.551 5.184-1.015 6.412-.853l35.438 4.67 83.723 11.035c1.457.192 6.201.055 6.412 2.147.169 1.673 0 3.451 0 5.13v144.454c0 6.448 10 6.448 10 0V136.451v-5.13c0-7.619-6.137-10.793-12.673-11.655l-28.531-3.76-88.411-11.652-9.897-1.304c-6.555-.864-12.473 4.9-12.473 11.38v144.832c0 2.023-.071 4.04.132 6.053.717 7.111 6.606 9.563 12.759 10.374l76.827 10.125 39.896 5.259 9.697 1.278c7.063.931 12.011-4.778 12.673-11.346.648-6.415-9.358-6.352-9.999 0z",fill:"currentColor"}))}function w4(s){return M.createElement("svg",{width:361,height:361,viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9zM265.732 265.178c.584 2.887-1.629 5.228-4.942 5.228H103.457c-3.313 0-6.474-2.341-7.058-5.228L75.24 130.633c-.584-2.887 1.628-5.228 4.942-5.228h157.333c3.313 0 6.474 2.34 7.058 5.228l21.159 134.545z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M247.194 199.667h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5h-6.639c-2.726 0-5 2.274-5 5s2.275 5 5 5z",fill:"currentColor"}))}const I_e={"type-Device type":"Device type","type-airCondition":"Air conditioner","type-blind":"Blinds","type-blindButtons":"Blind controlled by buttons","type-button":"Button","type-buttonSensor":"Button with feedback","type-camera":"Camera","type-chart":"Chart","type-cie":"CIE color light","type-ct":"Color temperature","type-dimmer":"Dimmer","type-door":"Door","type-fireAlarm":"Fire alarm","type-floodAlarm":"Flood alarm","type-gate":"Gate","type-hue":"HUE light","type-humidity":"Humidity","type-illuminance":"Illuminance","type-image":"Image","type-info":"Information","type-instance":"Instance","type-light":"Light","type-location":"Position","type-locationOne":"Position as one state","type-lock":"Lock","type-media":"Media-player","type-motion":"Motion sensor","type-rgb":"RGB light","type-rgbSingle":"R,G,B light - single states","type-rgbwSingle":"R,G,B,W light - single states","type-slider":"Slider","type-socket":"Socket","type-temperature":"Temperature","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Vacuum cleaner","type-valve":"Valve","type-volume":"Volume","type-volumeGroup":"Volume group","type-warning":"Warning","type-weatherCurrent":"Current weather","type-weatherForecast":"Weather forecast","type-window":"Window sensor","type-windowTilt":"Window tilt sensor"},p_e={"type-Device type":"Gerätetyp","type-airCondition":"Klimaanlage","type-blind":"Jalousien","type-blindButtons":"Jalousie über Tasten gesteuert","type-button":"Taste","type-buttonSensor":"Taste mit Rückmeldung","type-camera":"Kamera","type-chart":"Diagramm","type-cie":"CIE Farblicht","type-ct":"Farbtemperatur","type-dimmer":"Dimmer","type-door":"Türsensor","type-fireAlarm":"Feueralarm","type-floodAlarm":"Wasseralarm","type-gate":"Tor-Steuerung","type-hue":"HUE-Licht","type-humidity":"Feuchtigkeit","type-illuminance":"Beleuchtungsstärke","type-image":"Bild","type-info":"Information","type-instance":"Instanz","type-light":"Licht","type-location":"Position","type-locationOne":"Position als ein Zustand","type-lock":"Schloss","type-media":"Mediaplayer","type-motion":"Bewegungssensor","type-rgb":"RGB-Licht","type-rgbSingle":"R,G,B-Licht Einzelwerte","type-rgbwSingle":"R,G,B,W-Licht Einzelwerte","type-slider":"Schieberegler","type-socket":"Steckdose","type-temperature":"Temperatur","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Staubsauger","type-valve":"Ventil","type-volume":"Lautstärke","type-volumeGroup":"Lautstärke-Gruppe","type-warning":"Warnung","type-weatherCurrent":"Aktuelle Wetterlage","type-weatherForecast":"Wettervorhersage","type-window":"Fenstersensor","type-windowTilt":"Fensterkippung-Sensor"},A_e={"type-Device type":"Тип устройства","type-airCondition":"Кондиционер","type-blind":"Рольставни/Жалюзи","type-blindButtons":"Жалюзи управляющиеся кнопками","type-button":"Кнопка","type-buttonSensor":"Кнопка с обратной связью","type-camera":"Камера","type-chart":"Диаграмма","type-cie":"CIE свет","type-ct":"Цветовая температура","type-dimmer":"Диммер","type-door":"Датчик положения двери","type-fireAlarm":"Датчик дыма","type-floodAlarm":"Датчик затопления","type-gate":"Ворота","type-hue":"HUE свет","type-humidity":"Влажность","type-illuminance":"Освещенность","type-image":"Изображение","type-info":"Информация","type-instance":"Инстанция","type-light":"Свет","type-location":"Местоположение","type-locationOne":"Позиция в одном состоянии","type-lock":"Замок","type-media":"Медиа-плейер","type-motion":"Датчик движения","type-rgb":"RGB свет","type-rgbSingle":"R,G,B как отдельные значение","type-rgbwSingle":"R,G,B,W как отдельные значение","type-slider":"Ползунок","type-socket":"Розетка","type-temperature":"Температура","type-thermostat":"Термостат","type-url":"URL","type-vacuumCleaner":"Пылесос","type-valve":"Вентиль","type-volume":"Громкость","type-volumeGroup":"Группа громкости","type-warning":"Предупреждение","type-weatherCurrent":"Актуальная погода","type-weatherForecast":"Прогноз погоды","type-window":"Датчик открытия окна","type-windowTilt":"Датчик наклона окна"},m_e={"type-Device type":"Tipo de dispositivo","type-airCondition":"Ar condicionado","type-blind":"persianas","type-blindButtons":"Persiana controlada por botões","type-button":"botão","type-buttonSensor":"Sensor de botão","type-camera":"câmera","type-chart":"Gráfico","type-cie":"Luz colorida CIE","type-ct":"Temperatura de cor","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"alarme de incêndio","type-floodAlarm":"alarme de inundação","type-gate":"portão","type-hue":"Luz HUE","type-humidity":"umidade","type-illuminance":"Iluminância","type-image":"imagem","type-info":"informação","type-instance":"exemplo","type-light":"luz","type-location":"localização","type-locationOne":"Posição como um estado","type-lock":"trancar","type-media":"mídia","type-motion":"movimento","type-rgb":"Luz RGB","type-rgbSingle":"Luz RGB única","type-rgbwSingle":"RGBW como valor único","type-slider":"controle deslizante","type-socket":"soquete","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirador de pó","type-valve":"válvula","type-volume":"volume","type-volumeGroup":"grupo de volume","type-warning":"aviso","type-weatherCurrent":"clima atual","type-weatherForecast":"previsão do tempo","type-window":"janela","type-windowTilt":"inclinação da janela"},O_e={"type-Device type":"Typ urządzenia","type-airCondition":"Klimatyzator","type-blind":"żaluzje","type-blindButtons":"Roleta sterowana przyciskami","type-button":"przycisk","type-buttonSensor":"Czujnik przycisku","type-camera":"kamera","type-chart":"Wykres","type-cie":"Światło kolorowe CIE","type-ct":"Temperatura barwowa","type-dimmer":"opornik","type-door":"drzwi","type-fireAlarm":"alarm pożarowy","type-floodAlarm":"alarm przeciwpowodziowy","type-gate":"brama","type-hue":"Światło HUE","type-humidity":"wilgotność","type-illuminance":"Natężenie oświetlenia","type-image":"obraz","type-info":"Informacje","type-instance":"przykład","type-light":"światło","type-location":"lokalizacja","type-locationOne":"Pozycja jako państwa","type-lock":"zamek","type-media":"głoska bezdźwięczna","type-motion":"ruch","type-rgb":"Światło RGB","type-rgbSingle":"Pojedyncze światło RGB","type-rgbwSingle":"RGBW jako pojedyncza wartość","type-slider":"suwak","type-socket":"gniazdo","type-temperature":"temperatura","type-thermostat":"termostat","type-url":"Adres URL","type-vacuumCleaner":"Odkurzacz","type-valve":"zawór","type-volume":"tom","type-volumeGroup":"grupa woluminów","type-warning":"ostrzeżenie","type-weatherCurrent":"aktualna pogoda","type-weatherForecast":"prognoza pogody","type-window":"okno","type-windowTilt":"pochylenie okna"},E_e={"type-Device type":"Type d'appareil","type-airCondition":"Climatiseur","type-blind":"stores","type-blindButtons":"Store commandé par boutons","type-button":"bouton","type-buttonSensor":"Capteur de bouton","type-camera":"caméra","type-chart":"Graphique","type-cie":"lumière colorée CIE","type-ct":"Température de couleur","type-dimmer":"variateur","type-door":"porte","type-fireAlarm":"alarme incendie","type-floodAlarm":"alarme d'inondation","type-gate":"grille","type-hue":"Lumière HUE","type-humidity":"humidité","type-illuminance":"Éclairement","type-image":"image","type-info":"informations","type-instance":"exemple","type-light":"lumière","type-location":"emplacement","type-locationOne":"Position en tant qu'État","type-lock":"verrouillage","type-media":"médias","type-motion":"mouvement","type-rgb":"lumière RVB","type-rgbSingle":"Lumière RVB simple","type-rgbwSingle":"RGBW comme valeur unique","type-slider":"curseur","type-socket":"douille","type-temperature":"température","type-thermostat":"thermostat","type-url":"URL","type-vacuumCleaner":"Aspirateur","type-valve":"soupape","type-volume":"volume","type-volumeGroup":"groupe de volumes","type-warning":"avertissement","type-weatherCurrent":"météo actuelle","type-weatherForecast":"prévisions météorologiques","type-window":"fenêtre","type-windowTilt":"inclinaison de la fenêtre"},f_e={"type-Device type":"Tipo di dispositivo","type-airCondition":"Condizionatore d'aria","type-blind":"tende","type-blindButtons":"Tenda controllata da pulsanti","type-button":"pulsante","type-buttonSensor":"Sensore del pulsante","type-camera":"telecamera","type-chart":"Grafico","type-cie":"Luce colorata CIE","type-ct":"Temperatura del colore","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"allarme antincendio","type-floodAlarm":"allarme allagamento","type-gate":"cancello","type-hue":"Luce HUE","type-humidity":"umidità","type-illuminance":"Illuminamento","type-image":"immagine","type-info":"informazioni","type-instance":"esempio","type-light":"leggero","type-location":"posizione","type-locationOne":"Posizione come stato","type-lock":"serratura","type-media":"media","type-motion":"movimento","type-rgb":"luce RGB","type-rgbSingle":"Luce RGB singola","type-rgbwSingle":"RGBW come valore singolo","type-slider":"cursore","type-socket":"PRESA","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirapolvere","type-valve":"valvola","type-volume":"volume","type-volumeGroup":"gruppo di volumi","type-warning":"avvertimento","type-weatherCurrent":"meteo attuale","type-weatherForecast":"previsioni del tempo","type-window":"finestra","type-windowTilt":"inclinazione della finestra"},x_e={"type-Device type":"Apparaattype","type-airCondition":"Airconditioner","type-blind":"jaloezieën","type-blindButtons":"Jaloezie bediend door knoppen","type-button":"knop","type-buttonSensor":"Knopsensor","type-camera":"camera","type-chart":"Grafiek","type-cie":"CIE-kleurenlicht","type-ct":"Kleurtemperatuur","type-dimmer":"dimmer","type-door":"deur","type-fireAlarm":"brandalarm","type-floodAlarm":"overstromingsalarm","type-gate":"hek","type-hue":"HUE-licht","type-humidity":"vochtigheid","type-illuminance":"Verlichtingssterkte","type-image":"afbeelding","type-info":"informatie","type-instance":"aanleg","type-light":"licht","type-location":"locatie","type-locationOne":"Positie als staat","type-lock":"slot","type-media":"media","type-motion":"beweging","type-rgb":"RGB-licht","type-rgbSingle":"RGB-licht enkel","type-rgbwSingle":"RGBW als enkele waarde","type-slider":"schuifregelaar","type-socket":"stopcontact","type-temperature":"temperatuur","type-thermostat":"thermostaat","type-url":"URL","type-vacuumCleaner":"Stofzuiger","type-valve":"ventiel","type-volume":"volume","type-volumeGroup":"volumegroep","type-warning":"waarschuwing","type-weatherCurrent":"huidige weersomstandigheden","type-weatherForecast":"weersvoorspelling","type-window":"raam","type-windowTilt":"raamkanteling"},__e={"type-Device type":"Тип пристрою","type-airCondition":"Кондиціонер","type-blind":"жалюзі","type-blindButtons":"Штора керується кнопками","type-button":"кнопку","type-buttonSensor":"Датчик кнопки","type-camera":"камера","type-chart":"Діаграма","type-cie":"Кольорове світло CIE","type-ct":"Колірна температура","type-dimmer":"диммер","type-door":"двері","type-fireAlarm":"пожежна сигналізація","type-floodAlarm":"сигналізація про повінь","type-gate":"ворота","type-hue":"світло HUE","type-humidity":"вологість","type-illuminance":"Освітленість","type-image":"зображення","type-info":"інформація","type-instance":"екземпляр","type-light":"світло","type-location":"розташування","type-locationOne":"Позиція як держави","type-lock":"замок","type-media":"ЗМІ","type-motion":"руху","type-rgb":"RGB світло","type-rgbSingle":"Одиночне світло RGB","type-rgbwSingle":"RGBW як одне значення","type-slider":"повзунок","type-socket":"гніздо","type-temperature":"температура","type-thermostat":"термостат","type-url":"URL","type-vacuumCleaner":"Пилосос","type-valve":"клапан","type-volume":"обсяг","type-volumeGroup":"група обсягів","type-warning":"УВАГА","type-weatherCurrent":"поточна погода","type-weatherForecast":"прогноз погоди","type-window":"вікно","type-windowTilt":"нахил вікна"},S_e={"type-Device type":"设备类型","type-airCondition":"空调","type-blind":"百叶窗","type-blindButtons":"按钮控制百叶窗","type-button":"按钮","type-buttonSensor":"按钮传感器","type-camera":"相机","type-chart":"图表","type-cie":"CIE色光","type-ct":"色温","type-dimmer":"调光器","type-door":"门","type-fireAlarm":"火灾报警","type-floodAlarm":"洪水警报","type-gate":"门","type-hue":"色调灯","type-humidity":"湿度","type-illuminance":"照度","type-image":"图像","type-info":"信息","type-instance":"实例","type-light":"光","type-location":"地点","type-locationOne":"作为一个国家的地位","type-lock":"锁","type-media":"媒体","type-motion":"运动","type-rgb":"RGB灯","type-rgbSingle":"RGB灯单","type-rgbwSingle":"RGBW 作为单一值","type-slider":"滑块","type-socket":"插座","type-temperature":"温度","type-thermostat":"恒温器","type-url":"网址","type-vacuumCleaner":"吸尘器","type-valve":"阀门","type-volume":"体积","type-volumeGroup":"卷组","type-warning":"警告","type-weatherCurrent":"当前天气","type-weatherForecast":"天气预报","type-window":"窗户","type-windowTilt":"窗户倾斜"};function C4(){d.extendTranslations({en:I_e,de:p_e,ru:A_e,pt:m_e,pl:O_e,fr:E_e,it:f_e,nl:x_e,uk:__e,"zh-cn":S_e})}const Sl={[B.Types.airCondition]:mL,[B.Types.blind]:_l,[B.Types.blindButtons]:_l,[B.Types.button]:d_e,[B.Types.buttonSensor]:l_e,[B.Types.camera]:r_e,[B.Types.chart]:e_e,[B.Types.image]:AL,[B.Types.dimmer]:pL,[B.Types.door]:j_e,[B.Types.fireAlarm]:fl,"sensor.alarm.fire":fl,[B.Types.floodAlarm]:xl,"sensor.alarm.flood":xl,[B.Types.gate]:y_e,[B.Types.humidity]:T_e,[B.Types.illuminance]:N_e,[B.Types.info]:IL,[B.Types.light]:CL,[B.Types.lock]:wL,[B.Types.location]:zL,[B.Types.locationOne]:hL,[B.Types.media]:dL,[B.Types.motion]:D_e,[B.Types.ct]:UM,[B.Types.rgb]:Xo,[B.Types.rgbSingle]:Xo,[B.Types.rgbwSingle]:L_e,[B.Types.hue]:UM,[B.Types.cie]:Xo,[B.Types.slider]:DL,[B.Types.socket]:h_e,[B.Types.temperature]:z_e,[B.Types.thermostat]:w_e,[B.Types.vacuumCleaner]:g_e,[B.Types.volume]:TL,[B.Types.volumeGroup]:yL,[B.Types.window]:C_e,[B.Types.windowTilt]:w4,[B.Types.weatherCurrent]:Ol,[B.Types.weatherForecast]:Ol,[B.Types.warning]:QM,[B.Types.unknown]:jL,[B.Types.instance]:gL,invalid:QM,hub3:LL,node:NL,hub5:lL,controller:uL},dr={width:32,height:32};function k_e(s){const[e,t]=M.useState(!1);if(x.useEffect(()=>{s.title&&!e&&(C4(),t(!0))},[s.title]),!e&&s.title)return M.createElement(j.Box,{style:{...dr,...s.style||void 0},className:s.className,sx:s.sx});const i=s.type||(s.src?Object.keys(Sl).find(n=>s.src===n):void 0);if(!i&&s.src)return M.createElement(me,{style:dr,...s,title:s.title===!0?void 0:s.title,src:s.src});const r=i&&Sl[i];if(!r)return i?M.createElement("span",{style:{...dr,...s.style||void 0}},i[0].toUpperCase()):null;const o=M.createElement(r,{style:{...dr,...s.style||void 0},onClick:s.onClick,className:s.className,sx:s.sx});return s.title?M.createElement(j.Tooltip,{slotProps:{popper:{sx:{pointerEvents:"none"}}},title:s.title===!0?d.t(`type-${i}`):s.title},M.createElement("div",{style:{display:"flex"}},o)):o}const Et={itemChildrenWrapper:{display:"flex",width:"100%",justifyContent:"space-between"},type:{marginTop:10},selectIcon:{paddingRight:8,verticalAlign:"middle",width:20,height:20},selectText:{verticalAlign:"middle"},iconWrapper:{display:"flex",alignItems:"center"},iconStyle:{width:16,height:16,margin:"0 3px"},emptyIcon:{width:16,height:16,margin:"0 3px"}};function H3e(s){const[e,t]=M.useState({}),[i,r]=M.useState([]);return x.useEffect(()=>{const o={};Object.keys(B.Types).filter(a=>{var c,l;return(!s.supportedDevices||((c=s.supportedDevices)==null?void 0:c.includes(a)))&&!((l=s.unsupportedDevices)!=null&&l.includes(a))}).forEach(a=>o[a]=d.t(`type-${B.Types[a]}`));const n=Object.keys(o);n.sort((a,c)=>o[a]===o[c]?0:o[a].localeCompare(o[c],"de")),C4(),r(n),t(o)},[s.supportedDevices,s.unsupportedDevices]),i?M.createElement(j.FormControl,{style:{...Et.type,...s.style},sx:s.sx,variant:"standard",error:!!s.error},M.createElement(j.InputLabel,null,s.label||d.t("type-Device type")),M.createElement(j.Select,{variant:"standard",disabled:!!s.disabled,value:s.value,onChange:o=>s.onChange(o.target.value)},i.map(o=>{var n;return M.createElement(j.MenuItem,{key:B.Types[o],value:B.Types[o]},M.createElement("div",{style:Et.itemChildrenWrapper},M.createElement("div",null,M.createElement(k_e,{type:B.Types[o],style:{...Et.selectIcon,color:s.themeType==="dark"?"#FFFFFF":"#000"}}),M.createElement("span",{style:Et.selectText},e[o])),(n=s.showApplications)!=null&&n.TYPE_OPTIONS[o]?M.createElement("div",{style:Et.iconWrapper},Object.keys(s.showApplications.TYPE_OPTIONS[o]).map(a=>s.showApplications.TYPE_OPTIONS[o][a]?M.createElement(me,{key:a,style:Et.iconStyle,src:s.showApplications.ICONS_TYPE[a]}):M.createElement("div",{key:a,style:Et.emptyIcon}))):null))}))):M.createElement(j.Box,{style:{...Et.type,...s.style},sx:s.sx})}function Y_e(s){return Z({attr:{version:"1",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"circle",attr:{fill:"#B2EBF2",cx:"32",cy:"24",r:"9"},child:[]},{tag:"path",attr:{fill:"#4DD0E1",d:"M32,12c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C44,17.4,38.6,12,32,12z M32,32 c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S36.4,32,32,32z"},child:[]},{tag:"g",attr:{fill:"#3F51B5"},child:[{tag:"polygon",attr:{points:"25.4,22 19.8,5.1 13.6,27.7 11.4,22 4,22 4,26 8.6,26 14.4,40.3 20.2,18.9 22.6,26 30,26 30,22"},child:[]},{tag:"circle",attr:{cx:"32",cy:"24",r:"4"},child:[]}]}]})(s)}function v_e(s){return Z({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M4.428 2.727l3.335 3.335c-.486.07-.903.276-1.32.624L.886 12.383c-1.181 1.18-1.181 3.194 0 4.375a2.41 2.41 0 0 0 1.598.834l17.088 3.681-3.335-3.333c.486-.07.903-.278 1.32-.626l5.557-5.695c1.181-1.181 1.181-3.196 0-4.377a2.411 2.411 0 0 0-1.598-.833zM11.653 6.2c.694 0 1.25.486 1.25 1.18 0 .695-.486 1.251-1.181 1.251-.695 0-1.25-.485-1.25-1.18s.555-1.251 1.18-1.251zm1.51 3.792c.049-.006.088.046.088.098-.139.694-.695 1.181-1.39 1.181-.694 0-1.32-.487-1.46-1.112 0 0 .002-.07.071 0 .487.278.972.348 1.32.278.346 0 .833-.07 1.32-.416a.092.092 0 0 1 .05-.029zm.723 2.511c.058.013.06.106.06.158-.209.903-.973 1.666-1.946 1.666a2.167 2.167 0 0 1-2.084-1.528c-.07-.07 0-.138.138-.138.695.347 1.39.416 1.877.416.486 0 1.18-.14 1.875-.556.035-.017.06-.022.08-.018zm.597 3.018c.049-.013.087.09.087.195-.278 1.181-1.25 2.085-2.5 2.155-1.251 0-2.293-.835-2.57-1.946 0-.139.068-.278.207-.209.834.486 1.737.556 2.362.556s1.529-.208 2.362-.694c.018-.035.036-.053.052-.057z"},child:[]}]})(s)}function b_e(s){return Z({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13 5l.855 3.42 3.389-.971 1.501 2.6-2.535 2.449 2.535 2.451-1.5 2.6-3.39-.971-.855 3.422h-3l-.855-3.422-3.39.971-1.501-2.6 2.535-2.451-2.534-2.449 1.5-2.6 3.39.971.855-3.42h3m0-2h-3c-.918 0-1.718.625-1.939 1.516l-.354 1.412-1.4-.4c-.184-.053-.369-.078-.552-.078-.7 0-1.368.37-1.731 1l-1.5 2.6c-.459.796-.317 1.802.342 2.438l1.047 1.011-1.048 1.015c-.66.637-.802 1.643-.343 2.438l1.502 2.6c.363.631 1.031 1 1.731 1 .183 0 .368-.025.552-.076l1.399-.401.354 1.415c.222.885 1.022 1.51 1.94 1.51h3c.918 0 1.718-.625 1.939-1.516l.354-1.414 1.399.4c.184.053.369.077.552.077.7 0 1.368-.37 1.731-1l1.5-2.6c.459-.796.317-1.8-.342-2.438l-1.047-1.013 1.047-1.013c.66-.637.801-1.644.342-2.438l-1.5-2.6c-.365-.631-1.031-1-1.732-1-.184 0-.368.025-.551.076l-1.4.401-.354-1.413c-.22-.884-1.02-1.509-1.938-1.509zM11.5 10.5c1.104 0 2 .895 2 2 0 1.104-.896 2-2 2s-2-.896-2-2c0-1.105.896-2 2-2m0-1c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3z"},child:[]}]})(s)}function Q_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.707 17.707 13.414 12 7.707 6.293 6.293 7.707 10.586 12l-4.293 4.293zM15 6h2v12h-2z"},child:[]}]})(s)}function U_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M376 211H256V16L136 301h120v195z"},child:[]}]})(s)}function $_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32l-64 96 80 16-16 80 64-96-80-16 16-80zm-96 217c-1.9 0-9.8 3-15.8 6.7-2.8 1.7-5.3 3.5-7.2 4.8v119c1.9 1.3 4.4 3.1 7.2 4.8 6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 5.9-3.7 10.6-7.3 10.6-7.3l2.5-2H201V265h-12.1l-2.5-2s-4.7-3.6-10.6-7.3c-6-3.7-13.9-6.7-15.8-6.7zm192 0c-1.9 0-9.8 3-15.8 6.7-5.9 3.7-10.6 7.3-10.6 7.3l-2.5 2H311v110h12.1l2.5 2s4.7 3.6 10.6 7.3c6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 2.8-1.7 5.3-3.5 7.2-4.8v-119c-1.9-1.3-4.4-3.1-7.2-4.8-6-3.7-13.9-6.7-15.8-6.7zm-133 16v110h14V265h-14zm32 0v110h42V265h-42zM95.5 311c-18.8 0-36.6 9.2-49.94 22.7C32.22 347.1 23 365 23 384v106h18V384c0-13 6.78-27.1 17.32-37.7C68.85 335.8 82.8 329 95.5 329H119v-18H95.5zm297.5 0v18h22.9c13.1 0 27.1 6.8 37.7 17.4C464.2 357 471 371 471 384v106h18V384c0-19-9.2-37-22.7-50.4-13.4-13.4-31.4-22.6-50.4-22.6H393z"},child:[]}]})(s)}function P_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M20.127 52.803v58.986L250.46 245.153c26.367-28.823 70.087-36.533 105.313-16.195 35.29 20.374 50.465 62.207 38.567 99.503l101.648 58.855-64.728-74.65 35.638-37.352-57.27-7.687 84.72-86.92-125.71 33.186 12.995-120.208-66.578 96.363-27.448-80.593-16.353 88.77L20.127 52.803zm0 105.12l-.008.018.007.005v-.02zm0 .022l-.002 87.582 155.344 89.95-89.94 33.287h135.493l-63.658 99.87 116.22-70.083 15.77 85.852 38.543-80.01 63.66 87.018-5.853-87.047 90.54 17.268-102.4-59.198c-26.546 26.964-68.89 33.744-103.183 13.945-34.322-19.816-49.62-59.928-39.49-96.424L20.127 157.945zm316.6 119.442c-.938-.003-1.874.027-2.805.092-12.42.86-24.164 7.707-30.9 19.375-10.78 18.67-4.455 42.27 14.214 53.047 18.67 10.78 42.27 4.455 53.047-14.214 10.78-18.67 4.454-42.27-14.215-53.047-6.125-3.536-12.78-5.23-19.34-5.253z"},child:[]}]})(s)}function W_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M33.125 19.406L135.5 128.22l81-23.157 18.72-5.344-7.564 17.936-46.125 109.78 134.282-70 26.157-13.655L328.436 170 256.5 309.25l91.25-57.125 22.97-14.375-9.22 25.47-34.625 95.624 71-36.375 21.188-10.845L410.906 334l-33.937 93.063 45.124-6.688 4.53-.656 3.313 3.155 64.313 61.47-30.5-80.5 23.313-46.908-72.5 39.532 51.062-141.158-91.188 47.47 72.344-142.813-128.217 82.81L421.875 70.063 239.03 168.69l30.44-99.563-103.845 25.25-132.5-74.97zM18.155 30.78l77.876 108.25-31.124 75.532 94.125-46.78-98.905 166.812 190.25-99.656-101.03 185.406 140.25-79.063-46.94 102.22 106.5-53-45.655 92.28 86.5-14.467 93.47 31.562-63.158-60.344-56.125 8.314-15.53 2.312 5.374-14.75 31.158-85.437-70.907 36.31-21.124 10.814 8.094-22.313 33.47-92.436-97.22 60.875-28.938 18.092L224.22 331l74.06-143.344-131.06 68.313-22.97 12 10.03-23.908 48.626-115.687-67.75 19.375-5.5 1.563-3.875-4.157L18.157 30.78z"},child:[]}]})(s)}function B_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M288.3 13.4c-12.3-.01-23 6.49-27.3 15.31l-2.9 5.95-6.6-1.01c-5.5-.85-11.3-1.32-17.1-1.32-18.8 0-35.7 4.5-47.3 11.14-11.5 6.64-16.9 14.59-16.9 22 0 7.42 5.4 15.37 16.9 22 11.6 6.64 28.5 11.13 47.3 11.13 7.5-.02 14.9-.74 21.8-2.13l6.3-1.23 3.2 5.46c5.6 9.2 23.7 18.2 44.7 18.2 13.9 0 26.4-3.6 34.8-8.8 8.4-5.2 12.2-11.23 12.2-16.9 0-5.09-3-10.48-10-15.44-6.9-4.97-17.6-8.87-30-9.95l-18.3-1.59 12.5-13.49c4.1-4.41 6.1-9.6 6.1-14.87 0-12.88-12.4-24.46-29.4-24.46zM152.2 65.46C84.8 102.3 39 173.9 39 256c0 32.1 7 62.6 19.54 90 5.95-7.9 10.48-13.4 12.67-16C62.05 307.2 57 282.2 57 256c0-74 40.27-138.5 100.1-172.78-3.1-5.39-4.9-11.34-4.9-17.74v-.02zm210.7 1.75c7.5 6.93 12.5 15.9 12.5 25.99 0 1.14-.1 2.27-.2 3.38C423.7 132.9 455 190.7 455 256c0 23.7-4.2 46.5-11.8 67.6l18.3 2.2c7.4-21.9 11.5-45.4 11.5-69.8 0-80.8-44.4-151.5-110.1-188.79zm58.6 270.49c-11.1.2-23 1.1-35.9 3.1l-.5.1-.5.1c-25.8 7.3-37.1 15.2-46.4 24.7l-2.2 2.2-.3 3.1c-3.4 29.6-5.8 60 0 91.8l1.3 6.8 6.8.6c30.6 2.6 58.7 1.4 86.2 0l1-.1.9-.2c18.5-5.2 34.4-12.8 46.4-24.6l1.7-1.6.6-2.2c10-33.4 3.4-63.8.4-92.7l-.8-7.4-7.3-.7c-16.2-1.5-32.8-3.2-51.4-3zM79.62 348.2c-4.94 6.1-11.43 14.5-18.58 25.6-12.29 18.9-22.53 42.4-20.51 54.9 1.43 8.8 6.97 19.6 14.51 27.6 7.54 7.9 16.69 12.8 24.58 12.8 7.87 0 17.03-4.9 24.58-12.8 7.5-8 13.1-18.8 14.5-27.6 2-12.5-8.2-36-20.5-54.9-7.15-11-13.64-19.5-18.58-25.6zM427 355.7c1.7 0 3.3 0 5 .1 5.4.1 10.7.4 16 .8-5.9 3.4-12.1 6.8-19.5 9.9l-2.4.2c-19.5 1.4-37.7.3-55.4-2 4.7-2 10.5-4 18.3-6.2 13.8-2.2 26.3-2.9 38-2.8zm38 11.6c2.8 22.9 5 44.5-1 66.6-7 6.3-16 11.4-27 15.4 3-22.5 2-44.8-.5-66.6 11.3-5 20.2-10.2 28.5-15.4zm-112.2 13.1c20.7 3.2 42.3 5.4 65.8 4.5 2.5 23 3.5 45.6-.4 67.8-21.5 1-43.1 1.5-65.8-.1-3.5-24-2.2-47.9.4-72.2zm-216.4 34.7c.9 5.5 1 11 .1 16.4-.3 1.6-.6 3.3-1 4.9C170 459.5 211.4 473 256 473c21.6 0 42.5-3.2 62.3-9.1l-2-18.2c-19 6-39.3 9.3-60.3 9.3-44.9 0-86.3-14.8-119.6-39.9z"},child:[]}]})(s)}function kl(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M140 29.92c-31.4 0-59.89 3.25-79.89 8.25-9.9 2.5-17.8 5.51-22.4 8.25-3.2 1.87-4.1 3.15-4.5 3.58.4.43 1.3 1.71 4.5 3.58 4.6 2.74 12.5 5.75 22.4 8.25 20 5 48.49 8.25 79.89 8.25h5.7c5.3-2 11.1-3.78 17.6-5.4 20.3-5.08 46.5-8.42 75.8-9.36 1.2-.57 2.3-1.14 3.2-1.7 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zm232 0c-31.4 0-59.9 3.25-79.8 8.25-10 2.5-17.9 5.51-22.5 8.25-3.1 1.87-4.1 3.15-4.5 3.58.4.43 1.4 1.71 4.5 3.58.9.56 2 1.13 3.2 1.7 29.3.94 55.5 4.28 75.8 9.36 6.5 1.62 12.3 3.4 17.6 5.4h5.7c31.4 0 59.9-3.25 79.8-8.25 10-2.5 17.9-5.51 22.5-8.25 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zM33.01 71.44V369.9c0 4.3 1.8 8 6.8 12.3 5 4.3 13.1 8.5 23.3 11.9 15.3 5.1 35 8.5 55.89 9.8V278.3l-16.5 28.6-7.79-4.5c-27.4-15.9-44.3-45.3-44.4-77v-9h52.59c-.6 2.6-.9 5.3-.9 8.1 0 13.1 6.8 24.8 17 31.7v-63.4c-1.9 1.3-3.6 2.7-5.2 4.2l-25.99-45.1 7.8-4.5c7.49-4.2 15.29-7.3 23.39-9.3V87.61c-24.19-1.08-45.99-4.01-63.19-8.32-8.9-2.21-16.5-4.76-22.8-7.85zm445.99 0c-6.3 3.09-14 5.63-22.8 7.84-17.2 4.31-39 7.24-63.2 8.32v50.6c8.1 2 16 5.1 23.4 9.3l7.7 4.5-4.4 7.8-21.5 37.2c-1.6-1.5-3.3-2.9-5.2-4.2v63.4c10.2-6.9 17-18.6 17-31.7 0-2.8-.3-5.5-.9-8.1h50.8v9c0 31.8-17 61.1-44.4 77l-7.8 4.5-14.7-25.5v122.5c20.9-1.3 40.7-4.7 55.9-9.8 10.2-3.4 18.3-7.6 23.3-11.9 5-4.3 6.8-8 6.8-12.3zM256 73c-34.7 0-66.2 3.57-88.3 9.1-11.1 2.77-19.8 6.09-25.1 9.19-4.3 2.58-5.3 4.42-5.5 4.71.2.29 1.2 2.12 5.5 4.7 5.3 3.1 14 6.4 25.1 9.2 22.1 5.5 53.6 9.1 88.3 9.1 34.7 0 66.2-3.6 88.3-9.1 11.1-2.8 19.8-6.1 25.1-9.2 4.3-2.58 5.3-4.41 5.5-4.7-.2-.29-1.2-2.13-5.5-4.71-5.3-3.1-14-6.42-25.1-9.19-22.1-5.53-53.6-9.1-88.3-9.1zm118.9 23c.1.1.1.1.1 0s0-.1-.1 0zm-237.8 0c-.1-.1-.1-.1-.1 0s0 .1.1 0zm-.1 22.1V448c0 5 2.2 9.3 7.9 14.2 5.6 4.8 14.7 9.5 25.9 13.3 22.6 7.5 54 11.5 85.2 11.5 31.2 0 62.6-4 85.2-11.5 11.2-3.8 20.3-8.5 25.9-13.3 5.7-4.9 7.9-9.2 7.9-14.2V118.1c-7.2 3.7-16 6.6-26.3 9.3-24.2 6-56.7 9.6-92.7 9.6s-68.5-3.6-92.7-9.6c-10.3-2.7-19.1-5.6-26.3-9.3zM256 191c16.8 0 33.5 4.4 48.5 13l7.8 4.5-4.5 7.8-24.1 41.6c-7.3-6.7-17-10.9-27.7-10.9s-20.4 4.2-27.7 10.9l-28.6-49.4 7.8-4.5c15-8.7 31.7-13 48.5-13zm0 74c12.8 0 23 10.2 23 23s-10.2 23-23 23-23-10.2-23-23 10.2-23 23-23zm-98 15h57.8c-.5 2.6-.8 5.3-.8 8 0 18.1 12 33.7 28.5 39l-29.2 50.5-7.8-4.5c-30-17.3-48.5-49.4-48.5-84zm138.2 0H352v9c0 34.6-18.5 66.7-48.5 84l-7.8 4.5-28.8-50c17.3-4.8 30.1-20.8 30.1-39.5 0-2.7-.3-5.4-.8-8z"},child:[]}]})(s)}function J_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"},child:[]}]})(s)}function R_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.7 21.04l-194.4.41L21.04 159.3l.41 194.4L159.3 491l194.4-.4L491 352.7l-.4-194.4L352.7 21.04zm-8 19.66l126.2 125.7.4 178.3-123.1 123.6-2.6 2.6-178.3.4L41.08 345.6l-.38-178.3L166.4 41.08l178.3-.38zm-7.5 18.01l-163.3.34L58.71 174.8l.34 163.3L174.8 453.3l163.3-.3 115.2-115.8-.3-163.3L337.2 58.71zM108.4 210.4c5.3 0 10.8.5 16.4 1.3 5.7.8 11.5 2 17.5 3.6v20.5c-5.3-2.4-10.5-4.2-15.6-5.4-5.1-1.2-9.9-1.8-14.4-1.8-6 0-10.4.8-13.25 2.5-2.87 1.6-4.3 4.2-4.3 7.7 0 2.6.96 4.6 2.87 6.1 1.95 1.4 5.48 2.7 10.58 3.7l10.6 2.1c10.8 2.2 18.5 5.5 23.1 9.9 4.5 4.5 6.8 10.8 6.8 18.9 0 10.7-3.2 18.7-9.5 24-6.4 5.2-16.1 7.8-29.2 7.8-6.1 0-12.3-.6-18.51-1.8-6.2-1.1-12.41-2.9-18.61-5.2v-21.1c6.2 3.3 12.19 5.8 17.96 7.5 5.82 1.6 11.46 2.4 16.76 2.4 5.5 0 9.7-.9 12.6-2.7 2.9-1.8 4.4-4.4 4.4-7.8 0-3.1-1-5.4-3-7.1-2-1.6-5.9-3.1-11.8-4.4l-9.7-2.1c-9.73-2.1-16.85-5.4-21.37-10-4.47-4.5-6.7-10.7-6.7-18.4 0-9.7 3.12-17.1 9.37-22.3 6.25-5.3 15.24-7.9 27-7.9zm187.7 0c15.6 0 27.8 4.5 36.7 13.5 8.9 8.9 13.3 21.2 13.3 37 0 15.7-4.4 28-13.3 37-8.9 8.9-21.1 13.4-36.7 13.4-15.6 0-27.8-4.5-36.7-13.4-8.9-9-13.3-21.3-13.3-37 0-15.8 4.4-28.1 13.3-37 8.9-9 21.1-13.5 36.7-13.5zm-141.9 1.8h89.6v18.9h-32.2v78.3h-25.1v-78.3h-32.3v-18.9zm205.8 0h41.6c12.3 0 21.8 2.8 28.4 8.3 6.7 5.4 10 13.2 10 23.4s-3.3 18.1-10 23.6c-6.6 5.4-16.1 8.2-28.4 8.2H385v33.7h-25v-97.2zm-63.9 16.4c-7.7 0-13.6 2.8-17.8 8.5-4.2 5.6-6.3 13.6-6.3 23.8 0 10.2 2.1 18.1 6.3 23.8 4.2 5.6 10.1 8.4 17.8 8.4 7.7 0 13.6-2.8 17.8-8.4 4.2-5.7 6.3-13.6 6.3-23.8 0-10.2-2.1-18.2-6.3-23.8-4.2-5.7-10.1-8.5-17.8-8.5zm88.9 1.8v27.1h13.9c4.9 0 8.6-1.2 11.3-3.5 2.6-2.4 3.9-5.8 3.9-10.1s-1.3-7.7-3.9-10c-2.7-2.4-6.4-3.5-11.3-3.5H385z"},child:[]}]})(s)}function F_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M327.467 19.992c.748 14.94 2.317 51.268 2.59 98.76 3.474-.286 6.557-.381 9.72 1.08 18.04 8.345 27.243 29.326 27.026 50.506-.217 21.18-11.283 44.136-36.104 54.307a41.62 41.62 0 0 1-2.486.923c-3.408 80.504-12.307 166.37-33.754 225.5-6.876 15.831-17.029 29.217-26.828 40.94l55.27.422c20.676-12.19 32.041-27.395 36.32-46.407l17.558 3.954c-3.67 16.312-11.99 30.662-24.511 42.677l143.052 1.094c-5.13-14.524-16.16-46.501-20.357-70.217C451.89 293.171 450.15 45 450.025 19.992zM18.279 38.984l.881 18.725c17.856 12.047 32.035 23.91 45.969 35.527 12.887-11.156 2.404-29.725-5.82-39.091-13.668-5.346-27.335-10.467-41.03-15.16zM86.723 65.13c4.77 14.56 3.347 29.656-7.477 39.746 24.105 19.479 50.832 38.151 97.1 55.635 13.836-22.588 12.08-43.852-3.338-60.739-29.03-10.9-57.703-22.997-86.285-34.642zm-31.721 42.988V400h17.996V122.723c-6.187-4.856-12.114-9.73-17.996-14.606zm145.264 1.434c3.253 8.283 4.54 16.754 3.982 25.043-.765 11.35-4.673 22.135-10.545 32.095 16.926 5.691 36.192 11.248 58.451 16.655l2.604.633 1.834 1.953c9.223 9.826 22.535 17.206 35.469 21.006 12.933 3.8 25.473 3.655 31.814 1.056 18.024-7.385 24.773-22.363 24.932-37.84.152-14.822-7.069-28.554-15.479-33.306-45.88-1.699-89.948-12.607-133.062-27.295zm-33.264 66.476V400h17.996V182.605a502.784 502.784 0 0 1-17.996-6.578zM32 419.002v17.996h176v-17.996z"},child:[]}]})(s)}function G_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18.36 6.64a9 9 0 1 1-12.73 0"},child:[]},{tag:"line",attr:{x1:"12",y1:"2",x2:"12",y2:"12"},child:[]}]})(s)}function H_e(s){return Z({attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},child:[]}]})(s)}function V_e(s){return Z({attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 0l-6 8h6l-4 8 14-10h-8l6-6z"},child:[]}]})(s)}const V3e={SET:Xxe,WORKING:$M,UNREACH:BM,LOWBAT:PM,MAINTAIN:QL,ERROR:bL,DIRECTION:vL,CONNECTED:BM,ACTUAL:b_e,SECOND:Q_e,PRESS_LONG:YL,PRESS:kL,MUTE:SL,ACCURACY:P_e,RADIUS:s_e,ELEVATION:Kxe,LATITUDE:qxe,LONGITUDE:i_e,GPS:_L,ON_ACTUAL:WM,ON_SET:WM,OPEN:xL,STOP:R_e,WATER_ALARM:El,WASTE_ALARM:kl,PAUSE:Zxe,STATE:B_e,BATTERY:PM,WASTE:kl,WATER:El,WORK_MODE:$M,MODE:fL,POWER:t_e,BOOST:v_e,HUMIDITY:a_e,TEMPERATURE:c_e,BRIGHTNESS:o_e,MOTION:EL,FIRE:n_e,WINDOW:w4,SMOKE:M_e,SWING:F_e,SPEED:J_e,DIMMER:H_e,ON:G_e,COLOR_TEMP:OL,ELECTRIC_POWER:V_e,CURRENT:U_e,VOLTAGE:$_e,CONSUMPTION:Y_e,FREQUENCY:W_e,HUE:u_e};class I4 extends M.Component{static generateFile(e,t){const i=window.document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",window.document.body.appendChild(i),i.click(),window.document.body.removeChild(i)}handleFileSelect=e=>{const t=e.target,i=t==null?void 0:t.files;if(!i||!i.length){console.error("No files found. Please report to developers");return}const r=i[0];if(r){const o=new window.FileReader;o.onload=()=>{var a;const n=((a=o.result)==null?void 0:a.toString())||"";try{const c=JSON.parse(n);c.native&&c.common?c.common.name!==this.props.common.name?this.props.onError&&this.props.onError(d.t("ra_otherConfig",c.common.name)):this.props.onLoad&&this.props.onLoad(c.native):this.props.onError&&this.props.onError(d.t("ra_invalidConfig"))}catch(c){this.props.onError&&this.props.onError(c==null?void 0:c.toString())}},o.readAsText(r)}else alert("Failed to open JSON File")};download(){const e={_id:`system.adapter.${this.props.common.name}.${this.props.instance}`,common:JSON.parse(JSON.stringify(this.props.common)),native:this.props.native};e.common.news&&delete e.common.news,e.common.titleLang&&delete e.common.titleLang,e.common.desc&&delete e.common.desc,I4.generateFile(`${e._id}.json`,e)}upload(){const e=window.document.createElement("input");e.setAttribute("type","file"),e.setAttribute("id","files"),e.setAttribute("opacity","0"),e.addEventListener("change",this.handleFileSelect,!1),e.click()}render(){return M.createElement("div",{className:this.props.className,style:this.props.style},this.props.common.icon?M.createElement(me,{src:this.props.common.icon,style:{padding:8,width:64},alt:"logo"}):null,this.props.common.readme?M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Help",style:{marginRight:5,marginTop:5,float:"right"},onClick:()=>{const e=window.open(this.props.common.readme,"_blank");e==null||e.focus()}},M.createElement(UL,null)):null,M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Load config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Load configuration from file"),onClick:()=>this.upload()},M.createElement(Ag,null)),M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Save config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Save configuration to file"),onClick:()=>this.download()},M.createElement(pg,null)))}}class p4{static text2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static getTitle(e){const t=p4.extractHeader(e);let i=t.body;const r=t.header;if(!r.title){i=i.replace(/{[^}]*}/g,""),i=i.trim();const o=i.replace(/\r/g,"").split(` +`);for(let n=0;n{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===l?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static removeDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static onCopy(e,t){e0(t),e&&e.stopPropagation(),e&&e.preventDefault()}}function Z_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function A4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"248",cx:"160",fill:"none",strokeWidth:"15"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function Ts(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"}))}function m4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"140.83068",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"251",cx:"241",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"200.94531",x2:"240.5",y1:"45.94531",x1:"240.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"78.7979",x:"214.5",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"84",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"83.5",y1:"46.94531",x1:"83.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"57.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function X_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",onClick:e=>s.onClick&&s.onClick(e),width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}))}function K_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}),M.createElement("path",{fill:"currentColor",stroke:"null",d:"m261,270l-12,0l0,-24c0,-33.12 -26.88,-60 -60,-60s-60,26.88 -60,60l0,24l-12,0c-13.2,0 -24,10.8 -24,24l0,120c0,13.2 10.8,24 24,24l144,0c13.2,0 24,-10.8 24,-24l0,-120c0,-13.2 -10.8,-24 -24,-24zm-72,108c-13.2,0 -24,-10.8 -24,-24s10.8,-24 24,-24s24,10.8 24,24s-10.8,24 -24,24zm37.2,-108l-74.4,0l0,-24c0,-20.52 16.68,-37.2 37.2,-37.2c20.52,0 37.2,16.68 37.2,37.2l0,24z"}))}function q_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function Ai(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("rect",{fill:"none",rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor"}),M.createElement("ellipse",{fill:"none",ry:"54",rx:"54",cy:"160",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor"}))}function eSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 24 24",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",stroke:"currentColor",d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"}))}const Ko={root:{width:"100%",height:"100%"},overflowHidden:{overflow:"hidden"},container:{height:"100%"}};function tSe(s){var e;return M.createElement(j.Paper,{elevation:Number.isNaN(s.elevation)?1:s.elevation,style:{...Ko.root,...((e=s.styles)==null?void 0:e.root)||void 0,...s.overflow!=="visible"?Ko.overflowHidden:void 0},onKeyDown:s.onKeyDown,tabIndex:s.tabIndex},M.createElement(j.Grid2,{container:!0,direction:"column",wrap:"nowrap",sx:Ko.container},s.children))}const Yl={root:{height:"100%",overflow:"hidden"},overflowAuto:{overflow:"auto"}};function sSe(s){return M.createElement(j.Grid2,{sx:{...Yl.root,...(s==null?void 0:s.style)||void 0,...s.overflow==="auto"?Yl.overflowAuto:void 0},ref:s.ref},s.children)}function iSe(s){return M.createElement(j.Grid2,{container:!0,alignItems:"center"},s.children)}const Ds=24,pe=32,rSe=16,ge=20,O4=s=>s==="dark"?"#62ff25":"#37c400",E4=s=>s==="dark"?"#ee56ff":"#a204b4",oSe=s=>s==="dark"?"#fff46e":"#b89101",f4=s=>"#ff6d69",x4=s=>"#5773ff",_4="#ff413c",S4="#86211f",Wn="#57ff45",Bn="#098c04",Jn="#f3ad11",Rn="#6c5008",w={toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:16},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:8},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustom_center:{textAlign:"center"},columnCustom_left:{textAlign:"left"},columnCustom_right:{textAlign:"right"},width100:{width:"100%"},transparent_10:{opacity:.1},transparent_20:{opacity:.2},transparent_30:{opacity:.3},transparent_40:{opacity:.4},transparent_50:{opacity:.5},transparent_60:{opacity:.6},transparent_70:{opacity:.7},transparent_80:{opacity:.8},transparent_90:{opacity:.9},transparent_100:{opacity:1},headerRow:{paddingLeft:8,height:38,whiteSpace:"nowrap",userSelect:"none"},buttonClearFilter:{position:"relative",float:"right",padding:0},buttonClearFilterIcon:{zIndex:2,position:"absolute",top:0,left:0,color:"#FF0000",opacity:.7},tableDiv:{paddingTop:0,paddingLeft:0,width:"calc(100% - 8px)",height:"calc(100% - 38px)",overflow:"auto"},tableRow:s=>({pl:1,height:pe,lineHeight:`${pe}px`,verticalAlign:"top",userSelect:"none",position:"relative",width:"100%","&:hover":{background:`${s.palette.mode==="dark"?s.palette.primary.dark:s.palette.primary.light} !important`,color:O.invertColor(s.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"}),tableRowLines:s=>({borderBottom:`1px solid ${s.palette.mode==="dark","#8888882e"}`,"& > div":{borderRight:`1px solid ${s.palette.mode==="dark","#8888882e"}`}}),tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:pe+10},tableRowAliasReadWrite:{height:pe+22},tableRowFocused:s=>({"&:after":{content:'""',position:"absolute",top:1,left:1,right:1,bottom:1,border:s.palette.mode?"1px dotted #000":"1px dotted #FFF"}}),checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:pe-4,height:pe-4,mt:"2px",float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:s=>({marginRight:8,width:pe-4,height:pe-4,cursor:"pointer",color:s.palette.secondary.main||"#fbff7d",verticalAlign:"top"}),cellIdIconDocument:{verticalAlign:"middle",marginLeft:(pe-ge)/2,marginRight:8,width:ge,height:ge},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8,position:"absolute",right:3},cellCopyButtonInDetails:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8},cellEditButton:{width:ge,height:ge,color:"white",position:"absolute",top:(pe-ge)/2,right:ge+3,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,ml:"5px",overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellNameWithDesc:{lineHeight:"normal"},cellNameDivDiv:{},cellDescription:{fontSize:10,opacity:.5,fontStyle:"italic"},cellIdAlias:s=>({fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:s.palette.mode==="dark"?"#009900":"#007700"}}),cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:Ds,height:Ds,display:"inline-block"},"& .itemIconFolder":{marginLeft:3}},cellRole:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellRoom:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellEnumParent:{opacity:.4},cellFunc:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValue:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValueButton:{marginTop:5},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:pe,fontSize:16,display:"flex",overflow:"hidden",textOverflow:"ellipsis",position:"relative",verticalAlign:"top","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellValueFile:{color:"#2837b9"},cellValueTooltipTitle:{fontStyle:"italic",width:100,display:"inline-block"},cellValueTooltipValue:{width:120,display:"inline-block",whiteSpace:"nowrap",textOverflow:"ellipsis"},cellValueTooltipImage:{width:100,height:"auto"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden",pointerEvents:"none"},tooltip:{pointerEvents:"none"},cellValueTextUnit:{marginLeft:4,opacity:.8,display:"inline-block"},cellValueTextState:{opacity:.7},cellValueTooltipCopy:{position:"absolute",bottom:3,right:3},cellValueTooltipEdit:{position:"absolute",bottom:3,right:15},cellButtons:{display:"inline-block",verticalAlign:"top"},cellButtonsButton:{display:"inline-block",opacity:.5,width:ge+4,height:ge+4,"&:hover":{opacity:1},p:0,mt:"-2px"},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:40},cellButtonsButtonAlone:{ml:`${ge+6}px`,pt:0,mt:"-2px"},cellButtonsButtonWithCustoms:s=>({color:s.palette.mode==="dark"?s.palette.primary.main:s.palette.secondary.main}),cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:s=>({position:"absolute",top:ge/2-2,opacity:.7,width:ge-2,height:ge-2,color:s.palette.action.active,"&:hover":{opacity:1}}),cellButtonsValueButtonCopy:{right:8,cursor:"pointer"},cellButtonsValueButtonEdit:{right:ge/2+16},cellDetailsLine:{display:"flex",alignItems:"center",width:"100%",height:32,fontSize:16},cellDetailsName:{fontWeight:"bold",marginRight:8,minWidth:80},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{mt:0,mb:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:s=>({background:`${s.palette.primary.main} !important`,color:`${O.invertColor(s.palette.primary.main,!0)} !important`}),header:{width:"100%"},headerCell:{display:"inline-block",verticalAlign:"top"},headerCellValue:{paddingTop:4,fontSize:16},headerCellInput:{width:"calc(100% - 5px)",height:pe,pt:0,"& .itemIcon":{verticalAlign:"middle",width:Ds,height:Ds,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:Ds,height:Ds,mr:"5px",display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:8,width:32,height:32,borderRadius:8,background:"#FFFFFF"},enumIcon:{marginTop:4,marginLeft:4,width:24,height:24},enumDialog:{overflow:"hidden"},enumList:{minWidth:250,height:"calc(100% - 50px)",overflow:"auto"},enumCheckbox:{minWidth:0},buttonDiv:{display:"flex",height:"100%",alignItems:"center"},aclText:{fontSize:13,marginTop:6},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},fontSizeTitle:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}}},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:5,backgroundColor:"background.default"},iconDeviceConnected:s=>({color:s.palette.mode==="dark"?Wn:Bn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceDisconnected:s=>({color:s.palette.mode==="dark"?Jn:Rn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceError:s=>({color:s.palette.mode==="dark"?_4:S4,opacity:.8,position:"absolute",top:4,right:50,width:20}),resizeHandle:{display:"block",position:"absolute",cursor:"col-resize",width:7,top:2,bottom:2,zIndex:1},resizeHandleRight:{right:3,borderRight:"2px dotted #888","&:hover":{borderColor:"#ccc",borderRightStyle:"solid"},"&.active":{borderColor:"#517ea5",borderRightStyle:"solid"}},invertedBackground:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"}),invertedBackgroundFlex:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}),contextMenuEdit:s=>({color:s.palette.mode==="dark"?"#ffee48":"#cbb801"}),contextMenuEditValue:s=>({color:s.palette.mode==="dark"?"#5dff45":"#1cd301"}),contextMenuView:s=>({color:s.palette.mode==="dark"?"#FFF":"#000"}),contextMenuCustom:s=>({color:s.palette.mode==="dark"?"#42eaff":"#01bbc2"}),contextMenuACL:s=>({color:s.palette.mode==="dark"?"#e079ff":"#500070"}),contextMenuRoom:s=>({color:s.palette.mode==="dark"?"#ff9a33":"#642a00"}),contextMenuRole:s=>({color:s.palette.mode==="dark"?"#ffdb43":"#562d00"}),contextMenuDelete:s=>({color:s.palette.mode==="dark"?"#ff4f4f":"#cf0000"}),contextMenuKeys:{marginLeft:8,opacity:.7,fontSize:"smaller"},contextMenuWithSubMenu:{display:"flex"}};function nSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 436 436",style:s==null?void 0:s.style,width:"24",height:"24",className:"admin-button"},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function aSe(s,e){const t=[];for(let i=0;i{if(r==null)return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r}):MSe(s,(i,r,o)=>{if(r==null||e.includes(o))return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r})}function vl(s,e,t){const i=document.createElement("a"),r=[];t.excludeSystemRepositories&&r.push("system.repositories");const o=r.length>0||t.excludeTranslations?Fn(e,r,t.excludeTranslations):e,n=t.beautify?JSON.stringify(o,null,2):JSON.stringify(o);i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(n)}`),i.setAttribute("download",s),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function vi(s,e,t,i){if(t=t||0,i===void 0&&(i=s.length-1,!i))return s[0]===e;const r=Math.floor((t+i)/2);return e===s[r]?!0:i-1===t?s[t]===e||s[i]===e:e>s[r]?vi(s,e,r,i):eI.role.startsWith(h))||(l=!0)):l=!0),!l&&((p=n.common)==null?void 0:p.custom)==="_"&&(I!=null&&I.custom))l=!0;else if(!l&&((C=n.common)!=null&&C.custom)&&((m=n.common)==null?void 0:m.custom)!=="_"){const h=n.common.custom;if(!(I!=null&&I.custom))l=!0;else if(h==="_dataSources")Object.keys(I.custom).find(A=>A.startsWith("history.")||A.startsWith("sql.")||A.startsWith("influxdb."))||(l=!0);else if(Array.isArray(h)){const A=Object.keys(I.custom);h.find(S=>A.find(f=>f.startsWith(S)))&&(l=!0)}else h!==!0&&!Object.keys(I.custom).find(A=>A.startsWith(h))&&(l=!0)}}!l&&!e.expertMode&&(l=N.id==="system"||N.id==="enum"||N.id.startsWith("system.")||N.id.startsWith("enum.")||N.id.startsWith("_design/")||N.id.endsWith(".admin")||!!(I!=null&&I.expert)),!l&&r.id&&(N.fID===void 0&&(N.fID=N.id.toLowerCase()),l=!N.fID.includes(r.id)),!l&&r.name&&(I?(N.fName===void 0&&(N.fName=I&&Qe(I.name,t)||"",N.fName=N.fName.toLowerCase()),l=!N.fName.includes(r.name)):l=!0),!l&&e.role&&I&&(I?l=!(typeof I.role=="string"&&I.role.startsWith(r.role)):l=!0),!l&&r.room&&(l=!r.room.find(h=>h===N.id||N.id.startsWith(`${h}.`))),!l&&r.func&&(l=!r.func.find(h=>h===N.id||N.id.startsWith(`${h}.`))),!l&&r.type&&(l=!(N.obj&&N.obj.type&&N.obj.type===r.type)),!l&&a&&(l=!(N.obj&&N.obj.type&&a.includes(N.obj.type))),!l&&r.custom&&(I?r.custom==="_"?l=!!I.custom:l=!I.custom||!I.custom[r.custom]:l=!0)}return N.visible=!l,N.hasVisibleChildren=!1,s.children&&c<20&&s.children.forEach(I=>{Gn(I,e,t,i,r,o,n,a,c+1)&&(N.hasVisibleChildren=!0)}),N.sumVisibility=N.visible||N.hasVisibleChildren,o&&N.sumVisibility&&o.count++,N.id&&N.sumVisibility&&s.children&&s.children.forEach(I=>I.data.hasVisibleParent=!0),N.visible||N.hasVisibleChildren}function k4(s,e,t,i){var o;i=i||[];const r=s.data;return r.sumVisibility&&(r.id&&t[r.id]&&t[r.id].type===e&&i.push(r.id),(o=s.children)==null||o.forEach(n=>k4(n,e,t,i))),i}function bl(s,e,t,i,r,o){let n;return e==="alias"||e==="alias.0"?n=M.createElement(gN,{className:"iconOwn",style:{color:E4(i)}}):e==="0_userdata"||e==="0_userdata.0"?n=M.createElement(rg,{className:"iconOwn",style:{color:O4(i)}}):e.startsWith("_design/")||e==="system"?n=M.createElement(kr,{className:"iconOwn",style:{color:f4(i)}}):e==="system.adapter"?n=M.createElement(kr,{className:"iconOwn",style:{color:x4(i)}}):e==="system.group"?n=M.createElement(ga,{className:"iconOwn"}):e==="system.user"?n=M.createElement(Na,{className:"iconOwn"}):e==="system.host"?n=M.createElement(La,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?n=M.createElement(Qs,{className:"iconOwn"}):e.endsWith(".info")?n=M.createElement(la,{className:"iconOwn"}):s[e]&&s[e].type==="meta"?n=M.createElement(Kr,{className:"iconOwn"}):t<2&&s[`system.adapter.${e}`]&&(n=Zr(s,`system.adapter.${e}`,r,o)),n||null}function Y4(s,e){var t,i;return(i=(t=s==null?void 0:s.obj)==null?void 0:t.common)!=null&&i.desc&&Qe(s.obj.common.desc,e)||null}function cSe(s,e){const t=Y4(s,e);return t!=null&&t.startsWith("http")?M.createElement(j.Box,{component:"a",sx:w.cellIdTooltipLink,href:t,target:"_blank",rel:"noreferrer"},t):M.createElement("span",{style:w.cellIdTooltip},t||s.id||"")}function Ql(s,e){var N,u,L,g,y,T,D,z,p,C;const t=e.imagePrefix||".";let i=Object.keys(s);i.sort((m,I)=>m===I?0:(m=m.replace(/\./g,"!!!"),I=I.replace(/\./g,"!!!"),m>I?1:-1)),e.root&&(i=i.filter(m=>m===e.root||m.startsWith(`${e.root}.`)));let r=[],o="",n=0;const a={data:{name:"",id:""},children:[]},c={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:s,customs:["_"],enums:[],hasSomeCustoms:!1,aliasesMap:{}};let l=a;for(let m=0;mv.role===P)?typeof P!="string"?console.warn(`Invalid role type "${typeof P}" in "${h._id}"`):c.roles.push({role:P,type:f.type}):I.startsWith("enum.rooms.")?(c.roomEnums.push(I),c.enums.push(I)):I.startsWith("enum.functions.")?(c.funcEnums.push(I),c.enums.push(I)):h.type==="enum"?c.enums.push(I):h.type==="instance"&&f&&(f.supportCustoms||(N=f.adminUI)!=null&&N.custom)&&(c.hasSomeCustoms=!0,c.customs.push(I.substring(15))),I.startsWith("alias.")&&((u=h.common.alias)!=null&&u.id))if(typeof h.common.alias.id=="string"){const v=h.common.alias.id;c.aliasesMap[v]?c.aliasesMap[v].includes(I)||c.aliasesMap[v].push(I):c.aliasesMap[v]=[I]}else{const v=h.common.alias.id.read;v&&(c.aliasesMap[v]?c.aliasesMap[v].includes(I)||c.aliasesMap[v].push(I):c.aliasesMap[v]=[I]);const ee=h.common.alias.id.write;ee&&(c.aliasesMap[ee]?c.aliasesMap[ee].includes(I)||c.aliasesMap[ee].push(I):c.aliasesMap[ee]=[I])}}c.ids.push(I);let S;do if(S=!1,!o||I.startsWith(`${o}.`)){if(A.length-n>1){let P=o;for(let v=n;vee.data.name===A[v]));else{const ee={data:{name:A[v],parent:l,id:P,obj:s[P],level:v,icon:bl(s,P,v,e.themeType,e.lang,t),generated:!0}};l.children=l.children||[],l.children.push(ee),l=ee,c.ids.push(P)}}const f={data:{name:A[A.length-1],title:Qe((L=h==null?void 0:h.common)==null?void 0:L.name,e.lang),obj:h,parent:l,icon:Zr(s,I,e.lang,t)||bl(s,I,0,e.themeType,e.lang,t),id:I,hasCustoms:!!((g=h.common)!=null&&g.custom&&Object.keys(h.common.custom).length),level:A.length-1,generated:!1,button:h.type==="state"&&!!((y=h.common)!=null&&y.role)&&typeof h.common.role=="string"&&h.common.role.startsWith("button")&&((T=h.common)==null?void 0:T.write)!==!1,switch:h.type==="state"&&((D=h.common)==null?void 0:D.type)==="boolean"&&((z=h.common)==null?void 0:z.write)!==!1&&((p=h.common)==null?void 0:p.read)!==!1,url:!!((C=h.common)!=null&&C.role)&&typeof h.common.role=="string"&&h.common.role.startsWith("url")}};l.children=l.children||[],l.children.push(f),l=f,n=A.length,r=A,o=I}else{let f=0;for(;r[f]===A[f];)f++;if(f>0){let P=r.length;for(r=r.splice(0,f),n=f,o=r.join(".");P>f;)l.data.parent?l=l.data.parent:console.error(`Parent is null for ${I} ${o} ${r.join(".")}`),P--}else l=a,r=[],o="",n=0;S=!0}while(S)}return c.roomEnums.sort((m,I)=>{var S,f,P,v;const h=Qe((f=(S=s[m])==null?void 0:S.common)==null?void 0:f.name,e.lang)||m.split(".").pop(),A=Qe((v=(P=s[I])==null?void 0:P.common)==null?void 0:v.name,e.lang)||I.split(".").pop();return h>A?1:h{var S,f,P,v;const h=Qe((f=(S=s[m])==null?void 0:S.common)==null?void 0:f.name,e.lang)||m.split(".").pop(),A=Qe((v=(P=s[I])==null?void 0:P.common)==null?void 0:v.name,e.lang)||I.split(".").pop();return h>A?1:hm.role.localeCompare(I.role)),c.types.sort(),{info:c,root:a}}function v4(s,e,t,i,r){if(s.data.id===e)return s;if(t||(t=e.split("."),r=0,i=t[r]),!s.children&&s.data.id!==e)return null;let o;if(s.children)for(let n=0;ni)break}return o?(r=r||0,v4(o,e,t,`${i}.${t[r+1]}`,r+1)):null}function b4(s,e,t,i){var n,a;if(!e)return{rooms:[],per:!1};i=i||[];for(const c of s.roomEnums){const l=(n=s.objects[c])==null?void 0:n.common;if(!l)continue;const N=Qe(l.name,t);(a=l.members)!=null&&a.includes(e)&&!i.includes(N)&&i.push(N)}let r;const o=e.split(".");return o.pop(),e=o.join("."),s.objects[e]&&(r=i.length,b4(s,e,t,i)),{rooms:i,per:!r}}function ds(s,e,t,i){var r,o;if(!e)return[];i=i||[];for(let n=0;n946681200&&l<9466812e5&&(l*=1e3),l=l&&new Date(l).toString();else N==="number"?Number.isInteger(l)||(l=Math.round(l*1e8)/1e8,i&&(l=l.toString().replace(".",","))):N==="object"?l=JSON.stringify(l):N!=="string"?l=l.toString():l.startsWith("data:image/")&&(c="image"),typeof l!="string"&&(l=l.toString());const u={v:l};n&&n[l]!==void 0&&l!==n[l]&&(u.s=l,l=n[l],u.v=l),((g=u.v)==null?void 0:g.length)>40&&(u.c=u.v,u.v=`${u.v.substring(0,40)}...`),a!=null&&a.unit&&(u.u=a.unit);let L;if(s.full&&(typeof l=="string"&&l.length>100?L=[{t:r.value,v:`${l.substring(0,100)}...`}]:L=[{t:r.value,v:l}],t)){if(t.ack!==void 0&&t.ack!==null&&L.push({t:r.ack,v:t.ack.toString()}),t.ts&&L.push({t:r.ts,v:t.ts?O.formatDate(new Date(t.ts),e):""}),t.lc&&L.push({t:r.lc,v:t.lc?O.formatDate(new Date(t.lc),e):""}),t.from){let y=t.from.toString();y.startsWith("system.adapter.")&&(y=y.substring(15)),L.push({t:r.from,v:y})}if(t.user){let y=t.user.toString();y.startsWith("system.user.")&&(y=y.substring(12)),L.push({t:r.user,v:y})}t.c&&L.push({t:r.c,v:t.c}),L.push({t:r.quality,v:O.quality2text(t.q||0).join(", "),nbr:!0})}return{valText:u,valFull:L,fileViewer:c}}function uSe(s){const{state:e}=s;return{color:e!=null&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}function lSe(s,e){let t=e,i=1;const r=[];for(;i=t)r.push(0);else if(ithis.filterRefs[D]=x.createRef()),this.visibleCols=e.columns||le[e.width||"lg"].fields,e.types&&e.types.length===1){const D=this.visibleCols.indexOf("type");D!==-1&&this.visibleCols.splice(D,1)}this.possibleCols=le.xl.fields;let a=null;if(e.router){const D=e.router.getLocation();D.id&&D.dialog==="customs"&&(a=[D.id],this.pauseSubscribe(!0))}let c;Array.isArray(e.selected)?c=e.selected:c=[e.selected||""],c=c.map(D=>D.replace(/["']/g,"")).filter(D=>D),this.selectFirst=c.length&&c[0]?c[0]:this.selectFirst;const l=this.localStorage.getItem(`${e.dialogName||"App"}.columns`);let N;try{N=l?JSON.parse(l):null}catch{N=null}let u=null;try{u=u?JSON.parse(u):{}}catch{u={}}this.imagePrefix=e.imagePrefix||".";let L;const g=this.localStorage.getItem(`${e.dialogName||"App"}.foldersFirst`);g==="false"?L=!1:g==="true"?L=!0:L=e.foldersFirst===void 0?!0:e.foldersFirst;let y=!1;try{y=this.props.objectStatesView&&JSON.parse(this.localStorage.getItem(`${e.dialogName||"App"}.objectStatesView`)||"")||!1}catch{}this.state={loaded:!1,foldersFirst:L,selected:c,selectedNonObject:this.localStorage.getItem(`${e.dialogName||"App"}.selectedNonObject`)||"",filter:o,filterKey:0,focused:this.localStorage.getItem(`${e.dialogName||"App"}.focused`)||"",depth:0,expandAllVisible:!1,expanded:i,toast:"",scrollBarWidth:16,customDialog:a,editObjectDialog:"",editObjectAlias:!1,viewFileDialog:"",showAliasEditor:"",enumDialog:null,roleDialog:null,statesView:y,columns:N,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:this.localStorage.getItem(`${e.dialogName||"App"}.columnsAuto`)!=="false",columnsWidths:u,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,showAllExportOptions:!1,linesEnabled:this.localStorage.getItem(`${e.dialogName||"App"}.lines`)==="true",showDescription:this.localStorage.getItem(`${e.dialogName||"App"}.desc`)!=="false",showContextMenu:null,noStatesByExportImport:!1,beautifyJsonExport:!0,excludeSystemRepositoriesFromExport:!0,excludeTranslations:!1,tooltipInfo:null,aliasMenu:"",showRenameDialog:null},this.texts={name:e.t("ra_Name"),categories:e.t("ra_Categories"),value:e.t("ra_tooltip_value"),ack:e.t("ra_tooltip_ack"),ts:e.t("ra_tooltip_ts"),lc:e.t("ra_tooltip_lc"),from:e.t("ra_tooltip_from"),user:e.t("ra_tooltip_user"),c:e.t("ra_tooltip_comment"),quality:e.t("ra_tooltip_quality"),editObject:e.t("ra_tooltip_editObject"),deleteObject:e.t("ra_tooltip_deleteObject"),customConfig:e.t("ra_tooltip_customConfig"),copyState:e.t("ra_tooltip_copyState"),editState:e.t("ra_tooltip_editState"),ctrlForLink:e.t("ra_tooltip_ctrlForLink"),close:e.t("ra_Close"),filter_id:e.t("ra_filter_id"),filter_name:e.t("ra_filter_name"),filter_type:e.t("ra_filter_type"),filter_role:e.t("ra_filter_role"),filter_room:e.t("ra_filter_room"),filter_func:e.t("ra_filter_func"),filter_custom:e.t("ra_filter_customs"),filterCustomsWithout:e.t("ra_filter_customs_without"),objectChangedByUser:e.t("ra_object_changed_by_user"),objectChangedBy:e.t("ra_object_changed_by"),objectChangedFrom:e.t("ra_state_changed_from"),stateChangedBy:e.t("ra_state_changed_by"),stateChangedFrom:e.t("ra_state_changed_from"),ownerGroup:e.t("ra_Owner group"),ownerUser:e.t("ra_Owner user"),showAll:e.t("ra_show_all"),deviceError:e.t("ra_Error"),deviceDisconnected:e.t("ra_Disconnected"),deviceConnected:e.t("ra_Connected"),aclOwner_read_object:e.t("ra_aclOwner_read_object"),aclOwner_read_state:e.t("ra_aclOwner_read_state"),aclOwner_write_object:e.t("ra_aclOwner_write_object"),aclOwner_write_state:e.t("ra_aclOwner_write_state"),aclGroup_read_object:e.t("ra_aclGroup_read_object"),aclGroup_read_state:e.t("ra_aclGroup_read_state"),aclGroup_write_object:e.t("ra_aclGroup_write_object"),aclGroup_write_state:e.t("ra_aclGroup_write_state"),aclEveryone_read_object:e.t("ra_aclEveryone_read_object"),aclEveryone_read_state:e.t("ra_aclEveryone_read_state"),aclEveryone_write_object:e.t("ra_aclEveryone_write_object"),aclEveryone_write_state:e.t("ra_aclEveryone_write_state"),create:e.t("ra_Create"),createBooleanState:e.t("ra_create_boolean_state"),createNumberState:e.t("ra_create_number_state"),createStringState:e.t("ra_create_string_state"),createState:e.t("ra_create_state"),createChannel:e.t("ra_create_channel"),createDevice:e.t("ra_create_device"),createFolder:e.t("ra_Create folder")},this.levelPadding=e.levelPadding||rSe;const T=this.localStorage.getItem(`${this.props.dialogName||"App"}.table`);if(T)try{const D=JSON.parse(T),z=this.props.width||"lg";this.storedWidths=JSON.parse(JSON.stringify(le[z])),Object.keys(D).forEach(p=>{p==="id"?le[z].idWidth=D.id:p==="nameHeader"?le[z].widths.name=D[p]:le[z].widths[p]!==void 0&&(le[z].widths[p]=D[p])}),this.customWidth=!0}catch{}this.calculateColumnsVisibility()}async loadAllObjects(e){const t=this.props;try{await new Promise(c=>{this.setState({updating:!0},()=>c())});const i=(this.props.objectsWorker?await this.props.objectsWorker.getObjects(e):await t.socket.getObjects(e,!0))||{};if(t.types&&ze.isWeb())for(let c=0;c{try{if(c(i[l]))this.objects[l]=i[l];else{const N=i[l]&&i[l].type;N&&(N==="channel"||N==="device"||N==="folder"||N==="adapter"||N==="instance")&&(this.objects[l]=i[l])}}catch(N){console.log(`Error by filtering of "${l}": ${N}`)}})}else if(t.types){this.objects={};const c=t.types;Object.keys(i).forEach(l=>{const N=i[l]&&i[l].type;N&&(N==="channel"||N==="device"||N==="enum"||N==="folder"||N==="adapter"||N==="instance"||c.includes(N))&&(this.objects[l]=i[l])})}else this.objects=i;t.setObjectsReference&&t.setObjectsReference(this.objects),this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&t.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then(c=>{c!=null&&c.val||(this.defaultHistory="")}).catch(c=>window.alert(`Cannot get state: ${c}`));const r=await this.getAdditionalColumns();this.calculateColumnsVisibility(null,null,r);const{info:o,root:n}=Ql(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=n,this.info=o;const a=this.state.selected&&this.state.selected.length&&v4(this.root,this.state.selected[0]);this.lastAppliedFilter=null,a&&!Gn(a,this.state.filter,this.props.lang,this.objects,void 0,void 0,t.customFilter,t.types)?this.setState({filter:{...hr},columnsForAdmin:r},()=>{this.setState({loaded:!0,updating:!1},()=>this.expandAllSelected(()=>this.onAfterSelect()))}):this.setState({loaded:!0,updating:!1,columnsForAdmin:r},()=>this.expandAllSelected(()=>this.onAfterSelect()))}catch(i){this.showError(i)}}static isNonExpertId(e){return!!it.#e.find(t=>e.startsWith(t))}expandAllSelected(e){const t=[...this.state.expanded];let i=!1;this.state.selected.forEach(r=>{const o=r.split("."),n=[];for(let a=0;a{this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}):this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}static getDerivedStateFromProps(e,t){const i={};let r=!1;return e.expertMode!==void 0&&e.expertMode!==t.filter.expertMode&&(r=!0,i.filter={...t.filter},i.filter.expertMode=e.expertMode),r?i:null}async componentDidMount(){await this.loadAllObjects(!$l),this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChangeFromWorker):await this.props.socket.subscribeObject("*",this.onObjectChange),$l=!0,window.addEventListener("contextmenu",this.onContextMenu,!0),window.addEventListener("keydown",this.onKeyPress,!0),window.addEventListener("keyup",this.onKeyPress,!0)}onKeyPress=e=>{e.type==="keydown"&&e.ctrlKey&&!this.cltrPressed?(this.cltrPressed=!0,this.tableRef.current&&(this.tableRef.current.className="highlight-link")):e.type==="keyup"&&!e.ctrlKey&&this.cltrPressed&&(this.cltrPressed=!1,this.tableRef.current&&(this.tableRef.current.className=""))};componentWillUnmount(){this.filterTimer&&(clearTimeout(this.filterTimer),this.filterTimer=null),window.removeEventListener("contextmenu",this.onContextMenu,!0),window.removeEventListener("keydown",this.onKeyPress,!0),window.removeEventListener("keyup",this.onKeyPress,!0),this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChangeFromWorker,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange).catch(e=>console.error(`Cannot unsubscribe *: ${e}`)),this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.objects={}}showDeleteDialog(e){var c,l;const{id:t,obj:i,item:r}=e,o=Object.keys(this.objects);o.sort();let n=0;const a=`${t}.`;for(let N=0;Na)break;this.props.onObjectDelete&&this.props.onObjectDelete(t,!!((c=r.children)!=null&&c.length),!((l=i.common)!=null&&l.dontDelete),n+1)}onContextMenu=e=>{this.contextMenu&&Date.now()-this.contextMenu.ts<2e3?(e.preventDefault(),this.setState({showContextMenu:{item:this.contextMenu.item,position:{left:e.clientX+2,top:e.clientY-6}}})):this.state.showContextMenu&&(e.preventDefault(),this.setState({showContextMenu:null})),this.contextMenu=null};refreshComponent(){this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.loadAllObjects(!0).then(()=>console.log("updated!")).catch(e=>this.showError(e))}renderErrorDialog(){return this.state.error?M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description"},M.createElement(j.DialogTitle,{id:"alert-dialog-title"},this.props.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.state.error)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.t("ra_Ok")))):null}showError(e){this.setState({error:typeof e=="object"?e&&typeof e.toString=="function"?e.toString():JSON.stringify(e):e})}onSelect(e,t,i){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.focused`,e),!this.props.multiSelect)this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))?(this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==e?this.setState({selected:[e],selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()}):t&&this.props.onSelect&&this.onAfterSelect(t)):(this.localStorage.setItem(`${this.props.dialogName||"App"}.selectedNonObject`,e),this.setState({selected:[],selectedNonObject:e,focused:e},()=>{this.onAfterSelect(),i&&i()}));else if(this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))){this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const r=[...this.state.selected],o=r.indexOf(e);o===-1?(r.push(e),r.sort()):t||r.splice(o,1),this.setState({selected:r,selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()})}}_renderDefinedList(e){const t=[...this.possibleCols];if(t.unshift("id"),this.props.columns&&!this.props.columns.includes("buttons")){const i=t.indexOf("buttons");i!==-1&&t.splice(i,1)}return t.filter(i=>e&&(i==="val"||i==="buttons")||!e&&i!=="val"&&i!=="buttons").map(i=>{var r;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto&&i!=="id"){const o=[...this.state.columns||[]],n=o.indexOf(i);n===-1?(o.push(i),o.sort()):o.splice(n,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(o)),this.calculateColumnsVisibility(null,o),this.setState({columns:o})}},key:i},M.createElement(j.Checkbox,{edge:"start",disabled:i==="id"||this.state.columnsAuto,checked:i==="id"||!!(this.state.columnsAuto?this.visibleCols.includes(i):(r=this.state.columns)!=null&&r.includes(i)),disableRipple:!0}),M.createElement(j.ListItemText,{primary:this.texts[`filter_${i}`]||this.props.t(`ra_${i}`)}))})}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?M.createElement(j.Dialog,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,sx:{"& .MuiPaper-root":O.getStyle(this.props.theme,w.dialogColumns,w[`transparent_${this.state.columnsDialogTransparent}`])}},M.createElement(j.DialogTitle,{sx:w.fontSizeTitle},this.props.t("ra_Configure")),M.createElement(j.DialogContent,{sx:w.fontSizeTitle},M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.foldersFirst,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.foldersFirst`,this.state.foldersFirst?"false":"true"),this.setState({foldersFirst:!this.state.foldersFirst})}}),label:this.props.t("ra_Folders always first")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.linesEnabled,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.lines`,this.state.linesEnabled?"false":"true"),this.setState({linesEnabled:!this.state.linesEnabled})}}),label:this.props.t("ra_Show lines between rows")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.columnsAuto,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.columnsAuto`,this.state.columnsAuto?"false":"true"),this.state.columnsAuto?this.state.columns?(this.calculateColumnsVisibility(!1),this.setState({columnsAuto:!1})):(this.calculateColumnsVisibility(!1,[...this.visibleCols]),this.setState({columnsAuto:!1,columns:[...this.visibleCols]})):(this.calculateColumnsVisibility(!0),this.setState({columnsAuto:!0}))}}),label:this.props.t("ra_Auto (no custom columns)")}),M.createElement(j.List,null,this._renderDefinedList(!1),this.state.columnsForAdmin&&Object.keys(this.state.columnsForAdmin).sort().map(e=>this.state.columnsForAdmin&&this.state.columnsForAdmin[e].map(t=>{var i;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto){const r=[...this.state.columns||[]],o=`_${e}_${t.path}`,n=r.indexOf(o);n===-1?(r.push(o),r.sort()):r.splice(n,1),this.calculateColumnsVisibility(null,r),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(r)),this.setState({columns:r})}},key:`${e}_${t.name}`},M.createElement(j.ListItemIcon,null,M.createElement(j.Checkbox,{disabled:this.state.columnsAuto,edge:"start",checked:!this.state.columnsAuto&&((i=this.state.columns)==null?void 0:i.includes(`_${e}_${t.path}`)),disableRipple:!0})),M.createElement(j.ListItemText,{primary:`${t.name} (${e})`}))})),this._renderDefinedList(!0))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:M.createElement(Ne,null)},this.texts.close))):null}async getAdditionalColumns(){try{const e=await this.props.socket.getAdapters();let t=null;return e.forEach(i=>t=this.parseObjectForAdmins(t,i)),t}catch(e){return console.error(`Cannot get adapters: ${e}`),null}}checkUnsubscribes(){for(let e=this.subscribes.length-1;e>=0;e--)this.recordStates.includes(this.subscribes[e])||this.unsubscribe(this.subscribes[e]);this.recordStates=[]}findItem(e,t,i,r){if(t=t||e.split("."),i=i||this.root,!i||!t.length)return null;if(r=(r?`${r}.`:"")+t.shift(),i.children){const o=i.children.find(n=>n.data.id===r);if(o){if(o.data.id===e)return o;if(t.length)return this.findItem(e,t,o,r)}else return null}return null}onStateChange=(e,t)=>{if(console.log(`> stateChange ${e}`),this.states[e]){const i=this.findItem(e);i!=null&&i.data.state&&(i.data.state=void 0)}t?this.states[e]=t:delete this.states[e],this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout(()=>{this.statesUpdateTimer=null,this.forceUpdate()},300))};parseObjectForAdmins(e,t){if(t.common&&t.common.adminColumns&&t.common.name){const i=t.common.adminColumns;let r;i&&typeof i!="object"?r=[i]:i&&(r=i);let o;i?o=r.map(n=>{if(typeof n!="object")return{path:n,name:n.split(".").pop()};const a=n;return a.objTypes&&typeof a.objTypes!="object"?a.objTypes=[a.objTypes]:a.objTypes||(a.objTypes=void 0),!a.name&&a.path?{path:a.path,name:a.path.split(".").pop(),width:a.width,edit:!!a.edit,type:a.type,objTypes:a.objTypes}:a.path?{path:a.path,name:Qe(a.name||"",this.props.lang),width:a.width,edit:!!a.edit,type:a.type,objTypes:a.objTypes}:(console.warn(`Admin columns for ${t._id} ignored, because path not found`),null)}).filter(n=>n):o=null,o&&o.length&&(e=e||{},e[t.common.name]=o.sort((n,a)=>n.path>a.path?-1:n.path{if(Array.isArray(e)){let t=null;e.forEach(i=>{const{newInnerState:r,filtered:o}=this.processOnObjectChangeElement(i.id,i.obj);o||(r&&t?Object.assign(t,r):t=r)}),t&&this.setState(t),this.afterObjectUpdated()}};onObjectChange=(e,t)=>{const{newInnerState:i,filtered:r}=this.processOnObjectChangeElement(e,t);r||(i&&this.setState(i),this.afterObjectUpdated())};afterObjectUpdated(){!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout(()=>{this.objectsUpdateTimer=null;const{info:e,root:t}=Ql(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=t,this.info=e,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()},500))}updateAliases(e){var i,r,o;if(!this.objects||!((i=this.info)!=null&&i.aliasesMap)||!(e!=null&&e.startsWith("alias.")))return;const t=Object.keys(this.objects).filter(n=>n.startsWith("alias.0"));this.info.aliasesMap={};for(const n of t){const a=this.objects[n];if((o=(r=a==null?void 0:a.common)==null?void 0:r.alias)!=null&&o.id)if(typeof a.common.alias.id=="string"){const c=a.common.alias.id;this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]}else{const c=a.common.alias.id.read;c&&(this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]);const l=a.common.alias.id.write;l&&(this.info.aliasesMap[l]?this.info.aliasesMap[l].includes(n)||this.info.aliasesMap[l].push(n):this.info.aliasesMap[l]=[n])}}}processOnObjectChangeElement(e,t){console.log(`> objectChange ${e}`);const i=t==null?void 0:t.type;if(t&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(t)&&i!=="channel"&&i!=="device"&&i!=="folder"&&i!=="adapter"&&i!=="instance")return{newInnerState:null,filtered:!0};let r=null;if(e.startsWith("system.adapter.")&&(t==null?void 0:t.type)==="adapter"){const o=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(o,t),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(o)&&(r={columnsForAdmin:o})}return this.objects=this.objects||{},t?this.objects[e]=t:this.objects[e]&&delete this.objects[e],this.updateAliases(e),{newInnerState:r,filtered:!1}}subscribe(e){this.subscribes.includes(e)||(this.subscribes.push(e),console.log(`+ subscribe ${e}`),this.pausedSubscribes||this.props.socket.subscribeState(e,this.onStateChange).catch(t=>console.error(`Cannot subscribe on state ${e}: ${t}`)))}unsubscribe(e){const t=this.subscribes.indexOf(e);t!==-1&&(this.subscribes.splice(t,1),this.states[e]&&delete this.states[e],console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(e){!this.pausedSubscribes&&e?(this.pausedSubscribes=!0,this.subscribes.forEach(t=>this.props.socket.unsubscribeState(t,this.onStateChange))):this.pausedSubscribes&&!e&&(this.pausedSubscribes=!1,this.subscribes.forEach(t=>this.props.socket.subscribeState(t,this.onStateChange)))}onFilter(e,t){this.filterTimer=null;const i={...this.state.filter};Object.keys(this.filterRefs).forEach(r=>{if(this.filterRefs[r]&&this.filterRefs[r].current){const o=this.filterRefs[r].current;for(let n=0;nthis.props.onFilterChanged&&this.props.onFilterChanged(i)))}clearFilter(){const e={...this.state.filter};Object.keys(this.filterRefs).forEach(t=>{if(this.filterRefs[t]&&this.filterRefs[t].current){const i=this.filterRefs[t].current;for(let r=0;rthis.props.onFilterChanged&&this.props.onFilterChanged(e)))}isFilterEmpty(){return!Object.keys(this.state.filter).find(t=>t!=="expertMode"&&this.state.filter[t])}getFilterInput(e){var t,i,r;return M.createElement(j.FormControl,{sx:this.styles.filterInput,key:`${e}_${this.state.filterKey}`,margin:"dense"},M.createElement(j.Input,{ref:this.filterRefs[e],classes:{underline:"no-underline"},id:e,placeholder:this.texts[`filter_${e}`],defaultValue:this.state.filter[e]||"",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},autoComplete:"off"}),(r=(i=(t=this.filterRefs[e])==null?void 0:t.current)==null?void 0:i.firstChild)!=null&&r.value?M.createElement("div",{style:{position:"absolute",right:0}},M.createElement(j.IconButton,{size:"small",onClick:()=>{var o;((o=this.filterRefs[e].current)==null?void 0:o.firstChild).value="",this.onFilter(e,"")}},M.createElement(Ne,null))):null)}getFilterSelect(e,t){var r,o,n;const i=!!(t!=null&&t.find(a=>a.icon));return M.createElement("div",{style:{position:"relative"}},M.createElement(j.Select,{variant:"standard",key:`${e}_${this.state.filterKey}`,ref:this.filterRefs[e],sx:w.headerCellInput,className:"no-underline",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},defaultValue:this.state.filter[e]||"",inputProps:{name:e,id:e},displayEmpty:!0},M.createElement(j.MenuItem,{key:"empty",value:""},M.createElement("span",{style:w.selectNone},e==="custom"?this.texts.showAll:this.texts[`filter_${e}`])),t==null?void 0:t.map(a=>{let c,l,N;return typeof a=="object"?(c=a.value,l=a.name,N=a.icon):(c=a,l=a),M.createElement(j.MenuItem,{sx:w.headerCellSelectItem,key:c,value:c},N||(i?M.createElement("div",{className:"itemIcon"}):null),l)})),(n=(o=(r=this.filterRefs[e])==null?void 0:r.current)==null?void 0:o.childNodes[1])!=null&&n.value?M.createElement(j.Box,{component:"div",sx:w.selectClearButton},M.createElement(j.IconButton,{size:"small",onClick:()=>{var c;const a={...this.state.filter};a[e]="",((c=this.filterRefs[e].current)==null?void 0:c.childNodes[1]).value="",this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(a)),this.setState({filter:a,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(a))}},M.createElement(Ne,null))):null)}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles.map(e=>e.role))}getFilterSelectRoom(){const e=this.info.roomEnums.map(t=>{var i,r,o,n;return{name:Qe((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("room",e)}getFilterSelectFunction(){const e=this.info.funcEnums.map(t=>{var i,r,o,n;return{name:Qe((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("func",e)}getFilterSelectType(){const e=this.info.types.map(t=>({name:t,value:t,icon:Ul[t]||null}));return this.getFilterSelect("type",e)}getFilterSelectCustoms(){if(this.info.customs.length>1){const e=this.info.customs.map(t=>({name:t==="_"?this.texts.filterCustomsWithout:t,value:t,icon:t==="_"?null:M.createElement(me,{src:Zr(this.objects,t,this.props.lang,this.imagePrefix)||"",style:w.selectIcon})}));return this.getFilterSelect("custom",e)}return null}onExpandAll(e,t){var r;const i=e||this.root;t=t||[],(r=i==null?void 0:i.children)==null||r.forEach(o=>{o.data.sumVisibility&&(t.push(o.data.id),this.onExpandAll(o,t))}),i===this.root&&(t.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t}))}onCollapseAll(){this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},()=>this.onAfterSelect())}expandDepth(e,t,i){var r;e=e||this.root,t>0&&((r=e.children)==null||r.forEach(o=>{o.data.sumVisibility&&(vi(i,o.data.id)||(i.push(o.data.id),i.sort()),t-1>0&&this.expandDepth(o,t-1,i))}))}static collapseDepth(e,t){return t.filter(i=>i.split(".").length<=e)}onExpandVisible(){if(this.state.depth<9){const e=this.state.depth+1,t=[...this.state.expanded];this.root&&this.expandDepth(this.root,e,t),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}onStatesViewVisible(){const e=!this.state.statesView;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(e)),this.setState({statesView:e})}onCollapseVisible(){if(this.state.depth>0){const e=this.state.depth-1,t=it.collapseDepth(e,this.state.expanded);this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}getEnumsForId=e=>{const t=[];return this.info.enums.forEach(i=>{var r,o,n;if((n=(o=(r=this.objects[i])==null?void 0:r.common)==null?void 0:o.members)!=null&&n.includes(e)){const a={_id:this.objects[i]._id,common:JSON.parse(JSON.stringify(this.objects[i].common)),native:this.objects[i].native,type:"enum"};a.common&&(delete a.common.members,delete a.common.custom,delete a.common.mobile),t.push(a)}}),t.length?t:void 0};_createAllEnums=async(e,t)=>{var i,r;for(let o=0;or)break}return e}return[]}async _exportObjects(e){var o;if(e.isAll){vl("allObjects.json",this.objects,e);return}if(!(this.state.selected.length||this.state.selectedNonObject)){window.alert(this.props.t("ra_Save of objects-tree is not possible"));return}const t={},i=this.state.selected[0]||this.state.selectedNonObject,r=this._getSelectedIdsForExport();for(const n of r){if(t[n]=JSON.parse(JSON.stringify(this.objects[n])),((o=t[n])==null?void 0:o.type)==="state"&&!e.noStatesByExportImport){const a=await this.props.socket.getState(n);a&&(t[n].val=a.val,t[n].ack=a.ack)}if(t[n].common){const a=this.getEnumsForId(n);a&&(t[n].common.enums=a)}}vl(`${i}.json`,t,e)}renderExportDialog(){return this.state.showExportDialog===!1?null:M.createElement(j.Dialog,{open:!0,maxWidth:"lg"},M.createElement(j.DialogTitle,null,this.props.t("ra_Select type of export")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(M.Fragment,null,this.props.t("ra_You can export all objects or just the selected branch."),M.createElement("br",null),this.props.t("ra_Selected %s object(s)",this.state.showExportDialog),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.noStatesByExportImport,onChange:e=>this.setState({noStatesByExportImport:e.target.checked})}),label:this.props.t("ra_Do not export values of states")}),M.createElement("br",null),this.props.t("These options can reduce the size of the export file:"),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.beautifyJsonExport,onChange:e=>this.setState({beautifyJsonExport:e.target.checked})}),label:this.props.t("Beautify JSON output")}),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeSystemRepositoriesFromExport,onChange:e=>this.setState({excludeSystemRepositoriesFromExport:e.target.checked})}),label:this.props.t("Exclude system repositories from export JSON")}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeTranslations,onChange:e=>this.setState({excludeTranslations:e.target.checked})}),label:this.props.t("Exclude translations (except english) from export JSON")})):null)),M.createElement(j.DialogActions,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(j.Button,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!0,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_All objects")),"(",Object.keys(this.objects).length,")"):M.createElement(j.Button,{color:"grey",variant:"outlined",startIcon:M.createElement($n,null),onClick:()=>this.setState({showAllExportOptions:!0})},this.props.t("ra_Advanced options")),M.createElement(j.Button,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!1,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_Only selected")),"(",this.state.showExportDialog,")"),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}renderRenameDialog(){var t;if(!this.state.showRenameDialog)return null;const e=this.props.objectMoveRenameDialog;return M.createElement(e,{expertMode:this.props.expertMode,onClose:()=>this.setState({showRenameDialog:null}),id:this.state.showRenameDialog.id,childrenIds:this.state.showRenameDialog.childrenIds,theme:this.props.theme,socket:this.props.socket,t:this.props.t,objectType:(t=this.objects[this.state.showRenameDialog.id])==null?void 0:t.type})}handleJsonUpload(e){var r;const t=e.target,i=((r=t.files)==null?void 0:r.length)&&t.files[0];if(i){const o=new FileReader;o.onload=async n=>{var c;const a=(c=n.target)==null?void 0:c.result;try{const l=JSON.parse(a),N=Object.keys(l).length,u=l._id;if(u===void 0&&N)await this.loadObjects(l),window.alert(this.props.t("ra_%s object(s) processed",N));else{if(!u)return window.alert(this.props.t("ra_Invalid structure"));try{let L,g,y;if(l.common.enums&&(L=l.common.enums,delete l.common.enums),l.val&&(g=l.val,delete l.val),l.ack!==void 0&&(y=l.ack,delete l.ack),await this.props.socket.setObject(l._id,l),l.type==="state")if(g!=null)await this.props.socket.setState(l._id,g,y===void 0?!0:y);else{const T=await this.props.socket.getState(l._id);(!T||T.val===null||T.val===void 0)&&await this.props.socket.setState(l._id,l.common.def===void 0?null:l.common.def,!0)}L&&await this._createAllEnums(L,l._id),window.alert(this.props.t("ra_%s was imported",l._id))}catch(L){window.alert(L)}}}catch(l){window.alert(l)}return null},o.readAsText(i)}else window.alert(this.props.t("ra_Failed to open JSON File"))}toolTipObjectCreating=()=>{var i,r;const{t:e}=this.props;let t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];if(this.state.selected.length||this.state.selectedNonObject){const o=this.state.selected[0]||this.state.selectedNonObject;if(!(o.split(".").length<2||this.objects[o]&&((i=this.objects[o])==null?void 0:i.type)==="state"))if(this.state.filter.expertMode)switch((r=this.objects[o])==null?void 0:r.type){case"device":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"folder":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"channel":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:1},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break}else(o.startsWith("alias.0")||o.startsWith("0_userdata"))&&(t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:7},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:8},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))])}return t.length?t:e("ra_Add new child object to selected parent")};getToolbar(){let e=!1;if(this.state.selected.length||this.state.selectedNonObject){const t=this.state.selected[0]||this.state.selectedNonObject;t.split(".").length<2||this.objects[t]&&this.objects[t].type==="state"?e=!1:(this.state.filter.expertMode||t.startsWith("alias.0")||t.startsWith("0_userdata"))&&(e=!0)}return M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center",overflowX:"auto"}},M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},M.createElement(j.Tooltip,{title:this.props.t("ra_Refresh tree"),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large"},M.createElement(jN,null)))),this.props.showExpertButton&&!this.props.expertMode&&M.createElement(j.Tooltip,{title:this.props.t("ra_expertMode"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large"},M.createElement($n,null))),!this.props.disableColumnSelector&&this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Configure"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"columnSelector",color:this.state.columnsAuto?"primary":"default",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large"},M.createElement(Og,null))),this.props.width!=="xs"&&this.state.expandAllVisible&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandAll",onClick:()=>this.onExpandAll(),size:"large"},M.createElement(fr,null))),M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseAll",onClick:()=>this.onCollapseAll(),size:"large"},M.createElement(Ws,null))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandVisible",color:"primary",onClick:()=>this.onExpandVisible(),size:"large"},M.createElement(j.Badge,{badgeContent:this.state.depth,color:"secondary",sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}})},M.createElement(fr,null)))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseVisible",color:"primary",onClick:()=>this.onCollapseVisible(),size:"large"},M.createElement(j.Badge,{sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),badgeContent:this.state.depth,color:"secondary"},M.createElement(Ws,null)))),this.props.objectStatesView&&M.createElement(j.Tooltip,{title:this.props.t("ra_Toggle the states view"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.onStatesViewVisible(),size:"large"},M.createElement(Tg,{color:this.state.statesView?"primary":"inherit"}))),M.createElement(j.Tooltip,{title:this.props.t("ra_Show/Hide object descriptions"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.desc`,this.state.showDescription?"false":"true"),this.setState({showDescription:!this.state.showDescription})},size:"large"},M.createElement(Cg,{color:this.state.showDescription?"primary":"inherit"}))),this.props.objectAddBoolean?M.createElement(j.Tooltip,{title:this.toolTipObjectCreating(),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{disabled:!e,onClick:()=>this.setState({modalNewObj:{id:this.state.selected[0]||this.state.selectedNonObject}}),size:"large"},M.createElement(un,null)))):null,this.props.objectImportExport&&M.createElement(j.Tooltip,{title:this.props.t("ra_Add objects tree from JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("id","files"),t.setAttribute("opacity","0"),t.addEventListener("change",i=>this.handleJsonUpload(i),!1),t.click()},size:"large"},M.createElement(Sr,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&M.createElement(j.Tooltip,{title:this.props.t("ra_Save objects tree as JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large"},M.createElement(Sr,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&this.props.width!=="xs"&&M.createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter(t=>this.info.objects[t].type==="state").length}`),this.props.objectEditBoolean&&M.createElement(j.Tooltip,{title:this.props.t("ra_Edit custom config"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{var i;const t=this.root?k4(this.root,"state",this.objects):[];t.length?(this.pauseSubscribe(!0),t.length===1&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),(i=this.props.router)==null||i.doNavigate(null,"custom",this.state.selected[0])),this.setState({customDialog:t,customDialogAll:!0})):this.setState({toast:this.props.t("ra_please select object")})},size:"large"},M.createElement(KL,null))))}toggleExpanded(e){const t=JSON.parse(JSON.stringify(this.state.expanded)),i=t.indexOf(e);i===-1?(t.push(e),t.sort()):t.splice(i,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t})}onCopy(e,t){e.stopPropagation(),e.preventDefault(),t&&(O.copyToClipboard(t),t.length<50?this.setState({toast:this.props.t("ra_Copied %s",t)}):this.setState({toast:this.props.t("ra_Copied")}))}renderTooltipAccessControl=e=>{if(!e)return null;const t=[{value:"0x400",valueNum:1024,title:"read",group:"Owner"},{value:"0x200",valueNum:512,title:"write",group:"Owner"},{value:"0x40",valueNum:64,title:"read",group:"Group"},{value:"0x20",valueNum:32,title:"write",group:"Group"},{value:"0x4",valueNum:4,title:"read",group:"Everyone"},{value:"0x2",valueNum:2,title:"write",group:"Everyone"}],i=[],r=o=>{const n=e[o];t.forEach((a,c)=>{n&a.valueNum&&i.push(M.createElement("span",{key:o+c},this.texts[`acl${a.group}_${a.title}_${o}`],",",M.createElement("span",{style:o==="object"?w.rightsObject:w.rightsState},a.value)))})};return i.push(M.createElement("span",{key:"group"},`${this.texts.ownerGroup}: ${(e.ownerGroup||"").replace("system.group.","")}`)),i.push(M.createElement("span",{key:"owner"},`${this.texts.ownerUser}: ${(e.owner||"").replace("system.user.","")}`)),r("object"),e.state&&r("state"),i.length?M.createElement("span",{style:w.tooltipAccessControl},i.map(o=>o)):null};renderColumnButtons(e,t){var n,a,c;if(!t.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?M.createElement("div",{style:w.buttonDiv},this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsEmptyButton,...w.cellButtonMinWidth},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:{height:15}},"---")):null,this.props.onObjectDelete&&t.children&&t.children.length?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsButtonAlone},size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{var L;const l=Object.keys(this.objects);l.sort();let N=0;const u=`${e}.`;for(let g=0;gu)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((L=t.children)!=null&&L.length),!1,N+1)}},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null):null;t.data.aclTooltip=t.data.aclTooltip||this.renderTooltipAccessControl(t.data.obj.acl);const i=t.data.obj.acl?t.data.obj.type==="state"?t.data.obj.acl.state:t.data.obj.acl.object:0,r=t.data.obj.acl&&(t.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object),o=this.state.filter.expertMode||it.isNonExpertId(t.data.id);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.Tooltip,{key:"acl",title:t.data.aclTooltip,slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonMinWidth,opacity:1},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:w.aclText},Number.isNaN(Number(i))?Number(r).toString(16):Number(i).toString(16)))):M.createElement("div",{key:"aclEmpty",style:w.cellButtonMinWidth}),o?M.createElement(j.IconButton,{key:"edit",sx:{marginRight:"2px",...w.cellButtonsButton},size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.setState({editObjectDialog:e,editObjectAlias:!1})}},M.createElement(mi,{style:w.cellButtonsButtonIcon})):M.createElement(j.Box,{component:"div",key:"editDisabled",sx:w.cellButtonsButton}),this.props.onObjectDelete&&((n=t.children)!=null&&n.length||!((a=t.data.obj.common)!=null&&a.dontDelete))?M.createElement(j.IconButton,{key:"delete",sx:w.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{var L,g,y;const l=Object.keys(this.objects);l.sort();let N=0;const u=`${e}.`;for(let T=0;Tu)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((L=t.children)!=null&&L.length),!((y=(g=t.data.obj)==null?void 0:g.common)!=null&&y.dontDelete),N)},title:this.texts.deleteObject},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&t.data.obj.type==="state"&&((c=t.data.obj.common)==null?void 0:c.type)!=="file"?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...t.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms},key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{var l;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.pauseSubscribe(!0),(l=this.props.router)==null||l.doNavigate(null,"customs",e),this.setState({customDialog:[e],customDialogAll:!1})}},M.createElement(ln,{style:w.cellButtonsButtonIcon})):null]}readHistory(e){var t,i;if(window.sparkline&&this.defaultHistory&&((i=(t=this.objects[e])==null?void 0:t.common)!=null&&i.custom)&&this.objects[e].common.custom[this.defaultHistory]){const r=new Date;r.setHours(r.getHours()-24),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const o=r.getTime();this.props.socket.getHistory(e,{instance:this.defaultHistory,start:o,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addId:!1,aggregate:"minmax"}).then(n=>{const a=window.document.getElementsByClassName("sparkline");for(let c=0;cconsole.warn(`Cannot read history: ${n}`))}}getTooltipInfo(e,t){var l,N,u;const i=this.objects[e],r=this.states[e],{valFull:o,fileViewer:n}=qo({state:r,obj:i,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,full:!0}),a=[];o==null||o.forEach(L=>{L.t===this.texts.quality&&r.q?(a.push(M.createElement("div",{style:w.cellValueTooltipBoth,key:L.t},L.t,": ",L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`}))):(a.push(M.createElement("div",{style:w.cellValueTooltipTitle,key:L.t},L.t,": ")),a.push(M.createElement("div",{style:w.cellValueTooltipValue,key:`${L.t}_v`},L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`})))});const c=((l=i==null?void 0:i.common)==null?void 0:l.role)||"";n==="image"?a.push(M.createElement("img",{style:w.cellValueTooltipImage,src:r.val,alt:e})):c==="url"||i.common.role==="url.self"||i.common.role==="url.blank"?a.unshift(M.createElement("div",{key:"ctrl",style:{textDecoration:"underline",fontWeight:"bold"}},this.texts.ctrlForLink)):this.defaultHistory&&((u=(N=i==null?void 0:i.common)==null?void 0:N.custom)!=null&&u[this.defaultHistory])&&a.push(M.createElement("svg",{key:"sparkline",className:"sparkline","data-id":e,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"})),this.setState({tooltipInfo:{el:a,id:e}},()=>t&&t())}renderColumnValue(e,t,i){var c,l;const r=t.data.obj;if(!r||!this.states)return null;if(((c=r.common)==null?void 0:c.type)==="file")return M.createElement(j.Box,{component:"div",sx:{...w.cellValueText,...w.cellValueFile}},"[file]");if(!this.states[e])return r.type==="state"&&(this.recordStates.includes(e)||this.recordStates.push(e),this.states[e]={val:null},this.subscribe(e)),null;this.recordStates.includes(e)||this.recordStates.push(e);const o=this.states[e];let n=t.data.state;if(!n){const{valText:N}=qo({state:o,obj:r,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma}),u=[];if(t.data.state={valTextRx:u},u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}valText`,style:{whiteSpace:"nowrap",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}},N.v.toString())),N.u&&u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:w.cellValueTextUnit,key:`${N.v.toString()}unit`},N.u)),N.s!==void 0&&u.push(M.createElement("span",{style:w.cellValueTextState,className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}states`},"(",N.s,")")),!i){const L=N.c!==void 0?N.c:N.v||"";u.push(M.createElement(Ts,{className:"copyButton",style:this.styles.iconCopy,onClick:g=>this.onCopy(g,L),key:"cc"}))}n=t.data.state}n.style=uSe({state:o,isExpertMode:this.state.filter.expertMode,isButton:t.data.button});let a=n.valTextRx;return this.state.filter.expertMode||(t.data.button?a=[M.createElement(nSe,{key:"button",style:{color:n.style.color,...w.cellValueButton}})]:t.data.switch&&(a=[M.createElement(j.Switch,{key:"switch",sx:{"& .MuiSwitch-thumb":{color:n.style.color},"& .MuiSwitch-track":{backgroundColor:this.states[e].val&&this.state.selected.includes(e)?this.props.themeType==="dark"?"#FFF !important":"#111 !important":void 0}},checked:!!this.states[e].val})])),M.createElement(j.Tooltip,{key:"value",title:(l=this.state.tooltipInfo)==null?void 0:l.el,slotProps:{popper:{sx:w.cellValueTooltipBox},tooltip:{sx:w.cellValueTooltip}},onOpen:()=>this.getTooltipInfo(e,()=>this.readHistory(e)),onClose:()=>{var N;return((N=this.state.tooltipInfo)==null?void 0:N.id)===e&&this.setState({tooltipInfo:null})}},M.createElement(j.Box,{component:"div",style:n.style,className:t.data.url?"iob-link":void 0,sx:{...w.cellValueText,height:i?void 0:pe,"& .admin-button:active":{transform:"translate(0, 2px)"}}},a))}_syncEnum(e,t,i,r){var a,c,l;if(!t||!t.length){r&&r();return}const o=t.pop()||"",n=[];if((a=this.info.objects[o])!=null&&a.common){if((c=this.info.objects[o].common.members)!=null&&c.length){const N=this.info.objects[o].common.members.indexOf(e);if(N!==-1&&!i.includes(o)){const u=JSON.parse(JSON.stringify(this.info.objects[o]));u.common.members.splice(N,1),n.push(this.props.socket.setObject(o,u).then(()=>this.info.objects[o]=u).catch(L=>this.showError(L)))}}if(i.includes(o)&&!((l=this.info.objects[o].common.members)!=null&&l.includes(e))){const N=JSON.parse(JSON.stringify(this.info.objects[o]));N.common.members=N.common.members||[],N.common.members.push(e),N.common.members.sort(),n.push(this.props.socket.setObject(o,N).then(()=>this.info.objects[o]=N).catch(u=>this.showError(u)))}}Promise.all(n).then(()=>{setTimeout(()=>this._syncEnum(e,t,i,r),0)})}syncEnum(e,t,i){const r=[...this.info[t==="func"?"funcEnums":"roomEnums"]];return new Promise(o=>{this._syncEnum(e,r,i,()=>{o()})})}renderEnumDialog(){if(!this.state.enumDialog)return null;const e=this.state.enumDialog.type,t=this.state.enumDialog.item,i=this.state.enumDialogEnums,r=this.state.enumDialog.enumsOriginal,o=(e==="room"?this.info.roomEnums:this.info.funcEnums).map(n=>{var a,c;return{name:Qe(((c=(a=this.objects[n])==null?void 0:a.common)==null?void 0:c.name)||n.split(".").pop()||"",this.props.lang),value:n,icon:Zr(this.objects,n,this.props.lang,this.imagePrefix)}}).sort((n,a)=>n.name>a.name?1:-1);return o.forEach(n=>{n.icon&&typeof n.icon=="string"&&(n.icon=M.createElement(j.Box,{style:w.enumIconDiv},M.createElement("img",{src:n.icon,style:w.enumIcon,alt:n.name})))}),M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":w.enumDialog},onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"enum-dialog-title",style:{display:"flex",justifyContent:"space-between",width:"100%",flexWrap:"nowrap",gap:8,paddingRight:12}},e==="func"?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),M.createElement(j.Fab,{color:"primary",disabled:r===JSON.stringify(i),size:"small",onClick:()=>this.syncEnum(t.data.id,e,i).then(()=>this.setState({enumDialog:null,enumDialogEnums:null}))},M.createElement(Oe,null))),M.createElement(j.List,{sx:{"&.MuiList-root":w.enumList}},o.map(n=>{let a,c,l;typeof n=="object"?(a=n.value,c=n.name,l=n.icon):(a=n,c=n);const N=`checkbox-list-label-${a}`;return M.createElement(j.ListItem,{sx:w.headerCellSelectItem,key:a,onClick:()=>{const u=i.indexOf(a),L=JSON.parse(JSON.stringify(this.state.enumDialogEnums));u===-1?(L.push(a),L.sort()):L.splice(u,1),this.setState({enumDialogEnums:L})},secondaryAction:l},M.createElement(j.ListItemIcon,{sx:{"&.MuiListItemIcon-root":w.enumCheckbox}},M.createElement(j.Checkbox,{edge:"start",checked:i.includes(a),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":N}})),M.createElement(j.ListItemText,{id:N},c))})))}renderEditRoleDialog(){var e,t;if(!this.state.roleDialog||!this.props.objectBrowserEditRole)return null;if(this.state.roleDialog&&this.props.objectBrowserEditRole){const i=this.props.objectBrowserEditRole;return M.createElement(i,{key:"objectBrowserEditRole",id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roleArray:this.info.roles,commonType:(t=(e=this.info.objects[this.state.roleDialog])==null?void 0:e.common)==null?void 0:t.type,onClose:r=>{r&&(this.info.objects[this.state.roleDialog]=r),this.setState({roleDialog:null})}})}return null}onColumnsEditCustomDialogClose(e){var i,r;const t=this.customColumnDialog;if(e){let o=t.value;t.type==="boolean"?o=o==="true"||o===!0:t.type==="number"&&(o=parseFloat(o)),this.customColumnDialog=null,this.props.socket.getObject(((r=(i=this.state.columnsEditCustomDialog)==null?void 0:i.obj)==null?void 0:r._id)||"").then(n=>{var a;if(n&&it.setCustomValue(n,(a=this.state.columnsEditCustomDialog)==null?void 0:a.it,o))return this.props.socket.setObject(n._id,n);throw new Error(this.props.t("ra_Cannot update attribute, because not found in the object"))}).then(()=>this.setState({columnsEditCustomDialog:null})).catch(n=>this.showError(n))}else this.customColumnDialog=null,this.setState({columnsEditCustomDialog:null})}renderColumnsEditCustomDialog(){if(!this.state.columnsEditCustomDialog)return null;if(!this.customColumnDialog){const e=it.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof e,initValue:(e??"").toString(),value:(e??"").toString()}}return M.createElement(j.Dialog,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"custom-dialog-title"},`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.customColumnDialog.type==="boolean"?M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:this.customColumnDialog.value==="true",onChange:e=>{const t=this.customColumnDialog;t.value=e.target.checked.toString();const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):M.createElement(j.TextField,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:e=>{const t=this.customColumnDialog;t.value=e.target.value;const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})},autoFocus:!0}))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:M.createElement(Oe,null)},this.props.t("ra_Update")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}static getCustomValue(e,t){var i;if((i=e==null?void 0:e._id)!=null&&i.startsWith(`${t.adapter}.`)&&t.path.length>1){const r=t.path;let o;const n=e;if(n[r[0]]&&typeof n[r[0]]=="object")return r.length===2?o=n[r[0]][r[1]]:r.length===3?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"?n[r[0]][r[1]][r[2]]:null:r.length===4?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]?n[r[0]][r[1]][r[2]][r[3]]:null:r.length===5?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]?n[r[0]][r[1]][r[2]][r[3]][r[4]]:null:r.length===6&&(o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]&&n[r[0]][r[1]][r[2]][r[3]][r[4]]?n[r[0]][r[1]][r[2]][r[3]][r[4]][r[5]]:null),o??null}return null}static setCustomValue(e,t,i){var r;if((r=e==null?void 0:e._id)!=null&&r.startsWith(`${t.adapter}.`)&&t.path.length>1){const o=t.path,n=e;if(n[o[0]]&&typeof n[o[0]]=="object"){if(o.length===2)return n[o[0]][o[1]]=i,!0;if(o.length===3){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object")return n[o[0]][o[1]][o[2]]=i,!0}else if(o.length===4){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object")return n[o[0]][o[1]][o[2]][o[3]]=i,!0}else if(o.length===5){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]]=i,!0}else if(o.length===6&&n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object"&&n[o[0]][o[1]][o[2]][o[3]][o[4]]&&typeof n[o[0]][o[1]][o[2]][o[3]][o[4]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]][o[5]]=i,!0}}return!1}renderCustomValue(e,t,i){const r=it.getCustomValue(e,t);return r!=null?t.edit&&!this.props.notEditable&&(!t.objTypes||t.objTypes.includes(e.type))?M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w.columnCustomEditable,...w[`columnCustom_${t.align}`]},onClick:()=>this.setState({columnsEditCustomDialog:{item:i,it:t,obj:e},customColumnDialogValueChanged:!1})},r):M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w[`columnCustom_${t.align}`]}},r):null}renderAliasLink(e,t,i){const r=t||0,o=this.objects[this.info.aliasesMap[e][r]].common.alias.id;return o?M.createElement(j.Box,{component:"div",onClick:n=>{n.stopPropagation(),n.preventDefault();const a=this.info.aliasesMap[e][r];this.info.aliasesMap[e].length>1&&this.setState({aliasMenu:""}),this.onSelect(a),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(a)),100)},sx:i||this.styles.aliasAlone},M.createElement("span",{className:"admin-browser-arrow"},typeof o=="string"||o.read===e&&o.write===e?"↔":o.read===e?"→":"←"),this.info.aliasesMap[e][r]):null}renderLeaf(e,t,i){var ai,Mi,ci,tr,sr,AM,mM,OM,EM,fM,xM,_M,SM,kM;const r=e.data.id;i.count++,t=t===void 0?this.state.expanded.includes(r):t;let o;const n=e.data.obj,a=n==null?void 0:n.type;e.children||a==="folder"||a==="device"||a==="channel"||a==="meta"?o=t?M.createElement(fr,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):M.createElement(Ws,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):n&&n.common&&n.common.write===!1&&n.type==="state"?o=M.createElement(K_e,{style:this.styles.cellIdIconDocument}):o=M.createElement(X_e,{style:this.styles.cellIdIconDocument});let c=null;e.data.icon&&(typeof e.data.icon=="string"?e.data.icon.length<3?c=M.createElement("span",{className:"iconOwn",style:w.cellIdIconOwn},e.data.icon):c=M.createElement(me,{style:w.cellIdIconOwn,className:"iconOwn",src:e.data.icon,alt:""}):c=e.data.icon);const l=n==null?void 0:n.common,N=(n==null?void 0:n.type)&&Ul[n.type]||M.createElement("div",{className:"itemIcon"}),u=this.levelPadding*(e.data.level||0);if(e.data.lang!==this.props.lang){const{rooms:k,per:q}=b4(this.info,r,this.props.lang);e.data.rooms=k.join(", "),e.data.per=q;const{funcs:fe,pef:De}=Q4(this.info,r,this.props.lang);e.data.funcs=fe.join(", "),e.data.pef=De,e.data.lang=this.props.lang}const L=this.props.multiSelect&&this.objects[r]&&(!this.props.types||this.props.types.includes(this.objects[r].type))?M.createElement(j.Checkbox,{style:w.checkBox,checked:this.state.selected.includes(r)}):null;let g=!this.props.notEditable&&a==="state"&&(this.state.filter.expertMode||(l==null?void 0:l.write)!==!1);this.props.objectBrowserViewFile&&(l==null?void 0:l.type)==="file"&&(g=!0);const y=!this.props.notEditable&&this.objects[r]&&(this.state.filter.expertMode||a==="state"||a==="channel"||a==="device"),T=this.state.statesView&&(a==="state"||a==="channel"||a==="device");let D="";const z=[];if(T&&(D=(ai=this.states[r])==null?void 0:ai.from,D===void 0?D=" ":(D=D?D.replace(/^system\.adapter\.|^system\./,""):"",z.push(`${this.texts.stateChangedFrom} ${D}`)),n!=null&&n.user)){const k=n.user.replace("system.user.","");D+=`/${k}`,z.push(`${this.texts.stateChangedBy} ${k}`)}n&&(n.from&&z.push(`${this.texts.objectChangedFrom} ${n.from.replace(/^system\.adapter\.|^system\./,"")}`),n.user&&z.push(`${this.texts.objectChangedBy} ${n.user.replace(/^system\.user\./,"")}`),n.ts&&z.push(`${this.texts.objectChangedByUser} ${O.formatDate(new Date(n.ts),this.props.dateFormat||this.systemConfig.common.dateFormat)}`));let p=!1,C=null;r.startsWith("alias.")&&((Mi=l==null?void 0:l.alias)!=null&&Mi.id)?(p=typeof l.alias.id=="object",p?C=M.createElement("div",{style:w.cellIdAliasReadWriteDiv},l.alias.id.read?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.read),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.read)),100)},sx:this.styles.aliasReadWrite},"←",l.alias.id.read):null,l.alias.id.write?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.write),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.write)),100)},sx:this.styles.aliasReadWrite},"→",l.alias.id.write):null):C=M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id)),100)},sx:this.styles.aliasAlone},"→",l.alias.id)):this.info.aliasesMap[r]&&(this.info.aliasesMap[r].length>1?C=M.createElement(j.Box,{component:"div",id:`alias_${r}`,onClick:k=>{k.stopPropagation(),k.preventDefault(),this.setState({aliasMenu:r})},sx:this.styles.aliasAlone},this.props.t("ra_%s links from aliases",this.info.aliasesMap[r].length)):C=this.renderAliasLink(r,0));let m=l==null?void 0:l.color,I;if(m&&!this.state.selected.includes(r)){const k=this.props.themeName==="dark"?"#1f1f1f":this.props.themeName==="blue"?"#222a2e":"#FFFFFF";O.colorDistance(m,k)<1e3&&(I=this.props.themeType==="dark"?"#9a9a9a":"#565656")}let h=!1;r==="0_userdata"?(m=O4(this.props.themeType),h=!0):r==="alias"?(m=E4(this.props.themeType),h=!0):r==="javascript"?(m=oSe(this.props.themeType),h=!0):r==="system"?(m=f4(this.props.themeType),h=!0):r==="system.adapter"?m=x4(this.props.themeType):(!m||this.state.selected.includes(r))&&(m="inherit");const A=[];if(l!=null&&l.statusStates){const k={};Object.keys(l.statusStates).forEach(fe=>{var tt;let De=l.statusStates[fe];De.split(".").length<3&&(De=`${r}.${De}`),k[fe]=De,this.states[De]?this.recordStates.includes(De)||this.recordStates.push(De):((tt=this.objects[De])==null?void 0:tt.type)==="state"&&(this.recordStates.includes(De)||this.recordStates.push(De),this.states[De]={val:null},this.subscribe(De))});let q=!1;l.statusStates.errorId&&this.states[k.errorId]&&this.states[k.errorId].val&&(m=this.props.themeType==="dark"?_4:S4,q=!0,A.push(M.createElement(ng,{key:"error",style:this.styles.iconDeviceError}))),k.onlineId&&this.states[k.onlineId]?q?this.states[k.onlineId].val?A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):this.states[k.onlineId].val?(m=this.props.themeType==="dark"?Wn:Bn,A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))):(m=this.props.themeType==="dark"?Jn:Rn,A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):k.offlineId&&this.states[k.offlineId]&&(q?this.states[k.offlineId].val?A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):this.states[k.offlineId].val?(m=this.props.themeType==="dark"?Jn:Rn,A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):(m=this.props.themeType==="dark"?Wn:Bn,A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))))}const S=T?O.quality2text(((ci=this.states[r])==null?void 0:ci.q)||0).join(", "):null;let f=((tr=e.data)==null?void 0:tr.title)||"",P=!1;if(this.state.showDescription){const k=Y4(e.data,this.props.lang);k&&(f=[M.createElement("div",{key:"name",style:w.cellNameDivDiv},f),M.createElement("div",{key:"desc",style:w.cellDescription},k)],P=!!k)}const v=this.props.width==="xs"&&this.state.focused===r,ee=M.createElement(j.Grid2,{container:!0,wrap:"nowrap",direction:"row",sx:w.cellId,style:{width:this.columnsVisibility.id,paddingLeft:u}},M.createElement(j.Grid2,{container:!0,alignItems:"center"},L,o),M.createElement(j.Grid2,{style:{...w.cellIdSpan,...I?this.styles.invertedBackground:void 0,color:m,fontWeight:h?"bold":void 0}},M.createElement(j.Tooltip,{title:cSe(e.data,this.props.lang),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,e.data.name)),C,A),M.createElement("div",{style:{...w.grow,...I?this.styles.invertedBackgroundFlex:{}}}),M.createElement(j.Grid2,{container:!0,alignItems:"center"},c),this.props.width!=="xs"?M.createElement("div",null,M.createElement(Ts,{className:v?"":"copyButton",style:w.cellCopyButton,onClick:k=>this.onCopy(k,r)})):null);let ae=v&&f||this.columnsVisibility.name?M.createElement(j.Box,{component:"div",sx:{...w.cellName,...P?w.cellNameWithDesc:void 0,width:this.props.width!=="xs"?this.columnsVisibility.name:void 0,ml:v?0:"5px"}},f,!v&&((sr=e.data)!=null&&sr.title)?M.createElement(j.Box,{style:{color:m}},M.createElement(Ts,{className:"copyButton",style:w.cellCopyButton,onClick:k=>{var q;return this.onCopy(k,(q=e.data)==null?void 0:q.title)}})):null):null,J;this.state.statesView?J=[v&&T&&((AM=this.states[r])!=null&&AM.from)||this.columnsVisibility.changedFrom?{el:M.createElement("div",{key:"from",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.changedFrom:void 0},title:z.join(` +`)},T&&((mM=this.states[r])!=null&&mM.from)?D:null),type:"from"}:null,v&&S||this.columnsVisibility.qualityCode?{el:M.createElement("div",{key:"q",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.qualityCode:void 0},title:S||""},S),type:"quality"}:null,v&&T&&((OM=this.states[r])!=null&&OM.ts)||this.columnsVisibility.timestamp?{el:M.createElement("div",{key:"ts",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.timestamp:void 0}},T&&((EM=this.states[r])!=null&&EM.ts)?O.formatDate(new Date(this.states[r].ts),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"ts"}:null,v&&T&&((fM=this.states[r])!=null&&fM.lc)||this.columnsVisibility.lastChange?{el:M.createElement("div",{key:"lc",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.lastChange:void 0}},T&&((xM=this.states[r])!=null&&xM.lc)?O.formatDate(new Date(this.states[r].lc),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"lc"}:null]:J=[v&&(n!=null&&n.type)||this.columnsVisibility.type?{el:M.createElement("div",{key:"type",style:{...w.cellType,width:this.props.width!=="xs"?this.columnsVisibility.type:void 0}},N," ",n==null?void 0:n.type),type:"filter_type"}:null,v&&l||this.columnsVisibility.role?{el:M.createElement("div",{key:"role",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.role:"100%",cursor:this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?"text":"default"},onClick:!v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0},l==null?void 0:l.role),type:"filter_role",onClick:v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0}:null,v&&l||this.columnsVisibility.room?{el:M.createElement("div",{key:"room",style:{...w.cellRoom,...e.data.per?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.room:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.rooms),type:"filter_room",onClick:v&&y?()=>{const k=ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0}:null,v&&l||this.columnsVisibility.func?{el:M.createElement("div",{key:"func",style:{...w.cellFunc,...e.data.pef?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.func:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.funcs),type:"filter_func",onClick:v&&y?()=>{const k=ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0}:null];let H=((_M=this.adapterColumns)==null?void 0:_M.map(k=>M.createElement("div",{style:{...w.cellAdapter,width:this.props.width!=="xs"?this.columnsVisibility[k.id]:void 0},key:k.id,title:`${k.adapter} => ${k.pathText}`},n?this.renderCustomValue(n,k,e):null)))||null;const Te=v||this.columnsVisibility.val?this.renderColumnValue(r,e,v):null;let Fe=v&&Te||this.columnsVisibility.val?M.createElement("div",{style:{...w.cellValue,width:this.props.width!=="xs"?this.columnsVisibility.val:"calc(100% - 100px)",cursor:g?(l==null?void 0:l.type)==="file"?"zoom-in":e.data.button?"grab":"text":"default"},onClick:k=>{var q,fe,De;if(g){if(!(!n||!this.states))if((l==null?void 0:l.type)==="file")this.setState({viewFileDialog:r});else if(e.data.url&&k.ctrlKey){if((q=this.states[r])!=null&&q.val&&typeof this.states[r].val=="string")if((l==null?void 0:l.role)==="url.self")window.location.href=this.states[r].val;else{const tt=window.open(this.states[r].val,"_blank");tt==null||tt.focus()}}else!this.state.filter.expertMode&&e.data.button?this.props.socket.setState(r,!0).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):!this.state.filter.expertMode&&e.data.switch?this.props.socket.setState(r,!this.states[r].val).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):(this.edit={val:this.states[r]?this.states[r].val:"",q:this.states[r]&&this.states[r].q||0,ack:!1,id:r},this.setState({updateOpened:!0}))}else(l==null?void 0:l.role)==="url"||(l==null?void 0:l.role)==="url.blank"&&k.ctrlKey?(fe=this.states[r])!=null&&fe.val&&typeof this.states[r].val=="string"&&window.open(this.states[r].val,"_blank"):(l==null?void 0:l.role)==="url.self"&&k.ctrlKey&&(De=this.states[r])!=null&&De.val&&typeof this.states[r].val=="string"&&(window.location.href=this.states[r].val)}},Te):null,Ge=v||this.columnsVisibility.buttons?M.createElement("div",{style:{...w.cellButtons,width:this.props.width!=="xs"?this.columnsVisibility.buttons:void 0}},this.renderColumnButtons(r,e)):null,Ls=null;if(this.props.width==="xs"&&this.state.focused===r){J=J.filter(q=>q);let k;J.length?k=J.map(q=>q?M.createElement("div",{key:q.type,style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts[q.type],":"),q.el,M.createElement("div",{style:{flexGrow:1}}),q.onClick?M.createElement(mi,{style:w.cellCopyButtonInDetails,onClick:()=>{q!=null&&q.onClick&&q.onClick()}}):null):null):k=null,H.length||(H=null),Ls=M.createElement(j.Paper,{style:{width:"100%",display:"flex",flexDirection:"column",padding:10,backgroundColor:this.props.theme.palette.mode==="dark"?"#333":"#ccc"}},M.createElement("div",{style:w.cellDetailsLine},M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{style:w.cellCopyButtonInDetails,onClick:q=>this.onCopy(q,r)})),ae&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.name,":"),ae,M.createElement("div",{style:{flexGrow:1}}),(SM=e.data)!=null&&SM.title?M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{var fe;return this.onCopy(q,(fe=e.data)==null?void 0:fe.title)}}):null),k,H&&M.createElement("div",{style:w.cellDetailsLine},H),((kM=this.objects[r])==null?void 0:kM.type)==="state"&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.value,":"),Fe,M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{const{valText:fe}=qo({state:this.states[r],obj:this.objects[r],texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma});this.onCopy(q,fe.c!==void 0?fe.c:fe.v.toString())},key:"cc"})),Ge&&M.createElement("div",{style:{...w.cellDetailsLine,justifyContent:"right"}},Ge)),ae=null,J=null,H=null,Fe=null,Ge=null}return{row:M.createElement(j.Grid2,{container:!0,direction:"row",wrap:"nowrap",sx:O.getStyle(this.props.theme,w.tableRow,this.state.linesEnabled&&w.tableRowLines,!this.props.dragEnabled&&w.tableRowNoDragging,C&&w.tableRowAlias,p&&w.tableRowAliasReadWrite,this.state.focused===r&&this.props.multiSelect&&w.tableRowFocused,!e.data.visible&&w.filteredOut,e.data.hasVisibleParent&&!e.data.visible&&!e.data.hasVisibleChildren&&w.filteredParentOut,this.state.selected.includes(r)&&w.itemSelected,this.state.selectedNonObject===r&&w.itemSelected),key:r,id:r,onMouseDown:k=>{this.onSelect(r);let q;"which"in k?q=k.which===3:"button"in k&&(q=k.button===2),q?this.contextMenu={item:e,ts:Date.now()}:this.contextMenu=null},onDoubleClick:()=>{e.children?this.toggleExpanded(r):this.onSelect(r,!0)}},ee,ae,J==null?void 0:J.map(k=>k==null?void 0:k.el),H,Fe,Ge),details:Ls}}renderItem(e,t,i){const r=[];i=i||{count:0};const o=this.renderLeaf(e,t,i);let n;const a=this.props.DragWrapper;return this.props.dragEnabled&&a?e.data.sumVisibility?n=M.createElement(a,{key:e.data.id,item:e,style:w.draggable},o.row):n=M.createElement("div",{key:e.data.id,style:w.nonDraggable},o.row):n=o.row,e.data.id&&n&&r.push(n),o.details&&r.push(o.details),t=t===void 0?vi(this.state.expanded,e.data.id):t,(!e.data.id||t)&&(this.state.foldersFirst?e.children&&(r.push(e.children.map(c=>c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null)),r.push(e.children.map(c=>!c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))):e.children&&r.push(e.children.map(c=>(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))),r}calculateColumnsVisibility(e,t,i,r){let o=r||this.state.columnsWidths;const n=i||this.state.columnsForAdmin,a=t||this.state.columns||[],c=typeof e!="boolean"?this.state.columnsAuto:e;o=JSON.parse(JSON.stringify(o)),Object.keys(o).forEach(N=>{o[N]&&(o[N]=parseInt(o[N],10)||0)}),this.adapterColumns=[];const l=le[this.props.width||"lg"].widths;if(c){if(this.columnsVisibility={id:le[this.props.width||"lg"].idWidth,name:this.visibleCols.includes("name")&&l.name||0,nameHeader:this.visibleCols.includes("name")&&l.name||0,type:this.visibleCols.includes("type")&&l.type||0,role:this.visibleCols.includes("role")&&l.role||0,room:this.visibleCols.includes("room")&&l.room||0,func:this.visibleCols.includes("func")&&l.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&l.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&l.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&l.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&l.lastChange||0,val:this.visibleCols.includes("val")&&l.val||0,buttons:this.visibleCols.includes("buttons")&&l.buttons||0},this.columnsVisibility.name&&!this.customWidth){let N=this.columnsVisibility.id||0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.name=`calc(100% - ${N+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${N+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let N=0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.id=`calc(100% - ${N+5}px)`}}else{const N=this.props.width||"lg";this.columnsVisibility={id:o.id||le[N].idWidth,name:a.includes("name")&&(o.name||l.name||le[N].widths.name)||0,type:a.includes("type")&&(o.type||l.type||le[N].widths.type)||0,role:a.includes("role")&&(o.role||l.role||le[N].widths.role)||0,room:a.includes("room")&&(o.room||l.room||le[N].widths.room)||0,func:a.includes("func")&&(o.func||l.func||le[N].widths.func)||0};let u=this.columnsVisibility.id;if(this.columnsVisibility.name&&(u+=this.columnsVisibility.type||0,u+=this.columnsVisibility.role||0,u+=this.columnsVisibility.room||0,u+=this.columnsVisibility.func||0),n&&a&&Object.keys(n).sort().forEach(L=>n[L].forEach(g=>{const y=`_${L}_${g.path}`;if(a.includes(y)){const T={adapter:L,id:`_${L}_${g.path}`,name:g.name,path:g.path.split("."),pathText:g.path};g.edit&&(T.edit=!0,g.type&&(T.type=g.type),g.objTypes&&(T.objTypes=g.objTypes)),this.adapterColumns.push(T),this.columnsVisibility[y]=o[T.id]||g.width||le[N].widths.func||le.xl.widths.func||0,u+=this.columnsVisibility[y]}else this.columnsVisibility[y]=0})),this.adapterColumns.sort((L,g)=>L.id>g.id?-1:L.idy==="id"||typeof this.columnsVisibility[y]=="string"||!this.columnsVisibility[y]?g:g+this.columnsVisibility[y],0);this.columnsVisibility.id=`calc(100% - ${L}px)`}}}resizerMouseMove=e=>{if(this.resizerActiveDiv){let t,i;this.resizeLeft?(t=this.resizerOldWidth-e.clientX+this.resizerPosition,i=this.resizerOldWidthNext+e.clientX-this.resizerPosition):(t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition),this.resizerActiveName&&this.resizerNextName&&(!this.resizerMin||t>this.resizerMin)&&(!this.resizerNextMin||i>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=t,this.resizerCurrentWidths[this.resizerNextName]=i,this.resizerActiveDiv.style.width=`${t}px`,this.resizerNextDiv&&(this.resizerNextDiv.style.width=`${i}px`),this.columnsVisibility[this.resizerActiveName]=t,this.columnsVisibility[this.resizerNextName]=i,this.resizerNextName==="nameHeader"?(this.columnsVisibility.name=i-this.state.scrollBarWidth,this.resizerCurrentWidths.name=i-this.state.scrollBarWidth):this.resizerActiveName==="nameHeader"&&(this.columnsVisibility.name=t-this.state.scrollBarWidth,this.resizerCurrentWidths.name=t-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=null,this.forceUpdate()},200))}};resizerMouseUp=()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveName=null,this.resizerNextName=null,this.resizerActiveDiv=null,this.resizerNextDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{if(this.storedWidths||=JSON.parse(JSON.stringify(le[this.props.width||"lg"])),this.resizerCurrentWidths=this.resizerCurrentWidths||{},this.resizerActiveDiv=e.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name||null,this.resizerActiveName){let t=0;if(e.target.dataset.left==="true"){this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler");for(;this.resizerNextDiv&&!i&&t<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler"),t++;(i==null?void 0:i.dataset.left)!=="true"&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name||null,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=e.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerNextName&&(this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName]),window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};navigateKeyPress(e){var i,r;const t=this.state.selectedNonObject||this.state.selected[0];if(t){if(e.code==="ArrowUp"||e.code==="ArrowDown"){e.preventDefault();const o=[];(i=this.tableRef.current)==null||i.childNodes.forEach(l=>o.push(l.id));const n=o.indexOf(t),a=e.code==="ArrowDown"?n+1:n-1,c=o[a]||t;this.onSelect(c),this.scrollToItem(c)}if((e.code==="ArrowRight"||e.code==="ArrowLeft")&&this.toggleExpanded(t),e.code==="Delete"&&this.root&&t){const o=it.getItemFromRoot(this.root,t);if(o){const{obj:n}=o.data;n&&!((r=n.common)!=null&&r.dontDelete)&&this.showDeleteDialog({id:t,obj:n,item:o})}}}}static getItemFromRoot(e,t){const i=t.split(".");let r="",o=e;for(let n=0;n{this.customWidth=!1,le[this.props.width||"lg"]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),this.localStorage.removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()};renderHandleRight(){return M.createElement(j.Box,{component:"div",className:"iob-ob-resize-handler",sx:{...w.resizeHandle,...w.resizeHandleRight},onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})}renderHeader(){let e=null;return!this.columnsVisibility.buttons&&!this.isFilterEmpty()&&(e=M.createElement(j.IconButton,{onClick:()=>this.clearFilter(),style:w.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large"},M.createElement(eSe,null),M.createElement(Ne,{style:w.buttonClearFilterIcon}))),this.props.width==="xs"?M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:"100%"}},this.getFilterInput("id"))):M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id"},this.getFilterInput("id"),this.renderHandleRight()),this.columnsVisibility.name?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.nameHeader,position:"relative"},"data-min":100,"data-name":"nameHeader"},this.getFilterInput("name"),this.renderHandleRight()):null,!this.state.statesView&&M.createElement(M.Fragment,null,this.columnsVisibility.type?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.type,position:"relative"},"data-min":100,"data-name":"type"},this.getFilterSelectType(),this.renderHandleRight()):null,this.columnsVisibility.role?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.role,position:"relative"},"data-min":100,"data-name":"role"},this.getFilterSelectRole(),this.renderHandleRight()):null,this.columnsVisibility.room?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.room,position:"relative"},"data-min":100,"data-name":"room"},this.getFilterSelectRoom(),this.renderHandleRight()):null,this.columnsVisibility.func?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.func,position:"relative"},"data-min":100,"data-name":"func"},this.getFilterSelectFunction(),this.renderHandleRight()):null),this.state.statesView&&M.createElement(M.Fragment,null,M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.changedFrom,position:"relative"},"data-min":100,"data-name":"changedFrom"},this.props.t("ra_Changed from"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.qualityCode,position:"relative"},"data-min":100,"data-name":"qualityCode"},this.props.t("ra_Quality code"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.timestamp,position:"relative"},"data-min":100,"data-name":"timestamp"},this.props.t("ra_Timestamp"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.lastChange,position:"relative"},"data-min":100,"data-name":"lastChange"},this.props.t("ra_Last change"),this.renderHandleRight())),this.adapterColumns.map(t=>M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility[t.id]},title:t.adapter,key:t.id,"data-min":100,"data-name":t.id},t.name)),this.columnsVisibility.val?M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val"},this.props.t("ra_Value"),e):null,this.columnsVisibility.buttons?M.createElement("div",{title:this.texts.filter_custom,style:{...w.headerCell,width:this.columnsVisibility.buttons}}," ",this.getFilterSelectCustoms()):null)}renderToast(){return M.createElement(j.Snackbar,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:M.createElement(j.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""})},M.createElement(Ne,{fontSize:"small"}))})}componentDidUpdate(){if(this.tableRef.current){const e=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==e?setTimeout(()=>this.setState({scrollBarWidth:e}),100):this.selectFirst&&this.scrollToItem(this.selectFirst)}}scrollToItem(e){this.selectFirst="";const t=window.document.getElementById(e);t==null||t.scrollIntoView({behavior:"auto",block:"center",inline:"center"})}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const e=this.props.objectCustomDialog;return M.createElement(e,{reportChangedIds:t=>this.changedIds=[...t],objectIDs:this.state.customDialog,allVisibleObjects:!!this.state.customDialogAll,expertMode:this.state.filter.expertMode,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,t:this.props.t,lang:this.props.lang,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objects:this.objects,customsInstances:this.info.customs,onClose:()=>{var t;this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),(t=this.props.router)==null||t.doNavigate("tab-objects")},systemConfig:this.systemConfig})}return null}onUpdate(e){this.props.socket.setState(this.edit.id,{val:e.val,ack:e.ack,q:e.q||0,expire:e.expire||void 0}).catch(t=>this.showError(`Cannot write value: ${t}`))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const e=this.props.objectBrowserEditObject;return M.createElement(e,{key:this.state.editObjectDialog,obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,dialogName:this.props.dialogName,aliasTab:this.state.editObjectAlias,t:this.props.t,expertMode:!!this.state.filter.expertMode,onNewObject:t=>this.props.socket.setObject(t._id,t).then(()=>this.setState({editObjectDialog:t._id,editObjectAlias:!1},()=>this.onSelect(t._id))).catch(i=>this.showError(`Cannot write object: ${i}`)),onClose:t=>{var i,r;if(t){let o;this.state.editObjectDialog.startsWith("alias.")&&JSON.stringify((i=this.objects[this.state.editObjectDialog].common)==null?void 0:i.alias)!==JSON.stringify((r=t.common)==null?void 0:r.alias)&&(o=this.state.editObjectDialog),this.props.socket.setObject(t._id,t).then(()=>{o&&this.subscribes.includes(o)&&(this.unsubscribe(o),setTimeout(()=>this.subscribe(o),100))}).catch(n=>this.showError(`Cannot write object: ${n}`))}this.setState({editObjectDialog:"",editObjectAlias:!1})},width:this.props.width})}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const e=this.props.objectBrowserViewFile;return M.createElement(e,{key:"viewFile",obj:this.objects[this.state.viewFileDialog],socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({viewFileDialog:""})})}renderAliasEditorDialog(){if(!this.props.objectBrowserAliasEditor||!this.state.showAliasEditor)return null;const e=this.props.objectBrowserAliasEditor;return M.createElement(e,{key:"editAlias",obj:this.objects[this.state.showAliasEditor],roleArray:this.info.roles,objects:this.objects,socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({showAliasEditor:""}),onRedirect:(t,i)=>setTimeout(()=>this.onSelect(t,!1,()=>this.expandAllSelected(()=>{this.scrollToItem(t),setTimeout(()=>this.setState({editObjectDialog:t,showAliasEditor:"",editObjectAlias:!0}),300)})),i||0)})}showAddDataPointDialog(e,t,i){this.setState({showContextMenu:null,modalNewObj:{id:e,initialType:t,initialStateType:i}})}renderAliasMenu(){return this.state.aliasMenu?M.createElement(j.Menu,{key:"aliasmenu",open:!0,anchorEl:window.document.getElementById(`alias_${this.state.aliasMenu}`),onClose:()=>this.setState({aliasMenu:""})},this.info.aliasesMap[this.state.aliasMenu].map((e,t)=>M.createElement(j.MenuItem,{key:e,onClick:()=>this.onSelect(e)},M.createElement(j.ListItemText,null,this.renderAliasLink(this.state.aliasMenu,t,{"& .admin-browser-arrow":{mr:"8px"}}))))):null}renderContextMenu(){var L,g,y,T,D,z,p;if(!this.state.showContextMenu)return null;const e=this.state.showContextMenu.item,t=e.data.id,i=[],r=e.data.obj;let o="";if(this.props.objectEditOfAccessControl&&this.state.filter.expertMode)if(!r)o="---";else{const C=r.acl?r.type==="state"?r.acl.state:r.acl.object:0,m=r.acl&&(r.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);o=Number.isNaN(Number(C))?Number(m).toString(16):Number(C).toString(16)}const n=!this.props.notEditable&&r&&(this.state.filter.expertMode||r.type==="state"||r.type==="channel"||r.type==="device"),a=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="channel"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",c=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",l=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",N=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",u={EDIT:{key:"0",visibility:!!(this.props.objectBrowserEditObject&&r&&(this.state.filter.expertMode||it.isNonExpertId(t))),icon:M.createElement(mi,{fontSize:"small",style:this.styles.contextMenuEdit}),label:this.texts.editObject,onClick:()=>this.setState({editObjectDialog:e.data.id,showContextMenu:null,editObjectAlias:!1})},EDIT_VALUE:{key:"1",visibility:!!(this.states&&!this.props.notEditable&&r&&r.type==="state"&&((L=r.common)==null?void 0:L.type)!=="file"&&(this.state.filter.expertMode||r.common.write!==!1)),icon:M.createElement(Ng,{fontSize:"small",style:this.styles.contextMenuEditValue}),label:this.props.t("ra_Edit value"),onClick:()=>{this.edit={val:this.states[t]?this.states[t].val:"",q:this.states[t]&&this.states[t].q||0,ack:!1,id:t},this.setState({updateOpened:!0,showContextMenu:null})}},VIEW:{visibility:!!this.props.objectBrowserViewFile&&(r==null?void 0:r.type)==="state"&&((g=r.common)==null?void 0:g.type)==="file",icon:M.createElement(Mg,{fontSize:"small",style:this.styles.contextMenuView}),label:this.props.t("ra_View file"),onClick:()=>this.setState({viewFileDialog:(r==null?void 0:r._id)||"",showContextMenu:null})},CUSTOM:{key:"2",visibility:!(this.props.objectCustomDialog&&this.info.hasSomeCustoms&&r&&r.type==="state"&&((y=r.common)==null?void 0:y.type)!=="file"),icon:M.createElement(ln,{fontSize:"small",style:e.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),style:this.styles.contextMenuCustom,label:this.texts.customConfig,onClick:()=>{var C;this.pauseSubscribe(!0),(C=this.props.router)==null||C.doNavigate(null,"customs",t),this.setState({customDialog:[t],showContextMenu:null})}},ACL:{key:"3",visibility:!!o,icon:o,iconStyle:{fontSize:"smaller"},listItemIconStyle:this.styles.contextMenuACL,style:this.styles.contextMenuACL,label:this.props.t("ra_Edit ACL"),onClick:()=>this.setState({showContextMenu:null,modalEditOfAccess:!0,modalEditOfAccessObjData:e.data})},ROLE:{key:"4",visibility:!!(this.state.filter.expertMode&&n&&this.props.objectBrowserEditRole),icon:M.createElement(HL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit role"),onClick:()=>this.setState({roleDialog:e.data.id,showContextMenu:null})},FUNCTION:{key:"5",visibility:!!n,icon:M.createElement(RL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit function"),onClick:()=>{const C=ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ROOM:{key:"6",visibility:!!n,icon:M.createElement(tg,{fontSize:"small",style:this.styles.contextMenuRoom}),label:this.props.t("ra_Edit room"),onClick:()=>{const C=ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ALIAS:{key:"7",visibility:!!(!this.props.notEditable&&this.props.objectBrowserAliasEditor&&this.props.objectBrowserEditObject&&(r==null?void 0:r.type)==="state"&&((T=r.common)==null?void 0:T.type)!=="file"),icon:M.createElement(gN,{style:(D=r==null?void 0:r.common)!=null&&D.alias?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),label:this.info.aliasesMap[e.data.id]||e.data.id.startsWith("alias.0.")?this.props.t("ra_Edit alias"):this.props.t("ra_Create alias"),onClick:()=>{var C;(C=r==null?void 0:r.common)!=null&&C.alias?this.setState({showContextMenu:null,editObjectDialog:e.data.id,editObjectAlias:!0}):this.setState({showContextMenu:null,showAliasEditor:e.data.id})}},CREATE:{key:"+",visibility:(e.data.id.startsWith("0_userdata.0")||e.data.id.startsWith("javascript."))&&(a||c||l||N),icon:M.createElement(un,{fontSize:"small",style:this.styles.cellButtonsButtonWithCustoms}),style:w.contextMenuWithSubMenu,label:this.texts.create,subMenu:[{label:this.texts.createBooleanState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","boolean")},{label:this.texts.createNumberState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","number")},{label:this.texts.createStringState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","string")},{label:this.texts.createState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state")},{label:this.texts.createChannel,visibility:c,icon:M.createElement(A4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"channel")},{label:this.texts.createDevice,visibility:l,icon:M.createElement(m4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"device")},{label:this.texts.createFolder,icon:M.createElement(NN,{fontSize:"small"}),visibility:N,onClick:()=>this.showAddDataPointDialog(e.data.id,"folder")}]},RENAME:{key:"8",visibility:!!(!this.props.notEditable&&this.props.objectMoveRenameDialog&&!e.data.id.startsWith("system.")&&e.data.id.split(".").length>2&&(this.props.expertMode||e.data.id.startsWith("javascript.0.")||e.data.id.startsWith("0_userdata.0."))),icon:M.createElement(og,null),label:this.props.t("ra_Rename_Move_Copy"),onClick:()=>{const C=Object.keys(this.objects),m=`${e.data.id}.`;this.setState({showContextMenu:null,showRenameDialog:{id:e.data.id,childrenIds:C.filter(I=>I.startsWith(m))}})}},DELETE:{key:"Delete",visibility:!!(this.props.onObjectDelete&&((z=e.children)!=null&&z.length||r&&!((p=r.common)!=null&&p.dontDelete))),icon:M.createElement(nt,{fontSize:"small",style:this.styles.contextMenuDelete}),style:this.styles.contextMenuDelete,label:this.texts.deleteObject,onClick:()=>this.setState({showContextMenu:null},()=>this.showDeleteDialog({id:t,obj:r||{},item:e}))}};return Object.keys(u).forEach(C=>{var m,I;u[C].visibility&&(u[C].subMenu?(i.push(M.createElement(j.MenuItem,{key:C,href:"",onClick:h=>this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position,subItem:C,subAnchor:h.target}}),style:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label,"..."),M.createElement("div",{style:{...w.contextMenuKeys,opacity:1}},M.createElement(BL,null)))),((m=this.state.showContextMenu)==null?void 0:m.subItem)===C&&i.push(M.createElement(j.Menu,{key:"subContextMenu",open:!0,anchorEl:this.state.showContextMenu.subAnchor,onClose:()=>{this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position}}),this.contextMenu=null}},(I=u[C].subMenu)==null?void 0:I.map(h=>h.visibility?M.createElement(j.MenuItem,{key:h.label,onClick:h.onClick,style:h.style},M.createElement(j.ListItemIcon,{style:{...h.iconStyle,...h.listItemIconStyle||void 0}},h.icon),M.createElement(j.ListItemText,null,h.label)):null)))):i.push(M.createElement(j.MenuItem,{key:C,onClick:u[C].onClick,sx:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label),u[C].key?M.createElement("div",{style:w.contextMenuKeys},`Alt+${u[C].key==="Delete"?this.props.t("ra_Del"):u[C].key}`):null)))}),i.length?M.createElement(j.Menu,{key:"contextMenu",open:!0,onKeyUp:C=>{C.preventDefault(),C.altKey&&Object.keys(u).forEach(m=>{C.key===u[m].key&&u[m].onClick&&u[m].onClick()})},anchorReference:"anchorPosition",anchorPosition:this.state.showContextMenu.position,onClose:()=>{this.setState({showContextMenu:null}),this.contextMenu=null}},i):(setTimeout(()=>this.setState({showContextMenu:null}),100),null)}renderEditValueDialog(){var r;if(!this.state.updateOpened||!this.props.objectBrowserValue)return null;if(!this.edit.id)return console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`),null;if(!this.objects[this.edit.id])return console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`),null;const e=(r=this.objects[this.edit.id].common)!=null&&r.type?this.objects[this.edit.id].common.type:typeof this.edit.val,t=this.objects[this.edit.id].common.role,i=this.props.objectBrowserValue;return M.createElement(i,{t:this.props.t,lang:this.props.lang,type:e,role:t||"",states:O.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,theme:this.props.theme,expertMode:!!this.state.filter.expertMode,value:this.edit.val,socket:this.props.socket,object:this.objects[this.edit.id],defaultHistory:this.defaultHistory,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,onClose:o=>{this.setState({updateOpened:!1}),o&&this.onUpdate(o)},width:this.props.width})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer),this.styleTheme!==this.props.themeType&&(this.styles={cellIdIconFolder:O.getStyle(this.props.theme,w.cellIdIconFolder),cellIdIconDocument:O.getStyle(this.props.theme,w.cellIdIconDocument),iconDeviceError:O.getStyle(this.props.theme,w.iconDeviceError),iconDeviceConnected:O.getStyle(this.props.theme,w.iconDeviceConnected),iconDeviceDisconnected:O.getStyle(this.props.theme,w.iconDeviceDisconnected),cellButtonsButtonWithCustoms:O.getStyle(this.props.theme,w.cellButtonsButtonWithCustoms),invertedBackground:O.getStyle(this.props.theme,w.invertedBackground),invertedBackgroundFlex:O.getStyle(this.props.theme,w.invertedBackgroundFlex),contextMenuEdit:O.getStyle(this.props.theme,w.contextMenuEdit),contextMenuEditValue:O.getStyle(this.props.theme,w.contextMenuEditValue),contextMenuView:O.getStyle(this.props.theme,w.contextMenuView),contextMenuCustom:O.getStyle(this.props.theme,w.contextMenuCustom),contextMenuACL:O.getStyle(this.props.theme,w.contextMenuACL),contextMenuRoom:O.getStyle(this.props.theme,w.contextMenuRoom),contextMenuRole:O.getStyle(this.props.theme,w.contextMenuRole),contextMenuDelete:O.getStyle(this.props.theme,w.contextMenuDelete),filterInput:O.getStyle(this.props.theme,w.headerCellInput,w.filterInput),iconCopy:O.getStyle(this.props.theme,w.cellButtonsValueButton,w.cellButtonsValueButtonCopy),aliasReadWrite:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasReadWrite),aliasAlone:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasAlone)},this.styleTheme=this.props.themeType);const e=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==e&&this.objects&&this.root){const i={count:0};Gn(this.root,this.state.filter,this.props.lang,this.objects,void 0,i,this.props.customFilter,this.props.types),i.count<500&&!this.state.expandAllVisible?setTimeout(()=>this.setState({expandAllVisible:!0})):i.count>=500&&this.state.expandAllVisible&&setTimeout(()=>this.setState({expandAllVisible:!1})),this.lastAppliedFilter=e}if(this.unsubscribeTimer=setTimeout(()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()},200),!this.state.loaded)return M.createElement(j.CircularProgress,{key:`${this.props.dialogName}_c`});const t=this.root?this.renderItem(this.root,void 0):null;return M.createElement(tSe,{key:this.props.dialogName},M.createElement("style",null,` +@keyframes newValueAnimation-light { + 0% { + color: #00f900; + } + 80% { + color: #008000; + } + 100% { + color: #000; + } +} +@keyframes newValueAnimation-dark { + 0% { + color: #00f900; + } + 80% { + color: #008000; + } + 100% { + color: #fff; + } +} +.newValueBrowser-dark { + animation: newValueAnimation-dark 2s ease-in-out; +} +.newValueBrowser-light { + animation: newValueAnimation-light 2s ease-in-out; +} +.highlight-link .iob-link { + text-decoration: underline; + cursor: pointer; +} +`),M.createElement(iSe,null,this.getToolbar()),M.createElement(sSe,null,this.renderHeader(),M.createElement(j.Box,{style:w.tableDiv,ref:this.tableRef,onKeyDown:i=>this.navigateKeyPress(i)},t)),this.renderContextMenu(),this.renderAliasMenu(),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderAliasEditorDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderRenameDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.state.modalEditOfAccessObjData&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}}const NSe=Io()(it);class Z3e extends M.Component{refTypo;height;width;constructor(e){super(e),this.state={closed:this.props.storeId?window.localStorage.getItem(this.props.storeId)==="true":!1},this.height=0,this.width=0,this.refTypo=M.createRef()}componentDidMount(){this.detectHeight()}onClick(){this.props.storeId&&this.props.closed===void 0&&(this.state.closed?window.localStorage.removeItem(this.props.storeId):window.localStorage.setItem(this.props.storeId,"true")),this.props.closed===void 0?this.setState({closed:!this.state.closed},()=>{this.props.onClose&&this.props.onClose(this.state.closed)}):this.props.onClose&&this.props.onClose(!this.props.closed)}detectHeight(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed;this.props.closeable&&!e&&this.refTypo.current&&window.requestAnimationFrame(()=>{(this.props.closed!==void 0?this.props.closed:this.state.closed)||this.refTypo.current&&(!this.height||this.width!==this.refTypo.current.clientWidth)&&(this.height=this.refTypo.current.clientHeight,this.width=this.refTypo.current.clientWidth,this.forceUpdate())})}componentDidUpdate(){this.detectHeight()}render(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed,t=e?xg:Ne;return M.createElement(j.Box,{className:"iom-info-box",style:{whiteSpace:"preserve",display:"flex",gap:8,alignItems:e||this.props.iconPosition==="top"?"flex-start":"center",borderWidth:1,borderStyle:"solid",padding:4,borderRadius:5,marginBottom:8,maxWidth:"100%",transition:"height 0.5s",height:this.props.closeable?e?30:this.height||void 0:void 0,overflow:this.props.closeable?"hidden":void 0,position:"relative",...this.props.style},sx:{borderColor:i=>this.props.type==="ok"?i.palette.info.main:i.palette[this.props.type].main}},this.props.type==="ok"?M.createElement(Oe,{style:{color:"#0F0"}}):this.props.type==="info"?M.createElement(la,{color:"primary"}):M.createElement(_g,{color:this.props.type}),M.createElement(j.Typography,{ref:this.refTypo},this.props.children),this.props.closeable?M.createElement(t,{sx:{color:i=>i.palette.mode==="dark"?"lightgray":"gray",cursor:"pointer",position:"absolute",top:4,right:4},onClick:()=>this.onClick()}):null,this.props.closeable?M.createElement("div",{style:{width:22}}):null,e?M.createElement(j.Box,{component:"div",sx:i=>{const r=i.palette[this.props.type==="ok"?"info":this.props.type].main;return{background:`linear-gradient(${r}00 0%, ${r}10 60%, ${r}90 100%)`}},style:{bottom:0,position:"absolute",left:0,right:0,height:10}}):null)}}const E={hr:{border:0,borderTop:"1px solid gray"},scrollWindow:{width:"100%",overflow:"auto",height:"calc(100% - 22px)"},rowDiv:{width:"100%"},modeDiv:{width:200,display:"inline-block",verticalAlign:"top"},settingsDiv:{display:"inline-block",verticalAlign:"top"},inputTime:{width:90,marginTop:0,marginLeft:5},inputDate:{width:140,marginTop:0,marginLeft:5},inputEvery:{width:40,marginLeft:5,marginRight:5},inputRadio:{padding:"4px 12px",verticalAlign:"top"},inputGroup:{maxWidth:400,display:"inline-block"},inputGroupElement:{width:120},inputDateDay:{width:60},inputDateDayCheck:{padding:4},inputSmallCheck:{padding:0},rowOnce:{},rowDays:s=>({background:s.palette.mode!=="dark"?"#ddeaff":"#4b5057"}),rowDows:s=>({background:s.palette.mode!=="dark"?"#DDFFDD":"#52646c"}),rowMonths:s=>({background:s.palette.mode!=="dark"?"#DDFFFF":"#1f5557"}),rowMonthsDates:s=>({background:s.palette.mode!=="dark"?"#EEFFFF":"#3c5737",maxWidth:600}),rowYears:s=>({background:s.palette.mode!=="dark"?"#fbffdd":"#574b33"}),rowDowsDows:s=>({background:s.palette.mode!=="dark"?"#EEFFEE":"#3d4c54",pl:"10px",pb:"10px"})},en=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],zr=["January","February","March","April","May","June","July","August","September","October","November","December"],tn={minutes:"minutes",hours:"hours"},ji=["sunrise","sunriseEnd","goldenHourEnd","solarNoon","goldenHour","sunsetStart","sunset","dusk","nauticalDusk","night","nightEnd","nauticalDawn","dawn","nadir"];function gt(s){return s<10?`0${s}`:`${s}`}const Pl={time:{exactTime:!1,start:"00:00",end:"23:59",mode:"hours",interval:1},period:{once:"",days:1,dows:"",dates:"",weeks:0,months:"",years:0,yearMonth:0,yearDate:0},valid:{from:"",to:""}};function sn(s){const e=s.split(".");return e.length===3?`${e[2]}-${e[1]}-${e[0]}`:""}class de extends x.Component{refFrom;refTo;refOnce;timerOnce=null;timerFrom=null;timerTo=null;constructor(e){super(e);let t;if(this.props.schedule&&typeof this.props.schedule=="string"&&this.props.schedule[0]==="{")try{t=JSON.parse(this.props.schedule)}catch{}else typeof this.props.schedule=="object"&&(t=this.props.schedule);(!t||!Object.keys(t).length)&&(setTimeout(()=>this.onChange(this.state.schedule,!0),200),t=Pl),t={...Pl,...t},t.valid.from=t.valid.from||de.now2string(),this.refFrom=M.createRef(),this.refTo=M.createRef(),this.refOnce=M.createRef(),this.state={schedule:t,desc:de.state2text(t)},JSON.stringify(t)!==this.props.schedule&&setTimeout(()=>this.props.onChange&&this.props.onChange(JSON.stringify(t)),100)}onChange(e,t){const i=JSON.stringify(e)!==JSON.stringify(this.state.schedule);if(t||i){i&&this.setState({schedule:e,desc:de.state2text(e)});const r=JSON.parse(JSON.stringify(e));if(r.period.once){const o=r.period.once;delete r.period,r.period={once:o},delete r.valid}else if(r.period.days){const o=r.period.days,n=r.period.dows;delete r.period,r.period={days:o},n&&n!=="[]"&&(r.period.dows=n)}else if(r.period.weeks){const o=r.period.weeks,n=r.period.dows;delete r.period,r.period={weeks:o},n&&n!=="[]"&&(r.period.dows=n)}else if(r.period.months){const o=r.period.months,n=r.period.dates;delete r.period,r.period={months:o},n&&n!=="[]"&&(r.period.dates=n)}else if(r.period.years){const o=r.period.years,n=r.period.yearMonth,a=r.period.yearDate;delete r.period,r.period={years:o,yearDate:a},n&&(r.period.yearMonth=n)}if(r.time.exactTime?(delete r.time.end,delete r.time.mode,delete r.time.interval):delete r.time.exactTime,r.valid){if(r.valid.to||delete r.valid.to,r.period.days===1||r.period.weeks===1||r.period.months===1||r.period.years===1){const o=de.string2date(r.valid.from),n=new Date;n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setMilliseconds(0),o<=n&&delete r.valid.from}!r.valid.from&&!r.valid.to&&delete r.valid}this.props.onChange&&this.props.onChange(JSON.stringify(r),de.state2text(e))}}static state2text(e){if(typeof e=="string")try{e=JSON.parse(e)}catch{return""}const t=[],i=de.string2date(e.valid.from);if(e.period.once){const r=de.string2date(e.period.once),o=new Date;if(o.setMilliseconds(0),o.setSeconds(0),o.setMinutes(0),o.setHours(0),rd.t(en[n]));if(o.length===1)t.push(d.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(d.t("sch_desc_everyDay"));else{const n=o.pop();t.push(d.t("sch_desc_onWeekdays",o.join(", "),n))}}}else t.push(d.t("sch_desc_everyDay"));else t.push(d.t("sch_desc_everyNDay",e.period.days.toString()));else if(e.period.weeks)if(e.period.weeks===1?t.push(d.t("sch_desc_everyWeek")):t.push(d.t("sch_desc_everyNWeeks",e.period.weeks.toString())),e.period.dows){const r=JSON.parse(e.period.dows);if(r.length===2&&r[0]===0&&r[1]===6)t.push(d.t("sch_desc_onWeekends"));else if(r.length===5&&r[0]===1&&r[1]===2&&r[2]===3&&r[3]===4&&r[4]===5)t.push(d.t("sch_desc_onWorkdays"));else{const o=r.map(n=>d.t(en[n]));if(o.length===1)t.push(d.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(d.t("sch_desc_everyDay"));else{const n=o.pop();t.push(d.t("sch_desc_onWeekdays",o.join(", "),n))}}}else return d.t("sch_desc_never");else if(e.period.months){if(e.period.dates){const r=JSON.parse(e.period.dates);if(r.length===1)t.push(d.t("sch_desc_onDate",r[0]));else if(r.length===31)t.push(d.t("sch_desc_onEveryDate"));else if(r.length){const o=r.pop();t.push(d.t("sch_desc_onDates",r.join(", "),o))}else return d.t("sch_desc_never")}else t.push(d.t("sch_desc_onEveryDate"));if(e.period.months===1)t.push(d.t("sch_desc_everyMonth"));else if(typeof e.period.months=="number")t.push(d.t("sch_desc_everyNMonths",e.period.months.toString()));else{const o=JSON.parse(e.period.months).map(n=>d.t(zr[n-1]));if(!o.length)return d.t("sch_desc_never");if(o.length===1)t.push(d.t("sch_desc_onMonth",o[0]));else if(o.length===12)t.push(d.t("sch_desc_everyMonth"));else{const n=o.pop();t.push(d.t("sch_desc_onMonths",o.join(", "),n))}}}else e.period.years&&(e.period.years===1?t.push(d.t("sch_desc_everyYear")):t.push(d.t("sch_desc_everyNYears",e.period.years.toString())),t.push(d.t("sch_desc_onDate",e.period.yearDate.toString(),e.period.yearMonth?d.t(zr[e.period.yearMonth-1]):d.t("sch_desc_everyMonth"))));if(e.time.exactTime)ji.includes(e.time.start)?t.push(d.t("sch_desc_atTime",d.t(`sch_astro_${e.time.start}`))):t.push(d.t("sch_desc_atTime",e.time.start));else{e.time.mode===tn.minutes?e.time.interval===1?t.push(d.t("sch_desc_everyMinute")):t.push(d.t("sch_desc_everyNMinutes",e.time.interval.toString())):e.time.interval===1?t.push(d.t("sch_desc_everyHour")):t.push(d.t("sch_desc_everyNHours",e.time.interval.toString()));const r=ji.indexOf(e.time.start)!==-1?d.t(`sch_astro_${e.time.start}`):e.time.start,o=ji.indexOf(e.time.end)!==-1?d.t(`sch_astro_${e.time.end}`):e.time.end;(r!=="00:00"||o!=="24:00"&&o!=="23:59")&&t.push(d.t("sch_desc_intervalFromTo",r,o))}return e.period.once||(i.getTime()>Date.now()&&e.valid.to?t.push(d.t("sch_desc_validFromTo",e.valid.from,e.valid.to)):i.getTime()>Date.now()?t.push(d.t("sch_desc_validFrom",e.valid.from)):e.valid.to&&t.push(d.t("sch_desc_validTo",e.valid.to))),t.join(" ")}getTimePeriodElements(){const e=this.state.schedule;let t=!1,i=!1,r=!1,o=!0;return e.time.start==="00:00"&&e.time.end==="24:00"?(t=!0,o=!1):e.time.start==="sunrise"?(i=!0,o=!1):e.time.start==="sunset"&&(r=!0,o=!1),M.createElement("div",{key:"timePeriod",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!e.time.exactTime,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.exactTime=!1,this.onChange(n)}}),label:d.t("sch_intervalTime")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},!e.time.exactTime&&M.createElement("div",null,M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!o,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="23:59",this.onChange(n)}}),label:o?"":d.t("sch_fromTo")}),o&&[M.createElement(j.TextField,{variant:"standard",style:{...E.inputTime,marginRight:10},key:"exactTimeFrom",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.start,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.start=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_from"),margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeTo",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.end,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.end=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_to"),margin:"normal"})])),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="24:00",this.onChange(n)}}),label:d.t("sch_wholeDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!i,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunrise",n.time.end="sunset",this.onChange(n)}}),label:d.t("sch_astroDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!r,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunset",n.time.end="sunrise",this.onChange(n)}}),label:d.t("sch_astroNight")}))),!e.time.exactTime&&this.getPeriodSettingsMinutes(o)))}getTimeExactElements(){const e=ji.includes(this.state.schedule.time.start);return M.createElement("div",{key:"timeExact",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!this.state.schedule.time.exactTime,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.time.exactTime=!0,this.onChange(t)}}),label:d.t("sch_exactTime")})),this.state.schedule.time.exactTime&&M.createElement(j.Select,{variant:"standard",value:e?this.state.schedule.time.start:"00:00",onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{key:"specific",value:"00:00"},d.t("sch_specificTime")),ji.map(t=>M.createElement(j.MenuItem,{key:t,value:t},d.t(`sch_astro_${t}`)))),this.state.schedule.time.exactTime&&!e&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeValue",value:this.state.schedule.time.start,type:"time",sx:t=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:t.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}static getDivider(){return M.createElement("hr",{style:E.hr})}getPeriodModes(){const e=this.state.schedule,t=!e.period.dows&&!e.period.months&&!e.period.dates&&!e.period.years&&!e.period.days&&!e.period.weeks;return t&&!e.period.once&&(e.period.once=de.now2string(!0)),[M.createElement("div",{key:"once",style:{...E.rowDiv,...E.rowOnce}},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.once=i.period.once||de.now2string(!0),i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,this.onChange(i)}}),label:d.t("sch_periodOnce")})),t&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputDate,type:"date",ref:this.refOnce,key:"exactDateAt",defaultValue:sn(e.period.once),onChange:i=>{this.timerOnce&&clearTimeout(this.timerOnce),this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="#ff000030"),this.timerOnce=setTimeout(r=>{this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),n=de.string2date(r);n.toString()!=="Invalid Date"&&(o.period.once=`${gt(n.getDate())}.${gt(n.getMonth()+1)}.${n.getFullYear()}`,this.onChange(o))},1500,i.target.value)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_at"),margin:"normal"}))),M.createElement(j.Box,{component:"div",key:"days",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDays)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.days,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=1,i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodDaily")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsDaily(),e.period.days?this.getPeriodSettingsWeekdays():null)),M.createElement(j.Box,{component:"div",key:"weeks",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDows)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.weeks,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=e.period.weeks?0:1,i.period.dows=e.period.dows||"[0]",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodWeekly")})),M.createElement(j.Box,{component:"div",style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsWeekly()),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowDowsDows)},this.state.schedule.period.weeks?this.getPeriodSettingsWeekdays():null))),M.createElement(j.Box,{component:"div",key:"months",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowMonths)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.months,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,i.period.dows="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodMonthly")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsMonthly(),e.period.months?M.createElement(j.Box,null,M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.period.dates,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=i.period.months||1;const r=[];for(let o=1;o<=31;o++)r.push(o);i.period.dates=i.period.dates||JSON.stringify(r),i.period.dows="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodDates")})),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},this.getPeriodSettingsDates())):null)),M.createElement(j.Box,{component:"div",key:"years",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowYears)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.years,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=1,i.period.yearDate=1,i.period.yearMonth=1,i.period.dows="",i.period.months=0,i.period.dates="",i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodYearly")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsYearly()),!!e.period.years&&M.createElement("div",{style:E.settingsDiv},M.createElement("span",null,d.t("sch_on")),M.createElement(j.Input,{key:"input",value:this.state.schedule.period.yearDate,style:E.inputEvery,type:"number",inputProps:{min:1,max:31},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearDate=parseInt(i.target.value,10),r.period.yearDate<1&&(r.period.yearDate=31),r.period.yearDate>31&&(r.period.yearDate=1),this.onChange(r)}}),M.createElement(j.Select,{variant:"standard",value:e.period.yearMonth,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearMonth=i.target.value,this.onChange(r)}},M.createElement(j.MenuItem,{key:"every",value:0},d.t("sch_yearEveryMonth")),zr.map((i,r)=>M.createElement(j.MenuItem,{key:i,value:r+1},d.t(i)))))))]}getPeriodSettingsMinutes(e){return M.createElement("div",{style:{display:"inline-block",marginTop:e?15:"inherit"}},M.createElement("label",{style:{marginLeft:4,marginRight:4}},d.t("sch_every")),M.createElement(j.Input,{value:this.state.schedule.time.interval,style:{...E.inputEvery,verticalAlign:"bottom"},type:"number",inputProps:{min:1},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.interval=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement(j.Select,{variant:"standard",value:this.state.schedule.time.mode,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.mode=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{value:tn.minutes},d.t("sch_periodMinutes")),M.createElement(j.MenuItem,{value:tn.hours},d.t("sch_periodHours"))))}getPeriodSettingsWeekdays(){const e=this.state.schedule,t=e.period.dows&&e.period.dows!=="[1, 2, 3, 4, 5]"&&e.period.dows!=="[0, 6]";return[M.createElement("div",{key:"workdays"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[1, 2, 3, 4, 5]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[1, 2, 3, 4, 5]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:d.t("sch_periodWorkdays")})),M.createElement("div",{key:"weekend"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[0, 6]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:d.t("sch_periodWeekend")})),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 1, 2, 3, 4, 5, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:d.t("sch_periodWeekdays")}),t&&(e.period.days===1||e.period.weeks)&&M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,width:150}},[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:`specific_${i}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:e.period.dows.includes(i.toString()),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state.schedule));let n;try{n=JSON.parse(o.period.dows)}catch{n=[]}r.target.checked&&!n.includes(i)?n.push(i):!r.target.checked&&n.includes(i)&&n.splice(n.indexOf(i),1),n.sort((a,c)=>a-c),o.period.dows=JSON.stringify(n),o.period.days&&(o.period.days=1),this.onChange(o)}}),label:d.t(en[i])}))))]}getPeriodSettingsDaily(){if(!this.state.schedule.period.days)return null;const e=this.state.schedule;return[M.createElement("div",{key:"every_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days===1&&!e.period.dows,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=1,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEveryDay")})),M.createElement("div",{key:"everyN_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=2,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.days>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.days,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=parseInt(t.target.value,10),i.period.dows="",this.onChange(i)}}),M.createElement("span",{key:"span",style:{paddingRight:10}},d.t("sch_periodDay"))])]}getPeriodSettingsWeekly(){if(!this.state.schedule.period.weeks)return null;const e=this.state.schedule;return[M.createElement("div",{key:"radios",style:{display:"inline-block",verticalAlign:"top"}},M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=1,this.onChange(t)}}),label:d.t("sch_periodEveryWeek")})),M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.weeks>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.weeks,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement("span",{key:"text"},d.t("sch_periodWeek"))]))]}getPeriodSettingsDates(){if(!this.state.schedule.period.dates)return null;const e=this.state.schedule,t=[];for(let r=1;r<=31;r++)t.push(r);const i=JSON.parse(e.period.dates);return M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,maxWidth:620}},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:i.length===31,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[];for(let n=1;n<=31;n++)o.push(n);r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:d.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!i.length,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.dates="[]",this.onChange(r)}}),label:d.t("sch_no_one")}),i.length!==31&&!!i.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[],n=JSON.parse(r.period.dates);for(let a=1;a<=31;a++)n.includes(a)||o.push(a);o.sort((a,c)=>a-c),r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:d.t("sch_invert")}),M.createElement("div",null),t.map(r=>M.createElement(j.FormControlLabel,{key:`date_${r}`,style:r?E.inputDateDay:{...E.inputDateDay,opacity:0,cursor:"default",userSelect:"none",pointerEvents:"none"},control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:JSON.parse(e.period.dates).includes(r),onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.dates)}catch{a=[]}o.target.checked&&!a.includes(r)?a.push(r):!o.target.checked&&a.includes(r)&&a.splice(a.indexOf(r),1),a.sort((c,l)=>c-l),n.period.dates=JSON.stringify(a),this.onChange(n)}}),label:r<10?[M.createElement("span",{key:"0",style:{opacity:0}},"0"),M.createElement("span",{key:"num"},r)]:r})))}getPeriodSettingsMonthly(){if(!this.state.schedule.period.months)return null;const e=this.state.schedule,t=typeof e.period.months=="string"?JSON.parse(e.period.months):[];return[M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months===1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,this.onChange(e)}}),label:d.t("sch_periodEveryMonth")})),M.createElement("div",{key:"everyN"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months>1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=2,this.onChange(i)}}),label:d.t("sch_periodEvery")}),typeof e.period.months=="number"&&e.period.months>1&&[M.createElement(j.Input,{key:"input",value:e.period.months,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.months=parseInt(i.target.value,10),r.period.months<1&&(r.period.months=1),this.onChange(r)}}),M.createElement("span",{key:"text"},d.t("sch_periodMonth"))]),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="string",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[1,2,3,4,5,6,7,8,9,10,11,12]",this.onChange(i)}}),label:d.t("sch_periodSpecificMonths")}),typeof e.period.months=="string"&&M.createElement(j.FormGroup,{row:!0,style:E.inputGroup},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:t.length===12,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[];for(let o=1;o<=12;o++)r.push(o);i.period.months=JSON.stringify(r),this.onChange(i)}}),label:d.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!t.length,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[]",this.onChange(i)}}),label:d.t("sch_no_one")}),t.length!==12&&!!t.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[],o=JSON.parse(i.period.months);for(let n=1;n<=12;n++)o.includes(n)||r.push(n);r.sort((n,a)=>n-a),i.period.months=JSON.stringify(r),this.onChange(i)}}),label:d.t("sch_invert")}),M.createElement("div",null),zr.map((i,r)=>M.createElement(j.FormControlLabel,{key:`month_${r}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:typeof e.period.months=="string"?JSON.parse(e.period.months).includes(r+1):e.period.months===r,onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.months)}catch{a=[]}o.target.checked&&!a.includes(r+1)?a.push(r+1):!o.target.checked&&a.includes(r+1)&&a.splice(a.indexOf(r+1),1),a.sort((c,l)=>c-l),n.period.months=JSON.stringify(a),this.onChange(n)}}),label:d.t(i)}))))]}getPeriodSettingsYearly(){if(!this.state.schedule.period.years)return null;const e=this.state.schedule;return[M.createElement("div",{key:"year"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=1,this.onChange(t)}}),label:d.t("sch_periodEveryYear")})),M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.years>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.years,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=parseInt(t.target.value,10),i.period.years<1&&(i.period.years=1),this.onChange(i)}}),M.createElement("span",{key:"text"},d.t("sch_periodYear"))])]}static now2string(e){const t=new Date;return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),e&&(t.setDate(t.getDate()+2),t.setMilliseconds(t.getMilliseconds()-1)),`${gt(t.getDate())}.${gt(t.getMonth()+1)}.${gt(t.getFullYear())}`}static string2date(e){let t=e.split(".");return t.length===1?(t=e.split("-"),new Date(parseInt(t[0],10),parseInt(t[1],10)-1,parseInt(t[2],10))):new Date(parseInt(t[2],10),parseInt(t[1],10)-1,parseInt(t[0],10))}getValidSettings(){const e=this.state.schedule;return M.createElement("div",{style:E.rowDiv},M.createElement("div",{style:{...E.modeDiv,verticalAlign:"middle"}},M.createElement("span",{style:{fontWeight:"bold",paddingRight:10}},d.t("sch_valid")),M.createElement("span",null,d.t("sch_validFrom"))),M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",inputRef:this.refFrom,defaultValue:sn(e.valid.from),type:"date",onChange:t=>{this.timerFrom&&clearTimeout(this.timerFrom),this.refFrom.current&&(this.refFrom.current.style.background="#ff000030"),this.timerFrom=setTimeout(i=>{this.timerFrom=null,this.refFrom.current&&(this.refFrom.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=de.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.from=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.valid.to,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.valid.to=t.valid.to?"":de.now2string(!0),this.onChange(t)}}),label:d.t("sch_validTo")}),!!e.valid.to&&M.createElement(j.TextField,{variant:"standard",inputRef:this.refTo,style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",type:"date",defaultValue:sn(e.valid.to),onChange:t=>{this.timerTo&&clearTimeout(this.timerTo),this.refTo.current&&(this.refTo.current.style.background="#ff000030"),this.timerTo=setTimeout(i=>{this.timerTo=null,this.refTo.current&&(this.refTo.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=de.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.to=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}render(){return M.createElement("div",{style:{height:"calc(100% - 48px)",width:"100%",overflow:"hidden"}},M.createElement("div",null,this.state.desc),M.createElement("div",{style:E.scrollWindow},M.createElement("h5",null,d.t("sch_time")),this.getTimePeriodElements(),this.getTimeExactElements(),de.getDivider(),M.createElement("h5",null,d.t("sch_period")),this.getPeriodModes(),!this.state.schedule.period.once&&de.getDivider(),!this.state.schedule.period.once&&this.getValidSettings()))}}const wr={different:{opacity:.5},icon:{width:16,height:16,marginRight:8}};class X3e extends x.Component{wordDifferent;timeout=null;constructor(e){super(e),e.different&&(this.wordDifferent=e.t("ra___different__"));let t;Array.isArray(e.list)?t=e.list.filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}):t=Object.values(e.list).filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}),e.different&&e.value===e.different&&t.unshift({value:e.different,name:this.wordDifferent||""}),e.allowNone&&t.unshift({value:"",name:d.t("ra_none")}),this.state={list:t}}render(){this.props.allowNone&&!this.state.list.find(r=>r.value==="")?this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list));r.unshift({value:"",name:d.t("ra_none")}),this.setState({list:r})},100):!this.props.allowNone&&this.state.list.find(r=>r.value==="")&&(this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list)),o=this.state.list.findIndex(n=>n.value==="");r.splice(o,1),this.setState({list:r})},100));const e=this.state.list.find(r=>r.value===this.props.value||this.props.removePrefix&&r.value.replace(this.props.removePrefix,"")===this.props.value),t=this.props.value===this.props.different?{}:{color:(e==null?void 0:e.color)||void 0,backgroundColor:O.getInvertedColor((e==null?void 0:e.color)||"",this.props.themeType)};this.props.dense&&this.props.style&&Object.assign(t,this.props.style);const i=M.createElement(j.Select,{variant:"standard",disabled:this.props.disabled,value:this.props.value,slotProps:{input:this.props.inputProps},renderValue:()=>M.createElement("span",null,e!=null&&e.icon?M.createElement(me,{src:e==null?void 0:e.icon,style:wr.icon}):null,e==null?void 0:e.name),sx:{"&.MuiSelect-root":this.props.value===this.props.different?wr.different:{}},classes:{root:this.props.dense?this.props.className:""},style:t,onChange:r=>{if(this.props.different&&r.target.value!==this.props.different){let o=null;for(let n=0;nthis.props.onChange(r.target.value));return}}this.props.onChange(this.props.removePrefix?r.target.value.replace(this.props.removePrefix,""):r.target.value)}},this.state.list.map(r=>M.createElement(j.MenuItem,{style:this.props.different&&r.value===this.props.different?wr.different:{color:r.color||void 0,backgroundColor:O.getInvertedColor(r.color||"",this.props.themeType)},key:r.value,value:r.value},r.icon?M.createElement(me,{src:r.icon,style:wr.icon}):null,r.name)));return this.props.dense?i:M.createElement(j.FormControl,{variant:"standard",fullWidth:!!this.props.fullWidth,style:this.props.style,className:this.props.className},M.createElement(j.InputLabel,null,this.props.label),i)}}class K3e extends x.Component{resizerRefTable;resizerActiveIndex;resizerActiveDiv;resizerCurrentWidths;widthFilled=!1;installTimeout=null;resizerMin=0;resizerMinNext=0;resizerPosition=0;resizerOldWidth=0;resizerOldWidthNext=0;constructor(e){super(e),this.resizerRefTable=M.createRef(),this.resizerActiveIndex=null,this.resizerActiveDiv=null,this.resizerCurrentWidths=[]}componentDidMount(){this.resizerInstall()}componentWillUnmount(){this.resizerUninstall()}resizerInstall(){if(this.resizerRefTable.current&&!this.resizerRefTable.current._installed){this.resizerRefTable.current._installed=!0;const e=this.resizerRefTable.current.querySelectorAll("th"),t=(window._localStorage||window.localStorage).getItem(`App.${this.props.name||"history"}.table`);if(this.widthFilled=!1,t)try{this.resizerCurrentWidths=JSON.parse(t),this.widthFilled=!0}catch{}if(this.widthFilled)if(this.resizerCurrentWidths.length!==e.length)this.resizerCurrentWidths=[],this.widthFilled=!1;else{const i=this.resizerRefTable.current.offsetWidth;let r=0;for(let o=0;o20&&(this.resizerCurrentWidths=[],this.widthFilled=!1)}for(let i=0;i{this.installTimeout=null,this.resizerInstall()},100)}resizerReset=()=>{for(let e=0;e{if(this.resizerActiveDiv&&this.resizerActiveIndex!==null){const t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition;(!this.resizerMin||t>this.resizerMin)&&(!this.resizerMinNext||i>this.resizerMinNext)&&(this.resizerCurrentWidths[this.resizerActiveIndex]=t,this.resizerCurrentWidths[this.resizerActiveIndex+1]=i,this.resizerApplyWidths())}};resizerMouseUp=()=>{(window._localStorage||window.localStorage).setItem(`App.${this.props.name||"history"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveIndex=null,this.resizerActiveDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{var t,i,r,o;if(this.resizerActiveIndex===null||this.resizerActiveIndex===void 0){console.log(`Mouse down ${(t=e.target)==null?void 0:t.dataset.index}`),this.resizerActiveIndex=parseInt(((i=e.target)==null?void 0:i.dataset.index)||"0",10),this.resizerActiveDiv=e.target,this.resizerMin=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex]:0,this.resizerMinNext=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex+1]:0,this.resizerPosition=e.clientX;let n;this.resizerCurrentWidths[this.resizerActiveIndex]==="auto"&&(n=(r=this.resizerRefTable.current)==null?void 0:r.querySelectorAll("th"),n&&(this.resizerCurrentWidths[this.resizerActiveIndex]=n[this.resizerActiveIndex].offsetWidth)),this.resizerCurrentWidths[this.resizerActiveIndex+1]==="auto"&&(n=n||((o=this.resizerRefTable.current)==null?void 0:o.querySelectorAll("th")),n&&(this.resizerCurrentWidths[this.resizerActiveIndex+1]=n[this.resizerActiveIndex+1].offsetWidth)),this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveIndex],this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerActiveIndex+1],window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};render(){if(this.props.ready===!1)return M.createElement(j.Skeleton,null);const e={gridTemplateColumns:this.resizerApplyWidths()};return M.createElement(j.Table,{stickyHeader:this.props.stickyHeader,size:this.props.size||"small",className:this.props.className,sx:this.props.sx,ref:this.resizerRefTable,style:{...this.props.style||void 0,...e}},this.props.children)}}const rn={div:{borderRadius:3,padding:"0 3px",lineHeight:"20px",whiteSpace:"nowrap",overflow:"hidden",display:"flex",alignItems:"center"},icon:{width:16,height:16,marginRight:8,verticalAlign:"middle"},text:{display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}};function q3e(s){var o,n,a,c,l,N,u,L,g;const e=s.value;let t;const i=s.removePrefix||"";if(typeof e=="string"){const y=s.list;if(y)if(Array.isArray(y)){const T=y.find(D=>(D==null?void 0:D._id)===i+e);T?t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((o=T.common)==null?void 0:o.icon),color:s.color||((n=T.common)==null?void 0:n.color)}:t={name:e,value:i+e}}else if(y[i+e]){const T=y[i+e];t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((a=T.common)==null?void 0:a.icon),color:s.color||((c=T.common)==null?void 0:c.color)}}else t={name:e,value:i+e,icon:s.icon,color:s.color};else t={name:e,value:i+e,icon:s.icon,color:s.color}}else if(!e||typeof e!="object")t={name:"",value:"",icon:s.icon,color:s.color};else{const y=e;t={name:O.getObjectNameFromObj(y,s.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:y._id,icon:s.icon||((l=y.common)==null?void 0:l.icon),color:s.color||((N=y.common)==null?void 0:N.color)}}const r=t!=null&&t.color?{border:`1px solid ${O.invertColor(t==null?void 0:t.color)}`,color:O.getInvertedColor(t==null?void 0:t.color,s.themeType||"light",!0)||void 0,backgroundColor:t==null?void 0:t.color}:{};return M.createElement("div",{style:{...s.style||void 0,...rn.div,...r||void 0},className:O.clsx(s.className,(u=s.moreClasses)==null?void 0:u.root),title:s.title||t.value},t!=null&&t.icon?M.createElement(me,{src:t==null?void 0:t.icon,className:(L=s.moreClasses)==null?void 0:L.icon,style:rn.icon}):null,M.createElement("div",{style:rn.text,className:(g=s.moreClasses)==null?void 0:g.text},t==null?void 0:t.name))}function e5e({themeName:s,toggleTheme:e,t,className:i,style:r,size:o}){return M.createElement("div",{className:i||void 0,style:r||void 0},M.createElement(j.Tooltip,{title:t("ra_Change color theme"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>e(),size:o||"medium"},s==="dark"&&M.createElement(VL,{className:i}),s==="blue"&&M.createElement(ZL,{className:i}),s==="colored"&&M.createElement(ca,{className:i}),s!=="dark"&&s!=="blue"&&s!=="colored"&&M.createElement(XL,{className:i}))))}function po(){return(po=Object.assign||function(s){for(var e=1;e=0||(r[t]=s[t]);return r}function Hn(s){var e=x.useRef(s),t=x.useRef(function(i){e.current&&e.current(i)});return e.current=s,t.current}var bi=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),s>t?t:s0:D.buttons>0)&&r.current?o(Wl(r.current,D,a.current)):T(!1)},y=function(){return T(!1)};function T(D){var z=c.current,p=Vn(r.current),C=D?p.addEventListener:p.removeEventListener;C(z?"touchmove":"mousemove",g),C(z?"touchend":"mouseup",y)}return[function(D){var z=D.nativeEvent,p=r.current;if(p&&(Bl(z),!function(m,I){return I&&!fi(m)}(z,c.current)&&p)){if(fi(z)){c.current=!0;var C=z.changedTouches||[];C.length&&(a.current=C[0].identifier)}p.focus(),o(Wl(p,z,a.current)),T(!0)}},function(D){var z=D.which||D.keyCode;z<37||z>40||(D.preventDefault(),n({left:z===39?.05:z===37?-.05:0,top:z===40?.05:z===38?-.05:0}))},T]},[n,o]),N=l[0],u=l[1],L=l[2];return x.useEffect(function(){return L},[L]),M.createElement("div",po({},i,{onTouchStart:N,onMouseDown:N,className:"react-colorful__interactive",ref:r,onKeyDown:u,tabIndex:0,role:"slider"}))}),hM=function(s){return s.filter(Boolean).join(" ")},P4=function(s){var e=s.color,t=s.left,i=s.top,r=i===void 0?.5:i,o=hM(["react-colorful__pointer",s.className]);return M.createElement("div",{className:o,style:{top:100*r+"%",left:100*t+"%"}},M.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},he=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*s)/t},LSe=function(s){return DSe(Zn(s))},Zn=function(s){return s[0]==="#"&&(s=s.substring(1)),s.length<6?{r:parseInt(s[0]+s[0],16),g:parseInt(s[1]+s[1],16),b:parseInt(s[2]+s[2],16),a:s.length===4?he(parseInt(s[3]+s[3],16)/255,2):1}:{r:parseInt(s.substring(0,2),16),g:parseInt(s.substring(2,4),16),b:parseInt(s.substring(4,6),16),a:s.length===8?he(parseInt(s.substring(6,8),16)/255,2):1}},gSe=function(s){return TSe(ySe(s))},jSe=function(s){var e=s.s,t=s.v,i=s.a,r=(200-e)*t/100;return{h:he(s.h),s:he(r>0&&r<200?e*t/100/(r<=100?r:200-r)*100:0),l:he(r/2),a:he(i,2)}},Xn=function(s){var e=jSe(s);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},ySe=function(s){var e=s.h,t=s.s,i=s.v,r=s.a;e=e/360*6,t/=100,i/=100;var o=Math.floor(e),n=i*(1-t),a=i*(1-(e-o)*t),c=i*(1-(1-e+o)*t),l=o%6;return{r:he(255*[i,a,n,n,c,i][l]),g:he(255*[c,i,i,a,n,n][l]),b:he(255*[n,n,c,i,i,a][l]),a:he(r,2)}},Cr=function(s){var e=s.toString(16);return e.length<2?"0"+e:e},TSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=r<1?Cr(he(255*r)):"";return"#"+Cr(e)+Cr(t)+Cr(i)+o},DSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=Math.max(e,t,i),n=o-Math.min(e,t,i),a=n?o===e?(t-i)/n:o===t?2+(i-e)/n:4+(e-t)/n:0;return{h:he(60*(a<0?a+6:a)),s:he(o?n/o*100:0),v:he(o/255*100),a:r}},dSe=M.memo(function(s){var e=s.hue,t=s.onChange,i=hM(["react-colorful__hue",s.className]);return M.createElement("div",{className:i},M.createElement($4,{onMove:function(r){t({h:360*r.left})},onKey:function(r){t({h:bi(e+360*r.left,0,360)})},"aria-label":"Hue","aria-valuenow":he(e),"aria-valuemax":"360","aria-valuemin":"0"},M.createElement(P4,{className:"react-colorful__hue-pointer",left:e/360,color:Xn({h:e,s:100,v:100,a:1})})))}),hSe=M.memo(function(s){var e=s.hsva,t=s.onChange,i={backgroundColor:Xn({h:e.h,s:100,v:100,a:1})};return M.createElement("div",{className:"react-colorful__saturation",style:i},M.createElement($4,{onMove:function(r){t({s:100*r.left,v:100-100*r.top})},onKey:function(r){t({s:bi(e.s+100*r.left,0,100),v:bi(e.v-100*r.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+he(e.s)+"%, Brightness "+he(e.v)+"%"},M.createElement(P4,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:Xn(e)})))}),W4=function(s,e){if(s===e)return!0;for(var t in s)if(s[t]!==e[t])return!1;return!0},zSe=function(s,e){return s.toLowerCase()===e.toLowerCase()||W4(Zn(s),Zn(e))};function wSe(s,e,t){var i=Hn(t),r=x.useState(function(){return s.toHsva(e)}),o=r[0],n=r[1],a=x.useRef({color:e,hsva:o});x.useEffect(function(){if(!s.equal(e,a.current.color)){var l=s.toHsva(e);a.current={hsva:l,color:e},n(l)}},[e,s]),x.useEffect(function(){var l;W4(o,a.current.hsva)||s.equal(l=s.fromHsva(o),a.current.color)||(a.current={hsva:o,color:l},i(l))},[o,s,i]);var c=x.useCallback(function(l){n(function(N){return Object.assign({},N,l)})},[]);return[o,c]}var CSe=typeof window<"u"?x.useLayoutEffect:x.useEffect,ISe=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Jl=new Map,pSe=function(s){CSe(function(){var e=s.current?s.current.ownerDocument:document;if(e!==void 0&&!Jl.has(e)){var t=e.createElement("style");t.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Jl.set(e,t);var i=ISe();i&&t.setAttribute("nonce",i),e.head.appendChild(t)}},[])},ASe=function(s){var e=s.className,t=s.colorModel,i=s.color,r=i===void 0?t.defaultColor:i,o=s.onChange,n=U4(s,["className","colorModel","color","onChange"]),a=x.useRef(null);pSe(a);var c=wSe(t,r,o),l=c[0],N=c[1],u=hM(["react-colorful",e]);return M.createElement("div",po({},n,{ref:a,className:u}),M.createElement(hSe,{hsva:l,onChange:N}),M.createElement(dSe,{hue:l.h,onChange:N,className:"react-colorful__last-control"}))},mSe={defaultColor:"000",toHsva:LSe,fromHsva:function(s){return gSe({h:s.h,s:s.s,v:s.v,a:1})},equal:zSe},OSe=function(s){return M.createElement(ASe,po({},s,{colorModel:mSe}))};class ESe extends x.Component{dialogName;filters;filterFunc;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectID.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters||{}});let i=this.props.selected||[];if(Array.isArray(i)||(i=[i]),i=i.filter(r=>r),e.filterFunc)if(typeof e.filterFunc=="string")try{this.filterFunc=new Function("obj",e.filterFunc)}catch{console.error(`Cannot parse filter function: "obj => ${e.filterFunc}"`),this.filterFunc=void 0}else this.filterFunc=e.filterFunc;this.state={selected:i,name:"",selectionBlocked:!1}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}render(){let e;return this.state.name||this.state.selected.length?this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},(this.state.name||this.state.selected[0])+(this.state.name?` [${this.state.selected[0]}]`:""))]:e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},d.t("%s items",this.state.selected.length.toString()))]:e=this.props.title||d.t("ra_Please select object ID..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{height:"95%",p:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)"}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectid_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectid_title",style:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}},e),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden",padding:"8px 4px"}},M.createElement(NSe,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,dateFormat:this.props.dateFormat,defaultFilters:this.filters,dialogName:this.dialogName,isFloatComma:this.props.isFloatComma,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,expertMode:this.props.expertMode,columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types?Array.isArray(this.props.types)?this.props.types:[this.props.types]:["state"],root:this.props.root,t:d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,customFilter:this.props.customFilter,allowNonObjects:this.props.allowNonObjects,onFilterChanged:t=>{this.filters=t,(window._localStorage||window.localStorage).setItem(this.dialogName,JSON.stringify(t))},onSelect:async(t,i,r)=>{let o;if(Array.isArray(t)?o=t:o=[t],JSON.stringify(o)!==JSON.stringify(this.state.selected)){let n=!0;if(this.props.onSelectConfirm){const a={};for(const c of o)try{a[c]=await this.props.socket.getObject(c)}catch{}n=await this.props.onSelectConfirm(o,a)}this.setState({selected:o,name:i,selectionBlocked:!n},()=>r&&this.handleOk())}else r&&this.handleOk()},filterFunc:this.filterFunc,title:"",classes:{}})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_selectid_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length||this.state.selectionBlocked,color:"primary"},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_selectid_cancel_${this.props.dialogName||""}`,color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}function St(s,e,t){if(typeof e=="string"&&(e=e.split(".")),!s)return null;if(e.length===1)return t&&t[s[e[0]]]?t[s[e[0]]]:s[e[0]];const i=e.shift();return St(s[i],e)}function B4(s,e,t){if(typeof e=="string"&&(e=e.split(".")),e.length===1)return s[e[0]]=t;const i=e.shift();return(s[i]===null||s[i]===void 0)&&(s[i]={}),B4(s[i],e,t)}const W={tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:s=>(s.palette.mode==="dark","#888"),color:s=>s.palette.mode==="dark"?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},fieldEditWithButton:{width:"calc(100% - 33px)",display:"inline-block"},fieldEdit:{width:"100%",display:"inline-block",lineHeight:"50px",verticalAlign:"middle"},fieldButton:{width:30,display:"inline-block"},colorDialog:{overflow:"hidden",padding:15},subText:{fontSize:10,fontStyle:"italic"},glow:{animation:"glow 0.2s 2 alternate"}};function Rl(s,e,t,i){const r=St(s,t,i)||"",o=St(e,t,i)||"";return or?1:0}function fSe(s,e,t){return s==="desc"?(i,r)=>Rl(i,r,e,t):(i,r)=>-Rl(i,r,e,t)}function xSe(s,e){const t=s.map((i,r)=>({e:i,i:r}));return t.sort((i,r)=>{const o=e(i.e,r.e);return o||i.i-r.i}),t.map(i=>i.e)}class Kn extends x.Component{selectCallback=null;updateTimeout=null;constructor(e){super(e);let t=(window._localStorage||window.localStorage).getItem(this.props.name||"iob-table")||"[]";try{t=JSON.parse(t)||[]}catch{t=[]}Array.isArray(t)||(t=[]),this.state={opened:t,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:this.props.columns[0].field,showSelectColor:!1}}static getDerivedStateFromProps(e,t){if(e.glowOnChange){const i=[];let r=0;return e.data&&t.data&&e.data.forEach(o=>{var a;r++;const n=(a=t.data)==null?void 0:a.find(c=>c.id===o.id);n?JSON.stringify(n)!==JSON.stringify(o)&&i.push(o.id):i.push(o.id)}),i.length&&i.length!==r?{data:e.data,update:i}:{data:e.data}}return{data:e.data}}renderCellEdit(e,t){let i=St(e,t.field);return Array.isArray(i)&&(i=i[0]),t.lookup?this.renderCellEditSelect(t,i):t.editComponent?this.renderCellEditCustom(t,i,e):t.type==="boolean"||!t.type&&typeof i=="boolean"?this.renderCellEditBoolean(t,i):t.type==="color"?this.renderCellEditColor(t,i):t.type==="oid"?this.renderCellEditObjectID(t,i):t.type==="numeric"?this.renderCellEditNumber(t,i):this.renderCellEditString(t,i)}onChange(e,t,i){const r=this.state.editData?{...this.state.editData}:{};i===t?delete r[e.field]:r[e.field]=i,this.setState({editData:r})}renderCellEditSelect(e,t){return M.createElement(j.Select,{variant:"standard",onChange:i=>this.onChange(e,t,i.target.value),value:this.state.editData&&this.state.editData[e.field]||t},e.lookup&&Object.keys(e.lookup).map((i,r)=>{var o;return M.createElement(j.MenuItem,{key:r,value:i},(o=e.lookup)==null?void 0:o[i])}))}renderCellEditString(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditNumber(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,type:"number",fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditCustom(e,t,i){const r=e.editComponent;return this.state.editData&&this.state.editData[e.field]!==void 0&&(t=this.state.editData[e.field],i=JSON.parse(JSON.stringify(i)),i[e.field]=t),r?M.createElement(r,{value:t,rowData:i,onChange:o=>this.onChange(e,t,o)}):null}renderCellEditBoolean(e,t){return M.createElement(j.Checkbox,{checked:this.state.editData&&this.state.editData[e.field]!==void 0?!!this.state.editData[e.field]:!!t,onChange:i=>this.onChange(e,!!t,i.target.checked),inputProps:{"aria-label":"checkbox"}})}renderSelectColorDialog(){return M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":W.root,"& .MuiPaper-paper":W.paper},onClose:()=>{this.selectCallback=null,this.setState({showSelectColor:!1})},open:this.state.showSelectColor},M.createElement(OSe,{color:this.state.selectIdValue,onChange:e=>this.setState({selectIdValue:e},()=>{this.selectCallback&&this.selectCallback(e)})}))}renderCellEditColor(e,t){const i=this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t;return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:i,inputProps:{style:{backgroundColor:i,color:O.isUseBright(i)?"#FFF":"#000"}},onChange:r=>this.onChange(e,!!t,r.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=r=>this.onChange(e,t,r),this.setState({showSelectColor:!0,selectIdValue:t})},size:"large"},M.createElement(eg,null)))}renderSelectIdDialog(){return this.state.showSelectId&&this.props.socket?M.createElement(ESe,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,selected:this.state.selectIdValue,onClose:()=>this.setState({showSelectId:!1}),onOk:e=>{this.setState({showSelectId:!1,selectIdValue:null});const t=Array.isArray(e)?e[0]:e;t&&this.selectCallback&&(this.selectCallback&&this.selectCallback(t),this.selectCallback=null)}}):null}renderCellEditObjectID(e,t){return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=i=>this.onChange(e,t,i),this.setState({showSelectId:!0,selectIdValue:t})},size:"large"},M.createElement(Eg,null)))}static renderCellNonEdit(e,t){let i=St(e,t.field,t.lookup);return Array.isArray(i)&&(i=i[0]),t.type==="boolean"?M.createElement(j.Checkbox,{checked:!!i,disabled:!0,inputProps:{"aria-label":"checkbox"}}):i}renderCell(e,t,i,r){return this.state.editMode===r&&t.editable!=="never"&&t.editable!==!1?M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},this.renderCellEdit(e,t)):M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},Kn.renderCellNonEdit(e,t))}static renderCellWithSubField(e,t){const i=St(e,t.field,t.lookup);if(t.subField){const r=St(e,t.subField,t.subLookup);return M.createElement("div",null,M.createElement("div",{style:W.mainText},i),M.createElement("div",{style:{...W.subText,...t.subStyle||void 0}},r))}return M.createElement("div",null,M.createElement("div",{style:W.mainText},i))}renderLine(e,t){const i=this.props.levelShift===void 0?24:this.props.levelShift;t=t||0;const r=this.props.data.indexOf(e);if(!e||!t&&e.parentId||t&&!e.parentId)return null;const o=this.state.opened.includes(e.id),n=this.props.data.filter(c=>c.parentId===e.id),a=M.createElement(j.TableRow,{key:e.id,className:`table-row-${(e.id||"").toString().replace(/[.$]/g,"_")}`,style:{...this.state.update&&this.state.update.includes(e.id)&&W.glow||void 0,...W.row,...t?W.rowSecondary:void 0,...!t&&n.length?W.rowMainWithChildren:void 0,...!t&&!n.length?W.rowMainWithoutChildren:void 0,...this.state.editMode!==!1&&this.state.editMode!==r?W.rowNoEdit:void 0,...this.state.deleteMode!==!1&&this.state.deleteMode!==r?W.rowNoEdit:void 0}},M.createElement(j.TableCell,{style:{...W.cell,...W.cellExpand,...t?W.cellSecondary:void 0}},n.length?M.createElement(j.IconButton,{onClick:()=>{const c=[...this.state.opened],l=c.indexOf(e.id);l===-1?(c.push(e.id),c.sort()):c.splice(l,1),(window._localStorage||window.localStorage).setItem(this.props.name||"iob-table",JSON.stringify(c)),this.setState({opened:c})},size:"small"},o?M.createElement(ag,null):M.createElement(dg,null)):null),M.createElement(j.TableCell,{scope:"row",style:{...W.cell,...t?W.cellSecondary:void 0,...this.props.columns[0].cellStyle,paddingLeft:i*t}},this.props.columns[0].subField?Kn.renderCellWithSubField(e,this.props.columns[0]):St(e,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map((c,l)=>!l&&!c.hidden?null:this.renderCell(e,c,t,r)),this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>{if(this.state.editMode!==!1){const c=JSON.parse(JSON.stringify(e));this.state.editData&&Object.keys(this.state.editData).forEach(l=>{var N;return B4(c,l,(N=this.state.editData)==null?void 0:N[l])}),this.setState({editMode:!1},()=>this.props.onUpdate&&this.props.onUpdate(c,e))}else this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e))},size:"large"},M.createElement(Oe,null)):M.createElement(j.IconButton,{disabled:this.state.editMode!==!1,onClick:()=>this.setState({editMode:r,editData:null}),size:"large"},M.createElement(mi,null))):null,this.props.onDelete&&!this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e)),size:"large"},M.createElement(Oe,null)):null):null,this.props.onUpdate||this.props.onDelete?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{onClick:()=>this.setState({editMode:!1,deleteMode:!1}),size:"large"},M.createElement(Ne,null)):this.props.onDelete?M.createElement(j.IconButton,{disabled:this.state.deleteMode!==!1,onClick:()=>this.setState({deleteMode:r}),size:"large"},M.createElement(nt,null)):null):null);if(!t&&o){const c=n.map(l=>this.renderLine(l,t+1));return c.unshift(a),c}return a}handleRequestSort(e){const t=this.state.orderBy===e&&this.state.order==="asc";this.setState({order:t?"desc":"asc",orderBy:e})}renderHead(){return M.createElement(j.TableHead,null,M.createElement(j.TableRow,{key:"headerRow"},M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellExpand)}),M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${this.props.columns[0].field.replace(/\./g,"_")}`]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:()=>this.handleRequestSort(this.props.columns[0].field)},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map((e,t)=>!t&&!e.hidden?null:M.createElement(j.TableCell,{key:e.field,sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${e.field.replace(/\./g,"_")}`]),style:e.headerStyle||e.cellStyle,component:"th"},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===e.field,direction:this.state.orderBy===e.field?this.state.order:"asc",onClick:()=>this.handleRequestSort(e.field)},e.title||e.field,this.state.orderBy===e.field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null))),this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)},this.props.noAdd?null:M.createElement(j.Fab,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:()=>this.props.onUpdate&&this.props.onUpdate(!0)},M.createElement(un,null))):null,this.props.onDelete||this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)}):null))}render(){const e=this.props.columns.find(t=>t.field===this.state.orderBy);if(e){const t=e.lookup,i=xSe(this.props.data,fSe(this.state.order,this.state.orderBy,t));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({update:null})},500)),M.createElement("div",{style:W.tableContainer,className:this.props.className},M.createElement(j.Table,{style:W.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),M.createElement(j.TableBody,null,i.map(r=>this.renderLine(r)))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}return null}}/*! + * Cropper.js v1.6.2 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2024-04-21T07:43:05.335Z + */function Fl(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(s,r).enumerable})),t.push.apply(t,i)}return t}function J4(s){for(var e=1;es.length)&&(e=s.length);for(var t=0,i=new Array(e);t
',VSe=Number.isNaN||ct.isNaN;function V(s){return typeof s=="number"&&!VSe(s)}var oN=function(e){return e>0&&e<1/0};function on(s){return typeof s>"u"}function is(s){return qn(s)==="object"&&s!==null}var ZSe=Object.prototype.hasOwnProperty;function $s(s){if(!is(s))return!1;try{var e=s.constructor,t=e.prototype;return e&&t&&ZSe.call(t,"isPrototypeOf")}catch{return!1}}function Se(s){return typeof s=="function"}var XSe=Array.prototype.slice;function eL(s){return Array.from?Array.from(s):XSe.call(s)}function je(s,e){return s&&Se(e)&&(Array.isArray(s)||V(s.length)?eL(s).forEach(function(t,i){e.call(s,t,i,s)}):is(s)&&Object.keys(s).forEach(function(t){e.call(s,s[t],t,s)})),s}var ue=Object.assign||function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&i.forEach(function(o){is(o)&&Object.keys(o).forEach(function(n){e[n]=o[n]})}),e},KSe=/\.\d*(?:0|9){12}\d*$/;function Bs(s){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return KSe.test(s)?Math.round(s*e)/e:s}var qSe=/^width|height|left|top|marginLeft|marginTop$/;function Yt(s,e){var t=s.style;je(e,function(i,r){qSe.test(r)&&V(i)&&(i="".concat(i,"px")),t[r]=i})}function e3e(s,e){return s.classList?s.classList.contains(e):s.className.indexOf(e)>-1}function ye(s,e){if(e){if(V(s.length)){je(s,function(i){ye(i,e)});return}if(s.classList){s.classList.add(e);return}var t=s.className.trim();t?t.indexOf(e)<0&&(s.className="".concat(t," ").concat(e)):s.className=e}}function Mt(s,e){if(e){if(V(s.length)){je(s,function(t){Mt(t,e)});return}if(s.classList){s.classList.remove(e);return}s.className.indexOf(e)>=0&&(s.className=s.className.replace(e,""))}}function Ps(s,e,t){if(e){if(V(s.length)){je(s,function(i){Ps(i,e,t)});return}t?ye(s,e):Mt(s,e)}}var t3e=/([a-z\d])([A-Z])/g;function pM(s){return s.replace(t3e,"$1-$2").toLowerCase()}function Ma(s,e){return is(s[e])?s[e]:s.dataset?s.dataset[e]:s.getAttribute("data-".concat(pM(e)))}function Ui(s,e,t){is(t)?s[e]=t:s.dataset?s.dataset[e]=t:s.setAttribute("data-".concat(pM(e)),t)}function s3e(s,e){if(is(s[e]))try{delete s[e]}catch{s[e]=void 0}else if(s.dataset)try{delete s.dataset[e]}catch{s.dataset[e]=void 0}else s.removeAttribute("data-".concat(pM(e)))}var tL=/\s\s*/,sL=function(){var s=!1;if(Ao){var e=!1,t=function(){},i=Object.defineProperty({},"once",{get:function(){return s=!0,e},set:function(o){e=o}});ct.addEventListener("test",t,i),ct.removeEventListener("test",t,i)}return s}();function Ve(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(tL).forEach(function(o){if(!sL){var n=s.listeners;n&&n[o]&&n[o][t]&&(r=n[o][t],delete n[o][t],Object.keys(n[o]).length===0&&delete n[o],Object.keys(n).length===0&&delete s.listeners)}s.removeEventListener(o,r,i)})}function We(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(tL).forEach(function(o){if(i.once&&!sL){var n=s.listeners,a=n===void 0?{}:n;r=function(){delete a[o][t],s.removeEventListener(o,r,i);for(var l=arguments.length,N=new Array(l),u=0;uMath.abs(t)&&(t=L)})}),t}function pr(s,e){var t=s.pageX,i=s.pageY,r={endX:t,endY:i};return e?r:J4({startX:t,startY:i},r)}function o3e(s){var e=0,t=0,i=0;return je(s,function(r){var o=r.startX,n=r.startY;e+=o,t+=n,i+=1}),e/=i,t/=i,{pageX:e,pageY:t}}function vt(s){var e=s.aspectRatio,t=s.height,i=s.width,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",o=oN(i),n=oN(t);if(o&&n){var a=t*e;r==="contain"&&a>i||r==="cover"&&a90?{width:c,height:a}:{width:a,height:c}}function a3e(s,e,t,i){var r=e.aspectRatio,o=e.naturalWidth,n=e.naturalHeight,a=e.rotate,c=a===void 0?0:a,l=e.scaleX,N=l===void 0?1:l,u=e.scaleY,L=u===void 0?1:u,g=t.aspectRatio,y=t.naturalWidth,T=t.naturalHeight,D=i.fillColor,z=D===void 0?"transparent":D,p=i.imageSmoothingEnabled,C=p===void 0?!0:p,m=i.imageSmoothingQuality,I=m===void 0?"low":m,h=i.maxWidth,A=h===void 0?1/0:h,S=i.maxHeight,f=S===void 0?1/0:S,P=i.minWidth,v=P===void 0?0:P,ee=i.minHeight,ae=ee===void 0?0:ee,J=document.createElement("canvas"),H=J.getContext("2d"),Te=vt({aspectRatio:g,width:A,height:f}),Fe=vt({aspectRatio:g,width:v,height:ae},"cover"),Ge=Math.min(Te.width,Math.max(Fe.width,y)),Ls=Math.min(Te.height,Math.max(Fe.height,T)),mo=vt({aspectRatio:r,width:A,height:f}),ai=vt({aspectRatio:r,width:v,height:ae},"cover"),Mi=Math.min(mo.width,Math.max(ai.width,o)),ci=Math.min(mo.height,Math.max(ai.height,n)),tr=[-Mi/2,-ci/2,Mi,ci];return J.width=Bs(Ge),J.height=Bs(Ls),H.fillStyle=z,H.fillRect(0,0,Ge,Ls),H.save(),H.translate(Ge/2,Ls/2),H.rotate(c*Math.PI/180),H.scale(N,L),H.imageSmoothingEnabled=C,H.imageSmoothingQuality=I,H.drawImage.apply(H,[s].concat(F4(tr.map(function(sr){return Math.floor(Bs(sr))})))),H.restore(),J}var rL=String.fromCharCode;function M3e(s,e,t){var i="";t+=e;for(var r=e;r0;)t.push(rL.apply(null,eL(r.subarray(0,i)))),r=r.subarray(i);return"data:".concat(e,";base64,").concat(btoa(t.join("")))}function N3e(s){var e=new DataView(s),t;try{var i,r,o;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var n=e.byteLength,a=2;a+1=8&&(o=l+u)}}}if(o){var L=e.getUint16(o,i),g,y;for(y=0;y=0?o:K4),height:Math.max(i.offsetHeight,n>=0?n:q4)};this.containerData=a,Yt(r,{width:a.width,height:a.height}),ye(e,ke),Mt(r,ke)},initCanvas:function(){var e=this.containerData,t=this.imageData,i=this.options.viewMode,r=Math.abs(t.rotate)%180===90,o=r?t.naturalHeight:t.naturalWidth,n=r?t.naturalWidth:t.naturalHeight,a=o/n,c=e.width,l=e.height;e.height*a>e.width?i===3?c=e.height*a:l=e.width/a:i===3?l=e.width/a:c=e.height*a;var N={aspectRatio:a,naturalWidth:o,naturalHeight:n,width:c,height:l};this.canvasData=N,this.limited=i===1||i===2,this.limitCanvas(!0,!0),N.width=Math.min(Math.max(N.width,N.minWidth),N.maxWidth),N.height=Math.min(Math.max(N.height,N.minHeight),N.maxHeight),N.left=(e.width-N.width)/2,N.top=(e.height-N.height)/2,N.oldLeft=N.left,N.oldTop=N.top,this.initialCanvasData=ue({},N)},limitCanvas:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=i.viewMode,c=o.aspectRatio,l=this.cropped&&n;if(e){var N=Number(i.minCanvasWidth)||0,u=Number(i.minCanvasHeight)||0;a>1?(N=Math.max(N,r.width),u=Math.max(u,r.height),a===3&&(u*c>N?N=u*c:u=N/c)):a>0&&(N?N=Math.max(N,l?n.width:0):u?u=Math.max(u,l?n.height:0):l&&(N=n.width,u=n.height,u*c>N?N=u*c:u=N/c));var L=vt({aspectRatio:c,width:N,height:u});N=L.width,u=L.height,o.minWidth=N,o.minHeight=u,o.maxWidth=1/0,o.maxHeight=1/0}if(t)if(a>(l?0:1)){var g=r.width-o.width,y=r.height-o.height;o.minLeft=Math.min(0,g),o.minTop=Math.min(0,y),o.maxLeft=Math.max(0,g),o.maxTop=Math.max(0,y),l&&this.limited&&(o.minLeft=Math.min(n.left,n.left+(n.width-o.width)),o.minTop=Math.min(n.top,n.top+(n.height-o.height)),o.maxLeft=n.left,o.maxTop=n.top,a===2&&(o.width>=r.width&&(o.minLeft=Math.min(0,g),o.maxLeft=Math.max(0,g)),o.height>=r.height&&(o.minTop=Math.min(0,y),o.maxTop=Math.max(0,y))))}else o.minLeft=-o.width,o.minTop=-o.height,o.maxLeft=r.width,o.maxTop=r.height},renderCanvas:function(e,t){var i=this.canvasData,r=this.imageData;if(t){var o=n3e({width:r.naturalWidth*Math.abs(r.scaleX||1),height:r.naturalHeight*Math.abs(r.scaleY||1),degree:r.rotate||0}),n=o.width,a=o.height,c=i.width*(n/i.naturalWidth),l=i.height*(a/i.naturalHeight);i.left-=(c-i.width)/2,i.top-=(l-i.height)/2,i.width=c,i.height=l,i.aspectRatio=n/a,i.naturalWidth=n,i.naturalHeight=a,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heightt.width?o.height=o.width/i:o.width=o.height*i),this.cropBoxData=o,this.limitCropBox(!0,!0),o.width=Math.min(Math.max(o.width,o.minWidth),o.maxWidth),o.height=Math.min(Math.max(o.height,o.minHeight),o.maxHeight),o.width=Math.max(o.minWidth,o.width*r),o.height=Math.max(o.minHeight,o.height*r),o.left=t.left+(t.width-o.width)/2,o.top=t.top+(t.height-o.height)/2,o.oldLeft=o.left,o.oldTop=o.top,this.initialCropBoxData=ue({},o)},limitCropBox:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=this.limited,c=i.aspectRatio;if(e){var l=Number(i.minCropBoxWidth)||0,N=Number(i.minCropBoxHeight)||0,u=a?Math.min(r.width,o.width,o.width+o.left,r.width-o.left):r.width,L=a?Math.min(r.height,o.height,o.height+o.top,r.height-o.top):r.height;l=Math.min(l,r.width),N=Math.min(N,r.height),c&&(l&&N?N*c>l?N=l/c:l=N*c:l?N=l/c:N&&(l=N*c),L*c>u?L=u/c:u=L*c),n.minWidth=Math.min(l,u),n.minHeight=Math.min(N,L),n.maxWidth=u,n.maxHeight=L}t&&(a?(n.minLeft=Math.max(0,o.left),n.minTop=Math.max(0,o.top),n.maxLeft=Math.min(r.width,o.left+o.width)-n.width,n.maxTop=Math.min(r.height,o.top+o.height)-n.height):(n.minLeft=0,n.minTop=0,n.maxLeft=r.width-n.width,n.maxTop=r.height-n.height))},renderCropBox:function(){var e=this.options,t=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=t.width&&i.height>=t.height?H4:CM),Yt(this.cropBox,ue({width:i.width,height:i.height},xi({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Js(this.element,ia,this.getData())}},j3e={initPreview:function(){var e=this.element,t=this.crossOrigin,i=this.options.preview,r=t?this.crossOriginUrl:this.url,o=e.alt||"The image to preview",n=document.createElement("img");if(t&&(n.crossOrigin=t),n.src=r,n.alt=o,this.viewBox.appendChild(n),this.viewBoxImage=n,!!i){var a=i;typeof i=="string"?a=e.ownerDocument.querySelectorAll(i):i.querySelector&&(a=[i]),this.previews=a,je(a,function(c){var l=document.createElement("img");Ui(c,Ir,{width:c.offsetWidth,height:c.offsetHeight,html:c.innerHTML}),t&&(l.crossOrigin=t),l.src=r,l.alt=o,l.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',c.innerHTML="",c.appendChild(l)})}},resetPreview:function(){je(this.previews,function(e){var t=Ma(e,Ir);Yt(e,{width:t.width,height:t.height}),e.innerHTML=t.html,s3e(e,Ir)})},preview:function(){var e=this.imageData,t=this.canvasData,i=this.cropBoxData,r=i.width,o=i.height,n=e.width,a=e.height,c=i.left-t.left-e.left,l=i.top-t.top-e.top;!this.cropped||this.disabled||(Yt(this.viewBoxImage,ue({width:n,height:a},xi(ue({translateX:-c,translateY:-l},e)))),je(this.previews,function(N){var u=Ma(N,Ir),L=u.width,g=u.height,y=L,T=g,D=1;r&&(D=L/r,T=o*D),o&&T>g&&(D=g/o,y=r*D,T=g),Yt(N,{width:y,height:T}),Yt(N.getElementsByTagName("img")[0],ue({width:n*D,height:a*D},xi(ue({translateX:-c*D,translateY:-l*D},e))))}))}},y3e={bind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&We(e,na,t.cropstart),Se(t.cropmove)&&We(e,oa,t.cropmove),Se(t.cropend)&&We(e,ra,t.cropend),Se(t.crop)&&We(e,ia,t.crop),Se(t.zoom)&&We(e,aa,t.zoom),We(i,Xl,this.onCropStart=this.cropStart.bind(this)),t.zoomable&&t.zoomOnWheel&&We(i,sN,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&We(i,Zl,this.onDblclick=this.dblclick.bind(this)),We(e.ownerDocument,Kl,this.onCropMove=this.cropMove.bind(this)),We(e.ownerDocument,ql,this.onCropEnd=this.cropEnd.bind(this)),t.responsive&&We(window,tN,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&Ve(e,na,t.cropstart),Se(t.cropmove)&&Ve(e,oa,t.cropmove),Se(t.cropend)&&Ve(e,ra,t.cropend),Se(t.crop)&&Ve(e,ia,t.crop),Se(t.zoom)&&Ve(e,aa,t.zoom),Ve(i,Xl,this.onCropStart),t.zoomable&&t.zoomOnWheel&&Ve(i,sN,this.onWheel,{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Ve(i,Zl,this.onDblclick),Ve(e.ownerDocument,Kl,this.onCropMove),Ve(e.ownerDocument,ql,this.onCropEnd),t.responsive&&Ve(window,tN,this.onResize)}},T3e={resize:function(){if(!this.disabled){var e=this.options,t=this.container,i=this.containerData,r=t.offsetWidth/i.width,o=t.offsetHeight/i.height,n=Math.abs(r-1)>Math.abs(o-1)?r:o;if(n!==1){var a,c;e.restore&&(a=this.getCanvasData(),c=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(je(a,function(l,N){a[N]=l*n})),this.setCropBoxData(je(c,function(l,N){c[N]=l*n})))}}},dblclick:function(){this.disabled||this.options.dragMode===X4||this.setDragMode(e3e(this.dragBox,ta)?Z4:IM)},wheel:function(e){var t=this,i=Number(this.options.wheelZoomRatio)||.1,r=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){t.wheeling=!1},50),e.deltaY?r=e.deltaY>0?1:-1:e.wheelDelta?r=-e.wheelDelta/120:e.detail&&(r=e.detail>0?1:-1),this.zoom(-r*i,e)))},cropStart:function(e){var t=e.buttons,i=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(V(t)&&t!==1||V(i)&&i!==0||e.ctrlKey))){var r=this.options,o=this.pointers,n;e.changedTouches?je(e.changedTouches,function(a){o[a.identifier]=pr(a)}):o[e.pointerId||0]=pr(e),Object.keys(o).length>1&&r.zoomable&&r.zoomOnTouch?n=V4:n=Ma(e.target,Qi),JSe.test(n)&&Js(this.element,na,{originalEvent:e,action:n})!==!1&&(e.preventDefault(),this.action=n,this.cropping=!1,n===G4&&(this.cropping=!0,ye(this.dragBox,Xr)))}},cropMove:function(e){var t=this.action;if(!(this.disabled||!t)){var i=this.pointers;e.preventDefault(),Js(this.element,oa,{originalEvent:e,action:t})!==!1&&(e.changedTouches?je(e.changedTouches,function(r){ue(i[r.identifier]||{},pr(r,!0))}):ue(i[e.pointerId||0]||{},pr(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var t=this.action,i=this.pointers;e.changedTouches?je(e.changedTouches,function(r){delete i[r.identifier]}):delete i[e.pointerId||0],t&&(e.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,Ps(this.dragBox,Xr,this.cropped&&this.options.modal)),Js(this.element,ra,{originalEvent:e,action:t}))}}},D3e={change:function(e){var t=this.options,i=this.canvasData,r=this.containerData,o=this.cropBoxData,n=this.pointers,a=this.action,c=t.aspectRatio,l=o.left,N=o.top,u=o.width,L=o.height,g=l+u,y=N+L,T=0,D=0,z=r.width,p=r.height,C=!0,m;!c&&e.shiftKey&&(c=u&&L?u/L:1),this.limited&&(T=o.minLeft,D=o.minTop,z=T+Math.min(r.width,i.width,i.left+i.width),p=D+Math.min(r.height,i.height,i.top+i.height));var I=n[Object.keys(n)[0]],h={x:I.endX-I.startX,y:I.endY-I.startY},A=function(f){switch(f){case Jt:g+h.x>z&&(h.x=z-g);break;case Rt:l+h.xp&&(h.y=p-y);break}};switch(a){case CM:l+=h.x,N+=h.y;break;case Jt:if(h.x>=0&&(g>=z||c&&(N<=D||y>=p))){C=!1;break}A(Jt),u+=h.x,u<0&&(a=Rt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case ft:if(h.y<=0&&(N<=D||c&&(l<=T||g>=z))){C=!1;break}A(ft),L-=h.y,N+=h.y,L<0&&(a=hs,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case Rt:if(h.x<=0&&(l<=T||c&&(N<=D||y>=p))){C=!1;break}A(Rt),u-=h.x,l+=h.x,u<0&&(a=Jt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case hs:if(h.y>=0&&(y>=p||c&&(l<=T||g>=z))){C=!1;break}A(hs),L+=h.y,L<0&&(a=ft,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case yi:if(c){if(h.y<=0&&(N<=D||g>=z)){C=!1;break}A(ft),L-=h.y,N+=h.y,u=L*c}else A(ft),A(Jt),h.x>=0?gD&&(L-=h.y,N+=h.y):(L-=h.y,N+=h.y);u<0&&L<0?(a=di,L=-L,u=-u,N-=L,l-=u):u<0?(a=Ti,u=-u,l-=u):L<0&&(a=Di,L=-L,N-=L);break;case Ti:if(c){if(h.y<=0&&(N<=D||l<=T)){C=!1;break}A(ft),L-=h.y,N+=h.y,u=L*c,l+=o.width-u}else A(ft),A(Rt),h.x<=0?l>T?(u-=h.x,l+=h.x):h.y<=0&&N<=D&&(C=!1):(u-=h.x,l+=h.x),h.y<=0?N>D&&(L-=h.y,N+=h.y):(L-=h.y,N+=h.y);u<0&&L<0?(a=Di,L=-L,u=-u,N-=L,l-=u):u<0?(a=yi,u=-u,l-=u):L<0&&(a=di,L=-L,N-=L);break;case di:if(c){if(h.x<=0&&(l<=T||y>=p)){C=!1;break}A(Rt),u-=h.x,l+=h.x,L=u/c}else A(hs),A(Rt),h.x<=0?l>T?(u-=h.x,l+=h.x):h.y>=0&&y>=p&&(C=!1):(u-=h.x,l+=h.x),h.y>=0?y=0&&(g>=z||y>=p)){C=!1;break}A(Jt),u+=h.x,L=u/c}else A(hs),A(Jt),h.x>=0?g=0&&y>=p&&(C=!1):u+=h.x,h.y>=0?y0?a=h.y>0?Di:yi:h.x<0&&(l-=u,a=h.y>0?di:Ti),h.y<0&&(N-=L),this.cropped||(Mt(this.cropBox,ke),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}C&&(o.width=u,o.height=L,o.left=l,o.top=N,this.action=a,this.renderCropBox()),je(n,function(S){S.startX=S.endX,S.startY=S.endY})}},d3e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&ye(this.dragBox,Xr),Mt(this.cropBox,ke),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ue({},this.initialImageData),this.canvasData=ue({},this.initialCanvasData),this.cropBoxData=ue({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ue(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Mt(this.dragBox,Xr),ye(this.cropBox,ke)),this},replace:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),t?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,je(this.previews,function(i){i.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Mt(this.cropper,Hl)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,ye(this.cropper,Hl)),this},destroy:function(){var e=this.element;return e[Me]?(e[Me]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=i.left,o=i.top;return this.moveTo(on(e)?e:r+Number(e),on(t)?t:o+Number(t))},moveTo:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.movable&&(V(e)&&(i.left=e,r=!0),V(t)&&(i.top=t,r=!0),r&&this.renderCanvas(!0)),this},zoom:function(e,t){var i=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(i.width*e/i.naturalWidth,null,t)},zoomTo:function(e,t,i){var r=this.options,o=this.canvasData,n=o.width,a=o.height,c=o.naturalWidth,l=o.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&r.zoomable){var N=c*e,u=l*e;if(Js(this.element,aa,{ratio:e,oldRatio:n/c,originalEvent:i})===!1)return this;if(i){var L=this.pointers,g=iL(this.cropper),y=L&&Object.keys(L).length?o3e(L):{pageX:i.pageX,pageY:i.pageY};o.left-=(N-n)*((y.pageX-g.left-o.left)/n),o.top-=(u-a)*((y.pageY-g.top-o.top)/a)}else $s(t)&&V(t.x)&&V(t.y)?(o.left-=(N-n)*((t.x-o.left)/n),o.top-=(u-a)*((t.y-o.top)/a)):(o.left-=(N-n)/2,o.top-=(u-a)/2);o.width=N,o.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),V(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var t=this.imageData.scaleY;return this.scale(e,V(t)?t:1)},scaleY:function(e){var t=this.imageData.scaleX;return this.scale(V(t)?t:1,e)},scale:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.imageData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.scalable&&(V(e)&&(i.scaleX=e,r=!0),V(t)&&(i.scaleY=t,r=!0),r&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.options,i=this.imageData,r=this.canvasData,o=this.cropBoxData,n;if(this.ready&&this.cropped){n={x:o.left-r.left,y:o.top-r.top,width:o.width,height:o.height};var a=i.width/i.naturalWidth;if(je(n,function(N,u){n[u]=N/a}),e){var c=Math.round(n.y+n.height),l=Math.round(n.x+n.width);n.x=Math.round(n.x),n.y=Math.round(n.y),n.width=l-n.x,n.height=c-n.y}}else n={x:0,y:0,width:0,height:0};return t.rotatable&&(n.rotate=i.rotate||0),t.scalable&&(n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1),n},setData:function(e){var t=this.options,i=this.imageData,r=this.canvasData,o={};if(this.ready&&!this.disabled&&$s(e)){var n=!1;t.rotatable&&V(e.rotate)&&e.rotate!==i.rotate&&(i.rotate=e.rotate,n=!0),t.scalable&&(V(e.scaleX)&&e.scaleX!==i.scaleX&&(i.scaleX=e.scaleX,n=!0),V(e.scaleY)&&e.scaleY!==i.scaleY&&(i.scaleY=e.scaleY,n=!0)),n&&this.renderCanvas(!0,!0);var a=i.width/i.naturalWidth;V(e.x)&&(o.left=e.x*a+r.left),V(e.y)&&(o.top=e.y*a+r.top),V(e.width)&&(o.width=e.width*a),V(e.height)&&(o.height=e.height*a),this.setCropBoxData(o)}return this},getContainerData:function(){return this.ready?ue({},this.containerData):{}},getImageData:function(){return this.sized?ue({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,t={};return this.ready&&je(["left","top","width","height","naturalWidth","naturalHeight"],function(i){t[i]=e[i]}),t},setCanvasData:function(e){var t=this.canvasData,i=t.aspectRatio;return this.ready&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)?(t.width=e.width,t.height=e.width/i):V(e.height)&&(t.height=e.height,t.width=e.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,t;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(e){var t=this.cropBoxData,i=this.options.aspectRatio,r,o;return this.ready&&this.cropped&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)&&e.width!==t.width&&(r=!0,t.width=e.width),V(e.height)&&e.height!==t.height&&(o=!0,t.height=e.height),i&&(r?t.height=t.width/i:o&&(t.width=t.height*i)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var t=this.canvasData,i=a3e(this.image,this.imageData,t,e);if(!this.cropped)return i;var r=this.getData(e.rounded),o=r.x,n=r.y,a=r.width,c=r.height,l=i.width/Math.floor(t.naturalWidth);l!==1&&(o*=l,n*=l,a*=l,c*=l);var N=a/c,u=vt({aspectRatio:N,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),L=vt({aspectRatio:N,width:e.minWidth||0,height:e.minHeight||0},"cover"),g=vt({aspectRatio:N,width:e.width||(l!==1?i.width:a),height:e.height||(l!==1?i.height:c)}),y=g.width,T=g.height;y=Math.min(u.width,Math.max(L.width,y)),T=Math.min(u.height,Math.max(L.height,T));var D=document.createElement("canvas"),z=D.getContext("2d");D.width=Bs(y),D.height=Bs(T),z.fillStyle=e.fillColor||"transparent",z.fillRect(0,0,y,T);var p=e.imageSmoothingEnabled,C=p===void 0?!0:p,m=e.imageSmoothingQuality;z.imageSmoothingEnabled=C,m&&(z.imageSmoothingQuality=m);var I=i.width,h=i.height,A=o,S=n,f,P,v,ee,ae,J;A<=-a||A>I?(A=0,f=0,v=0,ae=0):A<=0?(v=-A,A=0,f=Math.min(I,a+A),ae=f):A<=I&&(v=0,f=Math.min(a,I-A),ae=f),f<=0||S<=-c||S>h?(S=0,P=0,ee=0,J=0):S<=0?(ee=-S,S=0,P=Math.min(h,c+S),J=P):S<=h&&(ee=0,P=Math.min(c,h-S),J=P);var H=[A,S,f,P];if(ae>0&&J>0){var Te=y/a;H.push(v*Te,ee*Te,ae*Te,J*Te)}return z.drawImage.apply(z,[i].concat(F4(H.map(function(Fe){return Math.floor(Bs(Fe))})))),D},setAspectRatio:function(e){var t=this.options;return!this.disabled&&!on(e)&&(t.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var t=this.options,i=this.dragBox,r=this.face;if(this.ready&&!this.disabled){var o=e===IM,n=t.movable&&e===Z4;e=o||n?e:X4,t.dragMode=e,Ui(i,Qi,e),Ps(i,ta,o),Ps(i,sa,n),t.cropBoxMovable||(Ui(r,Qi,e),Ps(r,ta,o),Ps(r,sa,n))}return this}},h3e=ct.Cropper,oL=function(){function s(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(SSe(this,s),!e||!GSe.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=ue({},rN,$s(t)&&t),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return kSe(s,[{key:"init",value:function(){var t=this.element,i=t.tagName.toLowerCase(),r;if(!t[Me]){if(t[Me]=this,i==="img"){if(this.isImg=!0,r=t.getAttribute("src")||"",this.originalUrl=r,!r)return;r=t.src}else i==="canvas"&&window.HTMLCanvasElement&&(r=t.toDataURL());this.load(r)}}},{key:"load",value:function(t){var i=this;if(t){this.url=t,this.imageData={};var r=this.element,o=this.options;if(!o.rotatable&&!o.scalable&&(o.checkOrientation=!1),!o.checkOrientation||!window.ArrayBuffer){this.clone();return}if(RSe.test(t)){FSe.test(t)?this.read(u3e(t)):this.clone();return}var n=new XMLHttpRequest,a=this.clone.bind(this);this.reloading=!0,this.xhr=n,n.onabort=a,n.onerror=a,n.ontimeout=a,n.onprogress=function(){n.getResponseHeader("content-type")!==iN&&n.abort()},n.onload=function(){i.read(n.response)},n.onloadend=function(){i.reloading=!1,i.xhr=null},o.checkCrossOrigin&&nN(t)&&r.crossOrigin&&(t=aN(t)),n.open("GET",t,!0),n.responseType="arraybuffer",n.withCredentials=r.crossOrigin==="use-credentials",n.send()}}},{key:"read",value:function(t){var i=this.options,r=this.imageData,o=N3e(t),n=0,a=1,c=1;if(o>1){this.url=l3e(t,iN);var l=L3e(o);n=l.rotate,a=l.scaleX,c=l.scaleY}i.rotatable&&(r.rotate=n),i.scalable&&(r.scaleX=a,r.scaleY=c),this.clone()}},{key:"clone",value:function(){var t=this.element,i=this.url,r=t.crossOrigin,o=i;this.options.checkCrossOrigin&&nN(i)&&(r||(r="anonymous"),o=aN(i)),this.crossOrigin=r,this.crossOriginUrl=o;var n=document.createElement("img");r&&(n.crossOrigin=r),n.src=o||i,n.alt=t.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),ye(n,Vl),t.parentNode.insertBefore(n,t.nextSibling)}},{key:"start",value:function(){var t=this,i=this.image;i.onload=null,i.onerror=null,this.sizing=!0;var r=ct.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(ct.navigator.userAgent),o=function(l,N){ue(t.imageData,{naturalWidth:l,naturalHeight:N,aspectRatio:l/N}),t.initialImageData=ue({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(i.naturalWidth&&!r){o(i.naturalWidth,i.naturalHeight);return}var n=document.createElement("img"),a=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){o(n.width,n.height),r||a.removeChild(n)},n.src=i.src,r||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",a.appendChild(n))}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var t=this.element,i=this.options,r=this.image,o=t.parentNode,n=document.createElement("div");n.innerHTML=HSe;var a=n.querySelector(".".concat(Me,"-container")),c=a.querySelector(".".concat(Me,"-canvas")),l=a.querySelector(".".concat(Me,"-drag-box")),N=a.querySelector(".".concat(Me,"-crop-box")),u=N.querySelector(".".concat(Me,"-face"));this.container=o,this.cropper=a,this.canvas=c,this.dragBox=l,this.cropBox=N,this.viewBox=a.querySelector(".".concat(Me,"-view-box")),this.face=u,c.appendChild(r),ye(t,ke),o.insertBefore(a,t.nextSibling),Mt(r,Vl),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,ye(N,ke),i.guides||ye(N.getElementsByClassName("".concat(Me,"-dashed")),ke),i.center||ye(N.getElementsByClassName("".concat(Me,"-center")),ke),i.background&&ye(a,"".concat(Me,"-bg")),i.highlight||ye(u,$Se),i.cropBoxMovable&&(ye(u,sa),Ui(u,Qi,CM)),i.cropBoxResizable||(ye(N.getElementsByClassName("".concat(Me,"-line")),ke),ye(N.getElementsByClassName("".concat(Me,"-point")),ke)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),Se(i.ready)&&We(t,eN,i.ready,{once:!0}),Js(t,eN)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),Mt(this.element,ke)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=h3e,s}},{key:"setDefaults",value:function(t){ue(rN,$s(t)&&t)}}])}();ue(oL.prototype,g3e,j3e,y3e,T3e,D3e,d3e);var Zt=function(){return Zt=Object.assign||function(s){for(var e,t=1,i=arguments.length;t0&&S.zoomTo(Fe)}(A.currentTarget.cropper,C),D&&D(A)}}));z&&z(h)}return function(){var A,S;(S=(A=m.current)===null||A===void 0?void 0:A.cropper)===null||S===void 0||S.destroy()}},[m]);var I=function(h){return z3e.reduce(function(A,S){var f=A,P=S;return f[P],an(f,[typeof P=="symbol"?P:P+""])},h)}(Zt(Zt({},p),{crossOrigin:c,src:o,alt:T}));return M.createElement("div",{style:n,className:a},M.createElement("img",Zt({},I,{style:w3e,ref:m})))});const I3e=` +/*! + * Cropper.js v1.5.12 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2021-06-12T08:00:11.623Z + */ + +.cropper-container { + direction: ltr; + font-size: 0; + line-height: 0; + position: relative; + -ms-touch-action: none; + touch-action: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.cropper-container img { + display: block; + height: 100%; + image-orientation: 0deg; + max-height: none !important; + max-width: none !important; + min-height: 0 !important; + min-width: 0 !important; + width: 100%; +} + +.cropper-wrap-box, +.cropper-canvas, +.cropper-drag-box, +.cropper-crop-box, +.cropper-modal { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.cropper-wrap-box, +.cropper-canvas { + overflow: hidden; +} + +.cropper-drag-box { + background-color: #fff; + opacity: 0; +} + +.cropper-modal { + background-color: #000; + opacity: 0.5; +} + +.cropper-view-box { + display: block; + height: 100%; + outline: 1px solid #39f; + outline-color: rgba(51, 153, 255, 0.75); + overflow: hidden; + width: 100%; +} + +.cropper-dashed { + border: 0 dashed #eee; + display: block; + opacity: 0.5; + position: absolute; +} + +.cropper-dashed.dashed-h { + border-bottom-width: 1px; + border-top-width: 1px; + height: calc(100% / 3); + left: 0; + top: calc(100% / 3); + width: 100%; +} + +.cropper-dashed.dashed-v { + border-left-width: 1px; + border-right-width: 1px; + height: 100%; + left: calc(100% / 3); + top: 0; + width: calc(100% / 3); +} + +.cropper-center { + display: block; + height: 0; + left: 50%; + opacity: 0.75; + position: absolute; + top: 50%; + width: 0; +} + +.cropper-center::before, +.cropper-center::after { + background-color: #eee; + content: ' '; + display: block; + position: absolute; +} + +.cropper-center::before { + height: 1px; + left: -3px; + top: 0; + width: 7px; +} + +.cropper-center::after { + height: 7px; + left: 0; + top: -3px; + width: 1px; +} + +.cropper-face, +.cropper-line, +.cropper-point { + display: block; + height: 100%; + opacity: 0.1; + position: absolute; + width: 100%; +} + +.cropper-face { + background-color: #fff; + left: 0; + top: 0; +} + +.cropper-line { + background-color: #39f; +} + +.cropper-line.line-e { + cursor: ew-resize; + right: -3px; + top: 0; + width: 5px; +} + +.cropper-line.line-n { + cursor: ns-resize; + height: 5px; + left: 0; + top: -3px; +} + +.cropper-line.line-w { + cursor: ew-resize; + left: -3px; + top: 0; + width: 5px; +} + +.cropper-line.line-s { + bottom: -3px; + cursor: ns-resize; + height: 5px; + left: 0; +} + +.cropper-point { + background-color: #39f; + height: 5px; + opacity: 0.75; + width: 5px; +} + +.cropper-point.point-e { + cursor: ew-resize; + margin-top: -3px; + right: -3px; + top: 50%; +} + +.cropper-point.point-n { + cursor: ns-resize; + left: 50%; + margin-left: -3px; + top: -3px; +} + +.cropper-point.point-w { + cursor: ew-resize; + left: -3px; + margin-top: -3px; + top: 50%; +} + +.cropper-point.point-s { + bottom: -3px; + cursor: s-resize; + left: 50%; + margin-left: -3px; +} + +.cropper-point.point-ne { + cursor: nesw-resize; + right: -3px; + top: -3px; +} + +.cropper-point.point-nw { + cursor: nwse-resize; + left: -3px; + top: -3px; +} + +.cropper-point.point-sw { + bottom: -3px; + cursor: nesw-resize; + left: -3px; +} + +.cropper-point.point-se { + bottom: -3px; + cursor: nwse-resize; + height: 20px; + opacity: 1; + right: -3px; + width: 20px; +} + +@media (min-width: 768px) { + .cropper-point.point-se { + height: 15px; + width: 15px; + } +} + +@media (min-width: 992px) { + .cropper-point.point-se { + height: 10px; + width: 10px; + } +} + +@media (min-width: 1200px) { + .cropper-point.point-se { + height: 5px; + opacity: 0.75; + width: 5px; + } +} + +.cropper-point.point-se::before { + background-color: #39f; + bottom: -50%; + content: ' '; + display: block; + height: 200%; + opacity: 0; + position: absolute; + right: -50%; + width: 200%; +} + +.cropper-invisible { + opacity: 0; +} + +.cropper-bg { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC'); +} + +.cropper-hide { + display: block; + height: 0; + position: absolute; + width: 0; +} + +.cropper-hidden { + display: none !important; +} + +.cropper-move { + cursor: move; +} + +.cropper-crop { + cursor: crosshair; +} + +.cropper-disabled .cropper-drag-box, +.cropper-disabled .cropper-face, +.cropper-disabled .cropper-line, +.cropper-disabled .cropper-point { + cursor: not-allowed; +} +`,_e={dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red",boxSizing:"border-box"}};class t5e extends x.Component{cropperRef;constructor(e){if(super(e),this.state={uploadFile:!1,anchorEl:null,cropHandler:!1},this.cropperRef=x.createRef(),!window.document.getElementById("cropper-style-json-component")){const t=window.document.createElement("style");t.setAttribute("id","cropper-style-json-component"),t.innerHTML=I3e,window.document.head.appendChild(t)}}onDrop(e){const t=this.props.onChange,i=this.props.maxSize||10*1024,r=e[0],o=new FileReader;o.onabort=()=>console.log("file reading was aborted"),o.onerror=()=>console.log("file reading has failed"),o.onload=()=>{var c,l;if(!r||!r.name)return;const n=(c=r.name)==null?void 0:c.split(".");let a=n!=null&&n.length?`image/${(l=n.pop())==null?void 0:l.toLowerCase()}`:"image/jpeg";if(a==="image/jpg"?a="image/jpeg":a.includes("svg")&&(a="image/svg+xml"),r.size>i)window.alert(d.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(i/1024)));else{const N=`data:${a};base64,${btoa(new Uint8Array(o.result).reduce((u,L)=>u+String.fromCharCode(L),""))}`;t?t(N):console.log(N)}},o.readAsArrayBuffer(r)}render(){const{disabled:e,icon:t,removeIconFunc:i,error:r,crop:o,onChange:n}=this.props,a=this.props.maxSize||10*1024;let c=this.props.accept||{"image/*":[]};const{uploadFile:l,anchorEl:N,cropHandler:u}=this.state;if(typeof c=="string")c={[c]:[]};else if(Array.isArray(c)){const L={};c.forEach(g=>{L[g]=[]}),c=L}return M.createElement(uN,{disabled:!!e||u,key:"dropzone",multiple:!1,accept:c,maxSize:a,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(L,g)=>{var y,T,D;this.setState({uploadFile:!1}),L.length?this.onDrop(L):window.alert(((D=(T=(y=g==null?void 0:g[0])==null?void 0:y.errors)==null?void 0:T[0])==null?void 0:D.message)||d.t("ra_Cannot upload"))}},({getRootProps:L,getInputProps:g})=>M.createElement("div",{style:{..._e.uploadDiv,...l==="dragging"?_e.uploadDivDragging:void 0,..._e.dropZone,...e?_e.disabledOpacity:void 0,...t?void 0:_e.dropZoneEmpty},...L()},M.createElement("input",{...g()}),M.createElement("div",{style:{..._e.uploadCenterDiv,...r?_e.error:void 0}},t?i&&!u&&M.createElement("div",{style:_e.buttonRemoveWrapper},M.createElement(j.Tooltip,{title:d.t("ra_Clear"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{i&&i(),y.stopPropagation()}},M.createElement(Ne,null)))):M.createElement("div",{style:_e.uploadCenterTextAndIcon},M.createElement(Ig,{style:_e.uploadCenterIcon}),M.createElement("div",{style:_e.uploadCenterText},l==="dragging"?d.t("ra_Drop file here"):d.t("ra_Place your files here or click here to open the browse dialog"))),t&&o&&M.createElement("div",{style:_e.buttonCropWrapper},M.createElement(j.Tooltip,{title:d.t("ra_Crop"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{u?this.setState({anchorEl:y.currentTarget}):this.setState({cropHandler:!0}),y.stopPropagation()}},M.createElement(ig,{color:u?"primary":"inherit"}))),M.createElement(j.Menu,{anchorEl:N,keepMounted:!0,open:!!N,onClose:()=>this.setState({anchorEl:null})},M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1},()=>{var T,D;const y=(D=(T=this.cropperRef)==null?void 0:T.current)==null?void 0:D.cropper;y&&(n?n(y.getCroppedCanvas().toDataURL()):console.log(y.getCroppedCanvas().toDataURL()))})},d.t("ra_Save")),M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1})},d.t("ra_Close")))),t&&!u?M.createElement(me,{src:t,style:_e.image,alt:"icon"}):null,t&&o&&u?M.createElement(C3e,{ref:this.cropperRef,style:_e.image,src:t,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null)))}}const xt={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},p3e={once:"once"},Ce={seconds:"seconds",minutes:"minutes"},MN=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function ot(s){return s<10?`0${s}`:`${s}`}const A3e={mode:"interval",interval:{period:1,unit:Ce.minutes}};function _r(s){if(s==="*")return[0,1,2,3,4,5,6];const e=s.split(","),t=[];return e.forEach(i=>{const r=i.split("-");if(r.length===2){const o=parseInt(r[0],10),n=parseInt(r[1],10);for(let a=o;a<=n;a++)t.includes(a===7?0:a)||t.push(a===7?0:a)}else{i==="7"&&(i="0");const o=parseInt(i,10);t.includes(o)||t.push(o)}}),t.sort(),t}function nL(s,e){s=s.replace(/['"]/g,"").trim();const t=s.split(" ");let i,r=null;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",date:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:null,minutes:t[0]||"*",hours:t[1]||"*",date:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i.seconds===null&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)&&(r={mode:"interval",interval:{period:1,unit:Ce.minutes}}),i.seconds==="*"&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:1,unit:Ce.seconds}}:i.seconds===null&&i.minutes.includes("/")&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&i.minutes.includes("/")&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"specific",specific:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&parseInt(i.date,10).toString()===i.date&&parseInt(i.months,10).toString()===i.months&&(i.dow==="*"||e)&&(r={mode:"once",once:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,date:`${ot(parseInt(i.date,10))}.${ot(parseInt(i.months,10))}`}}),r}class $i extends M.Component{constructor(e){super(e);let t=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";t[0]==="{"&&(t="");const i=nL(t||"* * * * *",!0)||A3e;this.state={extended:!1,cron:$i.state2cron(i),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:Ce.minutes},intervalBetween:{period:1,unit:Ce.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,i),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,t=7){if(t=t||7,e.length===t)return"*";const i=[];let r=null,o=null;if(!e.length)return"_";for(let n=0;n60&&(i.period=60),i.period!==void 0&&i.period<1&&(i.period=1),i.minutes!==void 0&&i.minutes!==null&&i.minutes>60&&(i.minutes=60),i.minutes!==void 0&&i.minutes!==null&&i.minutes<1&&(i.minutes=1),i.hours!==void 0&&i.hours!==null&&i.hours>24&&(i.hours=24),i.hours!==void 0&&i.hours!==null&&i.hours<1&&(i.hours=1),e.extended)t=`${i.minutes!==void 0&&i.minutes!==null&&i.minutes>1?`*/${i.minutes}`:"*"} ${i.hours!==void 0&&i.hours!==null&&i.hours>1?`*/${i.hours}`:"*"} * * *`;else switch(i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * * * * *`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const i=e.intervalBetween||{period:1,unit:Ce.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let r;switch(i.timeFrom=i.timeFrom||0,i.timeTo=i.timeTo===void 0?24:i.timeTo,i.timeFrom!==0&&i.timeTo===24&&(i.timeTo=23),i.timeFrom===0&&i.timeTo===24?r="*":r=i.timeFrom!==i.timeTo?`${i.timeFrom}-${i.timeTo}`:"*",i.period>60&&(i.period=60),i.period<1&&(i.period=1),i.unit=i.unit||Ce.minutes,i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * ${r} * * ${this.periodArray2text(i.weekdays)}`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} ${r} * * ${this.periodArray2text(i.weekdays)}`;break}}else if(e.mode==="specific"){const i=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},r=(i.time||"00:00").split(":");let o=parseInt(r[1],10)||0;o>59&&(o=59),o<0&&(o=0);let n=parseInt(r[0],10)||0;n>23&&(n=59),n<0&&(n=0),t=`${o} ${n} * * ${this.periodArray2text(i.weekdays||[])}`}else if(e.mode==="once"){const i=e.once||{time:"00:00",date:""};i.date||(i.date=`${new Date().getDate()}.${ot(new Date().getMonth()+1)}`);const r=(i.time||"00:00").split(":"),o=i.date.split(".");let n=parseInt(r[1],10)||0;n>59&&(n=59),n<0&&(n=0);let a=parseInt(r[0],10)||0;a>23&&(a=59),a<0&&(a=0);let c=parseInt(o[0],10)||1;c>31&&(c=31),c<1&&(a=1);let l=parseInt(o[1],10)||1;l>12&&(l=12),l<1&&(l=1),t=`${n} ${a} ${c} ${l} *`}return t}recalcCron(){this.onChange($i.state2cron(this.state))}getControlsWeekdaysElements(e){const t=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return M.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},M.createElement("h5",null,d.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:MN[i],control:M.createElement(j.Checkbox,{checked:t.weekdays.includes(i),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state[e])),n=o.weekdays.indexOf(i);r.target.checked?n===-1&&o.weekdays.push(i):n!==-1&&o.weekdays.splice(n,1),o.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:o},()=>this.recalcCron()):this.setState({specific:o},()=>this.recalcCron())},value:i.toString()}),label:d.t(MN[i])})))}getControlsPeriodElements(e){const t=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_minutes"),value:t.minutes,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.minutes=parseInt(i.target.value,10),r.minutes<1&&(r.minutes=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_hours"),value:t.hours,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.hours=parseInt(i.target.value,10),r.hours<1&&(r.hours=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_every"),value:t.period,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.period=parseInt(i.target.value,10),r.period<1&&(r.period=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.Select,{variant:"standard",style:{verticalAlign:"bottom"},value:t.unit,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.unit=i.target.value,e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())}},M.createElement(j.MenuItem,{value:"seconds"},d.t("sc_seconds")),")",M.createElement(j.MenuItem,{value:"minutes"},d.t("sc_minutes")),")"))}getControlsTime(e){const t=e==="once"?this.state.once:this.state.specific;return M.createElement(j.FormControl,{variant:"standard",sx:{...xt.formControl,"&.MuiFormControl-root":xt.formControlMarginRight}},M.createElement(j.TextField,{variant:"standard",key:"at",label:d.t("sc_time"),value:t.time,type:"time",sx:i=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:i.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.time=i.target.value,e==="once"?this.setState({once:r},()=>this.recalcCron()):this.setState({specific:r},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const t=new Date;e.date=`${t.getDate()}.${ot(t.getMonth()+1)}`}return M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.TextField,{variant:"standard",key:"date",label:d.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:xt.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.once));i.date=t.target.value,this.setState({once:i},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return M.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),M.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},M.createElement("h5",{style:{marginBottom:5}},d.t("sc_hours")),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_from")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeFrom=parseInt(t.target.value,10),i.timeTo===24&&(i.timeTo=23),this.setState({intervalBetween:i},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`B_${t}`,value:t},`${ot(t)}:00`)))),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_to")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeTo,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeTo=parseInt(t.target.value,10),this.setState({intervalBetween:i},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`A_${t}`,value:t},`${ot(t)}:00`)),!e.timeFrom&&M.createElement(j.MenuItem,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[M.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return M.createElement("div",{style:xt.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?d.t("sc_invalid_cron"):D4(this.state.cron,this.props.language||"en")),M.createElement("div",null,M.createElement(j.FormControl,{variant:"standard",style:{...xt.formControl,marginLeft:8,marginTop:8}},M.createElement(j.InputLabel,null,d.t("ra_Repeat")),M.createElement(j.Select,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},M.createElement(j.MenuItem,{value:"once"},d.t("sc_once")),M.createElement(j.MenuItem,{value:"interval"},d.t("sc_interval")),M.createElement(j.MenuItem,{value:"intervalBetween"},d.t("sc_intervalBetween")),M.createElement(j.MenuItem,{value:"specific"},d.t("sc_specific"))))),this.state.mode===p3e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const m3e=` +.logo-background-light, .logo-background-colored { + background: white; +} +.logo-background-dark, .logo-background-blue { + background: black; +} +`;function s5e(s){x.useEffect(()=>{if(!window.document.getElementById("vendor-iobroker-component")){const t=window.document.createElement("style");t.setAttribute("id","vendor-iobroker-component"),t.innerHTML=m3e,window.document.head.appendChild(t)}},[]);const e=s.themeType||s.themeName||"light";return M.createElement("div",{className:`vendor-logo-back logo-background-${e}`,style:{display:"flex",flexDirection:"column",height:"100%",width:"10%",margin:"auto",backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.CircularProgress,{color:"secondary",size:s.size||200,thickness:5}),M.createElement("div",{style:{flexGrow:1}}))}const O3e=` +.logo-background-light, .logo-background-colored { + background: white; +} +.logo-background-dark, .logo-background-blue { + background: black; +} +.pt-logo-div { + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + z-index: 2; +} +.pt-logo-border { + border-style: solid; + box-sizing: border-box; + width: 100%; + height: 100%; + position: absolute; +} +.pt-loader-block { + height: 65px; + width: 74px; + border-radius: 15px; + position: absolute; + box-sizing: content-box; +} +.pt-loader-blue { + border: 9px solid #0F99DE; + transform: rotate(5grad); + left: 93px; + top: 0; + animation: spin-blue 5s ease-in-out infinite; +} +.pt-loader-green { + border: 9px solid #88A536; + transform: rotate(-6grad); + left: 70px; + top: 58px; + animation: spin-green 5s ease-in-out infinite; +} +.pt-loader-red { + border: 9px solid #BD1B24; + transform: rotate(-15grad); + left: 24px; + top: 100px; + animation: spin-red 5s ease-in-out infinite; +} + +@keyframes spin-blue { + 0% { + transform: rotate(5deg); + } + 25% { + transform: rotate(185deg); + } + 50% { + transform: rotate(185deg); + } + 75% { + transform: rotate(185deg); + } + 100% { + transform: rotate(185deg); + } +} +@keyframes spin-green { + 0% { + transform: rotate(-6deg); + } + 25% { + transform: rotate(-6deg); + } + 50% { + transform: rotate(174deg); + } + 75% { + transform: rotate(174deg); + } + 100% { + transform: rotate(-6deg); + } +} +@keyframes spin-red { + 0% { + transform: rotate(-15deg); + } + 25% { + transform: rotate(-15deg); + } + 50% { + transform: rotate(-15deg); + } + 75% { + transform: rotate(165deg); + } + 100% { + transform: rotate(165deg); + } +} +`;function i5e(s){const e=s.size||200;x.useEffect(()=>{if(!window.document.getElementById("pt-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","pt-iobroker-component"),i.innerHTML=O3e,window.document.head.appendChild(i)}},[]);const t=s.themeType||s.themeName||"light";return M.createElement("div",{className:`pt-logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{className:"pt-logo-div",style:{width:e,height:e}},M.createElement("div",{style:{width:200,height:200}},M.createElement("div",{className:"pt-loader-blue pt-loader-block"}),M.createElement("div",{className:"pt-loader-green pt-loader-block"}),M.createElement("div",{className:"pt-loader-red pt-loader-block"}))))}function r5e(s){const e=s.themeType||"light",t=s.size||300;return M.createElement("div",{style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:e==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{width:t,height:t,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:2}},M.createElement("svg",{viewBox:"0 0 500 500",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%"},M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"200"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"133"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"83"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"66"}),M.createElement("circle",{strokeWidth:"15",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"15"}),M.createElement("g",null,M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("g",{transform:"rotate(60, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("g",{transform:"rotate(120, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),[0,15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270,285,300,315,330,345].map(i=>M.createElement("line",{key:i,transform:`rotate(${i}, 250, 250)`,y2:"250",x2:"115",y1:"240",x1:"135",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("animateTransform",{attributeType:"xml",attributeName:"transform",type:"rotate",from:"0 250 250",to:"360 250 250",dur:"10s",additive:"sum",repeatCount:"indefinite"})),M.createElement("path",{d:"M 56.089 160.250 C 55.077 162.588, 46.037 182.950, 36 205.500 C 25.963 228.050, 16.923 248.412, 15.911 250.750 L 14.071 255 28.286 254.976 L 42.500 254.952 47.931 242.226 C 50.918 235.227, 54.366 227.250, 55.592 224.500 L 57.822 219.500 66.383 237.250 L 74.945 255 88.973 255 C 96.688 255, 103 254.841, 103 254.646 C 103 254.452, 100.043 248.071, 96.430 240.466 L 89.859 226.638 91.603 222.771 C 92.563 220.644, 93.660 218.710, 94.043 218.473 C 94.426 218.237, 108.609 246.609, 125.562 281.522 L 156.384 345 166.071 345 C 175.705 345, 175.763 344.985, 176.856 342.250 C 179.911 334.602, 208 260.765, 208 260.383 C 208 260.138, 202.546 260.065, 195.879 260.219 L 183.759 260.500 174.629 285.244 C 169.608 298.853, 165.254 309.990, 164.952 309.994 C 164.651 309.997, 148.901 277.389, 129.952 237.532 C 111.004 197.674, 95.275 165.057, 95 165.049 C 94.725 165.041, 90.685 172.415, 86.022 181.435 C 81.358 190.455, 77.308 197.689, 77.022 197.510 C 76.735 197.331, 72.675 187.920, 68 176.598 C 63.325 165.275, 59.147 156.008, 58.714 156.005 C 58.282 156.002, 57.101 157.912, 56.089 160.250 M 55.294 168.694 C 52.241 175.842, 52.166 176.323, 53.718 178.692 L 55.349 181.182 56.706 178.591 C 57.453 177.166, 58.406 176, 58.825 176 C 59.244 176, 60.777 178.363, 62.232 181.250 C 64.829 186.403, 64.879 186.440, 64.939 183.250 C 64.973 181.463, 65.422 180, 65.937 180 C 66.724 180, 60.176 162.824, 58.920 161.596 C 58.689 161.370, 57.057 164.564, 55.294 168.694 M 91.698 175.542 C 89.205 180.626, 89.099 181.308, 90.410 183.792 L 91.840 186.500 92.926 183.669 C 94.349 179.961, 96.024 180.653, 98.588 186.009 L 100.676 190.370 101.324 187.132 C 101.832 184.592, 101.217 182.395, 98.473 176.947 C 96.549 173.126, 94.849 170, 94.696 170 C 94.542 170, 93.193 172.494, 91.698 175.542 M 157.005 192.607 C 143.168 197.636, 134.999 209.202, 135.001 223.761 C 135.002 232.756, 138.710 240.755, 145.856 247.180 C 152.159 252.848, 158.121 255, 167.518 255 C 173.509 255, 175.684 254.499, 180.811 251.936 C 200.823 241.936, 205.088 216.155, 189.337 200.403 C 181.479 192.546, 166.868 189.022, 157.005 192.607 M 206 223 L 206 255 215.472 255 L 224.944 255 225.222 241.419 L 225.500 227.837 230.500 234.660 C 233.250 238.412, 238.002 244.636, 241.060 248.491 L 246.620 255.500 253.810 255.168 L 261 254.836 261 222.918 L 261 191 251.528 191 L 242.056 191 241.778 204.552 L 241.500 218.104 231.111 204.552 L 220.722 191 213.361 191 L 206 191 206 223 M 285.821 192.331 C 276.229 195.045, 270.010 202.130, 270.004 210.349 C 269.995 221.957, 275.913 226.925, 295.801 232.006 C 300.753 233.271, 302.228 235.609, 299.412 237.730 C 296.739 239.746, 288.369 238.774, 281.563 235.657 L 276.132 233.171 272.469 239.320 C 268.119 246.621, 268.341 247.287, 276.524 251.500 C 281.399 254.010, 283.761 254.556, 290.977 254.842 C 302.365 255.294, 307.420 253.846, 312.603 248.649 C 317.383 243.855, 319.463 236.989, 318.043 230.693 C 316.210 222.562, 311.258 218.610, 297.878 214.599 C 288.025 211.645, 285.443 209.631, 288.538 207.315 C 291.104 205.394, 302.270 205.946, 306.769 208.217 L 310.039 209.866 313.104 203.794 C 316.516 197.035, 316.622 197.304, 309.167 193.844 C 303.663 191.289, 292.140 190.542, 285.821 192.331 M 322 199 L 322 207 330 207 L 338 207 338 231 L 338 255 347.500 255 L 357 255 357 231.044 L 357 207.088 364.250 206.794 L 371.500 206.500 371.792 198.750 L 372.084 191 347.042 191 L 322 191 322 199 M 379 223 L 379 255 401 255 L 423 255 423 247.500 L 423 240 409.500 240 L 396 240 396 235 L 396 230 407.500 230 L 419 230 419 222 L 419 214 407.500 214 L 396 214 396 210.529 L 396 207.058 409.250 206.779 L 422.500 206.500 422.792 198.750 L 423.084 191 401.042 191 L 379 191 379 223 M 433 223 L 433 255 442 255 L 451 255 451 247 L 451 239 454.800 239 C 458.555 239, 458.645 239.092, 462.469 246.937 L 466.339 254.874 476.172 255.187 C 481.580 255.359, 486.003 255.111, 486.002 254.636 C 486.001 254.160, 483.277 249.264, 479.949 243.754 C 473.914 233.765, 473.903 233.732, 475.836 231.619 C 480.222 226.824, 482.359 220.791, 482.431 213 C 482.512 204.192, 480.272 198.822, 475.031 195.260 C 469.795 191.703, 465.527 191.012, 448.750 191.006 L 433 191 433 223 M 448.210 213.250 L 448.500 221.500 455.338 221.500 C 461.319 221.500, 462.417 221.204, 464.088 219.139 C 465.995 216.785, 466.556 212.613, 465.379 209.545 C 464.356 206.879, 459.449 205, 453.509 205 L 447.919 205 448.210 213.250 M 163.169 209.017 C 156.337 210.583, 151.176 218.533, 152.339 225.701 C 154.672 240.077, 175.040 242.355, 180.446 228.844 C 184.978 217.516, 175.176 206.267, 163.169 209.017 M 216.676 271.715 C 216.037 272.750, 188 344.021, 188 344.612 C 188 344.863, 192.811 344.940, 198.691 344.784 L 209.381 344.500 211.894 336.750 L 214.406 329 226.550 329 L 238.694 329 242.097 336.992 L 245.500 344.983 255.250 344.992 C 262.399 344.998, 264.994 344.667, 264.979 343.750 C 264.968 343.063, 258.477 326.525, 250.555 307 L 236.150 271.500 226.656 271.215 C 221.434 271.058, 216.943 271.283, 216.676 271.715 M 273 307 C 273 326.800, 272.887 343.337, 272.750 343.750 C 272.613 344.163, 277.102 344.628, 282.727 344.785 L 292.954 345.069 293.227 327.379 L 293.500 309.689 307 327.336 L 320.500 344.982 328.262 344.991 L 336.025 345 335.762 308.250 L 335.500 271.500 326.750 271.211 L 318 270.922 317.882 286.711 C 317.816 295.395, 317.816 302.837, 317.882 303.250 C 317.947 303.663, 317.808 304, 317.574 304 C 317.340 304, 310.809 296.575, 303.060 287.500 L 288.971 271 280.985 271 L 273 271 273 307 M 223.254 303.048 L 220.078 312 226.539 312 C 230.093 312, 233 311.861, 233 311.691 C 233 311.257, 226.886 294.553, 226.636 294.302 C 226.522 294.189, 225.001 298.125, 223.254 303.048",stroke:"none",fill:s.themeType==="dark"?"#EEE":"#111",fillRule:"evenodd"}))))}function o5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 436 436",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function n5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 95 95",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:`M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 + c-0.344,0.922-0.443,1.413-0.907,1.363c-0.786-0.078-3.845-3.346-4.845-8.145l-2.482-11.6c1.961-3.177,3.977-5.629,5.988-7.292 + c1.08-0.882,2.314-1.349,3.808-1.43c3.815-0.26,5.203-0.74,6.14-1.399c1.547-1.115,2.397-2.728,2.397-4.542 + c0-1.596-0.604-3.019-1.75-4.115c-1.106-1.059-2.581-1.618-4.26-1.618c-2.468,0-5.239,1.142-8.474,3.49 + c-1.91,1.388-3.935,3.406-6.121,6.111c-0.711-2.653-1.319-3.889-1.771-4.628c-1.396-2.303-3.664-2.303-4.41-2.303l-0.813,0.013 + l-23.045,0.544l1.297-5.506c0.828-3.593,1.915-6.436,3.226-8.45c0.638-0.98,1.614-2.148,2.638-2.148 + c0.387,0,1.152,0.063,2.582,0.36c3.978,0.86,5.465,0.959,6.239,0.959c1.708,0,3.21-0.571,4.347-1.651 + c1.176-1.119,1.797-2.583,1.797-4.233c0-1.29-0.424-3.156-2.445-4.722c-1.396-1.081-3.311-1.629-5.691-1.629 + c-3.568,0-7.349,1.141-11.241,3.39c-3.862,2.232-7.038,5.317-9.438,9.171c-2.105,3.379-3.929,8.124-5.555,14.459H21.877 + l-2.238,8.831h10.186l-7.74,31.116c-1.603,6.443-2.777,8.028-3.098,8.361c-0.875,0.904-2.68,1.094-4.04,1.094 + c-1.683,0-3.477-0.121-5.349-0.361c-1.286-0.157-2.265-0.234-2.991-0.234c-1.878,0-3.423,0.488-4.59,1.448 + C0.716,81.858,0,83.403,0,85.14c0,1.357,0.44,3.309,2.539,4.895c1.434,1.08,3.389,1.628,5.813,1.628 + c6.069,0,11.725-2.411,16.813-7.165c4.947-4.624,8.571-11.413,10.773-20.195l6.119-24.935l20.87,0.354l2.244,9.64l-4.573,6.748 + c-0.824,1.209-2.051,2.701-3.658,4.441c-0.84,0.92-1.398,1.426-1.721,1.689c-1.316-1.608-2.809-2.424-4.432-2.424 + c-1.525,0-2.91,0.625-4.002,1.804c-1.036,1.116-1.583,2.514-1.583,4.038c0,1.83,0.783,3.459,2.264,4.709 + c1.357,1.146,3.034,1.728,4.981,1.728c2.414,0,4.884-0.921,7.344-2.737c2.053-1.519,4.697-4.526,8.074-9.189 + c2.17,6.24,5.248,10.252,6.714,11.927c2.313,2.644,6.049,4.22,9.993,4.22c3.348,0,5.244-1.402,6.916-2.641l0.148-0.109 + c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z`}))}function a5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),M.createElement("path",{fill:"currentColor",d:`M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 + l-74.091-22.229h174.635v106.667c0,11.776,9.536,21.333,21.333,21.333s21.333-9.557,21.333-21.333v-128 + C384.013,9.557,374.477,0,362.68,0H21.347c-0.768,0-1.451,0.32-2.197,0.405c-1.003,0.107-1.92,0.277-2.88,0.512 + c-2.24,0.576-4.267,1.451-6.165,2.645c-0.469,0.299-1.045,0.32-1.493,0.661C8.44,4.352,8.376,4.587,8.205,4.715 + C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992 + c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907 + l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491 + v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}function M5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 339 339",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("path",{fill:"currentColor",d:"M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("text",{style:{whiteSpace:"pre",fontFamily:"Arial, sans-serif",fontSize:16},x:"139.395",y:"288.084",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"},"vacuum"))}const E3e={dialogPaper:{height:"calc(100% - 96px)"}};class c5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const t=kt.cron2state(this.state.cron);if(t.seconds==="*"||t.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(t.minutes==="*"||t.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?M.createElement(t0,{title:d.t("ra_Please confirm"),text:d.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":E3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),M.createElement(j.DialogActions,null,!!this.props.clearButton&&M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:M.createElement(nt,null)},this.props.clear||d.t("ra_Clear")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}const f3e={dialogPaper:{height:"calc(100% - 96px)"}};class u5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof t=="object"||t[0]==="{")&&!this.props.noWizard?"wizard":nL(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":f3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?M.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),M.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},d.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),M.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},d.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),M.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},d.t("sc_cron")))):null,this.state.mode==="simple"&&M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()}),this.state.mode==="wizard"&&M.createElement(de,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}class l5e extends x.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"ar_dialog_message_title","aria-describedby":"ar_dialog_message_description"},M.createElement(j.DialogTitle,{id:"ar_dialog_message_title"},this.props.title||d.t("ra_Message")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_dialog_message_description"},M.createElement("span",{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_message_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Ne,null)},this.props.ok||d.t("ra_Close"))))}}const Ft={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class N5e extends M.Component{dialogName;filters;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let i=this.props.selected||[];typeof i!="object"?i=[i]:i=[...i],i=i.filter(r=>r),this.state={selected:i}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let e;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},this.state.selected)]:e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},d.t("%s items",this.state.selected.length))]:e=this.props.title||d.t("ra_Please select file..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...Ft.dialog,...Ft.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":Ft.titleRoot}},e),M.createElement(j.DialogContent,{style:{...Ft.content,...Ft.contentMobile}},M.createElement(jfe,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(t,i,r)=>{this.setState({selected:Array.isArray(t)?t:[t]},()=>i&&(!this.props.selectOnlyFolders||r)&&this.handleOk())},t:this.props.t||d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}const x3e={dialogPaper:{height:"calc(100% - 96px)"}};class L5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":x3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define CRON...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}const jt={CONNECTING:0,CONNECTED:1,OBJECTS_LOADED:2,STATES_LOADED:3,READY:4},yt="permissionError",b="notConnectedError";function cN(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}class R{_socket;_authTimer;systemLang="en";_waitForFirstConnection;_waitForFirstConnectionResolve=null;_promises={};_instanceSubscriptions;props;doNotLoadAllObjects;doNotLoadACL;states={};objects=null;scriptLoadCounter;acl=null;firstConnect=!0;waitForRestart=!1;connected=!1;statesSubscribes={};objectsSubscribes={};filesSubscribes={};onConnectionHandlers=[];onLogHandlers=[];onProgress;onError;loaded=!1;loadTimer=null;loadCounter=0;ignoreState="";simStates={};autoSubscribes;autoSubscribeLog;subscribed;isSecure;onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;systemConfig=null;constructor(e){e||={protocol:window.location.protocol,host:window.location.hostname},this.props=e,this.autoSubscribes=this.props.autoSubscribes||[],this.autoSubscribeLog=this.props.autoSubscribeLog||!1,this.props.protocol||=window.location.protocol,this.props.host||=window.location.hostname,this.props.port||=window.location.port==="3000"?R.isWeb()?8082:8081:window.location.port,this.props.ioTimeout=Math.max(this.props.ioTimeout||2e4,2e4),this.props.cmdTimeout=Math.max(this.props.cmdTimeout||5e3,5e3),this._instanceSubscriptions={},this.doNotLoadAllObjects=this.props.doNotLoadAllObjects===void 0?!0:this.props.doNotLoadAllObjects,this.doNotLoadACL=this.props.doNotLoadACL===void 0?!0:this.props.doNotLoadACL,this.states={},this._waitForFirstConnection=new Promise(t=>{this._waitForFirstConnectionResolve=t}),this.onProgress=this.props.onProgress||(()=>{}),this.onError=this.props.onError||(t=>console.error(t)),this.startSocket()}static isWeb(){const e=window.adapterName;return e==="material"||e==="vis"||(e==null?void 0:e.startsWith("vis-"))||e==="echarts-show"||window.socketUrl!==void 0}startSocket(){if(typeof window.io>"u"&&typeof window.iob>"u"){if(typeof window.registerSocketOnLoad!="function"){if(this.scriptLoadCounter||=0,this.scriptLoadCounter++,this.scriptLoadCounter<30){setTimeout(()=>this.startSocket(),100);return}window.alert("Cannot load socket.io.js!")}else window.registerSocketOnLoad(()=>this.startSocket());return}if(this._socket)return;let e=this.props.host,t=this.props.port,i=this.props.protocol.replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),R.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a[a.length-1].match(/\d+\.\d+\.\d+/)&&a.pop(),a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}${r}`:`${i}://${e}${r}`;this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid}),this._socket.on("connect",n=>{n!==!0?setTimeout(()=>this.getVersion().then(a=>{const[c,l,N]=a.version.split(".");parseInt(c,10)*1e4+parseInt(l,10)*100+parseInt(N,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(L,g)=>this.onPreConnect(L,g))}),500):this._socket.emit("authenticate",(a,c)=>this.onPreConnect(a,c))}),this._socket.on("reconnect",()=>{this.onProgress(jt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(n=>n(!0)))}),this._socket.on("disconnect",()=>{this.connected=!1,this.subscribed=!1,this.onProgress(jt.CONNECTING),this.onConnectionHandlers.forEach(n=>n(!1))}),this._socket.on("reauthenticate",()=>R.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a=n||"";typeof a.toString!="function"&&(a=JSON.stringify(a),console.error(`Received strange error: ${a}`)),a=a.toString(),a.includes("User not authorized")?R.authenticate():window.alert(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>setTimeout(()=>this.objectChange(n,a),0)),this._socket.on("stateChange",(n,a)=>setTimeout(()=>this.stateChange(n,a),0)),this._socket.on("im",(n,a,c)=>setTimeout(()=>this.instanceMessage(n,a,c),0)),this._socket.on("fileChange",(n,a,c)=>setTimeout(()=>this.fileChange(n,a,c),0)),this._socket.on("cmdStdout",(n,a)=>{var c;return(c=this.onCmdStdoutHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;return(c=this.onCmdStderrHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;return(c=this.onCmdExitHandler)==null?void 0:c.call(this,n,a)})}onPreConnect(e,t){this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?(this.loadTimer=setTimeout(()=>{this.loadTimer=null,this.loadCounter++,this.loadCounter<10&&this.onConnect().catch(i=>this.onError(i))},1e3),this.loaded||this.onConnect().catch(i=>this.onError(i))):this.onProgress(jt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(i=>i(!0))),this._waitForFirstConnectionResolve&&(this._waitForFirstConnectionResolve(),this._waitForFirstConnectionResolve=null)}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnection}async _getUserPermissions(){return this.doNotLoadACL?null:new Promise((e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>i?t(new Error(i)):e(r))})}async onConnect(){var i,r,o,n,a;let e;try{e=await this._getUserPermissions()}catch(c){const l=c;this.onError(`Cannot read user permissions: ${l.message}`);return}if(!this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1,this.acl=e}let t;try{if(t=await this.getSystemConfig(),this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1}this.systemConfig=t,(i=this.systemConfig)!=null&&i.common?this.systemLang=this.systemConfig.common.language:(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substr(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en")),(o=(r=this.props).onLanguage)==null||o.call(r,this.systemLang),this.doNotLoadAllObjects?(this.objects={"system.config":t},this.onProgress(jt.READY),(a=(n=this.props).onReady)==null||a.call(n,this.objects)):(await this.getObjects(),this.onProgress(jt.READY),this.props.onReady&&this.objects&&this.props.onReady(this.objects))}catch(c){this.onError(`Cannot read system config: ${c}`)}}static authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`}async subscribeState(e,t,i){typeof t=="function"&&(i=t,t=!1);let r;if(Array.isArray(e)?r=e:r=[e],!i)return console.error("No callback found for subscribeState"),Promise.reject(new Error("No callback found for subscribeState"));const o=[];for(let n=0;n{this._socket.emit(R.isWeb()?"getStates":"getForeignStates",r,(c,l)=>{c?(console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(c)}`),a(new Error(c))):(l&&Object.keys(l).forEach(N=>i(N,l[N])),n())})})}subscribeStateAsync(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{typeof t=="function"&&this.connected?this._socket.emit(R.isWeb()?"getStates":"getForeignStates",e,(a,c)=>{a&&console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`),c&&Object.keys(c).forEach(l=>t(l,c[l])),c?o():n(new Error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`))}):this.connected?n(new Error("callback is not a function")):n(new Error("not connected"))})}unsubscribeState(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{(o===e||this.objectsSubscribes[o].reg.test(e))&&this.objectsSubscribes[o].cbs.forEach(n=>{try{n(e,t,i)}catch(a){console.error(`Error by callback of objectChange: ${a}`)}})}),r&&this.props.onObjectChange&&this.props.onObjectChange(e,t)}stateChange(e,t){for(const i in this.statesSubscribes)Object.prototype.hasOwnProperty.call(this.statesSubscribes,i)&&this.statesSubscribes[i].reg.test(e)&&this.statesSubscribes[i].cbs.forEach(r=>{try{r(e,t)}catch(o){const n=o;console.error(`Error by callback of stateChange: ${n==null?void 0:n.message}`)}})}instanceMessage(e,t,i){this._instanceSubscriptions[t]&&this._instanceSubscriptions[t].forEach(r=>{r.messageType===e&&r.callback(i,t,e)})}getStates(e,t){return this.connected?(typeof e=="boolean"&&(t=e,e=void 0),new Promise((i,r)=>{this._socket.emit("getStates",e,(o,n)=>{this.states=n,!t&&this.onProgress(jt.STATES_LOADED),o?r(new Error(o)):i(this.states)})})):Promise.reject(new Error(b))}getState(e){return this.connected?e&&e===this.ignoreState?Promise.resolve(this.simStates[e]||{val:null,ack:!0}):new Promise((t,i)=>{this._socket.emit("getState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getBinaryState(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}setBinaryState(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("setBinaryState",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setState(e,t,i){if(!this.connected)return Promise.reject(new Error(b));if(e&&e===this.ignoreState){let r;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?r=t:r={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=r,this.statesSubscribes[e])for(const o of this.statesSubscribes[e].cbs)try{o(e,r)}catch(n){console.error(`Error by callback of stateChanged: ${n}`)}return Promise.resolve()}return new Promise((r,o)=>{this._socket.emit("setState",e,t,n=>n?o(new Error(n)):r())})}getObjects(e,t){return this.connected?new Promise((i,r)=>{!e&&this.objects?i(this.objects):this._socket.emit(R.isWeb()?"getObjects":"getAllObjects",(o,n)=>{this.objects=n,t&&this.onProgress(jt.OBJECTS_LOADED),o?r(new Error(o)):i(this.objects)})}):Promise.reject(new Error(b))}getObjectsById(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getObjects",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}_subscribe(e){if(e&&!this.subscribed){this.subscribed=!0,this.autoSubscribes.forEach(i=>this._socket.emit("subscribeObjects",i)),Object.keys(this.objectsSubscribes).forEach(i=>this._socket.emit("subscribeObjects",i)),this.autoSubscribeLog&&this._socket.emit("requireLog",!0);const t=Object.keys(this.statesSubscribes);t.forEach(i=>this._socket.emit("subscribe",i)),t.length&&this._socket.emit(R.isWeb()?"getStates":"getForeignStates",t,(i,r)=>{i&&console.error(`Cannot getForeignStates: ${JSON.stringify(i)}`),r&&Object.keys(r).forEach(o=>this.stateChange(o,r[o]))})}else!e&&this.subscribed&&(this.subscribed=!1,this.autoSubscribes.forEach(t=>this._socket.emit("unsubscribeObjects",t)),Object.keys(this.objectsSubscribes).forEach(t=>this._socket.emit("unsubscribeObjects",t)),this.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(t=>this._socket.emit("unsubscribe",t)))}requireLog(e){return this.connected?new Promise((t,i)=>{this._socket.emit("requireLog",e,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}delObject(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObject",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}delObjects(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObjects",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setObject(e,t){return this.connected?t?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("setObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error("Null object is not allowed")):Promise.reject(new Error(b))}getObject(e){return this.connected?e&&e===this.ignoreState?Promise.resolve({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed",read:!0,write:!0,role:"state"},native:{}}):new Promise((t,i)=>{this._socket.emit("getObject",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`instances_${e}`]instanceof Promise?this._promises[`instances_${e}`]:this.connected?(this._promises[`instances_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapterInstances",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`instances_${e}`]):Promise.reject(new Error(b))}getAdapters(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`adapter_${e}`]instanceof Promise?this._promises[`adapter_${e}`]:this.connected?(this._promises[`adapter_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapters",e,(o,n)=>{o?r(new Error(o)):i(n)})}),this._promises[`adapter_${e}`]):Promise.reject(new Error(b)))}_renameGroups(e,t){if(!(e!=null&&e.length))t==null||t(null);else{const i=e.pop();if(!i){setTimeout(()=>this._renameGroups(e,t),0);return}const r=i._id;i._id=i.newId,delete i.newId,this.setObject(i._id,i).then(()=>this.delObject(r)).then(()=>setTimeout(()=>this._renameGroups(e,t),0)).catch(o=>t==null?void 0:t(o))}}async renameGroup(e,t,i){if(R.isWeb())return Promise.reject(new Error("Allowed only in admin"));const r=await this.getGroups(!0);if(r.length){const o=r.filter(a=>a._id.startsWith(`${e}.`));o.forEach(a=>{a.newId=t+a._id.substring(e.length)}),await new Promise((a,c)=>{this._renameGroups(o,l=>l?c(new Error(l)):a(null))});const n=r.find(a=>a._id===e);if(n)return n._id=t,i!==void 0&&(n.common||={},n.common.name=i),this.setObject(n._id,n).then(()=>this.delObject(e))}return Promise.resolve()}sendTo(e,t,i){return this.connected?new Promise(r=>{this._socket.emit("sendTo",e,t,i,o=>r(o))}):Promise.reject(new Error(b))}extendObject(e,t){return this.connected?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("extendObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error(b))}registerLogHandler(e){!this.onLogHandlers.includes(e)&&this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){!this.onConnectionHandlers.includes(e)&&this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return!t&&this._promises[`enums_${e||"all"}`]instanceof Promise?this._promises[`enums_${e||"all"}`]:this.connected?(this._promises[`enums_${e||"all"}`]=new Promise((i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:`enum.${e?`${e}.`:""}香`},(o,n)=>{if(!o&&n){const a={};for(let c=0;c{this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(new Error(a));else{const l={};if(c&&c.rows)for(let N=0;N{const i=[];return t&&t.native&&t.native.certificates&&Object.keys(t.native.certificates).forEach(r=>{const o=t.native.certificates[r];if(!o)return;const n={name:r,type:""};o.length<700&&(o.includes("/")||o.includes("\\"))?(r.toLowerCase().includes("private")||o.toLowerCase().includes("private")?n.type="private":(r.toLowerCase().includes("public")||o.toLowerCase().includes("public"))&&(n.type="public"),i.push(n)):(n.type=o.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||o.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",n.type==="public"&&o.split("-----END CERTIFICATE-----").filter(c=>c.replace(/\r\n|\r|\n/,"").trim()).length>1&&(n.type="chained"),i.push(n))}),i}),this._promises.cert):Promise.reject(new Error(b))}getLogs(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>i(r))}):Promise.reject(new Error(b))}getLogsFiles(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("readLogs",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}delLogs(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}readMetaItems(){return this.connected?new Promise((e,t)=>{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>i?t(new Error(i)):e(r.rows&&r.rows.map(o=>o.value)))}):Promise.reject(new Error(b))}readDir(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}readFile(e,t,i){return this.connected?new Promise((r,o)=>{i?this._socket.emit("readFile64",e,t,i,(n,a)=>n?o(new Error(n)):r(a)):this._socket.emit("readFile",e,t,(n,a,c)=>{n?o(new Error(n)):r({data:a,type:c})})}):Promise.reject(new Error(b))}writeFile64(e,t,i){return this.connected?new Promise((r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>n?o(new Error(n)):r());else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>a?o(new Error(a)):r())}}):Promise.reject(new Error(b))}deleteFile(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("unlink",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}deleteFolder(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("deleteFolder",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}getHosts(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hosts instanceof Promise?this._promises.hosts:this.connected?(this._promises.hosts=new Promise((t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.hosts):Promise.reject(new Error(b))}getUsers(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.users instanceof Promise?this._promises.users:this.connected?(this._promises.users=new Promise((t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.users):Promise.reject(new Error(b))}getGroups(e){return!e&&this._promises.groups instanceof Promise?this._promises.groups:this.connected?(this._promises.groups=new Promise((t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.groups):Promise.reject(new Error(b))}getHostInfo(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfo_${e}`]instanceof Promise?this._promises[`hostInfo_${e}`]:this.connected?(this._promises[`hostInfo_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getHostInfo timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfo"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfo"')):r(a))})}),this._promises[`hostInfo_${e}`]):Promise.reject(new Error(b)))}getHostInfoShort(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfoShort_${e}`]instanceof Promise?this._promises[`hostInfoShort_${e}`]:this.connected?(this._promises[`hostInfoShort_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("hostInfoShort timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfoShort"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfoShort"')):r(a))})}),this._promises[`hostInfoShort_${e}`]):Promise.reject(new Error(b)))}getRepository(e,t,i,r){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!i&&this._promises.repo instanceof Promise?this._promises.repo:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repo=new Promise((o,n)=>{let a=setTimeout(()=>{a&&(a=null,n(new Error("getRepository timeout")))},r||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getRepository",t,c=>{a&&(clearTimeout(a),a=null,c===yt?n(new Error('May not read "getRepository"')):!c||typeof c!="object"?n(new Error('Cannot read "getRepository"')):o(c))})}),this._promises.repo):Promise.reject(new Error(b))}getInstalled(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installed=this._promises.installed||{},!t&&this._promises.installed[e]instanceof Promise?this._promises.installed[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installed[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getInstalled"')):r(a))})}),this._promises.installed[e]):Promise.reject(new Error(b)))}rename(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("rename",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}renameFile(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("renameFile",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}cmdExec(e,t,i,r){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),new Promise((o,n)=>{let a=r?setTimeout(()=>{a&&(a=null,n(new Error("cmdExec timeout")))},r):null;this._socket.emit("cmdExec",e,i,t,null,c=>{(!r||a)&&(a&&clearTimeout(a),a=null,c?n(new Error(c)):o())})})):Promise.reject(new Error(b))}checkFeatureSupported(e,t){return!t&&this._promises[`supportedFeatures_${e}`]instanceof Promise?this._promises[`supportedFeatures_${e}`]:this.connected?(this._promises[`supportedFeatures_${e}`]=new Promise((i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`supportedFeatures_${e}`]):Promise.reject(new Error(b))}async readBaseSettings(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):await this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS")?this.connected?new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("readBaseSettings timeout")))},this.props.cmdTimeout);e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),this._socket.emit("sendToHost",e,"readBaseSettings",null,n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "BaseSettings"')):!n||typeof n!="object"?r(new Error('Cannot read "BaseSettings"')):i(n))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported"))}writeBaseSettings(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then(i=>i?this.connected?new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("writeBaseSettings timeout")))},this.props.cmdTimeout);this._socket.emit("sendToHost",e,"writeBaseSettings",t,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not write "BaseSettings"')):a?r(a):o(new Error('Cannot write "BaseSettings"')))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported")))}restartController(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("sendToHost",e,"restartController",null,r=>{r?i(new Error(r)):t(!0)})})}getDiagData(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise(i=>{this._socket.emit("sendToHost",e,"getDiagData",t,r=>i(r))})}getForeignStates(e){return this.connected?R.isWeb()?new Promise((t,i)=>{this._socket.emit("getStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):new Promise((t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getForeignObjects(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getSystemConfig(e){return!e&&this._promises.systemConfig instanceof Promise?this._promises.systemConfig:this.connected?(this._promises.systemConfig=this.getObject("system.config").then(t=>{const i=t||{};return i.common||={},i.native||={},i}),this._promises.systemConfig):Promise.reject(new Error(b))}setSystemConfig(e){return this.setObject("system.config",e).then(()=>this._promises.systemConfig=Promise.resolve(e))}getRawSocket(){return this._socket}getHistory(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getHistoryEx(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>o?r(new Error(o)):i({values:n,sessionId:c,step:a}))}):Promise.reject(new Error(b))}changePassword(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((i,r)=>{this._socket.emit("changePassword",e,t,o=>o?r(new Error(o)):i())})}getIpAddresses(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e=`system.host.${e}`),!t&&this._promises[`IPs_${e}`]instanceof Promise?this._promises[`IPs_${e}`]:(this._promises[`IPs_${e}`]=this.getObject(e).then(i=>i!=null&&i.common?i.common.address||[]:[]),this._promises[`IPs_${e}`]))}getHostByIp(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),!t&&this._promises[`rIPs_${e}`]instanceof Promise?this._promises[`rIPs_${e}`]:(this._promises[`rIPs_${e}`]=new Promise(i=>{this._socket.emit("getHostByIp",e,(r,o)=>{var c,l;const n=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],a=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((l=(c=o==null?void 0:o.native)==null?void 0:c.hardware)!=null&&l.networkInterfaces){for(const N in o.native.hardware.networkInterfaces)if(Object.prototype.hasOwnProperty.call(o.native.hardware.networkInterfaces,N))for(let u=0;u{this._socket.emit("encrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}decrypt(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("decrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}getVersion(e){return!e&&this._promises.version instanceof Promise?this._promises.version:(this._promises.version=new Promise((t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(new Error(r)):t({version:o,serverName:n})})}),this._promises.version)}getWebServerName(){return this._promises.webName instanceof Promise?this._promises.webName:(this._promises.webName=new Promise((e,t)=>{this._socket.emit("getAdapterName",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.webName)}getAdminVersion(){return console.log("Deprecated: use getVersion"),this.getVersion()}chmodFile(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chmodFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}chownFile(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chownFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}fileExists(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getNotifications(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}clearNotifications(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}getIsEasyModeStrict(){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getIsEasyModeStrict",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getEasyMode(){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getEasyMode",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getCurrentUser(){return this.connected?new Promise(e=>{this._socket.emit("authEnabled",(t,i)=>e(i))}):Promise.reject(new Error(b))}getCurrentSession(e){return this.connected?new Promise((t,i)=>{const r=new AbortController;let o=setTimeout(()=>{o&&(o=null,r.abort(),i(new Error("getCurrentSession timeout")))},e||5e3);fetch("./session",{signal:r.signal}).then(n=>n.json()).then(n=>{o&&(clearTimeout(o),o=null,t(n))}).catch(n=>i(new Error(`getCurrentSession: ${n}`)))}):Promise.reject(new Error(b))}getRatings(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("getRatings",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getCurrentInstance(){return this.connected?this._promises.currentInstance instanceof Promise?this._promises.currentInstance:(this._promises.currentInstance=new Promise((e,t)=>{this._socket.emit("getCurrentInstance",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.currentInstance):Promise.reject(new Error(b))}getCompactAdapters(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactAdapters instanceof Promise?this._promises.compactAdapters:this.connected?(this._promises.compactAdapters=new Promise((t,i)=>{this._socket.emit("getCompactAdapters",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactAdapters):Promise.reject(new Error(b))}getAdaptersResetCache(e){e||="",delete this._promises.compactAdapters,delete this._promises[`adapter_${e}`]}getCompactInstances(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactInstances instanceof Promise?this._promises.compactInstances:this.connected?(this._promises.compactInstances=new Promise((t,i)=>{this._socket.emit("getCompactInstances",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactInstances):Promise.reject(new Error(b))}getAdapternInstancesResetCache(e){e||="",delete this._promises.compactInstances,delete this._promises[`instances_${e}`]}getCompactInstalled(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installedCompact||={},!t&&this._promises.installedCompact[e]instanceof Promise?this._promises.installedCompact[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installedCompact[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactInstalled",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getCompactInstalled"')):r(a))})}),this._promises.installedCompact[e]):Promise.reject(new Error(b)))}getCompactSystemRepositories(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.getCompactSystemRepositories instanceof Promise?this._promises.getCompactSystemRepositories:this.connected?(this._promises.getCompactSystemRepositories=new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("getCompactSystemRepositories timeout")))},t||this.props.cmdTimeout);this._socket.emit("getCompactSystemRepositories",n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "getCompactSystemRepositories"')):!n||typeof n!="object"?r(new Error('Cannot read "getCompactSystemRepositories"')):i(n))})}),this._promises.getCompactSystemRepositories):Promise.reject(new Error(b))}getCompactSystemConfig(e){return!e&&this._promises.systemConfigPromise instanceof Promise?this._promises.systemConfigPromise:this.connected?(this._promises.systemConfigPromise=new Promise((t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.systemConfigPromise):Promise.reject(new Error(b))}getCompactRepository(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!t&&this._promises.repoCompact instanceof Promise?this._promises.repoCompact:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repoCompact=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactRepository timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactRepository",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactRepository"')):a?r(a):o(new Error('Cannot read "getCompactRepository"')))})}),this._promises.repoCompact):Promise.reject(new Error(b))}getInstalledResetCache(){delete this._promises.repoCompact,delete this._promises.repo}getCompactHosts(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hostsCompact instanceof Promise?this._promises.hostsCompact:this.connected?(this._promises.hostsCompact=new Promise((t,i)=>{this._socket.emit("getCompactHosts",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.hostsCompact):Promise.reject(new Error(b))}getUuid(){return this._promises.uuid instanceof Promise?this._promises.uuid:this.connected?(this._promises.uuid=this.getObject("system.meta.uuid").then(e=>{var t;return(t=e==null?void 0:e.native)==null?void 0:t.uuid}),this._promises.uuid):Promise.reject(new Error(b))}subscribeOnInstance(e,t,i,r){return this.connected?new Promise((o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(new Error(a)):c!=null&&c.error?n(new Error(c.error)):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]||=[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c))})}):Promise.reject(new Error(b))}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(new Promise((N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>{L?u(new Error(L)):N(g)})}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>a.find(c=>c)||!1):Promise.resolve(!1)}log(e,t){e&&this._socket.emit("log",e,t||"debug")}logout(){return this.connected?new Promise((e,t)=>{this._socket.emit("logout",i=>i?t(new Error(i)):e())}):Promise.reject(new Error(b))}setStateToIgnore(e){this.ignoreState=e||""}}function g5e(s){var e;return s.type==="object"?`iobobject://${s.address}/${s.path||""}`:s.type==="state"?`iobstate://${s.address}`:s.type==="file"?`iobfile://${s.address}/${s.path||""}`:s.type==="http"?s.address:(e=s.path)!=null&&e.includes("/")?`iobfile://${s.address}/${s.path}`:s.path?`iobobject://${s.address}/${s.path}`:`iobstate://${s.address}`}function _3e(s){const e={type:"object",address:""};if(s.startsWith("iobobject://")){e.type="object",s=s.replace("iobobject://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobstate://")){e.type="state",s=s.replace("iobstate://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobfile://")){e.type="file",s=s.replace("iobfile://","");const t=s.split("/");e.address=t.shift(),e.path=t.join("/")}else if(s.startsWith("http://")||s.startsWith("https://"))e.type="http",e.address=s;else if(s.startsWith("data:"))e.type="base64",e.address=s;else{const t=s.split("/");if(t.length===2)if(e.address=t[0],e.path=t[1],e.path.includes("."))e.type="object";else if(e.path)if(e.path==="val"||e.path==="q"||e.path==="ack"||e.path==="ts"||e.path==="lc"||e.path==="from"||e.path==="user"||e.path==="expire"||e.path==="c")e.type="state";else if(e.path==="common"||e.path==="native"||e.path==="from"||e.path==="acl"||e.path==="type")e.type="object";else throw new Error(`Unknown path: ${e.path}`);else e.type="state";else t.length===1?(e.address=t[0],e.type="state"):(e.address=t.shift(),e.type="file",e.path=t.join("/"))}return e}function aL(s,e,t){if(t=t||0,s==null||!e)return s;if(e.length-1===t)return s[e[t]];if(typeof s=="object")return aL(s[e[t]],e,t+1)}function S3e(s,e,t,i){if(i=i||0,s==null||!e)return t;if(e.length-1===i)return s[e[i]]=t,s;if(typeof s=="object")return S3e(s[e[i]],e,t,i+1)}async function j5e(s,e){var t;if(typeof s=="string"&&(s=_3e(s)),s.type==="object"){const i=await e.getObject(s.address);return aL(i,(t=s.path)==null?void 0:t.split("."))}if(s.type==="state"){const i=await e.getState(s.address);return s.path?i==null?void 0:i[s.path]:i}if(s.type==="file")return await e.readFile(s.address,s.path,!0);if(s.type==="http")return fetch(s.address).then(i=>i.text()).then(i=>{if(i.startsWith("{")&&i.endsWith("}")||i.startsWith("[")&&i.endsWith("]"))try{return JSON.parse(i)}catch{}return i});throw new Error(`Unknown type: ${s.type}`)}const Mn=s=>{const e={};return s.forEach(t=>{e[t]={requiredVersion:"*",singleton:!0}}),e};function y5e(s){const e=["@emotion/react","@emotion/styled","@iobroker/adapter-react-v5","@iobroker/json-config","@iobroker/dm-gui-components","@mui/icons-material","@mui/material","@mui/x-date-pickers","date-fns","date-fns/locale","leaflet","leaflet-geosearch","react","react-ace","react-dom","react-dropzone","semver"];return Array.isArray(s)?Mn(e.filter(t=>s.includes(t))):s&&(s.dependencies||s.devDependencies)?Mn(e.filter(t=>{var i,r;return((i=s.dependencies)==null?void 0:i[t])||((r=s.devDependencies)==null?void 0:r[t])})):Mn(e)}export{B3e as AdminConnection,Ii as ColorPicker,kt as ComplexCron,c5e as ComplexCronDialog,t0 as Confirm,ze as Connection,u5e as Cron,J3e as CustomModal,k_e as DeviceTypeIcon,H3e as DeviceTypeSelector,c5e as DialogComplexCron,t0 as DialogConfirm,u5e as DialogCron,s0 as DialogError,l5e as DialogMessage,N5e as DialogSelectFile,ESe as DialogSelectID,L5e as DialogSimpleCron,JEe as DialogTextInput,Ie as ERRORS,we as EXTENSIONS,s0 as Error,jfe as FileBrowser,dM as FileBrowserClass,gfe as FileViewer,Lfe as FileViewerClass,Gt as GenericApp,d as I18n,Ul as ITEM_IMAGES,me as Icon,Z_e as IconAdapter,lfe as IconAlias,o5e as IconButtonImage,A4 as IconChannel,eSe as IconClearFilter,Ws as IconClosed,Ts as IconCopy,m4 as IconDevice,X_e as IconDocument,K_e as IconDocumentReadOnly,$n as IconExpert,n5e as IconFx,q_e as IconInstance,a5e as IconLogout,DM as IconNoIcon,fr as IconOpen,G3e as IconPicker,Gxe as IconSelector,Ai as IconState,M5e as IconVacuum,xr as Image,Z3e as InfoBox,R as LegacyConnection,ud as Loader,r5e as LoaderMV,i5e as LoaderPT,s5e as LoaderVendor,I4 as Logo,p4 as MDUtils,l5e as Message,NSe as ObjectBrowser,it as ObjectBrowserClass,W3e as PERMISSION_ERROR,rt as PROGRESS,Oi as Router,V3e as STATES_NAME_ICONS,yd as SaveCloseButtons,de as Schedule,N5e as SelectFile,ESe as SelectID,X3e as SelectWithIcon,$i as SimpleCron,L5e as SimpleCronDialog,tSe as TabContainer,sSe as TabContent,iSe as TabHeader,K3e as TableResize,JEe as TextInput,q3e as TextWithIcon,Yg as Theme,e5e as ToggleThemeMenu,Kn as TreeTable,t5e as UploadImage,O as Utils,D4 as convertCronToText,e0 as copy,nL as cron2state,h4e as dictionary,C4 as extendDeviceTypeTranslation,aL as getAttrInObject,F3e as getSelectIdIcon,Zr as getSelectIdIconFromObjects,R3e as getSystemIcon,_3e as iobUriParse,j5e as iobUriRead,g5e as iobUriToString,y5e as moduleFederationShared,cN as pattern2RegEx,Md as printPrompt,S3e as setAttrInObject,Io as withWidth}; diff --git a/admin/assets/index-CEoeyJnt.css b/admin/assets/index-CEoeyJnt.css deleted file mode 100644 index 9d8d710ca..000000000 --- a/admin/assets/index-CEoeyJnt.css +++ /dev/null @@ -1 +0,0 @@ -html{width:100%;height:100%}.Light.visGutter{background:#dadada!important}.Dark.visGutter{background:#1e1e1e!important}body{overflow:hidden;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%}.iobVerticalSplitter .layout-pane-primary{overflow:hidden!important}#root{width:100%;height:100%}#___reactour>div:first-of-type{opacity:.4}.layout-pane-primary{height:100%}.blocklyToolboxDiv{left:0!important;width:180px;top:0!important;height:100%!important}.no-underline:before{border-bottom:0!important}.monaco-aria-container{top:0}.iobVerticalSplitter .layout-pane-primary{overflow:hidden}.monacoCurrentLine{background:#59fd8c}.monacoCurrentLineDark{background:#165b2c}.monacoCurrentFullLine{background:#cbffdc;opacity:.7}.monacoCurrentFullLineDark{background:#0e3b1f;opacity:.7}.monacoBreakPointDark{background:maroon;border-radius:50%;width:16px!important;height:16px!important;margin-left:4px}.monacoBreakPoint{background:#d71a1a;border-radius:50%;width:16px!important;height:16px!important;margin-left:4px}._wrapperRules_nnott_1{background:linear-gradient(0deg,var(--backgroundGlobalColor),var(--backgroundGlobalColor)),url(./back-CXiqI7Po.jpg);background-repeat:no-repeat;background-size:cover;height:100%;display:flex}._rootWrapper_nnott_9{display:flex;width:100%}._addClass_nnott_14{flex-direction:column;height:auto;overflow:auto}@media screen and (max-width: 835px){._rootWrapper_nnott_9{flex-direction:column;height:auto;overflow:auto}}._switchesItem_10ls3_1{max-width:200px;width:auto;display:flex;margin:5px 0;padding:12px 0;align-items:center;border:1px solid rgba(255,255,255,0);transition:all .7s;color:var(--colorInput)}._switchesItem_10ls3_1 span{overflow:hidden;text-overflow:ellipsis;width:100%;margin-left:15px;color:var(--lineColorActive);white-space:nowrap}._switchesItem_10ls3_1:hover,._switchesItemActive_10ls3_28{border:1px solid var(--lineColor);color:var(--lineColorHover);border-radius:6px;background:var(--backgroundColor);cursor:pointer}._iconTheme_10ls3_36{width:30px!important;height:30px!important;margin-left:5px}._iconTheme_10ls3_36 *{color:var(--lineColorActive)!important}._cardStyle_8rq8v_1{cursor:pointer;position:relative;min-width:200px;width:calc(100% - 72px);height:fit-content;min-height:70px;display:flex;padding:10px;margin:23px 12px 4px;align-items:center;background:#ffffff6b;border-radius:4px;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}._cardStyleActive_8rq8v_17{width:300px;z-index:100}._controlMenu_8rq8v_22{display:flex;position:absolute;right:-31px;width:30px;height:100%;transition:opacity .5s}._closeBtn_8rq8v_31{width:20px;height:20px;border-radius:20px;position:relative;z-index:1;margin:5px auto;cursor:pointer}._closeBtn_8rq8v_31:before{content:"+";color:#f7060684;position:absolute;z-index:2;transform:rotate(45deg);font-size:30px;line-height:1;top:-6px;left:2px;transition:all .3s cubic-bezier(.77,0,.2,.85)}._closeBtn_8rq8v_31:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background:var(--backgroundColorHumburger);z-index:1;transition:all .3s cubic-bezier(.77,0,.2,.85);transform:scale(.01)}._closeBtn_8rq8v_31:hover:after{transform:scale(1)}._closeBtn_8rq8v_31:hover:before{transform:scale(.8) rotate(45deg);color:#fff}._isDelete_8rq8v_73{height:0;min-height:0;overflow:hidden;padding:0 10px;margin:0 12px;transition:all .25s;background:#fff;opacity:.8;box-shadow:0 0 10px #6accff}@media screen and (max-width: 835px){._controlMenu_8rq8v_22{opacity:1!important}}._drag_mobile_8rq8v_90{display:none}@media screen and (max-width: 600px){._drag_mobile_8rq8v_90{display:flex;width:30px;height:20px;background:repeating-linear-gradient(180deg,var(--lineColorActive),var(--lineColorActive) 4px,var(--backgroundColorHumburger) 4px,var(--backgroundColorHumburger) 8px);border:1px solid var(--lineColorActive);border-radius:5px 0 0;position:absolute;top:0;left:0;cursor:pointer}}@keyframes _fadeIn_15el3_1{0%{opacity:0}1%{opacity:0}to{opacity:1}}._cardStyle_15el3_12{cursor:pointer;position:relative;min-width:200px;width:calc(100% - 72px);height:fit-content;min-height:70px;display:flex;padding:10px;margin:23px 12px 4px;align-items:center;background:var(--backgroundBlock);border-radius:4px;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}._nameCard_15el3_28{margin-top:0;font-size:19px;color:var(--colorBlock);font-weight:500}._cardStyleActive_15el3_35{width:300px;z-index:100}._iconThemCard_15el3_40{width:40px!important;height:40px!important;margin-left:5px}._iconThemCard_15el3_40 *{color:var(--colorBlock)!important}._iconThemCardSelectable_15el3_49{cursor:pointer}._iconHelp_15el3_53{color:var(--colorBlock)!important;position:absolute!important;top:0;right:5px}._inputCard_15el3_60{margin-top:10px!important}._blockName_15el3_64{margin-left:10px;width:100%;display:flex;flex-direction:column;position:relative}._controlMenu_15el3_72{display:flex;position:absolute;right:-31px;width:30px;height:100%;transition:opacity .5s}._closeBtn_15el3_81{width:20px;height:20px;border-radius:20px;position:relative;z-index:1;margin:5px auto;cursor:pointer}._closeBtn_15el3_81:before{content:"+";color:#f7060684;position:absolute;z-index:2;transform:rotate(45deg);font-size:30px;line-height:1;top:-6px;left:2px;transition:all .3s cubic-bezier(.77,0,.2,.85)}._closeBtn_15el3_81:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background:#994e9e7d;z-index:1;transition:all .3s cubic-bezier(.77,0,.2,.85);transform:scale(.01)}._closeBtn_15el3_81:hover:after{transform:scale(1)}._closeBtn_15el3_81:hover:before{transform:scale(.8) rotate(45deg);color:#fff}._controlMenuTop_15el3_123{display:flex;position:absolute;left:0;width:100%;overflow:hidden;transition:opacity .5s,height .5s,top .5s}._debugInfo_15el3_132{font-size:12px;font-style:italic;color:var(--debugColor);position:absolute;display:flex;opacity:0;animation:_fadeIn_15el3_1 .3s ease-out}._tagCard_15el3_142{text-align:center;color:var(--lineColorActive);min-width:100px;padding:2px 2px 0;height:22px;background:var(--backgroundColorHumburger);border-radius:5px 5px 0 0;position:relative;margin-left:auto;margin-right:8px;cursor:pointer;border-top:1px solid var(--lineColor);border-left:1px solid var(--lineColor);border-right:1px solid var(--lineColor);font-size:12px}._displayFlex_15el3_161{display:flex;align-items:center}._blockMarginTop_15el3_166,._nameBlock_15el3_167{margin-top:7px}._frontText_15el3_171{margin-right:7px;min-width:80px;display:inline-table}._backText_15el3_177{margin-left:7px}._iconTag_15el3_181{font-size:40px;color:var(--colorBlock);display:flex;align-items:center;min-width:40px;margin-bottom:10px;margin-left:12px}._displayItalic_15el3_191{font-style:italic;font-size:11px;margin-top:0}._root_1dr6a_1{color:var(--colorBlock)!important;border-color:var(--colorBlock)!important}._root_1dr6a_1:hover{border-color:var(--colorBlockHover)!important;color:var(--colorBlockHover)!important;background-color:inherit!important}._square_1dr6a_11{min-width:auto!important;padding:6px 16px!important}._icon_1dr6a_16{width:24px;height:24px}._root_1ucda_1 *{color:var(--colorBlock)!important}._root_19roy_1{background:var(--backgroundColorHumburger);border-radius:5px;margin-top:0!important;margin-bottom:0!important}._root_19roy_1 *{color:var(--colorInput)!important}._root_19roy_1 [class*=MuiInputLabel-shrink]{color:var(--colorBlock)!important}._root_19roy_1 [class*=MuiInput-underline] :after{border-bottom-color:var(--lineColor)!important}._root_19roy_1:hover [class*=MuiOutlinedInput-notchedOutline],._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline],._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline]:hover,._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline] [class*=Mui-focused],._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline] [class*=Mui-disabled]{border-color:var(--lineColor)!important}._modalContentWrapper_587ci_1{margin:20px 0;padding:0 35px;overflow-x:hidden;min-width:320px}._modalButtonBlock_587ci_8{display:flex;justify-content:flex-end;margin-top:20px;flex-flow:wrap;border-top:1px solid var(--lineColorActive);border-color:var(--lineColorActive);background:var(--backgroundColorHumburger);border-radius:3px}._modalButtonBlock_587ci_8 button{color:var(--lineColorActive)!important;flex:1}._modalButtonBlockTwo_587ci_23{justify-content:space-around;flex-flow:wrap-reverse;position:sticky;bottom:0}._modalButtonBlockTwo_587ci_23 button{margin:5px}._modalWrapper_587ci_33 [class*="MuiPaper-root MuiDialog-paper MuiPaper-elevation24 MuiDialog-paperScrollPaper MuiDialog-paperWidthXl MuiPaper-elevation24 MuiPaper-rounded"]{background-color:#f6f6f6}._modalDialog_587ci_40{min-width:400px}._close_587ci_44{position:absolute;right:-14px;top:-16px;width:32px;height:32px;opacity:.9;cursor:pointer;transition:all .6s ease}._close_587ci_44:hover{transform:rotate(90deg)}._close_587ci_44:before{position:absolute;left:15px;content:"";height:33px;width:4px;background-color:#ff4f4f;transform:rotate(45deg)}._close_587ci_44:after{position:absolute;left:15px;content:"";height:33px;width:4px;background-color:#ff4f4f;transform:rotate(-45deg)}@media screen and (max-width: 460px){._modalContentWrapper_587ci_1{min-width:auto}}._root_15mo1_1{margin-top:0!important;margin-bottom:0!important;max-width:440px}._root_15mo1_1 *,._root_15mo1_1 [class*=MuiInputLabel-shrink]{color:var(--colorBlock)!important}._root_15mo1_1 [class*=MuiInput-underline]:after{border-bottom-color:var(--lineColor)!important}._root_15mo1_1 [class*=MuiInput-underline]:before{border-bottom-color:var(--lineColor)!important}._root_15mo1_1 [class*=MuiInput-underline]:hover:before{border-bottom-color:var(--lineColor)!important}._root_1gt4d_1{color:var(--lineColorActive)!important;height:8px!important}._root_1gt4d_1 [class*=MuiSlider-rail],._root_1gt4d_1 [class*=MuiSlider-track]{height:8px!important;border-radius:4px}._root_1gt4d_1 [class*=MuiSlider-valueLabel]{left:calc(-50% + 4px)}._root_1gt4d_1 [class*=MuiSlider-thumb]{height:24px;width:24px;background-color:var(--colorBlock);border:2px solid currentColor;margin-top:-8px;margin-left:-12px}._root_1gt4d_1 [class*=MuiSlider-thumb]:focus,._root_1gt4d_1 [class*=MuiSlider-thumb]:hover,._root_1gt4d_1 [class*=MuiSlider-thumb][class*=MuiSlider-active]{box-shadow:inherit!important}._root_1gt4d_1 ._mark_1gt4d_27{background-color:#0000!important}._root_rzul6_1 *{color:var(--colorBlock)!important}._root_rzul6_1 [class*=Mui-checked]{color:var(--lineColor)!important}._root_rzul6_1 [class*=Mui-checked]+[class*=MuiSwitch-track]{background-color:var(--lineColor)!important}._root_135pm_1{margin-top:0!important;margin-bottom:0!important}._root_135pm_1 *,._root_135pm_1 [class*=MuiInputLabel-shrink]{color:var(--colorBlock)!important}._root_135pm_1 [class*=MuiInput-underline]:after{border-bottom-color:var(--lineColor)!important}._root_135pm_1 [class*=MuiInput-underline]:before{border-bottom-color:var(--lineColor)!important}._root_135pm_1 [class*=MuiInput-underline]:hover:before{border-bottom-color:var(--lineColor)!important}._border_wrpm3_1{border-left:1px solid var(--lineColor);border-right:1px solid var(--lineColor)}._emptyBlockStyle_wrpm3_6{cursor:pointer;width:auto;background:#ffffff1f;display:flex;margin:10px 40px 10px 10px;align-items:center;border-radius:4px}._emptyBlock_wrpm3_6{padding:10px;margin-top:10px;animation:_marginTop_wrpm3_1 .12s}._selectOnChange_wrpm3_22{margin-left:12px;color:var(--lineColor)!important;width:calc(100% - 42px)}._selectOnChangeHelp_wrpm3_28{color:var(--lineColor);vertical-align:middle;cursor:pointer}._selectOnChangeHelpIcon_wrpm3_34{color:var(--lineColor)}@keyframes _marginTop_wrpm3_1{0%{padding:0;margin-top:70px;height:0}to{padding:10px;margin-top:10px}}._emptyBlockNone_wrpm3_49{height:0;animation:none;transition:height .02s}._mainBlockItemRules_wrpm3_55{display:flex;flex:1 3;flex-direction:column;transition:all .5s;z-index:9;overflow:auto}._mainBlockItemRules_wrpm3_55 ._nameBlockItems_wrpm3_63{color:var(--lineColor);margin-top:10px;width:100%;display:flex;height:fit-content;justify-content:center;align-items:center}._contentBlockItem_wrpm3_73{height:100%;display:flex;flex-direction:column;overflow:auto;transition:height .3s,background .5s}._wrapperMargin_wrpm3_81{margin:auto 0;display:flex;flex-direction:column}._contentHeightOn_wrpm3_87{animation:_heightBlock_wrpm3_1 .3s}@keyframes _heightBlock_wrpm3_1{0%{height:0}to{height:100%}}._contentHeightOff_wrpm3_99{height:0;overflow:hidden;animation:none}._cardAdd_wrpm3_105{display:flex;align-items:center;text-align:center;margin:0 10px;width:100%;color:var(--lineColor)}._cardAdd_wrpm3_105:after,._cardAdd_wrpm3_105:before{content:"";flex:1;border-bottom:1px solid}._cardAdd_wrpm3_105:after{margin-left:.25em}._cardAdd_wrpm3_105:before{margin-right:.25em}._blockCardAdd_wrpm3_125{display:flex;padding:0 10px 6px;align-items:center;color:#fff;cursor:pointer}._blockCardAdd_wrpm3_125 *{color:#ffffffb3}._addClassOverflow_wrpm3_136{overflow:initial}._addClassHeight_wrpm3_140{min-height:300px}@media screen and (max-width: 835px){._mainBlockItemRules_wrpm3_55{overflow:initial}._contentBlockItem_wrpm3_73{min-height:300px}._contentHeightOff_wrpm3_99{min-height:0;transition:min-height .3s}._contentHeightOn_wrpm3_87{transition:min-height .3s}._border_wrpm3_1{border-left:initial;border-right:initial}}._drag_7xfhc_1{width:32px;height:22px;position:absolute;top:23px;left:12px;z-index:1;cursor:pointer}._root_7xfhc_11{position:relative}._menuRules_1qqcb_1{width:200px;display:flex;flex-direction:column;background:var(--backgroundColor);border-right:1px solid var(--lineColor);padding:10px;opacity:1;overflow-x:hidden;transition:width .5s,opacity .2s,padding .5s,background .2s,border-right .2s}._switchesRenderWrapper_1qqcb_13{overflow-x:hidden;overflow-y:auto;direction:rtl}._switchesRenderWrapper_1qqcb_13 span{direction:ltr}._menuOff_1qqcb_22{width:0;opacity:0;padding:0}._menuTitle_1qqcb_28{display:flex;align-items:center;text-align:center;color:var(--lineColor);white-space:nowrap;transition:color .2s}._menuTitle_1qqcb_28:after,._menuTitle_1qqcb_28:before{content:"";flex:1;border-bottom:1px solid}._marginAuto_1qqcb_42{margin-top:auto;margin-bottom:20px}._inputWidth_1qqcb_47{margin-top:0!important;margin-bottom:5px!important}._menuWrapper_1qqcb_52{display:flex;height:100%}._hamburgerWrapper_1qqcb_57{position:absolute;width:32px;height:26px;background:var(--backgroundColorHumburger);border-radius:0 5px 5px 0;display:flex;justify-content:center;padding-top:10px;left:221px;top:30px;border:1px solid var(--lineColor);cursor:pointer;transition:left .5s,border-radius .7s,width .7s,height .7s,background .2s,border .2s;z-index:10}._hamburgerOff_1qqcb_74{left:20px;padding-top:12px;border-radius:20px;width:40px;height:28px}._nothingFound_1qqcb_82{color:var(--lineColor);margin:16px;font-size:21px;transition:color .2s}._resetSearch_1qqcb_89{font-weight:700;color:var(--lineColor);cursor:pointer;margin:10px 0;transition:color .3s,font-size .3s}._resetSearch_1qqcb_89:hover{color:var(--lineColorHover);font-size:22px}._controlPanel_1qqcb_101{display:flex;align-items:center;width:200px}._controlPanel_1qqcb_101 button{width:33.3333333333%;min-width:auto;color:var(--lineColor);transition:color .2s}._controlPanel_1qqcb_101 ._controlPanelAppBar_1qqcb_112{background:none;box-shadow:none}._controlPanel_1qqcb_101 [class*=Mui-selected]{color:var(--lineColorActive)!important}._controlPanel_1qqcb_101 [class*=MuiTabs-indicator]{background-color:var(--lineColorActive)}._controlPanel_1qqcb_101 [class*=Mui-disabled]{color:#210025cc!important}._addClassMenu_1qqcb_126{position:absolute;z-index:12;top:0}._addClassBackground_1qqcb_132{background:var(--backgroundMobile)}._addClassPosition_1qqcb_136{position:sticky;top:0;left:0;z-index:2222}@media screen and (max-width: 1035px){._menuWrapper_1qqcb_52{position:absolute;z-index:12;top:0}._menuRules_1qqcb_1{background:var(--backgroundMobile)}}@media screen and (max-width: 835px){._menuRules_1qqcb_1{position:sticky;top:0;left:0;z-index:2222}}._menu_wrapper_hqnsm_1{outline:0;outline-offset:0;margin-top:12px;cursor:pointer}._hamburgerMenu_hqnsm_8,._hamburgerMenu_hqnsm_8:after,._hamburgerMenu_hqnsm_8:before{width:20px;height:2px}._hamburgerMenu_hqnsm_8{position:relative;transform:translateY(7px);background:var(--lineColorActive);transition:all 0ms .3s}._hamburgerMenu_hqnsm_8._animate_hqnsm_21{background:#dfbdec00}._hamburgerMenu_hqnsm_8:before{content:"";position:absolute;left:0;bottom:7px;background:var(--lineColorActive);transition:bottom .3s .3s cubic-bezier(.23,1,.32,1),transform .3s cubic-bezier(.23,1,.32,1)}._hamburgerMenu_hqnsm_8:after{content:"";position:absolute;left:0;top:7px;background:var(--lineColorActive);transition:top .3s .3s cubic-bezier(.23,1,.32,1),transform .3s cubic-bezier(.23,1,.32,1)}._hamburgerMenu_hqnsm_8._animate_hqnsm_21:after{top:0;transform:rotate(45deg);transition:top .3s cubic-bezier(.23,1,.32,1),transform .3s .3s cubic-bezier(.23,1,.32,1)}._hamburgerMenu_hqnsm_8._animate_hqnsm_21:before{bottom:0;transform:rotate(-45deg);transition:bottom .3s cubic-bezier(.23,1,.32,1),transform .3s .3s cubic-bezier(.23,1,.32,1)}._menu_conatiner_wrapper_hqnsm_55{display:none}:root.blue{--backgroundColor: rgba(48, 82, 129, .231372549);--lineColor: rgba(76, 170, 244, .4901960784);--lineColorHover: #ccceff;--lineColorActive: #4caaf4;--backgroundColorHumburger: rgba(67, 106, 147, .7215686275);--colorBlock: #02124b;--colorBlockHover: rgba(2, 18, 75, .5490196078);--colorInput: #02124b;--backgroundBlock: rgba(201, 231, 255, .6705882353);--backgroundGlobalColor: rgba(255, 255, 255, 0);--backgroundMobile: rgba(4, 28, 53, .831372549);--debugColor: #c6511b}:root.colored{--backgroundColor: rgba(48, 82, 129, .231372549);--lineColor: rgba(76, 170, 244, .4901960784);--lineColorHover: #ccceff;--lineColorActive: #4caaf4;--backgroundColorHumburger: rgba(67, 106, 147, .7215686275);--colorBlock: #02124b;--colorBlockHover: rgba(2, 18, 75, .5490196078);--colorInput: #02124b;--backgroundBlock: rgba(201, 231, 255, .6705882353);--backgroundGlobalColor: rgba(255, 255, 255, 0);--backgroundMobile: rgba(4, 28, 53, .831372549);--debugColor: #c6511b}:root.dark{--backgroundColor: rgba(31, 31, 31, .23);--lineColor: rgba(243, 243, 243, .4901960784);--lineColorHover: #a0a0a0;--lineColorActive: #dedede;--backgroundColorHumburger: rgba(62, 62, 62, .7215686275);--colorBlock: #080808;--colorBlockHover: rgba(8, 8, 8, .5490196078);--colorInput: #ddd;--backgroundBlock: rgba(193, 193, 193, .6705882353);--backgroundGlobalColor: rgba(28, 28, 28, .93);--backgroundMobile: rgba(4, 3, 3, .9215686275);--debugColor: #c6511b}:root.light{--backgroundColor: rgba(49, 49, 49, .231372549);--lineColor: rgba(0, 1, 37, .4901960784);--lineColorHover: #a0a0a0;--lineColorActive: #07002f;--backgroundColorHumburger: rgba(51, 53, 66, .6392156863);--colorBlock: #090929;--colorBlockHover: rgba(199, 198, 198, .5490196078);--colorInput: #090929;--backgroundBlock: #000000;--backgroundGlobalColor: rgba(255, 255, 255, .2509803922);--backgroundMobile: rgba(180, 178, 199, .7490196078);--debugColor: #c6511b} diff --git a/admin/assets/index-glyB1sbj.js b/admin/assets/index-Cd_NUyEa.js similarity index 77% rename from admin/assets/index-glyB1sbj.js rename to admin/assets/index-Cd_NUyEa.js index 86330c8bd..5d9072632 100644 --- a/admin/assets/index-glyB1sbj.js +++ b/admin/assets/index-Cd_NUyEa.js @@ -1,7 +1,7 @@ -import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n as B,p as G,q as us,t as V,v as vr,w as To,x as Pl,y as wr,z as $l,A as Ns,B as kl,C as Il,b as ai,D as Oo,E as ii,T as pn,F as Tl,G as Ml,H as Ll,g as Al,a as Bl,I as El,o as Ol,J as Nl,r as zl,K as li,_ as jl,L as K,M as _,N as Dl,O as k,Q as W,d as kt,R as zs,c as Qt,S as Ao,U as Bo,V as tn,W as ae,P as ve,X as Br,Y as Rr,Z as Ro,$ as Fl}from"./createSvgIcon-BQT-7-GS.js";import{aa as pR,a7 as dR,a8 as uR,a3 as fR,a9 as gR,a5 as mR,a6 as bR,ag as vR,a0 as hR,a2 as yR,ad as xR,ac as CR,ae as SR,a4 as wR,a1 as RR,ab as PR,af as $R}from"./createSvgIcon-BQT-7-GS.js";import{G as Wl,u as be,y as Ul,_ as ci,R as Er,a as pi,k as Je,c as No,i as Vn,b as Ke}from"./inheritsLoose--KnFDOw1.js";import{C as IR,E as TR,S as MR,T as LR,g as AR,d as BR}from"./inheritsLoose--KnFDOw1.js";import{i as d,a as di,R as ro}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{a as dn,u as le}from"./useTheme-DF6qfrtI.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";function Hl({styles:t,themeId:e,defaultTheme:o={}}){const r=dn(o),n=typeof t=="function"?t(e&&r[e]||r):t;return f.jsx(Wl,{styles:n})}const Vl=t=>{var r;const e={systemProps:{},otherProps:{}},o=((r=t==null?void 0:t.theme)==null?void 0:r.unstable_sxConfig)??xl;return Object.keys(t).forEach(n=>{o[n]?e.systemProps[n]=t[n]:e.otherProps[n]=t[n]}),e};function Pr(t){const{sx:e,...o}=t,{systemProps:r,otherProps:n}=Vl(o);let s;return Array.isArray(e)?s=[r,...e]:typeof e=="function"?s=(...a)=>{const i=e(...a);return yl(i)?{...r,...i}:r}:s={...r,...e},{...n,sx:s}}function Gl(t={}){const{themeId:e,defaultTheme:o,defaultClassName:r="MuiBox-root",generateClassName:n}=t,s=Cl("div",{shouldForwardProp:i=>i!=="theme"&&i!=="sx"&&i!=="as"})(Sl);return d.forwardRef(function(l,c){const p=dn(o),{className:u,component:m="div",...g}=Pr(l);return f.jsx(s,{as:m,ref:c,className:j(u,n?n(r):r),theme:e&&p[e]||p,...g})})}const fs=wl();function gs(t){const{theme:e,name:o,props:r}=t;return!e||!e.components||!e.components[o]||!e.components[o].defaultProps?r:ds(e.components[o].defaultProps,r)}function un({props:t,name:e,defaultTheme:o,themeId:r}){let n=dn(o);return r&&(n=n[r]||n),gs({theme:n,name:e,props:t})}function Kl(t,e,o,r,n){const[s,a]=d.useState(()=>n&&o?o(t).matches:r?r(t).matches:e);return be(()=>{if(!o)return;const i=o(t),l=()=>{a(i.matches)};return l(),i.addEventListener("change",l),()=>{i.removeEventListener("change",l)}},[t,o]),s}const ql={...di},ui=ql.useSyncExternalStore;function Xl(t,e,o,r,n){const s=d.useCallback(()=>e,[e]),a=d.useMemo(()=>{if(n&&o)return()=>o(t).matches;if(r!==null){const{matches:p}=r(t);return()=>p}return s},[s,t,r,n,o]),[i,l]=d.useMemo(()=>{if(o===null)return[s,()=>()=>{}];const p=o(t);return[()=>p.matches,u=>(p.addEventListener("change",u),()=>{p.removeEventListener("change",u)})]},[s,o,t]);return ui(l,i,a)}function fi(t={}){const{themeId:e}=t;return function(r,n={}){let s=Rl();s&&e&&(s=s[e]||s);const a=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:i=!1,matchMedia:l=a?window.matchMedia:null,ssrMatchMedia:c=null,noSsr:p=!1}=gs({name:"MuiUseMediaQuery",props:n,theme:s});let u=typeof r=="function"?r(s):r;return u=u.replace(/^@media( ?)/m,""),u.includes("print")&&console.warn(["MUI: You have provided a `print` query to the `useMediaQuery` hook.","Using the print media query to modify print styles can lead to unexpected results.","Consider using the `displayPrint` field in the `sx` prop instead.","More information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."].join(` -`)),(ui!==void 0?Xl:Kl)(u,i,l,c,p)}}fi();function Gn(...t){return t.reduce((e,o)=>o==null?e:function(...n){e.apply(this,n),o.apply(this,n)},()=>{})}function $r(t,e=166){let o;function r(...n){const s=()=>{t.apply(this,n)};clearTimeout(o),o=setTimeout(s,e)}return r.clear=()=>{clearTimeout(o)},r}function mS(t,e){return()=>null}function yo(t,e){var o,r,n;return d.isValidElement(t)&&e.indexOf(t.type.muiName??((n=(r=(o=t.type)==null?void 0:o._payload)==null?void 0:r.value)==null?void 0:n.muiName))!==-1}function te(t){return t&&t.ownerDocument||document}function me(t){return te(t).defaultView||window}function bS(t,e){return()=>null}function Kn(t,e){typeof t=="function"?t(e):t&&(t.current=e)}let js=0;function _l(t){const[e,o]=d.useState(t),r=t||e;return d.useEffect(()=>{e==null&&(js+=1,o(`mui-${js}`))},[e]),r}const Yl={...di},Ds=Yl.useId;function De(t){if(Ds!==void 0){const e=Ds();return t??e}return _l(t)}function vS(t,e,o,r,n){return null}function Te({controlled:t,default:e,name:o,state:r="value"}){const{current:n}=d.useRef(t!==void 0),[s,a]=d.useState(e),i=n?t:s,l=d.useCallback(c=>{n||a(c)},[]);return[i,l]}function ee(t){const e=d.useRef(t);return be(()=>{e.current=t}),d.useRef((...o)=>(0,e.current)(...o)).current}function qt(...t){const e=d.useRef(void 0),o=d.useCallback(r=>{const n=t.map(s=>{if(s==null)return null;if(typeof s=="function"){const a=s,i=a(r);return typeof i=="function"?i:()=>{a(null)}}return s.current=r,()=>{s.current=null}});return()=>{n.forEach(s=>s==null?void 0:s())}},t);return d.useMemo(()=>t.every(r=>r==null)?null:r=>{e.current&&(e.current(),e.current=void 0),r!=null&&(e.current=o(r))},t)}const Fs={};function gi(t,e){const o=d.useRef(Fs);return o.current===Fs&&(o.current=t(e)),o}const Zl=[];function Ql(t){d.useEffect(t,Zl)}class fn{static create(){return new fn}currentId=null;start(e,o){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,o()},e)}clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear}function no(){const t=gi(fn.create).current;return Ql(t.disposeEffect),t}function Ze(t){try{return t.matches(":focus-visible")}catch{}return!1}function mi(t=window){const e=t.document.documentElement.clientWidth;return t.innerWidth-e}const ms=t=>{const e=d.useRef({});return d.useEffect(()=>{e.current=t}),e.current};function bi(t){return d.Children.toArray(t).filter(e=>d.isValidElement(e))}const vi={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"};function Jl(t){return typeof t=="string"}function hi(t,e,o){return t===void 0||Jl(t)?e:{...e,ownerState:{...e.ownerState,...o}}}function Mo(t,e=[]){if(t===void 0)return{};const o={};return Object.keys(t).filter(r=>r.match(/^on[A-Z]/)&&typeof t[r]=="function"&&!e.includes(r)).forEach(r=>{o[r]=t[r]}),o}function Ws(t){if(t===void 0)return{};const e={};return Object.keys(t).filter(o=>!(o.match(/^on[A-Z]/)&&typeof t[o]=="function")).forEach(o=>{e[o]=t[o]}),e}function yi(t){const{getSlotProps:e,additionalProps:o,externalSlotProps:r,externalForwardedProps:n,className:s}=t;if(!e){const g=j(o==null?void 0:o.className,s,n==null?void 0:n.className,r==null?void 0:r.className),b={...o==null?void 0:o.style,...n==null?void 0:n.style,...r==null?void 0:r.style},v={...o,...n,...r};return g.length>0&&(v.className=g),Object.keys(b).length>0&&(v.style=b),{props:v,internalRef:void 0}}const a=Mo({...n,...r}),i=Ws(r),l=Ws(n),c=e(a),p=j(c==null?void 0:c.className,o==null?void 0:o.className,s,n==null?void 0:n.className,r==null?void 0:r.className),u={...c==null?void 0:c.style,...o==null?void 0:o.style,...n==null?void 0:n.style,...r==null?void 0:r.style},m={...c,...o,...l,...i};return p.length>0&&(m.className=p),Object.keys(u).length>0&&(m.style=u),{props:m,internalRef:c.ref}}function xi(t,e,o){return typeof t=="function"?t(e,o):t}function Ce(t){var u;const{elementType:e,externalSlotProps:o,ownerState:r,skipResolvingSlotProps:n=!1,...s}=t,a=n?{}:xi(o,r),{props:i,internalRef:l}=yi({...s,externalSlotProps:a}),c=qt(l,a==null?void 0:a.ref,(u=t.additionalProps)==null?void 0:u.ref);return hi(e,{...i,ref:c},r)}function io(t){var e;return parseInt(d.version,10)>=19?((e=t==null?void 0:t.props)==null?void 0:e.ref)||null:(t==null?void 0:t.ref)||null}const tc=us(),ec=fs("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${B(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),oc=t=>un({props:t,name:"MuiContainer",defaultTheme:tc}),rc=(t,e)=>{const o=l=>V(e,l),{classes:r,fixed:n,disableGutters:s,maxWidth:a}=t,i={root:["root",a&&`maxWidth${B(String(a))}`,n&&"fixed",s&&"disableGutters"]};return G(i,o,r)};function nc(t={}){const{createStyledComponent:e=ec,useThemeProps:o=oc,componentName:r="MuiContainer"}=t,n=e(({theme:a,ownerState:i})=>({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",...!i.disableGutters&&{paddingLeft:a.spacing(2),paddingRight:a.spacing(2),[a.breakpoints.up("sm")]:{paddingLeft:a.spacing(3),paddingRight:a.spacing(3)}}}),({theme:a,ownerState:i})=>i.fixed&&Object.keys(a.breakpoints.values).reduce((l,c)=>{const p=c,u=a.breakpoints.values[p];return u!==0&&(l[a.breakpoints.up(p)]={maxWidth:`${u}${a.breakpoints.unit}`}),l},{}),({theme:a,ownerState:i})=>({...i.maxWidth==="xs"&&{[a.breakpoints.up("xs")]:{maxWidth:Math.max(a.breakpoints.values.xs,444)}},...i.maxWidth&&i.maxWidth!=="xs"&&{[a.breakpoints.up(i.maxWidth)]:{maxWidth:`${a.breakpoints.values[i.maxWidth]}${a.breakpoints.unit}`}}}));return d.forwardRef(function(i,l){const c=o(i),{className:p,component:u="div",disableGutters:m=!1,fixed:g=!1,maxWidth:b="lg",classes:v,...h}=c,y={...c,component:u,disableGutters:m,fixed:g,maxWidth:b},S=rc(y,r);return f.jsx(n,{as:u,ownerState:y,className:j(S.root,p),ref:l,...h})})}const sc=(t,e)=>t.filter(o=>e.includes(o)),Yo=(t,e,o)=>{const r=t.keys[0];Array.isArray(e)?e.forEach((n,s)=>{o((a,i)=>{s<=t.keys.length-1&&(s===0?Object.assign(a,i):a[t.up(t.keys[s])]=i)},n)}):e&&typeof e=="object"?(Object.keys(e).length>t.keys.length?t.keys:sc(t.keys,Object.keys(e))).forEach(s=>{if(t.keys.includes(s)){const a=e[s];a!==void 0&&o((i,l)=>{r===s?Object.assign(i,l):i[t.up(s)]=l},a)}}):(typeof e=="number"||typeof e=="string")&&o((n,s)=>{Object.assign(n,s)},e)};function en(t){return`--Grid-${t}Spacing`}function gn(t){return`--Grid-parent-${t}Spacing`}const Us="--Grid-columns",Vo="--Grid-parent-columns",ac=({theme:t,ownerState:e})=>{const o={};return Yo(t.breakpoints,e.size,(r,n)=>{let s={};n==="grow"&&(s={flexBasis:0,flexGrow:1,maxWidth:"100%"}),n==="auto"&&(s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),typeof n=="number"&&(s={flexGrow:0,flexBasis:"auto",width:`calc(100% * ${n} / var(${Vo}) - (var(${Vo}) - ${n}) * (var(${gn("column")}) / var(${Vo})))`}),r(o,s)}),o},ic=({theme:t,ownerState:e})=>{const o={};return Yo(t.breakpoints,e.offset,(r,n)=>{let s={};n==="auto"&&(s={marginLeft:"auto"}),typeof n=="number"&&(s={marginLeft:n===0?"0px":`calc(100% * ${n} / var(${Vo}) + var(${gn("column")}) * ${n} / var(${Vo}))`}),r(o,s)}),o},lc=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={[Us]:12};return Yo(t.breakpoints,e.columns,(r,n)=>{const s=n??12;r(o,{[Us]:s,"> *":{[Vo]:s}})}),o},cc=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Yo(t.breakpoints,e.rowSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[en("row")]:s,"> *":{[gn("row")]:s}})}),o},pc=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Yo(t.breakpoints,e.columnSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[en("column")]:s,"> *":{[gn("column")]:s}})}),o},dc=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Yo(t.breakpoints,e.direction,(r,n)=>{r(o,{flexDirection:n})}),o},uc=({ownerState:t})=>({minWidth:0,boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",...t.wrap&&t.wrap!=="wrap"&&{flexWrap:t.wrap},gap:`var(${en("row")}) var(${en("column")})`}}),fc=t=>{const e=[];return Object.entries(t).forEach(([o,r])=>{r!==!1&&r!==void 0&&e.push(`grid-${o}-${String(r)}`)}),e},gc=(t,e="xs")=>{function o(r){return r===void 0?!1:typeof r=="string"&&!Number.isNaN(Number(r))||typeof r=="number"&&r>0}if(o(t))return[`spacing-${e}-${String(t)}`];if(typeof t=="object"&&!Array.isArray(t)){const r=[];return Object.entries(t).forEach(([n,s])=>{o(s)&&r.push(`spacing-${n}-${String(s)}`)}),r}return[]},mc=t=>t===void 0?[]:typeof t=="object"?Object.entries(t).map(([e,o])=>`direction-${e}-${o}`):[`direction-xs-${String(t)}`];function bc(t,e){t.item!==void 0&&delete t.item,t.zeroMinWidth!==void 0&&delete t.zeroMinWidth,e.keys.forEach(o=>{t[o]!==void 0&&delete t[o]})}const vc=us(),hc=fs("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>e.root});function yc(t){return un({props:t,name:"MuiGrid",defaultTheme:vc})}function xc(t={}){const{createStyledComponent:e=hc,useThemeProps:o=yc,useTheme:r=dn,componentName:n="MuiGrid"}=t,s=(c,p)=>{const{container:u,direction:m,spacing:g,wrap:b,size:v}=c,h={root:["root",u&&"container",b!=="wrap"&&`wrap-xs-${String(b)}`,...mc(m),...fc(v),...u?gc(g,p.breakpoints.keys[0]):[]]};return G(h,y=>V(n,y),{})};function a(c,p,u=()=>!0){const m={};return c===null||(Array.isArray(c)?c.forEach((g,b)=>{g!==null&&u(g)&&p.keys[b]&&(m[p.keys[b]]=g)}):typeof c=="object"?Object.keys(c).forEach(g=>{const b=c[g];b!=null&&u(b)&&(m[g]=b)}):m[p.keys[0]]=c),m}const i=e(lc,pc,cc,ac,dc,uc,ic),l=d.forwardRef(function(p,u){const m=r(),g=o(p),b=Pr(g);bc(b,m.breakpoints);const{className:v,children:h,columns:y=12,container:S=!1,component:C="div",direction:x="row",wrap:w="wrap",size:P={},offset:$={},spacing:I=0,rowSpacing:A=I,columnSpacing:T=I,unstable_level:z=0,...E}=b,R=a(P,m.breakpoints,U=>U!==!1),M=a($,m.breakpoints),O=p.columns??(z?void 0:y),L=p.spacing??(z?void 0:I),F=p.rowSpacing??p.spacing??(z?void 0:A),D=p.columnSpacing??p.spacing??(z?void 0:T),N={...b,level:z,columns:O,container:S,direction:x,wrap:w,spacing:L,rowSpacing:F,columnSpacing:D,size:R,offset:M},J=s(N,m);return f.jsx(i,{ref:u,as:C,ownerState:N,className:j(J.root,v),...E,children:d.Children.map(h,U=>{var wt;return d.isValidElement(U)&&yo(U,["Grid"])&&S&&U.props.container?d.cloneElement(U,{unstable_level:((wt=U.props)==null?void 0:wt.unstable_level)??z+1}):U})})});return l.muiName="Grid",l}const Cc=us(),Sc=fs("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root});function wc(t){return un({props:t,name:"MuiStack",defaultTheme:Cc})}function Rc(t,e){const o=d.Children.toArray(t).filter(Boolean);return o.reduce((r,n,s)=>(r.push(n),s({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[t],$c=({ownerState:t,theme:e})=>{let o={display:"flex",flexDirection:"column",...vr({theme:e},To({values:t.direction,breakpoints:e.breakpoints.values}),r=>({flexDirection:r}))};if(t.spacing){const r=Pl(e),n=Object.keys(e.breakpoints.values).reduce((l,c)=>((typeof t.spacing=="object"&&t.spacing[c]!=null||typeof t.direction=="object"&&t.direction[c]!=null)&&(l[c]=!0),l),{}),s=To({values:t.direction,base:n}),a=To({values:t.spacing,base:n});typeof s=="object"&&Object.keys(s).forEach((l,c,p)=>{if(!s[l]){const m=c>0?s[p[c-1]]:"column";s[l]=m}}),o=wr(o,vr({theme:e},a,(l,c)=>t.useFlexGap?{gap:Ns(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${Pc(c?s[c]:t.direction)}`]:Ns(r,l)}}))}return o=$l(e.breakpoints,o),o};function kc(t={}){const{createStyledComponent:e=Sc,useThemeProps:o=wc,componentName:r="MuiStack"}=t,n=()=>G({root:["root"]},l=>V(r,l),{}),s=e($c);return d.forwardRef(function(l,c){const p=o(l),u=Pr(p),{component:m="div",direction:g="column",spacing:b=0,divider:v,children:h,className:y,useFlexGap:S=!1,...C}=u,x={direction:g,spacing:b,useFlexGap:S},w=n();return f.jsx(s,{as:m,ownerState:x,ref:c,className:j(w.root,y),...C,children:v?Rc(h,v):h})})}function hS(t){const{defaultProps:e={},mixins:o={},overrides:r={},palette:n={},props:s={},styleOverrides:a={},...i}=t,l={...i,components:{}};Object.keys(e).forEach(v=>{const h=l.components[v]||{};h.defaultProps=e[v],l.components[v]=h}),Object.keys(s).forEach(v=>{const h=l.components[v]||{};h.defaultProps=s[v],l.components[v]=h}),Object.keys(a).forEach(v=>{const h=l.components[v]||{};h.styleOverrides=a[v],l.components[v]=h}),Object.keys(r).forEach(v=>{const h=l.components[v]||{};h.styleOverrides=r[v],l.components[v]=h}),l.spacing=kl(t.spacing);const c=Il(t.breakpoints||{}),p=l.spacing;l.mixins={gutters:(v={})=>({paddingLeft:p(2),paddingRight:p(2),...v,[c.up("sm")]:{paddingLeft:p(3),paddingRight:p(3),...v[c.up("sm")]}}),...o};const{type:u,mode:m,...g}=n,b=m||u||"light";return l.palette={text:{hint:b==="dark"?"rgba(255, 255, 255, 0.5)":"rgba(0, 0, 0, 0.38)"},mode:b,type:b,...g},l}function yS(t,...e){return ai(wr({unstable_strictMode:!0},t),...e)}let Hs=!1;function xS(t){return Hs||(console.warn(["MUI: createStyles from @mui/material/styles is deprecated.","Please use @mui/styles/createStyles"].join(` -`)),Hs=!0),t}function Vs(t){return String(parseFloat(t)).length===String(t).length}function Ci(t){return String(t).match(/[\d.\-+]*\s*(.*)/)[1]||""}function mo(t){return parseFloat(t)}function Ic(t){return(e,o)=>{const r=Ci(e);if(r===o)return e;let n=mo(e);r!=="px"&&(r==="em"||r==="rem")&&(n=mo(e)*mo(t));let s=n;if(o!=="px")if(o==="em")s=n/mo(t);else if(o==="rem")s=n/mo(t);else return e;return parseFloat(s.toFixed(5))+o}}function Tc({size:t,grid:e}){const o=t-t%e,r=o+e;return t-o{let c=e+i*l;s!==null&&(c=s(c)),a[`@media (min-width:${l}px)`]={[t]:`${Math.round(c*1e4)/1e4}${r}`}}),a}function CS(t,e={}){const{breakpoints:o=["sm","md","lg"],disableAlign:r=!1,factor:n=2,variants:s=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline"]}=e,a={...t};a.typography={...a.typography};const i=a.typography,l=Ic(i.htmlFontSize),c=o.map(p=>a.breakpoints.values[p]);return s.forEach(p=>{const u=i[p];if(!u)return;const m=parseFloat(l(u.fontSize,"rem"));if(m<=1)return;const g=m,b=1+(g-1)/n;let{lineHeight:v}=u;if(!Vs(v)&&!r)throw new Error(Oo(6));Vs(v)||(v=parseFloat(l(v,"rem"))/parseFloat(m));let h=null;r||(h=y=>Tc({size:y,grid:Mc({pixels:4,lineHeight:v,htmlFontSize:i.htmlFontSize})})),i[p]={...u,...Lc({cssProperty:"fontSize",min:b,max:g,unit:"rem",breakpoints:c,transform:h})}}),a}function SS({props:t,name:e}){return un({props:t,name:e,defaultTheme:ii,themeId:pn})}function wS(){throw new Error(Oo(14))}function RS(){throw new Error(Oo(15))}function PS(){throw new Error(Oo(16))}let Gs=!1;function $S(...t){return Gs||(console.warn(["MUI: The `experimental_extendTheme` has been stabilized.","","You should use `import { extendTheme } from '@mui/material/styles'`"].join(` -`)),Gs=!0),Tl(...t)}function kS(){throw new Error(Oo(19))}const Ac={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},Bc={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea"},Ec={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},Oc={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"},Nc={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5"},zc={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17"},jc={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00"},Dc={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"},Fc={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00"},Wc={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037"},Uc={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"},IS=Object.freeze(Object.defineProperty({__proto__:null,amber:Dc,blue:Ml,blueGrey:Uc,brown:Wc,common:Ll,cyan:Oc,deepOrange:Fc,deepPurple:Bc,green:Al,grey:Bl,indigo:Ec,lightBlue:El,lightGreen:zc,lime:jc,orange:Ol,pink:Ac,purple:Nl,red:zl,teal:Nc,yellow:Ul},Symbol.toStringTag,{value:"Module"}));function Hc(t){return f.jsx(Hl,{...t,defaultTheme:ii,themeId:pn})}function bs(t){return function(o){return f.jsx(Hc,{styles:typeof t=="function"?r=>t({theme:r,...o}):t})}}function Vc(){return Pr}function Go(t,e){if(!t)return e;if(typeof t=="function"||typeof e=="function")return n=>{const s=typeof e=="function"?e(n):e,a=typeof t=="function"?t({...n,...s}):t,i=j(n==null?void 0:n.className,s==null?void 0:s.className,a==null?void 0:a.className);return{...s,...a,...!!i&&{className:i},...(s==null?void 0:s.style)&&(a==null?void 0:a.style)&&{style:{...s.style,...a.style}},...(s==null?void 0:s.sx)&&(a==null?void 0:a.sx)&&{sx:[...Array.isArray(s.sx)?s.sx:[s.sx],...Array.isArray(a.sx)?a.sx:[a.sx]]}}};const o=e,r=j(o==null?void 0:o.className,t==null?void 0:t.className);return{...e,...t,...!!r&&{className:r},...(o==null?void 0:o.style)&&(t==null?void 0:t.style)&&{style:{...o.style,...t.style}},...(o==null?void 0:o.sx)&&(t==null?void 0:t.sx)&&{sx:[...Array.isArray(o.sx)?o.sx:[o.sx],...Array.isArray(t.sx)?t.sx:[t.sx]]}}}const TS={configure:t=>{li.configure(t)}},Ks={disabled:!1},on=ro.createContext(null);var Gc=function(e){return e.scrollTop},cr="unmounted",So="exited",wo="entering",Fo="entered",qn="exiting",Le=function(t){ci(e,t);function e(r,n){var s;s=t.call(this,r,n)||this;var a=n,i=a&&!a.isMounting?r.enter:r.appear,l;return s.appearStatus=null,r.in?i?(l=So,s.appearStatus=wo):l=Fo:r.unmountOnExit||r.mountOnEnter?l=cr:l=So,s.state={status:l},s.nextCallback=null,s}e.getDerivedStateFromProps=function(n,s){var a=n.in;return a&&s.status===cr?{status:So}:null};var o=e.prototype;return o.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},o.componentDidUpdate=function(n){var s=null;if(n!==this.props){var a=this.state.status;this.props.in?a!==wo&&a!==Fo&&(s=wo):(a===wo||a===Fo)&&(s=qn)}this.updateStatus(!1,s)},o.componentWillUnmount=function(){this.cancelNextCallback()},o.getTimeouts=function(){var n=this.props.timeout,s,a,i;return s=a=i=n,n!=null&&typeof n!="number"&&(s=n.exit,a=n.enter,i=n.appear!==void 0?n.appear:a),{exit:s,enter:a,appear:i}},o.updateStatus=function(n,s){if(n===void 0&&(n=!1),s!==null)if(this.cancelNextCallback(),s===wo){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:Er.findDOMNode(this);a&&Gc(a)}this.performEnter(n)}else this.performExit();else this.props.unmountOnExit&&this.state.status===So&&this.setState({status:cr})},o.performEnter=function(n){var s=this,a=this.props.enter,i=this.context?this.context.isMounting:n,l=this.props.nodeRef?[i]:[Er.findDOMNode(this),i],c=l[0],p=l[1],u=this.getTimeouts(),m=i?u.appear:u.enter;if(!n&&!a||Ks.disabled){this.safeSetState({status:Fo},function(){s.props.onEntered(c)});return}this.props.onEnter(c,p),this.safeSetState({status:wo},function(){s.props.onEntering(c,p),s.onTransitionEnd(m,function(){s.safeSetState({status:Fo},function(){s.props.onEntered(c,p)})})})},o.performExit=function(){var n=this,s=this.props.exit,a=this.getTimeouts(),i=this.props.nodeRef?void 0:Er.findDOMNode(this);if(!s||Ks.disabled){this.safeSetState({status:So},function(){n.props.onExited(i)});return}this.props.onExit(i),this.safeSetState({status:qn},function(){n.props.onExiting(i),n.onTransitionEnd(a.exit,function(){n.safeSetState({status:So},function(){n.props.onExited(i)})})})},o.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},o.safeSetState=function(n,s){s=this.setNextCallback(s),this.setState(n,s)},o.setNextCallback=function(n){var s=this,a=!0;return this.nextCallback=function(i){a&&(a=!1,s.nextCallback=null,n(i))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},o.onTransitionEnd=function(n,s){this.setNextCallback(s);var a=this.props.nodeRef?this.props.nodeRef.current:Er.findDOMNode(this),i=n==null&&!this.props.addEndListener;if(!a||i){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],c=l[0],p=l[1];this.props.addEndListener(c,p)}n!=null&&setTimeout(this.nextCallback,n)},o.render=function(){var n=this.state.status;if(n===cr)return null;var s=this.props,a=s.children;s.in,s.mountOnEnter,s.unmountOnExit,s.appear,s.enter,s.exit,s.timeout,s.addEndListener,s.onEnter,s.onEntering,s.onEntered,s.onExit,s.onExiting,s.onExited,s.nodeRef;var i=pi(s,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return ro.createElement(on.Provider,{value:null},typeof a=="function"?a(n,i):ro.cloneElement(ro.Children.only(a),i))},e}(ro.Component);Le.contextType=on;Le.propTypes={};function jo(){}Le.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:jo,onEntering:jo,onEntered:jo,onExit:jo,onExiting:jo,onExited:jo};Le.UNMOUNTED=cr;Le.EXITED=So;Le.ENTERING=wo;Le.ENTERED=Fo;Le.EXITING=qn;function Kc(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function vs(t,e){var o=function(s){return e&&d.isValidElement(s)?e(s):s},r=Object.create(null);return t&&d.Children.map(t,function(n){return n}).forEach(function(n){r[n.key]=o(n)}),r}function qc(t,e){t=t||{},e=e||{};function o(p){return p in e?e[p]:t[p]}var r=Object.create(null),n=[];for(var s in t)s in e?n.length&&(r[s]=n,n=[]):n.push(s);var a,i={};for(var l in e){if(r[l])for(a=0;at.scrollTop;function Ge(t,e){const{timeout:o,easing:r,style:n={}}=t;return{duration:n.transitionDuration??(typeof o=="number"?o:o[e.mode]||0),easing:n.transitionTimingFunction??(typeof r=="object"?r[e.mode]:r),delay:n.transitionDelay}}function Qc(t){return V("MuiCollapse",t)}const MS=K("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]),Jc=t=>{const{orientation:e,classes:o}=t,r={root:["root",`${e}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${e}`],wrapperInner:["wrapperInner",`${e}`]};return G(r,Qc,o)},tp=k("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.state==="entered"&&e.entered,o.state==="exited"&&!o.in&&o.collapsedSize==="0px"&&e.hidden]}})(W(({theme:t})=>({height:0,overflow:"hidden",transition:t.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:t.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:e})=>e.state==="exited"&&!e.in&&e.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),ep=k("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(t,e)=>e.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),op=k("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(t,e)=>e.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),hr=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCollapse"}),{addEndListener:n,children:s,className:a,collapsedSize:i="0px",component:l,easing:c,in:p,onEnter:u,onEntered:m,onEntering:g,onExit:b,onExited:v,onExiting:h,orientation:y="vertical",style:S,timeout:C=Dl.standard,TransitionComponent:x=Le,...w}=r,P={...r,orientation:y,collapsedSize:i},$=Jc(P),I=le(),A=no(),T=d.useRef(null),z=d.useRef(),E=typeof i=="number"?`${i}px`:i,R=y==="horizontal",M=R?"width":"height",O=d.useRef(null),L=qt(o,O),F=rt=>Y=>{if(rt){const at=O.current;Y===void 0?rt(at):rt(at,Y)}},D=()=>T.current?T.current[R?"clientWidth":"clientHeight"]:0,N=F((rt,Y)=>{T.current&&R&&(T.current.style.position="absolute"),rt.style[M]=E,u&&u(rt,Y)}),J=F((rt,Y)=>{const at=D();T.current&&R&&(T.current.style.position="");const{duration:ct,easing:st}=Ge({style:S,timeout:C,easing:c},{mode:"enter"});if(C==="auto"){const ft=I.transitions.getAutoHeightDuration(at);rt.style.transitionDuration=`${ft}ms`,z.current=ft}else rt.style.transitionDuration=typeof ct=="string"?ct:`${ct}ms`;rt.style[M]=`${at}px`,rt.style.transitionTimingFunction=st,g&&g(rt,Y)}),U=F((rt,Y)=>{rt.style[M]="auto",m&&m(rt,Y)}),wt=F(rt=>{rt.style[M]=`${D()}px`,b&&b(rt)}),vt=F(v),mt=F(rt=>{const Y=D(),{duration:at,easing:ct}=Ge({style:S,timeout:C,easing:c},{mode:"exit"});if(C==="auto"){const st=I.transitions.getAutoHeightDuration(Y);rt.style.transitionDuration=`${st}ms`,z.current=st}else rt.style.transitionDuration=typeof at=="string"?at:`${at}ms`;rt.style[M]=E,rt.style.transitionTimingFunction=ct,h&&h(rt)}),et=rt=>{C==="auto"&&A.start(z.current||0,rt),n&&n(O.current,rt)};return f.jsx(x,{in:p,onEnter:N,onEntered:U,onEntering:J,onExit:wt,onExited:vt,onExiting:mt,addEndListener:et,nodeRef:O,timeout:C==="auto"?null:C,...w,children:(rt,{ownerState:Y,...at})=>f.jsx(tp,{as:l,className:j($.root,a,{entered:$.entered,exited:!p&&E==="0px"&&$.hidden}[rt]),style:{[R?"minWidth":"minHeight"]:E,...S},ref:L,ownerState:{...P,state:rt},...at,children:f.jsx(ep,{ownerState:{...P,state:rt},className:$.wrapper,ref:T,children:f.jsx(op,{ownerState:{...P,state:rt},className:$.wrapperInner,children:s})})})})});hr&&(hr.muiSupportAuto=!0);function rp(t){return V("MuiPaper",t)}const LS=K("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]),np=t=>{const{square:e,elevation:o,variant:r,classes:n}=t,s={root:["root",r,!e&&"rounded",r==="elevation"&&`elevation${o}`]};return G(s,rp,n)},sp=k("div",{name:"MuiPaper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],!o.square&&e.rounded,o.variant==="elevation"&&e[`elevation${o.elevation}`]]}})(W(({theme:t})=>({backgroundColor:(t.vars||t).palette.background.paper,color:(t.vars||t).palette.text.primary,transition:t.transitions.create("box-shadow"),variants:[{props:({ownerState:e})=>!e.square,style:{borderRadius:t.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(t.vars||t).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),Ue=d.forwardRef(function(e,o){var g;const r=_({props:e,name:"MuiPaper"}),n=le(),{className:s,component:a="div",elevation:i=1,square:l=!1,variant:c="elevation",...p}=r,u={...r,component:a,elevation:i,square:l,variant:c},m=np(u);return f.jsx(sp,{as:a,ownerState:u,className:j(m.root,s),ref:o,...p,style:{...c==="elevation"&&{"--Paper-shadow":(n.vars||n).shadows[i],...n.vars&&{"--Paper-overlay":(g=n.vars.overlays)==null?void 0:g[i]},...!n.vars&&n.palette.mode==="dark"&&{"--Paper-overlay":`linear-gradient(${kt("#fff",zs(i))}, ${kt("#fff",zs(i))})`}},...p.style}})}),Si=d.createContext({});function Q(t,e){const{className:o,elementType:r,ownerState:n,externalForwardedProps:s,internalForwardedProps:a,shouldForwardComponentProp:i=!1,...l}=e,{component:c,slots:p={[t]:void 0},slotProps:u={[t]:void 0},...m}=s,g=p[t]||r,b=xi(u[t],n),{props:{component:v,...h},internalRef:y}=yi({className:o,...l,externalForwardedProps:t==="root"?m:void 0,externalSlotProps:b}),S=qt(y,b==null?void 0:b.ref,e.ref),C=t==="root"?v||c:v,x=hi(g,{...t==="root"&&!c&&!p[t]&&a,...t!=="root"&&!p[t]&&a,...h,...C&&!i&&{as:C},...C&&i&&{component:C},ref:S},n);return[g,x]}function ap(t){return V("MuiAccordion",t)}const Or=K("MuiAccordion",["root","heading","rounded","expanded","disabled","gutters","region"]),ip=t=>{const{classes:e,square:o,expanded:r,disabled:n,disableGutters:s}=t;return G({root:["root",!o&&"rounded",r&&"expanded",n&&"disabled",!s&&"gutters"],heading:["heading"],region:["region"]},ap,e)},lp=k(Ue,{name:"MuiAccordion",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Or.region}`]:e.region},e.root,!o.square&&e.rounded,!o.disableGutters&&e.gutters]}})(W(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{position:"relative",transition:t.transitions.create(["margin"],e),overflowAnchor:"none","&::before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:(t.vars||t).palette.divider,transition:t.transitions.create(["opacity","background-color"],e)},"&:first-of-type":{"&::before":{display:"none"}},[`&.${Or.expanded}`]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:"none"}}},[`&.${Or.disabled}`]:{backgroundColor:(t.vars||t).palette.action.disabledBackground}}}),W(({theme:t})=>({variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(t.vars||t).shape.borderRadius,borderTopRightRadius:(t.vars||t).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(t.vars||t).shape.borderRadius,borderBottomRightRadius:(t.vars||t).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{[`&.${Or.expanded}`]:{margin:"16px 0"}}}]}))),cp=k("h3",{name:"MuiAccordion",slot:"Heading",overridesResolver:(t,e)=>e.heading})({all:"unset"}),AS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordion"}),{children:n,className:s,defaultExpanded:a=!1,disabled:i=!1,disableGutters:l=!1,expanded:c,onChange:p,square:u=!1,slots:m={},slotProps:g={},TransitionComponent:b,TransitionProps:v,...h}=r,[y,S]=Te({controlled:c,default:a,name:"Accordion",state:"expanded"}),C=d.useCallback(D=>{S(!y),p&&p(D,!y)},[y,p,S]),[x,...w]=d.Children.toArray(n),P=d.useMemo(()=>({expanded:y,disabled:i,disableGutters:l,toggle:C}),[y,i,l,C]),$={...r,square:u,disabled:i,disableGutters:l,expanded:y},I=ip($),A={transition:b,...m},T={transition:v,...g},z={slots:A,slotProps:T},[E,R]=Q("root",{elementType:lp,externalForwardedProps:{...z,...h},className:j(I.root,s),shouldForwardComponentProp:!0,ownerState:$,ref:o,additionalProps:{square:u}}),[M,O]=Q("heading",{elementType:cp,externalForwardedProps:z,className:I.heading,ownerState:$}),[L,F]=Q("transition",{elementType:hr,externalForwardedProps:z,ownerState:$});return f.jsxs(E,{...R,children:[f.jsx(M,{...O,children:f.jsx(Si.Provider,{value:P,children:x})}),f.jsx(L,{in:y,timeout:"auto",...F,children:f.jsx("div",{"aria-labelledby":x.props.id,id:x.props["aria-controls"],role:"region",className:I.region,children:w})})]})});function pp(t){return V("MuiAccordionActions",t)}const BS=K("MuiAccordionActions",["root","spacing"]),dp=t=>{const{classes:e,disableSpacing:o}=t;return G({root:["root",!o&&"spacing"]},pp,e)},up=k("div",{name:"MuiAccordionActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",variants:[{props:t=>!t.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),ES=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordionActions"}),{className:n,disableSpacing:s=!1,...a}=r,i={...r,disableSpacing:s},l=dp(i);return f.jsx(up,{className:j(l.root,n),ref:o,ownerState:i,...a})});function fp(t){return V("MuiAccordionDetails",t)}const OS=K("MuiAccordionDetails",["root"]),gp=t=>{const{classes:e}=t;return G({root:["root"]},fp,e)},mp=k("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({padding:t.spacing(1,2,2)}))),NS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordionDetails"}),{className:n,...s}=r,a=r,i=gp(a);return f.jsx(mp,{className:j(i.root,n),ref:o,ownerState:a,...s})});class rn{static create(){return new rn}static use(){const e=gi(rn.create).current,[o,r]=d.useState(!1);return e.shouldMount=o,e.setShouldMount=r,d.useEffect(e.mountEffect,[o]),e}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=vp(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>{var o;return(o=this.ref.current)==null?void 0:o.start(...e)})}stop(...e){this.mount().then(()=>{var o;return(o=this.ref.current)==null?void 0:o.stop(...e)})}pulsate(...e){this.mount().then(()=>{var o;return(o=this.ref.current)==null?void 0:o.pulsate(...e)})}}function bp(){return rn.use()}function vp(){let t,e;const o=new Promise((r,n)=>{t=r,e=n});return o.resolve=t,o.reject=e,o}function hp(t){const{className:e,classes:o,pulsate:r=!1,rippleX:n,rippleY:s,rippleSize:a,in:i,onExited:l,timeout:c}=t,[p,u]=d.useState(!1),m=j(e,o.ripple,o.rippleVisible,r&&o.ripplePulsate),g={width:a,height:a,top:-(a/2)+s,left:-(a/2)+n},b=j(o.child,p&&o.childLeaving,r&&o.childPulsate);return!i&&!p&&u(!0),d.useEffect(()=>{if(!i&&l!=null){const v=setTimeout(l,c);return()=>{clearTimeout(v)}}},[l,i,c]),f.jsx("span",{className:m,style:g,children:f.jsx("span",{className:b})})}function zS(t){return V("MuiTouchRipple",t)}const Oe=K("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),Xn=550,yp=80,xp=Je` +import{j as f,e as hl,f as yl,s as xl,h as Cl,k as j,l as Sl,m as ps,u as wl,n as B,p as G,q as ds,t as V,v as br,w as Io,x as Rl,y as Sr,z as Pl,A as Os,B as $l,C as kl,b as si,D as Eo,E as ai,T as pn,F as Il,G as Tl,H as Ml,g as Ll,a as Al,I as Bl,o as El,J as Ol,r as Nl,K as ii,_ as zl,L as K,M as _,N as jl,O as k,Q as W,d as kt,R as Ns,c as Qt,S as Lo,U as Ao,V as tn,W as ae,P as ve,X as Ar,Y as wr,Z as wo,$ as Dl}from"./createSvgIcon-DMsh-YeH.js";import{aa as pR,a7 as dR,a8 as uR,a3 as fR,a9 as gR,a5 as mR,a6 as bR,ag as vR,a0 as hR,a2 as yR,ad as xR,ac as CR,ae as SR,a4 as wR,a1 as RR,ab as PR,af as $R}from"./createSvgIcon-DMsh-YeH.js";import{G as Fl,u as be,y as Wl,_ as li,R as Br,a as ci,k as Je,c as Oo,i as Hn,b as Ke}from"./inheritsLoose-DgfqekV3.js";import{C as IR,E as TR,S as MR,T as LR,g as AR,d as BR}from"./inheritsLoose-DgfqekV3.js";import{i as d,a as pi,R as ro}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{a as dn,u as le}from"./useTheme-N2j2HWMZ.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";function Ul({styles:t,themeId:e,defaultTheme:o={}}){const r=dn(o),n=typeof t=="function"?t(e&&r[e]||r):t;return f.jsx(Fl,{styles:n})}const Hl=t=>{var r;const e={systemProps:{},otherProps:{}},o=((r=t==null?void 0:t.theme)==null?void 0:r.unstable_sxConfig)??yl;return Object.keys(t).forEach(n=>{o[n]?e.systemProps[n]=t[n]:e.otherProps[n]=t[n]}),e};function Rr(t){const{sx:e,...o}=t,{systemProps:r,otherProps:n}=Hl(o);let s;return Array.isArray(e)?s=[r,...e]:typeof e=="function"?s=(...a)=>{const i=e(...a);return hl(i)?{...r,...i}:r}:s={...r,...e},{...n,sx:s}}function Vl(t={}){const{themeId:e,defaultTheme:o,defaultClassName:r="MuiBox-root",generateClassName:n}=t,s=xl("div",{shouldForwardProp:i=>i!=="theme"&&i!=="sx"&&i!=="as"})(Cl);return d.forwardRef(function(l,c){const p=dn(o),{className:u,component:m="div",...g}=Rr(l);return f.jsx(s,{as:m,ref:c,className:j(u,n?n(r):r),theme:e&&p[e]||p,...g})})}const us=Sl();function fs(t){const{theme:e,name:o,props:r}=t;return!e||!e.components||!e.components[o]||!e.components[o].defaultProps?r:ps(e.components[o].defaultProps,r)}function un({props:t,name:e,defaultTheme:o,themeId:r}){let n=dn(o);return r&&(n=n[r]||n),fs({theme:n,name:e,props:t})}function Gl(t,e,o,r,n){const[s,a]=d.useState(()=>n&&o?o(t).matches:r?r(t).matches:e);return be(()=>{if(!o)return;const i=o(t),l=()=>{a(i.matches)};return l(),i.addEventListener("change",l),()=>{i.removeEventListener("change",l)}},[t,o]),s}const Kl={...pi},di=Kl.useSyncExternalStore;function ql(t,e,o,r,n){const s=d.useCallback(()=>e,[e]),a=d.useMemo(()=>{if(n&&o)return()=>o(t).matches;if(r!==null){const{matches:p}=r(t);return()=>p}return s},[s,t,r,n,o]),[i,l]=d.useMemo(()=>{if(o===null)return[s,()=>()=>{}];const p=o(t);return[()=>p.matches,u=>(p.addEventListener("change",u),()=>{p.removeEventListener("change",u)})]},[s,o,t]);return di(l,i,a)}function ui(t={}){const{themeId:e}=t;return function(r,n={}){let s=wl();s&&e&&(s=s[e]||s);const a=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:i=!1,matchMedia:l=a?window.matchMedia:null,ssrMatchMedia:c=null,noSsr:p=!1}=fs({name:"MuiUseMediaQuery",props:n,theme:s});let u=typeof r=="function"?r(s):r;return u=u.replace(/^@media( ?)/m,""),u.includes("print")&&console.warn(["MUI: You have provided a `print` query to the `useMediaQuery` hook.","Using the print media query to modify print styles can lead to unexpected results.","Consider using the `displayPrint` field in the `sx` prop instead.","More information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."].join(` +`)),(di!==void 0?ql:Gl)(u,i,l,c,p)}}ui();function Vn(...t){return t.reduce((e,o)=>o==null?e:function(...n){e.apply(this,n),o.apply(this,n)},()=>{})}function Pr(t,e=166){let o;function r(...n){const s=()=>{t.apply(this,n)};clearTimeout(o),o=setTimeout(s,e)}return r.clear=()=>{clearTimeout(o)},r}function mS(t,e){return()=>null}function ho(t,e){var o,r,n;return d.isValidElement(t)&&e.indexOf(t.type.muiName??((n=(r=(o=t.type)==null?void 0:o._payload)==null?void 0:r.value)==null?void 0:n.muiName))!==-1}function te(t){return t&&t.ownerDocument||document}function me(t){return te(t).defaultView||window}function bS(t,e){return()=>null}function Gn(t,e){typeof t=="function"?t(e):t&&(t.current=e)}let zs=0;function Xl(t){const[e,o]=d.useState(t),r=t||e;return d.useEffect(()=>{e==null&&(zs+=1,o(`mui-${zs}`))},[e]),r}const _l={...pi},js=_l.useId;function De(t){if(js!==void 0){const e=js();return t??e}return Xl(t)}function vS(t,e,o,r,n){return null}function Te({controlled:t,default:e,name:o,state:r="value"}){const{current:n}=d.useRef(t!==void 0),[s,a]=d.useState(e),i=n?t:s,l=d.useCallback(c=>{n||a(c)},[]);return[i,l]}function ee(t){const e=d.useRef(t);return be(()=>{e.current=t}),d.useRef((...o)=>(0,e.current)(...o)).current}function qt(...t){const e=d.useRef(void 0),o=d.useCallback(r=>{const n=t.map(s=>{if(s==null)return null;if(typeof s=="function"){const a=s,i=a(r);return typeof i=="function"?i:()=>{a(null)}}return s.current=r,()=>{s.current=null}});return()=>{n.forEach(s=>s==null?void 0:s())}},t);return d.useMemo(()=>t.every(r=>r==null)?null:r=>{e.current&&(e.current(),e.current=void 0),r!=null&&(e.current=o(r))},t)}const Ds={};function fi(t,e){const o=d.useRef(Ds);return o.current===Ds&&(o.current=t(e)),o}const Yl=[];function Zl(t){d.useEffect(t,Yl)}class fn{static create(){return new fn}currentId=null;start(e,o){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,o()},e)}clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear}function no(){const t=fi(fn.create).current;return Zl(t.disposeEffect),t}function Ze(t){try{return t.matches(":focus-visible")}catch{}return!1}function gi(t=window){const e=t.document.documentElement.clientWidth;return t.innerWidth-e}const gs=t=>{const e=d.useRef({});return d.useEffect(()=>{e.current=t}),e.current};function mi(t){return d.Children.toArray(t).filter(e=>d.isValidElement(e))}const bi={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"};function Ql(t){return typeof t=="string"}function vi(t,e,o){return t===void 0||Ql(t)?e:{...e,ownerState:{...e.ownerState,...o}}}function To(t,e=[]){if(t===void 0)return{};const o={};return Object.keys(t).filter(r=>r.match(/^on[A-Z]/)&&typeof t[r]=="function"&&!e.includes(r)).forEach(r=>{o[r]=t[r]}),o}function Fs(t){if(t===void 0)return{};const e={};return Object.keys(t).filter(o=>!(o.match(/^on[A-Z]/)&&typeof t[o]=="function")).forEach(o=>{e[o]=t[o]}),e}function hi(t){const{getSlotProps:e,additionalProps:o,externalSlotProps:r,externalForwardedProps:n,className:s}=t;if(!e){const g=j(o==null?void 0:o.className,s,n==null?void 0:n.className,r==null?void 0:r.className),b={...o==null?void 0:o.style,...n==null?void 0:n.style,...r==null?void 0:r.style},v={...o,...n,...r};return g.length>0&&(v.className=g),Object.keys(b).length>0&&(v.style=b),{props:v,internalRef:void 0}}const a=To({...n,...r}),i=Fs(r),l=Fs(n),c=e(a),p=j(c==null?void 0:c.className,o==null?void 0:o.className,s,n==null?void 0:n.className,r==null?void 0:r.className),u={...c==null?void 0:c.style,...o==null?void 0:o.style,...n==null?void 0:n.style,...r==null?void 0:r.style},m={...c,...o,...l,...i};return p.length>0&&(m.className=p),Object.keys(u).length>0&&(m.style=u),{props:m,internalRef:c.ref}}function yi(t,e,o){return typeof t=="function"?t(e,o):t}function Ce(t){var u;const{elementType:e,externalSlotProps:o,ownerState:r,skipResolvingSlotProps:n=!1,...s}=t,a=n?{}:yi(o,r),{props:i,internalRef:l}=hi({...s,externalSlotProps:a}),c=qt(l,a==null?void 0:a.ref,(u=t.additionalProps)==null?void 0:u.ref);return vi(e,{...i,ref:c},r)}function io(t){var e;return parseInt(d.version,10)>=19?((e=t==null?void 0:t.props)==null?void 0:e.ref)||null:(t==null?void 0:t.ref)||null}const Jl=ds(),tc=us("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${B(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),ec=t=>un({props:t,name:"MuiContainer",defaultTheme:Jl}),oc=(t,e)=>{const o=l=>V(e,l),{classes:r,fixed:n,disableGutters:s,maxWidth:a}=t,i={root:["root",a&&`maxWidth${B(String(a))}`,n&&"fixed",s&&"disableGutters"]};return G(i,o,r)};function rc(t={}){const{createStyledComponent:e=tc,useThemeProps:o=ec,componentName:r="MuiContainer"}=t,n=e(({theme:a,ownerState:i})=>({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",...!i.disableGutters&&{paddingLeft:a.spacing(2),paddingRight:a.spacing(2),[a.breakpoints.up("sm")]:{paddingLeft:a.spacing(3),paddingRight:a.spacing(3)}}}),({theme:a,ownerState:i})=>i.fixed&&Object.keys(a.breakpoints.values).reduce((l,c)=>{const p=c,u=a.breakpoints.values[p];return u!==0&&(l[a.breakpoints.up(p)]={maxWidth:`${u}${a.breakpoints.unit}`}),l},{}),({theme:a,ownerState:i})=>({...i.maxWidth==="xs"&&{[a.breakpoints.up("xs")]:{maxWidth:Math.max(a.breakpoints.values.xs,444)}},...i.maxWidth&&i.maxWidth!=="xs"&&{[a.breakpoints.up(i.maxWidth)]:{maxWidth:`${a.breakpoints.values[i.maxWidth]}${a.breakpoints.unit}`}}}));return d.forwardRef(function(i,l){const c=o(i),{className:p,component:u="div",disableGutters:m=!1,fixed:g=!1,maxWidth:b="lg",classes:v,...h}=c,y={...c,component:u,disableGutters:m,fixed:g,maxWidth:b},S=oc(y,r);return f.jsx(n,{as:u,ownerState:y,className:j(S.root,p),ref:l,...h})})}const nc=(t,e)=>t.filter(o=>e.includes(o)),_o=(t,e,o)=>{const r=t.keys[0];Array.isArray(e)?e.forEach((n,s)=>{o((a,i)=>{s<=t.keys.length-1&&(s===0?Object.assign(a,i):a[t.up(t.keys[s])]=i)},n)}):e&&typeof e=="object"?(Object.keys(e).length>t.keys.length?t.keys:nc(t.keys,Object.keys(e))).forEach(s=>{if(t.keys.includes(s)){const a=e[s];a!==void 0&&o((i,l)=>{r===s?Object.assign(i,l):i[t.up(s)]=l},a)}}):(typeof e=="number"||typeof e=="string")&&o((n,s)=>{Object.assign(n,s)},e)};function en(t){return`--Grid-${t}Spacing`}function gn(t){return`--Grid-parent-${t}Spacing`}const Ws="--Grid-columns",Ho="--Grid-parent-columns",sc=({theme:t,ownerState:e})=>{const o={};return _o(t.breakpoints,e.size,(r,n)=>{let s={};n==="grow"&&(s={flexBasis:0,flexGrow:1,maxWidth:"100%"}),n==="auto"&&(s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),typeof n=="number"&&(s={flexGrow:0,flexBasis:"auto",width:`calc(100% * ${n} / var(${Ho}) - (var(${Ho}) - ${n}) * (var(${gn("column")}) / var(${Ho})))`}),r(o,s)}),o},ac=({theme:t,ownerState:e})=>{const o={};return _o(t.breakpoints,e.offset,(r,n)=>{let s={};n==="auto"&&(s={marginLeft:"auto"}),typeof n=="number"&&(s={marginLeft:n===0?"0px":`calc(100% * ${n} / var(${Ho}) + var(${gn("column")}) * ${n} / var(${Ho}))`}),r(o,s)}),o},ic=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={[Ws]:12};return _o(t.breakpoints,e.columns,(r,n)=>{const s=n??12;r(o,{[Ws]:s,"> *":{[Ho]:s}})}),o},lc=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return _o(t.breakpoints,e.rowSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[en("row")]:s,"> *":{[gn("row")]:s}})}),o},cc=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return _o(t.breakpoints,e.columnSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[en("column")]:s,"> *":{[gn("column")]:s}})}),o},pc=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return _o(t.breakpoints,e.direction,(r,n)=>{r(o,{flexDirection:n})}),o},dc=({ownerState:t})=>({minWidth:0,boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",...t.wrap&&t.wrap!=="wrap"&&{flexWrap:t.wrap},gap:`var(${en("row")}) var(${en("column")})`}}),uc=t=>{const e=[];return Object.entries(t).forEach(([o,r])=>{r!==!1&&r!==void 0&&e.push(`grid-${o}-${String(r)}`)}),e},fc=(t,e="xs")=>{function o(r){return r===void 0?!1:typeof r=="string"&&!Number.isNaN(Number(r))||typeof r=="number"&&r>0}if(o(t))return[`spacing-${e}-${String(t)}`];if(typeof t=="object"&&!Array.isArray(t)){const r=[];return Object.entries(t).forEach(([n,s])=>{o(s)&&r.push(`spacing-${n}-${String(s)}`)}),r}return[]},gc=t=>t===void 0?[]:typeof t=="object"?Object.entries(t).map(([e,o])=>`direction-${e}-${o}`):[`direction-xs-${String(t)}`];function mc(t,e){t.item!==void 0&&delete t.item,t.zeroMinWidth!==void 0&&delete t.zeroMinWidth,e.keys.forEach(o=>{t[o]!==void 0&&delete t[o]})}const bc=ds(),vc=us("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>e.root});function hc(t){return un({props:t,name:"MuiGrid",defaultTheme:bc})}function yc(t={}){const{createStyledComponent:e=vc,useThemeProps:o=hc,useTheme:r=dn,componentName:n="MuiGrid"}=t,s=(c,p)=>{const{container:u,direction:m,spacing:g,wrap:b,size:v}=c,h={root:["root",u&&"container",b!=="wrap"&&`wrap-xs-${String(b)}`,...gc(m),...uc(v),...u?fc(g,p.breakpoints.keys[0]):[]]};return G(h,y=>V(n,y),{})};function a(c,p,u=()=>!0){const m={};return c===null||(Array.isArray(c)?c.forEach((g,b)=>{g!==null&&u(g)&&p.keys[b]&&(m[p.keys[b]]=g)}):typeof c=="object"?Object.keys(c).forEach(g=>{const b=c[g];b!=null&&u(b)&&(m[g]=b)}):m[p.keys[0]]=c),m}const i=e(ic,cc,lc,sc,pc,dc,ac),l=d.forwardRef(function(p,u){const m=r(),g=o(p),b=Rr(g);mc(b,m.breakpoints);const{className:v,children:h,columns:y=12,container:S=!1,component:C="div",direction:x="row",wrap:w="wrap",size:P={},offset:$={},spacing:I=0,rowSpacing:A=I,columnSpacing:T=I,unstable_level:z=0,...E}=b,R=a(P,m.breakpoints,U=>U!==!1),M=a($,m.breakpoints),O=p.columns??(z?void 0:y),L=p.spacing??(z?void 0:I),F=p.rowSpacing??p.spacing??(z?void 0:A),D=p.columnSpacing??p.spacing??(z?void 0:T),N={...b,level:z,columns:O,container:S,direction:x,wrap:w,spacing:L,rowSpacing:F,columnSpacing:D,size:R,offset:M},J=s(N,m);return f.jsx(i,{ref:u,as:C,ownerState:N,className:j(J.root,v),...E,children:d.Children.map(h,U=>{var wt;return d.isValidElement(U)&&ho(U,["Grid"])&&S&&U.props.container?d.cloneElement(U,{unstable_level:((wt=U.props)==null?void 0:wt.unstable_level)??z+1}):U})})});return l.muiName="Grid",l}const xc=ds(),Cc=us("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root});function Sc(t){return un({props:t,name:"MuiStack",defaultTheme:xc})}function wc(t,e){const o=d.Children.toArray(t).filter(Boolean);return o.reduce((r,n,s)=>(r.push(n),s({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[t],Pc=({ownerState:t,theme:e})=>{let o={display:"flex",flexDirection:"column",...br({theme:e},Io({values:t.direction,breakpoints:e.breakpoints.values}),r=>({flexDirection:r}))};if(t.spacing){const r=Rl(e),n=Object.keys(e.breakpoints.values).reduce((l,c)=>((typeof t.spacing=="object"&&t.spacing[c]!=null||typeof t.direction=="object"&&t.direction[c]!=null)&&(l[c]=!0),l),{}),s=Io({values:t.direction,base:n}),a=Io({values:t.spacing,base:n});typeof s=="object"&&Object.keys(s).forEach((l,c,p)=>{if(!s[l]){const m=c>0?s[p[c-1]]:"column";s[l]=m}}),o=Sr(o,br({theme:e},a,(l,c)=>t.useFlexGap?{gap:Os(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${Rc(c?s[c]:t.direction)}`]:Os(r,l)}}))}return o=Pl(e.breakpoints,o),o};function $c(t={}){const{createStyledComponent:e=Cc,useThemeProps:o=Sc,componentName:r="MuiStack"}=t,n=()=>G({root:["root"]},l=>V(r,l),{}),s=e(Pc);return d.forwardRef(function(l,c){const p=o(l),u=Rr(p),{component:m="div",direction:g="column",spacing:b=0,divider:v,children:h,className:y,useFlexGap:S=!1,...C}=u,x={direction:g,spacing:b,useFlexGap:S},w=n();return f.jsx(s,{as:m,ownerState:x,ref:c,className:j(w.root,y),...C,children:v?wc(h,v):h})})}function hS(t){const{defaultProps:e={},mixins:o={},overrides:r={},palette:n={},props:s={},styleOverrides:a={},...i}=t,l={...i,components:{}};Object.keys(e).forEach(v=>{const h=l.components[v]||{};h.defaultProps=e[v],l.components[v]=h}),Object.keys(s).forEach(v=>{const h=l.components[v]||{};h.defaultProps=s[v],l.components[v]=h}),Object.keys(a).forEach(v=>{const h=l.components[v]||{};h.styleOverrides=a[v],l.components[v]=h}),Object.keys(r).forEach(v=>{const h=l.components[v]||{};h.styleOverrides=r[v],l.components[v]=h}),l.spacing=$l(t.spacing);const c=kl(t.breakpoints||{}),p=l.spacing;l.mixins={gutters:(v={})=>({paddingLeft:p(2),paddingRight:p(2),...v,[c.up("sm")]:{paddingLeft:p(3),paddingRight:p(3),...v[c.up("sm")]}}),...o};const{type:u,mode:m,...g}=n,b=m||u||"light";return l.palette={text:{hint:b==="dark"?"rgba(255, 255, 255, 0.5)":"rgba(0, 0, 0, 0.38)"},mode:b,type:b,...g},l}function yS(t,...e){return si(Sr({unstable_strictMode:!0},t),...e)}let Us=!1;function xS(t){return Us||(console.warn(["MUI: createStyles from @mui/material/styles is deprecated.","Please use @mui/styles/createStyles"].join(` +`)),Us=!0),t}function Hs(t){return String(parseFloat(t)).length===String(t).length}function xi(t){return String(t).match(/[\d.\-+]*\s*(.*)/)[1]||""}function go(t){return parseFloat(t)}function kc(t){return(e,o)=>{const r=xi(e);if(r===o)return e;let n=go(e);r!=="px"&&(r==="em"||r==="rem")&&(n=go(e)*go(t));let s=n;if(o!=="px")if(o==="em")s=n/go(t);else if(o==="rem")s=n/go(t);else return e;return parseFloat(s.toFixed(5))+o}}function Ic({size:t,grid:e}){const o=t-t%e,r=o+e;return t-o{let c=e+i*l;s!==null&&(c=s(c)),a[`@media (min-width:${l}px)`]={[t]:`${Math.round(c*1e4)/1e4}${r}`}}),a}function CS(t,e={}){const{breakpoints:o=["sm","md","lg"],disableAlign:r=!1,factor:n=2,variants:s=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline"]}=e,a={...t};a.typography={...a.typography};const i=a.typography,l=kc(i.htmlFontSize),c=o.map(p=>a.breakpoints.values[p]);return s.forEach(p=>{const u=i[p];if(!u)return;const m=parseFloat(l(u.fontSize,"rem"));if(m<=1)return;const g=m,b=1+(g-1)/n;let{lineHeight:v}=u;if(!Hs(v)&&!r)throw new Error(Eo(6));Hs(v)||(v=parseFloat(l(v,"rem"))/parseFloat(m));let h=null;r||(h=y=>Ic({size:y,grid:Tc({pixels:4,lineHeight:v,htmlFontSize:i.htmlFontSize})})),i[p]={...u,...Mc({cssProperty:"fontSize",min:b,max:g,unit:"rem",breakpoints:c,transform:h})}}),a}function SS({props:t,name:e}){return un({props:t,name:e,defaultTheme:ai,themeId:pn})}function wS(){throw new Error(Eo(14))}function RS(){throw new Error(Eo(15))}function PS(){throw new Error(Eo(16))}let Vs=!1;function $S(...t){return Vs||(console.warn(["MUI: The `experimental_extendTheme` has been stabilized.","","You should use `import { extendTheme } from '@mui/material/styles'`"].join(` +`)),Vs=!0),Il(...t)}function kS(){throw new Error(Eo(19))}const Lc={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},Ac={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea"},Bc={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},Ec={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"},Oc={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5"},Nc={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17"},zc={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00"},jc={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"},Dc={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00"},Fc={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037"},Wc={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"},IS=Object.freeze(Object.defineProperty({__proto__:null,amber:jc,blue:Tl,blueGrey:Wc,brown:Fc,common:Ml,cyan:Ec,deepOrange:Dc,deepPurple:Ac,green:Ll,grey:Al,indigo:Bc,lightBlue:Bl,lightGreen:Nc,lime:zc,orange:El,pink:Lc,purple:Ol,red:Nl,teal:Oc,yellow:Wl},Symbol.toStringTag,{value:"Module"}));function Uc(t){return f.jsx(Ul,{...t,defaultTheme:ai,themeId:pn})}function ms(t){return function(o){return f.jsx(Uc,{styles:typeof t=="function"?r=>t({theme:r,...o}):t})}}function Hc(){return Rr}function Vo(t,e){if(!t)return e;if(typeof t=="function"||typeof e=="function")return n=>{const s=typeof e=="function"?e(n):e,a=typeof t=="function"?t({...n,...s}):t,i=j(n==null?void 0:n.className,s==null?void 0:s.className,a==null?void 0:a.className);return{...s,...a,...!!i&&{className:i},...(s==null?void 0:s.style)&&(a==null?void 0:a.style)&&{style:{...s.style,...a.style}},...(s==null?void 0:s.sx)&&(a==null?void 0:a.sx)&&{sx:[...Array.isArray(s.sx)?s.sx:[s.sx],...Array.isArray(a.sx)?a.sx:[a.sx]]}}};const o=e,r=j(o==null?void 0:o.className,t==null?void 0:t.className);return{...e,...t,...!!r&&{className:r},...(o==null?void 0:o.style)&&(t==null?void 0:t.style)&&{style:{...o.style,...t.style}},...(o==null?void 0:o.sx)&&(t==null?void 0:t.sx)&&{sx:[...Array.isArray(o.sx)?o.sx:[o.sx],...Array.isArray(t.sx)?t.sx:[t.sx]]}}}const TS={configure:t=>{ii.configure(t)}},Gs={disabled:!1},on=ro.createContext(null);var Vc=function(e){return e.scrollTop},lr="unmounted",Co="exited",So="entering",Do="entered",Kn="exiting",Le=function(t){li(e,t);function e(r,n){var s;s=t.call(this,r,n)||this;var a=n,i=a&&!a.isMounting?r.enter:r.appear,l;return s.appearStatus=null,r.in?i?(l=Co,s.appearStatus=So):l=Do:r.unmountOnExit||r.mountOnEnter?l=lr:l=Co,s.state={status:l},s.nextCallback=null,s}e.getDerivedStateFromProps=function(n,s){var a=n.in;return a&&s.status===lr?{status:Co}:null};var o=e.prototype;return o.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},o.componentDidUpdate=function(n){var s=null;if(n!==this.props){var a=this.state.status;this.props.in?a!==So&&a!==Do&&(s=So):(a===So||a===Do)&&(s=Kn)}this.updateStatus(!1,s)},o.componentWillUnmount=function(){this.cancelNextCallback()},o.getTimeouts=function(){var n=this.props.timeout,s,a,i;return s=a=i=n,n!=null&&typeof n!="number"&&(s=n.exit,a=n.enter,i=n.appear!==void 0?n.appear:a),{exit:s,enter:a,appear:i}},o.updateStatus=function(n,s){if(n===void 0&&(n=!1),s!==null)if(this.cancelNextCallback(),s===So){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:Br.findDOMNode(this);a&&Vc(a)}this.performEnter(n)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Co&&this.setState({status:lr})},o.performEnter=function(n){var s=this,a=this.props.enter,i=this.context?this.context.isMounting:n,l=this.props.nodeRef?[i]:[Br.findDOMNode(this),i],c=l[0],p=l[1],u=this.getTimeouts(),m=i?u.appear:u.enter;if(!n&&!a||Gs.disabled){this.safeSetState({status:Do},function(){s.props.onEntered(c)});return}this.props.onEnter(c,p),this.safeSetState({status:So},function(){s.props.onEntering(c,p),s.onTransitionEnd(m,function(){s.safeSetState({status:Do},function(){s.props.onEntered(c,p)})})})},o.performExit=function(){var n=this,s=this.props.exit,a=this.getTimeouts(),i=this.props.nodeRef?void 0:Br.findDOMNode(this);if(!s||Gs.disabled){this.safeSetState({status:Co},function(){n.props.onExited(i)});return}this.props.onExit(i),this.safeSetState({status:Kn},function(){n.props.onExiting(i),n.onTransitionEnd(a.exit,function(){n.safeSetState({status:Co},function(){n.props.onExited(i)})})})},o.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},o.safeSetState=function(n,s){s=this.setNextCallback(s),this.setState(n,s)},o.setNextCallback=function(n){var s=this,a=!0;return this.nextCallback=function(i){a&&(a=!1,s.nextCallback=null,n(i))},this.nextCallback.cancel=function(){a=!1},this.nextCallback},o.onTransitionEnd=function(n,s){this.setNextCallback(s);var a=this.props.nodeRef?this.props.nodeRef.current:Br.findDOMNode(this),i=n==null&&!this.props.addEndListener;if(!a||i){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],c=l[0],p=l[1];this.props.addEndListener(c,p)}n!=null&&setTimeout(this.nextCallback,n)},o.render=function(){var n=this.state.status;if(n===lr)return null;var s=this.props,a=s.children;s.in,s.mountOnEnter,s.unmountOnExit,s.appear,s.enter,s.exit,s.timeout,s.addEndListener,s.onEnter,s.onEntering,s.onEntered,s.onExit,s.onExiting,s.onExited,s.nodeRef;var i=ci(s,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return ro.createElement(on.Provider,{value:null},typeof a=="function"?a(n,i):ro.cloneElement(ro.Children.only(a),i))},e}(ro.Component);Le.contextType=on;Le.propTypes={};function zo(){}Le.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:zo,onEntering:zo,onEntered:zo,onExit:zo,onExiting:zo,onExited:zo};Le.UNMOUNTED=lr;Le.EXITED=Co;Le.ENTERING=So;Le.ENTERED=Do;Le.EXITING=Kn;function Gc(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function bs(t,e){var o=function(s){return e&&d.isValidElement(s)?e(s):s},r=Object.create(null);return t&&d.Children.map(t,function(n){return n}).forEach(function(n){r[n.key]=o(n)}),r}function Kc(t,e){t=t||{},e=e||{};function o(p){return p in e?e[p]:t[p]}var r=Object.create(null),n=[];for(var s in t)s in e?n.length&&(r[s]=n,n=[]):n.push(s);var a,i={};for(var l in e){if(r[l])for(a=0;at.scrollTop;function Ge(t,e){const{timeout:o,easing:r,style:n={}}=t;return{duration:n.transitionDuration??(typeof o=="number"?o:o[e.mode]||0),easing:n.transitionTimingFunction??(typeof r=="object"?r[e.mode]:r),delay:n.transitionDelay}}function Zc(t){return V("MuiCollapse",t)}const MS=K("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]),Qc=t=>{const{orientation:e,classes:o}=t,r={root:["root",`${e}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${e}`],wrapperInner:["wrapperInner",`${e}`]};return G(r,Zc,o)},Jc=k("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.state==="entered"&&e.entered,o.state==="exited"&&!o.in&&o.collapsedSize==="0px"&&e.hidden]}})(W(({theme:t})=>({height:0,overflow:"hidden",transition:t.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:t.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:e})=>e.state==="exited"&&!e.in&&e.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),tp=k("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(t,e)=>e.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),ep=k("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(t,e)=>e.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),vr=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCollapse"}),{addEndListener:n,children:s,className:a,collapsedSize:i="0px",component:l,easing:c,in:p,onEnter:u,onEntered:m,onEntering:g,onExit:b,onExited:v,onExiting:h,orientation:y="vertical",style:S,timeout:C=jl.standard,TransitionComponent:x=Le,...w}=r,P={...r,orientation:y,collapsedSize:i},$=Qc(P),I=le(),A=no(),T=d.useRef(null),z=d.useRef(),E=typeof i=="number"?`${i}px`:i,R=y==="horizontal",M=R?"width":"height",O=d.useRef(null),L=qt(o,O),F=rt=>Y=>{if(rt){const at=O.current;Y===void 0?rt(at):rt(at,Y)}},D=()=>T.current?T.current[R?"clientWidth":"clientHeight"]:0,N=F((rt,Y)=>{T.current&&R&&(T.current.style.position="absolute"),rt.style[M]=E,u&&u(rt,Y)}),J=F((rt,Y)=>{const at=D();T.current&&R&&(T.current.style.position="");const{duration:ct,easing:st}=Ge({style:S,timeout:C,easing:c},{mode:"enter"});if(C==="auto"){const ft=I.transitions.getAutoHeightDuration(at);rt.style.transitionDuration=`${ft}ms`,z.current=ft}else rt.style.transitionDuration=typeof ct=="string"?ct:`${ct}ms`;rt.style[M]=`${at}px`,rt.style.transitionTimingFunction=st,g&&g(rt,Y)}),U=F((rt,Y)=>{rt.style[M]="auto",m&&m(rt,Y)}),wt=F(rt=>{rt.style[M]=`${D()}px`,b&&b(rt)}),vt=F(v),mt=F(rt=>{const Y=D(),{duration:at,easing:ct}=Ge({style:S,timeout:C,easing:c},{mode:"exit"});if(C==="auto"){const st=I.transitions.getAutoHeightDuration(Y);rt.style.transitionDuration=`${st}ms`,z.current=st}else rt.style.transitionDuration=typeof at=="string"?at:`${at}ms`;rt.style[M]=E,rt.style.transitionTimingFunction=ct,h&&h(rt)}),et=rt=>{C==="auto"&&A.start(z.current||0,rt),n&&n(O.current,rt)};return f.jsx(x,{in:p,onEnter:N,onEntered:U,onEntering:J,onExit:wt,onExited:vt,onExiting:mt,addEndListener:et,nodeRef:O,timeout:C==="auto"?null:C,...w,children:(rt,{ownerState:Y,...at})=>f.jsx(Jc,{as:l,className:j($.root,a,{entered:$.entered,exited:!p&&E==="0px"&&$.hidden}[rt]),style:{[R?"minWidth":"minHeight"]:E,...S},ref:L,ownerState:{...P,state:rt},...at,children:f.jsx(tp,{ownerState:{...P,state:rt},className:$.wrapper,ref:T,children:f.jsx(ep,{ownerState:{...P,state:rt},className:$.wrapperInner,children:s})})})})});vr&&(vr.muiSupportAuto=!0);function op(t){return V("MuiPaper",t)}const LS=K("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]),rp=t=>{const{square:e,elevation:o,variant:r,classes:n}=t,s={root:["root",r,!e&&"rounded",r==="elevation"&&`elevation${o}`]};return G(s,op,n)},np=k("div",{name:"MuiPaper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],!o.square&&e.rounded,o.variant==="elevation"&&e[`elevation${o.elevation}`]]}})(W(({theme:t})=>({backgroundColor:(t.vars||t).palette.background.paper,color:(t.vars||t).palette.text.primary,transition:t.transitions.create("box-shadow"),variants:[{props:({ownerState:e})=>!e.square,style:{borderRadius:t.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(t.vars||t).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),Ue=d.forwardRef(function(e,o){var g;const r=_({props:e,name:"MuiPaper"}),n=le(),{className:s,component:a="div",elevation:i=1,square:l=!1,variant:c="elevation",...p}=r,u={...r,component:a,elevation:i,square:l,variant:c},m=rp(u);return f.jsx(np,{as:a,ownerState:u,className:j(m.root,s),ref:o,...p,style:{...c==="elevation"&&{"--Paper-shadow":(n.vars||n).shadows[i],...n.vars&&{"--Paper-overlay":(g=n.vars.overlays)==null?void 0:g[i]},...!n.vars&&n.palette.mode==="dark"&&{"--Paper-overlay":`linear-gradient(${kt("#fff",Ns(i))}, ${kt("#fff",Ns(i))})`}},...p.style}})}),Ci=d.createContext({});function Q(t,e){const{className:o,elementType:r,ownerState:n,externalForwardedProps:s,internalForwardedProps:a,shouldForwardComponentProp:i=!1,...l}=e,{component:c,slots:p={[t]:void 0},slotProps:u={[t]:void 0},...m}=s,g=p[t]||r,b=yi(u[t],n),{props:{component:v,...h},internalRef:y}=hi({className:o,...l,externalForwardedProps:t==="root"?m:void 0,externalSlotProps:b}),S=qt(y,b==null?void 0:b.ref,e.ref),C=t==="root"?v||c:v,x=vi(g,{...t==="root"&&!c&&!p[t]&&a,...t!=="root"&&!p[t]&&a,...h,...C&&!i&&{as:C},...C&&i&&{component:C},ref:S},n);return[g,x]}function sp(t){return V("MuiAccordion",t)}const Er=K("MuiAccordion",["root","heading","rounded","expanded","disabled","gutters","region"]),ap=t=>{const{classes:e,square:o,expanded:r,disabled:n,disableGutters:s}=t;return G({root:["root",!o&&"rounded",r&&"expanded",n&&"disabled",!s&&"gutters"],heading:["heading"],region:["region"]},sp,e)},ip=k(Ue,{name:"MuiAccordion",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Er.region}`]:e.region},e.root,!o.square&&e.rounded,!o.disableGutters&&e.gutters]}})(W(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{position:"relative",transition:t.transitions.create(["margin"],e),overflowAnchor:"none","&::before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:(t.vars||t).palette.divider,transition:t.transitions.create(["opacity","background-color"],e)},"&:first-of-type":{"&::before":{display:"none"}},[`&.${Er.expanded}`]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:"none"}}},[`&.${Er.disabled}`]:{backgroundColor:(t.vars||t).palette.action.disabledBackground}}}),W(({theme:t})=>({variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(t.vars||t).shape.borderRadius,borderTopRightRadius:(t.vars||t).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(t.vars||t).shape.borderRadius,borderBottomRightRadius:(t.vars||t).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{[`&.${Er.expanded}`]:{margin:"16px 0"}}}]}))),lp=k("h3",{name:"MuiAccordion",slot:"Heading",overridesResolver:(t,e)=>e.heading})({all:"unset"}),AS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordion"}),{children:n,className:s,defaultExpanded:a=!1,disabled:i=!1,disableGutters:l=!1,expanded:c,onChange:p,square:u=!1,slots:m={},slotProps:g={},TransitionComponent:b,TransitionProps:v,...h}=r,[y,S]=Te({controlled:c,default:a,name:"Accordion",state:"expanded"}),C=d.useCallback(D=>{S(!y),p&&p(D,!y)},[y,p,S]),[x,...w]=d.Children.toArray(n),P=d.useMemo(()=>({expanded:y,disabled:i,disableGutters:l,toggle:C}),[y,i,l,C]),$={...r,square:u,disabled:i,disableGutters:l,expanded:y},I=ap($),A={transition:b,...m},T={transition:v,...g},z={slots:A,slotProps:T},[E,R]=Q("root",{elementType:ip,externalForwardedProps:{...z,...h},className:j(I.root,s),shouldForwardComponentProp:!0,ownerState:$,ref:o,additionalProps:{square:u}}),[M,O]=Q("heading",{elementType:lp,externalForwardedProps:z,className:I.heading,ownerState:$}),[L,F]=Q("transition",{elementType:vr,externalForwardedProps:z,ownerState:$});return f.jsxs(E,{...R,children:[f.jsx(M,{...O,children:f.jsx(Ci.Provider,{value:P,children:x})}),f.jsx(L,{in:y,timeout:"auto",...F,children:f.jsx("div",{"aria-labelledby":x.props.id,id:x.props["aria-controls"],role:"region",className:I.region,children:w})})]})});function cp(t){return V("MuiAccordionActions",t)}const BS=K("MuiAccordionActions",["root","spacing"]),pp=t=>{const{classes:e,disableSpacing:o}=t;return G({root:["root",!o&&"spacing"]},cp,e)},dp=k("div",{name:"MuiAccordionActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",variants:[{props:t=>!t.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),ES=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordionActions"}),{className:n,disableSpacing:s=!1,...a}=r,i={...r,disableSpacing:s},l=pp(i);return f.jsx(dp,{className:j(l.root,n),ref:o,ownerState:i,...a})});function up(t){return V("MuiAccordionDetails",t)}const OS=K("MuiAccordionDetails",["root"]),fp=t=>{const{classes:e}=t;return G({root:["root"]},up,e)},gp=k("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({padding:t.spacing(1,2,2)}))),NS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordionDetails"}),{className:n,...s}=r,a=r,i=fp(a);return f.jsx(gp,{className:j(i.root,n),ref:o,ownerState:a,...s})});class rn{static create(){return new rn}static use(){const e=fi(rn.create).current,[o,r]=d.useState(!1);return e.shouldMount=o,e.setShouldMount=r,d.useEffect(e.mountEffect,[o]),e}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=bp(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>{var o;return(o=this.ref.current)==null?void 0:o.start(...e)})}stop(...e){this.mount().then(()=>{var o;return(o=this.ref.current)==null?void 0:o.stop(...e)})}pulsate(...e){this.mount().then(()=>{var o;return(o=this.ref.current)==null?void 0:o.pulsate(...e)})}}function mp(){return rn.use()}function bp(){let t,e;const o=new Promise((r,n)=>{t=r,e=n});return o.resolve=t,o.reject=e,o}function vp(t){const{className:e,classes:o,pulsate:r=!1,rippleX:n,rippleY:s,rippleSize:a,in:i,onExited:l,timeout:c}=t,[p,u]=d.useState(!1),m=j(e,o.ripple,o.rippleVisible,r&&o.ripplePulsate),g={width:a,height:a,top:-(a/2)+s,left:-(a/2)+n},b=j(o.child,p&&o.childLeaving,r&&o.childPulsate);return!i&&!p&&u(!0),d.useEffect(()=>{if(!i&&l!=null){const v=setTimeout(l,c);return()=>{clearTimeout(v)}}},[l,i,c]),f.jsx("span",{className:m,style:g,children:f.jsx("span",{className:b})})}function zS(t){return V("MuiTouchRipple",t)}const Oe=K("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),qn=550,hp=80,yp=Je` 0% { transform: scale(0); opacity: 0.1; @@ -11,7 +11,7 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a transform: scale(1); opacity: 0.3; } -`,Cp=Je` +`,xp=Je` 0% { opacity: 1; } @@ -19,7 +19,7 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a 100% { opacity: 0; } -`,Sp=Je` +`,Cp=Je` 0% { transform: scale(1); } @@ -31,15 +31,15 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a 100% { transform: scale(1); } -`,wp=k("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),Rp=k(hp,{name:"MuiTouchRipple",slot:"Ripple"})` +`,Sp=k("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),wp=k(vp,{name:"MuiTouchRipple",slot:"Ripple"})` opacity: 0; position: absolute; &.${Oe.rippleVisible} { opacity: 0.3; transform: scale(1); - animation-name: ${xp}; - animation-duration: ${Xn}ms; + animation-name: ${yp}; + animation-duration: ${qn}ms; animation-timing-function: ${({theme:t})=>t.transitions.easing.easeInOut}; } @@ -58,8 +58,8 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a & .${Oe.childLeaving} { opacity: 0; - animation-name: ${Cp}; - animation-duration: ${Xn}ms; + animation-name: ${xp}; + animation-duration: ${qn}ms; animation-timing-function: ${({theme:t})=>t.transitions.easing.easeInOut}; } @@ -68,13 +68,13 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a /* @noflip */ left: 0px; top: 0; - animation-name: ${Sp}; + animation-name: ${Cp}; animation-duration: 2500ms; animation-timing-function: ${({theme:t})=>t.transitions.easing.easeInOut}; animation-iteration-count: infinite; animation-delay: 200ms; } -`,Pp=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTouchRipple"}),{center:n=!1,classes:s={},className:a,...i}=r,[l,c]=d.useState([]),p=d.useRef(0),u=d.useRef(null);d.useEffect(()=>{u.current&&(u.current(),u.current=null)},[l]);const m=d.useRef(!1),g=no(),b=d.useRef(null),v=d.useRef(null),h=d.useCallback(x=>{const{pulsate:w,rippleX:P,rippleY:$,rippleSize:I,cb:A}=x;c(T=>[...T,f.jsx(Rp,{classes:{ripple:j(s.ripple,Oe.ripple),rippleVisible:j(s.rippleVisible,Oe.rippleVisible),ripplePulsate:j(s.ripplePulsate,Oe.ripplePulsate),child:j(s.child,Oe.child),childLeaving:j(s.childLeaving,Oe.childLeaving),childPulsate:j(s.childPulsate,Oe.childPulsate)},timeout:Xn,pulsate:w,rippleX:P,rippleY:$,rippleSize:I},p.current)]),p.current+=1,u.current=A},[s]),y=d.useCallback((x={},w={},P=()=>{})=>{const{pulsate:$=!1,center:I=n||w.pulsate,fakeElement:A=!1}=w;if((x==null?void 0:x.type)==="mousedown"&&m.current){m.current=!1;return}(x==null?void 0:x.type)==="touchstart"&&(m.current=!0);const T=A?null:v.current,z=T?T.getBoundingClientRect():{width:0,height:0,left:0,top:0};let E,R,M;if(I||x===void 0||x.clientX===0&&x.clientY===0||!x.clientX&&!x.touches)E=Math.round(z.width/2),R=Math.round(z.height/2);else{const{clientX:O,clientY:L}=x.touches&&x.touches.length>0?x.touches[0]:x;E=Math.round(O-z.left),R=Math.round(L-z.top)}if(I)M=Math.sqrt((2*z.width**2+z.height**2)/3),M%2===0&&(M+=1);else{const O=Math.max(Math.abs((T?T.clientWidth:0)-E),E)*2+2,L=Math.max(Math.abs((T?T.clientHeight:0)-R),R)*2+2;M=Math.sqrt(O**2+L**2)}x!=null&&x.touches?b.current===null&&(b.current=()=>{h({pulsate:$,rippleX:E,rippleY:R,rippleSize:M,cb:P})},g.start(yp,()=>{b.current&&(b.current(),b.current=null)})):h({pulsate:$,rippleX:E,rippleY:R,rippleSize:M,cb:P})},[n,h,g]),S=d.useCallback(()=>{y({},{pulsate:!0})},[y]),C=d.useCallback((x,w)=>{if(g.clear(),(x==null?void 0:x.type)==="touchend"&&b.current){b.current(),b.current=null,g.start(0,()=>{C(x,w)});return}b.current=null,c(P=>P.length>0?P.slice(1):P),u.current=w},[g]);return d.useImperativeHandle(o,()=>({pulsate:S,start:y,stop:C}),[S,y,C]),f.jsx(wp,{className:j(Oe.root,s.root,a),ref:v,...i,children:f.jsx(hs,{component:null,exit:!0,children:l})})});function $p(t){return V("MuiButtonBase",t)}const kp=K("MuiButtonBase",["root","disabled","focusVisible"]),Ip=t=>{const{disabled:e,focusVisible:o,focusVisibleClassName:r,classes:n}=t,a=G({root:["root",e&&"disabled",o&&"focusVisible"]},$p,n);return o&&r&&(a.root+=` ${r}`),a},Tp=k("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${kp.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ue=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiButtonBase"}),{action:n,centerRipple:s=!1,children:a,className:i,component:l="button",disabled:c=!1,disableRipple:p=!1,disableTouchRipple:u=!1,focusRipple:m=!1,focusVisibleClassName:g,LinkComponent:b="a",onBlur:v,onClick:h,onContextMenu:y,onDragLeave:S,onFocus:C,onFocusVisible:x,onKeyDown:w,onKeyUp:P,onMouseDown:$,onMouseLeave:I,onMouseUp:A,onTouchEnd:T,onTouchMove:z,onTouchStart:E,tabIndex:R=0,TouchRippleProps:M,touchRippleRef:O,type:L,...F}=r,D=d.useRef(null),N=bp(),J=qt(N.ref,O),[U,wt]=d.useState(!1);c&&U&&wt(!1),d.useImperativeHandle(n,()=>({focusVisible:()=>{wt(!0),D.current.focus()}}),[]);const vt=N.shouldMount&&!p&&!c;d.useEffect(()=>{U&&m&&!p&&N.pulsate()},[p,m,U,N]);const mt=eo(N,"start",$,u),et=eo(N,"stop",y,u),rt=eo(N,"stop",S,u),Y=eo(N,"stop",A,u),at=eo(N,"stop",nt=>{U&&nt.preventDefault(),I&&I(nt)},u),ct=eo(N,"start",E,u),st=eo(N,"stop",T,u),ft=eo(N,"stop",z,u),Z=eo(N,"stop",nt=>{Ze(nt.target)||wt(!1),v&&v(nt)},!1),pt=ee(nt=>{D.current||(D.current=nt.currentTarget),Ze(nt.target)&&(wt(!0),x&&x(nt)),C&&C(nt)}),it=()=>{const nt=D.current;return l&&l!=="button"&&!(nt.tagName==="A"&&nt.href)},ht=ee(nt=>{m&&!nt.repeat&&U&&nt.key===" "&&N.stop(nt,()=>{N.start(nt)}),nt.target===nt.currentTarget&&it()&&nt.key===" "&&nt.preventDefault(),w&&w(nt),nt.target===nt.currentTarget&&it()&&nt.key==="Enter"&&!c&&(nt.preventDefault(),h&&h(nt))}),Mt=ee(nt=>{m&&nt.key===" "&&U&&!nt.defaultPrevented&&N.stop(nt,()=>{N.pulsate(nt)}),P&&P(nt),h&&nt.target===nt.currentTarget&&it()&&nt.key===" "&&!nt.defaultPrevented&&h(nt)});let tt=l;tt==="button"&&(F.href||F.to)&&(tt=b);const ot={};tt==="button"?(ot.type=L===void 0?"button":L,ot.disabled=c):(!F.href&&!F.to&&(ot.role="button"),c&&(ot["aria-disabled"]=c));const dt=qt(o,D),St={...r,centerRipple:s,component:l,disabled:c,disableRipple:p,disableTouchRipple:u,focusRipple:m,tabIndex:R,focusVisible:U},gt=Ip(St);return f.jsxs(Tp,{as:tt,className:j(gt.root,i),ownerState:St,onBlur:Z,onClick:h,onContextMenu:et,onFocus:pt,onKeyDown:ht,onKeyUp:Mt,onMouseDown:mt,onMouseLeave:at,onMouseUp:Y,onDragLeave:rt,onTouchEnd:st,onTouchMove:ft,onTouchStart:ct,ref:dt,tabIndex:c?-1:R,type:L,...ot,...F,children:[a,vt?f.jsx(Pp,{ref:J,center:s,...M}):null]})});function eo(t,e,o,r=!1){return ee(n=>(o&&o(n),r||t[e](n),!0))}function Mp(t){return V("MuiAccordionSummary",t)}const Uo=K("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]),Lp=t=>{const{classes:e,expanded:o,disabled:r,disableGutters:n}=t;return G({root:["root",o&&"expanded",r&&"disabled",!n&&"gutters"],focusVisible:["focusVisible"],content:["content",o&&"expanded",!n&&"contentGutters"],expandIconWrapper:["expandIconWrapper",o&&"expanded"]},Mp,e)},Ap=k(ue,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{display:"flex",width:"100%",minHeight:48,padding:t.spacing(0,2),transition:t.transitions.create(["min-height","background-color"],e),[`&.${Uo.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${Uo.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},[`&:hover:not(.${Uo.disabled})`]:{cursor:"pointer"},variants:[{props:o=>!o.disableGutters,style:{[`&.${Uo.expanded}`]:{minHeight:64}}}]}})),Bp=k("span",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:(t,e)=>e.content})(W(({theme:t})=>({display:"flex",textAlign:"start",flexGrow:1,margin:"12px 0",variants:[{props:e=>!e.disableGutters,style:{transition:t.transitions.create(["margin"],{duration:t.transitions.duration.shortest}),[`&.${Uo.expanded}`]:{margin:"20px 0"}}}]}))),Ep=k("span",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:(t,e)=>e.expandIconWrapper})(W(({theme:t})=>({display:"flex",color:(t.vars||t).palette.action.active,transform:"rotate(0deg)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),[`&.${Uo.expanded}`]:{transform:"rotate(180deg)"}}))),jS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordionSummary"}),{children:n,className:s,expandIcon:a,focusVisibleClassName:i,onClick:l,slots:c,slotProps:p,...u}=r,{disabled:m=!1,disableGutters:g,expanded:b,toggle:v}=d.useContext(Si),h=T=>{v&&v(T),l&&l(T)},y={...r,expanded:b,disabled:m,disableGutters:g},S=Lp(y),C={slots:c,slotProps:p},[x,w]=Q("root",{ref:o,shouldForwardComponentProp:!0,className:j(S.root,s),elementType:Ap,externalForwardedProps:{...C,...u},ownerState:y,additionalProps:{focusRipple:!1,disableRipple:!0,disabled:m,"aria-expanded":b,focusVisibleClassName:j(S.focusVisible,i)},getSlotProps:T=>({...T,onClick:z=>{var E;(E=T.onClick)==null||E.call(T,z),h(z)}})}),[P,$]=Q("content",{className:S.content,elementType:Bp,externalForwardedProps:C,ownerState:y}),[I,A]=Q("expandIconWrapper",{className:S.expandIconWrapper,elementType:Ep,externalForwardedProps:C,ownerState:y});return f.jsxs(x,{...w,children:[f.jsx(P,{...$,children:n}),a&&f.jsx(I,{...A,children:a})]})});function Op(t){return typeof t.main=="string"}function Np(t,e=[]){if(!Op(t))return!1;for(const o of e)if(!t.hasOwnProperty(o)||typeof t[o]!="string")return!1;return!0}function jt(t=[]){return([,e])=>e&&Np(e,t)}function zp(t){return V("MuiAlert",t)}const qs=K("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]);function jp(t){return V("MuiCircularProgress",t)}const DS=K("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"]),uo=44,_n=Je` +`,Rp=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTouchRipple"}),{center:n=!1,classes:s={},className:a,...i}=r,[l,c]=d.useState([]),p=d.useRef(0),u=d.useRef(null);d.useEffect(()=>{u.current&&(u.current(),u.current=null)},[l]);const m=d.useRef(!1),g=no(),b=d.useRef(null),v=d.useRef(null),h=d.useCallback(x=>{const{pulsate:w,rippleX:P,rippleY:$,rippleSize:I,cb:A}=x;c(T=>[...T,f.jsx(wp,{classes:{ripple:j(s.ripple,Oe.ripple),rippleVisible:j(s.rippleVisible,Oe.rippleVisible),ripplePulsate:j(s.ripplePulsate,Oe.ripplePulsate),child:j(s.child,Oe.child),childLeaving:j(s.childLeaving,Oe.childLeaving),childPulsate:j(s.childPulsate,Oe.childPulsate)},timeout:qn,pulsate:w,rippleX:P,rippleY:$,rippleSize:I},p.current)]),p.current+=1,u.current=A},[s]),y=d.useCallback((x={},w={},P=()=>{})=>{const{pulsate:$=!1,center:I=n||w.pulsate,fakeElement:A=!1}=w;if((x==null?void 0:x.type)==="mousedown"&&m.current){m.current=!1;return}(x==null?void 0:x.type)==="touchstart"&&(m.current=!0);const T=A?null:v.current,z=T?T.getBoundingClientRect():{width:0,height:0,left:0,top:0};let E,R,M;if(I||x===void 0||x.clientX===0&&x.clientY===0||!x.clientX&&!x.touches)E=Math.round(z.width/2),R=Math.round(z.height/2);else{const{clientX:O,clientY:L}=x.touches&&x.touches.length>0?x.touches[0]:x;E=Math.round(O-z.left),R=Math.round(L-z.top)}if(I)M=Math.sqrt((2*z.width**2+z.height**2)/3),M%2===0&&(M+=1);else{const O=Math.max(Math.abs((T?T.clientWidth:0)-E),E)*2+2,L=Math.max(Math.abs((T?T.clientHeight:0)-R),R)*2+2;M=Math.sqrt(O**2+L**2)}x!=null&&x.touches?b.current===null&&(b.current=()=>{h({pulsate:$,rippleX:E,rippleY:R,rippleSize:M,cb:P})},g.start(hp,()=>{b.current&&(b.current(),b.current=null)})):h({pulsate:$,rippleX:E,rippleY:R,rippleSize:M,cb:P})},[n,h,g]),S=d.useCallback(()=>{y({},{pulsate:!0})},[y]),C=d.useCallback((x,w)=>{if(g.clear(),(x==null?void 0:x.type)==="touchend"&&b.current){b.current(),b.current=null,g.start(0,()=>{C(x,w)});return}b.current=null,c(P=>P.length>0?P.slice(1):P),u.current=w},[g]);return d.useImperativeHandle(o,()=>({pulsate:S,start:y,stop:C}),[S,y,C]),f.jsx(Sp,{className:j(Oe.root,s.root,a),ref:v,...i,children:f.jsx(vs,{component:null,exit:!0,children:l})})});function Pp(t){return V("MuiButtonBase",t)}const $p=K("MuiButtonBase",["root","disabled","focusVisible"]),kp=t=>{const{disabled:e,focusVisible:o,focusVisibleClassName:r,classes:n}=t,a=G({root:["root",e&&"disabled",o&&"focusVisible"]},Pp,n);return o&&r&&(a.root+=` ${r}`),a},Ip=k("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${$p.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),ue=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiButtonBase"}),{action:n,centerRipple:s=!1,children:a,className:i,component:l="button",disabled:c=!1,disableRipple:p=!1,disableTouchRipple:u=!1,focusRipple:m=!1,focusVisibleClassName:g,LinkComponent:b="a",onBlur:v,onClick:h,onContextMenu:y,onDragLeave:S,onFocus:C,onFocusVisible:x,onKeyDown:w,onKeyUp:P,onMouseDown:$,onMouseLeave:I,onMouseUp:A,onTouchEnd:T,onTouchMove:z,onTouchStart:E,tabIndex:R=0,TouchRippleProps:M,touchRippleRef:O,type:L,...F}=r,D=d.useRef(null),N=mp(),J=qt(N.ref,O),[U,wt]=d.useState(!1);c&&U&&wt(!1),d.useImperativeHandle(n,()=>({focusVisible:()=>{wt(!0),D.current.focus()}}),[]);const vt=N.shouldMount&&!p&&!c;d.useEffect(()=>{U&&m&&!p&&N.pulsate()},[p,m,U,N]);const mt=eo(N,"start",$,u),et=eo(N,"stop",y,u),rt=eo(N,"stop",S,u),Y=eo(N,"stop",A,u),at=eo(N,"stop",nt=>{U&&nt.preventDefault(),I&&I(nt)},u),ct=eo(N,"start",E,u),st=eo(N,"stop",T,u),ft=eo(N,"stop",z,u),Z=eo(N,"stop",nt=>{Ze(nt.target)||wt(!1),v&&v(nt)},!1),pt=ee(nt=>{D.current||(D.current=nt.currentTarget),Ze(nt.target)&&(wt(!0),x&&x(nt)),C&&C(nt)}),it=()=>{const nt=D.current;return l&&l!=="button"&&!(nt.tagName==="A"&&nt.href)},ht=ee(nt=>{m&&!nt.repeat&&U&&nt.key===" "&&N.stop(nt,()=>{N.start(nt)}),nt.target===nt.currentTarget&&it()&&nt.key===" "&&nt.preventDefault(),w&&w(nt),nt.target===nt.currentTarget&&it()&&nt.key==="Enter"&&!c&&(nt.preventDefault(),h&&h(nt))}),Mt=ee(nt=>{m&&nt.key===" "&&U&&!nt.defaultPrevented&&N.stop(nt,()=>{N.pulsate(nt)}),P&&P(nt),h&&nt.target===nt.currentTarget&&it()&&nt.key===" "&&!nt.defaultPrevented&&h(nt)});let tt=l;tt==="button"&&(F.href||F.to)&&(tt=b);const ot={};tt==="button"?(ot.type=L===void 0?"button":L,ot.disabled=c):(!F.href&&!F.to&&(ot.role="button"),c&&(ot["aria-disabled"]=c));const dt=qt(o,D),St={...r,centerRipple:s,component:l,disabled:c,disableRipple:p,disableTouchRipple:u,focusRipple:m,tabIndex:R,focusVisible:U},gt=kp(St);return f.jsxs(Ip,{as:tt,className:j(gt.root,i),ownerState:St,onBlur:Z,onClick:h,onContextMenu:et,onFocus:pt,onKeyDown:ht,onKeyUp:Mt,onMouseDown:mt,onMouseLeave:at,onMouseUp:Y,onDragLeave:rt,onTouchEnd:st,onTouchMove:ft,onTouchStart:ct,ref:dt,tabIndex:c?-1:R,type:L,...ot,...F,children:[a,vt?f.jsx(Rp,{ref:J,center:s,...M}):null]})});function eo(t,e,o,r=!1){return ee(n=>(o&&o(n),r||t[e](n),!0))}function Tp(t){return V("MuiAccordionSummary",t)}const Wo=K("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]),Mp=t=>{const{classes:e,expanded:o,disabled:r,disableGutters:n}=t;return G({root:["root",o&&"expanded",r&&"disabled",!n&&"gutters"],focusVisible:["focusVisible"],content:["content",o&&"expanded",!n&&"contentGutters"],expandIconWrapper:["expandIconWrapper",o&&"expanded"]},Tp,e)},Lp=k(ue,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{display:"flex",width:"100%",minHeight:48,padding:t.spacing(0,2),transition:t.transitions.create(["min-height","background-color"],e),[`&.${Wo.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${Wo.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},[`&:hover:not(.${Wo.disabled})`]:{cursor:"pointer"},variants:[{props:o=>!o.disableGutters,style:{[`&.${Wo.expanded}`]:{minHeight:64}}}]}})),Ap=k("span",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:(t,e)=>e.content})(W(({theme:t})=>({display:"flex",textAlign:"start",flexGrow:1,margin:"12px 0",variants:[{props:e=>!e.disableGutters,style:{transition:t.transitions.create(["margin"],{duration:t.transitions.duration.shortest}),[`&.${Wo.expanded}`]:{margin:"20px 0"}}}]}))),Bp=k("span",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:(t,e)=>e.expandIconWrapper})(W(({theme:t})=>({display:"flex",color:(t.vars||t).palette.action.active,transform:"rotate(0deg)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),[`&.${Wo.expanded}`]:{transform:"rotate(180deg)"}}))),jS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAccordionSummary"}),{children:n,className:s,expandIcon:a,focusVisibleClassName:i,onClick:l,slots:c,slotProps:p,...u}=r,{disabled:m=!1,disableGutters:g,expanded:b,toggle:v}=d.useContext(Ci),h=T=>{v&&v(T),l&&l(T)},y={...r,expanded:b,disabled:m,disableGutters:g},S=Mp(y),C={slots:c,slotProps:p},[x,w]=Q("root",{ref:o,shouldForwardComponentProp:!0,className:j(S.root,s),elementType:Lp,externalForwardedProps:{...C,...u},ownerState:y,additionalProps:{focusRipple:!1,disableRipple:!0,disabled:m,"aria-expanded":b,focusVisibleClassName:j(S.focusVisible,i)},getSlotProps:T=>({...T,onClick:z=>{var E;(E=T.onClick)==null||E.call(T,z),h(z)}})}),[P,$]=Q("content",{className:S.content,elementType:Ap,externalForwardedProps:C,ownerState:y}),[I,A]=Q("expandIconWrapper",{className:S.expandIconWrapper,elementType:Bp,externalForwardedProps:C,ownerState:y});return f.jsxs(x,{...w,children:[f.jsx(P,{...$,children:n}),a&&f.jsx(I,{...A,children:a})]})});function Ep(t){return typeof t.main=="string"}function Op(t,e=[]){if(!Ep(t))return!1;for(const o of e)if(!t.hasOwnProperty(o)||typeof t[o]!="string")return!1;return!0}function jt(t=[]){return([,e])=>e&&Op(e,t)}function Np(t){return V("MuiAlert",t)}const Ks=K("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]);function zp(t){return V("MuiCircularProgress",t)}const DS=K("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"]),uo=44,Xn=Je` 0% { transform: rotate(0deg); } @@ -82,7 +82,7 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a 100% { transform: rotate(360deg); } -`,Yn=Je` +`,_n=Je` 0% { stroke-dasharray: 1px, 200px; stroke-dashoffset: 0; @@ -97,12 +97,12 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a stroke-dasharray: 1px, 200px; stroke-dashoffset: -126px; } -`,Dp=typeof _n!="string"?No` - animation: ${_n} 1.4s linear infinite; - `:null,Fp=typeof Yn!="string"?No` - animation: ${Yn} 1.4s ease-in-out infinite; - `:null,Wp=t=>{const{classes:e,variant:o,color:r,disableShrink:n}=t,s={root:["root",o,`color${B(r)}`],svg:["svg"],circle:["circle",`circle${B(o)}`,n&&"circleDisableShrink"]};return G(s,jp,e)},Up=k("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`color${B(o.color)}`]]}})(W(({theme:t})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:t.transitions.create("transform")}},{props:{variant:"indeterminate"},style:Dp||{animation:`${_n} 1.4s linear infinite`}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}}))]}))),Hp=k("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(t,e)=>e.svg})({display:"block"}),Vp=k("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.circle,e[`circle${B(o.variant)}`],o.disableShrink&&e.circleDisableShrink]}})(W(({theme:t})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:t.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:e})=>e.variant==="indeterminate"&&!e.disableShrink,style:Fp||{animation:`${Yn} 1.4s ease-in-out infinite`}}]}))),wi=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCircularProgress"}),{className:n,color:s="primary",disableShrink:a=!1,size:i=40,style:l,thickness:c=3.6,value:p=0,variant:u="indeterminate",...m}=r,g={...r,color:s,disableShrink:a,size:i,thickness:c,value:p,variant:u},b=Wp(g),v={},h={},y={};if(u==="determinate"){const S=2*Math.PI*((uo-c)/2);v.strokeDasharray=S.toFixed(3),y["aria-valuenow"]=Math.round(p),v.strokeDashoffset=`${((100-p)/100*S).toFixed(3)}px`,h.transform="rotate(-90deg)"}return f.jsx(Up,{className:j(b.root,n),style:{width:i,height:i,...h,...l},ownerState:g,ref:o,role:"progressbar",...y,...m,children:f.jsx(Hp,{className:b.svg,ownerState:g,viewBox:`${uo/2} ${uo/2} ${uo} ${uo}`,children:f.jsx(Vp,{className:b.circle,style:v,ownerState:g,cx:uo,cy:uo,r:(uo-c)/2,fill:"none",strokeWidth:c})})})});function Gp(t){return V("MuiIconButton",t)}const Xs=K("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge","loading","loadingIndicator","loadingWrapper"]),Kp=t=>{const{classes:e,disabled:o,color:r,edge:n,size:s,loading:a}=t,i={root:["root",a&&"loading",o&&"disabled",r!=="default"&&`color${B(r)}`,n&&`edge${B(n)}`,`size${B(s)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]};return G(i,Gp,e)},qp=k(ue,{name:"MuiIconButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.loading&&e.loading,o.color!=="default"&&e[`color${B(o.color)}`],o.edge&&e[`edge${B(o.edge)}`],e[`size${B(o.size)}`]]}})(W(({theme:t})=>({textAlign:"center",flex:"0 0 auto",fontSize:t.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(t.vars||t).palette.action.active,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),variants:[{props:e=>!e.disableRipple,style:{"--IconButton-hoverBg":t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),W(({theme:t})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}})),...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{"--IconButton-hoverBg":t.vars?`rgba(${(t.vars||t).palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt((t.vars||t).palette[e].main,t.palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:t.typography.pxToRem(28)}}],[`&.${Xs.disabled}`]:{backgroundColor:"transparent",color:(t.vars||t).palette.action.disabled},[`&.${Xs.loading}`]:{color:"transparent"}}))),Xp=k("span",{name:"MuiIconButton",slot:"LoadingIndicator",overridesResolver:(t,e)=>e.loadingIndicator})(({theme:t})=>({display:"none",position:"absolute",visibility:"visible",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:(t.vars||t).palette.action.disabled,variants:[{props:{loading:!0},style:{display:"flex"}}]})),ko=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiIconButton"}),{edge:n=!1,children:s,className:a,color:i="default",disabled:l=!1,disableFocusRipple:c=!1,size:p="medium",id:u,loading:m=null,loadingIndicator:g,...b}=r,v=De(u),h=g??f.jsx(wi,{"aria-labelledby":v,color:"inherit",size:16}),y={...r,edge:n,color:i,disabled:l,disableFocusRipple:c,loading:m,loadingIndicator:h,size:p},S=Kp(y);return f.jsxs(qp,{id:m?v:u,className:j(S.root,a),centerRipple:!0,focusRipple:!c,disabled:l||m,ref:o,...b,ownerState:y,children:[typeof m=="boolean"&&f.jsx("span",{className:S.loadingWrapper,style:{display:"contents"},children:f.jsx(Xp,{className:S.loadingIndicator,ownerState:y,children:m&&h})}),s]})}),_p=Qt(f.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),Yp=Qt(f.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),Zp=Qt(f.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),Qp=Qt(f.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),Ri=Qt(f.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),Jp=t=>{const{variant:e,color:o,severity:r,classes:n}=t,s={root:["root",`color${B(o||r)}`,`${e}${B(o||r)}`,`${e}`],icon:["icon"],message:["message"],action:["action"]};return G(s,zp,n)},td=k(Ue,{name:"MuiAlert",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`${o.variant}${B(o.color||o.severity)}`]]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?Ao:Bo,o=t.palette.mode==="light"?Bo:Ao;return{...t.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(t.palette).filter(jt(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),backgroundColor:t.vars?t.vars.palette.Alert[`${r}StandardBg`]:o(t.palette[r].light,.9),[`& .${qs.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(jt(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),border:`1px solid ${(t.vars||t).palette[r].light}`,[`& .${qs.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(jt(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:t.typography.fontWeightMedium,...t.vars?{color:t.vars.palette.Alert[`${r}FilledColor`],backgroundColor:t.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:t.palette.mode==="dark"?t.palette[r].dark:t.palette[r].main,color:t.palette.getContrastText(t.palette[r].main)}}}))]}})),ed=k("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(t,e)=>e.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),od=k("div",{name:"MuiAlert",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),rd=k("div",{name:"MuiAlert",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),_s={success:f.jsx(_p,{fontSize:"inherit"}),warning:f.jsx(Yp,{fontSize:"inherit"}),error:f.jsx(Zp,{fontSize:"inherit"}),info:f.jsx(Qp,{fontSize:"inherit"})},FS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAlert"}),{action:n,children:s,className:a,closeText:i="Close",color:l,components:c={},componentsProps:p={},icon:u,iconMapping:m=_s,onClose:g,role:b="alert",severity:v="success",slotProps:h={},slots:y={},variant:S="standard",...C}=r,x={...r,color:l,severity:v,variant:S,colorSeverity:l||v},w=Jp(x),P={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...y},slotProps:{...p,...h}},[$,I]=Q("root",{ref:o,shouldForwardComponentProp:!0,className:j(w.root,a),elementType:td,externalForwardedProps:{...P,...C},ownerState:x,additionalProps:{role:b,elevation:0}}),[A,T]=Q("icon",{className:w.icon,elementType:ed,externalForwardedProps:P,ownerState:x}),[z,E]=Q("message",{className:w.message,elementType:od,externalForwardedProps:P,ownerState:x}),[R,M]=Q("action",{className:w.action,elementType:rd,externalForwardedProps:P,ownerState:x}),[O,L]=Q("closeButton",{elementType:ko,externalForwardedProps:P,ownerState:x}),[F,D]=Q("closeIcon",{elementType:Ri,externalForwardedProps:P,ownerState:x});return f.jsxs($,{...I,children:[u!==!1?f.jsx(A,{...T,children:u||m[v]||_s[v]}):null,f.jsx(z,{...E,children:s}),n!=null?f.jsx(R,{...M,children:n}):null,n==null&&g?f.jsx(R,{...M,children:f.jsx(O,{size:"small","aria-label":i,title:i,color:"inherit",onClick:g,...L,children:f.jsx(F,{fontSize:"small",...D})})}):null]})});function nd(t){return V("MuiTypography",t)}const nn=K("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]),sd={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},ad=Vc(),id=t=>{const{align:e,gutterBottom:o,noWrap:r,paragraph:n,variant:s,classes:a}=t,i={root:["root",s,t.align!=="inherit"&&`align${B(e)}`,o&&"gutterBottom",r&&"noWrap",n&&"paragraph"]};return G(i,nd,a)},ld=k("span",{name:"MuiTypography",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.variant&&e[o.variant],o.align!=="inherit"&&e[`align${B(o.align)}`],o.noWrap&&e.noWrap,o.gutterBottom&&e.gutterBottom,o.paragraph&&e.paragraph]}})(W(({theme:t})=>{var e;return{margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(t.typography).filter(([o,r])=>o!=="inherit"&&r&&typeof r=="object").map(([o,r])=>({props:{variant:o},style:r})),...Object.entries(t.palette).filter(jt()).map(([o])=>({props:{color:o},style:{color:(t.vars||t).palette[o].main}})),...Object.entries(((e=t.palette)==null?void 0:e.text)||{}).filter(([,o])=>typeof o=="string").map(([o])=>({props:{color:`text${B(o)}`},style:{color:(t.vars||t).palette.text[o]}})),{props:({ownerState:o})=>o.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:o})=>o.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:o})=>o.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:o})=>o.paragraph,style:{marginBottom:16}}]}})),Ys={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},he=d.forwardRef(function(e,o){const{color:r,...n}=_({props:e,name:"MuiTypography"}),s=!sd[r],a=ad({...n,...s&&{color:r}}),{align:i="inherit",className:l,component:c,gutterBottom:p=!1,noWrap:u=!1,paragraph:m=!1,variant:g="body1",variantMapping:b=Ys,...v}=a,h={...a,align:i,color:r,className:l,component:c,gutterBottom:p,noWrap:u,paragraph:m,variant:g,variantMapping:b},y=c||(m?"p":b[g]||Ys[g])||"span",S=id(h);return f.jsx(ld,{as:y,ref:o,className:j(S.root,l),...v,ownerState:h,style:{...i!=="inherit"&&{"--Typography-textAlign":i},...v.style}})});function cd(t){return V("MuiAlertTitle",t)}const WS=K("MuiAlertTitle",["root"]),pd=t=>{const{classes:e}=t;return G({root:["root"]},cd,e)},dd=k(he,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({fontWeight:t.typography.fontWeightMedium,marginTop:-2}))),US=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAlertTitle"}),{className:n,...s}=r,a=r,i=pd(a);return f.jsx(dd,{gutterBottom:!0,component:"div",ownerState:a,ref:o,className:j(i.root,n),...s})});function ud(t){return V("MuiAppBar",t)}const HS=K("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]),fd=t=>{const{color:e,position:o,classes:r}=t,n={root:["root",`color${B(e)}`,`position${B(o)}`]};return G(n,ud,r)},Zs=(t,e)=>t?`${t==null?void 0:t.replace(")","")}, ${e})`:e,gd=k(Ue,{name:"MuiAppBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`],e[`color${B(o.color)}`]]}})(W(({theme:t})=>({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit"}},{props:{color:"default"},style:{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[100],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[100]),...t.applyStyles("dark",{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[900],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[900])})}},...Object.entries(t.palette).filter(jt(["contrastText"])).map(([e])=>({props:{color:e},style:{"--AppBar-background":(t.vars??t).palette[e].main,"--AppBar-color":(t.vars??t).palette[e].contrastText}})),{props:e=>e.enableColorOnDark===!0&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:e=>e.enableColorOnDark===!1&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundColor:t.vars?Zs(t.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:t.vars?Zs(t.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundImage:"none"})}}]}))),VS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAppBar"}),{className:n,color:s="primary",enableColorOnDark:a=!1,position:i="fixed",...l}=r,c={...r,color:s,position:i,enableColorOnDark:a},p=fd(c);return f.jsx(gd,{square:!0,component:"header",ownerState:c,elevation:4,className:j(p.root,n,i==="fixed"&&"mui-fixed"),ref:o,...l})});function Qs(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function md(t={}){const{ignoreAccents:e=!0,ignoreCase:o=!0,limit:r,matchFrom:n="any",stringify:s,trim:a=!1}=t;return(i,{inputValue:l,getOptionLabel:c})=>{let p=a?l.trim():l;o&&(p=p.toLowerCase()),e&&(p=Qs(p));const u=p?i.filter(m=>{let g=(s||c)(m);return o&&(g=g.toLowerCase()),e&&(g=Qs(g)),n==="start"?g.startsWith(p):g.includes(p)}):i;return typeof r=="number"?u.slice(0,r):u}}const bd=md(),Js=5,vd=t=>{var e;return t.current!==null&&((e=t.current.parentElement)==null?void 0:e.contains(document.activeElement))},hd=[];function ta(t,e,o){if(e||t==null)return"";const r=o(t);return typeof r=="string"?r:""}function yd(t){const{unstable_isActiveElementInListbox:e=vd,unstable_classNamePrefix:o="Mui",autoComplete:r=!1,autoHighlight:n=!1,autoSelect:s=!1,blurOnSelect:a=!1,clearOnBlur:i=!t.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:p=t.multiple?hd:null,disableClearable:u=!1,disableCloseOnSelect:m=!1,disabled:g,disabledItemsFocusable:b=!1,disableListWrap:v=!1,filterOptions:h=bd,filterSelectedOptions:y=!1,freeSolo:S=!1,getOptionDisabled:C,getOptionKey:x,getOptionLabel:w=X=>X.label??X,groupBy:P,handleHomeEndKeys:$=!t.freeSolo,id:I,includeInputInList:A=!1,inputValue:T,isOptionEqualToValue:z=(X,H)=>X===H,multiple:E=!1,onChange:R,onClose:M,onHighlightChange:O,onInputChange:L,onOpen:F,open:D,openOnFocus:N=!1,options:J,readOnly:U=!1,selectOnFocus:wt=!t.freeSolo,value:vt}=t,mt=De(I);let et=w;et=X=>{const H=w(X);return typeof H!="string"?String(H):H};const rt=d.useRef(!1),Y=d.useRef(!0),at=d.useRef(null),ct=d.useRef(null),[st,ft]=d.useState(null),[Z,pt]=d.useState(-1),it=n?0:-1,ht=d.useRef(it),Mt=d.useRef(ta(p??vt,E,et)).current,[tt,ot]=Te({controlled:vt,default:p,name:c}),[dt,St]=Te({controlled:T,default:Mt,name:c,state:"inputValue"}),[gt,nt]=d.useState(!1),Tt=d.useCallback((X,H,Rt)=>{if(!(E?tt.length!(y&&(E?tt:[tt]).some(H=>H!==null&&z(X,H)))),{inputValue:$t&<?"":dt,getOptionLabel:et}):[],Ct=ms({filteredOptions:ut,value:tt,inputValue:dt});d.useEffect(()=>{const X=tt!==Ct.value;gt&&!X||S&&!X||Tt(null,tt,"reset")},[tt,Tt,gt,Ct.value,S]);const Ut=At&&ut.length>0&&!U,Et=ee(X=>{X===-1?at.current.focus():st.querySelector(`[data-tag-index="${X}"]`).focus()});d.useEffect(()=>{E&&Z>tt.length-1&&(pt(-1),Et(-1))},[tt,E,Z,Et]);function Gt(X,H){if(!ct.current||X<0||X>=ut.length)return-1;let Rt=X;for(;;){const Ot=ct.current.querySelector(`[data-option-index="${Rt}"]`),Ht=b?!1:!Ot||Ot.disabled||Ot.getAttribute("aria-disabled")==="true";if(Ot&&Ot.hasAttribute("tabindex")&&!Ht)return Rt;if(H==="next"?Rt=(Rt+1)%ut.length:Rt=(Rt-1+ut.length)%ut.length,Rt===X)return-1}}const xt=ee(({event:X,index:H,reason:Rt})=>{if(ht.current=H,H===-1?at.current.removeAttribute("aria-activedescendant"):at.current.setAttribute("aria-activedescendant",`${mt}-option-${H}`),O&&["mouse","keyboard","touch"].includes(Rt)&&O(X,H===-1?null:ut[H],Rt),!ct.current)return;const Ot=ct.current.querySelector(`[role="option"].${o}-focused`);Ot&&(Ot.classList.remove(`${o}-focused`),Ot.classList.remove(`${o}-focusVisible`));let Ht=ct.current;if(ct.current.getAttribute("role")!=="listbox"&&(Ht=ct.current.parentElement.querySelector('[role="listbox"]')),!Ht)return;if(H===-1){Ht.scrollTop=0;return}const Yt=ct.current.querySelector(`[data-option-index="${H}"]`);if(Yt&&(Yt.classList.add(`${o}-focused`),Rt==="keyboard"&&Yt.classList.add(`${o}-focusVisible`),Ht.scrollHeight>Ht.clientHeight&&Rt!=="mouse"&&Rt!=="touch")){const se=Yt,Ae=Ht.clientHeight+Ht.scrollTop,Pn=se.offsetTop+se.offsetHeight;Pn>Ae?Ht.scrollTop=Pn-Ht.clientHeight:se.offsetTop-se.offsetHeight*(P?1.3:0){if(!It)return;const Yt=Gt((()=>{const se=ut.length-1;if(H==="reset")return it;if(H==="start")return 0;if(H==="end")return se;const Ae=ht.current+H;return Ae<0?Ae===-1&&A?-1:v&&ht.current!==-1||Math.abs(H)>1?0:se:Ae>se?Ae===se+1&&A?-1:v||Math.abs(H)>1?se:0:Ae})(),Rt);if(xt({index:Yt,reason:Ot,event:X}),r&&H!=="reset")if(Yt===-1)at.current.value=dt;else{const se=et(ut[Yt]);at.current.value=se,se.toLowerCase().indexOf(dt.toLowerCase())===0&&dt.length>0&&at.current.setSelectionRange(dt.length,se.length)}}),Xt=()=>{const X=(H,Rt)=>{const Ot=H?et(H):"",Ht=Rt?et(Rt):"";return Ot===Ht};if(ht.current!==-1&&Ct.filteredOptions&&Ct.filteredOptions.length!==ut.length&&Ct.inputValue===dt&&(E?tt.length===Ct.value.length&&Ct.value.every((H,Rt)=>et(tt[Rt])===et(H)):X(Ct.value,tt))){const H=Ct.filteredOptions[ht.current];if(H)return ut.findIndex(Rt=>et(Rt)===et(H))}return-1},oe=d.useCallback(()=>{if(!It)return;const X=Xt();if(X!==-1){ht.current=X;return}const H=E?tt[0]:tt;if(ut.length===0||H==null){Bt({diff:"reset"});return}if(ct.current){if(H!=null){const Rt=ut[ht.current];if(E&&Rt&&tt.findIndex(Ht=>z(Rt,Ht))!==-1)return;const Ot=ut.findIndex(Ht=>z(Ht,H));Ot===-1?Bt({diff:"reset"}):xt({index:Ot});return}if(ht.current>=ut.length-1){xt({index:ut.length-1});return}xt({index:ht.current})}},[ut.length,E?!1:tt,y,Bt,xt,It,dt,E]),fe=ee(X=>{Kn(ct,X),X&&oe()});d.useEffect(()=>{oe()},[oe]);const ie=X=>{At||(q(!0),bt(!0),F&&F(X))},Pe=(X,H)=>{At&&(q(!1),M&&M(X,H))},Vt=(X,H,Rt,Ot)=>{if(E){if(tt.length===H.length&&tt.every((Ht,Yt)=>Ht===H[Yt]))return}else if(tt===H)return;R&&R(X,H,Rt,Ot),ot(H)},_t=d.useRef(!1),ce=(X,H,Rt="selectOption",Ot="options")=>{let Ht=Rt,Yt=H;if(E){Yt=Array.isArray(tt)?tt.slice():[];const se=Yt.findIndex(Ae=>z(H,Ae));se===-1?Yt.push(H):Ot!=="freeSolo"&&(Yt.splice(se,1),Ht="removeOption")}Tt(X,Yt,Ht),Vt(X,Yt,Ht,{option:H}),!m&&(!X||!X.ctrlKey&&!X.metaKey)&&Pe(X,Ht),(a===!0||a==="touch"&&_t.current||a==="mouse"&&!_t.current)&&at.current.blur()};function $e(X,H){if(X===-1)return-1;let Rt=X;for(;;){if(H==="next"&&Rt===tt.length||H==="previous"&&Rt===-1)return-1;const Ot=st.querySelector(`[data-tag-index="${Rt}"]`);if(!Ot||!Ot.hasAttribute("tabindex")||Ot.disabled||Ot.getAttribute("aria-disabled")==="true")Rt+=H==="next"?1:-1;else return Rt}}const pe=(X,H)=>{if(!E)return;dt===""&&Pe(X,"toggleInput");let Rt=Z;Z===-1?dt===""&&H==="previous"&&(Rt=tt.length-1):(Rt+=H==="next"?1:-1,Rt<0&&(Rt=0),Rt===tt.length&&(Rt=-1)),Rt=$e(Rt,H),pt(Rt),Et(Rt)},Lt=X=>{rt.current=!0,St(""),L&&L(X,"","clear"),Vt(X,E?[]:null,"clear")},ge=X=>H=>{if(X.onKeyDown&&X.onKeyDown(H),!H.defaultMuiPrevented&&(Z!==-1&&!["ArrowLeft","ArrowRight"].includes(H.key)&&(pt(-1),Et(-1)),H.which!==229))switch(H.key){case"Home":It&&$&&(H.preventDefault(),Bt({diff:"start",direction:"next",reason:"keyboard",event:H}));break;case"End":It&&$&&(H.preventDefault(),Bt({diff:"end",direction:"previous",reason:"keyboard",event:H}));break;case"PageUp":H.preventDefault(),Bt({diff:-Js,direction:"previous",reason:"keyboard",event:H}),ie(H);break;case"PageDown":H.preventDefault(),Bt({diff:Js,direction:"next",reason:"keyboard",event:H}),ie(H);break;case"ArrowDown":H.preventDefault(),Bt({diff:1,direction:"next",reason:"keyboard",event:H}),ie(H);break;case"ArrowUp":H.preventDefault(),Bt({diff:-1,direction:"previous",reason:"keyboard",event:H}),ie(H);break;case"ArrowLeft":pe(H,"previous");break;case"ArrowRight":pe(H,"next");break;case"Enter":if(ht.current!==-1&&It){const Rt=ut[ht.current],Ot=C?C(Rt):!1;if(H.preventDefault(),Ot)return;ce(H,Rt,"selectOption"),r&&at.current.setSelectionRange(at.current.value.length,at.current.value.length)}else S&&dt!==""&&$t===!1&&(E&&H.preventDefault(),ce(H,dt,"createOption","freeSolo"));break;case"Escape":It?(H.preventDefault(),H.stopPropagation(),Pe(H,"escape")):l&&(dt!==""||E&&tt.length>0)&&(H.preventDefault(),H.stopPropagation(),Lt(H));break;case"Backspace":if(E&&!U&&dt===""&&tt.length>0){const Rt=Z===-1?tt.length-1:Z,Ot=tt.slice();Ot.splice(Rt,1),Vt(H,Ot,"removeOption",{option:tt[Rt]})}break;case"Delete":if(E&&!U&&dt===""&&tt.length>0&&Z!==-1){const Rt=Z,Ot=tt.slice();Ot.splice(Rt,1),Vt(H,Ot,"removeOption",{option:tt[Rt]})}break}},yt=X=>{nt(!0),N&&!rt.current&&ie(X)},Pt=X=>{if(e(ct)){at.current.focus();return}nt(!1),Y.current=!0,rt.current=!1,s&&ht.current!==-1&&It?ce(X,ut[ht.current],"blur"):s&&S&&dt!==""?ce(X,dt,"blur","freeSolo"):i&&Tt(X,tt,"blur"),Pe(X,"blur")},Dt=X=>{const H=X.target.value;dt!==H&&(St(H),bt(!1),L&&L(X,H,"input")),H===""?!u&&!E&&Vt(X,null,"clear"):ie(X)},Ft=X=>{const H=Number(X.currentTarget.getAttribute("data-option-index"));ht.current!==H&&xt({event:X,index:H,reason:"mouse"})},Zt=X=>{xt({event:X,index:Number(X.currentTarget.getAttribute("data-option-index")),reason:"touch"}),_t.current=!0},Se=X=>{const H=Number(X.currentTarget.getAttribute("data-option-index"));ce(X,ut[H],"selectOption"),_t.current=!1},Ve=X=>H=>{const Rt=tt.slice();Rt.splice(X,1),Vt(H,Rt,"removeOption",{option:tt[X]})},to=X=>{At?Pe(X,"toggleInput"):ie(X)},co=X=>{X.currentTarget.contains(X.target)&&X.target.getAttribute("id")!==mt&&X.preventDefault()},ne=X=>{X.currentTarget.contains(X.target)&&(at.current.focus(),wt&&Y.current&&at.current.selectionEnd-at.current.selectionStart===0&&at.current.select(),Y.current=!1)},de=X=>{!g&&(dt===""||!At)&&to(X)};let qe=S&&dt.length>0;qe=qe||(E?tt.length>0:tt!==null);let Mr=ut;return P&&(Mr=ut.reduce((X,H,Rt)=>{const Ot=P(H);return X.length>0&&X[X.length-1].group===Ot?X[X.length-1].options.push(H):X.push({key:Rt,index:Rt,group:Ot,options:[H]}),X},[])),g&>&&Pt(),{getRootProps:(X={})=>({...X,onKeyDown:ge(X),onMouseDown:co,onClick:ne}),getInputLabelProps:()=>({id:`${mt}-label`,htmlFor:mt}),getInputProps:()=>({id:mt,value:dt,onBlur:Pt,onFocus:yt,onChange:Dt,onMouseDown:de,"aria-activedescendant":It?"":null,"aria-autocomplete":r?"both":"list","aria-controls":Ut?`${mt}-listbox`:void 0,"aria-expanded":Ut,autoComplete:"off",ref:at,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:g}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:Lt}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:to}),getTagProps:({index:X})=>({key:X,"data-tag-index":X,tabIndex:-1,...!U&&{onDelete:Ve(X)}}),getListboxProps:()=>({role:"listbox",id:`${mt}-listbox`,"aria-labelledby":`${mt}-label`,ref:fe,onMouseDown:X=>{X.preventDefault()}}),getOptionProps:({index:X,option:H})=>{const Rt=(E?tt:[tt]).some(Ht=>Ht!=null&&z(H,Ht)),Ot=C?C(H):!1;return{key:(x==null?void 0:x(H))??et(H),tabIndex:-1,role:"option",id:`${mt}-option-${X}`,onMouseMove:Ft,onClick:Se,onTouchStart:Zt,"data-option-index":X,"aria-disabled":Ot,"aria-selected":Rt}},id:mt,inputValue:dt,value:tt,dirty:qe,expanded:It&&st,popupOpen:It,focused:gt||Z!==-1,anchorEl:st,setAnchorEl:ft,focusedTag:Z,groupedOptions:Mr}}var we="top",Fe="bottom",We="right",Re="left",ys="auto",kr=[we,Fe,We,Re],Ko="start",yr="end",xd="clippingParents",Pi="viewport",Jo="popper",Cd="reference",ea=kr.reduce(function(t,e){return t.concat([e+"-"+Ko,e+"-"+yr])},[]),$i=[].concat(kr,[ys]).reduce(function(t,e){return t.concat([e,e+"-"+Ko,e+"-"+yr])},[]),Sd="beforeRead",wd="read",Rd="afterRead",Pd="beforeMain",$d="main",kd="afterMain",Id="beforeWrite",Td="write",Md="afterWrite",Ld=[Sd,wd,Rd,Pd,$d,kd,Id,Td,Md];function Qe(t){return t?(t.nodeName||"").toLowerCase():null}function Me(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Eo(t){var e=Me(t).Element;return t instanceof e||t instanceof Element}function ze(t){var e=Me(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function xs(t){if(typeof ShadowRoot>"u")return!1;var e=Me(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Ad(t){var e=t.state;Object.keys(e.elements).forEach(function(o){var r=e.styles[o]||{},n=e.attributes[o]||{},s=e.elements[o];!ze(s)||!Qe(s)||(Object.assign(s.style,r),Object.keys(n).forEach(function(a){var i=n[a];i===!1?s.removeAttribute(a):s.setAttribute(a,i===!0?"":i)}))})}function Bd(t){var e=t.state,o={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,o.popper),e.styles=o,e.elements.arrow&&Object.assign(e.elements.arrow.style,o.arrow),function(){Object.keys(e.elements).forEach(function(r){var n=e.elements[r],s=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:o[r]),i=a.reduce(function(l,c){return l[c]="",l},{});!ze(n)||!Qe(n)||(Object.assign(n.style,i),Object.keys(s).forEach(function(l){n.removeAttribute(l)}))})}}const Ed={name:"applyStyles",enabled:!0,phase:"write",fn:Ad,effect:Bd,requires:["computeStyles"]};function Ye(t){return t.split("-")[0]}var Lo=Math.max,sn=Math.min,qo=Math.round;function Zn(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function ki(){return!/^((?!chrome|android).)*safari/i.test(Zn())}function Xo(t,e,o){e===void 0&&(e=!1),o===void 0&&(o=!1);var r=t.getBoundingClientRect(),n=1,s=1;e&&ze(t)&&(n=t.offsetWidth>0&&qo(r.width)/t.offsetWidth||1,s=t.offsetHeight>0&&qo(r.height)/t.offsetHeight||1);var a=Eo(t)?Me(t):window,i=a.visualViewport,l=!ki()&&o,c=(r.left+(l&&i?i.offsetLeft:0))/n,p=(r.top+(l&&i?i.offsetTop:0))/s,u=r.width/n,m=r.height/s;return{width:u,height:m,top:p,right:c+u,bottom:p+m,left:c,x:c,y:p}}function Cs(t){var e=Xo(t),o=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-o)<=1&&(o=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:o,height:r}}function Ii(t,e){var o=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(o&&xs(o)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ao(t){return Me(t).getComputedStyle(t)}function Od(t){return["table","td","th"].indexOf(Qe(t))>=0}function xo(t){return((Eo(t)?t.ownerDocument:t.document)||window.document).documentElement}function bn(t){return Qe(t)==="html"?t:t.assignedSlot||t.parentNode||(xs(t)?t.host:null)||xo(t)}function oa(t){return!ze(t)||ao(t).position==="fixed"?null:t.offsetParent}function Nd(t){var e=/firefox/i.test(Zn()),o=/Trident/i.test(Zn());if(o&&ze(t)){var r=ao(t);if(r.position==="fixed")return null}var n=bn(t);for(xs(n)&&(n=n.host);ze(n)&&["html","body"].indexOf(Qe(n))<0;){var s=ao(n);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return n;n=n.parentNode}return null}function Ir(t){for(var e=Me(t),o=oa(t);o&&Od(o)&&ao(o).position==="static";)o=oa(o);return o&&(Qe(o)==="html"||Qe(o)==="body"&&ao(o).position==="static")?e:o||Nd(t)||e}function Ss(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function ur(t,e,o){return Lo(t,sn(e,o))}function zd(t,e,o){var r=ur(t,e,o);return r>o?o:r}function Ti(){return{top:0,right:0,bottom:0,left:0}}function Mi(t){return Object.assign({},Ti(),t)}function Li(t,e){return e.reduce(function(o,r){return o[r]=t,o},{})}var jd=function(e,o){return e=typeof e=="function"?e(Object.assign({},o.rects,{placement:o.placement})):e,Mi(typeof e!="number"?e:Li(e,kr))};function Dd(t){var e,o=t.state,r=t.name,n=t.options,s=o.elements.arrow,a=o.modifiersData.popperOffsets,i=Ye(o.placement),l=Ss(i),c=[Re,We].indexOf(i)>=0,p=c?"height":"width";if(!(!s||!a)){var u=jd(n.padding,o),m=Cs(s),g=l==="y"?we:Re,b=l==="y"?Fe:We,v=o.rects.reference[p]+o.rects.reference[l]-a[l]-o.rects.popper[p],h=a[l]-o.rects.reference[l],y=Ir(s),S=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,C=v/2-h/2,x=u[g],w=S-m[p]-u[b],P=S/2-m[p]/2+C,$=ur(x,P,w),I=l;o.modifiersData[r]=(e={},e[I]=$,e.centerOffset=$-P,e)}}function Fd(t){var e=t.state,o=t.options,r=o.element,n=r===void 0?"[data-popper-arrow]":r;n!=null&&(typeof n=="string"&&(n=e.elements.popper.querySelector(n),!n)||Ii(e.elements.popper,n)&&(e.elements.arrow=n))}const Wd={name:"arrow",enabled:!0,phase:"main",fn:Dd,effect:Fd,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function _o(t){return t.split("-")[1]}var Ud={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Hd(t,e){var o=t.x,r=t.y,n=e.devicePixelRatio||1;return{x:qo(o*n)/n||0,y:qo(r*n)/n||0}}function ra(t){var e,o=t.popper,r=t.popperRect,n=t.placement,s=t.variation,a=t.offsets,i=t.position,l=t.gpuAcceleration,c=t.adaptive,p=t.roundOffsets,u=t.isFixed,m=a.x,g=m===void 0?0:m,b=a.y,v=b===void 0?0:b,h=typeof p=="function"?p({x:g,y:v}):{x:g,y:v};g=h.x,v=h.y;var y=a.hasOwnProperty("x"),S=a.hasOwnProperty("y"),C=Re,x=we,w=window;if(c){var P=Ir(o),$="clientHeight",I="clientWidth";if(P===Me(o)&&(P=xo(o),ao(P).position!=="static"&&i==="absolute"&&($="scrollHeight",I="scrollWidth")),P=P,n===we||(n===Re||n===We)&&s===yr){x=Fe;var A=u&&P===w&&w.visualViewport?w.visualViewport.height:P[$];v-=A-r.height,v*=l?1:-1}if(n===Re||(n===we||n===Fe)&&s===yr){C=We;var T=u&&P===w&&w.visualViewport?w.visualViewport.width:P[I];g-=T-r.width,g*=l?1:-1}}var z=Object.assign({position:i},c&&Ud),E=p===!0?Hd({x:g,y:v},Me(o)):{x:g,y:v};if(g=E.x,v=E.y,l){var R;return Object.assign({},z,(R={},R[x]=S?"0":"",R[C]=y?"0":"",R.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+v+"px)":"translate3d("+g+"px, "+v+"px, 0)",R))}return Object.assign({},z,(e={},e[x]=S?v+"px":"",e[C]=y?g+"px":"",e.transform="",e))}function Vd(t){var e=t.state,o=t.options,r=o.gpuAcceleration,n=r===void 0?!0:r,s=o.adaptive,a=s===void 0?!0:s,i=o.roundOffsets,l=i===void 0?!0:i,c={placement:Ye(e.placement),variation:_o(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,ra(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,ra(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Gd={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Vd,data:{}};var Nr={passive:!0};function Kd(t){var e=t.state,o=t.instance,r=t.options,n=r.scroll,s=n===void 0?!0:n,a=r.resize,i=a===void 0?!0:a,l=Me(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&c.forEach(function(p){p.addEventListener("scroll",o.update,Nr)}),i&&l.addEventListener("resize",o.update,Nr),function(){s&&c.forEach(function(p){p.removeEventListener("scroll",o.update,Nr)}),i&&l.removeEventListener("resize",o.update,Nr)}}const qd={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Kd,data:{}};var Xd={left:"right",right:"left",bottom:"top",top:"bottom"};function Qr(t){return t.replace(/left|right|bottom|top/g,function(e){return Xd[e]})}var _d={start:"end",end:"start"};function na(t){return t.replace(/start|end/g,function(e){return _d[e]})}function ws(t){var e=Me(t),o=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:o,scrollTop:r}}function Rs(t){return Xo(xo(t)).left+ws(t).scrollLeft}function Yd(t,e){var o=Me(t),r=xo(t),n=o.visualViewport,s=r.clientWidth,a=r.clientHeight,i=0,l=0;if(n){s=n.width,a=n.height;var c=ki();(c||!c&&e==="fixed")&&(i=n.offsetLeft,l=n.offsetTop)}return{width:s,height:a,x:i+Rs(t),y:l}}function Zd(t){var e,o=xo(t),r=ws(t),n=(e=t.ownerDocument)==null?void 0:e.body,s=Lo(o.scrollWidth,o.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),a=Lo(o.scrollHeight,o.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),i=-r.scrollLeft+Rs(t),l=-r.scrollTop;return ao(n||o).direction==="rtl"&&(i+=Lo(o.clientWidth,n?n.clientWidth:0)-s),{width:s,height:a,x:i,y:l}}function Ps(t){var e=ao(t),o=e.overflow,r=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(o+n+r)}function Ai(t){return["html","body","#document"].indexOf(Qe(t))>=0?t.ownerDocument.body:ze(t)&&Ps(t)?t:Ai(bn(t))}function fr(t,e){var o;e===void 0&&(e=[]);var r=Ai(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),s=Me(r),a=n?[s].concat(s.visualViewport||[],Ps(r)?r:[]):r,i=e.concat(a);return n?i:i.concat(fr(bn(a)))}function Qn(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Qd(t,e){var o=Xo(t,!1,e==="fixed");return o.top=o.top+t.clientTop,o.left=o.left+t.clientLeft,o.bottom=o.top+t.clientHeight,o.right=o.left+t.clientWidth,o.width=t.clientWidth,o.height=t.clientHeight,o.x=o.left,o.y=o.top,o}function sa(t,e,o){return e===Pi?Qn(Yd(t,o)):Eo(e)?Qd(e,o):Qn(Zd(xo(t)))}function Jd(t){var e=fr(bn(t)),o=["absolute","fixed"].indexOf(ao(t).position)>=0,r=o&&ze(t)?Ir(t):t;return Eo(r)?e.filter(function(n){return Eo(n)&&Ii(n,r)&&Qe(n)!=="body"}):[]}function tu(t,e,o,r){var n=e==="clippingParents"?Jd(t):[].concat(e),s=[].concat(n,[o]),a=s[0],i=s.reduce(function(l,c){var p=sa(t,c,r);return l.top=Lo(p.top,l.top),l.right=sn(p.right,l.right),l.bottom=sn(p.bottom,l.bottom),l.left=Lo(p.left,l.left),l},sa(t,a,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function Bi(t){var e=t.reference,o=t.element,r=t.placement,n=r?Ye(r):null,s=r?_o(r):null,a=e.x+e.width/2-o.width/2,i=e.y+e.height/2-o.height/2,l;switch(n){case we:l={x:a,y:e.y-o.height};break;case Fe:l={x:a,y:e.y+e.height};break;case We:l={x:e.x+e.width,y:i};break;case Re:l={x:e.x-o.width,y:i};break;default:l={x:e.x,y:e.y}}var c=n?Ss(n):null;if(c!=null){var p=c==="y"?"height":"width";switch(s){case Ko:l[c]=l[c]-(e[p]/2-o[p]/2);break;case yr:l[c]=l[c]+(e[p]/2-o[p]/2);break}}return l}function xr(t,e){e===void 0&&(e={});var o=e,r=o.placement,n=r===void 0?t.placement:r,s=o.strategy,a=s===void 0?t.strategy:s,i=o.boundary,l=i===void 0?xd:i,c=o.rootBoundary,p=c===void 0?Pi:c,u=o.elementContext,m=u===void 0?Jo:u,g=o.altBoundary,b=g===void 0?!1:g,v=o.padding,h=v===void 0?0:v,y=Mi(typeof h!="number"?h:Li(h,kr)),S=m===Jo?Cd:Jo,C=t.rects.popper,x=t.elements[b?S:m],w=tu(Eo(x)?x:x.contextElement||xo(t.elements.popper),l,p,a),P=Xo(t.elements.reference),$=Bi({reference:P,element:C,placement:n}),I=Qn(Object.assign({},C,$)),A=m===Jo?I:P,T={top:w.top-A.top+y.top,bottom:A.bottom-w.bottom+y.bottom,left:w.left-A.left+y.left,right:A.right-w.right+y.right},z=t.modifiersData.offset;if(m===Jo&&z){var E=z[n];Object.keys(T).forEach(function(R){var M=[We,Fe].indexOf(R)>=0?1:-1,O=[we,Fe].indexOf(R)>=0?"y":"x";T[R]+=E[O]*M})}return T}function eu(t,e){e===void 0&&(e={});var o=e,r=o.placement,n=o.boundary,s=o.rootBoundary,a=o.padding,i=o.flipVariations,l=o.allowedAutoPlacements,c=l===void 0?$i:l,p=_o(r),u=p?i?ea:ea.filter(function(b){return _o(b)===p}):kr,m=u.filter(function(b){return c.indexOf(b)>=0});m.length===0&&(m=u);var g=m.reduce(function(b,v){return b[v]=xr(t,{placement:v,boundary:n,rootBoundary:s,padding:a})[Ye(v)],b},{});return Object.keys(g).sort(function(b,v){return g[b]-g[v]})}function ou(t){if(Ye(t)===ys)return[];var e=Qr(t);return[na(t),e,na(e)]}function ru(t){var e=t.state,o=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var n=o.mainAxis,s=n===void 0?!0:n,a=o.altAxis,i=a===void 0?!0:a,l=o.fallbackPlacements,c=o.padding,p=o.boundary,u=o.rootBoundary,m=o.altBoundary,g=o.flipVariations,b=g===void 0?!0:g,v=o.allowedAutoPlacements,h=e.options.placement,y=Ye(h),S=y===h,C=l||(S||!b?[Qr(h)]:ou(h)),x=[h].concat(C).reduce(function(mt,et){return mt.concat(Ye(et)===ys?eu(e,{placement:et,boundary:p,rootBoundary:u,padding:c,flipVariations:b,allowedAutoPlacements:v}):et)},[]),w=e.rects.reference,P=e.rects.popper,$=new Map,I=!0,A=x[0],T=0;T=0,O=M?"width":"height",L=xr(e,{placement:z,boundary:p,rootBoundary:u,altBoundary:m,padding:c}),F=M?R?We:Re:R?Fe:we;w[O]>P[O]&&(F=Qr(F));var D=Qr(F),N=[];if(s&&N.push(L[E]<=0),i&&N.push(L[F]<=0,L[D]<=0),N.every(function(mt){return mt})){A=z,I=!1;break}$.set(z,N)}if(I)for(var J=b?3:1,U=function(et){var rt=x.find(function(Y){var at=$.get(Y);if(at)return at.slice(0,et).every(function(ct){return ct})});if(rt)return A=rt,"break"},wt=J;wt>0;wt--){var vt=U(wt);if(vt==="break")break}e.placement!==A&&(e.modifiersData[r]._skip=!0,e.placement=A,e.reset=!0)}}const nu={name:"flip",enabled:!0,phase:"main",fn:ru,requiresIfExists:["offset"],data:{_skip:!1}};function aa(t,e,o){return o===void 0&&(o={x:0,y:0}),{top:t.top-e.height-o.y,right:t.right-e.width+o.x,bottom:t.bottom-e.height+o.y,left:t.left-e.width-o.x}}function ia(t){return[we,We,Fe,Re].some(function(e){return t[e]>=0})}function su(t){var e=t.state,o=t.name,r=e.rects.reference,n=e.rects.popper,s=e.modifiersData.preventOverflow,a=xr(e,{elementContext:"reference"}),i=xr(e,{altBoundary:!0}),l=aa(a,r),c=aa(i,n,s),p=ia(l),u=ia(c);e.modifiersData[o]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}const au={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:su};function iu(t,e,o){var r=Ye(t),n=[Re,we].indexOf(r)>=0?-1:1,s=typeof o=="function"?o(Object.assign({},e,{placement:t})):o,a=s[0],i=s[1];return a=a||0,i=(i||0)*n,[Re,We].indexOf(r)>=0?{x:i,y:a}:{x:a,y:i}}function lu(t){var e=t.state,o=t.options,r=t.name,n=o.offset,s=n===void 0?[0,0]:n,a=$i.reduce(function(p,u){return p[u]=iu(u,e.rects,s),p},{}),i=a[e.placement],l=i.x,c=i.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[r]=a}const cu={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:lu};function pu(t){var e=t.state,o=t.name;e.modifiersData[o]=Bi({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const du={name:"popperOffsets",enabled:!0,phase:"read",fn:pu,data:{}};function uu(t){return t==="x"?"y":"x"}function fu(t){var e=t.state,o=t.options,r=t.name,n=o.mainAxis,s=n===void 0?!0:n,a=o.altAxis,i=a===void 0?!1:a,l=o.boundary,c=o.rootBoundary,p=o.altBoundary,u=o.padding,m=o.tether,g=m===void 0?!0:m,b=o.tetherOffset,v=b===void 0?0:b,h=xr(e,{boundary:l,rootBoundary:c,padding:u,altBoundary:p}),y=Ye(e.placement),S=_o(e.placement),C=!S,x=Ss(y),w=uu(x),P=e.modifiersData.popperOffsets,$=e.rects.reference,I=e.rects.popper,A=typeof v=="function"?v(Object.assign({},e.rects,{placement:e.placement})):v,T=typeof A=="number"?{mainAxis:A,altAxis:A}:Object.assign({mainAxis:0,altAxis:0},A),z=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,E={x:0,y:0};if(P){if(s){var R,M=x==="y"?we:Re,O=x==="y"?Fe:We,L=x==="y"?"height":"width",F=P[x],D=F+h[M],N=F-h[O],J=g?-I[L]/2:0,U=S===Ko?$[L]:I[L],wt=S===Ko?-I[L]:-$[L],vt=e.elements.arrow,mt=g&&vt?Cs(vt):{width:0,height:0},et=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Ti(),rt=et[M],Y=et[O],at=ur(0,$[L],mt[L]),ct=C?$[L]/2-J-at-rt-T.mainAxis:U-at-rt-T.mainAxis,st=C?-$[L]/2+J+at+Y+T.mainAxis:wt+at+Y+T.mainAxis,ft=e.elements.arrow&&Ir(e.elements.arrow),Z=ft?x==="y"?ft.clientTop||0:ft.clientLeft||0:0,pt=(R=z==null?void 0:z[x])!=null?R:0,it=F+ct-pt-Z,ht=F+st-pt,Mt=ur(g?sn(D,it):D,F,g?Lo(N,ht):N);P[x]=Mt,E[x]=Mt-F}if(i){var tt,ot=x==="x"?we:Re,dt=x==="x"?Fe:We,St=P[w],gt=w==="y"?"height":"width",nt=St+h[ot],Tt=St-h[dt],At=[we,Re].indexOf(y)!==-1,q=(tt=z==null?void 0:z[w])!=null?tt:0,lt=At?nt:St-$[gt]-I[gt]-q+T.altAxis,bt=At?St+$[gt]+I[gt]-q-T.altAxis:Tt,$t=g&&At?zd(lt,St,bt):ur(g?lt:nt,St,g?bt:Tt);P[w]=$t,E[w]=$t-St}e.modifiersData[r]=E}}const gu={name:"preventOverflow",enabled:!0,phase:"main",fn:fu,requiresIfExists:["offset"]};function mu(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function bu(t){return t===Me(t)||!ze(t)?ws(t):mu(t)}function vu(t){var e=t.getBoundingClientRect(),o=qo(e.width)/t.offsetWidth||1,r=qo(e.height)/t.offsetHeight||1;return o!==1||r!==1}function hu(t,e,o){o===void 0&&(o=!1);var r=ze(e),n=ze(e)&&vu(e),s=xo(e),a=Xo(t,n,o),i={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!o)&&((Qe(e)!=="body"||Ps(s))&&(i=bu(e)),ze(e)?(l=Xo(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=Rs(s))),{x:a.left+i.scrollLeft-l.x,y:a.top+i.scrollTop-l.y,width:a.width,height:a.height}}function yu(t){var e=new Map,o=new Set,r=[];t.forEach(function(s){e.set(s.name,s)});function n(s){o.add(s.name);var a=[].concat(s.requires||[],s.requiresIfExists||[]);a.forEach(function(i){if(!o.has(i)){var l=e.get(i);l&&n(l)}}),r.push(s)}return t.forEach(function(s){o.has(s.name)||n(s)}),r}function xu(t){var e=yu(t);return Ld.reduce(function(o,r){return o.concat(e.filter(function(n){return n.phase===r}))},[])}function Cu(t){var e;return function(){return e||(e=new Promise(function(o){Promise.resolve().then(function(){e=void 0,o(t())})})),e}}function Su(t){var e=t.reduce(function(o,r){var n=o[r.name];return o[r.name]=n?Object.assign({},n,r,{options:Object.assign({},n.options,r.options),data:Object.assign({},n.data,r.data)}):r,o},{});return Object.keys(e).map(function(o){return e[o]})}var la={placement:"bottom",modifiers:[],strategy:"absolute"};function ca(){for(var t=arguments.length,e=new Array(t),o=0;o{s||i($u(n)||document.body)},[n,s]),be(()=>{if(a&&!s)return Kn(o,a),()=>{Kn(o,null)}},[o,a,s]),s){if(d.isValidElement(r)){const c={ref:l};return d.cloneElement(r,c)}return r}return a&&Vn.createPortal(r,a)});function ku(t){return V("MuiPopper",t)}K("MuiPopper",["root"]);function Iu(t,e){if(e==="ltr")return t;switch(t){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return t}}function Jn(t){return typeof t=="function"?t():t}function Tu(t){return t.nodeType!==void 0}const Mu=t=>{const{classes:e}=t;return G({root:["root"]},ku,e)},Lu={},Au=d.forwardRef(function(e,o){const{anchorEl:r,children:n,direction:s,disablePortal:a,modifiers:i,open:l,placement:c,popperOptions:p,popperRef:u,slotProps:m={},slots:g={},TransitionProps:b,ownerState:v,...h}=e,y=d.useRef(null),S=qt(y,o),C=d.useRef(null),x=qt(C,u),w=d.useRef(x);be(()=>{w.current=x},[x]),d.useImperativeHandle(u,()=>C.current,[]);const P=Iu(c,s),[$,I]=d.useState(P),[A,T]=d.useState(Jn(r));d.useEffect(()=>{C.current&&C.current.forceUpdate()}),d.useEffect(()=>{r&&T(Jn(r))},[r]),be(()=>{if(!A||!l)return;const O=D=>{I(D.placement)};let L=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:D})=>{O(D)}}];i!=null&&(L=L.concat(i)),p&&p.modifiers!=null&&(L=L.concat(p.modifiers));const F=Pu(A,y.current,{placement:P,...p,modifiers:L});return w.current(F),()=>{F.destroy(),w.current(null)}},[A,a,i,l,p,P]);const z={placement:$};b!==null&&(z.TransitionProps=b);const E=Mu(e),R=g.root??"div",M=Ce({elementType:R,externalSlotProps:m.root,externalForwardedProps:h,additionalProps:{role:"tooltip",ref:S},ownerState:e,className:E.root});return f.jsx(R,{...M,children:typeof n=="function"?n(z):n})}),Bu=d.forwardRef(function(e,o){const{anchorEl:r,children:n,container:s,direction:a="ltr",disablePortal:i=!1,keepMounted:l=!1,modifiers:c,open:p,placement:u="bottom",popperOptions:m=Lu,popperRef:g,style:b,transition:v=!1,slotProps:h={},slots:y={},...S}=e,[C,x]=d.useState(!0),w=()=>{x(!1)},P=()=>{x(!0)};if(!l&&!p&&(!v||C))return null;let $;if(s)$=s;else if(r){const T=Jn(r);$=T&&Tu(T)?te(T).body:te(null).body}const I=!p&&l&&(!v||C)?"none":void 0,A=v?{in:p,onEnter:w,onExited:P}:void 0;return f.jsx(Ei,{disablePortal:i,container:$,children:f.jsx(Au,{anchorEl:r,direction:a,disablePortal:i,modifiers:c,ref:o,open:v?!C:p,placement:u,popperOptions:m,popperRef:g,slotProps:h,slots:y,...S,style:{position:"fixed",top:0,left:0,display:I,...b},TransitionProps:A,children:n})})}),Eu=k(Bu,{name:"MuiPopper",slot:"Root",overridesResolver:(t,e)=>e.root})({}),vn=d.forwardRef(function(e,o){const r=Ke(),n=_({props:e,name:"MuiPopper"}),{anchorEl:s,component:a,components:i,componentsProps:l,container:c,disablePortal:p,keepMounted:u,modifiers:m,open:g,placement:b,popperOptions:v,popperRef:h,transition:y,slots:S,slotProps:C,...x}=n,w=(S==null?void 0:S.root)??(i==null?void 0:i.Root),P={anchorEl:s,container:c,disablePortal:p,keepMounted:u,modifiers:m,open:g,placement:b,popperOptions:v,popperRef:h,transition:y,...x};return f.jsx(Eu,{as:a,direction:r?"rtl":"ltr",slots:{root:w},slotProps:C??l,...P,ref:o})});function Ou(t){return V("MuiListSubheader",t)}const GS=K("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]),Nu=t=>{const{classes:e,color:o,disableGutters:r,inset:n,disableSticky:s}=t,a={root:["root",o!=="default"&&`color${B(o)}`,!r&&"gutters",n&&"inset",!s&&"sticky"]};return G(a,Ou,e)},zu=k("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="default"&&e[`color${B(o.color)}`],!o.disableGutters&&e.gutters,o.inset&&e.inset,!o.disableSticky&&e.sticky]}})(W(({theme:t})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(t.vars||t).palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(t.vars||t).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:72}},{props:({ownerState:e})=>!e.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(t.vars||t).palette.background.paper}}]}))),ts=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListSubheader"}),{className:n,color:s="default",component:a="li",disableGutters:i=!1,disableSticky:l=!1,inset:c=!1,...p}=r,u={...r,color:s,component:a,disableGutters:i,disableSticky:l,inset:c},m=Nu(u);return f.jsx(zu,{as:a,className:j(m.root,n),ref:o,ownerState:u,...p})});ts&&(ts.muiSkipListHighlight=!0);const ju=Qt(f.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Du(t){return V("MuiChip",t)}const Wt=K("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),Fu=t=>{const{classes:e,disabled:o,size:r,color:n,iconColor:s,onDelete:a,clickable:i,variant:l}=t,c={root:["root",l,o&&"disabled",`size${B(r)}`,`color${B(n)}`,i&&"clickable",i&&`clickableColor${B(n)}`,a&&"deletable",a&&`deletableColor${B(n)}`,`${l}${B(n)}`],label:["label",`label${B(r)}`],avatar:["avatar",`avatar${B(r)}`,`avatarColor${B(n)}`],icon:["icon",`icon${B(r)}`,`iconColor${B(s)}`],deleteIcon:["deleteIcon",`deleteIcon${B(r)}`,`deleteIconColor${B(n)}`,`deleteIcon${B(l)}Color${B(n)}`]};return G(c,Du,e)},Wu=k("div",{name:"MuiChip",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{color:r,iconColor:n,clickable:s,onDelete:a,size:i,variant:l}=o;return[{[`& .${Wt.avatar}`]:e.avatar},{[`& .${Wt.avatar}`]:e[`avatar${B(i)}`]},{[`& .${Wt.avatar}`]:e[`avatarColor${B(r)}`]},{[`& .${Wt.icon}`]:e.icon},{[`& .${Wt.icon}`]:e[`icon${B(i)}`]},{[`& .${Wt.icon}`]:e[`iconColor${B(n)}`]},{[`& .${Wt.deleteIcon}`]:e.deleteIcon},{[`& .${Wt.deleteIcon}`]:e[`deleteIcon${B(i)}`]},{[`& .${Wt.deleteIcon}`]:e[`deleteIconColor${B(r)}`]},{[`& .${Wt.deleteIcon}`]:e[`deleteIcon${B(l)}Color${B(r)}`]},e.root,e[`size${B(i)}`],e[`color${B(r)}`],s&&e.clickable,s&&r!=="default"&&e[`clickableColor${B(r)})`],a&&e.deletable,a&&r!=="default"&&e[`deletableColor${B(r)}`],e[l],e[`${l}${B(r)}`]]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[700]:t.palette.grey[300];return{maxWidth:"100%",fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(t.vars||t).palette.text.primary,backgroundColor:(t.vars||t).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:t.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Wt.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Wt.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:t.vars?t.vars.palette.Chip.defaultAvatarColor:e,fontSize:t.typography.pxToRem(12)},[`& .${Wt.avatarColorPrimary}`]:{color:(t.vars||t).palette.primary.contrastText,backgroundColor:(t.vars||t).palette.primary.dark},[`& .${Wt.avatarColorSecondary}`]:{color:(t.vars||t).palette.secondary.contrastText,backgroundColor:(t.vars||t).palette.secondary.dark},[`& .${Wt.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:t.typography.pxToRem(10)},[`& .${Wt.icon}`]:{marginLeft:5,marginRight:-6},[`& .${Wt.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.26)`:kt(t.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.4)`:kt(t.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${Wt.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${Wt.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(t.palette).filter(jt(["contrastText"])).map(([o])=>({props:{color:o},style:{backgroundColor:(t.vars||t).palette[o].main,color:(t.vars||t).palette[o].contrastText,[`& .${Wt.deleteIcon}`]:{color:t.vars?`rgba(${t.vars.palette[o].contrastTextChannel} / 0.7)`:kt(t.palette[o].contrastText,.7),"&:hover, &:active":{color:(t.vars||t).palette[o].contrastText}}}})),{props:o=>o.iconColor===o.color,style:{[`& .${Wt.icon}`]:{color:t.vars?t.vars.palette.Chip.defaultIconColor:e}}},{props:o=>o.iconColor===o.color&&o.color!=="default",style:{[`& .${Wt.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${Wt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}},...Object.entries(t.palette).filter(jt(["dark"])).map(([o])=>({props:{color:o,onDelete:!0},style:{[`&.${Wt.focusVisible}`]:{background:(t.vars||t).palette[o].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)},[`&.${Wt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)},"&:active":{boxShadow:(t.vars||t).shadows[1]}}},...Object.entries(t.palette).filter(jt(["dark"])).map(([o])=>({props:{color:o,clickable:!0},style:{[`&:hover, &.${Wt.focusVisible}`]:{backgroundColor:(t.vars||t).palette[o].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:t.vars?`1px solid ${t.vars.palette.Chip.defaultBorder}`:`1px solid ${t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[700]}`,[`&.${Wt.clickable}:hover`]:{backgroundColor:(t.vars||t).palette.action.hover},[`&.${Wt.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`& .${Wt.avatar}`]:{marginLeft:4},[`& .${Wt.avatarSmall}`]:{marginLeft:2},[`& .${Wt.icon}`]:{marginLeft:4},[`& .${Wt.iconSmall}`]:{marginLeft:2},[`& .${Wt.deleteIcon}`]:{marginRight:5},[`& .${Wt.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(t.palette).filter(jt()).map(([o])=>({props:{variant:"outlined",color:o},style:{color:(t.vars||t).palette[o].main,border:`1px solid ${t.vars?`rgba(${t.vars.palette[o].mainChannel} / 0.7)`:kt(t.palette[o].main,.7)}`,[`&.${Wt.clickable}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[o].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[o].main,t.palette.action.hoverOpacity)},[`&.${Wt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[o].mainChannel} / ${t.vars.palette.action.focusOpacity})`:kt(t.palette[o].main,t.palette.action.focusOpacity)},[`& .${Wt.deleteIcon}`]:{color:t.vars?`rgba(${t.vars.palette[o].mainChannel} / 0.7)`:kt(t.palette[o].main,.7),"&:hover, &:active":{color:(t.vars||t).palette[o].main}}}}))]}})),Uu=k("span",{name:"MuiChip",slot:"Label",overridesResolver:(t,e)=>{const{ownerState:o}=t,{size:r}=o;return[e.label,e[`label${B(r)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function pa(t){return t.key==="Backspace"||t.key==="Delete"}const Hu=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiChip"}),{avatar:n,className:s,clickable:a,color:i="default",component:l,deleteIcon:c,disabled:p=!1,icon:u,label:m,onClick:g,onDelete:b,onKeyDown:v,onKeyUp:h,size:y="medium",variant:S="filled",tabIndex:C,skipFocusWhenDisabled:x=!1,...w}=r,P=d.useRef(null),$=qt(P,o),I=N=>{N.stopPropagation(),b&&b(N)},A=N=>{N.currentTarget===N.target&&pa(N)&&N.preventDefault(),v&&v(N)},T=N=>{N.currentTarget===N.target&&b&&pa(N)&&b(N),h&&h(N)},z=a!==!1&&g?!0:a,E=z||b?ue:l||"div",R={...r,component:E,disabled:p,size:y,color:i,iconColor:d.isValidElement(u)&&u.props.color||i,onDelete:!!b,clickable:z,variant:S},M=Fu(R),O=E===ue?{component:l||"div",focusVisibleClassName:M.focusVisible,...b&&{disableRipple:!0}}:{};let L=null;b&&(L=c&&d.isValidElement(c)?d.cloneElement(c,{className:j(c.props.className,M.deleteIcon),onClick:I}):f.jsx(ju,{className:j(M.deleteIcon),onClick:I}));let F=null;n&&d.isValidElement(n)&&(F=d.cloneElement(n,{className:j(M.avatar,n.props.className)}));let D=null;return u&&d.isValidElement(u)&&(D=d.cloneElement(u,{className:j(M.icon,u.props.className)})),f.jsxs(Wu,{as:E,className:j(M.root,s),disabled:z&&p?!0:void 0,onClick:g,onKeyDown:A,onKeyUp:T,ref:$,tabIndex:x&&p?-1:C,ownerState:R,...O,...w,children:[F||D,f.jsx(Uu,{className:j(M.label),ownerState:R,children:m}),L]})});function zr(t){return parseInt(t,10)||0}const Vu={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function Gu(t){for(const e in t)return!1;return!0}function da(t){return Gu(t)||t.outerHeightStyle===0&&!t.overflowing}const Ku=d.forwardRef(function(e,o){const{onChange:r,maxRows:n,minRows:s=1,style:a,value:i,...l}=e,{current:c}=d.useRef(i!=null),p=d.useRef(null),u=qt(o,p),m=d.useRef(null),g=d.useRef(null),b=d.useCallback(()=>{const C=p.current,x=g.current;if(!C||!x)return;const P=me(C).getComputedStyle(C);if(P.width==="0px")return{outerHeightStyle:0,overflowing:!1};x.style.width=P.width,x.value=C.value||e.placeholder||"x",x.value.slice(-1)===` -`&&(x.value+=" ");const $=P.boxSizing,I=zr(P.paddingBottom)+zr(P.paddingTop),A=zr(P.borderBottomWidth)+zr(P.borderTopWidth),T=x.scrollHeight;x.value="x";const z=x.scrollHeight;let E=T;s&&(E=Math.max(Number(s)*z,E)),n&&(E=Math.min(Number(n)*z,E)),E=Math.max(E,z);const R=E+($==="border-box"?I+A:0),M=Math.abs(E-T)<=1;return{outerHeightStyle:R,overflowing:M}},[n,s,e.placeholder]),v=ee(()=>{const C=p.current,x=b();if(!C||!x||da(x))return!1;const w=x.outerHeightStyle;return m.current!=null&&m.current!==w}),h=d.useCallback(()=>{const C=p.current,x=b();if(!C||!x||da(x))return;const w=x.outerHeightStyle;m.current!==w&&(m.current=w,C.style.height=`${w}px`),C.style.overflow=x.overflowing?"hidden":""},[b]),y=d.useRef(-1);be(()=>{const C=$r(h),x=p==null?void 0:p.current;if(!x)return;const w=me(x);w.addEventListener("resize",C);let P;return typeof ResizeObserver<"u"&&(P=new ResizeObserver(()=>{v()&&(P.unobserve(x),cancelAnimationFrame(y.current),h(),y.current=requestAnimationFrame(()=>{P.observe(x)}))}),P.observe(x)),()=>{C.clear(),cancelAnimationFrame(y.current),w.removeEventListener("resize",C),P&&P.disconnect()}},[b,h,v]),be(()=>{h()});const S=C=>{c||h(),r&&r(C)};return f.jsxs(d.Fragment,{children:[f.jsx("textarea",{value:i,onChange:S,ref:u,rows:s,style:a,...l}),f.jsx("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:g,tabIndex:-1,style:{...Vu.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function so(t){return typeof t=="string"}function lo({props:t,states:e,muiFormControl:o}){return e.reduce((r,n)=>(r[n]=t[n],o&&typeof t[n]>"u"&&(r[n]=o[n]),r),{})}const hn=d.createContext(void 0);function He(){return d.useContext(hn)}function ua(t){return t!=null&&!(Array.isArray(t)&&t.length===0)}function an(t,e=!1){return t&&(ua(t.value)&&t.value!==""||e&&ua(t.defaultValue)&&t.defaultValue!=="")}function qu(t){return t.startAdornment}function Xu(t){return V("MuiInputBase",t)}const ke=K("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var fa;const yn=(t,e)=>{const{ownerState:o}=t;return[e.root,o.formControl&&e.formControl,o.startAdornment&&e.adornedStart,o.endAdornment&&e.adornedEnd,o.error&&e.error,o.size==="small"&&e.sizeSmall,o.multiline&&e.multiline,o.color&&e[`color${B(o.color)}`],o.fullWidth&&e.fullWidth,o.hiddenLabel&&e.hiddenLabel]},xn=(t,e)=>{const{ownerState:o}=t;return[e.input,o.size==="small"&&e.inputSizeSmall,o.multiline&&e.inputMultiline,o.type==="search"&&e.inputTypeSearch,o.startAdornment&&e.inputAdornedStart,o.endAdornment&&e.inputAdornedEnd,o.hiddenLabel&&e.inputHiddenLabel]},_u=t=>{const{classes:e,color:o,disabled:r,error:n,endAdornment:s,focused:a,formControl:i,fullWidth:l,hiddenLabel:c,multiline:p,readOnly:u,size:m,startAdornment:g,type:b}=t,v={root:["root",`color${B(o)}`,r&&"disabled",n&&"error",l&&"fullWidth",a&&"focused",i&&"formControl",m&&m!=="medium"&&`size${B(m)}`,p&&"multiline",g&&"adornedStart",s&&"adornedEnd",c&&"hiddenLabel",u&&"readOnly"],input:["input",r&&"disabled",b==="search"&&"inputTypeSearch",p&&"inputMultiline",m==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",g&&"inputAdornedStart",s&&"inputAdornedEnd",u&&"readOnly"]};return G(v,Xu,e)},Cn=k("div",{name:"MuiInputBase",slot:"Root",overridesResolver:yn})(W(({theme:t})=>({...t.typography.body1,color:(t.vars||t).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${ke.disabled}`]:{color:(t.vars||t).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:e})=>e.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:e,size:o})=>e.multiline&&o==="small",style:{paddingTop:1}},{props:({ownerState:e})=>e.fullWidth,style:{width:"100%"}}]}))),Sn=k("input",{name:"MuiInputBase",slot:"Input",overridesResolver:xn})(W(({theme:t})=>{const e=t.palette.mode==="light",o={color:"currentColor",...t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:e?.42:.5},transition:t.transitions.create("opacity",{duration:t.transitions.duration.shorter})},r={opacity:"0 !important"},n=t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:e?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${ke.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":n,"&:focus::-moz-placeholder":n,"&:focus::-ms-input-placeholder":n},[`&.${ke.disabled}`]:{opacity:1,WebkitTextFillColor:(t.vars||t).palette.text.disabled},variants:[{props:({ownerState:s})=>!s.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:s})=>s.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),ga=bs({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),wn=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiInputBase"}),{"aria-describedby":n,autoComplete:s,autoFocus:a,className:i,color:l,components:c={},componentsProps:p={},defaultValue:u,disabled:m,disableInjectingGlobalStyles:g,endAdornment:b,error:v,fullWidth:h=!1,id:y,inputComponent:S="input",inputProps:C={},inputRef:x,margin:w,maxRows:P,minRows:$,multiline:I=!1,name:A,onBlur:T,onChange:z,onClick:E,onFocus:R,onKeyDown:M,onKeyUp:O,placeholder:L,readOnly:F,renderSuffix:D,rows:N,size:J,slotProps:U={},slots:wt={},startAdornment:vt,type:mt="text",value:et,...rt}=r,Y=C.value!=null?C.value:et,{current:at}=d.useRef(Y!=null),ct=d.useRef(),st=d.useCallback(Ct=>{},[]),ft=qt(ct,x,C.ref,st),[Z,pt]=d.useState(!1),it=He(),ht=lo({props:r,muiFormControl:it,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ht.focused=it?it.focused:Z,d.useEffect(()=>{!it&&m&&Z&&(pt(!1),T&&T())},[it,m,Z,T]);const Mt=it&&it.onFilled,tt=it&&it.onEmpty,ot=d.useCallback(Ct=>{an(Ct)?Mt&&Mt():tt&&tt()},[Mt,tt]);be(()=>{at&&ot({value:Y})},[Y,ot,at]);const dt=Ct=>{R&&R(Ct),C.onFocus&&C.onFocus(Ct),it&&it.onFocus?it.onFocus(Ct):pt(!0)},St=Ct=>{T&&T(Ct),C.onBlur&&C.onBlur(Ct),it&&it.onBlur?it.onBlur(Ct):pt(!1)},gt=(Ct,...Ut)=>{if(!at){const Et=Ct.target||ct.current;if(Et==null)throw new Error(Oo(1));ot({value:Et.value})}C.onChange&&C.onChange(Ct,...Ut),z&&z(Ct,...Ut)};d.useEffect(()=>{ot(ct.current)},[]);const nt=Ct=>{ct.current&&Ct.currentTarget===Ct.target&&ct.current.focus(),E&&E(Ct)};let Tt=S,At=C;I&&Tt==="input"&&(N?At={type:void 0,minRows:N,maxRows:N,...At}:At={type:void 0,maxRows:P,minRows:$,...At},Tt=Ku);const q=Ct=>{ot(Ct.animationName==="mui-auto-fill-cancel"?ct.current:{value:"x"})};d.useEffect(()=>{it&&it.setAdornedStart(!!vt)},[it,vt]);const lt={...r,color:ht.color||"primary",disabled:ht.disabled,endAdornment:b,error:ht.error,focused:ht.focused,formControl:it,fullWidth:h,hiddenLabel:ht.hiddenLabel,multiline:I,size:ht.size,startAdornment:vt,type:mt},bt=_u(lt),$t=wt.root||c.Root||Cn,It=U.root||p.root||{},ut=wt.input||c.Input||Sn;return At={...At,...U.input??p.input},f.jsxs(d.Fragment,{children:[!g&&typeof ga=="function"&&(fa||(fa=f.jsx(ga,{}))),f.jsxs($t,{...It,ref:o,onClick:nt,...rt,...!so($t)&&{ownerState:{...lt,...It.ownerState}},className:j(bt.root,It.className,i,F&&"MuiInputBase-readOnly"),children:[vt,f.jsx(hn.Provider,{value:null,children:f.jsx(ut,{"aria-invalid":ht.error,"aria-describedby":n,autoComplete:s,autoFocus:a,defaultValue:u,disabled:ht.disabled,id:y,onAnimationStart:q,name:A,placeholder:L,readOnly:F,required:ht.required,rows:N,value:Y,onKeyDown:M,onKeyUp:O,type:mt,...At,...!so(ut)&&{as:Tt,ownerState:{...lt,...At.ownerState}},ref:ft,className:j(bt.input,At.className,F&&"MuiInputBase-readOnly"),onBlur:St,onChange:gt,onFocus:dt})}),b,D?D({...ht,startAdornment:vt}):null]})]})});function Yu(t){return V("MuiInput",t)}const bo={...ke,...K("MuiInput",["root","underline","input"])};function Zu(t){return V("MuiOutlinedInput",t)}const Ee={...ke,...K("MuiOutlinedInput",["root","notchedOutline","input"])};function Qu(t){return V("MuiFilledInput",t)}const Ie={...ke,...K("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},$s=Qt(f.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");function Ju(t){return V("MuiAutocomplete",t)}const zt=K("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var ma,ba;const tf=t=>{const{classes:e,disablePortal:o,expanded:r,focused:n,fullWidth:s,hasClearIcon:a,hasPopupIcon:i,inputFocused:l,popupOpen:c,size:p}=t,u={root:["root",r&&"expanded",n&&"focused",s&&"fullWidth",a&&"hasClearIcon",i&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${B(p)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",o&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return G(u,Ju,e)},ef=k("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{fullWidth:r,hasClearIcon:n,hasPopupIcon:s,inputFocused:a,size:i}=o;return[{[`& .${zt.tag}`]:e.tag},{[`& .${zt.tag}`]:e[`tagSize${B(i)}`]},{[`& .${zt.inputRoot}`]:e.inputRoot},{[`& .${zt.input}`]:e.input},{[`& .${zt.input}`]:a&&e.inputFocused},e.root,r&&e.fullWidth,s&&e.hasPopupIcon,n&&e.hasClearIcon]}})({[`&.${zt.focused} .${zt.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${zt.clearIndicator}`]:{visibility:"visible"}},[`& .${zt.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${zt.inputRoot}`]:{[`.${zt.hasPopupIcon}&, .${zt.hasClearIcon}&`]:{paddingRight:30},[`.${zt.hasPopupIcon}.${zt.hasClearIcon}&`]:{paddingRight:56},[`& .${zt.input}`]:{width:0,minWidth:30}},[`& .${bo.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${bo.root}.${ke.sizeSmall}`]:{[`& .${bo.input}`]:{padding:"2px 4px 3px 0"}},[`& .${Ee.root}`]:{padding:9,[`.${zt.hasPopupIcon}&, .${zt.hasClearIcon}&`]:{paddingRight:39},[`.${zt.hasPopupIcon}.${zt.hasClearIcon}&`]:{paddingRight:65},[`& .${zt.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${zt.endAdornment}`]:{right:9}},[`& .${Ee.root}.${ke.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${zt.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${Ie.root}`]:{paddingTop:19,paddingLeft:8,[`.${zt.hasPopupIcon}&, .${zt.hasClearIcon}&`]:{paddingRight:39},[`.${zt.hasPopupIcon}.${zt.hasClearIcon}&`]:{paddingRight:65},[`& .${Ie.input}`]:{padding:"7px 4px"},[`& .${zt.endAdornment}`]:{right:9}},[`& .${Ie.root}.${ke.sizeSmall}`]:{paddingBottom:1,[`& .${Ie.input}`]:{padding:"2.5px 4px"}},[`& .${ke.hiddenLabel}`]:{paddingTop:8},[`& .${Ie.root}.${ke.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${zt.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${Ie.root}.${ke.hiddenLabel}.${ke.sizeSmall}`]:{[`& .${zt.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${zt.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${zt.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${zt.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${zt.inputRoot}`]:{flexWrap:"wrap"}}}]}),of=k("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(t,e)=>e.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),rf=k(ko,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(t,e)=>e.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),nf=k(ko,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popupIndicator,o.popupOpen&&e.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),sf=k(vn,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${zt.option}`]:e.option},e.popper,o.disablePortal&&e.popperDisablePortal]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),af=k(Ue,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(t,e)=>e.paper})(W(({theme:t})=>({...t.typography.body1,overflow:"auto"}))),lf=k("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(t,e)=>e.loading})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),cf=k("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(t,e)=>e.noOptions})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),pf=k("ul",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(t,e)=>e.listbox})(W(({theme:t})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${zt.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[t.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${zt.focused}`]:{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${zt.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${zt.focused}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${zt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}}}))),df=k(ts,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(t,e)=>e.groupLabel})(W(({theme:t})=>({backgroundColor:(t.vars||t).palette.background.paper,top:-8}))),uf=k("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(t,e)=>e.groupUl})({padding:0,[`& .${zt.option}`]:{paddingLeft:24}}),KS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAutocomplete"}),{autoComplete:n=!1,autoHighlight:s=!1,autoSelect:a=!1,blurOnSelect:i=!1,ChipProps:l,className:c,clearIcon:p=ma||(ma=f.jsx(Ri,{fontSize:"small"})),clearOnBlur:u=!r.freeSolo,clearOnEscape:m=!1,clearText:g="Clear",closeText:b="Close",componentsProps:v,defaultValue:h=r.multiple?[]:null,disableClearable:y=!1,disableCloseOnSelect:S=!1,disabled:C=!1,disabledItemsFocusable:x=!1,disableListWrap:w=!1,disablePortal:P=!1,filterOptions:$,filterSelectedOptions:I=!1,forcePopupIcon:A="auto",freeSolo:T=!1,fullWidth:z=!1,getLimitTagsText:E=Kt=>`+${Kt}`,getOptionDisabled:R,getOptionKey:M,getOptionLabel:O,isOptionEqualToValue:L,groupBy:F,handleHomeEndKeys:D=!r.freeSolo,id:N,includeInputInList:J=!1,inputValue:U,limitTags:wt=-1,ListboxComponent:vt,ListboxProps:mt,loading:et=!1,loadingText:rt="Loading…",multiple:Y=!1,noOptionsText:at="No options",onChange:ct,onClose:st,onHighlightChange:ft,onInputChange:Z,onOpen:pt,open:it,openOnFocus:ht=!1,openText:Mt="Open",options:tt,PaperComponent:ot,PopperComponent:dt,popupIcon:St=ba||(ba=f.jsx($s,{})),readOnly:gt=!1,renderGroup:nt,renderInput:Tt,renderOption:At,renderTags:q,selectOnFocus:lt=!r.freeSolo,size:bt="medium",slots:$t={},slotProps:It={},value:ut,...Ct}=r,{getRootProps:Ut,getInputProps:Et,getInputLabelProps:Gt,getPopupIndicatorProps:xt,getClearProps:Bt,getTagProps:Xt,getListboxProps:oe,getOptionProps:fe,value:ie,dirty:Pe,expanded:Vt,id:_t,popupOpen:ce,focused:$e,focusedTag:pe,anchorEl:Lt,setAnchorEl:ge,inputValue:yt,groupedOptions:Pt}=yd({...r,componentName:"Autocomplete"}),Dt=!y&&!C&&Pe&&!gt,Ft=(!T||A===!0)&&A!==!1,{onMouseDown:Zt}=Et(),{ref:Se,...Ve}=oe(),co=O||(Kt=>Kt.label??Kt),ne={...r,disablePortal:P,expanded:Vt,focused:$e,fullWidth:z,getOptionLabel:co,hasClearIcon:Dt,hasPopupIcon:Ft,inputFocused:pe===-1,popupOpen:ce,size:bt},de=tf(ne),qe={slots:{paper:ot,popper:dt,...$t},slotProps:{chip:l,listbox:mt,...v,...It}},[Mr,X]=Q("listbox",{elementType:pf,externalForwardedProps:qe,ownerState:ne,className:de.listbox,additionalProps:Ve,ref:Se}),[H,Rt]=Q("paper",{elementType:Ue,externalForwardedProps:qe,ownerState:ne,className:de.paper}),[Ot,Ht]=Q("popper",{elementType:vn,externalForwardedProps:qe,ownerState:ne,className:de.popper,additionalProps:{disablePortal:P,style:{width:Lt?Lt.clientWidth:null},role:"presentation",anchorEl:Lt,open:ce}});let Yt;if(Y&&ie.length>0){const Kt=Xe=>({className:de.tag,disabled:C,...Xt(Xe)});q?Yt=q(ie,Kt,ne):Yt=ie.map((Xe,po)=>{const{key:Qo,...hl}=Kt({index:po});return f.jsx(Hu,{label:co(Xe),size:bt,...hl,...qe.slotProps.chip},Qo)})}if(wt>-1&&Array.isArray(Yt)){const Kt=Yt.length-wt;!$e&&Kt>0&&(Yt=Yt.splice(0,wt),Yt.push(f.jsx("span",{className:de.tag,children:E(Kt)},Yt.length)))}const Ae=nt||(Kt=>f.jsxs("li",{children:[f.jsx(df,{className:de.groupLabel,ownerState:ne,component:"div",children:Kt.group}),f.jsx(uf,{className:de.groupUl,ownerState:ne,children:Kt.children})]},Kt.key)),vl=At||((Kt,Xe)=>{const{key:po,...Qo}=Kt;return f.jsx("li",{...Qo,children:co(Xe)},po)}),Os=(Kt,Xe)=>{const po=fe({option:Kt,index:Xe});return vl({...po,className:de.option},Kt,{selected:po["aria-selected"],index:Xe,inputValue:yt},ne)},Lr=qe.slotProps.clearIndicator,Ar=qe.slotProps.popupIndicator;return f.jsxs(d.Fragment,{children:[f.jsx(ef,{ref:o,className:j(de.root,c),ownerState:ne,...Ut(Ct),children:Tt({id:_t,disabled:C,fullWidth:!0,size:bt==="small"?"small":void 0,InputLabelProps:Gt(),InputProps:{ref:ge,className:de.inputRoot,startAdornment:Yt,onMouseDown:Kt=>{Kt.target===Kt.currentTarget&&Zt(Kt)},...(Dt||Ft)&&{endAdornment:f.jsxs(of,{className:de.endAdornment,ownerState:ne,children:[Dt?f.jsx(rf,{...Bt(),"aria-label":g,title:g,ownerState:ne,...Lr,className:j(de.clearIndicator,Lr==null?void 0:Lr.className),children:p}):null,Ft?f.jsx(nf,{...xt(),disabled:C,"aria-label":ce?b:Mt,title:ce?b:Mt,ownerState:ne,...Ar,className:j(de.popupIndicator,Ar==null?void 0:Ar.className),children:St}):null]})}},inputProps:{className:de.input,disabled:C,readOnly:gt,...Et()}})}),Lt?f.jsx(sf,{as:Ot,...Ht,children:f.jsxs(af,{as:H,...Rt,children:[et&&Pt.length===0?f.jsx(lf,{className:de.loading,ownerState:ne,children:rt}):null,Pt.length===0&&!T&&!et?f.jsx(cf,{className:de.noOptions,ownerState:ne,role:"presentation",onMouseDown:Kt=>{Kt.preventDefault()},children:at}):null,Pt.length>0?f.jsx(Mr,{as:vt,...X,children:Pt.map((Kt,Xe)=>F?Ae({key:Kt.key,group:Kt.group,children:Kt.options.map((po,Qo)=>Os(po,Kt.index+Qo))}):Os(Kt,Xe))}):null]})}):null]})}),ff=Qt(f.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");function gf(t){return V("MuiAvatar",t)}const mf=K("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]),bf=t=>{const{classes:e,variant:o,colorDefault:r}=t;return G({root:["root",o,r&&"colorDefault"],img:["img"],fallback:["fallback"]},gf,e)},vf=k("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],o.colorDefault&&e.colorDefault]}})(W(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:{color:(t.vars||t).palette.background.default,...t.vars?{backgroundColor:t.vars.palette.Avatar.defaultBg}:{backgroundColor:t.palette.grey[400],...t.applyStyles("dark",{backgroundColor:t.palette.grey[600]})}}}]}))),hf=k("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(t,e)=>e.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),yf=k(ff,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(t,e)=>e.fallback})({width:"75%",height:"75%"});function xf({crossOrigin:t,referrerPolicy:e,src:o,srcSet:r}){const[n,s]=d.useState(!1);return d.useEffect(()=>{if(!o&&!r)return;s(!1);let a=!0;const i=new Image;return i.onload=()=>{a&&s("loaded")},i.onerror=()=>{a&&s("error")},i.crossOrigin=t,i.referrerPolicy=e,i.src=o,r&&(i.srcset=r),()=>{a=!1}},[t,e,o,r]),n}const Cf=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAvatar"}),{alt:n,children:s,className:a,component:i="div",slots:l={},slotProps:c={},imgProps:p,sizes:u,src:m,srcSet:g,variant:b="circular",...v}=r;let h=null;const y={...r,component:i,variant:b},S=xf({...p,...typeof c.img=="function"?c.img(y):c.img,src:m,srcSet:g}),C=m||g,x=C&&S!=="error";y.colorDefault=!x,delete y.ownerState;const w=bf(y),[P,$]=Q("img",{className:w.img,elementType:hf,externalForwardedProps:{slots:l,slotProps:{img:{...p,...c.img}}},additionalProps:{alt:n,src:m,srcSet:g,sizes:u},ownerState:y});return x?h=f.jsx(P,{...$}):s||s===0?h=s:C&&n?h=n[0]:h=f.jsx(yf,{ownerState:y,className:w.fallback}),f.jsx(vf,{as:i,className:j(w.root,a),ref:o,...v,ownerState:y,children:h})});function Sf(t){return V("MuiAvatarGroup",t)}const wf=K("MuiAvatarGroup",["root","avatar"]),$n={small:-16,medium:-8},Rf=t=>{const{classes:e}=t;return G({root:["root"],avatar:["avatar"]},Sf,e)},Pf=k("div",{name:"MuiAvatarGroup",slot:"Root",overridesResolver:(t,e)=>[{[`& .${wf.avatar}`]:e.avatar},e.root]})(W(({theme:t})=>({display:"flex",flexDirection:"row-reverse",[`& .${mf.root}`]:{border:`2px solid ${(t.vars||t).palette.background.default}`,boxSizing:"content-box",marginLeft:"var(--AvatarGroup-spacing, -8px)","&:last-child":{marginLeft:0}}}))),qS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAvatarGroup"}),{children:n,className:s,component:a="div",componentsProps:i,max:l=5,renderSurplus:c,slotProps:p={},slots:u={},spacing:m="medium",total:g,variant:b="circular",...v}=r;let h=l<2?2:l;const y={...r,max:l,spacing:m,component:a,variant:b},S=Rf(y),C=d.Children.toArray(n).filter(E=>d.isValidElement(E)),x=g||C.length;x===h&&(h+=1),h=Math.min(x+1,h);const w=Math.min(C.length,h-1),P=Math.max(x-h,x-w,0),$=c?c(P):`+${P}`;let I;y.spacing&&$n[y.spacing]!==void 0?I=$n[y.spacing]:y.spacing===0?I=0:I=-y.spacing||$n.medium;const A={slots:u,slotProps:{surplus:p.additionalAvatar??(i==null?void 0:i.additionalAvatar),...i,...p}},[T,z]=Q("surplus",{elementType:Cf,externalForwardedProps:A,className:S.avatar,ownerState:y,additionalProps:{variant:b}});return f.jsxs(Pf,{as:a,ownerState:y,className:j(S.root,s),ref:o,...v,style:{"--AvatarGroup-spacing":`${I}px`,...v.style},children:[P?f.jsx(T,{...z,children:$}):null,C.slice(0,w).reverse().map(E=>d.cloneElement(E,{className:j(E.props.className,S.avatar),variant:E.props.variant||b}))]})}),$f={entering:{opacity:1},entered:{opacity:1}},es=d.forwardRef(function(e,o){const r=le(),n={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:i,easing:l,in:c,onEnter:p,onEntered:u,onEntering:m,onExit:g,onExited:b,onExiting:v,style:h,timeout:y=n,TransitionComponent:S=Le,...C}=e,x=d.useRef(null),w=qt(x,io(i),o),P=M=>O=>{if(M){const L=x.current;O===void 0?M(L):M(L,O)}},$=P(m),I=P((M,O)=>{mn(M);const L=Ge({style:h,timeout:y,easing:l},{mode:"enter"});M.style.webkitTransition=r.transitions.create("opacity",L),M.style.transition=r.transitions.create("opacity",L),p&&p(M,O)}),A=P(u),T=P(v),z=P(M=>{const O=Ge({style:h,timeout:y,easing:l},{mode:"exit"});M.style.webkitTransition=r.transitions.create("opacity",O),M.style.transition=r.transitions.create("opacity",O),g&&g(M)}),E=P(b),R=M=>{s&&s(x.current,M)};return f.jsx(S,{appear:a,in:c,nodeRef:x,onEnter:I,onEntered:A,onEntering:$,onExit:z,onExited:E,onExiting:T,addEndListener:R,timeout:y,...C,children:(M,{ownerState:O,...L})=>d.cloneElement(i,{style:{opacity:0,visibility:M==="exited"&&!c?"hidden":void 0,...$f[M],...h,...i.props.style},ref:w,...L})})});function kf(t){return V("MuiBackdrop",t)}const XS=K("MuiBackdrop",["root","invisible"]),If=t=>{const{classes:e,invisible:o}=t;return G({root:["root",o&&"invisible"]},kf,e)},Tf=k("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.invisible&&e.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),Oi=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBackdrop"}),{children:n,className:s,component:a="div",invisible:i=!1,open:l,components:c={},componentsProps:p={},slotProps:u={},slots:m={},TransitionComponent:g,transitionDuration:b,...v}=r,h={...r,component:a,invisible:i},y=If(h),S={transition:g,root:c.Root,...m},C={...p,...u},x={slots:S,slotProps:C},[w,P]=Q("root",{elementType:Tf,externalForwardedProps:x,className:j(y.root,s),ownerState:h}),[$,I]=Q("transition",{elementType:es,externalForwardedProps:x,ownerState:h});return f.jsx($,{in:l,timeout:b,...v,...I,children:f.jsx(w,{"aria-hidden":!0,...P,classes:y,ref:o,children:n})})});function Mf(t){const{badgeContent:e,invisible:o=!1,max:r=99,showZero:n=!1}=t,s=ms({badgeContent:e,max:r});let a=o;o===!1&&e===0&&!n&&(a=!0);const{badgeContent:i,max:l=r}=a?s:t,c=i&&Number(i)>l?`${l}+`:i;return{badgeContent:i,invisible:a,max:l,displayValue:c}}function Lf(t){return V("MuiBadge",t)}const fo=K("MuiBadge",["root","badge","dot","standard","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","invisible","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"]),kn=10,In=4,Af=t=>{const{color:e,anchorOrigin:o,invisible:r,overlap:n,variant:s,classes:a={}}=t,i={root:["root"],badge:["badge",s,r&&"invisible",`anchorOrigin${B(o.vertical)}${B(o.horizontal)}`,`anchorOrigin${B(o.vertical)}${B(o.horizontal)}${B(n)}`,`overlap${B(n)}`,e!=="default"&&`color${B(e)}`]};return G(i,Lf,a)},Bf=k("span",{name:"MuiBadge",slot:"Root",overridesResolver:(t,e)=>e.root})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),Ef=k("span",{name:"MuiBadge",slot:"Badge",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.badge,e[o.variant],e[`anchorOrigin${B(o.anchorOrigin.vertical)}${B(o.anchorOrigin.horizontal)}${B(o.overlap)}`],o.color!=="default"&&e[`color${B(o.color)}`],o.invisible&&e.invisible]}})(W(({theme:t})=>({display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(12),minWidth:kn*2,lineHeight:1,padding:"0 6px",height:kn*2,borderRadius:kn,zIndex:1,transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.enteringScreen}),variants:[...Object.entries(t.palette).filter(jt(["contrastText"])).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main,color:(t.vars||t).palette[e].contrastText}})),{props:{variant:"dot"},style:{borderRadius:In,height:In*2,minWidth:In*2,padding:0}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:{invisible:!0},style:{transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.leavingScreen})}}]})));function va(t){return{vertical:(t==null?void 0:t.vertical)??"top",horizontal:(t==null?void 0:t.horizontal)??"right"}}const _S=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBadge"}),{anchorOrigin:n,className:s,classes:a,component:i,components:l={},componentsProps:c={},children:p,overlap:u="rectangular",color:m="default",invisible:g=!1,max:b=99,badgeContent:v,slots:h,slotProps:y,showZero:S=!1,variant:C="standard",...x}=r,{badgeContent:w,invisible:P,max:$,displayValue:I}=Mf({max:b,invisible:g,badgeContent:v,showZero:S}),A=ms({anchorOrigin:va(n),color:m,overlap:u,variant:C,badgeContent:v}),T=P||w==null&&C!=="dot",{color:z=m,overlap:E=u,anchorOrigin:R,variant:M=C}=T?A:r,O=va(R),L=M!=="dot"?I:void 0,F={...r,badgeContent:w,invisible:T,max:$,displayValue:L,showZero:S,anchorOrigin:O,color:z,overlap:E,variant:M},D=Af(F),N={slots:{root:(h==null?void 0:h.root)??l.Root,badge:(h==null?void 0:h.badge)??l.Badge},slotProps:{root:(y==null?void 0:y.root)??c.root,badge:(y==null?void 0:y.badge)??c.badge}},[J,U]=Q("root",{elementType:Bf,externalForwardedProps:{...N,...x},ownerState:F,className:j(D.root,s),ref:o,additionalProps:{as:i}}),[wt,vt]=Q("badge",{elementType:Ef,externalForwardedProps:N,ownerState:F,className:D.badge});return f.jsxs(J,{...U,children:[p,f.jsx(wt,{...vt,children:L})]})});function Of(t){return V("MuiBottomNavigation",t)}const YS=K("MuiBottomNavigation",["root"]),Nf=t=>{const{classes:e}=t;return G({root:["root"]},Of,e)},zf=k("div",{name:"MuiBottomNavigation",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({display:"flex",justifyContent:"center",height:56,backgroundColor:(t.vars||t).palette.background.paper}))),ZS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBottomNavigation"}),{children:n,className:s,component:a="div",onChange:i,showLabels:l=!1,value:c,...p}=r,u={...r,component:a,showLabels:l},m=Nf(u);return f.jsx(zf,{as:a,className:j(m.root,s),ref:o,ownerState:u,...p,children:d.Children.map(n,(g,b)=>{if(!d.isValidElement(g))return null;const v=g.props.value===void 0?b:g.props.value;return d.cloneElement(g,{selected:v===c,showLabel:g.props.showLabel!==void 0?g.props.showLabel:l,value:v,onChange:i})})})});function jf(t){return V("MuiBottomNavigationAction",t)}const Ni=K("MuiBottomNavigationAction",["root","iconOnly","selected","label"]),Df=t=>{const{classes:e,showLabel:o,selected:r}=t;return G({root:["root",!o&&!r&&"iconOnly",r&&"selected"],label:["label",!o&&!r&&"iconOnly",r&&"selected"]},jf,e)},Ff=k(ue,{name:"MuiBottomNavigationAction",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.showLabel&&!o.selected&&e.iconOnly]}})(W(({theme:t})=>({transition:t.transitions.create(["color","padding-top"],{duration:t.transitions.duration.short}),padding:"0px 12px",minWidth:80,maxWidth:168,color:(t.vars||t).palette.text.secondary,flexDirection:"column",flex:"1",[`&.${Ni.selected}`]:{color:(t.vars||t).palette.primary.main},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{paddingTop:14}},{props:({showLabel:e,selected:o,label:r})=>!e&&!o&&!r,style:{paddingTop:0}}]}))),Wf=k("span",{name:"MuiBottomNavigationAction",slot:"Label",overridesResolver:(t,e)=>e.label})(W(({theme:t})=>({fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(12),opacity:1,transition:"font-size 0.2s, opacity 0.2s",transitionDelay:"0.1s",[`&.${Ni.selected}`]:{fontSize:t.typography.pxToRem(14)},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{opacity:0,transitionDelay:"0s"}}]}))),QS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBottomNavigationAction"}),{className:n,icon:s,label:a,onChange:i,onClick:l,selected:c,showLabel:p,value:u,slots:m={},slotProps:g={},...b}=r,v=r,h=Df(v),y=$=>{i&&i($,u),l&&l($)},S={slots:m,slotProps:g},[C,x]=Q("root",{elementType:Ff,externalForwardedProps:{...S,...b},shouldForwardComponentProp:!0,ownerState:v,ref:o,className:j(h.root,n),additionalProps:{focusRipple:!0},getSlotProps:$=>({...$,onClick:I=>{var A;(A=$.onClick)==null||A.call($,I),y(I)}})}),[w,P]=Q("label",{elementType:Wf,externalForwardedProps:S,ownerState:v,className:h.label});return f.jsxs(C,{...x,children:[s,f.jsx(w,{...P,children:a})]})}),Uf=K("MuiBox",["root"]),Hf=ai(),JS=Gl({themeId:pn,defaultTheme:Hf,defaultClassName:Uf.root,generateClassName:li.generate}),Vf=Qt(f.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz"),Gf=k(ue)(W(({theme:t})=>({display:"flex",marginLeft:`calc(${t.spacing(1)} * 0.5)`,marginRight:`calc(${t.spacing(1)} * 0.5)`,...t.palette.mode==="light"?{backgroundColor:t.palette.grey[100],color:t.palette.grey[700]}:{backgroundColor:t.palette.grey[700],color:t.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...t.palette.mode==="light"?{backgroundColor:t.palette.grey[200]}:{backgroundColor:t.palette.grey[600]}},"&:active":{boxShadow:t.shadows[0],...t.palette.mode==="light"?{backgroundColor:tn(t.palette.grey[200],.12)}:{backgroundColor:tn(t.palette.grey[600],.12)}}}))),Kf=k(Vf)({width:24,height:16});function qf(t){const{slots:e={},slotProps:o={},...r}=t,n=t;return f.jsx("li",{children:f.jsx(Gf,{focusRipple:!0,...r,ownerState:n,children:f.jsx(Kf,{as:e.CollapsedIcon,ownerState:n,...o.collapsedIcon})})})}function Xf(t){return V("MuiBreadcrumbs",t)}const _f=K("MuiBreadcrumbs",["root","ol","li","separator"]),Yf=t=>{const{classes:e}=t;return G({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},Xf,e)},Zf=k(he,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(t,e)=>[{[`& .${_f.li}`]:e.li},e.root]})({}),Qf=k("ol",{name:"MuiBreadcrumbs",slot:"Ol",overridesResolver:(t,e)=>e.ol})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),Jf=k("li",{name:"MuiBreadcrumbs",slot:"Separator",overridesResolver:(t,e)=>e.separator})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function tg(t,e,o,r){return t.reduce((n,s,a)=>(a{const I=()=>{h(!0);const A=x.current.querySelector("a[href],button,[tabindex]");A&&A.focus()};return u+p>=$.length?$:[...$.slice(0,u),f.jsx(qf,{"aria-label":c,slots:{CollapsedIcon:i.CollapsedIcon},slotProps:{collapsedIcon:C},onClick:I},"ellipsis"),...$.slice($.length-p,$.length)]},P=d.Children.toArray(n).filter($=>d.isValidElement($)).map(($,I)=>f.jsx("li",{className:S.li,children:$},`child-${I}`));return f.jsx(Zf,{ref:o,component:a,color:"textSecondary",className:j(S.root,s),ownerState:y,...b,children:f.jsx(Qf,{className:S.ol,ref:x,ownerState:y,children:tg(v||m&&P.length<=m?P:w(P),S.separator,g,y)})})});function eg(t){return V("MuiButton",t)}const Co=K("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge","loading","loadingWrapper","loadingIconPlaceholder","loadingIndicator","loadingPositionCenter","loadingPositionStart","loadingPositionEnd"]),zi=d.createContext({}),ji=d.createContext(void 0),og=t=>{const{color:e,disableElevation:o,fullWidth:r,size:n,variant:s,loading:a,loadingPosition:i,classes:l}=t,c={root:["root",a&&"loading",s,`${s}${B(e)}`,`size${B(n)}`,`${s}Size${B(n)}`,`color${B(e)}`,o&&"disableElevation",r&&"fullWidth",a&&`loadingPosition${B(i)}`],startIcon:["icon","startIcon",`iconSize${B(n)}`],endIcon:["icon","endIcon",`iconSize${B(n)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]},p=G(c,eg,l);return{...l,...p}},Di=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],rg=k(ue,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`${o.variant}${B(o.color)}`],e[`size${B(o.size)}`],e[`${o.variant}Size${B(o.size)}`],o.color==="inherit"&&e.colorInherit,o.disableElevation&&e.disableElevation,o.fullWidth&&e.fullWidth,o.loading&&e.loading]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[300]:t.palette.grey[800],o=t.palette.mode==="light"?t.palette.grey.A100:t.palette.grey[700];return{...t.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(t.vars||t).shape.borderRadius,transition:t.transitions.create(["background-color","box-shadow","border-color","color"],{duration:t.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${Co.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(t.vars||t).shadows[2],"&:hover":{boxShadow:(t.vars||t).shadows[4],"@media (hover: none)":{boxShadow:(t.vars||t).shadows[2]}},"&:active":{boxShadow:(t.vars||t).shadows[8]},[`&.${Co.focusVisible}`]:{boxShadow:(t.vars||t).shadows[6]},[`&.${Co.disabled}`]:{color:(t.vars||t).palette.action.disabled,boxShadow:(t.vars||t).shadows[0],backgroundColor:(t.vars||t).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${Co.disabled}`]:{border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(t.palette).filter(jt()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(t.vars||t).palette[r].main,"--variant-outlinedColor":(t.vars||t).palette[r].main,"--variant-outlinedBorder":t.vars?`rgba(${t.vars.palette[r].mainChannel} / 0.5)`:kt(t.palette[r].main,.5),"--variant-containedColor":(t.vars||t).palette[r].contrastText,"--variant-containedBg":(t.vars||t).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(t.vars||t).palette[r].dark,"--variant-textBg":t.vars?`rgba(${t.vars.palette[r].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[r].main,t.palette.action.hoverOpacity),"--variant-outlinedBorder":(t.vars||t).palette[r].main,"--variant-outlinedBg":t.vars?`rgba(${t.vars.palette[r].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[r].main,t.palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":t.vars?t.vars.palette.Button.inheritContainedBg:e,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":t.vars?t.vars.palette.Button.inheritContainedHoverBg:o,"--variant-textBg":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.text.primary,t.palette.action.hoverOpacity),"--variant-outlinedBg":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.text.primary,t.palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:t.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:t.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:t.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:t.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:t.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:t.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Co.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Co.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{loadingPosition:"center"},style:{transition:t.transitions.create(["background-color","box-shadow","border-color"],{duration:t.transitions.duration.short}),[`&.${Co.loading}`]:{color:"transparent"}}}]}})),ng=k("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.startIcon,o.loading&&e.startIconLoadingStart,e[`iconSize${B(o.size)}`]]}})(({theme:t})=>({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},{props:{loadingPosition:"start",loading:!0},style:{transition:t.transitions.create(["opacity"],{duration:t.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"start",loading:!0,fullWidth:!0},style:{marginRight:-8}},...Di]})),sg=k("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.endIcon,o.loading&&e.endIconLoadingEnd,e[`iconSize${B(o.size)}`]]}})(({theme:t})=>({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},{props:{loadingPosition:"end",loading:!0},style:{transition:t.transitions.create(["opacity"],{duration:t.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"end",loading:!0,fullWidth:!0},style:{marginLeft:-8}},...Di]})),ag=k("span",{name:"MuiButton",slot:"LoadingIndicator",overridesResolver:(t,e)=>e.loadingIndicator})(({theme:t})=>({display:"none",position:"absolute",visibility:"visible",variants:[{props:{loading:!0},style:{display:"flex"}},{props:{loadingPosition:"start"},style:{left:14}},{props:{loadingPosition:"start",size:"small"},style:{left:10}},{props:{variant:"text",loadingPosition:"start"},style:{left:6}},{props:{loadingPosition:"center"},style:{left:"50%",transform:"translate(-50%)",color:(t.vars||t).palette.action.disabled}},{props:{loadingPosition:"end"},style:{right:14}},{props:{loadingPosition:"end",size:"small"},style:{right:10}},{props:{variant:"text",loadingPosition:"end"},style:{right:6}},{props:{loadingPosition:"start",fullWidth:!0},style:{position:"relative",left:-10}},{props:{loadingPosition:"end",fullWidth:!0},style:{position:"relative",right:-10}}]})),ha=k("span",{name:"MuiButton",slot:"LoadingIconPlaceholder",overridesResolver:(t,e)=>e.loadingIconPlaceholder})({display:"inline-block",width:"1em",height:"1em"}),ew=d.forwardRef(function(e,o){const r=d.useContext(zi),n=d.useContext(ji),s=ds(r,e),a=_({props:s,name:"MuiButton"}),{children:i,color:l="primary",component:c="button",className:p,disabled:u=!1,disableElevation:m=!1,disableFocusRipple:g=!1,endIcon:b,focusVisibleClassName:v,fullWidth:h=!1,id:y,loading:S=null,loadingIndicator:C,loadingPosition:x="center",size:w="medium",startIcon:P,type:$,variant:I="text",...A}=a,T=De(y),z=C??f.jsx(wi,{"aria-labelledby":T,color:"inherit",size:16}),E={...a,color:l,component:c,disabled:u,disableElevation:m,disableFocusRipple:g,fullWidth:h,loading:S,loadingIndicator:z,loadingPosition:x,size:w,type:$,variant:I},R=og(E),M=(P||S&&x==="start")&&f.jsx(ng,{className:R.startIcon,ownerState:E,children:P||f.jsx(ha,{className:R.loadingIconPlaceholder,ownerState:E})}),O=(b||S&&x==="end")&&f.jsx(sg,{className:R.endIcon,ownerState:E,children:b||f.jsx(ha,{className:R.loadingIconPlaceholder,ownerState:E})}),L=n||"",F=typeof S=="boolean"?f.jsx("span",{className:R.loadingWrapper,style:{display:"contents"},children:S&&f.jsx(ag,{className:R.loadingIndicator,ownerState:E,children:z})}):null;return f.jsxs(rg,{ownerState:E,className:j(r.className,R.root,p,L),component:c,disabled:u||S,focusRipple:!g,focusVisibleClassName:j(R.focusVisible,v),ref:o,type:$,id:S?T:y,...A,classes:R,children:[M,x!=="end"&&F,i,x==="end"&&F,O]})});function ig(t){return V("MuiButtonGroup",t)}const Nt=K("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","horizontal","vertical","colorPrimary","colorSecondary","grouped","groupedHorizontal","groupedVertical","groupedText","groupedTextHorizontal","groupedTextVertical","groupedTextPrimary","groupedTextSecondary","groupedOutlined","groupedOutlinedHorizontal","groupedOutlinedVertical","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedContained","groupedContainedHorizontal","groupedContainedVertical","groupedContainedPrimary","groupedContainedSecondary","lastButton","middleButton"]),lg=(t,e)=>{const{ownerState:o}=t;return[{[`& .${Nt.grouped}`]:e.grouped},{[`& .${Nt.grouped}`]:e[`grouped${B(o.orientation)}`]},{[`& .${Nt.grouped}`]:e[`grouped${B(o.variant)}`]},{[`& .${Nt.grouped}`]:e[`grouped${B(o.variant)}${B(o.orientation)}`]},{[`& .${Nt.grouped}`]:e[`grouped${B(o.variant)}${B(o.color)}`]},{[`& .${Nt.firstButton}`]:e.firstButton},{[`& .${Nt.lastButton}`]:e.lastButton},{[`& .${Nt.middleButton}`]:e.middleButton},e.root,e[o.variant],o.disableElevation===!0&&e.disableElevation,o.fullWidth&&e.fullWidth,o.orientation==="vertical"&&e.vertical]},cg=t=>{const{classes:e,color:o,disabled:r,disableElevation:n,fullWidth:s,orientation:a,variant:i}=t,l={root:["root",i,a,s&&"fullWidth",n&&"disableElevation",`color${B(o)}`],grouped:["grouped",`grouped${B(a)}`,`grouped${B(i)}`,`grouped${B(i)}${B(a)}`,`grouped${B(i)}${B(o)}`,r&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return G(l,ig,e)},pg=k("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:lg})(W(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{variant:"contained"},style:{boxShadow:(t.vars||t).shadows[2]}},{props:{disableElevation:!0},style:{boxShadow:"none"}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{borderTopRightRadius:0,borderTopLeftRadius:0},[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottomRightRadius:0,borderBottomLeftRadius:0}}},{props:{orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{borderTopLeftRadius:0,borderBottomLeftRadius:0}}},{props:{variant:"text",orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderRight:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${Nt.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"text",orientation:"vertical"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottom:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${Nt.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(jt()).flatMap(([e])=>[{props:{variant:"text",color:e},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:kt(t.palette[e].main,.5)}}}]),{props:{variant:"outlined",orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderRightColor:"transparent","&:hover":{borderRightColor:"currentColor"}},[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{marginLeft:-1}}},{props:{variant:"outlined",orientation:"vertical"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottomColor:"transparent","&:hover":{borderBottomColor:"currentColor"}},[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{marginTop:-1}}},{props:{variant:"contained",orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderRight:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${Nt.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"contained",orientation:"vertical"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottom:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${Nt.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(jt(["dark"])).map(([e])=>({props:{variant:"contained",color:e},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderColor:(t.vars||t).palette[e].dark}}}))],[`& .${Nt.grouped}`]:{minWidth:40,boxShadow:"none",props:{variant:"contained"},style:{"&:hover":{boxShadow:"none"}}}}))),ow=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiButtonGroup"}),{children:n,className:s,color:a="primary",component:i="div",disabled:l=!1,disableElevation:c=!1,disableFocusRipple:p=!1,disableRipple:u=!1,fullWidth:m=!1,orientation:g="horizontal",size:b="medium",variant:v="outlined",...h}=r,y={...r,color:a,component:i,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:u,fullWidth:m,orientation:g,size:b,variant:v},S=cg(y),C=d.useMemo(()=>({className:S.grouped,color:a,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:u,fullWidth:m,size:b,variant:v}),[a,l,c,p,u,m,b,v,S.grouped]),x=bi(n),w=x.length,P=$=>{const I=$===0,A=$===w-1;return I&&A?"":I?S.firstButton:A?S.lastButton:S.middleButton};return f.jsx(pg,{as:i,role:"group",className:j(S.root,s),ref:o,ownerState:y,...h,children:f.jsx(zi.Provider,{value:C,children:x.map(($,I)=>f.jsx(ji.Provider,{value:P(I),children:$},I))})})});function dg(t){return V("MuiCard",t)}const rw=K("MuiCard",["root"]),ug=t=>{const{classes:e}=t;return G({root:["root"]},dg,e)},fg=k(Ue,{name:"MuiCard",slot:"Root",overridesResolver:(t,e)=>e.root})({overflow:"hidden"}),nw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCard"}),{className:n,raised:s=!1,...a}=r,i={...r,raised:s},l=ug(i);return f.jsx(fg,{className:j(l.root,n),elevation:s?8:void 0,ref:o,ownerState:i,...a})});function gg(t){return V("MuiCardActionArea",t)}const Tn=K("MuiCardActionArea",["root","focusVisible","focusHighlight"]),mg=t=>{const{classes:e}=t;return G({root:["root"],focusHighlight:["focusHighlight"]},gg,e)},bg=k(ue,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${Tn.focusHighlight}`]:{opacity:(t.vars||t).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${Tn.focusVisible} .${Tn.focusHighlight}`]:{opacity:(t.vars||t).palette.action.focusOpacity}}))),vg=k("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(t,e)=>e.focusHighlight})(W(({theme:t})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:t.transitions.create("opacity",{duration:t.transitions.duration.short})}))),sw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardActionArea"}),{children:n,className:s,focusVisibleClassName:a,slots:i={},slotProps:l={},...c}=r,p=r,u=mg(p),m={slots:i,slotProps:l},[g,b]=Q("root",{elementType:bg,externalForwardedProps:{...m,...c},shouldForwardComponentProp:!0,ownerState:p,ref:o,className:j(u.root,s),additionalProps:{focusVisibleClassName:j(a,u.focusVisible)}}),[v,h]=Q("focusHighlight",{elementType:vg,externalForwardedProps:m,ownerState:p,ref:o,className:u.focusHighlight});return f.jsxs(g,{...b,children:[n,f.jsx(v,{...h})]})});function hg(t){return V("MuiCardActions",t)}const aw=K("MuiCardActions",["root","spacing"]),yg=t=>{const{classes:e,disableSpacing:o}=t;return G({root:["root",!o&&"spacing"]},hg,e)},xg=k("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),iw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardActions"}),{disableSpacing:n=!1,className:s,...a}=r,i={...r,disableSpacing:n},l=yg(i);return f.jsx(xg,{className:j(l.root,s),ownerState:i,ref:o,...a})});function Cg(t){return V("MuiCardContent",t)}const lw=K("MuiCardContent",["root"]),Sg=t=>{const{classes:e}=t;return G({root:["root"]},Cg,e)},wg=k("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:16,"&:last-child":{paddingBottom:24}}),cw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardContent"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=Sg(i);return f.jsx(wg,{as:s,className:j(l.root,n),ownerState:i,ref:o,...a})});function Rg(t){return V("MuiCardHeader",t)}const ln=K("MuiCardHeader",["root","avatar","action","content","title","subheader"]),Pg=t=>{const{classes:e}=t;return G({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},Rg,e)},$g=k("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(t,e)=>[{[`& .${ln.title}`]:e.title},{[`& .${ln.subheader}`]:e.subheader},e.root]})({display:"flex",alignItems:"center",padding:16}),kg=k("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(t,e)=>e.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),Ig=k("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(t,e)=>e.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),Tg=k("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(t,e)=>e.content})({flex:"1 1 auto",[`.${nn.root}:where(& .${ln.title})`]:{display:"block"},[`.${nn.root}:where(& .${ln.subheader})`]:{display:"block"}}),pw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardHeader"}),{action:n,avatar:s,component:a="div",disableTypography:i=!1,subheader:l,subheaderTypographyProps:c,title:p,titleTypographyProps:u,slots:m={},slotProps:g={},...b}=r,v={...r,component:a,disableTypography:i},h=Pg(v),y={slots:m,slotProps:{title:u,subheader:c,...g}};let S=p;const[C,x]=Q("title",{className:h.title,elementType:he,externalForwardedProps:y,ownerState:v,additionalProps:{variant:s?"body2":"h5",component:"span"}});S!=null&&S.type!==he&&!i&&(S=f.jsx(C,{...x,children:S}));let w=l;const[P,$]=Q("subheader",{className:h.subheader,elementType:he,externalForwardedProps:y,ownerState:v,additionalProps:{variant:s?"body2":"body1",color:"textSecondary",component:"span"}});w!=null&&w.type!==he&&!i&&(w=f.jsx(P,{...$,children:w}));const[I,A]=Q("root",{ref:o,className:h.root,elementType:$g,externalForwardedProps:{...y,...b,component:a},ownerState:v}),[T,z]=Q("avatar",{className:h.avatar,elementType:kg,externalForwardedProps:y,ownerState:v}),[E,R]=Q("content",{className:h.content,elementType:Tg,externalForwardedProps:y,ownerState:v}),[M,O]=Q("action",{className:h.action,elementType:Ig,externalForwardedProps:y,ownerState:v});return f.jsxs(I,{...A,children:[s&&f.jsx(T,{...z,children:s}),f.jsxs(E,{...R,children:[S,w]}),n&&f.jsx(M,{...O,children:n})]})});function Mg(t){return V("MuiCardMedia",t)}const dw=K("MuiCardMedia",["root","media","img"]),Lg=t=>{const{classes:e,isMediaComponent:o,isImageComponent:r}=t;return G({root:["root",o&&"media",r&&"img"]},Mg,e)},Ag=k("div",{name:"MuiCardMedia",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{isMediaComponent:r,isImageComponent:n}=o;return[e.root,r&&e.media,n&&e.img]}})({display:"block",backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center",variants:[{props:{isMediaComponent:!0},style:{width:"100%"}},{props:{isImageComponent:!0},style:{objectFit:"cover"}}]}),Bg=["video","audio","picture","iframe","img"],Eg=["picture","img"],uw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardMedia"}),{children:n,className:s,component:a="div",image:i,src:l,style:c,...p}=r,u=Bg.includes(a),m=!u&&i?{backgroundImage:`url("${i}")`,...c}:c,g={...r,component:a,isMediaComponent:u,isImageComponent:Eg.includes(a)},b=Lg(g);return f.jsx(Ag,{className:j(b.root,s),as:a,role:!u&&i?"img":void 0,ref:o,style:m,ownerState:g,src:u?i||l:void 0,...p,children:n})});function Og(t){return V("PrivateSwitchBase",t)}K("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const Ng=t=>{const{classes:e,checked:o,disabled:r,edge:n}=t,s={root:["root",o&&"checked",r&&"disabled",n&&`edge${B(n)}`],input:["input"]};return G(s,Og,e)},zg=k(ue)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:t,ownerState:e})=>t==="start"&&e.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:t,ownerState:e})=>t==="end"&&e.size!=="small",style:{marginRight:-12}}]}),jg=k("input",{shouldForwardProp:ae})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),ks=d.forwardRef(function(e,o){const{autoFocus:r,checked:n,checkedIcon:s,defaultChecked:a,disabled:i,disableFocusRipple:l=!1,edge:c=!1,icon:p,id:u,inputProps:m,inputRef:g,name:b,onBlur:v,onChange:h,onFocus:y,readOnly:S,required:C=!1,tabIndex:x,type:w,value:P,slots:$={},slotProps:I={},...A}=e,[T,z]=Te({controlled:n,default:!!a,name:"SwitchBase",state:"checked"}),E=He(),R=et=>{y&&y(et),E&&E.onFocus&&E.onFocus(et)},M=et=>{v&&v(et),E&&E.onBlur&&E.onBlur(et)},O=et=>{if(et.nativeEvent.defaultPrevented)return;const rt=et.target.checked;z(rt),h&&h(et,rt)};let L=i;E&&typeof L>"u"&&(L=E.disabled);const F=w==="checkbox"||w==="radio",D={...e,checked:T,disabled:L,disableFocusRipple:l,edge:c},N=Ng(D),J={slots:$,slotProps:{input:m,...I}},[U,wt]=Q("root",{ref:o,elementType:zg,className:N.root,shouldForwardComponentProp:!0,externalForwardedProps:{...J,component:"span",...A},getSlotProps:et=>({...et,onFocus:rt=>{var Y;(Y=et.onFocus)==null||Y.call(et,rt),R(rt)},onBlur:rt=>{var Y;(Y=et.onBlur)==null||Y.call(et,rt),M(rt)}}),ownerState:D,additionalProps:{centerRipple:!0,focusRipple:!l,disabled:L,role:void 0,tabIndex:null}}),[vt,mt]=Q("input",{ref:g,elementType:jg,className:N.input,externalForwardedProps:J,getSlotProps:et=>({onChange:rt=>{var Y;(Y=et.onChange)==null||Y.call(et,rt),O(rt)}}),ownerState:D,additionalProps:{autoFocus:r,checked:n,defaultChecked:a,disabled:L,id:F?u:void 0,name:b,readOnly:S,required:C,tabIndex:x,type:w,...w==="checkbox"&&P===void 0?{}:{value:P}}});return f.jsxs(U,{...wt,children:[f.jsx(vt,{...mt}),T?s:p]})}),Dg=Qt(f.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),Fg=Qt(f.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),Wg=Qt(f.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function Ug(t){return V("MuiCheckbox",t)}const Mn=K("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),Hg=t=>{const{classes:e,indeterminate:o,color:r,size:n}=t,s={root:["root",o&&"indeterminate",`color${B(r)}`,`size${B(n)}`]},a=G(s,Ug,e);return{...e,...a}},Vg=k(ks,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.indeterminate&&e.indeterminate,e[`size${B(o.size)}`],o.color!=="default"&&e[`color${B(o.color)}`]]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&.${Mn.checked}, &.${Mn.indeterminate}`]:{color:(t.vars||t).palette[e].main},[`&.${Mn.disabled}`]:{color:(t.vars||t).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),Gg=f.jsx(Fg,{}),Kg=f.jsx(Dg,{}),qg=f.jsx(Wg,{}),fw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCheckbox"}),{checkedIcon:n=Gg,color:s="primary",icon:a=Kg,indeterminate:i=!1,indeterminateIcon:l=qg,inputProps:c,size:p="medium",disableRipple:u=!1,className:m,slots:g={},slotProps:b={},...v}=r,h=i?l:a,y=i?l:n,S={...r,disableRipple:u,color:s,indeterminate:i,size:p},C=Hg(S),x=b.input??c,[w,P]=Q("root",{ref:o,elementType:Vg,className:j(C.root,m),shouldForwardComponentProp:!0,externalForwardedProps:{slots:g,slotProps:b,...v},ownerState:S,additionalProps:{type:"checkbox",icon:d.cloneElement(h,{fontSize:h.props.fontSize??p}),checkedIcon:d.cloneElement(y,{fontSize:y.props.fontSize??p}),disableRipple:u,slots:g,slotProps:{input:Go(typeof x=="function"?x(S):x,{"data-indeterminate":i})}}});return f.jsx(w,{...P,classes:C})});function ya(t){return t.substring(2).toLowerCase()}function Xg(t,e){return e.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const p=qt(io(e),i),u=ee(b=>{const v=c.current;c.current=!1;const h=te(i.current);if(!l.current||!i.current||"clientX"in b&&Xg(b,h))return;if(a.current){a.current=!1;return}let y;b.composedPath?y=b.composedPath().includes(i.current):y=!h.documentElement.contains(b.target)||i.current.contains(b.target),!y&&(o||!v)&&n(b)}),m=b=>v=>{c.current=!0;const h=e.props[b];h&&h(v)},g={ref:p};return s!==!1&&(g[s]=m(s)),d.useEffect(()=>{if(s!==!1){const b=ya(s),v=te(i.current),h=()=>{a.current=!0};return v.addEventListener(b,u),v.addEventListener("touchmove",h),()=>{v.removeEventListener(b,u),v.removeEventListener("touchmove",h)}}},[u,s]),r!==!1&&(g[r]=m(r)),d.useEffect(()=>{if(r!==!1){const b=ya(r),v=te(i.current);return v.addEventListener(b,u),()=>{v.removeEventListener(b,u)}}},[u,r]),d.cloneElement(e,g)}const gw=nc({createStyledComponent:k("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${B(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),useThemeProps:t=>_({props:t,name:"MuiContainer"})});function mw(t){return V("MuiContainer",t)}const bw=K("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"]),os=typeof bs({})=="function",Fi=(t,e)=>({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%",...e&&!t.vars&&{colorScheme:t.palette.mode}}),Wi=t=>({color:(t.vars||t).palette.text.primary,...t.typography.body1,backgroundColor:(t.vars||t).palette.background.default,"@media print":{backgroundColor:(t.vars||t).palette.common.white}}),Ui=(t,e=!1)=>{var s,a;const o={};e&&t.colorSchemes&&typeof t.getColorSchemeSelector=="function"&&Object.entries(t.colorSchemes).forEach(([i,l])=>{var p,u;const c=t.getColorSchemeSelector(i);c.startsWith("@")?o[c]={":root":{colorScheme:(p=l.palette)==null?void 0:p.mode}}:o[c.replace(/\s*&/,"")]={colorScheme:(u=l.palette)==null?void 0:u.mode}});let r={html:Fi(t,e),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:t.typography.fontWeightBold},body:{margin:0,...Wi(t),"&::backdrop":{backgroundColor:(t.vars||t).palette.background.default}},...o};const n=(a=(s=t.components)==null?void 0:s.MuiCssBaseline)==null?void 0:a.styleOverrides;return n&&(r=[r,n]),r},Jr="mui-ecs",Yg=t=>{const e=Ui(t,!1),o=Array.isArray(e)?e[0]:e;return!t.vars&&o&&(o.html[`:root:has(${Jr})`]={colorScheme:t.palette.mode}),t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([r,n])=>{var a,i;const s=t.getColorSchemeSelector(r);s.startsWith("@")?o[s]={[`:root:not(:has(.${Jr}))`]:{colorScheme:(a=n.palette)==null?void 0:a.mode}}:o[s.replace(/\s*&/,"")]={[`&:not(:has(.${Jr}))`]:{colorScheme:(i=n.palette)==null?void 0:i.mode}}}),e},Zg=bs(os?({theme:t,enableColorScheme:e})=>Ui(t,e):({theme:t})=>Yg(t));function vw(t){const e=_({props:t,name:"MuiCssBaseline"}),{children:o,enableColorScheme:r=!1}=e;return f.jsxs(d.Fragment,{children:[os&&f.jsx(Zg,{enableColorScheme:r}),!os&&!r&&f.jsx("span",{className:Jr,style:{display:"none"}}),o]})}const Qg={track:"#2b2b2b",thumb:"#6b6b6b",active:"#959595"};function hw(t=Qg){return{scrollbarColor:`${t.thumb} ${t.track}`,"&::-webkit-scrollbar, & *::-webkit-scrollbar":{backgroundColor:t.track},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{borderRadius:8,backgroundColor:t.thumb,minHeight:24,border:`3px solid ${t.track}`},"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:t.active},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:t.track}}}function Jg(t){const e=te(t);return e.body===t?me(t).innerWidth>e.documentElement.clientWidth:t.scrollHeight>t.clientHeight}function gr(t,e){e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden")}function xa(t){return parseInt(me(t).getComputedStyle(t).paddingRight,10)||0}function tm(t){const o=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(t.tagName),r=t.tagName==="INPUT"&&t.getAttribute("type")==="hidden";return o||r}function Ca(t,e,o,r,n){const s=[e,o,...r];[].forEach.call(t.children,a=>{const i=!s.includes(a),l=!tm(a);i&&l&&gr(a,n)})}function Ln(t,e){let o=-1;return t.some((r,n)=>e(r)?(o=n,!0):!1),o}function em(t,e){const o=[],r=t.container;if(!e.disableScrollLock){if(Jg(r)){const a=mi(me(r));o.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${xa(r)+a}px`;const i=te(r).querySelectorAll(".mui-fixed");[].forEach.call(i,l=>{o.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${xa(l)+a}px`})}let s;if(r.parentNode instanceof DocumentFragment)s=te(r).body;else{const a=r.parentElement,i=me(r);s=(a==null?void 0:a.nodeName)==="HTML"&&i.getComputedStyle(a).overflowY==="scroll"?a:r}o.push({value:s.style.overflow,property:"overflow",el:s},{value:s.style.overflowX,property:"overflow-x",el:s},{value:s.style.overflowY,property:"overflow-y",el:s}),s.style.overflow="hidden"}return()=>{o.forEach(({value:s,el:a,property:i})=>{s?a.style.setProperty(i,s):a.style.removeProperty(i)})}}function om(t){const e=[];return[].forEach.call(t.children,o=>{o.getAttribute("aria-hidden")==="true"&&e.push(o)}),e}class rm{constructor(){this.modals=[],this.containers=[]}add(e,o){let r=this.modals.indexOf(e);if(r!==-1)return r;r=this.modals.length,this.modals.push(e),e.modalRef&&gr(e.modalRef,!1);const n=om(o);Ca(o,e.mount,e.modalRef,n,!0);const s=Ln(this.containers,a=>a.container===o);return s!==-1?(this.containers[s].modals.push(e),r):(this.containers.push({modals:[e],container:o,restore:null,hiddenSiblings:n}),r)}mount(e,o){const r=Ln(this.containers,s=>s.modals.includes(e)),n=this.containers[r];n.restore||(n.restore=em(n,o))}remove(e,o=!0){const r=this.modals.indexOf(e);if(r===-1)return r;const n=Ln(this.containers,a=>a.modals.includes(e)),s=this.containers[n];if(s.modals.splice(s.modals.indexOf(e),1),this.modals.splice(r,1),s.modals.length===0)s.restore&&s.restore(),e.modalRef&&gr(e.modalRef,o),Ca(s.container,e.mount,e.modalRef,s.hiddenSiblings,!1),this.containers.splice(n,1);else{const a=s.modals[s.modals.length-1];a.modalRef&&gr(a.modalRef,!1)}return r}isTopModal(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}const nm=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function sm(t){const e=parseInt(t.getAttribute("tabindex")||"",10);return Number.isNaN(e)?t.contentEditable==="true"||(t.nodeName==="AUDIO"||t.nodeName==="VIDEO"||t.nodeName==="DETAILS")&&t.getAttribute("tabindex")===null?0:t.tabIndex:e}function am(t){if(t.tagName!=="INPUT"||t.type!=="radio"||!t.name)return!1;const e=r=>t.ownerDocument.querySelector(`input[type="radio"]${r}`);let o=e(`[name="${t.name}"]:checked`);return o||(o=e(`[name="${t.name}"]`)),o!==t}function im(t){return!(t.disabled||t.tagName==="INPUT"&&t.type==="hidden"||am(t))}function lm(t){const e=[],o=[];return Array.from(t.querySelectorAll(nm)).forEach((r,n)=>{const s=sm(r);s===-1||!im(r)||(s===0?e.push(r):o.push({documentOrder:n,tabIndex:s,node:r}))}),o.sort((r,n)=>r.tabIndex===n.tabIndex?r.documentOrder-n.documentOrder:r.tabIndex-n.tabIndex).map(r=>r.node).concat(e)}function cm(){return!0}function pm(t){const{children:e,disableAutoFocus:o=!1,disableEnforceFocus:r=!1,disableRestoreFocus:n=!1,getTabbable:s=lm,isEnabled:a=cm,open:i}=t,l=d.useRef(!1),c=d.useRef(null),p=d.useRef(null),u=d.useRef(null),m=d.useRef(null),g=d.useRef(!1),b=d.useRef(null),v=qt(io(e),b),h=d.useRef(null);d.useEffect(()=>{!i||!b.current||(g.current=!o)},[o,i]),d.useEffect(()=>{if(!i||!b.current)return;const C=te(b.current);return b.current.contains(C.activeElement)||(b.current.hasAttribute("tabIndex")||b.current.setAttribute("tabIndex","-1"),g.current&&b.current.focus()),()=>{n||(u.current&&u.current.focus&&(l.current=!0,u.current.focus()),u.current=null)}},[i]),d.useEffect(()=>{if(!i||!b.current)return;const C=te(b.current),x=$=>{h.current=$,!(r||!a()||$.key!=="Tab")&&C.activeElement===b.current&&$.shiftKey&&(l.current=!0,p.current&&p.current.focus())},w=()=>{var A,T;const $=b.current;if($===null)return;if(!C.hasFocus()||!a()||l.current){l.current=!1;return}if($.contains(C.activeElement)||r&&C.activeElement!==c.current&&C.activeElement!==p.current)return;if(C.activeElement!==m.current)m.current=null;else if(m.current!==null)return;if(!g.current)return;let I=[];if((C.activeElement===c.current||C.activeElement===p.current)&&(I=s(b.current)),I.length>0){const z=!!((A=h.current)!=null&&A.shiftKey&&((T=h.current)==null?void 0:T.key)==="Tab"),E=I[0],R=I[I.length-1];typeof E!="string"&&typeof R!="string"&&(z?R.focus():E.focus())}else $.focus()};C.addEventListener("focusin",w),C.addEventListener("keydown",x,!0);const P=setInterval(()=>{C.activeElement&&C.activeElement.tagName==="BODY"&&w()},50);return()=>{clearInterval(P),C.removeEventListener("focusin",w),C.removeEventListener("keydown",x,!0)}},[o,r,n,a,i,s]);const y=C=>{u.current===null&&(u.current=C.relatedTarget),g.current=!0,m.current=C.target;const x=e.props.onFocus;x&&x(C)},S=C=>{u.current===null&&(u.current=C.relatedTarget),g.current=!0};return f.jsxs(d.Fragment,{children:[f.jsx("div",{tabIndex:i?0:-1,onFocus:S,ref:c,"data-testid":"sentinelStart"}),d.cloneElement(e,{ref:v,onFocus:y}),f.jsx("div",{tabIndex:i?0:-1,onFocus:S,ref:p,"data-testid":"sentinelEnd"})]})}function dm(t){return typeof t=="function"?t():t}function um(t){return t?t.props.hasOwnProperty("in"):!1}const Sa=()=>{},jr=new rm;function fm(t){const{container:e,disableEscapeKeyDown:o=!1,disableScrollLock:r=!1,closeAfterTransition:n=!1,onTransitionEnter:s,onTransitionExited:a,children:i,onClose:l,open:c,rootRef:p}=t,u=d.useRef({}),m=d.useRef(null),g=d.useRef(null),b=qt(g,p),[v,h]=d.useState(!c),y=um(i);let S=!0;(t["aria-hidden"]==="false"||t["aria-hidden"]===!1)&&(S=!1);const C=()=>te(m.current),x=()=>(u.current.modalRef=g.current,u.current.mount=m.current,u.current),w=()=>{jr.mount(x(),{disableScrollLock:r}),g.current&&(g.current.scrollTop=0)},P=ee(()=>{const O=dm(e)||C().body;jr.add(x(),O),g.current&&w()}),$=()=>jr.isTopModal(x()),I=ee(O=>{m.current=O,O&&(c&&$()?w():g.current&&gr(g.current,S))}),A=d.useCallback(()=>{jr.remove(x(),S)},[S]);d.useEffect(()=>()=>{A()},[A]),d.useEffect(()=>{c?P():(!y||!n)&&A()},[c,A,y,n,P]);const T=O=>L=>{var F;(F=O.onKeyDown)==null||F.call(O,L),!(L.key!=="Escape"||L.which===229||!$())&&(o||(L.stopPropagation(),l&&l(L,"escapeKeyDown")))},z=O=>L=>{var F;(F=O.onClick)==null||F.call(O,L),L.target===L.currentTarget&&l&&l(L,"backdropClick")};return{getRootProps:(O={})=>{const L=Mo(t);delete L.onTransitionEnter,delete L.onTransitionExited;const F={...L,...O};return{role:"presentation",...F,onKeyDown:T(F),ref:b}},getBackdropProps:(O={})=>{const L=O;return{"aria-hidden":!0,...L,onClick:z(L),open:c}},getTransitionProps:()=>{const O=()=>{h(!1),s&&s()},L=()=>{h(!0),a&&a(),n&&A()};return{onEnter:Gn(O,(i==null?void 0:i.props.onEnter)??Sa),onExited:Gn(L,(i==null?void 0:i.props.onExited)??Sa)}},rootRef:b,portalRef:I,isTopModal:$,exited:v,hasTransition:y}}function gm(t){return V("MuiModal",t)}const yw=K("MuiModal",["root","hidden","backdrop"]),mm=t=>{const{open:e,exited:o,classes:r}=t;return G({root:["root",!e&&o&&"hidden"],backdrop:["backdrop"]},gm,r)},bm=k("div",{name:"MuiModal",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.open&&o.exited&&e.hidden]}})(W(({theme:t})=>({position:"fixed",zIndex:(t.vars||t).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:e})=>!e.open&&e.exited,style:{visibility:"hidden"}}]}))),vm=k(Oi,{name:"MuiModal",slot:"Backdrop",overridesResolver:(t,e)=>e.backdrop})({zIndex:-1}),Is=d.forwardRef(function(e,o){const r=_({name:"MuiModal",props:e}),{BackdropComponent:n=vm,BackdropProps:s,classes:a,className:i,closeAfterTransition:l=!1,children:c,container:p,component:u,components:m={},componentsProps:g={},disableAutoFocus:b=!1,disableEnforceFocus:v=!1,disableEscapeKeyDown:h=!1,disablePortal:y=!1,disableRestoreFocus:S=!1,disableScrollLock:C=!1,hideBackdrop:x=!1,keepMounted:w=!1,onBackdropClick:P,onClose:$,onTransitionEnter:I,onTransitionExited:A,open:T,slotProps:z={},slots:E={},theme:R,...M}=r,O={...r,closeAfterTransition:l,disableAutoFocus:b,disableEnforceFocus:v,disableEscapeKeyDown:h,disablePortal:y,disableRestoreFocus:S,disableScrollLock:C,hideBackdrop:x,keepMounted:w},{getRootProps:L,getBackdropProps:F,getTransitionProps:D,portalRef:N,isTopModal:J,exited:U,hasTransition:wt}=fm({...O,rootRef:o}),vt={...O,exited:U},mt=mm(vt),et={};if(c.props.tabIndex===void 0&&(et.tabIndex="-1"),wt){const{onEnter:ft,onExited:Z}=D();et.onEnter=ft,et.onExited=Z}const rt={slots:{root:m.Root,backdrop:m.Backdrop,...E},slotProps:{...g,...z}},[Y,at]=Q("root",{ref:o,elementType:bm,externalForwardedProps:{...rt,...M,component:u},getSlotProps:L,ownerState:vt,className:j(i,mt==null?void 0:mt.root,!vt.open&&vt.exited&&(mt==null?void 0:mt.hidden))}),[ct,st]=Q("backdrop",{ref:s==null?void 0:s.ref,elementType:n,externalForwardedProps:rt,shouldForwardComponentProp:!0,additionalProps:s,getSlotProps:ft=>F({...ft,onClick:Z=>{P&&P(Z),ft!=null&&ft.onClick&&ft.onClick(Z)}}),className:j(s==null?void 0:s.className,mt==null?void 0:mt.backdrop),ownerState:vt});return!w&&!T&&(!wt||U)?null:f.jsx(Ei,{ref:N,container:p,disablePortal:y,children:f.jsxs(Y,{...at,children:[!x&&n?f.jsx(ct,{...st}):null,f.jsx(pm,{disableEnforceFocus:v,disableAutoFocus:b,disableRestoreFocus:S,isEnabled:J,open:T,children:d.cloneElement(c,et)})]})})});function hm(t){return V("MuiDialog",t)}const An=K("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),Hi=d.createContext({}),ym=k(Oi,{name:"MuiDialog",slot:"Backdrop",overrides:(t,e)=>e.backdrop})({zIndex:-1}),xm=t=>{const{classes:e,scroll:o,maxWidth:r,fullWidth:n,fullScreen:s}=t,a={root:["root"],container:["container",`scroll${B(o)}`],paper:["paper",`paperScroll${B(o)}`,`paperWidth${B(String(r))}`,n&&"paperFullWidth",s&&"paperFullScreen"]};return G(a,hm,e)},Cm=k(Is,{name:"MuiDialog",slot:"Root",overridesResolver:(t,e)=>e.root})({"@media print":{position:"absolute !important"}}),Sm=k("div",{name:"MuiDialog",slot:"Container",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.container,e[`scroll${B(o.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),wm=k(Ue,{name:"MuiDialog",slot:"Paper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.paper,e[`scrollPaper${B(o.scroll)}`],e[`paperWidth${B(String(o.maxWidth))}`],o.fullWidth&&e.paperFullWidth,o.fullScreen&&e.paperFullScreen]}})(W(({theme:t})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:e})=>!e.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:t.breakpoints.unit==="px"?Math.max(t.breakpoints.values.xs,444):`max(${t.breakpoints.values.xs}${t.breakpoints.unit}, 444px)`,[`&.${An.paperScrollBody}`]:{[t.breakpoints.down(Math.max(t.breakpoints.values.xs,444)+32*2)]:{maxWidth:"calc(100% - 64px)"}}}},...Object.keys(t.breakpoints.values).filter(e=>e!=="xs").map(e=>({props:{maxWidth:e},style:{maxWidth:`${t.breakpoints.values[e]}${t.breakpoints.unit}`,[`&.${An.paperScrollBody}`]:{[t.breakpoints.down(t.breakpoints.values[e]+32*2)]:{maxWidth:"calc(100% - 64px)"}}}})),{props:({ownerState:e})=>e.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:e})=>e.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${An.paperScrollBody}`]:{margin:0,maxWidth:"100%"}}}]}))),xw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialog"}),n=le(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{"aria-describedby":a,"aria-labelledby":i,"aria-modal":l=!0,BackdropComponent:c,BackdropProps:p,children:u,className:m,disableEscapeKeyDown:g=!1,fullScreen:b=!1,fullWidth:v=!1,maxWidth:h="sm",onBackdropClick:y,onClick:S,onClose:C,open:x,PaperComponent:w=Ue,PaperProps:P={},scroll:$="paper",slots:I={},slotProps:A={},TransitionComponent:T=es,transitionDuration:z=s,TransitionProps:E,...R}=r,M={...r,disableEscapeKeyDown:g,fullScreen:b,fullWidth:v,maxWidth:h,scroll:$},O=xm(M),L=d.useRef(),F=it=>{L.current=it.target===it.currentTarget},D=it=>{S&&S(it),L.current&&(L.current=null,y&&y(it),C&&C(it,"backdropClick"))},N=De(i),J=d.useMemo(()=>({titleId:N}),[N]),U={transition:T,...I},wt={transition:E,paper:P,backdrop:p,...A},vt={slots:U,slotProps:wt},[mt,et]=Q("root",{elementType:Cm,shouldForwardComponentProp:!0,externalForwardedProps:vt,ownerState:M,className:j(O.root,m),ref:o}),[rt,Y]=Q("backdrop",{elementType:ym,shouldForwardComponentProp:!0,externalForwardedProps:vt,ownerState:M}),[at,ct]=Q("paper",{elementType:wm,shouldForwardComponentProp:!0,externalForwardedProps:vt,ownerState:M,className:j(O.paper,P.className)}),[st,ft]=Q("container",{elementType:Sm,externalForwardedProps:vt,ownerState:M,className:j(O.container)}),[Z,pt]=Q("transition",{elementType:es,externalForwardedProps:vt,ownerState:M,additionalProps:{appear:!0,in:x,timeout:z,role:"presentation"}});return f.jsx(mt,{closeAfterTransition:!0,slots:{backdrop:rt},slotProps:{backdrop:{transitionDuration:z,as:c,...Y}},disableEscapeKeyDown:g,onClose:C,open:x,onClick:D,...et,...R,children:f.jsx(Z,{...pt,children:f.jsx(st,{onMouseDown:F,...ft,children:f.jsx(at,{as:w,elevation:24,role:"dialog","aria-describedby":a,"aria-labelledby":N,"aria-modal":l,...ct,children:f.jsx(Hi.Provider,{value:J,children:u})})})})})});function Rm(t){return V("MuiDialogActions",t)}const Cw=K("MuiDialogActions",["root","spacing"]),Pm=t=>{const{classes:e,disableSpacing:o}=t;return G({root:["root",!o&&"spacing"]},Rm,e)},$m=k("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:t})=>!t.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),Sw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogActions"}),{className:n,disableSpacing:s=!1,...a}=r,i={...r,disableSpacing:s},l=Pm(i);return f.jsx($m,{className:j(l.root,n),ownerState:i,ref:o,...a})});function km(t){return V("MuiDialogContent",t)}const ww=K("MuiDialogContent",["root","dividers"]);function Im(t){return V("MuiDialogTitle",t)}const Tm=K("MuiDialogTitle",["root"]),Mm=t=>{const{classes:e,dividers:o}=t;return G({root:["root",o&&"dividers"]},km,e)},Lm=k("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.dividers&&e.dividers]}})(W(({theme:t})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:e})=>e.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(t.vars||t).palette.divider}`,borderBottom:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>!e.dividers,style:{[`.${Tm.root} + &`]:{paddingTop:0}}}]}))),Rw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogContent"}),{className:n,dividers:s=!1,...a}=r,i={...r,dividers:s},l=Mm(i);return f.jsx(Lm,{className:j(l.root,n),ownerState:i,ref:o,...a})});function Am(t){return V("MuiDialogContentText",t)}const Pw=K("MuiDialogContentText",["root"]),Bm=t=>{const{classes:e}=t,r=G({root:["root"]},Am,e);return{...e,...r}},Em=k(he,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiDialogContentText",slot:"Root",overridesResolver:(t,e)=>e.root})({}),$w=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogContentText"}),{children:n,className:s,...a}=r,i=Bm(a);return f.jsx(Em,{component:"p",variant:"body1",color:"textSecondary",ref:o,ownerState:a,className:j(i.root,s),...r,classes:i})}),Om=t=>{const{classes:e}=t;return G({root:["root"]},Im,e)},Nm=k(he,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:"16px 24px",flex:"0 0 auto"}),kw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogTitle"}),{className:n,id:s,...a}=r,i=r,l=Om(i),{titleId:c=s}=d.useContext(Hi);return f.jsx(Nm,{component:"h2",className:j(l.root,n),ownerState:i,ref:o,variant:"h6",id:s??c,...a})});function zm(t){return V("MuiDivider",t)}const wa=K("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),jm=t=>{const{absolute:e,children:o,classes:r,flexItem:n,light:s,orientation:a,textAlign:i,variant:l}=t;return G({root:["root",e&&"absolute",l,s&&"light",a==="vertical"&&"vertical",n&&"flexItem",o&&"withChildren",o&&a==="vertical"&&"withChildrenVertical",i==="right"&&a!=="vertical"&&"textAlignRight",i==="left"&&a!=="vertical"&&"textAlignLeft"],wrapper:["wrapper",a==="vertical"&&"wrapperVertical"]},zm,r)},Dm=k("div",{name:"MuiDivider",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.absolute&&e.absolute,e[o.variant],o.light&&e.light,o.orientation==="vertical"&&e.vertical,o.flexItem&&e.flexItem,o.children&&e.withChildren,o.children&&o.orientation==="vertical"&&e.withChildrenVertical,o.textAlign==="right"&&o.orientation!=="vertical"&&e.textAlignRight,o.textAlign==="left"&&o.orientation!=="vertical"&&e.textAlignLeft]}})(W(({theme:t})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(t.vars||t).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{light:!0},style:{borderColor:t.vars?`rgba(${t.vars.palette.dividerChannel} / 0.08)`:kt(t.palette.divider,.08)}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:t.spacing(2),marginRight:t.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:t.spacing(1),marginBottom:t.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:e})=>!!e.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:e})=>e.children&&e.orientation!=="vertical",style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(t.vars||t).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:e})=>e.orientation==="vertical"&&e.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(t.vars||t).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:e})=>e.textAlign==="right"&&e.orientation!=="vertical",style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:e})=>e.textAlign==="left"&&e.orientation!=="vertical",style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),Fm=k("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.wrapper,o.orientation==="vertical"&&e.wrapperVertical]}})(W(({theme:t})=>({display:"inline-block",paddingLeft:`calc(${t.spacing(1)} * 1.2)`,paddingRight:`calc(${t.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${t.spacing(1)} * 1.2)`,paddingBottom:`calc(${t.spacing(1)} * 1.2)`}}]}))),Ra=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDivider"}),{absolute:n=!1,children:s,className:a,orientation:i="horizontal",component:l=s||i==="vertical"?"div":"hr",flexItem:c=!1,light:p=!1,role:u=l!=="hr"?"separator":void 0,textAlign:m="center",variant:g="fullWidth",...b}=r,v={...r,absolute:n,component:l,flexItem:c,light:p,orientation:i,role:u,textAlign:m,variant:g},h=jm(v);return f.jsx(Dm,{as:l,className:j(h.root,a),role:u,ref:o,ownerState:v,"aria-orientation":u==="separator"&&(l!=="hr"||i==="vertical")?i:void 0,...b,children:s?f.jsx(Fm,{className:h.wrapper,ownerState:v,children:s}):null})});Ra&&(Ra.muiSkipListHighlight=!0);function Wm(t,e,o){const r=e.getBoundingClientRect(),n=o&&o.getBoundingClientRect(),s=me(e);let a;if(e.fakeTransform)a=e.fakeTransform;else{const c=s.getComputedStyle(e);a=c.getPropertyValue("-webkit-transform")||c.getPropertyValue("transform")}let i=0,l=0;if(a&&a!=="none"&&typeof a=="string"){const c=a.split("(")[1].split(")")[0].split(",");i=parseInt(c[4],10),l=parseInt(c[5],10)}return t==="left"?n?`translateX(${n.right+i-r.left}px)`:`translateX(${s.innerWidth+i-r.left}px)`:t==="right"?n?`translateX(-${r.right-n.left-i}px)`:`translateX(-${r.left+r.width-i}px)`:t==="up"?n?`translateY(${n.bottom+l-r.top}px)`:`translateY(${s.innerHeight+l-r.top}px)`:n?`translateY(-${r.top-n.top+r.height-l}px)`:`translateY(-${r.top+r.height-l}px)`}function Um(t){return typeof t=="function"?t():t}function Dr(t,e,o){const r=Um(o),n=Wm(t,e,r);n&&(e.style.webkitTransform=n,e.style.transform=n)}const Hm=d.forwardRef(function(e,o){const r=le(),n={enter:r.transitions.easing.easeOut,exit:r.transitions.easing.sharp},s={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:a,appear:i=!0,children:l,container:c,direction:p="down",easing:u=n,in:m,onEnter:g,onEntered:b,onEntering:v,onExit:h,onExited:y,onExiting:S,style:C,timeout:x=s,TransitionComponent:w=Le,...P}=e,$=d.useRef(null),I=qt(io(l),$,o),A=D=>N=>{D&&(N===void 0?D($.current):D($.current,N))},T=A((D,N)=>{Dr(p,D,c),mn(D),g&&g(D,N)}),z=A((D,N)=>{const J=Ge({timeout:x,style:C,easing:u},{mode:"enter"});D.style.webkitTransition=r.transitions.create("-webkit-transform",{...J}),D.style.transition=r.transitions.create("transform",{...J}),D.style.webkitTransform="none",D.style.transform="none",v&&v(D,N)}),E=A(b),R=A(S),M=A(D=>{const N=Ge({timeout:x,style:C,easing:u},{mode:"exit"});D.style.webkitTransition=r.transitions.create("-webkit-transform",N),D.style.transition=r.transitions.create("transform",N),Dr(p,D,c),h&&h(D)}),O=A(D=>{D.style.webkitTransition="",D.style.transition="",y&&y(D)}),L=D=>{a&&a($.current,D)},F=d.useCallback(()=>{$.current&&Dr(p,$.current,c)},[p,c]);return d.useEffect(()=>{if(m||p==="down"||p==="right")return;const D=$r(()=>{$.current&&Dr(p,$.current,c)}),N=me($.current);return N.addEventListener("resize",D),()=>{D.clear(),N.removeEventListener("resize",D)}},[p,m,c]),d.useEffect(()=>{m||F()},[m,F]),f.jsx(w,{nodeRef:$,onEnter:T,onEntered:E,onEntering:z,onExit:M,onExited:O,onExiting:R,addEndListener:L,appear:i,in:m,timeout:x,...P,children:(D,{ownerState:N,...J})=>d.cloneElement(l,{ref:I,style:{visibility:D==="exited"&&!m?"hidden":void 0,...C,...l.props.style},...J})})});function Vm(t){return V("MuiDrawer",t)}const Iw=K("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]),Vi=(t,e)=>{const{ownerState:o}=t;return[e.root,(o.variant==="permanent"||o.variant==="persistent")&&e.docked,e.modal]},Gm=t=>{const{classes:e,anchor:o,variant:r}=t,n={root:["root",`anchor${B(o)}`],docked:[(r==="permanent"||r==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${B(o)}`,r!=="temporary"&&`paperAnchorDocked${B(o)}`]};return G(n,Vm,e)},Km=k(Is,{name:"MuiDrawer",slot:"Root",overridesResolver:Vi})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.drawer}))),qm=k("div",{shouldForwardProp:ae,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:Vi})({flex:"0 0 auto"}),Xm=k(Ue,{name:"MuiDrawer",slot:"Paper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.paper,e[`paperAnchor${B(o.anchor)}`],o.variant!=="temporary"&&e[`paperAnchorDocked${B(o.anchor)}`]]}})(W(({theme:t})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(t.vars||t).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:e})=>e.anchor==="left"&&e.variant!=="temporary",style:{borderRight:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="top"&&e.variant!=="temporary",style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="right"&&e.variant!=="temporary",style:{borderLeft:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="bottom"&&e.variant!=="temporary",style:{borderTop:`1px solid ${(t.vars||t).palette.divider}`}}]}))),Gi={left:"right",right:"left",top:"down",bottom:"up"};function Po(t){return["left","right"].includes(t)}function pr({direction:t},e){return t==="rtl"&&Po(e)?Gi[e]:e}const _m=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDrawer"}),n=le(),s=Ke(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{anchor:i="left",BackdropProps:l,children:c,className:p,elevation:u=16,hideBackdrop:m=!1,ModalProps:{BackdropProps:g,...b}={},onClose:v,open:h=!1,PaperProps:y={},SlideProps:S,TransitionComponent:C,transitionDuration:x=a,variant:w="temporary",slots:P={},slotProps:$={},...I}=r,A=d.useRef(!1);d.useEffect(()=>{A.current=!0},[]);const T=pr({direction:s?"rtl":"ltr"},i),E={...r,anchor:i,elevation:u,open:h,variant:w,...I},R=Gm(E),M={slots:{transition:C,...P},slotProps:{paper:y,transition:S,...$,backdrop:Go($.backdrop||{...l,...g},{transitionDuration:x})}},[O,L]=Q("root",{ref:o,elementType:Km,className:j(R.root,R.modal,p),shouldForwardComponentProp:!0,ownerState:E,externalForwardedProps:{...M,...I,...b},additionalProps:{open:h,onClose:v,hideBackdrop:m,slots:{backdrop:M.slots.backdrop},slotProps:{backdrop:M.slotProps.backdrop}}}),[F,D]=Q("paper",{elementType:Xm,shouldForwardComponentProp:!0,className:j(R.paper,y.className),ownerState:E,externalForwardedProps:M,additionalProps:{elevation:w==="temporary"?u:0,square:!0}}),[N,J]=Q("docked",{elementType:qm,ref:o,className:j(R.root,R.docked,p),ownerState:E,externalForwardedProps:M,additionalProps:I}),[U,wt]=Q("transition",{elementType:Hm,ownerState:E,externalForwardedProps:M,additionalProps:{in:h,direction:Gi[T],timeout:x,appear:A.current}}),vt=f.jsx(F,{...D,children:c});if(w==="permanent")return f.jsx(N,{...J,children:vt});const mt=f.jsx(U,{...wt,children:vt});return w==="persistent"?f.jsx(N,{...J,children:mt}):f.jsx(O,{...L,children:mt})});function Ym(t){return V("MuiFab",t)}const Pa=K("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]),Zm=t=>{const{color:e,variant:o,classes:r,size:n}=t,s={root:["root",o,`size${B(n)}`,e==="inherit"?"colorInherit":e]},a=G(s,Ym,r);return{...r,...a}},Qm=k(ue,{name:"MuiFab",slot:"Root",shouldForwardProp:t=>ae(t)||t==="classes",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${B(o.size)}`],o.color==="inherit"&&e.colorInherit,e[B(o.size)],e[o.color]]}})(W(({theme:t})=>{var e,o;return{...t.typography.button,minHeight:36,transition:t.transitions.create(["background-color","box-shadow","border-color"],{duration:t.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(t.vars||t).zIndex.fab,boxShadow:(t.vars||t).shadows[6],"&:active":{boxShadow:(t.vars||t).shadows[12]},color:t.vars?t.vars.palette.text.primary:(o=(e=t.palette).getContrastText)==null?void 0:o.call(e,t.palette.grey[300]),backgroundColor:(t.vars||t).palette.grey[300],"&:hover":{backgroundColor:(t.vars||t).palette.grey.A100,"@media (hover: none)":{backgroundColor:(t.vars||t).palette.grey[300]},textDecoration:"none"},[`&.${Pa.focusVisible}`]:{boxShadow:(t.vars||t).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:48/2,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:34/2,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:40/2,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]}}),W(({theme:t})=>({variants:[...Object.entries(t.palette).filter(jt(["dark","contrastText"])).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}}}}))]})),W(({theme:t})=>({[`&.${Pa.disabled}`]:{color:(t.vars||t).palette.action.disabled,boxShadow:(t.vars||t).shadows[0],backgroundColor:(t.vars||t).palette.action.disabledBackground}}))),Ki=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFab"}),{children:n,className:s,color:a="default",component:i="button",disabled:l=!1,disableFocusRipple:c=!1,focusVisibleClassName:p,size:u="large",variant:m="circular",...g}=r,b={...r,color:a,component:i,disabled:l,disableFocusRipple:c,size:u,variant:m},v=Zm(b);return f.jsx(Qm,{className:j(v.root,s),component:i,disabled:l,focusRipple:!c,focusVisibleClassName:j(v.focusVisible,p),ownerState:b,ref:o,...g,classes:v,children:n})}),Jm=t=>{const{classes:e,disableUnderline:o,startAdornment:r,endAdornment:n,size:s,hiddenLabel:a,multiline:i}=t,l={root:["root",!o&&"underline",r&&"adornedStart",n&&"adornedEnd",s==="small"&&`size${B(s)}`,a&&"hiddenLabel",i&&"multiline"],input:["input"]},c=G(l,Qu,e);return{...e,...c}},tb=k(Cn,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[...yn(t,e),!o.disableUnderline&&e.underline]}})(W(({theme:t})=>{const e=t.palette.mode==="light",o=e?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=e?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",n=e?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",s=e?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:t.vars?t.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(t.vars||t).shape.borderRadius,borderTopRightRadius:(t.vars||t).shape.borderRadius,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut}),"&:hover":{backgroundColor:t.vars?t.vars.palette.FilledInput.hoverBg:n,"@media (hover: none)":{backgroundColor:t.vars?t.vars.palette.FilledInput.bg:r}},[`&.${Ie.focused}`]:{backgroundColor:t.vars?t.vars.palette.FilledInput.bg:r},[`&.${Ie.disabled}`]:{backgroundColor:t.vars?t.vars.palette.FilledInput.disabledBg:s},variants:[{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Ie.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Ie.error}`]:{"&::before, &::after":{borderBottomColor:(t.vars||t).palette.error.main}},"&::before":{borderBottom:`1px solid ${t.vars?`rgba(${t.vars.palette.common.onBackgroundChannel} / ${t.vars.opacity.inputUnderline})`:o}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:t.transitions.create("border-bottom-color",{duration:t.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Ie.disabled}, .${Ie.error}):before`]:{borderBottom:`1px solid ${(t.vars||t).palette.text.primary}`},[`&.${Ie.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(t.palette).filter(jt()).map(([a])=>{var i;return{props:{disableUnderline:!1,color:a},style:{"&::after":{borderBottom:`2px solid ${(i=(t.vars||t).palette[a])==null?void 0:i.main}`}}}}),{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:12}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:12}},{props:({ownerState:a})=>a.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:a,size:i})=>a.multiline&&i==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel&&a.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),eb=k(Sn,{name:"MuiFilledInput",slot:"Input",overridesResolver:xn})(W(({theme:t})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:t.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:t.palette.mode==="light"?null:"#fff",caretColor:t.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...t.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[t.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}},{props:({ownerState:e})=>e.hiddenLabel&&e.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:e})=>e.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),Ts=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFilledInput"}),{disableUnderline:n=!1,components:s={},componentsProps:a,fullWidth:i=!1,hiddenLabel:l,inputComponent:c="input",multiline:p=!1,slotProps:u,slots:m={},type:g="text",...b}=r,v={...r,disableUnderline:n,fullWidth:i,inputComponent:c,multiline:p,type:g},h=Jm(r),y={root:{ownerState:v},input:{ownerState:v}},S=u??a?wr(y,u??a):y,C=m.root??s.Root??tb,x=m.input??s.Input??eb;return f.jsx(wn,{slots:{root:C,input:x},slotProps:S,fullWidth:i,inputComponent:c,multiline:p,ref:o,type:g,...b,classes:h})});Ts.muiName="Input";function ob(t){return V("MuiFormControl",t)}const Tw=K("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]),rb=t=>{const{classes:e,margin:o,fullWidth:r}=t,n={root:["root",o!=="none"&&`margin${B(o)}`,r&&"fullWidth"]};return G(n,ob,e)},nb=k("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`margin${B(o.margin)}`],o.fullWidth&&e.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),sb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormControl"}),{children:n,className:s,color:a="primary",component:i="div",disabled:l=!1,error:c=!1,focused:p,fullWidth:u=!1,hiddenLabel:m=!1,margin:g="none",required:b=!1,size:v="medium",variant:h="outlined",...y}=r,S={...r,color:a,component:i,disabled:l,error:c,fullWidth:u,hiddenLabel:m,margin:g,required:b,size:v,variant:h},C=rb(S),[x,w]=d.useState(()=>{let O=!1;return n&&d.Children.forEach(n,L=>{if(!yo(L,["Input","Select"]))return;const F=yo(L,["Select"])?L.props.input:L;F&&qu(F.props)&&(O=!0)}),O}),[P,$]=d.useState(()=>{let O=!1;return n&&d.Children.forEach(n,L=>{yo(L,["Input","Select"])&&(an(L.props,!0)||an(L.props.inputProps,!0))&&(O=!0)}),O}),[I,A]=d.useState(!1);l&&I&&A(!1);const T=p!==void 0&&!l?p:I;let z;d.useRef(!1);const E=d.useCallback(()=>{$(!0)},[]),R=d.useCallback(()=>{$(!1)},[]),M=d.useMemo(()=>({adornedStart:x,setAdornedStart:w,color:a,disabled:l,error:c,filled:P,focused:T,fullWidth:u,hiddenLabel:m,size:v,onBlur:()=>{A(!1)},onFocus:()=>{A(!0)},onEmpty:R,onFilled:E,registerEffect:z,required:b,variant:h}),[x,a,l,c,P,T,u,m,z,R,E,b,v,h]);return f.jsx(hn.Provider,{value:M,children:f.jsx(nb,{as:i,ownerState:S,className:j(C.root,s),ref:o,...y,children:n})})});function ab(t){return V("MuiFormControlLabel",t)}const dr=K("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),ib=t=>{const{classes:e,disabled:o,labelPlacement:r,error:n,required:s}=t,a={root:["root",o&&"disabled",`labelPlacement${B(r)}`,n&&"error",s&&"required"],label:["label",o&&"disabled"],asterisk:["asterisk",n&&"error"]};return G(a,ab,e)},lb=k("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${dr.label}`]:e.label},e.root,e[`labelPlacement${B(o.labelPlacement)}`]]}})(W(({theme:t})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${dr.disabled}`]:{cursor:"default"},[`& .${dr.label}`]:{[`&.${dr.disabled}`]:{color:(t.vars||t).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:e})=>e==="start"||e==="top"||e==="bottom",style:{marginLeft:16}}]}))),cb=k("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(t,e)=>e.asterisk})(W(({theme:t})=>({[`&.${dr.error}`]:{color:(t.vars||t).palette.error.main}}))),Mw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormControlLabel"}),{checked:n,className:s,componentsProps:a={},control:i,disabled:l,disableTypography:c,inputRef:p,label:u,labelPlacement:m="end",name:g,onChange:b,required:v,slots:h={},slotProps:y={},value:S,...C}=r,x=He(),w=l??i.props.disabled??(x==null?void 0:x.disabled),P=v??i.props.required,$={disabled:w,required:P};["checked","name","onChange","value","inputRef"].forEach(O=>{typeof i.props[O]>"u"&&typeof r[O]<"u"&&($[O]=r[O])});const I=lo({props:r,muiFormControl:x,states:["error"]}),A={...r,disabled:w,labelPlacement:m,required:P,error:I.error},T=ib(A),z={slots:h,slotProps:{...a,...y}},[E,R]=Q("typography",{elementType:he,externalForwardedProps:z,ownerState:A});let M=u;return M!=null&&M.type!==he&&!c&&(M=f.jsx(E,{component:"span",...R,className:j(T.label,R==null?void 0:R.className),children:M})),f.jsxs(lb,{className:j(T.root,s),ownerState:A,ref:o,...C,children:[d.cloneElement(i,$),P?f.jsxs("div",{children:[M,f.jsxs(cb,{ownerState:A,"aria-hidden":!0,className:T.asterisk,children:[" ","*"]})]}):M]})});function pb(t){return V("MuiFormGroup",t)}const Lw=K("MuiFormGroup",["root","row","error"]),db=t=>{const{classes:e,row:o,error:r}=t;return G({root:["root",o&&"row",r&&"error"]},pb,e)},ub=k("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.row&&e.row]}})({display:"flex",flexDirection:"column",flexWrap:"wrap",variants:[{props:{row:!0},style:{flexDirection:"row"}}]}),fb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormGroup"}),{className:n,row:s=!1,...a}=r,i=He(),l=lo({props:r,muiFormControl:i,states:["error"]}),c={...r,row:s,error:l.error},p=db(c);return f.jsx(ub,{className:j(p.root,n),ownerState:c,ref:o,...a})});function gb(t){return V("MuiFormHelperText",t)}const $a=K("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var ka;const mb=t=>{const{classes:e,contained:o,size:r,disabled:n,error:s,filled:a,focused:i,required:l}=t,c={root:["root",n&&"disabled",s&&"error",r&&`size${B(r)}`,o&&"contained",i&&"focused",a&&"filled",l&&"required"]};return G(c,gb,e)},bb=k("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.size&&e[`size${B(o.size)}`],o.contained&&e.contained,o.filled&&e.filled]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,...t.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${$a.disabled}`]:{color:(t.vars||t).palette.text.disabled},[`&.${$a.error}`]:{color:(t.vars||t).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:e})=>e.contained,style:{marginLeft:14,marginRight:14}}]}))),vb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormHelperText"}),{children:n,className:s,component:a="p",disabled:i,error:l,filled:c,focused:p,margin:u,required:m,variant:g,...b}=r,v=He(),h=lo({props:r,muiFormControl:v,states:["variant","size","disabled","error","filled","focused","required"]}),y={...r,component:a,contained:h.variant==="filled"||h.variant==="outlined",variant:h.variant,size:h.size,disabled:h.disabled,error:h.error,filled:h.filled,focused:h.focused,required:h.required};delete y.ownerState;const S=mb(y);return f.jsx(bb,{as:a,className:j(S.root,s),ref:o,...b,ownerState:y,children:n===" "?ka||(ka=f.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):n})});function hb(t){return V("MuiFormLabel",t)}const mr=K("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),yb=t=>{const{classes:e,color:o,focused:r,disabled:n,error:s,filled:a,required:i}=t,l={root:["root",`color${B(o)}`,n&&"disabled",s&&"error",a&&"filled",r&&"focused",i&&"required"],asterisk:["asterisk",s&&"error"]};return G(l,hb,e)},xb=k("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color==="secondary"&&e.colorSecondary,o.filled&&e.filled]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,...t.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&.${mr.focused}`]:{color:(t.vars||t).palette[e].main}}})),{props:{},style:{[`&.${mr.disabled}`]:{color:(t.vars||t).palette.text.disabled},[`&.${mr.error}`]:{color:(t.vars||t).palette.error.main}}}]}))),Cb=k("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(t,e)=>e.asterisk})(W(({theme:t})=>({[`&.${mr.error}`]:{color:(t.vars||t).palette.error.main}}))),Sb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormLabel"}),{children:n,className:s,color:a,component:i="label",disabled:l,error:c,filled:p,focused:u,required:m,...g}=r,b=He(),v=lo({props:r,muiFormControl:b,states:["color","required","focused","disabled","error","filled"]}),h={...r,color:v.color||"primary",component:i,disabled:v.disabled,error:v.error,filled:v.filled,focused:v.focused,required:v.required},y=yb(h);return f.jsxs(xb,{as:i,ownerState:h,className:j(y.root,s),ref:o,...g,children:[n,v.required&&f.jsxs(Cb,{ownerState:h,"aria-hidden":!0,className:y.asterisk,children:[" ","*"]})]})}),Ia=d.createContext();function wb(t){return V("MuiGrid",t)}const Rb=[0,1,2,3,4,5,6,7,8,9,10],Pb=["column-reverse","column","row-reverse","row"],$b=["nowrap","wrap-reverse","wrap"],tr=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Cr=K("MuiGrid",["root","container","item","zeroMinWidth",...Rb.map(t=>`spacing-xs-${t}`),...Pb.map(t=>`direction-xs-${t}`),...$b.map(t=>`wrap-xs-${t}`),...tr.map(t=>`grid-xs-${t}`),...tr.map(t=>`grid-sm-${t}`),...tr.map(t=>`grid-md-${t}`),...tr.map(t=>`grid-lg-${t}`),...tr.map(t=>`grid-xl-${t}`)]);function kb({theme:t,ownerState:e}){let o;return t.breakpoints.keys.reduce((r,n)=>{let s={};if(e[n]&&(o=e[n]),!o)return r;if(o===!0)s={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(o==="auto")s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const a=To({values:e.columns,breakpoints:t.breakpoints.values}),i=typeof a=="object"?a[n]:a;if(i==null)return r;const l=`${Math.round(o/i*1e8)/1e6}%`;let c={};if(e.container&&e.item&&e.columnSpacing!==0){const p=t.spacing(e.columnSpacing);if(p!=="0px"){const u=`calc(${l} + ${p})`;c={flexBasis:u,maxWidth:u}}}s={flexBasis:l,flexGrow:0,maxWidth:l,...c}}return t.breakpoints.values[n]===0?Object.assign(r,s):r[t.breakpoints.up(n)]=s,r},{})}function Ib({theme:t,ownerState:e}){const o=To({values:e.direction,breakpoints:t.breakpoints.values});return vr({theme:t},o,r=>{const n={flexDirection:r};return r.startsWith("column")&&(n[`& > .${Cr.item}`]={maxWidth:"none"}),n})}function qi({breakpoints:t,values:e}){let o="";Object.keys(e).forEach(n=>{o===""&&e[n]!==0&&(o=n)});const r=Object.keys(t).sort((n,s)=>t[n]-t[s]);return r.slice(0,r.indexOf(o))}function Tb({theme:t,ownerState:e}){const{container:o,rowSpacing:r}=e;let n={};if(o&&r!==0){const s=To({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=qi({breakpoints:t.breakpoints.values,values:s})),n=vr({theme:t},s,(i,l)=>{const c=t.spacing(i);return c!=="0px"?{marginTop:`calc(-1 * ${c})`,[`& > .${Cr.item}`]:{paddingTop:c}}:a!=null&&a.includes(l)?{}:{marginTop:0,[`& > .${Cr.item}`]:{paddingTop:0}}})}return n}function Mb({theme:t,ownerState:e}){const{container:o,columnSpacing:r}=e;let n={};if(o&&r!==0){const s=To({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=qi({breakpoints:t.breakpoints.values,values:s})),n=vr({theme:t},s,(i,l)=>{const c=t.spacing(i);if(c!=="0px"){const p=`calc(-1 * ${c})`;return{width:`calc(100% + ${c})`,marginLeft:p,[`& > .${Cr.item}`]:{paddingLeft:c}}}return a!=null&&a.includes(l)?{}:{width:"100%",marginLeft:0,[`& > .${Cr.item}`]:{paddingLeft:0}}})}return n}function Lb(t,e,o={}){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[o[`spacing-xs-${String(t)}`]];const r=[];return e.forEach(n=>{const s=t[n];Number(s)>0&&r.push(o[`spacing-${n}-${String(s)}`])}),r}const Ab=k("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{container:r,direction:n,item:s,spacing:a,wrap:i,zeroMinWidth:l,breakpoints:c}=o;let p=[];r&&(p=Lb(a,c,e));const u=[];return c.forEach(m=>{const g=o[m];g&&u.push(e[`grid-${m}-${String(g)}`])}),[e.root,r&&e.container,s&&e.item,l&&e.zeroMinWidth,...p,n!=="row"&&e[`direction-xs-${String(n)}`],i!=="wrap"&&e[`wrap-xs-${String(i)}`],...u]}})(({ownerState:t})=>({boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},...t.item&&{margin:0},...t.zeroMinWidth&&{minWidth:0},...t.wrap!=="wrap"&&{flexWrap:t.wrap}}),Ib,Tb,Mb,kb);function Bb(t,e){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[`spacing-xs-${String(t)}`];const o=[];return e.forEach(r=>{const n=t[r];if(Number(n)>0){const s=`spacing-${r}-${String(n)}`;o.push(s)}}),o}const Eb=t=>{const{classes:e,container:o,direction:r,item:n,spacing:s,wrap:a,zeroMinWidth:i,breakpoints:l}=t;let c=[];o&&(c=Bb(s,l));const p=[];l.forEach(m=>{const g=t[m];g&&p.push(`grid-${m}-${String(g)}`)});const u={root:["root",o&&"container",n&&"item",i&&"zeroMinWidth",...c,r!=="row"&&`direction-xs-${String(r)}`,a!=="wrap"&&`wrap-xs-${String(a)}`,...p]};return G(u,wb,e)},Aw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiGrid"}),{breakpoints:n}=le(),s=Pr(r),{className:a,columns:i,columnSpacing:l,component:c="div",container:p=!1,direction:u="row",item:m=!1,rowSpacing:g,spacing:b=0,wrap:v="wrap",zeroMinWidth:h=!1,...y}=s,S=g||b,C=l||b,x=d.useContext(Ia),w=p?i||12:x,P={},$={...y};n.keys.forEach(T=>{y[T]!=null&&(P[T]=y[T],delete $[T])});const I={...s,columns:w,container:p,direction:u,item:m,rowSpacing:S,columnSpacing:C,wrap:v,zeroMinWidth:h,spacing:b,...P,breakpoints:n.keys},A=Eb(I);return f.jsx(Ia.Provider,{value:w,children:f.jsx(Ab,{ownerState:I,className:j(A.root,a),as:c,ref:o,...$})})}),Bw=xc({createStyledComponent:k("div",{name:"MuiGrid2",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.container&&e.container]}}),componentName:"MuiGrid2",useThemeProps:t=>_({props:t,name:"MuiGrid2"}),useTheme:le});function Ew(t){return V("MuiGrid2",t)}const Ob=[0,1,2,3,4,5,6,7,8,9,10],Nb=["column-reverse","column","row-reverse","row"],zb=["nowrap","wrap-reverse","wrap"],er=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Ow=K("MuiGrid2",["root","container",...Ob.map(t=>`spacing-xs-${t}`),...Nb.map(t=>`direction-xs-${t}`),...zb.map(t=>`wrap-xs-${t}`),...er.map(t=>`grid-xs-${t}`),...er.map(t=>`grid-sm-${t}`),...er.map(t=>`grid-md-${t}`),...er.map(t=>`grid-lg-${t}`),...er.map(t=>`grid-xl-${t}`)]);function rs(t){return`scale(${t}, ${t**2})`}const jb={entering:{opacity:1,transform:rs(1)},entered:{opacity:1,transform:"none"}},Bn=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),Sr=d.forwardRef(function(e,o){const{addEndListener:r,appear:n=!0,children:s,easing:a,in:i,onEnter:l,onEntered:c,onEntering:p,onExit:u,onExited:m,onExiting:g,style:b,timeout:v="auto",TransitionComponent:h=Le,...y}=e,S=no(),C=d.useRef(),x=le(),w=d.useRef(null),P=qt(w,io(s),o),$=O=>L=>{if(O){const F=w.current;L===void 0?O(F):O(F,L)}},I=$(p),A=$((O,L)=>{mn(O);const{duration:F,delay:D,easing:N}=Ge({style:b,timeout:v,easing:a},{mode:"enter"});let J;v==="auto"?(J=x.transitions.getAutoHeightDuration(O.clientHeight),C.current=J):J=F,O.style.transition=[x.transitions.create("opacity",{duration:J,delay:D}),x.transitions.create("transform",{duration:Bn?J:J*.666,delay:D,easing:N})].join(","),l&&l(O,L)}),T=$(c),z=$(g),E=$(O=>{const{duration:L,delay:F,easing:D}=Ge({style:b,timeout:v,easing:a},{mode:"exit"});let N;v==="auto"?(N=x.transitions.getAutoHeightDuration(O.clientHeight),C.current=N):N=L,O.style.transition=[x.transitions.create("opacity",{duration:N,delay:F}),x.transitions.create("transform",{duration:Bn?N:N*.666,delay:Bn?F:F||N*.333,easing:D})].join(","),O.style.opacity=0,O.style.transform=rs(.75),u&&u(O)}),R=$(m),M=O=>{v==="auto"&&S.start(C.current||0,O),r&&r(w.current,O)};return f.jsx(h,{appear:n,in:i,nodeRef:w,onEnter:A,onEntered:T,onEntering:I,onExit:E,onExited:R,onExiting:z,addEndListener:M,timeout:v==="auto"?null:v,...y,children:(O,{ownerState:L,...F})=>d.cloneElement(s,{style:{opacity:0,transform:rs(.75),visibility:O==="exited"&&!i?"hidden":void 0,...jb[O],...b,...s.props.style},ref:P,...F})})});Sr&&(Sr.muiSupportAuto=!0);const Db=fi({themeId:pn}),vo=["xs","sm","md","lg","xl"],Fb=(t,e,o=!0)=>o?vo.indexOf(t)<=vo.indexOf(e):vo.indexOf(t)o?vo.indexOf(e)<=vo.indexOf(t):vo.indexOf(e)e=>{const{withTheme:o=!1,noSSR:r=!1,initialWidth:n}=t;function s(a){const i=le(),l=a.theme||i,{initialWidth:c,width:p,...u}=gs({theme:l,name:"MuiWithWidth",props:a}),[m,g]=d.useState(!1);be(()=>{g(!0)},[]);const v=l.breakpoints.keys.slice().reverse().reduce((y,S)=>{const C=Db(l.breakpoints.up(S));return!y&&C?S:y},null),h={width:p||(m||r?v:void 0)||c||n,...o?{theme:l}:{},...u};return h.width===void 0?null:f.jsx(e,{...h})}return s};function Xi(t){const{children:e,only:o,width:r}=t,n=le();let s=!0;if(o)if(Array.isArray(o))for(let a=0;a{const{classes:e,breakpoints:o}=t,r={root:["root",...o.map(({breakpoint:n,dir:s})=>s==="only"?`${s}${B(n)}`:`${n}${B(s)}`)]};return G(r,Vb,e)},Kb=k("div",{name:"PrivateHiddenCss",slot:"Root"})(({theme:t,ownerState:e})=>{const o={display:"none"};return{...e.breakpoints.map(({breakpoint:r,dir:n})=>n==="only"?{[t.breakpoints.only(r)]:o}:n==="up"?{[t.breakpoints.up(r)]:o}:{[t.breakpoints.down(r)]:o}).reduce((r,n)=>(Object.keys(n).forEach(s=>{r[s]=n[s]}),r),{})}});function qb(t){const{children:e,className:o,only:r,...n}=t,s=le(),a=[];for(let c=0;c{a.push({breakpoint:p,dir:"only"})});const i={...t,breakpoints:a},l=Gb(i);return f.jsx(Kb,{className:j(l.root,o),ownerState:i,children:e})}function Nw(t){const{implementation:e="js",lgDown:o=!1,lgUp:r=!1,mdDown:n=!1,mdUp:s=!1,smDown:a=!1,smUp:i=!1,xlDown:l=!1,xlUp:c=!1,xsDown:p=!1,xsUp:u=!1,...m}=t;return e==="js"?f.jsx(Hb,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:u,...m}):f.jsx(qb,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:u,...m})}function Xb(t){return V("MuiIcon",t)}const zw=K("MuiIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),_b=t=>{const{color:e,fontSize:o,classes:r}=t,n={root:["root",e!=="inherit"&&`color${B(e)}`,`fontSize${B(o)}`]};return G(n,Xb,r)},Yb=k("span",{name:"MuiIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="inherit"&&e[`color${B(o.color)}`],e[`fontSize${B(o.fontSize)}`]]}})(W(({theme:t})=>({userSelect:"none",width:"1em",height:"1em",overflow:"hidden",display:"inline-block",textAlign:"center",flexShrink:0,variants:[{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:t.typography.pxToRem(20)}},{props:{fontSize:"medium"},style:{fontSize:t.typography.pxToRem(24)}},{props:{fontSize:"large"},style:{fontSize:t.typography.pxToRem(36)}},{props:{color:"action"},style:{color:(t.vars||t).palette.action.active}},{props:{color:"disabled"},style:{color:(t.vars||t).palette.action.disabled}},{props:{color:"inherit"},style:{color:void 0}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}}))]}))),Zb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiIcon"}),{baseClassName:n="material-icons",className:s,color:a="inherit",component:i="span",fontSize:l="medium",...c}=r,p={...r,baseClassName:n,color:a,component:i,fontSize:l},u=_b(p);return f.jsx(Yb,{as:i,className:j(n,"notranslate",u.root,s),ownerState:p,"aria-hidden":!0,ref:o,...c})});Zb.muiName="Icon";function Qb(t){return V("MuiImageList",t)}const jw=K("MuiImageList",["root","masonry","quilted","standard","woven"]),_i=d.createContext({}),Jb=t=>{const{classes:e,variant:o}=t;return G({root:["root",o]},Qb,e)},tv=k("ul",{name:"MuiImageList",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({display:"grid",overflowY:"auto",listStyle:"none",padding:0,WebkitOverflowScrolling:"touch",variants:[{props:{variant:"masonry"},style:{display:"block"}}]}),Dw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiImageList"}),{children:n,className:s,cols:a=2,component:i="ul",rowHeight:l="auto",gap:c=4,style:p,variant:u="standard",...m}=r,g=d.useMemo(()=>({rowHeight:l,gap:c,variant:u}),[l,c,u]),b=u==="masonry"?{columnCount:a,columnGap:c,...p}:{gridTemplateColumns:`repeat(${a}, 1fr)`,gap:c,...p},v={...r,component:i,gap:c,rowHeight:l,variant:u},h=Jb(v);return f.jsx(tv,{as:i,className:j(h.root,h[u],s),ref:o,style:b,ownerState:v,...m,children:f.jsx(_i.Provider,{value:g,children:n})})});function ev(t){return V("MuiImageListItem",t)}const En=K("MuiImageListItem",["root","img","standard","woven","masonry","quilted"]),ov=t=>{const{classes:e,variant:o}=t;return G({root:["root",o],img:["img"]},ev,e)},rv=k("li",{name:"MuiImageListItem",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${En.img}`]:e.img},e.root,e[o.variant]]}})({display:"block",position:"relative",[`& .${En.img}`]:{objectFit:"cover",width:"100%",height:"100%",display:"block"},variants:[{props:{variant:"standard"},style:{display:"flex",flexDirection:"column"}},{props:{variant:"woven"},style:{height:"100%",alignSelf:"center","&:nth-of-type(even)":{height:"70%"}}},{props:{variant:"standard"},style:{[`& .${En.img}`]:{height:"auto",flexGrow:1}}}]}),Fw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiImageListItem"}),{children:n,className:s,cols:a=1,component:i="li",rows:l=1,style:c,...p}=r,{rowHeight:u="auto",gap:m,variant:g}=d.useContext(_i);let b="auto";g==="woven"?b=void 0:u!=="auto"&&(b=u*l+m*(l-1));const v={...r,cols:a,component:i,gap:m,rowHeight:u,rows:l,variant:g},h=ov(v);return f.jsx(rv,{as:i,className:j(h.root,h[g],s),ref:o,style:{height:b,gridColumnEnd:g!=="masonry"?`span ${a}`:void 0,gridRowEnd:g!=="masonry"?`span ${l}`:void 0,marginBottom:g==="masonry"?m:void 0,breakInside:g==="masonry"?"avoid":void 0,...c},ownerState:v,...p,children:d.Children.map(n,y=>d.isValidElement(y)?y.type==="img"||yo(y,["Image"])?d.cloneElement(y,{className:j(h.img,y.props.className)}):y:null)})});function nv(t){return V("MuiImageListItemBar",t)}const Ww=K("MuiImageListItemBar",["root","positionBottom","positionTop","positionBelow","actionPositionLeft","actionPositionRight","titleWrap","titleWrapBottom","titleWrapTop","titleWrapBelow","titleWrapActionPosLeft","titleWrapActionPosRight","title","subtitle","actionIcon","actionIconActionPosLeft","actionIconActionPosRight"]),sv=t=>{const{classes:e,position:o,actionIcon:r,actionPosition:n}=t,s={root:["root",`position${B(o)}`,`actionPosition${B(n)}`],titleWrap:["titleWrap",`titleWrap${B(o)}`,r&&`titleWrapActionPos${B(n)}`],title:["title"],subtitle:["subtitle"],actionIcon:["actionIcon",`actionIconActionPos${B(n)}`]};return G(s,nv,e)},av=k("div",{name:"MuiImageListItemBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`]]}})(W(({theme:t})=>({position:"absolute",left:0,right:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",fontFamily:t.typography.fontFamily,variants:[{props:{position:"bottom"},style:{bottom:0}},{props:{position:"top"},style:{top:0}},{props:{position:"below"},style:{position:"relative",background:"transparent",alignItems:"normal"}}]}))),iv=k("div",{name:"MuiImageListItemBar",slot:"TitleWrap",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.titleWrap,e[`titleWrap${B(o.position)}`],o.actionIcon&&e[`titleWrapActionPos${B(o.actionPosition)}`]]}})(W(({theme:t})=>({flexGrow:1,padding:"12px 16px",color:(t.vars||t).palette.common.white,overflow:"hidden",variants:[{props:{position:"below"},style:{padding:"6px 0 12px",color:"inherit"}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="left",style:{paddingLeft:0}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="right",style:{paddingRight:0}}]}))),lv=k("div",{name:"MuiImageListItemBar",slot:"Title",overridesResolver:(t,e)=>e.title})(W(({theme:t})=>({fontSize:t.typography.pxToRem(16),lineHeight:"24px",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),cv=k("div",{name:"MuiImageListItemBar",slot:"Subtitle",overridesResolver:(t,e)=>e.subtitle})(W(({theme:t})=>({fontSize:t.typography.pxToRem(12),lineHeight:1,textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),pv=k("div",{name:"MuiImageListItemBar",slot:"ActionIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actionIcon,e[`actionIconActionPos${B(o.actionPosition)}`]]}})({variants:[{props:{actionPosition:"left"},style:{order:-1}}]}),Uw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiImageListItemBar"}),{actionIcon:n,actionPosition:s="right",className:a,subtitle:i,title:l,position:c="bottom",...p}=r,u={...r,position:c,actionPosition:s},m=sv(u);return f.jsxs(av,{ownerState:u,className:j(m.root,a),ref:o,...p,children:[f.jsxs(iv,{ownerState:u,className:m.titleWrap,children:[f.jsx(lv,{className:m.title,children:l}),i?f.jsx(cv,{className:m.subtitle,children:i}):null]}),n?f.jsx(pv,{ownerState:u,className:m.actionIcon,children:n}):null]})}),dv=t=>{const{classes:e,disableUnderline:o}=t,n=G({root:["root",!o&&"underline"],input:["input"]},Yu,e);return{...e,...n}},uv=k(Cn,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiInput",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[...yn(t,e),!o.disableUnderline&&e.underline]}})(W(({theme:t})=>{let o=t.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return t.vars&&(o=`rgba(${t.vars.palette.common.onBackgroundChannel} / ${t.vars.opacity.inputUnderline})`),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${bo.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${bo.error}`]:{"&::before, &::after":{borderBottomColor:(t.vars||t).palette.error.main}},"&::before":{borderBottom:`1px solid ${o}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:t.transitions.create("border-bottom-color",{duration:t.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${bo.disabled}, .${bo.error}):before`]:{borderBottom:`2px solid ${(t.vars||t).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${o}`}},[`&.${bo.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(t.palette).filter(jt()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(t.vars||t).palette[r].main}`}}}))]}})),fv=k(Sn,{name:"MuiInput",slot:"Input",overridesResolver:xn})({}),Rn=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiInput"}),{disableUnderline:n=!1,components:s={},componentsProps:a,fullWidth:i=!1,inputComponent:l="input",multiline:c=!1,slotProps:p,slots:u={},type:m="text",...g}=r,b=dv(r),h={root:{ownerState:{disableUnderline:n}}},y=p??a?wr(p??a,h):h,S=u.root??s.Root??uv,C=u.input??s.Input??fv;return f.jsx(wn,{slots:{root:S,input:C},slotProps:y,fullWidth:i,inputComponent:l,multiline:c,ref:o,type:m,...g,classes:b})});Rn.muiName="Input";function gv(t){return V("MuiInputAdornment",t)}const Ta=K("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var Ma;const mv=(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`],o.disablePointerEvents===!0&&e.disablePointerEvents,e[o.variant]]},bv=t=>{const{classes:e,disablePointerEvents:o,hiddenLabel:r,position:n,size:s,variant:a}=t,i={root:["root",o&&"disablePointerEvents",n&&`position${B(n)}`,a,r&&"hiddenLabel",s&&`size${B(s)}`]};return G(i,gv,e)},vv=k("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:mv})(W(({theme:t})=>({display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{[`&.${Ta.positionStart}&:not(.${Ta.hiddenLabel})`]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}))),Hw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiInputAdornment"}),{children:n,className:s,component:a="div",disablePointerEvents:i=!1,disableTypography:l=!1,position:c,variant:p,...u}=r,m=He()||{};let g=p;p&&m.variant,m&&!g&&(g=m.variant);const b={...r,hiddenLabel:m.hiddenLabel,size:m.size,disablePointerEvents:i,position:c,variant:g},v=bv(b);return f.jsx(hn.Provider,{value:null,children:f.jsx(vv,{as:a,ownerState:b,className:j(v.root,s),ref:o,...u,children:typeof n=="string"&&!l?f.jsx(he,{color:"textSecondary",children:n}):f.jsxs(d.Fragment,{children:[c==="start"?Ma||(Ma=f.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,n]})})})});function hv(t){return V("MuiInputLabel",t)}const Vw=K("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]),yv=t=>{const{classes:e,formControl:o,size:r,shrink:n,disableAnimation:s,variant:a,required:i}=t,l={root:["root",o&&"formControl",!s&&"animated",n&&"shrink",r&&r!=="normal"&&`size${B(r)}`,a],asterisk:[i&&"asterisk"]},c=G(l,hv,e);return{...e,...c}},xv=k(Sb,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${mr.asterisk}`]:e.asterisk},e.root,o.formControl&&e.formControl,o.size==="small"&&e.sizeSmall,o.shrink&&e.shrink,!o.disableAnimation&&e.animated,o.focused&&e.focused,e[o.variant]]}})(W(({theme:t})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:e})=>e.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:e})=>e.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:e})=>!e.disableAnimation,style:{transition:t.transitions.create(["color","transform","max-width"],{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:e,ownerState:o})=>e==="filled"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:e,ownerState:o,size:r})=>e==="filled"&&o.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:e,ownerState:o})=>e==="outlined"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),Cv=d.forwardRef(function(e,o){const r=_({name:"MuiInputLabel",props:e}),{disableAnimation:n=!1,margin:s,shrink:a,variant:i,className:l,...c}=r,p=He();let u=a;typeof u>"u"&&p&&(u=p.filled||p.focused||p.adornedStart);const m=lo({props:r,muiFormControl:p,states:["size","variant","required","focused"]}),g={...r,disableAnimation:n,formControl:p,shrink:u,size:m.size,variant:m.variant,required:m.required,focused:m.focused},b=yv(g);return f.jsx(xv,{"data-shrink":u,ref:o,className:j(b.root,l),...c,ownerState:g,classes:b})});function Sv(t){return V("MuiLinearProgress",t)}const Gw=K("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","bar1","bar2","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]),ns=4,ss=Je` +`,jp=typeof Xn!="string"?Oo` + animation: ${Xn} 1.4s linear infinite; + `:null,Dp=typeof _n!="string"?Oo` + animation: ${_n} 1.4s ease-in-out infinite; + `:null,Fp=t=>{const{classes:e,variant:o,color:r,disableShrink:n}=t,s={root:["root",o,`color${B(r)}`],svg:["svg"],circle:["circle",`circle${B(o)}`,n&&"circleDisableShrink"]};return G(s,zp,e)},Wp=k("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`color${B(o.color)}`]]}})(W(({theme:t})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:t.transitions.create("transform")}},{props:{variant:"indeterminate"},style:jp||{animation:`${Xn} 1.4s linear infinite`}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}}))]}))),Up=k("svg",{name:"MuiCircularProgress",slot:"Svg",overridesResolver:(t,e)=>e.svg})({display:"block"}),Hp=k("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.circle,e[`circle${B(o.variant)}`],o.disableShrink&&e.circleDisableShrink]}})(W(({theme:t})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:t.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:e})=>e.variant==="indeterminate"&&!e.disableShrink,style:Dp||{animation:`${_n} 1.4s ease-in-out infinite`}}]}))),Si=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCircularProgress"}),{className:n,color:s="primary",disableShrink:a=!1,size:i=40,style:l,thickness:c=3.6,value:p=0,variant:u="indeterminate",...m}=r,g={...r,color:s,disableShrink:a,size:i,thickness:c,value:p,variant:u},b=Fp(g),v={},h={},y={};if(u==="determinate"){const S=2*Math.PI*((uo-c)/2);v.strokeDasharray=S.toFixed(3),y["aria-valuenow"]=Math.round(p),v.strokeDashoffset=`${((100-p)/100*S).toFixed(3)}px`,h.transform="rotate(-90deg)"}return f.jsx(Wp,{className:j(b.root,n),style:{width:i,height:i,...h,...l},ownerState:g,ref:o,role:"progressbar",...y,...m,children:f.jsx(Up,{className:b.svg,ownerState:g,viewBox:`${uo/2} ${uo/2} ${uo} ${uo}`,children:f.jsx(Hp,{className:b.circle,style:v,ownerState:g,cx:uo,cy:uo,r:(uo-c)/2,fill:"none",strokeWidth:c})})})});function Vp(t){return V("MuiIconButton",t)}const qs=K("MuiIconButton",["root","disabled","colorInherit","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","edgeStart","edgeEnd","sizeSmall","sizeMedium","sizeLarge","loading","loadingIndicator","loadingWrapper"]),Gp=t=>{const{classes:e,disabled:o,color:r,edge:n,size:s,loading:a}=t,i={root:["root",a&&"loading",o&&"disabled",r!=="default"&&`color${B(r)}`,n&&`edge${B(n)}`,`size${B(s)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]};return G(i,Vp,e)},Kp=k(ue,{name:"MuiIconButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.loading&&e.loading,o.color!=="default"&&e[`color${B(o.color)}`],o.edge&&e[`edge${B(o.edge)}`],e[`size${B(o.size)}`]]}})(W(({theme:t})=>({textAlign:"center",flex:"0 0 auto",fontSize:t.typography.pxToRem(24),padding:8,borderRadius:"50%",color:(t.vars||t).palette.action.active,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),variants:[{props:e=>!e.disableRipple,style:{"--IconButton-hoverBg":t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity),"&:hover":{backgroundColor:"var(--IconButton-hoverBg)","@media (hover: none)":{backgroundColor:"transparent"}}}},{props:{edge:"start"},style:{marginLeft:-12}},{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:{edge:"end"},style:{marginRight:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}}]})),W(({theme:t})=>({variants:[{props:{color:"inherit"},style:{color:"inherit"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}})),...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{"--IconButton-hoverBg":t.vars?`rgba(${(t.vars||t).palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt((t.vars||t).palette[e].main,t.palette.action.hoverOpacity)}})),{props:{size:"small"},style:{padding:5,fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{padding:12,fontSize:t.typography.pxToRem(28)}}],[`&.${qs.disabled}`]:{backgroundColor:"transparent",color:(t.vars||t).palette.action.disabled},[`&.${qs.loading}`]:{color:"transparent"}}))),qp=k("span",{name:"MuiIconButton",slot:"LoadingIndicator",overridesResolver:(t,e)=>e.loadingIndicator})(({theme:t})=>({display:"none",position:"absolute",visibility:"visible",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:(t.vars||t).palette.action.disabled,variants:[{props:{loading:!0},style:{display:"flex"}}]})),$o=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiIconButton"}),{edge:n=!1,children:s,className:a,color:i="default",disabled:l=!1,disableFocusRipple:c=!1,size:p="medium",id:u,loading:m=null,loadingIndicator:g,...b}=r,v=De(u),h=g??f.jsx(Si,{"aria-labelledby":v,color:"inherit",size:16}),y={...r,edge:n,color:i,disabled:l,disableFocusRipple:c,loading:m,loadingIndicator:h,size:p},S=Gp(y);return f.jsxs(Kp,{id:m?v:u,className:j(S.root,a),centerRipple:!0,focusRipple:!c,disabled:l||m,ref:o,...b,ownerState:y,children:[typeof m=="boolean"&&f.jsx("span",{className:S.loadingWrapper,style:{display:"contents"},children:f.jsx(qp,{className:S.loadingIndicator,ownerState:y,children:m&&h})}),s]})}),Xp=Qt(f.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),_p=Qt(f.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),Yp=Qt(f.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),Zp=Qt(f.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),wi=Qt(f.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),Qp=t=>{const{variant:e,color:o,severity:r,classes:n}=t,s={root:["root",`color${B(o||r)}`,`${e}${B(o||r)}`,`${e}`],icon:["icon"],message:["message"],action:["action"]};return G(s,Np,n)},Jp=k(Ue,{name:"MuiAlert",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`${o.variant}${B(o.color||o.severity)}`]]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?Lo:Ao,o=t.palette.mode==="light"?Ao:Lo;return{...t.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(t.palette).filter(jt(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),backgroundColor:t.vars?t.vars.palette.Alert[`${r}StandardBg`]:o(t.palette[r].light,.9),[`& .${Ks.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(jt(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),border:`1px solid ${(t.vars||t).palette[r].light}`,[`& .${Ks.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(jt(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:t.typography.fontWeightMedium,...t.vars?{color:t.vars.palette.Alert[`${r}FilledColor`],backgroundColor:t.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:t.palette.mode==="dark"?t.palette[r].dark:t.palette[r].main,color:t.palette.getContrastText(t.palette[r].main)}}}))]}})),td=k("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(t,e)=>e.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),ed=k("div",{name:"MuiAlert",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),od=k("div",{name:"MuiAlert",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),Xs={success:f.jsx(Xp,{fontSize:"inherit"}),warning:f.jsx(_p,{fontSize:"inherit"}),error:f.jsx(Yp,{fontSize:"inherit"}),info:f.jsx(Zp,{fontSize:"inherit"})},FS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAlert"}),{action:n,children:s,className:a,closeText:i="Close",color:l,components:c={},componentsProps:p={},icon:u,iconMapping:m=Xs,onClose:g,role:b="alert",severity:v="success",slotProps:h={},slots:y={},variant:S="standard",...C}=r,x={...r,color:l,severity:v,variant:S,colorSeverity:l||v},w=Qp(x),P={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...y},slotProps:{...p,...h}},[$,I]=Q("root",{ref:o,shouldForwardComponentProp:!0,className:j(w.root,a),elementType:Jp,externalForwardedProps:{...P,...C},ownerState:x,additionalProps:{role:b,elevation:0}}),[A,T]=Q("icon",{className:w.icon,elementType:td,externalForwardedProps:P,ownerState:x}),[z,E]=Q("message",{className:w.message,elementType:ed,externalForwardedProps:P,ownerState:x}),[R,M]=Q("action",{className:w.action,elementType:od,externalForwardedProps:P,ownerState:x}),[O,L]=Q("closeButton",{elementType:$o,externalForwardedProps:P,ownerState:x}),[F,D]=Q("closeIcon",{elementType:wi,externalForwardedProps:P,ownerState:x});return f.jsxs($,{...I,children:[u!==!1?f.jsx(A,{...T,children:u||m[v]||Xs[v]}):null,f.jsx(z,{...E,children:s}),n!=null?f.jsx(R,{...M,children:n}):null,n==null&&g?f.jsx(R,{...M,children:f.jsx(O,{size:"small","aria-label":i,title:i,color:"inherit",onClick:g,...L,children:f.jsx(F,{fontSize:"small",...D})})}):null]})});function rd(t){return V("MuiTypography",t)}const nn=K("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]),nd={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},sd=Hc(),ad=t=>{const{align:e,gutterBottom:o,noWrap:r,paragraph:n,variant:s,classes:a}=t,i={root:["root",s,t.align!=="inherit"&&`align${B(e)}`,o&&"gutterBottom",r&&"noWrap",n&&"paragraph"]};return G(i,rd,a)},id=k("span",{name:"MuiTypography",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.variant&&e[o.variant],o.align!=="inherit"&&e[`align${B(o.align)}`],o.noWrap&&e.noWrap,o.gutterBottom&&e.gutterBottom,o.paragraph&&e.paragraph]}})(W(({theme:t})=>{var e;return{margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(t.typography).filter(([o,r])=>o!=="inherit"&&r&&typeof r=="object").map(([o,r])=>({props:{variant:o},style:r})),...Object.entries(t.palette).filter(jt()).map(([o])=>({props:{color:o},style:{color:(t.vars||t).palette[o].main}})),...Object.entries(((e=t.palette)==null?void 0:e.text)||{}).filter(([,o])=>typeof o=="string").map(([o])=>({props:{color:`text${B(o)}`},style:{color:(t.vars||t).palette.text[o]}})),{props:({ownerState:o})=>o.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:o})=>o.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:o})=>o.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:o})=>o.paragraph,style:{marginBottom:16}}]}})),_s={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},he=d.forwardRef(function(e,o){const{color:r,...n}=_({props:e,name:"MuiTypography"}),s=!nd[r],a=sd({...n,...s&&{color:r}}),{align:i="inherit",className:l,component:c,gutterBottom:p=!1,noWrap:u=!1,paragraph:m=!1,variant:g="body1",variantMapping:b=_s,...v}=a,h={...a,align:i,color:r,className:l,component:c,gutterBottom:p,noWrap:u,paragraph:m,variant:g,variantMapping:b},y=c||(m?"p":b[g]||_s[g])||"span",S=ad(h);return f.jsx(id,{as:y,ref:o,className:j(S.root,l),...v,ownerState:h,style:{...i!=="inherit"&&{"--Typography-textAlign":i},...v.style}})});function ld(t){return V("MuiAlertTitle",t)}const WS=K("MuiAlertTitle",["root"]),cd=t=>{const{classes:e}=t;return G({root:["root"]},ld,e)},pd=k(he,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({fontWeight:t.typography.fontWeightMedium,marginTop:-2}))),US=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAlertTitle"}),{className:n,...s}=r,a=r,i=cd(a);return f.jsx(pd,{gutterBottom:!0,component:"div",ownerState:a,ref:o,className:j(i.root,n),...s})});function dd(t){return V("MuiAppBar",t)}const HS=K("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]),ud=t=>{const{color:e,position:o,classes:r}=t,n={root:["root",`color${B(e)}`,`position${B(o)}`]};return G(n,dd,r)},Ys=(t,e)=>t?`${t==null?void 0:t.replace(")","")}, ${e})`:e,fd=k(Ue,{name:"MuiAppBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`],e[`color${B(o.color)}`]]}})(W(({theme:t})=>({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit"}},{props:{color:"default"},style:{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[100],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[100]),...t.applyStyles("dark",{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[900],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[900])})}},...Object.entries(t.palette).filter(jt(["contrastText"])).map(([e])=>({props:{color:e},style:{"--AppBar-background":(t.vars??t).palette[e].main,"--AppBar-color":(t.vars??t).palette[e].contrastText}})),{props:e=>e.enableColorOnDark===!0&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:e=>e.enableColorOnDark===!1&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundColor:t.vars?Ys(t.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:t.vars?Ys(t.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundImage:"none"})}}]}))),VS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAppBar"}),{className:n,color:s="primary",enableColorOnDark:a=!1,position:i="fixed",...l}=r,c={...r,color:s,position:i,enableColorOnDark:a},p=ud(c);return f.jsx(fd,{square:!0,component:"header",ownerState:c,elevation:4,className:j(p.root,n,i==="fixed"&&"mui-fixed"),ref:o,...l})});function Zs(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function gd(t={}){const{ignoreAccents:e=!0,ignoreCase:o=!0,limit:r,matchFrom:n="any",stringify:s,trim:a=!1}=t;return(i,{inputValue:l,getOptionLabel:c})=>{let p=a?l.trim():l;o&&(p=p.toLowerCase()),e&&(p=Zs(p));const u=p?i.filter(m=>{let g=(s||c)(m);return o&&(g=g.toLowerCase()),e&&(g=Zs(g)),n==="start"?g.startsWith(p):g.includes(p)}):i;return typeof r=="number"?u.slice(0,r):u}}const md=gd(),bd=5,vd=t=>{var e;return t.current!==null&&((e=t.current.parentElement)==null?void 0:e.contains(document.activeElement))},hd=[];function Qs(t,e,o){if(e||t==null)return"";const r=o(t);return typeof r=="string"?r:""}function yd(t){const{unstable_isActiveElementInListbox:e=vd,unstable_classNamePrefix:o="Mui",autoComplete:r=!1,autoHighlight:n=!1,autoSelect:s=!1,blurOnSelect:a=!1,clearOnBlur:i=!t.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:p=t.multiple?hd:null,disableClearable:u=!1,disableCloseOnSelect:m=!1,disabled:g,disabledItemsFocusable:b=!1,disableListWrap:v=!1,filterOptions:h=md,filterSelectedOptions:y=!1,freeSolo:S=!1,getOptionDisabled:C,getOptionKey:x,getOptionLabel:w=X=>X.label??X,groupBy:P,handleHomeEndKeys:$=!t.freeSolo,id:I,includeInputInList:A=!1,inputValue:T,isOptionEqualToValue:z=(X,H)=>X===H,multiple:E=!1,onChange:R,onClose:M,onHighlightChange:O,onInputChange:L,onOpen:F,open:D,openOnFocus:N=!1,options:J,readOnly:U=!1,selectOnFocus:wt=!t.freeSolo,value:vt}=t,mt=De(I);let et=w;et=X=>{const H=w(X);return typeof H!="string"?String(H):H};const rt=d.useRef(!1),Y=d.useRef(!0),at=d.useRef(null),ct=d.useRef(null),[st,ft]=d.useState(null),[Z,pt]=d.useState(-1),it=n?0:-1,ht=d.useRef(it),Mt=d.useRef(Qs(p??vt,E,et)).current,[tt,ot]=Te({controlled:vt,default:p,name:c}),[dt,St]=Te({controlled:T,default:Mt,name:c,state:"inputValue"}),[gt,nt]=d.useState(!1),Tt=d.useCallback((X,H,Rt)=>{if(!(E?tt.length!(y&&(E?tt:[tt]).some(H=>H!==null&&z(X,H)))),{inputValue:$t&<?"":dt,getOptionLabel:et}):[],Ct=gs({filteredOptions:ut,value:tt,inputValue:dt});d.useEffect(()=>{const X=tt!==Ct.value;gt&&!X||S&&!X||Tt(null,tt,"reset")},[tt,Tt,gt,Ct.value,S]);const Ut=At&&ut.length>0&&!U,Et=ee(X=>{X===-1?at.current.focus():st.querySelector(`[data-tag-index="${X}"]`).focus()});d.useEffect(()=>{E&&Z>tt.length-1&&(pt(-1),Et(-1))},[tt,E,Z,Et]);function Gt(X,H){if(!ct.current||X<0||X>=ut.length)return-1;let Rt=X;for(;;){const Ot=ct.current.querySelector(`[data-option-index="${Rt}"]`),Ht=b?!1:!Ot||Ot.disabled||Ot.getAttribute("aria-disabled")==="true";if(Ot&&Ot.hasAttribute("tabindex")&&!Ht)return Rt;if(H==="next"?Rt=(Rt+1)%ut.length:Rt=(Rt-1+ut.length)%ut.length,Rt===X)return-1}}const xt=ee(({event:X,index:H,reason:Rt})=>{if(ht.current=H,H===-1?at.current.removeAttribute("aria-activedescendant"):at.current.setAttribute("aria-activedescendant",`${mt}-option-${H}`),O&&["mouse","keyboard","touch"].includes(Rt)&&O(X,H===-1?null:ut[H],Rt),!ct.current)return;const Ot=ct.current.querySelector(`[role="option"].${o}-focused`);Ot&&(Ot.classList.remove(`${o}-focused`),Ot.classList.remove(`${o}-focusVisible`));let Ht=ct.current;if(ct.current.getAttribute("role")!=="listbox"&&(Ht=ct.current.parentElement.querySelector('[role="listbox"]')),!Ht)return;if(H===-1){Ht.scrollTop=0;return}const Yt=ct.current.querySelector(`[data-option-index="${H}"]`);if(Yt&&(Yt.classList.add(`${o}-focused`),Rt==="keyboard"&&Yt.classList.add(`${o}-focusVisible`),Ht.scrollHeight>Ht.clientHeight&&Rt!=="mouse"&&Rt!=="touch")){const se=Yt,Ae=Ht.clientHeight+Ht.scrollTop,Pn=se.offsetTop+se.offsetHeight;Pn>Ae?Ht.scrollTop=Pn-Ht.clientHeight:se.offsetTop-se.offsetHeight*(P?1.3:0){if(!It)return;const Yt=Gt((()=>{const se=ut.length-1;if(H==="reset")return it;if(H==="start")return 0;if(H==="end")return se;const Ae=ht.current+H;return Ae<0?Ae===-1&&A?-1:v&&ht.current!==-1||Math.abs(H)>1?0:se:Ae>se?Ae===se+1&&A?-1:v||Math.abs(H)>1?se:0:Ae})(),Rt);if(xt({index:Yt,reason:Ot,event:X}),r&&H!=="reset")if(Yt===-1)at.current.value=dt;else{const se=et(ut[Yt]);at.current.value=se,se.toLowerCase().indexOf(dt.toLowerCase())===0&&dt.length>0&&at.current.setSelectionRange(dt.length,se.length)}}),Xt=()=>{const X=(H,Rt)=>{const Ot=H?et(H):"",Ht=Rt?et(Rt):"";return Ot===Ht};if(ht.current!==-1&&Ct.filteredOptions&&Ct.filteredOptions.length!==ut.length&&Ct.inputValue===dt&&(E?tt.length===Ct.value.length&&Ct.value.every((H,Rt)=>et(tt[Rt])===et(H)):X(Ct.value,tt))){const H=Ct.filteredOptions[ht.current];if(H)return ut.findIndex(Rt=>et(Rt)===et(H))}return-1},oe=d.useCallback(()=>{if(!It)return;const X=Xt();if(X!==-1){ht.current=X;return}const H=E?tt[0]:tt;if(ut.length===0||H==null){Bt({diff:"reset"});return}if(ct.current){if(H!=null){const Rt=ut[ht.current];if(E&&Rt&&tt.findIndex(Ht=>z(Rt,Ht))!==-1)return;const Ot=ut.findIndex(Ht=>z(Ht,H));Ot===-1?Bt({diff:"reset"}):xt({index:Ot});return}if(ht.current>=ut.length-1){xt({index:ut.length-1});return}xt({index:ht.current})}},[ut.length,E?!1:tt,y,Bt,xt,It,dt,E]),fe=ee(X=>{Gn(ct,X),X&&oe()});d.useEffect(()=>{oe()},[oe]);const ie=X=>{At||(q(!0),bt(!0),F&&F(X))},Pe=(X,H)=>{At&&(q(!1),M&&M(X,H))},Vt=(X,H,Rt,Ot)=>{if(E){if(tt.length===H.length&&tt.every((Ht,Yt)=>Ht===H[Yt]))return}else if(tt===H)return;R&&R(X,H,Rt,Ot),ot(H)},_t=d.useRef(!1),ce=(X,H,Rt="selectOption",Ot="options")=>{let Ht=Rt,Yt=H;if(E){Yt=Array.isArray(tt)?tt.slice():[];const se=Yt.findIndex(Ae=>z(H,Ae));se===-1?Yt.push(H):Ot!=="freeSolo"&&(Yt.splice(se,1),Ht="removeOption")}Tt(X,Yt,Ht),Vt(X,Yt,Ht,{option:H}),!m&&(!X||!X.ctrlKey&&!X.metaKey)&&Pe(X,Ht),(a===!0||a==="touch"&&_t.current||a==="mouse"&&!_t.current)&&at.current.blur()};function $e(X,H){if(X===-1)return-1;let Rt=X;for(;;){if(H==="next"&&Rt===tt.length||H==="previous"&&Rt===-1)return-1;const Ot=st.querySelector(`[data-tag-index="${Rt}"]`);if(!Ot||!Ot.hasAttribute("tabindex")||Ot.disabled||Ot.getAttribute("aria-disabled")==="true")Rt+=H==="next"?1:-1;else return Rt}}const pe=(X,H)=>{if(!E)return;dt===""&&Pe(X,"toggleInput");let Rt=Z;Z===-1?dt===""&&H==="previous"&&(Rt=tt.length-1):(Rt+=H==="next"?1:-1,Rt<0&&(Rt=0),Rt===tt.length&&(Rt=-1)),Rt=$e(Rt,H),pt(Rt),Et(Rt)},Lt=X=>{rt.current=!0,St(""),L&&L(X,"","clear"),Vt(X,E?[]:null,"clear")},ge=X=>H=>{if(X.onKeyDown&&X.onKeyDown(H),!H.defaultMuiPrevented&&(Z!==-1&&!["ArrowLeft","ArrowRight"].includes(H.key)&&(pt(-1),Et(-1)),H.which!==229))switch(H.key){case"Home":It&&$&&(H.preventDefault(),Bt({diff:"start",direction:"next",reason:"keyboard",event:H}));break;case"End":It&&$&&(H.preventDefault(),Bt({diff:"end",direction:"previous",reason:"keyboard",event:H}));break;case"PageUp":H.preventDefault(),Bt({diff:-5,direction:"previous",reason:"keyboard",event:H}),ie(H);break;case"PageDown":H.preventDefault(),Bt({diff:bd,direction:"next",reason:"keyboard",event:H}),ie(H);break;case"ArrowDown":H.preventDefault(),Bt({diff:1,direction:"next",reason:"keyboard",event:H}),ie(H);break;case"ArrowUp":H.preventDefault(),Bt({diff:-1,direction:"previous",reason:"keyboard",event:H}),ie(H);break;case"ArrowLeft":pe(H,"previous");break;case"ArrowRight":pe(H,"next");break;case"Enter":if(ht.current!==-1&&It){const Rt=ut[ht.current],Ot=C?C(Rt):!1;if(H.preventDefault(),Ot)return;ce(H,Rt,"selectOption"),r&&at.current.setSelectionRange(at.current.value.length,at.current.value.length)}else S&&dt!==""&&$t===!1&&(E&&H.preventDefault(),ce(H,dt,"createOption","freeSolo"));break;case"Escape":It?(H.preventDefault(),H.stopPropagation(),Pe(H,"escape")):l&&(dt!==""||E&&tt.length>0)&&(H.preventDefault(),H.stopPropagation(),Lt(H));break;case"Backspace":if(E&&!U&&dt===""&&tt.length>0){const Rt=Z===-1?tt.length-1:Z,Ot=tt.slice();Ot.splice(Rt,1),Vt(H,Ot,"removeOption",{option:tt[Rt]})}break;case"Delete":if(E&&!U&&dt===""&&tt.length>0&&Z!==-1){const Rt=Z,Ot=tt.slice();Ot.splice(Rt,1),Vt(H,Ot,"removeOption",{option:tt[Rt]})}break}},yt=X=>{nt(!0),N&&!rt.current&&ie(X)},Pt=X=>{if(e(ct)){at.current.focus();return}nt(!1),Y.current=!0,rt.current=!1,s&&ht.current!==-1&&It?ce(X,ut[ht.current],"blur"):s&&S&&dt!==""?ce(X,dt,"blur","freeSolo"):i&&Tt(X,tt,"blur"),Pe(X,"blur")},Dt=X=>{const H=X.target.value;dt!==H&&(St(H),bt(!1),L&&L(X,H,"input")),H===""?!u&&!E&&Vt(X,null,"clear"):ie(X)},Ft=X=>{const H=Number(X.currentTarget.getAttribute("data-option-index"));ht.current!==H&&xt({event:X,index:H,reason:"mouse"})},Zt=X=>{xt({event:X,index:Number(X.currentTarget.getAttribute("data-option-index")),reason:"touch"}),_t.current=!0},Se=X=>{const H=Number(X.currentTarget.getAttribute("data-option-index"));ce(X,ut[H],"selectOption"),_t.current=!1},Ve=X=>H=>{const Rt=tt.slice();Rt.splice(X,1),Vt(H,Rt,"removeOption",{option:tt[X]})},to=X=>{At?Pe(X,"toggleInput"):ie(X)},co=X=>{X.currentTarget.contains(X.target)&&X.target.getAttribute("id")!==mt&&X.preventDefault()},ne=X=>{X.currentTarget.contains(X.target)&&(at.current.focus(),wt&&Y.current&&at.current.selectionEnd-at.current.selectionStart===0&&at.current.select(),Y.current=!1)},de=X=>{!g&&(dt===""||!At)&&to(X)};let qe=S&&dt.length>0;qe=qe||(E?tt.length>0:tt!==null);let Tr=ut;return P&&(Tr=ut.reduce((X,H,Rt)=>{const Ot=P(H);return X.length>0&&X[X.length-1].group===Ot?X[X.length-1].options.push(H):X.push({key:Rt,index:Rt,group:Ot,options:[H]}),X},[])),g&>&&Pt(),{getRootProps:(X={})=>({...X,onKeyDown:ge(X),onMouseDown:co,onClick:ne}),getInputLabelProps:()=>({id:`${mt}-label`,htmlFor:mt}),getInputProps:()=>({id:mt,value:dt,onBlur:Pt,onFocus:yt,onChange:Dt,onMouseDown:de,"aria-activedescendant":It?"":null,"aria-autocomplete":r?"both":"list","aria-controls":Ut?`${mt}-listbox`:void 0,"aria-expanded":Ut,autoComplete:"off",ref:at,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:g}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:Lt}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:to}),getTagProps:({index:X})=>({key:X,"data-tag-index":X,tabIndex:-1,...!U&&{onDelete:Ve(X)}}),getListboxProps:()=>({role:"listbox",id:`${mt}-listbox`,"aria-labelledby":`${mt}-label`,ref:fe,onMouseDown:X=>{X.preventDefault()}}),getOptionProps:({index:X,option:H})=>{const Rt=(E?tt:[tt]).some(Ht=>Ht!=null&&z(H,Ht)),Ot=C?C(H):!1;return{key:(x==null?void 0:x(H))??et(H),tabIndex:-1,role:"option",id:`${mt}-option-${X}`,onMouseMove:Ft,onClick:Se,onTouchStart:Zt,"data-option-index":X,"aria-disabled":Ot,"aria-selected":Rt}},id:mt,inputValue:dt,value:tt,dirty:qe,expanded:It&&st,popupOpen:It,focused:gt||Z!==-1,anchorEl:st,setAnchorEl:ft,focusedTag:Z,groupedOptions:Tr}}var we="top",Fe="bottom",We="right",Re="left",hs="auto",$r=[we,Fe,We,Re],Go="start",hr="end",xd="clippingParents",Ri="viewport",Qo="popper",Cd="reference",Js=$r.reduce(function(t,e){return t.concat([e+"-"+Go,e+"-"+hr])},[]),Pi=[].concat($r,[hs]).reduce(function(t,e){return t.concat([e,e+"-"+Go,e+"-"+hr])},[]),Sd="beforeRead",wd="read",Rd="afterRead",Pd="beforeMain",$d="main",kd="afterMain",Id="beforeWrite",Td="write",Md="afterWrite",Ld=[Sd,wd,Rd,Pd,$d,kd,Id,Td,Md];function Qe(t){return t?(t.nodeName||"").toLowerCase():null}function Me(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Bo(t){var e=Me(t).Element;return t instanceof e||t instanceof Element}function ze(t){var e=Me(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function ys(t){if(typeof ShadowRoot>"u")return!1;var e=Me(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Ad(t){var e=t.state;Object.keys(e.elements).forEach(function(o){var r=e.styles[o]||{},n=e.attributes[o]||{},s=e.elements[o];!ze(s)||!Qe(s)||(Object.assign(s.style,r),Object.keys(n).forEach(function(a){var i=n[a];i===!1?s.removeAttribute(a):s.setAttribute(a,i===!0?"":i)}))})}function Bd(t){var e=t.state,o={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,o.popper),e.styles=o,e.elements.arrow&&Object.assign(e.elements.arrow.style,o.arrow),function(){Object.keys(e.elements).forEach(function(r){var n=e.elements[r],s=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:o[r]),i=a.reduce(function(l,c){return l[c]="",l},{});!ze(n)||!Qe(n)||(Object.assign(n.style,i),Object.keys(s).forEach(function(l){n.removeAttribute(l)}))})}}const Ed={name:"applyStyles",enabled:!0,phase:"write",fn:Ad,effect:Bd,requires:["computeStyles"]};function Ye(t){return t.split("-")[0]}var Mo=Math.max,sn=Math.min,Ko=Math.round;function Yn(){var t=navigator.userAgentData;return t!=null&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function $i(){return!/^((?!chrome|android).)*safari/i.test(Yn())}function qo(t,e,o){e===void 0&&(e=!1),o===void 0&&(o=!1);var r=t.getBoundingClientRect(),n=1,s=1;e&&ze(t)&&(n=t.offsetWidth>0&&Ko(r.width)/t.offsetWidth||1,s=t.offsetHeight>0&&Ko(r.height)/t.offsetHeight||1);var a=Bo(t)?Me(t):window,i=a.visualViewport,l=!$i()&&o,c=(r.left+(l&&i?i.offsetLeft:0))/n,p=(r.top+(l&&i?i.offsetTop:0))/s,u=r.width/n,m=r.height/s;return{width:u,height:m,top:p,right:c+u,bottom:p+m,left:c,x:c,y:p}}function xs(t){var e=qo(t),o=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-o)<=1&&(o=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:o,height:r}}function ki(t,e){var o=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(o&&ys(o)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ao(t){return Me(t).getComputedStyle(t)}function Od(t){return["table","td","th"].indexOf(Qe(t))>=0}function yo(t){return((Bo(t)?t.ownerDocument:t.document)||window.document).documentElement}function bn(t){return Qe(t)==="html"?t:t.assignedSlot||t.parentNode||(ys(t)?t.host:null)||yo(t)}function ta(t){return!ze(t)||ao(t).position==="fixed"?null:t.offsetParent}function Nd(t){var e=/firefox/i.test(Yn()),o=/Trident/i.test(Yn());if(o&&ze(t)){var r=ao(t);if(r.position==="fixed")return null}var n=bn(t);for(ys(n)&&(n=n.host);ze(n)&&["html","body"].indexOf(Qe(n))<0;){var s=ao(n);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||e&&s.willChange==="filter"||e&&s.filter&&s.filter!=="none")return n;n=n.parentNode}return null}function kr(t){for(var e=Me(t),o=ta(t);o&&Od(o)&&ao(o).position==="static";)o=ta(o);return o&&(Qe(o)==="html"||Qe(o)==="body"&&ao(o).position==="static")?e:o||Nd(t)||e}function Cs(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function dr(t,e,o){return Mo(t,sn(e,o))}function zd(t,e,o){var r=dr(t,e,o);return r>o?o:r}function Ii(){return{top:0,right:0,bottom:0,left:0}}function Ti(t){return Object.assign({},Ii(),t)}function Mi(t,e){return e.reduce(function(o,r){return o[r]=t,o},{})}var jd=function(e,o){return e=typeof e=="function"?e(Object.assign({},o.rects,{placement:o.placement})):e,Ti(typeof e!="number"?e:Mi(e,$r))};function Dd(t){var e,o=t.state,r=t.name,n=t.options,s=o.elements.arrow,a=o.modifiersData.popperOffsets,i=Ye(o.placement),l=Cs(i),c=[Re,We].indexOf(i)>=0,p=c?"height":"width";if(!(!s||!a)){var u=jd(n.padding,o),m=xs(s),g=l==="y"?we:Re,b=l==="y"?Fe:We,v=o.rects.reference[p]+o.rects.reference[l]-a[l]-o.rects.popper[p],h=a[l]-o.rects.reference[l],y=kr(s),S=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,C=v/2-h/2,x=u[g],w=S-m[p]-u[b],P=S/2-m[p]/2+C,$=dr(x,P,w),I=l;o.modifiersData[r]=(e={},e[I]=$,e.centerOffset=$-P,e)}}function Fd(t){var e=t.state,o=t.options,r=o.element,n=r===void 0?"[data-popper-arrow]":r;n!=null&&(typeof n=="string"&&(n=e.elements.popper.querySelector(n),!n)||ki(e.elements.popper,n)&&(e.elements.arrow=n))}const Wd={name:"arrow",enabled:!0,phase:"main",fn:Dd,effect:Fd,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Xo(t){return t.split("-")[1]}var Ud={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Hd(t,e){var o=t.x,r=t.y,n=e.devicePixelRatio||1;return{x:Ko(o*n)/n||0,y:Ko(r*n)/n||0}}function ea(t){var e,o=t.popper,r=t.popperRect,n=t.placement,s=t.variation,a=t.offsets,i=t.position,l=t.gpuAcceleration,c=t.adaptive,p=t.roundOffsets,u=t.isFixed,m=a.x,g=m===void 0?0:m,b=a.y,v=b===void 0?0:b,h=typeof p=="function"?p({x:g,y:v}):{x:g,y:v};g=h.x,v=h.y;var y=a.hasOwnProperty("x"),S=a.hasOwnProperty("y"),C=Re,x=we,w=window;if(c){var P=kr(o),$="clientHeight",I="clientWidth";if(P===Me(o)&&(P=yo(o),ao(P).position!=="static"&&i==="absolute"&&($="scrollHeight",I="scrollWidth")),P=P,n===we||(n===Re||n===We)&&s===hr){x=Fe;var A=u&&P===w&&w.visualViewport?w.visualViewport.height:P[$];v-=A-r.height,v*=l?1:-1}if(n===Re||(n===we||n===Fe)&&s===hr){C=We;var T=u&&P===w&&w.visualViewport?w.visualViewport.width:P[I];g-=T-r.width,g*=l?1:-1}}var z=Object.assign({position:i},c&&Ud),E=p===!0?Hd({x:g,y:v},Me(o)):{x:g,y:v};if(g=E.x,v=E.y,l){var R;return Object.assign({},z,(R={},R[x]=S?"0":"",R[C]=y?"0":"",R.transform=(w.devicePixelRatio||1)<=1?"translate("+g+"px, "+v+"px)":"translate3d("+g+"px, "+v+"px, 0)",R))}return Object.assign({},z,(e={},e[x]=S?v+"px":"",e[C]=y?g+"px":"",e.transform="",e))}function Vd(t){var e=t.state,o=t.options,r=o.gpuAcceleration,n=r===void 0?!0:r,s=o.adaptive,a=s===void 0?!0:s,i=o.roundOffsets,l=i===void 0?!0:i,c={placement:Ye(e.placement),variation:Xo(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,ea(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,ea(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Gd={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Vd,data:{}};var Or={passive:!0};function Kd(t){var e=t.state,o=t.instance,r=t.options,n=r.scroll,s=n===void 0?!0:n,a=r.resize,i=a===void 0?!0:a,l=Me(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&c.forEach(function(p){p.addEventListener("scroll",o.update,Or)}),i&&l.addEventListener("resize",o.update,Or),function(){s&&c.forEach(function(p){p.removeEventListener("scroll",o.update,Or)}),i&&l.removeEventListener("resize",o.update,Or)}}const qd={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Kd,data:{}};var Xd={left:"right",right:"left",bottom:"top",top:"bottom"};function Qr(t){return t.replace(/left|right|bottom|top/g,function(e){return Xd[e]})}var _d={start:"end",end:"start"};function oa(t){return t.replace(/start|end/g,function(e){return _d[e]})}function Ss(t){var e=Me(t),o=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:o,scrollTop:r}}function ws(t){return qo(yo(t)).left+Ss(t).scrollLeft}function Yd(t,e){var o=Me(t),r=yo(t),n=o.visualViewport,s=r.clientWidth,a=r.clientHeight,i=0,l=0;if(n){s=n.width,a=n.height;var c=$i();(c||!c&&e==="fixed")&&(i=n.offsetLeft,l=n.offsetTop)}return{width:s,height:a,x:i+ws(t),y:l}}function Zd(t){var e,o=yo(t),r=Ss(t),n=(e=t.ownerDocument)==null?void 0:e.body,s=Mo(o.scrollWidth,o.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),a=Mo(o.scrollHeight,o.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),i=-r.scrollLeft+ws(t),l=-r.scrollTop;return ao(n||o).direction==="rtl"&&(i+=Mo(o.clientWidth,n?n.clientWidth:0)-s),{width:s,height:a,x:i,y:l}}function Rs(t){var e=ao(t),o=e.overflow,r=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(o+n+r)}function Li(t){return["html","body","#document"].indexOf(Qe(t))>=0?t.ownerDocument.body:ze(t)&&Rs(t)?t:Li(bn(t))}function ur(t,e){var o;e===void 0&&(e=[]);var r=Li(t),n=r===((o=t.ownerDocument)==null?void 0:o.body),s=Me(r),a=n?[s].concat(s.visualViewport||[],Rs(r)?r:[]):r,i=e.concat(a);return n?i:i.concat(ur(bn(a)))}function Zn(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Qd(t,e){var o=qo(t,!1,e==="fixed");return o.top=o.top+t.clientTop,o.left=o.left+t.clientLeft,o.bottom=o.top+t.clientHeight,o.right=o.left+t.clientWidth,o.width=t.clientWidth,o.height=t.clientHeight,o.x=o.left,o.y=o.top,o}function ra(t,e,o){return e===Ri?Zn(Yd(t,o)):Bo(e)?Qd(e,o):Zn(Zd(yo(t)))}function Jd(t){var e=ur(bn(t)),o=["absolute","fixed"].indexOf(ao(t).position)>=0,r=o&&ze(t)?kr(t):t;return Bo(r)?e.filter(function(n){return Bo(n)&&ki(n,r)&&Qe(n)!=="body"}):[]}function tu(t,e,o,r){var n=e==="clippingParents"?Jd(t):[].concat(e),s=[].concat(n,[o]),a=s[0],i=s.reduce(function(l,c){var p=ra(t,c,r);return l.top=Mo(p.top,l.top),l.right=sn(p.right,l.right),l.bottom=sn(p.bottom,l.bottom),l.left=Mo(p.left,l.left),l},ra(t,a,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function Ai(t){var e=t.reference,o=t.element,r=t.placement,n=r?Ye(r):null,s=r?Xo(r):null,a=e.x+e.width/2-o.width/2,i=e.y+e.height/2-o.height/2,l;switch(n){case we:l={x:a,y:e.y-o.height};break;case Fe:l={x:a,y:e.y+e.height};break;case We:l={x:e.x+e.width,y:i};break;case Re:l={x:e.x-o.width,y:i};break;default:l={x:e.x,y:e.y}}var c=n?Cs(n):null;if(c!=null){var p=c==="y"?"height":"width";switch(s){case Go:l[c]=l[c]-(e[p]/2-o[p]/2);break;case hr:l[c]=l[c]+(e[p]/2-o[p]/2);break}}return l}function yr(t,e){e===void 0&&(e={});var o=e,r=o.placement,n=r===void 0?t.placement:r,s=o.strategy,a=s===void 0?t.strategy:s,i=o.boundary,l=i===void 0?xd:i,c=o.rootBoundary,p=c===void 0?Ri:c,u=o.elementContext,m=u===void 0?Qo:u,g=o.altBoundary,b=g===void 0?!1:g,v=o.padding,h=v===void 0?0:v,y=Ti(typeof h!="number"?h:Mi(h,$r)),S=m===Qo?Cd:Qo,C=t.rects.popper,x=t.elements[b?S:m],w=tu(Bo(x)?x:x.contextElement||yo(t.elements.popper),l,p,a),P=qo(t.elements.reference),$=Ai({reference:P,element:C,placement:n}),I=Zn(Object.assign({},C,$)),A=m===Qo?I:P,T={top:w.top-A.top+y.top,bottom:A.bottom-w.bottom+y.bottom,left:w.left-A.left+y.left,right:A.right-w.right+y.right},z=t.modifiersData.offset;if(m===Qo&&z){var E=z[n];Object.keys(T).forEach(function(R){var M=[We,Fe].indexOf(R)>=0?1:-1,O=[we,Fe].indexOf(R)>=0?"y":"x";T[R]+=E[O]*M})}return T}function eu(t,e){e===void 0&&(e={});var o=e,r=o.placement,n=o.boundary,s=o.rootBoundary,a=o.padding,i=o.flipVariations,l=o.allowedAutoPlacements,c=l===void 0?Pi:l,p=Xo(r),u=p?i?Js:Js.filter(function(b){return Xo(b)===p}):$r,m=u.filter(function(b){return c.indexOf(b)>=0});m.length===0&&(m=u);var g=m.reduce(function(b,v){return b[v]=yr(t,{placement:v,boundary:n,rootBoundary:s,padding:a})[Ye(v)],b},{});return Object.keys(g).sort(function(b,v){return g[b]-g[v]})}function ou(t){if(Ye(t)===hs)return[];var e=Qr(t);return[oa(t),e,oa(e)]}function ru(t){var e=t.state,o=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var n=o.mainAxis,s=n===void 0?!0:n,a=o.altAxis,i=a===void 0?!0:a,l=o.fallbackPlacements,c=o.padding,p=o.boundary,u=o.rootBoundary,m=o.altBoundary,g=o.flipVariations,b=g===void 0?!0:g,v=o.allowedAutoPlacements,h=e.options.placement,y=Ye(h),S=y===h,C=l||(S||!b?[Qr(h)]:ou(h)),x=[h].concat(C).reduce(function(mt,et){return mt.concat(Ye(et)===hs?eu(e,{placement:et,boundary:p,rootBoundary:u,padding:c,flipVariations:b,allowedAutoPlacements:v}):et)},[]),w=e.rects.reference,P=e.rects.popper,$=new Map,I=!0,A=x[0],T=0;T=0,O=M?"width":"height",L=yr(e,{placement:z,boundary:p,rootBoundary:u,altBoundary:m,padding:c}),F=M?R?We:Re:R?Fe:we;w[O]>P[O]&&(F=Qr(F));var D=Qr(F),N=[];if(s&&N.push(L[E]<=0),i&&N.push(L[F]<=0,L[D]<=0),N.every(function(mt){return mt})){A=z,I=!1;break}$.set(z,N)}if(I)for(var J=b?3:1,U=function(et){var rt=x.find(function(Y){var at=$.get(Y);if(at)return at.slice(0,et).every(function(ct){return ct})});if(rt)return A=rt,"break"},wt=J;wt>0;wt--){var vt=U(wt);if(vt==="break")break}e.placement!==A&&(e.modifiersData[r]._skip=!0,e.placement=A,e.reset=!0)}}const nu={name:"flip",enabled:!0,phase:"main",fn:ru,requiresIfExists:["offset"],data:{_skip:!1}};function na(t,e,o){return o===void 0&&(o={x:0,y:0}),{top:t.top-e.height-o.y,right:t.right-e.width+o.x,bottom:t.bottom-e.height+o.y,left:t.left-e.width-o.x}}function sa(t){return[we,We,Fe,Re].some(function(e){return t[e]>=0})}function su(t){var e=t.state,o=t.name,r=e.rects.reference,n=e.rects.popper,s=e.modifiersData.preventOverflow,a=yr(e,{elementContext:"reference"}),i=yr(e,{altBoundary:!0}),l=na(a,r),c=na(i,n,s),p=sa(l),u=sa(c);e.modifiersData[o]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}const au={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:su};function iu(t,e,o){var r=Ye(t),n=[Re,we].indexOf(r)>=0?-1:1,s=typeof o=="function"?o(Object.assign({},e,{placement:t})):o,a=s[0],i=s[1];return a=a||0,i=(i||0)*n,[Re,We].indexOf(r)>=0?{x:i,y:a}:{x:a,y:i}}function lu(t){var e=t.state,o=t.options,r=t.name,n=o.offset,s=n===void 0?[0,0]:n,a=Pi.reduce(function(p,u){return p[u]=iu(u,e.rects,s),p},{}),i=a[e.placement],l=i.x,c=i.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[r]=a}const cu={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:lu};function pu(t){var e=t.state,o=t.name;e.modifiersData[o]=Ai({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const du={name:"popperOffsets",enabled:!0,phase:"read",fn:pu,data:{}};function uu(t){return t==="x"?"y":"x"}function fu(t){var e=t.state,o=t.options,r=t.name,n=o.mainAxis,s=n===void 0?!0:n,a=o.altAxis,i=a===void 0?!1:a,l=o.boundary,c=o.rootBoundary,p=o.altBoundary,u=o.padding,m=o.tether,g=m===void 0?!0:m,b=o.tetherOffset,v=b===void 0?0:b,h=yr(e,{boundary:l,rootBoundary:c,padding:u,altBoundary:p}),y=Ye(e.placement),S=Xo(e.placement),C=!S,x=Cs(y),w=uu(x),P=e.modifiersData.popperOffsets,$=e.rects.reference,I=e.rects.popper,A=typeof v=="function"?v(Object.assign({},e.rects,{placement:e.placement})):v,T=typeof A=="number"?{mainAxis:A,altAxis:A}:Object.assign({mainAxis:0,altAxis:0},A),z=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,E={x:0,y:0};if(P){if(s){var R,M=x==="y"?we:Re,O=x==="y"?Fe:We,L=x==="y"?"height":"width",F=P[x],D=F+h[M],N=F-h[O],J=g?-I[L]/2:0,U=S===Go?$[L]:I[L],wt=S===Go?-I[L]:-$[L],vt=e.elements.arrow,mt=g&&vt?xs(vt):{width:0,height:0},et=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:Ii(),rt=et[M],Y=et[O],at=dr(0,$[L],mt[L]),ct=C?$[L]/2-J-at-rt-T.mainAxis:U-at-rt-T.mainAxis,st=C?-$[L]/2+J+at+Y+T.mainAxis:wt+at+Y+T.mainAxis,ft=e.elements.arrow&&kr(e.elements.arrow),Z=ft?x==="y"?ft.clientTop||0:ft.clientLeft||0:0,pt=(R=z==null?void 0:z[x])!=null?R:0,it=F+ct-pt-Z,ht=F+st-pt,Mt=dr(g?sn(D,it):D,F,g?Mo(N,ht):N);P[x]=Mt,E[x]=Mt-F}if(i){var tt,ot=x==="x"?we:Re,dt=x==="x"?Fe:We,St=P[w],gt=w==="y"?"height":"width",nt=St+h[ot],Tt=St-h[dt],At=[we,Re].indexOf(y)!==-1,q=(tt=z==null?void 0:z[w])!=null?tt:0,lt=At?nt:St-$[gt]-I[gt]-q+T.altAxis,bt=At?St+$[gt]+I[gt]-q-T.altAxis:Tt,$t=g&&At?zd(lt,St,bt):dr(g?lt:nt,St,g?bt:Tt);P[w]=$t,E[w]=$t-St}e.modifiersData[r]=E}}const gu={name:"preventOverflow",enabled:!0,phase:"main",fn:fu,requiresIfExists:["offset"]};function mu(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function bu(t){return t===Me(t)||!ze(t)?Ss(t):mu(t)}function vu(t){var e=t.getBoundingClientRect(),o=Ko(e.width)/t.offsetWidth||1,r=Ko(e.height)/t.offsetHeight||1;return o!==1||r!==1}function hu(t,e,o){o===void 0&&(o=!1);var r=ze(e),n=ze(e)&&vu(e),s=yo(e),a=qo(t,n,o),i={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!o)&&((Qe(e)!=="body"||Rs(s))&&(i=bu(e)),ze(e)?(l=qo(e,!0),l.x+=e.clientLeft,l.y+=e.clientTop):s&&(l.x=ws(s))),{x:a.left+i.scrollLeft-l.x,y:a.top+i.scrollTop-l.y,width:a.width,height:a.height}}function yu(t){var e=new Map,o=new Set,r=[];t.forEach(function(s){e.set(s.name,s)});function n(s){o.add(s.name);var a=[].concat(s.requires||[],s.requiresIfExists||[]);a.forEach(function(i){if(!o.has(i)){var l=e.get(i);l&&n(l)}}),r.push(s)}return t.forEach(function(s){o.has(s.name)||n(s)}),r}function xu(t){var e=yu(t);return Ld.reduce(function(o,r){return o.concat(e.filter(function(n){return n.phase===r}))},[])}function Cu(t){var e;return function(){return e||(e=new Promise(function(o){Promise.resolve().then(function(){e=void 0,o(t())})})),e}}function Su(t){var e=t.reduce(function(o,r){var n=o[r.name];return o[r.name]=n?Object.assign({},n,r,{options:Object.assign({},n.options,r.options),data:Object.assign({},n.data,r.data)}):r,o},{});return Object.keys(e).map(function(o){return e[o]})}var aa={placement:"bottom",modifiers:[],strategy:"absolute"};function ia(){for(var t=arguments.length,e=new Array(t),o=0;o{s||i($u(n)||document.body)},[n,s]),be(()=>{if(a&&!s)return Gn(o,a),()=>{Gn(o,null)}},[o,a,s]),s){if(d.isValidElement(r)){const c={ref:l};return d.cloneElement(r,c)}return r}return a&&Hn.createPortal(r,a)});function ku(t){return V("MuiPopper",t)}K("MuiPopper",["root"]);function Iu(t,e){if(e==="ltr")return t;switch(t){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return t}}function Qn(t){return typeof t=="function"?t():t}function Tu(t){return t.nodeType!==void 0}const Mu=t=>{const{classes:e}=t;return G({root:["root"]},ku,e)},Lu={},Au=d.forwardRef(function(e,o){const{anchorEl:r,children:n,direction:s,disablePortal:a,modifiers:i,open:l,placement:c,popperOptions:p,popperRef:u,slotProps:m={},slots:g={},TransitionProps:b,ownerState:v,...h}=e,y=d.useRef(null),S=qt(y,o),C=d.useRef(null),x=qt(C,u),w=d.useRef(x);be(()=>{w.current=x},[x]),d.useImperativeHandle(u,()=>C.current,[]);const P=Iu(c,s),[$,I]=d.useState(P),[A,T]=d.useState(Qn(r));d.useEffect(()=>{C.current&&C.current.forceUpdate()}),d.useEffect(()=>{r&&T(Qn(r))},[r]),be(()=>{if(!A||!l)return;const O=D=>{I(D.placement)};let L=[{name:"preventOverflow",options:{altBoundary:a}},{name:"flip",options:{altBoundary:a}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:D})=>{O(D)}}];i!=null&&(L=L.concat(i)),p&&p.modifiers!=null&&(L=L.concat(p.modifiers));const F=Pu(A,y.current,{placement:P,...p,modifiers:L});return w.current(F),()=>{F.destroy(),w.current(null)}},[A,a,i,l,p,P]);const z={placement:$};b!==null&&(z.TransitionProps=b);const E=Mu(e),R=g.root??"div",M=Ce({elementType:R,externalSlotProps:m.root,externalForwardedProps:h,additionalProps:{role:"tooltip",ref:S},ownerState:e,className:E.root});return f.jsx(R,{...M,children:typeof n=="function"?n(z):n})}),Bu=d.forwardRef(function(e,o){const{anchorEl:r,children:n,container:s,direction:a="ltr",disablePortal:i=!1,keepMounted:l=!1,modifiers:c,open:p,placement:u="bottom",popperOptions:m=Lu,popperRef:g,style:b,transition:v=!1,slotProps:h={},slots:y={},...S}=e,[C,x]=d.useState(!0),w=()=>{x(!1)},P=()=>{x(!0)};if(!l&&!p&&(!v||C))return null;let $;if(s)$=s;else if(r){const T=Qn(r);$=T&&Tu(T)?te(T).body:te(null).body}const I=!p&&l&&(!v||C)?"none":void 0,A=v?{in:p,onEnter:w,onExited:P}:void 0;return f.jsx(Bi,{disablePortal:i,container:$,children:f.jsx(Au,{anchorEl:r,direction:a,disablePortal:i,modifiers:c,ref:o,open:v?!C:p,placement:u,popperOptions:m,popperRef:g,slotProps:h,slots:y,...S,style:{position:"fixed",top:0,left:0,display:I,...b},TransitionProps:A,children:n})})}),Eu=k(Bu,{name:"MuiPopper",slot:"Root",overridesResolver:(t,e)=>e.root})({}),vn=d.forwardRef(function(e,o){const r=Ke(),n=_({props:e,name:"MuiPopper"}),{anchorEl:s,component:a,components:i,componentsProps:l,container:c,disablePortal:p,keepMounted:u,modifiers:m,open:g,placement:b,popperOptions:v,popperRef:h,transition:y,slots:S,slotProps:C,...x}=n,w=(S==null?void 0:S.root)??(i==null?void 0:i.Root),P={anchorEl:s,container:c,disablePortal:p,keepMounted:u,modifiers:m,open:g,placement:b,popperOptions:v,popperRef:h,transition:y,...x};return f.jsx(Eu,{as:a,direction:r?"rtl":"ltr",slots:{root:w},slotProps:C??l,...P,ref:o})});function Ou(t){return V("MuiListSubheader",t)}const GS=K("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]),Nu=t=>{const{classes:e,color:o,disableGutters:r,inset:n,disableSticky:s}=t,a={root:["root",o!=="default"&&`color${B(o)}`,!r&&"gutters",n&&"inset",!s&&"sticky"]};return G(a,Ou,e)},zu=k("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="default"&&e[`color${B(o.color)}`],!o.disableGutters&&e.gutters,o.inset&&e.inset,!o.disableSticky&&e.sticky]}})(W(({theme:t})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(t.vars||t).palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(t.vars||t).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:72}},{props:({ownerState:e})=>!e.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(t.vars||t).palette.background.paper}}]}))),Jn=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListSubheader"}),{className:n,color:s="default",component:a="li",disableGutters:i=!1,disableSticky:l=!1,inset:c=!1,...p}=r,u={...r,color:s,component:a,disableGutters:i,disableSticky:l,inset:c},m=Nu(u);return f.jsx(zu,{as:a,className:j(m.root,n),ref:o,ownerState:u,...p})});Jn&&(Jn.muiSkipListHighlight=!0);const ju=Qt(f.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function Du(t){return V("MuiChip",t)}const Wt=K("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","outlined","filled","outlinedPrimary","outlinedSecondary","filledPrimary","filledSecondary","avatar","avatarSmall","avatarMedium","avatarColorPrimary","avatarColorSecondary","icon","iconSmall","iconMedium","iconColorPrimary","iconColorSecondary","label","labelSmall","labelMedium","deleteIcon","deleteIconSmall","deleteIconMedium","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","deleteIconFilledColorPrimary","deleteIconFilledColorSecondary","focusVisible"]),Fu=t=>{const{classes:e,disabled:o,size:r,color:n,iconColor:s,onDelete:a,clickable:i,variant:l}=t,c={root:["root",l,o&&"disabled",`size${B(r)}`,`color${B(n)}`,i&&"clickable",i&&`clickableColor${B(n)}`,a&&"deletable",a&&`deletableColor${B(n)}`,`${l}${B(n)}`],label:["label",`label${B(r)}`],avatar:["avatar",`avatar${B(r)}`,`avatarColor${B(n)}`],icon:["icon",`icon${B(r)}`,`iconColor${B(s)}`],deleteIcon:["deleteIcon",`deleteIcon${B(r)}`,`deleteIconColor${B(n)}`,`deleteIcon${B(l)}Color${B(n)}`]};return G(c,Du,e)},Wu=k("div",{name:"MuiChip",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{color:r,iconColor:n,clickable:s,onDelete:a,size:i,variant:l}=o;return[{[`& .${Wt.avatar}`]:e.avatar},{[`& .${Wt.avatar}`]:e[`avatar${B(i)}`]},{[`& .${Wt.avatar}`]:e[`avatarColor${B(r)}`]},{[`& .${Wt.icon}`]:e.icon},{[`& .${Wt.icon}`]:e[`icon${B(i)}`]},{[`& .${Wt.icon}`]:e[`iconColor${B(n)}`]},{[`& .${Wt.deleteIcon}`]:e.deleteIcon},{[`& .${Wt.deleteIcon}`]:e[`deleteIcon${B(i)}`]},{[`& .${Wt.deleteIcon}`]:e[`deleteIconColor${B(r)}`]},{[`& .${Wt.deleteIcon}`]:e[`deleteIcon${B(l)}Color${B(r)}`]},e.root,e[`size${B(i)}`],e[`color${B(r)}`],s&&e.clickable,s&&r!=="default"&&e[`clickableColor${B(r)})`],a&&e.deletable,a&&r!=="default"&&e[`deletableColor${B(r)}`],e[l],e[`${l}${B(r)}`]]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[700]:t.palette.grey[300];return{maxWidth:"100%",fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,color:(t.vars||t).palette.text.primary,backgroundColor:(t.vars||t).palette.action.selected,borderRadius:32/2,whiteSpace:"nowrap",transition:t.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Wt.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Wt.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:t.vars?t.vars.palette.Chip.defaultAvatarColor:e,fontSize:t.typography.pxToRem(12)},[`& .${Wt.avatarColorPrimary}`]:{color:(t.vars||t).palette.primary.contrastText,backgroundColor:(t.vars||t).palette.primary.dark},[`& .${Wt.avatarColorSecondary}`]:{color:(t.vars||t).palette.secondary.contrastText,backgroundColor:(t.vars||t).palette.secondary.dark},[`& .${Wt.avatarSmall}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:t.typography.pxToRem(10)},[`& .${Wt.icon}`]:{marginLeft:5,marginRight:-6},[`& .${Wt.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.26)`:kt(t.palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.4)`:kt(t.palette.text.primary,.4)}},variants:[{props:{size:"small"},style:{height:24,[`& .${Wt.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${Wt.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(t.palette).filter(jt(["contrastText"])).map(([o])=>({props:{color:o},style:{backgroundColor:(t.vars||t).palette[o].main,color:(t.vars||t).palette[o].contrastText,[`& .${Wt.deleteIcon}`]:{color:t.vars?`rgba(${t.vars.palette[o].contrastTextChannel} / 0.7)`:kt(t.palette[o].contrastText,.7),"&:hover, &:active":{color:(t.vars||t).palette[o].contrastText}}}})),{props:o=>o.iconColor===o.color,style:{[`& .${Wt.icon}`]:{color:t.vars?t.vars.palette.Chip.defaultIconColor:e}}},{props:o=>o.iconColor===o.color&&o.color!=="default",style:{[`& .${Wt.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${Wt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}},...Object.entries(t.palette).filter(jt(["dark"])).map(([o])=>({props:{color:o,onDelete:!0},style:{[`&.${Wt.focusVisible}`]:{background:(t.vars||t).palette[o].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)},[`&.${Wt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)},"&:active":{boxShadow:(t.vars||t).shadows[1]}}},...Object.entries(t.palette).filter(jt(["dark"])).map(([o])=>({props:{color:o,clickable:!0},style:{[`&:hover, &.${Wt.focusVisible}`]:{backgroundColor:(t.vars||t).palette[o].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:t.vars?`1px solid ${t.vars.palette.Chip.defaultBorder}`:`1px solid ${t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[700]}`,[`&.${Wt.clickable}:hover`]:{backgroundColor:(t.vars||t).palette.action.hover},[`&.${Wt.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`& .${Wt.avatar}`]:{marginLeft:4},[`& .${Wt.avatarSmall}`]:{marginLeft:2},[`& .${Wt.icon}`]:{marginLeft:4},[`& .${Wt.iconSmall}`]:{marginLeft:2},[`& .${Wt.deleteIcon}`]:{marginRight:5},[`& .${Wt.deleteIconSmall}`]:{marginRight:3}}},...Object.entries(t.palette).filter(jt()).map(([o])=>({props:{variant:"outlined",color:o},style:{color:(t.vars||t).palette[o].main,border:`1px solid ${t.vars?`rgba(${t.vars.palette[o].mainChannel} / 0.7)`:kt(t.palette[o].main,.7)}`,[`&.${Wt.clickable}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[o].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[o].main,t.palette.action.hoverOpacity)},[`&.${Wt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[o].mainChannel} / ${t.vars.palette.action.focusOpacity})`:kt(t.palette[o].main,t.palette.action.focusOpacity)},[`& .${Wt.deleteIcon}`]:{color:t.vars?`rgba(${t.vars.palette[o].mainChannel} / 0.7)`:kt(t.palette[o].main,.7),"&:hover, &:active":{color:(t.vars||t).palette[o].main}}}}))]}})),Uu=k("span",{name:"MuiChip",slot:"Label",overridesResolver:(t,e)=>{const{ownerState:o}=t,{size:r}=o;return[e.label,e[`label${B(r)}`]]}})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function la(t){return t.key==="Backspace"||t.key==="Delete"}const Hu=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiChip"}),{avatar:n,className:s,clickable:a,color:i="default",component:l,deleteIcon:c,disabled:p=!1,icon:u,label:m,onClick:g,onDelete:b,onKeyDown:v,onKeyUp:h,size:y="medium",variant:S="filled",tabIndex:C,skipFocusWhenDisabled:x=!1,...w}=r,P=d.useRef(null),$=qt(P,o),I=N=>{N.stopPropagation(),b&&b(N)},A=N=>{N.currentTarget===N.target&&la(N)&&N.preventDefault(),v&&v(N)},T=N=>{N.currentTarget===N.target&&b&&la(N)&&b(N),h&&h(N)},z=a!==!1&&g?!0:a,E=z||b?ue:l||"div",R={...r,component:E,disabled:p,size:y,color:i,iconColor:d.isValidElement(u)&&u.props.color||i,onDelete:!!b,clickable:z,variant:S},M=Fu(R),O=E===ue?{component:l||"div",focusVisibleClassName:M.focusVisible,...b&&{disableRipple:!0}}:{};let L=null;b&&(L=c&&d.isValidElement(c)?d.cloneElement(c,{className:j(c.props.className,M.deleteIcon),onClick:I}):f.jsx(ju,{className:j(M.deleteIcon),onClick:I}));let F=null;n&&d.isValidElement(n)&&(F=d.cloneElement(n,{className:j(M.avatar,n.props.className)}));let D=null;return u&&d.isValidElement(u)&&(D=d.cloneElement(u,{className:j(M.icon,u.props.className)})),f.jsxs(Wu,{as:E,className:j(M.root,s),disabled:z&&p?!0:void 0,onClick:g,onKeyDown:A,onKeyUp:T,ref:$,tabIndex:x&&p?-1:C,ownerState:R,...O,...w,children:[F||D,f.jsx(Uu,{className:j(M.label),ownerState:R,children:m}),L]})});function Nr(t){return parseInt(t,10)||0}const Vu={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function Gu(t){for(const e in t)return!1;return!0}function ca(t){return Gu(t)||t.outerHeightStyle===0&&!t.overflowing}const Ku=d.forwardRef(function(e,o){const{onChange:r,maxRows:n,minRows:s=1,style:a,value:i,...l}=e,{current:c}=d.useRef(i!=null),p=d.useRef(null),u=qt(o,p),m=d.useRef(null),g=d.useRef(null),b=d.useCallback(()=>{const C=p.current,x=g.current;if(!C||!x)return;const P=me(C).getComputedStyle(C);if(P.width==="0px")return{outerHeightStyle:0,overflowing:!1};x.style.width=P.width,x.value=C.value||e.placeholder||"x",x.value.slice(-1)===` +`&&(x.value+=" ");const $=P.boxSizing,I=Nr(P.paddingBottom)+Nr(P.paddingTop),A=Nr(P.borderBottomWidth)+Nr(P.borderTopWidth),T=x.scrollHeight;x.value="x";const z=x.scrollHeight;let E=T;s&&(E=Math.max(Number(s)*z,E)),n&&(E=Math.min(Number(n)*z,E)),E=Math.max(E,z);const R=E+($==="border-box"?I+A:0),M=Math.abs(E-T)<=1;return{outerHeightStyle:R,overflowing:M}},[n,s,e.placeholder]),v=ee(()=>{const C=p.current,x=b();if(!C||!x||ca(x))return!1;const w=x.outerHeightStyle;return m.current!=null&&m.current!==w}),h=d.useCallback(()=>{const C=p.current,x=b();if(!C||!x||ca(x))return;const w=x.outerHeightStyle;m.current!==w&&(m.current=w,C.style.height=`${w}px`),C.style.overflow=x.overflowing?"hidden":""},[b]),y=d.useRef(-1);be(()=>{const C=Pr(h),x=p==null?void 0:p.current;if(!x)return;const w=me(x);w.addEventListener("resize",C);let P;return typeof ResizeObserver<"u"&&(P=new ResizeObserver(()=>{v()&&(P.unobserve(x),cancelAnimationFrame(y.current),h(),y.current=requestAnimationFrame(()=>{P.observe(x)}))}),P.observe(x)),()=>{C.clear(),cancelAnimationFrame(y.current),w.removeEventListener("resize",C),P&&P.disconnect()}},[b,h,v]),be(()=>{h()});const S=C=>{c||h(),r&&r(C)};return f.jsxs(d.Fragment,{children:[f.jsx("textarea",{value:i,onChange:S,ref:u,rows:s,style:a,...l}),f.jsx("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:g,tabIndex:-1,style:{...Vu.shadow,...a,paddingTop:0,paddingBottom:0}})]})});function so(t){return typeof t=="string"}function lo({props:t,states:e,muiFormControl:o}){return e.reduce((r,n)=>(r[n]=t[n],o&&typeof t[n]>"u"&&(r[n]=o[n]),r),{})}const hn=d.createContext(void 0);function He(){return d.useContext(hn)}function pa(t){return t!=null&&!(Array.isArray(t)&&t.length===0)}function an(t,e=!1){return t&&(pa(t.value)&&t.value!==""||e&&pa(t.defaultValue)&&t.defaultValue!=="")}function qu(t){return t.startAdornment}function Xu(t){return V("MuiInputBase",t)}const ke=K("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel"]);var da;const yn=(t,e)=>{const{ownerState:o}=t;return[e.root,o.formControl&&e.formControl,o.startAdornment&&e.adornedStart,o.endAdornment&&e.adornedEnd,o.error&&e.error,o.size==="small"&&e.sizeSmall,o.multiline&&e.multiline,o.color&&e[`color${B(o.color)}`],o.fullWidth&&e.fullWidth,o.hiddenLabel&&e.hiddenLabel]},xn=(t,e)=>{const{ownerState:o}=t;return[e.input,o.size==="small"&&e.inputSizeSmall,o.multiline&&e.inputMultiline,o.type==="search"&&e.inputTypeSearch,o.startAdornment&&e.inputAdornedStart,o.endAdornment&&e.inputAdornedEnd,o.hiddenLabel&&e.inputHiddenLabel]},_u=t=>{const{classes:e,color:o,disabled:r,error:n,endAdornment:s,focused:a,formControl:i,fullWidth:l,hiddenLabel:c,multiline:p,readOnly:u,size:m,startAdornment:g,type:b}=t,v={root:["root",`color${B(o)}`,r&&"disabled",n&&"error",l&&"fullWidth",a&&"focused",i&&"formControl",m&&m!=="medium"&&`size${B(m)}`,p&&"multiline",g&&"adornedStart",s&&"adornedEnd",c&&"hiddenLabel",u&&"readOnly"],input:["input",r&&"disabled",b==="search"&&"inputTypeSearch",p&&"inputMultiline",m==="small"&&"inputSizeSmall",c&&"inputHiddenLabel",g&&"inputAdornedStart",s&&"inputAdornedEnd",u&&"readOnly"]};return G(v,Xu,e)},Cn=k("div",{name:"MuiInputBase",slot:"Root",overridesResolver:yn})(W(({theme:t})=>({...t.typography.body1,color:(t.vars||t).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${ke.disabled}`]:{color:(t.vars||t).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:e})=>e.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:e,size:o})=>e.multiline&&o==="small",style:{paddingTop:1}},{props:({ownerState:e})=>e.fullWidth,style:{width:"100%"}}]}))),Sn=k("input",{name:"MuiInputBase",slot:"Input",overridesResolver:xn})(W(({theme:t})=>{const e=t.palette.mode==="light",o={color:"currentColor",...t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:e?.42:.5},transition:t.transitions.create("opacity",{duration:t.transitions.duration.shorter})},r={opacity:"0 !important"},n=t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:e?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":o,"&::-moz-placeholder":o,"&::-ms-input-placeholder":o,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${ke.formControl} &`]:{"&::-webkit-input-placeholder":r,"&::-moz-placeholder":r,"&::-ms-input-placeholder":r,"&:focus::-webkit-input-placeholder":n,"&:focus::-moz-placeholder":n,"&:focus::-ms-input-placeholder":n},[`&.${ke.disabled}`]:{opacity:1,WebkitTextFillColor:(t.vars||t).palette.text.disabled},variants:[{props:({ownerState:s})=>!s.disableInjectingGlobalStyles,style:{animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:"mui-auto-fill"}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:s})=>s.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),ua=ms({"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}),wn=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiInputBase"}),{"aria-describedby":n,autoComplete:s,autoFocus:a,className:i,color:l,components:c={},componentsProps:p={},defaultValue:u,disabled:m,disableInjectingGlobalStyles:g,endAdornment:b,error:v,fullWidth:h=!1,id:y,inputComponent:S="input",inputProps:C={},inputRef:x,margin:w,maxRows:P,minRows:$,multiline:I=!1,name:A,onBlur:T,onChange:z,onClick:E,onFocus:R,onKeyDown:M,onKeyUp:O,placeholder:L,readOnly:F,renderSuffix:D,rows:N,size:J,slotProps:U={},slots:wt={},startAdornment:vt,type:mt="text",value:et,...rt}=r,Y=C.value!=null?C.value:et,{current:at}=d.useRef(Y!=null),ct=d.useRef(),st=d.useCallback(Ct=>{},[]),ft=qt(ct,x,C.ref,st),[Z,pt]=d.useState(!1),it=He(),ht=lo({props:r,muiFormControl:it,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ht.focused=it?it.focused:Z,d.useEffect(()=>{!it&&m&&Z&&(pt(!1),T&&T())},[it,m,Z,T]);const Mt=it&&it.onFilled,tt=it&&it.onEmpty,ot=d.useCallback(Ct=>{an(Ct)?Mt&&Mt():tt&&tt()},[Mt,tt]);be(()=>{at&&ot({value:Y})},[Y,ot,at]);const dt=Ct=>{R&&R(Ct),C.onFocus&&C.onFocus(Ct),it&&it.onFocus?it.onFocus(Ct):pt(!0)},St=Ct=>{T&&T(Ct),C.onBlur&&C.onBlur(Ct),it&&it.onBlur?it.onBlur(Ct):pt(!1)},gt=(Ct,...Ut)=>{if(!at){const Et=Ct.target||ct.current;if(Et==null)throw new Error(Eo(1));ot({value:Et.value})}C.onChange&&C.onChange(Ct,...Ut),z&&z(Ct,...Ut)};d.useEffect(()=>{ot(ct.current)},[]);const nt=Ct=>{ct.current&&Ct.currentTarget===Ct.target&&ct.current.focus(),E&&E(Ct)};let Tt=S,At=C;I&&Tt==="input"&&(N?At={type:void 0,minRows:N,maxRows:N,...At}:At={type:void 0,maxRows:P,minRows:$,...At},Tt=Ku);const q=Ct=>{ot(Ct.animationName==="mui-auto-fill-cancel"?ct.current:{value:"x"})};d.useEffect(()=>{it&&it.setAdornedStart(!!vt)},[it,vt]);const lt={...r,color:ht.color||"primary",disabled:ht.disabled,endAdornment:b,error:ht.error,focused:ht.focused,formControl:it,fullWidth:h,hiddenLabel:ht.hiddenLabel,multiline:I,size:ht.size,startAdornment:vt,type:mt},bt=_u(lt),$t=wt.root||c.Root||Cn,It=U.root||p.root||{},ut=wt.input||c.Input||Sn;return At={...At,...U.input??p.input},f.jsxs(d.Fragment,{children:[!g&&typeof ua=="function"&&(da||(da=f.jsx(ua,{}))),f.jsxs($t,{...It,ref:o,onClick:nt,...rt,...!so($t)&&{ownerState:{...lt,...It.ownerState}},className:j(bt.root,It.className,i,F&&"MuiInputBase-readOnly"),children:[vt,f.jsx(hn.Provider,{value:null,children:f.jsx(ut,{"aria-invalid":ht.error,"aria-describedby":n,autoComplete:s,autoFocus:a,defaultValue:u,disabled:ht.disabled,id:y,onAnimationStart:q,name:A,placeholder:L,readOnly:F,required:ht.required,rows:N,value:Y,onKeyDown:M,onKeyUp:O,type:mt,...At,...!so(ut)&&{as:Tt,ownerState:{...lt,...At.ownerState}},ref:ft,className:j(bt.input,At.className,F&&"MuiInputBase-readOnly"),onBlur:St,onChange:gt,onFocus:dt})}),b,D?D({...ht,startAdornment:vt}):null]})]})});function Yu(t){return V("MuiInput",t)}const mo={...ke,...K("MuiInput",["root","underline","input"])};function Zu(t){return V("MuiOutlinedInput",t)}const Ee={...ke,...K("MuiOutlinedInput",["root","notchedOutline","input"])};function Qu(t){return V("MuiFilledInput",t)}const Ie={...ke,...K("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},Ps=Qt(f.jsx("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown");function Ju(t){return V("MuiAutocomplete",t)}const zt=K("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var fa,ga;const tf=t=>{const{classes:e,disablePortal:o,expanded:r,focused:n,fullWidth:s,hasClearIcon:a,hasPopupIcon:i,inputFocused:l,popupOpen:c,size:p}=t,u={root:["root",r&&"expanded",n&&"focused",s&&"fullWidth",a&&"hasClearIcon",i&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${B(p)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",o&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return G(u,Ju,e)},ef=k("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{fullWidth:r,hasClearIcon:n,hasPopupIcon:s,inputFocused:a,size:i}=o;return[{[`& .${zt.tag}`]:e.tag},{[`& .${zt.tag}`]:e[`tagSize${B(i)}`]},{[`& .${zt.inputRoot}`]:e.inputRoot},{[`& .${zt.input}`]:e.input},{[`& .${zt.input}`]:a&&e.inputFocused},e.root,r&&e.fullWidth,s&&e.hasPopupIcon,n&&e.hasClearIcon]}})({[`&.${zt.focused} .${zt.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${zt.clearIndicator}`]:{visibility:"visible"}},[`& .${zt.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${zt.inputRoot}`]:{[`.${zt.hasPopupIcon}&, .${zt.hasClearIcon}&`]:{paddingRight:30},[`.${zt.hasPopupIcon}.${zt.hasClearIcon}&`]:{paddingRight:56},[`& .${zt.input}`]:{width:0,minWidth:30}},[`& .${mo.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${mo.root}.${ke.sizeSmall}`]:{[`& .${mo.input}`]:{padding:"2px 4px 3px 0"}},[`& .${Ee.root}`]:{padding:9,[`.${zt.hasPopupIcon}&, .${zt.hasClearIcon}&`]:{paddingRight:39},[`.${zt.hasPopupIcon}.${zt.hasClearIcon}&`]:{paddingRight:65},[`& .${zt.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${zt.endAdornment}`]:{right:9}},[`& .${Ee.root}.${ke.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${zt.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${Ie.root}`]:{paddingTop:19,paddingLeft:8,[`.${zt.hasPopupIcon}&, .${zt.hasClearIcon}&`]:{paddingRight:39},[`.${zt.hasPopupIcon}.${zt.hasClearIcon}&`]:{paddingRight:65},[`& .${Ie.input}`]:{padding:"7px 4px"},[`& .${zt.endAdornment}`]:{right:9}},[`& .${Ie.root}.${ke.sizeSmall}`]:{paddingBottom:1,[`& .${Ie.input}`]:{padding:"2.5px 4px"}},[`& .${ke.hiddenLabel}`]:{paddingTop:8},[`& .${Ie.root}.${ke.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${zt.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${Ie.root}.${ke.hiddenLabel}.${ke.sizeSmall}`]:{[`& .${zt.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${zt.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${zt.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${zt.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${zt.inputRoot}`]:{flexWrap:"wrap"}}}]}),of=k("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(t,e)=>e.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),rf=k($o,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(t,e)=>e.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),nf=k($o,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popupIndicator,o.popupOpen&&e.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),sf=k(vn,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${zt.option}`]:e.option},e.popper,o.disablePortal&&e.popperDisablePortal]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),af=k(Ue,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(t,e)=>e.paper})(W(({theme:t})=>({...t.typography.body1,overflow:"auto"}))),lf=k("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(t,e)=>e.loading})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),cf=k("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(t,e)=>e.noOptions})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),pf=k("ul",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(t,e)=>e.listbox})(W(({theme:t})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${zt.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[t.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${zt.focused}`]:{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${zt.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${zt.focused}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${zt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}}}))),df=k(Jn,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(t,e)=>e.groupLabel})(W(({theme:t})=>({backgroundColor:(t.vars||t).palette.background.paper,top:-8}))),uf=k("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(t,e)=>e.groupUl})({padding:0,[`& .${zt.option}`]:{paddingLeft:24}}),KS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAutocomplete"}),{autoComplete:n=!1,autoHighlight:s=!1,autoSelect:a=!1,blurOnSelect:i=!1,ChipProps:l,className:c,clearIcon:p=fa||(fa=f.jsx(wi,{fontSize:"small"})),clearOnBlur:u=!r.freeSolo,clearOnEscape:m=!1,clearText:g="Clear",closeText:b="Close",componentsProps:v,defaultValue:h=r.multiple?[]:null,disableClearable:y=!1,disableCloseOnSelect:S=!1,disabled:C=!1,disabledItemsFocusable:x=!1,disableListWrap:w=!1,disablePortal:P=!1,filterOptions:$,filterSelectedOptions:I=!1,forcePopupIcon:A="auto",freeSolo:T=!1,fullWidth:z=!1,getLimitTagsText:E=Kt=>`+${Kt}`,getOptionDisabled:R,getOptionKey:M,getOptionLabel:O,isOptionEqualToValue:L,groupBy:F,handleHomeEndKeys:D=!r.freeSolo,id:N,includeInputInList:J=!1,inputValue:U,limitTags:wt=-1,ListboxComponent:vt,ListboxProps:mt,loading:et=!1,loadingText:rt="Loading…",multiple:Y=!1,noOptionsText:at="No options",onChange:ct,onClose:st,onHighlightChange:ft,onInputChange:Z,onOpen:pt,open:it,openOnFocus:ht=!1,openText:Mt="Open",options:tt,PaperComponent:ot,PopperComponent:dt,popupIcon:St=ga||(ga=f.jsx(Ps,{})),readOnly:gt=!1,renderGroup:nt,renderInput:Tt,renderOption:At,renderTags:q,selectOnFocus:lt=!r.freeSolo,size:bt="medium",slots:$t={},slotProps:It={},value:ut,...Ct}=r,{getRootProps:Ut,getInputProps:Et,getInputLabelProps:Gt,getPopupIndicatorProps:xt,getClearProps:Bt,getTagProps:Xt,getListboxProps:oe,getOptionProps:fe,value:ie,dirty:Pe,expanded:Vt,id:_t,popupOpen:ce,focused:$e,focusedTag:pe,anchorEl:Lt,setAnchorEl:ge,inputValue:yt,groupedOptions:Pt}=yd({...r,componentName:"Autocomplete"}),Dt=!y&&!C&&Pe&&!gt,Ft=(!T||A===!0)&&A!==!1,{onMouseDown:Zt}=Et(),{ref:Se,...Ve}=oe(),co=O||(Kt=>Kt.label??Kt),ne={...r,disablePortal:P,expanded:Vt,focused:$e,fullWidth:z,getOptionLabel:co,hasClearIcon:Dt,hasPopupIcon:Ft,inputFocused:pe===-1,popupOpen:ce,size:bt},de=tf(ne),qe={slots:{paper:ot,popper:dt,...$t},slotProps:{chip:l,listbox:mt,...v,...It}},[Tr,X]=Q("listbox",{elementType:pf,externalForwardedProps:qe,ownerState:ne,className:de.listbox,additionalProps:Ve,ref:Se}),[H,Rt]=Q("paper",{elementType:Ue,externalForwardedProps:qe,ownerState:ne,className:de.paper}),[Ot,Ht]=Q("popper",{elementType:vn,externalForwardedProps:qe,ownerState:ne,className:de.popper,additionalProps:{disablePortal:P,style:{width:Lt?Lt.clientWidth:null},role:"presentation",anchorEl:Lt,open:ce}});let Yt;if(Y&&ie.length>0){const Kt=Xe=>({className:de.tag,disabled:C,...Xt(Xe)});q?Yt=q(ie,Kt,ne):Yt=ie.map((Xe,po)=>{const{key:Zo,...vl}=Kt({index:po});return f.jsx(Hu,{label:co(Xe),size:bt,...vl,...qe.slotProps.chip},Zo)})}if(wt>-1&&Array.isArray(Yt)){const Kt=Yt.length-wt;!$e&&Kt>0&&(Yt=Yt.splice(0,wt),Yt.push(f.jsx("span",{className:de.tag,children:E(Kt)},Yt.length)))}const Ae=nt||(Kt=>f.jsxs("li",{children:[f.jsx(df,{className:de.groupLabel,ownerState:ne,component:"div",children:Kt.group}),f.jsx(uf,{className:de.groupUl,ownerState:ne,children:Kt.children})]},Kt.key)),bl=At||((Kt,Xe)=>{const{key:po,...Zo}=Kt;return f.jsx("li",{...Zo,children:co(Xe)},po)}),Es=(Kt,Xe)=>{const po=fe({option:Kt,index:Xe});return bl({...po,className:de.option},Kt,{selected:po["aria-selected"],index:Xe,inputValue:yt},ne)},Mr=qe.slotProps.clearIndicator,Lr=qe.slotProps.popupIndicator;return f.jsxs(d.Fragment,{children:[f.jsx(ef,{ref:o,className:j(de.root,c),ownerState:ne,...Ut(Ct),children:Tt({id:_t,disabled:C,fullWidth:!0,size:bt==="small"?"small":void 0,InputLabelProps:Gt(),InputProps:{ref:ge,className:de.inputRoot,startAdornment:Yt,onMouseDown:Kt=>{Kt.target===Kt.currentTarget&&Zt(Kt)},...(Dt||Ft)&&{endAdornment:f.jsxs(of,{className:de.endAdornment,ownerState:ne,children:[Dt?f.jsx(rf,{...Bt(),"aria-label":g,title:g,ownerState:ne,...Mr,className:j(de.clearIndicator,Mr==null?void 0:Mr.className),children:p}):null,Ft?f.jsx(nf,{...xt(),disabled:C,"aria-label":ce?b:Mt,title:ce?b:Mt,ownerState:ne,...Lr,className:j(de.popupIndicator,Lr==null?void 0:Lr.className),children:St}):null]})}},inputProps:{className:de.input,disabled:C,readOnly:gt,...Et()}})}),Lt?f.jsx(sf,{as:Ot,...Ht,children:f.jsxs(af,{as:H,...Rt,children:[et&&Pt.length===0?f.jsx(lf,{className:de.loading,ownerState:ne,children:rt}):null,Pt.length===0&&!T&&!et?f.jsx(cf,{className:de.noOptions,ownerState:ne,role:"presentation",onMouseDown:Kt=>{Kt.preventDefault()},children:at}):null,Pt.length>0?f.jsx(Tr,{as:vt,...X,children:Pt.map((Kt,Xe)=>F?Ae({key:Kt.key,group:Kt.group,children:Kt.options.map((po,Zo)=>Es(po,Kt.index+Zo))}):Es(Kt,Xe))}):null]})}):null]})}),ff=Qt(f.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");function gf(t){return V("MuiAvatar",t)}const mf=K("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]),bf=t=>{const{classes:e,variant:o,colorDefault:r}=t;return G({root:["root",o,r&&"colorDefault"],img:["img"],fallback:["fallback"]},gf,e)},vf=k("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],o.colorDefault&&e.colorDefault]}})(W(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:{color:(t.vars||t).palette.background.default,...t.vars?{backgroundColor:t.vars.palette.Avatar.defaultBg}:{backgroundColor:t.palette.grey[400],...t.applyStyles("dark",{backgroundColor:t.palette.grey[600]})}}}]}))),hf=k("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(t,e)=>e.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),yf=k(ff,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(t,e)=>e.fallback})({width:"75%",height:"75%"});function xf({crossOrigin:t,referrerPolicy:e,src:o,srcSet:r}){const[n,s]=d.useState(!1);return d.useEffect(()=>{if(!o&&!r)return;s(!1);let a=!0;const i=new Image;return i.onload=()=>{a&&s("loaded")},i.onerror=()=>{a&&s("error")},i.crossOrigin=t,i.referrerPolicy=e,i.src=o,r&&(i.srcset=r),()=>{a=!1}},[t,e,o,r]),n}const Cf=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAvatar"}),{alt:n,children:s,className:a,component:i="div",slots:l={},slotProps:c={},imgProps:p,sizes:u,src:m,srcSet:g,variant:b="circular",...v}=r;let h=null;const y={...r,component:i,variant:b},S=xf({...p,...typeof c.img=="function"?c.img(y):c.img,src:m,srcSet:g}),C=m||g,x=C&&S!=="error";y.colorDefault=!x,delete y.ownerState;const w=bf(y),[P,$]=Q("img",{className:w.img,elementType:hf,externalForwardedProps:{slots:l,slotProps:{img:{...p,...c.img}}},additionalProps:{alt:n,src:m,srcSet:g,sizes:u},ownerState:y});return x?h=f.jsx(P,{...$}):s||s===0?h=s:C&&n?h=n[0]:h=f.jsx(yf,{ownerState:y,className:w.fallback}),f.jsx(vf,{as:i,className:j(w.root,a),ref:o,...v,ownerState:y,children:h})});function Sf(t){return V("MuiAvatarGroup",t)}const wf=K("MuiAvatarGroup",["root","avatar"]),$n={small:-16,medium:-8},Rf=t=>{const{classes:e}=t;return G({root:["root"],avatar:["avatar"]},Sf,e)},Pf=k("div",{name:"MuiAvatarGroup",slot:"Root",overridesResolver:(t,e)=>[{[`& .${wf.avatar}`]:e.avatar},e.root]})(W(({theme:t})=>({display:"flex",flexDirection:"row-reverse",[`& .${mf.root}`]:{border:`2px solid ${(t.vars||t).palette.background.default}`,boxSizing:"content-box",marginLeft:"var(--AvatarGroup-spacing, -8px)","&:last-child":{marginLeft:0}}}))),qS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiAvatarGroup"}),{children:n,className:s,component:a="div",componentsProps:i,max:l=5,renderSurplus:c,slotProps:p={},slots:u={},spacing:m="medium",total:g,variant:b="circular",...v}=r;let h=l<2?2:l;const y={...r,max:l,spacing:m,component:a,variant:b},S=Rf(y),C=d.Children.toArray(n).filter(E=>d.isValidElement(E)),x=g||C.length;x===h&&(h+=1),h=Math.min(x+1,h);const w=Math.min(C.length,h-1),P=Math.max(x-h,x-w,0),$=c?c(P):`+${P}`;let I;y.spacing&&$n[y.spacing]!==void 0?I=$n[y.spacing]:y.spacing===0?I=0:I=-y.spacing||$n.medium;const A={slots:u,slotProps:{surplus:p.additionalAvatar??(i==null?void 0:i.additionalAvatar),...i,...p}},[T,z]=Q("surplus",{elementType:Cf,externalForwardedProps:A,className:S.avatar,ownerState:y,additionalProps:{variant:b}});return f.jsxs(Pf,{as:a,ownerState:y,className:j(S.root,s),ref:o,...v,style:{"--AvatarGroup-spacing":`${I}px`,...v.style},children:[P?f.jsx(T,{...z,children:$}):null,C.slice(0,w).reverse().map(E=>d.cloneElement(E,{className:j(E.props.className,S.avatar),variant:E.props.variant||b}))]})}),$f={entering:{opacity:1},entered:{opacity:1}},ts=d.forwardRef(function(e,o){const r=le(),n={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:i,easing:l,in:c,onEnter:p,onEntered:u,onEntering:m,onExit:g,onExited:b,onExiting:v,style:h,timeout:y=n,TransitionComponent:S=Le,...C}=e,x=d.useRef(null),w=qt(x,io(i),o),P=M=>O=>{if(M){const L=x.current;O===void 0?M(L):M(L,O)}},$=P(m),I=P((M,O)=>{mn(M);const L=Ge({style:h,timeout:y,easing:l},{mode:"enter"});M.style.webkitTransition=r.transitions.create("opacity",L),M.style.transition=r.transitions.create("opacity",L),p&&p(M,O)}),A=P(u),T=P(v),z=P(M=>{const O=Ge({style:h,timeout:y,easing:l},{mode:"exit"});M.style.webkitTransition=r.transitions.create("opacity",O),M.style.transition=r.transitions.create("opacity",O),g&&g(M)}),E=P(b),R=M=>{s&&s(x.current,M)};return f.jsx(S,{appear:a,in:c,nodeRef:x,onEnter:I,onEntered:A,onEntering:$,onExit:z,onExited:E,onExiting:T,addEndListener:R,timeout:y,...C,children:(M,{ownerState:O,...L})=>d.cloneElement(i,{style:{opacity:0,visibility:M==="exited"&&!c?"hidden":void 0,...$f[M],...h,...i.props.style},ref:w,...L})})});function kf(t){return V("MuiBackdrop",t)}const XS=K("MuiBackdrop",["root","invisible"]),If=t=>{const{classes:e,invisible:o}=t;return G({root:["root",o&&"invisible"]},kf,e)},Tf=k("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.invisible&&e.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),Ei=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBackdrop"}),{children:n,className:s,component:a="div",invisible:i=!1,open:l,components:c={},componentsProps:p={},slotProps:u={},slots:m={},TransitionComponent:g,transitionDuration:b,...v}=r,h={...r,component:a,invisible:i},y=If(h),S={transition:g,root:c.Root,...m},C={...p,...u},x={slots:S,slotProps:C},[w,P]=Q("root",{elementType:Tf,externalForwardedProps:x,className:j(y.root,s),ownerState:h}),[$,I]=Q("transition",{elementType:ts,externalForwardedProps:x,ownerState:h});return f.jsx($,{in:l,timeout:b,...v,...I,children:f.jsx(w,{"aria-hidden":!0,...P,classes:y,ref:o,children:n})})});function Mf(t){const{badgeContent:e,invisible:o=!1,max:r=99,showZero:n=!1}=t,s=gs({badgeContent:e,max:r});let a=o;o===!1&&e===0&&!n&&(a=!0);const{badgeContent:i,max:l=r}=a?s:t,c=i&&Number(i)>l?`${l}+`:i;return{badgeContent:i,invisible:a,max:l,displayValue:c}}function Lf(t){return V("MuiBadge",t)}const fo=K("MuiBadge",["root","badge","dot","standard","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","invisible","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"]),kn=10,In=4,Af=t=>{const{color:e,anchorOrigin:o,invisible:r,overlap:n,variant:s,classes:a={}}=t,i={root:["root"],badge:["badge",s,r&&"invisible",`anchorOrigin${B(o.vertical)}${B(o.horizontal)}`,`anchorOrigin${B(o.vertical)}${B(o.horizontal)}${B(n)}`,`overlap${B(n)}`,e!=="default"&&`color${B(e)}`]};return G(i,Lf,a)},Bf=k("span",{name:"MuiBadge",slot:"Root",overridesResolver:(t,e)=>e.root})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),Ef=k("span",{name:"MuiBadge",slot:"Badge",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.badge,e[o.variant],e[`anchorOrigin${B(o.anchorOrigin.vertical)}${B(o.anchorOrigin.horizontal)}${B(o.overlap)}`],o.color!=="default"&&e[`color${B(o.color)}`],o.invisible&&e.invisible]}})(W(({theme:t})=>({display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(12),minWidth:kn*2,lineHeight:1,padding:"0 6px",height:kn*2,borderRadius:kn,zIndex:1,transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.enteringScreen}),variants:[...Object.entries(t.palette).filter(jt(["contrastText"])).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main,color:(t.vars||t).palette[e].contrastText}})),{props:{variant:"dot"},style:{borderRadius:In,height:In*2,minWidth:In*2,padding:0}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${fo.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:{invisible:!0},style:{transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.leavingScreen})}}]})));function ma(t){return{vertical:(t==null?void 0:t.vertical)??"top",horizontal:(t==null?void 0:t.horizontal)??"right"}}const _S=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBadge"}),{anchorOrigin:n,className:s,classes:a,component:i,components:l={},componentsProps:c={},children:p,overlap:u="rectangular",color:m="default",invisible:g=!1,max:b=99,badgeContent:v,slots:h,slotProps:y,showZero:S=!1,variant:C="standard",...x}=r,{badgeContent:w,invisible:P,max:$,displayValue:I}=Mf({max:b,invisible:g,badgeContent:v,showZero:S}),A=gs({anchorOrigin:ma(n),color:m,overlap:u,variant:C,badgeContent:v}),T=P||w==null&&C!=="dot",{color:z=m,overlap:E=u,anchorOrigin:R,variant:M=C}=T?A:r,O=ma(R),L=M!=="dot"?I:void 0,F={...r,badgeContent:w,invisible:T,max:$,displayValue:L,showZero:S,anchorOrigin:O,color:z,overlap:E,variant:M},D=Af(F),N={slots:{root:(h==null?void 0:h.root)??l.Root,badge:(h==null?void 0:h.badge)??l.Badge},slotProps:{root:(y==null?void 0:y.root)??c.root,badge:(y==null?void 0:y.badge)??c.badge}},[J,U]=Q("root",{elementType:Bf,externalForwardedProps:{...N,...x},ownerState:F,className:j(D.root,s),ref:o,additionalProps:{as:i}}),[wt,vt]=Q("badge",{elementType:Ef,externalForwardedProps:N,ownerState:F,className:D.badge});return f.jsxs(J,{...U,children:[p,f.jsx(wt,{...vt,children:L})]})});function Of(t){return V("MuiBottomNavigation",t)}const YS=K("MuiBottomNavigation",["root"]),Nf=t=>{const{classes:e}=t;return G({root:["root"]},Of,e)},zf=k("div",{name:"MuiBottomNavigation",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({display:"flex",justifyContent:"center",height:56,backgroundColor:(t.vars||t).palette.background.paper}))),ZS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBottomNavigation"}),{children:n,className:s,component:a="div",onChange:i,showLabels:l=!1,value:c,...p}=r,u={...r,component:a,showLabels:l},m=Nf(u);return f.jsx(zf,{as:a,className:j(m.root,s),ref:o,ownerState:u,...p,children:d.Children.map(n,(g,b)=>{if(!d.isValidElement(g))return null;const v=g.props.value===void 0?b:g.props.value;return d.cloneElement(g,{selected:v===c,showLabel:g.props.showLabel!==void 0?g.props.showLabel:l,value:v,onChange:i})})})});function jf(t){return V("MuiBottomNavigationAction",t)}const Oi=K("MuiBottomNavigationAction",["root","iconOnly","selected","label"]),Df=t=>{const{classes:e,showLabel:o,selected:r}=t;return G({root:["root",!o&&!r&&"iconOnly",r&&"selected"],label:["label",!o&&!r&&"iconOnly",r&&"selected"]},jf,e)},Ff=k(ue,{name:"MuiBottomNavigationAction",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.showLabel&&!o.selected&&e.iconOnly]}})(W(({theme:t})=>({transition:t.transitions.create(["color","padding-top"],{duration:t.transitions.duration.short}),padding:"0px 12px",minWidth:80,maxWidth:168,color:(t.vars||t).palette.text.secondary,flexDirection:"column",flex:"1",[`&.${Oi.selected}`]:{color:(t.vars||t).palette.primary.main},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{paddingTop:14}},{props:({showLabel:e,selected:o,label:r})=>!e&&!o&&!r,style:{paddingTop:0}}]}))),Wf=k("span",{name:"MuiBottomNavigationAction",slot:"Label",overridesResolver:(t,e)=>e.label})(W(({theme:t})=>({fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(12),opacity:1,transition:"font-size 0.2s, opacity 0.2s",transitionDelay:"0.1s",[`&.${Oi.selected}`]:{fontSize:t.typography.pxToRem(14)},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{opacity:0,transitionDelay:"0s"}}]}))),QS=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiBottomNavigationAction"}),{className:n,icon:s,label:a,onChange:i,onClick:l,selected:c,showLabel:p,value:u,slots:m={},slotProps:g={},...b}=r,v=r,h=Df(v),y=$=>{i&&i($,u),l&&l($)},S={slots:m,slotProps:g},[C,x]=Q("root",{elementType:Ff,externalForwardedProps:{...S,...b},shouldForwardComponentProp:!0,ownerState:v,ref:o,className:j(h.root,n),additionalProps:{focusRipple:!0},getSlotProps:$=>({...$,onClick:I=>{var A;(A=$.onClick)==null||A.call($,I),y(I)}})}),[w,P]=Q("label",{elementType:Wf,externalForwardedProps:S,ownerState:v,className:h.label});return f.jsxs(C,{...x,children:[s,f.jsx(w,{...P,children:a})]})}),Uf=K("MuiBox",["root"]),Hf=si(),JS=Vl({themeId:pn,defaultTheme:Hf,defaultClassName:Uf.root,generateClassName:ii.generate}),Vf=Qt(f.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz"),Gf=k(ue)(W(({theme:t})=>({display:"flex",marginLeft:`calc(${t.spacing(1)} * 0.5)`,marginRight:`calc(${t.spacing(1)} * 0.5)`,...t.palette.mode==="light"?{backgroundColor:t.palette.grey[100],color:t.palette.grey[700]}:{backgroundColor:t.palette.grey[700],color:t.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...t.palette.mode==="light"?{backgroundColor:t.palette.grey[200]}:{backgroundColor:t.palette.grey[600]}},"&:active":{boxShadow:t.shadows[0],...t.palette.mode==="light"?{backgroundColor:tn(t.palette.grey[200],.12)}:{backgroundColor:tn(t.palette.grey[600],.12)}}}))),Kf=k(Vf)({width:24,height:16});function qf(t){const{slots:e={},slotProps:o={},...r}=t,n=t;return f.jsx("li",{children:f.jsx(Gf,{focusRipple:!0,...r,ownerState:n,children:f.jsx(Kf,{as:e.CollapsedIcon,ownerState:n,...o.collapsedIcon})})})}function Xf(t){return V("MuiBreadcrumbs",t)}const _f=K("MuiBreadcrumbs",["root","ol","li","separator"]),Yf=t=>{const{classes:e}=t;return G({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},Xf,e)},Zf=k(he,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(t,e)=>[{[`& .${_f.li}`]:e.li},e.root]})({}),Qf=k("ol",{name:"MuiBreadcrumbs",slot:"Ol",overridesResolver:(t,e)=>e.ol})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),Jf=k("li",{name:"MuiBreadcrumbs",slot:"Separator",overridesResolver:(t,e)=>e.separator})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function tg(t,e,o,r){return t.reduce((n,s,a)=>(a{const I=()=>{h(!0);const A=x.current.querySelector("a[href],button,[tabindex]");A&&A.focus()};return u+p>=$.length?$:[...$.slice(0,u),f.jsx(qf,{"aria-label":c,slots:{CollapsedIcon:i.CollapsedIcon},slotProps:{collapsedIcon:C},onClick:I},"ellipsis"),...$.slice($.length-p,$.length)]},P=d.Children.toArray(n).filter($=>d.isValidElement($)).map(($,I)=>f.jsx("li",{className:S.li,children:$},`child-${I}`));return f.jsx(Zf,{ref:o,component:a,color:"textSecondary",className:j(S.root,s),ownerState:y,...b,children:f.jsx(Qf,{className:S.ol,ref:x,ownerState:y,children:tg(v||m&&P.length<=m?P:w(P),S.separator,g,y)})})});function eg(t){return V("MuiButton",t)}const xo=K("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge","loading","loadingWrapper","loadingIconPlaceholder","loadingIndicator","loadingPositionCenter","loadingPositionStart","loadingPositionEnd"]),Ni=d.createContext({}),zi=d.createContext(void 0),og=t=>{const{color:e,disableElevation:o,fullWidth:r,size:n,variant:s,loading:a,loadingPosition:i,classes:l}=t,c={root:["root",a&&"loading",s,`${s}${B(e)}`,`size${B(n)}`,`${s}Size${B(n)}`,`color${B(e)}`,o&&"disableElevation",r&&"fullWidth",a&&`loadingPosition${B(i)}`],startIcon:["icon","startIcon",`iconSize${B(n)}`],endIcon:["icon","endIcon",`iconSize${B(n)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]},p=G(c,eg,l);return{...l,...p}},ji=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],rg=k(ue,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`${o.variant}${B(o.color)}`],e[`size${B(o.size)}`],e[`${o.variant}Size${B(o.size)}`],o.color==="inherit"&&e.colorInherit,o.disableElevation&&e.disableElevation,o.fullWidth&&e.fullWidth,o.loading&&e.loading]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[300]:t.palette.grey[800],o=t.palette.mode==="light"?t.palette.grey.A100:t.palette.grey[700];return{...t.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(t.vars||t).shape.borderRadius,transition:t.transitions.create(["background-color","box-shadow","border-color","color"],{duration:t.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${xo.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(t.vars||t).shadows[2],"&:hover":{boxShadow:(t.vars||t).shadows[4],"@media (hover: none)":{boxShadow:(t.vars||t).shadows[2]}},"&:active":{boxShadow:(t.vars||t).shadows[8]},[`&.${xo.focusVisible}`]:{boxShadow:(t.vars||t).shadows[6]},[`&.${xo.disabled}`]:{color:(t.vars||t).palette.action.disabled,boxShadow:(t.vars||t).shadows[0],backgroundColor:(t.vars||t).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${xo.disabled}`]:{border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(t.palette).filter(jt()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(t.vars||t).palette[r].main,"--variant-outlinedColor":(t.vars||t).palette[r].main,"--variant-outlinedBorder":t.vars?`rgba(${t.vars.palette[r].mainChannel} / 0.5)`:kt(t.palette[r].main,.5),"--variant-containedColor":(t.vars||t).palette[r].contrastText,"--variant-containedBg":(t.vars||t).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(t.vars||t).palette[r].dark,"--variant-textBg":t.vars?`rgba(${t.vars.palette[r].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[r].main,t.palette.action.hoverOpacity),"--variant-outlinedBorder":(t.vars||t).palette[r].main,"--variant-outlinedBg":t.vars?`rgba(${t.vars.palette[r].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[r].main,t.palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":t.vars?t.vars.palette.Button.inheritContainedBg:e,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":t.vars?t.vars.palette.Button.inheritContainedHoverBg:o,"--variant-textBg":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.text.primary,t.palette.action.hoverOpacity),"--variant-outlinedBg":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.text.primary,t.palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:t.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:t.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:t.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:t.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:t.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:t.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${xo.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${xo.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{loadingPosition:"center"},style:{transition:t.transitions.create(["background-color","box-shadow","border-color"],{duration:t.transitions.duration.short}),[`&.${xo.loading}`]:{color:"transparent"}}}]}})),ng=k("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.startIcon,o.loading&&e.startIconLoadingStart,e[`iconSize${B(o.size)}`]]}})(({theme:t})=>({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},{props:{loadingPosition:"start",loading:!0},style:{transition:t.transitions.create(["opacity"],{duration:t.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"start",loading:!0,fullWidth:!0},style:{marginRight:-8}},...ji]})),sg=k("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.endIcon,o.loading&&e.endIconLoadingEnd,e[`iconSize${B(o.size)}`]]}})(({theme:t})=>({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},{props:{loadingPosition:"end",loading:!0},style:{transition:t.transitions.create(["opacity"],{duration:t.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"end",loading:!0,fullWidth:!0},style:{marginLeft:-8}},...ji]})),ag=k("span",{name:"MuiButton",slot:"LoadingIndicator",overridesResolver:(t,e)=>e.loadingIndicator})(({theme:t})=>({display:"none",position:"absolute",visibility:"visible",variants:[{props:{loading:!0},style:{display:"flex"}},{props:{loadingPosition:"start"},style:{left:14}},{props:{loadingPosition:"start",size:"small"},style:{left:10}},{props:{variant:"text",loadingPosition:"start"},style:{left:6}},{props:{loadingPosition:"center"},style:{left:"50%",transform:"translate(-50%)",color:(t.vars||t).palette.action.disabled}},{props:{loadingPosition:"end"},style:{right:14}},{props:{loadingPosition:"end",size:"small"},style:{right:10}},{props:{variant:"text",loadingPosition:"end"},style:{right:6}},{props:{loadingPosition:"start",fullWidth:!0},style:{position:"relative",left:-10}},{props:{loadingPosition:"end",fullWidth:!0},style:{position:"relative",right:-10}}]})),ba=k("span",{name:"MuiButton",slot:"LoadingIconPlaceholder",overridesResolver:(t,e)=>e.loadingIconPlaceholder})({display:"inline-block",width:"1em",height:"1em"}),ew=d.forwardRef(function(e,o){const r=d.useContext(Ni),n=d.useContext(zi),s=ps(r,e),a=_({props:s,name:"MuiButton"}),{children:i,color:l="primary",component:c="button",className:p,disabled:u=!1,disableElevation:m=!1,disableFocusRipple:g=!1,endIcon:b,focusVisibleClassName:v,fullWidth:h=!1,id:y,loading:S=null,loadingIndicator:C,loadingPosition:x="center",size:w="medium",startIcon:P,type:$,variant:I="text",...A}=a,T=De(y),z=C??f.jsx(Si,{"aria-labelledby":T,color:"inherit",size:16}),E={...a,color:l,component:c,disabled:u,disableElevation:m,disableFocusRipple:g,fullWidth:h,loading:S,loadingIndicator:z,loadingPosition:x,size:w,type:$,variant:I},R=og(E),M=(P||S&&x==="start")&&f.jsx(ng,{className:R.startIcon,ownerState:E,children:P||f.jsx(ba,{className:R.loadingIconPlaceholder,ownerState:E})}),O=(b||S&&x==="end")&&f.jsx(sg,{className:R.endIcon,ownerState:E,children:b||f.jsx(ba,{className:R.loadingIconPlaceholder,ownerState:E})}),L=n||"",F=typeof S=="boolean"?f.jsx("span",{className:R.loadingWrapper,style:{display:"contents"},children:S&&f.jsx(ag,{className:R.loadingIndicator,ownerState:E,children:z})}):null;return f.jsxs(rg,{ownerState:E,className:j(r.className,R.root,p,L),component:c,disabled:u||S,focusRipple:!g,focusVisibleClassName:j(R.focusVisible,v),ref:o,type:$,id:S?T:y,...A,classes:R,children:[M,x!=="end"&&F,i,x==="end"&&F,O]})});function ig(t){return V("MuiButtonGroup",t)}const Nt=K("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","horizontal","vertical","colorPrimary","colorSecondary","grouped","groupedHorizontal","groupedVertical","groupedText","groupedTextHorizontal","groupedTextVertical","groupedTextPrimary","groupedTextSecondary","groupedOutlined","groupedOutlinedHorizontal","groupedOutlinedVertical","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedContained","groupedContainedHorizontal","groupedContainedVertical","groupedContainedPrimary","groupedContainedSecondary","lastButton","middleButton"]),lg=(t,e)=>{const{ownerState:o}=t;return[{[`& .${Nt.grouped}`]:e.grouped},{[`& .${Nt.grouped}`]:e[`grouped${B(o.orientation)}`]},{[`& .${Nt.grouped}`]:e[`grouped${B(o.variant)}`]},{[`& .${Nt.grouped}`]:e[`grouped${B(o.variant)}${B(o.orientation)}`]},{[`& .${Nt.grouped}`]:e[`grouped${B(o.variant)}${B(o.color)}`]},{[`& .${Nt.firstButton}`]:e.firstButton},{[`& .${Nt.lastButton}`]:e.lastButton},{[`& .${Nt.middleButton}`]:e.middleButton},e.root,e[o.variant],o.disableElevation===!0&&e.disableElevation,o.fullWidth&&e.fullWidth,o.orientation==="vertical"&&e.vertical]},cg=t=>{const{classes:e,color:o,disabled:r,disableElevation:n,fullWidth:s,orientation:a,variant:i}=t,l={root:["root",i,a,s&&"fullWidth",n&&"disableElevation",`color${B(o)}`],grouped:["grouped",`grouped${B(a)}`,`grouped${B(i)}`,`grouped${B(i)}${B(a)}`,`grouped${B(i)}${B(o)}`,r&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return G(l,ig,e)},pg=k("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:lg})(W(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{variant:"contained"},style:{boxShadow:(t.vars||t).shadows[2]}},{props:{disableElevation:!0},style:{boxShadow:"none"}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{borderTopRightRadius:0,borderTopLeftRadius:0},[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottomRightRadius:0,borderBottomLeftRadius:0}}},{props:{orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{borderTopLeftRadius:0,borderBottomLeftRadius:0}}},{props:{variant:"text",orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderRight:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${Nt.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"text",orientation:"vertical"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottom:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${Nt.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(jt()).flatMap(([e])=>[{props:{variant:"text",color:e},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:kt(t.palette[e].main,.5)}}}]),{props:{variant:"outlined",orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderRightColor:"transparent","&:hover":{borderRightColor:"currentColor"}},[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{marginLeft:-1}}},{props:{variant:"outlined",orientation:"vertical"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottomColor:"transparent","&:hover":{borderBottomColor:"currentColor"}},[`& .${Nt.lastButton},& .${Nt.middleButton}`]:{marginTop:-1}}},{props:{variant:"contained",orientation:"horizontal"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderRight:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${Nt.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"contained",orientation:"vertical"},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderBottom:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${Nt.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(jt(["dark"])).map(([e])=>({props:{variant:"contained",color:e},style:{[`& .${Nt.firstButton},& .${Nt.middleButton}`]:{borderColor:(t.vars||t).palette[e].dark}}}))],[`& .${Nt.grouped}`]:{minWidth:40,boxShadow:"none",props:{variant:"contained"},style:{"&:hover":{boxShadow:"none"}}}}))),ow=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiButtonGroup"}),{children:n,className:s,color:a="primary",component:i="div",disabled:l=!1,disableElevation:c=!1,disableFocusRipple:p=!1,disableRipple:u=!1,fullWidth:m=!1,orientation:g="horizontal",size:b="medium",variant:v="outlined",...h}=r,y={...r,color:a,component:i,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:u,fullWidth:m,orientation:g,size:b,variant:v},S=cg(y),C=d.useMemo(()=>({className:S.grouped,color:a,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:u,fullWidth:m,size:b,variant:v}),[a,l,c,p,u,m,b,v,S.grouped]),x=mi(n),w=x.length,P=$=>{const I=$===0,A=$===w-1;return I&&A?"":I?S.firstButton:A?S.lastButton:S.middleButton};return f.jsx(pg,{as:i,role:"group",className:j(S.root,s),ref:o,ownerState:y,...h,children:f.jsx(Ni.Provider,{value:C,children:x.map(($,I)=>f.jsx(zi.Provider,{value:P(I),children:$},I))})})});function dg(t){return V("MuiCard",t)}const rw=K("MuiCard",["root"]),ug=t=>{const{classes:e}=t;return G({root:["root"]},dg,e)},fg=k(Ue,{name:"MuiCard",slot:"Root",overridesResolver:(t,e)=>e.root})({overflow:"hidden"}),nw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCard"}),{className:n,raised:s=!1,...a}=r,i={...r,raised:s},l=ug(i);return f.jsx(fg,{className:j(l.root,n),elevation:s?8:void 0,ref:o,ownerState:i,...a})});function gg(t){return V("MuiCardActionArea",t)}const Tn=K("MuiCardActionArea",["root","focusVisible","focusHighlight"]),mg=t=>{const{classes:e}=t;return G({root:["root"],focusHighlight:["focusHighlight"]},gg,e)},bg=k(ue,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${Tn.focusHighlight}`]:{opacity:(t.vars||t).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${Tn.focusVisible} .${Tn.focusHighlight}`]:{opacity:(t.vars||t).palette.action.focusOpacity}}))),vg=k("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(t,e)=>e.focusHighlight})(W(({theme:t})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:t.transitions.create("opacity",{duration:t.transitions.duration.short})}))),sw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardActionArea"}),{children:n,className:s,focusVisibleClassName:a,slots:i={},slotProps:l={},...c}=r,p=r,u=mg(p),m={slots:i,slotProps:l},[g,b]=Q("root",{elementType:bg,externalForwardedProps:{...m,...c},shouldForwardComponentProp:!0,ownerState:p,ref:o,className:j(u.root,s),additionalProps:{focusVisibleClassName:j(a,u.focusVisible)}}),[v,h]=Q("focusHighlight",{elementType:vg,externalForwardedProps:m,ownerState:p,ref:o,className:u.focusHighlight});return f.jsxs(g,{...b,children:[n,f.jsx(v,{...h})]})});function hg(t){return V("MuiCardActions",t)}const aw=K("MuiCardActions",["root","spacing"]),yg=t=>{const{classes:e,disableSpacing:o}=t;return G({root:["root",!o&&"spacing"]},hg,e)},xg=k("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),iw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardActions"}),{disableSpacing:n=!1,className:s,...a}=r,i={...r,disableSpacing:n},l=yg(i);return f.jsx(xg,{className:j(l.root,s),ownerState:i,ref:o,...a})});function Cg(t){return V("MuiCardContent",t)}const lw=K("MuiCardContent",["root"]),Sg=t=>{const{classes:e}=t;return G({root:["root"]},Cg,e)},wg=k("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:16,"&:last-child":{paddingBottom:24}}),cw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardContent"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=Sg(i);return f.jsx(wg,{as:s,className:j(l.root,n),ownerState:i,ref:o,...a})});function Rg(t){return V("MuiCardHeader",t)}const ln=K("MuiCardHeader",["root","avatar","action","content","title","subheader"]),Pg=t=>{const{classes:e}=t;return G({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},Rg,e)},$g=k("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(t,e)=>[{[`& .${ln.title}`]:e.title},{[`& .${ln.subheader}`]:e.subheader},e.root]})({display:"flex",alignItems:"center",padding:16}),kg=k("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(t,e)=>e.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),Ig=k("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(t,e)=>e.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),Tg=k("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(t,e)=>e.content})({flex:"1 1 auto",[`.${nn.root}:where(& .${ln.title})`]:{display:"block"},[`.${nn.root}:where(& .${ln.subheader})`]:{display:"block"}}),pw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardHeader"}),{action:n,avatar:s,component:a="div",disableTypography:i=!1,subheader:l,subheaderTypographyProps:c,title:p,titleTypographyProps:u,slots:m={},slotProps:g={},...b}=r,v={...r,component:a,disableTypography:i},h=Pg(v),y={slots:m,slotProps:{title:u,subheader:c,...g}};let S=p;const[C,x]=Q("title",{className:h.title,elementType:he,externalForwardedProps:y,ownerState:v,additionalProps:{variant:s?"body2":"h5",component:"span"}});S!=null&&S.type!==he&&!i&&(S=f.jsx(C,{...x,children:S}));let w=l;const[P,$]=Q("subheader",{className:h.subheader,elementType:he,externalForwardedProps:y,ownerState:v,additionalProps:{variant:s?"body2":"body1",color:"textSecondary",component:"span"}});w!=null&&w.type!==he&&!i&&(w=f.jsx(P,{...$,children:w}));const[I,A]=Q("root",{ref:o,className:h.root,elementType:$g,externalForwardedProps:{...y,...b,component:a},ownerState:v}),[T,z]=Q("avatar",{className:h.avatar,elementType:kg,externalForwardedProps:y,ownerState:v}),[E,R]=Q("content",{className:h.content,elementType:Tg,externalForwardedProps:y,ownerState:v}),[M,O]=Q("action",{className:h.action,elementType:Ig,externalForwardedProps:y,ownerState:v});return f.jsxs(I,{...A,children:[s&&f.jsx(T,{...z,children:s}),f.jsxs(E,{...R,children:[S,w]}),n&&f.jsx(M,{...O,children:n})]})});function Mg(t){return V("MuiCardMedia",t)}const dw=K("MuiCardMedia",["root","media","img"]),Lg=t=>{const{classes:e,isMediaComponent:o,isImageComponent:r}=t;return G({root:["root",o&&"media",r&&"img"]},Mg,e)},Ag=k("div",{name:"MuiCardMedia",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{isMediaComponent:r,isImageComponent:n}=o;return[e.root,r&&e.media,n&&e.img]}})({display:"block",backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center",variants:[{props:{isMediaComponent:!0},style:{width:"100%"}},{props:{isImageComponent:!0},style:{objectFit:"cover"}}]}),Bg=["video","audio","picture","iframe","img"],Eg=["picture","img"],uw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCardMedia"}),{children:n,className:s,component:a="div",image:i,src:l,style:c,...p}=r,u=Bg.includes(a),m=!u&&i?{backgroundImage:`url("${i}")`,...c}:c,g={...r,component:a,isMediaComponent:u,isImageComponent:Eg.includes(a)},b=Lg(g);return f.jsx(Ag,{className:j(b.root,s),as:a,role:!u&&i?"img":void 0,ref:o,style:m,ownerState:g,src:u?i||l:void 0,...p,children:n})});function Og(t){return V("PrivateSwitchBase",t)}K("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const Ng=t=>{const{classes:e,checked:o,disabled:r,edge:n}=t,s={root:["root",o&&"checked",r&&"disabled",n&&`edge${B(n)}`],input:["input"]};return G(s,Og,e)},zg=k(ue)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:t,ownerState:e})=>t==="start"&&e.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:t,ownerState:e})=>t==="end"&&e.size!=="small",style:{marginRight:-12}}]}),jg=k("input",{shouldForwardProp:ae})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),$s=d.forwardRef(function(e,o){const{autoFocus:r,checked:n,checkedIcon:s,defaultChecked:a,disabled:i,disableFocusRipple:l=!1,edge:c=!1,icon:p,id:u,inputProps:m,inputRef:g,name:b,onBlur:v,onChange:h,onFocus:y,readOnly:S,required:C=!1,tabIndex:x,type:w,value:P,slots:$={},slotProps:I={},...A}=e,[T,z]=Te({controlled:n,default:!!a,name:"SwitchBase",state:"checked"}),E=He(),R=et=>{y&&y(et),E&&E.onFocus&&E.onFocus(et)},M=et=>{v&&v(et),E&&E.onBlur&&E.onBlur(et)},O=et=>{if(et.nativeEvent.defaultPrevented)return;const rt=et.target.checked;z(rt),h&&h(et,rt)};let L=i;E&&typeof L>"u"&&(L=E.disabled);const F=w==="checkbox"||w==="radio",D={...e,checked:T,disabled:L,disableFocusRipple:l,edge:c},N=Ng(D),J={slots:$,slotProps:{input:m,...I}},[U,wt]=Q("root",{ref:o,elementType:zg,className:N.root,shouldForwardComponentProp:!0,externalForwardedProps:{...J,component:"span",...A},getSlotProps:et=>({...et,onFocus:rt=>{var Y;(Y=et.onFocus)==null||Y.call(et,rt),R(rt)},onBlur:rt=>{var Y;(Y=et.onBlur)==null||Y.call(et,rt),M(rt)}}),ownerState:D,additionalProps:{centerRipple:!0,focusRipple:!l,disabled:L,role:void 0,tabIndex:null}}),[vt,mt]=Q("input",{ref:g,elementType:jg,className:N.input,externalForwardedProps:J,getSlotProps:et=>({onChange:rt=>{var Y;(Y=et.onChange)==null||Y.call(et,rt),O(rt)}}),ownerState:D,additionalProps:{autoFocus:r,checked:n,defaultChecked:a,disabled:L,id:F?u:void 0,name:b,readOnly:S,required:C,tabIndex:x,type:w,...w==="checkbox"&&P===void 0?{}:{value:P}}});return f.jsxs(U,{...wt,children:[f.jsx(vt,{...mt}),T?s:p]})}),Dg=Qt(f.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),Fg=Qt(f.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),Wg=Qt(f.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function Ug(t){return V("MuiCheckbox",t)}const Mn=K("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),Hg=t=>{const{classes:e,indeterminate:o,color:r,size:n}=t,s={root:["root",o&&"indeterminate",`color${B(r)}`,`size${B(n)}`]},a=G(s,Ug,e);return{...e,...a}},Vg=k($s,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.indeterminate&&e.indeterminate,e[`size${B(o.size)}`],o.color!=="default"&&e[`color${B(o.color)}`]]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&.${Mn.checked}, &.${Mn.indeterminate}`]:{color:(t.vars||t).palette[e].main},[`&.${Mn.disabled}`]:{color:(t.vars||t).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),Gg=f.jsx(Fg,{}),Kg=f.jsx(Dg,{}),qg=f.jsx(Wg,{}),fw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiCheckbox"}),{checkedIcon:n=Gg,color:s="primary",icon:a=Kg,indeterminate:i=!1,indeterminateIcon:l=qg,inputProps:c,size:p="medium",disableRipple:u=!1,className:m,slots:g={},slotProps:b={},...v}=r,h=i?l:a,y=i?l:n,S={...r,disableRipple:u,color:s,indeterminate:i,size:p},C=Hg(S),x=b.input??c,[w,P]=Q("root",{ref:o,elementType:Vg,className:j(C.root,m),shouldForwardComponentProp:!0,externalForwardedProps:{slots:g,slotProps:b,...v},ownerState:S,additionalProps:{type:"checkbox",icon:d.cloneElement(h,{fontSize:h.props.fontSize??p}),checkedIcon:d.cloneElement(y,{fontSize:y.props.fontSize??p}),disableRipple:u,slots:g,slotProps:{input:Vo(typeof x=="function"?x(S):x,{"data-indeterminate":i})}}});return f.jsx(w,{...P,classes:C})});function va(t){return t.substring(2).toLowerCase()}function Xg(t,e){return e.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const p=qt(io(e),i),u=ee(b=>{const v=c.current;c.current=!1;const h=te(i.current);if(!l.current||!i.current||"clientX"in b&&Xg(b,h))return;if(a.current){a.current=!1;return}let y;b.composedPath?y=b.composedPath().includes(i.current):y=!h.documentElement.contains(b.target)||i.current.contains(b.target),!y&&(o||!v)&&n(b)}),m=b=>v=>{c.current=!0;const h=e.props[b];h&&h(v)},g={ref:p};return s!==!1&&(g[s]=m(s)),d.useEffect(()=>{if(s!==!1){const b=va(s),v=te(i.current),h=()=>{a.current=!0};return v.addEventListener(b,u),v.addEventListener("touchmove",h),()=>{v.removeEventListener(b,u),v.removeEventListener("touchmove",h)}}},[u,s]),r!==!1&&(g[r]=m(r)),d.useEffect(()=>{if(r!==!1){const b=va(r),v=te(i.current);return v.addEventListener(b,u),()=>{v.removeEventListener(b,u)}}},[u,r]),d.cloneElement(e,g)}const gw=rc({createStyledComponent:k("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${B(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),useThemeProps:t=>_({props:t,name:"MuiContainer"})});function mw(t){return V("MuiContainer",t)}const bw=K("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"]),es=typeof ms({})=="function",Di=(t,e)=>({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%",...e&&!t.vars&&{colorScheme:t.palette.mode}}),Fi=t=>({color:(t.vars||t).palette.text.primary,...t.typography.body1,backgroundColor:(t.vars||t).palette.background.default,"@media print":{backgroundColor:(t.vars||t).palette.common.white}}),Wi=(t,e=!1)=>{var s,a;const o={};e&&t.colorSchemes&&typeof t.getColorSchemeSelector=="function"&&Object.entries(t.colorSchemes).forEach(([i,l])=>{var p,u;const c=t.getColorSchemeSelector(i);c.startsWith("@")?o[c]={":root":{colorScheme:(p=l.palette)==null?void 0:p.mode}}:o[c.replace(/\s*&/,"")]={colorScheme:(u=l.palette)==null?void 0:u.mode}});let r={html:Di(t,e),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:t.typography.fontWeightBold},body:{margin:0,...Fi(t),"&::backdrop":{backgroundColor:(t.vars||t).palette.background.default}},...o};const n=(a=(s=t.components)==null?void 0:s.MuiCssBaseline)==null?void 0:a.styleOverrides;return n&&(r=[r,n]),r},Jr="mui-ecs",Yg=t=>{const e=Wi(t,!1),o=Array.isArray(e)?e[0]:e;return!t.vars&&o&&(o.html[`:root:has(${Jr})`]={colorScheme:t.palette.mode}),t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([r,n])=>{var a,i;const s=t.getColorSchemeSelector(r);s.startsWith("@")?o[s]={[`:root:not(:has(.${Jr}))`]:{colorScheme:(a=n.palette)==null?void 0:a.mode}}:o[s.replace(/\s*&/,"")]={[`&:not(:has(.${Jr}))`]:{colorScheme:(i=n.palette)==null?void 0:i.mode}}}),e},Zg=ms(es?({theme:t,enableColorScheme:e})=>Wi(t,e):({theme:t})=>Yg(t));function vw(t){const e=_({props:t,name:"MuiCssBaseline"}),{children:o,enableColorScheme:r=!1}=e;return f.jsxs(d.Fragment,{children:[es&&f.jsx(Zg,{enableColorScheme:r}),!es&&!r&&f.jsx("span",{className:Jr,style:{display:"none"}}),o]})}const Qg={track:"#2b2b2b",thumb:"#6b6b6b",active:"#959595"};function hw(t=Qg){return{scrollbarColor:`${t.thumb} ${t.track}`,"&::-webkit-scrollbar, & *::-webkit-scrollbar":{backgroundColor:t.track},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{borderRadius:8,backgroundColor:t.thumb,minHeight:24,border:`3px solid ${t.track}`},"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:t.active},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:t.track}}}function Jg(t){const e=te(t);return e.body===t?me(t).innerWidth>e.documentElement.clientWidth:t.scrollHeight>t.clientHeight}function fr(t,e){e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden")}function ha(t){return parseInt(me(t).getComputedStyle(t).paddingRight,10)||0}function tm(t){const o=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(t.tagName),r=t.tagName==="INPUT"&&t.getAttribute("type")==="hidden";return o||r}function ya(t,e,o,r,n){const s=[e,o,...r];[].forEach.call(t.children,a=>{const i=!s.includes(a),l=!tm(a);i&&l&&fr(a,n)})}function Ln(t,e){let o=-1;return t.some((r,n)=>e(r)?(o=n,!0):!1),o}function em(t,e){const o=[],r=t.container;if(!e.disableScrollLock){if(Jg(r)){const a=gi(me(r));o.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight=`${ha(r)+a}px`;const i=te(r).querySelectorAll(".mui-fixed");[].forEach.call(i,l=>{o.push({value:l.style.paddingRight,property:"padding-right",el:l}),l.style.paddingRight=`${ha(l)+a}px`})}let s;if(r.parentNode instanceof DocumentFragment)s=te(r).body;else{const a=r.parentElement,i=me(r);s=(a==null?void 0:a.nodeName)==="HTML"&&i.getComputedStyle(a).overflowY==="scroll"?a:r}o.push({value:s.style.overflow,property:"overflow",el:s},{value:s.style.overflowX,property:"overflow-x",el:s},{value:s.style.overflowY,property:"overflow-y",el:s}),s.style.overflow="hidden"}return()=>{o.forEach(({value:s,el:a,property:i})=>{s?a.style.setProperty(i,s):a.style.removeProperty(i)})}}function om(t){const e=[];return[].forEach.call(t.children,o=>{o.getAttribute("aria-hidden")==="true"&&e.push(o)}),e}class rm{constructor(){this.modals=[],this.containers=[]}add(e,o){let r=this.modals.indexOf(e);if(r!==-1)return r;r=this.modals.length,this.modals.push(e),e.modalRef&&fr(e.modalRef,!1);const n=om(o);ya(o,e.mount,e.modalRef,n,!0);const s=Ln(this.containers,a=>a.container===o);return s!==-1?(this.containers[s].modals.push(e),r):(this.containers.push({modals:[e],container:o,restore:null,hiddenSiblings:n}),r)}mount(e,o){const r=Ln(this.containers,s=>s.modals.includes(e)),n=this.containers[r];n.restore||(n.restore=em(n,o))}remove(e,o=!0){const r=this.modals.indexOf(e);if(r===-1)return r;const n=Ln(this.containers,a=>a.modals.includes(e)),s=this.containers[n];if(s.modals.splice(s.modals.indexOf(e),1),this.modals.splice(r,1),s.modals.length===0)s.restore&&s.restore(),e.modalRef&&fr(e.modalRef,o),ya(s.container,e.mount,e.modalRef,s.hiddenSiblings,!1),this.containers.splice(n,1);else{const a=s.modals[s.modals.length-1];a.modalRef&&fr(a.modalRef,!1)}return r}isTopModal(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}const nm=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function sm(t){const e=parseInt(t.getAttribute("tabindex")||"",10);return Number.isNaN(e)?t.contentEditable==="true"||(t.nodeName==="AUDIO"||t.nodeName==="VIDEO"||t.nodeName==="DETAILS")&&t.getAttribute("tabindex")===null?0:t.tabIndex:e}function am(t){if(t.tagName!=="INPUT"||t.type!=="radio"||!t.name)return!1;const e=r=>t.ownerDocument.querySelector(`input[type="radio"]${r}`);let o=e(`[name="${t.name}"]:checked`);return o||(o=e(`[name="${t.name}"]`)),o!==t}function im(t){return!(t.disabled||t.tagName==="INPUT"&&t.type==="hidden"||am(t))}function lm(t){const e=[],o=[];return Array.from(t.querySelectorAll(nm)).forEach((r,n)=>{const s=sm(r);s===-1||!im(r)||(s===0?e.push(r):o.push({documentOrder:n,tabIndex:s,node:r}))}),o.sort((r,n)=>r.tabIndex===n.tabIndex?r.documentOrder-n.documentOrder:r.tabIndex-n.tabIndex).map(r=>r.node).concat(e)}function cm(){return!0}function pm(t){const{children:e,disableAutoFocus:o=!1,disableEnforceFocus:r=!1,disableRestoreFocus:n=!1,getTabbable:s=lm,isEnabled:a=cm,open:i}=t,l=d.useRef(!1),c=d.useRef(null),p=d.useRef(null),u=d.useRef(null),m=d.useRef(null),g=d.useRef(!1),b=d.useRef(null),v=qt(io(e),b),h=d.useRef(null);d.useEffect(()=>{!i||!b.current||(g.current=!o)},[o,i]),d.useEffect(()=>{if(!i||!b.current)return;const C=te(b.current);return b.current.contains(C.activeElement)||(b.current.hasAttribute("tabIndex")||b.current.setAttribute("tabIndex","-1"),g.current&&b.current.focus()),()=>{n||(u.current&&u.current.focus&&(l.current=!0,u.current.focus()),u.current=null)}},[i]),d.useEffect(()=>{if(!i||!b.current)return;const C=te(b.current),x=$=>{h.current=$,!(r||!a()||$.key!=="Tab")&&C.activeElement===b.current&&$.shiftKey&&(l.current=!0,p.current&&p.current.focus())},w=()=>{var A,T;const $=b.current;if($===null)return;if(!C.hasFocus()||!a()||l.current){l.current=!1;return}if($.contains(C.activeElement)||r&&C.activeElement!==c.current&&C.activeElement!==p.current)return;if(C.activeElement!==m.current)m.current=null;else if(m.current!==null)return;if(!g.current)return;let I=[];if((C.activeElement===c.current||C.activeElement===p.current)&&(I=s(b.current)),I.length>0){const z=!!((A=h.current)!=null&&A.shiftKey&&((T=h.current)==null?void 0:T.key)==="Tab"),E=I[0],R=I[I.length-1];typeof E!="string"&&typeof R!="string"&&(z?R.focus():E.focus())}else $.focus()};C.addEventListener("focusin",w),C.addEventListener("keydown",x,!0);const P=setInterval(()=>{C.activeElement&&C.activeElement.tagName==="BODY"&&w()},50);return()=>{clearInterval(P),C.removeEventListener("focusin",w),C.removeEventListener("keydown",x,!0)}},[o,r,n,a,i,s]);const y=C=>{u.current===null&&(u.current=C.relatedTarget),g.current=!0,m.current=C.target;const x=e.props.onFocus;x&&x(C)},S=C=>{u.current===null&&(u.current=C.relatedTarget),g.current=!0};return f.jsxs(d.Fragment,{children:[f.jsx("div",{tabIndex:i?0:-1,onFocus:S,ref:c,"data-testid":"sentinelStart"}),d.cloneElement(e,{ref:v,onFocus:y}),f.jsx("div",{tabIndex:i?0:-1,onFocus:S,ref:p,"data-testid":"sentinelEnd"})]})}function dm(t){return typeof t=="function"?t():t}function um(t){return t?t.props.hasOwnProperty("in"):!1}const xa=()=>{},zr=new rm;function fm(t){const{container:e,disableEscapeKeyDown:o=!1,disableScrollLock:r=!1,closeAfterTransition:n=!1,onTransitionEnter:s,onTransitionExited:a,children:i,onClose:l,open:c,rootRef:p}=t,u=d.useRef({}),m=d.useRef(null),g=d.useRef(null),b=qt(g,p),[v,h]=d.useState(!c),y=um(i);let S=!0;(t["aria-hidden"]==="false"||t["aria-hidden"]===!1)&&(S=!1);const C=()=>te(m.current),x=()=>(u.current.modalRef=g.current,u.current.mount=m.current,u.current),w=()=>{zr.mount(x(),{disableScrollLock:r}),g.current&&(g.current.scrollTop=0)},P=ee(()=>{const O=dm(e)||C().body;zr.add(x(),O),g.current&&w()}),$=()=>zr.isTopModal(x()),I=ee(O=>{m.current=O,O&&(c&&$()?w():g.current&&fr(g.current,S))}),A=d.useCallback(()=>{zr.remove(x(),S)},[S]);d.useEffect(()=>()=>{A()},[A]),d.useEffect(()=>{c?P():(!y||!n)&&A()},[c,A,y,n,P]);const T=O=>L=>{var F;(F=O.onKeyDown)==null||F.call(O,L),!(L.key!=="Escape"||L.which===229||!$())&&(o||(L.stopPropagation(),l&&l(L,"escapeKeyDown")))},z=O=>L=>{var F;(F=O.onClick)==null||F.call(O,L),L.target===L.currentTarget&&l&&l(L,"backdropClick")};return{getRootProps:(O={})=>{const L=To(t);delete L.onTransitionEnter,delete L.onTransitionExited;const F={...L,...O};return{role:"presentation",...F,onKeyDown:T(F),ref:b}},getBackdropProps:(O={})=>{const L=O;return{"aria-hidden":!0,...L,onClick:z(L),open:c}},getTransitionProps:()=>{const O=()=>{h(!1),s&&s()},L=()=>{h(!0),a&&a(),n&&A()};return{onEnter:Vn(O,(i==null?void 0:i.props.onEnter)??xa),onExited:Vn(L,(i==null?void 0:i.props.onExited)??xa)}},rootRef:b,portalRef:I,isTopModal:$,exited:v,hasTransition:y}}function gm(t){return V("MuiModal",t)}const yw=K("MuiModal",["root","hidden","backdrop"]),mm=t=>{const{open:e,exited:o,classes:r}=t;return G({root:["root",!e&&o&&"hidden"],backdrop:["backdrop"]},gm,r)},bm=k("div",{name:"MuiModal",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.open&&o.exited&&e.hidden]}})(W(({theme:t})=>({position:"fixed",zIndex:(t.vars||t).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:e})=>!e.open&&e.exited,style:{visibility:"hidden"}}]}))),vm=k(Ei,{name:"MuiModal",slot:"Backdrop",overridesResolver:(t,e)=>e.backdrop})({zIndex:-1}),ks=d.forwardRef(function(e,o){const r=_({name:"MuiModal",props:e}),{BackdropComponent:n=vm,BackdropProps:s,classes:a,className:i,closeAfterTransition:l=!1,children:c,container:p,component:u,components:m={},componentsProps:g={},disableAutoFocus:b=!1,disableEnforceFocus:v=!1,disableEscapeKeyDown:h=!1,disablePortal:y=!1,disableRestoreFocus:S=!1,disableScrollLock:C=!1,hideBackdrop:x=!1,keepMounted:w=!1,onBackdropClick:P,onClose:$,onTransitionEnter:I,onTransitionExited:A,open:T,slotProps:z={},slots:E={},theme:R,...M}=r,O={...r,closeAfterTransition:l,disableAutoFocus:b,disableEnforceFocus:v,disableEscapeKeyDown:h,disablePortal:y,disableRestoreFocus:S,disableScrollLock:C,hideBackdrop:x,keepMounted:w},{getRootProps:L,getBackdropProps:F,getTransitionProps:D,portalRef:N,isTopModal:J,exited:U,hasTransition:wt}=fm({...O,rootRef:o}),vt={...O,exited:U},mt=mm(vt),et={};if(c.props.tabIndex===void 0&&(et.tabIndex="-1"),wt){const{onEnter:ft,onExited:Z}=D();et.onEnter=ft,et.onExited=Z}const rt={slots:{root:m.Root,backdrop:m.Backdrop,...E},slotProps:{...g,...z}},[Y,at]=Q("root",{ref:o,elementType:bm,externalForwardedProps:{...rt,...M,component:u},getSlotProps:L,ownerState:vt,className:j(i,mt==null?void 0:mt.root,!vt.open&&vt.exited&&(mt==null?void 0:mt.hidden))}),[ct,st]=Q("backdrop",{ref:s==null?void 0:s.ref,elementType:n,externalForwardedProps:rt,shouldForwardComponentProp:!0,additionalProps:s,getSlotProps:ft=>F({...ft,onClick:Z=>{P&&P(Z),ft!=null&&ft.onClick&&ft.onClick(Z)}}),className:j(s==null?void 0:s.className,mt==null?void 0:mt.backdrop),ownerState:vt});return!w&&!T&&(!wt||U)?null:f.jsx(Bi,{ref:N,container:p,disablePortal:y,children:f.jsxs(Y,{...at,children:[!x&&n?f.jsx(ct,{...st}):null,f.jsx(pm,{disableEnforceFocus:v,disableAutoFocus:b,disableRestoreFocus:S,isEnabled:J,open:T,children:d.cloneElement(c,et)})]})})});function hm(t){return V("MuiDialog",t)}const An=K("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),Ui=d.createContext({}),ym=k(Ei,{name:"MuiDialog",slot:"Backdrop",overrides:(t,e)=>e.backdrop})({zIndex:-1}),xm=t=>{const{classes:e,scroll:o,maxWidth:r,fullWidth:n,fullScreen:s}=t,a={root:["root"],container:["container",`scroll${B(o)}`],paper:["paper",`paperScroll${B(o)}`,`paperWidth${B(String(r))}`,n&&"paperFullWidth",s&&"paperFullScreen"]};return G(a,hm,e)},Cm=k(ks,{name:"MuiDialog",slot:"Root",overridesResolver:(t,e)=>e.root})({"@media print":{position:"absolute !important"}}),Sm=k("div",{name:"MuiDialog",slot:"Container",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.container,e[`scroll${B(o.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),wm=k(Ue,{name:"MuiDialog",slot:"Paper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.paper,e[`scrollPaper${B(o.scroll)}`],e[`paperWidth${B(String(o.maxWidth))}`],o.fullWidth&&e.paperFullWidth,o.fullScreen&&e.paperFullScreen]}})(W(({theme:t})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:e})=>!e.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:t.breakpoints.unit==="px"?Math.max(t.breakpoints.values.xs,444):`max(${t.breakpoints.values.xs}${t.breakpoints.unit}, 444px)`,[`&.${An.paperScrollBody}`]:{[t.breakpoints.down(Math.max(t.breakpoints.values.xs,444)+32*2)]:{maxWidth:"calc(100% - 64px)"}}}},...Object.keys(t.breakpoints.values).filter(e=>e!=="xs").map(e=>({props:{maxWidth:e},style:{maxWidth:`${t.breakpoints.values[e]}${t.breakpoints.unit}`,[`&.${An.paperScrollBody}`]:{[t.breakpoints.down(t.breakpoints.values[e]+32*2)]:{maxWidth:"calc(100% - 64px)"}}}})),{props:({ownerState:e})=>e.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:e})=>e.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${An.paperScrollBody}`]:{margin:0,maxWidth:"100%"}}}]}))),xw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialog"}),n=le(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{"aria-describedby":a,"aria-labelledby":i,"aria-modal":l=!0,BackdropComponent:c,BackdropProps:p,children:u,className:m,disableEscapeKeyDown:g=!1,fullScreen:b=!1,fullWidth:v=!1,maxWidth:h="sm",onBackdropClick:y,onClick:S,onClose:C,open:x,PaperComponent:w=Ue,PaperProps:P={},scroll:$="paper",slots:I={},slotProps:A={},TransitionComponent:T=ts,transitionDuration:z=s,TransitionProps:E,...R}=r,M={...r,disableEscapeKeyDown:g,fullScreen:b,fullWidth:v,maxWidth:h,scroll:$},O=xm(M),L=d.useRef(),F=it=>{L.current=it.target===it.currentTarget},D=it=>{S&&S(it),L.current&&(L.current=null,y&&y(it),C&&C(it,"backdropClick"))},N=De(i),J=d.useMemo(()=>({titleId:N}),[N]),U={transition:T,...I},wt={transition:E,paper:P,backdrop:p,...A},vt={slots:U,slotProps:wt},[mt,et]=Q("root",{elementType:Cm,shouldForwardComponentProp:!0,externalForwardedProps:vt,ownerState:M,className:j(O.root,m),ref:o}),[rt,Y]=Q("backdrop",{elementType:ym,shouldForwardComponentProp:!0,externalForwardedProps:vt,ownerState:M}),[at,ct]=Q("paper",{elementType:wm,shouldForwardComponentProp:!0,externalForwardedProps:vt,ownerState:M,className:j(O.paper,P.className)}),[st,ft]=Q("container",{elementType:Sm,externalForwardedProps:vt,ownerState:M,className:j(O.container)}),[Z,pt]=Q("transition",{elementType:ts,externalForwardedProps:vt,ownerState:M,additionalProps:{appear:!0,in:x,timeout:z,role:"presentation"}});return f.jsx(mt,{closeAfterTransition:!0,slots:{backdrop:rt},slotProps:{backdrop:{transitionDuration:z,as:c,...Y}},disableEscapeKeyDown:g,onClose:C,open:x,onClick:D,...et,...R,children:f.jsx(Z,{...pt,children:f.jsx(st,{onMouseDown:F,...ft,children:f.jsx(at,{as:w,elevation:24,role:"dialog","aria-describedby":a,"aria-labelledby":N,"aria-modal":l,...ct,children:f.jsx(Ui.Provider,{value:J,children:u})})})})})});function Rm(t){return V("MuiDialogActions",t)}const Cw=K("MuiDialogActions",["root","spacing"]),Pm=t=>{const{classes:e,disableSpacing:o}=t;return G({root:["root",!o&&"spacing"]},Rm,e)},$m=k("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:t})=>!t.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),Sw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogActions"}),{className:n,disableSpacing:s=!1,...a}=r,i={...r,disableSpacing:s},l=Pm(i);return f.jsx($m,{className:j(l.root,n),ownerState:i,ref:o,...a})});function km(t){return V("MuiDialogContent",t)}const ww=K("MuiDialogContent",["root","dividers"]);function Im(t){return V("MuiDialogTitle",t)}const Tm=K("MuiDialogTitle",["root"]),Mm=t=>{const{classes:e,dividers:o}=t;return G({root:["root",o&&"dividers"]},km,e)},Lm=k("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.dividers&&e.dividers]}})(W(({theme:t})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:e})=>e.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(t.vars||t).palette.divider}`,borderBottom:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>!e.dividers,style:{[`.${Tm.root} + &`]:{paddingTop:0}}}]}))),Rw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogContent"}),{className:n,dividers:s=!1,...a}=r,i={...r,dividers:s},l=Mm(i);return f.jsx(Lm,{className:j(l.root,n),ownerState:i,ref:o,...a})});function Am(t){return V("MuiDialogContentText",t)}const Pw=K("MuiDialogContentText",["root"]),Bm=t=>{const{classes:e}=t,r=G({root:["root"]},Am,e);return{...e,...r}},Em=k(he,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiDialogContentText",slot:"Root",overridesResolver:(t,e)=>e.root})({}),$w=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogContentText"}),{children:n,className:s,...a}=r,i=Bm(a);return f.jsx(Em,{component:"p",variant:"body1",color:"textSecondary",ref:o,ownerState:a,className:j(i.root,s),...r,classes:i})}),Om=t=>{const{classes:e}=t;return G({root:["root"]},Im,e)},Nm=k(he,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:"16px 24px",flex:"0 0 auto"}),kw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDialogTitle"}),{className:n,id:s,...a}=r,i=r,l=Om(i),{titleId:c=s}=d.useContext(Ui);return f.jsx(Nm,{component:"h2",className:j(l.root,n),ownerState:i,ref:o,variant:"h6",id:s??c,...a})});function zm(t){return V("MuiDivider",t)}const Ca=K("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),jm=t=>{const{absolute:e,children:o,classes:r,flexItem:n,light:s,orientation:a,textAlign:i,variant:l}=t;return G({root:["root",e&&"absolute",l,s&&"light",a==="vertical"&&"vertical",n&&"flexItem",o&&"withChildren",o&&a==="vertical"&&"withChildrenVertical",i==="right"&&a!=="vertical"&&"textAlignRight",i==="left"&&a!=="vertical"&&"textAlignLeft"],wrapper:["wrapper",a==="vertical"&&"wrapperVertical"]},zm,r)},Dm=k("div",{name:"MuiDivider",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.absolute&&e.absolute,e[o.variant],o.light&&e.light,o.orientation==="vertical"&&e.vertical,o.flexItem&&e.flexItem,o.children&&e.withChildren,o.children&&o.orientation==="vertical"&&e.withChildrenVertical,o.textAlign==="right"&&o.orientation!=="vertical"&&e.textAlignRight,o.textAlign==="left"&&o.orientation!=="vertical"&&e.textAlignLeft]}})(W(({theme:t})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(t.vars||t).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{light:!0},style:{borderColor:t.vars?`rgba(${t.vars.palette.dividerChannel} / 0.08)`:kt(t.palette.divider,.08)}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:t.spacing(2),marginRight:t.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:t.spacing(1),marginBottom:t.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:e})=>!!e.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:e})=>e.children&&e.orientation!=="vertical",style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(t.vars||t).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:e})=>e.orientation==="vertical"&&e.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(t.vars||t).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:e})=>e.textAlign==="right"&&e.orientation!=="vertical",style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:e})=>e.textAlign==="left"&&e.orientation!=="vertical",style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),Fm=k("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.wrapper,o.orientation==="vertical"&&e.wrapperVertical]}})(W(({theme:t})=>({display:"inline-block",paddingLeft:`calc(${t.spacing(1)} * 1.2)`,paddingRight:`calc(${t.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${t.spacing(1)} * 1.2)`,paddingBottom:`calc(${t.spacing(1)} * 1.2)`}}]}))),Sa=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDivider"}),{absolute:n=!1,children:s,className:a,orientation:i="horizontal",component:l=s||i==="vertical"?"div":"hr",flexItem:c=!1,light:p=!1,role:u=l!=="hr"?"separator":void 0,textAlign:m="center",variant:g="fullWidth",...b}=r,v={...r,absolute:n,component:l,flexItem:c,light:p,orientation:i,role:u,textAlign:m,variant:g},h=jm(v);return f.jsx(Dm,{as:l,className:j(h.root,a),role:u,ref:o,ownerState:v,"aria-orientation":u==="separator"&&(l!=="hr"||i==="vertical")?i:void 0,...b,children:s?f.jsx(Fm,{className:h.wrapper,ownerState:v,children:s}):null})});Sa&&(Sa.muiSkipListHighlight=!0);function Wm(t,e,o){const r=e.getBoundingClientRect(),n=o&&o.getBoundingClientRect(),s=me(e);let a;if(e.fakeTransform)a=e.fakeTransform;else{const c=s.getComputedStyle(e);a=c.getPropertyValue("-webkit-transform")||c.getPropertyValue("transform")}let i=0,l=0;if(a&&a!=="none"&&typeof a=="string"){const c=a.split("(")[1].split(")")[0].split(",");i=parseInt(c[4],10),l=parseInt(c[5],10)}return t==="left"?n?`translateX(${n.right+i-r.left}px)`:`translateX(${s.innerWidth+i-r.left}px)`:t==="right"?n?`translateX(-${r.right-n.left-i}px)`:`translateX(-${r.left+r.width-i}px)`:t==="up"?n?`translateY(${n.bottom+l-r.top}px)`:`translateY(${s.innerHeight+l-r.top}px)`:n?`translateY(-${r.top-n.top+r.height-l}px)`:`translateY(-${r.top+r.height-l}px)`}function Um(t){return typeof t=="function"?t():t}function jr(t,e,o){const r=Um(o),n=Wm(t,e,r);n&&(e.style.webkitTransform=n,e.style.transform=n)}const Hm=d.forwardRef(function(e,o){const r=le(),n={enter:r.transitions.easing.easeOut,exit:r.transitions.easing.sharp},s={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:a,appear:i=!0,children:l,container:c,direction:p="down",easing:u=n,in:m,onEnter:g,onEntered:b,onEntering:v,onExit:h,onExited:y,onExiting:S,style:C,timeout:x=s,TransitionComponent:w=Le,...P}=e,$=d.useRef(null),I=qt(io(l),$,o),A=D=>N=>{D&&(N===void 0?D($.current):D($.current,N))},T=A((D,N)=>{jr(p,D,c),mn(D),g&&g(D,N)}),z=A((D,N)=>{const J=Ge({timeout:x,style:C,easing:u},{mode:"enter"});D.style.webkitTransition=r.transitions.create("-webkit-transform",{...J}),D.style.transition=r.transitions.create("transform",{...J}),D.style.webkitTransform="none",D.style.transform="none",v&&v(D,N)}),E=A(b),R=A(S),M=A(D=>{const N=Ge({timeout:x,style:C,easing:u},{mode:"exit"});D.style.webkitTransition=r.transitions.create("-webkit-transform",N),D.style.transition=r.transitions.create("transform",N),jr(p,D,c),h&&h(D)}),O=A(D=>{D.style.webkitTransition="",D.style.transition="",y&&y(D)}),L=D=>{a&&a($.current,D)},F=d.useCallback(()=>{$.current&&jr(p,$.current,c)},[p,c]);return d.useEffect(()=>{if(m||p==="down"||p==="right")return;const D=Pr(()=>{$.current&&jr(p,$.current,c)}),N=me($.current);return N.addEventListener("resize",D),()=>{D.clear(),N.removeEventListener("resize",D)}},[p,m,c]),d.useEffect(()=>{m||F()},[m,F]),f.jsx(w,{nodeRef:$,onEnter:T,onEntered:E,onEntering:z,onExit:M,onExited:O,onExiting:R,addEndListener:L,appear:i,in:m,timeout:x,...P,children:(D,{ownerState:N,...J})=>d.cloneElement(l,{ref:I,style:{visibility:D==="exited"&&!m?"hidden":void 0,...C,...l.props.style},...J})})});function Vm(t){return V("MuiDrawer",t)}const Iw=K("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]),Hi=(t,e)=>{const{ownerState:o}=t;return[e.root,(o.variant==="permanent"||o.variant==="persistent")&&e.docked,e.modal]},Gm=t=>{const{classes:e,anchor:o,variant:r}=t,n={root:["root",`anchor${B(o)}`],docked:[(r==="permanent"||r==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${B(o)}`,r!=="temporary"&&`paperAnchorDocked${B(o)}`]};return G(n,Vm,e)},Km=k(ks,{name:"MuiDrawer",slot:"Root",overridesResolver:Hi})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.drawer}))),qm=k("div",{shouldForwardProp:ae,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:Hi})({flex:"0 0 auto"}),Xm=k(Ue,{name:"MuiDrawer",slot:"Paper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.paper,e[`paperAnchor${B(o.anchor)}`],o.variant!=="temporary"&&e[`paperAnchorDocked${B(o.anchor)}`]]}})(W(({theme:t})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(t.vars||t).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:e})=>e.anchor==="left"&&e.variant!=="temporary",style:{borderRight:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="top"&&e.variant!=="temporary",style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="right"&&e.variant!=="temporary",style:{borderLeft:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="bottom"&&e.variant!=="temporary",style:{borderTop:`1px solid ${(t.vars||t).palette.divider}`}}]}))),Vi={left:"right",right:"left",top:"down",bottom:"up"};function Ro(t){return["left","right"].includes(t)}function cr({direction:t},e){return t==="rtl"&&Ro(e)?Vi[e]:e}const _m=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiDrawer"}),n=le(),s=Ke(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{anchor:i="left",BackdropProps:l,children:c,className:p,elevation:u=16,hideBackdrop:m=!1,ModalProps:{BackdropProps:g,...b}={},onClose:v,open:h=!1,PaperProps:y={},SlideProps:S,TransitionComponent:C,transitionDuration:x=a,variant:w="temporary",slots:P={},slotProps:$={},...I}=r,A=d.useRef(!1);d.useEffect(()=>{A.current=!0},[]);const T=cr({direction:s?"rtl":"ltr"},i),E={...r,anchor:i,elevation:u,open:h,variant:w,...I},R=Gm(E),M={slots:{transition:C,...P},slotProps:{paper:y,transition:S,...$,backdrop:Vo($.backdrop||{...l,...g},{transitionDuration:x})}},[O,L]=Q("root",{ref:o,elementType:Km,className:j(R.root,R.modal,p),shouldForwardComponentProp:!0,ownerState:E,externalForwardedProps:{...M,...I,...b},additionalProps:{open:h,onClose:v,hideBackdrop:m,slots:{backdrop:M.slots.backdrop},slotProps:{backdrop:M.slotProps.backdrop}}}),[F,D]=Q("paper",{elementType:Xm,shouldForwardComponentProp:!0,className:j(R.paper,y.className),ownerState:E,externalForwardedProps:M,additionalProps:{elevation:w==="temporary"?u:0,square:!0}}),[N,J]=Q("docked",{elementType:qm,ref:o,className:j(R.root,R.docked,p),ownerState:E,externalForwardedProps:M,additionalProps:I}),[U,wt]=Q("transition",{elementType:Hm,ownerState:E,externalForwardedProps:M,additionalProps:{in:h,direction:Vi[T],timeout:x,appear:A.current}}),vt=f.jsx(F,{...D,children:c});if(w==="permanent")return f.jsx(N,{...J,children:vt});const mt=f.jsx(U,{...wt,children:vt});return w==="persistent"?f.jsx(N,{...J,children:mt}):f.jsx(O,{...L,children:mt})});function Ym(t){return V("MuiFab",t)}const wa=K("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]),Zm=t=>{const{color:e,variant:o,classes:r,size:n}=t,s={root:["root",o,`size${B(n)}`,e==="inherit"?"colorInherit":e]},a=G(s,Ym,r);return{...r,...a}},Qm=k(ue,{name:"MuiFab",slot:"Root",shouldForwardProp:t=>ae(t)||t==="classes",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${B(o.size)}`],o.color==="inherit"&&e.colorInherit,e[B(o.size)],e[o.color]]}})(W(({theme:t})=>{var e,o;return{...t.typography.button,minHeight:36,transition:t.transitions.create(["background-color","box-shadow","border-color"],{duration:t.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(t.vars||t).zIndex.fab,boxShadow:(t.vars||t).shadows[6],"&:active":{boxShadow:(t.vars||t).shadows[12]},color:t.vars?t.vars.palette.text.primary:(o=(e=t.palette).getContrastText)==null?void 0:o.call(e,t.palette.grey[300]),backgroundColor:(t.vars||t).palette.grey[300],"&:hover":{backgroundColor:(t.vars||t).palette.grey.A100,"@media (hover: none)":{backgroundColor:(t.vars||t).palette.grey[300]},textDecoration:"none"},[`&.${wa.focusVisible}`]:{boxShadow:(t.vars||t).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:48/2,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:34/2,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:40/2,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]}}),W(({theme:t})=>({variants:[...Object.entries(t.palette).filter(jt(["dark","contrastText"])).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}}}}))]})),W(({theme:t})=>({[`&.${wa.disabled}`]:{color:(t.vars||t).palette.action.disabled,boxShadow:(t.vars||t).shadows[0],backgroundColor:(t.vars||t).palette.action.disabledBackground}}))),Gi=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFab"}),{children:n,className:s,color:a="default",component:i="button",disabled:l=!1,disableFocusRipple:c=!1,focusVisibleClassName:p,size:u="large",variant:m="circular",...g}=r,b={...r,color:a,component:i,disabled:l,disableFocusRipple:c,size:u,variant:m},v=Zm(b);return f.jsx(Qm,{className:j(v.root,s),component:i,disabled:l,focusRipple:!c,focusVisibleClassName:j(v.focusVisible,p),ownerState:b,ref:o,...g,classes:v,children:n})}),Jm=t=>{const{classes:e,disableUnderline:o,startAdornment:r,endAdornment:n,size:s,hiddenLabel:a,multiline:i}=t,l={root:["root",!o&&"underline",r&&"adornedStart",n&&"adornedEnd",s==="small"&&`size${B(s)}`,a&&"hiddenLabel",i&&"multiline"],input:["input"]},c=G(l,Qu,e);return{...e,...c}},tb=k(Cn,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiFilledInput",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[...yn(t,e),!o.disableUnderline&&e.underline]}})(W(({theme:t})=>{const e=t.palette.mode==="light",o=e?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",r=e?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",n=e?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",s=e?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:t.vars?t.vars.palette.FilledInput.bg:r,borderTopLeftRadius:(t.vars||t).shape.borderRadius,borderTopRightRadius:(t.vars||t).shape.borderRadius,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut}),"&:hover":{backgroundColor:t.vars?t.vars.palette.FilledInput.hoverBg:n,"@media (hover: none)":{backgroundColor:t.vars?t.vars.palette.FilledInput.bg:r}},[`&.${Ie.focused}`]:{backgroundColor:t.vars?t.vars.palette.FilledInput.bg:r},[`&.${Ie.disabled}`]:{backgroundColor:t.vars?t.vars.palette.FilledInput.disabledBg:s},variants:[{props:({ownerState:a})=>!a.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Ie.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Ie.error}`]:{"&::before, &::after":{borderBottomColor:(t.vars||t).palette.error.main}},"&::before":{borderBottom:`1px solid ${t.vars?`rgba(${t.vars.palette.common.onBackgroundChannel} / ${t.vars.opacity.inputUnderline})`:o}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:t.transitions.create("border-bottom-color",{duration:t.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Ie.disabled}, .${Ie.error}):before`]:{borderBottom:`1px solid ${(t.vars||t).palette.text.primary}`},[`&.${Ie.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(t.palette).filter(jt()).map(([a])=>{var i;return{props:{disableUnderline:!1,color:a},style:{"&::after":{borderBottom:`2px solid ${(i=(t.vars||t).palette[a])==null?void 0:i.main}`}}}}),{props:({ownerState:a})=>a.startAdornment,style:{paddingLeft:12}},{props:({ownerState:a})=>a.endAdornment,style:{paddingRight:12}},{props:({ownerState:a})=>a.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:a,size:i})=>a.multiline&&i==="small",style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:a})=>a.multiline&&a.hiddenLabel&&a.size==="small",style:{paddingTop:8,paddingBottom:9}}]}})),eb=k(Sn,{name:"MuiFilledInput",slot:"Input",overridesResolver:xn})(W(({theme:t})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,...!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:t.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:t.palette.mode==="light"?null:"#fff",caretColor:t.palette.mode==="light"?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},...t.vars&&{"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"},[t.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}},{props:({ownerState:e})=>e.hiddenLabel&&e.size==="small",style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:e})=>e.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),Is=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFilledInput"}),{disableUnderline:n=!1,components:s={},componentsProps:a,fullWidth:i=!1,hiddenLabel:l,inputComponent:c="input",multiline:p=!1,slotProps:u,slots:m={},type:g="text",...b}=r,v={...r,disableUnderline:n,fullWidth:i,inputComponent:c,multiline:p,type:g},h=Jm(r),y={root:{ownerState:v},input:{ownerState:v}},S=u??a?Sr(y,u??a):y,C=m.root??s.Root??tb,x=m.input??s.Input??eb;return f.jsx(wn,{slots:{root:C,input:x},slotProps:S,fullWidth:i,inputComponent:c,multiline:p,ref:o,type:g,...b,classes:h})});Is.muiName="Input";function ob(t){return V("MuiFormControl",t)}const Tw=K("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]),rb=t=>{const{classes:e,margin:o,fullWidth:r}=t,n={root:["root",o!=="none"&&`margin${B(o)}`,r&&"fullWidth"]};return G(n,ob,e)},nb=k("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`margin${B(o.margin)}`],o.fullWidth&&e.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),sb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormControl"}),{children:n,className:s,color:a="primary",component:i="div",disabled:l=!1,error:c=!1,focused:p,fullWidth:u=!1,hiddenLabel:m=!1,margin:g="none",required:b=!1,size:v="medium",variant:h="outlined",...y}=r,S={...r,color:a,component:i,disabled:l,error:c,fullWidth:u,hiddenLabel:m,margin:g,required:b,size:v,variant:h},C=rb(S),[x,w]=d.useState(()=>{let O=!1;return n&&d.Children.forEach(n,L=>{if(!ho(L,["Input","Select"]))return;const F=ho(L,["Select"])?L.props.input:L;F&&qu(F.props)&&(O=!0)}),O}),[P,$]=d.useState(()=>{let O=!1;return n&&d.Children.forEach(n,L=>{ho(L,["Input","Select"])&&(an(L.props,!0)||an(L.props.inputProps,!0))&&(O=!0)}),O}),[I,A]=d.useState(!1);l&&I&&A(!1);const T=p!==void 0&&!l?p:I;let z;d.useRef(!1);const E=d.useCallback(()=>{$(!0)},[]),R=d.useCallback(()=>{$(!1)},[]),M=d.useMemo(()=>({adornedStart:x,setAdornedStart:w,color:a,disabled:l,error:c,filled:P,focused:T,fullWidth:u,hiddenLabel:m,size:v,onBlur:()=>{A(!1)},onFocus:()=>{A(!0)},onEmpty:R,onFilled:E,registerEffect:z,required:b,variant:h}),[x,a,l,c,P,T,u,m,z,R,E,b,v,h]);return f.jsx(hn.Provider,{value:M,children:f.jsx(nb,{as:i,ownerState:S,className:j(C.root,s),ref:o,...y,children:n})})});function ab(t){return V("MuiFormControlLabel",t)}const pr=K("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),ib=t=>{const{classes:e,disabled:o,labelPlacement:r,error:n,required:s}=t,a={root:["root",o&&"disabled",`labelPlacement${B(r)}`,n&&"error",s&&"required"],label:["label",o&&"disabled"],asterisk:["asterisk",n&&"error"]};return G(a,ab,e)},lb=k("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${pr.label}`]:e.label},e.root,e[`labelPlacement${B(o.labelPlacement)}`]]}})(W(({theme:t})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${pr.disabled}`]:{cursor:"default"},[`& .${pr.label}`]:{[`&.${pr.disabled}`]:{color:(t.vars||t).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:e})=>e==="start"||e==="top"||e==="bottom",style:{marginLeft:16}}]}))),cb=k("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(t,e)=>e.asterisk})(W(({theme:t})=>({[`&.${pr.error}`]:{color:(t.vars||t).palette.error.main}}))),Mw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormControlLabel"}),{checked:n,className:s,componentsProps:a={},control:i,disabled:l,disableTypography:c,inputRef:p,label:u,labelPlacement:m="end",name:g,onChange:b,required:v,slots:h={},slotProps:y={},value:S,...C}=r,x=He(),w=l??i.props.disabled??(x==null?void 0:x.disabled),P=v??i.props.required,$={disabled:w,required:P};["checked","name","onChange","value","inputRef"].forEach(O=>{typeof i.props[O]>"u"&&typeof r[O]<"u"&&($[O]=r[O])});const I=lo({props:r,muiFormControl:x,states:["error"]}),A={...r,disabled:w,labelPlacement:m,required:P,error:I.error},T=ib(A),z={slots:h,slotProps:{...a,...y}},[E,R]=Q("typography",{elementType:he,externalForwardedProps:z,ownerState:A});let M=u;return M!=null&&M.type!==he&&!c&&(M=f.jsx(E,{component:"span",...R,className:j(T.label,R==null?void 0:R.className),children:M})),f.jsxs(lb,{className:j(T.root,s),ownerState:A,ref:o,...C,children:[d.cloneElement(i,$),P?f.jsxs("div",{children:[M,f.jsxs(cb,{ownerState:A,"aria-hidden":!0,className:T.asterisk,children:[" ","*"]})]}):M]})});function pb(t){return V("MuiFormGroup",t)}const Lw=K("MuiFormGroup",["root","row","error"]),db=t=>{const{classes:e,row:o,error:r}=t;return G({root:["root",o&&"row",r&&"error"]},pb,e)},ub=k("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.row&&e.row]}})({display:"flex",flexDirection:"column",flexWrap:"wrap",variants:[{props:{row:!0},style:{flexDirection:"row"}}]}),fb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormGroup"}),{className:n,row:s=!1,...a}=r,i=He(),l=lo({props:r,muiFormControl:i,states:["error"]}),c={...r,row:s,error:l.error},p=db(c);return f.jsx(ub,{className:j(p.root,n),ownerState:c,ref:o,...a})});function gb(t){return V("MuiFormHelperText",t)}const Ra=K("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]);var Pa;const mb=t=>{const{classes:e,contained:o,size:r,disabled:n,error:s,filled:a,focused:i,required:l}=t,c={root:["root",n&&"disabled",s&&"error",r&&`size${B(r)}`,o&&"contained",i&&"focused",a&&"filled",l&&"required"]};return G(c,gb,e)},bb=k("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.size&&e[`size${B(o.size)}`],o.contained&&e.contained,o.filled&&e.filled]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,...t.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Ra.disabled}`]:{color:(t.vars||t).palette.text.disabled},[`&.${Ra.error}`]:{color:(t.vars||t).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:e})=>e.contained,style:{marginLeft:14,marginRight:14}}]}))),vb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormHelperText"}),{children:n,className:s,component:a="p",disabled:i,error:l,filled:c,focused:p,margin:u,required:m,variant:g,...b}=r,v=He(),h=lo({props:r,muiFormControl:v,states:["variant","size","disabled","error","filled","focused","required"]}),y={...r,component:a,contained:h.variant==="filled"||h.variant==="outlined",variant:h.variant,size:h.size,disabled:h.disabled,error:h.error,filled:h.filled,focused:h.focused,required:h.required};delete y.ownerState;const S=mb(y);return f.jsx(bb,{as:a,className:j(S.root,s),ref:o,...b,ownerState:y,children:n===" "?Pa||(Pa=f.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):n})});function hb(t){return V("MuiFormLabel",t)}const gr=K("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),yb=t=>{const{classes:e,color:o,focused:r,disabled:n,error:s,filled:a,required:i}=t,l={root:["root",`color${B(o)}`,n&&"disabled",s&&"error",a&&"filled",r&&"focused",i&&"required"],asterisk:["asterisk",s&&"error"]};return G(l,hb,e)},xb=k("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color==="secondary"&&e.colorSecondary,o.filled&&e.filled]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,...t.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&.${gr.focused}`]:{color:(t.vars||t).palette[e].main}}})),{props:{},style:{[`&.${gr.disabled}`]:{color:(t.vars||t).palette.text.disabled},[`&.${gr.error}`]:{color:(t.vars||t).palette.error.main}}}]}))),Cb=k("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:(t,e)=>e.asterisk})(W(({theme:t})=>({[`&.${gr.error}`]:{color:(t.vars||t).palette.error.main}}))),Sb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiFormLabel"}),{children:n,className:s,color:a,component:i="label",disabled:l,error:c,filled:p,focused:u,required:m,...g}=r,b=He(),v=lo({props:r,muiFormControl:b,states:["color","required","focused","disabled","error","filled"]}),h={...r,color:v.color||"primary",component:i,disabled:v.disabled,error:v.error,filled:v.filled,focused:v.focused,required:v.required},y=yb(h);return f.jsxs(xb,{as:i,ownerState:h,className:j(y.root,s),ref:o,...g,children:[n,v.required&&f.jsxs(Cb,{ownerState:h,"aria-hidden":!0,className:y.asterisk,children:[" ","*"]})]})}),$a=d.createContext();function wb(t){return V("MuiGrid",t)}const Rb=[0,1,2,3,4,5,6,7,8,9,10],Pb=["column-reverse","column","row-reverse","row"],$b=["nowrap","wrap-reverse","wrap"],Jo=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],xr=K("MuiGrid",["root","container","item","zeroMinWidth",...Rb.map(t=>`spacing-xs-${t}`),...Pb.map(t=>`direction-xs-${t}`),...$b.map(t=>`wrap-xs-${t}`),...Jo.map(t=>`grid-xs-${t}`),...Jo.map(t=>`grid-sm-${t}`),...Jo.map(t=>`grid-md-${t}`),...Jo.map(t=>`grid-lg-${t}`),...Jo.map(t=>`grid-xl-${t}`)]);function kb({theme:t,ownerState:e}){let o;return t.breakpoints.keys.reduce((r,n)=>{let s={};if(e[n]&&(o=e[n]),!o)return r;if(o===!0)s={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(o==="auto")s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const a=Io({values:e.columns,breakpoints:t.breakpoints.values}),i=typeof a=="object"?a[n]:a;if(i==null)return r;const l=`${Math.round(o/i*1e8)/1e6}%`;let c={};if(e.container&&e.item&&e.columnSpacing!==0){const p=t.spacing(e.columnSpacing);if(p!=="0px"){const u=`calc(${l} + ${p})`;c={flexBasis:u,maxWidth:u}}}s={flexBasis:l,flexGrow:0,maxWidth:l,...c}}return t.breakpoints.values[n]===0?Object.assign(r,s):r[t.breakpoints.up(n)]=s,r},{})}function Ib({theme:t,ownerState:e}){const o=Io({values:e.direction,breakpoints:t.breakpoints.values});return br({theme:t},o,r=>{const n={flexDirection:r};return r.startsWith("column")&&(n[`& > .${xr.item}`]={maxWidth:"none"}),n})}function Ki({breakpoints:t,values:e}){let o="";Object.keys(e).forEach(n=>{o===""&&e[n]!==0&&(o=n)});const r=Object.keys(t).sort((n,s)=>t[n]-t[s]);return r.slice(0,r.indexOf(o))}function Tb({theme:t,ownerState:e}){const{container:o,rowSpacing:r}=e;let n={};if(o&&r!==0){const s=Io({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=Ki({breakpoints:t.breakpoints.values,values:s})),n=br({theme:t},s,(i,l)=>{const c=t.spacing(i);return c!=="0px"?{marginTop:`calc(-1 * ${c})`,[`& > .${xr.item}`]:{paddingTop:c}}:a!=null&&a.includes(l)?{}:{marginTop:0,[`& > .${xr.item}`]:{paddingTop:0}}})}return n}function Mb({theme:t,ownerState:e}){const{container:o,columnSpacing:r}=e;let n={};if(o&&r!==0){const s=Io({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=Ki({breakpoints:t.breakpoints.values,values:s})),n=br({theme:t},s,(i,l)=>{const c=t.spacing(i);if(c!=="0px"){const p=`calc(-1 * ${c})`;return{width:`calc(100% + ${c})`,marginLeft:p,[`& > .${xr.item}`]:{paddingLeft:c}}}return a!=null&&a.includes(l)?{}:{width:"100%",marginLeft:0,[`& > .${xr.item}`]:{paddingLeft:0}}})}return n}function Lb(t,e,o={}){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[o[`spacing-xs-${String(t)}`]];const r=[];return e.forEach(n=>{const s=t[n];Number(s)>0&&r.push(o[`spacing-${n}-${String(s)}`])}),r}const Ab=k("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{container:r,direction:n,item:s,spacing:a,wrap:i,zeroMinWidth:l,breakpoints:c}=o;let p=[];r&&(p=Lb(a,c,e));const u=[];return c.forEach(m=>{const g=o[m];g&&u.push(e[`grid-${m}-${String(g)}`])}),[e.root,r&&e.container,s&&e.item,l&&e.zeroMinWidth,...p,n!=="row"&&e[`direction-xs-${String(n)}`],i!=="wrap"&&e[`wrap-xs-${String(i)}`],...u]}})(({ownerState:t})=>({boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},...t.item&&{margin:0},...t.zeroMinWidth&&{minWidth:0},...t.wrap!=="wrap"&&{flexWrap:t.wrap}}),Ib,Tb,Mb,kb);function Bb(t,e){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[`spacing-xs-${String(t)}`];const o=[];return e.forEach(r=>{const n=t[r];if(Number(n)>0){const s=`spacing-${r}-${String(n)}`;o.push(s)}}),o}const Eb=t=>{const{classes:e,container:o,direction:r,item:n,spacing:s,wrap:a,zeroMinWidth:i,breakpoints:l}=t;let c=[];o&&(c=Bb(s,l));const p=[];l.forEach(m=>{const g=t[m];g&&p.push(`grid-${m}-${String(g)}`)});const u={root:["root",o&&"container",n&&"item",i&&"zeroMinWidth",...c,r!=="row"&&`direction-xs-${String(r)}`,a!=="wrap"&&`wrap-xs-${String(a)}`,...p]};return G(u,wb,e)},Aw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiGrid"}),{breakpoints:n}=le(),s=Rr(r),{className:a,columns:i,columnSpacing:l,component:c="div",container:p=!1,direction:u="row",item:m=!1,rowSpacing:g,spacing:b=0,wrap:v="wrap",zeroMinWidth:h=!1,...y}=s,S=g||b,C=l||b,x=d.useContext($a),w=p?i||12:x,P={},$={...y};n.keys.forEach(T=>{y[T]!=null&&(P[T]=y[T],delete $[T])});const I={...s,columns:w,container:p,direction:u,item:m,rowSpacing:S,columnSpacing:C,wrap:v,zeroMinWidth:h,spacing:b,...P,breakpoints:n.keys},A=Eb(I);return f.jsx($a.Provider,{value:w,children:f.jsx(Ab,{ownerState:I,className:j(A.root,a),as:c,ref:o,...$})})}),Bw=yc({createStyledComponent:k("div",{name:"MuiGrid2",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.container&&e.container]}}),componentName:"MuiGrid2",useThemeProps:t=>_({props:t,name:"MuiGrid2"}),useTheme:le});function Ew(t){return V("MuiGrid2",t)}const Ob=[0,1,2,3,4,5,6,7,8,9,10],Nb=["column-reverse","column","row-reverse","row"],zb=["nowrap","wrap-reverse","wrap"],tr=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Ow=K("MuiGrid2",["root","container",...Ob.map(t=>`spacing-xs-${t}`),...Nb.map(t=>`direction-xs-${t}`),...zb.map(t=>`wrap-xs-${t}`),...tr.map(t=>`grid-xs-${t}`),...tr.map(t=>`grid-sm-${t}`),...tr.map(t=>`grid-md-${t}`),...tr.map(t=>`grid-lg-${t}`),...tr.map(t=>`grid-xl-${t}`)]);function os(t){return`scale(${t}, ${t**2})`}const jb={entering:{opacity:1,transform:os(1)},entered:{opacity:1,transform:"none"}},Bn=typeof navigator<"u"&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),Cr=d.forwardRef(function(e,o){const{addEndListener:r,appear:n=!0,children:s,easing:a,in:i,onEnter:l,onEntered:c,onEntering:p,onExit:u,onExited:m,onExiting:g,style:b,timeout:v="auto",TransitionComponent:h=Le,...y}=e,S=no(),C=d.useRef(),x=le(),w=d.useRef(null),P=qt(w,io(s),o),$=O=>L=>{if(O){const F=w.current;L===void 0?O(F):O(F,L)}},I=$(p),A=$((O,L)=>{mn(O);const{duration:F,delay:D,easing:N}=Ge({style:b,timeout:v,easing:a},{mode:"enter"});let J;v==="auto"?(J=x.transitions.getAutoHeightDuration(O.clientHeight),C.current=J):J=F,O.style.transition=[x.transitions.create("opacity",{duration:J,delay:D}),x.transitions.create("transform",{duration:Bn?J:J*.666,delay:D,easing:N})].join(","),l&&l(O,L)}),T=$(c),z=$(g),E=$(O=>{const{duration:L,delay:F,easing:D}=Ge({style:b,timeout:v,easing:a},{mode:"exit"});let N;v==="auto"?(N=x.transitions.getAutoHeightDuration(O.clientHeight),C.current=N):N=L,O.style.transition=[x.transitions.create("opacity",{duration:N,delay:F}),x.transitions.create("transform",{duration:Bn?N:N*.666,delay:Bn?F:F||N*.333,easing:D})].join(","),O.style.opacity=0,O.style.transform=os(.75),u&&u(O)}),R=$(m),M=O=>{v==="auto"&&S.start(C.current||0,O),r&&r(w.current,O)};return f.jsx(h,{appear:n,in:i,nodeRef:w,onEnter:A,onEntered:T,onEntering:I,onExit:E,onExited:R,onExiting:z,addEndListener:M,timeout:v==="auto"?null:v,...y,children:(O,{ownerState:L,...F})=>d.cloneElement(s,{style:{opacity:0,transform:os(.75),visibility:O==="exited"&&!i?"hidden":void 0,...jb[O],...b,...s.props.style},ref:P,...F})})});Cr&&(Cr.muiSupportAuto=!0);const Db=ui({themeId:pn}),bo=["xs","sm","md","lg","xl"],Fb=(t,e,o=!0)=>o?bo.indexOf(t)<=bo.indexOf(e):bo.indexOf(t)o?bo.indexOf(e)<=bo.indexOf(t):bo.indexOf(e)e=>{const{withTheme:o=!1,noSSR:r=!1,initialWidth:n}=t;function s(a){const i=le(),l=a.theme||i,{initialWidth:c,width:p,...u}=fs({theme:l,name:"MuiWithWidth",props:a}),[m,g]=d.useState(!1);be(()=>{g(!0)},[]);const v=l.breakpoints.keys.slice().reverse().reduce((y,S)=>{const C=Db(l.breakpoints.up(S));return!y&&C?S:y},null),h={width:p||(m||r?v:void 0)||c||n,...o?{theme:l}:{},...u};return h.width===void 0?null:f.jsx(e,{...h})}return s};function qi(t){const{children:e,only:o,width:r}=t,n=le();let s=!0;if(o)if(Array.isArray(o))for(let a=0;a{const{classes:e,breakpoints:o}=t,r={root:["root",...o.map(({breakpoint:n,dir:s})=>s==="only"?`${s}${B(n)}`:`${n}${B(s)}`)]};return G(r,Vb,e)},Kb=k("div",{name:"PrivateHiddenCss",slot:"Root"})(({theme:t,ownerState:e})=>{const o={display:"none"};return{...e.breakpoints.map(({breakpoint:r,dir:n})=>n==="only"?{[t.breakpoints.only(r)]:o}:n==="up"?{[t.breakpoints.up(r)]:o}:{[t.breakpoints.down(r)]:o}).reduce((r,n)=>(Object.keys(n).forEach(s=>{r[s]=n[s]}),r),{})}});function qb(t){const{children:e,className:o,only:r,...n}=t,s=le(),a=[];for(let c=0;c{a.push({breakpoint:p,dir:"only"})});const i={...t,breakpoints:a},l=Gb(i);return f.jsx(Kb,{className:j(l.root,o),ownerState:i,children:e})}function Nw(t){const{implementation:e="js",lgDown:o=!1,lgUp:r=!1,mdDown:n=!1,mdUp:s=!1,smDown:a=!1,smUp:i=!1,xlDown:l=!1,xlUp:c=!1,xsDown:p=!1,xsUp:u=!1,...m}=t;return e==="js"?f.jsx(Hb,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:u,...m}):f.jsx(qb,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:u,...m})}function Xb(t){return V("MuiIcon",t)}const zw=K("MuiIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),_b=t=>{const{color:e,fontSize:o,classes:r}=t,n={root:["root",e!=="inherit"&&`color${B(e)}`,`fontSize${B(o)}`]};return G(n,Xb,r)},Yb=k("span",{name:"MuiIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="inherit"&&e[`color${B(o.color)}`],e[`fontSize${B(o.fontSize)}`]]}})(W(({theme:t})=>({userSelect:"none",width:"1em",height:"1em",overflow:"hidden",display:"inline-block",textAlign:"center",flexShrink:0,variants:[{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:t.typography.pxToRem(20)}},{props:{fontSize:"medium"},style:{fontSize:t.typography.pxToRem(24)}},{props:{fontSize:"large"},style:{fontSize:t.typography.pxToRem(36)}},{props:{color:"action"},style:{color:(t.vars||t).palette.action.active}},{props:{color:"disabled"},style:{color:(t.vars||t).palette.action.disabled}},{props:{color:"inherit"},style:{color:void 0}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}}))]}))),Zb=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiIcon"}),{baseClassName:n="material-icons",className:s,color:a="inherit",component:i="span",fontSize:l="medium",...c}=r,p={...r,baseClassName:n,color:a,component:i,fontSize:l},u=_b(p);return f.jsx(Yb,{as:i,className:j(n,"notranslate",u.root,s),ownerState:p,"aria-hidden":!0,ref:o,...c})});Zb.muiName="Icon";function Qb(t){return V("MuiImageList",t)}const jw=K("MuiImageList",["root","masonry","quilted","standard","woven"]),Xi=d.createContext({}),Jb=t=>{const{classes:e,variant:o}=t;return G({root:["root",o]},Qb,e)},tv=k("ul",{name:"MuiImageList",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({display:"grid",overflowY:"auto",listStyle:"none",padding:0,WebkitOverflowScrolling:"touch",variants:[{props:{variant:"masonry"},style:{display:"block"}}]}),Dw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiImageList"}),{children:n,className:s,cols:a=2,component:i="ul",rowHeight:l="auto",gap:c=4,style:p,variant:u="standard",...m}=r,g=d.useMemo(()=>({rowHeight:l,gap:c,variant:u}),[l,c,u]),b=u==="masonry"?{columnCount:a,columnGap:c,...p}:{gridTemplateColumns:`repeat(${a}, 1fr)`,gap:c,...p},v={...r,component:i,gap:c,rowHeight:l,variant:u},h=Jb(v);return f.jsx(tv,{as:i,className:j(h.root,h[u],s),ref:o,style:b,ownerState:v,...m,children:f.jsx(Xi.Provider,{value:g,children:n})})});function ev(t){return V("MuiImageListItem",t)}const En=K("MuiImageListItem",["root","img","standard","woven","masonry","quilted"]),ov=t=>{const{classes:e,variant:o}=t;return G({root:["root",o],img:["img"]},ev,e)},rv=k("li",{name:"MuiImageListItem",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${En.img}`]:e.img},e.root,e[o.variant]]}})({display:"block",position:"relative",[`& .${En.img}`]:{objectFit:"cover",width:"100%",height:"100%",display:"block"},variants:[{props:{variant:"standard"},style:{display:"flex",flexDirection:"column"}},{props:{variant:"woven"},style:{height:"100%",alignSelf:"center","&:nth-of-type(even)":{height:"70%"}}},{props:{variant:"standard"},style:{[`& .${En.img}`]:{height:"auto",flexGrow:1}}}]}),Fw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiImageListItem"}),{children:n,className:s,cols:a=1,component:i="li",rows:l=1,style:c,...p}=r,{rowHeight:u="auto",gap:m,variant:g}=d.useContext(Xi);let b="auto";g==="woven"?b=void 0:u!=="auto"&&(b=u*l+m*(l-1));const v={...r,cols:a,component:i,gap:m,rowHeight:u,rows:l,variant:g},h=ov(v);return f.jsx(rv,{as:i,className:j(h.root,h[g],s),ref:o,style:{height:b,gridColumnEnd:g!=="masonry"?`span ${a}`:void 0,gridRowEnd:g!=="masonry"?`span ${l}`:void 0,marginBottom:g==="masonry"?m:void 0,breakInside:g==="masonry"?"avoid":void 0,...c},ownerState:v,...p,children:d.Children.map(n,y=>d.isValidElement(y)?y.type==="img"||ho(y,["Image"])?d.cloneElement(y,{className:j(h.img,y.props.className)}):y:null)})});function nv(t){return V("MuiImageListItemBar",t)}const Ww=K("MuiImageListItemBar",["root","positionBottom","positionTop","positionBelow","actionPositionLeft","actionPositionRight","titleWrap","titleWrapBottom","titleWrapTop","titleWrapBelow","titleWrapActionPosLeft","titleWrapActionPosRight","title","subtitle","actionIcon","actionIconActionPosLeft","actionIconActionPosRight"]),sv=t=>{const{classes:e,position:o,actionIcon:r,actionPosition:n}=t,s={root:["root",`position${B(o)}`,`actionPosition${B(n)}`],titleWrap:["titleWrap",`titleWrap${B(o)}`,r&&`titleWrapActionPos${B(n)}`],title:["title"],subtitle:["subtitle"],actionIcon:["actionIcon",`actionIconActionPos${B(n)}`]};return G(s,nv,e)},av=k("div",{name:"MuiImageListItemBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`]]}})(W(({theme:t})=>({position:"absolute",left:0,right:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",fontFamily:t.typography.fontFamily,variants:[{props:{position:"bottom"},style:{bottom:0}},{props:{position:"top"},style:{top:0}},{props:{position:"below"},style:{position:"relative",background:"transparent",alignItems:"normal"}}]}))),iv=k("div",{name:"MuiImageListItemBar",slot:"TitleWrap",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.titleWrap,e[`titleWrap${B(o.position)}`],o.actionIcon&&e[`titleWrapActionPos${B(o.actionPosition)}`]]}})(W(({theme:t})=>({flexGrow:1,padding:"12px 16px",color:(t.vars||t).palette.common.white,overflow:"hidden",variants:[{props:{position:"below"},style:{padding:"6px 0 12px",color:"inherit"}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="left",style:{paddingLeft:0}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="right",style:{paddingRight:0}}]}))),lv=k("div",{name:"MuiImageListItemBar",slot:"Title",overridesResolver:(t,e)=>e.title})(W(({theme:t})=>({fontSize:t.typography.pxToRem(16),lineHeight:"24px",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),cv=k("div",{name:"MuiImageListItemBar",slot:"Subtitle",overridesResolver:(t,e)=>e.subtitle})(W(({theme:t})=>({fontSize:t.typography.pxToRem(12),lineHeight:1,textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),pv=k("div",{name:"MuiImageListItemBar",slot:"ActionIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actionIcon,e[`actionIconActionPos${B(o.actionPosition)}`]]}})({variants:[{props:{actionPosition:"left"},style:{order:-1}}]}),Uw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiImageListItemBar"}),{actionIcon:n,actionPosition:s="right",className:a,subtitle:i,title:l,position:c="bottom",...p}=r,u={...r,position:c,actionPosition:s},m=sv(u);return f.jsxs(av,{ownerState:u,className:j(m.root,a),ref:o,...p,children:[f.jsxs(iv,{ownerState:u,className:m.titleWrap,children:[f.jsx(lv,{className:m.title,children:l}),i?f.jsx(cv,{className:m.subtitle,children:i}):null]}),n?f.jsx(pv,{ownerState:u,className:m.actionIcon,children:n}):null]})}),dv=t=>{const{classes:e,disableUnderline:o}=t,n=G({root:["root",!o&&"underline"],input:["input"]},Yu,e);return{...e,...n}},uv=k(Cn,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiInput",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[...yn(t,e),!o.disableUnderline&&e.underline]}})(W(({theme:t})=>{let o=t.palette.mode==="light"?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return t.vars&&(o=`rgba(${t.vars.palette.common.onBackgroundChannel} / ${t.vars.opacity.inputUnderline})`),{position:"relative",variants:[{props:({ownerState:r})=>r.formControl,style:{"label + &":{marginTop:16}}},{props:({ownerState:r})=>!r.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${mo.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${mo.error}`]:{"&::before, &::after":{borderBottomColor:(t.vars||t).palette.error.main}},"&::before":{borderBottom:`1px solid ${o}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:t.transitions.create("border-bottom-color",{duration:t.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${mo.disabled}, .${mo.error}):before`]:{borderBottom:`2px solid ${(t.vars||t).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${o}`}},[`&.${mo.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(t.palette).filter(jt()).map(([r])=>({props:{color:r,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(t.vars||t).palette[r].main}`}}}))]}})),fv=k(Sn,{name:"MuiInput",slot:"Input",overridesResolver:xn})({}),Rn=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiInput"}),{disableUnderline:n=!1,components:s={},componentsProps:a,fullWidth:i=!1,inputComponent:l="input",multiline:c=!1,slotProps:p,slots:u={},type:m="text",...g}=r,b=dv(r),h={root:{ownerState:{disableUnderline:n}}},y=p??a?Sr(p??a,h):h,S=u.root??s.Root??uv,C=u.input??s.Input??fv;return f.jsx(wn,{slots:{root:S,input:C},slotProps:y,fullWidth:i,inputComponent:l,multiline:c,ref:o,type:m,...g,classes:b})});Rn.muiName="Input";function gv(t){return V("MuiInputAdornment",t)}const ka=K("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]);var Ia;const mv=(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`],o.disablePointerEvents===!0&&e.disablePointerEvents,e[o.variant]]},bv=t=>{const{classes:e,disablePointerEvents:o,hiddenLabel:r,position:n,size:s,variant:a}=t,i={root:["root",o&&"disablePointerEvents",n&&`position${B(n)}`,a,r&&"hiddenLabel",s&&`size${B(s)}`]};return G(i,gv,e)},vv=k("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:mv})(W(({theme:t})=>({display:"flex",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:(t.vars||t).palette.action.active,variants:[{props:{variant:"filled"},style:{[`&.${ka.positionStart}&:not(.${ka.hiddenLabel})`]:{marginTop:16}}},{props:{position:"start"},style:{marginRight:8}},{props:{position:"end"},style:{marginLeft:8}},{props:{disablePointerEvents:!0},style:{pointerEvents:"none"}}]}))),Hw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiInputAdornment"}),{children:n,className:s,component:a="div",disablePointerEvents:i=!1,disableTypography:l=!1,position:c,variant:p,...u}=r,m=He()||{};let g=p;p&&m.variant,m&&!g&&(g=m.variant);const b={...r,hiddenLabel:m.hiddenLabel,size:m.size,disablePointerEvents:i,position:c,variant:g},v=bv(b);return f.jsx(hn.Provider,{value:null,children:f.jsx(vv,{as:a,ownerState:b,className:j(v.root,s),ref:o,...u,children:typeof n=="string"&&!l?f.jsx(he,{color:"textSecondary",children:n}):f.jsxs(d.Fragment,{children:[c==="start"?Ia||(Ia=f.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):null,n]})})})});function hv(t){return V("MuiInputLabel",t)}const Vw=K("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]),yv=t=>{const{classes:e,formControl:o,size:r,shrink:n,disableAnimation:s,variant:a,required:i}=t,l={root:["root",o&&"formControl",!s&&"animated",n&&"shrink",r&&r!=="normal"&&`size${B(r)}`,a],asterisk:[i&&"asterisk"]},c=G(l,hv,e);return{...e,...c}},xv=k(Sb,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiInputLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${gr.asterisk}`]:e.asterisk},e.root,o.formControl&&e.formControl,o.size==="small"&&e.sizeSmall,o.shrink&&e.shrink,!o.disableAnimation&&e.animated,o.focused&&e.focused,e[o.variant]]}})(W(({theme:t})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:e})=>e.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:e})=>e.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:e})=>!e.disableAnimation,style:{transition:t.transitions.create(["color","transform","max-width"],{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:e,ownerState:o})=>e==="filled"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:e,ownerState:o,size:r})=>e==="filled"&&o.shrink&&r==="small",style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:e,ownerState:o})=>e==="outlined"&&o.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),Cv=d.forwardRef(function(e,o){const r=_({name:"MuiInputLabel",props:e}),{disableAnimation:n=!1,margin:s,shrink:a,variant:i,className:l,...c}=r,p=He();let u=a;typeof u>"u"&&p&&(u=p.filled||p.focused||p.adornedStart);const m=lo({props:r,muiFormControl:p,states:["size","variant","required","focused"]}),g={...r,disableAnimation:n,formControl:p,shrink:u,size:m.size,variant:m.variant,required:m.required,focused:m.focused},b=yv(g);return f.jsx(xv,{"data-shrink":u,ref:o,className:j(b.root,l),...c,ownerState:g,classes:b})});function Sv(t){return V("MuiLinearProgress",t)}const Gw=K("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","bar1","bar2","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]),rs=4,ns=Je` 0% { left: -35%; right: 100%; @@ -117,9 +117,9 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a left: 100%; right: -90%; } -`,wv=typeof ss!="string"?No` - animation: ${ss} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - `:null,as=Je` +`,wv=typeof ns!="string"?Oo` + animation: ${ns} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + `:null,ss=Je` 0% { left: -200%; right: 100%; @@ -134,9 +134,9 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a left: 107%; right: -8%; } -`,Rv=typeof as!="string"?No` - animation: ${as} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite; - `:null,is=Je` +`,Rv=typeof ss!="string"?Oo` + animation: ${ss} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite; + `:null,as=Je` 0% { opacity: 1; background-position: 0 -23px; @@ -151,9 +151,9 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a opacity: 1; background-position: -200px -23px; } -`,Pv=typeof is!="string"?No` - animation: ${is} 3s infinite linear; - `:null,$v=t=>{const{classes:e,variant:o,color:r}=t,n={root:["root",`color${B(r)}`,o],dashed:["dashed",`dashedColor${B(r)}`],bar1:["bar","bar1",`barColor${B(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${B(r)}`,o==="buffer"&&`color${B(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return G(n,Sv,e)},Ms=(t,e)=>t.vars?t.vars.palette.LinearProgress[`${e}Bg`]:t.palette.mode==="light"?Bo(t.palette[e].main,.62):Ao(t.palette[e].main,.5),kv=k("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${B(o.color)}`],e[o.variant]]}})(W(({theme:t})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{backgroundColor:Ms(t,e)}})),{props:({ownerState:e})=>e.color==="inherit"&&e.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),Iv=k("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.dashed,e[`dashedColor${B(o.color)}`]]}})(W(({theme:t})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(t.palette).filter(jt()).map(([e])=>{const o=Ms(t,e);return{props:{color:e},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),Pv||{animation:`${is} 3s infinite linear`}),Tv=k("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar1,e[`barColor${B(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar1Indeterminate,o.variant==="determinate"&&e.bar1Determinate,o.variant==="buffer"&&e.bar1Buffer]}})(W(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main}})),{props:{variant:"determinate"},style:{transition:`transform .${ns}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${ns}s linear`}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:wv||{animation:`${ss} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),Mv=k("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar2,e[`barColor${B(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar2Indeterminate,o.variant==="buffer"&&e.bar2Buffer]}})(W(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{"--LinearProgressBar2-barColor":(t.vars||t).palette[e].main}})),{props:({ownerState:e})=>e.variant!=="buffer"&&e.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:e})=>e.variant!=="buffer"&&e.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,variant:"buffer"},style:{backgroundColor:Ms(t,e),transition:`transform .${ns}s linear`}})),{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:Rv||{animation:`${as} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),Lv=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiLinearProgress"}),{className:n,color:s="primary",value:a,valueBuffer:i,variant:l="indeterminate",...c}=r,p={...r,color:s,variant:l},u=$v(p),m=Ke(),g={},b={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&a!==void 0){g["aria-valuenow"]=Math.round(a),g["aria-valuemin"]=0,g["aria-valuemax"]=100;let v=a-100;m&&(v=-v),b.bar1.transform=`translateX(${v}%)`}if(l==="buffer"&&i!==void 0){let v=(i||0)-100;m&&(v=-v),b.bar2.transform=`translateX(${v}%)`}return f.jsxs(kv,{className:j(u.root,n),ownerState:p,role:"progressbar",...g,ref:o,...c,children:[l==="buffer"?f.jsx(Iv,{className:u.dashed,ownerState:p}):null,f.jsx(Tv,{className:u.bar1,ownerState:p,style:b.bar1}),l==="determinate"?null:f.jsx(Mv,{className:u.bar2,ownerState:p,style:b.bar2})]})});function Av(t){return V("MuiLink",t)}const Bv=K("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),Ev=({theme:t,ownerState:e})=>{const o=e.color,r=Br(t,`palette.${o}.main`,!1)||Br(t,`palette.${o}`,!1)||e.color,n=Br(t,`palette.${o}.mainChannel`)||Br(t,`palette.${o}Channel`);return"vars"in t&&n?`rgba(${n} / 0.4)`:kt(r,.4)},La={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},Ov=t=>{const{classes:e,component:o,focusVisible:r,underline:n}=t,s={root:["root",`underline${B(n)}`,o==="button"&&"button",r&&"focusVisible"]};return G(s,Av,e)},Nv=k(he,{name:"MuiLink",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`underline${B(o.underline)}`],o.component==="button"&&e.button]}})(W(({theme:t})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:e,ownerState:o})=>e==="always"&&o.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{underline:"always",color:e},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.4)`:kt(t.palette[e].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.4)`:kt(t.palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.secondaryChannel} / 0.4)`:kt(t.palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(t.vars||t).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Bv.focusVisible}`]:{outline:"auto"}}}]}))),Kw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiLink"}),n=le(),{className:s,color:a="primary",component:i="a",onBlur:l,onFocus:c,TypographyClasses:p,underline:u="always",variant:m="inherit",sx:g,...b}=r,[v,h]=d.useState(!1),y=w=>{Ze(w.target)||h(!1),l&&l(w)},S=w=>{Ze(w.target)&&h(!0),c&&c(w)},C={...r,color:a,component:i,focusVisible:v,underline:u,variant:m},x=Ov(C);return f.jsx(Nv,{color:a,className:j(x.root,s),classes:p,component:i,onBlur:y,onFocus:S,ref:o,ownerState:C,variant:m,...b,sx:[...La[a]===void 0?[{color:a}]:[],...Array.isArray(g)?g:[g]],style:{...b.style,...u==="always"&&a!=="inherit"&&!La[a]&&{"--Link-underlineColor":Ev({theme:n,ownerState:C})}}})}),je=d.createContext({});function zv(t){return V("MuiList",t)}const qw=K("MuiList",["root","padding","dense","subheader"]),jv=t=>{const{classes:e,disablePadding:o,dense:r,subheader:n}=t;return G({root:["root",!o&&"padding",r&&"dense",n&&"subheader"]},zv,e)},Dv=k("ul",{name:"MuiList",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disablePadding&&e.padding,o.dense&&e.dense,o.subheader&&e.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:t})=>!t.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:t})=>t.subheader,style:{paddingTop:0}}]}),Fv=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiList"}),{children:n,className:s,component:a="ul",dense:i=!1,disablePadding:l=!1,subheader:c,...p}=r,u=d.useMemo(()=>({dense:i}),[i]),m={...r,component:a,dense:i,disablePadding:l},g=jv(m);return f.jsx(je.Provider,{value:u,children:f.jsxs(Dv,{as:a,className:j(g.root,s),ref:o,ownerState:m,...p,children:[c,n]})})});function Wv(t){return V("MuiListItem",t)}const Xw=K("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);function Uv(t){return V("MuiListItemButton",t)}const Wo=K("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]),Hv=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.alignItems==="flex-start"&&e.alignItemsFlexStart,o.divider&&e.divider,!o.disableGutters&&e.gutters]},Vv=t=>{const{alignItems:e,classes:o,dense:r,disabled:n,disableGutters:s,divider:a,selected:i}=t,c=G({root:["root",r&&"dense",!s&&"gutters",a&&"divider",n&&"disabled",e==="flex-start"&&"alignItemsFlexStart",i&&"selected"]},Uv,o);return{...o,...c}},Gv=k(ue,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiListItemButton",slot:"Root",overridesResolver:Hv})(W(({theme:t})=>({display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Wo.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${Wo.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},[`&.${Wo.selected}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity)}},[`&.${Wo.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${Wo.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.dense,style:{paddingTop:4,paddingBottom:4}}]}))),_w=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemButton"}),{alignItems:n="center",autoFocus:s=!1,component:a="div",children:i,dense:l=!1,disableGutters:c=!1,divider:p=!1,focusVisibleClassName:u,selected:m=!1,className:g,...b}=r,v=d.useContext(je),h=d.useMemo(()=>({dense:l||v.dense||!1,alignItems:n,disableGutters:c}),[n,v.dense,l,c]),y=d.useRef(null);be(()=>{s&&y.current&&y.current.focus()},[s]);const S={...r,alignItems:n,dense:h.dense,disableGutters:c,divider:p,selected:m},C=Vv(S),x=qt(y,o);return f.jsx(je.Provider,{value:h,children:f.jsx(Gv,{ref:x,href:b.href||b.to,component:(b.href||b.to)&&a==="div"?"button":a,focusVisibleClassName:j(C.focusVisible,u),ownerState:S,className:j(C.root,g),...b,classes:C,children:i})})});function Kv(t){return V("MuiListItemSecondaryAction",t)}const Yw=K("MuiListItemSecondaryAction",["root","disableGutters"]),qv=t=>{const{disableGutters:e,classes:o}=t;return G({root:["root",e&&"disableGutters"]},Kv,o)},Xv=k("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.disableGutters&&e.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:t})=>t.disableGutters,style:{right:0}}]}),Yi=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemSecondaryAction"}),{className:n,...s}=r,a=d.useContext(je),i={...r,disableGutters:a.disableGutters},l=qv(i);return f.jsx(Xv,{className:j(l.root,n),ownerState:i,ref:o,...s})});Yi.muiName="ListItemSecondaryAction";const _v=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.alignItems==="flex-start"&&e.alignItemsFlexStart,o.divider&&e.divider,!o.disableGutters&&e.gutters,!o.disablePadding&&e.padding,o.hasSecondaryAction&&e.secondaryAction]},Yv=t=>{const{alignItems:e,classes:o,dense:r,disableGutters:n,disablePadding:s,divider:a,hasSecondaryAction:i}=t;return G({root:["root",r&&"dense",!n&&"gutters",!s&&"padding",a&&"divider",e==="flex-start"&&"alignItemsFlexStart",i&&"secondaryAction"],container:["container"]},Wv,o)},Zv=k("div",{name:"MuiListItem",slot:"Root",overridesResolver:_v})(W(({theme:t})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>!e.disablePadding&&e.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:e})=>!e.disablePadding&&!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>!e.disablePadding&&!!e.secondaryAction,style:{paddingRight:48}},{props:({ownerState:e})=>!!e.secondaryAction,style:{[`& > .${Wo.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>e.button,style:{transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:e})=>e.hasSecondaryAction,style:{paddingRight:48}}]}))),Qv=k("li",{name:"MuiListItem",slot:"Container",overridesResolver:(t,e)=>e.container})({position:"relative"}),Zw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItem"}),{alignItems:n="center",children:s,className:a,component:i,components:l={},componentsProps:c={},ContainerComponent:p="li",ContainerProps:{className:u,...m}={},dense:g=!1,disableGutters:b=!1,disablePadding:v=!1,divider:h=!1,secondaryAction:y,slotProps:S={},slots:C={},...x}=r,w=d.useContext(je),P=d.useMemo(()=>({dense:g||w.dense||!1,alignItems:n,disableGutters:b}),[n,w.dense,g,b]),$=d.useRef(null),I=d.Children.toArray(s),A=I.length&&yo(I[I.length-1],["ListItemSecondaryAction"]),T={...r,alignItems:n,dense:P.dense,disableGutters:b,disablePadding:v,divider:h,hasSecondaryAction:A},z=Yv(T),E=qt($,o),R=C.root||l.Root||Zv,M=S.root||c.root||{},O={className:j(z.root,M.className,a),...x};let L=i||"li";return A?(L=!O.component&&!i?"div":L,p==="li"&&(L==="li"?L="div":O.component==="li"&&(O.component="div")),f.jsx(je.Provider,{value:P,children:f.jsxs(Qv,{as:p,className:j(z.container,u),ref:E,ownerState:T,...m,children:[f.jsx(R,{...M,...!so(R)&&{as:L,ownerState:{...T,...M.ownerState}},...O,children:I}),I.pop()]})})):f.jsx(je.Provider,{value:P,children:f.jsxs(R,{...M,as:L,ref:E,...!so(R)&&{ownerState:{...T,...M.ownerState}},...O,children:[I,y&&f.jsx(Yi,{children:y})]})})});function Jv(t){return V("MuiListItemAvatar",t)}const Qw=K("MuiListItemAvatar",["root","alignItemsFlexStart"]),th=t=>{const{alignItems:e,classes:o}=t;return G({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},Jv,o)},eh=k("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})({minWidth:56,flexShrink:0,variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}),Jw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemAvatar"}),{className:n,...s}=r,a=d.useContext(je),i={...r,alignItems:a.alignItems},l=th(i);return f.jsx(eh,{className:j(l.root,n),ownerState:i,ref:o,...s})});function oh(t){return V("MuiListItemIcon",t)}const Aa=K("MuiListItemIcon",["root","alignItemsFlexStart"]),rh=t=>{const{alignItems:e,classes:o}=t;return G({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},oh,o)},nh=k("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})(W(({theme:t})=>({minWidth:56,color:(t.vars||t).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),t1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemIcon"}),{className:n,...s}=r,a=d.useContext(je),i={...r,alignItems:a.alignItems},l=rh(i);return f.jsx(nh,{className:j(l.root,n),ownerState:i,ref:o,...s})});function sh(t){return V("MuiListItemText",t)}const Ho=K("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),ah=t=>{const{classes:e,inset:o,primary:r,secondary:n,dense:s}=t;return G({root:["root",o&&"inset",s&&"dense",r&&n&&"multiline"],primary:["primary"],secondary:["secondary"]},sh,e)},ih=k("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Ho.primary}`]:e.primary},{[`& .${Ho.secondary}`]:e.secondary},e.root,o.inset&&e.inset,o.primary&&o.secondary&&e.multiline,o.dense&&e.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${nn.root}:where(& .${Ho.primary})`]:{display:"block"},[`.${nn.root}:where(& .${Ho.secondary})`]:{display:"block"},variants:[{props:({ownerState:t})=>t.primary&&t.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:56}}]}),e1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemText"}),{children:n,className:s,disableTypography:a=!1,inset:i=!1,primary:l,primaryTypographyProps:c,secondary:p,secondaryTypographyProps:u,slots:m={},slotProps:g={},...b}=r,{dense:v}=d.useContext(je);let h=l??n,y=p;const S={...r,disableTypography:a,inset:i,primary:!!h,secondary:!!y,dense:v},C=ah(S),x={slots:m,slotProps:{primary:c,secondary:u,...g}},[w,P]=Q("root",{className:j(C.root,s),elementType:ih,externalForwardedProps:{...x,...b},ownerState:S,ref:o}),[$,I]=Q("primary",{className:C.primary,elementType:he,externalForwardedProps:x,ownerState:S}),[A,T]=Q("secondary",{className:C.secondary,elementType:he,externalForwardedProps:x,ownerState:S});return h!=null&&h.type!==he&&!a&&(h=f.jsx($,{variant:v?"body2":"body1",component:I!=null&&I.variant?void 0:"span",...I,children:h})),y!=null&&y.type!==he&&!a&&(y=f.jsx(A,{variant:"body2",color:"textSecondary",...T,children:y})),f.jsxs(w,{...P,children:[h,y]})});function On(t,e,o){return t===e?t.firstChild:e&&e.nextElementSibling?e.nextElementSibling:o?null:t.firstChild}function Ba(t,e,o){return t===e?o?t.firstChild:t.lastChild:e&&e.previousElementSibling?e.previousElementSibling:o?null:t.lastChild}function Zi(t,e){if(e===void 0)return!0;let o=t.innerText;return o===void 0&&(o=t.textContent),o=o.trim().toLowerCase(),o.length===0?!1:e.repeating?o[0]===e.keys[0]:o.startsWith(e.keys.join(""))}function or(t,e,o,r,n,s){let a=!1,i=n(t,e,e?o:!1);for(;i;){if(i===t.firstChild){if(a)return!1;a=!0}const l=r?!1:i.disabled||i.getAttribute("aria-disabled")==="true";if(!i.hasAttribute("tabindex")||!Zi(i,s)||l)i=n(t,i,o);else return i.focus(),!0}return!1}const lh=d.forwardRef(function(e,o){const{actions:r,autoFocus:n=!1,autoFocusItem:s=!1,children:a,className:i,disabledItemsFocusable:l=!1,disableListWrap:c=!1,onKeyDown:p,variant:u="selectedMenu",...m}=e,g=d.useRef(null),b=d.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});be(()=>{n&&g.current.focus()},[n]),d.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(C,{direction:x})=>{const w=!g.current.style.width;if(C.clientHeight{const x=g.current,w=C.key;if(C.ctrlKey||C.metaKey||C.altKey){p&&p(C);return}const $=te(x).activeElement;if(w==="ArrowDown")C.preventDefault(),or(x,$,c,l,On);else if(w==="ArrowUp")C.preventDefault(),or(x,$,c,l,Ba);else if(w==="Home")C.preventDefault(),or(x,null,c,l,On);else if(w==="End")C.preventDefault(),or(x,null,c,l,Ba);else if(w.length===1){const I=b.current,A=w.toLowerCase(),T=performance.now();I.keys.length>0&&(T-I.lastTime>500?(I.keys=[],I.repeating=!0,I.previousKeyMatched=!0):I.repeating&&A!==I.keys[0]&&(I.repeating=!1)),I.lastTime=T,I.keys.push(A);const z=$&&!I.repeating&&Zi($,I);I.previousKeyMatched&&(z||or(x,$,!1,l,On,I))?C.preventDefault():I.previousKeyMatched=!1}p&&p(C)},h=qt(g,o);let y=-1;d.Children.forEach(a,(C,x)=>{if(!d.isValidElement(C)){y===x&&(y+=1,y>=a.length&&(y=-1));return}C.props.disabled||(u==="selectedMenu"&&C.props.selected||y===-1)&&(y=x),y===x&&(C.props.disabled||C.props.muiSkipListHighlight||C.type.muiSkipListHighlight)&&(y+=1,y>=a.length&&(y=-1))});const S=d.Children.map(a,(C,x)=>{if(x===y){const w={};return s&&(w.autoFocus=!0),C.props.tabIndex===void 0&&u==="selectedMenu"&&(w.tabIndex=0),d.cloneElement(C,w)}return C});return f.jsx(Fv,{role:"menu",ref:h,className:i,onKeyDown:v,tabIndex:n?0:-1,...m,children:S})});function ch(t){return V("MuiPopover",t)}const o1=K("MuiPopover",["root","paper"]);function Ea(t,e){let o=0;return typeof e=="number"?o=e:e==="center"?o=t.height/2:e==="bottom"&&(o=t.height),o}function Oa(t,e){let o=0;return typeof e=="number"?o=e:e==="center"?o=t.width/2:e==="right"&&(o=t.width),o}function Na(t){return[t.horizontal,t.vertical].map(e=>typeof e=="number"?`${e}px`:e).join(" ")}function Fr(t){return typeof t=="function"?t():t}const ph=t=>{const{classes:e}=t;return G({root:["root"],paper:["paper"]},ch,e)},dh=k(Is,{name:"MuiPopover",slot:"Root",overridesResolver:(t,e)=>e.root})({}),Qi=k(Ue,{name:"MuiPopover",slot:"Paper",overridesResolver:(t,e)=>e.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),uh=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiPopover"}),{action:n,anchorEl:s,anchorOrigin:a={vertical:"top",horizontal:"left"},anchorPosition:i,anchorReference:l="anchorEl",children:c,className:p,container:u,elevation:m=8,marginThreshold:g=16,open:b,PaperProps:v={},slots:h={},slotProps:y={},transformOrigin:S={vertical:"top",horizontal:"left"},TransitionComponent:C,transitionDuration:x="auto",TransitionProps:w={},disableScrollLock:P=!1,...$}=r,I=d.useRef(),A={...r,anchorOrigin:a,anchorReference:l,elevation:m,marginThreshold:g,transformOrigin:S,TransitionComponent:C,transitionDuration:x,TransitionProps:w},T=ph(A),z=d.useCallback(()=>{if(l==="anchorPosition")return i;const st=Fr(s),Z=(st&&st.nodeType===1?st:te(I.current).body).getBoundingClientRect();return{top:Z.top+Ea(Z,a.vertical),left:Z.left+Oa(Z,a.horizontal)}},[s,a.horizontal,a.vertical,i,l]),E=d.useCallback(st=>({vertical:Ea(st,S.vertical),horizontal:Oa(st,S.horizontal)}),[S.horizontal,S.vertical]),R=d.useCallback(st=>{const ft={width:st.offsetWidth,height:st.offsetHeight},Z=E(ft);if(l==="none")return{top:null,left:null,transformOrigin:Na(Z)};const pt=z();let it=pt.top-Z.vertical,ht=pt.left-Z.horizontal;const Mt=it+ft.height,tt=ht+ft.width,ot=me(Fr(s)),dt=ot.innerHeight-g,St=ot.innerWidth-g;if(g!==null&&itdt){const gt=Mt-dt;it-=gt,Z.vertical+=gt}if(g!==null&&htSt){const gt=tt-St;ht-=gt,Z.horizontal+=gt}return{top:`${Math.round(it)}px`,left:`${Math.round(ht)}px`,transformOrigin:Na(Z)}},[s,l,z,E,g]),[M,O]=d.useState(b),L=d.useCallback(()=>{const st=I.current;if(!st)return;const ft=R(st);ft.top!==null&&st.style.setProperty("top",ft.top),ft.left!==null&&(st.style.left=ft.left),st.style.transformOrigin=ft.transformOrigin,O(!0)},[R]);d.useEffect(()=>(P&&window.addEventListener("scroll",L),()=>window.removeEventListener("scroll",L)),[s,P,L]);const F=()=>{L()},D=()=>{O(!1)};d.useEffect(()=>{b&&L()}),d.useImperativeHandle(n,()=>b?{updatePosition:()=>{L()}}:null,[b,L]),d.useEffect(()=>{if(!b)return;const st=$r(()=>{L()}),ft=me(Fr(s));return ft.addEventListener("resize",st),()=>{st.clear(),ft.removeEventListener("resize",st)}},[s,b,L]);let N=x;const J={slots:{transition:C,...h},slotProps:{transition:w,paper:v,...y}},[U,wt]=Q("transition",{elementType:Sr,externalForwardedProps:J,ownerState:A,getSlotProps:st=>({...st,onEntering:(ft,Z)=>{var pt;(pt=st.onEntering)==null||pt.call(st,ft,Z),F()},onExited:ft=>{var Z;(Z=st.onExited)==null||Z.call(st,ft),D()}}),additionalProps:{appear:!0,in:b}});x==="auto"&&!U.muiSupportAuto&&(N=void 0);const vt=u||(s?te(Fr(s)).body:void 0),[mt,{slots:et,slotProps:rt,...Y}]=Q("root",{ref:o,elementType:dh,externalForwardedProps:{...J,...$},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:h.backdrop},slotProps:{backdrop:Go(typeof y.backdrop=="function"?y.backdrop(A):y.backdrop,{invisible:!0})},container:vt,open:b},ownerState:A,className:j(T.root,p)}),[at,ct]=Q("paper",{ref:I,className:T.paper,elementType:Qi,externalForwardedProps:J,shouldForwardComponentProp:!0,additionalProps:{elevation:m,style:M?void 0:{opacity:0}},ownerState:A});return f.jsx(mt,{...Y,...!so(mt)&&{slots:et,slotProps:rt,disableScrollLock:P},children:f.jsx(U,{...wt,timeout:N,children:f.jsx(at,{...ct,children:c})})})});function fh(t){return V("MuiMenu",t)}const r1=K("MuiMenu",["root","paper","list"]),gh={vertical:"top",horizontal:"right"},mh={vertical:"top",horizontal:"left"},bh=t=>{const{classes:e}=t;return G({root:["root"],paper:["paper"],list:["list"]},fh,e)},vh=k(uh,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(t,e)=>e.root})({}),hh=k(Qi,{name:"MuiMenu",slot:"Paper",overridesResolver:(t,e)=>e.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),yh=k(lh,{name:"MuiMenu",slot:"List",overridesResolver:(t,e)=>e.list})({outline:0}),xh=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiMenu"}),{autoFocus:n=!0,children:s,className:a,disableAutoFocusItem:i=!1,MenuListProps:l={},onClose:c,open:p,PaperProps:u={},PopoverClasses:m,transitionDuration:g="auto",TransitionProps:{onEntering:b,...v}={},variant:h="selectedMenu",slots:y={},slotProps:S={},...C}=r,x=Ke(),w={...r,autoFocus:n,disableAutoFocusItem:i,MenuListProps:l,onEntering:b,PaperProps:u,transitionDuration:g,TransitionProps:v,variant:h},P=bh(w),$=n&&!i&&p,I=d.useRef(null),A=(N,J)=>{I.current&&I.current.adjustStyleForScrollbar(N,{direction:x?"rtl":"ltr"}),b&&b(N,J)},T=N=>{N.key==="Tab"&&(N.preventDefault(),c&&c(N,"tabKeyDown"))};let z=-1;d.Children.map(s,(N,J)=>{d.isValidElement(N)&&(N.props.disabled||(h==="selectedMenu"&&N.props.selected||z===-1)&&(z=J))});const E={slots:y,slotProps:{list:l,transition:v,paper:u,...S}},R=Ce({elementType:y.root,externalSlotProps:S.root,ownerState:w,className:[P.root,a]}),[M,O]=Q("paper",{className:P.paper,elementType:hh,externalForwardedProps:E,shouldForwardComponentProp:!0,ownerState:w}),[L,F]=Q("list",{className:j(P.list,l.className),elementType:yh,shouldForwardComponentProp:!0,externalForwardedProps:E,getSlotProps:N=>({...N,onKeyDown:J=>{var U;T(J),(U=N.onKeyDown)==null||U.call(N,J)}}),ownerState:w}),D=typeof E.slotProps.transition=="function"?E.slotProps.transition(w):E.slotProps.transition;return f.jsx(vh,{onClose:c,anchorOrigin:{vertical:"bottom",horizontal:x?"right":"left"},transformOrigin:x?gh:mh,slots:{root:y.root,paper:M,backdrop:y.backdrop,...y.transition&&{transition:y.transition}},slotProps:{root:R,paper:O,backdrop:typeof S.backdrop=="function"?S.backdrop(w):S.backdrop,transition:{...D,onEntering:(...N)=>{var J;A(...N),(J=D==null?void 0:D.onEntering)==null||J.call(D,...N)}}},open:p,ref:o,transitionDuration:g,ownerState:w,...C,classes:m,children:f.jsx(L,{actions:I,autoFocus:n&&(z===-1||i),autoFocusItem:$,variant:h,...F,children:s})})});function Ch(t){return V("MuiMenuItem",t)}const rr=K("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),Sh=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.divider&&e.divider,!o.disableGutters&&e.gutters]},wh=t=>{const{disabled:e,dense:o,divider:r,disableGutters:n,selected:s,classes:a}=t,l=G({root:["root",o&&"dense",e&&"disabled",!n&&"gutters",r&&"divider",s&&"selected"]},Ch,a);return{...a,...l}},Rh=k(ue,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:Sh})(W(({theme:t})=>({...t.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${rr.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${rr.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},[`&.${rr.selected}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity)}},[`&.${rr.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${rr.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},[`& + .${wa.root}`]:{marginTop:t.spacing(1),marginBottom:t.spacing(1)},[`& + .${wa.inset}`]:{marginLeft:52},[`& .${Ho.root}`]:{marginTop:0,marginBottom:0},[`& .${Ho.inset}`]:{paddingLeft:36},[`& .${Aa.root}`]:{minWidth:36},variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>!e.dense,style:{[t.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:e})=>e.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...t.typography.body2,[`& .${Aa.root} svg`]:{fontSize:"1.25rem"}}}]}))),Ph=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiMenuItem"}),{autoFocus:n=!1,component:s="li",dense:a=!1,divider:i=!1,disableGutters:l=!1,focusVisibleClassName:c,role:p="menuitem",tabIndex:u,className:m,...g}=r,b=d.useContext(je),v=d.useMemo(()=>({dense:a||b.dense||!1,disableGutters:l}),[b.dense,a,l]),h=d.useRef(null);be(()=>{n&&h.current&&h.current.focus()},[n]);const y={...r,dense:v.dense,divider:i,disableGutters:l},S=wh(r),C=qt(h,o);let x;return r.disabled||(x=u!==void 0?u:-1),f.jsx(je.Provider,{value:v,children:f.jsx(Rh,{ref:C,role:p,tabIndex:x,component:s,focusVisibleClassName:j(S.focusVisible,c),className:j(S.root,m),...g,ownerState:y,classes:S})})});function $h(t){return V("MuiMobileStepper",t)}const n1=K("MuiMobileStepper",["root","positionBottom","positionTop","positionStatic","dots","dot","dotActive","progress"]),kh=t=>{const{classes:e,position:o}=t,r={root:["root",`position${B(o)}`],dots:["dots"],dot:["dot"],dotActive:["dotActive"],progress:["progress"]};return G(r,$h,e)},Ih=k(Ue,{name:"MuiMobileStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`]]}})(W(({theme:t})=>({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",background:(t.vars||t).palette.background.default,padding:8,variants:[{props:({position:e})=>e==="top"||e==="bottom",style:{position:"fixed",left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper}},{props:{position:"top"},style:{top:0}},{props:{position:"bottom"},style:{bottom:0}}]}))),Th=k("div",{name:"MuiMobileStepper",slot:"Dots",overridesResolver:(t,e)=>e.dots})({variants:[{props:{variant:"dots"},style:{display:"flex",flexDirection:"row"}}]}),Mh=k("div",{name:"MuiMobileStepper",slot:"Dot",shouldForwardProp:t=>Rr(t)&&t!=="dotActive",overridesResolver:(t,e)=>{const{dotActive:o}=t;return[e.dot,o&&e.dotActive]}})(W(({theme:t})=>({variants:[{props:{variant:"dots"},style:{transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),backgroundColor:(t.vars||t).palette.action.disabled,borderRadius:"50%",width:8,height:8,margin:"0 2px"}},{props:{variant:"dots",dotActive:!0},style:{backgroundColor:(t.vars||t).palette.primary.main}}]}))),Lh=k(Lv,{name:"MuiMobileStepper",slot:"Progress",overridesResolver:(t,e)=>e.progress})({variants:[{props:{variant:"progress"},style:{width:"50%"}}]}),s1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiMobileStepper"}),{activeStep:n=0,backButton:s,className:a,LinearProgressProps:i,nextButton:l,position:c="bottom",steps:p,variant:u="dots",slots:m={},slotProps:g={},...b}=r,v={...r,activeStep:n,position:c,variant:u};let h;u==="progress"&&(p===1?h=100:h=Math.ceil(n/(p-1)*100));const y=kh(v),S={slots:m,slotProps:{progress:i,...g}},[C,x]=Q("root",{ref:o,elementType:Ih,shouldForwardComponentProp:!0,className:j(y.root,a),externalForwardedProps:{...S,...b},ownerState:v,additionalProps:{square:!0,elevation:0}}),[w,P]=Q("dots",{className:y.dots,elementType:Th,externalForwardedProps:S,ownerState:v}),[$,I]=Q("dot",{elementType:Mh,externalForwardedProps:S,ownerState:v}),[A,T]=Q("progress",{className:y.progress,elementType:Lh,shouldForwardComponentProp:!0,externalForwardedProps:S,ownerState:v,additionalProps:{value:h,variant:"determinate"}});return f.jsxs(C,{...x,children:[s,u==="text"&&f.jsxs(d.Fragment,{children:[n+1," / ",p]}),u==="dots"&&f.jsx(w,{...P,children:[...new Array(p)].map((z,E)=>f.jsx($,{...I,className:j(y.dot,I.className,E===n&&y.dotActive),dotActive:E===n},E))}),u==="progress"&&f.jsx(A,{...T}),l]})});function Ji(t){return V("MuiNativeSelect",t)}const Ls=K("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),Ah=t=>{const{classes:e,variant:o,disabled:r,multiple:n,open:s,error:a}=t,i={select:["select",o,r&&"disabled",n&&"multiple",a&&"error"],icon:["icon",`icon${B(o)}`,s&&"iconOpen",r&&"disabled"]};return G(i,Ji,e)},tl=k("select")(({theme:t})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${Ls.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(t.vars||t).palette.background.paper},variants:[{props:({ownerState:e})=>e.variant!=="filled"&&e.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(t.vars||t).shape.borderRadius,"&:focus":{borderRadius:(t.vars||t).shape.borderRadius},"&&&":{paddingRight:32}}}]})),Bh=k(tl,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:ae,overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.select,e[o.variant],o.error&&e.error,{[`&.${Ls.multiple}`]:e.multiple}]}})({}),el=k("svg")(({theme:t})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(t.vars||t).palette.action.active,[`&.${Ls.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:({ownerState:e})=>e.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),Eh=k(el,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.variant&&e[`icon${B(o.variant)}`],o.open&&e.iconOpen]}})({}),ol=d.forwardRef(function(e,o){const{className:r,disabled:n,error:s,IconComponent:a,inputRef:i,variant:l="standard",...c}=e,p={...e,disabled:n,variant:l,error:s},u=Ah(p);return f.jsxs(d.Fragment,{children:[f.jsx(Bh,{ownerState:p,className:j(u.select,r),disabled:n,ref:i||o,...c}),e.multiple?null:f.jsx(Eh,{as:a,ownerState:p,className:u.icon})]})}),Oh=t=>{const{classes:e}=t;return G({root:["root"]},Ji,e)},Nh=f.jsx(Rn,{}),zh=d.forwardRef(function(e,o){const r=_({name:"MuiNativeSelect",props:e}),{className:n,children:s,classes:a={},IconComponent:i=$s,input:l=Nh,inputProps:c,variant:p,...u}=r,m=He(),g=lo({props:r,muiFormControl:m,states:["variant"]}),b={...r,classes:a},v=Oh(b),{root:h,...y}=a;return f.jsx(d.Fragment,{children:d.cloneElement(l,{inputComponent:ol,inputProps:{children:s,classes:y,IconComponent:i,variant:g.variant,type:void 0,...c,...l?l.props.inputProps:{}},ref:o,...u,className:j(v.root,l.props.className,n)})})});zh.muiName="Select";function jh(t){const{children:e,defer:o=!1,fallback:r=null}=t,[n,s]=d.useState(!1);return be(()=>{o||s(!0)},[o]),d.useEffect(()=>{o&&s(!0)},[o]),n?e:r}var za;const Dh=k("fieldset",{shouldForwardProp:ae})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),Fh=k("legend",{shouldForwardProp:ae})(W(({theme:t})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:e})=>!e.withLabel,style:{padding:0,lineHeight:"11px",transition:t.transitions.create("width",{duration:150,easing:t.transitions.easing.easeOut})}},{props:({ownerState:e})=>e.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:t.transitions.create("max-width",{duration:50,easing:t.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:e})=>e.withLabel&&e.notched,style:{maxWidth:"100%",transition:t.transitions.create("max-width",{duration:100,easing:t.transitions.easing.easeOut,delay:50})}}]})));function Wh(t){const{children:e,classes:o,className:r,label:n,notched:s,...a}=t,i=n!=null&&n!=="",l={...t,notched:s,withLabel:i};return f.jsx(Dh,{"aria-hidden":!0,className:r,ownerState:l,...a,children:f.jsx(Fh,{ownerState:l,children:i?f.jsx("span",{children:n}):za||(za=f.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"}))})})}const Uh=t=>{const{classes:e}=t,r=G({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},Zu,e);return{...e,...r}},Hh=k(Cn,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:yn})(W(({theme:t})=>{const e=t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(t.vars||t).shape.borderRadius,[`&:hover .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette.text.primary},"@media (hover: none)":{[`&:hover .${Ee.notchedOutline}`]:{borderColor:t.vars?`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:e}},[`&.${Ee.focused} .${Ee.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(t.palette).filter(jt()).map(([o])=>({props:{color:o},style:{[`&.${Ee.focused} .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette[o].main}}})),{props:{},style:{[`&.${Ee.error} .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette.error.main},[`&.${Ee.disabled} .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette.action.disabled}}},{props:({ownerState:o})=>o.startAdornment,style:{paddingLeft:14}},{props:({ownerState:o})=>o.endAdornment,style:{paddingRight:14}},{props:({ownerState:o})=>o.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:o,size:r})=>o.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),Vh=k(Wh,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(t,e)=>e.notchedOutline})(W(({theme:t})=>{const e=t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:t.vars?`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:e}})),Gh=k(Sn,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:xn})(W(({theme:t})=>({padding:"16.5px 14px",...!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:t.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:t.palette.mode==="light"?null:"#fff",caretColor:t.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...t.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[t.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:e})=>e.multiline,style:{padding:0}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}}]}))),As=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiOutlinedInput"}),{components:n={},fullWidth:s=!1,inputComponent:a="input",label:i,multiline:l=!1,notched:c,slots:p={},slotProps:u={},type:m="text",...g}=r,b=Uh(r),v=He(),h=lo({props:r,muiFormControl:v,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),y={...r,color:h.color||"primary",disabled:h.disabled,error:h.error,focused:h.focused,formControl:v,fullWidth:s,hiddenLabel:h.hiddenLabel,multiline:l,size:h.size,type:m},S=p.root??n.Root??Hh,C=p.input??n.Input??Gh,[x,w]=Q("notchedOutline",{elementType:Vh,className:b.notchedOutline,shouldForwardComponentProp:!0,ownerState:y,externalForwardedProps:{slots:p,slotProps:u},additionalProps:{label:i!=null&&i!==""&&h.required?f.jsxs(d.Fragment,{children:[i," ","*"]}):i}});return f.jsx(wn,{slots:{root:S,input:C},slotProps:u,renderSuffix:P=>f.jsx(x,{...w,notched:typeof c<"u"?c:!!(P.startAdornment||P.filled||P.focused)}),fullWidth:s,inputComponent:a,multiline:l,ref:o,type:m,...g,classes:{...b,notchedOutline:null}})});As.muiName="Input";function Kh(t){return V("MuiPagination",t)}const a1=K("MuiPagination",["root","ul","outlined","text"]);function qh(t={}){const{boundaryCount:e=1,componentName:o="usePagination",count:r=1,defaultPage:n=1,disabled:s=!1,hideNextButton:a=!1,hidePrevButton:i=!1,onChange:l,page:c,showFirstButton:p=!1,showLastButton:u=!1,siblingCount:m=1,...g}=t,[b,v]=Te({controlled:c,default:n,name:o,state:"page"}),h=(A,T)=>{c||v(T),l&&l(A,T)},y=(A,T)=>{const z=T-A+1;return Array.from({length:z},(E,R)=>A+R)},S=y(1,Math.min(e,r)),C=y(Math.max(r-e+1,e+1),r),x=Math.max(Math.min(b-m,r-e-m*2-1),e+2),w=Math.min(Math.max(b+m,e+m*2+2),r-e-1),P=[...p?["first"]:[],...i?[]:["previous"],...S,...x>e+2?["start-ellipsis"]:e+1e?[r-e]:[],...C,...a?[]:["next"],...u?["last"]:[]],$=A=>{switch(A){case"first":return 1;case"previous":return b-1;case"next":return b+1;case"last":return r;default:return null}};return{items:P.map(A=>typeof A=="number"?{onClick:T=>{h(T,A)},type:"page",page:A,selected:A===b,disabled:s,"aria-current":A===b?"page":void 0}:{onClick:T=>{h(T,$(A))},type:A,page:$(A),selected:!1,disabled:s||!A.includes("ellipsis")&&(A==="next"||A==="last"?b>=r:b<=1)}),...g}}function Xh(t){return V("MuiPaginationItem",t)}const ye=K("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon","colorPrimary","colorSecondary"]),rl=Qt(f.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),nl=Qt(f.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),_h=Qt(f.jsx("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),Yh=Qt(f.jsx("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),sl=(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${B(o.size)}`],o.variant==="text"&&e[`text${B(o.color)}`],o.variant==="outlined"&&e[`outlined${B(o.color)}`],o.shape==="rounded"&&e.rounded,o.type==="page"&&e.page,(o.type==="start-ellipsis"||o.type==="end-ellipsis")&&e.ellipsis,(o.type==="previous"||o.type==="next")&&e.previousNext,(o.type==="first"||o.type==="last")&&e.firstLast]},Zh=t=>{const{classes:e,color:o,disabled:r,selected:n,size:s,shape:a,type:i,variant:l}=t,c={root:["root",`size${B(s)}`,l,a,o!=="standard"&&`color${B(o)}`,o!=="standard"&&`${l}${B(o)}`,r&&"disabled",n&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[i]],icon:["icon"]};return G(c,Xh,e)},Qh=k("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:sl})(W(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,height:"auto",[`&.${ye.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:{size:"small"},style:{minWidth:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}}]}))),Jh=k(ue,{name:"MuiPaginationItem",slot:"Root",overridesResolver:sl})(W(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,[`&.${ye.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${ye.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},transition:t.transitions.create(["color","background-color"],{duration:t.transitions.duration.short}),"&:hover":{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ye.selected}`]:{backgroundColor:(t.vars||t).palette.action.selected,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${ye.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)},[`&.${ye.disabled}`]:{opacity:1,color:(t.vars||t).palette.action.disabled,backgroundColor:(t.vars||t).palette.action.selected}},variants:[{props:{size:"small"},style:{minWidth:26,height:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,height:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}},{props:{shape:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"outlined"},style:{border:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${ye.selected}`]:{[`&.${ye.disabled}`]:{borderColor:(t.vars||t).palette.action.disabledBackground,color:(t.vars||t).palette.action.disabled}}}},{props:{variant:"text"},style:{[`&.${ye.selected}`]:{[`&.${ye.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}},...Object.entries(t.palette).filter(jt(["dark","contrastText"])).map(([e])=>({props:{variant:"text",color:e},style:{[`&.${ye.selected}`]:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}},[`&.${ye.focusVisible}`]:{backgroundColor:(t.vars||t).palette[e].dark},[`&.${ye.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}})),...Object.entries(t.palette).filter(jt(["light"])).map(([e])=>({props:{variant:"outlined",color:e},style:{[`&.${ye.selected}`]:{color:(t.vars||t).palette[e].main,border:`1px solid ${t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:kt(t.palette[e].main,.5)}`,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.activatedOpacity})`:kt(t.palette[e].main,t.palette.action.activatedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ye.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity)}}}}))]}))),ty=k("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:(t,e)=>e.icon})(W(({theme:t})=>({fontSize:t.typography.pxToRem(20),margin:"0 -8px",variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(22)}}]}))),ey=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiPaginationItem"}),{className:n,color:s="standard",component:a,components:i={},disabled:l=!1,page:c,selected:p=!1,shape:u="circular",size:m="medium",slots:g={},slotProps:b={},type:v="page",variant:h="text",...y}=r,S={...r,color:s,disabled:l,selected:p,shape:u,size:m,type:v,variant:h},C=Ke(),x=Zh(S),w={slots:{previous:g.previous??i.previous,next:g.next??i.next,first:g.first??i.first,last:g.last??i.last},slotProps:b},[P,$]=Q("previous",{elementType:_h,externalForwardedProps:w,ownerState:S}),[I,A]=Q("next",{elementType:Yh,externalForwardedProps:w,ownerState:S}),[T,z]=Q("first",{elementType:rl,externalForwardedProps:w,ownerState:S}),[E,R]=Q("last",{elementType:nl,externalForwardedProps:w,ownerState:S}),M=C?{previous:"next",next:"previous",first:"last",last:"first"}[v]:v,O={previous:P,next:I,first:T,last:E}[M],L={previous:$,next:A,first:z,last:R}[M];return v==="start-ellipsis"||v==="end-ellipsis"?f.jsx(Qh,{ref:o,ownerState:S,className:j(x.root,n),children:"…"}):f.jsxs(Jh,{ref:o,ownerState:S,component:a,disabled:l,className:j(x.root,n),...y,children:[v==="page"&&c,O?f.jsx(ty,{...L,className:x.icon,as:O}):null]})}),oy=t=>{const{classes:e,variant:o}=t;return G({root:["root",o],ul:["ul"]},Kh,e)},ry=k("nav",{name:"MuiPagination",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({}),ny=k("ul",{name:"MuiPagination",slot:"Ul",overridesResolver:(t,e)=>e.ul})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"});function sy(t,e,o){return t==="page"?`${o?"":"Go to "}page ${e}`:`Go to ${t} page`}const i1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiPagination"}),{boundaryCount:n=1,className:s,color:a="standard",count:i=1,defaultPage:l=1,disabled:c=!1,getItemAriaLabel:p=sy,hideNextButton:u=!1,hidePrevButton:m=!1,onChange:g,page:b,renderItem:v=T=>f.jsx(ey,{...T}),shape:h="circular",showFirstButton:y=!1,showLastButton:S=!1,siblingCount:C=1,size:x="medium",variant:w="text",...P}=r,{items:$}=qh({...r,componentName:"Pagination"}),I={...r,boundaryCount:n,color:a,count:i,defaultPage:l,disabled:c,getItemAriaLabel:p,hideNextButton:u,hidePrevButton:m,renderItem:v,shape:h,showFirstButton:y,showLastButton:S,siblingCount:C,size:x,variant:w},A=oy(I);return f.jsx(ry,{"aria-label":"pagination navigation",className:j(A.root,s),ownerState:I,ref:o,...P,children:f.jsx(ny,{className:A.ul,ownerState:I,children:$.map((T,z)=>f.jsx("li",{children:v({...T,color:a,"aria-label":p(T.type,T.page,T.selected),shape:h,size:x,variant:w})},z))})})}),ay=Qt(f.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),iy=Qt(f.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),ly=k("span",{shouldForwardProp:ae})({position:"relative",display:"flex"}),cy=k(ay)({transform:"scale(1)"}),py=k(iy)(W(({theme:t})=>({left:0,position:"absolute",transform:"scale(0)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeIn,duration:t.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.shortest})}}]})));function al(t){const{checked:e=!1,classes:o={},fontSize:r}=t,n={...t,checked:e};return f.jsxs(ly,{className:o.root,ownerState:n,children:[f.jsx(cy,{fontSize:r,className:o.background,ownerState:n}),f.jsx(py,{fontSize:r,className:o.dot,ownerState:n})]})}const il=d.createContext(void 0);function dy(){return d.useContext(il)}function uy(t){return V("MuiRadio",t)}const ja=K("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),fy=t=>{const{classes:e,color:o,size:r}=t,n={root:["root",`color${B(o)}`,r!=="medium"&&`size${B(r)}`]};return{...e,...G(n,uy,e)}},gy=k(ks,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.size!=="medium"&&e[`size${B(o.size)}`],e[`color${B(o.color)}`]]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,[`&.${ja.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,disabled:!1},style:{[`&.${ja.checked}`]:{color:(t.vars||t).palette[e].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function my(t,e){return typeof e=="object"&&e!==null?t===e:String(t)===String(e)}const by=f.jsx(al,{checked:!0}),vy=f.jsx(al,{}),l1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiRadio"}),{checked:n,checkedIcon:s=by,color:a="primary",icon:i=vy,name:l,onChange:c,size:p="medium",className:u,disabled:m,disableRipple:g=!1,slots:b={},slotProps:v={},inputProps:h,...y}=r,S=He();let C=m;S&&typeof C>"u"&&(C=S.disabled),C??=!1;const x={...r,disabled:C,disableRipple:g,color:a,size:p},w=fy(x),P=dy();let $=n;const I=Gn(c,P&&P.onChange);let A=l;P&&(typeof $>"u"&&($=my(P.value,r.value)),typeof A>"u"&&(A=P.name));const T=v.input??h,[z,E]=Q("root",{ref:o,elementType:gy,className:j(w.root,u),shouldForwardComponentProp:!0,externalForwardedProps:{slots:b,slotProps:v,...y},getSlotProps:R=>({...R,onChange:(M,...O)=>{var L;(L=R.onChange)==null||L.call(R,M,...O),I(M,...O)}}),ownerState:x,additionalProps:{type:"radio",icon:d.cloneElement(i,{fontSize:i.props.fontSize??p}),checkedIcon:d.cloneElement(s,{fontSize:s.props.fontSize??p}),disabled:C,name:A,checked:$,slots:b,slotProps:{input:typeof T=="function"?T(x):T}}});return f.jsx(z,{...E,classes:w})});function hy(t){return V("MuiRadioGroup",t)}const c1=K("MuiRadioGroup",["root","row","error"]),yy=t=>{const{classes:e,row:o,error:r}=t;return G({root:["root",o&&"row",r&&"error"]},hy,e)},p1=d.forwardRef(function(e,o){const{actions:r,children:n,className:s,defaultValue:a,name:i,onChange:l,value:c,...p}=e,u=d.useRef(null),m=yy(e),[g,b]=Te({controlled:c,default:a,name:"RadioGroup"});d.useImperativeHandle(r,()=>({focus:()=>{let S=u.current.querySelector("input:not(:disabled):checked");S||(S=u.current.querySelector("input:not(:disabled)")),S&&S.focus()}}),[]);const v=qt(o,u),h=De(i),y=d.useMemo(()=>({name:h,onChange(S){b(S.target.value),l&&l(S,S.target.value)},value:g}),[h,l,b,g]);return f.jsx(il.Provider,{value:y,children:f.jsx(fb,{role:"radiogroup",ref:v,className:j(m.root,s),...p,children:n})})}),xy=Qt(f.jsx("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star"),Cy=Qt(f.jsx("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}),"StarBorder");function Sy(t){return V("MuiRating",t)}const nr=K("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);function wy(t){const e=t.toString().split(".")[1];return e?e.length:0}function Nn(t,e){if(t==null)return t;const o=Math.round(t/e)*e;return Number(o.toFixed(wy(e)))}const Ry=t=>{const{classes:e,size:o,readOnly:r,disabled:n,emptyValueFocused:s,focusVisible:a}=t,i={root:["root",`size${B(o)}`,n&&"disabled",a&&"focusVisible",r&&"readOnly"],label:["label","pristine"],labelEmptyValue:[s&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]};return G(i,Sy,e)},Py=k("span",{name:"MuiRating",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${nr.visuallyHidden}`]:e.visuallyHidden},e.root,e[`size${B(o.size)}`],o.readOnly&&e.readOnly]}})(W(({theme:t})=>({display:"inline-flex",position:"relative",fontSize:t.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",width:"min-content",WebkitTapHighlightColor:"transparent",[`&.${nr.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${nr.focusVisible} .${nr.iconActive}`]:{outline:"1px solid #999"},[`& .${nr.visuallyHidden}`]:vi,variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(30)}},{props:({ownerState:e})=>e.readOnly,style:{pointerEvents:"none"}}]}))),ll=k("label",{name:"MuiRating",slot:"Label",overridesResolver:({ownerState:t},e)=>[e.label,t.emptyValueFocused&&e.labelEmptyValueActive]})({cursor:"inherit",variants:[{props:({ownerState:t})=>t.emptyValueFocused,style:{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"}}]}),$y=k("span",{name:"MuiRating",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.iconEmpty&&e.iconEmpty,o.iconFilled&&e.iconFilled,o.iconHover&&e.iconHover,o.iconFocus&&e.iconFocus,o.iconActive&&e.iconActive]}})(W(({theme:t})=>({display:"flex",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),pointerEvents:"none",variants:[{props:({ownerState:e})=>e.iconActive,style:{transform:"scale(1.2)"}},{props:({ownerState:e})=>e.iconEmpty,style:{color:(t.vars||t).palette.action.disabled}}]}))),ky=k("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:t=>Rr(t)&&t!=="iconActive",overridesResolver:(t,e)=>{const{iconActive:o}=t;return[e.decimal,o&&e.iconActive]}})({position:"relative",variants:[{props:({iconActive:t})=>t,style:{transform:"scale(1.2)"}}]});function Iy(t){const{value:e,...o}=t;return f.jsx("span",{...o})}function Da(t){const{classes:e,disabled:o,emptyIcon:r,focus:n,getLabelText:s,highlightSelectedOnly:a,hover:i,icon:l,IconContainerComponent:c,isActive:p,itemValue:u,labelProps:m,name:g,onBlur:b,onChange:v,onClick:h,onFocus:y,readOnly:S,ownerState:C,ratingValue:x,ratingValueRounded:w,slots:P={},slotProps:$={}}=t,I=a?u===x:u<=x,A=u<=i,T=u<=n,z=u===w,E=`${g}-${De()}`,R={slots:P,slotProps:$},[M,O]=Q("icon",{elementType:$y,className:j(e.icon,I?e.iconFilled:e.iconEmpty,A&&e.iconHover,T&&e.iconFocus,p&&e.iconActive),externalForwardedProps:R,ownerState:{...C,iconEmpty:!I,iconFilled:I,iconHover:A,iconFocus:T,iconActive:p},additionalProps:{value:u},internalForwardedProps:{as:c}}),[L,F]=Q("label",{elementType:ll,externalForwardedProps:R,ownerState:{...C,emptyValueFocused:void 0},additionalProps:{style:m==null?void 0:m.style,htmlFor:E}}),D=f.jsx(M,{...O,children:r&&!I?r:l});return S?f.jsx("span",{...m,children:D}):f.jsxs(d.Fragment,{children:[f.jsxs(L,{...F,children:[D,f.jsx("span",{className:e.visuallyHidden,children:s(u)})]}),f.jsx("input",{className:e.visuallyHidden,onFocus:y,onBlur:b,onChange:v,onClick:h,disabled:o,value:u,id:E,type:"radio",name:g,checked:z})]})}const Ty=f.jsx(xy,{fontSize:"inherit"}),My=f.jsx(Cy,{fontSize:"inherit"});function Ly(t){return`${t||"0"} Star${t!==1?"s":""}`}const d1=d.forwardRef(function(e,o){const r=_({name:"MuiRating",props:e}),{component:n="span",className:s,defaultValue:a=null,disabled:i=!1,emptyIcon:l=My,emptyLabelText:c="Empty",getLabelText:p=Ly,highlightSelectedOnly:u=!1,icon:m=Ty,IconContainerComponent:g=Iy,max:b=5,name:v,onChange:h,onChangeActive:y,onMouseLeave:S,onMouseMove:C,precision:x=1,readOnly:w=!1,size:P="medium",value:$,slots:I={},slotProps:A={},...T}=r,z=De(v),[E,R]=Te({controlled:$,default:a,name:"Rating"}),M=Nn(E,x),O=Ke(),[{hover:L,focus:F},D]=d.useState({hover:-1,focus:-1});let N=M;L!==-1&&(N=L),F!==-1&&(N=F);const[J,U]=d.useState(!1),wt=d.useRef(),vt=qt(wt,o),mt=gt=>{C&&C(gt);const nt=wt.current,{right:Tt,left:At,width:q}=nt.getBoundingClientRect();let lt;O?lt=(Tt-gt.clientX)/q:lt=(gt.clientX-At)/q;let bt=Nn(b*lt+x/2,x);bt=Ro(bt,x,b),D($t=>$t.hover===bt&&$t.focus===bt?$t:{hover:bt,focus:bt}),U(!1),y&&L!==bt&&y(gt,bt)},et=gt=>{S&&S(gt);const nt=-1;D({hover:nt,focus:nt}),y&&L!==nt&&y(gt,nt)},rt=gt=>{let nt=gt.target.value===""?null:parseFloat(gt.target.value);L!==-1&&(nt=L),R(nt),h&&h(gt,nt)},Y=gt=>{gt.clientX===0&>.clientY===0||(D({hover:-1,focus:-1}),R(null),h&&parseFloat(gt.target.value)===M&&h(gt,null))},at=gt=>{Ze(gt.target)&&U(!0);const nt=parseFloat(gt.target.value);D(Tt=>({hover:Tt.hover,focus:nt}))},ct=gt=>{if(L!==-1)return;Ze(gt.target)||U(!1);const nt=-1;D(Tt=>({hover:Tt.hover,focus:nt}))},[st,ft]=d.useState(!1),Z={...r,component:n,defaultValue:a,disabled:i,emptyIcon:l,emptyLabelText:c,emptyValueFocused:st,focusVisible:J,getLabelText:p,icon:m,IconContainerComponent:g,max:b,precision:x,readOnly:w,size:P},pt=Ry(Z),it={slots:I,slotProps:A},[ht,Mt]=Q("root",{ref:vt,className:j(pt.root,s),elementType:Py,externalForwardedProps:{...it,...T,component:n},getSlotProps:gt=>({...gt,onMouseMove:nt=>{var Tt;mt(nt),(Tt=gt.onMouseMove)==null||Tt.call(gt,nt)},onMouseLeave:nt=>{var Tt;et(nt),(Tt=gt.onMouseLeave)==null||Tt.call(gt,nt)}}),ownerState:Z,additionalProps:{role:w?"img":null,"aria-label":w?p(N):null}}),[tt,ot]=Q("label",{className:j(pt.label,pt.labelEmptyValue),elementType:ll,externalForwardedProps:it,ownerState:Z}),[dt,St]=Q("decimal",{className:pt.decimal,elementType:ky,externalForwardedProps:it,ownerState:Z});return f.jsxs(ht,{...Mt,children:[Array.from(new Array(b)).map((gt,nt)=>{const Tt=nt+1,At={classes:pt,disabled:i,emptyIcon:l,focus:F,getLabelText:p,highlightSelectedOnly:u,hover:L,icon:m,IconContainerComponent:g,name:z,onBlur:ct,onChange:rt,onClick:Y,onFocus:at,ratingValue:N,ratingValueRounded:M,readOnly:w,ownerState:Z,slots:I,slotProps:A},q=Tt===Math.ceil(N)&&(L!==-1||F!==-1);if(x<1){const lt=Array.from(new Array(1/x));return d.createElement(dt,{...St,key:Tt,className:j(St.className,q&&pt.iconActive),iconActive:q},lt.map((bt,$t)=>{const It=Nn(Tt-1+($t+1)*x,x);return f.jsx(Da,{...At,isActive:!1,itemValue:It,labelProps:{style:lt.length-1===$t?{}:{width:It===N?`${($t+1)*x*100}%`:"0%",overflow:"hidden",position:"absolute"}}},It)}))}return f.jsx(Da,{...At,isActive:q,itemValue:Tt},Tt)}),!w&&!i&&f.jsxs(tt,{...ot,children:[f.jsx("input",{className:pt.visuallyHidden,value:"",id:`${z}-empty`,type:"radio",name:z,checked:M==null,onFocus:()=>ft(!0),onBlur:()=>ft(!1),onChange:rt}),f.jsx("span",{className:pt.visuallyHidden,children:c})]})]})});function Ay(t){return V("MuiScopedCssBaseline",t)}const u1=K("MuiScopedCssBaseline",["root"]),By=t=>{const{classes:e}=t;return G({root:["root"]},Ay,e)},Ey=k("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>{const e={};return t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([o,r])=>{var s,a;const n=t.getColorSchemeSelector(o);n.startsWith("@")?e[n]={colorScheme:(s=r.palette)==null?void 0:s.mode}:e[`&${n.replace(/\s*&/,"")}`]={colorScheme:(a=r.palette)==null?void 0:a.mode}}),{...Fi(t,!1),...Wi(t),"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:t.typography.fontWeightBold},variants:[{props:{enableColorScheme:!0},style:t.vars?e:{colorScheme:t.palette.mode}}]}})),f1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiScopedCssBaseline"}),{className:n,component:s="div",enableColorScheme:a,...i}=r,l={...r,component:s},c=By(l);return f.jsx(Ey,{as:s,className:j(c.root,n),ref:o,ownerState:l,...i})});function cl(t){return V("MuiSelect",t)}const sr=K("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var Fa;const Oy=k(tl,{name:"MuiSelect",slot:"Select",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`&.${sr.select}`]:e.select},{[`&.${sr.select}`]:e[o.variant]},{[`&.${sr.error}`]:e.error},{[`&.${sr.multiple}`]:e.multiple}]}})({[`&.${sr.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),Ny=k(el,{name:"MuiSelect",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.variant&&e[`icon${B(o.variant)}`],o.open&&e.iconOpen]}})({}),zy=k("input",{shouldForwardProp:t=>Rr(t)&&t!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(t,e)=>e.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function Wa(t,e){return typeof e=="object"&&e!==null?t===e:String(t)===String(e)}function jy(t){return t==null||typeof t=="string"&&!t.trim()}const Dy=t=>{const{classes:e,variant:o,disabled:r,multiple:n,open:s,error:a}=t,i={select:["select",o,r&&"disabled",n&&"multiple",a&&"error"],icon:["icon",`icon${B(o)}`,s&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return G(i,cl,e)},Fy=d.forwardRef(function(e,o){var Gt;const{"aria-describedby":r,"aria-label":n,autoFocus:s,autoWidth:a,children:i,className:l,defaultOpen:c,defaultValue:p,disabled:u,displayEmpty:m,error:g=!1,IconComponent:b,inputRef:v,labelId:h,MenuProps:y={},multiple:S,name:C,onBlur:x,onChange:w,onClose:P,onFocus:$,onOpen:I,open:A,readOnly:T,renderValue:z,required:E,SelectDisplayProps:R={},tabIndex:M,type:O,value:L,variant:F="standard",...D}=e,[N,J]=Te({controlled:L,default:p,name:"Select"}),[U,wt]=Te({controlled:A,default:c,name:"Select"}),vt=d.useRef(null),mt=d.useRef(null),[et,rt]=d.useState(null),{current:Y}=d.useRef(A!=null),[at,ct]=d.useState(),st=qt(o,v),ft=d.useCallback(xt=>{mt.current=xt,xt&&rt(xt)},[]),Z=et==null?void 0:et.parentNode;d.useImperativeHandle(st,()=>({focus:()=>{mt.current.focus()},node:vt.current,value:N}),[N]),d.useEffect(()=>{c&&U&&et&&!Y&&(ct(a?null:Z.clientWidth),mt.current.focus())},[et,a]),d.useEffect(()=>{s&&mt.current.focus()},[s]),d.useEffect(()=>{if(!h)return;const xt=te(mt.current).getElementById(h);if(xt){const Bt=()=>{getSelection().isCollapsed&&mt.current.focus()};return xt.addEventListener("click",Bt),()=>{xt.removeEventListener("click",Bt)}}},[h]);const pt=(xt,Bt)=>{xt?I&&I(Bt):P&&P(Bt),Y||(ct(a?null:Z.clientWidth),wt(xt))},it=xt=>{xt.button===0&&(xt.preventDefault(),mt.current.focus(),pt(!0,xt))},ht=xt=>{pt(!1,xt)},Mt=d.Children.toArray(i),tt=xt=>{const Bt=Mt.find(Xt=>Xt.props.value===xt.target.value);Bt!==void 0&&(J(Bt.props.value),w&&w(xt,Bt))},ot=xt=>Bt=>{let Xt;if(Bt.currentTarget.hasAttribute("tabindex")){if(S){Xt=Array.isArray(N)?N.slice():[];const oe=N.indexOf(xt.props.value);oe===-1?Xt.push(xt.props.value):Xt.splice(oe,1)}else Xt=xt.props.value;if(xt.props.onClick&&xt.props.onClick(Bt),N!==Xt&&(J(Xt),w)){const oe=Bt.nativeEvent||Bt,fe=new oe.constructor(oe.type,oe);Object.defineProperty(fe,"target",{writable:!0,value:{value:Xt,name:C}}),w(fe,xt)}S||pt(!1,Bt)}},dt=xt=>{T||[" ","ArrowUp","ArrowDown","Enter"].includes(xt.key)&&(xt.preventDefault(),pt(!0,xt))},St=et!==null&&U,gt=xt=>{!St&&x&&(Object.defineProperty(xt,"target",{writable:!0,value:{value:N,name:C}}),x(xt))};delete D["aria-invalid"];let nt,Tt;const At=[];let q=!1;(an({value:N})||m)&&(z?nt=z(N):q=!0);const lt=Mt.map(xt=>{if(!d.isValidElement(xt))return null;let Bt;if(S){if(!Array.isArray(N))throw new Error(Oo(2));Bt=N.some(Xt=>Wa(Xt,xt.props.value)),Bt&&q&&At.push(xt.props.children)}else Bt=Wa(N,xt.props.value),Bt&&q&&(Tt=xt.props.children);return d.cloneElement(xt,{"aria-selected":Bt?"true":"false",onClick:ot(xt),onKeyUp:Xt=>{Xt.key===" "&&Xt.preventDefault(),xt.props.onKeyUp&&xt.props.onKeyUp(Xt)},role:"option",selected:Bt,value:void 0,"data-value":xt.props.value})});q&&(S?At.length===0?nt=null:nt=At.reduce((xt,Bt,Xt)=>(xt.push(Bt),Xt{const{classes:e}=t,r=G({root:["root"]},cl,e);return{...e,...r}},Bs={name:"MuiSelect",overridesResolver:(t,e)=>e.root,shouldForwardProp:t=>ae(t)&&t!=="variant",slot:"Root"},Uy=k(Rn,Bs)(""),Hy=k(As,Bs)(""),Vy=k(Ts,Bs)(""),Es=d.forwardRef(function(e,o){const r=_({name:"MuiSelect",props:e}),{autoWidth:n=!1,children:s,classes:a={},className:i,defaultOpen:l=!1,displayEmpty:c=!1,IconComponent:p=$s,id:u,input:m,inputProps:g,label:b,labelId:v,MenuProps:h,multiple:y=!1,native:S=!1,onClose:C,onOpen:x,open:w,renderValue:P,SelectDisplayProps:$,variant:I="outlined",...A}=r,T=S?ol:Fy,z=He(),E=lo({props:r,muiFormControl:z,states:["variant","error"]}),R=E.variant||I,M={...r,variant:R,classes:a},O=Wy(M),{root:L,...F}=O,D=m||{standard:f.jsx(Uy,{ownerState:M}),outlined:f.jsx(Hy,{label:b,ownerState:M}),filled:f.jsx(Vy,{ownerState:M})}[R],N=qt(o,io(D));return f.jsx(d.Fragment,{children:d.cloneElement(D,{inputComponent:T,inputProps:{children:s,error:E.error,IconComponent:p,variant:R,type:void 0,multiple:y,...S?{id:u}:{autoWidth:n,defaultOpen:l,displayEmpty:c,labelId:v,MenuProps:h,onClose:C,onOpen:x,open:w,renderValue:P,SelectDisplayProps:{id:u,...$}},...g,classes:g?wr(F,g.classes):F,...m?m.props.inputProps:{}},...(y&&S||c)&&R==="outlined"?{notched:!0}:{},ref:N,className:j(D.props.className,i,O.root),...!m&&{variant:R},...A})})});Es.muiName="Select";function Gy(t){return V("MuiSkeleton",t)}const g1=K("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]),Ky=t=>{const{classes:e,variant:o,animation:r,hasChildren:n,width:s,height:a}=t;return G({root:["root",o,r,n&&"withChildren",n&&!s&&"fitContent",n&&!a&&"heightAuto"]},Gy,e)},ls=Je` +`,Pv=typeof as!="string"?Oo` + animation: ${as} 3s infinite linear; + `:null,$v=t=>{const{classes:e,variant:o,color:r}=t,n={root:["root",`color${B(r)}`,o],dashed:["dashed",`dashedColor${B(r)}`],bar1:["bar","bar1",`barColor${B(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${B(r)}`,o==="buffer"&&`color${B(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return G(n,Sv,e)},Ts=(t,e)=>t.vars?t.vars.palette.LinearProgress[`${e}Bg`]:t.palette.mode==="light"?Ao(t.palette[e].main,.62):Lo(t.palette[e].main,.5),kv=k("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${B(o.color)}`],e[o.variant]]}})(W(({theme:t})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{backgroundColor:Ts(t,e)}})),{props:({ownerState:e})=>e.color==="inherit"&&e.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),Iv=k("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.dashed,e[`dashedColor${B(o.color)}`]]}})(W(({theme:t})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(t.palette).filter(jt()).map(([e])=>{const o=Ts(t,e);return{props:{color:e},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),Pv||{animation:`${as} 3s infinite linear`}),Tv=k("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar1,e[`barColor${B(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar1Indeterminate,o.variant==="determinate"&&e.bar1Determinate,o.variant==="buffer"&&e.bar1Buffer]}})(W(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main}})),{props:{variant:"determinate"},style:{transition:`transform .${rs}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${rs}s linear`}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:wv||{animation:`${ns} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),Mv=k("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar2,e[`barColor${B(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar2Indeterminate,o.variant==="buffer"&&e.bar2Buffer]}})(W(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{"--LinearProgressBar2-barColor":(t.vars||t).palette[e].main}})),{props:({ownerState:e})=>e.variant!=="buffer"&&e.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:e})=>e.variant!=="buffer"&&e.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,variant:"buffer"},style:{backgroundColor:Ts(t,e),transition:`transform .${rs}s linear`}})),{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:Rv||{animation:`${ss} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),Lv=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiLinearProgress"}),{className:n,color:s="primary",value:a,valueBuffer:i,variant:l="indeterminate",...c}=r,p={...r,color:s,variant:l},u=$v(p),m=Ke(),g={},b={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&a!==void 0){g["aria-valuenow"]=Math.round(a),g["aria-valuemin"]=0,g["aria-valuemax"]=100;let v=a-100;m&&(v=-v),b.bar1.transform=`translateX(${v}%)`}if(l==="buffer"&&i!==void 0){let v=(i||0)-100;m&&(v=-v),b.bar2.transform=`translateX(${v}%)`}return f.jsxs(kv,{className:j(u.root,n),ownerState:p,role:"progressbar",...g,ref:o,...c,children:[l==="buffer"?f.jsx(Iv,{className:u.dashed,ownerState:p}):null,f.jsx(Tv,{className:u.bar1,ownerState:p,style:b.bar1}),l==="determinate"?null:f.jsx(Mv,{className:u.bar2,ownerState:p,style:b.bar2})]})});function Av(t){return V("MuiLink",t)}const Bv=K("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),Ev=({theme:t,ownerState:e})=>{const o=e.color,r=Ar(t,`palette.${o}.main`,!1)||Ar(t,`palette.${o}`,!1)||e.color,n=Ar(t,`palette.${o}.mainChannel`)||Ar(t,`palette.${o}Channel`);return"vars"in t&&n?`rgba(${n} / 0.4)`:kt(r,.4)},Ta={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},Ov=t=>{const{classes:e,component:o,focusVisible:r,underline:n}=t,s={root:["root",`underline${B(n)}`,o==="button"&&"button",r&&"focusVisible"]};return G(s,Av,e)},Nv=k(he,{name:"MuiLink",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`underline${B(o.underline)}`],o.component==="button"&&e.button]}})(W(({theme:t})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:e,ownerState:o})=>e==="always"&&o.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{underline:"always",color:e},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.4)`:kt(t.palette[e].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.4)`:kt(t.palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.secondaryChannel} / 0.4)`:kt(t.palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(t.vars||t).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Bv.focusVisible}`]:{outline:"auto"}}}]}))),Kw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiLink"}),n=le(),{className:s,color:a="primary",component:i="a",onBlur:l,onFocus:c,TypographyClasses:p,underline:u="always",variant:m="inherit",sx:g,...b}=r,[v,h]=d.useState(!1),y=w=>{Ze(w.target)||h(!1),l&&l(w)},S=w=>{Ze(w.target)&&h(!0),c&&c(w)},C={...r,color:a,component:i,focusVisible:v,underline:u,variant:m},x=Ov(C);return f.jsx(Nv,{color:a,className:j(x.root,s),classes:p,component:i,onBlur:y,onFocus:S,ref:o,ownerState:C,variant:m,...b,sx:[...Ta[a]===void 0?[{color:a}]:[],...Array.isArray(g)?g:[g]],style:{...b.style,...u==="always"&&a!=="inherit"&&!Ta[a]&&{"--Link-underlineColor":Ev({theme:n,ownerState:C})}}})}),je=d.createContext({});function zv(t){return V("MuiList",t)}const qw=K("MuiList",["root","padding","dense","subheader"]),jv=t=>{const{classes:e,disablePadding:o,dense:r,subheader:n}=t;return G({root:["root",!o&&"padding",r&&"dense",n&&"subheader"]},zv,e)},Dv=k("ul",{name:"MuiList",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disablePadding&&e.padding,o.dense&&e.dense,o.subheader&&e.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:t})=>!t.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:t})=>t.subheader,style:{paddingTop:0}}]}),Fv=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiList"}),{children:n,className:s,component:a="ul",dense:i=!1,disablePadding:l=!1,subheader:c,...p}=r,u=d.useMemo(()=>({dense:i}),[i]),m={...r,component:a,dense:i,disablePadding:l},g=jv(m);return f.jsx(je.Provider,{value:u,children:f.jsxs(Dv,{as:a,className:j(g.root,s),ref:o,ownerState:m,...p,children:[c,n]})})});function Wv(t){return V("MuiListItem",t)}const Xw=K("MuiListItem",["root","container","dense","alignItemsFlexStart","divider","gutters","padding","secondaryAction"]);function Uv(t){return V("MuiListItemButton",t)}const Fo=K("MuiListItemButton",["root","focusVisible","dense","alignItemsFlexStart","disabled","divider","gutters","selected"]),Hv=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.alignItems==="flex-start"&&e.alignItemsFlexStart,o.divider&&e.divider,!o.disableGutters&&e.gutters]},Vv=t=>{const{alignItems:e,classes:o,dense:r,disabled:n,disableGutters:s,divider:a,selected:i}=t,c=G({root:["root",r&&"dense",!s&&"gutters",a&&"divider",n&&"disabled",e==="flex-start"&&"alignItemsFlexStart",i&&"selected"]},Uv,o);return{...o,...c}},Gv=k(ue,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiListItemButton",slot:"Root",overridesResolver:Hv})(W(({theme:t})=>({display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Fo.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${Fo.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},[`&.${Fo.selected}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity)}},[`&.${Fo.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${Fo.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.dense,style:{paddingTop:4,paddingBottom:4}}]}))),_w=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemButton"}),{alignItems:n="center",autoFocus:s=!1,component:a="div",children:i,dense:l=!1,disableGutters:c=!1,divider:p=!1,focusVisibleClassName:u,selected:m=!1,className:g,...b}=r,v=d.useContext(je),h=d.useMemo(()=>({dense:l||v.dense||!1,alignItems:n,disableGutters:c}),[n,v.dense,l,c]),y=d.useRef(null);be(()=>{s&&y.current&&y.current.focus()},[s]);const S={...r,alignItems:n,dense:h.dense,disableGutters:c,divider:p,selected:m},C=Vv(S),x=qt(y,o);return f.jsx(je.Provider,{value:h,children:f.jsx(Gv,{ref:x,href:b.href||b.to,component:(b.href||b.to)&&a==="div"?"button":a,focusVisibleClassName:j(C.focusVisible,u),ownerState:S,className:j(C.root,g),...b,classes:C,children:i})})});function Kv(t){return V("MuiListItemSecondaryAction",t)}const Yw=K("MuiListItemSecondaryAction",["root","disableGutters"]),qv=t=>{const{disableGutters:e,classes:o}=t;return G({root:["root",e&&"disableGutters"]},Kv,o)},Xv=k("div",{name:"MuiListItemSecondaryAction",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.disableGutters&&e.disableGutters]}})({position:"absolute",right:16,top:"50%",transform:"translateY(-50%)",variants:[{props:({ownerState:t})=>t.disableGutters,style:{right:0}}]}),_i=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemSecondaryAction"}),{className:n,...s}=r,a=d.useContext(je),i={...r,disableGutters:a.disableGutters},l=qv(i);return f.jsx(Xv,{className:j(l.root,n),ownerState:i,ref:o,...s})});_i.muiName="ListItemSecondaryAction";const _v=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.alignItems==="flex-start"&&e.alignItemsFlexStart,o.divider&&e.divider,!o.disableGutters&&e.gutters,!o.disablePadding&&e.padding,o.hasSecondaryAction&&e.secondaryAction]},Yv=t=>{const{alignItems:e,classes:o,dense:r,disableGutters:n,disablePadding:s,divider:a,hasSecondaryAction:i}=t;return G({root:["root",r&&"dense",!n&&"gutters",!s&&"padding",a&&"divider",e==="flex-start"&&"alignItemsFlexStart",i&&"secondaryAction"],container:["container"]},Wv,o)},Zv=k("div",{name:"MuiListItem",slot:"Root",overridesResolver:_v})(W(({theme:t})=>({display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>!e.disablePadding&&e.dense,style:{paddingTop:4,paddingBottom:4}},{props:({ownerState:e})=>!e.disablePadding&&!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>!e.disablePadding&&!!e.secondaryAction,style:{paddingRight:48}},{props:({ownerState:e})=>!!e.secondaryAction,style:{[`& > .${Fo.root}`]:{paddingRight:48}}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>e.button,style:{transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}}},{props:({ownerState:e})=>e.hasSecondaryAction,style:{paddingRight:48}}]}))),Qv=k("li",{name:"MuiListItem",slot:"Container",overridesResolver:(t,e)=>e.container})({position:"relative"}),Zw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItem"}),{alignItems:n="center",children:s,className:a,component:i,components:l={},componentsProps:c={},ContainerComponent:p="li",ContainerProps:{className:u,...m}={},dense:g=!1,disableGutters:b=!1,disablePadding:v=!1,divider:h=!1,secondaryAction:y,slotProps:S={},slots:C={},...x}=r,w=d.useContext(je),P=d.useMemo(()=>({dense:g||w.dense||!1,alignItems:n,disableGutters:b}),[n,w.dense,g,b]),$=d.useRef(null),I=d.Children.toArray(s),A=I.length&&ho(I[I.length-1],["ListItemSecondaryAction"]),T={...r,alignItems:n,dense:P.dense,disableGutters:b,disablePadding:v,divider:h,hasSecondaryAction:A},z=Yv(T),E=qt($,o),R=C.root||l.Root||Zv,M=S.root||c.root||{},O={className:j(z.root,M.className,a),...x};let L=i||"li";return A?(L=!O.component&&!i?"div":L,p==="li"&&(L==="li"?L="div":O.component==="li"&&(O.component="div")),f.jsx(je.Provider,{value:P,children:f.jsxs(Qv,{as:p,className:j(z.container,u),ref:E,ownerState:T,...m,children:[f.jsx(R,{...M,...!so(R)&&{as:L,ownerState:{...T,...M.ownerState}},...O,children:I}),I.pop()]})})):f.jsx(je.Provider,{value:P,children:f.jsxs(R,{...M,as:L,ref:E,...!so(R)&&{ownerState:{...T,...M.ownerState}},...O,children:[I,y&&f.jsx(_i,{children:y})]})})});function Jv(t){return V("MuiListItemAvatar",t)}const Qw=K("MuiListItemAvatar",["root","alignItemsFlexStart"]),th=t=>{const{alignItems:e,classes:o}=t;return G({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},Jv,o)},eh=k("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})({minWidth:56,flexShrink:0,variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}),Jw=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemAvatar"}),{className:n,...s}=r,a=d.useContext(je),i={...r,alignItems:a.alignItems},l=th(i);return f.jsx(eh,{className:j(l.root,n),ownerState:i,ref:o,...s})});function oh(t){return V("MuiListItemIcon",t)}const Ma=K("MuiListItemIcon",["root","alignItemsFlexStart"]),rh=t=>{const{alignItems:e,classes:o}=t;return G({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},oh,o)},nh=k("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})(W(({theme:t})=>({minWidth:56,color:(t.vars||t).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),t1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemIcon"}),{className:n,...s}=r,a=d.useContext(je),i={...r,alignItems:a.alignItems},l=rh(i);return f.jsx(nh,{className:j(l.root,n),ownerState:i,ref:o,...s})});function sh(t){return V("MuiListItemText",t)}const Uo=K("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),ah=t=>{const{classes:e,inset:o,primary:r,secondary:n,dense:s}=t;return G({root:["root",o&&"inset",s&&"dense",r&&n&&"multiline"],primary:["primary"],secondary:["secondary"]},sh,e)},ih=k("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Uo.primary}`]:e.primary},{[`& .${Uo.secondary}`]:e.secondary},e.root,o.inset&&e.inset,o.primary&&o.secondary&&e.multiline,o.dense&&e.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${nn.root}:where(& .${Uo.primary})`]:{display:"block"},[`.${nn.root}:where(& .${Uo.secondary})`]:{display:"block"},variants:[{props:({ownerState:t})=>t.primary&&t.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:56}}]}),e1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiListItemText"}),{children:n,className:s,disableTypography:a=!1,inset:i=!1,primary:l,primaryTypographyProps:c,secondary:p,secondaryTypographyProps:u,slots:m={},slotProps:g={},...b}=r,{dense:v}=d.useContext(je);let h=l??n,y=p;const S={...r,disableTypography:a,inset:i,primary:!!h,secondary:!!y,dense:v},C=ah(S),x={slots:m,slotProps:{primary:c,secondary:u,...g}},[w,P]=Q("root",{className:j(C.root,s),elementType:ih,externalForwardedProps:{...x,...b},ownerState:S,ref:o}),[$,I]=Q("primary",{className:C.primary,elementType:he,externalForwardedProps:x,ownerState:S}),[A,T]=Q("secondary",{className:C.secondary,elementType:he,externalForwardedProps:x,ownerState:S});return h!=null&&h.type!==he&&!a&&(h=f.jsx($,{variant:v?"body2":"body1",component:I!=null&&I.variant?void 0:"span",...I,children:h})),y!=null&&y.type!==he&&!a&&(y=f.jsx(A,{variant:"body2",color:"textSecondary",...T,children:y})),f.jsxs(w,{...P,children:[h,y]})});function On(t,e,o){return t===e?t.firstChild:e&&e.nextElementSibling?e.nextElementSibling:o?null:t.firstChild}function La(t,e,o){return t===e?o?t.firstChild:t.lastChild:e&&e.previousElementSibling?e.previousElementSibling:o?null:t.lastChild}function Yi(t,e){if(e===void 0)return!0;let o=t.innerText;return o===void 0&&(o=t.textContent),o=o.trim().toLowerCase(),o.length===0?!1:e.repeating?o[0]===e.keys[0]:o.startsWith(e.keys.join(""))}function er(t,e,o,r,n,s){let a=!1,i=n(t,e,e?o:!1);for(;i;){if(i===t.firstChild){if(a)return!1;a=!0}const l=r?!1:i.disabled||i.getAttribute("aria-disabled")==="true";if(!i.hasAttribute("tabindex")||!Yi(i,s)||l)i=n(t,i,o);else return i.focus(),!0}return!1}const lh=d.forwardRef(function(e,o){const{actions:r,autoFocus:n=!1,autoFocusItem:s=!1,children:a,className:i,disabledItemsFocusable:l=!1,disableListWrap:c=!1,onKeyDown:p,variant:u="selectedMenu",...m}=e,g=d.useRef(null),b=d.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});be(()=>{n&&g.current.focus()},[n]),d.useImperativeHandle(r,()=>({adjustStyleForScrollbar:(C,{direction:x})=>{const w=!g.current.style.width;if(C.clientHeight{const x=g.current,w=C.key;if(C.ctrlKey||C.metaKey||C.altKey){p&&p(C);return}const $=te(x).activeElement;if(w==="ArrowDown")C.preventDefault(),er(x,$,c,l,On);else if(w==="ArrowUp")C.preventDefault(),er(x,$,c,l,La);else if(w==="Home")C.preventDefault(),er(x,null,c,l,On);else if(w==="End")C.preventDefault(),er(x,null,c,l,La);else if(w.length===1){const I=b.current,A=w.toLowerCase(),T=performance.now();I.keys.length>0&&(T-I.lastTime>500?(I.keys=[],I.repeating=!0,I.previousKeyMatched=!0):I.repeating&&A!==I.keys[0]&&(I.repeating=!1)),I.lastTime=T,I.keys.push(A);const z=$&&!I.repeating&&Yi($,I);I.previousKeyMatched&&(z||er(x,$,!1,l,On,I))?C.preventDefault():I.previousKeyMatched=!1}p&&p(C)},h=qt(g,o);let y=-1;d.Children.forEach(a,(C,x)=>{if(!d.isValidElement(C)){y===x&&(y+=1,y>=a.length&&(y=-1));return}C.props.disabled||(u==="selectedMenu"&&C.props.selected||y===-1)&&(y=x),y===x&&(C.props.disabled||C.props.muiSkipListHighlight||C.type.muiSkipListHighlight)&&(y+=1,y>=a.length&&(y=-1))});const S=d.Children.map(a,(C,x)=>{if(x===y){const w={};return s&&(w.autoFocus=!0),C.props.tabIndex===void 0&&u==="selectedMenu"&&(w.tabIndex=0),d.cloneElement(C,w)}return C});return f.jsx(Fv,{role:"menu",ref:h,className:i,onKeyDown:v,tabIndex:n?0:-1,...m,children:S})});function ch(t){return V("MuiPopover",t)}const o1=K("MuiPopover",["root","paper"]);function Aa(t,e){let o=0;return typeof e=="number"?o=e:e==="center"?o=t.height/2:e==="bottom"&&(o=t.height),o}function Ba(t,e){let o=0;return typeof e=="number"?o=e:e==="center"?o=t.width/2:e==="right"&&(o=t.width),o}function Ea(t){return[t.horizontal,t.vertical].map(e=>typeof e=="number"?`${e}px`:e).join(" ")}function Dr(t){return typeof t=="function"?t():t}const ph=t=>{const{classes:e}=t;return G({root:["root"],paper:["paper"]},ch,e)},dh=k(ks,{name:"MuiPopover",slot:"Root",overridesResolver:(t,e)=>e.root})({}),Zi=k(Ue,{name:"MuiPopover",slot:"Paper",overridesResolver:(t,e)=>e.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),uh=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiPopover"}),{action:n,anchorEl:s,anchorOrigin:a={vertical:"top",horizontal:"left"},anchorPosition:i,anchorReference:l="anchorEl",children:c,className:p,container:u,elevation:m=8,marginThreshold:g=16,open:b,PaperProps:v={},slots:h={},slotProps:y={},transformOrigin:S={vertical:"top",horizontal:"left"},TransitionComponent:C,transitionDuration:x="auto",TransitionProps:w={},disableScrollLock:P=!1,...$}=r,I=d.useRef(),A={...r,anchorOrigin:a,anchorReference:l,elevation:m,marginThreshold:g,transformOrigin:S,TransitionComponent:C,transitionDuration:x,TransitionProps:w},T=ph(A),z=d.useCallback(()=>{if(l==="anchorPosition")return i;const st=Dr(s),Z=(st&&st.nodeType===1?st:te(I.current).body).getBoundingClientRect();return{top:Z.top+Aa(Z,a.vertical),left:Z.left+Ba(Z,a.horizontal)}},[s,a.horizontal,a.vertical,i,l]),E=d.useCallback(st=>({vertical:Aa(st,S.vertical),horizontal:Ba(st,S.horizontal)}),[S.horizontal,S.vertical]),R=d.useCallback(st=>{const ft={width:st.offsetWidth,height:st.offsetHeight},Z=E(ft);if(l==="none")return{top:null,left:null,transformOrigin:Ea(Z)};const pt=z();let it=pt.top-Z.vertical,ht=pt.left-Z.horizontal;const Mt=it+ft.height,tt=ht+ft.width,ot=me(Dr(s)),dt=ot.innerHeight-g,St=ot.innerWidth-g;if(g!==null&&itdt){const gt=Mt-dt;it-=gt,Z.vertical+=gt}if(g!==null&&htSt){const gt=tt-St;ht-=gt,Z.horizontal+=gt}return{top:`${Math.round(it)}px`,left:`${Math.round(ht)}px`,transformOrigin:Ea(Z)}},[s,l,z,E,g]),[M,O]=d.useState(b),L=d.useCallback(()=>{const st=I.current;if(!st)return;const ft=R(st);ft.top!==null&&st.style.setProperty("top",ft.top),ft.left!==null&&(st.style.left=ft.left),st.style.transformOrigin=ft.transformOrigin,O(!0)},[R]);d.useEffect(()=>(P&&window.addEventListener("scroll",L),()=>window.removeEventListener("scroll",L)),[s,P,L]);const F=()=>{L()},D=()=>{O(!1)};d.useEffect(()=>{b&&L()}),d.useImperativeHandle(n,()=>b?{updatePosition:()=>{L()}}:null,[b,L]),d.useEffect(()=>{if(!b)return;const st=Pr(()=>{L()}),ft=me(Dr(s));return ft.addEventListener("resize",st),()=>{st.clear(),ft.removeEventListener("resize",st)}},[s,b,L]);let N=x;const J={slots:{transition:C,...h},slotProps:{transition:w,paper:v,...y}},[U,wt]=Q("transition",{elementType:Cr,externalForwardedProps:J,ownerState:A,getSlotProps:st=>({...st,onEntering:(ft,Z)=>{var pt;(pt=st.onEntering)==null||pt.call(st,ft,Z),F()},onExited:ft=>{var Z;(Z=st.onExited)==null||Z.call(st,ft),D()}}),additionalProps:{appear:!0,in:b}});x==="auto"&&!U.muiSupportAuto&&(N=void 0);const vt=u||(s?te(Dr(s)).body:void 0),[mt,{slots:et,slotProps:rt,...Y}]=Q("root",{ref:o,elementType:dh,externalForwardedProps:{...J,...$},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:h.backdrop},slotProps:{backdrop:Vo(typeof y.backdrop=="function"?y.backdrop(A):y.backdrop,{invisible:!0})},container:vt,open:b},ownerState:A,className:j(T.root,p)}),[at,ct]=Q("paper",{ref:I,className:T.paper,elementType:Zi,externalForwardedProps:J,shouldForwardComponentProp:!0,additionalProps:{elevation:m,style:M?void 0:{opacity:0}},ownerState:A});return f.jsx(mt,{...Y,...!so(mt)&&{slots:et,slotProps:rt,disableScrollLock:P},children:f.jsx(U,{...wt,timeout:N,children:f.jsx(at,{...ct,children:c})})})});function fh(t){return V("MuiMenu",t)}const r1=K("MuiMenu",["root","paper","list"]),gh={vertical:"top",horizontal:"right"},mh={vertical:"top",horizontal:"left"},bh=t=>{const{classes:e}=t;return G({root:["root"],paper:["paper"],list:["list"]},fh,e)},vh=k(uh,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(t,e)=>e.root})({}),hh=k(Zi,{name:"MuiMenu",slot:"Paper",overridesResolver:(t,e)=>e.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),yh=k(lh,{name:"MuiMenu",slot:"List",overridesResolver:(t,e)=>e.list})({outline:0}),xh=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiMenu"}),{autoFocus:n=!0,children:s,className:a,disableAutoFocusItem:i=!1,MenuListProps:l={},onClose:c,open:p,PaperProps:u={},PopoverClasses:m,transitionDuration:g="auto",TransitionProps:{onEntering:b,...v}={},variant:h="selectedMenu",slots:y={},slotProps:S={},...C}=r,x=Ke(),w={...r,autoFocus:n,disableAutoFocusItem:i,MenuListProps:l,onEntering:b,PaperProps:u,transitionDuration:g,TransitionProps:v,variant:h},P=bh(w),$=n&&!i&&p,I=d.useRef(null),A=(N,J)=>{I.current&&I.current.adjustStyleForScrollbar(N,{direction:x?"rtl":"ltr"}),b&&b(N,J)},T=N=>{N.key==="Tab"&&(N.preventDefault(),c&&c(N,"tabKeyDown"))};let z=-1;d.Children.map(s,(N,J)=>{d.isValidElement(N)&&(N.props.disabled||(h==="selectedMenu"&&N.props.selected||z===-1)&&(z=J))});const E={slots:y,slotProps:{list:l,transition:v,paper:u,...S}},R=Ce({elementType:y.root,externalSlotProps:S.root,ownerState:w,className:[P.root,a]}),[M,O]=Q("paper",{className:P.paper,elementType:hh,externalForwardedProps:E,shouldForwardComponentProp:!0,ownerState:w}),[L,F]=Q("list",{className:j(P.list,l.className),elementType:yh,shouldForwardComponentProp:!0,externalForwardedProps:E,getSlotProps:N=>({...N,onKeyDown:J=>{var U;T(J),(U=N.onKeyDown)==null||U.call(N,J)}}),ownerState:w}),D=typeof E.slotProps.transition=="function"?E.slotProps.transition(w):E.slotProps.transition;return f.jsx(vh,{onClose:c,anchorOrigin:{vertical:"bottom",horizontal:x?"right":"left"},transformOrigin:x?gh:mh,slots:{root:y.root,paper:M,backdrop:y.backdrop,...y.transition&&{transition:y.transition}},slotProps:{root:R,paper:O,backdrop:typeof S.backdrop=="function"?S.backdrop(w):S.backdrop,transition:{...D,onEntering:(...N)=>{var J;A(...N),(J=D==null?void 0:D.onEntering)==null||J.call(D,...N)}}},open:p,ref:o,transitionDuration:g,ownerState:w,...C,classes:m,children:f.jsx(L,{actions:I,autoFocus:n&&(z===-1||i),autoFocusItem:$,variant:h,...F,children:s})})});function Ch(t){return V("MuiMenuItem",t)}const or=K("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),Sh=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.divider&&e.divider,!o.disableGutters&&e.gutters]},wh=t=>{const{disabled:e,dense:o,divider:r,disableGutters:n,selected:s,classes:a}=t,l=G({root:["root",o&&"dense",e&&"disabled",!n&&"gutters",r&&"divider",s&&"selected"]},Ch,a);return{...a,...l}},Rh=k(ue,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:Sh})(W(({theme:t})=>({...t.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${or.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${or.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},[`&.${or.selected}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity)}},[`&.${or.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${or.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},[`& + .${Ca.root}`]:{marginTop:t.spacing(1),marginBottom:t.spacing(1)},[`& + .${Ca.inset}`]:{marginLeft:52},[`& .${Uo.root}`]:{marginTop:0,marginBottom:0},[`& .${Uo.inset}`]:{paddingLeft:36},[`& .${Ma.root}`]:{minWidth:36},variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>!e.dense,style:{[t.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:e})=>e.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...t.typography.body2,[`& .${Ma.root} svg`]:{fontSize:"1.25rem"}}}]}))),Ph=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiMenuItem"}),{autoFocus:n=!1,component:s="li",dense:a=!1,divider:i=!1,disableGutters:l=!1,focusVisibleClassName:c,role:p="menuitem",tabIndex:u,className:m,...g}=r,b=d.useContext(je),v=d.useMemo(()=>({dense:a||b.dense||!1,disableGutters:l}),[b.dense,a,l]),h=d.useRef(null);be(()=>{n&&h.current&&h.current.focus()},[n]);const y={...r,dense:v.dense,divider:i,disableGutters:l},S=wh(r),C=qt(h,o);let x;return r.disabled||(x=u!==void 0?u:-1),f.jsx(je.Provider,{value:v,children:f.jsx(Rh,{ref:C,role:p,tabIndex:x,component:s,focusVisibleClassName:j(S.focusVisible,c),className:j(S.root,m),...g,ownerState:y,classes:S})})});function $h(t){return V("MuiMobileStepper",t)}const n1=K("MuiMobileStepper",["root","positionBottom","positionTop","positionStatic","dots","dot","dotActive","progress"]),kh=t=>{const{classes:e,position:o}=t,r={root:["root",`position${B(o)}`],dots:["dots"],dot:["dot"],dotActive:["dotActive"],progress:["progress"]};return G(r,$h,e)},Ih=k(Ue,{name:"MuiMobileStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${B(o.position)}`]]}})(W(({theme:t})=>({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",background:(t.vars||t).palette.background.default,padding:8,variants:[{props:({position:e})=>e==="top"||e==="bottom",style:{position:"fixed",left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper}},{props:{position:"top"},style:{top:0}},{props:{position:"bottom"},style:{bottom:0}}]}))),Th=k("div",{name:"MuiMobileStepper",slot:"Dots",overridesResolver:(t,e)=>e.dots})({variants:[{props:{variant:"dots"},style:{display:"flex",flexDirection:"row"}}]}),Mh=k("div",{name:"MuiMobileStepper",slot:"Dot",shouldForwardProp:t=>wr(t)&&t!=="dotActive",overridesResolver:(t,e)=>{const{dotActive:o}=t;return[e.dot,o&&e.dotActive]}})(W(({theme:t})=>({variants:[{props:{variant:"dots"},style:{transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),backgroundColor:(t.vars||t).palette.action.disabled,borderRadius:"50%",width:8,height:8,margin:"0 2px"}},{props:{variant:"dots",dotActive:!0},style:{backgroundColor:(t.vars||t).palette.primary.main}}]}))),Lh=k(Lv,{name:"MuiMobileStepper",slot:"Progress",overridesResolver:(t,e)=>e.progress})({variants:[{props:{variant:"progress"},style:{width:"50%"}}]}),s1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiMobileStepper"}),{activeStep:n=0,backButton:s,className:a,LinearProgressProps:i,nextButton:l,position:c="bottom",steps:p,variant:u="dots",slots:m={},slotProps:g={},...b}=r,v={...r,activeStep:n,position:c,variant:u};let h;u==="progress"&&(p===1?h=100:h=Math.ceil(n/(p-1)*100));const y=kh(v),S={slots:m,slotProps:{progress:i,...g}},[C,x]=Q("root",{ref:o,elementType:Ih,shouldForwardComponentProp:!0,className:j(y.root,a),externalForwardedProps:{...S,...b},ownerState:v,additionalProps:{square:!0,elevation:0}}),[w,P]=Q("dots",{className:y.dots,elementType:Th,externalForwardedProps:S,ownerState:v}),[$,I]=Q("dot",{elementType:Mh,externalForwardedProps:S,ownerState:v}),[A,T]=Q("progress",{className:y.progress,elementType:Lh,shouldForwardComponentProp:!0,externalForwardedProps:S,ownerState:v,additionalProps:{value:h,variant:"determinate"}});return f.jsxs(C,{...x,children:[s,u==="text"&&f.jsxs(d.Fragment,{children:[n+1," / ",p]}),u==="dots"&&f.jsx(w,{...P,children:[...new Array(p)].map((z,E)=>f.jsx($,{...I,className:j(y.dot,I.className,E===n&&y.dotActive),dotActive:E===n},E))}),u==="progress"&&f.jsx(A,{...T}),l]})});function Qi(t){return V("MuiNativeSelect",t)}const Ms=K("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),Ah=t=>{const{classes:e,variant:o,disabled:r,multiple:n,open:s,error:a}=t,i={select:["select",o,r&&"disabled",n&&"multiple",a&&"error"],icon:["icon",`icon${B(o)}`,s&&"iconOpen",r&&"disabled"]};return G(i,Qi,e)},Ji=k("select")(({theme:t})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${Ms.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(t.vars||t).palette.background.paper},variants:[{props:({ownerState:e})=>e.variant!=="filled"&&e.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(t.vars||t).shape.borderRadius,"&:focus":{borderRadius:(t.vars||t).shape.borderRadius},"&&&":{paddingRight:32}}}]})),Bh=k(Ji,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:ae,overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.select,e[o.variant],o.error&&e.error,{[`&.${Ms.multiple}`]:e.multiple}]}})({}),tl=k("svg")(({theme:t})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(t.vars||t).palette.action.active,[`&.${Ms.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:({ownerState:e})=>e.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),Eh=k(tl,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.variant&&e[`icon${B(o.variant)}`],o.open&&e.iconOpen]}})({}),el=d.forwardRef(function(e,o){const{className:r,disabled:n,error:s,IconComponent:a,inputRef:i,variant:l="standard",...c}=e,p={...e,disabled:n,variant:l,error:s},u=Ah(p);return f.jsxs(d.Fragment,{children:[f.jsx(Bh,{ownerState:p,className:j(u.select,r),disabled:n,ref:i||o,...c}),e.multiple?null:f.jsx(Eh,{as:a,ownerState:p,className:u.icon})]})}),Oh=t=>{const{classes:e}=t;return G({root:["root"]},Qi,e)},Nh=f.jsx(Rn,{}),zh=d.forwardRef(function(e,o){const r=_({name:"MuiNativeSelect",props:e}),{className:n,children:s,classes:a={},IconComponent:i=Ps,input:l=Nh,inputProps:c,variant:p,...u}=r,m=He(),g=lo({props:r,muiFormControl:m,states:["variant"]}),b={...r,classes:a},v=Oh(b),{root:h,...y}=a;return f.jsx(d.Fragment,{children:d.cloneElement(l,{inputComponent:el,inputProps:{children:s,classes:y,IconComponent:i,variant:g.variant,type:void 0,...c,...l?l.props.inputProps:{}},ref:o,...u,className:j(v.root,l.props.className,n)})})});zh.muiName="Select";function jh(t){const{children:e,defer:o=!1,fallback:r=null}=t,[n,s]=d.useState(!1);return be(()=>{o||s(!0)},[o]),d.useEffect(()=>{o&&s(!0)},[o]),n?e:r}var Oa;const Dh=k("fieldset",{shouldForwardProp:ae})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),Fh=k("legend",{shouldForwardProp:ae})(W(({theme:t})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:e})=>!e.withLabel,style:{padding:0,lineHeight:"11px",transition:t.transitions.create("width",{duration:150,easing:t.transitions.easing.easeOut})}},{props:({ownerState:e})=>e.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:t.transitions.create("max-width",{duration:50,easing:t.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:e})=>e.withLabel&&e.notched,style:{maxWidth:"100%",transition:t.transitions.create("max-width",{duration:100,easing:t.transitions.easing.easeOut,delay:50})}}]})));function Wh(t){const{children:e,classes:o,className:r,label:n,notched:s,...a}=t,i=n!=null&&n!=="",l={...t,notched:s,withLabel:i};return f.jsx(Dh,{"aria-hidden":!0,className:r,ownerState:l,...a,children:f.jsx(Fh,{ownerState:l,children:i?f.jsx("span",{children:n}):Oa||(Oa=f.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"}))})})}const Uh=t=>{const{classes:e}=t,r=G({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},Zu,e);return{...e,...r}},Hh=k(Cn,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:yn})(W(({theme:t})=>{const e=t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(t.vars||t).shape.borderRadius,[`&:hover .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette.text.primary},"@media (hover: none)":{[`&:hover .${Ee.notchedOutline}`]:{borderColor:t.vars?`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:e}},[`&.${Ee.focused} .${Ee.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(t.palette).filter(jt()).map(([o])=>({props:{color:o},style:{[`&.${Ee.focused} .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette[o].main}}})),{props:{},style:{[`&.${Ee.error} .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette.error.main},[`&.${Ee.disabled} .${Ee.notchedOutline}`]:{borderColor:(t.vars||t).palette.action.disabled}}},{props:({ownerState:o})=>o.startAdornment,style:{paddingLeft:14}},{props:({ownerState:o})=>o.endAdornment,style:{paddingRight:14}},{props:({ownerState:o})=>o.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:o,size:r})=>o.multiline&&r==="small",style:{padding:"8.5px 14px"}}]}})),Vh=k(Wh,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(t,e)=>e.notchedOutline})(W(({theme:t})=>{const e=t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:t.vars?`rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:e}})),Gh=k(Sn,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:xn})(W(({theme:t})=>({padding:"16.5px 14px",...!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:t.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:t.palette.mode==="light"?null:"#fff",caretColor:t.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...t.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[t.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:e})=>e.multiline,style:{padding:0}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}}]}))),Ls=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiOutlinedInput"}),{components:n={},fullWidth:s=!1,inputComponent:a="input",label:i,multiline:l=!1,notched:c,slots:p={},slotProps:u={},type:m="text",...g}=r,b=Uh(r),v=He(),h=lo({props:r,muiFormControl:v,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),y={...r,color:h.color||"primary",disabled:h.disabled,error:h.error,focused:h.focused,formControl:v,fullWidth:s,hiddenLabel:h.hiddenLabel,multiline:l,size:h.size,type:m},S=p.root??n.Root??Hh,C=p.input??n.Input??Gh,[x,w]=Q("notchedOutline",{elementType:Vh,className:b.notchedOutline,shouldForwardComponentProp:!0,ownerState:y,externalForwardedProps:{slots:p,slotProps:u},additionalProps:{label:i!=null&&i!==""&&h.required?f.jsxs(d.Fragment,{children:[i," ","*"]}):i}});return f.jsx(wn,{slots:{root:S,input:C},slotProps:u,renderSuffix:P=>f.jsx(x,{...w,notched:typeof c<"u"?c:!!(P.startAdornment||P.filled||P.focused)}),fullWidth:s,inputComponent:a,multiline:l,ref:o,type:m,...g,classes:{...b,notchedOutline:null}})});Ls.muiName="Input";function Kh(t){return V("MuiPagination",t)}const a1=K("MuiPagination",["root","ul","outlined","text"]);function qh(t={}){const{boundaryCount:e=1,componentName:o="usePagination",count:r=1,defaultPage:n=1,disabled:s=!1,hideNextButton:a=!1,hidePrevButton:i=!1,onChange:l,page:c,showFirstButton:p=!1,showLastButton:u=!1,siblingCount:m=1,...g}=t,[b,v]=Te({controlled:c,default:n,name:o,state:"page"}),h=(A,T)=>{c||v(T),l&&l(A,T)},y=(A,T)=>{const z=T-A+1;return Array.from({length:z},(E,R)=>A+R)},S=y(1,Math.min(e,r)),C=y(Math.max(r-e+1,e+1),r),x=Math.max(Math.min(b-m,r-e-m*2-1),e+2),w=Math.min(Math.max(b+m,e+m*2+2),r-e-1),P=[...p?["first"]:[],...i?[]:["previous"],...S,...x>e+2?["start-ellipsis"]:e+1e?[r-e]:[],...C,...a?[]:["next"],...u?["last"]:[]],$=A=>{switch(A){case"first":return 1;case"previous":return b-1;case"next":return b+1;case"last":return r;default:return null}};return{items:P.map(A=>typeof A=="number"?{onClick:T=>{h(T,A)},type:"page",page:A,selected:A===b,disabled:s,"aria-current":A===b?"page":void 0}:{onClick:T=>{h(T,$(A))},type:A,page:$(A),selected:!1,disabled:s||!A.includes("ellipsis")&&(A==="next"||A==="last"?b>=r:b<=1)}),...g}}function Xh(t){return V("MuiPaginationItem",t)}const ye=K("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon","colorPrimary","colorSecondary"]),ol=Qt(f.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),rl=Qt(f.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),_h=Qt(f.jsx("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),Yh=Qt(f.jsx("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),nl=(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${B(o.size)}`],o.variant==="text"&&e[`text${B(o.color)}`],o.variant==="outlined"&&e[`outlined${B(o.color)}`],o.shape==="rounded"&&e.rounded,o.type==="page"&&e.page,(o.type==="start-ellipsis"||o.type==="end-ellipsis")&&e.ellipsis,(o.type==="previous"||o.type==="next")&&e.previousNext,(o.type==="first"||o.type==="last")&&e.firstLast]},Zh=t=>{const{classes:e,color:o,disabled:r,selected:n,size:s,shape:a,type:i,variant:l}=t,c={root:["root",`size${B(s)}`,l,a,o!=="standard"&&`color${B(o)}`,o!=="standard"&&`${l}${B(o)}`,r&&"disabled",n&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[i]],icon:["icon"]};return G(c,Xh,e)},Qh=k("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:nl})(W(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,height:"auto",[`&.${ye.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:{size:"small"},style:{minWidth:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}}]}))),Jh=k(ue,{name:"MuiPaginationItem",slot:"Root",overridesResolver:nl})(W(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,[`&.${ye.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${ye.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},transition:t.transitions.create(["color","background-color"],{duration:t.transitions.duration.short}),"&:hover":{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ye.selected}`]:{backgroundColor:(t.vars||t).palette.action.selected,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${ye.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)},[`&.${ye.disabled}`]:{opacity:1,color:(t.vars||t).palette.action.disabled,backgroundColor:(t.vars||t).palette.action.selected}},variants:[{props:{size:"small"},style:{minWidth:26,height:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,height:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}},{props:{shape:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"outlined"},style:{border:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${ye.selected}`]:{[`&.${ye.disabled}`]:{borderColor:(t.vars||t).palette.action.disabledBackground,color:(t.vars||t).palette.action.disabled}}}},{props:{variant:"text"},style:{[`&.${ye.selected}`]:{[`&.${ye.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}},...Object.entries(t.palette).filter(jt(["dark","contrastText"])).map(([e])=>({props:{variant:"text",color:e},style:{[`&.${ye.selected}`]:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}},[`&.${ye.focusVisible}`]:{backgroundColor:(t.vars||t).palette[e].dark},[`&.${ye.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}})),...Object.entries(t.palette).filter(jt(["light"])).map(([e])=>({props:{variant:"outlined",color:e},style:{[`&.${ye.selected}`]:{color:(t.vars||t).palette[e].main,border:`1px solid ${t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:kt(t.palette[e].main,.5)}`,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.activatedOpacity})`:kt(t.palette[e].main,t.palette.action.activatedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ye.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:kt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity)}}}}))]}))),ty=k("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:(t,e)=>e.icon})(W(({theme:t})=>({fontSize:t.typography.pxToRem(20),margin:"0 -8px",variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(22)}}]}))),ey=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiPaginationItem"}),{className:n,color:s="standard",component:a,components:i={},disabled:l=!1,page:c,selected:p=!1,shape:u="circular",size:m="medium",slots:g={},slotProps:b={},type:v="page",variant:h="text",...y}=r,S={...r,color:s,disabled:l,selected:p,shape:u,size:m,type:v,variant:h},C=Ke(),x=Zh(S),w={slots:{previous:g.previous??i.previous,next:g.next??i.next,first:g.first??i.first,last:g.last??i.last},slotProps:b},[P,$]=Q("previous",{elementType:_h,externalForwardedProps:w,ownerState:S}),[I,A]=Q("next",{elementType:Yh,externalForwardedProps:w,ownerState:S}),[T,z]=Q("first",{elementType:ol,externalForwardedProps:w,ownerState:S}),[E,R]=Q("last",{elementType:rl,externalForwardedProps:w,ownerState:S}),M=C?{previous:"next",next:"previous",first:"last",last:"first"}[v]:v,O={previous:P,next:I,first:T,last:E}[M],L={previous:$,next:A,first:z,last:R}[M];return v==="start-ellipsis"||v==="end-ellipsis"?f.jsx(Qh,{ref:o,ownerState:S,className:j(x.root,n),children:"…"}):f.jsxs(Jh,{ref:o,ownerState:S,component:a,disabled:l,className:j(x.root,n),...y,children:[v==="page"&&c,O?f.jsx(ty,{...L,className:x.icon,as:O}):null]})}),oy=t=>{const{classes:e,variant:o}=t;return G({root:["root",o],ul:["ul"]},Kh,e)},ry=k("nav",{name:"MuiPagination",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({}),ny=k("ul",{name:"MuiPagination",slot:"Ul",overridesResolver:(t,e)=>e.ul})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"});function sy(t,e,o){return t==="page"?`${o?"":"Go to "}page ${e}`:`Go to ${t} page`}const i1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiPagination"}),{boundaryCount:n=1,className:s,color:a="standard",count:i=1,defaultPage:l=1,disabled:c=!1,getItemAriaLabel:p=sy,hideNextButton:u=!1,hidePrevButton:m=!1,onChange:g,page:b,renderItem:v=T=>f.jsx(ey,{...T}),shape:h="circular",showFirstButton:y=!1,showLastButton:S=!1,siblingCount:C=1,size:x="medium",variant:w="text",...P}=r,{items:$}=qh({...r,componentName:"Pagination"}),I={...r,boundaryCount:n,color:a,count:i,defaultPage:l,disabled:c,getItemAriaLabel:p,hideNextButton:u,hidePrevButton:m,renderItem:v,shape:h,showFirstButton:y,showLastButton:S,siblingCount:C,size:x,variant:w},A=oy(I);return f.jsx(ry,{"aria-label":"pagination navigation",className:j(A.root,s),ownerState:I,ref:o,...P,children:f.jsx(ny,{className:A.ul,ownerState:I,children:$.map((T,z)=>f.jsx("li",{children:v({...T,color:a,"aria-label":p(T.type,T.page,T.selected),shape:h,size:x,variant:w})},z))})})}),ay=Qt(f.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),iy=Qt(f.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),ly=k("span",{shouldForwardProp:ae})({position:"relative",display:"flex"}),cy=k(ay)({transform:"scale(1)"}),py=k(iy)(W(({theme:t})=>({left:0,position:"absolute",transform:"scale(0)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeIn,duration:t.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.shortest})}}]})));function sl(t){const{checked:e=!1,classes:o={},fontSize:r}=t,n={...t,checked:e};return f.jsxs(ly,{className:o.root,ownerState:n,children:[f.jsx(cy,{fontSize:r,className:o.background,ownerState:n}),f.jsx(py,{fontSize:r,className:o.dot,ownerState:n})]})}const al=d.createContext(void 0);function dy(){return d.useContext(al)}function uy(t){return V("MuiRadio",t)}const Na=K("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),fy=t=>{const{classes:e,color:o,size:r}=t,n={root:["root",`color${B(o)}`,r!=="medium"&&`size${B(r)}`]};return{...e,...G(n,uy,e)}},gy=k($s,{shouldForwardProp:t=>ae(t)||t==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.size!=="medium"&&e[`size${B(o.size)}`],e[`color${B(o.color)}`]]}})(W(({theme:t})=>({color:(t.vars||t).palette.text.secondary,[`&.${Na.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,disabled:!1},style:{[`&.${Na.checked}`]:{color:(t.vars||t).palette[e].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function my(t,e){return typeof e=="object"&&e!==null?t===e:String(t)===String(e)}const by=f.jsx(sl,{checked:!0}),vy=f.jsx(sl,{}),l1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiRadio"}),{checked:n,checkedIcon:s=by,color:a="primary",icon:i=vy,name:l,onChange:c,size:p="medium",className:u,disabled:m,disableRipple:g=!1,slots:b={},slotProps:v={},inputProps:h,...y}=r,S=He();let C=m;S&&typeof C>"u"&&(C=S.disabled),C??=!1;const x={...r,disabled:C,disableRipple:g,color:a,size:p},w=fy(x),P=dy();let $=n;const I=Vn(c,P&&P.onChange);let A=l;P&&(typeof $>"u"&&($=my(P.value,r.value)),typeof A>"u"&&(A=P.name));const T=v.input??h,[z,E]=Q("root",{ref:o,elementType:gy,className:j(w.root,u),shouldForwardComponentProp:!0,externalForwardedProps:{slots:b,slotProps:v,...y},getSlotProps:R=>({...R,onChange:(M,...O)=>{var L;(L=R.onChange)==null||L.call(R,M,...O),I(M,...O)}}),ownerState:x,additionalProps:{type:"radio",icon:d.cloneElement(i,{fontSize:i.props.fontSize??p}),checkedIcon:d.cloneElement(s,{fontSize:s.props.fontSize??p}),disabled:C,name:A,checked:$,slots:b,slotProps:{input:typeof T=="function"?T(x):T}}});return f.jsx(z,{...E,classes:w})});function hy(t){return V("MuiRadioGroup",t)}const c1=K("MuiRadioGroup",["root","row","error"]),yy=t=>{const{classes:e,row:o,error:r}=t;return G({root:["root",o&&"row",r&&"error"]},hy,e)},p1=d.forwardRef(function(e,o){const{actions:r,children:n,className:s,defaultValue:a,name:i,onChange:l,value:c,...p}=e,u=d.useRef(null),m=yy(e),[g,b]=Te({controlled:c,default:a,name:"RadioGroup"});d.useImperativeHandle(r,()=>({focus:()=>{let S=u.current.querySelector("input:not(:disabled):checked");S||(S=u.current.querySelector("input:not(:disabled)")),S&&S.focus()}}),[]);const v=qt(o,u),h=De(i),y=d.useMemo(()=>({name:h,onChange(S){b(S.target.value),l&&l(S,S.target.value)},value:g}),[h,l,b,g]);return f.jsx(al.Provider,{value:y,children:f.jsx(fb,{role:"radiogroup",ref:v,className:j(m.root,s),...p,children:n})})}),xy=Qt(f.jsx("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star"),Cy=Qt(f.jsx("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}),"StarBorder");function Sy(t){return V("MuiRating",t)}const rr=K("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);function wy(t){const e=t.toString().split(".")[1];return e?e.length:0}function Nn(t,e){if(t==null)return t;const o=Math.round(t/e)*e;return Number(o.toFixed(wy(e)))}const Ry=t=>{const{classes:e,size:o,readOnly:r,disabled:n,emptyValueFocused:s,focusVisible:a}=t,i={root:["root",`size${B(o)}`,n&&"disabled",a&&"focusVisible",r&&"readOnly"],label:["label","pristine"],labelEmptyValue:[s&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]};return G(i,Sy,e)},Py=k("span",{name:"MuiRating",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${rr.visuallyHidden}`]:e.visuallyHidden},e.root,e[`size${B(o.size)}`],o.readOnly&&e.readOnly]}})(W(({theme:t})=>({display:"inline-flex",position:"relative",fontSize:t.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",width:"min-content",WebkitTapHighlightColor:"transparent",[`&.${rr.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${rr.focusVisible} .${rr.iconActive}`]:{outline:"1px solid #999"},[`& .${rr.visuallyHidden}`]:bi,variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(30)}},{props:({ownerState:e})=>e.readOnly,style:{pointerEvents:"none"}}]}))),il=k("label",{name:"MuiRating",slot:"Label",overridesResolver:({ownerState:t},e)=>[e.label,t.emptyValueFocused&&e.labelEmptyValueActive]})({cursor:"inherit",variants:[{props:({ownerState:t})=>t.emptyValueFocused,style:{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"}}]}),$y=k("span",{name:"MuiRating",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.iconEmpty&&e.iconEmpty,o.iconFilled&&e.iconFilled,o.iconHover&&e.iconHover,o.iconFocus&&e.iconFocus,o.iconActive&&e.iconActive]}})(W(({theme:t})=>({display:"flex",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),pointerEvents:"none",variants:[{props:({ownerState:e})=>e.iconActive,style:{transform:"scale(1.2)"}},{props:({ownerState:e})=>e.iconEmpty,style:{color:(t.vars||t).palette.action.disabled}}]}))),ky=k("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:t=>wr(t)&&t!=="iconActive",overridesResolver:(t,e)=>{const{iconActive:o}=t;return[e.decimal,o&&e.iconActive]}})({position:"relative",variants:[{props:({iconActive:t})=>t,style:{transform:"scale(1.2)"}}]});function Iy(t){const{value:e,...o}=t;return f.jsx("span",{...o})}function za(t){const{classes:e,disabled:o,emptyIcon:r,focus:n,getLabelText:s,highlightSelectedOnly:a,hover:i,icon:l,IconContainerComponent:c,isActive:p,itemValue:u,labelProps:m,name:g,onBlur:b,onChange:v,onClick:h,onFocus:y,readOnly:S,ownerState:C,ratingValue:x,ratingValueRounded:w,slots:P={},slotProps:$={}}=t,I=a?u===x:u<=x,A=u<=i,T=u<=n,z=u===w,E=`${g}-${De()}`,R={slots:P,slotProps:$},[M,O]=Q("icon",{elementType:$y,className:j(e.icon,I?e.iconFilled:e.iconEmpty,A&&e.iconHover,T&&e.iconFocus,p&&e.iconActive),externalForwardedProps:R,ownerState:{...C,iconEmpty:!I,iconFilled:I,iconHover:A,iconFocus:T,iconActive:p},additionalProps:{value:u},internalForwardedProps:{as:c}}),[L,F]=Q("label",{elementType:il,externalForwardedProps:R,ownerState:{...C,emptyValueFocused:void 0},additionalProps:{style:m==null?void 0:m.style,htmlFor:E}}),D=f.jsx(M,{...O,children:r&&!I?r:l});return S?f.jsx("span",{...m,children:D}):f.jsxs(d.Fragment,{children:[f.jsxs(L,{...F,children:[D,f.jsx("span",{className:e.visuallyHidden,children:s(u)})]}),f.jsx("input",{className:e.visuallyHidden,onFocus:y,onBlur:b,onChange:v,onClick:h,disabled:o,value:u,id:E,type:"radio",name:g,checked:z})]})}const Ty=f.jsx(xy,{fontSize:"inherit"}),My=f.jsx(Cy,{fontSize:"inherit"});function Ly(t){return`${t||"0"} Star${t!==1?"s":""}`}const d1=d.forwardRef(function(e,o){const r=_({name:"MuiRating",props:e}),{component:n="span",className:s,defaultValue:a=null,disabled:i=!1,emptyIcon:l=My,emptyLabelText:c="Empty",getLabelText:p=Ly,highlightSelectedOnly:u=!1,icon:m=Ty,IconContainerComponent:g=Iy,max:b=5,name:v,onChange:h,onChangeActive:y,onMouseLeave:S,onMouseMove:C,precision:x=1,readOnly:w=!1,size:P="medium",value:$,slots:I={},slotProps:A={},...T}=r,z=De(v),[E,R]=Te({controlled:$,default:a,name:"Rating"}),M=Nn(E,x),O=Ke(),[{hover:L,focus:F},D]=d.useState({hover:-1,focus:-1});let N=M;L!==-1&&(N=L),F!==-1&&(N=F);const[J,U]=d.useState(!1),wt=d.useRef(),vt=qt(wt,o),mt=gt=>{C&&C(gt);const nt=wt.current,{right:Tt,left:At,width:q}=nt.getBoundingClientRect();let lt;O?lt=(Tt-gt.clientX)/q:lt=(gt.clientX-At)/q;let bt=Nn(b*lt+x/2,x);bt=wo(bt,x,b),D($t=>$t.hover===bt&&$t.focus===bt?$t:{hover:bt,focus:bt}),U(!1),y&&L!==bt&&y(gt,bt)},et=gt=>{S&&S(gt);const nt=-1;D({hover:nt,focus:nt}),y&&L!==nt&&y(gt,nt)},rt=gt=>{let nt=gt.target.value===""?null:parseFloat(gt.target.value);L!==-1&&(nt=L),R(nt),h&&h(gt,nt)},Y=gt=>{gt.clientX===0&>.clientY===0||(D({hover:-1,focus:-1}),R(null),h&&parseFloat(gt.target.value)===M&&h(gt,null))},at=gt=>{Ze(gt.target)&&U(!0);const nt=parseFloat(gt.target.value);D(Tt=>({hover:Tt.hover,focus:nt}))},ct=gt=>{if(L!==-1)return;Ze(gt.target)||U(!1);const nt=-1;D(Tt=>({hover:Tt.hover,focus:nt}))},[st,ft]=d.useState(!1),Z={...r,component:n,defaultValue:a,disabled:i,emptyIcon:l,emptyLabelText:c,emptyValueFocused:st,focusVisible:J,getLabelText:p,icon:m,IconContainerComponent:g,max:b,precision:x,readOnly:w,size:P},pt=Ry(Z),it={slots:I,slotProps:A},[ht,Mt]=Q("root",{ref:vt,className:j(pt.root,s),elementType:Py,externalForwardedProps:{...it,...T,component:n},getSlotProps:gt=>({...gt,onMouseMove:nt=>{var Tt;mt(nt),(Tt=gt.onMouseMove)==null||Tt.call(gt,nt)},onMouseLeave:nt=>{var Tt;et(nt),(Tt=gt.onMouseLeave)==null||Tt.call(gt,nt)}}),ownerState:Z,additionalProps:{role:w?"img":null,"aria-label":w?p(N):null}}),[tt,ot]=Q("label",{className:j(pt.label,pt.labelEmptyValue),elementType:il,externalForwardedProps:it,ownerState:Z}),[dt,St]=Q("decimal",{className:pt.decimal,elementType:ky,externalForwardedProps:it,ownerState:Z});return f.jsxs(ht,{...Mt,children:[Array.from(new Array(b)).map((gt,nt)=>{const Tt=nt+1,At={classes:pt,disabled:i,emptyIcon:l,focus:F,getLabelText:p,highlightSelectedOnly:u,hover:L,icon:m,IconContainerComponent:g,name:z,onBlur:ct,onChange:rt,onClick:Y,onFocus:at,ratingValue:N,ratingValueRounded:M,readOnly:w,ownerState:Z,slots:I,slotProps:A},q=Tt===Math.ceil(N)&&(L!==-1||F!==-1);if(x<1){const lt=Array.from(new Array(1/x));return d.createElement(dt,{...St,key:Tt,className:j(St.className,q&&pt.iconActive),iconActive:q},lt.map((bt,$t)=>{const It=Nn(Tt-1+($t+1)*x,x);return f.jsx(za,{...At,isActive:!1,itemValue:It,labelProps:{style:lt.length-1===$t?{}:{width:It===N?`${($t+1)*x*100}%`:"0%",overflow:"hidden",position:"absolute"}}},It)}))}return f.jsx(za,{...At,isActive:q,itemValue:Tt},Tt)}),!w&&!i&&f.jsxs(tt,{...ot,children:[f.jsx("input",{className:pt.visuallyHidden,value:"",id:`${z}-empty`,type:"radio",name:z,checked:M==null,onFocus:()=>ft(!0),onBlur:()=>ft(!1),onChange:rt}),f.jsx("span",{className:pt.visuallyHidden,children:c})]})]})});function Ay(t){return V("MuiScopedCssBaseline",t)}const u1=K("MuiScopedCssBaseline",["root"]),By=t=>{const{classes:e}=t;return G({root:["root"]},Ay,e)},Ey=k("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>{const e={};return t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([o,r])=>{var s,a;const n=t.getColorSchemeSelector(o);n.startsWith("@")?e[n]={colorScheme:(s=r.palette)==null?void 0:s.mode}:e[`&${n.replace(/\s*&/,"")}`]={colorScheme:(a=r.palette)==null?void 0:a.mode}}),{...Di(t,!1),...Fi(t),"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:t.typography.fontWeightBold},variants:[{props:{enableColorScheme:!0},style:t.vars?e:{colorScheme:t.palette.mode}}]}})),f1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiScopedCssBaseline"}),{className:n,component:s="div",enableColorScheme:a,...i}=r,l={...r,component:s},c=By(l);return f.jsx(Ey,{as:s,className:j(c.root,n),ref:o,ownerState:l,...i})});function ll(t){return V("MuiSelect",t)}const nr=K("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var ja;const Oy=k(Ji,{name:"MuiSelect",slot:"Select",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`&.${nr.select}`]:e.select},{[`&.${nr.select}`]:e[o.variant]},{[`&.${nr.error}`]:e.error},{[`&.${nr.multiple}`]:e.multiple}]}})({[`&.${nr.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),Ny=k(tl,{name:"MuiSelect",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.variant&&e[`icon${B(o.variant)}`],o.open&&e.iconOpen]}})({}),zy=k("input",{shouldForwardProp:t=>wr(t)&&t!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(t,e)=>e.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function Da(t,e){return typeof e=="object"&&e!==null?t===e:String(t)===String(e)}function jy(t){return t==null||typeof t=="string"&&!t.trim()}const Dy=t=>{const{classes:e,variant:o,disabled:r,multiple:n,open:s,error:a}=t,i={select:["select",o,r&&"disabled",n&&"multiple",a&&"error"],icon:["icon",`icon${B(o)}`,s&&"iconOpen",r&&"disabled"],nativeInput:["nativeInput"]};return G(i,ll,e)},Fy=d.forwardRef(function(e,o){var Gt;const{"aria-describedby":r,"aria-label":n,autoFocus:s,autoWidth:a,children:i,className:l,defaultOpen:c,defaultValue:p,disabled:u,displayEmpty:m,error:g=!1,IconComponent:b,inputRef:v,labelId:h,MenuProps:y={},multiple:S,name:C,onBlur:x,onChange:w,onClose:P,onFocus:$,onOpen:I,open:A,readOnly:T,renderValue:z,required:E,SelectDisplayProps:R={},tabIndex:M,type:O,value:L,variant:F="standard",...D}=e,[N,J]=Te({controlled:L,default:p,name:"Select"}),[U,wt]=Te({controlled:A,default:c,name:"Select"}),vt=d.useRef(null),mt=d.useRef(null),[et,rt]=d.useState(null),{current:Y}=d.useRef(A!=null),[at,ct]=d.useState(),st=qt(o,v),ft=d.useCallback(xt=>{mt.current=xt,xt&&rt(xt)},[]),Z=et==null?void 0:et.parentNode;d.useImperativeHandle(st,()=>({focus:()=>{mt.current.focus()},node:vt.current,value:N}),[N]),d.useEffect(()=>{c&&U&&et&&!Y&&(ct(a?null:Z.clientWidth),mt.current.focus())},[et,a]),d.useEffect(()=>{s&&mt.current.focus()},[s]),d.useEffect(()=>{if(!h)return;const xt=te(mt.current).getElementById(h);if(xt){const Bt=()=>{getSelection().isCollapsed&&mt.current.focus()};return xt.addEventListener("click",Bt),()=>{xt.removeEventListener("click",Bt)}}},[h]);const pt=(xt,Bt)=>{xt?I&&I(Bt):P&&P(Bt),Y||(ct(a?null:Z.clientWidth),wt(xt))},it=xt=>{xt.button===0&&(xt.preventDefault(),mt.current.focus(),pt(!0,xt))},ht=xt=>{pt(!1,xt)},Mt=d.Children.toArray(i),tt=xt=>{const Bt=Mt.find(Xt=>Xt.props.value===xt.target.value);Bt!==void 0&&(J(Bt.props.value),w&&w(xt,Bt))},ot=xt=>Bt=>{let Xt;if(Bt.currentTarget.hasAttribute("tabindex")){if(S){Xt=Array.isArray(N)?N.slice():[];const oe=N.indexOf(xt.props.value);oe===-1?Xt.push(xt.props.value):Xt.splice(oe,1)}else Xt=xt.props.value;if(xt.props.onClick&&xt.props.onClick(Bt),N!==Xt&&(J(Xt),w)){const oe=Bt.nativeEvent||Bt,fe=new oe.constructor(oe.type,oe);Object.defineProperty(fe,"target",{writable:!0,value:{value:Xt,name:C}}),w(fe,xt)}S||pt(!1,Bt)}},dt=xt=>{T||[" ","ArrowUp","ArrowDown","Enter"].includes(xt.key)&&(xt.preventDefault(),pt(!0,xt))},St=et!==null&&U,gt=xt=>{!St&&x&&(Object.defineProperty(xt,"target",{writable:!0,value:{value:N,name:C}}),x(xt))};delete D["aria-invalid"];let nt,Tt;const At=[];let q=!1;(an({value:N})||m)&&(z?nt=z(N):q=!0);const lt=Mt.map(xt=>{if(!d.isValidElement(xt))return null;let Bt;if(S){if(!Array.isArray(N))throw new Error(Eo(2));Bt=N.some(Xt=>Da(Xt,xt.props.value)),Bt&&q&&At.push(xt.props.children)}else Bt=Da(N,xt.props.value),Bt&&q&&(Tt=xt.props.children);return d.cloneElement(xt,{"aria-selected":Bt?"true":"false",onClick:ot(xt),onKeyUp:Xt=>{Xt.key===" "&&Xt.preventDefault(),xt.props.onKeyUp&&xt.props.onKeyUp(Xt)},role:"option",selected:Bt,value:void 0,"data-value":xt.props.value})});q&&(S?At.length===0?nt=null:nt=At.reduce((xt,Bt,Xt)=>(xt.push(Bt),Xt{const{classes:e}=t,r=G({root:["root"]},ll,e);return{...e,...r}},As={name:"MuiSelect",overridesResolver:(t,e)=>e.root,shouldForwardProp:t=>ae(t)&&t!=="variant",slot:"Root"},Uy=k(Rn,As)(""),Hy=k(Ls,As)(""),Vy=k(Is,As)(""),Bs=d.forwardRef(function(e,o){const r=_({name:"MuiSelect",props:e}),{autoWidth:n=!1,children:s,classes:a={},className:i,defaultOpen:l=!1,displayEmpty:c=!1,IconComponent:p=Ps,id:u,input:m,inputProps:g,label:b,labelId:v,MenuProps:h,multiple:y=!1,native:S=!1,onClose:C,onOpen:x,open:w,renderValue:P,SelectDisplayProps:$,variant:I="outlined",...A}=r,T=S?el:Fy,z=He(),E=lo({props:r,muiFormControl:z,states:["variant","error"]}),R=E.variant||I,M={...r,variant:R,classes:a},O=Wy(M),{root:L,...F}=O,D=m||{standard:f.jsx(Uy,{ownerState:M}),outlined:f.jsx(Hy,{label:b,ownerState:M}),filled:f.jsx(Vy,{ownerState:M})}[R],N=qt(o,io(D));return f.jsx(d.Fragment,{children:d.cloneElement(D,{inputComponent:T,inputProps:{children:s,error:E.error,IconComponent:p,variant:R,type:void 0,multiple:y,...S?{id:u}:{autoWidth:n,defaultOpen:l,displayEmpty:c,labelId:v,MenuProps:h,onClose:C,onOpen:x,open:w,renderValue:P,SelectDisplayProps:{id:u,...$}},...g,classes:g?Sr(F,g.classes):F,...m?m.props.inputProps:{}},...(y&&S||c)&&R==="outlined"?{notched:!0}:{},ref:N,className:j(D.props.className,i,O.root),...!m&&{variant:R},...A})})});Bs.muiName="Select";function Gy(t){return V("MuiSkeleton",t)}const g1=K("MuiSkeleton",["root","text","rectangular","rounded","circular","pulse","wave","withChildren","fitContent","heightAuto"]),Ky=t=>{const{classes:e,variant:o,animation:r,hasChildren:n,width:s,height:a}=t;return G({root:["root",o,r,n&&"withChildren",n&&!s&&"fitContent",n&&!a&&"heightAuto"]},Gy,e)},is=Je` 0% { opacity: 1; } @@ -165,7 +165,7 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a 100% { opacity: 1; } -`,cs=Je` +`,ls=Je` 0% { transform: translateX(-100%); } @@ -178,16 +178,16 @@ import{j as f,e as yl,f as xl,s as Cl,h as Sl,k as j,l as wl,m as ds,u as Rl,n a 100% { transform: translateX(100%); } -`,qy=typeof ls!="string"?No` - animation: ${ls} 2s ease-in-out 0.5s infinite; - `:null,Xy=typeof cs!="string"?No` +`,qy=typeof is!="string"?Oo` + animation: ${is} 2s ease-in-out 0.5s infinite; + `:null,Xy=typeof ls!="string"?Oo` &::after { - animation: ${cs} 2s linear 0.5s infinite; + animation: ${ls} 2s linear 0.5s infinite; } - `:null,_y=k("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],o.animation!==!1&&e[o.animation],o.hasChildren&&e.withChildren,o.hasChildren&&!o.width&&e.fitContent,o.hasChildren&&!o.height&&e.heightAuto]}})(W(({theme:t})=>{const e=Ci(t.shape.borderRadius)||"px",o=mo(t.shape.borderRadius);return{display:"block",backgroundColor:t.vars?t.vars.palette.Skeleton.bg:kt(t.palette.text.primary,t.palette.mode==="light"?.11:.13),height:"1.2em",variants:[{props:{variant:"text"},style:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:`${o}${e}/${Math.round(o/.6*10)/10}${e}`,"&:empty:before":{content:'"\\00a0"'}}},{props:{variant:"circular"},style:{borderRadius:"50%"}},{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:({ownerState:r})=>r.hasChildren,style:{"& > *":{visibility:"hidden"}}},{props:({ownerState:r})=>r.hasChildren&&!r.width,style:{maxWidth:"fit-content"}},{props:({ownerState:r})=>r.hasChildren&&!r.height,style:{height:"auto"}},{props:{animation:"pulse"},style:qy||{animation:`${ls} 2s ease-in-out 0.5s infinite`}},{props:{animation:"wave"},style:{position:"relative",overflow:"hidden",WebkitMaskImage:"-webkit-radial-gradient(white, black)","&::after":{background:`linear-gradient( + `:null,_y=k("span",{name:"MuiSkeleton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],o.animation!==!1&&e[o.animation],o.hasChildren&&e.withChildren,o.hasChildren&&!o.width&&e.fitContent,o.hasChildren&&!o.height&&e.heightAuto]}})(W(({theme:t})=>{const e=xi(t.shape.borderRadius)||"px",o=go(t.shape.borderRadius);return{display:"block",backgroundColor:t.vars?t.vars.palette.Skeleton.bg:kt(t.palette.text.primary,t.palette.mode==="light"?.11:.13),height:"1.2em",variants:[{props:{variant:"text"},style:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 55%",transform:"scale(1, 0.60)",borderRadius:`${o}${e}/${Math.round(o/.6*10)/10}${e}`,"&:empty:before":{content:'"\\00a0"'}}},{props:{variant:"circular"},style:{borderRadius:"50%"}},{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:({ownerState:r})=>r.hasChildren,style:{"& > *":{visibility:"hidden"}}},{props:({ownerState:r})=>r.hasChildren&&!r.width,style:{maxWidth:"fit-content"}},{props:({ownerState:r})=>r.hasChildren&&!r.height,style:{height:"auto"}},{props:{animation:"pulse"},style:qy||{animation:`${is} 2s ease-in-out 0.5s infinite`}},{props:{animation:"wave"},style:{position:"relative",overflow:"hidden",WebkitMaskImage:"-webkit-radial-gradient(white, black)","&::after":{background:`linear-gradient( 90deg, transparent, ${(t.vars||t).palette.action.hover}, transparent - )`,content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}}},{props:{animation:"wave"},style:Xy||{"&::after":{animation:`${cs} 2s linear 0.5s infinite`}}}]}})),m1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSkeleton"}),{animation:n="pulse",className:s,component:a="span",height:i,style:l,variant:c="text",width:p,...u}=r,m={...r,animation:n,component:a,variant:c,hasChildren:!!u.children},g=Ky(m);return f.jsx(_y,{as:a,ref:o,className:j(g.root,s),ownerState:m,...u,style:{width:p,height:i,...l}})});function Yy(t,e,o=(r,n)=>r===n){return t.length===e.length&&t.every((r,n)=>o(r,e[n]))}const Zy=2;function Do(t,e,o,r,n){return o===1?Math.min(t+e,n):Math.max(t-e,r)}function pl(t,e){return t-e}function Ua(t,e){const{index:o}=t.reduce((r,n,s)=>{const a=Math.abs(e-n);return r===null||a({left:`${t}%`}),leap:t=>({width:`${t}%`})},"horizontal-reverse":{offset:t=>({right:`${t}%`}),leap:t=>({width:`${t}%`})},vertical:{offset:t=>({bottom:`${t}%`}),leap:t=>({height:`${t}%`})}},ox=t=>t;let Vr;function Va(){return Vr===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?Vr=CSS.supports("touch-action","none"):Vr=!0),Vr}function rx(t){const{"aria-labelledby":e,defaultValue:o,disabled:r=!1,disableSwap:n=!1,isRtl:s=!1,marks:a=!1,max:i=100,min:l=0,name:c,onChange:p,onChangeCommitted:u,orientation:m="horizontal",rootRef:g,scale:b=ox,step:v=1,shiftStep:h=10,tabIndex:y,value:S}=t,C=d.useRef(void 0),[x,w]=d.useState(-1),[P,$]=d.useState(-1),[I,A]=d.useState(!1),T=d.useRef(0),z=d.useRef(null),[E,R]=Te({controlled:S,default:o??l,name:"Slider"}),M=p&&((q,lt,bt)=>{const $t=q.nativeEvent||q,It=new $t.constructor($t.type,$t);Object.defineProperty(It,"target",{writable:!0,value:{value:lt,name:c}}),z.current=lt,p(It,lt,bt)}),O=Array.isArray(E);let L=O?E.slice().sort(pl):[E];L=L.map(q=>q==null?l:Ro(q,l,i));const F=a===!0&&v!==null?[...Array(Math.floor((i-l)/v)+1)].map((q,lt)=>({value:l+v*lt})):a||[],D=F.map(q=>q.value),[N,J]=d.useState(-1),U=d.useRef(null),wt=qt(g,U),vt=q=>lt=>{var $t;const bt=Number(lt.currentTarget.getAttribute("data-index"));Ze(lt.target)&&J(bt),$(bt),($t=q==null?void 0:q.onFocus)==null||$t.call(q,lt)},mt=q=>lt=>{var bt;Ze(lt.target)||J(-1),$(-1),(bt=q==null?void 0:q.onBlur)==null||bt.call(q,lt)},et=(q,lt)=>{const bt=Number(q.currentTarget.getAttribute("data-index")),$t=L[bt],It=D.indexOf($t);let ut=lt;if(F&&v==null){const Ct=D[D.length-1];ut>=Ct?ut=Ct:ut<=D[0]?ut=D[0]:ut=ut<$t?D[It-1]:D[It+1]}if(ut=Ro(ut,l,i),O){n&&(ut=Ro(ut,L[bt-1]||-1/0,L[bt+1]||1/0));const Ct=ut;ut=Ha({values:L,newValue:ut,index:bt});let Ut=bt;n||(Ut=ut.indexOf(Ct)),Ur({sliderRef:U,activeIndex:Ut})}R(ut),J(bt),M&&!Hr(ut,E)&&M(q,ut,bt),u&&u(q,z.current??ut)},rt=q=>lt=>{var bt;if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"].includes(lt.key)){lt.preventDefault();const $t=Number(lt.currentTarget.getAttribute("data-index")),It=L[$t];let ut=null;if(v!=null){const Ct=lt.shiftKey?h:v;switch(lt.key){case"ArrowUp":ut=Do(It,Ct,1,l,i);break;case"ArrowRight":ut=Do(It,Ct,s?-1:1,l,i);break;case"ArrowDown":ut=Do(It,Ct,-1,l,i);break;case"ArrowLeft":ut=Do(It,Ct,s?1:-1,l,i);break;case"PageUp":ut=Do(It,h,1,l,i);break;case"PageDown":ut=Do(It,h,-1,l,i);break;case"Home":ut=l;break;case"End":ut=i;break}}else if(F){const Ct=D[D.length-1],Ut=D.indexOf(It),Et=[s?"ArrowRight":"ArrowLeft","ArrowDown","PageDown","Home"],Gt=[s?"ArrowLeft":"ArrowRight","ArrowUp","PageUp","End"];Et.includes(lt.key)?Ut===0?ut=D[0]:ut=D[Ut-1]:Gt.includes(lt.key)&&(Ut===D.length-1?ut=Ct:ut=D[Ut+1])}ut!=null&&et(lt,ut)}(bt=q==null?void 0:q.onKeyDown)==null||bt.call(q,lt)};be(()=>{var q;r&&U.current.contains(document.activeElement)&&((q=document.activeElement)==null||q.blur())},[r]),r&&x!==-1&&w(-1),r&&N!==-1&&J(-1);const Y=q=>lt=>{var bt;(bt=q.onChange)==null||bt.call(q,lt),et(lt,lt.target.valueAsNumber)},at=d.useRef(void 0);let ct=m;s&&m==="horizontal"&&(ct+="-reverse");const st=({finger:q,move:lt=!1})=>{const{current:bt}=U,{width:$t,height:It,bottom:ut,left:Ct}=bt.getBoundingClientRect();let Ut;ct.startsWith("vertical")?Ut=(ut-q.y)/It:Ut=(q.x-Ct)/$t,ct.includes("-reverse")&&(Ut=1-Ut);let Et;if(Et=Qy(Ut,l,i),v)Et=tx(Et,v,l);else{const xt=Ua(D,Et);Et=D[xt]}Et=Ro(Et,l,i);let Gt=0;if(O){lt?Gt=at.current:Gt=Ua(L,Et),n&&(Et=Ro(Et,L[Gt-1]||-1/0,L[Gt+1]||1/0));const xt=Et;Et=Ha({values:L,newValue:Et,index:Gt}),n&<||(Gt=Et.indexOf(xt),at.current=Gt)}return{newValue:Et,activeIndex:Gt}},ft=ee(q=>{const lt=Wr(q,C);if(!lt)return;if(T.current+=1,q.type==="mousemove"&&q.buttons===0){Z(q);return}const{newValue:bt,activeIndex:$t}=st({finger:lt,move:!0});Ur({sliderRef:U,activeIndex:$t,setActive:w}),R(bt),!I&&T.current>Zy&&A(!0),M&&!Hr(bt,E)&&M(q,bt,$t)}),Z=ee(q=>{const lt=Wr(q,C);if(A(!1),!lt)return;const{newValue:bt}=st({finger:lt,move:!0});w(-1),q.type==="touchend"&&$(-1),u&&u(q,z.current??bt),C.current=void 0,it()}),pt=ee(q=>{if(r)return;Va()||q.preventDefault();const lt=q.changedTouches[0];lt!=null&&(C.current=lt.identifier);const bt=Wr(q,C);if(bt!==!1){const{newValue:It,activeIndex:ut}=st({finger:bt});Ur({sliderRef:U,activeIndex:ut,setActive:w}),R(It),M&&!Hr(It,E)&&M(q,It,ut)}T.current=0;const $t=te(U.current);$t.addEventListener("touchmove",ft,{passive:!0}),$t.addEventListener("touchend",Z,{passive:!0})}),it=d.useCallback(()=>{const q=te(U.current);q.removeEventListener("mousemove",ft),q.removeEventListener("mouseup",Z),q.removeEventListener("touchmove",ft),q.removeEventListener("touchend",Z)},[Z,ft]);d.useEffect(()=>{const{current:q}=U;return q.addEventListener("touchstart",pt,{passive:Va()}),()=>{q.removeEventListener("touchstart",pt),it()}},[it,pt]),d.useEffect(()=>{r&&it()},[r,it]);const ht=q=>lt=>{var It;if((It=q.onMouseDown)==null||It.call(q,lt),r||lt.defaultPrevented||lt.button!==0)return;lt.preventDefault();const bt=Wr(lt,C);if(bt!==!1){const{newValue:ut,activeIndex:Ct}=st({finger:bt});Ur({sliderRef:U,activeIndex:Ct,setActive:w}),R(ut),M&&!Hr(ut,E)&&M(lt,ut,Ct)}T.current=0;const $t=te(U.current);$t.addEventListener("mousemove",ft,{passive:!0}),$t.addEventListener("mouseup",Z)},Mt=cn(O?L[0]:l,l,i),tt=cn(L[L.length-1],l,i)-Mt,ot=(q={})=>{const lt=Mo(q),bt={onMouseDown:ht(lt||{})},$t={...lt,...bt};return{...q,ref:wt,...$t}},dt=q=>lt=>{var $t;($t=q.onMouseOver)==null||$t.call(q,lt);const bt=Number(lt.currentTarget.getAttribute("data-index"));$(bt)},St=q=>lt=>{var bt;(bt=q.onMouseLeave)==null||bt.call(q,lt),$(-1)},gt=(q={})=>{const lt=Mo(q),bt={onMouseOver:dt(lt||{}),onMouseLeave:St(lt||{})};return{...q,...lt,...bt}},nt=q=>({pointerEvents:x!==-1&&x!==q?"none":void 0});let Tt;return m==="vertical"&&(Tt=s?"vertical-rl":"vertical-lr"),{active:x,axis:ct,axisProps:ex,dragging:I,focusedThumbIndex:N,getHiddenInputProps:(q={})=>{const lt=Mo(q),bt={onChange:Y(lt||{}),onFocus:vt(lt||{}),onBlur:mt(lt||{}),onKeyDown:rt(lt||{})},$t={...lt,...bt};return{tabIndex:y,"aria-labelledby":e,"aria-orientation":m,"aria-valuemax":b(i),"aria-valuemin":b(l),name:c,type:"range",min:t.min,max:t.max,step:t.step===null&&t.marks?"any":t.step??void 0,disabled:r,...q,...$t,style:{...vi,direction:s?"rtl":"ltr",width:"100%",height:"100%",writingMode:Tt}}},getRootProps:ot,getThumbProps:gt,marks:F,open:P,range:O,rootRef:wt,trackLeap:tt,trackOffset:Mt,values:L,getThumbStyle:nt}}const nx=t=>!t||!so(t);function sx(t){return V("MuiSlider",t)}const Ne=K("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","thumbColorError","thumbColorSuccess","thumbColorInfo","thumbColorWarning","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),ax=t=>{const{open:e}=t;return{offset:j(e&&Ne.valueLabelOpen),circle:Ne.valueLabelCircle,label:Ne.valueLabelLabel}};function ix(t){const{children:e,className:o,value:r}=t,n=ax(t);return e?d.cloneElement(e,{className:j(e.props.className)},f.jsxs(d.Fragment,{children:[e.props.children,f.jsx("span",{className:j(n.offset,o),"aria-hidden":!0,children:f.jsx("span",{className:n.circle,children:f.jsx("span",{className:n.label,children:r})})})]})):null}function Ga(t){return t}const lx=k("span",{name:"MuiSlider",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${B(o.color)}`],o.size!=="medium"&&e[`size${B(o.size)}`],o.marked&&e.marked,o.orientation==="vertical"&&e.vertical,o.track==="inverted"&&e.trackInverted,o.track===!1&&e.trackFalse]}})(W(({theme:t})=>({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"},[`&.${Ne.disabled}`]:{pointerEvents:"none",cursor:"default",color:(t.vars||t).palette.grey[400]},[`&.${Ne.dragging}`]:{[`& .${Ne.thumb}, & .${Ne.track}`]:{transition:"none"}},variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}})),{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]}))),cx=k("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(t,e)=>e.rail})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),px=k("span",{name:"MuiSlider",slot:"Track",overridesResolver:(t,e)=>e.track})(W(({theme:t})=>({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:t.transitions.create(["left","width","bottom","height"],{duration:t.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{border:"none"}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,track:"inverted"},style:{...t.vars?{backgroundColor:t.vars.palette.Slider[`${e}Track`],borderColor:t.vars.palette.Slider[`${e}Track`]}:{backgroundColor:Bo(t.palette[e].main,.62),borderColor:Bo(t.palette[e].main,.62),...t.applyStyles("dark",{backgroundColor:Ao(t.palette[e].main,.5)}),...t.applyStyles("dark",{borderColor:Ao(t.palette[e].main,.5)})}}}))]}))),dx=k("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.thumb,e[`thumbColor${B(o.color)}`],o.size!=="medium"&&e[`thumbSize${B(o.size)}`]]}})(W(({theme:t})=>({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:t.transitions.create(["box-shadow","left","bottom"],{duration:t.transitions.duration.shortest}),"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(t.vars||t).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&.${Ne.disabled}`]:{"&:hover":{boxShadow:"none"}},variants:[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&:hover, &.${Ne.focusVisible}`]:{...t.vars?{boxShadow:`0px 0px 0px 8px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${kt(t.palette[e].main,.16)}`},"@media (hover: none)":{boxShadow:"none"}},[`&.${Ne.active}`]:{...t.vars?{boxShadow:`0px 0px 0px 14px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${kt(t.palette[e].main,.16)}`}}}}))]}))),ux=k(ix,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(t,e)=>e.valueLabel})(W(({theme:t})=>({zIndex:1,whiteSpace:"nowrap",...t.typography.body2,fontWeight:500,transition:t.transitions.create(["transform"],{duration:t.transitions.duration.shortest}),position:"absolute",backgroundColor:(t.vars||t).palette.grey[600],borderRadius:2,color:(t.vars||t).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:{transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"},[`&.${Ne.valueLabelOpen}`]:{transform:"translateY(-100%) scale(1)"}}},{props:{orientation:"vertical"},style:{transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"},[`&.${Ne.valueLabelOpen}`]:{transform:"translateY(-50%) scale(1)"}}},{props:{size:"small"},style:{fontSize:t.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]}))),fx=k("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:t=>Rr(t)&&t!=="markActive",overridesResolver:(t,e)=>{const{markActive:o}=t;return[e.mark,o&&e.markActive]}})(W(({theme:t})=>({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(t.vars||t).palette.background.paper,opacity:.8}}]}))),gx=k("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:t=>Rr(t)&&t!=="markLabelActive",overridesResolver:(t,e)=>e.markLabel})(W(({theme:t})=>({...t.typography.body2,color:(t.vars||t).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(t.vars||t).palette.text.primary}}]}))),mx=t=>{const{disabled:e,dragging:o,marked:r,orientation:n,track:s,classes:a,color:i,size:l}=t,c={root:["root",e&&"disabled",o&&"dragging",r&&"marked",n==="vertical"&&"vertical",s==="inverted"&&"trackInverted",s===!1&&"trackFalse",i&&`color${B(i)}`,l&&`size${B(l)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",e&&"disabled",l&&`thumbSize${B(l)}`,i&&`thumbColor${B(i)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return G(c,sx,a)},bx=({children:t})=>t,b1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSlider"}),n=Ke(),{"aria-label":s,"aria-valuetext":a,"aria-labelledby":i,component:l="span",components:c={},componentsProps:p={},color:u="primary",classes:m,className:g,disableSwap:b=!1,disabled:v=!1,getAriaLabel:h,getAriaValueText:y,marks:S=!1,max:C=100,min:x=0,name:w,onChange:P,onChangeCommitted:$,orientation:I="horizontal",shiftStep:A=10,size:T="medium",step:z=1,scale:E=Ga,slotProps:R,slots:M,tabIndex:O,track:L="normal",value:F,valueLabelDisplay:D="off",valueLabelFormat:N=Ga,...J}=r,U={...r,isRtl:n,max:C,min:x,classes:m,disabled:v,disableSwap:b,orientation:I,marks:S,color:u,size:T,step:z,shiftStep:A,scale:E,track:L,valueLabelDisplay:D,valueLabelFormat:N},{axisProps:wt,getRootProps:vt,getHiddenInputProps:mt,getThumbProps:et,open:rt,active:Y,axis:at,focusedThumbIndex:ct,range:st,dragging:ft,marks:Z,values:pt,trackOffset:it,trackLeap:ht,getThumbStyle:Mt}=rx({...U,rootRef:o});U.marked=Z.length>0&&Z.some(Vt=>Vt.label),U.dragging=ft,U.focusedThumbIndex=ct;const tt=mx(U),ot=(M==null?void 0:M.root)??c.Root??lx,dt=(M==null?void 0:M.rail)??c.Rail??cx,St=(M==null?void 0:M.track)??c.Track??px,gt=(M==null?void 0:M.thumb)??c.Thumb??dx,nt=(M==null?void 0:M.valueLabel)??c.ValueLabel??ux,Tt=(M==null?void 0:M.mark)??c.Mark??fx,At=(M==null?void 0:M.markLabel)??c.MarkLabel??gx,q=(M==null?void 0:M.input)??c.Input??"input",lt=(R==null?void 0:R.root)??p.root,bt=(R==null?void 0:R.rail)??p.rail,$t=(R==null?void 0:R.track)??p.track,It=(R==null?void 0:R.thumb)??p.thumb,ut=(R==null?void 0:R.valueLabel)??p.valueLabel,Ct=(R==null?void 0:R.mark)??p.mark,Ut=(R==null?void 0:R.markLabel)??p.markLabel,Et=(R==null?void 0:R.input)??p.input,Gt=Ce({elementType:ot,getSlotProps:vt,externalSlotProps:lt,externalForwardedProps:J,additionalProps:{...nx(ot)&&{as:l}},ownerState:{...U,...lt==null?void 0:lt.ownerState},className:[tt.root,g]}),xt=Ce({elementType:dt,externalSlotProps:bt,ownerState:U,className:tt.rail}),Bt=Ce({elementType:St,externalSlotProps:$t,additionalProps:{style:{...wt[at].offset(it),...wt[at].leap(ht)}},ownerState:{...U,...$t==null?void 0:$t.ownerState},className:tt.track}),Xt=Ce({elementType:gt,getSlotProps:et,externalSlotProps:It,ownerState:{...U,...It==null?void 0:It.ownerState},className:tt.thumb}),oe=Ce({elementType:nt,externalSlotProps:ut,ownerState:{...U,...ut==null?void 0:ut.ownerState},className:tt.valueLabel}),fe=Ce({elementType:Tt,externalSlotProps:Ct,ownerState:U,className:tt.mark}),ie=Ce({elementType:At,externalSlotProps:Ut,ownerState:U,className:tt.markLabel}),Pe=Ce({elementType:q,getSlotProps:mt,externalSlotProps:Et,ownerState:U});return f.jsxs(ot,{...Gt,children:[f.jsx(dt,{...xt}),f.jsx(St,{...Bt}),Z.filter(Vt=>Vt.value>=x&&Vt.value<=C).map((Vt,_t)=>{const ce=cn(Vt.value,x,C),$e=wt[at].offset(ce);let pe;return L===!1?pe=pt.includes(Vt.value):pe=L==="normal"&&(st?Vt.value>=pt[0]&&Vt.value<=pt[pt.length-1]:Vt.value<=pt[0])||L==="inverted"&&(st?Vt.value<=pt[0]||Vt.value>=pt[pt.length-1]:Vt.value>=pt[0]),f.jsxs(d.Fragment,{children:[f.jsx(Tt,{"data-index":_t,...fe,...!so(Tt)&&{markActive:pe},style:{...$e,...fe.style},className:j(fe.className,pe&&tt.markActive)}),Vt.label!=null?f.jsx(At,{"aria-hidden":!0,"data-index":_t,...ie,...!so(At)&&{markLabelActive:pe},style:{...$e,...ie.style},className:j(tt.markLabel,ie.className,pe&&tt.markLabelActive),children:Vt.label}):null]},_t)}),pt.map((Vt,_t)=>{const ce=cn(Vt,x,C),$e=wt[at].offset(ce),pe=D==="off"?bx:nt;return f.jsx(pe,{...!so(pe)&&{valueLabelFormat:N,valueLabelDisplay:D,value:typeof N=="function"?N(E(Vt),_t):N,index:_t,open:rt===_t||Y===_t||D==="on",disabled:v},...oe,children:f.jsx(gt,{"data-index":_t,...Xt,className:j(tt.thumb,Xt.className,Y===_t&&tt.active,ct===_t&&tt.focusVisible),style:{...$e,...Mt(_t),...Xt.style},children:f.jsx(q,{"data-index":_t,"aria-label":h?h(_t):s,"aria-valuenow":E(Vt),"aria-labelledby":i,"aria-valuetext":y?y(E(Vt),_t):a,value:pt[_t],...Pe})})},_t)})]})});function vx(t={}){const{autoHideDuration:e=null,disableWindowBlurListener:o=!1,onClose:r,open:n,resumeHideDuration:s}=t,a=no();d.useEffect(()=>{if(!n)return;function y(S){S.defaultPrevented||S.key==="Escape"&&(r==null||r(S,"escapeKeyDown"))}return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)}},[n,r]);const i=ee((y,S)=>{r==null||r(y,S)}),l=ee(y=>{!r||y==null||a.start(y,()=>{i(null,"timeout")})});d.useEffect(()=>(n&&l(e),a.clear),[n,e,l,a]);const c=y=>{r==null||r(y,"clickaway")},p=a.clear,u=d.useCallback(()=>{e!=null&&l(s??e*.5)},[e,s,l]),m=y=>S=>{const C=y.onBlur;C==null||C(S),u()},g=y=>S=>{const C=y.onFocus;C==null||C(S),p()},b=y=>S=>{const C=y.onMouseEnter;C==null||C(S),p()},v=y=>S=>{const C=y.onMouseLeave;C==null||C(S),u()};return d.useEffect(()=>{if(!o&&n)return window.addEventListener("focus",u),window.addEventListener("blur",p),()=>{window.removeEventListener("focus",u),window.removeEventListener("blur",p)}},[o,n,u,p]),{getRootProps:(y={})=>{const S={...Mo(t),...Mo(y)};return{role:"presentation",...y,...S,onBlur:m(S),onFocus:g(S),onMouseEnter:b(S),onMouseLeave:v(S)}},onClickAway:c}}function hx(t){return V("MuiSnackbarContent",t)}const v1=K("MuiSnackbarContent",["root","message","action"]),yx=t=>{const{classes:e}=t;return G({root:["root"],action:["action"],message:["message"]},hx,e)},xx=k(Ue,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>{const e=t.palette.mode==="light"?.8:.98,o=tn(t.palette.background.default,e);return{...t.typography.body2,color:t.vars?t.vars.palette.SnackbarContent.color:t.palette.getContrastText(o),backgroundColor:t.vars?t.vars.palette.SnackbarContent.bg:o,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(t.vars||t).shape.borderRadius,flexGrow:1,[t.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),Cx=k("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0"}),Sx=k("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),wx=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSnackbarContent"}),{action:n,className:s,message:a,role:i="alert",...l}=r,c=r,p=yx(c);return f.jsxs(xx,{role:i,square:!0,elevation:6,className:j(p.root,s),ownerState:c,ref:o,...l,children:[f.jsx(Cx,{className:p.message,ownerState:c,children:a}),n?f.jsx(Sx,{className:p.action,ownerState:c,children:n}):null]})});function Rx(t){return V("MuiSnackbar",t)}const h1=K("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]),Px=t=>{const{classes:e,anchorOrigin:o}=t,r={root:["root",`anchorOrigin${B(o.vertical)}${B(o.horizontal)}`]};return G(r,Rx,e)},$x=k("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`anchorOrigin${B(o.anchorOrigin.vertical)}${B(o.anchorOrigin.horizontal)}`]]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:e})=>e.anchorOrigin.vertical==="top",style:{top:8,[t.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:e})=>e.anchorOrigin.vertical!=="top",style:{bottom:8,[t.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[t.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[t.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="center",style:{[t.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),y1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSnackbar"}),n=le(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{action:a,anchorOrigin:{vertical:i,horizontal:l}={vertical:"bottom",horizontal:"left"},autoHideDuration:c=null,children:p,className:u,ClickAwayListenerProps:m,ContentProps:g,disableWindowBlurListener:b=!1,message:v,onBlur:h,onClose:y,onFocus:S,onMouseEnter:C,onMouseLeave:x,open:w,resumeHideDuration:P,slots:$={},slotProps:I={},TransitionComponent:A,transitionDuration:T=s,TransitionProps:{onEnter:z,onExited:E,...R}={},...M}=r,O={...r,anchorOrigin:{vertical:i,horizontal:l},autoHideDuration:c,disableWindowBlurListener:b,TransitionComponent:A,transitionDuration:T},L=Px(O),{getRootProps:F,onClickAway:D}=vx({...O}),[N,J]=d.useState(!0),U=pt=>{J(!0),E&&E(pt)},wt=(pt,it)=>{J(!1),z&&z(pt,it)},vt={slots:{transition:A,...$},slotProps:{content:g,clickAwayListener:m,transition:R,...I}},[mt,et]=Q("root",{ref:o,className:[L.root,u],elementType:$x,getSlotProps:F,externalForwardedProps:{...vt,...M},ownerState:O}),[rt,{ownerState:Y,...at}]=Q("clickAwayListener",{elementType:_g,externalForwardedProps:vt,getSlotProps:pt=>({onClickAway:(...it)=>{var ht;(ht=pt.onClickAway)==null||ht.call(pt,...it),D(...it)}}),ownerState:O}),[ct,st]=Q("content",{elementType:wx,shouldForwardComponentProp:!0,externalForwardedProps:vt,additionalProps:{message:v,action:a},ownerState:O}),[ft,Z]=Q("transition",{elementType:Sr,externalForwardedProps:vt,getSlotProps:pt=>({onEnter:(...it)=>{var ht;(ht=pt.onEnter)==null||ht.call(pt,...it),wt(...it)},onExited:(...it)=>{var ht;(ht=pt.onExited)==null||ht.call(pt,...it),U(...it)}}),additionalProps:{appear:!0,in:w,timeout:T,direction:i==="top"?"down":"up"},ownerState:O});return!w&&N?null:f.jsx(rt,{...at,...$.clickAwayListener&&{ownerState:Y},children:f.jsx(mt,{...et,children:f.jsx(ft,{...Z,children:p||f.jsx(ct,{...st})})})})}),kx={entering:{transform:"none"},entered:{transform:"none"}},Ix=d.forwardRef(function(e,o){const r=le(),n={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:i,easing:l,in:c,onEnter:p,onEntered:u,onEntering:m,onExit:g,onExited:b,onExiting:v,style:h,timeout:y=n,TransitionComponent:S=Le,...C}=e,x=d.useRef(null),w=qt(x,io(i),o),P=M=>O=>{if(M){const L=x.current;O===void 0?M(L):M(L,O)}},$=P(m),I=P((M,O)=>{mn(M);const L=Ge({style:h,timeout:y,easing:l},{mode:"enter"});M.style.webkitTransition=r.transitions.create("transform",L),M.style.transition=r.transitions.create("transform",L),p&&p(M,O)}),A=P(u),T=P(v),z=P(M=>{const O=Ge({style:h,timeout:y,easing:l},{mode:"exit"});M.style.webkitTransition=r.transitions.create("transform",O),M.style.transition=r.transitions.create("transform",O),g&&g(M)}),E=P(b),R=M=>{s&&s(x.current,M)};return f.jsx(S,{appear:a,in:c,nodeRef:x,onEnter:I,onEntered:A,onEntering:$,onExit:z,onExited:E,onExiting:T,addEndListener:R,timeout:y,...C,children:(M,{ownerState:O,...L})=>d.cloneElement(i,{style:{transform:"scale(0)",visibility:M==="exited"&&!c?"hidden":void 0,...kx[M],...h,...i.props.style},ref:w,...L})})});function Tx(t){return V("MuiSpeedDial",t)}const Gr=K("MuiSpeedDial",["root","fab","directionUp","directionDown","directionLeft","directionRight","actions","actionsClosed"]),Mx=t=>{const{classes:e,open:o,direction:r}=t,n={root:["root",`direction${B(r)}`],fab:["fab"],actions:["actions",!o&&"actionsClosed"]};return G(n,Tx,e)};function ar(t){if(t==="up"||t==="down")return"vertical";if(t==="right"||t==="left")return"horizontal"}const go=32,Kr=16,Lx=k("div",{name:"MuiSpeedDial",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`direction${B(o.direction)}`]]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.speedDial,display:"flex",alignItems:"center",pointerEvents:"none",variants:[{props:{direction:"up"},style:{flexDirection:"column-reverse",[`& .${Gr.actions}`]:{flexDirection:"column-reverse",marginBottom:-go,paddingBottom:Kr+go}}},{props:{direction:"down"},style:{flexDirection:"column",[`& .${Gr.actions}`]:{flexDirection:"column",marginTop:-go,paddingTop:Kr+go}}},{props:{direction:"left"},style:{flexDirection:"row-reverse",[`& .${Gr.actions}`]:{flexDirection:"row-reverse",marginRight:-go,paddingRight:Kr+go}}},{props:{direction:"right"},style:{flexDirection:"row",[`& .${Gr.actions}`]:{flexDirection:"row",marginLeft:-go,paddingLeft:Kr+go}}}]}))),Ax=k(Ki,{name:"MuiSpeedDial",slot:"Fab",overridesResolver:(t,e)=>e.fab})({pointerEvents:"auto"}),Bx=k("div",{name:"MuiSpeedDial",slot:"Actions",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actions,!o.open&&e.actionsClosed]}})({display:"flex",pointerEvents:"auto",variants:[{props:({ownerState:t})=>!t.open,style:{transition:"top 0s linear 0.2s",pointerEvents:"none"}}]}),x1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSpeedDial"}),n=le(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{ariaLabel:a,FabProps:{ref:i,...l}={},children:c,className:p,direction:u="up",hidden:m=!1,icon:g,onBlur:b,onClose:v,onFocus:h,onKeyDown:y,onMouseEnter:S,onMouseLeave:C,onOpen:x,open:w,openIcon:P,slots:$={},slotProps:I={},TransitionComponent:A,TransitionProps:T,transitionDuration:z=s,...E}=r,[R,M]=Te({controlled:w,default:!1,name:"SpeedDial",state:"open"}),O={...r,open:R,direction:u},L=Mx(O),F=no(),D=d.useRef(0),N=d.useRef(),J=d.useRef([]);J.current=[J.current[0]];const U=d.useCallback(ot=>{J.current[0]=ot},[]),wt=qt(i,U),vt=(ot,dt)=>St=>{J.current[ot+1]=St,dt&&dt(St)},mt=ot=>{y&&y(ot);const dt=ot.key.replace("Arrow","").toLowerCase(),{current:St=dt}=N;if(ot.key==="Escape"){M(!1),J.current[0].focus(),v&&v(ot,"escapeKeyDown");return}if(ar(dt)===ar(St)&&ar(dt)!==void 0){ot.preventDefault();const gt=dt===St?1:-1,nt=Ro(D.current+gt,0,J.current.length-1);J.current[nt].focus(),D.current=nt,N.current=St}};d.useEffect(()=>{R||(D.current=0,N.current=void 0)},[R]);const et=ot=>{ot.type==="mouseleave"&&C&&C(ot),ot.type==="blur"&&b&&b(ot),F.clear(),ot.type==="blur"?F.start(0,()=>{M(!1),v&&v(ot,"blur")}):(M(!1),v&&v(ot,"mouseLeave"))},rt=ot=>{l.onClick&&l.onClick(ot),F.clear(),R?(M(!1),v&&v(ot,"toggle")):(M(!0),x&&x(ot,"toggle"))},Y=ot=>{ot.type==="mouseenter"&&S&&S(ot),ot.type==="focus"&&h&&h(ot),F.clear(),R||F.start(0,()=>{M(!0),x&&x(ot,{focus:"focus",mouseenter:"mouseEnter"}[ot.type])})},at=a.replace(/^[^a-z]+|[^\w:.-]+/gi,""),ct=d.Children.toArray(c).filter(ot=>d.isValidElement(ot)),st=ct.map((ot,dt)=>{const{FabProps:{ref:St,...gt}={},tooltipPlacement:nt}=ot.props,Tt=nt||(ar(u)==="vertical"?"left":"top");return d.cloneElement(ot,{FabProps:{...gt,ref:vt(dt,St)},delay:30*(R?dt:ct.length-dt),open:R,tooltipPlacement:Tt,id:`${at}-action-${dt}`})}),ft={transition:A,...$},Z={transition:T,...I},pt={slots:ft,slotProps:Z},[it,ht]=Q("root",{elementType:Lx,externalForwardedProps:{...pt,...E},ownerState:O,ref:o,className:j(L.root,p),additionalProps:{role:"presentation"},getSlotProps:ot=>({...ot,onKeyDown:dt=>{var St;(St=ot.onKeyDown)==null||St.call(ot,dt),mt(dt)},onBlur:dt=>{var St;(St=ot.onBlur)==null||St.call(ot,dt),et(dt)},onFocus:dt=>{var St;(St=ot.onFocus)==null||St.call(ot,dt),Y(dt)},onMouseEnter:dt=>{var St;(St=ot.onMouseEnter)==null||St.call(ot,dt),Y(dt)},onMouseLeave:dt=>{var St;(St=ot.onMouseLeave)==null||St.call(ot,dt),et(dt)}})}),[Mt,tt]=Q("transition",{elementType:Ix,externalForwardedProps:pt,ownerState:O});return f.jsxs(it,{...ht,children:[f.jsx(Mt,{in:!m,timeout:z,unmountOnExit:!0,...tt,children:f.jsx(Ax,{color:"primary","aria-label":a,"aria-haspopup":"true","aria-expanded":R,"aria-controls":`${at}-actions`,...l,onClick:rt,className:j(L.fab,l.className),ref:wt,ownerState:O,children:d.isValidElement(g)&&yo(g,["SpeedDialIcon"])?d.cloneElement(g,{open:R}):g})}),f.jsx(Bx,{id:`${at}-actions`,role:"menu","aria-orientation":ar(u),className:j(L.actions,!R&&L.actionsClosed),ownerState:O,children:st})]})});function Ex(t){return V("MuiTooltip",t)}const re=K("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function Ox(t){return Math.round(t*1e5)/1e5}const Nx=t=>{const{classes:e,disableInteractive:o,arrow:r,touch:n,placement:s}=t,a={popper:["popper",!o&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",n&&"touch",`tooltipPlacement${B(s.split("-")[0])}`],arrow:["arrow"]};return G(a,Ex,e)},zx=k(vn,{name:"MuiTooltip",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popper,!o.disableInteractive&&e.popperInteractive,o.arrow&&e.popperArrow,!o.open&&e.popperClose]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:e})=>!e.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:e})=>!e,style:{pointerEvents:"none"}},{props:({ownerState:e})=>e.arrow,style:{[`&[data-popper-placement*="bottom"] .${re.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${re.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${re.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${re.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="right"] .${re.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="right"] .${re.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="left"] .${re.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="left"] .${re.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),jx=k("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.tooltip,o.touch&&e.touch,o.arrow&&e.tooltipArrow,e[`tooltipPlacement${B(o.placement.split("-")[0])}`]]}})(W(({theme:t})=>({backgroundColor:t.vars?t.vars.palette.Tooltip.bg:kt(t.palette.grey[700],.92),borderRadius:(t.vars||t).shape.borderRadius,color:(t.vars||t).palette.common.white,fontFamily:t.typography.fontFamily,padding:"4px 8px",fontSize:t.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:t.typography.fontWeightMedium,[`.${re.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${re.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${re.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${re.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:e})=>e.arrow,style:{position:"relative",margin:0}},{props:({ownerState:e})=>e.touch,style:{padding:"8px 16px",fontSize:t.typography.pxToRem(14),lineHeight:`${Ox(16/14)}em`,fontWeight:t.typography.fontWeightRegular}},{props:({ownerState:e})=>!e.isRtl,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:e})=>!e.isRtl&&e.touch,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:e})=>!!e.isRtl,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:e})=>!!e.isRtl&&e.touch,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${re.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${re.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),Dx=k("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(t,e)=>e.arrow})(W(({theme:t})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:t.vars?t.vars.palette.Tooltip.bg:kt(t.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let qr=!1;const Ka=new fn;let ir={x:0,y:0};function Xr(t,e){return(o,...r)=>{e&&e(o,...r),t(o,...r)}}const Fx=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTooltip"}),{arrow:n=!1,children:s,classes:a,components:i={},componentsProps:l={},describeChild:c=!1,disableFocusListener:p=!1,disableHoverListener:u=!1,disableInteractive:m=!1,disableTouchListener:g=!1,enterDelay:b=100,enterNextDelay:v=0,enterTouchDelay:h=700,followCursor:y=!1,id:S,leaveDelay:C=0,leaveTouchDelay:x=1500,onClose:w,onOpen:P,open:$,placement:I="bottom",PopperComponent:A,PopperProps:T={},slotProps:z={},slots:E={},title:R,TransitionComponent:M,TransitionProps:O,...L}=r,F=d.isValidElement(s)?s:f.jsx("span",{children:s}),D=le(),N=Ke(),[J,U]=d.useState(),[wt,vt]=d.useState(null),mt=d.useRef(!1),et=m||y,rt=no(),Y=no(),at=no(),ct=no(),[st,ft]=Te({controlled:$,default:!1,name:"Tooltip",state:"open"});let Z=st;const pt=De(S),it=d.useRef(),ht=ee(()=>{it.current!==void 0&&(document.body.style.WebkitUserSelect=it.current,it.current=void 0),ct.clear()});d.useEffect(()=>ht,[ht]);const Mt=Lt=>{Ka.clear(),qr=!0,ft(!0),P&&!Z&&P(Lt)},tt=ee(Lt=>{Ka.start(800+C,()=>{qr=!1}),ft(!1),w&&Z&&w(Lt),rt.start(D.transitions.duration.shortest,()=>{mt.current=!1})}),ot=Lt=>{mt.current&&Lt.type!=="touchstart"||(J&&J.removeAttribute("title"),Y.clear(),at.clear(),b||qr&&v?Y.start(qr?v:b,()=>{Mt(Lt)}):Mt(Lt))},dt=Lt=>{Y.clear(),at.start(C,()=>{tt(Lt)})},[,St]=d.useState(!1),gt=Lt=>{Ze(Lt.target)||(St(!1),dt(Lt))},nt=Lt=>{J||U(Lt.currentTarget),Ze(Lt.target)&&(St(!0),ot(Lt))},Tt=Lt=>{mt.current=!0;const ge=F.props;ge.onTouchStart&&ge.onTouchStart(Lt)},At=Lt=>{Tt(Lt),at.clear(),rt.clear(),ht(),it.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",ct.start(h,()=>{document.body.style.WebkitUserSelect=it.current,ot(Lt)})},q=Lt=>{F.props.onTouchEnd&&F.props.onTouchEnd(Lt),ht(),at.start(x,()=>{tt(Lt)})};d.useEffect(()=>{if(!Z)return;function Lt(ge){ge.key==="Escape"&&tt(ge)}return document.addEventListener("keydown",Lt),()=>{document.removeEventListener("keydown",Lt)}},[tt,Z]);const lt=qt(io(F),U,o);!R&&R!==0&&(Z=!1);const bt=d.useRef(),$t=Lt=>{const ge=F.props;ge.onMouseMove&&ge.onMouseMove(Lt),ir={x:Lt.clientX,y:Lt.clientY},bt.current&&bt.current.update()},It={},ut=typeof R=="string";c?(It.title=!Z&&ut&&!u?R:null,It["aria-describedby"]=Z?pt:null):(It["aria-label"]=ut?R:null,It["aria-labelledby"]=Z&&!ut?pt:null);const Ct={...It,...L,...F.props,className:j(L.className,F.props.className),onTouchStart:Tt,ref:lt,...y?{onMouseMove:$t}:{}},Ut={};g||(Ct.onTouchStart=At,Ct.onTouchEnd=q),u||(Ct.onMouseOver=Xr(ot,Ct.onMouseOver),Ct.onMouseLeave=Xr(dt,Ct.onMouseLeave),et||(Ut.onMouseOver=ot,Ut.onMouseLeave=dt)),p||(Ct.onFocus=Xr(nt,Ct.onFocus),Ct.onBlur=Xr(gt,Ct.onBlur),et||(Ut.onFocus=nt,Ut.onBlur=gt));const Et={...r,isRtl:N,arrow:n,disableInteractive:et,placement:I,PopperComponentProp:A,touch:mt.current},Gt=typeof z.popper=="function"?z.popper(Et):z.popper,xt=d.useMemo(()=>{var ge,yt;let Lt=[{name:"arrow",enabled:!!wt,options:{element:wt,padding:4}}];return(ge=T.popperOptions)!=null&&ge.modifiers&&(Lt=Lt.concat(T.popperOptions.modifiers)),(yt=Gt==null?void 0:Gt.popperOptions)!=null&&yt.modifiers&&(Lt=Lt.concat(Gt.popperOptions.modifiers)),{...T.popperOptions,...Gt==null?void 0:Gt.popperOptions,modifiers:Lt}},[wt,T.popperOptions,Gt==null?void 0:Gt.popperOptions]),Bt=Nx(Et),Xt=typeof z.transition=="function"?z.transition(Et):z.transition,oe={slots:{popper:i.Popper,transition:i.Transition??M,tooltip:i.Tooltip,arrow:i.Arrow,...E},slotProps:{arrow:z.arrow??l.arrow,popper:{...T,...Gt??l.popper},tooltip:z.tooltip??l.tooltip,transition:{...O,...Xt??l.transition}}},[fe,ie]=Q("popper",{elementType:zx,externalForwardedProps:oe,ownerState:Et,className:j(Bt.popper,T==null?void 0:T.className)}),[Pe,Vt]=Q("transition",{elementType:Sr,externalForwardedProps:oe,ownerState:Et}),[_t,ce]=Q("tooltip",{elementType:jx,className:Bt.tooltip,externalForwardedProps:oe,ownerState:Et}),[$e,pe]=Q("arrow",{elementType:Dx,className:Bt.arrow,externalForwardedProps:oe,ownerState:Et,ref:vt});return f.jsxs(d.Fragment,{children:[d.cloneElement(F,Ct),f.jsx(fe,{as:A??vn,placement:I,anchorEl:y?{getBoundingClientRect:()=>({top:ir.y,left:ir.x,right:ir.x,bottom:ir.y,width:0,height:0})}:J,popperRef:bt,open:J?Z:!1,id:pt,transition:!0,...Ut,...ie,popperOptions:xt,children:({TransitionProps:Lt})=>f.jsx(Pe,{timeout:D.transitions.duration.shorter,...Lt,...Vt,children:f.jsxs(_t,{...ce,children:[R,n?f.jsx($e,{...pe}):null]})})})]})});function Wx(t){return V("MuiSpeedDialAction",t)}const _r=K("MuiSpeedDialAction",["fab","fabClosed","staticTooltip","staticTooltipClosed","staticTooltipLabel","tooltipPlacementLeft","tooltipPlacementRight"]),Ux=t=>{const{open:e,tooltipPlacement:o,classes:r}=t,n={fab:["fab",!e&&"fabClosed"],staticTooltip:["staticTooltip",`tooltipPlacement${B(o)}`,!e&&"staticTooltipClosed"],staticTooltipLabel:["staticTooltipLabel"]};return G(n,Wx,r)},Hx=k(Ki,{name:"MuiSpeedDialAction",slot:"Fab",skipVariantsResolver:!1,overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.fab,!o.open&&e.fabClosed]}})(W(({theme:t})=>({margin:8,color:(t.vars||t).palette.text.secondary,backgroundColor:(t.vars||t).palette.background.paper,"&:hover":{backgroundColor:t.vars?t.vars.palette.SpeedDialAction.fabHoverBg:tn(t.palette.background.paper,.15)},transition:`${t.transitions.create("transform",{duration:t.transitions.duration.shorter})}, opacity 0.8s`,opacity:1,variants:[{props:({ownerState:e})=>!e.open,style:{opacity:0,transform:"scale(0)"}}]}))),Vx=k("span",{name:"MuiSpeedDialAction",slot:"StaticTooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.staticTooltip,!o.open&&e.staticTooltipClosed,e[`tooltipPlacement${B(o.tooltipPlacement)}`]]}})(W(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",[`& .${_r.staticTooltipLabel}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.shorter}),opacity:1},variants:[{props:({ownerState:e})=>!e.open,style:{[`& .${_r.staticTooltipLabel}`]:{opacity:0,transform:"scale(0.5)"}}},{props:{tooltipPlacement:"left"},style:{[`& .${_r.staticTooltipLabel}`]:{transformOrigin:"100% 50%",right:"100%",marginRight:8}}},{props:{tooltipPlacement:"right"},style:{[`& .${_r.staticTooltipLabel}`]:{transformOrigin:"0% 50%",left:"100%",marginLeft:8}}}]}))),Gx=k("span",{name:"MuiSpeedDialAction",slot:"StaticTooltipLabel",overridesResolver:(t,e)=>e.staticTooltipLabel})(W(({theme:t})=>({position:"absolute",...t.typography.body1,backgroundColor:(t.vars||t).palette.background.paper,borderRadius:(t.vars||t).shape.borderRadius,boxShadow:(t.vars||t).shadows[1],color:(t.vars||t).palette.text.secondary,padding:"4px 16px",wordBreak:"keep-all"}))),C1=d.forwardRef(function(e,o){var D;const r=_({props:e,name:"MuiSpeedDialAction"}),{className:n,delay:s=0,FabProps:a={},icon:i,id:l,open:c,TooltipClasses:p,tooltipOpen:u=!1,tooltipPlacement:m="left",tooltipTitle:g,slots:b={},slotProps:v={},...h}=r,y={...r,tooltipPlacement:m},S=Ux(y),C={slots:b,slotProps:{fab:a,...v,tooltip:Go(typeof v.tooltip=="function"?v.tooltip(y):v.tooltip,{title:g,open:u,placement:m,classes:p})}},[x,w]=d.useState((D=C.slotProps.tooltip)==null?void 0:D.open),P=()=>{w(!1)},$=()=>{w(!0)},I={transitionDelay:`${s}ms`},[A,T]=Q("fab",{elementType:Hx,externalForwardedProps:C,ownerState:y,shouldForwardComponentProp:!0,className:j(S.fab,n),additionalProps:{style:I,tabIndex:-1,role:"menuitem",size:"small"}}),[z,E]=Q("tooltip",{elementType:Fx,externalForwardedProps:C,shouldForwardComponentProp:!0,ref:o,additionalProps:{id:l},ownerState:y,getSlotProps:N=>({...N,onClose:J=>{var U;(U=N.onClose)==null||U.call(N,J),P()},onOpen:J=>{var U;(U=N.onOpen)==null||U.call(N,J),$()}})}),[R,M]=Q("staticTooltip",{elementType:Vx,externalForwardedProps:C,ownerState:y,ref:o,className:S.staticTooltip,additionalProps:{id:l}}),[O,L]=Q("staticTooltipLabel",{elementType:Gx,externalForwardedProps:C,ownerState:y,className:S.staticTooltipLabel,additionalProps:{style:I,id:`${l}-label`}}),F=f.jsx(A,{...T,children:i});return E.open?f.jsxs(R,{...M,...h,children:[f.jsx(O,{...L,children:E.title}),d.cloneElement(F,{"aria-labelledby":`${l}-label`})]}):(!c&&x&&w(!1),f.jsx(z,{...E,title:E.title,open:c&&x,placement:E.placement,classes:E.classes,...h,children:F}))}),Kx=Qt(f.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");function qx(t){return V("MuiSpeedDialIcon",t)}const _e=K("MuiSpeedDialIcon",["root","icon","iconOpen","iconWithOpenIconOpen","openIcon","openIconOpen"]),Xx=t=>{const{classes:e,open:o,openIcon:r}=t;return G({root:["root"],icon:["icon",o&&"iconOpen",r&&o&&"iconWithOpenIconOpen"],openIcon:["openIcon",o&&"openIconOpen"]},qx,e)},_x=k("span",{name:"MuiSpeedDialIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${_e.icon}`]:e.icon},{[`& .${_e.icon}`]:o.open&&e.iconOpen},{[`& .${_e.icon}`]:o.open&&o.openIcon&&e.iconWithOpenIconOpen},{[`& .${_e.openIcon}`]:e.openIcon},{[`& .${_e.openIcon}`]:o.open&&e.openIconOpen},e.root]}})(W(({theme:t})=>({height:24,[`& .${_e.icon}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short})},[`& .${_e.openIcon}`]:{position:"absolute",transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short}),opacity:0,transform:"rotate(-45deg)"},variants:[{props:({ownerState:e})=>e.open,style:{[`& .${_e.icon}`]:{transform:"rotate(45deg)"}}},{props:({ownerState:e})=>e.open&&e.openIcon,style:{[`& .${_e.icon}`]:{opacity:0}}},{props:({ownerState:e})=>e.open,style:{[`& .${_e.openIcon}`]:{transform:"rotate(0deg)",opacity:1}}}]}))),Yx=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSpeedDialIcon"}),{className:n,icon:s,open:a,openIcon:i,...l}=r,c=r,p=Xx(c);function u(m,g){return d.isValidElement(m)?d.cloneElement(m,{className:g}):m}return f.jsxs(_x,{className:j(p.root,n),ref:o,ownerState:c,...l,children:[i?u(i,p.openIcon):null,s?u(s,p.icon):f.jsx(Kx,{className:p.icon})]})});Yx.muiName="SpeedDialIcon";const S1=kc({createStyledComponent:k("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root}),useThemeProps:t=>_({props:t,name:"MuiStack"})}),w1=K("MuiStack",["root"]),zo=d.createContext({});function R1(){return d.useContext(zo)}const Zo=d.createContext({});function P1(){return d.useContext(Zo)}function Zx(t){return V("MuiStep",t)}const $1=K("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]),Qx=t=>{const{classes:e,orientation:o,alternativeLabel:r,completed:n}=t;return G({root:["root",o,r&&"alternativeLabel",n&&"completed"]},Zx,e)},Jx=k("div",{name:"MuiStep",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({variants:[{props:{orientation:"horizontal"},style:{paddingLeft:8,paddingRight:8}},{props:{alternativeLabel:!0},style:{flex:1,position:"relative"}}]}),k1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStep"}),{active:n,children:s,className:a,component:i="div",completed:l,disabled:c,expanded:p=!1,index:u,last:m,...g}=r,{activeStep:b,connector:v,alternativeLabel:h,orientation:y,nonLinear:S}=d.useContext(zo);let[C=!1,x=!1,w=!1]=[n,l,c];b===u?C=n!==void 0?n:!0:!S&&b>u?x=l!==void 0?l:!0:!S&&b({index:u,last:m,expanded:p,icon:u+1,active:C,completed:x,disabled:w}),[u,m,p,C,x,w]),$={...r,active:C,orientation:y,alternativeLabel:h,completed:x,disabled:w,expanded:p,component:i},I=Qx($),A=f.jsxs(Jx,{as:i,className:j(I.root,a),ref:o,ownerState:$,...g,children:[v&&h&&u!==0?v:null,s]});return f.jsx(Zo.Provider,{value:P,children:v&&!h&&u!==0?f.jsxs(d.Fragment,{children:[v,A]}):A})}),t0=Qt(f.jsx("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),e0=Qt(f.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");function o0(t){return V("MuiStepIcon",t)}const zn=K("MuiStepIcon",["root","active","completed","error","text"]);var qa;const r0=t=>{const{classes:e,active:o,completed:r,error:n}=t;return G({root:["root",o&&"active",r&&"completed",n&&"error"],text:["text"]},o0,e)},jn=k(Fl,{name:"MuiStepIcon",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),color:(t.vars||t).palette.text.disabled,[`&.${zn.completed}`]:{color:(t.vars||t).palette.primary.main},[`&.${zn.active}`]:{color:(t.vars||t).palette.primary.main},[`&.${zn.error}`]:{color:(t.vars||t).palette.error.main}}))),n0=k("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(t,e)=>e.text})(W(({theme:t})=>({fill:(t.vars||t).palette.primary.contrastText,fontSize:t.typography.caption.fontSize,fontFamily:t.typography.fontFamily}))),s0=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepIcon"}),{active:n=!1,className:s,completed:a=!1,error:i=!1,icon:l,...c}=r,p={...r,active:n,completed:a,error:i},u=r0(p);if(typeof l=="number"||typeof l=="string"){const m=j(s,u.root);return i?f.jsx(jn,{as:e0,className:m,ref:o,ownerState:p,...c}):a?f.jsx(jn,{as:t0,className:m,ref:o,ownerState:p,...c}):f.jsxs(jn,{className:m,ref:o,ownerState:p,...c,children:[qa||(qa=f.jsx("circle",{cx:"12",cy:"12",r:"12"})),f.jsx(n0,{className:u.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:p,children:l})]})}return l});function a0(t){return V("MuiStepLabel",t)}const ho=K("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]),i0=t=>{const{classes:e,orientation:o,active:r,completed:n,error:s,disabled:a,alternativeLabel:i}=t;return G({root:["root",o,s&&"error",a&&"disabled",i&&"alternativeLabel"],label:["label",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],iconContainer:["iconContainer",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],labelContainer:["labelContainer",i&&"alternativeLabel"]},a0,e)},l0=k("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation]]}})({display:"flex",alignItems:"center",[`&.${ho.alternativeLabel}`]:{flexDirection:"column"},[`&.${ho.disabled}`]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),c0=k("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(t,e)=>e.label})(W(({theme:t})=>({...t.typography.body2,display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),[`&.${ho.active}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${ho.completed}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${ho.alternativeLabel}`]:{marginTop:16},[`&.${ho.error}`]:{color:(t.vars||t).palette.error.main}}))),p0=k("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(t,e)=>e.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,[`&.${ho.alternativeLabel}`]:{paddingRight:0}}),d0=k("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(t,e)=>e.labelContainer})(W(({theme:t})=>({width:"100%",color:(t.vars||t).palette.text.secondary,[`&.${ho.alternativeLabel}`]:{textAlign:"center"}}))),dl=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepLabel"}),{children:n,className:s,componentsProps:a={},error:i=!1,icon:l,optional:c,slots:p={},slotProps:u={},StepIconComponent:m,StepIconProps:g,...b}=r,{alternativeLabel:v,orientation:h}=d.useContext(zo),{active:y,disabled:S,completed:C,icon:x}=d.useContext(Zo),w=l||x;let P=m;w&&!P&&(P=s0);const $={...r,active:y,alternativeLabel:v,completed:C,disabled:S,error:i,orientation:h},I=i0($),A={slots:p,slotProps:{stepIcon:g,...a,...u}},[T,z]=Q("root",{elementType:l0,externalForwardedProps:{...A,...b},ownerState:$,ref:o,className:j(I.root,s)}),[E,R]=Q("label",{elementType:c0,externalForwardedProps:A,ownerState:$}),[M,O]=Q("stepIcon",{elementType:P,externalForwardedProps:A,ownerState:$});return f.jsxs(T,{...z,children:[w||M?f.jsx(p0,{className:I.iconContainer,ownerState:$,children:f.jsx(M,{completed:C,active:y,error:i,icon:w,...O})}):null,f.jsxs(d0,{className:I.labelContainer,ownerState:$,children:[n?f.jsx(E,{...R,className:j(I.label,R==null?void 0:R.className),children:n}):null,c]})]})});dl.muiName="StepLabel";function u0(t){return V("MuiStepButton",t)}const Xa=K("MuiStepButton",["root","horizontal","vertical","touchRipple"]),f0=t=>{const{classes:e,orientation:o}=t;return G({root:["root",o],touchRipple:["touchRipple"]},u0,e)},g0=k(ue,{name:"MuiStepButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Xa.touchRipple}`]:e.touchRipple},e.root,e[o.orientation]]}})({width:"100%",padding:"24px 16px",margin:"-24px -16px",boxSizing:"content-box",[`& .${Xa.touchRipple}`]:{color:"rgba(0, 0, 0, 0.3)"},variants:[{props:{orientation:"vertical"},style:{justifyContent:"flex-start",padding:"8px",margin:"-8px"}}]}),I1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepButton"}),{children:n,className:s,icon:a,optional:i,...l}=r,{disabled:c,active:p}=d.useContext(Zo),{orientation:u}=d.useContext(zo),m={...r,orientation:u},g=f0(m),b={icon:a,optional:i},v=yo(n,["StepLabel"])?d.cloneElement(n,b):f.jsx(dl,{...b,children:n});return f.jsx(g0,{focusRipple:!0,disabled:c,TouchRippleProps:{className:g.touchRipple},className:j(g.root,s),ref:o,ownerState:m,"aria-current":p?"step":void 0,...l,children:v})});function m0(t){return V("MuiStepConnector",t)}const T1=K("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]),b0=t=>{const{classes:e,orientation:o,alternativeLabel:r,active:n,completed:s,disabled:a}=t,i={root:["root",o,r&&"alternativeLabel",n&&"active",s&&"completed",a&&"disabled"],line:["line",`line${B(o)}`]};return G(i,m0,e)},v0=k("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({flex:"1 1 auto",variants:[{props:{orientation:"vertical"},style:{marginLeft:12}},{props:{alternativeLabel:!0},style:{position:"absolute",top:12,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"}}]}),h0=k("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.line,e[`line${B(o.orientation)}`]]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600];return{display:"block",borderColor:t.vars?t.vars.palette.StepConnector.border:e,variants:[{props:{orientation:"horizontal"},style:{borderTopStyle:"solid",borderTopWidth:1}},{props:{orientation:"vertical"},style:{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24}}]}})),y0=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepConnector"}),{className:n,...s}=r,{alternativeLabel:a,orientation:i="horizontal"}=d.useContext(zo),{active:l,disabled:c,completed:p}=d.useContext(Zo),u={...r,alternativeLabel:a,orientation:i,active:l,completed:p,disabled:c},m=b0(u);return f.jsx(v0,{className:j(m.root,n),ref:o,ownerState:u,...s,children:f.jsx(h0,{className:m.line,ownerState:u})})});function x0(t){return V("MuiStepContent",t)}const M1=K("MuiStepContent",["root","last","transition"]),C0=t=>{const{classes:e,last:o}=t;return G({root:["root",o&&"last"],transition:["transition"]},x0,e)},S0=k("div",{name:"MuiStepContent",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.last&&e.last]}})(W(({theme:t})=>({marginLeft:12,paddingLeft:20,paddingRight:8,borderLeft:t.vars?`1px solid ${t.vars.palette.StepContent.border}`:`1px solid ${t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600]}`,variants:[{props:{last:!0},style:{borderLeft:"none"}}]}))),w0=k(hr,{name:"MuiStepContent",slot:"Transition",overridesResolver:(t,e)=>e.transition})({}),L1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepContent"}),{children:n,className:s,TransitionComponent:a=hr,transitionDuration:i="auto",TransitionProps:l,slots:c={},slotProps:p={},...u}=r,{orientation:m}=d.useContext(zo),{active:g,last:b,expanded:v}=d.useContext(Zo),h={...r,last:b},y=C0(h);let S=i;i==="auto"&&!a.muiSupportAuto&&(S=void 0);const C={slots:c,slotProps:{transition:l,...p}},[x,w]=Q("transition",{elementType:w0,externalForwardedProps:C,ownerState:h,className:y.transition,additionalProps:{in:g||v,timeout:S,unmountOnExit:!0}});return f.jsx(S0,{className:j(y.root,s),ref:o,ownerState:h,...u,children:f.jsx(x,{as:a,...w,children:n})})});function R0(t){return V("MuiStepper",t)}const A1=K("MuiStepper",["root","horizontal","vertical","nonLinear","alternativeLabel"]),P0=t=>{const{orientation:e,nonLinear:o,alternativeLabel:r,classes:n}=t;return G({root:["root",e,o&&"nonLinear",r&&"alternativeLabel"]},R0,n)},$0=k("div",{name:"MuiStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.nonLinear&&e.nonLinear]}})({display:"flex",variants:[{props:{orientation:"horizontal"},style:{flexDirection:"row",alignItems:"center"}},{props:{orientation:"vertical"},style:{flexDirection:"column"}},{props:{alternativeLabel:!0},style:{alignItems:"flex-start"}}]}),k0=f.jsx(y0,{}),B1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepper"}),{activeStep:n=0,alternativeLabel:s=!1,children:a,className:i,component:l="div",connector:c=k0,nonLinear:p=!1,orientation:u="horizontal",...m}=r,g={...r,nonLinear:p,alternativeLabel:s,orientation:u,component:l},b=P0(g),v=d.Children.toArray(a).filter(Boolean),h=v.map((S,C)=>d.cloneElement(S,{index:C,last:C+1===v.length,...S.props})),y=d.useMemo(()=>({activeStep:n,alternativeLabel:s,connector:c,nonLinear:p,orientation:u}),[n,s,c,p,u]);return f.jsx(zo.Provider,{value:y,children:f.jsx($0,{as:l,ownerState:g,className:j(b.root,i),ref:o,...m,children:h})})}),I0=k("div",{shouldForwardProp:ae})(W(({theme:t})=>({position:"fixed",top:0,left:0,bottom:0,zIndex:t.zIndex.drawer-1,variants:[{props:{anchor:"left"},style:{right:"auto"}},{props:{anchor:"right"},style:{left:"auto",right:0}},{props:{anchor:"top"},style:{bottom:"auto",right:0}},{props:{anchor:"bottom"},style:{top:"auto",bottom:0,right:0}}]}))),T0=d.forwardRef(function(e,o){const{anchor:r,classes:n={},className:s,width:a,style:i,...l}=e,c=e;return f.jsx(I0,{className:j("PrivateSwipeArea-root",n.root,n[`anchor${B(r)}`],s),ref:o,style:{[Po(r)?"width":"height"]:a,...i},ownerState:c,...l})}),Yr=3,Dn=20;let oo=null;function Fn(t,e,o){return t==="right"?o.body.offsetWidth-e[0].pageX:e[0].pageX}function Wn(t,e,o){return t==="bottom"?o.innerHeight-e[0].clientY:e[0].clientY}function lr(t,e){return t?e.clientWidth:e.clientHeight}function _a(t,e,o,r){return Math.min(Math.max(o?e-t:r+e-t,0),r)}function M0(t,e){const o=[];for(;t&&t!==e.parentElement;){const r=me(e).getComputedStyle(t);r.getPropertyValue("position")==="absolute"||r.getPropertyValue("overflow-x")==="hidden"||(t.clientWidth>0&&t.scrollWidth>t.clientWidth||t.clientHeight>0&&t.scrollHeight>t.clientHeight)&&o.push(t),t=t.parentElement}return o}function L0({domTreeShapes:t,start:e,current:o,anchor:r}){const n={scrollPosition:{x:"scrollLeft",y:"scrollTop"},scrollLength:{x:"scrollWidth",y:"scrollHeight"},clientLength:{x:"clientWidth",y:"clientHeight"}};return t.some(s=>{let a=o>=e;(r==="top"||r==="left")&&(a=!a);const i=r==="left"||r==="right"?"x":"y",l=Math.round(s[n.scrollPosition[i]]),c=l>0,p=l+s[n.clientLength[i]]{N.current=null},[S]);const J=d.useCallback((Y,at={})=>{const{mode:ct=null,changeTransition:st=!0}=at,ft=pr(n,a),Z=["right","bottom"].includes(ft)?1:-1,pt=Po(a),it=pt?`translate(${Z*Y}px, 0)`:`translate(0, ${Z*Y}px)`,ht=L.current.style;ht.webkitTransform=it,ht.transform=it;let Mt="";if(ct&&(Mt=n.transitions.create("all",Ge({easing:void 0,style:void 0,timeout:P},{mode:ct}))),st&&(ht.webkitTransition=Mt,ht.transition=Mt),!i&&!p){const tt=O.current.style;tt.opacity=1-Y/lr(pt,L.current),st&&(tt.webkitTransition=Mt,tt.transition=Mt)}},[a,i,p,n,P]),U=ee(Y=>{if(!D.current)return;if(oo=null,D.current=!1,Vn.flushSync(()=>{E(!1)}),!R.current.isSwiping){R.current.isSwiping=null;return}R.current.isSwiping=null;const at=pr(n,a),ct=Po(a);let st;ct?st=Fn(at,Y.changedTouches,te(Y.currentTarget)):st=Wn(at,Y.changedTouches,me(Y.currentTarget));const ft=ct?R.current.startX:R.current.startY,Z=lr(ct,L.current),pt=_a(st,ft,S,Z),it=pt/Z;if(Math.abs(R.current.velocity)>g&&(N.current=Math.abs((Z-pt)/R.current.velocity)*1e3),S){R.current.velocity>g||it>u?h():J(0,{mode:"exit"});return}R.current.velocity<-g||1-it>u?y():J(lr(ct,L.current),{mode:"enter"})}),wt=(Y=!1)=>{if(!z){(Y||!(l&&m))&&Vn.flushSync(()=>{E(!0)});const at=Po(a);!S&&L.current&&J(lr(at,L.current)+(l?15:-Dn),{changeTransition:!1}),R.current.velocity=0,R.current.lastTime=null,R.current.lastTranslate=null,R.current.paperHit=!1,D.current=!0}},vt=ee(Y=>{if(!L.current||!D.current||oo!==null&&oo!==R.current)return;wt(!0);const at=pr(n,a),ct=Po(a),st=Fn(at,Y.touches,te(Y.currentTarget)),ft=Wn(at,Y.touches,me(Y.currentTarget));if(S&&L.current.contains(Y.target)&&oo===null){const Mt=M0(Y.target,L.current);if(L0({domTreeShapes:Mt,start:ct?R.current.startX:R.current.startY,current:ct?st:ft,anchor:a})){oo=!0;return}oo=R.current}if(R.current.isSwiping==null){const Mt=Math.abs(st-R.current.startX),tt=Math.abs(ft-R.current.startY),ot=ct?Mt>tt&&Mt>Yr:tt>Mt&&tt>Yr;if(ot&&Y.cancelable&&Y.preventDefault(),ot===!0||(ct?tt>Yr:Mt>Yr)){if(R.current.isSwiping=ot,!ot){U(Y);return}R.current.startX=st,R.current.startY=ft,!l&&!S&&(ct?R.current.startX-=Dn:R.current.startY-=Dn)}}if(!R.current.isSwiping)return;const Z=lr(ct,L.current);let pt=ct?R.current.startX:R.current.startY;S&&!R.current.paperHit&&(pt=Math.min(pt,Z));const it=_a(ct?st:ft,pt,S,Z);if(S)if(R.current.paperHit)it===0&&(R.current.startX=st,R.current.startY=ft);else if(ct?st{var Z;if(Y.defaultPrevented||Y.defaultMuiPrevented||S&&(p||!O.current.contains(Y.target))&&!L.current.contains(Y.target))return;const at=pr(n,a),ct=Po(a),st=Fn(at,Y.touches,te(Y.currentTarget)),ft=Wn(at,Y.touches,me(Y.currentTarget));if(!S){if(c||!(Y.target===M.current||(Z=L.current)!=null&&Z.contains(Y.target)&&(typeof m=="function"?m(Y,M.current,L.current):m)))return;if(ct){if(st>w)return}else if(ft>w)return}Y.defaultMuiPrevented=!0,oo=null,R.current.startX=st,R.current.startY=ft,wt()});d.useEffect(()=>{if($==="temporary"){const Y=te(L.current);return Y.addEventListener("touchstart",mt),Y.addEventListener("touchmove",vt,{passive:!S}),Y.addEventListener("touchend",U),()=>{Y.removeEventListener("touchstart",mt),Y.removeEventListener("touchmove",vt,{passive:!S}),Y.removeEventListener("touchend",U)}}},[$,S,mt,vt,U]),d.useEffect(()=>()=>{oo===R.current&&(oo=null)},[]),d.useEffect(()=>{S||E(!1)},[S]);const[et,rt]=Q("swipeArea",{ref:M,elementType:T0,ownerState:r,externalForwardedProps:{slots:I,slotProps:{swipeArea:x,...A}},additionalProps:{width:w,anchor:a}});return f.jsxs(d.Fragment,{children:[f.jsx(_m,{open:$==="temporary"&&z?!0:S,variant:$,ModalProps:{BackdropProps:{...b,ref:O},...$==="temporary"&&{keepMounted:!0},...v},hideBackdrop:p,anchor:a,transitionDuration:N.current||P,onClose:h,ref:o,slots:I,slotProps:{...A,backdrop:Go(A.backdrop??b,{ref:O}),paper:Go(A.paper??C,{style:{pointerEvents:$==="temporary"&&!S&&!m?"none":""},ref:F})},...T}),!c&&$==="temporary"&&f.jsx(jh,{children:f.jsx(et,{...rt})})]})});function B0(t){return V("MuiSwitch",t)}const xe=K("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),E0=t=>{const{classes:e,edge:o,size:r,color:n,checked:s,disabled:a}=t,i={root:["root",o&&`edge${B(o)}`,`size${B(r)}`],switchBase:["switchBase",`color${B(n)}`,s&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=G(i,B0,e);return{...e,...l}},O0=k("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.edge&&e[`edge${B(o.edge)}`],e[`size${B(o.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${xe.thumb}`]:{width:16,height:16},[`& .${xe.switchBase}`]:{padding:4,[`&.${xe.checked}`]:{transform:"translateX(16px)"}}}}]}),N0=k(ks,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.switchBase,{[`& .${xe.input}`]:e.input},o.color!=="default"&&e[`color${B(o.color)}`]]}})(W(({theme:t})=>({position:"absolute",top:0,left:0,zIndex:1,color:t.vars?t.vars.palette.Switch.defaultColor:`${t.palette.mode==="light"?t.palette.common.white:t.palette.grey[300]}`,transition:t.transitions.create(["left","transform"],{duration:t.transitions.duration.shortest}),[`&.${xe.checked}`]:{transform:"translateX(20px)"},[`&.${xe.disabled}`]:{color:t.vars?t.vars.palette.Switch.defaultDisabledColor:`${t.palette.mode==="light"?t.palette.grey[100]:t.palette.grey[600]}`},[`&.${xe.checked} + .${xe.track}`]:{opacity:.5},[`&.${xe.disabled} + .${xe.track}`]:{opacity:t.vars?t.vars.opacity.switchTrackDisabled:`${t.palette.mode==="light"?.12:.2}`},[`& .${xe.input}`]:{left:"-100%",width:"300%"}})),W(({theme:t})=>({"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(t.palette).filter(jt(["light"])).map(([e])=>({props:{color:e},style:{[`&.${xe.checked}`]:{color:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[e].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${xe.disabled}`]:{color:t.vars?t.vars.palette.Switch[`${e}DisabledColor`]:`${t.palette.mode==="light"?Bo(t.palette[e].main,.62):Ao(t.palette[e].main,.55)}`}},[`&.${xe.checked} + .${xe.track}`]:{backgroundColor:(t.vars||t).palette[e].main}}}))]}))),z0=k("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(t,e)=>e.track})(W(({theme:t})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:t.vars?t.vars.palette.common.onBackground:`${t.palette.mode==="light"?t.palette.common.black:t.palette.common.white}`,opacity:t.vars?t.vars.opacity.switchTrack:`${t.palette.mode==="light"?.38:.3}`}))),j0=k("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(t,e)=>e.thumb})(W(({theme:t})=>({boxShadow:(t.vars||t).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),O1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSwitch"}),{className:n,color:s="primary",edge:a=!1,size:i="medium",sx:l,slots:c={},slotProps:p={},...u}=r,m={...r,color:s,edge:a,size:i},g=E0(m),b={slots:c,slotProps:p},[v,h]=Q("root",{className:j(g.root,n),elementType:O0,externalForwardedProps:b,ownerState:m,additionalProps:{sx:l}}),[y,S]=Q("thumb",{className:g.thumb,elementType:j0,externalForwardedProps:b,ownerState:m}),C=f.jsx(y,{...S}),[x,w]=Q("track",{className:g.track,elementType:z0,externalForwardedProps:b,ownerState:m});return f.jsxs(v,{...h,children:[f.jsx(N0,{type:"checkbox",icon:C,checkedIcon:C,ref:o,ownerState:m,...u,classes:{...g,root:g.switchBase},slots:{...c.switchBase&&{root:c.switchBase},...c.input&&{input:c.input}},slotProps:{...p.switchBase&&{root:typeof p.switchBase=="function"?p.switchBase(m):p.switchBase},...p.input&&{input:typeof p.input=="function"?p.input(m):p.input}}}),f.jsx(x,{...w})]})});function D0(t){return V("MuiTab",t)}const Be=K("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]),F0=t=>{const{classes:e,textColor:o,fullWidth:r,wrapped:n,icon:s,label:a,selected:i,disabled:l}=t,c={root:["root",s&&a&&"labelIcon",`textColor${B(o)}`,r&&"fullWidth",n&&"wrapped",i&&"selected",l&&"disabled"],icon:["iconWrapper","icon"]};return G(c,D0,e)},W0=k(ue,{name:"MuiTab",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.label&&o.icon&&e.labelIcon,e[`textColor${B(o.textColor)}`],o.fullWidth&&e.fullWidth,o.wrapped&&e.wrapped,{[`& .${Be.iconWrapper}`]:e.iconWrapper},{[`& .${Be.icon}`]:e.icon}]}})(W(({theme:t})=>({...t.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:e})=>e.label&&(e.iconPosition==="top"||e.iconPosition==="bottom"),style:{flexDirection:"column"}},{props:({ownerState:e})=>e.label&&e.iconPosition!=="top"&&e.iconPosition!=="bottom",style:{flexDirection:"row"}},{props:({ownerState:e})=>e.icon&&e.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="top",style:{[`& > .${Be.icon}`]:{marginBottom:6}}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="bottom",style:{[`& > .${Be.icon}`]:{marginTop:6}}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="start",style:{[`& > .${Be.icon}`]:{marginRight:t.spacing(1)}}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="end",style:{[`& > .${Be.icon}`]:{marginLeft:t.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${Be.selected}`]:{opacity:1},[`&.${Be.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(t.vars||t).palette.text.secondary,[`&.${Be.selected}`]:{color:(t.vars||t).palette.primary.main},[`&.${Be.disabled}`]:{color:(t.vars||t).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(t.vars||t).palette.text.secondary,[`&.${Be.selected}`]:{color:(t.vars||t).palette.secondary.main},[`&.${Be.disabled}`]:{color:(t.vars||t).palette.text.disabled}}},{props:({ownerState:e})=>e.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:e})=>e.wrapped,style:{fontSize:t.typography.pxToRem(12)}}]}))),N1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTab"}),{className:n,disabled:s=!1,disableFocusRipple:a=!1,fullWidth:i,icon:l,iconPosition:c="top",indicator:p,label:u,onChange:m,onClick:g,onFocus:b,selected:v,selectionFollowsFocus:h,textColor:y="inherit",value:S,wrapped:C=!1,...x}=r,w={...r,disabled:s,disableFocusRipple:a,selected:v,icon:!!l,iconPosition:c,label:!!u,fullWidth:i,textColor:y,wrapped:C},P=F0(w),$=l&&u&&d.isValidElement(l)?d.cloneElement(l,{className:j(P.icon,l.props.className)}):l,I=T=>{!v&&m&&m(T,S),g&&g(T)},A=T=>{h&&!v&&m&&m(T,S),b&&b(T)};return f.jsxs(W0,{focusRipple:!a,className:j(P.root,n),ref:o,role:"tab","aria-selected":v,disabled:s,onClick:I,onFocus:A,ownerState:w,tabIndex:v?0:-1,...x,children:[c==="top"||c==="start"?f.jsxs(d.Fragment,{children:[$,u]}):f.jsxs(d.Fragment,{children:[u,$]}),p]})}),ul=d.createContext();function U0(t){return V("MuiTable",t)}const z1=K("MuiTable",["root","stickyHeader"]),H0=t=>{const{classes:e,stickyHeader:o}=t;return G({root:["root",o&&"stickyHeader"]},U0,e)},V0=k("table",{name:"MuiTable",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.stickyHeader&&e.stickyHeader]}})(W(({theme:t})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...t.typography.body2,padding:t.spacing(2),color:(t.vars||t).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:e})=>e.stickyHeader,style:{borderCollapse:"separate"}}]}))),Ya="table",j1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTable"}),{className:n,component:s=Ya,padding:a="normal",size:i="medium",stickyHeader:l=!1,...c}=r,p={...r,component:s,padding:a,size:i,stickyHeader:l},u=H0(p),m=d.useMemo(()=>({padding:a,size:i,stickyHeader:l}),[a,i,l]);return f.jsx(ul.Provider,{value:m,children:f.jsx(V0,{as:s,role:s===Ya?null:"table",ref:o,className:j(u.root,n),ownerState:p,...c})})}),Tr=d.createContext();function G0(t){return V("MuiTableBody",t)}const D1=K("MuiTableBody",["root"]),K0=t=>{const{classes:e}=t;return G({root:["root"]},G0,e)},q0=k("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-row-group"}),X0={variant:"body"},Za="tbody",F1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableBody"}),{className:n,component:s=Za,...a}=r,i={...r,component:s},l=K0(i);return f.jsx(Tr.Provider,{value:X0,children:f.jsx(q0,{className:j(l.root,n),as:s,ref:o,role:s===Za?null:"rowgroup",ownerState:i,...a})})});function _0(t){return V("MuiTableCell",t)}const Y0=K("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),Z0=t=>{const{classes:e,variant:o,align:r,padding:n,size:s,stickyHeader:a}=t,i={root:["root",o,a&&"stickyHeader",r!=="inherit"&&`align${B(r)}`,n!=="normal"&&`padding${B(n)}`,`size${B(s)}`]};return G(i,_0,e)},Q0=k("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${B(o.size)}`],o.padding!=="normal"&&e[`padding${B(o.padding)}`],o.align!=="inherit"&&e[`align${B(o.align)}`],o.stickyHeader&&e.stickyHeader]}})(W(({theme:t})=>({...t.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:t.vars?`1px solid ${t.vars.palette.TableCell.border}`:`1px solid - ${t.palette.mode==="light"?Bo(kt(t.palette.divider,1),.88):Ao(kt(t.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(t.vars||t).palette.text.primary,lineHeight:t.typography.pxToRem(24),fontWeight:t.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(t.vars||t).palette.text.primary}},{props:{variant:"footer"},style:{color:(t.vars||t).palette.text.secondary,lineHeight:t.typography.pxToRem(21),fontSize:t.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${Y0.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:e})=>e.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(t.vars||t).palette.background.default}}]}))),ps=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableCell"}),{align:n="inherit",className:s,component:a,padding:i,scope:l,size:c,sortDirection:p,variant:u,...m}=r,g=d.useContext(ul),b=d.useContext(Tr),v=b&&b.variant==="head";let h;a?h=a:h=v?"th":"td";let y=l;h==="td"?y=void 0:!y&&v&&(y="col");const S=u||b&&b.variant,C={...r,align:n,component:h,padding:i||(g&&g.padding?g.padding:"normal"),size:c||(g&&g.size?g.size:"medium"),sortDirection:p,stickyHeader:S==="head"&&g&&g.stickyHeader,variant:S},x=Z0(C);let w=null;return p&&(w=p==="asc"?"ascending":"descending"),f.jsx(Q0,{as:h,ref:o,className:j(x.root,s),"aria-sort":w,scope:y,ownerState:C,...m})});function J0(t){return V("MuiTableContainer",t)}const W1=K("MuiTableContainer",["root"]),tC=t=>{const{classes:e}=t;return G({root:["root"]},J0,e)},eC=k("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(t,e)=>e.root})({width:"100%",overflowX:"auto"}),U1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableContainer"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=tC(i);return f.jsx(eC,{ref:o,as:s,className:j(l.root,n),ownerState:i,...a})});function oC(t){return V("MuiTableFooter",t)}const H1=K("MuiTableFooter",["root"]),rC=t=>{const{classes:e}=t;return G({root:["root"]},oC,e)},nC=k("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-footer-group"}),sC={variant:"footer"},Qa="tfoot",V1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableFooter"}),{className:n,component:s=Qa,...a}=r,i={...r,component:s},l=rC(i);return f.jsx(Tr.Provider,{value:sC,children:f.jsx(nC,{as:s,className:j(l.root,n),ref:o,role:s===Qa?null:"rowgroup",ownerState:i,...a})})});function aC(t){return V("MuiTableHead",t)}const G1=K("MuiTableHead",["root"]),iC=t=>{const{classes:e}=t;return G({root:["root"]},aC,e)},lC=k("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-header-group"}),cC={variant:"head"},Ja="thead",K1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableHead"}),{className:n,component:s=Ja,...a}=r,i={...r,component:s},l=iC(i);return f.jsx(Tr.Provider,{value:cC,children:f.jsx(lC,{as:s,className:j(l.root,n),ref:o,role:s===Ja?null:"rowgroup",ownerState:i,...a})})});function pC(t){return V("MuiToolbar",t)}const q1=K("MuiToolbar",["root","gutters","regular","dense"]),dC=t=>{const{classes:e,disableGutters:o,variant:r}=t;return G({root:["root",!o&&"gutters",r]},pC,e)},uC=k("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableGutters&&e.gutters,e[o.variant]]}})(W(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:t.mixins.toolbar}]}))),fC=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiToolbar"}),{className:n,component:s="div",disableGutters:a=!1,variant:i="regular",...l}=r,c={...r,component:s,disableGutters:a,variant:i},p=dC(c);return f.jsx(uC,{as:s,className:j(p.root,n),ref:o,ownerState:c,...l})}),fl=Qt(f.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),gl=Qt(f.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),gC=d.forwardRef(function(e,o){const{backIconButtonProps:r,count:n,disabled:s=!1,getItemAriaLabel:a,nextIconButtonProps:i,onPageChange:l,page:c,rowsPerPage:p,showFirstButton:u,showLastButton:m,slots:g={},slotProps:b={},...v}=e,h=Ke(),y=U=>{l(U,0)},S=U=>{l(U,c-1)},C=U=>{l(U,c+1)},x=U=>{l(U,Math.max(0,Math.ceil(n/p)-1))},w=g.firstButton??ko,P=g.lastButton??ko,$=g.nextButton??ko,I=g.previousButton??ko,A=g.firstButtonIcon??rl,T=g.lastButtonIcon??nl,z=g.nextButtonIcon??gl,E=g.previousButtonIcon??fl,R=h?P:w,M=h?$:I,O=h?I:$,L=h?w:P,F=h?b.lastButton:b.firstButton,D=h?b.nextButton:b.previousButton,N=h?b.previousButton:b.nextButton,J=h?b.firstButton:b.lastButton;return f.jsxs("div",{ref:o,...v,children:[u&&f.jsx(R,{onClick:y,disabled:s||c===0,"aria-label":a("first",c),title:a("first",c),...F,children:h?f.jsx(T,{...b.lastButtonIcon}):f.jsx(A,{...b.firstButtonIcon})}),f.jsx(M,{onClick:S,disabled:s||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...D??r,children:h?f.jsx(z,{...b.nextButtonIcon}):f.jsx(E,{...b.previousButtonIcon})}),f.jsx(O,{onClick:C,disabled:s||(n!==-1?c>=Math.ceil(n/p)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...N??i,children:h?f.jsx(E,{...b.previousButtonIcon}):f.jsx(z,{...b.nextButtonIcon})}),m&&f.jsx(L,{onClick:x,disabled:s||c>=Math.ceil(n/p)-1,"aria-label":a("last",c),title:a("last",c),...J,children:h?f.jsx(A,{...b.firstButtonIcon}):f.jsx(T,{...b.lastButtonIcon})})]})});function mC(t){return V("MuiTablePagination",t)}const br=K("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var ti;const bC=k(ps,{name:"MuiTablePagination",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({overflow:"auto",color:(t.vars||t).palette.text.primary,fontSize:t.typography.pxToRem(14),"&:last-child":{padding:0}}))),vC=k(fC,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(t,e)=>({[`& .${br.actions}`]:e.actions,...e.toolbar})})(W(({theme:t})=>({minHeight:52,paddingRight:2,[`${t.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[t.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${br.actions}`]:{flexShrink:0,marginLeft:20}}))),hC=k("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(t,e)=>e.spacer})({flex:"1 1 100%"}),yC=k("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(t,e)=>e.selectLabel})(W(({theme:t})=>({...t.typography.body2,flexShrink:0}))),xC=k(Es,{name:"MuiTablePagination",slot:"Select",overridesResolver:(t,e)=>({[`& .${br.selectIcon}`]:e.selectIcon,[`& .${br.select}`]:e.select,...e.input,...e.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${br.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),CC=k(Ph,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(t,e)=>e.menuItem})({}),SC=k("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(t,e)=>e.displayedRows})(W(({theme:t})=>({...t.typography.body2,flexShrink:0})));function wC({from:t,to:e,count:o}){return`${t}–${e} of ${o!==-1?o:`more than ${e}`}`}function RC(t){return`Go to ${t} page`}const PC=t=>{const{classes:e}=t;return G({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},mC,e)},X1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTablePagination"}),{ActionsComponent:n=gC,backIconButtonProps:s,colSpan:a,component:i=ps,count:l,disabled:c=!1,getItemAriaLabel:p=RC,labelDisplayedRows:u=wC,labelRowsPerPage:m="Rows per page:",nextIconButtonProps:g,onPageChange:b,onRowsPerPageChange:v,page:h,rowsPerPage:y,rowsPerPageOptions:S=[10,25,50,100],SelectProps:C={},showFirstButton:x=!1,showLastButton:w=!1,slotProps:P={},slots:$={},...I}=r,A=r,T=PC(A),z=(P==null?void 0:P.select)??C,E=z.native?"option":CC;let R;(i===ps||i==="td")&&(R=a||1e3);const M=De(z.id),O=De(z.labelId),L=()=>l===-1?(h+1)*y:y===-1?l:Math.min(l,(h+1)*y),F={slots:$,slotProps:P},[D,N]=Q("root",{ref:o,className:T.root,elementType:bC,externalForwardedProps:{...F,component:i,...I},ownerState:A,additionalProps:{colSpan:R}}),[J,U]=Q("toolbar",{className:T.toolbar,elementType:vC,externalForwardedProps:F,ownerState:A}),[wt,vt]=Q("spacer",{className:T.spacer,elementType:hC,externalForwardedProps:F,ownerState:A}),[mt,et]=Q("selectLabel",{className:T.selectLabel,elementType:yC,externalForwardedProps:F,ownerState:A,additionalProps:{id:O}}),[rt,Y]=Q("select",{className:T.select,elementType:xC,externalForwardedProps:F,ownerState:A}),[at,ct]=Q("menuItem",{className:T.menuItem,elementType:E,externalForwardedProps:F,ownerState:A}),[st,ft]=Q("displayedRows",{className:T.displayedRows,elementType:SC,externalForwardedProps:F,ownerState:A});return f.jsx(D,{...N,children:f.jsxs(J,{...U,children:[f.jsx(wt,{...vt}),S.length>1&&f.jsx(mt,{...et,children:m}),S.length>1&&f.jsx(rt,{variant:"standard",...!z.variant&&{input:ti||(ti=f.jsx(wn,{}))},value:y,onChange:v,id:M,labelId:O,...z,classes:{...z.classes,root:j(T.input,T.selectRoot,(z.classes||{}).root),select:j(T.select,(z.classes||{}).select),icon:j(T.selectIcon,(z.classes||{}).icon)},disabled:c,...Y,children:S.map(Z=>d.createElement(at,{...ct,key:Z.label?Z.label:Z,value:Z.value?Z.value:Z},Z.label?Z.label:Z))}),f.jsx(st,{...ft,children:u({from:l===0?0:h*y+1,to:L(),count:l===-1?-1:l,page:h})}),f.jsx(n,{className:T.actions,backIconButtonProps:s,count:l,nextIconButtonProps:g,onPageChange:b,page:h,rowsPerPage:y,showFirstButton:x,showLastButton:w,slotProps:P.actions,slots:$.actions,getItemAriaLabel:p,disabled:c})]})})});function $C(t){return V("MuiTableRow",t)}const ei=K("MuiTableRow",["root","selected","hover","head","footer"]),kC=t=>{const{classes:e,selected:o,hover:r,head:n,footer:s}=t;return G({root:["root",o&&"selected",r&&"hover",n&&"head",s&&"footer"]},$C,e)},IC=k("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.head&&e.head,o.footer&&e.footer]}})(W(({theme:t})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${ei.hover}:hover`]:{backgroundColor:(t.vars||t).palette.action.hover},[`&.${ei.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)}}}))),oi="tr",_1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableRow"}),{className:n,component:s=oi,hover:a=!1,selected:i=!1,...l}=r,c=d.useContext(Tr),p={...r,component:s,hover:a,selected:i,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},u=kC(p);return f.jsx(IC,{as:s,ref:o,className:j(u.root,n),role:s===oi?null:"row",ownerState:p,...l})}),TC=Qt(f.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function MC(t){return V("MuiTableSortLabel",t)}const Un=K("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),LC=t=>{const{classes:e,direction:o,active:r}=t,n={root:["root",r&&"active",`direction${B(o)}`],icon:["icon",`iconDirection${B(o)}`]};return G(n,MC,e)},AC=k(ue,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.active&&e.active]}})(W(({theme:t})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(t.vars||t).palette.text.secondary},"&:hover":{color:(t.vars||t).palette.text.secondary,[`& .${Un.icon}`]:{opacity:.5}},[`&.${Un.active}`]:{color:(t.vars||t).palette.text.primary,[`& .${Un.icon}`]:{opacity:1,color:(t.vars||t).palette.text.secondary}}}))),BC=k("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,e[`iconDirection${B(o.direction)}`]]}})(W(({theme:t})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:t.transitions.create(["opacity","transform"],{duration:t.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),Y1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableSortLabel"}),{active:n=!1,children:s,className:a,direction:i="asc",hideSortIcon:l=!1,IconComponent:c=TC,slots:p={},slotProps:u={},...m}=r,g={...r,active:n,direction:i,hideSortIcon:l,IconComponent:c},b=LC(g),v={slots:p,slotProps:u},[h,y]=Q("root",{elementType:AC,externalForwardedProps:v,ownerState:g,className:j(b.root,a),ref:o}),[S,C]=Q("icon",{elementType:BC,externalForwardedProps:v,ownerState:g,className:b.icon});return f.jsxs(h,{disableRipple:!0,component:"span",...y,...m,children:[s,l&&!n?null:f.jsx(S,{as:c,...C})]})});function EC(t){return(1+Math.sin(Math.PI*t-Math.PI/2))/2}function OC(t,e,o,r={},n=()=>{}){const{ease:s=EC,duration:a=300}=r;let i=null;const l=e[t];let c=!1;const p=()=>{c=!0},u=m=>{if(c){n(new Error("Animation cancelled"));return}i===null&&(i=m);const g=Math.min(1,(m-i)/a);if(e[t]=s(g)*(o-l)+l,g>=1){requestAnimationFrame(()=>{n(null)});return}requestAnimationFrame(u)};return l===o?(n(new Error("Element already at target position")),p):(requestAnimationFrame(u),p)}const NC={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function zC(t){const{onChange:e,...o}=t,r=d.useRef(),n=d.useRef(null),s=()=>{r.current=n.current.offsetHeight-n.current.clientHeight};return be(()=>{const a=$r(()=>{const l=r.current;s(),l!==r.current&&e(r.current)}),i=me(n.current);return i.addEventListener("resize",a),()=>{a.clear(),i.removeEventListener("resize",a)}},[e]),d.useEffect(()=>{s(),e(r.current)},[e]),f.jsx("div",{style:NC,...o,ref:n})}function jC(t){return V("MuiTabScrollButton",t)}const DC=K("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),FC=t=>{const{classes:e,orientation:o,disabled:r}=t;return G({root:["root",o,r&&"disabled"]},jC,e)},WC=k(ue,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.orientation&&e[o.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${DC.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),UC=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTabScrollButton"}),{className:n,slots:s={},slotProps:a={},direction:i,orientation:l,disabled:c,...p}=r,u=Ke(),m={isRtl:u,...r},g=FC(m),b=s.StartScrollButtonIcon??fl,v=s.EndScrollButtonIcon??gl,h=Ce({elementType:b,externalSlotProps:a.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m}),y=Ce({elementType:v,externalSlotProps:a.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m});return f.jsx(WC,{component:"div",className:j(g.root,n),ref:o,role:null,ownerState:m,tabIndex:null,...p,style:{...p.style,...l==="vertical"&&{"--TabScrollButton-svgRotate":`rotate(${u?-90:90}deg)`}},children:i==="left"?f.jsx(b,{...h}):f.jsx(v,{...y})})});function HC(t){return V("MuiTabs",t)}const Hn=K("MuiTabs",["root","vertical","list","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),ri=(t,e)=>t===e?t.firstChild:e&&e.nextElementSibling?e.nextElementSibling:t.firstChild,ni=(t,e)=>t===e?t.lastChild:e&&e.previousElementSibling?e.previousElementSibling:t.lastChild,Zr=(t,e,o)=>{let r=!1,n=o(t,e);for(;n;){if(n===t.firstChild){if(r)return;r=!0}const s=n.disabled||n.getAttribute("aria-disabled")==="true";if(!n.hasAttribute("tabindex")||s)n=o(t,n);else{n.focus();return}}},VC=t=>{const{vertical:e,fixed:o,hideScrollbar:r,scrollableX:n,scrollableY:s,centered:a,scrollButtonsHideMobile:i,classes:l}=t;return G({root:["root",e&&"vertical"],scroller:["scroller",o&&"fixed",r&&"hideScrollbar",n&&"scrollableX",s&&"scrollableY"],list:["list","flexContainer",e&&"flexContainerVertical",e&&"vertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",i&&"scrollButtonsHideMobile"],scrollableX:[n&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]},HC,l)},GC=k("div",{name:"MuiTabs",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Hn.scrollButtons}`]:e.scrollButtons},{[`& .${Hn.scrollButtons}`]:o.scrollButtonsHideMobile&&e.scrollButtonsHideMobile},e.root,o.vertical&&e.vertical]}})(W(({theme:t})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.scrollButtonsHideMobile,style:{[`& .${Hn.scrollButtons}`]:{[t.breakpoints.down("sm")]:{display:"none"}}}}]}))),KC=k("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.scroller,o.fixed&&e.fixed,o.hideScrollbar&&e.hideScrollbar,o.scrollableX&&e.scrollableX,o.scrollableY&&e.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:t})=>t.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:t})=>t.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:t})=>t.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:t})=>t.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),qC=k("div",{name:"MuiTabs",slot:"List",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.list,e.flexContainer,o.vertical&&e.flexContainerVertical,o.centered&&e.centered]}})({display:"flex",variants:[{props:({ownerState:t})=>t.vertical,style:{flexDirection:"column"}},{props:({ownerState:t})=>t.centered,style:{justifyContent:"center"}}]}),XC=k("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(t,e)=>e.indicator})(W(({theme:t})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:t.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(t.vars||t).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(t.vars||t).palette.secondary.main}},{props:({ownerState:e})=>e.vertical,style:{height:"100%",width:2,right:0}}]}))),_C=k(zC)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),si={},Z1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTabs"}),n=le(),s=Ke(),{"aria-label":a,"aria-labelledby":i,action:l,centered:c=!1,children:p,className:u,component:m="div",allowScrollButtonsMobile:g=!1,indicatorColor:b="primary",onChange:v,orientation:h="horizontal",ScrollButtonComponent:y,scrollButtons:S="auto",selectionFollowsFocus:C,slots:x={},slotProps:w={},TabIndicatorProps:P={},TabScrollButtonProps:$={},textColor:I="primary",value:A,variant:T="standard",visibleScrollbar:z=!1,...E}=r,R=T==="scrollable",M=h==="vertical",O=M?"scrollTop":"scrollLeft",L=M?"top":"left",F=M?"bottom":"right",D=M?"clientHeight":"clientWidth",N=M?"height":"width",J={...r,component:m,allowScrollButtonsMobile:g,indicatorColor:b,orientation:h,vertical:M,scrollButtons:S,textColor:I,variant:T,visibleScrollbar:z,fixed:!R,hideScrollbar:R&&!z,scrollableX:R&&!M,scrollableY:R&&M,centered:c&&!R,scrollButtonsHideMobile:!g},U=VC(J),wt=Ce({elementType:x.StartScrollButtonIcon,externalSlotProps:w.startScrollButtonIcon,ownerState:J}),vt=Ce({elementType:x.EndScrollButtonIcon,externalSlotProps:w.endScrollButtonIcon,ownerState:J}),[mt,et]=d.useState(!1),[rt,Y]=d.useState(si),[at,ct]=d.useState(!1),[st,ft]=d.useState(!1),[Z,pt]=d.useState(!1),[it,ht]=d.useState({overflow:"hidden",scrollbarWidth:0}),Mt=new Map,tt=d.useRef(null),ot=d.useRef(null),dt={slots:x,slotProps:{indicator:P,scrollButton:$,...w}},St=()=>{const yt=tt.current;let Pt;if(yt){const Ft=yt.getBoundingClientRect();Pt={clientWidth:yt.clientWidth,scrollLeft:yt.scrollLeft,scrollTop:yt.scrollTop,scrollWidth:yt.scrollWidth,top:Ft.top,bottom:Ft.bottom,left:Ft.left,right:Ft.right}}let Dt;if(yt&&A!==!1){const Ft=ot.current.children;if(Ft.length>0){const Zt=Ft[Mt.get(A)];Dt=Zt?Zt.getBoundingClientRect():null}}return{tabsMeta:Pt,tabMeta:Dt}},gt=ee(()=>{const{tabsMeta:yt,tabMeta:Pt}=St();let Dt=0,Ft;M?(Ft="top",Pt&&yt&&(Dt=Pt.top-yt.top+yt.scrollTop)):(Ft=s?"right":"left",Pt&&yt&&(Dt=(s?-1:1)*(Pt[Ft]-yt[Ft]+yt.scrollLeft)));const Zt={[Ft]:Dt,[N]:Pt?Pt[N]:0};if(typeof rt[Ft]!="number"||typeof rt[N]!="number")Y(Zt);else{const Se=Math.abs(rt[Ft]-Zt[Ft]),Ve=Math.abs(rt[N]-Zt[N]);(Se>=1||Ve>=1)&&Y(Zt)}}),nt=(yt,{animation:Pt=!0}={})=>{Pt?OC(O,tt.current,yt,{duration:n.transitions.duration.standard}):tt.current[O]=yt},Tt=yt=>{let Pt=tt.current[O];M?Pt+=yt:Pt+=yt*(s?-1:1),nt(Pt)},At=()=>{const yt=tt.current[D];let Pt=0;const Dt=Array.from(ot.current.children);for(let Ft=0;Ftyt){Ft===0&&(Pt=yt);break}Pt+=Zt[D]}return Pt},q=()=>{Tt(-1*At())},lt=()=>{Tt(At())},[bt,{onChange:$t,...It}]=Q("scrollbar",{className:j(U.scrollableX,U.hideScrollbar),elementType:_C,shouldForwardComponentProp:!0,externalForwardedProps:dt,ownerState:J}),ut=d.useCallback(yt=>{$t==null||$t(yt),ht({overflow:null,scrollbarWidth:yt})},[$t]),[Ct,Ut]=Q("scrollButtons",{className:j(U.scrollButtons,$.className),elementType:UC,externalForwardedProps:dt,ownerState:J,additionalProps:{orientation:h,slots:{StartScrollButtonIcon:x.startScrollButtonIcon||x.StartScrollButtonIcon,EndScrollButtonIcon:x.endScrollButtonIcon||x.EndScrollButtonIcon},slotProps:{startScrollButtonIcon:wt,endScrollButtonIcon:vt}}}),Et=()=>{const yt={};yt.scrollbarSizeListener=R?f.jsx(bt,{...It,onChange:ut}):null;const Dt=R&&(S==="auto"&&(at||st)||S===!0);return yt.scrollButtonStart=Dt?f.jsx(Ct,{direction:s?"right":"left",onClick:q,disabled:!at,...Ut}):null,yt.scrollButtonEnd=Dt?f.jsx(Ct,{direction:s?"left":"right",onClick:lt,disabled:!st,...Ut}):null,yt},Gt=ee(yt=>{const{tabsMeta:Pt,tabMeta:Dt}=St();if(!(!Dt||!Pt)){if(Dt[L]Pt[F]){const Ft=Pt[O]+(Dt[F]-Pt[F]);nt(Ft,{animation:yt})}}}),xt=ee(()=>{R&&S!==!1&&pt(!Z)});d.useEffect(()=>{const yt=$r(()=>{tt.current&>()});let Pt;const Dt=Se=>{Se.forEach(Ve=>{Ve.removedNodes.forEach(to=>{Pt==null||Pt.unobserve(to)}),Ve.addedNodes.forEach(to=>{Pt==null||Pt.observe(to)})}),yt(),xt()},Ft=me(tt.current);Ft.addEventListener("resize",yt);let Zt;return typeof ResizeObserver<"u"&&(Pt=new ResizeObserver(yt),Array.from(ot.current.children).forEach(Se=>{Pt.observe(Se)})),typeof MutationObserver<"u"&&(Zt=new MutationObserver(Dt),Zt.observe(ot.current,{childList:!0})),()=>{yt.clear(),Ft.removeEventListener("resize",yt),Zt==null||Zt.disconnect(),Pt==null||Pt.disconnect()}},[gt,xt]),d.useEffect(()=>{const yt=Array.from(ot.current.children),Pt=yt.length;if(typeof IntersectionObserver<"u"&&Pt>0&&R&&S!==!1){const Dt=yt[0],Ft=yt[Pt-1],Zt={root:tt.current,threshold:.99},Se=ne=>{ct(!ne[0].isIntersecting)},Ve=new IntersectionObserver(Se,Zt);Ve.observe(Dt);const to=ne=>{ft(!ne[0].isIntersecting)},co=new IntersectionObserver(to,Zt);return co.observe(Ft),()=>{Ve.disconnect(),co.disconnect()}}},[R,S,Z,p==null?void 0:p.length]),d.useEffect(()=>{et(!0)},[]),d.useEffect(()=>{gt()}),d.useEffect(()=>{Gt(si!==rt)},[Gt,rt]),d.useImperativeHandle(l,()=>({updateIndicator:gt,updateScrollButtons:xt}),[gt,xt]);const[Bt,Xt]=Q("indicator",{className:j(U.indicator,P.className),elementType:XC,externalForwardedProps:dt,ownerState:J,additionalProps:{style:rt}}),oe=f.jsx(Bt,{...Xt});let fe=0;const ie=d.Children.map(p,yt=>{if(!d.isValidElement(yt))return null;const Pt=yt.props.value===void 0?fe:yt.props.value;Mt.set(Pt,fe);const Dt=Pt===A;return fe+=1,d.cloneElement(yt,{fullWidth:T==="fullWidth",indicator:Dt&&!mt&&oe,selected:Dt,selectionFollowsFocus:C,onChange:v,textColor:I,value:Pt,...fe===1&&A===!1&&!yt.props.tabIndex?{tabIndex:0}:{}})}),Pe=yt=>{if(yt.altKey||yt.shiftKey||yt.ctrlKey||yt.metaKey)return;const Pt=ot.current,Dt=te(Pt).activeElement;if(Dt.getAttribute("role")!=="tab")return;let Zt=h==="horizontal"?"ArrowLeft":"ArrowUp",Se=h==="horizontal"?"ArrowRight":"ArrowDown";switch(h==="horizontal"&&s&&(Zt="ArrowRight",Se="ArrowLeft"),yt.key){case Zt:yt.preventDefault(),Zr(Pt,Dt,ni);break;case Se:yt.preventDefault(),Zr(Pt,Dt,ri);break;case"Home":yt.preventDefault(),Zr(Pt,null,ri);break;case"End":yt.preventDefault(),Zr(Pt,null,ni);break}},Vt=Et(),[_t,ce]=Q("root",{ref:o,className:j(U.root,u),elementType:GC,externalForwardedProps:{...dt,...E,component:m},ownerState:J}),[$e,pe]=Q("scroller",{ref:tt,className:U.scroller,elementType:KC,externalForwardedProps:dt,ownerState:J,additionalProps:{style:{overflow:it.overflow,[M?`margin${s?"Left":"Right"}`:"marginBottom"]:z?void 0:-it.scrollbarWidth}}}),[Lt,ge]=Q("list",{ref:ot,className:j(U.list,U.flexContainer),elementType:qC,externalForwardedProps:dt,ownerState:J,getSlotProps:yt=>({...yt,onKeyDown:Pt=>{var Dt;Pe(Pt),(Dt=yt.onKeyDown)==null||Dt.call(yt,Pt)}})});return f.jsxs(_t,{...ce,children:[Vt.scrollButtonStart,Vt.scrollbarSizeListener,f.jsxs($e,{...pe,children:[f.jsx(Lt,{"aria-label":a,"aria-labelledby":i,"aria-orientation":h==="vertical"?"vertical":null,role:"tablist",...ge,children:ie}),mt&&oe]}),Vt.scrollButtonEnd]})});function YC(t){return V("MuiTextField",t)}const Q1=K("MuiTextField",["root"]),ZC={standard:Rn,filled:Ts,outlined:As},QC=t=>{const{classes:e}=t;return G({root:["root"]},YC,e)},JC=k(sb,{name:"MuiTextField",slot:"Root",overridesResolver:(t,e)=>e.root})({}),J1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTextField"}),{autoComplete:n,autoFocus:s=!1,children:a,className:i,color:l="primary",defaultValue:c,disabled:p=!1,error:u=!1,FormHelperTextProps:m,fullWidth:g=!1,helperText:b,id:v,InputLabelProps:h,inputProps:y,InputProps:S,inputRef:C,label:x,maxRows:w,minRows:P,multiline:$=!1,name:I,onBlur:A,onChange:T,onFocus:z,placeholder:E,required:R=!1,rows:M,select:O=!1,SelectProps:L,slots:F={},slotProps:D={},type:N,value:J,variant:U="outlined",...wt}=r,vt={...r,autoFocus:s,color:l,disabled:p,error:u,fullWidth:g,multiline:$,required:R,select:O,variant:U},mt=QC(vt),et=De(v),rt=b&&et?`${et}-helper-text`:void 0,Y=x&&et?`${et}-label`:void 0,at=ZC[U],ct={slots:F,slotProps:{input:S,inputLabel:h,htmlInput:y,formHelperText:m,select:L,...D}},st={},ft=ct.slotProps.inputLabel;U==="outlined"&&(ft&&typeof ft.shrink<"u"&&(st.notched=ft.shrink),st.label=x),O&&((!L||!L.native)&&(st.id=void 0),st["aria-describedby"]=void 0);const[Z,pt]=Q("root",{elementType:JC,shouldForwardComponentProp:!0,externalForwardedProps:{...ct,...wt},ownerState:vt,className:j(mt.root,i),ref:o,additionalProps:{disabled:p,error:u,fullWidth:g,required:R,color:l,variant:U}}),[it,ht]=Q("input",{elementType:at,externalForwardedProps:ct,additionalProps:st,ownerState:vt}),[Mt,tt]=Q("inputLabel",{elementType:Cv,externalForwardedProps:ct,ownerState:vt}),[ot,dt]=Q("htmlInput",{elementType:"input",externalForwardedProps:ct,ownerState:vt}),[St,gt]=Q("formHelperText",{elementType:vb,externalForwardedProps:ct,ownerState:vt}),[nt,Tt]=Q("select",{elementType:Es,externalForwardedProps:ct,ownerState:vt}),At=f.jsx(it,{"aria-describedby":rt,autoComplete:n,autoFocus:s,defaultValue:c,fullWidth:g,multiline:$,name:I,rows:M,maxRows:w,minRows:P,type:N,value:J,id:et,inputRef:C,onBlur:A,onChange:T,onFocus:z,placeholder:E,inputProps:dt,slots:{input:F.htmlInput?ot:void 0},...ht});return f.jsxs(Z,{...pt,children:[x!=null&&x!==""&&f.jsx(Mt,{htmlFor:et,id:Y,...tt,children:x}),O?f.jsx(nt,{"aria-describedby":rt,id:et,labelId:Y,value:J,input:At,...Tt,children:a}):At,b&&f.jsx(St,{id:rt,...gt,children:b})]})});function tS(t){return V("MuiToggleButton",t)}const Io=K("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),ml=d.createContext({}),bl=d.createContext(void 0);function eS(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const oS=t=>{const{classes:e,fullWidth:o,selected:r,disabled:n,size:s,color:a}=t,i={root:["root",r&&"selected",n&&"disabled",o&&"fullWidth",`size${B(s)}`,a]};return G(i,tS,e)},rS=k(ue,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`size${B(o.size)}`]]}})(W(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${Io.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.text.primary,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${Io.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.text.primary,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.text.primary,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.text.primary,t.palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&.${Io.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette[e].main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette[e].main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette[e].main,t.palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),tR=d.forwardRef(function(e,o){const{value:r,...n}=d.useContext(ml),s=d.useContext(bl),a=ds({...n,selected:eS(e.value,r)},e),i=_({props:a,name:"MuiToggleButton"}),{children:l,className:c,color:p="standard",disabled:u=!1,disableFocusRipple:m=!1,fullWidth:g=!1,onChange:b,onClick:v,selected:h,size:y="medium",value:S,...C}=i,x={...i,color:p,disabled:u,disableFocusRipple:m,fullWidth:g,size:y},w=oS(x),P=I=>{v&&(v(I,S),I.defaultPrevented)||b&&b(I,S)},$=s||"";return f.jsx(rS,{className:j(n.className,w.root,c,$),disabled:u,focusRipple:!m,ref:o,onClick:P,onChange:b,value:S,ownerState:x,"aria-pressed":h,...C,children:l})});function nS(t){return V("MuiToggleButtonGroup",t)}const Jt=K("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),sS=t=>{const{classes:e,orientation:o,fullWidth:r,disabled:n}=t,s={root:["root",o,r&&"fullWidth"],grouped:["grouped",`grouped${B(o)}`,n&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return G(s,nS,e)},aS=k("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Jt.grouped}`]:e.grouped},{[`& .${Jt.grouped}`]:e[`grouped${B(o.orientation)}`]},{[`& .${Jt.firstButton}`]:e.firstButton},{[`& .${Jt.lastButton}`]:e.lastButton},{[`& .${Jt.middleButton}`]:e.middleButton},e.root,o.orientation==="vertical"&&e.vertical,o.fullWidth&&e.fullWidth]}})(W(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Jt.grouped}`]:{[`&.${Jt.selected} + .${Jt.grouped}.${Jt.selected}`]:{borderTop:0,marginTop:0}},[`& .${Jt.firstButton},& .${Jt.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${Jt.lastButton},& .${Jt.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${Jt.lastButton}.${Io.disabled},& .${Jt.middleButton}.${Io.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${Jt.grouped}`]:{[`&.${Jt.selected} + .${Jt.grouped}.${Jt.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${Jt.firstButton},& .${Jt.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Jt.lastButton},& .${Jt.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${Jt.lastButton}.${Io.disabled},& .${Jt.middleButton}.${Io.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),eR=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiToggleButtonGroup"}),{children:n,className:s,color:a="standard",disabled:i=!1,exclusive:l=!1,fullWidth:c=!1,onChange:p,orientation:u="horizontal",size:m="medium",value:g,...b}=r,v={...r,disabled:i,fullWidth:c,orientation:u,size:m},h=sS(v),y=d.useCallback(($,I)=>{if(!p)return;const A=g&&g.indexOf(I);let T;g&&A>=0?(T=g.slice(),T.splice(A,1)):T=g?g.concat(I):[I],p($,T)},[p,g]),S=d.useCallback(($,I)=>{p&&p($,g===I?null:I)},[p,g]),C=d.useMemo(()=>({className:h.grouped,onChange:l?S:y,value:g,size:m,fullWidth:c,color:a,disabled:i}),[h.grouped,l,S,y,g,m,c,a,i]),x=bi(n),w=x.length,P=$=>{const I=$===0,A=$===w-1;return I&&A?"":I?h.firstButton:A?h.lastButton:h.middleButton};return f.jsx(aS,{role:"group",className:j(h.root,s),ref:o,ownerState:v,...b,children:f.jsx(ml.Provider,{value:C,children:x.map(($,I)=>f.jsx(bl.Provider,{value:P(I),children:$},I))})})});function iS(t,e){const{disableHysteresis:o=!1,threshold:r=100,target:n}=e,s=t.current;return n&&(t.current=n.pageYOffset!==void 0?n.pageYOffset:n.scrollTop),!o&&s!==void 0&&t.currentr}const lS=typeof window<"u"?window:null;function oR(t={}){const{getTrigger:e=iS,target:o=lS,...r}=t,n=d.useRef(),[s,a]=d.useState(()=>e(n,r));return d.useEffect(()=>{if(o===null)return a(!1);const i=()=>{a(e(n,{target:o,...r}))};return i(),o.addEventListener("scroll",i,{passive:!0}),()=>{o.removeEventListener("scroll",i,{passive:!0})}},[o,e,JSON.stringify(r)]),s}const rR="6.4.12",nR=6,sR=4,aR=12,iR=void 0;export{AS as Accordion,ES as AccordionActions,NS as AccordionDetails,jS as AccordionSummary,FS as Alert,US as AlertTitle,VS as AppBar,KS as Autocomplete,Cf as Avatar,qS as AvatarGroup,Oi as Backdrop,_S as Badge,ZS as BottomNavigation,QS as BottomNavigationAction,JS as Box,tw as Breadcrumbs,ew as Button,ue as ButtonBase,ow as ButtonGroup,ji as ButtonGroupButtonContext,zi as ButtonGroupContext,nw as Card,sw as CardActionArea,iw as CardActions,cw as CardContent,pw as CardHeader,uw as CardMedia,fw as Checkbox,Hu as Chip,wi as CircularProgress,_g as ClickAwayListener,hr as Collapse,gw as Container,vw as CssBaseline,IR as CssVarsProvider,xw as Dialog,Sw as DialogActions,Rw as DialogContent,$w as DialogContentText,kw as DialogTitle,Ra as Divider,_m as Drawer,TR as Experimental_CssVarsProvider,Ki as Fab,es as Fade,Ts as FilledInput,sb as FormControl,Mw as FormControlLabel,fb as FormGroup,vb as FormHelperText,Sb as FormLabel,xb as FormLabelRoot,Hc as GlobalStyles,Aw as Grid,Bw as Grid2,Sr as Grow,Nw as Hidden,Zb as Icon,ko as IconButton,Dw as ImageList,Fw as ImageListItem,Uw as ImageListItemBar,Rn as Input,Hw as InputAdornment,wn as InputBase,Cv as InputLabel,Lv as LinearProgress,Kw as Link,Fv as List,Zw as ListItem,Jw as ListItemAvatar,_w as ListItemButton,t1 as ListItemIcon,Yi as ListItemSecondaryAction,e1 as ListItemText,ts as ListSubheader,xh as Menu,Ph as MenuItem,lh as MenuList,s1 as MobileStepper,Is as Modal,rm as ModalManager,zh as NativeSelect,jh as NoSsr,As as OutlinedInput,i1 as Pagination,ey as PaginationItem,Ue as Paper,uh as Popover,Qi as PopoverPaper,dh as PopoverRoot,vn as Popper,Ei as Portal,l1 as Radio,p1 as RadioGroup,d1 as Rating,f1 as ScopedCssBaseline,Es as Select,m1 as Skeleton,Hm as Slide,b1 as Slider,fx as SliderMark,gx as SliderMarkLabel,cx as SliderRail,lx as SliderRoot,dx as SliderThumb,px as SliderTrack,ux as SliderValueLabel,y1 as Snackbar,wx as SnackbarContent,x1 as SpeedDial,C1 as SpeedDialAction,Yx as SpeedDialIcon,S1 as Stack,k1 as Step,I1 as StepButton,y0 as StepConnector,L1 as StepContent,Zo as StepContext,s0 as StepIcon,dl as StepLabel,B1 as Stepper,zo as StepperContext,MR as StyledEngineProvider,Fl as SvgIcon,E1 as SwipeableDrawer,O1 as Switch,pn as THEME_ID,N1 as Tab,UC as TabScrollButton,j1 as Table,F1 as TableBody,ps as TableCell,U1 as TableContainer,V1 as TableFooter,K1 as TableHead,X1 as TablePagination,_1 as TableRow,Y1 as TableSortLabel,Z1 as Tabs,J1 as TextField,Ku as TextareaAutosize,LR as ThemeProvider,tR as ToggleButton,eR as ToggleButtonGroup,fC as Toolbar,Fx as Tooltip,he as Typography,pm as Unstable_TrapFocus,Ix as Zoom,BS as accordionActionsClasses,Or as accordionClasses,OS as accordionDetailsClasses,Uo as accordionSummaryClasses,hS as adaptV4Theme,qs as alertClasses,WS as alertTitleClasses,kt as alpha,HS as appBarClasses,zt as autocompleteClasses,mf as avatarClasses,wf as avatarGroupClasses,XS as backdropClasses,fo as badgeClasses,Ni as bottomNavigationActionClasses,YS as bottomNavigationClasses,Uf as boxClasses,_f as breadcrumbsClasses,kp as buttonBaseClasses,Co as buttonClasses,Nt as buttonGroupClasses,B as capitalize,Tn as cardActionAreaClasses,aw as cardActionsClasses,rw as cardClasses,lw as cardContentClasses,ln as cardHeaderClasses,dw as cardMediaClasses,Mn as checkboxClasses,Wt as chipClasses,DS as circularProgressClasses,MS as collapseClasses,IS as colors,bw as containerClasses,Gn as createChainedFunction,pR as createColorScheme,md as createFilterOptions,dR as createMuiTheme,xS as createStyles,Qt as createSvgIcon,ai as createTheme,uR as createTransitions,No as css,hw as darkScrollbar,Ao as darken,$r as debounce,fR as decomposeColor,mS as deprecatedPropType,Cw as dialogActionsClasses,An as dialogClasses,ww as dialogContentClasses,Pw as dialogContentTextClasses,Tm as dialogTitleClasses,wa as dividerClasses,Iw as drawerClasses,Dl as duration,gR as easing,tn as emphasize,k as experimentalStyled,$S as experimental_extendTheme,kS as experimental_sx,Tl as extendTheme,Pa as fabClasses,Ie as filledInputClasses,Tw as formControlClasses,dr as formControlLabelClasses,Lw as formGroupClasses,$a as formHelperTextClasses,mr as formLabelClasses,V as generateUtilityClass,K as generateUtilityClasses,pp as getAccordionActionsUtilityClass,fp as getAccordionDetailsUtilityClass,Mp as getAccordionSummaryUtilityClass,ap as getAccordionUtilityClass,cd as getAlertTitleUtilityClass,zp as getAlertUtilityClass,ud as getAppBarUtilityClass,Ju as getAutocompleteUtilityClass,Sf as getAvatarGroupUtilityClass,gf as getAvatarUtilityClass,kf as getBackdropUtilityClass,Lf as getBadgeUtilityClass,jf as getBottomNavigationActionUtilityClass,Of as getBottomNavigationUtilityClass,Xf as getBreadcrumbsUtilityClass,$p as getButtonBaseUtilityClass,ig as getButtonGroupUtilityClass,eg as getButtonUtilityClass,gg as getCardActionAreaUtilityClass,hg as getCardActionsUtilityClass,Cg as getCardContentUtilityClass,Rg as getCardHeaderUtilityClass,Mg as getCardMediaUtilityClass,dg as getCardUtilityClass,Ug as getCheckboxUtilityClass,Du as getChipUtilityClass,jp as getCircularProgressUtilityClass,Qc as getCollapseUtilityClass,mw as getContainerUtilityClass,mR as getContrastRatio,Rm as getDialogActionsUtilityClass,Am as getDialogContentTextUtilityClass,km as getDialogContentUtilityClass,Im as getDialogTitleUtilityClass,hm as getDialogUtilityClass,zm as getDividerUtilityClass,Vm as getDrawerUtilityClass,Ym as getFabUtilityClass,Qu as getFilledInputUtilityClass,ab as getFormControlLabelUtilityClasses,ob as getFormControlUtilityClasses,pb as getFormGroupUtilityClass,gb as getFormHelperTextUtilityClasses,hb as getFormLabelUtilityClasses,Ew as getGrid2UtilityClass,Gp as getIconButtonUtilityClass,Xb as getIconUtilityClass,nv as getImageListItemBarUtilityClass,ev as getImageListItemUtilityClass,Qb as getImageListUtilityClass,AR as getInitColorSchemeScript,gv as getInputAdornmentUtilityClass,Xu as getInputBaseUtilityClass,hv as getInputLabelUtilityClasses,Yu as getInputUtilityClass,Sv as getLinearProgressUtilityClass,Av as getLinkUtilityClass,Jv as getListItemAvatarUtilityClass,Uv as getListItemButtonUtilityClass,oh as getListItemIconUtilityClass,Kv as getListItemSecondaryActionClassesUtilityClass,sh as getListItemTextUtilityClass,Wv as getListItemUtilityClass,Ou as getListSubheaderUtilityClass,zv as getListUtilityClass,bR as getLuminance,Ch as getMenuItemUtilityClass,fh as getMenuUtilityClass,$h as getMobileStepperUtilityClass,gm as getModalUtilityClass,Ji as getNativeSelectUtilityClasses,Oa as getOffsetLeft,Ea as getOffsetTop,Zu as getOutlinedInputUtilityClass,zs as getOverlayAlpha,Xh as getPaginationItemUtilityClass,Kh as getPaginationUtilityClass,rp as getPaperUtilityClass,ch as getPopoverUtilityClass,ku as getPopperUtilityClass,hy as getRadioGroupUtilityClass,uy as getRadioUtilityClass,Sy as getRatingUtilityClass,Ay as getScopedCssBaselineUtilityClass,cl as getSelectUtilityClasses,Gy as getSkeletonUtilityClass,sx as getSliderUtilityClass,hx as getSnackbarContentUtilityClass,Rx as getSnackbarUtilityClass,Wx as getSpeedDialActionUtilityClass,qx as getSpeedDialIconUtilityClass,Tx as getSpeedDialUtilityClass,u0 as getStepButtonUtilityClass,m0 as getStepConnectorUtilityClass,x0 as getStepContentUtilityClass,o0 as getStepIconUtilityClass,a0 as getStepLabelUtilityClass,Zx as getStepUtilityClass,R0 as getStepperUtilityClass,vR as getSvgIconUtilityClass,B0 as getSwitchUtilityClass,jC as getTabScrollButtonUtilityClass,D0 as getTabUtilityClass,G0 as getTableBodyUtilityClass,_0 as getTableCellUtilityClass,J0 as getTableContainerUtilityClass,oC as getTableFooterUtilityClass,aC as getTableHeadUtilityClass,mC as getTablePaginationUtilityClass,$C as getTableRowUtilityClass,MC as getTableSortLabelUtilityClass,U0 as getTableUtilityClass,HC as getTabsUtilityClass,YC as getTextFieldUtilityClass,nS as getToggleButtonGroupUtilityClass,tS as getToggleButtonUtilityClass,pC as getToolbarUtilityClass,Ex as getTooltipUtilityClass,zS as getTouchRippleUtilityClass,nd as getTypographyUtilityClass,Ow as grid2Classes,hR as hexToRgb,yR as hslToRgb,Xs as iconButtonClasses,zw as iconClasses,jw as imageListClasses,Ww as imageListItemBarClasses,En as imageListItemClasses,Ta as inputAdornmentClasses,ke as inputBaseClasses,bo as inputClasses,Vw as inputLabelClasses,yo as isMuiElement,Je as keyframes,Bo as lighten,Gw as linearProgressClasses,Bv as linkClasses,qw as listClasses,Qw as listItemAvatarClasses,Wo as listItemButtonClasses,Xw as listItemClasses,Aa as listItemIconClasses,Yw as listItemSecondaryActionClasses,Ho as listItemTextClasses,GS as listSubheaderClasses,nR as major,wS as makeStyles,r1 as menuClasses,rr as menuItemClasses,Go as mergeSlotProps,sR as minor,n1 as mobileStepperClasses,yw as modalClasses,Ls as nativeSelectClasses,Ee as outlinedInputClasses,te as ownerDocument,me as ownerWindow,a1 as paginationClasses,ye as paginationItemClasses,LS as paperClasses,aR as patch,o1 as popoverClasses,iR as prerelease,xR as private_createMixins,CR as private_createTypography,SR as private_excludeVariablesFromRoot,ja as radioClasses,c1 as radioGroupClasses,nr as ratingClasses,wR as recomposeColor,bS as requirePropFactory,CS as responsiveFontSizes,RR as rgbToHex,u1 as scopedCssBaselineClasses,sr as selectClasses,Kn as setRef,PR as shouldSkipGeneratingVar,g1 as skeletonClasses,Ne as sliderClasses,h1 as snackbarClasses,v1 as snackbarContentClasses,_r as speedDialActionClasses,Gr as speedDialClasses,_e as speedDialIconClasses,w1 as stackClasses,Xa as stepButtonClasses,$1 as stepClasses,T1 as stepConnectorClasses,M1 as stepContentClasses,zn as stepIconClasses,ho as stepLabelClasses,A1 as stepperClasses,k as styled,$R as svgIconClasses,xe as switchClasses,Be as tabClasses,DC as tabScrollButtonClasses,D1 as tableBodyClasses,Y0 as tableCellClasses,z1 as tableClasses,W1 as tableContainerClasses,H1 as tableFooterClasses,G1 as tableHeadClasses,br as tablePaginationClasses,ei as tableRowClasses,Un as tableSortLabelClasses,Hn as tabsClasses,Q1 as textFieldClasses,Io as toggleButtonClasses,Jt as toggleButtonGroupClasses,q1 as toolbarClasses,re as tooltipClasses,Oe as touchRippleClasses,nn as typographyClasses,TS as unstable_ClassNameGenerator,G as unstable_composeClasses,Il as unstable_createBreakpoints,yS as unstable_createMuiStrictModeTheme,Ci as unstable_getUnit,W as unstable_memoTheme,mo as unstable_toUnitless,be as unstable_useEnhancedEffect,De as unstable_useId,vS as unsupportedProp,yd as useAutocomplete,BR as useColorScheme,Te as useControlled,ee as useEventCallback,qt as useForkRef,He as useFormControl,Db as useMediaQuery,qh as usePagination,dy as useRadioGroup,oR as useScrollTrigger,P1 as useStepContext,R1 as useStepperContext,le as useTheme,SS as useThemeProps,rR as version,RS as withStyles,PS as withTheme}; + )`,content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}}},{props:{animation:"wave"},style:Xy||{"&::after":{animation:`${ls} 2s linear 0.5s infinite`}}}]}})),m1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSkeleton"}),{animation:n="pulse",className:s,component:a="span",height:i,style:l,variant:c="text",width:p,...u}=r,m={...r,animation:n,component:a,variant:c,hasChildren:!!u.children},g=Ky(m);return f.jsx(_y,{as:a,ref:o,className:j(g.root,s),ownerState:m,...u,style:{width:p,height:i,...l}})});function Yy(t,e,o=(r,n)=>r===n){return t.length===e.length&&t.every((r,n)=>o(r,e[n]))}const Zy=2;function jo(t,e,o,r,n){return o===1?Math.min(t+e,n):Math.max(t-e,r)}function cl(t,e){return t-e}function Fa(t,e){const{index:o}=t.reduce((r,n,s)=>{const a=Math.abs(e-n);return r===null||a({left:`${t}%`}),leap:t=>({width:`${t}%`})},"horizontal-reverse":{offset:t=>({right:`${t}%`}),leap:t=>({width:`${t}%`})},vertical:{offset:t=>({bottom:`${t}%`}),leap:t=>({height:`${t}%`})}},ox=t=>t;let Hr;function Ua(){return Hr===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?Hr=CSS.supports("touch-action","none"):Hr=!0),Hr}function rx(t){const{"aria-labelledby":e,defaultValue:o,disabled:r=!1,disableSwap:n=!1,isRtl:s=!1,marks:a=!1,max:i=100,min:l=0,name:c,onChange:p,onChangeCommitted:u,orientation:m="horizontal",rootRef:g,scale:b=ox,step:v=1,shiftStep:h=10,tabIndex:y,value:S}=t,C=d.useRef(void 0),[x,w]=d.useState(-1),[P,$]=d.useState(-1),[I,A]=d.useState(!1),T=d.useRef(0),z=d.useRef(null),[E,R]=Te({controlled:S,default:o??l,name:"Slider"}),M=p&&((q,lt,bt)=>{const $t=q.nativeEvent||q,It=new $t.constructor($t.type,$t);Object.defineProperty(It,"target",{writable:!0,value:{value:lt,name:c}}),z.current=lt,p(It,lt,bt)}),O=Array.isArray(E);let L=O?E.slice().sort(cl):[E];L=L.map(q=>q==null?l:wo(q,l,i));const F=a===!0&&v!==null?[...Array(Math.floor((i-l)/v)+1)].map((q,lt)=>({value:l+v*lt})):a||[],D=F.map(q=>q.value),[N,J]=d.useState(-1),U=d.useRef(null),wt=qt(g,U),vt=q=>lt=>{var $t;const bt=Number(lt.currentTarget.getAttribute("data-index"));Ze(lt.target)&&J(bt),$(bt),($t=q==null?void 0:q.onFocus)==null||$t.call(q,lt)},mt=q=>lt=>{var bt;Ze(lt.target)||J(-1),$(-1),(bt=q==null?void 0:q.onBlur)==null||bt.call(q,lt)},et=(q,lt)=>{const bt=Number(q.currentTarget.getAttribute("data-index")),$t=L[bt],It=D.indexOf($t);let ut=lt;if(F&&v==null){const Ct=D[D.length-1];ut>=Ct?ut=Ct:ut<=D[0]?ut=D[0]:ut=ut<$t?D[It-1]:D[It+1]}if(ut=wo(ut,l,i),O){n&&(ut=wo(ut,L[bt-1]||-1/0,L[bt+1]||1/0));const Ct=ut;ut=Wa({values:L,newValue:ut,index:bt});let Ut=bt;n||(Ut=ut.indexOf(Ct)),Wr({sliderRef:U,activeIndex:Ut})}R(ut),J(bt),M&&!Ur(ut,E)&&M(q,ut,bt),u&&u(q,z.current??ut)},rt=q=>lt=>{var bt;if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"].includes(lt.key)){lt.preventDefault();const $t=Number(lt.currentTarget.getAttribute("data-index")),It=L[$t];let ut=null;if(v!=null){const Ct=lt.shiftKey?h:v;switch(lt.key){case"ArrowUp":ut=jo(It,Ct,1,l,i);break;case"ArrowRight":ut=jo(It,Ct,s?-1:1,l,i);break;case"ArrowDown":ut=jo(It,Ct,-1,l,i);break;case"ArrowLeft":ut=jo(It,Ct,s?1:-1,l,i);break;case"PageUp":ut=jo(It,h,1,l,i);break;case"PageDown":ut=jo(It,h,-1,l,i);break;case"Home":ut=l;break;case"End":ut=i;break}}else if(F){const Ct=D[D.length-1],Ut=D.indexOf(It),Et=[s?"ArrowRight":"ArrowLeft","ArrowDown","PageDown","Home"],Gt=[s?"ArrowLeft":"ArrowRight","ArrowUp","PageUp","End"];Et.includes(lt.key)?Ut===0?ut=D[0]:ut=D[Ut-1]:Gt.includes(lt.key)&&(Ut===D.length-1?ut=Ct:ut=D[Ut+1])}ut!=null&&et(lt,ut)}(bt=q==null?void 0:q.onKeyDown)==null||bt.call(q,lt)};be(()=>{var q;r&&U.current.contains(document.activeElement)&&((q=document.activeElement)==null||q.blur())},[r]),r&&x!==-1&&w(-1),r&&N!==-1&&J(-1);const Y=q=>lt=>{var bt;(bt=q.onChange)==null||bt.call(q,lt),et(lt,lt.target.valueAsNumber)},at=d.useRef(void 0);let ct=m;s&&m==="horizontal"&&(ct+="-reverse");const st=({finger:q,move:lt=!1})=>{const{current:bt}=U,{width:$t,height:It,bottom:ut,left:Ct}=bt.getBoundingClientRect();let Ut;ct.startsWith("vertical")?Ut=(ut-q.y)/It:Ut=(q.x-Ct)/$t,ct.includes("-reverse")&&(Ut=1-Ut);let Et;if(Et=Qy(Ut,l,i),v)Et=tx(Et,v,l);else{const xt=Fa(D,Et);Et=D[xt]}Et=wo(Et,l,i);let Gt=0;if(O){lt?Gt=at.current:Gt=Fa(L,Et),n&&(Et=wo(Et,L[Gt-1]||-1/0,L[Gt+1]||1/0));const xt=Et;Et=Wa({values:L,newValue:Et,index:Gt}),n&<||(Gt=Et.indexOf(xt),at.current=Gt)}return{newValue:Et,activeIndex:Gt}},ft=ee(q=>{const lt=Fr(q,C);if(!lt)return;if(T.current+=1,q.type==="mousemove"&&q.buttons===0){Z(q);return}const{newValue:bt,activeIndex:$t}=st({finger:lt,move:!0});Wr({sliderRef:U,activeIndex:$t,setActive:w}),R(bt),!I&&T.current>Zy&&A(!0),M&&!Ur(bt,E)&&M(q,bt,$t)}),Z=ee(q=>{const lt=Fr(q,C);if(A(!1),!lt)return;const{newValue:bt}=st({finger:lt,move:!0});w(-1),q.type==="touchend"&&$(-1),u&&u(q,z.current??bt),C.current=void 0,it()}),pt=ee(q=>{if(r)return;Ua()||q.preventDefault();const lt=q.changedTouches[0];lt!=null&&(C.current=lt.identifier);const bt=Fr(q,C);if(bt!==!1){const{newValue:It,activeIndex:ut}=st({finger:bt});Wr({sliderRef:U,activeIndex:ut,setActive:w}),R(It),M&&!Ur(It,E)&&M(q,It,ut)}T.current=0;const $t=te(U.current);$t.addEventListener("touchmove",ft,{passive:!0}),$t.addEventListener("touchend",Z,{passive:!0})}),it=d.useCallback(()=>{const q=te(U.current);q.removeEventListener("mousemove",ft),q.removeEventListener("mouseup",Z),q.removeEventListener("touchmove",ft),q.removeEventListener("touchend",Z)},[Z,ft]);d.useEffect(()=>{const{current:q}=U;return q.addEventListener("touchstart",pt,{passive:Ua()}),()=>{q.removeEventListener("touchstart",pt),it()}},[it,pt]),d.useEffect(()=>{r&&it()},[r,it]);const ht=q=>lt=>{var It;if((It=q.onMouseDown)==null||It.call(q,lt),r||lt.defaultPrevented||lt.button!==0)return;lt.preventDefault();const bt=Fr(lt,C);if(bt!==!1){const{newValue:ut,activeIndex:Ct}=st({finger:bt});Wr({sliderRef:U,activeIndex:Ct,setActive:w}),R(ut),M&&!Ur(ut,E)&&M(lt,ut,Ct)}T.current=0;const $t=te(U.current);$t.addEventListener("mousemove",ft,{passive:!0}),$t.addEventListener("mouseup",Z)},Mt=cn(O?L[0]:l,l,i),tt=cn(L[L.length-1],l,i)-Mt,ot=(q={})=>{const lt=To(q),bt={onMouseDown:ht(lt||{})},$t={...lt,...bt};return{...q,ref:wt,...$t}},dt=q=>lt=>{var $t;($t=q.onMouseOver)==null||$t.call(q,lt);const bt=Number(lt.currentTarget.getAttribute("data-index"));$(bt)},St=q=>lt=>{var bt;(bt=q.onMouseLeave)==null||bt.call(q,lt),$(-1)},gt=(q={})=>{const lt=To(q),bt={onMouseOver:dt(lt||{}),onMouseLeave:St(lt||{})};return{...q,...lt,...bt}},nt=q=>({pointerEvents:x!==-1&&x!==q?"none":void 0});let Tt;return m==="vertical"&&(Tt=s?"vertical-rl":"vertical-lr"),{active:x,axis:ct,axisProps:ex,dragging:I,focusedThumbIndex:N,getHiddenInputProps:(q={})=>{const lt=To(q),bt={onChange:Y(lt||{}),onFocus:vt(lt||{}),onBlur:mt(lt||{}),onKeyDown:rt(lt||{})},$t={...lt,...bt};return{tabIndex:y,"aria-labelledby":e,"aria-orientation":m,"aria-valuemax":b(i),"aria-valuemin":b(l),name:c,type:"range",min:t.min,max:t.max,step:t.step===null&&t.marks?"any":t.step??void 0,disabled:r,...q,...$t,style:{...bi,direction:s?"rtl":"ltr",width:"100%",height:"100%",writingMode:Tt}}},getRootProps:ot,getThumbProps:gt,marks:F,open:P,range:O,rootRef:wt,trackLeap:tt,trackOffset:Mt,values:L,getThumbStyle:nt}}const nx=t=>!t||!so(t);function sx(t){return V("MuiSlider",t)}const Ne=K("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","thumbColorError","thumbColorSuccess","thumbColorInfo","thumbColorWarning","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),ax=t=>{const{open:e}=t;return{offset:j(e&&Ne.valueLabelOpen),circle:Ne.valueLabelCircle,label:Ne.valueLabelLabel}};function ix(t){const{children:e,className:o,value:r}=t,n=ax(t);return e?d.cloneElement(e,{className:j(e.props.className)},f.jsxs(d.Fragment,{children:[e.props.children,f.jsx("span",{className:j(n.offset,o),"aria-hidden":!0,children:f.jsx("span",{className:n.circle,children:f.jsx("span",{className:n.label,children:r})})})]})):null}function Ha(t){return t}const lx=k("span",{name:"MuiSlider",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${B(o.color)}`],o.size!=="medium"&&e[`size${B(o.size)}`],o.marked&&e.marked,o.orientation==="vertical"&&e.vertical,o.track==="inverted"&&e.trackInverted,o.track===!1&&e.trackFalse]}})(W(({theme:t})=>({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"},[`&.${Ne.disabled}`]:{pointerEvents:"none",cursor:"default",color:(t.vars||t).palette.grey[400]},[`&.${Ne.dragging}`]:{[`& .${Ne.thumb}, & .${Ne.track}`]:{transition:"none"}},variants:[...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}})),{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]}))),cx=k("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(t,e)=>e.rail})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),px=k("span",{name:"MuiSlider",slot:"Track",overridesResolver:(t,e)=>e.track})(W(({theme:t})=>({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:t.transitions.create(["left","width","bottom","height"],{duration:t.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{border:"none"}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e,track:"inverted"},style:{...t.vars?{backgroundColor:t.vars.palette.Slider[`${e}Track`],borderColor:t.vars.palette.Slider[`${e}Track`]}:{backgroundColor:Ao(t.palette[e].main,.62),borderColor:Ao(t.palette[e].main,.62),...t.applyStyles("dark",{backgroundColor:Lo(t.palette[e].main,.5)}),...t.applyStyles("dark",{borderColor:Lo(t.palette[e].main,.5)})}}}))]}))),dx=k("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.thumb,e[`thumbColor${B(o.color)}`],o.size!=="medium"&&e[`thumbSize${B(o.size)}`]]}})(W(({theme:t})=>({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:t.transitions.create(["box-shadow","left","bottom"],{duration:t.transitions.duration.shortest}),"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(t.vars||t).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&.${Ne.disabled}`]:{"&:hover":{boxShadow:"none"}},variants:[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&:hover, &.${Ne.focusVisible}`]:{...t.vars?{boxShadow:`0px 0px 0px 8px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${kt(t.palette[e].main,.16)}`},"@media (hover: none)":{boxShadow:"none"}},[`&.${Ne.active}`]:{...t.vars?{boxShadow:`0px 0px 0px 14px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${kt(t.palette[e].main,.16)}`}}}}))]}))),ux=k(ix,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(t,e)=>e.valueLabel})(W(({theme:t})=>({zIndex:1,whiteSpace:"nowrap",...t.typography.body2,fontWeight:500,transition:t.transitions.create(["transform"],{duration:t.transitions.duration.shortest}),position:"absolute",backgroundColor:(t.vars||t).palette.grey[600],borderRadius:2,color:(t.vars||t).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:{transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"},[`&.${Ne.valueLabelOpen}`]:{transform:"translateY(-100%) scale(1)"}}},{props:{orientation:"vertical"},style:{transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"},[`&.${Ne.valueLabelOpen}`]:{transform:"translateY(-50%) scale(1)"}}},{props:{size:"small"},style:{fontSize:t.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]}))),fx=k("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:t=>wr(t)&&t!=="markActive",overridesResolver:(t,e)=>{const{markActive:o}=t;return[e.mark,o&&e.markActive]}})(W(({theme:t})=>({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(t.vars||t).palette.background.paper,opacity:.8}}]}))),gx=k("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:t=>wr(t)&&t!=="markLabelActive",overridesResolver:(t,e)=>e.markLabel})(W(({theme:t})=>({...t.typography.body2,color:(t.vars||t).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(t.vars||t).palette.text.primary}}]}))),mx=t=>{const{disabled:e,dragging:o,marked:r,orientation:n,track:s,classes:a,color:i,size:l}=t,c={root:["root",e&&"disabled",o&&"dragging",r&&"marked",n==="vertical"&&"vertical",s==="inverted"&&"trackInverted",s===!1&&"trackFalse",i&&`color${B(i)}`,l&&`size${B(l)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",e&&"disabled",l&&`thumbSize${B(l)}`,i&&`thumbColor${B(i)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return G(c,sx,a)},bx=({children:t})=>t,b1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSlider"}),n=Ke(),{"aria-label":s,"aria-valuetext":a,"aria-labelledby":i,component:l="span",components:c={},componentsProps:p={},color:u="primary",classes:m,className:g,disableSwap:b=!1,disabled:v=!1,getAriaLabel:h,getAriaValueText:y,marks:S=!1,max:C=100,min:x=0,name:w,onChange:P,onChangeCommitted:$,orientation:I="horizontal",shiftStep:A=10,size:T="medium",step:z=1,scale:E=Ha,slotProps:R,slots:M,tabIndex:O,track:L="normal",value:F,valueLabelDisplay:D="off",valueLabelFormat:N=Ha,...J}=r,U={...r,isRtl:n,max:C,min:x,classes:m,disabled:v,disableSwap:b,orientation:I,marks:S,color:u,size:T,step:z,shiftStep:A,scale:E,track:L,valueLabelDisplay:D,valueLabelFormat:N},{axisProps:wt,getRootProps:vt,getHiddenInputProps:mt,getThumbProps:et,open:rt,active:Y,axis:at,focusedThumbIndex:ct,range:st,dragging:ft,marks:Z,values:pt,trackOffset:it,trackLeap:ht,getThumbStyle:Mt}=rx({...U,rootRef:o});U.marked=Z.length>0&&Z.some(Vt=>Vt.label),U.dragging=ft,U.focusedThumbIndex=ct;const tt=mx(U),ot=(M==null?void 0:M.root)??c.Root??lx,dt=(M==null?void 0:M.rail)??c.Rail??cx,St=(M==null?void 0:M.track)??c.Track??px,gt=(M==null?void 0:M.thumb)??c.Thumb??dx,nt=(M==null?void 0:M.valueLabel)??c.ValueLabel??ux,Tt=(M==null?void 0:M.mark)??c.Mark??fx,At=(M==null?void 0:M.markLabel)??c.MarkLabel??gx,q=(M==null?void 0:M.input)??c.Input??"input",lt=(R==null?void 0:R.root)??p.root,bt=(R==null?void 0:R.rail)??p.rail,$t=(R==null?void 0:R.track)??p.track,It=(R==null?void 0:R.thumb)??p.thumb,ut=(R==null?void 0:R.valueLabel)??p.valueLabel,Ct=(R==null?void 0:R.mark)??p.mark,Ut=(R==null?void 0:R.markLabel)??p.markLabel,Et=(R==null?void 0:R.input)??p.input,Gt=Ce({elementType:ot,getSlotProps:vt,externalSlotProps:lt,externalForwardedProps:J,additionalProps:{...nx(ot)&&{as:l}},ownerState:{...U,...lt==null?void 0:lt.ownerState},className:[tt.root,g]}),xt=Ce({elementType:dt,externalSlotProps:bt,ownerState:U,className:tt.rail}),Bt=Ce({elementType:St,externalSlotProps:$t,additionalProps:{style:{...wt[at].offset(it),...wt[at].leap(ht)}},ownerState:{...U,...$t==null?void 0:$t.ownerState},className:tt.track}),Xt=Ce({elementType:gt,getSlotProps:et,externalSlotProps:It,ownerState:{...U,...It==null?void 0:It.ownerState},className:tt.thumb}),oe=Ce({elementType:nt,externalSlotProps:ut,ownerState:{...U,...ut==null?void 0:ut.ownerState},className:tt.valueLabel}),fe=Ce({elementType:Tt,externalSlotProps:Ct,ownerState:U,className:tt.mark}),ie=Ce({elementType:At,externalSlotProps:Ut,ownerState:U,className:tt.markLabel}),Pe=Ce({elementType:q,getSlotProps:mt,externalSlotProps:Et,ownerState:U});return f.jsxs(ot,{...Gt,children:[f.jsx(dt,{...xt}),f.jsx(St,{...Bt}),Z.filter(Vt=>Vt.value>=x&&Vt.value<=C).map((Vt,_t)=>{const ce=cn(Vt.value,x,C),$e=wt[at].offset(ce);let pe;return L===!1?pe=pt.includes(Vt.value):pe=L==="normal"&&(st?Vt.value>=pt[0]&&Vt.value<=pt[pt.length-1]:Vt.value<=pt[0])||L==="inverted"&&(st?Vt.value<=pt[0]||Vt.value>=pt[pt.length-1]:Vt.value>=pt[0]),f.jsxs(d.Fragment,{children:[f.jsx(Tt,{"data-index":_t,...fe,...!so(Tt)&&{markActive:pe},style:{...$e,...fe.style},className:j(fe.className,pe&&tt.markActive)}),Vt.label!=null?f.jsx(At,{"aria-hidden":!0,"data-index":_t,...ie,...!so(At)&&{markLabelActive:pe},style:{...$e,...ie.style},className:j(tt.markLabel,ie.className,pe&&tt.markLabelActive),children:Vt.label}):null]},_t)}),pt.map((Vt,_t)=>{const ce=cn(Vt,x,C),$e=wt[at].offset(ce),pe=D==="off"?bx:nt;return f.jsx(pe,{...!so(pe)&&{valueLabelFormat:N,valueLabelDisplay:D,value:typeof N=="function"?N(E(Vt),_t):N,index:_t,open:rt===_t||Y===_t||D==="on",disabled:v},...oe,children:f.jsx(gt,{"data-index":_t,...Xt,className:j(tt.thumb,Xt.className,Y===_t&&tt.active,ct===_t&&tt.focusVisible),style:{...$e,...Mt(_t),...Xt.style},children:f.jsx(q,{"data-index":_t,"aria-label":h?h(_t):s,"aria-valuenow":E(Vt),"aria-labelledby":i,"aria-valuetext":y?y(E(Vt),_t):a,value:pt[_t],...Pe})})},_t)})]})});function vx(t={}){const{autoHideDuration:e=null,disableWindowBlurListener:o=!1,onClose:r,open:n,resumeHideDuration:s}=t,a=no();d.useEffect(()=>{if(!n)return;function y(S){S.defaultPrevented||S.key==="Escape"&&(r==null||r(S,"escapeKeyDown"))}return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)}},[n,r]);const i=ee((y,S)=>{r==null||r(y,S)}),l=ee(y=>{!r||y==null||a.start(y,()=>{i(null,"timeout")})});d.useEffect(()=>(n&&l(e),a.clear),[n,e,l,a]);const c=y=>{r==null||r(y,"clickaway")},p=a.clear,u=d.useCallback(()=>{e!=null&&l(s??e*.5)},[e,s,l]),m=y=>S=>{const C=y.onBlur;C==null||C(S),u()},g=y=>S=>{const C=y.onFocus;C==null||C(S),p()},b=y=>S=>{const C=y.onMouseEnter;C==null||C(S),p()},v=y=>S=>{const C=y.onMouseLeave;C==null||C(S),u()};return d.useEffect(()=>{if(!o&&n)return window.addEventListener("focus",u),window.addEventListener("blur",p),()=>{window.removeEventListener("focus",u),window.removeEventListener("blur",p)}},[o,n,u,p]),{getRootProps:(y={})=>{const S={...To(t),...To(y)};return{role:"presentation",...y,...S,onBlur:m(S),onFocus:g(S),onMouseEnter:b(S),onMouseLeave:v(S)}},onClickAway:c}}function hx(t){return V("MuiSnackbarContent",t)}const v1=K("MuiSnackbarContent",["root","message","action"]),yx=t=>{const{classes:e}=t;return G({root:["root"],action:["action"],message:["message"]},hx,e)},xx=k(Ue,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>{const e=t.palette.mode==="light"?.8:.98,o=tn(t.palette.background.default,e);return{...t.typography.body2,color:t.vars?t.vars.palette.SnackbarContent.color:t.palette.getContrastText(o),backgroundColor:t.vars?t.vars.palette.SnackbarContent.bg:o,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(t.vars||t).shape.borderRadius,flexGrow:1,[t.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),Cx=k("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0"}),Sx=k("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),wx=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSnackbarContent"}),{action:n,className:s,message:a,role:i="alert",...l}=r,c=r,p=yx(c);return f.jsxs(xx,{role:i,square:!0,elevation:6,className:j(p.root,s),ownerState:c,ref:o,...l,children:[f.jsx(Cx,{className:p.message,ownerState:c,children:a}),n?f.jsx(Sx,{className:p.action,ownerState:c,children:n}):null]})});function Rx(t){return V("MuiSnackbar",t)}const h1=K("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]),Px=t=>{const{classes:e,anchorOrigin:o}=t,r={root:["root",`anchorOrigin${B(o.vertical)}${B(o.horizontal)}`]};return G(r,Rx,e)},$x=k("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`anchorOrigin${B(o.anchorOrigin.vertical)}${B(o.anchorOrigin.horizontal)}`]]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:e})=>e.anchorOrigin.vertical==="top",style:{top:8,[t.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:e})=>e.anchorOrigin.vertical!=="top",style:{bottom:8,[t.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[t.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[t.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="center",style:{[t.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),y1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSnackbar"}),n=le(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{action:a,anchorOrigin:{vertical:i,horizontal:l}={vertical:"bottom",horizontal:"left"},autoHideDuration:c=null,children:p,className:u,ClickAwayListenerProps:m,ContentProps:g,disableWindowBlurListener:b=!1,message:v,onBlur:h,onClose:y,onFocus:S,onMouseEnter:C,onMouseLeave:x,open:w,resumeHideDuration:P,slots:$={},slotProps:I={},TransitionComponent:A,transitionDuration:T=s,TransitionProps:{onEnter:z,onExited:E,...R}={},...M}=r,O={...r,anchorOrigin:{vertical:i,horizontal:l},autoHideDuration:c,disableWindowBlurListener:b,TransitionComponent:A,transitionDuration:T},L=Px(O),{getRootProps:F,onClickAway:D}=vx({...O}),[N,J]=d.useState(!0),U=pt=>{J(!0),E&&E(pt)},wt=(pt,it)=>{J(!1),z&&z(pt,it)},vt={slots:{transition:A,...$},slotProps:{content:g,clickAwayListener:m,transition:R,...I}},[mt,et]=Q("root",{ref:o,className:[L.root,u],elementType:$x,getSlotProps:F,externalForwardedProps:{...vt,...M},ownerState:O}),[rt,{ownerState:Y,...at}]=Q("clickAwayListener",{elementType:_g,externalForwardedProps:vt,getSlotProps:pt=>({onClickAway:(...it)=>{var ht;(ht=pt.onClickAway)==null||ht.call(pt,...it),D(...it)}}),ownerState:O}),[ct,st]=Q("content",{elementType:wx,shouldForwardComponentProp:!0,externalForwardedProps:vt,additionalProps:{message:v,action:a},ownerState:O}),[ft,Z]=Q("transition",{elementType:Cr,externalForwardedProps:vt,getSlotProps:pt=>({onEnter:(...it)=>{var ht;(ht=pt.onEnter)==null||ht.call(pt,...it),wt(...it)},onExited:(...it)=>{var ht;(ht=pt.onExited)==null||ht.call(pt,...it),U(...it)}}),additionalProps:{appear:!0,in:w,timeout:T,direction:i==="top"?"down":"up"},ownerState:O});return!w&&N?null:f.jsx(rt,{...at,...$.clickAwayListener&&{ownerState:Y},children:f.jsx(mt,{...et,children:f.jsx(ft,{...Z,children:p||f.jsx(ct,{...st})})})})}),kx={entering:{transform:"none"},entered:{transform:"none"}},Ix=d.forwardRef(function(e,o){const r=le(),n={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:i,easing:l,in:c,onEnter:p,onEntered:u,onEntering:m,onExit:g,onExited:b,onExiting:v,style:h,timeout:y=n,TransitionComponent:S=Le,...C}=e,x=d.useRef(null),w=qt(x,io(i),o),P=M=>O=>{if(M){const L=x.current;O===void 0?M(L):M(L,O)}},$=P(m),I=P((M,O)=>{mn(M);const L=Ge({style:h,timeout:y,easing:l},{mode:"enter"});M.style.webkitTransition=r.transitions.create("transform",L),M.style.transition=r.transitions.create("transform",L),p&&p(M,O)}),A=P(u),T=P(v),z=P(M=>{const O=Ge({style:h,timeout:y,easing:l},{mode:"exit"});M.style.webkitTransition=r.transitions.create("transform",O),M.style.transition=r.transitions.create("transform",O),g&&g(M)}),E=P(b),R=M=>{s&&s(x.current,M)};return f.jsx(S,{appear:a,in:c,nodeRef:x,onEnter:I,onEntered:A,onEntering:$,onExit:z,onExited:E,onExiting:T,addEndListener:R,timeout:y,...C,children:(M,{ownerState:O,...L})=>d.cloneElement(i,{style:{transform:"scale(0)",visibility:M==="exited"&&!c?"hidden":void 0,...kx[M],...h,...i.props.style},ref:w,...L})})});function Tx(t){return V("MuiSpeedDial",t)}const Vr=K("MuiSpeedDial",["root","fab","directionUp","directionDown","directionLeft","directionRight","actions","actionsClosed"]),Mx=t=>{const{classes:e,open:o,direction:r}=t,n={root:["root",`direction${B(r)}`],fab:["fab"],actions:["actions",!o&&"actionsClosed"]};return G(n,Tx,e)};function sr(t){if(t==="up"||t==="down")return"vertical";if(t==="right"||t==="left")return"horizontal"}const Gr=32,Kr=16,Lx=k("div",{name:"MuiSpeedDial",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`direction${B(o.direction)}`]]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.speedDial,display:"flex",alignItems:"center",pointerEvents:"none",variants:[{props:{direction:"up"},style:{flexDirection:"column-reverse",[`& .${Vr.actions}`]:{flexDirection:"column-reverse",marginBottom:-32,paddingBottom:Kr+Gr}}},{props:{direction:"down"},style:{flexDirection:"column",[`& .${Vr.actions}`]:{flexDirection:"column",marginTop:-32,paddingTop:Kr+Gr}}},{props:{direction:"left"},style:{flexDirection:"row-reverse",[`& .${Vr.actions}`]:{flexDirection:"row-reverse",marginRight:-32,paddingRight:Kr+Gr}}},{props:{direction:"right"},style:{flexDirection:"row",[`& .${Vr.actions}`]:{flexDirection:"row",marginLeft:-32,paddingLeft:Kr+Gr}}}]}))),Ax=k(Gi,{name:"MuiSpeedDial",slot:"Fab",overridesResolver:(t,e)=>e.fab})({pointerEvents:"auto"}),Bx=k("div",{name:"MuiSpeedDial",slot:"Actions",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actions,!o.open&&e.actionsClosed]}})({display:"flex",pointerEvents:"auto",variants:[{props:({ownerState:t})=>!t.open,style:{transition:"top 0s linear 0.2s",pointerEvents:"none"}}]}),x1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSpeedDial"}),n=le(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{ariaLabel:a,FabProps:{ref:i,...l}={},children:c,className:p,direction:u="up",hidden:m=!1,icon:g,onBlur:b,onClose:v,onFocus:h,onKeyDown:y,onMouseEnter:S,onMouseLeave:C,onOpen:x,open:w,openIcon:P,slots:$={},slotProps:I={},TransitionComponent:A,TransitionProps:T,transitionDuration:z=s,...E}=r,[R,M]=Te({controlled:w,default:!1,name:"SpeedDial",state:"open"}),O={...r,open:R,direction:u},L=Mx(O),F=no(),D=d.useRef(0),N=d.useRef(),J=d.useRef([]);J.current=[J.current[0]];const U=d.useCallback(ot=>{J.current[0]=ot},[]),wt=qt(i,U),vt=(ot,dt)=>St=>{J.current[ot+1]=St,dt&&dt(St)},mt=ot=>{y&&y(ot);const dt=ot.key.replace("Arrow","").toLowerCase(),{current:St=dt}=N;if(ot.key==="Escape"){M(!1),J.current[0].focus(),v&&v(ot,"escapeKeyDown");return}if(sr(dt)===sr(St)&&sr(dt)!==void 0){ot.preventDefault();const gt=dt===St?1:-1,nt=wo(D.current+gt,0,J.current.length-1);J.current[nt].focus(),D.current=nt,N.current=St}};d.useEffect(()=>{R||(D.current=0,N.current=void 0)},[R]);const et=ot=>{ot.type==="mouseleave"&&C&&C(ot),ot.type==="blur"&&b&&b(ot),F.clear(),ot.type==="blur"?F.start(0,()=>{M(!1),v&&v(ot,"blur")}):(M(!1),v&&v(ot,"mouseLeave"))},rt=ot=>{l.onClick&&l.onClick(ot),F.clear(),R?(M(!1),v&&v(ot,"toggle")):(M(!0),x&&x(ot,"toggle"))},Y=ot=>{ot.type==="mouseenter"&&S&&S(ot),ot.type==="focus"&&h&&h(ot),F.clear(),R||F.start(0,()=>{M(!0),x&&x(ot,{focus:"focus",mouseenter:"mouseEnter"}[ot.type])})},at=a.replace(/^[^a-z]+|[^\w:.-]+/gi,""),ct=d.Children.toArray(c).filter(ot=>d.isValidElement(ot)),st=ct.map((ot,dt)=>{const{FabProps:{ref:St,...gt}={},tooltipPlacement:nt}=ot.props,Tt=nt||(sr(u)==="vertical"?"left":"top");return d.cloneElement(ot,{FabProps:{...gt,ref:vt(dt,St)},delay:30*(R?dt:ct.length-dt),open:R,tooltipPlacement:Tt,id:`${at}-action-${dt}`})}),ft={transition:A,...$},Z={transition:T,...I},pt={slots:ft,slotProps:Z},[it,ht]=Q("root",{elementType:Lx,externalForwardedProps:{...pt,...E},ownerState:O,ref:o,className:j(L.root,p),additionalProps:{role:"presentation"},getSlotProps:ot=>({...ot,onKeyDown:dt=>{var St;(St=ot.onKeyDown)==null||St.call(ot,dt),mt(dt)},onBlur:dt=>{var St;(St=ot.onBlur)==null||St.call(ot,dt),et(dt)},onFocus:dt=>{var St;(St=ot.onFocus)==null||St.call(ot,dt),Y(dt)},onMouseEnter:dt=>{var St;(St=ot.onMouseEnter)==null||St.call(ot,dt),Y(dt)},onMouseLeave:dt=>{var St;(St=ot.onMouseLeave)==null||St.call(ot,dt),et(dt)}})}),[Mt,tt]=Q("transition",{elementType:Ix,externalForwardedProps:pt,ownerState:O});return f.jsxs(it,{...ht,children:[f.jsx(Mt,{in:!m,timeout:z,unmountOnExit:!0,...tt,children:f.jsx(Ax,{color:"primary","aria-label":a,"aria-haspopup":"true","aria-expanded":R,"aria-controls":`${at}-actions`,...l,onClick:rt,className:j(L.fab,l.className),ref:wt,ownerState:O,children:d.isValidElement(g)&&ho(g,["SpeedDialIcon"])?d.cloneElement(g,{open:R}):g})}),f.jsx(Bx,{id:`${at}-actions`,role:"menu","aria-orientation":sr(u),className:j(L.actions,!R&&L.actionsClosed),ownerState:O,children:st})]})});function Ex(t){return V("MuiTooltip",t)}const re=K("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function Ox(t){return Math.round(t*1e5)/1e5}const Nx=t=>{const{classes:e,disableInteractive:o,arrow:r,touch:n,placement:s}=t,a={popper:["popper",!o&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",n&&"touch",`tooltipPlacement${B(s.split("-")[0])}`],arrow:["arrow"]};return G(a,Ex,e)},zx=k(vn,{name:"MuiTooltip",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popper,!o.disableInteractive&&e.popperInteractive,o.arrow&&e.popperArrow,!o.open&&e.popperClose]}})(W(({theme:t})=>({zIndex:(t.vars||t).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:e})=>!e.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:e})=>!e,style:{pointerEvents:"none"}},{props:({ownerState:e})=>e.arrow,style:{[`&[data-popper-placement*="bottom"] .${re.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${re.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${re.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${re.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="right"] .${re.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="right"] .${re.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="left"] .${re.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="left"] .${re.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),jx=k("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.tooltip,o.touch&&e.touch,o.arrow&&e.tooltipArrow,e[`tooltipPlacement${B(o.placement.split("-")[0])}`]]}})(W(({theme:t})=>({backgroundColor:t.vars?t.vars.palette.Tooltip.bg:kt(t.palette.grey[700],.92),borderRadius:(t.vars||t).shape.borderRadius,color:(t.vars||t).palette.common.white,fontFamily:t.typography.fontFamily,padding:"4px 8px",fontSize:t.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:t.typography.fontWeightMedium,[`.${re.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${re.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${re.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${re.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:e})=>e.arrow,style:{position:"relative",margin:0}},{props:({ownerState:e})=>e.touch,style:{padding:"8px 16px",fontSize:t.typography.pxToRem(14),lineHeight:`${Ox(16/14)}em`,fontWeight:t.typography.fontWeightRegular}},{props:({ownerState:e})=>!e.isRtl,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:e})=>!e.isRtl&&e.touch,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:e})=>!!e.isRtl,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:e})=>!!e.isRtl&&e.touch,style:{[`.${re.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${re.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${re.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${re.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),Dx=k("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(t,e)=>e.arrow})(W(({theme:t})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:t.vars?t.vars.palette.Tooltip.bg:kt(t.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let qr=!1;const Va=new fn;let ar={x:0,y:0};function Xr(t,e){return(o,...r)=>{e&&e(o,...r),t(o,...r)}}const Fx=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTooltip"}),{arrow:n=!1,children:s,classes:a,components:i={},componentsProps:l={},describeChild:c=!1,disableFocusListener:p=!1,disableHoverListener:u=!1,disableInteractive:m=!1,disableTouchListener:g=!1,enterDelay:b=100,enterNextDelay:v=0,enterTouchDelay:h=700,followCursor:y=!1,id:S,leaveDelay:C=0,leaveTouchDelay:x=1500,onClose:w,onOpen:P,open:$,placement:I="bottom",PopperComponent:A,PopperProps:T={},slotProps:z={},slots:E={},title:R,TransitionComponent:M,TransitionProps:O,...L}=r,F=d.isValidElement(s)?s:f.jsx("span",{children:s}),D=le(),N=Ke(),[J,U]=d.useState(),[wt,vt]=d.useState(null),mt=d.useRef(!1),et=m||y,rt=no(),Y=no(),at=no(),ct=no(),[st,ft]=Te({controlled:$,default:!1,name:"Tooltip",state:"open"});let Z=st;const pt=De(S),it=d.useRef(),ht=ee(()=>{it.current!==void 0&&(document.body.style.WebkitUserSelect=it.current,it.current=void 0),ct.clear()});d.useEffect(()=>ht,[ht]);const Mt=Lt=>{Va.clear(),qr=!0,ft(!0),P&&!Z&&P(Lt)},tt=ee(Lt=>{Va.start(800+C,()=>{qr=!1}),ft(!1),w&&Z&&w(Lt),rt.start(D.transitions.duration.shortest,()=>{mt.current=!1})}),ot=Lt=>{mt.current&&Lt.type!=="touchstart"||(J&&J.removeAttribute("title"),Y.clear(),at.clear(),b||qr&&v?Y.start(qr?v:b,()=>{Mt(Lt)}):Mt(Lt))},dt=Lt=>{Y.clear(),at.start(C,()=>{tt(Lt)})},[,St]=d.useState(!1),gt=Lt=>{Ze(Lt.target)||(St(!1),dt(Lt))},nt=Lt=>{J||U(Lt.currentTarget),Ze(Lt.target)&&(St(!0),ot(Lt))},Tt=Lt=>{mt.current=!0;const ge=F.props;ge.onTouchStart&&ge.onTouchStart(Lt)},At=Lt=>{Tt(Lt),at.clear(),rt.clear(),ht(),it.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",ct.start(h,()=>{document.body.style.WebkitUserSelect=it.current,ot(Lt)})},q=Lt=>{F.props.onTouchEnd&&F.props.onTouchEnd(Lt),ht(),at.start(x,()=>{tt(Lt)})};d.useEffect(()=>{if(!Z)return;function Lt(ge){ge.key==="Escape"&&tt(ge)}return document.addEventListener("keydown",Lt),()=>{document.removeEventListener("keydown",Lt)}},[tt,Z]);const lt=qt(io(F),U,o);!R&&R!==0&&(Z=!1);const bt=d.useRef(),$t=Lt=>{const ge=F.props;ge.onMouseMove&&ge.onMouseMove(Lt),ar={x:Lt.clientX,y:Lt.clientY},bt.current&&bt.current.update()},It={},ut=typeof R=="string";c?(It.title=!Z&&ut&&!u?R:null,It["aria-describedby"]=Z?pt:null):(It["aria-label"]=ut?R:null,It["aria-labelledby"]=Z&&!ut?pt:null);const Ct={...It,...L,...F.props,className:j(L.className,F.props.className),onTouchStart:Tt,ref:lt,...y?{onMouseMove:$t}:{}},Ut={};g||(Ct.onTouchStart=At,Ct.onTouchEnd=q),u||(Ct.onMouseOver=Xr(ot,Ct.onMouseOver),Ct.onMouseLeave=Xr(dt,Ct.onMouseLeave),et||(Ut.onMouseOver=ot,Ut.onMouseLeave=dt)),p||(Ct.onFocus=Xr(nt,Ct.onFocus),Ct.onBlur=Xr(gt,Ct.onBlur),et||(Ut.onFocus=nt,Ut.onBlur=gt));const Et={...r,isRtl:N,arrow:n,disableInteractive:et,placement:I,PopperComponentProp:A,touch:mt.current},Gt=typeof z.popper=="function"?z.popper(Et):z.popper,xt=d.useMemo(()=>{var ge,yt;let Lt=[{name:"arrow",enabled:!!wt,options:{element:wt,padding:4}}];return(ge=T.popperOptions)!=null&&ge.modifiers&&(Lt=Lt.concat(T.popperOptions.modifiers)),(yt=Gt==null?void 0:Gt.popperOptions)!=null&&yt.modifiers&&(Lt=Lt.concat(Gt.popperOptions.modifiers)),{...T.popperOptions,...Gt==null?void 0:Gt.popperOptions,modifiers:Lt}},[wt,T.popperOptions,Gt==null?void 0:Gt.popperOptions]),Bt=Nx(Et),Xt=typeof z.transition=="function"?z.transition(Et):z.transition,oe={slots:{popper:i.Popper,transition:i.Transition??M,tooltip:i.Tooltip,arrow:i.Arrow,...E},slotProps:{arrow:z.arrow??l.arrow,popper:{...T,...Gt??l.popper},tooltip:z.tooltip??l.tooltip,transition:{...O,...Xt??l.transition}}},[fe,ie]=Q("popper",{elementType:zx,externalForwardedProps:oe,ownerState:Et,className:j(Bt.popper,T==null?void 0:T.className)}),[Pe,Vt]=Q("transition",{elementType:Cr,externalForwardedProps:oe,ownerState:Et}),[_t,ce]=Q("tooltip",{elementType:jx,className:Bt.tooltip,externalForwardedProps:oe,ownerState:Et}),[$e,pe]=Q("arrow",{elementType:Dx,className:Bt.arrow,externalForwardedProps:oe,ownerState:Et,ref:vt});return f.jsxs(d.Fragment,{children:[d.cloneElement(F,Ct),f.jsx(fe,{as:A??vn,placement:I,anchorEl:y?{getBoundingClientRect:()=>({top:ar.y,left:ar.x,right:ar.x,bottom:ar.y,width:0,height:0})}:J,popperRef:bt,open:J?Z:!1,id:pt,transition:!0,...Ut,...ie,popperOptions:xt,children:({TransitionProps:Lt})=>f.jsx(Pe,{timeout:D.transitions.duration.shorter,...Lt,...Vt,children:f.jsxs(_t,{...ce,children:[R,n?f.jsx($e,{...pe}):null]})})})]})});function Wx(t){return V("MuiSpeedDialAction",t)}const _r=K("MuiSpeedDialAction",["fab","fabClosed","staticTooltip","staticTooltipClosed","staticTooltipLabel","tooltipPlacementLeft","tooltipPlacementRight"]),Ux=t=>{const{open:e,tooltipPlacement:o,classes:r}=t,n={fab:["fab",!e&&"fabClosed"],staticTooltip:["staticTooltip",`tooltipPlacement${B(o)}`,!e&&"staticTooltipClosed"],staticTooltipLabel:["staticTooltipLabel"]};return G(n,Wx,r)},Hx=k(Gi,{name:"MuiSpeedDialAction",slot:"Fab",skipVariantsResolver:!1,overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.fab,!o.open&&e.fabClosed]}})(W(({theme:t})=>({margin:8,color:(t.vars||t).palette.text.secondary,backgroundColor:(t.vars||t).palette.background.paper,"&:hover":{backgroundColor:t.vars?t.vars.palette.SpeedDialAction.fabHoverBg:tn(t.palette.background.paper,.15)},transition:`${t.transitions.create("transform",{duration:t.transitions.duration.shorter})}, opacity 0.8s`,opacity:1,variants:[{props:({ownerState:e})=>!e.open,style:{opacity:0,transform:"scale(0)"}}]}))),Vx=k("span",{name:"MuiSpeedDialAction",slot:"StaticTooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.staticTooltip,!o.open&&e.staticTooltipClosed,e[`tooltipPlacement${B(o.tooltipPlacement)}`]]}})(W(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",[`& .${_r.staticTooltipLabel}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.shorter}),opacity:1},variants:[{props:({ownerState:e})=>!e.open,style:{[`& .${_r.staticTooltipLabel}`]:{opacity:0,transform:"scale(0.5)"}}},{props:{tooltipPlacement:"left"},style:{[`& .${_r.staticTooltipLabel}`]:{transformOrigin:"100% 50%",right:"100%",marginRight:8}}},{props:{tooltipPlacement:"right"},style:{[`& .${_r.staticTooltipLabel}`]:{transformOrigin:"0% 50%",left:"100%",marginLeft:8}}}]}))),Gx=k("span",{name:"MuiSpeedDialAction",slot:"StaticTooltipLabel",overridesResolver:(t,e)=>e.staticTooltipLabel})(W(({theme:t})=>({position:"absolute",...t.typography.body1,backgroundColor:(t.vars||t).palette.background.paper,borderRadius:(t.vars||t).shape.borderRadius,boxShadow:(t.vars||t).shadows[1],color:(t.vars||t).palette.text.secondary,padding:"4px 16px",wordBreak:"keep-all"}))),C1=d.forwardRef(function(e,o){var D;const r=_({props:e,name:"MuiSpeedDialAction"}),{className:n,delay:s=0,FabProps:a={},icon:i,id:l,open:c,TooltipClasses:p,tooltipOpen:u=!1,tooltipPlacement:m="left",tooltipTitle:g,slots:b={},slotProps:v={},...h}=r,y={...r,tooltipPlacement:m},S=Ux(y),C={slots:b,slotProps:{fab:a,...v,tooltip:Vo(typeof v.tooltip=="function"?v.tooltip(y):v.tooltip,{title:g,open:u,placement:m,classes:p})}},[x,w]=d.useState((D=C.slotProps.tooltip)==null?void 0:D.open),P=()=>{w(!1)},$=()=>{w(!0)},I={transitionDelay:`${s}ms`},[A,T]=Q("fab",{elementType:Hx,externalForwardedProps:C,ownerState:y,shouldForwardComponentProp:!0,className:j(S.fab,n),additionalProps:{style:I,tabIndex:-1,role:"menuitem",size:"small"}}),[z,E]=Q("tooltip",{elementType:Fx,externalForwardedProps:C,shouldForwardComponentProp:!0,ref:o,additionalProps:{id:l},ownerState:y,getSlotProps:N=>({...N,onClose:J=>{var U;(U=N.onClose)==null||U.call(N,J),P()},onOpen:J=>{var U;(U=N.onOpen)==null||U.call(N,J),$()}})}),[R,M]=Q("staticTooltip",{elementType:Vx,externalForwardedProps:C,ownerState:y,ref:o,className:S.staticTooltip,additionalProps:{id:l}}),[O,L]=Q("staticTooltipLabel",{elementType:Gx,externalForwardedProps:C,ownerState:y,className:S.staticTooltipLabel,additionalProps:{style:I,id:`${l}-label`}}),F=f.jsx(A,{...T,children:i});return E.open?f.jsxs(R,{...M,...h,children:[f.jsx(O,{...L,children:E.title}),d.cloneElement(F,{"aria-labelledby":`${l}-label`})]}):(!c&&x&&w(!1),f.jsx(z,{...E,title:E.title,open:c&&x,placement:E.placement,classes:E.classes,...h,children:F}))}),Kx=Qt(f.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");function qx(t){return V("MuiSpeedDialIcon",t)}const _e=K("MuiSpeedDialIcon",["root","icon","iconOpen","iconWithOpenIconOpen","openIcon","openIconOpen"]),Xx=t=>{const{classes:e,open:o,openIcon:r}=t;return G({root:["root"],icon:["icon",o&&"iconOpen",r&&o&&"iconWithOpenIconOpen"],openIcon:["openIcon",o&&"openIconOpen"]},qx,e)},_x=k("span",{name:"MuiSpeedDialIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${_e.icon}`]:e.icon},{[`& .${_e.icon}`]:o.open&&e.iconOpen},{[`& .${_e.icon}`]:o.open&&o.openIcon&&e.iconWithOpenIconOpen},{[`& .${_e.openIcon}`]:e.openIcon},{[`& .${_e.openIcon}`]:o.open&&e.openIconOpen},e.root]}})(W(({theme:t})=>({height:24,[`& .${_e.icon}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short})},[`& .${_e.openIcon}`]:{position:"absolute",transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short}),opacity:0,transform:"rotate(-45deg)"},variants:[{props:({ownerState:e})=>e.open,style:{[`& .${_e.icon}`]:{transform:"rotate(45deg)"}}},{props:({ownerState:e})=>e.open&&e.openIcon,style:{[`& .${_e.icon}`]:{opacity:0}}},{props:({ownerState:e})=>e.open,style:{[`& .${_e.openIcon}`]:{transform:"rotate(0deg)",opacity:1}}}]}))),Yx=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSpeedDialIcon"}),{className:n,icon:s,open:a,openIcon:i,...l}=r,c=r,p=Xx(c);function u(m,g){return d.isValidElement(m)?d.cloneElement(m,{className:g}):m}return f.jsxs(_x,{className:j(p.root,n),ref:o,ownerState:c,...l,children:[i?u(i,p.openIcon):null,s?u(s,p.icon):f.jsx(Kx,{className:p.icon})]})});Yx.muiName="SpeedDialIcon";const S1=$c({createStyledComponent:k("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root}),useThemeProps:t=>_({props:t,name:"MuiStack"})}),w1=K("MuiStack",["root"]),No=d.createContext({});function R1(){return d.useContext(No)}const Yo=d.createContext({});function P1(){return d.useContext(Yo)}function Zx(t){return V("MuiStep",t)}const $1=K("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]),Qx=t=>{const{classes:e,orientation:o,alternativeLabel:r,completed:n}=t;return G({root:["root",o,r&&"alternativeLabel",n&&"completed"]},Zx,e)},Jx=k("div",{name:"MuiStep",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({variants:[{props:{orientation:"horizontal"},style:{paddingLeft:8,paddingRight:8}},{props:{alternativeLabel:!0},style:{flex:1,position:"relative"}}]}),k1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStep"}),{active:n,children:s,className:a,component:i="div",completed:l,disabled:c,expanded:p=!1,index:u,last:m,...g}=r,{activeStep:b,connector:v,alternativeLabel:h,orientation:y,nonLinear:S}=d.useContext(No);let[C=!1,x=!1,w=!1]=[n,l,c];b===u?C=n!==void 0?n:!0:!S&&b>u?x=l!==void 0?l:!0:!S&&b({index:u,last:m,expanded:p,icon:u+1,active:C,completed:x,disabled:w}),[u,m,p,C,x,w]),$={...r,active:C,orientation:y,alternativeLabel:h,completed:x,disabled:w,expanded:p,component:i},I=Qx($),A=f.jsxs(Jx,{as:i,className:j(I.root,a),ref:o,ownerState:$,...g,children:[v&&h&&u!==0?v:null,s]});return f.jsx(Yo.Provider,{value:P,children:v&&!h&&u!==0?f.jsxs(d.Fragment,{children:[v,A]}):A})}),t0=Qt(f.jsx("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),e0=Qt(f.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");function o0(t){return V("MuiStepIcon",t)}const zn=K("MuiStepIcon",["root","active","completed","error","text"]);var Ga;const r0=t=>{const{classes:e,active:o,completed:r,error:n}=t;return G({root:["root",o&&"active",r&&"completed",n&&"error"],text:["text"]},o0,e)},jn=k(Dl,{name:"MuiStepIcon",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),color:(t.vars||t).palette.text.disabled,[`&.${zn.completed}`]:{color:(t.vars||t).palette.primary.main},[`&.${zn.active}`]:{color:(t.vars||t).palette.primary.main},[`&.${zn.error}`]:{color:(t.vars||t).palette.error.main}}))),n0=k("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(t,e)=>e.text})(W(({theme:t})=>({fill:(t.vars||t).palette.primary.contrastText,fontSize:t.typography.caption.fontSize,fontFamily:t.typography.fontFamily}))),s0=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepIcon"}),{active:n=!1,className:s,completed:a=!1,error:i=!1,icon:l,...c}=r,p={...r,active:n,completed:a,error:i},u=r0(p);if(typeof l=="number"||typeof l=="string"){const m=j(s,u.root);return i?f.jsx(jn,{as:e0,className:m,ref:o,ownerState:p,...c}):a?f.jsx(jn,{as:t0,className:m,ref:o,ownerState:p,...c}):f.jsxs(jn,{className:m,ref:o,ownerState:p,...c,children:[Ga||(Ga=f.jsx("circle",{cx:"12",cy:"12",r:"12"})),f.jsx(n0,{className:u.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:p,children:l})]})}return l});function a0(t){return V("MuiStepLabel",t)}const vo=K("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]),i0=t=>{const{classes:e,orientation:o,active:r,completed:n,error:s,disabled:a,alternativeLabel:i}=t;return G({root:["root",o,s&&"error",a&&"disabled",i&&"alternativeLabel"],label:["label",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],iconContainer:["iconContainer",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],labelContainer:["labelContainer",i&&"alternativeLabel"]},a0,e)},l0=k("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation]]}})({display:"flex",alignItems:"center",[`&.${vo.alternativeLabel}`]:{flexDirection:"column"},[`&.${vo.disabled}`]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),c0=k("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(t,e)=>e.label})(W(({theme:t})=>({...t.typography.body2,display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),[`&.${vo.active}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${vo.completed}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${vo.alternativeLabel}`]:{marginTop:16},[`&.${vo.error}`]:{color:(t.vars||t).palette.error.main}}))),p0=k("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(t,e)=>e.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,[`&.${vo.alternativeLabel}`]:{paddingRight:0}}),d0=k("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(t,e)=>e.labelContainer})(W(({theme:t})=>({width:"100%",color:(t.vars||t).palette.text.secondary,[`&.${vo.alternativeLabel}`]:{textAlign:"center"}}))),pl=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepLabel"}),{children:n,className:s,componentsProps:a={},error:i=!1,icon:l,optional:c,slots:p={},slotProps:u={},StepIconComponent:m,StepIconProps:g,...b}=r,{alternativeLabel:v,orientation:h}=d.useContext(No),{active:y,disabled:S,completed:C,icon:x}=d.useContext(Yo),w=l||x;let P=m;w&&!P&&(P=s0);const $={...r,active:y,alternativeLabel:v,completed:C,disabled:S,error:i,orientation:h},I=i0($),A={slots:p,slotProps:{stepIcon:g,...a,...u}},[T,z]=Q("root",{elementType:l0,externalForwardedProps:{...A,...b},ownerState:$,ref:o,className:j(I.root,s)}),[E,R]=Q("label",{elementType:c0,externalForwardedProps:A,ownerState:$}),[M,O]=Q("stepIcon",{elementType:P,externalForwardedProps:A,ownerState:$});return f.jsxs(T,{...z,children:[w||M?f.jsx(p0,{className:I.iconContainer,ownerState:$,children:f.jsx(M,{completed:C,active:y,error:i,icon:w,...O})}):null,f.jsxs(d0,{className:I.labelContainer,ownerState:$,children:[n?f.jsx(E,{...R,className:j(I.label,R==null?void 0:R.className),children:n}):null,c]})]})});pl.muiName="StepLabel";function u0(t){return V("MuiStepButton",t)}const Ka=K("MuiStepButton",["root","horizontal","vertical","touchRipple"]),f0=t=>{const{classes:e,orientation:o}=t;return G({root:["root",o],touchRipple:["touchRipple"]},u0,e)},g0=k(ue,{name:"MuiStepButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Ka.touchRipple}`]:e.touchRipple},e.root,e[o.orientation]]}})({width:"100%",padding:"24px 16px",margin:"-24px -16px",boxSizing:"content-box",[`& .${Ka.touchRipple}`]:{color:"rgba(0, 0, 0, 0.3)"},variants:[{props:{orientation:"vertical"},style:{justifyContent:"flex-start",padding:"8px",margin:"-8px"}}]}),I1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepButton"}),{children:n,className:s,icon:a,optional:i,...l}=r,{disabled:c,active:p}=d.useContext(Yo),{orientation:u}=d.useContext(No),m={...r,orientation:u},g=f0(m),b={icon:a,optional:i},v=ho(n,["StepLabel"])?d.cloneElement(n,b):f.jsx(pl,{...b,children:n});return f.jsx(g0,{focusRipple:!0,disabled:c,TouchRippleProps:{className:g.touchRipple},className:j(g.root,s),ref:o,ownerState:m,"aria-current":p?"step":void 0,...l,children:v})});function m0(t){return V("MuiStepConnector",t)}const T1=K("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]),b0=t=>{const{classes:e,orientation:o,alternativeLabel:r,active:n,completed:s,disabled:a}=t,i={root:["root",o,r&&"alternativeLabel",n&&"active",s&&"completed",a&&"disabled"],line:["line",`line${B(o)}`]};return G(i,m0,e)},v0=k("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({flex:"1 1 auto",variants:[{props:{orientation:"vertical"},style:{marginLeft:12}},{props:{alternativeLabel:!0},style:{position:"absolute",top:12,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"}}]}),h0=k("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.line,e[`line${B(o.orientation)}`]]}})(W(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600];return{display:"block",borderColor:t.vars?t.vars.palette.StepConnector.border:e,variants:[{props:{orientation:"horizontal"},style:{borderTopStyle:"solid",borderTopWidth:1}},{props:{orientation:"vertical"},style:{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24}}]}})),y0=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepConnector"}),{className:n,...s}=r,{alternativeLabel:a,orientation:i="horizontal"}=d.useContext(No),{active:l,disabled:c,completed:p}=d.useContext(Yo),u={...r,alternativeLabel:a,orientation:i,active:l,completed:p,disabled:c},m=b0(u);return f.jsx(v0,{className:j(m.root,n),ref:o,ownerState:u,...s,children:f.jsx(h0,{className:m.line,ownerState:u})})});function x0(t){return V("MuiStepContent",t)}const M1=K("MuiStepContent",["root","last","transition"]),C0=t=>{const{classes:e,last:o}=t;return G({root:["root",o&&"last"],transition:["transition"]},x0,e)},S0=k("div",{name:"MuiStepContent",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.last&&e.last]}})(W(({theme:t})=>({marginLeft:12,paddingLeft:20,paddingRight:8,borderLeft:t.vars?`1px solid ${t.vars.palette.StepContent.border}`:`1px solid ${t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600]}`,variants:[{props:{last:!0},style:{borderLeft:"none"}}]}))),w0=k(vr,{name:"MuiStepContent",slot:"Transition",overridesResolver:(t,e)=>e.transition})({}),L1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepContent"}),{children:n,className:s,TransitionComponent:a=vr,transitionDuration:i="auto",TransitionProps:l,slots:c={},slotProps:p={},...u}=r,{orientation:m}=d.useContext(No),{active:g,last:b,expanded:v}=d.useContext(Yo),h={...r,last:b},y=C0(h);let S=i;i==="auto"&&!a.muiSupportAuto&&(S=void 0);const C={slots:c,slotProps:{transition:l,...p}},[x,w]=Q("transition",{elementType:w0,externalForwardedProps:C,ownerState:h,className:y.transition,additionalProps:{in:g||v,timeout:S,unmountOnExit:!0}});return f.jsx(S0,{className:j(y.root,s),ref:o,ownerState:h,...u,children:f.jsx(x,{as:a,...w,children:n})})});function R0(t){return V("MuiStepper",t)}const A1=K("MuiStepper",["root","horizontal","vertical","nonLinear","alternativeLabel"]),P0=t=>{const{orientation:e,nonLinear:o,alternativeLabel:r,classes:n}=t;return G({root:["root",e,o&&"nonLinear",r&&"alternativeLabel"]},R0,n)},$0=k("div",{name:"MuiStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.nonLinear&&e.nonLinear]}})({display:"flex",variants:[{props:{orientation:"horizontal"},style:{flexDirection:"row",alignItems:"center"}},{props:{orientation:"vertical"},style:{flexDirection:"column"}},{props:{alternativeLabel:!0},style:{alignItems:"flex-start"}}]}),k0=f.jsx(y0,{}),B1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiStepper"}),{activeStep:n=0,alternativeLabel:s=!1,children:a,className:i,component:l="div",connector:c=k0,nonLinear:p=!1,orientation:u="horizontal",...m}=r,g={...r,nonLinear:p,alternativeLabel:s,orientation:u,component:l},b=P0(g),v=d.Children.toArray(a).filter(Boolean),h=v.map((S,C)=>d.cloneElement(S,{index:C,last:C+1===v.length,...S.props})),y=d.useMemo(()=>({activeStep:n,alternativeLabel:s,connector:c,nonLinear:p,orientation:u}),[n,s,c,p,u]);return f.jsx(No.Provider,{value:y,children:f.jsx($0,{as:l,ownerState:g,className:j(b.root,i),ref:o,...m,children:h})})}),I0=k("div",{shouldForwardProp:ae})(W(({theme:t})=>({position:"fixed",top:0,left:0,bottom:0,zIndex:t.zIndex.drawer-1,variants:[{props:{anchor:"left"},style:{right:"auto"}},{props:{anchor:"right"},style:{left:"auto",right:0}},{props:{anchor:"top"},style:{bottom:"auto",right:0}},{props:{anchor:"bottom"},style:{top:"auto",bottom:0,right:0}}]}))),T0=d.forwardRef(function(e,o){const{anchor:r,classes:n={},className:s,width:a,style:i,...l}=e,c=e;return f.jsx(I0,{className:j("PrivateSwipeArea-root",n.root,n[`anchor${B(r)}`],s),ref:o,style:{[Ro(r)?"width":"height"]:a,...i},ownerState:c,...l})}),Yr=3,qa=20;let oo=null;function Dn(t,e,o){return t==="right"?o.body.offsetWidth-e[0].pageX:e[0].pageX}function Fn(t,e,o){return t==="bottom"?o.innerHeight-e[0].clientY:e[0].clientY}function ir(t,e){return t?e.clientWidth:e.clientHeight}function Xa(t,e,o,r){return Math.min(Math.max(o?e-t:r+e-t,0),r)}function M0(t,e){const o=[];for(;t&&t!==e.parentElement;){const r=me(e).getComputedStyle(t);r.getPropertyValue("position")==="absolute"||r.getPropertyValue("overflow-x")==="hidden"||(t.clientWidth>0&&t.scrollWidth>t.clientWidth||t.clientHeight>0&&t.scrollHeight>t.clientHeight)&&o.push(t),t=t.parentElement}return o}function L0({domTreeShapes:t,start:e,current:o,anchor:r}){const n={scrollPosition:{x:"scrollLeft",y:"scrollTop"},scrollLength:{x:"scrollWidth",y:"scrollHeight"},clientLength:{x:"clientWidth",y:"clientHeight"}};return t.some(s=>{let a=o>=e;(r==="top"||r==="left")&&(a=!a);const i=r==="left"||r==="right"?"x":"y",l=Math.round(s[n.scrollPosition[i]]),c=l>0,p=l+s[n.clientLength[i]]{N.current=null},[S]);const J=d.useCallback((Y,at={})=>{const{mode:ct=null,changeTransition:st=!0}=at,ft=cr(n,a),Z=["right","bottom"].includes(ft)?1:-1,pt=Ro(a),it=pt?`translate(${Z*Y}px, 0)`:`translate(0, ${Z*Y}px)`,ht=L.current.style;ht.webkitTransform=it,ht.transform=it;let Mt="";if(ct&&(Mt=n.transitions.create("all",Ge({easing:void 0,style:void 0,timeout:P},{mode:ct}))),st&&(ht.webkitTransition=Mt,ht.transition=Mt),!i&&!p){const tt=O.current.style;tt.opacity=1-Y/ir(pt,L.current),st&&(tt.webkitTransition=Mt,tt.transition=Mt)}},[a,i,p,n,P]),U=ee(Y=>{if(!D.current)return;if(oo=null,D.current=!1,Hn.flushSync(()=>{E(!1)}),!R.current.isSwiping){R.current.isSwiping=null;return}R.current.isSwiping=null;const at=cr(n,a),ct=Ro(a);let st;ct?st=Dn(at,Y.changedTouches,te(Y.currentTarget)):st=Fn(at,Y.changedTouches,me(Y.currentTarget));const ft=ct?R.current.startX:R.current.startY,Z=ir(ct,L.current),pt=Xa(st,ft,S,Z),it=pt/Z;if(Math.abs(R.current.velocity)>g&&(N.current=Math.abs((Z-pt)/R.current.velocity)*1e3),S){R.current.velocity>g||it>u?h():J(0,{mode:"exit"});return}R.current.velocity<-g||1-it>u?y():J(ir(ct,L.current),{mode:"enter"})}),wt=(Y=!1)=>{if(!z){(Y||!(l&&m))&&Hn.flushSync(()=>{E(!0)});const at=Ro(a);!S&&L.current&&J(ir(at,L.current)+(l?15:-20),{changeTransition:!1}),R.current.velocity=0,R.current.lastTime=null,R.current.lastTranslate=null,R.current.paperHit=!1,D.current=!0}},vt=ee(Y=>{if(!L.current||!D.current||oo!==null&&oo!==R.current)return;wt(!0);const at=cr(n,a),ct=Ro(a),st=Dn(at,Y.touches,te(Y.currentTarget)),ft=Fn(at,Y.touches,me(Y.currentTarget));if(S&&L.current.contains(Y.target)&&oo===null){const Mt=M0(Y.target,L.current);if(L0({domTreeShapes:Mt,start:ct?R.current.startX:R.current.startY,current:ct?st:ft,anchor:a})){oo=!0;return}oo=R.current}if(R.current.isSwiping==null){const Mt=Math.abs(st-R.current.startX),tt=Math.abs(ft-R.current.startY),ot=ct?Mt>tt&&Mt>Yr:tt>Mt&&tt>Yr;if(ot&&Y.cancelable&&Y.preventDefault(),ot===!0||(ct?tt>Yr:Mt>Yr)){if(R.current.isSwiping=ot,!ot){U(Y);return}R.current.startX=st,R.current.startY=ft,!l&&!S&&(ct?R.current.startX-=qa:R.current.startY-=qa)}}if(!R.current.isSwiping)return;const Z=ir(ct,L.current);let pt=ct?R.current.startX:R.current.startY;S&&!R.current.paperHit&&(pt=Math.min(pt,Z));const it=Xa(ct?st:ft,pt,S,Z);if(S)if(R.current.paperHit)it===0&&(R.current.startX=st,R.current.startY=ft);else if(ct?st{var Z;if(Y.defaultPrevented||Y.defaultMuiPrevented||S&&(p||!O.current.contains(Y.target))&&!L.current.contains(Y.target))return;const at=cr(n,a),ct=Ro(a),st=Dn(at,Y.touches,te(Y.currentTarget)),ft=Fn(at,Y.touches,me(Y.currentTarget));if(!S){if(c||!(Y.target===M.current||(Z=L.current)!=null&&Z.contains(Y.target)&&(typeof m=="function"?m(Y,M.current,L.current):m)))return;if(ct){if(st>w)return}else if(ft>w)return}Y.defaultMuiPrevented=!0,oo=null,R.current.startX=st,R.current.startY=ft,wt()});d.useEffect(()=>{if($==="temporary"){const Y=te(L.current);return Y.addEventListener("touchstart",mt),Y.addEventListener("touchmove",vt,{passive:!S}),Y.addEventListener("touchend",U),()=>{Y.removeEventListener("touchstart",mt),Y.removeEventListener("touchmove",vt,{passive:!S}),Y.removeEventListener("touchend",U)}}},[$,S,mt,vt,U]),d.useEffect(()=>()=>{oo===R.current&&(oo=null)},[]),d.useEffect(()=>{S||E(!1)},[S]);const[et,rt]=Q("swipeArea",{ref:M,elementType:T0,ownerState:r,externalForwardedProps:{slots:I,slotProps:{swipeArea:x,...A}},additionalProps:{width:w,anchor:a}});return f.jsxs(d.Fragment,{children:[f.jsx(_m,{open:$==="temporary"&&z?!0:S,variant:$,ModalProps:{BackdropProps:{...b,ref:O},...$==="temporary"&&{keepMounted:!0},...v},hideBackdrop:p,anchor:a,transitionDuration:N.current||P,onClose:h,ref:o,slots:I,slotProps:{...A,backdrop:Vo(A.backdrop??b,{ref:O}),paper:Vo(A.paper??C,{style:{pointerEvents:$==="temporary"&&!S&&!m?"none":""},ref:F})},...T}),!c&&$==="temporary"&&f.jsx(jh,{children:f.jsx(et,{...rt})})]})});function B0(t){return V("MuiSwitch",t)}const xe=K("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),E0=t=>{const{classes:e,edge:o,size:r,color:n,checked:s,disabled:a}=t,i={root:["root",o&&`edge${B(o)}`,`size${B(r)}`],switchBase:["switchBase",`color${B(n)}`,s&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=G(i,B0,e);return{...e,...l}},O0=k("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.edge&&e[`edge${B(o.edge)}`],e[`size${B(o.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${xe.thumb}`]:{width:16,height:16},[`& .${xe.switchBase}`]:{padding:4,[`&.${xe.checked}`]:{transform:"translateX(16px)"}}}}]}),N0=k($s,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.switchBase,{[`& .${xe.input}`]:e.input},o.color!=="default"&&e[`color${B(o.color)}`]]}})(W(({theme:t})=>({position:"absolute",top:0,left:0,zIndex:1,color:t.vars?t.vars.palette.Switch.defaultColor:`${t.palette.mode==="light"?t.palette.common.white:t.palette.grey[300]}`,transition:t.transitions.create(["left","transform"],{duration:t.transitions.duration.shortest}),[`&.${xe.checked}`]:{transform:"translateX(20px)"},[`&.${xe.disabled}`]:{color:t.vars?t.vars.palette.Switch.defaultDisabledColor:`${t.palette.mode==="light"?t.palette.grey[100]:t.palette.grey[600]}`},[`&.${xe.checked} + .${xe.track}`]:{opacity:.5},[`&.${xe.disabled} + .${xe.track}`]:{opacity:t.vars?t.vars.opacity.switchTrackDisabled:`${t.palette.mode==="light"?.12:.2}`},[`& .${xe.input}`]:{left:"-100%",width:"300%"}})),W(({theme:t})=>({"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(t.palette).filter(jt(["light"])).map(([e])=>({props:{color:e},style:{[`&.${xe.checked}`]:{color:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette[e].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${xe.disabled}`]:{color:t.vars?t.vars.palette.Switch[`${e}DisabledColor`]:`${t.palette.mode==="light"?Ao(t.palette[e].main,.62):Lo(t.palette[e].main,.55)}`}},[`&.${xe.checked} + .${xe.track}`]:{backgroundColor:(t.vars||t).palette[e].main}}}))]}))),z0=k("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(t,e)=>e.track})(W(({theme:t})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:t.vars?t.vars.palette.common.onBackground:`${t.palette.mode==="light"?t.palette.common.black:t.palette.common.white}`,opacity:t.vars?t.vars.opacity.switchTrack:`${t.palette.mode==="light"?.38:.3}`}))),j0=k("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(t,e)=>e.thumb})(W(({theme:t})=>({boxShadow:(t.vars||t).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),O1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiSwitch"}),{className:n,color:s="primary",edge:a=!1,size:i="medium",sx:l,slots:c={},slotProps:p={},...u}=r,m={...r,color:s,edge:a,size:i},g=E0(m),b={slots:c,slotProps:p},[v,h]=Q("root",{className:j(g.root,n),elementType:O0,externalForwardedProps:b,ownerState:m,additionalProps:{sx:l}}),[y,S]=Q("thumb",{className:g.thumb,elementType:j0,externalForwardedProps:b,ownerState:m}),C=f.jsx(y,{...S}),[x,w]=Q("track",{className:g.track,elementType:z0,externalForwardedProps:b,ownerState:m});return f.jsxs(v,{...h,children:[f.jsx(N0,{type:"checkbox",icon:C,checkedIcon:C,ref:o,ownerState:m,...u,classes:{...g,root:g.switchBase},slots:{...c.switchBase&&{root:c.switchBase},...c.input&&{input:c.input}},slotProps:{...p.switchBase&&{root:typeof p.switchBase=="function"?p.switchBase(m):p.switchBase},...p.input&&{input:typeof p.input=="function"?p.input(m):p.input}}}),f.jsx(x,{...w})]})});function D0(t){return V("MuiTab",t)}const Be=K("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper","icon"]),F0=t=>{const{classes:e,textColor:o,fullWidth:r,wrapped:n,icon:s,label:a,selected:i,disabled:l}=t,c={root:["root",s&&a&&"labelIcon",`textColor${B(o)}`,r&&"fullWidth",n&&"wrapped",i&&"selected",l&&"disabled"],icon:["iconWrapper","icon"]};return G(c,D0,e)},W0=k(ue,{name:"MuiTab",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.label&&o.icon&&e.labelIcon,e[`textColor${B(o.textColor)}`],o.fullWidth&&e.fullWidth,o.wrapped&&e.wrapped,{[`& .${Be.iconWrapper}`]:e.iconWrapper},{[`& .${Be.icon}`]:e.icon}]}})(W(({theme:t})=>({...t.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:e})=>e.label&&(e.iconPosition==="top"||e.iconPosition==="bottom"),style:{flexDirection:"column"}},{props:({ownerState:e})=>e.label&&e.iconPosition!=="top"&&e.iconPosition!=="bottom",style:{flexDirection:"row"}},{props:({ownerState:e})=>e.icon&&e.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="top",style:{[`& > .${Be.icon}`]:{marginBottom:6}}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="bottom",style:{[`& > .${Be.icon}`]:{marginTop:6}}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="start",style:{[`& > .${Be.icon}`]:{marginRight:t.spacing(1)}}},{props:({ownerState:e,iconPosition:o})=>e.icon&&e.label&&o==="end",style:{[`& > .${Be.icon}`]:{marginLeft:t.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${Be.selected}`]:{opacity:1},[`&.${Be.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(t.vars||t).palette.text.secondary,[`&.${Be.selected}`]:{color:(t.vars||t).palette.primary.main},[`&.${Be.disabled}`]:{color:(t.vars||t).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(t.vars||t).palette.text.secondary,[`&.${Be.selected}`]:{color:(t.vars||t).palette.secondary.main},[`&.${Be.disabled}`]:{color:(t.vars||t).palette.text.disabled}}},{props:({ownerState:e})=>e.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:e})=>e.wrapped,style:{fontSize:t.typography.pxToRem(12)}}]}))),N1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTab"}),{className:n,disabled:s=!1,disableFocusRipple:a=!1,fullWidth:i,icon:l,iconPosition:c="top",indicator:p,label:u,onChange:m,onClick:g,onFocus:b,selected:v,selectionFollowsFocus:h,textColor:y="inherit",value:S,wrapped:C=!1,...x}=r,w={...r,disabled:s,disableFocusRipple:a,selected:v,icon:!!l,iconPosition:c,label:!!u,fullWidth:i,textColor:y,wrapped:C},P=F0(w),$=l&&u&&d.isValidElement(l)?d.cloneElement(l,{className:j(P.icon,l.props.className)}):l,I=T=>{!v&&m&&m(T,S),g&&g(T)},A=T=>{h&&!v&&m&&m(T,S),b&&b(T)};return f.jsxs(W0,{focusRipple:!a,className:j(P.root,n),ref:o,role:"tab","aria-selected":v,disabled:s,onClick:I,onFocus:A,ownerState:w,tabIndex:v?0:-1,...x,children:[c==="top"||c==="start"?f.jsxs(d.Fragment,{children:[$,u]}):f.jsxs(d.Fragment,{children:[u,$]}),p]})}),dl=d.createContext();function U0(t){return V("MuiTable",t)}const z1=K("MuiTable",["root","stickyHeader"]),H0=t=>{const{classes:e,stickyHeader:o}=t;return G({root:["root",o&&"stickyHeader"]},U0,e)},V0=k("table",{name:"MuiTable",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.stickyHeader&&e.stickyHeader]}})(W(({theme:t})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...t.typography.body2,padding:t.spacing(2),color:(t.vars||t).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:e})=>e.stickyHeader,style:{borderCollapse:"separate"}}]}))),_a="table",j1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTable"}),{className:n,component:s=_a,padding:a="normal",size:i="medium",stickyHeader:l=!1,...c}=r,p={...r,component:s,padding:a,size:i,stickyHeader:l},u=H0(p),m=d.useMemo(()=>({padding:a,size:i,stickyHeader:l}),[a,i,l]);return f.jsx(dl.Provider,{value:m,children:f.jsx(V0,{as:s,role:s===_a?null:"table",ref:o,className:j(u.root,n),ownerState:p,...c})})}),Ir=d.createContext();function G0(t){return V("MuiTableBody",t)}const D1=K("MuiTableBody",["root"]),K0=t=>{const{classes:e}=t;return G({root:["root"]},G0,e)},q0=k("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-row-group"}),X0={variant:"body"},Ya="tbody",F1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableBody"}),{className:n,component:s=Ya,...a}=r,i={...r,component:s},l=K0(i);return f.jsx(Ir.Provider,{value:X0,children:f.jsx(q0,{className:j(l.root,n),as:s,ref:o,role:s===Ya?null:"rowgroup",ownerState:i,...a})})});function _0(t){return V("MuiTableCell",t)}const Y0=K("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),Z0=t=>{const{classes:e,variant:o,align:r,padding:n,size:s,stickyHeader:a}=t,i={root:["root",o,a&&"stickyHeader",r!=="inherit"&&`align${B(r)}`,n!=="normal"&&`padding${B(n)}`,`size${B(s)}`]};return G(i,_0,e)},Q0=k("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${B(o.size)}`],o.padding!=="normal"&&e[`padding${B(o.padding)}`],o.align!=="inherit"&&e[`align${B(o.align)}`],o.stickyHeader&&e.stickyHeader]}})(W(({theme:t})=>({...t.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:t.vars?`1px solid ${t.vars.palette.TableCell.border}`:`1px solid + ${t.palette.mode==="light"?Ao(kt(t.palette.divider,1),.88):Lo(kt(t.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(t.vars||t).palette.text.primary,lineHeight:t.typography.pxToRem(24),fontWeight:t.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(t.vars||t).palette.text.primary}},{props:{variant:"footer"},style:{color:(t.vars||t).palette.text.secondary,lineHeight:t.typography.pxToRem(21),fontSize:t.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${Y0.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:e})=>e.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(t.vars||t).palette.background.default}}]}))),cs=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableCell"}),{align:n="inherit",className:s,component:a,padding:i,scope:l,size:c,sortDirection:p,variant:u,...m}=r,g=d.useContext(dl),b=d.useContext(Ir),v=b&&b.variant==="head";let h;a?h=a:h=v?"th":"td";let y=l;h==="td"?y=void 0:!y&&v&&(y="col");const S=u||b&&b.variant,C={...r,align:n,component:h,padding:i||(g&&g.padding?g.padding:"normal"),size:c||(g&&g.size?g.size:"medium"),sortDirection:p,stickyHeader:S==="head"&&g&&g.stickyHeader,variant:S},x=Z0(C);let w=null;return p&&(w=p==="asc"?"ascending":"descending"),f.jsx(Q0,{as:h,ref:o,className:j(x.root,s),"aria-sort":w,scope:y,ownerState:C,...m})});function J0(t){return V("MuiTableContainer",t)}const W1=K("MuiTableContainer",["root"]),tC=t=>{const{classes:e}=t;return G({root:["root"]},J0,e)},eC=k("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(t,e)=>e.root})({width:"100%",overflowX:"auto"}),U1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableContainer"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=tC(i);return f.jsx(eC,{ref:o,as:s,className:j(l.root,n),ownerState:i,...a})});function oC(t){return V("MuiTableFooter",t)}const H1=K("MuiTableFooter",["root"]),rC=t=>{const{classes:e}=t;return G({root:["root"]},oC,e)},nC=k("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-footer-group"}),sC={variant:"footer"},Za="tfoot",V1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableFooter"}),{className:n,component:s=Za,...a}=r,i={...r,component:s},l=rC(i);return f.jsx(Ir.Provider,{value:sC,children:f.jsx(nC,{as:s,className:j(l.root,n),ref:o,role:s===Za?null:"rowgroup",ownerState:i,...a})})});function aC(t){return V("MuiTableHead",t)}const G1=K("MuiTableHead",["root"]),iC=t=>{const{classes:e}=t;return G({root:["root"]},aC,e)},lC=k("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-header-group"}),cC={variant:"head"},Qa="thead",K1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableHead"}),{className:n,component:s=Qa,...a}=r,i={...r,component:s},l=iC(i);return f.jsx(Ir.Provider,{value:cC,children:f.jsx(lC,{as:s,className:j(l.root,n),ref:o,role:s===Qa?null:"rowgroup",ownerState:i,...a})})});function pC(t){return V("MuiToolbar",t)}const q1=K("MuiToolbar",["root","gutters","regular","dense"]),dC=t=>{const{classes:e,disableGutters:o,variant:r}=t;return G({root:["root",!o&&"gutters",r]},pC,e)},uC=k("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableGutters&&e.gutters,e[o.variant]]}})(W(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:t.mixins.toolbar}]}))),fC=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiToolbar"}),{className:n,component:s="div",disableGutters:a=!1,variant:i="regular",...l}=r,c={...r,component:s,disableGutters:a,variant:i},p=dC(c);return f.jsx(uC,{as:s,className:j(p.root,n),ref:o,ownerState:c,...l})}),ul=Qt(f.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),fl=Qt(f.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight"),gC=d.forwardRef(function(e,o){const{backIconButtonProps:r,count:n,disabled:s=!1,getItemAriaLabel:a,nextIconButtonProps:i,onPageChange:l,page:c,rowsPerPage:p,showFirstButton:u,showLastButton:m,slots:g={},slotProps:b={},...v}=e,h=Ke(),y=U=>{l(U,0)},S=U=>{l(U,c-1)},C=U=>{l(U,c+1)},x=U=>{l(U,Math.max(0,Math.ceil(n/p)-1))},w=g.firstButton??$o,P=g.lastButton??$o,$=g.nextButton??$o,I=g.previousButton??$o,A=g.firstButtonIcon??ol,T=g.lastButtonIcon??rl,z=g.nextButtonIcon??fl,E=g.previousButtonIcon??ul,R=h?P:w,M=h?$:I,O=h?I:$,L=h?w:P,F=h?b.lastButton:b.firstButton,D=h?b.nextButton:b.previousButton,N=h?b.previousButton:b.nextButton,J=h?b.firstButton:b.lastButton;return f.jsxs("div",{ref:o,...v,children:[u&&f.jsx(R,{onClick:y,disabled:s||c===0,"aria-label":a("first",c),title:a("first",c),...F,children:h?f.jsx(T,{...b.lastButtonIcon}):f.jsx(A,{...b.firstButtonIcon})}),f.jsx(M,{onClick:S,disabled:s||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...D??r,children:h?f.jsx(z,{...b.nextButtonIcon}):f.jsx(E,{...b.previousButtonIcon})}),f.jsx(O,{onClick:C,disabled:s||(n!==-1?c>=Math.ceil(n/p)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...N??i,children:h?f.jsx(E,{...b.previousButtonIcon}):f.jsx(z,{...b.nextButtonIcon})}),m&&f.jsx(L,{onClick:x,disabled:s||c>=Math.ceil(n/p)-1,"aria-label":a("last",c),title:a("last",c),...J,children:h?f.jsx(A,{...b.firstButtonIcon}):f.jsx(T,{...b.lastButtonIcon})})]})});function mC(t){return V("MuiTablePagination",t)}const mr=K("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var Ja;const bC=k(cs,{name:"MuiTablePagination",slot:"Root",overridesResolver:(t,e)=>e.root})(W(({theme:t})=>({overflow:"auto",color:(t.vars||t).palette.text.primary,fontSize:t.typography.pxToRem(14),"&:last-child":{padding:0}}))),vC=k(fC,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(t,e)=>({[`& .${mr.actions}`]:e.actions,...e.toolbar})})(W(({theme:t})=>({minHeight:52,paddingRight:2,[`${t.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[t.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${mr.actions}`]:{flexShrink:0,marginLeft:20}}))),hC=k("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(t,e)=>e.spacer})({flex:"1 1 100%"}),yC=k("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(t,e)=>e.selectLabel})(W(({theme:t})=>({...t.typography.body2,flexShrink:0}))),xC=k(Bs,{name:"MuiTablePagination",slot:"Select",overridesResolver:(t,e)=>({[`& .${mr.selectIcon}`]:e.selectIcon,[`& .${mr.select}`]:e.select,...e.input,...e.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${mr.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),CC=k(Ph,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(t,e)=>e.menuItem})({}),SC=k("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(t,e)=>e.displayedRows})(W(({theme:t})=>({...t.typography.body2,flexShrink:0})));function wC({from:t,to:e,count:o}){return`${t}–${e} of ${o!==-1?o:`more than ${e}`}`}function RC(t){return`Go to ${t} page`}const PC=t=>{const{classes:e}=t;return G({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},mC,e)},X1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTablePagination"}),{ActionsComponent:n=gC,backIconButtonProps:s,colSpan:a,component:i=cs,count:l,disabled:c=!1,getItemAriaLabel:p=RC,labelDisplayedRows:u=wC,labelRowsPerPage:m="Rows per page:",nextIconButtonProps:g,onPageChange:b,onRowsPerPageChange:v,page:h,rowsPerPage:y,rowsPerPageOptions:S=[10,25,50,100],SelectProps:C={},showFirstButton:x=!1,showLastButton:w=!1,slotProps:P={},slots:$={},...I}=r,A=r,T=PC(A),z=(P==null?void 0:P.select)??C,E=z.native?"option":CC;let R;(i===cs||i==="td")&&(R=a||1e3);const M=De(z.id),O=De(z.labelId),L=()=>l===-1?(h+1)*y:y===-1?l:Math.min(l,(h+1)*y),F={slots:$,slotProps:P},[D,N]=Q("root",{ref:o,className:T.root,elementType:bC,externalForwardedProps:{...F,component:i,...I},ownerState:A,additionalProps:{colSpan:R}}),[J,U]=Q("toolbar",{className:T.toolbar,elementType:vC,externalForwardedProps:F,ownerState:A}),[wt,vt]=Q("spacer",{className:T.spacer,elementType:hC,externalForwardedProps:F,ownerState:A}),[mt,et]=Q("selectLabel",{className:T.selectLabel,elementType:yC,externalForwardedProps:F,ownerState:A,additionalProps:{id:O}}),[rt,Y]=Q("select",{className:T.select,elementType:xC,externalForwardedProps:F,ownerState:A}),[at,ct]=Q("menuItem",{className:T.menuItem,elementType:E,externalForwardedProps:F,ownerState:A}),[st,ft]=Q("displayedRows",{className:T.displayedRows,elementType:SC,externalForwardedProps:F,ownerState:A});return f.jsx(D,{...N,children:f.jsxs(J,{...U,children:[f.jsx(wt,{...vt}),S.length>1&&f.jsx(mt,{...et,children:m}),S.length>1&&f.jsx(rt,{variant:"standard",...!z.variant&&{input:Ja||(Ja=f.jsx(wn,{}))},value:y,onChange:v,id:M,labelId:O,...z,classes:{...z.classes,root:j(T.input,T.selectRoot,(z.classes||{}).root),select:j(T.select,(z.classes||{}).select),icon:j(T.selectIcon,(z.classes||{}).icon)},disabled:c,...Y,children:S.map(Z=>d.createElement(at,{...ct,key:Z.label?Z.label:Z,value:Z.value?Z.value:Z},Z.label?Z.label:Z))}),f.jsx(st,{...ft,children:u({from:l===0?0:h*y+1,to:L(),count:l===-1?-1:l,page:h})}),f.jsx(n,{className:T.actions,backIconButtonProps:s,count:l,nextIconButtonProps:g,onPageChange:b,page:h,rowsPerPage:y,showFirstButton:x,showLastButton:w,slotProps:P.actions,slots:$.actions,getItemAriaLabel:p,disabled:c})]})})});function $C(t){return V("MuiTableRow",t)}const ti=K("MuiTableRow",["root","selected","hover","head","footer"]),kC=t=>{const{classes:e,selected:o,hover:r,head:n,footer:s}=t;return G({root:["root",o&&"selected",r&&"hover",n&&"head",s&&"footer"]},$C,e)},IC=k("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.head&&e.head,o.footer&&e.footer]}})(W(({theme:t})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${ti.hover}:hover`]:{backgroundColor:(t.vars||t).palette.action.hover},[`&.${ti.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.primary.main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)}}}))),ei="tr",_1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableRow"}),{className:n,component:s=ei,hover:a=!1,selected:i=!1,...l}=r,c=d.useContext(Ir),p={...r,component:s,hover:a,selected:i,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},u=kC(p);return f.jsx(IC,{as:s,ref:o,className:j(u.root,n),role:s===ei?null:"row",ownerState:p,...l})}),TC=Qt(f.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function MC(t){return V("MuiTableSortLabel",t)}const Wn=K("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),LC=t=>{const{classes:e,direction:o,active:r}=t,n={root:["root",r&&"active",`direction${B(o)}`],icon:["icon",`iconDirection${B(o)}`]};return G(n,MC,e)},AC=k(ue,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.active&&e.active]}})(W(({theme:t})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(t.vars||t).palette.text.secondary},"&:hover":{color:(t.vars||t).palette.text.secondary,[`& .${Wn.icon}`]:{opacity:.5}},[`&.${Wn.active}`]:{color:(t.vars||t).palette.text.primary,[`& .${Wn.icon}`]:{opacity:1,color:(t.vars||t).palette.text.secondary}}}))),BC=k("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,e[`iconDirection${B(o.direction)}`]]}})(W(({theme:t})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:t.transitions.create(["opacity","transform"],{duration:t.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),Y1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTableSortLabel"}),{active:n=!1,children:s,className:a,direction:i="asc",hideSortIcon:l=!1,IconComponent:c=TC,slots:p={},slotProps:u={},...m}=r,g={...r,active:n,direction:i,hideSortIcon:l,IconComponent:c},b=LC(g),v={slots:p,slotProps:u},[h,y]=Q("root",{elementType:AC,externalForwardedProps:v,ownerState:g,className:j(b.root,a),ref:o}),[S,C]=Q("icon",{elementType:BC,externalForwardedProps:v,ownerState:g,className:b.icon});return f.jsxs(h,{disableRipple:!0,component:"span",...y,...m,children:[s,l&&!n?null:f.jsx(S,{as:c,...C})]})});function EC(t){return(1+Math.sin(Math.PI*t-Math.PI/2))/2}function OC(t,e,o,r={},n=()=>{}){const{ease:s=EC,duration:a=300}=r;let i=null;const l=e[t];let c=!1;const p=()=>{c=!0},u=m=>{if(c){n(new Error("Animation cancelled"));return}i===null&&(i=m);const g=Math.min(1,(m-i)/a);if(e[t]=s(g)*(o-l)+l,g>=1){requestAnimationFrame(()=>{n(null)});return}requestAnimationFrame(u)};return l===o?(n(new Error("Element already at target position")),p):(requestAnimationFrame(u),p)}const NC={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function zC(t){const{onChange:e,...o}=t,r=d.useRef(),n=d.useRef(null),s=()=>{r.current=n.current.offsetHeight-n.current.clientHeight};return be(()=>{const a=Pr(()=>{const l=r.current;s(),l!==r.current&&e(r.current)}),i=me(n.current);return i.addEventListener("resize",a),()=>{a.clear(),i.removeEventListener("resize",a)}},[e]),d.useEffect(()=>{s(),e(r.current)},[e]),f.jsx("div",{style:NC,...o,ref:n})}function jC(t){return V("MuiTabScrollButton",t)}const DC=K("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),FC=t=>{const{classes:e,orientation:o,disabled:r}=t;return G({root:["root",o,r&&"disabled"]},jC,e)},WC=k(ue,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.orientation&&e[o.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${DC.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),UC=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTabScrollButton"}),{className:n,slots:s={},slotProps:a={},direction:i,orientation:l,disabled:c,...p}=r,u=Ke(),m={isRtl:u,...r},g=FC(m),b=s.StartScrollButtonIcon??ul,v=s.EndScrollButtonIcon??fl,h=Ce({elementType:b,externalSlotProps:a.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m}),y=Ce({elementType:v,externalSlotProps:a.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:m});return f.jsx(WC,{component:"div",className:j(g.root,n),ref:o,role:null,ownerState:m,tabIndex:null,...p,style:{...p.style,...l==="vertical"&&{"--TabScrollButton-svgRotate":`rotate(${u?-90:90}deg)`}},children:i==="left"?f.jsx(b,{...h}):f.jsx(v,{...y})})});function HC(t){return V("MuiTabs",t)}const Un=K("MuiTabs",["root","vertical","list","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),oi=(t,e)=>t===e?t.firstChild:e&&e.nextElementSibling?e.nextElementSibling:t.firstChild,ri=(t,e)=>t===e?t.lastChild:e&&e.previousElementSibling?e.previousElementSibling:t.lastChild,Zr=(t,e,o)=>{let r=!1,n=o(t,e);for(;n;){if(n===t.firstChild){if(r)return;r=!0}const s=n.disabled||n.getAttribute("aria-disabled")==="true";if(!n.hasAttribute("tabindex")||s)n=o(t,n);else{n.focus();return}}},VC=t=>{const{vertical:e,fixed:o,hideScrollbar:r,scrollableX:n,scrollableY:s,centered:a,scrollButtonsHideMobile:i,classes:l}=t;return G({root:["root",e&&"vertical"],scroller:["scroller",o&&"fixed",r&&"hideScrollbar",n&&"scrollableX",s&&"scrollableY"],list:["list","flexContainer",e&&"flexContainerVertical",e&&"vertical",a&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",i&&"scrollButtonsHideMobile"],scrollableX:[n&&"scrollableX"],hideScrollbar:[r&&"hideScrollbar"]},HC,l)},GC=k("div",{name:"MuiTabs",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Un.scrollButtons}`]:e.scrollButtons},{[`& .${Un.scrollButtons}`]:o.scrollButtonsHideMobile&&e.scrollButtonsHideMobile},e.root,o.vertical&&e.vertical]}})(W(({theme:t})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.scrollButtonsHideMobile,style:{[`& .${Un.scrollButtons}`]:{[t.breakpoints.down("sm")]:{display:"none"}}}}]}))),KC=k("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.scroller,o.fixed&&e.fixed,o.hideScrollbar&&e.hideScrollbar,o.scrollableX&&e.scrollableX,o.scrollableY&&e.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:t})=>t.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:t})=>t.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:t})=>t.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:t})=>t.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),qC=k("div",{name:"MuiTabs",slot:"List",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.list,e.flexContainer,o.vertical&&e.flexContainerVertical,o.centered&&e.centered]}})({display:"flex",variants:[{props:({ownerState:t})=>t.vertical,style:{flexDirection:"column"}},{props:({ownerState:t})=>t.centered,style:{justifyContent:"center"}}]}),XC=k("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(t,e)=>e.indicator})(W(({theme:t})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:t.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(t.vars||t).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(t.vars||t).palette.secondary.main}},{props:({ownerState:e})=>e.vertical,style:{height:"100%",width:2,right:0}}]}))),_C=k(zC)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),ni={},Z1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTabs"}),n=le(),s=Ke(),{"aria-label":a,"aria-labelledby":i,action:l,centered:c=!1,children:p,className:u,component:m="div",allowScrollButtonsMobile:g=!1,indicatorColor:b="primary",onChange:v,orientation:h="horizontal",ScrollButtonComponent:y,scrollButtons:S="auto",selectionFollowsFocus:C,slots:x={},slotProps:w={},TabIndicatorProps:P={},TabScrollButtonProps:$={},textColor:I="primary",value:A,variant:T="standard",visibleScrollbar:z=!1,...E}=r,R=T==="scrollable",M=h==="vertical",O=M?"scrollTop":"scrollLeft",L=M?"top":"left",F=M?"bottom":"right",D=M?"clientHeight":"clientWidth",N=M?"height":"width",J={...r,component:m,allowScrollButtonsMobile:g,indicatorColor:b,orientation:h,vertical:M,scrollButtons:S,textColor:I,variant:T,visibleScrollbar:z,fixed:!R,hideScrollbar:R&&!z,scrollableX:R&&!M,scrollableY:R&&M,centered:c&&!R,scrollButtonsHideMobile:!g},U=VC(J),wt=Ce({elementType:x.StartScrollButtonIcon,externalSlotProps:w.startScrollButtonIcon,ownerState:J}),vt=Ce({elementType:x.EndScrollButtonIcon,externalSlotProps:w.endScrollButtonIcon,ownerState:J}),[mt,et]=d.useState(!1),[rt,Y]=d.useState(ni),[at,ct]=d.useState(!1),[st,ft]=d.useState(!1),[Z,pt]=d.useState(!1),[it,ht]=d.useState({overflow:"hidden",scrollbarWidth:0}),Mt=new Map,tt=d.useRef(null),ot=d.useRef(null),dt={slots:x,slotProps:{indicator:P,scrollButton:$,...w}},St=()=>{const yt=tt.current;let Pt;if(yt){const Ft=yt.getBoundingClientRect();Pt={clientWidth:yt.clientWidth,scrollLeft:yt.scrollLeft,scrollTop:yt.scrollTop,scrollWidth:yt.scrollWidth,top:Ft.top,bottom:Ft.bottom,left:Ft.left,right:Ft.right}}let Dt;if(yt&&A!==!1){const Ft=ot.current.children;if(Ft.length>0){const Zt=Ft[Mt.get(A)];Dt=Zt?Zt.getBoundingClientRect():null}}return{tabsMeta:Pt,tabMeta:Dt}},gt=ee(()=>{const{tabsMeta:yt,tabMeta:Pt}=St();let Dt=0,Ft;M?(Ft="top",Pt&&yt&&(Dt=Pt.top-yt.top+yt.scrollTop)):(Ft=s?"right":"left",Pt&&yt&&(Dt=(s?-1:1)*(Pt[Ft]-yt[Ft]+yt.scrollLeft)));const Zt={[Ft]:Dt,[N]:Pt?Pt[N]:0};if(typeof rt[Ft]!="number"||typeof rt[N]!="number")Y(Zt);else{const Se=Math.abs(rt[Ft]-Zt[Ft]),Ve=Math.abs(rt[N]-Zt[N]);(Se>=1||Ve>=1)&&Y(Zt)}}),nt=(yt,{animation:Pt=!0}={})=>{Pt?OC(O,tt.current,yt,{duration:n.transitions.duration.standard}):tt.current[O]=yt},Tt=yt=>{let Pt=tt.current[O];M?Pt+=yt:Pt+=yt*(s?-1:1),nt(Pt)},At=()=>{const yt=tt.current[D];let Pt=0;const Dt=Array.from(ot.current.children);for(let Ft=0;Ftyt){Ft===0&&(Pt=yt);break}Pt+=Zt[D]}return Pt},q=()=>{Tt(-1*At())},lt=()=>{Tt(At())},[bt,{onChange:$t,...It}]=Q("scrollbar",{className:j(U.scrollableX,U.hideScrollbar),elementType:_C,shouldForwardComponentProp:!0,externalForwardedProps:dt,ownerState:J}),ut=d.useCallback(yt=>{$t==null||$t(yt),ht({overflow:null,scrollbarWidth:yt})},[$t]),[Ct,Ut]=Q("scrollButtons",{className:j(U.scrollButtons,$.className),elementType:UC,externalForwardedProps:dt,ownerState:J,additionalProps:{orientation:h,slots:{StartScrollButtonIcon:x.startScrollButtonIcon||x.StartScrollButtonIcon,EndScrollButtonIcon:x.endScrollButtonIcon||x.EndScrollButtonIcon},slotProps:{startScrollButtonIcon:wt,endScrollButtonIcon:vt}}}),Et=()=>{const yt={};yt.scrollbarSizeListener=R?f.jsx(bt,{...It,onChange:ut}):null;const Dt=R&&(S==="auto"&&(at||st)||S===!0);return yt.scrollButtonStart=Dt?f.jsx(Ct,{direction:s?"right":"left",onClick:q,disabled:!at,...Ut}):null,yt.scrollButtonEnd=Dt?f.jsx(Ct,{direction:s?"left":"right",onClick:lt,disabled:!st,...Ut}):null,yt},Gt=ee(yt=>{const{tabsMeta:Pt,tabMeta:Dt}=St();if(!(!Dt||!Pt)){if(Dt[L]Pt[F]){const Ft=Pt[O]+(Dt[F]-Pt[F]);nt(Ft,{animation:yt})}}}),xt=ee(()=>{R&&S!==!1&&pt(!Z)});d.useEffect(()=>{const yt=Pr(()=>{tt.current&>()});let Pt;const Dt=Se=>{Se.forEach(Ve=>{Ve.removedNodes.forEach(to=>{Pt==null||Pt.unobserve(to)}),Ve.addedNodes.forEach(to=>{Pt==null||Pt.observe(to)})}),yt(),xt()},Ft=me(tt.current);Ft.addEventListener("resize",yt);let Zt;return typeof ResizeObserver<"u"&&(Pt=new ResizeObserver(yt),Array.from(ot.current.children).forEach(Se=>{Pt.observe(Se)})),typeof MutationObserver<"u"&&(Zt=new MutationObserver(Dt),Zt.observe(ot.current,{childList:!0})),()=>{yt.clear(),Ft.removeEventListener("resize",yt),Zt==null||Zt.disconnect(),Pt==null||Pt.disconnect()}},[gt,xt]),d.useEffect(()=>{const yt=Array.from(ot.current.children),Pt=yt.length;if(typeof IntersectionObserver<"u"&&Pt>0&&R&&S!==!1){const Dt=yt[0],Ft=yt[Pt-1],Zt={root:tt.current,threshold:.99},Se=ne=>{ct(!ne[0].isIntersecting)},Ve=new IntersectionObserver(Se,Zt);Ve.observe(Dt);const to=ne=>{ft(!ne[0].isIntersecting)},co=new IntersectionObserver(to,Zt);return co.observe(Ft),()=>{Ve.disconnect(),co.disconnect()}}},[R,S,Z,p==null?void 0:p.length]),d.useEffect(()=>{et(!0)},[]),d.useEffect(()=>{gt()}),d.useEffect(()=>{Gt(ni!==rt)},[Gt,rt]),d.useImperativeHandle(l,()=>({updateIndicator:gt,updateScrollButtons:xt}),[gt,xt]);const[Bt,Xt]=Q("indicator",{className:j(U.indicator,P.className),elementType:XC,externalForwardedProps:dt,ownerState:J,additionalProps:{style:rt}}),oe=f.jsx(Bt,{...Xt});let fe=0;const ie=d.Children.map(p,yt=>{if(!d.isValidElement(yt))return null;const Pt=yt.props.value===void 0?fe:yt.props.value;Mt.set(Pt,fe);const Dt=Pt===A;return fe+=1,d.cloneElement(yt,{fullWidth:T==="fullWidth",indicator:Dt&&!mt&&oe,selected:Dt,selectionFollowsFocus:C,onChange:v,textColor:I,value:Pt,...fe===1&&A===!1&&!yt.props.tabIndex?{tabIndex:0}:{}})}),Pe=yt=>{if(yt.altKey||yt.shiftKey||yt.ctrlKey||yt.metaKey)return;const Pt=ot.current,Dt=te(Pt).activeElement;if(Dt.getAttribute("role")!=="tab")return;let Zt=h==="horizontal"?"ArrowLeft":"ArrowUp",Se=h==="horizontal"?"ArrowRight":"ArrowDown";switch(h==="horizontal"&&s&&(Zt="ArrowRight",Se="ArrowLeft"),yt.key){case Zt:yt.preventDefault(),Zr(Pt,Dt,ri);break;case Se:yt.preventDefault(),Zr(Pt,Dt,oi);break;case"Home":yt.preventDefault(),Zr(Pt,null,oi);break;case"End":yt.preventDefault(),Zr(Pt,null,ri);break}},Vt=Et(),[_t,ce]=Q("root",{ref:o,className:j(U.root,u),elementType:GC,externalForwardedProps:{...dt,...E,component:m},ownerState:J}),[$e,pe]=Q("scroller",{ref:tt,className:U.scroller,elementType:KC,externalForwardedProps:dt,ownerState:J,additionalProps:{style:{overflow:it.overflow,[M?`margin${s?"Left":"Right"}`:"marginBottom"]:z?void 0:-it.scrollbarWidth}}}),[Lt,ge]=Q("list",{ref:ot,className:j(U.list,U.flexContainer),elementType:qC,externalForwardedProps:dt,ownerState:J,getSlotProps:yt=>({...yt,onKeyDown:Pt=>{var Dt;Pe(Pt),(Dt=yt.onKeyDown)==null||Dt.call(yt,Pt)}})});return f.jsxs(_t,{...ce,children:[Vt.scrollButtonStart,Vt.scrollbarSizeListener,f.jsxs($e,{...pe,children:[f.jsx(Lt,{"aria-label":a,"aria-labelledby":i,"aria-orientation":h==="vertical"?"vertical":null,role:"tablist",...ge,children:ie}),mt&&oe]}),Vt.scrollButtonEnd]})});function YC(t){return V("MuiTextField",t)}const Q1=K("MuiTextField",["root"]),ZC={standard:Rn,filled:Is,outlined:Ls},QC=t=>{const{classes:e}=t;return G({root:["root"]},YC,e)},JC=k(sb,{name:"MuiTextField",slot:"Root",overridesResolver:(t,e)=>e.root})({}),J1=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiTextField"}),{autoComplete:n,autoFocus:s=!1,children:a,className:i,color:l="primary",defaultValue:c,disabled:p=!1,error:u=!1,FormHelperTextProps:m,fullWidth:g=!1,helperText:b,id:v,InputLabelProps:h,inputProps:y,InputProps:S,inputRef:C,label:x,maxRows:w,minRows:P,multiline:$=!1,name:I,onBlur:A,onChange:T,onFocus:z,placeholder:E,required:R=!1,rows:M,select:O=!1,SelectProps:L,slots:F={},slotProps:D={},type:N,value:J,variant:U="outlined",...wt}=r,vt={...r,autoFocus:s,color:l,disabled:p,error:u,fullWidth:g,multiline:$,required:R,select:O,variant:U},mt=QC(vt),et=De(v),rt=b&&et?`${et}-helper-text`:void 0,Y=x&&et?`${et}-label`:void 0,at=ZC[U],ct={slots:F,slotProps:{input:S,inputLabel:h,htmlInput:y,formHelperText:m,select:L,...D}},st={},ft=ct.slotProps.inputLabel;U==="outlined"&&(ft&&typeof ft.shrink<"u"&&(st.notched=ft.shrink),st.label=x),O&&((!L||!L.native)&&(st.id=void 0),st["aria-describedby"]=void 0);const[Z,pt]=Q("root",{elementType:JC,shouldForwardComponentProp:!0,externalForwardedProps:{...ct,...wt},ownerState:vt,className:j(mt.root,i),ref:o,additionalProps:{disabled:p,error:u,fullWidth:g,required:R,color:l,variant:U}}),[it,ht]=Q("input",{elementType:at,externalForwardedProps:ct,additionalProps:st,ownerState:vt}),[Mt,tt]=Q("inputLabel",{elementType:Cv,externalForwardedProps:ct,ownerState:vt}),[ot,dt]=Q("htmlInput",{elementType:"input",externalForwardedProps:ct,ownerState:vt}),[St,gt]=Q("formHelperText",{elementType:vb,externalForwardedProps:ct,ownerState:vt}),[nt,Tt]=Q("select",{elementType:Bs,externalForwardedProps:ct,ownerState:vt}),At=f.jsx(it,{"aria-describedby":rt,autoComplete:n,autoFocus:s,defaultValue:c,fullWidth:g,multiline:$,name:I,rows:M,maxRows:w,minRows:P,type:N,value:J,id:et,inputRef:C,onBlur:A,onChange:T,onFocus:z,placeholder:E,inputProps:dt,slots:{input:F.htmlInput?ot:void 0},...ht});return f.jsxs(Z,{...pt,children:[x!=null&&x!==""&&f.jsx(Mt,{htmlFor:et,id:Y,...tt,children:x}),O?f.jsx(nt,{"aria-describedby":rt,id:et,labelId:Y,value:J,input:At,...Tt,children:a}):At,b&&f.jsx(St,{id:rt,...gt,children:b})]})});function tS(t){return V("MuiToggleButton",t)}const ko=K("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),gl=d.createContext({}),ml=d.createContext(void 0);function eS(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const oS=t=>{const{classes:e,fullWidth:o,selected:r,disabled:n,size:s,color:a}=t,i={root:["root",r&&"selected",n&&"disabled",o&&"fullWidth",`size${B(s)}`,a]};return G(i,tS,e)},rS=k(ue,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`size${B(o.size)}`]]}})(W(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${ko.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:kt(t.palette.text.primary,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${ko.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.text.primary,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette.text.primary,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette.text.primary,t.palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(jt()).map(([e])=>({props:{color:e},style:{[`&.${ko.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette[e].main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:kt(t.palette[e].main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:kt(t.palette[e].main,t.palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),tR=d.forwardRef(function(e,o){const{value:r,...n}=d.useContext(gl),s=d.useContext(ml),a=ps({...n,selected:eS(e.value,r)},e),i=_({props:a,name:"MuiToggleButton"}),{children:l,className:c,color:p="standard",disabled:u=!1,disableFocusRipple:m=!1,fullWidth:g=!1,onChange:b,onClick:v,selected:h,size:y="medium",value:S,...C}=i,x={...i,color:p,disabled:u,disableFocusRipple:m,fullWidth:g,size:y},w=oS(x),P=I=>{v&&(v(I,S),I.defaultPrevented)||b&&b(I,S)},$=s||"";return f.jsx(rS,{className:j(n.className,w.root,c,$),disabled:u,focusRipple:!m,ref:o,onClick:P,onChange:b,value:S,ownerState:x,"aria-pressed":h,...C,children:l})});function nS(t){return V("MuiToggleButtonGroup",t)}const Jt=K("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),sS=t=>{const{classes:e,orientation:o,fullWidth:r,disabled:n}=t,s={root:["root",o,r&&"fullWidth"],grouped:["grouped",`grouped${B(o)}`,n&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return G(s,nS,e)},aS=k("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Jt.grouped}`]:e.grouped},{[`& .${Jt.grouped}`]:e[`grouped${B(o.orientation)}`]},{[`& .${Jt.firstButton}`]:e.firstButton},{[`& .${Jt.lastButton}`]:e.lastButton},{[`& .${Jt.middleButton}`]:e.middleButton},e.root,o.orientation==="vertical"&&e.vertical,o.fullWidth&&e.fullWidth]}})(W(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Jt.grouped}`]:{[`&.${Jt.selected} + .${Jt.grouped}.${Jt.selected}`]:{borderTop:0,marginTop:0}},[`& .${Jt.firstButton},& .${Jt.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${Jt.lastButton},& .${Jt.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${Jt.lastButton}.${ko.disabled},& .${Jt.middleButton}.${ko.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${Jt.grouped}`]:{[`&.${Jt.selected} + .${Jt.grouped}.${Jt.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${Jt.firstButton},& .${Jt.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Jt.lastButton},& .${Jt.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${Jt.lastButton}.${ko.disabled},& .${Jt.middleButton}.${ko.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),eR=d.forwardRef(function(e,o){const r=_({props:e,name:"MuiToggleButtonGroup"}),{children:n,className:s,color:a="standard",disabled:i=!1,exclusive:l=!1,fullWidth:c=!1,onChange:p,orientation:u="horizontal",size:m="medium",value:g,...b}=r,v={...r,disabled:i,fullWidth:c,orientation:u,size:m},h=sS(v),y=d.useCallback(($,I)=>{if(!p)return;const A=g&&g.indexOf(I);let T;g&&A>=0?(T=g.slice(),T.splice(A,1)):T=g?g.concat(I):[I],p($,T)},[p,g]),S=d.useCallback(($,I)=>{p&&p($,g===I?null:I)},[p,g]),C=d.useMemo(()=>({className:h.grouped,onChange:l?S:y,value:g,size:m,fullWidth:c,color:a,disabled:i}),[h.grouped,l,S,y,g,m,c,a,i]),x=mi(n),w=x.length,P=$=>{const I=$===0,A=$===w-1;return I&&A?"":I?h.firstButton:A?h.lastButton:h.middleButton};return f.jsx(aS,{role:"group",className:j(h.root,s),ref:o,ownerState:v,...b,children:f.jsx(gl.Provider,{value:C,children:x.map(($,I)=>f.jsx(ml.Provider,{value:P(I),children:$},I))})})});function iS(t,e){const{disableHysteresis:o=!1,threshold:r=100,target:n}=e,s=t.current;return n&&(t.current=n.pageYOffset!==void 0?n.pageYOffset:n.scrollTop),!o&&s!==void 0&&t.currentr}const lS=typeof window<"u"?window:null;function oR(t={}){const{getTrigger:e=iS,target:o=lS,...r}=t,n=d.useRef(),[s,a]=d.useState(()=>e(n,r));return d.useEffect(()=>{if(o===null)return a(!1);const i=()=>{a(e(n,{target:o,...r}))};return i(),o.addEventListener("scroll",i,{passive:!0}),()=>{o.removeEventListener("scroll",i,{passive:!0})}},[o,e,JSON.stringify(r)]),s}const rR="6.4.12",nR=6,sR=4,aR=12,iR=void 0;export{AS as Accordion,ES as AccordionActions,NS as AccordionDetails,jS as AccordionSummary,FS as Alert,US as AlertTitle,VS as AppBar,KS as Autocomplete,Cf as Avatar,qS as AvatarGroup,Ei as Backdrop,_S as Badge,ZS as BottomNavigation,QS as BottomNavigationAction,JS as Box,tw as Breadcrumbs,ew as Button,ue as ButtonBase,ow as ButtonGroup,zi as ButtonGroupButtonContext,Ni as ButtonGroupContext,nw as Card,sw as CardActionArea,iw as CardActions,cw as CardContent,pw as CardHeader,uw as CardMedia,fw as Checkbox,Hu as Chip,Si as CircularProgress,_g as ClickAwayListener,vr as Collapse,gw as Container,vw as CssBaseline,IR as CssVarsProvider,xw as Dialog,Sw as DialogActions,Rw as DialogContent,$w as DialogContentText,kw as DialogTitle,Sa as Divider,_m as Drawer,TR as Experimental_CssVarsProvider,Gi as Fab,ts as Fade,Is as FilledInput,sb as FormControl,Mw as FormControlLabel,fb as FormGroup,vb as FormHelperText,Sb as FormLabel,xb as FormLabelRoot,Uc as GlobalStyles,Aw as Grid,Bw as Grid2,Cr as Grow,Nw as Hidden,Zb as Icon,$o as IconButton,Dw as ImageList,Fw as ImageListItem,Uw as ImageListItemBar,Rn as Input,Hw as InputAdornment,wn as InputBase,Cv as InputLabel,Lv as LinearProgress,Kw as Link,Fv as List,Zw as ListItem,Jw as ListItemAvatar,_w as ListItemButton,t1 as ListItemIcon,_i as ListItemSecondaryAction,e1 as ListItemText,Jn as ListSubheader,xh as Menu,Ph as MenuItem,lh as MenuList,s1 as MobileStepper,ks as Modal,rm as ModalManager,zh as NativeSelect,jh as NoSsr,Ls as OutlinedInput,i1 as Pagination,ey as PaginationItem,Ue as Paper,uh as Popover,Zi as PopoverPaper,dh as PopoverRoot,vn as Popper,Bi as Portal,l1 as Radio,p1 as RadioGroup,d1 as Rating,f1 as ScopedCssBaseline,Bs as Select,m1 as Skeleton,Hm as Slide,b1 as Slider,fx as SliderMark,gx as SliderMarkLabel,cx as SliderRail,lx as SliderRoot,dx as SliderThumb,px as SliderTrack,ux as SliderValueLabel,y1 as Snackbar,wx as SnackbarContent,x1 as SpeedDial,C1 as SpeedDialAction,Yx as SpeedDialIcon,S1 as Stack,k1 as Step,I1 as StepButton,y0 as StepConnector,L1 as StepContent,Yo as StepContext,s0 as StepIcon,pl as StepLabel,B1 as Stepper,No as StepperContext,MR as StyledEngineProvider,Dl as SvgIcon,E1 as SwipeableDrawer,O1 as Switch,pn as THEME_ID,N1 as Tab,UC as TabScrollButton,j1 as Table,F1 as TableBody,cs as TableCell,U1 as TableContainer,V1 as TableFooter,K1 as TableHead,X1 as TablePagination,_1 as TableRow,Y1 as TableSortLabel,Z1 as Tabs,J1 as TextField,Ku as TextareaAutosize,LR as ThemeProvider,tR as ToggleButton,eR as ToggleButtonGroup,fC as Toolbar,Fx as Tooltip,he as Typography,pm as Unstable_TrapFocus,Ix as Zoom,BS as accordionActionsClasses,Er as accordionClasses,OS as accordionDetailsClasses,Wo as accordionSummaryClasses,hS as adaptV4Theme,Ks as alertClasses,WS as alertTitleClasses,kt as alpha,HS as appBarClasses,zt as autocompleteClasses,mf as avatarClasses,wf as avatarGroupClasses,XS as backdropClasses,fo as badgeClasses,Oi as bottomNavigationActionClasses,YS as bottomNavigationClasses,Uf as boxClasses,_f as breadcrumbsClasses,$p as buttonBaseClasses,xo as buttonClasses,Nt as buttonGroupClasses,B as capitalize,Tn as cardActionAreaClasses,aw as cardActionsClasses,rw as cardClasses,lw as cardContentClasses,ln as cardHeaderClasses,dw as cardMediaClasses,Mn as checkboxClasses,Wt as chipClasses,DS as circularProgressClasses,MS as collapseClasses,IS as colors,bw as containerClasses,Vn as createChainedFunction,pR as createColorScheme,gd as createFilterOptions,dR as createMuiTheme,xS as createStyles,Qt as createSvgIcon,si as createTheme,uR as createTransitions,Oo as css,hw as darkScrollbar,Lo as darken,Pr as debounce,fR as decomposeColor,mS as deprecatedPropType,Cw as dialogActionsClasses,An as dialogClasses,ww as dialogContentClasses,Pw as dialogContentTextClasses,Tm as dialogTitleClasses,Ca as dividerClasses,Iw as drawerClasses,jl as duration,gR as easing,tn as emphasize,k as experimentalStyled,$S as experimental_extendTheme,kS as experimental_sx,Il as extendTheme,wa as fabClasses,Ie as filledInputClasses,Tw as formControlClasses,pr as formControlLabelClasses,Lw as formGroupClasses,Ra as formHelperTextClasses,gr as formLabelClasses,V as generateUtilityClass,K as generateUtilityClasses,cp as getAccordionActionsUtilityClass,up as getAccordionDetailsUtilityClass,Tp as getAccordionSummaryUtilityClass,sp as getAccordionUtilityClass,ld as getAlertTitleUtilityClass,Np as getAlertUtilityClass,dd as getAppBarUtilityClass,Ju as getAutocompleteUtilityClass,Sf as getAvatarGroupUtilityClass,gf as getAvatarUtilityClass,kf as getBackdropUtilityClass,Lf as getBadgeUtilityClass,jf as getBottomNavigationActionUtilityClass,Of as getBottomNavigationUtilityClass,Xf as getBreadcrumbsUtilityClass,Pp as getButtonBaseUtilityClass,ig as getButtonGroupUtilityClass,eg as getButtonUtilityClass,gg as getCardActionAreaUtilityClass,hg as getCardActionsUtilityClass,Cg as getCardContentUtilityClass,Rg as getCardHeaderUtilityClass,Mg as getCardMediaUtilityClass,dg as getCardUtilityClass,Ug as getCheckboxUtilityClass,Du as getChipUtilityClass,zp as getCircularProgressUtilityClass,Zc as getCollapseUtilityClass,mw as getContainerUtilityClass,mR as getContrastRatio,Rm as getDialogActionsUtilityClass,Am as getDialogContentTextUtilityClass,km as getDialogContentUtilityClass,Im as getDialogTitleUtilityClass,hm as getDialogUtilityClass,zm as getDividerUtilityClass,Vm as getDrawerUtilityClass,Ym as getFabUtilityClass,Qu as getFilledInputUtilityClass,ab as getFormControlLabelUtilityClasses,ob as getFormControlUtilityClasses,pb as getFormGroupUtilityClass,gb as getFormHelperTextUtilityClasses,hb as getFormLabelUtilityClasses,Ew as getGrid2UtilityClass,Vp as getIconButtonUtilityClass,Xb as getIconUtilityClass,nv as getImageListItemBarUtilityClass,ev as getImageListItemUtilityClass,Qb as getImageListUtilityClass,AR as getInitColorSchemeScript,gv as getInputAdornmentUtilityClass,Xu as getInputBaseUtilityClass,hv as getInputLabelUtilityClasses,Yu as getInputUtilityClass,Sv as getLinearProgressUtilityClass,Av as getLinkUtilityClass,Jv as getListItemAvatarUtilityClass,Uv as getListItemButtonUtilityClass,oh as getListItemIconUtilityClass,Kv as getListItemSecondaryActionClassesUtilityClass,sh as getListItemTextUtilityClass,Wv as getListItemUtilityClass,Ou as getListSubheaderUtilityClass,zv as getListUtilityClass,bR as getLuminance,Ch as getMenuItemUtilityClass,fh as getMenuUtilityClass,$h as getMobileStepperUtilityClass,gm as getModalUtilityClass,Qi as getNativeSelectUtilityClasses,Ba as getOffsetLeft,Aa as getOffsetTop,Zu as getOutlinedInputUtilityClass,Ns as getOverlayAlpha,Xh as getPaginationItemUtilityClass,Kh as getPaginationUtilityClass,op as getPaperUtilityClass,ch as getPopoverUtilityClass,ku as getPopperUtilityClass,hy as getRadioGroupUtilityClass,uy as getRadioUtilityClass,Sy as getRatingUtilityClass,Ay as getScopedCssBaselineUtilityClass,ll as getSelectUtilityClasses,Gy as getSkeletonUtilityClass,sx as getSliderUtilityClass,hx as getSnackbarContentUtilityClass,Rx as getSnackbarUtilityClass,Wx as getSpeedDialActionUtilityClass,qx as getSpeedDialIconUtilityClass,Tx as getSpeedDialUtilityClass,u0 as getStepButtonUtilityClass,m0 as getStepConnectorUtilityClass,x0 as getStepContentUtilityClass,o0 as getStepIconUtilityClass,a0 as getStepLabelUtilityClass,Zx as getStepUtilityClass,R0 as getStepperUtilityClass,vR as getSvgIconUtilityClass,B0 as getSwitchUtilityClass,jC as getTabScrollButtonUtilityClass,D0 as getTabUtilityClass,G0 as getTableBodyUtilityClass,_0 as getTableCellUtilityClass,J0 as getTableContainerUtilityClass,oC as getTableFooterUtilityClass,aC as getTableHeadUtilityClass,mC as getTablePaginationUtilityClass,$C as getTableRowUtilityClass,MC as getTableSortLabelUtilityClass,U0 as getTableUtilityClass,HC as getTabsUtilityClass,YC as getTextFieldUtilityClass,nS as getToggleButtonGroupUtilityClass,tS as getToggleButtonUtilityClass,pC as getToolbarUtilityClass,Ex as getTooltipUtilityClass,zS as getTouchRippleUtilityClass,rd as getTypographyUtilityClass,Ow as grid2Classes,hR as hexToRgb,yR as hslToRgb,qs as iconButtonClasses,zw as iconClasses,jw as imageListClasses,Ww as imageListItemBarClasses,En as imageListItemClasses,ka as inputAdornmentClasses,ke as inputBaseClasses,mo as inputClasses,Vw as inputLabelClasses,ho as isMuiElement,Je as keyframes,Ao as lighten,Gw as linearProgressClasses,Bv as linkClasses,qw as listClasses,Qw as listItemAvatarClasses,Fo as listItemButtonClasses,Xw as listItemClasses,Ma as listItemIconClasses,Yw as listItemSecondaryActionClasses,Uo as listItemTextClasses,GS as listSubheaderClasses,nR as major,wS as makeStyles,r1 as menuClasses,or as menuItemClasses,Vo as mergeSlotProps,sR as minor,n1 as mobileStepperClasses,yw as modalClasses,Ms as nativeSelectClasses,Ee as outlinedInputClasses,te as ownerDocument,me as ownerWindow,a1 as paginationClasses,ye as paginationItemClasses,LS as paperClasses,aR as patch,o1 as popoverClasses,iR as prerelease,xR as private_createMixins,CR as private_createTypography,SR as private_excludeVariablesFromRoot,Na as radioClasses,c1 as radioGroupClasses,rr as ratingClasses,wR as recomposeColor,bS as requirePropFactory,CS as responsiveFontSizes,RR as rgbToHex,u1 as scopedCssBaselineClasses,nr as selectClasses,Gn as setRef,PR as shouldSkipGeneratingVar,g1 as skeletonClasses,Ne as sliderClasses,h1 as snackbarClasses,v1 as snackbarContentClasses,_r as speedDialActionClasses,Vr as speedDialClasses,_e as speedDialIconClasses,w1 as stackClasses,Ka as stepButtonClasses,$1 as stepClasses,T1 as stepConnectorClasses,M1 as stepContentClasses,zn as stepIconClasses,vo as stepLabelClasses,A1 as stepperClasses,k as styled,$R as svgIconClasses,xe as switchClasses,Be as tabClasses,DC as tabScrollButtonClasses,D1 as tableBodyClasses,Y0 as tableCellClasses,z1 as tableClasses,W1 as tableContainerClasses,H1 as tableFooterClasses,G1 as tableHeadClasses,mr as tablePaginationClasses,ti as tableRowClasses,Wn as tableSortLabelClasses,Un as tabsClasses,Q1 as textFieldClasses,ko as toggleButtonClasses,Jt as toggleButtonGroupClasses,q1 as toolbarClasses,re as tooltipClasses,Oe as touchRippleClasses,nn as typographyClasses,TS as unstable_ClassNameGenerator,G as unstable_composeClasses,kl as unstable_createBreakpoints,yS as unstable_createMuiStrictModeTheme,xi as unstable_getUnit,W as unstable_memoTheme,go as unstable_toUnitless,be as unstable_useEnhancedEffect,De as unstable_useId,vS as unsupportedProp,yd as useAutocomplete,BR as useColorScheme,Te as useControlled,ee as useEventCallback,qt as useForkRef,He as useFormControl,Db as useMediaQuery,qh as usePagination,dy as useRadioGroup,oR as useScrollTrigger,P1 as useStepContext,R1 as useStepperContext,le as useTheme,SS as useThemeProps,rR as version,RS as withStyles,PS as withTheme}; diff --git a/admin/assets/index-CuCs5aLs.js b/admin/assets/index-CuCs5aLs.js deleted file mode 100644 index f28df6500..000000000 --- a/admin/assets/index-CuCs5aLs.js +++ /dev/null @@ -1,5 +0,0 @@ -import{a as Kt,i as Yt}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import{R as K,i as b}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{c as J,j as X,P as w}from"./createSvgIcon-BQT-7-GS.js";import{g as Jt}from"./_commonjsHelpers-Cpj98o6Y.js";var yt={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},at=K.createContext&&K.createContext(yt),Xt=["attr","size","title"];function Qt(e,t){if(e==null)return{};var i=Zt(e,t),n,l;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(l=0;l=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Zt(e,t){if(e==null)return{};var i={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;i[n]=e[n]}return i}function be(){return be=Object.assign?Object.assign.bind():function(e){for(var t=1;tK.createElement(t.tag,we({key:i},t.attr),xt(t.child)))}function p(e){return t=>K.createElement(ia,be({attr:we({},e.attr)},t),xt(e.child))}function ia(e){var t=i=>{var{attr:n,size:l,title:o}=e,c=Qt(e,Xt),s=l||i.size||"1em",u;return i.className&&(u=i.className),e.className&&(u=(u?u+" ":"")+e.className),K.createElement("svg",be({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},i.attr,n,c,{className:u,style:we(we({color:e.color||i.color},i.style),e.style),height:s,width:s,xmlns:"http://www.w3.org/2000/svg"}),o&&K.createElement("title",null,o),e.children)};return at!==void 0?K.createElement(at.Consumer,null,i=>t(i)):t(yt)}function hi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"},child:[]}]})(e)}function gi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z",clipRule:"evenodd"},child:[]},{tag:"path",attr:{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"},child:[]}]})(e)}function yi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"},child:[]}]})(e)}function xi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12 1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"},child:[]}]})(e)}function bi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"},child:[]}]})(e)}function wi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M21 4H11l-1-3H3c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8l1 3h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 16c-2.76 0-5-2.24-5-5s2.24-5 5-5c1.35 0 2.48.5 3.35 1.3L9.03 8.57c-.38-.36-1.04-.78-2.03-.78-1.74 0-3.15 1.44-3.15 3.21S5.26 14.21 7 14.21c2.01 0 2.84-1.44 2.92-2.41H7v-1.71h4.68c.07.31.12.61.12 1.02C11.8 13.97 9.89 16 7 16zm6.17-5.42h3.7c-.43 1.25-1.11 2.43-2.05 3.47-.31-.35-.6-.72-.86-1.1l-.79-2.37zm8.33 9.92c0 .55-.45 1-1 1H14l2-2.5-1.04-3.1 3.1 3.1.92-.92-3.3-3.25.02-.02c1.13-1.25 1.93-2.69 2.4-4.22H20v-1.3h-4.53V8h-1.29v1.29h-1.44L11.46 5.5h9.04c.55 0 1 .45 1 1v14z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0zm0 0h24v24H0z"},child:[]}]})(e)}function Si(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 0 0-2-2zM11 16l4-4-4-4v3H1v2h10v3z"},child:[]}]})(e)}function Ti(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"},child:[]}]})(e)}function Ri(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15zM14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"},child:[]}]})(e)}function Ei(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"},child:[]}]})(e)}function zi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3 5 6.99h3V14h2V6.99h3L9 3z"},child:[]}]})(e)}function Oi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"},child:[]}]})(e)}function Mi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"},child:[]}]})(e)}function ki(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"},child:[]}]})(e)}function $i(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},child:[]}]})(e)}function Ai(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"},child:[]}]})(e)}function Ii(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.54 5.54 13.77 7.3 12 5.54 10.23 7.3 8.46 5.54 12 2zm2.92 10-1.76-1.77L18.46 12l-1.76-1.77 1.76-1.77L22 12zm-10 2.92 1.77-1.76L12 18.46l1.77-1.76 1.77 1.76L12 22zm-2.92-10 1.76 1.77L5.54 12l1.76 1.77-1.76 1.77L2 12z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]}]})(e)}function qi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},child:[]}]})(e)}function Ni(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M8 5v14l11-7z"},child:[]}]})(e)}function Ci(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 10h11v2H3zM3 6h11v2H3zM3 14h7v2H3zM20.59 11.93l-4.25 4.24-2.12-2.12-1.41 1.41L16.34 19 22 13.34z"},child:[]}]})(e)}function _i(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z"},child:[]}]})(e)}function Di(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M8.4 18.2c.38.5.6 1.12.6 1.8 0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3c.44 0 .85.09 1.23.26l1.41-1.77a4.504 4.504 0 0 1-1.09-3.69l-2.03-.68A2.997 2.997 0 0 1 0 9.5c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .07 0 .14-.01.21l2.03.68a4.468 4.468 0 0 1 3.22-2.32V5.91A3.018 3.018 0 0 1 9 3c0-1.66 1.34-3 3-3s3 1.34 3 3c0 1.4-.96 2.57-2.25 2.91v2.16c1.4.23 2.58 1.11 3.22 2.32L18 9.71V9.5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-1.06 0-1.98-.55-2.52-1.37l-2.03.68a4.49 4.49 0 0 1-1.09 3.69l1.41 1.77c.38-.18.79-.27 1.23-.27 1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.68.22-1.3.6-1.8l-1.41-1.77c-1.35.75-3.01.76-4.37 0L8.4 18.2z"},child:[]}]})(e)}function ji(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"},child:[]}]})(e)}function Li(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"},child:[]}]})(e)}function Bi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M17 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"},child:[]}]})(e)}function Hi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z"},child:[]}]})(e)}function Pi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17 6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z"},child:[]}]})(e)}function Ui(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(e)}function Fi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3.27 5 2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.55 5.27 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z"},child:[]}]})(e)}function Vi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.56 8.94 7.62 0 6.21 1.41l2.38 2.38-5.15 5.15a1.49 1.49 0 0 0 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10 10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5zM2 20h20v4H2v-4z"},child:[]}]})(e)}function Wi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15 16v1.26l-6-3v-3.17L11.7 8H16V2h-6v4.9L7.3 10H3v6h5l7 3.5V22h6v-6z"},child:[]}]})(e)}function Gi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z"},child:[]}]})(e)}function Ki(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"},child:[]}]})(e)}function Yi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"},child:[]}]})(e)}function Ji(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m17 16-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z"},child:[]}]})(e)}function Xi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"},child:[]}]})(e)}function Qi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},child:[]}]})(e)}function Zi(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10a2.5 2.5 0 0 0 2.5-2.5c0-.61-.23-1.2-.64-1.67a.528.528 0 0 1-.13-.33c0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zM5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S7.33 13 6.5 13 5 12.33 5 11.5zm6-4c0 .83-.67 1.5-1.5 1.5S8 8.33 8 7.5 8.67 6 9.5 6s1.5.67 1.5 1.5z"},child:[]}]})(e)}function en(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z"},child:[]}]})(e)}function tn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"},child:[]}]})(e)}function an(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"},child:[]}]})(e)}function nn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"},child:[]}]})(e)}function rn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"},child:[]}]})(e)}function ln(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"},child:[]}]})(e)}function on(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"},child:[]}]})(e)}function cn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"},child:[]}]})(e)}function pn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"},child:[]}]})(e)}function sn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"},child:[]}]})(e)}function dn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},child:[]}]})(e)}function un(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"},child:[]}]})(e)}function mn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"},child:[]}]})(e)}function fn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"19",r:"2"},child:[]},{tag:"path",attr:{d:"M10 3h4v12h-4z"},child:[]}]})(e)}function vn(e){return p({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(e)}const{loadShare:na}=Yt,{initPromise:ra}=Kt,la=ra.then(e=>na("@mui/material",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),oa=await la.then(e=>e());var hn=oa;function gn(e){return p({attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"},child:[]}]})(e)}function yn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"},child:[]}]})(e)}function xn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"},child:[]}]})(e)}function bn(e){return p({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"},child:[]}]})(e)}function wn(e){return p({attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"},child:[]}]})(e)}function Sn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"},child:[]}]})(e)}function Tn(e){return p({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"},child:[]}]})(e)}function Rn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"},child:[]}]})(e)}function En(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"},child:[]}]})(e)}function zn(e){return p({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"},child:[]}]})(e)}function On(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"},child:[]}]})(e)}function Mn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"},child:[]}]})(e)}function kn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"},child:[]}]})(e)}function $n(e){return p({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"},child:[]}]})(e)}function An(e){return p({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"},child:[]}]})(e)}function In(e){return p({attr:{viewBox:"0 0 416 512"},child:[{tag:"path",attr:{d:"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"},child:[]}]})(e)}function qn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"},child:[]}]})(e)}function Nn(e){return p({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"},child:[]}]})(e)}function Cn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"},child:[]}]})(e)}function _n(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"},child:[]}]})(e)}function Dn(e){return p({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"},child:[]}]})(e)}function jn(e){return p({attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"},child:[]}]})(e)}function Ln(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"},child:[]}]})(e)}function Bn(e){return p({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"},child:[]}]})(e)}function Hn(e){return p({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"},child:[]}]})(e)}function Pn(e){return p({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"},child:[]}]})(e)}const Un=J(X.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z"}),"Cancel"),Fn=J(X.jsx("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check"),Vn=J(X.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear"),Wn=J(X.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),Gn=J(X.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete"),Kn=J(X.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 17h-2v-2h2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25"}),"Help"),Yn=J(X.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"}),"Language"),Jn=J(X.jsx("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"}),"Save");var nt=function(){return nt=Object.assign||function(t){for(var i,n=1,l=arguments.length;n0?l:`./${e.name}`;return typeof n.path!="string"&&rt(n,"path",o),rt(n,"relativePath",o),n}function pa(e){const{name:t}=e;if(t&&t.lastIndexOf(".")!==-1&&!e.type){const n=t.split(".").pop().toLowerCase(),l=ca.get(n);l&&Object.defineProperty(e,"type",{value:l,writable:!1,configurable:!1,enumerable:!0})}return e}function rt(e,t,i){Object.defineProperty(e,t,{value:i,writable:!1,configurable:!1,enumerable:!0})}const sa=[".DS_Store","Thumbs.db"];function da(e){return te(this,void 0,void 0,function*(){return Se(e)&&ua(e.dataTransfer)?ha(e.dataTransfer,e.type):ma(e)?fa(e):Array.isArray(e)&&e.every(t=>"getFile"in t&&typeof t.getFile=="function")?va(e):[]})}function ua(e){return Se(e)}function ma(e){return Se(e)&&Se(e.target)}function Se(e){return typeof e=="object"&&e!==null}function fa(e){return Le(e.target.files).map(t=>ce(t))}function va(e){return te(this,void 0,void 0,function*(){return(yield Promise.all(e.map(i=>i.getFile()))).map(i=>ce(i))})}function ha(e,t){return te(this,void 0,void 0,function*(){if(e.items){const i=Le(e.items).filter(l=>l.kind==="file");if(t!=="drop")return i;const n=yield Promise.all(i.map(ga));return lt(bt(n))}return lt(Le(e.files).map(i=>ce(i)))})}function lt(e){return e.filter(t=>sa.indexOf(t.name)===-1)}function Le(e){if(e===null)return[];const t=[];for(let i=0;i[...t,...Array.isArray(i)?bt(i):[i]],[])}function ot(e,t){return te(this,void 0,void 0,function*(){var i;if(globalThis.isSecureContext&&typeof e.getAsFileSystemHandle=="function"){const o=yield e.getAsFileSystemHandle();if(o===null)throw new Error(`${e} is not a File`);if(o!==void 0){const c=yield o.getFile();return c.handle=o,ce(c)}}const n=e.getAsFile();if(!n)throw new Error(`${e} is not a File`);return ce(n,(i=t==null?void 0:t.fullPath)!==null&&i!==void 0?i:void 0)})}function ya(e){return te(this,void 0,void 0,function*(){return e.isDirectory?wt(e):xa(e)})}function wt(e){const t=e.createReader();return new Promise((i,n)=>{const l=[];function o(){t.readEntries(c=>te(this,void 0,void 0,function*(){if(c.length){const s=Promise.all(c.map(ya));l.push(s),o()}else try{const s=yield Promise.all(l);i(s)}catch(s){n(s)}}),c=>{n(c)})}o()})}function xa(e){return te(this,void 0,void 0,function*(){return new Promise((t,i)=>{e.file(n=>{const l=ce(n,e.fullPath);t(l)},n=>{i(n)})})})}var De=function(e,t){if(e&&t){var i=Array.isArray(t)?t:t.split(",");if(i.length===0)return!0;var n=e.name||"",l=(e.type||"").toLowerCase(),o=l.replace(/\/.*$/,"");return i.some(function(c){var s=c.trim().toLowerCase();return s.charAt(0)==="."?n.toLowerCase().endsWith(s):s.endsWith("/*")?o===s.replace(/\/.*$/,""):l===s})}return!0};function ct(e){return Sa(e)||wa(e)||Tt(e)||ba()}function ba(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wa(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Sa(e){if(Array.isArray(e))return Be(e)}function pt(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),i.push.apply(i,n)}return i}function st(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,n=new Array(t);i0&&arguments[0]!==void 0?arguments[0]:"",i=t.split(","),n=i.length>1?"one of ".concat(i.join(", ")):i[0];return{code:Oa,message:"File type must be ".concat(n)}},dt=function(t){return{code:Ma,message:"File is larger than ".concat(t," ").concat(t===1?"byte":"bytes")}},ut=function(t){return{code:ka,message:"File is smaller than ".concat(t," ").concat(t===1?"byte":"bytes")}},Ia={code:$a,message:"Too many files"};function Rt(e,t){var i=e.type==="application/x-moz-file"||za(e,t);return[i,i?null:Aa(t)]}function Et(e,t,i){if(ee(e.size))if(ee(t)&&ee(i)){if(e.size>i)return[!1,dt(i)];if(e.sizei)return[!1,dt(i)]}return[!0,null]}function ee(e){return e!=null}function qa(e){var t=e.files,i=e.accept,n=e.minSize,l=e.maxSize,o=e.multiple,c=e.maxFiles,s=e.validator;return!o&&t.length>1||o&&c>=1&&t.length>c?!1:t.every(function(u){var S=Rt(u,i),v=de(S,1),h=v[0],E=Et(u,n,l),$=de(E,1),A=$[0],N=s?s(u):null;return h&&A&&!N})}function Te(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function xe(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function mt(e){e.preventDefault()}function Na(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function Ca(e){return e.indexOf("Edge/")!==-1}function _a(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return Na(e)||Ca(e)}function L(){for(var e=arguments.length,t=new Array(e),i=0;i1?l-1:0),c=1;ce.length)&&(t=e.length);for(var i=0,n=new Array(t);i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Za(e,t){if(e==null)return{};var i={},n=Object.keys(e),l,o;for(o=0;o=0)&&(i[l]=e[l]);return i}var Fe=b.forwardRef(function(e,t){var i=e.children,n=Re(e,Pa),l=ei(n),o=l.open,c=Re(l,Ua);return b.useImperativeHandle(t,function(){return{open:o}},[o]),K.createElement(b.Fragment,null,i(R(R({},c),{},{open:o})))});Fe.displayName="Dropzone";var kt={disabled:!1,getFilesFromEvent:da,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1,autoFocus:!1};Fe.defaultProps=kt;Fe.propTypes={children:w.func,accept:w.objectOf(w.arrayOf(w.string)),multiple:w.bool,preventDropOnDocument:w.bool,noClick:w.bool,noKeyboard:w.bool,noDrag:w.bool,noDragEventsBubbling:w.bool,minSize:w.number,maxSize:w.number,maxFiles:w.number,disabled:w.bool,getFilesFromEvent:w.func,onFileDialogCancel:w.func,onFileDialogOpen:w.func,useFsAccessApi:w.bool,autoFocus:w.bool,onDragEnter:w.func,onDragLeave:w.func,onDragOver:w.func,onDrop:w.func,onDropAccepted:w.func,onDropRejected:w.func,onError:w.func,validator:w.func};var Ue={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function ei(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=R(R({},kt),e),i=t.accept,n=t.disabled,l=t.getFilesFromEvent,o=t.maxSize,c=t.minSize,s=t.multiple,u=t.maxFiles,S=t.onDragEnter,v=t.onDragLeave,h=t.onDragOver,E=t.onDrop,$=t.onDropAccepted,A=t.onDropRejected,N=t.onFileDialogCancel,P=t.onFileDialogOpen,g=t.useFsAccessApi,U=t.autoFocus,T=t.preventDropOnDocument,x=t.noClick,f=t.noKeyboard,I=t.noDrag,M=t.noDragEventsBubbling,F=t.onError,j=t.validator,V=b.useMemo(function(){return La(i)},[i]),ae=b.useMemo(function(){return ja(i)},[i]),ie=b.useMemo(function(){return typeof P=="function"?P:vt},[P]),ue=b.useMemo(function(){return typeof N=="function"?N:vt},[N]),q=b.useRef(null),D=b.useRef(null),Pt=b.useReducer(ti,Ue),Ve=je(Pt,2),Me=Ve[0],C=Ve[1],Ut=Me.isFocused,We=Me.isFileDialogActive,me=b.useRef(typeof window<"u"&&window.isSecureContext&&g&&Da()),Ge=function(){!me.current&&We&&setTimeout(function(){if(D.current){var m=D.current.files;m.length||(C({type:"closeDialog"}),ue())}},300)};b.useEffect(function(){return window.addEventListener("focus",Ge,!1),function(){window.removeEventListener("focus",Ge,!1)}},[D,We,ue,me]);var ne=b.useRef([]),Ke=function(m){q.current&&q.current.contains(m.target)||(m.preventDefault(),ne.current=[])};b.useEffect(function(){return T&&(document.addEventListener("dragover",mt,!1),document.addEventListener("drop",Ke,!1)),function(){T&&(document.removeEventListener("dragover",mt),document.removeEventListener("drop",Ke))}},[q,T]),b.useEffect(function(){return!n&&U&&q.current&&q.current.focus(),function(){}},[q,U,n]);var Q=b.useCallback(function(d){F?F(d):console.error(d)},[F]),Ye=b.useCallback(function(d){d.preventDefault(),d.persist(),ge(d),ne.current=[].concat(Wa(ne.current),[d.target]),xe(d)&&Promise.resolve(l(d)).then(function(m){if(!(Te(d)&&!M)){var z=m.length,O=z>0&&qa({files:m,accept:V,minSize:c,maxSize:o,multiple:s,maxFiles:u,validator:j}),_=z>0&&!O;C({isDragAccept:O,isDragReject:_,isDragActive:!0,type:"setDraggedFiles"}),S&&S(d)}}).catch(function(m){return Q(m)})},[l,S,Q,M,V,c,o,s,u,j]),Je=b.useCallback(function(d){d.preventDefault(),d.persist(),ge(d);var m=xe(d);if(m&&d.dataTransfer)try{d.dataTransfer.dropEffect="copy"}catch{}return m&&h&&h(d),!1},[h,M]),Xe=b.useCallback(function(d){d.preventDefault(),d.persist(),ge(d);var m=ne.current.filter(function(O){return q.current&&q.current.contains(O)}),z=m.indexOf(d.target);z!==-1&&m.splice(z,1),ne.current=m,!(m.length>0)&&(C({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),xe(d)&&v&&v(d))},[q,v,M]),fe=b.useCallback(function(d,m){var z=[],O=[];d.forEach(function(_){var se=Rt(_,V),oe=je(se,2),$e=oe[0],Ae=oe[1],Ie=Et(_,c,o),ye=je(Ie,2),qe=ye[0],Ne=ye[1],Ce=j?j(_):null;if($e&&qe&&!Ce)z.push(_);else{var _e=[Ae,Ne];Ce&&(_e=_e.concat(Ce)),O.push({file:_,errors:_e.filter(function(Gt){return Gt})})}}),(!s&&z.length>1||s&&u>=1&&z.length>u)&&(z.forEach(function(_){O.push({file:_,errors:[Ia]})}),z.splice(0)),C({acceptedFiles:z,fileRejections:O,isDragReject:O.length>0,type:"setFiles"}),E&&E(z,O,m),O.length>0&&A&&A(O,m),z.length>0&&$&&$(z,m)},[C,s,V,c,o,u,E,$,A,j]),ve=b.useCallback(function(d){d.preventDefault(),d.persist(),ge(d),ne.current=[],xe(d)&&Promise.resolve(l(d)).then(function(m){Te(d)&&!M||fe(m,d)}).catch(function(m){return Q(m)}),C({type:"reset"})},[l,fe,Q,M]),re=b.useCallback(function(){if(me.current){C({type:"openDialog"}),ie();var d={multiple:s,types:ae};window.showOpenFilePicker(d).then(function(m){return l(m)}).then(function(m){fe(m,null),C({type:"closeDialog"})}).catch(function(m){Ba(m)?(ue(m),C({type:"closeDialog"})):Ha(m)?(me.current=!1,D.current?(D.current.value=null,D.current.click()):Q(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):Q(m)});return}D.current&&(C({type:"openDialog"}),ie(),D.current.value=null,D.current.click())},[C,ie,ue,g,fe,Q,ae,s]),Qe=b.useCallback(function(d){!q.current||!q.current.isEqualNode(d.target)||(d.key===" "||d.key==="Enter"||d.keyCode===32||d.keyCode===13)&&(d.preventDefault(),re())},[q,re]),Ze=b.useCallback(function(){C({type:"focus"})},[]),et=b.useCallback(function(){C({type:"blur"})},[]),tt=b.useCallback(function(){x||(_a()?setTimeout(re,0):re())},[x,re]),le=function(m){return n?null:m},ke=function(m){return f?null:le(m)},he=function(m){return I?null:le(m)},ge=function(m){M&&m.stopPropagation()},Ft=b.useMemo(function(){return function(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},m=d.refKey,z=m===void 0?"ref":m,O=d.role,_=d.onKeyDown,se=d.onFocus,oe=d.onBlur,$e=d.onClick,Ae=d.onDragEnter,Ie=d.onDragOver,ye=d.onDragLeave,qe=d.onDrop,Ne=Re(d,Fa);return R(R(Pe({onKeyDown:ke(L(_,Qe)),onFocus:ke(L(se,Ze)),onBlur:ke(L(oe,et)),onClick:le(L($e,tt)),onDragEnter:he(L(Ae,Ye)),onDragOver:he(L(Ie,Je)),onDragLeave:he(L(ye,Xe)),onDrop:he(L(qe,ve)),role:typeof O=="string"&&O!==""?O:"presentation"},z,q),!n&&!f?{tabIndex:0}:{}),Ne)}},[q,Qe,Ze,et,tt,Ye,Je,Xe,ve,f,I,n]),Vt=b.useCallback(function(d){d.stopPropagation()},[]),Wt=b.useMemo(function(){return function(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},m=d.refKey,z=m===void 0?"ref":m,O=d.onChange,_=d.onClick,se=Re(d,Va),oe=Pe({accept:V,multiple:s,type:"file",style:{border:0,clip:"rect(0, 0, 0, 0)",clipPath:"inset(50%)",height:"1px",margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap"},onChange:le(L(O,ve)),onClick:le(L(_,Vt)),tabIndex:-1},z,D);return R(R({},oe),se)}},[D,i,s,ve,n]);return R(R({},Me),{},{isFocused:Ut&&!n,getRootProps:Ft,getInputProps:Wt,rootRef:q,inputRef:D,open:le(re)})}function ti(e,t){switch(t.type){case"focus":return R(R({},e),{},{isFocused:!0});case"blur":return R(R({},e),{},{isFocused:!1});case"openDialog":return R(R({},Ue),{},{isFileDialogActive:!0});case"closeDialog":return R(R({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":return R(R({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return R(R({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections,isDragReject:t.isDragReject});case"reset":return R({},Ue);default:return e}}function vt(){}var $t={},ze={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});Y.StateType=Y.Types=void 0;var ht;(function(e){e.unknown="unknown",e.airCondition="airCondition",e.blind="blind",e.blindButtons="blindButtons",e.button="button",e.buttonSensor="buttonSensor",e.camera="camera",e.chart="chart",e.cie="cie",e.ct="ct",e.dimmer="dimmer",e.door="door",e.fireAlarm="fireAlarm",e.floodAlarm="floodAlarm",e.gate="gate",e.hue="hue",e.humidity="humidity",e.illuminance="illuminance",e.image="image",e.info="info",e.instance="instance",e.light="light",e.location="location",e.locationOne="locationOne",e.lock="lock",e.media="media",e.motion="motion",e.rgb="rgb",e.rgbSingle="rgbSingle",e.rgbwSingle="rgbwSingle",e.slider="slider",e.socket="socket",e.temperature="temperature",e.thermostat="thermostat",e.vacuumCleaner="vacuumCleaner",e.volume="volume",e.volumeGroup="volumeGroup",e.warning="warning",e.weatherCurrent="weatherCurrent",e.weatherForecast="weatherForecast",e.window="window",e.windowTilt="windowTilt"})(ht||(Y.Types=ht={}));var gt;(function(e){e.Number="number",e.String="string",e.Boolean="boolean"})(gt||(Y.StateType=gt={}));var k={};Object.defineProperty(k,"__esModule",{value:!0});k.checkEnum=At;k.roleOrEnum=pe;k.roleOrEnumLight=ai;k.roleOrEnumBlind=ii;k.roleOrEnumGate=ni;k.roleOrEnumWindow=ri;k.roleOrEnumDoor=li;k.getEnums=oi;k.getAllStatesInChannel=ci;k.getAllStatesInDevice=pi;k.getObjectsBelowId=Bt;k.getFunctionEnums=si;k.getParentId=di;function At(e,t){let i=!1;return e&&e.forEach(n=>{const l=n.lastIndexOf(".");l!==-1&&(n=n.substring(l+1));for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o].find(c=>c.test(n)))return i=!0,!1}),i}function pe(e,t,i,n){return e.common.role&&(i!=null&&i.includes(e.common.role))?!0:At(t,n)}const It={en:[/lights?/i,/lamps?/i,/ceilings?/i],de:[/licht(er)?/i,/lampen?/i,/beleuchtung(en)?/i],ru:[/свет/i,/ламп[аы]/i,/торшеры?/,/подсветк[аи]/i,/лампочк[аи]/i,/светильники?/i]},qt=["switch.light","dimmer","value.dimmer","level.dimmer","sensor.light","state.light"];function ai(e,t){return pe(e,t,qt,It)}const Ee={en:[/blinds?/i,/windows?/i,/shutters?/i],de:[/rollladen?/i,/fenstern?/i,/beschattung(en)?/i,/jalousien?/i],ru:[/ставни/i,/рольставни/i,/окна|окно/,/жалюзи/i]},Nt=["blind","level.blind","value.blind","action.stop","button.stop","button.stop.blind","button.open.blind","button.close.blind","level.tilt","value.tilt","button.tilt.open","button.tilt.close","button.tilt.stop"];function ii(e,t){return pe(e,t,Nt,Ee)}const Ct={en:[/gates?/i],de:[/^toren$/i,/^tor$/i],ru:[/ворота/i]},_t=["gate","value.gate","switch.gate","action.stop","button.stop"];function ni(e,t){return pe(e,t,_t,Ct)}const Dt=["window","state.window","sensor.window","value.window"];function ri(e,t){return pe(e,t,Dt,Ee)}const jt={en:[/doors?/i,/gates?/i,/wickets?/i,/entry|entries/i],de:[/^türe?/i,/^tuere?/i,/^tore?$/i,/einfahrt(en)?/i,/pforten?/i],ru:[/двери|дверь/i,/ворота/i,/калитка|калитки/,/въезды?/i,/входы?/i]},Lt=["door","state.door","sensor.door"];function li(e,t){return pe(e,t,Lt,jt)}function oi(){return{door:{roles:Lt,words:jt},window:{roles:Dt,words:Ee},blind:{roles:Nt,words:Ee},gate:{roles:_t,words:Ct},light:{roles:qt,words:It}}}function ci(e,t){const i=[],n=new RegExp(`^${t.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+$`);return e.forEach(l=>n.test(l)&&i.push(l)),i}function pi(e,t){const i=[],n=new RegExp(`^${t.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+\\.[^.]+$`);return e.forEach(l=>n.test(l)&&i.push(l)),i}function Bt(e,t){const i=[];t+=".";let n=0,l=e.length-1,o=-1;for(;n<=l;){const c=Math.floor((n+l)/2);e[c]=e.length)return i;for(let c=o;c{t[c].common.members.includes(i)&&o.push(c)}),!o.length&&((l=t[i])===null||l===void 0?void 0:l.type)==="state"){const c=(0,G.getParentId)(i);t[c]&&(t[c].type==="channel"||t[c].type==="device")&&this.enums.forEach(s=>{t[s].common.members.includes(c)&&o.push(s)})}return o.length?o:null}static copyState(t,i){const n=i||JSON.parse(JSON.stringify(t));return n.original=t.original||t,"enums"in t&&t.enums&&(n.enums=t.enums),"role"in t&&t.role&&(n.role=t.role),"channelRole"in t&&t.channelRole&&(n.channelRole=t.channelRole),n}_testOneState(t){var i,n,l,o,c,s;const u=t.objects,S=t.pattern,v=t.state,h=t.channelStates,E=t.usedIds,$=t.usedInCurrentDevice,A=t.ignoreIndicators,N=t.ignoreEnums,P=t.sortedKeys;let g=t.result,U=!1;for(const T of h)if(!(v.name==="COVER"&&(g!=null&&g.states.find(x=>x.id&&x.name==="COVER")))){if(v.indicator&&A){const f=T.split(".").pop()||"";if(f&&A.includes(f))continue}if((v.indicator||!$.includes(T)&&(v.notSingle||!E.includes(T)))&&this._applyPattern(u,T,v,N,P)){if(g||(g=JSON.parse(JSON.stringify(W.patterns[S])),t.result=g,g==null||g.states.forEach((x,f)=>H.copyState(W.patterns[S].states[f],x))),g.states.find(({id:x})=>x===T))U=!0;else for(const x of g.states)if(x.name===v.name){if(x.id){let f;t.favorId&&(T===t.favorId?f=!0:x.id===t.favorId&&(f=!1));const I=(l=(n=(i=u[x.id])===null||i===void 0?void 0:i.common)===null||n===void 0?void 0:n.role)!==null&&l!==void 0?l:"",M=(s=(c=(o=u[T])===null||o===void 0?void 0:o.common)===null||c===void 0?void 0:c.role)!==null&&s!==void 0?s:"",F=x.defaultRole;if(F&&f===void 0&&(M===F?f=!0:I===F&&(f=!1)),f===void 0){const j=M.split("."),V=j.length,ae=I.split("."),ie=ae.length;M===""||j[0]==="state"&&ae[0]!=="state"?f=!1:j[0]!=="state"&&ae[0]==="state"||V>ie?f=!0:V1)){for(const x of h)if(x!==T&&(v.indicator||!$.includes(x)&&(v.notSingle||!E.includes(x)))&&this._applyPattern(u,x,v,N,P))if(v.indicator||$.push(x),Array.isArray(v)){const f=H.copyState(v[0]);f.id=x,g.states.push(f)}else{const f=H.copyState(v);f.id=x,g.states.push(f)}}}}return U}static findParentChannelOrDevice(t,i){if(!t[i])return;const n=i.split("."),l=i;if(t[i].type==="state"&&(n.pop(),i=n.join(".")),n.length<=2)return i;const o=t[i];if((o==null?void 0:o.type)==="device")return i;n.pop();const c=n.join("."),s=t[c];if(!s)return o?i:l;if(s.type==="device"||n.length<=2)return c;if(o.type==="channel")return i;n.pop();const u=n.join("."),S=t[u];return!S||S.type!=="device"&&S.type!=="channel"?c:u}static getChannelOrDeviceStates(t,i,n,l=!1){var o;const c=(o=t[i])===null||o===void 0?void 0:o.type;switch(c){case void 0:return[...(0,G.getObjectsBelowId)(n,i)];case"state":case"channel":case"device":case"folder":if(l&&c!=="device"){const s=H.findParentChannelOrDevice(t,i);return s?[...(0,G.getObjectsBelowId)(n,s)]:[i]}return c!=="state"?[...(0,G.getObjectsBelowId)(n,i)]:[i];default:return[i]}}static patternIsAllowed(t,i,n){if(!t)return!1;if(Array.isArray(t.type)){for(let l=0;l{const o=t.indexOf(n),c=t.indexOf(l);if(o===-1||c===-1)return;const s=t.splice(o,1);t.splice(c,0,...s)}),t}_detectNext(t){var i,n,l,o;const{objects:c,id:s,_usedIdsOptional:u=[],ignoreIndicators:S,prioritizedTypes:v,detectParent:h,allowedTypes:E,excludedTypes:$,_keysOptional:A}=t;let{_patternList:N}=t;t._usedIdsOptional=u;const P=H.getChannelOrDeviceStates(c,s,A||[],h);if(!(!((i=c[s])===null||i===void 0)&&i.common)&&!P.length)return null;if(t._checkedPatterns=(n=t._checkedPatterns)!==null&&n!==void 0?n:[],!N){const T=Object.keys(W.patterns).filter(x=>H.patternIsAllowed(W.patterns[x],E,$));N=v?this.sortTypes(T,v):T,t._patternList=N}const g={objects:c,channelStates:P,usedIds:u,ignoreIndicators:S||[],pattern:Z.Types.unknown,usedInCurrentDevice:[],state:{},ignoreEnums:!!t.ignoreEnums,sortedKeys:A,favorId:t.detectParent?void 0:s},U=(l=c[s])===null||l===void 0?void 0:l.type;for(const T of N){if(t._checkedPatterns.includes(T))continue;t._checkedPatterns.push(T),delete g.result,g.pattern=T,g.usedInCurrentDevice=[];for(const f of W.patterns[T].states){let I=!1;if(g.state=f,this._testOneState(g)&&(I=!0),f.required&&!I){delete g.result;break}}if(!H.allRequiredStatesFound(g))continue;g.usedInCurrentDevice.forEach(f=>u.push(f));let x;if(U!=="device"){const f=(o=H.findParentChannelOrDevice(c,s))!==null&&o!==void 0?o:s;if(c[f]&&(c[f].type==="channel"||c[f].type==="device")){x=(0,G.getObjectsBelowId)(A,f);for(const I of x)g.result.states.forEach((M,F)=>{!M.id&&(M.indicator||M.searchInParent)&&!M.noDeviceDetection&&this._applyPattern(c,I,M.original,!!t.ignoreEnums,g.sortedKeys)&&g.result&&(g.result.states[F].id=I)})}}if(g.result.states.forEach(f=>H.cleanState(f,g.objects)),t.limitTypesToOneOf){for(const f of t.limitTypesToOneOf)if(f.includes(T))for(const I of f)I===T||t._checkedPatterns.includes(I)||t._checkedPatterns.push(I)}return g.result}return null}detect(t){var i;const{objects:n,id:l,ignoreCache:o,detectAllPossibleDevices:c}=t;let{_keysOptional:s,_usedIdsOptional:u}=t;if(!o&&this.cache[l]){const{allowedTypes:h=[],excludedTypes:E=[]}=t;if(!h.length&&!E.length)return this.cache[l];const $=this.cache[l].filter(({type:A})=>h.includes(A)&&!E.includes(A));if($.length)return $}s?t._keysOptionalSorted||s.sort():(s=Object.keys(n),s.sort(),t._keysOptional=s),u&&!t.detectParent&&(u=[],t._usedIdsOptional=u),t.ignoreEnums===void 0&&((i=t.allowedTypes)===null||i===void 0?void 0:i.length)===1&&(t.ignoreEnums=!0),c&&(t.excludedTypes||(t.excludedTypes=[]),t.excludedTypes.includes(Z.Types.info)||t.excludedTypes.push(Z.Types.info)),t._checkedPatterns=[];const S=[];let v;for(;v=this._detectNext(t);)S.push(v),t.detectAllPossibleDevices&&(t._usedIdsOptional=[]);return this.cache[l]=S.length?S:null,this.cache[l]}static getPatterns(){const t={};return Object.keys(W.patterns).forEach(i=>{const n=JSON.parse(JSON.stringify(W.patterns[i]));n.states.forEach((l,o)=>{const c=W.patterns[i].states[o];c.role&&(n.states[o].role=c.role.toString()),c.enums&&(n.states[o].enums=!0)}),t[i]=n}),t}};ze.ChannelDetector=Ht;Ht.getEnums=G.getEnums;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.StateType=e.Types=void 0;const t=ze;e.default=t.ChannelDetector;var i=Y;Object.defineProperty(e,"Types",{enumerable:!0,get:function(){return i.Types}}),Object.defineProperty(e,"StateType",{enumerable:!0,get:function(){return i.StateType}})})($t);const Xn=Jt($t);export{Xi as $,wi as A,ln as B,Vn as C,Fe as D,Yi as E,zn as F,Kn as G,on as H,Fn as I,dn as J,nn as K,Yn as L,qi as M,an as N,rn as O,Ai as P,Xn as Q,$t as R,Jn as S,_i as T,Ci as U,Ui as V,Bi as W,yi as X,En as Y,yn as Z,nt as _,Un as a,gn as a0,gi as a1,Mi as a2,tn as a3,pn as a4,ei as a5,p as a6,Ii as a7,Di as a8,Wi as a9,Ti as aA,en as aB,$i as aC,fn as aD,Ji as aa,Hn as ab,Ri as ac,Bn as ad,jn as ae,qn as af,Vi as ag,Nn as ah,vn as ai,Cn as aj,An as ak,$n as al,kn as am,Pn as an,Mn as ao,Sn as ap,_n as aq,In as ar,Pi as as,ki as at,Hi as au,wn as av,Dn as aw,Ln as ax,bn as ay,xn as az,Gn as b,Wn as c,Ni as d,bi as e,Si as f,On as g,Tn as h,hn as i,Rn as j,Zi as k,Li as l,hi as m,Fi as n,cn as o,sn as p,ji as q,Ki as r,Ei as s,zi as t,Qi as u,mn as v,un as w,Gi as x,xi as y,Oi as z}; diff --git a/admin/assets/index-CyP9QRCj.js b/admin/assets/index-CyP9QRCj.js new file mode 100644 index 000000000..070431d19 --- /dev/null +++ b/admin/assets/index-CyP9QRCj.js @@ -0,0 +1,27 @@ +import{j as x}from"./createSvgIcon-DMsh-YeH.js";import{i as G}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{u as W_,a as B_,i as X,M as Be,C as Dr,G as M_,b as N_,c as Gs,I as P_,S as Mt,d as F_,e as Us,j as U_,D as H_,f as $_}from"./index-hex25_NL.js";import{i as En,C as q_}from"./index-f32XoI0M.js";import{g as G_,c as br}from"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";function K_(I){const s=W_().getMonitor(),[A,b]=B_(s,I);return G.useEffect(()=>s.subscribeToOffsetChange(b)),G.useEffect(()=>s.subscribeToStateChange(b)),A}let Er;function z_(){return Er||(Er=new Image,Er.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),Er}const J_="_wrapperRules_nnott_1",k_="_rootWrapper_nnott_9",Z_="_addClass_nnott_14",Vi={wrapperRules:J_,rootWrapper:k_,addClass:Z_},Y_="_switchesItem_10ls3_1",X_="_switchesItemActive_10ls3_28",Q_="_iconTheme_10ls3_36",nu={switchesItem:Y_,switchesItemActive:X_,iconTheme:Q_},Ks=({name:I,id:p,active:s,icon:A,adapter:b,socket:w,onDoubleClick:S,title:T,onTouchMove:W,style:un})=>x.jsxs("div",{onDoubleClick:S,onTouchMove:W,title:T?X.I18n.t(T):void 0,className:X.Utils.clsx(nu.switchesItem,s&&nu.switchesItemActive,`block-${p}`),children:[x.jsx(Be,{iconName:A,className:nu.iconTheme,adapter:b,socket:w,style:un}),x.jsx("span",{children:I?X.I18n.t(I):""})]},p),j_="_cardStyle_8rq8v_1",V_="_cardStyleActive_8rq8v_17",np="_controlMenu_8rq8v_22",tp="_closeBtn_8rq8v_31",ep="_isDelete_8rq8v_73",rp="_drag_mobile_8rq8v_90",ce={cardStyle:j_,cardStyleActive:V_,controlMenu:np,closeBtn:tp,isDelete:ep,drag_mobile:rp};function ae(I,p,s){let A;switch(I){case"actions":if(s==="else")return A={...p,actions:{...p[I],else:[...p[I].else]}},A;if(s==="then")return A={...p,actions:{...p[I],then:[...p[I].then]}},A;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return A={...p,triggers:[...p.triggers]},A;case"conditions":return A={...p,conditions:[...p.conditions]},A;default:throw new Error(`Unknown name: ${I}`)}}function Jt(I,p,s,A){var b;switch(I){case"actions":return p.actions[s]=p.actions[s].filter(w=>w._id!==A),p;case"conditions":return p.conditions[s]=(b=p.conditions[s])==null?void 0:b.filter(w=>w._id!==A),p;case"triggers":default:return p.triggers=p.triggers.filter(w=>w._id!==A),p}}function ip(I,p,s){const{_id:A,acceptedBy:b}=I;let w;if(!b||!p[b])return console.warn(`Cannot find ${b}`),p;switch(b){case"actions":if(w=p.actions[s].find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.actions[s].indexOf(w);p.actions[s][S]=I}return p;case"conditions":if(w=p.conditions[s].find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.conditions[s].indexOf(w);p.conditions[s][S]=I}return p;default:if(w=p.triggers.find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.triggers.indexOf(w);p.triggers[S]=I}return p}}const zs=G.memo(I=>{var Sn;const{setUserRules:p,userRules:s,_id:A,id:b,blockValue:w,active:S,acceptedBy:T,isTourOpen:W,setTourStep:un,tourStep:fn}=I,[j,K]=G.useState(null),{blocks:y,socket:on,onUpdate:Cn,setOnUpdate:U,onDebugMessage:E,enableSimulation:Q}=G.useContext(Dr),N=G.useCallback($=>y==null?void 0:y.find(V=>V.getStaticData().id===$),[y]),B=G.useCallback($=>{const V=ip($,s,w);V&&p(V)},[s]),J=$=>{$.currentTarget!==j&&K($.currentTarget)},xn=()=>K(null),_n=G.useMemo(()=>{const $=N(b)||M_;return x.jsx($,{...I,notFound:!N(b),isTourOpen:W,setTourStep:un,tourStep:fn,onUpdate:Cn,setOnUpdate:U,enableSimulation:Q,onDebugMessage:E,onChange:B,className:void 0,socket:on})},[s,Cn,E,Q]),[hn,In]=G.useState(!1);return x.jsxs("div",{onMouseMove:J,onMouseEnter:J,onMouseLeave:xn,onMouseDown:$=>{if($.ctrlKey){let V;const tn=ae(T,s,w);T==="conditions"?(V=tn.conditions[w].find(M=>M._id===A),V&&tn.conditions[w].splice(tn.conditions[w].indexOf(V),0,{...V,_id:Date.now()})):T==="actions"?(V=tn.actions[w].find(M=>M._id===A),V&&tn.actions[w].splice(tn.actions[w].indexOf(V),0,{...V,_id:Date.now()})):(V=tn.triggers.find(M=>M._id===A),V&&tn.triggers.splice(tn[T].indexOf(V),0,{...V,_id:Date.now()})),p(tn)}},id:"height",style:S?{width:(((Sn=document.getElementById("width"))==null?void 0:Sn.clientWidth)||0)-70}:void 0,className:`${ce.cardStyle} ${S?ce.cardStyleActive:null} ${hn?ce.isDelete:null}`,children:[x.jsx("div",{className:ce.drag_mobile}),_n,p&&x.jsx("div",{className:ce.controlMenu,style:j?{opacity:1}:{opacity:0},children:x.jsx("div",{onClick:()=>{let $=ae(T,s,w);$=Jt(T,$,w,A),In(!0),setTimeout(()=>{T==="triggers"&&U(!0),p($)},300)},className:ce.closeBtn})})]})}),up={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},fp=(I,p,s)=>{if(!I||!p)return{display:"none"};let{x:A,y:b}=p;const w=`translate(${A}px, ${b}px)`;return{transform:w,WebkitTransform:w}},sp=I=>{const{itemType:p,isDragging:s,item:A,initialOffset:b,currentOffset:w,targetIds:S}=K_(W=>({item:W.getItem(),itemType:W.getItemType(),initialOffset:W.getInitialSourceClientOffset(),currentOffset:W.getSourceClientOffset(),isDragging:W.isDragging(),targetIds:W.getTargetIds()})),T=()=>{switch(p){case"box":return S.length?x.jsx(zs,{active:!0,...A,allBlocks:I.allBlocks}):x.jsx(Ks,{active:!0,...A,socket:I.socket});default:return null}};return s?x.jsx("div",{style:up,children:x.jsx("div",{style:fp(b,w),children:T()})}):null},op="_border_wrpm3_1",lp="_emptyBlockStyle_wrpm3_6",cp="_emptyBlock_wrpm3_6",ap="_selectOnChange_wrpm3_22",hp="_selectOnChangeHelp_wrpm3_28",gp="_selectOnChangeHelpIcon_wrpm3_34",dp="_emptyBlockNone_wrpm3_49",_p="_mainBlockItemRules_wrpm3_55",pp="_nameBlockItems_wrpm3_63",vp="_contentBlockItem_wrpm3_73",xp="_wrapperMargin_wrpm3_81",mp="_contentHeightOn_wrpm3_87",wp="_contentHeightOff_wrpm3_99",Ap="_cardAdd_wrpm3_105",Cp="_blockCardAdd_wrpm3_125",Ip="_addClassOverflow_wrpm3_136",Sp="_addClassHeight_wrpm3_140",An={border:op,emptyBlockStyle:lp,emptyBlock:cp,selectOnChange:ap,selectOnChangeHelp:hp,selectOnChangeHelpIcon:gp,emptyBlockNone:dp,mainBlockItemRules:_p,nameBlockItems:pp,contentBlockItem:vp,wrapperMargin:xp,contentHeightOn:mp,contentHeightOff:wp,cardAdd:Ap,blockCardAdd:Cp,addClassOverflow:Ip,addClassHeight:Sp};function uu(I,p){const[s,A]=G.useState(window.localStorage.getItem(p)?JSON.parse(window.localStorage.getItem(p)||""):I);return[s,w=>{window.localStorage.setItem(p,JSON.stringify(w)),A(w)},!!window.localStorage.getItem(p)]}var Lr={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */var yp=Lr.exports;(function(I,p){(function(){var s,A="4.17.21",b=200,w="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",S="Expected a function",T="Invalid `variable` option passed into `_.template`",W="__lodash_hash_undefined__",un=500,fn="__lodash_placeholder__",j=1,K=2,y=4,on=1,Cn=2,U=1,E=2,Q=4,N=8,B=16,J=32,xn=64,_n=128,hn=256,In=512,Sn=30,$="...",V=800,tn=16,M=1,Rn=2,pn=3,Yn=1/0,it=9007199254740991,ht=17976931348623157e292,cn=NaN,yn=4294967295,Nt=yn-1,ut=yn>>>1,kt=[["ary",_n],["bind",U],["bindKey",E],["curry",N],["curryRight",B],["flip",In],["partial",J],["partialRight",xn],["rearg",hn]],Zt="[object Arguments]",Me="[object Array]",ks="[object AsyncFunction]",he="[object Boolean]",ge="[object Date]",Zs="[object DOMException]",Ne="[object Error]",Pe="[object Function]",su="[object GeneratorFunction]",ft="[object Map]",de="[object Number]",Ys="[object Null]",pt="[object Object]",ou="[object Promise]",Xs="[object Proxy]",_e="[object RegExp]",st="[object Set]",pe="[object String]",Fe="[object Symbol]",Qs="[object Undefined]",ve="[object WeakMap]",js="[object WeakSet]",xe="[object ArrayBuffer]",Yt="[object DataView]",Rr="[object Float32Array]",Wr="[object Float64Array]",Br="[object Int8Array]",Mr="[object Int16Array]",Nr="[object Int32Array]",Pr="[object Uint8Array]",Fr="[object Uint8ClampedArray]",Ur="[object Uint16Array]",Hr="[object Uint32Array]",Vs=/\b__p \+= '';/g,no=/\b(__p \+=) '' \+/g,to=/(__e\(.*?\)|\b__t\)) \+\n'';/g,lu=/&(?:amp|lt|gt|quot|#39);/g,cu=/[&<>"']/g,eo=RegExp(lu.source),ro=RegExp(cu.source),io=/<%-([\s\S]+?)%>/g,uo=/<%([\s\S]+?)%>/g,au=/<%=([\s\S]+?)%>/g,fo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,so=/^\w*$/,oo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$r=/[\\^$.*+?()[\]{}|]/g,lo=RegExp($r.source),qr=/^\s+/,co=/\s/,ao=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ho=/\{\n\/\* \[wrapped with (.+)\] \*/,go=/,? & /,_o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,po=/[()=,{}\[\]\/\s]/,vo=/\\(\\)?/g,xo=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,hu=/\w*$/,mo=/^[-+]0x[0-9a-f]+$/i,wo=/^0b[01]+$/i,Ao=/^\[object .+?Constructor\]$/,Co=/^0o[0-7]+$/i,Io=/^(?:0|[1-9]\d*)$/,So=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ue=/($^)/,yo=/['\n\r\u2028\u2029\\]/g,He="\\ud800-\\udfff",Oo="\\u0300-\\u036f",bo="\\ufe20-\\ufe2f",Eo="\\u20d0-\\u20ff",gu=Oo+bo+Eo,du="\\u2700-\\u27bf",_u="a-z\\xdf-\\xf6\\xf8-\\xff",To="\\xac\\xb1\\xd7\\xf7",Lo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Do="\\u2000-\\u206f",Ro=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",pu="A-Z\\xc0-\\xd6\\xd8-\\xde",vu="\\ufe0e\\ufe0f",xu=To+Lo+Do+Ro,Gr="['’]",Wo="["+He+"]",mu="["+xu+"]",$e="["+gu+"]",wu="\\d+",Bo="["+du+"]",Au="["+_u+"]",Cu="[^"+He+xu+wu+du+_u+pu+"]",Kr="\\ud83c[\\udffb-\\udfff]",Mo="(?:"+$e+"|"+Kr+")",Iu="[^"+He+"]",zr="(?:\\ud83c[\\udde6-\\uddff]){2}",Jr="[\\ud800-\\udbff][\\udc00-\\udfff]",Xt="["+pu+"]",Su="\\u200d",yu="(?:"+Au+"|"+Cu+")",No="(?:"+Xt+"|"+Cu+")",Ou="(?:"+Gr+"(?:d|ll|m|re|s|t|ve))?",bu="(?:"+Gr+"(?:D|LL|M|RE|S|T|VE))?",Eu=Mo+"?",Tu="["+vu+"]?",Po="(?:"+Su+"(?:"+[Iu,zr,Jr].join("|")+")"+Tu+Eu+")*",Fo="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Uo="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Lu=Tu+Eu+Po,Ho="(?:"+[Bo,zr,Jr].join("|")+")"+Lu,$o="(?:"+[Iu+$e+"?",$e,zr,Jr,Wo].join("|")+")",qo=RegExp(Gr,"g"),Go=RegExp($e,"g"),kr=RegExp(Kr+"(?="+Kr+")|"+$o+Lu,"g"),Ko=RegExp([Xt+"?"+Au+"+"+Ou+"(?="+[mu,Xt,"$"].join("|")+")",No+"+"+bu+"(?="+[mu,Xt+yu,"$"].join("|")+")",Xt+"?"+yu+"+"+Ou,Xt+"+"+bu,Uo,Fo,wu,Ho].join("|"),"g"),zo=RegExp("["+Su+He+gu+vu+"]"),Jo=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ko=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Zo=-1,an={};an[Rr]=an[Wr]=an[Br]=an[Mr]=an[Nr]=an[Pr]=an[Fr]=an[Ur]=an[Hr]=!0,an[Zt]=an[Me]=an[xe]=an[he]=an[Yt]=an[ge]=an[Ne]=an[Pe]=an[ft]=an[de]=an[pt]=an[_e]=an[st]=an[pe]=an[ve]=!1;var ln={};ln[Zt]=ln[Me]=ln[xe]=ln[Yt]=ln[he]=ln[ge]=ln[Rr]=ln[Wr]=ln[Br]=ln[Mr]=ln[Nr]=ln[ft]=ln[de]=ln[pt]=ln[_e]=ln[st]=ln[pe]=ln[Fe]=ln[Pr]=ln[Fr]=ln[Ur]=ln[Hr]=!0,ln[Ne]=ln[Pe]=ln[ve]=!1;var Yo={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Xo={"&":"&","<":"<",">":">",'"':""","'":"'"},Qo={"&":"&","<":"<",">":">",""":'"',"'":"'"},jo={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Vo=parseFloat,nl=parseInt,Du=typeof br=="object"&&br&&br.Object===Object&&br,tl=typeof self=="object"&&self&&self.Object===Object&&self,Ln=Du||tl||Function("return this")(),Zr=p&&!p.nodeType&&p,Pt=Zr&&!0&&I&&!I.nodeType&&I,Ru=Pt&&Pt.exports===Zr,Yr=Ru&&Du.process,Xn=function(){try{var c=Pt&&Pt.require&&Pt.require("util").types;return c||Yr&&Yr.binding&&Yr.binding("util")}catch{}}(),Wu=Xn&&Xn.isArrayBuffer,Bu=Xn&&Xn.isDate,Mu=Xn&&Xn.isMap,Nu=Xn&&Xn.isRegExp,Pu=Xn&&Xn.isSet,Fu=Xn&&Xn.isTypedArray;function Gn(c,g,h){switch(h.length){case 0:return c.call(g);case 1:return c.call(g,h[0]);case 2:return c.call(g,h[0],h[1]);case 3:return c.call(g,h[0],h[1],h[2])}return c.apply(g,h)}function el(c,g,h,C){for(var P=-1,nn=c==null?0:c.length;++P-1}function Xr(c,g,h){for(var C=-1,P=c==null?0:c.length;++C-1;);return h}function Ju(c,g){for(var h=c.length;h--&&Qt(g,c[h],0)>-1;);return h}function al(c,g){for(var h=c.length,C=0;h--;)c[h]===g&&++C;return C}var hl=ni(Yo),gl=ni(Xo);function dl(c){return"\\"+jo[c]}function _l(c,g){return c==null?s:c[g]}function jt(c){return zo.test(c)}function pl(c){return Jo.test(c)}function vl(c){for(var g,h=[];!(g=c.next()).done;)h.push(g.value);return h}function ii(c){var g=-1,h=Array(c.size);return c.forEach(function(C,P){h[++g]=[P,C]}),h}function ku(c,g){return function(h){return c(g(h))}}function Et(c,g){for(var h=-1,C=c.length,P=0,nn=[];++h-1}function ic(n,t){var e=this.__data__,r=ur(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}vt.prototype.clear=nc,vt.prototype.delete=tc,vt.prototype.get=ec,vt.prototype.has=rc,vt.prototype.set=ic;function xt(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t=t?n:t)),n}function nt(n,t,e,r,i,f){var o,l=t&j,a=t&K,d=t&y;if(e&&(o=i?e(n,r,i,f):e(n)),o!==s)return o;if(!dn(n))return n;var _=F(n);if(_){if(o=oa(n),!l)return Un(n,o)}else{var v=Bn(n),m=v==Pe||v==su;if(Bt(n))return Lf(n,l);if(v==pt||v==Zt||m&&!i){if(o=a||m?{}:Yf(n),!l)return a?Qc(n,wc(o,n)):Xc(n,ff(o,n))}else{if(!ln[v])return i?n:{};o=la(n,v,l)}}f||(f=new lt);var O=f.get(n);if(O)return O;f.set(n,o),Ss(n)?n.forEach(function(R){o.add(nt(R,t,e,R,n,f))}):Cs(n)&&n.forEach(function(R,k){o.set(k,nt(R,t,e,k,n,f))});var D=d?a?Li:Ti:a?$n:Tn,q=_?s:D(n);return Qn(q||n,function(R,k){q&&(k=R,R=n[k]),ye(o,k,nt(R,t,e,k,n,f))}),o}function Ac(n){var t=Tn(n);return function(e){return sf(e,n,t)}}function sf(n,t,e){var r=e.length;if(n==null)return!r;for(n=sn(n);r--;){var i=e[r],f=t[i],o=n[i];if(o===s&&!(i in n)||!f(o))return!1}return!0}function of(n,t,e){if(typeof n!="function")throw new jn(S);return Re(function(){n.apply(s,e)},t)}function Oe(n,t,e,r){var i=-1,f=qe,o=!0,l=n.length,a=[],d=t.length;if(!l)return a;e&&(t=gn(t,Kn(e))),r?(f=Xr,o=!1):t.length>=b&&(f=me,o=!1,t=new Ht(t));n:for(;++ii?0:i+e),r=r===s||r>i?i:H(r),r<0&&(r+=i),r=e>r?0:Os(r);e0&&e(l)?t>1?Dn(l,t-1,e,r,i):bt(i,l):r||(i[i.length]=l)}return i}var ai=Nf(),af=Nf(!0);function gt(n,t){return n&&ai(n,t,Tn)}function hi(n,t){return n&&af(n,t,Tn)}function sr(n,t){return Ot(t,function(e){return It(n[e])})}function qt(n,t){t=Rt(t,n);for(var e=0,r=t.length;n!=null&&et}function Sc(n,t){return n!=null&&rn.call(n,t)}function yc(n,t){return n!=null&&t in sn(n)}function Oc(n,t,e){return n>=Wn(t,e)&&n=120&&_.length>=120)?new Ht(o&&_):s}_=n[0];var v=-1,m=l[0];n:for(;++v-1;)l!==n&&je.call(l,a,1),je.call(n,a,1);return n}function Cf(n,t){for(var e=n?t.length:0,r=e-1;e--;){var i=t[e];if(e==r||i!==f){var f=i;Ct(i)?je.call(n,i,1):Ci(n,i)}}return n}function mi(n,t){return n+tr(tf()*(t-n+1))}function Uc(n,t,e,r){for(var i=-1,f=bn(nr((t-n)/(e||1)),0),o=h(f);f--;)o[r?f:++i]=n,n+=e;return o}function wi(n,t){var e="";if(!n||t<1||t>it)return e;do t%2&&(e+=n),t=tr(t/2),t&&(n+=n);while(t);return e}function z(n,t){return Pi(jf(n,t,qn),n+"")}function Hc(n){return uf(le(n))}function $c(n,t){var e=le(n);return xr(e,$t(t,0,e.length))}function Te(n,t,e,r){if(!dn(n))return n;t=Rt(t,n);for(var i=-1,f=t.length,o=f-1,l=n;l!=null&&++ii?0:i+t),e=e>i?i:e,e<0&&(e+=i),i=t>e?0:e-t>>>0,t>>>=0;for(var f=h(i);++r>>1,o=n[f];o!==null&&!Jn(o)&&(e?o<=t:o=b){var d=t?null:ta(n);if(d)return Ke(d);o=!1,i=me,a=new Ht}else a=t?[]:l;n:for(;++r=r?n:tt(n,t,e)}var Tf=Rl||function(n){return Ln.clearTimeout(n)};function Lf(n,t){if(t)return n.slice();var e=n.length,r=Xu?Xu(e):new n.constructor(e);return n.copy(r),r}function Oi(n){var t=new n.constructor(n.byteLength);return new Xe(t).set(new Xe(n)),t}function Jc(n,t){var e=t?Oi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}function kc(n){var t=new n.constructor(n.source,hu.exec(n));return t.lastIndex=n.lastIndex,t}function Zc(n){return Se?sn(Se.call(n)):{}}function Df(n,t){var e=t?Oi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}function Rf(n,t){if(n!==t){var e=n!==s,r=n===null,i=n===n,f=Jn(n),o=t!==s,l=t===null,a=t===t,d=Jn(t);if(!l&&!d&&!f&&n>t||f&&o&&a&&!l&&!d||r&&o&&a||!e&&a||!i)return 1;if(!r&&!f&&!d&&n=l)return a;var d=e[r];return a*(d=="desc"?-1:1)}}return n.index-t.index}function Wf(n,t,e,r){for(var i=-1,f=n.length,o=e.length,l=-1,a=t.length,d=bn(f-o,0),_=h(a+d),v=!r;++l1?e[i-1]:s,o=i>2?e[2]:s;for(f=n.length>3&&typeof f=="function"?(i--,f):s,o&&Pn(e[0],e[1],o)&&(f=i<3?s:f,i=1),t=sn(t);++r-1?i[f?t[o]:o]:s}}function Uf(n){return At(function(t){var e=t.length,r=e,i=Vn.prototype.thru;for(n&&t.reverse();r--;){var f=t[r];if(typeof f!="function")throw new jn(S);if(i&&!o&&pr(f)=="wrapper")var o=new Vn([],!0)}for(r=o?r:e;++r1&&Y.reverse(),_&&al))return!1;var d=f.get(n),_=f.get(t);if(d&&_)return d==t&&_==n;var v=-1,m=!0,O=e&Cn?new Ht:s;for(f.set(n,t),f.set(t,n);++v1?"& ":"")+t[r],t=t.join(e>2?", ":" "),n.replace(ao,`{ +/* [wrapped with `+t+`] */ +`)}function aa(n){return F(n)||zt(n)||!!(Vu&&n&&n[Vu])}function Ct(n,t){var e=typeof n;return t=t??it,!!t&&(e=="number"||e!="symbol"&&Io.test(n))&&n>-1&&n%1==0&&n0){if(++t>=V)return arguments[0]}else t=0;return n.apply(s,arguments)}}function xr(n,t){var e=-1,r=n.length,i=r-1;for(t=t===s?r:t;++e1?n[t-1]:s;return e=typeof e=="function"?(n.pop(),e):s,cs(n,e)});function as(n){var t=u(n);return t.__chain__=!0,t}function Ch(n,t){return t(n),n}function mr(n,t){return t(n)}var Ih=At(function(n){var t=n.length,e=t?n[0]:0,r=this.__wrapped__,i=function(f){return ci(f,n)};return t>1||this.__actions__.length||!(r instanceof Z)||!Ct(e)?this.thru(i):(r=r.slice(e,+e+(t?1:0)),r.__actions__.push({func:mr,args:[i],thisArg:s}),new Vn(r,this.__chain__).thru(function(f){return t&&!f.length&&f.push(s),f}))});function Sh(){return as(this)}function yh(){return new Vn(this.value(),this.__chain__)}function Oh(){this.__values__===s&&(this.__values__=ys(this.value()));var n=this.__index__>=this.__values__.length,t=n?s:this.__values__[this.__index__++];return{done:n,value:t}}function bh(){return this}function Eh(n){for(var t,e=this;e instanceof ir;){var r=is(e);r.__index__=0,r.__values__=s,t?i.__wrapped__=r:t=r;var i=r;e=e.__wrapped__}return i.__wrapped__=n,t}function Th(){var n=this.__wrapped__;if(n instanceof Z){var t=n;return this.__actions__.length&&(t=new Z(this)),t=t.reverse(),t.__actions__.push({func:mr,args:[Fi],thisArg:s}),new Vn(t,this.__chain__)}return this.thru(Fi)}function Lh(){return bf(this.__wrapped__,this.__actions__)}var Dh=ar(function(n,t,e){rn.call(n,e)?++n[e]:mt(n,e,1)});function Rh(n,t,e){var r=F(n)?Uu:Cc;return e&&Pn(n,t,e)&&(t=s),r(n,L(t,3))}function Wh(n,t){var e=F(n)?Ot:cf;return e(n,L(t,3))}var Bh=Ff(us),Mh=Ff(fs);function Nh(n,t){return Dn(wr(n,t),1)}function Ph(n,t){return Dn(wr(n,t),Yn)}function Fh(n,t,e){return e=e===s?1:H(e),Dn(wr(n,t),e)}function hs(n,t){var e=F(n)?Qn:Lt;return e(n,L(t,3))}function gs(n,t){var e=F(n)?rl:lf;return e(n,L(t,3))}var Uh=ar(function(n,t,e){rn.call(n,e)?n[e].push(t):mt(n,e,[t])});function Hh(n,t,e,r){n=Hn(n)?n:le(n),e=e&&!r?H(e):0;var i=n.length;return e<0&&(e=bn(i+e,0)),yr(n)?e<=i&&n.indexOf(t,e)>-1:!!i&&Qt(n,t,e)>-1}var $h=z(function(n,t,e){var r=-1,i=typeof t=="function",f=Hn(n)?h(n.length):[];return Lt(n,function(o){f[++r]=i?Gn(t,o,e):be(o,t,e)}),f}),qh=ar(function(n,t,e){mt(n,e,t)});function wr(n,t){var e=F(n)?gn:pf;return e(n,L(t,3))}function Gh(n,t,e,r){return n==null?[]:(F(t)||(t=t==null?[]:[t]),e=r?s:e,F(e)||(e=e==null?[]:[e]),wf(n,t,e))}var Kh=ar(function(n,t,e){n[e?0:1].push(t)},function(){return[[],[]]});function zh(n,t,e){var r=F(n)?Qr:Gu,i=arguments.length<3;return r(n,L(t,4),e,i,Lt)}function Jh(n,t,e){var r=F(n)?il:Gu,i=arguments.length<3;return r(n,L(t,4),e,i,lf)}function kh(n,t){var e=F(n)?Ot:cf;return e(n,Ir(L(t,3)))}function Zh(n){var t=F(n)?uf:Hc;return t(n)}function Yh(n,t,e){(e?Pn(n,t,e):t===s)?t=1:t=H(t);var r=F(n)?vc:$c;return r(n,t)}function Xh(n){var t=F(n)?xc:Gc;return t(n)}function Qh(n){if(n==null)return 0;if(Hn(n))return yr(n)?Vt(n):n.length;var t=Bn(n);return t==ft||t==st?n.size:pi(n).length}function jh(n,t,e){var r=F(n)?jr:Kc;return e&&Pn(n,t,e)&&(t=s),r(n,L(t,3))}var Vh=z(function(n,t){if(n==null)return[];var e=t.length;return e>1&&Pn(n,t[0],t[1])?t=[]:e>2&&Pn(t[0],t[1],t[2])&&(t=[t[0]]),wf(n,Dn(t,1),[])}),Ar=Wl||function(){return Ln.Date.now()};function ng(n,t){if(typeof t!="function")throw new jn(S);return n=H(n),function(){if(--n<1)return t.apply(this,arguments)}}function ds(n,t,e){return t=e?s:t,t=n&&t==null?n.length:t,wt(n,_n,s,s,s,s,t)}function _s(n,t){var e;if(typeof t!="function")throw new jn(S);return n=H(n),function(){return--n>0&&(e=t.apply(this,arguments)),n<=1&&(t=s),e}}var Hi=z(function(n,t,e){var r=U;if(e.length){var i=Et(e,se(Hi));r|=J}return wt(n,r,t,e,i)}),ps=z(function(n,t,e){var r=U|E;if(e.length){var i=Et(e,se(ps));r|=J}return wt(t,r,n,e,i)});function vs(n,t,e){t=e?s:t;var r=wt(n,N,s,s,s,s,s,t);return r.placeholder=vs.placeholder,r}function xs(n,t,e){t=e?s:t;var r=wt(n,B,s,s,s,s,s,t);return r.placeholder=xs.placeholder,r}function ms(n,t,e){var r,i,f,o,l,a,d=0,_=!1,v=!1,m=!0;if(typeof n!="function")throw new jn(S);t=rt(t)||0,dn(e)&&(_=!!e.leading,v="maxWait"in e,f=v?bn(rt(e.maxWait)||0,t):f,m="trailing"in e?!!e.trailing:m);function O(wn){var at=r,yt=i;return r=i=s,d=wn,o=n.apply(yt,at),o}function D(wn){return d=wn,l=Re(k,t),_?O(wn):o}function q(wn){var at=wn-a,yt=wn-d,Fs=t-at;return v?Wn(Fs,f-yt):Fs}function R(wn){var at=wn-a,yt=wn-d;return a===s||at>=t||at<0||v&&yt>=f}function k(){var wn=Ar();if(R(wn))return Y(wn);l=Re(k,q(wn))}function Y(wn){return l=s,m&&r?O(wn):(r=i=s,o)}function kn(){l!==s&&Tf(l),d=0,r=a=i=l=s}function Fn(){return l===s?o:Y(Ar())}function Zn(){var wn=Ar(),at=R(wn);if(r=arguments,i=this,a=wn,at){if(l===s)return D(a);if(v)return Tf(l),l=Re(k,t),O(a)}return l===s&&(l=Re(k,t)),o}return Zn.cancel=kn,Zn.flush=Fn,Zn}var tg=z(function(n,t){return of(n,1,t)}),eg=z(function(n,t,e){return of(n,rt(t)||0,e)});function rg(n){return wt(n,In)}function Cr(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new jn(S);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],f=e.cache;if(f.has(i))return f.get(i);var o=n.apply(this,r);return e.cache=f.set(i,o)||f,o};return e.cache=new(Cr.Cache||xt),e}Cr.Cache=xt;function Ir(n){if(typeof n!="function")throw new jn(S);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function ig(n){return _s(2,n)}var ug=zc(function(n,t){t=t.length==1&&F(t[0])?gn(t[0],Kn(L())):gn(Dn(t,1),Kn(L()));var e=t.length;return z(function(r){for(var i=-1,f=Wn(r.length,e);++i=t}),zt=gf(function(){return arguments}())?gf:function(n){return vn(n)&&rn.call(n,"callee")&&!ju.call(n,"callee")},F=h.isArray,wg=Wu?Kn(Wu):Ec;function Hn(n){return n!=null&&Sr(n.length)&&!It(n)}function mn(n){return vn(n)&&Hn(n)}function Ag(n){return n===!0||n===!1||vn(n)&&Nn(n)==he}var Bt=Ml||ji,Cg=Bu?Kn(Bu):Tc;function Ig(n){return vn(n)&&n.nodeType===1&&!We(n)}function Sg(n){if(n==null)return!0;if(Hn(n)&&(F(n)||typeof n=="string"||typeof n.splice=="function"||Bt(n)||oe(n)||zt(n)))return!n.length;var t=Bn(n);if(t==ft||t==st)return!n.size;if(De(n))return!pi(n).length;for(var e in n)if(rn.call(n,e))return!1;return!0}function yg(n,t){return Ee(n,t)}function Og(n,t,e){e=typeof e=="function"?e:s;var r=e?e(n,t):s;return r===s?Ee(n,t,s,e):!!r}function qi(n){if(!vn(n))return!1;var t=Nn(n);return t==Ne||t==Zs||typeof n.message=="string"&&typeof n.name=="string"&&!We(n)}function bg(n){return typeof n=="number"&&nf(n)}function It(n){if(!dn(n))return!1;var t=Nn(n);return t==Pe||t==su||t==ks||t==Xs}function As(n){return typeof n=="number"&&n==H(n)}function Sr(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=it}function dn(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}function vn(n){return n!=null&&typeof n=="object"}var Cs=Mu?Kn(Mu):Dc;function Eg(n,t){return n===t||_i(n,t,Ri(t))}function Tg(n,t,e){return e=typeof e=="function"?e:s,_i(n,t,Ri(t),e)}function Lg(n){return Is(n)&&n!=+n}function Dg(n){if(da(n))throw new P(w);return df(n)}function Rg(n){return n===null}function Wg(n){return n==null}function Is(n){return typeof n=="number"||vn(n)&&Nn(n)==de}function We(n){if(!vn(n)||Nn(n)!=pt)return!1;var t=Qe(n);if(t===null)return!0;var e=rn.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&ke.call(e)==Tl}var Gi=Nu?Kn(Nu):Rc;function Bg(n){return As(n)&&n>=-9007199254740991&&n<=it}var Ss=Pu?Kn(Pu):Wc;function yr(n){return typeof n=="string"||!F(n)&&vn(n)&&Nn(n)==pe}function Jn(n){return typeof n=="symbol"||vn(n)&&Nn(n)==Fe}var oe=Fu?Kn(Fu):Bc;function Mg(n){return n===s}function Ng(n){return vn(n)&&Bn(n)==ve}function Pg(n){return vn(n)&&Nn(n)==js}var Fg=_r(vi),Ug=_r(function(n,t){return n<=t});function ys(n){if(!n)return[];if(Hn(n))return yr(n)?ot(n):Un(n);if(we&&n[we])return vl(n[we]());var t=Bn(n),e=t==ft?ii:t==st?Ke:le;return e(n)}function St(n){if(!n)return n===0?n:0;if(n=rt(n),n===Yn||n===-1/0){var t=n<0?-1:1;return t*ht}return n===n?n:0}function H(n){var t=St(n),e=t%1;return t===t?e?t-e:t:0}function Os(n){return n?$t(H(n),0,yn):0}function rt(n){if(typeof n=="number")return n;if(Jn(n))return cn;if(dn(n)){var t=typeof n.valueOf=="function"?n.valueOf():n;n=dn(t)?t+"":t}if(typeof n!="string")return n===0?n:+n;n=Ku(n);var e=wo.test(n);return e||Co.test(n)?nl(n.slice(2),e?2:8):mo.test(n)?cn:+n}function bs(n){return dt(n,$n(n))}function Hg(n){return n?$t(H(n),-9007199254740991,it):n===0?n:0}function en(n){return n==null?"":zn(n)}var $g=ue(function(n,t){if(De(t)||Hn(t)){dt(t,Tn(t),n);return}for(var e in t)rn.call(t,e)&&ye(n,e,t[e])}),Es=ue(function(n,t){dt(t,$n(t),n)}),Or=ue(function(n,t,e,r){dt(t,$n(t),n,r)}),qg=ue(function(n,t,e,r){dt(t,Tn(t),n,r)}),Gg=At(ci);function Kg(n,t){var e=ie(n);return t==null?e:ff(e,t)}var zg=z(function(n,t){n=sn(n);var e=-1,r=t.length,i=r>2?t[2]:s;for(i&&Pn(t[0],t[1],i)&&(r=1);++e1),f}),dt(n,Li(n),e),r&&(e=nt(e,j|K|y,ea));for(var i=t.length;i--;)Ci(e,t[i]);return e});function ld(n,t){return Ls(n,Ir(L(t)))}var cd=At(function(n,t){return n==null?{}:Pc(n,t)});function Ls(n,t){if(n==null)return{};var e=gn(Li(n),function(r){return[r]});return t=L(t),Af(n,e,function(r,i){return t(r,i[0])})}function ad(n,t,e){t=Rt(t,n);var r=-1,i=t.length;for(i||(i=1,n=s);++rt){var r=n;n=t,t=r}if(e||n%1||t%1){var i=tf();return Wn(n+i*(t-n+Vo("1e-"+((i+"").length-1))),t)}return mi(n,t)}var Cd=fe(function(n,t,e){return t=t.toLowerCase(),n+(e?Ws(t):t)});function Ws(n){return Ji(en(n).toLowerCase())}function Bs(n){return n=en(n),n&&n.replace(So,hl).replace(Go,"")}function Id(n,t,e){n=en(n),t=zn(t);var r=n.length;e=e===s?r:$t(H(e),0,r);var i=e;return e-=t.length,e>=0&&n.slice(e,i)==t}function Sd(n){return n=en(n),n&&ro.test(n)?n.replace(cu,gl):n}function yd(n){return n=en(n),n&&lo.test(n)?n.replace($r,"\\$&"):n}var Od=fe(function(n,t,e){return n+(e?"-":"")+t.toLowerCase()}),bd=fe(function(n,t,e){return n+(e?" ":"")+t.toLowerCase()}),Ed=Pf("toLowerCase");function Td(n,t,e){n=en(n),t=H(t);var r=t?Vt(n):0;if(!t||r>=t)return n;var i=(t-r)/2;return dr(tr(i),e)+n+dr(nr(i),e)}function Ld(n,t,e){n=en(n),t=H(t);var r=t?Vt(n):0;return t&&r>>0,e?(n=en(n),n&&(typeof t=="string"||t!=null&&!Gi(t))&&(t=zn(t),!t&&jt(n))?Wt(ot(n),0,e):n.split(t,e)):[]}var Pd=fe(function(n,t,e){return n+(e?" ":"")+Ji(t)});function Fd(n,t,e){return n=en(n),e=e==null?0:$t(H(e),0,n.length),t=zn(t),n.slice(e,e+t.length)==t}function Ud(n,t,e){var r=u.templateSettings;e&&Pn(n,t,e)&&(t=s),n=en(n),t=Or({},t,r,Kf);var i=Or({},t.imports,r.imports,Kf),f=Tn(i),o=ri(i,f),l,a,d=0,_=t.interpolate||Ue,v="__p += '",m=ui((t.escape||Ue).source+"|"+_.source+"|"+(_===au?xo:Ue).source+"|"+(t.evaluate||Ue).source+"|$","g"),O="//# sourceURL="+(rn.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Zo+"]")+` +`;n.replace(m,function(R,k,Y,kn,Fn,Zn){return Y||(Y=kn),v+=n.slice(d,Zn).replace(yo,dl),k&&(l=!0,v+=`' + +__e(`+k+`) + +'`),Fn&&(a=!0,v+=`'; +`+Fn+`; +__p += '`),Y&&(v+=`' + +((__t = (`+Y+`)) == null ? '' : __t) + +'`),d=Zn+R.length,R}),v+=`'; +`;var D=rn.call(t,"variable")&&t.variable;if(!D)v=`with (obj) { +`+v+` +} +`;else if(po.test(D))throw new P(T);v=(a?v.replace(Vs,""):v).replace(no,"$1").replace(to,"$1;"),v="function("+(D||"obj")+`) { +`+(D?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(l?", __e = _.escape":"")+(a?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+v+`return __p +}`;var q=Ns(function(){return nn(f,O+"return "+v).apply(s,o)});if(q.source=v,qi(q))throw q;return q}function Hd(n){return en(n).toLowerCase()}function $d(n){return en(n).toUpperCase()}function qd(n,t,e){if(n=en(n),n&&(e||t===s))return Ku(n);if(!n||!(t=zn(t)))return n;var r=ot(n),i=ot(t),f=zu(r,i),o=Ju(r,i)+1;return Wt(r,f,o).join("")}function Gd(n,t,e){if(n=en(n),n&&(e||t===s))return n.slice(0,Zu(n)+1);if(!n||!(t=zn(t)))return n;var r=ot(n),i=Ju(r,ot(t))+1;return Wt(r,0,i).join("")}function Kd(n,t,e){if(n=en(n),n&&(e||t===s))return n.replace(qr,"");if(!n||!(t=zn(t)))return n;var r=ot(n),i=zu(r,ot(t));return Wt(r,i).join("")}function zd(n,t){var e=Sn,r=$;if(dn(t)){var i="separator"in t?t.separator:i;e="length"in t?H(t.length):e,r="omission"in t?zn(t.omission):r}n=en(n);var f=n.length;if(jt(n)){var o=ot(n);f=o.length}if(e>=f)return n;var l=e-Vt(r);if(l<1)return r;var a=o?Wt(o,0,l).join(""):n.slice(0,l);if(i===s)return a+r;if(o&&(l+=a.length-l),Gi(i)){if(n.slice(l).search(i)){var d,_=a;for(i.global||(i=ui(i.source,en(hu.exec(i))+"g")),i.lastIndex=0;d=i.exec(_);)var v=d.index;a=a.slice(0,v===s?l:v)}}else if(n.indexOf(zn(i),l)!=l){var m=a.lastIndexOf(i);m>-1&&(a=a.slice(0,m))}return a+r}function Jd(n){return n=en(n),n&&eo.test(n)?n.replace(lu,Al):n}var kd=fe(function(n,t,e){return n+(e?" ":"")+t.toUpperCase()}),Ji=Pf("toUpperCase");function Ms(n,t,e){return n=en(n),t=e?s:t,t===s?pl(n)?Sl(n):sl(n):n.match(t)||[]}var Ns=z(function(n,t){try{return Gn(n,s,t)}catch(e){return qi(e)?e:new P(e)}}),Zd=At(function(n,t){return Qn(t,function(e){e=_t(e),mt(n,e,Hi(n[e],n))}),n});function Yd(n){var t=n==null?0:n.length,e=L();return n=t?gn(n,function(r){if(typeof r[1]!="function")throw new jn(S);return[e(r[0]),r[1]]}):[],z(function(r){for(var i=-1;++iit)return[];var e=yn,r=Wn(n,yn);t=L(t),n-=yn;for(var i=ei(r,t);++e0||t<0)?new Z(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==s&&(t=H(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},Z.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Z.prototype.toArray=function(){return this.take(yn)},gt(Z.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=u[r?"take"+(t=="last"?"Right":""):t],f=r||/^find/.test(t);i&&(u.prototype[t]=function(){var o=this.__wrapped__,l=r?[1]:arguments,a=o instanceof Z,d=l[0],_=a||F(o),v=function(k){var Y=i.apply(u,bt([k],l));return r&&m?Y[0]:Y};_&&e&&typeof d=="function"&&d.length!=1&&(a=_=!1);var m=this.__chain__,O=!!this.__actions__.length,D=f&&!m,q=a&&!O;if(!f&&_){o=q?o:new Z(this);var R=n.apply(o,l);return R.__actions__.push({func:mr,args:[v],thisArg:s}),new Vn(R,m)}return D&&q?n.apply(this,l):(R=this.thru(v),D?r?R.value()[0]:R.value():R)})}),Qn(["pop","push","shift","sort","splice","unshift"],function(n){var t=ze[n],e=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var f=this.value();return t.apply(F(f)?f:[],i)}return this[e](function(o){return t.apply(F(o)?o:[],i)})}}),gt(Z.prototype,function(n,t){var e=u[t];if(e){var r=e.name+"";rn.call(re,r)||(re[r]=[]),re[r].push({name:t,func:e})}}),re[hr(s,E).name]=[{name:"wrapper",func:s}],Z.prototype.clone=Jl,Z.prototype.reverse=kl,Z.prototype.value=Zl,u.prototype.at=Ih,u.prototype.chain=Sh,u.prototype.commit=yh,u.prototype.next=Oh,u.prototype.plant=Eh,u.prototype.reverse=Th,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=Lh,u.prototype.first=u.prototype.head,we&&(u.prototype[we]=bh),u},ne=yl();Pt?((Pt.exports=ne)._=ne,Zr._=ne):Ln._=ne}).call(yp)})(Lr,Lr.exports);var Op=Lr.exports;const fu=G_(Op),tu=fu.throttle((I,p)=>I(p),0);function Tr(I,p){const s=p.find(A=>A._id===I);return{card:s,index:s?p.indexOf(s):-1}}function eu(I,p,s,A,b,w,S,T,W){const{card:un,index:fn}=Tr(I,s);if(!(fnp&&T>W)&&un&&fn!==p){const j=fu.clone(s);j.splice(fn,1),j.splice(p,0,un);const K=fu.clone(b);switch(w){case"actions":K.actions[S]=j,tu(A,K);return;case"conditions":K.conditions[S]=j,tu(A,K);return;default:K.triggers=j,tu(A,K);return}}}const bp="_drag_7xfhc_1",Ep="_root_7xfhc_11",Hs={drag:bp,root:Ep},Js=({typeBlock:I,allProperties:p,id:s,isActive:A,setUserRules:b,userRules:w,children:S,_id:T,blockValue:W})=>{const{setOnUpdate:un}=G.useContext(Dr),[{opacity:fn},j,K]=N_({type:"box",item:()=>({...p,id:s,isActive:A,_id:T}),end:(U,E)=>{const{acceptedBy:Q}=U,N=E.getDropResult();let B;if(!N)return typeof T=="number"&&!E.getTargetIds().length&&(B=ae(Q,w,W),B=Jt(Q,B,W,T),b(B)),null;if(N.blockValue!==W){const J=typeof T=="number"?T:Date.now();B=ae(Q,w,N.blockValue);const xn={id:U.id,acceptedBy:U.acceptedBy};switch(Q){case"actions":return W&&(B=Jt("actions",B,W,J)),B=Jt("actions",B,N.blockValue,J),B.actions[N.blockValue].push({...xn,_id:J}),b(B);case"conditions":return typeof W=="number"&&(B=Jt("conditions",B,W,J)),B=Jt("conditions",B,N.blockValue,J),B.conditions[N.blockValue].push({...xn,_id:J}),b(B);default:return un(!0),B=Jt("triggers",B,N.blockValue,J),B.triggers.push({...xn,_id:J}),b(B)}}},collect:U=>({opacity:U.isDragging()?.4:1,isDragging:U.isDragging()})}),y=G.useRef(null),[,on]=Gs({accept:"box",canDrop:()=>!1,hover({_id:U,acceptedBy:E},Q){var _n;if(!y.current||I!==E)return;const N=(_n=y.current)==null?void 0:_n.getBoundingClientRect(),B=(N.bottom-N.top)/2,J=Q.getClientOffset(),xn=((J==null?void 0:J.y)||0)-N.top;if(T&&U!==T)switch(E){case"actions":if(W==="then"||W==="else"){const{index:hn}=Tr(T,w.actions[W]);hn!==U&&eu(U,hn,w[E][W],b,w,E,W,xn,B)}return;case"conditions":if(typeof W=="number"){const{index:hn}=Tr(T,w[E][W]);hn!==U&&eu(U,hn,w[E][W],b,w,E,W,xn,B)}return;default:{const{index:hn}=Tr(T,w[E]);hn!==U&&eu(U,hn,w[E],b,w,E,void 0,xn,B);return}}}});G.useEffect(()=>{K(z_(),{captureDraggingState:!0})},[]),j(on(y));const Cn=window.innerWidth<600;return x.jsxs("div",{ref:Cn&&T?null:y,className:Hs.root,style:{opacity:fn},children:[x.jsx("div",{className:T?Hs.drag:null,ref:T&&Cn?y:null}),S]})},Tp=({onClose:I,open:p})=>x.jsxs(En.Dialog,{open:p,onClose:I,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[x.jsx(En.DialogContent,{children:x.jsxs("div",{style:{fontSize:"1rem",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,lineHeight:1.5,letterSpacing:"0.00938em"},children:[x.jsx("h3",{children:X.I18n.t("On condition change")}),x.jsx("div",{children:X.I18n.t("help_on_change")}),x.jsx("h3",{children:X.I18n.t("Just check")}),x.jsx("div",{children:X.I18n.t("help_just_check")})]})}),x.jsx(En.DialogActions,{children:x.jsx(En.Button,{onClick:I,color:"primary",autoFocus:!0,startIcon:x.jsx(q_,{}),children:X.I18n.t("OK")})})]}),Lp=({onClose:I,open:p})=>x.jsxs(En.Dialog,{open:p,onClose:I,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[x.jsx(En.DialogContent,{children:x.jsxs(En.DialogContentText,{id:"alert-dialog-description",children:[x.jsx("h3",{children:X.I18n.t("On condition change")}),x.jsx("div",{children:X.I18n.t("help_on_change")}),x.jsx("h3",{children:X.I18n.t("Just check")}),x.jsx("div",{children:X.I18n.t("help_just_check")})]})}),x.jsx(En.DialogActions,{children:x.jsx(En.Button,{onClick:I,color:"primary",autoFocus:!0,children:X.I18n.t("OK")})})]}),$s=({size:I,blockValue:p,boolean:s,typeBlock:A,userRules:b,setUserRules:w,animation:S,setTourStep:T,tourStep:W,isTourOpen:un,theme:fn,themeType:j,themeName:K})=>{var Rn;const[y,on]=G.useState(!1),[Cn,U]=G.useState(!1),[E,Q]=G.useState(!1),[N,B]=G.useState("");s===void 0&&(s=!0);const J=Gs({accept:"box",drop:()=>({blockValue:p}),hover:({acceptedBy:pn,_id:Yn},it)=>{on(pn===A),Q(!!Yn),B(it.getHandlerId()||"")},canDrop:({acceptedBy:pn})=>(U(pn===A),pn===A),collect:pn=>{var Yn;return{isOver:pn.isOver(),canDrop:((Yn=pn.getItem())==null?void 0:Yn.acceptedBy)===A,offset:pn.getClientOffset(),targetId:pn.getHandlerId()}}}),xn=J[0],{canDrop:_n,isOver:hn,offset:In,targetId:Sn}=xn,$=J[1];G.useEffect(()=>{B("")},[In]);const V=_n&&hn;let tn="";V?tn=y?"#00fb003d":"#fb00002e":_n?tn=Cn?"#00fb003d":"#fb00002e":In&&(tn=Sn===N?"#fb00002e":"");let M;return A==="actions"?M=b.actions[p]:A==="conditions"?M=b.conditions[p]:M=b.triggers,x.jsx("div",{ref:$,style:{backgroundColor:tn},className:`${X.Utils.clsx(An.contentBlockItem,I&&An.addClassHeight)} ${s?S?An.contentHeightOn:null:An.contentHeightOff}`,children:x.jsxs("div",{className:An.wrapperMargin,children:[M.map(pn=>x.jsx(Js,{typeBlock:A,...pn,blockValue:p,allProperties:pn,userRules:b,setUserRules:w,children:x.jsx(zs,{...pn,isTourOpen:un,setTourStep:T,tourStep:W,settings:pn,blockValue:p,userRules:b,setUserRules:w,theme:fn,themeType:j,themeName:K})},pn._id)),x.jsx("div",{style:V&&y&&!E?{height:((Rn=document.getElementById("height"))==null?void 0:Rn.clientHeight)||200}:void 0,className:`${An.emptyBlockStyle} ${V&&y&&!E?An.emptyBlock:An.emptyBlockNone}`})]})})},ru=({size:I,typeBlock:p,name:s,nameAdditionally:A,additionally:b,border:w,userRules:S,setUserRules:T,iconName:W,adapter:un,socket:fn,setTourStep:j,tourStep:K,isTourOpen:y,theme:on,themeType:Cn,themeName:U})=>{const[E,Q,N]=uu(p==="actions"?!1:[],`additionallyClickItems_${p}`),[B,J]=G.useState(!1),[xn,_n]=G.useState(!1);G.useEffect(()=>{if(p==="conditions"&&(E==null?void 0:E.length)!==S.conditions.length-1){const Sn=[];S.conditions.forEach(($,V)=>{V>0&&Sn.push({_id:Date.now(),open:!0})}),Q([...E,...Sn])}p==="actions"&&!N&&S.actions.else.length&&Q(!0)},[]);const[hn,In]=G.useState(!1);return x.jsxs("div",{className:`${X.Utils.clsx(An.mainBlockItemRules,I&&An.addClassOverflow)} ${w&&!I?An.border:null}`,children:[x.jsxs("span",{id:"width",className:An.nameBlockItems,children:[x.jsx(Be,{iconName:W,className:An.iconThemCard,adapter:un,socket:fn}),s]}),p==="conditions"?x.jsxs("div",{style:{width:"100%"},children:[x.jsxs(En.Select,{variant:"standard",className:An.selectOnChange,value:S.justCheck||!1,onChange:Sn=>{const $=ae("conditions",S);$.justCheck=Sn.target.value==="true",T($)},children:[x.jsx(En.MenuItem,{value:"false",children:X.I18n.t("on condition change")}),x.jsx(En.MenuItem,{value:"true",children:X.I18n.t("just check")})]}),x.jsx(En.IconButton,{size:"small",title:X.I18n.t("Explanation"),className:An.selectOnChangeHelp,onClick:()=>J(!0),children:x.jsx(P_,{className:An.selectOnChangeHelpIcon})})]}):null,x.jsx($s,{setTourStep:j,tourStep:K,isTourOpen:y,blockValue:p==="actions"?"then":p==="conditions"?0:p,typeBlock:p,setUserRules:T,userRules:S,theme:on,themeName:U,themeType:Cn,size:I}),b&&[...Array(p==="actions"?1:S.conditions.length-1)].map((Sn,$)=>{const V=(tn=$)=>p==="actions"?!!E:!!E.find((M,Rn)=>Rn===tn&&M.open);return x.jsxs(G.Fragment,{children:[x.jsxs("div",{onClick:()=>{if(p==="actions")return Q(!E),null;let tn=JSON.parse(JSON.stringify(E));if(S.conditions[$+1].length)return tn[$].open=!tn[$].open,Q(tn),null;tn=tn.filter((M,Rn)=>Rn!==$),Q(tn),In($),setTimeout(()=>{In(!1),T({...S,conditions:[...S.conditions.filter((M,Rn)=>Rn!==$+1)]})},250)},className:An.blockCardAdd,children:[V()?"-":"+",x.jsx("div",{className:An.cardAdd,children:A})]},$),x.jsx($s,{blockValue:p==="actions"?"else":p==="conditions"?$+1:p,typeBlock:p,setUserRules:T,userRules:S,boolean:V(),animation:hn===$,size:I,theme:on,themeName:U,themeType:Cn})]},`${$}_block_${p}`)}),b&&p==="conditions"&&x.jsxs("div",{onClick:()=>{Q([...E,{_id:Date.now(),open:!0}]),T({...S,conditions:[...S.conditions,[]]}),In(S.conditions.length-1),setTimeout(()=>In(!1),1e3)},className:An.blockCardAdd,children:["+",x.jsx("div",{className:An.cardAdd,children:A})]}),x.jsx(Tp,{open:B,onClose:()=>J(!1)}),x.jsx(Lp,{open:xn,onClose:()=>_n(!1)})]})},Dp="_menuRules_1qqcb_1",Rp="_switchesRenderWrapper_1qqcb_13",Wp="_menuOff_1qqcb_22",Bp="_menuTitle_1qqcb_28",Mp="_marginAuto_1qqcb_42",Np="_inputWidth_1qqcb_47",Pp="_menuWrapper_1qqcb_52",Fp="_hamburgerWrapper_1qqcb_57",Up="_hamburgerOff_1qqcb_74",Hp="_nothingFound_1qqcb_82",$p="_resetSearch_1qqcb_89",qp="_controlPanel_1qqcb_101",Gp="_controlPanelAppBar_1qqcb_112",Kp="_addClassMenu_1qqcb_126",zp="_addClassBackground_1qqcb_132",Jp="_addClassPosition_1qqcb_136",Mn={menuRules:Dp,switchesRenderWrapper:Rp,menuOff:Wp,menuTitle:Bp,marginAuto:Mp,inputWidth:Np,menuWrapper:Pp,hamburgerWrapper:Fp,hamburgerOff:Up,nothingFound:Hp,resetSearch:$p,controlPanel:qp,controlPanelAppBar:Gp,addClassMenu:Kp,addClassBackground:zp,addClassPosition:Jp},kp=I=>{const{allProperties:p,allProperties:{acceptedBy:s,id:A},setUserRules:b,userRules:w,setTourStep:S,tourStep:T,isTourOpen:W,onTouchMove:un,isActive:fn}=I;return x.jsx(Js,{allProperties:p,id:p.id,isActive:fn,setUserRules:b,userRules:w,children:x.jsx(Ks,{onDoubleClick:()=>{W&&T===Mt.addScheduleByDoubleClick&&A==="TriggerScheduleBlock"&&S(Mt.openTagsMenu),W&&T===Mt.addActionPrintText&&A==="ActionPrintText"&&S(Mt.showJavascript);const j=Date.now();let K;switch(s){case"actions":K="then";break;case"conditions":K=w[s].length-1;break}const y=ae(s,w,K),on={id:A,_id:j,acceptedBy:s};K!==void 0?s==="actions"?y.actions[K].push({...on}):s==="conditions"&&y.conditions[K].push({...on}):y.triggers.push({...on}),b(y)},...I,...p,onTouchMove:un})})},Zp="_hamburgerMenu_hqnsm_8",Yp="_animate_hqnsm_21",qs={hamburgerMenu:Zp,animate:Yp};function Xp({bool:I}){return x.jsx("div",{className:`${qs.hamburgerMenu} ${I?qs.animate:""}`})}const Qp=({addClass:I,setAllBlocks:p,allBlocks:s,userRules:A,onChangeBlocks:b,setTourStep:w,tourStep:S,isTourOpen:T})=>{const{blocks:W,socket:un}=G.useContext(Dr),[fn,j]=uu(!1,"hamburgerOnOff"),[K,y]=uu({text:"",type:"triggers",index:0},"filterControlPanel"),on=(E=K.text,Q=K.type)=>{if(!W)return;let N=[...W];N=N.filter(B=>{if(!E)return!0;const{name:J}=B.getStaticData();return J&&X.I18n.t(J).toLowerCase().includes(E.toLowerCase())}),N=N.filter(B=>Q===B.getStaticData().acceptedBy),p(N)},Cn=(E,Q)=>{T&&Q===0&&S===Mt.selectTriggers&&w(Mt.addScheduleByDoubleClick),T&&Q===2&&S===Mt.selectActions&&w(Mt.addActionPrintText),y({...K,index:Q,type:["triggers","conditions","actions"][Q]}),on(K.text,["triggers","conditions","actions"][Q])},U=E=>({id:`scrollable-force-tab-${E}`,"aria-controls":`scrollable-force-tabpanel-${E}`});return G.useEffect(()=>{on()},[W]),x.jsx(En.ClickAwayListener,{mouseEvent:!1,touchEvent:"onTouchStart",onClickAway:()=>j(!0),children:x.jsxs("div",{className:X.Utils.clsx(Mn.menuWrapper,I[1035]&&Mn.addClassMenu),children:[x.jsx("div",{className:`${Mn.hamburgerWrapper} ${fn?Mn.hamburgerOff:null}`,onClick:()=>j(!fn),children:x.jsx(Xp,{bool:!fn})}),x.jsxs("div",{className:`${X.Utils.clsx(Mn.menuRules,I[1035]&&Mn.addClassBackground,I[835]&&Mn.addClassPosition)} ${fn?Mn.menuOff:null}`,children:[x.jsx("div",{className:Mn.controlPanel,children:x.jsx(En.AppBar,{className:Mn.controlPanelAppBar,position:"static",children:x.jsxs(En.Tabs,{value:K.index,onChange:Cn,children:[x.jsx(En.Tab,{className:"blocks-triggers",title:X.I18n.t("Triggers"),icon:x.jsx(Be,{iconName:"FlashOn"}),...U(0)}),x.jsx(En.Tab,{title:X.I18n.t("Conditions"),className:"blocks-conditions",icon:x.jsx(Be,{iconName:"Help"}),...U(1)}),x.jsx(En.Tab,{title:X.I18n.t("Actions"),className:"blocks-actions",icon:x.jsx(Be,{iconName:"PlayForWork"}),...U(2)})]})})}),x.jsx("div",{className:Mn.switchesRenderWrapper,children:x.jsxs("span",{children:[s.map(E=>{const{name:Q,id:N,icon:B,adapter:J}=E.getStaticData();return x.jsx(G.Fragment,{children:x.jsx(kp,{adapter:J,allProperties:E.getStaticData(),icon:B,id:N,isActive:!1,isTourOpen:T,name:Q,onTouchMove:()=>j(!0),setTourStep:w,setUserRules:b,socket:un,tourStep:S,userRules:A})},N)}),!s.length&&x.jsxs("div",{className:Mn.nothingFound,children:[X.I18n.t("Nothing found"),"...",x.jsx("div",{className:Mn.resetSearch,onClick:()=>{y({...K,text:""}),on("")},children:X.I18n.t("reset search")})]})]})}),x.jsx("div",{className:X.Utils.clsx(Mn.menuTitle,Mn.marginAuto)}),x.jsx(F_,{className:Mn.inputWidth,fullWidth:!0,customValue:!0,value:K.text,size:"small",autoComplete:"off",label:X.I18n.t("search"),variant:"outlined",onChange:E=>{y({...K,text:E}),on(E)}})]})]})})};let iu=[];const f0=({code:I,onChange:p,themeName:s,themeType:A,theme:b,setTourStep:w,tourStep:S,isTourOpen:T,command:W,scriptId:un,changed:fn,running:j})=>{var tn;const{blocks:K,socket:y,setOnUpdate:on,setOnDebugMessage:Cn,setEnableSimulation:U}=G.useContext(Dr),[E,Q]=G.useState([]),[N,B]=G.useState(Us(I)),[J,xn]=G.useState(""),[_n,hn]=G.useState(!1);G.useEffect(()=>{let M,Rn;const pn=(ht,cn)=>{ht===`${M}.alive`&&Rn!==(cn==null?void 0:cn.val)&&(Rn=!!(cn!=null&&cn.val),Rn&&M&&(y==null||y.sendTo(M.replace(/^system\.adapter\./,""),"rulesOn",un)))},Yn=(ht,cn)=>{var yn,Nt;y&&M!==((yn=cn==null?void 0:cn.common)==null?void 0:yn.engine)&&(M&&(y.unsubscribeState(`${M}.alive`,pn),Rn&&y.sendTo(M.replace(/^system\.adapter\./,""),"rulesOn",un)),M=(Nt=cn==null?void 0:cn.common)==null?void 0:Nt.engine,M&&M&&y.subscribeState(`${M}.alive`,pn))},it=(ht,cn)=>{if(cn)try{const yn=JSON.parse(cn.val),Nt=Date.now();if(yn.ruleId===un&&Nt-yn.ts<1e3){const ut=[...iu,{blockId:yn.blockId,data:yn.data,ts:yn.ts}];ut.length>200&&ut.splice(0,200-ut.length);for(let kt=ut.length-1;kt>=0;kt--)if(ut[kt].ts{var cn;M=(cn=ht==null?void 0:ht.common)==null?void 0:cn.engine,y.subscribeObject(un,Yn),M&&(y.subscribeState(`${M}.alive`,pn),y.subscribeState(`${M.replace(/^system\.adapter\./,"")}.debug.rules`,it))}),function(){y==null||y.unsubscribeState(un,pn),M&&(y==null||y.unsubscribeObject(`${M}.alive`,Yn),Rn&&(y==null||y.sendTo(M.replace(/^system\.adapter\./,""),"rulesOff",un)),y==null||y.unsubscribeState(`${M.replace(/^system\.adapter\./,"")}.debug.rules`,it))}},[]),G.useEffect(()=>{U(!fn&&j)},[fn,j,U]),G.useEffect(()=>{W&&(xn(W),_n||hn(!0))},[W]),G.useEffect(()=>{const M=Us(I);JSON.stringify(M)!==JSON.stringify(N)&&(B(M),on(!0))},[I]),G.useEffect(()=>{document.getElementsByTagName("HTML")[0].className=s||"blue"},[s]);const In=G.useCallback(M=>{B(M),K&&p(U_(M,K))},[K,p]),Sn=G.useRef(null),[$,V]=G.useState({835:!1,1035:!1});return G.useEffect(()=>{Sn.current&&(Sn.current.clientWidth<=1035&&V({835:!1,1035:!0}),Sn.current.clientWidth<=835&&V({1035:!0,835:!0}),Sn.current.clientWidth>1035&&V({835:!1,1035:!1}))},[((tn=Sn.current)==null?void 0:tn.clientWidth)||0]),!K||!y?null:x.jsxs("div",{className:Vi.wrapperRules,ref:Sn,children:[x.jsx(sp,{allBlocks:E,socket:y}),_n?J==="export"?x.jsx(H_,{scriptId:un,themeType:A,onClose:()=>hn(!1),text:JSON.stringify(N,null,2)}):x.jsx($_,{themeType:A,onClose:M=>{hn(!1),M&&In(JSON.parse(M))}}):null,x.jsxs("div",{className:X.Utils.clsx(Vi.rootWrapper,$[835]&&Vi.addClass),children:[x.jsx(Qp,{setAllBlocks:Q,allBlocks:E,userRules:N,onChangeBlocks:In,setTourStep:w,tourStep:S,addClass:$,isTourOpen:T}),x.jsx(ru,{socket:y,setUserRules:In,userRules:N,isTourOpen:T,setTourStep:w,tourStep:S,name:`${X.I18n.t("when")}...`,typeBlock:"triggers",iconName:"FlashOn",size:$[835],themeType:A,themeName:s,theme:b}),x.jsx(ru,{socket:y,setUserRules:In,isTourOpen:T,setTourStep:w,tourStep:S,userRules:N,name:`...${X.I18n.t("and")}...`,typeBlock:"conditions",iconName:"Help",nameAdditionally:X.I18n.t("or"),additionally:!0,border:!0,size:$[835],themeType:A,themeName:s,theme:b}),x.jsx(ru,{socket:y,setUserRules:In,isTourOpen:T,setTourStep:w,tourStep:S,userRules:N,name:`...${X.I18n.t("then")}`,typeBlock:"actions",iconName:"PlayForWork",nameAdditionally:X.I18n.t("else"),additionally:!0,size:$[835],themeType:A,themeName:s,theme:b})]})]},"rulesEditor")};export{f0 as default}; diff --git a/admin/assets/index-D12hwRdg.js b/admin/assets/index-D12hwRdg.js deleted file mode 100644 index febf1447d..000000000 --- a/admin/assets/index-D12hwRdg.js +++ /dev/null @@ -1,930 +0,0 @@ -import{c as U,j as Q,o as Pe,a as YM,b as vM,d as bM,P as S}from"./createSvgIcon-BQT-7-GS.js";import{i as f,R as M}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as j,S as cn,c as Ne,I as Oe,b as nt,L as uL,D as NN,C as LN,a5 as lL,a6 as Z,a7 as NL,a8 as LL,a9 as gL,aa as jL,P as QM,ab as yL,ac as TL,ad as dL,ae as DL,af as hL,ag as UM,ah as zL,ai as wL,aj as CL,ak as IL,al as pL,am as AL,an as mL,ao as OL,ap as EL,R as B,aq as fL,ar as xL,as as _L,at as $M,au as PM,av as SL,aw as WM,V as kL,ax as YL,ay as vL,az as bL,aA as BM,aB as QL,aC as UL,aD as $L,G as PL,a as Pi}from"./index-CuCs5aLs.js";import{c as ir,g as WL}from"./_commonjsHelpers-Cpj98o6Y.js";import{u as BL}from"./useTheme-DF6qfrtI.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";const un=U(Q.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add"),JL=U(Q.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack"),RL=U(Q.jsx("path",{d:"m10 17 5-5-5-5z"}),"ArrowRight"),FL=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 11h-3v3.75c0 1.24-1.01 2.25-2.25 2.25S8.5 17.99 8.5 16.75s1.01-2.25 2.25-2.25c.46 0 .89.14 1.25.38V11h4zm-3-4V3.5L18.5 9z"}),"AudioFile"),GL=U([Q.jsx("path",{d:"M16.5 12h-9c-.55 0-1 .45-1 1v1h11v-1c0-.55-.45-1-1-1M7.25 8.5h4v2h-4zm5.5 0h4v2h-4z"},"0"),Q.jsx("path",{d:"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-1 15h-1.5v-1.5h-11V17H5v-3.83c0-.66.25-1.26.65-1.72V9c0-1.1.9-2 2-2H11c.37 0 .72.12 1 .32.28-.2.63-.32 1-.32h3.35c1.1 0 2 .9 2 2v2.45c.4.46.65 1.06.65 1.72z"},"1")],"BedroomParent"),HL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2"}),"Bookmark"),VL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2m0 15-5-2.18L7 18V5h10z"}),"BookmarkBorder"),ZL=U(Q.jsx("path",{d:"M22 24H2v-4h20zM13.06 5.19l3.75 3.75L7.75 18H4v-3.75zm4.82 2.68-3.75-3.75 1.83-1.83c.39-.39 1.02-.39 1.41 0l2.34 2.34c.39.39.39 1.02 0 1.41z"}),"BorderColor"),XL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4"),KL=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6"}),"Brightness5"),ca=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness6"),qL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7"),eg=U(Q.jsx("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build"),tg=U(Q.jsx("path",{d:"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m0 18H4V8h16z"}),"CalendarToday"),ua=U(Q.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"}),"Code"),sg=U(Q.jsx("path",{d:"m20.71 5.63-2.34-2.34a.996.996 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42M6.92 19 5 17.08l8.06-8.06 1.92 1.92z"}),"Colorize"),ig=U(Q.jsx("path",{d:"m13.7826 15.1719 2.1213-2.1213 5.9963 5.9962-2.1213 2.1213zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49c-1.17-1.17-3.07-1.17-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21"}),"Construction"),rg=U(Q.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy"),gN=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2m-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3z"}),"CreateNewFolder"),og=U(Q.jsx("path",{d:"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2z"}),"Crop"),ng=U(Q.jsx("path",{d:"M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7m17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4z"}),"DataObject"),Kr=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 16H8v-2h8zm0-4H8v-2h8zm-3-5V3.5L18.5 9z"}),"Description"),ag=U(Q.jsx("path",{d:"M18.41 5.8 17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83M6.21 18H5v-1.21l8.66-8.66 1.21 1.21zM11 20l4-4h6v4z"}),"DriveFileRenameOutline"),mi=U(Q.jsx("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit"),Mg=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error"),cg=U(Q.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore"),ug=U(Q.jsx("path",{d:"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3"}),"FindInPage"),lg=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen"),Ng=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m-2.06 11L15 15.28 12.06 17l.78-3.33-2.59-2.24 3.41-.29L15 8l1.34 3.14 3.41.29-2.59 2.24z"}),"FolderSpecial"),Lg=U(Q.jsx("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-4.05 16.5-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13z"}),"FontDownload"),gg=U(Q.jsx("path",{d:"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"}),"FormatItalic"),jg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Image"),la=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),jN=U(Q.jsx("path",{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm7 7V3.5L18.5 9z"}),"InsertDriveFile"),yg=U(Q.jsx("path",{d:"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"}),"KeyboardReturn"),yN=U(Q.jsx("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link"),Tg=U(Q.jsx("path",{d:"M3 13h2v-2H3zm0 4h2v-2H3zm0-8h2V7H3zm4 4h14v-2H7zm0 4h14v-2H7zM7 7v2h14V7z"}),"List"),dg=U(Q.jsx("path",{d:"M19 5v14H5V5zm1.1-2H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9M11 7h6v2h-6zm0 4h6v2h-6zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7z"}),"ListAlt"),Dg=U(Q.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-5 14h-2V9h-2V7h4z"}),"LooksOne"),hg=U(Q.jsx("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3z"}),"MusicNote"),zg=U(Q.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),Na=U(Q.jsx("path",{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonOutlined"),wg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Photo"),Sr=U(Q.jsx("path",{d:"M5 4v2h14V4zm0 10h4v6h6v-6h4l-7-7z"}),"Publish"),TN=U(Q.jsx("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh"),La=U(Q.jsx("path",{d:"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7m-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1s1.8.3 2.5 1zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2M8 18H6v-2h2zm3.5 0h-2v-2h2zm3.5 0h-2v-2h2z"}),"Router"),Cg=U(Q.jsx("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"SaveAlt"),ln=U(Q.jsx("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings"),kr=U(Q.jsx("path",{d:"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2m-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69s.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69"}),"SettingsApplications"),Ig=U(Q.jsx("path",{d:"m3.5 18.49 6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z"}),"ShowChart"),ga=U(Q.jsx("path",{d:"M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m3.61 6.34c1.07 0 1.93.86 1.93 1.93s-.86 1.93-1.93 1.93-1.93-.86-1.93-1.93c-.01-1.07.86-1.93 1.93-1.93m-6-1.58c1.3 0 2.36 1.06 2.36 2.36s-1.06 2.36-2.36 2.36-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36m0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68M11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09"}),"SupervisedUserCircle"),pg=U(Q.jsx("path",{d:"M2.5 4v3h5v12h3V7h5V4zm19 5h-9v3h3v7h3v-7h3z"}),"TextFields"),Ag=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFileOutlined"),mg=U(Q.jsx("path",{d:"M16 13h-3V3h-2v10H8l4 4zM4 19v2h16v-2z"}),"VerticalAlignBottom"),Og=U(Q.jsx("path",{d:"M8 11h3v10h2V11h3l-4-4zM4 3v2h16V3z"}),"VerticalAlignTop"),Eg=U(Q.jsx("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11z"}),"Videocam"),fg=U(Q.jsx("path",{d:"M14.67 5v14H9.33V5zm1 14H21V5h-5.33zm-7.34 0V5H3v14z"}),"ViewColumn"),xg=U(Q.jsx("path",{d:"M4 15h16v-2H4zm0 4h16v-2H4zm0-8h16V9H4zm0-6v2h16V5z"}),"ViewHeadline"),_g=U(Q.jsx("path",{d:"M14.67 5v6.5H9.33V5zm1 6.5H21V5h-5.33zm-1 7.5v-6.5H9.33V19zm1-6.5V19H21v-6.5zm-7.34 0H3V19h5.33zm0-1V5H3v6.5z"}),"ViewModule"),Sg=U(Q.jsx("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility"),kg=U(Q.jsx("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning"),Qs=U(Q.jsx("path",{d:"m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9m8 8 3 3 3-3c-1.65-1.66-4.34-1.66-6 0m-4-4 2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13"}),"Wifi"),rr=U(Q.jsx("path",{d:"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53zM2 3.05 5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0"}),"WifiOff"),Oo=11/23/100;function JM(s){const e={r:0,g:0,b:0};if(s.length===7)e.r=parseInt(s.substring(1,3),16),e.g=parseInt(s.substring(3,5),16),e.b=parseInt(s.substring(5,7),16);else if(s.length===4){const t=s[1],i=s[2],r=s[3];e.r=parseInt(t+t,16),e.g=parseInt(i+i,16),e.b=parseInt(r+r,16)}return e}function Yg(s){return`#${Math.round(s.r).toString(16)}${Math.round(s.g).toString(16)}${Math.round(s.b).toString(16)}`}function vg(s,e,t){const i=JM(s),r=JM(e);return i.r+=r.r*(.05+Oo*(t-1)),i.g+=r.g*(.05+Oo*(t-1)),i.b+=r.b*(.05+Oo*(t-1)),Yg(i)}function RM(s,e){const t={};for(let i=1;i<=24;i++)t[`elevation${i}`]={backgroundColor:vg(s,e,i)};return t}function bg(s,e){var n,a,c,l,N,u,L,g,y,T,d;let t,i;s==="dark"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#121212","#fff")},t={name:s,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="blue"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="colored"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#151d21","#fff")},t={name:s,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):s==="PT"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):s==="DX"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(i={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(a=(n=t.palette)==null?void 0:n.primary)==null?void 0:a.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:YM[300],dark:YM[400]});const r=vM(t),o=r.palette;return vM(r,{...e||void 0,components:{...i,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(c=o.grey)==null?void 0:c[300],color:o.getContrastText&&((l=o.grey)!=null&&l[300])?o.getContrastText(o.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(N=o.text)==null?void 0:N.primary,borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(u=o.action)==null?void 0:u.disabledBackground}`},"&:hover":{borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:bM(((L=o.text)==null?void 0:L.primary)||"",((g=o.action)==null?void 0:g.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(y=o.text)==null?void 0:y.primary,"&:hover":{backgroundColor:bM(((T=o.text)==null?void 0:T.primary)||"",((d=o.action)==null?void 0:d.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function Qg(){let s,e;const t=new Promise((i,r)=>{s=i,e=r});return t.resolve=s,t.reject=e,t}function Nn(s){return(s==null?void 0:s.rows.map(e=>e.value).filter(e=>!!e))??[]}function Tt(s){return s!=null&&s.startsWith("system.host.")||(s=`system.host.${s}`),s}function ui(s){return s!=null&&s.startsWith("system.host.")&&(s=s.substring(12)),s}function FM(s){return new Promise(e=>{setTimeout(e,s)})}function or(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}var rt;(function(s){s[s.CONNECTING=0]="CONNECTING",s[s.CONNECTED=1]="CONNECTED",s[s.OBJECTS_LOADED=2]="OBJECTS_LOADED",s[s.READY=3]="READY"})(rt||(rt={}));var Ie;(function(s){s.PERMISSION_ERROR="permissionError",s.NOT_CONNECTED="notConnectedError",s.TIMEOUT="timeout",s.NOT_ADMIN="Allowed only in admin",s.NOT_SUPPORTED="Not supported"})(Ie||(Ie={}));const W3e=Ie.PERMISSION_ERROR;Ie.NOT_CONNECTED;const Ug=["material","echarts","vis"];class ze{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=Qg();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let i=1;i<=30;i++){if(window.io||window.iob)return e();await FM(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,i=(this.props.protocol||window.location.protocol).replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),ze.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a.pop(),Ug.includes(a[a.length-1])&&a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}`:`${i}://${e}`;return this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",n=>{window.addEventListener("storage",this.onAccessTokenUpdated);const a=ze.readTokens();if(a&&!a.owner){const c=Date.now();this.saveTokens({access_token:a.access_token,refresh_token:a.refresh_token,expires_in:Math.round((a.expires_in.getTime()-c)/1e3),refresh_token_expires_in:Math.round((a.refresh_token_expires_in.getTime()-c)/1e3),token_type:"Bearer"},a.stayLoggedIn)}this.onReadyDone=!1,n!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(c=>{const[l,N,u]=c.version.split(".");parseInt(l,10)*1e4+parseInt(N,10)*100+parseInt(u,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(g,y)=>this.onPreConnect(g,y))}).catch(c=>this.onError({message:c.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(c,l)=>{this.onPreConnect(c,l)})}),this._socket.on("reconnect",()=>{var n,a;this.onReadyDone=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(c=>c(!0)))}),this._socket.on("disconnect",()=>{var n,a;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.CONNECTING),this.onConnectionHandlers.forEach(c=>c(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a;n==null?a="":typeof n.toString=="function"?a=n.toString():(a=JSON.stringify(n),console.error(`Received strange error: ${a}`)),a.includes("User not authorized")?this.authenticate():a.includes("websocket error")?(console.error(`Socket Error => reload: ${n}`),window.location.reload()):console.error(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>{setTimeout(()=>this.objectChange(n,a),0)}),this._socket.on("stateChange",(n,a)=>{setTimeout(()=>this.stateChange(n,a),0)}),this._socket.on("im",(n,a,c)=>{setTimeout(()=>this.instanceMessage(n,a,c),0)}),this._socket.on("fileChange",(n,a,c)=>{setTimeout(()=>this.fileChange(n,a,c),0)}),this._socket.on("cmdStdout",(n,a)=>{var c;(c=this.onCmdStdoutHandler)==null||c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;(c=this.onCmdStderrHandler)==null||c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;(c=this.onCmdExitHandler)==null||c.call(this,n,a)}),Promise.resolve()}onPreConnect(e,t){var i,r;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(o=>console.error(`Cannot load data: ${o}`)):(r=(i=this.props).onProgress)==null||r.call(i,rt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(o=>o(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[i,r,o,n,a]=e.split(";"),c=new Date(r);return c.getTime(){if(e.key==="iob_tokens"){const t=ze.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,i)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):i?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(i=>{if(i.ok)return i.json();throw new Error("Cannot refresh access token")}).then(i=>{if(i.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${i.access_token}`),this.saveTokens(i,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(i.access_token);else throw new Error("Cannot get access token")}).catch(i=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${i}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(i),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const r=JSON.parse(t);if(e{r?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,i)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,i))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>{i?t(i):e(r||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(i=>console.error(`Cannot load data: ${i}`)),this.loaded)return;await FM(ze.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,i,r,o,n,a,c,l;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(N){this.onError(`Cannot read user permissions: ${N}`);return}try{this.props.admin5only&&!ze.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(N){this.onError(`Cannot read system config: ${N}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(i=(t=this.props).onLanguage)==null||i.call(t,this.systemLang),this.loaded=!0,(o=(r=this.props).onProgress)==null||o.call(r,rt.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.onReadyDone||(this.onReadyDone=!0,(l=(c=this.props).onReady)==null||l.call(c,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,i,r;e.length===3?[t,i,r]=e:([t,r]=e,i=!1);let o;if(Array.isArray(t)?o=t:o=[t],typeof r!="function")throw new Error("The state change handler must be a function!");const n=[];for(let a=0;aa.includes("*"))){let a;for(let c=0;cconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const a=await(ze.isWeb()?this.getStates(o):this.getForeignStates(o));if(a)for(const[c,l]of Object.entries(a)){const N=r(c,l);N instanceof Promise&&N.catch(u=>console.error(`Cannot call state change handler: ${u}`))}}catch(a){console.error(`Cannot getState "${o.join(", ")}": ${a.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var o;let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let n=0;n{try{const N=l(e,t,i);N instanceof Promise&&N.catch(u=>console.error(`Cannot call object change handler: ${u}`))}catch(N){console.error(`Error by callback of objectChange: ${N}`)}});if(r){const a=(n=(o=this.props).onObjectChange)==null?void 0:n.call(o,e,t);a instanceof Promise&&a.catch(c=>console.error(`Cannot call object change handler: ${c}`))}}stateChange(e,t){for(const i of Object.values(this.statesSubscribes))if(i.reg.test(e))for(const r of i.cbs)try{const o=r(e,t??null);o instanceof Promise&&o.catch(n=>console.error(`Cannot call state change handler: ${n}`))}catch(o){console.error(`Error by callback of stateChanged: ${o}`)}}instanceMessage(e,t,i){var r;(r=this._instanceSubscriptions[t])==null||r.forEach(o=>{if(o.messageType===e){const n=o.callback(i,t,e);n instanceof Promise&&n.catch(a=>console.error(`Cannot call instance message handler: ${a}`))}})}fileChange(e,t,i){for(const r of Object.values(this.filesSubscribes))if(r.regId.test(e)&&r.regFilePattern.test(t))for(const o of r.cbs)try{o(e,t,i)}catch(n){console.error(`Error by callback of fileChange: ${n}`)}}async subscribeFiles(e,t,i){if(typeof i!="function")throw new Error("The state change handler must be a function!");let r;Array.isArray(t)?r=t:r=[t];const o=[];for(let n=0;n{const u={elapsed:!1,clearTimeout:()=>{}};let L;i!==!1&&(L=setTimeout(()=>{u.elapsed=!0,r==null||r(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(Ie.TIMEOUT))},i??this.props.cmdTimeout),u.clearTimeout=()=>{clearTimeout(L)});try{await a(l,N,u)}catch(g){e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(g.toString()))}});return e&&(this._promises[e]=c),c}resetCache(e,t){t?Object.keys(this._promises).filter(i=>i.startsWith(e)).forEach(i=>{delete this._promises[i]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getStates",e,(r,o)=>{this.states=o??{},r?i(r):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(r,o)=>{r?i(r):t(o)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>{r?i(r):t(o)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setBinaryState",e,t,o=>{o?r(o):i()})}})}setState(e,t,i){return typeof i=="boolean"&&(t={val:t,ack:i}),this.request({commandTimeout:!1,executor:(r,o)=>{if(e&&e===this.ignoreState){let n;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?n=t:n={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=n,this.statesSubscribes[e])for(const a of this.statesSubscribes[e].cbs)try{const c=a(e,n);c instanceof Promise&&c.catch(l=>console.error(`Cannot call state change handler: ${l}`))}catch(c){console.error(`Error by callback of stateChanged: ${c}`)}r();return}this._socket.emit("setState",e,t,n=>{n?o(n):r()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{if(!e&&this.objects){i(this.objects);return}this._socket.emit(ze.isWeb()?"getObjects":"getAllObjects",(o,n)=>{var a,c;t||(c=(a=this.props).onProgress)==null||c.call(a,rt.OBJECTS_LOADED),o?r(o):(this.objects=n??{},i(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjects",e,(r,o)=>{r?i(r):t(o)})}})}_subscribe(e){var t,i;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("subscribeObjects",r),Object.keys(this.objectsSubscribes).forEach(o=>this._socket.emit("subscribeObjects",o)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("subscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("subscribeFiles",n,a)})}else if(!e&&this.subscribed){this.subscribed=!1,(i=this.props.autoSubscribes)!=null&&i.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("unsubscribeObjects",r),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("unsubscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("unsubscribeFiles",n,a)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("requireLog",e,r=>{r?i(r):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObject",e,{maintenance:t},o=>{o?r(o):i()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObjects",e,{maintenance:t},o=>{o?r(o):i()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(r,o)=>{r?i(r):t(o)})}})}sendTo(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendTo",e,t,i,o=>{r(o)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("extendObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(o,n)=>{if(o)r(o);else{const a={};if(n)for(let c=0;c{i=i||"",r=r||"香",this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(a);else{const l={};if(c&&c.rows)for(let N=0;N{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>{var o;i?t(i):e((o=r.rows)==null?void 0:o.map(n=>n.value).filter(n=>!!n))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>{o?r(o):i(n)})}})}readFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit(i?"readFile64":"readFile",e,t,(n,a,c)=>{n?o(n):r({file:a,mimeType:c})})}})}writeFile64(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>{n?o(n):r()});else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>{a?o(a):r()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o?r(o):i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o?r(o):i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n?o(n):r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n?o(n):r()})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c?n(c):o())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let i=await this.getObject("system.config");i??={},i.common??={},i.native??={},t(i)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>{r?i(r):(o??={},o.common??={},o.native??={},t(o))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>{r?i(r):t(o??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>{o?r(o):i(n)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>{o?r(o):i(n)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>{o?r(o):i({values:n,sessionId:c,step:a})})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(r):t({version:o,serverName:n})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(i,r)=>{i?t(i):e(r)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>{o?r(o):i(!!n)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,i)=>{e(i)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var i;const t=await this.getObject("system.meta.uuid");e((i=t==null?void 0:t.native)==null?void 0:i.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>{o?r(o):i(n)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=e?`system.adapter.${e}.`:"system.adapter.",o=`${r}香`,n=await this.getObjectViewSystem("instance",r,o),a=Object.values(n);i(e?a.filter(c=>c.common.name===e):a)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),o=Object.values(r);i(e?o.filter(n=>n.common.name===e):o)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",i=>{i?t(i):e(null)})}})}subscribeOnInstance(e,t,i,r){return this.request({commandTimeout:!1,executor:(o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(a):c&&(c.error?n(c.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c)))})}})}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(this.request({commandTimeout:!1,executor:(N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>L?u(L):N(g))}}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>!!a.find(c=>c)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:i=>(this._socket.emit("log",e,t),i(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function $g(s,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(s.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(s.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(s.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(r=>r.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:s,type:t}}function Pg(s){var i,r,o,n;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((r=(i=s.native)==null?void 0:i.hardware)!=null&&r.networkInterfaces){const a=(n=(o=s.native)==null?void 0:o.hardware)==null?void 0:n.networkInterfaces;Object.keys(a).forEach(c=>{a[c].forEach(l=>{l.family!=="IPv6"?e.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv4"}):t.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class B3e extends ze{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var r;const i=await this.getObject("system.certificates");(r=i==null?void 0:i.native)!=null&&r.certificates?t(Object.entries(i.native.certificates).map(([o,n])=>$g(o,n)).filter(o=>!!o)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>{i(r)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,r=>{i(r)})}})}upgradeController(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:i},n=>{const a=n;a.error?o(a.error):r(a.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("updateLicenses",e,t,(o,n)=>{o?r(o):i(n)})}})}upgradeOsPackages(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!i},o=>{r(o)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("readLogs",e,(r,o)=>{r&&i(r),t(o)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>{r&&i(r),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o&&r(o),i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o&&r(o),i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n&&o(n),r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n&&o(n),r()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}renameGroup(e,t,i){return this.request({commandTimeout:!1,executor:async r=>{const o=await this.getGroups(!0),n=o.filter(c=>c._id.startsWith(`${e}.`));for(const c of n){const l=c._id,N=t+c._id.substring(e.length);c._id=N,await this.setObject(N,c),await this.delObject(l)}const a=o.find(c=>c._id===e);if(a){const c=a._id;a._id=t,i!==void 0&&(a.common??={},a.common.name=i),await this.setObject(t,a),await this.delObject(c)}r()}})}getHostInfo(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfo"'):a?r(a):o('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfoShort"'):a?r(a):o('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,i,r){return this.request({cacheKey:`repository_${e}`,forceUpdate:i,commandTimeout:r,executor:(o,n,a)=>{this._socket.emit("sendToHost",e,"getRepository",t,c=>{a.elapsed||(a.clearTimeout(),c===Ie.PERMISSION_ERROR?n('May not read "getRepository"'):c?o(c):n('Cannot read "getRepository"'))})}})}getInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getInstalled"'):a?r(a):o('Cannot read "getInstalled"'))})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c&&n(c),o())})}})}readBaseSettings(e){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,o=>{r.elapsed||(r.clearTimeout(),o===Ie.PERMISSION_ERROR?i('May not read "BaseSettings"'):o?o.error?i(new Error(o.error)):t(o):i('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,n=>{o.elapsed||(o.clearTimeout(),n===Ie.PERMISSION_ERROR?r('May not write "BaseSettings"'):n?i(n):r('Cannot write "BaseSettings"'))})}})}restartController(e){return e=ui(e),this.request({executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{r.elapsed||(r.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=ui(e),this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getDiagData",t,n=>{o.elapsed||(o.clearTimeout(),i(n||null))})}})}changePassword(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("changePassword",e,t,n=>{o.elapsed||(o.clearTimeout(),n&&r(n),i())})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getHostByIp(e,t){return e=ui(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(i,r,o)=>{this._socket.emit("getHostByIp",e,(n,a)=>{if(o.elapsed)return;o.clearTimeout();const{IPs4:c,IPs6:l}=Pg(a);i([...c,...l])})}})}encrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("encrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}decrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("decrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}chmodFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chmodFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}chownFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chownFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}clearNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,i)=>{this._socket.emit("getIsEasyModeStrict",(r,o)=>{i.elapsed||(i.clearTimeout(),r&&t(r),e(!!o))})}})}getEasyMode(){return this.request({executor:(e,t,i)=>{this._socket.emit("getEasyMode",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(new Error(r)):e(o))})}})}getRatings(e){return this.request({executor:(t,i,r)=>{this._socket.emit("getRatings",!!e,(o,n)=>{r.elapsed||(r.clearTimeout(),o?i(new Error(o)):t(n))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(i,r,o)=>{try{const n=await fetch("./session",{signal:t.signal});if(o.elapsed)return;o.clearTimeout();const a=await n.json();i(a)}catch(n){r(`getCurrentSession: ${n}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,i)=>{this._socket.emit("getCurrentInstance",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(r):e(o))})}})}getAdapterInstances(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`instances_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapterInstances",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getAdapters(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`adapter_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapters",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactAdapters",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactInstances",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactInstalled",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactInstalled"'):a?r(a):o('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,i){return e=Tt(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactRepository",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactRepository"'):a?r(a):o('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactHosts",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactSystemRepositories",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}}const X=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Xt="9.29.0",ie=globalThis;function qr(){return eo(ie),ie}function eo(s){const e=s.__SENTRY__=s.__SENTRY__||{};return e.version=e.version||Xt,e[Xt]=e[Xt]||{}}function to(s,e,t=ie){const i=t.__SENTRY__=t.__SENTRY__||{},r=i[Xt]=i[Xt]||{};return r[s]||(r[s]=e())}const dN=Object.prototype.toString;function ja(s){switch(dN.call(s)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return bt(s,Error)}}function Vs(s,e){return dN.call(s)===`[object ${e}]`}function DN(s){return Vs(s,"ErrorEvent")}function GM(s){return Vs(s,"DOMError")}function Wg(s){return Vs(s,"DOMException")}function ht(s){return Vs(s,"String")}function ya(s){return typeof s=="object"&&s!==null&&"__sentry_template_string__"in s&&"__sentry_template_values__"in s}function Ta(s){return s===null||ya(s)||typeof s!="object"&&typeof s!="function"}function _i(s){return Vs(s,"Object")}function so(s){return typeof Event<"u"&&bt(s,Event)}function Bg(s){return typeof Element<"u"&&bt(s,Element)}function Jg(s){return Vs(s,"RegExp")}function io(s){return!!(s!=null&&s.then&&typeof s.then=="function")}function Rg(s){return _i(s)&&"nativeEvent"in s&&"preventDefault"in s&&"stopPropagation"in s}function bt(s,e){try{return s instanceof e}catch{return!1}}function hN(s){return!!(typeof s=="object"&&s!==null&&(s.__isVue||s._isVue))}function Fg(s){return typeof Request<"u"&&bt(s,Request)}const da=ie,Gg=80;function zN(s,e={}){if(!s)return"";try{let t=s;const i=5,r=[];let o=0,n=0;const a=" > ",c=a.length;let l;const N=Array.isArray(e)?e:e.keyAttrs,u=!Array.isArray(e)&&e.maxStringLength||Gg;for(;t&&o++1&&n+r.length*c+l.length>=u));)r.push(l),n+=l.length,t=t.parentNode;return r.reverse().join(a)}catch{return""}}function Hg(s,e){const t=s,i=[];if(!(t!=null&&t.tagName))return"";if(da.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}i.push(t.tagName.toLowerCase());const r=e!=null&&e.length?e.filter(n=>t.getAttribute(n)).map(n=>[n,t.getAttribute(n)]):null;if(r!=null&&r.length)r.forEach(n=>{i.push(`[${n[0]}="${n[1]}"]`)});else{t.id&&i.push(`#${t.id}`);const n=t.className;if(n&&ht(n)){const a=n.split(/\s+/);for(const c of a)i.push(`.${c}`)}}const o=["aria-label","type","name","title","alt"];for(const n of o){const a=t.getAttribute(n);a&&i.push(`[${n}="${a}"]`)}return i.join("")}function Da(){try{return da.document.location.href}catch{return""}}function Vg(s){if(!da.HTMLElement)return null;let e=s;const t=5;for(let i=0;i{const o=Yr[r];t[r]=e[r],e[r]=o});try{return s()}finally{i.forEach(r=>{e[r]=t[r]})}}function Xg(){let s=!1;const e={enable:()=>{s=!0},disable:()=>{s=!1},isEnabled:()=>s};return X?Ln.forEach(t=>{e[t]=(...i)=>{s&&Zs(()=>{ie.console[t](`${Zg}[${t}]:`,...i)})}}):Ln.forEach(t=>{e[t]=()=>{}}),e}const R=to("logger",Xg);function vr(s,e=0){return typeof s!="string"||e===0||s.length<=e?s:`${s.slice(0,e)}...`}function HM(s,e){if(!Array.isArray(s))return"";const t=[];for(let i=0;iKg(s,i,t))}function Ue(s,e,t){if(!(e in s))return;const i=s[e];if(typeof i!="function")return;const r=t(i);typeof r=="function"&&wN(r,i);try{s[e]=r}catch{X&&R.log(`Failed to replace method "${e}" in object`,s)}}function Kt(s,e,t){try{Object.defineProperty(s,e,{value:t,writable:!0,configurable:!0})}catch{X&&R.log(`Failed to add non-enumerable property "${e}" to object`,s)}}function wN(s,e){try{const t=e.prototype||{};s.prototype=e.prototype=t,Kt(s,"__sentry_original__",e)}catch{}}function ha(s){return s.__sentry_original__}function CN(s){if(ja(s))return{message:s.message,name:s.name,stack:s.stack,...ZM(s)};if(so(s)){const e={type:s.type,target:VM(s.target),currentTarget:VM(s.currentTarget),...ZM(s)};return typeof CustomEvent<"u"&&bt(s,CustomEvent)&&(e.detail=s.detail),e}else return s}function VM(s){try{return Bg(s)?zN(s):Object.prototype.toString.call(s)}catch{return""}}function ZM(s){if(typeof s=="object"&&s!==null){const e={};for(const t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t]=s[t]);return e}else return{}}function qg(s,e=40){const t=Object.keys(CN(s));t.sort();const i=t[0];if(!i)return"[object has no keys]";if(i.length>=e)return vr(i,e);for(let r=t.length;r>0;r--){const o=t.slice(0,r).join(", ");if(!(o.length>e))return r===t.length?o:vr(o,e)}return""}function ej(){const s=ie;return s.crypto||s.msCrypto}function Je(s=ej()){let e=()=>Math.random()*16;try{if(s!=null&&s.randomUUID)return s.randomUUID().replace(/-/g,"");s!=null&&s.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return s.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function IN(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)==null?void 0:t[0]}function Vt(s){const{message:e,event_id:t}=s;if(e)return e;const i=IN(s);return i?i.type&&i.value?`${i.type}: ${i.value}`:i.type||i.value||t||"":t||""}function gn(s,e,t){const i=s.exception=s.exception||{},r=i.values=i.values||[],o=r[0]=r[0]||{};o.value||(o.value=e||""),o.type||(o.type="Error")}function Rs(s,e){const t=IN(s);if(!t)return;const i={type:"generic",handled:!0},r=t.mechanism;if(t.mechanism={...i,...r,...e},e&&"data"in e){const o={...r==null?void 0:r.data,...e.data};t.mechanism.data=o}}function XM(s){if(tj(s))return!0;try{Kt(s,"__sentry_captured__",!0)}catch{}return!1}function tj(s){try{return s.__sentry_captured__}catch{}}const pN=1e3;function Wi(){return Date.now()/pN}function sj(){const{performance:s}=ie;if(!(s!=null&&s.now))return Wi;const e=Date.now()-s.now(),t=s.timeOrigin==null?e:s.timeOrigin;return()=>(t+s.now())/pN}const zt=sj();function ij(s){const e=zt(),t={sid:Je(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>oj(t)};return s&&Fs(t,s),t}function Fs(s,e={}){if(e.user&&(!s.ipAddress&&e.user.ip_address&&(s.ipAddress=e.user.ip_address),!s.did&&!e.did&&(s.did=e.user.id||e.user.email||e.user.username)),s.timestamp=e.timestamp||zt(),e.abnormal_mechanism&&(s.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(s.ignoreDuration=e.ignoreDuration),e.sid&&(s.sid=e.sid.length===32?e.sid:Je()),e.init!==void 0&&(s.init=e.init),!s.did&&e.did&&(s.did=`${e.did}`),typeof e.started=="number"&&(s.started=e.started),s.ignoreDuration)s.duration=void 0;else if(typeof e.duration=="number")s.duration=e.duration;else{const t=s.timestamp-s.started;s.duration=t>=0?t:0}e.release&&(s.release=e.release),e.environment&&(s.environment=e.environment),!s.ipAddress&&e.ipAddress&&(s.ipAddress=e.ipAddress),!s.userAgent&&e.userAgent&&(s.userAgent=e.userAgent),typeof e.errors=="number"&&(s.errors=e.errors),e.status&&(s.status=e.status)}function rj(s,e){let t={};s.status==="ok"&&(t={status:"exited"}),Fs(s,t)}function oj(s){return{sid:`${s.sid}`,init:s.init,started:new Date(s.started*1e3).toISOString(),timestamp:new Date(s.timestamp*1e3).toISOString(),status:s.status,errors:s.errors,did:typeof s.did=="number"||typeof s.did=="string"?`${s.did}`:void 0,duration:s.duration,abnormal_mechanism:s.abnormal_mechanism,attrs:{release:s.release,environment:s.environment,ip_address:s.ipAddress,user_agent:s.userAgent}}}function Bi(s,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(s&&Object.keys(e).length===0)return s;const i={...s};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=Bi(i[r],e[r],t-1));return i}const jn="_sentrySpan";function KM(s,e){e?Kt(s,jn,e):delete s[jn]}function qM(s){return s[jn]}function ec(){return Je()}function AN(){return Je().substring(16)}const nj=100;class wt{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:ec(),sampleRand:Math.random()}}clone(){const e=new wt;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,KM(e,qM(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Fs(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,i=t instanceof wt?t.getScopeData():_i(t)?e:void 0,{tags:r,extra:o,user:n,contexts:a,level:c,fingerprint:l=[],propagationContext:N}=i||{};return this._tags={...this._tags,...r},this._extra={...this._extra,...o},this._contexts={...this._contexts,...a},n&&Object.keys(n).length&&(this._user=n),c&&(this._level=c),l.length&&(this._fingerprint=l),N&&(this._propagationContext=N),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,KM(this,void 0),this._attachments=[],this.setPropagationContext({traceId:ec(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var o;const i=typeof t=="number"?t:nj;if(i<=0)return this;const r={timestamp:Wi(),...e,message:e.message?vr(e.message,2048):e.message};return this._breadcrumbs.push(r),this._breadcrumbs.length>i&&(this._breadcrumbs=this._breadcrumbs.slice(-i),(o=this._client)==null||o.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:qM(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=Bi(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const i=(t==null?void 0:t.event_id)||Je();if(!this._client)return R.warn("No client configured on scope - will not capture exception!"),i;const r=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:i},this),i}captureMessage(e,t,i){const r=(i==null?void 0:i.event_id)||Je();if(!this._client)return R.warn("No client configured on scope - will not capture message!"),r;const o=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:o,...i,event_id:r},this),r}captureEvent(e,t){const i=(t==null?void 0:t.event_id)||Je();return this._client?(this._client.captureEvent(e,{...t,event_id:i},this),i):(R.warn("No client configured on scope - will not capture event!"),i)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function aj(){return to("defaultCurrentScope",()=>new wt)}function Mj(){return to("defaultIsolationScope",()=>new wt)}class cj{constructor(e,t){let i;e?i=e:i=new wt;let r;t?r=t:r=new wt,this._stack=[{scope:i}],this._isolationScope=r}withScope(e){const t=this._pushScope();let i;try{i=e(t)}catch(r){throw this._popScope(),r}return io(i)?i.then(r=>(this._popScope(),r),r=>{throw this._popScope(),r}):(this._popScope(),i)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Gs(){const s=qr(),e=eo(s);return e.stack=e.stack||new cj(aj(),Mj())}function uj(s){return Gs().withScope(s)}function lj(s,e){const t=Gs();return t.withScope(()=>(t.getStackTop().scope=s,e(s)))}function tc(s){return Gs().withScope(()=>s(Gs().getIsolationScope()))}function Nj(){return{withIsolationScope:tc,withScope:uj,withSetScope:lj,withSetIsolationScope:(s,e)=>tc(e),getCurrentScope:()=>Gs().getScope(),getIsolationScope:()=>Gs().getIsolationScope()}}function za(s){const e=eo(s);return e.acs?e.acs:Nj()}function Ct(){const s=qr();return za(s).getCurrentScope()}function Ji(){const s=qr();return za(s).getIsolationScope()}function Lj(){return to("globalScope",()=>new wt)}function gj(...s){const e=qr(),t=za(e);if(s.length===2){const[i,r]=s;return i?t.withSetScope(i,r):t.withScope(r)}return t.withScope(s[0])}function Ee(){return Ct().getClient()}function jj(s){const e=s.getPropagationContext(),{traceId:t,parentSpanId:i,propagationSpanId:r}=e,o={trace_id:t,span_id:r||AN()};return i&&(o.parent_span_id=i),o}const yj="sentry.source",Tj="sentry.sample_rate",dj="sentry.previous_trace_sample_rate",Dj="sentry.op",hj="sentry.origin",mN="sentry.profile_id",ON="sentry.exclusive_time",zj=0,wj=1,Cj="_sentryScope",Ij="_sentryIsolationScope";function EN(s){return{scope:s[Cj],isolationScope:s[Ij]}}function pj(s){if(typeof s=="boolean")return Number(s);const e=typeof s=="string"?parseFloat(s):s;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Aj="sentry-",mj=/^sentry-/;function Oj(s){const e=Ej(s);if(!e)return;const t=Object.entries(e).reduce((i,[r,o])=>{if(r.match(mj)){const n=r.slice(Aj.length);i[n]=o}return i},{});if(Object.keys(t).length>0)return t}function Ej(s){if(!(!s||!ht(s)&&!Array.isArray(s)))return Array.isArray(s)?s.reduce((e,t)=>{const i=sc(t);return Object.entries(i).forEach(([r,o])=>{e[r]=o}),e},{}):sc(s)}function sc(s){return s.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,i])=>(t&&i&&(e[t]=i),e),{})}const fN=1;let ic=!1;function fj(s){const{spanId:e,traceId:t,isRemote:i}=s.spanContext(),r=i?e:wa(s).parent_span_id,o=EN(s).scope,n=i?(o==null?void 0:o.getPropagationContext().propagationSpanId)||AN():e;return{parent_span_id:r,span_id:n,trace_id:t}}function xj(s){if(s&&s.length>0)return s.map(({context:{spanId:e,traceId:t,traceFlags:i,...r},attributes:o})=>({span_id:e,trace_id:t,sampled:i===fN,attributes:o,...r}))}function rc(s){return typeof s=="number"?oc(s):Array.isArray(s)?s[0]+s[1]/1e9:s instanceof Date?oc(s.getTime()):zt()}function oc(s){return s>9999999999?s/1e3:s}function wa(s){var i;if(Sj(s))return s.getSpanJSON();const{spanId:e,traceId:t}=s.spanContext();if(_j(s)){const{attributes:r,startTime:o,name:n,endTime:a,status:c,links:l}=s,N="parentSpanId"in s?s.parentSpanId:"parentSpanContext"in s?(i=s.parentSpanContext)==null?void 0:i.spanId:void 0;return{span_id:e,trace_id:t,data:r,description:n,parent_span_id:N,start_timestamp:rc(o),timestamp:rc(a)||void 0,status:Yj(c),op:r[Dj],origin:r[hj],links:xj(l)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function _j(s){const e=s;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function Sj(s){return typeof s.getSpanJSON=="function"}function kj(s){const{traceFlags:e}=s.spanContext();return e===fN}function Yj(s){if(!(!s||s.code===zj))return s.code===wj?"ok":s.message||"unknown_error"}const vj="_sentryRootSpan";function xN(s){return s[vj]||s}function nc(){ic||(Zs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),ic=!0)}const _N=50,qt="?",ac=/\(error: (.*)\)/,Mc=/captureMessage|captureException/;function SN(...s){const e=s.sort((t,i)=>t[0]-i[0]).map(t=>t[1]);return(t,i=0,r=0)=>{const o=[],n=t.split(` -`);for(let a=i;a1024)continue;const l=ac.test(c)?c.replace(ac,"$1"):c;if(!l.match(/\S*Error: /)){for(const N of e){const u=N(l);if(u){o.push(u);break}}if(o.length>=_N+r)break}}return Qj(o.slice(r))}}function bj(s){return Array.isArray(s)?SN(...s):s}function Qj(s){if(!s.length)return[];const e=Array.from(s);return/sentryWrapped/.test(nr(e).function||"")&&e.pop(),e.reverse(),Mc.test(nr(e).function||"")&&(e.pop(),Mc.test(nr(e).function||"")&&e.pop()),e.slice(0,_N).map(t=>({...t,filename:t.filename||nr(e).filename,function:t.function||qt}))}function nr(s){return s[s.length-1]||{}}const Eo="";function Qt(s){try{return!s||typeof s!="function"?Eo:s.name||Eo}catch{return Eo}}function cc(s){const e=s.exception;if(e){const t=[];try{return e.values.forEach(i=>{i.stacktrace.frames&&t.push(...i.stacktrace.frames)}),t}catch{return}}}const Ar={},uc={};function rs(s,e){Ar[s]=Ar[s]||[],Ar[s].push(e)}function os(s,e){if(!uc[s]){uc[s]=!0;try{e()}catch(t){X&&R.error(`Error while instrumenting ${s}`,t)}}}function Ke(s,e){const t=s&&Ar[s];if(t)for(const i of t)try{i(e)}catch(r){X&&R.error(`Error while triggering instrumentation handler. -Type: ${s} -Name: ${Qt(i)} -Error:`,r)}}let fo=null;function Uj(s){const e="error";rs(e,s),os(e,$j)}function $j(){fo=ie.onerror,ie.onerror=function(s,e,t,i,r){return Ke("error",{column:i,error:r,line:t,msg:s,url:e}),fo?fo.apply(this,arguments):!1},ie.onerror.__SENTRY_INSTRUMENTED__=!0}let xo=null;function Pj(s){const e="unhandledrejection";rs(e,s),os(e,Wj)}function Wj(){xo=ie.onunhandledrejection,ie.onunhandledrejection=function(s){return Ke("unhandledrejection",s),xo?xo.apply(this,arguments):!0},ie.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Bj(s){var t;if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;const e=s||((t=Ee())==null?void 0:t.getOptions());return!!e&&(e.tracesSampleRate!=null||!!e.tracesSampler)}const Ca="production",Jj=/^o(\d+)\./,Rj=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Fj(s){return s==="http"||s==="https"}function oo(s,e=!1){const{host:t,path:i,pass:r,port:o,projectId:n,protocol:a,publicKey:c}=s;return`${a}://${c}${e&&r?`:${r}`:""}@${t}${o?`:${o}`:""}/${i&&`${i}/`}${n}`}function Gj(s){const e=Rj.exec(s);if(!e){Zs(()=>{console.error(`Invalid Sentry Dsn: ${s}`)});return}const[t,i,r="",o="",n="",a=""]=e.slice(1);let c="",l=a;const N=l.split("/");if(N.length>1&&(c=N.slice(0,-1).join("/"),l=N.pop()),l){const u=l.match(/^\d+/);u&&(l=u[0])}return kN({host:o,pass:r,path:c,projectId:l,port:n,protocol:t,publicKey:i})}function kN(s){return{protocol:s.protocol,publicKey:s.publicKey||"",pass:s.pass||"",host:s.host,port:s.port||"",path:s.path||"",projectId:s.projectId}}function Hj(s){if(!X)return!0;const{port:e,projectId:t,protocol:i}=s;return["protocol","publicKey","host","projectId"].find(n=>s[n]?!1:(R.error(`Invalid Sentry Dsn: ${n} missing`),!0))?!1:t.match(/^\d+$/)?Fj(i)?e&&isNaN(parseInt(e,10))?(R.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(R.error(`Invalid Sentry Dsn: Invalid protocol ${i}`),!1):(R.error(`Invalid Sentry Dsn: Invalid projectId ${t}`),!1)}function Vj(s){const e=s.match(Jj);return e==null?void 0:e[1]}function Zj(s){const e=typeof s=="string"?Gj(s):kN(s);if(!(!e||!Hj(e)))return e}const Xj="_frozenDsc";function YN(s,e){const t=e.getOptions(),{publicKey:i,host:r}=e.getDsn()||{};let o;t.orgId?o=String(t.orgId):r&&(o=Vj(r));const n={environment:t.environment||Ca,release:t.release,public_key:i,trace_id:s,org_id:o};return e.emit("createDsc",n),n}function Kj(s,e){const t=e.getPropagationContext();return t.dsc||YN(t.traceId,s)}function qj(s){var y;const e=Ee();if(!e)return{};const t=xN(s),i=wa(t),r=i.data,o=t.spanContext().traceState,n=(o==null?void 0:o.get("sentry.sample_rate"))??r[Tj]??r[dj];function a(T){return(typeof n=="number"||typeof n=="string")&&(T.sample_rate=`${n}`),T}const c=t[Xj];if(c)return a(c);const l=o==null?void 0:o.get("sentry.dsc"),N=l&&Oj(l);if(N)return a(N);const u=YN(s.spanContext().traceId,e),L=r[yj],g=i.description;return L!=="url"&&g&&(u.transaction=g),Bj()&&(u.sampled=String(kj(t)),u.sample_rand=(o==null?void 0:o.get("sentry.sample_rand"))??((y=EN(t).scope)==null?void 0:y.getPropagationContext().sampleRand.toString())),a(u),e.emit("createDsc",u,t),u}function dt(s,e=100,t=1/0){try{return yn("",s,e,t)}catch(i){return{ERROR:`**non-serializable** (${i})`}}}function vN(s,e=3,t=100*1024){const i=dt(s,e);return iy(i)>t?vN(s,e-1,t):i}function yn(s,e,t=1/0,i=1/0,r=ry()){const[o,n]=r;if(e==null||["boolean","string"].includes(typeof e)||typeof e=="number"&&Number.isFinite(e))return e;const a=ey(s,e);if(!a.startsWith("[object "))return a;if(e.__sentry_skip_normalization__)return e;const c=typeof e.__sentry_override_normalization_depth__=="number"?e.__sentry_override_normalization_depth__:t;if(c===0)return a.replace("object ","");if(o(e))return"[Circular ~]";const l=e;if(l&&typeof l.toJSON=="function")try{const g=l.toJSON();return yn("",g,c-1,i,r)}catch{}const N=Array.isArray(e)?[]:{};let u=0;const L=CN(e);for(const g in L){if(!Object.prototype.hasOwnProperty.call(L,g))continue;if(u>=i){N[g]="[MaxProperties ~]";break}const y=L[g];N[g]=yn(g,y,c-1,i,r),u++}return n(e),N}function ey(s,e){try{if(s==="domain"&&e&&typeof e=="object"&&e._events)return"[Domain]";if(s==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&e===global)return"[Global]";if(typeof window<"u"&&e===window)return"[Window]";if(typeof document<"u"&&e===document)return"[Document]";if(hN(e))return"[VueViewModel]";if(Rg(e))return"[SyntheticEvent]";if(typeof e=="number"&&!Number.isFinite(e))return`[${e}]`;if(typeof e=="function")return`[Function: ${Qt(e)}]`;if(typeof e=="symbol")return`[${String(e)}]`;if(typeof e=="bigint")return`[BigInt: ${String(e)}]`;const t=ty(e);return/^HTML(\w*)Element$/.test(t)?`[HTMLElement: ${t}]`:`[object ${t}]`}catch(t){return`**non-serializable** (${t})`}}function ty(s){const e=Object.getPrototypeOf(s);return e!=null&&e.constructor?e.constructor.name:"null prototype"}function sy(s){return~-encodeURI(s).split(/%..|./).length}function iy(s){return sy(JSON.stringify(s))}function ry(){const s=new WeakSet;function e(i){return s.has(i)?!0:(s.add(i),!1)}function t(i){s.delete(i)}return[e,t]}function Ri(s,e=[]){return[s,e]}function oy(s,e){const[t,i]=s;return[t,[...i,e]]}function lc(s,e){const t=s[1];for(const i of t){const r=i[0].type;if(e(i,r))return!0}return!1}function Tn(s){const e=eo(ie);return e.encodePolyfill?e.encodePolyfill(s):new TextEncoder().encode(s)}function ny(s){const[e,t]=s;let i=JSON.stringify(e);function r(o){typeof i=="string"?i=typeof o=="string"?i+o:[Tn(i),o]:i.push(typeof o=="string"?Tn(o):o)}for(const o of t){const[n,a]=o;if(r(` -${JSON.stringify(n)} -`),typeof a=="string"||a instanceof Uint8Array)r(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(dt(a))}r(c)}}return typeof i=="string"?i:ay(i)}function ay(s){const e=s.reduce((r,o)=>r+o.length,0),t=new Uint8Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function My(s){const e=typeof s.data=="string"?Tn(s.data):s.data;return[{type:"attachment",length:e.length,filename:s.filename,content_type:s.contentType,attachment_type:s.attachmentType},e]}const cy={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item"};function Nc(s){return cy[s]}function bN(s){if(!(s!=null&&s.sdk))return;const{name:e,version:t}=s.sdk;return{name:e,version:t}}function uy(s,e,t,i){var o;const r=(o=s.sdkProcessingMetadata)==null?void 0:o.dynamicSamplingContext;return{event_id:s.event_id,sent_at:new Date().toISOString(),...e&&{sdk:e},...!!t&&i&&{dsn:oo(i)},...r&&{trace:r}}}function ly(s,e){return e&&(s.sdk=s.sdk||{},s.sdk.name=s.sdk.name||e.name,s.sdk.version=s.sdk.version||e.version,s.sdk.integrations=[...s.sdk.integrations||[],...e.integrations||[]],s.sdk.packages=[...s.sdk.packages||[],...e.packages||[]]),s}function Ny(s,e,t,i){const r=bN(t),o={sent_at:new Date().toISOString(),...r&&{sdk:r},...!!i&&e&&{dsn:oo(e)}},n="aggregates"in s?[{type:"sessions"},s]:[{type:"session"},s.toJSON()];return Ri(o,[n])}function Ly(s,e,t,i){const r=bN(t),o=s.type&&s.type!=="replay_event"?s.type:"event";ly(s,t==null?void 0:t.sdk);const n=uy(s,r,i,e);return delete s.sdkProcessingMetadata,Ri(n,[[{type:o},s]])}var Dt;(function(s){s[s.PENDING=0]="PENDING";const t=1;s[s.RESOLVED=t]="RESOLVED";const i=2;s[s.REJECTED=i]="REJECTED"})(Dt||(Dt={}));function es(s){return new Ut(e=>{e(s)})}function br(s){return new Ut((e,t)=>{t(s)})}class Ut{constructor(e){this._state=Dt.PENDING,this._handlers=[],this._runExecutor(e)}then(e,t){return new Ut((i,r)=>{this._handlers.push([!1,o=>{if(!e)i(o);else try{i(e(o))}catch(n){r(n)}},o=>{if(!t)r(o);else try{i(t(o))}catch(n){r(n)}}]),this._executeHandlers()})}catch(e){return this.then(t=>t,e)}finally(e){return new Ut((t,i)=>{let r,o;return this.then(n=>{o=!1,r=n,e&&e()},n=>{o=!0,r=n,e&&e()}).then(()=>{if(o){i(r);return}t(r)})})}_executeHandlers(){if(this._state===Dt.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach(t=>{t[0]||(this._state===Dt.RESOLVED&&t[1](this._value),this._state===Dt.REJECTED&&t[2](this._value),t[0]=!0)})}_runExecutor(e){const t=(o,n)=>{if(this._state===Dt.PENDING){if(io(n)){n.then(i,r);return}this._state=o,this._value=n,this._executeHandlers()}},i=o=>{t(Dt.RESOLVED,o)},r=o=>{t(Dt.REJECTED,o)};try{e(i,r)}catch(o){r(o)}}}function dn(s,e,t,i=0){return new Ut((r,o)=>{const n=s[i];if(e===null||typeof n!="function")r(e);else{const a=n({...e},t);X&&n.id&&a===null&&R.log(`Event processor "${n.id}" dropped event`),io(a)?a.then(c=>dn(s,c,t,i+1).then(r)).then(null,o):dn(s,a,t,i+1).then(r).then(null,o)}})}let ar,Lc,Mr;function gy(s){const e=ie._sentryDebugIds;if(!e)return{};const t=Object.keys(e);return Mr&&t.length===Lc||(Lc=t.length,Mr=t.reduce((i,r)=>{ar||(ar={});const o=ar[r];if(o)i[o[0]]=o[1];else{const n=s(r);for(let a=n.length-1;a>=0;a--){const c=n[a],l=c==null?void 0:c.filename,N=e[r];if(l&&N){i[l]=N,ar[r]=[l,N];break}}}return i},{})),Mr}function jy(s,e){const{fingerprint:t,span:i,breadcrumbs:r,sdkProcessingMetadata:o}=e;yy(s,e),i&&Dy(s,i),hy(s,t),Ty(s,r),dy(s,o)}function gc(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,sdkProcessingMetadata:a,breadcrumbs:c,fingerprint:l,eventProcessors:N,attachments:u,propagationContext:L,transactionName:g,span:y}=e;cr(s,"extra",t),cr(s,"tags",i),cr(s,"user",r),cr(s,"contexts",o),s.sdkProcessingMetadata=Bi(s.sdkProcessingMetadata,a,2),n&&(s.level=n),g&&(s.transactionName=g),y&&(s.span=y),c.length&&(s.breadcrumbs=[...s.breadcrumbs,...c]),l.length&&(s.fingerprint=[...s.fingerprint,...l]),N.length&&(s.eventProcessors=[...s.eventProcessors,...N]),u.length&&(s.attachments=[...s.attachments,...u]),s.propagationContext={...s.propagationContext,...L}}function cr(s,e,t){s[e]=Bi(s[e],t,1)}function yy(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,transactionName:a}=e;Object.keys(t).length&&(s.extra={...t,...s.extra}),Object.keys(i).length&&(s.tags={...i,...s.tags}),Object.keys(r).length&&(s.user={...r,...s.user}),Object.keys(o).length&&(s.contexts={...o,...s.contexts}),n&&(s.level=n),a&&s.type!=="transaction"&&(s.transaction=a)}function Ty(s,e){const t=[...s.breadcrumbs||[],...e];s.breadcrumbs=t.length?t:void 0}function dy(s,e){s.sdkProcessingMetadata={...s.sdkProcessingMetadata,...e}}function Dy(s,e){s.contexts={trace:fj(e),...s.contexts},s.sdkProcessingMetadata={dynamicSamplingContext:qj(e),...s.sdkProcessingMetadata};const t=xN(e),i=wa(t).description;i&&!s.transaction&&s.type==="transaction"&&(s.transaction=i)}function hy(s,e){s.fingerprint=s.fingerprint?Array.isArray(s.fingerprint)?s.fingerprint:[s.fingerprint]:[],e&&(s.fingerprint=s.fingerprint.concat(e)),s.fingerprint.length||delete s.fingerprint}function zy(s,e,t,i,r,o){const{normalizeDepth:n=3,normalizeMaxBreadth:a=1e3}=s,c={...e,event_id:e.event_id||t.event_id||Je(),timestamp:e.timestamp||Wi()},l=t.integrations||s.integrations.map(d=>d.name);wy(c,s),py(c,l),r&&r.emit("applyFrameMetadata",e),e.type===void 0&&Cy(c,s.stackParser);const N=my(i,t.captureContext);t.mechanism&&Rs(c,t.mechanism);const u=r?r.getEventProcessors():[],L=Lj().getScopeData();if(o){const d=o.getScopeData();gc(L,d)}if(N){const d=N.getScopeData();gc(L,d)}const g=[...t.attachments||[],...L.attachments];g.length&&(t.attachments=g),jy(c,L);const y=[...u,...L.eventProcessors];return dn(y,c,t).then(d=>(d&&Iy(d),typeof n=="number"&&n>0?Ay(d,n,a):d))}function wy(s,e){const{environment:t,release:i,dist:r,maxValueLength:o=250}=e;s.environment=s.environment||t||Ca,!s.release&&i&&(s.release=i),!s.dist&&r&&(s.dist=r);const n=s.request;n!=null&&n.url&&(n.url=vr(n.url,o))}function Cy(s,e){var i,r;const t=gy(e);(r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.filename&&(c.debug_id=t[c.filename])})})}function Iy(s){var i,r;const e={};if((r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.debug_id&&(c.abs_path?e[c.abs_path]=c.debug_id:c.filename&&(e[c.filename]=c.debug_id),delete c.debug_id)})}),Object.keys(e).length===0)return;s.debug_meta=s.debug_meta||{},s.debug_meta.images=s.debug_meta.images||[];const t=s.debug_meta.images;Object.entries(e).forEach(([o,n])=>{t.push({type:"sourcemap",code_file:o,debug_id:n})})}function py(s,e){e.length>0&&(s.sdk=s.sdk||{},s.sdk.integrations=[...s.sdk.integrations||[],...e])}function Ay(s,e,t){var r,o;if(!s)return null;const i={...s,...s.breadcrumbs&&{breadcrumbs:s.breadcrumbs.map(n=>({...n,...n.data&&{data:dt(n.data,e,t)}}))},...s.user&&{user:dt(s.user,e,t)},...s.contexts&&{contexts:dt(s.contexts,e,t)},...s.extra&&{extra:dt(s.extra,e,t)}};return(r=s.contexts)!=null&&r.trace&&i.contexts&&(i.contexts.trace=s.contexts.trace,s.contexts.trace.data&&(i.contexts.trace.data=dt(s.contexts.trace.data,e,t))),s.spans&&(i.spans=s.spans.map(n=>({...n,...n.data&&{data:dt(n.data,e,t)}}))),(o=s.contexts)!=null&&o.flags&&i.contexts&&(i.contexts.flags=dt(s.contexts.flags,3,t)),i}function my(s,e){if(!e)return s;const t=s?s.clone():new wt;return t.update(e),t}function Oy(s,e){return Ct().captureException(s,void 0)}function QN(s,e){return Ct().captureEvent(s,e)}function jc(s){const e=Ji(),t=Ct(),{userAgent:i}=ie.navigator||{},r=ij({user:t.getUser()||e.getUser(),...i&&{userAgent:i},...s}),o=e.getSession();return(o==null?void 0:o.status)==="ok"&&Fs(o,{status:"exited"}),UN(),e.setSession(r),r}function UN(){const s=Ji(),t=Ct().getSession()||s.getSession();t&&rj(t),$N(),s.setSession()}function $N(){const s=Ji(),e=Ee(),t=s.getSession();t&&e&&e.captureSession(t)}function yc(s=!1){if(s){UN();return}$N()}const Ey="7";function fy(s){const e=s.protocol?`${s.protocol}:`:"",t=s.port?`:${s.port}`:"";return`${e}//${s.host}${t}${s.path?`/${s.path}`:""}/api/`}function xy(s){return`${fy(s)}${s.projectId}/envelope/`}function _y(s,e){const t={sentry_version:Ey};return s.publicKey&&(t.sentry_key=s.publicKey),e&&(t.sentry_client=`${e.name}/${e.version}`),new URLSearchParams(t).toString()}function Sy(s,e,t){return e||`${xy(s)}?${_y(s,t)}`}const Tc=[];function ky(s){const e={};return s.forEach(t=>{const{name:i}=t,r=e[i];r&&!r.isDefaultInstance&&t.isDefaultInstance||(e[i]=t)}),Object.values(e)}function Yy(s){const e=s.defaultIntegrations||[],t=s.integrations;e.forEach(r=>{r.isDefaultInstance=!0});let i;if(Array.isArray(t))i=[...e,...t];else if(typeof t=="function"){const r=t(e);i=Array.isArray(r)?r:[r]}else i=e;return ky(i)}function vy(s,e){const t={};return e.forEach(i=>{i&&PN(s,i,t)}),t}function dc(s,e){for(const t of e)t!=null&&t.afterAllSetup&&t.afterAllSetup(s)}function PN(s,e,t){if(t[e.name]){X&&R.log(`Integration skipped because it was already installed: ${e.name}`);return}if(t[e.name]=e,Tc.indexOf(e.name)===-1&&typeof e.setupOnce=="function"&&(e.setupOnce(),Tc.push(e.name)),e.setup&&typeof e.setup=="function"&&e.setup(s),typeof e.preprocessEvent=="function"){const i=e.preprocessEvent.bind(e);s.on("preprocessEvent",(r,o)=>i(r,o,s))}if(typeof e.processEvent=="function"){const i=e.processEvent.bind(e),r=Object.assign((o,n)=>i(o,n,s),{id:e.name});s.addEventProcessor(r)}X&&R.log(`Integration installed: ${e.name}`)}function WN(s){const e=[];s.message&&e.push(s.message);try{const t=s.exception.values[s.exception.values.length-1];t!=null&&t.value&&(e.push(t.value),t.type&&e.push(`${t.type}: ${t.value}`))}catch{}return e}function by(s){var c;const{trace_id:e,parent_span_id:t,span_id:i,status:r,origin:o,data:n,op:a}=((c=s.contexts)==null?void 0:c.trace)??{};return{data:n??{},description:s.transaction,op:a,parent_span_id:t,span_id:i??"",start_timestamp:s.start_timestamp??0,status:r,timestamp:s.timestamp,trace_id:e??"",origin:o,profile_id:n==null?void 0:n[mN],exclusive_time:n==null?void 0:n[ON],measurements:s.measurements,is_segment:!0}}function Qy(s){return{type:"transaction",timestamp:s.timestamp,start_timestamp:s.start_timestamp,transaction:s.description,contexts:{trace:{trace_id:s.trace_id,span_id:s.span_id,parent_span_id:s.parent_span_id,op:s.op,status:s.status,origin:s.origin,data:{...s.data,...s.profile_id&&{[mN]:s.profile_id},...s.exclusive_time&&{[ON]:s.exclusive_time}}}},measurements:s.measurements}}function Uy(s,e,t){const i=[{type:"client_report"},{timestamp:Wi(),discarded_events:s}];return Ri(e?{dsn:e}:{},[i])}const Dc="Not capturing exception because it's already been captured.",hc="Discarded session because of missing or non-string release",BN=Symbol.for("SentryInternalError"),JN=Symbol.for("SentryDoNotSendEventError");function mr(s){return{message:s,[BN]:!0}}function _o(s){return{message:s,[JN]:!0}}function zc(s){return!!s&&typeof s=="object"&&BN in s}function wc(s){return!!s&&typeof s=="object"&&JN in s}class $y{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=Zj(e.dsn):X&&R.warn("No DSN provided, client will not send events."),this._dsn){const t=Sy(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,i){const r=Je();if(XM(e))return X&&R.log(Dc),r;const o={event_id:r,...t};return this._process(this.eventFromException(e,o).then(n=>this._captureEvent(n,o,i))),o.event_id}captureMessage(e,t,i,r){const o={event_id:Je(),...i},n=ya(e)?e:String(e),a=Ta(e)?this.eventFromMessage(n,t,o):this.eventFromException(e,o);return this._process(a.then(c=>this._captureEvent(c,o,r))),o.event_id}captureEvent(e,t,i){const r=Je();if(t!=null&&t.originalException&&XM(t.originalException))return X&&R.log(Dc),r;const o={event_id:r,...t},n=e.sdkProcessingMetadata||{},a=n.capturedSpanScope,c=n.capturedSpanIsolationScope;return this._process(this._captureEvent(e,o,a||i,c)),o.event_id}captureSession(e){this.sendSession(e),Fs(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit("flush"),this._isClientDoneProcessing(e).then(i=>t.flush(e).then(r=>i&&r))):es(!0)}close(e){return this.flush(e).then(t=>(this.getOptions().enabled=!1,this.emit("close"),t))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];PN(this,e,this._integrations),t||dc(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let i=Ly(e,this._dsn,this._options._metadata,this._options.tunnel);for(const o of t.attachments||[])i=oy(i,My(o));const r=this.sendEnvelope(i);r&&r.then(o=>this.emit("afterSendEvent",e,o),null)}sendSession(e){const{release:t,environment:i=Ca}=this._options;if("aggregates"in e){const o=e.attrs||{};if(!o.release&&!t){X&&R.warn(hc);return}o.release=o.release||t,o.environment=o.environment||i,e.attrs=o}else{if(!e.release&&!t){X&&R.warn(hc);return}e.release=e.release||t,e.environment=e.environment||i}this.emit("beforeSendSession",e);const r=Ny(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(r)}recordDroppedEvent(e,t,i=1){if(this._options.sendClientReports){const r=`${e}:${t}`;X&&R.log(`Recording outcome: "${r}"${i>1?` (${i} times)`:""}`),this._outcomes[r]=(this._outcomes[r]||0)+i}}on(e,t){const i=this._hooks[e]=this._hooks[e]||[];return i.push(t),()=>{const r=i.indexOf(t);r>-1&&i.splice(r,1)}}emit(e,...t){const i=this._hooks[e];i&&i.forEach(r=>r(...t))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,t=>(X&&R.error("Error while sending envelope:",t),t)):(X&&R.error("Transport disabled"),es({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=vy(this,e),dc(this,e)}_updateSessionFromEvent(e,t){var c;let i=t.level==="fatal",r=!1;const o=(c=t.exception)==null?void 0:c.values;if(o){r=!0;for(const l of o){const N=l.mechanism;if((N==null?void 0:N.handled)===!1){i=!0;break}}}const n=e.status==="ok";(n&&e.errors===0||n&&i)&&(Fs(e,{...i&&{status:"crashed"},errors:e.errors||Number(r||i)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Ut(t=>{let i=0;const r=1,o=setInterval(()=>{this._numProcessing==0?(clearInterval(o),t(!0)):(i+=r,e&&i>=e&&(clearInterval(o),t(!1)))},r)})}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,i,r){const o=this.getOptions(),n=Object.keys(this._integrations);return!t.integrations&&(n!=null&&n.length)&&(t.integrations=n),this.emit("preprocessEvent",e,t),e.type||r.setLastEventId(e.event_id||t.event_id),zy(o,e,t,i,this,r).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,t),a.contexts={trace:jj(i),...a.contexts};const c=Kj(this,i);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(e,t={},i=Ct(),r=Ji()){return X&&Dn(e)&&R.log(`Captured error event \`${WN(e)[0]||""}\``),this._processEvent(e,t,i,r).then(o=>o.event_id,o=>{X&&(wc(o)?R.log(o.message):zc(o)?R.warn(o.message):R.warn(o))})}_processEvent(e,t,i,r){const o=this.getOptions(),{sampleRate:n}=o,a=RN(e),c=Dn(e),l=e.type||"error",N=`before send for type \`${l}\``,u=typeof n>"u"?void 0:pj(n);if(c&&typeof u=="number"&&Math.random()>u)return this.recordDroppedEvent("sample_rate","error"),br(_o(`Discarding event because it's not included in the random sample (sampling rate = ${n})`));const L=l==="replay_event"?"replay":l;return this._prepareEvent(e,t,i,r).then(g=>{if(g===null)throw this.recordDroppedEvent("event_processor",L),_o("An event processor returned `null`, will not send event.");if(t.data&&t.data.__sentry__===!0)return g;const T=Wy(this,o,g,t);return Py(T,N)}).then(g=>{var d;if(g===null){if(this.recordDroppedEvent("before_send",L),a){const I=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",I)}throw _o(`${N} returned \`null\`, will not send event.`)}const y=i.getSession()||r.getSession();if(c&&y&&this._updateSessionFromEvent(y,g),a){const z=((d=g.sdkProcessingMetadata)==null?void 0:d.spanCountBeforeProcessing)||0,I=g.spans?g.spans.length:0,C=z-I;C>0&&this.recordDroppedEvent("before_send","span",C)}const T=g.transaction_info;if(a&&T&&g.transaction!==e.transaction){const z="custom";g.transaction_info={...T,source:z}}return this.sendEvent(g,t),g}).then(null,g=>{throw wc(g)||zc(g)?g:(this.captureException(g,{data:{__sentry__:!0},originalException:g}),mr(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${g}`))})}_process(e){this._numProcessing++,e.then(t=>(this._numProcessing--,t),t=>(this._numProcessing--,t))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([t,i])=>{const[r,o]=t.split(":");return{reason:r,category:o,quantity:i}})}_flushOutcomes(){X&&R.log("Flushing outcomes...");const e=this._clearOutcomes();if(e.length===0){X&&R.log("No outcomes to send");return}if(!this._dsn){X&&R.log("No dsn provided, will not send outcomes");return}X&&R.log("Sending outcomes:",e);const t=Uy(e,this._options.tunnel&&oo(this._dsn));this.sendEnvelope(t)}}function Py(s,e){const t=`${e} must return \`null\` or a valid event.`;if(io(s))return s.then(i=>{if(!_i(i)&&i!==null)throw mr(t);return i},i=>{throw mr(`${e} rejected with ${i}`)});if(!_i(s)&&s!==null)throw mr(t);return s}function Wy(s,e,t,i){const{beforeSend:r,beforeSendTransaction:o,beforeSendSpan:n}=e;let a=t;if(Dn(a)&&r)return r(a,i);if(RN(a)){if(n){const c=n(by(a));if(c?a=Bi(t,Qy(c)):nc(),a.spans){const l=[];for(const N of a.spans){const u=n(N);u?l.push(u):(nc(),l.push(N))}a.spans=l}}if(o){if(a.spans){const c=a.spans.length;a.sdkProcessingMetadata={...t.sdkProcessingMetadata,spanCountBeforeProcessing:c}}return o(a,i)}}return a}function Dn(s){return s.type===void 0}function RN(s){return s.type==="transaction"}function By(s){return[{type:"log",item_count:s.length,content_type:"application/vnd.sentry.items.log+json"},{items:s}]}function Jy(s,e,t,i){const r={};return e!=null&&e.sdk&&(r.sdk={name:e.sdk.name,version:e.sdk.version}),t&&i&&(r.dsn=oo(i)),Ri(r,[By(s)])}ie._sentryClientToLogBufferMap=new WeakMap;function So(s,e){var o;const t=Ry(s)??[];if(t.length===0)return;const i=s.getOptions(),r=Jy(t,i._metadata,i.tunnel,s.getDsn());(o=ie._sentryClientToLogBufferMap)==null||o.set(s,[]),s.emit("flushLogs"),s.sendEnvelope(r)}function Ry(s){var e;return(e=ie._sentryClientToLogBufferMap)==null?void 0:e.get(s)}function Fy(s,e){e.debug===!0&&(X?R.enable():Zs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Ct().update(e.initialScope);const i=new s(e);return Gy(i),i.init(),i}function Gy(s){Ct().setClient(s)}const FN=Symbol.for("SentryBufferFullError");function Hy(s){const e=[];function t(){return s===void 0||e.lengthi(a)).then(null,()=>i(a).then(null,()=>{})),a}function o(n){return new Ut((a,c)=>{let l=e.length;if(!l)return a(!0);const N=setTimeout(()=>{n&&n>0&&a(!1)},n);e.forEach(u=>{es(u).then(()=>{--l||(clearTimeout(N),a(!0))},c)})})}return{$:e,add:r,drain:o}}const Vy=60*1e3;function Zy(s,e=Date.now()){const t=parseInt(`${s}`,10);if(!isNaN(t))return t*1e3;const i=Date.parse(`${s}`);return isNaN(i)?Vy:i-e}function Xy(s,e){return s[e]||s.all||0}function Ky(s,e,t=Date.now()){return Xy(s,e)>t}function qy(s,{statusCode:e,headers:t},i=Date.now()){const r={...s},o=t==null?void 0:t["x-sentry-rate-limits"],n=t==null?void 0:t["retry-after"];if(o)for(const a of o.trim().split(",")){const[c,l,,,N]=a.split(":",5),u=parseInt(c,10),L=(isNaN(u)?60:u)*1e3;if(!l)r.all=i+L;else for(const g of l.split(";"))g==="metric_bucket"?(!N||N.split(";").includes("custom"))&&(r[g]=i+L):r[g]=i+L}else n?r.all=i+Zy(n,i):e===429&&(r.all=i+60*1e3);return r}const eT=64;function tT(s,e,t=Hy(s.bufferSize||eT)){let i={};const r=n=>t.drain(n);function o(n){const a=[];if(lc(n,(u,L)=>{const g=Nc(L);Ky(i,g)?s.recordDroppedEvent("ratelimit_backoff",g):a.push(u)}),a.length===0)return es({});const c=Ri(n[0],a),l=u=>{lc(c,(L,g)=>{s.recordDroppedEvent(u,Nc(g))})},N=()=>e({body:ny(c)}).then(u=>(u.statusCode!==void 0&&(u.statusCode<200||u.statusCode>=300)&&X&&R.warn(`Sentry responded with status code ${u.statusCode} to sent event.`),i=qy(i,u),u),u=>{throw l("network_error"),X&&R.error("Encountered error running transport request:",u),u});return t.add(N).then(u=>u,u=>{if(u===FN)return X&&R.error("Skipped sending event because buffer is full."),l("queue_overflow"),es({});throw u})}return{send:o,flush:r}}function sT(s){var e;((e=s.user)==null?void 0:e.ip_address)===void 0&&(s.user={...s.user,ip_address:"{{auto}}"})}function iT(s){var e;"aggregates"in s?((e=s.attrs)==null?void 0:e.ip_address)===void 0&&(s.attrs={...s.attrs,ip_address:"{{auto}}"}):s.ipAddress===void 0&&(s.ipAddress="{{auto}}")}function rT(s,e,t=[e],i="npm"){const r=s._metadata||{};r.sdk||(r.sdk={name:`sentry.javascript.${e}`,packages:t.map(o=>({name:`${i}:@sentry/${o}`,version:Xt})),version:Xt}),s._metadata=r}const oT=100;function ts(s,e){const t=Ee(),i=Ji();if(!t)return;const{beforeBreadcrumb:r=null,maxBreadcrumbs:o=oT}=t.getOptions();if(o<=0)return;const a={timestamp:Wi(),...s},c=r?Zs(()=>r(a,e)):a;c!==null&&(t.emit&&t.emit("beforeAddBreadcrumb",c,e),i.addBreadcrumb(c,o))}let Cc;const nT="FunctionToString",Ic=new WeakMap,aT=()=>({name:nT,setupOnce(){Cc=Function.prototype.toString;try{Function.prototype.toString=function(...s){const e=ha(this),t=Ic.has(Ee())&&e!==void 0?e:this;return Cc.apply(t,s)}}catch{}},setup(s){Ic.set(s,!0)}}),MT=aT,cT=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],uT="EventFilters",lT=(s={})=>{let e;return{name:uT,setup(t){const i=t.getOptions();e=pc(s,i)},processEvent(t,i,r){if(!e){const o=r.getOptions();e=pc(s,o)}return LT(t,e)?null:t}}},NT=(s={})=>({...lT(s),name:"InboundFilters"});function pc(s={},e={}){return{allowUrls:[...s.allowUrls||[],...e.allowUrls||[]],denyUrls:[...s.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...s.ignoreErrors||[],...e.ignoreErrors||[],...s.disableErrorDefaults?[]:cT],ignoreTransactions:[...s.ignoreTransactions||[],...e.ignoreTransactions||[]]}}function LT(s,e){if(s.type){if(s.type==="transaction"&&jT(s,e.ignoreTransactions))return X&&R.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${Vt(s)}`),!0}else{if(gT(s,e.ignoreErrors))return X&&R.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${Vt(s)}`),!0;if(DT(s))return X&&R.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${Vt(s)}`),!0;if(yT(s,e.denyUrls))return X&&R.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${Vt(s)}. -Url: ${Qr(s)}`),!0;if(!TT(s,e.allowUrls))return X&&R.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${Vt(s)}. -Url: ${Qr(s)}`),!0}return!1}function gT(s,e){return e!=null&&e.length?WN(s).some(t=>ro(t,e)):!1}function jT(s,e){if(!(e!=null&&e.length))return!1;const t=s.transaction;return t?ro(t,e):!1}function yT(s,e){if(!(e!=null&&e.length))return!1;const t=Qr(s);return t?ro(t,e):!1}function TT(s,e){if(!(e!=null&&e.length))return!0;const t=Qr(s);return t?ro(t,e):!0}function dT(s=[]){for(let e=s.length-1;e>=0;e--){const t=s[e];if(t&&t.filename!==""&&t.filename!=="[native code]")return t.filename||null}return null}function Qr(s){var e,t;try{const i=[...((e=s.exception)==null?void 0:e.values)??[]].reverse().find(o=>{var n,a,c;return((n=o.mechanism)==null?void 0:n.parent_id)===void 0&&((c=(a=o.stacktrace)==null?void 0:a.frames)==null?void 0:c.length)}),r=(t=i==null?void 0:i.stacktrace)==null?void 0:t.frames;return r?dT(r):null}catch{return X&&R.error(`Cannot extract url for event ${Vt(s)}`),null}}function DT(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)!=null&&t.length?!s.message&&!s.exception.values.some(i=>i.stacktrace||i.type&&i.type!=="Error"||i.value):!1}function hT(s,e,t,i,r,o){var a;if(!((a=r.exception)!=null&&a.values)||!o||!bt(o.originalException,Error))return;const n=r.exception.values.length>0?r.exception.values[r.exception.values.length-1]:void 0;n&&(r.exception.values=hn(s,e,i,o.originalException,t,r.exception.values,n,0))}function hn(s,e,t,i,r,o,n,a){if(o.length>=t+1)return o;let c=[...o];if(bt(i[r],Error)){Ac(n,a);const l=s(e,i[r]),N=c.length;mc(l,r,N,a),c=hn(s,e,t,i[r],r,[l,...c],l,N)}return Array.isArray(i.errors)&&i.errors.forEach((l,N)=>{if(bt(l,Error)){Ac(n,a);const u=s(e,l),L=c.length;mc(u,`errors[${N}]`,L,a),c=hn(s,e,t,l,r,[u,...c],u,L)}}),c}function Ac(s,e){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,...s.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function mc(s,e,t,i){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,type:"chained",source:e,exception_id:t,parent_id:i}}function zT(s){const e="console";rs(e,s),os(e,wT)}function wT(){"console"in ie&&Ln.forEach(function(s){s in ie.console&&Ue(ie.console,s,function(e){return Yr[s]=e,function(...t){Ke("console",{args:t,level:s});const r=Yr[s];r==null||r.apply(ie.console,t)}})})}function CT(s){return s==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(s)?s:"log"}const IT="Dedupe",pT=()=>{let s;return{name:IT,processEvent(e){if(e.type)return e;try{if(AT(e,s))return X&&R.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return s=e}}},GN=pT;function AT(s,e){return e?!!(mT(s,e)||OT(s,e)):!1}function mT(s,e){const t=s.message,i=e.message;return!(!t&&!i||t&&!i||!t&&i||t!==i||!VN(s,e)||!HN(s,e))}function OT(s,e){const t=Oc(e),i=Oc(s);return!(!t||!i||t.type!==i.type||t.value!==i.value||!VN(s,e)||!HN(s,e))}function HN(s,e){let t=cc(s),i=cc(e);if(!t&&!i)return!0;if(t&&!i||!t&&i||(t=t,i=i,i.length!==t.length))return!1;for(let r=0;r=400&&s<500?"warning":s>=500?"error":void 0}const Si=ie;function ET(){return"history"in Si&&!!Si.history}function fT(){if(!("fetch"in Si))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function zn(s){return s&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(s.toString())}function xT(){var t;if(typeof EdgeRuntime=="string")return!0;if(!fT())return!1;if(zn(Si.fetch))return!0;let s=!1;const e=Si.document;if(e&&typeof e.createElement=="function")try{const i=e.createElement("iframe");i.hidden=!0,e.head.appendChild(i),(t=i.contentWindow)!=null&&t.fetch&&(s=zn(i.contentWindow.fetch)),e.head.removeChild(i)}catch(i){X&&R.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",i)}return s}function _T(s,e){const t="fetch";rs(t,s),os(t,()=>ST(void 0,e))}function ST(s,e=!1){e&&!xT()||Ue(ie,"fetch",function(t){return function(...i){const r=new Error,{method:o,url:n}=kT(i),a={args:i,fetchData:{method:o,url:n},startTimestamp:zt()*1e3,virtualError:r,headers:YT(i)};return Ke("fetch",{...a}),t.apply(ie,i).then(async c=>(Ke("fetch",{...a,endTimestamp:zt()*1e3,response:c}),c),c=>{if(Ke("fetch",{...a,endTimestamp:zt()*1e3,error:c}),ja(c)&&c.stack===void 0&&(c.stack=r.stack,Kt(c,"framesToPop",1)),c instanceof TypeError&&(c.message==="Failed to fetch"||c.message==="Load failed"||c.message==="NetworkError when attempting to fetch resource."))try{const l=new URL(a.fetchData.url);c.message=`${c.message} (${l.host})`}catch{}throw c})}})}function wn(s,e){return!!s&&typeof s=="object"&&!!s[e]}function Ec(s){return typeof s=="string"?s:s?wn(s,"url")?s.url:s.toString?s.toString():"":""}function kT(s){if(s.length===0)return{method:"GET",url:""};if(s.length===2){const[t,i]=s;return{url:Ec(t),method:wn(i,"method")?String(i.method).toUpperCase():"GET"}}const e=s[0];return{url:Ec(e),method:wn(e,"method")?String(e.method).toUpperCase():"GET"}}function YT(s){const[e,t]=s;try{if(typeof t=="object"&&t!==null&&"headers"in t&&t.headers)return new Headers(t.headers);if(Fg(e))return new Headers(e.headers)}catch{}}function vT(){return"npm"}const Le=ie;let Cn=0;function XN(){return Cn>0}function bT(){Cn++,setTimeout(()=>{Cn--})}function Hs(s,e={}){function t(r){return typeof r=="function"}if(!t(s))return s;try{const r=s.__sentry_wrapped__;if(r)return typeof r=="function"?r:s;if(ha(s))return s}catch{return s}const i=function(...r){try{const o=r.map(n=>Hs(n,e));return s.apply(this,o)}catch(o){throw bT(),gj(n=>{n.addEventProcessor(a=>(e.mechanism&&(gn(a,void 0),Rs(a,e.mechanism)),a.extra={...a.extra,arguments:r},a)),Oy(o)}),o}};try{for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&(i[r]=s[r])}catch{}wN(i,s),Kt(s,"__sentry_wrapped__",i);try{Object.getOwnPropertyDescriptor(i,"name").configurable&&Object.defineProperty(i,"name",{get(){return s.name}})}catch{}return i}function QT(){const s=Da(),{referrer:e}=Le.document||{},{userAgent:t}=Le.navigator||{},i={...e&&{Referer:e},...t&&{"User-Agent":t}};return{url:s,headers:i}}function Ia(s,e){const t=pa(s,e),i={type:BT(e),value:JT(e)};return t.length&&(i.stacktrace={frames:t}),i.type===void 0&&i.value===""&&(i.value="Unrecoverable error caught"),i}function UT(s,e,t,i){const r=Ee(),o=r==null?void 0:r.getOptions().normalizeDepth,n=VT(e),a={__serialized__:vN(e,o)};if(n)return{exception:{values:[Ia(s,n)]},extra:a};const c={exception:{values:[{type:so(e)?e.constructor.name:i?"UnhandledRejection":"Error",value:GT(e,{isUnhandledRejection:i})}]},extra:a};if(t){const l=pa(s,t);l.length&&(c.exception.values[0].stacktrace={frames:l})}return c}function Yo(s,e){return{exception:{values:[Ia(s,e)]}}}function pa(s,e){const t=e.stacktrace||e.stack||"",i=PT(e),r=WT(e);try{return s(t,i,r)}catch{}return[]}const $T=/Minified React error #\d+;/i;function PT(s){return s&&$T.test(s.message)?1:0}function WT(s){return typeof s.framesToPop=="number"?s.framesToPop:0}function KN(s){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?s instanceof WebAssembly.Exception:!1}function BT(s){const e=s==null?void 0:s.name;return!e&&KN(s)?s.message&&Array.isArray(s.message)&&s.message.length==2?s.message[0]:"WebAssembly.Exception":e}function JT(s){const e=s==null?void 0:s.message;return KN(s)?Array.isArray(s.message)&&s.message.length==2?s.message[1]:"wasm exception":e?e.error&&typeof e.error.message=="string"?e.error.message:e:"No error message"}function RT(s,e,t,i){const r=(t==null?void 0:t.syntheticException)||void 0,o=Aa(s,e,r,i);return Rs(o),o.level="error",t!=null&&t.event_id&&(o.event_id=t.event_id),es(o)}function FT(s,e,t="info",i,r){const o=(i==null?void 0:i.syntheticException)||void 0,n=In(s,e,o,r);return n.level=t,i!=null&&i.event_id&&(n.event_id=i.event_id),es(n)}function Aa(s,e,t,i,r){let o;if(DN(e)&&e.error)return Yo(s,e.error);if(GM(e)||Wg(e)){const n=e;if("stack"in e)o=Yo(s,e);else{const a=n.name||(GM(n)?"DOMError":"DOMException"),c=n.message?`${a}: ${n.message}`:a;o=In(s,c,t,i),gn(o,c)}return"code"in n&&(o.tags={...o.tags,"DOMException.code":`${n.code}`}),o}return ja(e)?Yo(s,e):_i(e)||so(e)?(o=UT(s,e,t,r),Rs(o,{synthetic:!0}),o):(o=In(s,e,t,i),gn(o,`${e}`),Rs(o,{synthetic:!0}),o)}function In(s,e,t,i){const r={};if(i&&t){const o=pa(s,t);o.length&&(r.exception={values:[{value:e,stacktrace:{frames:o}}]}),Rs(r,{synthetic:!0})}if(ya(e)){const{__sentry_template_string__:o,__sentry_template_values__:n}=e;return r.logentry={message:o,params:n},r}return r.message=e,r}function GT(s,{isUnhandledRejection:e}){const t=qg(s),i=e?"promise rejection":"exception";return DN(s)?`Event \`ErrorEvent\` captured as ${i} with message \`${s.message}\``:so(s)?`Event \`${HT(s)}\` (type=${s.type}) captured as ${i}`:`Object captured as ${i} with keys: ${t}`}function HT(s){try{const e=Object.getPrototypeOf(s);return e?e.constructor.name:void 0}catch{}}function VT(s){for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const t=s[e];if(t instanceof Error)return t}}const ZT=5e3;class XT extends $y{constructor(e){const t=KT(e),i=Le.SENTRY_SDK_SOURCE||vT();rT(t,"browser",["browser"],i),super(t);const{sendDefaultPii:r,sendClientReports:o,_experiments:n}=this._options,a=n==null?void 0:n.enableLogs;Le.document&&(o||a)&&Le.document.addEventListener("visibilitychange",()=>{Le.document.visibilityState==="hidden"&&(o&&this._flushOutcomes(),a&&So(this))}),a&&(this.on("flush",()=>{So(this)}),this.on("afterCaptureLog",()=>{this._logFlushIdleTimeout&&clearTimeout(this._logFlushIdleTimeout),this._logFlushIdleTimeout=setTimeout(()=>{So(this)},ZT)})),r&&(this.on("postprocessEvent",sT),this.on("beforeSendSession",iT))}eventFromException(e,t){return RT(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",i){return FT(this._options.stackParser,e,t,i,this._options.attachStacktrace)}_prepareEvent(e,t,i,r){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,i,r)}}function KT(s){var e;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(e=Le.SENTRY_RELEASE)==null?void 0:e.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...s}}const qT=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ae=ie,ed=1e3;let fc,pn,An;function td(s){const e="dom";rs(e,s),os(e,sd)}function sd(){if(!Ae.document)return;const s=Ke.bind(null,"dom"),e=xc(s,!0);Ae.document.addEventListener("click",e,!1),Ae.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach(t=>{var o,n;const r=(o=Ae[t])==null?void 0:o.prototype;(n=r==null?void 0:r.hasOwnProperty)!=null&&n.call(r,"addEventListener")&&(Ue(r,"addEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},L=u[c]=u[c]||{refCount:0};if(!L.handler){const g=xc(s);L.handler=g,a.call(this,c,g,N)}L.refCount++}catch{}return a.call(this,c,l,N)}}),Ue(r,"removeEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__||{},L=u[c];L&&(L.refCount--,L.refCount<=0&&(a.call(this,c,L.handler,N),L.handler=void 0,delete u[c]),Object.keys(u).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return a.call(this,c,l,N)}}))})}function id(s){if(s.type!==pn)return!1;try{if(!s.target||s.target._sentryId!==An)return!1}catch{}return!0}function rd(s,e){return s!=="keypress"?!1:e!=null&&e.tagName?!(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable):!0}function xc(s,e=!1){return t=>{if(!t||t._sentryCaptured)return;const i=od(t);if(rd(t.type,i))return;Kt(t,"_sentryCaptured",!0),i&&!i._sentryId&&Kt(i,"_sentryId",Je());const r=t.type==="keypress"?"input":t.type;id(t)||(s({event:t,name:r,global:e}),pn=t.type,An=i?i._sentryId:void 0),clearTimeout(fc),fc=Ae.setTimeout(()=>{An=void 0,pn=void 0},ed)}}function od(s){try{return s.target}catch{return null}}let ur;function qN(s){const e="history";rs(e,s),os(e,nd)}function nd(){if(Ae.addEventListener("popstate",()=>{const e=Ae.location.href,t=ur;if(ur=e,t===e)return;Ke("history",{from:t,to:e})}),!ET())return;function s(e){return function(...t){const i=t.length>2?t[2]:void 0;if(i){const r=ur,o=ad(String(i));if(ur=o,r===o)return e.apply(this,t);Ke("history",{from:r,to:o})}return e.apply(this,t)}}Ue(Ae.history,"pushState",s),Ue(Ae.history,"replaceState",s)}function ad(s){try{return new URL(s,Ae.location.origin).toString()}catch{return s}}const Or={};function Md(s){const e=Or[s];if(e)return e;let t=Ae[s];if(zn(t))return Or[s]=t.bind(Ae);const i=Ae.document;if(i&&typeof i.createElement=="function")try{const r=i.createElement("iframe");r.hidden=!0,i.head.appendChild(r);const o=r.contentWindow;o!=null&&o[s]&&(t=o[s]),i.head.removeChild(r)}catch(r){qT&&R.warn(`Could not create sandbox iframe for ${s} check, bailing to window.${s}: `,r)}return t&&(Or[s]=t.bind(Ae))}function _c(s){Or[s]=void 0}const hi="__sentry_xhr_v3__";function cd(s){const e="xhr";rs(e,s),os(e,ud)}function ud(){if(!Ae.XMLHttpRequest)return;const s=XMLHttpRequest.prototype;s.open=new Proxy(s.open,{apply(e,t,i){const r=new Error,o=zt()*1e3,n=ht(i[0])?i[0].toUpperCase():void 0,a=ld(i[1]);if(!n||!a)return e.apply(t,i);t[hi]={method:n,url:a,request_headers:{}},n==="POST"&&a.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const c=()=>{const l=t[hi];if(l&&t.readyState===4){try{l.status_code=t.status}catch{}const N={endTimestamp:zt()*1e3,startTimestamp:o,xhr:t,virtualError:r};Ke("xhr",N)}};return"onreadystatechange"in t&&typeof t.onreadystatechange=="function"?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply(l,N,u){return c(),l.apply(N,u)}}):t.addEventListener("readystatechange",c),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(l,N,u){const[L,g]=u,y=N[hi];return y&&ht(L)&&ht(g)&&(y.request_headers[L.toLowerCase()]=g),l.apply(N,u)}}),e.apply(t,i)}}),s.send=new Proxy(s.send,{apply(e,t,i){const r=t[hi];if(!r)return e.apply(t,i);i[0]!==void 0&&(r.body=i[0]);const o={startTimestamp:zt()*1e3,xhr:t};return Ke("xhr",o),e.apply(t,i)}})}function ld(s){if(ht(s))return s;try{return s.toString()}catch{}}function Nd(s,e=Md("fetch")){let t=0,i=0;function r(o){const n=o.body.length;t+=n,i++;const a={body:o.body,method:"POST",referrerPolicy:"strict-origin",headers:s.headers,keepalive:t<=6e4&&i<15,...s.fetchOptions};if(!e)return _c("fetch"),br("No fetch implementation available");try{return e(s.url,a).then(c=>(t-=n,i--,{statusCode:c.status,headers:{"x-sentry-rate-limits":c.headers.get("X-Sentry-Rate-Limits"),"retry-after":c.headers.get("Retry-After")}}))}catch(c){return _c("fetch"),t-=n,i--,br(c)}}return tT(s,r)}const Ld=30,gd=50;function mn(s,e,t,i){const r={filename:s,function:e===""?qt:e,in_app:!0};return t!==void 0&&(r.lineno=t),i!==void 0&&(r.colno=i),r}const jd=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,yd=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Td=/\((\S*)(?::(\d+))(?::(\d+))\)/,dd=s=>{const e=jd.exec(s);if(e){const[,i,r,o]=e;return mn(i,qt,+r,+o)}const t=yd.exec(s);if(t){if(t[2]&&t[2].indexOf("eval")===0){const n=Td.exec(t[2]);n&&(t[2]=n[1],t[3]=n[2],t[4]=n[3])}const[r,o]=e0(t[1]||qt,t[2]);return mn(o,r,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}},Dd=[Ld,dd],hd=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,zd=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,wd=s=>{const e=hd.exec(s);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const o=zd.exec(e[3]);o&&(e[1]=e[1]||"eval",e[3]=o[1],e[4]=o[2],e[5]="")}let i=e[3],r=e[1]||qt;return[r,i]=e0(r,i),mn(i,r,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}},Cd=[gd,wd],Id=[Dd,Cd],pd=SN(...Id),e0=(s,e)=>{const t=s.indexOf("safari-extension")!==-1,i=s.indexOf("safari-web-extension")!==-1;return t||i?[s.indexOf("@")!==-1?s.split("@")[0]:qt,t?`safari-extension:${e}`:`safari-web-extension:${e}`]:[s,e]},no=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,lr=1024,Ad="Breadcrumbs",md=(s={})=>{const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...s};return{name:Ad,setup(t){e.console&&zT(xd(t)),e.dom&&td(fd(t,e.dom)),e.xhr&&cd(_d(t)),e.fetch&&_T(Sd(t)),e.history&&qN(kd(t)),e.sentry&&t.on("beforeSendEvent",Ed(t))}}},Od=md;function Ed(s){return function(t){Ee()===s&&ts({category:`sentry.${t.type==="transaction"?"transaction":"event"}`,event_id:t.event_id,level:t.level,message:Vt(t)},{event:t})}}function fd(s,e){return function(i){if(Ee()!==s)return;let r,o,n=typeof e=="object"?e.serializeAttribute:void 0,a=typeof e=="object"&&typeof e.maxStringLength=="number"?e.maxStringLength:void 0;a&&a>lr&&(no&&R.warn(`\`dom.maxStringLength\` cannot exceed ${lr}, but a value of ${a} was configured. Sentry will use ${lr} instead.`),a=lr),typeof n=="string"&&(n=[n]);try{const l=i.event,N=Yd(l)?l.target:l;r=zN(N,{keyAttrs:n,maxStringLength:a}),o=Vg(N)}catch{r=""}if(r.length===0)return;const c={category:`ui.${i.name}`,message:r};o&&(c.data={"ui.component_name":o}),ts(c,{event:i.event,name:i.name,global:i.global})}}function xd(s){return function(t){if(Ee()!==s)return;const i={category:"console",data:{arguments:t.args,logger:"console"},level:CT(t.level),message:HM(t.args," ")};if(t.level==="assert")if(t.args[0]===!1)i.message=`Assertion failed: ${HM(t.args.slice(1)," ")||"console.assert"}`,i.data.arguments=t.args.slice(1);else return;ts(i,{input:t.args,level:t.level})}}function _d(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t,o=t.xhr[hi];if(!i||!r||!o)return;const{method:n,url:a,status_code:c,body:l}=o,N={method:n,url:a,status_code:c},u={xhr:t.xhr,input:l,startTimestamp:i,endTimestamp:r},L={category:"xhr",data:N,type:"http",level:ZN(c)};s.emit("beforeOutgoingRequestBreadcrumb",L,u),ts(L,u)}}function Sd(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t;if(r&&!(t.fetchData.url.match(/sentry_key/)&&t.fetchData.method==="POST"))if(t.fetchData.method,t.fetchData.url,t.error){const o=t.fetchData,n={data:t.error,input:t.args,startTimestamp:i,endTimestamp:r},a={category:"fetch",data:o,level:"error",type:"http"};s.emit("beforeOutgoingRequestBreadcrumb",a,n),ts(a,n)}else{const o=t.response,n={...t.fetchData,status_code:o==null?void 0:o.status};t.fetchData.request_body_size,t.fetchData.response_body_size,o==null||o.status;const a={input:t.args,response:o,startTimestamp:i,endTimestamp:r},c={category:"fetch",data:n,type:"http",level:ZN(n.status_code)};s.emit("beforeOutgoingRequestBreadcrumb",c,a),ts(c,a)}}}function kd(s){return function(t){if(Ee()!==s)return;let i=t.from,r=t.to;const o=ko(Le.location.href);let n=i?ko(i):void 0;const a=ko(r);n!=null&&n.path||(n=o),o.protocol===a.protocol&&o.host===a.host&&(r=a.relative),o.protocol===n.protocol&&o.host===n.host&&(i=n.relative),ts({category:"navigation",data:{from:i,to:r}})}}function Yd(s){return!!s&&!!s.target}const vd=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],bd="BrowserApiErrors",Qd=(s={})=>{const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...s};return{name:bd,setupOnce(){e.setTimeout&&Ue(Le,"setTimeout",Sc),e.setInterval&&Ue(Le,"setInterval",Sc),e.requestAnimationFrame&&Ue(Le,"requestAnimationFrame",$d),e.XMLHttpRequest&&"XMLHttpRequest"in Le&&Ue(XMLHttpRequest.prototype,"send",Pd);const t=e.eventTarget;t&&(Array.isArray(t)?t:vd).forEach(r=>Wd(r,e))}}},Ud=Qd;function Sc(s){return function(...e){const t=e[0];return e[0]=Hs(t,{mechanism:{data:{function:Qt(s)},handled:!1,type:"instrument"}}),s.apply(this,e)}}function $d(s){return function(e){return s.apply(this,[Hs(e,{mechanism:{data:{function:"requestAnimationFrame",handler:Qt(s)},handled:!1,type:"instrument"}})])}}function Pd(s){return function(...e){const t=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(r=>{r in t&&typeof t[r]=="function"&&Ue(t,r,function(o){const n={mechanism:{data:{function:r,handler:Qt(o)},handled:!1,type:"instrument"}},a=ha(o);return a&&(n.mechanism.data.handler=Qt(a)),Hs(o,n)})}),s.apply(this,e)}}function Wd(s,e){var r,o;const i=(r=Le[s])==null?void 0:r.prototype;(o=i==null?void 0:i.hasOwnProperty)!=null&&o.call(i,"addEventListener")&&(Ue(i,"addEventListener",function(n){return function(a,c,l){try{Bd(c)&&(c.handleEvent=Hs(c.handleEvent,{mechanism:{data:{function:"handleEvent",handler:Qt(c),target:s},handled:!1,type:"instrument"}}))}catch{}return e.unregisterOriginalCallbacks&&Jd(this,a,c),n.apply(this,[a,Hs(c,{mechanism:{data:{function:"addEventListener",handler:Qt(c),target:s},handled:!1,type:"instrument"}}),l])}}),Ue(i,"removeEventListener",function(n){return function(a,c,l){try{const N=c.__sentry_wrapped__;N&&n.call(this,a,N,l)}catch{}return n.call(this,a,c,l)}}))}function Bd(s){return typeof s.handleEvent=="function"}function Jd(s,e,t){s&&typeof s=="object"&&"removeEventListener"in s&&typeof s.removeEventListener=="function"&&s.removeEventListener(e,t)}const Rd=()=>({name:"BrowserSession",setupOnce(){if(typeof Le.document>"u"){no&&R.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}jc({ignoreDuration:!0}),yc(),qN(({from:s,to:e})=>{s!==void 0&&s!==e&&(jc({ignoreDuration:!0}),yc())})}}),Fd="GlobalHandlers",Gd=(s={})=>{const e={onerror:!0,onunhandledrejection:!0,...s};return{name:Fd,setupOnce(){Error.stackTraceLimit=50},setup(t){e.onerror&&(Vd(t),kc("onerror")),e.onunhandledrejection&&(Zd(t),kc("onunhandledrejection"))}}},Hd=Gd;function Vd(s){Uj(e=>{const{stackParser:t,attachStacktrace:i}=t0();if(Ee()!==s||XN())return;const{msg:r,url:o,line:n,column:a,error:c}=e,l=qd(Aa(t,c||r,void 0,i,!1),o,n,a);l.level="error",QN(l,{originalException:c,mechanism:{handled:!1,type:"onerror"}})})}function Zd(s){Pj(e=>{const{stackParser:t,attachStacktrace:i}=t0();if(Ee()!==s||XN())return;const r=Xd(e),o=Ta(r)?Kd(r):Aa(t,r,void 0,i,!0);o.level="error",QN(o,{originalException:r,mechanism:{handled:!1,type:"onunhandledrejection"}})})}function Xd(s){if(Ta(s))return s;try{if("reason"in s)return s.reason;if("detail"in s&&"reason"in s.detail)return s.detail.reason}catch{}return s}function Kd(s){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(s)}`}]}}}function qd(s,e,t,i){const r=s.exception=s.exception||{},o=r.values=r.values||[],n=o[0]=o[0]||{},a=n.stacktrace=n.stacktrace||{},c=a.frames=a.frames||[],l=i,N=t,u=ht(e)&&e.length>0?e:Da();return c.length===0&&c.push({colno:l,filename:u,function:qt,in_app:!0,lineno:N}),s}function kc(s){no&&R.log(`Global Handler attached: ${s}`)}function t0(){const s=Ee();return(s==null?void 0:s.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}const eD=()=>({name:"HttpContext",preprocessEvent(s){var i;if(!Le.navigator&&!Le.location&&!Le.document)return;const e=QT(),t={...e.headers,...(i=s.request)==null?void 0:i.headers};s.request={...e,...s.request,headers:t}}}),tD="cause",sD=5,iD="LinkedErrors",rD=(s={})=>{const e=s.limit||sD,t=s.key||tD;return{name:iD,preprocessEvent(i,r,o){const n=o.getOptions();hT(Ia,n.stackParser,t,e,i,r)}}},oD=rD;function nD(){return aD()?(no&&Zs(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function aD(){var o;if(typeof Le.window>"u")return!1;const s=Le;if(s.nw)return!1;const e=s.chrome||s.browser;if(!((o=e==null?void 0:e.runtime)!=null&&o.id))return!1;const t=Da(),i=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(Le===Le.top&&i.some(n=>t.startsWith(`${n}://`)))}function MD(s){return[NT(),MT(),Ud(),Od(),Hd(),oD(),GN(),eD(),Rd()]}function cD(s={}){const e=!s.skipBrowserExtensionCheck&&nD(),t={...s,enabled:e?!1:s.enabled,stackParser:bj(s.stackParser||pd),integrations:Yy({integrations:s.integrations,defaultIntegrations:s.defaultIntegrations==null?MD():s.defaultIntegrations}),transport:s.transport||Nd};return Fy(XT,t)}function uD(){console.log(` -██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ -██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗ -██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝ -██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗ -██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║ -╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ -`),console.log("Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters"),console.log("Help us to create open source project with reactJS!"),console.log("See you :)")}const lD=` -/** - * Copyright 2018-2024 Denis Haev (bluefox) - * - * MIT License - * - **/ - -.logo-background-light, .logo-background-colored { - background: white; -} -.logo-background-dark, .logo-background-blue { - background: black; -} -.logo-div { - position: absolute; - top: 50%; - left: 50%; - -ms-transform: translateX(-50%) translateY(-50%); - -webkit-transform: translate(-50%,-50%); - transform: translate(-50%,-50%); - overflow: hidden; - border-radius: 50%; - z-index: 2; -} -.logo-border { - /*border-color: #164477;*/ - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - border-radius: 50%; - border-style: solid; - box-sizing: border-box; - width: 100%; - height: 100%; - position: absolute; -} -.logo-top { - position: absolute; - width: 4.5%; - height: 16%; - top: 0; - z-index: 2; -} -.logo-i { - position: absolute; - width: 14.5%; - height: 60%; - top: 20%; - left: 42%; - background: #3399CC; -} -.logo-i-top { - position: absolute; - width: 14.5%; - height: 4%; - left: 42%; - background: #3399CC; - border-radius: 100%; -} -.logo-back { - width: 100%; - height: 100%; - z-index: 0; - overflow: hidden; -} -@keyframes logo-grow { - 0% { - width: 230px; - height: 230px; - transform: translate(-50%,-50%) scale(1); - opacity: 1 - } - 99% { - width: 230px; - height: 230px; - transform: translate(-50%,-50%) scale(10); - opacity: 0; - } - 100% { - width: 0; - height: 0; - opacity: 0; - } -} -@keyframes logo-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } -@keyframes logo-color-inside-light { - 0% { - background: #FEFEFE; - } - 100% { - background: #3399CC; - } -} -@keyframes logo-color-inside-dark { - 0% { - background: #030303; - } - 100% { - background: #3399CC; - } -} -@keyframes logo-color-inside-colored { - 0% { - background: #FEFEFE; - } - 100% { - background: #3399CC; - } -} -@keyframes logo-color-inside-blue { - 0% { - background: #030303; - } - 100% { - background: #3399CC; - } -} - -@keyframes logo-color-outside-light { - 0% { - border-color: #FEFEFE; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} -@keyframes logo-color-outside-dark { - 0% { - border-color: #040404; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} -@keyframes logo-color-outside-colored { - 0% { - border-color: #FEFEFE; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} -@keyframes logo-color-outside-blue { - 0% { - border-color: #040404; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} - -.logo-animate-wait { - animation: logo-color-outside 1.5s, logo-spin 1.5s linear infinite; -} - -.logo-animate-grow-light { - background: #DDD; -} -.logo-animate-grow-dark { - background: #1d1d1d; -} -.logo-animate-grow-colored { - background: #DDD; -} -.logo-animate-grow-blue { - background: #1d1d1d; -} - -.logo-animate-grow { - display: inline-block; - text-align: center; - z-index: 1; - top: 50%; - left: 50%; - -ms-transform: translateX(-50%) translateY(-50%); - -webkit-transform: translate(-50%,-50%); - transform: translate(-50%,-50%); - width: 245px; - height: 245px; - border-radius: 50%; - position: absolute; - animation: logo-grow 1s 1 ease forwards; -} - -.logo-animate-color-inside-light { - animation: logo-color-inside-light 2.5s; -} -.logo-animate-color-inside-dark { - animation: logo-color-inside-dark 2.5s; -} -.logo-animate-color-inside-colored { - animation: logo-color-inside-colored 2.5s; -} -.logo-animate-color-inside-blue { - animation: logo-color-inside-blue 2.5s; -} - -.logo-animate-color-outside-light { - animation: logo-color-outside-light 1.5s; -} -.logo-animate-color-outside-dark { - animation: logo-color-outside-dark 1.5s; -} -.logo-animate-color-outside-colored { - animation: logo-color-outside-colored 1.5s; -} -.logo-animate-color-outside-blue { - animation: logo-color-outside-blue 1.5s; -} -`;function ND(s){f.useEffect(()=>{if(!window.document.getElementById("loader-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","loader-iobroker-component"),i.innerHTML=lD,window.document.head.appendChild(i)}},[]);const e=s.size||234,t=s.themeName||s.theme||s.themeType||"light";return M.createElement("div",{className:`logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:void 0,backgroundSize:"cover"}},window.loadingHideLogo==="true"?null:M.createElement(M.Fragment,null,M.createElement("div",{className:"logo-div",style:{width:e,height:e}},M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"37%"}}),M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"57%"}}),M.createElement("div",{className:`logo-border logo-background-${t} logo-animate-wait`,style:{borderWidth:e*.132}}),M.createElement("div",{className:`logo-i logo-animate-color-inside-${t}`}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{top:"18%"}}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{bottom:"18%"}})),M.createElement("div",{className:`logo-animate-grow logo-animate-grow-${t}`,style:{width:e+11,height:e+11}})))}class Oi extends f.Component{onHashChangedBound;constructor(e){super(e),this.onHashChangedBound=this.onHashChanged.bind(this)}componentDidMount(){window.addEventListener("hashchange",this.onHashChangedBound)}componentWillUnmount(){window.removeEventListener("hashchange",this.onHashChangedBound)}onHashChanged(){}static getLocation(){let e=window.location.hash;e=e.replace(/^#/,"");const t=e.split("/").map(i=>{try{return i?decodeURIComponent(i):""}catch{return console.error(`Router: Cannot decode ${i}`),i}});return{tab:t[0]||"",dialog:t[1]||"",id:t[2]||"",arg:t[3]||""}}static doNavigate(e,t,i,r){let o="";const n=Oi.getLocation();r!==void 0&&!i&&(i=n.id),i&&!t&&(t=n.dialog),(t&&!e||e===null)&&(e=n.tab),e&&(o=`#${e}`,t&&(o+=`/${t}`,i&&(o+=`/${i}`,r!==void 0&&(o+=`/${r}`)))),window.location.hash!==o&&(window.location.hash=o)}}function LD(){const s=document.getSelection();if(!(s!=null&&s.rangeCount))return()=>{};let e=document.activeElement;const t=[];for(let i=0;i{s.type==="Caret"&&s.removeAllRanges(),s.rangeCount||t.forEach(i=>s.addRange(i)),e&&e.focus()}}const Yc={"text/plain":"Text","text/html":"Url",default:"Text"},gD="Copy to clipboard: #{key}, Enter";function jD(s){const e=`${/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl"}+C`;return s.replace(/#{\s*key\s*}/g,e)}function s0(s,e){let t,i,r,o,n=!1;e=e||{};const a=e.debug||!1;try{if(t=LD(),i=document.createRange(),r=document.getSelection(),o=document.createElement("span"),o.textContent=s,o.ariaHidden="true",o.style.all="unset",o.style.position="fixed",o.style.top="0px",o.style.clip="rect(0, 0, 0, 0)",o.style.whiteSpace="pre",o.style.userSelect="text",o.addEventListener("copy",l=>{var N,u,L,g;if(l.stopPropagation(),e!=null&&e.format)if(l.preventDefault(),typeof l.clipboardData>"u"){a&&console.warn("unable to use e.clipboardData"),a&&console.warn("trying IE specific stuff"),(N=window.clipboardData)==null||N.clearData();const y=Yc[e.format]||Yc.default;(u=window.clipboardData)==null||u.setData(y,s)}else(L=l.clipboardData)==null||L.clearData(),(g=l.clipboardData)==null||g.setData(e.format,s)}),document.body.appendChild(o),i.selectNodeContents(o),r==null||r.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");n=!0}catch(c){a&&console.error("unable to copy using execCommand: ",c),a&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",s),n=!0}catch(l){a&&console.error("unable to copy using clipboardData: ",l),a&&console.error("falling back to prompt");const N=jD("message"in e?e.message||"":gD);window.prompt(N,s)}}finally{r&&(i&&typeof r.removeRange=="function"?r.removeRange(i):r.removeAllRanges()),o&&document.body.removeChild(o),t&&t()}return n}class h{static translations={};static unknownTranslations=[];static lang=window.sysLang||"en";static _disableWarning=!1;static setLanguage(e){e&&(h.lang=e)}static extendTranslations(e,t){if(e.prefix){const i=e;if(typeof i.prefix=="string"){const r=i.prefix;delete i.prefix,Object.keys(i).forEach(o=>{const n=o,a={},c=i[n];Object.keys(c).forEach(l=>{l&&c&&(l.startsWith(r)?a[l]=c[l]:a[`${r}${l}`]=c[l])}),e[n]=a})}else console.warn("Found prefix in translations, but it is not a string")}try{if(!t)e.en&&e.de&&e.ru?Object.keys(e).forEach(i=>{const r=i;h.translations[r]=h.translations[r]||{};const o=h.translations[r];Object.assign(o,e[r])}):Object.keys(e).forEach(i=>{const r=e[i];Object.keys(r).forEach(o=>{const n=o,a=h.translations[n];a?a[i]?a[i]!==r[n]&&console.warn(`Translation for word "${i}" in "${n}" was ignored: existing = "${a[i]}", new = ${r[n]}`):a[i]=r[n]:console.warn(`Used unknown language: ${n}`)})});else{h.translations[t]||console.warn(`Used unknown language: ${t}`),h.translations[t]=h.translations[t]||{};const i=h.translations[t];i&&Object.keys(e).forEach(r=>{i[r]?i[r]!==e[r]&&console.warn(`Translation for word "${r}" in "${t}" was ignored: existing = "${i[r]}", new = ${e[r]}`):i[r]=e[r]})}}catch(i){console.error(`Cannot apply translations: ${i}`)}}static setTranslations(e){e&&(h.translations=e)}static getLanguage(){return h.lang}static t(e,...t){const i=h.translations[h.lang];if(i){const r=i[e];if(r)e=r;else if(h.unknownTranslations.includes(e)||(h.unknownTranslations.push(e),!h._disableWarning&&console.log(`Translate: ${e}`)),h.lang!=="en"&&h.translations.en){const o=h.translations.en[e];o&&(e=o)}}for(const r of t)e=e.replace("%s",r);return e}static i18nShow(e){const t={};e?typeof e=="string"?(h.unknownTranslations.forEach(i=>{i.startsWith(e)&&(t[i]=i.replace(e,""))}),console.log(JSON.stringify(t,null,2))):typeof e=="object"&&(h.unknownTranslations.forEach(i=>{e.test(i)&&(t[i]=i)}),console.log(JSON.stringify(t,null,2))):(h.unknownTranslations.forEach(i=>t[i]=i),console.log(JSON.stringify(t,null,2)))}static disableWarning(e){h._disableWarning=!!e}}window.i18nShow=h.i18nShow;window.i18nDisableWarning=h.disableWarning;const st="material",yD=["Su","Mo","Tu","We","Th","Fr","Sa"],TD=["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vo={0:"0x00 - good",1:"0x01 - general problem",2:"0x02 - no connection problem",16:"0x10 - substitute value from controller",32:"0x20 - substitute initial value",64:"0x40 - substitute value from device or instance",128:"0x80 - substitute value from sensor",17:"0x11 - general problem by instance",65:"0x41 - general problem by device",129:"0x81 - general problem by sensor",18:"0x12 - instance not connected",66:"0x42 - device not connected",130:"0x82 - sensor not connected",68:"0x44 - device reports error",132:"0x84 - sensor reports error"},vc={JVBERi0:"pdf",R0lGODdh:"gif",R0lGODlh:"gif",iVBORw0KGgo:"png","/9j/":"jpg",PHN2Zw:"svg",Qk1:"bmp",AAABAA:"ico"};class O{static namespace=st;static INSTANCES="instances";static dateFormat=["DD","MM"];static FORBIDDEN_CHARS=/[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;static CapitalWords(e){return(e||"").split(/[\s_]/).filter(t=>t).map(t=>t?t[0].toUpperCase()+t.substring(1).toLowerCase():"").join(" ")}static formatSeconds(e){const t=Math.floor(e/86400);e%=3600*24;const i=Math.floor(e/3600).toString().padStart(2,"0");e%=3600;const r=Math.floor(e/60).toString().padStart(2,"0");e%=60;const o=Math.floor(e).toString().padStart(2,"0");let n="";return t&&(n+=`${t} ${h.t("ra_daysShortText")} `),n+=`${i}:${r}:${o}`,n}static getObjectName(e,t,i,r,o){var c;const n=e[t];let a;if(typeof i=="string"&&!r&&(r={language:i},i=null),r=r||{},r.language||(r.language=e["system.config"]&&e["system.config"].common&&e["system.config"].common.language||window.sysLang||"en"),i!=null&&i.name){const l=i.name;typeof l=="object"?a=r.language&&l[r.language]||l.en:a=l}else if(o&&((c=n==null?void 0:n.common)!=null&&c.desc)){const l=n.common.desc;typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!o&&(n!=null&&n.common)){const l=n.common.name||n.common.desc;l&&typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else{const l=t.lastIndexOf(".");a=t.substring(l+1).replace(/[_.]/g," "),a=O.CapitalWords(a)}return(a==null?void 0:a.trim())||""}static getObjectNameFromObj(e,t,i,r,o){var c,l;const n=e;let a=(e==null?void 0:e._id)||"";if(typeof t=="string"&&!i&&(i={language:t},t=null),i=i||{},t!=null&&t.name){const N=t.name;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N}else if(r&&((c=n==null?void 0:n.common)!=null&&c.desc)){const N=n.common.desc;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!r&&((l=n==null?void 0:n.common)!=null&&l.name)){let N=n.common.name;!N&&n.common.desc&&(N=n.common.desc),typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}return o?a:a.trim()}static getSettingsOrder(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subOrder&&o[n].subOrder[t])return JSON.parse(JSON.stringify(o[n].subOrder[t]))}else if(o[n].order)return JSON.parse(JSON.stringify(o[n].order))}}return null}static getSettingsCustomURLs(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subURLs&&o[n].subURLs[t])return JSON.parse(JSON.stringify(o[n].subURLs[t]))}else if(o[n].URLs)return JSON.parse(JSON.stringify(o[n].URLs))}}return null}static reorder(e,t,i){const r=Array.from(e),[o]=r.splice(t,1);return r.splice(i,0,o),r}static getSettings(e,t,i){let r;const o=(e==null?void 0:e._id)||(t==null?void 0:t.id);let n;if(e&&Object.prototype.hasOwnProperty.call(e,"common")?n=e.common:n=e,n!=null&&n.custom?(r=n.custom,r=r[st]&&r[st][t.user||"admin"]?JSON.parse(JSON.stringify(r[st][t.user||"admin"])):{enabled:!0}):r={enabled:i===void 0?!0:i,useCustom:!1},Object.prototype.hasOwnProperty.call(r,"enabled")||(r.enabled=i===void 0?!0:i),t&&(!r.name&&t.name&&(r.name=t.name),!r.icon&&t.icon&&(r.icon=t.icon),!r.color&&t.color&&(r.color=t.color)),n&&(!r.color&&n.color&&(r.color=n.color),!r.icon&&n.icon&&(r.icon=n.icon),!r.name&&n.name&&(r.name=n.name)),typeof r.name=="object"&&(r.name=t.language&&r.name[t.language]||r.name.en,r.name=(r.name||"").toString().replace(/_/g," "),r.name===r.name.toUpperCase()&&(r.name=r.name[0]+r.name.substring(1).toLowerCase())),!r.name&&o){const a=o.lastIndexOf(".");r.name=o.substring(a+1).replace(/[_.]/g," "),r.name=(r.name||"").toString().replace(/_/g," "),r.name=O.CapitalWords(r.name)}return r}static setSettings(e,t,i){if(e){e.common=e.common||{},e.common.custom=e.common.custom||{},e.common.custom[st]=e.common.custom[st]||{},e.common.custom[st][i.user||"admin"]=t;const r=e.common.custom[st][i.user||"admin"];return r.useCommon&&(r.color!==void 0&&(e.common.color=r.color,delete r.color),r.icon!==void 0&&(e.common.icon=r.icon,delete r.icon),r.name!==void 0&&(typeof e.common.name!="object"&&i.language?e.common.name={[i.language]:r.name}:typeof e.common.name=="object"&&i.language&&(e.common.name[i.language]=r.name),delete r.name)),!0}return!1}static getIcon(e,t){return e!=null&&e.icon?e.icon.length<=2?M.createElement("span",{style:t||{}},e.icon):e.icon.startsWith("data:image")?M.createElement("img",{alt:e.name,src:e.icon,style:t||{}}):M.createElement("img",{alt:e.name,src:(e.prefix||"")+e.icon,style:t}):null}static getObjectIcon(e,t){var i;if(typeof e=="object"&&(t=e,e=t==null?void 0:t._id),(i=t==null?void 0:t.common)!=null&&i.icon){let r=t.common.icon;if(typeof r=="string"&&r.length<=2||r.startsWith("data:image"))return r;const o=e.split(".");return o[0]==="system"?r=`adapter/${o[2]}${r.startsWith("/")?"":"/"}${r}`:r=`adapter/${o[0]}${r.startsWith("/")?"":"/"}${r}`,window.location.pathname.match(/adapter\/[^/]+\/[^/]+\.html/)?r=`../../${r}`:window.location.pathname.match(/material\/[.\d]+/)?r=`../../${r}`:window.location.pathname.match(/material\//)&&(r=`../${r}`),r}return null}static splitCamelCase(e){return e?O.CapitalWords(e):""}static isUseBright(e,t){if(!e)return t===void 0?!0:t;e=e.toString(),e.startsWith("#")&&(e=e.slice(1));let i,r,o;const n=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(n&&n.length===4)i=parseInt(n[1],10),r=parseInt(n[2],10),o=parseInt(n[3],10);else{if(e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8)e=e.substring(0,6);else if(e.length!==6)return!1;i=parseInt(e.slice(0,2),16),r=parseInt(e.slice(2,4),16),o=parseInt(e.slice(4,6),16)}return i*.299+r*.587+o*.114<=186}static getTimeString(e){if(e=parseFloat(e),Number.isNaN(e))return"--:--";const t=Math.floor(e/3600),i=Math.floor(e%3600/60).toString().padStart(2,"0"),r=(e%60).toString().padStart(2,"0");return t?`${t}:${i}:${r}`:`${i}:${r}`}static getWindDirection(e){return e>=0&&e<11.25?"N":e>=11.25&&e<33.75?"NNE":e>=33.75&&e<56.25?"NE":e>=56.25&&e<78.75?"ENE":e>=78.75&&e<101.25?"E":e>=101.25&&e<123.75?"ESE":e>=123.75&&e<146.25?"SE":e>=146.25&&e<168.75?"SSE":e>=168.75&&e<191.25?"S":e>=191.25&&e<213.75?"SSW":e>=213.75&&e<236.25?"SW":e>=236.25&&e<258.75?"WSW":e>=258.75&&e<281.25?"W":e>=281.25&&e<303.75?"WNW":e>=303.75&&e<326.25?"NW":e>=326.25&&e<348.75?"NNW":"N"}static padding(e){return typeof e=="string"?e.length<2?`0${e}`:e:e<10?`0${e}`:e.toString()}static setDataFormat(e){e&&(O.dateFormat=e.toUpperCase().split(/[.-/]/),O.dateFormat.splice(O.dateFormat.indexOf("YYYY"),1))}static date2string(e){if(typeof e=="string"){if(e=e.trim(),!e)return"";if(e.match(/^[\w\s]+$/))return e;const i=e.match(/(\d{1,4})[-./](\d{1,2})[-./](\d{1,4})/);if(i){const r=[parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10)],o=r.find(n=>n>31);if(o!==void 0){r.splice(r.indexOf(o),1);const n=r.find(a=>a>12);n?(r.splice(r.indexOf(n),1),e=new Date(o,r[0]-1,n)):O.dateFormat[0][0]==="M"&&O.dateFormat[1][0]==="D"?(e=new Date(o,r[0]-1,r[1]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[1]-1,r[0]))):O.dateFormat[0][0]==="D"&&O.dateFormat[1][0]==="M"?(e=new Date(o,r[1]-1,r[0]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[0]-1,r[1]))):e=new Date(e)}else e=new Date(e)}else e=new Date(e)}else e=new Date(e);let t=h.t(`ra_dow_${yD[e.getDay()]}`).replace("ra_dow_","");return t+=`. ${e.getDate()} ${h.t(`ra_month_${TD[e.getMonth()]}`).replace("ra_month_","")}`,t}static renderTextWithA(e){let t=e.match(/||[^<]+<\/b>|[^<]+<\/i>/);if(t){const i=[];let r=1;do{const o=e.substring(0,t.index);if(e=e.substring((t.index||0)+t[0].length),o&&i.push(M.createElement("span",{key:`a${r++}`},o)),t[0].startsWith(""))i.push(M.createElement("b",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith(""))i.push(M.createElement("i",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith("([^<]*)||[^<]+<\/b>|[^<]+<\/i>/):null,!t&&e&&i.push(M.createElement("span",{key:`a${r++}`},e))}while(t);return i}return e}static getSmartName(e,t,i,r){var n,a;if(!t){if(!r)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const c=e;return(n=c==null?void 0:c.common)!=null&&n.custom&&c.common.custom[i]?c.common.custom[i].smartName:void 0}if(!r)return e[t].common.smartName;const o=e[t];return(a=o==null?void 0:o.common)!=null&&a.custom&&o.common.custom[i]&&o.common.custom[i].smartName||null}static getSmartNameFromObj(e,t,i){var o,n;if(!i)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const r=(n=(o=e==null?void 0:e.common)==null?void 0:o.custom)==null?void 0:n[t];return r?r.smartName:void 0}static enableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName={}):e.common.smartName={}}static removeSmartName(e,t,i){i?e.common&&e.common.custom&&e.common.custom[t]&&(e.common.custom[t]=null):e.common.smartName=null}static updateSmartName(e,t,i,r,o,n){const a=h.getLanguage();if(typeof e.common.smartName=="string"){const c=e.common.smartName;e.common.smartName={},e.common.smartName[a]=c}if(e.native&&e.native.byON){delete e.native.byON;let c=e.common.smartName;c&&typeof c!="object"&&(c={en:c,[a]:c}),e.common.smartName=c}if(r!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},r?e.common.custom[o].smartName.smartType=r:delete e.common.custom[o].smartName.smartType):(e.common.smartName=e.common.smartName||{},r?e.common.smartName.smartType=r:delete e.common.smartName.smartType)),i!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},e.common.custom[o].smartName.byON=i):(e.common.smartName=e.common.smartName||{},e.common.smartName.byON=i)),t!==void 0){let c;if(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},c=e.common.custom[o].smartName):(e.common.smartName=e.common.smartName||{},c=e.common.smartName),c[a]=t,c&&(!c[a]||c[a]===e.common.name&&(!e.common.role||e.common.role.includes("button")))){delete c[a];let l=!0;for(const N in c)if(Object.prototype.hasOwnProperty.call(c,N)){l=!1;break}if(l)if(n&&e.common.custom&&e.common.custom[o])e.common.custom[o].smartName.byON===void 0?delete e.common.custom[o]:(delete e.common.custom[o].en,delete e.common.custom[o].de,delete e.common.custom[o].ru,delete e.common.custom[o].nl,delete e.common.custom[o].pl,delete e.common.custom[o].it,delete e.common.custom[o].fr,delete e.common.custom[o].pt,delete e.common.custom[o].es,delete e.common.custom[o].uk,delete e.common.custom[o]["zh-cn"]);else if(e.common.smartName&&e.common.smartName.byON!==void 0){const N=e.common.smartName;delete N.en,delete N.de,delete N.ru,delete N.nl,delete N.pl,delete N.it,delete N.fr,delete N.pt,delete N.es,delete N.uk,delete N["zh-cn"]}else e.common.smartName=null}}}static disableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName=!1):e.common.smartName=!1}static copyToClipboard(e,t){return t&&(t.stopPropagation(),t.preventDefault()),s0(e)}static getFileExtension(e){const t=(e||"").lastIndexOf(".");return t!==-1?e.substring(t+1).toLowerCase():null}static formatBytes(e){if(Math.abs(e)<1024)return`${e} B`;const t=["KB","MB","GB"];let i=-1;do e/=1024,++i;while(Math.abs(e)>=1024&&i186?`#000000${i||""}`:`#FFFFFF${i||""}`;const a=(255-r).toString(16),c=(255-o).toString(16),l=(255-n).toString(16);return`#${a.padStart(2,"0")}${c.padStart(2,"0")}${l.padStart(2,"0")}${i||""}`}static color2rgb(e){if(e==null||e===""||typeof e!="string")return!1;if(e.startsWith("rgba")){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else if(e.startsWith("rgb")){const t=e.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else e.startsWith("#")&&(e=e.slice(1));return e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length!==6&&e.length!==8?(console.warn(`Cannot invert color: ${e}`),!1):[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}static rgb2lab(e){let t=e[0]/255,i=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=(t*.4124+i*.3576+r*.1805)/.95047,n=t*.2126+i*.7152+r*.0722,a=(t*.0193+i*.1192+r*.9505)/1.08883;return o=o>.008856?o**.33333333:7.787*o+.137931,n=n>.008856?n**.33333333:7.787*n+.137931,a=a>.008856?a**.33333333:7.787*a+.137931,[116*n-16,500*(o-n),200*(n-a)]}static colorDistance(e,t){const i=O.color2rgb(e),r=O.color2rgb(t);if(!i||!r)return 0;const o=O.rgb2lab(i),n=O.rgb2lab(r),a=o[0]-n[0],c=o[1]-n[1],l=o[2]-n[2],N=Math.sqrt(o[1]*o[1]+o[2]*o[2]),u=Math.sqrt(n[1]*n[1]+n[2]*n[2]),L=N-u;let g=c*c+l*l-L*L;g=g<0?0:Math.sqrt(g);const y=1+.045*N,T=1+.015*N,d=a,z=L/y,I=g/T,C=d*d+z*z+I*I;return C<0?0:C}static _toVal(e){let t,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e))for(let r=0;r{if(i=i.trim(),i){const r=i.split("="),o=decodeURIComponent(r[0]).trim();if(r.length>1){const n=decodeURIComponent(r[1]);if(n==="true")t[o]=!0;else if(n==="false")t[o]=!1;else{const a=parseFloat(n);a.toString()===n?t[o]=a:t[o]=n}}else t[o]=!0}}),t}static getParentId(e){const t=(e||"").toString().split(".");return t.length>1?(t.pop(),t.join(".")):null}static formatDate(e,t){if(!e)return"";let i;const r=(e.getMonth()+1).toString().padStart(2,"0"),o=e.getDate().toString().padStart(2,"0");return t==="MM/DD/YYYY"?i=`${r}/${o}/${e.getFullYear()}`:i=`${e.getFullYear()}-${r}-${o}`,i+=` ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`,i}static formatTime(e){if(e){e=Math.round(e);const t=Math.floor(e/(3600*24)),i=Math.floor(e%(3600*24)/3600),r=Math.floor(e%3600/60),o=e%60;return t?`${t}.${i.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:i?`${i}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:`0:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}return"0:00:00"}static MDtext2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static MDgetTitle(e){var o;const t=O.MDextractHeader(e),i=t.header;let r=t.body;if(!i.title){r=r.replace(/{[^}]*}/g,""),r=r.trim();const n=r.replace(/\r/g,"").split(` -`);for(let a=0;a{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===t[c]?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static MDremoveDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static generateFile(e,t){const i=document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}static quality2text(e){const t=e&4294901760,i=vo[e];let r;return i?r=[i]:e&1?r=[vo[1],`0x${(e&65534).toString(16)}`]:e&2?r=[vo[2],`0x${(e&65533).toString(16)}`]:r=[`0x${e.toString(16)}`],t&&r.push(`0x${(t>>16).toString(16).toUpperCase()}`),r}static clone(e){return JSON.parse(JSON.stringify(e))}static getStates(e){var r;const t=(r=e==null?void 0:e.common)==null?void 0:r.states;let i;if(t)if(typeof t=="string"&&t[0]==="{")try{i=JSON.parse(t)}catch{console.error(`Cannot parse states: ${t}`),i=null}else if(typeof t=="string"){const o=t.split(";");i={};for(let n=0;ni[n]=o):(e==null?void 0:e.common.type)==="string"?t.forEach(o=>i[o]=o):(e==null?void 0:e.common.type)==="boolean"&&(i.false=t[0],i.true=t[1])):typeof t=="object"&&(i=t);return i||null}static async getSvg(e){const i=await(await fetch(e)).blob();return new Promise(r=>{const o=new FileReader;o.onload=()=>{var n;return r(((n=o.result)==null?void 0:n.toString())||"")},o.readAsDataURL(i)})}static detectMimeType(e){const t=Object.keys(vc).find(i=>e.startsWith(i));return t?vc[t]:null}static isStableRepository(e){return!!(typeof e=="string"&&e.toLowerCase().startsWith("stable")||e&&typeof e!="string"&&e.find(t=>t.toLowerCase().startsWith("stable")))}static isStringInteger(e){return typeof e=="number"?Math.round(e)===e:parseInt(e,10).toString()===e}static isValidDate(e){return e instanceof Date&&!isNaN(e)}static getStyle(e,...t){const i={};for(let r=0;r{if(typeof t[r][o]=="function")i[o]=t[r][o](e);else if(typeof t[r][o]=="object"){const n=t[r][o];i[o]={},Object.keys(n).forEach(a=>{typeof n[a]=="function"?i[o][a]=n(e):(n[a]||n[a]===0)&&(i[o][a]=n[a])})}else(t[r][o]||t[r][o]===0)&&(i[o]=t[r][o])});return i}}const bo={buttonIcon:{marginRight:8}};class dD extends M.Component{isIFrame;constructor(e){super(e);const t=e.newReact===void 0?!0:e.newReact;if(e.isIFrame!==void 0)this.isIFrame=e.isIFrame;else try{this.isIFrame=!t&&window.self!==window.top}catch{this.isIFrame=!t}}render(){const e=this.props.noTextOnButtons,t={borderRadius:this.props.theme.saveToolbar.button.borderRadius||3,height:this.props.theme.saveToolbar.button.height||32},i={bottom:this.isIFrame?38:0,left:this.props.paddingLeft||0,right:0,position:"absolute",background:this.props.theme.saveToolbar.background};return this.props.dense&&(i.minHeight=48),this.props.error&&(t.border="1px solid red"),M.createElement(j.Toolbar,{style:i},M.createElement(j.Fab,{variant:"extended","aria-label":"Save",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!1),style:t},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),!e&&h.t("ra_Save")),M.createElement(j.Fab,{variant:"extended","aria-label":"Save and close",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!0),style:{...t,marginLeft:10}},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),e?"+":h.t("ra_Save and close"),e&&M.createElement(Ne,null)),M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.Fab,{variant:"extended","aria-label":"Close",onClick:()=>this.props.onClose(),style:t},M.createElement(Ne,{style:e?void 0:bo.buttonIcon}),!e&&h.t("ra_Close")))}}const bc={suppress:{fontSize:12},suppressRoot:{marginTop:"16px"}};class i0 extends f.Component{constructor(e){if(super(e),!this.props.dialogName&&this.props.suppressQuestionMinutes)throw new Error("dialogName required if suppressQuestionMinutes used");let t=!1;this.props.suppressQuestionMinutes&&(t=parseInt((window._localStorage||window.localStorage).getItem(this.props.dialogName),10)||0,t?Date.now()>t&&((window._localStorage||window.localStorage).removeItem(this.props.dialogName),t=!1):t=!1),this.state={suppress:t}}handleOk(){this.state.suppress&&(window._localStorage||window.localStorage).setItem(this.props.dialogName,Date.now()+(this.props.suppressQuestionMinutes||2)*6e4),this.props.onClose&&this.props.onClose(!0)}handleCancel(){this.props.onClose&&this.props.onClose(!1)}render(){return typeof this.state.suppress=="number"?(setTimeout(()=>this.props.onClose&&this.props.onClose(!0),100),null):M.createElement(j.Dialog,{open:!0,maxWidth:"md",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:(e,t)=>{t!=="backdropClick"&&t!=="escapeKeyDown"&&this.handleCancel()},"aria-labelledby":"ar_confirmation_dialog_title","aria-describedby":"ar_confirmation_dialog_description"},M.createElement(j.DialogTitle,{id:"ar_confirmation_dialog_title"},this.props.title||h.t("ra_Are you sure?")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_confirmation_dialog_description"},this.props.icon||null,this.props.text,this.props.suppressQuestionMinutes?M.createElement("br",null):null,this.props.suppressQuestionMinutes?M.createElement(j.FormControlLabel,{sx:{"& .FormControlLabel-label":bc.suppress,"&.FormControlLabel-root":bc.suppressRoot},control:M.createElement(j.Checkbox,{id:`ar_dialog_confirm_suppress_${this.props.dialogName||""}`,checked:!!this.state.suppress,onChange:()=>this.setState({suppress:!this.state.suppress})}),label:this.props.suppressText||h.t("ra_Suppress question for next %s minutes",(this.props.suppressQuestionMinutes||2).toString())}):null)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_confirm_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_confirm_cancel_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Ne,null)},this.props.cancel||h.t("ra_Cancel"))))}}class r0 extends f.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},M.createElement(j.DialogTitle,{id:"ar_alert_dialog_title"},this.props.title||h.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_alert_dialog_description"},this.props.text||h.t("ra_Unknown error!"))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_error_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},h.t("ra_Ok"))))}}const DD="Actions",hD="Append",zD="Cancel",wD="Categories",CD="Checked",ID="Delete",pD="Close",AD="Commercial",mD="Configure",OD="Connected",ED="Continue",fD="Copied",xD="Create",_D="Crop",SD="Delete",kD="Delete",YD="Discard",vD="Disconnected",bD="Error",QD="Filter",UD="Friday",$D="Latitude",PD="Logout",WD="Longitude",BD="Message",JD="Monday",RD="Name",FD="Objects",GD="Ok",HD="Product",VD="Rename/Move/Copy",ZD="Repeat",XD="Replace",KD="Root",qD="Saturday",eh="Save",th="Selected",sh="States",ih="Sunday",rh="Thursday",oh="Timestamp",nh="Tuesday",ah="Update",Mh="Valid till",ch="Value",uh="Version",lh="Wednesday",Nh="Width",Lh="Yes",gh="different",jh="Everyone can read object",yh="Everyone can read state",Th="Everyone can write object",dh="Everyone can write state",Dh="Group can read object",hh="Group can read state",zh="Group can write object",wh="Group can write state",Ch="Owner can read object",Ih="Owner can read state",ph="Owner can write object",Ah="Owner can write state",mh="Buttons",Oh="Changed from",Eh="close",fh="Create boolean state",xh="Create channel",_h="Create device",Sh="Create number state",kh="Create state",Yh="Create string state",vh="days",bh="Fr",Qh="Mo",Uh="Sa",$h="Su",Ph="Th",Wh="Tu",Bh="We",Jh="Expert mode",Rh="FALSE",Fh="All files",Gh="Audio",Hh="Code/JSON",Vh="Images",Zh="Text",Xh="Video",Kh="Settings",qh="without",ez="Function",tz="ID",sz="Name",iz="Role",rz="Room",oz="Type",nz="Invalid settings",az="Last change",Mz="locally",cz="Apr",uz="Aug",lz="Dec",Nz="Feb",Lz="Jan",gz="Jul",jz="Jun",yz="Mai",Tz="Mar",dz="Nov",Dz="Oct",hz="Sep",zz="Apr",wz="Aug",Cz="Dec",Iz="Feb",pz="Jan",Az="Jul",mz="Jun",Oz="Mai",Ez="Mar",fz="Nov",xz="Oct",_z="Sep",Sz="none",kz="Object changed by",Yz="Object last changed at",vz="Settings from other adapter %s",bz="Quality code",Qz="repeat",Uz='To select folder, just hold the key "shift" by clicking the folder.',$z="Show all",Pz="State changed by",Wz="Object changed from",Bz="Timestamp",Jz="Acknowledged",Rz="Comment",Fz="Copy the state value",Gz="Hold Cltr/⌘ key to open the link",Hz="Custom settings",Vz="Delete object",Zz="Edit object",Xz="Edit the state value",Kz="Expires in",qz="From",ew="Last changed",tw="Quality",sw="Time stamp",iw="User",rw="Value",ow="TRUE",nw="Value",aw="Warning: The CRON job will run every minute during the specified period!",Mw="Warning: The CRON job will run every second during the specified period!",cw="CRON",uw="Date",lw="Dates",Nw="Day",Lw="Day of week",gw="Every",jw="every N days",yw="every Nth day of the week",Tw="every N day of week",dw="every N hours",Dw="every N minutes",hw="every N months",zw="every N seconds",ww="every day",Cw="every day of the week",Iw="every day of the week",pw="every hour",Aw="every minute",mw="every month",Ow="every second",Ew="From",fw="Hours",xw="Interval",_w="Interval between",Sw="Invalid CRON",kw="Minutes",Yw="months",vw="Once",bw="Period",Qw="Seconds",Uw="Simple",$w="Specific time",Pw="specific dates",Ww="specific day(s) of the week",Bw="specific day of weeks",Jw="specific hours",Rw="specific minutes",Fw="specific months",Gw="specific seconds",Hw="Time",Vw="To",Zw="Wizard",Xw="all",Kw="Astro day",qw="Astro night",eC="Dawn",tC="Dusk",sC="Golden hour",iC="Golden hour end",rC="Nadir",oC="Nautical dawn",nC="Nautical dusk",aC="Night",MC="Night end",cC="Solar noon",uC="Sunrise",lC="Sunrise end",NC="Sunset",LC="Sunset start",gC="at",jC="at %s",yC="every day",TC="every hour",dC="every minute",DC="every month",hC="every %s day",zC="every %s hours",wC="every %s minutes",CC="every %s months",IC="every %s weeks",pC="every %s years",AC="every week",mC="every year",OC="from %s to %s",EC="never",fC="on %s of %s",xC="on %s and %s of",_C="on every date of",SC="%s",kC="%s and %s",YC="on %s",vC="on %s and %s",bC="on weekends",QC="on working days",UC="will ne be not executed any more, because start is in the past",$C="on %s",PC="from %s",WC="Execute from to",BC="to %s",JC="every",RC="Specific time",FC="from",GC="From-to",HC="Interval time",VC="invert",ZC="none",XC="on",KC="Period",qC="Daily",eI="Dates",tI="Day",sI="Every",iI="Every day",rI="Every month",oI="Every week",nI="Every year",aI="Hours",MI="Minutes",cI="month",uI="Monthly",lI="Once",NI="Specific months",LI="Week",gI="Weekdays",jI="Weekend",yI="Weekly",TI="Workdays",dI="Year",DI="Yearly",hI="Specific time",zI="Time",wI="to",CI="Valid",II="from",pI="to",AI="Whole day",mI="every month",OI={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license",ra_Actions:DD,"ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:hD,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:zD,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:wD,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:CD,ra_Clear:ID,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:pD,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:AD,ra_Configure:mD,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:OD,ra_Continue:ED,ra_Copied:fD,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:xD,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:_D,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:SD,ra_Delete:kD,"ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:YD,ra_Disconnected:vD,"ra_Do not ask for next 2 hours in this session":"Do not ask for next 2 hours in this session","ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit full path":"Edit full path","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value","ra_Enter the code from that page here":"Enter the code from that page here",ra_Error:bD,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:QD,"ra_Filter and Data Actions":"Filter and Data Actions","ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:UD,"ra_Get %s access":"Get %s access","ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_If the button above does not work, you can authorize manually this app by visiting this url":"If the button above does not work, you can authorize manually this app by visiting this url","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:$D,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist","ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Logout:PD,ra_Longitude:WD,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:BD,ra_Monday:JD,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:RD,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:FD,ra_Ok:GD,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please allow popups in your browser for this page!":"Please allow popups in your browser for this page!","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Press ENTER Key to add new item":"Press ENTER Key to add new item","ra_Private certificate":"Private certificate",ra_Product:HD,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Rename_Move_Copy:VD,"ra_Renew %s access":"Renew %s access",ra_Repeat:ZD,ra_Replace:XD,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:KD,ra_Saturday:qD,ra_Save:eh,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:th,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Session will expire in %s seconds. Continue?":"Session will expire in %s seconds. Continue?","ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:sh,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Successfully authorized. Token valid till %s and will be automatically renewed.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Successfully authorized. Token valid till %s but it can expire as the instance is not running.","ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:ih,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:rh,ra_Timestamp:oh,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:nh,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:ah,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:Mh,ra_Value:ch,ra_Version:uh,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:lh,ra_Width:Nh,ra_Yes:Lh,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text","ra_You can use * as wildcard":"You can use * as wildcard",ra___different__:gh,ra_aclEveryone_read_object:jh,ra_aclEveryone_read_state:yh,ra_aclEveryone_write_object:Th,ra_aclEveryone_write_state:dh,ra_aclGroup_read_object:Dh,ra_aclGroup_read_state:hh,ra_aclGroup_write_object:zh,ra_aclGroup_write_state:wh,ra_aclOwner_read_object:Ch,ra_aclOwner_read_state:Ih,ra_aclOwner_write_object:ph,ra_aclOwner_write_state:Ah,ra_buttons:mh,ra_changedFrom:Oh,ra_close:Eh,ra_create_boolean_state:fh,ra_create_channel:xh,ra_create_device:_h,ra_create_number_state:Sh,ra_create_state:kh,ra_create_string_state:Yh,ra_daysShortText:vh,ra_dow_Fr:bh,ra_dow_Mo:Qh,ra_dow_Sa:Uh,ra_dow_Su:$h,ra_dow_Th:Ph,ra_dow_Tu:Wh,ra_dow_We:Bh,ra_expertMode:Jh,ra_false:Rh,ra_fileType_all:Fh,ra_fileType_audio:Gh,ra_fileType_code:Hh,ra_fileType_images:Vh,ra_fileType_txt:Zh,ra_fileType_video:Xh,"ra_fileType_video,":"Video",ra_filter_customs:Kh,ra_filter_customs_without:qh,ra_filter_func:ez,ra_filter_id:tz,ra_filter_name:sz,ra_filter_role:iz,ra_filter_room:rz,ra_filter_type:oz,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:nz,ra_lastChange:az,ra_locally:Mz,ra_month_Apr:cz,ra_month_Aug:uz,ra_month_Dec:lz,ra_month_Feb:Nz,ra_month_Jan:Lz,ra_month_Jul:gz,ra_month_Jun:jz,ra_month_Mai:yz,ra_month_Mar:Tz,ra_month_Nov:dz,ra_month_Oct:Dz,ra_month_Sep:hz,ra_months_Apr:zz,ra_months_Aug:wz,ra_months_Dec:Cz,ra_months_Feb:Iz,ra_months_Jan:pz,ra_months_Jul:Az,ra_months_Jun:mz,ra_months_Mai:Oz,ra_months_Mar:Ez,ra_months_Nov:fz,ra_months_Oct:xz,ra_months_Sep:_z,"ra_no confirm for 5 mins":"no confirm for 5 mins",ra_none:Sz,ra_object_changed_by:kz,ra_object_changed_by_user:Yz,ra_otherConfig:vz,ra_qualityCode:bz,ra_repeat:Qz,ra_select_folder_hint:Uz,ra_show_all:$z,ra_state_changed_by:Pz,ra_state_changed_from:Wz,ra_timestamp:Bz,ra_tooltip_ack:Jz,ra_tooltip_comment:Rz,ra_tooltip_copyState:Fz,ra_tooltip_ctrlForLink:Gz,ra_tooltip_customConfig:Hz,ra_tooltip_deleteObject:Vz,ra_tooltip_editObject:Zz,ra_tooltip_editState:Xz,ra_tooltip_expire:Kz,ra_tooltip_from:qz,ra_tooltip_lc:ew,ra_tooltip_quality:tw,ra_tooltip_ts:sw,ra_tooltip_user:iw,ra_tooltip_value:rw,ra_true:ow,"ra_use seconds":"use seconds",ra_val:nw,"ra_via internet":"via internet",ra_warning_every_minute:aw,ra_warning_every_second:Mw,sc_cron:cw,sc_date:uw,sc_dates:lw,sc_dow:Nw,sc_dows:Lw,sc_every:gw,sc_everyN_dates:jw,sc_everyN_dow:yw,sc_everyN_dows:Tw,sc_everyN_hours:dw,sc_everyN_minutes:Dw,sc_everyN_months:hw,sc_everyN_seconds:zw,sc_every_dates:ww,sc_every_dow:Cw,sc_every_dows:Iw,sc_every_hours:pw,sc_every_minutes:Aw,sc_every_months:mw,sc_every_seconds:Ow,sc_from:Ew,sc_hours:fw,sc_interval:xw,sc_intervalBetween:_w,sc_invalid_cron:Sw,sc_minutes:kw,sc_months:Yw,sc_once:vw,sc_period:bw,sc_seconds:Qw,sc_simple:Uw,sc_specific:$w,sc_specific_dates:Pw,sc_specific_dow:Ww,sc_specific_dows:Bw,sc_specific_hours:Jw,sc_specific_minutes:Rw,sc_specific_months:Fw,sc_specific_seconds:Gw,sc_time:Hw,sc_to:Vw,sc_wizard:Zw,sch_all:Xw,sch_astroDay:Kw,sch_astroNight:qw,sch_astro_dawn:eC,sch_astro_dusk:tC,sch_astro_goldenHour:sC,sch_astro_goldenHourEnd:iC,sch_astro_nadir:rC,sch_astro_nauticalDawn:oC,sch_astro_nauticalDusk:nC,sch_astro_night:aC,sch_astro_nightEnd:MC,sch_astro_solarNoon:cC,sch_astro_sunrise:uC,sch_astro_sunriseEnd:lC,sch_astro_sunset:NC,sch_astro_sunsetStart:LC,sch_at:gC,sch_desc_atTime:jC,sch_desc_everyDay:yC,sch_desc_everyHour:TC,sch_desc_everyMinute:dC,sch_desc_everyMonth:DC,sch_desc_everyNDay:hC,sch_desc_everyNHours:zC,sch_desc_everyNMinutes:wC,sch_desc_everyNMonths:CC,sch_desc_everyNWeeks:IC,sch_desc_everyNYears:pC,sch_desc_everyWeek:AC,sch_desc_everyYear:mC,sch_desc_intervalFromTo:OC,sch_desc_never:EC,sch_desc_onDate:fC,sch_desc_onDates:xC,sch_desc_onEveryDate:_C,sch_desc_onMonth:SC,sch_desc_onMonths:kC,sch_desc_onWeekday:YC,sch_desc_onWeekdays:vC,sch_desc_onWeekends:bC,sch_desc_onWorkdays:QC,sch_desc_onceInPast:UC,sch_desc_once_on:$C,sch_desc_validFrom:PC,sch_desc_validFromTo:WC,sch_desc_validTo:BC,sch_every:JC,sch_exactTime:RC,sch_from:FC,sch_fromTo:GC,sch_intervalTime:HC,sch_invert:VC,sch_no_one:ZC,sch_on:XC,sch_period:KC,sch_periodDaily:qC,sch_periodDates:eI,sch_periodDay:tI,sch_periodEvery:sI,sch_periodEveryDay:iI,sch_periodEveryMonth:rI,sch_periodEveryWeek:oI,sch_periodEveryYear:nI,sch_periodHours:aI,sch_periodMinutes:MI,sch_periodMonth:cI,sch_periodMonthly:uI,sch_periodOnce:lI,sch_periodSpecificMonths:NI,sch_periodWeek:LI,sch_periodWeekdays:gI,sch_periodWeekend:jI,sch_periodWeekly:yI,sch_periodWorkdays:TI,sch_periodYear:dI,sch_periodYearly:DI,sch_specificTime:hI,sch_time:zI,sch_to:wI,sch_valid:CI,sch_validFrom:II,sch_validTo:pI,sch_wholeDay:AI,sch_yearEveryMonth:mI},EI="Aktionen",fI="Anhängen",xI="Abbrechen",_I="Kategorien",SI="Geprüft",kI="Löschen",YI="Schließen",vI="Kommerziell",bI="Konfigurieren",QI="Verbunden",UI="Weitermachen",$I="Kopiert",PI="Erstellen",WI="Ernte",BI="Entf",JI="Löschen",RI="Verwerfen",FI="Getrennt",GI="Fehler",HI="Filter",VI="Freitag",ZI="Breite",XI="Ausloggen",KI="Längengrad",qI="Meldung",e1="Montag",t1="Name",s1="Objekte",i1="OK",r1="Produkt",o1="Umbenennen/Verschieben/Kopieren",n1="Wiederholen",a1="Ersetzen",M1="Anfang",c1="Samstag",u1="Speichern",l1="Ausgewählt",N1="Zustände",L1="Sonntag",g1="Donnerstag",j1="Zeitstempel",y1="Dienstag",T1="Aktualisieren",d1="Gültig bis",D1="Wert",h1="Ausführung",z1="Mittwoch",w1="Breite",C1="Ja",I1="unterschiedlich",p1="Jeder kann Objekt lesen",A1="Jeder kann Zustand lesen",m1="Jeder kann ein Objekt schreiben",O1="Jeder kann Zustand schreiben",E1="Gruppe kann Objekt lesen",f1="Gruppe kann Status lesen",x1="Gruppe kann Objekt schreiben",_1="Gruppe kann Status schreiben",S1="Besitzer kann Objekt lesen",k1="Besitzer kann Zustand lesen",Y1="Besitzer kann Objekt schreiben",v1="Besitzer kann Zustand schreiben",b1="Tasten",Q1="Geändert von",U1="Schließen",$1="Booleschen Zustand erstellen",P1="Kanal erstellen",W1="Gerät erstellen",B1="Nummern-Zustand erstellen",J1="Zustand erstellen",R1="String-Zustand erstellen",F1="T.",G1="Fr",H1="Mo",V1="Sa",Z1="So",X1="Do",K1="Di",q1="Mi",ep="Expertenmodus",tp="FALSCH",sp="Alle Dateien",ip="Audio",rp="Code/JSON",op="Bilder",np="Text",ap="Video",Mp="Einstellungen",cp="ohne",up="Funktion",lp="ID",Np="Name",Lp="Rolle",gp="Raum",jp="Typ",yp="Ungültige Einstellungen",Tp="Letzte Änderung",dp="örtlich",Dp="Apr",hp="Aug",zp="Dez",wp="Feb",Cp="Jan",Ip="Jul",pp="Jun",Ap="Mai",mp="Mär",Op="Nov",Ep="Okt",fp="Sep",xp="Apr",_p="Aug",Sp="Dez",kp="Feb",Yp="Jan",vp="Jul",bp="Jun",Qp="Mai",Up="Mär",$p="Nov",Pp="Okt",Wp="Sep",Bp="kein",Jp="Objekt geändert von",Rp="Objekt zuletzt geändert um",Fp="Einstellungen von anderen Adaptern %s",Gp="Qualitätscode",Hp="wiederholen",Vp='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',Zp="Alle anzeigen",Xp="Zustand geändert durch",Kp="Objekt geändert von",qp="Zeitstempel",eA="Bestätigt",tA="Kommentar",sA="Statuswert kopieren",iA="Strg/⌘-Taste gedrückt halten, um den Link zu öffnen",rA="Benutzerdefinierte Einstellungen",oA="Objekt löschen",nA="Objekt bearbeiten",aA="Statuswert bearbeiten",MA="Läuft ab in",cA="Von",uA="Zuletzt geändert",lA="Qualität",NA="Zeitstempel",LA="Benutzer",gA="Wert",jA="WAHR",yA="Wert",TA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",dA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",DA="CRON",hA="Datum",zA="Tage",wA="Tag",CA="Wochentage",IA="Jeden",pA="alle N Tage",AA="jeden x-ten Tag der Woche",mA="alle N Wochentage",OA="alle N Stunden",EA="alle N Minuten",fA="alle N Monate",xA="alle N Sekunden",_A="jeden Tag",SA="jeden Tag der Woche",kA="jeden Tag der Woche",YA="jede Stunde",vA="jede Minute",bA="jeden Monat",QA="jede Sekunde",UA="Von",$A="Stunden",PA="Intervall",WA="Intervall zwischen",BA="Ungültiger CRON",JA="Minuten",RA="Monate",FA="Einmal",GA="Zeitraum",HA="Sekunden",VA="Einfach",ZA="Bestimmte Zeit",XA="bestimmte Tage",KA="bestimmte(r) Tag(e) der Woche",qA="bestimmten Wochentag",e2="bestimmte Stunden",t2="bestimmte Minuten",s2="bestimmte Monate",i2="bestimmte Sekunden",r2="Zeit",o2="Bis",n2="Wizard",a2="alle",M2="Astronomischer Tag",c2="Astronomische Nacht",u2="Morgendämmerung",l2="Abenddämmerung",N2="Goldene Stunde",L2="Goldene Stundenende",g2="Nadir",j2="Nautische Morgendämmerung",y2="Nautische Abenddämmerung",T2="Nacht",d2="Nachtende",D2="Sonnenmittag",h2="Sonnenaufgang",z2="Sonnenaufgangende",w2="Sonnenuntergang",C2="Sonnenuntergangstart",I2="am",p2="um %s",A2="jeden Tag",m2="jede Stunde",O2="jede Minute",E2="jeden Monat",f2="jeden %s Tag",x2="alle %s Stunden",_2="alle %s Minuten",S2="alle %s Monate",k2="alle %s Wochen",Y2="alle %s Jahre",v2="jede Woche",b2="jedes Jahr",Q2="von %s bis %s",U2="noch nie",$2="am %s von %s",P2="am %s und %s von",W2="an jedem Datum von",B2="%s",J2="%s und %s",R2="auf %s",F2="auf %s und %s",G2="an Wochenenden",H2="an Werktagen",V2="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",Z2="auf %s",X2="von %s",K2="Ausführen von bis",q2="bis %s",em="jeden",tm="Bestimmte Zeit",sm="von",im="Von bis",rm="Zeitintervall",om="umkehren",nm="keiner",am="am",Mm="Zeitraum",cm="Täglich",um="Daten",lm="Tag",Nm="Jeden",Lm="Jeden Tag",gm="Jeden Monat",jm="Jede Woche",ym="Jedes Jahr",Tm="Stunden",dm="Minuten",Dm="Monat",hm="Monatlich",zm="Einmal",wm="Bestimmte Monate",Cm="Woche",Im="Wochentage",pm="Wochenende",Am="Wöchentlich",mm="Arbeitstage",Om="Jahr",Em="Jährlich",fm="Bestimmte Zeit",xm="Zeit",_m="zu",Sm="Gültigkeit",km="von",Ym="bis",vm="Ganzer Tag",bm="jeden Monat",Qm={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren",ra_Actions:EI,"ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:fI,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:xI,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:_I,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:SI,ra_Clear:kI,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:YI,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:vI,ra_Configure:bI,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:QI,ra_Continue:UI,ra_Copied:$I,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:PI,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:WI,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:BI,ra_Delete:JI,"ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:RI,ra_Disconnected:FI,"ra_Do not ask for next 2 hours in this session":"Fragen Sie nicht nach den nächsten 2 Stunden in dieser Sitzung","ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit full path":"Vollständigen Pfad bearbeiten","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten","ra_Enter the code from that page here":"Geben Sie den Code von dieser Seite hier ein",ra_Error:GI,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:HI,"ra_Filter and Data Actions":"Filter- und Datenaktionen","ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:VI,"ra_Get %s access":"%s Zugriff erhalten","ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:ZI,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Logout:XI,ra_Longitude:KI,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:qI,ra_Monday:e1,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:t1,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:s1,ra_Ok:i1,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please allow popups in your browser for this page!":"Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Press ENTER Key to add new item":"Die Eingabetaste drücken, um ein neues Element hinzuzufügen","ra_Private certificate":"Privates Zertifikat",ra_Product:r1,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Rename_Move_Copy:o1,"ra_Renew %s access":"%s Zugriff erneuern",ra_Repeat:n1,ra_Replace:a1,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:M1,ra_Saturday:c1,ra_Save:u1,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:l1,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Session will expire in %s seconds. Continue?":"Die Sitzung läuft in %s Sekunden ab. Fortfahren?","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:N1,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.","ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:L1,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:g1,ra_Timestamp:j1,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:y1,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:T1,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:d1,ra_Value:D1,ra_Version:h1,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:z1,ra_Width:w1,ra_Yes:C1,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben","ra_You can use * as wildcard":"Sie können * als Platzhalter verwenden",ra___different__:I1,ra_aclEveryone_read_object:p1,ra_aclEveryone_read_state:A1,ra_aclEveryone_write_object:m1,ra_aclEveryone_write_state:O1,ra_aclGroup_read_object:E1,ra_aclGroup_read_state:f1,ra_aclGroup_write_object:x1,ra_aclGroup_write_state:_1,ra_aclOwner_read_object:S1,ra_aclOwner_read_state:k1,ra_aclOwner_write_object:Y1,ra_aclOwner_write_state:v1,ra_buttons:b1,ra_changedFrom:Q1,ra_close:U1,ra_create_boolean_state:$1,ra_create_channel:P1,ra_create_device:W1,ra_create_number_state:B1,ra_create_state:J1,ra_create_string_state:R1,ra_daysShortText:F1,ra_dow_Fr:G1,ra_dow_Mo:H1,ra_dow_Sa:V1,ra_dow_Su:Z1,ra_dow_Th:X1,ra_dow_Tu:K1,ra_dow_We:q1,ra_expertMode:ep,ra_false:tp,ra_fileType_all:sp,ra_fileType_audio:ip,ra_fileType_code:rp,ra_fileType_images:op,ra_fileType_txt:np,ra_fileType_video:ap,"ra_fileType_video,":"Video",ra_filter_customs:Mp,ra_filter_customs_without:cp,ra_filter_func:up,ra_filter_id:lp,ra_filter_name:Np,ra_filter_role:Lp,ra_filter_room:gp,ra_filter_type:jp,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:yp,ra_lastChange:Tp,ra_locally:dp,ra_month_Apr:Dp,ra_month_Aug:hp,ra_month_Dec:zp,ra_month_Feb:wp,ra_month_Jan:Cp,ra_month_Jul:Ip,ra_month_Jun:pp,ra_month_Mai:Ap,ra_month_Mar:mp,ra_month_Nov:Op,ra_month_Oct:Ep,ra_month_Sep:fp,ra_months_Apr:xp,ra_months_Aug:_p,ra_months_Dec:Sp,ra_months_Feb:kp,ra_months_Jan:Yp,ra_months_Jul:vp,ra_months_Jun:bp,ra_months_Mai:Qp,ra_months_Mar:Up,ra_months_Nov:$p,ra_months_Oct:Pp,ra_months_Sep:Wp,"ra_no confirm for 5 mins":"5 Minuten lang keine Bestätigung",ra_none:Bp,ra_object_changed_by:Jp,ra_object_changed_by_user:Rp,ra_otherConfig:Fp,ra_qualityCode:Gp,ra_repeat:Hp,ra_select_folder_hint:Vp,ra_show_all:Zp,ra_state_changed_by:Xp,ra_state_changed_from:Kp,ra_timestamp:qp,ra_tooltip_ack:eA,ra_tooltip_comment:tA,ra_tooltip_copyState:sA,ra_tooltip_ctrlForLink:iA,ra_tooltip_customConfig:rA,ra_tooltip_deleteObject:oA,ra_tooltip_editObject:nA,ra_tooltip_editState:aA,ra_tooltip_expire:MA,ra_tooltip_from:cA,ra_tooltip_lc:uA,ra_tooltip_quality:lA,ra_tooltip_ts:NA,ra_tooltip_user:LA,ra_tooltip_value:gA,ra_true:jA,"ra_use seconds":"Sekunden benutzen",ra_val:yA,"ra_via internet":"übers Internet",ra_warning_every_minute:TA,ra_warning_every_second:dA,sc_cron:DA,sc_date:hA,sc_dates:zA,sc_dow:wA,sc_dows:CA,sc_every:IA,sc_everyN_dates:pA,sc_everyN_dow:AA,sc_everyN_dows:mA,sc_everyN_hours:OA,sc_everyN_minutes:EA,sc_everyN_months:fA,sc_everyN_seconds:xA,sc_every_dates:_A,sc_every_dow:SA,sc_every_dows:kA,sc_every_hours:YA,sc_every_minutes:vA,sc_every_months:bA,sc_every_seconds:QA,sc_from:UA,sc_hours:$A,sc_interval:PA,sc_intervalBetween:WA,sc_invalid_cron:BA,sc_minutes:JA,sc_months:RA,sc_once:FA,sc_period:GA,sc_seconds:HA,sc_simple:VA,sc_specific:ZA,sc_specific_dates:XA,sc_specific_dow:KA,sc_specific_dows:qA,sc_specific_hours:e2,sc_specific_minutes:t2,sc_specific_months:s2,sc_specific_seconds:i2,sc_time:r2,sc_to:o2,sc_wizard:n2,sch_all:a2,sch_astroDay:M2,sch_astroNight:c2,sch_astro_dawn:u2,sch_astro_dusk:l2,sch_astro_goldenHour:N2,sch_astro_goldenHourEnd:L2,sch_astro_nadir:g2,sch_astro_nauticalDawn:j2,sch_astro_nauticalDusk:y2,sch_astro_night:T2,sch_astro_nightEnd:d2,sch_astro_solarNoon:D2,sch_astro_sunrise:h2,sch_astro_sunriseEnd:z2,sch_astro_sunset:w2,sch_astro_sunsetStart:C2,sch_at:I2,sch_desc_atTime:p2,sch_desc_everyDay:A2,sch_desc_everyHour:m2,sch_desc_everyMinute:O2,sch_desc_everyMonth:E2,sch_desc_everyNDay:f2,sch_desc_everyNHours:x2,sch_desc_everyNMinutes:_2,sch_desc_everyNMonths:S2,sch_desc_everyNWeeks:k2,sch_desc_everyNYears:Y2,sch_desc_everyWeek:v2,sch_desc_everyYear:b2,sch_desc_intervalFromTo:Q2,sch_desc_never:U2,sch_desc_onDate:$2,sch_desc_onDates:P2,sch_desc_onEveryDate:W2,sch_desc_onMonth:B2,sch_desc_onMonths:J2,sch_desc_onWeekday:R2,sch_desc_onWeekdays:F2,sch_desc_onWeekends:G2,sch_desc_onWorkdays:H2,sch_desc_onceInPast:V2,sch_desc_once_on:Z2,sch_desc_validFrom:X2,sch_desc_validFromTo:K2,sch_desc_validTo:q2,sch_every:em,sch_exactTime:tm,sch_from:sm,sch_fromTo:im,sch_intervalTime:rm,sch_invert:om,sch_no_one:nm,sch_on:am,sch_period:Mm,sch_periodDaily:cm,sch_periodDates:um,sch_periodDay:lm,sch_periodEvery:Nm,sch_periodEveryDay:Lm,sch_periodEveryMonth:gm,sch_periodEveryWeek:jm,sch_periodEveryYear:ym,sch_periodHours:Tm,sch_periodMinutes:dm,sch_periodMonth:Dm,sch_periodMonthly:hm,sch_periodOnce:zm,sch_periodSpecificMonths:wm,sch_periodWeek:Cm,sch_periodWeekdays:Im,sch_periodWeekend:pm,sch_periodWeekly:Am,sch_periodWorkdays:mm,sch_periodYear:Om,sch_periodYearly:Em,sch_specificTime:fm,sch_time:xm,sch_to:_m,sch_valid:Sm,sch_validFrom:km,sch_validTo:Ym,sch_wholeDay:vm,sch_yearEveryMonth:bm},Um="Действия",$m="Добавить",Pm="Отмена",Wm="Категории",Bm="Проверено",Jm="Удалить",Rm="Закрыть",Fm="Коммерческая",Gm="Настроить",Hm="Соединение установлено",Vm="Продолжать",Zm="скопировано",Xm="Создать",Km="Обрезать",qm="Delete",eO="Удалить",tO="Отказаться",sO="Отключено",iO="Ошибка",rO="Фильтр",oO="Пятница",nO="Широта",aO="Выйти",MO="Долгота",cO="Сообщение",uO="Понедельник",lO="Имя",NO="Объекты",LO="Ok",gO="Продукт",jO="Переименовать/Переместить/Копировать",yO="Повторение",TO="Заменять",dO="Начало",DO="Суббота",hO="Сохранить",zO="выбранный",wO="Состояния",CO="Воскресенье",IO="Четверг",pO="Времени",AO="Вторник",mO="Обновить",OO="Годен до",EO="Значение",fO="Версия",xO="Среда",_O="Ширина",SO="Да",kO="разное",YO="Каждый может читать объект",vO="Каждый может читать состояние",bO="Каждый может написать объект",QO="Каждый может написать состояние",UO="Группа может читать объект",$O="Группа может читать состояние",PO="Группа может писать объект",WO="Группа может записывать состояние",BO="Владелец может читать объект",JO="Владелец может читать состояние",RO="Владелец может писать объект",FO="Владелец может писать состояние",GO="Кнопки",HO="Изменено с",VO="Закрыть",ZO="Создать логическое состояние",XO="Создать канал",KO="Создать устройство",qO="Создать состояние номера",eE="Создать состояние",tE="Создать состояние строки",sE="д.",iE="Пт",rE="Пн",oE="Сб",nE="Вс",aE="Чт",ME="Вт",cE="Ср",uE="Экспертный режим",lE="ЛОЖЬ",NE="Все файлы",LE="Аудио",gE="Код/JSON",jE="Картинки",yE="Текст",TE="видео",dE="настройки",DE="без",hE="функция",zE="ID",wE="Имя",CE="роль",IE="комната",pE="Тип",AE="Неверные настройки",mE="Последнее изменение",OE="локально",EE="Апр",fE="Авг",xE="Дек",_E="Фев",SE="Янв",kE="Июл",YE="Июн",vE="Май",bE="Мрт",QE="Ноя",UE="Окт",$E="Сен",PE="Апр",WE="Авг",BE="Дек",JE="Фев",RE="Янв",FE="Июнь",GE="Июль",HE="Май",VE="Март",ZE="Ноя",XE="Окт",KE="Сен",qE="ничего",ef="Объект изменен",tf="Последний раз объект изменен в",sf="Настройки из другого адаптера %s",rf="Код качества",of="повтор",nf="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",af="Показать все",Mf="Состояние изменено",cf="Объект изменен с",uf="Отметка времени",lf="Подтверждено",Nf="Комментарий",Lf="Скопируйте значение состояния",gf="Удерживайте клавишу Cltr/⌘, чтобы открыть ссылку",jf="Пользовательские настройки",yf="Удалить объект",Tf="Редактировать объект",df="Изменить значение состояния",Df="Истекает через",hf="От",zf="Последнее изменение",wf="Качество",Cf="Отметка времени",If="пользователь",pf="Значение",Af="истинный",mf="Значение",Of="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",Ef="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",ff="CRON",xf="Дата",_f="Даты",Sf="День",kf="День недели",Yf="каждый(ую/ые)",vf="каждый N день",bf="каждый N-й день недели",Qf="каждый N день недели",Uf="каждые N часов",$f="каждые N минут",Pf="каждые N месяцев",Wf="каждые N секунд",Bf="каждый день",Jf="Каждый день недели",Rf="каждый день недели",Ff="каждый час",Gf="каждую минуту",Hf="каждый месяц",Vf="каждую секунду",Zf="От",Xf="часы",Kf="Интервал",qf="Интервал между",ex="Неверный CRON",tx="минуты",sx="Месяцы",ix="один раз",rx="Период",ox="секунды",nx="Просто",ax="Конкретное время",Mx="конкретные даты",cx="конкретный день(а) недели",ux="конкретный день недели",lx="конкретные часы",Nx="конкретные минуты",Lx="конкретные месяцы",gx="конкретные секунды",jx="Время",yx="До",Tx="Форма",dx="все",Dx="днём",hx="ночью",zx="Рассвет",wx="Сумерки",Cx="Золотой час",Ix="Конец золотого часа",px="Надир",Ax="Морской рассвет",mx="Морские сумерки",Ox="Ночь",Ex="Конец ночи",fx="Солнечный полдень",xx="Восход",_x="Восход солнца",Sx="Заход солнца",kx="Начало заката",Yx="дата",vx="в %s",bx="каждый день",Qx="каждый час",Ux="каждую минуту",$x="каждый месяц",Px="каждый %s день",Wx="каждый %s часов",Bx="каждые %s минут",Jx="каждые %s месяцев",Rx="каждые %s недель",Fx="каждые %s лет",Gx="каждую неделю",Hx="каждый год",Vx="от %s до %s",Zx="никогда",Xx="%s %s",Kx="%s и %s",qx="в каждый день",e_="%s",t_="%s и %s",s_="%s",i_="%s и %s",r_="на выходных",o_="в рабочие дни",n_="не будет больше выполняться, потому что начало в прошлом",a_="%s",M_="%s",c_="Выполнить с",u_="%s",l_="каждый",N_="Конкретное время",L_="от",g_="От и до",j_="Интервал времени",y_="инвертировать",T_="никакой",d_="на",D_="период",h_="Ежедневно",z_="Даты",w_="День",C_="каждый",I_="Каждый день",p_="Каждый месяц",A_="Каждую неделю",m_="Каждый год",O_="часов",E_="минут",f_="месяц",x_="ежемесячно",__="однажды",S_="Конкретные месяцы",k_="Неделю",Y_="Будние дни",v_="выходные",b_="еженедельно",Q_="Рабочие дни",U_="Год",$_="каждый год",P_="Конкретное время",W_="Время",B_="в",J_="действительный",R_="от",F_="в",G_="Весь день",H_="каждый месяц",V_={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию",ra_Actions:Um,"ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:$m,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:Pm,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:Wm,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:Bm,ra_Clear:Jm,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:Rm,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:Fm,ra_Configure:Gm,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:Hm,ra_Continue:Vm,ra_Copied:Zm,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:Xm,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:Km,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:qm,ra_Delete:eO,"ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:tO,ra_Disconnected:sO,"ra_Do not ask for next 2 hours in this session":"Не спрашивайте о следующих 2 часах в этом сеансе","ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit full path":"Изменить полный путь","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение","ra_Enter the code from that page here":"Введите код с этой страницы здесь",ra_Error:iO,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:rO,"ra_Filter and Data Actions":"Фильтрация и действия с данными","ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:oO,"ra_Get %s access":"Получить %s доступ","ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:nO,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Logout:aO,ra_Longitude:MO,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:cO,ra_Monday:uO,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:lO,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:NO,ra_Ok:LO,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please allow popups in your browser for this page!":"Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Press ENTER Key to add new item":"Нажмите клавишу ENTER, чтобы добавить новый элемент.","ra_Private certificate":"Частный сертификат",ra_Product:gO,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Rename_Move_Copy:jO,"ra_Renew %s access":"Продлить доступ %s",ra_Repeat:yO,ra_Replace:TO,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:dO,ra_Saturday:DO,ra_Save:hO,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:zO,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Session will expire in %s seconds. Continue?":"Сессия истечет через %s секунд. Продолжить?","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:wO,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.","ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:CO,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:IO,ra_Timestamp:pO,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:AO,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:mO,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:OO,ra_Value:EO,ra_Version:fO,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:xO,ra_Width:_O,ra_Yes:SO,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст","ra_You can use * as wildcard":"Вы можете использовать * в качестве подстановочного знака",ra___different__:kO,ra_aclEveryone_read_object:YO,ra_aclEveryone_read_state:vO,ra_aclEveryone_write_object:bO,ra_aclEveryone_write_state:QO,ra_aclGroup_read_object:UO,ra_aclGroup_read_state:$O,ra_aclGroup_write_object:PO,ra_aclGroup_write_state:WO,ra_aclOwner_read_object:BO,ra_aclOwner_read_state:JO,ra_aclOwner_write_object:RO,ra_aclOwner_write_state:FO,ra_buttons:GO,ra_changedFrom:HO,ra_close:VO,ra_create_boolean_state:ZO,ra_create_channel:XO,ra_create_device:KO,ra_create_number_state:qO,ra_create_state:eE,ra_create_string_state:tE,ra_daysShortText:sE,ra_dow_Fr:iE,ra_dow_Mo:rE,ra_dow_Sa:oE,ra_dow_Su:nE,ra_dow_Th:aE,ra_dow_Tu:ME,ra_dow_We:cE,ra_expertMode:uE,ra_false:lE,ra_fileType_all:NE,ra_fileType_audio:LE,ra_fileType_code:gE,ra_fileType_images:jE,ra_fileType_txt:yE,ra_fileType_video:TE,"ra_fileType_video,":"видео",ra_filter_customs:dE,ra_filter_customs_without:DE,ra_filter_func:hE,ra_filter_id:zE,ra_filter_name:wE,ra_filter_role:CE,ra_filter_room:IE,ra_filter_type:pE,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:AE,ra_lastChange:mE,ra_locally:OE,ra_month_Apr:EE,ra_month_Aug:fE,ra_month_Dec:xE,ra_month_Feb:_E,ra_month_Jan:SE,ra_month_Jul:kE,ra_month_Jun:YE,ra_month_Mai:vE,ra_month_Mar:bE,ra_month_Nov:QE,ra_month_Oct:UE,ra_month_Sep:$E,ra_months_Apr:PE,ra_months_Aug:WE,ra_months_Dec:BE,ra_months_Feb:JE,ra_months_Jan:RE,ra_months_Jul:FE,ra_months_Jun:GE,ra_months_Mai:HE,ra_months_Mar:VE,ra_months_Nov:ZE,ra_months_Oct:XE,ra_months_Sep:KE,"ra_no confirm for 5 mins":"не спрашивать подтверждения в течение 5 минут",ra_none:qE,ra_object_changed_by:ef,ra_object_changed_by_user:tf,ra_otherConfig:sf,ra_qualityCode:rf,ra_repeat:of,ra_select_folder_hint:nf,ra_show_all:af,ra_state_changed_by:Mf,ra_state_changed_from:cf,ra_timestamp:uf,ra_tooltip_ack:lf,ra_tooltip_comment:Nf,ra_tooltip_copyState:Lf,ra_tooltip_ctrlForLink:gf,ra_tooltip_customConfig:jf,ra_tooltip_deleteObject:yf,ra_tooltip_editObject:Tf,ra_tooltip_editState:df,ra_tooltip_expire:Df,ra_tooltip_from:hf,ra_tooltip_lc:zf,ra_tooltip_quality:wf,ra_tooltip_ts:Cf,ra_tooltip_user:If,ra_tooltip_value:pf,ra_true:Af,"ra_use seconds":"секунды",ra_val:mf,"ra_via internet":"через интернет",ra_warning_every_minute:Of,ra_warning_every_second:Ef,sc_cron:ff,sc_date:xf,sc_dates:_f,sc_dow:Sf,sc_dows:kf,sc_every:Yf,sc_everyN_dates:vf,sc_everyN_dow:bf,sc_everyN_dows:Qf,sc_everyN_hours:Uf,sc_everyN_minutes:$f,sc_everyN_months:Pf,sc_everyN_seconds:Wf,sc_every_dates:Bf,sc_every_dow:Jf,sc_every_dows:Rf,sc_every_hours:Ff,sc_every_minutes:Gf,sc_every_months:Hf,sc_every_seconds:Vf,sc_from:Zf,sc_hours:Xf,sc_interval:Kf,sc_intervalBetween:qf,sc_invalid_cron:ex,sc_minutes:tx,sc_months:sx,sc_once:ix,sc_period:rx,sc_seconds:ox,sc_simple:nx,sc_specific:ax,sc_specific_dates:Mx,sc_specific_dow:cx,sc_specific_dows:ux,sc_specific_hours:lx,sc_specific_minutes:Nx,sc_specific_months:Lx,sc_specific_seconds:gx,sc_time:jx,sc_to:yx,sc_wizard:Tx,sch_all:dx,sch_astroDay:Dx,sch_astroNight:hx,sch_astro_dawn:zx,sch_astro_dusk:wx,sch_astro_goldenHour:Cx,sch_astro_goldenHourEnd:Ix,sch_astro_nadir:px,sch_astro_nauticalDawn:Ax,sch_astro_nauticalDusk:mx,sch_astro_night:Ox,sch_astro_nightEnd:Ex,sch_astro_solarNoon:fx,sch_astro_sunrise:xx,sch_astro_sunriseEnd:_x,sch_astro_sunset:Sx,sch_astro_sunsetStart:kx,sch_at:Yx,sch_desc_atTime:vx,sch_desc_everyDay:bx,sch_desc_everyHour:Qx,sch_desc_everyMinute:Ux,sch_desc_everyMonth:$x,sch_desc_everyNDay:Px,sch_desc_everyNHours:Wx,sch_desc_everyNMinutes:Bx,sch_desc_everyNMonths:Jx,sch_desc_everyNWeeks:Rx,sch_desc_everyNYears:Fx,sch_desc_everyWeek:Gx,sch_desc_everyYear:Hx,sch_desc_intervalFromTo:Vx,sch_desc_never:Zx,sch_desc_onDate:Xx,sch_desc_onDates:Kx,sch_desc_onEveryDate:qx,sch_desc_onMonth:e_,sch_desc_onMonths:t_,sch_desc_onWeekday:s_,sch_desc_onWeekdays:i_,sch_desc_onWeekends:r_,sch_desc_onWorkdays:o_,sch_desc_onceInPast:n_,sch_desc_once_on:a_,sch_desc_validFrom:M_,sch_desc_validFromTo:c_,sch_desc_validTo:u_,sch_every:l_,sch_exactTime:N_,sch_from:L_,sch_fromTo:g_,sch_intervalTime:j_,sch_invert:y_,sch_no_one:T_,sch_on:d_,sch_period:D_,sch_periodDaily:h_,sch_periodDates:z_,sch_periodDay:w_,sch_periodEvery:C_,sch_periodEveryDay:I_,sch_periodEveryMonth:p_,sch_periodEveryWeek:A_,sch_periodEveryYear:m_,sch_periodHours:O_,sch_periodMinutes:E_,sch_periodMonth:f_,sch_periodMonthly:x_,sch_periodOnce:__,sch_periodSpecificMonths:S_,sch_periodWeek:k_,sch_periodWeekdays:Y_,sch_periodWeekend:v_,sch_periodWeekly:b_,sch_periodWorkdays:Q_,sch_periodYear:U_,sch_periodYearly:$_,sch_specificTime:P_,sch_time:W_,sch_to:B_,sch_valid:J_,sch_validFrom:R_,sch_validTo:F_,sch_wholeDay:G_,sch_yearEveryMonth:H_},Z_="Ações",X_="Acrescentar",K_="Cancelar",q_="Categorias",eS="Verificado",tS="Excluir",sS="Perto",iS="Comercial",rS="Configurar",oS="Conectado",nS="Continuar",aS="Copiado",MS="Crio",cS="Colheita",uS="Delete",lS="Excluir",NS="Descartar",LS="Desconectado",gS="Erro",jS="Filtro",yS="Sexta-feira",TS="Latitude",dS="Sair",DS="Longitude",hS="mensagem",zS="Segunda-feira",wS="Nome",CS="Objetos",IS="Está bem",pS="produtos",AS="Renomear/Mover/Copiar",mS="Repita",OS="Substituir",ES="Raiz",fS="Sábado",xS="Salve ",_S="Selecionado",SS="Estados",kS="Domingo",YS="Quinta-feira",vS="Timestamp",bS="Terça-feira",QS="Atualizar",US="Válida até",$S="Valor",PS="Versão",WS="Quarta-feira",BS="Largura",JS="Sim",RS="diferente",FS="Todos podem ler objetos",GS="Todos podem ler o estado",HS="Todos podem escrever objetos",VS="Todos podem escrever o estado",ZS="O grupo pode ler o objeto",XS="O grupo pode ler o estado",KS="O grupo pode escrever o objeto",qS="O grupo pode escrever o estado",e3="O proprietário pode ler o objeto",t3="O proprietário pode ler o estado",s3="O proprietário pode escrever o objeto",i3="O proprietário pode escrever o estado",r3="Botões",o3="Mudou de",n3="fechar",a3="Criar estado booleano",M3="Criar canal",c3="Criar dispositivo",u3="Criar estado numérico",l3="Criar estado",N3="Criar estado de string",L3="d.",g3="Fr",j3="Mo",y3="Sa",T3="Su",d3="º",D3="Tu",h3="Nós",z3="Modo especialista",w3="FALSO",C3="Todos os arquivos",I3="áudio",p3="Código/JSON",A3="Imagens",m3="Texto",O3="Vídeo",E3="Configurações",f3="sem",x3="Função",_3="ID",S3="Nome",k3="Papel (Função)",Y3="Quarto",v3="Tipo",b3="Configurações inválidas",Q3="Última mudança",U3="localmente",$3="abril",P3="agosto",W3="dezembro",B3="fevereiro",J3="janeiro",R3="julho",F3="junho",G3="Mai",H3="março",V3="novembro",Z3="outubro",X3="setembro",K3="abril",q3="agosto",e5="dezembro",t5="fevereiro",s5="janeiro",i5="julho",r5="junho",o5="Mai",n5="março",a5="novembro",M5="outubro",c5="setembro",u5="Nenhum",l5="Objeto alterado por",N5="Objeto alterado pela última vez em",L5="Configurações de outro adaptador %s",g5="Código de qualidade",j5="repetir",y5='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',T5="Mostrar tudo",d5="Estado alterado por",D5="Objeto alterado de",h5="Timestamp",z5="Confirmado",w5="Comente",C5="Copie o valor do estado",I5="Segure a tecla Ctrl/⌘ para abrir o link",p5="Opções customizadas",A5="Excluir objeto",m5="Editar objeto",O5="Edite o valor do estado",E5="Expira em",f5="De",x5="Última alteração",_5="Qualidade",S5="Timestamp",k5="Usuário",Y5="Valor",v5="verdadeiro",b5="Valor",Q5="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",U5="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",$5="CRON",P5="Data",W5="Dias",B5="Dia",J5="Dia da semana",R5="todos",F5="a cada N dias",G5="todo enésimo dia da semana",H5="todos os N dias da semana",V5="a cada N horas",Z5="a cada N minutos",X5="a cada N meses",K5="a cada N segundos",q5="todo dia",ek="todos os dias da semana",tk="todos os dias da semana",sk="toda hora",ik="todo minuto",rk="todo mês",ok="todo segundo",nk="de",ak="horas",Mk="intervalo",ck="intervalo entre",uk="CRON inválido",lk="minutos",Nk="meses",Lk="uma vez",gk="período",jk="segundos",yk="simples",Tk="tempo específico",dk="datas específicas",Dk="dia(s) específico(s) da semana",hk="dia específico de semanas",zk="horas específicas",wk="minutos específicos",Ck="meses específicos",Ik="segundos específicos",pk="tempo",Ak="para",mk="assistente",Ok="tudo",Ek="dia astral",fk="noite astral",xk="amanhecer",_k="anoitecer",Sk="hora dourada",kk="Fim da hora dourada",Yk="nadir",vk="Amanhecer náutico",bk="Anoitecer náutico",Qk="noite",Uk="fim da noite",$k="meio-dia solar",Pk="nascer do sol",Wk="fim do nascer do sol",Bk="pôr do sol",Jk="início do pôr do sol",Rk="às",Fk="em %s",Gk="todo dia",Hk="toda hora",Vk="todo minuto",Zk="todo mês",Xk="a cada %s dias",Kk="a cada %s horas",qk="a cada %s minutos",eY="a cada %s meses",tY="a cada %s semanas",sY="a cada %s anos",iY="toda semana",rY="todo ano",oY="de %s para %s",nY="nunca",aY="em %s de %s",MY="em %s e %s de",cY="em toda data de",uY="%s",lY="%s e %s",NY="em %s",LY="em %s e %s",gY="nos fins de semana",jY="em dias úteis",yY="não será mais executado, porque o começo está no passado",TY="em %s",dY="de %s",DY="Executar de até",hY="até %s",zY="cada",wY="tempo específico",CY="de",IY="de a´t",pY="tempo de intervalo",AY="invertido",mY="nenhum",OY="em",EY="período",fY="diariamente",xY="datas",_Y="dia",SY="todos",kY="todo dia",YY="todo mês",vY="toda semana",bY="todo ano",QY="horas",UY="minutos",$Y="mês",PY="por mês",WY="uma vez",BY="meses específicos",JY="semana",RY="dias úteis",FY="final de semana",GY="semanal",HY="dias úteis",VY="ano",ZY="anual",XY="tempo específico",KY="tempo",qY="para",ev="válido",tv="de",sv="para",iv="dia inteiro",rv="todo mês",ov={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença",ra_Actions:Z_,"ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:X_,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:K_,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:q_,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:eS,ra_Clear:tS,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:sS,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:iS,ra_Configure:rS,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:oS,ra_Continue:nS,ra_Copied:aS,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:MS,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:cS,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:uS,ra_Delete:lS,"ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:NS,ra_Disconnected:LS,"ra_Do not ask for next 2 hours in this session":"Não peça as próximas 2 horas nesta sessão","ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit full path":"Editar caminho completo","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Digite o código dessa página aqui",ra_Error:gS,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:jS,"ra_Filter and Data Actions":"Ações de filtro e dados","ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:yS,"ra_Get %s access":"Obtenha acesso %s","ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:TS,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Logout:dS,ra_Longitude:DS,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:hS,ra_Monday:zS,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:wS,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:CS,ra_Ok:IS,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please allow popups in your browser for this page!":"Por favor, permita pop-ups no seu navegador para esta página!","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Press ENTER Key to add new item":"Pressione a tecla ENTER para adicionar um novo item","ra_Private certificate":"certificado privado",ra_Product:pS,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Rename_Move_Copy:AS,"ra_Renew %s access":"Renovar acesso %s",ra_Repeat:mS,ra_Replace:OS,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:ES,ra_Saturday:fS,ra_Save:xS,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:_S,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"A sessão irá expirar em %s segundos. Continuar?","ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:SS,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado com sucesso. Token válido até %s e será renovado automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.","ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:kS,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:YS,ra_Timestamp:vS,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:bS,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:QS,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:US,ra_Value:$S,ra_Version:PS,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:WS,ra_Width:BS,ra_Yes:JS,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto","ra_You can use * as wildcard":"Você pode usar * como curinga",ra___different__:RS,ra_aclEveryone_read_object:FS,ra_aclEveryone_read_state:GS,ra_aclEveryone_write_object:HS,ra_aclEveryone_write_state:VS,ra_aclGroup_read_object:ZS,ra_aclGroup_read_state:XS,ra_aclGroup_write_object:KS,ra_aclGroup_write_state:qS,ra_aclOwner_read_object:e3,ra_aclOwner_read_state:t3,ra_aclOwner_write_object:s3,ra_aclOwner_write_state:i3,ra_buttons:r3,ra_changedFrom:o3,ra_close:n3,ra_create_boolean_state:a3,ra_create_channel:M3,ra_create_device:c3,ra_create_number_state:u3,ra_create_state:l3,ra_create_string_state:N3,ra_daysShortText:L3,ra_dow_Fr:g3,ra_dow_Mo:j3,ra_dow_Sa:y3,ra_dow_Su:T3,ra_dow_Th:d3,ra_dow_Tu:D3,ra_dow_We:h3,ra_expertMode:z3,ra_false:w3,ra_fileType_all:C3,ra_fileType_audio:I3,ra_fileType_code:p3,ra_fileType_images:A3,ra_fileType_txt:m3,ra_fileType_video:O3,"ra_fileType_video,":"Vídeo",ra_filter_customs:E3,ra_filter_customs_without:f3,ra_filter_func:x3,ra_filter_id:_3,ra_filter_name:S3,ra_filter_role:k3,ra_filter_room:Y3,ra_filter_type:v3,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:b3,ra_lastChange:Q3,ra_locally:U3,ra_month_Apr:$3,ra_month_Aug:P3,ra_month_Dec:W3,ra_month_Feb:B3,ra_month_Jan:J3,ra_month_Jul:R3,ra_month_Jun:F3,ra_month_Mai:G3,ra_month_Mar:H3,ra_month_Nov:V3,ra_month_Oct:Z3,ra_month_Sep:X3,ra_months_Apr:K3,ra_months_Aug:q3,ra_months_Dec:e5,ra_months_Feb:t5,ra_months_Jan:s5,ra_months_Jul:i5,ra_months_Jun:r5,ra_months_Mai:o5,ra_months_Mar:n5,ra_months_Nov:a5,ra_months_Oct:M5,ra_months_Sep:c5,"ra_no confirm for 5 mins":"sem confirmação por 5 minutos",ra_none:u5,ra_object_changed_by:l5,ra_object_changed_by_user:N5,ra_otherConfig:L5,ra_qualityCode:g5,ra_repeat:j5,ra_select_folder_hint:y5,ra_show_all:T5,ra_state_changed_by:d5,ra_state_changed_from:D5,ra_timestamp:h5,ra_tooltip_ack:z5,ra_tooltip_comment:w5,ra_tooltip_copyState:C5,ra_tooltip_ctrlForLink:I5,ra_tooltip_customConfig:p5,ra_tooltip_deleteObject:A5,ra_tooltip_editObject:m5,ra_tooltip_editState:O5,ra_tooltip_expire:E5,ra_tooltip_from:f5,ra_tooltip_lc:x5,ra_tooltip_quality:_5,ra_tooltip_ts:S5,ra_tooltip_user:k5,ra_tooltip_value:Y5,ra_true:v5,"ra_use seconds":"use segundos",ra_val:b5,"ra_via internet":"via internet",ra_warning_every_minute:Q5,ra_warning_every_second:U5,sc_cron:$5,sc_date:P5,sc_dates:W5,sc_dow:B5,sc_dows:J5,sc_every:R5,sc_everyN_dates:F5,sc_everyN_dow:G5,sc_everyN_dows:H5,sc_everyN_hours:V5,sc_everyN_minutes:Z5,sc_everyN_months:X5,sc_everyN_seconds:K5,sc_every_dates:q5,sc_every_dow:ek,sc_every_dows:tk,sc_every_hours:sk,sc_every_minutes:ik,sc_every_months:rk,sc_every_seconds:ok,sc_from:nk,sc_hours:ak,sc_interval:Mk,sc_intervalBetween:ck,sc_invalid_cron:uk,sc_minutes:lk,sc_months:Nk,sc_once:Lk,sc_period:gk,sc_seconds:jk,sc_simple:yk,sc_specific:Tk,sc_specific_dates:dk,sc_specific_dow:Dk,sc_specific_dows:hk,sc_specific_hours:zk,sc_specific_minutes:wk,sc_specific_months:Ck,sc_specific_seconds:Ik,sc_time:pk,sc_to:Ak,sc_wizard:mk,sch_all:Ok,sch_astroDay:Ek,sch_astroNight:fk,sch_astro_dawn:xk,sch_astro_dusk:_k,sch_astro_goldenHour:Sk,sch_astro_goldenHourEnd:kk,sch_astro_nadir:Yk,sch_astro_nauticalDawn:vk,sch_astro_nauticalDusk:bk,sch_astro_night:Qk,sch_astro_nightEnd:Uk,sch_astro_solarNoon:$k,sch_astro_sunrise:Pk,sch_astro_sunriseEnd:Wk,sch_astro_sunset:Bk,sch_astro_sunsetStart:Jk,sch_at:Rk,sch_desc_atTime:Fk,sch_desc_everyDay:Gk,sch_desc_everyHour:Hk,sch_desc_everyMinute:Vk,sch_desc_everyMonth:Zk,sch_desc_everyNDay:Xk,sch_desc_everyNHours:Kk,sch_desc_everyNMinutes:qk,sch_desc_everyNMonths:eY,sch_desc_everyNWeeks:tY,sch_desc_everyNYears:sY,sch_desc_everyWeek:iY,sch_desc_everyYear:rY,sch_desc_intervalFromTo:oY,sch_desc_never:nY,sch_desc_onDate:aY,sch_desc_onDates:MY,sch_desc_onEveryDate:cY,sch_desc_onMonth:uY,sch_desc_onMonths:lY,sch_desc_onWeekday:NY,sch_desc_onWeekdays:LY,sch_desc_onWeekends:gY,sch_desc_onWorkdays:jY,sch_desc_onceInPast:yY,sch_desc_once_on:TY,sch_desc_validFrom:dY,sch_desc_validFromTo:DY,sch_desc_validTo:hY,sch_every:zY,sch_exactTime:wY,sch_from:CY,sch_fromTo:IY,sch_intervalTime:pY,sch_invert:AY,sch_no_one:mY,sch_on:OY,sch_period:EY,sch_periodDaily:fY,sch_periodDates:xY,sch_periodDay:_Y,sch_periodEvery:SY,sch_periodEveryDay:kY,sch_periodEveryMonth:YY,sch_periodEveryWeek:vY,sch_periodEveryYear:bY,sch_periodHours:QY,sch_periodMinutes:UY,sch_periodMonth:$Y,sch_periodMonthly:PY,sch_periodOnce:WY,sch_periodSpecificMonths:BY,sch_periodWeek:JY,sch_periodWeekdays:RY,sch_periodWeekend:FY,sch_periodWeekly:GY,sch_periodWorkdays:HY,sch_periodYear:VY,sch_periodYearly:ZY,sch_specificTime:XY,sch_time:KY,sch_to:qY,sch_valid:ev,sch_validFrom:tv,sch_validTo:sv,sch_wholeDay:iv,sch_yearEveryMonth:rv},nv="Acties",av="toevoegen",Mv="Annuleer",cv="Categorieën",uv="Gecontroleerd",lv="Verwijderen",Nv="Dichtbij",Lv="Reclame",gv="Configureren",jv="Verbonden",yv="Doorgaan",Tv="Gekopieerd",dv="Creëer",Dv="Bijsnijden",hv="Delete",zv="Verwijderen",wv="Weggooien",Cv="Verbinding verbroken",Iv="Fout",pv="Filter",Av="Vrijdag",mv="Breedtegraad",Ov="Uitloggen",Ev="Lengtegraad",fv="Bericht",xv="Maandag",_v="Naam",Sv="Voorwerpen",kv="OK",Yv="Product",vv="Hernoemen/Verplaatsen/Kopiëren",bv="Herhaling",Qv="Vervangen",Uv="Wortel",$v="Zaterdag",Pv="Sparen",Wv="Geselecteerd",Bv="Staten",Jv="Zondag",Rv="Donderdag",Fv="Tijdstempel",Gv="Dinsdag",Hv="Bijwerken",Vv="Geldig tot",Zv="Waarde",Xv="Versie",Kv="Woensdag",qv="Breedte",eb="Ja",tb="verschillend",sb="Iedereen kan object lezen",ib="Iedereen kan staat lezen",rb="Iedereen kan object schrijven",ob="Iedereen kan staat schrijven",nb="Groep kan object lezen",ab="Groep kan status lezen",Mb="Groep kan object schrijven",cb="Groep kan staat schrijven",ub="Eigenaar kan object lezen",lb="Eigenaar kan staat lezen",Nb="Eigenaar kan object schrijven",Lb="Eigenaar kan staat schrijven",gb="Toetsen",jb="Veranderd van",yb="dichtbij",Tb="Creëer een Booleaanse status",db="Kanaal maken",Db="Apparaat maken",hb="Nummerstatus maken",zb="Staat creëren",wb="Tekenreeksstatus maken",Cb="d.",Ib="Fr",pb="Mo",Ab="Za",mb="Zo",Ob="Th",Eb="Tu",fb="Wij",xb="Expert modus",_b="ONWAAR",Sb="Alle bestanden",kb="Audio",Yb="Code/JSON",vb="Afbeeldingen",bb="Tekst",Qb="Video",Ub="Instellingen",$b="zonder",Pb="Functie",Wb="ID",Bb="Naam",Jb="Rol",Rb="Kamer",Fb="Type",Gb="Ongeldige instellingen",Hb="Laatste wijziging",Vb="plaatselijk",Zb="april",Xb="aug",Kb="dec",qb="februari",eQ="jan",tQ="jul",sQ="juni",iQ="Mei",rQ="mrt",oQ="nov",nQ="Okt",aQ="sept",MQ="april",cQ="aug",uQ="dec",lQ="februari",NQ="jan",LQ="jul",gQ="juni",jQ="Mei",yQ="mrt",TQ="nov",dQ="Okt",DQ="sept",hQ="geen",zQ="Object veranderd door",wQ="Object voor het laatst gewijzigd om",CQ="Instellingen van andere adapter %s",IQ="Kwaliteitscode",pQ="herhalen",AQ='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',mQ="Alles weergeven",OQ="Staat veranderd door",EQ="Object veranderd van",fQ="Tijdstempel",xQ="Erkende vlag",_Q="Opmerking",SQ="Kopieer de statuswaarde",kQ="Houd de Cltr/⌘-toets ingedrukt om de link te openen",YQ="Aangepaste instellingen",vQ="Object verwijderen",bQ="Object bewerken",QQ="Bewerk de statuswaarde",UQ="Verloopt over",$Q="Van",PQ="Laatst gewijzigd",WQ="Kwaliteit",BQ="Tijdstempel",JQ="Gebruiker",RQ="Waarde",FQ="WAAR",GQ="Waarde",HQ="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",VQ="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",ZQ="CRON",XQ="Datum",KQ="data",qQ="Dag",eU="Dag van de week",tU="elk",sU="elke N dagen",iU="elke N-de dag van de week",rU="elke N dag van de week",oU="elke N uur",nU="elke N minuten",aU="elke N maanden",MU="elke N seconden",cU="elke dag",uU="elke dag van de week",lU="elke dag van de week",NU="elk uur",LU="elke minuut",gU="elke maand",jU="elke seconde",yU="Van",TU="uren",dU="Interval",DU="Interval tussen",hU="Ongeldige CRON",zU="Notulen",wU="maanden",CU="Een keer",IU="Periode",pU="seconden",AU="Gemakkelijk",mU="Specifieke tijd",OU="specifieke data",EU="specifieke dag(en) van de week",fU="specifieke dag van weken",xU="specifieke uren",_U="specifieke minuten",SU="specifieke maanden",kU="specifieke seconden",YU="Tijd",vU="Naar",bU="tovenaar",QU="allemaal",UU="Astro-dag",$U="Astro-nacht",PU="Dageraad",WU="Schemer",BU="gouden uur",JU="Gouden uur einde",RU="Nadir",FU="Nautische dageraad",GU="Nautische schemering",HU="Nacht",VU="Nacht einde",ZU="Zonne middag",XU="zonsopkomst",KU="Sunrise einde",qU="Zonsondergang",e8="Zonsondergang start",t8="Bij",s8="op %s",i8="elke dag",r8="elk uur",o8="elke minuut",n8="elke maand",a8="elke %s dag",M8="elke %s uur",c8="elke %s minuten",u8="elke %s maanden",l8="elke %s weken",N8="elke %s jaar",L8="elke week",g8="elk jaar",j8="van %s tot %s",y8="nooit",T8="op %s van %s",d8="op %s en %s van",D8="op elke datum van",h8="%s",z8="%s en %s",w8="op %s",C8="op %s en %s",I8="in het weekend",p8="op werkdagen",A8="zal niet meer worden uitgevoerd, omdat start verleden tijd is",m8="op %s",O8="van %s",E8="Uitvoeren van tot",f8="tot %s",x8="elk",_8="Specifieke tijd",S8="van",k8="Van naar",Y8="Interval tijd",v8="omkeren",b8="geen",Q8="Aan",U8="Periode",$8="Dagelijks",P8="data",W8="Dag",B8="elk",J8="Elke dag",R8="Elke maand",F8="Elke week",G8="Elk jaar",H8="uren",V8="Notulen",Z8="maand",X8="Maandelijks",K8="Een keer",q8="Specifieke maanden",e6="Week",t6="Doordeweekse dagen",s6="Weekend",i6="Wekelijks",r6="werkdagen",o6="Jaar",n6="jaar-",a6="Specifieke tijd",M6="Tijd",c6="naar",u6="Geldig",l6="van",N6="naar",L6="Hele dag",g6="elke maand",j6={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie",ra_Actions:nv,"ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:av,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:Mv,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:cv,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:uv,ra_Clear:lv,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:Nv,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:Lv,ra_Configure:gv,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:jv,ra_Continue:yv,ra_Copied:Tv,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:dv,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Dv,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:hv,ra_Delete:zv,"ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:wv,ra_Disconnected:Cv,"ra_Do not ask for next 2 hours in this session":"Vraag niet om de volgende 2 uur in deze sessie","ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit full path":"Volledig pad bewerken","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken","ra_Enter the code from that page here":"Voer hier de code van die pagina in",ra_Error:Iv,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:pv,"ra_Filter and Data Actions":"Filter- en gegevensacties","ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:Av,"ra_Get %s access":"Krijg %s toegang","ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:mv,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Logout:Ov,ra_Longitude:Ev,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:fv,ra_Monday:xv,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:_v,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:Sv,ra_Ok:kv,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please allow popups in your browser for this page!":"Sta pop-ups toe in uw browser voor deze pagina!","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Press ENTER Key to add new item":"Druk op de ENTER-toets om een nieuw item toe te voegen","ra_Private certificate":"Privé certificaat",ra_Product:Yv,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Rename_Move_Copy:vv,"ra_Renew %s access":"%s toegang verlengen",ra_Repeat:bv,ra_Replace:Qv,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:Uv,ra_Saturday:$v,ra_Save:Pv,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:Wv,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Session will expire in %s seconds. Continue?":"Sessie verloopt over %s seconden. Doorgaan?","ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:Bv,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.","ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:Jv,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:Rv,ra_Timestamp:Fv,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:Gv,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:Hv,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:Vv,ra_Value:Zv,ra_Version:Xv,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:Kv,ra_Width:qv,ra_Yes:eb,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren","ra_You can use * as wildcard":"U kunt * als joker gebruiken",ra___different__:tb,ra_aclEveryone_read_object:sb,ra_aclEveryone_read_state:ib,ra_aclEveryone_write_object:rb,ra_aclEveryone_write_state:ob,ra_aclGroup_read_object:nb,ra_aclGroup_read_state:ab,ra_aclGroup_write_object:Mb,ra_aclGroup_write_state:cb,ra_aclOwner_read_object:ub,ra_aclOwner_read_state:lb,ra_aclOwner_write_object:Nb,ra_aclOwner_write_state:Lb,ra_buttons:gb,ra_changedFrom:jb,ra_close:yb,ra_create_boolean_state:Tb,ra_create_channel:db,ra_create_device:Db,ra_create_number_state:hb,ra_create_state:zb,ra_create_string_state:wb,ra_daysShortText:Cb,ra_dow_Fr:Ib,ra_dow_Mo:pb,ra_dow_Sa:Ab,ra_dow_Su:mb,ra_dow_Th:Ob,ra_dow_Tu:Eb,ra_dow_We:fb,ra_expertMode:xb,ra_false:_b,ra_fileType_all:Sb,ra_fileType_audio:kb,ra_fileType_code:Yb,ra_fileType_images:vb,ra_fileType_txt:bb,ra_fileType_video:Qb,"ra_fileType_video,":"Video",ra_filter_customs:Ub,ra_filter_customs_without:$b,ra_filter_func:Pb,ra_filter_id:Wb,ra_filter_name:Bb,ra_filter_role:Jb,ra_filter_room:Rb,ra_filter_type:Fb,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:Gb,ra_lastChange:Hb,ra_locally:Vb,ra_month_Apr:Zb,ra_month_Aug:Xb,ra_month_Dec:Kb,ra_month_Feb:qb,ra_month_Jan:eQ,ra_month_Jul:tQ,ra_month_Jun:sQ,ra_month_Mai:iQ,ra_month_Mar:rQ,ra_month_Nov:oQ,ra_month_Oct:nQ,ra_month_Sep:aQ,ra_months_Apr:MQ,ra_months_Aug:cQ,ra_months_Dec:uQ,ra_months_Feb:lQ,ra_months_Jan:NQ,ra_months_Jul:LQ,ra_months_Jun:gQ,ra_months_Mai:jQ,ra_months_Mar:yQ,ra_months_Nov:TQ,ra_months_Oct:dQ,ra_months_Sep:DQ,"ra_no confirm for 5 mins":"geen bevestiging gedurende 5 minuten",ra_none:hQ,ra_object_changed_by:zQ,ra_object_changed_by_user:wQ,ra_otherConfig:CQ,ra_qualityCode:IQ,ra_repeat:pQ,ra_select_folder_hint:AQ,ra_show_all:mQ,ra_state_changed_by:OQ,ra_state_changed_from:EQ,ra_timestamp:fQ,ra_tooltip_ack:xQ,ra_tooltip_comment:_Q,ra_tooltip_copyState:SQ,ra_tooltip_ctrlForLink:kQ,ra_tooltip_customConfig:YQ,ra_tooltip_deleteObject:vQ,ra_tooltip_editObject:bQ,ra_tooltip_editState:QQ,ra_tooltip_expire:UQ,ra_tooltip_from:$Q,ra_tooltip_lc:PQ,ra_tooltip_quality:WQ,ra_tooltip_ts:BQ,ra_tooltip_user:JQ,ra_tooltip_value:RQ,ra_true:FQ,"ra_use seconds":"gebruik seconden",ra_val:GQ,"ra_via internet":"via internet",ra_warning_every_minute:HQ,ra_warning_every_second:VQ,sc_cron:ZQ,sc_date:XQ,sc_dates:KQ,sc_dow:qQ,sc_dows:eU,sc_every:tU,sc_everyN_dates:sU,sc_everyN_dow:iU,sc_everyN_dows:rU,sc_everyN_hours:oU,sc_everyN_minutes:nU,sc_everyN_months:aU,sc_everyN_seconds:MU,sc_every_dates:cU,sc_every_dow:uU,sc_every_dows:lU,sc_every_hours:NU,sc_every_minutes:LU,sc_every_months:gU,sc_every_seconds:jU,sc_from:yU,sc_hours:TU,sc_interval:dU,sc_intervalBetween:DU,sc_invalid_cron:hU,sc_minutes:zU,sc_months:wU,sc_once:CU,sc_period:IU,sc_seconds:pU,sc_simple:AU,sc_specific:mU,sc_specific_dates:OU,sc_specific_dow:EU,sc_specific_dows:fU,sc_specific_hours:xU,sc_specific_minutes:_U,sc_specific_months:SU,sc_specific_seconds:kU,sc_time:YU,sc_to:vU,sc_wizard:bU,sch_all:QU,sch_astroDay:UU,sch_astroNight:$U,sch_astro_dawn:PU,sch_astro_dusk:WU,sch_astro_goldenHour:BU,sch_astro_goldenHourEnd:JU,sch_astro_nadir:RU,sch_astro_nauticalDawn:FU,sch_astro_nauticalDusk:GU,sch_astro_night:HU,sch_astro_nightEnd:VU,sch_astro_solarNoon:ZU,sch_astro_sunrise:XU,sch_astro_sunriseEnd:KU,sch_astro_sunset:qU,sch_astro_sunsetStart:e8,sch_at:t8,sch_desc_atTime:s8,sch_desc_everyDay:i8,sch_desc_everyHour:r8,sch_desc_everyMinute:o8,sch_desc_everyMonth:n8,sch_desc_everyNDay:a8,sch_desc_everyNHours:M8,sch_desc_everyNMinutes:c8,sch_desc_everyNMonths:u8,sch_desc_everyNWeeks:l8,sch_desc_everyNYears:N8,sch_desc_everyWeek:L8,sch_desc_everyYear:g8,sch_desc_intervalFromTo:j8,sch_desc_never:y8,sch_desc_onDate:T8,sch_desc_onDates:d8,sch_desc_onEveryDate:D8,sch_desc_onMonth:h8,sch_desc_onMonths:z8,sch_desc_onWeekday:w8,sch_desc_onWeekdays:C8,sch_desc_onWeekends:I8,sch_desc_onWorkdays:p8,sch_desc_onceInPast:A8,sch_desc_once_on:m8,sch_desc_validFrom:O8,sch_desc_validFromTo:E8,sch_desc_validTo:f8,sch_every:x8,sch_exactTime:_8,sch_from:S8,sch_fromTo:k8,sch_intervalTime:Y8,sch_invert:v8,sch_no_one:b8,sch_on:Q8,sch_period:U8,sch_periodDaily:$8,sch_periodDates:P8,sch_periodDay:W8,sch_periodEvery:B8,sch_periodEveryDay:J8,sch_periodEveryMonth:R8,sch_periodEveryWeek:F8,sch_periodEveryYear:G8,sch_periodHours:H8,sch_periodMinutes:V8,sch_periodMonth:Z8,sch_periodMonthly:X8,sch_periodOnce:K8,sch_periodSpecificMonths:q8,sch_periodWeek:e6,sch_periodWeekdays:t6,sch_periodWeekend:s6,sch_periodWeekly:i6,sch_periodWorkdays:r6,sch_periodYear:o6,sch_periodYearly:n6,sch_specificTime:a6,sch_time:M6,sch_to:c6,sch_valid:u6,sch_validFrom:l6,sch_validTo:N6,sch_wholeDay:L6,sch_yearEveryMonth:g6},y6="Actes",T6="Ajouter",d6="Annuler",D6="Catégories",h6="Vérifié",z6="Effacer",w6="Fermer",C6="Commercial",I6="Configurer",p6="Lié",A6="Continuer",m6="Copié",O6="Créer",E6="Recadrer",f6="Delete",x6="Supprimer",_6="Jeter",S6="Débranché",k6="Erreur",Y6="Filtre",v6="Vendredi",b6="Latitude",Q6="Déconnexion",U6="Longitude",$6="Message",P6="Lundi",W6="Nom",B6="Objets",J6="D'accord",R6="Produit",F6="Renommer/Déplacer/Copier",G6="Répéter",H6="Remplacer",V6="Racine",Z6="Samedi",X6="sauver",K6="Choisi",q6="États",e9="Dimanche",t9="Jeudi",s9="Horodatage",i9="Mardi",r9="Mise à jour",o9="Valable jusqu'au",n9="Valeur",a9="Version",M9="Mercredi",c9="Largeur",u9="Oui",l9="différent",N9="Tout le monde peut lire un objet",L9="Tout le monde peut lire l'état",g9="Tout le monde peut écrire un objet",j9="Tout le monde peut écrire l'état",y9="Le groupe peut lire l'objet",T9="Le groupe peut lire l'état",d9="Le groupe peut écrire un objet",D9="Le groupe peut écrire l'état",h9="Le propriétaire peut lire l'objet",z9="Le propriétaire peut lire l'état",w9="Le propriétaire peut écrire un objet",C9="Le propriétaire peut écrire l'état",I9="Boutons",p9="Changé de",A9="Fermer",m9="Créer un état booléen",O9="Créer une chaîne",E9="Créer un appareil",f9="Créer un état de numéro",x9="Créer un état",_9="Créer un état de chaîne",S9="j.",k9="Fr",Y9="Mo",v9="Sa",b9="Su",Q9="Th",U9="Tu",$9="Nous",P9="Mode expert",W9="FAUX",B9="Tous les fichiers",J9="l'audio",R9="Code/JSON",F9="Images",G9="Texte",H9="Vidéo",V9="Paramètres",Z9="sans",X9="Une fonction",K9="ID",q9="Prénom",e7="Rôle",t7="Pièce",s7="Type",i7="Paramètres invalides",r7="Dernier changement",o7="localement",n7="Avr",a7="Août",M7="Déc",c7="Fév",u7="Jan",l7="Juil",N7="Juin",L7="Mai",g7="Mar",j7="Nov",y7="Oct",T7="Sep",d7="Avr",D7="Août",h7="Déc",z7="Fév",w7="Jan",C7="Juil",I7="Juin",p7="Mai",A7="Mar",m7="Nov",O7="Oct",E7="Sep",f7="rien",x7="Objet modifié par",_7="Objet modifié pour la dernière fois à",S7="Paramètres d'un autre adaptateur %s",k7="Code de qualité",Y7="répéter",v7='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',b7="Tout afficher",Q7="État modifié par",U7="Objet changé de",$7="Horodatage",P7="Drapeau reconnu",W7="Commentaire",B7="Copiez la valeur d'état",J7="Maintenez la touche Cltr/⌘ enfoncée pour ouvrir le lien",R7="Paramètres personnalisés",F7="Supprimer un objet",G7="Modifier l'objet",H7="Modifier la valeur d'état",V7="Expire dans",Z7="De",X7="Dernière modification",K7="Qualité",q7="Horodatage",e$="Utilisateur",t$="Valeur",s$="VRAI",i$="Valeur",r$="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",o$="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",n$="CRON",a$="Date",M$="Rendez-vous",c$="Jour",u$="Jour de la semaine",l$="Chaque",N$="tous les N jours",L$="chaque Nième jour de la semaine",g$="tous les N jours de la semaine",j$="toutes les N heures",y$="toutes les N minutes",T$="tous les N mois",d$="toutes les N secondes",D$="tous les jours",h$="Chaque jour de la semaine",z$="Chaque jour de la semaine",w$="Toutes les heures",C$="chaque minute",I$="chaque mois",p$="chaque seconde",A$="De",m$="Heures",O$="Intervalle",E$="Intervalle entre",f$="CRON non valide",x$="Minutes",_$="mois",S$="Une fois que",k$="Période",Y$="Secondes",v$="Facile",b$="Temps spécifique",Q$="dates spécifiques",U$="jour(s) spécifique(s) de la semaine",$$="jour spécifique de semaines",P$="heures spécifiques",W$="minutes spécifiques",B$="mois spécifiques",J$="secondes spécifiques",R$="Temps",F$="À",G$="sorcier",H$="tout",V$="Journée astronomique",Z$="Nuit astronomique",X$="Aube",K$="Crépuscule",q$="Heure d'or",eP="Fin de l'heure d'or",tP="Nadir",sP="Aube nautique",iP="Crépuscule nautique",rP="Nuit",oP="Fin de nuit",nP="Midi solaire",aP="lever du soleil",MP="Fin du lever du soleil",cP="Le coucher du soleil",uP="Coucher du soleil",lP="à",NP="à %s",LP="tous les jours",gP="Toutes les heures",jP="chaque minute",yP="chaque mois",TP="chaque %s jour",dP="chaque %s heures",DP="toutes les %s minutes",hP="tous les %s mois",zP="chaque %s semaines",wP="tous les %s ans",CP="toutes les semaines",IP="chaque année",pP="de %s à %s",AP="jamais",mP="sur %s de %s",OP="sur %s et %s de",EP="à chaque date de",fP="%s",xP="%s et %s",_P="sur %s",SP="sur %s et %s",kP="les weekends",YP="les jours ouvrables",vP="ne sera plus exécuté, car start est dans le passé",bP="sur %s",QP="de %s",UP="Exécuter de à",$P="à %s",PP="chaque",WP="Temps spécifique",BP="de",JP="De à",RP="Temps d'interval",FP="inverser",GP="aucun",HP="sur",VP="Période",ZP="du quotidien",XP="Rendez-vous",KP="journée",qP="Chaque",eW="Tous les jours",tW="Chaque mois",sW="Toutes les semaines",iW="Chaque année",rW="Heures",oW="Minutes",nW="mois",aW="Mensuel",MW="Une fois que",cW="Mois spécifiques",uW="La semaine",lW="Jours de la semaine",NW="Weekend",LW="Hebdomadaire",gW="Jours ouvrables",jW="Année",yW="Annuel",TW="Temps spécifique",dW="Temps",DW="à",hW="Valide",zW="de",wW="à",CW="Toute la journée",IW="chaque mois",pW={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence",ra_Actions:y6,"ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:T6,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:d6,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:D6,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:h6,ra_Clear:z6,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:w6,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:C6,ra_Configure:I6,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:p6,ra_Continue:A6,ra_Copied:m6,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:O6,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:E6,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:f6,ra_Delete:x6,"ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:_6,ra_Disconnected:S6,"ra_Do not ask for next 2 hours in this session":"Ne demandez pas les 2 prochaines heures de cette session","ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit full path":"Modifier le chemin complet","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur","ra_Enter the code from that page here":"Entrez le code de cette page ici",ra_Error:k6,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:Y6,"ra_Filter and Data Actions":"Actions sur les filtres et les données","ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:v6,"ra_Get %s access":"Obtenir l'accès %s","ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:b6,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Logout:Q6,ra_Longitude:U6,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:$6,ra_Monday:P6,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:W6,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:B6,ra_Ok:J6,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please allow popups in your browser for this page!":"Veuillez autoriser les popups dans votre navigateur pour cette page !","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Press ENTER Key to add new item":"Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément","ra_Private certificate":"Certificat privé",ra_Product:R6,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Rename_Move_Copy:F6,"ra_Renew %s access":"Renouveler l'accès %s",ra_Repeat:G6,ra_Replace:H6,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:V6,ra_Saturday:Z6,ra_Save:X6,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:K6,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Session will expire in %s seconds. Continue?":"La session expirera dans %s secondes. Continuer ?","ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:q6,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.","ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:e9,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:t9,ra_Timestamp:s9,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:i9,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:r9,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:o9,ra_Value:n9,ra_Version:a9,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:M9,ra_Width:c9,ra_Yes:u9,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte","ra_You can use * as wildcard":"Vous pouvez utiliser * comme caractère générique",ra___different__:l9,ra_aclEveryone_read_object:N9,ra_aclEveryone_read_state:L9,ra_aclEveryone_write_object:g9,ra_aclEveryone_write_state:j9,ra_aclGroup_read_object:y9,ra_aclGroup_read_state:T9,ra_aclGroup_write_object:d9,ra_aclGroup_write_state:D9,ra_aclOwner_read_object:h9,ra_aclOwner_read_state:z9,ra_aclOwner_write_object:w9,ra_aclOwner_write_state:C9,ra_buttons:I9,ra_changedFrom:p9,ra_close:A9,ra_create_boolean_state:m9,ra_create_channel:O9,ra_create_device:E9,ra_create_number_state:f9,ra_create_state:x9,ra_create_string_state:_9,ra_daysShortText:S9,ra_dow_Fr:k9,ra_dow_Mo:Y9,ra_dow_Sa:v9,ra_dow_Su:b9,ra_dow_Th:Q9,ra_dow_Tu:U9,ra_dow_We:$9,ra_expertMode:P9,ra_false:W9,ra_fileType_all:B9,ra_fileType_audio:J9,ra_fileType_code:R9,ra_fileType_images:F9,ra_fileType_txt:G9,ra_fileType_video:H9,"ra_fileType_video,":"Vidéo",ra_filter_customs:V9,ra_filter_customs_without:Z9,ra_filter_func:X9,ra_filter_id:K9,ra_filter_name:q9,ra_filter_role:e7,ra_filter_room:t7,ra_filter_type:s7,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:i7,ra_lastChange:r7,ra_locally:o7,ra_month_Apr:n7,ra_month_Aug:a7,ra_month_Dec:M7,ra_month_Feb:c7,ra_month_Jan:u7,ra_month_Jul:l7,ra_month_Jun:N7,ra_month_Mai:L7,ra_month_Mar:g7,ra_month_Nov:j7,ra_month_Oct:y7,ra_month_Sep:T7,ra_months_Apr:d7,ra_months_Aug:D7,ra_months_Dec:h7,ra_months_Feb:z7,ra_months_Jan:w7,ra_months_Jul:C7,ra_months_Jun:I7,ra_months_Mai:p7,ra_months_Mar:A7,ra_months_Nov:m7,ra_months_Oct:O7,ra_months_Sep:E7,"ra_no confirm for 5 mins":"pas de confirmation pendant 5 minutes",ra_none:f7,ra_object_changed_by:x7,ra_object_changed_by_user:_7,ra_otherConfig:S7,ra_qualityCode:k7,ra_repeat:Y7,ra_select_folder_hint:v7,ra_show_all:b7,ra_state_changed_by:Q7,ra_state_changed_from:U7,ra_timestamp:$7,ra_tooltip_ack:P7,ra_tooltip_comment:W7,ra_tooltip_copyState:B7,ra_tooltip_ctrlForLink:J7,ra_tooltip_customConfig:R7,ra_tooltip_deleteObject:F7,ra_tooltip_editObject:G7,ra_tooltip_editState:H7,ra_tooltip_expire:V7,ra_tooltip_from:Z7,ra_tooltip_lc:X7,ra_tooltip_quality:K7,ra_tooltip_ts:q7,ra_tooltip_user:e$,ra_tooltip_value:t$,ra_true:s$,"ra_use seconds":"utiliser les secondes",ra_val:i$,"ra_via internet":"par Internet",ra_warning_every_minute:r$,ra_warning_every_second:o$,sc_cron:n$,sc_date:a$,sc_dates:M$,sc_dow:c$,sc_dows:u$,sc_every:l$,sc_everyN_dates:N$,sc_everyN_dow:L$,sc_everyN_dows:g$,sc_everyN_hours:j$,sc_everyN_minutes:y$,sc_everyN_months:T$,sc_everyN_seconds:d$,sc_every_dates:D$,sc_every_dow:h$,sc_every_dows:z$,sc_every_hours:w$,sc_every_minutes:C$,sc_every_months:I$,sc_every_seconds:p$,sc_from:A$,sc_hours:m$,sc_interval:O$,sc_intervalBetween:E$,sc_invalid_cron:f$,sc_minutes:x$,sc_months:_$,sc_once:S$,sc_period:k$,sc_seconds:Y$,sc_simple:v$,sc_specific:b$,sc_specific_dates:Q$,sc_specific_dow:U$,sc_specific_dows:$$,sc_specific_hours:P$,sc_specific_minutes:W$,sc_specific_months:B$,sc_specific_seconds:J$,sc_time:R$,sc_to:F$,sc_wizard:G$,sch_all:H$,sch_astroDay:V$,sch_astroNight:Z$,sch_astro_dawn:X$,sch_astro_dusk:K$,sch_astro_goldenHour:q$,sch_astro_goldenHourEnd:eP,sch_astro_nadir:tP,sch_astro_nauticalDawn:sP,sch_astro_nauticalDusk:iP,sch_astro_night:rP,sch_astro_nightEnd:oP,sch_astro_solarNoon:nP,sch_astro_sunrise:aP,sch_astro_sunriseEnd:MP,sch_astro_sunset:cP,sch_astro_sunsetStart:uP,sch_at:lP,sch_desc_atTime:NP,sch_desc_everyDay:LP,sch_desc_everyHour:gP,sch_desc_everyMinute:jP,sch_desc_everyMonth:yP,sch_desc_everyNDay:TP,sch_desc_everyNHours:dP,sch_desc_everyNMinutes:DP,sch_desc_everyNMonths:hP,sch_desc_everyNWeeks:zP,sch_desc_everyNYears:wP,sch_desc_everyWeek:CP,sch_desc_everyYear:IP,sch_desc_intervalFromTo:pP,sch_desc_never:AP,sch_desc_onDate:mP,sch_desc_onDates:OP,sch_desc_onEveryDate:EP,sch_desc_onMonth:fP,sch_desc_onMonths:xP,sch_desc_onWeekday:_P,sch_desc_onWeekdays:SP,sch_desc_onWeekends:kP,sch_desc_onWorkdays:YP,sch_desc_onceInPast:vP,sch_desc_once_on:bP,sch_desc_validFrom:QP,sch_desc_validFromTo:UP,sch_desc_validTo:$P,sch_every:PP,sch_exactTime:WP,sch_from:BP,sch_fromTo:JP,sch_intervalTime:RP,sch_invert:FP,sch_no_one:GP,sch_on:HP,sch_period:VP,sch_periodDaily:ZP,sch_periodDates:XP,sch_periodDay:KP,sch_periodEvery:qP,sch_periodEveryDay:eW,sch_periodEveryMonth:tW,sch_periodEveryWeek:sW,sch_periodEveryYear:iW,sch_periodHours:rW,sch_periodMinutes:oW,sch_periodMonth:nW,sch_periodMonthly:aW,sch_periodOnce:MW,sch_periodSpecificMonths:cW,sch_periodWeek:uW,sch_periodWeekdays:lW,sch_periodWeekend:NW,sch_periodWeekly:LW,sch_periodWorkdays:gW,sch_periodYear:jW,sch_periodYearly:yW,sch_specificTime:TW,sch_time:dW,sch_to:DW,sch_valid:hW,sch_validFrom:zW,sch_validTo:wW,sch_wholeDay:CW,sch_yearEveryMonth:IW},AW="Azioni",mW="Aggiungere",OW="Annulla",EW="Categorie",fW="Controllato",xW="Elimina",_W="Vicino",SW="Commerciale",kW="Configura",YW="Collegato",vW="Continuare",bW="Copiato",QW="Creare",UW="Raccolto",$W="Delete",PW="Elimina",WW="Scartare",BW="Disconnesso",JW="Errore",RW="Filtro",FW="Venerdì",GW="Latitudine",HW="Esci",VW="Longitudine",ZW="Messaggio",XW="Lunedi",KW="Nome",qW="Oggetti",eB="Ok",tB="Prodotto",sB="Rinomina/Sposta/Copia",iB="Ripetere",rB="Sostituire",oB="Radice",nB="Sabato",aB="Salva",MB="Selezionato",cB="stati",uB="Domenica",lB="Giovedì",NB="Timestamp",LB="Martedì",gB="Aggiornare",jB="Valido fino a",yB="Valore",TB="Versione",dB="Mercoledì",DB="Larghezza",hB="SÌ",zB="diverso",wB="Tutti possono leggere gli oggetti",CB="Tutti possono leggere lo stato",IB="Tutti possono scrivere oggetti",pB="Tutti possono scrivere stato",AB="Il gruppo può leggere l'oggetto",mB="Il gruppo può leggere lo stato",OB="Il gruppo può scrivere l'oggetto",EB="Il gruppo può scrivere lo stato",fB="Il proprietario può leggere l'oggetto",xB="Il proprietario può leggere lo stato",_B="Il proprietario può scrivere l'oggetto",SB="Il proprietario può scrivere lo stato",kB="Bottoni",YB="Cambiato da",vB="vicino",bB="Crea uno stato booleano",QB="Crea canale",UB="Crea dispositivo",$B="Crea lo stato del numero",PB="Crea stato",WB="Crea lo stato della stringa",BB="g.",JB="fr",RB="momento",FB="Sa",GB="su",HB="th",VB="Tu",ZB="Noi",XB="Modalità esperto",KB="FALSO",qB="Tutti i files",eJ="Audio",tJ="Codice/JSON",sJ="immagini",iJ="Testo",rJ="video",oJ="impostazioni",nJ="senza",aJ="Funzione",MJ="ID",cJ="Nome",uJ="Ruolo",lJ="Camera",NJ="genere",LJ="Impostazioni non valide",gJ="Ultima modifica",jJ="localmente",yJ="apr",TJ="agosto",dJ="Dic",DJ="febbraio",hJ="gen",zJ="lug",wJ="giu",CJ="Mai",IJ="marzo",pJ="nov",AJ="ottobre",mJ="Sett",OJ="apr",EJ="agosto",fJ="Dic",xJ="febbraio",_J="gen",SJ="lug",kJ="giu",YJ="Mai",vJ="marzo",bJ="nov",QJ="ottobre",UJ="Sett",$J="nessuna",PJ="Oggetto modificato da",WJ="L'oggetto è stato modificato l'ultima volta alle",BJ="Impostazioni dall'altro adattatore %s",JJ="Codice di qualità",RJ="ripetere",FJ='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',GJ="Mostra tutto",HJ="Stato cambiato da",VJ="Oggetto cambiato da",ZJ="Timestamp",XJ="Bandiera riconosciuta",KJ="Commento",qJ="Copia il valore dello stato",eR="Tieni premuto il tasto Cltr/⌘ per aprire il collegamento",tR="Impostazioni personalizzate",sR="Elimina oggetto",iR="Modifica oggetto",rR="Modifica il valore dello stato",oR="Scade tra",nR="A partire dal",aR="Ultima modifica",MR="Qualità",cR="Data e ora",uR="Utente",lR="Valore",NR="VERO",LR="Valore",gR="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",jR="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",yR="CRON",TR="Data",dR="Date",DR="Giorno",hR="Giorno della settimana",zR="Ogni",wR="ogni N giorni",CR="ogni Nesimo giorno della settimana",IR="ogni N giorno della settimana",pR="ogni N ore",AR="ogni N minuti",mR="ogni N mesi",OR="ogni N secondi",ER="ogni giorno",fR="Tutti i giorni della settimana",xR="Tutti i giorni della settimana",_R="ogni ora",SR="ogni minuto",kR="ogni mese",YR="ogni secondo",vR="A partire dal",bR="Ore",QR="Intervallo",UR="Intervallo tra",$R="CRON non valido",PR="Minuti",WR="mesi",BR="Una volta",JR="Periodo",RR="secondi",FR="Semplice",GR="Orario preciso",HR="date specifiche",VR="giorno/i specifico/i della settimana",ZR="giorno specifico delle settimane",XR="orari specifici",KR="minuti specifici",qR="mesi specifici",eF="secondi specifici",tF="Tempo",sF="Per",iF="procedura guidata",rF="tutti",oF="Astro day",nF="Astro night",aF="Alba",MF="Crepuscolo",cF="Ora d'oro",uF="Fine dell'ora d'oro",lF="Nadir",NF="Alba nautica",LF="Crepuscolo nautico",gF="Notte",jF="Fine della notte",yF="Mezzogiorno solare",TF="Alba",dF="Fine dell'alba",DF="Tramonto",hF="Inizio del tramonto",zF="a",wF="a %s",CF="ogni giorno",IF="ogni ora",pF="ogni minuto",AF="ogni mese",mF="ogni %s giorno",OF="ogni %s ore",EF="ogni %s minuti",fF="ogni %s mesi",xF="ogni %s settimane",_F="ogni %s anni",SF="ogni settimana",kF="ogni anno",YF="da %s a %s",vF="mai",bF="su %s di %s",QF="su %s e %s di",UF="in ogni data di",$F="%s",PF="%s e %s",WF="su %s",BF="su %s e %s",JF="nei finesettimana",RF="nei giorni lavorativi",FF="non verrà più eseguito, perché start è nel passato",GF="su %s",HF="da %s",VF="Eseguire da a",ZF="a %s",XF="ogni",KF="Orario preciso",qF="a partire dal",eG="Da A",tG="Intervallo di tempo",sG="invertire",iG="nessuna",rG="sopra",oG="Periodo",nG="Quotidiano",aG="Date",MG="Giorno",cG="Ogni",uG="Ogni giorno",lG="Ogni mese",NG="Ogni settimana",LG="Ogni anno",gG="Ore",jG="Minuti",yG="mese",TG="Mensile",dG="Una volta",DG="Mesi specifici",hG="Settimana",zG="Giorni della settimana",wG="Fine settimana",CG="settimanalmente",IG="giorni feriali",pG="Anno",AG="Annuale",mG="Orario preciso",OG="Tempo",EG="per",fG="Valido",xG="a partire dal",_G="per",SG="Giorno intero",kG="ogni mese",YG={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza",ra_Actions:AW,"ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:mW,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:OW,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:EW,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:fW,ra_Clear:xW,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:_W,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:SW,ra_Configure:kW,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:YW,ra_Continue:vW,ra_Copied:bW,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:QW,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:UW,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:$W,ra_Delete:PW,"ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:WW,ra_Disconnected:BW,"ra_Do not ask for next 2 hours in this session":"Non chiedere per le prossime 2 ore in questa sessione","ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit full path":"Modifica percorso completo","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore","ra_Enter the code from that page here":"Inserisci qui il codice da quella pagina",ra_Error:JW,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:RW,"ra_Filter and Data Actions":"Azioni sui filtri e sui dati","ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:FW,"ra_Get %s access":"Ottieni l'accesso %s","ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:GW,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Logout:HW,ra_Longitude:VW,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:ZW,ra_Monday:XW,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:KW,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:qW,ra_Ok:eB,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please allow popups in your browser for this page!":"Si prega di abilitare i popup nel browser per questa pagina!","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Press ENTER Key to add new item":"Premere il tasto INVIO per aggiungere un nuovo elemento","ra_Private certificate":"Certificato privato",ra_Product:tB,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Rename_Move_Copy:sB,"ra_Renew %s access":"Rinnova l'accesso %s",ra_Repeat:iB,ra_Replace:rB,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:oB,ra_Saturday:nB,ra_Save:aB,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:MB,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sessione scadrà tra %s secondi. Continuare?","ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:cB,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.","ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:uB,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:lB,ra_Timestamp:NB,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:LB,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:gB,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:jB,ra_Value:yB,ra_Version:TB,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:dB,ra_Width:DB,ra_Yes:hB,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo","ra_You can use * as wildcard":"Puoi usare * come carattere jolly",ra___different__:zB,ra_aclEveryone_read_object:wB,ra_aclEveryone_read_state:CB,ra_aclEveryone_write_object:IB,ra_aclEveryone_write_state:pB,ra_aclGroup_read_object:AB,ra_aclGroup_read_state:mB,ra_aclGroup_write_object:OB,ra_aclGroup_write_state:EB,ra_aclOwner_read_object:fB,ra_aclOwner_read_state:xB,ra_aclOwner_write_object:_B,ra_aclOwner_write_state:SB,ra_buttons:kB,ra_changedFrom:YB,ra_close:vB,ra_create_boolean_state:bB,ra_create_channel:QB,ra_create_device:UB,ra_create_number_state:$B,ra_create_state:PB,ra_create_string_state:WB,ra_daysShortText:BB,ra_dow_Fr:JB,ra_dow_Mo:RB,ra_dow_Sa:FB,ra_dow_Su:GB,ra_dow_Th:HB,ra_dow_Tu:VB,ra_dow_We:ZB,ra_expertMode:XB,ra_false:KB,ra_fileType_all:qB,ra_fileType_audio:eJ,ra_fileType_code:tJ,ra_fileType_images:sJ,ra_fileType_txt:iJ,ra_fileType_video:rJ,"ra_fileType_video,":"video",ra_filter_customs:oJ,ra_filter_customs_without:nJ,ra_filter_func:aJ,ra_filter_id:MJ,ra_filter_name:cJ,ra_filter_role:uJ,ra_filter_room:lJ,ra_filter_type:NJ,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:LJ,ra_lastChange:gJ,ra_locally:jJ,ra_month_Apr:yJ,ra_month_Aug:TJ,ra_month_Dec:dJ,ra_month_Feb:DJ,ra_month_Jan:hJ,ra_month_Jul:zJ,ra_month_Jun:wJ,ra_month_Mai:CJ,ra_month_Mar:IJ,ra_month_Nov:pJ,ra_month_Oct:AJ,ra_month_Sep:mJ,ra_months_Apr:OJ,ra_months_Aug:EJ,ra_months_Dec:fJ,ra_months_Feb:xJ,ra_months_Jan:_J,ra_months_Jul:SJ,ra_months_Jun:kJ,ra_months_Mai:YJ,ra_months_Mar:vJ,ra_months_Nov:bJ,ra_months_Oct:QJ,ra_months_Sep:UJ,"ra_no confirm for 5 mins":"nessuna conferma per 5 minuti",ra_none:$J,ra_object_changed_by:PJ,ra_object_changed_by_user:WJ,ra_otherConfig:BJ,ra_qualityCode:JJ,ra_repeat:RJ,ra_select_folder_hint:FJ,ra_show_all:GJ,ra_state_changed_by:HJ,ra_state_changed_from:VJ,ra_timestamp:ZJ,ra_tooltip_ack:XJ,ra_tooltip_comment:KJ,ra_tooltip_copyState:qJ,ra_tooltip_ctrlForLink:eR,ra_tooltip_customConfig:tR,ra_tooltip_deleteObject:sR,ra_tooltip_editObject:iR,ra_tooltip_editState:rR,ra_tooltip_expire:oR,ra_tooltip_from:nR,ra_tooltip_lc:aR,ra_tooltip_quality:MR,ra_tooltip_ts:cR,ra_tooltip_user:uR,ra_tooltip_value:lR,ra_true:NR,"ra_use seconds":"usa i secondi",ra_val:LR,"ra_via internet":"attraverso internet",ra_warning_every_minute:gR,ra_warning_every_second:jR,sc_cron:yR,sc_date:TR,sc_dates:dR,sc_dow:DR,sc_dows:hR,sc_every:zR,sc_everyN_dates:wR,sc_everyN_dow:CR,sc_everyN_dows:IR,sc_everyN_hours:pR,sc_everyN_minutes:AR,sc_everyN_months:mR,sc_everyN_seconds:OR,sc_every_dates:ER,sc_every_dow:fR,sc_every_dows:xR,sc_every_hours:_R,sc_every_minutes:SR,sc_every_months:kR,sc_every_seconds:YR,sc_from:vR,sc_hours:bR,sc_interval:QR,sc_intervalBetween:UR,sc_invalid_cron:$R,sc_minutes:PR,sc_months:WR,sc_once:BR,sc_period:JR,sc_seconds:RR,sc_simple:FR,sc_specific:GR,sc_specific_dates:HR,sc_specific_dow:VR,sc_specific_dows:ZR,sc_specific_hours:XR,sc_specific_minutes:KR,sc_specific_months:qR,sc_specific_seconds:eF,sc_time:tF,sc_to:sF,sc_wizard:iF,sch_all:rF,sch_astroDay:oF,sch_astroNight:nF,sch_astro_dawn:aF,sch_astro_dusk:MF,sch_astro_goldenHour:cF,sch_astro_goldenHourEnd:uF,sch_astro_nadir:lF,sch_astro_nauticalDawn:NF,sch_astro_nauticalDusk:LF,sch_astro_night:gF,sch_astro_nightEnd:jF,sch_astro_solarNoon:yF,sch_astro_sunrise:TF,sch_astro_sunriseEnd:dF,sch_astro_sunset:DF,sch_astro_sunsetStart:hF,sch_at:zF,sch_desc_atTime:wF,sch_desc_everyDay:CF,sch_desc_everyHour:IF,sch_desc_everyMinute:pF,sch_desc_everyMonth:AF,sch_desc_everyNDay:mF,sch_desc_everyNHours:OF,sch_desc_everyNMinutes:EF,sch_desc_everyNMonths:fF,sch_desc_everyNWeeks:xF,sch_desc_everyNYears:_F,sch_desc_everyWeek:SF,sch_desc_everyYear:kF,sch_desc_intervalFromTo:YF,sch_desc_never:vF,sch_desc_onDate:bF,sch_desc_onDates:QF,sch_desc_onEveryDate:UF,sch_desc_onMonth:$F,sch_desc_onMonths:PF,sch_desc_onWeekday:WF,sch_desc_onWeekdays:BF,sch_desc_onWeekends:JF,sch_desc_onWorkdays:RF,sch_desc_onceInPast:FF,sch_desc_once_on:GF,sch_desc_validFrom:HF,sch_desc_validFromTo:VF,sch_desc_validTo:ZF,sch_every:XF,sch_exactTime:KF,sch_from:qF,sch_fromTo:eG,sch_intervalTime:tG,sch_invert:sG,sch_no_one:iG,sch_on:rG,sch_period:oG,sch_periodDaily:nG,sch_periodDates:aG,sch_periodDay:MG,sch_periodEvery:cG,sch_periodEveryDay:uG,sch_periodEveryMonth:lG,sch_periodEveryWeek:NG,sch_periodEveryYear:LG,sch_periodHours:gG,sch_periodMinutes:jG,sch_periodMonth:yG,sch_periodMonthly:TG,sch_periodOnce:dG,sch_periodSpecificMonths:DG,sch_periodWeek:hG,sch_periodWeekdays:zG,sch_periodWeekend:wG,sch_periodWeekly:CG,sch_periodWorkdays:IG,sch_periodYear:pG,sch_periodYearly:AG,sch_specificTime:mG,sch_time:OG,sch_to:EG,sch_valid:fG,sch_validFrom:xG,sch_validTo:_G,sch_wholeDay:SG,sch_yearEveryMonth:kG},vG="Comportamiento",bG="Adjuntar",QG="Cancelar",UG="Categorías",$G="Comprobado",PG="Borrar",WG="Cerca",BG="Comercial",JG="Configurar",RG="Conectado",FG="Continuar",GG="Copiado",HG="Crear",VG="Cultivo",ZG="Delete",XG="Eliminar",KG="Desechar",qG="Desconectado",eH="Error",tH="Filtrar",sH="Viernes",iH="Latitud",rH="Cerrar sesión",oH="Longitud",nH="Mensaje",aH="Lunes",MH="Nombre",cH="Objetos",uH="Okay",lH="Producto",NH="Cambiar nombre/Mover/Copiar",LH="Repetir",gH="Reemplazar",jH="Raíz",yH="Sábado",TH="Salvar",dH="Seleccionado",DH="Estados",hH="Domingo",zH="Jueves",wH="Marca de tiempo",CH="Martes",IH="Actualizar",pH="Válida hasta",AH="Valor",mH="Versión",OH="Miércoles",EH="Anchura",fH="Sí",xH="diferente",_H="Todo el mundo puede leer el objeto",SH="Todos pueden leer el estado",kH="Todos pueden escribir objetos",YH="Todos pueden escribir el estado",vH="El grupo puede leer el objeto",bH="El grupo puede leer el estado",QH="El grupo puede escribir un objeto",UH="El grupo puede escribir el estado",$H="El propietario puede leer el objeto",PH="El propietario puede leer el estado",WH="El propietario puede escribir el objeto",BH="El propietario puede escribir el estado",JH="Botones",RH="Cambiaron desde",FH="cerrar",GH="Crear estado booleano",HH="Crear canal",VH="Crear dispositivo",ZH="Crear estado numérico",XH="Crear estado",KH="Crear estado de cadena",qH="d.",eV="Fr",tV="Mes",sV="Sa",iV="Su",rV="Th",oV="Tu",nV="Nosotros",aV="Modo experto",MV="FALSO",cV="Todos los archivos",uV="Audio",lV="Código/JSON",NV="Imágenes",LV="Texto",gV="Video",jV="Configuraciones",yV="sin",TV="Función",dV="ID",DV="Nombre",hV="Papel",zV="Habitación",wV="Tipo",CV="Configuraciones inválidas",IV="Ultimo cambio",pV="en la zona",AV="Abr",mV="Ago",OV="Dic",EV="Feb",fV="Ene",xV="Jul",_V="Jun",SV="Mai",kV="Mar",YV="Nov",vV="Oct",bV="Sep",QV="Abr",UV="Ago",$V="Dic",PV="Feb",WV="Ene",BV="Jul",JV="Jun",RV="Mai",FV="Mar",GV="Nov",HV="Oct",VV="Sep",ZV="ninguno",XV="Objeto cambiado por",KV="Objeto cambiado por última vez a las",qV="Configuraciones de otro adaptador %s",eZ="Código de calidad",tZ="repetir",sZ='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',iZ="Mostrar todo",rZ="Estado cambiado por",oZ="Objeto cambiado de",nZ="Marca de tiempo",aZ="Bandera reconocida",MZ="Comentario",cZ="Copie el valor del estado",uZ="Mantenga presionada la tecla Cltr/⌘ para abrir el enlace",lZ="Ajustes personalizados",NZ="Eliminar objeto",LZ="Editar objeto",gZ="Edite el valor del estado",jZ="Caduca en",yZ="Desde",TZ="Último cambio",dZ="Calidad",DZ="Sello de tiempo",hZ="Usuario",zZ="Valor",wZ="VERDADERO",CZ="Valor",IZ="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",pZ="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",AZ="CRON",mZ="Fecha",OZ="fechas",EZ="Día",fZ="Día de la semana",xZ="Cada",_Z="cada N días",SZ="cada enésimo día de la semana",kZ="cada N día de la semana",YZ="cada N horas",vZ="cada N minutos",bZ="cada N meses",QZ="cada N segundos",UZ="cada día",$Z="Cada día de la semana",PZ="Cada día de la semana",WZ="cada hora",BZ="cada minuto",JZ="cada mes",RZ="cada segundo",FZ="De",GZ="Horas",HZ="Intervalo",VZ="Intervalo entre",ZZ="CRON no válido",XZ="Minutos",KZ="meses",qZ="Una vez",eX="Período",tX="Segundos",sX="Sencillo",iX="Tiempo específico",rX="fechas especificas",oX="día(s) específico(s) de la semana",nX="día específico de semanas",aX="horas específicas",MX="minutos específicos",cX="meses específicos",uX="segundos específicos",lX="Hora",NX="A",LX="Mago",gX="todas",jX="Día astro",yX="Noche astro",TX="Amanecer",dX="Oscuridad",DX="hora dorada",hX="Fin de la hora dorada",zX="Nadir",wX="Amanecer náutico",CX="Anochecer náutico",IX="Noche",pX="Fin de la noche",AX="Mediodía solar",mX="amanecer",OX="Fin del amanecer",EX="Puesta de sol",fX="Puesta de sol",xX="a",_X="en %s",SX="cada día",kX="cada hora",YX="cada minuto",vX="cada mes",bX="cada %s días",QX="cada %s horas",UX="cada %s minutos",$X="cada %s meses",PX="cada %s semanas",WX="cada %s años",BX="cada semana",JX="todos los años",RX="de %s a %s",FX="Nunca",GX="en %s de %s",HX="en %s y %s de",VX="en cada fecha de",ZX="%s",XX="%s y %s",KX="en %s",qX="en %s y %s",eK="en los fines de semana",tK="en días laborables",sK="ya no se ejecutará más, porque el inicio está en el pasado",iK="en %s",rK="de %s",oK="Ejecutar desde hasta",nK="a %s",aK="cada",MK="Tiempo específico",cK="de",uK="De-a",lK="Tiempo de intervalo",NK="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",LK="ninguna",gK="en",jK="Período",yK="Diario",TK="fechas",dK="Día",DK="Cada",hK="Cada día",zK="Cada mes",wK="Cada semana",CK="Todos los años",IK="Horas",pK="Minutos",AK="mes",mK="Mensual",OK="Una vez",EK="Meses específicos",fK="Semana",xK="Días laborables",_K="Fin de semana",SK="Semanal",kK="Días laborables",YK="Año",vK="Anual",bK="Tiempo específico",QK="Hora",UK="a",$K="Válido",PK="de",WK="a",BK="Todo el dia",JK="cada mes",RK={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia",ra_Actions:vG,"ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:bG,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:QG,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:UG,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:$G,ra_Clear:PG,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:WG,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:BG,ra_Configure:JG,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:RG,ra_Continue:FG,ra_Copied:GG,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:HG,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:VG,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:ZG,ra_Delete:XG,"ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:KG,ra_Disconnected:qG,"ra_Do not ask for next 2 hours in this session":"No preguntes por las siguientes 2 horas en esta sesión.","ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit full path":"Editar ruta completa","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Introduzca el código de esa página aquí",ra_Error:eH,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:tH,"ra_Filter and Data Actions":"Acciones de filtrado y datos","ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:sH,"ra_Get %s access":"Obtener %s acceso","ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:iH,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Logout:rH,ra_Longitude:oH,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:nH,ra_Monday:aH,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:MH,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:cH,ra_Ok:uH,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please allow popups in your browser for this page!":"¡Permita ventanas emergentes en su navegador para esta página!","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Press ENTER Key to add new item":"Presione la tecla ENTER para agregar un nuevo elemento","ra_Private certificate":"certificado privado",ra_Product:lH,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Rename_Move_Copy:NH,"ra_Renew %s access":"Renovar el acceso a %s",ra_Repeat:LH,ra_Replace:gH,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:jH,ra_Saturday:yH,ra_Save:TH,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:dH,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sesión expirará en %s segundos. ¿Continuar?","ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:DH,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.","ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:hH,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:zH,ra_Timestamp:wH,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:CH,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:IH,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:pH,ra_Value:AH,ra_Version:mH,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:OH,ra_Width:EH,ra_Yes:fH,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto","ra_You can use * as wildcard":"Puedes utilizar * como comodín",ra___different__:xH,ra_aclEveryone_read_object:_H,ra_aclEveryone_read_state:SH,ra_aclEveryone_write_object:kH,ra_aclEveryone_write_state:YH,ra_aclGroup_read_object:vH,ra_aclGroup_read_state:bH,ra_aclGroup_write_object:QH,ra_aclGroup_write_state:UH,ra_aclOwner_read_object:$H,ra_aclOwner_read_state:PH,ra_aclOwner_write_object:WH,ra_aclOwner_write_state:BH,ra_buttons:JH,ra_changedFrom:RH,ra_close:FH,ra_create_boolean_state:GH,ra_create_channel:HH,ra_create_device:VH,ra_create_number_state:ZH,ra_create_state:XH,ra_create_string_state:KH,ra_daysShortText:qH,ra_dow_Fr:eV,ra_dow_Mo:tV,ra_dow_Sa:sV,ra_dow_Su:iV,ra_dow_Th:rV,ra_dow_Tu:oV,ra_dow_We:nV,ra_expertMode:aV,ra_false:MV,ra_fileType_all:cV,ra_fileType_audio:uV,ra_fileType_code:lV,ra_fileType_images:NV,ra_fileType_txt:LV,ra_fileType_video:gV,"ra_fileType_video,":"Video",ra_filter_customs:jV,ra_filter_customs_without:yV,ra_filter_func:TV,ra_filter_id:dV,ra_filter_name:DV,ra_filter_role:hV,ra_filter_room:zV,ra_filter_type:wV,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:CV,ra_lastChange:IV,ra_locally:pV,ra_month_Apr:AV,ra_month_Aug:mV,ra_month_Dec:OV,ra_month_Feb:EV,ra_month_Jan:fV,ra_month_Jul:xV,ra_month_Jun:_V,ra_month_Mai:SV,ra_month_Mar:kV,ra_month_Nov:YV,ra_month_Oct:vV,ra_month_Sep:bV,ra_months_Apr:QV,ra_months_Aug:UV,ra_months_Dec:$V,ra_months_Feb:PV,ra_months_Jan:WV,ra_months_Jul:BV,ra_months_Jun:JV,ra_months_Mai:RV,ra_months_Mar:FV,ra_months_Nov:GV,ra_months_Oct:HV,ra_months_Sep:VV,"ra_no confirm for 5 mins":"Sin confirmación durante 5 minutos",ra_none:ZV,ra_object_changed_by:XV,ra_object_changed_by_user:KV,ra_otherConfig:qV,ra_qualityCode:eZ,ra_repeat:tZ,ra_select_folder_hint:sZ,ra_show_all:iZ,ra_state_changed_by:rZ,ra_state_changed_from:oZ,ra_timestamp:nZ,ra_tooltip_ack:aZ,ra_tooltip_comment:MZ,ra_tooltip_copyState:cZ,ra_tooltip_ctrlForLink:uZ,ra_tooltip_customConfig:lZ,ra_tooltip_deleteObject:NZ,ra_tooltip_editObject:LZ,ra_tooltip_editState:gZ,ra_tooltip_expire:jZ,ra_tooltip_from:yZ,ra_tooltip_lc:TZ,ra_tooltip_quality:dZ,ra_tooltip_ts:DZ,ra_tooltip_user:hZ,ra_tooltip_value:zZ,ra_true:wZ,"ra_use seconds":"usar segundos",ra_val:CZ,"ra_via internet":"vía Internet",ra_warning_every_minute:IZ,ra_warning_every_second:pZ,sc_cron:AZ,sc_date:mZ,sc_dates:OZ,sc_dow:EZ,sc_dows:fZ,sc_every:xZ,sc_everyN_dates:_Z,sc_everyN_dow:SZ,sc_everyN_dows:kZ,sc_everyN_hours:YZ,sc_everyN_minutes:vZ,sc_everyN_months:bZ,sc_everyN_seconds:QZ,sc_every_dates:UZ,sc_every_dow:$Z,sc_every_dows:PZ,sc_every_hours:WZ,sc_every_minutes:BZ,sc_every_months:JZ,sc_every_seconds:RZ,sc_from:FZ,sc_hours:GZ,sc_interval:HZ,sc_intervalBetween:VZ,sc_invalid_cron:ZZ,sc_minutes:XZ,sc_months:KZ,sc_once:qZ,sc_period:eX,sc_seconds:tX,sc_simple:sX,sc_specific:iX,sc_specific_dates:rX,sc_specific_dow:oX,sc_specific_dows:nX,sc_specific_hours:aX,sc_specific_minutes:MX,sc_specific_months:cX,sc_specific_seconds:uX,sc_time:lX,sc_to:NX,sc_wizard:LX,sch_all:gX,sch_astroDay:jX,sch_astroNight:yX,sch_astro_dawn:TX,sch_astro_dusk:dX,sch_astro_goldenHour:DX,sch_astro_goldenHourEnd:hX,sch_astro_nadir:zX,sch_astro_nauticalDawn:wX,sch_astro_nauticalDusk:CX,sch_astro_night:IX,sch_astro_nightEnd:pX,sch_astro_solarNoon:AX,sch_astro_sunrise:mX,sch_astro_sunriseEnd:OX,sch_astro_sunset:EX,sch_astro_sunsetStart:fX,sch_at:xX,sch_desc_atTime:_X,sch_desc_everyDay:SX,sch_desc_everyHour:kX,sch_desc_everyMinute:YX,sch_desc_everyMonth:vX,sch_desc_everyNDay:bX,sch_desc_everyNHours:QX,sch_desc_everyNMinutes:UX,sch_desc_everyNMonths:$X,sch_desc_everyNWeeks:PX,sch_desc_everyNYears:WX,sch_desc_everyWeek:BX,sch_desc_everyYear:JX,sch_desc_intervalFromTo:RX,sch_desc_never:FX,sch_desc_onDate:GX,sch_desc_onDates:HX,sch_desc_onEveryDate:VX,sch_desc_onMonth:ZX,sch_desc_onMonths:XX,sch_desc_onWeekday:KX,sch_desc_onWeekdays:qX,sch_desc_onWeekends:eK,sch_desc_onWorkdays:tK,sch_desc_onceInPast:sK,sch_desc_once_on:iK,sch_desc_validFrom:rK,sch_desc_validFromTo:oK,sch_desc_validTo:nK,sch_every:aK,sch_exactTime:MK,sch_from:cK,sch_fromTo:uK,sch_intervalTime:lK,sch_invert:NK,sch_no_one:LK,sch_on:gK,sch_period:jK,sch_periodDaily:yK,sch_periodDates:TK,sch_periodDay:dK,sch_periodEvery:DK,sch_periodEveryDay:hK,sch_periodEveryMonth:zK,sch_periodEveryWeek:wK,sch_periodEveryYear:CK,sch_periodHours:IK,sch_periodMinutes:pK,sch_periodMonth:AK,sch_periodMonthly:mK,sch_periodOnce:OK,sch_periodSpecificMonths:EK,sch_periodWeek:fK,sch_periodWeekdays:xK,sch_periodWeekend:_K,sch_periodWeekly:SK,sch_periodWorkdays:kK,sch_periodYear:YK,sch_periodYearly:vK,sch_specificTime:bK,sch_time:QK,sch_to:UK,sch_valid:$K,sch_validFrom:PK,sch_validTo:WK,sch_wholeDay:BK,sch_yearEveryMonth:JK},FK="Akcje",GK="Dodać",HK="Anuluj",VK="Kategorie",ZK="Sprawdzony",XK="Kasować",KK="Blisko",qK="Handlowy",eq="Konfiguruj",tq="Połączony",sq="Kontynuować",iq="Skopiowano",rq="Stwórz",oq="Przyciąć",nq="Delete",aq="Usunąć",Mq="Wyrzucać",cq="Niepowiązany",uq="Błąd",lq="Filtr",Nq="Piątek",Lq="Szerokość",gq="Wyloguj",jq="Długość geograficzna",yq="Wiadomość",Tq="Poniedziałek",dq="Nazwa",Dq="Obiekty",hq="Dobrze",zq="Produkt",wq="Zmień nazwę/Przenieś/Kopiuj",Cq="Powtarzać",Iq="Zastępować",pq="Korzeń",Aq="Sobota",mq="Zapisać",Oq="Wybrany",Eq="Stany",fq="Niedziela",xq="Czwartek",_q="Znak czasu",Sq="Wtorek",kq="Aktualizacja",Yq="Obowiązuje do",vq="Wartość",bq="Wersja",Qq="Środa",Uq="Szerokość",$q="Tak",Pq="różne",Wq="Każdy może czytać obiekt",Bq="Każdy może czytać stan",Jq="Każdy może pisać przedmiot",Rq="Każdy może pisać stan",Fq="Grupa może odczytać obiekt",Gq="Grupa może odczytać stan",Hq="Grupa może pisać obiekt",Vq="Grupa może pisać stan",Zq="Właściciel może czytać obiekt",Xq="Właściciel może odczytać stan",Kq="Właściciel może napisać obiekt",qq="Właściciel może pisać stan",eee="guziki",tee="Zmieniony z",see="blisko",iee="Utwórz stan logiczny",ree="Utwórz kanał",oee="Utwórz urządzenie",nee="Utwórz stan liczbowy",aee="Utwórz stan",Mee="Utwórz stan ciągu",cee="d.",uee="Ks",lee="Mo",Nee="Sa",Lee="Su",gee="Th",jee="Tu",yee="My",Tee="Tryb ekspercki",dee="FAŁSZ",Dee="Wszystkie pliki",hee="Audio",zee="Kod/JSON",wee="Obrazy",Cee="Tekst",Iee="Wideo",pee="Ustawienia",Aee="bez",mee="Funkcjonować",Oee="ID",Eee="Imię",fee="Rola",xee="Sala",_ee="Rodzaj",See="Nieprawidłowe ustawienia",kee="Ostatnia zmiana",Yee="lokalnie",vee="kwiecień",bee="sierpień",Qee="grudzień",Uee="luty",$ee="styczeń",Pee="lipiec",Wee="czerwiec",Bee="Mai",Jee="Zniszczyć",Ree="listopad",Fee="październik",Gee="wrzesień",Hee="kwiecień",Vee="sierpień",Zee="grudzień",Xee="luty",Kee="styczeń",qee="lipiec",ete="czerwiec",tte="Mai",ste="Zniszczyć",ite="listopad",rte="październik",ote="wrzesień",nte="Żaden",ate="Obiekt zmieniony przez",Mte="Obiekt ostatnio zmieniony o godz",cte="Ustawienia z innego adaptera %s",ute="Kod jakości",lte="powtarzać",Nte="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",Lte="Pokaż wszystko",gte="Stan zmieniony przez",jte="Obiekt zmieniony z",yte="Znak czasu",Tte="Potwierdzon",dte="Komentarz",Dte="Skopiuj wartość stanu",hte="Przytrzymaj klawisz CTRL/⌘, aby otworzyć link",zte="Własne ustawienia",wte="Usuń obiekt",Cte="Edytuj obiekt",Ite="Edytuj wartość stanu",pte="Wygasa za",Ate="Z",mte="Ostatnia zmiana",Ote="Jakość",Ete="Znak czasu",fte="Użytkownik",xte="Wartość",_te="PRAWDA",Ste="Wartość",kte="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Yte="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",vte="CRON",bte="Data",Qte="Daktyle",Ute="Dzień",$te="Dzień tygodnia",Pte="Każdy",Wte="co N dni",Bte="w każdy N-ty dzień tygodnia",Jte="co N dnia tygodnia",Rte="co N godzin",Fte="co N minut",Gte="co N miesięcy",Hte="co N sekund",Vte="codziennie",Zte="każdy dzień tygodnia",Xte="każdy dzień tygodnia",Kte="co godzinę",qte="każda minuta",ese="każdego miesiąca",tse="każda sekunda",sse="Od",ise="godziny",rse="Interwał",ose="Interwał między",nse="Nieprawidłowy CRON",ase="Minuty",Mse="miesięcy",cse="Pewnego razu",use="Kropka",lse="sekundy",Nse="Prosty",Lse="Określony czas",gse="konkretne daty",jse="określone dni tygodnia",yse="określony dzień tygodni",Tse="określone godziny",dse="określone minuty",Dse="określone miesiące",hse="określone sekundy",zse="Czas",wse="Do",Cse="Czarodziej",Ise="wszystko",pse="Dzień Astro",Ase="Noc Astro",mse="Świt",Ose="Zmierzch",Ese="złota godzina",fse="Koniec złotej godziny",xse="Nadir",_se="Morski świt",Sse="Morski zmierzch",kse="Noc",Yse="Koniec nocy",vse="Południe słoneczne",bse="wschód słońca",Qse="Koniec wschodu słońca",Use="Zachód słońca",$se="Początek zachodu słońca",Pse="w",Wse="na %s",Bse="codziennie",Jse="co godzinę",Rse="każda minuta",Fse="każdego miesiąca",Gse="każdego dnia %s",Hse="co %s godzin",Vse="co %s minut",Zse="co %s miesięcy",Xse="co %s tygodni",Kse="co %s lat",qse="co tydzień",eie="każdego roku",tie="od %s do %s",sie="nigdy",iie="na %s z %s",rie="na %s i %s z",oie="w każdą datę",nie="%s",aie="%s i %s",Mie="na %s",cie="na %s i %s",uie="w weekendy",lie="w dni robocze",Nie="nie będzie już wykonywany, ponieważ start jest w przeszłości",Lie="na %s",gie="z %s",jie="Wykonaj od do",yie="do %s",Tie="każdy",die="Określony czas",Die="od",hie="Od-do",zie="Czas przerwy",wie="odwracać",Cie="Żaden",Iie="na",pie="Kropka",Aie="Codziennie",mie="Daktyle",Oie="Dzień",Eie="Każdy",fie="Codziennie",xie="Każdego miesiąca",_ie="Co tydzień",Sie="Każdego roku",kie="godziny",Yie="Minuty",vie="miesiąc",bie="Miesięczny",Qie="Pewnego razu",Uie="Określone miesiące",$ie="Tydzień",Pie="Dni powszednie",Wie="Weekend",Bie="Co tydzień",Jie="Dni robocze",Rie="Rok",Fie="Rocznie",Gie="Określony czas",Hie="Czas",Vie="do",Zie="Ważny",Xie="od",Kie="do",qie="Cały dzień",ere="każdego miesiąca",tre={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję",ra_Actions:FK,"ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:GK,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:HK,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:VK,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:ZK,ra_Clear:XK,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:KK,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:qK,ra_Configure:eq,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:tq,ra_Continue:sq,ra_Copied:iq,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:rq,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:oq,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:nq,ra_Delete:aq,"ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:Mq,ra_Disconnected:cq,"ra_Do not ask for next 2 hours in this session":"Nie proś o kolejne 2 godziny w tej sesji","ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit full path":"Edytuj pełną ścieżkę","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość","ra_Enter the code from that page here":"Wpisz kod z tej strony tutaj",ra_Error:uq,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:lq,"ra_Filter and Data Actions":"Akcje filtrów i danych","ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:Nq,"ra_Get %s access":"Uzyskaj dostęp %s","ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:Lq,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Logout:gq,ra_Longitude:jq,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:yq,ra_Monday:Tq,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:dq,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:Dq,ra_Ok:hq,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please allow popups in your browser for this page!":"Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Press ENTER Key to add new item":"Naciśnij klawisz ENTER, aby dodać nowy element","ra_Private certificate":"Prywatny certyfikat",ra_Product:zq,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Rename_Move_Copy:wq,"ra_Renew %s access":"Odnów dostęp %s",ra_Repeat:Cq,ra_Replace:Iq,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:pq,ra_Saturday:Aq,ra_Save:mq,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:Oq,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Session will expire in %s seconds. Continue?":"Sesja wygaśnie za %s sekund. Kontynuować?","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:Eq,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.","ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:fq,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:xq,ra_Timestamp:_q,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:Sq,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:kq,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Yq,ra_Value:vq,ra_Version:bq,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:Qq,ra_Width:Uq,ra_Yes:$q,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst","ra_You can use * as wildcard":"Możesz użyć * jako symbolu wieloznacznego",ra___different__:Pq,ra_aclEveryone_read_object:Wq,ra_aclEveryone_read_state:Bq,ra_aclEveryone_write_object:Jq,ra_aclEveryone_write_state:Rq,ra_aclGroup_read_object:Fq,ra_aclGroup_read_state:Gq,ra_aclGroup_write_object:Hq,ra_aclGroup_write_state:Vq,ra_aclOwner_read_object:Zq,ra_aclOwner_read_state:Xq,ra_aclOwner_write_object:Kq,ra_aclOwner_write_state:qq,ra_buttons:eee,ra_changedFrom:tee,ra_close:see,ra_create_boolean_state:iee,ra_create_channel:ree,ra_create_device:oee,ra_create_number_state:nee,ra_create_state:aee,ra_create_string_state:Mee,ra_daysShortText:cee,ra_dow_Fr:uee,ra_dow_Mo:lee,ra_dow_Sa:Nee,ra_dow_Su:Lee,ra_dow_Th:gee,ra_dow_Tu:jee,ra_dow_We:yee,ra_expertMode:Tee,ra_false:dee,ra_fileType_all:Dee,ra_fileType_audio:hee,ra_fileType_code:zee,ra_fileType_images:wee,ra_fileType_txt:Cee,ra_fileType_video:Iee,"ra_fileType_video,":"Wideo",ra_filter_customs:pee,ra_filter_customs_without:Aee,ra_filter_func:mee,ra_filter_id:Oee,ra_filter_name:Eee,ra_filter_role:fee,ra_filter_room:xee,ra_filter_type:_ee,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:See,ra_lastChange:kee,ra_locally:Yee,ra_month_Apr:vee,ra_month_Aug:bee,ra_month_Dec:Qee,ra_month_Feb:Uee,ra_month_Jan:$ee,ra_month_Jul:Pee,ra_month_Jun:Wee,ra_month_Mai:Bee,ra_month_Mar:Jee,ra_month_Nov:Ree,ra_month_Oct:Fee,ra_month_Sep:Gee,ra_months_Apr:Hee,ra_months_Aug:Vee,ra_months_Dec:Zee,ra_months_Feb:Xee,ra_months_Jan:Kee,ra_months_Jul:qee,ra_months_Jun:ete,ra_months_Mai:tte,ra_months_Mar:ste,ra_months_Nov:ite,ra_months_Oct:rte,ra_months_Sep:ote,"ra_no confirm for 5 mins":"brak potwierdzenia przez 5 minut",ra_none:nte,ra_object_changed_by:ate,ra_object_changed_by_user:Mte,ra_otherConfig:cte,ra_qualityCode:ute,ra_repeat:lte,ra_select_folder_hint:Nte,ra_show_all:Lte,ra_state_changed_by:gte,ra_state_changed_from:jte,ra_timestamp:yte,ra_tooltip_ack:Tte,ra_tooltip_comment:dte,ra_tooltip_copyState:Dte,ra_tooltip_ctrlForLink:hte,ra_tooltip_customConfig:zte,ra_tooltip_deleteObject:wte,ra_tooltip_editObject:Cte,ra_tooltip_editState:Ite,ra_tooltip_expire:pte,ra_tooltip_from:Ate,ra_tooltip_lc:mte,ra_tooltip_quality:Ote,ra_tooltip_ts:Ete,ra_tooltip_user:fte,ra_tooltip_value:xte,ra_true:_te,"ra_use seconds":"użyj sekund",ra_val:Ste,"ra_via internet":"przez internet",ra_warning_every_minute:kte,ra_warning_every_second:Yte,sc_cron:vte,sc_date:bte,sc_dates:Qte,sc_dow:Ute,sc_dows:$te,sc_every:Pte,sc_everyN_dates:Wte,sc_everyN_dow:Bte,sc_everyN_dows:Jte,sc_everyN_hours:Rte,sc_everyN_minutes:Fte,sc_everyN_months:Gte,sc_everyN_seconds:Hte,sc_every_dates:Vte,sc_every_dow:Zte,sc_every_dows:Xte,sc_every_hours:Kte,sc_every_minutes:qte,sc_every_months:ese,sc_every_seconds:tse,sc_from:sse,sc_hours:ise,sc_interval:rse,sc_intervalBetween:ose,sc_invalid_cron:nse,sc_minutes:ase,sc_months:Mse,sc_once:cse,sc_period:use,sc_seconds:lse,sc_simple:Nse,sc_specific:Lse,sc_specific_dates:gse,sc_specific_dow:jse,sc_specific_dows:yse,sc_specific_hours:Tse,sc_specific_minutes:dse,sc_specific_months:Dse,sc_specific_seconds:hse,sc_time:zse,sc_to:wse,sc_wizard:Cse,sch_all:Ise,sch_astroDay:pse,sch_astroNight:Ase,sch_astro_dawn:mse,sch_astro_dusk:Ose,sch_astro_goldenHour:Ese,sch_astro_goldenHourEnd:fse,sch_astro_nadir:xse,sch_astro_nauticalDawn:_se,sch_astro_nauticalDusk:Sse,sch_astro_night:kse,sch_astro_nightEnd:Yse,sch_astro_solarNoon:vse,sch_astro_sunrise:bse,sch_astro_sunriseEnd:Qse,sch_astro_sunset:Use,sch_astro_sunsetStart:$se,sch_at:Pse,sch_desc_atTime:Wse,sch_desc_everyDay:Bse,sch_desc_everyHour:Jse,sch_desc_everyMinute:Rse,sch_desc_everyMonth:Fse,sch_desc_everyNDay:Gse,sch_desc_everyNHours:Hse,sch_desc_everyNMinutes:Vse,sch_desc_everyNMonths:Zse,sch_desc_everyNWeeks:Xse,sch_desc_everyNYears:Kse,sch_desc_everyWeek:qse,sch_desc_everyYear:eie,sch_desc_intervalFromTo:tie,sch_desc_never:sie,sch_desc_onDate:iie,sch_desc_onDates:rie,sch_desc_onEveryDate:oie,sch_desc_onMonth:nie,sch_desc_onMonths:aie,sch_desc_onWeekday:Mie,sch_desc_onWeekdays:cie,sch_desc_onWeekends:uie,sch_desc_onWorkdays:lie,sch_desc_onceInPast:Nie,sch_desc_once_on:Lie,sch_desc_validFrom:gie,sch_desc_validFromTo:jie,sch_desc_validTo:yie,sch_every:Tie,sch_exactTime:die,sch_from:Die,sch_fromTo:hie,sch_intervalTime:zie,sch_invert:wie,sch_no_one:Cie,sch_on:Iie,sch_period:pie,sch_periodDaily:Aie,sch_periodDates:mie,sch_periodDay:Oie,sch_periodEvery:Eie,sch_periodEveryDay:fie,sch_periodEveryMonth:xie,sch_periodEveryWeek:_ie,sch_periodEveryYear:Sie,sch_periodHours:kie,sch_periodMinutes:Yie,sch_periodMonth:vie,sch_periodMonthly:bie,sch_periodOnce:Qie,sch_periodSpecificMonths:Uie,sch_periodWeek:$ie,sch_periodWeekdays:Pie,sch_periodWeekend:Wie,sch_periodWeekly:Bie,sch_periodWorkdays:Jie,sch_periodYear:Rie,sch_periodYearly:Fie,sch_specificTime:Gie,sch_time:Hie,sch_to:Vie,sch_valid:Zie,sch_validFrom:Xie,sch_validTo:Kie,sch_wholeDay:qie,sch_yearEveryMonth:ere},sre="Дії",ire="Додайте",rre="Скасувати",ore="Категорії",nre="Перевірено",are="Видалити",Mre="Закрити",cre="Комерційний",ure="Налаштувати",lre="Підключено",Nre="Продовжити",Lre="Скопійовано",gre="Створити",jre="Урожай",yre="Delete",Tre="Видалити",dre="Відкинути",Dre="Відключено",hre="Помилка",zre="фільтр",wre="П'ятниця",Cre="Широта",Ire="Вийти",pre="Довгота",Are="повідомлення",mre="понеділок",Ore="Ім'я",Ere="Об'єкти",fre="В порядку",xre="Продукт",_re="Перейменувати/Перемістити/Копіювати",Sre="Повторіть",kre="Замінити",Yre="Корінь",vre="Субота",bre="зберегти",Qre="Вибране",Ure="держави",$re="неділя",Pre="четвер",Wre="Мітка часу",Bre="вівторок",Jre="оновлення",Rre="Дійсний до",Fre="Значення",Gre="Версія",Hre="Середа",Vre="Ширина",Zre="Так",Xre="інший",Kre="Кожен може читати об'єкт",qre="Кожен може читати стан",eoe="Кожен може написати об'єкт",toe="Кожен може написати стан",soe="Група може читати об'єкт",ioe="Група може читати стан",roe="Група може писати об'єкт",ooe="Група може писати стан",noe="Власник може читати об'єкт",aoe="Власник може читати стан",Moe="Власник може написати об'єкт",coe="Власник може написати стан",uoe="кнопки",loe="Змінено з",Noe="закрити",Loe="Створіть логічний стан",goe="Створити канал",joe="Створити пристрій",yoe="Створити номерний стан",Toe="Створити состояние",doe="Створити рядковий стан",Doe="днів",hoe="О",zoe="пн",woe="Sa",Coe="Нд",Ioe="чт",poe="вт",Aoe="ми",moe="Експертний режим",Ooe="НЕПРАВДА",Eoe="Всі файли",foe="Аудіо",xoe="Код/JSON",_oe="Зображення",Soe="текст",koe="відео",Yoe="Налаштування",voe="без",boe="функція",Qoe="ID",Uoe="Ім'я",$oe="Роль",Poe="Кімната",Woe="Тип",Boe="Недійсні налаштування",Joe="Остання зміна",Roe="локально",Foe="квіт",Goe="серп",Hoe="груд",Voe="лютий",Zoe="січня",Xoe="лип",Koe="черв",qoe="травень",ene="березень",tne="Листопад",sne="жовт",ine="вер",rne="квіт",one="серп",nne="груд",ane="лютий",Mne="січня",cne="лип",une="черв",lne="травень",Nne="березень",Lne="Листопад",gne="жовт",jne="вер",yne="немає",Tne="Об'єкт змінено",dne="Об'єкт востаннє змінено о",Dne="Налаштування з іншого адаптера %s",hne="Код якості",zne="повторити",wne="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",Cne="Показати все",Ine="Стан змінено на",pne="Об'єкт змінено з",Ane="Мітка часу",mne="Визнано",One="коментар",Ene="Скопіюйте значення стану",fne="Утримуйте клавішу Cltr/⌘, щоб відкрити посилання",xne="Спеціальні налаштування",_ne="Видалити об'єкт",Sne="Редагувати об'єкт",kne="Відредагуйте значення стану",Yne="Термін дії закінчується через",vne="Від",bne="Востаннє змінено",Qne="якість",Une="Позначка часу",$ne="Користувач",Pne="Значення",Wne="ПРАВДА",Bne="Значення",Jne="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",Rne="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Fne="CRON",Gne="Дата",Hne="дати",Vne="День",Zne="День тижня",Xne="кожен",Kne="кожні N днів",qne="кожен N-й день тижня",eae="кожні N днів тижня",tae="кожні N годин",sae="кожні N хвилин",iae="кожні N місяців",rae="кожні N секунд",oae="кожен день",nae="кожен день тижня",aae="кожен день тижня",Mae="щогодини",cae="кожну хвилину",uae="щомісяця",lae="кожна секунда",Nae="Від",Lae="години",gae="Інтервал",jae="Інтервал між",yae="Недійсний CRON",Tae="хвилин",dae="місяців",Dae="Один раз",hae="Крапка",zae="секунд",wae="просто",Cae="Конкретний час",Iae="конкретні дати",pae="конкретний день (дні) тижня",Aae="конкретний день тижня",mae="конкретні години",Oae="конкретні хвилини",Eae="конкретні місяці",fae="конкретні секунди",xae="час",_ae="до",Sae="майстер",kae="все",Yae="Астродень",vae="Астро ніч",bae="Світанок",Qae="Сутінки",Uae="Золота година",$ae="Кінець золотої години",Pae="Надір",Wae="Морський світанок",Bae="Морські сутінки",Jae="ніч",Rae="Кінець ночі",Fae="Сонячний полудень",Gae="Схід сонця",Hae="Кінець сходу сонця",Vae="Захід сонця",Zae="Початок заходу сонця",Xae="в",Kae="в %s",qae="кожен день",eMe="щогодини",tMe="кожну хвилину",sMe="щомісяця",iMe="кожен %s день",rMe="кожні %s годин",oMe="кожні %s хвилин",nMe="кожні %s місяців",aMe="кожні %s тижнів",MMe="кожні %s років",cMe="щотижня",uMe="щороку",lMe="від %s до %s",NMe="ніколи",LMe="на %s з %s",gMe="на %s і %s з",jMe="на кожну дату",yMe="%s",TMe="%s і %s",dMe="на %s",DMe="на %s і %s",hMe="на вихідних",zMe="в робочі дні",wMe="більше не виконуватиметься, оскільки запуск у минулому",CMe="на %s",IMe="від %s",pMe="Виконати від до",AMe="до %s",mMe="кожен",OMe="Конкретний час",EMe="від",fMe="Від до",xMe="Час інтервалу",_Me="інвертувати",SMe="немає",kMe="на",YMe="Крапка",vMe="Щодня",bMe="дати",QMe="День",UMe="кожен",$Me="Кожен день",PMe="Щомісяця",WMe="Щотижня",BMe="Щороку",JMe="години",RMe="хвилин",FMe="місяць",GMe="Щомісяця",HMe="Один раз",VMe="Конкретні місяці",ZMe="тиждень",XMe="будні",KMe="Вихідні",qMe="Щотижня",ece="робочі дні",tce="рік",sce="щорічно",ice="Конкретний час",rce="час",oce="до",nce="Дійсний",ace="від",Mce="до",cce="Цілий день",uce="щомісяця",lce={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію",ra_Actions:sre,"ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:ire,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:rre,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:ore,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:nre,ra_Clear:are,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:Mre,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:cre,ra_Configure:ure,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:lre,ra_Continue:Nre,ra_Copied:Lre,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:gre,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:jre,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:yre,ra_Delete:Tre,"ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:dre,ra_Disconnected:Dre,"ra_Do not ask for next 2 hours in this session":"Не запитуйте про наступні 2 години цього сеансу","ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit full path":"Редагувати повний шлях","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення","ra_Enter the code from that page here":"Введіть тут код з цієї сторінки",ra_Error:hre,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:zre,"ra_Filter and Data Actions":"Фільтр і дії з даними","ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:wre,"ra_Get %s access":"Отримайте доступ %s","ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:Cre,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Logout:Ire,ra_Longitude:pre,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:Are,ra_Monday:mre,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:Ore,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:Ere,ra_Ok:fre,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please allow popups in your browser for this page!":"Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Press ENTER Key to add new item":"Натисніть клавішу ENTER, щоб додати новий елемент","ra_Private certificate":"Приватний сертифікат",ra_Product:xre,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Rename_Move_Copy:_re,"ra_Renew %s access":"Поновити доступ %s",ra_Repeat:Sre,ra_Replace:kre,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:Yre,ra_Saturday:vre,ra_Save:bre,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:Qre,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Session will expire in %s seconds. Continue?":"Сеанс закінчиться через %s секунд. Продовжити?","ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:Ure,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.","ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:$re,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Pre,ra_Timestamp:Wre,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:Bre,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Jre,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Rre,ra_Value:Fre,ra_Version:Gre,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:Hre,ra_Width:Vre,ra_Yes:Zre,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст","ra_You can use * as wildcard":"Ви можете використовувати * як символ підстановки",ra___different__:Xre,ra_aclEveryone_read_object:Kre,ra_aclEveryone_read_state:qre,ra_aclEveryone_write_object:eoe,ra_aclEveryone_write_state:toe,ra_aclGroup_read_object:soe,ra_aclGroup_read_state:ioe,ra_aclGroup_write_object:roe,ra_aclGroup_write_state:ooe,ra_aclOwner_read_object:noe,ra_aclOwner_read_state:aoe,ra_aclOwner_write_object:Moe,ra_aclOwner_write_state:coe,ra_buttons:uoe,ra_changedFrom:loe,ra_close:Noe,ra_create_boolean_state:Loe,ra_create_channel:goe,ra_create_device:joe,ra_create_number_state:yoe,ra_create_state:Toe,ra_create_string_state:doe,ra_daysShortText:Doe,ra_dow_Fr:hoe,ra_dow_Mo:zoe,ra_dow_Sa:woe,ra_dow_Su:Coe,ra_dow_Th:Ioe,ra_dow_Tu:poe,ra_dow_We:Aoe,ra_expertMode:moe,ra_false:Ooe,ra_fileType_all:Eoe,ra_fileType_audio:foe,ra_fileType_code:xoe,ra_fileType_images:_oe,ra_fileType_txt:Soe,ra_fileType_video:koe,"ra_fileType_video,":"відео",ra_filter_customs:Yoe,ra_filter_customs_without:voe,ra_filter_func:boe,ra_filter_id:Qoe,ra_filter_name:Uoe,ra_filter_role:$oe,ra_filter_room:Poe,ra_filter_type:Woe,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Boe,ra_lastChange:Joe,ra_locally:Roe,ra_month_Apr:Foe,ra_month_Aug:Goe,ra_month_Dec:Hoe,ra_month_Feb:Voe,ra_month_Jan:Zoe,ra_month_Jul:Xoe,ra_month_Jun:Koe,ra_month_Mai:qoe,ra_month_Mar:ene,ra_month_Nov:tne,ra_month_Oct:sne,ra_month_Sep:ine,ra_months_Apr:rne,ra_months_Aug:one,ra_months_Dec:nne,ra_months_Feb:ane,ra_months_Jan:Mne,ra_months_Jul:cne,ra_months_Jun:une,ra_months_Mai:lne,ra_months_Mar:Nne,ra_months_Nov:Lne,ra_months_Oct:gne,ra_months_Sep:jne,"ra_no confirm for 5 mins":"без підтвердження протягом 5 хв",ra_none:yne,ra_object_changed_by:Tne,ra_object_changed_by_user:dne,ra_otherConfig:Dne,ra_qualityCode:hne,ra_repeat:zne,ra_select_folder_hint:wne,ra_show_all:Cne,ra_state_changed_by:Ine,ra_state_changed_from:pne,ra_timestamp:Ane,ra_tooltip_ack:mne,ra_tooltip_comment:One,ra_tooltip_copyState:Ene,ra_tooltip_ctrlForLink:fne,ra_tooltip_customConfig:xne,ra_tooltip_deleteObject:_ne,ra_tooltip_editObject:Sne,ra_tooltip_editState:kne,ra_tooltip_expire:Yne,ra_tooltip_from:vne,ra_tooltip_lc:bne,ra_tooltip_quality:Qne,ra_tooltip_ts:Une,ra_tooltip_user:$ne,ra_tooltip_value:Pne,ra_true:Wne,"ra_use seconds":"використовуйте секунди",ra_val:Bne,"ra_via internet":"через інтернет",ra_warning_every_minute:Jne,ra_warning_every_second:Rne,sc_cron:Fne,sc_date:Gne,sc_dates:Hne,sc_dow:Vne,sc_dows:Zne,sc_every:Xne,sc_everyN_dates:Kne,sc_everyN_dow:qne,sc_everyN_dows:eae,sc_everyN_hours:tae,sc_everyN_minutes:sae,sc_everyN_months:iae,sc_everyN_seconds:rae,sc_every_dates:oae,sc_every_dow:nae,sc_every_dows:aae,sc_every_hours:Mae,sc_every_minutes:cae,sc_every_months:uae,sc_every_seconds:lae,sc_from:Nae,sc_hours:Lae,sc_interval:gae,sc_intervalBetween:jae,sc_invalid_cron:yae,sc_minutes:Tae,sc_months:dae,sc_once:Dae,sc_period:hae,sc_seconds:zae,sc_simple:wae,sc_specific:Cae,sc_specific_dates:Iae,sc_specific_dow:pae,sc_specific_dows:Aae,sc_specific_hours:mae,sc_specific_minutes:Oae,sc_specific_months:Eae,sc_specific_seconds:fae,sc_time:xae,sc_to:_ae,sc_wizard:Sae,sch_all:kae,sch_astroDay:Yae,sch_astroNight:vae,sch_astro_dawn:bae,sch_astro_dusk:Qae,sch_astro_goldenHour:Uae,sch_astro_goldenHourEnd:$ae,sch_astro_nadir:Pae,sch_astro_nauticalDawn:Wae,sch_astro_nauticalDusk:Bae,sch_astro_night:Jae,sch_astro_nightEnd:Rae,sch_astro_solarNoon:Fae,sch_astro_sunrise:Gae,sch_astro_sunriseEnd:Hae,sch_astro_sunset:Vae,sch_astro_sunsetStart:Zae,sch_at:Xae,sch_desc_atTime:Kae,sch_desc_everyDay:qae,sch_desc_everyHour:eMe,sch_desc_everyMinute:tMe,sch_desc_everyMonth:sMe,sch_desc_everyNDay:iMe,sch_desc_everyNHours:rMe,sch_desc_everyNMinutes:oMe,sch_desc_everyNMonths:nMe,sch_desc_everyNWeeks:aMe,sch_desc_everyNYears:MMe,sch_desc_everyWeek:cMe,sch_desc_everyYear:uMe,sch_desc_intervalFromTo:lMe,sch_desc_never:NMe,sch_desc_onDate:LMe,sch_desc_onDates:gMe,sch_desc_onEveryDate:jMe,sch_desc_onMonth:yMe,sch_desc_onMonths:TMe,sch_desc_onWeekday:dMe,sch_desc_onWeekdays:DMe,sch_desc_onWeekends:hMe,sch_desc_onWorkdays:zMe,sch_desc_onceInPast:wMe,sch_desc_once_on:CMe,sch_desc_validFrom:IMe,sch_desc_validFromTo:pMe,sch_desc_validTo:AMe,sch_every:mMe,sch_exactTime:OMe,sch_from:EMe,sch_fromTo:fMe,sch_intervalTime:xMe,sch_invert:_Me,sch_no_one:SMe,sch_on:kMe,sch_period:YMe,sch_periodDaily:vMe,sch_periodDates:bMe,sch_periodDay:QMe,sch_periodEvery:UMe,sch_periodEveryDay:$Me,sch_periodEveryMonth:PMe,sch_periodEveryWeek:WMe,sch_periodEveryYear:BMe,sch_periodHours:JMe,sch_periodMinutes:RMe,sch_periodMonth:FMe,sch_periodMonthly:GMe,sch_periodOnce:HMe,sch_periodSpecificMonths:VMe,sch_periodWeek:ZMe,sch_periodWeekdays:XMe,sch_periodWeekend:KMe,sch_periodWeekly:qMe,sch_periodWorkdays:ece,sch_periodYear:tce,sch_periodYearly:sce,sch_specificTime:ice,sch_time:rce,sch_to:oce,sch_valid:nce,sch_validFrom:ace,sch_validTo:Mce,sch_wholeDay:cce,sch_yearEveryMonth:uce},Nce="操作",Lce="附加",gce="取消",jce="类别",yce="勾选",Tce="删除",dce="关",Dce="商业的",hce="配置",zce="连接的",wce="继续",Cce="复制的",Ice="创建",pce="庄稼",Ace="Delete",mce="删除",Oce="丢弃",Ece="断开连接",fce="错误",xce="筛选",_ce="星期五",Sce="纬度",kce="登出",Yce="经度",vce="信息",bce="周一",Qce="姓名",Uce="对象",$ce="好",Pce="产品",Wce="重命名/移动/复制",Bce="重复",Jce="代替",Rce="根",Fce="周六",Gce="保存",Hce="已选",Vce="状态",Zce="星期日",Xce="周四",Kce="时间戳记",qce="周二",eue="更新资料",tue="有效期至",sue="值",iue="版本",rue="周三",oue="宽度",nue="是的",aue="不同的",Mue="每个人都可以阅读对象",cue="每个人都可以阅读状态",uue="每个人都可以写对象",lue="每个人都可以写状态",Nue="组可以读取对象",Lue="群组可以读取状态",gue="组可以写对象",jue="组可以写状态",yue="所有者可以读取对象",Tue="所有者可以读取状态",due="所有者可以写对象",Due="所有者可以写状态",hue="纽扣",zue="更改为",wue="关闭",Cue="创建布尔状态",Iue="创建频道",pue="创建设备",Aue="创建号码状态",mue="创建状态",Oue="创建字符串状态",Eue="天",fue="r",xue="莫",_ue="萨",Sue="苏",kue="Th",Yue="Tu",vue="我们",bue="专家模式",Que="错误的",Uue="所有文件",$ue="声音的",Pue="代码/JSON",Wue="图片",Bue="文本",Jue="视频",Rue="设定值",Fue="没有",Gue="功能",Hue="ID",Vue="名称",Zue="角色",Xue="房间",Kue="类型",que="无效的设定",ele="最后一次变更",tle="本地",sle="4月",ile="八月",rle="十二月",ole="二月",nle="简",ale="七月",Mle="君",cle="迈",ule="三月",lle="十一月",Nle="十月",Lle="九月",gle="4月",jle="八月",yle="十二月",Tle="二月",dle="简",Dle="七月",hle="君",zle="迈",wle="三月",Cle="十一月",Ile="十月",ple="九月",Ale="没有任何",mle="物件变更者",Ole="对象上次更改时间为",Ele="来自其他适配器%s的设置",fle="质量代码",xle="重复",_le="要选择文件夹,只需按住“shift”键单击文件夹即可。",Sle="显示全部",kle="状态由",Yle="对象已从更改",vle="时间戳记",ble="致谢国旗",Qle="评论",Ule="复制状态值",$le="按住 Cltr/⌘ 键打开链接",Ple="自定义设置",Wle="删除物件",Ble="编辑物件",Jle="编辑状态值",Rle="有效期:",Fle="从",Gle="最后改变了",Hle="质量",Vle="时间戳",Zle="用户",Xle="值",Kle="真的",qle="值",eNe="警告:CRON 作业将在指定期间内每分钟运行一次!",tNe="警告:CRON 作业将在指定期间内每秒运行一次!",sNe="周期任务",iNe="日期",rNe="日",oNe="天",nNe="星期",aNe="每",MNe="每N天",cNe="每周的第 N 天",uNe="每周N天",lNe="每N小时一次",NNe="每N分钟",LNe="每N个月",gNe="每N秒",jNe="每天",yNe="一周的每一天",TNe="一周的每一天",dNe="每小时",DNe="每分钟",hNe="每月",zNe="每秒",wNe="从",CNe="小时",INe="间隔",pNe="间隔时间",ANe="无效的 CRON",mNe="分钟",ONe="月",ENe="一次",fNe="周期",xNe="秒",_Ne="简单模式",SNe="特定的时间",kNe="特定的日子",YNe="一周中的特定日子",vNe="特定的一周",bNe="特定的小时",QNe="特定的分钟",UNe="特定的月份",$Ne="特定的描述",PNe="时间",WNe="至",BNe="向导模式",JNe="全选",RNe="天文白天",FNe="天文夜晚",GNe="黎明",HNe="黄昏",VNe="黄金时段",ZNe="黄金时段结束",XNe="天底",KNe="航海黎明",qNe="航海黄昏",e0e="夜晚",t0e="夜晚结束",s0e="正午",i0e="日出",r0e="日出结束",o0e="日落",n0e="日落开始",a0e="在",M0e="的%s",c0e="每天",u0e="每小时",l0e="每分钟",N0e="每月",L0e="每%s天",g0e="每%s小时",j0e="每%s分钟",y0e="每%s月",T0e="每%s周",d0e="每%s年",D0e="每周",h0e="每年",z0e="从%s到%s",w0e="决不",C0e="在%s的%s上",I0e="在%s和%s上",p0e="在每天",A0e="%s",m0e="%s和%s",O0e="在%s上",E0e="在%s和%s上",f0e="在周末",x0e="在工作日",_0e="将不再执行,因为起始时间已经是过去的时间了。",S0e="在%s上",k0e="来自%s",Y0e="从执行到",v0e="到%s",b0e="每",Q0e="特定的时间",U0e="从",$0e="从到",P0e="间隔时间",W0e="倒置",B0e="取消全选",J0e="的",R0e="周期",F0e="每天",G0e="日期",H0e="天",V0e="每",Z0e="每天",X0e="每月",K0e="每周",q0e="每年",e4e="小时",t4e="分钟",s4e="月",i4e="每月一次",r4e="一次",o4e="特定的月份",n4e="周",a4e="工作日",M4e="周末",c4e="每周",u4e="工作日",l4e="年",N4e="每年",L4e="特定的时间",g4e="时间",j4e="至",y4e="生效",T4e="从",d4e="至",D4e="一整天",h4e="每月",z4e={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可",ra_Actions:Nce,"ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:Lce,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:gce,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:jce,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:yce,ra_Clear:Tce,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:dce,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Dce,ra_Configure:hce,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:zce,ra_Continue:wce,ra_Copied:Cce,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:Ice,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:pce,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:Ace,ra_Delete:mce,"ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:Oce,ra_Disconnected:Ece,"ra_Do not ask for next 2 hours in this session":"本次会话中不要询问接下来的 2 个小时","ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit full path":"编辑完整路径","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值","ra_Enter the code from that page here":"在此处输入该页面的代码",ra_Error:fce,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:xce,"ra_Filter and Data Actions":"过滤和数据操作","ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:_ce,"ra_Get %s access":"获取 %s 访问权限","ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_If the button above does not work, you can authorize manually this app by visiting this url":"如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:Sce,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Logout:kce,ra_Longitude:Yce,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:vce,ra_Monday:bce,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:Qce,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:Uce,ra_Ok:$ce,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please allow popups in your browser for this page!":"请允许浏览器弹出此页面!","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Press ENTER Key to add new item":"按 ENTER 键添加新项目","ra_Private certificate":"私有证书",ra_Product:Pce,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Rename_Move_Copy:Wce,"ra_Renew %s access":"续订 %s 访问权限",ra_Repeat:Bce,ra_Replace:Jce,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:Rce,ra_Saturday:Fce,ra_Save:Gce,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Hce,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Session will expire in %s seconds. Continue?":"会话将在 %s 秒后过期。是否继续?","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:Vce,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"授权成功。令牌有效期至 %s,并将自动续订。","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。","ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Zce,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Xce,ra_Timestamp:Kce,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:qce,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:eue,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:tue,ra_Value:sue,ra_Version:iue,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:rue,ra_Width:oue,ra_Yes:nue,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目","ra_You can use * as wildcard":"您可以使用 * 作为通配符",ra___different__:aue,ra_aclEveryone_read_object:Mue,ra_aclEveryone_read_state:cue,ra_aclEveryone_write_object:uue,ra_aclEveryone_write_state:lue,ra_aclGroup_read_object:Nue,ra_aclGroup_read_state:Lue,ra_aclGroup_write_object:gue,ra_aclGroup_write_state:jue,ra_aclOwner_read_object:yue,ra_aclOwner_read_state:Tue,ra_aclOwner_write_object:due,ra_aclOwner_write_state:Due,ra_buttons:hue,ra_changedFrom:zue,ra_close:wue,ra_create_boolean_state:Cue,ra_create_channel:Iue,ra_create_device:pue,ra_create_number_state:Aue,ra_create_state:mue,ra_create_string_state:Oue,ra_daysShortText:Eue,ra_dow_Fr:fue,ra_dow_Mo:xue,ra_dow_Sa:_ue,ra_dow_Su:Sue,ra_dow_Th:kue,ra_dow_Tu:Yue,ra_dow_We:vue,ra_expertMode:bue,ra_false:Que,ra_fileType_all:Uue,ra_fileType_audio:$ue,ra_fileType_code:Pue,ra_fileType_images:Wue,ra_fileType_txt:Bue,ra_fileType_video:Jue,"ra_fileType_video,":"视频",ra_filter_customs:Rue,ra_filter_customs_without:Fue,ra_filter_func:Gue,ra_filter_id:Hue,ra_filter_name:Vue,ra_filter_role:Zue,ra_filter_room:Xue,ra_filter_type:Kue,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:que,ra_lastChange:ele,ra_locally:tle,ra_month_Apr:sle,ra_month_Aug:ile,ra_month_Dec:rle,ra_month_Feb:ole,ra_month_Jan:nle,ra_month_Jul:ale,ra_month_Jun:Mle,ra_month_Mai:cle,ra_month_Mar:ule,ra_month_Nov:lle,ra_month_Oct:Nle,ra_month_Sep:Lle,ra_months_Apr:gle,ra_months_Aug:jle,ra_months_Dec:yle,ra_months_Feb:Tle,ra_months_Jan:dle,ra_months_Jul:Dle,ra_months_Jun:hle,ra_months_Mai:zle,ra_months_Mar:wle,ra_months_Nov:Cle,ra_months_Oct:Ile,ra_months_Sep:ple,"ra_no confirm for 5 mins":"5分钟内无需确认",ra_none:Ale,ra_object_changed_by:mle,ra_object_changed_by_user:Ole,ra_otherConfig:Ele,ra_qualityCode:fle,ra_repeat:xle,ra_select_folder_hint:_le,ra_show_all:Sle,ra_state_changed_by:kle,ra_state_changed_from:Yle,ra_timestamp:vle,ra_tooltip_ack:ble,ra_tooltip_comment:Qle,ra_tooltip_copyState:Ule,ra_tooltip_ctrlForLink:$le,ra_tooltip_customConfig:Ple,ra_tooltip_deleteObject:Wle,ra_tooltip_editObject:Ble,ra_tooltip_editState:Jle,ra_tooltip_expire:Rle,ra_tooltip_from:Fle,ra_tooltip_lc:Gle,ra_tooltip_quality:Hle,ra_tooltip_ts:Vle,ra_tooltip_user:Zle,ra_tooltip_value:Xle,ra_true:Kle,"ra_use seconds":"用秒",ra_val:qle,"ra_via internet":"通过互联网",ra_warning_every_minute:eNe,ra_warning_every_second:tNe,sc_cron:sNe,sc_date:iNe,sc_dates:rNe,sc_dow:oNe,sc_dows:nNe,sc_every:aNe,sc_everyN_dates:MNe,sc_everyN_dow:cNe,sc_everyN_dows:uNe,sc_everyN_hours:lNe,sc_everyN_minutes:NNe,sc_everyN_months:LNe,sc_everyN_seconds:gNe,sc_every_dates:jNe,sc_every_dow:yNe,sc_every_dows:TNe,sc_every_hours:dNe,sc_every_minutes:DNe,sc_every_months:hNe,sc_every_seconds:zNe,sc_from:wNe,sc_hours:CNe,sc_interval:INe,sc_intervalBetween:pNe,sc_invalid_cron:ANe,sc_minutes:mNe,sc_months:ONe,sc_once:ENe,sc_period:fNe,sc_seconds:xNe,sc_simple:_Ne,sc_specific:SNe,sc_specific_dates:kNe,sc_specific_dow:YNe,sc_specific_dows:vNe,sc_specific_hours:bNe,sc_specific_minutes:QNe,sc_specific_months:UNe,sc_specific_seconds:$Ne,sc_time:PNe,sc_to:WNe,sc_wizard:BNe,sch_all:JNe,sch_astroDay:RNe,sch_astroNight:FNe,sch_astro_dawn:GNe,sch_astro_dusk:HNe,sch_astro_goldenHour:VNe,sch_astro_goldenHourEnd:ZNe,sch_astro_nadir:XNe,sch_astro_nauticalDawn:KNe,sch_astro_nauticalDusk:qNe,sch_astro_night:e0e,sch_astro_nightEnd:t0e,sch_astro_solarNoon:s0e,sch_astro_sunrise:i0e,sch_astro_sunriseEnd:r0e,sch_astro_sunset:o0e,sch_astro_sunsetStart:n0e,sch_at:a0e,sch_desc_atTime:M0e,sch_desc_everyDay:c0e,sch_desc_everyHour:u0e,sch_desc_everyMinute:l0e,sch_desc_everyMonth:N0e,sch_desc_everyNDay:L0e,sch_desc_everyNHours:g0e,sch_desc_everyNMinutes:j0e,sch_desc_everyNMonths:y0e,sch_desc_everyNWeeks:T0e,sch_desc_everyNYears:d0e,sch_desc_everyWeek:D0e,sch_desc_everyYear:h0e,sch_desc_intervalFromTo:z0e,sch_desc_never:w0e,sch_desc_onDate:C0e,sch_desc_onDates:I0e,sch_desc_onEveryDate:p0e,sch_desc_onMonth:A0e,sch_desc_onMonths:m0e,sch_desc_onWeekday:O0e,sch_desc_onWeekdays:E0e,sch_desc_onWeekends:f0e,sch_desc_onWorkdays:x0e,sch_desc_onceInPast:_0e,sch_desc_once_on:S0e,sch_desc_validFrom:k0e,sch_desc_validFromTo:Y0e,sch_desc_validTo:v0e,sch_every:b0e,sch_exactTime:Q0e,sch_from:U0e,sch_fromTo:$0e,sch_intervalTime:P0e,sch_invert:W0e,sch_no_one:B0e,sch_on:J0e,sch_period:R0e,sch_periodDaily:F0e,sch_periodDates:G0e,sch_periodDay:H0e,sch_periodEvery:V0e,sch_periodEveryDay:Z0e,sch_periodEveryMonth:X0e,sch_periodEveryWeek:K0e,sch_periodEveryYear:q0e,sch_periodHours:e4e,sch_periodMinutes:t4e,sch_periodMonth:s4e,sch_periodMonthly:i4e,sch_periodOnce:r4e,sch_periodSpecificMonths:o4e,sch_periodWeek:n4e,sch_periodWeekdays:a4e,sch_periodWeekend:M4e,sch_periodWeekly:c4e,sch_periodWorkdays:u4e,sch_periodYear:l4e,sch_periodYearly:N4e,sch_specificTime:L4e,sch_time:g4e,sch_to:j4e,sch_valid:y4e,sch_validFrom:T4e,sch_validTo:d4e,sch_wholeDay:D4e,sch_yearEveryMonth:h4e},w4e={en:OI,de:Qm,ru:V_,pt:ov,nl:j6,fr:pW,it:YG,es:RK,pl:tre,uk:lce,"zh-cn":z4e},C4e=` -html { - height: 100%; -} - -body { - margin: 0; - padding: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - width: 100%; - height: 100%; - overflow: hidden; -} - -/* scrollbar */ -::-webkit-scrollbar-track { - background-color: #ccc; - border-radius: 5px; -} - -::-webkit-scrollbar { - width: 5px; - height: 5px; - background-color: #ccc; -} - -::-webkit-scrollbar-thumb { - background-color: #575757; - border-radius: 5px; -} - -#root { - height: 100%; -} - -.App { - height: 100%; -} - -@keyframes glow { - from { - background-color: initial; - } - to { - background-color: #58c458; - } -} -`;function I4e(){try{return window.self!==window.top}catch{return!0}}class Gt extends Oi{socket;isIFrame=I4e();instance;adapterName;instanceId;newReact;encryptedFields;sentryDSN;alertDialogRendered;_secret;_systemConfig;savedNative;common=null;sentryStarted=!1;sentryInited=!1;resizeTimer=null;constructor(e,t){const i=e.Connection||(t==null?void 0:t.Connection)||ze;if(!window.document.getElementById("generic-app-iobroker-component")){const N=window.document.createElement("style");N.setAttribute("id","generic-app-iobroker-component"),N.innerHTML=C4e,window.document.head.appendChild(N)}if(!Gt.isWeb()&&window.io&&window.location.port==="3000")try{const N=new window.SocketClient;delete window.io,window.io=N}catch{}super(e),uD();const r=(window.location.search||"").replace(/^\?/,"").replace(/#.*$/,""),o={};r.trim().split("&").filter(N=>N.trim()).forEach(N=>{const u=N.split("=");o[u[0]]=u.length===2?u[1]:!0,o[u[0]]==="true"?o[u[0]]=!0:o[u[0]]==="false"&&(o[u[0]]=!1)}),this.instance=(t==null?void 0:t.instance)??e.instance??(o.instance!==void 0?parseInt(o.instance,10)||0:parseInt(window.location.search.slice(1),10)||0);const n=window.location.pathname.split("/");this.adapterName=(t==null?void 0:t.adapterName)||e.adapterName||window.adapterName||n[n.length-2]||"iot",this.instanceId=`system.adapter.${this.adapterName}.${this.instance}`,this.newReact=o.newReact===!0;const a=Oi.getLocation();a.tab=a.tab||(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"";const c=this.createTheme();this.state=Object.assign(this.state||{},{selectedTab:(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"",selectedTabNum:-1,native:{},errorText:"",changed:!1,connected:!1,loaded:!1,isConfigurationError:"",expertMode:!1,toast:"",theme:c,themeName:this.getThemeName(c),themeType:this.getThemeType(c),bottomButtons:(t&&t.bottomButtons)===!1?!1:(e==null?void 0:e.bottomButtons)!==!1,width:Gt.getWidth(),confirmClose:!1,_alert:!1,_alertType:"info",_alertMessage:""});const l=w4e;t!=null&&t.translations?Object.keys(t.translations).forEach(N=>{t.translations&&(l[N]=Object.assign(l[N],t.translations[N]||{}))}):e.translations&&Object.keys(e.translations).forEach(N=>{e.translations&&(l[N]=Object.assign(l[N],e.translations[N]||{}))}),h.setTranslations(l),this.savedNative={},this.encryptedFields=e.encryptedFields||(t==null?void 0:t.encryptedFields)||[],this.sentryDSN=t&&t.sentryDSN||e.sentryDSN,window.socketUrl&&(window.socketUrl.startsWith(":")?window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`:!window.socketUrl.startsWith("http://")&&!window.socketUrl.startsWith("https://")&&(window.socketUrl=`${window.location.protocol}//${window.socketUrl}`)),this.alertDialogRendered=!1,window.iobOldAlert||(window.iobOldAlert=window.alert),window.alert=N=>{if(!this.alertDialogRendered){window.iobOldAlert(N);return}N!=null&&N.toString().toLowerCase().includes("error")?(console.error(N),this.showAlert(N.toString(),"error")):(console.log(N),this.showAlert(N.toString(),"info"))},this.socket=new i({...(e==null?void 0:e.socket)||(t==null?void 0:t.socket),name:this.adapterName,doNotLoadAllObjects:t==null?void 0:t.doNotLoadAllObjects,onProgress:N=>{N===rt.CONNECTING?this.setState({connected:!1}):N===rt.READY?this.setState({connected:!0}):this.setState({connected:!0})},onReady:()=>{h.setLanguage(this.socket.systemLang),this.socket.subscribeObject("system.config",this.onSystemConfigChanged).then(()=>this.getSystemConfig()).then(N=>(this._secret=typeof N<"u"&&N.native&&N.native.secret||"Zgfr56gFe87jJOM",this._systemConfig=(N==null?void 0:N.common)||{},this.socket.getObject(this.instanceId))).then(async N=>{var T,d;let u;const L=N,y=((T=await this.socket.getState(`${this.instanceId}.plugins.sentry.enabled`))==null?void 0:T.val)!==!1&&((d=this._systemConfig)==null?void 0:d.diag)!=="none"&&(L==null?void 0:L.common)&&L.common.name&&L.common.version&&!L.common.disableDataReporting&&window.location.host!=="localhost:3000";!this.sentryStarted&&this.sentryDSN&&y&&(this.sentryStarted=!0,cD({dsn:this.sentryDSN,release:`iobroker.${L.common.name}@${L.common.version}`,integrations:[GN()]}),console.log("Sentry initialized")),!this.sentryInited&&y&&(this.sentryInited=!0,u=this.socket.getObject("system.meta.uuid").then(z=>{z&&z.native&&z.native.uuid&&Ct().setUser({id:z.native.uuid})})),u=u instanceof Promise?u:Promise.resolve(),u.then(()=>{L?(this.common=L==null?void 0:L.common,this.onPrepareLoad(L.native,L.encryptedNative),this.savedNative=JSON.parse(JSON.stringify(L.native)),this.setState({native:L.native,loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady())):(console.warn("Cannot load instance settings"),this.setState({native:{},loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady()))})}).catch(N=>window.alert(`Cannot settings: ${N}`))},onError:N=>{console.error(N),this.showError(N)}})}static isWeb(){return window.socketUrl!==void 0}showAlert(e,t){t!=="error"&&t!=="warning"&&t!=="info"&&t!=="success"&&(t="info"),this.setState({_alert:!0,_alertType:t,_alertMessage:e})}renderAlertSnackbar(){return this.alertDialogRendered=!0,M.createElement(j.Snackbar,{style:this.state._alertType==="error"?{backgroundColor:"#f44336"}:this.state._alertType==="success"?{backgroundColor:"#4caf50"}:void 0,open:this.state._alert,autoHideDuration:6e3,onClose:(e,t)=>t!=="clickaway"&&this.setState({_alert:!1}),message:this.state._alertMessage})}onSystemConfigChanged=(e,t)=>{var i,r;t&&e==="system.config"&&(this.socket.systemLang!==(t==null?void 0:t.common.language)&&(this.socket.systemLang=(t==null?void 0:t.common.language)||"en",h.setLanguage(this.socket.systemLang)),((i=this._systemConfig)==null?void 0:i.expertMode)!==!!((r=t==null?void 0:t.common)!=null&&r.expertMode)?(this._systemConfig=(t==null?void 0:t.common)||{},this.setState({expertMode:this.getExpertMode()})):this._systemConfig=(t==null?void 0:t.common)||{})};componentDidMount(){window.addEventListener("resize",this.onResize,!0),window.addEventListener("message",this.onReceiveMessage,!1),super.componentDidMount()}componentWillUnmount(){window.removeEventListener("resize",this.onResize,!0),window.removeEventListener("message",this.onReceiveMessage,!1),window.iobOldAlert&&(window.alert=window.iobOldAlert,delete window.iobOldAlert),super.componentWillUnmount()}onReceiveMessage=e=>{if(e!=null&&e.data)if(e.data==="updateTheme"){const t=O.getThemeName();O.setThemeName(O.getThemeName());const i=this.createTheme(t);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(t),this.onThemeChanged&&this.onThemeChanged(t)})}else e.data==="updateExpertMode"?this.onToggleExpertMode&&this.onToggleExpertMode(this.getExpertMode()):e.data!=="chartReady"&&console.debug(`Received unknown message: "${JSON.stringify(e.data)}". May be it will be processed later`)};onResize=()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{this.resizeTimer=null,this.setState({width:Gt.getWidth()})},200)};static getWidth(){const e={xs:0,sm:600,md:960,lg:1280,xl:1920},t=window.innerWidth;return Object.keys(e).reverse().find(o=>t>=e[o])||"xs"}createTheme(e){return bg(O.getThemeName(e))}getThemeName(e){return e.name}getThemeType(e){return e.palette.mode}onThemeChanged(e){}onToggleExpertMode(e){}toggleTheme(e){const t=this.state.themeName;if(e=e||(t==="dark"||t==="blue"||t==="colored"?"light":"dark"),e!==t){O.setThemeName(e);const i=this.createTheme(e);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(e||"light"),this.onThemeChanged&&this.onThemeChanged(e||"light")})}}getSystemConfig(){return this.socket.getSystemConfig()}getExpertMode(){var e;return window.sessionStorage.getItem("App.expertMode")==="true"||!!((e=this._systemConfig)!=null&&e.expertMode)}onConnectionReady(){}encrypt(e){let t="";if(this._secret)for(let i=0;i{e[i]&&(e[i]=this.encrypt(e[i]))}),!0}onPrepareLoad(e,t){var i;(i=this.encryptedFields)==null||i.forEach(r=>{e[r]&&(e[r]=this.decrypt(e[r]))}),t==null||t.forEach(r=>{this.encryptedFields=this.encryptedFields||[],!this.encryptedFields.includes(r)&&this.encryptedFields.push(r),e[r]&&(e[r]=this.decrypt(e[r]))})}async getExtendableInstances(){try{const e=await this.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香");return Object.values(e).filter(t=>{var i;return!!((i=t==null?void 0:t.common)!=null&&i.webExtendable)})}catch{return[]}}async getIpAddresses(e){var o;const t=await this.socket.getHostByIp(e||((o=this.common)==null?void 0:o.host)||""),i=t.find(n=>n.address==="0.0.0.0");i&&(i.name=`[IPv4] 0.0.0.0 - ${h.t("ra_Listen on all IPs")}`);const r=t.find(n=>n.address==="::");return r&&(r.name=`[IPv4] :: - ${h.t("ra_Listen on all IPs")}`),t}onSave(e){let t;if(this.state.isConfigurationError){this.setState({errorText:this.state.isConfigurationError});return}this.socket.getObject(this.instanceId).then(i=>{t=i||{};for(const r in this.state.native)Object.prototype.hasOwnProperty.call(this.state.native,r)&&(this.state.native[r]===null?t.native[r]=null:this.state.native[r]!==void 0?t.native[r]=JSON.parse(JSON.stringify(this.state.native[r])):delete t.native[r]);if(this.state.common)for(const r in this.state.common)this.state.common[r]===null?t.common[r]=null:this.state.common[r]!==void 0?t.common[r]=JSON.parse(JSON.stringify(this.state.common[r])):delete t.common[r];return this.onPrepareSave(t.native)!==!1?this.socket.setObject(this.instanceId,t):Promise.reject(new Error("Invalid configuration"))}).then(()=>{this.savedNative=t.native,globalThis.changed=!1;try{window.parent.postMessage("nochange","*")}catch{}this.setState({changed:!1},()=>{e&&Gt.onClose()})}).catch(i=>console.error(`Cannot save configuration: ${i}`))}renderToast(){return this.state.toast?M.createElement(j.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:M.createElement("span",{id:"message-id"},this.state.toast),action:[M.createElement(j.IconButton,{key:"close","aria-label":"Close",color:"inherit",onClick:()=>this.setState({toast:""}),size:"large"},M.createElement(Ne,null))]}):null}static onClose(){if(typeof window.parent<"u"&&window.parent)try{window.parent.$iframeDialog&&typeof window.parent.$iframeDialog.close=="function"?window.parent.$iframeDialog.close():window.parent.postMessage("close","*")}catch{window.parent.postMessage("close","*")}}renderError(){return this.state.errorText?M.createElement(r0,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}getIsChanged(e){e=e||this.state.native;const t=JSON.stringify(e)!==JSON.stringify(this.savedNative);return globalThis.changed=t,t}onLoadConfig(e){JSON.stringify(e)!==JSON.stringify(this.state.native)&&this.setState({native:e,changed:this.getIsChanged(e)})}setConfigurationError(e){this.state.isConfigurationError!==e&&this.setState({isConfigurationError:e})}renderSaveCloseButtons(){return!this.state.confirmClose&&!this.state.bottomButtons?null:M.createElement(M.Fragment,null,this.state.bottomButtons?M.createElement(dD,{theme:this.state.theme,newReact:this.newReact,noTextOnButtons:this.state.width==="xs"||this.state.width==="sm"||this.state.width==="md",changed:this.state.changed,onSave:e=>this.onSave(e),onClose:()=>{this.state.changed?this.setState({confirmClose:!0}):Gt.onClose()},error:!!this.state.isConfigurationError}):null,this.state.confirmClose?M.createElement(i0,{title:h.t("ra_Please confirm"),text:h.t("ra_Some data are not stored. Discard?"),ok:h.t("ra_Discard"),cancel:h.t("ra_Cancel"),onClose:e=>this.setState({confirmClose:!1},()=>e&&Gt.onClose())}):null)}_updateNativeValue(e,t,i){typeof t!="object"&&(t=t.split("."));const r=t.shift()||"";if(!t.length)return i&&typeof i=="object"?JSON.stringify(e[r])!==JSON.stringify(i)?(e[r]=i,!0):!1:e[r]!==i?(e[r]=i,!0):!1;if(e[r]=e[r]||{},typeof e[r]!="object")throw new Error(`attribute ${r} is no object, but ${typeof e[r]}`);return this._updateNativeValue(e[r],t,i)}updateNativeValue(e,t,i){const r=JSON.parse(JSON.stringify(this.state.native));if(this._updateNativeValue(r,e,t)){const o=this.getIsChanged(r);if(o!==this.state.changed)try{window.parent.postMessage(o?"change":"nochange","*")}catch{}this.setState({native:r,changed:o},i)}}showError(e){this.setState({errorText:e})}showToast(e){this.setState({toast:e})}renderHelperDialogs(){return M.createElement(M.Fragment,null,this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar())}render(){return this.state.loaded?M.createElement("div",{className:"App"},this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar()):M.createElement(ND,{themeType:this.state.themeType})}}var Be={},Fi={},p4e=typeof ir=="object"&&ir&&ir.Object===Object&&ir,o0=p4e,A4e=o0,m4e=typeof self=="object"&&self&&self.Object===Object&&self,O4e=A4e||m4e||Function("return this")(),ut=O4e,E4e=ut,f4e=E4e.Symbol,Gi=f4e,Qc=Gi,n0=Object.prototype,x4e=n0.hasOwnProperty,_4e=n0.toString,li=Qc?Qc.toStringTag:void 0;function S4e(s){var e=x4e.call(s,li),t=s[li];try{s[li]=void 0;var i=!0}catch{}var r=_4e.call(s);return i&&(e?s[li]=t:delete s[li]),r}var k4e=S4e,Y4e=Object.prototype,v4e=Y4e.toString;function b4e(s){return v4e.call(s)}var Q4e=b4e,Uc=Gi,U4e=k4e,$4e=Q4e,P4e="[object Null]",W4e="[object Undefined]",$c=Uc?Uc.toStringTag:void 0;function B4e(s){return s==null?s===void 0?W4e:P4e:$c&&$c in Object(s)?U4e(s):$4e(s)}var ns=B4e,J4e=Array.isArray,qe=J4e;function R4e(s){return s!=null&&typeof s=="object"}var It=R4e,F4e=ns,G4e=qe,H4e=It,V4e="[object String]";function Z4e(s){return typeof s=="string"||!G4e(s)&&H4e(s)&&F4e(s)==V4e}var X4e=Z4e;function K4e(s){return function(e,t,i){for(var r=-1,o=Object(e),n=i(e),a=n.length;a--;){var c=n[s?a:++r];if(t(o[c],c,o)===!1)break}return e}}var q4e=K4e,eLe=q4e,tLe=eLe(),sLe=tLe;function iLe(s,e){for(var t=-1,i=Array(s);++t-1&&s%1==0&&s-1&&s%1==0&&s<=DLe}var Oa=hLe,zLe=ns,wLe=Oa,CLe=It,ILe="[object Arguments]",pLe="[object Array]",ALe="[object Boolean]",mLe="[object Date]",OLe="[object Error]",ELe="[object Function]",fLe="[object Map]",xLe="[object Number]",_Le="[object Object]",SLe="[object RegExp]",kLe="[object Set]",YLe="[object String]",vLe="[object WeakMap]",bLe="[object ArrayBuffer]",QLe="[object DataView]",ULe="[object Float32Array]",$Le="[object Float64Array]",PLe="[object Int8Array]",WLe="[object Int16Array]",BLe="[object Int32Array]",JLe="[object Uint8Array]",RLe="[object Uint8ClampedArray]",FLe="[object Uint16Array]",GLe="[object Uint32Array]",oe={};oe[ULe]=oe[$Le]=oe[PLe]=oe[WLe]=oe[BLe]=oe[JLe]=oe[RLe]=oe[FLe]=oe[GLe]=!0;oe[ILe]=oe[pLe]=oe[bLe]=oe[ALe]=oe[QLe]=oe[mLe]=oe[OLe]=oe[ELe]=oe[fLe]=oe[xLe]=oe[_Le]=oe[SLe]=oe[kLe]=oe[YLe]=oe[vLe]=!1;function HLe(s){return CLe(s)&&wLe(s.length)&&!!oe[zLe(s)]}var VLe=HLe;function ZLe(s){return function(e){return s(e)}}var Ea=ZLe,$r={exports:{}};$r.exports;(function(s,e){var t=o0,i=e&&!e.nodeType&&e,r=i&&!0&&s&&!s.nodeType&&s,o=r&&r.exports===i,n=o&&t.process,a=function(){try{var c=r&&r.require&&r.require("util").types;return c||n&&n.binding&&n.binding("util")}catch{}}();s.exports=a})($r,$r.exports);var fa=$r.exports,XLe=VLe,KLe=Ea,Wc=fa,Bc=Wc&&Wc.isTypedArray,qLe=Bc?KLe(Bc):XLe,u0=qLe,ege=rLe,tge=M0,sge=qe,ige=ma,rge=c0,oge=u0,nge=Object.prototype,age=nge.hasOwnProperty;function Mge(s,e){var t=sge(s),i=!t&&tge(s),r=!t&&!i&&ige(s),o=!t&&!i&&!r&&oge(s),n=t||i||r||o,a=n?ege(s.length,String):[],c=a.length;for(var l in s)(e||age.call(s,l))&&!(n&&(l=="length"||r&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||rge(l,c)))&&a.push(l);return a}var l0=Mge,cge=Object.prototype;function uge(s){var e=s&&s.constructor,t=typeof e=="function"&&e.prototype||cge;return s===t}var xa=uge;function lge(s,e){return function(t){return s(e(t))}}var N0=lge,Nge=N0,Lge=Nge(Object.keys,Object),gge=Lge,jge=xa,yge=gge,Tge=Object.prototype,dge=Tge.hasOwnProperty;function Dge(s){if(!jge(s))return yge(s);var e=[];for(var t in Object(s))dge.call(s,t)&&t!="constructor"&&e.push(t);return e}var hge=Dge;function zge(s){var e=typeof s;return s!=null&&(e=="object"||e=="function")}var Xs=zge,wge=ns,Cge=Xs,Ige="[object AsyncFunction]",pge="[object Function]",Age="[object GeneratorFunction]",mge="[object Proxy]";function Oge(s){if(!Cge(s))return!1;var e=wge(s);return e==pge||e==Age||e==Ige||e==mge}var L0=Oge,Ege=L0,fge=Oa;function xge(s){return s!=null&&fge(s.length)&&!Ege(s)}var ao=xge,_ge=l0,Sge=hge,kge=ao;function Yge(s){return kge(s)?_ge(s):Sge(s)}var Hi=Yge,vge=sLe,bge=Hi;function Qge(s,e){return s&&vge(s,e,bge)}var g0=Qge;function Uge(s){return s}var j0=Uge,$ge=j0;function Pge(s){return typeof s=="function"?s:$ge}var Wge=Pge,Bge=g0,Jge=Wge;function Rge(s,e){return s&&Bge(s,Jge(e))}var _a=Rge,Fge=N0,Gge=Fge(Object.getPrototypeOf,Object),Sa=Gge,Hge=ns,Vge=Sa,Zge=It,Xge="[object Object]",Kge=Function.prototype,qge=Object.prototype,y0=Kge.toString,eje=qge.hasOwnProperty,tje=y0.call(Object);function sje(s){if(!Zge(s)||Hge(s)!=Xge)return!1;var e=Vge(s);if(e===null)return!0;var t=eje.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&y0.call(t)==tje}var ije=sje;function rje(s,e){for(var t=-1,i=s==null?0:s.length,r=Array(i);++t-1}var hje=Dje,zje=Mo;function wje(s,e){var t=this.__data__,i=zje(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}var Cje=wje,Ije=nje,pje=gje,Aje=Tje,mje=hje,Oje=Cje;function Ks(s){var e=-1,t=s==null?0:s.length;for(this.clear();++ea))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&$Te?new vTe:void 0;for(o.set(s,e),o.set(e,s);++u0&&arguments[0]!==void 0?arguments[0]:[],t=[];return(0,Oze.default)(e,function(i){Array.isArray(i)?s(i).map(function(r){return t.push(r)}):(0,Aze.default)(i)?(0,Ize.default)(i,function(r,o){r===!0&&t.push(o),t.push(o+"-"+r)}):(0,wze.default)(i)&&t.push(i)}),t};Fi.default=Eze;var Vi={};function fze(s,e){for(var t=-1,i=s==null?0:s.length;++t1&&arguments[1]!==void 0?arguments[1]:[],i=e.default&&(0,ZIe.default)(e.default)||{};return t.map(function(r){var o=e[r];return o&&(0,HIe.default)(o,function(n,a){i[a]||(i[a]={}),i[a]=XIe({},i[a],o[a])}),r}),i};Vi.default=KIe;var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0});Zi.autoprefix=void 0;var qIe=_a,Cu=t1e(qIe),e1e=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){M1e(r,i);function r(){var o,n,a,c;a1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){g1e(r,i);function r(){var o,n,a,c;L1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:!0;i[n]=a};return e===0&&r("first-child"),e===t-1&&r("last-child"),(e===0||e%2===0)&&r("even"),Math.abs(e%2)===1&&r("odd"),r("nth-child",e),i};Ja.default=y1e;Object.defineProperty(Be,"__esModule",{value:!0});Be.ReactCSS=Be.loop=Be.handleActive=Ra=Be.handleHover=Be.hover=void 0;var T1e=Fi,d1e=ii(T1e),D1e=Vi,h1e=ii(D1e),z1e=Zi,w1e=ii(z1e),C1e=Xi,P0=ii(C1e),I1e=Ki,p1e=ii(I1e),A1e=Ja,m1e=ii(A1e);function ii(s){return s&&s.__esModule?s:{default:s}}Be.hover=P0.default;var Ra=Be.handleHover=P0.default;Be.handleActive=p1e.default;Be.loop=m1e.default;var O1e=Be.ReactCSS=function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),r=1;ra?L=1:L=Math.round(u*100/a)/100,t.a!==L)return{h:t.h,s:t.s,l:t.l,a:L,source:"rgb"}}else{var g=void 0;if(N<0?g=0:N>n?g=1:g=Math.round(N*100/n)/100,r!==g)return{h:t.h,s:t.s,l:t.l,a:g,source:"rgb"}}return null},Bo={},f1e=function(e,t,i,r){if(typeof document>"u"&&!r)return null;var o=r?new r:document.createElement("canvas");o.width=i*2,o.height=i*2;var n=o.getContext("2d");return n?(n.fillStyle=e,n.fillRect(0,0,o.width,o.height),n.fillStyle=t,n.fillRect(0,0,i,i),n.translate(i,i),n.fillRect(0,0,i,i),o.toDataURL()):null},x1e=function(e,t,i,r){var o=e+"-"+t+"-"+i+(r?"-server":"");if(Bo[o])return Bo[o];var n=f1e(e,t,i,r);return Bo[o]=n,n},Au=Object.assign||function(s){for(var e=1;e-1},R1e=function(e){return Number(String(e).replace(/%/g,""))},F1e=1,K=function(s){$1e(e,s);function e(t){Q1e(this,e);var i=U1e(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.handleBlur=function(){i.state.blurValue&&i.setState({value:i.state.blurValue,blurValue:null})},i.handleChange=function(r){i.setUpdatedValue(r.target.value,r)},i.handleKeyDown=function(r){var o=R1e(r.target.value);if(!isNaN(o)&&J1e(r.keyCode)){var n=i.getArrowOffset(),a=r.keyCode===W0?o+n:o-n;i.setUpdatedValue(a,r)}},i.handleDrag=function(r){if(i.props.dragLabel){var o=Math.round(i.props.value+r.movementX);o>=0&&o<=i.props.dragMax&&i.props.onChange&&i.props.onChange(i.getValueObjectWithLabel(o),r)}},i.handleMouseDown=function(r){i.props.dragLabel&&(r.preventDefault(),i.handleDrag(r),window.addEventListener("mousemove",i.handleDrag),window.addEventListener("mouseup",i.handleMouseUp))},i.handleMouseUp=function(){i.unbindEventListeners()},i.unbindEventListeners=function(){window.removeEventListener("mousemove",i.handleDrag),window.removeEventListener("mouseup",i.handleMouseUp)},i.state={value:String(t.value).toUpperCase(),blurValue:String(t.value).toUpperCase()},i.inputId="rc-editable-input-"+F1e++,i}return v1e(e,[{key:"componentDidUpdate",value:function(i,r){this.props.value!==this.state.value&&(i.value!==this.props.value||r.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(i){return b1e({},this.props.label,i)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||P1e}},{key:"setUpdatedValue",value:function(i,r){var o=this.props.label?this.getValueObjectWithLabel(i):i;this.props.onChange&&this.props.onChange(o,r),this.setState({value:i})}},{key:"render",value:function(){var i=this,r=F({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return M.createElement("div",{style:r.wrap},M.createElement("input",{id:this.inputId,style:r.input,ref:function(n){return i.input=n},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?M.createElement("label",{htmlFor:this.inputId,style:r.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),e}(f.PureComponent||f.Component),G1e=function(e,t,i,r){var o=r.clientWidth,n=r.clientHeight,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(r.getBoundingClientRect().left+window.pageXOffset),N=c-(r.getBoundingClientRect().top+window.pageYOffset);if(t==="vertical"){var u=void 0;if(N<0)u=359;else if(N>n)u=0;else{var L=-(N*100/n)+100;u=360*L/100}if(i.h!==u)return{h:u,s:i.s,l:i.l,a:i.a,source:"hsl"}}else{var g=void 0;if(l<0)g=0;else if(l>o)g=359;else{var y=l*100/o;g=360*y/100}if(i.h!==g)return{h:g,s:i.s,l:i.l,a:i.a,source:"hsl"}}return null},H1e=function(){function s(e,t){for(var i=0;i-1}function ipe(s,e){var t=this.__data__,i=yo(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}function pt(s){var e=-1,t=s==null?0:s.length;for(this.clear();++e-1&&s%1==0&&s<=uAe}function ni(s){return s!=null&&Za(s.length)&&!Ga(s)}function lAe(s){return Pt(s)&&ni(s)}function NAe(){return!1}var Z0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yu=Z0&&typeof module=="object"&&module&&!module.nodeType&&module,LAe=Yu&&Yu.exports===Z0,vu=LAe?et.Buffer:void 0,gAe=vu?vu.isBuffer:void 0,Fr=gAe||NAe,jAe="[object Object]",yAe=Function.prototype,TAe=Object.prototype,X0=yAe.toString,dAe=TAe.hasOwnProperty,DAe=X0.call(Object);function hAe(s){if(!Pt(s)||Ms(s)!=jAe)return!1;var e=H0(s);if(e===null)return!0;var t=dAe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&X0.call(t)==DAe}var zAe="[object Arguments]",wAe="[object Array]",CAe="[object Boolean]",IAe="[object Date]",pAe="[object Error]",AAe="[object Function]",mAe="[object Map]",OAe="[object Number]",EAe="[object Object]",fAe="[object RegExp]",xAe="[object Set]",_Ae="[object String]",SAe="[object WeakMap]",kAe="[object ArrayBuffer]",YAe="[object DataView]",vAe="[object Float32Array]",bAe="[object Float64Array]",QAe="[object Int8Array]",UAe="[object Int16Array]",$Ae="[object Int32Array]",PAe="[object Uint8Array]",WAe="[object Uint8ClampedArray]",BAe="[object Uint16Array]",JAe="[object Uint32Array]",ne={};ne[vAe]=ne[bAe]=ne[QAe]=ne[UAe]=ne[$Ae]=ne[PAe]=ne[WAe]=ne[BAe]=ne[JAe]=!0;ne[zAe]=ne[wAe]=ne[kAe]=ne[CAe]=ne[YAe]=ne[IAe]=ne[pAe]=ne[AAe]=ne[mAe]=ne[OAe]=ne[EAe]=ne[fAe]=ne[xAe]=ne[_Ae]=ne[SAe]=!1;function RAe(s){return Pt(s)&&Za(s.length)&&!!ne[Ms(s)]}function FAe(s){return function(e){return s(e)}}var K0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ei=K0&&typeof module=="object"&&module&&!module.nodeType&&module,GAe=Ei&&Ei.exports===K0,Ro=GAe&&B0.process,bu=function(){try{var s=Ei&&Ei.require&&Ei.require("util").types;return s||Ro&&Ro.binding&&Ro.binding("util")}catch{}}(),Qu=bu&&bu.isTypedArray,Xa=Qu?FAe(Qu):RAe;function kn(s,e){if(!(e==="constructor"&&typeof s[e]=="function")&&e!="__proto__")return s[e]}var HAe=Object.prototype,VAe=HAe.hasOwnProperty;function ZAe(s,e,t){var i=s[e];(!(VAe.call(s,e)&&qi(i,t))||t===void 0&&!(e in s))&&Ha(s,e,t)}function XAe(s,e,t,i){var r=!t;t||(t={});for(var o=-1,n=e.length;++o-1&&s%1==0&&s0){if(++e>=L2e)return arguments[0]}else e=0;return s.apply(void 0,arguments)}}var T2e=y2e(N2e);function d2e(s,e){return T2e(u2e(s,e,Do),s+"")}function D2e(s,e,t){if(!Re(t))return!1;var i=typeof e;return(i=="number"?ni(t)&&Ka(e,t.length):i=="string"&&e in t)?qi(t[e],s):!1}function h2e(s){return d2e(function(e,t){var i=-1,r=t.length,o=r>1?t[r-1]:void 0,n=r>2?t[2]:void 0;for(o=s.length>3&&typeof o=="function"?(r--,o):void 0,n&&D2e(t[0],t[1],n)&&(o=r<3?void 0:o,r=1),e=Object(e);++i=e||p<0||u&&_>=o}function z(){var D=Fo();if(d(D))return I(D);a=setTimeout(z,T(D))}function I(D){return a=void 0,L&&i?g(D):(i=r=void 0,n)}function C(){a!==void 0&&clearTimeout(a),l=0,i=c=r=a=void 0}function m(){return a===void 0?n:I(Fo())}function A(){var D=Fo(),p=d(D);if(i=arguments,r=this,c=D,p){if(a===void 0)return y(c);if(u)return clearTimeout(a),a=setTimeout(z,e),g(c)}return a===void 0&&(a=setTimeout(z,e)),n}return A.cancel=C,A.flush=m,A}var S2e="Expected a function";function k2e(s,e,t){var i=!0,r=!0;if(typeof s!="function")throw new TypeError(S2e);return Re(t)&&(i="leading"in t?!!t.leading:i,r="trailing"in t?!!t.trailing:r),s4(s,e,{leading:i,maxWait:e,trailing:r})}var Y2e=function(e,t,i){var r=i.getBoundingClientRect(),o=r.width,n=r.height,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(i.getBoundingClientRect().left+window.pageXOffset),N=c-(i.getBoundingClientRect().top+window.pageYOffset);l<0?l=0:l>o&&(l=o),N<0?N=0:N>n&&(N=n);var u=l/o,L=1-N/n;return{h:t.h,s:u,v:L,a:t.a,source:"hsv"}},v2e=function(){function s(e,t){for(var i=0;i=0,o=!t&&r&&(e==="hex"||e==="hex6"||e==="hex3"||e==="hex4"||e==="hex8"||e==="name");return o?e==="name"&&this._a===0?this.toName():this.toRgbString():(e==="rgb"&&(i=this.toRgbString()),e==="prgb"&&(i=this.toPercentageRgbString()),(e==="hex"||e==="hex6")&&(i=this.toHexString()),e==="hex3"&&(i=this.toHexString(!0)),e==="hex4"&&(i=this.toHex8String(!0)),e==="hex8"&&(i=this.toHex8String()),e==="name"&&(i=this.toName()),e==="hsl"&&(i=this.toHslString()),e==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return $(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(ome,arguments)},brighten:function(){return this._applyModification(nme,arguments)},darken:function(){return this._applyModification(ame,arguments)},desaturate:function(){return this._applyModification(sme,arguments)},saturate:function(){return this._applyModification(ime,arguments)},greyscale:function(){return this._applyModification(rme,arguments)},spin:function(){return this._applyModification(Mme,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(lme,arguments)},complement:function(){return this._applyCombination(cme,arguments)},monochromatic:function(){return this._applyCombination(Nme,arguments)},splitcomplement:function(){return this._applyCombination(ume,arguments)},triad:function(){return this._applyCombination(Fu,[3])},tetrad:function(){return this._applyCombination(Fu,[4])}};$.fromRatio=function(s,e){if(Gr(s)=="object"){var t={};for(var i in s)s.hasOwnProperty(i)&&(i==="a"?t[i]=s[i]:t[i]=zi(s[i]));s=t}return $(s,e)};function X2e(s){var e={r:0,g:0,b:0},t=1,i=null,r=null,o=null,n=!1,a=!1;return typeof s=="string"&&(s=Tme(s)),Gr(s)=="object"&&(Nt(s.r)&&Nt(s.g)&&Nt(s.b)?(e=K2e(s.r,s.g,s.b),n=!0,a=String(s.r).substr(-1)==="%"?"prgb":"rgb"):Nt(s.h)&&Nt(s.s)&&Nt(s.v)?(i=zi(s.s),r=zi(s.v),e=eme(s.h,i,r),n=!0,a="hsv"):Nt(s.h)&&Nt(s.s)&&Nt(s.l)&&(i=zi(s.s),o=zi(s.l),e=q2e(s.h,i,o),n=!0,a="hsl"),s.hasOwnProperty("a")&&(t=s.a)),t=r4(t),{ok:n,format:s.format||a,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:t}}function K2e(s,e,t){return{r:Me(s,255)*255,g:Me(e,255)*255,b:Me(t,255)*255}}function Wu(s,e,t){s=Me(s,255),e=Me(e,255),t=Me(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=(i+r)/2;if(i==r)o=n=0;else{var c=i-r;switch(n=a>.5?c/(2-i-r):c/(i+r),i){case s:o=(e-t)/c+(e1&&(u-=1),u<1/6?l+(N-l)*6*u:u<1/2?N:u<2/3?l+(N-l)*(2/3-u)*6:l}if(e===0)i=r=o=t;else{var a=t<.5?t*(1+e):t+e-t*e,c=2*t-a;i=n(c,a,s+1/3),r=n(c,a,s),o=n(c,a,s-1/3)}return{r:i*255,g:r*255,b:o*255}}function Bu(s,e,t){s=Me(s,255),e=Me(e,255),t=Me(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=i,c=i-r;if(n=i===0?0:c/i,i==r)o=0;else{switch(i){case s:o=(e-t)/c+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push($(i));return o}function Nme(s,e){e=e||6;for(var t=$(s).toHsv(),i=t.h,r=t.s,o=t.v,n=[],a=1/e;e--;)n.push($({h:i,s:r,v:o})),o=(o+a)%1;return n}$.mix=function(s,e,t){t=t===0?0:t||50;var i=$(s).toRgb(),r=$(e).toRgb(),o=t/100,n={r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a};return $(n)};$.readability=function(s,e){var t=$(s),i=$(e);return(Math.max(t.getLuminance(),i.getLuminance())+.05)/(Math.min(t.getLuminance(),i.getLuminance())+.05)};$.isReadable=function(s,e,t){var i=$.readability(s,e),r,o;switch(o=!1,r=dme(t),r.level+r.size){case"AAsmall":case"AAAlarge":o=i>=4.5;break;case"AAlarge":o=i>=3;break;case"AAAsmall":o=i>=7;break}return o};$.mostReadable=function(s,e,t){var i=null,r=0,o,n,a,c;t=t||{},n=t.includeFallbackColors,a=t.level,c=t.size;for(var l=0;lr&&(r=o,i=$(e[l]));return $.isReadable(s,i,{level:a,size:c})||!n?i:(t.includeFallbackColors=!1,$.mostReadable(s,["#fff","#000"],t))};var Yn=$.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Lme=$.hexNames=gme(Yn);function gme(s){var e={};for(var t in s)s.hasOwnProperty(t)&&(e[s[t]]=t);return e}function r4(s){return s=parseFloat(s),(isNaN(s)||s<0||s>1)&&(s=1),s}function Me(s,e){jme(s)&&(s="100%");var t=yme(s);return s=Math.min(e,Math.max(0,parseFloat(s))),t&&(s=parseInt(s*e,10)/100),Math.abs(s-e)<1e-6?1:s%e/parseFloat(e)}function wo(s){return Math.min(1,Math.max(0,s))}function Qe(s){return parseInt(s,16)}function jme(s){return typeof s=="string"&&s.indexOf(".")!=-1&&parseFloat(s)===1}function yme(s){return typeof s=="string"&&s.indexOf("%")!=-1}function Xe(s){return s.length==1?"0"+s:""+s}function zi(s){return s<=1&&(s=s*100+"%"),s}function o4(s){return Math.round(parseFloat(s)*255).toString(16)}function Gu(s){return Qe(s)/255}var Ze=function(){var s="[-\\+]?\\d+%?",e="[-\\+]?\\d*\\.\\d+%?",t="(?:"+e+")|(?:"+s+")",i="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",r="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Nt(s){return!!Ze.CSS_UNIT.exec(s)}function Tme(s){s=s.replace(V2e,"").replace(Z2e,"").toLowerCase();var e=!1;if(Yn[s])s=Yn[s],e=!0;else if(s=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var t;return(t=Ze.rgb.exec(s))?{r:t[1],g:t[2],b:t[3]}:(t=Ze.rgba.exec(s))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Ze.hsl.exec(s))?{h:t[1],s:t[2],l:t[3]}:(t=Ze.hsla.exec(s))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Ze.hsv.exec(s))?{h:t[1],s:t[2],v:t[3]}:(t=Ze.hsva.exec(s))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Ze.hex8.exec(s))?{r:Qe(t[1]),g:Qe(t[2]),b:Qe(t[3]),a:Gu(t[4]),format:e?"name":"hex8"}:(t=Ze.hex6.exec(s))?{r:Qe(t[1]),g:Qe(t[2]),b:Qe(t[3]),format:e?"name":"hex"}:(t=Ze.hex4.exec(s))?{r:Qe(t[1]+""+t[1]),g:Qe(t[2]+""+t[2]),b:Qe(t[3]+""+t[3]),a:Gu(t[4]+""+t[4]),format:e?"name":"hex8"}:(t=Ze.hex3.exec(s))?{r:Qe(t[1]+""+t[1]),g:Qe(t[2]+""+t[2]),b:Qe(t[3]+""+t[3]),format:e?"name":"hex"}:!1}function dme(s){var e,t;return s=s||{level:"AA",size:"small"},e=(s.level||"AA").toUpperCase(),t=(s.size||"small").toLowerCase(),e!=="AA"&&e!=="AAA"&&(e="AA"),t!=="small"&&t!=="large"&&(t="small"),{level:e,size:t}}var Hu=function(e){var t=["r","g","b","a","h","s","l","v"],i=0,r=0;return H2e(t,function(o){if(e[o]&&(i+=1,isNaN(e[o])||(r+=1),o==="s"||o==="l")){var n=/^\d+%$/;n.test(e[o])&&(r+=1)}}),i===r?e:!1},wi=function(e,t){var i=e.hex?$(e.hex):$(e),r=i.toHsl(),o=i.toHsv(),n=i.toRgb(),a=i.toHex();r.s===0&&(r.h=t||0,o.h=t||0);var c=a==="000000"&&n.a===0;return{hsl:r,hex:c?"transparent":"#"+a,rgb:n,hsv:o,oldHue:e.h||t||r.h,source:e.source}},Wt=function(e){if(e==="transparent")return!0;var t=String(e).charAt(0)==="#"?1:0;return e.length!==4+t&&e.length<7+t&&$(e).isValid()},eM=function(e){if(!e)return"#fff";var t=wi(e);if(t.hex==="transparent")return"rgba(0,0,0,0.4)";var i=(t.rgb.r*299+t.rgb.g*587+t.rgb.b*114)/1e3;return i>=128?"#000":"#fff"},Go=function(e,t){var i=e.replace("°","");return $(t+" ("+i+")")._ok},Li=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){Ame(r,i);function r(){var o,n,a,c;pme(this,r);for(var l=arguments.length,N=Array(l),u=0;ua))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&Qme?new Hr:void 0;for(o.set(s,e),o.set(e,s);++u=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var gr=24,KOe=j4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?gr:i,o=s.height,n=o===void 0?gr:o,a=s.style,c=a===void 0?{}:a,l=XOe(s,["fill","width","height","style"]);return Nl.default.createElement("svg",ll({viewBox:"0 0 "+gr+" "+gr,style:ll({fill:t,width:r,height:n},c)},l),Nl.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))},qOe=function(){function s(e,t){for(var i=0;i1&&(r.a=1),i.props.onChange({h:i.props.hsl.h,s:i.props.hsl.s,l:i.props.hsl.l,a:Math.round(r.a*100)/100,source:"rgb"},o)):(r.h||r.s||r.l)&&(typeof r.s=="string"&&r.s.includes("%")&&(r.s=r.s.replace("%","")),typeof r.l=="string"&&r.l.includes("%")&&(r.l=r.l.replace("%","")),r.s==1?r.s=.01:r.l==1&&(r.l=.01),i.props.onChange({h:r.h||i.props.hsl.h,s:Number(ul(r.s)?i.props.hsl.s:r.s),l:Number(ul(r.l)?i.props.hsl.l:r.l),source:"hsl"},o))},i.showHighlight=function(r){r.currentTarget.style.background="#eee"},i.hideHighlight=function(r){r.currentTarget.style.background="transparent"},t.hsl.a!==1&&t.view==="hex"?i.state={view:"rgb"}:i.state={view:t.view},i}return qOe(e,[{key:"render",value:function(){var i=this,r=F({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),o=void 0;return this.state.view==="hex"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):this.state.view==="rgb"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):this.state.view==="hsl"&&(o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"s",value:Math.round(this.props.hsl.s*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"l",value:Math.round(this.props.hsl.l*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),M.createElement("div",{style:r.wrap,className:"flexbox-fix"},o,M.createElement("div",{style:r.toggle},M.createElement("div",{style:r.icon,onClick:this.toggleViews,ref:function(a){return i.icon=a}},M.createElement(KOe,{style:r.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(i,r){return i.hsl.a!==1&&r.view==="hex"?{view:"rgb"}:null}}]),e}(M.Component);y4.defaultProps={view:"hex"};var Ll=function(){var e=F({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return M.createElement("div",{style:e.picker})},iEe=function(){var e=F({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return M.createElement("div",{style:e.picker})},nM=function(e){var t=e.width,i=e.onChange,r=e.disableAlpha,o=e.rgb,n=e.hsl,a=e.hsv,c=e.hex,l=e.renderers,N=e.styles,u=N===void 0?{}:N,L=e.className,g=L===void 0?"":L,y=e.defaultView,T=F(ve({default:{picker:{width:t,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+o.r+", "+o.g+", "+o.b+", "+o.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},u),{disableAlpha:r});return M.createElement("div",{style:T.picker,className:"chrome-picker "+g},M.createElement("div",{style:T.saturation},M.createElement(zo,{style:T.Saturation,hsl:n,hsv:a,pointer:iEe,onChange:i})),M.createElement("div",{style:T.body},M.createElement("div",{style:T.controls,className:"flexbox-fix"},M.createElement("div",{style:T.color},M.createElement("div",{style:T.swatch},M.createElement("div",{style:T.active}),M.createElement(ri,{renderers:l}))),M.createElement("div",{style:T.toggles},M.createElement("div",{style:T.hue},M.createElement(oi,{style:T.Hue,hsl:n,pointer:Ll,onChange:i})),M.createElement("div",{style:T.alpha},M.createElement(Fa,{style:T.Alpha,rgb:o,hsl:n,pointer:Ll,renderers:l,onChange:i})))),M.createElement(y4,{rgb:o,hsl:n,hex:c,view:y,onChange:i,disableAlpha:r})))};nM.propTypes={width:S.oneOfType([S.string,S.number]),disableAlpha:S.bool,styles:S.object,defaultView:S.oneOf(["hex","rgb","hsl"])};nM.defaultProps={width:225,disableAlpha:!1,styles:{}};const rEe=be(nM);var oEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.active,a=F({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:eM(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:n,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{style:a.color,color:t,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:a.dot}))},nEe=function(e){var t=e.hex,i=e.rgb,r=e.onChange,o=F({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),n=function(c,l){c.r||c.g||c.b?r({r:c.r||i.r,g:c.g||i.g,b:c.b||i.b,source:"rgb"},l):r({hex:c.hex,source:"hex"},l)};return M.createElement("div",{style:o.fields,className:"flexbox-fix"},M.createElement("div",{style:o.active}),M.createElement(K,{style:{wrap:o.HEXwrap,input:o.HEXinput,label:o.HEXlabel},label:"hex",value:t,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"r",value:i.r,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"g",value:i.g,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"b",value:i.b,onChange:n}))},aM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.colors,o=e.hex,n=e.rgb,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=F(ve({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},c)),L=function(y,T){y.hex?Wt(y.hex)&&t({hex:y.hex,source:"hex"},T):t(y,T)};return M.createElement(er,{style:u.Compact,styles:c},M.createElement("div",{style:u.compact,className:"compact-picker "+N},M.createElement("div",null,Ns(r,function(g){return M.createElement(oEe,{key:g,color:g,active:g.toLowerCase()===o,onClick:L,onSwatchHover:i})}),M.createElement("div",{style:u.clear})),M.createElement(nEe,{hex:o,rgb:n,onChange:L})))};aM.propTypes={colors:S.arrayOf(S.string),styles:S.object};aM.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}};be(aM);var aEe=function(e){var t=e.hover,i=e.color,r=e.onClick,o=e.onSwatchHover,n={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},a=F({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:n}},{hover:t});return M.createElement("div",{style:a.swatch},M.createElement(ls,{color:i,onClick:r,onHover:o,focusStyle:n}))};const MEe=Ra(aEe);var MM=function(e){var t=e.width,i=e.colors,r=e.onChange,o=e.onSwatchHover,n=e.triangle,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=F(ve({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},c),{"hide-triangle":n==="hide","top-left-triangle":n==="top-left","top-right-triangle":n==="top-right","bottom-left-triangle":n==="bottom-left","bottom-right-triangle":n==="bottom-right"}),L=function(y,T){return r({hex:y,source:"hex"},T)};return M.createElement("div",{style:u.card,className:"github-picker "+N},M.createElement("div",{style:u.triangleShadow}),M.createElement("div",{style:u.triangle}),Ns(i,function(g){return M.createElement(MEe,{color:g,key:g,onClick:L,onSwatchHover:o})}))};MM.propTypes={width:S.oneOfType([S.string,S.number]),colors:S.arrayOf(S.string),triangle:S.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:S.object};MM.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}};be(MM);var cEe=function(e){var t=e.direction,i=F({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:t==="vertical"});return M.createElement("div",{style:i.picker})},uEe=Object.assign||function(s){for(var e=1;e.5});return M.createElement("div",{style:i.picker})},gEe=function(){var e=F({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return M.createElement("div",{style:e.pointer},M.createElement("div",{style:e.left},M.createElement("div",{style:e.leftInside})),M.createElement("div",{style:e.right},M.createElement("div",{style:e.rightInside})))},gl=function(e){var t=e.onClick,i=e.label,r=e.children,o=e.active,n=F({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:o});return M.createElement("div",{style:n.button,onClick:t},i||r)},jEe=function(e){var t=e.rgb,i=e.currentColor,r=F({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:i,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return M.createElement("div",null,M.createElement("div",{style:r.label},"new"),M.createElement("div",{style:r.swatches},M.createElement("div",{style:r.new}),M.createElement("div",{style:r.current})),M.createElement("div",{style:r.label},"current"))},yEe=function(){function s(e,t){for(var i=0;i100&&(N.a=100),N.a/=100,t({h:r.h,s:r.s,l:r.l,a:N.a,source:"rgb"},u))};return M.createElement("div",{style:a.fields,className:"flexbox-fix"},M.createElement("div",{style:a.double},M.createElement(K,{style:{input:a.input,label:a.label},label:"hex",value:o.replace("#",""),onChange:c})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"r",value:i.r,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"g",value:i.g,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"b",value:i.b,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.alpha},M.createElement(K,{style:{input:a.input,label:a.label},label:"a",value:Math.round(i.a*100),onChange:c,dragLabel:"true",dragMax:"100"})))},zEe=Object.assign||function(s){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var jr=24,OEe=d4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?jr:i,o=s.height,n=o===void 0?jr:o,a=s.style,c=a===void 0?{}:a,l=mEe(s,["fill","width","height","style"]);return yl.default.createElement("svg",jl({viewBox:"0 0 "+jr+" "+jr,style:jl({fill:t,width:r,height:n},c)},l),yl.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))},EEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.first,a=e.last,c=e.active,l=F({default:{color:{width:"40px",height:"24px",cursor:"pointer",background:t,marginBottom:"1px"},check:{color:eM(t),marginLeft:"8px",display:"none"}},first:{color:{overflow:"hidden",borderRadius:"2px 2px 0 0"}},last:{color:{overflow:"hidden",borderRadius:"0 0 2px 2px"}},active:{check:{display:"block"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},check:{color:"#333"}},transparent:{check:{color:"#333"}}},{first:n,last:a,active:c,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{color:t,style:l.color,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:l.check},M.createElement(OEe,null)))},fEe=function(e){var t=e.onClick,i=e.onSwatchHover,r=e.group,o=e.active,n=F({default:{group:{paddingBottom:"10px",width:"40px",float:"left",marginRight:"10px"}}});return M.createElement("div",{style:n.group},Ns(r,function(a,c){return M.createElement(EEe,{key:a,color:a,active:a.toLowerCase()===o,first:c===0,last:c===r.length-1,onClick:t,onSwatchHover:i})}))},LM=function(e){var t=e.width,i=e.height,r=e.onChange,o=e.onSwatchHover,n=e.colors,a=e.hex,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=F(ve({default:{picker:{width:t,height:i},overflow:{height:i,overflowY:"scroll"},body:{padding:"16px 0 6px 16px"},clear:{clear:"both"}}},l)),g=function(T,d){return r({hex:T,source:"hex"},d)};return M.createElement("div",{style:L.picker,className:"swatches-picker "+u},M.createElement(er,null,M.createElement("div",{style:L.overflow},M.createElement("div",{style:L.body},Ns(n,function(y){return M.createElement(fEe,{key:y.toString(),group:y,active:a,onClick:g,onSwatchHover:o})}),M.createElement("div",{style:L.clear})))))};LM.propTypes={width:S.oneOfType([S.string,S.number]),height:S.oneOfType([S.string,S.number]),colors:S.arrayOf(S.arrayOf(S.string)),styles:S.object};LM.defaultProps={width:320,height:240,colors:[[zs[900],zs[700],zs[500],zs[300],zs[100]],[ws[900],ws[700],ws[500],ws[300],ws[100]],[Cs[900],Cs[700],Cs[500],Cs[300],Cs[100]],[Is[900],Is[700],Is[500],Is[300],Is[100]],[ps[900],ps[700],ps[500],ps[300],ps[100]],[As[900],As[700],As[500],As[300],As[100]],[ms[900],ms[700],ms[500],ms[300],ms[100]],[Os[900],Os[700],Os[500],Os[300],Os[100]],[Es[900],Es[700],Es[500],Es[300],Es[100]],["#194D33",Ci[700],Ci[500],Ci[300],Ci[100]],[fs[900],fs[700],fs[500],fs[300],fs[100]],[xs[900],xs[700],xs[500],xs[300],xs[100]],[_s[900],_s[700],_s[500],_s[300],_s[100]],[Ss[900],Ss[700],Ss[500],Ss[300],Ss[100]],[ks[900],ks[700],ks[500],ks[300],ks[100]],[Ys[900],Ys[700],Ys[500],Ys[300],Ys[100]],[vs[900],vs[700],vs[500],vs[300],vs[100]],[bs[900],bs[700],bs[500],bs[300],bs[100]],["#000000","#525252","#969696","#D9D9D9","#FFFFFF"]],styles:{}};be(LM);var gM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.hex,o=e.colors,n=e.width,a=e.triangle,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=F(ve({default:{card:{width:n,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},l),{"hide-triangle":a==="hide","top-left-triangle":a==="top-left","top-right-triangle":a==="top-right"}),g=function(T,d){Wt(T)&&t({hex:T,source:"hex"},d)};return M.createElement("div",{style:L.card,className:"twitter-picker "+u},M.createElement("div",{style:L.triangleShadow}),M.createElement("div",{style:L.triangle}),M.createElement("div",{style:L.body},Ns(o,function(y,T){return M.createElement(ls,{key:T,color:y,hex:y,style:L.swatch,onClick:g,onHover:i,focusStyle:{boxShadow:"0 0 4px "+y}})}),M.createElement("div",{style:L.hash},"#"),M.createElement(K,{label:null,style:{input:L.input},value:r.replace("#",""),onChange:g}),M.createElement("div",{style:L.clear})))};gM.propTypes={width:S.oneOfType([S.string,S.number]),triangle:S.oneOf(["hide","top-left","top-right"]),colors:S.arrayOf(S.string),styles:S.object};gM.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}};be(gM);var jM=function(e){var t=F({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",border:"2px #fff solid",transform:"translate(-12px, -13px)",background:"hsl("+Math.round(e.hsl.h)+", "+Math.round(e.hsl.s*100)+"%, "+Math.round(e.hsl.l*100)+"%)"}}});return M.createElement("div",{style:t.picker})};jM.propTypes={hsl:S.shape({h:S.number,s:S.number,l:S.number,a:S.number})};jM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var yM=function(e){var t=F({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",transform:"translate(-10px, -7px)",background:"hsl("+Math.round(e.hsl.h)+", 100%, 50%)",border:"2px white solid"}}});return M.createElement("div",{style:t.picker})};yM.propTypes={hsl:S.shape({h:S.number,s:S.number,l:S.number,a:S.number})};yM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var xEe=function(e){var t=e.onChange,i=e.rgb,r=e.hsl,o=e.hex,n=e.hsv,a=function(g,y){if(g.hex)Wt(g.hex)&&t({hex:g.hex,source:"hex"},y);else if(g.rgb){var T=g.rgb.split(",");Go(g.rgb,"rgb")&&t({r:T[0],g:T[1],b:T[2],a:1,source:"rgb"},y)}else if(g.hsv){var d=g.hsv.split(",");Go(g.hsv,"hsv")&&(d[2]=d[2].replace("%",""),d[1]=d[1].replace("%",""),d[0]=d[0].replace("°",""),d[1]==1?d[1]=.01:d[2]==1&&(d[2]=.01),t({h:Number(d[0]),s:Number(d[1]),v:Number(d[2]),source:"hsv"},y))}else if(g.hsl){var z=g.hsl.split(",");Go(g.hsl,"hsl")&&(z[2]=z[2].replace("%",""),z[1]=z[1].replace("%",""),z[0]=z[0].replace("°",""),u[1]==1?u[1]=.01:u[2]==1&&(u[2]=.01),t({h:Number(z[0]),s:Number(z[1]),v:Number(z[2]),source:"hsl"},y))}},c=F({default:{wrap:{display:"flex",height:"100px",marginTop:"4px"},fields:{width:"100%"},column:{paddingTop:"10px",display:"flex",justifyContent:"space-between"},double:{padding:"0px 4.4px",boxSizing:"border-box"},input:{width:"100%",height:"38px",boxSizing:"border-box",padding:"4px 10% 3px",textAlign:"center",border:"1px solid #dadce0",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",fontFamily:"Roboto,Arial,sans-serif"},input2:{height:"38px",width:"100%",border:"1px solid #dadce0",boxSizing:"border-box",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",paddingLeft:"10px",fontFamily:"Roboto,Arial,sans-serif"},label:{textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"35px",top:"-6px",left:"0",right:"0",marginLeft:"auto",marginRight:"auto",fontFamily:"Roboto,Arial,sans-serif"},label2:{left:"10px",textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"32px",top:"-6px",fontFamily:"Roboto,Arial,sans-serif"},single:{flexGrow:"1",margin:"0px 4.4px"}}}),l=i.r+", "+i.g+", "+i.b,N=Math.round(r.h)+"°, "+Math.round(r.s*100)+"%, "+Math.round(r.l*100)+"%",u=Math.round(n.h)+"°, "+Math.round(n.s*100)+"%, "+Math.round(n.v*100)+"%";return M.createElement("div",{style:c.wrap,className:"flexbox-fix"},M.createElement("div",{style:c.fields},M.createElement("div",{style:c.double},M.createElement(K,{style:{input:c.input,label:c.label},label:"hex",value:o,onChange:a})),M.createElement("div",{style:c.column},M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"rgb",value:l,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsv",value:u,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsl",value:N,onChange:a})))))},TM=function(e){var t=e.width,i=e.onChange,r=e.rgb,o=e.hsl,n=e.hsv,a=e.hex,c=e.header,l=e.styles,N=l===void 0?{}:l,u=e.className,L=u===void 0?"":u,g=F(ve({default:{picker:{width:t,background:"#fff",border:"1px solid #dfe1e5",boxSizing:"initial",display:"flex",flexWrap:"wrap",borderRadius:"8px 8px 0px 0px"},head:{height:"57px",width:"100%",paddingTop:"16px",paddingBottom:"16px",paddingLeft:"16px",fontSize:"20px",boxSizing:"border-box",fontFamily:"Roboto-Regular,HelveticaNeue,Arial,sans-serif"},saturation:{width:"70%",padding:"0px",position:"relative",overflow:"hidden"},swatch:{width:"30%",height:"228px",padding:"0px",background:"rgba("+r.r+", "+r.g+", "+r.b+", 1)",position:"relative",overflow:"hidden"},body:{margin:"auto",width:"95%"},controls:{display:"flex",boxSizing:"border-box",height:"52px",paddingTop:"22px"},color:{width:"32px"},hue:{height:"8px",position:"relative",margin:"0px 16px 0px 16px",width:"100%"},Hue:{radius:"2px"}}},N));return M.createElement("div",{style:g.picker,className:"google-picker "+L},M.createElement("div",{style:g.head},c),M.createElement("div",{style:g.swatch}),M.createElement("div",{style:g.saturation},M.createElement(zo,{hsl:o,hsv:n,pointer:jM,onChange:i})),M.createElement("div",{style:g.body},M.createElement("div",{style:g.controls,className:"flexbox-fix"},M.createElement("div",{style:g.hue},M.createElement(oi,{style:g.Hue,hsl:o,radius:"4px",pointer:yM,onChange:i}))),M.createElement(xEe,{rgb:r,hsl:o,hex:a,hsv:n,onChange:i})))};TM.propTypes={width:S.oneOfType([S.string,S.number]),styles:S.object,header:S.string};TM.defaultProps={width:652,styles:{},header:"Color picker"};be(TM);const He={color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{mt:"16px",p:"5px",backgroundColor:"background.paper",borderRadius:"1px",boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{"& .MuiPaper-root":{textAlign:"right",backgroundColor:"#00000000",boxShadow:"none"}},popoverList:{padding:0},closeButton:s=>({backgroundColor:`${s.palette.background.paper} !important`,borderRadius:"0 0 25% 25%","&:hover":{backgroundColor:`${s.palette.secondary.main} !important`}}),textDense:{mt:0,mb:0},iconButton:{width:16,height:16},button:{width:32,height:32,minWidth:32,minHeight:32}};class Ii extends f.Component{constructor(e){super(e),this.state={displayColorPicker:!1,color:this.props.value||this.props.color||"",anchorEl:null}}handleClick=e=>{this.setState({displayColorPicker:!this.state.displayColorPicker,anchorEl:this.state.displayColorPicker?null:e.currentTarget})};handleClose=()=>{this.setState({displayColorPicker:!1,anchorEl:null})};static getColor(e,t){if(e&&typeof e=="object"){const i=e;if(i.rgb)return t?`#${i.rgb.r.toString(16).padStart(2,"0")}${i.rgb.g.toString(16).padStart(2,"0")}${i.rgb.b.toString(16).padStart(2,"0")}`:`rgba(${i.rgb.r},${i.rgb.g},${i.rgb.b},${i.rgb.a})`;const r=e;return t?`#${r.r.toString(16).padStart(2,"0")}${r.g.toString(16).padStart(2,"0")}${r.b.toString(16).padStart(2,"0")}`:`rgba(${r.r},${r.g},${r.b},${r.a})`}return typeof e=="string"?t?Ii.rgb2hex(e||""):e||"":""}static rgb2hex(e){const t=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(t){const i=parseInt(t[1],10).toString(16).padStart(2,"0"),r=parseInt(t[2],10).toString(16).padStart(2,"0"),o=parseInt(t[3],10).toString(16).padStart(2,"0");return(t==null?void 0:t.length)===4?`#${i}${r}${o}`:e}return e}handleChange=e=>{this.setState({color:e},()=>this.props.onChange&&this.props.onChange(Ii.getColor(e)))};componentDidUpdate(e,t){const i=Ii.getColor(this.props.color||this.props.value||"");i!==t.color&&this.setState({color:i})}renderCustomPalette(){return this.props.customPalette?M.createElement("div",{style:{width:"100%",display:"flex",flexWrap:"wrap"}},this.props.customPalette.map(e=>M.createElement(j.Button,{style:He.button,key:e,onClick:()=>{this.handleChange(e),setTimeout(()=>this.handleClose(),300)}},M.createElement("div",{style:{...He.iconButton,background:e}})))):null}render(){var i;const e={...this.props.style||{}};e.position="relative";const{color:t}=this.state;return M.createElement(j.Box,{component:"div",style:e,sx:this.props.sx||void 0,className:this.props.className||""},this.props.noInputField?null:M.createElement(j.TextField,{disabled:this.props.disabled,variant:"standard",id:"ar_color_picker_name",label:this.props.label||this.props.name,value:t||"",margin:"dense",sx:{"&.MuiFormControl-root":He.textDense,width:t?"calc(100% - 80px)":"calc(100% - 56px)",mr:t?void 0:1},onChange:r=>this.handleChange(r.target.value)}),!this.props.noInputField&&t?M.createElement(j.IconButton,{disabled:this.props.disabled,onClick:()=>this.handleChange(""),size:"small",style:this.props.label||this.props.name?He.delButton:void 0},M.createElement(nt,null)):null,M.createElement(j.Box,{component:"div",onClick:r=>!this.props.disabled&&this.handleClick(r),title:h.t("ra_Select color"),sx:{...He.swatch,...this.props.disabled?He.swatchDisabled:void 0,background:t?void 0:"transparent",border:t?void 0:"1px dashed #ccc",boxSizing:"border-box",marginTop:this.props.noInputField||!(this.props.label||this.props.name)?0:void 0}},M.createElement("div",{style:{...He.color,background:Ii.getColor(t),width:this.props.noInputField?this.props.barWidth||16:this.props.barWidth||36}})),this.state.displayColorPicker&&!this.props.disabled?M.createElement(j.Menu,{sx:{...He.popover,"&. MuiMenu-list":He.popoverList},anchorEl:this.state.anchorEl,open:!0,onClose:()=>this.handleClose()},M.createElement(rEe,{color:this.state.color||void 0,onChangeComplete:r=>this.handleChange(r.rgb),styles:{default:{picker:{backgroundColor:((i=this.props.theme)==null?void 0:i.palette.background.paper)||"#888"}}}}),t&&this.props.noInputField?M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleChange("")},M.createElement(nt,null)):null,M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleClose()},M.createElement(Ne,null)),this.renderCustomPalette()):null)}}var D4={exports:{}};(function(s,e){(function(i,r){s.exports=r()})(globalThis,()=>(()=>{var t={949:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.CronParser=void 0;var l=c(515),N=function(){function u(L,g,y){g===void 0&&(g=!0),y===void 0&&(y=!1),this.expression=L,this.dayOfWeekStartIndexZero=g,this.monthStartIndexZero=y}return u.prototype.parse=function(){var L,g,y=(L=this.expression)!==null&&L!==void 0?L:"";if(y==="@reboot")return g=["@reboot","","","","","",""],g;if(y.startsWith("@")){var T=this.parseSpecial(this.expression);g=this.extractParts(T)}else g=this.extractParts(this.expression);return this.normalize(g),this.validate(g),g},u.prototype.parseSpecial=function(L){var g={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *","@reboot":"@reboot"},y=g[L];if(!y)throw new Error("Unknown special expression.");return y},u.prototype.extractParts=function(L){if(!this.expression)throw new Error("cron expression is empty");for(var g=L.trim().split(/[ ]+/),y=0;y7)throw new Error("Expression has ".concat(g.length," parts; too many!"));return g},u.prototype.normalize=function(L){var g=this;if(L[3]=L[3].replace("?","*"),L[5]=L[5].replace("?","*"),L[2]=L[2].replace("?","*"),L[0].indexOf("0/")==0&&(L[0]=L[0].replace("0/","*/")),L[1].indexOf("0/")==0&&(L[1]=L[1].replace("0/","*/")),L[2].indexOf("0/")==0&&(L[2]=L[2].replace("0/","*/")),L[3].indexOf("1/")==0&&(L[3]=L[3].replace("1/","*/")),L[4].indexOf("1/")==0&&(L[4]=L[4].replace("1/","*/")),L[6].indexOf("1/")==0&&(L[6]=L[6].replace("1/","*/")),L[5]=L[5].replace(/(^\d)|([^#/\s]\d)/g,function(A){var D=A.replace(/\D/,""),p=D;return g.dayOfWeekStartIndexZero?D=="7"&&(p="0"):p=(parseInt(D)-1).toString(),A.replace(D,p)}),L[5]=="L"&&(L[5]="6"),L[3]=="?"&&(L[3]="*"),L[3].indexOf("W")>-1&&(L[3].indexOf(",")>-1||L[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var y={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var T in y)L[5]=L[5].replace(new RegExp(T,"gi"),y[T].toString());L[4]=L[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(A){var D=A.replace(/\D/,""),p=D;return g.monthStartIndexZero&&(p=(parseInt(D)+1).toString()),A.replace(D,p)});var d={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var z in d)L[4]=L[4].replace(new RegExp(z,"gi"),d[z].toString());L[0]=="0"&&(L[0]=""),!/\*|\-|\,|\//.test(L[2])&&(/\*|\//.test(L[1])||/\*|\//.test(L[0]))&&(L[2]+="-".concat(L[2]));for(var I=0;I-1&&!/^\*|\-|\,/.test(L[I])){var C=null;switch(I){case 4:C="12";break;case 5:C="6";break;case 6:C="9999";break;default:C=null;break}if(C!==null){var m=L[I].split("/");L[I]="".concat(m[0],"-").concat(C,"/").concat(m[1])}}},u.prototype.validate=function(L){var g="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(L[0],g),this.validateOnlyExpectedCharactersFound(L[1],g),this.validateOnlyExpectedCharactersFound(L[2],g),this.validateOnlyExpectedCharactersFound(L[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(L[4],g),this.validateOnlyExpectedCharactersFound(L[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(L[6],g),this.validateAnyRanges(L)},u.prototype.validateAnyRanges=function(L){l.default.secondRange(L[0]),l.default.minuteRange(L[1]),l.default.hourRange(L[2]),l.default.dayOfMonthRange(L[3]),l.default.monthRange(L[4],this.monthStartIndexZero),l.default.dayOfWeekRange(L[5],this.dayOfWeekStartIndexZero)},u.prototype.validateOnlyExpectedCharactersFound=function(L,g){var y=L.match(new RegExp("[^".concat(g,"]+"),"gi"));if(y&&y.length)throw new Error("Expression contains invalid values: '".concat(y.toString(),"'"))},u}();a.CronParser=N},333:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.ExpressionDescriptor=void 0;var l=c(823),N=c(949),u=function(){function L(g,y){if(this.expression=g,this.options=y,this.expressionParts=new Array(5),!this.options.locale&&L.defaultLocale&&(this.options.locale=L.defaultLocale),!L.locales[this.options.locale]){var T=Object.keys(L.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(T,"'.")),this.options.locale=T}this.i18n=L.locales[this.options.locale],y.use24HourTimeFormat===void 0&&(y.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return L.toString=function(g,y){var T=y===void 0?{}:y,d=T.throwExceptionOnParseError,z=d===void 0?!0:d,I=T.verbose,C=I===void 0?!1:I,m=T.dayOfWeekStartIndexZero,A=m===void 0?!0:m,D=T.monthStartIndexZero,p=D===void 0?!1:D,_=T.use24HourTimeFormat,x=T.locale,P=x===void 0?null:x,v={throwExceptionOnParseError:z,verbose:C,dayOfWeekStartIndexZero:A,monthStartIndexZero:p,use24HourTimeFormat:_,locale:P};v.tzOffset&&console.warn("'tzOffset' option has been deprecated and is no longer supported.");var ee=new L(g,v);return ee.getFullDescription()},L.initialize=function(g,y){y===void 0&&(y="en"),L.specialCharacters=["/","-",",","*"],L.defaultLocale=y,g.load(L.locales)},L.prototype.getFullDescription=function(){var g,y,T="";try{var d=new N.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);if(this.expressionParts=d.parse(),this.expressionParts[0]==="@reboot")return((y=(g=this.i18n).atReboot)===null||y===void 0?void 0:y.call(g))||"Run once, at startup";var z=this.getTimeOfDayDescription(),I=this.getDayOfMonthDescription(),C=this.getMonthDescription(),m=this.getDayOfWeekDescription(),A=this.getYearDescription();T+=z+I+m+C+A,T=this.transformVerbosity(T,!!this.options.verbose),T=T.charAt(0).toLocaleUpperCase()+T.substr(1)}catch(D){if(!this.options.throwExceptionOnParseError)T=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(D)}return T},L.prototype.getTimeOfDayDescription=function(){var g=this.expressionParts[0],y=this.expressionParts[1],T=this.expressionParts[2],d="";if(!l.StringUtilities.containsAny(y,L.specialCharacters)&&!l.StringUtilities.containsAny(T,L.specialCharacters)&&!l.StringUtilities.containsAny(g,L.specialCharacters))d+=this.i18n.atSpace()+this.formatTime(T,y,g);else if(!g&&y.indexOf("-")>-1&&!(y.indexOf(",")>-1)&&!(y.indexOf("/")>-1)&&!l.StringUtilities.containsAny(T,L.specialCharacters)){var z=y.split("-");d+=l.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(T,z[0],""),this.formatTime(T,z[1],""))}else if(!g&&T.indexOf(",")>-1&&T.indexOf("-")==-1&&T.indexOf("/")==-1&&!l.StringUtilities.containsAny(y,L.specialCharacters)){var I=T.split(",");d+=this.i18n.at();for(var C=0;C-1?I=d.substring(0,d.indexOf("#")):d.indexOf("L")>-1&&(I=I.replace("L",""));var C=parseInt(I),m=g.i18n.daysOfTheWeekInCase?g.i18n.daysOfTheWeekInCase(z)[C]:y[C];if(d.indexOf("#")>-1){var A=null,D=d.substring(d.indexOf("#")+1),p=d.substring(0,d.indexOf("#"));switch(D){case"1":A=g.i18n.first(p);break;case"2":A=g.i18n.second(p);break;case"3":A=g.i18n.third(p);break;case"4":A=g.i18n.fourth(p);break;case"5":A=g.i18n.fifth(p);break}m=A+" "+m}return m},function(d){return parseInt(d)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0DaysOfTheWeek(d),d)},function(d){var z=d.substring(0,d.indexOf("-")),I=g.expressionParts[3]!="*";return I?g.i18n.commaAndX0ThroughX1(z):g.i18n.commaX0ThroughX1(z)},function(d){var z=null;if(d.indexOf("#")>-1){var I=d.substring(d.indexOf("#")+1),C=d.substring(0,d.indexOf("#"));z=g.i18n.commaOnThe(I,C).trim()+g.i18n.spaceX0OfTheMonth()}else if(d.indexOf("L")>-1)z=g.i18n.commaOnTheLastX0OfTheMonth(d.replace("L",""));else{var m=g.expressionParts[3]!="*";z=m?g.i18n.commaAndOnX0():g.i18n.commaOnlyOnX0(d)}return z}),T},L.prototype.getMonthDescription=function(){var g=this,y=this.i18n.monthsOfTheYear(),T=this.getSegmentDescription(this.expressionParts[4],"",function(d,z){return z&&g.i18n.monthsOfTheYearInCase?g.i18n.monthsOfTheYearInCase(z)[parseInt(d)-1]:y[parseInt(d)-1]},function(d){return parseInt(d)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0Months(d),d)},function(d){return g.i18n.commaMonthX0ThroughMonthX1()||g.i18n.commaX0ThroughX1()},function(d){return g.i18n.commaOnlyInMonthX0?g.i18n.commaOnlyInMonthX0():g.i18n.commaOnlyInX0()});return T},L.prototype.getDayOfMonthDescription=function(){var g=this,y=null,T=this.expressionParts[3];switch(T){case"L":y=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":y=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var d=T.match(/(\d{1,2}W)|(W\d{1,2})/);if(d){var z=parseInt(d[0].replace("W","")),I=z==1?this.i18n.firstWeekday():l.StringUtilities.format(this.i18n.weekdayNearestDayX0(),z.toString());y=l.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),I);break}else{var C=T.match(/L-(\d{1,2})/);if(C){var m=C[1];y=l.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(m),m);break}else{if(T=="*"&&this.expressionParts[5]!="*")return"";y=this.getSegmentDescription(T,this.i18n.commaEveryDay(),function(A){return A=="L"?g.i18n.lastDay():g.i18n.dayX0?l.StringUtilities.format(g.i18n.dayX0(),A):A},function(A){return A=="1"?g.i18n.commaEveryDay():g.i18n.commaEveryX0Days(A)},function(A){return g.i18n.commaBetweenDayX0AndX1OfTheMonth(A)},function(A){return g.i18n.commaOnDayX0OfTheMonth(A)})}break}}return y},L.prototype.getYearDescription=function(){var g=this,y=this.getSegmentDescription(this.expressionParts[6],"",function(T){return/^\d+$/.test(T)?new Date(parseInt(T),1).getFullYear().toString():T},function(T){return l.StringUtilities.format(g.i18n.commaEveryX0Years(T),T)},function(T){return g.i18n.commaYearX0ThroughYearX1()||g.i18n.commaX0ThroughX1()},function(T){return g.i18n.commaOnlyInYearX0?g.i18n.commaOnlyInYearX0():g.i18n.commaOnlyInX0()});return y},L.prototype.getSegmentDescription=function(g,y,T,d,z,I){var C=null,m=g.indexOf("/")>-1,A=g.indexOf("-")>-1,D=g.indexOf(",")>-1;if(!g)C="";else if(g==="*")C=y;else if(!m&&!A&&!D)C=l.StringUtilities.format(I(g),T(g));else if(D){for(var p=g.split(","),_="",x=0;x0&&p.length>2&&(_+=",",x0&&p.length>1&&(x==p.length-1||p.length==2)&&(_+="".concat(this.i18n.spaceAnd()," ")),p[x].indexOf("/")>-1||p[x].indexOf("-")>-1){var P=p[x].indexOf("-")>-1&&p[x].indexOf("/")==-1,v=this.getSegmentDescription(p[x],y,T,d,P?this.i18n.commaX0ThroughX1:z,I);P&&(v=v.replace(", ","")),_+=v}else m?_+=this.getSegmentDescription(p[x],y,T,d,z,I):_+=T(p[x]);m?C=_:C=l.StringUtilities.format(I(g),_)}else if(m){var p=g.split("/");if(C=l.StringUtilities.format(d(p[1]),p[1]),p[0].indexOf("-")>-1){var ee=this.generateRangeSegmentDescription(p[0],z,T);ee.indexOf(", ")!=0&&(C+=", "),C+=ee}else if(p[0].indexOf("*")==-1){var ue=l.StringUtilities.format(I(p[0]),T(p[0]));ue=ue.replace(", ",""),C+=l.StringUtilities.format(this.i18n.commaStartingX0(),ue)}}else A&&(C=this.generateRangeSegmentDescription(g,z,T));return C},L.prototype.generateRangeSegmentDescription=function(g,y,T){var d="",z=g.split("-"),I=T(z[0],1),C=T(z[1],2),m=y(g);return d+=l.StringUtilities.format(m,I,C),d},L.prototype.formatTime=function(g,y,T){var d=0,z=0,I=parseInt(g)+d,C=parseInt(y)+z;C>=60?(C-=60,I+=1):C<0&&(C+=60,I-=1),I>=24?I=I-24:I<0&&(I=24+I);var m="",A=!1;this.options.use24HourTimeFormat||(A=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),m=A?"".concat(this.getPeriod(I)," "):" ".concat(this.getPeriod(I)),I>12&&(I-=12),I===0&&(I=12));var D="";return T&&(D=":".concat(("00"+T).substring(T.length))),"".concat(A?m:"").concat(("00"+I.toString()).substring(I.toString().length),":").concat(("00"+C.toString()).substring(C.toString().length)).concat(D).concat(A?"":m)},L.prototype.transformVerbosity=function(g,y){if(!y&&(g=g.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),g=g.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),g=g.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),g=g.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var T=0,d=Object.entries(this.i18n.conciseVerbosityReplacements());T=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},L.locales={},L}();a.ExpressionDescriptor=u},747:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.enLocaleLoader=void 0;var l=c(486),N=function(){function u(){}return u.prototype.load=function(L){L.en=new l.en},u}();a.enLocaleLoader=N},486:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.en=void 0;var c=function(){function l(){}return l.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},l.prototype.atX0MinutesPastTheHourGt20=function(){return null},l.prototype.commaMonthX0ThroughMonthX1=function(){return null},l.prototype.commaYearX0ThroughYearX1=function(){return null},l.prototype.use24HourTimeFormatByDefault=function(){return!1},l.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},l.prototype.everyMinute=function(){return"every minute"},l.prototype.everyHour=function(){return"every hour"},l.prototype.atSpace=function(){return"At "},l.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},l.prototype.at=function(){return"At"},l.prototype.spaceAnd=function(){return" and"},l.prototype.everySecond=function(){return"every second"},l.prototype.everyX0Seconds=function(){return"every %s seconds"},l.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},l.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},l.prototype.everyX0Minutes=function(){return"every %s minutes"},l.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},l.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},l.prototype.everyX0Hours=function(){return"every %s hours"},l.prototype.betweenX0AndX1=function(){return"between %s and %s"},l.prototype.atX0=function(){return"at %s"},l.prototype.commaEveryDay=function(){return", every day"},l.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},l.prototype.commaX0ThroughX1=function(){return", %s through %s"},l.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},l.prototype.first=function(){return"first"},l.prototype.second=function(){return"second"},l.prototype.third=function(){return"third"},l.prototype.fourth=function(){return"fourth"},l.prototype.fifth=function(){return"fifth"},l.prototype.commaOnThe=function(){return", on the "},l.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},l.prototype.lastDay=function(){return"the last day"},l.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},l.prototype.commaOnlyOnX0=function(){return", only on %s"},l.prototype.commaAndOnX0=function(){return", and on %s"},l.prototype.commaEveryX0Months=function(){return", every %s months"},l.prototype.commaOnlyInX0=function(){return", only in %s"},l.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},l.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},l.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},l.prototype.firstWeekday=function(){return"first weekday"},l.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},l.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},l.prototype.commaEveryX0Days=function(){return", every %s days"},l.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},l.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},l.prototype.commaEveryHour=function(){return", every hour"},l.prototype.commaEveryX0Years=function(){return", every %s years"},l.prototype.commaStartingX0=function(){return", starting %s"},l.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},l.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},l.prototype.atReboot=function(){return"Run once, at startup"},l}();a.en=c},515:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0});function c(N,u){if(!N)throw new Error(u)}var l=function(){function N(){}return N.secondRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"seconds part must be >= 0 and <= 59")}},N.minuteRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"minutes part must be >= 0 and <= 59")}},N.hourRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=23,"hours part must be >= 0 and <= 23")}},N.dayOfMonthRange=function(u){for(var L=u.split(","),g=0;g=1&&y<=31,"DOM part must be >= 1 and <= 31")}},N.monthRange=function(u,L){for(var g=u.split(","),y=0;y=1&&T<=12,L?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},N.dayOfWeekRange=function(u,L){for(var g=u.split(","),y=0;y=0&&T<=6,L?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},N}();a.default=l},823:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.StringUtilities=void 0;var c=function(){function l(){}return l.format=function(N){for(var u=[],L=1;L-1})},l}();a.StringUtilities=c}},i={};function r(n){var a=i[n];if(a!==void 0)return a.exports;var c=i[n]={exports:{}};return t[n](c,c.exports,r),c.exports}var o={};return(()=>{var n=o;Object.defineProperty(n,"__esModule",{value:!0}),n.toString=void 0;var a=r(333),c=r(747);a.ExpressionDescriptor.initialize(new c.enLocaleLoader),n.default=a.ExpressionDescriptor;var l=a.ExpressionDescriptor.toString;n.toString=l})(),o})())})(D4);var lt=D4.exports;const _Ee=WL(lt);var SEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.fr=void 0;var N=function(){function u(){}return u.prototype.conciseVerbosityReplacements=function(){return{"de le":"du"}},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe."},u.prototype.everyMinute=function(){return"toutes les minutes"},u.prototype.everyHour=function(){return"toutes les heures"},u.prototype.atSpace=function(){return"À "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Toutes les minutes entre %s et %s"},u.prototype.at=function(){return"À"},u.prototype.spaceAnd=function(){return" et"},u.prototype.everySecond=function(){return"toutes les secondes"},u.prototype.everyX0Seconds=function(){return"toutes les %s secondes"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"les secondes entre %s et %s après la minute"},u.prototype.atX0SecondsPastTheMinute=function(){return"%s secondes après la minute"},u.prototype.everyX0Minutes=function(){return"toutes les %s minutes"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"les minutes entre %s et %s après l'heure"},u.prototype.atX0MinutesPastTheHour=function(){return"%s minutes après l'heure"},u.prototype.everyX0Hours=function(){return"toutes les %s heures"},u.prototype.betweenX0AndX1=function(){return"de %s à %s"},u.prototype.atX0=function(){return"%s"},u.prototype.commaEveryDay=function(){return", tous les jours"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", tous les %s jours de la semaine"},u.prototype.commaX0ThroughX1=function(){return", de %s à %s"},u.prototype.commaAndX0ThroughX1=function(){return", et de %s à %s"},u.prototype.first=function(){return"premier"},u.prototype.second=function(){return"second"},u.prototype.third=function(){return"troisième"},u.prototype.fourth=function(){return"quatrième"},u.prototype.fifth=function(){return"cinquième"},u.prototype.commaOnThe=function(){return", le "},u.prototype.spaceX0OfTheMonth=function(){return" %s du mois"},u.prototype.lastDay=function(){return"le dernier jour"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", le dernier %s du mois"},u.prototype.commaOnlyOnX0=function(){return", uniquement le %s"},u.prototype.commaAndOnX0=function(){return", et %s"},u.prototype.commaEveryX0Months=function(){return", tous les %s mois"},u.prototype.commaOnlyInX0=function(){return", uniquement en %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", le dernier jour du mois"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", le dernier jour ouvrable du mois"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s jours avant le dernier jour du mois"},u.prototype.firstWeekday=function(){return"premier jour ouvrable"},u.prototype.weekdayNearestDayX0=function(){return"jour ouvrable le plus proche du %s"},u.prototype.commaOnTheX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryX0Days=function(){return", tous les %s jours"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", du %s au %s du mois"},u.prototype.commaOnDayX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryHour=function(){return", chaque heure"},u.prototype.commaEveryX0Years=function(){return", tous les %s ans"},u.prototype.commaDaysX0ThroughX1=function(){return", du %s au %s"},u.prototype.commaStartingX0=function(){return", à partir de %s"},u.prototype.daysOfTheWeek=function(){return["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},u.prototype.monthsOfTheYear=function(){return["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},u}();return l.fr=N,c().locales.fr=new N,n})())})(SEe);var kEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.es=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocurrió un error mientras se generaba la descripción de la expresión. Revise la sintaxis de la expresión de cron."},u.prototype.at=function(){return"A las"},u.prototype.atSpace=function(){return"A las "},u.prototype.atX0=function(){return"a las %s"},u.prototype.atX0MinutesPastTheHour=function(){return"a los %s minutos de la hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"a los %s segundos del minuto"},u.prototype.betweenX0AndX1=function(){return"entre las %s y las %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre los días %s y %s del mes"},u.prototype.commaEveryDay=function(){return", cada día"},u.prototype.commaEveryX0Days=function(){return", cada %s días"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s días de la semana"},u.prototype.commaEveryX0Months=function(){return", cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", el día %s del mes"},u.prototype.commaOnlyInX0=function(){return", sólo en %s"},u.prototype.commaOnlyOnX0=function(){return", sólo el %s"},u.prototype.commaAndOnX0=function(){return", y el %s"},u.prototype.commaOnThe=function(){return", en el "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", en el último día del mes"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en el último día de la semana del mes"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s días antes del último día del mes"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", en el último %s del mes"},u.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", y de %s a %s"},u.prototype.everyHour=function(){return"cada hora"},u.prototype.everyMinute=function(){return"cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minuto entre las %s y las %s"},u.prototype.everySecond=function(){return"cada segundo"},u.prototype.everyX0Hours=function(){return"cada %s horas"},u.prototype.everyX0Minutes=function(){return"cada %s minutos"},u.prototype.everyX0Seconds=function(){return"cada %s segundos"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primero"},u.prototype.firstWeekday=function(){return"primer día de la semana"},u.prototype.fourth=function(){return"cuarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minuto %s al %s pasada la hora"},u.prototype.second=function(){return"segundo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En los segundos %s al %s de cada minuto"},u.prototype.spaceAnd=function(){return" y"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},u.prototype.lastDay=function(){return"el último día"},u.prototype.third=function(){return"tercer"},u.prototype.weekdayNearestDayX0=function(){return"día de la semana más próximo al %s"},u.prototype.commaEveryX0Years=function(){return", cada %s años"},u.prototype.commaStartingX0=function(){return", comenzando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},u.prototype.monthsOfTheYear=function(){return["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},u}();return l.es=N,c().locales.es=new N,n})())})(kEe);var YEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.de=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"jede Minute"},u.prototype.everyHour=function(){return"jede Stunde"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Beim Generieren der Ausdrucksbeschreibung ist ein Fehler aufgetreten. Überprüfen Sie die Syntax des Cron-Ausdrucks."},u.prototype.atSpace=function(){return"Um "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Jede Minute zwischen %s und %s"},u.prototype.at=function(){return"Um"},u.prototype.spaceAnd=function(){return" und"},u.prototype.everySecond=function(){return"Jede Sekunde"},u.prototype.everyX0Seconds=function(){return"alle %s Sekunden"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"Sekunden %s bis %s"},u.prototype.atX0SecondsPastTheMinute=function(){return"bei Sekunde %s"},u.prototype.everyX0Minutes=function(){return"alle %s Minuten"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"Minuten %s bis %s"},u.prototype.atX0MinutesPastTheHour=function(){return"bei Minute %s"},u.prototype.everyX0Hours=function(){return"alle %s Stunden"},u.prototype.betweenX0AndX1=function(){return"zwischen %s und %s"},u.prototype.atX0=function(){return"um %s"},u.prototype.commaEveryDay=function(){return", jeden Tag"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", alle %s Tage der Woche"},u.prototype.commaX0ThroughX1=function(){return", %s bis %s"},u.prototype.commaAndX0ThroughX1=function(){return", und %s bis %s"},u.prototype.first=function(){return"ersten"},u.prototype.second=function(){return"zweiten"},u.prototype.third=function(){return"dritten"},u.prototype.fourth=function(){return"vierten"},u.prototype.fifth=function(){return"fünften"},u.prototype.commaOnThe=function(){return", am "},u.prototype.spaceX0OfTheMonth=function(){return" %s des Monats"},u.prototype.lastDay=function(){return"der letzte Tag"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", am letzten %s des Monats"},u.prototype.commaOnlyOnX0=function(){return", nur jeden %s"},u.prototype.commaAndOnX0=function(){return", und jeden %s"},u.prototype.commaEveryX0Months=function(){return", alle %s Monate"},u.prototype.commaOnlyInX0=function(){return", nur im %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", am letzten Tag des Monats"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", am letzten Werktag des Monats"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s tage vor dem letzten Tag des Monats"},u.prototype.firstWeekday=function(){return"ersten Werktag"},u.prototype.weekdayNearestDayX0=function(){return"Werktag am nächsten zum %s Tag"},u.prototype.commaOnTheX0OfTheMonth=function(){return", am %s des Monats"},u.prototype.commaEveryX0Days=function(){return", alle %s Tage"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", zwischen Tag %s und %s des Monats"},u.prototype.commaOnDayX0OfTheMonth=function(){return", an Tag %s des Monats"},u.prototype.commaEveryX0Years=function(){return", alle %s Jahre"},u.prototype.commaStartingX0=function(){return", beginnend %s"},u.prototype.daysOfTheWeek=function(){return["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},u.prototype.monthsOfTheYear=function(){return["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},u}();return l.de=N,c().locales.de=new N,n})())})(YEe);var vEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.it=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"È verificato un errore durante la generazione la descrizione espressione. Controllare la sintassi delle espressioni cron."},u.prototype.at=function(){return"Alle"},u.prototype.atSpace=function(){return"Alle "},u.prototype.atX0=function(){return"alle %s"},u.prototype.atX0MinutesPastTheHour=function(){return"al %s minuto passata l'ora"},u.prototype.atX0SecondsPastTheMinute=function(){return"al %s secondo passato il minuto"},u.prototype.betweenX0AndX1=function(){return"tra le %s e le %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tra il giorno %s e %s del mese"},u.prototype.commaEveryDay=function(){return", ogni giorno"},u.prototype.commaEveryX0Days=function(){return", ogni %s giorni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", ogni %s giorni della settimana"},u.prototype.commaEveryX0Months=function(){return", ogni %s mesi"},u.prototype.commaEveryX0Years=function(){return", ogni %s anni"},u.prototype.commaOnDayX0OfTheMonth=function(){return", il giorno %s del mese"},u.prototype.commaOnlyInX0=function(){return", solo in %s"},u.prototype.commaOnlyOnX0=function(){return", solo il %s"},u.prototype.commaAndOnX0=function(){return", e il %s"},u.prototype.commaOnThe=function(){return", il "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", l'ultimo giorno del mese"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", nell'ultima settimana del mese"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s giorni prima dell'ultimo giorno del mese"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", l'ultimo %s del mese"},u.prototype.commaOnTheX0OfTheMonth=function(){return", il %s del mese"},u.prototype.commaX0ThroughX1=function(){return", %s al %s"},u.prototype.commaAndX0ThroughX1=function(){return", e %s al %s"},u.prototype.everyHour=function(){return"ogni ora"},u.prototype.everyMinute=function(){return"ogni minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Ogni minuto tra le %s e le %s"},u.prototype.everySecond=function(){return"ogni secondo"},u.prototype.everyX0Hours=function(){return"ogni %s ore"},u.prototype.everyX0Minutes=function(){return"ogni %s minuti"},u.prototype.everyX0Seconds=function(){return"ogni %s secondi"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primo"},u.prototype.firstWeekday=function(){return"primo giorno della settimana"},u.prototype.fourth=function(){return"quarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuti %s al %s dopo l'ora"},u.prototype.second=function(){return"secondo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"secondi %s al %s oltre il minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mese"},u.prototype.lastDay=function(){return"l'ultimo giorno"},u.prototype.third=function(){return"terzo"},u.prototype.weekdayNearestDayX0=function(){return"giorno della settimana più vicino al %s"},u.prototype.commaStartingX0=function(){return", a partire %s"},u.prototype.daysOfTheWeek=function(){return["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},u.prototype.monthsOfTheYear=function(){return["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},u}();return l.it=N,c().locales.it=new N,n})())})(vEe);var bEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:g=>{g.exports=t}},r={};function o(g){var y=r[g];if(y!==void 0)return y.exports;var T=r[g]={exports:{}};return i[g](T,T.exports,o),T.exports}o.n=g=>{var y=g&&g.__esModule?()=>g.default:()=>g;return o.d(y,{a:y}),y},o.d=(g,y)=>{for(var T in y)o.o(y,T)&&!o.o(g,T)&&Object.defineProperty(g,T,{enumerable:!0,get:y[T]})},o.o=(g,y)=>Object.prototype.hasOwnProperty.call(g,y),o.r=g=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.ru=void 0;var N=function(g,y){var T=Number(g);return T!==void 0?y[T%100>4&&T%100<20?2:[2,0,1,1,1,2][T%10<5?Math.abs(T)%10:5]]:y[2]},u=function(g,y){var T=Number(g);return T!==void 0?y[T===0?0:T===1||T===2||T===4?1:2]:y[1]},L=function(){function g(){}return g.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},g.prototype.atX0MinutesPastTheHourGt20=function(){return null},g.prototype.commaMonthX0ThroughMonthX1=function(){return null},g.prototype.commaYearX0ThroughYearX1=function(){return null},g.prototype.use24HourTimeFormatByDefault=function(){return!0},g.prototype.everyMinute=function(){return"каждую минуту"},g.prototype.everyHour=function(){return"каждый час"},g.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Произошла ошибка во время генерации описания выражения. Проверьте синтаксис крон-выражения."},g.prototype.atSpace=function(){return"В "},g.prototype.everyMinuteBetweenX0AndX1=function(){return"Каждую минуту с %s по %s"},g.prototype.at=function(){return"В"},g.prototype.spaceAnd=function(){return" и"},g.prototype.everySecond=function(){return"каждую секунду"},g.prototype.everyX0Seconds=function(y){return N(y,["каждую %s секунду","каждые %s секунды","каждые %s секунд"])},g.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды с %s по %s"},g.prototype.atX0SecondsPastTheMinute=function(y){return N(y,["в %s секунду","в %s секунды","в %s секунд"])},g.prototype.everyX0Minutes=function(y){return N(y,["каждую %s минуту","каждые %s минуты","каждые %s минут"])},g.prototype.minutesX0ThroughX1PastTheHour=function(){return"минуты с %s по %s"},g.prototype.atX0MinutesPastTheHour=function(y){return N(y,["в %s минуту","в %s минуты","в %s минут"])},g.prototype.everyX0Hours=function(y){return N(y,["каждый %s час","каждые %s часа","каждые %s часов"])},g.prototype.betweenX0AndX1=function(){return"с %s по %s"},g.prototype.atX0=function(){return"в %s"},g.prototype.commaEveryDay=function(){return", каждый день"},g.prototype.commaEveryX0DaysOfTheWeek=function(y){return N(y,["",", каждые %s дня недели",", каждые %s дней недели"])},g.prototype.commaX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?", со %s по %s":", с %s по %s"},g.prototype.commaAndX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?" и со %s по %s":" и с %s по %s"},g.prototype.first=function(y){return u(y,["первое","первый","первую"])},g.prototype.second=function(y){return u(y,["второе","второй","вторую"])},g.prototype.third=function(y){return u(y,["третье","третий","третью"])},g.prototype.fourth=function(y){return u(y,["четвертое","четвертый","четвертую"])},g.prototype.fifth=function(y){return u(y,["пятое","пятый","пятую"])},g.prototype.commaOnThe=function(y){return y==="2"?", во ":", в "},g.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},g.prototype.lastDay=function(){return"последний день"},g.prototype.commaOnTheLastX0OfTheMonth=function(y){return u(y,[", в последнее %s месяца",", в последний %s месяца",", в последнюю %s месяца"])},g.prototype.commaOnlyOnX0=function(y){return y&&y[0]==="2"?", только во %s":", только в %s"},g.prototype.commaAndOnX0=function(){return", и %s"},g.prototype.commaEveryX0Months=function(y){return N(y,[""," каждые %s месяца"," каждые %s месяцев"])},g.prototype.commaOnlyInMonthX0=function(){return", только %s"},g.prototype.commaOnlyInX0=function(){return", только в %s"},g.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последний день месяца"},g.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последний будний день месяца"},g.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(y){return N(y,[", за %s день до конца месяца",", за %s дня до конца месяца",", за %s дней до конца месяца"])},g.prototype.firstWeekday=function(){return"первый будний день"},g.prototype.weekdayNearestDayX0=function(){return"ближайший будний день к %s числу"},g.prototype.commaOnTheX0OfTheMonth=function(){return", в %s месяца"},g.prototype.commaEveryX0Days=function(y){return N(y,[", каждый %s день",", каждые %s дня",", каждые %s дней"])},g.prototype.commaBetweenDayX0AndX1OfTheMonth=function(y){return y&&y.substring(0,y.indexOf("-"))=="2"?", со %s по %s число месяца":", с %s по %s число месяца"},g.prototype.commaOnDayX0OfTheMonth=function(y){return y&&y[0]=="2"?", во %s число месяца":", в %s число месяца"},g.prototype.commaEveryX0Years=function(y){return N(y,[", каждый %s год",", каждые %s года",", каждые %s лет"])},g.prototype.commaStartingX0=function(){return", начало %s"},g.prototype.daysOfTheWeek=function(){return["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},g.prototype.daysOfTheWeekInCase=function(y){return y===void 0&&(y=2),y==1?["воскресенья","понедельника","вторника","среды","четверга","пятницы","субботы"]:["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"]},g.prototype.monthsOfTheYear=function(){return["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},g.prototype.monthsOfTheYearInCase=function(y){return y==1?["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]:this.monthsOfTheYear()},g}();return l.ru=L,c().locales.ru=new L,n})())})(bEe);var QEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.zh_CN=void 0;var N=function(){function u(){}return u.prototype.setPeriodBeforeTime=function(){return!0},u.prototype.pm=function(){return"下午"},u.prototype.am=function(){return"上午"},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return", 从%s年至%s年"},u.prototype.use24HourTimeFormatByDefault=function(){return!1},u.prototype.everyMinute=function(){return"每分钟"},u.prototype.everyHour=function(){return"每小时"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"生成表达式描述时发生了错误,请检查cron表达式语法。"},u.prototype.atSpace=function(){return"在"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 至 %s 之间的每分钟"},u.prototype.at=function(){return"在"},u.prototype.spaceAnd=function(){return" 和"},u.prototype.everySecond=function(){return"每秒"},u.prototype.everyX0Seconds=function(){return"每隔 %s 秒"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分钟后的第 %s 到 %s 秒"},u.prototype.atX0SecondsPastTheMinute=function(){return"在一分钟后的第 %s 秒"},u.prototype.everyX0Minutes=function(){return"每隔 %s 分钟"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整点后的第 %s 到 %s 分钟"},u.prototype.atX0MinutesPastTheHour=function(){return"在整点后的第 %s 分钟"},u.prototype.everyX0Hours=function(){return"每隔 %s 小时"},u.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之间"},u.prototype.atX0=function(){return"在%s"},u.prototype.commaEveryDay=function(){return", 每天"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每周的每 %s 天"},u.prototype.commaX0ThroughX1=function(){return", %s至%s"},u.prototype.commaAndX0ThroughX1=function(){return", 和%s至%s"},u.prototype.first=function(){return"第一个"},u.prototype.second=function(){return"第二个"},u.prototype.third=function(){return"第三个"},u.prototype.fourth=function(){return"第四个"},u.prototype.fifth=function(){return"第五个"},u.prototype.commaOnThe=function(){return", 限每月的"},u.prototype.spaceX0OfTheMonth=function(){return"%s"},u.prototype.lastDay=function(){return"本月最后一天"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", 限每月的最后一个%s"},u.prototype.commaOnlyOnX0=function(){return", 仅%s"},u.prototype.commaAndOnX0=function(){return", 或者为%s"},u.prototype.commaEveryX0Months=function(){return", 每隔 %s 个月"},u.prototype.commaOnlyInX0=function(){return", 仅限%s"},u.prototype.commaOnlyInMonthX0=function(){return", 仅于%s份"},u.prototype.commaOnlyInYearX0=function(){return", 仅于 %s 年"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", 限每月的最后一天"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 限每月的最后一个工作日"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 限每月最后%s天"},u.prototype.firstWeekday=function(){return"第一个工作日"},u.prototype.weekdayNearestDayX0=function(){return"最接近 %s 号的工作日"},u.prototype.commaOnTheX0OfTheMonth=function(){return", 限每月的%s"},u.prototype.commaEveryX0Days=function(){return", 每隔 %s 天"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 限每月的 %s 至 %s 之间"},u.prototype.commaOnDayX0OfTheMonth=function(){return", 限每月%s"},u.prototype.commaEveryX0Years=function(){return", 每隔 %s 年"},u.prototype.commaStartingX0=function(){return", %s开始"},u.prototype.dayX0=function(){return" %s 号"},u.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},u.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},u}();return l.zh_CN=N,c().locales.zh_CN=new N,n})())})(QEe);var UEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.uk=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"щохвилини"},u.prototype.everyHour=function(){return"щогодини"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"ВІдбулася помилка підчас генерації опису. Перевірта правильність написання cron виразу."},u.prototype.atSpace=function(){return"О "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Щохвилини між %s та %s"},u.prototype.at=function(){return"О"},u.prototype.spaceAnd=function(){return" та"},u.prototype.everySecond=function(){return"Щосекунди"},u.prototype.everyX0Seconds=function(){return"кожні %s секунд"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"з %s по %s секунду"},u.prototype.atX0SecondsPastTheMinute=function(){return"о %s секунді"},u.prototype.everyX0Minutes=function(){return"кожні %s хвилин"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"з %s по %s хвилину"},u.prototype.atX0MinutesPastTheHour=function(){return"о %s хвилині"},u.prototype.everyX0Hours=function(){return"кожні %s годин"},u.prototype.betweenX0AndX1=function(){return"між %s та %s"},u.prototype.atX0=function(){return"о %s"},u.prototype.commaEveryDay=function(){return", щоденно"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожен %s день тижня"},u.prototype.commaX0ThroughX1=function(){return", %s по %s"},u.prototype.commaAndX0ThroughX1=function(){return", та %s по %s"},u.prototype.first=function(){return"перший"},u.prototype.second=function(){return"другий"},u.prototype.third=function(){return"третій"},u.prototype.fourth=function(){return"четвертий"},u.prototype.fifth=function(){return"п'ятий"},u.prototype.commaOnThe=function(){return", в "},u.prototype.spaceX0OfTheMonth=function(){return" %s місяця"},u.prototype.lastDay=function(){return"останній день"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", в останній %s місяця"},u.prototype.commaOnlyOnX0=function(){return", тільки в %s"},u.prototype.commaAndOnX0=function(){return", і в %s"},u.prototype.commaEveryX0Months=function(){return", кожен %s місяць"},u.prototype.commaOnlyInX0=function(){return", тільки в %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", в останній день місяця"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в останній будень місяця"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s днів до останнього дня місяця"},u.prototype.firstWeekday=function(){return"перший будень"},u.prototype.weekdayNearestDayX0=function(){return"будень найближчий до %s дня"},u.prototype.commaOnTheX0OfTheMonth=function(){return", в %s місяця"},u.prototype.commaEveryX0Days=function(){return", кожен %s день"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", між %s та %s днями місяця"},u.prototype.commaOnDayX0OfTheMonth=function(){return", на %s день місяця"},u.prototype.commaEveryX0Years=function(){return", кожні %s роки"},u.prototype.commaStartingX0=function(){return", початок %s"},u.prototype.daysOfTheWeek=function(){return["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"]},u.prototype.monthsOfTheYear=function(){return["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},u}();return l.uk=N,c().locales.uk=new N,n})())})(UEe);var $Ee={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pt_BR=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},u.prototype.at=function(){return"às"},u.prototype.atSpace=function(){return"às "},u.prototype.atX0=function(){return"Às %s"},u.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},u.prototype.betweenX0AndX1=function(){return"entre %s e %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},u.prototype.commaEveryDay=function(){return", a cada dia"},u.prototype.commaEveryX0Days=function(){return", a cada %s dias"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},u.prototype.commaEveryX0Months=function(){return", a cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},u.prototype.commaOnlyInX0=function(L){return L&&L.length>1&&L[1]==="-"?"somente %s":", somente em %s"},u.prototype.commaOnlyOnX0=function(L){return L&&L.length>1&&L[1]==="-"?", somente %s":", somente de %s"},u.prototype.commaAndOnX0=function(){return", e de %s"},u.prototype.commaOnThe=function(L,g){return g==="6"||g==="0"?", no":", na "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},u.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},u.prototype.everyHour=function(){return"a cada hora"},u.prototype.everyMinute=function(){return"a cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},u.prototype.everySecond=function(){return"a cada segundo"},u.prototype.everyX0Hours=function(){return"a cada %s horas"},u.prototype.everyX0Minutes=function(){return"a cada %s minutos"},u.prototype.everyX0Seconds=function(){return"a cada %s segundos"},u.prototype.fifth=function(L){return L==="6"||L==="0"?"quinto":"quinta"},u.prototype.first=function(L){return L==="6"||L==="0"?"primeiro":"primeira"},u.prototype.firstWeekday=function(){return"primeiro dia da semana"},u.prototype.fourth=function(L){return L==="6"||L==="0"?"quarto":"quarta"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},u.prototype.second=function(L){return L==="6"||L==="0"?"segundo":"segunda"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},u.prototype.lastDay=function(){return"o último dia"},u.prototype.third=function(L){return L==="6"||L==="0"?"terceiro":"terceira"},u.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},u.prototype.commaEveryX0Years=function(){return", a cada %s anos"},u.prototype.commaStartingX0=function(){return", iniciando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},u.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},u}();return l.pt_BR=N,c().locales.pt_BR=new N,n})())})($Ee);var PEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pl=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Wystąpił błąd podczas generowania opisu wyrażenia cron. Sprawdź składnię wyrażenia cron."},u.prototype.at=function(){return"O"},u.prototype.atSpace=function(){return"O "},u.prototype.atX0=function(){return"o %s"},u.prototype.atX0MinutesPastTheHour=function(){return"w %s minucie"},u.prototype.atX0SecondsPastTheMinute=function(){return"w %s sekundzie"},u.prototype.betweenX0AndX1=function(){return"od %s do %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s-ego do %s-ego dnia miesiąca"},u.prototype.commaEveryDay=function(){return", co dzień"},u.prototype.commaEveryX0Days=function(){return", co %s dni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", co %s dni tygodnia"},u.prototype.commaEveryX0Months=function(){return", co %s miesięcy"},u.prototype.commaEveryX0Years=function(){return", co %s lat"},u.prototype.commaOnDayX0OfTheMonth=function(){return", %s-ego dnia miesiąca"},u.prototype.commaOnlyInX0=function(){return", tylko %s"},u.prototype.commaOnlyOnX0=function(){return", tylko %s"},u.prototype.commaAndOnX0=function(){return", i %s"},u.prototype.commaOnThe=function(){return", "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", ostatni dzień miesiąca"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ostatni dzień roboczy miesiąca"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni przed ostatnim dniem miesiąca"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", ostatni %s miesiąca"},u.prototype.commaOnTheX0OfTheMonth=function(){return", %s miesiąca"},u.prototype.commaX0ThroughX1=function(){return", od %s do %s"},u.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},u.prototype.everyHour=function(){return"co godzinę"},u.prototype.everyMinute=function(){return"co minutę"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Co minutę od %s do %s"},u.prototype.everySecond=function(){return"co sekundę"},u.prototype.everyX0Hours=function(){return"co %s godzin"},u.prototype.everyX0Minutes=function(){return"co %s minut"},u.prototype.everyX0Seconds=function(){return"co %s sekund"},u.prototype.fifth=function(){return"piąty"},u.prototype.first=function(){return"pierwszy"},u.prototype.firstWeekday=function(){return"pierwszy dzień roboczy"},u.prototype.fourth=function(){return"czwarty"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},u.prototype.second=function(){return"drugi"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},u.prototype.spaceAnd=function(){return" i"},u.prototype.spaceX0OfTheMonth=function(){return" %s miesiąca"},u.prototype.lastDay=function(){return"ostatni dzień"},u.prototype.third=function(){return"trzeci"},u.prototype.weekdayNearestDayX0=function(){return"dzień roboczy najbliższy %s-ego dnia"},u.prototype.commaStartingX0=function(){return", startowy %s"},u.prototype.daysOfTheWeek=function(){return["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},u.prototype.monthsOfTheYear=function(){return["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},u}();return l.pl=N,c().locales.pl=new N,n})())})(PEe);function h4(s,e){return _Ee.toString(s,{locale:e})}const xe={mainDiv:{width:"100%",height:"100%"},periodSelect:{display:"block",width:250},tabContent:{padding:20,height:"calc(100% - 240px)",overflow:"auto"},numberButton:{padding:4,minWidth:40,margin:5},appBar:{color:"white"},warning:{marginLeft:16,color:"red",fontSize:12}},WEe=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],BEe=["January","February","March","April","May","June","July","August","September","October","November","December"];function Tl(s,e){const t=[];if(s==="*"){if(e===24||e===60||e===7)for(let r=0;r1){const n=parseInt(o[1],10);for(let a=parseInt(o[0],10);a<=n;a++)t.push(a)}else t.push(parseInt(i[r],10))}t.sort();for(let r=t.length-1;r>=0;r--)t[r]===t[r+1]&&t.splice(r+1,1);return t}function dl(s,e){if(typeof s!="object"&&(s=[s]),s.length===e)return"*";const t=[];if(!s.length)return"-";s=s.map(o=>parseInt(o,10)),s.sort((o,n)=>o-n);let i=s[0],r=s[0];for(let o=1;othis.props.onChange&&this.props.onChange(this.state.cron),100)}static cron2state(e){e=e.replace(/['"]/g,"").trim();const t=e.split(" ").map(r=>r.trim());let i;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",dates:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:!1,minutes:t[0]||"*",hours:t[1]||"*",dates:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i}static state2cron(e){let t=`${e.minutes} ${e.hours} ${e.dates} ${e.months} ${e.dow}`;return e.seconds!==!1&&(t=`${e.seconds} ${t}`),t}recalcCron(){const e=kt.state2cron(this.state);e!==this.state.cron&&this.setState({cron:e},()=>this.props.onChange&&this.props.onChange(this.state.cron))}onToggle(e,t,i){if(e===!0)this.setCronAttr(t,"*");else if(e===!1)i===60||i===24?this.setCronAttr(t,"0"):this.setCronAttr(t,"1");else{const r=Tl(this.state[t],i),o=r.indexOf(e);o!==-1?r.splice(o,1):(r.push(e),r.sort()),this.setCronAttr(t,dl(r,i))}}getDigitsSelector(e,t){let i=[];if(t===7)i=[1,2,3,4,5,6,0];else if(t===60||t===24)for(let o=0;othis.onToggle(!1,e,t)},h.t("ra_Deselect all")),M.createElement(j.Button,{key:"addall",variant:"contained",style:xe.numberButton,color:"secondary",onClick:()=>this.onToggle(!0,e,t)},h.t("ra_Select all")),M.createElement("div",{key:"all"},i.map(o=>[t===7&&o===4||t===12&&o===7||t===31&&!((o-1)%10)||t===60&&o&&!(o%10)||t===24&&o&&!(o%6)?M.createElement("div",{key:`allInner${o}`,style:{width:"100%"}}):null,M.createElement(j.Button,{key:`_${o}`,variant:r.indexOf(o)!==-1?"contained":"outlined",style:xe.numberButton,color:r.indexOf(o)!==-1?"secondary":"primary",onClick:()=>this.onToggle(o,e,t)},t===7?h.t(WEe[o]):t===12?BEe[o-1]:o)]))]}getPeriodsTab(e,t){const i=this.state[e];let r=i==="*",o=i==null?!1:i.toString().includes("/"),n;if(this.state.modes[e]===null){n=r?"every":o?"everyN":"specific";const c=JSON.parse(JSON.stringify(this.state.modes));return c[e]=n,setTimeout(()=>this.setState({modes:c},()=>this.recalcCron()),100),null}r=this.state.modes[e]==="every",o=this.state.modes[e]==="everyN",n=this.state.modes[e];let a=1;return o&&i&&(a=parseInt(i.replace("*/",""),10)||1),M.createElement("div",null,M.createElement(j.Select,{variant:"standard",style:{...xe.periodSelect,verticalAlign:"bottom"},value:n,onChange:c=>{const l=JSON.parse(JSON.stringify(this.state.modes));if(l[e]=c.target.value,c.target.value==="every")this.setCronAttr(e,"*",l);else if(c.target.value==="everyN"){const N=parseInt((this.state[e]||"").toString().replace("*/",""),10)||1;this.setCronAttr(e,`*/${N}`,l)}else if(c.target.value==="specific"){let N=parseInt((this.state[e]||"").toString().split(",")[0],10)||0;!N&&(e==="months"||e==="dates")&&(N=1),this.setCronAttr(e,dl(N,t),l)}}},M.createElement(j.MenuItem,{key:"every",value:"every"},h.t(`sc_every_${e}`)),M.createElement(j.MenuItem,{key:"everyN",value:"everyN"},h.t(`sc_everyN_${e}`)),M.createElement(j.MenuItem,{key:"specific",value:"specific"},h.t(`sc_specific_${e}`))),o&&M.createElement(j.TextField,{variant:"standard",key:"interval",label:h.t(`sc_${e}`),value:a,slotProps:{htmlInput:{min:1,max:t},inputLabel:{shrink:!0}},onChange:c=>{this.setState({[e]:`*/${c.target.value}`},()=>this.recalcCron())},type:"number",margin:"normal"}),!r&&!o&&this.getDigitsSelector(e,t))}static convertCronToText(e,t){return e.split(" ").includes("-")?h.t("ra_Invalid CRON"):h4(e,t)}setCronAttr(e,t,i){i?e==="seconds"?this.setState({seconds:t,modes:i},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t,modes:i},()=>this.recalcCron()):e==="hours"?this.setState({hours:t,modes:i},()=>this.recalcCron()):e==="dates"?this.setState({dates:t,modes:i},()=>this.recalcCron()):e==="months"?this.setState({months:t,modes:i},()=>this.recalcCron()):e==="dow"?this.setState({dow:t,modes:i},()=>this.recalcCron()):this.setState({modes:i},()=>this.recalcCron()):e==="seconds"?this.setState({seconds:t},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t},()=>this.recalcCron()):e==="hours"?this.setState({hours:t},()=>this.recalcCron()):e==="dates"?this.setState({dates:t},()=>this.recalcCron()):e==="months"?this.setState({months:t},()=>this.recalcCron()):e==="dow"&&this.setState({dow:t},()=>this.recalcCron())}render(){const e=this.state.seconds!==!1?this.state.tab:this.state.tab+1,t=this.state.minutes==="*"||this.state.minutes==="*/1",i=this.state.seconds==="*"||this.state.seconds==="*/1";return M.createElement("div",{style:xe.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)",height:60}},kt.convertCronToText(this.state.cron,this.props.language||"en"),M.createElement("span",{style:xe.warning},i?h.t("ra_warning_every_second"):t?h.t("ra_warning_every_minute"):"")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:!!this.state.seconds,onChange:r=>this.setState({seconds:r.target.checked?"*":!1},()=>this.recalcCron())}),label:h.t("ra_use seconds")}),M.createElement(j.AppBar,{position:"static",sx:{"&.MuiAppBar-root":xe.appBar},color:"secondary"},M.createElement(j.Tabs,{value:this.state.tab,style:xe.appBar,color:"secondary",onChange:(r,o)=>this.setState({tab:o})},this.state.seconds!==!1&&M.createElement(j.Tab,{id:"sc_seconds",label:h.t("sc_seconds")}),M.createElement(j.Tab,{id:"minutes",label:h.t("sc_minutes")}),M.createElement(j.Tab,{id:"hours",label:h.t("sc_hours")}),M.createElement(j.Tab,{id:"dates",label:h.t("sc_dates")}),M.createElement(j.Tab,{id:"months",label:h.t("sc_months")}),M.createElement(j.Tab,{id:"dow",label:h.t("sc_dows")}))),e===0&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("seconds",60)),e===1&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("minutes",60)),e===2&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("hours",24)),e===3&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dates",31)),e===4&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("months",12)),e===5&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dow",7)))}}const gs={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:s=>({color:s.palette.primary.main})};function J3e(s){const{open:e,toggleTranslation:t,noTranslation:i,title:r,fullWidth:o,help:n,maxWidth:a,progress:c,icon:l,applyDisabled:N,applyButton:u,onClose:L,children:g,titleButtonApply:y,titleButtonClose:T,onApply:d,textInput:z,defaultValue:I,overflowHidden:C}=s,[m,A]=f.useState(I||"");f.useEffect(()=>{A(I||"")},[I]);let D=null;return l&&(D=l),M.createElement(j.Dialog,{open:e,maxWidth:a||"md",fullWidth:!!o,disableEscapeKeyDown:!1,onClose:L,sx:{"& .MuiDialog-paper":gs.modalDialog}},r&&M.createElement(j.DialogTitle,null,l?M.createElement(D,{style:gs.titleIcon}):null,r,h.getLanguage()!=="en"&&t?M.createElement(j.IconButton,{size:"large",sx:O.getStyle(s.theme,gs.languageButton,i&&gs.languageButtonActive),onClick:()=>t(),title:h.t("Disable/Enable translation")},M.createElement(uL,null)):null),M.createElement(j.DialogContent,{style:{...gs.content,...C?gs.overflowHidden:void 0,paddingTop:8}},z&&M.createElement(j.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:m,onChange:p=>A(p.target.value)}),g,n?M.createElement("div",null,n):null),M.createElement(j.DialogActions,null,u!==!1&&M.createElement(j.Button,{startIcon:M.createElement(Oe,null),disabled:c||N&&I===m,onClick:()=>d(z?m:""),variant:"contained",color:"primary"},h.t(y||"ra_Ok")),M.createElement(j.Button,{color:"grey",onClick:L,disabled:c,variant:"contained",startIcon:M.createElement(Ne,null)},h.t(T||"ra_Cancel"))))}function JEe(){const s=BL();return[...s.breakpoints.keys].reverse().reduce((t,i)=>{const r=j.useMediaQuery(s.breakpoints.up(i));return!t&&r?i:t},null)||"xs"}function Io(){return s=>function(t){const i=JEe();return M.createElement(s,{...t,width:i})}}function REe(s){const[e,t]=M.useState(s.input||s.value||""),[i,r]=M.useState("");return M.createElement(j.Dialog,{open:!0,onClose:()=>s.onClose(null),"aria-labelledby":"form-dialog-title",fullWidth:s.fullWidth!==void 0?s.fullWidth:!1},M.createElement(j.DialogTitle,{id:"form-dialog-title"},s.titleText),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,s.promptText),M.createElement(j.TextField,{variant:"standard",autoFocus:!0,margin:"dense",error:!!i,helperText:i===!0||!i?"":i,value:e,label:s.labelText||"",type:s.type||"text",onKeyUp:o=>o.code==="Enter"&&e&&s.onClose(e),onChange:o=>{let n="";s.verify&&(n=!s.verify(o.target.value)),s.rule?t(s.rule(o.target.value)):t(o.target.value),r(n)},fullWidth:!0})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!e||!!i,onClick:()=>s.onClose(e),color:"primary",startIcon:M.createElement(Oe,null)},s.applyText||h.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>s.onClose(null),startIcon:M.createElement(Ne,null)},s.cancelText||h.t("ra_Cancel"))))}const FEe=Io()(REe);function $n(s){return M.createElement("svg",{onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 486 486",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),xmlns:"http://www.w3.org/2000/svg",className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m414.928297,149.715165 c-2.639376,-57.222555 -35.669446,-106.505345 -83.345894,-132.039151 c-3.758948,-2.049842 -7.636885,-3.932022 -11.590542,-5.641125 c-19.303146,-8.394083 -40.607459,-13.050853 -63.004303,-13.050853 c-84.113909,0 -152.791790,65.703174 -157.718988,148.605566 l0.043268,-0.010816 v0.281245 c0,3.061243 -0.146031,16.750306 -0.146031,16.750306 l-2.352723,5.224668 h15.744315 c5.916964,-19.384275 24.078904,-32.635245 45.513024,-32.635245 c26.231510,0 47.573684,21.915481 47.573684,48.146991 c0,26.226103 -21.342174,47.146409 -47.573684,47.146409 c-25.111939,0 -45.734774,-19.735831 -47.443879,-44.658471 h-18.789334 c-0.400232,0 -0.778832,0.638209 -1.162839,0.584122 l-19.762875,55.199753 c-2.774590,7.696379 2.926030,16.214860 11.103771,16.214860 h17.020735 l-0.129805,87.899899 c0,17.356066 14.073071,31.174935 31.429136,31.174935 h56.205745 v82.648189 c0,12.877778 12.937273,22.580734 25.815051,22.580734 h144.597825 c12.877778,0 23.429877,-9.702955 23.429877,-22.580734 v-166.037352 c0,-22.645636 5.976457,-44.761234 16.561008,-64.789128 c11.055093,-20.925714 17.523731,-44.620611 18.129489,-69.792045 c0.027042,-1.260193 0.037858,-2.552839 0.037858,-3.845485 c0,-2.466302 -0.070310,-4.938014 -0.183890,-7.377273 zm-155.393308,-11.731165 h-13.456494 v13.559257 c0,4.732489 -4.267352,8.567157 -8.999842,8.567157 c-4.727079,0 -8.999842,-3.834667 -8.999842,-8.567157 v-13.559257 h-12.185483 c-4.732489,0 -8.567157,-4.267352 -8.567157,-8.999842 c0,-4.727079 3.834667,-8.999842 8.567157,-8.999842 h12.185483 v-12.077311 c0,-4.732489 4.272762,-8.567157 8.999842,-8.567157 c4.732489,0 8.999842,3.834667 8.999842,8.567157 v12.077311 h13.456494 c4.727079,0 8.567157,4.272762 8.567157,8.999842 c0,4.732489 -3.840077,8.999842 -8.567157,8.999842 zm0,0"}),M.createElement("path",{fill:"currentColor",d:"m187.695312 285.875c3.9375-3.980469 6.414063-9.449219 6.414063-15.523438 0-12.128906-9.855469-21.980468-21.984375-21.980468-6.007812 0-11.472656 2.410156-15.457031 6.347656-4.023438 4.003906-6.523438 9.539062-6.523438 15.636719 0 12.125 9.855469 21.980469 21.980469 21.980469 6.078125 0 11.585938-2.476563 15.570312-6.460938zm0 0"}))}function Ws(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m524,128l-192,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,288c0,26.51 21.49,48 48,48l416,0c26.51,0 48,-21.49 48,-48l0,-224c0,-26.51 -21.49,-48 -48,-48z"}))}function fr(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m631.75617,292.093l-72.424,124.155a63.997,63.997 0 0 1 -55.281,31.752l-399.964,0c-18.523,0 -30.064,-20.093 -20.731,-36.093l72.424,-124.155a64,64 0 0 1 55.282,-31.752l399.964,0c18.523,0 30.064,20.093 20.73,36.093zm-420.694,-68.093l328,0l0,-48c0,-26.51 -21.49,-48 -48,-48l-160,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,278.046l69.077,-118.418c17.137,-29.378 48.912,-47.628 82.923,-47.628z"}))}function dM(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))}var GEe=s=>typeof s!="string"?{}:s.split(/ ?; ?/).reduce((e,t)=>{const[i,r]=t.split(/ ?: ?/).map((o,n)=>n===0?o.replace(/\s+/g,""):o.trim());if(i&&r){const o=i.replace(/(\w)-(\w)/g,(a,c,l)=>`${c}${l.toUpperCase()}`);let n=r.trim();Number.isNaN(Number(r))||(n=Number(r)),e[i.startsWith("-")?i:o]=n}return e},{});function HEe(s=6){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let i=s;i>0;--i)t+=e[Math.round(Math.random()*(e.length-1))];return t}var VEe=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],Dl={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function ZEe(s,e){var o;const{key:t,level:i,...r}=e;switch(s.nodeType){case 1:return f.createElement(KEe(s.nodeName),XEe(s,t),hl(s.childNodes,i,r));case 3:{const n=((o=s.nodeValue)==null?void 0:o.toString())??"";if(!r.allowWhiteSpaces&&/^\s+$/.test(n)&&!/[\u00A0\u202F]/.test(n))return null;if(!s.parentNode)return n;const a=s.parentNode.nodeName.toLowerCase();return VEe.includes(a)?(/\S/.test(n)&&console.warn(`A textNode is not allowed inside '${a}'. Your text "${n}" will be ignored`),null):n}case 8:return null;case 11:return hl(s.childNodes,i,e);default:return null}}function XEe(s,e){const t={key:e};if(s instanceof Element){const i=s.getAttribute("class");i&&(t.className=i),[...s.attributes].forEach(r=>{switch(r.name){case"class":break;case"style":t[r.name]=GEe(r.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":t[Dl[r.name]||r.name]=!0;break;default:t[Dl[r.name]||r.name]=r.value}})}return t}function hl(s,e,t){const i=[...s].map((r,o)=>Vr(r,{...t,index:o,level:e+1})).filter(Boolean);return i.length?i:null}function KEe(s){return/[a-z]+[A-Z]+[a-z]+/.test(s)?s:s.toLowerCase()}function z4(s,e={}){return typeof s=="string"?qEe(s,e):s instanceof Node?Vr(s,e):null}function Vr(s,e={}){if(!s||!(s instanceof Node))return null;const{actions:t=[],index:i=0,level:r=0,randomKey:o}=e;let n=s,a=`${r}-${i}`;const c=[];return o&&r===0&&(a=`${HEe()}-${a}`),Array.isArray(t)&&t.forEach(l=>{l.condition(n,a,r)&&(typeof l.pre=="function"&&(n=l.pre(n,a,r),n instanceof Node||(n=s)),typeof l.post=="function"&&c.push(l.post(n,a,r)))}),c.length?c:ZEe(n,{key:a,level:r,...e})}function qEe(s,e={}){if(!s||typeof s!="string")return null;const{includeAllNodes:t=!1,nodeOnly:i=!1,selector:r="body > *",type:o="text/html"}=e;try{const a=new DOMParser().parseFromString(s,o);if(t){const{childNodes:l}=a.body;return i?l:[...l].map(N=>Vr(N,e))}const c=a.querySelector(r)||a.body.childNodes[0];if(!(c instanceof Node))throw new TypeError("Error parsing input");return i?c:Vr(c,e)}catch{}return null}var efe=Object.defineProperty,tfe=(s,e,t)=>e in s?efe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,yr=(s,e,t)=>tfe(s,typeof e!="symbol"?e+"":e,t),zl="react-inlinesvg",sfe=10,se={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function ife(s){return s[Math.floor(Math.random()*s.length)]}function pi(){var s;return!!(typeof window<"u"&&((s=window.document)!=null&&s.createElement))}function rfe(){return Mfe()&&typeof window<"u"&&window!==null}function ofe(s,...e){const t={};for(const i in s)({}).hasOwnProperty.call(s,i)&&(e.includes(i)||(t[i]=s[i]));return t}function nfe(s){const e="abcdefghijklmnopqrstuvwxyz",i=`${e}${e.toUpperCase()}1234567890`;let r="";for(let o=0;o299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(o=>r.includes(o)))throw new Error(`Content type isn't valid: ${r}`);return t.text()}function afe(s=1){return new Promise(e=>{setTimeout(e,s*1e3)})}function Mfe(){if(!document)return!1;const s=document.createElement("div");s.innerHTML="";const e=s.firstChild;return!!e&&e.namespaceURI==="http://www.w3.org/2000/svg"}var cfe=class{constructor(){yr(this,"cacheApi"),yr(this,"cacheStore"),yr(this,"subscribers",[]),yr(this,"isReady",!1),this.cacheStore=new Map;let s=zl,e=!1;pi()&&(s=window.REACT_INLINESVG_CACHE_NAME??zl,e=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),e?caches.open(s).then(t=>{this.cacheApi=t}).catch(t=>{console.error(`Failed to open cache: ${t.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const t=[...this.subscribers];this.subscribers.length=0,t.forEach(i=>{try{i()}catch(r){console.error(`Error in CacheStore subscriber callback: ${r.message}`)}})}):this.isReady=!0}onReady(s){this.isReady?s():this.subscribers.push(s)}async get(s,e){var t;return await(this.cacheApi?this.fetchAndAddToPersistentCache(s,e):this.fetchAndAddToInternalCache(s,e)),((t=this.cacheStore.get(s))==null?void 0:t.content)??""}set(s,e){this.cacheStore.set(s,e)}isCached(s){var e;return((e=this.cacheStore.get(s))==null?void 0:e.status)===se.LOADED}async fetchAndAddToInternalCache(s,e){const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToInternalCache(s,e)});return}if(!(t!=null&&t.content)){this.cacheStore.set(s,{content:"",status:se.LOADING});try{const i=await w4(s,e);this.cacheStore.set(s,{content:i,status:se.LOADED})}catch(i){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),i}}}async fetchAndAddToPersistentCache(s,e){var r,o,n;const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADED)return;if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToPersistentCache(s,e)});return}this.cacheStore.set(s,{content:"",status:se.LOADING});const i=await((r=this.cacheApi)==null?void 0:r.match(s));if(i){const a=await i.text();this.cacheStore.set(s,{content:a,status:se.LOADED});return}try{await((o=this.cacheApi)==null?void 0:o.add(new Request(s,e)));const a=await((n=this.cacheApi)==null?void 0:n.match(s)),c=await(a==null?void 0:a.text())??"";this.cacheStore.set(s,{content:c,status:se.LOADED})}catch(a){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),a}}async handleLoading(s,e){var t;for(let i=0;i({[s]:e}))}async delete(s){this.cacheApi&&await this.cacheApi.delete(s),this.cacheStore.delete(s)}async clear(){if(this.cacheApi){const s=await this.cacheApi.keys();await Promise.allSettled(s.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function wl(s){const e=f.useRef(void 0);return f.useEffect(()=>{e.current=s}),e.current}function ufe(s){const{baseURL:e,content:t,description:i,handleError:r,hash:o,preProcessor:n,title:a,uniquifyIDs:c=!1}=s;try{const l=lfe(t,n),N=z4(l,{nodeOnly:!0});if(!N||!(N instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const u=C4(N,{baseURL:e,hash:o,uniquifyIDs:c});if(i){const L=u.querySelector("desc");L!=null&&L.parentNode&&L.parentNode.removeChild(L);const g=document.createElementNS("http://www.w3.org/2000/svg","desc");g.innerHTML=i,u.prepend(g)}if(typeof a<"u"){const L=u.querySelector("title");if(L!=null&&L.parentNode&&L.parentNode.removeChild(L),a){const g=document.createElementNS("http://www.w3.org/2000/svg","title");g.innerHTML=a,u.prepend(g)}}return u}catch(l){return r(l)}}function lfe(s,e){return e?e(s):s}function C4(s,e){const{baseURL:t="",hash:i,uniquifyIDs:r}=e,o=["id","href","xlink:href","xlink:role","xlink:arcrole"],n=["href","xlink:href"],a=(c,l)=>n.includes(c)&&(l?!l.includes("#"):!1);return r&&[...s.children].forEach(c=>{var l;if((l=c.attributes)!=null&&l.length){const N=Object.values(c.attributes).map(u=>{const L=u,g=/url\((.*?)\)/.exec(u.value);return g!=null&&g[1]&&(L.value=u.value.replace(g[0],`url(${t}${g[1]}__${i})`)),L});o.forEach(u=>{const L=N.find(g=>g.name===u);L&&!a(u,L.value)&&(L.value=`${L.value}__${i}`)})}return c.children.length?C4(c,e):c}),s}var Us;function Nfe(s){const{cacheRequests:e=!0,children:t=null,description:i,fetchOptions:r,innerRef:o,loader:n=null,onError:a,onLoad:c,src:l,title:N,uniqueHash:u}=s,[L,g]=f.useReducer((G,H)=>({...G,...H}),{content:"",element:null,isCached:e&&Us.isCached(s.src),status:se.IDLE}),{content:y,element:T,isCached:d,status:z}=L,I=wl(s),C=wl(L),m=f.useRef(u??nfe(8)),A=f.useRef(!1),D=f.useRef(!1),p=f.useCallback(G=>{A.current&&(g({status:G.message==="Browser does not support SVG"?se.UNSUPPORTED:se.FAILED}),a==null||a(G))},[a]),_=f.useCallback((G,H=!1)=>{A.current&&g({content:G,isCached:H,status:se.LOADED})},[]),x=f.useCallback(async()=>{const G=await w4(l,r);_(G)},[r,_,l]),P=f.useCallback(()=>{try{const G=ufe({...s,handleError:p,hash:m.current,content:y}),H=z4(G);if(!H||!f.isValidElement(H))throw new Error("Could not convert the src to a React element");g({element:H,status:se.READY})}catch(G){p(G)}},[y,p,s]),v=f.useCallback(async()=>{const G=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(l);let H;if(G?H=G[1]?window.atob(G[2]):decodeURIComponent(G[2]):l.includes("{A.current&&g({content:"",element:null,isCached:!1,status:se.LOADING})},[]);f.useEffect(()=>{if(A.current=!0,!(!pi()||D.current)){try{if(z===se.IDLE){if(!rfe())throw new Error("Browser does not support SVG");if(!l)throw new Error("Missing src");ee()}}catch(G){p(G)}return D.current=!0,()=>{A.current=!1}}},[]),f.useEffect(()=>{if(!(!pi()||!I)&&I.src!==l){if(!l){p(new Error("Missing src"));return}ee()}},[p,ee,I,l]),f.useEffect(()=>{z===se.LOADED&&P()},[z,P]),f.useEffect(()=>{!pi()||!I||I.src!==l||(I.title!==N||I.description!==i)&&P()},[i,P,I,l,N]),f.useEffect(()=>{if(C)switch(z){case se.LOADING:{C.status!==se.LOADING&&v();break}case se.LOADED:{C.status!==se.LOADED&&P();break}case se.READY:{C.status!==se.READY&&(c==null||c(l,d));break}}},[v,P,d,c,C,l,z]);const ue=ofe(s,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return pi()?T?f.cloneElement(T,{ref:o,...ue}):[se.UNSUPPORTED,se.FAILED].includes(z)?t:n:n}function Pn(s){Us||(Us=new cfe);const{loader:e}=s,[t,i]=f.useState(Us.isReady);return f.useEffect(()=>{t||Us.onReady(()=>{i(!0)})},[t]),t?M.createElement(Nfe,{...s}):e}function Lfe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"}))}function R3e(s){let e;const t=s==null?void 0:s._id;return t?(t.startsWith("_design/")||t==="system"?e=M.createElement(kr,{className:"iconOwn"}):t==="0_userdata"||t==="0_userdata.0"?e=M.createElement(wg,{className:"iconOwn"}):t==="alias"||t==="alias.0"?e=M.createElement(Lfe,{className:"iconOwn"}):t==="system.adapter"?e=M.createElement(kr,{className:"iconOwn"}):t==="system.group"?e=M.createElement(ga,{className:"iconOwn"}):t==="system.user"?e=M.createElement(Na,{className:"iconOwn"}):t==="system.host"?e=M.createElement(La,{className:"iconOwn"}):t.endsWith(".connection")||t.endsWith(".connected")?e=M.createElement(Qs,{className:"iconOwn"}):t.endsWith(".info")?e=M.createElement(la,{className:"iconOwn"}):(s==null?void 0:s.type)==="meta"&&(e=M.createElement(Kr,{className:"iconOwn"})),e||null):null}function F3e(s,e){e=e||".";let t="";const i=s==null?void 0:s.common;if(i){const r=i.icon;if(r)if(r.startsWith("data:image/"))t=r;else if(r.includes(".")){let o;s.type==="instance"||s.type==="adapter"?t=`${e}/adapter/${i.name}/${r}`:s._id&&s._id.startsWith("system.adapter.")?(o=s._id.split(".",3),r[0]==="/"?o[2]+=r:o[2]+=`/${r}`,t=`${e}/adapter/${o[2]}`):(o=s._id.split(".",2),r[0]==="/"?o[0]+=r:o[0]+=`/${r}`,t=`${e}/adapter/${o[0]}`)}else return null}return t||null}const gfe=window.location.hostname.endsWith("iobroker.in"),Cl=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);function me(s){var e,t,i;if(s.src){if(typeof s.src=="string"){if(s.src.length<3)return s.sx?M.createElement(j.Box,{component:"span",sx:s.sx,title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src):M.createElement("span",{title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src);if(s.src.startsWith("data:image/svg"))return M.createElement(Pn,{title:s.title||void 0,src:s.src,className:O.clsx(s.className,"iconOwn"),width:((e=s.style)==null?void 0:e.width)||28,height:((t=s.style)==null?void 0:t.height)||((i=s.style)==null?void 0:i.width)||28,style:s.style||void 0});if(gfe&&!s.src.startsWith("http://")&&!s.src.startsWith("https://")){let r=s.src;return r.startsWith("./")?r=Cl+r.substring(2):r.startsWith("/")||(r=Cl+r),s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)})}return s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError})}return s.src}return null}const Bt={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}},we={images:["png","jpg","svg","jpeg","bmp","gif","apng","avif","webp","ico"],code:["js","json","json5","md"],txt:["log","txt","html","css","xml","ics"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};function Il(s,e){let t="";const i=new Uint8Array((s==null?void 0:s.data)||s),r=i.byteLength;for(let o=0;o{let o="";r.file!==void 0&&(o=r.file);const n={copyPossible:this.state.copyPossible,ext:this.state.ext};if(o.type==="Buffer")if(i.toLowerCase().endsWith(".json5")){n.ext="json5",n.copyPossible=!0;try{o=atob(Il(o,!0))}catch{console.error("Cannot convert base64 to string"),o=""}}else{const a=O.detectMimeType(Il(o));a&&(n.ext=a,n.copyPossible=we.code.includes(a)||we.txt.includes(a))}n.copyPossible&&(n.ext&&we.txt.includes(n.ext)?(n.text=o,n.editingValue=o):n.ext&&we.code.includes(n.ext)&&(n.code=o,n.editingValue=o)),this.setState(n)}).catch(r=>window.alert(`Cannot read file: ${r}`))}}componentDidMount(){this.readFile();const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}componentWillUnmount(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}onFileChanged=(e,t,i)=>{this.state.changed||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.timeout=null,i===null?window.alert("Show file was deleted!"):this.state.text!==null||this.state.code!==null?this.readFile():this.setState({forceUpdate:Date.now()})},300))};getEditorOrViewer(){return M.createElement(j.TextField,{variant:"standard",style:Bt.textarea,multiline:!0,value:this.state.editingValue||this.state.code||this.state.text,slotProps:{htmlInput:{readOnly:!this.state.editing}}})}getContent(){return this.state.ext&&we.images.includes(this.state.ext)?this.state.imgError?M.createElement(dM,{style:{...Bt.img,...this.props.getStyleBackgroundImage()}}):M.createElement(me,{onError:e=>{e.target.onerror=null,this.setState({imgError:!0})},style:{...Bt.img,...this.props.getStyleBackgroundImage()},src:`${this.props.href}?ts=${this.state.forceUpdate}`,alt:this.props.href}):this.state.ext&&we.audio.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("audio",{style:{width:"100%"},src:this.props.href,controls:!0})):this.state.ext&&we.video.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("video",{style:{width:"100%",height:"100%"},controls:!0},M.createElement("source",{src:this.props.href,type:`video/${this.state.ext}}`}))):this.state.code!==null||this.state.text!==null||this.state.editing?this.getEditorOrViewer():null}onSave(){}render(){return M.createElement(j.Dialog,{sx:{"&.MuiDialog-scrollPaper":Bt.dialog,"& .MuiDialog-paper":Bt.paper},scroll:"paper",open:!!this.props.href,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"ar_dialog_file_view_title"},M.createElement("div",{style:Bt.dialogTitle},M.createElement(j.DialogTitle,{id:"ar_dialog_file_view_title"},`${this.props.t(this.state.editing?"Edit":"View")}: ${this.props.href}`),this.state.ext&&we.images.includes(this.state.ext)&&M.createElement("div",null,M.createElement(j.IconButton,{size:"large",color:"inherit",onClick:this.props.setStateBackgroundImage},M.createElement(ca,null)))),M.createElement(j.DialogContent,{style:Bt.content},this.getContent()),M.createElement(j.DialogActions,null,this.state.copyPossible?M.createElement(j.Button,{color:"grey",onClick:e=>{e.stopPropagation(),e.preventDefault(),O.copyToClipboard(this.state.text||this.state.code||"")},startIcon:M.createElement(rg,null)},this.props.t("Copy content")):null,this.state.editing?M.createElement(j.Button,{color:"grey",disabled:this.state.editingValue===this.state.code||this.state.editingValue===this.state.text,variant:"contained",onClick:()=>this.onSave(),startIcon:M.createElement(cn,null)},this.props.t("Save")):null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"primary",startIcon:M.createElement(Ne,null)},this.props.t("Close"))))}}const yfe=Io()(jfe),js=32,Lt=32,Tr=120,pl=64,Al="Not found",dr={all:jN,images:jg,code:ua,txt:Lg,audio:FL,video:Eg},Y={root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - 8px)",overflowX:"hidden",overflowY:"auto",padding:8},filesDivHint:{position:"absolute",bottom:0,left:20,opacity:.7,fontStyle:"italic",fontSize:12},filesDivTable:{height:"calc(100% - 56px)"},filesDivTile:{height:`calc(100% - ${48*2+8}px)`,display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:`0 0 ${pl}px`},itemTile:s=>({position:"relative",userSelect:"none",cursor:"pointer",height:Tr,width:pl,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:"4px",borderRadius:"4px","&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:s=>({width:"100%",height:Tr-32-16-8,display:"block",pl:1,color:s.palette.secondary.main||"#fbff7d"}),itemFolderIconBack:s=>({position:"absolute",top:22,left:18,zIndex:1,color:(s.palette.mode==="dark","#FFF")}),itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:Tr-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:Tr-32-16-8,display:"block",objectFit:"contain"},itemSelected:s=>({background:s.palette.primary.main,color:O.invertColor(s.palette.primary.main,!0)}),itemTable:s=>({userSelect:"none",cursor:"pointer",height:js,display:"inline-flex",lineHeight:`${js}px`,"&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameTable:{display:"inline-block",pl:"10px",fontSize:"1rem",verticalAlign:"top",flexGrow:1,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden","@media screen and (max-width: 500px)":{textAlign:"end",direction:"rtl"}},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right",whiteSpace:"nowrap"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemNoImageTable:{marginTop:6},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:s=>({marginTop:"1px",marginLeft:"8px",display:"inline-block",width:30,height:30,color:s.palette.secondary.main||"#fbff7d"}),itemDownloadButtonTable:s=>({display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"middle",textAlign:"center",padding:0,borderRadius:`${Lt/2}px`,"&:hover":{backgroundColor:s.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"},"& span":{pt:"9px"},"& svg":{width:14,height:14,fontSize:"1rem",mt:"-3px",verticalAlign:"middle",color:s.palette.mode==="dark"?"#EEE":"#111"}}),itemDownloadEmptyTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,padding:0},itemAclButtonTable:{width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:s=>({m:"20px",border:"3px dashed grey",borderRadius:"30px",width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:s.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"}),uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",height:"30%",width:"100%",margin:"auto",opacity:.3},menuButtonExpertActive:{color:"#c00000"},menuButtonRestrictActive:{color:"#c05000"},pathDiv:s=>({display:"flex",width:"calc(100% - 16px)",ml:1,mr:1,textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap",backgroundColor:s.palette.secondary.main,color:s.palette.secondary.contrastText,borderRadius:"4px 4px 0 0"}),pathDivInput:{width:"100%"},pathDivBreadcrumbDir:s=>({pl:"2px",pr:"2px",cursor:"pointer",color:"white","&:hover":{backgroundColor:s.palette.primary.main,color:s.palette.primary.contrastText}}),pathDivBreadcrumbSelected:{color:"#FFF"},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},specialFolder:s=>({color:s.palette.mode==="dark"?"#229b0f":"#5dd300"}),tooltip:{pointerEvents:"none"}},mt="0_userdata.0";function ys(s){const e=(s||"").split("/");return e.length&&e.pop(),e.join("/")}function Vo(s){const e=O.getFileExtension(s);return!!(e!=null&&e.toLowerCase().match(/[a-z]+/)&&e.length<5)}const te="Table",Zo="Tile";function ml(s,e){return s.folder&&e.folder?s.name>e.name?1:s.namee.name?1:s.name{var l;return c.startsWith(`${this.limitToPath}/`)||c===this.limitToPath||((l=this.limitToPath)==null?void 0:l.startsWith(`${c}/`))}))}catch{i=[]}let r;this.props.showViewTypeButton?r=this.localStorage.getItem("files.viewType")||te:r=te;let o=this.props.selected||this.localStorage.getItem("files.selected")||mt,n;if(e.restrictToFolder){o=e.restrictToFolder,n=e.restrictToFolder;const c=e.restrictToFolder.split("/");i=[];let l="";for(let N=0;N{if(this.state.viewType===te&&!this.findItem(this.state.selected)){const t=this.state.selected.split("/");for(;t.length&&!this.findItem(t.join("/"));)t.pop();let i;t.length?i=t.join("/"):i=mt,this.setState({selected:i,path:i,pathFocus:!1},()=>this.scrollToSelected())}else this.scrollToSelected();this.initialReadFinished=!0})}scrollToSelected(){if(this.mounted){const e=document.getElementById(this.state.selected);e==null||e.scrollIntoView()}}async componentDidMount(){this.mounted=!0,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`)),this.supportSubscribes=await this.props.socket.checkFeatureSupported("BINARY_STATE_EVENT"),this.supportSubscribes&&await this.props.socket.subscribeFiles("*","*",this.onFileChange)}componentWillUnmount(){this.supportSubscribes&&this.props.socket.unsubscribeFiles("*","*",this.onFileChange),this.mounted=!1,this.browseList=null,this.browseListRunning=!1,Object.values(this._tempTimeout).forEach(e=>e&&clearTimeout(e)),this._tempTimeout={}}browseFoldersCb(e,t,i){if(!(e!=null&&e.length))i(t);else{const r=e.shift();r?this.browseFolder(r,t).catch(o=>console.error(`Cannot read folder ${r}: ${o.message}`)).then(()=>{setTimeout(()=>this.browseFoldersCb(e,t,i),0)}):setTimeout(()=>this.browseFoldersCb(e,t,i),0)}}browseFolders(e,t){let i;return t?i=t:(i={},Object.keys(this.state.folders).forEach(r=>i[r]=this.state.folders[r])),e!=null&&e.length?new Promise(r=>{this.browseFoldersCb(e,i,r)}):Promise.resolve(i)}readDirSerial(e,t){return new Promise((i,r)=>{this.browseList&&(this.browseList.push({resolve:i,reject:r,adapter:e,relPath:t}),this.browseListRunning||this.processBrowseList())})}processBrowseList(e=0){!this.browseListRunning&&this.browseList&&this.browseList.length&&(this.browseListRunning=!0,this.browseList.length>10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.resolve;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}).catch(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.reject;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}))}async browseFolder(e,t,i,r){let o;if(t?o=t:(o={},Object.keys(this.state.folders).forEach(u=>{o[u]=this.state.folders[u]})),o[e]&&!r)return i?Promise.resolve(o):new Promise((u,L)=>{Promise.all(o[e].filter(g=>g.folder).map(g=>this.browseFolder(g.id,o,!0).catch(()=>{}))).then(()=>u(o)).catch(g=>L(new Error(g)))});if(!e||e==="/"){try{let u=await this.props.socket.readMetaItems();const L=[];let g=null;if(this.state.restrictToFolder){const T=this.state.restrictToFolder.split("/")[0];u=u.filter(d=>d._id===T)}else this.state.expertMode||(u=u.filter(T=>!T._id.endsWith(".admin")));const y=u.findIndex(T=>T._id==="system.meta.uuid");if(y!==-1&&u.splice(y,1),u.forEach(T=>{if(this.limitToObjectID&&this.limitToObjectID!==T._id)return;const d={id:T._id,name:T._id,title:T.common&&T.common.name||T._id,meta:!0,from:T.from,ts:T.ts,color:T.common&&T.common.color,icon:T.common&&T.common.icon,folder:!0,acl:T.acl,level:0};d.id===mt?g=d:L.push(d)}),L.sort((T,d)=>T.id>d.id?1:T.idT.folder).map(T=>this.browseFolder(T.id,o,!0).catch(()=>{}))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read meta items: ${L.message}`),o[e||"/"]=[]}return o}const n=e.split("/"),a=n.length,c=n.shift(),l=n.join("/");let N;try{N=await this.readDirSerial(c||"",l)}catch(u){if(u==="Not exists"&&c==="0_userdata.0")N=[];else throw u}try{const u=[];if(N.forEach(L=>{var y;const g={id:`${e}/${L.file}`,ext:O.getFileExtension(L.file),folder:L.isDir,name:L.file,size:(y=L.stats)==null?void 0:y.size,modified:L.modifiedAt,acl:L.acl,level:a};this.state.restrictToFolder?(g.folder&&(g.id.startsWith(`${this.state.restrictToFolder}/`)||g.id===this.state.restrictToFolder||this.state.restrictToFolder.startsWith(`${g.id}/`))||g.id.startsWith(`${this.state.restrictToFolder}/`))&&u.push(g):this.limitToPath?(g.folder&&(g.id.startsWith(`${this.limitToPath}/`)||g.id===this.limitToPath||this.limitToPath.startsWith(`${g.id}/`))||g.id.startsWith(`${this.limitToPath}/`))&&u.push(g):u.push(g)}),u.sort(ml),o[e]=u,!i)return Promise.all(u.filter(L=>L.folder).map(L=>this.browseFolder(L.id,o,!0))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read ${c}${l?`/${l}`:""}: ${L==null?void 0:L.message}`),o[e]=[]}return o}toggleFolder(e,t){t==null||t.stopPropagation();const i=[...this.state.expanded],r=i.indexOf(e.id);r===-1?(i.push(e.id),i.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(i)),e.temp?this.setState({expanded:i}):this.browseFolder(e.id).then(o=>this.setState({expanded:i,folders:o})).catch(o=>window.alert(o===Al?this.props.t('ra_Cannot find "%s"',e.id):this.props.t('ra_Cannot read "%s"',e.id)))):(i.splice(r,1),this.localStorage.setItem("files.expanded",JSON.stringify(i)),this.setState({expanded:i}))}onFileChange=(e,t,i)=>{const r=`${e}/${t}`,o=r.lastIndexOf("/"),n=r.substring(0,o);console.log(`File changed ${r}[${i}]`),this.state.folders[n]&&(this._tempTimeout[n]&&clearTimeout(this._tempTimeout[n]),this._tempTimeout[n]=setTimeout(()=>{delete this._tempTimeout[n],this.browseFolder(n,null,!1,!0).then(a=>this.setState({folders:a})).catch(a=>console.error(`Cannot read folder: ${a.message}`))},300))};changeFolder(e,t){var r;e==null||e.stopPropagation(),this.lastSelect=Date.now();let i=t||ys(this.state.currentDir);if(i==="/"&&(i=""),this.state.viewType==="Tile"&&((r=this.refFileDiv.current)!=null&&r.scrollTop)&&(this.scrollPositions[this.state.currentDir]=this.refFileDiv.current.scrollTop),this.localStorage.setItem("files.currentDir",i),t&&e&&(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)){this.setState({selected:i});return}if(i&&!this.state.folders[i]){this.browseFolder(i).then(o=>this.setState({folders:o,path:i,currentDir:i,selected:i,pathFocus:!1},()=>this.props.onSelect&&this.props.onSelect(""))).catch(o=>console.error(`Cannot read folder: ${o.message}`));return}this.setState({currentDir:i,selected:i,path:i,pathFocus:!1},()=>{if(this.props.onSelect&&this.props.onSelect(""),this.state.viewType==="Tile"&&this.scrollPositions[this.state.currentDir]){const o=this.scrollPositions[this.state.currentDir];delete this.scrollPositions[this.state.currentDir],this.refFileDiv.current&&(this.refFileDiv.current.scrollTop=o)}})}select(e,t,i){t&&t.stopPropagation(),this.lastSelect=Date.now(),this.localStorage.setItem("files.selected",e),this.setState({selected:e,path:e,pathFocus:!1},()=>{if(this.props.onSelect){const r=O.getFileExtension(e);(!this.props.filterFiles||r&&this.props.filterFiles.includes(r))&&(!this.state.filterByType||r&&we[this.state.filterByType].includes(r))?this.props.onSelect(e,!1,!!this.state.folders[e]):this.props.onSelect("")}i&&i()})}getText(e){if(e)return typeof e=="object"?e[this.props.lang]||e.en||void 0:e}renderFolder(e,t){var c;if(this.state.filterEmpty&&!((c=this.state.folders[e.id])!=null&&c.length)&&e.id!==mt&&!e.temp)return null;const i=t?fr:Ws,r=this.state.viewType===te?e.level*this.levelPadding:0,o=e.name===mt,n=o||e.name==="vis.0"||e.name==="vis-2.0",a=O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`],n&&Y.specialFolder);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,style:this.state.viewType===te?{marginLeft:r,width:`calc(100% - ${r}px`}:void 0,onClick:l=>this.state.viewType===te?this.select(e.id,l):this.changeFolder(l,e.id),onDoubleClick:l=>this.state.viewType===te&&this.toggleFolder(e,l),title:this.getText(e.title),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:{},e.temp?Y.itemFolderTemp:{})},M.createElement(i,{style:a,onClick:this.state.viewType===te?l=>this.toggleFolder(e,l):void 0}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},o?this.props.t("ra_User files"):e.name),M.createElement(j.Box,{component:"div",style:Y[`itemSize${this.state.viewType}`],sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.state.folders[e.id]?this.state.folders[e.id].length:""),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),this.state.viewType===te&&this.props.expertMode?M.createElement(j.Box,{component:"div",sx:{...Y.itemDeleteButtonTable,display:{md:"inline-block",sm:"none"}}}):null,this.state.viewType===te&&this.props.allowDownload?M.createElement("div",{style:Y[`itemDownloadEmpty${this.state.viewType}`]}):null,this.state.viewType===te&&this.props.allowDelete&&this.state.folders[e.id]&&this.state.folders[e.id].length?M.createElement(j.IconButton,{"aria-label":"delete",onClick:l=>{l.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderBackFolder(){return M.createElement(j.Box,{component:"div",key:this.state.currentDir,id:this.state.currentDir,onClick:e=>this.changeFolder(e),title:this.props.t("ra_Back to %s",ys(this.state.currentDir)),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`])},M.createElement(Ws,{style:O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`])}),M.createElement(JL,{sx:Y.itemFolderIconBack}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},".."))}formatSize(e){return M.createElement("div",{style:Y[`itemSize${this.state.viewType}`]},e||e===0?O.formatBytes(e):"")}formatAcl(e){const t=e?e.permissions||e.file:0;let i;return t?i=t.toString(16).padStart(3,"0"):i="",M.createElement("div",{style:Y[`itemAccess${this.state.viewType}`]},this.props.modalEditOfAccessControl?M.createElement(j.IconButton,{size:"large",onClick:()=>this.setState({modalEditOfAccess:!0}),sx:Y[`itemAclButton${this.state.viewType}`]},i||"---"):i||"---")}getFileIcon(e){switch(e){case"json":case"json5":return M.createElement(HL,{style:Y[`itemIcon${this.state.viewType}`]});case"css":return M.createElement(VL,{style:Y[`itemIcon${this.state.viewType}`]});case"js":case"ts":return M.createElement(ua,{style:Y[`itemIcon${this.state.viewType}`]});case"html":case"md":return M.createElement(Kr,{style:Y[`itemIcon${this.state.viewType}`]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return M.createElement(hg,{style:Y[`itemIcon${this.state.viewType}`]});default:return M.createElement(jN,{style:Y[`itemIcon${this.state.viewType}`]})}}static getEditFile(e){switch(e){case"json":case"json5":case"js":case"html":case"txt":case"css":case"log":return!0;default:return!1}}setStateBackgroundImage=()=>{const e=["light","dark","colored","delete"];this.setState(({backgroundImage:t})=>t&&e.indexOf(t)!==-1&&e.length-1!==e.indexOf(t)?(this.localStorage.setItem("files.backgroundImage",e[e.indexOf(t)+1]),{backgroundImage:e[e.indexOf(t)+1]}):(this.localStorage.setItem("files.backgroundImage",e[0]),{backgroundImage:e[0]}))};getStyleBackgroundImage=()=>{switch(this.state.backgroundImage){case"light":return Y.backgroundImageLight;case"dark":return Y.backgroundImageDark;case"colored":return Y.backgroundImageColored;case"delete":return null;default:return null}};renderFile(e){const t=this.state.viewType===te?e.level*this.levelPadding:0,i=O.getFileExtension(e.name);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,onDoubleClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},onClick:r=>this.select(e.id,r),style:this.state.viewType===te?{marginLeft:t,width:`calc(100% - ${t}px)`}:void 0,className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFile${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:void 0)},i&&we.images.includes(i)?this.state.fileErrors.includes(e.id)?M.createElement(dM,{style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage(),...Y[`itemNoImage${this.state.viewType}`]}}):M.createElement(me,{onError:r=>{r.target.onerror=null;const o=[...this.state.fileErrors];o.includes(e.id)||(o.push(e.id),this.setState({fileErrors:o}))},style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage()},src:this.imagePrefix+e.id,alt:e.name}):this.getFileIcon(i),M.createElement(j.Box,{component:"div",sx:Y[`itemName${this.state.viewType}`]},e.name),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.formatSize(e.size)),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode&&DM.getEditFile(i)?M.createElement(j.IconButton,{"aria-label":"edit",onClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},sx:Y.itemDeleteButtonTable,size:"large"},M.createElement(mi,{fontSize:"small"})):M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]})),this.state.viewType===te&&this.props.allowDownload?M.createElement(j.Box,{component:"a",className:"MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeLarge",sx:Y.itemDownloadButtonTable,tabIndex:0,download:e.id,href:this.imagePrefix+e.id,onClick:r=>r.stopPropagation()},M.createElement(Cg,null)):null,this.state.viewType===te&&this.props.allowDelete&&e.id!=="vis.0/"&&e.id!=="vis-2.0/"&&e.id!==mt?M.createElement(j.IconButton,{"aria-label":"delete",onClick:r=>{r.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderItems(e){var t;if((t=this.state.folders)!=null&&t[e]){if(this.state.viewType===Zo){const r=[];return e&&e!=="/"&&r.push(this.renderBackFolder()),this.state.folders[e].forEach(o=>{o.folder?r.push(this.renderFolder(o)):(!this.props.filterFiles||o.ext&&this.props.filterFiles.includes(o.ext))&&(!this.state.filterByType||o.ext&&we[this.state.filterByType].includes(o.ext))&&r.push(this.renderFile(o))}),r}const i=[];return this.state.folders[e].forEach(r=>{if(r.folder){const o=this.state.expanded.includes(r.id),n=this.renderFolder(r,o);if(Array.isArray(n)?n.forEach(a=>i.push(a)):i.push(n),this.state.folders[r.id]&&o){const a=this.renderItems(r.id);Array.isArray(a)?a.forEach(c=>i.push(c)):i.push(a)}}else(!this.props.filterFiles||r.ext&&this.props.filterFiles.includes(r.ext))&&(!this.state.filterByType||r.ext&&we[this.state.filterByType].includes(r.ext))&&i.push(this.renderFile(r))}),i}return M.createElement("div",{style:{position:"relative"}},M.createElement(j.CircularProgress,{key:e,color:"secondary",size:24}),M.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}renderToolbar(){const e=this.props.showTypeSelector?dr[this.state.filterByType||"all"]||dr.all:null,t=this.findFirstFolder(this.state.selected);return M.createElement(j.Toolbar,{key:"toolbar",variant:"dense"},this.props.allowNonRestricted&&this.props.restrictToFolder?M.createElement(j.IconButton,{edge:"start",title:this.state.restrictToFolder?this.props.t("ra_Show all folders"):this.props.t("ra_Restrict to folder"),style:{...Y.menuButton,...this.state.restrictToFolder?Y.menuButtonRestrictActive:void 0},"aria-label":"restricted to folder",onClick:()=>this.setState({restrictToFolder:(this.state.restrictToFolder?"":this.props.restrictToFolder)||"",loadAllFolders:!0}),size:"small"},M.createElement(Ng,{fontSize:"small"})):null,this.props.showExpertButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle expert mode"),style:{...Y.menuButton,...this.state.expertMode?Y.menuButtonExpertActive:void 0},"aria-label":"expert mode",onClick:()=>this.setState({expertMode:!this.state.expertMode}),size:"small"},M.createElement($n,null)):null,this.props.showViewTypeButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle view mode"),style:Y.menuButton,"aria-label":"view mode",onClick:()=>{const i=this.state.viewType===te?Zo:te;this.localStorage.setItem("files.viewType",i);let r=this.state.selected;Vo(r)&&(r=ys(r)),this.setState({viewType:i,currentDir:r},()=>{this.state.viewType===te&&this.scrollToSelected()})},size:"small"},this.state.viewType!==te?M.createElement(Tg,{fontSize:"small"}):M.createElement(_g,{fontSize:"small"})):null,M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Hide empty folders"),style:Y.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:()=>{this.localStorage.setItem("file.empty",this.state.filterEmpty?"false":"true"),this.setState({filterEmpty:!this.state.filterEmpty})},size:"small"},M.createElement(lg,{fontSize:"small"})),M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Reload files"),style:Y.menuButton,color:"inherit","aria-label":"reload files",onClick:()=>this.setState({folders:{}},()=>this.loadFolders()),size:"small"},M.createElement(TN,{fontSize:"small"})),this.props.allowCreateFolder?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),style:Y.menuButton,color:"inherit","aria-label":"add folder",onClick:()=>this.setState({addFolder:!0}),size:"small"},M.createElement(gN,{fontSize:"small"})):null,this.props.allowUpload?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),style:Y.menuButton,color:"inherit","aria-label":"upload file",onClick:()=>this.setState({uploadFile:!0}),size:"small"},M.createElement(Sr,{fontSize:"small"})):null,this.props.showTypeSelector&&e?M.createElement(j.Tooltip,{title:this.props.t("ra_Filter files"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{size:"small",onClick:i=>this.setState({showTypesMenu:i.target})},M.createElement(e,{fontSize:"small"}))):null,this.state.showTypesMenu?M.createElement(j.Menu,{open:!0,anchorEl:this.state.showTypesMenu,onClose:()=>this.setState({showTypesMenu:null})},Object.keys(dr).map(i=>{const r=dr[i];return M.createElement(j.MenuItem,{key:i,selected:this.state.filterByType===i,onClick:()=>{i==="all"?(this.localStorage.removeItem("files.filterByType"),this.setState({filterByType:"",showTypesMenu:null})):(this.localStorage.setItem("files.filterByType",i),this.setState({filterByType:i,showTypesMenu:null}))}},M.createElement(j.ListItemIcon,null,M.createElement(r,{fontSize:"small"})),M.createElement(j.ListItemText,null,this.props.t(`ra_fileType_${i}`)))})):null,M.createElement(j.Tooltip,{title:this.props.t("ra_Background image"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{color:"inherit",edge:"start",style:Y.menuButton,onClick:this.setStateBackgroundImage,size:"small"},M.createElement(ca,{fontSize:"small"}))),this.state.viewType!==te&&this.props.allowDelete?M.createElement(j.Tooltip,{title:this.props.t("ra_Delete"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement("span",null,M.createElement(j.IconButton,{"aria-label":"delete",disabled:!this.state.selected||this.state.selected==="vis.0/"||this.state.selected==="vis-2.0/"||this.state.selected===mt,color:"inherit",edge:"start",style:Y.menuButton,onClick:i=>{i.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(this.state.selected):this.setState({deleteItem:this.state.selected})},size:"small"},M.createElement(nt,{fontSize:"small"})))):null)}findItem(e,t){if(t=t||this.state.folders,!t)return null;const i=e.split("/");i.pop();const r=i.join("/")||"/";return t[r]&&t[r].find(o=>o.id===e)||null}renderInputDialog(){if(this.state.addFolder){const e=this.findFirstFolder(this.state.selected);return e?M.createElement(FEe,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:t=>this.state.folders[e].find(i=>i.name===t)?"":this.props.t("ra_Duplicate name"),onClose:t=>{if(t){const i={};Object.keys(this.state.folders).forEach(a=>i[a]=this.state.folders[a]);const r=this.findItem(e),o=`${e}/${t}`;i[e].push({id:o,level:((r==null?void 0:r.level)||0)+1,name:t,folder:!0,temp:!0}),i[e].sort(ml),i[o]=[];const n=[...this.state.expanded];n.includes(e)||(n.push(e),n.sort()),this.localStorage.setItem("files.expanded",JSON.stringify(n)),this.setState({addFolder:!1,folders:i,expanded:n},()=>this.select(o))}else this.setState({addFolder:!1})},replace:t=>t.replace(/[^-_\w]/,"_")}):(window.alert(this.props.t("ra_Invalid parent folder!")),null)}return null}componentDidUpdate(){this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(()=>{this.setOpacityTimer=null;const e=window.document.getElementsByClassName("browserItem");for(let t=0;tthis.setState({uploadFile:!1})},M.createElement(Ne,null)),M.createElement(NN,{key:"dropzone",onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:e=>{let t=e.length;e.forEach(i=>{const r=new FileReader;r.onabort=()=>console.log("file reading was aborted"),r.onerror=()=>console.log("file reading has failed"),r.onload=()=>{const o=this.findFirstFolder(this.state.selected);if(!o)window.alert(this.props.t("ra_Invalid parent folder!"));else{const n=`${o}/${i.name}`;this.uploadFile(n,r.result).then(()=>{--t||this.setState({uploadFile:!1},()=>{if(this.supportSubscribes){const a=[...this.state.expanded];a.includes(o)||(a.push(o),a.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(a))),this.setState({expanded:a},()=>this.select(n))}else setTimeout(()=>this.browseFolder(o,null,!1,!0).then(a=>{const c=[...this.state.expanded];c.includes(o)||(c.push(o),c.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(c))),this.setState({folders:a,expanded:c},()=>this.select(n))}),500)})})}},r.readAsArrayBuffer(i)})}},({getRootProps:e,getInputProps:t})=>M.createElement("div",{style:{...Y.uploadDiv,...this.state.uploadFile==="dragging"?Y.uploadDivDragging:void 0},...e()},M.createElement("input",{...t()}),M.createElement(j.Box,{component:"div",sx:Y.uploadCenterDiv},M.createElement("div",{style:Y.uploadCenterTextAndIcon},M.createElement(Sr,{style:Y.uploadCenterIcon}),M.createElement("div",{style:Y.uploadCenterText},this.state.uploadFile==="dragging"?this.props.t("ra_Drop file here"):this.props.t("ra_Place your files here or click here to open the browse dialog"))))))]:null}deleteRecursive(e){const t=this.findItem(e);if(t!=null&&t.folder)return(this.state.folders[e]?Promise.all(this.state.folders[e].map(o=>this.deleteRecursive(o.id))):Promise.resolve()).then(()=>{if(t.level>=1){const o=e.split("/"),n=o.shift();this.props.socket.deleteFolder(n||"",o.join("/")).then(()=>{const a=JSON.parse(JSON.stringify(this.state.folders));delete a[t.id];const c=ys(t.id),l=a[c];if(l){const N=l.findIndex(u=>u.id===t.id);N!==-1&&l.splice(N,1),this.select(c,null,()=>this.setState({folders:a}))}})}});const i=e.split("/"),r=i.shift();return i.length?this.props.socket.deleteFile(r||"",i.join("/")).catch(o=>window.alert(`Cannot delete file: ${o}`)):Promise.resolve()}deleteItem(e){e=e||this.state.deleteItem,this.state.suppressDeleteConfirm&&(this.suppressDeleteConfirm=Date.now()+6e4*5),this.setState({deleteItem:"",suppressDeleteConfirm:!1},()=>this.deleteRecursive(e).then(()=>{const t={},i=this.state.expanded.indexOf(e);if(i!==-1){const r=[...this.state.expanded];r.splice(i,1),this.localStorage.setItem("files.expanded",JSON.stringify(r)),t.expanded=r}if(this.state.selected===e){const r=this.state.selected.split("/");r.pop(),t.selected=r.join("/")}if(this.supportSubscribes)this.setState(t);else{const r=this.findFirstFolder(e),o={};Object.keys(this.state.folders).forEach(n=>{n!==r&&!n.startsWith(`${r}/`)&&(o[n]=this.state.folders[n])}),t.folders=o,this.setState(t,()=>setTimeout(()=>{this.browseFolders([...this.state.expanded],o).then(n=>this.setState({folders:n})).catch(n=>console.error(n))},200))}}))}renderDeleteDialog(){return this.state.deleteItem?M.createElement(j.Dialog,{key:"deleteDialog",open:!0,onClose:()=>this.setState({deleteItem:""}),"aria-labelledby":"ar_dialog_file_delete_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_file_delete_title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.props.t("ra_Are you sure?")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.suppressDeleteConfirm,onChange:()=>{this.setState({suppressDeleteConfirm:!this.state.suppressDeleteConfirm})}}),label:this.props.t("ra_no confirm for 5 mins")})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.deleteItem(""),color:"primary",autoFocus:!0},this.props.t("ra_Delete")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({deleteItem:""}),color:"grey"},this.props.t("ra_Cancel")))):null}renderViewDialog(){const e=this.props.FileViewer||yfe;return this.state.viewer?M.createElement(e,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeType:this.props.themeType,setStateBackgroundImage:this.setStateBackgroundImage,getStyleBackgroundImage:this.getStyleBackgroundImage,t:this.props.t,socket:this.props.socket,onClose:()=>this.setState({viewer:"",formatEditFile:""})}):null}renderError(){return this.state.errorText?M.createElement(r0,{key:"errorDialog",text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}updateItemsAcl(e){this.cacheFolders||=JSON.parse(JSON.stringify(this.state.folders));let t;e.forEach(i=>{const r=this.findItem(i.id,this.cacheFolders);r&&JSON.stringify(r.acl)!==JSON.stringify(i.acl)&&(r.acl=i.acl,t=!0)}),t&&(this.cacheFoldersTimeout&&clearTimeout(this.cacheFoldersTimeout),this.cacheFoldersTimeout=setTimeout(()=>{this.cacheFoldersTimeout=null;const i=this.cacheFolders||{};this.cacheFolders=null,this.setState({folders:i})},200))}changeToPath(){setTimeout(()=>{if(this.state.path!==this.state.selected&&(!this.lastSelect||Date.now()-this.lastSelect>100)){let e=this.state.path;Vo(this.state.path)&&(e=ys(this.state.path)),new Promise(t=>{this.state.folders[e]?t(!0):this.browseFolder(e).then(i=>this.setState({folders:i},()=>t(!0))).catch(i=>this.setState({errorText:i===Al?this.props.t('ra_Cannot find "%s"',e):this.props.t('ra_Cannot read "%s"',e)}))}).then(t=>t&&this.setState({selected:this.state.path,currentDir:e,pathFocus:!1})).catch(t=>console.error(t))}else(!this.lastSelect||Date.now()-this.lastSelect>100)&&this.setState({pathFocus:!1})},100)}renderBreadcrumb(){const e=this.state.currentDir.startsWith("/")?this.state.currentDir.split("/"):`/${this.state.currentDir}`.split("/"),t=[];return M.createElement(j.Breadcrumbs,{style:{paddingLeft:8,color:"#FFF"}},e.map((i,r)=>{i&&t.push(i);const o=t.join("/");return rthis.changeFolder(n,o||"/")},i||this.props.t("ra_Root")):M.createElement("div",{style:Y.pathDivBreadcrumbSelected,key:`${this.state.selected}_${r}`,onClick:()=>this.setState({pathFocus:!0})},i)}))}renderPath(){return M.createElement(j.Box,{component:"div",key:"path",sx:Y.pathDiv},this.state.pathFocus?M.createElement(j.Input,{value:this.state.path,onKeyDown:e=>{e.key==="Enter"?this.changeToPath():e.key==="Escape"&&this.setState({pathFocus:!1})},endAdornment:M.createElement(j.IconButton,{size:"small",onClick:()=>this.changeToPath()},M.createElement(yg,null)),onBlur:()=>this.changeToPath(),onChange:e=>this.setState({path:e.target.value}),style:Y.pathDivInput}):this.renderBreadcrumb())}render(){return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(()=>{this.setState({loadAllFolders:!1,folders:{}},()=>{this.foldersLoading=!1,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`))})},300)),M.createElement("div",{style:{...Y.root,...this.props.style},className:this.props.className},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===Zo?this.renderPath():null,M.createElement("div",{style:{...Y.filesDiv,...Y[`filesDiv${this.state.viewType}`]},onClick:e=>{this.state.viewType!==te&&(this.state.selected!==(this.state.currentDir||"/")?this.changeFolder(e,this.state.currentDir||"/"):e.stopPropagation())},id:"dev",ref:this.refFileDiv},this.state.viewType===te?this.renderItems("/"):this.renderItems(this.state.currentDir||"/"),this.state.viewType!==te?M.createElement("div",{style:Y.filesDivHint},this.props.t("ra_select_folder_hint")):null),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl?this.props.modalEditOfAccessControl(this):null,this.renderError())):M.createElement(j.LinearProgress,null)}}const Tfe=Io()(DM),dfe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIC0xMjAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDBoLTQ2NGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgzMnYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDI4OHYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTE5MmMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMzkyIDIyNGgtMjR2LTE2aDI0em0zNDQgMGgtMjR2LTE2aDI0em00MC0zMmgtNDQ4di0xNzZoNDQ4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2IDE3NmMzNS4zNDc2NTYgMCA2NC0yOC42NTIzNDQgNjQtNjRzLTI4LjY1MjM0NC02NC02NC02NC02NCAyOC42NTIzNDQtNjQgNjRjLjAzOTA2MiAzNS4zMjgxMjUgMjguNjcxODc1IDYzLjk2MDkzOCA2NCA2NHptLTgtMTExLjI4MTI1djE1LjI4MTI1aDE2di0xNS4yODEyNWMyNC42MDU0NjkgNC4xNjAxNTYgNDEuOTE3OTY5IDI2LjQ3NjU2MiAzOS44MzIwMzEgNTEuMzQzNzUtMi4wODU5MzcgMjQuODY3MTg4LTIyLjg3ODkwNiA0My45ODQzNzUtNDcuODMyMDMxIDQzLjk4NDM3NXMtNDUuNzQ2MDk0LTE5LjExNzE4Ny00Ny44MzIwMzEtNDMuOTg0Mzc1Yy0yLjA4NTkzOC0yNC44NjcxODggMTUuMjI2NTYyLTQ3LjE4MzU5NCAzOS44MzIwMzEtNTEuMzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjAgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYwIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzY4IDE3NmMxNi4wOTM3NS4wMTk1MzEgMjkuNjg3NS0xMS45Mzc1IDMxLjcxODc1LTI3LjkwNjI1IDIuMDM1MTU2LTE1Ljk2NDg0NC04LjEzMjgxMi0zMC45NDUzMTItMjMuNzE4NzUtMzQuOTU3MDMxdi0xNy4xMzY3MTloLTE2djE3LjEzNjcxOWMtMTUuNTg1OTM4IDQuMDExNzE5LTI1Ljc1MzkwNiAxOC45OTIxODctMjMuNzE4NzUgMzQuOTU3MDMxIDIuMDMxMjUgMTUuOTY4NzUgMTUuNjI1IDI3LjkyNTc4MSAzMS43MTg3NSAyNy45MDYyNXptMC00OGM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2cy03LjE2NDA2MiAxNi0xNiAxNi0xNi03LjE2NDA2Mi0xNi0xNiA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im02NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggMTEyaDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTMyYy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDh6bTgtNjRoMTZ2MTZoLTE2em0wIDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMiAxMzZjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MzIgMTY4YzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Dfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy41NDYgMTA1LjEyNWMwLTEuMDQ0LS4yMDUtMi4wOTEtLjY0Ny0zLjA3MmwtNDMuOTMtOTcuNjNjLTEuMjEtMi42OTItMy44ODgtNC40MjMtNi44MzktNC40MjNoLTE4Mi42M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMy44MTJ2ODIuNjNoLTgyLjYyNXYtODIuNjNoMjMuODEzYzQuMTQzIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xODIuNjNjLTIuOTUxIDAtNS42MjkgMS43MzEtNi44NCA0LjQyM2wtNDMuOTMgOTcuNjNjLS40NDEuOTgxLS42NDYgMi4wMjgtLjY0NyAzLjA3MmgtLjAxNXYxMi4yMDNjMCAyOS41MTQgMjIuODI3IDUzLjc4IDUxLjc1MSA1Ni4xMTJsMzEuODY1IDU4LjQxOWgtNC4wMDdjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjMzYy4wMDUgMCAuMDEuMDAxLjAxNS4wMDFzLjAxMS0uMDAxLjAxNi0uMDAxaDE2LjYxOGM0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTIuMTg5bC0zMi40NTYtNTkuNTAzYzE1Ljc1LTMuNDEzIDI5LjA1Ny0xMy40MzMgMzYuODc5LTI3LjAwMyA5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM3LjgyMiAxMy41NzEgMjEuMTI5IDIzLjU5MSAzNi44NzkgMjcuMDAzbC0zMi40NTYgNTkuNTAzaC0xMi4xODhjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjE4Yy4wMDUgMCAuMDExLjAwMS4wMTYuMDAxcy4wMS0uMDAxLjAxNS0uMDAxaDE2LjYzM2M0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNC4wMDdsMzEuODY1LTU4LjQxOWMyOC45MjQtMi4zMzIgNTEuNzUxLTI2LjU5OCA1MS43NTEtNTYuMTEydi0xMi4yMDN6bS0xOS4wODUtNy40OTVoLTc4LjUyM3YtODIuNjNoNDEuMzQzem0tOTMuNTIzLTgyLjYzdjgyLjYzaC04Mi42MjV2LTgyLjYzem0tMTk1LjI1IDgyLjYzaC04Mi42MjV2LTgyLjYzaDgyLjYyNXptLTEzOC45NjgtODIuNjNoNDEuMzQzdjgyLjYzaC03OC41MjR6bS4wMzQgMTQzLjY0MWMtLjAxMSAwLS4wMjEtLjAwMS0uMDMyLS4wMDEtMjIuNzY3LS4wMTUtNDEuMjg1LTE4LjU0Mi00MS4yODUtNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTMxIDQxLjMxLTQxLjMwOCA0MS4zMTN6bTk3LjYyMSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMwIDIyLjc3OC0xOC41MzQgNDEuMzEyLTQxLjMxMyA0MS4zMTJ6bTk3LjYyNSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMtLjAwMSAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42MjUgMGMtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42NDgtLjAwMWMtLjAwNSAwLS4wMDkgMC0uMDE0IDAtLjAwMyAwLS4wMDYgMC0uMDA5IDAtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjLS4wMDEgMjIuNzcyLTE4LjUyMSA0MS4zLTQxLjI5IDQxLjMxMnoiLz4KICAgIDwvZz4KPC9zdmc+",hfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOC41MzYgNTA4LjUzNiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ5OC41MzYgMzQ0LjMyMWgtMTcuMjk4Yy40MzQtMTcuNjcyLTEwLjI2Ny0zNC4yMTItMjkuNTQ3LTM0LjIxMnMtMjkuOTgyIDE2LjU0LTI5LjU0NyAzNC4yMTJoLTE3LjI5OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OTdjMCAyNC42MDEgMTUuNzEyIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5M3YtNjYuNjRjMzYuMDg4IDEuMjY2IDU3Ljg0Ni0yMi4zOSA4MS4xNDktNDUuNjk0IDI4LjUxNy0zLjAyNCA1MC44MDktMjcuMjE2IDUwLjgwOS01Ni41MjJ2LTI1LjY5OGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwaC0xNy4yOThjLjQzNC0xNy42NzEtMTAuMjY3LTM0LjIxMi0yOS41NDctMzQuMjEycy0yOS45ODIgMTYuNTQtMjkuNTQ3IDM0LjIxMmgtMTcuM2MtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OThjMCAyNC42MDEgMTUuNzExIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5NCAwLTI1Ljg5NSAwLTUxLjc5MSAwLTc3LjY4NmgyMi43MTZjMTIuMjg1IDAgMTguNzI2IDE1LjUzIDEwLjAzMyAyNC4yMjEtOS4xMjIgOS4xMjEgNS4wMiAyMy4yNjQgMTQuMTQyIDE0LjE0MyA2LjQ1OC02LjQ1NyAxMC4wMTQtMTUuMDQyIDEwLjAxNC0yNC4xNzUgMC0xOC44NTItMTUuMzM3LTM0LjE4OC0zNC4xODktMzQuMTg4aC0yMi43MTZ2LTE4LjgyNGMyNi4yNTctNS4wNDMgNDYuMTYxLTI4LjE3NSA0Ni4xNjEtNTUuODgxdi0yMC44NTFjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMzYuOTE0di0yNC4yMzZoMzYuOTE0YzEyLjg0IDAgMTIuODU5LTIwIDAtMjBoLTkzLjgyOGMtMTIuODQgMC0xMi44NTkgMjAgMCAyMGgzNi45MTR2MjQuMjM1aC0zNi45MTRjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjAuODUxYzAgMjguMjMzIDIwLjY2OSA1MS43MTkgNDcuNjY3IDU2LjE1MXYxOC41NTVoLTIyLjcxNmMtMTguODUyIDAtMzQuMTg5IDE1LjMzNy0zNC4xODkgMzQuMTg4IDAgOS4xMzIgMy41NTYgMTcuNzE3IDEwLjAxNCAyNC4xNzUgOS4xMjEgOS4xMjEgMjMuMjYzLTUuMDIxIDE0LjE0My0xNC4xNDMtOC42ODUtOC42ODQtMi4yNjQtMjQuMjIxIDEwLjAzMy0yNC4yMjFoMjIuNzE2djc3LjY4NmMwIDMyLjM2NC0yNi4zMyA1OC42OTQtNTguNjk0IDU4LjY5NC0xNS42NzcgMC0zMC40MTctNi4xMDUtNDEuNTAyLTE3LjE5MWwtMTEuMjE4LTExLjIxOGMyMi41LTcuNTc1IDM4Ljc1Ni0yOC44NTYgMzguNzU2LTUzLjg3N3YtMjUuNjk4YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5OGMuNDM0LTE3LjY3MS0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4zYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwdjI1LjY5OGMwIDI4LjcwNyAyMS4zOTQgNTIuNDk4IDQ5LjA3MyA1Ni4zbDIyLjkzNyAyMi45MzdjMTUuMTY0IDE1LjE2MyAzNi4wMSAyMy40ODYgNTcuNDMzIDIzLjAwM3Y2Ni42MTRjMCAzMi4zNjQtMjYuMzMgNTguNjkzLTU4LjY5MyA1OC42OTMtMTUuNjc3IDAtMzAuNDE3LTYuMTA1LTQxLjUwMi0xNy4xOTFsLTExLjYwMi0xMS42MDJjMjEuOTE0LTcuODk4IDM3LjYyNS0yOC44OTIgMzcuNjI1LTUzLjQ5NHYtMjUuNjk3YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5N2MuNDM0LTE3LjY3Mi0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4yOTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjUuNjk3YzAgMjkuMzA1IDIyLjI5MiA1My40OTcgNTAuODA4IDU2LjUyMWwyMi43MTcgMjIuNzE2YzE0Ljg2MyAxNC44NjMgMzQuNjI1IDIzLjA0OCA1NS42NDUgMjMuMDQ4IDQzLjM5MiAwIDc4LjY5My0zNS4zMDIgNzguNjkzLTc4LjY5M3YtNjkuNjU3YzE0LjQyNi00LjE2NCAyNy4xNjEtMTIuMzQyIDM2LjkwNS0yMy4yNTd2MjAuNTIyYzAgMTIuODQgMjAgMTIuODU5IDIwIDB2LTIwLjUyMmM5LjUyIDEwLjY2MyAyMS44ODkgMTguNzIzIDM1LjkwNSAyMi45NzJ2NjkuOTQ2YzAgNDMuMzkyIDM1LjMwMiA3OC42OTMgNzguNjkzIDc4LjY5MyAyMS4wMiAwIDQwLjc4MS04LjE4NiA1NS42NDUtMjMuMDQ4bDIyLjcxNi0yMi43MTZjMjguNTE2LTMuMDI1IDUwLjgwOC0yNy4yMTYgNTAuODA4LTU2LjUyMXYtMjUuNjk3Yy4wMDEtNS41MjQtNC40NzYtMTAuMDAxLTkuOTk5LTEwLjAwMXptLTExMi4yOTgtMTQ5LjkyN2MwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0zMjYuOTE0LTI0LjY2NGMwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0xMDQuODEyIDEyMC41OTljMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTIgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjgtMzYuODQ1LTM2Ljg0NXYtMTUuNjk3em0xMjMuNDExLTI3OC4zNjR2LTEwLjg1MWg3My44Mjh2MTAuODUxYzAgNDcuNTk2LTczLjgyOCA0Ny41OTYtNzMuODI4IDB6bTIyNS4wNDIgMjUzLjdjMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTMgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjktMzYuODQ1LTM2Ljg0NXYtMTUuNjk3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yODEuMjA2IDQ0MS44NDctMTYuNDM4LTkuNDl2LTIxLjY0NWMwLTEyLjg0LTIwLTEyLjg1OS0yMCAwdjIxLjYxOWwtMTYuNDgzIDkuNTE2Yy0zLjA5NCAxLjc4Ni01IDUuMDg3LTUgOC42NnYyNC43OGMwIDMuNTczIDEuOTA2IDYuODc0IDUgOC42NmwyMS40NiAxMi4zOWMzLjA2NyAxLjc3MSA2LjkzMyAxLjc3MSAxMCAwbDIxLjQ2LTEyLjM5YzMuMDk0LTEuNzg2IDUtNS4wODcgNS04LjY2di0yNC43OGMuMDAxLTMuNTczLTEuOTA1LTYuODc0LTQuOTk5LTguNjZ6bS0xNSAyNy42NjctMTEuNDYgNi42MTctMTEuNDYtNi42MTd2LTEzLjIzM2wxMS40Ni02LjYxNyAxMS40NiA2LjYxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ1LjUzNSAzNzQuMTgzYzEuNjM1IDMuOTI0IDUuNzE2IDYuNDY2IDkuOTY4IDYuMTM4IDQuMTY5LS4zMjIgNy43NzgtMy4yNzIgOC44OTctNy4zMDMgMi4zNjQtOC41MTMtNy4xOTEtMTUuNzU5LTE0Ljc3My0xMS4yMzUtNC4yMTQgMi41MTQtNS45NDUgNy44OC00LjA5MiAxMi40eiIvPgogICAgPC9nPgo8L3N2Zz4=",zfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtOSAxN2M0LjQxMSAwIDgtMy41ODkgOC04IDAtMS4yNTYtLjI5OS0yLjQ0MS0uODE4LTMuNTAxIDEuMTAzLTEuNTQ4IDIuODk4LTIuNDk5IDQuODE4LTIuNDk5IDIuODQgMCA1LjI3OCAyLjA2NCA1Ljc5OSA0LjgzMS0uMTkuMTA1LS4zNzUuMjE4LS41NTQuMzQyLTEuMjI0LS43NDctMi42MzYtMS4xNzMtNC4wNzQtMS4xNzNoLS4xNzF2MmguMTcxYy44OTYgMCAxLjc4LjIyMSAyLjU4LjYxNS0uMDgzLjEwOS0uMTcxLjIxMS0uMjQ4LjMyNmwtLjMzNi41MDQgMS42NjQgMS4xMDkuMzM2LS41MDRjLjg1Ny0xLjI4MyAyLjI5LTIuMDUgMy44MzMtMi4wNSAxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTdjLTEuMTAzIDAtMi0uODk3LTItMmgtMmMwIDIuMjA2IDEuNzk0IDQgNCA0aDI1YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00Yy0uNDczIDAtLjkzNS4wNi0xLjM4Ny4xNTctMS4xNTktMy42MjMtNC41NDItNi4xNTctOC40My02LjE1Ny0zLjU0OSAwLTYuNzQ2IDIuMTA3LTguMTQ0IDUuMzY5bC0uMjc3LjY0NmMtLjM1Ni4wMTMtLjcwNi4wNTUtMS4wNS4xMjMtLjgyLTMuNTQyLTQuMDIzLTYuMTM4LTcuNzEyLTYuMTM4LTIuMzEyIDAtNC40ODggMS4wMzQtNS45NzggMi43NTEtMS40NjctMS42ODItMy42Mi0yLjc1MS02LjAyMi0yLjc1MS00LjQxMSAwLTggMy41ODktOCA4czMuNTg5IDggOCA4em0yOS4xODMtMTRjMy4wNDcgMCA1LjY3NiAyLjAxNyA2LjU0MSA0Ljg3Ny0uMTYzLjA5My0uMzI1LjE4OC0uNDc5LjI5NS0xLjIyNS0uNzQ2LTIuNjM2LTEuMTcyLTQuMDc0LTEuMTcyaC0uMTcxdjJoLjE3MWMuODk1IDAgMS43OC4yMjEgMi41OC42MTUtLjA4My4xMDktLjE3MS4yMTEtLjI0OC4zMjZsLS4zMzYuNTA0IDEuNjY0IDEuMTA5LjMzNi0uNTA0Yy44NTctMS4yODMgMi4yOS0yLjA1IDMuODMzLTIuMDUgMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC0xNC41NTZjLjM0NC0uNTkxLjU1Ni0xLjI2OC41NTYtMiAwLTEuNTcxLS45MTgtMi45MTktMi4yMzgtMy41NzNsLjExNi0uMjdjMS4wODItMi41MjUgMy41NTctNC4xNTcgNi4zMDUtNC4xNTd6bS0yOS4xODMgMGMzLjMwOSAwIDYgMi42OTEgNiA2cy0yLjY5MSA2LTYgNi02LTIuNjkxLTYtNiAyLjY5MS02IDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMzd2LTQuNWw0LTN2LTIuNWgtMnYxLjVsLTIgMS41di01aC0ydjdsLTItMS41di0xLjVoLTJ2Mi41bDQgM3YyLjVoLTEwdi02LjVsNC0zdi0yLjVoLTJ2MS41bC0yIDEuNXYtNC41ODZsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny40MTRsLTItMS41di0xLjVoLTJ2Mi41bDQgM3Y0LjVoLTE0di0xLjI3OWwuNDk2LS4xNjVjMy4yOTItMS4wOTggNS41MDQtNC4xNjYgNS41MDQtNy42MzYgMC0yLjE0OS0uODM3LTQuMTcxLTIuMzU3LTUuNjkxbC00LjY0My00LjY0My0zLjgyNSAzLjgyNWMtLjM5LS44MDItLjg5Ni0xLjU0Ni0xLjUzMi0yLjE4M2wtNC42NDMtNC42NDItNC42NDMgNC42NDNjLTEuNTIgMS41Mi0yLjM1NyAzLjU0Mi0yLjM1NyA1LjY5MSAwIDMuNDcgMi4yMTIgNi41MzggNS41MDMgNy42MzVsLjQ5Ny4xNjV2NC4yOGgtMTYuMjgxbC40OSAxLjk1OWMzLjUzOSAxNC4xNTUgMTYuMjAxIDI0LjA0MSAzMC43OTEgMjQuMDQxczI3LjI1Mi05Ljg4NiAzMC43OTEtMjQuMDQxbC40OS0xLjk1OXptLTI3LjM2NCA2LjI1OCAxLjE0NSAxLjcxN2MuMTQzLjIxNC4yMTkuNDY0LjIxOS43MjIgMCAuNzE5LS41ODQgMS4zMDMtMS4zMDMgMS4zMDNoLTE1LjM5NGMtLjcxOSAwLTEuMzAzLS41ODQtMS4zMDMtMS4zMDMgMC0uMjU4LjA3Ni0uNTA4LjIxOS0uNzIzbDEuMTQ2LTEuNzE4Yy40MTUtLjYyNC42MzUtMS4zNTEuNjM1LTIuMTAxIDAtLjc3LS4yNDYtMS41MjUtLjY4MS0yLjE1NWgxNS4zNjJjLS40MzUuNjMxLS42ODEgMS4zODUtLjY4MSAyLjE1NSAwIC43NS4yMiAxLjQ3Ny42MzYgMi4xMDN6bS0xLjYzNi0yMi44NDQgMy4yMjkgMy4yMjljMS4xNDIgMS4xNDIgMS43NzEgMi42NjIgMS43NzEgNC4yNzcgMCAyLjU1Ny0xLjYwNCA0LjgxNy00IDUuNjgxdi0xLjE4NmwyLjcwNy0yLjcwNy0xLjQxNC0xLjQxNC0xLjI5MyAxLjI5MnYtMi4xNzJsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny4wMTRjLTIuMzk2LS44NjMtNC0zLjEyMi00LTUuNjggMC0xLjYxNS42MjktMy4xMzUgMS43NzEtNC4yNzd6bS0xNSA0LjUwNmMwLTEuNjE1LjYyOS0zLjEzNSAxLjc3MS00LjI3N2wzLjIyOS0zLjIyOSAzLjIyOSAzLjIyOWMuNjY2LjY2NiAxLjE1MyAxLjQ4MSAxLjQ0OSAyLjM3MS0xLjA4NCAxLjQtMS42NzggMy4xMDYtMS42NzggNC45MDYgMCAuNDY0LjA0Ni45MTguMTIyIDEuMzY0LS42MDkuNTgxLTEuMzI5IDEuMDM0LTIuMTIyIDEuMzE5di02LjNsMS44MzItMi43NDgtMS42NjQtMS4xMDktMS4zMjMgMS45ODUtMS4xMzgtMS4xMzgtMS40MTQgMS40MTQgMS43MDcgMS43MDd2Mi4xNzJsLTEuMjkzLTEuMjkzLTEuNDE0IDEuNDE0IDIuNzA3IDIuNzA3djEuMTg2Yy0yLjM5Ni0uODYzLTQtMy4xMjItNC01LjY4em02IDcuODAxLjQ5Ni0uMTY1Yy44MjUtLjI3NSAxLjU4OS0uNjk2IDIuMjgxLTEuMjE2LjkxNiAxLjk0OCAyLjU4NiAzLjUwMiA0LjcyNiA0LjIxNWwuNDk3LjE2NXYxLjI4aC04em0tNy40MTQgNi4yNzkuODkuODljLjMzMy4zMzMuNTI0Ljc5NS41MjQgMS4yNjUgMCAuMzU0LS4xMDQuNjk4LS4zLjk5M2wtMS4xNDUgMS43MTdjLS4zNjMuNTQ0LS41NTUgMS4xNzgtLjU1NSAxLjgzMiAwIDEuODIyIDEuNDgxIDMuMzAzIDMuMzAzIDMuMzAzaDE1LjM5NWMxLjgyMSAwIDMuMzAyLTEuNDgxIDMuMzAyLTMuMzAzIDAtLjY1NC0uMTkyLTEuMjg4LS41NTUtMS44MzJsLTEuMTQ1LTEuNzE2Yy0uMTk2LS4yOTUtLjMtLjYzOS0uMy0uOTk0IDAtLjQ3MS4xOTEtLjkzMy41MjQtMS4yNjZsLjg5LS44OWg2LjgzNmMtLjE2LjM4NS0uMjUuODA2LS4yNSAxLjI0NyAwIDEuNDkyIDEuMDExIDIuNzg4IDIuNDU5IDMuMTQ5bDQuMjIgMS4wNTVjLjc3OC4xOTYgMS4zMjEuODkxIDEuMzIxIDEuNjkzIDAgLjcxNy0uNDMgMS4zNTMtMS4wOTYgMS42MThsLTYuMjc1IDIuNTExYy0xLjU5Ny42MzktMi42MjkgMi4xNjMtMi42MjkgMy44ODIgMCAxLjQ5Ni44MDcgMi44ODggMi4xMDcgMy42M2wyLjcxNSAxLjU1MWMtMy4wMDQgMS4wNDktNi4yMTUgMS42MjEtOS41MzcgMS42NTNsLTUuMDg2LTMuMzkxYy0uMTI0LS4wODItLjE5OS0uMjIxLS4xOTktLjM3MSAwLS4yMTkuMTU3LS40MDQuMzc0LS40NGwzLjQzNS0uNTcyYzEuMjY5LS4yMTMgMi4xOTEtMS4zMDIgMi4xOTEtMi41OSAwLTEuNDQ3LTEuMTc3LTIuNjI0LTIuNjI0LTIuNjI0aC0yMC42MDVjLTIuOTg5LTMuMzY3LTUuMjU2LTcuNDMtNi40ODYtMTJ6bTE0LjUwMyAyMC4yNjIgMi4yMyAxLjQ4N2MtNi4zMjktLjc4NC0xMi4xMDUtMy41NDgtMTYuNjA3LTcuNzQ5aDE4LjY2NGMuMzQ0IDAgLjYyNC4yOC42MjQuNjI0IDAgLjMwNy0uMjE5LjU2NS0uNTIxLjYxNmwtMy40MzQuNTcyYy0xLjE4NS4xOTgtMi4wNDUgMS4yMTItMi4wNDUgMi40MTQgMCAuODE5LjQwNyAxLjU4MSAxLjA4OSAyLjAzNnptMTguMTAzLS44NzUtNC4wOTMtMi4zMzljLS42NzgtLjM4OC0xLjA5OS0xLjExMy0xLjA5OS0xLjg5NCAwLS44OTcuNTM5LTEuNjkyIDEuMzcyLTIuMDI1bDYuMjc1LTIuNTExYzEuNDI5LS41NzEgMi4zNTMtMS45MzUgMi4zNTMtMy40NzUgMC0xLjcyMS0xLjE2Ni0zLjIxNC0yLjgzNS0zLjYzMmwtNC4yMi0xLjA1NWMtLjU1Ny0uMTQtLjk0NS0uNjM3LS45NDUtMS4yMSAwLS42ODcuNTU5LTEuMjQ2IDEuMjQ2LTEuMjQ2aDE4LjQ2OGMtMi4zNzYgOC44MjgtOC41NjUgMTUuODE0LTE2LjUyMiAxOS4zODd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDE3aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgMjFoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MyAxN2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDE5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgMjNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSAxN2gydjJoLTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",wfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik01MTEuOTc2LDQxNi4wNjNjLTAuMDA1LTAuMDc1LTAuMDA0LTAuMTQ5LTAuMDExLTAuMjI0Yy0wLjAyNy0wLjI5Ny0wLjA3LTAuNTg4LTAuMTMxLTAuODczCgkJYy0wLjAwNi0wLjAyOC0wLjAxNS0wLjA1Ni0wLjAyMi0wLjA4NGMtMC4wNTktMC4yNjItMC4xMzItMC41MTgtMC4yMTgtMC43NjhjLTAuMDIzLTAuMDY3LTAuMDQ4LTAuMTMyLTAuMDczLTAuMTk4CgkJYy0wLjA4NC0wLjIyNy0wLjE3OS0wLjQ0OC0wLjI4NC0wLjY2M2MtMC4wMTgtMC4wMzgtMC4wMy0wLjA3Ny0wLjA0OS0wLjExNWwtNDAuMTEyLTc5LjExOFY3My43MgoJCWMwLTguMDA2LTYuNTEzLTE0LjUxOS0xNC41MTktMTQuNTE5SDU1LjQ0MWMtOC4wMDYsMC0xNC41MTksNi41MTMtMTQuNTE5LDE0LjUxOXYyNjAuMjk4TDAuODExLDQxMy4xMzcKCQljLTAuMDE5LDAuMDM4LTAuMDMxLDAuMDc3LTAuMDQ5LDAuMTE1Yy0wLjEwNSwwLjIxNS0wLjE5OSwwLjQzNi0wLjI4NCwwLjY2MmMtMC4wMjUsMC4wNjYtMC4wNSwwLjEzMi0wLjA3MywwLjE5OQoJCWMtMC4wODUsMC4yNTEtMC4xNTksMC41MDgtMC4yMTgsMC43N2MtMC4wMDYsMC4wMjctMC4wMTUsMC4wNTQtMC4wMjEsMC4wODFjLTAuMDYxLDAuMjg2LTAuMTA0LDAuNTc3LTAuMTMxLDAuODc0CgkJYy0wLjAwNywwLjA3NC0wLjAwNywwLjE0OS0wLjAxMSwwLjIyM0MwLjAxNCw0MTYuMjE3LDAsNDE2LjM3MSwwLDQxNi41Mjl2MTkuMDI2YzAsOS41MDksNy43MzUsMTcuMjQ0LDE3LjI0NCwxNy4yNDRoNDc3LjUxMgoJCWM5LjUwOSwwLDE3LjI0NC03LjczNSwxNy4yNDQtMTcuMjQ0di0xOS4wMjZDNTEyLDQxNi4zNzEsNTExLjk4Niw0MTYuMjE3LDUxMS45NzYsNDE2LjA2M3ogTTU1LjkyMyw3NC4yMDNoNDAwLjE1NHYyNTQuMTA5CgkJSDU1LjkyM1Y3NC4yMDN6IE01My4wMjksMzQzLjMxMUg0NTguOTdsMzMuMzE4LDY1LjcxN2gtMTY0Ljc4bC04LjI3MS0yOS45ODljLTEuNjg0LTYuMTA1LTcuMjgyLTEwLjM2OS0xMy42MTUtMTAuMzY5aC05OS4yNDYKCQljLTYuMzMzLDAtMTEuOTMyLDQuMjY0LTEzLjYxNSwxMC4zNjhsLTguMjcxLDI5Ljk5SDE5LjcxMUw1My4wMjksMzQzLjMxMXogTTMxMS45NDgsNDA5LjAyOUgyMDAuMDUybDYuOTkzLTI1LjM1OGg5Ny45MQoJCUwzMTEuOTQ4LDQwOS4wMjl6IE00OTcsNDM1LjU1NGMwLDEuMjM3LTEuMDA3LDIuMjQ0LTIuMjQ0LDIuMjQ0SDE3LjI0NGMtMS4yMzcsMC0yLjI0NC0xLjAwNy0yLjI0NC0yLjI0NHYtMTEuNTI2aDQ4MlY0MzUuNTU0eiIKCQkvPgoJPHBhdGggZD0iTTQzMi41NzcsMjEzLjc1NmMtNC4xNDMsMC03LjUsMy4zNTctNy41LDcuNXY3Ni4wNTVIODYuOTIzdi03Ni4wNTVjMC00LjE0My0zLjM1Ny03LjUtNy41LTcuNQoJCQljLTQuMTQzLDAtNy41LDMuMzU3LTcuNSw3LjV2NzkuMjk0YzAsNi40ODUsNS4yNzUsMTEuNzYxLDExLjc2MSwxMS43NjFoMzQ0LjYzM2M2LjQ4NSwwLDExLjc2MS01LjI3NSwxMS43NjEtMTEuNzYxdi03OS4yOTQKCQkJQzQ0MC4wNzcsMjE3LjExNSw0MzYuNzIsMjEzLjc1Niw0MzIuNTc3LDIxMy43NTZ6Ii8+Cgk8cGF0aCBkPSJNNDI4LjMxNiw5MC4yMDNIODMuNjg0Yy02LjQ4NSwwLTExLjc2MSw1LjI3NS0xMS43NjEsMTEuNzYxdjc5LjI5NGMwLDQuMTQzLDMuMzU3LDcuNSw3LjUsNy41YzQuMTQzLDAsNy41LTMuMzU3LDcuNS03LjUKCQkJdi03Ni4wNTVoMzM4LjE1NHY3Ni4wNTVjMCw0LjE0MywzLjM1Nyw3LjUsNy41LDcuNXM3LjUtMy4zNTcsNy41LTcuNXYtNzkuMjk0QzQ0MC4wNzcsOTUuNDc3LDQzNC44MDIsOTAuMjAzLDQyOC4zMTYsOTAuMjAzeiIvPgo8L2c+Cjwvc3ZnPgo=",Cfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE2NC4zOTkgMjA1Ljg3MmM0LjA5OS42NjQgOC4yMDYtMS4yNzMgMTAuMjg0LTQuOTFsNjAtMTA1YzEuNzY5LTMuMDk1IDEuNzU2LTYuODk3LS4wMzMtOS45OHMtNS4wODUtNC45ODEtOC42NDktNC45ODFoLTM2LjY4MmwtMTMuNDg2LTcyLjgyMWMtLjc3Mi00LjE2OS00LjA4OS03LjM5OC04LjI3Ny04LjA1OC00LjE4NS0uNjYtOC4zMzcgMS4zOTQtMTAuMzUzIDUuMTIzbC02MCAxMTFjLTEuNjc1IDMuMDk5LTEuNTk3IDYuODUxLjIwOCA5Ljg3NiAxLjgwNCAzLjAyNSA1LjA2NiA0Ljg3OSA4LjU4OSA0Ljg3OWgzNi44MDJsMTMuMzkzIDY2Ljk2MWMuODE3IDQuMDkgNC4wODggNy4yNDIgOC4yMDQgNy45MTF6bS0xMy4zOTktOTQuODcxaC0yOC4yMjhsMzguNTU0LTcxLjMyMyA5Ljg0MSA1My4xNDRjLjg3OCA0Ljc0IDUuMDEzIDguMTc5IDkuODMzIDguMTc5aDI3Ljc2OWwtMzguMiA2Ni44NS05Ljc2My00OC44MTFjLS45MzUtNC42NzQtNS4wMzktOC4wMzktOS44MDYtOC4wMzl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwIDQ1OS4wMDFjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoMjZjNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBoLTU2di02OGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHY2OGgtNDB2LTIyM2g0MHY2NWMwIDUuNTIzIDQuNDc4IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi03NWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHYyMzNoLTQwdi0xNzNjMC01LjUyMy00LjQ3OC0xMC0xMC0xMGgtNjBjLTUuNTIyIDAtMTAgNC40NzctMTAgMTB2MTczaC00MHYtMTEzYzAtNS41MjMtNC40NzgtMTAtMTAtMTBoLTYwYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwdjExM2gtNzN2LTQ0OWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHYyNmgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDN6bTI1Ni0xNjNoNDB2MTYzaC00MHptLTEyMCA2MGg0MHYxMDNoLTQweiIvPgogICAgICAgIDxwYXRoIGQ9Im00MzYgMTQ2LjAwMWM1LjUyMiAwIDEwLTQuNDc3IDEwLTEwdi02MGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgzNS44NTdsLTEwMCAxMDBoLTU1Ljg1N2MtMi42NTIgMC01LjE5NSAxLjA1NC03LjA3MSAyLjkyOWwtOTAgOTBjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAzLjkwNyAzLjkwNSAxMC4yMzYgMy45MDQgMTQuMTQzIDBsODcuMDcxLTg3LjA3MWg1NS44NTdjMi42NTIgMCA1LjE5NS0xLjA1NCA3LjA3MS0yLjkyOWwxMDIuOTI5LTEwMi45M3YzNS44NTdjMCA1LjUyNCA0LjQ3OCAxMC4wMDEgMTAgMTAuMDAxeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjQzNiIgY3k9IjM0Ni4wMDEiIHI9IjEwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ife="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHJlY3QgeD0iMjE2IiB5PSI4OC40ODkiIHdpZHRoPSI4MCIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjIxNiIgeT0iNjIuNDg5IiB3aWR0aD0iODAiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cGF0aCBkPSJNMzAsNTIuNDk0djkuMjg1Yy0yLjM0Ny0wLjgzMi00Ljg3Mi0xLjI4NS03LjUtMS4yODVjLTEyLjQwNiwwLTIyLjUsMTAuMDkzLTIyLjUsMjIuNWMwLDEyLjQwNywxMC4wOTQsMjIuNSwyMi41LDIyLjUKCQkJYzIuNjI4LDAsNS4xNTMtMC40NTMsNy41LTEuMjg1djM1NS4yOThoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NWMyLjg5OS0xLjc1NSw0LjgxNC0yLjkxNSw5LjMyNS0yLjkxNQoJCQljNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1YzguNjk4LDAsMTMuMzU0LTIuODE5LDE3LjA5NC01LjA4NQoJCQljMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1YzMuNzQsMi4yNjYsOC4zOTUsNS4wODUsMTcuMDkzLDUuMDg1CgkJCXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1YzQuNTEsMCw2LjQyNSwxLjE2LDkuMzIyLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTN2LTQwN0gzMHogTTIyLjUsOTAuNDk0Yy00LjEzNiwwLTcuNS0zLjM2NC03LjUtNy41YzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjUKCQkJczcuNSwzLjM2NCw3LjUsNy41QzMwLDg3LjEzLDI2LjYzNiw5MC40OTQsMjIuNSw5MC40OTR6IE0xODguNSw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTIxNi43OWgtMTV2MjIyLjk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFoNDYuMjVWNDQyLjY2NHoiLz4KICAgICAgICA8cmVjdCB4PSIxNTcuMjUiIHk9IjEzNi45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjE1Ny4yNSIgeT0iMTExLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTU3LjI1IiB5PSI4Ni45OTQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9Ijk3LjI1IiB5PSIxMzAuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iNjYiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iMTA1Ljk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iNDM1Ljc1IiB5PSIxMTMuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI0MzUuNzUiIHk9IjEzOC45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjQzNS43NSIgeT0iODguOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjE1NS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjEwNS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iMTMwLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4OS41LDYwLjQ5NGMtMi42MjgsMC01LjE1MywwLjQ1My03LjUsMS4yODV2LTkuMjg1SDMwOC41djQwNy4wMTNoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NQoJCQljMi44OTktMS43NTUsNC44MTQtMi45MTUsOS4zMjUtMi45MTVjNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1CgkJCWM4LjY5OCwwLDEzLjM1NC0yLjgxOSwxNy4wOTQtNS4wODVjMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk1LDUuMDg1LDE3LjA5Myw1LjA4NXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1CgkJCWM0LjUxLDAsNi40MjUsMS4xNiw5LjMyMiwyLjkxNWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTNWMTA0LjIwOGMyLjM0NywwLjgzMiw0Ljg3MiwxLjI4NSw3LjUsMS4yODUKCQkJYzEyLjQwNiwwLDIyLjUtMTAuMDkzLDIyLjUtMjIuNUM1MTIsNzAuNTg1LDUwMS45MDYsNjAuNDk0LDQ4OS41LDYwLjQ5NHogTTQ2Nyw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTI1MC43OWgtMTV2MjU2Ljk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFINDY3VjQ0Mi42NjR6IE00ODkuNSw5MC40OTRjLTQuMTM2LDAtNy41LTMuMzY0LTcuNS03LjUKCQkJYzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjVzNy41LDMuMzY0LDcuNSw3LjVDNDk3LDg3LjEzLDQ5My42MzYsOTAuNDk0LDQ4OS41LDkwLjQ5NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",pfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDIgMTJjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTItNGMwIDEuMTAzLS44OTcgMi0yIDJzLTItLjg5Ny0yLTJjMC0uMTc4LjAzMS0uMzQ3LjA3NS0uNTExbDEuMjE4IDEuMjE4IDEuNDE0LTEuNDE0LTEuMjE4LTEuMjE4Yy4xNjQtLjA0NC4zMzMtLjA3NS41MTEtLjA3NSAxLjEwMyAwIDIgLjg5NyAyIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTQtMS43OTQtNC00LTR6bTAgNmMtMS4xMDMgMC0yLS44OTctMi0ycy44OTctMiAyLTJjLjE3OCAwIC4zNDcuMDMxLjUxMS4wNzVsLTEuMjE4IDEuMjE4IDEuNDE0IDEuNDE0IDEuMjE4LTEuMjE4Yy4wNDQuMTY0LjA3NS4zMzMuMDc1LjUxMSAwIDEuMTAzLS44OTcgMi0yIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUxIDEyaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTNoLTJjLTEuNjU0IDAtMyAxLjM0Ni0zIDNzMS4zNDYgMyAzIDN6bTAtNGgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxaC0yYy0uNTUxIDAtMS0uNDQ5LTEtMXMuNDQ5LTEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMyA2aC0yYy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTN6bTAgNGgtMmMtLjU1MSAwLTEtLjQ0OS0xLTFzLjQ0OS0xIDEtMWgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im02Mi45OTcgNThjMC0uMTYzLS4wMzctLjMyNi0uMTE3LS40NzRsLTIuODgtNS4zNDl2LTM4LjE3Ny0xMGMwLTEuNjU0LTEuMzQ2LTMtMy0zaC01MGMtMS42NTQgMC0zIDEuMzQ2LTMgM3YxMCAzOC4xNzdsLTIuODggNS4zNDljLS4wOC4xNDgtLjExNy4zMTEtLjExNy40NzRoLS4wMDN2MmMwIDEuNjU0IDEuMzQ2IDMgMyAzaDU2YzEuNjU0IDAgMy0xLjM0NiAzLTN2LTJ6bS02Ljk5Ny0xMy4yNTF2LTI5Ljc0OWgydjMzLjQ2M3ptLTQxLjkzMS0yLjc0OWMuMTg5IDEuNTAyLjc5MiAyLjg3NSAxLjY5NSA0aC0yLjc2NHYtNHptMzYuOTMxIDB2NGgtMi43NjVjLjkwNC0xLjEyNSAxLjUwNy0yLjQ5OCAxLjY5NS00em0tNS42OSA0aC0uMzF2LTIuMzgyYy40MDItLjQ2LjctMS4wMDkuODU4LTEuNjE4aDIuMDUyYy0uMjgyIDEuNjY2LTEuMjQ2IDMuMTAxLTIuNiA0em0tOC4zMS0xLjY5di0yLjMxaDEuMTQyYy40NDcgMS43MjEgMiAzIDMuODU4IDMgLjM0NyAwIC42NzgtLjA1OCAxLS4xNDJ2MS4xNDJoLTQuMzFjLS42Ny0uNDQ1LTEuMjQ1LTEuMDItMS42OS0xLjY5em0zLjI3OC00LjMxYy4zNDctLjU5NS45ODUtMSAxLjcyMi0xczEuMzc1LjQwNSAxLjcyMiAxem0yLjcyMiAydi43MjJjLS4yOTUuMTcyLS42MzQuMjc4LTEgLjI3OC0uNzM3IDAtMS4zNzUtLjQwNS0xLjcyMi0xem0yLjg1OC0yYy0uNDQ3LTEuNzIxLTItMy0zLjg1OC0zcy0zLjQxMSAxLjI3OS0zLjg1OCAzaC0yLjA1MmMuNDc4LTIuODMzIDIuOTQyLTUgNS45MS01czUuNDMxIDIuMTY3IDUuOTEgNXptLTExLjcyNS03LjA4NGMuNTEzLTIuNzkyIDIuOTU5LTQuOTE2IDUuODk3LTQuOTE2IDEuNjEgMCAzLjA2NS42MzEgNC4xNDMgMS42Ni0uOTczLS40MjMtMi4wNDYtLjY2LTMuMTczLS42Ni0yLjkxOCAwLTUuNDY5IDEuNTc2LTYuODY3IDMuOTE2em0uODY3IDQuMDg0YzAtMy4zMDkgMi42OTEtNiA2LTYgMi4zMzUgMCA0LjM1NyAxLjM0MyA1LjM0OCAzLjI5NC0xLjI1My0uODE1LTIuNzQ1LTEuMjk0LTQuMzQ4LTEuMjk0LTMuMDA0IDAtNS42MjQgMS42NjctNi45OTIgNC4xMjItLjAwMS0uMDQxLS4wMDgtLjA4MS0uMDA4LS4xMjJ6bS0uOTMxIDVjLjEyOSAxLjAyNy40NDkgMS45OTYuOTMxIDIuODY0djEuMTM2aC02di0xLjEzNmMuNDgyLS44NjkuODAyLTEuODM3LjkzMS0yLjg2NHptLTEzLjA2OSA0di0xLjE0MmMuMzIyLjA4NC42NTMuMTQyIDEgLjE0MiAxLjg1OCAwIDMuNDExLTEuMjc5IDMuODU4LTNoMS4xNDJ2Mi4zMWMtLjQ0NS42Ny0xLjAyIDEuMjQ1LTEuNjkgMS42OXptMC00aDIuNzIyYy0uMzQ3LjU5NS0uOTg1IDEtMS43MjIgMS0uMzY2IDAtLjcwNS0uMTA2LTEtLjI3OHptLS43MjItMmMuMzQ3LS41OTUuOTg1LTEgMS43MjItMXMxLjM3NS40MDUgMS43MjIgMXptOC43MTQtMi44NzhjLTEuMzY4LTIuNDU1LTMuOTg4LTQuMTIyLTYuOTkyLTQuMTIyLTEuNjAzIDAtMy4wOTUuNDc5LTQuMzQ4IDEuMjk0Ljk5MS0xLjk1MSAzLjAxMy0zLjI5NCA1LjM0OC0zLjI5NCAzLjMwOSAwIDYgMi42OTEgNiA2IDAgLjA0MS0uMDA3LjA4MS0uMDA4LjEyMnptLTUuOTkyLTguMTIyYy0xLjEwNiAwLTIuMTYuMjI2LTMuMTE5LjYzNCAxLjA3Ni0xLjAxNSAyLjUyMi0xLjYzNCA0LjExOS0xLjYzNCAyLjk2MSAwIDUuNDIyIDIuMTU4IDUuOTA3IDQuOTgzLTEuMzg4LTIuMzc4LTMuOTYxLTMuOTgzLTYuOTA3LTMuOTgzem0tMSA2YzIuOTY3IDAgNS40MzEgMi4xNjcgNS45MSA1aC0yLjA1MmMtLjQ0Ny0xLjcyMS0yLTMtMy44NTgtM3MtMy40MTEgMS4yNzktMy44NTggM2gtMi4wNTJjLjQ3OS0yLjgzMyAyLjk0My01IDUuOTEtNXptLTMuODU4IDdjLjE1OC42MDkuNDU2IDEuMTU3Ljg1OCAxLjYxOHYyLjM4MmgtLjMxYy0xLjM1NC0uODk5LTIuMzE5LTIuMzM0LTIuNi00em0tNS4xNDIgNmg1LjEzNmMuMjc4LjE1NC41NjcuMjkuODY0LjQxMXYzLjU4OWgtNnptOCAuOTMxYy4zMjguMDQxLjY2MS4wNjkgMSAuMDY5IDEuNDAxIDAgMi43MTgtLjM2NCAzLjg2NC0xaDEuMTM2djRoLTZ6bTgtLjkzMWg2djRoLTZ6bTggMGgxLjEzNmMxLjE0Ny42MzYgMi40NjMgMSAzLjg2NCAxIC4zMzkgMCAuNjcyLS4wMjggMS0uMDY5djMuMDY5aC02em04IC40MTFjLjI5Ny0uMTIxLjU4Ni0uMjU3Ljg2NC0uNDExaDUuMTM2djRoLTZ6bTcuOTY4LTcuNTcyLjAxOS0uMDAzLTIuNzc0LTE2LjY0M2MtLjIxMi0xLjI3MS0xLjMwMS0yLjE5My0yLjU4OS0yLjE5My0xLjQ0NyAwLTIuNjI0IDEuMTc3LTIuNjI0IDIuNjI0djEuMzc2aDJ2LTEuMzc2YzAtLjM0NC4yOC0uNjI0LjYyNC0uNjI0LjMwNyAwIC41NjUuMjE5LjYxNi41MjFsMi41OCAxNS40NzloLS44ODljLS4xMjktMS4wMy0uNDUxLTItLjkzNC0yLjg3IDAtLjA0NC4wMDMtLjA4Ni4wMDMtLjEzIDAtMS40Mi0uMzc2LTIuNzUxLTEuMDI3LTMuOTA4LS40NTctNC4wNTQtMy44NDEtNy4wOTItNy45NDMtNy4wOTItNC40MTEgMC04IDMuNTg5LTggOCAwIDEuMzczLjM2NCAyLjcxMyAxLjAzMSAzLjkwNC4wODIuNzIxLjI2MSAxLjQyNS41MzIgMi4wOTZoLTMuMTg3Yy4yNjMtLjY1LjQ0Mi0xLjMzLjUyNy0yLjAyOC42OTItMS4yMDggMS4wNjctMi41NzQgMS4wNjctMy45NzIgMC00LjQxMS0zLjU4OS04LTgtOC00LjA4IDAtNy40NDggMy4wMDYtNy45MzQgNy4wMjctLjY3NCAxLjE3Mi0xLjA2NiAyLjUyNi0xLjA2NiAzLjk3MyAwIC4wNDQuMDAzLjA4Ni4wMDQuMTMtLjQ4NC44Ny0uODA1IDEuODQtLjkzNSAyLjg3aC0uODg5bDIuNTgtMTUuNDc5Yy4wNTEtLjMwMi4zMDktLjUyMS42MTYtLjUyMS4zNDQgMCAuNjI0LjI4LjYyNC42MjR2MS4zNzZoMnYtMS4zNzZjMC0xLjQ0Ny0xLjE3Ny0yLjYyNC0yLjYyNC0yLjYyNC0xLjI4OCAwLTIuMzc3LjkyMi0yLjU4OCAyLjE5MmwtMi43NzQgMTYuNjQ0LjAxOS4wMDNjLS4wMS4wNTQtLjAzMy4xMDQtLjAzMy4xNjF2M2gtMXYtMjNoNDR2MjNoLTF2LTNjMC0uMDU3LS4wMjMtLjEwNy0uMDMyLS4xNjF6bTEuMDMyLTI1LjgzOXY0aC00NHYtNHptLTIwLTJoLTR2LTRjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptLTI4LTljMC0uNTUxLjQ0OS0xIDEtMWg1MGMuNTUxIDAgMSAuNDQ5IDEgMXY5aC0yMnYtNGMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY0aC0yMnptMCAxMWgydjI5Ljc0OWwtMiAzLjcxNHptMy41OTcgMzFoMS40MDN2N2MwIC41NTMuNDQ4IDEgMSAxaDQwYy41NTIgMCAxLS40NDcgMS0xdi03aDEuNDAzbDUuOTIzIDExaC01Ni42NTJ6bTUwLjQwMyAxNWgtNTZjLS41NTEgMC0xLS40NDgtMS0xdi0xaDU4djFjMCAuNTUyLS40NDkgMS0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDE2aDR2MmgtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTZoNHYyaC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMSA5aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Afe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMTMuMjA2IDEwNi4yNjVoLTEzLjYyM3YtODYuMjhhMS43NDkgMS43NDkgMCAwIDAgLTEuNTU0LTEuNzM4bC00Ni01LjE5MmExLjc1IDEuNzUgMCAwIDAgLTEuOTQ2IDEuNzM5djMuNDQxaC0xOS45MTZhMS43NSAxLjc1IDAgMCAwIC0xLjc1IDEuNzV2ODYuMjhoLTEzLjYyM2ExLjc1IDEuNzUgMCAxIDAgMCAzLjVoMzUuMjg5djMuNDQxYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzUgMS42MSAxLjYxIDAgMCAwIC4yLS4wMTFsNDUuOS01LjE4aDE1LjI3NmExLjc1IDEuNzUgMCAwIDAgMC0zLjV6bS04MS4yODktODQuNTNoMTguMTY2djQuNWgtMTEuOTE3YTEuNzUgMS43NSAwIDAgMCAtMS43NSAxLjc1djc4LjI4aC00LjV6bTggODQuNTN2LTc2LjUzaDEwLjE2NnY3Ni41M3ptMTMuNjY2LTg5LjUxMyA0Mi41IDQuOHY4NC45bC00Mi41IDQuOHoiLz4KICAgICAgICA8cGF0aCBkPSJtNjEuMTI1IDU4Ljc5MmE1LjIwOCA1LjIwOCAwIDEgMCA1LjIwOCA1LjIwOCA1LjIxNCA1LjIxNCAwIDAgMCAtNS4yMDgtNS4yMDh6bTAgNi45MTZhMS43MDggMS43MDggMCAxIDEgMS43MDgtMS43MDggMS43MSAxLjcxIDAgMCAxIC0xLjcwOCAxLjcwOHoiLz4KICAgIDwvZz4KPC9zdmc+",mfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQwMS4wNjcsMEgxMTAuOTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2NDk0LjkzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDI5MC4xMzMKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1Y4LjUzM0M0MDkuNiwzLjgxNCw0MDUuNzc3LDAsNDAxLjA2NywweiBNMzkyLjUzMyw0OTQuOTMzSDExOS40NjdWMTcuMDY3aDI3My4wNjdWNDk0LjkzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzY2LjkzMywzNC4xMzNIMTQ1LjA2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjQ2MC44YzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjIxLjg2NwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzdi00NjAuOEMzNzUuNDY3LDM3Ljk0OCwzNzEuNjQ0LDM0LjEzMywzNjYuOTMzLDM0LjEzM3ogTTM1OC40LDQ5NC45MzNIMTUzLjZWNTEuMmgyMDQuOFY0OTQuOTMzegoJCQkiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNDcuMDUzLDAtODUuMzMzLDM4LjI4MS04NS4zMzMsODUuMzMzdjguNTMzYzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTUzLjYKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxNTMuNkMzNDEuMzMzLDEwNi41NDcsMzAzLjA1Myw2OC4yNjcsMjU2LDY4LjI2N3ogTTE4Ny43MzMsMTUzLjYKCQkJYzAtMzcuNjQxLDMwLjYyNi02OC4yNjcsNjguMjY3LTY4LjI2N2MzNy42NDEsMCw2OC4yNjcsMzAuNjI2LDY4LjI2Nyw2OC4yNjdIMTg3LjczM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywxODcuNzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjE5Ni4yNjdDMjQ3LjQ2NywxOTEuNTQ4LDI0My42NDQsMTg3LjczMywyMzguOTMzLDE4Ny43MzN6IE0yMzAuNCwzMDcuMmgtNDIuNjY3VjIwNC44SDIzMC40CgkJCVYzMDcuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMTg3LjczM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMTk2LjI2N0MzNDEuMzMzLDE5MS41NDgsMzM3LjUxLDE4Ny43MzMsMzMyLjgsMTg3LjczM3ogTTMyNC4yNjcsMzA3LjJIMjgxLjZWMjA0LjhoNDIuNjY3VjMwNy4yCgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNDEuMzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjM0OS44NjdDMjQ3LjQ2NywzNDUuMTQ4LDI0My42NDQsMzQxLjMzMywyMzguOTMzLDM0MS4zMzN6IE0yMzAuNCw0NjAuOGgtNDIuNjY3VjM1OC40SDIzMC40CgkJCVY0NjAuOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMzQxLjMzM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMzQ5Ljg2N0MzNDEuMzMzLDM0NS4xNDgsMzM3LjUxLDM0MS4zMzMsMzMyLjgsMzQxLjMzM3ogTTMyNC4yNjcsNDYwLjhIMjgxLjZWMzU4LjRoNDIuNjY3VjQ2MC44CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjg1LjMzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODE0LDguNTMzLTguNTMzVjc2LjgKCQkJQzI2NC41MzMsNzIuMDgxLDI2MC43MSw2OC4yNjcsMjU2LDY4LjI2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzIwLjQzNSw5Ny42OThjLTMuMzI4LTMuMzM2LTguNzMtMy4zMzYtMTIuMDY2LDBMMjQ5Ljk2NywxNTYuMWMtMy4zMzcsMy4zMzctMy4zMzcsOC43MywwLDEyLjA2NgoJCQljMS42NjQsMS42NjQsMy44NDksMi41LDYuMDMzLDIuNWMyLjE4NSwwLDQuMzY5LTAuODM2LDYuMDMzLTIuNWw1OC40MDItNTguNDAyQzMyMy43NzIsMTA2LjQyOCwzMjMuNzcyLDEwMS4wMzUsMzIwLjQzNSw5Ny42OTh6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTI2Mi4wMzMsMTU2LjFMMjAzLjYzMSw5Ny42OWMtMy4zMjgtMy4zMzctOC43My0zLjMzNy0xMi4wNjYsMGMtMy4zMzcsMy4zMzYtMy4zMzcsOC43MywwLDEyLjA2Nmw1OC40MDIsNTguNDExCgkJCWMxLjY2NCwxLjY2NCwzLjg0OSwyLjUsNi4wMzMsMi41YzIuMTg1LDAsNC4zNjktMC44MzYsNi4wMzMtMi41QzI2NS4zNywxNjQuODMsMjY1LjM3LDE1OS40MzcsMjYyLjAzMywxNTYuMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNTkuNzMzLDQ5NC45MzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM0MwLDUwOC4xODYsMy44MjMsNTEyLDguNTMzLDUxMmg1MS4yCgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNjguMjY3LDQ5OC43NDgsNjQuNDQ0LDQ5NC45MzMsNTkuNzMzLDQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsNDk0LjkzM2gtMTAyLjRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDEwMi40CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNTEyLDQ5OC43NDgsNTA4LjE3Nyw0OTQuOTMzLDUwMy40NjcsNDk0LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Ofe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjBhOTYgOTYgMCAxIDAgOTYgOTYgOTYuMTA4IDk2LjEwOCAwIDAgMCAtOTYtOTZ6bTAgMTc2YTgwIDgwIDAgMSAxIDgwLTgwIDgwLjA5MSA4MC4wOTEgMCAwIDEgLTgwIDgweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYgMTI4YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjguMTQ1IDEyOC4xNDUgMCAwIDAgLTEyOC0xMjh6bTAgMjQwYTExMiAxMTIgMCAxIDEgMTEyLTExMiAxMTIuMTI3IDExMi4xMjcgMCAwIDEgLTExMiAxMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMiA0ODh2LTQ2NGE4IDggMCAwIDAgLTgtOGgtMzM2YTggOCAwIDAgMCAtOCA4djQ2NGE4IDggMCAwIDAgOCA4aDMzNmE4IDggMCAwIDAgOC04em0tMzM2LTM3NmgzMjB2MzA0aC0zMjB6bTk2LTgwaDE0NHY0MGE4IDggMCAwIDAgOCA4aDcydjE2aC0yMjR6bTIyNCAzMmgtNjR2LTMyaDY0em0tMjQwLTMydjY0aC04MHYtNjR6bS04MCA0NDh2LTQ4aDMyMHY0OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDQwYTI0IDI0IDAgMSAwIDI0IDI0IDI0LjAyNyAyNC4wMjcgMCAwIDAgLTI0LTI0em0wIDMyYTggOCAwIDEgMSA4LTggOC4wMDkgOC4wMDkgMCAwIDEgLTggOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTEyIDU2aDQ4djE2aC00OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDQwaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDcyaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjcyIDIwMGE4IDggMCAwIDAgLTE2IDBjMCA2LjM3My0yLjQxNyA5LjE5MS02LjA3NCAxMy40NTgtNC40MjYgNS4xNTktOS45MjYgMTEuNTgtOS45MjYgMjMuODcyczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTMtNi4wNzQgMTMuNDYxYy00LjQyNiA1LjE1OS05LjkyNiAxMS41ODEtOS45MjYgMjMuODc0YTggOCAwIDAgMCAxNiAwYzAtNi4zNzUgMi40MTctOS4xOTQgNi4wNzQtMTMuNDYyIDQuNDIzLTUuMTU5IDkuOTI2LTExLjU4IDkuOTI2LTIzLjg3M3MtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXMyLjQxNy05LjE5MSA2LjA3NC0xMy40NThjNC40MjYtNS4xNTkgOS45MjYtMTEuNTggOS45MjYtMjMuODcyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTYgMjM3LjMzYzAtNi4zNzMgMi40MTctOS4xOTIgNi4wNzUtMTMuNDYuODEyLS45NDcgMS42MjMtMS45IDIuNDA3LTIuODc4YTggOCAwIDAgMCAtMTIuNS05Ljk4NGMtLjY2OC44MzYtMS4zNjEgMS42NDEtMi4wNTMgMi40NDktNC40MjkgNS4xNTktOS45MjkgMTEuNTgxLTkuOTI5IDIzLjg3M3M1LjUgMTguNzE0IDkuOTI2IDIzLjg3M2MzLjY1NyA0LjI2OCA2LjA3NCA3LjA4NyA2LjA3NCAxMy40NjJzLTIuNDE3IDkuMTk0LTYuMDc1IDEzLjQ2MmMtLjgxMy45NDktMS42MjUgMS45LTIuNDA5IDIuODgxYTggOCAwIDAgMCAxMi41IDkuOTg0Yy42NjgtLjgzNyAxLjM2Mi0xLjY0NCAyLjA1NC0yLjQ1MiA0LjQzLTUuMTYgOS45My0xMS41ODIgOS45My0yMy44NzVzLTUuNS0xOC43MTUtOS45MjYtMjMuODc0Yy0zLjY1Ny00LjI2OC02LjA3NC03LjA5MS02LjA3NC0xMy40NjF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxNiAyMzcuMzNjMC02LjM3MyAyLjQxNy05LjE5MiA2LjA3NS0xMy40Ni44MTItLjk0NyAxLjYyMy0xLjkgMi40MDctMi44NzhhOCA4IDAgMCAwIC0xMi41LTkuOTg0Yy0uNjY4LjgzNi0xLjM2MSAxLjY0MS0yLjA1MyAyLjQ0OS00LjQyOSA1LjE1OS05LjkyOSAxMS41ODEtOS45MjkgMjMuODczczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTQtNi4wNzUgMTMuNDYyYy0uODEzLjk0OS0xLjYyNSAxLjktMi40MDkgMi44ODFhOCA4IDAgMCAwIDEyLjUgOS45ODRjLjY2OC0uODM3IDEuMzYyLTEuNjQ0IDIuMDU0LTIuNDUyIDQuNDMtNS4xNiA5LjkzLTExLjU4MiA5LjkzLTIzLjg3NXMtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXoiLz4KICAgIDwvZz4KPC9zdmc+",Efe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3Ni4wNjUgNDc2LjA2NSI+CjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+Cgk8cGF0aCBkPSJNNDMyLjU1OCwxNzIuMDJDNDE5LjMwMyw2NC41ODcsMzIxLjQ2Ni0xMS43NiwyMTQuMDMzLDEuNDk1UzMwLjI1MywxMTIuNTg3LDQzLjUwOCwyMjAuMDIKCQljMTEuMDA4LDg5LjIyMiw4MS4zMDMsMTU5LjUxNywxNzAuNTI1LDE3MC41MjV2MzcuNTJoLTU2Yy0xMy4yNTUsMC0yNCwxMC43NDUtMjQsMjR2MjRoMjA4di0yNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTU2CgkJdi0zNy41MkMzNjkuNDY2LDM3Ny4yOSw0NDUuODEzLDI3OS40NTMsNDMyLjU1OCwxNzIuMDJ6IE0zMTguMDMzLDQ0NC4wNjVjNC40MTgsMCw4LDMuNTgyLDgsOHY4aC0xNzZ2LThjMC00LjQxOCwzLjU4Mi04LDgtOAoJCUgzMTguMDMzeiBNMjMwLjAzMyw0MjguMDY1di0zMmgxNnYzMkgyMzAuMDMzeiBNMjM4LjAzMywzNzYuMDY1Yy05OS40MTEsMC0xODAtODAuNTg5LTE4MC0xODAKCQljMC4xMTUtOTkuMzY0LDgwLjYzNi0xNzkuODg1LDE4MC0xODBjOTkuNDExLDAsMTgwLDgwLjU4OSwxODAsMTgwUzMzNy40NDQsMzc2LjA2NSwyMzguMDMzLDM3Ni4wNjV6Ii8+Cgk8cGF0aCBkPSJNNDA2LjAzMywyMTIuMDY1di0xNmMwLTQuNDE4LTMuNTgyLTgtOC04aC05My41MzZjMzkuOC0yNy44MzIsNDkuNTAyLTgyLjY1OCwyMS42Ny0xMjIuNDU4CgkJYy0xNi40NjctMjMuNTQ4LTQzLjQtMzcuNTY1LTcyLjEzNC0zNy41NDJoLTE2Yy00LjQxOCwwLTgsMy41ODItOCw4djkzLjUzNmMtMjcuODMyLTM5LjgtODIuNjU4LTQ5LjUwMi0xMjIuNDU4LTIxLjY3CgkJYy0yMy41NDgsMTYuNDY3LTM3LjU2NSw0My40LTM3LjU0Miw3Mi4xMzR2MTZjMCw0LjQxOCwzLjU4Miw4LDgsOGg5My41MzZjLTIzLjQ2NSwxNi40NzgtMzcuNDYzLDQzLjMyOC0zNy41MzYsNzIKCQljMC4wNTcsNDguNTc3LDM5LjQyMyw4Ny45NDMsODgsODhoMTZjNC40MTgsMCw4LTMuNTgyLDgtOHYtOTMuNTM2YzI3LjgzMiwzOS44LDgyLjY1OCw0OS41MDIsMTIyLjQ1OCwyMS42NwoJCUMzOTIuMDM4LDI2Ny43MzMsNDA2LjA1NiwyNDAuOCw0MDYuMDMzLDIxMi4wNjV6IE0yNDYuMDMzLDQ0LjA2NWg4YzM5Ljc2NCwwLjA1NSw3MS45NTUsMzIuMzM2LDcxLjksNzIuMQoJCWMtMC4wNDMsMzEuMTctMjAuMTM4LDU4Ljc3Mi00OS43ODgsNjguMzg4Yy00LjIwMi0xNC4wNTItMTUuNzU4LTI0LjY3Ny0zMC4xMTItMjcuNjg4VjQ0LjA2NXogTTg2LjAzMywxODguMDY1di04CgkJYzAuMDczLTM5Ljc2NCwzMi4zNjgtNzEuOTQsNzIuMTMzLTcxLjg2N2MzMS4xNDgsMC4wNTcsNTguNzI3LDIwLjEzOCw2OC4zNDcsNDkuNzYzYy0xNC4wNDcsNC4yMDMtMjQuNjY4LDE1Ljc1NS0yNy42OCwzMC4xMDQKCQlIODYuMDMzeiBNMjMwLjAzMywzNDguMDY1aC04Yy0zOS43NjQtMC4wNTUtNzEuOTU1LTMyLjMzNi03MS45LTcyLjFjMC4wNDMtMzEuMTcsMjAuMTM4LTU4Ljc3Miw0OS43ODgtNjguMzg4CgkJYzQuMjAyLDE0LjA1MiwxNS43NTgsMjQuNjc3LDMwLjExMiwyNy42ODhWMzQ4LjA2NXogTTIzOC4wMzMsMjIwLjA2NWMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNAoJCXMyNCwxMC43NDUsMjQsMjRTMjUxLjI4NywyMjAuMDY1LDIzOC4wMzMsMjIwLjA2NXogTTMxNy45LDI4My45MzJjLTMxLjE0OC0wLjA1Ny01OC43MjctMjAuMTM4LTY4LjM0Ny00OS43NjMKCQljMTQuMDQ3LTQuMjAzLDI0LjY2OC0xNS43NTUsMjcuNjgtMzAuMTA0aDExMi44djhDMzg5Ljk1OSwyNTEuODMsMzU3LjY2NCwyODQuMDA2LDMxNy45LDI4My45MzJ6Ii8+CjwvZz4KPC9zdmc+Cg==",ffe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk5LDEyNi4wMDFoLTAuMDI3YzYuMjkyLTguMzYyLDEwLjAyNy0xOC43NTIsMTAuMDI3LTMwYzAtMjcuNTctMjIuNDMtNTAuMDAxLTUwLTUwLjAwMQoJCXMtNTAuMDAxLDIyLjQzLTUwLjAwMSw1MC4wMDFjMCwxMS4yNDgsMy43MzYsMjEuNjM4LDEwLjAyNywzMGgtMC4wMjdjLTUuNTIyLDAtMTAsNC40NzctMTAsMTB2MzUuNTQ1CgkJYy0xMS4zMjgtNy4yMzMtMjMuMTI4LTEzLjY1OC0zNS4zMzQtMTkuMjQxdi0xNi4zMDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAsNC40NzctMTAsMTB2OC4wMzcKCQljLTMuMzY5LTEuMjQ3LTYuNzY0LTIuNDM4LTEwLjE4Ni0zLjU2MmMtOC4yOTEtMi43MjMtMTYuNjgzLTUuMDUyLTI1LjE0Ni03LjAxMXYtMjAuODMzYzAtNS41MjMtNC40NzgtMTAtMTAtMTAKCQljLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTYuOTMyYy0xMS42OC0xLjg0OS0yMy40NzQtMi45NzQtMzUuMzMyLTMuMzgxVjk2LjAwMWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJdjMwLjE4M2MtMTEuODU5LDAuNDA3LTIzLjY1MywxLjUzMi0zNS4zMzMsMy4zODF2LTE2LjkzMmMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjIwLjgzMwoJCWMtOC40NjIsMS45NTktMTYuODUyLDQuMjg3LTI1LjE0Miw3LjAwOWMtMy40MjQsMS4xMjQtNi44MTksMi4zMTYtMTAuMTkxLDMuNTYzdi04LjAzN2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwCgkJYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjE2LjMwNGMtMTIuMjA1LDUuNTgzLTI0LjAwNCwxMi4wMDctMzUuMzM0LDE5LjI0di0zNS41NDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMC4wMjcKCQljNi4yOTMtOC4zNjIsMTAuMDI3LTE4Ljc1MiwxMC4wMjctMzBjMC0yNy41Ny0yMi40My01MC01MC01MHMtNTAsMjIuNDMtNTAsNTBjMCwxMS4yNDgsMy43MzQsMjEuNjM4LDEwLjAyNywzMEgxMAoJCWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYzMTkuOTk5YzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDBoNDBoMzEuMDMzYzUuNTIyLDAsMTAtNC40NzcsMTAtMTBjMC01LjUyMi00LjQ3OC0xMC0xMC0xMEgxMDAKCQl2LTIwLjAwMWgzMTEuOTk4djIwLjAwMWgtMjEuMDMzYy01LjUyMywwLTEwLDQuNDc4LTEwLDEwYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoMzEuMDMzaDQwLjAwMWg0MGM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwCgkJVjEzNi4wMDFDNTExLjk5OSwxMzAuNDc3LDUwNy41MjEsMTI2LjAwMSw1MDEuOTk5LDEyNi4wMDF6IE04MCw0NDUuOTk5SDUwSDIwVjE0Ni4wMDFoMjB2NDEuODk4YzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQlzMTAtNC40NzcsMTAtMTB2LTQxLjg5OGgyMFY0NDUuOTk5eiBNNTAsMTI2LjAwMWMtMTYuNTQzLDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1Ny0zMCwzMC0zMGMxNi41NDMsMCwzMCwxMy40NTgsMzAsMzAKCQlTNjYuNTQzLDEyNi4wMDEsNTAsMTI2LjAwMXogTTEzNS4zMzQsNDA1Ljk5OEgxMDBWMTk1LjYyOWMxMS4zMTgtOC4wMiwyMy4xMjYtMTUuMDk1LDM1LjMzNC0yMS4yMThWNDA1Ljk5OHogTTE5MC42NjcsNDA2CgkJaC0zNS4zMzNWMTY1LjM4NGMxMS41LTQuNjMsMjMuMjk4LTguNDQ5LDM1LjMzMy0xMS40MzdWNDA2eiBNMjQ2LDQwNmgtMzUuMzMzVjE0OS43ODdjMTEuNjE0LTEuOTU4LDIzLjQwOS0zLjE2OCwzNS4zMzMtMy41OTkKCQlWNDA2eiBNMzAxLjMzMiw0MDUuOTk4SDI2NnYtMjU5LjgxYzExLjkyNCwwLjQzMSwyMy43MTcsMS42NDEsMzUuMzMyLDMuNTk5VjQwNS45OTh6IE0zNTYuNjY0LDQwNS45OTloLTM1LjMzMlYxNTMuOTQ4CgkJYzEyLjAzNSwyLjk4OCwyMy44MzIsNi44MDcsMzUuMzMyLDExLjQzOFY0MDUuOTk5eiBNNDExLjk5OCw0MDUuOTk4aC0zNS4zMzRWMTc0LjQxMmMxMi4yMDksNi4xMjMsMjQuMDE3LDEzLjIsMzUuMzM0LDIxLjIyCgkJVjQwNS45OTh6IE00OTEuOTk5LDQ0NS45OTloLTMwaC0zMC4wMDFWMTQ2LjAwMWgyMC4wMDF2NDEuODk4YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtNDEuODk4aDIwCgkJVjQ0NS45OTl6IE00NjEuOTk5LDEyNi4wMDFjLTE2LjU0MiwwLTMwLjAwMS0xMy40NTgtMzAuMDAxLTMwYzAtMTYuNTQzLDEzLjQ1OS0zMC4wMDEsMzAuMDAxLTMwLjAwMQoJCWMxNi41NDIsMCwzMCwxMy40NTgsMzAsMzAuMDAxQzQ5MS45OTksMTEyLjU0Miw0NzguNTQxLDEyNi4wMDEsNDYxLjk5OSwxMjYuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTAsNDQ1Ljk5OWgtMC4yMzZjLTUuNTIzLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMEgxNTBjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCUMxNjAsNDUwLjQ3NywxNTUuNTIzLDQ0NS45OTksMTUwLDQ0NS45OTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Mi4yMzQsNDQ1Ljk5OWgtMC4yMzdjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3OCwxMCwxMCwxMGgwLjIzN2M1LjUyMywwLDEwLTQuNDc3LDEwLTEwCgkJQzM3Mi4yMzQsNDUwLjQ3NywzNjcuNzU4LDQ0NS45OTksMzYyLjIzNCw0NDUuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MCwyMDYuNjMxYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzcsMTAsMTAsMTBzMTAtNC40NzcsMTAtMTB2LTAuMjM1CgkJQzYwLDIxMS4xMDgsNTUuNTIzLDIwNi42MzEsNTAsMjA2LjYzMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjk5OSwyMDYuNjMxYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtMC4yMzUKCQlDNDcxLjk5OSwyMTEuMTA4LDQ2Ny41MjEsMjA2LjYzMSw0NjEuOTk5LDIwNi42MzF6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",xfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuMDA1LDEwOC4wMDNjLTEzLjI1NSwwLTI0LDEwLjc0NS0yNCwyNGMwLDQuNDE4LDMuNTgyLDgsOCw4czgtMy41ODIsOC04czMuNTgyLTgsOC04czgtMy41ODIsOC04CgkJCVMxMDguNDIzLDEwOC4wMDMsMTA0LjAwNSwxMDguMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zODUuMzU3LDc2LjExNWwtMjgwLTQ4Yy0wLjQ0Ny0wLjA3My0wLjg5OS0wLjExMS0xLjM1Mi0wLjExMkM0Ni42MTIsMjcuOTU2LDAuMDQ3LDc0LjQ0NCwwLDEzMS44MzcKCQkJYy0wLjAyNiwzMS4wNTksMTMuODQzLDYwLjUwMSwzNy44MDUsODAuMjYxbDU4LjQ0LDIzMy44NDhjMC44OTIsMy41NTksNC4wOTEsNi4wNTYsNy43Niw2LjA1Nmg2NAoJCQljNC40MTgsMC4wMDgsOC4wMDctMy41NjYsOC4wMTUtNy45ODVjMC0wLjE3MS0wLjAwNS0wLjM0MS0wLjAxNS0wLjUxMWwtMTMuNi0yMTcuNGwyMjIuOTItMzguMjE2CgkJCWMzLjg1NC0wLjY0NSw2LjY3OS0zLjk4LDYuNjgtNy44ODh2LTk2QzM5Mi4wMDcsODAuMTA1LDM4OS4xOTksNzYuNzczLDM4NS4zNTcsNzYuMTE1eiBNMTEwLjI1Myw0MzYuMDAzTDU3LjYwNSwyMjUuMTcxCgkJCWMwLjUwNCwwLjI0OCwxLjA0LDAuNDE2LDEuNTQ0LDAuNjY0YzIuNTc2LDEuMjMyLDUuMTg5LDIuMzUyLDcuODQsMy4zNmMwLjc0NCwwLjI4LDEuNDY0LDAuNiwyLjIwOCwwLjg2NAoJCQljMy4zMTksMS4xNzQsNi42OTcsMi4xNzUsMTAuMTIsM2MwLjgsMC4xOTIsMS42LDAuMzI4LDIuNCwwLjUwNGMyLjc2OCwwLjU5Miw1LjU2NSwxLjA3Nyw4LjM5MiwxLjQ1NgoJCQljMS4wMDgsMC4xMjgsMi4wMTYsMC4yNjQsMy4wMjQsMC4zNjhjMy42MTEsMC4zOSw3LjI0LDAuNTk2LDEwLjg3MiwwLjYxNmMwLjQ1My0wLjAwMSwwLjkwNS0wLjAzOSwxLjM1Mi0wLjExMmw0MS4yMTYtNy4wODgKCQkJbDEyLjkyLDIwNy4ySDExMC4yNTN6IE0zNDQuMDA1LDE3OC43MzlsLTIzOC4wODgsNDAuOGwtMi41NzYsMC40NjRjLTQ4LjM2Ny0wLjMwNC04Ny4zOTktMzkuNjMyLTg3LjMzNi04OAoJCQljMC4wNTUtNDguMzIsMzkuMDE4LTg3LjU3OSw4Ny4zMzYtODhsMjQwLjY2NCw0MS4yNjRWMTc4LjczOXogTTM3Ni4wMDUsMTczLjI1OWwtMTYsMi43NDR2LTg4bDE2LDIuNzQ0VjE3My4yNTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNC4wMDUsNzYuMDAzYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMxNjAuMDA1LDEwMS4wNzUsMTM0LjkzMyw3Ni4wMDMsMTA0LjAwNSw3Ni4wMDN6IE0xMDQuMDA1LDE3Mi4wMDNjLTIyLjA5MSwwLTQwLTE3LjkwOS00MC00MGMwLjAyNi0yMi4wOCwxNy45Mi0zOS45NzQsNDAtNDAKCQkJYzIyLjA5MSwwLDQwLDE3LjkwOSw0MCw0MFMxMjYuMDk3LDE3Mi4wMDMsMTA0LjAwNSwxNzIuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDEuOTMzLDQxMS41MjNsLTkuNjY0LTE1NS4wMjRjLTAuMjc2LTQuNDE4LTQuMDgyLTcuNzc2LTguNS03LjVjLTQuNDE4LDAuMjc2LTcuNzc2LDQuMDgyLTcuNSw4LjVsOS42NjQsMTU1CgkJCWMwLjI2Myw0LjIyNywzLjc3Myw3LjUxNiw4LjAwOCw3LjUwNGMwLjE2OCwwLDAuMzM2LDAsMC41MDQsMEMxMzguODU0LDQxOS43MjgsMTQyLjIwNyw0MTUuOTMyLDE0MS45MzMsNDExLjUyM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDcyLjAwNSwxMjQuMDAzaC00OGMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGg0OGM0LjQxOCwwLDgtMy41ODIsOC04UzQ3Ni40MjMsMTI0LjAwMyw0NzIuMDA1LDEyNC4wMDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ3Mi4wMDUsMTU2LjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDE1Ni4wMDMsNDcyLjAwNSwxNTYuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzIuMDA1LDkyLjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDkyLjAwMyw0NzIuMDA1LDkyLjAwM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",_fe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OC40NTcsNzcuMjI3YTguMDYzLDguMDYzLDAsMCwwLTEwLjQsMTIuMzI1djYuOTI3YTUuMjczLDUuMjczLDAsMCwwLDEwLjU0NSwwVjg5LjU1M2E4LjA2Myw4LjA2MywwLDAsMC0uMTQ2LTEyLjMyNlpNNDUuODc0LDg3LjI0YTEuNzUsMS43NSwwLDAsMC0uNzcxLDEuNDUxdjcuNzg3YTEuNzczLDEuNzczLDAsMCwxLTMuNTQ1LDBWODguNjkxYTEuNzQ3LDEuNzQ3LDAsMCwwLS43NzMtMS40NTFBNC41NjYsNC41NjYsMCwwLDEsNDIuNCw3OC45NzhhNC44NzYsNC44NzYsMCwwLDEsLjk0LS4wOTIsNC41LDQuNSwwLDAsMSwyLjg5MywxLjA0MSw0LjU2Miw0LjU2MiwwLDAsMS0uMzU2LDcuMzEzWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDUuMjI4LDQ0LjY2Myw2NS41OCw0My4zNlYxOS41MTRhNS4zNyw1LjM3LDAsMCwwLTUuMzYzLTUuMzY0SDI2LjQ0M2E1LjM3LDUuMzcsMCwwLDAtNS4zNjMsNS4zNjR2ODguOTcyYTUuMzcsNS4zNywwLDAsMCw1LjM2Myw1LjM2NEg2MC4yMTdhNS4zNyw1LjM3LDAsMCwwLDUuMzYzLTUuMzY0VjU5LjhsMzkuNjQ4LTEuM2ExLjc1LDEuNzUsMCwwLDAsMS42OTItMS43NDlWNDYuNDEyQTEuNzUsMS43NSwwLDAsMCwxMDUuMjI4LDQ0LjY2M1pNNjIuMDgsMTA4LjQ4NmExLjg2NiwxLjg2NiwwLDAsMS0xLjg2MywxLjg2NEgyNi40NDNhMS44NjYsMS44NjYsMCwwLDEtMS44NjMtMS44NjRWMTkuNTE0YTEuODY2LDEuODY2LDAsMCwxLDEuODYzLTEuODY0SDYwLjIxN2ExLjg2NiwxLjg2NiwwLDAsMSwxLjg2MywxLjg2NFY0My4yNDVsLTYuMjY3LS4yMDZhMTUuMTI3LDE1LjEyNywwLDEsMCwwLDE3LjA4Nmw2LjI2NC0uMjA2Wk00NC4zOSw2MC41aDBMNTEsNjAuMjg0YTExLjYxMiwxMS42MTIsMCwxLDEsLjA0LTE3LjRsLTYuNjQ5LS4yMTloLS4wNThBOC45Miw4LjkyLDAsMSwwLDQ0LjM5LDYwLjVabTU5LjAzLTUuNDQyLTM5LjU4NywxLjNoLS4wMDhMNDQuMzM0LDU3YTUuNDIsNS40MiwwLDAsMS0uMDI3LTEwLjg0bDU5LjExMywxLjk0M1oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Sfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuMzQsMTE3LjMzNmMtNS45MDYsMC0xMC42ODgsNC43NzMtMTAuNjg4LDEwLjY2NHY4NS4zMzVINDY5LjM0di0yMS4zMzZjMC0yMy41MjMtMTkuMTU2LTQyLjY2My00Mi42ODgtNDIuNjYzCgkJYy0xMi43MTgsMC0yNC4xNTUsNS42MDktMzEuOTk5LDE0LjQ5MWMtNy44MTItOC44ODItMTkuMjUtMTQuNDkxLTMyLTE0LjQ5MWMtMTIuNzE4LDAtMjQuMTU1LDUuNjA5LTMxLjk5OSwxNC40OTEKCQljLTcuODEyLTguODgyLTE5LjI1LTE0LjQ5MS0zMi0xNC40OTFjLTEyLjcxOSwwLTI0LjE1Niw1LjYwOS0zMS45OTIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxCgkJYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxCgkJYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xOS44MzUsMC0zNi41NywxMy42MTYtNDEuMzIsMzEuOTk5SDMyYy01Ljg5MSwwLTEwLjY2NCw0Ljc3My0xMC42NjQsMTAuNjY0djIxLjMzNkgxMC42NjQKCQlDNC43NzMsMjEzLjMzNSwwLDIxOC4xMDgsMCwyMjMuOTk5czQuNzczLDEwLjY2NCwxMC42NjQsMTAuNjY0aDEwLjY3MnYyMS4zMzZjMCw1Ljg5MSw0Ljc3MywxMC42NjQsMTAuNjY0LDEwLjY2NGgzMnYyMDIuNjc4CgkJYzAsMjMuNTE2LDE5LjE0MSw0Mi42NTYsNDIuNjY0LDQyLjY1NmMxMi43NDIsMCwyNC4xOC01LjYyNSwzMi0xNC41YzcuODI4LDguODc1LDE5LjI3MywxNC41LDMyLDE0LjUKCQljMTIuNzQyLDAsMjQuMTgtNS42MjUsMzItMTQuNWM3LjgyOCw4Ljg3NSwxOS4yNzMsMTQuNSwzMiwxNC41YzEyLjc0MiwwLDI0LjE4LTUuNjI1LDMyLTE0LjUKCQljNy44MzYsOC44NzUsMTkuMjczLDE0LjUsMzEuOTkyLDE0LjVjMTIuNzUsMCwyNC4xODgtNS42MjUsMzItMTQuNWM3Ljg0NCw4Ljg3NSwxOS4yODEsMTQuNSwzMS45OTksMTQuNQoJCWMxMi43NSwwLDI0LjE4OC01LjYyNSwzMi0xNC41YzcuODQ0LDguODc1LDE5LjI4MSwxNC41LDMxLjk5OSwxNC41YzIzLjUzMSwwLDQyLjY4OC0xOS4xNDEsNDIuNjg4LTQyLjY1NlYyMzQuNjYzaDMyCgkJYzUuODc1LDAsMTAuNjU2LTQuNzczLDEwLjY1Ni0xMC42NjRWMTI4QzUxMS45OTYsMTIyLjEwOSw1MDcuMjE1LDExNy4zMzYsNTAxLjM0LDExNy4zMzZ6IE02NCwyNDUuMzM1SDQyLjY2NHYtNDIuNjcySDY0VjI0NS4zMzUKCQl6IE0xMjcuOTk5LDQ2OS4zNDFjMCwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMjU1Ljk5OXYtNjQKCQljMC0xMS43NTgsOS41Ny0yMS4zMzYsMjEuMzI4LTIxLjMzNmMxMS43NzMsMCwyMS4zMzYsOS41NzgsMjEuMzM2LDIxLjMzNlY0NjkuMzQxeiBNMTkxLjk5OSw0NjkuMzQxCgkJYy0wLjAwMSwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2CgkJYzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6IE0yNTUuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzM2LDIxLjMxMgoJCWMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2YzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6CgkJIE0zMTkuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzUsMC0yMS4zMTItOS41NjItMjEuMzEyLTIxLjMxMlYxOTEuOTk5CgkJYzAtMTEuNzU4LDkuNTYyLTIxLjMzNiwyMS4zMTItMjEuMzM2YzExLjc4MSwwLDIxLjM0NCw5LjU3OCwyMS4zNDQsMjEuMzM2VjQ2OS4zNDF6IE0zODMuOTk3LDQ2OS4zNDEKCQljMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzQ5LDAtMjEuMzEyLTkuNTYyLTIxLjMxMi0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU2Mi0yMS4zMzYsMjEuMzEyLTIxLjMzNgoJCWMxMS43ODEsMCwyMS4zNDQsOS41NzgsMjEuMzQ0LDIxLjMzNlY0NjkuMzQxeiBNNDQ3Ljk5Niw0NjkuMzQxYzAsMTEuNzUtOS41NjIsMjEuMzEyLTIxLjM0NCwyMS4zMTIKCQljLTExLjc0OSwwLTIxLjMxMi05LjU2Mi0yMS4zMTItMjEuMzEyVjE5MS45OTljMC0xMS43NTgsOS41NjItMjEuMzM2LDIxLjMxMi0yMS4zMzZjMTEuNzgxLDAsMjEuMzQ0LDkuNTc4LDIxLjM0NCwyMS4zMzZWNDY5LjM0MQoJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU2Ljg3MSwxMDMuNjcyYy0xLjMxMi00LjUzOS0wLjUtNy44NDQsMi42ODgtMTEuMDU1YzguNjU2LTguNjk1LDExLjUzMS0xOS45ODQsOC4wNjItMzEuODEyCgkJCWMtMi4zMTItNy45MzgtNi44MTItMTMuNTQ3LTcuMzc1LTE0LjI1Yy0wLjAzMSwwLTAuMDMxLTAuMDA4LTAuMDMxLTAuMDA4di0wLjAxNWMtMS45NjktMi4zNTktNC45MDYtMy44NjctOC4yMTktMy44NjcKCQkJYy01Ljg5LDAtMTAuNjU1LDQuNzgxLTEwLjY1NSwxMC42NzJjMCwyLjU4NiwwLjkwNiw0Ljk2MSwyLjQzOCw2LjgwNWMwLjAzMSwwLjAyMywyLjI4MSwyLjkzOCwzLjM3NSw2LjY1NgoJCQljMS4yNjYsNC4zNjcsMC40NjksNy41ODYtMi43MTksMTAuNzY2Yy04LjYyNSw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc4LDMxLjk5OGMyLjMyOCw4LjEwMiw2LjgyOCwxMy44MzYsNy4zMjgsMTQuNDY5di0wLjAwOAoJCQljMS45NjksMi40MjIsNC45NTMsMy45NzcsOC4zMTIsMy45NzdjNS44OTEsMCwxMC42NTYtNC43NzMsMTAuNjU2LTEwLjY2NGMwLTIuNTM5LTAuODc1LTQuODY3LTIuMzQ0LTYuNjk1CgkJCUMzNjAuMjc4LDExMC42MSwzNTcuOTY1LDEwNy41NTUsMzU2Ljg3MSwxMDMuNjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNjguNjU2LDk2LjYxYy0yLjQ2MS05LjgzNi0wLjQ5Mi0xOC4xOTUsNi0yNS41NDdjMTEuNDA2LTEyLjg5MSwxNS4wMzEtMjguNjk1LDEwLjUtNDUuNzI2CgkJCWMtMy4xODgtMTEuOTM4LTkuMzEyLTIwLjIyNy0xMC0yMS4xMzNWNC4yMmMtMS45NjktMi41NTUtNS4wMjMtNC4yMTktOC40OTItNC4yMTljLTUuODkzLDAtMTAuNjY2LDQuNzczLTEwLjY2NiwxMC42NjQKCQkJYzAsMi40MTQsMC44MDUsNC42MzMsMi4xNTYsNi40MTRoLTAuMDE2YzAuMDQ3LDAuMDYyLDQuNDkyLDYuMTA5LDYuNTQ3LDE0LjMyYzIuNDUzLDkuODI3LDAuNDg0LDE4LjE4Ny02LjAxNiwyNS41MzgKCQkJYy0xMS4zOSwxMi44OTEtMTUuMDE1LDI4LjY5Ni0xMC40ODMsNDUuNzI3YzMuMTcyLDExLjkzOCw5LjMwNSwyMC4yMjcsOS45ODQsMjEuMTMzbDAuMDE2LTAuMDE2CgkJCWMxLjk0NSwyLjU3LDUuMDE2LDQuMjE5LDguNDc3LDQuMjE5YzUuODk4LDAsMTAuNjgtNC43NzMsMTAuNjgtMTAuNjY0YzAtMi40MTQtMC44MTItNC42MzMtMi4xNTYtNi40MTQKCQkJQzI3NS4xNCwxMTAuODYsMjcwLjY5NSwxMDQuODEzLDI2OC42NTYsOTYuNjF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE4OS42NCwxMTAuNjQxYy0wLjAyMy0wLjAzMS0yLjMyOC0zLjA4Ni0zLjQ0NS02Ljk2OWMtMS4zMDUtNC41MzktMC41LTcuODQ0LDIuNjk1LTExLjA1NQoJCQljOC42NjQtOC42OTUsMTEuNTIzLTE5Ljk4NCw4LjA2Mi0zMS44MTJjLTIuMzItNy45MzgtNi43ODktMTMuNTMxLTcuMzkxLTE0LjI1YzAsMCwwLTAuMDA4LTAuMDA4LTAuMDA4bC0wLjAwOC0wLjAyM3YwLjAwOAoJCQljLTEuOTYxLTIuMzU5LTQuOTA2LTMuODY3LTguMjExLTMuODY3Yy01Ljg5MSwwLTEwLjY3Miw0Ljc4MS0xMC42NzIsMTAuNjcyYzAsMi41ODYsMC45MjIsNC45NjEsMi40NTMsNi44MDUKCQkJYzAuMDIzLDAuMDIzLDIuMjczLDIuOTM4LDMuMzU5LDYuNjU2YzEuMjgxLDQuMzY3LDAuNDY5LDcuNTg2LTIuNzAzLDEwLjc2NmMtOC42NCw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc3LDMxLjk5OAoJCQljMi4zMjgsOC4xMDIsNi44MjgsMTMuODM2LDcuMzM2LDE0LjQ2OXYtMC4wMDhjMS45NjEsMi40MjIsNC45NDUsMy45NzcsOC4zMDUsMy45NzdjNS44OTEsMCwxMC42NjQtNC43NzMsMTAuNjY0LTEwLjY2NAoJCQljMC0yLjUzOS0wLjg5MS00Ljg2Ny0yLjM2Ny02LjY5NUgxODkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",kfe="PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIC0xIDQ5NiA0OTUiIHdpZHRoPSI0OTZwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ4OCAzMjAuNWgtNDB2LTMyYzAtMi4xMjg5MDYtLjgzOTg0NC00LjE2MDE1Ni0yLjM0Mzc1LTUuNjU2MjVsLTEyMC0xMjBjLTEuNDk2MDk0LTEuNTAzOTA2LTMuNTI3MzQ0LTIuMzQzNzUtNS42NTYyNS0yLjM0Mzc1aC0xNnYtMTUyYzAtNC40MjU3ODEtMy41NzQyMTktOC04LThoLTk2Yy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djE1MmgtMjRjLTIuMTI4OTA2IDAtNC4xNjAxNTYuODM5ODQ0LTUuNjU2MjUgMi4zNDM3NWwtMTIwIDEyMGMtMS41MDM5MDYgMS40OTYwOTQtMi4zNDM3NSAzLjUyNzM0NC0yLjM0Mzc1IDUuNjU2MjV2MzJoLTMyYy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djQ4YzAgNC40MjU3ODEgMy41NzQyMTkgOCA4IDhoNDgwYzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQ4YzAtNC40MjU3ODEtMy41NzQyMTktOC04LTh6bS0yODAtMzA0aDgwdjE5MmgtODB6bS0xNTIgMjc1LjMxMjUgMTE1LjMxMjUtMTE1LjMxMjVoMjAuNjg3NXY0MGMwIDQuNDI1NzgxIDMuNTc0MjE5IDggOCA4aDk2YzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQwaDEyLjY4NzVsMTE1LjMxMjUgMTE1LjMxMjV2MjguNjg3NWgtMzc2em00MjQgNzYuNjg3NWgtNDY0di0zMmg0NjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNzkuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjI3LjMxMjUgNDQwLjVjLTIuMTM2NzE5LTIuMTQ0NTMxLTMuMzEyNS00Ljk3NjU2Mi0zLjMxMjUtOHMxLjE3NTc4MS01Ljg1NTQ2OSAzLjMxMjUtOGwxMC4zNDM3NS0xMC4zNDM3NS0xMS4zMTI1LTExLjMxMjUtMTAuMzQzNzUgMTAuMzQzNzVjLTUuMTYwMTU2IDUuMTYwMTU2LTggMTIuMDE1NjI1LTggMTkuMzEyNXMyLjgzOTg0NCAxNC4xNjAxNTYgOCAxOS4zMTI1bDQuNjg3NSA0LjY4NzVjMi4xMzY3MTkgMi4xNDQ1MzEgMy4zMTI1IDQuOTc2NTYyIDMuMzEyNSA4cy0xLjE3NTc4MSA1Ljg1NTQ2OS0zLjMxMjUgOGwtMTAuMzQzNzUgMTAuMzQzNzUgMTEuMzEyNSAxMS4zMTI1IDEwLjM0Mzc1LTEwLjM0Mzc1YzUuMTYwMTU2LTUuMTYwMTU2IDgtMTIuMDE1NjI1IDgtMTkuMzEyNXMtMi44Mzk4NDQtMTQuMTYwMTU2LTgtMTkuMzEyNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3NS4zMTI1IDQ0MC41Yy0yLjEzNjcxOS0yLjE0NDUzMS0zLjMxMjUtNC45NzY1NjItMy4zMTI1LThzMS4xNzU3ODEtNS44NTU0NjkgMy4zMTI1LThsMTAuMzQzNzUtMTAuMzQzNzUtMTEuMzEyNS0xMS4zMTI1LTEwLjM0Mzc1IDEwLjM0Mzc1Yy01LjE2MDE1NiA1LjE2MDE1Ni04IDEyLjAxNTYyNS04IDE5LjMxMjVzMi44Mzk4NDQgMTQuMTYwMTU2IDggMTkuMzEyNWw0LjY4NzUgNC42ODc1YzIuMTM2NzE5IDIuMTQ0NTMxIDMuMzEyNSA0Ljk3NjU2MiAzLjMxMjUgOHMtMS4xNzU3ODEgNS44NTU0NjktMy4zMTI1IDhsLTEwLjM0Mzc1IDEwLjM0Mzc1IDExLjMxMjUgMTEuMzEyNSAxMC4zNDM3NS0xMC4zNDM3NWM1LjE2MDE1Ni01LjE2MDE1NiA4LTEyLjAxNTYyNSA4LTE5LjMxMjVzLTIuODM5ODQ0LTE0LjE2MDE1Ni04LTE5LjMxMjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjMuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI4OC41aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAyODguNWgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAgMjg4LjVoMTZ2MTZoLTE2em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Yfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDUgNTEyLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0zMjcuMTU5LDIuNzY2Yy00LjA2My0zLjY4OC0xMC4yNS0zLjY4OC0xNC4zMTMsMGMtNC42NDIsNC4xODYtMTEwLjg4OSwxMDEuMjkyLTE2MC4yMjgsMjEzLjgzOQoJCQkJYy01LjMxOC0xLjg2Ny0xMS40NC0zLjI2Ni0xOS4zNTUtMy4yNjZjLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWMxMiwwLDE3LjU2MywzLjg2NSwyNC42MDQsOC43NgoJCQkJYzguMDUyLDUuNjA0LDE4LjA4MywxMi41NzMsMzYuNzcxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N2MtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzMKCQkJCWMtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTExLjIwOCwwLTE2LjgyMy0zLjQxOS0yMy4yNDItNy44NTRjNDAuMTIxLTkyLjY2MSwxMjMuNjYxLTE3Ny40NjYsMTQ4LjYwNy0yMDEuNDkKCQkJCWMzMy4yMTksMzIuMDEsMTcwLjY2NywxNzEuODY1LDE3MC42NjcsMjk0LjY3N2MwLDk0LjEwNC03Ni41NjMsMTcwLjY2Ny0xNzAuNjY3LDE3MC42NjdjLTQyLjQ3NywwLTgyLjY2OS0xNS44MjItMTEzLjc4LTQzLjc1OAoJCQkJYzExLjU0Mi0yLjEzOCwxOC45OTQtNy4xNzcsMjUuMTg2LTExLjQ4MmM3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NmM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzYKCQkJCWMtMTIsMC0xNy41NjMtMy44NjUtMjQuNTk0LTguNzZjLTguMDYzLTUuNjA0LTE4LjA5NC0xMi41NzMtMzYuNzgxLTEyLjU3M2MtMTguNjc3LDAtMjguNjk4LDYuOTY5LTM2Ljc1LDEyLjU3MwoJCQkJYy03LjAzMSw0Ljg5Ni0xMi41ODMsOC43Ni0yNC41NzMsOC43NmMtMTEuOTY5LDAtMTcuNTIxLTMuODY1LTI0LjU0Mi04Ljc1Yy04LjA0Mi01LjYwNC0xOC4wNjMtMTIuNTgzLTM2LjcyOS0xMi41ODMKCQkJCWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzUKCQkJCWM4LjA0Miw1LjYwNCwxOC4wNjMsMTIuNTgzLDM2LjcyOSwxMi41ODNjMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NQoJCQkJYzEyLDAsMTcuNTYzLDMuODY1LDI0LjYwNCw4Ljc2YzQuMzQ1LDMuMDIzLDkuNDE0LDYuMzU1LDE1Ljk2MSw4Ljg2NWMzNi42LDQyLjk5Niw4OS42NTUsNjcuNzA4LDE0Ni4xNzQsNjcuNzA4CgkJCQljMTA1Ljg2NSwwLDE5Mi04Ni4xMzUsMTkyLTE5MkM1MTIuMDAzLDE3MS42NDEsMzM0LjcwMSw5LjU4OSwzMjcuMTU5LDIuNzY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMC42NjksMzYyLjY3MmMxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzUKCQkJCWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzQuNzczLDM2Mi42NzIsMTAuNjY5LDM2Mi42NzJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzMy4yNjMsMzQxLjMzOWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMiwwLDE3LjU2MywzLjg2NSwyNC41OTQsOC43NgoJCQkJYzguMDYzLDUuNjA0LDE4LjA5NCwxMi41NzMsMzYuNzgxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzEyLjE5OCwwLDE4LjQwNiwzLjk2OSwyNi4yNSw4Ljk5YzkuMDUyLDUuNzgxLDE5LjMxMywxMi4zNDQsMzcuNzUsMTIuMzQ0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjcKCQkJCWMwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMi4xOTgsMC0xOC40MDYtMy45NjktMjYuMjUtOC45OWMtOS4wNTItNS43ODEtMTkuMzEzLTEyLjM0NC0zNy43NS0xMi4zNDQKCQkJCWMtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU5NCw4Ljc2LTI0LjU4Myw4Ljc2Yy0xMiwwLTE3LjU2My0zLjg2NS0yNC42MDQtOC43NgoJCQkJQzE2MS45ODIsMzQ4LjMwNywxNTEuOTUxLDM0MS4zMzksMTMzLjI2MywzNDEuMzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzMuMjYzLDI3Ny4zMzljLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlDMTQzLjkzLDI4Mi4xMDksMTM5LjE1OSwyNzcuMzM5LDEzMy4yNjMsMjc3LjMzOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjMxLjQwOSwzMDcuNDMyYzcuMDMxLTQuODk2LDEyLjU5NC04Ljc2LDI0LjU5NC04Ljc2YzExLjk2OSwwLDE3LjUyMSwzLjg2NSwyNC41NDIsOC43NQoJCQkJYzguMDQyLDUuNjA0LDE4LjA2MywxMi41ODMsMzYuNzI5LDEyLjU4M2MxOC42NzcsMCwyOC43MDgtNi45NzksMzYuNzYtMTIuNTgzYzcuMDMxLTQuODg1LDEyLjU4My04Ljc1LDI0LjU2My04Ljc1CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42NzcsMC0yOC42OTgsNi45NjktMzYuNzUsMTIuNTczCgkJCQljLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzVjLTguMDQyLTUuNjA0LTE4LjA2My0xMi41ODMtMzYuNzI5LTEyLjU4MwoJCQkJYy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjcKCQkJCXM0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N0MyMTMuMzE1LDMyMC4wMDUsMjIzLjM0NiwzMTMuMDM2LDIzMS40MDksMzA3LjQzMnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",vfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTIgMTYzLjg3YzAtMTMuOS01LjQxMi0yNi45NjEtMTUuMjMzLTM2Ljc3LTkuODE1LTkuODI4LTIyLjg3Ni0xNS4yNC0zNi43NzYtMTUuMjRoLTgwLjk3Yy0yNi43MDUgMC00OC40My0yMS43MjYtNDguNDMtNDguNDMgMC0xMi45MzggNS4wMzctMjUuMTAxIDE0LjE4NC0zNC4yNDcgOS4xNDQtOS4xNDYgMjEuMzA3LTE0LjE4MyAzNC4yNDUtMTQuMTgzaDEyNS40OGM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMTI1LjQ4Yy0xNi45NDUgMC0zMi44NzQgNi41OTctNDQuODUzIDE4LjU3Ny0xMS45NzkgMTEuOTc5LTE4LjU3NyAyNy45MDgtMTguNTc3IDQ0Ljg1MyAwIDM0Ljk3NSAyOC40NTUgNjMuNDMgNjMuNDMgNjMuNDNoODAuOTdjOS44OSAwIDE5LjE4MiAzLjg1IDI2LjE2OSAxMC44NDcgNi45OTEgNi45ODIgMTAuODQxIDE2LjI3MyAxMC44NDEgMjYuMTYzIDAgOC42MzctMy4wMzggMTcuMDQ0LTguNTU3IDIzLjY3NGwtMjIuMzA1IDI2LjgyMmMtNy44ODQtMi43MjUtMTYuOTg5LS45NzItMjMuMjgyIDUuMzExbC05LjA1OCA5LjA1OGMtMjAuMzItLjQyLTQzLjA5OCAzLjk0LTYyLjgyMSA3LjQyNy00LjA3OS43MjEtNi44MDEgNC42MTMtNi4wNzkgOC42OTEuNzIxIDQuMDc5IDQuNjEzIDYuNzk5IDguNjkxIDYuMDc5IDE4Ljk0Mi0zLjM1IDM4LjM5Mi01Ljc2OCA1Ny44MDktNy4xODUgNy42ODEtLjU2NiAxNC44MzMgNC4zOTMgMTYuOTg1IDExLjc4IDEuODI3IDYuMjcgNDcuMDI3IDE2MC4xNjcgNDguNTMzIDE2Ni41NzUuNDk4IDIuMTE5LS43MzggMy42Ni0yLjkxMiAzLjY2LTIyLjc4NiAwLTQxLjA0MiAxNS42Ni00OC40NjQgMzYuNDg4aC0zMjAuMzcxYy00LjE0MiAwLTcuNSAzLjM1Ny03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDMyNy43ODdjNS40NDUgMCA5Ljg3NSA0LjQzIDkuODc1IDkuODc1cy00LjQzMSA5Ljg3NS05Ljg3NiA5Ljg3NWgtNDM2LjkwNmMzLjI2NS0xMS4zOTEgMTMuNzc1LTE5Ljc1IDI2LjItMTkuNzVoNTIuOTE5YzQuMTQyIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC00NC45NDRjNjIuNDYyLTExMS41OTggMTcxLjkwMy0xNzcuMDI3IDI5NC43NzgtMjA1LjQ4NiA0LjAzNS0uOTM1IDYuNTQ5LTQuOTYzIDUuNjE0LTguOTk5LS45MzQtNC4wMzUtNC45NjQtNi41NDktOC45OTktNS42MTQtNzEuNjMyIDE2LjU5OS0xNDMuNTkzIDQ3LjA1MS0yMDEuNDczIDkyLjYwNmwtMTAuMDcxLTEwLjA3Yy04LjYzNS04Ljc1Mi0yMy4xNTktOC42NzgtMzEuODI2LS4wMS04LjYzMSA4LjYzMi04LjcyOCAyMy4xNjYgMCAzMS44MDdsOC4wNTEgOC4wNTFjLTI5LjQ2NyAyOC45NTktNTQuMTAyIDYyLjMyLTc0LjA0MiA5OC45Mi0xOC40ODcgNC41MDItMzIuMjU2IDIxLjE5MS0zMi4yNTYgNDEuMDQ1IDAgNC4xNDMgMy4zNTggNy41IDcuNSA3LjVoNDQ1LjQ1NWMxMy43MTYgMCAyNC44NzUtMTEuMTU5IDI0Ljg3NS0yNC44NzUgMC0xMC43NS02Ljg1NS0xOS45MjctMTYuNDI0LTIzLjM5NSA1LjI2My0xMy41NzMgMTcuOTAzLTIyLjk2OSAzMi41OTgtMjIuOTY5IDExLjQ4MyAwIDIwLjMwMi0xMS40MDEgMTcuNDExLTIyLjUxLS4wMTgtLjA3MS0uMDM4LS4xNDItLjA1OC0uMjExbC00NS44NTctMTU3LjM5MSA5LjE2My05LjE1NmM3LjM1OS03LjMwMyA4LjY0NC0xOS4wOTMgMy4xOTctMjcuNzYybDIyLjExNS0yNi41OTNjNy43NTQtOS4zMTggMTIuMDI1LTIxLjEzMiAxMi4wMjUtMzMuMjY4em0tNDAzLjE0NiAxNzEuNDEzYzEuNDItMS40MjEgMy4zMDUtMi4yMDMgNS4zMDctMi4yMDMgMS45OTkgMCAzLjg3Ny43NzkgNS4yOTYgMi4yMDRsOS4wMTQgOS4wMTRjLTMuODI1IDMuMjQzLTcuNTgyIDYuNTUxLTExLjI3NCA5LjkyMmwtOC4zNDQtOC4zNDRjLTIuOTItMi45Mi0yLjkyLTcuNjcyLjAwMS0xMC41OTN6bTM1NS4yMDUtOTQuMzk4LTMuOTg2IDMuOTgzYy0yLjQ5Ni00LjQ2MS02LjAzNy04LjIwMy0xMC4yMzMtMTAuOTYxbDMuNjE5LTMuNjE5YzIuOTI2LTIuOTIgNy42OC0yLjkyMiAxMC41OTgtLjAwNCAxLjQyMSAxLjQyMSAyLjIwMyAzLjMwMiAyLjIwMyA1LjI5NyAwIDItLjc4MiAzLjg4NS0yLjIwMSA1LjMwNHptLTIxNS43NjUgOTQuNzY0Yy0xMy44MjQgNy42NTMtMjIuNDEyIDIyLjIzNS0yMi40MTIgMzguMDU2IDAgMTEuOTg3IDUuMDE5IDIzLjU2MyAxMy43NzEgMzEuNzU4IDguMDY2IDcuNTUzIDE4Ljc4OCAxMS43NTYgMjkuNzg2IDExLjc1NS45NCAwIDE1MS4wOC05LjgzOCAxNTEuMDgtOS44MzggNi45MTEtLjQ1NCAxMy4yMjUtMy45MTYgMTcuMzIyLTkuNDk4IDQuMDk2LTUuNTc5IDUuNTA3LTEyLjYzNyAzLjg3Mi0xOS4zNjJsLTE5LjUzOC04MC4zMjNjLTMuMDE3LTEyLjQwNC0xNS4xODMtMjAuMDEzLTI3LjY5My0xNy4zMjktMzAuMDk0IDYuNDY2LTU5Ljc4NyAxNS41OTQtODguMjU2IDI3LjEzLTE5Ljc2OCA4LjAxLTM5LjI1OSAxNy4zMTMtNTcuOTMyIDI3LjY1MXptMTA3LjI2NiA2MC45NjktNjcuNDMgNC40MzN2LTE3LjY4MWMwLS4yMzguMjAyLS40NC40NC0uNDRoNjYuNTVjLjI0MyAwIC40NC4xOTcuNDQuNDR6bTQyLjA3MS0xMDEuMDg1Yy42MTMtLjEzMiAxLjIyMy0uMTk1IDEuODIzLS4xOTUgMy44MTQgMCA3LjIxIDIuNTU5IDguMTQ1IDYuNDAzbDE5LjUzOCA4MC4zMjNjLjU5NSAyLjQ0Ni4xMDIgNC45MTEtMS4zODggNi45NC0xLjQ5MiAyLjAzMi0zLjY5OSAzLjI0Mi02LjIxNSAzLjQwOGwtNDguOTc0IDMuMjE5di0xMi4yNjFjMC04LjUxNC02LjkyNi0xNS40NC0xNS40NC0xNS40NGgtNjYuNTVjLTguNTE0IDAtMTUuNDQgNi45MjctMTUuNDQgMTUuNDR2MTguNjY3bC0xLjg1LjEyMmMtNy45NTcuNTE4LTE1LjU1Mi0yLjE5Mi0yMS4zNzUtNy42NDUtNS44MTktNS40NDktOS4wMjQtMTIuODM5LTkuMDI0LTIwLjgwOSAwLTEwLjM2NyA1LjYyNC0xOS45MjEgMTQuNjc3LTI0LjkzMyAxOC4xNDgtMTAuMDQ3IDM3LjA5LTE5LjA4OCA1Ni4zMDEtMjYuODczIDI3LjY2Ni0xMS4yMTEgNTYuNTI1LTIwLjA4MyA4NS43NzItMjYuMzY2eiIvPgogICAgPC9nPgo8L3N2Zz4=",bfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQzNS4yIDMyNC4yNjdoLTEwLjkwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY3Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTIzMi43NzJjLTE0LjEzOCAwLTI1LjYtMTEuNDYyLTI1LjYtMjUuNnMxMS40NjItMjUuNiAyNS42LTI1LjZoMzYuNTA2YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2g2Mi4xMDZjMTQuMTM4IDAgMjUuNi0xMS40NjIgMjUuNi0yNS42cy0xMS40NjItMjUuNi0yNS42LTI1LjZoLTYyLjEwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY2Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTM2LjUwNmMtNDIuNDE1IDAtNzYuOCAzNC4zODUtNzYuOCA3Ni44czM0LjM4NSA3Ni44IDc2LjggNzYuOGgyMzIuNzcyYzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gxMC45MDdjMTQuMTM4IDAgMjUuNiAxMS40NjIgMjUuNiAyNS42cy0xMS40NjIgMjUuNi0yNS42IDI1LjZoLTMwOS41NzJjLTMuMDI0LTUuMjYzLTguNjI0LTguNTE1LTE0LjY5NC04LjUzM3YtMTcuMDY3YzAtOS40MjYtNy42NDEtMTcuMDY3LTE3LjA2Ny0xNy4wNjdoLTE3LjA2N2MtOS40MjYgMC0xNy4wNjcgNy42NDEtMTcuMDY3IDE3LjA2N3YxNy4wNjdjLTYuMDcuMDE4LTExLjY3IDMuMjctMTQuNjk0IDguNTMzaC0xOS40MzljLTE0LjEzOCAwLTI1LjYgMTEuNDYyLTI1LjYgMjUuNnMxMS40NjIgMjUuNiAyNS42IDI1LjZoMTkuNDM5YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gzMDkuNTczYzQyLjQxNSAwIDc2LjgtMzQuMzg1IDc2LjgtNzYuOHMtMzQuMzg1LTc2LjgtNzYuOC03Ni44em0tNTkuNzMzLTI1LjZoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNzYuOC01MS4yYzAgNC43MTMtMy44MjEgOC41MzMtOC41MzMgOC41MzNoLTU5LjczNHYtMTcuMDY3aDU5LjczM2M0LjcxMyAwIDguNTM0IDMuODIxIDguNTM0IDguNTM0em0tMTE5LjQ2Ny01MS4yaDE3LjA2N3YxNy4wNjdoLTE3LjA2N3ptLTguNTMzIDM0LjEzM2g0Mi42Njd2MzQuMTMzaC01MS4ydi0zNC4xMzN6bS0xMTkuNDY3IDY4LjI2N2MuMDM4LTMyLjk3NCAyNi43NTktNTkuNjk2IDU5LjczMy01OS43MzNoMzQuMTMzdjE3LjA2NmgtMzQuMTMzYy0yMy41NjQgMC00Mi42NjcgMTkuMTAzLTQyLjY2NyA0Mi42NjdzMTkuMTAzIDQyLjY2NyA0Mi42NjcgNDIuNjY3aDIzMC40djE3LjA2NmgtMjMwLjRjLTMyLjk3NC0uMDM4LTU5LjY5NS0yNi43NTktNTkuNzMzLTU5LjczM3ptMzA3LjIgNjguMjY2di0zNC4xMzNoNTEuMnYzNC4xMzN6bS0yODEuNiAzNC4xMzRoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNTkuNzMzIDUxLjJjMC00LjcxMyAzLjgyMS04LjUzMyA4LjUzMy04LjUzM2gxNy4wNjd2MTcuMDY2aC0xNy4wNjdjLTQuNzEzIDAtOC41MzMtMy44Mi04LjUzMy04LjUzM3ptNDIuNjY2IDE3LjA2NnYtMzQuMTMzaDUxLjJ2MzQuMTMzem0zNzUuNDY3LTguNTMzaC0zMDcuMnYtMTcuMDY3aDMwNy4yYzIzLjU2NCAwIDQyLjY2Ny0xOS4xMDMgNDIuNjY3LTQyLjY2N3MtMTkuMTAzLTQyLjY2Ny00Mi42NjctNDIuNjY3aC04LjUzM3YtMTcuMDY3aDguNTMzYzMyLjk5IDAgNTkuNzMzIDI2Ljc0NCA1OS43MzMgNTkuNzMzcy0yNi43NDMgNTkuNzM1LTU5LjczMyA1OS43MzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4Ny43MzMgMTYyLjEzM2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyMS04LjUzMy04LjUzMy04LjUzMy00LjcxMyAwLTguNTMzIDMuODIxLTguNTMzIDguNTMzdjE3LjA2N2MwIDQuNzEzIDMuODIxIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xODcuNzMzIDExMC45MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTg3LjczMyA1OS43MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTU0Ljc0MyAxNTcuODY3YzEuNTEzIDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxMy0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjkuMTQzIDExMy40OTNjMS41MTMgMi42NjIgNC4zMzcgNC4zMDkgNy4zOTkgNC4zMTZzNS44OTMtMS42MjggNy40MTgtNC4yODMgMS41MTEtNS45MjQtLjAzOC04LjU2NmwtOC41MzMtMTQuNzhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMy41NDMgNjkuMTg4YzIuMzcyIDQuMDQ3IDcuNTY2IDUuNDIgMTEuNjI4IDMuMDc0IDQuMDYyLTIuMzQ1IDUuNDctNy41MyAzLjE1MS0xMS42MDhsLTguNTMzLTE0Ljc4OGMtMS41MTMtMi42NjItNC4zMzctNC4zMDktNy4zOTktNC4zMTZzLTUuODkzIDEuNjI4LTcuNDE4IDQuMjgzLTEuNTExIDUuOTI0LjAzOCA4LjU2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjA5LjA2NyAxNjAuOTljNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzhjMS41NDktMi42NDIgMS41NjMtNS45MTEuMDM4LTguNTY2cy00LjM1Ni00LjI5LTcuNDE4LTQuMjgzLTUuODg2IDEuNjU0LTcuMzk5IDQuMzE2bC04LjUzMyAxNC43OGMtMi4zNTggNC4wODEtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0LjY2NyAxMTYuNjUxYzQuMDgxIDIuMzU2IDkuMy45NTggMTEuNjU3LTMuMTIzbDguNTMzLTE0Ljc4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzhjLTIuMzU4IDQuMDgtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjYwLjI2NyA3Mi4zMTFjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzg4Yy0yLjM1OCA0LjA4MS0uOTYgOS4zIDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI3My4wNjdjNC43MTMgMCA4LjUzMy0zLjgyIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMjIxLjg2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMTcwLjY2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNTEuMDEgMjY4LjhjMi4zNzIgNC4wNDcgNy41NjYgNS40MiAxMS42MjggMy4wNzQgNC4wNjItMi4zNDUgNS40Ny03LjUzIDMuMTUxLTExLjYwOGwtOC41MzMtMTQuNzhjLTEuNTE0LTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyNS40MSAyMjQuNDI3YzEuNTE0IDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxNC0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTkuODEgMTgwLjEyMmMyLjM3MiA0LjA0NyA3LjU2NiA1LjQyIDExLjYyOCAzLjA3NCA0LjA2Mi0yLjM0NSA1LjQ3LTcuNTMgMy4xNTEtMTEuNjA4bC04LjUzMy0xNC43ODhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNS4zMzMgMjcxLjkyM2M0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4LTQuMDYyLTIuMzQ1LTkuMjU2LS45NzItMTEuNjI4IDMuMDc0bC04LjUzMyAxNC43OGMtMi4zNTcgNC4wODItLjk1OSA5LjMwMSAzLjEyMiAxMS42NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMC45MzMgMjI3LjU4NGM0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4cy05LjI1Ni0uOTcyLTExLjYyOCAzLjA3NGwtOC41MzMgMTQuNzhjLTIuMzU3IDQuMDgyLS45NTkgOS4zMDEgMy4xMjIgMTEuNjU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NTYuNTMzIDE4My4yNDVjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzIuMzE4LTQuMDc4LjkxMS05LjI2Mi0zLjE1MS0xMS42MDgtNC4wNjItMi4zNDUtOS4yNTYtLjk3Mi0xMS42MjggMy4wNzRsLTguNTMzIDE0Ljc4OGMtMi4zNTcgNC4wODItLjk1OSA5LjMgMy4xMjIgMTEuNjU3eiIvPgogICAgPC9nPgo8L3N2Zz4=",Qfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDIgNTEyLjAwMiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM5OC41ODkgMjQ2LjM0MmMtNjQuNjY2LTE3LjMyOC0xMTUuNjAxLTY4LjI2NC0xMzIuOTI5LTEzMi45MjktMS4xNzEtNC4zNzItNS4xMzMtNy40MTItOS42NTktNy40MTJzLTguNDg4IDMuMDQtOS42NTkgNy40MTJjLTE3LjMyOCA2NC42NjYtNjguMjYzIDExNS42MDEtMTMyLjkyOSAxMzIuOTI5LTQuMzcyIDEuMTcxLTcuNDEyIDUuMTMzLTcuNDEyIDkuNjU5czMuMDQgOC40ODggNy40MTIgOS42NTljNjQuNjY2IDE3LjMyOSAxMTUuNjAxIDY4LjI2NCAxMzIuOTI5IDEzMi45MjkgMS4xNzEgNC4zNzIgNS4xMzMgNy40MTIgOS42NTkgNy40MTJzOC40ODgtMy4wNCA5LjY1OS03LjQxMmMxNy4zMjgtNjQuNjY1IDY4LjI2NC0xMTUuNjAxIDEzMi45MjktMTMyLjkyOSA0LjM3Mi0xLjE3MSA3LjQxMi01LjEzMyA3LjQxMi05LjY1OXMtMy4wNC04LjQ4OC03LjQxMi05LjY1OXptLTE0Mi41ODggMTE5LjE3NmMtMjEuMDM5LTQ5LjA5Ni02MC40Mi04OC40NzgtMTA5LjUxNi0xMDkuNTE3IDQ5LjA5Ni0yMS4wMzkgODguNDc4LTYwLjQyIDEwOS41MTYtMTA5LjUxNyAyMS4wMzkgNDkuMDk3IDYwLjQyIDg4LjQ3OCAxMDkuNTE3IDEwOS41MTctNDkuMDk3IDIxLjAzOS04OC40NzggNjAuNDItMTA5LjUxNyAxMDkuNTE3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuMDM2IDIwMC40NThjLTEuODg2LTIuNTQ1LTQuODY3LTQuMDQ3LTguMDM1LTQuMDQ3cy02LjE0OSAxLjUwMS04LjAzNSA0LjA0N2MtMTMuNDE2IDE4LjEwNy0yOS40IDM0LjA5MS00Ny41MDggNDcuNTA4LTIuNTQ1IDEuODg2LTQuMDQ3IDQuODY3LTQuMDQ3IDguMDM1czEuNTAxIDYuMTQ5IDQuMDQ3IDguMDM1YzE4LjEwOCAxMy40MTYgMzQuMDkyIDI5LjQgNDcuNTA4IDQ3LjUwOCAxLjg4NiAyLjU0NSA0Ljg2NyA0LjA0NyA4LjAzNSA0LjA0N3M2LjE0OS0xLjUwMSA4LjAzNS00LjA0N2MxMy40MTYtMTguMTA4IDI5LjQtMzQuMDkyIDQ3LjUwOC00Ny41MDggMi41NDUtMS44ODYgNC4wNDctNC44NjcgNC4wNDctOC4wMzVzLTEuNTAxLTYuMTQ5LTQuMDQ3LTguMDM1Yy0xOC4xMDgtMTMuNDE3LTM0LjA5Mi0yOS40MDEtNDcuNTA4LTQ3LjUwOHptLTguMDM1IDg4LjkwOWMtMTAuMDQtMTIuMTYyLTIxLjIwNC0yMy4zMjYtMzMuMzY2LTMzLjM2NiAxMi4xNjMtMTAuMDQgMjMuMzI2LTIxLjIwNCAzMy4zNjYtMzMuMzY2IDEwLjA0IDEyLjE2MyAyMS4yMDQgMjMuMzI2IDMzLjM2NiAzMy4zNjYtMTIuMTYyIDEwLjA0LTIzLjMyNiAyMS4yMDQtMzMuMzY2IDMzLjM2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2LjAwMSA3NS45OTljNS41MjMgMCAxMC00LjQ3NyAxMC0xMHYtNTUuOTk5YzAtNS41MjMtNC40NzctMTAtMTAtMTBzLTEwIDQuNDc3LTEwIDEwdjU1Ljk5OWMwIDUuNTIzIDQuNDc3IDEwIDEwIDEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTQuNTc5IDEyOC43MjFjMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWMzLjkwNS0zLjkwNSAzLjkwNS0xMC4yMzcgMC0xNC4xNDNsLTM5LjU5Ny0zOS41OThjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDMgMHMtMy45MDUgMTAuMjM3IDAgMTQuMTQzeiIvPgogICAgICAgIDxwYXRoIGQ9Im03NiAyNTYuMDAxYzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTU2Yy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwczQuNDc3IDEwIDEwIDEwaDU2YzUuNTIyIDAgMTAtNC40NzcgMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNC41NzkgMzgzLjI4MS0zOS41OTggMzkuNTk4Yy0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDMgMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWwzOS41OTgtMzkuNTk4YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3MtMTAuMjM3LTMuOTA2LTE0LjE0MiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMDAxIDQzNi4wMDNjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2NTUuOTk5YzAgNS41MjMgNC40NzcgMTAgMTAgMTBzMTAtNC40NzcgMTAtMTB2LTU1Ljk5OWMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTcuNDI0IDM4My4yODFjLTMuOTA1LTMuOTA0LTEwLjIzNi0zLjkwNC0xNC4xNDMgMC0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDNsMzkuNTk3IDM5LjU5OGMxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MSAyLjkyOXM1LjExOS0uOTc3IDcuMDcxLTIuOTI5YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3oiLz4KICAgICAgICA8cGF0aCBkPSJtNTAyLjAwMiAyNDYuMDAxaC01NS45OTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoNTUuOTk5YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTAuMzUzIDEzMS42NDljMi41NTkgMCA1LjExOS0uOTc2IDcuMDcxLTIuOTI5bDM5LjU5Ny0zOS41OThjMy45MDUtMy45MDUgMy45MDUtMTAuMjM3IDAtMTQuMTQzcy0xMC4yMzctMy45MDUtMTQuMTQzIDBsLTM5LjU5NyAzOS41OThjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MiAyLjkyOXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYxLjg2OCAzOC43MzVjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMSA1LjA3Ny0yLjE3NSA3LjQyOC04LjA1NCA1LjI1Mi0xMy4xM2wtLjAwMy0uMDA3Yy0yLjE3NS01LjA3Ni04LjA1MS03LjQyMy0xMy4xMjktNS4yNDktNS4wNzYgMi4xNzUtNy40MjYgOC4wNTgtNS4yNSAxMy4xMzQgMS42MjUgMy43OTIgNS4zMTYgNi4wNjMgOS4xOTYgNi4wNjN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2OS44NDQgNzQuMTMxIDEzLjA1NCAzMS41MTRjMS41OTUgMy44NTEgNS4zMTggNi4xNzUgOS4yNDMgNi4xNzUgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjQgNS4xMDItMi4xMTQgNy41MjUtNy45NjMgNS40MTItMTMuMDY2bC0xMy4wNTQtMzEuNTE0Yy0yLjExNC01LjEwMy03Ljk2My03LjUyNy0xMy4wNjYtNS40MTJzLTcuNTI2IDcuOTY0LTUuNDEyIDEzLjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQuNTQyIDE3MC45NDNjMS4zNTcuNjI2IDIuNzgyLjkyMyA0LjE4NC45MjMgMy43OCAwIDcuMzk4LTIuMTU0IDkuMDg2LTUuODEyIDIuMzE0LTUuMDE0LjEyNS0xMC45NTYtNC44ODktMTMuMjdsLS4wMDYtLjAwM2MtNS4wMTMtMi4zMTUtMTAuOTUyLS4xMjUtMTMuMjY3IDQuODkxLTIuMzE2IDUuMDE0LS4xMjMgMTAuOTU2IDQuODkyIDEzLjI3MXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjYuNDc3IDE4OC4zMjEgMzEuNTE1IDEzLjA1NGMxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2IDIuMTE0LTUuMTAzLS4zMS0xMC45NTItNS40MTItMTMuMDY1bC0zMS41MTYtMTMuMDU0Yy01LjEwMS0yLjExMy0xMC45NTIuMzEtMTMuMDY1IDUuNDEyLTIuMTE0IDUuMTAyLjMxIDEwLjk1MiA1LjQxMiAxMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwNS42NDUgMzI5LjEwNGM1LjEwMy0yLjExMyA3LjUyNi03Ljk2MyA1LjQxMi0xMy4wNjUtMi4xMTMtNS4xMDMtNy45NjQtNy41MjctMTMuMDY1LTUuNDEybC0zMS41MTQgMTMuMDU0Yy01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjUgMS41OTUgMy44NTIgNS4zMTggNi4xNzYgOS4yNDMgNi4xNzYgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI0Ljc5MyAzNDAuOTQ3LS4wMDcuMDAzYy01LjA3NiAyLjE3NS03LjQyNCA4LjA1My01LjI0OSAxMy4xMjkgMS42MjUgMy43OTIgNS4zMTcgNi4wNjIgOS4xOTggNi4wNjIgMS4zMTUgMCAyLjY1Mi0uMjYxIDMuOTM2LS44MTIgNS4wNzctMi4xNzUgNy40MjgtOC4wNTQgNS4yNTItMTMuMTMxLTIuMTc0LTUuMDc1LTguMDUzLTcuNDI2LTEzLjEzLTUuMjUxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjYuMDU0IDQ3NC4xOWMtNS4wMTUtMi4zMTUtMTAuOTU2LS4xMjUtMTMuMjcgNC44ODlsLS4wMDMuMDA2Yy0yLjMxNCA1LjAxNC0uMTI0IDEwLjk1MyA0Ljg5MSAxMy4yNjcgMS4zNTYuNjI2IDIuNzguOTIyIDQuMTgyLjkyMiAzLjc4MSAwIDcuNDAxLTIuMTU2IDkuMDg5LTUuODE0IDIuMzE0LTUuMDE0LjEyNS0xMC45NTUtNC44ODktMTMuMjd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NS45NjMgNDAwLjk0NWMtNS4xMDEtMi4xMTQtMTAuOTUyLjMxLTEzLjA2NSA1LjQxMmwtMTMuMDU0IDMxLjUxNWMtMi4xMTQgNS4xMDMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NSAxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2bDEzLjA1NC0zMS41MTVjMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDYuMTk5IDQ3NC4wNzhjLTUuMDc2IDIuMTc1LTcuNDI4IDguMDU0LTUuMjUyIDEzLjEzbC4wMDMuMDA3YzEuNjI1IDMuNzkxIDUuMzE0IDYuMDYgOS4xOTIgNi4wNiAxLjMxNSAwIDIuNjUxLS4yNjEgMy45MzctLjgxMiA1LjA3Ni0yLjE3NSA3LjQyNi04LjA1OCA1LjI1LTEzLjEzNC0yLjE3NC01LjA3Ni04LjA1MS03LjQyNi0xMy4xMy01LjI1MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjE1OCA0MzcuODcxLTEzLjA1NC0zMS41MTRjLTIuMTE0LTUuMTAzLTcuOTY1LTcuNTI3LTEzLjA2NS01LjQxMi01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjVsMTMuMDU0IDMxLjUxNGMxLjU5NSAzLjg1MiA1LjMxOCA2LjE3NiA5LjI0MyA2LjE3NiAxLjI3NSAwIDIuNTcyLS4yNDUgMy44MjMtLjc2NCA1LjEwMi0yLjExMiA3LjUyNS03Ljk2MiA1LjQxMS0xMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4Ny4yMDggMzQwLjk0N2MtNS4wNzYtMi4xNzctMTAuOTU1LjE3Ny0xMy4xMyA1LjI1Mi0yLjE3NiA1LjA3Ny4xNzYgMTAuOTU2IDUuMjUyIDEzLjEzMWwuMDA2LjAwM2MxLjI4NS41NSAyLjYxOS44MTEgMy45MzMuODExIDMuODc5IDAgNy41NjktMi4yNzIgOS4xOTQtNi4wNjQgMi4xNzctNS4wNzctLjE3OC0xMC45NTctNS4yNTUtMTMuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NDUuNTI1IDMyMy42ODEtMzEuNTE0LTEzLjA1NGMtNS4xMDItMi4xMTMtMTAuOTUxLjMxLTEzLjA2NSA1LjQxMnMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NWwzMS41MTQgMTMuMDU0YzEuMjUyLjUxOSAyLjU0OC43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzYgMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00ODMuMjc0IDE3MS44NjZjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMWwuMDA3LS4wMDNjNS4wNzYtMi4xNzUgNy40MjQtOC4wNTMgNS4yNDktMTMuMTI5cy04LjA2LTcuNDI3LTEzLjEzNC01LjI1Yy01LjA3NyAyLjE3NS03LjQyOCA4LjA1NC01LjI1MiAxMy4xMzEgMS42MjUgMy43OTEgNS4zMTYgNi4wNjIgOS4xOTYgNi4wNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNi4zNTcgMTgyLjg5N2MtNS4xMDMgMi4xMTMtNy41MjYgNy45NjMtNS40MTIgMTMuMDY1IDEuNTk1IDMuODUyIDUuMzE4IDYuMTc2IDkuMjQzIDYuMTc2IDEuMjc1IDAgMi41NzItLjI0NSAzLjgyMy0uNzY0bDMxLjUxNC0xMy4wNTRjNS4xMDMtMi4xMTMgNy41MjYtNy45NjMgNS40MTItMTMuMDY1LTIuMTE0LTUuMTAzLTcuOTYzLTcuNTI3LTEzLjA2Ni01LjQxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ2LjE5OSAzNy45MjNjMS4yODUuNTUxIDIuNjIxLjgxMSAzLjkzNS44MTEgMy44OCAwIDcuNTcxLTIuMjcxIDkuMTk2LTYuMDYzbC4wMDMtLjAwN2MyLjE3Ni01LjA3Ni0uMTc3LTEwLjk1Mi01LjI1My0xMy4xMjctNS4wNzQtMi4xNzYtMTAuOTU3LjE3OS0xMy4xMzIgNS4yNTYtMi4xNzcgNS4wNzYuMTc1IDEwLjk1NSA1LjI1MSAxMy4xM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMzE2LjAzOSAxMTEuMDU3YzEuMjUxLjUxOSAyLjU0Ny43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzZsMTMuMDU0LTMxLjUxNGMyLjExNC01LjEwMy0uMzEtMTAuOTUzLTUuNDEyLTEzLjA2Ni01LjEwMS0yLjExNC0xMC45NTEuMzEtMTMuMDY1IDUuNDEybC0xMy4wNTQgMzEuNTE0Yy0yLjExNSA1LjEwMi4zMDkgMTAuOTUyIDUuNDExIDEzLjA2NnoiLz4KICAgIDwvZz4KPC9zdmc+",Ufe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAuMDAzLDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04cy04LDMuNTgyLTgsOHYzMkMyMzIuMDAzLDQ0LjQxOCwyMzUuNTg0LDQ4LDI0MC4wMDMsNDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0MS4wNzUsMzYuNjU2bDE2LDI3LjcwNGMyLjE4NCwzLjg0MSw3LjA2OCw1LjE4NCwxMC45MDksM3M1LjE4NC03LjA2OCwzLTEwLjkwOWMtMC4wMTctMC4wMzEtMC4wMzUtMC4wNjEtMC4wNTMtMC4wOTIKCQkJCWwtMTYtMjcuNzA0Yy0yLjE4NC0zLjg0MS03LjA2OC01LjE4NC0xMC45MDktM2MtMy44NDEsMi4xODQtNS4xODQsNy4wNjgtMywxMC45MDlDMTQxLjAzOSwzNi41OTUsMTQxLjA1NywzNi42MjYsMTQxLjA3NSwzNi42NTYKCQkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuNTY3LDEwNi44NzVjMC4wMywwLjAxOCwwLjA2MSwwLjAzNSwwLjA5MiwwLjA1M2wyNy43MDQsMTZjMy44MTIsMi4yMzQsOC43MTMsMC45NTYsMTAuOTQ3LTIuODU2CgkJCQljMi4yMzQtMy44MTIsMC45NTYtOC43MTMtMi44NTYtMTAuOTQ3Yy0wLjAzLTAuMDE4LTAuMDYxLTAuMDM1LTAuMDkyLTAuMDUzbC0yNy43MDQtMTZjLTMuODEyLTIuMjM0LTguNzEzLTAuOTU2LTEwLjk0NywyLjg1NgoJCQkJQzcxLjQ3Nyw5OS43MzksNzIuNzU1LDEwNC42NDEsNzYuNTY3LDEwNi44NzV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTk2LjAwMywxOTJjMC00LjQxOC0zLjU4Mi04LTgtOGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJDOTIuNDIxLDIwMCw5Ni4wMDMsMTk2LjQxOCw5Ni4wMDMsMTkyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuNDU2LDI2MS4wMThjLTAuMDMxLDAuMDE4LTAuMDYyLDAuMDM2LTAuMDkzLDAuMDU0bC0yNy43MDQsMTZjLTMuODQxLDIuMTgzLTUuMTg1LDcuMDY3LTMuMDAyLDEwLjkwOAoJCQkJYzIuMTgzLDMuODQxLDcuMDY3LDUuMTg1LDEwLjkwOCwzLjAwMmMwLjAzMS0wLjAxOCwwLjA2Mi0wLjAzNiwwLjA5My0wLjA1NGwyNy43MDQtMTZjMy44NDEtMi4xODMsNS4xODUtNy4wNjcsMy4wMDItMTAuOTA4CgkJCQlDMTEzLjE4MSwyNjAuMTc5LDEwOC4yOTcsMjU4LjgzNSwxMDQuNDU2LDI2MS4wMTh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQwMy40NCwyNzcuMTI2Yy0wLjAzMS0wLjAxOC0wLjA2Mi0wLjAzNi0wLjA5My0wLjA1NGwtMjcuNzA0LTE2Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMi4yMzUsMy44MTEtMC45NTcsOC43MTMsMi44NTQsMTAuOTQ4YzAuMDMxLDAuMDE4LDAuMDYyLDAuMDM2LDAuMDkzLDAuMDU0bDI3LjcwNCwxNmMzLjgxMSwyLjIzNSw4LjcxMywwLjk1NywxMC45NDgtMi44NTQKCQkJCUM0MDguNTI5LDI4NC4yNjIsNDA3LjI1MSwyNzkuMzYxLDQwMy40NCwyNzcuMTI2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjQuMDAzLDE4NGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJjNC40MTgsMCw4LTMuNTgyLDgtOFM0MjguNDIxLDE4NCw0MjQuMDAzLDE4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzcxLjY1MSwxMjRjMS40MDQsMCwyLjc4NC0wLjM3LDQtMS4wNzJsMjcuNzA0LTE2YzMuODQxLTIuMTg0LDUuMTg0LTcuMDY4LDMtMTAuOTA5cy03LjA2OC01LjE4NC0xMC45MDktMwoJCQkJYy0wLjAzMSwwLjAxNy0wLjA2MSwwLjAzNS0wLjA5MiwwLjA1M2wtMjcuNzA0LDE2Yy0zLjgyNiwyLjIwOS01LjEzNyw3LjEwMi0yLjkyOCwxMC45MjgKCQkJCUMzNjYuMTUyLDEyMi40NzUsMzY4Ljc5MywxMjQsMzcxLjY1MSwxMjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMxMS45OTMsNjcuMjkxYzAuMDAzLDAuMDAyLDAuMDA2LDAuMDA0LDAuMDA5LDAuMDA1YzMuODI3LDIuMjA3LDguNzIsMC44OTQsMTAuOTI3LTIuOTM0CgkJCQljMC0wLjAwMSwwLjAwMS0wLjAwMiwwLjAwMS0wLjAwMmwxNi0yNy43MDRjMi4yMzUtMy44MTEsMC45NTctOC43MTMtMi44NTQtMTAuOTQ4Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMC4wMTgsMC4wMzEtMC4wMzYsMC4wNjItMC4wNTQsMC4wOTNsLTE2LDI3LjcwNEMzMDYuODYyLDYwLjE4NCwzMDguMTY5LDY1LjA3OCwzMTEuOTkzLDY3LjI5MXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LjAwMywzMjBjNC40MTgsMCw4LTMuNTgyLDgtOHYtODhoMTZjMTcuNjczLDAsMzItMTQuMzI3LDMyLTMycy0xNC4zMjctMzItMzItMzJjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMnYxNmgtMTYKCQkJCXYtMTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiwxNC4zMjctMzIsMzJzMTQuMzI3LDMyLDMyLDMyaDE2djg4YzAsNC40MTgsMy41ODIsOCw4LDhzOC0zLjU4Miw4LTh2LTg4aDE2djg4CgkJCQlDMjQ4LjAwMywzMTYuNDE4LDI1MS41ODQsMzIwLDI1Ni4wMDMsMzIweiBNMjY0LjAwMywxOTJjMC04LjgzNyw3LjE2My0xNiwxNi0xNnMxNiw3LjE2MywxNiwxNnMtNy4xNjMsMTYtMTYsMTZoLTE2VjE5MnoKCQkJCSBNMjE2LjAwMywyMDhoLTE2Yy04LjgzNywwLTE2LTcuMTYzLTE2LTE2czcuMTYzLTE2LDE2LTE2czE2LDcuMTYzLDE2LDE2VjIwOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQ2LjIxOSw2NC4xNTJjLTcwLjYxMS0zLjM5Mi0xMzAuNjAzLDUxLjA5OS0xMzMuOTk1LDEyMS43MWMtMS45NDMsNDAuNDMyLDE1LjM1NCw3OS40LDQ2LjY0MywxMDUuMDgyCgkJCQljNS42MzksNC40MTcsOC45OTQsMTEuMTM1LDkuMTM2LDE4LjI5NlYzMjhjMC4wNDIsMTAuMTM0LDYuNDQ1LDE5LjE1LDE2LDIyLjUyOFYzNjBjMC4wMjEsNS45MjMsMi4yNDUsMTEuNjI3LDYuMjQsMTYKCQkJCWMtOC4zMiw5LjA0NC04LjMyLDIyLjk1NiwwLDMyYy04Ljg5NCw5Ljc1LTguMiwyNC44NjQsMS41NSwzMy43NThjNC40MjksNC4wNCwxMC4yMTUsNi4yNjgsMTYuMjEsNi4yNDIKCQkJCWM0LjMwNiwwLjExMyw3Ljg4OS0zLjI4Nyw4LjAwMS03LjU5M2MwLjA0NC0xLjY4LTAuNDU2LTMuMzMtMS40MjUtNC43MDNjLTAuMjUzLTAuNDg5LTAuNTUzLTAuOTUzLTAuODk2LTEuMzg0CgkJCQljLTAuNjU4LTAuNjAyLTEuNDA5LTEuMDk0LTIuMjI0LTEuNDU2Yy0wLjIzMi0wLjEyLTAuNDY0LTAuMjE2LTAuNzA0LTAuMzEyYy0wLjgxLTAuMjk1LTEuNjU5LTAuNDY1LTIuNTItMC41MDQKCQkJCWMtMC4wOCwwLTAuMTUyLTAuMDQ4LTAuMjMyLTAuMDQ4Yy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMgoJCQkJYy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMmMtNC40MTgsMC04LTMuNTgyLTgtOHYtOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04CgkJCQlzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LTMuNTgyLTgtOHYtMTguNzZjLTAuMTMxLTExLjk2Mi01LjY0LTIzLjIzLTE1LTMwLjY4Yy00Ny43ODgtMzkuMjc0LTU0LjY4OS0xMDkuODUyLTE1LjQxNS0xNTcuNjQKCQkJCWMyMi40NjYtMjcuMzM2LDU2LjUyOC00Mi40NDgsOTEuODcxLTQwLjc2YzU5LjEwNywzLjUxNiwxMDUuNTM2LDUxLjk1NywxMDYuNTQ0LDExMS4xNmMwLjI4NywzNC4wNTItMTUuMDI0LDY2LjM2My00MS41Niw4Ny43MDQKCQkJCWMtOS4yOSw3LjY1Mi0xNC42MDIsMTkuMTA5LTE0LjQ0LDMxLjE0NFYzMjhjMCw0LjQxOC0zLjU4Miw4LTgsOGgtMjRjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMTZ2OAoJCQkJYzAsNC40MTgtMy41ODIsOC04LDhoLThjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoOGM0LjQxOCwwLDgsMy41ODIsOCw4cy0zLjU4Miw4LTgsOGgtOGMtNC40MTgsMC04LDMuNTgyLTgsOAoJCQkJczMuNTgyLDgsOCw4aDhjNC40MTgsMCw4LDMuNTgyLDgsOHMtMy41ODIsOC04LDhoLTQwYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMwLjYzMgoJCQkJYy00LjQxNywxMi40OTctMTguMTI5LDE5LjA0Ny0zMC42MjYsMTQuNjNjLTMuODI2LTEuMzUyLTcuMjQ2LTMuNjUzLTkuOTQyLTYuNjg2Yy0yLjkzOC0zLjMtNy45OTYtMy41OTQtMTEuMjk2LTAuNjU2CgkJCQljLTMuMywyLjkzOC0zLjU5NCw3Ljk5Ni0wLjY1NiwxMS4yOTZjMTQuNjMxLDE2LjQ4NywzOS44NTcsMTcuOTkyLDU2LjM0NCwzLjM2MmM2LjgxLTYuMDQzLDExLjM0OS0xNC4yMzIsMTIuODY0LTIzLjIxCgkJCQljMTIuNTI5LTMuOTE2LDE5LjUxMS0xNy4yNDcsMTUuNTk2LTI5Ljc3NmMtMS4wNC0zLjMyOS0yLjgwMS02LjM4OC01LjE1Ni04Ljk2YzguMzItOS4wNDQsOC4zMi0yMi45NTYsMC0zMgoJCQkJYzMuOTk1LTQuMzczLDYuMjE5LTEwLjA3Nyw2LjI0LTE2di05LjQ3MmM5LjU1NS0zLjM3OCwxNS45NTgtMTIuMzk0LDE2LTIyLjUyOHYtMTcuODMyYy0wLjEwNy03LjE4NywzLjAwNy0xNC4wNDYsOC40ODgtMTguNjk2CgkJCQljMzAuMzQ0LTI0LjM5NSw0Ny44NS02MS4zMzksNDcuNTEyLTEwMC4yNzJDMzY2Ljg0NywxMjMuNTMyLDMxMy43NzcsNjguMTY5LDI0Ni4yMTksNjQuMTUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",$fe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjU1Ljk5OSwwYy03OS4wNDQsMC0xNDMuMzUyLDY0LjMwOC0xNDMuMzUyLDE0My4zNTN2NzAuMTkzYzAsNC43OCwzLjg3OSw4LjY1Niw4LjY1OSw4LjY1Nmg0OC4wNTcKCQkJYzQuNzgsMCw4LjY1Ni0zLjg3Niw4LjY1Ni04LjY1NnYtNzAuMTkzYzAtNDIuOTk4LDM0Ljk4MS03Ny45OCw3Ny45NzktNzcuOThzNzcuOTc5LDM0Ljk4Miw3Ny45NzksNzcuOTh2NzAuMTkzCgkJCWMwLDQuNzgsMy44OCw4LjY1Niw4LjY2MSw4LjY1Nmg0OC4wNTdjNC43OCwwLDguNjU2LTMuODc2LDguNjU2LTguNjU2di03MC4xOTNDMzk5LjM1Miw2NC4zMDgsMzM1LjA0NCwwLDI1NS45OTksMHoKCQkJIE0zODIuMDQsMjA0Ljg5aC0zMC43NDh2LTYxLjUzN2MwLTUyLjU0NC00Mi43NDgtOTUuMjkyLTk1LjI5MS05NS4yOTJzLTk1LjI5MSw0Mi43NDgtOTUuMjkxLDk1LjI5MnY2MS41MzdoLTMwLjc0OHYtNjEuNTM3CgkJCWMwLTY5LjQ5OSw1Ni41NC0xMjYuMDQsMTI2LjAzOC0xMjYuMDRjNjkuNDk5LDAsMTI2LjA0LDU2LjU0MSwxMjYuMDQsMTI2LjA0VjIwNC44OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDEwLjYzLDIwNC44OUgxMDEuMzcxYy0yMC41MDUsMC0zNy4xODgsMTYuNjgzLTM3LjE4OCwzNy4xODh2MjMyLjczNGMwLDIwLjUwNSwxNi42ODMsMzcuMTg4LDM3LjE4OCwzNy4xODhINDEwLjYzCgkJCWMyMC41MDUsMCwzNy4xODctMTYuNjgzLDM3LjE4Ny0zNy4xODlWMjQyLjA3OEM0NDcuODE3LDIyMS41NzMsNDMxLjEzNSwyMDQuODksNDEwLjYzLDIwNC44OXogTTQzMC41MDUsNDc0LjgxMQoJCQljMCwxMC45Ni04LjkxNiwxOS44NzYtMTkuODc1LDE5Ljg3NkgxMDEuMzcxYy0xMC45NiwwLTE5Ljg3Ni04LjkxNi0xOS44NzYtMTkuODc2VjI0Mi4wNzhjMC0xMC45Niw4LjkxNi0xOS44NzYsMTkuODc2LTE5Ljg3NgoJCQlINDEwLjYzYzEwLjk1OSwwLDE5Ljg3NSw4LjkxNiwxOS44NzUsMTkuODc2VjQ3NC44MTF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI4NS4xMSwzNjkuNzgxYzEwLjExMy04LjUyMSwxNS45OTgtMjAuOTc4LDE1Ljk5OC0zNC4zNjVjMC0yNC44NzMtMjAuMjM2LTQ1LjEwOS00NS4xMDktNDUuMTA5CgkJCWMtMjQuODc0LDAtNDUuMTEsMjAuMjM2LTQ1LjExLDQ1LjEwOWMwLDEzLjM4Nyw1Ljg4NSwyNS44NDQsMTYsMzQuMzY3bC05LjczMSw0Ni4zNjJjLTAuNTM1LDIuNTU0LDAuMTA4LDUuMjExLDEuNzUyLDcuMjM2CgkJCWMxLjY0NSwyLjAyMyw0LjExMywzLjIsNi43MiwzLjJoNjAuNzM4YzIuNjA4LDAsNS4wNzYtMS4xNzYsNi43MTktMy4yYzEuNjQzLTIuMDI2LDIuMjg2LTQuNjgzLDEuNzUxLTcuMjM0TDI4NS4xMSwzNjkuNzgxegoJCQkgTTI3MC44NTEsMzU4LjgyYy0zLjA0LDEuOTM2LTQuNTY1LDUuNTUzLTMuODI0LDkuMDgxbDguNjgsNDEuMzY2aC0zOS40MTVsOC42ODItNDEuMzYzYzAuNzQtMy41MjktMC43ODItNy4xNDYtMy44MjQtOS4wODEKCQkJYy04LjEwOC01LjE2LTEyLjk0OC0xMy45MTEtMTIuOTQ4LTIzLjQwNmMwLTE1LjMyNywxMi40NjktMjcuNzk2LDI3Ljc5Ny0yNy43OTZjMTUuMzI3LDAsMjcuNzk2LDEyLjQ2OSwyNy43OTYsMjcuNzk2CgkJCUMyODMuNzk3LDM0NC45MTQsMjc4Ljk1NywzNTMuNjYzLDI3MC44NTEsMzU4LjgyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Pfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk0LjkzMzU5NCAwaC00NzcuODY3MTg4Yy05LjQyMTg3NS4wMDc4MTI1LTE3LjA1ODU5MzUgNy42NDQ1MzEtMTcuMDY2NDA2IDE3LjA2NjQwNnY1OS43MzQzNzVjLjAwNzgxMjUgOS40MjE4NzUgNy42NDQ1MzEgMTcuMDU0Njg4IDE3LjA2NjQwNiAxNy4wNjY0MDdoMTAuODk0NTMybC0yNi44MzU5MzggNDYuOTY0ODQzYy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE5NTMxIDEuNTI3MzQ0IDIuNjI4OTA3IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45NjQ4NDRjLTEuNTA3ODEyIDIuNjQwNjI1LTEuNSA1Ljg4NjcxOS4wMjczNDQgOC41MTU2MjUgMS41MjczNDQgMi42MzI4MTMgNC4zMzk4NDQgNC4yNSA3LjM4MjgxMiA0LjI1aDE5LjQyNTc4MmwtMjYuODM1OTM4IDQ2Ljk2ODc1Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODI4MTMuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjI4OTA2IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNyA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEyIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNTM5MDZoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEzIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNiA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoNDk0LjkyOTY4OGMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDk0IDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MTcxODcgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYyODkwNiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45NjQ4NDRoMTkuNDI1NzgyYzMuMDQyOTY4LS4wMDM5MDYgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNTM5MDYgMS41MjczNDQtMi42Mjg5MDYgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY0ODQ0aDE5LjQyNTc4MmMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDkzIDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYzMjgxMiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45Njg3NWgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYxNzE4NyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjI4OTA2IDEuNTM1MTU2LTUuODc1LjAyNzM0NC04LjUxNTYyNWwtMjYuODM1OTM4LTQ2Ljk2NDg0NGgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYyMTA5MyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjMyODEyIDEuNTM1MTU2LTUuODc4OTA2LjAyNzM0NC04LjUxOTUzMWwtMjYuODM1OTM4LTQ2Ljk2NDg0M2gxMC44OTQ1MzJjOS40MjE4NzUtLjAxMTcxOSAxNy4wNTQ2ODctNy42NDQ1MzIgMTcuMDY2NDA2LTE3LjA2NjQwN3YtNTkuNzM0Mzc1Yy0uMDExNzE5LTkuNDIxODc1LTcuNjQ0NTMxLTE3LjA1NDY4NzItMTcuMDY2NDA2LTE3LjA2NjQwNnptLTQ0Ny4zMTY0MDYgOTMuODY3MTg4aDQ2LjI1djQyLjY2Nzk2OGgtNzAuNjI4OTA3em0zMTkuMzE2NDA2IDB2NDIuNjY3OTY4aC0yMjEuODY3MTg4di00Mi42Njc5Njh6bTY4LjI2NTYyNSAwdjQyLjY2Nzk2OGgtMTcuMDY2NDA3di00Mi42Njc5Njh6bS0yOTAuMTMyODEzIDM0MS4zMzIwMzF2LTQyLjY2NDA2M2gyMjEuODY3MTg4djQyLjY2NDA2M3ptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY3OTY5aC0yMjEuODY3MTg4di00Mi42Njc5Njl6bTAtMjU2aC0yMjEuODY3MTg4di00Mi42NjQwNjNoMjIxLjg2NzE4OHptMTcuMDY2NDA2LTQyLjY2NDA2M2gxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bS0yMzguOTMzNTk0IDE2Mi4xMzI4MTN2LTQyLjY2Nzk2OWgyMjEuODY3MTg4djQyLjY2Nzk2OXptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY0MDYzaC0yMjEuODY3MTg4di00Mi42NjQwNjN6bS0yMjEuODY3MTg4LTc2LjgwMDc4MXYtNDIuNjY3OTY5aDIyMS44NjcxODh2NDIuNjY3OTY5em0tMTcuMDY2NDA2LTU5LjczNDM3NWgtMTcuMDY2NDA2di00Mi42NjQwNjNoMTcuMDY2NDA2em0wIDE3LjA2NjQwNnY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0yNTYgMGgxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bTAtMTcuMDcwMzEydi00Mi42NjQwNjNoMTcuMDY2NDA2djQyLjY2NDA2M3ptMC01OS43MzA0Njl2LTQyLjY2Nzk2OWgxNy4wNjY0MDZ2NDIuNjY3OTY5em0wLTU5LjczNDM3NXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTM0LjEzMjgxMi00Mi42Njc5NjloMTcuMDY2NDA3djQyLjY2Nzk2OWgtMTcuMDY2NDA3em0wLTE3LjA2NjQwNnYtNDIuNjY0MDYzaDE3LjA2NjQwN3Y0Mi42NjQwNjN6bS0xNy4wNjY0MDYtNTkuNzMwNDY5aC0xNy4wNjY0MDZ2LTQyLjY2Nzk2OGgxNy4wNjY0MDZ6bS0yNzMuMDY2NDA2IDBoLTE3LjA2NjQwNnYtNDIuNjY3OTY4aDE3LjA2NjQwNnptLTgwLjM4MjgxMiAxNy4wNjY0MDZoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzMwNDY5aDQ2LjI1djQyLjY2Nzk2OWgtNzAuNjI4OTA3em0wIDU5LjczNDM3NWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptMCA1OS43MzQzNzVoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzM0Mzc1aDQ2LjI1djQyLjY2NDA2M2gtNzAuNjI4OTA3em0wIDU5LjczMDQ2OWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptNjMuMzE2NDA2IDQyLjY2Nzk2OXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTI3My4wNjY0MDYgMHYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTEwNC43NTc4MTIgMGgtNzAuNjI1di00Mi42Njc5NjloNDYuMjV6bTAtNTkuNzM0Mzc1aC03MC42MjV2LTQyLjY2NDA2M2g0Ni4yNXptMC01OS43MzQzNzVoLTcwLjYyNXYtNDIuNjY0MDYzaDQ2LjI1em0wLTU5LjczMDQ2OWgtNzAuNjI1di00Mi42Njc5NjloMTcuMDY2NDA3djE3LjA2NjQwNmMwIDQuNzE0ODQ0IDMuODIwMzEyIDguNTM1MTU3IDguNTM1MTU2IDguNTM1MTU3IDQuNzEwOTM3IDAgOC41MzEyNS0zLjgyMDMxMyA4LjUzMTI1LTguNTM1MTU3di0xNy4wNjY0MDZoMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42Njc5NjloMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42NjQwNjNoMTIuMTE3MTg3em0wLTU5LjczMDQ2OWgtMzYuNDkyMTg3di00Mi42Njc5NjhoMTIuMTE3MTg3em0tMTkuNDI1NzgxLTU5LjczNDM3NWgtNDUyLjI2NTYyNXYtNTkuNzM0Mzc1aDQ3Ny44NjcxODhsLjAwNzgxMiA1OS43MzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01OS43MzQzNzUgNDIuNjY3OTY5aC0xNy4wNjY0MDZjLTQuNzE0ODQ0IDAtOC41MzUxNTcgMy44MjAzMTItOC41MzUxNTcgOC41MzEyNSAwIDQuNzE0ODQzIDMuODIwMzEzIDguNTM1MTU2IDguNTM1MTU3IDguNTM1MTU2aDE3LjA2NjQwNmM0LjcxMDkzNyAwIDguNTMxMjUtMy44MjAzMTMgOC41MzEyNS04LjUzNTE1NiAwLTQuNzEwOTM4LTMuODIwMzEzLTguNTMxMjUtOC41MzEyNS04LjUzMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ1LjA2NjQwNiA0Mi42Njc5NjloLTUxLjE5OTIxOGMtNC43MTQ4NDQgMC04LjUzNTE1NyAzLjgyMDMxMi04LjUzNTE1NyA4LjUzMTI1IDAgNC43MTQ4NDMgMy44MjAzMTMgOC41MzUxNTYgOC41MzUxNTcgOC41MzUxNTZoNTEuMTk5MjE4YzQuNzE0ODQ0IDAgOC41MzUxNTYtMy44MjAzMTMgOC41MzUxNTYtOC41MzUxNTYgMC00LjcxMDkzOC0zLjgyMDMxMi04LjUzMTI1LTguNTM1MTU2LTguNTMxMjV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Wfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMjQzLjc4M2MtLjk1MSAwLTEuODY4LjE0MS0yLjczOS4zODlsLS4wMDItLjAwNy0yOC43MjIgOC4xODdjLTUuMzExIDEuNTE0LTguMzkgNy4wNDctNi44NzYgMTIuMzU4IDEuMjUzIDQuMzk2IDUuMjU4IDcuMjYxIDkuNjEyIDcuMjYxLjkwNyAwIDEuODMtLjEyNSAyLjc0Ni0uMzg1bDE1Ljk4MS00LjU1NHYzNS40MmwtMTI0IDM1LjM0NXYtMzUuNDJsMjEuNDY0LTYuMTE4YzUuMzExLTEuNTE0IDguMzktNy4wNDcgNi44NzYtMTIuMzU4cy03LjA0NS04LjM4Ny0xMi4zNTgtNi44NzZsLTI4LjcyMyA4LjE4Ny4wMDEuMDA3Yy00LjE4OSAxLjE5My03LjI2IDUuMDM5LTcuMjYgOS42MXYxMjcuMTk5Yy04LjM2My02LjI5My0xOC43NTItMTAuMDI4LTMwLTEwLjAyOC0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDA2bDEyNC0zNS4zNDV2NTcuNzMzYy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xNjcuMTcyYzAtNS41MjMtNC40NzctMTAtMTAtMTB6bS0xODQgMjQ4LjIxN2MtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xNDQtNDEuMDQ1Yy0xNi41NDIgMC0zMC0xMy40NTgtMzAtMzBzMTMuNDU4LTMwIDMwLTMwIDMwIDEzLjQ1OCAzMCAzMC0xMy40NTggMzAtMzAgMzB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUwOC4wMTMgMi4wMWMtMi41MTEtMS44ODktNS43NjMtMi40ODctOC43ODItMS42MTlsLTEwNC40MDggMzAuMDg5Yy00LjI4MiAxLjIzNC03LjIzMSA1LjE1Mi03LjIzMSA5LjYwOXYxMjcuMTk5Yy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDNsOTcuMTc3LTI4LjAwNWM0LjI4Mi0xLjIzNCA3LjIzMS01LjE1MiA3LjIzMS05LjYwOXYtNTYuMjE3YzAtMy4xNDItMS40NzctNi4xMDEtMy45ODctNy45OXptLTE1MC40MjEgMjM1LjI1MWMtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xMzQuNDA4LTE3OC41NjktODQuNDA4IDI0LjMyNXYtMzUuNDAzbDg0LjQwOC0yNC4zMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MS41OTEgMzQ4Ljc2Mi00OC4yODgtNy4wMTctMjEuNTk1LTQzLjc1NmMtMS42ODUtMy40MTMtNS4xNjEtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0yMS41OTUgNDMuNzU2LTQ4LjI4OCA3LjAxN2MtMy43NjcuNTQ3LTYuODk2IDMuMTg2LTguMDczIDYuODA2cy0uMTk1IDcuNTk0IDIuNTMxIDEwLjI1MWwzNC45NDEgMzQuMDYtOC4yNDkgNDguMDkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNiA3LjE2MiAyLjUzMiAxMC41MzEuNzYxbDQzLjE5LTIyLjcwNyA0My4xOSAyMi43MDZjMS40NjMuNzcgMy4wNjEgMS4xNDkgNC42NTIgMS4xNDkgMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzNyA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtOC4yNDktNDguMDkzIDM0Ljk0MS0zNC4wNmMyLjcyNi0yLjY1NyAzLjcwNy02LjYzMSAyLjUzMS0xMC4yNTFzLTQuMzA0LTYuMjU4LTguMDcxLTYuODA1em0tNDcuMTI0IDQwLjQ2NGMtMi4zNTcgMi4yOTctMy40MzMgNS42MDctMi44NzYgOC44NTFsNS43MTIgMzMuMzA0LTI5LjkwOS0xNS43MjRjLTIuOTEzLTEuNTMyLTYuMzkzLTEuNTMyLTkuMzA3IDBsLTI5LjkwOSAxNS43MjQgNS43MTItMzMuMzA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MWwtMjQuMTk2LTIzLjU4NiAzMy40MzktNC44NTljMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDE0Ljk1NS0zMC4zMDEgMTQuOTU0IDMwLjMwMWMxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDMzLjQzOSA0Ljg1OXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjIgOTAuNzA2LTYuNjIgMzguNTkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNyA3LjE2MyAyLjUzMyAxMC41MzEuNzYxbDM0LjY1OC0xOC4yMjEgMzQuNjU5IDE4LjIyMWMxLjQ2My43NjkgMy4wNjEgMS4xNDggNC42NTIgMS4xNDggMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzOCA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtNi42Mi0zOC41OTMgMjguMDQtMjcuMzMxYzIuNzI2LTIuNjU3IDMuNzA3LTYuNjMxIDIuNTMxLTEwLjI1MXMtNC4zMDYtNi4yNTgtOC4wNzMtNi44MDZsLTM4Ljc1LTUuNjMxLTE3LjMyOC0zNS4xMTJjLTEuNjg0LTMuNDEzLTUuMTYtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0xNy4zMjkgMzUuMTEzLTM4Ljc1IDUuNjMxYy0zLjc2Ny41NDctNi44OTYgMy4xODYtOC4wNzMgNi44MDZzLS4xOTUgNy41OTQgMi41MzEgMTAuMjUxem0yNC4zMy0zMC45ODNjMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDEwLjY4OC0yMS42NTcgMTAuNjg4IDIxLjY1N2MxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDIzLjkgMy40NzMtMTcuMjkyIDE2Ljg1OGMtMi4zNTcgMi4yOTgtMy40MzMgNS42MDgtMi44NzYgOC44NTJsNC4wODMgMjMuODA0LTIxLjM3Ny0xMS4yMzhjLTEuNDU3LS43NjYtMy4wNTUtMS4xNDktNC42NTMtMS4xNDktMS41OTkgMC0zLjE5Ny4zODMtNC42NTMgMS4xNDlsLTIxLjM3NyAxMS4yMzggNC4wODMtMjMuODA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MmwtMTcuMjk2LTE2Ljg1OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0IDg2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMTU2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzQgMTI2LjMwNmgtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoMTBjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NCAxNDYuMzA2aDEwYzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwaC0xMGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3NyAxMCAxMCAxMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYyIDI4NC4zMWMyLjYzIDAgNS4yMS0xLjA3IDcuMDctMi45M3MyLjkzLTQuNDQgMi45My03LjA3YzAtMi42NC0xLjA3LTUuMjEtMi45My03LjA4LTEuODYtMS44Ni00LjQ0LTIuOTItNy4wNy0yLjkycy01LjIxIDEuMDYtNy4wNyAyLjkyYy0xLjg2IDEuODctMi45MyA0LjQ0LTIuOTMgNy4wOCAwIDIuNjMgMS4wNyA1LjIxIDIuOTMgNy4wN3M0LjQ0IDIuOTMgNy4wNyAyLjkzeiIvPgogICAgPC9nPgo8L3N2Zz4=",Bfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwNS40IDUwNS40Ij4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzNy4xLDIzMy40NWMxNC44LTEwLjQsMjQuNi0yNy43LDI0LjYtNDcuMmMwLTMxLjktMjUuOC01Ny43LTU3LjctNTcuN2MtMzEuOSwwLTU3LjcsMjUuOC01Ny43LDU3LjcKCQkJYzAsMTkuNSw5LjcsMzYuOCwyNC42LDQ3LjJjLTEyLjcsNC40LTI0LjMsMTEuMi0zNC4xLDIwYy0xMy41LTExLjUtMjkuNC0yMC4zLTQ2LjgtMjUuNWMyMS4xLTEyLjgsMzUuMy0zNi4xLDM1LjMtNjIuNgoJCQljMC00MC40LTMyLjctNzMuMS03My4xLTczLjFjLTQwLjQsMC03My4xLDMyLjgtNzMuMSw3My4xYzAsMjYuNSwxNC4xLDQ5LjgsMzUuMyw2Mi42Yy0xNy4yLDUuMi0zMi45LDEzLjktNDYuMywyNS4yCgkJCWMtOS44LTguNi0yMS4yLTE1LjMtMzMuNy0xOS42YzE0LjgtMTAuNCwyNC42LTI3LjcsMjQuNi00Ny4yYzAtMzEuOS0yNS44LTU3LjctNTcuNy01Ny43cy01Ny43LDI1LjgtNTcuNyw1Ny43CgkJCWMwLDE5LjUsOS43LDM2LjgsMjQuNiw0Ny4yQzI4LjUsMjQ3LjI1LDAsMjg0Ljk1LDAsMzI5LjI1djYuNmMwLDAuMiwwLjIsMC40LDAuNCwwLjRoMTIyLjNjLTAuNyw1LjUtMS4xLDExLjItMS4xLDE2Ljl2Ni44CgkJCWMwLDI5LjQsMjMuOCw1My4yLDUzLjIsNTMuMmgxNTVjMjkuNCwwLDUzLjItMjMuOCw1My4yLTUzLjJ2LTYuOGMwLTUuNy0wLjQtMTEuNC0xLjEtMTYuOUg1MDVjMC4yLDAsMC40LTAuMiwwLjQtMC40di02LjYKCQkJQzUwNS4yLDI4NC44NSw0NzYuOCwyNDcuMTUsNDM3LjEsMjMzLjQ1eiBNMzYyLjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43CgkJCWMwLDIyLjctMTguMyw0MS4yLTQwLjksNDEuN2MtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzM4MC41LDIyNy40NSwzNjIuMywyMDguOTUsMzYyLjMsMTg2LjE1eiBNMTk0LjksMTY1LjM1CgkJCWMwLTMxLjUsMjUuNi01Ny4xLDU3LjEtNTcuMXM1Ny4xLDI1LjYsNTcuMSw1Ny4xYzAsMzAuNC0yMy45LDU1LjMtNTMuOCw1N2MtMS4xLDAtMi4yLDAtMy4zLDBjLTEuMSwwLTIuMiwwLTMuMywwCgkJCUMyMTguOCwyMjAuNjUsMTk0LjksMTk1Ljc1LDE5NC45LDE2NS4zNXogTTU5LjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43YzAsMjIuNy0xOC4zLDQxLjItNDAuOSw0MS43CgkJCWMtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzc3LjYsMjI3LjQ1LDU5LjMsMjA4Ljk1LDU5LjMsMTg2LjE1eiBNMTI1LjUsMzIwLjE1SDE2LjJjNC41LTQyLjYsNDAuNS03Niw4NC4yLTc2LjMKCQkJYzAuMiwwLDAuNCwwLDAuNiwwczAuNCwwLDAuNiwwYzIwLjgsMC4xLDM5LjgsNy44LDU0LjUsMjAuM0MxNDEuNywyNzkuNzUsMTMxLDI5OC45NSwxMjUuNSwzMjAuMTV6IE0zNjYuOCwzNTkuOTUKCQkJYzAsMjAuNS0xNi43LDM3LjItMzcuMiwzNy4yaC0xNTVjLTIwLjUsMC0zNy4yLTE2LjctMzcuMi0zNy4ydi02LjhjMC02Mi4xLDQ5LjYtMTEyLjksMTExLjMtMTE0LjdjMS4xLDAuMSwyLjMsMC4xLDMuNCwwLjEKCQkJczIuMywwLDMuNC0wLjFjNjEuNywxLjgsMTExLjMsNTIuNiwxMTEuMywxMTQuN1YzNTkuOTV6IE0zNzguNywzMjAuMTVjLTUuNS0yMS4xLTE2LTQwLTMwLjMtNTUuNmMxNC44LTEyLjgsMzQtMjAuNSw1NS0yMC43CgkJCWMwLjIsMCwwLjQsMCwwLjYsMHMwLjQsMCwwLjYsMGM0My43LDAuMyw3OS43LDMzLjcsODQuMiw3Ni4zSDM3OC43eiIvPgogICAgPC9nPgo8L3N2Zz4K",Jfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Rfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAxNjBoLTMydi04MGMwLTguODIyLTcuMTc4LTE2LTE2LTE2aC0zMnYtNDBjMC0xMy4yMzMtMTAuNzY3LTI0LTI0LTI0aC0yMjRjLTEzLjIzMyAwLTI0IDEwLjc2Ny0yNCAyNHY0MGgtMzJjLTguODIyIDAtMTYgNy4xNzgtMTYgMTZ2ODBoLTMyYy0yMi4wNTYgMC00MCAxNy45NDQtNDAgNDB2MTc2YzAgMjIuMDU2IDE3Ljk0NCA0MCA0MCA0MGg4MHY3MmMwIDEzLjIzMyAxMC43NjcgMjQgMjQgMjRoMjI0YzEzLjIzMyAwIDI0LTEwLjc2NyAyNC0yNHYtNzJoODBjMjIuMDU2IDAgNDAtMTcuOTQ0IDQwLTQwdi0xNzZjMC0yMi4wNTYtMTcuOTQ0LTQwLTQwLTQwem0tNDgtODB2ODBoLTMydi04MHptLTI4OC01NmMwLTQuNDExIDMuNTg5LTggOC04aDIyNGM0LjQxMSAwIDggMy41ODkgOCA4djEzNmgtMjQwYzAtMS42MzUgMC0xMzAuMjExIDAtMTM2em0tNDggNTZoMzJ2ODBoLTMyem0yODggNDA4YzAgNC40MTEtMy41ODkgOC04IDhoLTIyNGMtNC40MTEgMC04LTMuNTg5LTgtOHYtMTM2aDI0MHptMTIwLTExMmMwIDEzLjIzMy0xMC43NjcgMjQtMjQgMjRoLTgwdi00OGgxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOGMtMjguNjU3IDAtMjkwLjg4MyAwLTMwNCAwLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDhoMTZ2NDhoLTgwYy0xMy4yMzMgMC0yNC0xMC43NjctMjQtMjR2LTE3NmMwLTEzLjIzMyAxMC43NjctMjQgMjQtMjRoNDMyYzEzLjIzMyAwIDI0IDEwLjc2NyAyNCAyNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDU2IDE5MmMtMTMuMjMzIDAtMjQgMTAuNzY3LTI0IDI0czEwLjc2NyAyNCAyNCAyNCAyNC0xMC43NjcgMjQtMjQtMTAuNzY3LTI0LTI0LTI0em0wIDMyYy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTIgMTkyYy0xMy4yMzMgMC0yNCAxMC43NjctMjQgMjRzMTAuNzY3IDI0IDI0IDI0IDI0LTEwLjc2NyAyNC0yNC0xMC43NjctMjQtMjQtMjR6bTAgMzJjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCAzNzZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0MTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0NTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Ffe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NzMuNTc0IDI1Mi40MzJoLTczLjE4NHYtNDMuNzYxYzAtMTEuNDczLTkuMzM0LTIwLjgwNy0yMC44MDctMjAuODA3LTkuODg2IDAtMzQuMjk1IDAtNDQuMzAyIDB2LTE3Ljg0MWMwLTEyLjM5OS0xMC4wODctMjIuNDg2LTIyLjQ4Ni0yMi40ODZoLTE3LjU5NWwxNC43MjQtNDcuNTM1YzE2Ljc1OS42OTIgMzAuNTM5LTEyLjc1IDMwLjUzOS0yOS4yODQgMC0xNi4xNjQtMTMuMTUxLTI5LjMxNS0yOS4zMTUtMjkuMzE1LTI5LjI2OCAwLTQwLjQ1NSAzOC41MS0xNS41NDEgNTQuMTU0bC0xNi4xMDEgNTEuOTc5aC0zMC4xMzNjLTEwLjU3NiAwLTE5LjgzMSA3LjUxNC0yMi4wMDYgMTcuODY2LS4xMDYuNTA3LS4xNiAxLjAyNC0uMTYgMS41NDJ2MjAuOTE5aC0zOC4xNDZ2LTE4LjgwMWMwLTguNjczLTcuMDU3LTE1LjczLTE1LjczLTE1LjczaC0xLjM3OXYtMTkuNTcyYzkuNDY5LS4yMDMgMTcuMTEzLTcuOTUzIDE3LjExMy0xNy40N3YtMTUuNjE2YzAtOS41MTctNy42NDQtMTcuMjY3LTE3LjExMy0xNy40N3YtNDMuNjk5YzAtMjEuNjk1LTE3LjY1LTM5LjM0Ni0zOS4zNDYtMzkuMzQ2aC01MS42NzdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NXMzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg1MS42NzhjMTMuNDI5IDAgMjQuMzU1IDEwLjkyNiAyNC4zNTUgMjQuMzU1djQzLjY4MmgtMzcuOTU3di0yMi41ODRjMC00LjE0LTMuMzU2LTcuNDk1LTcuNDk1LTcuNDk1aC05Ni4ydi0zNy45NTdoMzUuNjM4YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTUtNy40OTUtNy40OTUtNy40OTVoLTQzLjEzM2MtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djUyLjk0N2MwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoOTYuMnYxNS4xMDljLTkuNDY4LjIwMy0xNy4xMTIgNy45NTQtMTcuMTEyIDE3LjQ3djE1LjYxNmMwIDkuNTE2IDcuNjQ0IDE3LjI2NyAxNy4xMTIgMTcuNDd2MTkuNTcyaC0xLjM3OWMtOC42NzMgMC0xNS43MyA3LjA1Ny0xNS43MyAxNS43M3YxOC44MDFoLTIyLjU1NWMtMTEuNDczIDAtMjAuODA3IDkuMzM0LTIwLjgwNyAyMC44MDd2Mi40ODlsLTMzLjQwMiA3LjU4OWMtMy40MTMuNzc1LTUuODM1IDMuODA5LTUuODM1IDcuMzA5djEwNy4yNDNjMCAzLjQ5OSAyLjQyMSA2LjUzMyA1LjgzMyA3LjMwOGwzMy40MDQgNy41OTh2Mi40ODdjMCAxMS40NzMgOS4zMzQgMjAuODA3IDIwLjgwNyAyMC44MDdoNi40MjR2MjcuNzk5aC0xNS4xMjdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NSAwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoMzMzLjg0OWMxLjM3OCAwIDIuNDk4IDEuMTIxIDIuNDk4IDIuNDk4djI1LjUyYy0xNS44MzYtMi44My0zMi40MTguMTAzLTQ2LjcwNyA4LjgxMS0xNi43NTQgMTAuMjExLTM3LjU3IDEwLjIxMi01NC4zMjQgMC0yMS41NjctMTMuMTQ0LTQ4LjM2MS0xMy4xNDUtNjkuOTI4IDAtMTYuNzU0IDEwLjIxMS0zNy41NyAxMC4yMTItNTQuMzI0IDAtMjEuNTY3LTEzLjE0NC00OC4zNjEtMTMuMTQ1LTY5LjkyOCAwLTE2Ljc1NCAxMC4yMTItMzcuNTcgMTAuMjEyLTU0LjMyNCAwbC0yNy40NjktMTYuNzQydi0yMC4wODdoMTAuNjc2YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTYtNy40OTUtNy40OTUtNy40OTVoLTE4LjE3MmMtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djk3LjU0OWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDQ5Ny4wMDljNC4xNCAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1IDAtODguNTA2IDAtMTE4LjAwOSAwLTIxMy40ODcuMDAxLTIxLjE4OC0xNy4yMzctMzguNDI2LTM4LjQyNS0zOC40MjZ6bS0xNjIuNDI1LTE5Ni4wMzdjNy44OTggMCAxNC4zMjUgNi40MjYgMTQuMzI1IDE0LjMyNHMtNi40MjYgMTQuMzI1LTE0LjMyNSAxNC4zMjVjLTcuODk4IDAtMTQuMzI0LTYuNDI2LTE0LjMyNC0xNC4zMjVzNi40MjYtMTQuMzI0IDE0LjMyNC0xNC4zMjR6bS0yNjcuNjA0IDI3Ni40NC0yNC4yNDctNS41MTV2LTk1LjI3N2wyNC4yNDctNS41MDl6bTE5OC42NTMtMTY0Ljk3NGMuOTQ3LTMuMTI1IDMuODY3LTUuMzMzIDcuMTc2LTUuMzMzaDYzLjQyYzQuMTMzIDAgNy40OTUgMy4zNjIgNy40OTUgNy40OTV2MTcuODQxaC03OC4wOTF6bS0xNDAuMzA1LTUxLjU2OXYtMTUuNjE2YzAtMS4zNzggMS4xMjEtMi40OTggMi40OTgtMi40OThoNjcuMTg1YzEuMzc4IDAgMi40OTggMS4xMjEgMi40OTggMi40OTh2MTUuNjE2YzAgMS4zNzgtMS4xMjEgMi40OTgtMi40OTggMi40OThoLTY3LjE4NWMtMS4zNzcuMDAxLTIuNDk4LTEuMTItMi40OTgtMi40OTh6bTU1LjA2OSAxNy40ODl2MTkuNTUzaC0zNy45NTd2LTE5LjU1M3ptLTU1LjA2NiAzNS4yODNjMC0uNDA3LjMzMi0uNzM5LjczOS0uNzM5aDcwLjY5NmMuNDA3IDAgLjczOS4zMzIuNzM5LjczOXYxOC44MDFoLTcyLjE3NXYtMTguODAxem0tLjAwMyAzMy43OTFoMjQwLjE0OHYxNTMuNjU2aC0yNDAuMTQ4em0tMzcuNTQyIDE1My42NTZjLTMuMjA3IDAtNS44MTYtMi42MDktNS44MTYtNS44MTZ2LTE0Mi4wMjNjMC0zLjIwNyAyLjYwOS01LjgxNiA1LjgxNi01LjgxNmgyMi41NTF2MTUzLjY1NmMtNS4yMTEtLjAwMS0xNy40ODgtLjAwMS0yMi41NTEtLjAwMXptMjk5LjM3MiA0Mi43OWgtMjc3Ljk1N3YtMjcuNzk5aDI3Ny45NTZ2MjcuNzk5em03LjQ5NS00Mi43OTRjLS4wMjkgMC0uMDU4LjAwNC0uMDg3LjAwNGgtMTQuMDk5di0xNTMuNjU2aDIyLjU1MWMzLjIwNyAwIDUuODE2IDIuNjA5IDUuODE2IDUuODE2djE0Mi4wMjRjMCAzLjIwNy0yLjYwOSA1LjgxNi01LjgxNiA1LjgxNmgtOC4yNzhjLS4wMjkgMC0uMDU4LS4wMDQtLjA4Ny0uMDA0em0xMjUuNzkxIDE0MC4zNDNjLTkuMzc5IDAtNDcxLjEwNyAwLTQ4Mi4wMTkgMHYtNDQuOTE2bDE5LjY2NyAxMS45ODdjMjEuNTY3IDEzLjE0NSA0OC4zNjEgMTMuMTQ1IDY5LjkyOCAwIDE2Ljc1NC0xMC4yMTEgMzcuNTctMTAuMjEyIDU0LjMyNCAwIDIxLjU2OCAxMy4xNDUgNDguMzYxIDEzLjE0NSA2OS45MjggMCAxNi43NTQtMTAuMjExIDM3LjU3LTEwLjIxMiA1NC4zMjQgMCAyMS41NjggMTMuMTQ1IDQ4LjM2MSAxMy4xNDUgNjkuOTI4IDAgMTcuMDk3LTEwLjQyMSAzNy45NDEtOS45ODYgNTQuMzI0IDAgMjEuNTY3IDEzLjE0NCA0OC4zNjIgMTMuMTQ0IDY5LjkyOCAwbDE5LjY2Ny0xMS45ODdjLjAwMSAxMC41NTYuMDAxIDIyLjM4LjAwMSA0NC45MTZ6bTAtNjIuNDcyYy0yOS43ODkgMTguMTU2LTMwLjM1MyAxOC44MzYtMzYuNTI3IDIxLjEzMnYtNDQuMjU3YzAtNC4xMzktMy4zNTYtNy40OTUtNy40OTUtNy40OTVzLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djQ3LjQyN2MtMTkuNDcyIDEuMTcyLTI4Ljk4NC03LjY4OC0zOC41MDYtMTEuODM2di0zMC4wNTRjMC05LjY0My03Ljg0Ni0xNy40ODktMTcuNDg5LTE3LjQ4OWgtMTAuNzgzdi0yNy43OTljMTMuMzQyIDAgMjEuNjc2LTEwLjA0OSAyMS42NzYtMjAuODA3di0zMS43NTVoNDUuMTAydjYyLjMzMWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1czcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1di02OS44MjZjMC00LjEzOS0zLjM1Ni03LjQ5NS03LjQ5NS03LjQ5NWgtNTIuNTk3di0zNi41MjdoNzMuMTg0YzEyLjkyMyAwIDIzLjQzNiAxMC41MTMgMjMuNDM2IDIzLjQzNXYxNDMuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxMS4wMjQgMjI3LjE1M2gtNzkuNzI2Yy00LjE0IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTV2OTAuMDdjMCA0LjE0IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDc5LjcyNmM0LjE0IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTV2LTkwLjA3Yy4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6bS03LjQ5NSA5MC4wN2gtNjQuNzM1di03NS4wNzloNjQuNzM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTIuNjM1IDI0MC45N2gtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1IDAgNC4xNCAzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg2NC41MDVjNC4xMzkgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NS4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMi42MzUgMjcyLjE4OGgtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1czMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDY0LjUwNWM0LjEzOSAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1cy0zLjM1NS03LjQ5NS03LjQ5NS03LjQ5NXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzEyLjYzNSAzMDMuNDA2aC02NC41MDVjLTQuMTM5IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTVzMy4zNTYgNy40OTUgNy40OTUgNy40OTVoNjQuNTA1YzQuMTM5IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTVzLTMuMzU1LTcuNDk1LTcuNDk1LTcuNDk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjEuODk5IDI4Ny4xNzloNy41NDhsLTIuOTA0IDcuNDMyYy0xLjUwNyAzLjg1NS4zOTcgOC4yMDIgNC4yNTMgOS43MDkuODk2LjM1IDEuODE5LjUxNiAyLjcyNi41MTYgMi45OTcgMCA1LjgyNi0xLjgwOSA2Ljk4My00Ljc2OWw2LjktMTcuNjU1Yy45MDItMi4zMDcuNjA2LTQuOTEtLjc5MS02Ljk1NXMtMy43MTMtMy4yNjgtNi4xOS0zLjI2OGgtNy41NDhsMi45MDQtNy40MzJjMS41MDctMy44NTUtLjM5Ny04LjIwMi00LjI1My05LjcwOS0zLjg1NS0xLjUwOS04LjIwMy4zOTYtOS43MDkgNC4yNTNsLTYuOSAxNy42NTVjLS45MDIgMi4zMDctLjYwNiA0LjkxLjc5MSA2Ljk1NSAxLjM5NiAyLjA0NCAzLjcxMyAzLjI2OCA2LjE5IDMuMjY4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Gfe="PHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTk0LjcyNyA3My43MDhhNi43NSA2Ljc1IDAgMSAwIDYuNzUgNi43NSA2Ljc1NiA2Ljc1NiAwIDAgMCAtNi43NS02Ljc1em0wIDEwYTMuMjUgMy4yNSAwIDEgMSAzLjI1LTMuMjUgMy4yNTQgMy4yNTQgMCAwIDEgLTMuMjUgMy4yNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuMDgxIDczLjcwOGE2Ljc1IDYuNzUgMCAxIDAgNi43NSA2Ljc1IDYuNzU3IDYuNzU3IDAgMCAwIC02Ljc1LTYuNzV6bTAgMTBhMy4yNSAzLjI1IDAgMSAxIDMuMjUtMy4yNSAzLjI1NCAzLjI1NCAwIDAgMSAtMy4yNSAzLjI1eiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjY0Ljk2NiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9Ijc3LjU5MSIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjkwLjIxNiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjEwMi44NDEiIGN5PSI0OC4wMjEiIHI9IjMiLz4KICAgICAgICA8cGF0aCBkPSJtMTIxLjUgMzMuNWgtMTE1YTEuNzUxIDEuNzUxIDAgMCAwIC0xLjc1IDEuNzV2NTcuNWExLjc1MSAxLjc1MSAwIDAgMCAxLjc1IDEuNzVoMTUuOTQydjguMjVhMS43NTEgMS43NTEgMCAwIDAgMS43NSAxLjc1aDEwYTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoNTYuMTE2djguMjVhMS43NSAxLjc1IDAgMCAwIDEuNzUgMS43NWgxMGExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoMTUuOTQyYTEuNzUxIDEuNzUxIDAgMCAwIDEuNzUtMS43NXYtNTcuNWExLjc1MSAxLjc1MSAwIDAgMCAtMS43NS0xLjc1em0tODkuMDU4IDY3LjVoLTYuNXYtNi41aDYuNXptNjkuNjE2IDBoLTYuNXYtNi41aDYuNXptMTcuNjkyLTEwaC0xMTEuNXYtNTRoMTExLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyLjY5MiA3NC4yNWExMC4yNSAxMC4yNSAwIDEgMCAtMTAuMjUtMTAuMjUgMTAuMjYxIDEwLjI2MSAwIDAgMCAxMC4yNSAxMC4yNXptLTEuNzUtMTYuNzYydjQuMDEyYTEuNzUgMS43NSAwIDAgMCAzLjUgMHYtNC4wMTJhNi43NSA2Ljc1IDAgMSAxIC0zLjUgMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjkyIDQ5Ljk1OGExLjc0OSAxLjc0OSAwIDAgMCAxLjc1LTEuNzV2LTNhMS43NSAxLjc1IDAgMCAwIC0zLjUgMHYzYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4Ljc5MiA1MS4zNTNhMS43NSAxLjc1IDAgMCAwIDIuMzM3LS44MTZsMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyLTEuNTJsLTEuMyAyLjdhMS43NSAxLjc1IDAgMCAwIC44MTUgMi4zMzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1LjA1MiA1NS45MTlhMS43NDggMS43NDggMCAwIDAgMS4wODgtLjM4bDIuMzQ4LTEuODY4YTEuNzUgMS43NSAwIDAgMCAtMi4xNzktMi43MzlsLTIuMzQ4IDEuODY4YTEuNzUgMS43NSAwIDAgMCAxLjA5MSAzLjEyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNC4yNTYgNTAuNTM3YTEuNzUgMS43NSAwIDEgMCAzLjE1Mi0xLjUyMWwtMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyIDEuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2LjkgNTMuNjcxIDIuMzQ5IDEuODY4YTEuNzUgMS43NSAwIDAgMCAyLjE3OC0yLjc0bC0yLjM0OC0xLjg2N2ExLjc1IDEuNzUgMCAxIDAgLTIuMTc5IDIuNzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Im01OC44MDggNzAuMjkyaDUwLjE5MmExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTEwYTEuNzUgMS43NSAwIDAgMCAtMS43NS0xLjc1aC01MC4xOTJhMS43NDkgMS43NDkgMCAwIDAgLTEuNzUgMS43NXYxMGExLjc1IDEuNzUgMCAwIDAgMS43NSAxLjc1em0xLjc1LTEwaDQ2LjY5MnY2LjVoLTQ2LjY5MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYuMTM1IDg3LjIwOGgzMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAtMy41aC0zMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAgMy41eiIvPgogICAgPC9nPgo8L3N2Zz4=",Hfe="PHN2ZyBoZWlnaHQ9IjYwMHB0IiB2aWV3Qm94PSItNDUgLTE5IDYwMCA2MDAuMDAxIiB3aWR0aD0iNjAwcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTguMjE0ODQ0IDBoLTUwLjk3NjU2M2MtMTguMTk1MzEyLjAyNzM0MzgtMzIuOTMzNTkzIDE0Ljc2OTUzMS0zMi45NjQ4NDMgMzIuOTY0ODQ0djI0Ljg3MTA5NGgtMTQ0LjgyNDIxOWMtNjEuNDM3NS4wOTM3NS0xMTIuMjUzOTA3IDQ3Ljg3MTA5My0xMTYuMTMyODEzIDEwOS4xODc1aC0zOS4wNjY0MDZjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40Njg3NS05Ljk4ODI4MSA5Ljk4ODI4MXYzMC41MTE3MTloLTEwLjI4NTE1N2MtMy43MDcwMzEgMC03LjEwNTQ2OCAyLjA0Njg3NC04LjgzNTkzNyA1LjMyODEyNGwtODUuNzY5NTMxIDE2Mi41NTQ2ODhjLTEuNjM2NzE5IDMuMDk3NjU2LTEuNTMxMjUgNi44MjQyMTkuMjc3MzQ0IDkuODI0MjE5IDEuODA4NTkzIDMgNS4wNTA3ODEgNC44MjgxMjUgOC41NTQ2ODcgNC44MjgxMjVoMTA4LjEyMTA5NGMuMTc1NzgxIDMuOTU3MDMxLjY3NTc4MSA3Ljg4NjcxOCAxLjQ5NjA5MyAxMS43NjE3MTggNy41NzAzMTMgMzUuMDU0Njg4IDM4LjU1ODU5NCA2MC4wOTM3NSA3NC40MjU3ODIgNjAuMTI1IDM1Ljg3MTA5NC4wMzUxNTcgNjYuOTAyMzQ0LTI0Ljk0OTIxOCA3NC41MzUxNTYtNTkuOTk2MDkzLjg0Mzc1LTMuOTEwMTU3IDEuMzY3MTg4LTcuODkwNjI1IDEuNTUwNzgxLTExLjg5NDUzMWgxMDguMTM2NzE5YzMuNSAwIDYuNzUtMS44MzIwMzIgOC41NTQ2ODgtNC44MzIwMzIgMS44MDg1OTMtMyAxLjkxNzk2OC02LjcyNjU2Mi4yNzczNDMtOS44MjAzMTJsLTg1Ljc2OTUzMS0xNjIuNTQ2ODc1Yy0xLjczMDQ2OS0zLjI4OTA2My01LjE0NDUzMS01LjMzOTg0NC04Ljg1OTM3NS01LjMzMjAzMWgtMTAuMjYxNzE5di0zMC41MTE3MTljMC01LjUxOTUzMS00LjQ3MjY1Ni05Ljk4ODI4MS05Ljk4ODI4MS05Ljk4ODI4MWgtNDQuNTM1MTU2YzIuMTQwNjI1LTIyLjQ3MjY1NyAyMC45ODgyODEtMzkuNjQ0NTMyIDQzLjU2MjUtMzkuNjk5MjE5aDE0NC44MDQ2ODd2MjguMTYwMTU2Yy4wMzUxNTYgMTguMTkxNDA2IDE0Ljc3NzM0NCAzMi45MzM1OTQgMzIuOTY4NzUgMzIuOTYwOTM3aDUwLjk4MDQ2OWM1LjUxNTYyNSAwIDkuOTg4MjgxLTQuNDY0ODQzIDkuOTg4MjgxLTkuOTg4Mjgxdi0xNjguNDY4NzVjMC01LjUxMTcxOS00LjQ2NDg0NC05Ljk4MDQ2ODUtOS45NzY1NjItOS45ODgyODF6bS0yNTAuOTE3OTY5IDM5Ny42MzI4MTJjLTUuNTY2NDA2IDI1LjkzMzU5NC0yOC41MDc4MTMgNDQuNDUzMTI2LTU1LjAzMTI1IDQ0LjQyMTg3Ni0yNi41MzEyNS0uMDI3MzQ0LTQ5LjQyNTc4MS0xOC41OTc2NTctNTQuOTMzNTk0LTQ0LjU0Njg3Ni0uNTU0Njg3LTIuNDUzMTI0LS45MjU3ODEtNC45NDkyMTgtMS4xMjEwOTMtNy40NTMxMjRoMTEyLjIzNDM3NGMtLjE5OTIxOCAyLjU1MDc4MS0uNTg1OTM3IDUuMDgyMDMxLTEuMTQ4NDM3IDcuNTc4MTI0em0xMTIuNjA1NDY5LTI3LjU3NDIxOGgtMTAxLjM5NDUzMmMtLjA2NjQwNiAwLS4xMzY3MTggMC0uMjAzMTI0IDBoLTEzMS45NjA5MzhjLS4wNzAzMTIgMC0uMTM2NzE5IDAtLjIwNzAzMSAwaC0xMDEuMzk0NTMxbDc1LjI1MzkwNi0xNDIuNTU0Njg4aDE4NC42ODM1OTR6bS05OS40NzI2NTYtMTYyLjUzNTE1NmgtMTM2LjE5MTQwN3YtMjAuNTE5NTMyaDEzNi4xOTE0MDd6bTguOTk2MDkzLTEwMC4xODM1OTRjLTMzLjUzNTE1Ni4yNzM0MzctNjEuMjQ2MDkzIDI2LjIzODI4MS02My42OTUzMTIgNTkuNjgzNTk0aC0zMi40MzM1OTRjMy44NDc2NTYtNTAuMjczNDM4IDQ1LjczMDQ2OS04OS4xMjUgOTYuMTUyMzQ0LTg5LjE4NzVoMTQ0LjgwNDY4N3YyOS41MDM5MDZ6bTIxOC43Njk1MzEgNjEuMTQwNjI1aC00MC45ODQzNzRjLTcuMTY3OTY5LS4wMTk1MzEtMTIuOTcyNjU3LTUuODI0MjE5LTEyLjk5MjE4OC0xMi45ODgyODF2LTEyMi41MDc4MTNjLjAxOTUzMS03LjE2MDE1NiA1LjgyNDIxOS0xMi45NjQ4NDQgMTIuOTkyMTg4LTEyLjk4NDM3NWg0MC45ODQzNzR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im05MC41MTU2MjUgNDE1Ljk5MjE4OGMwLTUuNTE1NjI2LTQuNDcyNjU2LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4MjgyaC02MS4zOTg0MzhjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40NzI2NTYtOS45ODgyODEgOS45ODgyODIgMCA1LjUxOTUzMSA0LjQ3MjY1NiA5Ljk5MjE4NyA5Ljk4ODI4MSA5Ljk5MjE4N2g2MS4zOTg0MzhjNS41MTU2MjUgMCA5Ljk4ODI4MS00LjQ3MjY1NiA5Ljk4ODI4MS05Ljk5MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNy41MzkwNjIgNDcyLjY3MTg3NS00MC4wNzAzMTIgMzcuNzQ2MDk0Yy0yLjY0MDYyNSAyLjQzMzU5My0zLjc3MzQzOCA2LjEwMTU2Mi0yLjk1NzAzMSA5LjU5NzY1Ni44MTI1IDMuNTAzOTA2IDMuNDQxNDA2IDYuMjk2ODc1IDYuODg2NzE5IDcuMzE2NDA2IDMuNDQ1MzEyIDEuMDIzNDM4IDcuMTc1NzgxLjExNzE4OCA5Ljc2NTYyNC0yLjM3NWw0MC4wNzAzMTMtMzcuNzM4MjgxYzIuNjQwNjI1LTIuNDMzNTk0IDMuNzY5NTMxLTYuMTAxNTYyIDIuOTU3MDMxLTkuNjA1NDY5LS44MTY0MDYtMy40OTYwOTMtMy40NDUzMTItNi4yOTI5NjktNi44ODY3MTgtNy4zMTY0MDYtMy40NDkyMTktMS4wMTk1MzEtNy4xNzU3ODItLjExMzI4MS05Ljc2NTYyNiAyLjM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM2NS41NDY4NzUgNDA2LjAwMzkwNmgtNjEuMzkwNjI1Yy01LjUxOTUzMSAwLTkuOTkyMTg4IDQuNDcyNjU2LTkuOTkyMTg4IDkuOTg4MjgyIDAgNS41MTk1MzEgNC40NzI2NTcgOS45OTIxODcgOS45OTIxODggOS45OTIxODdoNjEuMzkwNjI1YzUuNTE5NTMxIDAgOS45ODgyODEtNC40NzI2NTYgOS45ODgyODEtOS45OTIxODcgMC01LjUxNTYyNi00LjQ2ODc1LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4Mjgyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY3LjA0Njg3NSA0NzIuNjcxODc1Yy0yLjU4OTg0NC0yLjQ4ODI4MS02LjMxNjQwNi0zLjM5NDUzMS05Ljc2NTYyNS0yLjM3NS0zLjQ0NTMxMiAxLjAyMzQzNy02LjA3NDIxOSAzLjgyMDMxMy02Ljg4NjcxOSA3LjMxNjQwNi0uODE2NDA2IDMuNTAzOTA3LjMxNjQwNyA3LjE3MTg3NSAyLjk1MzEyNSA5LjYwNTQ2OWw0MC4wNjI1IDM3LjcyMjY1NmMyLjU4OTg0NCAyLjQ5MjE4OCA2LjMxNjQwNiAzLjQwMjM0NCA5Ljc2NTYyNSAyLjM3NSAzLjQ0MTQwNy0xLjAxOTUzMSA2LjA3MDMxMy0zLjgxMjUgNi44ODY3MTktNy4zMTY0MDYuODEyNS0zLjQ5NjA5NC0uMzE2NDA2LTcuMTY0MDYyLTIuOTU3MDMxLTkuNjAxNTYyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyLjI3MzQzOCA0OTAuOTMzNTk0Yy01LjUxNTYyNiAwLTkuOTg4MjgyIDQuNDcyNjU2LTkuOTg4MjgyIDkuOTkyMTg3djUwLjg0NzY1N2MwIC4yNDYwOTMtLjAyMzQzNy41MDM5MDYtLjAyMzQzNy43MzgyODEgMCA1LjUxNTYyNSA0LjQ3MjY1NiA5Ljk4ODI4MSA5Ljk4ODI4MSA5Ljk4ODI4MS40MjU3ODEtLjAwMzkwNi44NTU0NjktLjAyNzM0NCAxLjI3NzM0NC0uMDg1OTM4IDQuOTkyMTg3LS42Mjg5MDYgOC43MzgyODEtNC44Nzg5MDYgOC43MzgyODEtOS45MDYyNXYtNTEuNTgyMDMxYzAtNS41MTk1MzEtNC40NzI2NTYtOS45OTIxODctOS45OTIxODctOS45OTIxODd6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Vfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzguNTExLDg4LjYyMkM0MDMuNjk0LDY5LjIyMywzMjguNDM3LDM5LjAxNywyNjAuODc4LDEuMjY5Yy0zLjAzLTEuNjkyLTYuNzIzLTEuNjkzLTkuNzU1LDAKCQkJQzE4MS42MjEsNDAuMDk5LDExMC40MzIsNjguNjcyLDMzLjQ4OSw4OC42MjNjLTQuNDEsMS4xNDQtNy40OSw1LjEyNC03LjQ5LDkuNjh2MTEwLjM5NGMwLDExMy41MzUsNTUuMjkyLDE4OC42MzksMTAxLjY3OCwyMzEuNjUKCQkJYzQ5Ljc1Nyw0Ni4xMzgsMTA3LjQ2LDcxLjY1NSwxMjguMzI0LDcxLjY1NWMyMC44NjQsMCw3OC41NjctMjUuNTE3LDEyOC4zMjQtNzEuNjU1CgkJCWM0Ni4zODQtNDMuMDExLDEwMS42NzgtMTE4LjExNCwxMDEuNjc4LTIzMS42NVY5OC4zMDJDNDg2LjAwMiw5My43NDYsNDgyLjkyMiw4OS43NjYsNDc4LjUxMSw4OC42MjJ6IE0zNzAuNzI2LDQyNS42NzgKCQkJYy0yNy41NTcsMjUuNTUzLTU0LjMzNiw0MS42ODUtNzEuOTUsNTAuNzE4Yy0yMi4zMTksMTEuNDQ3LTM3LjgxLDE1LjYwMy00Mi43NzYsMTUuNjAzYy00Ljk2NiwwLTIwLjQ1Ni00LjE1NS00Mi43NzYtMTUuNjAzCgkJCWMtMTcuNjEyLTkuMDMzLTQ0LjM5Mi0yNS4xNjUtNzEuOTUtNTAuNzE4Yy00My40NjQtNDAuMzAzLTk1LjI3Ni0xMTAuNjYzLTk1LjI3Ni0yMTYuOTgzVjEwNi4wMDgKCQkJYzczLjk2NC0xOS44LDE0Mi44MDEtNDcuNTIzLDIxMC4wMDMtODQuNTc0YzY1LjQ5OCwzNi4wNTksMTM3LjgyNyw2NS4xODUsMjEwLDg0LjU3MXYxMDIuNjloMC4wMDEKCQkJQzQ2Ni4wMDEsMzE1LjAxNSw0MTQuMTksMzg1LjM3NSwzNzAuNzI2LDQyNS42Nzh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ0My43OTMsMTE1LjM2OGMtNjMuMzM2LTE4LjQxMy0xMjQuOTM2LTQzLjQyNC0xODMuMDg3LTc0LjMzN2MtMi45MzgtMS41NjMtNi40NjEtMS41Ni05LjM5NywwLjAwNgoJCQlDMTkzLjA2OSw3Mi4wNzksMTMxLjQ3LDk3LjA5NCw2OC4yMiwxMTUuMzg3Yy00LjI3NywxLjIzNy03LjIyMiw1LjE1My03LjIyMiw5LjYwNnY4My43MDJjMCwzOS4wNzcsNy40MDUsNzYuMTYxLDIyLjAwOCwxMTAuMjIyCgkJCWMxNC41MywzMy44OTEsMzYuMjAxLDY0LjgyLDY0LjQwOSw5MS45MzNjMjAuMTc1LDE5LjM5LDQzLjQ2OSwzNi40NzcsNjcuMzY3LDQ5LjQxM2M0LjI4MiwyLjMxOCwyNi4zMDUsMTQuMDAzLDM5LjQwMiwxNi40MjEKCQkJYzAuNiwwLjExLDEuMjA3LDAuMTY2LDEuODE1LDAuMTY2YzAuNjA4LDAsMS4yMTUtMC4wNTYsMS44MTUtMC4xNjZjMTMuMDk3LTIuNDE4LDM1LjEyLTE0LjEwMywzOS40MDItMTYuNDIxCgkJCWMyMy44OTUtMTIuOTM2LDQ3LjE5LTMwLjAyMyw2Ny4zNjctNDkuNDEzYzI4LjIwOC0yNy4xMTEsNDkuODc4LTU4LjA0MSw2NC40MDktOTEuOTMzYzE0LjYwMy0zNC4wNiwyMi4wMDgtNzEuMTQ0LDIyLjAwOC0xMTAuMjIyCgkJCXYtODMuNzI0QzQ1MS4wMDEsMTIwLjUyNCw0NDguMDYzLDExNi42MTEsNDQzLjc5MywxMTUuMzY4eiBNNDMxLjAwMSwyMDguNjk1YzAsNzMuMzc2LTI3LjAwOCwxMzYuNTM4LTgwLjI3NiwxODcuNzM0CgkJCWMtMTguODk4LDE4LjE2Mi00MC42OTMsMzQuMTUzLTYzLjAyOSw0Ni4yNDVjLTEwLjE2Nyw1LjUwMy0yMy44OTIsMTEuOTE5LTMxLjY5NywxMy45MzRjLTcuODA1LTIuMDE1LTIxLjUzLTguNDMxLTMxLjY5Ni0xMy45MzQKCQkJYy0yMi4zMzctMTIuMDkzLTQ0LjEzMi0yOC4wODQtNjMuMDI5LTQ2LjI0NWMtNTMuMjY3LTUxLjE5NS04MC4yNzYtMTE0LjM1OS04MC4yNzYtMTg3LjczNFYxMzIuNDgKCQkJYzYwLjM1NC0xNy45NjksMTE5LjE3Mi00MS45MzEsMTc1LjAxOS03MS4zMDZjNTUuNzU3LDI5LjI1MSwxMTQuNTY5LDUzLjIwNCwxNzQuOTgzLDcxLjI3NFYyMDguNjk1eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuMDI3LDM1OC4zMDVsLTAuMi0wLjIxNWMtMy43MDEtNC4wNTUtOS45ODctNC4zNjctMTQuMDczLTAuNjg5Yy00LjEwNSwzLjY5NC00LjQzOCwxMC4wMTctMC43NDQsMTQuMTIybDAuMiwwLjIxNQoJCQljMS45NzEsMi4xNTgsNC42NzMsMy4yNTYsNy4zODcsMy4yNTZjMi4zODMsMCw0Ljc3NS0wLjg0OCw2LjY4Ni0yLjU2N0MxNzYuMzg4LDM2OC43MzMsMTc2LjcyMSwzNjIuNDA5LDE3My4wMjcsMzU4LjMwNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjI2Ljk2Myw0MDMuNjk1Yy0xMi4wNDYtNy42MDItMjMuNjQ1LTE2LjM2NC0zNC40NzMtMjYuMDQ0Yy00LjExNy0zLjY4Mi0xMC40MzktMy4zMjctMTQuMTIsMC43OQoJCQljLTMuNjgsNC4xMTgtMy4zMjYsMTAuNDM5LDAuNzkyLDE0LjEyYzExLjY1MywxMC40MTgsMjQuMTQ1LDE5Ljg1NCwzNy4xMjksMjguMDQ4YzEuNjU3LDEuMDQ1LDMuNTAyLDEuNTQ0LDUuMzI3LDEuNTQ0CgkJCWMzLjMxOCwwLDYuNTY0LTEuNjUsOC40NjYtNC42NjRDMjMzLjAzMiw0MTIuODE4LDIzMS42MzUsNDA2LjY0MiwyMjYuOTYzLDQwMy42OTV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMwOC44OTgsMjA5LjA3N3YtMzIuOTIxYzAtMjkuMTY4LTIzLjczLTUyLjg5OC01Mi45LTUyLjg5OGMtMjkuMTY4LDAtNTIuODk4LDIzLjczLTUyLjg5OCw1Mi44OTh2MzIuOTIxCgkJCWMtMTEuODk4LDAuNDI5LTIxLjQ0NywxMC4yMzUtMjEuNDQ3LDIyLjIzNnY3Ni43NjljLTAuMDAxLDEyLjI3Myw5Ljk4NCwyMi4yNTcsMjIuMjU3LDIyLjI1N0gzMDguMDkKCQkJYzEyLjI3MywwLDIyLjI1OC05Ljk4NCwyMi4yNTgtMjIuMjU3di03Ni43NjlDMzMwLjM0OCwyMTkuMzExLDMyMC43OTgsMjA5LjUwNCwzMDguODk4LDIwOS4wNzd6IE0yMjMuMDk5LDE3Ni4xNTYKCQkJYzAtMTguMTQsMTQuNzU5LTMyLjg5OCwzMi45LTMyLjg5OGMxOC4xNCwwLDMyLjg5OCwxNC43NTgsMzIuODk4LDMyLjg5OHYzMi45aC02NS43OTlWMTc2LjE1NnogTTMxMC4zNDcsMzA4LjA4MwoJCQljMCwxLjIyNC0xLjAzNCwyLjI1Ny0yLjI1OCwyLjI1N0gyMDMuOTA4Yy0xLjIyNCwwLTIuMjU4LTEuMDMzLTIuMjU4LTIuMjU3di03Ni43NjloMC4wMDFjMC0xLjIyNCwxLjAzNC0yLjI1NywyLjI1OC0yLjI1N2g5LjE4OQoJCQloODUuNzk5aDkuMTkyYzEuMjI0LDAsMi4yNTgsMS4wMzMsMi4yNTgsMi4yNTdWMzA4LjA4M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI0OS42NGMtNy43MDEsMC0xMy45ODIsNi4yODEtMTMuOTgyLDEzLjk4MmMwLDMuNzg2LDEuNTIzLDcuMjI1LDMuOTgyLDkuNzQ2djkuNzg3YzAsNS41MjIsNC40NzcsMTAsMTAsMTAKCQkJYzUuNTIzLDAsMTAtNC40NzgsMTAtMTB2LTkuNzg3YzIuNDU5LTIuNTIyLDMuOTgyLTUuOTYsMy45ODItOS43NDZDMjY5Ljk4MiwyNTUuOTIxLDI2My43MDEsMjQ5LjY0LDI1NiwyNDkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Zfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk2Ljg4MjgxMiAwaC00ODEuNzY1NjI0Yy04LjM0NzY1NyAwLTE1LjExNzE4OCA2Ljc2OTUzMS0xNS4xMTcxODggMTUuMTE3MTg4djQ4MS43NjU2MjRjMCA4LjM0NzY1NyA2Ljc2OTUzMSAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGg0ODEuNzY1NjI0YzguMzQ3NjU3IDAgMTUuMTE3MTg4LTYuNzY5NTMxIDE1LjExNzE4OC0xNS4xMTcxODh2LTQ4MS43NjU2MjRjMC04LjM0NzY1Ny02Ljc2OTUzMS0xNS4xMTcxODgtMTUuMTE3MTg4LTE1LjExNzE4OHptLTQwNi4xNzU3ODEgNDIxLjI5Mjk2OXYtODguNjk1MzEzaDExOS4wNzQyMTl2ODguNjk1MzEzem0tNjAuNDcyNjU2LTM5MS4wNTg1OTRoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTM1Mi44Mzk4NDQtNTguNDUzMTI1djI4LjIxODc1aC0yNTQuMTQ4NDM4di0yOC4yMTg3NXptLTI1NC4xNDg0MzggMjM5Ljg3MTA5NGgyNTQuMTUyMzQ0djMwLjIzODI4MWgtMjU0LjE1MjM0NHptMC0zMC4yMzQzNzV2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTZ2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTd2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptLTk4LjY5MTQwNiAzMC4yMzQzNzZoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTAgNjAuNDcyNjU2aDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptMzgzLjA3ODEyNSAwaDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptNjguNDUzMTI1LTMwLjIzNDM3NWgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1N2gtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0tMjQxLjc1IDI3Mi4xMjVoMzAuMjM4Mjgxdjg4LjY5NTMxM2gtMzAuMjM4Mjgxem02MC40NzY1NjMgMGgxMjAuODAwNzgxdjg4LjY5NTMxM2gtMTIwLjgwMDc4MXptLTI3MC4yNTc4MTMgMTQ5LjE2Nzk2OXYtMTQ5LjE2Nzk2OWgzMC4yMzgyODF2MTAzLjgxMjVjMCA4LjM0NzY1NiA2Ljc2OTUzMiAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGgzNjAuODIwMzEyYzguMzQ3NjU2IDAgMTUuMTE3MTg4LTYuNzY5NTMyIDE1LjExNzE4OC0xNS4xMTcxODh2LTEwMy44MTI1aDMwLjIzODI4MXYxNDkuMTY3OTY5em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Xfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0yIDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM0OC4yNDYwOTQgMzc2Ljc4NTE1NmMtMy4yNS0yLjYwNTQ2OC03Ljk5MjE4OC0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTI4Ljk0OTIxOSAzNi4wOTM3NWMtMy45ODQzNzUgNC45Njg3NS0uMzY3MTg4IDEyLjI1NzgxMiA1Ljg3NSAxMi4yNTc4MTIgMi4yMTA5MzcgMCA0LjM5ODQzNy0uOTY4NzUgNS44ODY3MTktMi44MjQyMTlsMjguOTQ5MjE4LTM2LjA5Mzc1YzIuNjA1NDY5LTMuMjUgMi4wODU5MzgtNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzkwLjM1OTM3NSAzNTguNzM4MjgxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg3LTIuMDgyMDMxLTEwLjU5NzY1NiAxLjE2NDA2M2wtMjguOTQ5MjE5IDM2LjA5Mzc1Yy0zLjk4NDM3NSA0Ljk2ODc1LS4zNjcxODggMTIuMjU3ODEyIDUuODc1IDEyLjI1NzgxMiAyLjIxMDkzOCAwIDQuMzk4NDM4LS45Njg3NSA1Ljg4NjcxOS0yLjgyNDIxOGwyOC45NDkyMTktMzYuMDkzNzVjMi42MDU0NjgtMy4yNDYwOTQgMi4wODU5MzctNy45OTIxODgtMS4xNjQwNjMtMTAuNTk3NjU3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTExLjc1IDQyMi4wNTA3ODFjMi4xMDkzNzUgMCA0LjIwNzAzMS0uODc4OTA2IDUuNjk5MjE5LTIuNTk3NjU2bDM5LjYxMzI4MS00NS42NDQ1MzFjMi43MzA0NjktMy4xNDQ1MzIgMi4zOTQ1MzEtNy45MDYyNS0uNzUtMTAuNjMyODEzLTMuMTQ0NTMxLTIuNzMwNDY5LTcuOTEwMTU2LTIuMzk0NTMxLTEwLjYzNjcxOS43NWwtMzkuNjE3MTg3IDQ1LjY0NDUzMWMtNC4yNTM5MDYgNC45MDIzNDQtLjY5NTMxMyAxMi40ODA0NjkgNS42OTE0MDYgMTIuNDgwNDY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk2LjYyMTA5NCAzNzYuNzg1MTU2Yy0zLjI1LTIuNjA1NDY4LTcuOTk2MDk0LTIuMDgyMDMxLTEwLjYwMTU2MyAxLjE2NDA2M2wtMTQuNDcyNjU2IDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5NjA5NCAxLjE2NDA2MyAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjUgOC4wMTE3MTggMi4wNjI1IDEwLjU5NzY1Ni0xLjE2NDA2MmwxNC40NzY1NjItMTguMDQ2ODc2YzIuNjA1NDY5LTMuMjUgMi4wODIwMzItNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDM3Ljk5MjE4OCAzOTQuODMyMDMxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg4LTIuMDgyMDMxLTEwLjU5NzY1NyAxLjE2NDA2M2wtMTQuNDc2NTYyIDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5MjE4NyAxLjE2NDA2MiAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjEwOTQgOC4wMTE3MTkgMi4wNjI1IDEwLjYwMTU2My0xLjE2NDA2M2wxNC40NzI2NTYtMTguMDQ2ODc0YzIuNjA1NDY5LTMuMjQ2MDk0IDIuMDgyMDMxLTcuOTkyMTg4LTEuMTY0MDYyLTEwLjU5NzY1N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNi40NzI2NTYgMzYyLjk4NDM3NWMtMy4yNS0yLjYwNTQ2OS03Ljk5MjE4Ny0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTE0LjQ3NjU2MiAxOC4wNTA3ODFjLTIuNjA1NDY5IDMuMjQ2MDkzLTIuMDgyMDMyIDcuOTkyMTg3IDEuMTY0MDYyIDEwLjU5NzY1NiAzLjI2OTUzMSAyLjYyMTA5NCA4LjAxMTcxOSAyLjA2MjUgMTAuNTk3NjU2LTEuMTY0MDYzbDE0LjQ3MjY1Ni0xOC4wNDY4NzRjMi42MDkzNzYtMy4yNSAyLjA4NTkzOC03Ljk5NjA5NC0xLjE2MDE1Ni0xMC42MDE1NjN6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01MDQuNDYwOTM4IDBjLTE3LjI1MzkwNyAwLTQ2Ni41OTM3NSAwLTQ5Ni45MjE4NzYgMC00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzY3MTg4LTcuNTM5MDYyIDcuNTM5MDYydjQ5My44NjcxODhjMCA0LjE3MTg3NSAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MiA3LjUzOTA2Mmg0MjIuMjEwOTM4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC00LjE2NDA2Mi0zLjM3ODkwNi03LjU0Mjk2OS03LjUzOTA2Mi03LjU0Mjk2OWgtNDE0LjY3MTg3NXYtMTQzLjg4MjgxMmgxNC4zNjcxODd2OTAuOTU3MDMxYzAgNC4xNjQwNjIgMy4zNzUgNy41MzkwNjIgNy41MzkwNjMgNy41MzkwNjJoMTI2LjQwMjM0NGM0LjE2MDE1NiAwIDcuNTM5MDYyLTMuMzc1IDcuNTM5MDYyLTcuNTM5MDYyIDAtNC4xNjAxNTYtMy4zNzg5MDYtNy41MzkwNjItNy41MzkwNjItNy41MzkwNjJoLTExOC44NjMyODF2LTgzLjQxNzk2OWgxNC41MzkwNjJ2MjYuMTIxMDkzYzAgNC4xNjQwNjMgMy4zNzUgNy41MzkwNjMgNy41MzkwNjIgNy41MzkwNjMgNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM3NSA3LjUzOTA2My03LjUzOTA2M3YtMjYuMTIxMDkzaDE1My43MTA5Mzd2ODMuNDE3OTY5aC0zNC4zMDg1OTNjLTQuMTYwMTU3IDAtNy41MzkwNjMgMy4zNzg5MDYtNy41MzkwNjMgNy41MzkwNjIgMCA0LjE2NDA2MiAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MyA3LjUzOTA2MmgyODEuNDcyNjU2YzQuMTY0MDYzIDAgNy41MzkwNjMtMy4zNzUgNy41MzkwNjMtNy41MzkwNjJ2LTkwLjk1NzAzMWgxNC4zNjcxODd2MTQzLjg4MjgxMmgtMzcuMDE1NjI1Yy00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzc4OTA3LTcuNTM5MDYyIDcuNTQyOTY5IDAgNC4xNzE4NzUgMy4zNzg5MDYgNy41MzkwNjIgNy41MzkwNjIgNy41MzkwNjJoNDQuNTU0Njg4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC01My44NjMyODEgMC00MzcuNDk2MDk0IDAtNDkzLjg2NzE4OCAwLTQuMTcxODc0LTMuMzc4OTA2LTcuNTM5MDYyLTcuNTM5MDYyLTcuNTM5MDYyem0tNDQ1LjM5ODQzOCAzMzQuOTAyMzQ0Yy0xMy43MTQ4NDQgMC0zMC4wNTg1OTQgMC00My45ODQzNzUgMCAwLTkuNTUwNzgyIDAtMTYuMjU3ODEzIDAtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2Mmg0My45ODQzNzV6bTAtNDEuODcxMDk0aC00My45ODQzNzV2LTI2Ljc3NzM0M2g0My45ODQzNzV6bTAtNDEuODU5Mzc0Yy05LjcwMzEyNSAwLTMzLjkxNzk2OSAwLTQzLjk4NDM3NSAwdi0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMTUuMDc4MTI1LTI2Ljc4MTI1aDM2My43MTg3NXYyNi43ODEyNWgtMzYzLjcxODc1em0wIDgzLjcxODc1aDI4OS4zMDA3ODFjNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM2NzE4NyA3LjUzOTA2My03LjUzOTA2MyAwLTQuMTYwMTU2LTMuMzc1LTcuNTM5MDYyLTcuNTM5MDYzLTcuNTM5MDYyLTEuMjM0Mzc1IDAtMjgyLjk0MTQwNiAwLTI4OS4zMDA3ODEgMHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1aC00NC4yNTc4MTNjLTQuMTY0MDYyIDAtNy41MzkwNjIgMy4zNzg5MDYtNy41MzkwNjIgNy41MzkwNjIgMCA0LjE3MTg3NiAzLjM3NSA3LjUzOTA2MyA3LjUzOTA2MiA3LjUzOTA2M2g0NC4yNTc4MTN2MjYuNzg5MDYzYy0xMS42MjUgMC0zNTQuNDkyMTg3IDAtMzYzLjcxODc1IDB6bTAgNDEuODcxMDk0aDM2My43MTg3NXYyNi43NzczNDNoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2MmgtMzYzLjcxODc1em0wIDQxLjg2NzE4N2gzNjMuNzE4NzV2MjYuNzgxMjVoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2M2gtMzYzLjcxODc1em0wIDY4LjY0ODQzOHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1Yy0zNS42MTcxODcgMC0zMjYuOTUzMTI1IDAtMzYzLjcxODc1IDB6bTM5My4zMzU5MzcgOTguNDk2MDk0aC0xODMuMzI4MTI0di00MC42Njc5NjljMC00LjE2NDA2My0zLjM3NS03LjUzOTA2My03LjUzOTA2My03LjUzOTA2M3MtNy41MzkwNjMgMy4zNzUtNy41MzkwNjMgNy41MzkwNjN2NDAuNjY3OTY5aC0yNi4xNDA2MjR2LTgzLjQxNDA2M2gyNi4xNDA2MjR2MTIuNTg1OTM3YzAgNC4xNjc5NjkgMy4zNzUgNy41MzkwNjMgNy41MzkwNjMgNy41MzkwNjNzNy41MzkwNjMtMy4zNzEwOTQgNy41MzkwNjMtNy41MzkwNjN2LTEyLjU4OTg0M2gxNTMuNzEwOTM3djI2LjEyMTA5M2MwIDQuMTY0MDYzIDMuMzc1IDcuNTM5MDYzIDcuNTM5MDYzIDcuNTM5MDYzIDQuMTY0MDYyIDAgNy41MzkwNjItMy4zNzUgNy41MzkwNjItNy41MzkwNjN2LTI2LjEyMTA5M2gxNC41MzkwNjJ6bTI5LjQ0NTMxMy05OC40OTYwOTRjLTEzLjc4OTA2MyAwLTI5Ljg2NzE4NyAwLTQzLjk4NDM3NSAwdi0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2M2g0My45ODQzNzV6bTAtNDEuODY3MTg4aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMC00MS44NTkzNzVoLTQzLjk4NDM3NXYtMjYuNzg5MDYyaDQzLjk4NDM3NXptMC00MS44NzEwOTRoLTQzLjk4NDM3NXYtMjYuNzc3MzQzaDQzLjk4NDM3NXptMC00MS44NTkzNzRoLTQzLjk4NDM3NXYtMjYuNzg5MDYzaDQzLjk4NDM3NXptMC00MS44NjcxODhoLTQzLjk4NDM3NXYtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Kfe="PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01Ni44MzggMWgtNDkuNjc2Yy0zLjM5OCAwLTYuMTYyIDIuNzY0LTYuMTYyIDYuMTYyIDAgLjY2NS4xMDYgMS4zMi4zMTYgMS45NDlsLjU1OCAxLjY3NmMuODQxIDIuNTIgMy4xOSA0LjIxMyA1Ljg0NyA0LjIxM2g0LjM4NGwxLjUwNiAxMy41NTJjLjI4MiAyLjUzNiAyLjQxOCA0LjQ0OCA0Ljk2OSA0LjQ0OGgyNi44NGMyLjU1MSAwIDQuNjg4LTEuOTEyIDQuOTY5LTQuNDQ4bDEuNTA2LTEzLjU1Mmg0LjM4NGMyLjY1NyAwIDUuMDA2LTEuNjkzIDUuODQ2LTQuMjE0bC41NTgtMS42NzRjLjIxMS0uNjMuMzE3LTEuMjg1LjMxNy0xLjk1IDAtMy4zOTgtMi43NjQtNi4xNjItNi4xNjItNi4xNjJ6bS0zMi44MzggMzBoLTR2LThjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptMTAgMGgtNHYtOGMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyem0xMCAwaC00di04YzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTQuNDAyLTIuNjY4Yy0uMTQ3IDEuMzI0LTEuMTM4IDIuMzYzLTIuNDAyIDIuNjExdi03Ljk0M2MwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY4aC0ydi04YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0djhoLTJ2LThjMC0yLjIwNi0xLjc5NC00LTQtNHMtNCAxLjc5NC00IDR2Ny45NDJjLTEuMjY0LS4yNDgtMi4yNTQtMS4yODctMi40MDItMi42MTFsLTEuNDgxLTEzLjMzMWgzNS43NjZ6bTEyLjM4NC0xOS44NTMtLjU1OCAxLjY3NWMtLjU2NyAxLjcwMi0yLjE1NCAyLjg0Ni0zLjk0OSAyLjg0NmgtNDguNTU4Yy0xLjc5NCAwLTMuMzgxLTEuMTQ0LTMuOTQ5LTIuODQ2bC0uNTU4LTEuNjc2Yy0uMTQyLS40MjQtLjIxNC0uODY3LS4yMTQtMS4zMTYgMC0yLjI5NSAxLjg2Ny00LjE2MiA0LjE2Mi00LjE2Mmg0OS42NzZjMi4yOTUgMCA0LjE2MiAxLjg2NyA0LjE2MiA0LjE2MiAwIC40NDktLjA3Mi44OTItLjIxNCAxLjMxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTUgNWgtNmMtMS4xMDMgMC0yIC44OTctMiAydjJjMCAxLjEwMy44OTcgMiAyIDJoNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTJjMC0xLjEwMy0uODk3LTItMi0yem0tNiA0di0yaDZsLjAwMSAyeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDcgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgOWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDloMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NCA0MHYtMWgtMWMtLjExOSAwLTEuNzk5LjA0Mi0zLjE3OSAyLjAzNS0uMDQ2LS4wNjMtLjA5Mi0uMTMxLS4xMzgtLjE5My0uOTAzLTEuMjMtMS42ODMtMi4yOTMtMS42ODMtNC44NDJ2LTFoLTFjLS4xMzkgMC0yLjg5My4wNTctNC42MjQgMy4yNzgtMi4wNTMtMy4yMjMtNS4zMjgtMy4yNzgtNS4zNzYtMy4yNzhoLTF2MWMwIDIuNTU5LS43ODQgMy42MzMtMS42OTIgNC44NzctLjA0LjA1NS0uMDguMTE0LS4xMi4xNjktMS4zODMtMi4wMDQtMy4wNjktMi4wNDYtMy4xODgtMi4wNDZoLTF2MWMwIDIuNTQzLS45OTUgMy44MzMtMi4xNDcgNS4zMjctMS4zMzcgMS43MzMtMi44NTMgMy42OTctMi44NTMgNy42NzMgMCA2LjA3NSAzLjkyNSAxMCAxMCAxMGgxNGM2LjA3NSAwIDEwLTMuOTI1IDEwLTEwIDAtMy45NzYtMS41MTYtNS45NC0yLjg1My03LjY3My0xLjE1Mi0xLjQ5NC0yLjE0Ny0yLjc4NC0yLjE0Ny01LjMyN3ptLTE5IDE3YzAtMi4zOTYgMS4zNTgtMy43MTkgMi42NzItNSAuODUxLS44MyAxLjcyNC0xLjY4IDIuMTE1LTIuNzczLjU2LjMxIDEuMjEzIDEuMDQzIDEuMjEzIDIuNzczdjNoMnYtMWMwLTEuOTg2IDEuMjM5LTIuNjYgMi4xNDctMi44ODcuMzU1IDEuMzA0IDEuMjk1IDIuMjQ0IDIuMTQ2IDMuMDk0LjkxNi45MTYgMS43MDcgMS43MDcgMS43MDcgMi43OTMgMCAxLjM4My0xLjQ2MyA0LTcgNHMtNy0yLjYxNy03LTR6bTE0IDRoLS4xMDJjMS41NjItMS4yOCAyLjEwMi0yLjg5OSAyLjEwMi00IDAtMS45MTQtMS4yMTgtMy4xMzItMi4yOTMtNC4yMDctLjkxNi0uOTE2LTEuNzA3LTEuNzA3LTEuNzA3LTIuNzkzdi0xaC0xYy0uODkyIDAtMi4xOTMuMjc4LTMuMjQ1IDEuMDg5LS42ODItMi4zOTUtMi42MjgtMy4wODktMy43NTUtMy4wODloLTF2MWMwIC44NDUtLjY1NSAxLjUyNi0xLjcyNCAyLjU2OC0xLjQ2IDEuNDIzLTMuMjc2IDMuMTkzLTMuMjc2IDYuNDMyIDAgMS4xMDEuNTQgMi43MiAyLjEwMiA0aC0uMTAyYy0zLjg2OCAwLTgtMi4xMDItOC04IDAtMy4yOTQgMS4xODMtNC44MjggMi40MzYtNi40NTIgMS4wNTUtMS4zNjcgMi4xMzktMi43NzIgMi40NjUtNS4wODQuODkxLjczOSAyLjA5OSAyLjY0MiAyLjA5OSA3LjUzNmgyYzAtMi41Ni0uMzIzLTQuNDYxLS44MDMtNS44NzguMjI4LS4zNjYuNDY5LS43MTMuNzI2LTEuMDY2Ljg0Ni0xLjE1OSAxLjc5MS0yLjQ1MyAyLjAyMy00Ljg3OSAxLjQ1Ni40NTMgNC4wNTQgMi4wNjkgNC4wNTQgNy44MjNoMmMwLTEuNjMtLjE5MS0yLjk5LS41MDYtNC4xMzIuNjM3LTIuMjczIDEuNzYxLTMuMjE4IDIuNTY3LTMuNjAxLjIzOCAyLjM0NiAxLjEzNyAzLjU3IDIuMDEgNC43NTkuMjYyLjM1Ny41MDcuNzA4LjczOCAxLjA4LS40ODMgMS40MTgtLjgwOSAzLjMyNC0uODA5IDUuODk0aDJjMC00LjkwNiAxLjIxNC02LjgwNyAyLjA5OC03LjU0Mi4zMjUgMi4zMTUgMS40MTEgMy43MjIgMi40NjYgNS4wOSAxLjI1MyAxLjYyNCAyLjQzNiAzLjE1OCAyLjQzNiA2LjQ1MiAwIDUuODk4LTQuMTMyIDgtOCA4eiIvPgogICAgPC9nPgo8L3N2Zz4=",qfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQ2NywwSDQ1QzIwLjE4NywwLDAsMjAuMTg3LDAsNDV2NDIyYzAsMjQuODEzLDIwLjE4Nyw0NSw0NSw0NWg0MjJjMjQuODEzLDAsNDUtMjAuMTg3LDQ1LTQ1VjQ1CgkJCUM1MTIsMjAuMTg3LDQ5MS44MTMsMCw0NjcsMHogTTQ4Miw0NjdjMCw4LjI3MS02LjcyOSwxNS0xNSwxNUg0NWMtOC4yNzEsMC0xNS02LjcyOS0xNS0xNVY0NWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1aDQyMgoJCQljOC4yNzEsMCwxNSw2LjcyOSwxNSwxNVY0Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI1Niw4MWMtOTYuNDk1LDAtMTc1LDc4LjUwNS0xNzUsMTc1czc4LjUwNSwxNzUsMTc1LDE3NXMxNzUtNzguNTA1LDE3NS0xNzVTMzUyLjQ5NSw4MSwyNTYsODF6IE0yNTYsNDAxCgkJCWMtNzkuOTUzLDAtMTQ1LTY1LjA0Ny0xNDUtMTQ1czY1LjA0Ny0xNDUsMTQ1LTE0NXMxNDUsNjUuMDQ3LDE0NSwxNDVTMzM1Ljk1Myw0MDEsMjU2LDQwMXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTg3LDIxNmMtMjIuMDU2LDAtNDAsMTcuOTQ0LTQwLDQwYzAsMjIuMDU2LDE3Ljk0NCw0MCw0MCw0MGMyMi4wNTYsMCw0MC0xNy45NDQsNDAtNDBDMjI3LDIzMy45NDQsMjA5LjA1NiwyMTYsMTg3LDIxNnoKCQkJIE0xODcsMjY2Yy01LjUxNCwwLTEwLTQuNDg2LTEwLTEwYzAtNS41MTQsNC40ODYtMTAsMTAtMTBjNS41MTQsMCwxMCw0LjQ4NiwxMCwxMEMxOTcsMjYxLjUxNCwxOTIuNTE0LDI2NiwxODcsMjY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMjUsMjE2Yy0yMi4wNTYsMC00MCwxNy45NDQtNDAsNDBjMCwyMi4wNTYsMTcuOTQ0LDQwLDQwLDQwYzIyLjA1NiwwLDQwLTE3Ljk0NCw0MC00MEMzNjUsMjMzLjk0NCwzNDcuMDU2LDIxNiwzMjUsMjE2egoJCQkgTTMyNSwyNjZjLTUuNTE0LDAtMTAtNC40ODYtMTAtMTBjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwQzMzNSwyNjEuNTE0LDMzMC41MTQsMjY2LDMyNSwyNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",exe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMzYwLDBIMTIwQzk3LjkyLDAuMDI2LDgwLjAyNiwxNy45Miw4MCw0MHYzNjhjMC4wMjQsMTkuMDAxLDEzLjM4OSwzNS4zNzMsMzIsMzkuMlY0ODBoNDh2LTMyaDE2MHYzMmg0OHYtMzIuOAoJCQljMTguNjExLTMuODI3LDMxLjk3Ni0yMC4xOTksMzItMzkuMlY0MEMzOTkuOTc0LDE3LjkyLDM4Mi4wOCwwLjAyNiwzNjAsMHogTTE0NCw0NjRoLTE2di0xNmgxNlY0NjR6IE0zNTIsNDY0aC0xNnYtMTZoMTZWNDY0egoJCQkgTTM4NCw0MDhjMCwxMy4yNTUtMTAuNzQ1LDI0LTI0LDI0SDEyMGMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0VjQwYzAtMTMuMjU1LDEwLjc0NS0yNCwyNC0yNGgyNDBjMTMuMjU1LDAsMjQsMTAuNzQ1LDI0LDI0VjQwOAoJCQl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwxNjBjLTcwLjY5MiwwLTEyOCw1Ny4zMDgtMTI4LDEyOGMwLjA4NCw3MC42NTgsNTcuMzQyLDEyNy45MTYsMTI4LDEyOGM3MC42OTIsMCwxMjgtNTcuMzA4LDEyOC0xMjgKCQkJUzMxMC42OTIsMTYwLDI0MCwxNjB6IE0yNDAsNDAwYy02MS44NTYsMC0xMTItNTAuMTQ0LTExMi0xMTJjMC4wNjYtNjEuODI4LDUwLjE3Mi0xMTEuOTM0LDExMi0xMTJjNjEuODU2LDAsMTEyLDUwLjE0NCwxMTIsMTEyCgkJCVMzMDEuODU2LDQwMCwyNDAsNDAweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAsMTkyYy01My4wMTksMC05Niw0Mi45ODEtOTYsOTZjMC4wNTcsNTIuOTk2LDQzLjAwNCw5NS45NDMsOTYsOTZjNTMuMDE5LDAsOTYtNDIuOTgxLDk2LTk2UzI5My4wMTksMTkyLDI0MCwxOTJ6CgkJCSBNMjQwLDM2OGMtNDQuMTgzLDAtODAtMzUuODE3LTgwLTgwYzAuMDQ5LTQ0LjE2MywzNS44MzctNzkuOTUyLDgwLTgwYzQ0LjE4MywwLDgwLDM1LjgxNyw4MCw4MEMzMjAsMzMyLjE4MywyODQuMTgzLDM2OCwyNDAsMzY4CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQwLDMyYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMyOTYsNTcuMDcyLDI3MC45MjgsMzIsMjQwLDMyeiBNMjQwLDEyOGMtMjIuMDkxLDAtNDAtMTcuOTA5LTQwLTQwYzAuMDI2LTIyLjA4LDE3LjkyLTM5Ljk3NCw0MC00MGMyMi4wOTEsMCw0MCwxNy45MDksNDAsNDAKCQkJUzI2Mi4wOTEsMTI4LDI0MCwxMjh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCw2NGMtMTMuMjU1LDAtMjQsMTAuNzQ1LTI0LDI0czEwLjc0NSwyNCwyNCwyNHMyNC0xMC43NDUsMjQtMjRTMjUzLjI1NSw2NCwyNDAsNjR6IE0yNDAsOTZjLTQuNDE4LDAtOC0zLjU4Mi04LTgKCQkJczMuNTgyLTgsOC04czgsMy41ODIsOCw4UzI0NC40MTgsOTYsMjQwLDk2eiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjM1MiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iNDAwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz4KICAgICAgICA8cmVjdCB4PSIzNTIiIHk9IjQwMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwyNDhjLTIyLjA5MSwwLTQwLDE3LjkwOS00MCw0MGMwLjAyNiwyMi4wOCwxNy45MiwzOS45NzQsNDAsNDBjMjIuMDkxLDAsNDAtMTcuOTA5LDQwLTQwCgkJCUMyODAsMjY1LjkwOSwyNjIuMDkxLDI0OCwyNDAsMjQ4eiBNMjQwLDMxMmMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNHMyNCwxMC43NDUsMjQsMjRTMjUzLjI1NSwzMTIsMjQwLDMxMnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDgsMjgwSDE2Yy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThTNTIuNDE4LDI4MCw0OCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjY1NiwyMjYuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNjktOC4yNDMtMi45ODEtMTEuMzEyLDAuMTk3Yy0yLjk5NCwzLjEtMi45OTQsOC4wMTUsMCwxMS4xMTVsMjQsMjQKCQkJYzMuMTc4LDMuMDY5LDguMjQzLDIuOTgxLDExLjMxMi0wLjE5N0M1Ni42NSwyMzQuMzU5LDU2LjY1LDIyOS40NDQsNTMuNjU2LDIyNi4zNDR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjQ2LDMzOC4zNDRjLTMuMS0yLjk5NS04LjAxNi0yLjk5NS0xMS4xMTYsMGwtMjQsMjRjLTMuMTc4LDMuMDctMy4yNjYsOC4xMzQtMC4xOTYsMTEuMzEyczguMTM0LDMuMjY2LDExLjMxMiwwLjE5NgoJCQljMC4wNjctMC4wNjQsMC4xMzItMC4xMywwLjE5Ni0wLjE5NmwyNC0yNEM1Ni43MjYsMzQ2LjQ3OCw1Ni42MzgsMzQxLjQxNCw1My40NiwzMzguMzQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjQsMjgwaC0zMmMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGgzMmM0LjQxOCwwLDgtMy41ODIsOC04UzQ2OC40MTgsMjgwLDQ2NCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2MS40NiwyMDIuMzQ0Yy0zLjEtMi45OTQtOC4wMTUtMi45OTQtMTEuMTE2LDBsLTI0LDI0Yy0zLjEyNCwzLjEyNS0zLjEyMyw4LjE5LDAuMDAyLDExLjMxNAoJCQljMS41LDEuNDk5LDMuNTM0LDIuMzQyLDUuNjU0LDIuMzQyYzIuMTIyLDAsNC4xNTYtMC44NDQsNS42NTYtMi4zNDRsMjQtMjRDNDY0LjcyNiwyMTAuNDc4LDQ2NC42MzgsMjA1LjQxNCw0NjEuNDYsMjAyLjM0NHoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjY1NiwzNjIuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNy04LjI0Mi0yLjk4Mi0xMS4zMTIsMC4xOTZjLTIuOTk1LDMuMS0yLjk5NSw4LjAxNiwwLDExLjExNmwyNCwyNAoJCQljMy4xNzgsMy4wNyw4LjI0MiwyLjk4MiwxMS4zMTItMC4xOTZDNDY0LjY1MSwzNzAuMzYsNDY0LjY1MSwzNjUuNDQ0LDQ2MS42NTYsMzYyLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",txe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTEyIDU2LjE2NDA2MmMwLTEyLjc5Njg3NC0xMC40MDYyNS0yMy4yMDMxMjQtMjMuMjAzMTI1LTIzLjIwMzEyNGgtNDkuOTY4NzV2LTE1LjA0Njg3NmMwLTkuODc4OTA2LTguMDM1MTU2LTE3LjkxNDA2Mi0xNy45MTQwNjMtMTcuOTE0MDYyaC0xMDMuMDg5ODQzYy05Ljg3ODkwNyAwLTE3LjkxNDA2MyA4LjAzOTA2Mi0xNy45MTQwNjMgMTcuOTE0MDYydjE1LjA0Njg3NmgtODcuODE2NDA2di0xNS4wNDY4NzZjMC05Ljg3ODkwNi04LjAzOTA2Mi0xNy45MTQwNjItMTcuOTE3OTY5LTE3LjkxNDA2MmgtMTAzLjA4OTg0M2MtOS44Nzg5MDcgMC0xNy45MTQwNjMgOC4wMzkwNjItMTcuOTE0MDYzIDE3LjkxNDA2MnYxNS4wNDY4NzZoLTQ5Ljk2ODc1Yy0xMi43OTY4NzUgMC0yMy4yMDMxMjUgMTAuNDA2MjUtMjMuMjAzMTI1IDIzLjIwMzEyNHY0OS41YzAgNi4wNTA3ODIgMi4zMjgxMjUgMTEuNTYyNSA2LjEzNjcxOSAxNS42OTkyMTktMy44MDg1OTQgNC4xMzI4MTMtNi4xMzY3MTkgOS42NDg0MzgtNi4xMzY3MTkgMTUuNjk5MjE5djMwNS44MDg1OTRjMCAxMi43OTI5NjggMTAuNDA2MjUgMjMuMjAzMTI1IDIzLjIwMzEyNSAyMy4yMDMxMjVoMi4zNzg5MDZ2MjIuNDUzMTI1YzAgMTIuNzgxMjUgMTAuMzk4NDM4IDIzLjE3NTc4MSAyMy4xNzk2ODggMjMuMTc1NzgxaDIzMi42MTcxODdjNC4xNDQ1MzIgMCA3LjUwMzkwNi0zLjM1OTM3NSA3LjUwMzkwNi03LjUgMC00LjE0NDUzMS0zLjM1OTM3NC03LjUwMzkwNi03LjUwMzkwNi03LjUwMzkwNmgtMjMyLjYxNzE4N2MtNC41MDc4MTMgMC04LjE3MTg3NS0zLjY2Nzk2OS04LjE3MTg3NS04LjE3MTg3NXYtMjIuNDUzMTI1aDQzMC44MjAzMTJ2MjIuNDUzMTI1YzAgNC41MDc4MTItMy42NjQwNjIgOC4xNzE4NzUtOC4xNzE4NzUgOC4xNzE4NzVoLTE0Ny4xMjVjLTQuMTQ4NDM3IDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41MDM5MDYgMCA0LjE0MDYyNSAzLjM1NTQ2OSA3LjUgNy41MDM5MDYgNy41aDE0Ny4xMjVjMTIuNzgxMjUgMCAyMy4xNzk2ODgtMTAuMzk0NTMxIDIzLjE3OTY4OC0yMy4xNzU3ODF2LTIyLjQ1MzEyNWgyLjM3ODkwNmMxMi43OTI5NjkgMCAyMy4yMDMxMjUtMTAuNDEwMTU3IDIzLjIwMzEyNS0yMy4yMDMxMjV2LTMwNS44MDg1OTRjMC02LjA1MDc4MS0yLjMzMjAzMS0xMS41NjY0MDYtNi4xMzY3MTktMTUuNjk5MjE5IDMuODA0Njg4LTQuMTM2NzE5IDYuMTM2NzE5LTkuNjQ4NDM3IDYuMTM2NzE5LTE1LjY5OTIxOXptLTE5Ny4wODU5MzgtMzguMjVjMC0xLjYwNTQ2OCAxLjMwNDY4OC0yLjkwNjI1IDIuOTEwMTU3LTIuOTA2MjVoMTAzLjA4OTg0M2MxLjYwNTQ2OSAwIDIuOTEwMTU3IDEuMzA0Njg4IDIuOTEwMTU3IDIuOTA2MjV2MTUuMDQ2ODc2aC0xMDguOTEwMTU3em0tMjI2LjczODI4MSAwYzAtMS42MDU0NjggMS4zMDQ2ODgtMi45MDYyNSAyLjkxMDE1Ny0yLjkwNjI1aDEwMy4wODk4NDNjMS42MDU0NjkgMCAyLjkxMDE1NyAxLjMwNDY4OCAyLjkxMDE1NyAyLjkwNjI1djE1LjA0Njg3NmgtMTA4LjkxMDE1N3ptNDA4LjgxNjQwNyA0MjQuOTU3MDMyYzAgNC41MTk1MzEtMy42NzU3ODIgOC4xOTkyMTgtOC4xOTUzMTMgOC4xOTkyMThoLTQ2NS41OTM3NWMtNC41MTk1MzEgMC04LjE5NTMxMy0zLjY3OTY4Ny04LjE5NTMxMy04LjE5OTIxOHYtMzA1LjgwODU5NGMwLTQuNTE5NTMxIDMuNjc1NzgyLTguMTk5MjE5IDguMTk1MzEzLTguMTk5MjE5aDQ2NS41OTM3NWM0LjUyMzQzNyAwIDguMTk1MzEzIDMuNjc5Njg4IDguMTk1MzEzIDguMTk5MjE5em0wLTMzNy4yMDcwMzJjMCA0LjUxOTUzMi0zLjY3NTc4MiA4LjE5NTMxMy04LjE5NTMxMyA4LjE5NTMxM2gtNDY1LjU5Mzc1Yy00LjUxOTUzMSAwLTguMTk1MzEzLTMuNjc1NzgxLTguMTk1MzEzLTguMTk1MzEzdi00OS41YzAtNC41MjM0MzcgMy42NzU3ODItOC4xOTkyMTggOC4xOTUzMTMtOC4xOTkyMThoNDY1LjU5Mzc1YzQuNTE5NTMxIDAgOC4xOTUzMTMgMy42NzU3ODEgOC4xOTUzMTMgOC4xOTkyMTh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMDk3NjU2IDU1LjE1MjM0NGMtMTQuMjA3MDMxIDAtMjUuNzYxNzE4IDExLjU1NDY4Ny0yNS43NjE3MTggMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1NDY4NyAyNS43NjE3MTkgMjUuNzYxNzE4IDI1Ljc2MTcxOSAxNC4yMDMxMjUgMCAyNS43NjE3MTktMTEuNTU0Njg3IDI1Ljc2MTcxOS0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU4NTk0LTI1Ljc1NzgxMi0yNS43NjE3MTktMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODcgMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE5LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg4IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOCAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3OS4xNjc5NjkgNTUuMTUyMzQ0Yy0xNC4yMDcwMzEgMC0yNS43NjE3MTkgMTEuNTU0Njg3LTI1Ljc2MTcxOSAyNS43NTc4MTIgMCAxNC4yMDcwMzIgMTEuNTU0Njg4IDI1Ljc2MTcxOSAyNS43NjE3MTkgMjUuNzYxNzE5IDE0LjIwMzEyNSAwIDI1Ljc1NzgxMi0xMS41NTQ2ODcgMjUuNzU3ODEyLTI1Ljc2MTcxOSAwLTE0LjIwMzEyNS0xMS41NTQ2ODctMjUuNzU3ODEyLTI1Ljc1NzgxMi0yNS43NTc4MTJ6bTAgMzYuNTE1NjI1Yy01LjkzMzU5NCAwLTEwLjc1NzgxMy00LjgyNDIxOS0xMC43NTc4MTMtMTAuNzUzOTA3IDAtNS45Mjk2ODcgNC44MjQyMTktMTAuNzU3ODEyIDEwLjc1NzgxMy0xMC43NTc4MTIgNS45Mjk2ODcgMCAxMC43NTM5MDYgNC44MjgxMjUgMTAuNzUzOTA2IDEwLjc1NzgxMiAwIDUuOTI5Njg4LTQuODI0MjE5IDEwLjc1MzkwNy0xMC43NTM5MDYgMTAuNzUzOTA3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzMyLjgzMjAzMSA1NS4xNTIzNDRjLTE0LjIwMzEyNSAwLTI1Ljc1NzgxMiAxMS41NTQ2ODctMjUuNzU3ODEyIDI1Ljc1NzgxMiAwIDE0LjIwNzAzMiAxMS41NTQ2ODcgMjUuNzYxNzE5IDI1Ljc1NzgxMiAyNS43NjE3MTkgMTQuMjA3MDMxIDAgMjUuNzYxNzE5LTExLjU1NDY4NyAyNS43NjE3MTktMjUuNzYxNzE5IDAtMTQuMjAzMTI1LTExLjU1NDY4OC0yNS43NTc4MTItMjUuNzYxNzE5LTI1Ljc1NzgxMnptMCAzNi41MTU2MjVjLTUuOTI5Njg3IDAtMTAuNzUzOTA2LTQuODI0MjE5LTEwLjc1MzkwNi0xMC43NTM5MDcgMC01LjkyOTY4NyA0LjgyNDIxOS0xMC43NTc4MTIgMTAuNzUzOTA2LTEwLjc1NzgxMiA1LjkzMzU5NCAwIDEwLjc1NzgxMyA0LjgyODEyNSAxMC43NTc4MTMgMTAuNzU3ODEyIDAgNS45Mjk2ODgtNC44MjQyMTkgMTAuNzUzOTA3LTEwLjc1NzgxMyAxMC43NTM5MDd6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDUuOTAyMzQ0IDU1LjE1MjM0NGMtMTQuMjAzMTI1IDAtMjUuNzYxNzE5IDExLjU1NDY4Ny0yNS43NjE3MTkgMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1ODU5NCAyNS43NjE3MTkgMjUuNzYxNzE5IDI1Ljc2MTcxOSAxNC4yMDcwMzEgMCAyNS43NjE3MTgtMTEuNTU0Njg3IDI1Ljc2MTcxOC0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU0Njg3LTI1Ljc1NzgxMi0yNS43NjE3MTgtMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODggMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE4LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg3IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOSAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzNC43NDIxODggMTcxLjkzNzVoLTIxOC4xNDg0MzhjLTQuMTQ0NTMxIDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41IDAgNC4xNDQ1MzEgMy4zNTkzNzUgNy41MDM5MDYgNy41MDM5MDYgNy41MDM5MDZoMjE4LjE0ODQzOGMxLjQzNzUgMCAyLjYwNTQ2OCAxLjE3MTg3NSAyLjYwNTQ2OCAyLjYwOTM3NXYxOS44NTE1NjNjMCAxLjQzNzUtMS4xNjc5NjggMi42MDkzNzUtMi42MDU0NjggMi42MDkzNzVoLTM1Ny40ODQzNzZjLTEuNDM3NSAwLTIuNjA1NDY4LTEuMTcxODc1LTIuNjA1NDY4LTIuNjA5Mzc1di0xOS44NTE1NjNjMC0xLjQzNzUgMS4xNjc5NjgtMi42MDkzNzUgMi42MDU0NjgtMi42MDkzNzVoMTA0LjI2OTUzMmM0LjE0NDUzMSAwIDcuNTAzOTA2LTMuMzU5Mzc1IDcuNTAzOTA2LTcuNTAzOTA2IDAtNC4xNDA2MjUtMy4zNTkzNzUtNy41LTcuNTAzOTA2LTcuNWgtMTA0LjI2OTUzMmMtOS43MTA5MzcgMC0xNy42MDkzNzQgNy44OTg0MzgtMTcuNjA5Mzc0IDE3LjYxMzI4MXYxOS44NTE1NjNjMCA5LjcxMDkzNyA3Ljg5ODQzNyAxNy42MTMyODEgMTcuNjA5Mzc0IDE3LjYxMzI4MWgxMC4wMzUxNTd2MTY2LjQ2NDg0NGMwIDE0LjI3NzM0MyAxMS42MTcxODcgMjUuODk0NTMxIDI1Ljg5NDUzMSAyNS44OTQ1MzFoMjg1LjYyNWMxNC4yNzczNDQgMCAyNS44OTQ1MzEtMTEuNjE3MTg4IDI1Ljg5NDUzMS0yNS44OTQ1MzF2LTE2Ni40NjQ4NDRoMTAuMDM1MTU3YzkuNzEwOTM3IDAgMTcuNjEzMjgxLTcuODk4NDM3IDE3LjYxMzI4MS0xNy42MTMyODF2LTE5Ljg1MTU2M2MwLTkuNzEwOTM3LTcuOTAyMzQ0LTE3LjYxMzI4MS0xNy42MTMyODEtMTcuNjEzMjgxem0tMjUuMDQyOTY5IDIyMS41NDI5NjljMCA2LjAwMzkwNi00Ljg4MjgxMyAxMC44ODY3MTktMTAuODg2NzE5IDEwLjg4NjcxOWgtMjg1LjYyNWMtNi4wMDM5MDYgMC0xMC44OTA2MjUtNC44ODI4MTMtMTAuODkwNjI1LTEwLjg4NjcxOXYtMTY2LjQ2NDg0NGgzMDcuNDAyMzQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyLjU0Mjk2OSAyOTQuODU5Mzc1YzIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNiA1LjUyMzQzNy0yLjQyMTg3NWwyMy4wMTE3MTktMjUuMDE1NjI1YzIuODA4NTk0LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDYtMTAuNjAxNTYzLTMuMDUwNzgxLTIuODA0Njg3LTcuNzkyOTY5LTIuNjA5Mzc0LTEwLjYwMTU2My40NDE0MDdsLTIzLjAxMTcxOCAyNS4wMTU2MjVjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA5Mzc2IDcuNzkyOTY4LjQ0MTQwNiAxMC42MDE1NjIgMS40NDE0MDYgMS4zMjQyMTkgMy4yNjE3MTggMS45ODA0NjkgNS4wNzgxMjUgMS45ODA0Njl6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTQuMTg3NSAzMjQuMTM2NzE5YzEuNDQxNDA2IDEuMzI4MTI1IDMuMjYxNzE5IDEuOTgwNDY5IDUuMDc4MTI1IDEuOTgwNDY5IDIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNyA1LjUyMzQzNy0yLjQyMTg3Nmw0Ny4zMTY0MDctNTEuNDI5Njg3YzIuODA0Njg3LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDctMTAuNjA1NDY5LTMuMDUwNzgxLTIuODA0Njg3LTcuNzk2ODc0LTIuNjA1NDY4LTEwLjYwMTU2Mi40NDE0MDZsLTQ3LjMxNjQwNiA1MS40MzM1OTRjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA1NDY5IDcuNzk2ODc1LjQ0MTQwNiAxMC42MDE1NjN6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",sxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMjIuMjUgMTcuMjY2aC0xMTYuNWE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NSA1Ljc1djY3Ljk5NGE1Ljc1NyA1Ljc1NyAwIDAgMCA1Ljc1IDUuNzVoOS44ODNsLTMuMDY4IDQuNDRhNi4wNzkgNi4wNzkgMCAwIDAgMTAgNi45MTJsNy44NDctMTEuMzUyaDY3LjE3Nmw3Ljg0NCAxMS4zNTFhNi4wNzkgNi4wNzkgMCAwIDAgMTAtNi45MTJsLTMuMDY4LTQuNDM5aDkuODgzYTUuNzU3IDUuNzU3IDAgMCAwIDUuNzUzLTUuNzV2LTY3Ljk5NGE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NS01Ljc1em0tMTAyLjU2MSA4OC44NTZhMi41ODIgMi41ODIgMCAwIDEgLTIuMTIyIDEuMTEyIDIuNTggMi41OCAwIDAgMSAtMi4xMjMtNC4wNDZsNC40NDMtNi40MjhoNi4yNzF6bTkyLjg2Ny0yLjkzNGEyLjU4IDIuNTggMCAwIDEgLTIuMTIzIDQuMDQ2IDIuNTg1IDIuNTg1IDAgMCAxIC0yLjEyMy0xLjExMmwtNi40NjgtOS4zNjJoNi4yNzF6bTExLjk0NC0xMi4xNzhhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUgMi4yNWgtMTE2LjVhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUtMi4yNXYtNjcuOTk0YTIuMjUzIDIuMjUzIDAgMCAxIDIuMjUtMi4yNWgxMTYuNWEyLjI1MyAyLjI1MyAwIDAgMSAyLjI1IDIuMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExOC4yNSAyNS4yNjZoLTEwOC41YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1IDEuNzV2NTkuOTk0YTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzVoMTA4LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNTkuOTk0YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1LTEuNzV6bS0xLjc1IDU5Ljk5NGgtMTA1di01Ni40OTRoMTA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4zNzUgNDcuOTIyaDcuM3YxOS45MzJhMS43NSAxLjc1IDAgMCAwIDMuNSAwdi0xOS45MzJoNy4zYTEuNzUgMS43NSAwIDAgMCAwLTMuNWgtMTguMWExLjc1IDEuNzUgMCAwIDAgMCAzLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTc1Ljk2MyA2OC41MjdhMS43NDkgMS43NDkgMCAwIDAgMy4yMyAwbDkuMDQ3LTIxLjY4MWExLjc1IDEuNzUgMCAxIDAgLTMuMjMtMS4zNDZsLTcuNDMyIDE3LjgwOS03LjQzMi0xNy44MDlhMS43NSAxLjc1IDAgMSAwIC0zLjIzIDEuMzQ4eiIvPgogICAgPC9nPgo8L3N2Zz4=",ixe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTksMkg1QTMsMywwLDAsMCwyLDVWNTlhMywzLDAsMCwwLDMsM0g1OWEzLDMsMCwwLDAsMy0zVjVBMywzLDAsMCwwLDU5LDJabTEsNTdhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWNUExLDEsMCwwLDEsNSw0SDU5YTEsMSwwLDAsMSwxLDFaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDZBMjYsMjYsMCwxLDAsNTgsMzIsMjYuMDI5LDI2LjAyOSwwLDAsMCwzMiw2Wm0wLDUwQTI0LDI0LDAsMSwxLDU2LDMyLDI0LjAyOCwyNC4wMjgsMCwwLDEsMzIsNTZaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDEwQTIyLDIyLDAsMSwwLDU0LDMyLDIyLjAyNSwyMi4wMjUsMCwwLDAsMzIsMTBabTEwLjE3NSw0LjgxM2MyLjQ2OSw5LjU1LTMuNjEzLDEyLjktNi40MjgsMTMuOTExYTUsNSwwLDAsMC0xLjY1LTEuMjQ3LDExLjM3NCwxMS4zNzQsMCwwLDAsMy4zMTEtNi43OTRjLjI0OS0yLjg0NS0uNzktNS43MDYtMy4wNS04LjUzMUExOS44MjQsMTkuODI0LDAsMCwxLDQyLjE3NSwxNC44MTNaTTM1LDMyYTMsMywwLDEsMS0zLTNBMywzLDAsMCwxLDM1LDMyWk0zMS41ODYsMTIuMDIxYzIuNzY3LDIuODczLDQuMDY2LDUuNzIyLDMuODMxLDguNDdhMTAuMSwxMC4xLDAsMCwxLTMuNzg0LDYuNTMsMTkuNjUyLDE5LjY1MiwwLDAsMC05LjU4NS0xMi4zNDRBMTkuODM4LDE5LjgzOCwwLDAsMSwzMS41ODYsMTIuMDIxWk0yMC4xMiwxNS45NDhhMTcuNjU3LDE3LjY1NywwLDAsMSw5LjU5MiwxMS42MzMsNC45NTEsNC45NTEsMCwwLDAtLjk1Ny42NDcsMTguODg2LDE4Ljg4NiwwLDAsMC0xNC4zMzgtNS43NTJBMjAuMTI2LDIwLjEyNiwwLDAsMSwyMC4xMiwxNS45NDhaTTEyLDMyYTE5Ljg3LDE5Ljg3LDAsMCwxLDEuNDQyLTcuNDE2QTE2LjM4NSwxNi4zODUsMCwwLDEsMjUuODE2LDI4LjI2YTEzLjc5LDEzLjc5LDAsMCwwLTguMDY0LDEuMjkxQTEyLjY0NCwxMi42NDQsMCwwLDAsMTIuMzExLDM1LjQsMTkuOTEzLDE5LjkxMywwLDAsMSwxMiwzMlptMS4xNjQsNi42NmMxLjEzLTMuNTI5LDIuOTgyLTYsNS41Mi03LjM0YTEyLjY0MywxMi42NDMsMCwwLDEsOC41NjEtLjc4N0E0LjkxOSw0LjkxOSwwLDAsMCwyNywzMmMwLC4xMDkuMDI1LjIxMS4wMzIuMzE4LTIuMDA4LjkxNS03Ljk2MSw0LjQyLTguOSwxNC4wNjNBMjAuMDM0LDIwLjAzNCwwLDAsMSwxMy4xNjQsMzguNjZabTYuODc4LDkuMzMzYy4zNjQtOS4yNzksNS41NjMtMTIuNzQzLDcuNTMxLTEzLjcxOWE1LDUsMCwwLDAsMS4wNjUsMS40Yy0uOTU4LDIuNjA5LTIuODUzLDkuNzkxLDIuMTA4LDE2LjI2MUExOS44NTYsMTkuODU2LDAsMCwxLDIwLjA0Miw0Ny45OTNaTTMzLjM4MSw1MS45M2MtNS40LTUuNzMzLTMuOTItMTIuNDk1LTIuOTg4LTE1LjIxOUE0LjkyOSw0LjkyOSwwLDAsMCwzMiwzN2MuMDgxLDAsLjE1Ni0uMDIuMjM1LS4wMjQuNiwzLjA0OSwyLjgyOSw5LjIyMywxMS4xMTEsMTEuNDc1QTE5Ljg1NiwxOS44NTYsMCwwLDEsMzMuMzgxLDUxLjkzWm0xMS45NjYtNS4wNzhjLTguNDQxLTEuNjE3LTEwLjYyMy03LjI5Mi0xMS4xNzQtMTAuMzdhNS4wMDYsNS4wMDYsMCwwLDAsMS4wODQtLjcxOWMxLjg2OCwxLjksNi4yMTUsNS42MzMsMTEuNTIyLDUuNjMzYTExLjIwOCwxMS4yMDgsMCwwLDAsMy4wODUtLjQ1NUEyMC4wNjksMjAuMDY5LDAsMCwxLDQ1LjM0Nyw0Ni44NTJaTTUyLDMyYTE5LjksMTkuOSwwLDAsMS0xLjA3NCw2LjQxNGMtNi41MDcsMy4xMi0xMi40NjItMi4xODQtMTQuNDM4LTQuMjUxYTQuOTI3LDQuOTI3LDAsMCwwLC4zNjktMS4wMjUsMTYuNiwxNi42LDAsMCwwLDEuNzg5LjA5NCwxOC4zMjgsMTguMzI4LDAsMCwwLDEyLjkyNi01LjMzOUEyMCwyMCwwLDAsMSw1MiwzMlptLTE1LjA4OC0uODY4YTQuNzQ1LDQuNzQ1LDAsMCwwLS4xNzMtLjY1YzIuOTI2LTEuMTU1LDkuMjM0LTQuNzY2LDcuODE3LTE0LjAyOGEyMC4wNTcsMjAuMDU3LDAsMCwxLDYuMzk0LDkuMkExNi4zNDQsMTYuMzQ0LDAsMCwxLDM2LjkxMiwzMS4xMzJaIi8+CiAgICAgICAgPHBhdGggZD0iTTksMTJBMywzLDAsMSwwLDYsOSwzLDMsMCwwLDAsOSwxMlpNOSw4QTEsMSwwLDEsMSw4LDksMSwxLDAsMCwxLDksOFoiLz4KICAgICAgICA8cGF0aCBkPSJNNTUsNmEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCw1NSw2Wm0wLDRhMSwxLDAsMSwxLDEtMUExLDEsMCwwLDEsNTUsMTBaIi8+CiAgICAgICAgPHBhdGggZD0iTTEyLDU1YTMsMywwLDAsMC0zLTMsMi45NjYsMi45NjYsMCwwLDAtMSwuMTg0VjQ1SDZWNTVhMywzLDAsMCwwLDMsM2g2VjU2SDExLjgxNkEyLjk2NiwyLjk2NiwwLDAsMCwxMiw1NVpNOSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw5LDU2WiIvPgogICAgICAgIDxwYXRoIGQ9Ik01Niw1Mi4xODRBMi45NjYsMi45NjYsMCwwLDAsNTUsNTJhMywzLDAsMCwwLTMsMywyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDV2Mkg1NWEzLDMsMCwwLDAsMy0zVjQ5SDU2Wk01NSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw1NSw1NloiLz4KICAgICAgICA8cmVjdCB4PSIxNyIgeT0iNTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",rxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyOC42MDcgNDI4LjYwNyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00MjMuNzczLDM0My44NzFMNDIzLjc3MywzNDMuODcxYy02LjYxNy00LjU5OS0xMi40NC0xMC4yNDYtMTcuMjQxLTE2LjcxOGMtMTEuNDk0LTEzLjA2MS0yNi4xMjItMjkuMjU3LTUzLjI5LTI5LjI1NwoJCQkJYy0yNy4xNjcsMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtMTAuOTcxLTEyLjUzOS0yNS42LTI5Ljc4LTUzLjI5LTI5Ljc4Yy0yNy42OSwwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1CgkJCQlzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1Yy03LjQ1OC05Ljg1LTE2Ljg4OS0xOC4wMzUtMjcuNjktMjQuMDMzYy01LjE5NC0yLjU5Ny0xMS41MDktMC40OTItMTQuMTA2LDQuNzAyCgkJCQljLTIuNTk3LDUuMTk0LTAuNDkyLDExLjUwOSw0LjcwMiwxNC4xMDZjOC4yMDMsNC45NDQsMTUuNDU3LDExLjMxNCwyMS40MiwxOC44MDhjMTIuMDE2LDE0LjEwNiwyNi4xMjIsMjkuNzgsNTMuMjksMjkuNzgKCQkJCXM0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4YzEyLjAxNi0xNC4xMDYsMTkuODUzLTIyLjQ2NSwzNy42MTYtMjIuNDY1czI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1CgkJCQljMTAuOTcxLDEyLjUzOSwyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4YzI3LjY5LDAsNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NQoJCQkJYzE3Ljc2MywwLDI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1YzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDM1My41OTQsNDI4LjY3OSwzNDcuMDQ1LDQyMy43NzMsMzQzLjg3MXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDIzLjc3MywyNjUuNTAzTDQyMy43NzMsMjY1LjUwM2MtNi42MTctNC41OTktMTIuNDQtMTAuMjQ2LTE3LjI0MS0xNi43MThjLTExLjQ5NC0xMy4wNjEtMjYuMTIyLTI5LjI1Ny01My4yOS0yOS4yNTcKCQkJCWMtMjcuMTY3LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjVzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1CgkJCQljLTEwLjk3MS0xMi41MzktMjUuNi0yOS43OC01My4yOS0yOS43OGMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NQoJCQkJcy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJcy0wLjQ5MiwxMS41MDksNC43MDIsMTQuMTA2YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NWM0LjkwNSwzLjE3NCwxMS40NTUsMS43NzEsMTQuNjI5LTMuMTM1CgkJCQlDNDMwLjA4MiwyNzUuMjI3LDQyOC42NzksMjY4LjY3Nyw0MjMuNzczLDI2NS41MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyMy43NzMsMTgxLjkxMUw0MjMuNzczLDE4MS45MTFjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhzLTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjVzLTI1LjYtMjkuNzgtNTMuMjktMjkuNzgKCQkJCWMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMmMtMi41OTcsNS4xOTQtMC40OTIsMTEuNTA5LDQuNzAyLDE0LjEwNgoJCQkJYzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4czQxLjI3My0xNS42NzMsNTMuMjktMjkuNzgKCQkJCWMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NXMyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQljMjcuNjksMCw0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4czE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDE5MS42MzUsNDI4LjY3OSwxODUuMDg1LDQyMy43NzMsMTgxLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNS44MTQsODIuMTI0YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NmM0LjkwNSwzLjE3NCwxMS40NTUsMS43NywxNC42MjktMy4xMzUKCQkJCWMzLjE3NC00LjkwNSwxLjc3MS0xMS40NTUtMy4xMzUtMTQuNjI5aDBjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1cy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NQoJCQkJYy0xMC45NzEtMTIuNTM5LTI1LjYtMjkuNzgtNTMuMjktMjkuNzhjLTI3LjY5LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjUKCQkJCVM1My44OCw5OS44ODcsNDIuOTA4LDg3LjM0OGMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJUzAuNjIxLDc5LjUyNyw1LjgxNCw4Mi4xMjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",oxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwOCA1MDgiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxMzkuMyIgd2lkdGg9IjE2LjQiIGhlaWdodD0iMzguMiIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTA0LjEsMjEuNCA4OC45LDI3LjcgOTgsNDkuOCAxMTMuMiw0My41IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNy41LDg5LjQgMjEuMywxMDQuNiA0My4zLDExMy43IDQ5LjUsOTguNSAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkwLjksMjEuNCAxODEuOCw0My41IDE5Ni45LDQ5LjggMjA2LDI3LjcgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQzLjMsMTgyLjcgMjEuMywxOTEuOCAyNy41LDIwNyA0OS41LDE5Ny45IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNjcuNCw4OS40IDI0NS40LDk4LjUgMjUxLjcsMTEzLjcgMjczLjcsMTA0LjYgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI0NiwzNy42IDIxOS4xLDY0LjYgMjMwLjcsNzYuMyAyNTcuNiw0OS4yIAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2NC4zLDIyMC4xIDM3LjQsMjQ3LjEgNDksMjU4LjggNzUuOSwyMzEuNyAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQuMywxNDAgMCwxNDAgMCwxNTYuNCAxNC4zLDE1Ni40IDM4LjEsMTU2LjQgMzguMSwxNDAgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU5LjEsNDcuNyA0OSwzNy42IDM3LjQsNDkuMiA2NC4zLDc2LjMgNzUuOSw2NC42IAkJIi8+CiAgICAgICAgPHBhdGggZD0iTTMxOS41LDE3Mi45djE2LjVjNDkuNywwLDkwLjEsNDAuNiw5MC4xLDkwLjZINDI2QzQyNi4xLDIyMC45LDM3OC4zLDE3Mi45LDMxOS41LDE3Mi45eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjYuMSwyOTUuNWMwLjYtNS42LDAuOS0xMC42LDAuOS0xNS42YzAtODEuNy02Ni4yLTE0OC4yLTE0Ny41LTE0OC4yYy0yOC40LDAtNTUuNSw4LjItNzguNywyM2MwLjItMi4yLDAuNS00LjMsMC41LTYuNQoJCQljMC01Mi00Mi4xLTk0LjMtOTMuOC05NC4zcy05My44LDQyLjMtOTMuOCw5NC4zYzAsMzAuNiwxNC45LDU5LjEsMzkuNSw3Ni43Yy0xNS40LDE3LjItMjUuNSwzOS4zLTI3LjMsNjMuNwoJCQljLTM3LDQtNjUuOCwzNS41LTY1LjgsNzMuN2MwLDQwLjksMzMuMSw3NC4xLDczLjcsNzQuMWgzNjAuNWM0MC43LDAsNzMuNy0zMy4yLDczLjctNzQuMUM1MDgsMzMzLjcsNDkxLjQsMzA3LjcsNDY2LjEsMjk1LjV6CgkJCSBNNzAsMTQ4LjJjMC00Mi45LDM0LjctNzcuOCw3Ny40LTc3LjhjNDIuNywwLDc3LjQsMzQuOSw3Ny40LDc3LjhjMCw2LjktMC45LDEzLjktMi43LDIwLjZjLTguMyw3LjQtMTUuNywxNS41LTIyLjEsMjQuNAoJCQljLTMzLjEtOS4xLTY4LjctMS4zLTk0LjksMjAuMUM4My4zLDE5OSw3MCwxNzQuNSw3MCwxNDguMnogTTQzNC4zLDQxOS45SDczLjdjLTMxLjYsMC01Ny40LTI1LjktNTcuNC01Ny42CgkJCWMwLTMxLjgsMjUuNy01Ny42LDU3LjQtNTcuNmg4LjJ2LTguMmMwLTQ5LjksNDAuNC05MC42LDkwLjEtOTAuNmMxNC40LDAsMzQuNyw2LjgsMzQuNyw2LjhzMzguNy02NC40LDExMi44LTY0LjQKCQkJYzcyLjMsMCwxMzEuMSw1OS4xLDEzMS4xLDEzMS43YzAsMTMuOS0yLjYsMjYuMS0yLjYsMjYuMWw2LjIsMi4zYzIyLjMsOC40LDM3LjMsMzAuMSwzNy4zLDUzLjkKCQkJQzQ5MS42LDM5NCw0NjUuOSw0MTkuOSw0MzQuMyw0MTkuOXoiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg4LjQsNDU1LjIgNDcuNSw0OTYuNCA1OS4xLDUwOCAxMDAsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE3OC42LDQ1NS4yIDEzNy42LDQ5Ni40IDE0OS4yLDUwOCAxOTAuMSw0NjYuOCAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjY4LjcsNDU1LjIgMjI3LjcsNDk2LjQgMjM5LjMsNTA4IDI4MC4zLDQ2Ni44IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzNTguOCw0NTUuMiAzMTcuOSw0OTYuNCAzMjkuNCw1MDggMzcwLjQsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ0OC45LDQ1NS4yIDQwOCw0OTYuNCA0MTkuNiw1MDggNDYwLjUsNDY2LjggCQkiLz4KICAgIDwvZz4KPC9zdmc+Cg==",nxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgNTVoLTV2LTQ0YTMuMDA5IDMuMDA5IDAgMCAwIDMtM3YtNWExIDEgMCAwIDAgLTEtMWgtNTJhMSAxIDAgMCAwIC0xIDF2NWEzLjAwOSAzLjAwOSAwIDAgMCAzIDN2NDRoLTVhMSAxIDAgMCAwIC0xIDF2NWExIDEgMCAwIDAgMSAxaDU4YTEgMSAwIDAgMCAxLTF2LTVhMSAxIDAgMCAwIC0xLTF6bS01NC00N3YtNGg1MHY0YTEgMSAwIDAgMSAtMSAxaC00OGExIDEgMCAwIDEgLTEtMXptNDcgM3Y0NGgtNDR2LTQ0em02IDQ5aC01NnYtM2g1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMTJoLTQwYTEgMSAwIDAgMCAtMSAxdjQwYTEgMSAwIDAgMCAxIDFoNDBhMSAxIDAgMCAwIDEtMXYtNDBhMSAxIDAgMCAwIC0xLTF6bS0yMSA0MGgtMTh2LTE5aDE4em0wLTIxaC0xOHYtMTdoMTh6bTIwIDIxaC0xOHYtMTloMTh6bTAtMjFoLTE4di0xN2gxOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTUuMTcyIDE4aDUuNjU3djJoLTUuNjU3eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcwNyAtLjcwNyAuNzA3IC43MDcgLTguMTYzIDE4LjI5MykiLz4KICAgICAgICA8cGF0aCBkPSJtMTQuMTM2IDIwLjVoMTIuNzI4djJoLTEyLjcyOHoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC05LjE5OCAyMC43OTMpIi8+CiAgICA8L2c+Cjwvc3ZnPg==",axe={"Alarm Systems":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSItMzEgMCA1MTEgNTExLjk5OTk4IiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzUuMzI4MTI1IDExOS4xNjc5NjljMjAuODM5ODQ0IDguMDU4NTkzIDM1LjY0NDUzMSAyMS4xNDg0MzcgNDQuNjMyODEzIDQxLjUwMzkwNiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzEuNjg3NSAxMjguNTg1OTM4YzE4Ljk4MDQ2OSA3LjMzOTg0MyAzMS4zODI4MTIgMTguODMyMDMxIDM5LjAzNTE1NiAzNi4xNjQwNjIgMS42Njc5NjkgMy43NzM0MzggNS4zNjMyODIgNi4wMjM0MzggOS4yNDIxODggNi4wMjM0MzggMS4zNjMyODEgMCAyLjc0NjA5NC0uMjc3MzQ0IDQuMDcwMzEyLS44NjMyODIgNS4xMDU0NjktMi4yNTM5MDYgNy40MTQwNjMtOC4yMTQ4NDQgNS4xNjAxNTYtMTMuMzE2NDA2LTkuODIwMzEyLTIyLjI1LTI2LjI1LTM3LjU3NDIxOS01MC4yMjY1NjItNDYuODQzNzUtNS4xOTkyMTktMi4wMTE3MTktMTEuMDQ2ODc1LjU3NDIxOS0xMy4wNTg1OTQgNS43NzczNDQtMi4wMTE3MTggNS4yMDMxMjUuNTc4MTI1IDExLjA0Njg3NSA1Ljc3NzM0NCAxMy4wNTg1OTR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDcuMTA1NDY5IDIzNy44MTI1YzIwLjA4OTg0MyAwIDM2LjQzNzUtMTYuMzQzNzUgMzYuNDM3NS0zNi40MzM1OTQgMC0yMC4wOTM3NS0xNi4zNDc2NTctMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDM3NSAxNi4zNDM3NS0zNi40Mzc1IDM2LjQzNzUgMCAyMC4wODk4NDQgMTYuMzQ3NjU2IDM2LjQzMzU5NCAzNi40Mzc1IDM2LjQzMzU5NHptMC01Mi42NzU3ODFjOC45NTMxMjUgMCAxNi4yNDIxODcgNy4yODUxNTYgMTYuMjQyMTg3IDE2LjI0MjE4NyAwIDguOTUzMTI1LTcuMjg5MDYyIDE2LjIzODI4Mi0xNi4yNDIxODcgMTYuMjM4MjgyLTguOTU3MDMxIDAtMTYuMjQyMTg4LTcuMjg1MTU3LTE2LjI0MjE4OC0xNi4yMzgyODIgMC04Ljk1NzAzMSA3LjI4NTE1Ny0xNi4yNDIxODcgMTYuMjQyMTg4LTE2LjI0MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM5MC4xNzk2ODggMTQ3LjAxNTYyNWMzLjc2NTYyNCAwIDcuMzk4NDM3LS41NzQyMTkgMTAuODIwMzEyLTEuNjM2NzE5bDcuMzM5ODQ0IDkuODcxMDk0YzEzLjk0MTQwNiAxOC43NSAyMS42MjEwOTQgNDEuOTQ1MzEyIDIxLjYyMTA5NCA2NS4zMTI1djU5LjE1MjM0NGMwIDUuNTc4MTI1IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2IDUuNTc0MjE4IDAgMTAuMDk3NjU2LTQuNTE5NTMxIDEwLjA5NzY1Ni0xMC4wOTc2NTZ2LTU5LjE1MjM0NGMwLTI3LjY3NTc4MS05LjA5Mzc1LTU1LjE1MjM0NC0yNS42MDkzNzUtNzcuMzU5Mzc1bC02LjY3NTc4MS04Ljk4MDQ2OWM1LjQ0OTIxOC02LjM2NzE4NyA4Ljc0NjA5NC0xNC42MjUgOC43NDYwOTQtMjMuNjQwNjI1IDAtMjAuMDkzNzUtMTYuMzQzNzUtMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDMzNTk0IDE2LjM0Mzc1LTM2LjQzMzU5NCAzNi40Mzc1IDAgMjAuMDg5ODQ0IDE2LjM0Mzc1IDM2LjQzMzU5NCAzNi40MzM1OTQgMzYuNDMzNTk0em0wLTUyLjY3NTc4MWM4Ljk1NzAzMSAwIDE2LjI0MjE4NyA3LjI4NTE1NiAxNi4yNDIxODcgMTYuMjQyMTg3IDAgOC45NTMxMjUtNy4yODUxNTYgMTYuMjQyMTg4LTE2LjI0MjE4NyAxNi4yNDIxODgtOC45NTMxMjYgMC0xNi4yNDIxODgtNy4yODkwNjMtMTYuMjQyMTg4LTE2LjI0MjE4OCAwLTguOTU3MDMxIDcuMjg5MDYyLTE2LjI0MjE4NyAxNi4yNDIxODgtMTYuMjQyMTg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjA1ODU5NCAzNDkuMDUwNzgxYy01LjU3ODEyNSAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU3djYzLjMyMDMxMmMwIDE0LjIzMDQ2OS0xMS41NzgxMjYgMjUuODA4NTk0LTI1LjgwODU5NCAyNS44MDg1OTRoLTQ0LjU5NzY1NnYtMzMuNDI5Njg4YzAtNS41NzgxMjUtNC41MTk1MzItMTAuMDk3NjU2LTEwLjA5Mzc1LTEwLjA5NzY1NmgtNDIuMjY1NjI2di0xMTIuNDUzMTI1YzIxLjg1NTQ2OS0yNC4wMzUxNTYgMzUuMTkxNDA3LTU1Ljk0OTIxOSAzNS4xOTE0MDctOTAuOTE3OTY5IDAtNzQuNTk3NjU2LTYwLjY4NzUtMTM1LjI4NTE1Ni0xMzUuMjgxMjUtMTM1LjI4NTE1NnMtMTM1LjI4MTI1IDYwLjY4NzUtMTM1LjI4MTI1IDEzNS4yODUxNTZjMCAzMy4xMDU0NjkgMTEuOTU3MDMxIDYzLjQ2NDg0NCAzMS43NzczNDMgODcuMDAzOTA2djIxMy41MTk1MzJjMCA1LjU3ODEyNSA0LjUyMzQzOCAxMC4wOTc2NTYgMTAuMDk3NjU3IDEwLjA5NzY1NmgyMzUuNzYxNzE5YzUuNTc0MjE4IDAgMTAuMDkzNzUtNC41MTk1MzEgMTAuMDkzNzUtMTAuMDk3NjU2di0zMy40Mjk2ODhoNDQuNTk3NjU2YzI1LjM2NzE4NyAwIDQ2LjAwMzkwNi0yMC42MzY3MTggNDYuMDAzOTA2LTQ2LjAwMzkwNnYtNjMuMzIwMzEyYzAtNS41NzgxMjYtNC41MjM0MzgtMTAuMDk3NjU3LTEwLjA5NzY1Ni0xMC4wOTc2NTd6bS0yMzIuOTUzMTI1LTI2Mi43NjE3MTljNjMuNDU3MDMxIDAgMTE1LjA4NTkzNyA1MS42Mjg5MDcgMTE1LjA4NTkzNyAxMTUuMDg5ODQ0IDAgNjMuNDU3MDMyLTUxLjYyODkwNiAxMTUuMDg1OTM4LTExNS4wODU5MzcgMTE1LjA4NTkzOC02My40NjA5MzggMC0xMTUuMDg1OTM4LTUxLjYyODkwNi0xMTUuMDg1OTM4LTExNS4wODU5MzggMC02My40NjA5MzcgNTEuNjI1LTExNS4wODk4NDQgMTE1LjA4NTkzOC0xMTUuMDg5ODQ0em0tODMuMzA4NTk0IDIyMS42MDE1NjNjMjIuOTgwNDY5IDE4LjAxNTYyNSA1MS45MTAxNTYgMjguNzY5NTMxIDgzLjMwODU5NCAyOC43Njk1MzEgMjkuODYzMjgxIDAgNTcuNDkyMTg3LTkuNzM0Mzc1IDc5Ljg5NDUzMS0yNi4xODc1djE4MS4zMzIwMzJoLTE2My4yMDMxMjV6bTIxNS41NjY0MDYgMTgzLjkxNDA2M2gtMzIuMTY3OTY5di02Ni44NTkzNzZoMzIuMTY3OTY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ4LjE2MDE1NiAzNzcuNzg5MDYyaDE3LjkyNTc4MmM1LjU3NDIxOCAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzgtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyNTc4MmMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk4LjE0NDUzMSAzNzcuNzg5MDYyaDE3LjkyMTg3NWM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyMTg3NWMtNS41NzgxMjUgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTE5NTMxIDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY2LjA0Njg3NSAzNTcuNTkzNzVoLTE3LjkyMTg3NWMtNS41NzQyMTkgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDE3LjkyMTg3NWM1LjU3ODEyNSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDguMTYwMTU2IDQyMC42NzU3ODFoNjcuOTA2MjVjNS41NzQyMTkgMCAxMC4wOTc2NTYtNC41MTk1MzEgMTAuMDk3NjU2LTEwLjA5NzY1NnMtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTY3LjkwNjI1Yy01LjU3NDIxOCAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU2czQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4LjEyNSA0NDMuMTU2MjVoLTk5Ljk2NDg0NGMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDk5Ljk2NDg0NGM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMzU1NDY5IDQwLjEzNjcxOWMxLjg0Mzc1IDMuMzIwMzEyIDUuMjg1MTU2IDUuMTkxNDA2IDguODMyMDMxIDUuMTkxNDA2IDEuNjYwMTU2IDAgMy4zNDM3NS0uNDE0MDYzIDQuODk4NDM4LTEuMjc3MzQ0IDQuODc1LTIuNzEwOTM3IDYuNjI1LTguODU5Mzc1IDMuOTE0MDYyLTEzLjczNDM3NWwtMTMuOTg0Mzc1LTI1LjEyODkwNmMtMi43MTA5MzctNC44NzEwOTQtOC44NTkzNzUtNi42MjUtMTMuNzM0Mzc1LTMuOTEwMTU2LTQuODcxMDk0IDIuNzEwOTM3LTYuNjI1IDguODU5Mzc1LTMuOTE0MDYyIDEzLjczNDM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTYzLjE0NDUzMSA4My4wMTU2MjUtMjYuMDU0Njg3LTE1LjAzOTA2M2MtNC44MzIwMzItMi43ODkwNjItMTEuMDAzOTA2LTEuMTMyODEyLTEzLjc5Mjk2OSAzLjY5NTMxM3MtMS4xMzI4MTMgMTEuMDAzOTA2IDMuNjk1MzEzIDEzLjc5Mjk2OWwyNi4wNTQ2ODcgMTUuMDQyOTY4YzEuNTg5ODQ0LjkxNzk2OSAzLjMyODEyNSAxLjM1MTU2MyA1LjAzOTA2MyAxLjM1MTU2MyAzLjQ4ODI4MSAwIDYuODgyODEyLTEuODA4NTk0IDguNzUzOTA2LTUuMDQ2ODc1IDIuNzg5MDYyLTQuODMyMDMxIDEuMTMyODEyLTExLjAwNzgxMi0zLjY5NTMxMy0xMy43OTY4NzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4xMTMyODEgMTQ2LjIxMDkzOC0zMC4wODU5MzctMS4yODEyNWMtNS41ODIwMzItLjI1LTEwLjI4MTI1IDQuMDg5ODQzLTEwLjUxOTUzMiA5LjY2MDE1Ni0uMjM0Mzc0IDUuNTcwMzEyIDQuMDg5ODQ0IDEwLjI4MTI1IDkuNjYwMTU3IDEwLjUxNTYyNWwzMC4wODU5MzcgMS4yODEyNWMuMTQ0NTMyLjAwNzgxMi4yOTI5NjkuMDA3ODEyLjQzNzUuMDA3ODEyIDUuMzc4OTA2IDAgOS44NTE1NjMtNC4yNDIxODcgMTAuMDc4MTI1LTkuNjY3OTY5LjIzODI4MS01LjU3MDMxMi00LjA4NTkzNy0xMC4yNzczNDMtOS42NTYyNS0xMC41MTU2MjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODMuNjQwNjI1IDE5OC42MjUuMTIxMDk0LjI5Njg3NWMxLjU4OTg0MyAzLjkyNTc4MSA1LjM2NzE4NyA2LjMwNDY4NyA5LjM1OTM3NSA2LjMwNDY4NyAxLjI2MTcxOCAwIDIuNTQ2ODc1LS4yMzgyODEgMy43ODkwNjItLjc0MjE4NyA1LjE2Nzk2OS0yLjA5Mzc1IDcuNjYwMTU2LTcuOTgwNDY5IDUuNTY2NDA2LTEzLjE0ODQzN2wtLjEyMTA5My0uMjk2ODc2Yy0yLjA5Mzc1LTUuMTY3OTY4LTcuOTgwNDY5LTcuNjU2MjUtMTMuMTQ4NDM4LTUuNTYyNXMtNy42NjAxNTYgNy45ODA0NjktNS41NjY0MDYgMTMuMTQ4NDM4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ5LjM2NzE4OCAzMTUuNjY3OTY5Yy0yLjA3ODEyNi01LjE3MTg3NS03Ljk2NDg0NC03LjY3OTY4OC0xMy4xMzY3MTktNS42MDE1NjMtNS4xNzE4NzUgMi4wODIwMzItNy42Nzk2ODggNy45NjA5MzgtNS42MDE1NjMgMTMuMTM2NzE5bC4xMTcxODguMjkyOTY5YzEuNTg1OTM3IDMuOTQxNDA2IDUuMzcxMDk0IDYuMzM1OTM3IDkuMzc1IDYuMzM1OTM3IDEuMjUzOTA2IDAgMi41MjczNDQtLjIzNDM3NSAzLjc2MTcxOC0uNzM0Mzc1IDUuMTc1NzgyLTIuMDc4MTI1IDcuNjgzNTk0LTcuOTYwOTM3IDUuNjAxNTYzLTEzLjEzMjgxMnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Amplifier:dfe,Awnings:Dfe,"Battery Status":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zOTQuMDYzIDM5MS45OTZjLTkuMTk4LTUuMjktMTguMzczLTEwLjYyMy0yNy41NTgtMTUuOTM3IDUuMDAyLTExLjc2OSAxMC4xOTQtMjMuOTAyIDE0LjkwMy0zNi4wNTMgMS44MDktNC42NjcgMS4xODktOS45MTEtMS42NTUtMTQuMDI4LTUuNzc2LTguMzYxLTE2Ljg2My04Ljg1NS0yNC4zNDQtMS43NC0xOS42NjEgMTguNy0zOS4wODUgMzctNTguNjUyIDU1LjUzNy0zLjc3NSAzLjU3Ny01LjYzOSA4LjQzNC01LjExIDEzLjMyNy41MjMgNC44NDYgMy4zMzkgOS4xNDQgNy43MjUgMTEuNzkyIDkuMzQ1IDUuNjQxIDE4Ljc2MSAxMC45NTUgMjguMDk4IDE2LjI5MS00LjY0NCAxMC45NTEtMTAuMzcyIDI0LjI0Ni0xNC45MiAzNi4wMDItMi44ODcgNy40NjIuNDIxIDE1Ljc0NCA3LjY5MyAxOS4yNjQgNS43MTQgMi43NjYgMTIuMjggMi4yMTEgMTguMjk5LTMuNDgzIDE5LjM0NC0xOC4zIDM5LjM0My0zNy4yMTQgNTguNjctNTUuNTQ3IDMuODE4LTMuNjIyIDUuNjc0LTguNTEyIDUuMDktMTMuNDE2LS41OTEtNC45NjItMy41OTQtOS4zMzgtOC4yMzktMTIuMDA5em0tNy4xNzQgMTQuNTRjLTE1LjYzNCAxNC44MzItNTguOTQ5IDU2Ljk3My02MC4xMDkgNTYuNDEyLS4xMTgtLjA1Ny0uMzA2LS4xNzgtLjI0LS4zNDkgNS4xNzktMTMuNTI2IDExLjYzNS0yOC4yNzIgMTYuOTE4LTQwLjczMiAxLjQ5My0zLjUyMi45MDctOC4yOC0zLjc2OC0xMC45Ny0xMC44NC02LjIzNy0yMS43OTEtMTIuMzU0LTMyLjU2NC0xOC44NDUtLjgwMi0uNDgzLS43NjctLjcxLS4wNTEtMS4zODggMjAuODc0LTE5Ljc3OSA1Ny45NTktNTUuMzExIDU5LjgwMy01Ni40NTkuMzk2LjA4NC41NDQuMjk5LjU0NS4zODQtNS4zMDcgMTMuNjg0LTExLjIxMyAyNy4zMDUtMTYuOSA0MC43MzktMS43OTQgNC4yMzctLjI5MyA4LjY0OSAzLjczOSAxMC45OCA0LjM5OSAyLjU0IDguNzk2IDUuMDg3IDEzLjE5MSA3LjYzNCA2LjM3NCAzLjY5MyAxMi43NDggNy4zODcgMTkuMTM0IDExLjA1OSAxLjEwNi42MzUgMS4xMzYuNzQ0LjMwMiAxLjUzNXptLTgxLjc4NC0yMDguNGgtMjAxLjQ2Yy0xMC4yNzMgMC0xOC42MzEgOC4zMy0xOC42MzEgMTguNTY5djQ0LjI3NmMwIDEwLjIzOSA4LjM1NyAxOC41NjkgMTguNjMxIDE4LjU2OWgyMDEuNDYxYzEwLjI3MyAwIDE4LjYzMS04LjMzIDE4LjYzMS0xOC41Njl2LTQ0LjI3NmMtLjAwMS0xMC4yMzktOC4zNTgtMTguNTY5LTE4LjYzMi0xOC41Njl6bTMuNjMxIDYyLjg0NWMwIDEuOTY4LTEuNjI5IDMuNTY5LTMuNjMxIDMuNTY5aC0yMDEuNDZjLTIuMDAyIDAtMy42MzEtMS42MDEtMy42MzEtMy41Njl2LTQ0LjI3NmMwLTEuOTY4IDEuNjI5LTMuNTY5IDMuNjMxLTMuNTY5aDIwMS40NjFjMi4wMDIgMCAzLjYzMSAxLjYwMSAzLjYzMSAzLjU2OXY0NC4yNzZ6bTE1LTE0My44OThjMC0xMC4yMzktOC4zNTctMTguNTY5LTE4LjYzMS0xOC41NjloLTIwMS40NmMtMTAuMjczIDAtMTguNjMxIDguMzMtMTguNjMxIDE4LjU2OXY0NC4yNzZjMCAxMC4yMzkgOC4zNTcgMTguNTY5IDE4LjYzMSAxOC41NjloMjAxLjQ2MWMxMC4yNzMgMCAxOC42MzEtOC4zMyAxOC42MzEtMTguNTY5di00NC4yNzZ6bS0xNSA0NC4yNzdjMCAxLjk2OC0xLjYyOSAzLjU2OS0zLjYzMSAzLjU2OWgtMjAxLjQ2Yy0yLjAwMiAwLTMuNjMxLTEuNjAxLTMuNjMxLTMuNTY5di00NC4yNzZjMC0xLjk2OCAxLjYyOS0zLjU2OSAzLjYzMS0zLjU2OWgyMDEuNDYxYzIuMDAyIDAgMy42MzEgMS42MDEgMy42MzEgMy41Njl2NDQuMjc2em0zOC4yNDcgMTIzLjg1N2MtMTguNjUzIDAtMzYuMjY2IDQuNTI5LTUxLjgwMyAxMi41NDJoLTE5MS41MzVjLTEwLjI3MiAwLTE4LjYzIDguMzMxLTE4LjYzIDE4LjU3djQ0LjI3YzAgMTAuMjM5IDguMzU3IDE4LjU3IDE4LjYzIDE4LjU3aDEzMS42MjFjLTEuMDk2IDYuMzE4LTEuNjczIDEyLjgxMi0xLjY3MyAxOS40MzggMCAyNC4yNDMgNy42NTEgNDYuNzI5IDIwLjY2IDY1LjE4MmgtMTUwLjYwOGMtMi4wMDIgMC0zLjYzLTEuNjAyLTMuNjMtMy41N3YtNDQuMjdjMC0xLjk2OSAxLjYyOC0zLjU3IDMuNjMtMy41N2gxMDcuNjQxYzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMDcuNjQxYy0xMC4yNzIgMC0xOC42MyA4LjMzMS0xOC42MyAxOC41N3Y0NC4yN2MwIDEwLjIzOSA4LjM1NyAxOC41NyAxOC42MyAxOC41N2gxNjMuMjM3YzcuMDcgNy4wNjMgMTUuMDY1IDEzLjE5OSAyMy43ODUgMTguMjFoLTE5OC4yNDJjLTE0LjIyNyAwLTI1LjgtMTEuNTc0LTI1LjgtMjUuOHYtMzY1LjA4OWMwLTE0LjIyNiAxMS41NzMtMjUuOCAyNS44LTI1LjhoMjIzLjljMTQuMjI3IDAgMjUuOCAxMS41NzQgMjUuOCAyNS44djE1Ni42NGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xNTYuNjRjMC0yMi40OTctMTguMzAzLTQwLjgtNDAuOC00MC44aC00MC4wNjd2LTM1LjYxMWMwLTE2LjM3Ni0xMy4zMjMtMjkuNjk5LTI5LjY5OS0yOS42OTloLTg0LjM2N2MtMTYuMzc2IDAtMjkuNjk5IDEzLjMyMy0yOS42OTkgMjkuNjk5djM1LjYxMWgtNDAuMDY4Yy0yMi40OTcgMC00MC44IDE4LjMwMy00MC44IDQwLjh2MzY1LjA5YzAgMjIuNDk3IDE4LjMwMyA0MC44IDQwLjggNDAuOGgyMjMuOWMzLjg5MiAwIDcuNzMxLS41NTMgMTEuNDQyLTEuNjM2IDYuMjQ4IDEuMDcxIDEyLjY2NyAxLjYzNiAxOS4yMTYgMS42MzYgNjIuNTI0IDAgMTEzLjM5Mi01MC44NjcgMTEzLjM5Mi0xMTMuMzkyIDAtNjIuNTI0LTUwLjg2Ny0xMTMuMzkxLTExMy4zOTItMTEzLjM5MXptLTE5OS40OTEtMjU1LjUxOGMwLTguMTA1IDYuNTk0LTE0LjY5OSAxNC42OTktMTQuNjk5aDg0LjM2N2M4LjEwNSAwIDE0LjY5OSA2LjU5NCAxNC42OTkgMTQuNjk5djM1LjYxMWgtMTEzLjc2NXptLTQzLjg0NyAzMzQuNDcxYy0yLjAwMiAwLTMuNjMtMS42MDItMy42My0zLjU3di00NC4yN2MwLTEuOTY5IDEuNjI4LTMuNTcgMy42My0zLjU3aDE2OS4zNDFjLTE1LjY2NiAxMy41MjEtMjcuNiAzMS4yNS0zNC4wNDEgNTEuNDF6bTI0My4zMzggMTMyLjgzYy01NC4yNTMgMC05OC4zOTItNDQuMTM4LTk4LjM5Mi05OC4zOTIgMC01NC4yNTMgNDQuMTM5LTk4LjM5MSA5OC4zOTItOTguMzkxczk4LjM5MiA0NC4xMzggOTguMzkyIDk4LjM5MWMwIDU0LjI1NC00NC4xMzkgOTguMzkyLTk4LjM5MiA5OC4zOTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Ceiling Spotlights":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDc0IDc0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDYuNDQgNGgtMi45N2ExIDEgMCAwIDEgMC0yaDIuOTdhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNjguNjQgMTAuMzhoLTYzLjI4YTEgMSAwIDAgMSAtMS0xdi02LjM4YTEgMSAwIDAgMSAxLTFoMjEuMmExIDEgMCAwIDEgMCAyaC0yMC4ydjQuMzhoNjEuMjh2LTQuMzhoLTE0LjJhMSAxIDAgMCAxIDAtMmgxNS4yYTEgMSAwIDAgMSAxIDF2Ni4zOGExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYuNDcgNGgtMi45MWExIDEgMCAwIDEgMC0yaDIuOTFhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgNTEuMjA3YTEgMSAwIDAgMSAtMS0xdi00MC44MjhhMSAxIDAgMSAxIDIgMHY0MC44MjhhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ljc3MSA2Ny4wN2gtMTkuNTQyYTEgMSAwIDAgMSAtLjk3Ny0xLjIxNWwzLjQ5LTE1Ljg1NWExIDEgMCAwIDEgLjk3Ny0uNzg1aDEyLjU2MmExIDEgMCAwIDEgLjk3Ny43ODVsMy40OSAxNS44NmExIDEgMCAwIDEgLS45NzcgMS4yMTV6bS0xOC4zLTJoMTcuMDU2bC0zLjA0OS0xMy44NmgtMTAuOTU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyA3MmE1LjkzNiA1LjkzNiAwIDAgMSAtNS45My01LjkzIDEgMSAwIDAgMSAyIDAgMy45MyAzLjkzIDAgMCAwIDcuODYgMCAxIDEgMCAwIDEgMiAwIDUuOTM2IDUuOTM2IDAgMCAxIC01LjkzIDUuOTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiAzNS4xMTRhMSAxIDAgMCAxIC0xLTF2LTI0LjczNWExIDEgMCAwIDEgMiAwdjI0LjczNWExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjkuNiA1MC4wMjZoLTE4LjM3YTEgMSAwIDAgMSAtLjk3Ni0xLjIxNWwzLjI4LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgwOWExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgybC0yLjgzOS0xMi45MDloLTEwLjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiA1NC42NmE1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQtNS42MzQgMSAxIDAgMSAxIDIgMCAzLjYzNCAzLjYzNCAwIDEgMCA3LjI2OCAwIDEgMSAwIDEgMSAyIDAgNS42NDEgNS42NDEgMCAwIDEgLTUuNjM0IDUuNjM0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMy41ODQgMzUuMTE0YTEgMSAwIDAgMSAtMS0xdi0yNC43MzVhMSAxIDAgMCAxIDIgMHYyNC43MzVhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyLjc3IDUwLjAyNmgtMTguMzdhMSAxIDAgMCAxIC0uOTc2LTEuMjE1bDMuMjc2LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgxMmExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgxbC0yLjgzOS0xMi45MDloLTEwLjIwM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTMuNTg0IDU0LjY2YTUuNjQxIDUuNjQxIDAgMCAxIC01LjYzNC01LjYzNCAxIDEgMCAwIDEgMiAwIDMuNjM0IDMuNjM0IDAgMCAwIDcuMjY4IDAgMSAxIDAgMCAxIDIgMCA1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQgNS42MzR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Chandelier:hfe,Climate:zfe,"Coffee Makers":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NjYgMTExLjk5NmgtNDkuNzE5bC0xMDkuMjE1LTQ2LjM2MSA0Ljg4OS01NC43NDZjLjI1LTIuNzk2LS42ODctNS41NjgtMi41ODItNy42MzktMS44OTQtMi4wNy00LjU3Mi0zLjI1LTcuMzc4LTMuMjVoLTYwYy0yLjgwNyAwLTUuNDg0IDEuMTgtNy4zNzkgMy4yNS0xLjg5NSAyLjA3MS0yLjgzMSA0Ljg0My0yLjU4MiA3LjYzOWw0Ljg5OCA1NC44NTQtMTA0Ljc5NSA0Ni4yNTNoLTI2LjEzN2MtMzguNTk4IDAtNzAgMzEuNDAyLTcwIDcwdjY5Ljk5N2MwIDE2LjU0MiAxMy40NTggMzAgMzAgMzBzMzAtMTMuNDU4IDMwLTMwdi02OS45OTdjMC01LjQyIDQuNTgtMTAgMTAtMTBoMjYuOTE1bDIxLjQ4MyAxMjEuNzM4YzEuOTI3IDEwLjkyMyA5LjkwNCAxOC4yNjMgMTkuODQ4IDE4LjI2M3Y0MC4wMDNjLTkuNjUyIDAtMTcuMjE3IDYuODAyLTE5Ljc0NCAxNy43NTFsLTMwLjAwMSAxMzBjLS42ODUgMi45NjkuMDIxIDYuMDg5IDEuOTE4IDguNDc0czQuNzc4IDMuNzc0IDcuODI2IDMuNzc0aDI4MGMzLjA0NyAwIDUuOTI5LTEuMzkgNy44MjYtMy43NzQgMS44OTctMi4zODUgMi42MDQtNS41MDUgMS45MTgtOC40NzRsLTMwLjAwMS0xMzBjLTIuNTI1LTEwLjk0OS0xMC4wOTEtMTcuNzUxLTE5Ljc0My0xNy43NTF2LTQwLjAwMmM5Ljk0NCAwIDE3LjkyLTcuMzM5IDE5Ljg0Ny0xOC4yNjJsMTQuMzgxLTgxLjQ5MiA2NC4wNTYtNTUuMjM2YzIuMjAzLTEuODk5IDMuNDctNC42NjUgMy40Ny03LjU3M3YtMjcuNDM4Yy4wMDEtNS41MjQtNC40NzctMTAuMDAxLTkuOTk5LTEwLjAwMXptLTE3NC45MzgtOTEuOTk2LTMuNzUgNDEuOTk2aC0zMC42MzRsLTMuNzUxLTQxLjk5NnptLTQxLjQyMyA2MS45OTZoNDQuNzg1bDcwLjY3MiAzMGgtMTgzLjQyOHptLTE0My42MzkgNzAuMDAxYy0xNi41NDIgMC0zMCAxMy40NTgtMzAgMzB2NjkuOTk3YzAgNS41MTQtNC40ODYgMTAtMTAgMTBzLTEwLTQuNDg2LTEwLTEwdi02OS45OTdjMC0yNy41NyAyMi40My01MCA1MC01MGgxOS44NTZsMy41MyAyMHptNjguMDk0IDEzOC4yNjMtMjcuOTI5LTE1OC4yNjRoNjIuNzYybDIuNTI4IDM1LjgxN2MuMzcyIDUuMjcgNC43NjIgOS4yOTYgOS45NjUgOS4yOTYuMjM2IDAgLjQ3NS0uMDA4LjcxNC0uMDI1IDUuNTA5LS4zODkgOS42Ni01LjE3IDkuMjcxLTEwLjY3OWwtMi40MjktMzQuNDA5aDkwLjUzOWwtMTEuMjk1IDE2MC4wMDJoLTY3Ljk0OWwtMi41MjktMzUuODE3Yy0uMzg5LTUuNTA5LTUuMTY2LTkuNjYxLTEwLjY3OS05LjI3MS01LjUwOS4zODktOS42NiA1LjE3LTkuMjcxIDEwLjY3OWwyLjQyOSAzNC40MDloLTQ1LjUxOGMtLjE5OS0uMzIxLS40NjMtLjkxNC0uNjA5LTEuNzM4em0tLjEwMyA4My45ODhjLjI1OS0xLjEyNS42MS0xLjg1Ny44NTMtMi4yNDloNDUuMzZsLTExLjA3NyAxMjBoLTYyLjMxem0xMzQuMjEyLTIuMjQ4IDExLjA3NyAxMjBoLTkwLjA2OWwxMS4wNzctMTIwem02Ni4yOTcgMi4yNDggMjcuMTc1IDExNy43NTJoLTYyLjMxbC0xMS4wNzctMTIwaDQ1LjM2Yy4yNDMuMzkxLjU5MyAxLjEyMy44NTIgMi4yNDh6bS0yMC4yNTUtMjIuMjQ4aC0xNTkuOTk4di00MC4wMDJoMTU5Ljk5OHptMjAuMTUxLTYxLjc0Yy0uMTQ2LjgyNC0uNDA5IDEuNDE3LS42MDggMS43MzdoLTQ1LjUxOGwxMS4yOTUtMTYwLjAwMWg2Mi43NjJsLTEyLjkzNyA3My4zMDljMCAuMDAxIDAgLjAwMi0uMDAxLjAwM3ptODEuNjA0LTE0NS40MDctNDIuMDI5IDM2LjI0MiA4LjY2NS00OS4wOTloMzMuMzY0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjQuNTk5IDIyMS45OTdjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTBoLS4wMDdjLTUuNTIzIDAtOS45OTYgNC40NzctOS45OTYgMTBzNC40OCAxMCAxMC4wMDMgMTB6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Cold Water":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3NSA0NzUiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik00MzguNDEzLDM0My4xODhDNDI4LjA1OSwzMzUuMDg1LDQxNS4xNzQsMzI1LDM5MC44MzUsMzI1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3NywxOC4xODgKCQlDMzM0LjQ5NiwzNTAuMDQ1LDMyOC4xNjUsMzU1LDMxNC4xNywzNTVjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzQzI3NC43MjksMzM1LjA4NSwyNjEuODQ0LDMyNSwyMzcuNTA2LDMyNQoJCWMtMjQuMzM5LDAtMzcuMjI0LDEwLjA4NS00Ny41NzgsMTguMTg4QzE4MS4xNjYsMzUwLjA0NSwxNzQuODM0LDM1NSwxNjAuODQsMzU1Yy0xMy45OTYsMC0yMC4zMjctNC45NTUtMjkuMDktMTEuODEzCgkJQzEyMS4zOTUsMzM1LjA4NCwxMDguNTA5LDMyNSw4NC4xNywzMjVjLTI0LjMzOSwwLTM3LjIyNSwxMC4wODQtNDcuNTc5LDE4LjE4OEMyNy44MjgsMzUwLjA0NSwyMS40OTYsMzU1LDcuNSwzNTV2MzAKCQljMjQuMzM5LDAsMzcuMjI1LTEwLjA4NCw0Ny41NzktMTguMTg4QzYzLjg0MiwzNTkuOTU1LDcwLjE3NCwzNTUsODQuMTcsMzU1YzEzLjk5NiwwLDIwLjMyNyw0Ljk1NSwyOS4wOTEsMTEuODEzCgkJQzEyMy42MTUsMzc0LjkxNiwxMzYuNSwzODUsMTYwLjg0LDM4NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg0LDQ3LjU3OC0xOC4xODhDMjE3LjE4LDM1OS45NTUsMjIzLjUxMSwzNTUsMjM3LjUwNiwzNTUKCQljMTMuOTk0LDAsMjAuMzI1LDQuOTU1LDI5LjA4NywxMS44MTNDMjc2Ljk0NywzNzQuOTE1LDI4OS44MzMsMzg1LDMxNC4xNywzODVjMjQuMzM4LDAsMzcuMjI0LTEwLjA4NSw0Ny41NzctMTguMTg4CgkJQzM3MC41MSwzNTkuOTU1LDM3Ni44NDEsMzU1LDM5MC44MzUsMzU1YzEzLjk5NSwwLDIwLjMyNSw0Ljk1NSwyOS4wODgsMTEuODEzQzQzMC4yNzcsMzc0LjkxNSw0NDMuMTYyLDM4NSw0NjcuNSwzODV2LTMwCgkJQzQ1My41MDYsMzU1LDQ0Ny4xNzUsMzUwLjA0NSw0MzguNDEzLDM0My4xODh6Ii8+Cgk8cGF0aCBkPSJNMzkwLjgzNSw0MTVjLTI0LjMzOCwwLTM3LjIyNCwxMC4wODUtNDcuNTc3LDE4LjE4OEMzMzQuNDk2LDQ0MC4wNDUsMzI4LjE2NSw0NDUsMzE0LjE3LDQ0NQoJCWMtMTMuOTk0LDAtMjAuMzI1LTQuOTU1LTI5LjA4Ny0xMS44MTNDMjc0LjcyOSw0MjUuMDg1LDI2MS44NDQsNDE1LDIzNy41MDYsNDE1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3OCwxOC4xODgKCQlDMTgxLjE2Niw0NDAuMDQ1LDE3NC44MzQsNDQ1LDE2MC44NCw0NDVjLTEzLjk5NiwwLTIwLjMyNy00Ljk1NS0yOS4wOS0xMS44MTNDMTIxLjM5NSw0MjUuMDg0LDEwOC41MDksNDE1LDg0LjE3LDQxNQoJCWMtMjQuMzM5LDAtMzcuMjI1LDEwLjA4NC00Ny41NzksMTguMTg4QzI3LjgyOCw0NDAuMDQ1LDIxLjQ5Niw0NDUsNy41LDQ0NXYzMGMyNC4zMzksMCwzNy4yMjUtMTAuMDg0LDQ3LjU3OS0xOC4xODgKCQlDNjMuODQyLDQ0OS45NTUsNzAuMTc0LDQ0NSw4NC4xNyw0NDVjMTMuOTk2LDAsMjAuMzI3LDQuOTU1LDI5LjA5MSwxMS44MTNDMTIzLjYxNSw0NjQuOTE2LDEzNi41LDQ3NSwxNjAuODQsNDc1CgkJYzI0LjMzOCwwLDM3LjIyNC0xMC4wODQsNDcuNTc4LTE4LjE4OEMyMTcuMTgsNDQ5Ljk1NSwyMjMuNTExLDQ0NSwyMzcuNTA2LDQ0NWMxMy45OTQsMCwyMC4zMjUsNC45NTUsMjkuMDg3LDExLjgxMwoJCUMyNzYuOTQ3LDQ2NC45MTUsMjg5LjgzMyw0NzUsMzE0LjE3LDQ3NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg1LDQ3LjU3Ny0xOC4xODhDMzcwLjUxLDQ0OS45NTUsMzc2Ljg0MSw0NDUsMzkwLjgzNSw0NDUKCQljMTMuOTk1LDAsMjAuMzI1LDQuOTU1LDI5LjA4OCwxMS44MTNDNDMwLjI3Nyw0NjQuOTE1LDQ0My4xNjIsNDc1LDQ2Ny41LDQ3NXYtMzBjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzCgkJQzQyOC4wNTksNDI1LjA4NSw0MTUuMTc0LDQxNSwzOTAuODM1LDQxNXoiLz4KCTxwb2x5Z29uIHBvaW50cz0iMTg0LjM3OCwyNTguMzIzIDIyMi41LDIzNi4zMTMgMjIyLjUsMjgwLjMzMyAyNTIuNSwyODAuMzMzIDI1Mi41LDIzNi4zMTMgMjkwLjYyMiwyNTguMzIzIDMwNS42MjIsMjMyLjM0MwoJCTI2Ny41LDIxMC4zMzMgMzA1LjYyMiwxODguMzIzIDI5MC42MjIsMTYyLjM0MyAyNTIuNSwxODQuMzUzIDI1Mi41LDE0MC4zMzMgMjIyLjUsMTQwLjMzMyAyMjIuNSwxODQuMzUzIDE4NC4zNzgsMTYyLjM0MwoJCTE2OS4zNzgsMTg4LjMyMyAyMDcuNSwyMTAuMzMzIDE2OS4zNzgsMjMyLjM0MyAJCQkiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjQuMDk1LDExNy45OSA2Mi4yMTYsOTUuOTggNjIuMjE2LDE0MCA5Mi4yMTYsMTQwIDkyLjIxNiw5NS45OCAxMzAuMzM4LDExNy45OSAxNDUuMzM4LDkyLjAxIDEwNy4yMTYsNzAKCQkxNDUuMzM4LDQ3Ljk5IDEzMC4zMzgsMjIuMDEgOTIuMjE2LDQ0LjAyIDkyLjIxNiwwIDYyLjIxNiwwIDYyLjIxNiw0NC4wMiAyNC4wOTUsMjIuMDEgOS4wOTUsNDcuOTkgNDcuMjE3LDcwIDkuMDk1LDkyLjAxCgkJIi8+Cgk8cG9seWdvbiBwb2ludHM9IjM0NC42NjIsMTE3Ljk5IDM4Mi43ODQsOTUuOTggMzgyLjc4NCwxNDAgNDEyLjc4NCwxNDAgNDEyLjc4NCw5NS45OCA0NTAuOTA1LDExNy45OSA0NjUuOTA1LDkyLjAxIDQyNy43ODMsNzAKCQk0NjUuOTA1LDQ3Ljk5IDQ1MC45MDUsMjIuMDEgNDEyLjc4NCw0NC4wMiA0MTIuNzg0LDAgMzgyLjc4NCwwIDM4Mi43ODQsNDQuMDIgMzQ0LjY2MiwyMi4wMSAzMjkuNjYyLDQ3Ljk5IDM2Ny43ODQsNzAKCQkzMjkuNjYyLDkyLjAxIAkJCSIvPgo8L2c+Cjwvc3ZnPgo=",Computer:wfe,Consumption:Cfe,Curtains:Ife,Dishwashers:pfe,Doors:Afe,Doorstep:mfe,Dryer:Ofe,Fan:Efe,"Floor Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNzcuMDE4IDEwNC40LTU0Ljg2MS05My40MTZjLTMuOTgtNi43NzUtMTEuMzM0LTEwLjk4NC0xOS4xOTEtMTAuOTg0aC05MS42NTVjLTcuNjk3IDAtMTQuOTczIDQuMDc5LTE4Ljk4NyAxMC42NDRsLTU3LjEzNSA5My40MTRjLTkuMDU1IDE0LjgwMyAxLjYyNiAzMy44NyAxOC45ODcgMzMuODdoMjguMTgyYzIuMjIyIDMzLjQ1MiAyNi44MDggNjAuODg0IDU4LjkxNiA2Ny40MS0uMjc0IDEuODI2LS4xODQtMTMuNTEtLjE4NCAyMTcuMTk1aC0zNy40ODRjLTExLjg5OCAwLTIxLjU3OSA5LjY4LTIxLjU3OSAyMS41Nzl2NDYuMzFjMCAxMS44OTggOS42OCAyMS41NzkgMjEuNTc5IDIxLjU3OWgxMDQuNzljMTEuODk5IDAgMjEuNTc5LTkuNjggMjEuNTc5LTIxLjU3OXYtNDYuMzFjMC0xMS44OTgtOS42OC0yMS41NzktMjEuNTc5LTIxLjU3OWgtMzcuNDg0YzAtMjMwLjc2Ni4wOS0yMTUuMzctLjE4NC0yMTcuMTk1IDIyLjAyNS00LjQ3NiA0MC41MDUtMTguNzk1IDUwLjY2Ni0zOC4xNDF2MzcuNjMxYzAgOC4yMzUgNi42NzYgMTQuOTExIDE0LjkxMSAxNC45MTFzMTQuOTExLTYuNjc2IDE0LjkxMS0xNC45MTF2LTY2LjloNi42MWMxNy4xNjYgMCAyNy44OTMtMTguNzA4IDE5LjE5Mi0zMy41Mjh6bS03Ni44NjYgMzc3Ljc3OGgtODguMzAydi0yOS44MjJoODguMzAyem0tODQuNTk5LTQ1Mi4zNTZoODMuMDgzbDQ1Ljk3NCA3OC4yODRjLTcuMDYxIDAtMTY5LjkwMyAwLTE3Ni45MzggMHptNDAuNDQ3IDE0Ny4xNzJjLTIyLjU5NSAwLTQxLjI2Ny0xNy4xMTctNDMuNzI5LTM5LjA2Nmg4Ny40NThjLTIuNDYyIDIxLjk0OS0yMS4xMzQgMzkuMDY2LTQzLjcyOSAzOS4wNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Garage Doors":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDY0YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04SDhDMy41ODIsMCwwLDMuNTgyLDAsOHY0OGMwLDQuNDE4LDMuNTgyLDgsOCw4aDE2djQwMEg4CgkJYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDQ2NGM0LjQxOCwwLDgtMy41ODIsOC04cy0zLjU4Mi04LTgtOGgtMTZWNjRINDcyeiBNNDA4LDQ2NEg3MnYtNDhoMzM2VjQ2NHogTTQwOCw0MDBINzJ2LTQ4CgkJaDMzNlY0MDB6IE00MDgsMzM2SDcydi00OGgzMzZWMzM2eiBNNDA4LDI3Mkg3MnYtNDhoMzM2VjI3MnogTTQwOCwyMDhINzJ2LTQ4aDMzNlYyMDh6IE00MDgsMTQ0SDcyVjk2aDMzNlYxNDR6IE00NDAsNDY0aC0xNlY4OAoJCWMwLTQuNDE4LTMuNTgyLTgtOC04SDY0Yy00LjQxOCwwLTgsMy41ODItOCw4djM3Nkg0MFY2NGg0MDBWNDY0eiBNMTYsNDhWMTZoNDQ4djMySDE2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTYsNDU2aDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LDMuNTgyLTgsOFMyMTEuNTgyLDQ1NiwyMTYsNDU2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Gates:ffe,Hairdryer:xfe,Handle:_fe,"Hanging Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05My41MjUgMzU5Ljc3MWgxMDcuODg1djQuMTI5YTUzLjA3MiA1My4wNzIgMCAxIDAgMTA2LjE0NCAwdi00LjEyNGgxMTAuOTIxYTYgNiAwIDAgMCA2LTZjMC04Mi4wMTUtNTguOTEzLTE1MC41MTgtMTM2LjY0LTE2NS40NDR2LTIwLjMxOWEzMS44ODMgMzEuODgzIDAgMCAwIC0yNS44MzUtMzEuMjZ2LTEyMC43NTNhNiA2IDAgMCAwIC0xMiAwdjEyMC43NTNhMzEuODgzIDMxLjg4MyAwIDAgMCAtMjUuODM1IDMxLjI2djIwLjMxNGMtNzcuNzI3IDE0LjkyNi0xMzYuNjQgODMuNDI5LTEzNi42NCAxNjUuNDQ0YTYgNiAwIDAgMCA2IDZ6bTIwMi4wMjkgNC4xMjlhNDEuMDcyIDQxLjA3MiAwIDEgMSAtODIuMTQ0IDB2LTQuMTI0aDgyLjE0NHptLTM5LjU1NC0yMTUuNzIyYTE5Ljg1MSAxOS44NTEgMCAwIDEgMTkuMTggMTQuODY4aC0zOC4zNmExOS44NTEgMTkuODUxIDAgMCAxIDE5LjE4LTE0Ljg2OHptLTE5LjgzNSAyNi44NjhoMzkuNjd2MTEuNDI0YTE2OC4yODggMTY4LjI4OCAwIDAgMCAtMzkuNjcgMHptMTkuODM1IDIyLjI1NGM4NC4yNzQgMCAxNTMuMiA2Ni45NiAxNTYuMzYxIDE1MC40NzRoLTMxMi43MjJjMy4xNjEtODMuNTE3IDcyLjA4Ny0xNTAuNDc0IDE1Ni4zNjEtMTUwLjQ3NHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUwIDQ1NS41MDh2NDAuNDkyYTYgNiAwIDAgMCAxMiAwdi00MC40OTJhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDMuNDIyIDQzMS40ODhhNiA2IDAgMCAwIC0uMDc1IDguNDg1bDI4LjM0NCAyOC44NTFhNiA2IDAgMCAwIDguNTYxLTguNDFsLTI4LjM0NC0yOC44NTFhNiA2IDAgMCAwIC04LjQ4Ni0uMDc1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuMDkyIDQzMS41NjMtMjguMzQ0IDI4Ljg1MWE2IDYgMCAwIDAgOC41NjEgOC40MWwyOC4zNDQtMjguODUxYTYgNiAwIDAgMCAtOC41NjEtOC40MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTg2Ljc1IDIzNi44MWExNjguNzMxIDE2OC43MzEgMCAwIDAgLTQ1LjkyNyA0OC4xNDMgNiA2IDAgMSAwIDEwLjE0MSA2LjQxNyAxNTYuNzgxIDE1Ni43ODEgMCAwIDEgNDIuNjc3LTQ0LjczNiA2IDYgMCAwIDAgLTYuODkxLTkuODI0eiIvPgogICAgPC9nPgo8L3N2Zz4=",Heater:Sfe,Hoods:kfe,"Hot Water":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMCA1MTAiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTUgMjQxLjkwMmMtMTguMjIzIDAtMzMuMzU4LTUuOTM3LTQ1LjA5Mi0xNy42MnYtMTQ5LjM1NGMwLTQxLjMxNS0zMy42MTMtNzQuOTI4LTc0LjkyOS03NC45MjhzLTc0LjkyOCAzMy42MTMtNzQuOTI4IDc0LjkyOHYxNDkuMzk1Yy0yNC4yNTQgMjQuMTA3LTY5LjQ3NiAyNC40MTUtOTMuNjYzLTMuODAzLTUuOTgxLTYuOTc4LTE2Ljc5My02Ljk4Mi0yMi43NzcgMC0yNC41ODYgMjguNjg1LTcyLjUzOCAyOC43OTgtOTcuMjIzIDAtNi4zMjItNy4zNzgtMTcuODY3LTYuODY3LTIzLjUzNy45NjMtLjE0OC4yMDQtMTUuNjg4IDIwLjQxOC00Ny44NTIgMjAuNDE4LTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTVjMjguNjMyIDAgNDguNDg5LTExLjI4IDYwLjAyNy0yMC42MjQgMzMuNDQ3IDI3LjYxNSA4Ni41MTIgMjcuNjI1IDExOS45NzMtLjAyMiAzMC4xOTEgMjQuOTQ0IDc0LjM2MiAyNi4xNzkgMTA1LjA1MiA5Ljk1N3Y0MC40NzFjLTI3Ljk4NCAyMy4xMzEtNDMuODExIDU3Ljg3OC00Mi42NTggOTQuNDUzIDEuOTc0IDYyLjcyOCA1My43NDMgMTEzLjg2NCAxMTcuNTg2IDExMy44NjQgNjQuODcxIDAgMTE3LjY0Ny01Mi43NzYgMTE3LjY0Ny0xMTcuNjQ2IDAtMzUuMDctMTUuODM3LTY4LjQwNi00Mi43MTktOTAuNjY2di00MC40OTdjMTMuMzI1IDcuMDUyIDI4LjUxNyAxMC43MSA0NS4wOTIgMTAuNzEgOC4yODQgMCAxNS02LjcxNiAxNS0xNXMtNi43MTUtMTQuOTk5LTE0Ljk5OS0xNC45OTl6bS0xMjAuMDItMjExLjkwMmMyNC43NzMgMCA0NC45MjggMjAuMTU1IDQ0LjkyOCA0NC45Mjh2MTQ5LjUzN2MtOC4zMTQgOC4yMTEtMTguMzI3IDEzLjU1MS0yOS45MjkgMTUuOTUzdi0xNDMuOTU3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVzLTE1IDYuNzE2LTE1IDE1djE0My45NDdjLTExLjYwMy0yLjQwOS0yMS42MTUtNy43NTktMjkuOTI4LTE1Ljk4M3YtMTQ5LjQ5N2MuMDAxLTI0Ljc3MyAyMC4xNTYtNDQuOTI4IDQ0LjkyOS00NC45Mjh6bS0uMDAxIDM0My41MDRjMTAuNTMyIDAgMTkuMTAxIDguNTY4IDE5LjEwMSAxOS4xcy04LjU2OCAxOS4xLTE5LjEwMSAxOS4xYy0xMC41MzEgMC0xOS4xLTguNTY4LTE5LjEtMTkuMXM4LjU2OS0xOS4xIDE5LjEtMTkuMXptODcuNjQ4IDE4Ljg1YzAgNDguMzI5LTM5LjMxOCA4Ny42NDYtODcuNjQ3IDg3LjY0Ni00Ni44MzEgMC04Ni4xMjktMzguMDQ0LTg3LjYwMi04NC44MDgtLjkyLTI5LjIxOCAxMi43MDQtNTYuODc1IDM2LjQ0My03My45ODEgMy45MTItMi44MTkgNi4yMy03LjM0NyA2LjIzLTEyLjE2OXYtNDcuNzc0YzkuMTQ4IDQuODIgMTkuMTc3IDguMDMzIDI5LjkyOCA5LjU2OHY3NS4wMmMtMTkuNzU4IDYuMzU1LTM0LjEgMjQuOTA1LTM0LjEgNDYuNzQ4IDAgMjcuMDc0IDIyLjAyNiA0OS4xIDQ5LjEgNDkuMXM0OS4xMDEtMjIuMDI2IDQ5LjEwMS00OS4xYzAtMjEuODQzLTE0LjM0Mi00MC4zOTMtMzQuMTAxLTQ2Ljc0OHYtNzUuMDE0YzEwLjc1LTEuNTMxIDIwLjc4LTQuNzM4IDI5LjkyOS05LjU1MnY0Ny43NTNjMCA0LjgyMiAyLjMxOCA5LjM1MSA2LjIzIDEyLjE2OSAyMi44NDggMTYuNDYzIDM2LjQ4OSA0My4wNTkgMzYuNDg5IDcxLjE0MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc4LjE5IDMwOC4zMzJjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuODU3IDM3OS4xMTdjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjQuODYzIDE1NC4xNDNjLTUuODU4IDUuODU4LTUuODU4IDE1LjM1NSAwIDIxLjIxMyA1Ljg1NyA1Ljg1NyAxNS4zNTUgNS44NTggMjEuMjEzIDAgMjEuMDQ2LTIxLjA0NiAyMS4wNDYtNTUuMjkxIDAtNzYuMzM4LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ny01Ljg1OC0xNS4zNTUtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzQ5IDkuMzQ5IDkuMzQ5IDI0LjU2MSAwIDMzLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTQyLjI1MSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcxIDkuMzcxIDkuMzczIDI0LjUzOSAwIDMzLjkxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjE5LjYzOSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcgOS4zNzEgOS4zNzMgMjQuNTM5IDAgMzMuOTEyeiIvPgogICAgPC9nPgo8L3N2Zz4=",Humidity:Yfe,Iron:vfe,Irrigation:bfe,"Led Strip":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTYgMThhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDI2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiA0MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgNTBhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDU4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiAzNGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTIgNjJoOGExIDEgMCAwIDAgMS0xdi00OWg2djQxYTEgMSAwIDAgMCAuMjkzLjcwN2w4IDhhMSAxIDAgMCAwIC43MDcuMjkzaDhhMSAxIDAgMCAwIC43MDctLjI5M2w4LThhMSAxIDAgMCAwIC4yOTMtLjcwN3YtNTBhMSAxIDAgMCAwIC0xLTFoLThhMSAxIDAgMCAwIC0xIDF2NDloLTZ2LTQ5YTEgMSAwIDAgMCAtMS0xaC0xNmExIDEgMCAwIDAgLS43MDcuMjkzbC04IDhhMSAxIDAgMCAwIC0uMjkzLjcwN3Y1MGExIDEgMCAwIDAgMSAxem0zMy0xM3YtNDVoNnY0OC41ODZsLTYgNnptLTggNWg2djZoLTZ6bS04LTV2LTQ1aDZ2NTQuNTg2bC02LTZ6bS04LTQ1aDZ2NmgtNnptLTggNTF2LTQzLjU4Nmw2LTZ2NTQuNTg2aC02eiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMyA2aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgNTZoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00IDMxaDV2MmgtNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNiAyNWgydjVoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNiAtLjggLjggLjYgLTE5LjIgMTYuNikiLz4KICAgICAgICA8cGF0aCBkPSJtNC41IDM1LjVoNXYyaC01eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjggLS42IC42IC44IC0yMC41MDUgMTEuNTA1KSIvPgogICAgICAgIDxwYXRoIGQ9Im01NSAzMWg1djJoLTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU0LjUgMjYuNWg1djJoLTV6IiB0cmFuc2Zvcm09Im1hdHJpeCguOCAtLjYgLjYgLjggLTUuMDk4IDM5LjcxMikiLz4KICAgICAgICA8cGF0aCBkPSJtNTYgMzRoMnY1aC0yeiIgdHJhbnNmb3JtPSJtYXRyaXgoLjYgLS44IC44IC42IC02LjQgNjAuMikiLz4KICAgIDwvZz4KPC9zdmc+",Light:Qfe,Lightings:Ufe,Lock:$fe,Louvre:Pfe,"Mowing Machine":"PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NyA1NGM1LjUxNCAwIDEwLTQuNDg2IDEwLTEwcy00LjQ4Ni0xMC0xMC0xMC0xMCA0LjQ4Ni0xMCAxMCA0LjQ4NiAxMCAxMCAxMHptLTcuOTMxLTExYy4xODMtMS40NTguNzU5LTIuNzkyIDEuNjE5LTMuODk4bDEuMzYyIDEuMzYzIDEuNDE0LTEuNDE0LTEuMzYyLTEuMzYyYzEuMTA2LS44NiAyLjQ0LTEuNDM2IDMuODk4LTEuNjE5djEuOTNoMnYtMS45MzFjMS40NTguMTgzIDIuNzkyLjc1OSAzLjg5OCAxLjYxOWwtMS4zNjIgMS4zNjIgMS40MTQgMS40MTQgMS4zNjItMS4zNjNjLjg2IDEuMTA2IDEuNDM2IDIuNDQgMS42MTkgMy44OThoLTEuOTMxdjJoMS45MzFjLS4xODMgMS40NTgtLjc1OSAyLjc5Mi0xLjYxOSAzLjg5OGwtMS4zNjItMS4zNjMtMS40MTQgMS40MTQgMS4zNjIgMS4zNjJjLTEuMTA2Ljg2LTIuNDQgMS40MzYtMy44OTggMS42MTl2LTEuOTI5aC0ydjEuOTMxYy0xLjQ1OC0uMTgzLTIuNzkyLS43NTktMy44OTgtMS42MTlsMS4zNjItMS4zNjItMS40MTQtMS40MTQtMS4zNjIgMS4zNjNjLS44Ni0xLjEwNi0xLjQzNi0yLjQ0LTEuNjE5LTMuODk4aDEuOTMxdi0yaC0xLjkzMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMjFoLTI0Ljk4Yy0xLjUxMSAwLTIuOTg0LjQyNi00LjI2MiAxLjIyOWwtMjIuMDIxIDEzLjg2NmMtMi4zNCAxLjQ3My0zLjczNyA0LjAwNS0zLjczNyA2Ljc2OXY2LjEzNmMwIC41NTMuNDQ4IDEgMSAxaDMzLjA4OGMuMzQxIDAgLjY1OC0uMTc0Ljg0Mi0uNDYuMTg0LS4yODcuMjA5LS42NDcuMDY3LS45NTctLjc1LTEuNjM1LTEuMDgtMy4zODctLjk3OS01LjIwOC4zMDktNS41OTEgNC45MzYtMTAuMTQ1IDEwLjUzNS0xMC4zNjYgMy4wMjgtLjExNiA1Ljg5Mi45NjcgOC4wNjkgMy4wNiAyLjE3OCAyLjA5MyAzLjM3OCA0LjkxIDMuMzc4IDcuOTMxIDAgLjU1My40NDggMSAxIDFoM2MuNTUyIDAgMS0uNDQ3IDEtMXYtMTdjMC0zLjMwOS0yLjY5MS02LTYtNnptLTI4LjE3NyAyLjkyM2MuOTU5LS42MDQgMi4wNjQtLjkyMyAzLjE5Ny0uOTIzaDEwLjM3bC04LjM5MSA1LjAzNXYtLjAzNWgtMTEuNjUxem0tMjIuMDIgMTMuODY0IDEyLjM2OC03Ljc4N2gxMS41NTJsLTE4LjIzMyAxMC45NGMtMS4xNTcuNjk0LTIuNDggMS4wNi0zLjgyNyAxLjA2aC00LjU5NmMuMjQ4LTEuNzI4IDEuMjI5LTMuMjYzIDIuNzM2LTQuMjEzem01NC4xOTcgNS4yMTNoLTEuMDM4Yy0uMjM5LTMuMTg4LTEuNjIzLTYuMTMyLTMuOTU1LTguMzc0LTIuNTczLTIuNDczLTUuOTYzLTMuNzUtOS41MzQtMy42MTUtNi4xOS4yNDUtMTEuMzc0IDQuOTctMTIuMzE3IDEwLjk4OWgtMTcuMTU2djJoMTcuMDEzYy4wMDIgMS4zNjEuMjAyIDIuNzE1LjYxNSA0aC0zMC42Mjh2LTRoNC42NjNjMS43MDkgMCAzLjM4OS0uNDY1IDQuODU2LTEuMzQ1bDMyLjc1OC0xOS42NTVoMTAuNzIzYzIuMjA2IDAgNCAxLjc5NCA0IDR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDQ4YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNi42NTEgMTUuNjM1Yy0xLjc1NyAyLjEyNS0xLjQ1OCA1LjI4Mi42NjcgNy4wNGw0LjYyNCAzLjgyM2MuMTg3LjE1NC40MTIuMjI5LjYzNy4yMjkuMjg4IDAgLjU3My0uMTI0Ljc3MS0uMzYyIDEuNzU3LTIuMTI1IDEuNDU4LTUuMjgyLS42NjctNy4wNGwtNC42MjQtMy44MjNjLS40MjYtLjM1Mi0xLjA1Ni0uMjkyLTEuNDA4LjEzM3ptNS42NjIgOC41NzYtMy43MjEtMy4wNzdjLTEuMDA0LS44MzEtMS4zMjktMi4xODUtLjkwNS0zLjM0NWwzLjcyMSAzLjA3N2MxLjAwNS44MzEgMS4zMjkgMi4xODUuOTA1IDMuMzQ1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMS40NDUgOS4yMjktNC42MjQgMy44MjNjLTIuMTI1IDEuNzU4LTIuNDI0IDQuOTE2LS42NjcgNy4wNC4xOTguMjM5LjQ4My4zNjIuNzcxLjM2Mi4yMjUgMCAuNDUtLjA3NS42MzctLjIyOWw0LjYyNC0zLjgyM2MyLjEyNS0xLjc1NyAyLjQyNC00LjkxNS42NjctNy4wNC0uMzUyLS40MjQtLjk4My0uNDg0LTEuNDA4LS4xMzN6bS0uNTMzIDUuNjMyLTMuNzIyIDMuMDc4Yy0uMTUyLS40MTUtLjIxMS0uODYzLS4xNjgtMS4zMTYuMDc2LS43OTguNDU4LTEuNTE5IDEuMDc1LTIuMDI5bDMuNzIxLTMuMDc3Yy40MjMgMS4xNi4wOTkgMi41MTMtLjkwNiAzLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+",Music:Wfe,"Outdoor Blinds":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NTcgMGgtNDAyYy0zMC4zMjcgMC01NSAyNC42NzMtNTUgNTV2NDU3aDQzMnYtNDA4LjAzNWM3LjUwNyAzLjg0OCAxNiA2LjAzNSAyNSA2LjAzNSAzMC4zMjcgMCA1NS0yNC42NzMgNTUtNTVzLTI0LjY3My01NS01NS01NXptLTQwMiAzMGgzNTMuMDM1Yy0zLjg0OCA3LjUwNy02LjAzNSAxNi02LjAzNSAyNXY3aC0zNzJ2LTdjMC0xMy43ODUgMTEuMjE1LTI1IDI1LTI1em0tMjUgMjcydi0zMGgzNzJ2MzB6bTM3MiAzMHYzMGgtMzcydi0zMHptLTM3Mi05MHYtMzBoMzcydjMwem0wLTYwdi0zMGgzNzJ2MzB6bTAtNjB2LTMwaDM3MnYzMHptMCAzNjB2LTkwaDM3MnY5MHptNDI3LTQwMmMtMTMuNzg1IDAtMjUtMTEuMjE1LTI1LTI1czExLjIxNS0yNSAyNS0yNSAyNSAxMS4yMTUgMjUgMjUtMTEuMjE1IDI1LTI1IDI1eiIvPgogICAgICAgIDxwYXRoIGQ9Im02MCA0MjJoMzB2MzBoLTMweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDIgNDIyaDMwdjMwaC0zMHoiLz4KICAgIDwvZz4KPC9zdmc+",People:Bfe,Pool:Jfe,"Power Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTIgM2MtLjI3NiAwLS41LS4yMjQtLjUtLjV2LTJjMC0uMjc2LjIyNC0uNS41LS41cy41LjIyNC41LjV2MmMwIC4yNzYtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4LjcxOCA1Ljc4MmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDYtLjE5NS0uMTk1LS4xOTUtLjUxMiAwLS43MDdsMS40MTQtMS40MTRjLjE5NS0uMTk1LjUxMi0uMTk1LjcwNyAwcy4xOTUuNTEyIDAgLjcwN2wtMS40MTQgMS40MTRjLS4wOTcuMDk3LS4yMjUuMTQ2LS4zNTMuMTQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMy41IDEyLjVoLTJjLS4yNzYgMC0uNS0uMjI0LS41LS41cy4yMjQtLjUuNS0uNWgyYy4yNzYgMCAuNS4yMjQuNS41cy0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjAuMTMyIDIwLjYzMmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDZsLTEuNDE0LTEuNDE0Yy0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN3MuNTEyLS4xOTUuNzA3IDBsMS40MTQgMS40MTRjLjE5NS4xOTUuMTk1LjUxMiAwIC43MDctLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDI0Yy0uMjc2IDAtLjUtLjIyNC0uNS0uNXYtMmMwLS4yNzYuMjI0LS41LjUtLjVzLjUuMjI0LjUuNXYyYzAgLjI3Ni0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMy44NjggMjAuNjMyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0Ni0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN2wxLjQxNC0xLjQxNGMuMTk1LS4xOTUuNTEyLS4xOTUuNzA3IDBzLjE5NS41MTIgMCAuNzA3bC0xLjQxNCAxLjQxNGMtLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIuNSAxMi41aC0yYy0uMjc2IDAtLjUtLjIyNC0uNS0uNXMuMjI0LS41LjUtLjVoMmMuMjc2IDAgLjUuMjI0LjUuNXMtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUuMjgyIDUuNzgyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0NmwtMS40MTMtMS40MTRjLS4xOTUtLjE5NS0uMTk1LS41MTIgMC0uNzA3cy41MTItLjE5NS43MDcgMGwxLjQxNCAxLjQxNGMuMTk1LjE5NS4xOTUuNTEyIDAgLjcwNy0uMDk4LjA5Ny0uMjI2LjE0Ni0uMzU0LjE0NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAuNTczIDIwYy0uMDU5IDAtLjExNy0uMDEtLjE3NS0uMDMxLS4yMTktLjA4Mi0uMzUyLS4zMDQtLjMyMS0uNTM0bC44NTMtNi40MzVoLTMuNDNjLS4xODkgMC0uMzYyLS4xMDctLjQ0Ny0uMjc2cy0uMDY3LS4zNzIuMDQ3LS41MjRsNi04Yy4xMzktLjE4Ni4zODYtLjI1Mi41OTctLjE2LjIxMi4wOTEuMzM1LjMxNC4yOTcuNTQybC0uOTA0IDUuNDE4aDMuNDFjLjE4NCAwIC4zNTMuMTAxLjQ0LjI2M3MuMDc4LjM1OC0uMDIyLjUxM2wtNS45MjcgOWMtLjA5NS4xNDMtLjI1NC4yMjQtLjQxOC4yMjR6bS0yLjA3My04aDNjLjE0NSAwIC4yODEuMDYzLjM3Ni4xNzEuMDk1LjEwNy4xMzkuMjUyLjEyLjM5NWwtLjY0MSA0LjgzOCA0LjIxNy02LjQwNGgtMy4wNzJjLS4xNDcgMC0uMjg2LS4wNjQtLjM4Mi0uMTc3LS4wOTUtLjExMi0uMTM2LS4yNjEtLjExMS0uNDA1bC42NjMtMy45Nzh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Printer:Rfe,Pump:Ffe,Receiver:Gfe,Sconces:Hfe,Security:Vfe,Shading:Zfe,Shutters:Xfe,SmokeDetector:Kfe,Sockets:qfe,Speaker:exe,Stove:txe,"Table Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05Ny41IDIyMC4zNjEtMTUuOTE0IDE1LjkxNGE2IDYgMCAxIDAgOC40ODQgOC40ODZsMTUuOTE1LTE1LjkxNWE2IDYgMCAxIDAgLTguNDg0LTguNDg1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS41MSAxMTdhNiA2IDAgMCAwIDQuMjQzLTEwLjI0MmwtMTUuOTE0LTE1LjkxNWE2IDYgMCAwIDAgLTguNDg2IDguNDg2bDE1LjkxNCAxNS45MTRhNS45NzggNS45NzggMCAwIDAgNC4yNDMgMS43NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzNS41IDI0Mi41MDgtMTUuOTEtMTUuOTE0YTYgNiAwIDAgMCAtOC40ODYgOC40ODVsMTUuOTE0IDE1LjkxNWE2IDYgMCAwIDAgOC40ODYtOC40ODZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTg2LjgyNiAxNzFhNiA2IDAgMCAwIC02LTZoLTI0LjgzN2E2IDYgMCAwIDAgMCAxMmgyNC44MzdhNiA2IDAgMCAwIDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTU1IDIzOS41MjFhNiA2IDAgMCAwIC02IDZ2MjQuODM2YTYgNiAwIDAgMCAxMiAwdi0yNC44MzZhNiA2IDAgMCAwIC02LTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzOC44NTIgNDUxLjk2OWE0MS44MzcgNDEuODM3IDAgMCAwIC00MS4xNjYtMzUuOTY5aC0yOC42ODZ2LTMyNi42ODRhNjkuMzA5IDY5LjMwOSAwIDAgMCAtMTIxLjctNDUuMzgyIDU2LjAyMiA1Ni4wMjIgMCAwIDAgLTQ4LjcwOSA2LjM0OWwtODEuNTE5IDU0LjA2OGE2IDYgMCAwIDAgLS45MjUgOS4yNDJsMjMuNDIyIDIzLjQyMy0xLjQ0MiAxLjQ0MmEzNS4xODggMzUuMTg4IDAgMCAwIDQ5Ljc2MyA0OS43NjNsMS40NDItMS40NDIgMjMuNDIyIDIzLjQyMWE2IDYgMCAwIDAgNC4yNDYgMS43NTljLjIgMCAuNC0uMDEuNi0uMDNhNiA2IDAgMCAwIDQuNC0yLjY1NGw1NC4wNjctODEuNTE5YTU2LjA4OCA1Ni4wODggMCAwIDAgMy40ODgtNTUuNjU2IDI2LjM4NiAyNi4zODYgMCAwIDEgNDYuNDQ1IDE3LjIxNnYzMjYuNjg0aC0yOS4xODJhNDIgNDIgMCAwIDAgLTQxLjM0MyAzNi4wNzYgMjYuNCAyNi40IDAgMCAwIC0yMi40NzUgMjUuOTU2djcuOTY4YTYuMjgyIDYuMjgyIDAgMCAwIDYuMzE5IDZoMjE2LjY5MmE1Ljk5MiA1Ljk5MiAwIDAgMCA1Ljk4OS02di03Ljk2OGEyNi4yNDcgMjYuMjQ3IDAgMCAwIC0yMy4xNDgtMjYuMDYzem0tMjU5LjQ1Mi0yNzIuMjM0YTIzLjE4OCAyMy4xODggMCAwIDEgLTMyLjc5My0zMi43OTJsMS40NDMtMS40NDMgMzIuNzkzIDMyLjc5M3ptMzYuNjQ4IDE2Ljc5NC04Ni4yMy04Ni4yMjkgMTguMDkzLTEyIDgwLjE0IDgwLjE0em01MC4wMTItNzUuNC0zMS4yNDYgNDcuMTEtNzYuNy03Ni43MDUgNDcuMTEtMzEuMjQ2YTQzLjg5NCA0My44OTQgMCAwIDEgNjAuODQgNjAuODQxem0zMy41MjgtNzAuMjcyYTM4LjI1MiAzOC4yNTIgMCAwIDAgLTI2LjY4OCAxMC44MjMgNTQuNjIgNTQuNjIgMCAwIDAgLTE0LjE4Ni0xMi40MzUgNTcuMzEgNTcuMzEgMCAwIDEgOTguMjg2IDQwLjA3MXYzMjYuNjg0aC0xOXYtMzI2LjY4NGEzOC40NjEgMzguNDYxIDAgMCAwIC0zOC40MDktMzguNDY0em0tMi43NyAzNzcuMTQzaDEwMC44NjhjMTQuMjU5IDAgMjYuMTk1IDExIDI4Ljk3NiAyNGgtMTU4LjgxOWMyLjc4MS0xMyAxNC43MTYtMjQgMjguOTc1LTI0em0xNTMuMTgyIDUyaC0yMDV2LTEuOTY4YTE0LjMyIDE0LjMyIDAgMCAxIDE0LjMxOS0xNC4wMzJoMTc2LjY5MmExNC4wMzQgMTQuMDM0IDAgMCAxIDEzLjk4OSAxNC4wMzJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwNSAzODEuMDMxYTYgNiAwIDAgMCAxMiAwdi03NS44MDZhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTEgMjkwLjg0NGE2IDYgMCAwIDAgNi02di00LjgzNGE2IDYgMCAwIDAgLTEyIDB2NC44MzRhNiA2IDAgMCAwIDYgNnoiLz4KICAgIDwvZz4KPC9zdmc+","Temperature Sensors":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTM1MiwzODUuNDA2VjUzLjMzM0MzNTIsMjMuOTI3LDMyOC4wNzMsMCwyOTguNjY3LDBzLTUzLjMzMywyMy45MjctNTMuMzMzLDUzLjMzM3YzMzIuMDczCgkJCQlDMjMxLjcxOSwzOTkuMzY1LDIyNCw0MTguMDMxLDIyNCw0MzcuMzMzQzIyNCw0NzguNSwyNTcuNSw1MTIsMjk4LjY2Nyw1MTJjNDEuMTY3LDAsNzQuNjY3LTMzLjUsNzQuNjY3LTc0LjY2NwoJCQkJQzM3My4zMzMsNDE4LjAzMSwzNjUuNjE1LDM5OS4zNjUsMzUyLDM4NS40MDZ6IE0yOTguNjY3LDQ5MC42NjdjLTI5LjQwNiwwLTUzLjMzMy0yMy45MjctNTMuMzMzLTUzLjMzMwoJCQkJYzAtMTUuMTA0LDYuMzIzLTI5LjEyNSwxNy44MTMtMzkuNDY5YzIuMjQtMi4wMzEsMy41MjEtNC45MDYsMy41MjEtNy45MjdWNTMuMzMzYzAtMTcuNjQ2LDE0LjM1NC0zMiwzMi0zMgoJCQkJYzE3LjY0NiwwLDMyLDE0LjM1NCwzMiwzMnYzMzYuNjA0YzAsMy4wMjEsMS4yODEsNS44OTYsMy41MjEsNy45MjdDMzQ1LjY3Nyw0MDguMjA4LDM1Miw0MjIuMjI5LDM1Miw0MzcuMzMzCgkJCQlDMzUyLDQ2Ni43NCwzMjguMDczLDQ5MC42NjcsMjk4LjY2Nyw0OTAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDkuMzMzLDQwNy4yOThWMjI0YzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42Njd2MTgzLjI5OAoJCQkJYy0xMi4zODksNC40MTgtMjEuMzMzLDE2LjE0Ny0yMS4zMzMsMzAuMDM1YzAsMTcuNjQ2LDE0LjM1NCwzMiwzMiwzMmMxNy42NDYsMCwzMi0xNC4zNTQsMzItMzIKCQkJCUMzMzAuNjY3LDQyMy40NDUsMzIxLjcyMyw0MTEuNzE2LDMwOS4zMzMsNDA3LjI5OHogTTI5OC42NjcsNDQ4Yy01Ljg4NSwwLTEwLjY2Ny00Ljc4MS0xMC42NjctMTAuNjY3CgkJCQljMC01Ljg4NSw0Ljc4MS0xMC42NjcsMTAuNjY3LTEwLjY2N2M1Ljg4NSwwLDEwLjY2Nyw0Ljc4MSwxMC42NjcsMTAuNjY3QzMwOS4zMzMsNDQzLjIxOSwzMDQuNTUyLDQ0OCwyOTguNjY3LDQ0OHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjEzLjMzMywzNDEuMzMzaC02NGMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDY0CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzQ2LjEwNCwyMTkuMjI5LDM0MS4zMzMsMjEzLjMzMywzNDEuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI5OC42NjdIMTkyYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3YzAsNS44OTYsNC43NzEsMTAuNjY3LDEwLjY2NywxMC42NjdoMjEuMzMzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzAzLjQzOCwyMTkuMjI5LDI5OC42NjcsMjEzLjMzMywyOTguNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI1NkgxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwyNjAuNzcxLDIxOS4yMjksMjU2LDIxMy4zMzMsMjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDkuMzMzLDIzNC42NjdoNjRjNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N3MtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdoLTY0CgkJCQljLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdTMTQzLjQzOCwyMzQuNjY3LDE0OS4zMzMsMjM0LjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTQ5LjMzMywxMDYuNjY3aDY0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3aC02NAoJCQkJYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzE0My40MzgsMTA2LjY2NywxNDkuMzMzLDEwNi42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTcwLjY2N0gxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwxNzUuNDM4LDIxOS4yMjksMTcwLjY2NywyMTMuMzMzLDE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTI4SDE5MmMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDIxLjMzMwoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdDMjI0LDEzMi43NzEsMjE5LjIyOSwxMjgsMjEzLjMzMywxMjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Tv:sxe,"Vacuum Cleaner":"PHN2ZyB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ0MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOC0uMDI3MzQ0LTIyLjA4MjAzMS0xNy45MTc5NjktMzkuOTcyNjU2LTQwLTQwLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzMy41ODIwMzEtOCA4LThjMzAuOTE0MDYyLjAzNTE1NiA1NS45NjQ4NDQgMjUuMDg1OTM4IDU2IDU2IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzLTMuNTgyMDMxLTgtOC04LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04YzEzLjI1MzkwNiAwIDI0IDEwLjc0NjA5NCAyNCAyNCAwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04LS4wNDY4NzUtMzkuNzQ2MDk0LTMyLjI1MzkwNi03MS45NTMxMjUtNzItNzItNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOHMzLjU4MjAzMS04IDgtOGM0OC41NzgxMjUuMDU4NTkzOCA4Ny45NDE0MDYgMzkuNDIxODc1IDg4IDg4IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOCAuMDM1MTU2LTMwLjkxNDA2MiAyNS4wODU5MzgtNTUuOTY0ODQ0IDU2LTU2IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0yMi4wODIwMzEuMDI3MzQ0LTM5Ljk3MjY1NiAxNy45MTc5NjktNDAgNDAgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04IDAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNCA0LjQxNzk2OSAwIDggMy41ODIwMzEgOCA4cy0zLjU4MjAzMSA4LTggOC04IDMuNTgyMDMxLTggOC0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LTggLjA1ODU5MzgtNDguNTc4MTI1IDM5LjQyMTg3NS04Ny45NDE0MDYyIDg4LTg4IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0zOS43NDYwOTQuMDQ2ODc1LTcxLjk1MzEyNSAzMi4yNTM5MDYtNzIgNzIgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0MTZjMjYuNTA3ODEyIDAgNDgtMjEuNDkyMTg4IDQ4LTQ4cy0yMS40OTIxODgtNDgtNDgtNDgtNDggMjEuNDkyMTg4LTQ4IDQ4Yy4wMjczNDQgMjYuNSAyMS41IDQ3Ljk3MjY1NiA0OCA0OHptMC04MGMxNy42NzE4NzUgMCAzMiAxNC4zMjgxMjUgMzIgMzJzLTE0LjMyODEyNSAzMi0zMiAzMi0zMi0xNC4zMjgxMjUtMzItMzIgMTQuMzI4MTI1LTMyIDMyLTMyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQwIDE4NGMxMy4yNTM5MDYgMCAyNC0xMC43NDYwOTQgMjQtMjRzLTEwLjc0NjA5NC0yNC0yNC0yNC0yNCAxMC43NDYwOTQtMjQgMjQgMTAuNzQ2MDk0IDI0IDI0IDI0em0wLTMyYzQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzE3Ljk0NTMxMiAxNTJ2LjA0Njg3NWguMDU0Njg4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE1Mmg0OHYxNmgtNDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODAgMTUyaDQ4djE2aC00OHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0OGMtMTAxLjI2NTYyNS0uMDExNzE5LTE4OC45NDUzMTIgNzAuMzMyMDMxLTIxMC44OTA2MjUgMTY5LjE4NzUtMjEuOTQ1MzEzIDk4Ljg1OTM3NSAyNy43MzQzNzUgMTk5LjY5MTQwNiAxMTkuNDkyMTg3IDI0Mi41MzEyNSA1Ny45MjU3ODIgMjcuMDM1MTU2IDEyNC44NTE1NjMgMjcuMDM1MTU2IDE4Mi43ODEyNSAwIDkxLjc1NzgxMy00Mi44MzU5MzggMTQxLjQzMzU5NC0xNDMuNjY0MDYyIDExOS40OTIxODgtMjQyLjUyMzQzOC0yMS45NDE0MDYtOTguODU1NDY4LTEwOS42MTMyODEtMTY5LjE5OTIxOC0yMTAuODc1LTE2OS4xOTUzMTJ6bTAgMTZjMTA3LjI4NTE1Ni4xMzI4MTIgMTk1LjM5ODQzOCA4NC44MDQ2ODggMTk5LjgwMDc4MSAxOTJoLTE2Yy00LjU4MjAzMS05OC4xNzk2ODgtODUuNTE1NjI1LTE3NS40MjE4NzUtMTgzLjgwMDc4MS0xNzUuNDIxODc1cy0xNzkuMjE4NzUgNzcuMjQyMTg3LTE4My44MDA3ODEgMTc1LjQyMTg3NWgtMTZjNC40MDIzNDMtMTA3LjE5NTMxMiA5Mi41MTU2MjUtMTkxLjg2NzE4OCAxOTkuODAwNzgxLTE5MnptMjkuMTEzMjgxIDI0NS40OTYwOTRjMzAuNjgzNTk0IDExLjk4ODI4MSA1MC44ODI4MTMgNDEuNTU4NTk0IDUwLjg4NjcxOSA3NC41MDM5MDZ2MjcuNjQwNjI1Yy00OS44Nzg5MDYgMjcuMTQ0NTMxLTExMC4xMjEwOTQgMjcuMTQ0NTMxLTE2MCAwdi0yNy42NDA2MjVjLjAwMzkwNi0yNi40Mjk2ODggMTMuMDYyNS01MS4xNTIzNDQgMzQuODg2NzE5LTY2LjA1NDY4OCAyMS44MjgxMjUtMTQuOTA2MjUgNDkuNjA5Mzc1LTE4LjA2NjQwNiA3NC4yMjY1NjItOC40NDkyMTh6bTY2Ljg4NjcxOSA3NC41MDM5MDZjMC01My4wMTk1MzEtNDIuOTgwNDY5LTk2LTk2LTk2cy05NiA0Mi45ODA0NjktOTYgOTZ2MTcuNzM0Mzc1Yy0zOC44NjMyODEtMjYuOTgwNDY5LTY0LjUwNzgxMi02OS4xMzI4MTMtNzAuNjAxNTYyLTExNi4wNDY4NzUtNi4wOTc2NTctNDYuOTE3OTY5IDcuOTI1NzgxLTk0LjIyMjY1NiAzOC42MDE1NjItMTMwLjIzODI4MXYzNi41NTA3ODFjLjAyNzM0NCAyMi4wODIwMzEgMTcuOTE3OTY5IDM5Ljk3MjY1NiA0MCA0MGgxNzZjMjIuMDgyMDMxLS4wMjczNDQgMzkuOTcyNjU2LTE3LjkxNzk2OSA0MC00MHYtMzYuNTUwNzgxYzMwLjY3NTc4MSAzNi4wMTU2MjUgNDQuNjk5MjE5IDgzLjMyMDMxMiAzOC42MDE1NjIgMTMwLjIzODI4MS02LjA5Mzc1IDQ2LjkxNDA2Mi0zMS43MzgyODEgODkuMDY2NDA2LTcwLjYwMTU2MiAxMTYuMDQ2ODc1em0tMjA4LTI0NC44NjMyODFjNjMuNTg5ODQ0LTU3LjUxNTYyNSAxNjAuNDEwMTU2LTU3LjUxNTYyNSAyMjQgMHY1Mi44NjMyODFjMCAxMy4yNTM5MDYtMTAuNzQ2MDk0IDI0LTI0IDI0aC0xNzZjLTEzLjI1MzkwNiAwLTI0LTEwLjc0NjA5NC0yNC0yNHptLTg3LjcxMDkzOCAxMzIuODYzMjgxaDE2YzIuODM1OTM4IDYxLjAzOTA2MiAzNS42NzE4NzYgMTE2LjcyMjY1NiA4Ny43MTA5MzggMTQ4Ljc1MzkwNnYxOC42NDQ1MzJjLTYxLjQzNzUtMzMuODUxNTYzLTEwMC43NTM5MDYtOTcuMzEyNS0xMDMuNzEwOTM4LTE2Ny4zOTg0Mzh6bTExOS43MTA5MzggMTc1LjI0NjA5NHYtMTcuNjQ0NTMyYzUwLjUwMzkwNiAyNC41NjI1IDEwOS40OTYwOTQgMjQuNTYyNSAxNjAgMHYxNy42NzE4NzZjLTUwLjk5NjA5NCAyMi4zMzU5MzctMTA5LjAwMzkwNiAyMi4zMzU5MzctMTYwIDB6bTE3Ni03Ljg0NzY1NnYtMTguNjQ0NTMyYzUyLjA0Mjk2OS0zMi4wMjczNDQgODQuODg2NzE5LTg3LjcxMDkzNyA4Ny43MjY1NjItMTQ4Ljc1MzkwNmgxNmMtMi45NjA5MzcgNzAuMDg5ODQ0LTQyLjI4NTE1NiAxMzMuNTUwNzgxLTEwMy43MjY1NjIgMTY3LjM5ODQzOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ventilation:ixe,"Washing Machines":"PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIDAgNDk2IDQ5NiIgd2lkdGg9IjQ5NnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDg4IDBoLTQwMGMtNC40MjU3ODEgMC04IDMuNTg1OTM4LTggOHYyOTYuODMyMDMxYy0yLjYwMTU2Mi0uNTI3MzQzLTUuMjczNDM4LS44MzIwMzEtOC0uODMyMDMxLTIyLjA1NDY4OCAwLTQwIDE3Ljk0NTMxMi00MCA0MHYuMTY3OTY5Yy03LjgyNDIxOSA1Ljg4NjcxOS0xMy4xNTIzNDQgMTQuMzk4NDM3LTE1LjEyMTA5NCAyMy44MzIwMzFoLTguODc4OTA2Yy00LjQyNTc4MSAwLTggMy41ODU5MzgtOCA4djMyYzAgNC40MTQwNjIgMy41NzQyMTkgOCA4IDhoOHYyNGMwIDMwLjg3ODkwNiAyNS4xMjg5MDYgNTYgNTYgNTZoNDE2YzQuNDI1NzgxIDAgOC0zLjU4NTkzOCA4LTh2LTQ4MGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04em0tOCAxNnY4MGgtMzg0di04MHptLTQzNS42NTYyNSAzMzkuMTc1NzgxYzIuODM5ODQ0LTEuNjAxNTYyIDQuNDMzNTk0LTQuNzYxNzE5IDQuMDE1NjI1LThsLS4xMjg5MDYtLjkyOTY4N2MtLjEwMTU2My0uNzM0Mzc1LS4yMzA0NjktMS40Njg3NS0uMjMwNDY5LTIuMjQ2MDk0IDAtMTMuMjMwNDY5IDEwLjc2OTUzMS0yNCAyNC0yNCA4LjQ0OTIxOSAwIDE2LjEyMTA5NCA0LjQwNjI1IDIwLjUyNzM0NCAxMS44MDA3ODEgMS4xOTkyMTggMi4wMTU2MjUgMy4yMzQzNzUgMy40MDYyNSA1LjU1MDc4MSAzLjc5Mjk2OSAyLjMyODEyNS4zOTg0MzggNC42OTkyMTktLjI2NTYyNSA2LjQ5NjA5NC0xLjc5Mjk2OSAzLjEyMTA5My0yLjY0ODQzNyA4LjMyMDMxMi01LjgwMDc4MSAxNS40MjU3ODEtNS44MDA3ODEgOC41NTg1OTQgMCAxNi41MzUxNTYgNC43MjY1NjIgMjAuODE2NDA2IDEyLjMzNTkzOCAxLjY2NDA2MyAyLjk3NjU2MiA1LjA1NDY4OCA0LjU1ODU5MyA4LjM4MjgxMyAzLjk2MDkzNyA4LjM1MTU2Mi0xLjQ4ODI4MSAxNi45MDYyNSA0LjI0NjA5NCAxOC40OTYwOTMgMTIuNzQyMTg3LjU3MDMxMyAzLjAzOTA2MyAyLjgzOTg0NCA1LjQ4ODI4MiA1LjgzOTg0NCA2LjI3MzQzOCAzLjAxNTYyNS44MDA3ODEgNi4xNjc5NjktLjIzNDM3NSA4LjE2Nzk2OS0yLjYwOTM3NSA0LjYxNzE4Ny01LjUyNzM0NCAxMS4yODkwNjMtOC43MDMxMjUgMTguMjk2ODc1LTguNzAzMTI1IDEwLjQxNDA2MiAwIDE5LjIxNDg0NCA2LjcxMDkzOCAyMi41MjczNDQgMTZoLTE4OC45MjU3ODJjMS45NDE0MDctNS4yOTY4NzUgNS42MDU0NjktOS45Mzc1IDEwLjc0MjE4OC0xMi44MjQyMTl6bTEwNy42NTYyNS03NS4xNzU3ODFjMC03NC45OTIxODggNjEuMDA3ODEyLTEzNiAxMzYtMTM2czEzNiA2MS4wMDc4MTIgMTM2IDEzNi02MS4wMDc4MTIgMTM2LTEzNiAxMzZjLTExLjI4OTA2MiAwLTIyLjMyODEyNS0xLjUxOTUzMS0zMy4wNzgxMjUtNC4yMTQ4NDQuNjI4OTA2LTEuMTQ0NTMxIDEuMDc4MTI1LTIuMzk0NTMxIDEuMDc4MTI1LTMuNzg1MTU2di0xMi4zMzU5MzhjMTAuMzY3MTg4IDIuODYzMjgyIDIxLjA3ODEyNSA0LjMzNTkzOCAzMiA0LjMzNTkzOCA2Ni4xNjc5NjkgMCAxMjAtNTMuODMyMDMxIDEyMC0xMjBzLTUzLjgzMjAzMS0xMjAtMTIwLTEyMC0xMjAgNTMuODMyMDMxLTEyMCAxMjBjMCAyMS4wODk4NDQgNS40ODA0NjkgNDEuNDMzNTk0IDE1LjgyNDIxOSA1OS41MDM5MDYtMS43OTI5NjkuODA4NTk0LTMuNTM1MTU3IDEuNzI2NTYzLTUuMTkxNDA3IDIuODAwNzgyLTQuMDU4NTkzLTYuMTEzMjgyLTEwLjE1MjM0My0xMC42MzI4MTMtMTcuMjA3MDMxLTEyLjgyNDIxOS02LjE2Nzk2OS0xNS43NjE3MTktOS40MjU3ODEtMzIuMzU5Mzc1LTkuNDI1NzgxLTQ5LjQ4MDQ2OXptNDguNDY0ODQ0IDU2LjA0Njg3NWMtNi4zNjcxODgtOS45MTAxNTYtMTEtMjAuNzAzMTI1LTEzLjY3OTY4OC0zMi4wNDY4NzVoNS4yMTQ4NDRjNy4yODkwNjIgMCAxNC4xNTIzNDQtMi44Mzk4NDQgMTkuMzEyNS04bDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGM1LjE2Nzk2OSA1LjE2MDE1NiAxMi4wMjM0MzggOCAxOS4zMTI1IDhoNS4wOTc2NTZjLTEwLjg4MjgxMiA0NS43OTI5NjktNTIuMDI3MzQ0IDgwLTEwMS4wOTc2NTYgODAtMTAuOTc2NTYyIDAtMjEuNjk1MzEyLTEuNzkyOTY5LTMyLTUuMTI4OTA2di0yLjg3MTA5NGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04aC04LjgwODU5NGMtMy42ODc1LTE4LjA4OTg0NC0xOS42MjUtMzEuNzI2NTYyLTM4LjcyNjU2Mi0zMS45NTMxMjV6bS0xNi40NjQ4NDQtNTYuMDQ2ODc1YzAtNTcuMzQzNzUgNDYuNjU2MjUtMTA0IDEwNC0xMDRzMTA0IDQ2LjY1NjI1IDEwNCAxMDRjMCAyLjcwMzEyNS0uMTk5MjE5IDUuMzUxNTYyLS40MDYyNSA4aC03LjU5Mzc1Yy0zLjAyMzQzOCAwLTUuODU1NDY5LTEuMTc1NzgxLTgtMy4zMTI1bC00LjY4NzUtNC42ODc1Yy0xMC4zMjgxMjUtMTAuMzEyNS0yOC4yOTY4NzUtMTAuMzIwMzEyLTM4LjYyNSAwbC00LjY4NzUgNC42Nzk2ODhjLTQuMjgxMjUgNC4yODEyNS0xMS43MTg3NSA0LjI4MTI1LTE2IDBsLTQuNjg3NS00LjY3OTY4OGMtMTAuMzI4MTI1LTEwLjMxMjUtMjguMjk2ODc1LTEwLjMyMDMxMi0zOC42MjUgMGwtNC42ODc1IDQuNjc5Njg4Yy00LjI4MTI1IDQuMjgxMjUtMTEuNzE4NzUgNC4yODEyNS0xNiAwbC00LjY4NzUtNC42Nzk2ODhjLTEwLjMyODEyNS0xMC4zMTI1LTI4LjI5Njg3NS0xMC4zMjAzMTItMzguNjI1IDBsLTQuNjg3NSA0LjY3OTY4OGMtMi4xNDQ1MzEgMi4xNDQ1MzEtNC45NzY1NjIgMy4zMjAzMTItOCAzLjMyMDMxMmgtNy42OTUzMTJjLS4xOTkyMTktMi42NDg0MzgtLjMwNDY4OC01LjMyMDMxMi0uMzA0Njg4LTh6bS0xNjggMTA0aDIyNHYxNmgtMjI0em0xNjAgOTZoLTEwNGMtMjIuMDU0Njg4IDAtNDAtMTcuOTQ1MzEyLTQwLTQwdi0yNGgxOTJ2MjRjMCAyMi4wNTQ2ODgtMTcuOTQ1MzEyIDQwLTQwIDQwem00Ny4xMTMyODEgMGMxMC40MDYyNS0xMC4xNzU3ODEgMTYuODg2NzE5LTI0LjMzNTkzOCAxNi44ODY3MTktNDB2LTE1Ljg3MTA5NGMxNS40MjU3ODEgNS4xNDQ1MzIgMzEuNTAzOTA2IDcuODcxMDk0IDQ4IDcuODcxMDk0IDgzLjgxNjQwNiAwIDE1Mi02OC4xODM1OTQgMTUyLTE1MnMtNjguMTgzNTk0LTE1Mi0xNTItMTUyLTE1MiA2OC4xODM1OTQtMTUyIDE1MmMwIDEzLjAxNTYyNSAxLjgwMDc4MSAyNS43MzQzNzUgNS4wMDc4MTIgMzguMTEzMjgxLTYuMjIyNjU2LTMuOTA2MjUtMTMuNDY0ODQzLTYuMTEzMjgxLTIxLjAwNzgxMi02LjExMzI4MS02LjUzNTE1NiAwLTEzIDEuNjcxODc1LTE4Ljc4NTE1NiA0LjgxNjQwNi0xLjU4OTg0NC0xLjcyNjU2Mi0zLjM3NS0zLjIxNDg0NC01LjIxNDg0NC00LjYyNXYtMjAwLjE5MTQwNmgzODR2MzY4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjAwIDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY0IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ4IDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ0OCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDE2IDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM4NCA2NGgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=","Water Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNjguOTkgMTg3LjQ5OWMtNS43NTEtOS45NTktMjAuMTk2LTEwLjAxNi0yNS45NzkgMC0yMS44MSA0MC42MTEtMzIuMDExIDQ4LjA2MS0zMi4wMTEgNjcuNTAxIDAgMjQuODEzIDIwLjE4NyA0NSA0NSA0NXM0NS0yMC4xODcgNDUtNDVjMC0xOS40NTgtMTAuNDg2LTI3LjQyMS0zMi4wMS02Ny41MDF6bS0xMi45OSA4Mi41MDFjLTguMjcxIDAtMTUtNi43MjktMTUtMTUgMC02LjY4NyAzLjA0Mi04LjIxNSAxNS0zMC4wMDUgMTEuOTc0IDIxLjgxOCAxNSAyMy4zMTggMTUgMzAuMDA1IDAgOC4yNzEtNi43MjkgMTUtMTUgMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNiAwaC0zMDBjLTguNzY5IDAtMTUuNjc2IDcuNTAyLTE0Ljk0OCAxNi4yNDZsMzAgMzYwYy42NDggNy43NzQgNy4xNDcgMTMuNzU0IDE0Ljk0OCAxMy43NTRoNzV2MzJoLTE1Yy0xMy4zMTggMC0yMC4wNDggMTYuMTY1LTEwLjYwNiAyNS42MDZsNjAgNjBjNS44NTcgNS44NTggMTUuMzU1IDUuODU5IDIxLjIxMyAwbDYwLTYwYzkuNDE3LTkuNDE3IDIuNzQ1LTI1LjYwNi0xMC42MDctMjUuNjA2aC0xNXYtMzJoNzVjNy44MDEgMCAxNC4zLTUuOTggMTQuOTQ4LTEzLjc1NGwzMC0zNjBjLjcyOC04LjczOS02LjE3NC0xNi4yNDYtMTQuOTQ4LTE2LjI0NnptLTE2LjMwMiAzMC01LjM0NiA2NC4xNDdjLTIxLjc2OCA4LjM0My0zNS44NzEgMjUuODUzLTUzLjM1MiAyNS44NTMtMjIuNzE3IDAtNDAuNDIzLTMwLTc1LTMwLTM0LjcyNyAwLTUyLjE3NiAzMC03NSAzMC0xNy40ODUgMC0zMS41NTYtMTcuNDk5LTUzLjM1Mi0yNS44NTNsLTUuMzQ2LTY0LjE0N3ptLTI3LjUgMzMwaC03Ni4xOThjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2NjJjMCA2LjQzMiA0LjA0OCAxMS45MTkgOS43MzYgMTQuMDVsLTI0LjczNiAyNC43MzctMjQuNzM2LTI0LjczNmM1LjY4OC0yLjEzMSA5LjczNi03LjYxOCA5LjczNi0xNC4wNXYtNjJjMC04LjI4NC02LjcxNi0xNS0xNS0xNWgtNzYuMTk4bC0xOS4yMDgtMjMwLjUwMmMxNC4zMTUgOS4xNTMgMjkuMDc2IDIwLjUwMSA1MC40MDYgMjAuNTAxIDM0LjcyNyAwIDUyLjE3Ni0zMCA3NS0zMCAyMi43MTcgMCA0MC40MjMgMzAgNzUgMzAgMjEuMDE5IDAgMzUuNDQ5LTEwLjkzNyA1MC40MDYtMjAuNTAyeiIvPgogICAgPC9nPgo8L3N2Zz4=","Water Heater":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTY3LDE4NS4zMjV2MjgxYTM1LjU0MSwzNS41NDEsMCwwLDAsMzUuNDY5LDM1LjYzMUwzMTkuMDYsNTAyaC4wMDZBMzUuODkxLDM1Ljg5MSwwLDAsMCwzNTUsNDY2LjM2OVY0NjRoNjAuNjJjMzQuODM3LDAsNjMuMzgtMjcuODcsNjMuMzgtNjIuNzE1VjE4OS43M2MwLTM0Ljg0NC0yOC41NDMtNjIuNzMtNjMuMzgtNjIuNzNIMzU1di05LjY4OWMwLS4wNzQtLjE2LS4xNDYtLjE2Mi0uMjE5cy0uMDY1LS4xMTQtLjA2NS0uMTg3QTYyLjA0NCw2Mi4wNDQsMCwwLDAsMjkyLjc2Myw1NUgyMTlWNDRoMTcuODI4QzI0NS42NSw0NCwyNTMsMzcuMiwyNTMsMjguMzc0VjI2YTE2LjE2NywxNi4xNjcsMCwwLDAtMTYuMTcyLTE2SDE4OS43MDZBMTUuNzcsMTUuNzcsMCwwLDAsMTc0LDI2djIuMzc0QTE1LjQ1NCwxNS40NTQsMCwwLDAsMTg5LjcwNiw0NEgyMDdWNTVIMTMzLjc3MUMxMDEuNSw1NSw3NC45MjQsODAsNzIuMSwxMTFIMzkuMmE2LjA1Niw2LjA1NiwwLDAsMC01LjIsOC45MjlaTTM1NSwxNjFoNjAuNjJBMjguNTgxLDI4LjU4MSwwLDAsMSw0NDQsMTg5LjczVjQwMS4yODVBMjguNTY4LDI4LjU2OCwwLDAsMSw0MTUuNjIsNDMwSDM1NVptMCwyODFoNjAuNjJBNDAuNTgxLDQwLjU4MSwwLDAsMCw0NTYsNDAxLjI4NVYxODkuNzNBNDAuNTk0LDQwLjU5NCwwLDAsMCw0MTUuNjIsMTQ5SDM1NVYxMzloNjAuNjJjMjguMjIxLDAsNTEuMzgsMjIuNSw1MS4zOCw1MC43M1Y0MDEuMjg1QzQ2Nyw0MjkuNTEzLDQ0My44NDEsNDUyLDQxNS42Miw0NTJIMzU1Wm0tMTIsMjQuMzY5QTIzLjg5MSwyMy44OTEsMCwwLDEsMzE5LjA2Niw0OTBoMGwtMjE2LjU5MS0uMDQxQTIzLjUyNywyMy41MjcsMCwwLDEsNzksNDY2LjMyOFY0NTIuNTdsMjY0LC4wNDlaTTE5MCwzMmE0LDQsMCwwLDEtNC00VjI2YTQsNCwwLDAsMSw0LTRoNDdhNCw0LDAsMCwxLDQsNHYyYTQsNCwwLDAsMS00LDRaTTEzMy43NzEsNjdIMjkyLjc2M2E0OS44MjksNDkuODI5LDAsMCwxLDQ5LjU3Niw0NEg4NC4yQTQ5LjgzLDQ5LjgzLDAsMCwxLDEzMy43NzEsNjdaTTM0MywxMjNWNDQwLjYxOUw3OSw0NDAuNTdWMTgzLjlhNi44NTMsNi44NTMsMCwwLDAtLjgtMi44NTFMNDguOTM0LDEyM1oiLz4KICAgICAgICA8cGF0aCBkPSJNMjAzLDM4OC40NDNBMzUuMDE3LDM1LjAxNywwLDAsMCwyMzgsMzUzLjZWMjM2Ljg0NGEzNSwzNSwwLDAsMC03MCwwVjM1My42QTM1LjAxNywzNS4wMTcsMCwwLDAsMjAzLDM4OC40NDNabS0yMy0xNTEuNmEyMywyMywwLDAsMSw0NiwwVjI4OUgxODBaTTE4MCwzMDFoNDZ2NTIuNmEyMywyMywwLDAsMS00NiwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik05OSwzMTQuOTEzYTYsNiwwLDAsMCw2LTZWMjMzLjEwNmE2LDYsMCwwLDAtMTIsMHY3NS44MDdBNiw2LDAsMCwwLDk5LDMxNC45MTNaIi8+CiAgICAgICAgPHBhdGggZD0iTTk5LDIxOC43MjZhNiw2LDAsMCwwLDYtNnYtNC44MzRhNiw2LDAsMCwwLTEyLDB2NC44MzRBNiw2LDAsMCwwLDk5LDIxOC43MjZaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Water:rxe,Weather:oxe,Window:nxe},Mxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",cxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM2Mi43ODcgMzYyLjc4NyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNjAuOTQ1LDE0NC45NzljLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTlsLTQ3LjQ4NCw4MS4zMzNjLTEuMzU0LDIuMzE5LTEuMzY1LDUuMTg2LTAuMDI3LDcuNTE2CgkJYzEuMzM3LDIuMzI5LDMuODE4LDMuNzY2LDYuNTA0LDMuNzY2aDk0Ljk2OGMyLjY4NiwwLDUuMTY3LTEuNDM3LDYuNTA0LTMuNzY2YzEuMzM4LTIuMzMsMS4zMjctNS4xOTYtMC4wMjctNy41MTZsLTQ3LjQ4My04MS4zMzMKCQlDMjY2LjA3OCwxNDYuMzk1LDI2My42MTIsMTQ0Ljk3OSwyNjAuOTQ1LDE0NC45Nzl6IE0yMjYuNTI0LDIyNi4zMTJsMzQuNDIxLTU4Ljk1OGwzNC40Miw1OC45NThIMjI2LjUyNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU1LjI4NywyNTQuNjloLTE3NS42Mmw4MS4yNzgtMTM5LjIxOGw2Mi45MjYsMTA3Ljc4M2MyLjA4OCwzLjU3OCw2LjY4Myw0Ljc4NCwxMC4yNTgsMi42OTYKCQljMy41NzctMi4wODgsNC43ODQtNi42ODEsMi42OTUtMTAuMjU4TDI2Ny40MjIsOTYuODE1Yy0wLjAyMS0wLjAzNi0wLjA0OC0wLjA2Ny0wLjA2OS0wLjEwM2MtMC4xMjYtMC4yMDgtMC4yNjItMC40MDgtMC40MDctMC42MDMKCQljLTAuMDQ0LTAuMDU5LTAuMDg2LTAuMTE4LTAuMTMxLTAuMTc2Yy0wLjE4My0wLjIzLTAuMzc2LTAuNDUxLTAuNTg0LTAuNjU4Yy0wLjAyNC0wLjAyNC0wLjA1MS0wLjA0NS0wLjA3Ni0wLjA2OQoJCWMtMC4xODYtMC4xOC0wLjM4My0wLjM0OS0wLjU4Ny0wLjUwOWMtMC4wNjUtMC4wNTEtMC4xMzItMC4xLTAuMTk5LTAuMTQ4Yy0wLjE4Ny0wLjEzNy0wLjM3OS0wLjI2NC0wLjU3OC0wLjM4NAoJCWMtMC4wNTUtMC4wMzMtMC4xMDgtMC4wNjgtMC4xNjQtMC4xYy0wLjI2MS0wLjE0Ny0wLjUzLTAuMjgyLTAuODA5LTAuMzk3Yy0wLjAxMS0wLjAwNC0wLjAyMi0wLjAwOC0wLjAzMy0wLjAxMgoJCWMtMC4yNi0wLjEwNi0wLjUyOC0wLjE5Ni0wLjgwMi0wLjI3M2MtMC4wNzMtMC4wMjEtMC4xNDYtMC4wMzgtMC4yMi0wLjA1NmMtMC4yMjItMC4wNTUtMC40NDctMC4xLTAuNjc3LTAuMTM1CgkJYy0wLjA3OS0wLjAxMi0wLjE1Ny0wLjAyNi0wLjIzNi0wLjAzNmMtMC4yOTctMC4wMzYtMC41OTgtMC4wNi0wLjkwNi0wLjA2SDEwMS44NDJjLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTkKCQlMMS4wMjMsMjU4LjQwOGMtMS4zNTQsMi4zMTktMS4zNjUsNS4xODYtMC4wMjcsNy41MTZjMS4zMzcsMi4zMjksMy44MTgsMy43NjYsNi41MDQsMy43NjZoODYuNTM4YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDEKCQlzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzUuODg5YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDFzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzYuNTg2aDE4OC42ODQKCQljNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNVMzNTkuNDMsMjU0LjY5LDM1NS4yODcsMjU0LjY5eiBNMTYyLjI5OCwyNTQuNjloLTE5LjI2M2w2OS40My0xMTkuNDcKCQljMi4wODEtMy41ODIsMC44NjUtOC4xNzItMi43MTYtMTAuMjUzYy0zLjU4LTIuMDgzLTguMTczLTAuODY2LTEwLjI1MywyLjcxNmwtNzMuODEsMTI3LjAwN0gxMDcuMWw4NS4xOTItMTQ2LjU5NGg1NS41OQoJCUwxNjIuMjk4LDI1NC42OXogTTEwNi4xNDcsMTA4LjA5NmgzNC4wOTFMNzQuNzg5LDIyMC43MTdjLTIuMDgxLDMuNTgyLTAuODY1LDguMTcyLDIuNzE2LDEwLjI1MwoJCWMxLjE4NiwwLjY4OSwyLjQ4MiwxLjAxNywzLjc2MiwxLjAxN2MyLjU4NCwwLDUuMS0xLjMzNyw2LjQ5MS0zLjczM2w2OS44My0xMjAuMTU4aDE3LjM1Nkw4OS43NTEsMjU0LjY5SDIwLjU2M0wxMDYuMTQ3LDEwOC4wOTZ6IgogICAgICAgIC8+CiAgICA8L2c+Cjwvc3ZnPgo=",uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTYuNzA0IDI3Mi4wODZoLTgxLjcwNHYtODguMDczYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djg4LjA3M2gtMTV2LTE5My43MWMwLTguMjQ5LTYuNzExLTE0Ljk1OS0xNC45NTktMTQuOTU5aC05MS41ODJjLTguMjQ4IDAtMTQuOTU5IDYuNzEtMTQuOTU5IDE0Ljk1OXYxOTMuNzFoLTE1di0xOTMuNzFjMC04LjI0OS02LjcxMS0xNC45NTktMTQuOTU5LTE0Ljk1OWgtOTEuNTgyYy04LjI0OCAwLTE0Ljk1OSA2LjcxLTE0Ljk1OSAxNC45NTl2MTkzLjcxaC0xNXYtMjIzLjY2OWgyODh2MTAwLjU5NmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xMDAuNTk2aDMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODgzIDE1LjI5Ni0xNS4zNDR2LTE3LjczYzAtOC40Ni02Ljg2MS0xNS4zNDMtMTUuMjk2LTE1LjM0M2gtMzI0LjQwOGMtOC40MzUgMC0xNS4yOTYgNi44ODMtMTUuMjk2IDE1LjM0NHYxNy43M2MwIDguNDYgNi44NjEgMTUuMzQ0IDE1LjI5NiAxNS4zNDRoMy4yMDR2MjIzLjY2OWgtODEuNzA0Yy04LjQzNS0uMDAxLTE1LjI5NiA2Ljg2MS0xNS4yOTYgMTUuMjk1djE3LjYyMmMwIDguNDM1IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aC41djE0My40ODZoLS41Yy04LjQzNSAwLTE1LjI5NiA2Ljg2Mi0xNS4yOTYgMTUuMjk2djE3LjYyMmMwIDguNDM0IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aDIyMy4yMDRjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTIyMy4yMDRjLS4xNjMgMC0uMjk2LS4xMzMtLjI5Ni0uMjk2di0xNy42MjJjMC0uMTYzLjEzMy0uMjk2LjI5Ni0uMjk2aDQ4MS40MDhjLjE2MyAwIC4yOTYuMTMzLjI5Ni4yOTZ2MTcuNjIyYzAgLjE2My0uMTMzLjI5Ni0uMjk2LjI5NmgtMjIzLjIwNGMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMjMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODYyIDE1LjI5Ni0xNS4yOTZ2LTE3LjYyMmMwLTguNDM0LTYuODYxLTE1LjI5Ni0xNS4yOTYtMTUuMjk2aC0uNXYtMTQzLjQ4NmguNWM4LjQzNSAwIDE1LjI5Ni02Ljg2MiAxNS4yOTYtMTUuMjk2di0xNy42MjJjMC04LjQzNC02Ljg2MS0xNS4yOTYtMTUuMjk2LTE1LjI5NnptLTQwMy4yMDQtMjM5LjAxMnYtMTcuNzNjMC0uMjEyLjE1My0uMzQ0LjI5Ni0uMzQ0aDMyNC40MDhjLjE0MyAwIC4yOTYuMTMxLjI5Ni4zNDR2MTcuNzNjMCAuMjEyLS4xNTMuMzQ0LS4yOTYuMzQ0LTE1LjM2NyAwLTMwOS4wNTEgMC0zMjQuNDA4IDAtLjE0My0uMDAxLS4yOTYtLjEzMi0uMjk2LS4zNDR6bTE4NC45NTkgNDUuMzQzIDkxLjU0MS0uMDQxdjE5My43MWgtOTEuNTAyem0tMTM2LjUgMCA5MS41NDEtLjA0MXYxOTMuNzFoLTkxLjUwMnptMzM5LjI0NSAzODQuODE3aC00NTAuNDA4di0xNDIuOTM0aDQ1MC40MDh6bTE1Ljc5Ni0xNTguMjNjMCAuMTY0LS4xMzMuMjk2LS4yOTYuMjk2LTIuODI0IDAtNDcxLjE1MyAwLTQ4MS40MDggMC0uMTYzIDAtLjI5Ni0uMTMzLS4yOTYtLjI5NnYtMTcuNjIyYzAtLjE2My4xMzMtLjI5Ni4yOTYtLjI5Nmg0ODEuNDA4Yy4xNjMgMCAuMjk2LjEzMy4yOTYuMjk2eiIvPgogICAgICAgIDxwYXRoIGQ9Im02Ny42NTUgNDQyLjcwNGgxOC45OWM4Ljc2OCAwIDE1LjktNy4xMzMgMTUuOS0xNS45MDF2LTY5LjUyYzAtOC43NjgtNy4xMzMtMTUuOTAxLTE1LjktMTUuOTAxaC0xOC45OWMtOC43NjggMC0xNS45IDcuMTMzLTE1LjkgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkgMTUuOTAxem0tLjktODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45LS45MDFoMTguOTljLjQ5NiAwIC45LjQwNC45LjkwMXY2OS41MmMwIC40OTctLjQwNC45MDEtLjkuOTAxaC0xOC45OWMtLjQ5NiAwLS45LS40MDQtLjktLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM5LjQwNiA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMTAuNzk2IDQ0Mi43MDRoMTguOTljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTljLTguNzY4IDAtMTUuOSA3LjEzMy0xNS45IDE1LjkwMXY2OS41MmMwIDguNzY4IDcuMTMyIDE1LjkwMSAxNS45IDE1LjkwMXptLS45LTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOS0uOTAxaDE4Ljk5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTljLS40OTYgMC0uOS0uNDA0LS45LS45MDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI4Mi41NDcgNDQyLjcwNGgxOC45ODljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTg5Yy04Ljc2OCAwLTE1LjkwMSA3LjEzMy0xNS45MDEgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAxLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzU0LjEzMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjLS4wMDEgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAyLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDI1LjUyMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTYuNDExIDEwNy4yNjhjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDIzLjUxMiAyMy41MTJjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjYwNCA5Mi44MzJjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDExLjc1NiAxMS43NTZjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgIDwvZz4KPC9zdmc+",lxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00MTMuOTA3IDBjLTU0LjEwNCAwLTk4LjEyMiA0NC4wMDUtOTguMTIyIDk4LjA5NnY0My41ODJzLTY5LjgzMS0zNi45MTItNzEuMDY1LTM3LjU5M2MtOS41NDQtNS4yNjYtMTIuMTg1LTUuMjY3LTIxLjczMSAwLTEuMjM0LjY4MS0xMzYuMTQxIDcxLjk1OC0xMzYuMTQxIDcxLjk1OC0xMS40MzcgNi4wMTctMTMuMDQ1IDcuNzQ1LTE3Ljg3OCAxNS43ODMtLjc4OCAxLjMxMS02NS42OTggMTA0LjIzLTY1LjY5OCAxMDQuMjMtMy4xNzUgNS4wMjMtNC4wNzcgMTAuOTYyLTIuNTM5IDE2LjcyMiAxLjYxNyA2LjA1NiA1Ljg0IDExLjI2OSAxMS41NzcgMTQuMjk1IDMuNjQ2IDEuOTMgNy41ODIgMi44NSAxMS40NjUgMi44NSA2LjIwMiAwIDEyLjI1NS0yLjM1OCAxNi43NDUtNi42ODh2NjUuMDQ0YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTg3LjU0MXM0OS4xMzQtNzcuODU1IDQ5LjY1Mi03OC42ODJjMi4zMzQtMy43MjkgMy4zMjgtNS4yODMgNC40OTYtNi4zMTggMS4zMzMtMS4xODEgMy42NjUtMi40NjQgOC42NjUtNS4xMDdsMTEzLjAwMi01OS42NDljLjgwMS0uNDI1IDEuNDktLjgwMyAyLjA5My0xLjEzMy4xNDEtLjA3Ny4yODUtLjE1Ni40MjgtLjIzNC4xNDMuMDc4LjI4Ny4xNTcuNDI4LjIzNC42MDMuMzMxIDEuMjkyLjcwOCAyLjEwOSAxLjE0MiAwIDAgMTE4LjE5MyA2Mi40MTMgMTE5LjY0MiA2My4zMS44NjkuNTM4IDEuNTA5Ljk5NSAyLjAwOSAxLjQzOCAxLjE2NyAxLjAzNSAyLjE2MiAyLjU4OSA0LjQ5NiA2LjMxOC41MTguODI3IDQ5LjY1MSA3OC42ODEgNDkuNjUxIDc4LjY4MXYxNjAuNzE2aC04NC45MjF2LTEwNC4zNGgxMi42MjVjNy42NTIgMCAxMy44NzgtNi4yMjYgMTMuODc4LTEzLjg3OHYtMjEuNDNjMC03LjY1Mi02LjIyNi0xMy44NzgtMTMuODc4LTEzLjg3OGgtODUuMTIyYy00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDg0djE5LjE4NmgtMjA5Ljgxdi0xOS4xODZoOTEuMmM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtOTIuMzIyYy03LjY1MiAwLTEzLjg3OCA2LjIyNi0xMy44NzggMTMuODc4djIxLjQzYzAgNy42NTIgNi4yMjYgMTMuODc4IDEzLjg3OCAxMy44NzhoMTIuNjI1djEwNC4zMzloLTg0Ljk0N3YtMzguNTYzYzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc2LjUzNmMwIDYuOTM0IDUuNjQxIDEyLjU3NCAxMi41NzQgMTIuNTc0aDQ0NS45MDdjNy4xNjcgMCAxMi45OTktNS44MzIgMTIuOTk5LTEyLjk5OXYtNDAwLjkwNWMuMDAxLTU0LjA5MS00NC4wMDQtOTguMDk2LTk4LjA5Mi05OC4wOTZ6bS0yNzMuNDQgNDk3aC04NC45NDh2LTIwLjU0Nmg4NC45NDd2MjAuNTQ2em0xNTkuNzgzLTEzOS44ODYtNjYuMzgyIDU5Ljg0NS02Ni4zODItNTkuODQ1em0tMTQ0Ljc4MyA5LjM1OSA2Ny4yMDEgNjAuNTg0LTY3LjIwMSA2MC41ODR6bTEyLjAyIDEzMC41MjcgNjYuMzgyLTU5Ljg0NSA2Ni4zODEgNTkuODQ1em0xNDQuNzgzLTkuMzU5LTY3LjIwMS02MC41ODQgNjcuMjAxLTYwLjU4NHptOTkuOTE5IDkuMzU5aC04NC45MTl2LTIwLjU0Nmg4NC45MTl6bTUzLjQ0NS0xOTguODIzYy0uMzQ3LS43Mi0uNzMzLTEuNDI3LTEuMTY2LTIuMTE3bC01MS45NDUtODIuMjY2aDg0LjQ3N3Y4NC4zODN6bS0xMzQuODQ4LTIwMC4wODFjMC00NS44MTkgMzcuMjg4LTgzLjA5NiA4My4xMjItODMuMDk2IDQ1LjgxNiAwIDgzLjA5MiAzNy4yNzYgODMuMDkyIDgzLjA5NnYxLjI4N2gtMTY2LjIxNHptMCAxNi4yODdoMTY2LjIxNHY4NC40MTJoLTkzLjk0OXMtMy41MjMtNS42NTYtNC4zMTItNi45NjZjLTQuODMxLTguMDM2LTYuNDQtOS43NjYtMTcuODY4LTE1Ljc3OGwtNTAuMDg2LTI2LjQ1di0zNS4yMTh6bTk1LjI0NiAxODAuMTc3cy01MC4yNzUtNzkuNjU2LTUwLjc4LTgwLjQ2M2MtNC43OTktNy42NjUtNi41MTQtOS44MjUtMTMuMjgxLTEzLjY5Mi0uNTIxLS4yOTctMTE5LjkyOS02My40MDgtMTIwLjQ4Mi02My43MTEtNS4xMDEtMi43OTUtNy44NDctMy4zMi0xMi4wNjctMS41NzItLjAzNy4wMTUtLjA3Ni4wMzQtLjExMy4wNS0uNjE2LjI1OS0xMTcuOTg1IDYyLjE5Ny0xMTcuOTg1IDYyLjE5Ny0xMS43MjcgNi4yLTEyLjk2MSA3LjI5NS0xOC44NjggMTYuNzI5LS41MDUuODA3LTUwLjc4IDgwLjQ2My01MC43OCA4MC40NjMtLjAxLjAxNi0uMDE2LjAzMy0uMDI2LjA0OWwtMTAuMjk0IDE2LjMxYy0yLjM3NSAzLjc2Ny03Ljg4NSA1LjA5Ni0xMi4wMzkgMi44OTQtMi4wNi0xLjA4Ni0zLjU1Mi0yLjg3My00LjA5My00LjkwMS0uMzE2LTEuMTg0LS40NDYtMi45ODQuNzI5LTQuODQzIDAgMCA2NS4wMzctMTAzLjEyNCA2NS44NzItMTA0LjUxMiAzLjQ0OC01LjczNCAzLjQ0OC01LjczNCAxMi4wMTctMTAuMjQzIDAgMCAxMzkuMTkzLTczLjYzOSAxNDAuMDEyLTc0LjAxMy44Mi4zNzQgMTQwLjAxMiA3NC4wMTMgMTQwLjAxMiA3NC4wMTMuMDAzLjAwMi4wMDcuMDA0LjAxMS4wMDYgOC41NTkgNC41MDIgOC41NTkgNC41MDIgMTIuMDA3IDEwLjIzOC44MzQgMS4zODggMS44MTYgMy4wMiAzLjA1OCA0Ljk4N2w2Mi44MzMgOTkuNTA5YzEuMTY4IDEuODYgMS4wMzQgMy42NjkuNzE2IDQuODU5LS41NDQgMi4wMzItMi4wMzIgMy44Mi00LjA3MiA0Ljg5OS00LjIyNiAyLjIzMS05LjY0NS45MjQtMTIuMDY5LTIuODk2bC0xMC4yOTItMTYuMzA3Yy0uMDEtLjAxNy0uMDE2LS4wMzUtLjAyNi0uMDV6bTcwLjk2OCAyMDIuNDRoLTY5LjgxMXYtODQuNDExaDY5LjgxMXptLTY5LjgxMS05OS40MTF2LTc0LjM4OWM3LjMxMyA3LjA0MiAxOC43NjMgOC44NzQgMjguMjM4IDMuODc1IDUuNi0yLjk2NSA5Ljc0Ni04LjAxNiAxMS40MzgtMTMuODk3aDMwLjEzNXY4NC40MTJoLTY5LjgxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg1LjI2MiAyMzcuODczYzAtMjguMzQ3LTIzLjA2Mi01MS40MDktNTEuNDA4LTUxLjQwOS0yOC4zMzEgMC01MS4zNzkgMjMuMDYyLTUxLjM3OSA1MS40MDlzMjMuMDQ5IDUxLjQwOSA1MS4zNzkgNTEuNDA5YzI4LjM0Ny0uMDAxIDUxLjQwOC0yMy4wNjMgNTEuNDA4LTUxLjQwOXptLTg3Ljc4NyAwYzAtMjAuMDc2IDE2LjMyLTM2LjQwOSAzNi4zNzktMzYuNDA5IDIwLjA3NSAwIDM2LjQwOCAxNi4zMzMgMzYuNDA4IDM2LjQwOXMtMTYuMzMzIDM2LjQwOS0zNi40MDggMzYuNDA5Yy0yMC4wNTktLjAwMS0zNi4zNzktMTYuMzM0LTM2LjM3OS0zNi40MDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTIuOTk1IDE2Ni40ODktMzEuOTk1LTIzLjk5NnYtMTEyLjQ5M2M4LjI4NCAwIDE1LTYuNzE2IDE1LTE1cy02LjcxNi0xNS0xNS0xNWgtOTBjLTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTV2NDQuOTkybC04OC4wMDktNjYuMDA2Yy0xNS44OTMtMTEuOTA0LTM4LjA5LTExLjkwNS01My45ODkuMDA1bC0yMDkuOTk5IDE1Ny41Yy0xOS44NTMgMTQuODkzLTIzLjg5MSA0My4xNTUtOS4wMDEgNjMuMDA0IDcuMjIgOS42MiAxNy43NTIgMTUuODUzIDI5LjY1NyAxNy41NSAyLjE1Ny4zMDggNC4zMS40NiA2LjQ1LjQ1OSA1LjEwOSAwIDEwLjEzLS44NzYgMTQuODkxLTIuNTY0djI1Mi4wNmMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDM2MGM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di0yNTIuMDY4YzQuNzYzIDEuNjg1IDkuODAzIDIuNTYgMTQuOTc4IDIuNTYgMTQuMSAwIDI3LjU2NS02LjcyOSAzNi4wMjItMTggMTQuODg4LTE5Ljg0NiAxMC44NDktNDguMTA4LTkuMDA1LTYzLjAwM3ptLTkxLjk5NS0xMzYuNDg5aDMwdjg5Ljk5MmwtMzAtMjIuNXptLTEyMCAyNzJoLTUwdi05Mmg1MHptMzAgMHYtMTA3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTgwYy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djEwN2gtMTA5Ljk5OXYtNzcuMDA0bDE2NC45OTktMTIzLjc1MiAxNjUgMTIzLjc1M3Y3Ny4wMDN6bS0yMTkuOTk5IDMwaDIwOS45OTl2MzBoLTQ1Yy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djQ1aC00NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY0NWgtOTB6bTExOS45OTkgMTUwdi0zMGg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg5MHYxNTB6bTI2Ny4wMDItMjcwLjUxMWMtMi44NjMgMy44MTUtNy4yNDUgNi4wMDQtMTIuMDI0IDYuMDA0LTMuMjYgMC02LjM2NS0xLjAzNi04Ljk3OS0yLjk5NmwtMTkxLjk5OS0xNDQuMDAzYy01LjMzMy00LTEyLjY2Ny00LTE4IDBsLTE5Mi4wMDggMTQ0LjAwOWMtMy4xOTMgMi4zOTctNy4xMzYgMy40MDgtMTEuMDk4IDIuODQyLTMuOTczLS41NjYtNy40ODgtMi42NDctOS44OTYtNS44NTYtNC45NjEtNi42MTQtMy42MTItMTYuMDM1IDMuMDA2LTIxbDIwOS45OTEtMTU3LjQ5MmMyLjY1Mi0xLjk4NyA1LjgzLTIuOTc5IDkuMDA3LTIuOTc5IDMuMTc1IDAgNi4zNDkuOTkyIDguOTk2IDIuOTc0bDIwOS45OTYgMTU3LjQ5N2M2LjYyIDQuOTY2IDcuOTY5IDE0LjM4NiAzLjAwOCAyMXoiLz4KICAgIDwvZz4KPC9zdmc+",Lxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDg1LjQsMjcyLjA2N2gtOC41MzN2LTE3OS4yYzAtNDIuNjY3LTM0LjEzMy03Ni44LTc2LjgtNzYuOGMtMzcuNzcsMC02NC45MzUsMjguMDA2LTY3Ljk3NCw2OS4wNDEKCQkJCWMtMTkuODI5LDMuNzQ4LTM0LjQyNiwyMC44MjYtMzQuNDI2LDQxLjg5MmMwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNoNjguMjY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzMwoJCQkJYzAtMjAuODMzLTE0LjI3NC0zNy43NjktMzMuNzY3LTQxLjc2N2MyLjU1LTI3LjExNiwxOC44MzYtNTIuMSw1MC44MzQtNTIuMWMzMy4yOCwwLDU5LjczMywyNi40NTMsNTkuNzMzLDU5LjczM3YxNzkuMkgyMDIuOTc1CgkJCQljLTMuODYtMTkuNjgxLTIwLjg3OC0zNC4xMzMtNDEuODQxLTM0LjEzM2MtOC41MzMtMTAuMjQtMjAuNDgtMTcuMDY3LTM0LjEzMy0xNy4wNjdjLTE2LjIxMywwLTMwLjcyLDkuMzg3LTM3LjU0NywyMy4wNAoJCQkJYy02LjgyNy0zLjQxMy0xNC41MDctNS45NzMtMjIuMTg3LTUuOTczYy0yMC45NjMsMC0zNy45ODEsMTQuNDUyLTQxLjg0MSwzNC4xMzNIMjQuNmMtMTQuNTA3LDAtMjUuNiwxMS4wOTMtMjUuNiwyNS42CgkJCQljMCwxNC41MDcsMTEuMDkzLDI1LjYsMjUuNiwyNS42aDEwLjI1NWwyMy4wMjUsOTEuMzA3YzYuODI3LDI2LjQ1MywzMC43Miw0NS4yMjcsNTguMDI3LDQ1LjIyN2g2LjgyN2wtMTEuMDkzLDIyLjE4NwoJCQkJYy0yLjU2LDQuMjY3LTAuODUzLDkuMzg3LDMuNDEzLDExLjA5M2MwLjg1MywwLjg1MywyLjU2LDAuODUzLDMuNDEzLDAuODUzYzMuNDEzLDAsNS45NzMtMS43MDcsNy42OC00LjI2N0wxNDEuMDgsNDU5LjhoMjM2LjgKCQkJCWwxNC41MDcsMjkuMDEzYzEuNzA3LDMuNDEzLDQuMjY3LDUuMTIsNy42OCw1LjEyYzEuNzA3LDAsMi41NiwwLDMuNDEzLTEuNzA3YzMuNDEzLTEuNzA3LDUuMTItNi44MjcsMy40MTMtMTEuMDkzCgkJCQlsLTEwLjY4OS0yMS4zNzljMjYuNDE5LTAuOTM4LDQ5LjI2Ni0xOS4zOSw1NS45MTYtNDQuMzI4bDIzLjI0LTkyLjE2aDEwLjA0YzE0LjUwNywwLDI1LjYtMTEuMDkzLDI1LjYtMjUuNgoJCQkJQzUxMSwyODMuMTYsNDk5LjkwNywyNzIuMDY3LDQ4NS40LDI3Mi4wNjd6IE0zNjUuMDgsMTE4LjQ2N2gtNDguNjRjMy40MTMtMTAuMjQsMTMuNjUzLTE3LjA2NywyNC43NDctMTcuMDY3CgkJCQlTMzYxLjY2NywxMDguMjI3LDM2NS4wOCwxMTguNDY3eiBNNjcuMjY3LDI1NWM3LjY4LDAsMTQuNTA3LDMuNDEzLDIwLjQ4LDkuMzg3YzEuNzA3LDIuNTYsNS4xMiwzLjQxMyw4LjUzMywyLjU2CgkJCQlzNS4xMi0zLjQxMyw1Ljk3My02LjgyN2MyLjU2LTEyLjgsMTIuOC0yMi4xODcsMjUuNi0yMi4xODdjOS4zODcsMCwxNy45Miw0LjI2NywyMi4xODcsMTIuOGMxLjcwNywzLjQxMyw1Ljk3Myw1LjEyLDkuMzg3LDQuMjY3CgkJCQljMC44NTMsMCwxLjcwNywwLDIuNTYsMGMxMS4wOTMsMCwyMC40OCw2LjgyNywyMy44OTMsMTcuMDY3SDQzLjM3M0M0Ni43ODcsMjYxLjgyNyw1Ni4xNzMsMjU1LDY3LjI2NywyNTV6IE00MzYuNzYsNDEwLjMwNwoJCQkJYy01LjEyLDE4Ljc3My0yMi4xODcsMzIuNDI3LTQxLjgxMywzMi40MjdIMTE2Ljc2Yy0xOS42MjcsMC0zNi42OTMtMTMuNjUzLTQxLjgxMy0zMi40MjdsLTIyLjE4Ny04Ny4wNGg0MDQuNDhMNDM2Ljc2LDQxMC4zMDd6CgkJCQkgTTQ4NS40LDMwNi4yaC0xNy4wNjdINDEuNjY3SDI0LjZjLTUuMTIsMC04LjUzMy0zLjQxMy04LjUzMy04LjUzM3MzLjQxMy04LjUzMyw4LjUzMy04LjUzM2g4LjUzM2gxNjIuMTMzSDQ4NS40CgkJCQljNS4xMiwwLDguNTMzLDMuNDEzLDguNTMzLDguNTMzUzQ5MC41MiwzMDYuMiw0ODUuNCwzMDYuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzA2LjIsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMyOTcuNjY3LDE3MC41MiwzMDEuMDgsMTczLjkzMywzMDYuMiwxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyMTMuMTg3YzUuMTIsMCw4LjUzMy00LjI2Nyw4LjUzMy04LjUzM3YtOS4zODdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y5LjM4NwoJCQkJQzI5Ny42NjcsMjA5Ljc3MywzMDEuMDgsMjEzLjE4NywzMDYuMiwyMTMuMTg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyNDYuNDY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzM3YtNC4yNjdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y0LjI2NwoJCQkJQzI5Ny42NjcsMjQzLjA1MywzMDEuMDgsMjQ2LjQ2NywzMDYuMiwyNDYuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDAuMzMzLDE3My45MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzdjQuMjY3QzMzMS44LDE3MC41MiwzMzUuMjEzLDE3My45MzMsMzQwLjMzMywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMzEuOCwyMDQuNjUzYzAsNS4xMiwzLjQxMyw4LjUzMyw4LjUzMyw4LjUzM2M1LjEyLDAsOC41MzMtNC4yNjcsOC41MzMtOC41MzN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJYy01LjEyLDAtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjA0LjY1M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzMxLjgsMjM3LjkzM2MwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzVjIzNy45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM3NC40NjcsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMzNjUuOTMzLDE3MC41MiwzNjkuMzQ3LDE3My45MzMsMzc0LjQ2NywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIwNC42NTNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzUzM4MywyMDguOTIsMzgzLDIwNC42NTN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM1YyMDQuNjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIzNy45MzNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCXMtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjM3LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",gxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OTYsMzQ0aC04VjI4MGEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMyVjExMmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDg4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJWMjQ4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJ2NjRIMTZhOCw4LDAsMCwwLTgsOHYzMmE4LDgsMCwwLDAsOCw4aDh2MzJhOCw4LDAsMCwwLDgsOEg1NmE3Ljk5LDcuOTksMCwwLDAsNy44NC02LjQzTDcwLjU2LDM5Mkg0NDEuNDRsNi43MiwzMy41N0E3Ljk5LDcuOTksMCwwLDAsNDU2LDQzMmgyNGE4LDgsMCwwLDAsOC04VjM5Mmg4YTgsOCwwLDAsMCw4LThWMzUyQTgsOCwwLDAsMCw0OTYsMzQ0Wk03MiwxMTJBMTYuMDIxLDE2LjAyMSwwLDAsMSw4OCw5Nkg0MjRhMTYuMDIxLDE2LjAyMSwwLDAsMSwxNiwxNlYyNDhINDI0VjIxNmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDI5NmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLDMydjMySDI0OFYyMTZhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMi0zMkgxMjBhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMiwzMnYzMkg3MlpNNDA4LDIxNnYzMkgyODBWMjE2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZoOTZBMTYuMDIxLDE2LjAyMSwwLDAsMSw0MDgsMjE2Wm0tMTc2LDB2MzJIMTA0VjIxNmExNi4wMjEsMTYuMDIxLDAsMCwxLDE2LTE2aDk2QTE2LjAyMSwxNi4wMjEsMCwwLDEsMjMyLDIxNlpNNDAsMjgwYTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZINDU2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYsMTZ2NjRINDBabTkuNDQsMTM2SDQwVjM5Mkg1NC4yNFpNNDcyLDQxNmgtOS40NGwtNC44LTI0SDQ3MlptMTYtNDBIMjRWMzYwSDQ4OFoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",jxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NS4zOTMgNDUuMzkzIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzLjUxOCwxMi43MDlMMjUuMTc4LDAuNzI4Yy0xLjUxMS0wLjk3OC0zLjQ1OC0wLjk2OC00Ljk2LDAuMDIxTDEuODU5LDEyLjcxOWMtMS4xNCwwLjc1MS0xLjQ1NSwyLjI4NC0wLjcwNSwzLjQyNAoJCQljMC43NTEsMS4xNCwyLjI4MywxLjQ1NiwzLjQyNCwwLjcwNEwyMi43MTUsNS4wMjFMNDAuODMsMTYuODU3YzAuNDE2LDAuMjY5LDAuODgxLDAuMzk2LDEuMzQxLDAuMzk2CgkJCWMwLjgxMiwwLDEuNjA0LTAuMzk3LDIuMDc3LTEuMTI3QzQ0Ljk5LDE0Ljk4LDQ0LjY2MiwxMy40NTIsNDMuNTE4LDEyLjcwOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzguODc5LDI3LjYxNmMtMC4xNTEtMC44NjUtMC45MDMtMS41MDUtMS43OC0xLjUwNWgtMS4wMDhsLTAuMzgzLTMuOTg3Yy0wLjQwOS00LjI2NC0zLjk0OC03LjQ5LTguMjMyLTcuNDlIMTcuOTIKCQkJYy00LjI4NSwwLTcuODIzLDMuMjI3LTguMjMzLDcuNDlsLTAuMzgyLDMuOTg3SDguMjk2Yy0wLjg3OCwwLTEuNjI5LDAuNjQtMS43ODIsMS41MDVsLTEuNSw4LjUwNAoJCQljLTAuMTg2LDEuMDU0LDAuMTEyLDIuMTM5LDAuOCwyLjk1N2MwLjY2MiwwLjc4OCwxLjYzNywxLjI1OCwyLjY1NywxLjI5M3YxLjQxMmMwLDEuOTk5LDEuNjAyLDMuNjEsMy42MDMsMy42MWgxLjEzOAoJCQljMS45OTksMCwzLjYyNS0xLjYxMSwzLjYyNS0zLjYxdi0xLjM4OWgxMS43MzJ2MS4zODZjMCwyLDEuNjEzLDMuNjEzLDMuNjEyLDMuNjEzaDEuMTM5YzEuOTk5LDAsMy42MTQtMS42MTMsMy42MTQtMy42MTNWNDAuMzcKCQkJYzEuMDItMC4wMzUsMS45ODktMC41MDEsMi42NDktMS4yODhjMC42ODgtMC44MiwwLjk4Mi0xLjg5OSwwLjc5OC0yLjk1NUwzOC44NzksMjcuNjE2eiBNMTEuNjQyLDM3LjExMwoJCQljLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1N2MxLjY4OCwwLDMuMDU3LDEuMzY3LDMuMDU3LDMuMDU3CgkJCUMxNC42OTksMzUuNzQ2LDEzLjMzLDM3LjExMywxMS42NDIsMzcuMTEzeiBNMTIuNDA0LDI2LjExMWwwLjM1My0zLjY3OGMwLjI1Ny0yLjY3NCwyLjQ3Ni00LjY4OCw1LjE2My00LjY4OGgwLjU1MXYxLjE1NgoJCQljMCwxLjAwMywwLjc5NywxLjgwMiwxLjc5OSwxLjgwMmg0Ljg1NmMxLjAwMiwwLDEuODEzLTAuNzk5LDEuODEzLTEuODAydi0xLjE1NWgwLjUzN2MyLjY4NywwLDQuOTA2LDIuMDE0LDUuMTYyLDQuNjg4CgkJCWwwLjM1NCwzLjY3OEwxMi40MDQsMjYuMTExTDEyLjQwNCwyNi4xMTF6IE0zMy43NSwzNy4xMTNjLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1NwoJCQljMS42ODgsMCwzLjA1NywxLjM2NywzLjA1NywzLjA1N0MzNi44MDcsMzUuNzQ2LDM1LjQzOCwzNy4xMTMsMzMuNzUsMzcuMTEzeiIvPgogICAgPC9nPgo8L3N2Zz4K",yxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDk0LjU5NCwzOTQuMjM3aC0xOS40NjFjMTIuOTU0LTE5LjU0MywyMC41MTItNDIuOTU4LDIwLjUxMi02OC4xMDljMC02OC4xNTctNTUuNDQ5LTEyMy42MDYtMTIzLjYwNi0xMjMuNjA2CgkJCWMtNy4xNzEsMC0xNC4yLDAuNjIyLTIxLjA0LDEuNzk5YzE3Ljg1My0yMS40MzUsMjguNjA4LTQ4Ljk3OSwyOC42MDgtNzguOTlDMzc5LjYwNiw1Ny4xNzQsMzI0LjE1NywxLjcyNCwyNTYsMS43MjQKCQkJYy02OC4xNTcsMC0xMjMuNjA2LDU1LjQ0OS0xMjMuNjA2LDEyMy42MDZjMCwzMC4wMTIsMTAuNzU1LDU3LjU1NSwyOC42MDgsNzguOTljLTYuODQtMS4xNzgtMTMuODY5LTEuNzk5LTIxLjA0LTEuNzk5CgkJCWMtNjguMTU3LDAtMTIzLjYwNiw1NS40NDktMTIzLjYwNiwxMjMuNjA2YzAsMjUuMTUxLDcuNTU4LDQ4LjU2NywyMC41MTIsNjguMTA5SDE3LjQwNkwwLDUxMC4yNzZoOTMuMjk0bDE1LjEzNS0yMC4xODFoNjMuMDY0CgkJCWwxNS4xMzUsMjAuMTgxaDEzOC43NDJsMTUuMTM1LTIwLjE4MWg2My4wNjRsMTUuMTM1LDIwLjE4MUg1MTJMNDk0LjU5NCwzOTQuMjM3eiBNNDY5LjUxOSwzNzMuNjdsLTEzLjE0Mi03LjU4OAoJCQljNC43MzYtOS45NTgsNy43Ni0yMC44ODEsOC42ODgtMzIuMzg3aDE1LjE3NUM0NzkuMjU0LDM0Ny45NDgsNDc1LjUwMywzNjEuNDUsNDY5LjUxOSwzNzMuNjd6IE00MDkuODc3LDM5NC41MzN2LTEzNi44MQoJCQljMjQuMDQ1LDEzLjM1NCw0MC4zNjEsMzkuMDA1LDQwLjM2MSw2OC40MDVTNDMzLjkyMiwzODEuMTc4LDQwOS44NzcsMzk0LjUzM3ogTTQxOS41ODEsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMNDE5LjU4MSw0MjMuNjA4eiBNNDQ4Ljc4NywzNzkuMTc2CgkJCWwxMy4xNDgsNy41OTFjLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzQzNC4zMzYsMzk2LjQ2NCw0NDIuMzc1LDM4OC40MjUsNDQ4Ljc4NywzNzkuMTc2egoJCQkgTTQ4MC4yNDEsMzE4LjU2aC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEM0NzUuNTAzLDI5MC44MDUsNDc5LjI1NCwzMDQuMzA3LDQ4MC4yNDEsMzE4LjU2egoJCQkgTTQzMi42NzgsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTkKCQkJTDQzMi42NzgsMjM2LjIzMXogTTQxMS45OTQsMjQxLjc4OWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4di0xNS4xNzZjMTQuMjUyLDAuOTg3LDI3Ljc1NCw0LjczOCwzOS45NzQsMTAuNzIyCgkJCUw0MTEuOTk0LDI0MS43ODl6IE0zOTQuNzQyLDI1MS4zdjE0OS42NTVjLTcuMTg5LDIuMTg2LTE0LjgxLDMuMzcyLTIyLjcwMywzLjM3MmMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zCgkJCWM3LjE4OS0yLjE4NiwxNC44MS0zLjM3MiwyMi43MDMtMy4zNzJDMzc5LjkzMiwyNDcuOTI4LDM4Ny41NTIsMjQ5LjExNCwzOTQuNzQyLDI1MS4zeiBNMTc3LjgsMzk0LjUzM3YtMTM2LjgxCgkJCWMyNC4wNDUsMTMuMzU0LDQwLjM2MSwzOS4wMDUsNDAuMzYxLDY4LjQwNVMyMDEuODQ1LDM4MS4xNzgsMTc3LjgsMzk0LjUzM3ogTTE4Ny41MDQsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMMTg3LjUwNCw0MjMuNjA4eiBNMjgyLjE0MiwyNjUuNDg4CgkJCWM3Ljc5NC0xMS41MTcsMTcuNzQtMjEuNDYzLDI5LjI1Ni0yOS4yNTZsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OUwyODIuMTQyLDI2NS40ODh6IE0yODcuNywyODYuMTczCgkJCWMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3aC0xNS4xNzVjMC45ODctMTQuMjUzLDQuNzM3LTI3Ljc1NCwxMC43MjItMzkuOTc1TDI4Ny43LDI4Ni4xNzN6IE0zMTYuNjQsMjE1LjIyNwoJCQlsLTcuNTkxLTEzLjE0OGM5LjI0OS02LjQxMiwxNy4yODctMTQuNDUsMjMuNjk5LTIzLjY5OWwxMy4xNDgsNy41OTFDMzM4LjEwMywxOTcuNDg3LDMyOC4xNTcsMjA3LjQzMywzMTYuNjQsMjE1LjIyN3oKCQkJIE0yOTMuODM5LDE5My43MzZWNTYuOTI1QzMxNy44ODQsNzAuMjgsMzM0LjIsOTUuOTMsMzM0LjIsMTI1LjMzMVMzMTcuODg0LDE4MC4zODEsMjkzLjgzOSwxOTMuNzM2eiBNMjk1Ljk1NSwyMDkuNjY5CgkJCWw3LjU4NywxMy4xNDJjLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVDMjc1LjA3NCwyMTcuNDMsMjg1Ljk5NiwyMTQuNDA3LDI5NS45NTUsMjA5LjY2OXogTTI3Ny4wNCwyNDcuMTM4CgkJCWMtOC45NTEsMTAuNzQ3LTE2LjExOSwyMy4wMjgtMjEuMDQsMzYuMzg5Yy00LjkyMS0xMy4zNjEtMTIuMDg5LTI1LjY0MS0yMS4wNC0zNi4zODljNi44NCwxLjE3OCwxMy44NjksMS43OTksMjEuMDQsMS43OTkKCQkJQzI2My4xNzEsMjQ4LjkzNywyNzAuMiwyNDguMzE1LDI3Ny4wNCwyNDcuMTM4eiBNMjQ4LjE2NCwzMTguNTZoLTE1LjE3NWMtMC45MjctMTEuNTA2LTMuOTUxLTIyLjQyOS04LjY4OC0zMi4zODdsMTMuMTQyLTcuNTg4CgkJCUMyNDMuNDI2LDI5MC44MDUsMjQ3LjE3NywzMDQuMzA3LDI0OC4xNjQsMzE4LjU2eiBNMjQ4LjQzMSwyMzMuNTMzYy0xNC4yNTItMC45ODctMjcuNzU0LTQuNzM4LTM5Ljk3NC0xMC43MjJsNy41ODctMTMuMTQyCgkJCWM5Ljk1OCw0LjczNiwyMC44ODEsNy43NiwzMi4zODcsOC42ODhWMjMzLjUzM3ogTTIxOC4xNjEsMTkzLjczNmMtMjQuMDQ1LTEzLjM1NC00MC4zNjEtMzkuMDA1LTQwLjM2MS02OC40MDUKCQkJYzAtMjkuNCwxNi4zMTYtNTUuMDUxLDQwLjM2MS02OC40MDVWMTkzLjczNnogTTE3OS4yNTEsMTc4LjM3OWM2LjQxMiw5LjI0OSwxNC40NSwxNy4yODcsMjMuNjk5LDIzLjY5OWwtNy41OTEsMTMuMTQ4CgkJCWMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDE3OS4yNTEsMTc4LjM3OXogTTIwMC42MDEsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTYKCQkJbC0xMy4xNDgsNy41OTFjLTYuNDEyLTkuMjQ5LTE0LjQ1LTE3LjI4Ny0yMy42OTktMjMuNjk5TDIwMC42MDEsMjM2LjIzMXogTTIxNi43MSwzNzkuMTc2bDEzLjE0OCw3LjU5MQoJCQljLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzIwMi4yNTksMzk2LjQ2NCwyMTAuMjk4LDM4OC40MjUsMjE2LjcxLDM3OS4xNzZ6IE0yMjQuMywzNjYuMDgyCgkJCWM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1Yy0wLjk4NywxNC4yNTMtNC43MzcsMjcuNzU0LTEwLjcyMiwzOS45NzVMMjI0LjMsMzY2LjA4MnogTTI1NiwzNjguNzI5CgkJCWMzLjMzMiw5LjA0NSw3LjY5NywxNy41OTMsMTIuOTQ0LDI1LjUwOGgtMjUuODg4QzI0OC4zMDMsMzg2LjMyMSwyNTIuNjY4LDM3Ny43NzQsMjU2LDM2OC43Mjl6IE0yNjMuODM2LDMzMy42OTVoMTUuMTc1CgkJCWMwLjkyNywxMS41MDYsMy45NTEsMjIuNDI5LDguNjg4LDMyLjM4N2wtMTMuMTQyLDcuNTg4QzI2OC41NzQsMzYxLjQ1LDI2NC44MjMsMzQ3Ljk0OCwyNjMuODM2LDMzMy42OTV6IE0yOTUuMjksMzc5LjE3NgoJCQljNi40MTIsOS4yNDksMTQuNDUsMTcuMjg3LDIzLjY5OSwyMy42OTlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDI5NS4yOSwzNzkuMTc2egoJCQkgTTI5My44MzksMzI2LjEyOGMwLTI5LjQsMTYuMzE2LTU1LjA1MSw0MC4zNjEtNjguNDA1djEzNi44MUMzMTAuMTU1LDM4MS4xNzgsMjkzLjgzOSwzNTUuNTI4LDI5My44MzksMzI2LjEyOHogTTMzMi4wODQsNDEwLjQ2NgoJCQljOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDMzMi4wODQsNDEwLjQ2NnogTTM2NC40NzEsMjE3LjkyNVYyMzMuMQoJCQljLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMzM2LjcxNiwyMjIuNjYzLDM1MC4yMTgsMjE4LjkxMiwzNjQuNDcxLDIxNy45MjV6IE0zNTMuNDgsMTcyLjg3MwoJCQlsLTEzLjE0Mi03LjU4OGM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1QzM2My4yMTYsMTQ3LjE1MSwzNTkuNDY1LDE2MC42NTMsMzUzLjQ4LDE3Mi44NzN6IE0zNjQuMjAyLDExNy43NjMKCQkJaC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEMzNTkuNDY1LDkwLjAwOCwzNjMuMjE2LDEwMy41MSwzNjQuMjAyLDExNy43NjN6IE0zMTYuNjQsMzUuNDM0CgkJCWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTlMMzE2LjY0LDM1LjQzNHogTTI5NS45NTYsNDAuOTkyCgkJCWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4VjE3LjEyOGMxNC4yNTIsMC45ODcsMjcuNzU0LDQuNzM4LDM5Ljk3NCwxMC43MjJMMjk1Ljk1Niw0MC45OTJ6IE0yNzguNzAzLDUwLjUwM3YxNDkuNjU1CgkJCWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyYy03Ljg5NCwwLTE1LjUxNC0xLjE4Ny0yMi43MDMtMy4zNzJWNTAuNTAzYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MgoJCQlDMjYzLjg5NCw0Ny4xMzEsMjcxLjUxNCw0OC4zMTcsMjc4LjcwMyw1MC41MDN6IE0yNDguNDMyLDE3LjEyOHYxNS4xNzVjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDIKCQkJQzIyMC42NzgsMjEuODY2LDIzNC4xOCwxOC4xMTUsMjQ4LjQzMiwxNy4xMjh6IE0xOTUuMzYsMzUuNDM0bDcuNTkxLDEzLjE0OGMtOS4yNDksNi40MTItMTcuMjg3LDE0LjQ1LTIzLjY5OSwyMy42OTkKCQkJbC0xMy4xNDgtNy41OTFDMTczLjg5Nyw1My4xNzQsMTgzLjg0Myw0My4yMjgsMTk1LjM2LDM1LjQzNHogTTE1OC41Miw3Ny43ODhsMTMuMTQyLDcuNTg4Yy00LjczNiw5Ljk1OC03Ljc2LDIwLjg4MS04LjY4OCwzMi4zODcKCQkJaC0xNS4xNzVDMTQ4Ljc4NSwxMDMuNTEsMTUyLjUzNSw5MC4wMDgsMTU4LjUyLDc3Ljc4OHogTTE1OC41MiwxNzIuODczYy01Ljk4NC0xMi4yMi05LjczNS0yNS43MjItMTAuNzIyLTM5Ljk3NWgxNS4xNzUKCQkJYzAuOTI3LDExLjUwNiwzLjk1MSwyMi40MjksOC42ODgsMzIuMzg3TDE1OC41MiwxNzIuODczeiBNMTg3LjUwNCwyMjguNjQ3bC03LjU4NywxMy4xNDJjLTkuOTU4LTQuNzM2LTIwLjg4MS03Ljc2LTMyLjM4Ny04LjY4OAoJCQl2LTE1LjE3NkMxNjEuNzgyLDIxOC45MTIsMTc1LjI4NCwyMjIuNjY0LDE4Ny41MDQsMjI4LjY0N3ogTTE2Mi42NjUsMjUxLjN2MTQ5LjY1NWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyCgkJCWMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MkMxNDcuODU1LDI0Ny45MjgsMTU1LjQ3NSwyNDkuMTE0LDE2Mi42NjUsMjUxLjN6CgkJCSBNNjEuNzYyLDMyNi4xMjhjMC0yOS40LDE2LjMxNi01NS4wNTEsNDAuMzYxLTY4LjQwNXYxMzYuODFDNzguMDc4LDM4MS4xNzgsNjEuNzYyLDM1NS41MjgsNjEuNzYyLDMyNi4xMjh6IE04Ni45MTMsNDAyLjg3NgoJCQlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2bDEzLjE0OC03LjU5MUM2OS42MjUsMzg4LjQyNSw3Ny42NjQsMzk2LjQ2NCw4Ni45MTMsNDAyLjg3NnoKCQkJIE0xMDAuMDA3LDQxMC40NjZjOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDEwMC4wMDcsNDEwLjQ2NnoKCQkJIE0xMzIuMzk0LDIxNy45MjVWMjMzLjFjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMTA0LjYzOSwyMjIuNjYzLDExOC4xNDEsMjE4LjkxMiwxMzIuMzk0LDIxNy45MjUKCQkJeiBNNzkuMzIyLDIzNi4yMzFsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OWwtMTMuMTQ4LTcuNTkxCgkJCUM1Ny44NTksMjUzLjk3MSw2Ny44MDUsMjQ0LjAyNSw3OS4zMjIsMjM2LjIzMXogTTQyLjQ4MSwyNzguNTg1bDEzLjE0Miw3LjU4OGMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3SDMxLjc1OQoJCQlDMzIuNzQ2LDMwNC4zMDcsMzYuNDk3LDI5MC44MDUsNDIuNDgxLDI3OC41ODV6IE0zMS43NTksMzMzLjY5NWgxNS4xNzVjMC45MjcsMTEuNTA2LDMuOTUxLDIyLjQyOSw4LjY4OCwzMi4zODdMNDIuNDgsMzczLjY3CgkJCUMzNi40OTcsMzYxLjQ1LDMyLjc0NiwzNDcuOTQ4LDMxLjc1OSwzMzMuNjk1eiBNNDI2LjI3NCw0OTUuMTRsLTE1LjEzNS0yMC4xODFoLTc4LjJsLTE1LjEzNSwyMC4xODFIMTk0LjE5N2wtMTUuMTM1LTIwLjE4MQoJCQloLTc4LjJMODUuNzI2LDQ5NS4xNEgxNy41NzVsMTIuODY1LTg1Ljc2OGgxOC4yM2MyMi42MiwyNC43ODYsNTUuMTcxLDQwLjM2MSw5MS4yOTEsNDAuMzYxczY4LjY3MS0xNS41NzUsOTEuMjkxLTQwLjM2MWg0OS40OTQKCQkJYzIyLjYyLDI0Ljc4Niw1NS4xNzEsNDAuMzYxLDkxLjI5MSw0MC4zNjFzNjguNjcxLTE1LjU3NSw5MS4yOTEtNDAuMzYxaDE4LjIzbDEyLjg2NSw4NS43NjhINDI2LjI3NHoiLz4KICAgICAgICA8cmVjdCB4PSIzMDUuOTQ4IiB5PSIxMTYuNzU1IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjE5MC45MTkiIHk9IjExNi43NTUiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTExLjIwNSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyNDguNDMzIiB5PSI2NS43OTkiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMzAuMjcxIi8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTcxLjc0NyIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSI0MjEuOTg2IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjMwNi45NTciIHk9IjMxNy41NTIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzY0LjQ3MiIgeT0iMzEyLjAwMiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIzNjQuNDcyIiB5PSIyNjYuNTk2IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjMwLjI3MSIvPgogICAgICAgIDxyZWN0IHg9IjM2NC40NzIiIHk9IjM3Mi41NDQiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTg5LjkxIiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9Ijc0Ljg4IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjEzMi4zOTUiIHk9IjMxMi4wMDIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTMyLjM5NSIgeT0iMjY2LjU5NiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIzMC4yNzEiLz4KICAgICAgICA8cmVjdCB4PSIxMzIuMzk1IiB5PSIzNzIuNTQ0IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ2MS4zODciIHk9IjQ3MC44ODEiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTg4OSAtMC4xNDgzIDAuMTQ4MyAwLjk4ODkgLTY1Ljc3MiA3NC44NDExKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ1Ni4yMSIgeT0iNDMxLjkzNSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODg5IC0wLjE0ODMgMC4xNDgzIDAuOTg4OSAtNjAuNzE5OSA3My42OTAzKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjI0LjE0NSIvPgogICAgICAgIDxyZWN0IHg9IjI0OC40MzMiIHk9IjQ2NC44NyIgd2lkdGg9IjQ1LjQwNiIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMTguMTYyIiB5PSI0NjQuODciIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjYzLjU2OSIgeT0iNDI0LjUwOSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMzMuMjk4IiB5PSI0MjQuNTA5IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjM2LjEyNyIgeT0iNDM2LjQ2MSIgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNDgzIC0wLjk4ODkgMC45ODg5IDAuMTQ4MyAtMzk4LjA2NzUgNDI1Ljg0MjcpIgogICAgICAgICAgICAgIHdpZHRoPSIyNC4xNDUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzUuNDY4IiB5PSI0NzAuODYiIHRyYW5zZm9ybT0ibWF0cml4KDAuMTQ4MyAtMC45ODg5IDAuOTg4OSAwLjE0ODMgLTQzNi40ODM4IDQ1MC4wMzI1KSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgPC9nPgo8L3N2Zz4K",Txe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik02MSwyMUgzYTEsMSwwLDAsMCwwLDJINjFhMSwxLDAsMCwwLDAtMloiLz4KICAgICAgICA8cGF0aCBkPSJNNjEsMkg0OWExLDEsMCwwLDAtMSwxVjE3SDQ2di0uNzY0YTEwLjUzMywxMC41MzMsMCwwLDAtMS4xLTQuNjgzQTguNTIyLDguNTIyLDAsMCwxLDQ0LDcuNzY0VjNhMSwxLDAsMCwwLTEtMUgzOWExLDEsMCwwLDAtMSwxVjcuNzY0YTguNTIyLDguNTIyLDAsMCwxLS45LDMuNzg5Yy0uMDM5LjA4LS4wNjcuMTY1LS4xLjI0Ni0uMDM4LS4wODEtLjA2Ni0uMTY2LS4xLS4yNDZBOC41MjIsOC41MjIsMCwwLDEsMzYsNy43NjRWM2ExLDEsMCwwLDAtMS0xSDMxYTEsMSwwLDAsMC0xLDFWNy43NjRhOC41MjIsOC41MjIsMCwwLDEtLjg5NSwzLjc4OUExMC41MzMsMTAuNTMzLDAsMCwwLDI4LDE2LjIzNlYxN0gxOFYxMC40MTRhMi4zOTQsMi4zOTQsMCwwLDEsLjcwNy0xLjcwNkE0LjM4NSw0LjM4NSwwLDAsMCwyMCw1LjU4NlY0aDJWNS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMjQsMTAuNDE0VjE0YTEsMSwwLDAsMCwyLDBWMTAuNDE0YTQuMzg1LDQuMzg1LDAsMCwwLTEuMjkzLTMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDI0LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxOWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC41MTUsNC41MTUsMCwwLDAsMTcsNy42NDlhNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDE2LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxMWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC4zODUsNC4zODUsMCwwLDAsOCwxMC40MTRWMTdIM2ExLDEsMCwwLDAsMCwySDYxYTEsMSwwLDAsMCwwLTJINTBWMTRINjBhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw2MSwyWk00Miw0VjdINDBWNFpNMTAuNzA3LDguNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDEyLDUuNTg2VjRoMlY1LjU4NmE0LjM4NSw0LjM4NSwwLDAsMCwxLjI5MywzLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwxNiwxMC40MTRWMTJIMTBWMTAuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDEwLjcwNyw4LjcwOFpNMTAsMTRoNnYzSDEwWm0yMCwyLjIzNmE4LjUyMiw4LjUyMiwwLDAsMSwuODk1LTMuNzg5QTEwLjUzMywxMC41MzMsMCwwLDAsMzIsNy43NjRWNGgyVjcuNzY0YTEwLjUzMywxMC41MzMsMCwwLDAsMS4xLDQuNjgzLDguNTIyLDguNTIyLDAsMCwxLC45LDMuNzg5VjE3SDMwWk0zOCwxN3YtLjc2NGE4LjUyMiw4LjUyMiwwLDAsMSwuOS0zLjc4OUExMC41NDEsMTAuNTQxLDAsMCwwLDM5LjkyNCw5aDIuMTUyYTEwLjU0MSwxMC41NDEsMCwwLDAsMS4wMjksMy40NDcsOC41MjIsOC41MjIsMCwwLDEsLjksMy43ODlWMTdaTTYwLDRWNkg1MFY0Wk01MCwxMlY4SDYwdjRaIi8+CiAgICAgICAgPHBhdGggZD0iTTYxLDQ0SDNhMSwxLDAsMCwwLDAsMkg2MFY2MEg0NlY0OWExLDEsMCwwLDAtMiwwVjYwSDQyVjUzYTEsMSwwLDAsMC0xLTFIMjZhMSwxLDAsMCwwLTEsMXY3SDIyVjQ5YTEsMSwwLDAsMC0xLTFINWExLDEsMCwwLDAtMSwxVjYwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsMS0xVjQ1QTEsMSwwLDAsMCw2MSw0NFpNNDAsNTZIMzdWNTRoM1ptLTUsMEgzMlY1NGgzWm0tNS0ydjJIMjdWNTRaTTIwLDUyLjM4MmEzLjk0NywzLjk0NywwLDAsMC02LDBWNTBoNlpNMTksNTVhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTksNTVaTTYsNTRoNnYySDZabTYtNHYySDZWNTBaTTYsNThoNnYySDZabTgsMlY1Ny42MThhMy45NDcsMy45NDcsMCwwLDAsNiwwVjYwWm0xMy0yaDN2MkgyN1ptNSwwaDN2MkgzMlptNSwyVjU4aDN2MloiLz4KICAgICAgICA8cGF0aCBkPSJNNTcsNTZhMSwxLDAsMCwwLDEtMVY1MWExLDEsMCwwLDAtMS0xSDQ5YTEsMSwwLDAsMC0xLDF2NGExLDEsMCwwLDAsMSwxWm0tNy00aDZ2Mkg1MFoiLz4KICAgICAgICA8cGF0aCBkPSJNNjAsMjkuMTg0VjI2YTEsMSwwLDAsMC0xLTFINTVhMSwxLDAsMCwwLTEsMXYzLjE4NEEzLDMsMCwwLDAsNTIsMzJ2N2EyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDlWMzRhMSwxLDAsMCwwLDAtMkg0MWExLDEsMCwwLDAsMCwydjZIMzhWMzFhMSwxLDAsMCwwLTEtMUgyNWExLDEsMCwwLDAtMSwxdjlIMjJWMzlhMSwxLDAsMCwwLTIsMHYxSDE0VjMzLjQxNGEyLjM5NCwyLjM5NCwwLDAsMSwuNzA3LTEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDE2LDI4LjU4NlYyN2gydjEuNTg2YTQuMzg1LDQuMzg1LDAsMCwwLDEuMjkzLDMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDIwLDMzLjQxNFYzNWExLDEsMCwwLDAsMiwwVjMzLjQxNGE0LjM4NSw0LjM4NSwwLDAsMC0xLjI5My0zLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwyMCwyOC41ODZWMjZhMSwxLDAsMCwwLTEtMUgxNWExLDEsMCwwLDAtMSwxdjIuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDYsNC41MTUsNC41MTUsMCwwLDAtLjI5My4zNTcsNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDEyLDI4LjU4NlYyNmExLDEsMCwwLDAtMS0xSDdhMSwxLDAsMCwwLTEsMXYyLjU4NmEyLjM5NCwyLjM5NCwwLDAsMS0uNzA3LDEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDQsMzMuNDE0VjQwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsLjctMS43MTNBMi45NjQsMi45NjQsMCwwLDAsNjIsMzlWMzJBMywzLDAsMCwwLDYwLDI5LjE4NFpNNi43MDcsMzEuNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDgsMjguNTg2VjI3aDJ2MS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMTIsMzMuNDE0VjM1SDZWMzMuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDYuNzA3LDMxLjcwOFpNNiwzN2g2djNINlpNNTYsMjdoMnYySDU2Wm0tMSw0aDRhMSwxLDAsMCwxLDEsMXYzSDU0VjMyQTEsMSwwLDAsMSw1NSwzMVpNMzYsMzZIMzJWMzJoNFptLTYtNHYySDI2VjMyWm0tNCw0aDR2NEgyNlptNiw0VjM4aDR2MlptMTEsMFYzNGg0djZabTEyLDBhMSwxLDAsMCwxLTEtMVYzN2g2djJhMSwxLDAsMCwxLTEsMVoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",dxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Dxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",hxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4yNzMgNTEyLjI3MyIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy44OTEgMjM4LjM5OWMtNi43MjMtMzUuODgxLTIxLjg1My02Ni45MDUtNDMuNzU1LTg5LjcxOC05Ljg0NS0xMC4yNTMtMjEuNDU2LTE5Ljc1LTM0LjUxNC0yOC4yMjctMTQuOTQtOS42OTktMzIuMTkyLTE4LjQzOC01NC4yOTMtMjcuNTAzLTkuNjg0LTMuOTcyLTE5LjM3NS03LjYzNy0yOC40MDYtMTEuMDA1LTE0LjY0Mi01LjQ2LTMwLjA2NC0xMC45NTgtNDUuODQzLTE2LjMzNy01LjQyNy0xLjg1MS0xMC45MjEtMy42MDYtMTYuMjM0LTUuMzAzLTguNTA1LTIuNzE3LTE3LjMtNS41MjctMjUuNzcxLTguNzIxLTUuMjI0LTEuOTctNy40MjYtMy40NjQtOC4zMjEtNC4yNTguMDQ2LS4wNTYuMDk2LS4xMTUuMTUxLS4xNzcgNC4wNDgtNC42MTUgMjcuNjAzLTIzLjEwNSA0MS41MDEtMzMuNjc3IDIuNTYyLTEuOTQ5IDMuNTk1LTUuMzE1IDIuNTY2LTguMzY1cy0zLjg4OS01LjEwNC03LjEwNy01LjEwNGwtMTU0LjA1Mi0uMDA0Yy0xLjMyMSAwLTIuNjE5LjM0OS0zLjc2MiAxLjAxMi0xNy4yODIgMTAuMDIxLTMxLjYyMyAyNS43OS0zOS4zNDYgNDMuMjYyLTguOTQ2IDIwLjI0LTkuMDE2IDQxLjQyNS0uMjAyIDYxLjI2MyAxMi4wNyAyNy4xNjcgMzcuNTY3IDQyLjIzNyA2MC4wNjMgNTUuNTMzIDUuODcgMy40NjkgMTEuNDE0IDYuNzQ2IDE2LjY1NSAxMC4xNjcgMy4wOTUgMi4wMiA2LjI3MyA0LjAwMyA5LjM0NyA1LjkyMiAxMS41NDUgNy4yMDggMjIuNDUgMTQuMDE2IDMxLjE2NyAyMy42MDQgOC45ODEgOS44NzcgMTEuNjkzIDIyLjUwMSA3Ljg0MiAzNi41MDctOC45NDggMzIuNTQ0LTM1LjU0NCA2MS43ODEtNTkuMDA5IDg3LjU3Ni00LjM0MiA0Ljc3My04LjQ0MiA5LjI4MS0xMi40MDkgMTMuNzc2LTExLjEwNyAxMi41ODctMjcuMzkzIDMwLjg5LTQ0LjYzNCA1MC4yNjctNTYuODY5IDYzLjkxNC05NC40MTUgMTA2LjIyOS05OCAxMTEuODQ2LTEuNDc0IDIuMzA5LTEuNTcxIDUuMjM4LS4yNTQgNy42NCAxLjMxNiAyLjQwMiAzLjgzOCAzLjg5NSA2LjU3NyAzLjg5NWw0NDYuMzE2LjAwM2guMDAxYzMuMjUxIDAgNi4xMzItMi4wOTQgNy4xMzUtNS4xODcgMTEuNjU5LTM1Ljk2IDIyLjIxMi03Mi4yMzIgMzUuMjgzLTEyMS4yODMgMTUuNTkxLTU4LjUxNSAxOS4xODUtMTA1LjM1NCAxMS4zMDgtMTQ3LjQwNHptLTI1LjgwMyAxNDMuNTQzYy0xMi4zNyA0Ni40Mi0yMi40NjQgODEuMzA1LTMzLjM4NSAxMTUuMzMxbC0yNi45NC0uMDAyYzEuMjg4LTMuOTQ4IDIuNTczLTcuOTAzIDMuODYxLTExLjg0MiAxMS41OC0zNS40MSAyMi44NzctNzAuOTI1IDMyLjUwNC0xMDYuODg4IDEuNTM1LTUuNzQgMy4xMjItMTEuNjc0IDQuNjctMTcuNjQ1IDEuMDQtNC4wMDktMS4zNjgtOC4xMDMtNS4zNzgtOS4xNDItNC4wMDktMS4wMzgtOC4xMDIgMS4zNjktOS4xNDIgNS4zNzgtMS41MzMgNS45MTQtMy4xMTMgMTEuODItNC42NDEgMTcuNTMxLTkuNDM5IDM1LjI3NS0yMC43OTcgNzEuMDI1LTMyLjI3IDEwNi4xMDQtMS43OTcgNS40OTMtMy41OTUgMTAuOTkyLTUuMzg5IDE2LjUwNGgtMTU3Ljk3OGMtLjQzMi0xLjg1OC0xLjU2Ny0zLjU1My0zLjMwOS00LjY0OS0zLjUwNC0yLjIwNi04LjEzNi0xLjE1Mi0xMC4zNDIgMi4zNTMtLjQ5NS43ODYtLjk3MyAxLjU0Mi0xLjQ0OSAyLjI5NmgtMTU2LjIzNGMyNC40NzMtMzAuNTUxIDkxLjg5Ny0xMTIuMDczIDEyNC4yMzgtMTQ4LjcyNCAxNy4yNC0xOS41MzcgMzEuMzY4LTM4LjcyNiA0MS45OTQtNTcuMDMzIDE3LjU5OC0zMC4zMTkgMjQuNTY3LTU2Ljc2NSAyMC43MTYtNzguNjAxLTguMjczLTQ2LjkwOS00NS4xMjctNjUuNzY0LTc3LjY0My04Mi4zOTgtMy40MzktMS43NTktNi45OTUtMy41NzktMTAuNDA3LTUuMzc1bC0uNjA5LS4zMjFjLTMuNjYzLTEuOTMzLTguMi0uNTMtMTAuMTMzIDMuMTMzcy0uNTMgOC4yIDMuMTMzIDEwLjEzM2wuNjE2LjMyNWMzLjQ5NiAxLjg0IDcuMDkxIDMuNjggMTAuNTY4IDUuNDU4IDMyLjI1NyAxNi41MDIgNjIuNzI2IDMyLjA5IDY5LjcwMyA3MS42NSAzLjIyIDE4LjI1Ni0zLjE0NSA0MS4yOTEtMTguOTE3IDY4LjQ2Ni05Ljk4OSAxNy4yMS0yMy45MTQgMzYuMTA0LTQwLjI2OCA1NC42MzgtMzUuMjg2IDM5Ljk4OC0xMTYuMDk4IDEzNy44MzgtMTMyLjA1NiAxNTguNjQ4aC0zMy44NWMxNy44ODItMjAuNzUzIDU2Ljc0NC02NC40MjggODYuOTgxLTk4LjQxMSAxNy4yNTItMTkuMzg5IDMzLjU0Ny0zNy43MDIgNDQuNjc1LTUwLjMxMyAzLjg5Mi00LjQxIDcuOTU2LTguODc4IDEyLjI1OC0xMy42MDcgMjQuNTk3LTI3LjA0IDUyLjQ3Ni01Ny42ODggNjIuMzc1LTkzLjY5MyA1LjIwNy0xOC45MzkgMS4yMjctMzYuOS0xMS4yMDctNTAuNTc1LTE2LjQyMy0xOC4wNjItMzkuODYzLTMwLjIzNy02MC42MzUtNDIuNTE0LTIxLjU2NS0xMi43NDYtNDMuODY0LTI1LjkyNi01My45ODctNDguNzEtMTUuMDIzLTMzLjgxNSA0LjM2Ni02Ny43MTggMzEuNjY3LTg0LjQ0N2gxMy42MzljLTIwLjU1NyAxNS4wNzQtMzIuNTY4IDMwLjMwNS0zNi40OTQgNDYuMTk1LTMuMTgzIDEyLjg4Mi0uODEzIDI1Ljc1NiA3LjA0NSAzOC4yNjUgNC4zMjQgNi44ODMgOS45MDQgMTMuMTEyIDE3LjA1OCAxOS4wNDIgMy4xODggMi42NDMgNy45MTYgMi4yMDEgMTAuNTYxLS45ODggMi42NDMtMy4xODkgMi4yMDEtNy45MTctLjk4OC0xMC41NjEtNS45MDktNC44OTgtMTAuNDY1LTkuOTU5LTEzLjkyOS0xNS40NzItNS42ODgtOS4wNTYtNy4zODQtMTcuNzg2LTUuMTg1LTI2LjY4OCAzLjk3OS0xNi4xMDMgMjAuNTY4LTMyLjg1MSA0OS4zMTQtNDkuNzkzaDUwLjcxNWMtMTMuMzA2IDEwLjQ3OS0yOC4xMDUgMjQuNzc1LTI0LjA5NSA0Mi4zNTMgMy45NzkgMTcuNDQxIDI0LjE3NyAyNy4xNzkgMzkuMTc4IDMzLjQ3MiAxOS41NTggOC4yMDUgMzkuODM1IDE0LjcyIDU5LjQ0NSAyMS4wMjEgMzIuMDg4IDEwLjMxIDY1LjI2OSAyMC45NzEgOTUuMDAzIDM5LjEzNyAzMy45MzQgMjAuNzMxIDU1LjUxOCA1MS4xNTggNjIuNDIgODcuOTg5IDQuNDc4IDIzLjg5NiAzLjQyNiA1MC42MzQtMy4zMTEgODQuMTUybC0uMTA3LjUzNmMtLjgxNCA0LjA2MiAxLjgxOCA4LjAxNCA1Ljg4IDguODI4LjQ5OC4xLjk5My4xNDcgMS40ODEuMTQ3IDMuNTAxIDAgNi42MzItMi40NjQgNy4zNDYtNi4wMjhsLjEwNi0uNTMyYzcuMTI4LTM1LjQ2MiA4LjE5MS02NC4wMTggMy4zNDktODkuODY3LTcuNzA3LTQxLjEyMy0zMS42ODYtNzUuMDItNjkuMzQ0LTk4LjAyNi0zMS4yNjItMTkuMDk5LTY1LjMwOS0zMC4wMzktOTguMjM0LTQwLjYxOC0xOS4zMDctNi4yMDMtMzkuMjcxLTEyLjYxOC01OC4yMy0yMC41NzItNS43ODctMi40MjktMTAuNzEyLTQuOTEyLTE1LjA1Ny03LjU5LTUuNDY0LTMuMzY4LTEzLjcyMS04LjQ1Ny0xNS4zMDItMTUuMzg4LTIuNTc5LTExLjMwOSAxNC4zMy0yMy45OTggMjUuNTItMzIuMzk1IDMuMjE2LTIuNDE0IDYuMTA2LTQuNTg1IDguNDczLTYuNjE3IDAgMCAxMy43ODkgMCAxMy43ODcuMDAyLTkuODkyIDcuNzg2LTM0LjE1NiAxOS43MzMtMzAuMTc0IDM1LjY1MyAxLjk5OCA3Ljk4NiAxMC42ODggMTIuMTkxIDE4LjAzNSAxNC45NjIgMTMuOTgxIDUuMjcyIDI4LjMyNCA5LjM2NyA0Mi40NTYgMTQuMTg2IDE1LjY0NCA1LjMzNSAzMC45MzMgMTAuNzgzIDQ1LjQ0MiAxNi4xOTUgOC45MTMgMy4zMjUgMTguNDcgNi45MzggMjcuOTU3IDEwLjgyOSAyMS4yMTQgOC43MDEgMzcuNjc5IDE3LjAyOCA1MS44MTYgMjYuMjA2IDEyLjA5NCA3Ljg1MiAyMi44MTMgMTYuNjExIDMxLjg2MSAyNi4wMzUgMTkuODc1IDIwLjcwMSAzMy42NDggNDkuMDg4IDM5LjgzMSA4Mi4wOTEgNy40NTEgMzkuNzcxIDMuOTM3IDg0LjUwNS0xMS4wNTggMTQwLjc4MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ0LjM2NSAxOTkuNDA3YzEuNDYxIDIuMDczIDMuNzggMy4xOCA2LjEzOCAzLjE4IDEuNDkyIDAgMy0uNDQ0IDQuMzEzLTEuMzcgMy4zODYtMi4zODYgNC4xOTYtNy4wNjUgMS44MTEtMTAuNDUxLTQuMTA5LTUuODMxLTguODExLTExLjI5My0xMy45NzMtMTYuMjMzLTIuOTkzLTIuODY1LTcuNzQxLTIuNzYtMTAuNjA0LjIzMi0yLjg2NCAyLjk5My0yLjc2MSA3Ljc0LjIzMiAxMC42MDQgNC40NjUgNC4yNzQgOC41MzEgOC45OTcgMTIuMDgzIDE0LjAzOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU1LjA4MyAxMjIuNTE4LS40NzMtLjI0NmMtNS43NzYtMi45OTMtMTEuNTQ1LTUuOTgzLTE3LjMzNC04Ljk0NS0zLjY4NC0xLjg4My04LjIwNi0uNDI2LTEwLjA5MyAzLjI2Mi0xLjg4NiAzLjY4OC0uNDI2IDguMjA2IDMuMjYyIDEwLjA5MyA1Ljc2NSAyLjk0OSAxMS41MTEgNS45MjcgMTcuMjYzIDguOTA4bC40NzMuMjQ1YzEuMTA0LjU3MiAyLjI4My44NDMgMy40NDUuODQzIDIuNzEyIDAgNS4zMzEtMS40NzYgNi42NjUtNC4wNSAxLjkwNi0zLjY3OC40Ny04LjIwNC0zLjIwOC0xMC4xMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc5LjY4MyA1Ny41ODRjMS43NDQtNS41MSA0LjcxOS0xMC4xOTYgOC4xNjMtMTIuODU2IDMuMjc4LTIuNTMyIDMuODgyLTcuMjQyIDEuMzUxLTEwLjUyLTIuNTM0LTMuMjc5LTcuMjQ0LTMuODgyLTEwLjUyMS0xLjM1MS01Ljg4OSA0LjU0OS0xMC42MSAxMS43MjQtMTMuMjkzIDIwLjIwMS0xLjI1IDMuOTQ5LjkzOCA4LjE2NCA0Ljg4NyA5LjQxNC43NTMuMjM4IDEuNTE1LjM1MiAyLjI2NS4zNTIgMy4xODItLjAwMSA2LjEzNi0yLjA0MyA3LjE0OC01LjI0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDEuMTM2IDk1LjkwM2MtNi43NTEtMy4zMTQtMTEuNDI0LTYuMjY4LTE1LjE1Mi05LjU3Ni0zLjA5OC0yLjc1LTcuODM4LTIuNDY2LTEwLjU4OC42MzEtMi43NSAzLjA5OC0yLjQ2NyA3LjgzOC42MzEgMTAuNTg4IDQuNzc5IDQuMjQyIDEwLjQ4NCA3Ljg4OCAxOC40OTkgMTEuODIyIDEuMDYzLjUyMiAyLjE5Ljc2OSAzLjMuNzY5IDIuNzcgMCA1LjQzNS0xLjU0MiA2LjczOC00LjE5NiAxLjgyNS0zLjcxOC4yOS04LjIxMi0zLjQyOC0xMC4wMzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3NS44NTUgNDQxLjI3NmMtMy41NTMtMi4xMjYtOC4xNTktLjk3Mi0xMC4yODcgMi41ODMtMy40OTQgNS44MzUtNi45NDkgMTEuNTc2LTEwLjMwNiAxNy4xMjItMi4xNDUgMy41NDMtMS4wMTEgOC4xNTUgMi41MzMgMTAuMjk5IDEuMjE1LjczNSAyLjU1NCAxLjA4NSAzLjg3NyAxLjA4NSAyLjUzNyAwIDUuMDE0LTEuMjg4IDYuNDIzLTMuNjE4IDMuMzY4LTUuNTY1IDYuODM3LTExLjMyNyAxMC4zNDMtMTcuMTgzIDIuMTI3LTMuNTU0Ljk3MS04LjE2LTIuNTgzLTEwLjI4OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzY0Ljg2NCAyMjQuMTUyYy00LjA2Ny43ODYtNi43MjcgNC43Mi01Ljk0IDguNzg3LjkxIDQuNzEzIDEuMzcyIDkuNDY4IDEuMzcyIDE0LjEzMiAwIC4zNTgtLjAwMy43MTYtLjAwOSAxLjA5LS4wMTUuOTc2LS4wNDQgMS45NDctLjA4NyAyLjkxNS0uMTg3IDQuMTM4IDMuMDE4IDcuNjQzIDcuMTU1IDcuODI5LjExNS4wMDUuMjI5LjAwOC4zNDMuMDA4IDMuOTg2IDAgNy4zMDYtMy4xNCA3LjQ4Ni03LjE2My4wNTEtMS4xMTcuMDg0LTIuMjM5LjEwMS0zLjM1LjAwOC0uNDQzLjAxMS0uODg3LjAxMS0xLjMzIDAtNS42MTctLjU1NC0xMS4zMy0xLjY0NS0xNi45NzgtLjc4Ny00LjA2Ny00LjcyOC02LjcyNS04Ljc4Ny01Ljk0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDYuMjU0IDM4OS40ODFjLTMuNTgyLTIuMDczLTguMTcyLS44NTMtMTAuMjQ5IDIuNzMxLTMuMjMyIDUuNTgyLTYuNjA2IDExLjM3LTEwLjA2MiAxNy4yNjEtMi4wOTYgMy41NzMtLjg5NyA4LjE2OCAyLjY3NiAxMC4yNjQgMS4xOTIuNjk5IDIuNDk4IDEuMDMxIDMuNzg3IDEuMDMxIDIuNTc0IDAgNS4wOC0xLjMyNiA2LjQ3Ny0zLjcwNyAzLjQ2OS01LjkxNSA2Ljg1Ni0xMS43MjggMTAuMTAzLTE3LjMzMiAyLjA3Ni0zLjU4My44NTItOC4xNzEtMi43MzItMTAuMjQ4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjEuOTI5IDI4My4zMTRjLTMuODgzLTEuNDQ2LTguMjAxLjUzLTkuNjQ2IDQuNDEzLTIuMDkxIDUuNjE5LTQuNTkyIDExLjQwNC03LjY0NiAxNy42ODYtMS44MTEgMy43MjUtLjI1OSA4LjIxMyAzLjQ2NiAxMC4wMjQgMS4wNTcuNTE0IDIuMTc0Ljc1NiAzLjI3My43NTYgMi43ODEgMCA1LjQ1NC0xLjU1MyA2Ljc1MS00LjIyMyAzLjI2Ni02LjcxOCA1Ljk1Mi0xMi45MzcgOC4yMTQtMTkuMDExIDEuNDQ1LTMuODgyLS41My04LjItNC40MTItOS42NDV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzNS45MiAzMzcuMjc1Yy0zLjU4NS0yLjA3NS04LjE3My0uODUyLTEwLjI0OSAyLjczMy0zLjEwOSA1LjM3Mi02LjYzNCAxMS40Ni05Ljk3NSAxNy41MTctMiAzLjYyNy0uNjgyIDguMTg5IDIuOTQ1IDEwLjE5IDEuMTQ4LjYzMyAyLjM5MS45MzQgMy42MTUuOTM0IDIuNjQ0IDAgNS4yMDctMS40MDEgNi41NzQtMy44NzkgMy4yNjYtNS45MiA2Ljc0OS0xMS45MzggOS44MjItMTcuMjQ3IDIuMDc3LTMuNTg1Ljg1Mi04LjE3Mi0yLjczMi0xMC4yNDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwOC4wMDEgMTUxLjQwMmMtMy4yMTgtMS44MzgtNi40NzQtMy43NjMtOS42MjEtNS42MjQtMi41MzEtMS40OTYtNS4wNTktMi45OS03LjYtNC40NjEtMy41ODYtMi4wNzUtOC4xNzQtLjg1Mi0xMC4yNDggMi43MzMtMi4wNzYgMy41ODQtLjg1MyA4LjE3MyAyLjczMiAxMC4yNDkgMi41MDEgMS40NDggNC45OSAyLjkxOSA3LjQ4MiA0LjM5MyAzLjE5NCAxLjg4OCA2LjQ5OCAzLjg0MSA5LjgxMyA1LjczNSAxLjE3NC42NyAyLjQ1Mi45ODkgMy43MTQuOTg5IDIuNjA0IDAgNS4xMzUtMS4zNTggNi41MTktMy43ODEgMi4wNTYtMy41OTcuODA2LTguMTc4LTIuNzkxLTEwLjIzM3oiLz4KICAgIDwvZz4KPC9zdmc+",zxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxODguNjMyIiB5PSIyNTYiIHdpZHRoPSIzNS45MyIgaGVpZ2h0PSIxNy45NjUiLz4KICAgICAgICA8cGF0aCBkPSJNNDQxLjkxNyw0NzEuNTc5bDE2LjAzOS04OC4yMTljMC40ODItMi42MjMtMC4yMjgtNS4zMTYtMS45MzktNy4zNmMtMS43MDItMi4wNDQtNC4yMjgtMy4yMjgtNi44OTUtMy4yMjhoLTg5LjgyNQoJCQljLTIuNjY3LDAtNS4xOTMsMS4xODQtNi44OTUsMy4yMjhjLTEuNzExLDIuMDQ0LTIuNDIxLDQuNzM3LTEuOTM5LDcuMzZsMTYuMDM5LDg4LjIxOUgyNjAuNDkxVjMxLjQzOQoJCQljMC00Ljk2NS00LjAxOC04Ljk4Mi04Ljk4Mi04Ljk4Mkg1My44OTVjLTQuOTY1LDAtOC45ODIsNC4wMTgtOC45ODIsOC45ODJ2NDQwLjE0SDB2MTcuOTY1aDUzLjg5NWgxOTcuNjE0aDEyNS43NTRoNTMuODk1SDUxMgoJCQl2LTE3Ljk2NUg0NDEuOTE3eiBNMjQyLjUyNiw0NzEuNTc5SDYyLjg3N1Y0MC40MjFoMTc5LjY0OVY0NzEuNTc5eiBNNDIzLjY1OCw0NzEuNTc5aC0zOC44OTVsLTE0LjcwMi04MC44NDJoNjguMjk4CgkJCUw0MjMuNjU4LDQ3MS41Nzl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OC4xMDUsNzYuMzUxYy0yNy40NTYsMC00NC40ODksMTIuNDk2LTUzLjg5NSwyNS4xOTVjLTkuNDA4LTEyLjY5OS0yNi40MzktMjUuMTk1LTUzLjg5NS0yNS4xOTUKCQkJYy00Ljk2NSwwLTguOTgyLDQuMDE4LTguOTgyLDguOTgyYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJjMzMuNzU0LDAsNDMuMjcyLDIzLjMwNyw0NC45MTIsMjguMjQ2djIzMi4yNDYKCQkJYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJzOC45ODItNC4wMTgsOC45ODItOC45ODJWMTIyLjU3MmMxLjU0NC00LjY4LDEwLjk4Ny0yOC4yNTcsNDQuOTEyLTI4LjI1NwoJCQljNC45NjUsMCw4Ljk4Mi00LjAxOCw4Ljk4Mi04Ljk4MkM0NjcuMDg4LDgwLjM2OCw0NjMuMDcsNzYuMzUxLDQ1OC4xMDUsNzYuMzUxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDExOS4yNjNjLTE1LjU1My0xNS41NTMtMzYuODQyLTIyLjM3Ny01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwxNTYuMTU4LDM4MS4zOTUsMTM0LjgzMywzNjUuODMzLDExOS4yNjN6IE0zNjcuMDA5LDE2NC45MDMKCQkJYy0xMS4xNTgsMC40MzktMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NzksMjMuNTg4LDQuNTM1LDMyLjkzOSwxMy44NzcKCQkJQzM2Mi40NzQsMTQxLjMxNiwzNjcuNTcsMTUzLjcwMiwzNjcuMDA5LDE2NC45MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2NS44MzMsMjAwLjEwNWMtMTUuNTUzLTE1LjU1My0zNi44NDItMjIuMzY5LTU1LjY2Ny0xNy43OThjLTMuMjU0LDAuNzk4LTUuNzk4LDMuMzQyLTYuNTk2LDYuNTk2CgkJCWMtNC41NzksMTguNzcyLDIuMjM3LDQwLjA5NywxNy43OTgsNTUuNjY3YzEyLjM2LDEyLjM2LDI4LjM2LDE5LjIwMiw0My44MTYsMTkuMjAyYzQuMDA5LDAsNy45ODItMC40NjUsMTEuODUxLTEuNDA0CgkJCWMzLjI1NS0wLjc5OCw1Ljc5OC0zLjM0Miw2LjU5Ni02LjU5NkMzODguMjExLDIzNywzODEuMzk1LDIxNS42NzYsMzY1LjgzMywyMDAuMTA1eiBNMzY3LjAwOSwyNDUuNzQ2CgkJCWMtMTEuMTU4LDAuNDkxLTIzLjU5Ni00LjU0NC0zMi45MzktMTMuODc3Yy05LjM0Mi05LjM1MS0xNC40MzktMjEuNzM3LTEzLjg3Ny0zMi45MzljMTEuMTIzLTAuNTM1LDIzLjU4OCw0LjUzNSwzMi45MzksMTMuODc3CgkJCUMzNjIuNDc0LDIyMi4xNTgsMzY3LjU3LDIzNC41NDQsMzY3LjAwOSwyNDUuNzQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDI4MC45NDdjLTE1LjU1My0xNS41NjEtMzYuODQyLTIyLjM2OS01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwzMTcuODQyLDM4MS4zOTUsMjk2LjUxOCwzNjUuODMzLDI4MC45NDd6IE0zNjcuMDA5LDMyNi41ODgKCQkJYy0xMS4xNTgsMC40NDctMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NywyMy41ODgsNC41MzUsMzIuOTM5LDEzLjg3NwoJCQlDMzYyLjQ3NCwzMDMsMzY3LjU3LDMxNS4zODYsMzY3LjAwOSwzMjYuNTg4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDkuMzg2LDEwOC4wNjFjLTAuNzk4LTMuMjU0LTMuMzQyLTUuNzk4LTYuNTk2LTYuNTk2Yy0xOC43ODktNC41Ny00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjgsMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDE0OC4xNTgsNTEzLjk2NSwxMjYuODMzLDUwOS4zODYsMTA4LjA2MXogTTQ3OC44ODYsMTUxLjAyNgoJCQljLTkuMzUxLDkuMzQyLTIxLjg3NywxNC4zMjUtMzIuOTM5LDEzLjg3N2MtMC41NjEtMTEuMjAyLDQuNTM1LTIzLjU4OCwxMy44NzctMzIuOTM5YzkuMzUxLTkuMzQyLDIxLjc5OC0xNC40NDcsMzIuOTM5LTEzLjg3NwoJCQlDNDkzLjMyNSwxMjkuMjg5LDQ4OC4yMjgsMTQxLjY3NSw0NzguODg2LDE1MS4wMjZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwOS4zODYsMTg4LjkwM2MtMC43OTgtMy4yNTQtMy4zNDItNS43OTgtNi41OTYtNi41OTZjLTE4Ljc4OS00LjU3OS00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjksMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDIyOSw1MTMuOTY1LDIwNy42NzYsNTA5LjM4NiwxODguOTAzeiBNNDc4Ljg4NiwyMzEuODY4CgkJCWMtOS4zNTEsOS4zMzMtMjEuODc3LDE0LjM2OC0zMi45MzksMTMuODc3Yy0wLjU2MS0xMS4yMDIsNC41MzUtMjMuNTg4LDEzLjg3Ny0zMi45MzljOS4zNTEtOS4zNDIsMjEuNzk4LTE0LjQwMywzMi45MzktMTMuODc3CgkJCUM0OTMuMzI1LDIxMC4xMzIsNDg4LjIyOCwyMjIuNTE3LDQ3OC44ODYsMjMxLjg2OHoiLz4KICAgICAgICA8cGF0aCBkPSJNNTA5LjM4NiwyNjkuNzQ2Yy0wLjc5OC0zLjI1NC0zLjM0Mi01Ljc5OC02LjU5Ni02LjU5NmMtMTguNzg5LTQuNTc5LTQwLjEwNSwyLjIzNy01NS42NjcsMTcuNzk4CgkJCWMtMTUuNTYxLDE1LjU3LTIyLjM3NywzNi44OTUtMTcuNzk4LDU1LjY2N2MwLjc5OCwzLjI1NSwzLjM0Miw1Ljc5OCw2LjU5Niw2LjU5NmMzLjg2OSwwLjkzOSw3LjgzMywxLjQwNCwxMS44NDIsMS40MDQKCQkJYzE1LjQ2NSwwLDMxLjQ2NS02Ljg0Miw0My44MjUtMTkuMjAyQzUwNy4xNDksMzA5Ljg0Miw1MTMuOTY1LDI4OC41MTgsNTA5LjM4NiwyNjkuNzQ2eiBNNDc4Ljg4NiwzMTIuNzEKCQkJYy05LjM1MSw5LjM0Mi0yMS44NzcsMTQuMzMzLTMyLjkzOSwxMy44NzdjLTAuNTYxLTExLjIwMiw0LjUzNS0yMy41ODgsMTMuODc3LTMyLjkzOWM5LjM1MS05LjM0MiwyMS43OTgtMTQuNDQ3LDMyLjkzOS0xMy44NzcKCQkJQzQ5My4zMjUsMjkwLjk3NCw0ODguMjI4LDMwMy4zNiw0NzguODg2LDMxMi43MXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",wxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDIzMC41NjZoMjMyLjEzNWMyMi40MDUgMCA0MC42MzQtMTguMjI4IDQwLjYzNC00MC42MzN2LTE0OS4zYy0uMDAxLTIyLjQwNS0xOC4yMjktNDAuNjMzLTQwLjYzNS00MC42MzNoLTIzMi4xMzRjLTIyLjQwNSAwLTQwLjYzNCAxOC4yMjgtNDAuNjM0IDQwLjYzM3YxNDkuMjk5YzAgMjIuNDA2IDE4LjIyOCA0MC42MzQgNDAuNjM0IDQwLjYzNHptLTI1LjYzNC0xODkuOTMzYzAtMTQuMTM0IDExLjQ5OS0yNS42MzMgMjUuNjM0LTI1LjYzM2gyMzIuMTM1YzE0LjEzNSAwIDI1LjYzNCAxMS40OTkgMjUuNjM0IDI1LjYzM3YxNDkuMjk5YzAgMTQuMTM0LTExLjQ5OSAyNS42MzMtMjUuNjM0IDI1LjYzM2gtMjMyLjEzNWMtMTQuMTM1IDAtMjUuNjM0LTExLjQ5OS0yNS42MzQtMjUuNjMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDUuMTEgMTY0LjgxM2MxMC40MjMgMi4wODEgMTguODUgMTAuMTggMjAuOTcgMjAuMTU3IDEuNTM2IDcuMjIyIDguMDIyIDEyLjQ2MyAxNS40MjIgMTIuNDYzaDE0OC45NDdjNy40OCAwIDEzLjk4LTUuMzEgMTUuNDU1LTEyLjYyNCAyLjExNS0xMC40ODIgMTAuNTc2LTE4LjkzNiAyMS4wNTItMjEuMDM4IDcuMzA4LTEuNDY2IDEyLjYxMS03Ljk2NSAxMi42MTEtMTUuNDU0di02Ni4wNjdjMC03LjQ4NC01LjMxMS0xMy45ODUtMTIuNjI3LTE1LjQ1Ny0xMC40NzItMi4xMDctMTguOTI1LTEwLjU2My0yMS4wMzYtMjEuMDQxLTEuNDc1LTcuMzEyLTcuOTY3LTEyLjYxOC0xNS40MzktMTIuNjE4aC0xNDguOTcxYy03LjM5NSAwLTEzLjg3OCA1LjI0Mi0xNS40MTQgMTIuNDY1LTIuMTE4IDkuOTY5LTEwLjU0IDE4LjA2Ny0yMC45NTUgMjAuMTUzLTcuMzU1IDEuNDcyLTEyLjY5MiA3Ljk3OS0xMi42OTIgMTUuNDd2NjguMTI1YzAgNy40OTQgNS4zMzEgMTMuOTk5IDEyLjY3NyAxNS40NjZ6bTIuMzIzLTgzLjU5MmMwLS4zNzQuMjYyLS42ODcuNjM4LS43NjIgMTYuMjAzLTMuMjQ0IDI5LjMzNy0xNiAzMi42ODItMzEuNzQxLjA3My0uMzQ0LjM3OC0uNTg1Ljc0Mi0uNTg1aDE0OC45NzJjLjM1NyAwIC42NjYuMjQ1LjczMy41ODMgMy4yOSAxNi4zMjUgMTYuNDY0IDI5LjQ5OSAzMi43ODIgMzIuNzgyLjM0LjA2OC41ODYuMzg1LjU4Ni43NTJ2NjYuMDY3YzAgLjM2MS0uMjQxLjY4My0uNTYxLjc0Ny0xNi4zMjYgMy4yNzQtMjkuNTEgMTYuNDQ3LTMyLjgwNiAzMi43NzgtLjA2OS4zNDItLjM4Ni41OTEtLjc1Mi41OTFoLTE0OC45NDdjLS4zNjIgMC0uNjc4LS4yNDYtLjc1LS41ODItMy4zNDctMTUuNzUyLTE2LjQ5LTI4LjUxMS0zMi43MDUtMzEuNzQ4LS4zNTctLjA3MS0uNjE0LS4zODktLjYxNC0uNzU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNzIuMDY3IDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU4IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDE5OS41MDNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXYtNC4xNDJjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2NC4xNDJjMCA0LjE0MyAzLjM1NyA3LjUgNy41IDcuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcyLjA2NyAxODAuMzYyYy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQuMTQyYzAgNC4xNDIgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQuMTQyYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4OS43MzMgMTY0LjFoNDkuN2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNS42MzNoMTcuMzVjMi42IDAgNS4wMTQtMS4zNDYgNi4zOC0zLjU1N3MxLjQ5MS00Ljk3Mi4zMjgtNy4yOTdsLTI0Ljg1LTQ5LjdjLTEuMjcxLTIuNTQxLTMuODY3LTQuMTQ2LTYuNzA4LTQuMTQ2cy01LjQzOCAxLjYwNS02LjcwOCA0LjE0NmwtMTQuNDkzIDI4Ljk4N2gtMjguNDk4Yy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQ5LjdjLS4wMDEgNC4xNDIgMy4zNTcgNy41IDcuNDk5IDcuNXptNDkuNzAxLTczLjU2MyAxMi43MTUgMjUuNDNoLTI1LjQzem0tNDIuMjAxIDIzLjg2M2gxMy40OThsLTIuODU2IDUuNzEzYy0xLjE2MyAyLjMyNS0xLjAzOCA1LjA4Ni4zMjggNy4yOTdzMy43OCAzLjU1NyA2LjM4IDMuNTU3aDE3LjM1MXYxOC4xMzNoLTM0Ljd2LTM0Ljd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMy45ODMgMTQ3LjUzM2MxNy44MzggMCAzMi4zNS0xNC41MTIgMzIuMzUtMzIuMzUgMC0xNy44MzctMTQuNTEyLTMyLjM1LTMyLjM1LTMyLjM1cy0zMi4zNTEgMTQuNTEyLTMyLjM1MSAzMi4zNWMuMDAxIDE3LjgzOCAxNC41MTQgMzIuMzUgMzIuMzUxIDMyLjM1em0wLTQ5LjY5OWM5LjU2NiAwIDE3LjM1IDcuNzgzIDE3LjM1IDE3LjM1cy03Ljc4MyAxNy4zNS0xNy4zNSAxNy4zNS0xNy4zNTEtNy43ODMtMTcuMzUxLTE3LjM1Yy4wMDEtOS41NjcgNy43ODQtMTcuMzUgMTcuMzUxLTE3LjM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzAuODY3IDI0OC41Yy04LjU0NyAwLTE1LjUgNi45NTMtMTUuNSAxNS41djE3LjEzM2MwIDguNTQ3IDYuOTUzIDE1LjUgMTUuNSAxNS41aDUwLjI2NmM4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptNTAuNzY2IDE1LjV2MTcuMTMzYzAgLjI3Ni0uMjI1LjUtLjUuNWgtNTAuMjY2Yy0uMjc1IDAtLjUtLjIyNC0uNS0uNXYtMTcuMTMzYzAtLjI3Ni4yMjUtLjUuNS0uNWg1MC4yNjZjLjI3NSAwIC41LjIyNC41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ5Ni41IDQ2My44NjdoLTE3LjY3MmMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtMTM2LjUwNWM5LjYwOC0zLjE2IDE2LjU2Ny0xMi4yMTIgMTYuNTY3LTIyLjg2NHYtOC4yODRjMC04LjcwMy03LjA4MS0xNS43ODMtMTUuNzg0LTE1Ljc4M2gtMi41NjJjMS4xNDMtMi44IDEuNzc5LTUuODYgMS43NzktOS4wNjcgMC0xMy4yNy0xMC43OTYtMjQuMDY2LTI0LjA2Ni0yNC4wNjZzLTI0LjA2NiAxMC43OTYtMjQuMDY2IDI0LjA2NmMwIDMuMjA3LjYzNSA2LjI2NiAxLjc3OSA5LjA2N2gtMi41NjNjLTguNzAzIDAtMTUuNzgzIDcuMDgxLTE1Ljc4MyAxNS43ODN2OC4yODRjMCAxMC41MTggNi43ODYgMTkuNDc2IDE2LjIwNyAyMi43NDEtMTguNjE2IDE4LjQzOC00MC4wMzcgMzMuMzUxLTYzLjczNCA0NC4zMzctMy43NTggMS43NDItNS4zOTMgNi4yMDEtMy42NSA5Ljk1OCAxLjI3IDIuNzM3IDMuOTc4IDQuMzQ4IDYuODEgNC4zNDggMS4wNTYgMCAyLjEyOS0uMjI0IDMuMTQ5LS42OTggMjEuMDU4LTkuNzYyIDQwLjQyNy0yMi40MzIgNTcuNzg2LTM3Ljc1NHYyMy43MTJjLTQ1LjQxIDM1LjQ5NS0xMDAuMDE0IDU0LjI0Ny0xNTguMTY3IDU0LjI0Ny01OC4xNDggMC0xMTIuNzU2LTE4Ljc1My0xNTguMTY3LTU0LjI0OXYtMjMuNjljNDMuNzY0IDM4LjY5IDk5LjI4IDU5LjgwNSAxNTguMTY3IDU5LjgwNSAyMy41OTIgMCA0Ni45MTMtMy40NDEgNjkuMzE0LTEwLjIyOCAzLjk2NC0xLjIwMSA2LjIwNC01LjM4OCA1LjAwMy05LjM1My0xLjIwMS0zLjk2NC01LjM4OS02LjIwNy05LjM1My01LjAwMy0yMC45ODkgNi4zNTktNDIuODQ3IDkuNTgzLTY0Ljk2NCA5LjU4My01OS41NzIgMC0xMTUuNDYyLTIzLjA3LTE1Ny44MDItNjUuMDE4IDkuNDE5LTMuMjY3IDE2LjIwMi0xMi4yMjQgMTYuMjAyLTIyLjc0di04LjI4NGMwLTguNzAzLTcuMDgtMTUuNzgzLTE1Ljc4My0xNS43ODNoLTIuNTYzYzEuMTQzLTIuOCAxLjc3OS01Ljg2IDEuNzc5LTkuMDY3IDAtMTMuMjctMTAuNzk2LTI0LjA2Ni0yNC4wNjYtMjQuMDY2cy0yNC4wNyAxMC43OTgtMjQuMDcgMjQuMDY4YzAgMy4yMDcuNjM2IDYuMjY2IDEuNzc5IDkuMDY3aC0yLjU2MmMtOC43MDMgMC0xNS43ODQgNy4wODEtMTUuNzg0IDE1Ljc4M3Y4LjI4NGMwIDEwLjY1MiA2Ljk1OSAxOS43MDQgMTYuNTY3IDIyLjg2NHYxMzYuNTA2Yy05LjYwOCAzLjE2LTE2LjU2NyAxMi4yMTItMTYuNTY3IDIyLjg2NHY4LjI4NGMwIC4yNjQuMDI3LjUyMi4wNC43ODNoLTE3LjY3M2MtOC41NDcgMC0xNS41IDYuOTUzLTE1LjUgMTUuNXYxNy4xMzJjMCA4LjU0NyA2Ljk1MyAxNS41IDE1LjUgMTUuNWg1OS44MzNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTU5LjgzM2MtLjI3NSAwLS41LS4yMjQtLjUtLjV2LTE3LjEzM2MwLS4yNzYuMjI1LS41LjUtLjVoNDgxYy4yNzUgMCAuNS4yMjQuNS41djE3LjEzM2MwIC4yNzYtLjIyNS41LS41LjVoLTM5MS4xNjdjLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMzkxLjE2N2M4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptLTY3LjMzMy0xNjQuNTc3Yy4xNjEtLjg3OC4xNTgtMS43NzguMDA1LTIuNjU2aDE4LjEyOHYxOC4xMzNoLTE4LjEzM3ptMCA0My45MDRjLjAxMi0uMjM5LjAxMi0uNDc5IDAtLjcxOXYtMTIuNzA5aDE4LjEzM3YxMDAuOTY3aC0xOC4xMzN6bTAtMTAzLjc2MWMwLTQuOTk5IDQuMDY3LTkuMDY2IDkuMDY2LTkuMDY2czkuMDY2IDQuMDY3IDkuMDY2IDkuMDY2LTQuMDY3IDkuMDY3LTkuMDY2IDkuMDY3LTkuMDY2LTQuMDY3LTkuMDY2LTkuMDY3em0tMTYuNTY3IDI0Ljg1YzAtLjQzMi4zNTItLjc4My43ODMtLjc4M2g0OS43Yy40MzMgMCAuNzg0LjM1Mi43ODQuNzgzdjguMjg0YzAgNC45OTktNC4wNjcgOS4wNjYtOS4wNjcgOS4wNjZoLTMzLjEzM2MtNSAwLTkuMDY3LTQuMDY3LTkuMDY3LTkuMDY2em0tMTU2LjYgMTQ0LjE3NmM1Ny42NDggMCAxMTIuMDA3LTE3LjQyMiAxNTguMTY3LTUwLjUxNHY3My45OTFjLTkuNjA4IDMuMTYtMTYuNTY3IDEyLjIxMi0xNi41NjcgMjIuODY0djguMjg0YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMjgzLjI3OWMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtNzMuOTkyYzQ2LjE2MSAzMy4wOTIgMTAwLjUyMyA1MC41MTUgMTU4LjE2NiA1MC41MTV6bS0xNzMuMTY3LTExMC43ODljLS4wMTIuMjQ3LS4wMTIuNDk1IDAgLjc0MnYxNi4zNTVoLTE4LjEzM3YtMTguMTMzaDE4LjEzM3ptLTE4LjEzMyAzMi4wOTdoMTguMTMzdjEwMC45NjdoLTE4LjEzM3ptMC05MC4zMzRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ni05LjA2NnM5LjA2NiA0LjA2NyA5LjA2NiA5LjA2Ni00LjA2NyA5LjA2Ny05LjA2NiA5LjA2Ny05LjA2Ni00LjA2Ny05LjA2Ni05LjA2N3ptLTE2LjU2NyAyNC44NWMwLS40MzIuMzUyLS43ODMuNzg0LS43ODNoNDkuN2MuNDMyIDAgLjc4My4zNTIuNzgzLjc4M3Y4LjI4NGMwIDQuOTk5LTQuMDY3IDkuMDY2LTkuMDY3IDkuMDY2aC0zMy4xMzNjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2NnptLjc4NCAxOTkuNTg0Yy0uNDMzIDAtLjc4NC0uMzUyLS43ODQtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzgzLjc4M3ptMzY0LjQ2NiAwYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzg0Ljc4M3oiLz4KICAgIDwvZz4KPC9zdmc+",Cxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDc0LjYwOCw4MC40MzlsLTIzMi04MGMtMS42OS0wLjU4My0zLjUyNi0wLjU4My01LjIxNiwwbC0yMzIsODBDMi4xNjYsODEuNTUxLDAuMDAxLDg0LjU4NywwLDg3Ljk5OXYzODQKCQkJYzAsNC40MTgsMy41ODIsOCw4LDhoNDBjNC40MTgsMCw4LTMuNTgyLDgtOHYtMjQ4aDM2OHYyNDhjMCw0LjQxOCwzLjU4Miw4LDgsOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04di0zODQKCQkJQzQ3OS45OTksODQuNTg3LDQ3Ny44MzQsODEuNTUxLDQ3NC42MDgsODAuNDM5eiBNNDAsMjE1Ljk5OXYyNDhIMTZ2LTMwNGgyNFYyMTUuOTk5eiBNNDI0LDIwNy45OTlINTZ2LTE2aDM2OFYyMDcuOTk5egoJCQkgTTQyNCwxNzUuOTk5SDU2di0xNmgzNjhWMTc1Ljk5OXogTTQ2NCw0NjMuOTk5aC0yNHYtMzA0aDI0VjQ2My45OTl6IE00NjQsMTQzLjk5OUgxNlY5My43MDNsMjI0LTc3LjI0bDIyNCw3Ny4yNFYxNDMuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zOTUuNTc2LDM0NC43OTlsLTI5LjYtMTQuOGwtMjYuNC01Mi44Yy00LjA2MS04LjEyNS0xMi4zODEtMTMuMjQyLTIxLjQ2NC0xMy4ySDE2MS44ODgKCQkJYy05LjA5OC0wLjAzLTE3LjQyMSw1LjExNC0yMS40NjQsMTMuMjY0bC0yNi40LDUyLjhsLTI5LjYsMTQuOGMtMi43MDUsMS4zNTItNC40MTYsNC4xMTItNC40MjQsNy4xMzZ2MTEyYzAsOC44MzcsNy4xNjMsMTYsMTYsMTYKCQkJaDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTI0aDE5MnYyNGMwLDguODM3LDcuMTYzLDE2LDE2LDE2aDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTExMgoJCQlDNDAwLjAxNywzNDguOTUyLDM5OC4zMDEsMzQ2LjE2LDM5NS41NzYsMzQ0Ljc5OXogTTE1NC43MzYsMjg0LjQyM2MxLjM0NS0yLjcxOCw0LjExOS00LjQzNCw3LjE1Mi00LjQyNGgxNTYuMjI0CgkJCWMzLjAzMy0wLjAxLDUuODA3LDEuNzA2LDcuMTUyLDQuNDI0bDIxLjc5Miw0My41NzZIMTMyLjk0NEwxNTQuNzM2LDI4NC40MjN6IE0xMjgsNDYzLjk5OUg5NnYtMjRoMzJWNDYzLjk5OXogTTM4NCw0NjMuOTk5aC0zMgoJCQl2LTI0aDMyVjQ2My45OTl6IE0zODQsNDIzLjk5OUgxMzZIOTZ2LTY3LjA1NmwyNS44ODgtMTIuOTQ0aDIzNi4yMjRMMzg0LDM1Ni45NDNWNDIzLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzE2OCwzNjcuMTYyLDE2MC44MzcsMzU5Ljk5OSwxNTIsMzU5Ljk5OXogTTE1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzM2OCwzNjcuMTYyLDM2MC44MzcsMzU5Ljk5OSwzNTIsMzU5Ljk5OXogTTM1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjgwLDM1OS45OTloLTgwYy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoODBjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzI5NiwzNjcuMTYyLDI4OC44MzcsMzU5Ljk5OSwyODAsMzU5Ljk5OXogTTI4MCwzOTEuOTk5aC04MHYtMTZoODBWMzkxLjk5OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Ixe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMS45NzggNTExLjk3OCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjIzLjI0OGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0xNi42OTZjMC0xMi41NTcgMTAuMjE2LTIyLjc3MyAyMi43NzItMjIuNzczaDE1LjM5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTUuMzkyYy0yMC44MjggMC0zNy43NzIgMTYuOTQ1LTM3Ljc3MiAzNy43NzN2MTYuNjk2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjgxLjE4N2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNC43NDZjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2MjQuNzQ2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE1Ny44NTYgMjA4Ljg2djM2LjMzOWMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0zNi4zMzljMC0zLjI5NCAyLjc5Ni02LjA3OCA2LjEwNS02LjA3OGgxMy4yMzdjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTEzLjIzN2MtMTEuNjM3IDAtMjEuMTA1IDkuNDU1LTIxLjEwNSAyMS4wNzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyOC4xODEgMjExLjQzYzIuOTQyIDEuOTY0IDYuMzgyIDIuOTYzIDkuODg5IDIuOTYzIDIuNDQyIDAgNC45MTktLjQ4NSA3LjI4Mi0xLjQ2N2wyNC43Ni0xMC4yNTUgNjMuNTk1IDQuOTA2IDQuNjYxIDE2LjEyMWMxLjYxOSA1LjYwMSA1LjU5NiAxMC4wNzQgMTEuMTk3IDEyLjU5NSAzLjE0OCAxLjQxNyA2LjU5MSAyLjEyNCAxMC4wNDEgMi4xMjQgMy42NTMgMCA3LjMxNi0uNzkzIDEwLjY0NC0yLjM3NGwxMTcuMjkxLTU1LjcyOWM2LjQ2OS0zLjA3NCAxMS40MjUtOS4wMSAxMy4yNTgtMTUuODggMS41ODItNS45MzIuNjI5LTExLjgzNS0yLjY4NC0xNi42MTlsLTIzLjYzOS0zNC4xNjRjMTcuNzYzLTIwLjQ2MiAyMS45NDEtNDkuNTk1IDEwLjEyNy03NC40NjEtMTYuMjcyLTM0LjIwMS01Ny4zMzItNDguNzk3LTkxLjUxLTMyLjU1LTI2LjE4MSAxMi40MzUtNDEuNTkyIDQwLjAwOC0zOC45MSA2OC40NThsLTMzLjc2NiAxNi4wNDJjLS4wMDEgMC0uMDAxIDAtLjAwMSAwLTEwLjcyNSA1LjA5Ni0xNS4zOTEgMTcuMjgxLTExLjYxMSAzMC4zMTVsOC43NDUgMzAuMjQyaC00Ny4xNTdsLTI1LjA1NS0xMC4zNzdjLTUuNzYzLTIuMzcxLTEyLjE3OS0xLjc5My0xNy4xNjcgMS41NDYtNC43MTMgMy4xNTctNy40MTYgOC4yMjEtNy40MTYgMTMuODkzdjQwLjc2MWMtLjAwMiA1LjY5MSAyLjcwNiAxMC43NiA3LjQyNiAxMy45MXptMjU3LjYtNTUuMDc3Yy43OSAxLjE0Ljk2NiAyLjU1OC41MjQgNC4yMTQtLjY5MiAyLjU5My0yLjczNCA1LjAyNi01LjIwMiA2LjE5OWwtMTE3LjI5MSA1NS43MjhjLTIuNDcgMS4xNzMtNS42NDYgMS4yMjEtOC4wOTEuMTItMS41NjUtLjcwNC0yLjU1Ni0xLjc0MS0yLjk0My0zLjA4M2wtMjIuMzc2LTc3LjM4NSAxMDkuNTQyLTUyLjA0em0tODYuMjUyLTEzNi4xNjJjLjAwMSAwIC4wMDItLjAwMS4wMDMtLjAwMSAyNi43MTYtMTIuNzAzIDU4LjgwNi0xLjI4OCA3MS41MjQgMjUuNDQyIDguNjY0IDE4LjIzNyA2LjMzIDM5LjQxNy01LjQ2MyA1NS4xNzNsLS4wMjQtLjAyNi0yOC4wMDItNDAuNDdjLTcuNzI5LTExLjE2LTIwLjEzNS0xNS4yNDEtMzAuODY4LTEwLjE1N2wtMzcuODAzIDE3Ljk1OC0uMDEyLjAwM2MuMjE3LTIwLjE5IDExLjg5OS0zOS4wMTkgMzAuNjQ1LTQ3LjkyMnptLTcyLjY3NiA4NC40OTggODYuMjczLTQwLjk4NGM0Ljc1LTIuMjUxIDkuNDkyIDEuMzY2IDEyLjEwNyA1LjE0M2w2LjA2MiA4Ljc2LTEwNS4xMTUgNDkuOTM3LTIuOTY3LTEwLjI2MmMtMS4yNzgtNC40MDQtMS4wOS0xMC4zNDYgMy42NC0xMi41OTR6bS01MC40NTMgNjIuMDA5aDQ1LjQ3OGw3LjM2NSAyNS40OS01Mi44NDMtNC4wNzd6bS00MC42NDctOS45MzhjMC0uMzk1LjA3OS0uOTcyLjc2NS0xLjQzMS4yMDQtLjEzNy43NzEtLjQ1NSAxLjYxMy0uNDU1LjQyNyAwIC45MjQuMDgyIDEuNDguMzExbDIxLjc4OCA5LjAyNHYyNS44MzRsLTIxLjc5NyA5LjAyN2MtMS42NjUuNjk0LTIuNzkyLjA4NS0zLjA5Ni0uMTE4LS42NjgtLjQ0Ni0uNzU0LS45OTktLjc1NC0xLjQzMXYtNDAuNzYxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTcuOTYgNDY0LjQ3OWMtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOC03LjY3OC0yLjkyOC0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xOTAuOTIgNDY4LjI3N2MtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyNy03LjY3OC0yLjkyNy0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDcuOTU3IDQ2NC40NzljLTIuOTI5IDIuOTI5LTIuOTI5IDcuNjc4IDAgMTAuNjA2bC4wMjguMDI4YzEuNDYyIDEuNDYxIDMuMzcxIDIuMTkgNS4yODMgMi4xOSAxLjkyIDAgMy44NDItLjczNiA1LjMxLTIuMjA0IDIuOTI5LTIuOTI5IDIuOTE1LTcuNjkyLS4wMTQtMTAuNjIxLTIuOTMtMi45MjgtNy42NzgtMi45MjgtMTAuNjA3LjAwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjIyMiA0ODEuMTAyYzEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOS03LjY3OC0yLjkyOS0xMC42MDcgMHMtMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjIgMy4zNzEgMi4xOTEgNS4yODMgMi4xOTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MC43ODQgNDA5LjM4NWMyMi43MTMtMi4yNzggNDEuMTkxLTIyLjc5MiA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcwOS0xLjU0OS03LjIzNC00LjI0OC05LjY3MS0yLjY5Mi0yLjQzMS02LjM1Mi0zLjYwOS0xMC4wMS0zLjIzM2wtMjguODEgMi44OTJjLTkuOTIzIDEuMDEtMTkuMDM3IDUuNTAyLTI2LjE1MSAxMi4xNTJsLjA2My01LjE1NGMwLTIyLjkwMy0xOC4zMzctNDMuMjY2LTQxLjA1NC00NS41NzhsLTI4Ljc4My0yLjg5Yy0zLjY4Ny0uMzc5LTcuMzM0LjgwMi0xMC4wMjUgMy4yMzItMi42OTkgMi40MzgtNC4yNDggNS45NjItNC4yNDggOS42NzF2MjguNzQzYzAgMjIuOTAzIDE4LjQ3MyA0My40MTcgNDEuMTg1IDQ1LjcyOWwyNy44NjMgMi44MTR2NTMuOTk2aC01NC41MTljLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTE5LjMwNGMyLjQ0NCAwIDQuNDM0IDEuOTc2IDQuNDM0IDQuNDA1djQ1LjUyM2MwIDIuNDAzLTIuMDMgNC40MzQtNC40MzQgNC40MzRoLTQ3My4xMzRjLTIuMzg4IDAtNC40MDUtMi4wMy00LjQwNS00LjQzNHYtNDUuNTIzYzAtMi4zODggMi4wMTgtNC40MDUgNC40MDUtNC40MDVoMzE5LjE5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNzUuMTI2di0xNS4zOTdsMjguMDU3LTIuODMzYzIyLjcxMy0yLjI3OCA0MS4xOS0yMi43OTIgNDEuMTktNDUuNzI5di0yOC43NDNjMC0zLjcwNS0xLjU1Mi03LjIyOS00LjI1Ny05LjY2OS0yLjctMi40MzUtNi4zNTktMy42MTItMTAuMDAxLTMuMjM1bC0yOC44MSAyLjg5MmMtOS45MzQgMS4wMTEtMTkuMDU4IDUuNTA3LTI2LjE4IDEyLjE2MyAwIDAgLjE5OS00LjQyOS4xOTktNS4wMTMgMC0yMi45MDctMTguNDc0LTQzLjQyLTQxLjE5LTQ1LjcyOWwtMjguNzc2LTIuODljLTMuNjY2LS4zNzUtNy4zMDguNzk2LTkuOTk3IDMuMjIyLTIuNzA0IDIuNDM5LTQuMjU1IDUuOTY3LTQuMjU1IDkuNjgxdjI4Ljc0M2MwIDIyLjkwMyAxOC40NzQgNDMuNDE3IDQxLjE4NiA0NS43MjlsMjcuODM0IDIuODEzdjUzLjk5NmgtMTY0LjI1M3YtMTUuMzk4bDI4LjAyNi0yLjgzMmMyMi43MTMtMi4yNzQgNDEuMTkxLTIyLjc4OSA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcxMy0xLjU1MS03LjI0Mi00LjI1NS05LjY4MS0yLjY4OS0yLjQyNi02LjMzMy0zLjYwNC05Ljk3NS0zLjIyNGwtMjguODEgMi44OTJjLTkuOTM0IDEuMDExLTE5LjA1OCA1LjUwNy0yNi4xNzkgMTIuMTYyIDAgMCAuMTk4LTQuNDMuMTk4LTUuMDEyIDAtMjIuOTAzLTE4LjQ3NC00My40MTctNDEuMTktNDUuNzI5bC0yOC43NzYtMi44OWMtMy42Ni0uMzc0LTcuMzA2Ljc5NS05Ljk5NyAzLjIyMi0yLjcwNCAyLjQzOS00LjI1NSA1Ljk2OC00LjI1NSA5LjY4MXYyOC43NDNjMCAyMi45MDMgMTguNDc0IDQzLjQxNyA0MS4xODYgNDUuNzI5bDI3LjgzNSAyLjgxM3YzMS43OTUgMjIuMjAxaC00OS44MTJjLTEwLjcgMC0xOS40MDUgOC43MDUtMTkuNDA1IDE5LjQwNXY0NS41MjNjMCAxMC43MTYgOC43MDUgMTkuNDM0IDE5LjQwNSAxOS40MzRoNDczLjEzNGMxMC43MTYgMCAxOS40MzQtOC43MTggMTkuNDM0LTE5LjQzNHYtNDUuNTIzYzAtMTAuNy04LjcxOC0xOS40MDUtMTkuNDM0LTE5LjQwNWgtNDkuNzg1di0xNS4zOTh6bS0yOC4wMjgtMzguNzU2YzAtMTUuMTcxIDEyLjY3Mi0yOS4yNzkgMjcuNjYtMzAuODA1bDI2LjU1OS0yLjY2NnYyNi40OThjMCAxNS4xOTItMTIuNjggMjkuMjk5LTI3LjY5MyAzMC44MDVsLTE1LjQxNSAxLjU1OCAxOS4wNjktMjEuMDk3YzIuNzc3LTMuMDczIDIuNTM3LTcuODE2LS41MzUtMTAuNTkzLTMuMDcyLTIuNzc1LTcuODE0LTIuNTM5LTEwLjU5NC41MzVsLTE5LjA1MSAyMS4wNzd6bS0xNS0yMy40NTctMTguODgtMjAuODg4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M2wxOS4wNjcgMjEuMDk2LTE1LjQwOC0xLjU1NmMtMTUuMDE0LTEuNTI4LTI3LjY5OC0xNS42MzUtMjcuNjk4LTMwLjgwNXYtMjYuNDk3bDI2LjU0OCAyLjY2NmMxNS4wMTUgMS41MjggMjcuNSAxNS42MzUgMjcuNSAzMC44MDV6bS0xNjQuMjgyIDIzLjQ1N2MwLTE1LjE3IDEyLjY4NS0yOS4yNzcgMjcuNjg4LTMwLjgwNWwyNi41NTktMi42NjZ2MjYuNDk4YzAgMTUuMTkyLTEyLjY3OSAyOS4yOTktMjcuNjkyIDMwLjgwNWwtMTUuNDE0IDEuNTU3IDE5LjA2OC0yMS4wOTZjMi43NzctMy4wNzMgMi41MzctNy44MTYtLjUzNS0xMC41OTMtMy4wNzItMi43NzUtNy44MTQtMi41MzktMTAuNTk0LjUzNWwtMTkuMDc5IDIxLjEwOHYtMTUuMzQzem0tNDQuOTgtMzQuMjg2IDE5LjA2OSAyMS4wOTctMTUuNDA5LTEuNTU3Yy0xNS4wMTUtMS41MjgtMjcuNjk5LTE1LjYzNS0yNy42OTktMzAuODA1di0yNi40OTVsMjYuNTIxIDIuNjYzYzE1LjAxNSAxLjUyNiAyNy40OTkgMTUuNjMzIDI3LjQ5OSAzMC44MDV2MTUuMDkxbC0xOC44NTItMjAuODU3Yy0yLjc3OC0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M3ptLTEzNC4yNzMgMzQuMjg2YzAtMTUuMTcgMTIuNjg1LTI5LjI3NyAyNy42ODgtMzAuODA1bDI2LjUzLTIuNjYzdjI2LjQ5NWMwIDE1LjE5NS0xMi42NzkgMjkuMzAxLTI3LjY5MiAzMC44MDVsLTE1LjQwNSAxLjU1NyAxOS4wODMtMjEuMDk0YzIuNzc5LTMuMDcyIDIuNTQyLTcuODE0LS41My0xMC41OTMtMy4wNjgtMi43NzgtNy44MTMtMi41NDItMTAuNTkzLjUzbC0xOS4wODEgMjEuMDkxem0tNDQuOTgxLTM0LjI4NiAxOS4wNjkgMjEuMDk3LTE1LjQwOS0xLjU1OGMtMTUuMDE1LTEuNTI4LTI3LjY5OS0xNS42MzUtMjcuNjk5LTMwLjgwNXYtMjYuNDk1bDI2LjUyIDIuNjYzYzE1LjAxNSAxLjUyOCAyNy41MDEgMTUuNjM1IDI3LjUwMSAzMC44MDV2MTUuMDkybC0xOC44NTMtMjAuODU4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41MjEtLjUzNSAxMC41OTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",pxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNi42MjIgMTUxLjc0MWgxMC44djM1LjY4MWMwIDExLjEyNSA5LjA1MSAyMC4xNzUgMjAuMTc1IDIwLjE3NWgxNC44MTRjNC43OTkgMCA5LjIwOC0xLjY5MSAxMi42NzUtNC41IDMuNDY3IDIuODA5IDcuODc1IDQuNSAxMi42NzUgNC41aDE0LjgxNGMxMS4xMjQgMCAyMC4xNzUtOS4wNSAyMC4xNzUtMjAuMTc1di0zOS45NGgyMC4xMzl2MTg1LjExNWgtMjMuNDU3Yy0xMC45MzggMC0xOS44MzcgOC44OTgtMTkuODM3IDE5LjgzNnYzNy4zMjRjMCA5Ljk2OCA3LjM5OCAxOC4yMTkgMTYuOTg4IDE5LjYwOHY4Ny41NzZjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzVjOC4zMDQgMCAxNS4wNTktNi43NTUgMTUuMDU5LTE1LjA1OXYtNTMuODQ0aDUxLjQ2NGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWMtOS43NjUgMC04NS43ODUgMC05Ni45MTcgMHYtMTguNTAzaDIyOC44MzR2MTguNTAzYy0xMS4xMzcgMC04Ny4yMTcgMC05Ni45MTcgMC00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU3IDcuNSA3LjUgNy41aDUxLjQ2NXY1My44NDRjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzRjOC4zMDQgMCAxNS4wNi02Ljc1NSAxNS4wNi0xNS4wNTkgMC0xMC4xNTQgMC03Ny4wMzYgMC04Ny41NzYgOS41OS0xLjM4OSAxNi45ODgtOS42NCAxNi45ODgtMTkuNjA4di0zNy4zMjRjMC0xMC45MzgtOC44OTgtMTkuODM2LTE5LjgzNy0xOS44MzZoLTIzLjQ1N3YtNzUuMDU4YzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc1LjA1OGgtMjUuMTY0YzAtMjEuNzEzIDAtMTYyLjkxMiAwLTE4NS4xMTVoMjUuMTY0djc1LjA1OGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di03NS4wNThoMjAuMTM5djM5Ljk0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1aDE0LjgxNGM0Ljc5OSAwIDkuMjA4LTEuNjkxIDEyLjY3NS00LjUgMy40NjcgMi44MDkgNy44NzUgNC41IDEyLjY3NCA0LjVoMTQuODE1YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTM1LjY4MWgxMC44YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTE0LjgxNGMwLTExLjEyNS05LjA1MS0yMC4xNzUtMjAuMTc1LTIwLjE3NWgtMTAuOHYtMzUuNjgxYzAtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTVjLTQuNzk5IDAtOS4yMDcgMS42OTEtMTIuNjc0IDQuNS0zLjQ2Ny0yLjgwOS03Ljg3NS00LjUtMTIuNjc1LTQuNWgtMTQuODE0Yy0xMS4xMjQgMC0yMC4xNzUgOS4wNS0yMC4xNzUgMjAuMTc0djM5Ljk0MWgtMjAuMTM5di04MC42NjNjLS4wMDEtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTRjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzR2NTAuNTM0aC05NS44OTZ2LTUwLjUzNGMwLTExLjEyNC05LjA1LTIwLjE3NC0yMC4xNzQtMjAuMTc0aC0xNC44MTVjLTExLjEyNCAwLTIwLjE3NCA5LjA1LTIwLjE3NCAyMC4xNzR2ODAuNjYzaC0yMC4xMzl2LTM5Ljk0MWMwLTExLjEyNC05LjA1MS0yMC4xNzQtMjAuMTc1LTIwLjE3NGgtMTQuODE0Yy00Ljc5OSAwLTkuMjA4IDEuNjkxLTEyLjY3NSA0LjUtMy40NjctMi44MDktNy44NzUtNC41LTEyLjY3NS00LjVoLTE0LjgxNGMtMTEuMTI0IDAtMjAuMTc1IDkuMDUtMjAuMTc1IDIwLjE3NHYzNS42ODFoLTEwLjhjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzV2MTQuODE0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1em0xNDEuMjY3LTQuMjZoMjUuMTYzdjE4NS4xMTVoLTI1LjE2M3ptNDAuMTYzIDY4LjcxMmg5NS44OTZ2NzYuOTAxaC05NS44OTZ6bTk1Ljg5NS0xNWgtOTUuODk2di0yMy41ODNoOTUuODk2em0tMTMxLjkxOSAyNDEuOTA0LS4wNTEgNTMuOTAzLTMwLjM5My0uMDM5YzAtLjAwMS0uMDAxLS4wMDgtLjAwMS0uMDJ2LTUzLjg0NHptMTk4LjMyOSA1My45MDMtMzAuMzkzLS4wNTl2LTUzLjg0NGgzMC40NDV6bTEyLjIxMS0xNDkuNDAzYzIuNjY3IDAgNC44MzcgMi4xNjkgNC44MzcgNC44MzZ2MzcuMzI0YzAgMi42NjctMi4xNyA0LjgzNi00LjgzNyA0LjgzNi0xMy4yMDIgMC0yNDEuMjU2IDAtMjUzLjEzNyAwLTIuNjY3IDAtNC44MzctMi4xNjktNC44MzctNC44MzZ2LTM3LjMyNGMwLTIuNjY3IDIuMTctNC44MzYgNC44MzctNC44MzZ6bS0xNzQuNTE2LTE1di0yNC41MDNoOTUuODk2djI0LjUwM3ptOTUuODk1LTE2OS45ODdoLTk1Ljg5NnYtMTUuMTI4aDk1Ljg5NnptLTExNS45NzctMzAuMTI5di0xNi42NDVoMTM2LjA2djE2LjY0NWMtNC42NTMgMC0xMzAuNDExIDAtMTM2LjA2IDB6bTI5Ny40MDgtMjAuOTA0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NXYxNC44MTRjMCAyLjgwNS0yLjM3IDUuMTc1LTUuMTc1IDUuMTc1aC0xMC44di0yNS4xNjR6bS00NS43OS01NS44NTVoMTQuODE1YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE1Yy0yLjgwNSAwLTUuMTc0LTIuMzctNS4xNzQtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM2OS01LjE3NCA1LjE3NC01LjE3NHptLTQ1LjMzOCA1LjE3NGMwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtMi45MDQgMC0xMjIuNjAyIDAtMTI2LjUyNnptLTE1IDcxLjU4NWMtMTMuNDYzIDAtMjUuMTg2IDAtNDAuMjIxIDB2LTE2LjY0NWg0MC4yMjF6bS02MC4zMDMtMTEyLjMwN2MwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODU0IDAgNS4xNzUgMi4zMjEgNS4xNzUgNS4xNzR2ODAuNjYzYy05LjEwNiAwLTE2LjA1OCAwLTI1LjE2NCAwIDAtOS4zNzMgMC03MC44ODUgMC04MC42NjN6bS0xNSA2NS41MzR2MTUuMTI4aC05NS44OTZ2LTE1LjEyOHptLTEzNi4wNTgtNjUuNTM0YzAtMi44MDUgMi4zNjktNS4xNzQgNS4xNzQtNS4xNzRoMTQuODE1YzIuODA1IDAgNS4xNzQgMi4zNyA1LjE3NCA1LjE3NHY4MC42NjNjLTkuMTA0IDAtMTYuMDM5IDAtMjUuMTYzIDB6bTUuMDgxIDk1LjY2M3YxNi42NDVjLTE1LjI3MyAwLTI2LjQ2IDAtNDAuMjIgMHYtMTYuNjQ1em0tNzUuMjA5LTYwLjExNWgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjgwNSAwLTUuMTc1LTIuMzctNS4xNzUtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM3LTUuMTc0IDUuMTc1LTUuMTc0em0tNDUuMzM5IDUuMTc0YzAtMi44MDUgMi4zNy01LjE3NCA1LjE3NS01LjE3NGgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtNS42NzkgMC0xMjAuODI3IDAtMTI2LjUyNnptLTMwLjk3NSA1NS44NTZjMC0yLjg1NCAyLjMyMS01LjE3NSA1LjE3NS01LjE3NWgxMC44djI1LjE2NGgtMTAuOGMtMi44NTQgMC01LjE3NS0yLjMyMS01LjE3NS01LjE3NXoiLz4KICAgIDwvZz4KPC9zdmc+",Axe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDI4MGgtMTZWMTY2LjRjMC0xMi05LjYtMjIuNC0yMi40LTIyLjRoLTRjLTEyLDAtMjIuNCw5LjYtMjIuNCwyMi40VjI4MGgtMjR2LTE2YzAtMTMuNi0xMC40LTI0LTI0LTI0SDEyMAoJCQljLTEzLjYsMC0yNCwxMC40LTI0LDI0djE2SDcyVjE2Ni40YzAtMTItOS42LTIyLjQtMjIuNC0yMi40aC0zLjJjLTEyLjgsMC0yMi40LDkuNi0yMi40LDIyLjRWMjgwSDhjLTQuOCwwLTgsMy4yLTgsOHMzLjIsOCw4LDhoOAoJCQl2MTQ0YzAsNC44LDMuMiw4LDgsOGg4djhjMCw0LjgsMy4yLDgsOCw4czgtMy4yLDgtOHYtOGgzODR2OGMwLDQuOCwzLjIsOCw4LDhzOC0zLjIsOC04di04aDhjNC44LDAsOC0zLjIsOC04VjI5Nmg4CgkJCWM0LjgsMCw4LTMuMiw4LThTNDc2LjgsMjgwLDQ3MiwyODB6IE00MzAuNCwxNjBoNGMzLjIsMCw2LjQsMi40LDYuNCw2LjRWMjgwaC0xNlYxNjYuNEg0MjRDNDI0LDE2My4yLDQyNi40LDE2MCw0MzAuNCwxNjB6CgkJCSBNMTEyLDI2NGMwLTQuOCwzLjItOCw4LThoMjQwYzQuOCwwLDgsMy4yLDgsOHYxNkgxMTJWMjY0eiBNNDAsMTY2LjRjMC00LDIuNC02LjQsNi40LTYuNGg0YzMuMiwwLDUuNiwyLjQsNS42LDYuNFYyODBINDBWMTY2LjR6CgkJCSBNMjMyLDQzMkgzMnYtNjRoMjAwVjQzMnogTTQ0OCw0MzJIMjQ4di02NGgyMDBWNDMyeiBNNDQ4LDM1MkgzMnYtNTZoNDE2VjM1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjA4LDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzIxNiwzODcuMiwyMTIuOCwzODQsMjA4LDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjcyLDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzI4MCwzODcuMiwyNzYuOCwzODQsMjcyLDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzg0LDE2SDk2Yy00LjgsMC04LDMuMi04LDh2MTYwYzAsNC44LDMuMiw4LDgsOGgyODhjNC44LDAsOC0zLjIsOC04VjI0QzM5MiwxOS4yLDM4OC44LDE2LDM4NCwxNnogTTM3NiwxNzZIMTA0VjMyaDI3MgoJCQlWMTc2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTIsMTQ0aC04Yy00LjgsMC04LDMuMi04LDhzMy4yLDgsOCw4aDhjNC44LDAsOC0zLjIsOC04UzM1Ni44LDE0NCwzNTIsMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTcuNiw1MC40Yy0zLjItMy4yLTgtMy4yLTExLjIsMGwtMjQsMjRjLTMuMiwzLjItMy4yLDgsMCwxMS4yYzMuMiwzLjIsOCwzLjIsMTEuMiwwbDI0LTI0CgkJCUMxNjAuOCw1OC40LDE2MC44LDUzLjYsMTU3LjYsNTAuNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMTk3LjYsNTAuNGMtMy4yLTMuMi04LTMuMi0xMS4yLDBsLTU2LDU2Yy0zLjIsMy4yLTMuMiw4LDAsMTEuMmMzLjIsMy4yLDgsMy4yLDExLjIsMGw1Ni01NgoJCQlDMjAwLjgsNTguNCwyMDAuOCw1My42LDE5Ny42LDUwLjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",mxe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2aC0xNDRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTg0aC0xNzZ2LTI0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0djE2aDE2djE2aC0zMnYtMzJoLTE2djMyaC0zMnYtMTZoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYyNGgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTc2YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoNDY0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTM2OGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMTM2IDE2aDEyOHY5NmgtMTI4em0tMTYgMjI0aC0xNDR2LTMyaDE0NHptLTMwNC0zMmgxNDR2MzJoLTE0NHptMCA0OGgxNDR2MTEyaC0xNDR6bTE2MCAwaDY0djExMmgtNjR6bTgwIDBoNjR2MTEyaC02NHptODAgMTEydi0yNDBoMTI4djI0MHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAxNDRoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDI1NmgxNnYzMmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im04MCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTIgMzIwYzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ0IDMyMGMwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4cy04LTMuNTgyMDMxLTgtOCAzLjU4MjAzMS04IDgtOCA4IDMuNTgyMDMxIDggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggMTUyaDE2MGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGMwLTIuMTIxMDk0LS44NDM3NS00LjE1NjI1LTIuMzQzNzUtNS42NTYyNWwtMzItMzJjLTEuNS0xLjUtMy41MzUxNTYtMi4zNDM3NS01LjY1NjI1LTIuMzQzNzVoLTh2LTcyYzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTY0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djcyaC04Yy0yLjEyMTA5NCAwLTQuMTU2MjUuODQzNzUtNS42NTYyNSAyLjM0Mzc1bC0zMiAzMmMtMS41IDEuNS0yLjM0Mzc1IDMuNTM1MTU2LTIuMzQzNzUgNS42NTYyNXYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em01Ni0xMzZoNDh2NjRoLTQ4em0tNDggMTA3LjMxMjUgMjcuMzEyNS0yNy4zMTI1aDg5LjM3NWwyNy4zMTI1IDI3LjMxMjV2MTIuNjg3NWgtMTQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDM2OGgtOTZjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg5NmM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di02NGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tOCA2NGgtODB2LTQ4aDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjMyIDMxMmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDggMzkyaDE2djMyaC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3MiAzOTJoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyIDIwMGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi0xNTMuMTM2NzE5aC0xNnYxNTMuMTM2NzE5Yy0xNC4wODU5MzggMy42MzY3MTktMjMuOTQ1MzEyIDE2LjMxNjQwNi0yNCAzMC44NjMyODF2OGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em0yNC0zMmM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2aC0zMmMwLTguODM1OTM4IDcuMTY0MDYyLTE2IDE2LTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDEzNmg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi04OS4xMzY3MTloLTE2djg5LjEzNjcxOWMtMTQuMDg1OTM4IDMuNjM2NzE5LTIzLjk0NTMxMiAxNi4zMTY0MDYtMjQgMzAuODYzMjgxdjhjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOHptMjQtMzJjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNmgtMzJjMC04LjgzNTkzOCA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Oxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTAuNDE3IDIzMy4yMjUtNTguNjQ0LTExNy4yNzljLTE1LjkzOS0zMS44NzctNDcuOTc4LTUxLjY4LTgzLjYyLTUxLjY4LTguNTg2IDAtMTYuOTg0IDEuMTg4LTI1LjAzMiAzLjQzNy4xMDUtMS40ODkuMTc4LTIuOTg4LjE3OC00LjUwMyAwLTM0Ljg0OS0yOC4zNTEtNjMuMi02My4yLTYzLjJzLTYzLjIgMjguMzUyLTYzLjIgNjMuMmMwIDMwLjk5MyAyMi40MzIgNTYuODI4IDUxLjkwOSA2Mi4xNjlsLTYxLjM2NiA2MS40N2MtNi44NzUgNi44ODYtMjEuODcxIDI3LjgyLTEwLjMzMyA1NC40Ni0xLjcwNS0uMTkxLTMuNDIxLS4yOTktNS4xNDQtLjI5OS0yMy4wODcgMC00Mi4zMzYgMTYuNjktNDYuMzUxIDM4LjYzNS03Ljc0LTQuMTQ0LTE2LjU3My02LjUwMS0yNS45NDktNi41MDEtMzAuNDE5IDAtNTUuMTY3IDI0Ljc0OC01NS4xNjcgNTUuMTY3IDAgOS4wNjMgMi4yMTEgMTcuNjE1IDYuMSAyNS4xNjdoLTQwLjU5OHYtMzM4LjQ2OGMwLTguMjg0LTYuNzE2LTE1LTE1LTE1cy0xNSA2LjcxNi0xNSAxNXY0ODJjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNXMxNS02LjcxNiAxNS0xNXYtNDkuMjY3aDMwNi41NjNjOC4yODQgMCAxNS02LjcxNiAxNS0xNXYtNjQuMjY3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTM2LjQxMmMzLjI3NC04LjM5NSAzLjIxNC0xNS4yNjMgMy4yMTQtMTguMiAyOC40NjkgMCA0OC4yLTIyLjA5OCA0OC4yLTQ3LjEzMyAwLTI1Ljk4OS0yMS4xNDQtNDcuMTMzLTQ3LjEzMy00Ny4xMzNoLTEyLjMwNGw1NS45MDQtNTYuMDg2IDUzLjczNiAxMDYuNzc3LS4xMDMgMjA1LjMwMWMtLjAwMiAzLjk3OSAxLjU3OCA3Ljc5NiA0LjM5MSAxMC42MTEgMi44MTMgMi44MTQgNi42MyA0LjM5NiAxMC42MDkgNC4zOTZoODAuMzM1YzguMjg0IDAgMTUtNi43MTYgMTUtMTV2LTI1Ny4wNjZjMC0yLjMyOS0uNTQyLTQuNjI1LTEuNTgzLTYuNzA4em0tMjYzLjUxNy0xNzAuMDI1YzAtMTguMzA3IDE0Ljg5NC0zMy4yIDMzLjItMzMuMnMzMy4yIDE0Ljg5NCAzMy4yIDMzLjItMTQuODk0IDMzLjItMzMuMiAzMy4yYy0xOC4zMDcgMC0zMy4yLTE0Ljg5My0zMy4yLTMzLjJ6bS0xMjcuMjMzIDIzOS45MzNjMTMuODc3IDAgMjUuMTY3IDExLjI5IDI1LjE2NyAyNS4xNjdzLTExLjI5IDI1LjE2Ny0yNS4xNjcgMjUuMTY3LTI1LjE2Ny0xMS4yOS0yNS4xNjctMjUuMTY3IDExLjI5LTI1LjE2NyAyNS4xNjctMjUuMTY3em0yMDEuODk2IDgwLjMzNHYzNC4yNjdoLTI5MS41NjN2LTM0LjI2N3ptLTE3LjEzLTExMi40NjdjOS40NDcgMCAxNy4xMzMgNy42ODYgMTcuMTMzIDE3LjEzMyAwIDkuNTgzLTcuODE0IDE3LjEzMy0xNy4xMzMgMTcuMTMzaC0xNi4wNjdjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2MTYuMDY3YzAgOS41ODMtNy44MTQgMTcuMTMzLTE3LjEzMyAxNy4xMzNoLTY0LjI2N2MtOS40NDcgMC0xNy4xMzMtNy42ODYtMTcuMTMzLTE3LjEzM3YtNDguMmMwLTkuNDQ3IDcuNjg2LTE3LjEzMyAxNy4xMzMtMTcuMTMzIDkuMjk3IDAgMTcuMTMzIDcuNTI2IDE3LjEzMyAxNy4xMzN2MTYuMDY3YzAgOC4yODQgNi43MTYgMTUgMTUgMTVzMTUtNi43MTYgMTUtMTV2LTE2LjA2N2MwLTkuNDI5IDcuNjE2LTE3LjEzMyAxNy4xMzMtMTcuMTMzem0xNzcuNTY3IDIxMWgtNTAuMzI2bC4wOTctMTkzLjg1OWMuMDAxLTIuMzQ0LS41NDctNC42NTYtMS42MDEtNi43NWwtNjQuNjg1LTEyOC41MzNjLTIuMTY3LTQuMzA1LTYuMjY5LTcuMzA2LTExLjAyNy04LjA2OC00Ljc2MS0uNzYyLTkuNTk0LjgxLTEyLjk5NSA0LjIyMmwtODYuNDU4IDg2LjczOWMtNy4yNjMgNy4yOTEtMTkuMTE1IDYuODA3LTI2LjMwOC0uMzg2LTcuMzgxLTcuMzgxLTcuNzI4LTE5LjYxMS0uMDIyLTI3LjMyOWw5NS4yNy05NS40MzFjMTEuNzk5LTExLjgyNSAyNy41LTE4LjMzNyA0NC4yMTctMTguMzM3IDI0LjE5OSAwIDQ1Ljk1NSAxMy40NDggNTYuNzc5IDM1LjA5N2w1Ny4wNTkgMTE0LjEwOXoiLz4KICAgIDwvZz4KPC9zdmc+",Exe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTkyLjU0NSwxODUuMDljNTEuMDI5LDAsOTIuNTQ1LTQxLjUxNiw5Mi41NDUtOTIuNTQ1UzE0My41NzQsMCw5Mi41NDUsMFMwLDQxLjUxNiwwLDkyLjU0NSAgICBTNDEuNTE2LDE4NS4wOSw5Mi41NDUsMTg1LjA5eiBNOTIuNTQ1LDIwYzQwLjAwMSwwLDcyLjU0NSwzMi41NDQsNzIuNTQ1LDcyLjU0NXMtMzIuNTQ0LDcyLjU0NS03Mi41NDUsNzIuNTQ1ICAgIFMyMCwxMzIuNTQ2LDIwLDkyLjU0NVM1Mi41NDQsMjAsOTIuNTQ1LDIweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDAuNTAxLDExNC41MjZjMS45NTIsMS45NDUsNC41MDYsMi45MTcsNy4wNiwyLjkxN2MyLjU2NCwwLDUuMTMtMC45OCw3LjA4My0yLjk0ICAgIGMzLjg5OC0zLjkxMiwzLjg4OC0xMC4yNDQtMC4wMjMtMTQuMTQzbC0xMi4wMDgtMTEuOTY4VjQ0YzAtNS41MjItNC40NzgtMTAtMTAtMTBzLTEwLDQuNDc4LTEwLDEwdjQ4LjU0NSAgICBjMCwyLjY1OCwxLjA1OSw1LjIwNywyLjk0LDcuMDgzTDEwMC41MDEsMTE0LjUyNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNTAyLDMzMmgtNjEuNTQ3Yy04LjQ2LTEyLjAzNC0yMS4xNzItMjAuNTU4LTM1LjY3MS0yMy43MjhsLTQzLjk2NC05LjYxMyAgICBjMTcuOTkxLTEyLjEzNCwyOS44NDctMzIuNzAyLDI5Ljg0Ny01NS45ODh2LTI0LjQxN3YtMTEuMjk3di0yLjU0MmMwLTM3LjIxMi0zMC4yNzQtNjcuNDg2LTY3LjQ4Ni02Ny40ODYgICAgcy02Ny40ODYsMzAuMjc0LTY3LjQ4Niw2Ny40ODZ2Mi41NDJ2MTEuMjk3djI0LjQxN2MwLDIzLjI1NiwxMS44MjUsNDMuODAzLDI5Ljc3OCw1NS45NDNsLTQzLjkzNiw5LjYzOSAgICBjLTEuODc3LDAuNDEyLTMuNzIyLDAuOTE3LTUuNTM1LDEuNTAyVjIyN2MwLTUuNTIyLTQuNDc4LTEwLTEwLTEwaC02OGMtNS41MjIsMC0xMCw0LjQ3OC0xMCwxMHM0LjQ3OCwxMCwxMCwxMGg1OHYxNDBoLTY4di01MCAgICBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwcy0zMCwxMy40NTgtMzAsMzB2NTBIMjBWMjM3aDU4YzUuNTIyLDAsMTAtNC40NzgsMTAtMTBzLTQuNDc4LTEwLTEwLTEwSDEwYy01LjUyMiwwLTEwLDQuNDc4LTEwLDEwdjE2MCAgICBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg3OHYxOWgtMWMtMTcuMDk0LDAtMzEsMTMuOTA2LTMxLDMxdjVIMTBjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg0OTIgICAgYzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTQwdi00MHYtNDB2LTQwQzUxMiwzMzYuNDc4LDUwNy41MjIsMzMyLDUwMiwzMzJ6IE00NDEuMTc5LDQ1MkgzODR2LTIwaDEwOHYyMEg0NDEuMTc5eiBNNDkyLDQxMkgzODQgICAgdi0yMGgxMDhWNDEyeiBNNDkyLDM3MkgzODR2LTIwaDUwLjg3NGMwLjAzLDAsMC4wNiwwLjAwNiwwLjA4OSwwLjAwNmMwLjAzMSwwLDAuMDYzLTAuMDA2LDAuMDk0LTAuMDA2SDQ5MlYzNzJ6IE0yNzUuNjkyLDIwNC40MTYgICAgYzAtMjYuMTg0LDIxLjMwMy00Ny40ODYsNDcuNDg2LTQ3LjQ4NmMyNC45MzMsMCw0NS40MzksMTkuMzE0LDQ3LjM0Miw0My43NjdsLTIzLjI0Ni0xMy42NTcgICAgYy00LjIxMS0yLjQ3NS05LjU5My0xLjU0NC0xMi43MywyLjE5OWMtMTAuMTI2LDEyLjA4NS0yNC45NzcsMTkuMDE3LTQwLjc0NCwxOS4wMTdoLTE4LjEwN3YtMS4yOTdWMjA0LjQxNnogTTI3NS42OTIsMjI4LjI1NSAgICBIMjkzLjhjMTguODI1LDAsMzYuNy03LjE3OSw1MC4yMDUtMTkuOTRsMjYuNjYsMTUuNjYzdjE4LjY5NGMwLDI2LjE4NC0yMS4zMDMsNDcuNDg2LTQ3LjQ4Niw0Ny40ODZzLTQ3LjQ4Ni0yMS4zMDMtNDcuNDg2LTQ3LjQ4NiAgICBWMjI4LjI1NXogTTMzOC44NDQsMzA4LjMwM2wtMTUuODE1LDQyLjI5NGwtMTUuODQ0LTQyLjM3YzUuMTMsMS4yNTIsMTAuNDgzLDEuOTMxLDE1Ljk5MywxLjkzMSAgICBDMzI4LjU3MiwzMTAuMTU4LDMzMy44MTMsMzA5LjUwNCwzMzguODQ0LDMwOC4zMDN6IE0yMjYsMzk3YzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTU1LjYyM2MzLjA4NS0xLjYyNiw2LjM3NC0yLjgzMiw5LjgyLTMuNTg4ICAgIGw0My43NC05LjU5NmwyNC4xMDMsNjQuNDU3YzEuNDYxLDMuOTA3LDUuMTk0LDYuNDk3LDkuMzY2LDYuNDk3czcuOTA1LTIuNTksOS4zNjYtNi40OThsMjQuMTA0LTY0LjQ2MWw0NC4wMTEsOS42MjMgICAgYzMuODYzLDAuODQ0LDcuNTI5LDIuMjc0LDEwLjkwMiw0LjE4OEgzNzRjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDB2NDB2MzBIMjE1LjE3OXYtNTVIMjI2eiBNMTk1LjE3OSwzOTd2NTVIMTgwdi01ICAgIGMwLTE3LjA5NC0xMy45MDYtMzEtMzEtMzFoLTF2LTE5SDE5NS4xNzl6IE0xMDgsMzI3YzAtNS41MTQsNC40ODYtMTAsMTAtMTBzMTAsNC40ODYsMTAsMTB2ODloLTIwVjMyN3ogTTc2LDQ0NyAgICBjMC02LjA2NSw0LjkzNS0xMSwxMS0xMWgxMWg0MGgxMWM2LjA2NSwwLDExLDQuOTM1LDExLDExdjVINzZWNDQ3eiBNNDkyLDQ5MkgyMHYtMjBoNDcyVjQ5MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzLDIxOS45M2MtMS44NiwxLjg2LTIuOTMsNC40NC0yLjkzLDcuMDdzMS4wNjksNS4yMSwyLjkzLDcuMDY5YzEuODYsMS44Niw0LjQ0LDIuOTMxLDcuMDcsMi45MzEgICAgczUuMjEtMS4wNyw3LjA2OS0yLjkzMUMxMjYuOTMsMjMyLjIxLDEyOCwyMjkuNjMsMTI4LDIyN3MtMS4wNy01LjIxLTIuOTMxLTcuMDdjLTEuODU5LTEuODYtNC40MzktMi45My03LjA2OS0yLjkzICAgIFMxMTIuNzksMjE4LjA2OSwxMTAuOTMsMjE5LjkzeiIvPgogICAgPC9nPgo8L3N2Zz4K",fxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTUsMzUuOTM1YzQuNDkzLS41NTUsOC00LjgsOC05LjkzNSwwLTQuODg1LTMuNTM1LTE5LTktMTlzLTksMTQuMTE1LTksMTljMCw1LjEzOCwzLjUwNyw5LjM4LDgsOS45MzVWNDJINDkuOTQ5YTkuOTc4LDkuOTc4LDAsMCwwLTE0LjQ0MS03LjkyMmwtMS42LTIuNTEzTDMyLjM4OCwyN0gzNi41YTEuNSwxLjUsMCwwLDEsMCwzSDM2djJoLjVhMy41LDMuNSwwLDAsMCwwLTdIMzFhMSwxLDAsMCwwLS45NDgsMS4zMTZMMzEuNjEzLDMxSDIwVjI5aDNhMSwxLDAsMCwwLDEtMSw1LDUsMCwwLDAtMTAsMCwxLDEsMCwwLDAsMSwxaDN2Mi42NzVsLTEuOTY0LDIuN2E5Ljk5MSw5Ljk5MSwwLDEsMCw0LjUxLDExLjYwNiwzLjk4NSwzLjk4NSwwLDEsMCw2LjQyNS00LjYzNGw1LjUyMS04LjI4MywxLjMyOSwyLjA4OUE5Ljk5NSw5Ljk5NSwwLDEsMCw0OS45NDksNDRINjNWNDJINTVaTTQ3LDI2YzAtNS4wNjcsMy42NjEtMTcsNy0xN3M3LDExLjkzMyw3LDE3YzAsNC4wMjItMi42MTQsNy4zNTEtNiw3LjkwOVYxOC41MzVsMi41NTUtMS43LTEuMTEtMS42NjQtMywyQTEsMSwwLDAsMCw1MywxOHY3bC0yLjQtMS44LTEuMiwxLjZMNTMsMjcuNXY2LjQwOUM0OS42MTQsMzMuMzUxLDQ3LDMwLjAyMiw0NywyNlpNMTksMjVhMy4wMDYsMy4wMDYsMCwwLDEsMi44MjksMkgxNi4xNzFBMy4wMDYsMy4wMDYsMCwwLDEsMTksMjVabTUsMTVhMy44MzYsMy44MzYsMCwwLDAtLjU2LjA1N0wyMC41LDMzaDkuNjMybC00LjgyNSw3LjIzN0EzLjk2OCwzLjk2OCwwLDAsMCwyNCw0MFpNMTEsNTFhOCw4LDAsMSwxLDMuODU3LTE1bC0zLjAxMSw0LjE0QTIuOTYsMi45NiwwLDAsMCwxMSw0MGEzLDMsMCwxLDAsMi43MzgsNC4yMTRsNS4xLjM5MkE4LjAxNCw4LjAxNCwwLDAsMSwxMSw1MVptNy45OC04LjM4OS01LjEtLjM5MmEzLjAwNSwzLjAwNSwwLDAsMC0uNDE0LS45MTZsMy00LjEyNUE3Ljk2OSw3Ljk2OSwwLDAsMSwxOC45OCw0Mi42MTFaTTEyLDQzYTEsMSwwLDEsMS0xLTFBMSwxLDAsMCwxLDEyLDQzWm04Ljg3OS0xLjQ3MmE5Ljk2OCw5Ljk2OCwwLDAsMC0zLjIyOC01Ljk3NGwxLjExMS0xLjUyNywyLjgzMiw2LjhBNC4wMzIsNC4wMzIsMCwwLDAsMjAuODc5LDQxLjUyOFpNMjQsNDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjQsNDZabTE2LDVhOCw4LDAsMCwxLTUuMS0xNC4xNTZsMi43NDgsNC4zMTlBMi45NjYsMi45NjYsMCwwLDAsMzcsNDNhMywzLDAsMSwwLDMtMywyLjk2MywyLjk2MywwLDAsMC0uNjcxLjA4MmwtMi43NDEtNC4zMDdBOCw4LDAsMSwxLDQwLDUxWm0wLTlhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsNDAsNDJaIi8+CiAgICAgICAgPHBhdGggZD0iTTcsMThhNCw0LDAsMCwwLDIuNzg4LTEuMTM5LDUuNjMzLDUuNjMzLDAsMCwwLDMuOTYxLS41NDVBMy45NTQsMy45NTQsMCwwLDAsMTcsMThhNCw0LDAsMSwwLS4wODMtOCw2LDYsMCwwLDAtMTEuOS41MzhBMy45OTIsMy45OTIsMCwwLDAsNywxOFptLS42NTMtNS44NzdhMSwxLDAsMCwwLC42Ny0uOTc3QS42LjYsMCwwLDAsNywxMWE0LDQsMCwwLDEsOC0uMDQxYzAsLjAzMy0uMDE4LjE1Mi0uMDIuMTg1YTEsMSwwLDAsMCwxLjMzOS45ODZBMS45NywxLjk3LDAsMCwxLDE3LDEyYTIsMiwwLDEsMS0xLjksMi41NzMsMSwxLDAsMCwwLTEuNTg5LS40ODcsMy44LDMuOCwwLDAsMS0zLjc1MS42OTMsMSwxLDAsMCwwLTEuMTI5LjM3MiwxLjk5NCwxLjk5NCwwLDEsMS0yLjI4Mi0zLjAyOFoiLz4KICAgICAgICA8cmVjdCB4PSIxIiB5PSI1NSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",xxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xNjguOTkyIDI3Ny41OTFjMC0yNi41NTEtMjEuNjAxLTQ4LjE1MS00OC4xNTEtNDguMTUxcy00OC4xNTEgMjEuNjAxLTQ4LjE1MSA0OC4xNTEgMjEuNjAxIDQ4LjE1IDQ4LjE1MSA0OC4xNSA0OC4xNTEtMjEuNiA0OC4xNTEtNDguMTV6bS04MS4zMDMgMGMwLTE4LjI3OSAxNC44NzItMzMuMTUxIDMzLjE1MS0zMy4xNTFzMzMuMTUxIDE0Ljg3MiAzMy4xNTEgMzMuMTUxLTE0Ljg3MiAzMy4xNS0zMy4xNTEgMzMuMTUtMzMuMTUxLTE0Ljg3MS0zMy4xNTEtMzMuMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3OS4yNzIgNDYyaC0zNC4wNjJsLTM5LjE1OC0zNi42NjdjLTMuMDIzLTIuODMxLTcuNzctMi42NzUtMTAuNjAxLjM0OXMtMi42NzUgNy43Ny4zNDkgMTAuNjAxbDQxLjMyMSAzOC42OTJjMS4zOSAxLjMwMiAzLjIyMiAyLjAyNSA1LjEyNiAyLjAyNWgzNy4wMjRjOS43NzUgMCAxNy43MjggNy45NTMgMTcuNzI4IDE3LjcyOXYyLjI3MWgtNjAuODQ0Yy0yLjE0OCAwLTQuMjYxLS43MDMtNS45ODEtMS45ODZsLTE4OC40OTItMTc4LjkxNHYtMjQuMTMybDEzMi4yMDcgMTIzLjc5NmMzLjAyMyAyLjgzMSA3Ljc3IDIuNjc1IDEwLjYwMS0uMzQ5czIuNjc1LTcuNzctLjM0OS0xMC42MDFsLTE0Mi40NTktMTMzLjM5NnYtMi40NThjMC04LjI4NC02Ljc0LTE1LjAyNC0xNS4wMjUtMTUuMDI0aC0xMi41NDh2LTQyLjc4NmgxMS40MzhjNi41MzYgMCAxMi4zOC0zLjkwMSAxNC44ODYtOS45MzggMi41MDctNi4wMzcgMS4xNDUtMTIuOTMtMy40NzEtMTcuNTZsLTEwNC43MDYtMTA1LjAzNmMtMS4xNjgtMS4xNzItMi40ODctMi4xMzgtMy45MS0yLjg4OXYtMTAuODY5aDUwLjE0OGM4Ljk1OSAwIDE2LjI0OC03LjI4OSAxNi4yNDgtMTYuMjQ4di0yNS4yMTNjMC04Ljk1OS03LjI4OS0xNi4yNDgtMTYuMjQ4LTE2LjI0OGgtNTAuMTY2Yy0uMTg0LTMuOTc4LTMuNDU4LTcuMTQ5LTcuNDgyLTcuMTQ5LTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjV2NjguMjIzYy0xLjQyNy43NTEtMi43NDkgMS43MTktMy45MiAyLjg5NGwtNDAuMDE1IDQwLjE0Yy0yLjkyNSAyLjkzNC0yLjkxNyA3LjY4Mi4wMTcgMTAuNjA2IDIuOTMzIDIuOTIzIDcuNjgxIDIuOTE3IDEwLjYwNi0uMDE3bDQwLjAxNi00MC4xNDFjLjI3MS0uMjcxLjU3OS0uMzI4Ljc5MS0uMzI4LjIxMSAwIC41MjEuMDU3Ljc5Mi4zMjlsMTA0LjcwNSAxMDUuMDM1Yy4xNTcuMTU4LjUyNy41MjkuMjQgMS4yMTktLjI4Ni42ODktLjgwOS42ODktMS4wMzIuNjg5aC0yMDkuNDFjLS4yMjQgMC0uNzQ3IDAtMS4wMzMtLjY4OXMuMDg0LTEuMDYxLjI0MS0xLjIxOWw0My41MjEtNDMuNjU4YzIuOTI1LTIuOTM0IDIuOTE3LTcuNjgzLS4wMTctMTAuNjA2LTIuOTM0LTIuOTI1LTcuNjgzLTIuOTE4LTEwLjYwNi4wMTdsLTQzLjUyMSA0My42NTdjLTQuNjE1IDQuNjMtNS45NzggMTEuNTIyLTMuNDcyIDE3LjU2MSAyLjUwNyA2LjAzNyA4LjM1IDkuOTM4IDE0Ljg4NyA5LjkzOGgxMS40Mzh2NjkuNDQ0YzAgNC4xNDMgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU3IDcuNS03LjV2LTY5LjQ0NGgxNTYuNTM1djEzMi44ODJoLTE1Ni41MzZ2LTMzLjQ1MmMwLTQuMTQzLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTctNy41IDcuNXYxODYuNDJoLTIwLjA3M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWg0OTdjNC4xNDMgMCA3LjUtMy4zNTcgNy41LTcuNXYtOS43NzFjMC0xOC4wNDctMTQuNjgyLTMyLjcyOS0zMi43MjgtMzIuNzI5em0tMjk5LjUzLTQzOC42MDN2MjUuMjEzYzAgLjY4OC0uNTYgMS4yNDgtMS4yNDggMS4yNDhoLTUwLjE0OHYtMjcuNzA5aDUwLjE0OGMuNjg5IDAgMS4yNDguNTYgMS4yNDggMS4yNDh6bTE2Ny4xOTYgNDEzLjI5MSA2My41NDEgNjAuMzEyaC02My41NDF6bS0xNSA2MC4zMTJoLTYwLjgxMXYtMTMyLjI3bDYwLjgxMSA1Ny43MnptLTc1LjgxLTE0Ni41MDh2MTQ2LjUwOGgtNDIuMDJ2LTE1Ni45NDJoMTIuNTQ4YzQuOTM5IDAgOS4zMTYtMi40MDYgMTIuMDU2LTYuMDk2em0tMjkuNDQ2LTgxLjUzMi0uMDEyIDU2LjA5N3MtLjAwNC4wMDEtLjAxNC4wMDFoLTEyLjU0OHYtNTYuMTEzem0tMjcuNTc0IDIyOC4wNGgtMzcuMTV2LTEzNy45NjloMzcuMTV6bS0xMDQuMzg0LTYxLjQ4NGg1Mi4yMzR2MjEuNDM2aC01Mi4yMzR6bTUyLjIzNC0xNWgtNTIuMjM0di0yMS40MzZoNTIuMjM0em0tNTIuMjM0IDUxLjQzNWg1Mi4yMzR2MjUuMDQ5aC01Mi4yMzR6bTUyLjIzNC0xMTIuOTJ2MjUuMDQ5aC01Mi4yMzR2LTI1LjA0OXptLTEwNC4zODUgMGgzNy4xNXYxMzcuOTY5aC0zNy4xNXoiLz4KICAgIDwvZz4KPC9zdmc+",_xe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Sxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjE2LDI1MkgxMTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzIyMS41MSwyNTIsMjE2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1MmMtNS41MSwwLTEwLDQuNDktMTAsMTBzNC40OSwxMCwxMCwxMHMxMC00LjQ5LDEwLTEwUzI2MS41MSwyNTIsMjU2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzk2LDI1MkgyOTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzQwMS41MSwyNTIsMzk2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjg2LDEwN2gtNjBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NjBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg2MGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi02MAoJCQlDMjk2LDExMS40NzcsMjkxLjUyMywxMDcsMjg2LDEwN3ogTTI3NiwxNjdoLTQwdi00MGg0MFYxNjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMiw0OTJoLTEzVjIzM2MwLTYyLjIzNy0yNC4yMzYtMTIwLjc0OC02OC4yNDQtMTY0Ljc1NkMzNzYuNzQ4LDI0LjIzNiwzMTguMjM3LDAsMjU2LDBTMTM1LjI1MiwyNC4yMzYsOTEuMjQ0LDY4LjI0NAoJCQlTMjMsMTcwLjc2MywyMywyMzN2MjU5SDEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwczQuNDc3LDEwLDEwLDEwaDQ5MmM1LjUyMywwLDEwLTQuNDc3LDEwLTEwUzUwNy41MjMsNDkyLDUwMiw0OTJ6IE0zODYsNDkySDEyNgoJCQl2LTIwaDI2MFY0OTJ6IE0zODYsNDUySDEyNnYtMjBoMjYwVjQ1MnogTTM4Niw0MTJIMTI2di0yMGgyNjBWNDEyeiBNMzg2LDM3MkgxMjZ2LTIwaDI2MFYzNzJ6IE0zODYsMzMySDEyNnYtMjBoMjYwVjMzMnoKCQkJIE00MjksNDkyaC0yM1YzMDJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMEgxMTZjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTkwSDgzVjIzM2MwLTk1LjY2OCw3Ny4zODMtMTczLjUsMTcyLjUtMTczLjUKCQkJQzM1MS4xNjgsNTkuNSw0MjksMTM3LjMzMiw0MjksMjMzVjQ5MnogTTQ2OSw0OTJoLTIwVjIzM2MwLTEwNi42OTYtODYuODA0LTE5My41LTE5My41LTE5My41CgkJCWMtNTEuNjM5LDAtMTAwLjA2MywyMC4xMzctMTM2LjM1Miw1Ni43MDJDODIuOTQsMTMyLjY4NCw2MywxODEuMjY3LDYzLDIzM3YyNTlINDNWMjMzYzAtMTE3LjQ0OSw5NS41NTEtMjEzLDIxMy0yMTMKCQkJczIxMyw5NS41NTEsMjEzLDIxM1Y0OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",kxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MDguNTQxIDIxOC4zODQtMTYyLjUwNy0yMDMuMTM0Yy03Ljc1My05LjY5Mi0xOS4zMTgtMTUuMjUtMzEuNzI5LTE1LjI1aC04My4xNTVjLTguNzAzIDAtMTUuNzgzIDcuMDgtMTUuNzgzIDE1Ljc4M3YxNi41NjdjMCA4LjcwMyA3LjA4IDE1Ljc4MyAxNS43ODMgMTUuNzgzaDMzLjkxN3YxMTcuNTMzaC0zMC42MzJsLTEyMC4zMzQtMTUwLjQxNmMtNy43NTMtOS42OTEtMTkuMzE4LTE1LjI1LTMxLjcyOS0xNS4yNWgtNjYuNTg5Yy04LjcwMyAwLTE1Ljc4MyA3LjA4LTE1Ljc4MyAxNS43ODN2MTYuNTY3YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2gxNy4zNXYxMTcuNTMzaC0xNy4zNWMtOC43MDMuMDAxLTE1Ljc4MyA3LjA4MS0xNS43ODMgMTUuNzg0djMwNi40ODNjMCAxMy4yNzEgMTAuNzk2IDI0LjA2NyAyNC4wNjcgMjQuMDY3aDQ3Mi4xNWM4LjcwMyAwIDE1Ljc4My03LjA4IDE1Ljc4My0xNS43ODN2LTc0LjU1LTE0My4yODktNTAuMTM0YzAtMy41NzEtMS4yMjgtNy4wNzMtMy40NTktOS44NnptLTYyLjAyNCAxOTUuNzgzYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtNzQuNTUtMTIxLjkwOGwxOC4xMzQgMjIuNjY3djE3NC41NzR6bS0yMzEuOTM0IDBjLS40MzIgMC0uNzg0LS4zNTItLjc4NC0uNzgzdi02Ny4wNWgxOC4xMzN2NjcuODMzem0tNjYuMjY2LTgyLjgzNGMtLjQzMiAwLS43ODQtLjM1Mi0uNzg0LS43ODR2LTY3LjA0OWgxOC4xMzN2NjcuODMzem0tNjYuMjY3LTgyLjgzM2MtLjQzMiAwLS43ODMtLjM1Mi0uNzgzLS43ODN2LTY3LjA1aDE4LjEzM3Y2Ny44MzN6bTgzLjYxNi05MS43NDF2OC45MDhoLTE4LjEzM3YtMzEuNTc0em02Ni4yNjcgODIuODMzdjguOTA4aC0xOC4xMzN2LTMxLjU3NHptODEuMjY3IDguMTI1di0xOTYuNDI4Yy4wNzIuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zODl2MTc0LjU3NWgtMTcuMzVjLS40MzEgMC0uNzgzLS4zNTItLjc4My0uNzgzem0xMTcuNTMzIDUwLjQ4M2gtMTguMTMzdi0xMjIuNjkxbDE4LjEzNCAyMi42Njd2MTAwLjAyNHptLTE4LjEzMyAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bS0xNSAxOC4xMzNoLTE3LjM1Yy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4NHYtNzQuNTQ5LTEyMS45MDhsMTguMTMzIDIyLjY2NnptLTMzLjEzMy0xMTUuOTY2aC0xOC4xMzR2LTEyMi42OTFsMTguMTM0IDIyLjY2N3ptLTE4LjEzNCAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzN2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzg0aC04NC40NHYtNTIuOTU1LTE0Ljg3OXptLTk5LjQwMSAxNy41MDl2MTAwLjAyNGgtMTguMTMzdi0xMjIuNjkxbDUuMDg2IDYuMzU3em0tMTUwLjY2Ni0xODguMzMzIDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzMgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptMzMuMTMzLTUuMTU4IDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzQgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptLTExNC40LTk3LjgzM2gtMTguMTMzdi0xMTQuMzc4Yy4wNzMuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zOXptMTUgNjQuN2gxOC4xMzN2MTguMTMzaC0xOC4xMzN6bTY2LjI2NiA4Mi44MzNoMTguMTM0djE4LjEzM2gtMTguMTMzdi0xOC4xMzN6bTY2LjI2NyA4Mi44MzNoMTguMTMzdjE4LjEzM2gtMTguMTMzem0zMy4xMzMtNDkuN2gxNTAuNjY3djY3LjA1YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMTUwLjcwN3ptMjA3LjMxNi03Ny4zNDYgOS42MTggMTIuMDIydjEwMC4wMjRoLTE4LjEzM3YtMTIyLjY5em0tOC41MTUgMTI3LjA0NmgxOC4xMzN2MTguMTMzaC0xOC4xMzN6bS0yNDguNS0zNjMuNjgzdi0xNi41NjdjMC0uNDMyLjM1Mi0uNzgzLjc4My0uNzgzaDgzLjE1NWM3LjgzIDAgMTUuMTI1IDMuNTA2IDIwLjAxNyA5LjYybDE2Mi41MDcgMjAzLjEzNGMwIC4wMDEuMDAxLjAwMS4wMDIuMDAyLjEwOS4xMzcuMTcuMzExLjE3LjQ4OHYyOC43NTNsLTE3MS44NjYtMjE0LjgzMWMtNC41OTMtNS43NC0xMS40NDItOS4wMzItMTguNzkzLTkuMDMyaC0uNjQyLTc0LjU1Yy0uNDMyLS4wMDEtLjc4My0uMzUyLS43ODMtLjc4NHptNjcuODMzIDE1Ljc4M3Y4NC40aC0xOC4xMzR2LTg0LjR6bS0xOC4xMzQgOTkuNGgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzR2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzgzaC0xOC4xNzR2LTIwLjI1NmMwLTMuNTctMS4yMjgtNy4wNzItMy40NTgtOS44NTkgMC0uMDAxIDAtLjAwMSAwLS4wMDFsLTMwLjE3NC0zNy43MThoNTEuNzY2em0tMjgzLjItMTQ4LjMxN3YtMTYuNTY3YzAtLjQzMS4zNTItLjc4My43ODMtLjc4M2g2Ni41ODhjNy44MyAwIDE1LjEyNSAzLjUwNiAyMC4wMTYgOS42MmwxNjIuNTA4IDIwMy4xMzRjLjExLjEzOC4xNzEuMzEzLjE3MS40OXYyOC43NTRsLTE3MS44NjUtMjE0LjgzMmMtNC41OTItNS43NC0xMS40NDItOS4wMzMtMTguNzkzLTkuMDMzaC0uNjQyLTU3Ljk4M2MtLjQzMSAwLS43ODMtLjM1MS0uNzgzLS43ODN6bTUxLjI2NyAxNS43ODN2ODQuNGgtMTguMTM0di04NC40em0tMTguMTM0IDk5LjRoMTguMTMzdjE4LjEzM2gtMTguMTMzem0tMjQuMDY2IDM0OS40NjdjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2N3YtMzA2LjQ4M2MwLS40MzIuMzUyLS43ODQuNzgzLS43ODRoNTAuNDgzdjY3LjA1YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2g1MC40ODN2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODQgMTUuNzg0IDE1Ljc4NGg1MC40ODR2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODMgMTUuNzg0IDE1Ljc4M2g1MC40ODN2NjcuMDVjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yNDAuMjE3em00NzIuOTMzLS43ODNjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yMTYuMTljLjAxMy0uMjYxLjA0LS41MTkuMDQtLjc4M3YtNjcuMDVoMjE2LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+",Yxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk4LDMwLjU5OGgtMTUyYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjQwLjAwM2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDIwLjAwMXY3NC43OTRoLTE5MAoJCQkJYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjQwLjAwMmMwLDUuNTIzLDQuNDc4LDEwLDEwLDEwSDIwMHY3NC43OTZIMTBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NDAuMDAxYzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQkJCWgxMy45OTZWNDcxLjRjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGgxODEuNzZjMi4yNTYsMCw0LjQ0NS0wLjc2Myw2LjIxMy0yLjE2NWwyODYuMjQzLTIyNi45NzIKCQkJCWMyLjM5Mi0xLjg5NiwzLjc4Ni00Ljc4MiwzLjc4Ni03LjgzNVY4MC42MDFWNDAuNTk4QzUxMS45OTgsMzUuMDc1LDUwNy41MjIsMzAuNTk4LDUwMS45OTgsMzAuNTk4eiBNMTg5Ljk5OSwyMDUuMzk3di0yMC4wMDIKCQkJCWgxODB2MjAuMDAySDE4OS45OTl6IE0yMCwzNDAuMTk0di0yMC4wMDFoMTgwdjIwLjAwMUgyMHogTTQ5MS45OTgsMTA5Ljg3OWgtNDEuMDM1Yy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJCQljMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg0MS4wMzV2MTA5LjcxNUwyMTIuMjcxLDQ2MS40SDQzLjk5NnYtNjIuMjUzaDQxLjAzNmM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMEg0My45OTYKCQkJCXYtMTguOTUzSDIxMGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi00MC4wMDF2LTg0Ljc5NmgxNTkuOTk5YzUuNTIzLDAsMTAtNC40NzcsMTAtMTB2LTQwLjAwMlY5MC42MDFoMTAxLjk5OVYxMDkuODc5egoJCQkJIE00OTEuOTk4LDcwLjYwMWgtMTMyVjUwLjU5OGgxMzJWNzAuNjAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTQsMzc5LjE0NGgtMC4yMzZjLTUuNTI0LDAtMTAsNC40NzctMTAsMTBzNC40NzYsMTAsMTAsMTBIMTE0YzUuNTIyLDAsMTAtNC40NzcsMTAtMTBTMTE5LjUyMiwzNzkuMTQ0LDExNCwzNzkuMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjEuOTk4LDEyOS44OGgwLjIzNWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMGgtMC4yMzVjLTUuNTIzLDAtMTAsNC40NzctMTAsMTAKCQkJCVM0MTYuNDc1LDEyOS44OCw0MjEuOTk4LDEyOS44OHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",vxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNS41MTggNjRoMi45ODZjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDIxaDQ0Ljk5MnYyLjAyMWMwIC41NTMuNDQ3IDEgMSAxaDNjLjU1MyAwIDEtLjQ0NyAxLTF2LTYwLjVjMC0xLjM3OC0xLjEyMS0yLjUtMi41LTIuNXMtMi41IDEuMTIyLTIuNSAyLjV2MTUuNTA0aC0yLjk5OHYtMTMuOTk2YzAtLjU1Mi0uNDQ3LTEtMS0xaC0xNS45OTZjLS41NTMgMC0xIC40NDgtMSAxdjEzLjk5NWgtMy4wMDJ2LTEzLjk5NWMwLS41NTItLjQ0Ny0xLTEtMWgtMTUuOTk2Yy0uNTUzIDAtMSAuNDQ4LTEgMXYxMy45OTVoLTN2LTE1LjUwM2MwLTEuMzc4LTEuMTIxLTIuNS0yLjUtMi41cy0yLjUgMS4xMjItMi41IDIuNWwuMDE0IDYwLjVjMCAuNTUzLjQ0NyAxIDEgMXptNTAuOTc4LTYxLjVjMC0uMjc2LjIyNS0uNS41LS41cy41LjIyNC41LjV2NTkuNWgtMXptLTE0Ljk5OCAyLjUwOGgyLjAwMnYxLjAwOGgtMi4wMDJ6bS01Ljk5NiAwaDMuOTk2djIuMDA4YzAgLjU1Mi40NDcgMSAxIDFoNC4wMDJjLjU1MyAwIDEtLjQ0OCAxLTF2LTIuMDA4aDMuOTk4djEyLjk5NWgtMTMuOTk2em0tMTUuMDAyIDBoMnYxLjAwOGgtMnptLTUuOTk2IDBoMy45OTZ2Mi4wMDhjMCAuNTUyLjQ0NyAxIDEgMWg0Yy41NTMgMCAxLS40NDggMS0xdi0yLjAwOGg0djEyLjk5NWgtMTMuOTk2em0tNSAxNC45OTVoNCAxNS45OTYgNS4wMDIgMTUuOTk2IDMuOTk4djFoLTQ0Ljk5MnptMCAzaDQ0Ljk5MnYxMy45NzFoLTIuOTk2di0xMC45OWMwLS41NTItLjQ0Ny0xLTEtMWgtMzdjLS41NTMgMC0xIC40NDgtMSAxdjEwLjk5MWgtMi45OTZ6bTE5Ljk5NiA2Ljk4MWg1Yy41NTMgMCAxLS40NDggMS0xdi0yaDE0djkuOTkxaC0zNXYtOS45OTFoMTR2MmMwIC41NTIuNDQ3IDEgMSAxem0xLTJ2LTFoM3Yxem0tMjAuOTk2IDEwLjk5MWgzLjk5NiAzNyAzLjk5NnYxLjAwMmgtNDQuOTkyem0wIDMuMDAyaDQ0Ljk5MnYxNGgtMi45OTR2LTExLjk5YzAtLjU1My0uNDQ3LTEtMS0xaC0xNC4wMDJjLS41NTMgMC0xIC40NDctMSAxdjExLjk5aC0yLjk5NHYtOC45ODhjMC0uNTUzLS40NDctMS0xLTFoLTYuOTk0Yy0uMDA0IDAtLjAwNi0uMDAyLS4wMS0uMDAycy0uMDA2LjAwMi0uMDEuMDAyaC0zLjk4MmMtLjAwNCAwLS4wMDYtLjAwMi0uMDEtLjAwMnMtLjAwNi4wMDItLjAxLjAwMmgtNi45ODZjLS41NTMgMC0xIC40NDctMSAxdjguOTg4aC0zem0zMS45OTYgNi4wMTdoNC4wMDJjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDA4aDN2MTAuOTloLTEyLjAwMnYtMTAuOTloM3YyLjAwOGMwIC41NTMuNDQ3IDEgMSAxem0xLTJ2LTEuMDA4aDIuMDAydjEuMDA4em0tMjIgNWg0LjAwMmMuNTUzIDAgMS0uNDQ3IDEtMXYtMi4wMDZoNS4wMDR2Ny45ODhoLTE2LjAwMnYtNy45ODhoNC45OTZ2Mi4wMDZjMCAuNTUzLjQ0NyAxIDEgMXptMS0ydi0xLjAwNmgyLjAwMnYxLjAwNnptLTExLjk5NiA4Ljk4M2g0IDE4LjAwMiA0Ljk5NCAxNC4wMDIgMy45OTR2MS4wMDJoLTQ0Ljk5MnptLTIuNS01NS45NzdjLjI3NSAwIC41LjIyNC41LjV2NTkuNWgtLjk4NmwtLjAxNC01OS41YzAtLjI3Ni4yMjUtLjUuNS0uNXoiLz4KICAgIDwvZz4KPC9zdmc+",bxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMgM3YtMmgtMzFjLS41NTMgMC0xIC40NDctMSAxdjhjMCAuNTUzLjQ0NyAxIDEgMWgxdjUwaC0zMnYyaDMzIDQgOCA0IDEzdi0yaC0xMnYtNWgxMnYtMmgtMTMtNC0zdi0yaDIwdi0yaC0yMWMtLjU1MyAwLTEgLjQ0Ny0xIDF2NGMwIC41NTMuNDQ3IDEgMSAxaDN2NWgtNnYtNTBoMjR2LTJoLTI1LTQtMXYtNnptLTE2IDUzaDJ2NWgtMnptLTEwLTQ1djUwaC0ydi01MHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjEgMzJjMC0yLjExOC0uNTAxLTQuMjM4LTEuNDQ3LTYuMTMxbC0uNjU4LTEuMzE2Yy0uMzQtLjY3OC0xLjQ0OS0uNjc4LTEuNzg5IDBsLS42NTggMS4zMTZjLS45NDcgMS44OTMtMS40NDggNC4wMTMtMS40NDggNi4xMzEgMCAuMjQxLjAyOS40ODEuMDQyLjcyMi0uNjQ2LS40ODMtMS4zODMtLjgzNy0yLjE3Mi0xLjAzNGwtMi42MjgtLjY1N2MtLjMzOC0uMDg3LS43MDEuMDE1LS45NDkuMjYzcy0uMzQ5LjYwOC0uMjYzLjk0OWwuNjU3IDIuNjI5Yy4yNjkgMS4wNzMuODIzIDIuMDU1IDEuNjA1IDIuODM2Ljc4MS43ODIgMS43NjMgMS4zMzcgMi44MzYgMS42MDVoLjAwMWwuNjcyLjE2OC0xLjI1LjYyNS44OTUgMS43ODkgMi41NTQtMS4yNzd2Mi4zODJoLTdjLS41NTMgMC0xIC40NDctMSAxdjRjMCAuNTUzLjQ0NyAxIDEgMWgxLjA5NWwuOTEgOS4xYy4wNTEuNTEuNDgxLjkuOTk1LjloMTBjLjUxNCAwIC45NDQtLjM5Ljk5NS0uOWwuOTEtOS4xaDEuMDk1Yy41NTMgMCAxLS40NDcgMS0xdi00YzAtLjU1My0uNDQ3LTEtMS0xaC03di0yLjM4MmwyLjU1MyAxLjI3Ni44OTUtMS43ODktMS4yNS0uNjI1LjY3Mi0uMTY4aC4wMDFjMS4wNzMtLjI2OSAyLjA1NS0uODIzIDIuODM2LTEuNjA1Ljc4Mi0uNzgxIDEuMzM3LTEuNzYzIDEuNjA1LTIuODM3bC42NTctMi42MjhjLjA4Ni0uMzQxLS4wMTUtLjcwMS0uMjYzLS45NDlzLS42MDktLjM1LS45NDktLjI2M2wtMi42MjkuNjU3Yy0uNzg4LjE5Ny0xLjUyNS41NTEtMi4xNzEgMS4wMzQuMDE0LS4yNC4wNDMtLjQ4LjA0My0uNzIxem0xLjA5NSAyNWgtOC4xODlsLS44LThoOS43OXptMi45MDUtMTBoLTE0di0yaDE0em0tNy0xOS43MzRjLjY1NSAxLjQ4NSAxIDMuMTEgMSA0LjczNHMtLjM0NSAzLjI0OS0xIDQuNzM0Yy0uNjU1LTEuNDg1LTEtMy4xMS0xLTQuNzM0cy4zNDUtMy4yNDkgMS00LjczNHptLTUuMjkzIDkuMDI3Yy0uNTI1LS41MjUtLjg5OC0xLjE4Ni0xLjA4LTEuOTA3bC0uMjUyLTEuMDExIDEuMDEuMjUyYy43MjMuMTgyIDEuMzgzLjU1NSAxLjkwOCAxLjA4cy44OTggMS4xODYgMS4wOCAxLjkwN2wuMjUyIDEuMDExLTEuMDEtLjI1MmMtLjcyMi0uMTgyLTEuMzgzLS41NTUtMS45MDgtMS4wOHptMTAuOTA3LTIuNjY2IDEuMDExLS4yNTItLjI1MiAxLjAxYy0uMTgyLjcyMy0uNTU1IDEuMzgzLTEuMDggMS45MDhzLTEuMTg2Ljg5OC0xLjkwOCAxLjA4bC0xLjAxLjI1Mi4yNTItMS4wMWMuMTgyLS43MjMuNTU1LTEuMzgzIDEuMDgtMS45MDhzMS4xODYtLjg5OCAxLjkwNy0xLjA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im01IDE1aDEzYzIuNzU3IDAgNS0yLjI0MyA1LTVzLTIuMjQzLTUtNS01Yy0uNDM4IDAtLjg3Ny4wNjEtMS4zMDMuMTgtLjc2Ni0yLjQ1NS0zLjAyMy00LjE4LTUuNjk3LTQuMTgtMy4zMDkgMC02IDIuNjkxLTYgNi0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0em0wLTZjLjI3IDAgLjUzMy4wNTQuNzgzLjE2LjM1Mi4xNDcuNzU2LjA4NSAxLjA0My0uMTYzLjI4OC0uMjQ4LjQxMS0uNjM5LjMxNy0xLjAwNy0uMDk4LS4zNzctLjE0My0uNjkyLS4xNDMtLjk5IDAtMi4yMDYgMS43OTQtNCA0LTQgMi4wODEgMCAzLjc4NCAxLjU3NCAzLjk2MSAzLjY2Mi4wMjguMzQ1LjIzMy42NDguNTQuODA2LjMwOC4xNTguNjc1LjE0NS45Ny0uMDMyLjQ4My0uMjkuOTk3LS40MzYgMS41MjktLjQzNiAxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM2gtMTNjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yeiIvPgogICAgPC9nPgo8L3N2Zz4=",Qxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",Uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOSA1MDkiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNTkuMiAwdjg5LjhoLTg5LjgwMXY4OS44aC04OS44djg5LjhoLTg5Ljc5OXY4OS44aC04OS44djE0OS44aDUwOXYtNTA5em0xMTkuOCA0NzloLTQ0OXYtODkuOGg4OS44di04OS44aDg5Ljh2LTg5LjhoODkuOHYtODkuOGg4OS44di04OS44aDg5Ljh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTY4LjQ0OCAxNzYuOTU2IDk0LjA0MS05NC4wNC0zLjYyOSA0My4wNjYgMjkuODk1IDIuNTE5IDguNTYyLTEwMS42MjYtMTAxLjYyNyA4LjU2MiAyLjUxOCAyOS44OTQgNDMuMDY4LTMuNjI4LTk0LjA0MSA5NC4wNHoiLz4KICAgIDwvZz4KPC9zdmc+",$xe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y0Mi42NjcKCQkJQzI0Ny40NjcsMzcuOTU2LDI0My42NDQsMzQuMTMzLDIzOC45MzMsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzcuODY3LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjc2LjhjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzUzQ4Ni40LDgxLjUxLDQ4Ni40LDc2LjhWNDIuNjY3CgkJCUM0ODYuNCwzNy45NTYsNDgyLjU3NywzNC4xMzMsNDc3Ljg2NywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE3OS4yLDBIOC41MzNDMy44MjMsMCwwLDMuODIzLDAsOC41MzN2NDk0LjkzM0MwLDUwOC4xNzcsMy44MjMsNTEyLDguNTMzLDUxMkgxNzkuMmM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzMKCQkJVjguNTMzQzE4Ny43MzMsMy44MjMsMTgzLjkxLDAsMTc5LjIsMHogTTE3MC42NjcsNDk0LjkzM2gtMTUzLjZWMTcuMDY3aDE1My42VjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMzU4LjRIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxMzYuNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gzMjQuMjY3CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzY2LjkzM0M1MTIsMzYyLjIyMyw1MDguMTc3LDM1OC40LDUwMy40NjcsMzU4LjR6IE00OTQuOTMzLDQ5NC45MzNoLTMwNy4yVjM3NS40NjdoMzA3LjIKCQkJVjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMEgxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjguNTMzQzUxMiwzLjgyMyw1MDguMTc3LDAsNTAzLjQ2NywweiBNNDk0LjkzMywzNC4xMzNoLTMwNy4yVjE3LjA2N2gzMDcuMlYzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzNi41MzMsMjQ3LjQ2N2gtMjUuNmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDI1LjZjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMxNDEuMjQ0LDI0Ny40NjcsMTM2LjUzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTAuOTMzLDI0Ny40NjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YyNS42YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YyNTYKCQkJQzExOS40NjcsMjUxLjI5LDExNS42NDQsMjQ3LjQ2NywxMTAuOTMzLDI0Ny40Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Ni45MzMsNDE4LjEzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDUxLjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMzNzEuNjQ0LDQxOC4xMzMsMzY2LjkzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDEuMzMzLDQxOC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxNy4wNjdjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCXYtMTcuMDY3QzM0OS44NjcsNDIxLjk1NiwzNDYuMDQ0LDQxOC4xMzMsMzQxLjMzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yOTAuMTMzLDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMyOTguNjY3LDM3Ljk1NiwyOTQuODQ0LDM0LjEzMywyOTAuMTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywxMTkuNDY3Yy00NS45MzUsMC03Ni44LDE3LjE0My03Ni44LDQyLjY2N1YxNzkuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTcuMDY3djc2LjgKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM0gzMzIuOGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhIMzU4LjRjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzM2Ni45MzMsMTM2LjYxLDMzNi4wNjgsMTE5LjQ2NywyOTAuMTMzLDExOS40Njd6IE0zNDkuODY3LDE3MC42NjdIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZIMjU2di03Ni44CgkJCWMwLTQuNzEtMy44MjMtOC41MzMtOC41MzMtOC41MzNIMjMwLjR2LTguNTMzYzAtMTIuNDA3LDIwLjkzMi0yNS42LDU5LjczMy0yNS42czU5LjczMywxMy4xOTMsNTkuNzMzLDI1LjZWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQ5Ljg2NywxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDI2LjY2NywxMzYuNjEsMzk1LjgwMiwxMTkuNDY3LDM0OS44NjcsMTE5LjQ2N3ogTTQwOS42LDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJSDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3YzAtOS44MTMtNC43MzYtMTguNTc3LTEzLjM4LTI1LjU1N2MzNi40MzcsMC44MDIsNTYuMDQ3LDEzLjU0Miw1Ni4wNDcsMjUuNTU3CgkJCVYxNzAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDkuNiwxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjg1LjMzMwoJCQljMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczM2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhoMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUM0ODYuNCwxMzYuNjEsNDU1LjUzNSwxMTkuNDY3LDQwOS42LDExOS40Njd6IE00NjkuMzMzLDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJaDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTMzA0LjI0Nyw4NS4zMzMsMjkwLjEzMyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMzNjYuOTMzLDM3Ljk1NiwzNjMuMTEsMzQuMTMzLDM1OC40LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzU4LjQsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzM3Mi41MTQsODUuMzMzLDM1OC40LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDNDM1LjIsMzcuOTU2LDQzMS4zNzcsMzQuMTMzLDQyNi42NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjYuNjY3LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVM0NDAuNzgxLDg1LjMzMyw0MjYuNjY3LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDg2LjQsMzI0LjI2N0gxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzA3LjIKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YzMzIuOEM0OTQuOTMzLDMyOC4wOSw0OTEuMTEsMzI0LjI2Nyw0ODYuNCwzMjQuMjY3eiBNNDc3Ljg2NywzNTguNEgxODcuNzMzdi0xNy4wNjdoMjkwLjEzMwoJCQlWMzU4LjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2OS4zMzMsMzkyLjUzM2gtMjU2Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NjguMjY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNTYKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNjguMjY3QzQ3Ny44NjcsMzk2LjM1Niw0NzQuMDQ0LDM5Mi41MzMsNDY5LjMzMywzOTIuNTMzeiBNNDYwLjgsNDYwLjhIMjIxLjg2N3YtNTEuMkg0NjAuOAoJCQlWNDYwLjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Pxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTUuNzU4IDYxLTEuNTY5LTUuNTdjNC4wNTMtMi4yMDQgNi44MTEtNi41MDEgNi44MTEtMTEuNDN2LTFjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMnYtMTBjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMmgtMjZjLTEuMTAzIDAtMiAuODk3LTIgMnYyYzAgMS4xMDMuODk3IDIgMiAydjEwYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MmMwIDEuMTAzLjg5NyAyIDIgMnYxYzAgNC45MjkgMi43NTggOS4yMjYgNi44MTEgMTEuNDNsLTEuNTY5IDUuNTdoLTEzLjM0M2MtLjQ2NS0yLjI3OS0yLjQ4NC00LTQuODk5LTRoLTF2LTkuMDAzYzQuNjkzLTEuOTYzIDgtNi42IDgtMTEuOTk3di03aC0xOHYtNGg0djJoMnYtMmMwLTEuMTAzLS44OTctMi0yLTJoLTYtMS0xYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NGgtMnY3YzAgNS4zOTcgMy4zMDcgMTAuMDM0IDggMTEuOTk3djkuMDAzaC0xYy0yLjQxNCAwLTQuNDM0IDEuNzIxLTQuODk5IDRoLTUuMTAxdjJoNjR2LTJ6bS0yMC43NTktMzhoMjYuMDAxdjJoLTI2em0yLjAwMSA4aDR2LTJoLTR2LTJoMjJ2MTBoLTIyem0tMi4wMDEgOGgyNi4wMDF2MmgtMjZ6bTIuMDAxIDV2LTFoMjJ2MWMwIDYuMDY1LTQuOTM1IDExLTExIDExcy0xMS00LjkzNS0xMS0xMXptNi42NjEgMTIuMjRjMS4zNi40ODMgMi44MTYuNzYgNC4zMzkuNzZzMi45NzktLjI3NyA0LjMzOS0uNzZsMS4zNCA0Ljc2aC0xMS4zNTh6bS0zNi42NjEtMzEuMjRoMSAxdjRoLTJ6bTIwIDZ2MmgtMjJ2LTJ6bS0yMiA1di0xaDIydjFjMCA2LjA2NS00LjkzNSAxMS0xMSAxMXMtMTEtNC45MzUtMTEtMTF6bTggMTIuNjM3Yy45NjUuMjI5IDEuOTY2LjM2MyAzIC4zNjNzMi4wMzUtLjEzNCAzLS4zNjN2OC4zNjNoLTZ6bS0zIDEwLjM2M2gxMmMxLjMwMiAwIDIuNDAyLjgzOSAyLjgxNiAyaC0xNy42MzJjLjQxNC0xLjE2MSAxLjUxNC0yIDIuODE2LTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQgMjFoMjRjMS42NTQgMCAzLTEuMzQ2IDMtM3YtMTRjMC0xLjY1NC0xLjM0Ni0zLTMtM2gtMjRjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2MTRjMCAxLjY1NCAxLjM0NiAzIDMgM3ptLTEtMTdjMC0uNTUxLjQ0OC0xIDEtMWgyNGMuNTUyIDAgMSAuNDQ5IDEgMXYxNGMwIC41NTEtLjQ0OCAxLTEgMWgtMjRjLS41NTIgMC0xLS40NDktMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyLjUxNWgydjE2Ljk3MWgtMnoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC00LjU1NiAxMSkiLz4KICAgICAgICA8cGF0aCBkPSJtMjAgMi41MTVoMnYxNi45NzFoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzA3IC0uNzA3IC43MDcgLjcwNyAtMS42MjcgMTguMDcxKSIvPgogICAgICAgIDxwYXRoIGQ9Im0zNSA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzUgMTNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxMWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDExaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgM2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDMgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDEzaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTUgMTdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01NyAxNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUzIDE1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Wxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",Bxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTIzOC45MzMsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWNzYuOGMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWNDIuNjY3CgkJCUMyNDcuNDY3LDM3Ljk1NiwyNDMuNjQ0LDM0LjEzMywyMzguOTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDc3Ljg2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1M0ODYuNCw4MS41MSw0ODYuNCw3Ni44VjQyLjY2NwoJCQlDNDg2LjQsMzcuOTU2LDQ4Mi41NzcsMzQuMTMzLDQ3Ny44NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzkuMiwwSDguNTMzQzMuODIzLDAsMCwzLjgyMywwLDguNTMzdjQ5NC45MzNDMCw1MDguMTc3LDMuODIzLDUxMiw4LjUzMyw1MTJIMTc5LjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVY4LjUzM0MxODcuNzMzLDMuODIzLDE4My45MSwwLDE3OS4yLDB6IE0xNzAuNjY3LDQ5NC45MzNoLTE1My42VjE3LjA2N2gxNTMuNlY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDM1OC40SDE3OS4yYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjM2Ni45MzNDNTEyLDM2Mi4yMjMsNTA4LjE3NywzNTguNCw1MDMuNDY3LDM1OC40eiBNNDk0LjkzMyw0OTQuOTMzaC0zMDcuMlYzNzUuNDY3aDMwNy4yCgkJCVY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDBIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMyNC4yNjcKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y4LjUzM0M1MTIsMy44MjMsNTA4LjE3NywwLDUwMy40NjcsMHogTTQ5NC45MzMsMzQuMTMzaC0zMDcuMlYxNy4wNjdoMzA3LjJWMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzYuNTMzLDI0Ny40NjdoLTI1LjZjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNS42YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMTQxLjI0NCwyNDcuNDY3LDEzNi41MzMsMjQ3LjQ2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzMywyNDcuNDY3Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MjUuNmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWMjU2CgkJCUMxMTkuNDY3LDI1MS4yOSwxMTUuNjQ0LDI0Ny40NjcsMTEwLjkzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjYuOTMzLDQxOC4xMzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1MS4yYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMzcxLjY0NCw0MTguMTMzLDM2Ni45MzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQxLjMzMyw0MTguMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTcuMDY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQl2LTE3LjA2N0MzNDkuODY3LDQyMS45NTYsMzQ2LjA0NCw0MTguMTMzLDM0MS4zMzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMjk4LjY2NywzNy45NTYsMjk0Ljg0NCwzNC4xMzMsMjkwLjEzMywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsMTE5LjQ2N2MtNDUuOTM1LDAtNzYuOCwxNy4xNDMtNzYuOCw0Mi42NjdWMTc5LjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDE3LjA2N3Y3Ni44CgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNIMzMyLjhjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44SDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUMzNjYuOTMzLDEzNi42MSwzMzYuMDY4LDExOS40NjcsMjkwLjEzMywxMTkuNDY3eiBNMzQ5Ljg2NywxNzAuNjY3SDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWMjU2SDI1NnYtNzYuOAoJCQljMC00LjcxLTMuODIzLTguNTMzLTguNTMzLTguNTMzSDIzMC40di04LjUzM2MwLTEyLjQwNywyMC45MzItMjUuNiw1OS43MzMtMjUuNnM1OS43MzMsMTMuMTkzLDU5LjczMywyNS42VjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM0OS44NjcsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzSDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2ODUuMzMzCgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoNTkuNzMzYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNzYuOGgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzQyNi42NjcsMTM2LjYxLDM5NS44MDIsMTE5LjQ2NywzNDkuODY3LDExOS40Njd6IE00MDkuNiwxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCUgzNTguNGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjYsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzaC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDg2LjQsMTM2LjYxLDQ1NS41MzUsMTE5LjQ2Nyw0MDkuNiwxMTkuNDY3eiBNNDY5LjMzMywxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCWgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjdjMC05LjgxMy00LjczNi0xOC41NzctMTMuMzgtMjUuNTU3YzM2LjQzNywwLjgwMiw1Ni4wNDcsMTMuNTQyLDU2LjA0NywyNS41NTcKCQkJVjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzMwNC4yNDcsODUuMzMzLDI5MC4xMzMsODUuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTguNCwzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMzY2LjkzMywzNy45NTYsMzYzLjExLDM0LjEzMywzNTguNCwzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVMzNzIuNTE0LDg1LjMzMywzNTguNCw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyNi42NjcsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NTEuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTUxLjIKCQkJQzQzNS4yLDM3Ljk1Niw0MzEuMzc3LDM0LjEzMyw0MjYuNjY3LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2Nyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTNDQwLjc4MSw4NS4zMzMsNDI2LjY2Nyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4Ni40LDMyNC4yNjdIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMwNy4yCgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzMyLjhDNDk0LjkzMywzMjguMDksNDkxLjExLDMyNC4yNjcsNDg2LjQsMzI0LjI2N3ogTTQ3Ny44NjcsMzU4LjRIMTg3LjczM3YtMTcuMDY3aDI5MC4xMzMKCQkJVjM1OC40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjkuMzMzLDM5Mi41MzNoLTI1NmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjY4LjI2N2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjU2CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTY4LjI2N0M0NzcuODY3LDM5Ni4zNTYsNDc0LjA0NCwzOTIuNTMzLDQ2OS4zMzMsMzkyLjUzM3ogTTQ2MC44LDQ2MC44SDIyMS44Njd2LTUxLjJINDYwLjgKCQkJVjQ2MC44eiIvPgogICAgPC9nPgo8L3N2Zz4K",Jxe="PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE5NC44MzYgNThoLTExOS4zMjhjLTI0LjQ0NSAwLTQ0LjMzNiAxOS44ODktNDQuMzM2IDQ0LjMzNnYxMTkuMzI4YzAgMjQuNDQ3IDE5Ljg5MSA0NC4zMzYgNDQuMzM2IDQ0LjMzNmgxMTkuMzI4YzI0LjQ0NSAwIDQ0LjMzNi0xOS44ODkgNDQuMzM2LTQ0LjMzNnYtMTE5LjMyOGMwLTI0LjQ0Ny0xOS44OTEtNDQuMzM2LTQ0LjMzNi00NC4zMzZ6bTM2LjMzNiAxNjMuNjY0YzAgMjAuMDM1LTE2LjMwMSAzNi4zMzYtMzYuMzM2IDM2LjMzNmgtMTE5LjMyOGMtMjAuMDM1IDAtMzYuMzM2LTE2LjMwMS0zNi4zMzYtMzYuMzM2di0xMTkuMzI4YzAtMjAuMDM1IDE2LjMwMS0zNi4zMzYgMzYuMzM2LTM2LjMzNmgxMTkuMzI4YzIwLjAzNSAwIDM2LjMzNiAxNi4zMDEgMzYuMzM2IDM2LjMzNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM1LjE3MiA3NGMtNDkuNjI1IDAtOTAgNDAuMzczLTkwIDkwczQwLjM3NSA5MCA5MCA5MCA5MC00MC4zNzMgOTAtOTAtNDAuMzc1LTkwLTkwLTkwem0wIDE3MmMtNDUuMjE1IDAtODItMzYuNzg1LTgyLTgyczM2Ljc4NS04MiA4Mi04MiA4MiAzNi43ODUgODIgODItMzYuNzg1IDgyLTgyIDgyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzUuMTcyIDkwYy00MC44MDUgMC03NCAzMy4xOTUtNzQgNzRzMzMuMTk1IDc0IDc0IDc0IDc0LTMzLjE5NSA3NC03NC0zMy4xOTUtNzQtNzQtNzR6bTAgMTQwYy0zNi4zOTEgMC02Ni0yOS42MDctNjYtNjZzMjkuNjA5LTY2IDY2LTY2IDY2IDI5LjYwNyA2NiA2Ni0yOS42MSA2Ni02NiA2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNzkuMTcyIDEzOHYzMmMwIDIuMjA5IDEuNzg5IDQgNCA0aDEwNGMyLjIxMSAwIDQtMS43OTEgNC00di0zMmMwLTIuMjA5LTEuNzg5LTQtNC00aC0xMDRjLTIuMjExIDAtNCAxLjc5MS00IDR6bTggNGg5NnYyNGgtOTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNy4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyOS4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE0NS4xNzIgMTUxLjQ3Yy0yLjUwMiAwLTQuNTMgMi4wMjgtNC41MyA0LjUzIDAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTMgMi41MDEgMCA0LjUzLTIuMDI4IDQuNTMtNC41My0uMDAxLTIuNTAyLTIuMDI5LTQuNTMtNC41My00LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDEuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTMuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjE5OS4xNzIiIGN5PSIzOCIgcj0iNCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzkuMTcyIDQ2Yy02LjYxNyAwLTEyIDUuMzgzLTEyIDEyczUuMzgzIDEyIDEyIDEyIDEyLTUuMzgzIDEyLTEyLTUuMzgzLTEyLTEyLTEyem0wIDE2Yy0yLjIwNyAwLTQtMS43OTUtNC00czEuNzkzLTQgNC00IDQgMS43OTUgNCA0LTEuNzkzIDQtNCA0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuODI4IDExMCAyLjgyOC0yLjgyOGMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2cy00LjA5NC0xLjU2Mi01LjY1NiAwbC0yLjgyOCAyLjgyOC0yLjgyOC0yLjgyOGMtMS41NjItMS41NjItNC4wOTQtMS41NjItNS42NTYgMHMtMS41NjIgNC4wOTQgMCA1LjY1NmwyLjgyOCAyLjgyOC0yLjgyOCAyLjgyOGMtMS41NjIgMS41NjItMS41NjIgNC4wOTQgMCA1LjY1Ni43ODEuNzgxIDEuODA1IDEuMTcyIDIuODI4IDEuMTcyczIuMDQ3LS4zOTEgMi44MjgtMS4xNzJsMi44MjgtMi44MjggMi44MjggMi44MjhjLjc4MS43ODEgMS44MDUgMS4xNzIgMi44MjggMS4xNzJzMi4wNDctLjM5MSAyLjgyOC0xLjE3MmMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuMTcyIDE5NGgtNC45MzRsNS44NTktOS43NjhjMS4xMzctMS44OTUuNTIzLTQuMzUyLTEuMzcxLTUuNDg4LTEuODk4LTEuMTM3LTQuMzUyLS41MjEtNS40ODggMS4zNzFsLTkuNDk2IDE1LjgyNmMtLjc0MiAxLjIzNi0uNzYyIDIuNzc1LS4wNTEgNC4wMjlzMi4wMzkgMi4wMjkgMy40OCAyLjAyOWg1LjUyN2wtNS4xMDUgMTAuMjExYy0uOTg4IDEuOTc3LS4xODggNC4zNzkgMS43ODkgNS4zNjcuNTc0LjI4NyAxLjE4NC40MjIgMS43ODUuNDIyIDEuNDY5IDAgMi44NzktLjgwOSAzLjU4Mi0yLjIxMWw4LTE2Yy42MjEtMS4yNC41NTUtMi43MTMtLjE3Ni0zLjg5My0uNzI5LTEuMTc2LTIuMDE0LTEuODk1LTMuNDAxLTEuODk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDcuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTE5LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjMuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc1LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Rxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMi41IDUxMi41IiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsNDE4LjVjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjV2NzguNWMwLDkuNjczLDE1LDkuNjczLDE1LDBWNDI2QzUxMi4yNSw0MjEuODU4LDUwOC44OTMsNDE4LjUsNTA0Ljc1LDQxOC41eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsMjQ5LjM1NWgtNTguODk0di0yNy4wNDNoMTguMDExYzEwLjk2NCwwLDE5Ljg4My04LjkxOSwxOS44ODMtMTkuODgzVjE5Ljg4NEM0ODMuNzUsOC45Miw0NzQuODMxLDAsNDYzLjg2NywwICAgSDE4NC4wNTljLTEwLjk2NCwwLTE5Ljg4Myw4LjkyLTE5Ljg4MywxOS44ODR2MjYuOTI5YzAsOS42NzMsMTUsOS42NzMsMTUsMFYxOS44ODRjMC0yLjY5MywyLjE5LTQuODg0LDQuODgzLTQuODg0aDI3OS44MDkgICBjMi42OTIsMCw0Ljg4MywyLjE5MSw0Ljg4Myw0Ljg4NHYxNDUuNDI5aC0yMi44OTRWODUuNDA2YzAtMi40NzUtMS4yMjEtNC43OS0zLjI2My02LjE4OGMtMi4wNDEtMS4zOTgtNC42NDEtMS42OTktNi45NDktMC44MDUgICBjLTEuOTYyLDAuNzYxLTQzLjM0LDE3LjY1OS01Mi4xNDYsODYuODk5SDE3OS4xNzZ2LTc5LjVjMC05LjY3My0xNS05LjY3My0xNSwwdjExNi42MTdjMCwxMC45NjQsOC45MTksMTkuODgzLDE5Ljg4MywxOS44ODMgICBoMTAwLjc0NnYyNy4wNDNIMTE0LjUxNmMxNi42MTItMTYuNTk0LDE4LjIzNC00Mi44NzEsMTguMjM0LTY0Ljk0OWMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41aC00MC41di0xNC4xNTkgICBjMjQuMDYsNS4xMTQsNTAuMjg4LTE0LjYxNiw0OS45NjctMzkuNjQ1Yy0wLjA0My0zLjM1Mi0wLjQ1OS02Ljc1OC0zLjU1Ni04LjgwM2MtMTQuMjQ2LTkuNDAzLTMzLjg2Ni01LjQ4NS00Ni40MTEsNC43ODN2LTEzLjUyOSAgIGMyMS40MzMtMTQuNzkzLDIzLjAyNS00OS42MjksMi40MjktNjUuODg5Yy0yLjA3NS0xLjYzOC00LjM3MS0zLjE5Ny02LjgzNC00LjIwMWMtMTAuNTcxLTQuMzE2LTIyLjE5MSwxNC41MTMtMjQuNzEsMjEuNzgxICAgYy01Ljk1MSwxNy4xNzQtMC41NjgsMzYuOTI2LDE0LjExNCw0Ny44MjR2MTMuOTMxYy05LjYyNy03LjgzMy0yMi4yLTExLjY5Ni0zNC40ODMtOS4yMzZjLTUuMDc2LDEuMDE3LTEzLjk3MSwzLjMxNC0xNS4wNzgsOS40NjcgICBjLTQuNzU4LDI2LjQ3NiwyNS4yMzUsNDguNjQzLDQ5LjU2Miw0My41Mzl2MTQuMTM3aC00My41Yy00LjE0MywwLTcuNSwzLjM1OC03LjUsNy41YzAsMjIuMDQ3LDEuMTk2LDQ4LjM1NywxNy44MDYsNjQuOTQ5SDcuNzUgICBjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjVWNTA0LjVjMCw5LjY3MywxNSw5LjY3MywxNSwwdi0zNWgxMzUuNXYzNWMwLDkuNjczLDE1LDkuNjczLDE1LDB2LTE5MWgyNjUuMjE1ICAgYzAuMDM5LDIuNjEzLDAuMjg5LDE2LjY4OCwwLjMyLDIwLjkwNkgzMDQuMzU2Yy0yOS42NTEsMC01MS42Miw3LjcxOC02NS4yOTgsMjIuOTM5Yy0xNi40MjIsMTguMjc0LTE0LjI2LDQwLjQyNi0xNC4xNTksNDEuMzU5ICAgYzAuNDA4LDMuODExLDMuNjI0LDYuNzAxLDcuNDU3LDYuNzAxaDk2Ljg5NHYxMy41aC0yOS41Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMjkuNVY0OTdoLTk2Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMTAwLjgyNSAgIGMwLjgzMiwwLjMxOCwxLjczMSwwLjUsMi42NzUsMC41czEuODQzLTAuMTgyLDIuNjc1LTAuNUg0NDAuMjVjOS42NzMsMCw5LjY3My0xNSwwLTE1aC05NnYtOTEuNTk0aDUwLjEwNiAgIGMxNy4yMTgsMCwyOS42NjQtNC4xNTEsMzguMDUyLTEyLjY5YzE0LjY5OS0xNC45NjUsMTQuMjUxLTQwLjAyMiwxMy42ODQtNzEuNzQ3Yy0wLjA0NC0yLjQ1NC0wLjA4Ny00Ljk1LTAuMTI1LTcuNDdoNTEuMjgzVjM4NCAgIGMwLDkuNjczLDE1LDkuNjczLDE1LDBWMjU2Ljg1NUM1MTIuMjUsMjUyLjcxMyw1MDguODkzLDI0OS4zNTUsNTA0Ljc1LDI0OS4zNTV6IE05Ny4yNzYsMTI4LjQ5NiAgIGM5LjY1Mi02LjEyNCwxOC4wNDktNC42ODEsMjIuNDIxLTMuMTM3Yy0xLjMyLDE1LjU0Ny0yMC4yMjEsMjYuODYtMzQuNjY4LDIxLjk2M0M4NS42MzUsMTQyLjUxMSw4OC4wNzcsMTM0LjMzMiw5Ny4yNzYsMTI4LjQ5NnogICAgTTQ3LjQyNCwxNDQuMDk3Yy02LjM3Mi00LjA0My0xMS43OTItMTEuMDA1LTEyLjQ5My0xOC43NDJjMTUuMDItNS4yOCwzMi42ODMsNi40MTgsMzQuNjQsMjEuOTY3ICAgQzYyLjI4NiwxNDkuNzkyLDUzLjgxLDE0OC4xNDgsNDcuNDI0LDE0NC4wOTd6IE03Ny42MzcsNTEuMTY5YzEyLjU2LDkuNTU0LDExLjk5NywzMS4zNTktMC4wNDQsNDEuMDU0ICAgYy0zLjcxNS0zLjA1NS05LjMxOS05LjQ4MS05LjMxOS0yMC40NDFDNjguMjczLDYwLjM1Miw3My45OTEsNTQuMDM1LDc3LjYzNyw1MS4xNjl6IE0zMy44NTYsMTkxLjkwNmg4My43ODEgICBjLTEuMjcsNDAuNTE1LTEzLjM2Miw1Ni41LTQxLjg4OCw1Ni41QzQ2LjgzMiwyNDguNDA3LDM1LjA3MiwyMzIuOTM2LDMzLjg1NiwxOTEuOTA2eiBNNDIxLjcwNywzODIuMjA1ICAgYy01LjQyMSw1LjUxOS0xNC4zNjcsOC4yMDEtMjcuMzUxLDguMjAxSDI0MC4wMTNjMC42OTQtNS45ODgsMy4wMDYtMTUuMDI2LDEwLjIwMy0yMy4wMzUgICBjMTAuNzEyLTExLjkyMSwyOC45MjctMTcuOTY1LDU0LjE0MS0xNy45NjVoMTI2LjczNkM0MzAuNDczLDM2NC4xMDUsNDI4LjI1MSwzNzUuNTQzLDQyMS43MDcsMzgyLjIwNXogTTQ2OC43NSwxODAuMzEzdjIyLjExNyAgIGMwLDIuNjkzLTIuMTksNC44ODMtNC44ODMsNC44ODNoLTE4LjAxMXYtMjdINDY4Ljc1eiBNNDE5LjEyNiwxMTEuMzU4YzQuMDg0LTUuMzk1LDguMTktOS40MSwxMS43My0xMi4zMjJ2MTg3Ljg2MyAgIGMtMy41MjgtMy4wMjMtNy42MDQtNy4xNDYtMTEuNjU5LTEyLjYyMmMtMTQuNjE1LTE5LjczOS0yMi4zNDEtNDguMDQ5LTIyLjM0MS04MS44NzIgICBDMzk2Ljg1NiwxNTguNjMyLDQwNC41NTgsMTMwLjYwNiw0MTkuMTI2LDExMS4zNTh6IE0zODMuODczLDIyMi4zMTNjMS40MzIsMTAuMDk1LDMuNTUzLDE5LjA3Nyw2LjEzOCwyNy4wNDNoLTI2Ljg5di0yNy4wNDMgICBIMzgzLjg3M3ogTTE3OS4xNzYsMjAyLjQyOXYtMjIuMTE3aDIwMi45OTNjLTAuNDY5LDguOTkyLTAuNDE1LDE4LjAxNSwwLjE2OSwyN0gxODQuMDU5ICAgQzE4MS4zNjYsMjA3LjMxMywxNzkuMTc2LDIwNS4xMjIsMTc5LjE3NiwyMDIuNDI5eiBNMjk5LjgwNSwyMjIuMzEzaDQ4LjMxNnYyNy4wNDNoLTQ4LjMxNlYyMjIuMzEzeiBNMzk1LjkwMSwyNjQuMzU1ICAgYzcuODE1LDE2LjcsMTcuNTE2LDI3LjQ4OCwyNS4zNjUsMzQuMTQ1SDE1LjI1di0zNC4xNDVIMzk1LjkwMXogTTE1LjI1LDQ1NC41di02M2gxMzUuNXY2M0gxNS4yNXogTTE1MC43NSwzNzYuNUgxNS4yNXYtNjNoMTM1LjUgICBWMzc2LjV6IE00NDUuODU2LDI5OC41di0zNC4xNDVoNTEuMzk0VjI5OC41SDQ0NS44NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTU0Ljc1LDM1Mi41aDU3YzkuNjczLDAsOS42NzMtMTUsMC0xNWgtNTdDNDUuMDc3LDMzNy41LDQ1LjA3NywzNTIuNSw1NC43NSwzNTIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTExLjc1LDQxNS41aC01N2MtOS42NzMsMC05LjY3MywxNSwwLDE1aDU3QzEyMS40MjMsNDMwLjUsMTIxLjQyMyw0MTUuNSwxMTEuNzUsNDE1LjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Fxe={Anteroom:Mxe,Attic:cxe,Balcony:uxe,Barn:lxe,Basement:Nxe,Bathroom:Lxe,Bedroom:gxe,"Boiler Room":"PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSItMyAwIDQ4MCA0ODAiIHdpZHRoPSI0ODBwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTIzNC45Njg3NSA2NGMtMTMuMjUzOTA2IDAtMjQgMTAuNzQ2MDk0LTI0IDI0czEwLjc0NjA5NCAyNCAyNCAyNCAyNC0xMC43NDYwOTQgMjQtMjQtMTAuNzQ2MDk0LTI0LTI0LTI0em0wIDMyYy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04czMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzA2Ljk2ODc1IDE2MGgtMTQ0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoMTQ0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LTh6bS04IDY0aC0xMjh2LTQ4aDEyOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE4Ni45Njg3NSAxOTJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjE4Ljk2ODc1IDE5MmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjYuOTY4NzUgMTkyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEzOC45Njg3NSA3MnYzMmgxNnYtMjRoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ni45Njg3NSAwaC0zMmMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOGgtNTZ2LTU2aDI0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTQ4YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0di0xNmMtLjAyNzM0NC0yMi4wODIwMzEtMTcuOTIxODc1LTM5Ljk3MjY1Ni00MC00MGgtMTZ2LTE2aC0xNnYxNmgtMTcuNzYxNzE5bC02LjQ4MDQ2OS0yNS45Mzc1Yy0uODg2NzE4LTMuNTYyNS00LjA4NTkzNy02LjA2MjUtNy43NTc4MTItNi4wNjI1aC00OGMtMy42NzE4NzUgMC02Ljg3MTA5NCAyLjUtNy43NjE3MTkgNi4wNjI1bC02LjQ4MDQ2OSAyNS45Mzc1aC0xNy43NTc4MTJ2LTE2aC0xNnYxNmgtMTZjLTIyLjA4MjAzMS4wMjczNDQtMzkuOTcyNjU2IDE3LjkxNzk2OS00MCA0MHY1NmgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgyNHYyMjRoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTQxLjcxMDkzOGMxMi4zNzEwOTQgNi4zNzUgMjYuMDgyMDMxIDkuNzAzMTI2IDQwIDkuNzEwOTM4aDh2MjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGg4YzEzLjkxNDA2Mi0uMDA3ODEyIDI3LjYyODkwNi0zLjMzNTkzOCA0MC05LjcxMDkzOHY0MS43MTA5MzhoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTE3Nmg1NmMzMC45MTAxNTYtLjAzOTA2MiA1NS45NjA5MzgtMjUuMDg5ODQ0IDU2LTU2di0xOTJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOHptLTg4IDEwNHYzMmgtMTZ2LTMyem0tMTYxLjc1MzkwNi04OGgzNS41MDM5MDZsNCAxNmgtNDMuNTAzOTA2em0tOTQuMjQ2MDk0IDU2YzAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNGgxNzZjMTMuMjUzOTA2IDAgMjQgMTAuNzQ2MDk0IDI0IDI0djU2aC0yMjR6bS0zMiAxMjB2LTQ4aDE2djQ4em04MCAyNzJoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNjkuNTU4NTk0YzQuNTM1MTU2IDYuNDg0Mzc1IDkuOTE0MDYyIDEyLjMzMjAzMiAxNiAxNy4zOTA2MjV6bTExMi0xNmgtMzJ2LTE2aDMyem0xMjggNDhoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNTIuMTY3OTY5YzYuMDgyMDMxLTUuMDU4NTkzIDExLjQ2NDg0NC0xMC45MDYyNSAxNi0xNy4zOTA2MjV6bTAtMTIwYy0uMDQyOTY5IDM5Ljc0NjA5NC0zMi4yNTM5MDYgNzEuOTU3MDMxLTcyIDcyaC04MGMtMzkuNzQ2MDk0LS4wNDI5NjktNzEuOTU3MDMxLTMyLjI1MzkwNi03Mi03MnYtMTY4aDIyNHptMTEyLTExMmMtLjAyNzM0NCAyMi4wODIwMzEtMTcuOTIxODc1IDM5Ljk3MjY1Ni00MCA0MGgtNTZ2LTE2aDU2YzEzLjI1MzkwNiAwIDI0LTEwLjc0NjA5NCAyNC0yNHYtMTg0aDE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNTYuNjI1IDUzLjY1NjI1IDEwLjM0Mzc1LTEwLjM0Mzc1IDE4LjM0Mzc1IDE4LjM0Mzc1IDExLjMxMjUtMTEuMzEyNS0yNC0yNGMtMy4xMjUtMy4xMjEwOTQtOC4xODc1LTMuMTIxMDk0LTExLjMxMjUgMGwtMTAuOTM3NSAxMC45Mzc1LTM0LjM5ODQzOC0yNy41MjczNDQtMTAuMDA3ODEyIDEyLjQ5MjE4OCA0MCAzMmMzLjE4MzU5NCAyLjU1MDc4MSA3Ljc3MzQzOCAyLjI5Mjk2OCAxMC42NTYyNS0uNTg5ODQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMCA4Ny40MzM1OTQgNDAgMTZjMi45NzI2NTYgMS4xODM1OTQgNi4zNjMyODEuNDg0Mzc1IDguNjI1LTEuNzc3MzQ0bDExLjkxNzk2OS0xMS45MjE4NzUgMjYuODQ3NjU2IDEzLjQ2NDg0NCA3LjE1MjM0NC0xNC4zMjAzMTMtMzItMTZjLTMuMDc4MTI1LTEuNTM1MTU2LTYuNzk2ODc1LS45Mjk2ODctOS4yMzA0NjkgMS41MDM5MDZsLTEyLjI3MzQzOCAxMi4yMjY1NjMtMzUuMTAxNTYyLTE0LjA0Mjk2OXptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Carport:jxe,Cellar:yxe,Chamber:Txe,Corridor:dxe,"Dining Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K","Dining Room":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dining:Dxe,"Dressing Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTcuMDA0IDI3Ni4xNjljMC00LjEzOSAzLjM3NC03LjUxMiA3LjUxMi03LjUxMnM3LjQ4MyAzLjM3MyA3LjQ4MyA3LjUxMnYxMzcuMzQgMzkuOTk3YzAgNC4xMzktMy4zNDUgNy40ODMtNy40ODMgNy40ODNoLTQ5Ny4wMDRjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODMgMC0xMjQuNzU0IDAtMjQ5LjUzNiAwLTM3NC4yOTEgMC03Ljc2NyAzLjE3NS0xNC44MjUgOC4yNzctMTkuOTI4IDUuMTAzLTUuMTAzIDEyLjE2MS04LjI3NyAxOS45MjgtOC4yNzdoMTI0LjI0NGM3LjkwOSAwIDE1LjM2NCAzLjMxNiAyMC43MjIgOS4wOTkgNS4zNTctNS43ODMgMTIuODEyLTkuMDk5IDIwLjcyMi05LjA5OWgxMjQuMjQzYzcuODgxIDAgMTUuMzY0IDMuMzE2IDIwLjY5MyA5LjA5OSA1LjM1OC01Ljc4MyAxMi44MTMtOS4wOTkgMjAuNzIyLTkuMDk5aDEyNC4yNDRjNy43NjcgMCAxNC44MjYgMy4xNzUgMTkuOTI4IDguMjc3IDUuMTAyIDUuMTAzIDguMjc3IDEyLjE2MSA4LjI3NyAxOS45Mjh2MjUuNjI1IDEzNy4zNGMwIDQuMTM5LTMuMzQ1IDcuNTEyLTcuNDgzIDcuNTEyLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTEyOS44NTVoLTY3LjgzNXYxMi45MjZsNDYuODMgMjMuODM5YzQuMTk1IDIuMTI2IDcuMTE1IDUuNzU1IDguNDQ3IDkuODk0IDEuMzYgNC4xMzkgMS4xMzQgOC43ODctLjk5MiAxMi45NTQtMS40NDYgMi44MzUtMy42NTcgNS4xNTktNi4yOTMgNi43NzUtMi42NjQgMS42NDQtNS43MjYgMi41MjMtOC44NzIgMi41MjNoLTMuMzQ1djk1LjYxM2MwIDQuMTM5LTMuMzQ1IDcuNDg0LTcuNDg0IDcuNDg0aC03MS4xNWMtNC4xMzkgMC03LjQ4My0zLjM0NS03LjQ4My03LjQ4NHYtMzQuNTU0YzAtNC4xNjcgMy4zNDUtNy41MTIgNy40ODMtNy41MTIgNC4xMzkgMCA3LjUxMiAzLjM0NSA3LjUxMiA3LjUxMnYyNy4wNDNoNTYuMTI3di04OC4xMDJoLTU2LjEyN3YyNy4wNzFjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy40ODMtMy4zNzMtNy40ODMtNy41MTJ2LTI3LjA3MWgtMy4zNDVjLTQuNzA2IDAtOC45NTctMS44OTktMTIuMDE5LTQuOTg5LTMuMDktMy4wNjEtNC45ODktNy4zMTMtNC45ODktMTIuMDE5IDAtMy4zNDUuOTkyLTYuNTIgMi42OTMtOS4xNTYgMS43MjktMi42NjQgNC4xMzktNC44MTkgNi45NzQtNi4xOGw0Ni4wMzUtMjMuNDQzdi0xMy4xMjRoLTY3LjgzNHYyOTMuNzAxaDE1MC42NjN2LTEyOS44NTd6bS03My44NDMtMTM3LjE5OWMtLjgyMi0uNTEtMS42NzItLjUxLTIuNDk1IDBsLTQ1LjcyMyAyMy4zMDFjLS45MDcuMzQtMS40NzQuOTM2LTEuNDc0IDEuOTU2IDAgMS4xMDUuOTA3IDIuMDEzIDIuMDEzIDIuMDEzaDkyLjgwN2MuNzkzIDAgMS40NDYtLjM5NyAxLjc4Ni0xLjEwNS41MS0uOTkyLjE0Mi0yLjE4My0uODc4LTIuNjkzbC0xNS4zMzYtNy44MjNjLTkuMDQzLTQuNTkzLTE4LjA1Ny05LjE1OC0zMC43LTE1LjY0OXptLTE2NS44LS4wODVjLS43MDktLjQyNS0xLjQ3NC0uNDI1LTIuMjQgMGwtNDUuODY1IDIzLjM4NmMtLjg3OS4zNC0xLjQ0Ni45MzYtMS40NDYgMS45NTYgMCAxLjEwNS45MDcgMi4wMTMgMi4wMTMgMi4wMTNoOTIuODA3Yy43OTQgMCAxLjQ0Ni0uMzk3IDEuNzg2LTEuMTA1LjUxLS45OTIuMTQyLTIuMTgzLS44NzktMi42OTMtMTUuMzkyLTcuODI0LTMwLjgxMi0xNS42NDgtNDYuMTc2LTIzLjU1N3ptLTIxMS42NjYtMjYuNTZjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODRzMy4zNzMtNy41MTIgNy41MTItNy41MTJoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNzQgNy41MTIgNy41MTIgMCA0LjEzOS0zLjM3MyA3LjQ4NC03LjUxMiA3LjQ4NHptMCAxMDEuOTM0Yy00LjEzOSAwLTcuNTEyLTMuMzczLTcuNTEyLTcuNTEyczMuMzczLTcuNDgzIDcuNTEyLTcuNDgzaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzQ1IDcuNTEyIDcuNDgzIDAgNC4xMzktMy4zNzMgNy41MTItNy41MTIgNy41MTJ6bTAtMzMuOTg4Yy00LjEzOSAwLTcuNTEyLTMuMzQ1LTcuNTEyLTcuNDgzczMuMzczLTcuNTEyIDcuNTEyLTcuNTEyaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzczIDcuNTEyIDcuNTEycy0zLjM3MyA3LjQ4My03LjUxMiA3LjQ4M3ptMC0zMy45NTljLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJzMy4zNzMtNy40ODMgNy41MTItNy40ODNoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNDUgNy41MTIgNy40ODMgMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnptMjAyLjgyMi0yMC44NjN2LTEzLjEyNGgtNjcuODM0djEyOS44NTdjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTE2Mi45NjdjMC0zLjYyOC0xLjQ3NC02LjkxNy0zLjg4My05LjMyNi0yLjM4MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNi0zLjg4NGgtMTI0LjI0NGMtMy42MjggMC02LjkxNyAxLjUwMi05LjMyNyAzLjg4NC0yLjM4MSAyLjQwOS0zLjg4MyA1LjY5Ny0zLjg4MyA5LjMyNnYxOTIuMzYxaDE1LjMwOGM2LjA5NCAwIDExLjU5NCAyLjQ2NiAxNS41OSA2LjQ2NCAzLjk5NyAzLjk5NyA2LjQ5MiA5LjUyNSA2LjQ5MiAxNS41OXYyMy4zMDFjMCA2LjA2Ny0yLjQ5NSAxMS41OTQtNi40OTIgMTUuNTkxcy05LjQ5NiA2LjQ2My0xNS41OSA2LjQ2M2gtMTUuMzA4djEwNy4wMDloMTUwLjY2M3YtMTY5LjgyNWMwLTQuMTM5IDMuMzc0LTcuNTEyIDcuNTEyLTcuNTEyczcuNTEyIDMuMzczIDcuNTEyIDcuNTEydjEyOS44NTZoMTUwLjY2M3YtMjkzLjdoLTY3LjgzNHYxMi45MjZsNDYuNjMgMjMuNzI2YzQuMTY3IDIuMTI2IDcuMiA1LjUyOCA4LjY0NiAxMC4wMDcgMi40NjYgNy41NjgtLjUzOSAxNS41OS03LjI4NSAxOS43MjktMi42NjQgMS42NDQtNS43NTQgMi41MjMtOC44NzIgMi41MjNoLTkyLjgwN2MtNC43MDYgMC04Ljk1OC0xLjg5OS0xMi4wNDctNC45ODktMy4wNjEtMy4wNjEtNC45Ni03LjMxMy00Ljk2LTEyLjAxOSAwLTMuMzQ1Ljk5Mi02LjUyIDIuNjkzLTkuMTU2IDEuNzAxLTIuNjY0IDQuMTEtNC44MTkgNi45NzMtNi4xOHptLTIzMy41MjEgMTcyLjMyaDYuMDk0YzQuMTM5IDAgNy41MTIgMy4zNzMgNy41MTIgNy41MTJzLTMuMzczIDcuNTEyLTcuNTEyIDcuNTEyaC02LjA5NHYxMS4xOThoMTUuMzA4YzEuOTU2IDAgMy43MTMtLjc5NCA0Ljk4OS0yLjA2OSAxLjI3Ni0xLjMwNSAyLjA5OC0zLjA2MSAyLjA5OC00Ljk5di0yMy4zMDJjMC0xLjkyOC0uODIyLTMuNjg1LTIuMDk4LTQuOTg5LTEuMjc1LTEuMjc2LTMuMDMzLTIuMDY5LTQuOTg5LTIuMDY5aC0xNS4zMDh6bTMzMS4zNDUtMjE4LjU1NHYxOC4xMTNoMTUwLjY2M3YtMTguMTEzYzAtMy42MjgtMS40NzQtNi45MTctMy44ODMtOS4zMjYtMi40MDktMi4zODEtNS42OTgtMy44ODQtOS4zMjctMy44ODRoLTEyNC4yNDNjLTMuNjI4IDAtNi45MTcgMS41MDItOS4zMjYgMy44ODQtMi40MSAyLjQxLTMuODg0IDUuNjk4LTMuODg0IDkuMzI2em0tMTY1LjY1OCAxOC4xMTRoMTUwLjY2M3YtMTguMTE0YzAtMy42MjgtMS41MDItNi45MTctMy44ODMtOS4zMjYtMi40MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNy0zLjg4NGgtMTI0LjI0M2MtMy42MjkgMC02Ljk0NSAxLjUwMi05LjMyNyAzLjg4NC0yLjQxIDIuNDA5LTMuODgzIDUuNjk3LTMuODgzIDkuMzI2em0zMTYuMzIxIDMyMy42OTJoLTMxNi4zMjF2MjQuOTczaDMxNi4zMjJ2LTI0Ljk3M3oiLz4KICAgIDwvZz4KPC9zdmc+",Driveway:hxe,Entrance:zxe,"Equipment Room":"PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC00IDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTMwMy4wOTM3NSAxNzQuMjVjMy4zOTQ1MzEgMi4zNzg5MDYgOC4wNzAzMTIgMS41NTA3ODEgMTAuNDQ1MzEyLTEuODM5ODQ0bDE1Ljk1MzEyNi0yMi43ODkwNjJjMi4zNzg5MDYtMy4zOTQ1MzIgMS41NTQ2ODctOC4wNzAzMTMtMS44Mzk4NDQtMTAuNDQ1MzEzLTMuMzk0NTMyLTIuMzc1LTguMDcwMzEzLTEuNTUwNzgxLTEwLjQ0NTMxMyAxLjg0Mzc1bC0xNS45NTcwMzEgMjIuNzg1MTU3Yy0yLjM3NSAzLjM5NDUzMS0xLjU1MDc4MSA4LjA3MDMxMiAxLjg0Mzc1IDEwLjQ0NTMxMnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM0MS42NzE4NzUgMTU1Ljk4NDM3NS01LjQxNzk2OSAyNy4yODUxNTZjLS45MTc5NjggNC42NDA2MjUgMi42MzI4MTMgOC45NjA5MzggNy4zNjcxODggOC45NjA5MzggMy41MDc4MTIgMCA2LjY0MDYyNS0yLjQ3MjY1NyA3LjM0NzY1Ni02LjAzOTA2M2w1LjQxNDA2Mi0yNy4yODkwNjJjLjgwODU5NC00LjA2MjUtMS44MzIwMzEtOC4wMTE3MTktNS44OTQ1MzEtOC44MTY0MDYtNC4wNjY0MDYtLjgwNDY4OC04LjAxMTcxOSAxLjgzMjAzMS04LjgxNjQwNiA1Ljg5ODQzN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTMwOS41ODk4NDQgMTIxLjQ0OTIxOWMtMi4xNDQ1MzItMy41NDI5NjktNi43NTc4MTMtNC42NzE4NzUtMTAuMzAwNzgyLTIuNTI3MzQ0bC0yMy43ODkwNjIgMTQuNDIxODc1Yy0zLjU0Mjk2OSAyLjE0ODQzOC00LjY3MTg3NSA2Ljc2MTcxOS0yLjUyNzM0NCAxMC4zMDQ2ODggMi4xNTIzNDQgMy41NDI5NjggNi43NjU2MjUgNC42Njc5NjggMTAuMzA0Njg4IDIuNTIzNDM3bDIzLjc4OTA2Mi0xNC40MTc5NjljMy41NDI5NjktMi4xNDg0MzcgNC42NzE4NzUtNi43NjE3MTggMi41MjM0MzgtMTAuMzA0Njg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtODMuNjUyMzQ0IDE1Mi4xNzk2ODhjMi43NTc4MTIgMS4zNTkzNzQgNi4xMTMyODEgMS40MDYyNSA4Ljk2ODc1IDAgNy0zLjQ1MzEyNiAyOS44MzU5MzctMTYuNTA3ODEzIDI5LjgzNTkzNy0zOS40NjQ4NDQgMC0xOC4yMDMxMjUtMjEuMjE0ODQzLTI3LjA2NjQwNi0zNC4zMTI1LTE2LjA3NDIxOS01LjA2MjUtNC4yNjE3MTktMTEuOTQxNDA2LTUuODkwNjI1LTE4Ljc1MzkwNi00LjA4OTg0NC05LjMxNjQwNiAyLjQ1NzAzMS0xNS41NzAzMTMgMTAuNTYyNS0xNS41NzAzMTMgMjAuMTY0MDYzIDAgMjMuMDE1NjI1IDIyLjg0Mzc1IDM2LjAzMTI1IDI5LjgzMjAzMiAzOS40NjQ4NDR6bS0zLjc3NzM0NC00Mi4zNjcxODhjMS4zOTg0MzggMi40Njg3NSA0LjQ2ODc1IDQuNjI1IDguMDIzNDM4IDQuNzEwOTM4IDMuNTgyMDMxLjExMzI4MSA2Ljk3MjY1Ni0yLjA0Njg3NiA4LjQ2MDkzNy00LjY1MjM0NCAzLjA1NDY4Ny01LjM1NTQ2OSAxMS4wOTc2NTYtMy4xNDQ1MzIgMTEuMDk3NjU2IDIuODQ3NjU2IDAgMTIuNjkxNDA2LTEzLjM5NDUzMSAyMS41NjY0MDYtMTkuMzI0MjE5IDI0Ljg3NS01LjkyOTY4Ny0zLjI5Mjk2OS0xOS4zMTI1LTEyLjE0NDUzMS0xOS4zMTI1LTI0Ljg3NSAwLTYuMDQyOTY5IDguMDg1OTM4LTguMTMyODEyIDExLjA1NDY4OC0yLjkwNjI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMDMuNjE3MTg4aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDA2MjYtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTkzNzQtNy41IDcuNSAwIDQuMTQ0NTMxIDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMzAuMDI3MzQ0aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDQ1MzItMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjgtNy41IDcuNSAwIDQuMTQwNjI1IDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxNTYuNDM3NWgyOS42MzY3MTljNC4xNDQ1MzEgMCA3LjUtMy4zNTU0NjkgNy41LTcuNXMtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjktNy41IDcuNXMzLjM1NTQ2OSA3LjUgNy41IDcuNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NS43Njk1MzEgMTUuMDA3ODEyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY4IDcuNS03LjUgMC00LjE0NDUzMS0zLjM1NTQ2OS03LjQ5OTk5OTUtNy41LTcuNDk5OTk5NWgtNzMuNzEwOTM3Yy0uMTE3MTg4IDAtLjIzMDQ2OS4wMTE3MTg3LS4zNDc2NTYuMDE1NjI1LTIuNDk2MDk0LS4xMjg5MDY1LTUgLjk4NDM3NDUtNi41MzkwNjMgMy4xODM1OTM1bC0yNS44OTA2MjUgMzYuOTcyNjU3LTMyLjgzOTg0NC0yMi45OTYwOTRjLTE3LjM3MTA5NC0xMi4xNjQwNjMtMzguOTAyMzQ0LTE2LjI4OTA2My01OS41OTM3NS0xMS41MzkwNjNsLTIuNTk3NjU2LTEuODIwMzEyYy05LjU4OTg0NC02LjcxMDkzOC0yMi44MTY0MDYtNC4zNDc2NTctMjkuNSA1LjE5OTIxOWwtNS45Njg3NSA4LjUyMzQzN2MtNi42OTUzMTIgOS41NjI1LTQuMzYzMjgxIDIyLjgwMDc4MSA1LjIwMzEyNSAyOS40OTYwOTRsMi4wNDY4NzUgMS40MzM1OTNjLTYuODU5Mzc1IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDgyMDMyIDUzLjE3OTY4OCAzNy4yMzgyODJsNC4xOTE0MDYgMi45MzM1OTRjLTYuODUxNTYzIDMwLjU3MDMxMiAyNi44MDQ2ODcgNTQuMTE3MTg3IDUzLjE3NTc4MSAzNy4yMzgyODFsNC4xOTUzMTMgMi45MzM1OTNjLTYuODU5Mzc2IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDc4MTI2IDUzLjE3NTc4MSAzNy4yMzQzNzZsMi4wNTQ2ODcgMS40NDE0MDZjOS41NjY0MDYgNi42OTUzMTIgMjIuODAwNzgyIDQuMzYzMjgxIDI5LjQ5NjA5NC01LjIwMzEyNWw1Ljk2ODc1LTguNTIzNDM4YzYuNjk1MzEyLTkuNTYyNSA0LjM2MzI4MS0yMi44MDA3ODEtNS4xOTkyMTktMjkuNDk2MDkzbC0zLjI3MzQzNy0yLjI5Mjk2OWMtMi42MTMyODItMjEuMDY2NDA3LTEzLjg1NTQ2OS0zOS44ODY3MTktMzEuMjI2NTYzLTUyLjA1NDY4OGwtMzAuMTk5MjE5LTIxLjE0MDYyNSAyMy42NTIzNDQtMzMuNzc3MzQ0em0tMjE1LjQ1NzAzMSA0My40NzI2NTcgMjQuNjIxMDk0IDE3LjI0MjE4N2MtMTEuNzk2ODc1IDIuNzkyOTY5LTIzLjIyMjY1Ni01LjIzNDM3NS0yNC42MjEwOTQtMTcuMjQyMTg3em01Ny4zNjcxODggNDAuMTY3OTY5IDI0LjYyNSAxNy4yNDIxODdjLTExLjc2OTUzMiAyLjc5Njg3NS0yMy4yMjI2NTctNS4yMDcwMzEtMjQuNjI1LTE3LjI0MjE4N3ptNTcuMzcxMDkzIDQwLjE3MTg3NGMxNC45MTc5NjkgMTAuNDQ1MzEzIDkuNzc3MzQ0IDYuODQzNzUgMjQuNjI1IDE3LjI0MjE4OC0xMS43NzM0MzcgMi43OTY4NzUtMjMuMjIyNjU2LTUuMjE0ODQ0LTI0LjYyNS0xNy4yNDIxODh6bTY0LjEyODkwNyA2LjM0Mzc1LTUuOTY4NzUgOC41MjM0MzhjLTEuOTUzMTI2IDIuNzg5MDYyLTUuODEyNSAzLjQ3MjY1Ni04LjYwNTQ2OSAxLjUxOTUzMS0yLjQxMDE1Ny0xLjY4NzUtMTY5Ljg1OTM3NS0xMTguOTQxNDA2LTE3Mi4wMTk1MzEtMTIwLjQ0OTIxOS0yLjc2OTUzMi0xLjk0MTQwNi0zLjQ1NzAzMi01LjgzMjAzMS0xLjUxNTYyNi04LjYwNTQ2OGw1Ljk2ODc1LTguNTIzNDM4YzEuOTQ5MjE5LTIuNzgxMjUgNS44NDM3NS0zLjQ0OTIxOCA4LjYwNTQ2OS0xLjUxNTYyNWwxNzIuMDE5NTMxIDEyMC40NDUzMTNjMi43NzM0MzggMS45NDE0MDYgMy40NTcwMzIgNS44MzU5MzcgMS41MTU2MjYgOC42MDU0Njh6bS0xNC45MDIzNDQtMzYuMjg5MDYyYy03Ljg5NDUzMi01LjUzMTI1LTEyNS4wNDY4NzUtODcuNTU4NTk0LTEyOC43MTA5MzgtOTAuMTI1IDExLjQ3MjY1Ni4zNTE1NjIgMjIuNjcxODc1IDQgMzIuMjczNDM4IDEwLjcyMjY1Nmw3NS4zMjQyMTggNTIuNzQyMTg4YzkuNTk3NjU3IDYuNzIyNjU2IDE2Ljg1OTM3NiAxNiAyMS4xMTMyODIgMjYuNjYwMTU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDkwLjgyMDMxMiAzMTAuNTE1NjI1aC0yMTcuMzIwMzEyYy00LjE0NDUzMSAwLTcuNSAzLjM1OTM3NS03LjUgNy41IDAgNC4xNDQ1MzEgMy4zNTU0NjkgNy41MDM5MDYgNy41IDcuNTAzOTA2aDIxNy4zMjAzMTJjMy40MDYyNSAwIDYuMTc5Njg4IDIuNzY5NTMxIDYuMTc5Njg4IDYuMTc1NzgxdjEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzggNi4xNzk2ODgtNi4xNzk2ODggNi4xNzk2ODgtMy40NDUzMTIgMC00NjMuNjA5Mzc0IDAtNDY5LjY0MDYyNCAwLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc2OTUzMi02LjE3OTY4OC02LjE3OTY4OHYtMTMuNjc5Njg4YzAtMy40MDYyNSAyLjc3MzQzOC02LjE3NTc4MSA2LjE3OTY4OC02LjE3NTc4MWgyMTcuMzIwMzEyYzQuMTQ0NTMxIDAgNy41LTMuMzU5Mzc1IDcuNS03LjUwMzkwNiAwLTQuMTQwNjI1LTMuMzU1NDY5LTcuNS03LjUtNy41aC04NS4zNTU0NjljLjU5NzY1Ny0xLjk1MzEyNS45MjU3ODEtNC4wMjczNDQuOTI1NzgxLTYuMTc1Nzgxdi0xMy42Nzk2ODhjMC0xMS42Nzk2ODctOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODctMjEuMTc5Njg3aC0xMTEuNzEwOTM3Yy0xMS42Nzk2ODggMC0yMS4xNzk2ODggOS41LTIxLjE3OTY4OCAyMS4xNzk2ODd2MTMuNjc5Njg4YzAgNS4yMTQ4NDQgMS45MDIzNDQgOS45ODQzNzUgNS4wMzkwNjIgMTMuNjc5Njg3LTMuMTM2NzE4IDMuNjkxNDA3LTUuMDM5MDYyIDguNDY0ODQ0LTUuMDM5MDYyIDEzLjY3NTc4MXYxMy42Nzk2ODhjMCAxMS4zMjgxMjUgOC45NDUzMTIgMjAuNTc4MTI1IDIwLjEzNjcxOSAyMS4xMjg5MDZ2Ni42MDkzNzVjMCAxMS42Nzk2ODggOS41MDM5MDYgMjEuMTc5Njg4IDIxLjE3OTY4NyAyMS4xNzk2ODhoMjAuNzE0ODQ0djk1LjE0MDYyNWMwIDcuODc4OTA2IDYuNDEwMTU2IDE0LjI4OTA2MiAxNC4yOTI5NjkgMTQuMjg5MDYyaDE0LjE1MjM0M2M3Ljg3ODkwNyAwIDE0LjI5Mjk2OS02LjQxMDE1NiAxNC4yOTI5NjktMTQuMjg5MDYydi05NS4xNDA2MjVoMzAyLjQ2MDkzOHY5NS4xNDA2MjVjMCA3Ljg3ODkwNiA2LjQxMDE1NiAxNC4yODkwNjIgMTQuMjkyOTY5IDE0LjI4OTA2MmgxNC4xNTIzNDNjNy44ODI4MTMgMCAxNC4yOTI5NjktNi40MTAxNTYgMTQuMjkyOTY5LTE0LjI4OTA2MnYtOTUuMTQwNjI1aDIwLjcxMDkzOGMxMS42Nzk2ODcgMCAyMS4xNzk2ODctOS41IDIxLjE3OTY4Ny0yMS4xNzk2ODh2LTYuNjA5Mzc1YzExLjE5NTMxMy0uNTUwNzgxIDIwLjE0MDYyNS05LjgwMDc4MSAyMC4xNDA2MjUtMjEuMTI4OTA2di0xMy42Nzk2ODhjMC0xMS42NzU3ODEtOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODgtMjEuMTc5Njg3em0tNDc1LjgyMDMxMi0xOS44NTU0NjljMC0zLjQwNjI1IDIuNzczNDM4LTYuMTc5Njg3IDYuMTc5Njg4LTYuMTc5Njg3aDExMS43MTA5MzdjMy40MDYyNSAwIDYuMTc5Njg3IDIuNzczNDM3IDYuMTc5Njg3IDYuMTc5Njg3djEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzcgNi4xNzk2ODctNi4xNzk2ODcgNi4xNzk2ODdoLTExMS43MTA5MzdjLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc3MzQzNy02LjE3OTY4OC02LjE3OTY4N3ptNzQuNzY1NjI1IDE5OC4wNjI1aC0xMi43MzQzNzV2LTk0LjQyOTY4N2gxMi43MzQzNzV6bTM0NS4yMDMxMjUgMGgtMTIuNzM4Mjgxdi05NC40Mjk2ODdoMTIuNzM4Mjgxem00MS44OTA2MjUtMTE1LjYwOTM3NWMwIDMuNDA2MjUtMi43Njk1MzEgNi4xNzk2ODgtNi4xNzk2ODcgNi4xNzk2ODgtMTMuNzE0ODQ0IDAtNDE1LjAzNTE1NyAwLTQyOS4zNjMyODIgMC0zLjQwNjI1IDAtNi4xNzk2ODctMi43NzM0MzgtNi4xNzk2ODctNi4xNzk2ODh2LTYuNTU4NTkzaDQ0MS43MjI2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjguOTYwOTM4IDExMi41MjczNDRjNC4xNDQ1MzEgMCA3LjUtMy4zNTkzNzUgNy41LTcuNXYtNDEuMTM2NzE5YzAtMTYuMzE2NDA2LTEzLjI3MzQzOC0yOS41OTM3NS0yOS41ODk4NDQtMjkuNTkzNzVoLTE3Ny4yODEyNWMtMTYuMzE2NDA2IDAtMjkuNTg5ODQ0IDEzLjI3MzQzNy0yOS41ODk4NDQgMjkuNTkzNzV2MTE3LjI3NzM0NGMwIDE2LjMxNjQwNiAxMy4yNzM0MzggMjkuNTg5ODQzIDI5LjU4OTg0NCAyOS41ODk4NDNoMTc3LjI4MTI1YzE2LjMxNjQwNiAwIDI5LjU5Mzc1LTEzLjI3MzQzNyAyOS41OTM3NS0yOS41ODk4NDN2LTQxLjE0MDYyNWMwLTQuMTQwNjI1LTMuMzU5Mzc1LTcuNS03LjUwMzkwNi03LjUtNC4xNDA2MjYgMC03LjUgMy4zNTkzNzUtNy41IDcuNXY0MS4xNDA2MjVjMCA4LjA0Mjk2OS02LjU0Njg3NiAxNC41ODk4NDMtMTQuNTg5ODQ0IDE0LjU4OTg0M2gtMTc3LjI4MTI1Yy04LjA0Mjk2OSAwLTE0LjU4OTg0NC02LjU0Njg3NC0xNC41ODk4NDQtMTQuNTg5ODQzdi0xMTcuMjc3MzQ0YzAtOC4wNDY4NzUgNi41NDY4NzUtMTQuNTkzNzUgMTQuNTg5ODQ0LTE0LjU5Mzc1aDE3Ny4yODEyNWM4LjA0Mjk2OCAwIDE0LjU4OTg0NCA2LjU0Njg3NSAxNC41ODk4NDQgMTQuNTkzNzV2NDEuMTM2NzE5YzAgNC4xNDA2MjUgMy4zNTkzNzQgNy41IDcuNSA3LjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNC43NzM0MzggNjEuNTcwMzEyYy00LjE0NDUzMiAwLTcuNSAzLjM1OTM3Ni03LjUgNy41djEwNi45MTQwNjNjMCA0LjE0NDUzMSAzLjM1NTQ2OCA3LjUgNy41IDcuNWgxNjYuOTE0MDYyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY5IDcuNS03LjV2LTEwNi45MTQwNjNjMC00LjE0MDYyNC0zLjM1NTQ2OS03LjUtNy41LTcuNXptMTU5LjQxNDA2MiAxMDYuOTE0MDYzaC0xNTEuOTE0MDYydi05MS45MTQwNjNoMTUxLjkxNDA2MnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==","Front Yard":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMTI2LjQ5LDM2Ljk0N2MtMzEuNTc5LDAtNTcuMjcsMjUuNjkxLTU3LjI3LDU3LjI3YzAsMzEuNTc5LDI1LjY5MSw1Ny4yNyw1Ny4yNyw1Ny4yN2MzMS41NzgsMCw1Ny4yNy0yNS42OTEsNTcuMjctNTcuMjcKCQkJQzE4My43NjEsNjIuNjM4LDE1OC4wNywzNi45NDcsMTI2LjQ5LDM2Ljk0N3ogTTEyNi40OSwxMzEuNDg3Yy0yMC41NTEsMC0zNy4yNy0xNi43MTktMzcuMjctMzcuMjcKCQkJYzAtMjAuNTUxLDE2LjcxOS0zNy4yNywzNy4yNy0zNy4yN2MyMC41NSwwLDM3LjI3LDE2LjcxOSwzNy4yNywzNy4yN0MxNjMuNzYxLDExNC43NjgsMTQ3LjA0MiwxMzEuNDg3LDEyNi40OSwxMzEuNDg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMFYxMEMxMzYuNDksNC40NzcsMTMyLjAxNCwwLDEyNi40OSwweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMTU2LjA5N2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMHYtMTIuMzM4CgkJCUMxMzYuNDksMTYwLjU3NCwxMzIuMDE0LDE1Ni4wOTcsMTI2LjQ5LDE1Ni4wOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMC43MDgsODQuMjE3SDE5OC4zN2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzhjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCQlTMjE2LjIzLDg0LjIxNywyMTAuNzA4LDg0LjIxN3oiLz4KICAgICAgICA8cGF0aCBkPSJNNTQuNjEsODQuMjE3SDQyLjI3MmMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzljNS41MjMsMCwxMC00LjQ3Nyw5Ljk5OS0xMAoJCQlDNjQuNjEsODguNjk0LDYwLjEzNCw4NC4yMTcsNTQuNjEsODQuMjE3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMDAuOTc3LDE5LjcyOWMtMy45MDUtMy45MDUtMTAuMjM3LTMuOTA1LTE0LjE0MiwwbC05Ljg3Nyw5Ljg3N2MtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzCgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOWMyLjU1OSwwLDUuMTE5LTAuOTc2LDcuMDcxLTIuOTI5bDkuODc3LTkuODc3QzIwNC44ODMsMjkuOTY2LDIwNC44ODMsMjMuNjM0LDIwMC45NzcsMTkuNzI5CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIzLDE0NC42ODVjLTMuOTA2LTMuOTA1LTEwLjIzOC0zLjkwNS0xNC4xNDMsMGwtOS44NzcsOS44NzdjLTMuOTA1LDMuOTA2LTMuOTA1LDEwLjIzOCwwLDE0LjE0MwoJCQljMS45NTIsMS45NTMsNC41MTIsMi45MjksNy4wNzEsMi45MjlzNS4xMTktMC45NzYsNy4wNzItMi45MjlsOS44NzctOS44NzdDNzkuOTI4LDE1NC45MjIsNzkuOTI4LDE0OC41OSw3Ni4wMjMsMTQ0LjY4NXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIxLDI5LjYwNmwtOS44NzctOS44NzdjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDIsMGMtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzbDkuODc3LDkuODc3CgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOXM1LjExOS0wLjk3Niw3LjA3MS0yLjkyOUM3OS45MjcsMzkuODQzLDc5LjkyNywzMy41MTEsNzYuMDIxLDI5LjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDU5LjU0LDQ2OC4zODljLTAuMTI5LTAuNjQtMC4zMi0xLjI3LTAuNTctMS44N2MtMC4yNS0wLjYtMC41Ni0xLjE4LTAuOTItMS43MmMtMC4zNi0wLjU1LTAuNzgtMS4wNi0xLjI0LTEuNTMKCQkJYy0wLjQ2LTAuNDYtMC45Ny0wLjg3LTEuNTItMS4yNGMtMC41NC0wLjM2LTEuMTItMC42Ny0xLjczLTAuOTJjLTAuNTk5LTAuMjUtMS4yMjktMC40NC0xLjg3LTAuNTdjLTEuMjktMC4yNi0yLjYyLTAuMjYtMy45MDksMAoJCQljLTAuNjMxLDAuMTMtMS4yNjEsMC4zMi0xLjg3LDAuNTdjLTAuNjAxLDAuMjUtMS4xODEsMC41Ni0xLjcyMSwwLjkyYy0wLjU1LDAuMzctMS4wNiwwLjc4LTEuNTIsMS4yNAoJCQljLTAuNDYsMC40Ny0wLjg4LDAuOTgtMS4yNSwxLjUzYy0wLjM2LDAuNTQtMC42NywxLjEyLTAuOTIsMS43MmMtMC4yNSwwLjYtMC40NCwxLjIzLTAuNTcsMS44NwoJCQljLTAuMTMsMC42NTEtMC4xOSwxLjMwMS0wLjE5LDEuOTYxYzAsMC42NSwwLjA2LDEuMzEsMC4xOSwxLjk1YzAuMTMsMC42NCwwLjMyLDEuMjcsMC41NywxLjg3YzAuMjUsMC42LDAuNTYsMS4xOCwwLjkyLDEuNzMKCQkJYzAuMzcsMC41NCwwLjc5LDEuMDYsMS4yNSwxLjUyYzAuNDYsMC40NiwwLjk3LDAuODgsMS41MiwxLjI0YzAuNTQsMC4zNiwxLjEyLDAuNjcsMS43MjEsMC45MmMwLjYwOSwwLjI1LDEuMjM5LDAuNDQsMS44NywwLjU3CgkJCWMwLjY1LDAuMTMsMS4zMSwwLjIsMS45NiwwLjJjMC42NSwwLDEuMzEtMC4wNywxLjk0OS0wLjJjMC42NDEtMC4xMywxLjI3LTAuMzIsMS44Ny0wLjU3YzAuNjEtMC4yNSwxLjE5LTAuNTYsMS43My0wLjkyCgkJCWMwLjU1LTAuMzYsMS4wNi0wLjc4LDEuNTItMS4yNGMwLjQ2LTAuNDYsMC44OC0wLjk4LDEuMjQtMS41MmMwLjM2MS0wLjU1LDAuNjctMS4xMywwLjkyLTEuNzNjMC4yNS0wLjYsMC40NC0xLjIzLDAuNTctMS44NwoJCQlzMC4yLTEuMywwLjItMS45NUM0NTkuNzQsNDY5LjY4OSw0NTkuNjcsNDY5LjAzOSw0NTkuNTQsNDY4LjM4OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjczOSw0NjAuMzQ2SDYyLjEzOGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgzNDcuNmM1LjUyMywwLDEwLTQuNDc3LDEwLjAwMS0xMAoJCQlDNDE5LjczOSw0NjQuODIzLDQxNS4yNjEsNDYwLjM0Niw0MDkuNzM5LDQ2MC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMS41NjMsNDI3LjkzMWgtNi44MDljLTMuODA2LTIxLjMxMi0yMi40NzYtMzcuNTQtNDQuODY0LTM3LjU0Yy0zLjMsMC02LjU5MSwwLjM2Mi05LjgwMywxLjA2N1YyOTMuMjkKCQkJYzM2LjQ4Mi00LjkwMiw2NC43MDQtMzYuMjM2LDY0LjcwNC03NC4wMzdjMC0xOS43MDktNy43ODEtMzguNTMxLTIxLjUyNC01Mi40NjRjMC4xODYtMS44MTQsMC4yNzgtMy42NDEsMC4yNzgtNS40NjgKCQkJYzAtMjkuNDc3LTIzLjk4MS01My40NTgtNTMuNDU4LTUzLjQ1OGMtMjkuNDc3LDAtNTMuNDU4LDIzLjk4Mi01My40NTgsNTMuNDU4YzAsMS44MjcsMC4wOTMsMy42NTMsMC4yNzcsNS40NjcKCQkJYy0xMy43NDEsMTMuOTM0LTIxLjUyMywzMi43NTYtMjEuNTIzLDUyLjQ2NWMwLDM3LjgwMiwyOC4yMjMsNjkuMTM2LDY0LjcwNCw3NC4wMzd2ODkuNjJjLTQuNjg1LTEuNjMyLTkuNzE2LTIuNTItMTQuOTUxLTIuNTIKCQkJYy0yNS4xMjksMC00NS41NzMsMjAuNDQ0LTQ1LjU3Myw0NS41NzR2MS45NjhoLTguNTA2di0zNS4xM2gwLjAwMWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi00M2MwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC0wLjAwMQoJCQl2LTQ3LjMyOWMwLTIuODQ0LTEuMjExLTUuNTUzLTMuMzMtNy40NUwzMTYuMjcsMjQ2Ljg2Yy0zLjc5Ny0zLjM5OS05LjU0My0zLjM5OS0xMy4zNCwwbC0yNC43ODcsMjIuMTkxbC0yNC43ODgtMjIuMTkxCgkJCWMtMy43OTctMy4zOTgtOS41NDMtMy4zOTgtMTMuMzQsMGwtMjQuNzg4LDIyLjE5MWwtMjQuNzg4LTIyLjE5MWMtMy43OTctMy4zOTktOS41NDMtMy4zOTktMTMuMzQsMC4wMDFsLTI0Ljc4NywyMi4xOTEKCQkJbC0yNC43ODgtMjIuMTkxYy0zLjc5Ny0zLjM5OC05LjU0My0zLjM5OC0xMy4zNCwwTDg5LjM5OCwyNjkuMDVMNjQuNjEsMjQ2Ljg1OWMtMy43OTYtMy4zOTktOS41NDMtMy4zOTktMTMuMzQtMC4wMDEKCQkJbC0zMS40NTgsMjguMTYzYy0yLjExOSwxLjg5Ny0zLjMzLDQuNjA2LTMuMzMsNy40NTF2NDcuMzI5aC0wLjAwMWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHY0M2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDAuMDAxCgkJCXYzNS4xM2gtNi4wNDRjLTUuNTIzLDAtMTAsNC40NzctMTAsMTBWNTAyYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDkxLjEyM2M1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi02NC4wNjkKCQkJQzUxMS41NjMsNDMyLjQwOCw1MDcuMDg1LDQyNy45MzEsNTAxLjU2Myw0MjcuOTMxeiBNNDQ5Ljg5LDQxMC4zOTFjMTEuMjk2LDAsMjAuOTA1LDcuMzYyLDI0LjI4MSwxNy41NGgtMjMuNDYydi0xLjk2OAoJCQljMC01LjQ0MS0wLjk1OS0xMC42NjItMi43MTYtMTUuNTA0QzQ0OC42Miw0MTAuNDE0LDQ0OS4yNTMsNDEwLjM5MSw0NDkuODksNDEwLjM5MXogTTQyMC4wODcsMTg1LjU3NHYzMy4xMThsLTEwLjQwNy0xMC40MDcKCQkJYy0zLjkwNi0zLjkwNC0xMC4yMzYtMy45MDQtMTQuMTQzLDBjLTMuOTA1LDMuOTA1LTMuOTA1LDEwLjIzNywwLDE0LjE0M2wyMy4yNTcsMjMuMjU3YzAuNDA3LDAuNDA2LDAuODM5LDAuNzcsMS4yOTMsMS4wOTEKCQkJdjI2LjI2NWMtMjUuNDA1LTQuNzEyLTQ0LjcwNC0yNy4wMzktNDQuNzA0LTUzLjc4OWMwLTE1LjgxNiw2Ljg0NS0zMC44NTQsMTguNzc4LTQxLjI1NmMyLjc0LTIuMzg4LDMuOTY5LTYuMDc1LDMuMjA5LTkuNjI5CgkJCWMtMC40OTItMi4yOTktMC43NDEtNC42Ny0wLjc0MS03LjA0N2MwLTE4LjQ0OSwxNS4wMDktMzMuNDU4LDMzLjQ1OC0zMy40NThjMTguNDQ5LDAsMzMuNDU4LDE1LjAwOSwzMy40NTgsMzMuNDU4CgkJCWMwLDIuMzc4LTAuMjQ5LDQuNzQ4LTAuNzQxLDcuMDQ1Yy0wLjc2MiwzLjU1NSwwLjQ2Nyw3LjI0MywzLjIwOCw5LjYzMmMxMS45MzUsMTAuNDAzLDE4Ljc3OSwyNS40NCwxOC43NzksNDEuMjU2CgkJCWMwLDI2Ljc1LTE5LjI5OSw0OS4wNzYtNDQuNzA0LDUzLjc4OHYtMjYuMjY1YzAuNDUzLTAuMzIyLDAuODg3LTAuNjg1LDEuMjkzLTEuMDkxbDIzLjI1Ny0yMy4yNTcKCQkJYzMuOTA1LTMuOTA1LDMuOTA1LTEwLjIzNywwLTE0LjE0M2MtMy45MDYtMy45MDQtMTAuMjM2LTMuOTA0LTE0LjE0MywwbC0xMC40MDcsMTAuNDA3di0zMy4xMThjMC01LjUyMy00LjQ3OC0xMC0xMC0xMAoJCQlDNDI0LjU2NCwxNzUuNTc0LDQyMC4wODcsMTgwLjA1MSw0MjAuMDg3LDE4NS41NzR6IE0zNzkuNTYzLDQyNS45NjNjMC0xNC4xMDIsMTEuNDcyLTI1LjU3NCwyNS41NzMtMjUuNTc0CgkJCWMxNC4xMDIsMCwyNS41NzMsMTEuNDcyLDI1LjU3MywyNS41NzR2MS45NjhoLTUxLjE0NlY0MjUuOTYzeiBNMjg4LjE0MywyODYuOTQxbDIxLjQ1Ny0xOS4yMWwyMS40NTcsMTkuMjFWMzI5LjhoLTQyLjkxNFYyODYuOTQxCgkJCXogTTIyNS4yMjcsMjg2Ljk0MWwyMS40NTgtMTkuMjFsMjEuNDU3LDE5LjIxVjMyOS44aC00Mi45MTVWMjg2Ljk0MXogTTE2Mi4zMTMsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44aC00Mi45MTUKCQkJVjI4Ni45NDF6IE05OS4zOTgsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44SDk5LjM5OFYyODYuOTQxeiBNMzYuNDgzLDI4Ni45NDFsMjEuNDU3LTE5LjIxbDIxLjQ1NywxOS4yMVYzMjkuOAoJCQlIMzYuNDgzVjI4Ni45NDF6IE0yNi40ODIsMzQ5LjgwMWgzMTQuNTc1djIzSDI2LjQ4MlYzNDkuODAxeiBNMzMxLjA1NywzOTIuODAxdjM1LjEzaC00Mi45MTR2LTM1LjEzSDMzMS4wNTd6IE0yNjguMTQzLDM5Mi44MDEKCQkJdjM1LjEzaC00Mi45MTV2LTM1LjEzSDI2OC4xNDN6IE0yMDUuMjI3LDM5Mi44MDF2MzUuMTNoLTQyLjkxNXYtMzUuMTNIMjA1LjIyN3ogTTE0Mi4zMTMsMzkyLjgwMXYzNS4xM0g5OS4zOTh2LTM1LjEzSDE0Mi4zMTN6CgkJCSBNNzkuMzk4LDM5Mi44MDF2MzUuMTNIMzYuNDgzdi0zNS4xM0g3OS4zOTh6IE0yMC40MzgsNDkydi00NC4wNjloNDcxLjEyM1Y0OTJIMjAuNDM4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzguNDg3LDEyNy44NDNjLTAuNTU2LDAtMS4xMTIsMC4wMTEtMS42NjgsMC4wMzNjLTcuNTQzLTE0LjQyLTIyLjUxOS0yMy45MjMtMzguODk0LTIzLjkyMwoJCQljLTIwLjU4NywwLTM4LjA0NywxNC42ODMtNDIuNzczLDM0LjM0NmMtMTkuNzgzLDEuOTMtMzUuMzA5LDE5LjAwMS0zNS4zMDksMzkuNzA3YzAsMjEuOTk0LDE3LjUxNywzOS44ODcsMzkuMDQ4LDM5Ljg4N2g3OS41OTYKCQkJYzI0LjI4NSwwLDQ0LjA0MS0yMC4xOTgsNDQuMDQxLTQ1LjAyNUMzMjIuNTI3LDE0OC4wNDEsMzAyLjc3MSwxMjcuODQzLDI3OC40ODcsMTI3Ljg0M3ogTTI3OC40ODcsMTk3Ljg5M2gtNzkuNTk2CgkJCWMtMTAuNTAzLDAtMTkuMDQ4LTguOTIxLTE5LjA0OC0xOS44ODdjMC0xMC45NjcsOC41NDUtMTkuODg4LDE5LjA0OC0xOS44ODhjMS4wNTYsMCwyLjE0OCwwLjA5OSwzLjI0NCwwLjI5NgoJCQljMi44OTMsMC41MTYsNS44Ny0wLjI2Nyw4LjEzNS0yLjE0MWMyLjI2NS0xLjg3NSwzLjU5LTQuNjUyLDMuNjIzLTcuNTkyYzAuMTUzLTEzLjYzNSwxMC45MzMtMjQuNzI4LDI0LjAzMi0yNC43MjgKCQkJYzEwLjYzOCwwLDE5Ljg3Nyw3LjEwOCwyMi45ODgsMTcuNjg5YzEuNTExLDUuMTM1LDYuNzk0LDguMTczLDExLjk5NCw2Ljg4NmMxLjgzOC0wLjQ1NCwzLjcxNS0wLjY4NCw1LjU4LTAuNjg0CgkJCWMxMy4yNTYsMCwyNC4wNDEsMTEuMjI2LDI0LjA0MSwyNS4wMjVDMzAyLjUyNywxODYuNjY3LDI5MS43NDMsMTk3Ljg5MywyNzguNDg3LDE5Ny44OTN6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gallery:wxe,Garage:Cxe,Garden:Ixe,"Ground Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgIGQ9Ik0yOTkuNjY4LDIzMS41NzJoLTMuMzM4di02NS43NDZjMC01LjcyNC00LjY1Ny0xMC4zOC0xMC4zOC0xMC4zOGgtNTkuMzU1Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAuMDAxLDQuMDI0LDMuMjYzLDcuMjg3LDcuMjg3LDcuMjg3aDg2Ljc5MWM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMzMDYuOTU1LDIzNC44MzUsMzAzLjY5MywyMzEuNTcyLDI5OS42NjgsMjMxLjU3MnogTTI4MS43NTgsMjMxLjU3M2gtNTAuOTd2LTYxLjU1NGg1MC45N1YyMzEuNTczeiIvPgogICAgICAgIDxwYXRoIG9wYWNpdHk9IjAuMjUiICBkPSJNNDEyLjU3MiwyMzEuNTcyaC0zLjMzOHYtNjUuNzQ2YzAtNS43MjQtNC42NTctMTAuMzgtMTAuMzc5LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g4Ni43OTFjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDE5Ljg1OSwyMzQuODM1LDQxNi41OTcsMjMxLjU3Miw0MTIuNTcyLDIzMS41NzJ6IE0zOTQuNjYxLDIzMS41NzNoLTUwLjk3di02MS41NTRoNTAuOTdWMjMxLjU3M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTgyLjgxMyw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTUsNC41MjktMTAuMDk1LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0aDU5LjUwNGg3LjgxNGM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMxOTAuMSw0MTcuMDk1LDE4Ni44MzgsNDEzLjgzMywxODIuODEzLDQxMy44MzN6IE0xNjcuNzEyLDQxMy44MzNoLTQ0LjkzMXYtNTUuNTY3aDQ0LjkzMVY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDQuMzE0LDQxMy44MzNoLTAuNTI4di02MC4wNDVjMC01LjU2Ni00LjUyOS0xMC4wOTUtMTAuMDk1LTEwLjA5NWgtNTMuODg2Yy01LjU2NiwwLTEwLjA5Niw0LjUyOS0xMC4wOTYsMTAuMDk1djYwLjA0NQoJCQloLTAuNTI4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjUsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoNy44MTRIMzk2LjVoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDExLjYwMSw0MTcuMDk1LDQwOC4zMzksNDEzLjgzMyw0MDQuMzE0LDQxMy44MzN6IE0zODkuMjEzLDQxMy44MzNoLTQ0LjkzMnYtNTUuNTY3aDQ0LjkzMlY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzYuNTQ1LDQwNS4wODljLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MTIuNjNjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4NwoJCQljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtMTIuNjNDMjgzLjgzMiw0MDguMzUyLDI4MC41Nyw0MDUuMDg5LDI3Ni41NDUsNDA1LjA4OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==","Guest Bathroom":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMuNjE4IDYyLTIuNzE4LTUuNDQ3YTEgMSAwIDAgMCAtLjktLjU1M2gtMXYtMzBoM3YtMmgtM3YtMTlhNS4wMDYgNS4wMDYgMCAwIDAgLTUtNWgtMTRhNS4wMDYgNS4wMDYgMCAwIDAgLTUgNXYxYTMgMyAwIDAgMCAtMyAzdjFoLTVhMyAzIDAgMCAwIC0zIDN2MmExIDEgMCAwIDAgMSAxaDE1di0yaC0xNHYtMWExIDEgMCAwIDEgMS0xaDE4YTEgMSAwIDAgMSAxIDF2MWgtNHYyaDVhMSAxIDAgMCAwIDEtMXYtMmEzIDMgMCAwIDAgLTMtM2gtNXYtMWEzIDMgMCAwIDAgLTMtM3YtMWEzIDMgMCAwIDEgMy0zaDE0YTMgMyAwIDAgMSAzIDN2MTloLTV2Mmg1djE0aC0zdi0yaC0ydjZoMnYtMmgzdjE0aC0xYTEgMSAwIDAgMCAtLjkuNTUzbC0yLjcxOCA1LjQ0N2gtNTIuMzgydjJoNjR2LTJ6bS0yNS42MTgtNTN2MWgtNHYtMWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXptMTguNjE4IDQ5aDIuNzY0bDIgNGgtNi43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI5IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDM0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMyAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDEgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDI0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAyOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDE4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMThoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI1IDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAxOGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIgMzcuOTg3djE5LjAxM2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTE5LjFsMi0uMDEzdjIuMTEzaDJ2LTZoLTJ2MS44ODJsLTE4LjAwNi4xMTguMDEyIDJ6bTIgMTIuMDEzaDEwdjFoLTEwem0wIDZ2LTNoMTB2M3ptMTAtOGgtMTB2LTEwLjAyNmwxMC0uMDY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyOWM0LjQ4NiAwIDgtNS4yNzEgOC0xMnMtMy41MTQtMTItOC0xMi04IDUuMjcxLTggMTIgMy41MTQgMTIgOCAxMnptMC0yMmMzLjI1MiAwIDYgNC41NzkgNiAxMHMtMi43NDggMTAtNiAxMC02LTQuNTc5LTYtMTAgMi43NDgtMTAgNi0xMHoiLz4KICAgICAgICA8cGF0aCBkPSJtNS4wOTUgMTMuNWg3LjgxdjJoLTcuODF6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzY4IC0uNjQgLjY0IC43NjggLTcuMTk3IDkuMTIyKSIvPgogICAgICAgIDxwYXRoIGQ9Im03LjA5NSAxOC41aDcuODF2MmgtNy44MXoiIHRyYW5zZm9ybT0ibWF0cml4KC43NjggLS42NCAuNjQgLjc2OCAtOS45MzQgMTEuNTYyKSIvPgogICAgPC9nPgo8L3N2Zz4=","Guest Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NTYsMzI4YTQwLjAzNyw0MC4wMzcsMCwwLDAtOCwuODA0OTNWMTQ0YTcuOTc1MjIsNy45NzUyMiwwLDAsMC0yLjM0MzgxLTUuNjU3NDcsMTQuNjQ1MzUsMTQuNjQ1MzUsMCwwLDEsMC0yMC42ODUwNkE3Ljk3NTIyLDcuOTc1MjIsMCwwLDAsNDQ4LDExMlY4OGg0MGE3Ljk5OTQ2LDcuOTk5NDYsMCwwLDAsNi45NDU4LTExLjk2ODc1bC0zMi01NkE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAsNDU2LDE2SDM4NGE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAtNi45NDU4LDQuMDMxMjVsLTMyLDU2QTcuOTk5NDYsNy45OTk0NiwwLDAsMCwzNTIsODhoNDB2MjRhNy45NzUyMiw3Ljk3NTIyLDAsMCwwLDIuMzQzODEsNS42NTc0NywxNC42NDUzNSwxNC42NDUzNSwwLDAsMSwwLDIwLjY4NTA2QTcuOTc1MjIsNy45NzUyMiwwLDAsMCwzOTIsMTQ0VjMyMEgzMTJWMjg4aDI0YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMjQ4YTguMDAwMDgsOC4wMDAwOCwwLDAsMC04LThIMzEyVjIxNmg0OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAsOC04VjExMmE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDIwOGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djk2YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhoNDh2MjRIMjA1LjQxNjA4bC0xMy42MDU1My0zNC4wMTQ2NS00Ljk3NDEyLTM5Ljc5M0E1Ni41MzE0OCw1Ni41MzE0OCwwLDAsMCwxODQsMTU0LjI2VjgwQTY0LDY0LDAsMCwwLDU2LDgwdjUyLjgyODYxQTU2LjA0MTkzLDU2LjA0MTkzLDAsMCwwLDMzLjU5NDI0LDE2MS45MTlsLTE3LjE4MzYsNTEuNTUwNzhhNy45OTgsNy45OTgsMCwwLDAtLjE3MTg3LDQuNDcwN2w1LjU5MTM3LDIyLjM2NTQ4QTcuOTk3NDUsNy45OTc0NSwwLDAsMCwxNiwyNDhWNDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhINDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMzY4QTQwLjA0NTUyLDQwLjA0NTUyLDAsMCwwLDQ1NiwzMjhabTI0LDQwdjU2SDQzMlYzNjhhMjQsMjQsMCwwLDEsNDgsMFpNMjY0LDQyNFY0MDBhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgtOEg0MDhhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgsOHYyNFpNOTYsNDI0VjQwMGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOC04SDI0MGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOCw4djI0Wm0zMjAtODB2MzMuMzc2MjJBMjMuODgyMTIsMjMuODgyMTIsMCwwLDAsNDA4LDM3NkgyNzJhMjMuOTAxMTEsMjMuOTAxMTEsMCwwLDAtMTYsNi4xMzA4NkEyMy45MDExMSwyMy45MDExMSwwLDAsMCwyNDAsMzc2SDEwNGEyMy44ODIxMiwyMy44ODIxMiwwLDAsMC04LDEuMzc2MjJWMzQ0YTguMDA5MTcsOC4wMDkxNywwLDAsMSw4LThINDA4QTguMDA5MTcsOC4wMDkxNywwLDAsMSw0MTYsMzQ0Wm0xMC40NTE3Mi0yMDhINDEzLjU0ODI4YTMwLjg0MzUxLDMwLjg0MzUxLDAsMCwwLDAtMTZoMTIuOTAzNDRBMzAuODQzNTEsMzAuODQzNTEsMCwwLDAsNDI2LjQ1MTcyLDEzNlpNMzg4LjY0MjU4LDMyaDYyLjcxNDg0bDIyLjg1Njk0LDQwSDM2NS43ODU2NFpNNDMyLDg4djE2SDQwOFY4OFptLTI0LDY0aDI0VjMzNi4wMjJjLS4zNjYzMy4yNzU2NC0uNzI0MTguNTYyLTEuMDgwNjkuODQ5NjFBMjQuMDQzNjksMjQuMDQzNjksMCwwLDAsNDA4LDMyMFpNMjk2LDMyMEgxMDRhMjQuMDQzNjksMjQuMDQzNjksMCwwLDAtMjIuOTE5MzEsMTYuODcxNThBMzkuOSwzOS45LDAsMCwwLDMyLDMzNi4wMjJWMjg4SDI5NlptMzItNDhIMzJWMjU2SDMyOFpNNzIsMjQwSDY0VjIyNS41NDFsNy4zMTY4OS0xOC4yOTJMNzIsMjA5LjI5Nzg1Wm04OC0uMDAwMjQuMDAwMjQuMDAwMjRIMTYwWk0yMTYsMjAwVjEyMEgzNTJ2ODBIMzEyVjE2OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDI2NGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djMyWm01Ni0yNGgyNHY2NEgyNzJaTTEyMCwzMmE0OC4wNTQsNDguMDU0LDAsMCwxLDQ4LDQ4djUwLjg1MzUyYTU2LjcyNTYyLDU2LjcyNTYyLDAsMCwwLTcuOTE5OTItNS43MzUzNmwtMTEuNDQxNjUtNi44NjVBMzEuNzk0MDUsMzEuNzk0MDUsMCwwLDAsMTUyLDEwNFY4MGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04aC02LjExMTMzYTIwLjgzMDUzLDIwLjgzMDUzLDAsMCwxLTE4LjczMzQtMTEuNTc4MTIsOC4wMDA2NCw4LjAwMDY0LDAsMCwwLTEyLjgxMi0yLjA3OTExbC0xNiwxNkE4LjAwMDc2LDguMDAwNzYsMCwwLDAsODgsODB2MjRhMzEuODAxODgsMzEuODAxODgsMCwwLDAsMi43NTc1MSwxMi45NzExOUw3MiwxMjUuMDFWODBBNDguMDU0LDQ4LjA1NCwwLDAsMSwxMjAsMzJabTE2LDcyYTE2LDE2LDAsMCwxLTMyLDBWODMuMzEzNDhsNi45NDY3OC02Ljk0NjI5QTM2LjY5ODE2LDM2LjY5ODE2LDAsMCwwLDEzNiw4Ny45NTMxMlptLTM0Ljc3MTkxLDI1Ljg5MjA5YTMxLjkxNjEzLDMxLjkxNjEzLDAsMCwwLDM2LjcwNDQ3LjU5NzE3bDEuMjM3MTguNzQyNDNMMTIwLDE1NS4xOTMzNmwtMTkuODY2MjctMjQuODMyMjhaTTQ4Ljc3MywxNjYuOTc5NDlBNDAuMDM1MzgsNDAuMDM1MzgsMCwwLDEsNzAuOTYzODcsMTQyLjg2MjNsMTMuOTExNjItNS45NjE5MSwyOC44Nzc0NCwzNi4wOTY2OGE3Ljk5OTQzLDcuOTk5NDMsMCwwLDAsMTIuNDk0MTQsMEwxNTIuOTksMTM5LjU2ODM2YTM5LjcyNzc5LDM5LjcyNzc5LDAsMCwxLDE3Ljk2OTQ4LDI4LjYwODRsNS4xMDI1NCw0MC44MTU0M2E3Ljk4MjgxLDcuOTgyODEsMCwwLDAsLjUxMDI2LDEuOTc4NTFMMTg4LjE4MzU5LDI0MEgxODBsLTIwLTI2LjY2N1YyMDEuODA2NjRhNTAuODIzMzgsNTAuODIzMzgsMCwwLDAsMS45MzI2Mi0zNy4zMDc2MmwtMi4zNDMyNi03LjAyOTI5LTE1LjE3ODcyLDUuMDYwNTQsMi4zNDMyNyw3LjAyOTNhMzQuOTU1MTMsMzQuOTU1MTMsMCwwLDEtMS45MDkxOCwyNi44NjIzMUE3Ljk5OTM0LDcuOTk5MzQsMCwwLDAsMTQ0LDIwMHY0MEg4OFYyMDhhOC4wMDY0Myw4LjAwNjQzLDAsMCwwLS40MTA2NC0yLjUzMDI3bC04LTI0YTguMDAwMDksOC4wMDAwOSwwLDAsMC0xNS4wMTcwOS0uNDQwNDNsLTE2LDQwQTcuOTk3MjMsNy45OTcyMywwLDAsMCw0OCwyMjR2MTZIMzguMjQ2MDlsLTUuOTE5OTItMjMuNjgwNjZaTTMyLDM2OGEyNCwyNCwwLDAsMSw0OCwwdjU2SDMyWk00ODAsNDgwSDMyVjQ0MEg0ODBaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gym:pxe,Hall:Axe,"Home Theater":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSIxIC00NCA1MTEuOTk4OTkgNTExIiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggZD0ibTI4Mi41MTk1MzEgMzMzLjk4ODI4MWMtNC4xNzE4NzUgMC03LjU0Njg3NSAzLjM3ODkwNy03LjU0Njg3NSA3LjU0Njg3NSAwIDQuMTY3OTY5IDMuMzc1IDcuNTQ2ODc1IDcuNTQ2ODc1IDcuNTQ2ODc1aDExNC4zMzk4NDRjNy4wODIwMzEgMCAxMi44NDM3NS01Ljc2MTcxOSAxMi44NDM3NS0xMi44NDc2NTZ2LTE5MS45Mjk2ODdjMC03LjA4MjAzMi01Ljc2MTcxOS0xMi44NDc2NTctMTIuODQzNzUtMTIuODQ3NjU3aC0yODEuNzE4NzVjLTcuMDgyMDMxIDAtMTIuODQzNzUgNS43NjU2MjUtMTIuODQzNzUgMTIuODQ3NjU3djE5MS45Mjk2ODdjMCA3LjA4NTkzNyA1Ljc2MTcxOSAxMi44NDc2NTYgMTIuODQzNzUgMTIuODQ3NjU2aDEzNy4xOTE0MDZjNC4xNjc5NjkgMCA3LjU0Njg3NS0zLjM3ODkwNiA3LjU0Njg3NS03LjU0Njg3NSAwLTQuMTY3OTY4LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc1LTcuNTQ2ODc1aC0xMzQuOTQ1MzEydi0xODcuNDM3NWgyNzcuMjI2NTYydjE4Ny40Mzc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00OS4yNjE3MTkgODIuNzQyMTg4YzE1LjU4MjAzMSAwIDI4LjI2MTcxOS0xMi42Nzk2ODggMjguMjYxNzE5LTI4LjI1MzkwNyAwLTE1LjU4NTkzNy0xMi42Nzk2ODgtMjguMjYxNzE5LTI4LjI2MTcxOS0yOC4yNjE3MTktMTUuNTc4MTI1IDAtMjguMjUzOTA3IDEyLjY3NTc4Mi0yOC4yNTM5MDcgMjguMjYxNzE5IDAgMTUuNTc0MjE5IDEyLjY3NTc4MiAyOC4yNTM5MDcgMjguMjUzOTA3IDI4LjI1MzkwN3ptMC00MS40MjU3ODJjNy4yNjE3MTkgMCAxMy4xNjc5NjkgNS45MDYyNSAxMy4xNjc5NjkgMTMuMTcxODc1IDAgNy4yNTM5MDctNS45MDYyNSAxMy4xNjAxNTctMTMuMTY3OTY5IDEzLjE2MDE1Ny03LjI1MzkwNyAwLTEzLjE2MDE1Ny01LjkwNjI1LTEzLjE2MDE1Ny0xMy4xNjAxNTcgMC03LjI2NTYyNSA1LjkwNjI1LTEzLjE3MTg3NSAxMy4xNjAxNTctMTMuMTcxODc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxLjVjLTI3LjE2NDA2MiAwLTQ5LjI2OTUzMSAyMi4xMDU0NjktNDkuMjY5NTMxIDQ5LjI2OTUzMXY1Ni4zMDQ2ODhjLTUuNjUyMzQ0LTEuMzY3MTg4LTYuMDQyOTY5LS41MzUxNTctNTQuMzMyMDMxLS43NzczNDQtNC4xNjQwNjMgMC03LjU0Mjk2OSAzLjM4MjgxMy03LjU0Mjk2OSA3LjU0Njg3NXMzLjM3ODkwNiA3LjU0Njg3NSA3LjU0Mjk2OSA3LjU0Njg3NWg0Ny43MjI2NTZjNy43MzA0NjkgMCAxMy45MTQwNjMgNi4zMDQ2ODcgMTMuOTE0MDYzIDEzLjkxNDA2M3YyMTEuOTMzNTkzYzAgNy42NjQwNjMtNi4yNDYwOTQgMTMuOTE0MDYzLTEzLjkxNDA2MyAxMy45MTQwNjMtNTkuNDE3OTY5IDAtMjMxLjU1NDY4NyAwLTMwMS43MTg3NSAwLTcuNjY3OTY5IDAtMTMuOTE0MDYzLTYuMjUtMTMuOTE0MDYzLTEzLjkxNDA2MyAwLTEwLjc0NjA5MyAwLTIwNC41ODk4NDMgMC0yMTEuOTMzNTkzIDAtNS4yNzM0MzggMi45NTcwMzItOS44Nzg5MDcgNy4zMDQ2ODgtMTIuMjQ2MDk0IDUuODQzNzUtMy4xNzU3ODItNC4yNDIxODgtMS4wNDY4NzUgMjMwLjQyMTg3NS0xLjY2Nzk2OSA0LjE3NTc4MSAwIDcuNTQ2ODc1LTMuMzgyODEzIDcuNTQ2ODc1LTcuNTQ2ODc1cy0zLjM3MTA5NC03LjU0Njg3NS03LjU0Njg3NS03LjU0Njg3NWMtMjM2LjM1MTU2My4yNzM0MzctMjI0LjU1MDc4MS0uNjQ0NTMxLTIzMC40MjE4NzUuNzc3MzQ0di01Ni4zMDQ2ODhjMC0yNy4xNjQwNjItMjIuMTA1NDY5LTQ5LjI2OTUzMS00OS4yNjk1MzEtNDkuMjY5NTMxLTIyLjc2OTUzMSAwLTQyLjQ0OTIxOSAxNS40MzM1OTQtNDcuODYzMjgxIDM3LjUyNzM0NC0uOTg0Mzc2IDQuMDU0Njg3IDEuNSA4LjE0MDYyNSA1LjU0Mjk2OCA5LjEyNSA0LjA0Njg3NS45ODgyODEgOC4xMjg5MDYtMS40ODgyODIgOS4xMjUtNS41MzEyNSAzLjc0NjA5NC0xNS4zMjQyMTkgMTcuMzk4NDM4LTI2LjAzMTI1IDMzLjE5NTMxMy0yNi4wMzEyNSAxOC44NDM3NSAwIDM0LjE3NTc4MSAxNS4zMzU5MzcgMzQuMTc1NzgxIDM0LjE3OTY4N3Y2NS4zMTY0MDdjLTMuMTEzMjgxIDMuNTExNzE4LTUuMzkwNjI1IDcuNzczNDM3LTYuNTExNzE5IDEyLjQ4MDQ2OC0yLjY3MTg3NS0xMi44MjQyMTgtMTQuMDU4NTkzLTIyLjQ4ODI4MS0yNy42NjQwNjItMjIuNDg4MjgxLTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42Nzk2ODctMjguMjUzOTA3IDI4LjI1NzgxMyAwIDE1LjU3ODEyNCAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIxMDkzOCAyNi44NzEwOTMtMTkuNTMxMjV2NjEuMzk4NDM4Yy0zLjY4MzU5My0xMS4zMjAzMTMtMTQuMzM1OTM3LTE5LjUyNzM0NC0yNi44NzEwOTMtMTkuNTI3MzQ0LTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42NzU3ODEtMjguMjUzOTA3IDI4LjI1MzkwNiAwIDE1LjU4MjAzMSAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIwNzAzMSAyNi44NzEwOTMtMTkuNTMxMjV2NjEuNDAyMzQ0Yy0zLjY4MzU5My0xMS4zMjQyMTgtMTQuMzM1OTM3LTE5LjUzMTI1LTI2Ljg3MTA5My0xOS41MzEyNS0xNS41NzgxMjUgMC0yOC4yNTM5MDcgMTIuNjc1NzgyLTI4LjI1MzkwNyAyOC4yNTM5MDYgMCAxNS41ODIwMzIgMTIuNjc1NzgyIDI4LjI1NzgxMyAyOC4yNTM5MDcgMjguMjU3ODEzIDEyLjUzNTE1NiAwIDIzLjE4NzUtOC4yMDcwMzEgMjYuODcxMDkzLTE5LjUzMTI1djE3LjA4OTg0NGMtMjAuMTA1NDY4IDI1LjUzMTI1LTYxLjAzOTA2MiAxMS4xMjUtNjEuMDM5MDYyLTIxLjA5NzY1N3YtMjI1Ljg0Mzc1YzAtNC4xNzU3ODEtMy4zODI4MTItNy41NDY4NzQtNy41NDY4NzUtNy41NDY4NzQtNC4xNzU3ODEgMC03LjU0Njg3NSAzLjM3MTA5My03LjU0Njg3NSA3LjU0Njg3NHYyMjUuODQzNzVjMCAyNC42MDE1NjMgMTguMTIxMDk0IDQ1LjA1MDc4MiA0MS43MTg3NSA0OC42OTUzMTN2NjIuNTI3MzQ0aC0xOC45NjQ4NDRjLTQuMTY3OTY4IDAtNy41NDY4NzUgMy4zNzg5MDYtNy41NDY4NzUgNy41NDY4NzUgMCA0LjE2Nzk2OCAzLjM3ODkwNyA3LjU0Njg3NSA3LjU0Njg3NSA3LjU0Njg3NWg1My4wMTk1MzJjNC4xNjc5NjggMCA3LjU0Njg3NC0zLjM3ODkwNyA3LjU0Njg3NC03LjU0Njg3NSAwLTQuMTY3OTY5LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc0LTcuNTQ2ODc1aC0xOC45NjQ4NDR2LTYyLjUzMTI1YzcuMDQyOTY4LTEuMDg1OTM4IDEzLjU5NzY1Ni0zLjY2Nzk2OSAxOS4zMjQyMTgtNy40MTAxNTd2OS4xOTkyMTljMCAxNS45ODQzNzUgMTMuMDE5NTMyIDI5LjAwMzkwNyAyOS4wMDc4MTMgMjkuMDAzOTA3aDQ1LjgyMDMxM3YzNS44OTg0MzdjMCA2LjI4OTA2MyA1LjEwOTM3NCAxMS40MTAxNTYgMTEuMzk4NDM3IDExLjQxMDE1NmgyMS4xMjg5MDZjNi4yODkwNjMgMCAxMS4zOTg0MzgtNS4xMjEwOTMgMTEuMzk4NDM4LTExLjQxMDE1NnYtMzUuODk4NDM3aDEyMi4yMjY1NjJ2MzUuODk4NDM3YzAgNi4yODkwNjMgNS4xMDkzNzUgMTEuNDEwMTU2IDExLjM5ODQzOCAxMS40MTAxNTZoMjEuMTI4OTA2YzYuMjg5MDYzIDAgMTEuMzk4NDM3LTUuMTIxMDkzIDExLjM5ODQzNy0xMS40MTAxNTZ2LTM1Ljg5ODQzN2g0NS44MjAzMTNjMTUuOTg4MjgxIDAgMjkuMDA3ODEzLTEzLjAxOTUzMiAyOS4wMDc4MTMtMjkuMDAzOTA3di05LjE5OTIxOWM1LjcyNjU2MiAzLjc0MjE4OCAxMi4yODEyNSA2LjMyNDIxOSAxOS4zMjQyMTggNy40MTAxNTd2NjIuNTMxMjVoLTE4Ljk2NDg0NGMtNC4xNjc5NjggMC03LjU0Njg3NCAzLjM3ODkwNi03LjU0Njg3NCA3LjU0Njg3NSAwIDQuMTY3OTY4IDMuMzc4OTA2IDcuNTQ2ODc1IDcuNTQ2ODc0IDcuNTQ2ODc1aDUzLjAxOTUzMmM0LjE2Nzk2OCAwIDcuNTQ2ODc1LTMuMzc4OTA3IDcuNTQ2ODc1LTcuNTQ2ODc1IDAtNC4xNjc5NjktMy4zNzg5MDctNy41NDY4NzUtNy41NDY4NzUtNy41NDY4NzVoLTE4Ljk2NDg0NHYtNjIuNTI3MzQ0YzIzLjU5NzY1Ni0zLjY0NDUzMSA0MS43MTg3NS0yNC4wOTM3NSA0MS43MTg3NS00OC42OTUzMTN2LTI0NS45ODgyODFjMC0yNy4xNjQwNjItMjIuMDkzNzUtNDkuMjY5NTMxLTQ5LjI2MTcxOS00OS4yNjk1MzF6bS00MTMuNDc2NTYyIDE0NmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY0MDYyIDAtNy4yNTc4MTMgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY0MDYzLTEzLjE2NDA2MyA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjMgMCA3LjI1NzgxMi01LjkwNjI1IDEzLjE2NDA2Mi0xMy4xNjQwNjIgMTMuMTY0MDYyem0wIDc4Ljg1NTQ2OWMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0wIDc4Ljg1MTU2MmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0xMzAuNTM1MTU2IDEwMy4yNTM5MDdoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNjYuMTUyMzQ0IDBoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNTAuOTU3MDMxLTExMS43MDMxMjZjMCAzMi4yMzgyODItNDAuOTQxNDA2IDQ2LjYyMTA5NC02MS4wMzkwNjIgMjEuMDk3NjU3di0xNy4wODU5MzhjMy42ODM1OTMgMTEuMzIwMzEzIDE0LjMzNTkzNyAxOS41MjczNDQgMjYuODcxMDkzIDE5LjUyNzM0NCAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTMgMC0xNS41NzgxMjQtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMi0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTQ1MzFjMy42ODM1OTMgMTEuMzIwMzEyIDE0LjMzNTkzNyAxOS41MjczNDMgMjYuODcxMDkzIDE5LjUyNzM0MyAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTIgMC0xNS41NzgxMjUtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMS0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTg0MzhjMy42ODM1OTMgMTEuMzI0MjE5IDE0LjMzNTkzNyAxOS41MzEyNSAyNi44NzEwOTMgMTkuNTMxMjUgMTUuNTc4MTI1IDAgMjguMjUzOTA3LTEyLjY3NTc4MSAyOC4yNTM5MDctMjguMjU3ODEyIDAtMTUuNTc4MTI2LTEyLjY3NTc4Mi0yOC4yNTM5MDctMjguMjUzOTA3LTI4LjI1MzkwNy0xMy42MDU0NjkgMC0yNC45OTIxODcgOS42NjAxNTctMjcuNjY0MDYyIDIyLjQ4NDM3NS0xLjEyMTA5NC00LjcwNzAzMS0zLjM5ODQzOC04Ljk2ODc1LTYuNTExNzE5LTEyLjQ3NjU2MnYtNjUuMzIwMzEzYzAtMTguODQzNzUgMTUuMzMyMDMxLTM0LjE3OTY4NyAzNC4xNzk2ODgtMzQuMTc5Njg3IDE4Ljg0Mzc1IDAgMzQuMTY3OTY4IDE1LjMzNTkzNyAzNC4xNjc5NjggMzQuMTc5Njg3djI0NS45ODgyODF6bS00Ny4zMzIwMzEtNC43MTg3NWMwLTcuMjU3ODEyIDUuOTA2MjUtMTMuMTY0MDYyIDEzLjE2NDA2Mi0xMy4xNjQwNjIgNy4yNTc4MTMgMCAxMy4xNjQwNjMgNS45MDYyNSAxMy4xNjQwNjMgMTMuMTY0MDYyIDAgNy4yNjE3MTktNS45MDYyNSAxMy4xNjc5NjktMTMuMTY0MDYzIDEzLjE2Nzk2OS03LjI1NzgxMiAwLTEzLjE2NDA2Mi01LjkwNjI1LTEzLjE2NDA2Mi0xMy4xNjc5Njl6bTAtNzguODUxNTYyYzAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYyLTEzLjE2NDA2MiA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwNjI1IDEzLjE2NDA2MyAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjMgMTMuMTY3OTY5LTcuMjU3ODEyIDAtMTMuMTY0MDYyLTUuOTA2MjUtMTMuMTY0MDYyLTEzLjE2Nzk2OXptMC03OC44NTE1NjJjMC03LjI1NzgxMyA1LjkwNjI1LTEzLjE2NDA2MyAxMy4xNjQwNjItMTMuMTY0MDYzIDcuMjU3ODEzIDAgMTMuMTY0MDYzIDUuOTA2MjUgMTMuMTY0MDYzIDEzLjE2NDA2MyAwIDcuMjU3ODEyLTUuOTA2MjUgMTMuMTY0MDYyLTEzLjE2NDA2MyAxMy4xNjQwNjItNy4yNTc4MTIgMC0xMy4xNjQwNjItNS45MDYyNS0xMy4xNjQwNjItMTMuMTY0MDYyem0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxIDI2LjIyNjU2MmMtMTUuNTgyMDMxIDAtMjguMjU3ODEyIDEyLjY3NTc4Mi0yOC4yNTc4MTIgMjguMjU3ODEzIDAgMTUuNTc4MTI1IDEyLjY3NTc4MSAyOC4yNTM5MDYgMjguMjU3ODEyIDI4LjI1MzkwNiAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTM5MDYgMC0xNS41ODIwMzEtMTIuNjc1NzgyLTI4LjI1NzgxMy0yOC4yNTM5MDctMjguMjU3ODEzem0wIDQxLjQyMTg3NmMtNy4yNjE3MTkgMC0xMy4xNjc5NjktNS45MDYyNS0xMy4xNjc5NjktMTMuMTY0MDYzIDAtNy4yNjE3MTkgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY3OTY5LTEzLjE2NDA2MyA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwMjM0NCAxMy4xNjQwNjMgMTMuMTY0MDYzIDAgNy4yNTc4MTMtNS45MDYyNSAxMy4xNjQwNjMtMTMuMTY0MDYzIDEzLjE2NDA2M3ptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Kitchen:mxe,"Laundry Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgMmgtNThjLS41NTIgMC0xIC40NDgtMSAxdjU4YzAgLjU1Mi40NDggMSAxIDFoNThjLjU1MiAwIDEtLjQ0OCAxLTF2LTU4YzAtLjU1Mi0uNDQ4LTEtMS0xem0tMSA2aC00di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC02Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyaC0zYy0uNTUyIDAtMSAuNDQ4LTEgMXY5aC0ydi0xNGgxOHptLTEyLjE0MiAzMS0xLjY5Mi0xMWg5LjY2OWwtMS42OTIgMTF6bTEuMTQyLTEzYzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTguNzU5LjM0OWMtLjE5LS4yMjItLjQ2Ny0uMzQ5LS43NTktLjM0OWgtMmMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNGgtMmMtLjI5MiAwLS41NjkuMTI3LS43NTkuMzQ5cy0uMjc0LjUxNS0uMjI5LjgwM2wxLjgyMyAxMS44NDhoLTMuODM1di0xOWgxOHYxOWgtMy44MzVsMS44MjMtMTEuODQ4Yy4wNDUtLjI4OC0uMDM5LS41ODItLjIyOS0uODAzem0tNy43NTktMTcuMzQ5di0yaDR2MTFoLTR6bS0yIDloLTJ2LThoMnptOCAwdi04aDR2OHptLTE2LTE0djE0aC0ydi0xMGMwLS41NTItLjQ0OC0xLTEtMWgtNmMtLjU1MiAwLTEgLjQ0OC0xIDF2MTBoLTJ2LTdjMC0uMjY1LS4xMDUtLjUyLS4yOTMtLjcwN2wtMS43MDctMS43MDd2LTIuNTg2YzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyLjU4NmwtMS43MDcgMS43MDdjLS4xODguMTg3LS4yOTMuNDQyLS4yOTMuNzA3djdoLTJ2LTEwYzAtLjU1Mi0uNDQ4LTEtMS0xaC04Yy0uNTUyIDAtMSAuNDQ4LTEgMXYxMGgtMnYtMTR6bS00IDE0aC00di05aDR6bS0xMS43MDctOC4yOTMgMS43MDcgMS43MDd2Ni41ODZoLTZ2LTYuNTg2bDEuNzA3LTEuNzA3Yy4xODgtLjE4Ny4yOTMtLjQ0Mi4yOTMtLjcwN3YtMmgydjJjMCAuMjY1LjEwNS41Mi4yOTMuNzA3em0tMTAuMjkzIDguMjkzaC02di05aDZ6bS0xMCAyaDM2djQwaC0zNnptNDUgMjhoLTJ2LTFoMnptLTMgMmg0LjY0OWw0LjM1MSAzLjQ4djYuNTJoLTl6bTExIDEwdi03YzAtLjMwNC0uMTM4LS41OTEtLjM3NS0uNzgxbC01LTRjLS4xNzgtLjE0Mi0uMzk4LS4yMTktLjYyNS0uMjE5di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyYy0uNTUyIDAtMSAuNDQ4LTEgMXYxMWgtMnYtMTloMTh2MTl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDIyaC0zMGMtLjU1MiAwLTEgLjQ0OC0xIDF2MzRjMCAuNTUyLjQ0OCAxIDEgMWgzMGMuNTUyIDAgMS0uNDQ4IDEtMXYtMzRjMC0uNTUyLS40NDgtMS0xLTF6bS0xIDJ2NWgtMjh2LTV6bS0yOCAzMnYtMjVoMjh2MjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDMzYy02LjA2NSAwLTExIDQuOTM1LTExIDExczQuOTM1IDExIDExIDExIDExLTQuOTM1IDExLTExLTQuOTM1LTExLTExLTExem0wIDIwYy00Ljk2MiAwLTktNC4wMzgtOS05czQuMDM4LTkgOS05IDkgNC4wMzggOSA5LTQuMDM4IDktOSA5eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNi4xOTkgNDguMjg2IDEuMzk5IDEuNDI5Yy42NzctLjY2MyAxLjIyNi0xLjQzMiAxLjYzMS0yLjI4NmwtMS44MDctLjg1N2MtLjMwMy42MzktLjcxNCAxLjIxNi0xLjIyMyAxLjcxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjIgMzZ2MmMzLjMwOSAwIDYgMi42OTEgNiA2aDJjMC00LjQxMS0zLjU4OS04LTgtOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAgMjVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNCAyNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+","Living Area":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTQuNSAyNzcuNjY3aC01LjV2LTM2LjVjMC0xNS4xNjQtMTIuMzM2LTI3LjUtMjcuNS0yNy41aC0xMTBjLTcuODc1IDAtMTQuOTgyIDMuMzMyLTIwIDguNjU1LTUuMDE4LTUuMzIyLTEyLjEyNS04LjY1NS0yMC04LjY1NWgtMTEwYy03Ljg3NSAwLTE0Ljk4MiAzLjMzMi0yMCA4LjY1NS01LjAxOC01LjMyMi0xMi4xMjUtOC42NTUtMjAtOC42NTVoLTQwLjVjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoNDAuNWM2Ljg5MyAwIDEyLjUgNS42MDcgMTIuNSAxMi41djc3LjAxOGMtMy43NTMtMS45MjQtOC0zLjAxOC0xMi41LTMuMDE4aC0xMDEuNXYtMjBjMC05LjY0OS03Ljg1MS0xNy41LTE3LjUtMTcuNWgtMy41di0zNi41YzAtNi44OTMgNS42MDctMTIuNSAxMi41LTEyLjVoMzQuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMzQuNWMtMTUuMTY0IDAtMjcuNSAxMi4zMzYtMjcuNSAyNy41djM2LjVoLTYuNWMtOS42NDkgMC0xNy41IDcuODUxLTE3LjUgMTcuNXY0Mi41YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQyLjVjMC0xLjM3OCAxLjEyMi0yLjUgMi41LTIuNWgyNWMxLjM3OCAwIDIuNSAxLjEyMiAyLjUgMi41djE0MC41aC0yNy41Yy0xLjM3OCAwLTIuNS0xLjEyMi0yLjUtMi41di02MC41YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djYwLjVjMCA5LjY0OSA3Ljg1MSAxNy41IDE3LjUgMTcuNWgyNy41djE0LjY2N2MwIDYuODkzIDUuNjA3IDEyLjUgMTIuNSAxMi41aDI1YzYuODkzIDAgMTIuNS01LjYwNyAxMi41LTEyLjV2LTE0LjY2N2gzMjJ2MTQuNjY3YzAgNi44OTMgNS42MDcgMTIuNSAxMi41IDEyLjVoMjVjNi44OTMgMCAxMi41LTUuNjA3IDEyLjUtMTIuNXYtMTQuNjY3aDI3LjVjOS42NDkgMCAxNy41LTcuODUxIDE3LjUtMTcuNXYtMTM4YzAtOS42NS03Ljg1MS0xNy41LTE3LjUtMTcuNXptLTE0My00OWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXYzNi41aC00LjVjLTkuNjQ5IDAtMTcuNSA3Ljg1MS0xNy41IDE3LjV2MjBoLTEwMC41Yy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTI5MS41IDIwN3YtMTVoMzI2YzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC0zMjZ2LTE1LjVoMTAxLjVjNy44NzUgMCAxNC45ODItMy4zMzIgMjAtOC42NTUgNS4wMTggNS4zMjIgMTIuMTI1IDguNjU1IDIwIDguNjU1aDExMGM3Ljg3NSAwIDE0Ljk4Mi0zLjMzMiAyMC04LjY1NSA1LjAxOCA1LjMyMiAxMi4xMjUgOC42NTUgMjAgOC42NTVoMTAwLjV2MTUuNWgtMzFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoMzF2MTV6bTM5Mi02MC41aC0xMDAuNWMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMDAuNXptLTEyOC0xMi41YzAgNi44OTMtNS42MDcgMTIuNS0xMi41IDEyLjVoLTExMGMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXptLTEyMi41LTEzNGgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXY3Ny4wMThjLTMuNzUzLTEuOTI0LTgtMy4wMTgtMTIuNS0zLjAxOGgtMTEwYy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTQwIDEwMS41YzYuODkzIDAgMTIuNSA1LjYwNyAxMi41IDEyLjV2MjBjMCA2Ljg5My01LjYwNyAxMi41LTEyLjUgMTIuNWgtMTAxLjV2LTQ1em0tODEuNSAxMzIuNjY2aC0yMHYtMTIuMTY3aDIwem0zNTIgMHYtMTIuMTY3aDIwdjEyLjE2N3ptNjUtMjkuNjY2YzAgMS4zNzgtMS4xMjIgMi41LTIuNSAyLjVoLTI3LjV2LTE0MC41YzAtMS4zNzggMS4xMjItMi41IDIuNS0yLjVoMjVjMS4zNzggMCAyLjUgMS4xMjIgMi41IDIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuNDkgMTMwLjE2N2gxMTIuMDJjNi44ODcgMCAxMi40OS01LjYwMyAxMi40OS0xMi40OXYtMTYuNTQ5YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djE0LjAzOWgtMTA3di02NmgxMDd2MTYuOTYxYzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTE5LjQ3MmMwLTYuODg3LTUuNjAzLTEyLjQ5LTEyLjQ5LTEyLjQ5aC0xMTIuMDJjLTYuODg3IDAtMTIuNDkgNS42MDMtMTIuNDkgMTIuNDl2NzEuMDIxYzAgNi44ODYgNS42MDMgMTIuNDkgMTIuNDkgMTIuNDl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzMS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4MS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMC4yMzIgMjQ3LjIxNWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjhjNy4zNDkgNC44MjggMTMuNTIyIDExLjAwMiAxOC4zNTEgMTguMzUxIDEuMzg3IDIuMTEgMy43NDMgMy4zODEgNi4yNjggMy4zODFzNC44ODEtMS4yNzEgNi4yNjgtMy4zODFjNC44MjgtNy4zNDkgMTEuMDAyLTEzLjUyMiAxOC4zNTEtMTguMzUxIDIuMTEtMS4zODcgMy4zODEtMy43NDMgMy4zODEtNi4yNjhzLTEuMjcxLTQuODgxLTMuMzgxLTYuMjY4Yy03LjM0OS00LjgyOC0xMy41MjItMTEuMDAyLTE4LjM1MS0xOC4zNTEtMS4zODctMi4xMS0zLjc0My0zLjM4MS02LjI2OC0zLjM4MXMtNC44ODEgMS4yNy02LjI2OCAzLjM4MXptMTQuMzQ0IDI0LjYxOGMtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTQgNS41ODMtNS4xODkgOC4wNzYtOC4wNzYgMi40OTQgMi44ODggNS4xODkgNS41ODMgOC4wNzYgOC4wNzZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Living Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzMsMzMxLjkxNlYyNzMuNjQ4QTM5LjcxLDM5LjcxLDAsMCwwLDQzMy4zMjgsMjM0SDM3NlYxNzBoNDQuMDA5YTYuMjg5LDYuMjg5LDAsMCwwLDUuNzQ3LTguMDJMNDA0LjgzMSw5Mi4yNDhBNS45NzYsNS45NzYsMCwwLDAsMzk5LjA4NCw4OEgzNDAuOTE2YTUuOTMyLDUuOTMyLDAsMCwwLTUuNzQ3LDQuMkwzMTQuMjQ0LDE2MS45MmE2LjM3Miw2LjM3MiwwLDAsMCwuOTM0LDUuNDgzLDYuMTc2LDYuMTc2LDAsMCwwLDQuODEzLDIuNkgzNjR2NjRIODguNjc1QTM5LjcxMywzOS43MTMsMCwwLDAsNDksMjczLjY0OHY1OC4yNjhhMzkuNDE3LDM5LjQxNywwLDAsMC0zNywzOS41NTZWNDYzLjFhNS45MTUsNS45MTUsMCwwLDAsNiw1LjlIMzV2MzBhNi4yNDYsNi4yNDYsMCwwLDAsNi4yOCw2aDY3Ljg2N0E1Ljg3Nyw1Ljg3NywwLDAsMCwxMTUsNDk5VjQ2OUg0MDd2MzBhNS44NzksNS44NzksMCwwLDAsNS44NTUsNmg2Ny44NjlBNi4yNDMsNi4yNDMsMCwwLDAsNDg3LDQ5OVY0NjloMTdhNS45MTMsNS45MTMsMCwwLDAsNi01LjlWMzcxLjQ3MkEzOS40MTcsMzkuNDE3LDAsMCwwLDQ3MywzMzEuOTE2Wk0zNDUuMzgxLDEwMGg0OS4yMzhsMTcuMzI2LDU4aC04My44OVpNODguNjc1LDI0Nkg0MzMuMzI4QTI3LjcsMjcuNywwLDAsMSw0NjEsMjczLjY0OHY1OS4zYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAsMzguNTI2VjM5MEg5MVYzNzEuNDcyYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAtMzguNTI2di01OS4zQTI3LjcsMjcuNywwLDAsMSw4OC42NzUsMjQ2Wk0xMDMsNDkzSDQ3VjQ2OWg1NlptMzcyLDBINDE5VjQ2OWg1NlptMjMtMzZIMjRWMzcxLjQ3MmEyNy41LDI3LjUsMCwxLDEsNTUsMFYzOTUuOGE2LjQ0OCw2LjQ0OCwwLDAsMCw2LjMxLDYuMkg0MzYuNjkzQTYuNDQ1LDYuNDQ1LDAsMCwwLDQ0MywzOTUuOFYzNzEuNDcyYTI3LjUsMjcuNSwwLDEsMSw1NSwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTQsMjAzLjIzOFY1Ni42MjZBNS42NCw1LjY0LDAsMCwwLDIwOC4wNjIsNTFoLTUzLjkyTDExMi4yNzIsOC45NDRhNS43MzcsNS43MzcsMCwwLDAtOC40ODQuMDQ3TDYxLjkxOSw1MUg4YTUuNjkzLDUuNjkzLDAsMCwwLTYsNS42MjZWMjAzLjIzOEE1LjgsNS44LDAsMCwwLDgsMjA5SDIwOC4wNjJBNS43NDksNS43NDksMCwwLDAsMjE0LDIwMy4yMzhaTTE3NCwxMzEuOGwtNDIuMjMsMTkuNjg2TDgwLjM2NSwxMTYuNDQzYTYuMjQ1LDYuMjQ1LDAsMCwwLTcuMTMxLjE2M0w0MSwxNDAuNjg2Vjg3SDE3NFpNNDEsMTU1LjY4OWwzNi4wNjItMjYuOTExLDUwLjg4NSwzNC41NDJhNi4xNyw2LjE3LDAsMCwwLDMuNDI3LDEuMDM5LDUuMTY5LDUuMTY5LDAsMCwwLDIuMzMyLS41NTdMMTc0LDE0NS4wMjVWMTczSDQxWk0xNzguMTU1LDc1SDM3LjY4OUwyMy4yNDMsNjNIMTkyLjVaTTI5LDg0LjA5MVYxNzYuMkwxNCwxODkuOTI4VjcwLjQ3M1pNMzcuNywxODVIMTc4LjE0bDEzLjc2NywxMkgyMy44MzVaTTE4NiwxNzYuMjFWODQuMDc4bDE2LTEzLjlWMTkwLjIyNlpNMTA4LjAzLDIxLjg1OSwxMzcuMTcyLDUxSDc4Ljg4OVoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4LjM3NCwxMzMuMmEyMC4yMTQsMjAuMjE0LDAsMSwwLTIwLjIxNC0yMC4yMTRBMjAuMjM2LDIwLjIzNiwwLDAsMCwxMjguMzc0LDEzMy4yWm0wLTI4LjQyN2E4LjIxNCw4LjIxNCwwLDEsMS04LjIxNCw4LjIxM0E4LjIyMyw4LjIyMywwLDAsMSwxMjguMzc0LDEwNC43NjhaIi8+CiAgICAgICAgPHBhdGggZD0iTTM0OC43ODcsMzA4LjQ0YTIyLjA4NywyMi4wODcsMCwwLDAsMCwyMS42NjJsLTguNDc5LDguNDc5YTYsNiwwLDEsMCw4LjQ4NCw4LjQ4NWw4LjQ3OS04LjQ4YTIyLjA5LDIyLjA5LDAsMCwwLDIxLjY2MiwwbDguNDc4LDguNDc5YTYsNiwwLDAsMCw4LjQ4Ni04LjQ4NWwtOC40ODctOC40ODhhMjIuMjExLDIyLjIxMSwwLDAsMCwwLTIxLjY0NGw4LjQ4Ny04LjQ4OGE2LDYsMCwwLDAtOC40ODYtOC40ODVsLTguNDc4LDguNDc5YTIyLjA5MiwyMi4wOTIsMCwwLDAtMjEuNjYxLDBsLTguNDgtOC40NzlhNiw2LDAsMSwwLTguNDg0LDguNDg1Wm0xOS4zMTYuNjc4YTEwLjE1NiwxMC4xNTYsMCwxLDEtNy4xNzksMi45NzRBMTAuMDgzLDEwLjA4MywwLDAsMSwzNjguMSwzMDkuMTE4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMzguNzg3LDMwOC40NGEyMi4wODcsMjIuMDg3LDAsMCwwLDAsMjEuNjYybC04LjQ3OSw4LjQ3OWE2LDYsMCwxLDAsOC40ODQsOC40ODVsOC40NzktOC40OGEyMi4wOSwyMi4wOSwwLDAsMCwyMS42NjIsMGw4LjQ3OCw4LjQ3OWE2LDYsMCwwLDAsOC40ODYtOC40ODVsLTguNDg3LTguNDg4YTIyLjIxMSwyMi4yMTEsMCwwLDAsMC0yMS42NDRsOC40ODctOC40ODhhNiw2LDAsMCwwLTguNDg2LTguNDg1bC04LjQ3OCw4LjQ3OWEyMi4wOTIsMjIuMDkyLDAsMCwwLTIxLjY2MSwwbC04LjQ4LTguNDc5YTYsNiwwLDEsMC04LjQ4NCw4LjQ4NVptMTkuMzE2LjY3OGExMC4xNTYsMTAuMTU2LDAsMSwxLTcuMTc5LDIuOTc0QTEwLjA4MywxMC4wODMsMCwwLDEsMjU4LjEsMzA5LjExOFoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4Ljc4NywzMDguNDRhMjIuMDg3LDIyLjA4NywwLDAsMCwwLDIxLjY2MmwtOC40NzksOC40NzlhNiw2LDAsMSwwLDguNDg0LDguNDg1bDguNDc5LTguNDhhMjIuMDksMjIuMDksMCwwLDAsMjEuNjYyLDBsOC40NzgsOC40NzlhNiw2LDAsMCwwLDguNDg2LTguNDg1bC04LjQ4Ny04LjQ4OGEyMi4yMTEsMjIuMjExLDAsMCwwLDAtMjEuNjQ0bDguNDg3LTguNDg4YTYsNiwwLDAsMC04LjQ4Ni04LjQ4NWwtOC40NzgsOC40NzlhMjIuMDkyLDIyLjA5MiwwLDAsMC0yMS42NjEsMGwtOC40OC04LjQ3OWE2LDYsMCwxLDAtOC40ODQsOC40ODVabTE5LjMxNi42NzhhMTAuMTU2LDEwLjE1NiwwLDEsMS03LjE3OSwyLjk3NEExMC4wODMsMTAuMDgzLDAsMCwxLDE0OC4xLDMwOS4xMThaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=","Locker Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDYwIDYwIiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMjMgNGgtMTVjLTIuMjA5MTM5IDAtNCAxLjc5MDg2MS00IDR2MzRjMCAyLjIwOTEzOSAxLjc5MDg2MSA0IDQgNGg2Yy41NTIyODQ3IDAgMS0uNDQ3NzE1MyAxLTFzLS40NDc3MTUzLTEtMS0xaC02Yy0xLjEwNDU2OTUgMC0yLS44OTU0MzA1LTItMnYtMzRjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYxMi4wNWMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyLjA1YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDEyaDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDE2aDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxIDE5YzAtLjU1MjI4NDctLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDFoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im05IDM1Yy0uNTUyMjg0NzUgMC0xIC40NDc3MTUzLTEgMXY1YzAgLjU1MjI4NDcuNDQ3NzE1MjUgMSAxIDFoM2MuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtMnYtNGMwLS41NTIyODQ3LS40NDc3MTUyNS0xLTEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMGgtMTVjLTIuOTEyMjE0Mi4wMDE4MDY5MS01LjU5MzQwMDggMS41ODYwMDUxOC03IDQuMTM2LTEuNDA2NTk5Mi0yLjU0OTk5NDgyLTQuMDg3Nzg1OC00LjEzNDE5MzA5LTctNC4xMzZoLTE1Yy00LjQxNjIyMTkyLjAwNDk1OTg4LTcuOTk1MDQwMTIgMy41ODM3NzgwOC04IDh2MzRjLjAwNDk1OTg4IDQuNDE2MjIxOSAzLjU4Mzc3ODA4IDcuOTk1MDQwMSA4IDhoNmMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtNmMtMy4zMTIzMzc1Ny0uMDAzMzA3NC01Ljk5NjY5MjYyLTIuNjg3NjYyNC02LTZ2LTM0Yy4wMDMzMDczOC0zLjMxMjMzNzU3IDIuNjg3NjYyNDMtNS45OTY2OTI2MiA2LTZoMTVjMy4zMTIzMzc2LjAwMzMwNzM4IDUuOTk2NjkyNiAyLjY4NzY2MjQzIDYgNnYxMmMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyYy4wMDMzMDc0LTMuMzEyMzM3NTcgMi42ODc2NjI0LTUuOTk2NjkyNjIgNi02aDE1YzMuMzEyMzM3Ni4wMDMzMDczOCA1Ljk5NjY5MjYgMi42ODc2NjI0MyA2IDZ2MzRjLS4wMDMzMDc0IDMuMzEyMzM3Ni0yLjY4NzY2MjQgNS45OTY2OTI2LTYgNmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMWg2YzQuNDE2MjIxOS0uMDA0OTU5OSA3Ljk5NTA0MDEtMy41ODM3NzgxIDgtOHYtMzRjLS4wMDQ5NTk5LTQuNDE2MjIxOTItMy41ODM3NzgxLTcuOTk1MDQwMTItOC04eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NiA0Nmg2YzIuMjA5MTM5IDAgNC0xLjc5MDg2MSA0LTR2LTM0YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTRoLTE1Yy0yLjIwOTEzOSAwLTQgMS43OTA4NjEtNCA0djEyLjA1YzAgLjU1MjI4NDcuNDQ3NzE1MyAxIDEgMXMxLS40NDc3MTUzIDEtMXYtMTIuMDVjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYzNGMwIDEuMTA0NTY5NS0uODk1NDMwNSAyLTIgMmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTJoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTZoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMjBoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDkgMjd2M2MwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTNjMC0uNTUyMjg0Ny0uNDQ3NzE1My0xLTEtMXMtMSAuNDQ3NzE1My0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3IDIzYy0zLjg2NDE2NTcuMDA0NDA4Ni02Ljk5NTU5MTQgMy4xMzU4MzQzLTcgN3Y2Yy0xLjY1Njg1NDIgMC0zIDEuMzQzMTQ1OC0zIDN2MThjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzaDIwYzEuNjU2ODU0MiAwIDMtMS4zNDMxNDU4IDMtM3YtMThjMC0xLjY1Njg1NDItMS4zNDMxNDU4LTMtMy0zdi02Yy0uMDA0NDA4Ni0zLjg2NDE2NTctMy4xMzU4MzQzLTYuOTk1NTkxNC03LTd6bTE0IDE2djE4YzAgLjU1MjI4NDctLjQ0NzcxNTMgMS0xIDFoLTIwYy0uNTUyMjg0NyAwLTEtLjQ0NzcxNTMtMS0xdi0xOGMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoMjBjLjU1MjI4NDcgMCAxIC40NDc3MTUzIDEgMXptLTctM2gtOHYtNmMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoNmMuNTUyMjg0NyAwIDEgLjQ0NzcxNTMgMSAxem00LTZ2NmgtMnYtNmMwLTEuNjU2ODU0Mi0xLjM0MzE0NTgtMy0zLTNoLTZjLTEuNjU2ODU0MiAwLTMgMS4zNDMxNDU4LTMgM3Y2aC0ydi02Yy4wMDMzMDYxLTIuNzYwMDUzMiAyLjIzOTk0NjgtNC45OTY2OTM5IDUtNWg2YzIuNzYwMDUzMi4wMDMzMDYxIDQuOTk2NjkzOSAyLjIzOTk0NjggNSA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMS4yMTMgNDEuMTQ0Yy0xLjUwNDE3Mi0uMzY5MzcyNy0zLjA5NDY0MjYtLjAyNTYwNjgtNC4zMTIuOTMyLTEuMjE3ODgzNC45NjE4MTM0LTEuOTIwMTI3NSAyLjQzNDYwODktMS45MDA3NDAzIDMuOTg2MzY1Ny4wMTkzODcxIDEuNTUxNzU2OC43NTgyMDc2IDMuMDA2NTQ4MSAxLjk5OTc0MDMgMy45Mzc2MzQzdjNjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzczMtMS4zNDMxNDU4IDMtM3YtM2MxLjU0NDUxMDctMS4xNTY5NTQ0IDIuMjg1MzQ5Mi0zLjA5OTQ1NTcgMS45MDM1MTkxLTQuOTkxMDg1Mi0uMzgxODMwMS0xLjg5MTYyOTYtMS44MTgxNTg3LTMuMzk0NjY0My0zLjY5MDUxOTEtMy44NjE5MTQ4em0uNTg3IDcuMjU2Yy0uNDk3MTQ3OS4zNTc2MDY2LS43OTQyNDAxLjkzMDYyMzItLjggMS41NDN2My4wNTdjMCAuNTUyMjg0Ny0uNDQ3NzE1MyAxLTEgMXMtMS0uNDQ3NzE1My0xLTF2LTMuMDgxYy0uMDA1NzA4Mi0uNjAyMDUyMi0uMjk5NDI1OS0xLjE2NDk0OTItLjc5LTEuNTE0LTEuMDM1MDU1My0uNzcxNzg3Mi0xLjQ2MDIxNjQtMi4xMTkyNTA3LTEuMDU1NTM2NC0zLjM0NTMxMzFzMS41NDg0MjEtMi4wNTU2ODY3IDIuODM5NTM2NC0yLjA1OTY4NjljLjI1NTAzMDkuMDAwNTA4NS41MDkxMTQ0LjAzMTA1MjIuNzU3LjA5MSAxLjA1NTg2OC4yNjMyNDYxIDEuODgyOTA3IDEuMDgzMzc3MiAyLjE1NSAyLjEzNy4zMTMzNzQ2IDEuMTgzOTY5NS0uMTI0NDE2NSAyLjQzOTU1MTItMS4xMDYgMy4xNzJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nursery:Oxe,Office:Exe,Outdoors:fxe,Playroom:xxe,Pool:_xe,"Rear Wall":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTAzLjQ2Nyw4LjUzM0gzODRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM3YxMTkuNDY3VjI1NnY1MS4yaC02OS43MzVjMC45NDgtMi42NzEsMS40NjgtNS41NDIsMS40NjgtOC41MzMKCQkJCWMwLTE0LjExNC0xMS40ODYtMjUuNi0yNS42LTI1LjZoLTE3LjA2N1YyNTZoODUuMzMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxMTAuOTMzYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzMKCQkJCUgxNjIuMTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDg1LjMzM3YxNy4wNjdIMjMwLjQKCQkJCWMtMTQuMTE0LDAtMjUuNiwxMS40ODYtMjUuNiwyNS42YzAsMi45OTEsMC41MjEsNS44NjIsMS40NjgsOC41MzNoLTY5LjczNVYyNTZWMTM2LjUzM1YxNy4wNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzMwoJCQkJSDguNTMzQzMuODIzLDguNTMzLDAsMTIuMzQ4LDAsMTcuMDY3djExOS40NjdWMjU2djExOS40Njd2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDEyOGgyNTZoMTE5LjQ2NwoJCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YzNzUuNDY3VjI1NlYxMzYuNTMzVjE3LjA2N0M1MTIsMTIuMzQ4LDUwOC4xNzcsOC41MzMsNTAzLjQ2Nyw4LjUzM3ogTTE3MC42NjcsMTUzLjZoMTcwLjY2NwoJCQkJdjUxLjJIMTcwLjY2N1YxNTMuNnogTTM0MS4zMzMsMTE5LjQ2N3YxNy4wNjdIMTcwLjY2N3YtMTcuMDY3SDM0MS4zMzN6IE0xNzAuNjY3LDIyMS44NjdoMTcwLjY2N3YxNy4wNjdIMTcwLjY2N1YyMjEuODY3egoJCQkJIE0zNzUuNDY3LDQ4Ni40SDI2NC41MzN2LTkzLjg2N2g1MS4yaDU5LjczM1Y0ODYuNHogTTMwNy4yLDM3NS40NjdIMjA0LjhWMzU4LjRoMTAyLjRWMzc1LjQ2N3ogTTQ5NC45MzMsMjQ3LjQ2N2gtMTcuMDY3VjE3OS4yCgkJCQljMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtMjUuNmgtMjUuNmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjY4LjI2N2gtMTcuMDY3di0xMDIuNGgxMDIuNFYyNDcuNDY3egoJCQkJIE00MjYuNjY3LDI0Ny40Njd2LTU5LjczM2g4LjUzM3Y1OS43MzNINDI2LjY2N3ogTTQ1Mi4yNjcsMTg3LjczM2g4LjUzM3Y1OS43MzNoLTguNTMzVjE4Ny43MzN6IE0zOTIuNTMzLDMxNS43MzN2LTUxLjJoMjUuNgoJCQkJaDI1LjZoMjUuNmgyNS42djEwMi40aC0xMDIuNFYzMTUuNzMzeiBNMzkyLjUzMywyNS42aDEwMi40VjEyOGgtMTAyLjRWMjUuNnogTTIyMS44NjcsMjk4LjY2N2MwLTQuNzEsMy44MzEtOC41MzMsOC41MzMtOC41MzMKCQkJCWg1MS4yYzQuNzAyLDAsOC41MzMsMy44MjMsOC41MzMsOC41MzNzLTMuODMxLDguNTMzLTguNTMzLDguNTMzaC01MS4yQzIyNS42OTgsMzA3LjIsMjIxLjg2NywzMDMuMzc3LDIyMS44NjcsMjk4LjY2N3oKCQkJCSBNMjMwLjQsMzI0LjI2N2g1MS4yaDkzLjg2N3Y1MS4yaC01MS4yVjM1OC40YzAtOS40MTItNy42NTQtMTcuMDY3LTE3LjA2Ny0xNy4wNjdIMjA0LjhjLTkuNDEyLDAtMTcuMDY3LDcuNjU0LTE3LjA2NywxNy4wNjcKCQkJCXYxNy4wNjdoLTUxLjJ2LTUxLjJIMjMwLjR6IE01MS4yLDMzMi44aDM0LjEzM3Y4LjUzM0g1MS4yVjMzMi44eiBNODUuMzMzLDMxNS43MzNINTEuMlYzMDcuMmgzNC4xMzNWMzE1LjczM3ogTTUxLjIsMzU4LjQKCQkJCWgzNC4xMzN2OC41MzNINTEuMlYzNTguNHogTTEwMi40LDM0OS44Njd2LTI1LjZ2LTI1LjZjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzCgkJCQl2MjUuNnYyNS42djE3LjA2N0gxNy4wNjd2LTEwMi40aDEwMi40djUxLjJ2NTEuMkgxMDIuNFYzNDkuODY3eiBNNTkuNzMzLDExMC45MzNINzYuOFYxMjhINTkuNzMzVjExMC45MzN6IE01MS4yLDE0NS4wNjdoMzQuMTMzCgkJCQloMzQuMTMzdjEwMi40aC0xMDIuNHYtMTAyLjRINTEuMnogTTE3LjA2NywyNS42aDEwMi40VjEyOGgtMjUuNnYtMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzNoLTguNTMzSDUxLjJoLTguNTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1YxMjgKCQkJCWgtMjUuNlYyNS42eiBNMTcuMDY3LDM4NGgyNS42aDUxLjJoMjUuNnYxMDIuNGgtMTAyLjRWMzg0eiBNMTM2LjUzMywzOTIuNTMzaDU5LjczM2g1MS4yVjQ4Ni40SDEzNi41MzNWMzkyLjUzM3ogTTQ5NC45MzMsNDg2LjQKCQkJCWgtMTcuMDY3di02OC4yNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDg2LjRoLTguNTMzdi02OC4yNjcKCQkJCWMwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjgxNC04LjUzMyw4LjUzM1Y0ODYuNGgtOC41MzN2LTY4LjI2N2MwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzCgkJCQlzLTguNTMzLDMuODE0LTguNTMzLDguNTMzVjQ4Ni40aC0xNy4wNjdWMzg0aDEwMi40VjQ4Ni40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjEuODY3LDQwOS42SDIwNC44Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNoOC41MzN2OC41MzMKCQkJCWMwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM3YtMTcuMDY3QzIzMC40LDQxMy40MTQsMjI2LjU3Nyw0MDkuNiwyMjEuODY3LDQwOS42eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDcuMiw0MDkuNmgtMTcuMDY3Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDM1LjJjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJdi04LjUzM2g4LjUzM2M0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNTMzExLjkxLDQwOS42LDMwNy4yLDQwOS42eiIvPgogICAgPC9nPgo8L3N2Zz4K","Second Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5OS42NjgsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTVjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzMwNi45NTUsMjM0LjgzNSwzMDMuNjkzLDIzMS41NzIsMjk5LjY2OCwyMzEuNTcyeiBNMjgxLjc1OCwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQxMi41NzIsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM3OS0xMC4zOGgtNTkuMzU2Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxOS44NTksMjM0LjgzNSw0MTYuNTk3LDIzMS41NzIsNDEyLjU3MiwyMzEuNTcyeiBNMzk0LjY2MSwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgZD0iTTE4Mi44MTMsNDEzLjgzM2gtMC41Mjh2LTYwLjA0NWMwLTUuNTY2LTQuNTI5LTEwLjA5NS0xMC4wOTUtMTAuMDk1aC01My44ODZjLTUuNTY2LDAtMTAuMDk1LDQuNTI5LTEwLjA5NSwxMC4wOTV2NjAuMDQ1CgkJCWgtMC41MjhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNSwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g3LjgxNGg1OS41MDRoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkwLjEsNDE3LjA5NSwxODYuODM4LDQxMy44MzMsMTgyLjgxMyw0MTMuODMzeiBNMTY3LjcxMiw0MTMuODMzaC00NC45MzF2LTU1LjU2N2g0NC45MzFWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNNDA0LjMxNCw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTYsNC41MjktMTAuMDk2LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0SDM5Ni41aDcuODE0YzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxMS42MDEsNDE3LjA5NSw0MDguMzM5LDQxMy44MzMsNDA0LjMxNCw0MTMuODMzeiBNMzg5LjIxMyw0MTMuODMzaC00NC45MzJ2LTU1LjU2N2g0NC45MzJWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNMjc2LjU0NSw0MDUuMDg5Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3djEyLjYzYzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODcKCQkJYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODd2LTEyLjYzQzI4My44MzIsNDA4LjM1MiwyODAuNTcsNDA1LjA4OSwyNzYuNTQ1LDQwNS4wODl6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Shed:Sxe,"Sleeping Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDU2LDIyNGMtMTQuMTMzLDAtMjQsNi4zMDEtMjQsMTUuMzJ2MjcuNTA1QzQxOS4zMzMsMjQxLjc5MywzOTkuODUsMjI0LDM3NiwyMjRIMTUyYy00LjQxNy0wLjAwMS03Ljk5OSwzLjU3OS04LDcuOTk2CgkJCWMwLDAuMDAxLDAsMC4wMDMsMCwwLjAwNHY0OC4wNjdjMC4wNDUtMTMuMDUyLTUuMjAxLTI2LjA3NS0xNS41ODYtMzUuNTgzYy0xOS41NTItMTcuOTAyLTQ5LjkxNS0xNi41NjQtNjcuODE2LDIuOTg5CgkJCWMtMTYuNzY0LDE4LjMwOS0xNi44MDEsNDYuMzgtMC4wODYsNjQuNzM0Yy00LjYxMiwwLjUwOC04Ljk2OCwyLjM4LTEyLjUxMiw1LjM3NVYxMTUuMTk5QzQ4LDEwNC40MzQsMzcuNDYxLDk2LDI0LDk2CgkJCXMtMjQsOC40MzQtMjQsMTkuMTk5djM0NS42MDJDMCw0NzEuNTY2LDEwLjUzOSw0ODAsMjQsNDgwczI0LTguNDM0LDI0LTE5LjE5OVY0MDhoMzg0djU2LjY4YzAsOS4wMTksOS44NjcsMTUuMzIsMjQsMTUuMzIKCQkJczI0LTYuMzAxLDI0LTE1LjMyVjIzOS4zMkM0ODAsMjMwLjMwMSw0NzAuMTMzLDIyNCw0NTYsMjI0eiBNMzIsNDYwLjgwMWMtMC4wODYsMC42NTYtMi43NzMsMy4xOTktOCwzLjE5OQoJCQljLTUuMjUsMC03LjkyMi0yLjU0My04LTMuMTk5VjExNS4xOTljMC4wNzgtMC42NTYsMi43NS0zLjE5OSw4LTMuMTk5YzUuMjI3LDAsNy45MTQsMi41NDMsOCwzLjE5OVY0NjAuODAxeiBNMTYwLDI0MGgyMTYKCQkJYzMwLjE3MiwwLDUzLjE3Miw0NC45MjYsNTUuNzU4LDg4SDE2MFYyNDB6IE0xNDQsMjgwLjA4M3YzOC41NmMtMy40NTItMy4zNTMtNy44NDgtNS41NjYtMTIuNTk3LTYuMzQyCgkJCUMxMzkuNzkzLDMwMy4xMzcsMTQzLjk1NiwyOTEuNiwxNDQsMjgwLjA4M3ogTTk2LDI0OGMxNy42NzMsMCwzMiwxNC4zMjcsMzIsMzJjMCwxNy42NzMtMTQuMzI3LDMyLTMyLDMycy0zMi0xNC4zMjctMzItMzIKCQkJQzY0LjAxOSwyNjIuMzM1LDc4LjMzNSwyNDguMDE5LDk2LDI0OHogTTQzMiwzOTJINDh2LTQ4LjAyM2M0LjE2My0wLjMyOCw3LjM3NC0zLjgwMSw3LjM3NS03Ljk3NwoJCQljLTAuMDc3LTQuMzMxLDMuMzY0LTcuOTA5LDcuNjk1LThoNjQuNjFjNC4zMzEsMC4wOTEsNy43NzIsMy42NjksNy42OTUsOGMtMC4wMDEsNC40MTcsMy41NzksNy45OTksNy45OTYsOAoJCQljMC4wMDEsMCwwLjAwMywwLDAuMDA0LDBINDMyVjM5MnogTTQ2NCw0NjIuNTk0Yy01LjE2OSwxLjg3NS0xMC44MzEsMS44NzUtMTYsMFYyNDEuNDA2YzUuMTY5LTEuODc1LDEwLjgzMS0xLjg3NSwxNiwwVjQ2Mi41OTR6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTEzNy4wNzgsMTc2bDI5LjA3LTM0Ljg3OWMxLjk4Ni0yLjM4NiwyLjQxMy01LjcwNSwxLjA5NC04LjUxNmMtMS4zMTYtMi44MS00LjEzOS00LjYwNS03LjI0Mi00LjYwNWgtNDh2MTZoMzAuOTIyCgkJCWwtMjkuMDcsMzQuODc5Yy0yLjgyNywzLjM5OC0yLjM2NCw4LjQ0NCwxLjAzNCwxMS4yN2MxLjQzNywxLjE5NSwzLjI0NiwxLjg1LDUuMTE0LDEuODUxaDQ4di0xNkgxMzcuMDc4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjQuMzU5LDEzNmw0NS45NTMtNTkuMDljMS44NzctMi40MTEsMi4yMTctNS42ODEsMC44NzUtOC40MjZjLTEuMzQ0LTIuNzQzLTQuMTMyLTQuNDgzLTcuMTg4LTQuNDg0aC02NHYxNmg0Ny42NDEKCQkJbC00NS45NTMsNTkuMDljLTIuNzE0LDMuNDg0LTIuMDg5LDguNTA5LDEuMzk2LDExLjIyM2MxLjQwNSwxLjA5NCwzLjEzNiwxLjY4OCw0LjkxNywxLjY4OGg2NHYtMTZIMjI0LjM1OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzI4LDk2bDYyLjM5OC04My4xOTljMi42NTItMy41MzMsMS45MzktOC41NDYtMS41OTQtMTEuMTk5QzM4Ny40MTksMC41NjIsMzg1LjczMywwLDM4NCwwaC03MnYxNmg1NmwtNjIuMzk4LDgzLjE5OQoJCQljLTEuODE4LDIuNDI0LTIuMTEyLDUuNjY4LTAuNzU4LDguMzc5QzMwNi4yLDExMC4yODgsMzA4Ljk3LDExMiwzMTIsMTEyaDgwVjk2SDMyOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Stairway:kxe,Stairwell:Yxe,Storeroom:vxe,"Summer House":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuODMyLDIyNS4yNjNoLTQzLjAzOWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY2MC4xMzRjMCw0LjE0MiwzLjM1Nyw3LjUsNy41LDcuNWg0My4wMzljNC4xNDIsMCw3LjUtMy4zNTgsNy41LTcuNQoJCQl2LTYwLjEzNEMxODEuMzMyLDIyOC42MjIsMTc3Ljk3NCwyMjUuMjYzLDE3My44MzIsMjI1LjI2M3ogTTE2Ni4zMzEsMjg1LjM5N2gtMjguMDM4di00NS4xMzNoMjguMDM4VjI4NS4zOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OS4xMjcsMjAxLjE5M2MzLjMxNCwyLjI3OCw4LjA5MSwxLjQ3MSwxMC40My0xLjkzMmMwLDAsMjMuMDA5LTMzLjQ2OSwyMy4wMjktMzMuNDk4CgkJCWMyLjMxNS0zLjM2OCwxLjQyOC04LjEyMS0xLjkzMi0xMC40MzFMMjcxLjc2Myw0Ljg2MWMtOS40MjktNi40OC0yMi4wOTctNi40ODEtMzEuNTI2LDBjMCwwLTEzOS43NjIsOTYuMDc3LTE0MC4yNzMsOTYuNDI4CgkJCWMtNy45MTEsNS40MzgsMC40MjksMTcuOTEsOC40OTcsMTIuMzYzbDE0MC4yNzQtOTYuNDI5YzQuMzQ3LTIuOTg3LDEwLjE4Ny0yLjk4NywxNC41MzEtMC4wMDFsMjEyLjcwOSwxNDYuMjI0bC0xNC41MzEsMjEuMTM3CgkJCWMwLDAtMjAxLjE0My0xMzguMjcyLTIwMS4xOTUtMTM4LjMwOGMtMi40OTUtMS43MTUtNS45OTktMS43MTgtOC40OTgtMC4wMDFMNTAuNTU3LDE4NC41ODNsLTE0LjUzLTIxLjEzNwoJCQljMCwwLDQ3LjExNy0zMi4zOSw0Ny4yODktMzIuNTA5YzcuODA3LTUuMzY2LTAuNDE2LTE3LjkxNy04LjQ5OC0xMi4zNjJjMCwwLTUzLjMwMSwzNi42NC01My40NzEsMzYuNzU3CgkJCWMtMy4zNzQsMi4zMi00LjI0MSw3LjA3MS0xLjkzMywxMC40MzFsMjEuNzA5LDMxLjU3OXYzMDcuMTU2YzAsNC4xNDIsMy4zNTgsNy41LDcuNSw3LjVIMjU2YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjVWMzk1Ljk3MQoJCQlINDAyLjY0djEwOC41MjhjMCw0LjE0MiwzLjM1OCw3LjUsNy41MDEsNy41aDMwLjQ4OGM0LjE0MiwwLDcuNS0zLjM1OCw3LjUtNy41VjM5NS45NzFoMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4NwoJCQljMC00LjE0My0zLjM1OC03LjUtNy41LTcuNWgtMjMuNzY5di01Ny4yNTloMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4OGMwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC0yMy43Njl2LTU0LjEwMwoJCQlMNDU5LjEyNywyMDEuMTkzeiBNNDE3LjY0MSwxODYuODc2aDE1LjQ4N3Y2MC44NThoLTE1LjQ4N1YxODYuODc2eiBNMjU2LDYxLjU1NmwzOS4wNzUsMjYuODYxaC03OC4xNDlMMjU2LDYxLjU1NnoKCQkJIE01Ni4xMjUsMjcwLjMzMmgzOC4zOTl2NTMuMDU1YzAsNC4xNDEsMy4zNTgsNy41LDcuNSw3LjVIMjAyLjZjNC4xNDIsMCw3LjUwMS0zLjM1OCw3LjUwMS03LjV2LTUzLjA1NWgzOC4zOTh2NjguNDU2SDU2LjEyNQoJCQlWMjcwLjMzMnogTTEwOS41MjUsMzE1Ljg4NlYyMDkuNzc3aDg1LjU3NXYxMDYuMTA5SDEwOS41MjV6IE05NC41MjQsNDk2Ljk5OEg1Ni4xMjV2LTU5Ljc1NGgzOC4zOTlWNDk2Ljk5OHogTTE2Ni4zMzEsNDk2Ljk5NwoJCQloLTI4LjAzOHYtODUuNzgzaDI4LjAzOFY0OTYuOTk3eiBNMTk1LjA5OSw0OTYuOTk3aC0xMy43Njd2LTkzLjI4M2MwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC00My4wMzkKCQkJYy00LjE0MiwwLTcuNTAxLDMuMzU4LTcuNTAxLDcuNXY5My4yODNoLTEzLjc2OFYzODAuNzI3aDg1LjU3NVY0OTYuOTk3eiBNMjQ4LjQ5OSw0OTYuOTk4SDIxMC4xdi01OS43NTRoMzguMzk4VjQ5Ni45OTh6CgkJCSBNMjQ4LjUsNDIyLjI0NGgtMzguMzk5di00OS4wMThjLTAuMDAxLTQuMTQyLTMuMzU5LTcuNS03LjUwMi03LjVIMTAyLjAyNGMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNTAxdjQ5LjAxOEg1Ni4xMjV2LTY4LjQ1NgoJCQlIMjQ4LjVWNDIyLjI0NHogTTI0OC41LDI1NS4yMjVjMCwwLjAwMywwLDAuMDA2LDAsMC4wMXYwLjA5NmgtMzguMzk5di01My4wNTVjMC00LjE0Mi0zLjM1OC03LjUtNy41LTcuNUgxMDIuMDI0CgkJCWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY1My4wNTVINTYuMTI1di01Ni4zNzNsMTcuNjYzLTEyLjE0M2MwLjI5NywwLjAzNiwwLjU5NywwLjA2LDAuOTA0LDAuMDZIMjQ4LjVWMjU1LjIyNXoKCQkJIE05NS41MjMsMTcxLjg3NWw5OS41ODEtNjguNDU2aDEyMS43OTNsOTkuNTgxLDY4LjQ1NmgtNi4zMzZIOTUuNTIzeiBNNDAyLjY0LDE4Ni44NzZ2NjAuODU4SDI2My41MDF2LTYwLjg1OEg0MDIuNjR6CgkJCSBNMjYzLjUwMSwyOTMuMjIzaDE1LjQ4NnY1Ny4yNTloLTE1LjQ4NlYyOTMuMjIzeiBNNDMzLjEyOCw0OTYuOTk4aC0xNS40ODdWMzk1Ljk3MWgxNS40ODdWNDk2Ljk5OHogTTQ2NC4zOTcsMzY1LjQ4NHYxNS40ODYKCQkJSDI2My41MDF2LTE1LjQ4Nkg0NjQuMzk3eiBNMjkzLjk4OCwzNTAuNDgydi01Ny4yNTloMTUuNDg3djU3LjI1OUgyOTMuOTg4eiBNMzI0LjQ3NiwzNTAuNDgydi01Ny4yNTloMTYuMzM3djU3LjI1OUgzMjQuNDc2egoJCQkgTTM1NS44MTQsMzUwLjQ4MnYtNTcuMjU5aDE1LjQ4N3Y1Ny4yNTlIMzU1LjgxNHogTTM4Ni4zMDIsMzUwLjQ4MnYtNTcuMjU5aDE2LjMzN3Y1Ny4yNTlIMzg2LjMwMnogTTQxNy42NDEsMzUwLjQ4MnYtNTcuMjU5CgkJCWgxNS40ODd2NTcuMjU5SDQxNy42NDF6IE00NjQuMzk3LDI2Mi43MzV2MTUuNDg3SDI2My41MDF2LTE1LjQ4N0g0NjQuMzk3eiIvPgogICAgPC9nPgo8L3N2Zz4K","Swimming Pool":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4Ny43MzMgMTg3LjczMyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xODcuNTk5LDE1MS40NThMMTUzLjQ2NSwzMy4xODZjLTAuNDIyLTEuNDYxLTEuNzU4LTIuNDY2LTMuMjc5LTIuNDY2SDM3LjU0N2MtMS41MjEsMC0yLjg1NywxLjAwNS0zLjI3OSwyLjQ2NgoJCQlMMC4xMzUsMTUxLjQ1OEMwLjA0NCwxNTEuNzY1LDAsMTUyLjA4NSwwLDE1Mi40MDV2MjUuMDg4YzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNIMTg0LjMyCgkJCWMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzdi0yNS4wODhDMTg3LjczMywxNTIuMDg1LDE4Ny42ODcsMTUxLjc2NSwxODcuNTk5LDE1MS40NTh6IE0xODAuOTA3LDE3NC4wOEg2LjgyN3YtMjEuMTkyCgkJCUw0MC4xMTUsMzcuNTQ3SDE0Ny42MmwzMy4yODcsMTE1LjM0MlYxNzQuMDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTc4LjUwNyw2LjgyN2MtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3Y1MS4yYzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNzMy40MTMtMS41MjksMy40MTMtMy40MTN2LTUxLjIKCQkJQzgxLjkyLDguMzU2LDgwLjM5MSw2LjgyNyw3OC41MDcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsNi44MjdjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTN2NTEuMmMwLDEuODg0LDEuNTI5LDMuNDEzLDMuNDEzLDMuNDEzYzEuODg0LDAsMy40MTMtMS41MjksMy40MTMtMy40MTMKCQkJdi01MS4yQzExMi42NCw4LjM1NiwxMTEuMTExLDYuODI3LDEwOS4yMjcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsMTcuMDY3aC0zMC43MmMtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3MxLjUyOSwzLjQxMywzLjQxMywzLjQxM2gzMC43MmMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzCgkJCVMxMTEuMTExLDE3LjA2NywxMDkuMjI3LDE3LjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTA5LjIyNywzMC43MmgtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSwzMC43MiwxMDkuMjI3LDMwLjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDkuMjI3LDQ0LjM3M2gtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSw0NC4zNzMsMTA5LjIyNyw0NC4zNzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE2My43ODksMTQ2LjE3OWwtMTcuNTE2LTk4Ljk4N2MtMC4yODgtMS42My0xLjcwNS0yLjgxOC0zLjM2LTIuODE4SDQ4LjMyOGMtMS42MTMsMC0zLjAwNSwxLjEyNi0zLjM0LDIuNzAzCgkJCWwtMjEuMDE5LDk4Ljk4N2MtMC4yMTMsMS4wMDcsMC4wMzgsMi4wNTcsMC42ODYsMi44NTdjMC42NDksMC44LDEuNjIxLDEuMjY1LDIuNjUyLDEuMjY1aDEzMy4xMmMxLjAwOSwwLDEuOTY2LTAuNDQ3LDIuNjE2LTEuMjE5CgkJCUMxNjMuNjkxLDE0OC4xOTUsMTYzLjk2NSwxNDcuMTc0LDE2My43ODksMTQ2LjE3OXogTTMxLjUyLDE0My4zNkw1MS4wODksNTEuMmg4OC45NThsMTYuMzA5LDkyLjE2SDMxLjUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Terrace:bxe,Toilet:Qxe,Upstairs:Uxe,Wardrobe:$xe,Washroom:Pxe,Wc:Wxe,Windscreen:Bxe,Workshop:Jxe,Workspace:Rxe},Gxe=[{_id:"hood",name:{en:"Hood",ru:"Вытяжка",de:"Abzugshaube",fr:"Capot",it:"Cappe",nl:"Hood",pl:"Okapy",pt:"Hood",es:"Campana","zh-cn":"抽油烟机"},icon:"Hoods.svg"},{_id:"alarm_system",name:{en:"Alarm System",ru:"Сигнализация",de:"Alarmanlage",fr:"Systèmes D'Alarme",it:"Sistemi Di Allarme",nl:"Alarm Systems",pl:"Systemy Alarmowe",pt:"Sistemas De Alarme",es:"Sistemas De Alarma","zh-cn":"报警系统"},icon:"Alarm Systems.svg"},{_id:"battery_status",name:{en:"Battery Status",ru:"Заряд батареи",de:"Batteriestatus",fr:"État De La Batterie",it:"Stato Della Batteria",nl:"Batterij Status",pl:"Stan Baterii",pt:"Estado Da Bateria",es:"Estado De La Batería","zh-cn":"电池状态"},icon:"Battery Status.svg"},{_id:"lighting",name:{en:"Lighting",ru:"Светильник",de:"Beleuchtung",fr:"Éclairages",it:"Illuminazione",nl:"Verlichting",pl:"Oprawy Oświetleniowe",pt:"Iluminações",es:"Iluminaciones","zh-cn":"照明"},icon:"Lightings.svg"},{_id:"shading",name:{en:"Shading",ru:"Затенение",de:"Beschattungen",fr:"Ombres",it:"Ombreggiatura",nl:"Shading",pl:"Zacienienie",pt:"Shading",es:"Sombreado","zh-cn":"底纹"},icon:"Shading.svg"},{_id:"irrigation",name:{en:"Irrigation",ru:"Орошение",de:"Bewässerung",fr:"Irrigation",it:"Irrigazione",nl:"Irrigatie",pl:"Nawadnianie",pt:"Irrigação",es:"Irrigación","zh-cn":"灌溉"},icon:"Irrigation.svg"},{_id:"iron",name:{en:"Iron",ru:"Утюг",de:"Bügeleisen",fr:"Le Fer",it:"Ferro",nl:"Ijzer",pl:"Żelazo",pt:"Ferro",es:"Hierro","zh-cn":"铁"},icon:"Iron.svg"},{_id:"computer",name:{en:"Computer",ru:"Компьютер",de:"Rechner",fr:"L'Ordinateur",it:"Computer",nl:"Computer",pl:"Komputer",pt:"Computador",es:"Ordenador","zh-cn":"电脑"},icon:"Computer.svg"},{_id:"ceiling_spotlight",name:{en:"Ceiling Spotlight",ru:"Потолочный прожектор",de:"Deckenspot",fr:"Plafond Spotlight",it:"Faretti A Soffitto",nl:"Plafond Spotlight",pl:"Reflektory Sufitowe",pt:"Tecto Foco",es:"Focos De Techo","zh-cn":"天花射灯"},icon:"Ceiling Spotlights.svg"},{_id:"printer",name:{en:"Printer",de:"Drucker",ru:"Принтер",pt:"Impressora",nl:"Printer",fr:"Imprimante",it:"Stampante",es:"Impresora",pl:"Drukarka","zh-cn":"打印机"},icon:"Printer.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"window",name:{en:"Window",ru:"Окно",de:"Fenster",fr:"La Fenêtre",it:"Finestra",nl:"Venster",pl:"Okno",pt:"Janela",es:"Ventana","zh-cn":"窗户"},icon:"Window.svg"},{_id:"garage_door",name:{en:"Garage Door",ru:"Гаражные Ворота",de:"Garagentor",fr:"Portes De Garage",it:"Garage Door",nl:"Garage Door",pl:"Bramy Garażowe",pt:"Portas De Garagem",es:"Las Puertas De Garaje","zh-cn":"车库门"},icon:"Garage Doors.svg"},{_id:"hairdryer",name:{en:"Hairdryer",ru:"Фен",de:"Haartrockner",fr:"Sèche-Cheveux",it:"Asciugacapelli",nl:"Haardroger",pl:"Suszarka Do Włosów",pt:"Secador De Cabelo",es:"Secador De Pelo","zh-cn":"电吹风"},icon:"Hairdryer.svg"},{_id:"hanging_lamp",name:{en:"Hanging Lamp",ru:"Подвесной светильник",de:"Hängelampe",fr:"Lampes Suspendues",it:"Lampade A Sospensione",nl:"Opknoping Lampen",pl:"Lampy Wiszące",pt:"Lâmpadas De Suspensão",es:"Lámparas Colgantes","zh-cn":"挂灯"},icon:"Hanging Lamps.svg"},{_id:"doorstep",name:{en:"Enterance",ru:"Входная дверь",de:"Haustür",fr:"Seuil De Porte",it:"Gradino Della Porta",nl:"Drempel",pl:"Próg",pt:"Porta",es:"Peldaño","zh-cn":"门阶"},icon:"Doorstep.svg"},{_id:"hot_water",name:{en:"Hot Water",ru:"Горячая вода",de:"Heißwasser",fr:"Eau Chaude",it:"Acqua Calda",nl:"Heet Water",pl:"Gorąca Woda",pt:"Água Quente",es:"Agua Caliente","zh-cn":"热水"},icon:"Hot Water.svg"},{_id:"heating",name:{en:"Heating",ru:"Отопление",de:"Heizung",fr:"Chauffe-Eau",it:"Riscaldatore",nl:"Verwarmer",pl:"Podgrzewacz",pt:"Aquecedor",es:"Calentador","zh-cn":"加热器"},icon:"Heater.svg"},{_id:"stove",name:{en:"Stove",ru:"Печь",de:"Herd",fr:"Le Fourneau",it:"Stufa",nl:"Fornuis",pl:"Kuchenka",pt:"Forno",es:"Cocina","zh-cn":"火炉"},icon:"Stove.svg"},{_id:"louvre",name:{en:"Louvre",ru:"Жалюзи",de:"Jalousie",fr:"Persienne",it:"Persiana Di Ventilazione",nl:"Louvre",pl:"Żaluzja",pt:"Trapeira",es:"Lumbrera","zh-cn":"卢浮宫"},icon:"Louvre.svg"},{_id:"coffee_maker",name:{en:"Coffee Maker",ru:"Кофеварка",de:"Kaffemaschine",fr:"Cafetière",it:"Macchine Da Caffè",nl:"Koffie Maker",pl:"Ekspresy Do Kawy",pt:"Cafeteira",es:"Cafetera","zh-cn":"咖啡壶"},icon:"Coffee Makers.svg"},{_id:"cold_water",name:{en:"Cold Water",ru:"Холодная вода",de:"Kaltwasser",fr:"Eau Froide",it:"Acqua Fredda",nl:"Koud Water",pl:"Zimna Woda",pt:"Água Fria",es:"Agua Fría","zh-cn":"冷水"},icon:"Cold Water.svg"},{_id:"climate",name:{en:"Climate",ru:"Климат",de:"Klima",fr:"Climat",it:"Clima",nl:"Klimaat",pl:"Klimat",pt:"Clima",es:"Clima","zh-cn":"气候"},icon:"Climate.svg"},{_id:"speaker",name:{en:"Speaker",ru:"Звуковая система",de:"Lautsprecher",fr:"Orateur",it:"Altoparlante",nl:"Spreker",pl:"Głośnik",pt:"Palestrante",es:"Altavoz","zh-cn":"扬声器"},icon:"Speaker.svg"},{_id:"led_strip",name:{en:"Led Strip",ru:"Светодиодная лента",de:"LED Leiste",fr:"Led Strip",it:"Led Strip",nl:"Loden Strip",pl:"Pasek Ledowy",pt:"Led Faixa",es:"Tira Llevada","zh-cn":"灯带"},icon:"Led Strip.svg"},{_id:"light",name:{en:"Light",ru:"Свет",de:"Licht",fr:"Lumière",it:"Leggero",nl:"Licht",pl:"Lekki",pt:"Luz",es:"Luz","zh-cn":"光"},icon:"Light.svg"},{_id:"fan",name:{en:"Fan",ru:"Вентилятор",de:"Lüfter",fr:"Ventilateur",it:"Fan",nl:"Ventilator",pl:"Wentylator",pt:"Ventilador",es:"Ventilador","zh-cn":"扇子"},icon:"Fan.svg"},{_id:"humidity",name:{en:"Humidity",ru:"Влажность",de:"Luftfeuchtigkeit",fr:"Humidité",it:"Umidità",nl:"Vochtigheid",pl:"Wilgotność",pt:"Umidade",es:"Humedad","zh-cn":"湿度"},icon:"Humidity.svg"},{_id:"ventilation",name:{en:"Ventilation",ru:"Вентиляция",de:"Lüftung",fr:"Ventilation",it:"Ventilazione",nl:"Ventilatie",pl:"Wentylacja",pt:"Ventilação",es:"Ventilación","zh-cn":"通风"},icon:"Ventilation.svg"},{_id:"chandelier",name:{en:"Chandelier",ru:"Люстра",de:"Kronleuchter",fr:"Lustre",it:"Lampadario",nl:"Kroonluchter",pl:"Żyrandol",pt:"Lustre",es:"Candelabro","zh-cn":"枝形吊灯"},icon:"Chandelier.svg"},{_id:"awning",name:{en:"Awning",ru:"Маркиза",de:"Markise",fr:"Auvents",it:"Tende",nl:"Luifels",pl:"Okrycia",pt:"Toldos",es:"Toldos","zh-cn":"遮阳篷"},icon:"Awnings.svg"},{_id:"music",name:{en:"Music",ru:"Музыка",de:"Musik",fr:"Musique",it:"Musica",nl:"Muziek",pl:"Muzyka",pt:"Música",es:"Música","zh-cn":"音乐"},icon:"Music.svg"},{_id:"people",name:{en:"People",ru:"Люди",de:"Personen",fr:"Gens",it:"Persone",nl:"Mensen",pl:"Ludzie",pt:"Pessoas",es:"Personas","zh-cn":"人们"},icon:"People.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"pump",name:{en:"Pump",ru:"Насос",de:"Pumpe",fr:"Pompe",it:"Pompa",nl:"Pomp",pl:"Pompa",pt:"Bombear",es:"Bomba","zh-cn":"泵"},icon:"Pump.svg"},{_id:"outdoor_blinds",name:{en:"Outdoor Blinds",ru:"Внещгте жалюзи",de:"Raffstore",fr:"Volets",it:"Tende Da Esterni",nl:"Outdoor Blinds",pl:"Rolety Zewnętrzne",pt:"Estores Exteriores",es:"Persianas Exteriores","zh-cn":"室外百叶窗"},icon:"Outdoor Blinds.svg"},{_id:"mowing_machine",name:{en:"Mowing Machine",ru:"Газонокосилка",de:"Rasenmäher",fr:"Machine De Fauchage",it:"Macchina Di Falciatura",nl:"Maaimachine",pl:"Kosiarka",pt:"Roçada Máquina",es:"Segadora","zh-cn":"割草机"},icon:"Mowing Machine.svg"},{_id:"receiver",name:{en:"Receiver",ru:"Приставка",de:"Receiver",fr:"Destinataire",it:"Ricevitore",nl:"Ontvanger",pl:"Odbiorca",pt:"Recebedor",es:"Receptor","zh-cn":"接收者"},icon:"Receiver.svg"},{_id:"shutters",name:{en:"Shutters",ru:"Ставни",de:"Rollladen",fr:"Volets",it:"Persiane",nl:"Shutters",pl:"Żaluzje",pt:"Persianas",es:"Persianas","zh-cn":"百叶窗"},icon:"Shutters.svg"},{_id:"smoke_detector",name:{en:"Smoke detector",de:"Rauchmelder",ru:"Детектор дыма",pt:"Detector de fumaça",nl:"Rookdetector",fr:"Détecteur de fumée",it:"Rilevatore di fumo",es:"Detector de humo",pl:"Wykrywacz dymu","zh-cn":"烟雾探测器"},icon:"SmokeDetector.svg"},{_id:"lock",name:{en:"Lock",ru:"Замок",de:"Schloß",fr:"Fermer À Clé",it:"Serratura",nl:"Slot",pl:"Zamek",pt:"Trancar",es:"Cerrar Con Llave","zh-cn":"锁"},icon:"Lock.svg"},{_id:"security",name:{en:"Security",ru:"Безопасность",de:"Sicherheit",fr:"Sécurité",it:"Sicurezza",nl:"Veiligheid",pl:"Bezpieczeństwo",pt:"Segurança",es:"Seguridad","zh-cn":"安全"},icon:"Security.svg"},{_id:"dishwasher",name:{en:"Dishwasher",ru:"Посудомоечная машина",de:"Spülmaschine",fr:"Lave-Vaisselles",it:"Lavastoviglie",nl:"Vaatwassers",pl:"Zmywarki",pt:"Máquinas De Lavar Louça",es:"Lavaplatos","zh-cn":"洗碗机"},icon:"Dishwashers.svg"},{_id:"vacuum_cleaner",name:{en:"Vacuum Cleaner",ru:"Пылесос",de:"Staubsauger",fr:"Aspirateur",it:"Aspirapolvere",nl:"Stofzuiger",pl:"Odkurzacz",pt:"Aspirador De Pó",es:"Aspiradora","zh-cn":"吸尘器"},icon:"Vacuum Cleaner.svg"},{_id:"socket",name:{en:"Socket",ru:"Розетка",de:"Steckdose",fr:"Prise",it:"Socket",nl:"Socket",pl:"Gniazdka",pt:"Tomada",es:"Zócalo","zh-cn":"套接字"},icon:"Sockets.svg"},{_id:"floor_lamp",name:{en:"Floor Lamp",ru:"Торшер",de:"Stehlampe",fr:"Lampes Pour Plancher",it:"Lampade A Stelo",nl:"Vloerlampen",pl:"Lampy Podłogowe",pt:"Lâmpadas Chão",es:"Lámparas De Pie","zh-cn":"落地灯"},icon:"Floor Lamps.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"temperature_sensor",name:{en:"Temperature Sensor",ru:"Температурный датчик",de:"Temperatur-Sensor",fr:"Capteur De Température",it:"Sensori Di Temperatura",nl:"Temperatuursensor",pl:"Czujniki Temperatury",pt:"Sensores De Temperatura",es:"Sensores De Temperatura","zh-cn":"温度传感器"},icon:"Temperature Sensors.svg"},{_id:"table_lamp",name:{en:"Table Lamp",ru:"Настольная лампа",de:"Tischlampe",fr:"Lampe De Chevet",it:"Lampade Da Tavolo",nl:"Tafellampen",pl:"Lampy Stołowe",pt:"Lâmpadas De Mesa",es:"Lámparas De Mesa","zh-cn":"台灯"},icon:"Table Lamps.svg"},{_id:"gate",name:{en:"Gate",ru:"Ворота",de:"Tor",fr:"Porte",it:"Gate",nl:"Gate",pl:"Bramy",pt:"Portões",es:"Puertas","zh-cn":"盖茨"},icon:"Gates.svg"},{_id:"dryer",name:{en:"Dryer",ru:"Сушилка",de:"Trockner",fr:"Séchoir",it:"Asciugatrice",nl:"Droger",pl:"Suszarka",pt:"Secador",es:"Secadora","zh-cn":"烘干机"},icon:"Dryer.svg"},{_id:"door",name:{en:"Door",ru:"Дверь",de:"Tür",fr:"Des Portes",it:"Porte",nl:"Deuren",pl:"Drzwi",pt:"Portas",es:"Puertas","zh-cn":"门"},icon:"Doors.svg"},{_id:"tv",name:{en:"Tv",ru:"Телевизор",de:"TV",fr:"La Télé",it:"Tv",nl:"Tv",pl:"Telewizja",pt:"Televisão",es:"Televisor","zh-cn":"电视"},icon:"Tv.svg"},{_id:"consumption",name:{en:"Consumption",ru:"Потребление",de:"Verbrauch",fr:"Consommation",it:"Consumo",nl:"Consumptie",pl:"Konsumpcja",pt:"Consumo",es:"Consumo","zh-cn":"消费"},icon:"Consumption.svg"},{_id:"amplifier",name:{en:"Amplifier",ru:"Усилитель звука",de:"Verstärker",fr:"Amplificateur",it:"Amplificatore",nl:"Versterker",pl:"Wzmacniacz",pt:"Amplificador",es:"Amplificador","zh-cn":"放大器"},icon:"Amplifier.svg"},{_id:"curtains",name:{en:"Curtains",ru:"Шторы",de:"Vorhänge",fr:"Des Rideaux",it:"Le Tende",nl:"Gordijnen",pl:"Zasłony",pt:"Cortinas",es:"Cortinas","zh-cn":"窗帘"},icon:"Curtains.svg"},{_id:"sconce",name:{en:"Sconce",ru:"Настенный светильник",de:"Wandlampe",fr:"Sconce",it:"Sconce",nl:"Sconce",pl:"Kinkiety",pt:"Arandelas",es:"Los Apliques","zh-cn":"壁灯"},icon:"Sconces.svg"},{_id:"washing_machine",name:{en:"Washing Machine",ru:"Стиральная машина",de:"Waschmaschine",fr:"Machines À Laver",it:"Lavatrici",nl:"Wasmachines",pl:"Pralki",pt:"Máquinas De Lavar Roupas",es:"Lavadoras","zh-cn":"洗衣机"},icon:"Washing Machines.svg"},{_id:"water",name:{en:"Water",ru:"Вода",de:"Wasser",fr:"L'Eau",it:"Acqua",nl:"Water",pl:"Woda",pt:"Água",es:"Agua","zh-cn":"水"},icon:"Water.svg"},{_id:"water_heater",name:{en:"Water Heater",ru:"Нагреватель воды",de:"Wasserkocher",fr:"Chauffe-Eau",it:"Scaldabagno",nl:"Waterkoker",pl:"Podgrzewacz Wody",pt:"Aquecedor De Água",es:"Calentador De Agua","zh-cn":"热水器"},icon:"Water Heater.svg"},{_id:"water_consumption",name:{en:"Water Consumption",ru:"Потребление воды",de:"Wasserverbrauch",fr:"Consommation D'Eau",it:"Consumo D'Acqua",nl:"Waterverbruik",pl:"Konsumpcja Wody",pt:"Consumo De Água",es:"Consumo De Agua","zh-cn":"耗水量"},icon:"Water Consumption.svg"},{_id:"weather",name:{en:"Weather",ru:"Погода",de:"Wetter",fr:"La Météo",it:"Tempo Metereologico",nl:"Weer",pl:"Pogoda",pt:"Clima",es:"Tiempo","zh-cn":"天气"},icon:"Weather.svg"}],Hxe=[{_id:"storeroom",name:{en:"Storeroom",ru:"Кладовая",de:"Abstellraum",fr:"Débarras",it:"Dispensa",nl:"Bergplaats",pl:"Magazyn",pt:"Despensa",es:"Trastero","zh-cn":"库房"},icon:"Storeroom.svg"},{_id:"second_floor",name:{en:"Second floor",ru:"Второй этаж",de:"Erster OG",pt:"Primeiro andar",nl:"Eerste verdieping",fr:"Premier étage",it:"Primo piano",es:"Primer piso",pl:"Pierwsze piętro","zh-cn":"第一层"},icon:"Second Floor.svg"},{_id:"dressing_room",name:{en:"Dressing Room",ru:"Гардеробная",de:"Ankleide",fr:"Vestiaire",it:"Camerino",nl:"Kleedkamer",pl:"Przebieralnia",pt:"Provador",es:"Vestidor","zh-cn":"更衣室"},icon:"Dressing Room.svg"},{_id:"workspace",name:{en:"Workspace",ru:"Рабочая Среда",de:"Arbeitszimmer",fr:"Espace De Travail",it:"Area Di Lavoro",nl:"Workspace",pl:"Workspace",pt:"Área De Trabalho",es:"Espacio De Trabajo","zh-cn":"工作区"},icon:"Workspace.svg"},{_id:"driveway",name:{en:"Driveway",ru:"Дорога",de:"Auffahrt",fr:"Allée",it:"Viale",nl:"Pad",pl:"Podjazd",pt:"Entrada Da Garagem",es:"Entrada De Coches","zh-cn":"车道"},icon:"Driveway.svg"},{_id:"outdoors",name:{en:"Outdoors",ru:"На Улице",de:"Außenbereich",fr:"En Plein Air",it:"All'Aperto",nl:"Buitenshuis",pl:"Na Dworze",pt:"Ao Ar Livre",es:"Al Aire Libre","zh-cn":"户外"},icon:"Outdoors.svg"},{_id:"bathroom",name:{en:"Bathroom",ru:"Ванная Комната",de:"Badezimmer",fr:"Salle De Bains",it:"Bagno",nl:"Badkamer",pl:"Łazienka",pt:"Banheiro",es:"Baño","zh-cn":"浴室"},icon:"Bathroom.svg"},{_id:"balcony",name:{en:"Balcony",ru:"Балкон",de:"Balkon",fr:"Balcon",it:"Balcone",nl:"Balkon",pl:"Balkon",pt:"Sacada",es:"Balcón","zh-cn":"阳台"},icon:"Balcony.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"carport",name:{en:"Carport",ru:"Навес",de:"Carport",fr:"Carport",it:"Posto Auto Coperto",nl:"Carport",pl:"Wiata",pt:"Telheiro",es:"Cochera","zh-cn":"车棚"},icon:"Carport.svg"},{_id:"attic",name:{en:"Attic",ru:"Чердак",de:"Dachgeschoss",fr:"Grenier",it:"Attico",nl:"Zolder",pl:"Poddasze",pt:"Sótão",es:"Ático","zh-cn":"阁楼"},icon:"Attic.svg"},{_id:"hall",name:{en:"Hall",ru:"Зал",de:"Diele",fr:"Salle",it:"Sala",nl:"Hal",pl:"Sala",pt:"Corredor",es:"Sala","zh-cn":"大厅"},icon:"Hall.svg"},{_id:"entrance",name:{en:"Entrance",ru:"Вход",de:"Eingang",fr:"Entrée",it:"Ingresso",nl:"Ingang",pl:"Wejście",pt:"Entrada",es:"Entrada","zh-cn":"入口"},icon:"Entrance.svg"},{_id:"ground_floor",name:{en:"Ground Floor",ru:"Первый Этаж",de:"Erdgeschoss",fr:"Rez-De-Chaussée",it:"Piano Terra",nl:"Begane Grond",pl:"Parter",pt:"Térreo",es:"Planta Baja","zh-cn":"一楼"},icon:"Ground Floor.svg"},{_id:"dining_area",name:{en:"Dining Area",ru:"Столовая",de:"Essbereich",fr:"Salle À Manger",it:"Zona Pranzo",nl:"Eethoek",pl:"Jadalnia",pt:"Área De Refeições",es:"Comedor","zh-cn":"用餐区"},icon:"Dining Area.svg"},{_id:"dining_room",name:{en:"Dining Room",ru:"Столовая",de:"Esszimmer",fr:"Salle À Manger",it:"Sala Da Pranzo",nl:"Eetkamer",pl:"Jadalnia",pt:"Sala De Jantar",es:"Comedor","zh-cn":"饭厅"},icon:"Dining Room.svg"},{_id:"gym",name:{en:"Gym",ru:"Спортзал",de:"Fitnessraum",fr:"Gym",it:"Palestra",nl:"Sportschool",pl:"Siłownia",pt:"Ginásio",es:"Gimnasio","zh-cn":"健身房"},icon:"Gym.svg"},{_id:"gallery",name:{en:"Gallery",ru:"Галерея",de:"Galerie",fr:"Galerie",it:"Galleria",nl:"Galerij",pl:"Galeria",pt:"Galeria",es:"Galería","zh-cn":"画廊"},icon:"Gallery.svg"},{_id:"garage",name:{en:"Garage",ru:"Гараж",de:"Garage",fr:"Garage",it:"Box Auto",nl:"Garage",pl:"Garaż",pt:"Garagem",es:"Garaje","zh-cn":"车库"},icon:"Garage.svg"},{_id:"wardrobe",name:{en:"Wardrobe",ru:"Гардероб",de:"Garderobe",fr:"Penderie",it:"Armadio",nl:"Garderobe",pl:"Szafa",pt:"Guarda Roupa",es:"Armario","zh-cn":"衣柜"},icon:"Wardrobe.svg"},{_id:"garden",name:{en:"Garden",ru:"Сад",de:"Garten",fr:"Jardin",it:"Giardino",nl:"Tuin",pl:"Ogród",pt:"Jardim",es:"Jardín","zh-cn":"花园"},icon:"Garden.svg"},{_id:"summer_house",name:{en:"Summer House",ru:"Дача",de:"Gartenhaus",fr:"Maison D'Été",it:"Casa Estiva",nl:"Zomerhuis",pl:"Domek Letniskowy",pt:"Summer House",es:"Casa De Verano","zh-cn":"凉亭"},icon:"Summer House.svg"},{_id:"guest_bathroom",name:{en:"Guest Bathroom",ru:"Гостевая Комната",de:"Gäste-WC",fr:"Salle De Bains Invité",it:"Guest Bathroom",nl:"Gastenbadkamer",pl:"Łazienka Gościnna",pt:"Banheiro De Hóspedes",es:"Baño De Visitas","zh-cn":"客用浴室"},icon:"Guest Bathroom.svg"},{_id:"guest_room",name:{en:"Guest Room",ru:"Гостевая Комната",de:"Gästezimmer",fr:"Chambre D'Amis",it:"Stanza Degli Ospiti",nl:"Guest Room",pl:"Pokój Gościnny",pt:"Quarto De Hóspedes",es:"Habitación De Huéspedes","zh-cn":"客房"},icon:"Guest Room.svg"},{_id:"laundry_room",name:{en:"Laundry Room",ru:"Прачечная",de:"Hauswirtschaftsraum",fr:"Buanderie",it:"Lavanderia",nl:"Wasruimte",pl:"Pralnia",pt:"Lavandaria",es:"Cuarto De Lavado","zh-cn":"洗衣房"},icon:"Laundry Room.svg"},{_id:"home_theater",name:{en:"Home Theater",ru:"Домашний Театр",de:"Heimkino",fr:"Cinéma Maison",it:"Home Theater",nl:"Thuisbioscoop",pl:"Kino Domowe",pt:"Cinema Em Casa",es:"Cine En Casa","zh-cn":"家庭电影院"},icon:"Home Theater.svg"},{_id:"boiler_room",name:{en:"Boiler Room",ru:"Бойлерная",de:"Heizungsraum",fr:"Chaufferie",it:"Locale Caldaia",nl:"Boiler Room",pl:"Kotłownia",pt:"Sala Da Caldeira",es:"Sala De Calderas","zh-cn":"锅炉房"},icon:"Boiler Room.svg"},{_id:"chamber",name:{en:"Chamber",ru:"Камера",de:"Kammer",fr:"Chambre",it:"Camera",nl:"Kamer",pl:"Izba",pt:"Câmara",es:"Cámara","zh-cn":"商会"},icon:"Chamber.svg"},{_id:"basement,_cellar",name:{en:"Basement, Cellar",ru:"Подвал, Погреб",de:"Keller",fr:"Sous-Sol, Cave",it:"Taverna, Cantina",nl:"Kelder, Kelder",pl:"Piwnica, Piwnica",pt:"Porão, Adega",es:"Sótano, Bodega","zh-cn":"地下室,地窖"},icon:"Basement.svg"},{_id:"nursery",name:{en:"Nursery",ru:"Питомник",de:"Kinderzimmer",fr:"Garderie",it:"Asilo",nl:"Kinderkamer",pl:"Żłobek",pt:"Berçário",es:"Guardería","zh-cn":"苗圃"},icon:"Nursery.svg"},{_id:"corridor",name:{en:"Corridor",ru:"Коридор",de:"Korridor",fr:"Couloir",it:"Corridoio",nl:"Gang",pl:"Korytarz",pt:"Corredor",es:"Corredor","zh-cn":"走廊"},icon:"Corridor.svg"},{_id:"kitchen",name:{en:"Kitchen",ru:"Кухня",de:"Küche",fr:"Cuisine",it:"Cucina",nl:"Keuken",pl:"Kuchnia",pt:"Cozinha",es:"Cocina","zh-cn":"厨房"},icon:"Kitchen.svg"},{_id:"upstairs",name:{en:"Upstairs",ru:"Вверх По Лестнице",de:"Obergeschoss",fr:"En Haut",it:"Di Sopra",nl:"Boven",pl:"Na Górę",pt:"Andar De Cima",es:"Piso Superior","zh-cn":"楼上"},icon:"Upstairs.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"rear_wall",name:{en:"Rear Wall",ru:"Задняя Стенка",de:"Rückwand",fr:"Paroi Arrière",it:"Parete Posteriore",nl:"Achterwand",pl:"Tylna Ściana",pt:"Parede Traseira",es:"Pared Posterior","zh-cn":"后墙"},icon:"Rear Wall.svg"},{_id:"barn",name:{en:"Barn",ru:"Амбар",de:"Scheune",fr:"Grange",it:"Fienile",nl:"Schuur",pl:"Stodoła",pt:"Celeiro",es:"Granero","zh-cn":"谷仓"},icon:"Barn.svg"},{_id:"sleeping_area",name:{en:"Sleeping Area",ru:"Спальное Место",de:"Schlafbereich",fr:"Coin Montagne",it:"Area Sleeping",nl:"Sleeping Area",pl:"Powierzchnia Spania",pt:"Sleeping Area",es:"Área De Dormir","zh-cn":"睡眠区"},icon:"Sleeping Area.svg"},{_id:"bedroom",name:{en:"Bedroom",ru:"Спальная Комната",de:"Schlafzimmer",fr:"Chambre",it:"Camera Da Letto",nl:"Slaapkamer",pl:"Sypialnia",pt:"Quarto",es:"Cuarto","zh-cn":"卧室"},icon:"Bedroom.svg"},{_id:"shed",name:{en:"Shed",ru:"Сбрасывать",de:"Schuppen",fr:"Hangar",it:"Capannone",nl:"Schuur",pl:"Budka",pt:"Cabana",es:"Cobertizo","zh-cn":"棚"},icon:"Shed.svg"},{_id:"swimming_pool",name:{en:"Swimming Pool",ru:"Плавательный Бассейн",de:"Schwimmbad",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"游泳池"},icon:"Swimming Pool.svg"},{_id:"dining",name:{en:"Dining",ru:"Обеденный",de:"Speis",fr:"À Manger",it:"Cenare",nl:"Dining",pl:"Jadalnia",pt:"Jantar",es:"Comida","zh-cn":"用餐"},icon:"Dining.svg"},{_id:"playroom",name:{en:"Playroom",ru:"Игровая Комната",de:"Spielzimmer",fr:"Salle De Jeux",it:"Stanza Dei Giochi",nl:"Speelkamer",pl:"Pokój Zabaw",pt:"Sala De Jogos",es:"Cuarto De Jugar","zh-cn":"游戏室"},icon:"Playroom.svg"},{_id:"stairway",name:{en:"Stairway",ru:"Лестница",de:"Treppe",fr:"Escalier",it:"Scala",nl:"Trap",pl:"Klatka Schodowa",pt:"Escada",es:"Escalera","zh-cn":"楼梯"},icon:"Stairway.svg"},{_id:"equipment_room",name:{en:"Equipment Room",ru:"Оборудование Номера",de:"Technikraum",fr:"Salle D'Équipement",it:"Stanza Degli Attrezzi",nl:"Technische Ruimte",pl:"Wyposażenie Pokoi",pt:"Sala De Equipamentos",es:"Cuarto De Equipos","zh-cn":"机房"},icon:"Equipment Room.svg"},{_id:"terrace",name:{en:"Terrace",ru:"Терраса",de:"Terrasse",fr:"Terrasse",it:"Terrazza",nl:"Terras",pl:"Taras",pt:"Terraço",es:"Terraza","zh-cn":"阳台"},icon:"Terrace.svg"},{_id:"toilet",name:{en:"Toilet",ru:"Туалет",de:"Toilette",fr:"Toilette",it:"Gabinetto",nl:"Toilet",pl:"Toaleta",pt:"Banheiro",es:"Inodoro","zh-cn":"洗手间"},icon:"Toilet.svg"},{_id:"stairwell",name:{en:"Stairwell",ru:"Лестничная клетка",de:"Treppenhaus",fr:"Cage D'Escalier",it:"Tromba Delle Scale",nl:"Trappenhuis",pl:"Klatka Schodowa",pt:"Caixa De Escada",es:"Hueco De Escalera","zh-cn":"楼梯间"},icon:"Stairwell.svg"},{_id:"locker_room",name:{en:"Locker Room",ru:"Камера Хранения",de:"Umkleideraum",fr:"Vestiaire",it:"Spogliatoio",nl:"Kleedkamer",pl:"Szatnia",pt:"Vestiário",es:"Vestuario","zh-cn":"更衣室"},icon:"Locker Room.svg"},{_id:"basement",name:{en:"Basement",ru:"Подвал",de:"Untergeschoss",fr:"Sous-Sol",it:"Seminterrato",nl:"Kelder",pl:"Piwnica",pt:"Porão",es:"Sótano","zh-cn":"地下室"},icon:"Basement.svg"},{_id:"front_yard",name:{en:"Front Yard",ru:"Передний Двор",de:"Vorgarten",fr:"Front Yard",it:"Cortile",nl:"Voortuin",pl:"Podwórko",pt:"Jardim Da Frente",es:"Patio Delantero","zh-cn":"前院"},icon:"Front Yard.svg"},{_id:"anteroom",name:{en:"Anteroom",ru:"Передняя",de:"Vorraum",fr:"Antichambre",it:"Anticamera",nl:"Voorkamer",pl:"Przedpokój",pt:"Ante-Sala",es:"Antesala","zh-cn":"接待室"},icon:"Anteroom.svg"},{_id:"washroom",name:{en:"Washroom",ru:"Уборная",de:"Waschraum",fr:"Toilettes",it:"Bagno",nl:"Waskamer",pl:"Umywalnia",pt:"Banheiro",es:"Baño","zh-cn":"卫生间"},icon:"Washroom.svg"},{_id:"wc",name:{en:"Wc",ru:"Туалет",de:"WC",fr:"Toilettes",it:"Bagno",nl:"Wc",pl:"Toaleta",pt:"Banheiro",es:"Wc","zh-cn":"厕所"},icon:"Wc.svg"},{_id:"workshop",name:{en:"Workshop",ru:"Мастерская",de:"Werkstatt",fr:"Atelier",it:"Laboratorio",nl:"Werkplaats",pl:"Warsztat",pt:"Oficina",es:"Taller","zh-cn":"作坊"},icon:"Workshop.svg"},{_id:"windscreen",name:{en:"Windscreen",ru:"Ветровое Стекло",de:"Windfang",fr:"Pare-Brise",it:"Parabrezza",nl:"Voorruit",pl:"Szyba Przednia",pt:"Pára-Brisas",es:"Parabrisas","zh-cn":"风档"},icon:"Windscreen.svg"},{_id:"living_area",name:{en:"Living Area",ru:"Жилая Площадь",de:"Wohnbereich",fr:"Salon",it:"Zona Giorno",nl:"Living Area",pl:"Powierzchnia Mieszkalna",pt:"Sala-De-Estar",es:"Sala De Estar","zh-cn":"生活区域"},icon:"Living Area.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"}];class Vxe extends f.Component{constructor(e){super(e),this.state={opened:!1,names:[],filter:"",icons:null,loading:!1,isAnyName:!1}}loadAllIcons(){this.state.loading||this.state.icons||this.setState({loading:!0},()=>{const e=[],t=[];if(this.props.icons){const i=this.props.icons.map((r,o)=>{let n;if(typeof r=="object"){if(n=r.icon||r.src||r.href||"",t[o]=typeof r.name=="object"?r.name[this.props.lang]||r.name.en||r._id||"":r.name||"",!t[o]){const a=n.split(".");a.pop(),t[o]=a[a.length-1]}}else n=r;return n?n.startsWith("data:")?(e[o]=n,Promise.resolve()):O.getSvg(n).then(a=>e[o]=a):Promise.resolve()});Promise.all(i).catch(r=>console.error(r)).then(()=>this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)}))}else{let i=this.props.onlyRooms||!this.props.onlyRooms&&!this.props.onlyDevices?Hxe:null;if(i&&(i.forEach(r=>{r.name&&typeof r.name=="object"&&(r.name=r.name[this.props.lang]||r.name.en||r._id),r.name=r.name||r._id}),i=i.filter((r,o)=>!(i!=null&&i.find((n,a)=>o!==a&&n.icon===r.icon&&n.name===r.name))),i.forEach((r,o)=>{t[o]=r.name,e[o]=`data:image/svg+xml;base64,${Fxe[r.icon.replace(/\.svg$/,"")]}`})),i=this.props.onlyDevices||!this.props.onlyRooms&&!this.props.onlyDevices?Gxe:null,i){const r=e.length;i&&i.forEach(o=>{o.name&&typeof o.name=="object"&&(o.name=o.name[this.props.lang]||o.name.en||o._id),o.name=o.name||o._id}),i=i.filter((o,n)=>!(i!=null&&i.find((a,c)=>n!==c&&a.icon===o.icon&&a.name===o.name))),i.forEach((o,n)=>{t[n+r]=o.name,e[n+r]=`data:image/svg+xml;base64,${axe[o.icon.replace(/\.svg$/,"")]}`})}this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)})}})}render(){return this.state.loading?M.createElement(j.CircularProgress,null):M.createElement(M.Fragment,null,M.createElement(j.Button,{color:"grey",variant:"outlined",title:this.props.t("ra_Select predefined icon"),onClick:()=>this.setState({opened:!0},()=>this.loadAllIcons()),style:{minWidth:40,marginRight:8}},"..."),this.state.opened?M.createElement(j.Dialog,{onClose:()=>this.setState({opened:!1}),open:!0},M.createElement(j.DialogTitle,null,this.props.t("ra_Select predefined icon"),this.state.isAnyName?M.createElement(j.TextField,{variant:"standard",margin:"dense",style:{marginLeft:20},value:this.state.filter,onChange:e=>this.setState({filter:e.target.value.toLowerCase()}),placeholder:this.props.t("ra_Filter"),slotProps:{input:{endAdornment:this.state.filter?M.createElement(j.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({filter:""})},M.createElement(LN,null)):void 0}}}):null),M.createElement(j.DialogContent,null,M.createElement("div",{style:{width:"100%",textAlign:"center"}},this.state.icons&&this.state.icons.map((e,t)=>!this.state.filter||this.state.names[t]&&this.state.names[t].toLowerCase().includes(this.state.filter)?M.createElement(j.Tooltip,{title:this.state.names[t]||"",key:t,slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>this.setState({opened:!1},()=>{const i=this.props.onSelect||this.props.onChange;i&&i(e)}),size:"large"},M.createElement(me,{src:e,alt:t.toString(),style:{width:32,height:32,borderRadius:5}}))):null))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({opened:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Close")))):null)}}const Ot={formContainer:{display:"flex",justifyContent:"left",alignItems:"center"},formControl:{display:"flex",padding:24,flexGrow:1e3},divContainer:{width:64,height:32,whiteSpace:"nowrap",lineHeight:"32px",marginRight:8},dragField:{textAlign:"center",display:"table",minHeight:90,width:"calc(100% - 60px)",border:"2px dashed #777",borderRadius:10,padding:4},formIcon:{margin:10,opacity:.6},text:{display:"table-cell",verticalAlign:"middle"}};function G3e(s){var a,c,l,N;const e=s.icon,t=s.onChange,i=f.useCallback(u=>{const L=new FileReader;L.addEventListener("load",()=>t(L.result),!1),u[0]&&L.readAsDataURL(u[0])},[t]),{getRootProps:r,getInputProps:o,isDragActive:n}=lL({onDrop:i});return M.createElement("div",{style:Ot.formContainer},e?M.createElement(e,{style:Ot.formIcon}):null,M.createElement(j.FormControl,{variant:"standard",style:{...Ot.formControl,padding:3}},M.createElement(j.InputLabel,{shrink:!0,sx:(a=s.customStyles)!=null&&a.label?{"&.MuiInputLabel-root":s.customStyles.label}:void 0,classes:{root:(c=s.customClasses)==null?void 0:c.label}},s.label),M.createElement("div",{style:Ot.formContainer},s.value?M.createElement("div",{style:Ot.divContainer},M.createElement(me,{style:{...s.previewStyle,...((l=s.customStyles)==null?void 0:l.icon)||void 0},src:s.value,className:O.clsx(s.previewClassName,(N=s.customClasses)==null?void 0:N.icon)}),!s.disabled&&M.createElement(j.IconButton,{style:{verticalAlign:"top"},title:h.t("ra_Clear icon"),size:"small",onClick:()=>s.onChange("")},M.createElement(LN,null))):!s.disabled&&M.createElement(Vxe,{icons:s.icons,onlyRooms:s.onlyRooms,onlyDevices:s.onlyDevices,onSelect:u=>s.onChange(u),t:h.t,lang:h.getLanguage()}),!s.disabled&&M.createElement("div",{...r(),style:{...Ot.dragField,...n?{backgroundColor:"rgba(0, 255, 0, 0.1)"}:{cursor:"pointer"}}},M.createElement("input",{...o()}),n?M.createElement("span",{style:Ot.text},h.t("ra_Drop the files here...")):M.createElement("span",{style:Ot.text},h.t("ra_Drag 'n' drop some files here, or click to select files"))))))}function Zxe(s){const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;return t!=null&&t.remove?t.remove():t&&e.removeChild(t),e.remove(),t}function Xxe(s){const e={};if(!s)return e;for(let t,i=0;io[1].toUpperCase()),e[t]=s[i].value}return e}class xr extends f.Component{svg;static REMOTE_SERVER=window.location.hostname.includes("iobroker.in");static REMOTE_PREFIX=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);constructor(e){var t;super(e),this.state={svg:!!((t=this.props.src)!=null&&t.startsWith("data:")),created:!0,color:this.props.color||"",src:this.props.src||"",imgError:!1,showError:!!this.props.showError},this.svg=this.state.svg&&this.state.src?this.getSvgFromData(this.state.src):null}static getDerivedStateFromProps(e,t){var o;const i={};let r=!1;return e&&t&&e.src!==t.src&&(i.src=e.src,i.svg=(o=e.src)==null?void 0:o.startsWith("data:"),i.created=!1,r=!0),e&&t&&e.color!==t.color&&(i.color=e.color,i.created=!1,r=!0),e&&t&&e.showError!==t.showError&&(i.showError=e.showError,r=!0),r?i:null}getSvgFromData(e){const t="data:image/svg+xml;base64,";if(!e.startsWith(t))return null;e=e.substring(t.length);try{e=atob(e);const i=Zxe(e),r=i.innerHTML,o=Xxe(i.attributes);return i.remove(),M.createElement(j.Box,{component:"svg",sx:this.props.sx,className:this.props.className,style:this.state.color?{color:this.state.color}:void 0,...o,dangerouslySetInnerHTML:{__html:r}})}catch{}return null}render(){if(this.state.svg)return this.state.created||setTimeout(()=>{this.svg=this.state.src?this.getSvgFromData(this.state.src):null,this.setState({created:!0})},50),this.svg;if(this.state.src){if(this.state.imgError||!this.state.src)return M.createElement(dM,{className:this.props.className});if(xr.REMOTE_SERVER&&!this.state.src.startsWith("http://")&&!this.state.src.startsWith("https://")){let e=(this.props.imagePrefix||"")+this.state.src;return e.startsWith("./")?e=xr.REMOTE_PREFIX+e.substring(2):e.startsWith("/")||(e=xr.REMOTE_PREFIX+e),M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:`https://remote-files.iobroker.in${e}`,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:(this.props.imagePrefix||"")+this.state.src,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return null}}function Kxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"},child:[]}]})(s)}function qxe(s){return Z({attr:{t:"1569683928793",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H212V212h200v200zM864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H612V212h200v200zM864 544H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z m-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function e_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"},child:[]}]})(s)}function t_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z"},child:[]}]})(s)}function s_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z"},child:[]}]})(s)}function i_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z"},child:[]}]})(s)}function r_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function o_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function n_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M24 5.25v13a.75.75 0 0 1-1.136.643L16.5 15.075v2.175A1.75 1.75 0 0 1 14.75 19h-13A1.75 1.75 0 0 1 0 17.25v-11C0 5.284.784 4.5 1.75 4.5h13c.966 0 1.75.784 1.75 1.75v2.175l6.364-3.818A.75.75 0 0 1 24 5.25Zm-9 1a.25.25 0 0 0-.25-.25h-13a.25.25 0 0 0-.25.25v11c0 .138.112.25.25.25h13a.25.25 0 0 0 .25-.25v-11Zm1.5 7.075 6 3.6V6.575l-6 3.6Z"},child:[]}]})(s)}function Ol(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M3.89,17.6c0-0.99,0.31-1.88,0.93-2.65s1.41-1.27,2.38-1.49c0.26-1.17,0.85-2.14,1.78-2.88c0.93-0.75,2-1.12,3.22-1.12 - c1.18,0,2.24,0.36,3.16,1.09c0.93,0.73,1.53,1.66,1.8,2.8h0.27c1.18,0,2.18,0.41,3.01,1.24s1.25,1.83,1.25,3 - c0,1.18-0.42,2.18-1.25,3.01s-1.83,1.25-3.01,1.25H8.16c-0.58,0-1.13-0.11-1.65-0.34S5.52,21,5.14,20.62 - c-0.38-0.38-0.68-0.84-0.91-1.36S3.89,18.17,3.89,17.6z M5.34,17.6c0,0.76,0.28,1.42,0.82,1.96s1.21,0.82,1.99,0.82h9.28 - c0.77,0,1.44-0.27,1.99-0.82c0.55-0.55,0.83-1.2,0.83-1.96c0-0.76-0.27-1.42-0.83-1.96c-0.55-0.54-1.21-0.82-1.99-0.82h-1.39 - c-0.1,0-0.15-0.05-0.15-0.15l-0.07-0.49c-0.1-0.94-0.5-1.73-1.19-2.35s-1.51-0.93-2.45-0.93c-0.94,0-1.76,0.31-2.46,0.94 - c-0.7,0.62-1.09,1.41-1.18,2.34l-0.07,0.42c0,0.1-0.05,0.15-0.16,0.15l-0.45,0.07c-0.72,0.06-1.32,0.36-1.81,0.89 - C5.59,16.24,5.34,16.87,5.34,17.6z M14.19,8.88c-0.1,0.09-0.08,0.16,0.07,0.21c0.43,0.19,0.79,0.37,1.08,0.55 - c0.11,0.03,0.19,0.02,0.22-0.03c0.61-0.57,1.31-0.86,2.12-0.86c0.81,0,1.5,0.27,2.1,0.81c0.59,0.54,0.92,1.21,0.99,2l0.09,0.64h1.42 - c0.65,0,1.21,0.23,1.68,0.7c0.47,0.47,0.7,1.02,0.7,1.66c0,0.6-0.21,1.12-0.62,1.57s-0.92,0.7-1.53,0.77c-0.1,0-0.15,0.05-0.15,0.16 - v1.13c0,0.11,0.05,0.16,0.15,0.16c1.01-0.06,1.86-0.46,2.55-1.19s1.04-1.6,1.04-2.6c0-1.06-0.37-1.96-1.12-2.7 - c-0.75-0.75-1.65-1.12-2.7-1.12h-0.15c-0.26-1-0.81-1.82-1.65-2.47c-0.83-0.65-1.77-0.97-2.8-0.97C16.28,7.29,15.11,7.82,14.19,8.88 - z`},child:[]}]})(s)}function a_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M4.37,14.62c0-0.24,0.08-0.45,0.25-0.62c0.17-0.16,0.38-0.24,0.6-0.24h2.04c0.23,0,0.42,0.08,0.58,0.25 - c0.15,0.17,0.23,0.37,0.23,0.61S8,15.06,7.85,15.23c-0.15,0.17-0.35,0.25-0.58,0.25H5.23c-0.23,0-0.43-0.08-0.6-0.25 - C4.46,15.06,4.37,14.86,4.37,14.62z M7.23,21.55c0-0.23,0.08-0.43,0.23-0.61l1.47-1.43c0.15-0.16,0.35-0.23,0.59-0.23 - c0.24,0,0.44,0.08,0.6,0.23s0.24,0.34,0.24,0.57c0,0.24-0.08,0.46-0.24,0.64L8.7,22.14c-0.41,0.32-0.82,0.32-1.23,0 - C7.31,21.98,7.23,21.78,7.23,21.55z M7.23,7.71c0-0.23,0.08-0.43,0.23-0.61C7.66,6.93,7.87,6.85,8.1,6.85 - c0.22,0,0.42,0.08,0.59,0.24l1.43,1.47c0.16,0.15,0.24,0.35,0.24,0.59c0,0.24-0.08,0.44-0.24,0.6s-0.36,0.24-0.6,0.24 - c-0.24,0-0.44-0.08-0.59-0.24L7.47,8.32C7.31,8.16,7.23,7.95,7.23,7.71z M9.78,14.62c0-0.93,0.23-1.8,0.7-2.6s1.1-1.44,1.91-1.91 - s1.67-0.7,2.6-0.7c0.7,0,1.37,0.14,2.02,0.42c0.64,0.28,1.2,0.65,1.66,1.12c0.47,0.47,0.84,1.02,1.11,1.66 - c0.27,0.64,0.41,1.32,0.41,2.02c0,0.94-0.23,1.81-0.7,2.61c-0.47,0.8-1.1,1.43-1.9,1.9c-0.8,0.47-1.67,0.7-2.61,0.7 - s-1.81-0.23-2.61-0.7c-0.8-0.47-1.43-1.1-1.9-1.9C10.02,16.43,9.78,15.56,9.78,14.62z M11.48,14.62c0,0.98,0.34,1.81,1.03,2.5 - c0.68,0.69,1.51,1.04,2.49,1.04s1.81-0.35,2.5-1.04s1.04-1.52,1.04-2.5c0-0.96-0.35-1.78-1.04-2.47c-0.69-0.68-1.52-1.02-2.5-1.02 - c-0.97,0-1.8,0.34-2.48,1.02C11.82,12.84,11.48,13.66,11.48,14.62z M14.14,22.4c0-0.24,0.08-0.44,0.25-0.6s0.37-0.24,0.6-0.24 - c0.24,0,0.45,0.08,0.61,0.24s0.24,0.36,0.24,0.6v1.99c0,0.24-0.08,0.45-0.25,0.62c-0.17,0.17-0.37,0.25-0.6,0.25 - s-0.44-0.08-0.6-0.25c-0.17-0.17-0.25-0.38-0.25-0.62V22.4z M14.14,6.9V4.86c0-0.23,0.08-0.43,0.25-0.6C14.56,4.09,14.76,4,15,4 - s0.43,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6V6.9c0,0.23-0.08,0.42-0.25,0.58S15.23,7.71,15,7.71s-0.44-0.08-0.6-0.23 - S14.14,7.13,14.14,6.9z M19.66,20.08c0-0.23,0.08-0.42,0.23-0.56c0.15-0.16,0.34-0.23,0.56-0.23c0.24,0,0.44,0.08,0.6,0.23 - l1.46,1.43c0.16,0.17,0.24,0.38,0.24,0.61c0,0.23-0.08,0.43-0.24,0.59c-0.4,0.31-0.8,0.31-1.2,0l-1.42-1.42 - C19.74,20.55,19.66,20.34,19.66,20.08z M19.66,9.16c0-0.25,0.08-0.45,0.23-0.59l1.42-1.47c0.17-0.16,0.37-0.24,0.59-0.24 - c0.24,0,0.44,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6c0,0.25-0.08,0.46-0.24,0.62l-1.46,1.43c-0.18,0.16-0.38,0.24-0.6,0.24 - c-0.23,0-0.41-0.08-0.56-0.24S19.66,9.4,19.66,9.16z M21.92,14.62c0-0.24,0.08-0.44,0.24-0.62c0.16-0.16,0.35-0.24,0.57-0.24h2.02 - c0.23,0,0.43,0.09,0.6,0.26c0.17,0.17,0.26,0.37,0.26,0.6s-0.09,0.43-0.26,0.6c-0.17,0.17-0.37,0.25-0.6,0.25h-2.02 - c-0.23,0-0.43-0.08-0.58-0.25S21.92,14.86,21.92,14.62z`},child:[]}]})(s)}function M_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.38,21.83c0-0.3,0.1-0.55,0.29-0.76c0.19-0.21,0.43-0.31,0.7-0.31v-0.02l13.16,0.04c0.06-0.01,0.1-0.02,0.1-0.02 - c0.27,0.01,0.51,0.12,0.7,0.33c0.19,0.21,0.29,0.47,0.28,0.77c0,0.3-0.1,0.55-0.29,0.76c-0.19,0.21-0.43,0.31-0.7,0.31v0.01 - L8.59,22.9c-0.1,0.01-0.17,0.02-0.22,0.02c-0.28-0.01-0.51-0.11-0.7-0.32C7.47,22.39,7.37,22.13,7.38,21.83z M8.2,16.37 - c-0.01-0.43,0.04-0.93,0.16-1.52c0.06-0.3,0.2-0.76,0.44-1.37c0.02-0.05,0.07-0.14,0.13-0.28c0.01,0.02,0.03,0.03,0.04,0.05 - s0.02,0.02,0.02,0.03c0.11,0.44,0.27,0.84,0.49,1.2c0.21,0.32,0.48,0.56,0.82,0.69c0.26,0.11,0.63,0.17,1.1,0.18 - c0.02,0,0.05,0,0.08,0c0.03,0,0.06,0,0.08,0c-0.33-0.33-0.59-0.67-0.79-1c-0.3-0.52-0.49-1.12-0.57-1.81 - c-0.06-0.54-0.03-1.19,0.09-1.96c0.02-0.15,0.12-0.49,0.29-1.01c0.15-0.47,0.36-0.9,0.64-1.28C11.54,7.8,12,7.3,12.61,6.78 - c0.37-0.31,0.89-0.67,1.56-1.07c0.07-0.04,0.18-0.11,0.35-0.19c0,0.02,0,0.04,0,0.05s0,0.03,0,0.04v0.02 - c-0.24,0.57-0.41,1.15-0.49,1.73c-0.06,0.53,0.02,1.02,0.24,1.48c0.17,0.36,0.48,0.75,0.92,1.15c0.09,0.09,0.29,0.29,0.6,0.58 - c0.3,0.29,0.54,0.52,0.7,0.68l0.25,0.25c0.26-0.38,0.41-0.83,0.44-1.35c0.04-0.55,0-1.15-0.14-1.8c0-0.01,0-0.04,0.01-0.11 - c0.02,0.02,0.13,0.1,0.3,0.24c0.56,0.5,0.98,0.95,1.28,1.34c0.48,0.62,0.83,1.21,1.06,1.74c0.19,0.46,0.31,0.92,0.38,1.4 - c0.06,0.42,0.08,0.77,0.07,1.05c-0.01,0.78-0.1,1.43-0.25,1.96c-0.07,0.21-0.13,0.38-0.19,0.52c0.25-0.07,0.47-0.16,0.65-0.26 - c0.25-0.16,0.45-0.37,0.6-0.66c0.16-0.29,0.29-0.62,0.38-0.98c0-0.01,0.01-0.03,0.03-0.05c0.01,0.02,0.02,0.05,0.05,0.09 - c0.02,0.04,0.04,0.07,0.05,0.1c0.13,0.31,0.22,0.63,0.27,0.97c0.08,0.38,0.1,0.75,0.08,1.13c-0.02,0.29-0.07,0.56-0.16,0.81 - c-0.08,0.24-0.16,0.43-0.22,0.58c-0.19,0.38-0.39,0.71-0.62,0.98c-0.06,0.07-0.11,0.13-0.14,0.16H9.67 - c-0.01-0.01-0.03-0.03-0.07-0.06s-0.06-0.05-0.08-0.07C9.26,18.98,8.98,18.6,8.7,18.1c-0.08-0.15-0.18-0.38-0.29-0.69 - C8.29,17.1,8.22,16.75,8.2,16.37z`},child:[]}]})(s)}function c_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.56,17.19c0-0.88,0.24-1.89,0.72-3.03s1.1-2.25,1.86-3.31c1.56-2.06,2.92-3.62,4.06-4.67l0.75-0.72 - c0.25,0.26,0.53,0.5,0.83,0.72c0.41,0.42,1.04,1.11,1.88,2.09s1.57,1.85,2.17,2.65c0.71,1.01,1.32,2.1,1.81,3.25 - s0.74,2.16,0.74,3.03c0,1-0.19,1.95-0.58,2.86c-0.39,0.91-0.91,1.7-1.57,2.36c-0.66,0.66-1.45,1.19-2.37,1.58 - c-0.92,0.39-1.89,0.59-2.91,0.59c-1,0-1.95-0.19-2.86-0.57c-0.91-0.38-1.7-0.89-2.36-1.55c-0.66-0.65-1.19-1.44-1.58-2.35 - S7.56,18.23,7.56,17.19z M9.82,14.26c0,0.83,0.17,1.49,0.52,1.99c0.35,0.49,0.88,0.74,1.59,0.74c0.72,0,1.25-0.25,1.61-0.74 - c0.35-0.49,0.53-1.15,0.54-1.99c-0.01-0.84-0.19-1.5-0.54-2c-0.35-0.49-0.89-0.74-1.61-0.74c-0.71,0-1.24,0.25-1.59,0.74 - C9.99,12.76,9.82,13.42,9.82,14.26z M11.39,14.26c0-0.15,0-0.27,0-0.35s0.01-0.19,0.02-0.33c0.01-0.14,0.02-0.25,0.05-0.32 - s0.05-0.16,0.09-0.24c0.04-0.08,0.09-0.15,0.15-0.18c0.07-0.04,0.14-0.06,0.23-0.06c0.14,0,0.25,0.04,0.33,0.12s0.14,0.21,0.17,0.38 - c0.03,0.18,0.05,0.32,0.06,0.45s0.01,0.3,0.01,0.52c0,0.23,0,0.4-0.01,0.52c-0.01,0.12-0.03,0.27-0.06,0.45 - c-0.03,0.17-0.09,0.3-0.17,0.38s-0.19,0.12-0.33,0.12c-0.09,0-0.16-0.02-0.23-0.06c-0.07-0.04-0.12-0.1-0.15-0.18 - c-0.04-0.08-0.07-0.17-0.09-0.24c-0.02-0.08-0.04-0.19-0.05-0.32c-0.01-0.14-0.02-0.25-0.02-0.32S11.39,14.41,11.39,14.26z - M11.98,22.01h1.32l4.99-10.74h-1.35L11.98,22.01z M16.28,19.02c0.01,0.84,0.2,1.5,0.55,2c0.35,0.49,0.89,0.74,1.6,0.74 - c0.72,0,1.25-0.25,1.6-0.74c0.35-0.49,0.52-1.16,0.53-2c-0.01-0.84-0.18-1.5-0.53-1.99c-0.35-0.49-0.88-0.74-1.6-0.74 - c-0.71,0-1.25,0.25-1.6,0.74C16.47,17.52,16.29,18.18,16.28,19.02z M17.85,19.02c0-0.23,0-0.4,0.01-0.52 - c0.01-0.12,0.03-0.27,0.06-0.45s0.09-0.3,0.17-0.38s0.19-0.12,0.33-0.12c0.09,0,0.17,0.02,0.24,0.06c0.07,0.04,0.12,0.1,0.16,0.19 - c0.04,0.09,0.07,0.17,0.1,0.24s0.04,0.18,0.05,0.32l0.01,0.32l0,0.34c0,0.16,0,0.28,0,0.35l-0.01,0.32l-0.05,0.32l-0.1,0.24 - l-0.16,0.19l-0.24,0.06c-0.14,0-0.25-0.04-0.33-0.12s-0.14-0.21-0.17-0.38c-0.03-0.18-0.05-0.33-0.06-0.45S17.85,19.25,17.85,19.02z - `},child:[]}]})(s)}function u_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M6.34,12.48c0-0.94,0.3-1.78,0.89-2.52s1.34-1.21,2.25-1.41C9.73,7.43,10.3,6.5,11.2,5.78s1.92-1.08,3.08-1.08 - c1.12,0,2.13,0.35,3.02,1.05c0.89,0.7,1.46,1.6,1.73,2.69h0.27c1.12,0,2.08,0.39,2.88,1.18c0.79,0.78,1.19,1.74,1.19,2.85 - c0,0.6-0.12,1.17-0.37,1.7c-0.25,0.53-0.59,0.99-1.03,1.37v0.03c0,0.59-0.19,1.12-0.56,1.59c-0.37,0.47-0.84,0.76-1.4,0.89 - c-0.14,0.62-0.45,1.15-0.91,1.58c-0.46,0.43-1.01,0.7-1.63,0.8c0.29,0.34,0.43,0.72,0.43,1.13c0,0.48-0.17,0.89-0.51,1.24 - c-0.34,0.34-0.75,0.52-1.23,0.52c-0.48,0-0.89-0.17-1.23-0.52c-0.34-0.34-0.51-0.76-0.51-1.24c0-0.19,0.03-0.38,0.1-0.57h-0.1 - c-0.58,0-1.08-0.21-1.5-0.63c-0.42-0.42-0.63-0.92-0.63-1.5c0-0.4,0.1-0.76,0.3-1.07c-0.52-0.29-0.89-0.7-1.12-1.25h-1.28v-0.01 - c-1.07-0.07-1.98-0.49-2.73-1.27S6.34,13.56,6.34,12.48z M7.74,12.23c0,0.8,0.28,1.48,0.84,2.04s1.24,0.84,2.03,0.84 - c0.49,0,0.95-0.11,1.37-0.34c0.12,0.74,0.47,1.36,1.04,1.86s1.25,0.74,2.02,0.74c0.87,0,1.61-0.31,2.22-0.92 - c0.41,0.48,0.92,0.71,1.54,0.71c0.57,0,1.05-0.2,1.46-0.6c0.4-0.4,0.6-0.89,0.6-1.46c0.4-0.27,0.72-0.61,0.95-1.04 - c0.23-0.42,0.35-0.88,0.35-1.37c0-0.79-0.28-1.47-0.85-2.02c-0.57-0.55-1.25-0.83-2.05-0.83c-0.56,0-1.07,0.15-1.53,0.44 - c0.06-0.24,0.08-0.51,0.08-0.79c0-0.96-0.34-1.78-1.03-2.46c-0.69-0.68-1.52-1.01-2.49-1.01c-0.94,0-1.75,0.33-2.43,0.97 - s-1.04,1.44-1.07,2.37c-0.02,0-0.05,0-0.08,0c-0.04,0-0.07,0-0.09,0c-0.79,0-1.46,0.28-2.03,0.84S7.74,11.45,7.74,12.23z`},child:[]}]})(s)}function l_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M9.91,19.56c0-0.85,0.2-1.64,0.59-2.38s0.94-1.35,1.65-1.84V5.42c0-0.8,0.27-1.48,0.82-2.03S14.2,2.55,15,2.55 - c0.81,0,1.49,0.28,2.04,0.83c0.55,0.56,0.83,1.23,0.83,2.03v9.92c0.71,0.49,1.25,1.11,1.64,1.84s0.58,1.53,0.58,2.38 - c0,0.92-0.23,1.78-0.68,2.56s-1.07,1.4-1.85,1.85s-1.63,0.68-2.56,0.68c-0.92,0-1.77-0.23-2.55-0.68s-1.4-1.07-1.86-1.85 - S9.91,20.48,9.91,19.56z M11.67,19.56c0,0.93,0.33,1.73,0.98,2.39c0.65,0.66,1.44,0.99,2.36,0.99c0.93,0,1.73-0.33,2.4-1 - s1.01-1.46,1.01-2.37c0-0.62-0.16-1.2-0.48-1.73c-0.32-0.53-0.76-0.94-1.32-1.23l-0.28-0.14c-0.1-0.04-0.15-0.14-0.15-0.29V5.42 - c0-0.32-0.11-0.59-0.34-0.81C15.62,4.4,15.34,4.29,15,4.29c-0.32,0-0.6,0.11-0.83,0.32c-0.23,0.21-0.34,0.48-0.34,0.81v10.74 - c0,0.15-0.05,0.25-0.14,0.29l-0.27,0.14c-0.55,0.29-0.98,0.7-1.29,1.23C11.82,18.35,11.67,18.92,11.67,19.56z M12.45,19.56 - c0,0.71,0.24,1.32,0.73,1.82s1.07,0.75,1.76,0.75s1.28-0.25,1.79-0.75c0.51-0.5,0.76-1.11,0.76-1.81c0-0.63-0.22-1.19-0.65-1.67 - c-0.43-0.48-0.96-0.77-1.58-0.85V9.69c0-0.06-0.03-0.13-0.1-0.19c-0.07-0.07-0.14-0.1-0.22-0.1c-0.09,0-0.16,0.03-0.21,0.08 - c-0.05,0.06-0.08,0.12-0.08,0.21v7.34c-0.61,0.09-1.13,0.37-1.56,0.85C12.66,18.37,12.45,18.92,12.45,19.56z`},child:[]}]})(s)}function N_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"},child:[]}]})(s)}function L_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"},child:[]},{tag:"path",attr:{d:"M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"},child:[]}]})(s)}function El(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"},child:[]}]})(s)}function g_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M8 12a4 4 0 0 0 4 4m0 -8a4 4 0 0 0 -4 4"},child:[]},{tag:"path",attr:{d:"M3 12h1"},child:[]},{tag:"path",attr:{d:"M12 3v1"},child:[]},{tag:"path",attr:{d:"M12 20v1"},child:[]},{tag:"path",attr:{d:"M5.6 5.6l.7 .7"},child:[]},{tag:"path",attr:{d:"M6.3 17.7l-.7 .7"},child:[]},{tag:"path",attr:{d:"M20 7l-3 5h4l-3 5"},child:[]}]})(s)}function j_e(s){return Z({attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M224,127.17a96.48,96.48,0,0,1-2.39,22.18A24,24,0,0,1,198.21,168H152a24,24,0,0,0-24,24,24,24,0,0,1-32,22.61C58.73,201.44,32,169.81,32,128a96,96,0,0,1,95-96C179.84,31.47,223.55,74.35,224,127.17Z",opacity:"0.2"},child:[]},{tag:"path",attr:{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"},child:[]}]})(s)}function y_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M296,320H216a24,24,0,0,0,0,48h80a24,24,0,0,0,0-48Zm0,32H216a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"}),M.createElement("path",{d:"M68.071,123.492c22.578-13.918,52.2-25.229,85.674-32.71l-3.49-15.615c-35.688,7.977-66.163,19.653-90.58,34.705-17.914,11.043-32.041,23.643-41.99,37.451l12.98,9.354C39.376,144.588,51.961,133.423,68.071,123.492Z"}),M.createElement("path",{d:"M435.533,137.112C409.439,121.027,374,108.967,332.845,102.144,322.474,87,288.213,80,256,80s-66.474,7-76.845,22.144C138,108.967,102.561,121.027,76.467,137.112,47.376,155.045,32,176.792,32,200v96c0,29,24.155,55.7,68.016,75.193C141.813,389.77,197.209,400,256,400s114.187-10.23,155.984-28.807C455.845,351.7,480,325,480,296V200C480,176.792,464.624,155.045,435.533,137.112ZM177.64,151.23C185.676,168.192,221.98,176,256,176s70.324-7.808,78.36-24.77c21.862,4.212,41.832,10.19,58.13,17.44C422.343,181.941,432,195.509,432,200s-9.657,18.059-39.51,31.33C357.224,247.008,307.475,256,256,256s-101.224-8.992-136.49-24.67C89.657,218.059,80,204.491,80,200s9.657-18.059,39.512-31.331C135.808,161.42,155.778,155.442,177.64,151.23Zm14.36-19c15.6,8,40.35,11.773,64,11.773s48.4-3.775,64-11.773V144c0,.687-2.715,5.08-15.618,9.381C291.577,157.649,274.4,160,256,160s-35.577-2.351-48.382-6.619C194.715,149.08,192,144.687,192,144Zm15.618-29.608C220.423,98.351,237.605,96,256,96s35.577,2.351,48.382,6.619C317.285,106.92,320,111.313,320,112s-2.715,5.08-15.618,9.381C291.577,125.649,274.4,128,256,128s-35.577-2.351-48.382-6.619C194.715,117.08,192,112.687,192,112S194.715,106.92,207.618,102.619ZM176,118.937v16.319c-23.589,4.453-45.254,10.9-62.99,18.794C82.779,167.489,64,185.1,64,200s18.779,32.511,49.01,45.95C150.249,262.505,202.367,272,256,272s105.751-9.5,142.99-26.05C429.221,232.511,448,214.9,448,200s-18.779-32.511-49.008-45.95c-17.738-7.89-39.4-14.341-62.992-18.794V118.937C411.852,132.7,464,165.41,464,200c0,21.967-21.328,44.044-58.516,60.572C365.688,278.259,312.6,288,256,288s-109.688-9.741-149.484-27.428C69.328,244.044,48,221.967,48,200,48,165.41,100.148,132.7,176,118.937ZM464,296c0,21.967-21.327,44.044-58.514,60.572C365.689,374.259,312.6,384,256,384s-109.689-9.741-149.486-27.428C69.327,340.044,48,317.967,48,296V239.371c11.522,13.444,29.066,25.621,52.018,35.822C141.814,293.77,197.211,304,256,304s114.186-10.23,155.982-28.807c22.952-10.2,40.5-22.378,52.018-35.822Z"}),M.createElement("path",{d:"M418.482,385.814C374.684,405.28,316.979,416,256,416a488.01,488.01,0,0,1-78.705-6.23l-2.59,15.789A504.064,504.064,0,0,0,256,432c63.169,0,123.181-11.21,168.981-31.565q1.3-.576,2.572-1.16l-6.655-14.55Q419.7,385.274,418.482,385.814Z"}),M.createElement("path",{d:"M436.123,377.062l7.754,14c5.883-3.259,11.492-6.728,16.674-10.31l-9.1-13.161C446.7,370.871,441.546,374.059,436.123,377.062Z"}),M.createElement("rect",{x:"248",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"280",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"216",y:"192",width:"16",height:"16"})))}function T_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M298.667 298.667c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32c0 17.642 14.357 32 32 32zm0-42.667c5.867 0 10.667 4.779 10.667 10.667s-4.8 10.667-10.667 10.667S288 272.555 288 266.667 292.8 256 298.667 256z"}),M.createElement("path",{fill:"currentColor",d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667c-.597 0-1.131.256-1.707.341-.555.085-1.088.149-1.621.32-.939.32-1.749.789-2.56 1.344-.32.213-.704.277-1.003.533-.107.085-.149.213-.256.32-.768.704-1.365 1.579-1.899 2.496-.213.341-.512.619-.661.981-.597 1.345-.96 2.774-.96 4.332v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h42.667c.576 0 1.173-.043 1.749-.149l256-42.667a10.672 10.672 0 0 0 8.917-10.517V53.333c0-5.227-3.776-9.664-8.917-10.517L235.541 21.333h159.125v480c0 5.888 4.779 10.667 10.667 10.667H448c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-96-428.31v387.264l-234.667 39.125V23.253L352 62.357z"}))}function fl(s){return M.createElement("svg",{viewBox:"0 0 512.006 512.006",...s},M.createElement("path",{d:"M502.379 211.249c0 74.656-60.52 135.176-135.176 135.176-6.469.01-12.919-.473-19.311-1.448-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825a142.128 142.128 0 0 1 19.311-1.352c74.656 0 135.176 60.521 135.176 135.177z",fill:"#c52828"}),M.createElement("path",{d:"M463.757 211.249c-.029 67.173-49.378 124.131-115.865 133.728-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825 66.516 9.598 115.875 66.613 115.865 133.825z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M380.527 230.56h-26.649a8.208 8.208 0 0 1-8.4-7.242l-7.242-90.472c-.212-4.47 3.235-8.275 7.705-8.497.232-.01.463-.01.695 0h41.036a8.105 8.105 0 0 1 8.4 7.802c.01.232.01.463 0 .695l-7.242 90.472c-.501 4.181-4.093 7.319-8.303 7.242zM362.085 269.181h10.235c7.84 0 14.194 6.353 14.194 14.194v10.235c0 7.84-6.353 14.194-14.194 14.194h-10.235c-7.84 0-14.194-6.353-14.194-14.194v-10.235c.001-7.84 6.354-14.194 14.194-14.194z"})),M.createElement("path",{d:"M308.015 332.714a132.057 132.057 0 0 1-24.332-15.256 138.367 138.367 0 0 1-25.587-26.456 134.123 134.123 0 0 1-26.07-79.754 136.453 136.453 0 0 1 3.09-28.966 129.801 129.801 0 0 1 9.655-28.966c-24.428-39.201-50.691-78.113-85.547-108.334-2.607-2.221-5.214-4.442-7.917-6.566a161.051 161.051 0 0 0-14.387-10.621 80.965 80.965 0 0 0-13.807-7.145c1.641 7.338 3.476 14.773 4.731 22.208a180.355 180.355 0 0 1 2.993 26.939v7.145a192.012 192.012 0 0 1-60.829 139.521 202.647 202.647 0 0 0-43.836 52.719 149.063 149.063 0 0 0-6.566 120.017 152.006 152.006 0 0 0 22.208 40.167 164.926 164.926 0 0 0 106.21 61.891 86.874 86.874 0 0 1-44.801-32.249 51.315 51.315 0 0 1-3.669-5.6 77.46 77.46 0 0 1-6.469-13.325 79.464 79.464 0 0 1 3.766-63.726 111.914 111.914 0 0 1 23.463-28.387 101.983 101.983 0 0 0 32.442-74.25v-3.862a97.875 97.875 0 0 0-4.731-27.132 112.539 112.539 0 0 1 10.911 6.566 108.053 108.053 0 0 1 30.222 30.801 100.963 100.963 0 0 1 15.835 46.443v8.4a100.92 100.92 0 0 1-18.249 57.933c22.98 13.035 38.622-8.593 44.994-28.966a60.067 60.067 0 0 0 2.51-12.842 88.458 88.458 0 0 1 28.966 61.312v5.214c-2.704 33.678-25.346 62.451-57.45 72.995 73.353-11.789 128.717-72.889 133.245-147.053a131.977 131.977 0 0 1-30.994-10.815z",fill:"#f57c00"}),M.createElement("path",{d:"M263.117 417.489v-5.214a88.462 88.462 0 0 0-28.966-61.312 60.129 60.129 0 0 1-2.51 12.842c-5.986 20.47-22.014 42.098-44.994 28.966a100.923 100.923 0 0 0 18.249-57.933v-.966-7.338a100.971 100.971 0 0 0-15.835-46.443 108.027 108.027 0 0 0-30.222-30.801 108.949 108.949 0 0 0-39.877-35.532 97.838 97.838 0 0 1 4.731 27.132v3.862a101.988 101.988 0 0 1-32.442 74.25 111.924 111.924 0 0 0-23.366 28.387 79.491 79.491 0 0 0-3.573 63.726 83.948 83.948 0 0 0 35.436 42.291 51.315 51.315 0 0 0 3.669 5.6 86.886 86.886 0 0 0 44.415 32.249 164.927 164.927 0 0 1-106.21-61.892 152.082 152.082 0 0 1-22.014-40.167 149.055 149.055 0 0 1 6.564-120.015 202.714 202.714 0 0 1 44.029-53.202A192.012 192.012 0 0 0 131.03 76.458v-7.145a180.486 180.486 0 0 0-2.993-26.939c-1.255-7.435-3.09-14.869-4.731-22.208a80.965 80.965 0 0 1 13.807 7.145 159.446 159.446 0 0 1 14.773 10.718c2.704 2.124 5.311 4.345 7.917 6.566 34.856 30.222 61.119 69.133 85.547 108.334a129.75 129.75 0 0 0-9.655 28.966 136.634 136.634 0 0 0-3.669 29.353 134.116 134.116 0 0 0 26.07 79.754 138.396 138.396 0 0 0 25.587 26.456 132.164 132.164 0 0 0 24.332 15.256 152.203 152.203 0 0 1-44.898 84.775z",fill:"#ff9801"}),M.createElement("path",{d:"M147.831 500.912h-1.448c-61.756-8.7-113.963-50.15-136.432-108.334a158.725 158.725 0 0 1 7.338-127.355 212.528 212.528 0 0 1 45.96-55.809 181.787 181.787 0 0 0 57.933-132.473v-6.759a171.298 171.298 0 0 0-2.8-25.587c-.966-5.697-2.221-11.2-3.476-16.704l-1.159-5.117c-1.178-5.204 2.076-10.37 7.28-11.548a9.663 9.663 0 0 1 5.948.541 89.473 89.473 0 0 1 15.449 8.014 172.47 172.47 0 0 1 15.449 11.2c41.036 32.732 70.871 77.244 95.589 117.314a9.673 9.673 0 0 1 .483 9.655 121.056 121.056 0 0 0-9.655 26.842 128.158 128.158 0 0 0-2.607 26.456c.01 59.198 41.374 110.333 99.258 122.721a9.655 9.655 0 0 1 7.628 9.655c-3.186 77.244-61.216 141.742-141.163 156.129-5.253.927-10.254-2.588-11.181-7.84a9.65 9.65 0 0 1 6.353-10.795c29.99-9.8 50.517-37.492 51.174-69.037a67.618 67.618 0 0 0-14.387-40.746 56.78 56.78 0 0 1-24.139 31.091 33.122 33.122 0 0 1-33.408-1.448c-4.644-2.626-6.276-8.516-3.659-13.16.145-.261.299-.502.473-.743a91.187 91.187 0 0 0 16.511-52.429v-.772a90.743 90.743 0 0 0-14.58-48.277 98.107 98.107 0 0 0-19.311-21.532v9.945a111.13 111.13 0 0 1-35.436 81.299 103.445 103.445 0 0 0-21.532 25.78 69.873 69.873 0 0 0-3.09 56.002 76.304 76.304 0 0 0 49.533 44.512c5.33.801 9.009 5.774 8.207 11.104-.801 5.328-5.774 8.997-11.103 8.205zM137.113 39.478v1.738a188.136 188.136 0 0 1 3.09 28.194v7.435A200.926 200.926 0 0 1 76.38 223.318a192.998 192.998 0 0 0-42.098 50.498 139.414 139.414 0 0 0-6.469 111.907 148.682 148.682 0 0 0 65.561 76.568 89.522 89.522 0 0 1-15.159-49.726 91.25 91.25 0 0 1 9.655-40.167 119.46 119.46 0 0 1 25.394-31.091 92.026 92.026 0 0 0 29.449-67.588v-3.09a88.799 88.799 0 0 0-4.248-24.911 9.653 9.653 0 0 1 6.237-12.147 9.638 9.638 0 0 1 7.473.657 119.392 119.392 0 0 1 44.705 40.649 110.062 110.062 0 0 1 17.669 58.898v1.159a110.343 110.343 0 0 1-13.035 52.139 12.555 12.555 0 0 0 4.731-1.448c9.655-5.31 17.283-22.497 18.345-35.436.434-5.31 5.088-9.269 10.409-8.844a9.61 9.61 0 0 1 6.006 2.761 95.586 95.586 0 0 1 32.153 68.168 89.528 89.528 0 0 1-13.711 47.408 146.774 146.774 0 0 0 69.133-108.817c-62.77-17.37-106.22-74.492-106.21-139.618a146.655 146.655 0 0 1 3.283-30.994 139.876 139.876 0 0 1 8.497-26.263c-23.27-37.077-51.27-78.402-88.541-108.045a113.049 113.049 0 0 0-8.496-6.467z"}),M.createElement("path",{d:"M367.203 356.081a144.841 144.841 0 0 1-89.506-30.994 143.882 143.882 0 0 1-55.326-113.838 146.655 146.655 0 0 1 3.283-30.994 140.652 140.652 0 0 1 10.814-31.091c23.965-50.498 74.839-82.699 130.735-82.747 79.986.019 144.813 64.875 144.803 144.861a144.848 144.848 0 0 1-55.297 113.809 143.543 143.543 0 0 1-89.506 30.994zm0-270.353c-48.47.019-92.586 27.943-113.355 71.74a121.83 121.83 0 0 0-9.655 26.939 127.805 127.805 0 0 0-2.51 26.842c.01 59.198 41.374 110.333 99.258 122.721a125.763 125.763 0 0 0 26.263 2.8c69.326 0 125.521-56.195 125.521-125.521S436.519 85.728 367.203 85.728z"}),M.createElement("path",{d:"M380.527 240.215h-26.649c-9.279.097-17.109-6.894-18.056-16.125l-7.242-90.085a17.201 17.201 0 0 1 4.538-13.035 18.38 18.38 0 0 1 13.518-5.89h41.036a18.375 18.375 0 0 1 13.518 5.89 17.204 17.204 0 0 1 4.635 13.035l-7.242 90.472c-1.139 9.076-8.912 15.854-18.056 15.738zm-25.49-19.311h24.525l6.952-86.899h-38.622l7.145 86.899zM372.32 317.459h-10.235c-13.151-.048-23.801-10.698-23.849-23.849v-10.235c.048-13.151 10.698-23.801 23.849-23.849h10.138c13.189 0 23.888 10.66 23.946 23.849v10.138c0 13.18-10.669 23.888-23.849 23.946zm-10.138-38.622a4.635 4.635 0 0 0-4.538 4.538v10.138a4.635 4.635 0 0 0 4.538 4.538h10.138a4.635 4.635 0 0 0 4.538-4.538v-10.138a4.635 4.635 0 0 0-4.538-4.538h-10.138z"}))}function xl(s){return M.createElement("svg",{viewBox:"0 0 512.002 512.002",...s},M.createElement("path",{d:"M481.929 324.35c0 65.951-53.464 119.415-119.415 119.415a111.938 111.938 0 0 1-17.059-1.279c-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221a125.333 125.333 0 0 1 17.059-1.194c65.951-.001 119.415 53.462 119.415 119.414z",fill:"#c52828"}),M.createElement("path",{d:"M447.81 324.35c-.026 59.341-43.621 109.657-102.356 118.135-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221 58.77 8.487 102.373 58.846 102.356 118.221z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M374.285 341.409h-23.542a7.251 7.251 0 0 1-7.421-6.397l-6.397-79.923a7.174 7.174 0 0 1 6.807-7.506c.205-.009.409-.009.614 0h36.251a7.16 7.16 0 0 1 7.421 6.892c.009.205.009.409 0 .614l-6.397 79.923a7.249 7.249 0 0 1-7.336 6.397zM357.993 375.527h9.041c6.926 0 12.539 5.612 12.539 12.539v9.041c0 6.926-5.612 12.539-12.539 12.539h-9.041c-6.926 0-12.539-5.612-12.539-12.539v-9.041c0-6.926 5.621-12.539 12.539-12.539z"})),M.createElement("path",{d:"M318.415 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 159.575 159.575 0 0 1-61.413 12.283 149.268 149.268 0 0 1-20.556-1.365 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.753 152.753 0 0 1-12.368-60.219 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504 7.335-11.771c4.504-7.353 14.117-9.656 21.469-5.143a15.525 15.525 0 0 1 5.143 5.143l34.716 55.869c-2.644 4.18-5.032 8.53-7.335 12.709a96.424 96.424 0 0 0-11.515 44.439 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.344 115.344 0 0 0-11.6 31.048 120.546 120.546 0 0 0-2.729 25.589c.041 48.9 29.878 92.828 75.315 110.885z",fill:"#0377bc"}),M.createElement("path",{d:"M277.217 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 158.847 158.847 0 0 1-40.772 10.833 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.657 152.657 0 0 1-12.368-60.134 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504c9.212 14.671 18.339 29.427 27.465 44.098-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.323 115.323 0 0 0-12.283 31.133 120.546 120.546 0 0 0-2.729 25.589c.043 48.9 29.88 92.828 75.317 110.885z",fill:"#02a9f4"}),M.createElement("path",{d:"M411.388 144.545a477.911 477.911 0 0 0-27.636-43.842c-9.894-14.586-19.192-29.598-28.489-44.525L328.395 13.53c-3.037-4.708-9.323-6.065-14.031-3.028a10.259 10.259 0 0 0-3.028 3.028l-12.794 20.215-14.074 22.433c-9.297 14.927-18.595 29.939-28.489 44.525-6.994 10.236-13.989 20.471-20.301 31.133-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.758 98.758 0 0 0 29.939 70.284 106.83 106.83 0 0 0 9.98 8.53 119.423 119.423 0 0 1 84.017-60.902 114.9 114.9 0 0 1 21.068-1.877c5.186.009 10.372.324 15.524.938a119.369 119.369 0 0 1 39.578 12.539 96.462 96.462 0 0 0-6.228-73.866z",fill:"#0377bc"}),M.createElement("path",{d:"M379.573 188.899a93.046 93.046 0 0 1-1.535 17.059 131.537 131.537 0 0 0-15.524-1.024 114.797 114.797 0 0 0-21.068 1.877 119.425 119.425 0 0 0-84.017 60.902 106.96 106.96 0 0 1-9.98-8.53c-31.099-29.743-38.878-76.417-19.106-114.638 2.303-4.35 4.691-8.53 7.335-12.709 6.312-10.662 13.306-20.898 20.301-31.133 9.894-14.586 19.192-29.598 28.489-44.525l14.074-22.433 14.074 22.433c9.297 14.927 18.595 29.939 28.489 44.525a477.911 477.911 0 0 1 27.636 43.842 96.401 96.401 0 0 1 10.832 44.354z",fill:"#02a9f4"}),M.createElement("path",{d:"M187.656 512.002a167.398 167.398 0 0 1-64.655-12.88 165.226 165.226 0 0 1-88.623-86.746 160.466 160.466 0 0 1-13.05-63.631 158.81 158.81 0 0 1 17.656-72.928 698.388 698.388 0 0 1 39.663-63.887l3.412-5.032c12.027-17.998 23.627-36.677 34.886-54.76L167.1 71.531c6.986-11.353 21.861-14.893 33.214-7.898a24.1 24.1 0 0 1 7.898 7.898l17.059 27.38 17.827 28.404a8.521 8.521 0 0 1 0 9.383c-2.559 4.009-4.777 8.018-6.994 12.112a87.69 87.69 0 0 0-10.065 40.089 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83 99.608 99.608 0 0 0 9.212 7.847 8.534 8.534 0 0 1 2.303 10.918 106.955 106.955 0 0 0-10.747 28.745 112.483 112.483 0 0 0-2.559 23.712c.009 45.429 27.721 86.26 69.943 103.038 4.393 1.706 6.559 6.653 4.853 11.046a8.584 8.584 0 0 1-.93 1.749 162.407 162.407 0 0 1-20.301 24.139 164.29 164.29 0 0 1-52.884 34.886 167.489 167.489 0 0 1-64.653 12.795zm0-435.012a6.99 6.99 0 0 0-6.056 3.412l-50.154 80.69c-11.344 18.168-23.03 37.019-35.227 55.187l-3.412 5.032a687.543 687.543 0 0 0-38.725 62.266 141.613 141.613 0 0 0-15.695 65.166 143.56 143.56 0 0 0 11.686 56.893 148.16 148.16 0 0 0 79.411 77.79 152.855 152.855 0 0 0 116.344 0 147.616 147.616 0 0 0 47.425-31.133 143.446 143.446 0 0 0 12.027-13.306c-43.322-21.802-70.668-66.139-70.711-114.638a129.576 129.576 0 0 1 2.9-27.38 124.357 124.357 0 0 1 9.212-26.954 136.293 136.293 0 0 1-5.203-4.691 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 1.621-3.071 3.241-5.971 4.862-8.53l-14.927-24.054-17.059-27.38a7.087 7.087 0 0 0-6.141-3.837z"}),M.createElement("path",{d:"M99.971 442.4A8.521 8.521 0 0 1 94 439.926a129.631 129.631 0 0 1-28.318-41.113 126.28 126.28 0 0 1-10.236-50.069 124.503 124.503 0 0 1 13.818-57.234c1.868-4.325 6.883-6.32 11.208-4.452s6.32 6.883 4.452 11.208c-.162.375-.35.742-.563 1.092a107.494 107.494 0 0 0-11.856 49.387 109.211 109.211 0 0 0 8.53 43.331 112.626 112.626 0 0 0 24.565 35.739c3.344 3.318 3.369 8.717.051 12.061a8.549 8.549 0 0 1-6.022 2.525l.342-.001zM257.428 276.242a8.526 8.526 0 0 1-5.118-1.706 115.222 115.222 0 0 1-10.747-9.212 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 2.559-4.862 5.118-9.212 7.677-13.306 6.312-10.662 13.392-21.068 20.386-31.218 9.041-13.903 17.912-27.807 26.442-41.881L304 8.753c5.485-8.734 17.017-11.379 25.751-5.894a18.698 18.698 0 0 1 5.894 5.894l28.574 45.634c8.53 13.733 17.059 27.977 26.612 41.539l1.706 2.474a457.473 457.473 0 0 1 26.442 42.136 104.968 104.968 0 0 1 6.824 80.434c-1.433 4.487-6.235 6.969-10.722 5.536a8.282 8.282 0 0 1-1.39-.589 112.612 112.612 0 0 0-106.535 2.388 110.28 110.28 0 0 0-42.136 43.416 8.52 8.52 0 0 1-5.715 4.265l-1.877.256zm62.437-258.959a1.541 1.541 0 0 0-1.365.768l-28.489 45.378c-8.53 13.903-17.571 28.233-26.954 42.051-6.909 10.065-13.903 20.301-20.045 30.707-2.644 4.18-4.947 8.53-7.165 12.368a87.722 87.722 0 0 0-9.809 40.345 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83l1.791 1.706a127.216 127.216 0 0 1 43.331-41.369 129.73 129.73 0 0 1 113.359-7.25 87.904 87.904 0 0 0-8.53-57.831 444.102 444.102 0 0 0-25.589-40.516l-1.706-2.474c-9.383-13.818-18.339-28.148-26.954-42.051L321.23 18.05a1.532 1.532 0 0 0-1.365-.767z"}),M.createElement("path",{d:"M271.246 243.233a8.519 8.519 0 0 1-5.971-2.388 75.502 75.502 0 0 1-16.292-23.456 71.923 71.923 0 0 1-5.885-28.489 70.537 70.537 0 0 1 7.933-32.498c1.877-3.582 4.009-7.25 6.227-10.833l.512-.768a8.538 8.538 0 0 1 11.609-3.284 8.538 8.538 0 0 1 3.284 11.609 6.997 6.997 0 0 1-.392.631l-.512.853c-2.132 3.327-3.924 6.568-5.63 9.724a53.307 53.307 0 0 0-5.971 24.565 54.816 54.816 0 0 0 4.435 21.665 58.198 58.198 0 0 0 12.624 18.083c3.395 3.267 3.489 8.666.222 12.061a8.518 8.518 0 0 1-6.193 2.61v-.085z"}),M.createElement("path",{d:"M362.514 452.294c-70.66 0-127.945-57.285-127.945-127.945a129.576 129.576 0 0 1 2.9-27.38 123.98 123.98 0 0 1 12.453-33.351 127.15 127.15 0 0 1 48.619-50.154c37.94-21.495 84.136-22.518 122.997-2.729 62.744 32.489 87.275 109.7 54.777 172.452-22.005 42.512-65.916 69.184-113.801 69.107zm0-238.83c-40.763.009-78.234 22.382-97.579 58.257a107.238 107.238 0 0 0-10.747 28.83 112.818 112.818 0 0 0-2.559 23.798c0 61.243 49.643 110.885 110.885 110.885s110.885-49.642 110.885-110.885-49.643-110.885-110.885-110.885z"}),M.createElement("path",{d:"M374.285 349.939h-23.542c-8.231.085-15.157-6.141-15.95-14.33l-6.397-79.496a15.26 15.26 0 0 1 4.009-11.515 16.312 16.312 0 0 1 11.942-5.203h36.251a16.31 16.31 0 0 1 11.941 5.203 15.27 15.27 0 0 1 4.094 11.515l-6.397 79.923c-.999 8.026-7.865 14.013-15.951 13.903zm-22.519-17.06h21.665l6.141-76.767h-34.119l6.313 76.767zM367.034 418.176h-9.041c-11.617-.043-21.026-9.451-21.068-21.068v-9.041c.043-11.617 9.451-21.026 21.068-21.068h8.956c11.651 0 21.102 9.417 21.153 21.068v8.956c.001 11.651-9.416 21.11-21.068 21.153zm-8.956-34.119a4.095 4.095 0 0 0-4.009 4.009v8.956a4.095 4.095 0 0 0 4.009 4.009h8.956a4.095 4.095 0 0 0 4.009-4.009v-8.956a4.095 4.095 0 0 0-4.009-4.009h-8.956z"}))}function d_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M462,226c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.52,0,10-4.48,10-10S467.52,226,462,226z"}),M.createElement("path",{fill:"currentColor",d:"M50,226c-5.52,0-10,4.48-10,10s4.48,10,10,10s10-4.48,10-10S55.52,226,50,226z"}),M.createElement("path",{fill:"currentColor",d:`M502,126h-0.027C508.265,117.637,512,107.248,512,96c0-27.57-22.43-50-50-50s-50,22.43-50,50 - c0,11.248,3.735,21.637,10.027,30H422c-5.522,0-10,4.478-10,10v50.03c-7.399,0.025-17.158,0.065-23,0.113V166.63 - c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.435c-0.931-0.964-1.899-2.045-2.923-3.258 - c-10.745-12.754-24.515-23.761-40.077-32.106V121.83c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.983 - c-12.92-4.643-26.438-7.5-40-8.448V96c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v30.365 - c-13.565,0.948-27.084,3.807-40,8.452V120.17c0-5.522-4.477-10-10-10s-10,4.478-10,10v23.542 - c-15.764,8.457-29.695,19.652-40.55,32.652c-0.758,0.908-1.587,1.755-2.45,2.566v-12.3c0-5.522-4.477-10-10-10s-10,4.478-10,10 - v20.385c-4.189,0.067-14.913,0.05-23,0.024V136c0-5.522-4.477-10-10-10h-0.027C96.265,117.637,100,107.248,100,96 - c0-27.57-22.43-50-50-50S0,68.43,0,96c0,11.248,3.735,21.637,10.027,30H10c-5.523,0-10,4.478-10,10v320c0,5.522,4.477,10,10,10h80 - c5.523,0,10-4.478,10-10v-11h312v11c0,5.522,4.478,10,10,10h80c5.522,0,10-4.478,10-10V136C512,130.478,507.522,126,502,126z - M80,446H20V146h20v50c0,5.522,4.477,10,10,10s10-4.478,10-10v-50h20V446z M50,126c-16.542,0-30-13.458-30-30s13.458-30,30-30 - s30,13.458,30,30S66.542,126,50,126z M123,425h-23v-19h23V425z M123,386h-23V247h23V386z M123,227h-23v-19.959 - c3.808,0.011,8.197,0.022,12.244,0.022c4.378,0,8.351-0.012,10.756-0.046V227z M186,425h-43v-19h43V425z M186,276v40v70h-43 - V244.817c16.149-3.513,31.29-11.046,43-21.321V276z M186,194.605c-2.373,2.327-4.659,4.785-6.815,7.365 - c-8.521,10.2-21.771,18.214-36.185,22.224v-21.525c6.846-3.098,13.007-7.736,17.806-13.49c7.006-8.391,15.56-15.917,25.194-22.232 - V194.605z M206,156.285c12.757-5.415,26.344-8.765,40-9.871v20.099c-14.162,1.416-27.777,5.83-40,12.895V156.285z M206,203.562 - c11.538-9.26,25.37-15.088,40-16.922V266h-40V203.562z M246,425h-40v-19h40V425z M246,386h-40v-60h40V386z M306,425h-40v-19h40 - V425z M306,386h-40v-60h40V386z M306,306H206v-20h100V306z M306,266h-40v-79.359c14.617,1.835,28.449,7.664,40,16.924V266z - M306,179.418c-12.232-7.071-25.847-11.487-40-12.904v-20.1c13.651,1.106,27.238,4.454,40,9.865V179.418z M369,425h-43v-19h43V425 - z M369,386h-43v-70v-40v-52.635c11.722,10.137,26.674,17.329,43,20.634V386z M369,223.458 - c-14.663-3.788-27.83-11.575-36.517-21.887c-2.039-2.417-4.216-4.742-6.483-6.965v-27.672c9.465,6.201,17.88,13.567,24.789,21.767 - c4.64,5.496,10.324,11.234,18.211,14.57V223.458z M412,425h-23v-19h23V425z M412,386h-23V246h23V386z M412,226h-23v-19.856 - c5.683-0.048,15.526-0.088,23-0.113V226z M492,446h-60V146h20v50c0,5.522,4.478,10,10,10c5.522,0,10-4.478,10-10v-50h20V446z - M462,126c-16.542,0-30-13.458-30-30s13.458-30,30-30s30,13.458,30,30S478.542,126,462,126z`}))}function D_e(s){return M.createElement("svg",{viewBox:"0 0 511.448 511.448",...s},M.createElement("path",{d:"M344.556 112.216C318.38 78.84 291.34 44.344 269.516 7.32c-5.76-9.76-21.824-9.76-27.552 0-21.856 37.024-48.896 71.52-75.072 104.896-53.056 67.68-103.168 131.616-103.168 207.232 0 105.888 86.112 192 192 192s192-86.112 192-192c0-75.616-50.112-139.552-103.168-207.232z",fill:"#2196f3"}),M.createElement("g",{fill:"#fafafa"},M.createElement("path",{d:"M207.724 287.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.832 0-16 7.168-16 16s7.168 16 16 16 16-7.168 16-16-7.168-16-16-16zM303.724 447.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM175.724 415.448a16.07 16.07 0 0 1-11.328-4.672c-6.24-6.24-6.24-16.384 0-22.624l160-160c6.24-6.24 16.384-6.24 22.624 0s6.24 16.384 0 22.624l-160 160a15.943 15.943 0 0 1-11.296 4.672z"})))}function _l(s){return M.createElement("svg",{viewBox:"0 0 508.16 508.16",...s},M.createElement("path",{d:"M504.18 13.67a3.924 3.924 0 0 0-.42.02H4a4 4 0 0 0-4 4v47.28a4 4 0 0 0 4 4h19.72l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.16a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h479.8a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.64-42.08h9.84a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h19.72a4 4 0 0 0 4-4V17.69a4 4 0 0 0-3.98-4.02zM99.08 486.49H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm26.8 378.24h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm.16-47.28h-18.96V68.97h18.96v39.28zm247.84 378.24h-240v-39.28h240v39.28zm-240-47.28v-39.28h239.68v39.28H133.88zm240-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm-240-47.28V68.97h239.84v39.28H133.88zm266.64 378.24h-18.64l-.32-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm.32-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm-18.96-47.28V68.97h18.8v39.28h-18.8zm63.56 8v39.28h-36.92v-39.28h36.92zm-36.76-8V68.97h36.92v39.28h-36.92zm36.76 55.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.76l-.16-39.28h36.92zm42.68 181.12h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h36.92v17.44a4 4 0 0 0 8 0v-17.44h22.04l12.48 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6V68.97h22.04l12.56 39.28zm11.56-47.28H8V21.69h491.76l-.08 39.28z",fill:"currentColor"}),M.createElement("path",{d:"M454.32 37.33h-13.76a4 4 0 0 0 0 8h13.76a4 4 0 0 0 0-8zM414.84 37.33h-96a4 4 0 0 0 0 8h96a4 4 0 0 0 0-8z",fill:"currentColor"}))}function h_e(s){return M.createElement("svg",{viewBox:"0 0 63.907 63.907",fill:"currentColor",...s},M.createElement("circle",{fill:"currentColor",cx:30.515,cy:6.136,r:6.136}),M.createElement("path",{fill:"currentColor",d:"M47.399 27.455C42.346 24.53 38.2 20.579 34.71 15.931c-2.193-3.084-7.991-2.923-10.347-.097-3.584 3.487-6.625 7.081-9.037 10.677a3.209 3.209 0 0 0 5.329 3.573 54.205 54.205 0 0 1 3.59-4.734c-.051 3.333.116 9.347.2 12.05.028.9-.177 1.78-.595 2.579-3.308 6.317-5.424 12.294-7.572 19.606a3.37 3.37 0 1 0 6.465 1.901c1.982-6.742 3.897-12.201 6.884-17.981.152.006.304.006.458-.001 1.907 5.69 3.815 11.383 5.725 17.073 1.387 4.147 7.822 1.993 6.431-2.155-2.087-6.221-4.171-12.439-6.251-18.659-.121-.357-.414-1.755-.455-2.211-.344-3.832-.469-7.652-.432-11.477a51.027 51.027 0 0 0 9.782 7.328c3.597 2.088 6.063-3.891 2.514-5.948z"}))}function z_e(s){return M.createElement("svg",{viewBox:"0 0 285 285",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:`M88.4,87.996c2.525-2.146,2.832-5.933,0.687-8.458C82.801,72.144,79.34,62.719,79.34,53c0-22.607,18.393-41,41-41 - c22.607,0,41,18.393,41,41c0,9.729-3.467,19.161-9.761,26.557c-2.148,2.523-1.843,6.311,0.681,8.458 - c1.129,0.961,2.511,1.431,3.886,1.431c1.698,0,3.386-0.717,4.572-2.111C168.858,77.77,173.34,65.576,173.34,53 - c0-29.225-23.775-53-53-53c-29.225,0-53,23.775-53,53c0,12.563,4.476,24.748,12.602,34.31C82.089,89.835,85.873,90.141,88.4,87.996 - z`}),M.createElement("path",{fill:"currentColor",d:`M120.186,41.201c13.228,0,23.812,8.105,27.313,19.879c0.761-2.562,1.176-5.271,1.176-8.08 - c0-15.649-12.685-28.335-28.335-28.335c-15.648,0-28.334,12.686-28.334,28.335c0,2.623,0.364,5.16,1.031,7.571 - C96.691,49.076,107.152,41.201,120.186,41.201z`}),M.createElement("path",{fill:"currentColor",d:`M234.21,169.856c-3.769-22.452-19.597-26.04-27.034-26.462c-2.342-0.133-4.516-1.32-5.801-3.282 - c-5.388-8.225-12.609-10.4-18.742-10.4c-4.405,0-8.249,1.122-10.449,1.932c-0.275,0.102-0.559,0.15-0.837,0.15 - c-0.87,0-1.701-0.47-2.163-1.262c-5.472-9.387-13.252-11.809-19.822-11.809c-3.824,0-7.237,0.82-9.548,1.564 - c-0.241,0.077-0.764,0.114-1.001,0.114c-1.256,0-2.637-1.03-2.637-2.376V69.753c0-11.035-8.224-16.552-16.5-16.552 - c-8.276,0-16.5,5.517-16.5,16.552v84.912c0,4.989-3.811,8.074-7.918,8.074c-2.495,0-4.899-1.138-6.552-3.678l-7.937-12.281 - c-3.508-5.788-8.576-8.188-13.625-8.189c-11.412-0.001-22.574,12.258-14.644,25.344l62.491,119.692 - c0.408,0.782,1.225,1.373,2.108,1.373h87.757c1.253,0,2.289-1.075,2.365-2.325l2.196-35.816c0.025-0.413,0.162-0.84,0.39-1.186 - C231.591,212.679,237.828,191.414,234.21,169.856z`})))}function Xo(s){return M.createElement("svg",{viewBox:"1 -10 511.99999 511",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M 405.5 150 C 405.5 232.566406 338.566406 299.5 256 299.5 C 173.433594 299.5 106.5 232.566406 106.5 150 C 106.5 67.433594 173.433594 0.5 256 0.5 C 338.566406 0.5 405.5 67.433594 405.5 150 Z M 405.5 150 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(25.882353%,75.294118%,88.627451%)",fillOpacity:1}}),M.createElement("path",{d:"M 512 342.921875 C 512 425.488281 445.066406 492.421875 362.5 492.421875 C 279.933594 492.421875 213 425.488281 213 342.921875 C 213 260.355469 279.933594 193.421875 362.5 193.421875 C 445.066406 193.421875 512 260.355469 512 342.921875 Z M 512 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,81.568627%,38.039216%)",fillOpacity:1}}),M.createElement("path",{d:"M 220.746094 295.308594 C 232.050781 298.039062 243.855469 299.5 256 299.5 C 321.917969 299.5 377.871094 256.835938 397.753906 197.613281 C 386.449219 194.878906 374.644531 193.421875 362.5 193.421875 C 296.582031 193.421875 240.628906 236.085938 220.746094 295.308594 Z M 220.746094 295.308594 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(28.627451%,74.117647%,56.470588%)",fillOpacity:1}}),M.createElement("path",{d:"M 299 342.921875 C 299 425.488281 232.066406 492.421875 149.5 492.421875 C 66.933594 492.421875 0 425.488281 0 342.921875 C 0 260.355469 66.933594 193.421875 149.5 193.421875 C 232.066406 193.421875 299 260.355469 299 342.921875 Z M 299 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(98.039216%,43.921569%,69.803922%)",fillOpacity:1}}),M.createElement("path",{d:"M 114.246094 197.613281 C 134.128906 256.835938 190.082031 299.5 256 299.5 C 268.144531 299.5 279.949219 298.039062 291.253906 295.308594 C 271.371094 236.085938 215.417969 193.421875 149.5 193.421875 C 137.355469 193.421875 125.550781 194.878906 114.246094 197.613281 Z M 114.246094 197.613281 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(68.627451%,48.235294%,77.647059%)",fillOpacity:1}}),M.createElement("path",{d:"M 213 342.921875 C 213 383.800781 229.414062 420.839844 256 447.828125 C 282.585938 420.839844 299 383.800781 299 342.921875 C 299 302.042969 282.585938 265.003906 256 238.015625 C 229.414062 265.003906 213 302.042969 213 342.921875 Z M 213 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(93.72549%,38.039216%,13.333333%)",fillOpacity:1}}),M.createElement("path",{d:"M 291.253906 295.320312 C 279.949219 298.046875 268.140625 299.5 256 299.5 C 243.859375 299.5 232.050781 298.046875 220.746094 295.320312 C 228.058594 273.542969 240.242188 254.015625 256 238.015625 C 271.757812 254.015625 283.941406 273.542969 291.253906 295.320312 Z M 291.253906 295.320312 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,100%,100%)",fillOpacity:1}})))}function w_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 365.445 365.445",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M146.7 162.775h-26.8a6.655 6.655 0 0 0-6.647 6.647v26.602a6.653 6.653 0 0 0 6.647 6.646h26.8a6.654 6.654 0 0 0 6.647-6.646v-26.602a6.655 6.655 0 0 0-6.647-6.647zM245.547 162.775h-26.801a6.653 6.653 0 0 0-6.646 6.647v26.602a6.652 6.652 0 0 0 6.646 6.646h26.801a6.654 6.654 0 0 0 6.646-6.646v-26.602a6.655 6.655 0 0 0-6.646-6.647z"})),M.createElement("path",{d:"M345.445 1.204H20c-11.046 0-20 8.954-20 20v323.037c0 11.045 8.954 20 20 20h325.445c11.045 0 20-8.955 20-20V21.204c0-11.045-8.953-20-20-20zM182.723 287.66c-57.955 0-104.937-46.981-104.937-104.937 0-57.957 46.982-104.938 104.937-104.938S287.66 124.767 287.66 182.723 240.678 287.66 182.723 287.66z",fill:"currentColor"}))}function C_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 45.659 45.659",...s},M.createElement("path",{fill:"currentColor",d:"M30.619 27.309V7.781C30.619 3.49 27.124 0 22.833 0c-4.29 0-7.785 3.491-7.785 7.78v19.528a10.722 10.722 0 0 0-3.05 7.522c0 5.972 4.857 10.828 10.829 10.828 5.97 0 10.834-4.856 10.834-10.828 0-2.918-1.141-5.572-3.042-7.521zM22.825 42.66c-4.316 0-7.824-3.512-7.824-7.828 0-2.527 1.174-4.779 3.077-6.211V16.237h3.372c.552 0 1-.47 1-1.022 0-.553-.448-1.021-1-1.021h-3.372v-2.466h3.372c.552 0 1-.434 1-.986a.989.989 0 0 0-1-.986h-3.372V7.78c0-2.636 2.119-4.78 4.754-4.78 2.637 0 4.756 2.144 4.756 4.781v20.871c1.903 1.434 3.047 3.671 3.047 6.18 0 4.316-3.494 7.828-7.81 7.828z"}),M.createElement("path",{fill:"currentColor",d:"M25.334 30.463V18.632h-5.002v11.831a4.973 4.973 0 0 0-2.537 4.369 5.038 5.038 0 0 0 5.038 5.046 5.034 5.034 0 0 0 5.034-5.046c0-1.866-.982-3.495-2.533-4.369z"}))}function I_e(s){return M.createElement("svg",{viewBox:"0 0 297 297",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:"m243.404,138.042c-5.775,0-10.458,4.683-10.458,10.458 0,46.564-37.883,84.446-84.446,84.446s-84.446-37.882-84.446-84.446 37.883-84.446 84.446-84.446c5.775,0 10.458-4.683 10.458-10.458s-4.683-10.457-10.458-10.457c-58.097,0-105.361,47.265-105.361,105.361s47.264,105.361 105.361,105.361 105.361-47.264 105.361-105.361c0-5.775-4.681-10.458-10.457-10.458z"}),M.createElement("path",{fill:"currentColor",d:"m142.963,121.344l-20.272-30.41c-3.203-4.807-9.695-6.104-14.502-2.9-4.805,3.202-6.104,9.695-2.9,14.502l20.279,30.422c-3.015,4.436-4.78,9.787-4.78,15.543 0,15.281 12.432,27.713 27.713,27.713 15.281,0 27.713-12.432 27.713-27.713 0-15.281-12.432-27.713-27.713-27.713-1.897-0.001-3.749,0.191-5.538,0.556zm12.335,27.156c0,3.748-3.05,6.798-6.798,6.798s-6.798-3.05-6.798-6.798 3.05-6.798 6.798-6.798 6.798,3.05 6.798,6.798z"}),M.createElement("path",{fill:"currentColor",d:"M148.5,0C66.617,0,0,66.617,0,148.5S66.617,297,148.5,297S297,230.383,297,148.5S230.383,0,148.5,0z M158.958,275.653 v-6.366c0-5.775-4.683-10.458-10.458-10.458c-5.775,0-10.458,4.683-10.458,10.458v6.366 c-62.027-5.056-111.64-54.668-116.695-116.695h6.366c5.775,0,10.458-4.683,10.458-10.458s-4.683-10.458-10.458-10.458h-6.366 c5.056-62.027,54.668-111.64,116.695-116.695v6.366c0,5.775,4.683,10.458,10.458,10.458c5.775,0,10.458-4.683,10.458-10.458v-6.366 c62.027,5.056,111.64,54.668,116.695,116.695h-6.366c-5.775,0-10.458,4.683-10.458,10.458s4.683,10.458,10.458,10.458h6.366 C270.598,220.985,220.985,270.598,158.958,275.653z"})))}function p_e(s){return M.createElement("svg",{viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M228.5 205.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H228.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M232.826 280.905c-.339 3.356-18.813-.782-20.919-1.06l-45.073-5.94-45.074-5.94-14.507-1.912c-1.456-.192-6.201-.055-6.412-2.147-.621-6.157 0-12.699 0-18.878v-43.5-82.076-5.13c0-2.551 5.184-1.015 6.412-.853l35.438 4.67 83.723 11.035c1.457.192 6.201.055 6.412 2.147.169 1.673 0 3.451 0 5.13v144.454c0 6.448 10 6.448 10 0V136.451v-5.13c0-7.619-6.137-10.793-12.673-11.655l-28.531-3.76-88.411-11.652-9.897-1.304c-6.555-.864-12.473 4.9-12.473 11.38v144.832c0 2.023-.071 4.04.132 6.053.717 7.111 6.606 9.563 12.759 10.374l76.827 10.125 39.896 5.259 9.697 1.278c7.063.931 12.011-4.778 12.673-11.346.648-6.415-9.358-6.352-9.999 0z",fill:"currentColor"}))}function I4(s){return M.createElement("svg",{width:361,height:361,viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9zM265.732 265.178c.584 2.887-1.629 5.228-4.942 5.228H103.457c-3.313 0-6.474-2.341-7.058-5.228L75.24 130.633c-.584-2.887 1.628-5.228 4.942-5.228h157.333c3.313 0 6.474 2.34 7.058 5.228l21.159 134.545z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M247.194 199.667h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5h-6.639c-2.726 0-5 2.274-5 5s2.275 5 5 5z",fill:"currentColor"}))}const A_e={"type-Device type":"Device type","type-airCondition":"Air conditioner","type-blind":"Blinds","type-blindButtons":"Blind controlled by buttons","type-button":"Button","type-buttonSensor":"Button with feedback","type-camera":"Camera","type-chart":"Chart","type-cie":"CIE color light","type-ct":"Color temperature","type-dimmer":"Dimmer","type-door":"Door","type-fireAlarm":"Fire alarm","type-floodAlarm":"Flood alarm","type-gate":"Gate","type-hue":"HUE light","type-humidity":"Humidity","type-illuminance":"Illuminance","type-image":"Image","type-info":"Information","type-instance":"Instance","type-light":"Light","type-location":"Position","type-locationOne":"Position as one state","type-lock":"Lock","type-media":"Media-player","type-motion":"Motion sensor","type-rgb":"RGB light","type-rgbSingle":"R,G,B light - single states","type-rgbwSingle":"R,G,B,W light - single states","type-slider":"Slider","type-socket":"Socket","type-temperature":"Temperature","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Vacuum cleaner","type-valve":"Valve","type-volume":"Volume","type-volumeGroup":"Volume group","type-warning":"Warning","type-weatherCurrent":"Current weather","type-weatherForecast":"Weather forecast","type-window":"Window sensor","type-windowTilt":"Window tilt sensor"},m_e={"type-Device type":"Gerätetyp","type-airCondition":"Klimaanlage","type-blind":"Jalousien","type-blindButtons":"Jalousie über Tasten gesteuert","type-button":"Taste","type-buttonSensor":"Taste mit Rückmeldung","type-camera":"Kamera","type-chart":"Diagramm","type-cie":"CIE Farblicht","type-ct":"Farbtemperatur","type-dimmer":"Dimmer","type-door":"Türsensor","type-fireAlarm":"Feueralarm","type-floodAlarm":"Wasseralarm","type-gate":"Tor-Steuerung","type-hue":"HUE-Licht","type-humidity":"Feuchtigkeit","type-illuminance":"Beleuchtungsstärke","type-image":"Bild","type-info":"Information","type-instance":"Instanz","type-light":"Licht","type-location":"Position","type-locationOne":"Position als ein Zustand","type-lock":"Schloss","type-media":"Mediaplayer","type-motion":"Bewegungssensor","type-rgb":"RGB-Licht","type-rgbSingle":"R,G,B-Licht Einzelwerte","type-rgbwSingle":"R,G,B,W-Licht Einzelwerte","type-slider":"Schieberegler","type-socket":"Steckdose","type-temperature":"Temperatur","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Staubsauger","type-valve":"Ventil","type-volume":"Lautstärke","type-volumeGroup":"Lautstärke-Gruppe","type-warning":"Warnung","type-weatherCurrent":"Aktuelle Wetterlage","type-weatherForecast":"Wettervorhersage","type-window":"Fenstersensor","type-windowTilt":"Fensterkippung-Sensor"},O_e={"type-Device type":"Тип устройства","type-airCondition":"Кондиционер","type-blind":"Рольставни/Жалюзи","type-blindButtons":"Жалюзи управляющиеся кнопками","type-button":"Кнопка","type-buttonSensor":"Кнопка с обратной связью","type-camera":"Камера","type-chart":"Диаграмма","type-cie":"CIE свет","type-ct":"Цветовая температура","type-dimmer":"Диммер","type-door":"Датчик положения двери","type-fireAlarm":"Датчик дыма","type-floodAlarm":"Датчик затопления","type-gate":"Ворота","type-hue":"HUE свет","type-humidity":"Влажность","type-illuminance":"Освещенность","type-image":"Изображение","type-info":"Информация","type-instance":"Инстанция","type-light":"Свет","type-location":"Местоположение","type-locationOne":"Позиция в одном состоянии","type-lock":"Замок","type-media":"Медиа-плейер","type-motion":"Датчик движения","type-rgb":"RGB свет","type-rgbSingle":"R,G,B как отдельные значение","type-rgbwSingle":"R,G,B,W как отдельные значение","type-slider":"Ползунок","type-socket":"Розетка","type-temperature":"Температура","type-thermostat":"Термостат","type-url":"URL","type-vacuumCleaner":"Пылесос","type-valve":"Вентиль","type-volume":"Громкость","type-volumeGroup":"Группа громкости","type-warning":"Предупреждение","type-weatherCurrent":"Актуальная погода","type-weatherForecast":"Прогноз погоды","type-window":"Датчик открытия окна","type-windowTilt":"Датчик наклона окна"},E_e={"type-Device type":"Tipo de dispositivo","type-airCondition":"Ar condicionado","type-blind":"persianas","type-blindButtons":"Persiana controlada por botões","type-button":"botão","type-buttonSensor":"Sensor de botão","type-camera":"câmera","type-chart":"Gráfico","type-cie":"Luz colorida CIE","type-ct":"Temperatura de cor","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"alarme de incêndio","type-floodAlarm":"alarme de inundação","type-gate":"portão","type-hue":"Luz HUE","type-humidity":"umidade","type-illuminance":"Iluminância","type-image":"imagem","type-info":"informação","type-instance":"exemplo","type-light":"luz","type-location":"localização","type-locationOne":"Posição como um estado","type-lock":"trancar","type-media":"mídia","type-motion":"movimento","type-rgb":"Luz RGB","type-rgbSingle":"Luz RGB única","type-rgbwSingle":"RGBW como valor único","type-slider":"controle deslizante","type-socket":"soquete","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirador de pó","type-valve":"válvula","type-volume":"volume","type-volumeGroup":"grupo de volume","type-warning":"aviso","type-weatherCurrent":"clima atual","type-weatherForecast":"previsão do tempo","type-window":"janela","type-windowTilt":"inclinação da janela"},f_e={"type-Device type":"Typ urządzenia","type-airCondition":"Klimatyzator","type-blind":"żaluzje","type-blindButtons":"Roleta sterowana przyciskami","type-button":"przycisk","type-buttonSensor":"Czujnik przycisku","type-camera":"kamera","type-chart":"Wykres","type-cie":"Światło kolorowe CIE","type-ct":"Temperatura barwowa","type-dimmer":"opornik","type-door":"drzwi","type-fireAlarm":"alarm pożarowy","type-floodAlarm":"alarm przeciwpowodziowy","type-gate":"brama","type-hue":"Światło HUE","type-humidity":"wilgotność","type-illuminance":"Natężenie oświetlenia","type-image":"obraz","type-info":"Informacje","type-instance":"przykład","type-light":"światło","type-location":"lokalizacja","type-locationOne":"Pozycja jako państwa","type-lock":"zamek","type-media":"głoska bezdźwięczna","type-motion":"ruch","type-rgb":"Światło RGB","type-rgbSingle":"Pojedyncze światło RGB","type-rgbwSingle":"RGBW jako pojedyncza wartość","type-slider":"suwak","type-socket":"gniazdo","type-temperature":"temperatura","type-thermostat":"termostat","type-url":"Adres URL","type-vacuumCleaner":"Odkurzacz","type-valve":"zawór","type-volume":"tom","type-volumeGroup":"grupa woluminów","type-warning":"ostrzeżenie","type-weatherCurrent":"aktualna pogoda","type-weatherForecast":"prognoza pogody","type-window":"okno","type-windowTilt":"pochylenie okna"},x_e={"type-Device type":"Type d'appareil","type-airCondition":"Climatiseur","type-blind":"stores","type-blindButtons":"Store commandé par boutons","type-button":"bouton","type-buttonSensor":"Capteur de bouton","type-camera":"caméra","type-chart":"Graphique","type-cie":"lumière colorée CIE","type-ct":"Température de couleur","type-dimmer":"variateur","type-door":"porte","type-fireAlarm":"alarme incendie","type-floodAlarm":"alarme d'inondation","type-gate":"grille","type-hue":"Lumière HUE","type-humidity":"humidité","type-illuminance":"Éclairement","type-image":"image","type-info":"informations","type-instance":"exemple","type-light":"lumière","type-location":"emplacement","type-locationOne":"Position en tant qu'État","type-lock":"verrouillage","type-media":"médias","type-motion":"mouvement","type-rgb":"lumière RVB","type-rgbSingle":"Lumière RVB simple","type-rgbwSingle":"RGBW comme valeur unique","type-slider":"curseur","type-socket":"douille","type-temperature":"température","type-thermostat":"thermostat","type-url":"URL","type-vacuumCleaner":"Aspirateur","type-valve":"soupape","type-volume":"volume","type-volumeGroup":"groupe de volumes","type-warning":"avertissement","type-weatherCurrent":"météo actuelle","type-weatherForecast":"prévisions météorologiques","type-window":"fenêtre","type-windowTilt":"inclinaison de la fenêtre"},__e={"type-Device type":"Tipo di dispositivo","type-airCondition":"Condizionatore d'aria","type-blind":"tende","type-blindButtons":"Tenda controllata da pulsanti","type-button":"pulsante","type-buttonSensor":"Sensore del pulsante","type-camera":"telecamera","type-chart":"Grafico","type-cie":"Luce colorata CIE","type-ct":"Temperatura del colore","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"allarme antincendio","type-floodAlarm":"allarme allagamento","type-gate":"cancello","type-hue":"Luce HUE","type-humidity":"umidità","type-illuminance":"Illuminamento","type-image":"immagine","type-info":"informazioni","type-instance":"esempio","type-light":"leggero","type-location":"posizione","type-locationOne":"Posizione come stato","type-lock":"serratura","type-media":"media","type-motion":"movimento","type-rgb":"luce RGB","type-rgbSingle":"Luce RGB singola","type-rgbwSingle":"RGBW come valore singolo","type-slider":"cursore","type-socket":"PRESA","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirapolvere","type-valve":"valvola","type-volume":"volume","type-volumeGroup":"gruppo di volumi","type-warning":"avvertimento","type-weatherCurrent":"meteo attuale","type-weatherForecast":"previsioni del tempo","type-window":"finestra","type-windowTilt":"inclinazione della finestra"},S_e={"type-Device type":"Apparaattype","type-airCondition":"Airconditioner","type-blind":"jaloezieën","type-blindButtons":"Jaloezie bediend door knoppen","type-button":"knop","type-buttonSensor":"Knopsensor","type-camera":"camera","type-chart":"Grafiek","type-cie":"CIE-kleurenlicht","type-ct":"Kleurtemperatuur","type-dimmer":"dimmer","type-door":"deur","type-fireAlarm":"brandalarm","type-floodAlarm":"overstromingsalarm","type-gate":"hek","type-hue":"HUE-licht","type-humidity":"vochtigheid","type-illuminance":"Verlichtingssterkte","type-image":"afbeelding","type-info":"informatie","type-instance":"aanleg","type-light":"licht","type-location":"locatie","type-locationOne":"Positie als staat","type-lock":"slot","type-media":"media","type-motion":"beweging","type-rgb":"RGB-licht","type-rgbSingle":"RGB-licht enkel","type-rgbwSingle":"RGBW als enkele waarde","type-slider":"schuifregelaar","type-socket":"stopcontact","type-temperature":"temperatuur","type-thermostat":"thermostaat","type-url":"URL","type-vacuumCleaner":"Stofzuiger","type-valve":"ventiel","type-volume":"volume","type-volumeGroup":"volumegroep","type-warning":"waarschuwing","type-weatherCurrent":"huidige weersomstandigheden","type-weatherForecast":"weersvoorspelling","type-window":"raam","type-windowTilt":"raamkanteling"},k_e={"type-Device type":"Тип пристрою","type-airCondition":"Кондиціонер","type-blind":"жалюзі","type-blindButtons":"Штора керується кнопками","type-button":"кнопку","type-buttonSensor":"Датчик кнопки","type-camera":"камера","type-chart":"Діаграма","type-cie":"Кольорове світло CIE","type-ct":"Колірна температура","type-dimmer":"диммер","type-door":"двері","type-fireAlarm":"пожежна сигналізація","type-floodAlarm":"сигналізація про повінь","type-gate":"ворота","type-hue":"світло HUE","type-humidity":"вологість","type-illuminance":"Освітленість","type-image":"зображення","type-info":"інформація","type-instance":"екземпляр","type-light":"світло","type-location":"розташування","type-locationOne":"Позиція як держави","type-lock":"замок","type-media":"ЗМІ","type-motion":"руху","type-rgb":"RGB світло","type-rgbSingle":"Одиночне світло RGB","type-rgbwSingle":"RGBW як одне значення","type-slider":"повзунок","type-socket":"гніздо","type-temperature":"температура","type-thermostat":"термостат","type-url":"URL","type-vacuumCleaner":"Пилосос","type-valve":"клапан","type-volume":"обсяг","type-volumeGroup":"група обсягів","type-warning":"УВАГА","type-weatherCurrent":"поточна погода","type-weatherForecast":"прогноз погоди","type-window":"вікно","type-windowTilt":"нахил вікна"},Y_e={"type-Device type":"设备类型","type-airCondition":"空调","type-blind":"百叶窗","type-blindButtons":"按钮控制百叶窗","type-button":"按钮","type-buttonSensor":"按钮传感器","type-camera":"相机","type-chart":"图表","type-cie":"CIE色光","type-ct":"色温","type-dimmer":"调光器","type-door":"门","type-fireAlarm":"火灾报警","type-floodAlarm":"洪水警报","type-gate":"门","type-hue":"色调灯","type-humidity":"湿度","type-illuminance":"照度","type-image":"图像","type-info":"信息","type-instance":"实例","type-light":"光","type-location":"地点","type-locationOne":"作为一个国家的地位","type-lock":"锁","type-media":"媒体","type-motion":"运动","type-rgb":"RGB灯","type-rgbSingle":"RGB灯单","type-rgbwSingle":"RGBW 作为单一值","type-slider":"滑块","type-socket":"插座","type-temperature":"温度","type-thermostat":"恒温器","type-url":"网址","type-vacuumCleaner":"吸尘器","type-valve":"阀门","type-volume":"体积","type-volumeGroup":"卷组","type-warning":"警告","type-weatherCurrent":"当前天气","type-weatherForecast":"天气预报","type-window":"窗户","type-windowTilt":"窗户倾斜"};let Sl=!1;function p4(){Sl||(Sl=!0,h.extendTranslations({en:A_e,de:m_e,ru:O_e,pt:E_e,pl:f_e,fr:x_e,it:__e,nl:S_e,uk:k_e,"zh-cn":Y_e}))}const kl={[B.Types.airCondition]:EL,[B.Types.blind]:_l,[B.Types.blindButtons]:_l,[B.Types.button]:z_e,[B.Types.buttonSensor]:L_e,[B.Types.camera]:n_e,[B.Types.chart]:s_e,[B.Types.image]:OL,[B.Types.dimmer]:mL,[B.Types.door]:T_e,[B.Types.fireAlarm]:fl,"sensor.alarm.fire":fl,[B.Types.floodAlarm]:xl,"sensor.alarm.flood":xl,[B.Types.gate]:d_e,[B.Types.humidity]:D_e,[B.Types.illuminance]:g_e,[B.Types.info]:AL,[B.Types.light]:pL,[B.Types.lock]:IL,[B.Types.location]:CL,[B.Types.locationOne]:wL,[B.Types.media]:zL,[B.Types.motion]:h_e,[B.Types.ct]:UM,[B.Types.rgb]:Xo,[B.Types.rgbSingle]:Xo,[B.Types.rgbwSingle]:j_e,[B.Types.hue]:UM,[B.Types.cie]:Xo,[B.Types.slider]:hL,[B.Types.socket]:w_e,[B.Types.temperature]:C_e,[B.Types.thermostat]:I_e,[B.Types.vacuumCleaner]:y_e,[B.Types.volume]:DL,[B.Types.volumeGroup]:dL,[B.Types.window]:p_e,[B.Types.windowTilt]:I4,[B.Types.weatherCurrent]:Ol,[B.Types.weatherForecast]:Ol,[B.Types.warning]:QM,[B.Types.unknown]:TL,[B.Types.instance]:yL,invalid:QM,hub3:jL,node:gL,hub5:LL,controller:NL},Dr={width:32,height:32};function v_e(s){const[e,t]=M.useState(!1);if(f.useEffect(()=>{s.title&&!e&&(p4(),t(!0))},[s.title,e]),!e&&s.title)return M.createElement(j.Box,{style:{...Dr,...s.style||void 0},className:s.className,sx:s.sx});const i=s.type||(s.src?Object.keys(kl).find(n=>s.src===n):void 0);if(!i&&s.src)return M.createElement(me,{style:Dr,...s,title:s.title===!0?void 0:s.title,src:s.src});const r=i&&kl[i];if(!r)return i?M.createElement("span",{style:{...Dr,...s.style||void 0}},i[0].toUpperCase()):null;const o=M.createElement(r,{style:{...Dr,...s.style||void 0},onClick:s.onClick,className:s.className,sx:s.sx});return s.title?M.createElement(j.Tooltip,{slotProps:{popper:{sx:{pointerEvents:"none"}}},title:s.title===!0?h.t(`type-${i}`):s.title},M.createElement("div",{style:{display:"flex"}},o)):o}const Et={itemChildrenWrapper:{display:"flex",width:"100%",justifyContent:"space-between"},type:{marginTop:10},selectIcon:{paddingRight:8,verticalAlign:"middle",width:20,height:20},selectText:{verticalAlign:"middle"},iconWrapper:{display:"flex",alignItems:"center"},iconStyle:{width:16,height:16,margin:"0 3px"},emptyIcon:{width:16,height:16,margin:"0 3px"}};function H3e(s){const[e,t]=M.useState({}),[i,r]=M.useState([]);return f.useEffect(()=>{const o={};Object.keys(B.Types).filter(a=>{var c,l;return(!s.supportedDevices||((c=s.supportedDevices)==null?void 0:c.includes(a)))&&!((l=s.unsupportedDevices)!=null&&l.includes(a))}).forEach(a=>o[a]=h.t(`type-${B.Types[a]}`));const n=Object.keys(o);n.sort((a,c)=>o[a]===o[c]?0:o[a].localeCompare(o[c],"de")),p4(),r(n),t(o)},[s.supportedDevices,s.unsupportedDevices]),i?M.createElement(j.FormControl,{style:{...Et.type,...s.style},sx:s.sx,variant:"standard",error:!!s.error},M.createElement(j.InputLabel,null,s.label||h.t("type-Device type")),M.createElement(j.Select,{variant:"standard",disabled:!!s.disabled,value:s.value,onChange:o=>s.onChange(o.target.value)},i.map(o=>{var n;return M.createElement(j.MenuItem,{key:B.Types[o],value:B.Types[o]},M.createElement("div",{style:Et.itemChildrenWrapper},M.createElement("div",null,M.createElement(v_e,{type:B.Types[o],style:{...Et.selectIcon,color:s.themeType==="dark"?"#FFFFFF":"#000"}}),M.createElement("span",{style:Et.selectText},e[o])),(n=s.showApplications)!=null&&n.TYPE_OPTIONS[o]?M.createElement("div",{style:Et.iconWrapper},Object.keys(s.showApplications.TYPE_OPTIONS[o]).map(a=>s.showApplications.TYPE_OPTIONS[o][a]?M.createElement(me,{key:a,style:Et.iconStyle,src:s.showApplications.ICONS_TYPE[a]}):M.createElement("div",{key:a,style:Et.emptyIcon}))):null))}))):M.createElement(j.Box,{style:{...Et.type,...s.style},sx:s.sx})}function b_e(s){return Z({attr:{version:"1",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"circle",attr:{fill:"#B2EBF2",cx:"32",cy:"24",r:"9"},child:[]},{tag:"path",attr:{fill:"#4DD0E1",d:"M32,12c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C44,17.4,38.6,12,32,12z M32,32 c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S36.4,32,32,32z"},child:[]},{tag:"g",attr:{fill:"#3F51B5"},child:[{tag:"polygon",attr:{points:"25.4,22 19.8,5.1 13.6,27.7 11.4,22 4,22 4,26 8.6,26 14.4,40.3 20.2,18.9 22.6,26 30,26 30,22"},child:[]},{tag:"circle",attr:{cx:"32",cy:"24",r:"4"},child:[]}]}]})(s)}function Q_e(s){return Z({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M4.428 2.727l3.335 3.335c-.486.07-.903.276-1.32.624L.886 12.383c-1.181 1.18-1.181 3.194 0 4.375a2.41 2.41 0 0 0 1.598.834l17.088 3.681-3.335-3.333c.486-.07.903-.278 1.32-.626l5.557-5.695c1.181-1.181 1.181-3.196 0-4.377a2.411 2.411 0 0 0-1.598-.833zM11.653 6.2c.694 0 1.25.486 1.25 1.18 0 .695-.486 1.251-1.181 1.251-.695 0-1.25-.485-1.25-1.18s.555-1.251 1.18-1.251zm1.51 3.792c.049-.006.088.046.088.098-.139.694-.695 1.181-1.39 1.181-.694 0-1.32-.487-1.46-1.112 0 0 .002-.07.071 0 .487.278.972.348 1.32.278.346 0 .833-.07 1.32-.416a.092.092 0 0 1 .05-.029zm.723 2.511c.058.013.06.106.06.158-.209.903-.973 1.666-1.946 1.666a2.167 2.167 0 0 1-2.084-1.528c-.07-.07 0-.138.138-.138.695.347 1.39.416 1.877.416.486 0 1.18-.14 1.875-.556.035-.017.06-.022.08-.018zm.597 3.018c.049-.013.087.09.087.195-.278 1.181-1.25 2.085-2.5 2.155-1.251 0-2.293-.835-2.57-1.946 0-.139.068-.278.207-.209.834.486 1.737.556 2.362.556s1.529-.208 2.362-.694c.018-.035.036-.053.052-.057z"},child:[]}]})(s)}function U_e(s){return Z({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13 5l.855 3.42 3.389-.971 1.501 2.6-2.535 2.449 2.535 2.451-1.5 2.6-3.39-.971-.855 3.422h-3l-.855-3.422-3.39.971-1.501-2.6 2.535-2.451-2.534-2.449 1.5-2.6 3.39.971.855-3.42h3m0-2h-3c-.918 0-1.718.625-1.939 1.516l-.354 1.412-1.4-.4c-.184-.053-.369-.078-.552-.078-.7 0-1.368.37-1.731 1l-1.5 2.6c-.459.796-.317 1.802.342 2.438l1.047 1.011-1.048 1.015c-.66.637-.802 1.643-.343 2.438l1.502 2.6c.363.631 1.031 1 1.731 1 .183 0 .368-.025.552-.076l1.399-.401.354 1.415c.222.885 1.022 1.51 1.94 1.51h3c.918 0 1.718-.625 1.939-1.516l.354-1.414 1.399.4c.184.053.369.077.552.077.7 0 1.368-.37 1.731-1l1.5-2.6c.459-.796.317-1.8-.342-2.438l-1.047-1.013 1.047-1.013c.66-.637.801-1.644.342-2.438l-1.5-2.6c-.365-.631-1.031-1-1.732-1-.184 0-.368.025-.551.076l-1.4.401-.354-1.413c-.22-.884-1.02-1.509-1.938-1.509zM11.5 10.5c1.104 0 2 .895 2 2 0 1.104-.896 2-2 2s-2-.896-2-2c0-1.105.896-2 2-2m0-1c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3z"},child:[]}]})(s)}function $_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.707 17.707 13.414 12 7.707 6.293 6.293 7.707 10.586 12l-4.293 4.293zM15 6h2v12h-2z"},child:[]}]})(s)}function P_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M376 211H256V16L136 301h120v195z"},child:[]}]})(s)}function W_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32l-64 96 80 16-16 80 64-96-80-16 16-80zm-96 217c-1.9 0-9.8 3-15.8 6.7-2.8 1.7-5.3 3.5-7.2 4.8v119c1.9 1.3 4.4 3.1 7.2 4.8 6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 5.9-3.7 10.6-7.3 10.6-7.3l2.5-2H201V265h-12.1l-2.5-2s-4.7-3.6-10.6-7.3c-6-3.7-13.9-6.7-15.8-6.7zm192 0c-1.9 0-9.8 3-15.8 6.7-5.9 3.7-10.6 7.3-10.6 7.3l-2.5 2H311v110h12.1l2.5 2s4.7 3.6 10.6 7.3c6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 2.8-1.7 5.3-3.5 7.2-4.8v-119c-1.9-1.3-4.4-3.1-7.2-4.8-6-3.7-13.9-6.7-15.8-6.7zm-133 16v110h14V265h-14zm32 0v110h42V265h-42zM95.5 311c-18.8 0-36.6 9.2-49.94 22.7C32.22 347.1 23 365 23 384v106h18V384c0-13 6.78-27.1 17.32-37.7C68.85 335.8 82.8 329 95.5 329H119v-18H95.5zm297.5 0v18h22.9c13.1 0 27.1 6.8 37.7 17.4C464.2 357 471 371 471 384v106h18V384c0-19-9.2-37-22.7-50.4-13.4-13.4-31.4-22.6-50.4-22.6H393z"},child:[]}]})(s)}function B_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M20.127 52.803v58.986L250.46 245.153c26.367-28.823 70.087-36.533 105.313-16.195 35.29 20.374 50.465 62.207 38.567 99.503l101.648 58.855-64.728-74.65 35.638-37.352-57.27-7.687 84.72-86.92-125.71 33.186 12.995-120.208-66.578 96.363-27.448-80.593-16.353 88.77L20.127 52.803zm0 105.12l-.008.018.007.005v-.02zm0 .022l-.002 87.582 155.344 89.95-89.94 33.287h135.493l-63.658 99.87 116.22-70.083 15.77 85.852 38.543-80.01 63.66 87.018-5.853-87.047 90.54 17.268-102.4-59.198c-26.546 26.964-68.89 33.744-103.183 13.945-34.322-19.816-49.62-59.928-39.49-96.424L20.127 157.945zm316.6 119.442c-.938-.003-1.874.027-2.805.092-12.42.86-24.164 7.707-30.9 19.375-10.78 18.67-4.455 42.27 14.214 53.047 18.67 10.78 42.27 4.455 53.047-14.214 10.78-18.67 4.454-42.27-14.215-53.047-6.125-3.536-12.78-5.23-19.34-5.253z"},child:[]}]})(s)}function J_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M33.125 19.406L135.5 128.22l81-23.157 18.72-5.344-7.564 17.936-46.125 109.78 134.282-70 26.157-13.655L328.436 170 256.5 309.25l91.25-57.125 22.97-14.375-9.22 25.47-34.625 95.624 71-36.375 21.188-10.845L410.906 334l-33.937 93.063 45.124-6.688 4.53-.656 3.313 3.155 64.313 61.47-30.5-80.5 23.313-46.908-72.5 39.532 51.062-141.158-91.188 47.47 72.344-142.813-128.217 82.81L421.875 70.063 239.03 168.69l30.44-99.563-103.845 25.25-132.5-74.97zM18.155 30.78l77.876 108.25-31.124 75.532 94.125-46.78-98.905 166.812 190.25-99.656-101.03 185.406 140.25-79.063-46.94 102.22 106.5-53-45.655 92.28 86.5-14.467 93.47 31.562-63.158-60.344-56.125 8.314-15.53 2.312 5.374-14.75 31.158-85.437-70.907 36.31-21.124 10.814 8.094-22.313 33.47-92.436-97.22 60.875-28.938 18.092L224.22 331l74.06-143.344-131.06 68.313-22.97 12 10.03-23.908 48.626-115.687-67.75 19.375-5.5 1.563-3.875-4.157L18.157 30.78z"},child:[]}]})(s)}function R_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M288.3 13.4c-12.3-.01-23 6.49-27.3 15.31l-2.9 5.95-6.6-1.01c-5.5-.85-11.3-1.32-17.1-1.32-18.8 0-35.7 4.5-47.3 11.14-11.5 6.64-16.9 14.59-16.9 22 0 7.42 5.4 15.37 16.9 22 11.6 6.64 28.5 11.13 47.3 11.13 7.5-.02 14.9-.74 21.8-2.13l6.3-1.23 3.2 5.46c5.6 9.2 23.7 18.2 44.7 18.2 13.9 0 26.4-3.6 34.8-8.8 8.4-5.2 12.2-11.23 12.2-16.9 0-5.09-3-10.48-10-15.44-6.9-4.97-17.6-8.87-30-9.95l-18.3-1.59 12.5-13.49c4.1-4.41 6.1-9.6 6.1-14.87 0-12.88-12.4-24.46-29.4-24.46zM152.2 65.46C84.8 102.3 39 173.9 39 256c0 32.1 7 62.6 19.54 90 5.95-7.9 10.48-13.4 12.67-16C62.05 307.2 57 282.2 57 256c0-74 40.27-138.5 100.1-172.78-3.1-5.39-4.9-11.34-4.9-17.74v-.02zm210.7 1.75c7.5 6.93 12.5 15.9 12.5 25.99 0 1.14-.1 2.27-.2 3.38C423.7 132.9 455 190.7 455 256c0 23.7-4.2 46.5-11.8 67.6l18.3 2.2c7.4-21.9 11.5-45.4 11.5-69.8 0-80.8-44.4-151.5-110.1-188.79zm58.6 270.49c-11.1.2-23 1.1-35.9 3.1l-.5.1-.5.1c-25.8 7.3-37.1 15.2-46.4 24.7l-2.2 2.2-.3 3.1c-3.4 29.6-5.8 60 0 91.8l1.3 6.8 6.8.6c30.6 2.6 58.7 1.4 86.2 0l1-.1.9-.2c18.5-5.2 34.4-12.8 46.4-24.6l1.7-1.6.6-2.2c10-33.4 3.4-63.8.4-92.7l-.8-7.4-7.3-.7c-16.2-1.5-32.8-3.2-51.4-3zM79.62 348.2c-4.94 6.1-11.43 14.5-18.58 25.6-12.29 18.9-22.53 42.4-20.51 54.9 1.43 8.8 6.97 19.6 14.51 27.6 7.54 7.9 16.69 12.8 24.58 12.8 7.87 0 17.03-4.9 24.58-12.8 7.5-8 13.1-18.8 14.5-27.6 2-12.5-8.2-36-20.5-54.9-7.15-11-13.64-19.5-18.58-25.6zM427 355.7c1.7 0 3.3 0 5 .1 5.4.1 10.7.4 16 .8-5.9 3.4-12.1 6.8-19.5 9.9l-2.4.2c-19.5 1.4-37.7.3-55.4-2 4.7-2 10.5-4 18.3-6.2 13.8-2.2 26.3-2.9 38-2.8zm38 11.6c2.8 22.9 5 44.5-1 66.6-7 6.3-16 11.4-27 15.4 3-22.5 2-44.8-.5-66.6 11.3-5 20.2-10.2 28.5-15.4zm-112.2 13.1c20.7 3.2 42.3 5.4 65.8 4.5 2.5 23 3.5 45.6-.4 67.8-21.5 1-43.1 1.5-65.8-.1-3.5-24-2.2-47.9.4-72.2zm-216.4 34.7c.9 5.5 1 11 .1 16.4-.3 1.6-.6 3.3-1 4.9C170 459.5 211.4 473 256 473c21.6 0 42.5-3.2 62.3-9.1l-2-18.2c-19 6-39.3 9.3-60.3 9.3-44.9 0-86.3-14.8-119.6-39.9z"},child:[]}]})(s)}function Yl(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M140 29.92c-31.4 0-59.89 3.25-79.89 8.25-9.9 2.5-17.8 5.51-22.4 8.25-3.2 1.87-4.1 3.15-4.5 3.58.4.43 1.3 1.71 4.5 3.58 4.6 2.74 12.5 5.75 22.4 8.25 20 5 48.49 8.25 79.89 8.25h5.7c5.3-2 11.1-3.78 17.6-5.4 20.3-5.08 46.5-8.42 75.8-9.36 1.2-.57 2.3-1.14 3.2-1.7 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zm232 0c-31.4 0-59.9 3.25-79.8 8.25-10 2.5-17.9 5.51-22.5 8.25-3.1 1.87-4.1 3.15-4.5 3.58.4.43 1.4 1.71 4.5 3.58.9.56 2 1.13 3.2 1.7 29.3.94 55.5 4.28 75.8 9.36 6.5 1.62 12.3 3.4 17.6 5.4h5.7c31.4 0 59.9-3.25 79.8-8.25 10-2.5 17.9-5.51 22.5-8.25 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zM33.01 71.44V369.9c0 4.3 1.8 8 6.8 12.3 5 4.3 13.1 8.5 23.3 11.9 15.3 5.1 35 8.5 55.89 9.8V278.3l-16.5 28.6-7.79-4.5c-27.4-15.9-44.3-45.3-44.4-77v-9h52.59c-.6 2.6-.9 5.3-.9 8.1 0 13.1 6.8 24.8 17 31.7v-63.4c-1.9 1.3-3.6 2.7-5.2 4.2l-25.99-45.1 7.8-4.5c7.49-4.2 15.29-7.3 23.39-9.3V87.61c-24.19-1.08-45.99-4.01-63.19-8.32-8.9-2.21-16.5-4.76-22.8-7.85zm445.99 0c-6.3 3.09-14 5.63-22.8 7.84-17.2 4.31-39 7.24-63.2 8.32v50.6c8.1 2 16 5.1 23.4 9.3l7.7 4.5-4.4 7.8-21.5 37.2c-1.6-1.5-3.3-2.9-5.2-4.2v63.4c10.2-6.9 17-18.6 17-31.7 0-2.8-.3-5.5-.9-8.1h50.8v9c0 31.8-17 61.1-44.4 77l-7.8 4.5-14.7-25.5v122.5c20.9-1.3 40.7-4.7 55.9-9.8 10.2-3.4 18.3-7.6 23.3-11.9 5-4.3 6.8-8 6.8-12.3zM256 73c-34.7 0-66.2 3.57-88.3 9.1-11.1 2.77-19.8 6.09-25.1 9.19-4.3 2.58-5.3 4.42-5.5 4.71.2.29 1.2 2.12 5.5 4.7 5.3 3.1 14 6.4 25.1 9.2 22.1 5.5 53.6 9.1 88.3 9.1 34.7 0 66.2-3.6 88.3-9.1 11.1-2.8 19.8-6.1 25.1-9.2 4.3-2.58 5.3-4.41 5.5-4.7-.2-.29-1.2-2.13-5.5-4.71-5.3-3.1-14-6.42-25.1-9.19-22.1-5.53-53.6-9.1-88.3-9.1zm118.9 23c.1.1.1.1.1 0s0-.1-.1 0zm-237.8 0c-.1-.1-.1-.1-.1 0s0 .1.1 0zm-.1 22.1V448c0 5 2.2 9.3 7.9 14.2 5.6 4.8 14.7 9.5 25.9 13.3 22.6 7.5 54 11.5 85.2 11.5 31.2 0 62.6-4 85.2-11.5 11.2-3.8 20.3-8.5 25.9-13.3 5.7-4.9 7.9-9.2 7.9-14.2V118.1c-7.2 3.7-16 6.6-26.3 9.3-24.2 6-56.7 9.6-92.7 9.6s-68.5-3.6-92.7-9.6c-10.3-2.7-19.1-5.6-26.3-9.3zM256 191c16.8 0 33.5 4.4 48.5 13l7.8 4.5-4.5 7.8-24.1 41.6c-7.3-6.7-17-10.9-27.7-10.9s-20.4 4.2-27.7 10.9l-28.6-49.4 7.8-4.5c15-8.7 31.7-13 48.5-13zm0 74c12.8 0 23 10.2 23 23s-10.2 23-23 23-23-10.2-23-23 10.2-23 23-23zm-98 15h57.8c-.5 2.6-.8 5.3-.8 8 0 18.1 12 33.7 28.5 39l-29.2 50.5-7.8-4.5c-30-17.3-48.5-49.4-48.5-84zm138.2 0H352v9c0 34.6-18.5 66.7-48.5 84l-7.8 4.5-28.8-50c17.3-4.8 30.1-20.8 30.1-39.5 0-2.7-.3-5.4-.8-8z"},child:[]}]})(s)}function F_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"},child:[]}]})(s)}function G_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.7 21.04l-194.4.41L21.04 159.3l.41 194.4L159.3 491l194.4-.4L491 352.7l-.4-194.4L352.7 21.04zm-8 19.66l126.2 125.7.4 178.3-123.1 123.6-2.6 2.6-178.3.4L41.08 345.6l-.38-178.3L166.4 41.08l178.3-.38zm-7.5 18.01l-163.3.34L58.71 174.8l.34 163.3L174.8 453.3l163.3-.3 115.2-115.8-.3-163.3L337.2 58.71zM108.4 210.4c5.3 0 10.8.5 16.4 1.3 5.7.8 11.5 2 17.5 3.6v20.5c-5.3-2.4-10.5-4.2-15.6-5.4-5.1-1.2-9.9-1.8-14.4-1.8-6 0-10.4.8-13.25 2.5-2.87 1.6-4.3 4.2-4.3 7.7 0 2.6.96 4.6 2.87 6.1 1.95 1.4 5.48 2.7 10.58 3.7l10.6 2.1c10.8 2.2 18.5 5.5 23.1 9.9 4.5 4.5 6.8 10.8 6.8 18.9 0 10.7-3.2 18.7-9.5 24-6.4 5.2-16.1 7.8-29.2 7.8-6.1 0-12.3-.6-18.51-1.8-6.2-1.1-12.41-2.9-18.61-5.2v-21.1c6.2 3.3 12.19 5.8 17.96 7.5 5.82 1.6 11.46 2.4 16.76 2.4 5.5 0 9.7-.9 12.6-2.7 2.9-1.8 4.4-4.4 4.4-7.8 0-3.1-1-5.4-3-7.1-2-1.6-5.9-3.1-11.8-4.4l-9.7-2.1c-9.73-2.1-16.85-5.4-21.37-10-4.47-4.5-6.7-10.7-6.7-18.4 0-9.7 3.12-17.1 9.37-22.3 6.25-5.3 15.24-7.9 27-7.9zm187.7 0c15.6 0 27.8 4.5 36.7 13.5 8.9 8.9 13.3 21.2 13.3 37 0 15.7-4.4 28-13.3 37-8.9 8.9-21.1 13.4-36.7 13.4-15.6 0-27.8-4.5-36.7-13.4-8.9-9-13.3-21.3-13.3-37 0-15.8 4.4-28.1 13.3-37 8.9-9 21.1-13.5 36.7-13.5zm-141.9 1.8h89.6v18.9h-32.2v78.3h-25.1v-78.3h-32.3v-18.9zm205.8 0h41.6c12.3 0 21.8 2.8 28.4 8.3 6.7 5.4 10 13.2 10 23.4s-3.3 18.1-10 23.6c-6.6 5.4-16.1 8.2-28.4 8.2H385v33.7h-25v-97.2zm-63.9 16.4c-7.7 0-13.6 2.8-17.8 8.5-4.2 5.6-6.3 13.6-6.3 23.8 0 10.2 2.1 18.1 6.3 23.8 4.2 5.6 10.1 8.4 17.8 8.4 7.7 0 13.6-2.8 17.8-8.4 4.2-5.7 6.3-13.6 6.3-23.8 0-10.2-2.1-18.2-6.3-23.8-4.2-5.7-10.1-8.5-17.8-8.5zm88.9 1.8v27.1h13.9c4.9 0 8.6-1.2 11.3-3.5 2.6-2.4 3.9-5.8 3.9-10.1s-1.3-7.7-3.9-10c-2.7-2.4-6.4-3.5-11.3-3.5H385z"},child:[]}]})(s)}function H_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M327.467 19.992c.748 14.94 2.317 51.268 2.59 98.76 3.474-.286 6.557-.381 9.72 1.08 18.04 8.345 27.243 29.326 27.026 50.506-.217 21.18-11.283 44.136-36.104 54.307a41.62 41.62 0 0 1-2.486.923c-3.408 80.504-12.307 166.37-33.754 225.5-6.876 15.831-17.029 29.217-26.828 40.94l55.27.422c20.676-12.19 32.041-27.395 36.32-46.407l17.558 3.954c-3.67 16.312-11.99 30.662-24.511 42.677l143.052 1.094c-5.13-14.524-16.16-46.501-20.357-70.217C451.89 293.171 450.15 45 450.025 19.992zM18.279 38.984l.881 18.725c17.856 12.047 32.035 23.91 45.969 35.527 12.887-11.156 2.404-29.725-5.82-39.091-13.668-5.346-27.335-10.467-41.03-15.16zM86.723 65.13c4.77 14.56 3.347 29.656-7.477 39.746 24.105 19.479 50.832 38.151 97.1 55.635 13.836-22.588 12.08-43.852-3.338-60.739-29.03-10.9-57.703-22.997-86.285-34.642zm-31.721 42.988V400h17.996V122.723c-6.187-4.856-12.114-9.73-17.996-14.606zm145.264 1.434c3.253 8.283 4.54 16.754 3.982 25.043-.765 11.35-4.673 22.135-10.545 32.095 16.926 5.691 36.192 11.248 58.451 16.655l2.604.633 1.834 1.953c9.223 9.826 22.535 17.206 35.469 21.006 12.933 3.8 25.473 3.655 31.814 1.056 18.024-7.385 24.773-22.363 24.932-37.84.152-14.822-7.069-28.554-15.479-33.306-45.88-1.699-89.948-12.607-133.062-27.295zm-33.264 66.476V400h17.996V182.605a502.784 502.784 0 0 1-17.996-6.578zM32 419.002v17.996h176v-17.996z"},child:[]}]})(s)}function V_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18.36 6.64a9 9 0 1 1-12.73 0"},child:[]},{tag:"line",attr:{x1:"12",y1:"2",x2:"12",y2:"12"},child:[]}]})(s)}function Z_e(s){return Z({attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},child:[]}]})(s)}function X_e(s){return Z({attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 0l-6 8h6l-4 8 14-10h-8l6-6z"},child:[]}]})(s)}const V3e={SET:qxe,WORKING:$M,UNREACH:BM,LOWBAT:PM,MAINTAIN:$L,ERROR:UL,DIRECTION:QL,CONNECTED:BM,ACTUAL:U_e,SECOND:$_e,PRESS_LONG:bL,PRESS:vL,MUTE:YL,ACCURACY:B_e,RADIUS:r_e,ELEVATION:e_e,LATITUDE:t_e,LONGITUDE:o_e,GPS:kL,ON_ACTUAL:WM,ON_SET:WM,OPEN:SL,STOP:G_e,WATER_ALARM:El,WASTE_ALARM:Yl,PAUSE:Kxe,STATE:R_e,BATTERY:PM,WASTE:Yl,WATER:El,WORK_MODE:$M,MODE:_L,POWER:i_e,BOOST:Q_e,HUMIDITY:c_e,TEMPERATURE:l_e,BRIGHTNESS:a_e,MOTION:xL,FIRE:M_e,WINDOW:I4,SMOKE:u_e,SWING:H_e,SPEED:F_e,DIMMER:Z_e,ON:V_e,COLOR_TEMP:fL,ELECTRIC_POWER:X_e,CURRENT:P_e,VOLTAGE:W_e,CONSUMPTION:b_e,FREQUENCY:J_e,HUE:N_e};class A4 extends M.Component{static generateFile(e,t){const i=window.document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",window.document.body.appendChild(i),i.click(),window.document.body.removeChild(i)}handleFileSelect=e=>{const t=e.target,i=t==null?void 0:t.files;if(!i||!i.length){console.error("No files found. Please report to developers");return}const r=i[0];if(r){const o=new window.FileReader;o.onload=()=>{var a;const n=((a=o.result)==null?void 0:a.toString())||"";try{const c=JSON.parse(n);c.native&&c.common?c.common.name!==this.props.common.name?this.props.onError&&this.props.onError(h.t("ra_otherConfig",c.common.name)):this.props.onLoad&&this.props.onLoad(c.native):this.props.onError&&this.props.onError(h.t("ra_invalidConfig"))}catch(c){this.props.onError&&this.props.onError(c==null?void 0:c.toString())}},o.readAsText(r)}else alert("Failed to open JSON File")};download(){const e={_id:`system.adapter.${this.props.common.name}.${this.props.instance}`,common:JSON.parse(JSON.stringify(this.props.common)),native:this.props.native};e.common.news&&delete e.common.news,e.common.titleLang&&delete e.common.titleLang,e.common.desc&&delete e.common.desc,A4.generateFile(`${e._id}.json`,e)}upload(){const e=window.document.createElement("input");e.setAttribute("type","file"),e.setAttribute("id","files"),e.setAttribute("opacity","0"),e.addEventListener("change",this.handleFileSelect,!1),e.click()}render(){return M.createElement("div",{className:this.props.className,style:this.props.style},this.props.common.icon?M.createElement(me,{src:this.props.common.icon,style:{padding:8,width:64},alt:"logo"}):null,this.props.common.readme?M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Help",style:{marginRight:5,marginTop:5,float:"right"},onClick:()=>{const e=window.open(this.props.common.readme,"_blank");e==null||e.focus()}},M.createElement(PL,null)):null,M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Load config",style:{marginRight:5,marginTop:5,float:"right"},title:h.t("ra_Load configuration from file"),onClick:()=>this.upload()},M.createElement(Og,null)),M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Save config",style:{marginRight:5,marginTop:5,float:"right"},title:h.t("ra_Save configuration to file"),onClick:()=>this.download()},M.createElement(mg,null)))}}class m4{static text2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static getTitle(e){const t=m4.extractHeader(e);let i=t.body;const r=t.header;if(!r.title){i=i.replace(/{[^}]*}/g,""),i=i.trim();const o=i.replace(/\r/g,"").split(` -`);for(let n=0;n{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===l?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static removeDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static onCopy(e,t){s0(t),e&&e.stopPropagation(),e&&e.preventDefault()}}function K_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function O4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"248",cx:"160",fill:"none",strokeWidth:"15"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function Ts(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"}))}function E4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"140.83068",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"251",cx:"241",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"200.94531",x2:"240.5",y1:"45.94531",x1:"240.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"78.7979",x:"214.5",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"84",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"83.5",y1:"46.94531",x1:"83.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"57.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function q_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",onClick:e=>s.onClick&&s.onClick(e),width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}))}function eSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}),M.createElement("path",{fill:"currentColor",stroke:"null",d:"m261,270l-12,0l0,-24c0,-33.12 -26.88,-60 -60,-60s-60,26.88 -60,60l0,24l-12,0c-13.2,0 -24,10.8 -24,24l0,120c0,13.2 10.8,24 24,24l144,0c13.2,0 24,-10.8 24,-24l0,-120c0,-13.2 -10.8,-24 -24,-24zm-72,108c-13.2,0 -24,-10.8 -24,-24s10.8,-24 24,-24s24,10.8 24,24s-10.8,24 -24,24zm37.2,-108l-74.4,0l0,-24c0,-20.52 16.68,-37.2 37.2,-37.2c20.52,0 37.2,16.68 37.2,37.2l0,24z"}))}function tSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function Ai(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("rect",{fill:"none",rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor"}),M.createElement("ellipse",{fill:"none",ry:"54",rx:"54",cy:"160",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor"}))}function sSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 24 24",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",stroke:"currentColor",d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"}))}const Ko={root:{width:"100%",height:"100%"},overflowHidden:{overflow:"hidden"},container:{height:"100%"}};function iSe(s){var e;return M.createElement(j.Paper,{elevation:Number.isNaN(s.elevation)?1:s.elevation,style:{...Ko.root,...((e=s.styles)==null?void 0:e.root)||void 0,...s.overflow!=="visible"?Ko.overflowHidden:void 0},onKeyDown:s.onKeyDown,tabIndex:s.tabIndex},M.createElement(j.Grid2,{container:!0,direction:"column",wrap:"nowrap",sx:Ko.container},s.children))}const vl={root:{height:"100%",overflow:"hidden"},overflowAuto:{overflow:"auto"}};function rSe(s){return M.createElement(j.Grid2,{sx:{...vl.root,...(s==null?void 0:s.style)||void 0,...s.overflow==="auto"?vl.overflowAuto:void 0},ref:s.ref},s.children)}function oSe(s){return M.createElement(j.Grid2,{container:!0,alignItems:"center"},s.children)}const ds=24,pe=32,nSe=16,ge=20,f4=s=>s==="dark"?"#62ff25":"#37c400",x4=s=>s==="dark"?"#ee56ff":"#a204b4",aSe=s=>s==="dark"?"#fff46e":"#b89101",_4=s=>"#ff6d69",S4=s=>"#5773ff",k4="#ff413c",Y4="#86211f",Wn="#57ff45",Bn="#098c04",Jn="#f3ad11",Rn="#6c5008",w={toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:16},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:8},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustom_center:{textAlign:"center"},columnCustom_left:{textAlign:"left"},columnCustom_right:{textAlign:"right"},width100:{width:"100%"},transparent_10:{opacity:.1},transparent_20:{opacity:.2},transparent_30:{opacity:.3},transparent_40:{opacity:.4},transparent_50:{opacity:.5},transparent_60:{opacity:.6},transparent_70:{opacity:.7},transparent_80:{opacity:.8},transparent_90:{opacity:.9},transparent_100:{opacity:1},headerRow:{paddingLeft:8,height:38,whiteSpace:"nowrap",userSelect:"none"},buttonClearFilter:{position:"relative",float:"right",padding:0},buttonClearFilterIcon:{zIndex:2,position:"absolute",top:0,left:0,color:"#FF0000",opacity:.7},tableDiv:{paddingTop:0,paddingLeft:0,width:"calc(100% - 8px)",height:"calc(100% - 38px)",overflow:"auto"},tableRow:s=>({pl:1,height:pe,lineHeight:`${pe}px`,verticalAlign:"top",userSelect:"none",position:"relative",width:"100%","&:hover":{background:`${s.palette.mode==="dark"?s.palette.primary.dark:s.palette.primary.light} !important`,color:O.invertColor(s.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"}),tableRowLines:s=>({borderBottom:`1px solid ${s.palette.mode==="dark","#8888882e"}`,"& > div":{borderRight:`1px solid ${s.palette.mode==="dark","#8888882e"}`}}),tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:pe+10},tableRowAliasReadWrite:{height:pe+22},tableRowFocused:s=>({"&:after":{content:'""',position:"absolute",top:1,left:1,right:1,bottom:1,border:s.palette.mode?"1px dotted #000":"1px dotted #FFF"}}),checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:pe-4,height:pe-4,mt:"2px",float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:s=>({marginRight:8,width:pe-4,height:pe-4,cursor:"pointer",color:s.palette.secondary.main||"#fbff7d",verticalAlign:"top"}),cellIdIconDocument:{verticalAlign:"middle",marginLeft:(pe-ge)/2,marginRight:8,width:ge,height:ge},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8,position:"absolute",right:3},cellCopyButtonInDetails:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8},cellEditButton:{width:ge,height:ge,color:"white",position:"absolute",top:(pe-ge)/2,right:ge+3,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,ml:"5px",overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellNameWithDesc:{lineHeight:"normal"},cellNameDivDiv:{},cellDescription:{fontSize:10,opacity:.5,fontStyle:"italic"},cellIdAlias:s=>({fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:s.palette.mode==="dark"?"#009900":"#007700"}}),cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:ds,height:ds,display:"inline-block"},"& .itemIconFolder":{marginLeft:3}},cellRole:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellRoom:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellEnumParent:{opacity:.4},cellFunc:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValue:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValueButton:{marginTop:5},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:pe,fontSize:16,display:"flex",overflow:"hidden",textOverflow:"ellipsis",position:"relative",verticalAlign:"top","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellValueFile:{color:"#2837b9"},cellValueTooltipTitle:{fontStyle:"italic",width:100,display:"inline-block"},cellValueTooltipValue:{width:120,display:"inline-block",whiteSpace:"nowrap",textOverflow:"ellipsis"},cellValueTooltipImage:{width:100,height:"auto"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden",pointerEvents:"none"},tooltip:{pointerEvents:"none"},cellValueTextUnit:{marginLeft:4,opacity:.8,display:"inline-block"},cellValueTextState:{opacity:.7},cellValueTooltipCopy:{position:"absolute",bottom:3,right:3},cellValueTooltipEdit:{position:"absolute",bottom:3,right:15},cellButtons:{display:"inline-block",verticalAlign:"top"},cellButtonsButton:{display:"inline-block",opacity:.5,width:ge+4,height:ge+4,"&:hover":{opacity:1},p:0,mt:"-2px"},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:40},cellButtonsButtonAlone:{ml:`${ge+6}px`,pt:0,mt:"-2px"},cellButtonsButtonWithCustoms:s=>({color:s.palette.mode==="dark"?s.palette.primary.main:s.palette.secondary.main}),cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:s=>({position:"absolute",top:ge/2-2,opacity:.7,width:ge-2,height:ge-2,color:s.palette.action.active,"&:hover":{opacity:1}}),cellButtonsValueButtonCopy:{right:8,cursor:"pointer"},cellButtonsValueButtonEdit:{right:ge/2+16},cellDetailsLine:{display:"flex",alignItems:"center",width:"100%",height:32,fontSize:16},cellDetailsName:{fontWeight:"bold",marginRight:8,minWidth:80},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{mt:0,mb:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:s=>({background:`${s.palette.primary.main} !important`,color:`${O.invertColor(s.palette.primary.main,!0)} !important`}),header:{width:"100%"},headerCell:{display:"inline-block",verticalAlign:"top"},headerCellValue:{paddingTop:4,fontSize:16},headerCellInput:{width:"calc(100% - 5px)",height:pe,pt:0,"& .itemIcon":{verticalAlign:"middle",width:ds,height:ds,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:ds,height:ds,mr:"5px",display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:8,width:32,height:32,borderRadius:8,background:"#FFFFFF"},enumIcon:{marginTop:4,marginLeft:4,width:24,height:24},enumDialog:{overflow:"hidden"},enumList:{minWidth:250,height:"calc(100% - 50px)",overflow:"auto"},enumCheckbox:{minWidth:0},buttonDiv:{display:"flex",height:"100%",alignItems:"center"},aclText:{fontSize:13,marginTop:6},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},fontSizeTitle:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}}},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:5,backgroundColor:"background.default"},iconDeviceConnected:s=>({color:s.palette.mode==="dark"?Wn:Bn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceDisconnected:s=>({color:s.palette.mode==="dark"?Jn:Rn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceError:s=>({color:s.palette.mode==="dark"?k4:Y4,opacity:.8,position:"absolute",top:4,right:50,width:20}),resizeHandle:{display:"block",position:"absolute",cursor:"col-resize",width:7,top:2,bottom:2,zIndex:1},resizeHandleRight:{right:3,borderRight:"2px dotted #888","&:hover":{borderColor:"#ccc",borderRightStyle:"solid"},"&.active":{borderColor:"#517ea5",borderRightStyle:"solid"}},invertedBackground:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"}),invertedBackgroundFlex:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}),contextMenuEdit:s=>({color:s.palette.mode==="dark"?"#ffee48":"#cbb801"}),contextMenuEditValue:s=>({color:s.palette.mode==="dark"?"#5dff45":"#1cd301"}),contextMenuView:s=>({color:s.palette.mode==="dark"?"#FFF":"#000"}),contextMenuCustom:s=>({color:s.palette.mode==="dark"?"#42eaff":"#01bbc2"}),contextMenuACL:s=>({color:s.palette.mode==="dark"?"#e079ff":"#500070"}),contextMenuRoom:s=>({color:s.palette.mode==="dark"?"#ff9a33":"#642a00"}),contextMenuRole:s=>({color:s.palette.mode==="dark"?"#ffdb43":"#562d00"}),contextMenuDelete:s=>({color:s.palette.mode==="dark"?"#ff4f4f":"#cf0000"}),contextMenuKeys:{marginLeft:8,opacity:.7,fontSize:"smaller"},contextMenuWithSubMenu:{display:"flex"}};function MSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 436 436",style:s==null?void 0:s.style,width:"24",height:"24",className:"admin-button"},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function bl(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}function cSe(s,e){const t=[];for(let i=0;i{if(r==null)return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r}):uSe(s,(i,r,o)=>{if(r==null||e.includes(o))return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r})}function Ql(s,e,t){const i=document.createElement("a"),r=[];t.excludeSystemRepositories&&r.push("system.repositories");const o=r.length>0||t.excludeTranslations?Fn(e,r,t.excludeTranslations):e,n=t.beautify?JSON.stringify(o,null,2):JSON.stringify(o);i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(n)}`),i.setAttribute("download",s),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function vi(s,e,t,i){if(t||=0,i===void 0&&(i=s.length-1,!i))return s[0]===e;const r=Math.floor((t+i)/2);return e===s[r]?!0:i-1===t?s[t]===e||s[i]===e:e>s[r]?vi(s,e,r,i):eD.role.startsWith(p))||(l=!0)):l=!0),!l&&((I=n.common)==null?void 0:I.custom)==="_"&&(D!=null&&D.custom))l=!0;else if(!l&&((C=n.common)!=null&&C.custom)&&((m=n.common)==null?void 0:m.custom)!=="_"){const p=n.common.custom;if(!(D!=null&&D.custom))l=!0;else if(p==="_dataSources")Object.keys(D.custom).find(_=>_.startsWith("history.")||_.startsWith("sql.")||_.startsWith("influxdb."))||(l=!0);else if(Array.isArray(p)){const _=Object.keys(D.custom);p.find(x=>_.find(P=>P.startsWith(x)))&&(l=!0)}else p!==!0&&!Object.keys(D.custom).find(_=>_.startsWith(p))&&(l=!0)}}!l&&!e.expertMode&&(l=N.id==="system"||N.id==="enum"||N.id.startsWith("system.")||N.id.startsWith("enum.")||N.id.startsWith("_design/")||N.id.endsWith(".admin")||!!(D!=null&&D.expert)),!l&&r.id&&(N.fID===void 0&&(N.fID=N.id.toLowerCase()),l=!N.fID.includes(r.id)),!l&&r.idRx&&(l=!r.idRx.test(N.id)),!l&&r.name&&(D?(N.fName===void 0&&(N.fName=Ye(D.name,t)||"",N.fName=N.fName.toLowerCase()),l=!N.fName.includes(r.name)):l=!0),!l&&r.nameRx&&D&&(N.fName===void 0&&(N.fName=Ye(D.name,t)||"",N.fName=N.fName.toLowerCase()),l=!r.nameRx.test(N.fName)),!l&&e.role&&D&&(D?l=!(typeof D.role=="string"&&D.role.startsWith(r.role)):l=!0),!l&&r.room&&(l=!r.room.find(p=>p===N.id||N.id.startsWith(`${p}.`))),!l&&r.func&&(l=!r.func.find(p=>p===N.id||N.id.startsWith(`${p}.`))),!l&&r.type&&(l=!(N.obj&&N.obj.type&&N.obj.type===r.type)),!l&&a&&(l=!(N.obj&&N.obj.type&&a.includes(N.obj.type))),!l&&r.custom&&(D?r.custom==="_"?l=!!D.custom:l=!((A=D.custom)!=null&&A[r.custom]):l=!0)}return N.visible=!l,N.hasVisibleChildren=!1,s.children&&c<20&&s.children.forEach(D=>{Gn(D,e,t,i,r,o,n,a,c+1)&&(N.hasVisibleChildren=!0)}),N.sumVisibility=N.visible||N.hasVisibleChildren,o&&N.sumVisibility&&o.count++,N.id&&N.sumVisibility&&s.children&&s.children.forEach(D=>D.data.hasVisibleParent=!0),N.visible||N.hasVisibleChildren}function v4(s,e,t,i){var o;i||=[];const r=s.data;return r.sumVisibility&&(r.id&&t[r.id]&&t[r.id].type===e&&i.push(r.id),(o=s.children)==null||o.forEach(n=>v4(n,e,t,i))),i}function Ul(s,e,t,i,r,o){let n;return e==="alias"||e==="alias.0"?n=M.createElement(yN,{className:"iconOwn",style:{color:x4(i)}}):e==="0_userdata"||e==="0_userdata.0"?n=M.createElement(ng,{className:"iconOwn",style:{color:f4(i)}}):e.startsWith("_design/")||e==="system"?n=M.createElement(kr,{className:"iconOwn",style:{color:_4(i)}}):e==="system.adapter"?n=M.createElement(kr,{className:"iconOwn",style:{color:S4(i)}}):e==="system.group"?n=M.createElement(ga,{className:"iconOwn"}):e==="system.user"?n=M.createElement(Na,{className:"iconOwn"}):e==="system.host"?n=M.createElement(La,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?n=M.createElement(Qs,{className:"iconOwn"}):e.endsWith(".info")?n=M.createElement(la,{className:"iconOwn"}):s[e]&&s[e].type==="meta"?n=M.createElement(Kr,{className:"iconOwn"}):t<2&&s[`system.adapter.${e}`]&&(n=Zr(s,`system.adapter.${e}`,r,o)),n||null}function b4(s,e){var t,i;return(i=(t=s==null?void 0:s.obj)==null?void 0:t.common)!=null&&i.desc&&Ye(s.obj.common.desc,e)||null}function lSe(s,e){const t=b4(s,e);return t!=null&&t.startsWith("http")?M.createElement(j.Box,{component:"a",sx:w.cellIdTooltipLink,href:t,target:"_blank",rel:"noreferrer"},t):M.createElement("span",{style:w.cellIdTooltip},t||s.id||"")}function $l(s,e){var N,u,L,g,y,T,d,z,I,C;const t=e.imagePrefix||".";let i=Object.keys(s);i.sort((m,A)=>m===A?0:(m=m.replace(/\./g,"!!!"),A=A.replace(/\./g,"!!!"),m>A?1:-1)),e.root&&(i=i.filter(m=>m===e.root||m.startsWith(`${e.root}.`)));let r=[],o="",n=0;const a={data:{name:"",id:""},children:[]},c={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:s,customs:["_"],enums:[],hasSomeCustoms:!1,aliasesMap:{}};let l=a;for(let m=0;mv.role===P)?typeof P!="string"?console.warn(`Invalid role type "${typeof P}" in "${D._id}"`):c.roles.push({role:P,type:x.type}):A.startsWith("enum.rooms.")?(c.roomEnums.push(A),c.enums.push(A)):A.startsWith("enum.functions.")?(c.funcEnums.push(A),c.enums.push(A)):D.type==="enum"?c.enums.push(A):D.type==="instance"&&x&&(x.supportCustoms||(N=x.adminUI)!=null&&N.custom)&&(c.hasSomeCustoms=!0,c.customs.push(A.substring(15))),A.startsWith("alias.")&&((u=D.common.alias)!=null&&u.id))if(typeof D.common.alias.id=="string"){const v=D.common.alias.id;c.aliasesMap[v]?c.aliasesMap[v].includes(A)||c.aliasesMap[v].push(A):c.aliasesMap[v]=[A]}else{const v=D.common.alias.id.read;v&&(c.aliasesMap[v]?c.aliasesMap[v].includes(A)||c.aliasesMap[v].push(A):c.aliasesMap[v]=[A]);const ee=D.common.alias.id.write;ee&&(c.aliasesMap[ee]?c.aliasesMap[ee].includes(A)||c.aliasesMap[ee].push(A):c.aliasesMap[ee]=[A])}}c.ids.push(A);let _;do if(_=!1,!o||A.startsWith(`${o}.`)){if(p.length-n>1){let P=o;for(let v=n;vee.data.name===p[v]));else{const ee={data:{name:p[v],parent:l,id:P,obj:s[P],level:v,icon:Ul(s,P,v,e.themeType,e.lang,t),generated:!0}};l.children||=[],l.children.push(ee),l=ee,c.ids.push(P)}}const x={data:{name:p[p.length-1],title:Ye((L=D==null?void 0:D.common)==null?void 0:L.name,e.lang),obj:D,parent:l,icon:Zr(s,A,e.lang,t)||Ul(s,A,0,e.themeType,e.lang,t),id:A,hasCustoms:!!((g=D.common)!=null&&g.custom&&Object.keys(D.common.custom).length),level:p.length-1,generated:!1,button:D.type==="state"&&!!((y=D.common)!=null&&y.role)&&typeof D.common.role=="string"&&D.common.role.startsWith("button")&&((T=D.common)==null?void 0:T.write)!==!1,switch:D.type==="state"&&((d=D.common)==null?void 0:d.type)==="boolean"&&((z=D.common)==null?void 0:z.write)!==!1&&((I=D.common)==null?void 0:I.read)!==!1,url:!!((C=D.common)!=null&&C.role)&&typeof D.common.role=="string"&&D.common.role.startsWith("url")}};l.children||=[],l.children.push(x),l=x,n=p.length,r=p,o=A}else{let x=0;for(;r[x]===p[x];)x++;if(x>0){let P=r.length;for(r=r.splice(0,x),n=x,o=r.join(".");P>x;)l.data.parent?l=l.data.parent:console.error(`Parent is null for ${A} ${o} ${r.join(".")}`),P--}else l=a,r=[],o="",n=0;_=!0}while(_)}return c.roomEnums.sort((m,A)=>{var _,x,P,v;const D=Ye((x=(_=s[m])==null?void 0:_.common)==null?void 0:x.name,e.lang)||m.split(".").pop(),p=Ye((v=(P=s[A])==null?void 0:P.common)==null?void 0:v.name,e.lang)||A.split(".").pop();return D>p?1:D{var _,x,P,v;const D=Ye((x=(_=s[m])==null?void 0:_.common)==null?void 0:x.name,e.lang)||m.split(".").pop(),p=Ye((v=(P=s[A])==null?void 0:P.common)==null?void 0:v.name,e.lang)||A.split(".").pop();return D>p?1:Dm.role.localeCompare(A.role)),c.types.sort(),{info:c,root:a}}function Q4(s,e,t,i,r){if(s.data.id===e)return s;if(t||(t=e.split("."),r=0,i=t[r]),!s.children&&s.data.id!==e)return null;let o;if(s.children)for(let n=0;ni)break}return o?(r||=0,Q4(o,e,t,`${i}.${t[r+1]}`,r+1)):null}function U4(s,e,t,i){var n,a;if(!e)return{rooms:[],per:!1};i||=[];for(const c of s.roomEnums){const l=(n=s.objects[c])==null?void 0:n.common;if(!l)continue;const N=Ye(l.name,t);(a=l.members)!=null&&a.includes(e)&&!i.includes(N)&&i.push(N)}let r;const o=e.split(".");return o.pop(),e=o.join("."),s.objects[e]&&(r=i.length,U4(s,e,t,i)),{rooms:i,per:!r}}function Ds(s,e,t,i){var r,o;if(!e)return[];i||=[];for(let n=0;n946681200&&l<9466812e5&&(l*=1e3),l=l&&new Date(l).toString();else N==="number"?Number.isInteger(l)||(l=Math.round(l*1e8)/1e8,i&&(l=l.toString().replace(".",","))):N==="object"?l=JSON.stringify(l):N!=="string"?l=l.toString():l.startsWith("data:image/")&&(c="image"),typeof l!="string"&&(l=l.toString());const u={v:l};n&&n[l]!==void 0&&l!==n[l]&&(u.s=l,l=n[l],u.v=l),((g=u.v)==null?void 0:g.length)>40&&(u.c=u.v,u.v=`${u.v.substring(0,40)}...`),a!=null&&a.unit&&(u.u=a.unit);let L;if(s.full&&(typeof l=="string"&&l.length>100?L=[{t:r.value,v:`${l.substring(0,100)}...`}]:L=[{t:r.value,v:l}],t)){if(t.ack!==void 0&&t.ack!==null&&L.push({t:r.ack,v:t.ack.toString()}),t.ts&&L.push({t:r.ts,v:t.ts?O.formatDate(new Date(t.ts),e):""}),t.lc&&L.push({t:r.lc,v:t.lc?O.formatDate(new Date(t.lc),e):""}),t.from){let y=t.from.toString();y.startsWith("system.adapter.")&&(y=y.substring(15)),L.push({t:r.from,v:y})}if(t.user){let y=t.user.toString();y.startsWith("system.user.")&&(y=y.substring(12)),L.push({t:r.user,v:y})}t.c&&L.push({t:r.c,v:t.c}),L.push({t:r.quality,v:O.quality2text(t.q||0).join(", "),nbr:!0})}return{valText:u,valFull:L,fileViewer:c}}function NSe(s){const{state:e}=s;return{color:e!=null&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}function LSe(s,e){let t=e,i=1;const r=[];for(;i=t)r.push(0);else if(ithis.filterRefs[d]=f.createRef()),this.visibleCols=e.columns||le[e.width||"lg"].fields,e.types&&e.types.length===1){const d=this.visibleCols.indexOf("type");d!==-1&&this.visibleCols.splice(d,1)}this.possibleCols=le.xl.fields;let a=null;if(e.router){const d=e.router.getLocation();d.id&&d.dialog==="customs"&&(a=[d.id],this.pauseSubscribe(!0))}let c;Array.isArray(e.selected)?c=e.selected:c=[e.selected||""],c=c.map(d=>d.replace(/["']/g,"")).filter(d=>d),this.selectFirst=c.length&&c[0]?c[0]:this.selectFirst;const l=this.localStorage.getItem(`${e.dialogName||"App"}.columns`);let N;try{N=l?JSON.parse(l):null}catch{N=null}let u=null;try{u=u?JSON.parse(u):{}}catch{u={}}this.imagePrefix=e.imagePrefix||".";let L;const g=this.localStorage.getItem(`${e.dialogName||"App"}.foldersFirst`);g==="false"?L=!1:g==="true"?L=!0:L=e.foldersFirst===void 0?!0:e.foldersFirst;let y=!1;try{y=this.props.objectStatesView&&JSON.parse(this.localStorage.getItem(`${e.dialogName||"App"}.objectStatesView`)||"")||!1}catch{}this.state={loaded:!1,foldersFirst:L,selected:c,selectedNonObject:this.localStorage.getItem(`${e.dialogName||"App"}.selectedNonObject`)||"",filter:o,filterKey:0,focused:this.localStorage.getItem(`${e.dialogName||"App"}.focused`)||"",depth:0,expandAllVisible:!1,expanded:i,toast:"",scrollBarWidth:16,customDialog:a,editObjectDialog:"",editObjectAlias:!1,viewFileDialog:"",showAliasEditor:"",enumDialog:null,roleDialog:null,statesView:y,columns:N,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:this.localStorage.getItem(`${e.dialogName||"App"}.columnsAuto`)!=="false",columnsWidths:u,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,showAllExportOptions:!1,linesEnabled:this.localStorage.getItem(`${e.dialogName||"App"}.lines`)==="true",showDescription:this.localStorage.getItem(`${e.dialogName||"App"}.desc`)!=="false",showContextMenu:null,noStatesByExportImport:!1,beautifyJsonExport:!0,excludeSystemRepositoriesFromExport:!0,excludeTranslations:!1,tooltipInfo:null,aliasMenu:"",showRenameDialog:null},this.texts={name:e.t("ra_Name"),categories:e.t("ra_Categories"),value:e.t("ra_tooltip_value"),ack:e.t("ra_tooltip_ack"),ts:e.t("ra_tooltip_ts"),lc:e.t("ra_tooltip_lc"),from:e.t("ra_tooltip_from"),user:e.t("ra_tooltip_user"),c:e.t("ra_tooltip_comment"),quality:e.t("ra_tooltip_quality"),editObject:e.t("ra_tooltip_editObject"),deleteObject:e.t("ra_tooltip_deleteObject"),customConfig:e.t("ra_tooltip_customConfig"),copyState:e.t("ra_tooltip_copyState"),editState:e.t("ra_tooltip_editState"),ctrlForLink:e.t("ra_tooltip_ctrlForLink"),close:e.t("ra_Close"),filter_id:e.t("ra_filter_id"),filter_name:e.t("ra_filter_name"),filter_type:e.t("ra_filter_type"),filter_role:e.t("ra_filter_role"),filter_room:e.t("ra_filter_room"),filter_func:e.t("ra_filter_func"),filter_custom:e.t("ra_filter_customs"),filterCustomsWithout:e.t("ra_filter_customs_without"),objectChangedByUser:e.t("ra_object_changed_by_user"),objectChangedBy:e.t("ra_object_changed_by"),objectChangedFrom:e.t("ra_state_changed_from"),stateChangedBy:e.t("ra_state_changed_by"),stateChangedFrom:e.t("ra_state_changed_from"),ownerGroup:e.t("ra_Owner group"),ownerUser:e.t("ra_Owner user"),showAll:e.t("ra_show_all"),deviceError:e.t("ra_Error"),deviceDisconnected:e.t("ra_Disconnected"),deviceConnected:e.t("ra_Connected"),aclOwner_read_object:e.t("ra_aclOwner_read_object"),aclOwner_read_state:e.t("ra_aclOwner_read_state"),aclOwner_write_object:e.t("ra_aclOwner_write_object"),aclOwner_write_state:e.t("ra_aclOwner_write_state"),aclGroup_read_object:e.t("ra_aclGroup_read_object"),aclGroup_read_state:e.t("ra_aclGroup_read_state"),aclGroup_write_object:e.t("ra_aclGroup_write_object"),aclGroup_write_state:e.t("ra_aclGroup_write_state"),aclEveryone_read_object:e.t("ra_aclEveryone_read_object"),aclEveryone_read_state:e.t("ra_aclEveryone_read_state"),aclEveryone_write_object:e.t("ra_aclEveryone_write_object"),aclEveryone_write_state:e.t("ra_aclEveryone_write_state"),create:e.t("ra_Create"),createBooleanState:e.t("ra_create_boolean_state"),createNumberState:e.t("ra_create_number_state"),createStringState:e.t("ra_create_string_state"),createState:e.t("ra_create_state"),createChannel:e.t("ra_create_channel"),createDevice:e.t("ra_create_device"),createFolder:e.t("ra_Create folder")},this.levelPadding=e.levelPadding||nSe;const T=this.localStorage.getItem(`${this.props.dialogName||"App"}.table`);if(T)try{const d=JSON.parse(T),z=this.props.width||"lg";this.storedWidths=JSON.parse(JSON.stringify(le[z])),Object.keys(d).forEach(I=>{I==="id"?le[z].idWidth=d.id:I==="nameHeader"?le[z].widths.name=d[I]:le[z].widths[I]!==void 0&&(le[z].widths[I]=d[I])}),this.customWidth=!0}catch{}this.calculateColumnsVisibility()}async loadAllObjects(e){var i;const t=this.props;try{await new Promise(l=>{this.setState({updating:!0},()=>l())});const r=(this.props.objectsWorker?await this.props.objectsWorker.getObjects(e):await t.socket.getObjects(e,!0))||{};if(t.types&&ze.isWeb())for(let l=0;l{try{if(l(r[N]))this.objects[N]=r[N];else{const u=r[N]&&r[N].type;u&&(u==="channel"||u==="device"||u==="folder"||u==="adapter"||u==="instance")&&(this.objects[N]=r[N])}}catch(u){console.log(`Error by filtering of "${N}": ${u}`)}})}else if(t.types){this.objects={};const l=t.types;Object.keys(r).forEach(N=>{var L;const u=(L=r[N])==null?void 0:L.type;u&&(u==="channel"||u==="device"||u==="enum"||u==="folder"||u==="adapter"||u==="instance"||l.includes(u))&&(this.objects[N]=r[N])})}else this.objects=r;t.setObjectsReference&&t.setObjectsReference(this.objects),this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&t.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then(l=>{l!=null&&l.val||(this.defaultHistory="")}).catch(l=>window.alert(`Cannot get state: ${l}`));const o=await this.getAdditionalColumns();this.calculateColumnsVisibility(null,null,o);const{info:n,root:a}=$l(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=a,this.info=n;const c=((i=this.state.selected)==null?void 0:i.length)&&Q4(this.root,this.state.selected[0]);this.lastAppliedFilter=null,c&&!Gn(c,this.state.filter,this.props.lang,this.objects,void 0,void 0,t.customFilter,t.types)?this.setState({filter:{...hr},columnsForAdmin:o},()=>{this.setState({loaded:!0,updating:!1},()=>this.expandAllSelected(()=>this.onAfterSelect()))}):this.setState({loaded:!0,updating:!1,columnsForAdmin:o},()=>this.expandAllSelected(()=>this.onAfterSelect()))}catch(r){this.showError(r)}}static isNonExpertId(e){return!!it.#e.find(t=>e.startsWith(t))}expandAllSelected(e){const t=[...this.state.expanded];let i=!1;this.state.selected.forEach(r=>{const o=r.split("."),n=[];for(let a=0;a{this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}):this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}static getDerivedStateFromProps(e,t){const i={};let r=!1;return e.expertMode!==void 0&&e.expertMode!==t.filter.expertMode&&(r=!0,i.filter={...t.filter},i.filter.expertMode=e.expertMode),r?i:null}async componentDidMount(){await this.loadAllObjects(!Wl),this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChangeFromWorker):await this.props.socket.subscribeObject("*",this.onObjectChange),Wl=!0,window.addEventListener("contextmenu",this.onContextMenu,!0),window.addEventListener("keydown",this.onKeyPress,!0),window.addEventListener("keyup",this.onKeyPress,!0)}onKeyPress=e=>{e.type==="keydown"&&e.ctrlKey&&!this.cltrPressed?(this.cltrPressed=!0,this.tableRef.current&&(this.tableRef.current.className="highlight-link")):e.type==="keyup"&&!e.ctrlKey&&this.cltrPressed&&(this.cltrPressed=!1,this.tableRef.current&&(this.tableRef.current.className=""))};componentWillUnmount(){this.filterTimer&&(clearTimeout(this.filterTimer),this.filterTimer=null),window.removeEventListener("contextmenu",this.onContextMenu,!0),window.removeEventListener("keydown",this.onKeyPress,!0),window.removeEventListener("keyup",this.onKeyPress,!0),this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChangeFromWorker,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange).catch(e=>console.error(`Cannot unsubscribe *: ${e}`)),this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.objects={}}showDeleteDialog(e){var c,l,N,u;const{id:t,obj:i,item:r}=e,o=Object.keys(this.objects);o.sort();let n=0;const a=`${t}.`;for(let L=0;La)break;(u=(N=this.props).onObjectDelete)==null||u.call(N,t,!!((c=r.children)!=null&&c.length),!((l=i.common)!=null&&l.dontDelete),n+1)}onContextMenu=e=>{this.contextMenu&&Date.now()-this.contextMenu.ts<2e3?(e.preventDefault(),this.setState({showContextMenu:{item:this.contextMenu.item,position:{left:e.clientX+2,top:e.clientY-6}}})):this.state.showContextMenu&&(e.preventDefault(),this.setState({showContextMenu:null})),this.contextMenu=null};refreshComponent(){this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.loadAllObjects(!0).then(()=>console.log("updated!")).catch(e=>this.showError(e))}renderErrorDialog(){return this.state.error?M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description"},M.createElement(j.DialogTitle,{id:"alert-dialog-title"},this.props.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.state.error)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.t("ra_Ok")))):null}showError(e){this.setState({error:typeof e=="object"?e&&typeof e.toString=="function"?e.toString():JSON.stringify(e):e})}onSelect(e,t,i){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.focused`,e),!this.props.multiSelect)this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))?(this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==e?this.setState({selected:[e],selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()}):t&&this.props.onSelect&&this.onAfterSelect(t)):(this.localStorage.setItem(`${this.props.dialogName||"App"}.selectedNonObject`,e),this.setState({selected:[],selectedNonObject:e,focused:e},()=>{this.onAfterSelect(),i&&i()}));else if(this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))){this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const r=[...this.state.selected],o=r.indexOf(e);o===-1?(r.push(e),r.sort()):t||r.splice(o,1),this.setState({selected:r,selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()})}}_renderDefinedList(e){const t=[...this.possibleCols];if(t.unshift("id"),this.props.columns&&!this.props.columns.includes("buttons")){const i=t.indexOf("buttons");i!==-1&&t.splice(i,1)}return t.filter(i=>e&&(i==="val"||i==="buttons")||!e&&i!=="val"&&i!=="buttons").map(i=>{var r;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto&&i!=="id"){const o=[...this.state.columns||[]],n=o.indexOf(i);n===-1?(o.push(i),o.sort()):o.splice(n,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(o)),this.calculateColumnsVisibility(null,o),this.setState({columns:o})}},key:i},M.createElement(j.Checkbox,{edge:"start",disabled:i==="id"||this.state.columnsAuto,checked:i==="id"||!!(this.state.columnsAuto?this.visibleCols.includes(i):(r=this.state.columns)!=null&&r.includes(i)),disableRipple:!0}),M.createElement(j.ListItemText,{primary:this.texts[`filter_${i}`]||this.props.t(`ra_${i}`)}))})}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?M.createElement(j.Dialog,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,sx:{"& .MuiPaper-root":O.getStyle(this.props.theme,w.dialogColumns,w[`transparent_${this.state.columnsDialogTransparent}`])}},M.createElement(j.DialogTitle,{sx:w.fontSizeTitle},this.props.t("ra_Configure")),M.createElement(j.DialogContent,{sx:w.fontSizeTitle},M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.foldersFirst,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.foldersFirst`,this.state.foldersFirst?"false":"true"),this.setState({foldersFirst:!this.state.foldersFirst})}}),label:this.props.t("ra_Folders always first")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.linesEnabled,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.lines`,this.state.linesEnabled?"false":"true"),this.setState({linesEnabled:!this.state.linesEnabled})}}),label:this.props.t("ra_Show lines between rows")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.columnsAuto,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.columnsAuto`,this.state.columnsAuto?"false":"true"),this.state.columnsAuto?this.state.columns?(this.calculateColumnsVisibility(!1),this.setState({columnsAuto:!1})):(this.calculateColumnsVisibility(!1,[...this.visibleCols]),this.setState({columnsAuto:!1,columns:[...this.visibleCols]})):(this.calculateColumnsVisibility(!0),this.setState({columnsAuto:!0}))}}),label:this.props.t("ra_Auto (no custom columns)")}),M.createElement(j.List,null,this._renderDefinedList(!1),this.state.columnsForAdmin&&Object.keys(this.state.columnsForAdmin).sort().map(e=>{var t;return(t=this.state.columnsForAdmin)==null?void 0:t[e].map(i=>{var r;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto){const o=[...this.state.columns||[]],n=`_${e}_${i.path}`,a=o.indexOf(n);a===-1?(o.push(n),o.sort()):o.splice(a,1),this.calculateColumnsVisibility(null,o),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(o)),this.setState({columns:o})}},key:`${e}_${i.name}`},M.createElement(j.ListItemIcon,null,M.createElement(j.Checkbox,{disabled:this.state.columnsAuto,edge:"start",checked:!this.state.columnsAuto&&((r=this.state.columns)==null?void 0:r.includes(`_${e}_${i.path}`)),disableRipple:!0})),M.createElement(j.ListItemText,{primary:`${i.name} (${e})`}))})}),this._renderDefinedList(!0))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:M.createElement(Ne,null)},this.texts.close))):null}async getAdditionalColumns(){try{const e=await this.props.socket.getAdapters();let t=null;return e.forEach(i=>t=this.parseObjectForAdmins(t,i)),t}catch(e){return console.error(`Cannot get adapters: ${e}`),null}}checkUnsubscribes(){for(let e=this.subscribes.length-1;e>=0;e--)this.recordStates.includes(this.subscribes[e])||this.unsubscribe(this.subscribes[e]);this.recordStates=[]}findItem(e,t,i,r){if(t||=e.split("."),i||=this.root,!i||!t.length)return null;if(r=(r?`${r}.`:"")+t.shift(),i.children){const o=i.children.find(n=>n.data.id===r);if(o){if(o.data.id===e)return o;if(t.length)return this.findItem(e,t,o,r)}else return null}return null}onStateChange=(e,t)=>{if(console.log(`> stateChange ${e}`),this.states[e]){const i=this.findItem(e);i!=null&&i.data.state&&(i.data.state=void 0)}t?this.states[e]=t:delete this.states[e],this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout(()=>{this.statesUpdateTimer=null,this.forceUpdate()},300))};parseObjectForAdmins(e,t){var i;if((i=t.common)!=null&&i.adminColumns&&t.common.name){const r=t.common.adminColumns;let o;r&&typeof r!="object"?o=[r]:r&&(o=r);let n;r?n=o.map(a=>{if(typeof a!="object")return{path:a,name:a.split(".").pop()};const c=a;return c.objTypes&&typeof c.objTypes!="object"?c.objTypes=[c.objTypes]:c.objTypes||(c.objTypes=void 0),!c.name&&c.path?{path:c.path,name:c.path.split(".").pop(),width:c.width,edit:!!c.edit,type:c.type,objTypes:c.objTypes}:c.path?{path:c.path,name:Ye(c.name||"",this.props.lang),width:c.width,edit:!!c.edit,type:c.type,objTypes:c.objTypes}:(console.warn(`Admin columns for ${t._id} ignored, because path not found`),null)}).filter(a=>a):n=null,n!=null&&n.length&&(e||={},e[t.common.name]=n.sort((a,c)=>a.path>c.path?-1:a.path{if(Array.isArray(e)){let t=null;e.forEach(i=>{const{newInnerState:r,filtered:o}=this.processOnObjectChangeElement(i.id,i.obj);o||(r&&t?Object.assign(t,r):t=r)}),t&&this.setState(t),this.afterObjectUpdated()}};onObjectChange=(e,t)=>{const{newInnerState:i,filtered:r}=this.processOnObjectChangeElement(e,t);r||(i&&this.setState(i),this.afterObjectUpdated())};afterObjectUpdated(){!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout(()=>{this.objectsUpdateTimer=null;const{info:e,root:t}=$l(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=t,this.info=e,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()},500))}updateAliases(e){var i,r,o;if(!this.objects||!((i=this.info)!=null&&i.aliasesMap)||!(e!=null&&e.startsWith("alias.")))return;const t=Object.keys(this.objects).filter(n=>n.startsWith("alias.0"));this.info.aliasesMap={};for(const n of t){const a=this.objects[n];if((o=(r=a==null?void 0:a.common)==null?void 0:r.alias)!=null&&o.id)if(typeof a.common.alias.id=="string"){const c=a.common.alias.id;this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]}else{const c=a.common.alias.id.read;c&&(this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]);const l=a.common.alias.id.write;l&&(this.info.aliasesMap[l]?this.info.aliasesMap[l].includes(n)||this.info.aliasesMap[l].push(n):this.info.aliasesMap[l]=[n])}}}processOnObjectChangeElement(e,t){console.log(`> objectChange ${e}`);const i=t==null?void 0:t.type;if(t&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(t)&&i!=="channel"&&i!=="device"&&i!=="folder"&&i!=="adapter"&&i!=="instance")return{newInnerState:null,filtered:!0};let r=null;if(e.startsWith("system.adapter.")&&(t==null?void 0:t.type)==="adapter"){const o=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(o,t),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(o)&&(r={columnsForAdmin:o})}return this.objects||={},t?this.objects[e]=t:this.objects[e]&&delete this.objects[e],this.updateAliases(e),{newInnerState:r,filtered:!1}}subscribe(e){this.subscribes.includes(e)||(this.subscribes.push(e),console.log(`+ subscribe ${e}`),this.pausedSubscribes||this.props.socket.subscribeState(e,this.onStateChange).catch(t=>console.error(`Cannot subscribe on state ${e}: ${t}`)))}unsubscribe(e){const t=this.subscribes.indexOf(e);t!==-1&&(this.subscribes.splice(t,1),this.states[e]&&delete this.states[e],console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(e){!this.pausedSubscribes&&e?(this.pausedSubscribes=!0,this.subscribes.forEach(t=>this.props.socket.unsubscribeState(t,this.onStateChange))):this.pausedSubscribes&&!e&&(this.pausedSubscribes=!1,this.subscribes.forEach(t=>this.props.socket.subscribeState(t,this.onStateChange)))}onFilter(e,t){this.filterTimer=null;const i={...this.state.filter};Object.keys(this.filterRefs).forEach(r=>{var o;if((o=this.filterRefs[r])!=null&&o.current){const n=this.filterRefs[r].current;for(let a=0;athis.props.onFilterChanged&&this.props.onFilterChanged(i)))}clearFilter(){const e={...this.state.filter};Object.keys(this.filterRefs).forEach(t=>{var i;if((i=this.filterRefs[t])!=null&&i.current){const r=this.filterRefs[t].current;for(let o=0;o{var t,i;return(i=(t=this.props).onFilterChanged)==null?void 0:i.call(t,e)}))}isFilterEmpty(){return!Object.keys(this.state.filter).find(t=>t!=="expertMode"&&this.state.filter[t])}getFilterInput(e){var t,i,r;return M.createElement(j.FormControl,{sx:this.styles.filterInput,key:`${e}_${this.state.filterKey}`,title:e==="name"||e==="id"?this.props.t("ra_You can use * as wildcard"):void 0,margin:"dense"},M.createElement(j.Input,{ref:this.filterRefs[e],classes:{underline:"no-underline"},id:e,placeholder:this.texts[`filter_${e}`],defaultValue:this.state.filter[e]||"",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},autoComplete:"off"}),(r=(i=(t=this.filterRefs[e])==null?void 0:t.current)==null?void 0:i.firstChild)!=null&&r.value?M.createElement("div",{style:{position:"absolute",right:0}},M.createElement(j.IconButton,{size:"small",onClick:()=>{var o;((o=this.filterRefs[e].current)==null?void 0:o.firstChild).value="",this.onFilter(e,"")}},M.createElement(Ne,null))):null)}getFilterSelect(e,t){var r,o,n;const i=!!(t!=null&&t.find(a=>a.icon));return M.createElement("div",{style:{position:"relative"}},M.createElement(j.Select,{variant:"standard",key:`${e}_${this.state.filterKey}`,ref:this.filterRefs[e],sx:w.headerCellInput,className:"no-underline",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},defaultValue:this.state.filter[e]||"",inputProps:{name:e,id:e},displayEmpty:!0},M.createElement(j.MenuItem,{key:"empty",value:""},M.createElement("span",{style:w.selectNone},e==="custom"?this.texts.showAll:this.texts[`filter_${e}`])),t==null?void 0:t.map(a=>{let c,l,N;return typeof a=="object"?(c=a.value,l=a.name,N=a.icon):(c=a,l=a),M.createElement(j.MenuItem,{sx:w.headerCellSelectItem,key:c,value:c},N||(i?M.createElement("div",{className:"itemIcon"}):null),l)})),(n=(o=(r=this.filterRefs[e])==null?void 0:r.current)==null?void 0:o.childNodes[1])!=null&&n.value?M.createElement(j.Box,{component:"div",sx:w.selectClearButton},M.createElement(j.IconButton,{size:"small",onClick:()=>{var c;const a={...this.state.filter};a[e]="",((c=this.filterRefs[e].current)==null?void 0:c.childNodes[1]).value="",this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(a)),this.setState({filter:a,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(a))}},M.createElement(Ne,null))):null)}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles.map(e=>e.role))}getFilterSelectRoom(){const e=this.info.roomEnums.map(t=>{var i,r,o,n;return{name:Ye((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("room",e)}getFilterSelectFunction(){const e=this.info.funcEnums.map(t=>{var i,r,o,n;return{name:Ye((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("func",e)}getFilterSelectType(){const e=this.info.types.map(t=>({name:t,value:t,icon:Pl[t]||null}));return this.getFilterSelect("type",e)}getFilterSelectCustoms(){if(this.info.customs.length>1){const e=this.info.customs.map(t=>({name:t==="_"?this.texts.filterCustomsWithout:t,value:t,icon:t==="_"?null:M.createElement(me,{src:Zr(this.objects,t,this.props.lang,this.imagePrefix)||"",style:w.selectIcon})}));return this.getFilterSelect("custom",e)}return null}onExpandAll(e,t){var r;const i=e||this.root;t||=[],(r=i==null?void 0:i.children)==null||r.forEach(o=>{o.data.sumVisibility&&(t.push(o.data.id),this.onExpandAll(o,t))}),i===this.root&&(t.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t}))}onCollapseAll(){this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},()=>this.onAfterSelect())}expandDepth(e,t,i){var r;e||=this.root,t>0&&((r=e.children)==null||r.forEach(o=>{o.data.sumVisibility&&(vi(i,o.data.id)||(i.push(o.data.id),i.sort()),t-1>0&&this.expandDepth(o,t-1,i))}))}static collapseDepth(e,t){return t.filter(i=>i.split(".").length<=e)}onExpandVisible(){if(this.state.depth<9){const e=this.state.depth+1,t=[...this.state.expanded];this.root&&this.expandDepth(this.root,e,t),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}onStatesViewVisible(){const e=!this.state.statesView;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(e)),this.setState({statesView:e})}onCollapseVisible(){if(this.state.depth>0){const e=this.state.depth-1,t=it.collapseDepth(e,this.state.expanded);this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}getEnumsForId=e=>{const t=[];return this.info.enums.forEach(i=>{var r,o,n;if((n=(o=(r=this.objects[i])==null?void 0:r.common)==null?void 0:o.members)!=null&&n.includes(e)){const a={_id:this.objects[i]._id,common:JSON.parse(JSON.stringify(this.objects[i].common)),native:this.objects[i].native,type:"enum"};a.common&&(delete a.common.members,delete a.common.custom,delete a.common.mobile),t.push(a)}}),t.length?t:void 0};_createAllEnums=async(e,t)=>{var i,r;for(let o=0;or)break}return e}return[]}async _exportObjects(e){var o;if(e.isAll){Ql("allObjects.json",this.objects,e);return}if(!(this.state.selected.length||this.state.selectedNonObject)){window.alert(this.props.t("ra_Save of objects-tree is not possible"));return}const t={},i=this.state.selected[0]||this.state.selectedNonObject,r=this._getSelectedIdsForExport();for(const n of r){if(t[n]=JSON.parse(JSON.stringify(this.objects[n])),((o=t[n])==null?void 0:o.type)==="state"&&!e.noStatesByExportImport){const a=await this.props.socket.getState(n);a&&(t[n].val=a.val,t[n].ack=a.ack)}if(t[n].common){const a=this.getEnumsForId(n);a&&(t[n].common.enums=a)}}Ql(`${i}.json`,t,e)}renderExportDialog(){return this.state.showExportDialog===!1?null:M.createElement(j.Dialog,{open:!0,maxWidth:"lg"},M.createElement(j.DialogTitle,null,this.props.t("ra_Select type of export")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(M.Fragment,null,this.props.t("ra_You can export all objects or just the selected branch."),M.createElement("br",null),this.props.t("ra_Selected %s object(s)",this.state.showExportDialog),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.noStatesByExportImport,onChange:e=>this.setState({noStatesByExportImport:e.target.checked})}),label:this.props.t("ra_Do not export values of states")}),M.createElement("br",null),this.props.t("These options can reduce the size of the export file:"),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.beautifyJsonExport,onChange:e=>this.setState({beautifyJsonExport:e.target.checked})}),label:this.props.t("Beautify JSON output")}),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeSystemRepositoriesFromExport,onChange:e=>this.setState({excludeSystemRepositoriesFromExport:e.target.checked})}),label:this.props.t("Exclude system repositories from export JSON")}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeTranslations,onChange:e=>this.setState({excludeTranslations:e.target.checked})}),label:this.props.t("Exclude translations (except english) from export JSON")})):null)),M.createElement(j.DialogActions,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(j.Button,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!0,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_All objects")),"(",Object.keys(this.objects).length,")"):M.createElement(j.Button,{color:"grey",variant:"outlined",startIcon:M.createElement($n,null),onClick:()=>this.setState({showAllExportOptions:!0})},this.props.t("ra_Advanced options")),M.createElement(j.Button,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!1,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_Only selected")),"(",this.state.showExportDialog,")"),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}renderRenameDialog(){var t;if(!this.state.showRenameDialog)return null;const e=this.props.objectMoveRenameDialog;return M.createElement(e,{expertMode:this.props.expertMode,onClose:()=>this.setState({showRenameDialog:null}),id:this.state.showRenameDialog.id,childrenIds:this.state.showRenameDialog.childrenIds,theme:this.props.theme,socket:this.props.socket,t:this.props.t,objectType:(t=this.objects[this.state.showRenameDialog.id])==null?void 0:t.type})}handleJsonUpload(e){var r;const t=e.target,i=((r=t.files)==null?void 0:r.length)&&t.files[0];if(i){const o=new FileReader;o.onload=async n=>{var c;const a=(c=n.target)==null?void 0:c.result;try{const l=JSON.parse(a),N=Object.keys(l).length,u=l._id;if(u===void 0&&N)await this.loadObjects(l),window.alert(this.props.t("ra_%s object(s) processed",N));else{if(!u)return window.alert(this.props.t("ra_Invalid structure"));try{let L,g,y;if(l.common.enums&&(L=l.common.enums,delete l.common.enums),l.val&&(g=l.val,delete l.val),l.ack!==void 0&&(y=l.ack,delete l.ack),await this.props.socket.setObject(l._id,l),l.type==="state")if(g!=null)await this.props.socket.setState(l._id,g,y===void 0?!0:y);else{const T=await this.props.socket.getState(l._id);(!T||T.val===null||T.val===void 0)&&await this.props.socket.setState(l._id,l.common.def===void 0?null:l.common.def,!0)}L&&await this._createAllEnums(L,l._id),window.alert(this.props.t("ra_%s was imported",l._id))}catch(L){window.alert(L)}}}catch(l){window.alert(l)}return null},o.readAsText(i)}else window.alert(this.props.t("ra_Failed to open JSON File"))}toolTipObjectCreating=()=>{var i,r;const{t:e}=this.props;let t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];if(this.state.selected.length||this.state.selectedNonObject){const o=this.state.selected[0]||this.state.selectedNonObject;if(!(o.split(".").length<2||this.objects[o]&&((i=this.objects[o])==null?void 0:i.type)==="state"))if(this.state.filter.expertMode)switch((r=this.objects[o])==null?void 0:r.type){case"device":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"folder":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"channel":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:1},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break}else(o.startsWith("alias.0")||o.startsWith("0_userdata"))&&(t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:7},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:8},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))])}return t.length?t:e("ra_Add new child object to selected parent")};getToolbar(){let e=!1;if(this.state.selected.length||this.state.selectedNonObject){const t=this.state.selected[0]||this.state.selectedNonObject;t.split(".").length<2||this.objects[t]&&this.objects[t].type==="state"?e=!1:(this.state.filter.expertMode||t.startsWith("alias.0")||t.startsWith("0_userdata"))&&(e=!0)}return M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center",overflowX:"auto"}},M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},M.createElement(j.Tooltip,{title:this.props.t("ra_Refresh tree"),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large"},M.createElement(TN,null)))),this.props.showExpertButton&&!this.props.expertMode&&M.createElement(j.Tooltip,{title:this.props.t("ra_expertMode"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large"},M.createElement($n,null))),!this.props.disableColumnSelector&&this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Configure"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"columnSelector",color:this.state.columnsAuto?"primary":"default",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large"},M.createElement(fg,null))),this.props.width!=="xs"&&this.state.expandAllVisible&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandAll",onClick:()=>this.onExpandAll(),size:"large"},M.createElement(fr,null))),M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseAll",onClick:()=>this.onCollapseAll(),size:"large"},M.createElement(Ws,null))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandVisible",color:"primary",onClick:()=>this.onExpandVisible(),size:"large"},M.createElement(j.Badge,{badgeContent:this.state.depth,color:"secondary",sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}})},M.createElement(fr,null)))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseVisible",color:"primary",onClick:()=>this.onCollapseVisible(),size:"large"},M.createElement(j.Badge,{sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),badgeContent:this.state.depth,color:"secondary"},M.createElement(Ws,null)))),this.props.objectStatesView&&M.createElement(j.Tooltip,{title:this.props.t("ra_Toggle the states view"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.onStatesViewVisible(),size:"large"},M.createElement(Dg,{color:this.state.statesView?"primary":"inherit"}))),M.createElement(j.Tooltip,{title:this.props.t("ra_Show/Hide object descriptions"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.desc`,this.state.showDescription?"false":"true"),this.setState({showDescription:!this.state.showDescription})},size:"large"},M.createElement(pg,{color:this.state.showDescription?"primary":"inherit"}))),this.props.objectAddBoolean?M.createElement(j.Tooltip,{title:this.toolTipObjectCreating(),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{disabled:!e,onClick:()=>this.setState({modalNewObj:{id:this.state.selected[0]||this.state.selectedNonObject}}),size:"large"},M.createElement(un,null)))):null,this.props.objectImportExport&&M.createElement(j.Tooltip,{title:this.props.t("ra_Add objects tree from JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("id","files"),t.setAttribute("opacity","0"),t.addEventListener("change",i=>this.handleJsonUpload(i),!1),t.click()},size:"large"},M.createElement(Sr,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&M.createElement(j.Tooltip,{title:this.props.t("ra_Save objects tree as JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large"},M.createElement(Sr,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&this.props.width!=="xs"&&M.createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter(t=>this.info.objects[t].type==="state").length}`),this.props.objectEditBoolean&&M.createElement(j.Tooltip,{title:this.props.t("ra_Edit custom config"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{var i;const t=this.root?v4(this.root,"state",this.objects):[];t.length?(this.pauseSubscribe(!0),t.length===1&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),(i=this.props.router)==null||i.doNavigate(null,"custom",this.state.selected[0])),this.setState({customDialog:t,customDialogAll:!0})):this.setState({toast:this.props.t("ra_please select object")})},size:"large"},M.createElement(eg,null))))}toggleExpanded(e){const t=JSON.parse(JSON.stringify(this.state.expanded)),i=t.indexOf(e);i===-1?(t.push(e),t.sort()):t.splice(i,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t})}onCopy(e,t){e.stopPropagation(),e.preventDefault(),t&&(O.copyToClipboard(t),t.length<50?this.setState({toast:this.props.t("ra_Copied %s",t)}):this.setState({toast:this.props.t("ra_Copied")}))}renderTooltipAccessControl=e=>{if(!e)return null;const t=[{value:"0x400",valueNum:1024,title:"read",group:"Owner"},{value:"0x200",valueNum:512,title:"write",group:"Owner"},{value:"0x40",valueNum:64,title:"read",group:"Group"},{value:"0x20",valueNum:32,title:"write",group:"Group"},{value:"0x4",valueNum:4,title:"read",group:"Everyone"},{value:"0x2",valueNum:2,title:"write",group:"Everyone"}],i=[],r=o=>{const n=e[o];t.forEach((a,c)=>{n&a.valueNum&&i.push(M.createElement("span",{key:o+c},this.texts[`acl${a.group}_${a.title}_${o}`],",",M.createElement("span",{style:o==="object"?w.rightsObject:w.rightsState},a.value)))})};return i.push(M.createElement("span",{key:"group"},`${this.texts.ownerGroup}: ${(e.ownerGroup||"").replace("system.group.","")}`)),i.push(M.createElement("span",{key:"owner"},`${this.texts.ownerUser}: ${(e.owner||"").replace("system.user.","")}`)),r("object"),e.state&&r("state"),i.length?M.createElement("span",{style:w.tooltipAccessControl},i.map(o=>o)):null};renderColumnButtons(e,t){var n,a,c,l;if(!t.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?M.createElement("div",{style:w.buttonDiv},this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsEmptyButton,...w.cellButtonMinWidth},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:{height:15}},"---")):null,this.props.onObjectDelete&&((n=t.children)!=null&&n.length)?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsButtonAlone},size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{var g;const N=Object.keys(this.objects);N.sort();let u=0;const L=`${e}.`;for(let y=0;yL)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((g=t.children)!=null&&g.length),!1,u+1)}},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null):null;t.data.aclTooltip=t.data.aclTooltip||this.renderTooltipAccessControl(t.data.obj.acl);const i=t.data.obj.acl?t.data.obj.type==="state"?t.data.obj.acl.state:t.data.obj.acl.object:0,r=t.data.obj.acl&&(t.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object),o=this.state.filter.expertMode||it.isNonExpertId(t.data.id);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.Tooltip,{key:"acl",title:t.data.aclTooltip,slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonMinWidth,opacity:1},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:w.aclText},Number.isNaN(Number(i))?Number(r).toString(16):Number(i).toString(16)))):M.createElement("div",{key:"aclEmpty",style:w.cellButtonMinWidth}),o?M.createElement(j.IconButton,{key:"edit",sx:{marginRight:"2px",...w.cellButtonsButton},size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.setState({editObjectDialog:e,editObjectAlias:!1})}},M.createElement(mi,{style:w.cellButtonsButtonIcon})):M.createElement(j.Box,{component:"div",key:"editDisabled",sx:w.cellButtonsButton}),this.props.onObjectDelete&&((a=t.children)!=null&&a.length||!((c=t.data.obj.common)!=null&&c.dontDelete))?M.createElement(j.IconButton,{key:"delete",sx:w.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{var g,y,T;const N=Object.keys(this.objects);N.sort();let u=0;const L=`${e}.`;for(let d=0;dL)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((g=t.children)!=null&&g.length),!((T=(y=t.data.obj)==null?void 0:y.common)!=null&&T.dontDelete),u)},title:this.texts.deleteObject},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&t.data.obj.type==="state"&&((l=t.data.obj.common)==null?void 0:l.type)!=="file"?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...t.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms},key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{var N;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.pauseSubscribe(!0),(N=this.props.router)==null||N.doNavigate(null,"customs",e),this.setState({customDialog:[e],customDialogAll:!1})}},M.createElement(ln,{style:w.cellButtonsButtonIcon})):null]}readHistory(e){var t,i;if(window.sparkline&&this.defaultHistory&&((i=(t=this.objects[e])==null?void 0:t.common)!=null&&i.custom)&&this.objects[e].common.custom[this.defaultHistory]){const r=new Date;r.setHours(r.getHours()-24),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const o=r.getTime();this.props.socket.getHistory(e,{instance:this.defaultHistory,start:o,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addId:!1,aggregate:"minmax"}).then(n=>{const a=window.document.getElementsByClassName("sparkline");for(let c=0;cconsole.warn(`Cannot read history: ${n}`))}}getTooltipInfo(e,t){var l,N,u;const i=this.objects[e],r=this.states[e],{valFull:o,fileViewer:n}=qo({state:r,obj:i,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,full:!0}),a=[];o==null||o.forEach(L=>{L.t===this.texts.quality&&r.q?(a.push(M.createElement("div",{style:w.cellValueTooltipBoth,key:L.t},L.t,": ",L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`}))):(a.push(M.createElement("div",{style:w.cellValueTooltipTitle,key:L.t},L.t,": ")),a.push(M.createElement("div",{style:w.cellValueTooltipValue,key:`${L.t}_v`},L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`})))});const c=((l=i==null?void 0:i.common)==null?void 0:l.role)||"";n==="image"?a.push(M.createElement("img",{style:w.cellValueTooltipImage,src:r.val,alt:e})):c==="url"||i.common.role==="url.self"||i.common.role==="url.blank"?a.unshift(M.createElement("div",{key:"ctrl",style:{textDecoration:"underline",fontWeight:"bold"}},this.texts.ctrlForLink)):this.defaultHistory&&((u=(N=i==null?void 0:i.common)==null?void 0:N.custom)!=null&&u[this.defaultHistory])&&a.push(M.createElement("svg",{key:"sparkline",className:"sparkline","data-id":e,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"})),this.setState({tooltipInfo:{el:a,id:e}},()=>t&&t())}renderColumnValue(e,t,i){var c,l;const r=t.data.obj;if(!r||!this.states)return null;if(((c=r.common)==null?void 0:c.type)==="file")return M.createElement(j.Box,{component:"div",sx:{...w.cellValueText,...w.cellValueFile}},"[file]");if(!this.states[e])return r.type==="state"&&(this.recordStates.includes(e)||this.recordStates.push(e),this.states[e]={val:null},this.subscribe(e)),null;this.recordStates.includes(e)||this.recordStates.push(e);const o=this.states[e];let n=t.data.state;if(!n){const{valText:N}=qo({state:o,obj:r,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma}),u=[];if(t.data.state={valTextRx:u},u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}valText`,style:{whiteSpace:"nowrap",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}},N.v.toString())),N.u&&u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:w.cellValueTextUnit,key:`${N.v.toString()}unit`},N.u)),N.s!==void 0&&u.push(M.createElement("span",{style:w.cellValueTextState,className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}states`},"(",N.s,")")),!i){const L=N.c!==void 0?N.c:N.v||"";u.push(M.createElement(Ts,{className:"copyButton",style:this.styles.iconCopy,onClick:g=>this.onCopy(g,L),key:"cc"}))}n=t.data.state}n.style=NSe({state:o,isExpertMode:this.state.filter.expertMode,isButton:t.data.button});let a=n.valTextRx;return this.state.filter.expertMode||(t.data.button?a=[M.createElement(MSe,{key:"button",style:{color:n.style.color,...w.cellValueButton}})]:t.data.switch&&(a=[M.createElement(j.Switch,{key:"switch",sx:{"& .MuiSwitch-thumb":{color:n.style.color},"& .MuiSwitch-track":{backgroundColor:this.states[e].val&&this.state.selected.includes(e)?this.props.themeType==="dark"?"#FFF !important":"#111 !important":void 0}},checked:!!this.states[e].val})])),M.createElement(j.Tooltip,{key:"value",title:(l=this.state.tooltipInfo)==null?void 0:l.el,slotProps:{popper:{sx:w.cellValueTooltipBox},tooltip:{sx:w.cellValueTooltip}},onOpen:()=>this.getTooltipInfo(e,()=>this.readHistory(e)),onClose:()=>{var N;return((N=this.state.tooltipInfo)==null?void 0:N.id)===e&&this.setState({tooltipInfo:null})}},M.createElement(j.Box,{component:"div",style:n.style,className:t.data.url?"iob-link":void 0,sx:{...w.cellValueText,height:i?void 0:pe,"& .admin-button:active":{transform:"translate(0, 2px)"}}},a))}_syncEnum(e,t,i,r){var a,c,l;if(!(t!=null&&t.length)){r&&r();return}const o=t.pop()||"",n=[];if((a=this.info.objects[o])!=null&&a.common){if((c=this.info.objects[o].common.members)!=null&&c.length){const N=this.info.objects[o].common.members.indexOf(e);if(N!==-1&&!i.includes(o)){const u=JSON.parse(JSON.stringify(this.info.objects[o]));u.common.members.splice(N,1),n.push(this.props.socket.setObject(o,u).then(()=>this.info.objects[o]=u).catch(L=>this.showError(L)))}}if(i.includes(o)&&!((l=this.info.objects[o].common.members)!=null&&l.includes(e))){const N=JSON.parse(JSON.stringify(this.info.objects[o]));N.common.members||=[],N.common.members.push(e),N.common.members.sort(),n.push(this.props.socket.setObject(o,N).then(()=>this.info.objects[o]=N).catch(u=>this.showError(u)))}}Promise.all(n).then(()=>{setTimeout(()=>this._syncEnum(e,t,i,r),0)})}syncEnum(e,t,i){const r=[...this.info[t==="func"?"funcEnums":"roomEnums"]];return new Promise(o=>{this._syncEnum(e,r,i,()=>{o()})})}renderEnumDialog(){if(!this.state.enumDialog)return null;const e=this.state.enumDialog.type,t=this.state.enumDialog.item,i=this.state.enumDialogEnums,r=this.state.enumDialog.enumsOriginal,o=(e==="room"?this.info.roomEnums:this.info.funcEnums).map(n=>{var a,c;return{name:Ye(((c=(a=this.objects[n])==null?void 0:a.common)==null?void 0:c.name)||n.split(".").pop()||"",this.props.lang),value:n,icon:Zr(this.objects,n,this.props.lang,this.imagePrefix)}}).sort((n,a)=>n.name>a.name?1:-1);return o.forEach(n=>{n.icon&&typeof n.icon=="string"&&(n.icon=M.createElement(j.Box,{style:w.enumIconDiv},M.createElement("img",{src:n.icon,style:w.enumIcon,alt:n.name})))}),M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":w.enumDialog},onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"enum-dialog-title",style:{display:"flex",justifyContent:"space-between",width:"100%",flexWrap:"nowrap",gap:8,paddingRight:12}},e==="func"?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),M.createElement(j.Fab,{color:"primary",disabled:r===JSON.stringify(i),size:"small",onClick:()=>this.syncEnum(t.data.id,e,i).then(()=>this.setState({enumDialog:null,enumDialogEnums:null}))},M.createElement(Oe,null))),M.createElement(j.List,{sx:{"&.MuiList-root":w.enumList}},o.map(n=>{let a,c,l;typeof n=="object"?(a=n.value,c=n.name,l=n.icon):(a=n,c=n);const N=`checkbox-list-label-${a}`;return M.createElement(j.ListItem,{sx:w.headerCellSelectItem,key:a,onClick:()=>{const u=i.indexOf(a),L=JSON.parse(JSON.stringify(this.state.enumDialogEnums));u===-1?(L.push(a),L.sort()):L.splice(u,1),this.setState({enumDialogEnums:L})},secondaryAction:l},M.createElement(j.ListItemIcon,{sx:{"&.MuiListItemIcon-root":w.enumCheckbox}},M.createElement(j.Checkbox,{edge:"start",checked:i.includes(a),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":N}})),M.createElement(j.ListItemText,{id:N},c))})))}renderEditRoleDialog(){var e,t;if(!this.state.roleDialog||!this.props.objectBrowserEditRole)return null;if(this.state.roleDialog&&this.props.objectBrowserEditRole){const i=this.props.objectBrowserEditRole;return M.createElement(i,{key:"objectBrowserEditRole",id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roleArray:this.info.roles,commonType:(t=(e=this.info.objects[this.state.roleDialog])==null?void 0:e.common)==null?void 0:t.type,onClose:r=>{r&&(this.info.objects[this.state.roleDialog]=r),this.setState({roleDialog:null})}})}return null}onColumnsEditCustomDialogClose(e){var i,r;const t=this.customColumnDialog;if(e){let o=t.value;t.type==="boolean"?o=o==="true"||o===!0:t.type==="number"&&(o=parseFloat(o)),this.customColumnDialog=null,this.props.socket.getObject(((r=(i=this.state.columnsEditCustomDialog)==null?void 0:i.obj)==null?void 0:r._id)||"").then(n=>{var a;if(n&&it.setCustomValue(n,(a=this.state.columnsEditCustomDialog)==null?void 0:a.it,o))return this.props.socket.setObject(n._id,n);throw new Error(this.props.t("ra_Cannot update attribute, because not found in the object"))}).then(()=>this.setState({columnsEditCustomDialog:null})).catch(n=>this.showError(n))}else this.customColumnDialog=null,this.setState({columnsEditCustomDialog:null})}renderColumnsEditCustomDialog(){if(!this.state.columnsEditCustomDialog)return null;if(!this.customColumnDialog){const e=it.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof e,initValue:(e??"").toString(),value:(e??"").toString()}}return M.createElement(j.Dialog,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"custom-dialog-title"},`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.customColumnDialog.type==="boolean"?M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:this.customColumnDialog.value==="true",onChange:e=>{const t=this.customColumnDialog;t.value=e.target.checked.toString();const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):M.createElement(j.TextField,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:e=>{const t=this.customColumnDialog;t.value=e.target.value;const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})},autoFocus:!0}))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:M.createElement(Oe,null)},this.props.t("ra_Update")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}static getCustomValue(e,t){var i;if((i=e==null?void 0:e._id)!=null&&i.startsWith(`${t.adapter}.`)&&t.path.length>1){const r=t.path;let o;const n=e;if(n[r[0]]&&typeof n[r[0]]=="object")return r.length===2?o=n[r[0]][r[1]]:r.length===3?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"?n[r[0]][r[1]][r[2]]:null:r.length===4?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]?n[r[0]][r[1]][r[2]][r[3]]:null:r.length===5?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]?n[r[0]][r[1]][r[2]][r[3]][r[4]]:null:r.length===6&&(o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]&&n[r[0]][r[1]][r[2]][r[3]][r[4]]?n[r[0]][r[1]][r[2]][r[3]][r[4]][r[5]]:null),o??null}return null}static setCustomValue(e,t,i){var r;if((r=e==null?void 0:e._id)!=null&&r.startsWith(`${t.adapter}.`)&&t.path.length>1){const o=t.path,n=e;if(n[o[0]]&&typeof n[o[0]]=="object"){if(o.length===2)return n[o[0]][o[1]]=i,!0;if(o.length===3){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object")return n[o[0]][o[1]][o[2]]=i,!0}else if(o.length===4){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object")return n[o[0]][o[1]][o[2]][o[3]]=i,!0}else if(o.length===5){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]]=i,!0}else if(o.length===6&&n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object"&&n[o[0]][o[1]][o[2]][o[3]][o[4]]&&typeof n[o[0]][o[1]][o[2]][o[3]][o[4]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]][o[5]]=i,!0}}return!1}renderCustomValue(e,t,i){const r=it.getCustomValue(e,t);return r!=null?t.edit&&!this.props.notEditable&&(!t.objTypes||t.objTypes.includes(e.type))?M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w.columnCustomEditable,...w[`columnCustom_${t.align}`]},onClick:()=>this.setState({columnsEditCustomDialog:{item:i,it:t,obj:e},customColumnDialogValueChanged:!1})},r):M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w[`columnCustom_${t.align}`]}},r):null}renderAliasLink(e,t,i){const r=t||0,o=this.objects[this.info.aliasesMap[e][r]].common.alias.id;return o?M.createElement(j.Box,{component:"div",onClick:n=>{n.stopPropagation(),n.preventDefault();const a=this.info.aliasesMap[e][r];this.info.aliasesMap[e].length>1&&this.setState({aliasMenu:""}),this.onSelect(a),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(a)),100)},sx:i||this.styles.aliasAlone},M.createElement("span",{className:"admin-browser-arrow"},typeof o=="string"||o.read===e&&o.write===e?"↔":o.read===e?"→":"←"),this.info.aliasesMap[e][r]):null}renderLeaf(e,t,i){var ai,Mi,ci,tr,sr,AM,mM,OM,EM,fM,xM,_M,SM,kM;const r=e.data.id;i.count++,t=t===void 0?this.state.expanded.includes(r):t;let o;const n=e.data.obj,a=n==null?void 0:n.type;e.children||a==="folder"||a==="device"||a==="channel"||a==="meta"?o=t?M.createElement(fr,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):M.createElement(Ws,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):n&&n.common&&n.common.write===!1&&n.type==="state"?o=M.createElement(eSe,{style:this.styles.cellIdIconDocument}):o=M.createElement(q_e,{style:this.styles.cellIdIconDocument});let c=null;e.data.icon&&(typeof e.data.icon=="string"?e.data.icon.length<3?c=M.createElement("span",{className:"iconOwn",style:w.cellIdIconOwn},e.data.icon):c=M.createElement(me,{style:w.cellIdIconOwn,className:"iconOwn",src:e.data.icon,alt:""}):c=e.data.icon);const l=n==null?void 0:n.common,N=(n==null?void 0:n.type)&&Pl[n.type]||M.createElement("div",{className:"itemIcon"}),u=this.levelPadding*(e.data.level||0);if(e.data.lang!==this.props.lang){const{rooms:k,per:q}=U4(this.info,r,this.props.lang);e.data.rooms=k.join(", "),e.data.per=q;const{funcs:fe,pef:de}=$4(this.info,r,this.props.lang);e.data.funcs=fe.join(", "),e.data.pef=de,e.data.lang=this.props.lang}const L=this.props.multiSelect&&this.objects[r]&&(!this.props.types||this.props.types.includes(this.objects[r].type))?M.createElement(j.Checkbox,{style:w.checkBox,checked:this.state.selected.includes(r)}):null;let g=!this.props.notEditable&&a==="state"&&(this.state.filter.expertMode||(l==null?void 0:l.write)!==!1);this.props.objectBrowserViewFile&&(l==null?void 0:l.type)==="file"&&(g=!0);const y=!this.props.notEditable&&this.objects[r]&&(this.state.filter.expertMode||a==="state"||a==="channel"||a==="device"),T=this.state.statesView&&(a==="state"||a==="channel"||a==="device");let d="";const z=[];if(T&&(d=(ai=this.states[r])==null?void 0:ai.from,d===void 0?d=" ":(d=d?d.replace(/^system\.adapter\.|^system\./,""):"",z.push(`${this.texts.stateChangedFrom} ${d}`)),n!=null&&n.user)){const k=n.user.replace("system.user.","");d+=`/${k}`,z.push(`${this.texts.stateChangedBy} ${k}`)}n&&(n.from&&z.push(`${this.texts.objectChangedFrom} ${n.from.replace(/^system\.adapter\.|^system\./,"")}`),n.user&&z.push(`${this.texts.objectChangedBy} ${n.user.replace(/^system\.user\./,"")}`),n.ts&&z.push(`${this.texts.objectChangedByUser} ${O.formatDate(new Date(n.ts),this.props.dateFormat||this.systemConfig.common.dateFormat)}`));let I=!1,C=null;r.startsWith("alias.")&&((Mi=l==null?void 0:l.alias)!=null&&Mi.id)?(I=typeof l.alias.id=="object",I?C=M.createElement("div",{style:w.cellIdAliasReadWriteDiv},l.alias.id.read?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.read),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.read)),100)},sx:this.styles.aliasReadWrite},"←",l.alias.id.read):null,l.alias.id.write?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.write),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.write)),100)},sx:this.styles.aliasReadWrite},"→",l.alias.id.write):null):C=M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id)),100)},sx:this.styles.aliasAlone},"→",l.alias.id)):this.info.aliasesMap[r]&&(this.info.aliasesMap[r].length>1?C=M.createElement(j.Box,{component:"div",id:`alias_${r}`,onClick:k=>{k.stopPropagation(),k.preventDefault(),this.setState({aliasMenu:r})},sx:this.styles.aliasAlone},this.props.t("ra_%s links from aliases",this.info.aliasesMap[r].length)):C=this.renderAliasLink(r,0));let m=l==null?void 0:l.color,A;if(m&&!this.state.selected.includes(r)){const k=this.props.themeName==="dark"?"#1f1f1f":this.props.themeName==="blue"?"#222a2e":"#FFFFFF";O.colorDistance(m,k)<1e3&&(A=this.props.themeType==="dark"?"#9a9a9a":"#565656")}let D=!1;r==="0_userdata"?(m=f4(this.props.themeType),D=!0):r==="alias"?(m=x4(this.props.themeType),D=!0):r==="javascript"?(m=aSe(this.props.themeType),D=!0):r==="system"?(m=_4(this.props.themeType),D=!0):r==="system.adapter"?m=S4(this.props.themeType):(!m||this.state.selected.includes(r))&&(m="inherit");const p=[];if(l!=null&&l.statusStates){const k={};Object.keys(l.statusStates).forEach(fe=>{var tt;let de=l.statusStates[fe];de.split(".").length<3&&(de=`${r}.${de}`),k[fe]=de,this.states[de]?this.recordStates.includes(de)||this.recordStates.push(de):((tt=this.objects[de])==null?void 0:tt.type)==="state"&&(this.recordStates.includes(de)||this.recordStates.push(de),this.states[de]={val:null},this.subscribe(de))});let q=!1;l.statusStates.errorId&&this.states[k.errorId]&&this.states[k.errorId].val&&(m=this.props.themeType==="dark"?k4:Y4,q=!0,p.push(M.createElement(Mg,{key:"error",style:this.styles.iconDeviceError}))),k.onlineId&&this.states[k.onlineId]?q?this.states[k.onlineId].val?p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):this.states[k.onlineId].val?(m=this.props.themeType==="dark"?Wn:Bn,p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))):(m=this.props.themeType==="dark"?Jn:Rn,p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):k.offlineId&&this.states[k.offlineId]&&(q?this.states[k.offlineId].val?p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):this.states[k.offlineId].val?(m=this.props.themeType==="dark"?Jn:Rn,p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):(m=this.props.themeType==="dark"?Wn:Bn,p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))))}const _=T?O.quality2text(((ci=this.states[r])==null?void 0:ci.q)||0).join(", "):null;let x=((tr=e.data)==null?void 0:tr.title)||"",P=!1;if(this.state.showDescription){const k=b4(e.data,this.props.lang);k&&(x=[M.createElement("div",{key:"name",style:w.cellNameDivDiv},x),M.createElement("div",{key:"desc",style:w.cellDescription},k)],P=!!k)}const v=this.props.width==="xs"&&this.state.focused===r,ee=M.createElement(j.Grid2,{container:!0,wrap:"nowrap",direction:"row",sx:w.cellId,style:{width:this.columnsVisibility.id,paddingLeft:u}},M.createElement(j.Grid2,{container:!0,alignItems:"center"},L,o),M.createElement(j.Grid2,{style:{...w.cellIdSpan,...A?this.styles.invertedBackground:void 0,color:m,fontWeight:D?"bold":void 0}},M.createElement(j.Tooltip,{title:lSe(e.data,this.props.lang),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,e.data.name)),C,p),M.createElement("div",{style:{...w.grow,...A?this.styles.invertedBackgroundFlex:{}}}),M.createElement(j.Grid2,{container:!0,alignItems:"center"},c),this.props.width!=="xs"?M.createElement("div",null,M.createElement(Ts,{className:v?"":"copyButton",style:w.cellCopyButton,onClick:k=>this.onCopy(k,r)})):null);let ue=v&&x||this.columnsVisibility.name?M.createElement(j.Box,{component:"div",sx:{...w.cellName,...P?w.cellNameWithDesc:void 0,width:this.props.width!=="xs"?this.columnsVisibility.name:void 0,ml:v?0:"5px"}},x,!v&&((sr=e.data)!=null&&sr.title)?M.createElement(j.Box,{style:{color:m}},M.createElement(Ts,{className:"copyButton",style:w.cellCopyButton,onClick:k=>{var q;return this.onCopy(k,(q=e.data)==null?void 0:q.title)}})):null):null,G;this.state.statesView?G=[v&&T&&((AM=this.states[r])!=null&&AM.from)||this.columnsVisibility.changedFrom?{el:M.createElement("div",{key:"from",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.changedFrom:void 0},title:z.join(` -`)},T&&((mM=this.states[r])!=null&&mM.from)?d:null),type:"from"}:null,v&&_||this.columnsVisibility.qualityCode?{el:M.createElement("div",{key:"q",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.qualityCode:void 0},title:_||""},_),type:"quality"}:null,v&&T&&((OM=this.states[r])!=null&&OM.ts)||this.columnsVisibility.timestamp?{el:M.createElement("div",{key:"ts",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.timestamp:void 0}},T&&((EM=this.states[r])!=null&&EM.ts)?O.formatDate(new Date(this.states[r].ts),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"ts"}:null,v&&T&&((fM=this.states[r])!=null&&fM.lc)||this.columnsVisibility.lastChange?{el:M.createElement("div",{key:"lc",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.lastChange:void 0}},T&&((xM=this.states[r])!=null&&xM.lc)?O.formatDate(new Date(this.states[r].lc),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"lc"}:null]:G=[v&&(n!=null&&n.type)||this.columnsVisibility.type?{el:M.createElement("div",{key:"type",style:{...w.cellType,width:this.props.width!=="xs"?this.columnsVisibility.type:void 0}},N," ",n==null?void 0:n.type),type:"filter_type"}:null,v&&l||this.columnsVisibility.role?{el:M.createElement("div",{key:"role",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.role:"100%",cursor:this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?"text":"default"},onClick:!v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0},l==null?void 0:l.role),type:"filter_role",onClick:v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0}:null,v&&l||this.columnsVisibility.room?{el:M.createElement("div",{key:"room",style:{...w.cellRoom,...e.data.per?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.room:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=Ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.rooms),type:"filter_room",onClick:v&&y?()=>{const k=Ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0}:null,v&&l||this.columnsVisibility.func?{el:M.createElement("div",{key:"func",style:{...w.cellFunc,...e.data.pef?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.func:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=Ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.funcs),type:"filter_func",onClick:v&&y?()=>{const k=Ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0}:null];let H=((_M=this.adapterColumns)==null?void 0:_M.map(k=>M.createElement("div",{style:{...w.cellAdapter,width:this.props.width!=="xs"?this.columnsVisibility[k.id]:void 0},key:k.id,title:`${k.adapter} => ${k.pathText}`},n?this.renderCustomValue(n,k,e):null)))||null;const Te=v||this.columnsVisibility.val?this.renderColumnValue(r,e,v):null;let Fe=v&&Te||this.columnsVisibility.val?M.createElement("div",{style:{...w.cellValue,width:this.props.width!=="xs"?this.columnsVisibility.val:"calc(100% - 100px)",cursor:g?(l==null?void 0:l.type)==="file"?"zoom-in":e.data.button?"grab":"text":"default"},onClick:k=>{var q,fe,de;if(g){if(!(!n||!this.states))if((l==null?void 0:l.type)==="file")this.setState({viewFileDialog:r});else if(e.data.url&&k.ctrlKey){if((q=this.states[r])!=null&&q.val&&typeof this.states[r].val=="string")if((l==null?void 0:l.role)==="url.self")window.location.href=this.states[r].val;else{const tt=window.open(this.states[r].val,"_blank");tt==null||tt.focus()}}else!this.state.filter.expertMode&&e.data.button?this.props.socket.setState(r,!0).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):!this.state.filter.expertMode&&e.data.switch?this.props.socket.setState(r,!this.states[r].val).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):(this.edit={val:this.states[r]?this.states[r].val:"",q:this.states[r]&&this.states[r].q||0,ack:!1,id:r},this.setState({updateOpened:!0}))}else(l==null?void 0:l.role)==="url"||(l==null?void 0:l.role)==="url.blank"&&k.ctrlKey?(fe=this.states[r])!=null&&fe.val&&typeof this.states[r].val=="string"&&window.open(this.states[r].val,"_blank"):(l==null?void 0:l.role)==="url.self"&&k.ctrlKey&&(de=this.states[r])!=null&&de.val&&typeof this.states[r].val=="string"&&(window.location.href=this.states[r].val)}},Te):null,Ge=v||this.columnsVisibility.buttons?M.createElement("div",{style:{...w.cellButtons,width:this.props.width!=="xs"?this.columnsVisibility.buttons:void 0}},this.renderColumnButtons(r,e)):null,Ls=null;if(this.props.width==="xs"&&this.state.focused===r){G=G.filter(q=>q);let k;G.length?k=G.map(q=>q?M.createElement("div",{key:q.type,style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts[q.type],":"),q.el,M.createElement("div",{style:{flexGrow:1}}),q.onClick?M.createElement(mi,{style:w.cellCopyButtonInDetails,onClick:()=>{q!=null&&q.onClick&&q.onClick()}}):null):null):k=null,H.length||(H=null),Ls=M.createElement(j.Paper,{style:{width:"100%",display:"flex",flexDirection:"column",padding:10,backgroundColor:this.props.theme.palette.mode==="dark"?"#333":"#ccc"}},M.createElement("div",{style:w.cellDetailsLine},M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{style:w.cellCopyButtonInDetails,onClick:q=>this.onCopy(q,r)})),ue&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.name,":"),ue,M.createElement("div",{style:{flexGrow:1}}),(SM=e.data)!=null&&SM.title?M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{var fe;return this.onCopy(q,(fe=e.data)==null?void 0:fe.title)}}):null),k,H&&M.createElement("div",{style:w.cellDetailsLine},H),((kM=this.objects[r])==null?void 0:kM.type)==="state"&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.value,":"),Fe,M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{const{valText:fe}=qo({state:this.states[r],obj:this.objects[r],texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma});this.onCopy(q,fe.c!==void 0?fe.c:fe.v.toString())},key:"cc"})),Ge&&M.createElement("div",{style:{...w.cellDetailsLine,justifyContent:"right"}},Ge)),ue=null,G=null,H=null,Fe=null,Ge=null}return{row:M.createElement(j.Grid2,{container:!0,direction:"row",wrap:"nowrap",sx:O.getStyle(this.props.theme,w.tableRow,this.state.linesEnabled&&w.tableRowLines,!this.props.dragEnabled&&w.tableRowNoDragging,C&&w.tableRowAlias,I&&w.tableRowAliasReadWrite,this.state.focused===r&&this.props.multiSelect&&w.tableRowFocused,!e.data.visible&&w.filteredOut,e.data.hasVisibleParent&&!e.data.visible&&!e.data.hasVisibleChildren&&w.filteredParentOut,this.state.selected.includes(r)&&w.itemSelected,this.state.selectedNonObject===r&&w.itemSelected),key:r,id:r,onMouseDown:k=>{this.onSelect(r);let q;"which"in k?q=k.which===3:"button"in k&&(q=k.button===2),q?this.contextMenu={item:e,ts:Date.now()}:this.contextMenu=null},onDoubleClick:()=>{e.children?this.toggleExpanded(r):this.onSelect(r,!0)}},ee,ue,G==null?void 0:G.map(k=>k==null?void 0:k.el),H,Fe,Ge),details:Ls}}renderItem(e,t,i){const r=[];i=i||{count:0};const o=this.renderLeaf(e,t,i);let n;const a=this.props.DragWrapper;return this.props.dragEnabled&&a?e.data.sumVisibility?n=M.createElement(a,{key:e.data.id,item:e,style:w.draggable},o.row):n=M.createElement("div",{key:e.data.id,style:w.nonDraggable},o.row):n=o.row,e.data.id&&n&&r.push(n),o.details&&r.push(o.details),t=t===void 0?vi(this.state.expanded,e.data.id):t,(!e.data.id||t)&&(this.state.foldersFirst?e.children&&(r.push(e.children.map(c=>c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null)),r.push(e.children.map(c=>!c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))):e.children&&r.push(e.children.map(c=>(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))),r}calculateColumnsVisibility(e,t,i,r){let o=r||this.state.columnsWidths;const n=i||this.state.columnsForAdmin,a=t||this.state.columns||[],c=typeof e!="boolean"?this.state.columnsAuto:e;o=JSON.parse(JSON.stringify(o)),Object.keys(o).forEach(N=>{o[N]&&(o[N]=parseInt(o[N],10)||0)}),this.adapterColumns=[];const l=le[this.props.width||"lg"].widths;if(c){if(this.columnsVisibility={id:le[this.props.width||"lg"].idWidth,name:this.visibleCols.includes("name")&&l.name||0,nameHeader:this.visibleCols.includes("name")&&l.name||0,type:this.visibleCols.includes("type")&&l.type||0,role:this.visibleCols.includes("role")&&l.role||0,room:this.visibleCols.includes("room")&&l.room||0,func:this.visibleCols.includes("func")&&l.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&l.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&l.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&l.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&l.lastChange||0,val:this.visibleCols.includes("val")&&l.val||0,buttons:this.visibleCols.includes("buttons")&&l.buttons||0},this.columnsVisibility.name&&!this.customWidth){let N=this.columnsVisibility.id||0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.name=`calc(100% - ${N+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${N+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let N=0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.id=`calc(100% - ${N+5}px)`}}else{const N=this.props.width||"lg";this.columnsVisibility={id:o.id||le[N].idWidth,name:a.includes("name")&&(o.name||l.name||le[N].widths.name)||0,type:a.includes("type")&&(o.type||l.type||le[N].widths.type)||0,role:a.includes("role")&&(o.role||l.role||le[N].widths.role)||0,room:a.includes("room")&&(o.room||l.room||le[N].widths.room)||0,func:a.includes("func")&&(o.func||l.func||le[N].widths.func)||0};let u=this.columnsVisibility.id;if(this.columnsVisibility.name&&(u+=this.columnsVisibility.type||0,u+=this.columnsVisibility.role||0,u+=this.columnsVisibility.room||0,u+=this.columnsVisibility.func||0),n&&a&&Object.keys(n).sort().forEach(L=>n[L].forEach(g=>{const y=`_${L}_${g.path}`;if(a.includes(y)){const T={adapter:L,id:`_${L}_${g.path}`,name:g.name,path:g.path.split("."),pathText:g.path};g.edit&&(T.edit=!0,g.type&&(T.type=g.type),g.objTypes&&(T.objTypes=g.objTypes)),this.adapterColumns.push(T),this.columnsVisibility[y]=o[T.id]||g.width||le[N].widths.func||le.xl.widths.func||0,u+=this.columnsVisibility[y]}else this.columnsVisibility[y]=0})),this.adapterColumns.sort((L,g)=>L.id>g.id?-1:L.idy==="id"||typeof this.columnsVisibility[y]=="string"||!this.columnsVisibility[y]?g:g+this.columnsVisibility[y],0);this.columnsVisibility.id=`calc(100% - ${L}px)`}}}resizerMouseMove=e=>{if(this.resizerActiveDiv){let t,i;this.resizeLeft?(t=this.resizerOldWidth-e.clientX+this.resizerPosition,i=this.resizerOldWidthNext+e.clientX-this.resizerPosition):(t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition),this.resizerActiveName&&this.resizerNextName&&(!this.resizerMin||t>this.resizerMin)&&(!this.resizerNextMin||i>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=t,this.resizerCurrentWidths[this.resizerNextName]=i,this.resizerActiveDiv.style.width=`${t}px`,this.resizerNextDiv&&(this.resizerNextDiv.style.width=`${i}px`),this.columnsVisibility[this.resizerActiveName]=t,this.columnsVisibility[this.resizerNextName]=i,this.resizerNextName==="nameHeader"?(this.columnsVisibility.name=i-this.state.scrollBarWidth,this.resizerCurrentWidths.name=i-this.state.scrollBarWidth):this.resizerActiveName==="nameHeader"&&(this.columnsVisibility.name=t-this.state.scrollBarWidth,this.resizerCurrentWidths.name=t-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=null,this.forceUpdate()},200))}};resizerMouseUp=()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveName=null,this.resizerNextName=null,this.resizerActiveDiv=null,this.resizerNextDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{if(this.storedWidths||=JSON.parse(JSON.stringify(le[this.props.width||"lg"])),this.resizerCurrentWidths||={},this.resizerActiveDiv=e.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name||null,this.resizerActiveName){let t=0;if(e.target.dataset.left==="true"){this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler");for(;this.resizerNextDiv&&!i&&t<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler"),t++;(i==null?void 0:i.dataset.left)!=="true"&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name||null,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=e.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerNextName&&(this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName]),window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};navigateKeyPress(e){var i,r;const t=this.state.selectedNonObject||this.state.selected[0];if(t){if(e.code==="ArrowUp"||e.code==="ArrowDown"){e.preventDefault();const o=[];(i=this.tableRef.current)==null||i.childNodes.forEach(l=>o.push(l.id));const n=o.indexOf(t),a=e.code==="ArrowDown"?n+1:n-1,c=o[a]||t;this.onSelect(c),this.scrollToItem(c)}if((e.code==="ArrowRight"||e.code==="ArrowLeft")&&this.toggleExpanded(t),e.code==="Delete"&&this.root&&t){const o=it.getItemFromRoot(this.root,t);if(o){const{obj:n}=o.data;n&&!((r=n.common)!=null&&r.dontDelete)&&this.showDeleteDialog({id:t,obj:n,item:o})}}}}static getItemFromRoot(e,t){const i=t.split(".");let r="",o=e;for(let n=0;n{this.customWidth=!1,le[this.props.width||"lg"]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),this.localStorage.removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()};renderHandleRight(){return M.createElement(j.Box,{component:"div",className:"iob-ob-resize-handler",sx:{...w.resizeHandle,...w.resizeHandleRight},onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})}renderHeader(){let e=null;return!this.columnsVisibility.buttons&&!this.isFilterEmpty()&&(e=M.createElement(j.IconButton,{onClick:()=>this.clearFilter(),style:w.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large"},M.createElement(sSe,null),M.createElement(Ne,{style:w.buttonClearFilterIcon}))),this.props.width==="xs"?M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:"100%"}},this.getFilterInput("id"))):M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id"},this.getFilterInput("id"),this.renderHandleRight()),this.columnsVisibility.name?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.nameHeader,position:"relative"},"data-min":100,"data-name":"nameHeader"},this.getFilterInput("name"),this.renderHandleRight()):null,!this.state.statesView&&M.createElement(M.Fragment,null,this.columnsVisibility.type?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.type,position:"relative"},"data-min":100,"data-name":"type"},this.getFilterSelectType(),this.renderHandleRight()):null,this.columnsVisibility.role?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.role,position:"relative"},"data-min":100,"data-name":"role"},this.getFilterSelectRole(),this.renderHandleRight()):null,this.columnsVisibility.room?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.room,position:"relative"},"data-min":100,"data-name":"room"},this.getFilterSelectRoom(),this.renderHandleRight()):null,this.columnsVisibility.func?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.func,position:"relative"},"data-min":100,"data-name":"func"},this.getFilterSelectFunction(),this.renderHandleRight()):null),this.state.statesView&&M.createElement(M.Fragment,null,M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.changedFrom,position:"relative"},"data-min":100,"data-name":"changedFrom"},this.props.t("ra_Changed from"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.qualityCode,position:"relative"},"data-min":100,"data-name":"qualityCode"},this.props.t("ra_Quality code"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.timestamp,position:"relative"},"data-min":100,"data-name":"timestamp"},this.props.t("ra_Timestamp"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.lastChange,position:"relative"},"data-min":100,"data-name":"lastChange"},this.props.t("ra_Last change"),this.renderHandleRight())),this.adapterColumns.map(t=>M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility[t.id]},title:t.adapter,key:t.id,"data-min":100,"data-name":t.id},t.name)),this.columnsVisibility.val?M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val"},this.props.t("ra_Value"),e):null,this.columnsVisibility.buttons?M.createElement("div",{title:this.texts.filter_custom,style:{...w.headerCell,width:this.columnsVisibility.buttons}}," ",this.getFilterSelectCustoms()):null)}renderToast(){return M.createElement(j.Snackbar,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:M.createElement(j.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""})},M.createElement(Ne,{fontSize:"small"}))})}componentDidUpdate(){if(this.tableRef.current){const e=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==e?setTimeout(()=>this.setState({scrollBarWidth:e}),100):this.selectFirst&&this.scrollToItem(this.selectFirst)}}scrollToItem(e){this.selectFirst="";const t=window.document.getElementById(e);t==null||t.scrollIntoView({behavior:"auto",block:"center",inline:"center"})}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const e=this.props.objectCustomDialog;return M.createElement(e,{reportChangedIds:t=>this.changedIds=[...t],objectIDs:this.state.customDialog,allVisibleObjects:!!this.state.customDialogAll,expertMode:this.state.filter.expertMode,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,t:this.props.t,lang:this.props.lang,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objects:this.objects,customsInstances:this.info.customs,onClose:()=>{var t;this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),(t=this.props.router)==null||t.doNavigate("tab-objects")},systemConfig:this.systemConfig})}return null}onUpdate(e){this.props.socket.setState(this.edit.id,{val:e.val,ack:e.ack,q:e.q||0,expire:e.expire||void 0}).catch(t=>this.showError(`Cannot write value: ${t}`))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const e=this.props.objectBrowserEditObject;return M.createElement(e,{key:this.state.editObjectDialog,obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,dialogName:this.props.dialogName,aliasTab:this.state.editObjectAlias,t:this.props.t,expertMode:!!this.state.filter.expertMode,onNewObject:t=>this.props.socket.setObject(t._id,t).then(()=>this.setState({editObjectDialog:t._id,editObjectAlias:!1},()=>this.onSelect(t._id))).catch(i=>this.showError(`Cannot write object: ${i}`)),onClose:t=>{var i,r;if(t){let o;this.state.editObjectDialog.startsWith("alias.")&&JSON.stringify((i=this.objects[this.state.editObjectDialog].common)==null?void 0:i.alias)!==JSON.stringify((r=t.common)==null?void 0:r.alias)&&(o=this.state.editObjectDialog),this.props.socket.setObject(t._id,t).then(()=>{o&&this.subscribes.includes(o)&&(this.unsubscribe(o),setTimeout(()=>this.subscribe(o),100))}).catch(n=>this.showError(`Cannot write object: ${n}`))}this.setState({editObjectDialog:"",editObjectAlias:!1})},width:this.props.width})}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const e=this.props.objectBrowserViewFile;return M.createElement(e,{key:"viewFile",obj:this.objects[this.state.viewFileDialog],socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({viewFileDialog:""})})}renderAliasEditorDialog(){if(!this.props.objectBrowserAliasEditor||!this.state.showAliasEditor)return null;const e=this.props.objectBrowserAliasEditor;return M.createElement(e,{key:"editAlias",obj:this.objects[this.state.showAliasEditor],roleArray:this.info.roles,objects:this.objects,socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({showAliasEditor:""}),onRedirect:(t,i)=>setTimeout(()=>this.onSelect(t,!1,()=>this.expandAllSelected(()=>{this.scrollToItem(t),setTimeout(()=>this.setState({editObjectDialog:t,showAliasEditor:"",editObjectAlias:!0}),300)})),i||0)})}showAddDataPointDialog(e,t,i){this.setState({showContextMenu:null,modalNewObj:{id:e,initialType:t,initialStateType:i}})}renderAliasMenu(){return this.state.aliasMenu?M.createElement(j.Menu,{key:"aliasmenu",open:!0,anchorEl:window.document.getElementById(`alias_${this.state.aliasMenu}`),onClose:()=>this.setState({aliasMenu:""})},this.info.aliasesMap[this.state.aliasMenu].map((e,t)=>M.createElement(j.MenuItem,{key:e,onClick:()=>this.onSelect(e)},M.createElement(j.ListItemText,null,this.renderAliasLink(this.state.aliasMenu,t,{"& .admin-browser-arrow":{mr:"8px"}}))))):null}renderContextMenu(){var L,g,y,T,d,z,I;if(!this.state.showContextMenu)return null;const e=this.state.showContextMenu.item,t=e.data.id,i=[],r=e.data.obj;let o="";if(this.props.objectEditOfAccessControl&&this.state.filter.expertMode)if(!r)o="---";else{const C=r.acl?r.type==="state"?r.acl.state:r.acl.object:0,m=r.acl&&(r.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);o=Number.isNaN(Number(C))?Number(m).toString(16):Number(C).toString(16)}const n=!this.props.notEditable&&r&&(this.state.filter.expertMode||r.type==="state"||r.type==="channel"||r.type==="device"),a=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="channel"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",c=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",l=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",N=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",u={EDIT:{key:"0",visibility:!!(this.props.objectBrowserEditObject&&r&&(this.state.filter.expertMode||it.isNonExpertId(t))),icon:M.createElement(mi,{fontSize:"small",style:this.styles.contextMenuEdit}),label:this.texts.editObject,onClick:()=>this.setState({editObjectDialog:e.data.id,showContextMenu:null,editObjectAlias:!1})},EDIT_VALUE:{key:"1",visibility:!!(this.states&&!this.props.notEditable&&r&&r.type==="state"&&((L=r.common)==null?void 0:L.type)!=="file"&&(this.state.filter.expertMode||r.common.write!==!1)),icon:M.createElement(gg,{fontSize:"small",style:this.styles.contextMenuEditValue}),label:this.props.t("ra_Edit value"),onClick:()=>{var C;this.edit={val:this.states[t]?this.states[t].val:"",q:((C=this.states[t])==null?void 0:C.q)||0,ack:!1,id:t},this.setState({updateOpened:!0,showContextMenu:null})}},VIEW:{visibility:!!this.props.objectBrowserViewFile&&(r==null?void 0:r.type)==="state"&&((g=r.common)==null?void 0:g.type)==="file",icon:M.createElement(ug,{fontSize:"small",style:this.styles.contextMenuView}),label:this.props.t("ra_View file"),onClick:()=>this.setState({viewFileDialog:(r==null?void 0:r._id)||"",showContextMenu:null})},CUSTOM:{key:"2",visibility:!(this.props.objectCustomDialog&&this.info.hasSomeCustoms&&r&&r.type==="state"&&((y=r.common)==null?void 0:y.type)!=="file"),icon:M.createElement(ln,{fontSize:"small",style:e.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),style:this.styles.contextMenuCustom,label:this.texts.customConfig,onClick:()=>{var C;this.pauseSubscribe(!0),(C=this.props.router)==null||C.doNavigate(null,"customs",t),this.setState({customDialog:[t],showContextMenu:null})}},ACL:{key:"3",visibility:!!o,icon:o,iconStyle:{fontSize:"smaller"},listItemIconStyle:this.styles.contextMenuACL,style:this.styles.contextMenuACL,label:this.props.t("ra_Edit ACL"),onClick:()=>this.setState({showContextMenu:null,modalEditOfAccess:!0,modalEditOfAccessObjData:e.data})},ROLE:{key:"4",visibility:!!(this.state.filter.expertMode&&n&&this.props.objectBrowserEditRole),icon:M.createElement(ZL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit role"),onClick:()=>this.setState({roleDialog:e.data.id,showContextMenu:null})},FUNCTION:{key:"5",visibility:!!n,icon:M.createElement(GL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit function"),onClick:()=>{const C=Ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ROOM:{key:"6",visibility:!!n,icon:M.createElement(ig,{fontSize:"small",style:this.styles.contextMenuRoom}),label:this.props.t("ra_Edit room"),onClick:()=>{const C=Ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ALIAS:{key:"7",visibility:!!(!this.props.notEditable&&this.props.objectBrowserAliasEditor&&this.props.objectBrowserEditObject&&(r==null?void 0:r.type)==="state"&&((T=r.common)==null?void 0:T.type)!=="file"),icon:M.createElement(yN,{style:(d=r==null?void 0:r.common)!=null&&d.alias?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),label:this.info.aliasesMap[e.data.id]||e.data.id.startsWith("alias.0.")?this.props.t("ra_Edit alias"):this.props.t("ra_Create alias"),onClick:()=>{var C;(C=r==null?void 0:r.common)!=null&&C.alias?this.setState({showContextMenu:null,editObjectDialog:e.data.id,editObjectAlias:!0}):this.setState({showContextMenu:null,showAliasEditor:e.data.id})}},CREATE:{key:"+",visibility:(e.data.id.startsWith("0_userdata.0")||e.data.id.startsWith("javascript."))&&(a||c||l||N),icon:M.createElement(un,{fontSize:"small",style:this.styles.cellButtonsButtonWithCustoms}),style:w.contextMenuWithSubMenu,label:this.texts.create,subMenu:[{label:this.texts.createBooleanState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","boolean")},{label:this.texts.createNumberState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","number")},{label:this.texts.createStringState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","string")},{label:this.texts.createState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state")},{label:this.texts.createChannel,visibility:c,icon:M.createElement(O4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"channel")},{label:this.texts.createDevice,visibility:l,icon:M.createElement(E4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"device")},{label:this.texts.createFolder,icon:M.createElement(gN,{fontSize:"small"}),visibility:N,onClick:()=>this.showAddDataPointDialog(e.data.id,"folder")}]},RENAME:{key:"8",visibility:!!(!this.props.notEditable&&this.props.objectMoveRenameDialog&&!e.data.id.startsWith("system.")&&e.data.id.split(".").length>2&&(this.props.expertMode||e.data.id.startsWith("javascript.0.")||e.data.id.startsWith("0_userdata.0."))),icon:M.createElement(ag,null),label:this.props.t("ra_Rename_Move_Copy"),onClick:()=>{const C=Object.keys(this.objects),m=`${e.data.id}.`;this.setState({showContextMenu:null,showRenameDialog:{id:e.data.id,childrenIds:C.filter(A=>A.startsWith(m))}})}},DELETE:{key:"Delete",visibility:!!(this.props.onObjectDelete&&((z=e.children)!=null&&z.length||r&&!((I=r.common)!=null&&I.dontDelete))),icon:M.createElement(nt,{fontSize:"small",style:this.styles.contextMenuDelete}),style:this.styles.contextMenuDelete,label:this.texts.deleteObject,onClick:()=>this.setState({showContextMenu:null},()=>this.showDeleteDialog({id:t,obj:r||{},item:e}))}};return Object.keys(u).forEach(C=>{var m,A;u[C].visibility&&(u[C].subMenu?(i.push(M.createElement(j.MenuItem,{key:C,href:"",onClick:D=>this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position,subItem:C,subAnchor:D.target}}),style:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label,"..."),M.createElement("div",{style:{...w.contextMenuKeys,opacity:1}},M.createElement(RL,null)))),((m=this.state.showContextMenu)==null?void 0:m.subItem)===C&&i.push(M.createElement(j.Menu,{key:"subContextMenu",open:!0,anchorEl:this.state.showContextMenu.subAnchor,onClose:()=>{this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position}}),this.contextMenu=null}},(A=u[C].subMenu)==null?void 0:A.map(D=>D.visibility?M.createElement(j.MenuItem,{key:D.label,onClick:D.onClick,style:D.style},M.createElement(j.ListItemIcon,{style:{...D.iconStyle,...D.listItemIconStyle||void 0}},D.icon),M.createElement(j.ListItemText,null,D.label)):null)))):i.push(M.createElement(j.MenuItem,{key:C,onClick:u[C].onClick,sx:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label),u[C].key?M.createElement("div",{style:w.contextMenuKeys},`Alt+${u[C].key==="Delete"?this.props.t("ra_Del"):u[C].key}`):null)))}),i.length?M.createElement(j.Menu,{key:"contextMenu",open:!0,onKeyUp:C=>{C.preventDefault(),C.altKey&&Object.keys(u).forEach(m=>{C.key===u[m].key&&u[m].onClick&&u[m].onClick()})},anchorReference:"anchorPosition",anchorPosition:this.state.showContextMenu.position,onClose:()=>{this.setState({showContextMenu:null}),this.contextMenu=null}},i):(setTimeout(()=>this.setState({showContextMenu:null}),100),null)}renderEditValueDialog(){var r;if(!this.state.updateOpened||!this.props.objectBrowserValue)return null;if(!this.edit.id)return console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`),null;if(!this.objects[this.edit.id])return console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`),null;const e=(r=this.objects[this.edit.id].common)!=null&&r.type?this.objects[this.edit.id].common.type:typeof this.edit.val,t=this.objects[this.edit.id].common.role,i=this.props.objectBrowserValue;return M.createElement(i,{t:this.props.t,lang:this.props.lang,type:e,role:t||"",states:O.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,theme:this.props.theme,expertMode:!!this.state.filter.expertMode,value:this.edit.val,socket:this.props.socket,object:this.objects[this.edit.id],defaultHistory:this.defaultHistory,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,onClose:o=>{this.setState({updateOpened:!1}),o&&this.onUpdate(o)},width:this.props.width})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer),this.styleTheme!==this.props.themeType&&(this.styles={cellIdIconFolder:O.getStyle(this.props.theme,w.cellIdIconFolder),cellIdIconDocument:O.getStyle(this.props.theme,w.cellIdIconDocument),iconDeviceError:O.getStyle(this.props.theme,w.iconDeviceError),iconDeviceConnected:O.getStyle(this.props.theme,w.iconDeviceConnected),iconDeviceDisconnected:O.getStyle(this.props.theme,w.iconDeviceDisconnected),cellButtonsButtonWithCustoms:O.getStyle(this.props.theme,w.cellButtonsButtonWithCustoms),invertedBackground:O.getStyle(this.props.theme,w.invertedBackground),invertedBackgroundFlex:O.getStyle(this.props.theme,w.invertedBackgroundFlex),contextMenuEdit:O.getStyle(this.props.theme,w.contextMenuEdit),contextMenuEditValue:O.getStyle(this.props.theme,w.contextMenuEditValue),contextMenuView:O.getStyle(this.props.theme,w.contextMenuView),contextMenuCustom:O.getStyle(this.props.theme,w.contextMenuCustom),contextMenuACL:O.getStyle(this.props.theme,w.contextMenuACL),contextMenuRoom:O.getStyle(this.props.theme,w.contextMenuRoom),contextMenuRole:O.getStyle(this.props.theme,w.contextMenuRole),contextMenuDelete:O.getStyle(this.props.theme,w.contextMenuDelete),filterInput:O.getStyle(this.props.theme,w.headerCellInput,w.filterInput),iconCopy:O.getStyle(this.props.theme,w.cellButtonsValueButton,w.cellButtonsValueButtonCopy),aliasReadWrite:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasReadWrite),aliasAlone:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasAlone)},this.styleTheme=this.props.themeType);const e=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==e&&this.objects&&this.root){const i={count:0};Gn(this.root,this.state.filter,this.props.lang,this.objects,void 0,i,this.props.customFilter,this.props.types),i.count<500&&!this.state.expandAllVisible?setTimeout(()=>this.setState({expandAllVisible:!0})):i.count>=500&&this.state.expandAllVisible&&setTimeout(()=>this.setState({expandAllVisible:!1})),this.lastAppliedFilter=e}if(this.unsubscribeTimer=setTimeout(()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()},200),!this.state.loaded)return M.createElement(j.CircularProgress,{key:`${this.props.dialogName}_c`});const t=this.root?this.renderItem(this.root,void 0):null;return M.createElement(iSe,{key:this.props.dialogName},M.createElement("style",null,` -@keyframes newValueAnimation-light { - 0% { - color: #00f900; - } - 80% { - color: #008000; - } - 100% { - color: #000; - } -} -@keyframes newValueAnimation-dark { - 0% { - color: #00f900; - } - 80% { - color: #008000; - } - 100% { - color: #fff; - } -} -.newValueBrowser-dark { - animation: newValueAnimation-dark 2s ease-in-out; -} -.newValueBrowser-light { - animation: newValueAnimation-light 2s ease-in-out; -} -.highlight-link .iob-link { - text-decoration: underline; - cursor: pointer; -} -`),M.createElement(oSe,null,this.getToolbar()),M.createElement(rSe,null,this.renderHeader(),M.createElement(j.Box,{style:w.tableDiv,ref:this.tableRef,onKeyDown:i=>this.navigateKeyPress(i)},t)),this.renderContextMenu(),this.renderAliasMenu(),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderAliasEditorDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderRenameDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.state.modalEditOfAccessObjData&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}}const gSe=Io()(it);class Z3e extends M.Component{refTypo;height;width;constructor(e){super(e),this.state={closed:this.props.storeId?window.localStorage.getItem(this.props.storeId)==="true":!1},this.height=0,this.width=0,this.refTypo=M.createRef()}componentDidMount(){this.detectHeight()}onClick(){this.props.storeId&&this.props.closed===void 0&&(this.state.closed?window.localStorage.removeItem(this.props.storeId):window.localStorage.setItem(this.props.storeId,"true")),this.props.closed===void 0?this.setState({closed:!this.state.closed},()=>{this.props.onClose&&this.props.onClose(this.state.closed)}):this.props.onClose&&this.props.onClose(!this.props.closed)}detectHeight(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed;this.props.closeable&&!e&&this.refTypo.current&&window.requestAnimationFrame(()=>{(this.props.closed!==void 0?this.props.closed:this.state.closed)||this.refTypo.current&&(!this.height||this.width!==this.refTypo.current.clientWidth)&&(this.height=this.refTypo.current.clientHeight,this.width=this.refTypo.current.clientWidth,this.forceUpdate())})}componentDidUpdate(){this.detectHeight()}render(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed,t=e?Sg:Ne;return M.createElement(j.Box,{className:"iom-info-box",style:{whiteSpace:"preserve",display:"flex",gap:8,alignItems:e||this.props.iconPosition==="top"?"flex-start":"center",borderWidth:1,borderStyle:"solid",padding:4,borderRadius:5,marginBottom:8,maxWidth:"100%",transition:"height 0.5s",height:this.props.closeable?e?30:this.height||void 0:void 0,overflow:this.props.closeable?"hidden":void 0,position:"relative",...this.props.style},sx:{borderColor:i=>this.props.type==="ok"?i.palette.info.main:i.palette[this.props.type].main}},this.props.type==="ok"?M.createElement(Oe,{style:{color:"#0F0"}}):this.props.type==="info"?M.createElement(la,{color:"primary"}):M.createElement(kg,{color:this.props.type}),M.createElement(j.Typography,{ref:this.refTypo},this.props.children),this.props.closeable?M.createElement(t,{sx:{color:i=>i.palette.mode==="dark"?"lightgray":"gray",cursor:"pointer",position:"absolute",top:4,right:4},onClick:()=>this.onClick()}):null,this.props.closeable?M.createElement("div",{style:{width:22}}):null,e?M.createElement(j.Box,{component:"div",sx:i=>{const r=i.palette[this.props.type==="ok"?"info":this.props.type].main;return{background:`linear-gradient(${r}00 0%, ${r}10 60%, ${r}90 100%)`}},style:{bottom:0,position:"absolute",left:0,right:0,height:10}}):null)}}const E={hr:{border:0,borderTop:"1px solid gray"},scrollWindow:{width:"100%",overflow:"auto",height:"calc(100% - 22px)"},rowDiv:{width:"100%"},modeDiv:{width:200,display:"inline-block",verticalAlign:"top"},settingsDiv:{display:"inline-block",verticalAlign:"top"},inputTime:{width:90,marginTop:0,marginLeft:5},inputDate:{width:140,marginTop:0,marginLeft:5},inputEvery:{width:40,marginLeft:5,marginRight:5},inputRadio:{padding:"4px 12px",verticalAlign:"top"},inputGroup:{maxWidth:400,display:"inline-block"},inputGroupElement:{width:120},inputDateDay:{width:60},inputDateDayCheck:{padding:4},inputSmallCheck:{padding:0},rowOnce:{},rowDays:s=>({background:s.palette.mode!=="dark"?"#ddeaff":"#4b5057"}),rowDows:s=>({background:s.palette.mode!=="dark"?"#DDFFDD":"#52646c"}),rowMonths:s=>({background:s.palette.mode!=="dark"?"#DDFFFF":"#1f5557"}),rowMonthsDates:s=>({background:s.palette.mode!=="dark"?"#EEFFFF":"#3c5737",maxWidth:600}),rowYears:s=>({background:s.palette.mode!=="dark"?"#fbffdd":"#574b33"}),rowDowsDows:s=>({background:s.palette.mode!=="dark"?"#EEFFEE":"#3d4c54",pl:"10px",pb:"10px"})},en=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],zr=["January","February","March","April","May","June","July","August","September","October","November","December"],tn={minutes:"minutes",hours:"hours"},ji=["sunrise","sunriseEnd","goldenHourEnd","solarNoon","goldenHour","sunsetStart","sunset","dusk","nauticalDusk","night","nightEnd","nauticalDawn","dawn","nadir"];function gt(s){return s<10?`0${s}`:`${s}`}const Bl={time:{exactTime:!1,start:"00:00",end:"23:59",mode:"hours",interval:1},period:{once:"",days:1,dows:"",dates:"",weeks:0,months:"",years:0,yearMonth:0,yearDate:0},valid:{from:"",to:""}};function sn(s){const e=s.split(".");return e.length===3?`${e[2]}-${e[1]}-${e[0]}`:""}class De extends f.Component{refFrom;refTo;refOnce;timerOnce=null;timerFrom=null;timerTo=null;constructor(e){super(e);let t;if(this.props.schedule&&typeof this.props.schedule=="string"&&this.props.schedule[0]==="{")try{t=JSON.parse(this.props.schedule)}catch{}else typeof this.props.schedule=="object"&&(t=this.props.schedule);(!t||!Object.keys(t).length)&&(setTimeout(()=>this.onChange(this.state.schedule,!0),200),t=Bl),t={...Bl,...t},t.valid.from||=De.now2string(),this.refFrom=M.createRef(),this.refTo=M.createRef(),this.refOnce=M.createRef(),this.state={schedule:t,desc:De.state2text(t)},JSON.stringify(t)!==this.props.schedule&&setTimeout(()=>{var i,r;return(r=(i=this.props).onChange)==null?void 0:r.call(i,JSON.stringify(t))},100)}onChange(e,t){var r,o;const i=JSON.stringify(e)!==JSON.stringify(this.state.schedule);if(t||i){i&&this.setState({schedule:e,desc:De.state2text(e)});const n=JSON.parse(JSON.stringify(e));if(n.period.once){const a=n.period.once;delete n.period,n.period={once:a},delete n.valid}else if(n.period.days){const a=n.period.days,c=n.period.dows;delete n.period,n.period={days:a},c&&c!=="[]"&&(n.period.dows=c)}else if(n.period.weeks){const a=n.period.weeks,c=n.period.dows;delete n.period,n.period={weeks:a},c&&c!=="[]"&&(n.period.dows=c)}else if(n.period.months){const a=n.period.months,c=n.period.dates;delete n.period,n.period={months:a},c&&c!=="[]"&&(n.period.dates=c)}else if(n.period.years){const a=n.period.years,c=n.period.yearMonth,l=n.period.yearDate;delete n.period,n.period={years:a,yearDate:l},c&&(n.period.yearMonth=c)}if(n.time.exactTime?(delete n.time.end,delete n.time.mode,delete n.time.interval):delete n.time.exactTime,n.valid){if(n.valid.to||delete n.valid.to,n.period.days===1||n.period.weeks===1||n.period.months===1||n.period.years===1){const a=De.string2date(n.valid.from),c=new Date;c.setHours(0),c.setMinutes(0),c.setSeconds(0),c.setMilliseconds(0),a<=c&&delete n.valid.from}!n.valid.from&&!n.valid.to&&delete n.valid}(o=(r=this.props).onChange)==null||o.call(r,JSON.stringify(n),De.state2text(e))}}static state2text(e){if(typeof e=="string")try{e=JSON.parse(e)}catch{return""}const t=[],i=De.string2date(e.valid.from);if(e.period.once){const r=De.string2date(e.period.once),o=new Date;if(o.setMilliseconds(0),o.setSeconds(0),o.setMinutes(0),o.setHours(0),rh.t(en[n]));if(o.length===1)t.push(h.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(h.t("sch_desc_everyDay"));else{const n=o.pop();t.push(h.t("sch_desc_onWeekdays",o.join(", "),n))}}}else t.push(h.t("sch_desc_everyDay"));else t.push(h.t("sch_desc_everyNDay",e.period.days.toString()));else if(e.period.weeks)if(e.period.weeks===1?t.push(h.t("sch_desc_everyWeek")):t.push(h.t("sch_desc_everyNWeeks",e.period.weeks.toString())),e.period.dows){const r=JSON.parse(e.period.dows);if(r.length===2&&r[0]===0&&r[1]===6)t.push(h.t("sch_desc_onWeekends"));else if(r.length===5&&r[0]===1&&r[1]===2&&r[2]===3&&r[3]===4&&r[4]===5)t.push(h.t("sch_desc_onWorkdays"));else{const o=r.map(n=>h.t(en[n]));if(o.length===1)t.push(h.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(h.t("sch_desc_everyDay"));else{const n=o.pop();t.push(h.t("sch_desc_onWeekdays",o.join(", "),n))}}}else return h.t("sch_desc_never");else if(e.period.months){if(e.period.dates){const r=JSON.parse(e.period.dates);if(r.length===1)t.push(h.t("sch_desc_onDate",r[0]));else if(r.length===31)t.push(h.t("sch_desc_onEveryDate"));else if(r.length){const o=r.pop();t.push(h.t("sch_desc_onDates",r.join(", "),o))}else return h.t("sch_desc_never")}else t.push(h.t("sch_desc_onEveryDate"));if(e.period.months===1)t.push(h.t("sch_desc_everyMonth"));else if(typeof e.period.months=="number")t.push(h.t("sch_desc_everyNMonths",e.period.months.toString()));else{const o=JSON.parse(e.period.months).map(n=>h.t(zr[n-1]));if(!o.length)return h.t("sch_desc_never");if(o.length===1)t.push(h.t("sch_desc_onMonth",o[0]));else if(o.length===12)t.push(h.t("sch_desc_everyMonth"));else{const n=o.pop();t.push(h.t("sch_desc_onMonths",o.join(", "),n))}}}else e.period.years&&(e.period.years===1?t.push(h.t("sch_desc_everyYear")):t.push(h.t("sch_desc_everyNYears",e.period.years.toString())),t.push(h.t("sch_desc_onDate",e.period.yearDate.toString(),e.period.yearMonth?h.t(zr[e.period.yearMonth-1]):h.t("sch_desc_everyMonth"))));if(e.time.exactTime)ji.includes(e.time.start)?t.push(h.t("sch_desc_atTime",h.t(`sch_astro_${e.time.start}`))):t.push(h.t("sch_desc_atTime",e.time.start));else{e.time.mode===tn.minutes?e.time.interval===1?t.push(h.t("sch_desc_everyMinute")):t.push(h.t("sch_desc_everyNMinutes",e.time.interval.toString())):e.time.interval===1?t.push(h.t("sch_desc_everyHour")):t.push(h.t("sch_desc_everyNHours",e.time.interval.toString()));const r=ji.indexOf(e.time.start)!==-1?h.t(`sch_astro_${e.time.start}`):e.time.start,o=ji.indexOf(e.time.end)!==-1?h.t(`sch_astro_${e.time.end}`):e.time.end;(r!=="00:00"||o!=="24:00"&&o!=="23:59")&&t.push(h.t("sch_desc_intervalFromTo",r,o))}return e.period.once||(i.getTime()>Date.now()&&e.valid.to?t.push(h.t("sch_desc_validFromTo",e.valid.from,e.valid.to)):i.getTime()>Date.now()?t.push(h.t("sch_desc_validFrom",e.valid.from)):e.valid.to&&t.push(h.t("sch_desc_validTo",e.valid.to))),t.join(" ")}getTimePeriodElements(){const e=this.state.schedule;let t=!1,i=!1,r=!1,o=!0;return e.time.start==="00:00"&&e.time.end==="24:00"?(t=!0,o=!1):e.time.start==="sunrise"?(i=!0,o=!1):e.time.start==="sunset"&&(r=!0,o=!1),M.createElement("div",{key:"timePeriod",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!e.time.exactTime,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.exactTime=!1,this.onChange(n)}}),label:h.t("sch_intervalTime")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},!e.time.exactTime&&M.createElement("div",null,M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!o,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="23:59",this.onChange(n)}}),label:o?"":h.t("sch_fromTo")}),o&&[M.createElement(j.TextField,{variant:"standard",style:{...E.inputTime,marginRight:10},key:"exactTimeFrom",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.start,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.start=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:h.t("sch_from"),margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeTo",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.end,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.end=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:h.t("sch_to"),margin:"normal"})])),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="24:00",this.onChange(n)}}),label:h.t("sch_wholeDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!i,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunrise",n.time.end="sunset",this.onChange(n)}}),label:h.t("sch_astroDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!r,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunset",n.time.end="sunrise",this.onChange(n)}}),label:h.t("sch_astroNight")}))),!e.time.exactTime&&this.getPeriodSettingsMinutes(o)))}getTimeExactElements(){const e=ji.includes(this.state.schedule.time.start);return M.createElement("div",{key:"timeExact",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!this.state.schedule.time.exactTime,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.time.exactTime=!0,this.onChange(t)}}),label:h.t("sch_exactTime")})),this.state.schedule.time.exactTime&&M.createElement(j.Select,{variant:"standard",value:e?this.state.schedule.time.start:"00:00",onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{key:"specific",value:"00:00"},h.t("sch_specificTime")),ji.map(t=>M.createElement(j.MenuItem,{key:t,value:t},h.t(`sch_astro_${t}`)))),this.state.schedule.time.exactTime&&!e&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeValue",value:this.state.schedule.time.start,type:"time",sx:t=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:t.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}static getDivider(){return M.createElement("hr",{style:E.hr})}getPeriodModes(){const e=this.state.schedule,t=!e.period.dows&&!e.period.months&&!e.period.dates&&!e.period.years&&!e.period.days&&!e.period.weeks;return t&&!e.period.once&&(e.period.once=De.now2string(!0)),[M.createElement("div",{key:"once",style:{...E.rowDiv,...E.rowOnce}},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.once||=De.now2string(!0),i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,this.onChange(i)}}),label:h.t("sch_periodOnce")})),t&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputDate,type:"date",ref:this.refOnce,key:"exactDateAt",defaultValue:sn(e.period.once),onChange:i=>{this.timerOnce&&clearTimeout(this.timerOnce),this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="#ff000030"),this.timerOnce=setTimeout(r=>{this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),n=De.string2date(r);n.toString()!=="Invalid Date"&&(o.period.once=`${gt(n.getDate())}.${gt(n.getMonth()+1)}.${n.getFullYear()}`,this.onChange(o))},1500,i.target.value)},slotProps:{inputLabel:{shrink:!0}},label:h.t("sch_at"),margin:"normal"}))),M.createElement(j.Box,{component:"div",key:"days",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDays)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.days,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=1,i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodDaily")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsDaily(),e.period.days?this.getPeriodSettingsWeekdays():null)),M.createElement(j.Box,{component:"div",key:"weeks",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDows)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.weeks,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=e.period.weeks?0:1,i.period.dows||="[0]",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodWeekly")})),M.createElement(j.Box,{component:"div",style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsWeekly()),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowDowsDows)},this.state.schedule.period.weeks?this.getPeriodSettingsWeekdays():null))),M.createElement(j.Box,{component:"div",key:"months",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowMonths)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.months,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,i.period.dows="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodMonthly")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsMonthly(),e.period.months?M.createElement(j.Box,null,M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.period.dates,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months||=1;const r=[];for(let o=1;o<=31;o++)r.push(o);i.period.dates||=JSON.stringify(r),i.period.dows="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodDates")})),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},this.getPeriodSettingsDates())):null)),M.createElement(j.Box,{component:"div",key:"years",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowYears)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.years,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=1,i.period.yearDate=1,i.period.yearMonth=1,i.period.dows="",i.period.months=0,i.period.dates="",i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodYearly")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsYearly()),!!e.period.years&&M.createElement("div",{style:E.settingsDiv},M.createElement("span",null,h.t("sch_on")),M.createElement(j.Input,{key:"input",value:this.state.schedule.period.yearDate,style:E.inputEvery,type:"number",inputProps:{min:1,max:31},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearDate=parseInt(i.target.value,10),r.period.yearDate<1&&(r.period.yearDate=31),r.period.yearDate>31&&(r.period.yearDate=1),this.onChange(r)}}),M.createElement(j.Select,{variant:"standard",value:e.period.yearMonth,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearMonth=i.target.value,this.onChange(r)}},M.createElement(j.MenuItem,{key:"every",value:0},h.t("sch_yearEveryMonth")),zr.map((i,r)=>M.createElement(j.MenuItem,{key:i,value:r+1},h.t(i)))))))]}getPeriodSettingsMinutes(e){return M.createElement("div",{style:{display:"inline-block",marginTop:e?15:"inherit"}},M.createElement("label",{style:{marginLeft:4,marginRight:4}},h.t("sch_every")),M.createElement(j.Input,{value:this.state.schedule.time.interval,style:{...E.inputEvery,verticalAlign:"bottom"},type:"number",inputProps:{min:1},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.interval=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement(j.Select,{variant:"standard",value:this.state.schedule.time.mode,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.mode=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{value:tn.minutes},h.t("sch_periodMinutes")),M.createElement(j.MenuItem,{value:tn.hours},h.t("sch_periodHours"))))}getPeriodSettingsWeekdays(){const e=this.state.schedule,t=e.period.dows&&e.period.dows!=="[1, 2, 3, 4, 5]"&&e.period.dows!=="[0, 6]";return[M.createElement("div",{key:"workdays"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[1, 2, 3, 4, 5]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[1, 2, 3, 4, 5]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:h.t("sch_periodWorkdays")})),M.createElement("div",{key:"weekend"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[0, 6]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:h.t("sch_periodWeekend")})),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 1, 2, 3, 4, 5, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:h.t("sch_periodWeekdays")}),t&&(e.period.days===1||e.period.weeks)&&M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,width:150}},[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:`specific_${i}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:e.period.dows.includes(i.toString()),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state.schedule));let n;try{n=JSON.parse(o.period.dows)}catch{n=[]}r.target.checked&&!n.includes(i)?n.push(i):!r.target.checked&&n.includes(i)&&n.splice(n.indexOf(i),1),n.sort((a,c)=>a-c),o.period.dows=JSON.stringify(n),o.period.days&&(o.period.days=1),this.onChange(o)}}),label:h.t(en[i])}))))]}getPeriodSettingsDaily(){if(!this.state.schedule.period.days)return null;const e=this.state.schedule;return[M.createElement("div",{key:"every_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days===1&&!e.period.dows,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=1,t.period.dows="",this.onChange(t)}}),label:h.t("sch_periodEveryDay")})),M.createElement("div",{key:"everyN_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=2,t.period.dows="",this.onChange(t)}}),label:h.t("sch_periodEvery")}),e.period.days>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.days,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=parseInt(t.target.value,10),i.period.dows="",this.onChange(i)}}),M.createElement("span",{key:"span",style:{paddingRight:10}},h.t("sch_periodDay"))])]}getPeriodSettingsWeekly(){if(!this.state.schedule.period.weeks)return null;const e=this.state.schedule;return[M.createElement("div",{key:"radios",style:{display:"inline-block",verticalAlign:"top"}},M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=1,this.onChange(t)}}),label:h.t("sch_periodEveryWeek")})),M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=2,this.onChange(t)}}),label:h.t("sch_periodEvery")}),e.period.weeks>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.weeks,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement("span",{key:"text"},h.t("sch_periodWeek"))]))]}getPeriodSettingsDates(){if(!this.state.schedule.period.dates)return null;const e=this.state.schedule,t=[];for(let r=1;r<=31;r++)t.push(r);const i=JSON.parse(e.period.dates);return M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,maxWidth:620}},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:i.length===31,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[];for(let n=1;n<=31;n++)o.push(n);r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:h.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!i.length,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.dates="[]",this.onChange(r)}}),label:h.t("sch_no_one")}),i.length!==31&&!!i.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[],n=JSON.parse(r.period.dates);for(let a=1;a<=31;a++)n.includes(a)||o.push(a);o.sort((a,c)=>a-c),r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:h.t("sch_invert")}),M.createElement("div",null),t.map(r=>M.createElement(j.FormControlLabel,{key:`date_${r}`,style:r?E.inputDateDay:{...E.inputDateDay,opacity:0,cursor:"default",userSelect:"none",pointerEvents:"none"},control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:JSON.parse(e.period.dates).includes(r),onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.dates)}catch{a=[]}o.target.checked&&!a.includes(r)?a.push(r):!o.target.checked&&a.includes(r)&&a.splice(a.indexOf(r),1),a.sort((c,l)=>c-l),n.period.dates=JSON.stringify(a),this.onChange(n)}}),label:r<10?[M.createElement("span",{key:"0",style:{opacity:0}},"0"),M.createElement("span",{key:"num"},r)]:r})))}getPeriodSettingsMonthly(){if(!this.state.schedule.period.months)return null;const e=this.state.schedule,t=typeof e.period.months=="string"?JSON.parse(e.period.months):[];return[M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months===1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,this.onChange(e)}}),label:h.t("sch_periodEveryMonth")})),M.createElement("div",{key:"everyN"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months>1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=2,this.onChange(i)}}),label:h.t("sch_periodEvery")}),typeof e.period.months=="number"&&e.period.months>1&&[M.createElement(j.Input,{key:"input",value:e.period.months,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.months=parseInt(i.target.value,10),r.period.months<1&&(r.period.months=1),this.onChange(r)}}),M.createElement("span",{key:"text"},h.t("sch_periodMonth"))]),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="string",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[1,2,3,4,5,6,7,8,9,10,11,12]",this.onChange(i)}}),label:h.t("sch_periodSpecificMonths")}),typeof e.period.months=="string"&&M.createElement(j.FormGroup,{row:!0,style:E.inputGroup},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:t.length===12,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[];for(let o=1;o<=12;o++)r.push(o);i.period.months=JSON.stringify(r),this.onChange(i)}}),label:h.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!t.length,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[]",this.onChange(i)}}),label:h.t("sch_no_one")}),t.length!==12&&!!t.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[],o=JSON.parse(i.period.months);for(let n=1;n<=12;n++)o.includes(n)||r.push(n);r.sort((n,a)=>n-a),i.period.months=JSON.stringify(r),this.onChange(i)}}),label:h.t("sch_invert")}),M.createElement("div",null),zr.map((i,r)=>M.createElement(j.FormControlLabel,{key:`month_${r}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:typeof e.period.months=="string"?JSON.parse(e.period.months).includes(r+1):e.period.months===r,onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.months)}catch{a=[]}o.target.checked&&!a.includes(r+1)?a.push(r+1):!o.target.checked&&a.includes(r+1)&&a.splice(a.indexOf(r+1),1),a.sort((c,l)=>c-l),n.period.months=JSON.stringify(a),this.onChange(n)}}),label:h.t(i)}))))]}getPeriodSettingsYearly(){if(!this.state.schedule.period.years)return null;const e=this.state.schedule;return[M.createElement("div",{key:"year"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=1,this.onChange(t)}}),label:h.t("sch_periodEveryYear")})),M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=2,this.onChange(t)}}),label:h.t("sch_periodEvery")}),e.period.years>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.years,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=parseInt(t.target.value,10),i.period.years<1&&(i.period.years=1),this.onChange(i)}}),M.createElement("span",{key:"text"},h.t("sch_periodYear"))])]}static now2string(e){const t=new Date;return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),e&&(t.setDate(t.getDate()+2),t.setMilliseconds(t.getMilliseconds()-1)),`${gt(t.getDate())}.${gt(t.getMonth()+1)}.${gt(t.getFullYear())}`}static string2date(e){let t=e.split(".");return t.length===1?(t=e.split("-"),new Date(parseInt(t[0],10),parseInt(t[1],10)-1,parseInt(t[2],10))):new Date(parseInt(t[2],10),parseInt(t[1],10)-1,parseInt(t[0],10))}getValidSettings(){const e=this.state.schedule;return M.createElement("div",{style:E.rowDiv},M.createElement("div",{style:{...E.modeDiv,verticalAlign:"middle"}},M.createElement("span",{style:{fontWeight:"bold",paddingRight:10}},h.t("sch_valid")),M.createElement("span",null,h.t("sch_validFrom"))),M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",inputRef:this.refFrom,defaultValue:sn(e.valid.from),type:"date",onChange:t=>{this.timerFrom&&clearTimeout(this.timerFrom),this.refFrom.current&&(this.refFrom.current.style.background="#ff000030"),this.timerFrom=setTimeout(i=>{this.timerFrom=null,this.refFrom.current&&(this.refFrom.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=De.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.from=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.valid.to,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.valid.to=t.valid.to?"":De.now2string(!0),this.onChange(t)}}),label:h.t("sch_validTo")}),!!e.valid.to&&M.createElement(j.TextField,{variant:"standard",inputRef:this.refTo,style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",type:"date",defaultValue:sn(e.valid.to),onChange:t=>{this.timerTo&&clearTimeout(this.timerTo),this.refTo.current&&(this.refTo.current.style.background="#ff000030"),this.timerTo=setTimeout(i=>{this.timerTo=null,this.refTo.current&&(this.refTo.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=De.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.to=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}render(){return M.createElement("div",{style:{height:"calc(100% - 48px)",width:"100%",overflow:"hidden"}},M.createElement("div",null,this.state.desc),M.createElement("div",{style:E.scrollWindow},M.createElement("h5",null,h.t("sch_time")),this.getTimePeriodElements(),this.getTimeExactElements(),De.getDivider(),M.createElement("h5",null,h.t("sch_period")),this.getPeriodModes(),!this.state.schedule.period.once&&De.getDivider(),!this.state.schedule.period.once&&this.getValidSettings()))}}const wr={different:{opacity:.5},icon:{width:16,height:16,marginRight:8}};class X3e extends f.Component{wordDifferent;timeout=null;constructor(e){super(e),e.different&&(this.wordDifferent=e.t("ra___different__"));let t;Array.isArray(e.list)?t=e.list.filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}):t=Object.values(e.list).filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}),e.different&&e.value===e.different&&t.unshift({value:e.different,name:this.wordDifferent||""}),e.allowNone&&t.unshift({value:"",name:h.t("ra_none")}),this.state={list:t}}render(){this.props.allowNone&&!this.state.list.find(r=>r.value==="")?this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list));r.unshift({value:"",name:h.t("ra_none")}),this.setState({list:r})},100):!this.props.allowNone&&this.state.list.find(r=>r.value==="")&&(this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list)),o=this.state.list.findIndex(n=>n.value==="");r.splice(o,1),this.setState({list:r})},100));const e=this.state.list.find(r=>r.value===this.props.value||this.props.removePrefix&&r.value.replace(this.props.removePrefix,"")===this.props.value),t=this.props.value===this.props.different?{}:{color:(e==null?void 0:e.color)||void 0,backgroundColor:O.getInvertedColor((e==null?void 0:e.color)||"",this.props.themeType)};this.props.dense&&this.props.style&&Object.assign(t,this.props.style);const i=M.createElement(j.Select,{variant:"standard",disabled:this.props.disabled,value:this.props.value,slotProps:{input:this.props.inputProps},renderValue:()=>M.createElement("span",null,e!=null&&e.icon?M.createElement(me,{src:e==null?void 0:e.icon,style:wr.icon}):null,e==null?void 0:e.name),sx:{"&.MuiSelect-root":this.props.value===this.props.different?wr.different:{}},classes:{root:this.props.dense?this.props.className:""},style:t,onChange:r=>{if(this.props.different&&r.target.value!==this.props.different){let o=null;for(let n=0;nthis.props.onChange(r.target.value));return}}this.props.onChange(this.props.removePrefix?r.target.value.replace(this.props.removePrefix,""):r.target.value)}},this.state.list.map(r=>M.createElement(j.MenuItem,{style:this.props.different&&r.value===this.props.different?wr.different:{color:r.color||void 0,backgroundColor:O.getInvertedColor(r.color||"",this.props.themeType)},key:r.value,value:r.value},r.icon?M.createElement(me,{src:r.icon,style:wr.icon}):null,r.name)));return this.props.dense?i:M.createElement(j.FormControl,{variant:"standard",fullWidth:!!this.props.fullWidth,style:this.props.style,className:this.props.className},M.createElement(j.InputLabel,null,this.props.label),i)}}class K3e extends f.Component{resizerRefTable;resizerActiveIndex;resizerActiveDiv;resizerCurrentWidths;widthFilled=!1;installTimeout=null;resizerMin=0;resizerMinNext=0;resizerPosition=0;resizerOldWidth=0;resizerOldWidthNext=0;constructor(e){super(e),this.resizerRefTable=M.createRef(),this.resizerActiveIndex=null,this.resizerActiveDiv=null,this.resizerCurrentWidths=[]}componentDidMount(){this.resizerInstall()}componentWillUnmount(){this.resizerUninstall()}resizerInstall(){if(this.resizerRefTable.current&&!this.resizerRefTable.current._installed){this.resizerRefTable.current._installed=!0;const e=this.resizerRefTable.current.querySelectorAll("th"),t=(window._localStorage||window.localStorage).getItem(`App.${this.props.name||"history"}.table`);if(this.widthFilled=!1,t)try{this.resizerCurrentWidths=JSON.parse(t),this.widthFilled=!0}catch{}if(this.widthFilled)if(this.resizerCurrentWidths.length!==e.length)this.resizerCurrentWidths=[],this.widthFilled=!1;else{const i=this.resizerRefTable.current.offsetWidth;let r=0;for(let o=0;o20&&(this.resizerCurrentWidths=[],this.widthFilled=!1)}for(let i=0;i{this.installTimeout=null,this.resizerInstall()},100)}resizerReset=()=>{for(let e=0;e{if(this.resizerActiveDiv&&this.resizerActiveIndex!==null){const t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition;(!this.resizerMin||t>this.resizerMin)&&(!this.resizerMinNext||i>this.resizerMinNext)&&(this.resizerCurrentWidths[this.resizerActiveIndex]=t,this.resizerCurrentWidths[this.resizerActiveIndex+1]=i,this.resizerApplyWidths())}};resizerMouseUp=()=>{(window._localStorage||window.localStorage).setItem(`App.${this.props.name||"history"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveIndex=null,this.resizerActiveDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{var t,i,r,o;if(this.resizerActiveIndex===null||this.resizerActiveIndex===void 0){console.log(`Mouse down ${(t=e.target)==null?void 0:t.dataset.index}`),this.resizerActiveIndex=parseInt(((i=e.target)==null?void 0:i.dataset.index)||"0",10),this.resizerActiveDiv=e.target,this.resizerMin=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex]:0,this.resizerMinNext=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex+1]:0,this.resizerPosition=e.clientX;let n;this.resizerCurrentWidths[this.resizerActiveIndex]==="auto"&&(n=(r=this.resizerRefTable.current)==null?void 0:r.querySelectorAll("th"),n&&(this.resizerCurrentWidths[this.resizerActiveIndex]=n[this.resizerActiveIndex].offsetWidth)),this.resizerCurrentWidths[this.resizerActiveIndex+1]==="auto"&&(n=n||((o=this.resizerRefTable.current)==null?void 0:o.querySelectorAll("th")),n&&(this.resizerCurrentWidths[this.resizerActiveIndex+1]=n[this.resizerActiveIndex+1].offsetWidth)),this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveIndex],this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerActiveIndex+1],window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};render(){if(this.props.ready===!1)return M.createElement(j.Skeleton,null);const e={gridTemplateColumns:this.resizerApplyWidths()};return M.createElement(j.Table,{stickyHeader:this.props.stickyHeader,size:this.props.size||"small",className:this.props.className,sx:this.props.sx,ref:this.resizerRefTable,style:{...this.props.style||void 0,...e}},this.props.children)}}const rn={div:{borderRadius:3,padding:"0 3px",lineHeight:"20px",whiteSpace:"nowrap",overflow:"hidden",display:"flex",alignItems:"center"},icon:{width:16,height:16,marginRight:8,verticalAlign:"middle"},text:{display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}};function q3e(s){var o,n,a,c,l,N,u,L,g;const e=s.value;let t;const i=s.removePrefix||"";if(typeof e=="string"){const y=s.list;if(y)if(Array.isArray(y)){const T=y.find(d=>(d==null?void 0:d._id)===i+e);T?t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((o=T.common)==null?void 0:o.icon),color:s.color||((n=T.common)==null?void 0:n.color)}:t={name:e,value:i+e}}else if(y[i+e]){const T=y[i+e];t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((a=T.common)==null?void 0:a.icon),color:s.color||((c=T.common)==null?void 0:c.color)}}else t={name:e,value:i+e,icon:s.icon,color:s.color};else t={name:e,value:i+e,icon:s.icon,color:s.color}}else if(!e||typeof e!="object")t={name:"",value:"",icon:s.icon,color:s.color};else{const y=e;t={name:O.getObjectNameFromObj(y,s.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:y._id,icon:s.icon||((l=y.common)==null?void 0:l.icon),color:s.color||((N=y.common)==null?void 0:N.color)}}const r=t!=null&&t.color?{border:`1px solid ${O.invertColor(t==null?void 0:t.color)}`,color:O.getInvertedColor(t==null?void 0:t.color,s.themeType||"light",!0)||void 0,backgroundColor:t==null?void 0:t.color}:{};return M.createElement("div",{style:{...s.style||void 0,...rn.div,...r||void 0},className:O.clsx(s.className,(u=s.moreClasses)==null?void 0:u.root),title:s.title||t.value},t!=null&&t.icon?M.createElement(me,{src:t==null?void 0:t.icon,className:(L=s.moreClasses)==null?void 0:L.icon,style:rn.icon}):null,M.createElement("div",{style:rn.text,className:(g=s.moreClasses)==null?void 0:g.text},t==null?void 0:t.name))}function e5e({themeName:s,toggleTheme:e,t,className:i,style:r,size:o}){return M.createElement("div",{className:i||void 0,style:r||void 0},M.createElement(j.Tooltip,{title:t("ra_Change color theme"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>e(),size:o||"medium"},s==="dark"&&M.createElement(XL,{className:i}),s==="blue"&&M.createElement(KL,{className:i}),s==="colored"&&M.createElement(ca,{className:i}),s!=="dark"&&s!=="blue"&&s!=="colored"&&M.createElement(qL,{className:i}))))}function po(){return(po=Object.assign||function(s){for(var e=1;e=0||(r[t]=s[t]);return r}function Hn(s){var e=f.useRef(s),t=f.useRef(function(i){e.current&&e.current(i)});return e.current=s,t.current}var bi=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),s>t?t:s0:d.buttons>0)&&r.current?o(Jl(r.current,d,a.current)):T(!1)},y=function(){return T(!1)};function T(d){var z=c.current,I=Vn(r.current),C=d?I.addEventListener:I.removeEventListener;C(z?"touchmove":"mousemove",g),C(z?"touchend":"mouseup",y)}return[function(d){var z=d.nativeEvent,I=r.current;if(I&&(Rl(z),!function(m,A){return A&&!fi(m)}(z,c.current)&&I)){if(fi(z)){c.current=!0;var C=z.changedTouches||[];C.length&&(a.current=C[0].identifier)}I.focus(),o(Jl(I,z,a.current)),T(!0)}},function(d){var z=d.which||d.keyCode;z<37||z>40||(d.preventDefault(),n({left:z===39?.05:z===37?-.05:0,top:z===40?.05:z===38?-.05:0}))},T]},[n,o]),N=l[0],u=l[1],L=l[2];return f.useEffect(function(){return L},[L]),M.createElement("div",po({},i,{onTouchStart:N,onMouseDown:N,className:"react-colorful__interactive",ref:r,onKeyDown:u,tabIndex:0,role:"slider"}))}),hM=function(s){return s.filter(Boolean).join(" ")},B4=function(s){var e=s.color,t=s.left,i=s.top,r=i===void 0?.5:i,o=hM(["react-colorful__pointer",s.className]);return M.createElement("div",{className:o,style:{top:100*r+"%",left:100*t+"%"}},M.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},he=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*s)/t},jSe=function(s){return hSe(Zn(s))},Zn=function(s){return s[0]==="#"&&(s=s.substring(1)),s.length<6?{r:parseInt(s[0]+s[0],16),g:parseInt(s[1]+s[1],16),b:parseInt(s[2]+s[2],16),a:s.length===4?he(parseInt(s[3]+s[3],16)/255,2):1}:{r:parseInt(s.substring(0,2),16),g:parseInt(s.substring(2,4),16),b:parseInt(s.substring(4,6),16),a:s.length===8?he(parseInt(s.substring(6,8),16)/255,2):1}},ySe=function(s){return DSe(dSe(s))},TSe=function(s){var e=s.s,t=s.v,i=s.a,r=(200-e)*t/100;return{h:he(s.h),s:he(r>0&&r<200?e*t/100/(r<=100?r:200-r)*100:0),l:he(r/2),a:he(i,2)}},Xn=function(s){var e=TSe(s);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},dSe=function(s){var e=s.h,t=s.s,i=s.v,r=s.a;e=e/360*6,t/=100,i/=100;var o=Math.floor(e),n=i*(1-t),a=i*(1-(e-o)*t),c=i*(1-(1-e+o)*t),l=o%6;return{r:he(255*[i,a,n,n,c,i][l]),g:he(255*[c,i,i,a,n,n][l]),b:he(255*[n,n,c,i,i,a][l]),a:he(r,2)}},Cr=function(s){var e=s.toString(16);return e.length<2?"0"+e:e},DSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=r<1?Cr(he(255*r)):"";return"#"+Cr(e)+Cr(t)+Cr(i)+o},hSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=Math.max(e,t,i),n=o-Math.min(e,t,i),a=n?o===e?(t-i)/n:o===t?2+(i-e)/n:4+(e-t)/n:0;return{h:he(60*(a<0?a+6:a)),s:he(o?n/o*100:0),v:he(o/255*100),a:r}},zSe=M.memo(function(s){var e=s.hue,t=s.onChange,i=hM(["react-colorful__hue",s.className]);return M.createElement("div",{className:i},M.createElement(W4,{onMove:function(r){t({h:360*r.left})},onKey:function(r){t({h:bi(e+360*r.left,0,360)})},"aria-label":"Hue","aria-valuenow":he(e),"aria-valuemax":"360","aria-valuemin":"0"},M.createElement(B4,{className:"react-colorful__hue-pointer",left:e/360,color:Xn({h:e,s:100,v:100,a:1})})))}),wSe=M.memo(function(s){var e=s.hsva,t=s.onChange,i={backgroundColor:Xn({h:e.h,s:100,v:100,a:1})};return M.createElement("div",{className:"react-colorful__saturation",style:i},M.createElement(W4,{onMove:function(r){t({s:100*r.left,v:100-100*r.top})},onKey:function(r){t({s:bi(e.s+100*r.left,0,100),v:bi(e.v-100*r.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+he(e.s)+"%, Brightness "+he(e.v)+"%"},M.createElement(B4,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:Xn(e)})))}),J4=function(s,e){if(s===e)return!0;for(var t in s)if(s[t]!==e[t])return!1;return!0},CSe=function(s,e){return s.toLowerCase()===e.toLowerCase()||J4(Zn(s),Zn(e))};function ISe(s,e,t){var i=Hn(t),r=f.useState(function(){return s.toHsva(e)}),o=r[0],n=r[1],a=f.useRef({color:e,hsva:o});f.useEffect(function(){if(!s.equal(e,a.current.color)){var l=s.toHsva(e);a.current={hsva:l,color:e},n(l)}},[e,s]),f.useEffect(function(){var l;J4(o,a.current.hsva)||s.equal(l=s.fromHsva(o),a.current.color)||(a.current={hsva:o,color:l},i(l))},[o,s,i]);var c=f.useCallback(function(l){n(function(N){return Object.assign({},N,l)})},[]);return[o,c]}var pSe=typeof window<"u"?f.useLayoutEffect:f.useEffect,ASe=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Fl=new Map,mSe=function(s){pSe(function(){var e=s.current?s.current.ownerDocument:document;if(e!==void 0&&!Fl.has(e)){var t=e.createElement("style");t.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Fl.set(e,t);var i=ASe();i&&t.setAttribute("nonce",i),e.head.appendChild(t)}},[])},OSe=function(s){var e=s.className,t=s.colorModel,i=s.color,r=i===void 0?t.defaultColor:i,o=s.onChange,n=P4(s,["className","colorModel","color","onChange"]),a=f.useRef(null);mSe(a);var c=ISe(t,r,o),l=c[0],N=c[1],u=hM(["react-colorful",e]);return M.createElement("div",po({},n,{ref:a,className:u}),M.createElement(wSe,{hsva:l,onChange:N}),M.createElement(zSe,{hue:l.h,onChange:N,className:"react-colorful__last-control"}))},ESe={defaultColor:"000",toHsva:jSe,fromHsva:function(s){return ySe({h:s.h,s:s.s,v:s.v,a:1})},equal:CSe},fSe=function(s){return M.createElement(OSe,po({},s,{colorModel:ESe}))};class xSe extends f.Component{dialogName;filters;filterFunc;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectID.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters||{}});let i=this.props.selected||[];if(Array.isArray(i)||(i=[i]),i=i.filter(r=>r),e.filterFunc)if(typeof e.filterFunc=="string")try{this.filterFunc=new Function("obj",e.filterFunc)}catch{console.error(`Cannot parse filter function: "obj => ${e.filterFunc}"`),this.filterFunc=void 0}else this.filterFunc=e.filterFunc;this.state={selected:i,name:"",selectionBlocked:!1}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}render(){let e;return this.state.name||this.state.selected.length?this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},(this.state.name||this.state.selected[0])+(this.state.name?` [${this.state.selected[0]}]`:""))]:e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},h.t("%s items",this.state.selected.length.toString()))]:e=this.props.title||h.t("ra_Please select object ID..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{height:"95%",p:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)"}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectid_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectid_title",style:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}},e),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden",padding:"8px 4px"}},M.createElement(gSe,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,dateFormat:this.props.dateFormat,defaultFilters:this.filters,dialogName:this.dialogName,isFloatComma:this.props.isFloatComma,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,expertMode:this.props.expertMode,columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types?Array.isArray(this.props.types)?this.props.types:[this.props.types]:["state"],root:this.props.root,t:h.t,lang:this.props.lang||h.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,customFilter:this.props.customFilter,allowNonObjects:this.props.allowNonObjects,onFilterChanged:t=>{this.filters=t,(window._localStorage||window.localStorage).setItem(this.dialogName,JSON.stringify(t))},onSelect:async(t,i,r)=>{let o;if(Array.isArray(t)?o=t:o=[t],JSON.stringify(o)!==JSON.stringify(this.state.selected)){let n=!0;if(this.props.onSelectConfirm){const a={};for(const c of o)try{a[c]=await this.props.socket.getObject(c)}catch{}n=await this.props.onSelectConfirm(o,a)}this.setState({selected:o,name:i,selectionBlocked:!n},()=>r&&this.handleOk())}else r&&this.handleOk()},filterFunc:this.filterFunc,title:"",classes:{}})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_selectid_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length||this.state.selectionBlocked,color:"primary"},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_selectid_cancel_${this.props.dialogName||""}`,color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}function St(s,e,t){if(typeof e=="string"&&(e=e.split(".")),!s)return null;if(e.length===1)return t&&t[s[e[0]]]?t[s[e[0]]]:s[e[0]];const i=e.shift();return St(s[i],e)}function R4(s,e,t){if(typeof e=="string"&&(e=e.split(".")),e.length===1)return s[e[0]]=t;const i=e.shift();return(s[i]===null||s[i]===void 0)&&(s[i]={}),R4(s[i],e,t)}const W={tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:s=>(s.palette.mode==="dark","#888"),color:s=>s.palette.mode==="dark"?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},fieldEditWithButton:{width:"calc(100% - 33px)",display:"inline-block"},fieldEdit:{width:"100%",display:"inline-block",lineHeight:"50px",verticalAlign:"middle"},fieldButton:{width:30,display:"inline-block"},colorDialog:{overflow:"hidden",padding:15},subText:{fontSize:10,fontStyle:"italic"},glow:{animation:"glow 0.2s 2 alternate"}};function Gl(s,e,t,i){const r=St(s,t,i)||"",o=St(e,t,i)||"";return or?1:0}function _Se(s,e,t){return s==="desc"?(i,r)=>Gl(i,r,e,t):(i,r)=>-Gl(i,r,e,t)}function SSe(s,e){const t=s.map((i,r)=>({e:i,i:r}));return t.sort((i,r)=>{const o=e(i.e,r.e);return o||i.i-r.i}),t.map(i=>i.e)}class Kn extends f.Component{selectCallback=null;updateTimeout=null;constructor(e){super(e);let t=(window._localStorage||window.localStorage).getItem(this.props.name||"iob-table")||"[]";try{t=JSON.parse(t)||[]}catch{t=[]}Array.isArray(t)||(t=[]),this.state={opened:t,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:this.props.columns[0].field,showSelectColor:!1}}static getDerivedStateFromProps(e,t){if(e.glowOnChange){const i=[];let r=0;return e.data&&t.data&&e.data.forEach(o=>{var a;r++;const n=(a=t.data)==null?void 0:a.find(c=>c.id===o.id);n?JSON.stringify(n)!==JSON.stringify(o)&&i.push(o.id):i.push(o.id)}),i.length&&i.length!==r?{data:e.data,update:i}:{data:e.data}}return{data:e.data}}renderCellEdit(e,t){let i=St(e,t.field);return Array.isArray(i)&&(i=i[0]),t.lookup?this.renderCellEditSelect(t,i):t.editComponent?this.renderCellEditCustom(t,i,e):t.type==="boolean"||!t.type&&typeof i=="boolean"?this.renderCellEditBoolean(t,i):t.type==="color"?this.renderCellEditColor(t,i):t.type==="oid"?this.renderCellEditObjectID(t,i):t.type==="numeric"?this.renderCellEditNumber(t,i):this.renderCellEditString(t,i)}onChange(e,t,i){const r=this.state.editData?{...this.state.editData}:{};i===t?delete r[e.field]:r[e.field]=i,this.setState({editData:r})}renderCellEditSelect(e,t){return M.createElement(j.Select,{variant:"standard",onChange:i=>this.onChange(e,t,i.target.value),value:this.state.editData&&this.state.editData[e.field]||t},e.lookup&&Object.keys(e.lookup).map((i,r)=>{var o;return M.createElement(j.MenuItem,{key:r,value:i},(o=e.lookup)==null?void 0:o[i])}))}renderCellEditString(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditNumber(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,type:"number",fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditCustom(e,t,i){const r=e.editComponent;return this.state.editData&&this.state.editData[e.field]!==void 0&&(t=this.state.editData[e.field],i=JSON.parse(JSON.stringify(i)),i[e.field]=t),r?M.createElement(r,{value:t,rowData:i,onChange:o=>this.onChange(e,t,o)}):null}renderCellEditBoolean(e,t){return M.createElement(j.Checkbox,{checked:this.state.editData&&this.state.editData[e.field]!==void 0?!!this.state.editData[e.field]:!!t,onChange:i=>this.onChange(e,!!t,i.target.checked),inputProps:{"aria-label":"checkbox"}})}renderSelectColorDialog(){return M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":W.root,"& .MuiPaper-paper":W.paper},onClose:()=>{this.selectCallback=null,this.setState({showSelectColor:!1})},open:this.state.showSelectColor},M.createElement(fSe,{color:this.state.selectIdValue,onChange:e=>this.setState({selectIdValue:e},()=>{this.selectCallback&&this.selectCallback(e)})}))}renderCellEditColor(e,t){const i=this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t;return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:i,inputProps:{style:{backgroundColor:i,color:O.isUseBright(i)?"#FFF":"#000"}},onChange:r=>this.onChange(e,!!t,r.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=r=>this.onChange(e,t,r),this.setState({showSelectColor:!0,selectIdValue:t})},size:"large"},M.createElement(sg,null)))}renderSelectIdDialog(){return this.state.showSelectId&&this.props.socket?M.createElement(xSe,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,selected:this.state.selectIdValue,onClose:()=>this.setState({showSelectId:!1}),onOk:e=>{this.setState({showSelectId:!1,selectIdValue:null});const t=Array.isArray(e)?e[0]:e;t&&this.selectCallback&&(this.selectCallback&&this.selectCallback(t),this.selectCallback=null)}}):null}renderCellEditObjectID(e,t){return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=i=>this.onChange(e,t,i),this.setState({showSelectId:!0,selectIdValue:t})},size:"large"},M.createElement(xg,null)))}static renderCellNonEdit(e,t){let i=St(e,t.field,t.lookup);return Array.isArray(i)&&(i=i[0]),t.type==="boolean"?M.createElement(j.Checkbox,{checked:!!i,disabled:!0,inputProps:{"aria-label":"checkbox"}}):i}renderCell(e,t,i,r){return this.state.editMode===r&&t.editable!=="never"&&t.editable!==!1?M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},this.renderCellEdit(e,t)):M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},Kn.renderCellNonEdit(e,t))}static renderCellWithSubField(e,t){const i=St(e,t.field,t.lookup);if(t.subField){const r=St(e,t.subField,t.subLookup);return M.createElement("div",null,M.createElement("div",{style:W.mainText},i),M.createElement("div",{style:{...W.subText,...t.subStyle||void 0}},r))}return M.createElement("div",null,M.createElement("div",{style:W.mainText},i))}renderLine(e,t){const i=this.props.levelShift===void 0?24:this.props.levelShift;t=t||0;const r=this.props.data.indexOf(e);if(!e||!t&&e.parentId||t&&!e.parentId)return null;const o=this.state.opened.includes(e.id),n=this.props.data.filter(c=>c.parentId===e.id),a=M.createElement(j.TableRow,{key:e.id,className:`table-row-${(e.id||"").toString().replace(/[.$]/g,"_")}`,style:{...this.state.update&&this.state.update.includes(e.id)&&W.glow||void 0,...W.row,...t?W.rowSecondary:void 0,...!t&&n.length?W.rowMainWithChildren:void 0,...!t&&!n.length?W.rowMainWithoutChildren:void 0,...this.state.editMode!==!1&&this.state.editMode!==r?W.rowNoEdit:void 0,...this.state.deleteMode!==!1&&this.state.deleteMode!==r?W.rowNoEdit:void 0}},M.createElement(j.TableCell,{style:{...W.cell,...W.cellExpand,...t?W.cellSecondary:void 0}},n.length?M.createElement(j.IconButton,{onClick:()=>{const c=[...this.state.opened],l=c.indexOf(e.id);l===-1?(c.push(e.id),c.sort()):c.splice(l,1),(window._localStorage||window.localStorage).setItem(this.props.name||"iob-table",JSON.stringify(c)),this.setState({opened:c})},size:"small"},o?M.createElement(cg,null):M.createElement(zg,null)):null),M.createElement(j.TableCell,{scope:"row",style:{...W.cell,...t?W.cellSecondary:void 0,...this.props.columns[0].cellStyle,paddingLeft:i*t}},this.props.columns[0].subField?Kn.renderCellWithSubField(e,this.props.columns[0]):St(e,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map((c,l)=>!l&&!c.hidden?null:this.renderCell(e,c,t,r)),this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>{if(this.state.editMode!==!1){const c=JSON.parse(JSON.stringify(e));this.state.editData&&Object.keys(this.state.editData).forEach(l=>{var N;return R4(c,l,(N=this.state.editData)==null?void 0:N[l])}),this.setState({editMode:!1},()=>this.props.onUpdate&&this.props.onUpdate(c,e))}else this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e))},size:"large"},M.createElement(Oe,null)):M.createElement(j.IconButton,{disabled:this.state.editMode!==!1,onClick:()=>this.setState({editMode:r,editData:null}),size:"large"},M.createElement(mi,null))):null,this.props.onDelete&&!this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e)),size:"large"},M.createElement(Oe,null)):null):null,this.props.onUpdate||this.props.onDelete?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{onClick:()=>this.setState({editMode:!1,deleteMode:!1}),size:"large"},M.createElement(Ne,null)):this.props.onDelete?M.createElement(j.IconButton,{disabled:this.state.deleteMode!==!1,onClick:()=>this.setState({deleteMode:r}),size:"large"},M.createElement(nt,null)):null):null);if(!t&&o){const c=n.map(l=>this.renderLine(l,t+1));return c.unshift(a),c}return a}handleRequestSort(e){const t=this.state.orderBy===e&&this.state.order==="asc";this.setState({order:t?"desc":"asc",orderBy:e})}renderHead(){return M.createElement(j.TableHead,null,M.createElement(j.TableRow,{key:"headerRow"},M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellExpand)}),M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${this.props.columns[0].field.replace(/\./g,"_")}`]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:()=>this.handleRequestSort(this.props.columns[0].field)},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map((e,t)=>!t&&!e.hidden?null:M.createElement(j.TableCell,{key:e.field,sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${e.field.replace(/\./g,"_")}`]),style:e.headerStyle||e.cellStyle,component:"th"},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===e.field,direction:this.state.orderBy===e.field?this.state.order:"asc",onClick:()=>this.handleRequestSort(e.field)},e.title||e.field,this.state.orderBy===e.field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null))),this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)},this.props.noAdd?null:M.createElement(j.Fab,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:()=>this.props.onUpdate&&this.props.onUpdate(!0)},M.createElement(un,null))):null,this.props.onDelete||this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)}):null))}render(){const e=this.props.columns.find(t=>t.field===this.state.orderBy);if(e){const t=e.lookup,i=SSe(this.props.data,_Se(this.state.order,this.state.orderBy,t));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({update:null})},500)),M.createElement("div",{style:W.tableContainer,className:this.props.className},M.createElement(j.Table,{style:W.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),M.createElement(j.TableBody,null,i.map(r=>this.renderLine(r)))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}return null}}/*! - * Cropper.js v1.6.2 - * https://fengyuanchen.github.io/cropperjs - * - * Copyright 2015-present Chen Fengyuan - * Released under the MIT license - * - * Date: 2024-04-21T07:43:05.335Z - */function Hl(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(s,r).enumerable})),t.push.apply(t,i)}return t}function F4(s){for(var e=1;es.length)&&(e=s.length);for(var t=0,i=new Array(e);t
',XSe=Number.isNaN||ct.isNaN;function V(s){return typeof s=="number"&&!XSe(s)}var aN=function(e){return e>0&&e<1/0};function on(s){return typeof s>"u"}function is(s){return qn(s)==="object"&&s!==null}var KSe=Object.prototype.hasOwnProperty;function $s(s){if(!is(s))return!1;try{var e=s.constructor,t=e.prototype;return e&&t&&KSe.call(t,"isPrototypeOf")}catch{return!1}}function Se(s){return typeof s=="function"}var qSe=Array.prototype.slice;function sL(s){return Array.from?Array.from(s):qSe.call(s)}function je(s,e){return s&&Se(e)&&(Array.isArray(s)||V(s.length)?sL(s).forEach(function(t,i){e.call(s,t,i,s)}):is(s)&&Object.keys(s).forEach(function(t){e.call(s,s[t],t,s)})),s}var ce=Object.assign||function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&i.forEach(function(o){is(o)&&Object.keys(o).forEach(function(n){e[n]=o[n]})}),e},e3e=/\.\d*(?:0|9){12}\d*$/;function Bs(s){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return e3e.test(s)?Math.round(s*e)/e:s}var t3e=/^width|height|left|top|marginLeft|marginTop$/;function Yt(s,e){var t=s.style;je(e,function(i,r){t3e.test(r)&&V(i)&&(i="".concat(i,"px")),t[r]=i})}function s3e(s,e){return s.classList?s.classList.contains(e):s.className.indexOf(e)>-1}function ye(s,e){if(e){if(V(s.length)){je(s,function(i){ye(i,e)});return}if(s.classList){s.classList.add(e);return}var t=s.className.trim();t?t.indexOf(e)<0&&(s.className="".concat(t," ").concat(e)):s.className=e}}function Mt(s,e){if(e){if(V(s.length)){je(s,function(t){Mt(t,e)});return}if(s.classList){s.classList.remove(e);return}s.className.indexOf(e)>=0&&(s.className=s.className.replace(e,""))}}function Ps(s,e,t){if(e){if(V(s.length)){je(s,function(i){Ps(i,e,t)});return}t?ye(s,e):Mt(s,e)}}var i3e=/([a-z\d])([A-Z])/g;function pM(s){return s.replace(i3e,"$1-$2").toLowerCase()}function Ma(s,e){return is(s[e])?s[e]:s.dataset?s.dataset[e]:s.getAttribute("data-".concat(pM(e)))}function Ui(s,e,t){is(t)?s[e]=t:s.dataset?s.dataset[e]=t:s.setAttribute("data-".concat(pM(e)),t)}function r3e(s,e){if(is(s[e]))try{delete s[e]}catch{s[e]=void 0}else if(s.dataset)try{delete s.dataset[e]}catch{s.dataset[e]=void 0}else s.removeAttribute("data-".concat(pM(e)))}var iL=/\s\s*/,rL=function(){var s=!1;if(Ao){var e=!1,t=function(){},i=Object.defineProperty({},"once",{get:function(){return s=!0,e},set:function(o){e=o}});ct.addEventListener("test",t,i),ct.removeEventListener("test",t,i)}return s}();function Ve(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(iL).forEach(function(o){if(!rL){var n=s.listeners;n&&n[o]&&n[o][t]&&(r=n[o][t],delete n[o][t],Object.keys(n[o]).length===0&&delete n[o],Object.keys(n).length===0&&delete s.listeners)}s.removeEventListener(o,r,i)})}function We(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(iL).forEach(function(o){if(i.once&&!rL){var n=s.listeners,a=n===void 0?{}:n;r=function(){delete a[o][t],s.removeEventListener(o,r,i);for(var l=arguments.length,N=new Array(l),u=0;uMath.abs(t)&&(t=L)})}),t}function pr(s,e){var t=s.pageX,i=s.pageY,r={endX:t,endY:i};return e?r:F4({startX:t,startY:i},r)}function a3e(s){var e=0,t=0,i=0;return je(s,function(r){var o=r.startX,n=r.startY;e+=o,t+=n,i+=1}),e/=i,t/=i,{pageX:e,pageY:t}}function vt(s){var e=s.aspectRatio,t=s.height,i=s.width,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",o=aN(i),n=aN(t);if(o&&n){var a=t*e;r==="contain"&&a>i||r==="cover"&&a90?{width:c,height:a}:{width:a,height:c}}function c3e(s,e,t,i){var r=e.aspectRatio,o=e.naturalWidth,n=e.naturalHeight,a=e.rotate,c=a===void 0?0:a,l=e.scaleX,N=l===void 0?1:l,u=e.scaleY,L=u===void 0?1:u,g=t.aspectRatio,y=t.naturalWidth,T=t.naturalHeight,d=i.fillColor,z=d===void 0?"transparent":d,I=i.imageSmoothingEnabled,C=I===void 0?!0:I,m=i.imageSmoothingQuality,A=m===void 0?"low":m,D=i.maxWidth,p=D===void 0?1/0:D,_=i.maxHeight,x=_===void 0?1/0:_,P=i.minWidth,v=P===void 0?0:P,ee=i.minHeight,ue=ee===void 0?0:ee,G=document.createElement("canvas"),H=G.getContext("2d"),Te=vt({aspectRatio:g,width:p,height:x}),Fe=vt({aspectRatio:g,width:v,height:ue},"cover"),Ge=Math.min(Te.width,Math.max(Fe.width,y)),Ls=Math.min(Te.height,Math.max(Fe.height,T)),mo=vt({aspectRatio:r,width:p,height:x}),ai=vt({aspectRatio:r,width:v,height:ue},"cover"),Mi=Math.min(mo.width,Math.max(ai.width,o)),ci=Math.min(mo.height,Math.max(ai.height,n)),tr=[-Mi/2,-ci/2,Mi,ci];return G.width=Bs(Ge),G.height=Bs(Ls),H.fillStyle=z,H.fillRect(0,0,Ge,Ls),H.save(),H.translate(Ge/2,Ls/2),H.rotate(c*Math.PI/180),H.scale(N,L),H.imageSmoothingEnabled=C,H.imageSmoothingQuality=A,H.drawImage.apply(H,[s].concat(H4(tr.map(function(sr){return Math.floor(Bs(sr))})))),H.restore(),G}var nL=String.fromCharCode;function u3e(s,e,t){var i="";t+=e;for(var r=e;r0;)t.push(nL.apply(null,sL(r.subarray(0,i)))),r=r.subarray(i);return"data:".concat(e,";base64,").concat(btoa(t.join("")))}function g3e(s){var e=new DataView(s),t;try{var i,r,o;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var n=e.byteLength,a=2;a+1=8&&(o=l+u)}}}if(o){var L=e.getUint16(o,i),g,y;for(y=0;y=0?o:eL),height:Math.max(i.offsetHeight,n>=0?n:tL)};this.containerData=a,Yt(r,{width:a.width,height:a.height}),ye(e,ke),Mt(r,ke)},initCanvas:function(){var e=this.containerData,t=this.imageData,i=this.options.viewMode,r=Math.abs(t.rotate)%180===90,o=r?t.naturalHeight:t.naturalWidth,n=r?t.naturalWidth:t.naturalHeight,a=o/n,c=e.width,l=e.height;e.height*a>e.width?i===3?c=e.height*a:l=e.width/a:i===3?l=e.width/a:c=e.height*a;var N={aspectRatio:a,naturalWidth:o,naturalHeight:n,width:c,height:l};this.canvasData=N,this.limited=i===1||i===2,this.limitCanvas(!0,!0),N.width=Math.min(Math.max(N.width,N.minWidth),N.maxWidth),N.height=Math.min(Math.max(N.height,N.minHeight),N.maxHeight),N.left=(e.width-N.width)/2,N.top=(e.height-N.height)/2,N.oldLeft=N.left,N.oldTop=N.top,this.initialCanvasData=ce({},N)},limitCanvas:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=i.viewMode,c=o.aspectRatio,l=this.cropped&&n;if(e){var N=Number(i.minCanvasWidth)||0,u=Number(i.minCanvasHeight)||0;a>1?(N=Math.max(N,r.width),u=Math.max(u,r.height),a===3&&(u*c>N?N=u*c:u=N/c)):a>0&&(N?N=Math.max(N,l?n.width:0):u?u=Math.max(u,l?n.height:0):l&&(N=n.width,u=n.height,u*c>N?N=u*c:u=N/c));var L=vt({aspectRatio:c,width:N,height:u});N=L.width,u=L.height,o.minWidth=N,o.minHeight=u,o.maxWidth=1/0,o.maxHeight=1/0}if(t)if(a>(l?0:1)){var g=r.width-o.width,y=r.height-o.height;o.minLeft=Math.min(0,g),o.minTop=Math.min(0,y),o.maxLeft=Math.max(0,g),o.maxTop=Math.max(0,y),l&&this.limited&&(o.minLeft=Math.min(n.left,n.left+(n.width-o.width)),o.minTop=Math.min(n.top,n.top+(n.height-o.height)),o.maxLeft=n.left,o.maxTop=n.top,a===2&&(o.width>=r.width&&(o.minLeft=Math.min(0,g),o.maxLeft=Math.max(0,g)),o.height>=r.height&&(o.minTop=Math.min(0,y),o.maxTop=Math.max(0,y))))}else o.minLeft=-o.width,o.minTop=-o.height,o.maxLeft=r.width,o.maxTop=r.height},renderCanvas:function(e,t){var i=this.canvasData,r=this.imageData;if(t){var o=M3e({width:r.naturalWidth*Math.abs(r.scaleX||1),height:r.naturalHeight*Math.abs(r.scaleY||1),degree:r.rotate||0}),n=o.width,a=o.height,c=i.width*(n/i.naturalWidth),l=i.height*(a/i.naturalHeight);i.left-=(c-i.width)/2,i.top-=(l-i.height)/2,i.width=c,i.height=l,i.aspectRatio=n/a,i.naturalWidth=n,i.naturalHeight=a,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heightt.width?o.height=o.width/i:o.width=o.height*i),this.cropBoxData=o,this.limitCropBox(!0,!0),o.width=Math.min(Math.max(o.width,o.minWidth),o.maxWidth),o.height=Math.min(Math.max(o.height,o.minHeight),o.maxHeight),o.width=Math.max(o.minWidth,o.width*r),o.height=Math.max(o.minHeight,o.height*r),o.left=t.left+(t.width-o.width)/2,o.top=t.top+(t.height-o.height)/2,o.oldLeft=o.left,o.oldTop=o.top,this.initialCropBoxData=ce({},o)},limitCropBox:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=this.limited,c=i.aspectRatio;if(e){var l=Number(i.minCropBoxWidth)||0,N=Number(i.minCropBoxHeight)||0,u=a?Math.min(r.width,o.width,o.width+o.left,r.width-o.left):r.width,L=a?Math.min(r.height,o.height,o.height+o.top,r.height-o.top):r.height;l=Math.min(l,r.width),N=Math.min(N,r.height),c&&(l&&N?N*c>l?N=l/c:l=N*c:l?N=l/c:N&&(l=N*c),L*c>u?L=u/c:u=L*c),n.minWidth=Math.min(l,u),n.minHeight=Math.min(N,L),n.maxWidth=u,n.maxHeight=L}t&&(a?(n.minLeft=Math.max(0,o.left),n.minTop=Math.max(0,o.top),n.maxLeft=Math.min(r.width,o.left+o.width)-n.width,n.maxTop=Math.min(r.height,o.top+o.height)-n.height):(n.minLeft=0,n.minTop=0,n.maxLeft=r.width-n.width,n.maxTop=r.height-n.height))},renderCropBox:function(){var e=this.options,t=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=t.width&&i.height>=t.height?Z4:CM),Yt(this.cropBox,ce({width:i.width,height:i.height},xi({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Js(this.element,ia,this.getData())}},T3e={initPreview:function(){var e=this.element,t=this.crossOrigin,i=this.options.preview,r=t?this.crossOriginUrl:this.url,o=e.alt||"The image to preview",n=document.createElement("img");if(t&&(n.crossOrigin=t),n.src=r,n.alt=o,this.viewBox.appendChild(n),this.viewBoxImage=n,!!i){var a=i;typeof i=="string"?a=e.ownerDocument.querySelectorAll(i):i.querySelector&&(a=[i]),this.previews=a,je(a,function(c){var l=document.createElement("img");Ui(c,Ir,{width:c.offsetWidth,height:c.offsetHeight,html:c.innerHTML}),t&&(l.crossOrigin=t),l.src=r,l.alt=o,l.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',c.innerHTML="",c.appendChild(l)})}},resetPreview:function(){je(this.previews,function(e){var t=Ma(e,Ir);Yt(e,{width:t.width,height:t.height}),e.innerHTML=t.html,r3e(e,Ir)})},preview:function(){var e=this.imageData,t=this.canvasData,i=this.cropBoxData,r=i.width,o=i.height,n=e.width,a=e.height,c=i.left-t.left-e.left,l=i.top-t.top-e.top;!this.cropped||this.disabled||(Yt(this.viewBoxImage,ce({width:n,height:a},xi(ce({translateX:-c,translateY:-l},e)))),je(this.previews,function(N){var u=Ma(N,Ir),L=u.width,g=u.height,y=L,T=g,d=1;r&&(d=L/r,T=o*d),o&&T>g&&(d=g/o,y=r*d,T=g),Yt(N,{width:y,height:T}),Yt(N.getElementsByTagName("img")[0],ce({width:n*d,height:a*d},xi(ce({translateX:-c*d,translateY:-l*d},e))))}))}},d3e={bind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&We(e,na,t.cropstart),Se(t.cropmove)&&We(e,oa,t.cropmove),Se(t.cropend)&&We(e,ra,t.cropend),Se(t.crop)&&We(e,ia,t.crop),Se(t.zoom)&&We(e,aa,t.zoom),We(i,ql,this.onCropStart=this.cropStart.bind(this)),t.zoomable&&t.zoomOnWheel&&We(i,rN,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&We(i,Kl,this.onDblclick=this.dblclick.bind(this)),We(e.ownerDocument,eN,this.onCropMove=this.cropMove.bind(this)),We(e.ownerDocument,tN,this.onCropEnd=this.cropEnd.bind(this)),t.responsive&&We(window,iN,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&Ve(e,na,t.cropstart),Se(t.cropmove)&&Ve(e,oa,t.cropmove),Se(t.cropend)&&Ve(e,ra,t.cropend),Se(t.crop)&&Ve(e,ia,t.crop),Se(t.zoom)&&Ve(e,aa,t.zoom),Ve(i,ql,this.onCropStart),t.zoomable&&t.zoomOnWheel&&Ve(i,rN,this.onWheel,{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Ve(i,Kl,this.onDblclick),Ve(e.ownerDocument,eN,this.onCropMove),Ve(e.ownerDocument,tN,this.onCropEnd),t.responsive&&Ve(window,iN,this.onResize)}},D3e={resize:function(){if(!this.disabled){var e=this.options,t=this.container,i=this.containerData,r=t.offsetWidth/i.width,o=t.offsetHeight/i.height,n=Math.abs(r-1)>Math.abs(o-1)?r:o;if(n!==1){var a,c;e.restore&&(a=this.getCanvasData(),c=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(je(a,function(l,N){a[N]=l*n})),this.setCropBoxData(je(c,function(l,N){c[N]=l*n})))}}},dblclick:function(){this.disabled||this.options.dragMode===q4||this.setDragMode(s3e(this.dragBox,ta)?K4:IM)},wheel:function(e){var t=this,i=Number(this.options.wheelZoomRatio)||.1,r=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){t.wheeling=!1},50),e.deltaY?r=e.deltaY>0?1:-1:e.wheelDelta?r=-e.wheelDelta/120:e.detail&&(r=e.detail>0?1:-1),this.zoom(-r*i,e)))},cropStart:function(e){var t=e.buttons,i=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(V(t)&&t!==1||V(i)&&i!==0||e.ctrlKey))){var r=this.options,o=this.pointers,n;e.changedTouches?je(e.changedTouches,function(a){o[a.identifier]=pr(a)}):o[e.pointerId||0]=pr(e),Object.keys(o).length>1&&r.zoomable&&r.zoomOnTouch?n=X4:n=Ma(e.target,Qi),FSe.test(n)&&Js(this.element,na,{originalEvent:e,action:n})!==!1&&(e.preventDefault(),this.action=n,this.cropping=!1,n===V4&&(this.cropping=!0,ye(this.dragBox,Xr)))}},cropMove:function(e){var t=this.action;if(!(this.disabled||!t)){var i=this.pointers;e.preventDefault(),Js(this.element,oa,{originalEvent:e,action:t})!==!1&&(e.changedTouches?je(e.changedTouches,function(r){ce(i[r.identifier]||{},pr(r,!0))}):ce(i[e.pointerId||0]||{},pr(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var t=this.action,i=this.pointers;e.changedTouches?je(e.changedTouches,function(r){delete i[r.identifier]}):delete i[e.pointerId||0],t&&(e.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,Ps(this.dragBox,Xr,this.cropped&&this.options.modal)),Js(this.element,ra,{originalEvent:e,action:t}))}}},h3e={change:function(e){var t=this.options,i=this.canvasData,r=this.containerData,o=this.cropBoxData,n=this.pointers,a=this.action,c=t.aspectRatio,l=o.left,N=o.top,u=o.width,L=o.height,g=l+u,y=N+L,T=0,d=0,z=r.width,I=r.height,C=!0,m;!c&&e.shiftKey&&(c=u&&L?u/L:1),this.limited&&(T=o.minLeft,d=o.minTop,z=T+Math.min(r.width,i.width,i.left+i.width),I=d+Math.min(r.height,i.height,i.top+i.height));var A=n[Object.keys(n)[0]],D={x:A.endX-A.startX,y:A.endY-A.startY},p=function(x){switch(x){case Jt:g+D.x>z&&(D.x=z-g);break;case Rt:l+D.xI&&(D.y=I-y);break}};switch(a){case CM:l+=D.x,N+=D.y;break;case Jt:if(D.x>=0&&(g>=z||c&&(N<=d||y>=I))){C=!1;break}p(Jt),u+=D.x,u<0&&(a=Rt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case ft:if(D.y<=0&&(N<=d||c&&(l<=T||g>=z))){C=!1;break}p(ft),L-=D.y,N+=D.y,L<0&&(a=hs,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case Rt:if(D.x<=0&&(l<=T||c&&(N<=d||y>=I))){C=!1;break}p(Rt),u-=D.x,l+=D.x,u<0&&(a=Jt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case hs:if(D.y>=0&&(y>=I||c&&(l<=T||g>=z))){C=!1;break}p(hs),L+=D.y,L<0&&(a=ft,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case yi:if(c){if(D.y<=0&&(N<=d||g>=z)){C=!1;break}p(ft),L-=D.y,N+=D.y,u=L*c}else p(ft),p(Jt),D.x>=0?gd&&(L-=D.y,N+=D.y):(L-=D.y,N+=D.y);u<0&&L<0?(a=Di,L=-L,u=-u,N-=L,l-=u):u<0?(a=Ti,u=-u,l-=u):L<0&&(a=di,L=-L,N-=L);break;case Ti:if(c){if(D.y<=0&&(N<=d||l<=T)){C=!1;break}p(ft),L-=D.y,N+=D.y,u=L*c,l+=o.width-u}else p(ft),p(Rt),D.x<=0?l>T?(u-=D.x,l+=D.x):D.y<=0&&N<=d&&(C=!1):(u-=D.x,l+=D.x),D.y<=0?N>d&&(L-=D.y,N+=D.y):(L-=D.y,N+=D.y);u<0&&L<0?(a=di,L=-L,u=-u,N-=L,l-=u):u<0?(a=yi,u=-u,l-=u):L<0&&(a=Di,L=-L,N-=L);break;case Di:if(c){if(D.x<=0&&(l<=T||y>=I)){C=!1;break}p(Rt),u-=D.x,l+=D.x,L=u/c}else p(hs),p(Rt),D.x<=0?l>T?(u-=D.x,l+=D.x):D.y>=0&&y>=I&&(C=!1):(u-=D.x,l+=D.x),D.y>=0?y=0&&(g>=z||y>=I)){C=!1;break}p(Jt),u+=D.x,L=u/c}else p(hs),p(Jt),D.x>=0?g=0&&y>=I&&(C=!1):u+=D.x,D.y>=0?y0?a=D.y>0?di:yi:D.x<0&&(l-=u,a=D.y>0?Di:Ti),D.y<0&&(N-=L),this.cropped||(Mt(this.cropBox,ke),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}C&&(o.width=u,o.height=L,o.left=l,o.top=N,this.action=a,this.renderCropBox()),je(n,function(_){_.startX=_.endX,_.startY=_.endY})}},z3e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&ye(this.dragBox,Xr),Mt(this.cropBox,ke),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ce({},this.initialImageData),this.canvasData=ce({},this.initialCanvasData),this.cropBoxData=ce({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ce(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Mt(this.dragBox,Xr),ye(this.cropBox,ke)),this},replace:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),t?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,je(this.previews,function(i){i.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Mt(this.cropper,Zl)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,ye(this.cropper,Zl)),this},destroy:function(){var e=this.element;return e[ae]?(e[ae]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=i.left,o=i.top;return this.moveTo(on(e)?e:r+Number(e),on(t)?t:o+Number(t))},moveTo:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.movable&&(V(e)&&(i.left=e,r=!0),V(t)&&(i.top=t,r=!0),r&&this.renderCanvas(!0)),this},zoom:function(e,t){var i=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(i.width*e/i.naturalWidth,null,t)},zoomTo:function(e,t,i){var r=this.options,o=this.canvasData,n=o.width,a=o.height,c=o.naturalWidth,l=o.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&r.zoomable){var N=c*e,u=l*e;if(Js(this.element,aa,{ratio:e,oldRatio:n/c,originalEvent:i})===!1)return this;if(i){var L=this.pointers,g=oL(this.cropper),y=L&&Object.keys(L).length?a3e(L):{pageX:i.pageX,pageY:i.pageY};o.left-=(N-n)*((y.pageX-g.left-o.left)/n),o.top-=(u-a)*((y.pageY-g.top-o.top)/a)}else $s(t)&&V(t.x)&&V(t.y)?(o.left-=(N-n)*((t.x-o.left)/n),o.top-=(u-a)*((t.y-o.top)/a)):(o.left-=(N-n)/2,o.top-=(u-a)/2);o.width=N,o.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),V(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var t=this.imageData.scaleY;return this.scale(e,V(t)?t:1)},scaleY:function(e){var t=this.imageData.scaleX;return this.scale(V(t)?t:1,e)},scale:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.imageData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.scalable&&(V(e)&&(i.scaleX=e,r=!0),V(t)&&(i.scaleY=t,r=!0),r&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.options,i=this.imageData,r=this.canvasData,o=this.cropBoxData,n;if(this.ready&&this.cropped){n={x:o.left-r.left,y:o.top-r.top,width:o.width,height:o.height};var a=i.width/i.naturalWidth;if(je(n,function(N,u){n[u]=N/a}),e){var c=Math.round(n.y+n.height),l=Math.round(n.x+n.width);n.x=Math.round(n.x),n.y=Math.round(n.y),n.width=l-n.x,n.height=c-n.y}}else n={x:0,y:0,width:0,height:0};return t.rotatable&&(n.rotate=i.rotate||0),t.scalable&&(n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1),n},setData:function(e){var t=this.options,i=this.imageData,r=this.canvasData,o={};if(this.ready&&!this.disabled&&$s(e)){var n=!1;t.rotatable&&V(e.rotate)&&e.rotate!==i.rotate&&(i.rotate=e.rotate,n=!0),t.scalable&&(V(e.scaleX)&&e.scaleX!==i.scaleX&&(i.scaleX=e.scaleX,n=!0),V(e.scaleY)&&e.scaleY!==i.scaleY&&(i.scaleY=e.scaleY,n=!0)),n&&this.renderCanvas(!0,!0);var a=i.width/i.naturalWidth;V(e.x)&&(o.left=e.x*a+r.left),V(e.y)&&(o.top=e.y*a+r.top),V(e.width)&&(o.width=e.width*a),V(e.height)&&(o.height=e.height*a),this.setCropBoxData(o)}return this},getContainerData:function(){return this.ready?ce({},this.containerData):{}},getImageData:function(){return this.sized?ce({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,t={};return this.ready&&je(["left","top","width","height","naturalWidth","naturalHeight"],function(i){t[i]=e[i]}),t},setCanvasData:function(e){var t=this.canvasData,i=t.aspectRatio;return this.ready&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)?(t.width=e.width,t.height=e.width/i):V(e.height)&&(t.height=e.height,t.width=e.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,t;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(e){var t=this.cropBoxData,i=this.options.aspectRatio,r,o;return this.ready&&this.cropped&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)&&e.width!==t.width&&(r=!0,t.width=e.width),V(e.height)&&e.height!==t.height&&(o=!0,t.height=e.height),i&&(r?t.height=t.width/i:o&&(t.width=t.height*i)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var t=this.canvasData,i=c3e(this.image,this.imageData,t,e);if(!this.cropped)return i;var r=this.getData(e.rounded),o=r.x,n=r.y,a=r.width,c=r.height,l=i.width/Math.floor(t.naturalWidth);l!==1&&(o*=l,n*=l,a*=l,c*=l);var N=a/c,u=vt({aspectRatio:N,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),L=vt({aspectRatio:N,width:e.minWidth||0,height:e.minHeight||0},"cover"),g=vt({aspectRatio:N,width:e.width||(l!==1?i.width:a),height:e.height||(l!==1?i.height:c)}),y=g.width,T=g.height;y=Math.min(u.width,Math.max(L.width,y)),T=Math.min(u.height,Math.max(L.height,T));var d=document.createElement("canvas"),z=d.getContext("2d");d.width=Bs(y),d.height=Bs(T),z.fillStyle=e.fillColor||"transparent",z.fillRect(0,0,y,T);var I=e.imageSmoothingEnabled,C=I===void 0?!0:I,m=e.imageSmoothingQuality;z.imageSmoothingEnabled=C,m&&(z.imageSmoothingQuality=m);var A=i.width,D=i.height,p=o,_=n,x,P,v,ee,ue,G;p<=-a||p>A?(p=0,x=0,v=0,ue=0):p<=0?(v=-p,p=0,x=Math.min(A,a+p),ue=x):p<=A&&(v=0,x=Math.min(a,A-p),ue=x),x<=0||_<=-c||_>D?(_=0,P=0,ee=0,G=0):_<=0?(ee=-_,_=0,P=Math.min(D,c+_),G=P):_<=D&&(ee=0,P=Math.min(c,D-_),G=P);var H=[p,_,x,P];if(ue>0&&G>0){var Te=y/a;H.push(v*Te,ee*Te,ue*Te,G*Te)}return z.drawImage.apply(z,[i].concat(H4(H.map(function(Fe){return Math.floor(Bs(Fe))})))),d},setAspectRatio:function(e){var t=this.options;return!this.disabled&&!on(e)&&(t.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var t=this.options,i=this.dragBox,r=this.face;if(this.ready&&!this.disabled){var o=e===IM,n=t.movable&&e===K4;e=o||n?e:q4,t.dragMode=e,Ui(i,Qi,e),Ps(i,ta,o),Ps(i,sa,n),t.cropBoxMovable||(Ui(r,Qi,e),Ps(r,ta,o),Ps(r,sa,n))}return this}},w3e=ct.Cropper,aL=function(){function s(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(YSe(this,s),!e||!VSe.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=ce({},nN,$s(t)&&t),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return vSe(s,[{key:"init",value:function(){var t=this.element,i=t.tagName.toLowerCase(),r;if(!t[ae]){if(t[ae]=this,i==="img"){if(this.isImg=!0,r=t.getAttribute("src")||"",this.originalUrl=r,!r)return;r=t.src}else i==="canvas"&&window.HTMLCanvasElement&&(r=t.toDataURL());this.load(r)}}},{key:"load",value:function(t){var i=this;if(t){this.url=t,this.imageData={};var r=this.element,o=this.options;if(!o.rotatable&&!o.scalable&&(o.checkOrientation=!1),!o.checkOrientation||!window.ArrayBuffer){this.clone();return}if(GSe.test(t)){HSe.test(t)?this.read(N3e(t)):this.clone();return}var n=new XMLHttpRequest,a=this.clone.bind(this);this.reloading=!0,this.xhr=n,n.onabort=a,n.onerror=a,n.ontimeout=a,n.onprogress=function(){n.getResponseHeader("content-type")!==oN&&n.abort()},n.onload=function(){i.read(n.response)},n.onloadend=function(){i.reloading=!1,i.xhr=null},o.checkCrossOrigin&&MN(t)&&r.crossOrigin&&(t=cN(t)),n.open("GET",t,!0),n.responseType="arraybuffer",n.withCredentials=r.crossOrigin==="use-credentials",n.send()}}},{key:"read",value:function(t){var i=this.options,r=this.imageData,o=g3e(t),n=0,a=1,c=1;if(o>1){this.url=L3e(t,oN);var l=j3e(o);n=l.rotate,a=l.scaleX,c=l.scaleY}i.rotatable&&(r.rotate=n),i.scalable&&(r.scaleX=a,r.scaleY=c),this.clone()}},{key:"clone",value:function(){var t=this.element,i=this.url,r=t.crossOrigin,o=i;this.options.checkCrossOrigin&&MN(i)&&(r||(r="anonymous"),o=cN(i)),this.crossOrigin=r,this.crossOriginUrl=o;var n=document.createElement("img");r&&(n.crossOrigin=r),n.src=o||i,n.alt=t.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),ye(n,Xl),t.parentNode.insertBefore(n,t.nextSibling)}},{key:"start",value:function(){var t=this,i=this.image;i.onload=null,i.onerror=null,this.sizing=!0;var r=ct.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(ct.navigator.userAgent),o=function(l,N){ce(t.imageData,{naturalWidth:l,naturalHeight:N,aspectRatio:l/N}),t.initialImageData=ce({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(i.naturalWidth&&!r){o(i.naturalWidth,i.naturalHeight);return}var n=document.createElement("img"),a=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){o(n.width,n.height),r||a.removeChild(n)},n.src=i.src,r||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",a.appendChild(n))}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var t=this.element,i=this.options,r=this.image,o=t.parentNode,n=document.createElement("div");n.innerHTML=ZSe;var a=n.querySelector(".".concat(ae,"-container")),c=a.querySelector(".".concat(ae,"-canvas")),l=a.querySelector(".".concat(ae,"-drag-box")),N=a.querySelector(".".concat(ae,"-crop-box")),u=N.querySelector(".".concat(ae,"-face"));this.container=o,this.cropper=a,this.canvas=c,this.dragBox=l,this.cropBox=N,this.viewBox=a.querySelector(".".concat(ae,"-view-box")),this.face=u,c.appendChild(r),ye(t,ke),o.insertBefore(a,t.nextSibling),Mt(r,Xl),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,ye(N,ke),i.guides||ye(N.getElementsByClassName("".concat(ae,"-dashed")),ke),i.center||ye(N.getElementsByClassName("".concat(ae,"-center")),ke),i.background&&ye(a,"".concat(ae,"-bg")),i.highlight||ye(u,WSe),i.cropBoxMovable&&(ye(u,sa),Ui(u,Qi,CM)),i.cropBoxResizable||(ye(N.getElementsByClassName("".concat(ae,"-line")),ke),ye(N.getElementsByClassName("".concat(ae,"-point")),ke)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),Se(i.ready)&&We(t,sN,i.ready,{once:!0}),Js(t,sN)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),Mt(this.element,ke)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=w3e,s}},{key:"setDefaults",value:function(t){ce(nN,$s(t)&&t)}}])}();ce(aL.prototype,y3e,T3e,d3e,D3e,h3e,z3e);var Zt=function(){return Zt=Object.assign||function(s){for(var e,t=1,i=arguments.length;t0&&_.zoomTo(Fe)}(p.currentTarget.cropper,C),d&&d(p)}}));z&&z(D)}return function(){var p,_;(_=(p=m.current)===null||p===void 0?void 0:p.cropper)===null||_===void 0||_.destroy()}},[m]);var A=function(D){return C3e.reduce(function(p,_){var x=p,P=_;return x[P],an(x,[typeof P=="symbol"?P:P+""])},D)}(Zt(Zt({},I),{crossOrigin:c,src:o,alt:T}));return M.createElement("div",{style:n,className:a},M.createElement("img",Zt({},A,{style:I3e,ref:m})))});const A3e=` -/*! - * Cropper.js v1.5.12 - * https://fengyuanchen.github.io/cropperjs - * - * Copyright 2015-present Chen Fengyuan - * Released under the MIT license - * - * Date: 2021-06-12T08:00:11.623Z - */ - -.cropper-container { - direction: ltr; - font-size: 0; - line-height: 0; - position: relative; - -ms-touch-action: none; - touch-action: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.cropper-container img { - display: block; - height: 100%; - image-orientation: 0deg; - max-height: none !important; - max-width: none !important; - min-height: 0 !important; - min-width: 0 !important; - width: 100%; -} - -.cropper-wrap-box, -.cropper-canvas, -.cropper-drag-box, -.cropper-crop-box, -.cropper-modal { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; -} - -.cropper-wrap-box, -.cropper-canvas { - overflow: hidden; -} - -.cropper-drag-box { - background-color: #fff; - opacity: 0; -} - -.cropper-modal { - background-color: #000; - opacity: 0.5; -} - -.cropper-view-box { - display: block; - height: 100%; - outline: 1px solid #39f; - outline-color: rgba(51, 153, 255, 0.75); - overflow: hidden; - width: 100%; -} - -.cropper-dashed { - border: 0 dashed #eee; - display: block; - opacity: 0.5; - position: absolute; -} - -.cropper-dashed.dashed-h { - border-bottom-width: 1px; - border-top-width: 1px; - height: calc(100% / 3); - left: 0; - top: calc(100% / 3); - width: 100%; -} - -.cropper-dashed.dashed-v { - border-left-width: 1px; - border-right-width: 1px; - height: 100%; - left: calc(100% / 3); - top: 0; - width: calc(100% / 3); -} - -.cropper-center { - display: block; - height: 0; - left: 50%; - opacity: 0.75; - position: absolute; - top: 50%; - width: 0; -} - -.cropper-center::before, -.cropper-center::after { - background-color: #eee; - content: ' '; - display: block; - position: absolute; -} - -.cropper-center::before { - height: 1px; - left: -3px; - top: 0; - width: 7px; -} - -.cropper-center::after { - height: 7px; - left: 0; - top: -3px; - width: 1px; -} - -.cropper-face, -.cropper-line, -.cropper-point { - display: block; - height: 100%; - opacity: 0.1; - position: absolute; - width: 100%; -} - -.cropper-face { - background-color: #fff; - left: 0; - top: 0; -} - -.cropper-line { - background-color: #39f; -} - -.cropper-line.line-e { - cursor: ew-resize; - right: -3px; - top: 0; - width: 5px; -} - -.cropper-line.line-n { - cursor: ns-resize; - height: 5px; - left: 0; - top: -3px; -} - -.cropper-line.line-w { - cursor: ew-resize; - left: -3px; - top: 0; - width: 5px; -} - -.cropper-line.line-s { - bottom: -3px; - cursor: ns-resize; - height: 5px; - left: 0; -} - -.cropper-point { - background-color: #39f; - height: 5px; - opacity: 0.75; - width: 5px; -} - -.cropper-point.point-e { - cursor: ew-resize; - margin-top: -3px; - right: -3px; - top: 50%; -} - -.cropper-point.point-n { - cursor: ns-resize; - left: 50%; - margin-left: -3px; - top: -3px; -} - -.cropper-point.point-w { - cursor: ew-resize; - left: -3px; - margin-top: -3px; - top: 50%; -} - -.cropper-point.point-s { - bottom: -3px; - cursor: s-resize; - left: 50%; - margin-left: -3px; -} - -.cropper-point.point-ne { - cursor: nesw-resize; - right: -3px; - top: -3px; -} - -.cropper-point.point-nw { - cursor: nwse-resize; - left: -3px; - top: -3px; -} - -.cropper-point.point-sw { - bottom: -3px; - cursor: nesw-resize; - left: -3px; -} - -.cropper-point.point-se { - bottom: -3px; - cursor: nwse-resize; - height: 20px; - opacity: 1; - right: -3px; - width: 20px; -} - -@media (min-width: 768px) { - .cropper-point.point-se { - height: 15px; - width: 15px; - } -} - -@media (min-width: 992px) { - .cropper-point.point-se { - height: 10px; - width: 10px; - } -} - -@media (min-width: 1200px) { - .cropper-point.point-se { - height: 5px; - opacity: 0.75; - width: 5px; - } -} - -.cropper-point.point-se::before { - background-color: #39f; - bottom: -50%; - content: ' '; - display: block; - height: 200%; - opacity: 0; - position: absolute; - right: -50%; - width: 200%; -} - -.cropper-invisible { - opacity: 0; -} - -.cropper-bg { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC'); -} - -.cropper-hide { - display: block; - height: 0; - position: absolute; - width: 0; -} - -.cropper-hidden { - display: none !important; -} - -.cropper-move { - cursor: move; -} - -.cropper-crop { - cursor: crosshair; -} - -.cropper-disabled .cropper-drag-box, -.cropper-disabled .cropper-face, -.cropper-disabled .cropper-line, -.cropper-disabled .cropper-point { - cursor: not-allowed; -} -`,_e={dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red",boxSizing:"border-box"}};class t5e extends f.Component{cropperRef;constructor(e){if(super(e),this.state={uploadFile:!1,anchorEl:null,cropHandler:!1},this.cropperRef=f.createRef(),!window.document.getElementById("cropper-style-json-component")){const t=window.document.createElement("style");t.setAttribute("id","cropper-style-json-component"),t.innerHTML=A3e,window.document.head.appendChild(t)}}onDrop(e){const t=this.props.onChange,i=this.props.maxSize||10*1024,r=e[0],o=new FileReader;o.onabort=()=>console.log("file reading was aborted"),o.onerror=()=>console.log("file reading has failed"),o.onload=()=>{var c,l;if(!r||!r.name)return;const n=(c=r.name)==null?void 0:c.split(".");let a=n!=null&&n.length?`image/${(l=n.pop())==null?void 0:l.toLowerCase()}`:"image/jpeg";if(a==="image/jpg"?a="image/jpeg":a.includes("svg")&&(a="image/svg+xml"),r.size>i)window.alert(h.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(i/1024)));else{const N=`data:${a};base64,${btoa(new Uint8Array(o.result).reduce((u,L)=>u+String.fromCharCode(L),""))}`;t?t(N):console.log(N)}},o.readAsArrayBuffer(r)}render(){const{disabled:e,icon:t,removeIconFunc:i,error:r,crop:o,onChange:n}=this.props,a=this.props.maxSize||10*1024;let c=this.props.accept||{"image/*":[]};const{uploadFile:l,anchorEl:N,cropHandler:u}=this.state;if(typeof c=="string")c={[c]:[]};else if(Array.isArray(c)){const L={};c.forEach(g=>{L[g]=[]}),c=L}return M.createElement(NN,{disabled:!!e||u,key:"dropzone",multiple:!1,accept:c,maxSize:a,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(L,g)=>{var y,T,d;this.setState({uploadFile:!1}),L.length?this.onDrop(L):window.alert(((d=(T=(y=g==null?void 0:g[0])==null?void 0:y.errors)==null?void 0:T[0])==null?void 0:d.message)||h.t("ra_Cannot upload"))}},({getRootProps:L,getInputProps:g})=>M.createElement("div",{style:{..._e.uploadDiv,...l==="dragging"?_e.uploadDivDragging:void 0,..._e.dropZone,...e?_e.disabledOpacity:void 0,...t?void 0:_e.dropZoneEmpty},...L()},M.createElement("input",{...g()}),M.createElement("div",{style:{..._e.uploadCenterDiv,...r?_e.error:void 0}},t?i&&!u&&M.createElement("div",{style:_e.buttonRemoveWrapper},M.createElement(j.Tooltip,{title:h.t("ra_Clear"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{i&&i(),y.stopPropagation()}},M.createElement(Ne,null)))):M.createElement("div",{style:_e.uploadCenterTextAndIcon},M.createElement(Ag,{style:_e.uploadCenterIcon}),M.createElement("div",{style:_e.uploadCenterText},l==="dragging"?h.t("ra_Drop file here"):h.t("ra_Place your files here or click here to open the browse dialog"))),t&&o&&M.createElement("div",{style:_e.buttonCropWrapper},M.createElement(j.Tooltip,{title:h.t("ra_Crop"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{u?this.setState({anchorEl:y.currentTarget}):this.setState({cropHandler:!0}),y.stopPropagation()}},M.createElement(og,{color:u?"primary":"inherit"}))),M.createElement(j.Menu,{anchorEl:N,keepMounted:!0,open:!!N,onClose:()=>this.setState({anchorEl:null})},M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1},()=>{var T,d;const y=(d=(T=this.cropperRef)==null?void 0:T.current)==null?void 0:d.cropper;y&&(n?n(y.getCroppedCanvas().toDataURL()):console.log(y.getCroppedCanvas().toDataURL()))})},h.t("ra_Save")),M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1})},h.t("ra_Close")))),t&&!u?M.createElement(me,{src:t,style:_e.image,alt:"icon"}):null,t&&o&&u?M.createElement(p3e,{ref:this.cropperRef,style:_e.image,src:t,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null)))}}const xt={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},m3e={once:"once"},Ce={seconds:"seconds",minutes:"minutes"},uN=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function ot(s){return s<10?`0${s}`:`${s}`}const O3e={mode:"interval",interval:{period:1,unit:Ce.minutes}};function _r(s){if(s==="*")return[0,1,2,3,4,5,6];const e=s.split(","),t=[];return e.forEach(i=>{const r=i.split("-");if(r.length===2){const o=parseInt(r[0],10),n=parseInt(r[1],10);for(let a=o;a<=n;a++)t.includes(a===7?0:a)||t.push(a===7?0:a)}else{i==="7"&&(i="0");const o=parseInt(i,10);t.includes(o)||t.push(o)}}),t.sort(),t}function ML(s,e){s=s.replace(/['"]/g,"").trim();const t=s.split(" ");let i,r=null;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",date:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:null,minutes:t[0]||"*",hours:t[1]||"*",date:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i.seconds===null&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)&&(r={mode:"interval",interval:{period:1,unit:Ce.minutes}}),i.seconds==="*"&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:1,unit:Ce.seconds}}:i.seconds===null&&i.minutes.includes("/")&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&i.minutes.includes("/")&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"specific",specific:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&parseInt(i.date,10).toString()===i.date&&parseInt(i.months,10).toString()===i.months&&(i.dow==="*"||e)&&(r={mode:"once",once:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,date:`${ot(parseInt(i.date,10))}.${ot(parseInt(i.months,10))}`}}),r}class $i extends M.Component{constructor(e){super(e);let t=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";t[0]==="{"&&(t="");const i=ML(t||"* * * * *",!0)||O3e;this.state={extended:!1,cron:$i.state2cron(i),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:Ce.minutes},intervalBetween:{period:1,unit:Ce.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,i),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,t=7){if(t=t||7,e.length===t)return"*";const i=[];let r=null,o=null;if(!e.length)return"_";for(let n=0;n60&&(i.period=60),i.period!==void 0&&i.period<1&&(i.period=1),i.minutes!==void 0&&i.minutes!==null&&i.minutes>60&&(i.minutes=60),i.minutes!==void 0&&i.minutes!==null&&i.minutes<1&&(i.minutes=1),i.hours!==void 0&&i.hours!==null&&i.hours>24&&(i.hours=24),i.hours!==void 0&&i.hours!==null&&i.hours<1&&(i.hours=1),e.extended)t=`${i.minutes!==void 0&&i.minutes!==null&&i.minutes>1?`*/${i.minutes}`:"*"} ${i.hours!==void 0&&i.hours!==null&&i.hours>1?`*/${i.hours}`:"*"} * * *`;else switch(i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * * * * *`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const i=e.intervalBetween||{period:1,unit:Ce.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let r;switch(i.timeFrom=i.timeFrom||0,i.timeTo=i.timeTo===void 0?24:i.timeTo,i.timeFrom!==0&&i.timeTo===24&&(i.timeTo=23),i.timeFrom===0&&i.timeTo===24?r="*":r=i.timeFrom!==i.timeTo?`${i.timeFrom}-${i.timeTo}`:"*",i.period>60&&(i.period=60),i.period<1&&(i.period=1),i.unit=i.unit||Ce.minutes,i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * ${r} * * ${this.periodArray2text(i.weekdays)}`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} ${r} * * ${this.periodArray2text(i.weekdays)}`;break}}else if(e.mode==="specific"){const i=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},r=(i.time||"00:00").split(":");let o=parseInt(r[1],10)||0;o>59&&(o=59),o<0&&(o=0);let n=parseInt(r[0],10)||0;n>23&&(n=59),n<0&&(n=0),t=`${o} ${n} * * ${this.periodArray2text(i.weekdays||[])}`}else if(e.mode==="once"){const i=e.once||{time:"00:00",date:""};i.date||(i.date=`${new Date().getDate()}.${ot(new Date().getMonth()+1)}`);const r=(i.time||"00:00").split(":"),o=i.date.split(".");let n=parseInt(r[1],10)||0;n>59&&(n=59),n<0&&(n=0);let a=parseInt(r[0],10)||0;a>23&&(a=59),a<0&&(a=0);let c=parseInt(o[0],10)||1;c>31&&(c=31),c<1&&(a=1);let l=parseInt(o[1],10)||1;l>12&&(l=12),l<1&&(l=1),t=`${n} ${a} ${c} ${l} *`}return t}recalcCron(){this.onChange($i.state2cron(this.state))}getControlsWeekdaysElements(e){const t=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return M.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},M.createElement("h5",null,h.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:uN[i],control:M.createElement(j.Checkbox,{checked:t.weekdays.includes(i),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state[e])),n=o.weekdays.indexOf(i);r.target.checked?n===-1&&o.weekdays.push(i):n!==-1&&o.weekdays.splice(n,1),o.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:o},()=>this.recalcCron()):this.setState({specific:o},()=>this.recalcCron())},value:i.toString()}),label:h.t(uN[i])})))}getControlsPeriodElements(e){const t=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},h.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:h.t("sc_minutes"),value:t.minutes,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.minutes=parseInt(i.target.value,10),r.minutes<1&&(r.minutes=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:h.t("sc_hours"),value:t.hours,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.hours=parseInt(i.target.value,10),r.hours<1&&(r.hours=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},h.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:h.t("sc_every"),value:t.period,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.period=parseInt(i.target.value,10),r.period<1&&(r.period=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.Select,{variant:"standard",style:{verticalAlign:"bottom"},value:t.unit,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.unit=i.target.value,e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())}},M.createElement(j.MenuItem,{value:"seconds"},h.t("sc_seconds")),")",M.createElement(j.MenuItem,{value:"minutes"},h.t("sc_minutes")),")"))}getControlsTime(e){const t=e==="once"?this.state.once:this.state.specific;return M.createElement(j.FormControl,{variant:"standard",sx:{...xt.formControl,"&.MuiFormControl-root":xt.formControlMarginRight}},M.createElement(j.TextField,{variant:"standard",key:"at",label:h.t("sc_time"),value:t.time,type:"time",sx:i=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:i.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.time=i.target.value,e==="once"?this.setState({once:r},()=>this.recalcCron()):this.setState({specific:r},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const t=new Date;e.date=`${t.getDate()}.${ot(t.getMonth()+1)}`}return M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.TextField,{variant:"standard",key:"date",label:h.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:xt.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.once));i.date=t.target.value,this.setState({once:i},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return M.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),M.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},M.createElement("h5",{style:{marginBottom:5}},h.t("sc_hours")),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},h.t("sc_from")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeFrom=parseInt(t.target.value,10),i.timeTo===24&&(i.timeTo=23),this.setState({intervalBetween:i},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`B_${t}`,value:t},`${ot(t)}:00`)))),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},h.t("sc_to")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeTo,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeTo=parseInt(t.target.value,10),this.setState({intervalBetween:i},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`A_${t}`,value:t},`${ot(t)}:00`)),!e.timeFrom&&M.createElement(j.MenuItem,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[M.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return M.createElement("div",{style:xt.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?h.t("sc_invalid_cron"):h4(this.state.cron,this.props.language||"en")),M.createElement("div",null,M.createElement(j.FormControl,{variant:"standard",style:{...xt.formControl,marginLeft:8,marginTop:8}},M.createElement(j.InputLabel,null,h.t("ra_Repeat")),M.createElement(j.Select,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},M.createElement(j.MenuItem,{value:"once"},h.t("sc_once")),M.createElement(j.MenuItem,{value:"interval"},h.t("sc_interval")),M.createElement(j.MenuItem,{value:"intervalBetween"},h.t("sc_intervalBetween")),M.createElement(j.MenuItem,{value:"specific"},h.t("sc_specific"))))),this.state.mode===m3e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const E3e=` -.logo-background-light, .logo-background-colored { - background: white; -} -.logo-background-dark, .logo-background-blue { - background: black; -} -`;function s5e(s){f.useEffect(()=>{if(!window.document.getElementById("vendor-iobroker-component")){const t=window.document.createElement("style");t.setAttribute("id","vendor-iobroker-component"),t.innerHTML=E3e,window.document.head.appendChild(t)}},[]);const e=s.themeType||s.themeName||"light";return M.createElement("div",{className:`vendor-logo-back logo-background-${e}`,style:{display:"flex",flexDirection:"column",height:"100%",width:"10%",margin:"auto",backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.CircularProgress,{color:"secondary",size:s.size||200,thickness:5}),M.createElement("div",{style:{flexGrow:1}}))}const f3e=` -.logo-background-light, .logo-background-colored { - background: white; -} -.logo-background-dark, .logo-background-blue { - background: black; -} -.pt-logo-div { - position: absolute; - top: 50%; - left: 50%; - -ms-transform: translateX(-50%) translateY(-50%); - -webkit-transform: translate(-50%,-50%); - transform: translate(-50%,-50%); - z-index: 2; -} -.pt-logo-border { - border-style: solid; - box-sizing: border-box; - width: 100%; - height: 100%; - position: absolute; -} -.pt-loader-block { - height: 65px; - width: 74px; - border-radius: 15px; - position: absolute; - box-sizing: content-box; -} -.pt-loader-blue { - border: 9px solid #0F99DE; - transform: rotate(5grad); - left: 93px; - top: 0; - animation: spin-blue 5s ease-in-out infinite; -} -.pt-loader-green { - border: 9px solid #88A536; - transform: rotate(-6grad); - left: 70px; - top: 58px; - animation: spin-green 5s ease-in-out infinite; -} -.pt-loader-red { - border: 9px solid #BD1B24; - transform: rotate(-15grad); - left: 24px; - top: 100px; - animation: spin-red 5s ease-in-out infinite; -} - -@keyframes spin-blue { - 0% { - transform: rotate(5deg); - } - 25% { - transform: rotate(185deg); - } - 50% { - transform: rotate(185deg); - } - 75% { - transform: rotate(185deg); - } - 100% { - transform: rotate(185deg); - } -} -@keyframes spin-green { - 0% { - transform: rotate(-6deg); - } - 25% { - transform: rotate(-6deg); - } - 50% { - transform: rotate(174deg); - } - 75% { - transform: rotate(174deg); - } - 100% { - transform: rotate(-6deg); - } -} -@keyframes spin-red { - 0% { - transform: rotate(-15deg); - } - 25% { - transform: rotate(-15deg); - } - 50% { - transform: rotate(-15deg); - } - 75% { - transform: rotate(165deg); - } - 100% { - transform: rotate(165deg); - } -} -`;function i5e(s){const e=s.size||200;f.useEffect(()=>{if(!window.document.getElementById("pt-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","pt-iobroker-component"),i.innerHTML=f3e,window.document.head.appendChild(i)}},[]);const t=s.themeType||s.themeName||"light";return M.createElement("div",{className:`pt-logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{className:"pt-logo-div",style:{width:e,height:e}},M.createElement("div",{style:{width:200,height:200}},M.createElement("div",{className:"pt-loader-blue pt-loader-block"}),M.createElement("div",{className:"pt-loader-green pt-loader-block"}),M.createElement("div",{className:"pt-loader-red pt-loader-block"}))))}function r5e(s){const e=s.themeType||"light",t=s.size||300;return M.createElement("div",{style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:e==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{width:t,height:t,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:2}},M.createElement("svg",{viewBox:"0 0 500 500",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%"},M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"200"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"133"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"83"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"66"}),M.createElement("circle",{strokeWidth:"15",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"15"}),M.createElement("g",null,M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("g",{transform:"rotate(60, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("g",{transform:"rotate(120, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),[0,15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270,285,300,315,330,345].map(i=>M.createElement("line",{key:i,transform:`rotate(${i}, 250, 250)`,y2:"250",x2:"115",y1:"240",x1:"135",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("animateTransform",{attributeType:"xml",attributeName:"transform",type:"rotate",from:"0 250 250",to:"360 250 250",dur:"10s",additive:"sum",repeatCount:"indefinite"})),M.createElement("path",{d:"M 56.089 160.250 C 55.077 162.588, 46.037 182.950, 36 205.500 C 25.963 228.050, 16.923 248.412, 15.911 250.750 L 14.071 255 28.286 254.976 L 42.500 254.952 47.931 242.226 C 50.918 235.227, 54.366 227.250, 55.592 224.500 L 57.822 219.500 66.383 237.250 L 74.945 255 88.973 255 C 96.688 255, 103 254.841, 103 254.646 C 103 254.452, 100.043 248.071, 96.430 240.466 L 89.859 226.638 91.603 222.771 C 92.563 220.644, 93.660 218.710, 94.043 218.473 C 94.426 218.237, 108.609 246.609, 125.562 281.522 L 156.384 345 166.071 345 C 175.705 345, 175.763 344.985, 176.856 342.250 C 179.911 334.602, 208 260.765, 208 260.383 C 208 260.138, 202.546 260.065, 195.879 260.219 L 183.759 260.500 174.629 285.244 C 169.608 298.853, 165.254 309.990, 164.952 309.994 C 164.651 309.997, 148.901 277.389, 129.952 237.532 C 111.004 197.674, 95.275 165.057, 95 165.049 C 94.725 165.041, 90.685 172.415, 86.022 181.435 C 81.358 190.455, 77.308 197.689, 77.022 197.510 C 76.735 197.331, 72.675 187.920, 68 176.598 C 63.325 165.275, 59.147 156.008, 58.714 156.005 C 58.282 156.002, 57.101 157.912, 56.089 160.250 M 55.294 168.694 C 52.241 175.842, 52.166 176.323, 53.718 178.692 L 55.349 181.182 56.706 178.591 C 57.453 177.166, 58.406 176, 58.825 176 C 59.244 176, 60.777 178.363, 62.232 181.250 C 64.829 186.403, 64.879 186.440, 64.939 183.250 C 64.973 181.463, 65.422 180, 65.937 180 C 66.724 180, 60.176 162.824, 58.920 161.596 C 58.689 161.370, 57.057 164.564, 55.294 168.694 M 91.698 175.542 C 89.205 180.626, 89.099 181.308, 90.410 183.792 L 91.840 186.500 92.926 183.669 C 94.349 179.961, 96.024 180.653, 98.588 186.009 L 100.676 190.370 101.324 187.132 C 101.832 184.592, 101.217 182.395, 98.473 176.947 C 96.549 173.126, 94.849 170, 94.696 170 C 94.542 170, 93.193 172.494, 91.698 175.542 M 157.005 192.607 C 143.168 197.636, 134.999 209.202, 135.001 223.761 C 135.002 232.756, 138.710 240.755, 145.856 247.180 C 152.159 252.848, 158.121 255, 167.518 255 C 173.509 255, 175.684 254.499, 180.811 251.936 C 200.823 241.936, 205.088 216.155, 189.337 200.403 C 181.479 192.546, 166.868 189.022, 157.005 192.607 M 206 223 L 206 255 215.472 255 L 224.944 255 225.222 241.419 L 225.500 227.837 230.500 234.660 C 233.250 238.412, 238.002 244.636, 241.060 248.491 L 246.620 255.500 253.810 255.168 L 261 254.836 261 222.918 L 261 191 251.528 191 L 242.056 191 241.778 204.552 L 241.500 218.104 231.111 204.552 L 220.722 191 213.361 191 L 206 191 206 223 M 285.821 192.331 C 276.229 195.045, 270.010 202.130, 270.004 210.349 C 269.995 221.957, 275.913 226.925, 295.801 232.006 C 300.753 233.271, 302.228 235.609, 299.412 237.730 C 296.739 239.746, 288.369 238.774, 281.563 235.657 L 276.132 233.171 272.469 239.320 C 268.119 246.621, 268.341 247.287, 276.524 251.500 C 281.399 254.010, 283.761 254.556, 290.977 254.842 C 302.365 255.294, 307.420 253.846, 312.603 248.649 C 317.383 243.855, 319.463 236.989, 318.043 230.693 C 316.210 222.562, 311.258 218.610, 297.878 214.599 C 288.025 211.645, 285.443 209.631, 288.538 207.315 C 291.104 205.394, 302.270 205.946, 306.769 208.217 L 310.039 209.866 313.104 203.794 C 316.516 197.035, 316.622 197.304, 309.167 193.844 C 303.663 191.289, 292.140 190.542, 285.821 192.331 M 322 199 L 322 207 330 207 L 338 207 338 231 L 338 255 347.500 255 L 357 255 357 231.044 L 357 207.088 364.250 206.794 L 371.500 206.500 371.792 198.750 L 372.084 191 347.042 191 L 322 191 322 199 M 379 223 L 379 255 401 255 L 423 255 423 247.500 L 423 240 409.500 240 L 396 240 396 235 L 396 230 407.500 230 L 419 230 419 222 L 419 214 407.500 214 L 396 214 396 210.529 L 396 207.058 409.250 206.779 L 422.500 206.500 422.792 198.750 L 423.084 191 401.042 191 L 379 191 379 223 M 433 223 L 433 255 442 255 L 451 255 451 247 L 451 239 454.800 239 C 458.555 239, 458.645 239.092, 462.469 246.937 L 466.339 254.874 476.172 255.187 C 481.580 255.359, 486.003 255.111, 486.002 254.636 C 486.001 254.160, 483.277 249.264, 479.949 243.754 C 473.914 233.765, 473.903 233.732, 475.836 231.619 C 480.222 226.824, 482.359 220.791, 482.431 213 C 482.512 204.192, 480.272 198.822, 475.031 195.260 C 469.795 191.703, 465.527 191.012, 448.750 191.006 L 433 191 433 223 M 448.210 213.250 L 448.500 221.500 455.338 221.500 C 461.319 221.500, 462.417 221.204, 464.088 219.139 C 465.995 216.785, 466.556 212.613, 465.379 209.545 C 464.356 206.879, 459.449 205, 453.509 205 L 447.919 205 448.210 213.250 M 163.169 209.017 C 156.337 210.583, 151.176 218.533, 152.339 225.701 C 154.672 240.077, 175.040 242.355, 180.446 228.844 C 184.978 217.516, 175.176 206.267, 163.169 209.017 M 216.676 271.715 C 216.037 272.750, 188 344.021, 188 344.612 C 188 344.863, 192.811 344.940, 198.691 344.784 L 209.381 344.500 211.894 336.750 L 214.406 329 226.550 329 L 238.694 329 242.097 336.992 L 245.500 344.983 255.250 344.992 C 262.399 344.998, 264.994 344.667, 264.979 343.750 C 264.968 343.063, 258.477 326.525, 250.555 307 L 236.150 271.500 226.656 271.215 C 221.434 271.058, 216.943 271.283, 216.676 271.715 M 273 307 C 273 326.800, 272.887 343.337, 272.750 343.750 C 272.613 344.163, 277.102 344.628, 282.727 344.785 L 292.954 345.069 293.227 327.379 L 293.500 309.689 307 327.336 L 320.500 344.982 328.262 344.991 L 336.025 345 335.762 308.250 L 335.500 271.500 326.750 271.211 L 318 270.922 317.882 286.711 C 317.816 295.395, 317.816 302.837, 317.882 303.250 C 317.947 303.663, 317.808 304, 317.574 304 C 317.340 304, 310.809 296.575, 303.060 287.500 L 288.971 271 280.985 271 L 273 271 273 307 M 223.254 303.048 L 220.078 312 226.539 312 C 230.093 312, 233 311.861, 233 311.691 C 233 311.257, 226.886 294.553, 226.636 294.302 C 226.522 294.189, 225.001 298.125, 223.254 303.048",stroke:"none",fill:s.themeType==="dark"?"#EEE":"#111",fillRule:"evenodd"}))))}function o5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 436 436",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function n5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 95 95",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:`M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 - c-0.344,0.922-0.443,1.413-0.907,1.363c-0.786-0.078-3.845-3.346-4.845-8.145l-2.482-11.6c1.961-3.177,3.977-5.629,5.988-7.292 - c1.08-0.882,2.314-1.349,3.808-1.43c3.815-0.26,5.203-0.74,6.14-1.399c1.547-1.115,2.397-2.728,2.397-4.542 - c0-1.596-0.604-3.019-1.75-4.115c-1.106-1.059-2.581-1.618-4.26-1.618c-2.468,0-5.239,1.142-8.474,3.49 - c-1.91,1.388-3.935,3.406-6.121,6.111c-0.711-2.653-1.319-3.889-1.771-4.628c-1.396-2.303-3.664-2.303-4.41-2.303l-0.813,0.013 - l-23.045,0.544l1.297-5.506c0.828-3.593,1.915-6.436,3.226-8.45c0.638-0.98,1.614-2.148,2.638-2.148 - c0.387,0,1.152,0.063,2.582,0.36c3.978,0.86,5.465,0.959,6.239,0.959c1.708,0,3.21-0.571,4.347-1.651 - c1.176-1.119,1.797-2.583,1.797-4.233c0-1.29-0.424-3.156-2.445-4.722c-1.396-1.081-3.311-1.629-5.691-1.629 - c-3.568,0-7.349,1.141-11.241,3.39c-3.862,2.232-7.038,5.317-9.438,9.171c-2.105,3.379-3.929,8.124-5.555,14.459H21.877 - l-2.238,8.831h10.186l-7.74,31.116c-1.603,6.443-2.777,8.028-3.098,8.361c-0.875,0.904-2.68,1.094-4.04,1.094 - c-1.683,0-3.477-0.121-5.349-0.361c-1.286-0.157-2.265-0.234-2.991-0.234c-1.878,0-3.423,0.488-4.59,1.448 - C0.716,81.858,0,83.403,0,85.14c0,1.357,0.44,3.309,2.539,4.895c1.434,1.08,3.389,1.628,5.813,1.628 - c6.069,0,11.725-2.411,16.813-7.165c4.947-4.624,8.571-11.413,10.773-20.195l6.119-24.935l20.87,0.354l2.244,9.64l-4.573,6.748 - c-0.824,1.209-2.051,2.701-3.658,4.441c-0.84,0.92-1.398,1.426-1.721,1.689c-1.316-1.608-2.809-2.424-4.432-2.424 - c-1.525,0-2.91,0.625-4.002,1.804c-1.036,1.116-1.583,2.514-1.583,4.038c0,1.83,0.783,3.459,2.264,4.709 - c1.357,1.146,3.034,1.728,4.981,1.728c2.414,0,4.884-0.921,7.344-2.737c2.053-1.519,4.697-4.526,8.074-9.189 - c2.17,6.24,5.248,10.252,6.714,11.927c2.313,2.644,6.049,4.22,9.993,4.22c3.348,0,5.244-1.402,6.916-2.641l0.148-0.109 - c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z`}))}function a5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),M.createElement("path",{fill:"currentColor",d:`M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 - l-74.091-22.229h174.635v106.667c0,11.776,9.536,21.333,21.333,21.333s21.333-9.557,21.333-21.333v-128 - C384.013,9.557,374.477,0,362.68,0H21.347c-0.768,0-1.451,0.32-2.197,0.405c-1.003,0.107-1.92,0.277-2.88,0.512 - c-2.24,0.576-4.267,1.451-6.165,2.645c-0.469,0.299-1.045,0.32-1.493,0.661C8.44,4.352,8.376,4.587,8.205,4.715 - C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992 - c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907 - l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491 - v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}function M5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 339 339",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("path",{fill:"currentColor",d:"M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("text",{style:{whiteSpace:"pre",fontFamily:"Arial, sans-serif",fontSize:16},x:"139.395",y:"288.084",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"},"vacuum"))}const x3e={dialogPaper:{height:"calc(100% - 96px)"}};class c5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const t=kt.cron2state(this.state.cron);if(t.seconds==="*"||t.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(t.minutes==="*"||t.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?M.createElement(i0,{title:h.t("ra_Please confirm"),text:h.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":x3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||h.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()})),M.createElement(j.DialogActions,null,!!this.props.clearButton&&M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:M.createElement(nt,null)},this.props.clear||h.t("ra_Clear")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}const _3e={dialogPaper:{height:"calc(100% - 96px)"}};class u5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof t=="object"||t[0]==="{")&&!this.props.noWizard?"wizard":ML(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":_3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||h.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?M.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),M.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},h.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),M.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},h.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),M.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},h.t("sc_cron")))):null,this.state.mode==="simple"&&M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()}),this.state.mode==="wizard"&&M.createElement(De,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}class l5e extends f.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"ar_dialog_message_title","aria-describedby":"ar_dialog_message_description"},M.createElement(j.DialogTitle,{id:"ar_dialog_message_title"},this.props.title||h.t("ra_Message")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_dialog_message_description"},M.createElement("span",{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_message_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Ne,null)},this.props.ok||h.t("ra_Close"))))}}const Ft={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class N5e extends M.Component{dialogName;filters;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let i=this.props.selected||[];typeof i!="object"?i=[i]:i=[...i],i=i.filter(r=>r),this.state={selected:i}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let e;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},this.state.selected)]:e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},h.t("%s items",this.state.selected.length))]:e=this.props.title||h.t("ra_Please select file..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...Ft.dialog,...Ft.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":Ft.titleRoot}},e),M.createElement(j.DialogContent,{style:{...Ft.content,...Ft.contentMobile}},M.createElement(Tfe,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(t,i,r)=>{this.setState({selected:Array.isArray(t)?t:[t]},()=>i&&(!this.props.selectOnlyFolders||r)&&this.handleOk())},t:this.props.t||h.t,lang:this.props.lang||h.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}const S3e={dialogPaper:{height:"calc(100% - 96px)"}};class L5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":S3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||h.t("ra_Define CRON...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}const jt={CONNECTING:0,CONNECTED:1,OBJECTS_LOADED:2,STATES_LOADED:3,READY:4},yt="permissionError",b="notConnectedError";function lN(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}class J{_socket;_authTimer;systemLang="en";_waitForFirstConnection;_waitForFirstConnectionResolve=null;_promises={};_instanceSubscriptions;props;doNotLoadAllObjects;doNotLoadACL;states={};objects=null;scriptLoadCounter;acl=null;firstConnect=!0;waitForRestart=!1;connected=!1;statesSubscribes={};objectsSubscribes={};filesSubscribes={};onConnectionHandlers=[];onLogHandlers=[];onProgress;onError;loaded=!1;loadTimer=null;loadCounter=0;ignoreState="";simStates={};autoSubscribes;autoSubscribeLog;subscribed;isSecure;onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;systemConfig=null;constructor(e){e||={protocol:window.location.protocol,host:window.location.hostname},this.props=e,this.autoSubscribes=this.props.autoSubscribes||[],this.autoSubscribeLog=this.props.autoSubscribeLog||!1,this.props.protocol||=window.location.protocol,this.props.host||=window.location.hostname,this.props.port||=window.location.port==="3000"?J.isWeb()?8082:8081:window.location.port,this.props.ioTimeout=Math.max(this.props.ioTimeout||2e4,2e4),this.props.cmdTimeout=Math.max(this.props.cmdTimeout||5e3,5e3),this._instanceSubscriptions={},this.doNotLoadAllObjects=this.props.doNotLoadAllObjects===void 0?!0:this.props.doNotLoadAllObjects,this.doNotLoadACL=this.props.doNotLoadACL===void 0?!0:this.props.doNotLoadACL,this.states={},this._waitForFirstConnection=new Promise(t=>{this._waitForFirstConnectionResolve=t}),this.onProgress=this.props.onProgress||(()=>{}),this.onError=this.props.onError||(t=>console.error(t)),this.startSocket()}static isWeb(){const e=window.adapterName;return e==="material"||e==="vis"||(e==null?void 0:e.startsWith("vis-"))||e==="echarts-show"||window.socketUrl!==void 0}startSocket(){if(typeof window.io>"u"&&typeof window.iob>"u"){if(typeof window.registerSocketOnLoad!="function"){if(this.scriptLoadCounter||=0,this.scriptLoadCounter++,this.scriptLoadCounter<30){setTimeout(()=>this.startSocket(),100);return}window.alert("Cannot load socket.io.js!")}else window.registerSocketOnLoad(()=>this.startSocket());return}if(this._socket)return;let e=this.props.host,t=this.props.port,i=this.props.protocol.replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),J.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a[a.length-1].match(/\d+\.\d+\.\d+/)&&a.pop(),a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}${r}`:`${i}://${e}${r}`;this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid}),this._socket.on("connect",n=>{n!==!0?setTimeout(()=>this.getVersion().then(a=>{const[c,l,N]=a.version.split(".");parseInt(c,10)*1e4+parseInt(l,10)*100+parseInt(N,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(L,g)=>this.onPreConnect(L,g))}),500):this._socket.emit("authenticate",(a,c)=>this.onPreConnect(a,c))}),this._socket.on("reconnect",()=>{this.onProgress(jt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(n=>n(!0)))}),this._socket.on("disconnect",()=>{this.connected=!1,this.subscribed=!1,this.onProgress(jt.CONNECTING),this.onConnectionHandlers.forEach(n=>n(!1))}),this._socket.on("reauthenticate",()=>J.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a=n||"";typeof a.toString!="function"&&(a=JSON.stringify(a),console.error(`Received strange error: ${a}`)),a=a.toString(),a.includes("User not authorized")?J.authenticate():window.alert(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>setTimeout(()=>this.objectChange(n,a),0)),this._socket.on("stateChange",(n,a)=>setTimeout(()=>this.stateChange(n,a),0)),this._socket.on("im",(n,a,c)=>setTimeout(()=>this.instanceMessage(n,a,c),0)),this._socket.on("fileChange",(n,a,c)=>setTimeout(()=>this.fileChange(n,a,c),0)),this._socket.on("cmdStdout",(n,a)=>{var c;return(c=this.onCmdStdoutHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;return(c=this.onCmdStderrHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;return(c=this.onCmdExitHandler)==null?void 0:c.call(this,n,a)})}onPreConnect(e,t){this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?(this.loadTimer=setTimeout(()=>{this.loadTimer=null,this.loadCounter++,this.loadCounter<10&&this.onConnect().catch(i=>this.onError(i))},1e3),this.loaded||this.onConnect().catch(i=>this.onError(i))):this.onProgress(jt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(i=>i(!0))),this._waitForFirstConnectionResolve&&(this._waitForFirstConnectionResolve(),this._waitForFirstConnectionResolve=null)}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnection}async _getUserPermissions(){return this.doNotLoadACL?null:new Promise((e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>i?t(new Error(i)):e(r))})}async onConnect(){var i,r,o,n,a;let e;try{e=await this._getUserPermissions()}catch(c){const l=c;this.onError(`Cannot read user permissions: ${l.message}`);return}if(!this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1,this.acl=e}let t;try{if(t=await this.getSystemConfig(),this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1}this.systemConfig=t,(i=this.systemConfig)!=null&&i.common?this.systemLang=this.systemConfig.common.language:(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substr(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en")),(o=(r=this.props).onLanguage)==null||o.call(r,this.systemLang),this.doNotLoadAllObjects?(this.objects={"system.config":t},this.onProgress(jt.READY),(a=(n=this.props).onReady)==null||a.call(n,this.objects)):(await this.getObjects(),this.onProgress(jt.READY),this.props.onReady&&this.objects&&this.props.onReady(this.objects))}catch(c){this.onError(`Cannot read system config: ${c}`)}}static authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`}async subscribeState(e,t,i){typeof t=="function"&&(i=t,t=!1);let r;if(Array.isArray(e)?r=e:r=[e],!i)return console.error("No callback found for subscribeState"),Promise.reject(new Error("No callback found for subscribeState"));const o=[];for(let n=0;n{this._socket.emit(J.isWeb()?"getStates":"getForeignStates",r,(c,l)=>{c?(console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(c)}`),a(new Error(c))):(l&&Object.keys(l).forEach(N=>i(N,l[N])),n())})})}subscribeStateAsync(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{typeof t=="function"&&this.connected?this._socket.emit(J.isWeb()?"getStates":"getForeignStates",e,(a,c)=>{a&&console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`),c&&Object.keys(c).forEach(l=>t(l,c[l])),c?o():n(new Error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`))}):this.connected?n(new Error("callback is not a function")):n(new Error("not connected"))})}unsubscribeState(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{(o===e||this.objectsSubscribes[o].reg.test(e))&&this.objectsSubscribes[o].cbs.forEach(n=>{try{n(e,t,i)}catch(a){console.error(`Error by callback of objectChange: ${a}`)}})}),r&&this.props.onObjectChange&&this.props.onObjectChange(e,t)}stateChange(e,t){for(const i in this.statesSubscribes)Object.prototype.hasOwnProperty.call(this.statesSubscribes,i)&&this.statesSubscribes[i].reg.test(e)&&this.statesSubscribes[i].cbs.forEach(r=>{try{r(e,t)}catch(o){const n=o;console.error(`Error by callback of stateChange: ${n==null?void 0:n.message}`)}})}instanceMessage(e,t,i){this._instanceSubscriptions[t]&&this._instanceSubscriptions[t].forEach(r=>{r.messageType===e&&r.callback(i,t,e)})}getStates(e,t){return this.connected?(typeof e=="boolean"&&(t=e,e=void 0),new Promise((i,r)=>{this._socket.emit("getStates",e,(o,n)=>{this.states=n,!t&&this.onProgress(jt.STATES_LOADED),o?r(new Error(o)):i(this.states)})})):Promise.reject(new Error(b))}getState(e){return this.connected?e&&e===this.ignoreState?Promise.resolve(this.simStates[e]||{val:null,ack:!0}):new Promise((t,i)=>{this._socket.emit("getState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getBinaryState(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}setBinaryState(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("setBinaryState",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setState(e,t,i){if(!this.connected)return Promise.reject(new Error(b));if(e&&e===this.ignoreState){let r;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?r=t:r={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=r,this.statesSubscribes[e])for(const o of this.statesSubscribes[e].cbs)try{o(e,r)}catch(n){console.error(`Error by callback of stateChanged: ${n}`)}return Promise.resolve()}return new Promise((r,o)=>{this._socket.emit("setState",e,t,n=>n?o(new Error(n)):r())})}getObjects(e,t){return this.connected?new Promise((i,r)=>{!e&&this.objects?i(this.objects):this._socket.emit(J.isWeb()?"getObjects":"getAllObjects",(o,n)=>{this.objects=n,t&&this.onProgress(jt.OBJECTS_LOADED),o?r(new Error(o)):i(this.objects)})}):Promise.reject(new Error(b))}getObjectsById(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getObjects",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}_subscribe(e){if(e&&!this.subscribed){this.subscribed=!0,this.autoSubscribes.forEach(i=>this._socket.emit("subscribeObjects",i)),Object.keys(this.objectsSubscribes).forEach(i=>this._socket.emit("subscribeObjects",i)),this.autoSubscribeLog&&this._socket.emit("requireLog",!0);const t=Object.keys(this.statesSubscribes);t.forEach(i=>this._socket.emit("subscribe",i)),t.length&&this._socket.emit(J.isWeb()?"getStates":"getForeignStates",t,(i,r)=>{i&&console.error(`Cannot getForeignStates: ${JSON.stringify(i)}`),r&&Object.keys(r).forEach(o=>this.stateChange(o,r[o]))})}else!e&&this.subscribed&&(this.subscribed=!1,this.autoSubscribes.forEach(t=>this._socket.emit("unsubscribeObjects",t)),Object.keys(this.objectsSubscribes).forEach(t=>this._socket.emit("unsubscribeObjects",t)),this.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(t=>this._socket.emit("unsubscribe",t)))}requireLog(e){return this.connected?new Promise((t,i)=>{this._socket.emit("requireLog",e,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}delObject(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObject",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}delObjects(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObjects",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setObject(e,t){return this.connected?t?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("setObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error("Null object is not allowed")):Promise.reject(new Error(b))}getObject(e){return this.connected?e&&e===this.ignoreState?Promise.resolve({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed",read:!0,write:!0,role:"state"},native:{}}):new Promise((t,i)=>{this._socket.emit("getObject",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`instances_${e}`]instanceof Promise?this._promises[`instances_${e}`]:this.connected?(this._promises[`instances_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapterInstances",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`instances_${e}`]):Promise.reject(new Error(b))}getAdapters(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`adapter_${e}`]instanceof Promise?this._promises[`adapter_${e}`]:this.connected?(this._promises[`adapter_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapters",e,(o,n)=>{o?r(new Error(o)):i(n)})}),this._promises[`adapter_${e}`]):Promise.reject(new Error(b)))}_renameGroups(e,t){if(!(e!=null&&e.length))t==null||t(null);else{const i=e.pop();if(!i){setTimeout(()=>this._renameGroups(e,t),0);return}const r=i._id;i._id=i.newId,delete i.newId,this.setObject(i._id,i).then(()=>this.delObject(r)).then(()=>setTimeout(()=>this._renameGroups(e,t),0)).catch(o=>t==null?void 0:t(o))}}async renameGroup(e,t,i){if(J.isWeb())return Promise.reject(new Error("Allowed only in admin"));const r=await this.getGroups(!0);if(r.length){const o=r.filter(a=>a._id.startsWith(`${e}.`));o.forEach(a=>{a.newId=t+a._id.substring(e.length)}),await new Promise((a,c)=>{this._renameGroups(o,l=>l?c(new Error(l)):a(null))});const n=r.find(a=>a._id===e);if(n)return n._id=t,i!==void 0&&(n.common||={},n.common.name=i),this.setObject(n._id,n).then(()=>this.delObject(e))}return Promise.resolve()}sendTo(e,t,i){return this.connected?new Promise(r=>{this._socket.emit("sendTo",e,t,i,o=>r(o))}):Promise.reject(new Error(b))}extendObject(e,t){return this.connected?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("extendObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error(b))}registerLogHandler(e){!this.onLogHandlers.includes(e)&&this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){!this.onConnectionHandlers.includes(e)&&this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return!t&&this._promises[`enums_${e||"all"}`]instanceof Promise?this._promises[`enums_${e||"all"}`]:this.connected?(this._promises[`enums_${e||"all"}`]=new Promise((i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:`enum.${e?`${e}.`:""}香`},(o,n)=>{if(!o&&n){const a={};for(let c=0;c{this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(new Error(a));else{const l={};if(c&&c.rows)for(let N=0;N{const i=[];return t&&t.native&&t.native.certificates&&Object.keys(t.native.certificates).forEach(r=>{const o=t.native.certificates[r];if(!o)return;const n={name:r,type:""};o.length<700&&(o.includes("/")||o.includes("\\"))?(r.toLowerCase().includes("private")||o.toLowerCase().includes("private")?n.type="private":(r.toLowerCase().includes("public")||o.toLowerCase().includes("public"))&&(n.type="public"),i.push(n)):(n.type=o.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||o.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",n.type==="public"&&o.split("-----END CERTIFICATE-----").filter(c=>c.replace(/\r\n|\r|\n/,"").trim()).length>1&&(n.type="chained"),i.push(n))}),i}),this._promises.cert):Promise.reject(new Error(b))}getLogs(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>i(r))}):Promise.reject(new Error(b))}getLogsFiles(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("readLogs",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}delLogs(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}readMetaItems(){return this.connected?new Promise((e,t)=>{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>i?t(new Error(i)):e(r.rows&&r.rows.map(o=>o.value)))}):Promise.reject(new Error(b))}readDir(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}readFile(e,t,i){return this.connected?new Promise((r,o)=>{i?this._socket.emit("readFile64",e,t,i,(n,a)=>n?o(new Error(n)):r(a)):this._socket.emit("readFile",e,t,(n,a,c)=>{n?o(new Error(n)):r({data:a,type:c})})}):Promise.reject(new Error(b))}writeFile64(e,t,i){return this.connected?new Promise((r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>n?o(new Error(n)):r());else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>a?o(new Error(a)):r())}}):Promise.reject(new Error(b))}deleteFile(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("unlink",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}deleteFolder(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("deleteFolder",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}getHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hosts instanceof Promise?this._promises.hosts:this.connected?(this._promises.hosts=new Promise((t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.hosts):Promise.reject(new Error(b))}getUsers(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.users instanceof Promise?this._promises.users:this.connected?(this._promises.users=new Promise((t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.users):Promise.reject(new Error(b))}getGroups(e){return!e&&this._promises.groups instanceof Promise?this._promises.groups:this.connected?(this._promises.groups=new Promise((t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.groups):Promise.reject(new Error(b))}getHostInfo(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfo_${e}`]instanceof Promise?this._promises[`hostInfo_${e}`]:this.connected?(this._promises[`hostInfo_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getHostInfo timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfo"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfo"')):r(a))})}),this._promises[`hostInfo_${e}`]):Promise.reject(new Error(b)))}getHostInfoShort(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfoShort_${e}`]instanceof Promise?this._promises[`hostInfoShort_${e}`]:this.connected?(this._promises[`hostInfoShort_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("hostInfoShort timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfoShort"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfoShort"')):r(a))})}),this._promises[`hostInfoShort_${e}`]):Promise.reject(new Error(b)))}getRepository(e,t,i,r){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!i&&this._promises.repo instanceof Promise?this._promises.repo:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repo=new Promise((o,n)=>{let a=setTimeout(()=>{a&&(a=null,n(new Error("getRepository timeout")))},r||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getRepository",t,c=>{a&&(clearTimeout(a),a=null,c===yt?n(new Error('May not read "getRepository"')):!c||typeof c!="object"?n(new Error('Cannot read "getRepository"')):o(c))})}),this._promises.repo):Promise.reject(new Error(b))}getInstalled(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installed=this._promises.installed||{},!t&&this._promises.installed[e]instanceof Promise?this._promises.installed[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installed[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getInstalled"')):r(a))})}),this._promises.installed[e]):Promise.reject(new Error(b)))}rename(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("rename",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}renameFile(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("renameFile",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}cmdExec(e,t,i,r){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),new Promise((o,n)=>{let a=r?setTimeout(()=>{a&&(a=null,n(new Error("cmdExec timeout")))},r):null;this._socket.emit("cmdExec",e,i,t,null,c=>{(!r||a)&&(a&&clearTimeout(a),a=null,c?n(new Error(c)):o())})})):Promise.reject(new Error(b))}checkFeatureSupported(e,t){return!t&&this._promises[`supportedFeatures_${e}`]instanceof Promise?this._promises[`supportedFeatures_${e}`]:this.connected?(this._promises[`supportedFeatures_${e}`]=new Promise((i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`supportedFeatures_${e}`]):Promise.reject(new Error(b))}async readBaseSettings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):await this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS")?this.connected?new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("readBaseSettings timeout")))},this.props.cmdTimeout);e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),this._socket.emit("sendToHost",e,"readBaseSettings",null,n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "BaseSettings"')):!n||typeof n!="object"?r(new Error('Cannot read "BaseSettings"')):i(n))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported"))}writeBaseSettings(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then(i=>i?this.connected?new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("writeBaseSettings timeout")))},this.props.cmdTimeout);this._socket.emit("sendToHost",e,"writeBaseSettings",t,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not write "BaseSettings"')):a?r(a):o(new Error('Cannot write "BaseSettings"')))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported")))}restartController(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("sendToHost",e,"restartController",null,r=>{r?i(new Error(r)):t(!0)})})}getDiagData(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise(i=>{this._socket.emit("sendToHost",e,"getDiagData",t,r=>i(r))})}getForeignStates(e){return this.connected?J.isWeb()?new Promise((t,i)=>{this._socket.emit("getStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):new Promise((t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getForeignObjects(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getSystemConfig(e){return!e&&this._promises.systemConfig instanceof Promise?this._promises.systemConfig:this.connected?(this._promises.systemConfig=this.getObject("system.config").then(t=>{const i=t||{};return i.common||={},i.native||={},i}),this._promises.systemConfig):Promise.reject(new Error(b))}setSystemConfig(e){return this.setObject("system.config",e).then(()=>this._promises.systemConfig=Promise.resolve(e))}getRawSocket(){return this._socket}getHistory(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getHistoryEx(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>o?r(new Error(o)):i({values:n,sessionId:c,step:a}))}):Promise.reject(new Error(b))}changePassword(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((i,r)=>{this._socket.emit("changePassword",e,t,o=>o?r(new Error(o)):i())})}getIpAddresses(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e=`system.host.${e}`),!t&&this._promises[`IPs_${e}`]instanceof Promise?this._promises[`IPs_${e}`]:(this._promises[`IPs_${e}`]=this.getObject(e).then(i=>i!=null&&i.common?i.common.address||[]:[]),this._promises[`IPs_${e}`]))}getHostByIp(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),!t&&this._promises[`rIPs_${e}`]instanceof Promise?this._promises[`rIPs_${e}`]:(this._promises[`rIPs_${e}`]=new Promise(i=>{this._socket.emit("getHostByIp",e,(r,o)=>{var c,l;const n=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],a=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((l=(c=o==null?void 0:o.native)==null?void 0:c.hardware)!=null&&l.networkInterfaces){for(const N in o.native.hardware.networkInterfaces)if(Object.prototype.hasOwnProperty.call(o.native.hardware.networkInterfaces,N))for(let u=0;u{this._socket.emit("encrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}decrypt(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("decrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}getVersion(e){return!e&&this._promises.version instanceof Promise?this._promises.version:(this._promises.version=new Promise((t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(new Error(r)):t({version:o,serverName:n})})}),this._promises.version)}getWebServerName(){return this._promises.webName instanceof Promise?this._promises.webName:(this._promises.webName=new Promise((e,t)=>{this._socket.emit("getAdapterName",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.webName)}getAdminVersion(){return console.log("Deprecated: use getVersion"),this.getVersion()}chmodFile(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chmodFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}chownFile(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chownFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}fileExists(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}clearNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}getIsEasyModeStrict(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getIsEasyModeStrict",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getEasyMode(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getEasyMode",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getCurrentUser(){return this.connected?new Promise(e=>{this._socket.emit("authEnabled",(t,i)=>e(i))}):Promise.reject(new Error(b))}getCurrentSession(e){return this.connected?new Promise((t,i)=>{const r=new AbortController;let o=setTimeout(()=>{o&&(o=null,r.abort(),i(new Error("getCurrentSession timeout")))},e||5e3);fetch("./session",{signal:r.signal}).then(n=>n.json()).then(n=>{o&&(clearTimeout(o),o=null,t(n))}).catch(n=>i(new Error(`getCurrentSession: ${n}`)))}):Promise.reject(new Error(b))}getRatings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("getRatings",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getCurrentInstance(){return this.connected?this._promises.currentInstance instanceof Promise?this._promises.currentInstance:(this._promises.currentInstance=new Promise((e,t)=>{this._socket.emit("getCurrentInstance",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.currentInstance):Promise.reject(new Error(b))}getCompactAdapters(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactAdapters instanceof Promise?this._promises.compactAdapters:this.connected?(this._promises.compactAdapters=new Promise((t,i)=>{this._socket.emit("getCompactAdapters",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactAdapters):Promise.reject(new Error(b))}getAdaptersResetCache(e){e||="",delete this._promises.compactAdapters,delete this._promises[`adapter_${e}`]}getCompactInstances(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactInstances instanceof Promise?this._promises.compactInstances:this.connected?(this._promises.compactInstances=new Promise((t,i)=>{this._socket.emit("getCompactInstances",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactInstances):Promise.reject(new Error(b))}getAdapternInstancesResetCache(e){e||="",delete this._promises.compactInstances,delete this._promises[`instances_${e}`]}getCompactInstalled(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installedCompact||={},!t&&this._promises.installedCompact[e]instanceof Promise?this._promises.installedCompact[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installedCompact[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactInstalled",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getCompactInstalled"')):r(a))})}),this._promises.installedCompact[e]):Promise.reject(new Error(b)))}getCompactSystemRepositories(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.getCompactSystemRepositories instanceof Promise?this._promises.getCompactSystemRepositories:this.connected?(this._promises.getCompactSystemRepositories=new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("getCompactSystemRepositories timeout")))},t||this.props.cmdTimeout);this._socket.emit("getCompactSystemRepositories",n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "getCompactSystemRepositories"')):!n||typeof n!="object"?r(new Error('Cannot read "getCompactSystemRepositories"')):i(n))})}),this._promises.getCompactSystemRepositories):Promise.reject(new Error(b))}getCompactSystemConfig(e){return!e&&this._promises.systemConfigPromise instanceof Promise?this._promises.systemConfigPromise:this.connected?(this._promises.systemConfigPromise=new Promise((t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.systemConfigPromise):Promise.reject(new Error(b))}getCompactRepository(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!t&&this._promises.repoCompact instanceof Promise?this._promises.repoCompact:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repoCompact=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactRepository timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactRepository",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactRepository"')):a?r(a):o(new Error('Cannot read "getCompactRepository"')))})}),this._promises.repoCompact):Promise.reject(new Error(b))}getInstalledResetCache(){delete this._promises.repoCompact,delete this._promises.repo}getCompactHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hostsCompact instanceof Promise?this._promises.hostsCompact:this.connected?(this._promises.hostsCompact=new Promise((t,i)=>{this._socket.emit("getCompactHosts",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.hostsCompact):Promise.reject(new Error(b))}getUuid(){return this._promises.uuid instanceof Promise?this._promises.uuid:this.connected?(this._promises.uuid=this.getObject("system.meta.uuid").then(e=>{var t;return(t=e==null?void 0:e.native)==null?void 0:t.uuid}),this._promises.uuid):Promise.reject(new Error(b))}subscribeOnInstance(e,t,i,r){return this.connected?new Promise((o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(new Error(a)):c!=null&&c.error?n(new Error(c.error)):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]||=[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c))})}):Promise.reject(new Error(b))}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(new Promise((N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>{L?u(new Error(L)):N(g)})}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>a.find(c=>c)||!1):Promise.resolve(!1)}log(e,t){e&&this._socket.emit("log",e,t||"debug")}logout(){return this.connected?new Promise((e,t)=>{this._socket.emit("logout",i=>i?t(new Error(i)):e())}):Promise.reject(new Error(b))}setStateToIgnore(e){this.ignoreState=e||""}}function g5e(s){var e;return s.type==="object"?`iobobject://${s.address}/${s.path||""}`:s.type==="state"?`iobstate://${s.address}`:s.type==="file"?`iobfile://${s.address}/${s.path||""}`:s.type==="http"?s.address:(e=s.path)!=null&&e.includes("/")?`iobfile://${s.address}/${s.path}`:s.path?`iobobject://${s.address}/${s.path}`:`iobstate://${s.address}`}function k3e(s){const e={type:"object",address:""};if(s.startsWith("iobobject://")){e.type="object",s=s.replace("iobobject://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobstate://")){e.type="state",s=s.replace("iobstate://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobfile://")){e.type="file",s=s.replace("iobfile://","");const t=s.split("/");e.address=t.shift(),e.path=t.join("/")}else if(s.startsWith("http://")||s.startsWith("https://"))e.type="http",e.address=s;else if(s.startsWith("data:"))e.type="base64",e.address=s;else{const t=s.split("/");if(t.length===2)if(e.address=t[0],e.path=t[1],e.path.includes("."))e.type="object";else if(e.path)if(e.path==="val"||e.path==="q"||e.path==="ack"||e.path==="ts"||e.path==="lc"||e.path==="from"||e.path==="user"||e.path==="expire"||e.path==="c")e.type="state";else if(e.path==="common"||e.path==="native"||e.path==="from"||e.path==="acl"||e.path==="type")e.type="object";else throw new Error(`Unknown path: ${e.path}`);else e.type="state";else t.length===1?(e.address=t[0],e.type="state"):(e.address=t.shift(),e.type="file",e.path=t.join("/"))}return e}function cL(s,e,t){if(t=t||0,s==null||!e)return s;if(e.length-1===t)return s[e[t]];if(typeof s=="object")return cL(s[e[t]],e,t+1)}function Y3e(s,e,t,i){if(i=i||0,s==null||!e)return t;if(e.length-1===i)return s[e[i]]=t,s;if(typeof s=="object")return Y3e(s[e[i]],e,t,i+1)}async function j5e(s,e){var t;if(typeof s=="string"&&(s=k3e(s)),s.type==="object"){const i=await e.getObject(s.address);return cL(i,(t=s.path)==null?void 0:t.split("."))}if(s.type==="state"){const i=await e.getState(s.address);return s.path?i==null?void 0:i[s.path]:i}if(s.type==="file")return await e.readFile(s.address,s.path,!0);if(s.type==="http")return fetch(s.address).then(i=>i.text()).then(i=>{if(i.startsWith("{")&&i.endsWith("}")||i.startsWith("[")&&i.endsWith("]"))try{return JSON.parse(i)}catch{}return i});throw new Error(`Unknown type: ${s.type}`)}const Mn=s=>{const e={};return s.forEach(t=>{e[t]={requiredVersion:"*",singleton:!0}}),e};function y5e(s){const e=["@emotion/react","@emotion/styled","@iobroker/adapter-react-v5","@iobroker/json-config","@iobroker/dm-gui-components","@mui/icons-material","@mui/material","@mui/x-date-pickers","date-fns","date-fns/locale","leaflet","leaflet-geosearch","react","react-ace","react-dom","react-dropzone","semver"];return Array.isArray(s)?Mn(e.filter(t=>s.includes(t))):s&&(s.dependencies||s.devDependencies)?Mn(e.filter(t=>{var i,r;return((i=s.dependencies)==null?void 0:i[t])||((r=s.devDependencies)==null?void 0:r[t])})):Mn(e)}export{B3e as AdminConnection,Ii as ColorPicker,kt as ComplexCron,c5e as ComplexCronDialog,i0 as Confirm,ze as Connection,u5e as Cron,J3e as CustomModal,v_e as DeviceTypeIcon,H3e as DeviceTypeSelector,c5e as DialogComplexCron,i0 as DialogConfirm,u5e as DialogCron,r0 as DialogError,l5e as DialogMessage,N5e as DialogSelectFile,xSe as DialogSelectID,L5e as DialogSimpleCron,FEe as DialogTextInput,Ie as ERRORS,we as EXTENSIONS,r0 as Error,Tfe as FileBrowser,DM as FileBrowserClass,yfe as FileViewer,jfe as FileViewerClass,Gt as GenericApp,h as I18n,Pl as ITEM_IMAGES,me as Icon,K_e as IconAdapter,Lfe as IconAlias,o5e as IconButtonImage,O4 as IconChannel,sSe as IconClearFilter,Ws as IconClosed,Ts as IconCopy,E4 as IconDevice,q_e as IconDocument,eSe as IconDocumentReadOnly,$n as IconExpert,n5e as IconFx,tSe as IconInstance,a5e as IconLogout,dM as IconNoIcon,fr as IconOpen,G3e as IconPicker,Vxe as IconSelector,Ai as IconState,M5e as IconVacuum,xr as Image,Z3e as InfoBox,J as LegacyConnection,ND as Loader,r5e as LoaderMV,i5e as LoaderPT,s5e as LoaderVendor,A4 as Logo,m4 as MDUtils,l5e as Message,gSe as ObjectBrowser,it as ObjectBrowserClass,W3e as PERMISSION_ERROR,rt as PROGRESS,Oi as Router,V3e as STATES_NAME_ICONS,dD as SaveCloseButtons,De as Schedule,N5e as SelectFile,xSe as SelectID,X3e as SelectWithIcon,$i as SimpleCron,L5e as SimpleCronDialog,iSe as TabContainer,rSe as TabContent,oSe as TabHeader,K3e as TableResize,FEe as TextInput,q3e as TextWithIcon,bg as Theme,e5e as ToggleThemeMenu,Kn as TreeTable,t5e as UploadImage,O as Utils,h4 as convertCronToText,s0 as copy,ML as cron2state,w4e as dictionary,p4 as extendDeviceTypeTranslation,cL as getAttrInObject,F3e as getSelectIdIcon,Zr as getSelectIdIconFromObjects,R3e as getSystemIcon,k3e as iobUriParse,j5e as iobUriRead,g5e as iobUriToString,y5e as moduleFederationShared,lN as pattern2RegEx,uD as printPrompt,Y3e as setAttrInObject,Io as withWidth}; diff --git a/admin/assets/index-DUBaHZ92.css b/admin/assets/index-DUBaHZ92.css new file mode 100644 index 000000000..a52a1402a --- /dev/null +++ b/admin/assets/index-DUBaHZ92.css @@ -0,0 +1 @@ +._wrapperRules_nnott_1{background:linear-gradient(0deg,var(--backgroundGlobalColor),var(--backgroundGlobalColor)),url(./back-CXiqI7Po.jpg);background-repeat:no-repeat;background-size:cover;height:100%;display:flex}._rootWrapper_nnott_9{display:flex;width:100%}._addClass_nnott_14{flex-direction:column;height:auto;overflow:auto}@media screen and (max-width: 835px){._rootWrapper_nnott_9{flex-direction:column;height:auto;overflow:auto}}._switchesItem_10ls3_1{max-width:200px;width:auto;display:flex;margin:5px 0;padding:12px 0;align-items:center;border:1px solid rgba(255,255,255,0);transition:all .7s;color:var(--colorInput)}._switchesItem_10ls3_1 span{overflow:hidden;text-overflow:ellipsis;width:100%;margin-left:15px;color:var(--lineColorActive);white-space:nowrap}._switchesItem_10ls3_1:hover,._switchesItemActive_10ls3_28{border:1px solid var(--lineColor);color:var(--lineColorHover);border-radius:6px;background:var(--backgroundColor);cursor:pointer}._iconTheme_10ls3_36{width:30px!important;height:30px!important;margin-left:5px}._iconTheme_10ls3_36 *{color:var(--lineColorActive)!important}._cardStyle_8rq8v_1{cursor:pointer;position:relative;min-width:200px;width:calc(100% - 72px);height:fit-content;min-height:70px;display:flex;padding:10px;margin:23px 12px 4px;align-items:center;background:#ffffff6b;border-radius:4px;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}._cardStyleActive_8rq8v_17{width:300px;z-index:100}._controlMenu_8rq8v_22{display:flex;position:absolute;right:-31px;width:30px;height:100%;transition:opacity .5s}._closeBtn_8rq8v_31{width:20px;height:20px;border-radius:20px;position:relative;z-index:1;margin:5px auto;cursor:pointer}._closeBtn_8rq8v_31:before{content:"+";color:#f7060684;position:absolute;z-index:2;transform:rotate(45deg);font-size:30px;line-height:1;top:-6px;left:2px;transition:all .3s cubic-bezier(.77,0,.2,.85)}._closeBtn_8rq8v_31:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background:var(--backgroundColorHumburger);z-index:1;transition:all .3s cubic-bezier(.77,0,.2,.85);transform:scale(.01)}._closeBtn_8rq8v_31:hover:after{transform:scale(1)}._closeBtn_8rq8v_31:hover:before{transform:scale(.8) rotate(45deg);color:#fff}._isDelete_8rq8v_73{height:0;min-height:0;overflow:hidden;padding:0 10px;margin:0 12px;transition:all .25s;background:#fff;opacity:.8;box-shadow:0 0 10px #6accff}@media screen and (max-width: 835px){._controlMenu_8rq8v_22{opacity:1!important}}._drag_mobile_8rq8v_90{display:none}@media screen and (max-width: 600px){._drag_mobile_8rq8v_90{display:flex;width:30px;height:20px;background:repeating-linear-gradient(180deg,var(--lineColorActive),var(--lineColorActive) 4px,var(--backgroundColorHumburger) 4px,var(--backgroundColorHumburger) 8px);border:1px solid var(--lineColorActive);border-radius:5px 0 0;position:absolute;top:0;left:0;cursor:pointer}}._border_wrpm3_1{border-left:1px solid var(--lineColor);border-right:1px solid var(--lineColor)}._emptyBlockStyle_wrpm3_6{cursor:pointer;width:auto;background:#ffffff1f;display:flex;margin:10px 40px 10px 10px;align-items:center;border-radius:4px}._emptyBlock_wrpm3_6{padding:10px;margin-top:10px;animation:_marginTop_wrpm3_1 .12s}._selectOnChange_wrpm3_22{margin-left:12px;color:var(--lineColor)!important;width:calc(100% - 42px)}._selectOnChangeHelp_wrpm3_28{color:var(--lineColor);vertical-align:middle;cursor:pointer}._selectOnChangeHelpIcon_wrpm3_34{color:var(--lineColor)}@keyframes _marginTop_wrpm3_1{0%{padding:0;margin-top:70px;height:0}to{padding:10px;margin-top:10px}}._emptyBlockNone_wrpm3_49{height:0;animation:none;transition:height .02s}._mainBlockItemRules_wrpm3_55{display:flex;flex:1 3;flex-direction:column;transition:all .5s;z-index:9;overflow:auto}._mainBlockItemRules_wrpm3_55 ._nameBlockItems_wrpm3_63{color:var(--lineColor);margin-top:10px;width:100%;display:flex;height:fit-content;justify-content:center;align-items:center}._contentBlockItem_wrpm3_73{height:100%;display:flex;flex-direction:column;overflow:auto;transition:height .3s,background .5s}._wrapperMargin_wrpm3_81{margin:auto 0;display:flex;flex-direction:column}._contentHeightOn_wrpm3_87{animation:_heightBlock_wrpm3_1 .3s}@keyframes _heightBlock_wrpm3_1{0%{height:0}to{height:100%}}._contentHeightOff_wrpm3_99{height:0;overflow:hidden;animation:none}._cardAdd_wrpm3_105{display:flex;align-items:center;text-align:center;margin:0 10px;width:100%;color:var(--lineColor)}._cardAdd_wrpm3_105:after,._cardAdd_wrpm3_105:before{content:"";flex:1;border-bottom:1px solid}._cardAdd_wrpm3_105:after{margin-left:.25em}._cardAdd_wrpm3_105:before{margin-right:.25em}._blockCardAdd_wrpm3_125{display:flex;padding:0 10px 6px;align-items:center;color:#fff;cursor:pointer}._blockCardAdd_wrpm3_125 *{color:#ffffffb3}._addClassOverflow_wrpm3_136{overflow:initial}._addClassHeight_wrpm3_140{min-height:300px}@media screen and (max-width: 835px){._mainBlockItemRules_wrpm3_55{overflow:initial}._contentBlockItem_wrpm3_73{min-height:300px}._contentHeightOff_wrpm3_99{min-height:0;transition:min-height .3s}._contentHeightOn_wrpm3_87{transition:min-height .3s}._border_wrpm3_1{border-left:initial;border-right:initial}}._drag_7xfhc_1{width:32px;height:22px;position:absolute;top:23px;left:12px;z-index:1;cursor:pointer}._root_7xfhc_11{position:relative}._menuRules_1qqcb_1{width:200px;display:flex;flex-direction:column;background:var(--backgroundColor);border-right:1px solid var(--lineColor);padding:10px;opacity:1;overflow-x:hidden;transition:width .5s,opacity .2s,padding .5s,background .2s,border-right .2s}._switchesRenderWrapper_1qqcb_13{overflow-x:hidden;overflow-y:auto;direction:rtl}._switchesRenderWrapper_1qqcb_13 span{direction:ltr}._menuOff_1qqcb_22{width:0;opacity:0;padding:0}._menuTitle_1qqcb_28{display:flex;align-items:center;text-align:center;color:var(--lineColor);white-space:nowrap;transition:color .2s}._menuTitle_1qqcb_28:after,._menuTitle_1qqcb_28:before{content:"";flex:1;border-bottom:1px solid}._marginAuto_1qqcb_42{margin-top:auto;margin-bottom:20px}._inputWidth_1qqcb_47{margin-top:0!important;margin-bottom:5px!important}._menuWrapper_1qqcb_52{display:flex;height:100%}._hamburgerWrapper_1qqcb_57{position:absolute;width:32px;height:26px;background:var(--backgroundColorHumburger);border-radius:0 5px 5px 0;display:flex;justify-content:center;padding-top:10px;left:221px;top:30px;border:1px solid var(--lineColor);cursor:pointer;transition:left .5s,border-radius .7s,width .7s,height .7s,background .2s,border .2s;z-index:10}._hamburgerOff_1qqcb_74{left:20px;padding-top:12px;border-radius:20px;width:40px;height:28px}._nothingFound_1qqcb_82{color:var(--lineColor);margin:16px;font-size:21px;transition:color .2s}._resetSearch_1qqcb_89{font-weight:700;color:var(--lineColor);cursor:pointer;margin:10px 0;transition:color .3s,font-size .3s}._resetSearch_1qqcb_89:hover{color:var(--lineColorHover);font-size:22px}._controlPanel_1qqcb_101{display:flex;align-items:center;width:200px}._controlPanel_1qqcb_101 button{width:33.3333333333%;min-width:auto;color:var(--lineColor);transition:color .2s}._controlPanel_1qqcb_101 ._controlPanelAppBar_1qqcb_112{background:none;box-shadow:none}._controlPanel_1qqcb_101 [class*=Mui-selected]{color:var(--lineColorActive)!important}._controlPanel_1qqcb_101 [class*=MuiTabs-indicator]{background-color:var(--lineColorActive)}._controlPanel_1qqcb_101 [class*=Mui-disabled]{color:#210025cc!important}._addClassMenu_1qqcb_126{position:absolute;z-index:12;top:0}._addClassBackground_1qqcb_132{background:var(--backgroundMobile)}._addClassPosition_1qqcb_136{position:sticky;top:0;left:0;z-index:2222}@media screen and (max-width: 1035px){._menuWrapper_1qqcb_52{position:absolute;z-index:12;top:0}._menuRules_1qqcb_1{background:var(--backgroundMobile)}}@media screen and (max-width: 835px){._menuRules_1qqcb_1{position:sticky;top:0;left:0;z-index:2222}}._menu_wrapper_hqnsm_1{outline:0;outline-offset:0;margin-top:12px;cursor:pointer}._hamburgerMenu_hqnsm_8,._hamburgerMenu_hqnsm_8:after,._hamburgerMenu_hqnsm_8:before{width:20px;height:2px}._hamburgerMenu_hqnsm_8{position:relative;transform:translateY(7px);background:var(--lineColorActive);transition:all 0ms .3s}._hamburgerMenu_hqnsm_8._animate_hqnsm_21{background:#dfbdec00}._hamburgerMenu_hqnsm_8:before{content:"";position:absolute;left:0;bottom:7px;background:var(--lineColorActive);transition:bottom .3s .3s cubic-bezier(.23,1,.32,1),transform .3s cubic-bezier(.23,1,.32,1)}._hamburgerMenu_hqnsm_8:after{content:"";position:absolute;left:0;top:7px;background:var(--lineColorActive);transition:top .3s .3s cubic-bezier(.23,1,.32,1),transform .3s cubic-bezier(.23,1,.32,1)}._hamburgerMenu_hqnsm_8._animate_hqnsm_21:after{top:0;transform:rotate(45deg);transition:top .3s cubic-bezier(.23,1,.32,1),transform .3s .3s cubic-bezier(.23,1,.32,1)}._hamburgerMenu_hqnsm_8._animate_hqnsm_21:before{bottom:0;transform:rotate(-45deg);transition:bottom .3s cubic-bezier(.23,1,.32,1),transform .3s .3s cubic-bezier(.23,1,.32,1)}._menu_conatiner_wrapper_hqnsm_55{display:none}:root.blue{--backgroundColor: rgba(48, 82, 129, .231372549);--lineColor: rgba(76, 170, 244, .4901960784);--lineColorHover: #ccceff;--lineColorActive: #4caaf4;--backgroundColorHumburger: rgba(67, 106, 147, .7215686275);--colorBlock: #02124b;--colorBlockHover: rgba(2, 18, 75, .5490196078);--colorInput: #02124b;--backgroundBlock: rgba(201, 231, 255, .6705882353);--backgroundGlobalColor: rgba(255, 255, 255, 0);--backgroundMobile: rgba(4, 28, 53, .831372549);--debugColor: #c6511b}:root.colored{--backgroundColor: rgba(48, 82, 129, .231372549);--lineColor: rgba(76, 170, 244, .4901960784);--lineColorHover: #ccceff;--lineColorActive: #4caaf4;--backgroundColorHumburger: rgba(67, 106, 147, .7215686275);--colorBlock: #02124b;--colorBlockHover: rgba(2, 18, 75, .5490196078);--colorInput: #02124b;--backgroundBlock: rgba(201, 231, 255, .6705882353);--backgroundGlobalColor: rgba(255, 255, 255, 0);--backgroundMobile: rgba(4, 28, 53, .831372549);--debugColor: #c6511b}:root.dark{--backgroundColor: rgba(31, 31, 31, .23);--lineColor: rgba(243, 243, 243, .4901960784);--lineColorHover: #a0a0a0;--lineColorActive: #dedede;--backgroundColorHumburger: rgba(62, 62, 62, .7215686275);--colorBlock: #080808;--colorBlockHover: rgba(8, 8, 8, .5490196078);--colorInput: #ddd;--backgroundBlock: rgba(193, 193, 193, .6705882353);--backgroundGlobalColor: rgba(28, 28, 28, .93);--backgroundMobile: rgba(4, 3, 3, .9215686275);--debugColor: #c6511b}:root.light{--backgroundColor: rgba(49, 49, 49, .231372549);--lineColor: rgba(0, 1, 37, .4901960784);--lineColorHover: #a0a0a0;--lineColorActive: #07002f;--backgroundColorHumburger: rgba(51, 53, 66, .6392156863);--colorBlock: #090929;--colorBlockHover: rgba(199, 198, 198, .5490196078);--colorInput: #090929;--backgroundBlock: #000000;--backgroundGlobalColor: rgba(255, 255, 255, .2509803922);--backgroundMobile: rgba(180, 178, 199, .7490196078);--debugColor: #c6511b} diff --git a/admin/assets/index-Dm1jc4t6.js b/admin/assets/index-Dm1jc4t6.js new file mode 100644 index 000000000..30ba212d3 --- /dev/null +++ b/admin/assets/index-Dm1jc4t6.js @@ -0,0 +1 @@ +import{g as ae}from"./_commonjsHelpers-Cpj98o6Y.js";var Y={},M={},O={};Object.defineProperty(O,"__esModule",{value:!0});O.StateType=O.Types=void 0;var F;(function(i){i.unknown="unknown",i.airCondition="airCondition",i.blind="blind",i.blindButtons="blindButtons",i.button="button",i.buttonSensor="buttonSensor",i.camera="camera",i.chart="chart",i.cie="cie",i.ct="ct",i.dimmer="dimmer",i.door="door",i.fireAlarm="fireAlarm",i.floodAlarm="floodAlarm",i.gate="gate",i.hue="hue",i.humidity="humidity",i.illuminance="illuminance",i.image="image",i.info="info",i.instance="instance",i.light="light",i.location="location",i.locationOne="locationOne",i.lock="lock",i.media="media",i.motion="motion",i.rgb="rgb",i.rgbSingle="rgbSingle",i.rgbwSingle="rgbwSingle",i.slider="slider",i.socket="socket",i.temperature="temperature",i.thermostat="thermostat",i.vacuumCleaner="vacuumCleaner",i.volume="volume",i.volumeGroup="volumeGroup",i.warning="warning",i.weatherCurrent="weatherCurrent",i.weatherForecast="weatherForecast",i.window="window",i.windowTilt="windowTilt"})(F||(O.Types=F={}));var x;(function(i){i.Number="number",i.String="string",i.Boolean="boolean"})(x||(O.StateType=x={}));var b={};Object.defineProperty(b,"__esModule",{value:!0});b.checkEnum=V;b.roleOrEnum=B;b.roleOrEnumLight=le;b.roleOrEnumBlind=ie;b.roleOrEnumGate=ne;b.roleOrEnumWindow=oe;b.roleOrEnumDoor=ue;b.getEnums=se;b.getAllStatesInChannel=de;b.getAllStatesInDevice=fe;b.getObjectsBelowId=te;b.getFunctionEnums=ce;b.getParentId=me;function V(i,r){let l=!1;return i&&i.forEach(a=>{const o=a.lastIndexOf(".");o!==-1&&(a=a.substring(o+1));for(const u in r)if(Object.prototype.hasOwnProperty.call(r,u)&&r[u].find(n=>n.test(a)))return l=!0,!1}),l}function B(i,r,l,a){return i.common.role&&(l!=null&&l.includes(i.common.role))?!0:V(r,a)}const K={en:[/lights?/i,/lamps?/i,/ceilings?/i],de:[/licht(er)?/i,/lampen?/i,/beleuchtung(en)?/i],ru:[/свет/i,/ламп[аы]/i,/торшеры?/,/подсветк[аи]/i,/лампочк[аи]/i,/светильники?/i]},j=["switch.light","dimmer","value.dimmer","level.dimmer","sensor.light","state.light"];function le(i,r){return B(i,r,j,K)}const D={en:[/blinds?/i,/windows?/i,/shutters?/i],de:[/rollladen?/i,/fenstern?/i,/beschattung(en)?/i,/jalousien?/i],ru:[/ставни/i,/рольставни/i,/окна|окно/,/жалюзи/i]},J=["blind","level.blind","value.blind","action.stop","button.stop","button.stop.blind","button.open.blind","button.close.blind","level.tilt","value.tilt","button.tilt.open","button.tilt.close","button.tilt.stop"];function ie(i,r){return B(i,r,J,D)}const X={en:[/gates?/i],de:[/^toren$/i,/^tor$/i],ru:[/ворота/i]},z=["gate","value.gate","switch.gate","action.stop","button.stop"];function ne(i,r){return B(i,r,z,X)}const Q=["window","state.window","sensor.window","value.window"];function oe(i,r){return B(i,r,Q,D)}const Z={en:[/doors?/i,/gates?/i,/wickets?/i,/entry|entries/i],de:[/^türe?/i,/^tuere?/i,/^tore?$/i,/einfahrt(en)?/i,/pforten?/i],ru:[/двери|дверь/i,/ворота/i,/калитка|калитки/,/въезды?/i,/входы?/i]},ee=["door","state.door","sensor.door"];function ue(i,r){return B(i,r,ee,Z)}function se(){return{door:{roles:ee,words:Z},window:{roles:Q,words:D},blind:{roles:J,words:D},gate:{roles:z,words:X},light:{roles:j,words:K}}}function de(i,r){const l=[],a=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+$`);return i.forEach(o=>a.test(o)&&l.push(o)),l}function fe(i,r){const l=[],a=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+\\.[^.]+$`);return i.forEach(o=>a.test(o)&&l.push(o)),l}function te(i,r){const l=[];r+=".";let a=0,o=i.length-1,u=-1;for(;a<=o;){const n=Math.floor((a+o)/2);i[n]=i.length)return l;for(let n=u;n{r[n].common.members.includes(l)&&u.push(n)}),!u.length&&((o=r[l])===null||o===void 0?void 0:o.type)==="state"){const n=(0,q.getParentId)(l);r[n]&&(r[n].type==="channel"||r[n].type==="device")&&this.enums.forEach(d=>{r[d].common.members.includes(n)&&u.push(d)})}return u.length?u:null}static copyState(r,l){const a=l||JSON.parse(JSON.stringify(r));return a.original=r.original||r,"enums"in r&&r.enums&&(a.enums=r.enums),"role"in r&&r.role&&(a.role=r.role),"channelRole"in r&&r.channelRole&&(a.channelRole=r.channelRole),a}_testOneState(r){var l,a,o,u,n,d;const m=r.objects,w=r.pattern,y=r.state,S=r.channelStates,h=r.usedIds,$=r.usedInCurrentDevice,E=r.ignoreIndicators,A=r.ignoreEnums,_=r.sortedKeys;let c=r.result,C=!1;for(const T of S)if(!(y.name==="COVER"&&(c!=null&&c.states.find(p=>p.id&&p.name==="COVER")))){if(y.indicator&&E){const s=T.split(".").pop()||"";if(s&&E.includes(s))continue}if((y.indicator||!$.includes(T)&&(y.notSingle||!h.includes(T)))&&this._applyPattern(m,T,y,A,_)){if(c||(c=JSON.parse(JSON.stringify(I.patterns[w])),r.result=c,c==null||c.states.forEach((p,s)=>g.copyState(I.patterns[w].states[s],p))),c.states.find(({id:p})=>p===T))C=!0;else for(const p of c.states)if(p.name===y.name){if(p.id){let s;r.favorId&&(T===r.favorId?s=!0:p.id===r.favorId&&(s=!1));const v=(o=(a=(l=m[p.id])===null||l===void 0?void 0:l.common)===null||a===void 0?void 0:a.role)!==null&&o!==void 0?o:"",N=(d=(n=(u=m[T])===null||u===void 0?void 0:u.common)===null||n===void 0?void 0:n.role)!==null&&d!==void 0?d:"",P=p.defaultRole;if(P&&s===void 0&&(N===P?s=!0:v===P&&(s=!1)),s===void 0){const L=N.split("."),H=L.length,W=v.split("."),G=W.length;N===""||L[0]==="state"&&W[0]!=="state"?s=!1:L[0]!=="state"&&W[0]==="state"||H>G?s=!0:H1)){for(const p of S)if(p!==T&&(y.indicator||!$.includes(p)&&(y.notSingle||!h.includes(p)))&&this._applyPattern(m,p,y,A,_))if(y.indicator||$.push(p),Array.isArray(y)){const s=g.copyState(y[0]);s.id=p,c.states.push(s)}else{const s=g.copyState(y);s.id=p,c.states.push(s)}}}}return C}static findParentChannelOrDevice(r,l){if(!r[l])return;const a=l.split("."),o=l;if(r[l].type==="state"&&(a.pop(),l=a.join(".")),a.length<=2)return l;const u=r[l];if((u==null?void 0:u.type)==="device")return l;a.pop();const n=a.join("."),d=r[n];if(!d)return u?l:o;if(d.type==="device"||a.length<=2)return n;if(u.type==="channel")return l;a.pop();const m=a.join("."),w=r[m];return!w||w.type!=="device"&&w.type!=="channel"?n:m}static getChannelOrDeviceStates(r,l,a,o=!1){var u;const n=(u=r[l])===null||u===void 0?void 0:u.type;switch(n){case void 0:return[...(0,q.getObjectsBelowId)(a,l)];case"state":case"channel":case"device":case"folder":if(o&&n!=="device"){const d=g.findParentChannelOrDevice(r,l);return d?[...(0,q.getObjectsBelowId)(a,d)]:[l]}return n!=="state"?[...(0,q.getObjectsBelowId)(a,l)]:[l];default:return[l]}}static patternIsAllowed(r,l,a){if(!r)return!1;if(Array.isArray(r.type)){for(let o=0;o{const u=r.indexOf(a),n=r.indexOf(o);if(u===-1||n===-1)return;const d=r.splice(u,1);r.splice(n,0,...d)}),r}_detectNext(r){var l,a,o,u;const{objects:n,id:d,_usedIdsOptional:m=[],ignoreIndicators:w,prioritizedTypes:y,detectParent:S,allowedTypes:h,excludedTypes:$,_keysOptional:E}=r;let{_patternList:A}=r;r._usedIdsOptional=m;const _=g.getChannelOrDeviceStates(n,d,E||[],S);if(!(!((l=n[d])===null||l===void 0)&&l.common)&&!_.length)return null;if(r._checkedPatterns=(a=r._checkedPatterns)!==null&&a!==void 0?a:[],!A){const T=Object.keys(I.patterns).filter(p=>g.patternIsAllowed(I.patterns[p],h,$));A=y?this.sortTypes(T,y):T,r._patternList=A}const c={objects:n,channelStates:_,usedIds:m,ignoreIndicators:w||[],pattern:U.Types.unknown,usedInCurrentDevice:[],state:{},ignoreEnums:!!r.ignoreEnums,sortedKeys:E,favorId:r.detectParent?void 0:d},C=(o=n[d])===null||o===void 0?void 0:o.type;for(const T of A){if(r._checkedPatterns.includes(T))continue;r._checkedPatterns.push(T),delete c.result,c.pattern=T,c.usedInCurrentDevice=[];for(const s of I.patterns[T].states){let v=!1;if(c.state=s,this._testOneState(c)&&(v=!0),s.required&&!v){delete c.result;break}}if(!g.allRequiredStatesFound(c))continue;c.usedInCurrentDevice.forEach(s=>m.push(s));let p;if(C!=="device"){const s=(u=g.findParentChannelOrDevice(n,d))!==null&&u!==void 0?u:d;if(n[s]&&(n[s].type==="channel"||n[s].type==="device")){p=(0,q.getObjectsBelowId)(E,s);for(const v of p)c.result.states.forEach((N,P)=>{!N.id&&(N.indicator||N.searchInParent)&&!N.noDeviceDetection&&this._applyPattern(n,v,N.original,!!r.ignoreEnums,c.sortedKeys)&&c.result&&(c.result.states[P].id=v)})}}if(c.result.states.forEach(s=>g.cleanState(s,c.objects)),r.limitTypesToOneOf){for(const s of r.limitTypesToOneOf)if(s.includes(T))for(const v of s)v===T||r._checkedPatterns.includes(v)||r._checkedPatterns.push(v)}return c.result}return null}detect(r){var l;const{objects:a,id:o,ignoreCache:u,detectAllPossibleDevices:n}=r;let{_keysOptional:d,_usedIdsOptional:m}=r;if(!u&&this.cache[o]){const{allowedTypes:S=[],excludedTypes:h=[]}=r;if(!S.length&&!h.length)return this.cache[o];const $=this.cache[o].filter(({type:E})=>S.includes(E)&&!h.includes(E));if($.length)return $}d?r._keysOptionalSorted||d.sort():(d=Object.keys(a),d.sort(),r._keysOptional=d),m&&!r.detectParent&&(m=[],r._usedIdsOptional=m),r.ignoreEnums===void 0&&((l=r.allowedTypes)===null||l===void 0?void 0:l.length)===1&&(r.ignoreEnums=!0),n&&(r.excludedTypes||(r.excludedTypes=[]),r.excludedTypes.includes(U.Types.info)||r.excludedTypes.push(U.Types.info)),r._checkedPatterns=[];const w=[];let y;for(;y=this._detectNext(r);)w.push(y),r.detectAllPossibleDevices&&(r._usedIdsOptional=[]);return this.cache[o]=w.length?w:null,this.cache[o]}static getPatterns(){const r={};return Object.keys(I.patterns).forEach(l=>{const a=JSON.parse(JSON.stringify(I.patterns[l]));a.states.forEach((o,u)=>{const n=I.patterns[l].states[u];n.role&&(a.states[u].role=n.role.toString()),n.enums&&(a.states[u].enums=!0)}),r[l]=a}),r}};M.ChannelDetector=re;re.getEnums=q.getEnums;(function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.StateType=i.Types=void 0;const r=M;i.default=r.ChannelDetector;var l=O;Object.defineProperty(i,"Types",{enumerable:!0,get:function(){return l.Types}}),Object.defineProperty(i,"StateType",{enumerable:!0,get:function(){return l.StateType}})})(Y);const ye=ae(Y);export{ye as C,Y as t}; diff --git a/admin/assets/index-Dr_ZFwru.css b/admin/assets/index-Dr_ZFwru.css new file mode 100644 index 000000000..3299f06b8 --- /dev/null +++ b/admin/assets/index-Dr_ZFwru.css @@ -0,0 +1 @@ +html{width:100%;height:100%}.Light.visGutter{background:#dadada!important}.Dark.visGutter{background:#1e1e1e!important}body{overflow:hidden;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%}.iobVerticalSplitter .layout-pane-primary{overflow:hidden!important}#root{width:100%;height:100%}#___reactour>div:first-of-type{opacity:.4}.layout-pane-primary{height:100%}.blocklyToolboxDiv{left:0!important;width:180px;top:0!important;height:100%!important}.no-underline:before{border-bottom:0!important}.monaco-aria-container{top:0}.iobVerticalSplitter .layout-pane-primary{overflow:hidden}.monacoCurrentLine{background:#59fd8c}.monacoCurrentLineDark{background:#165b2c}.monacoCurrentFullLine{background:#cbffdc;opacity:.7}.monacoCurrentFullLineDark{background:#0e3b1f;opacity:.7}.monacoBreakPointDark{background:maroon;border-radius:50%;width:16px!important;height:16px!important;margin-left:4px}.monacoBreakPoint{background:#d71a1a;border-radius:50%;width:16px!important;height:16px!important;margin-left:4px}@keyframes _fadeIn_15el3_1{0%{opacity:0}1%{opacity:0}to{opacity:1}}._cardStyle_15el3_12{cursor:pointer;position:relative;min-width:200px;width:calc(100% - 72px);height:fit-content;min-height:70px;display:flex;padding:10px;margin:23px 12px 4px;align-items:center;background:var(--backgroundBlock);border-radius:4px;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}._nameCard_15el3_28{margin-top:0;font-size:19px;color:var(--colorBlock);font-weight:500}._cardStyleActive_15el3_35{width:300px;z-index:100}._iconThemCard_15el3_40{width:40px!important;height:40px!important;margin-left:5px}._iconThemCard_15el3_40 *{color:var(--colorBlock)!important}._iconThemCardSelectable_15el3_49{cursor:pointer}._iconHelp_15el3_53{color:var(--colorBlock)!important;position:absolute!important;top:0;right:5px}._inputCard_15el3_60{margin-top:10px!important}._blockName_15el3_64{margin-left:10px;width:100%;display:flex;flex-direction:column;position:relative}._controlMenu_15el3_72{display:flex;position:absolute;right:-31px;width:30px;height:100%;transition:opacity .5s}._closeBtn_15el3_81{width:20px;height:20px;border-radius:20px;position:relative;z-index:1;margin:5px auto;cursor:pointer}._closeBtn_15el3_81:before{content:"+";color:#f7060684;position:absolute;z-index:2;transform:rotate(45deg);font-size:30px;line-height:1;top:-6px;left:2px;transition:all .3s cubic-bezier(.77,0,.2,.85)}._closeBtn_15el3_81:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background:#994e9e7d;z-index:1;transition:all .3s cubic-bezier(.77,0,.2,.85);transform:scale(.01)}._closeBtn_15el3_81:hover:after{transform:scale(1)}._closeBtn_15el3_81:hover:before{transform:scale(.8) rotate(45deg);color:#fff}._controlMenuTop_15el3_123{display:flex;position:absolute;left:0;width:100%;overflow:hidden;transition:opacity .5s,height .5s,top .5s}._debugInfo_15el3_132{font-size:12px;font-style:italic;color:var(--debugColor);position:absolute;display:flex;opacity:0;animation:_fadeIn_15el3_1 .3s ease-out}._tagCard_15el3_142{text-align:center;color:var(--lineColorActive);min-width:100px;padding:2px 2px 0;height:22px;background:var(--backgroundColorHumburger);border-radius:5px 5px 0 0;position:relative;margin-left:auto;margin-right:8px;cursor:pointer;border-top:1px solid var(--lineColor);border-left:1px solid var(--lineColor);border-right:1px solid var(--lineColor);font-size:12px}._displayFlex_15el3_161{display:flex;align-items:center}._blockMarginTop_15el3_166,._nameBlock_15el3_167{margin-top:7px}._frontText_15el3_171{margin-right:7px;min-width:80px;display:inline-table}._backText_15el3_177{margin-left:7px}._iconTag_15el3_181{font-size:40px;color:var(--colorBlock);display:flex;align-items:center;min-width:40px;margin-bottom:10px;margin-left:12px}._displayItalic_15el3_191{font-style:italic;font-size:11px;margin-top:0}._root_1dr6a_1{color:var(--colorBlock)!important;border-color:var(--colorBlock)!important}._root_1dr6a_1:hover{border-color:var(--colorBlockHover)!important;color:var(--colorBlockHover)!important;background-color:inherit!important}._square_1dr6a_11{min-width:auto!important;padding:6px 16px!important}._icon_1dr6a_16{width:24px;height:24px}._root_1ucda_1 *{color:var(--colorBlock)!important}._root_19roy_1{background:var(--backgroundColorHumburger);border-radius:5px;margin-top:0!important;margin-bottom:0!important}._root_19roy_1 *{color:var(--colorInput)!important}._root_19roy_1 [class*=MuiInputLabel-shrink]{color:var(--colorBlock)!important}._root_19roy_1 [class*=MuiInput-underline] :after{border-bottom-color:var(--lineColor)!important}._root_19roy_1:hover [class*=MuiOutlinedInput-notchedOutline],._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline],._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline]:hover,._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline] [class*=Mui-focused],._root_19roy_1 [class*=MuiOutlinedInput-notchedOutline] [class*=Mui-disabled]{border-color:var(--lineColor)!important}._modalContentWrapper_587ci_1{margin:20px 0;padding:0 35px;overflow-x:hidden;min-width:320px}._modalButtonBlock_587ci_8{display:flex;justify-content:flex-end;margin-top:20px;flex-flow:wrap;border-top:1px solid var(--lineColorActive);border-color:var(--lineColorActive);background:var(--backgroundColorHumburger);border-radius:3px}._modalButtonBlock_587ci_8 button{color:var(--lineColorActive)!important;flex:1}._modalButtonBlockTwo_587ci_23{justify-content:space-around;flex-flow:wrap-reverse;position:sticky;bottom:0}._modalButtonBlockTwo_587ci_23 button{margin:5px}._modalWrapper_587ci_33 [class*="MuiPaper-root MuiDialog-paper MuiPaper-elevation24 MuiDialog-paperScrollPaper MuiDialog-paperWidthXl MuiPaper-elevation24 MuiPaper-rounded"]{background-color:#f6f6f6}._modalDialog_587ci_40{min-width:400px}._close_587ci_44{position:absolute;right:-14px;top:-16px;width:32px;height:32px;opacity:.9;cursor:pointer;transition:all .6s ease}._close_587ci_44:hover{transform:rotate(90deg)}._close_587ci_44:before{position:absolute;left:15px;content:"";height:33px;width:4px;background-color:#ff4f4f;transform:rotate(45deg)}._close_587ci_44:after{position:absolute;left:15px;content:"";height:33px;width:4px;background-color:#ff4f4f;transform:rotate(-45deg)}@media screen and (max-width: 460px){._modalContentWrapper_587ci_1{min-width:auto}}._root_15mo1_1{margin-top:0!important;margin-bottom:0!important;max-width:440px}._root_15mo1_1 *,._root_15mo1_1 [class*=MuiInputLabel-shrink]{color:var(--colorBlock)!important}._root_15mo1_1 [class*=MuiInput-underline]:after{border-bottom-color:var(--lineColor)!important}._root_15mo1_1 [class*=MuiInput-underline]:before{border-bottom-color:var(--lineColor)!important}._root_15mo1_1 [class*=MuiInput-underline]:hover:before{border-bottom-color:var(--lineColor)!important}._root_1gt4d_1{color:var(--lineColorActive)!important;height:8px!important}._root_1gt4d_1 [class*=MuiSlider-rail],._root_1gt4d_1 [class*=MuiSlider-track]{height:8px!important;border-radius:4px}._root_1gt4d_1 [class*=MuiSlider-valueLabel]{left:calc(-50% + 4px)}._root_1gt4d_1 [class*=MuiSlider-thumb]{height:24px;width:24px;background-color:var(--colorBlock);border:2px solid currentColor;margin-top:-8px;margin-left:-12px}._root_1gt4d_1 [class*=MuiSlider-thumb]:focus,._root_1gt4d_1 [class*=MuiSlider-thumb]:hover,._root_1gt4d_1 [class*=MuiSlider-thumb][class*=MuiSlider-active]{box-shadow:inherit!important}._root_1gt4d_1 ._mark_1gt4d_27{background-color:#0000!important}._root_rzul6_1 *{color:var(--colorBlock)!important}._root_rzul6_1 [class*=Mui-checked]{color:var(--lineColor)!important}._root_rzul6_1 [class*=Mui-checked]+[class*=MuiSwitch-track]{background-color:var(--lineColor)!important}._root_135pm_1{margin-top:0!important;margin-bottom:0!important}._root_135pm_1 *,._root_135pm_1 [class*=MuiInputLabel-shrink]{color:var(--colorBlock)!important}._root_135pm_1 [class*=MuiInput-underline]:after{border-bottom-color:var(--lineColor)!important}._root_135pm_1 [class*=MuiInput-underline]:before{border-bottom-color:var(--lineColor)!important}._root_135pm_1 [class*=MuiInput-underline]:hover:before{border-bottom-color:var(--lineColor)!important} diff --git a/admin/assets/index-f32XoI0M.js b/admin/assets/index-f32XoI0M.js new file mode 100644 index 000000000..091366600 --- /dev/null +++ b/admin/assets/index-f32XoI0M.js @@ -0,0 +1,5 @@ +import{a as wt,i as zt}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import{R as j,i as s}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{c as O,j as F,P as m}from"./createSvgIcon-DMsh-YeH.js";var it={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Ra=j.createContext&&j.createContext(it),yt=["attr","size","title"];function kt(a,t){if(a==null)return{};var i=Mt(a,t),n,o;if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(a);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(a,n)&&(i[n]=a[n])}return i}function Mt(a,t){if(a==null)return{};var i={};for(var n in a)if(Object.prototype.hasOwnProperty.call(a,n)){if(t.indexOf(n)>=0)continue;i[n]=a[n]}return i}function X(){return X=Object.assign?Object.assign.bind():function(a){for(var t=1;tj.createElement(t.tag,aa({key:i},t.attr),nt(t.child)))}function e(a){return t=>j.createElement(Dt,X({attr:aa({},a.attr)},t),nt(a.child))}function Dt(a){var t=i=>{var{attr:n,size:o,title:c}=a,r=kt(a,yt),d=o||i.size||"1em",u;return i.className&&(u=i.className),a.className&&(u=(u?u+" ":"")+a.className),j.createElement("svg",X({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},i.attr,n,r,{className:u,style:aa(aa({color:a.color||i.color},i.style),a.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),c&&j.createElement("title",null,c),a.children)};return Ra!==void 0?j.createElement(Ra.Consumer,null,i=>t(i)):t(it)}function Fi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"},child:[]}]})(a)}function Li(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z",clipRule:"evenodd"},child:[]},{tag:"path",attr:{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"},child:[]}]})(a)}function Ai(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"},child:[]}]})(a)}function Ei(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12 1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z"},child:[]}]})(a)}function _i(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"},child:[]}]})(a)}function Vi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M21 4H11l-1-3H3c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8l1 3h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 16c-2.76 0-5-2.24-5-5s2.24-5 5-5c1.35 0 2.48.5 3.35 1.3L9.03 8.57c-.38-.36-1.04-.78-2.03-.78-1.74 0-3.15 1.44-3.15 3.21S5.26 14.21 7 14.21c2.01 0 2.84-1.44 2.92-2.41H7v-1.71h4.68c.07.31.12.61.12 1.02C11.8 13.97 9.89 16 7 16zm6.17-5.42h3.7c-.43 1.25-1.11 2.43-2.05 3.47-.31-.35-.6-.72-.86-1.1l-.79-2.37zm8.33 9.92c0 .55-.45 1-1 1H14l2-2.5-1.04-3.1 3.1 3.1.92-.92-3.3-3.25.02-.02c1.13-1.25 1.93-2.69 2.4-4.22H20v-1.3h-4.53V8h-1.29v1.29h-1.44L11.46 5.5h9.04c.55 0 1 .45 1 1v14z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0zm0 0h24v24H0z"},child:[]}]})(a)}function Si(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 0 0-2-2zM11 16l4-4-4-4v3H1v2h10v3z"},child:[]}]})(a)}function Bi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"},child:[]}]})(a)}function Pi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15zM14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"},child:[]}]})(a)}function Ii(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"},child:[]}]})(a)}function qi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3 5 6.99h3V14h2V6.99h3L9 3z"},child:[]}]})(a)}function Ti(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0zm0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"},child:[]}]})(a)}function Ri(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"},child:[]}]})(a)}function $i(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"},child:[]}]})(a)}function Ki(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},child:[]}]})(a)}function Wi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"},child:[]}]})(a)}function Ni(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.54 5.54 13.77 7.3 12 5.54 10.23 7.3 8.46 5.54 12 2zm2.92 10-1.76-1.77L18.46 12l-1.76-1.77 1.76-1.77L22 12zm-10 2.92 1.77-1.76L12 18.46l1.77-1.76 1.77 1.76L12 22zm-2.92-10 1.76 1.77L5.54 12l1.76 1.77-1.76 1.77L2 12z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]}]})(a)}function Ui(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},child:[]}]})(a)}function Gi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M8 5v14l11-7z"},child:[]}]})(a)}function Yi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 10h11v2H3zM3 6h11v2H3zM3 14h7v2H3zM20.59 11.93l-4.25 4.24-2.12-2.12-1.41 1.41L16.34 19 22 13.34z"},child:[]}]})(a)}function Zi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z"},child:[]}]})(a)}function Ji(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M8.4 18.2c.38.5.6 1.12.6 1.8 0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3c.44 0 .85.09 1.23.26l1.41-1.77a4.504 4.504 0 0 1-1.09-3.69l-2.03-.68A2.997 2.997 0 0 1 0 9.5c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .07 0 .14-.01.21l2.03.68a4.468 4.468 0 0 1 3.22-2.32V5.91A3.018 3.018 0 0 1 9 3c0-1.66 1.34-3 3-3s3 1.34 3 3c0 1.4-.96 2.57-2.25 2.91v2.16c1.4.23 2.58 1.11 3.22 2.32L18 9.71V9.5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-1.06 0-1.98-.55-2.52-1.37l-2.03.68a4.49 4.49 0 0 1-1.09 3.69l1.41 1.77c.38-.18.79-.27 1.23-.27 1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.68.22-1.3.6-1.8l-1.41-1.77c-1.35.75-3.01.76-4.37 0L8.4 18.2z"},child:[]}]})(a)}function Qi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"},child:[]}]})(a)}function Xi(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"},child:[]}]})(a)}function an(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M17 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"},child:[]}]})(a)}function tn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z"},child:[]}]})(a)}function nn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17 6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z"},child:[]}]})(a)}function en(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(a)}function on(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3.27 5 2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.55 5.27 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z"},child:[]}]})(a)}function pn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.56 8.94 7.62 0 6.21 1.41l2.38 2.38-5.15 5.15a1.49 1.49 0 0 0 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10 10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5zM2 20h20v4H2v-4z"},child:[]}]})(a)}function cn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15 16v1.26l-6-3v-3.17L11.7 8H16V2h-6v4.9L7.3 10H3v6h5l7 3.5V22h6v-6z"},child:[]}]})(a)}function ln(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z"},child:[]}]})(a)}function rn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"},child:[]}]})(a)}function dn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"},child:[]}]})(a)}function sn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m17 16-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z"},child:[]}]})(a)}function mn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"},child:[]}]})(a)}function vn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"},child:[]}]})(a)}function un(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10a2.5 2.5 0 0 0 2.5-2.5c0-.61-.23-1.2-.64-1.67a.528.528 0 0 1-.13-.33c0-.28.22-.5.5-.5H16c3.31 0 6-2.69 6-6 0-4.96-4.49-9-10-9zm5.5 11c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm-3-4c-.83 0-1.5-.67-1.5-1.5S13.67 6 14.5 6s1.5.67 1.5 1.5S15.33 9 14.5 9zM5 11.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5S7.33 13 6.5 13 5 12.33 5 11.5zm6-4c0 .83-.67 1.5-1.5 1.5S8 8.33 8 7.5 8.67 6 9.5 6s1.5.67 1.5 1.5z"},child:[]}]})(a)}function fn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z"},child:[]}]})(a)}function hn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"},child:[]}]})(a)}function xn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"},child:[]}]})(a)}function gn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"},child:[]}]})(a)}function bn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"},child:[]}]})(a)}function wn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"},child:[]}]})(a)}function zn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"},child:[]}]})(a)}function yn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"},child:[]}]})(a)}function kn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"},child:[]}]})(a)}function Mn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"},child:[]}]})(a)}function jn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"},child:[]}]})(a)}function Hn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z"},child:[]}]})(a)}function Cn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z"},child:[]}]})(a)}function Dn(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"19",r:"2"},child:[]},{tag:"path",attr:{d:"M10 3h4v12h-4z"},child:[]}]})(a)}function On(a){return e({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(a)}const{loadShare:Ot}=zt,{initPromise:Ft}=wt,Lt=Ft.then(a=>Ot("@mui/material",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),At=await Lt.then(a=>a());var Fn=At;function Ln(a){return e({attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"},child:[]}]})(a)}function An(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"},child:[]}]})(a)}function En(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"},child:[]}]})(a)}function _n(a){return e({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"},child:[]}]})(a)}function Vn(a){return e({attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"},child:[]}]})(a)}function Sn(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"},child:[]}]})(a)}function Bn(a){return e({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"},child:[]}]})(a)}function Pn(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"},child:[]}]})(a)}function In(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"},child:[]}]})(a)}function qn(a){return e({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"},child:[]}]})(a)}function Tn(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"},child:[]}]})(a)}function Rn(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"},child:[]}]})(a)}function $n(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"},child:[]}]})(a)}function Kn(a){return e({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"},child:[]}]})(a)}function Wn(a){return e({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"},child:[]}]})(a)}function Nn(a){return e({attr:{viewBox:"0 0 416 512"},child:[{tag:"path",attr:{d:"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"},child:[]}]})(a)}function Un(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"},child:[]}]})(a)}function Gn(a){return e({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"},child:[]}]})(a)}function Yn(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"},child:[]}]})(a)}function Zn(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"},child:[]}]})(a)}function Jn(a){return e({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"},child:[]}]})(a)}function Qn(a){return e({attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"},child:[]}]})(a)}function Xn(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"},child:[]}]})(a)}function ae(a){return e({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"},child:[]}]})(a)}function te(a){return e({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"},child:[]}]})(a)}function ie(a){return e({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"},child:[]}]})(a)}const ne=O(F.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z"}),"Cancel"),ee=O(F.jsx("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check"),oe=O(F.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear"),pe=O(F.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),ce=O(F.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}),"Delete"),le=O(F.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 17h-2v-2h2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25"}),"Help"),re=O(F.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"}),"Language");var Ka=function(){return Ka=Object.assign||function(t){for(var i,n=1,o=arguments.length;n0?o:`./${a.name}`;return typeof n.path!="string"&&Wa(n,"path",c),Wa(n,"relativePath",c),n}function _t(a){const{name:t}=a;if(t&&t.lastIndexOf(".")!==-1&&!a.type){const n=t.split(".").pop().toLowerCase(),o=Et.get(n);o&&Object.defineProperty(a,"type",{value:o,writable:!1,configurable:!1,enumerable:!0})}return a}function Wa(a,t,i){Object.defineProperty(a,t,{value:i,writable:!1,configurable:!1,enumerable:!0})}const Vt=[".DS_Store","Thumbs.db"];function St(a){return L(this,void 0,void 0,function*(){return ta(a)&&Bt(a.dataTransfer)?Tt(a.dataTransfer,a.type):Pt(a)?It(a):Array.isArray(a)&&a.every(t=>"getFile"in t&&typeof t.getFile=="function")?qt(a):[]})}function Bt(a){return ta(a)}function Pt(a){return ta(a)&&ta(a.target)}function ta(a){return typeof a=="object"&&a!==null}function It(a){return wa(a.target.files).map(t=>S(t))}function qt(a){return L(this,void 0,void 0,function*(){return(yield Promise.all(a.map(i=>i.getFile()))).map(i=>S(i))})}function Tt(a,t){return L(this,void 0,void 0,function*(){if(a.items){const i=wa(a.items).filter(o=>o.kind==="file");if(t!=="drop")return i;const n=yield Promise.all(i.map(Rt));return Na(et(n))}return Na(wa(a.files).map(i=>S(i)))})}function Na(a){return a.filter(t=>Vt.indexOf(t.name)===-1)}function wa(a){if(a===null)return[];const t=[];for(let i=0;i[...t,...Array.isArray(i)?et(i):[i]],[])}function Ua(a,t){return L(this,void 0,void 0,function*(){var i;if(globalThis.isSecureContext&&typeof a.getAsFileSystemHandle=="function"){const c=yield a.getAsFileSystemHandle();if(c===null)throw new Error(`${a} is not a File`);if(c!==void 0){const r=yield c.getFile();return r.handle=c,S(r)}}const n=a.getAsFile();if(!n)throw new Error(`${a} is not a File`);return S(n,(i=t==null?void 0:t.fullPath)!==null&&i!==void 0?i:void 0)})}function $t(a){return L(this,void 0,void 0,function*(){return a.isDirectory?ot(a):Kt(a)})}function ot(a){const t=a.createReader();return new Promise((i,n)=>{const o=[];function c(){t.readEntries(r=>L(this,void 0,void 0,function*(){if(r.length){const d=Promise.all(r.map($t));o.push(d),c()}else try{const d=yield Promise.all(o);i(d)}catch(d){n(d)}}),r=>{n(r)})}c()})}function Kt(a){return L(this,void 0,void 0,function*(){return new Promise((t,i)=>{a.file(n=>{const o=S(n,a.fullPath);t(o)},n=>{i(n)})})})}var ga=function(a,t){if(a&&t){var i=Array.isArray(t)?t:t.split(",");if(i.length===0)return!0;var n=a.name||"",o=(a.type||"").toLowerCase(),c=o.replace(/\/.*$/,"");return i.some(function(r){var d=r.trim().toLowerCase();return d.charAt(0)==="."?n.toLowerCase().endsWith(d):d.endsWith("/*")?c===d.replace(/\/.*$/,""):o===d})}return!0};function Ga(a){return Ut(a)||Nt(a)||ct(a)||Wt()}function Wt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nt(a){if(typeof Symbol<"u"&&a[Symbol.iterator]!=null||a["@@iterator"]!=null)return Array.from(a)}function Ut(a){if(Array.isArray(a))return za(a)}function Ya(a,t){var i=Object.keys(a);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(a);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable})),i.push.apply(i,n)}return i}function Za(a){for(var t=1;ta.length)&&(t=a.length);for(var i=0,n=new Array(t);i0&&arguments[0]!==void 0?arguments[0]:"",i=t.split(","),n=i.length>1?"one of ".concat(i.join(", ")):i[0];return{code:Qt,message:"File type must be ".concat(n)}},Ja=function(t){return{code:Xt,message:"File is larger than ".concat(t," ").concat(t===1?"byte":"bytes")}},Qa=function(t){return{code:ai,message:"File is smaller than ".concat(t," ").concat(t===1?"byte":"bytes")}},ni={code:ti,message:"Too many files"};function lt(a,t){var i=a.type==="application/x-moz-file"||Jt(a,t);return[i,i?null:ii(t)]}function rt(a,t,i){if(D(a.size))if(D(t)&&D(i)){if(a.size>i)return[!1,Ja(i)];if(a.sizei)return[!1,Ja(i)]}return[!0,null]}function D(a){return a!=null}function ei(a){var t=a.files,i=a.accept,n=a.minSize,o=a.maxSize,c=a.multiple,r=a.maxFiles,d=a.validator;return!c&&t.length>1||c&&r>=1&&t.length>r?!1:t.every(function(u){var k=lt(u,i),g=K(k,1),M=g[0],B=rt(u,n,o),P=K(B,1),I=P[0],q=d?d(u):null;return M&&I&&!q})}function ia(a){return typeof a.isPropagationStopped=="function"?a.isPropagationStopped():typeof a.cancelBubble<"u"?a.cancelBubble:!1}function Q(a){return a.dataTransfer?Array.prototype.some.call(a.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!a.target&&!!a.target.files}function Xa(a){a.preventDefault()}function oi(a){return a.indexOf("MSIE")!==-1||a.indexOf("Trident/")!==-1}function pi(a){return a.indexOf("Edge/")!==-1}function ci(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return oi(a)||pi(a)}function y(){for(var a=arguments.length,t=new Array(a),i=0;i1?o-1:0),r=1;ra.length)&&(t=a.length);for(var i=0,n=new Array(t);i=0)&&Object.prototype.propertyIsEnumerable.call(a,n)&&(i[n]=a[n])}return i}function Mi(a,t){if(a==null)return{};var i={},n=Object.keys(a),o,c;for(c=0;c=0)&&(i[o]=a[o]);return i}var ja=s.forwardRef(function(a,t){var i=a.children,n=na(a,vi),o=ji(n),c=o.open,r=na(o,ui);return s.useImperativeHandle(t,function(){return{open:c}},[c]),j.createElement(s.Fragment,null,i(v(v({},r),{},{open:c})))});ja.displayName="Dropzone";var vt={disabled:!1,getFilesFromEvent:St,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1,autoFocus:!1};ja.defaultProps=vt;ja.propTypes={children:m.func,accept:m.objectOf(m.arrayOf(m.string)),multiple:m.bool,preventDropOnDocument:m.bool,noClick:m.bool,noKeyboard:m.bool,noDrag:m.bool,noDragEventsBubbling:m.bool,minSize:m.number,maxSize:m.number,maxFiles:m.number,disabled:m.bool,getFilesFromEvent:m.func,onFileDialogCancel:m.func,onFileDialogOpen:m.func,useFsAccessApi:m.bool,autoFocus:m.bool,onDragEnter:m.func,onDragLeave:m.func,onDragOver:m.func,onDrop:m.func,onDropAccepted:m.func,onDropRejected:m.func,onError:m.func,validator:m.func};var Ma={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,acceptedFiles:[],fileRejections:[]};function ji(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=v(v({},vt),a),i=t.accept,n=t.disabled,o=t.getFilesFromEvent,c=t.maxSize,r=t.minSize,d=t.multiple,u=t.maxFiles,k=t.onDragEnter,g=t.onDragLeave,M=t.onDragOver,B=t.onDrop,P=t.onDropAccepted,I=t.onDropRejected,q=t.onFileDialogCancel,ea=t.onFileDialogOpen,Ha=t.useFsAccessApi,Ca=t.autoFocus,oa=t.preventDropOnDocument,Da=t.noClick,pa=t.noKeyboard,Oa=t.noDrag,H=t.noDragEventsBubbling,ca=t.onError,T=t.validator,R=s.useMemo(function(){return di(i)},[i]),Fa=s.useMemo(function(){return ri(i)},[i]),la=s.useMemo(function(){return typeof ea=="function"?ea:tt},[ea]),W=s.useMemo(function(){return typeof q=="function"?q:tt},[q]),x=s.useRef(null),z=s.useRef(null),ut=s.useReducer(Hi,Ma),La=ba(ut,2),ra=La[0],b=La[1],ft=ra.isFocused,Aa=ra.isFileDialogActive,N=s.useRef(typeof window<"u"&&window.isSecureContext&&Ha&&li()),Ea=function(){!N.current&&Aa&&setTimeout(function(){if(z.current){var l=z.current.files;l.length||(b({type:"closeDialog"}),W())}},300)};s.useEffect(function(){return window.addEventListener("focus",Ea,!1),function(){window.removeEventListener("focus",Ea,!1)}},[z,Aa,W,N]);var A=s.useRef([]),_a=function(l){x.current&&x.current.contains(l.target)||(l.preventDefault(),A.current=[])};s.useEffect(function(){return oa&&(document.addEventListener("dragover",Xa,!1),document.addEventListener("drop",_a,!1)),function(){oa&&(document.removeEventListener("dragover",Xa),document.removeEventListener("drop",_a))}},[x,oa]),s.useEffect(function(){return!n&&Ca&&x.current&&x.current.focus(),function(){}},[x,Ca,n]);var C=s.useCallback(function(p){ca?ca(p):console.error(p)},[ca]),Va=s.useCallback(function(p){p.preventDefault(),p.persist(),Z(p),A.current=[].concat(xi(A.current),[p.target]),Q(p)&&Promise.resolve(o(p)).then(function(l){if(!(ia(p)&&!H)){var f=l.length,h=f>0&&ei({files:l,accept:R,minSize:r,maxSize:c,multiple:d,maxFiles:u,validator:T}),w=f>0&&!h;b({isDragAccept:h,isDragReject:w,isDragActive:!0,type:"setDraggedFiles"}),k&&k(p)}}).catch(function(l){return C(l)})},[o,k,C,H,R,r,c,d,u,T]),Sa=s.useCallback(function(p){p.preventDefault(),p.persist(),Z(p);var l=Q(p);if(l&&p.dataTransfer)try{p.dataTransfer.dropEffect="copy"}catch{}return l&&M&&M(p),!1},[M,H]),Ba=s.useCallback(function(p){p.preventDefault(),p.persist(),Z(p);var l=A.current.filter(function(h){return x.current&&x.current.contains(h)}),f=l.indexOf(p.target);f!==-1&&l.splice(f,1),A.current=l,!(l.length>0)&&(b({type:"setDraggedFiles",isDragActive:!1,isDragAccept:!1,isDragReject:!1}),Q(p)&&g&&g(p))},[x,g,H]),U=s.useCallback(function(p,l){var f=[],h=[];p.forEach(function(w){var $=lt(w,R),V=ba($,2),sa=V[0],ma=V[1],va=rt(w,r,c),J=ba(va,2),ua=J[0],fa=J[1],ha=T?T(w):null;if(sa&&ua&&!ha)f.push(w);else{var xa=[ma,fa];ha&&(xa=xa.concat(ha)),h.push({file:w,errors:xa.filter(function(bt){return bt})})}}),(!d&&f.length>1||d&&u>=1&&f.length>u)&&(f.forEach(function(w){h.push({file:w,errors:[ni]})}),f.splice(0)),b({acceptedFiles:f,fileRejections:h,isDragReject:h.length>0,type:"setFiles"}),B&&B(f,h,l),h.length>0&&I&&I(h,l),f.length>0&&P&&P(f,l)},[b,d,R,r,c,u,B,P,I,T]),G=s.useCallback(function(p){p.preventDefault(),p.persist(),Z(p),A.current=[],Q(p)&&Promise.resolve(o(p)).then(function(l){ia(p)&&!H||U(l,p)}).catch(function(l){return C(l)}),b({type:"reset"})},[o,U,C,H]),E=s.useCallback(function(){if(N.current){b({type:"openDialog"}),la();var p={multiple:d,types:Fa};window.showOpenFilePicker(p).then(function(l){return o(l)}).then(function(l){U(l,null),b({type:"closeDialog"})}).catch(function(l){si(l)?(W(l),b({type:"closeDialog"})):mi(l)?(N.current=!1,z.current?(z.current.value=null,z.current.click()):C(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided."))):C(l)});return}z.current&&(b({type:"openDialog"}),la(),z.current.value=null,z.current.click())},[b,la,W,Ha,U,C,Fa,d]),Pa=s.useCallback(function(p){!x.current||!x.current.isEqualNode(p.target)||(p.key===" "||p.key==="Enter"||p.keyCode===32||p.keyCode===13)&&(p.preventDefault(),E())},[x,E]),Ia=s.useCallback(function(){b({type:"focus"})},[]),qa=s.useCallback(function(){b({type:"blur"})},[]),Ta=s.useCallback(function(){Da||(ci()?setTimeout(E,0):E())},[Da,E]),_=function(l){return n?null:l},da=function(l){return pa?null:_(l)},Y=function(l){return Oa?null:_(l)},Z=function(l){H&&l.stopPropagation()},ht=s.useMemo(function(){return function(){var p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},l=p.refKey,f=l===void 0?"ref":l,h=p.role,w=p.onKeyDown,$=p.onFocus,V=p.onBlur,sa=p.onClick,ma=p.onDragEnter,va=p.onDragOver,J=p.onDragLeave,ua=p.onDrop,fa=na(p,fi);return v(v(ka({onKeyDown:da(y(w,Pa)),onFocus:da(y($,Ia)),onBlur:da(y(V,qa)),onClick:_(y(sa,Ta)),onDragEnter:Y(y(ma,Va)),onDragOver:Y(y(va,Sa)),onDragLeave:Y(y(J,Ba)),onDrop:Y(y(ua,G)),role:typeof h=="string"&&h!==""?h:"presentation"},f,x),!n&&!pa?{tabIndex:0}:{}),fa)}},[x,Pa,Ia,qa,Ta,Va,Sa,Ba,G,pa,Oa,n]),xt=s.useCallback(function(p){p.stopPropagation()},[]),gt=s.useMemo(function(){return function(){var p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},l=p.refKey,f=l===void 0?"ref":l,h=p.onChange,w=p.onClick,$=na(p,hi),V=ka({accept:R,multiple:d,type:"file",style:{border:0,clip:"rect(0, 0, 0, 0)",clipPath:"inset(50%)",height:"1px",margin:"0 -1px -1px 0",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap"},onChange:_(y(h,G)),onClick:_(y(w,xt)),tabIndex:-1},f,z);return v(v({},V),$)}},[z,i,d,G,n]);return v(v({},ra),{},{isFocused:ft&&!n,getRootProps:ht,getInputProps:gt,rootRef:x,inputRef:z,open:_(E)})}function Hi(a,t){switch(t.type){case"focus":return v(v({},a),{},{isFocused:!0});case"blur":return v(v({},a),{},{isFocused:!1});case"openDialog":return v(v({},Ma),{},{isFileDialogActive:!0});case"closeDialog":return v(v({},a),{},{isFileDialogActive:!1});case"setDraggedFiles":return v(v({},a),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case"setFiles":return v(v({},a),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections,isDragReject:t.isDragReject});case"reset":return v({},Ma);default:return a}}function tt(){}export{Ni as $,Zi as A,Yi as B,ee as C,en as D,jn as E,qn as F,an as G,wn as H,ne as I,Ai as J,In as K,An as L,Ui as M,mn as N,Ln as O,Li as P,ja as Q,dn as R,re as S,le as T,zn as U,Ri as V,hn as W,kn as X,ji as Y,e as Z,Ka as _,ce as a,Ji as a0,cn as a1,sn as a2,Wi as a3,te as a4,Pi as a5,ae as a6,Qn as a7,Un as a8,pn as a9,Vi as aA,Gn as aa,On as ab,Yn as ac,Wn as ad,Kn as ae,$n as af,ie as ag,Rn as ah,Sn as ai,Zn as aj,Nn as ak,nn as al,$i as am,tn as an,Vn as ao,Jn as ap,Xn as aq,_n as ar,En as as,Bi as at,fn as au,Ki as av,Dn as aw,gn as ax,xn as ay,bn as az,oe as b,pe as c,Gi as d,_i as e,Si as f,Tn as g,Bn as h,Fn as i,Pn as j,un as k,Xi as l,Fi as m,on as n,yn as o,Mn as p,Qi as q,rn as r,Ii as s,qi as t,vn as u,Cn as v,Hn as w,ln as x,Ei as y,Ti as z}; diff --git a/admin/assets/index-hex25_NL.js b/admin/assets/index-hex25_NL.js new file mode 100644 index 000000000..ffc53495e --- /dev/null +++ b/admin/assets/index-hex25_NL.js @@ -0,0 +1,1294 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CyP9QRCj.js","./createSvgIcon-DMsh-YeH.js","./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","./_commonjsHelpers-Cpj98o6Y.js","./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","./index-f32XoI0M.js","./inheritsLoose-DgfqekV3.js","./preload-helper-Dp1pzeXC.js","./index-DUBaHZ92.css","./index-BeXkxxIT.js","./ScriptEditorVanillaMonaco-CZnuN4bN.js","./ScriptEditor-DCULXCiS.js","./Save-BSBgRX7g.js","./OpenAiDialog-CZs8bTbV.js","./index-Dm1jc4t6.js"])))=>i.map(i=>d[i]); +import{i as Jp,a as DT}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import{j as p,c as Gt,g as R_,r as O_,_ as Xp,i as dy,P as ee}from"./createSvgIcon-DMsh-YeH.js";import{i as M_,y as AT,_ as RT,a as OT,m as MT,S as hy,T as py}from"./inheritsLoose-DgfqekV3.js";import{R as X,i as V}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as y,C as di,I as lo,a as NT,b as LT,c as BT,M as zl,d as qp,e as vp,f as N_,F as PT,g as FT,h as Vl,j as Zp,k as jT,l as L_,m as wr,n as zT,o as Cr,p as UT,q as Cg,r as HT,s as WT,t as GT,u as VT,v as KT,w as YT,x as JT,y as XT,z as qT,_ as ZT,A as QT,B as gy,D as ek,E as tk,G as my,H as $c,J as sk,K as ok,L as ik,N as nk,O as rk,P as ak,Q as B_,R as P_,S as lk,T as ck,U as uk,V as dk,W as hk,X as pk}from"./index-f32XoI0M.js";import{g as hi,c as nn}from"./_commonjsHelpers-Cpj98o6Y.js";import{_ as mn}from"./preload-helper-Dp1pzeXC.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const u of l)if(u.type==="childList")for(const d of u.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&r(d)}).observe(document,{childList:!0,subtree:!0});function i(l){const u={};return l.integrity&&(u.integrity=l.integrity),l.referrerPolicy&&(u.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?u.credentials="include":l.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function r(l){if(l.ep)return;l.ep=!0;const u=i(l);fetch(l.href,u)}})();var F_,fy=M_;F_=fy.createRoot,fy.hydrateRoot;var j_={exports:{}},nt={};/** @license React v17.0.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var bc=60103,vc=60106,Nr=60107,Lr=60108,Br=60114,Pr=60109,Fr=60110,jr=60112,zr=60113,Tg=60120,Ur=60115,Hr=60116,z_=60121,U_=60122,H_=60117,W_=60129,G_=60131;if(typeof Symbol=="function"&&Symbol.for){var It=Symbol.for;bc=It("react.element"),vc=It("react.portal"),Nr=It("react.fragment"),Lr=It("react.strict_mode"),Br=It("react.profiler"),Pr=It("react.provider"),Fr=It("react.context"),jr=It("react.forward_ref"),zr=It("react.suspense"),Tg=It("react.suspense_list"),Ur=It("react.memo"),Hr=It("react.lazy"),z_=It("react.block"),U_=It("react.server.block"),H_=It("react.fundamental"),W_=It("react.debug_trace_mode"),G_=It("react.legacy_hidden")}function Cs(a){if(typeof a=="object"&&a!==null){var s=a.$$typeof;switch(s){case bc:switch(a=a.type,a){case Nr:case Br:case Lr:case zr:case Tg:return a;default:switch(a=a&&a.$$typeof,a){case Fr:case jr:case Hr:case Ur:case Pr:return a;default:return s}}case vc:return s}}}var gk=Pr,mk=bc,fk=jr,$k=Nr,bk=Hr,vk=Ur,yk=vc,_k=Br,wk=Lr,Ck=zr;nt.ContextConsumer=Fr;nt.ContextProvider=gk;nt.Element=mk;nt.ForwardRef=fk;nt.Fragment=$k;nt.Lazy=bk;nt.Memo=vk;nt.Portal=yk;nt.Profiler=_k;nt.StrictMode=wk;nt.Suspense=Ck;nt.isAsyncMode=function(){return!1};nt.isConcurrentMode=function(){return!1};nt.isContextConsumer=function(a){return Cs(a)===Fr};nt.isContextProvider=function(a){return Cs(a)===Pr};nt.isElement=function(a){return typeof a=="object"&&a!==null&&a.$$typeof===bc};nt.isForwardRef=function(a){return Cs(a)===jr};nt.isFragment=function(a){return Cs(a)===Nr};nt.isLazy=function(a){return Cs(a)===Hr};nt.isMemo=function(a){return Cs(a)===Ur};nt.isPortal=function(a){return Cs(a)===vc};nt.isProfiler=function(a){return Cs(a)===Br};nt.isStrictMode=function(a){return Cs(a)===Lr};nt.isSuspense=function(a){return Cs(a)===zr};nt.isValidElementType=function(a){return typeof a=="string"||typeof a=="function"||a===Nr||a===Br||a===W_||a===Lr||a===zr||a===Tg||a===G_||typeof a=="object"&&a!==null&&(a.$$typeof===Hr||a.$$typeof===Ur||a.$$typeof===Pr||a.$$typeof===Fr||a.$$typeof===jr||a.$$typeof===H_||a.$$typeof===z_||a[0]===U_)};nt.typeOf=Cs;j_.exports=nt;var Tk=j_.exports;function Kl(a,s){const i=getComputedStyle(s);if(!i)return;let r=a===ut.Horizontal?s.clientWidth:s.clientHeight;return r!==0?(a===ut.Horizontal?r-=parseFloat(i.paddingLeft)+parseFloat(i.paddingRight):r-=parseFloat(i.paddingTop)+parseFloat(i.paddingBottom),r):void 0}/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */function Al(a,s,i=[],r={condition:!0}){const{condition:l}=r,u=function(d,g){var m={};for(var f in d)Object.prototype.hasOwnProperty.call(d,f)&&g.indexOf(f)<0&&(m[f]=d[f]);if(d!=null&&typeof Object.getOwnPropertySymbols=="function"){var v=0;for(f=Object.getOwnPropertySymbols(d);v(l&&window.addEventListener(a,s,u),()=>{l&&window.removeEventListener(a,s)}),[a,s,l,...i])}(function(a,s){s===void 0&&(s={});var i=s.insertAt;if(typeof document<"u"){var r=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css",i==="top"&&r.firstChild?r.insertBefore(l,r.firstChild):r.appendChild(l),l.styleSheet?l.styleSheet.cssText=a:l.appendChild(document.createTextNode(a))}})(`/* === Main Container === */ +.__dbk__container { + height: 100%; + width: 100%; + + display: flex; + overflow: hidden; +} + +.__dbk__container.Horizontal { + flex-direction: row; +} + +.__dbk__container.Vertical { + flex-direction: column; +} +/* ====== */ + +/* === Wrapper for each child element === */ +.__dbk__child-wrapper { + height: 100%; + width: 100%; +} +/* ====== */ + +/* === Gutter === */ +.__dbk__gutter { + display: flex; + align-items: center; + justify-content: center; +} +/* .__dbk__gutter > div { + background: red; +} */ +.__dbk__gutter.Horizontal { + height: 100%; + padding: 0 2px; + flex-direction: column; +} +.__dbk__gutter.Horizontal:hover { + cursor: col-resize; +} + +.__dbk__gutter.Vertical { + width: 100%; + padding: 2px 0; + flex-direction: row; +} +.__dbk__gutter.Vertical:hover { + cursor: row-resize; +} + +.__dbk__gutter.Light { + background: #EDF0EF; +} +.__dbk__gutter.Light:hover > .__dbk__dragger { + background: #76747B; +} + +.__dbk__gutter.Dark { + background: #020203; +} +.__dbk__gutter.Dark:hover > .__dbk__dragger { + background: #9995A3; +} +/* ====== */ + +/* === Gutter's Dragger === */ +.__dbk__dragger { + border-radius: 2px; +} + +.__dbk__dragger.Horizontal { + width: 4px; + height: 24px; +} + +.__dbk__dragger.Vertical { + width: 24px; + height: 4px; +} + +.__dbk__dragger.Light { + background: #A6ACB5; +} + +.__dbk__dragger.Dark { + background: #434252; +} +/* ====== */`);const kk=X.forwardRef(({className:a,theme:s,draggerClassName:i,direction:r=ut.Vertical,onDragging:l},u)=>{const d=`__dbk__gutter ${r} ${a||s}`,g=`__dbk__dragger ${r} ${i||s}`;return p.jsx("div",Object.assign({className:d,ref:u,dir:r,onMouseDown:l,onTouchStart:Ul?l:void 0},{children:p.jsx("div",{className:g},void 0)}),void 0)});var us;function Qp(a,s,i){let r,l;return s?(r=a/2,l=a):i?(r=a,l=a/2):(r=a,l=a),{aGutterSize:r,bGutterSize:l}}function Sk(a,s){switch(s.type){case us.SetIsReadyToCompute:return Object.assign(Object.assign({},a),{isReady:s.payload.isReady});case us.CreatePairs:{const{direction:i,children:r,gutters:l}=s.payload,u=r[0].parentNode;if(!u)throw new Error("Cannot create pairs - parent is undefined.");const d=Kl(i,u);if(d===void 0)throw new Error(`Cannot create pairs - parent has undefined or zero size: ${d}.`);const g=[];return r.forEach((m,f)=>{if(f>0){const v=r[f-1],w=r[f],_=l[f-1],S=i===ut.Horizontal?v.getBoundingClientRect().left:v.getBoundingClientRect().top,k=i===ut.Horizontal?w.getBoundingClientRect().right:w.getBoundingClientRect().bottom,C=i===ut.Horizontal?v.getBoundingClientRect().width+_.getBoundingClientRect().width+w.getBoundingClientRect().width:v.getBoundingClientRect().height+_.getBoundingClientRect().height+w.getBoundingClientRect().height,E=i===ut.Horizontal?_.getBoundingClientRect().width:_.getBoundingClientRect().height,A={idx:f-1,a:v,b:w,gutter:_,parent:u,start:S,end:k,size:C,gutterSize:E,aSizePct:100/r.length,bSizePct:100/r.length};g.push(A)}}),Object.assign(Object.assign({},a),{pairs:g})}case us.StartDragging:{const{gutterIdx:i}=s.payload;return Object.assign(Object.assign({},a),{isDragging:!0,draggingIdx:i})}case us.StopDragging:return Object.assign(Object.assign({},a),{isDragging:!1});case us.CalculateSizes:{const{direction:i,gutterIdx:r}=s.payload,l=a.pairs[r],u=Kl(i,l.parent);if(!u)throw new Error("Cannot calculate sizes - 'pair.parent' has undefined or zero size.");const d=l.gutter[i===ut.Horizontal?"clientWidth":"clientHeight"],g=r===0,m=r===a.pairs.length-1,{aGutterSize:f,bGutterSize:v}=Qp(d,g,m);let w,_,S,k,C;return i===ut.Horizontal?(w=l.a.getBoundingClientRect().left,_=l.b.getBoundingClientRect().right,k=(l.a.getBoundingClientRect().width+f)/u*100,C=(l.b.getBoundingClientRect().width+v)/u*100,S=l.a.getBoundingClientRect().width+f+v+l.b.getBoundingClientRect().width):(w=l.a.getBoundingClientRect().top,_=l.b.getBoundingClientRect().bottom,k=(l.a.getBoundingClientRect().height+f)/u*100,C=(l.b.getBoundingClientRect().height+v)/u*100,S=l.a.getBoundingClientRect().height+f+v+l.b.getBoundingClientRect().height),a.pairs[r]=Object.assign(Object.assign({},l),{start:w,end:_,size:S,aSizePct:k,bSizePct:C,gutterSize:d}),Object.assign({},a)}default:return a}}function V_(a,s=0,i=[]){return V.Children.toArray(a).reduce((r,l,u)=>(Tk.isFragment(l)?r.push.apply(r,V_(l.props.children,s+1,i.concat(l.key||u))):V.isValidElement(l)?r.push(V.cloneElement(l,{key:i.concat(String(l.key)).join(".")})):typeof l!="string"&&typeof l!="number"||r.push(l),r),[])}(function(a){a[a.SetIsReadyToCompute=0]="SetIsReadyToCompute",a[a.CreatePairs=1]="CreatePairs",a[a.CalculateSizes=2]="CalculateSizes",a[a.StartDragging=3]="StartDragging",a[a.StopDragging=4]="StopDragging"})(us||(us={}));const $y=a=>"changedTouches"in a;var ut,eg;(function(a){a.Horizontal="Horizontal",a.Vertical="Vertical"})(ut||(ut={})),function(a){a.Light="Light",a.Dark="Dark"}(eg||(eg={}));const Ul=typeof window<"u"&&"ontouchstart"in window;function yp(a){return a===ut.Horizontal?"col-resize":"row-resize"}const Ek={isReady:!1,isDragging:!1,pairs:[]};function by({direction:a=ut.Horizontal,minWidths:s=[],minHeights:i=[],initialSizes:r,gutterTheme:l=eg.Dark,gutterClassName:u,draggerClassName:d,children:g,onResizeStarted:m,onResizeFinished:f,classes:v=[]}){const w=V_(g),[_,S]=V.useReducer(Sk,Ek),k=V.useRef(null),C=V.useRef([]),E=V.useRef([]);C.current=[],E.current=[];const A=X.useCallback(ce=>{S({type:us.SetIsReadyToCompute,payload:{isReady:ce}})},[]),R=X.useCallback((ce,de)=>{S({type:us.StartDragging,payload:{gutterIdx:de}});const J=_.pairs[de];m==null||m(J.idx),J.a.style.userSelect="none",J.b.style.userSelect="none",J.gutter.style.cursor=yp(ce),J.parent.style.cursor=yp(ce),document.body.style.cursor=yp(ce)},[_.pairs]),O=X.useCallback(()=>{S({type:us.StopDragging});const ce=[];for(let J=0;J<_.pairs.length;J++){const we=_.pairs[J],me=Kl(a,we.parent);if(me===void 0)throw new Error("Cannot call the 'onResizeFinished' callback - parentSize is undefined");if(we.gutterSize===void 0)throw new Error("Cannot call 'onResizeFinished' callback - gutterSize is undefined");const Fe=J===0,Y=J===_.pairs.length-1,et=we.a.getBoundingClientRect()[a===ut.Horizontal?"width":"height"],{aGutterSize:q,bGutterSize:oe}=Qp(we.gutterSize,Fe,Y),F=(et+q)/me*100;if(ce.push(F),Y){const H=(we.b.getBoundingClientRect()[a===ut.Horizontal?"width":"height"]+oe)/me*100;ce.push(H)}}if(_.draggingIdx===void 0)throw new Error("Could not reset cursor and user-select because 'state.draggingIdx' is undefined");const de=_.pairs[_.draggingIdx];f==null||f(de.idx,ce),de.a.style.userSelect="",de.b.style.userSelect="",de.gutter.style.cursor="",de.parent.style.cursor="",document.body.style.cursor=""},[_.draggingIdx,_.pairs,a]),Z=X.useCallback((ce,de)=>{S({type:us.CalculateSizes,payload:{direction:ce,gutterIdx:de}})},[]),ae=X.useCallback((ce,de,J)=>{S({type:us.CreatePairs,payload:{direction:ce,children:de,gutters:J}})},[]),se=X.useCallback((ce,de,J,we)=>{const me=de[0].parentNode;if(!me)throw new Error("Cannot set initial sizes - parent is undefined");if(Kl(ce,me)===void 0)throw new Error("Cannot set initial sizes - parent has undefined size");de.forEach((Fe,Y)=>{const et=Y===0,q=Y===de.length-1;let oe,F=0;de.length>1&&(F=J[q?Y-1:Y].getBoundingClientRect()[ce===ut.Horizontal?"width":"height"],F=et||q?F/2:F),oe=we&&Y{if(_.draggingIdx===void 0)throw new Error("Cannot adjust size - 'draggingIdx' is undefined");const J=_.pairs[_.draggingIdx];if(J.size===void 0)throw new Error("Cannot adjust size - 'pair.size' is undefined");if(J.gutterSize===void 0)throw new Error("Cannot adjust size - 'pair.gutterSize' is undefined");const we=J.aSizePct+J.bSizePct,me=de/J.size*we,Fe=we-de/J.size*we,Y=_.draggingIdx===0,et=_.draggingIdx===_.pairs.length-1,{aGutterSize:q,bGutterSize:oe}=Qp(J.gutterSize,Y,et),F=`calc(${me}% - ${q}px)`,H=`calc(${Fe}% - ${oe}px)`;ce===ut.Horizontal?(J.a.style.width=F,J.b.style.width=H):(J.a.style.height=F,J.b.style.height=H)},[_.draggingIdx,_.pairs,a]),K=X.useCallback((ce,de,J)=>{if(!_.isDragging)return;if(_.draggingIdx===void 0)throw new Error("Cannot drag - 'draggingIdx' is undefined");const we=_.pairs[_.draggingIdx];if(we.start===void 0)throw new Error("Cannot drag - 'pair.start' is undefined");if(we.size===void 0)throw new Error("Cannot drag - 'pair.size' is undefined");if(we.gutterSize===void 0)throw new Error("Cannot drag - 'pair.gutterSize' is undefined");let me=function(et,q){const oe=$y(q)?q.changedTouches[0]:q;return et===ut.Horizontal?oe.clientX:oe.clientY}(de,ce)-we.start,Fe=16,Y=16;J.length>_.draggingIdx&&(Fe=J[_.draggingIdx]),J.length>=_.draggingIdx+1&&(Y=J[_.draggingIdx+1]),me=we.size-(we.gutterSize+Y)&&(me=we.size-(we.gutterSize+Y)),ge(de,me)},[_.isDragging,_.draggingIdx,_.pairs,ge]),je=()=>{if(_.isDragging){if(_.draggingIdx===void 0)throw new Error("Cannot calculate sizes after dragging = 'state.draggingIdx' is undefined");Z(a,_.draggingIdx),O()}},Me=ce=>{_.isDragging&&($y(ce)&&ce.preventDefault(),K(ce,a,a===ut.Horizontal?s:i))};function qe(ce,de){if(!ce.current)throw new Error("Can't add element to ref object - ref isn't initialized");de&&!ce.current.includes(de)&&ce.current.push(de)}return Al("mouseup",je,[_.isDragging,O]),Al("mousemove",Me,[a,_.isDragging,K,s,i]),Al("touchend",je,[_.isDragging,O],{condition:Ul}),Al("touchmove",Me,[a,_.isDragging,K,s,i],{condition:Ul,passive:!Ul}),V.useEffect(function(){if(!k.current)return;const ce=k.current.parentElement;if(!ce)return;const de=new ResizeObserver(()=>{const J=getComputedStyle(ce),we=a===ut.Horizontal?ce.clientWidth:ce.clientHeight;A(!!J&&!!we)});return de.observe(ce),()=>{de.disconnect()}},[k.current,a]),V.useEffect(function(){if(_.isReady&&(!C.current||C.current[0].offsetParent)){if(!C.current||!E.current)throw new Error("Cannot create pairs - either variable 'childRefs' or 'gutterRefs' is undefined");w.length<=1?se(a,C.current,E.current,r):(se(a,C.current,E.current,r),ae(a,C.current,E.current))}},[g,_.isReady,a,se,ae,r]),p.jsx("div",Object.assign({className:`__dbk__container ${a}`,ref:k},{children:_.isReady&&w.map((ce,de)=>p.jsxs(X.Fragment,{children:[p.jsx("div",Object.assign({ref:J=>qe(C,J),className:"__dbk__child-wrapper "+(deqe(E,J),className:u,theme:l,draggerClassName:d,direction:a,onDragging:()=>{return Z(a,J=de),void R(a,J);var J}},void 0)]},de))}),void 0)}const{loadShare:Ik}=Jp,{initPromise:xk}=DT,Dk=xk.then(a=>Ik("@iobroker/adapter-react-v5",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),Ak=await Dk.then(a=>a());var b=Ak;const K_=V.createContext({dragDropManager:void 0});function Dr(a){"@babel/helpers - typeof";return Dr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},Dr(a)}function Rk(a,s){if(Dr(a)!="object"||!a)return a;var i=a[Symbol.toPrimitive];if(i!==void 0){var r=i.call(a,s);if(Dr(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}function Ok(a){var s=Rk(a,"string");return Dr(s)=="symbol"?s:s+""}function Mk(a,s,i){return(s=Ok(s))in a?Object.defineProperty(a,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[s]=i,a}function rs(a){return"Minified Redux error #"+a+"; visit https://redux.js.org/Errors?code="+a+" for the full message or use the non-minified dev environment for full errors. "}var vy=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),yy=function(){return Math.random().toString(36).substring(7).split("").join(".")},_y={INIT:"@@redux/INIT"+yy(),REPLACE:"@@redux/REPLACE"+yy()};function Nk(a){if(typeof a!="object"||a===null)return!1;for(var s=a;Object.getPrototypeOf(s)!==null;)s=Object.getPrototypeOf(s);return Object.getPrototypeOf(a)===s}function Y_(a,s,i){var r;if(typeof s=="function"&&typeof i=="function"||typeof i=="function"&&typeof arguments[3]=="function")throw new Error(rs(0));if(typeof s=="function"&&typeof i>"u"&&(i=s,s=void 0),typeof i<"u"){if(typeof i!="function")throw new Error(rs(1));return i(Y_)(a,s)}if(typeof a!="function")throw new Error(rs(2));var l=a,u=s,d=[],g=d,m=!1;function f(){g===d&&(g=d.slice())}function v(){if(m)throw new Error(rs(3));return u}function w(C){if(typeof C!="function")throw new Error(rs(4));if(m)throw new Error(rs(5));var E=!0;return f(),g.push(C),function(){if(E){if(m)throw new Error(rs(6));E=!1,f();var R=g.indexOf(C);g.splice(R,1),d=null}}}function _(C){if(!Nk(C))throw new Error(rs(7));if(typeof C.type>"u")throw new Error(rs(8));if(m)throw new Error(rs(9));try{m=!0,u=l(u,C)}finally{m=!1}for(var E=d=g,A=0;Ar&&r[l]?r[l]:i||null,a)}function Pk(a,s){return a.filter(i=>i!==s)}function J_(a){return typeof a=="object"}function Fk(a,s){const i=new Map,r=u=>{i.set(u,i.has(u)?i.get(u)+1:1)};a.forEach(r),s.forEach(r);const l=[];return i.forEach((u,d)=>{u===1&&l.push(d)}),l}function jk(a,s){return a.filter(i=>s.indexOf(i)>-1)}const kg="dnd-core/INIT_COORDS",yc="dnd-core/BEGIN_DRAG",Sg="dnd-core/PUBLISH_DRAG_SOURCE",_c="dnd-core/HOVER",wc="dnd-core/DROP",Cc="dnd-core/END_DRAG";function wy(a,s){return{type:kg,payload:{sourceClientOffset:s||null,clientOffset:a||null}}}const zk={type:kg,payload:{clientOffset:null,sourceClientOffset:null}};function Uk(a){return function(i=[],r={publishSource:!0}){const{publishSource:l=!0,clientOffset:u,getSourceClientOffset:d}=r,g=a.getMonitor(),m=a.getRegistry();a.dispatch(wy(u)),Hk(i,g,m);const f=Vk(i,g);if(f==null){a.dispatch(zk);return}let v=null;if(u){if(!d)throw new Error("getSourceClientOffset must be defined");Wk(d),v=d(f)}a.dispatch(wy(u,v));const _=m.getSource(f).beginDrag(g,f);if(_==null)return;Gk(_),m.pinSource(f);const S=m.getSourceType(f);return{type:yc,payload:{itemType:S,item:_,sourceId:f,clientOffset:u||null,sourceClientOffset:v||null,isSourcePublic:!!l}}}}function Hk(a,s,i){De(!s.isDragging(),"Cannot call beginDrag while dragging."),a.forEach(function(r){De(i.getSource(r),"Expected sourceIds to be registered.")})}function Wk(a){De(typeof a=="function","When clientOffset is provided, getSourceClientOffset must be a function.")}function Gk(a){De(J_(a),"Item must be an object.")}function Vk(a,s){let i=null;for(let r=a.length-1;r>=0;r--)if(s.canDragSource(a[r])){i=a[r];break}return i}function Kk(a,s,i){return s in a?Object.defineProperty(a,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[s]=i,a}function Yk(a){for(var s=1;s{const m=qk(d,g,l,r),f={type:wc,payload:{dropResult:Yk({},i,m)}};a.dispatch(f)})}}function Xk(a){De(a.isDragging(),"Cannot call drop while not dragging."),De(!a.didDrop(),"Cannot call drop twice during one drag operation.")}function qk(a,s,i,r){const l=i.getTarget(a);let u=l?l.drop(r,a):void 0;return Zk(u),typeof u>"u"&&(u=s===0?{}:r.getDropResult()),u}function Zk(a){De(typeof a>"u"||J_(a),"Drop result must either be an object or undefined.")}function Qk(a){const s=a.getTargetIds().filter(a.canDropOnTarget,a);return s.reverse(),s}function eS(a){return function(){const i=a.getMonitor(),r=a.getRegistry();tS(i);const l=i.getSourceId();return l!=null&&(r.getSource(l,!0).endDrag(i,l),r.unpinSource()),{type:Cc}}}function tS(a){De(a.isDragging(),"Cannot call endDrag while not dragging.")}function tg(a,s){return s===null?a===null:Array.isArray(a)?a.some(i=>i===s):a===s}function sS(a){return function(i,{clientOffset:r}={}){oS(i);const l=i.slice(0),u=a.getMonitor(),d=a.getRegistry(),g=u.getItemType();return nS(l,d,g),iS(l,u,d),rS(l,u,d),{type:_c,payload:{targetIds:l,clientOffset:r||null}}}}function oS(a){De(Array.isArray(a),"Expected targetIds to be an array.")}function iS(a,s,i){De(s.isDragging(),"Cannot call hover while not dragging."),De(!s.didDrop(),"Cannot call hover after drop.");for(let r=0;r=0;r--){const l=a[r],u=s.getTargetType(l);tg(u,i)||a.splice(r,1)}}function rS(a,s,i){a.forEach(function(r){i.getTarget(r).hover(s,r)})}function aS(a){return function(){if(a.getMonitor().isDragging())return{type:Sg}}}function lS(a){return{beginDrag:Uk(a),publishDragSource:aS(a),hover:sS(a),drop:Jk(a),endDrag:eS(a)}}class cS{receiveBackend(s){this.backend=s}getMonitor(){return this.monitor}getBackend(){return this.backend}getRegistry(){return this.monitor.registry}getActions(){const s=this,{dispatch:i}=this.store;function r(u){return(...d)=>{const g=u.apply(s,d);typeof g<"u"&&i(g)}}const l=lS(this);return Object.keys(l).reduce((u,d)=>{const g=l[d];return u[d]=r(g),u},{})}dispatch(s){this.store.dispatch(s)}constructor(s,i){this.isSetUp=!1,this.handleRefCountChange=()=>{const r=this.store.getState().refCount>0;this.backend&&(r&&!this.isSetUp?(this.backend.setup(),this.isSetUp=!0):!r&&this.isSetUp&&(this.backend.teardown(),this.isSetUp=!1))},this.store=s,this.monitor=i,s.subscribe(this.handleRefCountChange)}}function uS(a,s){return{x:a.x+s.x,y:a.y+s.y}}function X_(a,s){return{x:a.x-s.x,y:a.y-s.y}}function dS(a){const{clientOffset:s,initialClientOffset:i,initialSourceClientOffset:r}=a;return!s||!i||!r?null:X_(uS(s,r),i)}function hS(a){const{clientOffset:s,initialClientOffset:i}=a;return!s||!i?null:X_(s,i)}const Tr=[],Eg=[];Tr.__IS_NONE__=!0;Eg.__IS_ALL__=!0;function pS(a,s){return a===Tr?!1:a===Eg||typeof s>"u"?!0:jk(s,a).length>0}class gS{subscribeToStateChange(s,i={}){const{handlerIds:r}=i;De(typeof s=="function","listener must be a function."),De(typeof r>"u"||Array.isArray(r),"handlerIds, when specified, must be an array of strings.");let l=this.store.getState().stateId;const u=()=>{const d=this.store.getState(),g=d.stateId;try{g===l||g===l+1&&!pS(d.dirtyHandlerIds,r)||s()}finally{l=g}};return this.store.subscribe(u)}subscribeToOffsetChange(s){De(typeof s=="function","listener must be a function.");let i=this.store.getState().dragOffset;const r=()=>{const l=this.store.getState().dragOffset;l!==i&&(i=l,s())};return this.store.subscribe(r)}canDragSource(s){if(!s)return!1;const i=this.registry.getSource(s);return De(i,`Expected to find a valid source. sourceId=${s}`),this.isDragging()?!1:i.canDrag(this,s)}canDropOnTarget(s){if(!s)return!1;const i=this.registry.getTarget(s);if(De(i,`Expected to find a valid target. targetId=${s}`),!this.isDragging()||this.didDrop())return!1;const r=this.registry.getTargetType(s),l=this.getItemType();return tg(r,l)&&i.canDrop(this,s)}isDragging(){return!!this.getItemType()}isDraggingSource(s){if(!s)return!1;const i=this.registry.getSource(s,!0);if(De(i,`Expected to find a valid source. sourceId=${s}`),!this.isDragging()||!this.isSourcePublic())return!1;const r=this.registry.getSourceType(s),l=this.getItemType();return r!==l?!1:i.isDragging(this,s)}isOverTarget(s,i={shallow:!1}){if(!s)return!1;const{shallow:r}=i;if(!this.isDragging())return!1;const l=this.registry.getTargetType(s),u=this.getItemType();if(u&&!tg(l,u))return!1;const d=this.getTargetIds();if(!d.length)return!1;const g=d.indexOf(s);return r?g===d.length-1:g>-1}getItemType(){return this.store.getState().dragOperation.itemType}getItem(){return this.store.getState().dragOperation.item}getSourceId(){return this.store.getState().dragOperation.sourceId}getTargetIds(){return this.store.getState().dragOperation.targetIds}getDropResult(){return this.store.getState().dragOperation.dropResult}didDrop(){return this.store.getState().dragOperation.didDrop}isSourcePublic(){return!!this.store.getState().dragOperation.isSourcePublic}getInitialClientOffset(){return this.store.getState().dragOffset.initialClientOffset}getInitialSourceClientOffset(){return this.store.getState().dragOffset.initialSourceClientOffset}getClientOffset(){return this.store.getState().dragOffset.clientOffset}getSourceClientOffset(){return dS(this.store.getState().dragOffset)}getDifferenceFromInitialOffset(){return hS(this.store.getState().dragOffset)}constructor(s,i){this.store=s,this.registry=i}}const Cy=typeof global<"u"?global:self,q_=Cy.MutationObserver||Cy.WebKitMutationObserver;function Z_(a){return function(){const i=setTimeout(l,0),r=setInterval(l,50);function l(){clearTimeout(i),clearInterval(r),a()}}}function mS(a){let s=1;const i=new q_(a),r=document.createTextNode("");return i.observe(r,{characterData:!0}),function(){s=-s,r.data=s}}const fS=typeof q_=="function"?mS:Z_;class $S{enqueueTask(s){const{queue:i,requestFlush:r}=this;i.length||(r(),this.flushing=!0),i[i.length]=s}constructor(){this.queue=[],this.pendingErrors=[],this.flushing=!1,this.index=0,this.capacity=1024,this.flush=()=>{const{queue:s}=this;for(;this.indexthis.capacity){for(let r=0,l=s.length-this.index;r{this.pendingErrors.push(s),this.requestErrorThrow()},this.requestFlush=fS(this.flush),this.requestErrorThrow=Z_(()=>{if(this.pendingErrors.length)throw this.pendingErrors.shift()})}}class bS{call(){try{this.task&&this.task()}catch(s){this.onError(s)}finally{this.task=null,this.release(this)}}constructor(s,i){this.onError=s,this.release=i,this.task=null}}class vS{create(s){const i=this.freeTasks,r=i.length?i.pop():new bS(this.onError,l=>i[i.length]=l);return r.task=s,r}constructor(s){this.onError=s,this.freeTasks=[]}}const Q_=new $S,yS=new vS(Q_.registerPendingError);function _S(a){Q_.enqueueTask(yS.create(a))}const Ig="dnd-core/ADD_SOURCE",xg="dnd-core/ADD_TARGET",Dg="dnd-core/REMOVE_SOURCE",Tc="dnd-core/REMOVE_TARGET";function wS(a){return{type:Ig,payload:{sourceId:a}}}function CS(a){return{type:xg,payload:{targetId:a}}}function TS(a){return{type:Dg,payload:{sourceId:a}}}function kS(a){return{type:Tc,payload:{targetId:a}}}function SS(a){De(typeof a.canDrag=="function","Expected canDrag to be a function."),De(typeof a.beginDrag=="function","Expected beginDrag to be a function."),De(typeof a.endDrag=="function","Expected endDrag to be a function.")}function ES(a){De(typeof a.canDrop=="function","Expected canDrop to be a function."),De(typeof a.hover=="function","Expected hover to be a function."),De(typeof a.drop=="function","Expected beginDrag to be a function.")}function sg(a,s){if(s&&Array.isArray(a)){a.forEach(i=>sg(i,!1));return}De(typeof a=="string"||typeof a=="symbol",s?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}var cs;(function(a){a.SOURCE="SOURCE",a.TARGET="TARGET"})(cs||(cs={}));let IS=0;function xS(){return IS++}function DS(a){const s=xS().toString();switch(a){case cs.SOURCE:return`S${s}`;case cs.TARGET:return`T${s}`;default:throw new Error(`Unknown Handler Role: ${a}`)}}function Ty(a){switch(a[0]){case"S":return cs.SOURCE;case"T":return cs.TARGET;default:throw new Error(`Cannot parse handler ID: ${a}`)}}function ky(a,s){const i=a.entries();let r=!1;do{const{done:l,value:[,u]}=i.next();if(u===s)return!0;r=!!l}while(!r);return!1}class AS{addSource(s,i){sg(s),SS(i);const r=this.addHandler(cs.SOURCE,s,i);return this.store.dispatch(wS(r)),r}addTarget(s,i){sg(s,!0),ES(i);const r=this.addHandler(cs.TARGET,s,i);return this.store.dispatch(CS(r)),r}containsHandler(s){return ky(this.dragSources,s)||ky(this.dropTargets,s)}getSource(s,i=!1){return De(this.isSourceId(s),"Expected a valid source ID."),i&&s===this.pinnedSourceId?this.pinnedSource:this.dragSources.get(s)}getTarget(s){return De(this.isTargetId(s),"Expected a valid target ID."),this.dropTargets.get(s)}getSourceType(s){return De(this.isSourceId(s),"Expected a valid source ID."),this.types.get(s)}getTargetType(s){return De(this.isTargetId(s),"Expected a valid target ID."),this.types.get(s)}isSourceId(s){return Ty(s)===cs.SOURCE}isTargetId(s){return Ty(s)===cs.TARGET}removeSource(s){De(this.getSource(s),"Expected an existing source."),this.store.dispatch(TS(s)),_S(()=>{this.dragSources.delete(s),this.types.delete(s)})}removeTarget(s){De(this.getTarget(s),"Expected an existing target."),this.store.dispatch(kS(s)),this.dropTargets.delete(s),this.types.delete(s)}pinSource(s){const i=this.getSource(s);De(i,"Expected an existing source."),this.pinnedSourceId=s,this.pinnedSource=i}unpinSource(){De(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}addHandler(s,i,r){const l=DS(s);return this.types.set(l,i),s===cs.SOURCE?this.dragSources.set(l,r):s===cs.TARGET&&this.dropTargets.set(l,r),l}constructor(s){this.types=new Map,this.dragSources=new Map,this.dropTargets=new Map,this.pinnedSourceId=null,this.pinnedSource=null,this.store=s}}const RS=(a,s)=>a===s;function OS(a,s){return!a&&!s?!0:!a||!s?!1:a.x===s.x&&a.y===s.y}function MS(a,s,i=RS){if(a.length!==s.length)return!1;for(let r=0;r0||!MS(i,r)))return Tr;const d=r[r.length-1],g=i[i.length-1];return d!==g&&(d&&l.push(d),g&&l.push(g)),l}function LS(a,s,i){return s in a?Object.defineProperty(a,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[s]=i,a}function BS(a){for(var s=1;s=0)&&Object.prototype.propertyIsEnumerable.call(a,r)&&(i[r]=a[r])}return i}function XS(a,s){if(a==null)return{};var i={},r=Object.keys(a),l,u;for(u=0;u=0)&&(i[l]=a[l]);return i}let Ey=0;const Hl=Symbol.for("__REACT_DND_CONTEXT_INSTANCE__");var ew=V.memo(function(s){var{children:i}=s,r=JS(s,["children"]);const[l,u]=qS(r);return V.useEffect(()=>{if(u){const d=tw();return++Ey,()=>{--Ey===0&&(d[Hl]=null)}}},[]),p.jsx(K_.Provider,{value:l,children:i})});function qS(a){if("manager"in a)return[{dragDropManager:a.manager},!1];const s=ZS(a.backend,a.context,a.options,a.debugMode),i=!a.context;return[s,i]}function ZS(a,s=tw(),i,r){const l=s;return l[Hl]||(l[Hl]={dragDropManager:KS(a,s,i,r)}),l[Hl]}function tw(){return typeof global<"u"?global:window}var QS=function a(s,i){if(s===i)return!0;if(s&&i&&typeof s=="object"&&typeof i=="object"){if(s.constructor!==i.constructor)return!1;var r,l,u;if(Array.isArray(s)){if(r=s.length,r!=i.length)return!1;for(l=r;l--!==0;)if(!a(s[l],i[l]))return!1;return!0}if(s.constructor===RegExp)return s.source===i.source&&s.flags===i.flags;if(s.valueOf!==Object.prototype.valueOf)return s.valueOf()===i.valueOf();if(s.toString!==Object.prototype.toString)return s.toString()===i.toString();if(u=Object.keys(s),r=u.length,r!==Object.keys(i).length)return!1;for(l=r;l--!==0;)if(!Object.prototype.hasOwnProperty.call(i,u[l]))return!1;for(l=r;l--!==0;){var d=u[l];if(!a(s[d],i[d]))return!1}return!0}return s!==s&&i!==i};const eE=hi(QS),li=typeof window<"u"?V.useLayoutEffect:V.useEffect;function tE(a,s,i){const[r,l]=V.useState(()=>s(a)),u=V.useCallback(()=>{const d=s(a);eE(r,d)||(l(d),i&&i())},[r,a,i]);return li(u),[r,u]}function sE(a,s,i){const[r,l]=tE(a,s,i);return li(function(){const d=a.getHandlerId();if(d!=null)return a.subscribeToStateChange(l,{handlerIds:[d]})},[a,l]),r}function sw(a,s,i){return sE(s,a||(()=>({})),()=>i.reconnect())}function ow(a,s){const i=[];return typeof a!="function"&&i.push(a),V.useMemo(()=>typeof a=="function"?a():a,i)}function oE(a){return V.useMemo(()=>a.hooks.dragSource(),[a])}function iE(a){return V.useMemo(()=>a.hooks.dragPreview(),[a])}let _p=!1,wp=!1;class nE{receiveHandlerId(s){this.sourceId=s}getHandlerId(){return this.sourceId}canDrag(){De(!_p,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return _p=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{_p=!1}}isDragging(){if(!this.sourceId)return!1;De(!wp,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor");try{return wp=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{wp=!1}}subscribeToStateChange(s,i){return this.internalMonitor.subscribeToStateChange(s,i)}isDraggingSource(s){return this.internalMonitor.isDraggingSource(s)}isOverTarget(s,i){return this.internalMonitor.isOverTarget(s,i)}getTargetIds(){return this.internalMonitor.getTargetIds()}isSourcePublic(){return this.internalMonitor.isSourcePublic()}getSourceId(){return this.internalMonitor.getSourceId()}subscribeToOffsetChange(s){return this.internalMonitor.subscribeToOffsetChange(s)}canDragSource(s){return this.internalMonitor.canDragSource(s)}canDropOnTarget(s){return this.internalMonitor.canDropOnTarget(s)}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(s){this.sourceId=null,this.internalMonitor=s.getMonitor()}}let Cp=!1;class rE{receiveHandlerId(s){this.targetId=s}getHandlerId(){return this.targetId}subscribeToStateChange(s,i){return this.internalMonitor.subscribeToStateChange(s,i)}canDrop(){if(!this.targetId)return!1;De(!Cp,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor");try{return Cp=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{Cp=!1}}isOver(s){return this.targetId?this.internalMonitor.isOverTarget(this.targetId,s):!1}getItemType(){return this.internalMonitor.getItemType()}getItem(){return this.internalMonitor.getItem()}getDropResult(){return this.internalMonitor.getDropResult()}didDrop(){return this.internalMonitor.didDrop()}getInitialClientOffset(){return this.internalMonitor.getInitialClientOffset()}getInitialSourceClientOffset(){return this.internalMonitor.getInitialSourceClientOffset()}getSourceClientOffset(){return this.internalMonitor.getSourceClientOffset()}getClientOffset(){return this.internalMonitor.getClientOffset()}getDifferenceFromInitialOffset(){return this.internalMonitor.getDifferenceFromInitialOffset()}constructor(s){this.targetId=null,this.internalMonitor=s.getMonitor()}}function aE(a,s,i){const r=i.getRegistry(),l=r.addTarget(a,s);return[l,()=>r.removeTarget(l)]}function lE(a,s,i){const r=i.getRegistry(),l=r.addSource(a,s);return[l,()=>r.removeSource(l)]}function og(a,s,i,r){let l;if(l!==void 0)return!!l;if(a===s)return!0;if(typeof a!="object"||!a||typeof s!="object"||!s)return!1;const u=Object.keys(a),d=Object.keys(s);if(u.length!==d.length)return!1;const g=Object.prototype.hasOwnProperty.bind(s);for(let m=0;m, or turn it into a drag source or a drop target itself.`)}function uE(a){return(s=null,i=null)=>{if(!V.isValidElement(s)){const u=s;return a(u,i),u}const r=s;return cE(r),dE(r,i?u=>a(u,i):a)}}function iw(a){const s={};return Object.keys(a).forEach(i=>{const r=a[i];if(i.endsWith("Ref"))s[i]=a[i];else{const l=uE(r);s[i]=()=>l}}),s}function Iy(a,s){typeof a=="function"?a(s):a.current=s}function dE(a,s){const i=a.ref;return De(typeof i!="string","Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a or
+
{I18n.t('Result')}
+
+ {error ? ( +
{error}
+ ) : ( + - {I18n.t('Use generated code')} - - - - - )} - + name="ai" + socket={props.socket} + readOnly + checkJs + code={answer} + isDark={props.themeType === 'dark'} + language={props.language || 'javascript'} + /> + )} +
+ + + + + + + ); }; diff --git a/src/lib/convert.ts b/src/lib/convert.ts index c15e0cdd7..f4b6a1aeb 100644 --- a/src/lib/convert.ts +++ b/src/lib/convert.ts @@ -10,25 +10,26 @@ export function stringify(data: { data: ioBroker.ScriptObject | ioBroker.Channel id = `${id.replace(/\./g, '/').substring('script.js.'.length)}/_dir.json`; result = JSON.stringify(obj, null, 2); } else if (data.data.type === 'script') { + const objScript = obj as ioBroker.ScriptObject; id = `${id.replace(/\./g, '/').substring('script.js.'.length)}.json`; - if ((obj as ioBroker.ScriptObject).common?.source) { - const source = (obj as ioBroker.ScriptObject).common.source; - if ((obj as ioBroker.ScriptObject).common.enabled) { + if (objScript.common?.source) { + const source = objScript.common.source; + if (objScript.common.enabled) { // @ts-expect-error We do not use it - delete (obj as ioBroker.ScriptObject).common.enabled; + delete objScript.common.enabled; } - if ((obj as ioBroker.ScriptObject).common.engine === 'system.adapter.javascript.0') { + if (objScript.common.engine === 'system.adapter.javascript.0') { // @ts-expect-error We do not use it - delete (obj as ioBroker.ScriptObject).common.engine; + delete objScript.common.engine; } - if ((obj as ioBroker.ScriptObject).common.engineType === 'Javascript/js') { + if (objScript.common.engineType === 'Javascript/js') { // @ts-expect-error We do not use it - delete (obj as ioBroker.ScriptObject).common.engineType; + delete objScript.common.engineType; } // @ts-expect-error We do not use it - delete (obj as ioBroker.ScriptObject).common.name; + delete objScript.common.name; // @ts-expect-error We do not use it - delete (obj as ioBroker.ScriptObject).common.source; + delete objScript.common.source; if (JSON.stringify(obj.common) !== '{}') { result = `/* -- do not edit following lines - START --\n${JSON.stringify(obj.common, null, 2)}\n-- do not edit previous lines - END --*/\n${source}`; } else { diff --git a/src/main.ts b/src/main.ts index 886bfb7c5..a8c396921 100644 --- a/src/main.ts +++ b/src/main.ts @@ -789,11 +789,11 @@ class JavaScript extends Adapter { this.config.maxSetStatePerMinute = parseInt(this.config.maxSetStatePerMinute as unknown as string, 10) || 1000; this.config.maxTriggersPerScript = parseInt(this.config.maxTriggersPerScript as unknown as string, 10) || 100; - if (this.supportsFeature && this.supportsFeature('PLUGINS')) { + if (this.supportsFeature?.('PLUGINS')) { const sentryInstance: InstanceType = this.getPluginInstance('sentry') as InstanceType< typeof SentryPlugin >; - if (sentryInstance) { + if (sentryInstance?.getSentryObject) { const Sentry = sentryInstance.getSentryObject(); if (Sentry) { const scope = Sentry.getCurrentScope(); From d57d4be79f2d4cfff5ed49cb59277147e5003eb3 Mon Sep 17 00:00:00 2001 From: GermanBluefox Date: Tue, 17 Jun 2025 14:33:12 +0300 Subject: [PATCH 2/3] Fixing Sentry --- admin/assets/OpenAiDialog-BN6QnEKv.js | 34 + admin/assets/OpenAiDialog-CZs8bTbV.js | 34 - ...r-DCULXCiS.js => ScriptEditor-2NACU7zq.js} | 2 +- ... => ScriptEditorVanillaMonaco-B14Clvtt.js} | 2 +- .../{index-CyP9QRCj.js => index-BNiWan3F.js} | 2 +- admin/assets/index-Bis-ZPl5.js | 930 ------------------ admin/assets/index-cbk_CvPb.js | 930 ++++++++++++++++++ .../{index-hex25_NL.js => index-dMNZJoGO.js} | 4 +- .../{index-BeXkxxIT.js => index-o6IQE1xm.js} | 2 +- .../{index-3awjKpeb.js => index-BADTG0C3.js} | 138 +-- .../{index-BAaNTm9A.js => index-CEFrj8jA.js} | 70 +- admin/custom/customComponents.js | 4 +- admin/mf-manifest.json | 2 +- admin/remoteEntry.js | 4 +- admin/tab.html | 2 +- build-backend/lib/convert.js | 21 +- build-backend/lib/convert.js.map | 2 +- build-backend/main.js | 9 +- build-backend/main.js.map | 2 +- package.json | 4 +- src-admin/package.json | 8 +- src-editor/package.json | 14 +- src/main.ts | 9 +- 23 files changed, 1114 insertions(+), 1115 deletions(-) create mode 100644 admin/assets/OpenAiDialog-BN6QnEKv.js delete mode 100644 admin/assets/OpenAiDialog-CZs8bTbV.js rename admin/assets/{ScriptEditor-DCULXCiS.js => ScriptEditor-2NACU7zq.js} (94%) rename admin/assets/{ScriptEditorVanillaMonaco-CZnuN4bN.js => ScriptEditorVanillaMonaco-B14Clvtt.js} (99%) rename admin/assets/{index-CyP9QRCj.js => index-BNiWan3F.js} (99%) delete mode 100644 admin/assets/index-Bis-ZPl5.js create mode 100644 admin/assets/index-cbk_CvPb.js rename admin/assets/{index-hex25_NL.js => index-dMNZJoGO.js} (99%) rename admin/assets/{index-BeXkxxIT.js => index-o6IQE1xm.js} (99%) rename admin/custom/assets/{index-3awjKpeb.js => index-BADTG0C3.js} (61%) rename admin/custom/assets/{index-BAaNTm9A.js => index-CEFrj8jA.js} (66%) diff --git a/admin/assets/OpenAiDialog-BN6QnEKv.js b/admin/assets/OpenAiDialog-BN6QnEKv.js new file mode 100644 index 000000000..2121c9cd6 --- /dev/null +++ b/admin/assets/OpenAiDialog-BN6QnEKv.js @@ -0,0 +1,34 @@ +import{c as tr,j as k}from"./createSvgIcon-DMsh-YeH.js";import{i as Z}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as j,c as an,C as nr}from"./index-f32XoI0M.js";import{i as W,h as sr}from"./index-dMNZJoGO.js";import{_ as rr}from"./preload-helper-Dp1pzeXC.js";import{C as ar,t as ir}from"./index-Dm1jc4t6.js";import or from"./ScriptEditorVanillaMonaco-B14Clvtt.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";const cr=tr(k.jsx("path",{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15M14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2"}),"QuestionMark");function R(s,e,t,n,r){if(typeof e=="function"?s!==e||!0:!e.has(s))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(s,t),t}function o(s,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?s!==e||!n:!e.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(s):n?n.value:e.get(s)}let Tn=function(){const{crypto:s}=globalThis;if(s!=null&&s.randomUUID)return Tn=s.randomUUID.bind(s),s.randomUUID();const e=new Uint8Array(1),t=s?()=>s.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^t()&15>>+n/4).toString(16))};function It(s){return typeof s=="object"&&s!==null&&("name"in s&&s.name==="AbortError"||"message"in s&&String(s.message).includes("FetchRequestCanceledException"))}const Rt=s=>{if(s instanceof Error)return s;if(typeof s=="object"&&s!==null){try{if(Object.prototype.toString.call(s)==="[object Error]"){const e=new Error(s.message,s.cause?{cause:s.cause}:{});return s.stack&&(e.stack=s.stack),s.cause&&!e.cause&&(e.cause=s.cause),s.name&&(e.name=s.name),e}}catch{}try{return new Error(JSON.stringify(s))}catch{}}return new Error(s)};class v extends Error{}class J extends v{constructor(e,t,n,r){super(`${J.makeMessage(e,t,n)}`),this.status=e,this.headers=r,this.requestID=r==null?void 0:r.get("x-request-id"),this.error=t;const a=t;this.code=a==null?void 0:a.code,this.param=a==null?void 0:a.param,this.type=a==null?void 0:a.type}static makeMessage(e,t,n){const r=t!=null&&t.message?typeof t.message=="string"?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,n,r){if(!e||!r)return new ut({message:n,cause:Rt(t)});const a=t==null?void 0:t.error;return e===400?new Mn(e,a,n,r):e===401?new Nn(e,a,n,r):e===403?new jn(e,a,n,r):e===404?new Fn(e,a,n,r):e===409?new Ln(e,a,n,r):e===422?new Dn(e,a,n,r):e===429?new Bn(e,a,n,r):e>=500?new Un(e,a,n,r):new J(e,a,n,r)}}class z extends J{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class ut extends J{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}}class Lt extends ut{constructor({message:e}={}){super({message:e??"Request timed out."})}}class Mn extends J{}class Nn extends J{}class jn extends J{}class Fn extends J{}class Ln extends J{}class Dn extends J{}class Bn extends J{}class Un extends J{}class Wn extends v{constructor(){super("Could not parse response content as the length limit was reached")}}class qn extends v{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}const lr=/^[a-z][a-z0-9+.-]*:/i,ur=s=>lr.test(s);let V=s=>(V=Array.isArray,V(s)),on=V;function dr(s){return typeof s!="object"?{}:s??{}}function hr(s){if(!s)return!0;for(const e in s)return!1;return!0}function fr(s,e){return Object.prototype.hasOwnProperty.call(s,e)}function _t(s){return s!=null&&typeof s=="object"&&!Array.isArray(s)}const mr=(s,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new v(`${s} must be an integer`);if(e<0)throw new v(`${s} must be a positive integer`);return e},pr=s=>{try{return JSON.parse(s)}catch{return}},Fe=s=>new Promise(e=>setTimeout(e,s)),ye="5.5.0",gr=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function _r(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}const yr=()=>{var t;const s=_r();if(s==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":ln(Deno.build.os),"X-Stainless-Arch":cn(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:((t=Deno.version)==null?void 0:t.deno)??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(s==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":ln(globalThis.process.platform??"unknown"),"X-Stainless-Arch":cn(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const e=wr();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function wr(){if(typeof navigator>"u"||!navigator)return null;const s=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(const{key:e,pattern:t}of s){const n=t.exec(navigator.userAgent);if(n){const r=n[1]||0,a=n[2]||0,i=n[3]||0;return{browser:e,version:`${r}.${a}.${i}`}}}return null}const cn=s=>s==="x32"?"x32":s==="x86_64"||s==="x64"?"x64":s==="arm"?"arm":s==="aarch64"||s==="arm64"?"arm64":s?`other:${s}`:"unknown",ln=s=>(s=s.toLowerCase(),s.includes("ios")?"iOS":s==="android"?"Android":s==="darwin"?"MacOS":s==="win32"?"Windows":s==="freebsd"?"FreeBSD":s==="openbsd"?"OpenBSD":s==="linux"?"Linux":s?`Other:${s}`:"Unknown");let un;const br=()=>un??(un=yr());function xr(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Jn(...s){const e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...s)}function Xn(s){let e=Symbol.asyncIterator in s?s[Symbol.asyncIterator]():s[Symbol.iterator]();return Jn({start(){},async pull(t){const{done:n,value:r}=await e.next();n?t.close():t.enqueue(r)},async cancel(){var t;await((t=e.return)==null?void 0:t.call(e))}})}function Hn(s){if(s[Symbol.asyncIterator])return s;const e=s.getReader();return{async next(){try{const t=await e.read();return t!=null&&t.done&&e.releaseLock(),t}catch(t){throw e.releaseLock(),t}},async return(){const t=e.cancel();return e.releaseLock(),await t,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Sr(s){var n,r;if(s===null||typeof s!="object")return;if(s[Symbol.asyncIterator]){await((r=(n=s[Symbol.asyncIterator]()).return)==null?void 0:r.call(n));return}const e=s.getReader(),t=e.cancel();e.releaseLock(),await t}const Ar=({headers:s,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)}),Vn="RFC3986",Kn=s=>String(s),dn={RFC1738:s=>String(s).replace(/%20/g,"+"),RFC3986:Kn},Cr="RFC1738";let $t=(s,e)=>($t=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),$t(s,e));const ee=(()=>{const s=[];for(let e=0;e<256;++e)s.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return s})(),yt=1024,vr=(s,e,t,n,r)=>{if(s.length===0)return s;let a=s;if(typeof s=="symbol"?a=Symbol.prototype.toString.call(s):typeof s!="string"&&(a=String(s)),t==="iso-8859-1")return escape(a).replace(/%u[0-9a-f]{4}/gi,function(c){return"%26%23"+parseInt(c.slice(2),16)+"%3B"});let i="";for(let c=0;c=yt?a.slice(c,c+yt):a,d=[];for(let y=0;y=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122||r===Cr&&(u===40||u===41)){d[d.length]=l.charAt(y);continue}if(u<128){d[d.length]=ee[u];continue}if(u<2048){d[d.length]=ee[192|u>>6]+ee[128|u&63];continue}if(u<55296||u>=57344){d[d.length]=ee[224|u>>12]+ee[128|u>>6&63]+ee[128|u&63];continue}y+=1,u=65536+((u&1023)<<10|l.charCodeAt(y)&1023),d[d.length]=ee[240|u>>18]+ee[128|u>>12&63]+ee[128|u>>6&63]+ee[128|u&63]}i+=d.join("")}return i};function Ir(s){return!s||typeof s!="object"?!1:!!(s.constructor&&s.constructor.isBuffer&&s.constructor.isBuffer(s))}function hn(s,e){if(V(s)){const t=[];for(let n=0;n"u"&&(p=0)}if(typeof d=="function"?m=d(e,m):m instanceof Date?m=g==null?void 0:g(m):t==="comma"&&V(m)&&(m=hn(m,function(P){return P instanceof Date?g==null?void 0:g(P):P})),m===null){if(a)return l&&!w?l(e,B.encoder,C,"key",h):e;m=""}if(Rr(m)||Ir(m)){if(l){const P=w?e:l(e,B.encoder,C,"key",h);return[(b==null?void 0:b(P))+"="+(b==null?void 0:b(l(m,B.encoder,C,"value",h)))]}return[(b==null?void 0:b(e))+"="+(b==null?void 0:b(String(m)))]}const O=[];if(typeof m>"u")return O;let I;if(t==="comma"&&V(m))w&&l&&(m=hn(m,l)),I=[{value:m.length>0?m.join(",")||null:void 0}];else if(V(d))I=d;else{const P=Object.keys(m);I=y?P.sort(y):P}const F=c?String(e).replace(/\./g,"%2E"):String(e),x=n&&V(m)&&m.length===1?F+"[]":F;if(r&&V(m)&&m.length===0)return x+"[]";for(let P=0;P"u"?s.encodeDotInKeys?!0:B.allowDots:!!s.allowDots;return{addQueryPrefix:typeof s.addQueryPrefix=="boolean"?s.addQueryPrefix:B.addQueryPrefix,allowDots:i,allowEmptyArrays:typeof s.allowEmptyArrays=="boolean"?!!s.allowEmptyArrays:B.allowEmptyArrays,arrayFormat:a,charset:e,charsetSentinel:typeof s.charsetSentinel=="boolean"?s.charsetSentinel:B.charsetSentinel,commaRoundTrip:!!s.commaRoundTrip,delimiter:typeof s.delimiter>"u"?B.delimiter:s.delimiter,encode:typeof s.encode=="boolean"?s.encode:B.encode,encodeDotInKeys:typeof s.encodeDotInKeys=="boolean"?s.encodeDotInKeys:B.encodeDotInKeys,encoder:typeof s.encoder=="function"?s.encoder:B.encoder,encodeValuesOnly:typeof s.encodeValuesOnly=="boolean"?s.encodeValuesOnly:B.encodeValuesOnly,filter:r,format:t,formatter:n,serializeDate:typeof s.serializeDate=="function"?s.serializeDate:B.serializeDate,skipNulls:typeof s.skipNulls=="boolean"?s.skipNulls:B.skipNulls,sort:typeof s.sort=="function"?s.sort:null,strictNullHandling:typeof s.strictNullHandling=="boolean"?s.strictNullHandling:B.strictNullHandling}}function Or(s,e={}){let t=s;const n=$r(e);let r,a;typeof n.filter=="function"?(a=n.filter,t=a("",t)):V(n.filter)&&(a=n.filter,r=a);const i=[];if(typeof t!="object"||t===null)return"";const c=Gn[n.arrayFormat],l=c==="comma"&&n.commaRoundTrip;r||(r=Object.keys(t)),n.sort&&r.sort(n.sort);const d=new WeakMap;for(let g=0;g0?u+y:""}function kr(s){let e=0;for(const r of s)e+=r.length;const t=new Uint8Array(e);let n=0;for(const r of s)t.set(r,n),n+=r.length;return t}let mn;function Dt(s){let e;return(mn??(e=new globalThis.TextEncoder,mn=e.encode.bind(e)))(s)}let pn;function gn(s){let e;return(pn??(e=new globalThis.TextDecoder,pn=e.decode.bind(e)))(s)}var K,G;class dt{constructor(){K.set(this,void 0),G.set(this,void 0),R(this,K,new Uint8Array),R(this,G,null)}decode(e){if(e==null)return[];const t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?Dt(e):e;R(this,K,kr([o(this,K,"f"),t]));const n=[];let r;for(;(r=Er(o(this,K,"f"),o(this,G,"f")))!=null;){if(r.carriage&&o(this,G,"f")==null){R(this,G,r.index);continue}if(o(this,G,"f")!=null&&(r.index!==o(this,G,"f")+1||r.carriage)){n.push(gn(o(this,K,"f").subarray(0,o(this,G,"f")-1))),R(this,K,o(this,K,"f").subarray(o(this,G,"f"))),R(this,G,null);continue}const a=o(this,G,"f")!==null?r.preceding-1:r.preceding,i=gn(o(this,K,"f").subarray(0,a));n.push(i),R(this,K,o(this,K,"f").subarray(r.index)),R(this,G,null)}return n}flush(){return o(this,K,"f").length?this.decode(` +`):[]}}K=new WeakMap,G=new WeakMap;dt.NEWLINE_CHARS=new Set([` +`,"\r"]);dt.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Er(s,e){for(let r=e??0;r({next:()=>{if(a.length===0){const i=n.next();e.push(i),t.push(i)}return a.shift()}});return[new ne(()=>r(e),this.controller),new ne(()=>r(t),this.controller)]}toReadableStream(){const e=this;let t;return Jn({async start(){t=e[Symbol.asyncIterator]()},async pull(n){try{const{value:r,done:a}=await t.next();if(a)return n.close();const i=Dt(JSON.stringify(r)+` +`);n.enqueue(i)}catch(r){n.error(r)}},async cancel(){var n;await((n=t.return)==null?void 0:n.call(t))}})}}async function*Tr(s,e){if(!s.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new v("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new v("Attempted to iterate over a response with no body");const t=new Nr,n=new dt,r=Hn(s.body);for await(const a of Mr(r))for(const i of n.decode(a)){const c=t.decode(i);c&&(yield c)}for(const a of n.flush()){const i=t.decode(a);i&&(yield i)}}async function*Mr(s){let e=new Uint8Array;for await(const t of s){if(t==null)continue;const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?Dt(t):t;let r=new Uint8Array(e.length+n.length);r.set(e),r.set(n,e.length),e=r;let a;for(;(a=Pr(e))!==-1;)yield e.slice(0,a),e=e.slice(a)}e.length>0&&(yield e)}class Nr{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;const a={event:this.event,data:this.data.join(` +`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],a}if(this.chunks.push(e),e.startsWith(":"))return null;let[t,n,r]=jr(e,":");return r.startsWith(" ")&&(r=r.substring(1)),t==="event"?this.event=r:t==="data"&&this.data.push(r),null}}function jr(s,e){const t=s.indexOf(e);return t!==-1?[s.substring(0,t),e,s.substring(t+e.length)]:[s,"",""]}const st={off:0,error:200,warn:300,info:400,debug:500},_n=(s,e,t)=>{if(s){if(fr(st,s))return s;X(t).warn(`${e} was set to ${JSON.stringify(s)}, expected one of ${JSON.stringify(Object.keys(st))}`)}};function ve(){}function Ue(s,e,t){return!e||st[s]>st[t]?ve:e[s].bind(e)}const Fr={error:ve,warn:ve,info:ve,debug:ve};let yn=new WeakMap;function X(s){const e=s.logger,t=s.logLevel??"off";if(!e)return Fr;const n=yn.get(e);if(n&&n[0]===t)return n[1];const r={error:Ue("error",e,t),warn:Ue("warn",e,t),info:Ue("info",e,t),debug:Ue("debug",e,t)};return yn.set(e,[t,r]),r}const le=s=>(s.options&&(s.options={...s.options},delete s.options.headers),s.headers&&(s.headers=Object.fromEntries((s.headers instanceof Headers?[...s.headers]:Object.entries(s.headers)).map(([e,t])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":t]))),"retryOfRequestLogID"in s&&(s.retryOfRequestLogID&&(s.retryOf=s.retryOfRequestLogID),delete s.retryOfRequestLogID),s);async function Yn(s,e){const{response:t,requestLogID:n,retryOfRequestLogID:r,startTime:a}=e,i=await(async()=>{var u;if(e.options.stream)return X(s).debug("response",t.status,t.url,t.headers,t.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(t,e.controller):ne.fromSSEResponse(t,e.controller);if(t.status===204)return null;if(e.options.__binaryResponse)return t;const c=t.headers.get("content-type"),l=(u=c==null?void 0:c.split(";")[0])==null?void 0:u.trim();if((l==null?void 0:l.includes("application/json"))||(l==null?void 0:l.endsWith("+json"))){const g=await t.json();return Zn(g,t)}return await t.text()})();return X(s).debug(`[${n}] response parsed`,le({retryOfRequestLogID:r,url:t.url,status:t.status,body:i,durationMs:Date.now()-a})),i}function Zn(s,e){return!s||typeof s!="object"||Array.isArray(s)?s:Object.defineProperty(s,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Ie;class ht extends Promise{constructor(e,t,n=Yn){super(r=>{r(null)}),this.responsePromise=t,this.parseResponse=n,Ie.set(this,void 0),R(this,Ie,e)}_thenUnwrap(e){return new ht(o(this,Ie,"f"),this.responsePromise,async(t,n)=>Zn(e(await this.parseResponse(t,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){const[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(o(this,Ie,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}Ie=new WeakMap;var We;class es{constructor(e,t,n,r){We.set(this,void 0),R(this,We,e),this.options=r,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const e=this.nextPageRequestOptions();if(!e)throw new v("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await o(this,We,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(We=new WeakMap,Symbol.asyncIterator)](){for await(const e of this.iterPages())for(const t of e.getPaginatedItems())yield t}}class Lr extends ht{constructor(e,t,n){super(e,t,async(r,a)=>new n(r,a.response,await Yn(r,a),a.options))}async*[Symbol.asyncIterator](){const e=await this;for await(const t of e)yield t}}class ft extends es{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class L extends es{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){var n;const e=this.getPaginatedItems(),t=(n=e[e.length-1])==null?void 0:n.id;return t?{...this.options,query:{...dr(this.options.query),after:t}}:null}}const ts=()=>{var s;if(typeof File>"u"){const{process:e}=globalThis,t=typeof((s=e==null?void 0:e.versions)==null?void 0:s.node)=="string"&&parseInt(e.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(t?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Te(s,e,t){return ts(),new File(s,e??"unknown_file",t)}function Ge(s){return(typeof s=="object"&&s!==null&&("name"in s&&s.name&&String(s.name)||"url"in s&&s.url&&String(s.url)||"filename"in s&&s.filename&&String(s.filename)||"path"in s&&s.path&&String(s.path))||"").split(/[\\/]/).pop()||void 0}const ns=s=>s!=null&&typeof s=="object"&&typeof s[Symbol.asyncIterator]=="function",fe=async(s,e)=>({...s,body:await Br(s.body,e)}),wn=new WeakMap;function Dr(s){const e=typeof s=="function"?s:s.fetch,t=wn.get(e);if(t)return t;const n=(async()=>{try{const r="Response"in e?e.Response:(await e("data:,")).constructor,a=new FormData;return a.toString()!==await new r(a).text()}catch{return!0}})();return wn.set(e,n),n}const Br=async(s,e)=>{if(!await Dr(e))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");const t=new FormData;return await Promise.all(Object.entries(s||{}).map(([n,r])=>Ot(t,n,r))),t},Ur=s=>s instanceof Blob&&"name"in s,Ot=async(s,e,t)=>{if(t!==void 0){if(t==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")s.append(e,String(t));else if(t instanceof Response)s.append(e,Te([await t.blob()],Ge(t)));else if(ns(t))s.append(e,Te([await new Response(Xn(t)).blob()],Ge(t)));else if(Ur(t))s.append(e,t,Ge(t));else if(Array.isArray(t))await Promise.all(t.map(n=>Ot(s,e+"[]",n)));else if(typeof t=="object")await Promise.all(Object.entries(t).map(([n,r])=>Ot(s,`${e}[${n}]`,r)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${t} instead`)}},ss=s=>s!=null&&typeof s=="object"&&typeof s.size=="number"&&typeof s.type=="string"&&typeof s.text=="function"&&typeof s.slice=="function"&&typeof s.arrayBuffer=="function",Wr=s=>s!=null&&typeof s=="object"&&typeof s.name=="string"&&typeof s.lastModified=="number"&&ss(s),qr=s=>s!=null&&typeof s=="object"&&typeof s.url=="string"&&typeof s.blob=="function";async function Jr(s,e,t){if(ts(),s=await s,Wr(s))return s instanceof File?s:Te([await s.arrayBuffer()],s.name);if(qr(s)){const r=await s.blob();return e||(e=new URL(s.url).pathname.split(/[\\/]/).pop()),Te(await kt(r),e,t)}const n=await kt(s);if(e||(e=Ge(s)),!(t!=null&&t.type)){const r=n.find(a=>typeof a=="object"&&"type"in a&&a.type);typeof r=="string"&&(t={...t,type:r})}return Te(n,e,t)}async function kt(s){var t;let e=[];if(typeof s=="string"||ArrayBuffer.isView(s)||s instanceof ArrayBuffer)e.push(s);else if(ss(s))e.push(s instanceof Blob?s:await s.arrayBuffer());else if(ns(s))for await(const n of s)e.push(...await kt(n));else{const n=(t=s==null?void 0:s.constructor)==null?void 0:t.name;throw new Error(`Unexpected data type: ${typeof s}${n?`; constructor: ${n}`:""}${Xr(s)}`)}return e}function Xr(s){return typeof s!="object"||s===null?"":`; props: [${Object.getOwnPropertyNames(s).map(t=>`"${t}"`).join(", ")}]`}class ${constructor(e){this._client=e}}function rs(s){return s.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const Hr=(s=rs)=>function(t,...n){if(t.length===1)return t[0];let r=!1;const a=t.reduce((y,u,g)=>(/[?#]/.test(u)&&(r=!0),y+u+(g===n.length?"":(r?encodeURIComponent:s)(String(n[g])))),""),i=a.split(/[?#]/,1)[0],c=[],l=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;let d;for(;(d=l.exec(i))!==null;)c.push({start:d.index,length:d[0].length});if(c.length>0){let y=0;const u=c.reduce((g,h)=>{const b=" ".repeat(h.start-y),w="^".repeat(h.length);return y=h.start+h.length,g+b+w},"");throw new v(`Path parameters result in path with invalid segments: +${a} +${u}`)}return a},f=Hr(rs);let as=class extends ${list(e,t={},n){return this._client.getAPIList(f`/chat/completions/${e}/messages`,L,{query:t,...n})}};function Vr(s){return typeof s.parse=="function"}const rt=s=>(s==null?void 0:s.role)==="assistant",is=s=>(s==null?void 0:s.role)==="tool";var Et,Qe,ze,Re,$e,Ye,Oe,ae,ke,at,it,we,os;class Bt{constructor(){Et.add(this),this.controller=new AbortController,Qe.set(this,void 0),ze.set(this,()=>{}),Re.set(this,()=>{}),$e.set(this,void 0),Ye.set(this,()=>{}),Oe.set(this,()=>{}),ae.set(this,{}),ke.set(this,!1),at.set(this,!1),it.set(this,!1),we.set(this,!1),R(this,Qe,new Promise((e,t)=>{R(this,ze,e,"f"),R(this,Re,t,"f")})),R(this,$e,new Promise((e,t)=>{R(this,Ye,e,"f"),R(this,Oe,t,"f")})),o(this,Qe,"f").catch(()=>{}),o(this,$e,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},o(this,Et,"m",os).bind(this))},0)}_connected(){this.ended||(o(this,ze,"f").call(this),this._emit("connect"))}get ended(){return o(this,ke,"f")}get errored(){return o(this,at,"f")}get aborted(){return o(this,it,"f")}abort(){this.controller.abort()}on(e,t){return(o(this,ae,"f")[e]||(o(this,ae,"f")[e]=[])).push({listener:t}),this}off(e,t){const n=o(this,ae,"f")[e];if(!n)return this;const r=n.findIndex(a=>a.listener===t);return r>=0&&n.splice(r,1),this}once(e,t){return(o(this,ae,"f")[e]||(o(this,ae,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{R(this,we,!0),e!=="error"&&this.once("error",n),this.once(e,t)})}async done(){R(this,we,!0),await o(this,$e,"f")}_emit(e,...t){if(o(this,ke,"f"))return;e==="end"&&(R(this,ke,!0),o(this,Ye,"f").call(this));const n=o(this,ae,"f")[e];if(n&&(o(this,ae,"f")[e]=n.filter(r=>!r.once),n.forEach(({listener:r})=>r(...t))),e==="abort"){const r=t[0];!o(this,we,"f")&&!(n!=null&&n.length)&&Promise.reject(r),o(this,Re,"f").call(this,r),o(this,Oe,"f").call(this,r),this._emit("end");return}if(e==="error"){const r=t[0];!o(this,we,"f")&&!(n!=null&&n.length)&&Promise.reject(r),o(this,Re,"f").call(this,r),o(this,Oe,"f").call(this,r),this._emit("end")}}_emitFinal(){}}Qe=new WeakMap,ze=new WeakMap,Re=new WeakMap,$e=new WeakMap,Ye=new WeakMap,Oe=new WeakMap,ae=new WeakMap,ke=new WeakMap,at=new WeakMap,it=new WeakMap,we=new WeakMap,Et=new WeakSet,os=function(e){if(R(this,at,!0),e instanceof Error&&e.name==="AbortError"&&(e=new z),e instanceof z)return R(this,it,!0),this._emit("abort",e);if(e instanceof v)return this._emit("error",e);if(e instanceof Error){const t=new v(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new v(String(e)))};function Ut(s){return(s==null?void 0:s.$brand)==="auto-parseable-response-format"}function Le(s){return(s==null?void 0:s.$brand)==="auto-parseable-tool"}function Kr(s,e){return!e||!cs(e)?{...s,choices:s.choices.map(t=>({...t,message:{...t.message,parsed:null,...t.message.tool_calls?{tool_calls:t.message.tool_calls}:void 0}}))}:Wt(s,e)}function Wt(s,e){const t=s.choices.map(n=>{var r;if(n.finish_reason==="length")throw new Wn;if(n.finish_reason==="content_filter")throw new qn;return{...n,message:{...n.message,...n.message.tool_calls?{tool_calls:((r=n.message.tool_calls)==null?void 0:r.map(a=>Qr(e,a)))??void 0}:void 0,parsed:n.message.content&&!n.message.refusal?Gr(e,n.message.content):null}}});return{...s,choices:t}}function Gr(s,e){var t,n;return((t=s.response_format)==null?void 0:t.type)!=="json_schema"?null:((n=s.response_format)==null?void 0:n.type)==="json_schema"?"$parseRaw"in s.response_format?s.response_format.$parseRaw(e):JSON.parse(e):null}function Qr(s,e){var n;const t=(n=s.tools)==null?void 0:n.find(r=>{var a;return((a=r.function)==null?void 0:a.name)===e.function.name});return{...e,function:{...e.function,parsed_arguments:Le(t)?t.$parseRaw(e.function.arguments):t!=null&&t.function.strict?JSON.parse(e.function.arguments):null}}}function zr(s,e){var n;if(!s)return!1;const t=(n=s.tools)==null?void 0:n.find(r=>{var a;return((a=r.function)==null?void 0:a.name)===e.function.name});return Le(t)||(t==null?void 0:t.function.strict)||!1}function cs(s){var e;return Ut(s.response_format)?!0:((e=s.tools)==null?void 0:e.some(t=>Le(t)||t.type==="function"&&t.function.strict===!0))??!1}function Yr(s){for(const e of s??[]){if(e.type!=="function")throw new v(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new v(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var H,Pt,ot,Tt,Mt,Nt,ls,us;const Zr=10;class ds extends Bt{constructor(){super(...arguments),H.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){var n;this._chatCompletions.push(e),this._emit("chatCompletion",e);const t=(n=e.choices[0])==null?void 0:n.message;return t&&this._addMessage(t),e}_addMessage(e,t=!0){if("content"in e||(e.content=null),this.messages.push(e),t){if(this._emit("message",e),is(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(rt(e)&&e.tool_calls)for(const n of e.tool_calls)n.type==="function"&&this._emit("functionToolCall",n.function)}}async finalChatCompletion(){await this.done();const e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new v("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),o(this,H,"m",Pt).call(this)}async finalMessage(){return await this.done(),o(this,H,"m",ot).call(this)}async finalFunctionToolCall(){return await this.done(),o(this,H,"m",Tt).call(this)}async finalFunctionToolCallResult(){return await this.done(),o(this,H,"m",Mt).call(this)}async totalUsage(){return await this.done(),o(this,H,"m",Nt).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);const t=o(this,H,"m",ot).call(this);t&&this._emit("finalMessage",t);const n=o(this,H,"m",Pt).call(this);n&&this._emit("finalContent",n);const r=o(this,H,"m",Tt).call(this);r&&this._emit("finalFunctionToolCall",r);const a=o(this,H,"m",Mt).call(this);a!=null&&this._emit("finalFunctionToolCallResult",a),this._chatCompletions.some(i=>i.usage)&&this._emit("totalUsage",o(this,H,"m",Nt).call(this))}async _createChatCompletion(e,t,n){const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),o(this,H,"m",ls).call(this,t);const a=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Wt(a,t))}async _runChatCompletion(e,t,n){for(const r of t.messages)this._addMessage(r,!1);return await this._createChatCompletion(e,t,n)}async _runTools(e,t,n){var h,b,w;const r="tool",{tool_choice:a="auto",stream:i,...c}=t,l=typeof a!="string"&&((h=a==null?void 0:a.function)==null?void 0:h.name),{maxChatCompletions:d=Zr}=n||{},y=t.tools.map(C=>{if(Le(C)){if(!C.$callback)throw new v("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:C.$callback,name:C.function.name,description:C.function.description||"",parameters:C.function.parameters,parse:C.$parseRaw,strict:!0}}}return C}),u={};for(const C of y)C.type==="function"&&(u[C.function.name||C.function.function.name]=C.function);const g="tools"in t?y.map(C=>C.type==="function"?{type:"function",function:{name:C.function.name||C.function.function.name,parameters:C.function.parameters,description:C.function.description,strict:C.function.strict}}:C):void 0;for(const C of t.messages)this._addMessage(C,!1);for(let C=0;CJSON.stringify(se)).join(", ")}. Please try again`;this._addMessage({role:r,tool_call_id:p,content:M});continue}let F;try{F=Vr(I)?await I.parse(O):O}catch(M){const se=M instanceof Error?M.message:String(M);this._addMessage({role:r,tool_call_id:p,content:se});continue}const x=await I.function(F,this),P=o(this,H,"m",us).call(this,x);if(this._addMessage({role:r,tool_call_id:p,content:P}),l)return}}}}H=new WeakSet,Pt=function(){return o(this,H,"m",ot).call(this).content??null},ot=function(){let e=this.messages.length;for(;e-- >0;){const t=this.messages[e];if(rt(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new v("stream ended without producing a ChatCompletionMessage with role=assistant")},Tt=function(){var e,t;for(let n=this.messages.length-1;n>=0;n--){const r=this.messages[n];if(rt(r)&&((e=r==null?void 0:r.tool_calls)!=null&&e.length))return(t=r.tool_calls.at(-1))==null?void 0:t.function}},Mt=function(){for(let e=this.messages.length-1;e>=0;e--){const t=this.messages[e];if(is(t)&&t.content!=null&&typeof t.content=="string"&&this.messages.some(n=>{var r;return n.role==="assistant"&&((r=n.tool_calls)==null?void 0:r.some(a=>a.type==="function"&&a.id===t.tool_call_id))}))return t.content}},Nt=function(){const e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:t}of this._chatCompletions)t&&(e.completion_tokens+=t.completion_tokens,e.prompt_tokens+=t.prompt_tokens,e.total_tokens+=t.total_tokens);return e},ls=function(e){if(e.n!=null&&e.n>1)throw new v("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},us=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};class qt extends ds{static runTools(e,t,n){const r=new qt,a={...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"runTools"}};return r._run(()=>r._runTools(e,t,a)),r}_addMessage(e,t=!0){super._addMessage(e,t),rt(e)&&e.content&&this._emit("content",e.content)}}const hs=1,fs=2,ms=4,ps=8,gs=16,_s=32,ys=64,ws=128,bs=256,xs=ws|bs,Ss=gs|_s|xs|ys,As=hs|fs|Ss,Cs=ms|ps,ea=As|Cs,U={STR:hs,NUM:fs,ARR:ms,OBJ:ps,NULL:gs,BOOL:_s,NAN:ys,INFINITY:ws,MINUS_INFINITY:bs,INF:xs,SPECIAL:Ss,ATOM:As,COLLECTION:Cs,ALL:ea};class ta extends Error{}class na extends Error{}function sa(s,e=U.ALL){if(typeof s!="string")throw new TypeError(`expecting str, got ${typeof s}`);if(!s.trim())throw new Error(`${s} is empty`);return ra(s.trim(),e)}const ra=(s,e)=>{const t=s.length;let n=0;const r=g=>{throw new ta(`${g} at position ${n}`)},a=g=>{throw new na(`${g} at position ${n}`)},i=()=>(u(),n>=t&&r("Unexpected end of input"),s[n]==='"'?c():s[n]==="{"?l():s[n]==="["?d():s.substring(n,n+4)==="null"||U.NULL&e&&t-n<4&&"null".startsWith(s.substring(n))?(n+=4,null):s.substring(n,n+4)==="true"||U.BOOL&e&&t-n<4&&"true".startsWith(s.substring(n))?(n+=4,!0):s.substring(n,n+5)==="false"||U.BOOL&e&&t-n<5&&"false".startsWith(s.substring(n))?(n+=5,!1):s.substring(n,n+8)==="Infinity"||U.INFINITY&e&&t-n<8&&"Infinity".startsWith(s.substring(n))?(n+=8,1/0):s.substring(n,n+9)==="-Infinity"||U.MINUS_INFINITY&e&&1{const g=n;let h=!1;for(n++;n{n++,u();const g={};try{for(;s[n]!=="}";){if(u(),n>=t&&U.OBJ&e)return g;const h=c();u(),n++;try{const b=i();Object.defineProperty(g,h,{value:b,writable:!0,enumerable:!0,configurable:!0})}catch(b){if(U.OBJ&e)return g;throw b}u(),s[n]===","&&n++}}catch{if(U.OBJ&e)return g;r("Expected '}' at end of object")}return n++,g},d=()=>{n++;const g=[];try{for(;s[n]!=="]";)g.push(i()),u(),s[n]===","&&n++}catch{if(U.ARR&e)return g;r("Expected ']' at end of array")}return n++,g},y=()=>{if(n===0){s==="-"&&U.NUM&e&&r("Not sure what '-' is");try{return JSON.parse(s)}catch(h){if(U.NUM&e)try{return s[s.length-1]==="."?JSON.parse(s.substring(0,s.lastIndexOf("."))):JSON.parse(s.substring(0,s.lastIndexOf("e")))}catch{}a(String(h))}}const g=n;for(s[n]==="-"&&n++;s[n]&&!",]}".includes(s[n]);)n++;n==t&&!(U.NUM&e)&&r("Unterminated number literal");try{return JSON.parse(s.substring(g,n))}catch{s.substring(g,n)==="-"&&U.NUM&e&&r("Not sure what '-' is");try{return JSON.parse(s.substring(g,s.lastIndexOf("e")))}catch(b){a(String(b))}}},u=()=>{for(;nsa(s,U.ALL^U.NUM);var D,re,pe,oe,bt,qe,xt,St,At,Je,Ct,xn;class je extends ds{constructor(e){super(),D.add(this),re.set(this,void 0),pe.set(this,void 0),oe.set(this,void 0),R(this,re,e),R(this,pe,[])}get currentChatCompletionSnapshot(){return o(this,oe,"f")}static fromReadableStream(e){const t=new je(null);return t._run(()=>t._fromReadableStream(e)),t}static createChatCompletion(e,t,n){const r=new je(t);return r._run(()=>r._runChatCompletion(e,{...t,stream:!0},{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}async _createChatCompletion(e,t,n){var i;super._createChatCompletion;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),o(this,D,"m",bt).call(this);const a=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(const c of a)o(this,D,"m",xt).call(this,c);if((i=a.controller.signal)!=null&&i.aborted)throw new z;return this._addChatCompletion(o(this,D,"m",Je).call(this))}async _fromReadableStream(e,t){var i;const n=t==null?void 0:t.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),o(this,D,"m",bt).call(this),this._connected();const r=ne.fromReadableStream(e,this.controller);let a;for await(const c of r)a&&a!==c.id&&this._addChatCompletion(o(this,D,"m",Je).call(this)),o(this,D,"m",xt).call(this,c),a=c.id;if((i=r.controller.signal)!=null&&i.aborted)throw new z;return this._addChatCompletion(o(this,D,"m",Je).call(this))}[(re=new WeakMap,pe=new WeakMap,oe=new WeakMap,D=new WeakSet,bt=function(){this.ended||R(this,oe,void 0)},qe=function(t){let n=o(this,pe,"f")[t.index];return n||(n={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},o(this,pe,"f")[t.index]=n,n)},xt=function(t){var r,a,i,c,l,d,y,u,g,h,b,w,C,E,m;if(this.ended)return;const n=o(this,D,"m",xn).call(this,t);this._emit("chunk",t,n);for(const _ of t.choices){const p=n.choices[_.index];_.delta.content!=null&&((r=p.message)==null?void 0:r.role)==="assistant"&&((a=p.message)!=null&&a.content)&&(this._emit("content",_.delta.content,p.message.content),this._emit("content.delta",{delta:_.delta.content,snapshot:p.message.content,parsed:p.message.parsed})),_.delta.refusal!=null&&((i=p.message)==null?void 0:i.role)==="assistant"&&((c=p.message)!=null&&c.refusal)&&this._emit("refusal.delta",{delta:_.delta.refusal,snapshot:p.message.refusal}),((l=_.logprobs)==null?void 0:l.content)!=null&&((d=p.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(y=_.logprobs)==null?void 0:y.content,snapshot:((u=p.logprobs)==null?void 0:u.content)??[]}),((g=_.logprobs)==null?void 0:g.refusal)!=null&&((h=p.message)==null?void 0:h.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(b=_.logprobs)==null?void 0:b.refusal,snapshot:((w=p.logprobs)==null?void 0:w.refusal)??[]});const A=o(this,D,"m",qe).call(this,p);p.finish_reason&&(o(this,D,"m",At).call(this,p),A.current_tool_call_index!=null&&o(this,D,"m",St).call(this,p,A.current_tool_call_index));for(const O of _.delta.tool_calls??[])A.current_tool_call_index!==O.index&&(o(this,D,"m",At).call(this,p),A.current_tool_call_index!=null&&o(this,D,"m",St).call(this,p,A.current_tool_call_index)),A.current_tool_call_index=O.index;for(const O of _.delta.tool_calls??[]){const I=(C=p.message.tool_calls)==null?void 0:C[O.index];I!=null&&I.type&&((I==null?void 0:I.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(E=I.function)==null?void 0:E.name,index:O.index,arguments:I.function.arguments,parsed_arguments:I.function.parsed_arguments,arguments_delta:((m=O.function)==null?void 0:m.arguments)??""}):(I==null||I.type,void 0))}}},St=function(t,n){var i,c,l;if(o(this,D,"m",qe).call(this,t).done_tool_calls.has(n))return;const a=(i=t.message.tool_calls)==null?void 0:i[n];if(!a)throw new Error("no tool call snapshot");if(!a.type)throw new Error("tool call snapshot missing `type`");if(a.type==="function"){const d=(l=(c=o(this,re,"f"))==null?void 0:c.tools)==null?void 0:l.find(y=>y.type==="function"&&y.function.name===a.function.name);this._emit("tool_calls.function.arguments.done",{name:a.function.name,index:n,arguments:a.function.arguments,parsed_arguments:Le(d)?d.$parseRaw(a.function.arguments):d!=null&&d.function.strict?JSON.parse(a.function.arguments):null})}else a.type},At=function(t){var r,a;const n=o(this,D,"m",qe).call(this,t);if(t.message.content&&!n.content_done){n.content_done=!0;const i=o(this,D,"m",Ct).call(this);this._emit("content.done",{content:t.message.content,parsed:i?i.$parseRaw(t.message.content):null})}t.message.refusal&&!n.refusal_done&&(n.refusal_done=!0,this._emit("refusal.done",{refusal:t.message.refusal})),(r=t.logprobs)!=null&&r.content&&!n.logprobs_content_done&&(n.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:t.logprobs.content})),(a=t.logprobs)!=null&&a.refusal&&!n.logprobs_refusal_done&&(n.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:t.logprobs.refusal}))},Je=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");const t=o(this,oe,"f");if(!t)throw new v("request ended without sending any chunks");return R(this,oe,void 0),R(this,pe,[]),aa(t,o(this,re,"f"))},Ct=function(){var n;const t=(n=o(this,re,"f"))==null?void 0:n.response_format;return Ut(t)?t:null},xn=function(t){var n,r,a,i;let c=o(this,oe,"f");const{choices:l,...d}=t;c?Object.assign(c,d):c=R(this,oe,{...d,choices:[]});for(const{delta:y,finish_reason:u,index:g,logprobs:h=null,...b}of t.choices){let w=c.choices[g];if(w||(w=c.choices[g]={finish_reason:u,index:g,message:{},logprobs:h,...b}),h)if(!w.logprobs)w.logprobs=Object.assign({},h);else{const{content:O,refusal:I,...F}=h;Object.assign(w.logprobs,F),O&&((n=w.logprobs).content??(n.content=[]),w.logprobs.content.push(...O)),I&&((r=w.logprobs).refusal??(r.refusal=[]),w.logprobs.refusal.push(...I))}if(u&&(w.finish_reason=u,o(this,re,"f")&&cs(o(this,re,"f")))){if(u==="length")throw new Wn;if(u==="content_filter")throw new qn}if(Object.assign(w,b),!y)continue;const{content:C,refusal:E,function_call:m,role:_,tool_calls:p,...A}=y;if(Object.assign(w.message,A),E&&(w.message.refusal=(w.message.refusal||"")+E),_&&(w.message.role=_),m&&(w.message.function_call?(m.name&&(w.message.function_call.name=m.name),m.arguments&&((a=w.message.function_call).arguments??(a.arguments=""),w.message.function_call.arguments+=m.arguments)):w.message.function_call=m),C&&(w.message.content=(w.message.content||"")+C,!w.message.refusal&&o(this,D,"m",Ct).call(this)&&(w.message.parsed=bn(w.message.content))),p){w.message.tool_calls||(w.message.tool_calls=[]);for(const{index:O,id:I,type:F,function:x,...P}of p){const M=(i=w.message.tool_calls)[O]??(i[O]={});Object.assign(M,P),I&&(M.id=I),F&&(M.type=F),x&&(M.function??(M.function={name:x.name??"",arguments:""})),x!=null&&x.name&&(M.function.name=x.name),x!=null&&x.arguments&&(M.function.arguments+=x.arguments,zr(o(this,re,"f"),M)&&(M.function.parsed_arguments=bn(M.function.arguments)))}}}return c},Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("chunk",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new ne(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function aa(s,e){const{id:t,choices:n,created:r,model:a,system_fingerprint:i,...c}=s,l={...c,id:t,choices:n.map(({message:d,finish_reason:y,index:u,logprobs:g,...h})=>{if(!y)throw new v(`missing finish_reason for choice ${u}`);const{content:b=null,function_call:w,tool_calls:C,...E}=d,m=d.role;if(!m)throw new v(`missing role for choice ${u}`);if(w){const{arguments:_,name:p}=w;if(_==null)throw new v(`missing function_call.arguments for choice ${u}`);if(!p)throw new v(`missing function_call.name for choice ${u}`);return{...h,message:{content:b,function_call:{arguments:_,name:p},role:m,refusal:d.refusal??null},finish_reason:y,index:u,logprobs:g}}return C?{...h,index:u,finish_reason:y,logprobs:g,message:{...E,role:m,content:b,refusal:d.refusal??null,tool_calls:C.map((_,p)=>{const{function:A,type:O,id:I,...F}=_,{arguments:x,name:P,...M}=A||{};if(I==null)throw new v(`missing choices[${u}].tool_calls[${p}].id +${Xe(s)}`);if(O==null)throw new v(`missing choices[${u}].tool_calls[${p}].type +${Xe(s)}`);if(P==null)throw new v(`missing choices[${u}].tool_calls[${p}].function.name +${Xe(s)}`);if(x==null)throw new v(`missing choices[${u}].tool_calls[${p}].function.arguments +${Xe(s)}`);return{...F,id:I,type:O,function:{...M,name:P,arguments:x}}})}}:{...h,message:{...E,content:b,role:m,refusal:d.refusal??null},finish_reason:y,index:u,logprobs:g}}),created:r,model:a,object:"chat.completion",...i?{system_fingerprint:i}:{}};return Kr(l,e)}function Xe(s){return JSON.stringify(s)}class ct extends je{static fromReadableStream(e){const t=new ct(null);return t._run(()=>t._fromReadableStream(e)),t}static runTools(e,t,n){const r=new ct(t),a={...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"runTools"}};return r._run(()=>r._runTools(e,t,a)),r}}let Jt=class extends ${constructor(){super(...arguments),this.messages=new as(this._client)}create(e,t){return this._client.post("/chat/completions",{body:e,...t,stream:e.stream??!1})}retrieve(e,t){return this._client.get(f`/chat/completions/${e}`,t)}update(e,t,n){return this._client.post(f`/chat/completions/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/chat/completions",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/chat/completions/${e}`,t)}parse(e,t){return Yr(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t==null?void 0:t.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(n=>Wt(n,e))}runTools(e,t){return e.stream?ct.runTools(this._client,e,t):qt.runTools(this._client,e,t)}stream(e,t){return je.createChatCompletion(this._client,e,t)}};Jt.Messages=as;class Xt extends ${constructor(){super(...arguments),this.completions=new Jt(this._client)}}Xt.Completions=Jt;const vs=Symbol("brand.privateNullableHeaders");function*ia(s){if(!s)return;if(vs in s){const{values:n,nulls:r}=s;yield*n.entries();for(const a of r)yield[a,null];return}let e=!1,t;s instanceof Headers?t=s.entries():on(s)?t=s:(e=!0,t=Object.entries(s??{}));for(let n of t){const r=n[0];if(typeof r!="string")throw new TypeError("expected header name to be a string");const a=on(n[1])?n[1]:[n[1]];let i=!1;for(const c of a)c!==void 0&&(e&&!i&&(i=!0,yield[r,null]),yield[r,c])}}const S=s=>{const e=new Headers,t=new Set;for(const n of s){const r=new Set;for(const[a,i]of ia(n)){const c=a.toLowerCase();r.has(c)||(e.delete(a),r.add(c)),i===null?(e.delete(a),t.add(c)):(e.append(a,i),t.delete(c))}}return{[vs]:!0,values:e,nulls:t}};class Is extends ${create(e,t){return this._client.post("/audio/speech",{body:e,...t,headers:S([{Accept:"application/octet-stream"},t==null?void 0:t.headers]),__binaryResponse:!0})}}class Rs extends ${create(e,t){return this._client.post("/audio/transcriptions",fe({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}}class $s extends ${create(e,t){return this._client.post("/audio/translations",fe({body:e,...t,__metadata:{model:e.model}},this._client))}}class De extends ${constructor(){super(...arguments),this.transcriptions=new Rs(this._client),this.translations=new $s(this._client),this.speech=new Is(this._client)}}De.Transcriptions=Rs;De.Translations=$s;De.Speech=Is;class Os extends ${create(e,t){return this._client.post("/batches",{body:e,...t})}retrieve(e,t){return this._client.get(f`/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/batches",L,{query:e,...t})}cancel(e,t){return this._client.post(f`/batches/${e}/cancel`,t)}}class ks extends ${create(e,t){return this._client.post("/assistants",{body:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/assistants/${e}`,{...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/assistants/${e}`,{body:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e={},t){return this._client.getAPIList("/assistants",L,{query:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}delete(e,t){return this._client.delete(f`/assistants/${e}`,{...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class Es extends ${create(e,t){return this._client.post("/realtime/sessions",{body:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class Ps extends ${create(e,t){return this._client.post("/realtime/transcription_sessions",{body:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class mt extends ${constructor(){super(...arguments),this.sessions=new Es(this._client),this.transcriptionSessions=new Ps(this._client)}}mt.Sessions=Es;mt.TranscriptionSessions=Ps;class Ts extends ${create(e,t,n){return this._client.post(f`/threads/${e}/messages`,{body:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{thread_id:r}=t;return this._client.get(f`/threads/${r}/messages/${e}`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/messages/${e}`,{body:a,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/threads/${e}/messages`,L,{query:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t,n){const{thread_id:r}=t;return this._client.delete(f`/threads/${r}/messages/${e}`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Ms extends ${retrieve(e,t,n){const{thread_id:r,run_id:a,...i}=t;return this._client.get(f`/threads/${r}/runs/${a}/steps/${e}`,{query:i,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t,n){const{thread_id:r,...a}=t;return this._client.getAPIList(f`/threads/${r}/runs/${e}/steps`,L,{query:a,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}const oa=s=>{if(typeof Buffer<"u"){const e=Buffer.from(s,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{const e=atob(s),t=e.length,n=new Uint8Array(t);for(let r=0;r{var e,t,n,r;if(typeof globalThis.process<"u")return((e=vt==null?void 0:vt[s])==null?void 0:e.trim())??void 0;if(typeof globalThis.Deno<"u")return(r=(n=(t=globalThis.Deno.env)==null?void 0:t.get)==null?void 0:n.call(t,s))==null?void 0:r.trim()};var q,de,jt,te,Ze,Y,he,be,ue,lt,Q,et,tt,Me,Ee,Pe,Sn,An,Cn,vn,In,Rn,$n;class Ne extends Bt{constructor(){super(...arguments),q.add(this),jt.set(this,[]),te.set(this,{}),Ze.set(this,{}),Y.set(this,void 0),he.set(this,void 0),be.set(this,void 0),ue.set(this,void 0),lt.set(this,void 0),Q.set(this,void 0),et.set(this,void 0),tt.set(this,void 0),Me.set(this,void 0)}[(jt=new WeakMap,te=new WeakMap,Ze=new WeakMap,Y=new WeakMap,he=new WeakMap,be=new WeakMap,ue=new WeakMap,lt=new WeakMap,Q=new WeakMap,et=new WeakMap,tt=new WeakMap,Me=new WeakMap,q=new WeakSet,Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("event",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){const t=new de;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){var a;const n=t==null?void 0:t.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),this._connected();const r=ne.fromReadableStream(e,this.controller);for await(const i of r)o(this,q,"m",Ee).call(this,i);if((a=r.controller.signal)!=null&&a.aborted)throw new z;return this._addRun(o(this,q,"m",Pe).call(this))}toReadableStream(){return new ne(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,r){const a=new de;return a._run(()=>a._runToolAssistantStream(e,t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),a}async _createToolAssistantStream(e,t,n,r){var l;const a=r==null?void 0:r.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort()));const i={...n,stream:!0},c=await e.submitToolOutputs(t,i,{...r,signal:this.controller.signal});this._connected();for await(const d of c)o(this,q,"m",Ee).call(this,d);if((l=c.controller.signal)!=null&&l.aborted)throw new z;return this._addRun(o(this,q,"m",Pe).call(this))}static createThreadAssistantStream(e,t,n){const r=new de;return r._run(()=>r._threadAssistantStream(e,t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}static createAssistantStream(e,t,n,r){const a=new de;return a._run(()=>a._runAssistantStream(e,t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),a}currentEvent(){return o(this,et,"f")}currentRun(){return o(this,tt,"f")}currentMessageSnapshot(){return o(this,Y,"f")}currentRunStepSnapshot(){return o(this,Me,"f")}async finalRunSteps(){return await this.done(),Object.values(o(this,te,"f"))}async finalMessages(){return await this.done(),Object.values(o(this,Ze,"f"))}async finalRun(){if(await this.done(),!o(this,he,"f"))throw Error("Final run was not received.");return o(this,he,"f")}async _createThreadAssistantStream(e,t,n){var c;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort()));const a={...t,stream:!0},i=await e.createAndRun(a,{...n,signal:this.controller.signal});this._connected();for await(const l of i)o(this,q,"m",Ee).call(this,l);if((c=i.controller.signal)!=null&&c.aborted)throw new z;return this._addRun(o(this,q,"m",Pe).call(this))}async _createAssistantStream(e,t,n,r){var l;const a=r==null?void 0:r.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort()));const i={...n,stream:!0},c=await e.create(t,i,{...r,signal:this.controller.signal});this._connected();for await(const d of c)o(this,q,"m",Ee).call(this,d);if((l=c.controller.signal)!=null&&l.aborted)throw new z;return this._addRun(o(this,q,"m",Pe).call(this))}static accumulateDelta(e,t){for(const[n,r]of Object.entries(t)){if(!e.hasOwnProperty(n)){e[n]=r;continue}let a=e[n];if(a==null){e[n]=r;continue}if(n==="index"||n==="type"){e[n]=r;continue}if(typeof a=="string"&&typeof r=="string")a+=r;else if(typeof a=="number"&&typeof r=="number")a+=r;else if(_t(a)&&_t(r))a=this.accumulateDelta(a,r);else if(Array.isArray(a)&&Array.isArray(r)){if(a.every(i=>typeof i=="string"||typeof i=="number")){a.push(...r);continue}for(const i of r){if(!_t(i))throw new Error(`Expected array delta entry to be an object but got: ${i}`);const c=i.index;if(c==null)throw console.error(i),new Error("Expected array delta entry to have an `index` property");if(typeof c!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${c}`);const l=a[c];l==null?a.push(i):a[c]=this.accumulateDelta(l,i)}continue}else throw Error(`Unhandled record type: ${n}, deltaValue: ${r}, accValue: ${a}`);e[n]=a}return e}_addRun(e){return e}async _threadAssistantStream(e,t,n){return await this._createThreadAssistantStream(t,e,n)}async _runAssistantStream(e,t,n,r){return await this._createAssistantStream(t,e,n,r)}async _runToolAssistantStream(e,t,n,r){return await this._createToolAssistantStream(t,e,n,r)}}de=Ne,Ee=function(e){if(!this.ended)switch(R(this,et,e),o(this,q,"m",Cn).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":o(this,q,"m",$n).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":o(this,q,"m",An).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":o(this,q,"m",Sn).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},Pe=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");if(!o(this,he,"f"))throw Error("Final run has not been received");return o(this,he,"f")},Sn=function(e){const[t,n]=o(this,q,"m",In).call(this,e,o(this,Y,"f"));R(this,Y,t),o(this,Ze,"f")[t.id]=t;for(const r of n){const a=t.content[r.index];(a==null?void 0:a.type)=="text"&&this._emit("textCreated",a.text)}switch(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,t),e.data.delta.content)for(const r of e.data.delta.content){if(r.type=="text"&&r.text){let a=r.text,i=t.content[r.index];if(i&&i.type=="text")this._emit("textDelta",a,i.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(r.index!=o(this,be,"f")){if(o(this,ue,"f"))switch(o(this,ue,"f").type){case"text":this._emit("textDone",o(this,ue,"f").text,o(this,Y,"f"));break;case"image_file":this._emit("imageFileDone",o(this,ue,"f").image_file,o(this,Y,"f"));break}R(this,be,r.index)}R(this,ue,t.content[r.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(o(this,be,"f")!==void 0){const r=e.data.content[o(this,be,"f")];if(r)switch(r.type){case"image_file":this._emit("imageFileDone",r.image_file,o(this,Y,"f"));break;case"text":this._emit("textDone",r.text,o(this,Y,"f"));break}}o(this,Y,"f")&&this._emit("messageDone",e.data),R(this,Y,void 0)}},An=function(e){const t=o(this,q,"m",vn).call(this,e);switch(R(this,Me,t),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":const n=e.data.delta;if(n.step_details&&n.step_details.type=="tool_calls"&&n.step_details.tool_calls&&t.step_details.type=="tool_calls")for(const a of n.step_details.tool_calls)a.index==o(this,lt,"f")?this._emit("toolCallDelta",a,t.step_details.tool_calls[a.index]):(o(this,Q,"f")&&this._emit("toolCallDone",o(this,Q,"f")),R(this,lt,a.index),R(this,Q,t.step_details.tool_calls[a.index]),o(this,Q,"f")&&this._emit("toolCallCreated",o(this,Q,"f")));this._emit("runStepDelta",e.data.delta,t);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":R(this,Me,void 0),e.data.step_details.type=="tool_calls"&&o(this,Q,"f")&&(this._emit("toolCallDone",o(this,Q,"f")),R(this,Q,void 0)),this._emit("runStepDone",e.data,t);break}},Cn=function(e){o(this,jt,"f").push(e),this._emit("event",e)},vn=function(e){switch(e.event){case"thread.run.step.created":return o(this,te,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let t=o(this,te,"f")[e.data.id];if(!t)throw Error("Received a RunStepDelta before creation of a snapshot");let n=e.data;if(n.delta){const r=de.accumulateDelta(t,n.delta);o(this,te,"f")[e.data.id]=r}return o(this,te,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":o(this,te,"f")[e.data.id]=e.data;break}if(o(this,te,"f")[e.data.id])return o(this,te,"f")[e.data.id];throw new Error("No snapshot available")},In=function(e,t){let n=[];switch(e.event){case"thread.message.created":return[e.data,n];case"thread.message.delta":if(!t)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let r=e.data;if(r.delta.content)for(const a of r.delta.content)if(a.index in t.content){let i=t.content[a.index];t.content[a.index]=o(this,q,"m",Rn).call(this,a,i)}else t.content[a.index]=a,n.push(a);return[t,n];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(t)return[t,n];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},Rn=function(e,t){return de.accumulateDelta(t,e)},$n=function(e){switch(R(this,tt,e.data),e.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":R(this,he,e.data),o(this,Q,"f")&&(this._emit("toolCallDone",o(this,Q,"f")),R(this,Q,void 0));break}};let Ht=class extends ${constructor(){super(...arguments),this.steps=new Ms(this._client)}create(e,t,n){const{include:r,...a}=t;return this._client.post(f`/threads/${e}/runs`,{query:{include:r},body:a,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}retrieve(e,t,n){const{thread_id:r}=t;return this._client.get(f`/threads/${r}/runs/${e}`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/runs/${e}`,{body:a,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/threads/${e}/runs`,L,{query:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}cancel(e,t,n){const{thread_id:r}=t;return this._client.post(f`/threads/${r}/runs/${e}/cancel`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t,n);return await this.poll(r.id,{thread_id:e},n)}createAndStream(e,t,n){return Ne.createAssistantStream(e,this._client.beta.threads.runs,t,n)}async poll(e,t,n){var a;const r=S([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const{data:i,response:c}=await this.retrieve(e,t,{...n,headers:{...n==null?void 0:n.headers,...r}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=c.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,t,n){return Ne.createAssistantStream(e,this._client.beta.threads.runs,t,n)}submitToolOutputs(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/runs/${e}/submit_tool_outputs`,{body:a,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}async submitToolOutputsAndPoll(e,t,n){const r=await this.submitToolOutputs(e,t,n);return await this.poll(r.id,t,n)}submitToolOutputsStream(e,t,n){return Ne.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};Ht.Steps=Ms;class pt extends ${constructor(){super(...arguments),this.runs=new Ht(this._client),this.messages=new Ts(this._client)}create(e={},t){return this._client.post("/threads",{body:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/threads/${e}`,{...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/threads/${e}`,{body:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t){return this._client.delete(f`/threads/${e}`,{...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}createAndRun(e,t){return this._client.post("/threads/runs",{body:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers]),stream:e.stream??!1})}async createAndRunPoll(e,t){const n=await this.createAndRun(e,t);return await this.runs.poll(n.id,{thread_id:n.thread_id},t)}createAndRunStream(e,t){return Ne.createThreadAssistantStream(e,this._client.beta.threads,t)}}pt.Runs=Ht;pt.Messages=Ts;class Be extends ${constructor(){super(...arguments),this.realtime=new mt(this._client),this.assistants=new ks(this._client),this.threads=new pt(this._client)}}Be.Realtime=mt;Be.Assistants=ks;Be.Threads=pt;class Ns extends ${create(e,t){return this._client.post("/completions",{body:e,...t,stream:e.stream??!1})}}class js extends ${retrieve(e,t,n){const{container_id:r}=t;return this._client.get(f`/containers/${r}/files/${e}/content`,{...n,headers:S([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}}let Vt=class extends ${constructor(){super(...arguments),this.content=new js(this._client)}create(e,t,n){return this._client.post(f`/containers/${e}/files`,fe({body:t,...n},this._client))}retrieve(e,t,n){const{container_id:r}=t;return this._client.get(f`/containers/${r}/files/${e}`,n)}list(e,t={},n){return this._client.getAPIList(f`/containers/${e}/files`,L,{query:t,...n})}delete(e,t,n){const{container_id:r}=t;return this._client.delete(f`/containers/${r}/files/${e}`,{...n,headers:S([{Accept:"*/*"},n==null?void 0:n.headers])})}};Vt.Content=js;class Kt extends ${constructor(){super(...arguments),this.files=new Vt(this._client)}create(e,t){return this._client.post("/containers",{body:e,...t})}retrieve(e,t){return this._client.get(f`/containers/${e}`,t)}list(e={},t){return this._client.getAPIList("/containers",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/containers/${e}`,{...t,headers:S([{Accept:"*/*"},t==null?void 0:t.headers])})}}Kt.Files=Vt;class Fs extends ${create(e,t){const n=!!e.encoding_format;let r=n?e.encoding_format:"base64";n&&X(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);const a=this._client.post("/embeddings",{body:{...e,encoding_format:r},...t});return n?a:(X(this._client).debug("embeddings/decoding base64 embeddings from base64"),a._thenUnwrap(i=>(i&&i.data&&i.data.forEach(c=>{const l=c.embedding;c.embedding=oa(l)}),i)))}}class Ls extends ${retrieve(e,t,n){const{eval_id:r,run_id:a}=t;return this._client.get(f`/evals/${r}/runs/${a}/output_items/${e}`,n)}list(e,t,n){const{eval_id:r,...a}=t;return this._client.getAPIList(f`/evals/${r}/runs/${e}/output_items`,L,{query:a,...n})}}class Gt extends ${constructor(){super(...arguments),this.outputItems=new Ls(this._client)}create(e,t,n){return this._client.post(f`/evals/${e}/runs`,{body:t,...n})}retrieve(e,t,n){const{eval_id:r}=t;return this._client.get(f`/evals/${r}/runs/${e}`,n)}list(e,t={},n){return this._client.getAPIList(f`/evals/${e}/runs`,L,{query:t,...n})}delete(e,t,n){const{eval_id:r}=t;return this._client.delete(f`/evals/${r}/runs/${e}`,n)}cancel(e,t,n){const{eval_id:r}=t;return this._client.post(f`/evals/${r}/runs/${e}`,n)}}Gt.OutputItems=Ls;class Qt extends ${constructor(){super(...arguments),this.runs=new Gt(this._client)}create(e,t){return this._client.post("/evals",{body:e,...t})}retrieve(e,t){return this._client.get(f`/evals/${e}`,t)}update(e,t,n){return this._client.post(f`/evals/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/evals",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/evals/${e}`,t)}}Qt.Runs=Gt;let Ds=class extends ${create(e,t){return this._client.post("/files",fe({body:e,...t},this._client))}retrieve(e,t){return this._client.get(f`/files/${e}`,t)}list(e={},t){return this._client.getAPIList("/files",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/files/${e}`,t)}content(e,t){return this._client.get(f`/files/${e}/content`,{...t,headers:S([{Accept:"application/binary"},t==null?void 0:t.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:t=5e3,maxWait:n=30*60*1e3}={}){const r=new Set(["processed","error","deleted"]),a=Date.now();let i=await this.retrieve(e);for(;!i.status||!r.has(i.status);)if(await Fe(t),i=await this.retrieve(e),Date.now()-a>n)throw new Lt({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return i}};class Bs extends ${}let Us=class extends ${run(e,t){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...t})}validate(e,t){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...t})}};class zt extends ${constructor(){super(...arguments),this.graders=new Us(this._client)}}zt.Graders=Us;class Ws extends ${create(e,t,n){return this._client.getAPIList(f`/fine_tuning/checkpoints/${e}/permissions`,ft,{body:t,method:"post",...n})}retrieve(e,t={},n){return this._client.getAPIList(f`/fine_tuning/checkpoints/${e}/permissions`,L,{query:t,...n})}delete(e,t,n){const{fine_tuned_model_checkpoint:r}=t;return this._client.delete(f`/fine_tuning/checkpoints/${r}/permissions/${e}`,n)}}let Yt=class extends ${constructor(){super(...arguments),this.permissions=new Ws(this._client)}};Yt.Permissions=Ws;class qs extends ${list(e,t={},n){return this._client.getAPIList(f`/fine_tuning/jobs/${e}/checkpoints`,L,{query:t,...n})}}class Zt extends ${constructor(){super(...arguments),this.checkpoints=new qs(this._client)}create(e,t){return this._client.post("/fine_tuning/jobs",{body:e,...t})}retrieve(e,t){return this._client.get(f`/fine_tuning/jobs/${e}`,t)}list(e={},t){return this._client.getAPIList("/fine_tuning/jobs",L,{query:e,...t})}cancel(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/cancel`,t)}listEvents(e,t={},n){return this._client.getAPIList(f`/fine_tuning/jobs/${e}/events`,L,{query:t,...n})}pause(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/pause`,t)}resume(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/resume`,t)}}Zt.Checkpoints=qs;class xe extends ${constructor(){super(...arguments),this.methods=new Bs(this._client),this.jobs=new Zt(this._client),this.checkpoints=new Yt(this._client),this.alpha=new zt(this._client)}}xe.Methods=Bs;xe.Jobs=Zt;xe.Checkpoints=Yt;xe.Alpha=zt;class Js extends ${}class en extends ${constructor(){super(...arguments),this.graderModels=new Js(this._client)}}en.GraderModels=Js;class Xs extends ${createVariation(e,t){return this._client.post("/images/variations",fe({body:e,...t},this._client))}edit(e,t){return this._client.post("/images/edits",fe({body:e,...t},this._client))}generate(e,t){return this._client.post("/images/generations",{body:e,...t})}}class Hs extends ${retrieve(e,t){return this._client.get(f`/models/${e}`,t)}list(e){return this._client.getAPIList("/models",ft,e)}delete(e,t){return this._client.delete(f`/models/${e}`,t)}}class Vs extends ${create(e,t){return this._client.post("/moderations",{body:e,...t})}}function ca(s,e){return!e||!ua(e)?{...s,output_parsed:null,output:s.output.map(t=>t.type==="function_call"?{...t,parsed_arguments:null}:t.type==="message"?{...t,content:t.content.map(n=>({...n,parsed:null}))}:t)}:Ks(s,e)}function Ks(s,e){const t=s.output.map(r=>{if(r.type==="function_call")return{...r,parsed_arguments:fa(e,r)};if(r.type==="message"){const a=r.content.map(i=>i.type==="output_text"?{...i,parsed:la(e,i.text)}:i);return{...r,content:a}}return r}),n=Object.assign({},s,{output:t});return Object.getOwnPropertyDescriptor(s,"output_text")||Gs(n),Object.defineProperty(n,"output_parsed",{enumerable:!0,get(){for(const r of n.output)if(r.type==="message"){for(const a of r.content)if(a.type==="output_text"&&a.parsed!==null)return a.parsed}return null}}),n}function la(s,e){var t,n,r,a;return((n=(t=s.text)==null?void 0:t.format)==null?void 0:n.type)!=="json_schema"?null:"$parseRaw"in((r=s.text)==null?void 0:r.format)?((a=s.text)==null?void 0:a.format).$parseRaw(e):JSON.parse(e)}function ua(s){var e;return!!Ut((e=s.text)==null?void 0:e.format)}function da(s){return(s==null?void 0:s.$brand)==="auto-parseable-tool"}function ha(s,e){return s.find(t=>t.type==="function"&&t.name===e)}function fa(s,e){const t=ha(s.tools??[],e.name);return{...e,...e,parsed_arguments:da(t)?t.$parseRaw(e.arguments):t!=null&&t.strict?JSON.parse(e.arguments):null}}function Gs(s){const e=[];for(const t of s.output)if(t.type==="message")for(const n of t.content)n.type==="output_text"&&e.push(n.text);s.output_text=e.join("")}var ge,He,ce,Ve,On,kn,En,Pn;class tn extends Bt{constructor(e){super(),ge.add(this),He.set(this,void 0),ce.set(this,void 0),Ve.set(this,void 0),R(this,He,e)}static createResponse(e,t,n){const r=new tn(t);return r._run(()=>r._createOrRetrieveResponse(e,t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}async _createOrRetrieveResponse(e,t,n){var c;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),o(this,ge,"m",On).call(this);let a,i=null;"response_id"in t?(a=await e.responses.retrieve(t.response_id,{stream:!0},{...n,signal:this.controller.signal,stream:!0}),i=t.starting_after??null):a=await e.responses.create({...t,stream:!0},{...n,signal:this.controller.signal}),this._connected();for await(const l of a)o(this,ge,"m",kn).call(this,l,i);if((c=a.controller.signal)!=null&&c.aborted)throw new z;return o(this,ge,"m",En).call(this)}[(He=new WeakMap,ce=new WeakMap,Ve=new WeakMap,ge=new WeakSet,On=function(){this.ended||R(this,ce,void 0)},kn=function(t,n){if(this.ended)return;const r=(i,c)=>{(n==null||c.sequence_number>n)&&this._emit(i,c)},a=o(this,ge,"m",Pn).call(this,t);switch(r("event",t),t.type){case"response.output_text.delta":{const i=a.output[t.output_index];if(!i)throw new v(`missing output at index ${t.output_index}`);if(i.type==="message"){const c=i.content[t.content_index];if(!c)throw new v(`missing content at index ${t.content_index}`);if(c.type!=="output_text")throw new v(`expected content to be 'output_text', got ${c.type}`);r("response.output_text.delta",{...t,snapshot:c.text})}break}case"response.function_call_arguments.delta":{const i=a.output[t.output_index];if(!i)throw new v(`missing output at index ${t.output_index}`);i.type==="function_call"&&r("response.function_call_arguments.delta",{...t,snapshot:i.arguments});break}default:r(t.type,t);break}},En=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");const t=o(this,ce,"f");if(!t)throw new v("request ended without sending any events");R(this,ce,void 0);const n=ma(t,o(this,He,"f"));return R(this,Ve,n),n},Pn=function(t){let n=o(this,ce,"f");if(!n){if(t.type!=="response.created")throw new v(`When snapshot hasn't been set yet, expected 'response.created' event, got ${t.type}`);return n=R(this,ce,t.response),n}switch(t.type){case"response.output_item.added":{n.output.push(t.item);break}case"response.content_part.added":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);r.type==="message"&&r.content.push(t.part);break}case"response.output_text.delta":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);if(r.type==="message"){const a=r.content[t.content_index];if(!a)throw new v(`missing content at index ${t.content_index}`);if(a.type!=="output_text")throw new v(`expected content to be 'output_text', got ${a.type}`);a.text+=t.delta}break}case"response.function_call_arguments.delta":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);r.type==="function_call"&&(r.arguments+=t.delta);break}case"response.completed":{R(this,ce,t.response);break}}return n},Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("event",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const e=o(this,Ve,"f");if(!e)throw new v("stream ended without producing a ChatCompletion");return e}}function ma(s,e){return ca(s,e)}class Qs extends ${list(e,t={},n){return this._client.getAPIList(f`/responses/${e}/input_items`,L,{query:t,...n})}}class nn extends ${constructor(){super(...arguments),this.inputItems=new Qs(this._client)}create(e,t){return this._client.post("/responses",{body:e,...t,stream:e.stream??!1})._thenUnwrap(n=>("object"in n&&n.object==="response"&&Gs(n),n))}retrieve(e,t={},n){return this._client.get(f`/responses/${e}`,{query:t,...n,stream:(t==null?void 0:t.stream)??!1})}delete(e,t){return this._client.delete(f`/responses/${e}`,{...t,headers:S([{Accept:"*/*"},t==null?void 0:t.headers])})}parse(e,t){return this._client.responses.create(e,t)._thenUnwrap(n=>Ks(n,e))}stream(e,t){return tn.createResponse(this._client,e,t)}cancel(e,t){return this._client.post(f`/responses/${e}/cancel`,t)}}nn.InputItems=Qs;class zs extends ${create(e,t,n){return this._client.post(f`/uploads/${e}/parts`,fe({body:t,...n},this._client))}}class sn extends ${constructor(){super(...arguments),this.parts=new zs(this._client)}create(e,t){return this._client.post("/uploads",{body:e,...t})}cancel(e,t){return this._client.post(f`/uploads/${e}/cancel`,t)}complete(e,t,n){return this._client.post(f`/uploads/${e}/complete`,{body:t,...n})}}sn.Parts=zs;const pa=async s=>{const e=await Promise.allSettled(s),t=e.filter(r=>r.status==="rejected");if(t.length){for(const r of t)console.error(r.reason);throw new Error(`${t.length} promise(s) failed - see the above errors`)}const n=[];for(const r of e)r.status==="fulfilled"&&n.push(r.value);return n};class Ys extends ${create(e,t,n){return this._client.post(f`/vector_stores/${e}/file_batches`,{body:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{vector_store_id:r}=t;return this._client.get(f`/vector_stores/${r}/file_batches/${e}`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}cancel(e,t,n){const{vector_store_id:r}=t;return this._client.post(f`/vector_stores/${r}/file_batches/${e}/cancel`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t);return await this.poll(e,r.id,n)}listFiles(e,t,n){const{vector_store_id:r,...a}=t;return this._client.getAPIList(f`/vector_stores/${r}/file_batches/${e}/files`,L,{query:a,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async poll(e,t,n){var a;const r=S([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const{data:i,response:c}=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse();switch(i.status){case"in_progress":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=c.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:t,fileIds:n=[]},r){if(t==null||t.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const a=(r==null?void 0:r.maxConcurrency)??5,i=Math.min(a,t.length),c=this._client,l=t.values(),d=[...n];async function y(g){for(let h of g){const b=await c.files.create({file:h,purpose:"assistants"},r);d.push(b.id)}}const u=Array(i).fill(l).map(y);return await pa(u),await this.createAndPoll(e,{file_ids:d})}}class Zs extends ${create(e,t,n){return this._client.post(f`/vector_stores/${e}/files`,{body:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{vector_store_id:r}=t;return this._client.get(f`/vector_stores/${r}/files/${e}`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{vector_store_id:r,...a}=t;return this._client.post(f`/vector_stores/${r}/files/${e}`,{body:a,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/vector_stores/${e}/files`,L,{query:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t,n){const{vector_store_id:r}=t;return this._client.delete(f`/vector_stores/${r}/files/${e}`,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t,n);return await this.poll(e,r.id,n)}async poll(e,t,n){var a;const r=S([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const i=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse(),c=i.data;switch(c.status){case"in_progress":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=i.response.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"failed":case"completed":return c}}}async upload(e,t,n){const r=await this._client.files.create({file:t,purpose:"assistants"},n);return this.create(e,{file_id:r.id},n)}async uploadAndPoll(e,t,n){const r=await this.upload(e,t,n);return await this.poll(e,r.id,n)}content(e,t,n){const{vector_store_id:r}=t;return this._client.getAPIList(f`/vector_stores/${r}/files/${e}/content`,ft,{...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class gt extends ${constructor(){super(...arguments),this.files=new Zs(this._client),this.fileBatches=new Ys(this._client)}create(e,t){return this._client.post("/vector_stores",{body:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/vector_stores/${e}`,{...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/vector_stores/${e}`,{body:t,...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e={},t){return this._client.getAPIList("/vector_stores",L,{query:e,...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}delete(e,t){return this._client.delete(f`/vector_stores/${e}`,{...t,headers:S([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}search(e,t,n){return this._client.getAPIList(f`/vector_stores/${e}/search`,ft,{body:t,method:"post",...n,headers:S([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}gt.Files=Zs;gt.FileBatches=Ys;var Ft,rn,nt,er;class T{constructor({baseURL:e=Ce("OPENAI_BASE_URL"),apiKey:t=Ce("OPENAI_API_KEY"),organization:n=Ce("OPENAI_ORG_ID")??null,project:r=Ce("OPENAI_PROJECT_ID")??null,...a}={}){if(Ft.add(this),nt.set(this,void 0),this.completions=new Ns(this),this.chat=new Xt(this),this.embeddings=new Fs(this),this.files=new Ds(this),this.images=new Xs(this),this.audio=new De(this),this.moderations=new Vs(this),this.models=new Hs(this),this.fineTuning=new xe(this),this.graders=new en(this),this.vectorStores=new gt(this),this.beta=new Be(this),this.batches=new Os(this),this.uploads=new sn(this),this.responses=new nn(this),this.evals=new Qt(this),this.containers=new Kt(this),t===void 0)throw new v("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const i={apiKey:t,organization:n,project:r,...a,baseURL:e||"https://api.openai.com/v1"};if(!i.dangerouslyAllowBrowser&&gr())throw new v(`It looks like you're running in a browser-like environment. + +This is disabled by default, as it risks exposing your secret API credentials to attackers. +If you understand the risks and have appropriate mitigations in place, +you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g., + +new OpenAI({ apiKey, dangerouslyAllowBrowser: true }); + +https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety +`);this.baseURL=i.baseURL,this.timeout=i.timeout??rn.DEFAULT_TIMEOUT,this.logger=i.logger??console;const c="warn";this.logLevel=c,this.logLevel=_n(i.logLevel,"ClientOptions.logLevel",this)??_n(Ce("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??xr(),R(this,nt,Ar),this._options=i,this.apiKey=t,this.organization=n,this.project=r}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){}authHeaders(e){return S([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return Or(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${ye}`}defaultIdempotencyKey(){return`stainless-node-retry-${Tn()}`}makeStatusError(e,t,n,r){return J.generate(e,t,n,r)}buildURL(e,t,n){const r=!o(this,Ft,"m",er).call(this)&&n||this.baseURL,a=ur(e)?new URL(e):new URL(r+(r.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),i=this.defaultQuery();return hr(i)||(t={...i,...t}),typeof t=="object"&&t&&!Array.isArray(t)&&(a.search=this.stringifyQuery(t)),a.toString()}async prepareOptions(e){}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(r=>({method:e,path:t,...r})))}request(e,t=null){return new ht(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){var E,m;const r=await e,a=r.maxRetries??this.maxRetries;t==null&&(t=a),await this.prepareOptions(r);const{req:i,url:c,timeout:l}=this.buildRequest(r,{retryCount:a-t});await this.prepareRequest(i,{url:c,options:r});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),y=n===void 0?"":`, retryOf: ${n}`,u=Date.now();if(X(this).debug(`[${d}] sending request`,le({retryOfRequestLogID:n,method:r.method,url:c,options:r,headers:i.headers})),(E=r.signal)!=null&&E.aborted)throw new z;const g=new AbortController,h=await this.fetchWithTimeout(c,i,l,g).catch(Rt),b=Date.now();if(h instanceof Error){const _=`retrying, ${t} attempts remaining`;if((m=r.signal)!=null&&m.aborted)throw new z;const p=It(h)||/timed? ?out/i.test(String(h)+("cause"in h?String(h.cause):""));if(t)return X(this).info(`[${d}] connection ${p?"timed out":"failed"} - ${_}`),X(this).debug(`[${d}] connection ${p?"timed out":"failed"} (${_})`,le({retryOfRequestLogID:n,url:c,durationMs:b-u,message:h.message})),this.retryRequest(r,t,n??d);throw X(this).info(`[${d}] connection ${p?"timed out":"failed"} - error; no more retries left`),X(this).debug(`[${d}] connection ${p?"timed out":"failed"} (error; no more retries left)`,le({retryOfRequestLogID:n,url:c,durationMs:b-u,message:h.message})),p?new Lt:new ut({cause:h})}const w=[...h.headers.entries()].filter(([_])=>_==="x-request-id").map(([_,p])=>", "+_+": "+JSON.stringify(p)).join(""),C=`[${d}${y}${w}] ${i.method} ${c} ${h.ok?"succeeded":"failed"} with status ${h.status} in ${b-u}ms`;if(!h.ok){const _=this.shouldRetry(h);if(t&&_){const x=`retrying, ${t} attempts remaining`;return await Sr(h.body),X(this).info(`${C} - ${x}`),X(this).debug(`[${d}] response error (${x})`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:b-u})),this.retryRequest(r,t,n??d,h.headers)}const p=_?"error; no more retries left":"error; not retryable";X(this).info(`${C} - ${p}`);const A=await h.text().catch(x=>Rt(x).message),O=pr(A),I=O?void 0:A;throw X(this).debug(`[${d}] response error (${p})`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,message:I,durationMs:Date.now()-u})),this.makeStatusError(h.status,O,I,h.headers)}return X(this).info(C),X(this).debug(`[${d}] response start`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:b-u})),{response:h,options:r,controller:g,requestLogID:d,retryOfRequestLogID:n,startTime:u}}getAPIList(e,t,n){return this.requestAPIList(t,{method:"get",path:e,...n})}requestAPIList(e,t){const n=this.makeRequest(t,null,void 0);return new Lr(this,n,e)}async fetchWithTimeout(e,t,n,r){const{signal:a,method:i,...c}=t||{};a&&a.addEventListener("abort",()=>r.abort());const l=setTimeout(()=>r.abort(),n),d=globalThis.ReadableStream&&c.body instanceof globalThis.ReadableStream||typeof c.body=="object"&&c.body!==null&&Symbol.asyncIterator in c.body,y={signal:r.signal,...d?{duplex:"half"}:{},method:"GET",...c};i&&(y.method=i.toUpperCase());try{return await this.fetch.call(void 0,e,y)}finally{clearTimeout(l)}}shouldRetry(e){const t=e.headers.get("x-should-retry");return t==="true"?!0:t==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let a;const i=r==null?void 0:r.get("retry-after-ms");if(i){const l=parseFloat(i);Number.isNaN(l)||(a=l)}const c=r==null?void 0:r.get("retry-after");if(c&&!a){const l=parseFloat(c);Number.isNaN(l)?a=Date.parse(c)-Date.now():a=l*1e3}if(!(a&&0<=a&&a<60*1e3)){const l=e.maxRetries??this.maxRetries;a=this.calculateDefaultRetryTimeoutMillis(t,l)}return await Fe(a),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){const a=t-e,i=Math.min(.5*Math.pow(2,a),8),c=1-Math.random()*.25;return i*c*1e3}buildRequest(e,{retryCount:t=0}={}){const n={...e},{method:r,path:a,query:i,defaultBaseURL:c}=n,l=this.buildURL(a,i,c);"timeout"in n&&mr("timeout",n.timeout),n.timeout=n.timeout??this.timeout;const{bodyHeaders:d,body:y}=this.buildBody({options:n}),u=this.buildHeaders({options:e,method:r,bodyHeaders:d,retryCount:t});return{req:{method:r,headers:u,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&y instanceof globalThis.ReadableStream&&{duplex:"half"},...y&&{body:y},...this.fetchOptions??{},...n.fetchOptions??{}},url:l,timeout:n.timeout}}buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let a={};this.idempotencyHeader&&t!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),a[this.idempotencyHeader]=e.idempotencyKey);const i=S([a,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...br(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};const n=S([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:Xn(e)}:o(this,nt,"f").call(this,{body:e,headers:n})}}rn=T,nt=new WeakMap,Ft=new WeakSet,er=function(){return this.baseURL!=="https://api.openai.com/v1"};T.OpenAI=rn;T.DEFAULT_TIMEOUT=6e5;T.OpenAIError=v;T.APIError=J;T.APIConnectionError=ut;T.APIConnectionTimeoutError=Lt;T.APIUserAbortError=z;T.NotFoundError=Fn;T.ConflictError=Ln;T.RateLimitError=Bn;T.BadRequestError=Mn;T.AuthenticationError=Nn;T.InternalServerError=Un;T.PermissionDeniedError=jn;T.UnprocessableEntityError=Dn;T.toFile=Jr;T.Completions=Ns;T.Chat=Xt;T.Embeddings=Fs;T.Files=Ds;T.Images=Xs;T.Audio=De;T.Moderations=Vs;T.Models=Hs;T.FineTuning=xe;T.Graders=en;T.VectorStores=gt;T.Beta=Be;T.Batches=Os;T.Uploads=sn;T.Responses=nn;T.Evals=Qt;T.Containers=Kt;const ga=rr(()=>import("./docs-BrInh2Pn.js"),[],import.meta.url);let Ke=null;async function _a(s){if(Ke)return Ke;const e=await s.getObjectViewSystem("state","","香"),t=await s.getObjectViewSystem("channel","","香"),n=await s.getObjectViewSystem("device","","香"),r=await s.getObjectViewSystem("folder","","香"),a=await s.getObjectViewSystem("enum","","香");return Ke=Object.assign(e,t,n,r,a),Ke}function _e(s,e){return s&&typeof s=="object"?s[e]||s.en:s||""}async function ya(s){var b,w,C,E;const e=W.I18n.getLanguage(),t=await _a(s),n=Object.keys(t).sort(),r=new ar,a=[],i=["UNREACH_STICKY"],c=[ir.Types.info],l=[],d=[],y=[],u=[];n.forEach(m=>{var _,p,A;((_=t[m])==null?void 0:_.type)==="enum"?l.push(m):(A=(p=t[m])==null?void 0:p.common)!=null&&A.smartName&&u.push(m)}),l.forEach(m=>{m.startsWith("enum.rooms.")?d.push(m):m.startsWith("enum.functions.")&&y.push(m);const _=t[m].common.members;_!=null&&_.length&&_.forEach(p=>{t[p]&&(u.includes(p)||u.push(p))})});const g={id:"",objects:t,_keysOptional:n,_usedIdsOptional:a,ignoreIndicators:i,excludedTypes:c},h=[];u.forEach(m=>{g.id=m;const _=r.detect(g);_&&_.forEach(p=>{var me;const A=(me=p.states.find(N=>N.id))==null?void 0:me.id;if(!A||h.find(N=>N.id===A))return;const O=t[A],I={id:A,name:_e(O.common.name,e),type:O.type,deviceType:p.type,states:p.states.filter(N=>N.id).map(N=>({id:N.id,name:N.name,role:N.defaultRole,type:t[N.id].common.type,unit:t[N.id].common.unit,read:t[N.id].common.read===void 0?!0:t[N.id].common.read,write:t[N.id].common.write===void 0?!0:t[N.id].common.write}))},F=A.split(".");let x,P;(O.type==="channel"||O.type==="state")&&(F.pop(),x=F.join("."),t[x]&&(t[x].type==="channel"||t[x].type==="folder")?(F.pop(),P=F.join("."),(!t[P]||t[P].type!=="device"&&t[x].type!=="folder")&&(P=void 0)):x=void 0);const M=d.find(N=>{var ie,Se,Ae;return(ie=t[N].common.members)!=null&&ie.includes(A)||x&&((Se=t[N].common.members)!=null&&Se.includes(x))?!0:P&&((Ae=t[N].common.members)==null?void 0:Ae.includes(P))});M&&(I.room=_e(t[M].common.name,e));const se=y.find(N=>{var ie,Se,Ae;return(ie=t[N].common.members)!=null&&ie.includes(A)||x&&((Se=t[N].common.members)!=null&&Se.includes(x))?!0:P&&((Ae=t[N].common.members)==null?void 0:Ae.includes(P))});se&&(I.function=_e(t[se].common.name,e)),h.push(I)})});for(let m=0;m(await ga).default,ba={ru:"Russian",en:"English",de:"German",es:"Spanish",fr:"French",it:"Italian",pl:"Polish",nl:"Dutch",pt:"Portuguese",uk:"Ukrainian","zh-cn":"Chinese"},La=s=>{const[e,t]=Z.useState(window.localStorage.getItem("openai-question")||""),[n,r]=Z.useState(""),[a,i]=Z.useState(!1),[c,l]=Z.useState(!1),[d,y]=Z.useState(window.localStorage.getItem("openai-model")||"gpt-4o"),[u,g]=Z.useState(!1),h=Z.useRef(null),b=Z.useRef(null),w=Z.useRef(null),C=Z.useCallback(async()=>{var p;let E;h.current?E=h.current:(E=await ya(s.socket),h.current=E,console.log(`devices: ${JSON.stringify(E,null,2)}`));let m;if(b.current)m=b.current;else{const A=Object.keys(s.runningInstances);for(let O=0;OM.trim());for(;P[0]==="";)P.shift();x=`${P.map(M=>`// ${M}`).join(` +`)} +${x}`}console.log(I),r(x||"")}catch(A){console.log(JSON.stringify(A)),A.error&&l(A.error.message),console.error(`Cannot request: ${A}, ${JSON.stringify(A.error||A,null,2)}`)}i(!1)},[e,d,s.runningInstances,s.socket]);return k.jsxs(j.Dialog,{maxWidth:"lg",sx:{"& .MuiDialog-paper":{height:"calc(100% - 100px)"}},open:!0,onClose:()=>s.onClose(),fullWidth:!0,children:[u&&k.jsxs(j.Dialog,{maxWidth:"lg",open:!0,onClose:()=>g(!1),fullWidth:!0,children:[k.jsx(j.DialogTitle,{children:W.I18n.t("No Chat GPT Key found")}),k.jsxs(j.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8},children:[k.jsx("div",{children:W.I18n.t("You have to enter OpenAI API key in the configuration of javascript adapter.")}),k.jsx(j.Button,{variant:"contained",onClick:()=>{const E=Object.keys(s.runningInstances);window.open(`../../#tab-instances/config/${E[0]||"system.adapter.javascript.0"}`,"_blank"),g(!1)},children:W.I18n.t("Open configuration")})]}),k.jsx(j.DialogActions,{children:k.jsx(j.Button,{variant:"contained",startIcon:k.jsx(an,{}),onClick:()=>g(!1),children:W.I18n.t("Close")})})]}),k.jsx(j.DialogTitle,{children:W.I18n.t("AI code generator")}),k.jsxs(j.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8,height:"100%"},children:[k.jsx("div",{children:k.jsx(j.TextField,{variant:"standard",multiline:!0,autoFocus:!0,disabled:a,fullWidth:!0,onKeyUp:E=>{E.key==="Enter"&&E.ctrlKey&&C()},label:W.I18n.t("Enter your question"),helperText:W.I18n.t("Press Ctrl+Enter to get the answer"),value:e,onChange:E=>{window.localStorage.setItem("openai-question",E.target.value),t(E.target.value)}})}),k.jsxs("div",{style:{display:"flex",alignItems:"baseline"},children:[k.jsx(j.Button,{variant:"contained",disabled:a||!e,startIcon:k.jsx(cr,{}),onClick:async()=>C(),children:a?k.jsx(j.CircularProgress,{size:24}):W.I18n.t("Ask")}),k.jsxs(j.FormControl,{style:{width:150,marginLeft:20},variant:"standard",children:[k.jsx(j.InputLabel,{children:W.I18n.t("Model")}),k.jsxs(j.Select,{variant:"standard",value:d,onChange:E=>{window.localStorage.setItem("openai-model",E.target.value),c&&l(!1),y(E.target.value)},children:[k.jsx(j.MenuItem,{value:"gpt-4o",children:"GPT-4o"}),k.jsx(j.MenuItem,{value:"gpt-4-turbo",children:"GPT-4 Turbo"}),k.jsx(j.MenuItem,{value:"gpt-4-32k",children:"GPT-4 32k"}),k.jsx(j.MenuItem,{value:"gpt-4",children:"GPT-4"}),k.jsx(j.MenuItem,{value:"gpt-3.5-turbo-16k",children:"GPT-3.5 Turbo"})]})]})]}),k.jsx("div",{children:W.I18n.t("Result")}),k.jsx("div",{style:{height:"calc(100% - 155px)"},children:c?k.jsx("div",{style:{color:s.themeType==="dark"?"#984242":"#bb0000"},children:c}):k.jsx(or,{triggerPrettier:1,adapterName:s.adapterName,runningInstances:s.runningInstances,style:{height:"100%",width:"100%",resize:"none"},name:"ai",socket:s.socket,readOnly:!0,checkJs:!0,code:n,isDark:s.themeType==="dark",language:s.language||"javascript"})})]}),k.jsxs(j.DialogActions,{children:[k.jsx(j.Button,{color:"grey",variant:"outlined",disabled:!n,startIcon:k.jsx(sr,{}),onClick:()=>{W.Utils.copyToClipboard(n),window.alert(W.I18n.t("Copied"))},children:W.I18n.t("Copy to clipboard")}),k.jsx(j.Button,{color:"primary",variant:"contained",disabled:!n||c,startIcon:k.jsx(nr,{}),onClick:()=>{s.onAddCode(n),s.onClose()},children:W.I18n.t("Use generated code")}),k.jsx(j.Button,{color:"grey",variant:"contained",startIcon:k.jsx(an,{}),onClick:()=>s.onClose(),children:W.I18n.t("Close")})]})]})};export{La as default}; diff --git a/admin/assets/OpenAiDialog-CZs8bTbV.js b/admin/assets/OpenAiDialog-CZs8bTbV.js deleted file mode 100644 index 41a00d965..000000000 --- a/admin/assets/OpenAiDialog-CZs8bTbV.js +++ /dev/null @@ -1,34 +0,0 @@ -import{c as Qs,j as E}from"./createSvgIcon-DMsh-YeH.js";import{i as Y}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as j,c as an,C as zs}from"./index-f32XoI0M.js";import{i as W,h as Ys}from"./index-hex25_NL.js";import{_ as Zs}from"./preload-helper-Dp1pzeXC.js";import{C as er,t as tr}from"./index-Dm1jc4t6.js";import nr from"./ScriptEditorVanillaMonaco-CZnuN4bN.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";const sr=Qs(E.jsx("path",{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15M14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2"}),"QuestionMark");function R(s,e,t,n,r){if(typeof e=="function"?s!==e||!0:!e.has(s))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(s,t),t}function c(s,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?s!==e||!n:!e.has(s))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(s):n?n.value:e.get(s)}let On=function(){const{crypto:s}=globalThis;if(s!=null&&s.randomUUID)return On=s.randomUUID.bind(s),s.randomUUID();const e=new Uint8Array(1),t=s?()=>s.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^t()&15>>+n/4).toString(16))};function It(s){return typeof s=="object"&&s!==null&&("name"in s&&s.name==="AbortError"||"message"in s&&String(s.message).includes("FetchRequestCanceledException"))}const Rt=s=>{if(s instanceof Error)return s;if(typeof s=="object"&&s!==null){try{if(Object.prototype.toString.call(s)==="[object Error]"){const e=new Error(s.message,s.cause?{cause:s.cause}:{});return s.stack&&(e.stack=s.stack),s.cause&&!e.cause&&(e.cause=s.cause),s.name&&(e.name=s.name),e}}catch{}try{return new Error(JSON.stringify(s))}catch{}}return new Error(s)};class v extends Error{}class J extends v{constructor(e,t,n,r){super(`${J.makeMessage(e,t,n)}`),this.status=e,this.headers=r,this.requestID=r==null?void 0:r.get("x-request-id"),this.error=t;const a=t;this.code=a==null?void 0:a.code,this.param=a==null?void 0:a.param,this.type=a==null?void 0:a.type}static makeMessage(e,t,n){const r=t!=null&&t.message?typeof t.message=="string"?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,n,r){if(!e||!r)return new ut({message:n,cause:Rt(t)});const a=t==null?void 0:t.error;return e===400?new Pn(e,a,n,r):e===401?new Tn(e,a,n,r):e===403?new Mn(e,a,n,r):e===404?new Nn(e,a,n,r):e===409?new jn(e,a,n,r):e===422?new Fn(e,a,n,r):e===429?new Ln(e,a,n,r):e>=500?new Dn(e,a,n,r):new J(e,a,n,r)}}class Q extends J{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}}class ut extends J{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}}class Lt extends ut{constructor({message:e}={}){super({message:e??"Request timed out."})}}class Pn extends J{}class Tn extends J{}class Mn extends J{}class Nn extends J{}class jn extends J{}class Fn extends J{}class Ln extends J{}class Dn extends J{}class Bn extends v{constructor(){super("Could not parse response content as the length limit was reached")}}class Un extends v{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}const rr=/^[a-z][a-z0-9+.-]*:/i,ar=s=>rr.test(s);function ir(s){return typeof s!="object"?{}:s??{}}function or(s){if(!s)return!0;for(const e in s)return!1;return!0}function cr(s,e){return Object.prototype.hasOwnProperty.call(s,e)}function _t(s){return s!=null&&typeof s=="object"&&!Array.isArray(s)}const lr=(s,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new v(`${s} must be an integer`);if(e<0)throw new v(`${s} must be a positive integer`);return e},ur=s=>{try{return JSON.parse(s)}catch{return}},Fe=s=>new Promise(e=>setTimeout(e,s)),st={off:0,error:200,warn:300,info:400,debug:500},on=(s,e,t)=>{if(s){if(cr(st,s))return s;X(t).warn(`${e} was set to ${JSON.stringify(s)}, expected one of ${JSON.stringify(Object.keys(st))}`)}};function ve(){}function Ue(s,e,t){return!e||st[s]>st[t]?ve:e[s].bind(e)}const dr={error:ve,warn:ve,info:ve,debug:ve};let cn=new WeakMap;function X(s){const e=s.logger,t=s.logLevel??"off";if(!e)return dr;const n=cn.get(e);if(n&&n[0]===t)return n[1];const r={error:Ue("error",e,t),warn:Ue("warn",e,t),info:Ue("info",e,t),debug:Ue("debug",e,t)};return cn.set(e,[t,r]),r}const le=s=>(s.options&&(s.options={...s.options},delete s.options.headers),s.headers&&(s.headers=Object.fromEntries((s.headers instanceof Headers?[...s.headers]:Object.entries(s.headers)).map(([e,t])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":t]))),"retryOfRequestLogID"in s&&(s.retryOfRequestLogID&&(s.retryOf=s.retryOfRequestLogID),delete s.retryOfRequestLogID),s),ye="5.0.1",hr=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function fr(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}const mr=()=>{var t;const s=fr();if(s==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":un(Deno.build.os),"X-Stainless-Arch":ln(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:((t=Deno.version)==null?void 0:t.deno)??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(s==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":un(globalThis.process.platform??"unknown"),"X-Stainless-Arch":ln(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};const e=pr();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ye,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function pr(){if(typeof navigator>"u"||!navigator)return null;const s=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(const{key:e,pattern:t}of s){const n=t.exec(navigator.userAgent);if(n){const r=n[1]||0,a=n[2]||0,i=n[3]||0;return{browser:e,version:`${r}.${a}.${i}`}}}return null}const ln=s=>s==="x32"?"x32":s==="x86_64"||s==="x64"?"x64":s==="arm"?"arm":s==="aarch64"||s==="arm64"?"arm64":s?`other:${s}`:"unknown",un=s=>(s=s.toLowerCase(),s.includes("ios")?"iOS":s==="android"?"Android":s==="darwin"?"MacOS":s==="win32"?"Windows":s==="freebsd"?"FreeBSD":s==="openbsd"?"OpenBSD":s==="linux"?"Linux":s?`Other:${s}`:"Unknown");let dn;const gr=()=>dn??(dn=mr());function _r(){if(typeof fetch<"u")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function Wn(...s){const e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...s)}function qn(s){let e=Symbol.asyncIterator in s?s[Symbol.asyncIterator]():s[Symbol.iterator]();return Wn({start(){},async pull(t){const{done:n,value:r}=await e.next();n?t.close():t.enqueue(r)},async cancel(){var t;await((t=e.return)==null?void 0:t.call(e))}})}function Jn(s){if(s[Symbol.asyncIterator])return s;const e=s.getReader();return{async next(){try{const t=await e.read();return t!=null&&t.done&&e.releaseLock(),t}catch(t){throw e.releaseLock(),t}},async return(){const t=e.cancel();return e.releaseLock(),await t,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function yr(s){var n,r;if(s===null||typeof s!="object")return;if(s[Symbol.asyncIterator]){await((r=(n=s[Symbol.asyncIterator]()).return)==null?void 0:r.call(n));return}const e=s.getReader(),t=e.cancel();e.releaseLock(),await t}const wr=({headers:s,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)}),$t="RFC3986",kt={RFC1738:s=>String(s).replace(/%20/g,"+"),RFC3986:s=>String(s)},br="RFC1738",xr=Array.isArray,Z=(()=>{const s=[];for(let e=0;e<256;++e)s.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return s})(),yt=1024,Sr=(s,e,t,n,r)=>{if(s.length===0)return s;let a=s;if(typeof s=="symbol"?a=Symbol.prototype.toString.call(s):typeof s!="string"&&(a=String(s)),t==="iso-8859-1")return escape(a).replace(/%u[0-9a-f]{4}/gi,function(o){return"%26%23"+parseInt(o.slice(2),16)+"%3B"});let i="";for(let o=0;o=yt?a.slice(o,o+yt):a,d=[];for(let y=0;y=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122||r===br&&(u===40||u===41)){d[d.length]=l.charAt(y);continue}if(u<128){d[d.length]=Z[u];continue}if(u<2048){d[d.length]=Z[192|u>>6]+Z[128|u&63];continue}if(u<55296||u>=57344){d[d.length]=Z[224|u>>12]+Z[128|u>>6&63]+Z[128|u&63];continue}y+=1,u=65536+((u&1023)<<10|l.charCodeAt(y)&1023),d[d.length]=Z[240|u>>18]+Z[128|u>>12&63]+Z[128|u>>6&63]+Z[128|u&63]}i+=d.join("")}return i};function Ar(s){return!s||typeof s!="object"?!1:!!(s.constructor&&s.constructor.isBuffer&&s.constructor.isBuffer(s))}function hn(s,e){if(xr(s)){const t=[];for(let n=0;n"u"&&(p=0)}if(typeof d=="function"?m=d(e,m):m instanceof Date?m=g==null?void 0:g(m):t==="comma"&&ee(m)&&(m=hn(m,function(P){return P instanceof Date?g==null?void 0:g(P):P})),m===null){if(a)return l&&!w?l(e,B.encoder,C,"key",h):e;m=""}if(Rr(m)||Ar(m)){if(l){const P=w?e:l(e,B.encoder,C,"key",h);return[(x==null?void 0:x(P))+"="+(x==null?void 0:x(l(m,B.encoder,C,"value",h)))]}return[(x==null?void 0:x(e))+"="+(x==null?void 0:x(String(m)))]}const k=[];if(typeof m>"u")return k;let I;if(t==="comma"&&ee(m))w&&l&&(m=hn(m,l)),I=[{value:m.length>0?m.join(",")||null:void 0}];else if(ee(d))I=d;else{const P=Object.keys(m);I=y?P.sort(y):P}const F=o?String(e).replace(/\./g,"%2E"):String(e),S=n&&ee(m)&&m.length===1?F+"[]":F;if(r&&ee(m)&&m.length===0)return S+"[]";for(let P=0;P"u"?s.encodeDotInKeys?!0:B.allowDots:!!s.allowDots;return{addQueryPrefix:typeof s.addQueryPrefix=="boolean"?s.addQueryPrefix:B.addQueryPrefix,allowDots:i,allowEmptyArrays:typeof s.allowEmptyArrays=="boolean"?!!s.allowEmptyArrays:B.allowEmptyArrays,arrayFormat:a,charset:e,charsetSentinel:typeof s.charsetSentinel=="boolean"?s.charsetSentinel:B.charsetSentinel,commaRoundTrip:!!s.commaRoundTrip,delimiter:typeof s.delimiter>"u"?B.delimiter:s.delimiter,encode:typeof s.encode=="boolean"?s.encode:B.encode,encodeDotInKeys:typeof s.encodeDotInKeys=="boolean"?s.encodeDotInKeys:B.encodeDotInKeys,encoder:typeof s.encoder=="function"?s.encoder:B.encoder,encodeValuesOnly:typeof s.encodeValuesOnly=="boolean"?s.encodeValuesOnly:B.encodeValuesOnly,filter:r,format:t,formatter:n,serializeDate:typeof s.serializeDate=="function"?s.serializeDate:B.serializeDate,skipNulls:typeof s.skipNulls=="boolean"?s.skipNulls:B.skipNulls,sort:typeof s.sort=="function"?s.sort:null,strictNullHandling:typeof s.strictNullHandling=="boolean"?s.strictNullHandling:B.strictNullHandling}}function kr(s,e={}){let t=s;const n=$r(e);let r,a;typeof n.filter=="function"?(a=n.filter,t=a("",t)):ee(n.filter)&&(a=n.filter,r=a);const i=[];if(typeof t!="object"||t===null)return"";const o=Xn[n.arrayFormat],l=o==="comma"&&n.commaRoundTrip;r||(r=Object.keys(t)),n.sort&&r.sort(n.sort);const d=new WeakMap;for(let g=0;g0?u+y:""}function Er(s){let e=0;for(const r of s)e+=r.length;const t=new Uint8Array(e);let n=0;for(const r of s)t.set(r,n),n+=r.length;return t}let fn;function Dt(s){let e;return(fn??(e=new globalThis.TextEncoder,fn=e.encode.bind(e)))(s)}let mn;function pn(s){let e;return(mn??(e=new globalThis.TextDecoder,mn=e.decode.bind(e)))(s)}var V,K;class dt{constructor(){V.set(this,void 0),K.set(this,void 0),R(this,V,new Uint8Array),R(this,K,null)}decode(e){if(e==null)return[];const t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?Dt(e):e;R(this,V,Er([c(this,V,"f"),t]));const n=[];let r;for(;(r=Or(c(this,V,"f"),c(this,K,"f")))!=null;){if(r.carriage&&c(this,K,"f")==null){R(this,K,r.index);continue}if(c(this,K,"f")!=null&&(r.index!==c(this,K,"f")+1||r.carriage)){n.push(pn(c(this,V,"f").subarray(0,c(this,K,"f")-1))),R(this,V,c(this,V,"f").subarray(c(this,K,"f"))),R(this,K,null);continue}const a=c(this,K,"f")!==null?r.preceding-1:r.preceding,i=pn(c(this,V,"f").subarray(0,a));n.push(i),R(this,V,c(this,V,"f").subarray(r.index)),R(this,K,null)}return n}flush(){return c(this,V,"f").length?this.decode(` -`):[]}}V=new WeakMap,K=new WeakMap;dt.NEWLINE_CHARS=new Set([` -`,"\r"]);dt.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Or(s,e){for(let r=e??0;r({next:()=>{if(a.length===0){const i=n.next();e.push(i),t.push(i)}return a.shift()}});return[new ne(()=>r(e),this.controller),new ne(()=>r(t),this.controller)]}toReadableStream(){const e=this;let t;return Wn({async start(){t=e[Symbol.asyncIterator]()},async pull(n){try{const{value:r,done:a}=await t.next();if(a)return n.close();const i=Dt(JSON.stringify(r)+` -`);n.enqueue(i)}catch(r){n.error(r)}},async cancel(){var n;await((n=t.return)==null?void 0:n.call(t))}})}}async function*Tr(s,e){if(!s.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new v("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new v("Attempted to iterate over a response with no body");const t=new Nr,n=new dt,r=Jn(s.body);for await(const a of Mr(r))for(const i of n.decode(a)){const o=t.decode(i);o&&(yield o)}for(const a of n.flush()){const i=t.decode(a);i&&(yield i)}}async function*Mr(s){let e=new Uint8Array;for await(const t of s){if(t==null)continue;const n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?Dt(t):t;let r=new Uint8Array(e.length+n.length);r.set(e),r.set(n,e.length),e=r;let a;for(;(a=Pr(e))!==-1;)yield e.slice(0,a),e=e.slice(a)}e.length>0&&(yield e)}class Nr{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;const a={event:this.event,data:this.data.join(` -`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],a}if(this.chunks.push(e),e.startsWith(":"))return null;let[t,n,r]=jr(e,":");return r.startsWith(" ")&&(r=r.substring(1)),t==="event"?this.event=r:t==="data"&&this.data.push(r),null}}function jr(s,e){const t=s.indexOf(e);return t!==-1?[s.substring(0,t),e,s.substring(t+e.length)]:[s,"",""]}async function Kn(s,e){const{response:t,requestLogID:n,retryOfRequestLogID:r,startTime:a}=e,i=await(async()=>{var u;if(e.options.stream)return X(s).debug("response",t.status,t.url,t.headers,t.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(t,e.controller):ne.fromSSEResponse(t,e.controller);if(t.status===204)return null;if(e.options.__binaryResponse)return t;const o=t.headers.get("content-type"),l=(u=o==null?void 0:o.split(";")[0])==null?void 0:u.trim();if((l==null?void 0:l.includes("application/json"))||(l==null?void 0:l.endsWith("+json"))){const g=await t.json();return Gn(g,t)}return await t.text()})();return X(s).debug(`[${n}] response parsed`,le({retryOfRequestLogID:r,url:t.url,status:t.status,body:i,durationMs:Date.now()-a})),i}function Gn(s,e){return!s||typeof s!="object"||Array.isArray(s)?s:Object.defineProperty(s,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Ie;class ht extends Promise{constructor(e,t,n=Kn){super(r=>{r(null)}),this.responsePromise=t,this.parseResponse=n,Ie.set(this,void 0),R(this,Ie,e)}_thenUnwrap(e){return new ht(c(this,Ie,"f"),this.responsePromise,async(t,n)=>Gn(e(await this.parseResponse(t,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){const[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(c(this,Ie,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}}Ie=new WeakMap;var We;class Qn{constructor(e,t,n,r){We.set(this,void 0),R(this,We,e),this.options=r,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){const e=this.nextPageRequestOptions();if(!e)throw new v("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await c(this,We,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(We=new WeakMap,Symbol.asyncIterator)](){for await(const e of this.iterPages())for(const t of e.getPaginatedItems())yield t}}class Fr extends ht{constructor(e,t,n){super(e,t,async(r,a)=>new n(r,a.response,await Kn(r,a),a.options))}async*[Symbol.asyncIterator](){const e=await this;for await(const t of e)yield t}}class ft extends Qn{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class L extends Qn{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){var n;const e=this.getPaginatedItems(),t=(n=e[e.length-1])==null?void 0:n.id;return t?{...this.options,query:{...ir(this.options.query),after:t}}:null}}const zn=()=>{var s;if(typeof File>"u"){const{process:e}=globalThis,t=typeof((s=e==null?void 0:e.versions)==null?void 0:s.node)=="string"&&parseInt(e.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(t?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Te(s,e,t){return zn(),new File(s,e??"unknown_file",t)}function Ge(s){return(typeof s=="object"&&s!==null&&("name"in s&&s.name&&String(s.name)||"url"in s&&s.url&&String(s.url)||"filename"in s&&s.filename&&String(s.filename)||"path"in s&&s.path&&String(s.path))||"").split(/[\\/]/).pop()||void 0}const Yn=s=>s!=null&&typeof s=="object"&&typeof s[Symbol.asyncIterator]=="function",fe=async(s,e)=>({...s,body:await Dr(s.body,e)}),gn=new WeakMap;function Lr(s){const e=typeof s=="function"?s:s.fetch,t=gn.get(e);if(t)return t;const n=(async()=>{try{const r="Response"in e?e.Response:(await e("data:,")).constructor,a=new FormData;return a.toString()!==await new r(a).text()}catch{return!0}})();return gn.set(e,n),n}const Dr=async(s,e)=>{if(!await Lr(e))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");const t=new FormData;return await Promise.all(Object.entries(s||{}).map(([n,r])=>Et(t,n,r))),t},Br=s=>s instanceof Blob&&"name"in s,Et=async(s,e,t)=>{if(t!==void 0){if(t==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")s.append(e,String(t));else if(t instanceof Response)s.append(e,Te([await t.blob()],Ge(t)));else if(Yn(t))s.append(e,Te([await new Response(qn(t)).blob()],Ge(t)));else if(Br(t))s.append(e,t,Ge(t));else if(Array.isArray(t))await Promise.all(t.map(n=>Et(s,e+"[]",n)));else if(typeof t=="object")await Promise.all(Object.entries(t).map(([n,r])=>Et(s,`${e}[${n}]`,r)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${t} instead`)}},Zn=s=>s!=null&&typeof s=="object"&&typeof s.size=="number"&&typeof s.type=="string"&&typeof s.text=="function"&&typeof s.slice=="function"&&typeof s.arrayBuffer=="function",Ur=s=>s!=null&&typeof s=="object"&&typeof s.name=="string"&&typeof s.lastModified=="number"&&Zn(s),Wr=s=>s!=null&&typeof s=="object"&&typeof s.url=="string"&&typeof s.blob=="function";async function qr(s,e,t){if(zn(),s=await s,Ur(s))return s instanceof File?s:Te([await s.arrayBuffer()],s.name);if(Wr(s)){const r=await s.blob();return e||(e=new URL(s.url).pathname.split(/[\\/]/).pop()),Te(await Ot(r),e,t)}const n=await Ot(s);if(e||(e=Ge(s)),!(t!=null&&t.type)){const r=n.find(a=>typeof a=="object"&&"type"in a&&a.type);typeof r=="string"&&(t={...t,type:r})}return Te(n,e,t)}async function Ot(s){var t;let e=[];if(typeof s=="string"||ArrayBuffer.isView(s)||s instanceof ArrayBuffer)e.push(s);else if(Zn(s))e.push(s instanceof Blob?s:await s.arrayBuffer());else if(Yn(s))for await(const n of s)e.push(...await Ot(n));else{const n=(t=s==null?void 0:s.constructor)==null?void 0:t.name;throw new Error(`Unexpected data type: ${typeof s}${n?`; constructor: ${n}`:""}${Jr(s)}`)}return e}function Jr(s){return typeof s!="object"||s===null?"":`; props: [${Object.getOwnPropertyNames(s).map(t=>`"${t}"`).join(", ")}]`}class ${constructor(e){this._client=e}}function es(s){return s.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}const Xr=(s=es)=>function(t,...n){if(t.length===1)return t[0];let r=!1;const a=t.reduce((y,u,g)=>(/[?#]/.test(u)&&(r=!0),y+u+(g===n.length?"":(r?encodeURIComponent:s)(String(n[g])))),""),i=a.split(/[?#]/,1)[0],o=[],l=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;let d;for(;(d=l.exec(i))!==null;)o.push({start:d.index,length:d[0].length});if(o.length>0){let y=0;const u=o.reduce((g,h)=>{const x=" ".repeat(h.start-y),w="^".repeat(h.length);return y=h.start+h.length,g+x+w},"");throw new v(`Path parameters result in path with invalid segments: -${a} -${u}`)}return a},f=Xr(es);let ts=class extends ${list(e,t={},n){return this._client.getAPIList(f`/chat/completions/${e}/messages`,L,{query:t,...n})}};function Hr(s){return typeof s.parse=="function"}const rt=s=>(s==null?void 0:s.role)==="assistant",ns=s=>(s==null?void 0:s.role)==="tool";var Pt,Qe,ze,Re,$e,Ye,ke,ae,Ee,at,it,we,ss;class Bt{constructor(){Pt.add(this),this.controller=new AbortController,Qe.set(this,void 0),ze.set(this,()=>{}),Re.set(this,()=>{}),$e.set(this,void 0),Ye.set(this,()=>{}),ke.set(this,()=>{}),ae.set(this,{}),Ee.set(this,!1),at.set(this,!1),it.set(this,!1),we.set(this,!1),R(this,Qe,new Promise((e,t)=>{R(this,ze,e,"f"),R(this,Re,t,"f")})),R(this,$e,new Promise((e,t)=>{R(this,Ye,e,"f"),R(this,ke,t,"f")})),c(this,Qe,"f").catch(()=>{}),c(this,$e,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},c(this,Pt,"m",ss).bind(this))},0)}_connected(){this.ended||(c(this,ze,"f").call(this),this._emit("connect"))}get ended(){return c(this,Ee,"f")}get errored(){return c(this,at,"f")}get aborted(){return c(this,it,"f")}abort(){this.controller.abort()}on(e,t){return(c(this,ae,"f")[e]||(c(this,ae,"f")[e]=[])).push({listener:t}),this}off(e,t){const n=c(this,ae,"f")[e];if(!n)return this;const r=n.findIndex(a=>a.listener===t);return r>=0&&n.splice(r,1),this}once(e,t){return(c(this,ae,"f")[e]||(c(this,ae,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{R(this,we,!0),e!=="error"&&this.once("error",n),this.once(e,t)})}async done(){R(this,we,!0),await c(this,$e,"f")}_emit(e,...t){if(c(this,Ee,"f"))return;e==="end"&&(R(this,Ee,!0),c(this,Ye,"f").call(this));const n=c(this,ae,"f")[e];if(n&&(c(this,ae,"f")[e]=n.filter(r=>!r.once),n.forEach(({listener:r})=>r(...t))),e==="abort"){const r=t[0];!c(this,we,"f")&&!(n!=null&&n.length)&&Promise.reject(r),c(this,Re,"f").call(this,r),c(this,ke,"f").call(this,r),this._emit("end");return}if(e==="error"){const r=t[0];!c(this,we,"f")&&!(n!=null&&n.length)&&Promise.reject(r),c(this,Re,"f").call(this,r),c(this,ke,"f").call(this,r),this._emit("end")}}_emitFinal(){}}Qe=new WeakMap,ze=new WeakMap,Re=new WeakMap,$e=new WeakMap,Ye=new WeakMap,ke=new WeakMap,ae=new WeakMap,Ee=new WeakMap,at=new WeakMap,it=new WeakMap,we=new WeakMap,Pt=new WeakSet,ss=function(e){if(R(this,at,!0),e instanceof Error&&e.name==="AbortError"&&(e=new Q),e instanceof Q)return R(this,it,!0),this._emit("abort",e);if(e instanceof v)return this._emit("error",e);if(e instanceof Error){const t=new v(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new v(String(e)))};function Ut(s){return(s==null?void 0:s.$brand)==="auto-parseable-response-format"}function Le(s){return(s==null?void 0:s.$brand)==="auto-parseable-tool"}function Vr(s,e){return!e||!rs(e)?{...s,choices:s.choices.map(t=>({...t,message:{...t.message,parsed:null,...t.message.tool_calls?{tool_calls:t.message.tool_calls}:void 0}}))}:Wt(s,e)}function Wt(s,e){const t=s.choices.map(n=>{var r;if(n.finish_reason==="length")throw new Bn;if(n.finish_reason==="content_filter")throw new Un;return{...n,message:{...n.message,...n.message.tool_calls?{tool_calls:((r=n.message.tool_calls)==null?void 0:r.map(a=>Gr(e,a)))??void 0}:void 0,parsed:n.message.content&&!n.message.refusal?Kr(e,n.message.content):null}}});return{...s,choices:t}}function Kr(s,e){var t,n;return((t=s.response_format)==null?void 0:t.type)!=="json_schema"?null:((n=s.response_format)==null?void 0:n.type)==="json_schema"?"$parseRaw"in s.response_format?s.response_format.$parseRaw(e):JSON.parse(e):null}function Gr(s,e){var n;const t=(n=s.tools)==null?void 0:n.find(r=>{var a;return((a=r.function)==null?void 0:a.name)===e.function.name});return{...e,function:{...e.function,parsed_arguments:Le(t)?t.$parseRaw(e.function.arguments):t!=null&&t.function.strict?JSON.parse(e.function.arguments):null}}}function Qr(s,e){var n;if(!s)return!1;const t=(n=s.tools)==null?void 0:n.find(r=>{var a;return((a=r.function)==null?void 0:a.name)===e.function.name});return Le(t)||(t==null?void 0:t.function.strict)||!1}function rs(s){var e;return Ut(s.response_format)?!0:((e=s.tools)==null?void 0:e.some(t=>Le(t)||t.type==="function"&&t.function.strict===!0))??!1}function zr(s){for(const e of s??[]){if(e.type!=="function")throw new v(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new v(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var H,Tt,ot,Mt,Nt,jt,as,is;const Yr=10;class os extends Bt{constructor(){super(...arguments),H.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){var n;this._chatCompletions.push(e),this._emit("chatCompletion",e);const t=(n=e.choices[0])==null?void 0:n.message;return t&&this._addMessage(t),e}_addMessage(e,t=!0){if("content"in e||(e.content=null),this.messages.push(e),t){if(this._emit("message",e),ns(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(rt(e)&&e.tool_calls)for(const n of e.tool_calls)n.type==="function"&&this._emit("functionToolCall",n.function)}}async finalChatCompletion(){await this.done();const e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new v("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),c(this,H,"m",Tt).call(this)}async finalMessage(){return await this.done(),c(this,H,"m",ot).call(this)}async finalFunctionToolCall(){return await this.done(),c(this,H,"m",Mt).call(this)}async finalFunctionToolCallResult(){return await this.done(),c(this,H,"m",Nt).call(this)}async totalUsage(){return await this.done(),c(this,H,"m",jt).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){const e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);const t=c(this,H,"m",ot).call(this);t&&this._emit("finalMessage",t);const n=c(this,H,"m",Tt).call(this);n&&this._emit("finalContent",n);const r=c(this,H,"m",Mt).call(this);r&&this._emit("finalFunctionToolCall",r);const a=c(this,H,"m",Nt).call(this);a!=null&&this._emit("finalFunctionToolCallResult",a),this._chatCompletions.some(i=>i.usage)&&this._emit("totalUsage",c(this,H,"m",jt).call(this))}async _createChatCompletion(e,t,n){const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),c(this,H,"m",as).call(this,t);const a=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Wt(a,t))}async _runChatCompletion(e,t,n){for(const r of t.messages)this._addMessage(r,!1);return await this._createChatCompletion(e,t,n)}async _runTools(e,t,n){var h,x,w;const r="tool",{tool_choice:a="auto",stream:i,...o}=t,l=typeof a!="string"&&((h=a==null?void 0:a.function)==null?void 0:h.name),{maxChatCompletions:d=Yr}=n||{},y=t.tools.map(C=>{if(Le(C)){if(!C.$callback)throw new v("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:C.$callback,name:C.function.name,description:C.function.description||"",parameters:C.function.parameters,parse:C.$parseRaw,strict:!0}}}return C}),u={};for(const C of y)C.type==="function"&&(u[C.function.name||C.function.function.name]=C.function);const g="tools"in t?y.map(C=>C.type==="function"?{type:"function",function:{name:C.function.name||C.function.function.name,parameters:C.function.parameters,description:C.function.description,strict:C.function.strict}}:C):void 0;for(const C of t.messages)this._addMessage(C,!1);for(let C=0;CJSON.stringify(se)).join(", ")}. Please try again`;this._addMessage({role:r,tool_call_id:p,content:M});continue}let F;try{F=Hr(I)?await I.parse(k):k}catch(M){const se=M instanceof Error?M.message:String(M);this._addMessage({role:r,tool_call_id:p,content:se});continue}const S=await I.function(F,this),P=c(this,H,"m",is).call(this,S);if(this._addMessage({role:r,tool_call_id:p,content:P}),l)return}}}}H=new WeakSet,Tt=function(){return c(this,H,"m",ot).call(this).content??null},ot=function(){let e=this.messages.length;for(;e-- >0;){const t=this.messages[e];if(rt(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new v("stream ended without producing a ChatCompletionMessage with role=assistant")},Mt=function(){var e,t;for(let n=this.messages.length-1;n>=0;n--){const r=this.messages[n];if(rt(r)&&((e=r==null?void 0:r.tool_calls)!=null&&e.length))return(t=r.tool_calls.at(-1))==null?void 0:t.function}},Nt=function(){for(let e=this.messages.length-1;e>=0;e--){const t=this.messages[e];if(ns(t)&&t.content!=null&&typeof t.content=="string"&&this.messages.some(n=>{var r;return n.role==="assistant"&&((r=n.tool_calls)==null?void 0:r.some(a=>a.type==="function"&&a.id===t.tool_call_id))}))return t.content}},jt=function(){const e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(const{usage:t}of this._chatCompletions)t&&(e.completion_tokens+=t.completion_tokens,e.prompt_tokens+=t.prompt_tokens,e.total_tokens+=t.total_tokens);return e},as=function(e){if(e.n!=null&&e.n>1)throw new v("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},is=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};class qt extends os{static runTools(e,t,n){const r=new qt,a={...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"runTools"}};return r._run(()=>r._runTools(e,t,a)),r}_addMessage(e,t=!0){super._addMessage(e,t),rt(e)&&e.content&&this._emit("content",e.content)}}const cs=1,ls=2,us=4,ds=8,hs=16,fs=32,ms=64,ps=128,gs=256,_s=ps|gs,ys=hs|fs|_s|ms,ws=cs|ls|ys,bs=us|ds,Zr=ws|bs,U={STR:cs,NUM:ls,ARR:us,OBJ:ds,NULL:hs,BOOL:fs,NAN:ms,INFINITY:ps,MINUS_INFINITY:gs,INF:_s,SPECIAL:ys,ATOM:ws,COLLECTION:bs,ALL:Zr};class ea extends Error{}class ta extends Error{}function na(s,e=U.ALL){if(typeof s!="string")throw new TypeError(`expecting str, got ${typeof s}`);if(!s.trim())throw new Error(`${s} is empty`);return sa(s.trim(),e)}const sa=(s,e)=>{const t=s.length;let n=0;const r=g=>{throw new ea(`${g} at position ${n}`)},a=g=>{throw new ta(`${g} at position ${n}`)},i=()=>(u(),n>=t&&r("Unexpected end of input"),s[n]==='"'?o():s[n]==="{"?l():s[n]==="["?d():s.substring(n,n+4)==="null"||U.NULL&e&&t-n<4&&"null".startsWith(s.substring(n))?(n+=4,null):s.substring(n,n+4)==="true"||U.BOOL&e&&t-n<4&&"true".startsWith(s.substring(n))?(n+=4,!0):s.substring(n,n+5)==="false"||U.BOOL&e&&t-n<5&&"false".startsWith(s.substring(n))?(n+=5,!1):s.substring(n,n+8)==="Infinity"||U.INFINITY&e&&t-n<8&&"Infinity".startsWith(s.substring(n))?(n+=8,1/0):s.substring(n,n+9)==="-Infinity"||U.MINUS_INFINITY&e&&1{const g=n;let h=!1;for(n++;n{n++,u();const g={};try{for(;s[n]!=="}";){if(u(),n>=t&&U.OBJ&e)return g;const h=o();u(),n++;try{const x=i();Object.defineProperty(g,h,{value:x,writable:!0,enumerable:!0,configurable:!0})}catch(x){if(U.OBJ&e)return g;throw x}u(),s[n]===","&&n++}}catch{if(U.OBJ&e)return g;r("Expected '}' at end of object")}return n++,g},d=()=>{n++;const g=[];try{for(;s[n]!=="]";)g.push(i()),u(),s[n]===","&&n++}catch{if(U.ARR&e)return g;r("Expected ']' at end of array")}return n++,g},y=()=>{if(n===0){s==="-"&&U.NUM&e&&r("Not sure what '-' is");try{return JSON.parse(s)}catch(h){if(U.NUM&e)try{return s[s.length-1]==="."?JSON.parse(s.substring(0,s.lastIndexOf("."))):JSON.parse(s.substring(0,s.lastIndexOf("e")))}catch{}a(String(h))}}const g=n;for(s[n]==="-"&&n++;s[n]&&!",]}".includes(s[n]);)n++;n==t&&!(U.NUM&e)&&r("Unterminated number literal");try{return JSON.parse(s.substring(g,n))}catch{s.substring(g,n)==="-"&&U.NUM&e&&r("Not sure what '-' is");try{return JSON.parse(s.substring(g,s.lastIndexOf("e")))}catch(x){a(String(x))}}},u=()=>{for(;nna(s,U.ALL^U.NUM);var D,re,pe,oe,bt,qe,xt,St,At,Je,Ct,yn;class je extends os{constructor(e){super(),D.add(this),re.set(this,void 0),pe.set(this,void 0),oe.set(this,void 0),R(this,re,e),R(this,pe,[])}get currentChatCompletionSnapshot(){return c(this,oe,"f")}static fromReadableStream(e){const t=new je(null);return t._run(()=>t._fromReadableStream(e)),t}static createChatCompletion(e,t,n){const r=new je(t);return r._run(()=>r._runChatCompletion(e,{...t,stream:!0},{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}async _createChatCompletion(e,t,n){var i;super._createChatCompletion;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),c(this,D,"m",bt).call(this);const a=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(const o of a)c(this,D,"m",xt).call(this,o);if((i=a.controller.signal)!=null&&i.aborted)throw new Q;return this._addChatCompletion(c(this,D,"m",Je).call(this))}async _fromReadableStream(e,t){var i;const n=t==null?void 0:t.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),c(this,D,"m",bt).call(this),this._connected();const r=ne.fromReadableStream(e,this.controller);let a;for await(const o of r)a&&a!==o.id&&this._addChatCompletion(c(this,D,"m",Je).call(this)),c(this,D,"m",xt).call(this,o),a=o.id;if((i=r.controller.signal)!=null&&i.aborted)throw new Q;return this._addChatCompletion(c(this,D,"m",Je).call(this))}[(re=new WeakMap,pe=new WeakMap,oe=new WeakMap,D=new WeakSet,bt=function(){this.ended||R(this,oe,void 0)},qe=function(t){let n=c(this,pe,"f")[t.index];return n||(n={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},c(this,pe,"f")[t.index]=n,n)},xt=function(t){var r,a,i,o,l,d,y,u,g,h,x,w,C,O,m;if(this.ended)return;const n=c(this,D,"m",yn).call(this,t);this._emit("chunk",t,n);for(const _ of t.choices){const p=n.choices[_.index];_.delta.content!=null&&((r=p.message)==null?void 0:r.role)==="assistant"&&((a=p.message)!=null&&a.content)&&(this._emit("content",_.delta.content,p.message.content),this._emit("content.delta",{delta:_.delta.content,snapshot:p.message.content,parsed:p.message.parsed})),_.delta.refusal!=null&&((i=p.message)==null?void 0:i.role)==="assistant"&&((o=p.message)!=null&&o.refusal)&&this._emit("refusal.delta",{delta:_.delta.refusal,snapshot:p.message.refusal}),((l=_.logprobs)==null?void 0:l.content)!=null&&((d=p.message)==null?void 0:d.role)==="assistant"&&this._emit("logprobs.content.delta",{content:(y=_.logprobs)==null?void 0:y.content,snapshot:((u=p.logprobs)==null?void 0:u.content)??[]}),((g=_.logprobs)==null?void 0:g.refusal)!=null&&((h=p.message)==null?void 0:h.role)==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:(x=_.logprobs)==null?void 0:x.refusal,snapshot:((w=p.logprobs)==null?void 0:w.refusal)??[]});const A=c(this,D,"m",qe).call(this,p);p.finish_reason&&(c(this,D,"m",At).call(this,p),A.current_tool_call_index!=null&&c(this,D,"m",St).call(this,p,A.current_tool_call_index));for(const k of _.delta.tool_calls??[])A.current_tool_call_index!==k.index&&(c(this,D,"m",At).call(this,p),A.current_tool_call_index!=null&&c(this,D,"m",St).call(this,p,A.current_tool_call_index)),A.current_tool_call_index=k.index;for(const k of _.delta.tool_calls??[]){const I=(C=p.message.tool_calls)==null?void 0:C[k.index];I!=null&&I.type&&((I==null?void 0:I.type)==="function"?this._emit("tool_calls.function.arguments.delta",{name:(O=I.function)==null?void 0:O.name,index:k.index,arguments:I.function.arguments,parsed_arguments:I.function.parsed_arguments,arguments_delta:((m=k.function)==null?void 0:m.arguments)??""}):(I==null||I.type,void 0))}}},St=function(t,n){var i,o,l;if(c(this,D,"m",qe).call(this,t).done_tool_calls.has(n))return;const a=(i=t.message.tool_calls)==null?void 0:i[n];if(!a)throw new Error("no tool call snapshot");if(!a.type)throw new Error("tool call snapshot missing `type`");if(a.type==="function"){const d=(l=(o=c(this,re,"f"))==null?void 0:o.tools)==null?void 0:l.find(y=>y.type==="function"&&y.function.name===a.function.name);this._emit("tool_calls.function.arguments.done",{name:a.function.name,index:n,arguments:a.function.arguments,parsed_arguments:Le(d)?d.$parseRaw(a.function.arguments):d!=null&&d.function.strict?JSON.parse(a.function.arguments):null})}else a.type},At=function(t){var r,a;const n=c(this,D,"m",qe).call(this,t);if(t.message.content&&!n.content_done){n.content_done=!0;const i=c(this,D,"m",Ct).call(this);this._emit("content.done",{content:t.message.content,parsed:i?i.$parseRaw(t.message.content):null})}t.message.refusal&&!n.refusal_done&&(n.refusal_done=!0,this._emit("refusal.done",{refusal:t.message.refusal})),(r=t.logprobs)!=null&&r.content&&!n.logprobs_content_done&&(n.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:t.logprobs.content})),(a=t.logprobs)!=null&&a.refusal&&!n.logprobs_refusal_done&&(n.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:t.logprobs.refusal}))},Je=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");const t=c(this,oe,"f");if(!t)throw new v("request ended without sending any chunks");return R(this,oe,void 0),R(this,pe,[]),ra(t,c(this,re,"f"))},Ct=function(){var n;const t=(n=c(this,re,"f"))==null?void 0:n.response_format;return Ut(t)?t:null},yn=function(t){var n,r,a,i;let o=c(this,oe,"f");const{choices:l,...d}=t;o?Object.assign(o,d):o=R(this,oe,{...d,choices:[]});for(const{delta:y,finish_reason:u,index:g,logprobs:h=null,...x}of t.choices){let w=o.choices[g];if(w||(w=o.choices[g]={finish_reason:u,index:g,message:{},logprobs:h,...x}),h)if(!w.logprobs)w.logprobs=Object.assign({},h);else{const{content:k,refusal:I,...F}=h;Object.assign(w.logprobs,F),k&&((n=w.logprobs).content??(n.content=[]),w.logprobs.content.push(...k)),I&&((r=w.logprobs).refusal??(r.refusal=[]),w.logprobs.refusal.push(...I))}if(u&&(w.finish_reason=u,c(this,re,"f")&&rs(c(this,re,"f")))){if(u==="length")throw new Bn;if(u==="content_filter")throw new Un}if(Object.assign(w,x),!y)continue;const{content:C,refusal:O,function_call:m,role:_,tool_calls:p,...A}=y;if(Object.assign(w.message,A),O&&(w.message.refusal=(w.message.refusal||"")+O),_&&(w.message.role=_),m&&(w.message.function_call?(m.name&&(w.message.function_call.name=m.name),m.arguments&&((a=w.message.function_call).arguments??(a.arguments=""),w.message.function_call.arguments+=m.arguments)):w.message.function_call=m),C&&(w.message.content=(w.message.content||"")+C,!w.message.refusal&&c(this,D,"m",Ct).call(this)&&(w.message.parsed=_n(w.message.content))),p){w.message.tool_calls||(w.message.tool_calls=[]);for(const{index:k,id:I,type:F,function:S,...P}of p){const M=(i=w.message.tool_calls)[k]??(i[k]={});Object.assign(M,P),I&&(M.id=I),F&&(M.type=F),S&&(M.function??(M.function={name:S.name??"",arguments:""})),S!=null&&S.name&&(M.function.name=S.name),S!=null&&S.arguments&&(M.function.arguments+=S.arguments,Qr(c(this,re,"f"),M)&&(M.function.parsed_arguments=_n(M.function.arguments)))}}}return o},Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("chunk",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new ne(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function ra(s,e){const{id:t,choices:n,created:r,model:a,system_fingerprint:i,...o}=s,l={...o,id:t,choices:n.map(({message:d,finish_reason:y,index:u,logprobs:g,...h})=>{if(!y)throw new v(`missing finish_reason for choice ${u}`);const{content:x=null,function_call:w,tool_calls:C,...O}=d,m=d.role;if(!m)throw new v(`missing role for choice ${u}`);if(w){const{arguments:_,name:p}=w;if(_==null)throw new v(`missing function_call.arguments for choice ${u}`);if(!p)throw new v(`missing function_call.name for choice ${u}`);return{...h,message:{content:x,function_call:{arguments:_,name:p},role:m,refusal:d.refusal??null},finish_reason:y,index:u,logprobs:g}}return C?{...h,index:u,finish_reason:y,logprobs:g,message:{...O,role:m,content:x,refusal:d.refusal??null,tool_calls:C.map((_,p)=>{const{function:A,type:k,id:I,...F}=_,{arguments:S,name:P,...M}=A||{};if(I==null)throw new v(`missing choices[${u}].tool_calls[${p}].id -${Xe(s)}`);if(k==null)throw new v(`missing choices[${u}].tool_calls[${p}].type -${Xe(s)}`);if(P==null)throw new v(`missing choices[${u}].tool_calls[${p}].function.name -${Xe(s)}`);if(S==null)throw new v(`missing choices[${u}].tool_calls[${p}].function.arguments -${Xe(s)}`);return{...F,id:I,type:k,function:{...M,name:P,arguments:S}}})}}:{...h,message:{...O,content:x,role:m,refusal:d.refusal??null},finish_reason:y,index:u,logprobs:g}}),created:r,model:a,object:"chat.completion",...i?{system_fingerprint:i}:{}};return Vr(l,e)}function Xe(s){return JSON.stringify(s)}class ct extends je{static fromReadableStream(e){const t=new ct(null);return t._run(()=>t._fromReadableStream(e)),t}static runTools(e,t,n){const r=new ct(t),a={...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"runTools"}};return r._run(()=>r._runTools(e,t,a)),r}}let Jt=class extends ${constructor(){super(...arguments),this.messages=new ts(this._client)}create(e,t){return this._client.post("/chat/completions",{body:e,...t,stream:e.stream??!1})}retrieve(e,t){return this._client.get(f`/chat/completions/${e}`,t)}update(e,t,n){return this._client.post(f`/chat/completions/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/chat/completions",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/chat/completions/${e}`,t)}parse(e,t){return zr(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t==null?void 0:t.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(n=>Wt(n,e))}runTools(e,t){return e.stream?ct.runTools(this._client,e,t):qt.runTools(this._client,e,t)}stream(e,t){return je.createChatCompletion(this._client,e,t)}};Jt.Messages=ts;class Xt extends ${constructor(){super(...arguments),this.completions=new Jt(this._client)}}Xt.Completions=Jt;const xs=Symbol("brand.privateNullableHeaders"),wn=Array.isArray;function*aa(s){if(!s)return;if(xs in s){const{values:n,nulls:r}=s;yield*n.entries();for(const a of r)yield[a,null];return}let e=!1,t;s instanceof Headers?t=s.entries():wn(s)?t=s:(e=!0,t=Object.entries(s??{}));for(let n of t){const r=n[0];if(typeof r!="string")throw new TypeError("expected header name to be a string");const a=wn(n[1])?n[1]:[n[1]];let i=!1;for(const o of a)o!==void 0&&(e&&!i&&(i=!0,yield[r,null]),yield[r,o])}}const b=s=>{const e=new Headers,t=new Set;for(const n of s){const r=new Set;for(const[a,i]of aa(n)){const o=a.toLowerCase();r.has(o)||(e.delete(a),r.add(o)),i===null?(e.delete(a),t.add(o)):(e.append(a,i),t.delete(o))}}return{[xs]:!0,values:e,nulls:t}};class Ss extends ${create(e,t){return this._client.post("/audio/speech",{body:e,...t,headers:b([{Accept:"application/octet-stream"},t==null?void 0:t.headers]),__binaryResponse:!0})}}class As extends ${create(e,t){return this._client.post("/audio/transcriptions",fe({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}}class Cs extends ${create(e,t){return this._client.post("/audio/translations",fe({body:e,...t,__metadata:{model:e.model}},this._client))}}class De extends ${constructor(){super(...arguments),this.transcriptions=new As(this._client),this.translations=new Cs(this._client),this.speech=new Ss(this._client)}}De.Transcriptions=As;De.Translations=Cs;De.Speech=Ss;class vs extends ${create(e,t){return this._client.post("/batches",{body:e,...t})}retrieve(e,t){return this._client.get(f`/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/batches",L,{query:e,...t})}cancel(e,t){return this._client.post(f`/batches/${e}/cancel`,t)}}class Is extends ${create(e,t){return this._client.post("/assistants",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/assistants/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/assistants/${e}`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e={},t){return this._client.getAPIList("/assistants",L,{query:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}delete(e,t){return this._client.delete(f`/assistants/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class Rs extends ${create(e,t){return this._client.post("/realtime/sessions",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class $s extends ${create(e,t){return this._client.post("/realtime/transcription_sessions",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}}class mt extends ${constructor(){super(...arguments),this.sessions=new Rs(this._client),this.transcriptionSessions=new $s(this._client)}}mt.Sessions=Rs;mt.TranscriptionSessions=$s;class ks extends ${create(e,t,n){return this._client.post(f`/threads/${e}/messages`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{thread_id:r}=t;return this._client.get(f`/threads/${r}/messages/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/messages/${e}`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/threads/${e}/messages`,L,{query:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t,n){const{thread_id:r}=t;return this._client.delete(f`/threads/${r}/messages/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class Es extends ${retrieve(e,t,n){const{thread_id:r,run_id:a,...i}=t;return this._client.get(f`/threads/${r}/runs/${a}/steps/${e}`,{query:i,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t,n){const{thread_id:r,...a}=t;return this._client.getAPIList(f`/threads/${r}/runs/${e}/steps`,L,{query:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}const ia=s=>{if(typeof Buffer<"u"){const e=Buffer.from(s,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{const e=atob(s),t=e.length,n=new Uint8Array(t);for(let r=0;r{var e,t,n,r;if(typeof globalThis.process<"u")return((e=vt==null?void 0:vt[s])==null?void 0:e.trim())??void 0;if(typeof globalThis.Deno<"u")return(r=(n=(t=globalThis.Deno.env)==null?void 0:t.get)==null?void 0:n.call(t,s))==null?void 0:r.trim()};var q,de,Ft,te,Ze,z,he,be,ue,lt,G,et,tt,Me,Oe,Pe,bn,xn,Sn,An,Cn,vn,In;class Ne extends Bt{constructor(){super(...arguments),q.add(this),Ft.set(this,[]),te.set(this,{}),Ze.set(this,{}),z.set(this,void 0),he.set(this,void 0),be.set(this,void 0),ue.set(this,void 0),lt.set(this,void 0),G.set(this,void 0),et.set(this,void 0),tt.set(this,void 0),Me.set(this,void 0)}[(Ft=new WeakMap,te=new WeakMap,Ze=new WeakMap,z=new WeakMap,he=new WeakMap,be=new WeakMap,ue=new WeakMap,lt=new WeakMap,G=new WeakMap,et=new WeakMap,tt=new WeakMap,Me=new WeakMap,q=new WeakSet,Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("event",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){const t=new de;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){var a;const n=t==null?void 0:t.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),this._connected();const r=ne.fromReadableStream(e,this.controller);for await(const i of r)c(this,q,"m",Oe).call(this,i);if((a=r.controller.signal)!=null&&a.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}toReadableStream(){return new ne(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,r){const a=new de;return a._run(()=>a._runToolAssistantStream(e,t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),a}async _createToolAssistantStream(e,t,n,r){var l;const a=r==null?void 0:r.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort()));const i={...n,stream:!0},o=await e.submitToolOutputs(t,i,{...r,signal:this.controller.signal});this._connected();for await(const d of o)c(this,q,"m",Oe).call(this,d);if((l=o.controller.signal)!=null&&l.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}static createThreadAssistantStream(e,t,n){const r=new de;return r._run(()=>r._threadAssistantStream(e,t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}static createAssistantStream(e,t,n,r){const a=new de;return a._run(()=>a._runAssistantStream(e,t,n,{...r,headers:{...r==null?void 0:r.headers,"X-Stainless-Helper-Method":"stream"}})),a}currentEvent(){return c(this,et,"f")}currentRun(){return c(this,tt,"f")}currentMessageSnapshot(){return c(this,z,"f")}currentRunStepSnapshot(){return c(this,Me,"f")}async finalRunSteps(){return await this.done(),Object.values(c(this,te,"f"))}async finalMessages(){return await this.done(),Object.values(c(this,Ze,"f"))}async finalRun(){if(await this.done(),!c(this,he,"f"))throw Error("Final run was not received.");return c(this,he,"f")}async _createThreadAssistantStream(e,t,n){var o;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort()));const a={...t,stream:!0},i=await e.createAndRun(a,{...n,signal:this.controller.signal});this._connected();for await(const l of i)c(this,q,"m",Oe).call(this,l);if((o=i.controller.signal)!=null&&o.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}async _createAssistantStream(e,t,n,r){var l;const a=r==null?void 0:r.signal;a&&(a.aborted&&this.controller.abort(),a.addEventListener("abort",()=>this.controller.abort()));const i={...n,stream:!0},o=await e.create(t,i,{...r,signal:this.controller.signal});this._connected();for await(const d of o)c(this,q,"m",Oe).call(this,d);if((l=o.controller.signal)!=null&&l.aborted)throw new Q;return this._addRun(c(this,q,"m",Pe).call(this))}static accumulateDelta(e,t){for(const[n,r]of Object.entries(t)){if(!e.hasOwnProperty(n)){e[n]=r;continue}let a=e[n];if(a==null){e[n]=r;continue}if(n==="index"||n==="type"){e[n]=r;continue}if(typeof a=="string"&&typeof r=="string")a+=r;else if(typeof a=="number"&&typeof r=="number")a+=r;else if(_t(a)&&_t(r))a=this.accumulateDelta(a,r);else if(Array.isArray(a)&&Array.isArray(r)){if(a.every(i=>typeof i=="string"||typeof i=="number")){a.push(...r);continue}for(const i of r){if(!_t(i))throw new Error(`Expected array delta entry to be an object but got: ${i}`);const o=i.index;if(o==null)throw console.error(i),new Error("Expected array delta entry to have an `index` property");if(typeof o!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${o}`);const l=a[o];l==null?a.push(i):a[o]=this.accumulateDelta(l,i)}continue}else throw Error(`Unhandled record type: ${n}, deltaValue: ${r}, accValue: ${a}`);e[n]=a}return e}_addRun(e){return e}async _threadAssistantStream(e,t,n){return await this._createThreadAssistantStream(t,e,n)}async _runAssistantStream(e,t,n,r){return await this._createAssistantStream(t,e,n,r)}async _runToolAssistantStream(e,t,n,r){return await this._createToolAssistantStream(t,e,n,r)}}de=Ne,Oe=function(e){if(!this.ended)switch(R(this,et,e),c(this,q,"m",Sn).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":c(this,q,"m",In).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":c(this,q,"m",xn).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":c(this,q,"m",bn).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier")}},Pe=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");if(!c(this,he,"f"))throw Error("Final run has not been received");return c(this,he,"f")},bn=function(e){const[t,n]=c(this,q,"m",Cn).call(this,e,c(this,z,"f"));R(this,z,t),c(this,Ze,"f")[t.id]=t;for(const r of n){const a=t.content[r.index];(a==null?void 0:a.type)=="text"&&this._emit("textCreated",a.text)}switch(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,t),e.data.delta.content)for(const r of e.data.delta.content){if(r.type=="text"&&r.text){let a=r.text,i=t.content[r.index];if(i&&i.type=="text")this._emit("textDelta",a,i.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(r.index!=c(this,be,"f")){if(c(this,ue,"f"))switch(c(this,ue,"f").type){case"text":this._emit("textDone",c(this,ue,"f").text,c(this,z,"f"));break;case"image_file":this._emit("imageFileDone",c(this,ue,"f").image_file,c(this,z,"f"));break}R(this,be,r.index)}R(this,ue,t.content[r.index])}break;case"thread.message.completed":case"thread.message.incomplete":if(c(this,be,"f")!==void 0){const r=e.data.content[c(this,be,"f")];if(r)switch(r.type){case"image_file":this._emit("imageFileDone",r.image_file,c(this,z,"f"));break;case"text":this._emit("textDone",r.text,c(this,z,"f"));break}}c(this,z,"f")&&this._emit("messageDone",e.data),R(this,z,void 0)}},xn=function(e){const t=c(this,q,"m",An).call(this,e);switch(R(this,Me,t),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":const n=e.data.delta;if(n.step_details&&n.step_details.type=="tool_calls"&&n.step_details.tool_calls&&t.step_details.type=="tool_calls")for(const a of n.step_details.tool_calls)a.index==c(this,lt,"f")?this._emit("toolCallDelta",a,t.step_details.tool_calls[a.index]):(c(this,G,"f")&&this._emit("toolCallDone",c(this,G,"f")),R(this,lt,a.index),R(this,G,t.step_details.tool_calls[a.index]),c(this,G,"f")&&this._emit("toolCallCreated",c(this,G,"f")));this._emit("runStepDelta",e.data.delta,t);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":R(this,Me,void 0),e.data.step_details.type=="tool_calls"&&c(this,G,"f")&&(this._emit("toolCallDone",c(this,G,"f")),R(this,G,void 0)),this._emit("runStepDone",e.data,t);break}},Sn=function(e){c(this,Ft,"f").push(e),this._emit("event",e)},An=function(e){switch(e.event){case"thread.run.step.created":return c(this,te,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let t=c(this,te,"f")[e.data.id];if(!t)throw Error("Received a RunStepDelta before creation of a snapshot");let n=e.data;if(n.delta){const r=de.accumulateDelta(t,n.delta);c(this,te,"f")[e.data.id]=r}return c(this,te,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":c(this,te,"f")[e.data.id]=e.data;break}if(c(this,te,"f")[e.data.id])return c(this,te,"f")[e.data.id];throw new Error("No snapshot available")},Cn=function(e,t){let n=[];switch(e.event){case"thread.message.created":return[e.data,n];case"thread.message.delta":if(!t)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let r=e.data;if(r.delta.content)for(const a of r.delta.content)if(a.index in t.content){let i=t.content[a.index];t.content[a.index]=c(this,q,"m",vn).call(this,a,i)}else t.content[a.index]=a,n.push(a);return[t,n];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(t)return[t,n];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},vn=function(e,t){return de.accumulateDelta(t,e)},In=function(e){switch(R(this,tt,e.data),e.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":R(this,he,e.data),c(this,G,"f")&&(this._emit("toolCallDone",c(this,G,"f")),R(this,G,void 0));break}};let Ht=class extends ${constructor(){super(...arguments),this.steps=new Es(this._client)}create(e,t,n){const{include:r,...a}=t;return this._client.post(f`/threads/${e}/runs`,{query:{include:r},body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}retrieve(e,t,n){const{thread_id:r}=t;return this._client.get(f`/threads/${r}/runs/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/runs/${e}`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/threads/${e}/runs`,L,{query:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}cancel(e,t,n){const{thread_id:r}=t;return this._client.post(f`/threads/${r}/runs/${e}/cancel`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t,n);return await this.poll(r.id,{thread_id:e},n)}createAndStream(e,t,n){return Ne.createAssistantStream(e,this._client.beta.threads.runs,t,n)}async poll(e,t,n){var a;const r=b([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const{data:i,response:o}=await this.retrieve(e,t,{...n,headers:{...n==null?void 0:n.headers,...r}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=o.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,t,n){return Ne.createAssistantStream(e,this._client.beta.threads.runs,t,n)}submitToolOutputs(e,t,n){const{thread_id:r,...a}=t;return this._client.post(f`/threads/${r}/runs/${e}/submit_tool_outputs`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers]),stream:t.stream??!1})}async submitToolOutputsAndPoll(e,t,n){const r=await this.submitToolOutputs(e,t,n);return await this.poll(r.id,t,n)}submitToolOutputsStream(e,t,n){return Ne.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};Ht.Steps=Es;class pt extends ${constructor(){super(...arguments),this.runs=new Ht(this._client),this.messages=new ks(this._client)}create(e={},t){return this._client.post("/threads",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/threads/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/threads/${e}`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t){return this._client.delete(f`/threads/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}createAndRun(e,t){return this._client.post("/threads/runs",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers]),stream:e.stream??!1})}async createAndRunPoll(e,t){const n=await this.createAndRun(e,t);return await this.runs.poll(n.id,{thread_id:n.thread_id},t)}createAndRunStream(e,t){return Ne.createThreadAssistantStream(e,this._client.beta.threads,t)}}pt.Runs=Ht;pt.Messages=ks;class Be extends ${constructor(){super(...arguments),this.realtime=new mt(this._client),this.assistants=new Is(this._client),this.threads=new pt(this._client)}}Be.Realtime=mt;Be.Assistants=Is;Be.Threads=pt;class Os extends ${create(e,t){return this._client.post("/completions",{body:e,...t,stream:e.stream??!1})}}class Ps extends ${retrieve(e,t,n){const{container_id:r}=t;return this._client.get(f`/containers/${r}/files/${e}/content`,{...n,headers:b([{Accept:"application/binary"},n==null?void 0:n.headers]),__binaryResponse:!0})}}let Vt=class extends ${constructor(){super(...arguments),this.content=new Ps(this._client)}create(e,t,n){return this._client.post(f`/containers/${e}/files`,fe({body:t,...n},this._client))}retrieve(e,t,n){const{container_id:r}=t;return this._client.get(f`/containers/${r}/files/${e}`,n)}list(e,t={},n){return this._client.getAPIList(f`/containers/${e}/files`,L,{query:t,...n})}delete(e,t,n){const{container_id:r}=t;return this._client.delete(f`/containers/${r}/files/${e}`,{...n,headers:b([{Accept:"*/*"},n==null?void 0:n.headers])})}};Vt.Content=Ps;class Kt extends ${constructor(){super(...arguments),this.files=new Vt(this._client)}create(e,t){return this._client.post("/containers",{body:e,...t})}retrieve(e,t){return this._client.get(f`/containers/${e}`,t)}list(e={},t){return this._client.getAPIList("/containers",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/containers/${e}`,{...t,headers:b([{Accept:"*/*"},t==null?void 0:t.headers])})}}Kt.Files=Vt;class Ts extends ${create(e,t){const n=!!e.encoding_format;let r=n?e.encoding_format:"base64";n&&X(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);const a=this._client.post("/embeddings",{body:{...e,encoding_format:r},...t});return n?a:(X(this._client).debug("embeddings/decoding base64 embeddings from base64"),a._thenUnwrap(i=>(i&&i.data&&i.data.forEach(o=>{const l=o.embedding;o.embedding=ia(l)}),i)))}}class Ms extends ${retrieve(e,t,n){const{eval_id:r,run_id:a}=t;return this._client.get(f`/evals/${r}/runs/${a}/output_items/${e}`,n)}list(e,t,n){const{eval_id:r,...a}=t;return this._client.getAPIList(f`/evals/${r}/runs/${e}/output_items`,L,{query:a,...n})}}class Gt extends ${constructor(){super(...arguments),this.outputItems=new Ms(this._client)}create(e,t,n){return this._client.post(f`/evals/${e}/runs`,{body:t,...n})}retrieve(e,t,n){const{eval_id:r}=t;return this._client.get(f`/evals/${r}/runs/${e}`,n)}list(e,t={},n){return this._client.getAPIList(f`/evals/${e}/runs`,L,{query:t,...n})}delete(e,t,n){const{eval_id:r}=t;return this._client.delete(f`/evals/${r}/runs/${e}`,n)}cancel(e,t,n){const{eval_id:r}=t;return this._client.post(f`/evals/${r}/runs/${e}`,n)}}Gt.OutputItems=Ms;class Qt extends ${constructor(){super(...arguments),this.runs=new Gt(this._client)}create(e,t){return this._client.post("/evals",{body:e,...t})}retrieve(e,t){return this._client.get(f`/evals/${e}`,t)}update(e,t,n){return this._client.post(f`/evals/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/evals",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/evals/${e}`,t)}}Qt.Runs=Gt;let Ns=class extends ${create(e,t){return this._client.post("/files",fe({body:e,...t},this._client))}retrieve(e,t){return this._client.get(f`/files/${e}`,t)}list(e={},t){return this._client.getAPIList("/files",L,{query:e,...t})}delete(e,t){return this._client.delete(f`/files/${e}`,t)}content(e,t){return this._client.get(f`/files/${e}/content`,{...t,headers:b([{Accept:"application/binary"},t==null?void 0:t.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:t=5e3,maxWait:n=30*60*1e3}={}){const r=new Set(["processed","error","deleted"]),a=Date.now();let i=await this.retrieve(e);for(;!i.status||!r.has(i.status);)if(await Fe(t),i=await this.retrieve(e),Date.now()-a>n)throw new Lt({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return i}};class js extends ${}let Fs=class extends ${run(e,t){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...t})}validate(e,t){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...t})}};class zt extends ${constructor(){super(...arguments),this.graders=new Fs(this._client)}}zt.Graders=Fs;class Ls extends ${create(e,t,n){return this._client.getAPIList(f`/fine_tuning/checkpoints/${e}/permissions`,ft,{body:t,method:"post",...n})}retrieve(e,t={},n){return this._client.get(f`/fine_tuning/checkpoints/${e}/permissions`,{query:t,...n})}delete(e,t,n){const{fine_tuned_model_checkpoint:r}=t;return this._client.delete(f`/fine_tuning/checkpoints/${r}/permissions/${e}`,n)}}let Yt=class extends ${constructor(){super(...arguments),this.permissions=new Ls(this._client)}};Yt.Permissions=Ls;class Ds extends ${list(e,t={},n){return this._client.getAPIList(f`/fine_tuning/jobs/${e}/checkpoints`,L,{query:t,...n})}}class Zt extends ${constructor(){super(...arguments),this.checkpoints=new Ds(this._client)}create(e,t){return this._client.post("/fine_tuning/jobs",{body:e,...t})}retrieve(e,t){return this._client.get(f`/fine_tuning/jobs/${e}`,t)}list(e={},t){return this._client.getAPIList("/fine_tuning/jobs",L,{query:e,...t})}cancel(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/cancel`,t)}listEvents(e,t={},n){return this._client.getAPIList(f`/fine_tuning/jobs/${e}/events`,L,{query:t,...n})}pause(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/pause`,t)}resume(e,t){return this._client.post(f`/fine_tuning/jobs/${e}/resume`,t)}}Zt.Checkpoints=Ds;class xe extends ${constructor(){super(...arguments),this.methods=new js(this._client),this.jobs=new Zt(this._client),this.checkpoints=new Yt(this._client),this.alpha=new zt(this._client)}}xe.Methods=js;xe.Jobs=Zt;xe.Checkpoints=Yt;xe.Alpha=zt;class Bs extends ${}class en extends ${constructor(){super(...arguments),this.graderModels=new Bs(this._client)}}en.GraderModels=Bs;class Us extends ${createVariation(e,t){return this._client.post("/images/variations",fe({body:e,...t},this._client))}edit(e,t){return this._client.post("/images/edits",fe({body:e,...t},this._client))}generate(e,t){return this._client.post("/images/generations",{body:e,...t})}}class Ws extends ${retrieve(e,t){return this._client.get(f`/models/${e}`,t)}list(e){return this._client.getAPIList("/models",ft,e)}delete(e,t){return this._client.delete(f`/models/${e}`,t)}}class qs extends ${create(e,t){return this._client.post("/moderations",{body:e,...t})}}function oa(s,e){return!e||!la(e)?{...s,output_parsed:null,output:s.output.map(t=>t.type==="function_call"?{...t,parsed_arguments:null}:t.type==="message"?{...t,content:t.content.map(n=>({...n,parsed:null}))}:t)}:Js(s,e)}function Js(s,e){const t=s.output.map(r=>{if(r.type==="function_call")return{...r,parsed_arguments:ha(e,r)};if(r.type==="message"){const a=r.content.map(i=>i.type==="output_text"?{...i,parsed:ca(e,i.text)}:i);return{...r,content:a}}return r}),n=Object.assign({},s,{output:t});return Object.getOwnPropertyDescriptor(s,"output_text")||Xs(n),Object.defineProperty(n,"output_parsed",{enumerable:!0,get(){for(const r of n.output)if(r.type==="message"){for(const a of r.content)if(a.type==="output_text"&&a.parsed!==null)return a.parsed}return null}}),n}function ca(s,e){var t,n,r,a;return((n=(t=s.text)==null?void 0:t.format)==null?void 0:n.type)!=="json_schema"?null:"$parseRaw"in((r=s.text)==null?void 0:r.format)?((a=s.text)==null?void 0:a.format).$parseRaw(e):JSON.parse(e)}function la(s){var e;return!!Ut((e=s.text)==null?void 0:e.format)}function ua(s){return(s==null?void 0:s.$brand)==="auto-parseable-tool"}function da(s,e){return s.find(t=>t.type==="function"&&t.name===e)}function ha(s,e){const t=da(s.tools??[],e.name);return{...e,...e,parsed_arguments:ua(t)?t.$parseRaw(e.arguments):t!=null&&t.strict?JSON.parse(e.arguments):null}}function Xs(s){const e=[];for(const t of s.output)if(t.type==="message")for(const n of t.content)n.type==="output_text"&&e.push(n.text);s.output_text=e.join("")}var ge,He,ce,Ve,Rn,$n,kn,En;class tn extends Bt{constructor(e){super(),ge.add(this),He.set(this,void 0),ce.set(this,void 0),Ve.set(this,void 0),R(this,He,e)}static createResponse(e,t,n){const r=new tn(t);return r._run(()=>r._createOrRetrieveResponse(e,t,{...n,headers:{...n==null?void 0:n.headers,"X-Stainless-Helper-Method":"stream"}})),r}async _createOrRetrieveResponse(e,t,n){var o;const r=n==null?void 0:n.signal;r&&(r.aborted&&this.controller.abort(),r.addEventListener("abort",()=>this.controller.abort())),c(this,ge,"m",Rn).call(this);let a,i=null;"response_id"in t?(a=await e.responses.retrieve(t.response_id,{stream:!0},{...n,signal:this.controller.signal,stream:!0}),i=t.starting_after??null):a=await e.responses.create({...t,stream:!0},{...n,signal:this.controller.signal}),this._connected();for await(const l of a)c(this,ge,"m",$n).call(this,l,i);if((o=a.controller.signal)!=null&&o.aborted)throw new Q;return c(this,ge,"m",kn).call(this)}[(He=new WeakMap,ce=new WeakMap,Ve=new WeakMap,ge=new WeakSet,Rn=function(){this.ended||R(this,ce,void 0)},$n=function(t,n){if(this.ended)return;const r=(i,o)=>{(n==null||o.sequence_number>n)&&this._emit(i,o)},a=c(this,ge,"m",En).call(this,t);switch(r("event",t),t.type){case"response.output_text.delta":{const i=a.output[t.output_index];if(!i)throw new v(`missing output at index ${t.output_index}`);if(i.type==="message"){const o=i.content[t.content_index];if(!o)throw new v(`missing content at index ${t.content_index}`);if(o.type!=="output_text")throw new v(`expected content to be 'output_text', got ${o.type}`);r("response.output_text.delta",{...t,snapshot:o.text})}break}case"response.function_call_arguments.delta":{const i=a.output[t.output_index];if(!i)throw new v(`missing output at index ${t.output_index}`);i.type==="function_call"&&r("response.function_call_arguments.delta",{...t,snapshot:i.arguments});break}default:r(t.type,t);break}},kn=function(){if(this.ended)throw new v("stream has ended, this shouldn't happen");const t=c(this,ce,"f");if(!t)throw new v("request ended without sending any events");R(this,ce,void 0);const n=fa(t,c(this,He,"f"));return R(this,Ve,n),n},En=function(t){let n=c(this,ce,"f");if(!n){if(t.type!=="response.created")throw new v(`When snapshot hasn't been set yet, expected 'response.created' event, got ${t.type}`);return n=R(this,ce,t.response),n}switch(t.type){case"response.output_item.added":{n.output.push(t.item);break}case"response.content_part.added":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);r.type==="message"&&r.content.push(t.part);break}case"response.output_text.delta":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);if(r.type==="message"){const a=r.content[t.content_index];if(!a)throw new v(`missing content at index ${t.content_index}`);if(a.type!=="output_text")throw new v(`expected content to be 'output_text', got ${a.type}`);a.text+=t.delta}break}case"response.function_call_arguments.delta":{const r=n.output[t.output_index];if(!r)throw new v(`missing output at index ${t.output_index}`);r.type==="function_call"&&(r.arguments+=t.delta);break}case"response.completed":{R(this,ce,t.response);break}}return n},Symbol.asyncIterator)](){const e=[],t=[];let n=!1;return this.on("event",r=>{const a=t.shift();a?a.resolve(r):e.push(r)}),this.on("end",()=>{n=!0;for(const r of t)r.resolve(void 0);t.length=0}),this.on("abort",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),this.on("error",r=>{n=!0;for(const a of t)a.reject(r);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((a,i)=>t.push({resolve:a,reject:i})).then(a=>a?{value:a,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();const e=c(this,Ve,"f");if(!e)throw new v("stream ended without producing a ChatCompletion");return e}}function fa(s,e){return oa(s,e)}class Hs extends ${list(e,t={},n){return this._client.getAPIList(f`/responses/${e}/input_items`,L,{query:t,...n})}}class nn extends ${constructor(){super(...arguments),this.inputItems=new Hs(this._client)}create(e,t){return this._client.post("/responses",{body:e,...t,stream:e.stream??!1})._thenUnwrap(n=>("object"in n&&n.object==="response"&&Xs(n),n))}retrieve(e,t={},n){return this._client.get(f`/responses/${e}`,{query:t,...n,stream:(t==null?void 0:t.stream)??!1})}delete(e,t){return this._client.delete(f`/responses/${e}`,{...t,headers:b([{Accept:"*/*"},t==null?void 0:t.headers])})}parse(e,t){return this._client.responses.create(e,t)._thenUnwrap(n=>Js(n,e))}stream(e,t){return tn.createResponse(this._client,e,t)}cancel(e,t){return this._client.post(f`/responses/${e}/cancel`,{...t,headers:b([{Accept:"*/*"},t==null?void 0:t.headers])})}}nn.InputItems=Hs;class Vs extends ${create(e,t,n){return this._client.post(f`/uploads/${e}/parts`,fe({body:t,...n},this._client))}}class sn extends ${constructor(){super(...arguments),this.parts=new Vs(this._client)}create(e,t){return this._client.post("/uploads",{body:e,...t})}cancel(e,t){return this._client.post(f`/uploads/${e}/cancel`,t)}complete(e,t,n){return this._client.post(f`/uploads/${e}/complete`,{body:t,...n})}}sn.Parts=Vs;const ma=async s=>{const e=await Promise.allSettled(s),t=e.filter(r=>r.status==="rejected");if(t.length){for(const r of t)console.error(r.reason);throw new Error(`${t.length} promise(s) failed - see the above errors`)}const n=[];for(const r of e)r.status==="fulfilled"&&n.push(r.value);return n};class Ks extends ${create(e,t,n){return this._client.post(f`/vector_stores/${e}/file_batches`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{vector_store_id:r}=t;return this._client.get(f`/vector_stores/${r}/file_batches/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}cancel(e,t,n){const{vector_store_id:r}=t;return this._client.post(f`/vector_stores/${r}/file_batches/${e}/cancel`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t);return await this.poll(e,r.id,n)}listFiles(e,t,n){const{vector_store_id:r,...a}=t;return this._client.getAPIList(f`/vector_stores/${r}/file_batches/${e}/files`,L,{query:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async poll(e,t,n){var a;const r=b([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const{data:i,response:o}=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse();switch(i.status){case"in_progress":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=o.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:t,fileIds:n=[]},r){if(t==null||t.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");const a=(r==null?void 0:r.maxConcurrency)??5,i=Math.min(a,t.length),o=this._client,l=t.values(),d=[...n];async function y(g){for(let h of g){const x=await o.files.create({file:h,purpose:"assistants"},r);d.push(x.id)}}const u=Array(i).fill(l).map(y);return await ma(u),await this.createAndPoll(e,{file_ids:d})}}class Gs extends ${create(e,t,n){return this._client.post(f`/vector_stores/${e}/files`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}retrieve(e,t,n){const{vector_store_id:r}=t;return this._client.get(f`/vector_stores/${r}/files/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}update(e,t,n){const{vector_store_id:r,...a}=t;return this._client.post(f`/vector_stores/${r}/files/${e}`,{body:a,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e,t={},n){return this._client.getAPIList(f`/vector_stores/${e}/files`,L,{query:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}delete(e,t,n){const{vector_store_id:r}=t;return this._client.delete(f`/vector_stores/${r}/files/${e}`,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}async createAndPoll(e,t,n){const r=await this.create(e,t,n);return await this.poll(e,r.id,n)}async poll(e,t,n){var a;const r=b([n==null?void 0:n.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":((a=n==null?void 0:n.pollIntervalMs)==null?void 0:a.toString())??void 0}]);for(;;){const i=await this.retrieve(t,{vector_store_id:e},{...n,headers:r}).withResponse(),o=i.data;switch(o.status){case"in_progress":let l=5e3;if(n!=null&&n.pollIntervalMs)l=n.pollIntervalMs;else{const d=i.response.headers.get("openai-poll-after-ms");if(d){const y=parseInt(d);isNaN(y)||(l=y)}}await Fe(l);break;case"failed":case"completed":return o}}}async upload(e,t,n){const r=await this._client.files.create({file:t,purpose:"assistants"},n);return this.create(e,{file_id:r.id},n)}async uploadAndPoll(e,t,n){const r=await this.upload(e,t,n);return await this.poll(e,r.id,n)}content(e,t,n){const{vector_store_id:r}=t;return this._client.getAPIList(f`/vector_stores/${r}/files/${e}/content`,ft,{...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}class gt extends ${constructor(){super(...arguments),this.files=new Gs(this._client),this.fileBatches=new Ks(this._client)}create(e,t){return this._client.post("/vector_stores",{body:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}retrieve(e,t){return this._client.get(f`/vector_stores/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}update(e,t,n){return this._client.post(f`/vector_stores/${e}`,{body:t,...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}list(e={},t){return this._client.getAPIList("/vector_stores",L,{query:e,...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}delete(e,t){return this._client.delete(f`/vector_stores/${e}`,{...t,headers:b([{"OpenAI-Beta":"assistants=v2"},t==null?void 0:t.headers])})}search(e,t,n){return this._client.getAPIList(f`/vector_stores/${e}/search`,ft,{body:t,method:"post",...n,headers:b([{"OpenAI-Beta":"assistants=v2"},n==null?void 0:n.headers])})}}gt.Files=Gs;gt.FileBatches=Ks;var rn,nt;class T{constructor({baseURL:e=Ce("OPENAI_BASE_URL"),apiKey:t=Ce("OPENAI_API_KEY"),organization:n=Ce("OPENAI_ORG_ID")??null,project:r=Ce("OPENAI_PROJECT_ID")??null,...a}={}){if(nt.set(this,void 0),this.completions=new Os(this),this.chat=new Xt(this),this.embeddings=new Ts(this),this.files=new Ns(this),this.images=new Us(this),this.audio=new De(this),this.moderations=new qs(this),this.models=new Ws(this),this.fineTuning=new xe(this),this.graders=new en(this),this.vectorStores=new gt(this),this.beta=new Be(this),this.batches=new vs(this),this.uploads=new sn(this),this.responses=new nn(this),this.evals=new Qt(this),this.containers=new Kt(this),t===void 0)throw new v("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");const i={apiKey:t,organization:n,project:r,...a,baseURL:e||"https://api.openai.com/v1"};if(!i.dangerouslyAllowBrowser&&hr())throw new v(`It looks like you're running in a browser-like environment. - -This is disabled by default, as it risks exposing your secret API credentials to attackers. -If you understand the risks and have appropriate mitigations in place, -you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g., - -new OpenAI({ apiKey, dangerouslyAllowBrowser: true }); - -https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety -`);this.baseURL=i.baseURL,this.timeout=i.timeout??rn.DEFAULT_TIMEOUT,this.logger=i.logger??console;const o="warn";this.logLevel=o,this.logLevel=on(i.logLevel,"ClientOptions.logLevel",this)??on(Ce("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??o,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??_r(),R(this,nt,wr),this._options=i,this.apiKey=t,this.organization=n,this.project=r}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){}authHeaders(e){return b([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return kr(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${ye}`}defaultIdempotencyKey(){return`stainless-node-retry-${On()}`}makeStatusError(e,t,n,r){return J.generate(e,t,n,r)}buildURL(e,t){const n=ar(e)?new URL(e):new URL(this.baseURL+(this.baseURL.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),r=this.defaultQuery();return or(r)||(t={...r,...t}),typeof t=="object"&&t&&!Array.isArray(t)&&(n.search=this.stringifyQuery(t)),n.toString()}async prepareOptions(e){}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(r=>({method:e,path:t,...r})))}request(e,t=null){return new ht(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){var O,m;const r=await e,a=r.maxRetries??this.maxRetries;t==null&&(t=a),await this.prepareOptions(r);const{req:i,url:o,timeout:l}=this.buildRequest(r,{retryCount:a-t});await this.prepareRequest(i,{url:o,options:r});const d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),y=n===void 0?"":`, retryOf: ${n}`,u=Date.now();if(X(this).debug(`[${d}] sending request`,le({retryOfRequestLogID:n,method:r.method,url:o,options:r,headers:i.headers})),(O=r.signal)!=null&&O.aborted)throw new Q;const g=new AbortController,h=await this.fetchWithTimeout(o,i,l,g).catch(Rt),x=Date.now();if(h instanceof Error){const _=`retrying, ${t} attempts remaining`;if((m=r.signal)!=null&&m.aborted)throw new Q;const p=It(h)||/timed? ?out/i.test(String(h)+("cause"in h?String(h.cause):""));if(t)return X(this).info(`[${d}] connection ${p?"timed out":"failed"} - ${_}`),X(this).debug(`[${d}] connection ${p?"timed out":"failed"} (${_})`,le({retryOfRequestLogID:n,url:o,durationMs:x-u,message:h.message})),this.retryRequest(r,t,n??d);throw X(this).info(`[${d}] connection ${p?"timed out":"failed"} - error; no more retries left`),X(this).debug(`[${d}] connection ${p?"timed out":"failed"} (error; no more retries left)`,le({retryOfRequestLogID:n,url:o,durationMs:x-u,message:h.message})),p?new Lt:new ut({cause:h})}const w=[...h.headers.entries()].filter(([_])=>_==="x-request-id").map(([_,p])=>", "+_+": "+JSON.stringify(p)).join(""),C=`[${d}${y}${w}] ${i.method} ${o} ${h.ok?"succeeded":"failed"} with status ${h.status} in ${x-u}ms`;if(!h.ok){const _=this.shouldRetry(h);if(t&&_){const S=`retrying, ${t} attempts remaining`;return await yr(h.body),X(this).info(`${C} - ${S}`),X(this).debug(`[${d}] response error (${S})`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:x-u})),this.retryRequest(r,t,n??d,h.headers)}const p=_?"error; no more retries left":"error; not retryable";X(this).info(`${C} - ${p}`);const A=await h.text().catch(S=>Rt(S).message),k=ur(A),I=k?void 0:A;throw X(this).debug(`[${d}] response error (${p})`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,message:I,durationMs:Date.now()-u})),this.makeStatusError(h.status,k,I,h.headers)}return X(this).info(C),X(this).debug(`[${d}] response start`,le({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:x-u})),{response:h,options:r,controller:g,requestLogID:d,retryOfRequestLogID:n,startTime:u}}getAPIList(e,t,n){return this.requestAPIList(t,{method:"get",path:e,...n})}requestAPIList(e,t){const n=this.makeRequest(t,null,void 0);return new Fr(this,n,e)}async fetchWithTimeout(e,t,n,r){const{signal:a,method:i,...o}=t||{};a&&a.addEventListener("abort",()=>r.abort());const l=setTimeout(()=>r.abort(),n),d=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body=="object"&&o.body!==null&&Symbol.asyncIterator in o.body,y={signal:r.signal,...d?{duplex:"half"}:{},method:"GET",...o};i&&(y.method=i.toUpperCase());try{return await this.fetch.call(void 0,e,y)}finally{clearTimeout(l)}}shouldRetry(e){const t=e.headers.get("x-should-retry");return t==="true"?!0:t==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let a;const i=r==null?void 0:r.get("retry-after-ms");if(i){const l=parseFloat(i);Number.isNaN(l)||(a=l)}const o=r==null?void 0:r.get("retry-after");if(o&&!a){const l=parseFloat(o);Number.isNaN(l)?a=Date.parse(o)-Date.now():a=l*1e3}if(!(a&&0<=a&&a<60*1e3)){const l=e.maxRetries??this.maxRetries;a=this.calculateDefaultRetryTimeoutMillis(t,l)}return await Fe(a),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){const a=t-e,i=Math.min(.5*Math.pow(2,a),8),o=1-Math.random()*.25;return i*o*1e3}buildRequest(e,{retryCount:t=0}={}){const n={...e},{method:r,path:a,query:i}=n,o=this.buildURL(a,i);"timeout"in n&&lr("timeout",n.timeout),n.timeout=n.timeout??this.timeout;const{bodyHeaders:l,body:d}=this.buildBody({options:n}),y=this.buildHeaders({options:e,method:r,bodyHeaders:l,retryCount:t});return{req:{method:r,headers:y,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&d instanceof globalThis.ReadableStream&&{duplex:"half"},...d&&{body:d},...this.fetchOptions??{},...n.fetchOptions??{}},url:o,timeout:n.timeout}}buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let a={};this.idempotencyHeader&&t!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),a[this.idempotencyHeader]=e.idempotencyKey);const i=b([a,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...gr(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(i),i.values}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};const n=b([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:qn(e)}:c(this,nt,"f").call(this,{body:e,headers:n})}}rn=T,nt=new WeakMap;T.OpenAI=rn;T.DEFAULT_TIMEOUT=6e5;T.OpenAIError=v;T.APIError=J;T.APIConnectionError=ut;T.APIConnectionTimeoutError=Lt;T.APIUserAbortError=Q;T.NotFoundError=Nn;T.ConflictError=jn;T.RateLimitError=Ln;T.BadRequestError=Pn;T.AuthenticationError=Tn;T.InternalServerError=Dn;T.PermissionDeniedError=Mn;T.UnprocessableEntityError=Fn;T.toFile=qr;T.Completions=Os;T.Chat=Xt;T.Embeddings=Ts;T.Files=Ns;T.Images=Us;T.Audio=De;T.Moderations=qs;T.Models=Ws;T.FineTuning=xe;T.Graders=en;T.VectorStores=gt;T.Beta=Be;T.Batches=vs;T.Uploads=sn;T.Responses=nn;T.Evals=Qt;T.Containers=Kt;const pa=Zs(()=>import("./docs-BrInh2Pn.js"),[],import.meta.url);let Ke=null;async function ga(s){if(Ke)return Ke;const e=await s.getObjectViewSystem("state","","香"),t=await s.getObjectViewSystem("channel","","香"),n=await s.getObjectViewSystem("device","","香"),r=await s.getObjectViewSystem("folder","","香"),a=await s.getObjectViewSystem("enum","","香");return Ke=Object.assign(e,t,n,r,a),Ke}function _e(s,e){return s&&typeof s=="object"?s[e]||s.en:s||""}async function _a(s){var x,w,C,O;const e=W.I18n.getLanguage(),t=await ga(s),n=Object.keys(t).sort(),r=new er,a=[],i=["UNREACH_STICKY"],o=[tr.Types.info],l=[],d=[],y=[],u=[];n.forEach(m=>{var _,p,A;((_=t[m])==null?void 0:_.type)==="enum"?l.push(m):(A=(p=t[m])==null?void 0:p.common)!=null&&A.smartName&&u.push(m)}),l.forEach(m=>{m.startsWith("enum.rooms.")?d.push(m):m.startsWith("enum.functions.")&&y.push(m);const _=t[m].common.members;_!=null&&_.length&&_.forEach(p=>{t[p]&&(u.includes(p)||u.push(p))})});const g={id:"",objects:t,_keysOptional:n,_usedIdsOptional:a,ignoreIndicators:i,excludedTypes:o},h=[];u.forEach(m=>{g.id=m;const _=r.detect(g);_&&_.forEach(p=>{var me;const A=(me=p.states.find(N=>N.id))==null?void 0:me.id;if(!A||h.find(N=>N.id===A))return;const k=t[A],I={id:A,name:_e(k.common.name,e),type:k.type,deviceType:p.type,states:p.states.filter(N=>N.id).map(N=>({id:N.id,name:N.name,role:N.defaultRole,type:t[N.id].common.type,unit:t[N.id].common.unit,read:t[N.id].common.read===void 0?!0:t[N.id].common.read,write:t[N.id].common.write===void 0?!0:t[N.id].common.write}))},F=A.split(".");let S,P;(k.type==="channel"||k.type==="state")&&(F.pop(),S=F.join("."),t[S]&&(t[S].type==="channel"||t[S].type==="folder")?(F.pop(),P=F.join("."),(!t[P]||t[P].type!=="device"&&t[S].type!=="folder")&&(P=void 0)):S=void 0);const M=d.find(N=>{var ie,Se,Ae;return(ie=t[N].common.members)!=null&&ie.includes(A)||S&&((Se=t[N].common.members)!=null&&Se.includes(S))?!0:P&&((Ae=t[N].common.members)==null?void 0:Ae.includes(P))});M&&(I.room=_e(t[M].common.name,e));const se=y.find(N=>{var ie,Se,Ae;return(ie=t[N].common.members)!=null&&ie.includes(A)||S&&((Se=t[N].common.members)!=null&&Se.includes(S))?!0:P&&((Ae=t[N].common.members)==null?void 0:Ae.includes(P))});se&&(I.function=_e(t[se].common.name,e)),h.push(I)})});for(let m=0;m(await pa).default,wa={ru:"Russian",en:"English",de:"German",es:"Spanish",fr:"French",it:"Italian",pl:"Polish",nl:"Dutch",pt:"Portuguese",uk:"Ukrainian","zh-cn":"Chinese"},Fa=s=>{const[e,t]=Y.useState(window.localStorage.getItem("openai-question")||""),[n,r]=Y.useState(""),[a,i]=Y.useState(!1),[o,l]=Y.useState(!1),[d,y]=Y.useState(window.localStorage.getItem("openai-model")||"gpt-4o"),[u,g]=Y.useState(!1),h=Y.useRef(null),x=Y.useRef(null),w=Y.useRef(null),C=Y.useCallback(async()=>{var p;let O;h.current?O=h.current:(O=await _a(s.socket),h.current=O,console.log(`devices: ${JSON.stringify(O,null,2)}`));let m;if(x.current)m=x.current;else{const A=Object.keys(s.runningInstances);for(let k=0;kM.trim());for(;P[0]==="";)P.shift();S=`${P.map(M=>`// ${M}`).join(` -`)} -${S}`}console.log(I),r(S||"")}catch(A){console.log(JSON.stringify(A)),A.error&&l(A.error.message),console.error(`Cannot request: ${A}, ${JSON.stringify(A.error||A,null,2)}`)}i(!1)},[e,d,s.runningInstances,s.socket]);return E.jsxs(j.Dialog,{maxWidth:"lg",sx:{"& .MuiDialog-paper":{height:"calc(100% - 100px)"}},open:!0,onClose:()=>s.onClose(),fullWidth:!0,children:[u&&E.jsxs(j.Dialog,{maxWidth:"lg",open:!0,onClose:()=>g(!1),fullWidth:!0,children:[E.jsx(j.DialogTitle,{children:W.I18n.t("No Chat GPT Key found")}),E.jsxs(j.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8},children:[E.jsx("div",{children:W.I18n.t("You have to enter OpenAI API key in the configuration of javascript adapter.")}),E.jsx(j.Button,{variant:"contained",onClick:()=>{const O=Object.keys(s.runningInstances);window.open(`../../#tab-instances/config/${O[0]||"system.adapter.javascript.0"}`,"_blank"),g(!1)},children:W.I18n.t("Open configuration")})]}),E.jsx(j.DialogActions,{children:E.jsx(j.Button,{variant:"contained",startIcon:E.jsx(an,{}),onClick:()=>g(!1),children:W.I18n.t("Close")})})]}),E.jsx(j.DialogTitle,{children:W.I18n.t("AI code generator")}),E.jsxs(j.DialogContent,{style:{display:"flex",flexDirection:"column",gap:8,height:"100%"},children:[E.jsx("div",{children:E.jsx(j.TextField,{variant:"standard",multiline:!0,autoFocus:!0,disabled:a,fullWidth:!0,onKeyUp:O=>{O.key==="Enter"&&O.ctrlKey&&C()},label:W.I18n.t("Enter your question"),helperText:W.I18n.t("Press Ctrl+Enter to get the answer"),value:e,onChange:O=>{window.localStorage.setItem("openai-question",O.target.value),t(O.target.value)}})}),E.jsxs("div",{style:{display:"flex",alignItems:"baseline"},children:[E.jsx(j.Button,{variant:"contained",disabled:a||!e,startIcon:E.jsx(sr,{}),onClick:async()=>C(),children:a?E.jsx(j.CircularProgress,{size:24}):W.I18n.t("Ask")}),E.jsxs(j.FormControl,{style:{width:150,marginLeft:20},variant:"standard",children:[E.jsx(j.InputLabel,{children:W.I18n.t("Model")}),E.jsxs(j.Select,{variant:"standard",value:d,onChange:O=>{window.localStorage.setItem("openai-model",O.target.value),o&&l(!1),y(O.target.value)},children:[E.jsx(j.MenuItem,{value:"gpt-4o",children:"GPT-4o"}),E.jsx(j.MenuItem,{value:"gpt-4-turbo",children:"GPT-4 Turbo"}),E.jsx(j.MenuItem,{value:"gpt-4-32k",children:"GPT-4 32k"}),E.jsx(j.MenuItem,{value:"gpt-4",children:"GPT-4"}),E.jsx(j.MenuItem,{value:"gpt-3.5-turbo-16k",children:"GPT-3.5 Turbo"})]})]})]}),E.jsx("div",{children:W.I18n.t("Result")}),E.jsx("div",{style:{height:"calc(100% - 155px)"},children:o?E.jsx("div",{style:{color:s.themeType==="dark"?"#984242":"#bb0000"},children:o}):E.jsx(nr,{triggerPrettier:1,adapterName:s.adapterName,runningInstances:s.runningInstances,style:{height:"100%",width:"100%",resize:"none"},name:"ai",socket:s.socket,readOnly:!0,checkJs:!0,code:n,isDark:s.themeType==="dark",language:s.language||"javascript"})})]}),E.jsxs(j.DialogActions,{children:[E.jsx(j.Button,{color:"grey",variant:"outlined",disabled:!n,startIcon:E.jsx(Ys,{}),onClick:()=>{W.Utils.copyToClipboard(n),window.alert(W.I18n.t("Copied"))},children:W.I18n.t("Copy to clipboard")}),E.jsx(j.Button,{color:"primary",variant:"contained",disabled:!n||o,startIcon:E.jsx(zs,{}),onClick:()=>{s.onAddCode(n),s.onClose()},children:W.I18n.t("Use generated code")}),E.jsx(j.Button,{color:"grey",variant:"contained",startIcon:E.jsx(an,{}),onClick:()=>s.onClose(),children:W.I18n.t("Close")})]})]})};export{Fa as default}; diff --git a/admin/assets/ScriptEditor-DCULXCiS.js b/admin/assets/ScriptEditor-2NACU7zq.js similarity index 94% rename from admin/assets/ScriptEditor-DCULXCiS.js rename to admin/assets/ScriptEditor-2NACU7zq.js index 345393fc7..5119101d9 100644 --- a/admin/assets/ScriptEditor-DCULXCiS.js +++ b/admin/assets/ScriptEditor-2NACU7zq.js @@ -1,2 +1,2 @@ -import{j as e}from"./createSvgIcon-DMsh-YeH.js";import{R as i}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as r,I as n}from"./index-f32XoI0M.js";import{i as a}from"./index-hex25_NL.js";import l from"./ScriptEditorVanillaMonaco-CZnuN4bN.js";import{I as c}from"./Save-BSBgRX7g.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";const o={textArea:{width:"calc(100% - 10px)",resize:"none"},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"},args:s=>({color:s.palette.mode==="dark"?"white":"black",height:30,width:"100%",fontSize:16}),argsTitle:s=>({color:s.palette.mode==="dark"?"white":"black",fontWeight:"bold"})};class k extends i.Component{constructor(t){super(t),this.state={changed:!1,source:!t.source&&t.isReturn?` +import{j as e}from"./createSvgIcon-DMsh-YeH.js";import{R as i}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as r,I as n}from"./index-f32XoI0M.js";import{i as a}from"./index-dMNZJoGO.js";import l from"./ScriptEditorVanillaMonaco-B14Clvtt.js";import{I as c}from"./Save-BSBgRX7g.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";const o={textArea:{width:"calc(100% - 10px)",resize:"none"},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"},args:s=>({color:s.palette.mode==="dark"?"white":"black",height:30,width:"100%",fontSize:16}),argsTitle:s=>({color:s.palette.mode==="dark"?"white":"black",fontWeight:"bold"})};class k extends i.Component{constructor(t){super(t),this.state={changed:!1,source:!t.source&&t.isReturn?` return false`:t.source}}componentDidMount(){setTimeout(()=>{var t;try{(t=window.document.getElementById("source-text-area"))==null||t.focus()}catch{}},100)}handleCancel(){this.props.onClose(!1)}handleOk(){(!this.props.isReturn||this.state.source.includes("return "))&&this.props.onClose(this.state.source)}onChange(t){this.setState({changed:!0,source:t})}render(){return e.jsxs(r.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":o.dialog},fullWidth:!0,open:!0,"aria-labelledby":"source-dialog-title",children:[e.jsx(r.DialogTitle,{id:"source-dialog-title",children:a.I18n.t("Function editor")}),e.jsxs(r.DialogContent,{style:o.fullHeight,children:[this.props.args&&e.jsxs(r.Box,{sx:o.args,children:[e.jsx(r.Box,{component:"span",sx:o.argsTitle,children:a.I18n.t("function (")}),this.props.args,e.jsx(r.Box,{component:"span",sx:o.argsTitle,children:")"})]},"arguments"),e.jsx(l,{triggerPrettier:1,adapterName:this.props.adapterName,runningInstances:this.props.runningInstances,style:{...o.textArea,height:this.props.args?"calc(100% - 30px)":"100%"},name:"blockly",socket:this.props.socket,readOnly:!1,checkJs:!1,changed:this.state.changed,code:this.state.source,isDark:this.props.themeType==="dark",onChange:t=>this.onChange(t),language:"javascript"},"scriptEditor")]}),e.jsxs(r.DialogActions,{children:[e.jsx(r.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:e.jsx(c,{}),children:a.I18n.t("Save")}),e.jsx(r.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:e.jsx(n,{}),children:a.I18n.t("Cancel")})]})]})}}export{k as default}; diff --git a/admin/assets/ScriptEditorVanillaMonaco-CZnuN4bN.js b/admin/assets/ScriptEditorVanillaMonaco-B14Clvtt.js similarity index 99% rename from admin/assets/ScriptEditorVanillaMonaco-CZnuN4bN.js rename to admin/assets/ScriptEditorVanillaMonaco-B14Clvtt.js index 8c91cd9bc..fc2aef8df 100644 --- a/admin/assets/ScriptEditorVanillaMonaco-CZnuN4bN.js +++ b/admin/assets/ScriptEditorVanillaMonaco-B14Clvtt.js @@ -1 +1 @@ -import{j as n}from"./createSvgIcon-DMsh-YeH.js";import{R as S}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as p,o as b,aA as C}from"./index-f32XoI0M.js";import{i as f}from"./index-hex25_NL.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";function v(w){return/^script\.js\.global\./.test(w)}let O=0;function E(w){const t=/\x1b\[[0-9;]*m/g;return w.replace(t,"")}class R extends S.Component{monacoDiv=null;editor=null;monaco=window.monaco;insert="";originalCode;runningInstancesStr;monacoCounter=0;location;breakpoints;lastSearch="";typings={};decorations=[];triggerPrettier;constructor(t){super(t),this.state={name:"current",isDark:t.isDark||!1,language:t.language||"javascript",readOnly:t.readOnly||!1,alive:!0,check:!1,searchText:this.props.searchText||"",typingsLoaded:!1,showError:null},this.triggerPrettier=t.triggerPrettier,this.runningInstancesStr=JSON.stringify(this.props.runningInstances),this.originalCode=t.code||"",this.monacoDiv=S.createRef()}waitForMonaco(t){var e,s,o,r,l,a,h,g;let i=!!((r=(o=(s=(e=this.monaco)==null?void 0:e.languages)==null?void 0:s.typescript)==null?void 0:o.typescriptDefaults)!=null&&r.getCompilerOptions);if(!i||!this.props.runningInstances){if(this.monaco=window.monaco,i=!!((g=(h=(a=(l=this.monaco)==null?void 0:l.languages)==null?void 0:a.typescript)==null?void 0:h.typescriptDefaults)!=null&&g.getCompilerOptions),this.monacoCounter++,!i&&this.monacoCounter<20){console.log("wait for monaco loaded"),setTimeout(()=>this.waitForMonaco(t),200);return}this.monacoCounter>=20&&console.error("Cannot load monaco!")}else t&&t()}loadTypings(t){if(!this.editor)return;t||=this.props.runningInstances;const i=t&&Object.keys(t).find(e=>t==null?void 0:t[e]);i&&this.props.socket.sendTo(i.replace("system.adapter.",""),"loadTypings",null).then(e=>{this.setState({alive:!0,check:!0,typingsLoaded:!0}),this.setTypeCheck(!0),e.typings?(this.typings=e.typings,this.setEditorTypings(this.state.name)):console.error(`failed to load typings: ${e.error}`)})}componentDidMount(){var e,s,o,r,l,a,h,g,y,k,d,u;let t=!!((r=(o=(s=(e=this.monaco)==null?void 0:e.languages)==null?void 0:s.typescript)==null?void 0:o.typescriptDefaults)!=null&&r.getCompilerOptions);if((!t||!this.props.runningInstances)&&(this.monaco=window.monaco,t=!!((g=(h=(a=(l=this.monaco)==null?void 0:l.languages)==null?void 0:a.typescript)==null?void 0:h.typescriptDefaults)!=null&&g.getCompilerOptions),!t)){console.log("wait for monaco loaded..."),this.waitForMonaco(()=>this.componentDidMount());return}if(!this.editor&&t&&this.monaco){console.log("Init editor"),(k=(y=this.props).onRegisterSelect)==null||k.call(y,()=>{var m;if(this.editor){const D=this.editor.getSelection();if(D)return(m=this.editor.getModel())==null?void 0:m.getValueInRange(D)}});const c=this.monaco.languages.typescript.typescriptDefaults.getCompilerOptions();c.allowJs=!0,c.checkJs=this.props.checkJs!==!1,c.noLib=!0,c.lib=[],c.useUnknownInCatchVariables=!1,c.moduleResolution=this.monaco.languages.typescript.ModuleResolutionKind.NodeJs,c.target=this.monaco.languages.typescript.ScriptTarget.ESNext,c.module=this.monaco.languages.typescript.ModuleKind.ESNext,c.allowNonTsExtensions=!0,this.monaco.languages.typescript.typescriptDefaults.setCompilerOptions(c),this.setTypeCheck(!1),(d=this.monacoDiv)!=null&&d.current&&(this.editor=this.monaco.editor.create((u=this.monacoDiv)==null?void 0:u.current,{lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,glyphMargin:!!this.props.breakpoints,colorDecorators:!0}),this.editor.onDidChangeModelContent(()=>this.onChange()),this.loadTypings(),this.props.onForceSave&&this.editor.addCommand(this.monaco.KeyMod.CtrlCmd|this.monaco.KeyCode.KeyS,()=>this.props.onForceSave&&this.props.onForceSave()),setTimeout(()=>{this.highlightText(this.state.searchText),this.location=this.props.location||void 0,this.breakpoints=this.props.breakpoints,this.showDecorators()}))}const i={selectOnLineNumbers:!0,scrollBeyondLastLine:!1,automaticLayout:!0,readOnly:this.state.readOnly,language:this.state.language,isDark:this.state.isDark};this.setEditorOptions(i),this.editor&&(this.editor.focus(),this.editor.setValue(this.originalCode),this.props.onToggleBreakpoint?this.editor.onMouseDown(c=>{var D;const m=c.target;this.props.onToggleBreakpoint&&((D=m.detail)==null?void 0:D.glyphMarginLeft)!==void 0&&m.position&&this.props.onToggleBreakpoint(m.position.lineNumber-1)}):this.editor.onMouseDown(()=>{}))}setEditorOptions(t){var i;t&&(t.language&&this.setEditorLanguage(t.language),this.editor&&(t.readOnly!==void 0&&this.editor.updateOptions({readOnly:t.readOnly}),t.lineWrap!==void 0&&this.editor.updateOptions({wordWrap:t.lineWrap?"on":"off"})),t.typeCheck!==void 0&&this.setTypeCheck(t.typeCheck),t.isDark!==void 0&&((i=this.monaco)==null||i.editor.setTheme(t.isDark?"vs-dark":"vs")))}componentWillUnmount(){var t,i;this.editor&&((i=(t=this.props).onRegisterSelect)==null||i.call(t,null),this.editor.dispose(),this.editor=null)}async doPrettier(){var e,s,o,r;const t=this.props.runningInstances&&Object.keys(this.props.runningInstances).find(l=>{var a;return(a=this.props.runningInstances)==null?void 0:a[l]});if(!t){window.alert(f.I18n.t("No script adapter instance found to format the code"));return}const i=await this.props.socket.sendTo(t.replace("system.adapter.",""),"prettier",{code:(e=this.editor)==null?void 0:e.getValue(),type:this.state.language});i.error?this.setState({showError:{title:f.I18n.t("Error formatting code"),message:E(i.error)}}):i.code&&((s=this.editor)==null||s.setValue(i.code),(r=(o=this.props).onChange)==null||r.call(o,i.code),this.showDecorators())}setEditorLanguage(t){var e;if(!this.editor)return;const i=this.editor.getModel();if(i){const s=i.getValue(),o=i.uri.path,r=typeof o=="string"&&o.includes(".")?o.substring(0,o.lastIndexOf(".")):"index",l=t==="javascript"?"js":t==="typescript"?"ts":t;i.dispose();const a=t==="javascript"||t==="typescript"?"typescript":t,h=(e=this.monaco)==null?void 0:e.editor.createModel(s,a,this.monaco.Uri.from({scheme:window.location.protocol.replace(":",""),path:`${r}${O++}.${l}`}));h&&this.editor.setModel(h)}}setTypeCheck(t){var e,s;const i={noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive};(e=this.monaco)==null||e.languages.typescript.typescriptDefaults.setDiagnosticsOptions(i),(s=this.monaco)==null||s.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive})}setEditorTypings(t=""){var o,r,l,a,h,g,y,k;const i=v(t),e=`${t}.d.ts`,s=[];for(const d of Object.keys(this.typings))i&&(d==="global.d.ts"||d.startsWith("script.js.global")&&d!==e)||s.push({filePath:d,content:this.typings[d]});if((a=(l=(r=(o=this.monaco)==null?void 0:o.languages)==null?void 0:r.typescript)==null?void 0:l.typescriptDefaults)!=null&&a.setExtraLibs)this.monaco.languages.typescript.typescriptDefaults.setExtraLibs(s);else if((k=(y=(g=(h=this.monaco)==null?void 0:h.languages)==null?void 0:g.typescript)==null?void 0:y.typescriptDefaults)!=null&&k.addExtraLib){const d=this.monaco.languages.typescript.typescriptDefaults.getExtraLibs();s.forEach(u=>{!d[u.filePath]&&this.monaco&&this.monaco.languages.typescript.typescriptDefaults.addExtraLib(u.content,u.filePath)})}}insertTextIntoEditor(t){if(!this.editor||!this.monaco)return;const i=this.editor.getSelection();if(i){const e=new this.monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editor.executeEdits("",[{range:e,text:t,forceMoveMarkers:!0}])}this.editor.focus()}highlightText(t){var e;if(!this.editor||!this.monaco)return;const i=t?(e=this.editor.getModel())==null?void 0:e.findMatches(t,!0,!1,!1,null,!0):void 0;if(i!=null&&i.length)i.forEach(s=>{var o;return(o=this.editor)==null?void 0:o.setSelection(s.range)}),this.editor.revealLine(i[0].range.startLineNumber);else{const s=this.editor.getPosition();if(s){const o=s.lineNumber,r=s.column;this.editor.setSelection(new this.monaco.Range(o,r,o,r))}}}showDecorators(){var i;const t=[];if(this.location&&this.monaco&&(t.push({range:new this.monaco.Range(this.location.lineNumber+1,(this.location.columnNumber||0)+1,this.location.lineNumber+1,1e3),options:{isWholeLine:!1,className:this.props.isDark?"monacoCurrentLineDark":"monacoCurrentLine"}}),t.push({range:new this.monaco.Range(this.location.lineNumber+1,0,this.location.lineNumber+1,0),options:{isWholeLine:!0,className:this.props.isDark?"monacoCurrentFullLineDark":"monacoCurrentFullLine"}})),(i=this.breakpoints)==null||i.forEach(e=>{this.monaco&&t.push({range:new this.monaco.Range(e.location.lineNumber+1,0,e.location.lineNumber+1,100),options:{isWholeLine:!0,glyphMarginClassName:this.props.isDark?"monacoBreakPointDark":"monacoBreakPoint"}})}),this.editor){const e=this.editor.getModel();e&&(this.decorations=e.deltaDecorations(this.decorations,t))}}initNewScript(t,i){var e;this.setState({name:t}),this.originalCode=i||"",(e=this.editor)==null||e.setValue(i||""),this.highlightText(this.lastSearch),this.showDecorators(),this.setEditorTypings(t)}scrollToLineIfNeeded(t){if(this.editor){const i=this.editor.getVisibleRanges();(!i||!i[0]||i[0].startLineNumber>t||t>i[0].endLineNumber)&&this.editor.revealLineInCenter(t)}}UNSAFE_componentWillReceiveProps(t){const i={};this.state.name!==t.name&&this.initNewScript(t.name,t.code),JSON.stringify(t.runningInstances)!==this.runningInstancesStr&&(this.runningInstancesStr=JSON.stringify(t.runningInstances),this.state.typingsLoaded||this.loadTypings(t.runningInstances)),this.editor&&!t.changed&&(t.code!==this.originalCode||t.code!==this.editor.getValue())&&(this.originalCode=t.code||"",this.editor.setValue(this.originalCode),this.showDecorators(),this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),t.searchText!==this.lastSearch&&(this.lastSearch=t.searchText||"",this.highlightText(this.lastSearch)),JSON.stringify(t.location)!==JSON.stringify(this.location)&&JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.location=t.location||void 0,this.breakpoints=t.breakpoints,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)):JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.breakpoints=t.breakpoints,this.showDecorators()):JSON.stringify(t.location)!==JSON.stringify(this.location)&&(this.location=t.location||void 0,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),this.state.language!==(t.language||"javascript")?(this.setState({language:t.language||"javascript"}),i.language=t.language||"javascript"):this.state.readOnly!==(t.readOnly||!1)?(this.setState({readOnly:t.readOnly||!1}),i.readOnly=t.readOnly):this.state.isDark!==(t.isDark||!1)&&(this.setState({isDark:t.isDark||!1}),i.isDark=t.isDark),this.setEditorOptions(i),this.insert!==t.insert&&(this.insert=t.insert||"",this.insert&&(console.log(`Insert text: ${this.insert}`),setTimeout(e=>{this.insertTextIntoEditor(e),setTimeout(()=>this.props.onInserted&&this.props.onInserted(),100)},100,this.insert)))}onChange(){var t,i;!this.props.readOnly&&this.editor&&((i=(t=this.props).onChange)==null||i.call(t,this.editor.getValue()))}renderErrorDialog(){return this.state.showError?this.state.showError.full?n.jsxs(p.Dialog,{open:!0,maxWidth:"md",onClose:()=>this.setState({showError:null}),children:[n.jsx(p.DialogTitle,{children:this.state.showError.title||f.I18n.t("Error")}),n.jsx(p.DialogContent,{children:n.jsx("pre",{children:n.jsx("code",{children:this.state.showError.message})})}),n.jsx(p.DialogActions,{children:n.jsxs(p.Button,{variant:"contained",startIcon:n.jsx(b,{}),onClick:()=>this.setState({showError:null}),children:[f.I18n.t("Close")," "]})})]}):n.jsx(p.Snackbar,{open:!0,autoHideDuration:5e3,onClose:()=>this.setState({showError:null}),message:this.state.showError.title,action:n.jsxs(S.Fragment,{children:[n.jsx(p.Button,{color:"secondary",size:"small",onClick:()=>this.setState({showError:{...this.state.showError,full:!0}}),children:f.I18n.t("More")}),n.jsx(p.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({showError:null}),children:n.jsx(b,{fontSize:"small"})})]})}):null}render(){var t,i,e;return!((e=(i=(t=this.monaco)==null?void 0:t.languages)==null?void 0:i.typescript)!=null&&e.typescriptDefaults)||!this.props.runningInstances?(setTimeout(()=>{this.monaco=window.monaco,this.forceUpdate()},200),null):(this.props.triggerPrettier!==this.triggerPrettier&&(this.triggerPrettier=this.props.triggerPrettier,setTimeout(()=>this.doPrettier().catch(s=>console.error("Error formatting code:",s)),50)),n.jsxs("div",{ref:this.monacoDiv,style:{...this.props.style,width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:[this.renderErrorDialog(),!this.state.check&&n.jsx(p.Fab,{size:"small",title:f.I18n.t("Check is not active, because javascript adapter is disabled"),style:{bottom:10,right:10,opacity:.5,position:"absolute",zIndex:1,background:"red",color:"white"},color:"secondary",children:n.jsx(C,{})})]}))}}export{R as default}; +import{j as n}from"./createSvgIcon-DMsh-YeH.js";import{R as S}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as p,o as b,aA as C}from"./index-f32XoI0M.js";import{i as f}from"./index-dMNZJoGO.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";function v(w){return/^script\.js\.global\./.test(w)}let O=0;function E(w){const t=/\x1b\[[0-9;]*m/g;return w.replace(t,"")}class R extends S.Component{monacoDiv=null;editor=null;monaco=window.monaco;insert="";originalCode;runningInstancesStr;monacoCounter=0;location;breakpoints;lastSearch="";typings={};decorations=[];triggerPrettier;constructor(t){super(t),this.state={name:"current",isDark:t.isDark||!1,language:t.language||"javascript",readOnly:t.readOnly||!1,alive:!0,check:!1,searchText:this.props.searchText||"",typingsLoaded:!1,showError:null},this.triggerPrettier=t.triggerPrettier,this.runningInstancesStr=JSON.stringify(this.props.runningInstances),this.originalCode=t.code||"",this.monacoDiv=S.createRef()}waitForMonaco(t){var e,s,o,r,l,a,h,g;let i=!!((r=(o=(s=(e=this.monaco)==null?void 0:e.languages)==null?void 0:s.typescript)==null?void 0:o.typescriptDefaults)!=null&&r.getCompilerOptions);if(!i||!this.props.runningInstances){if(this.monaco=window.monaco,i=!!((g=(h=(a=(l=this.monaco)==null?void 0:l.languages)==null?void 0:a.typescript)==null?void 0:h.typescriptDefaults)!=null&&g.getCompilerOptions),this.monacoCounter++,!i&&this.monacoCounter<20){console.log("wait for monaco loaded"),setTimeout(()=>this.waitForMonaco(t),200);return}this.monacoCounter>=20&&console.error("Cannot load monaco!")}else t&&t()}loadTypings(t){if(!this.editor)return;t||=this.props.runningInstances;const i=t&&Object.keys(t).find(e=>t==null?void 0:t[e]);i&&this.props.socket.sendTo(i.replace("system.adapter.",""),"loadTypings",null).then(e=>{this.setState({alive:!0,check:!0,typingsLoaded:!0}),this.setTypeCheck(!0),e.typings?(this.typings=e.typings,this.setEditorTypings(this.state.name)):console.error(`failed to load typings: ${e.error}`)})}componentDidMount(){var e,s,o,r,l,a,h,g,y,k,d,u;let t=!!((r=(o=(s=(e=this.monaco)==null?void 0:e.languages)==null?void 0:s.typescript)==null?void 0:o.typescriptDefaults)!=null&&r.getCompilerOptions);if((!t||!this.props.runningInstances)&&(this.monaco=window.monaco,t=!!((g=(h=(a=(l=this.monaco)==null?void 0:l.languages)==null?void 0:a.typescript)==null?void 0:h.typescriptDefaults)!=null&&g.getCompilerOptions),!t)){console.log("wait for monaco loaded..."),this.waitForMonaco(()=>this.componentDidMount());return}if(!this.editor&&t&&this.monaco){console.log("Init editor"),(k=(y=this.props).onRegisterSelect)==null||k.call(y,()=>{var m;if(this.editor){const D=this.editor.getSelection();if(D)return(m=this.editor.getModel())==null?void 0:m.getValueInRange(D)}});const c=this.monaco.languages.typescript.typescriptDefaults.getCompilerOptions();c.allowJs=!0,c.checkJs=this.props.checkJs!==!1,c.noLib=!0,c.lib=[],c.useUnknownInCatchVariables=!1,c.moduleResolution=this.monaco.languages.typescript.ModuleResolutionKind.NodeJs,c.target=this.monaco.languages.typescript.ScriptTarget.ESNext,c.module=this.monaco.languages.typescript.ModuleKind.ESNext,c.allowNonTsExtensions=!0,this.monaco.languages.typescript.typescriptDefaults.setCompilerOptions(c),this.setTypeCheck(!1),(d=this.monacoDiv)!=null&&d.current&&(this.editor=this.monaco.editor.create((u=this.monacoDiv)==null?void 0:u.current,{lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,glyphMargin:!!this.props.breakpoints,colorDecorators:!0}),this.editor.onDidChangeModelContent(()=>this.onChange()),this.loadTypings(),this.props.onForceSave&&this.editor.addCommand(this.monaco.KeyMod.CtrlCmd|this.monaco.KeyCode.KeyS,()=>this.props.onForceSave&&this.props.onForceSave()),setTimeout(()=>{this.highlightText(this.state.searchText),this.location=this.props.location||void 0,this.breakpoints=this.props.breakpoints,this.showDecorators()}))}const i={selectOnLineNumbers:!0,scrollBeyondLastLine:!1,automaticLayout:!0,readOnly:this.state.readOnly,language:this.state.language,isDark:this.state.isDark};this.setEditorOptions(i),this.editor&&(this.editor.focus(),this.editor.setValue(this.originalCode),this.props.onToggleBreakpoint?this.editor.onMouseDown(c=>{var D;const m=c.target;this.props.onToggleBreakpoint&&((D=m.detail)==null?void 0:D.glyphMarginLeft)!==void 0&&m.position&&this.props.onToggleBreakpoint(m.position.lineNumber-1)}):this.editor.onMouseDown(()=>{}))}setEditorOptions(t){var i;t&&(t.language&&this.setEditorLanguage(t.language),this.editor&&(t.readOnly!==void 0&&this.editor.updateOptions({readOnly:t.readOnly}),t.lineWrap!==void 0&&this.editor.updateOptions({wordWrap:t.lineWrap?"on":"off"})),t.typeCheck!==void 0&&this.setTypeCheck(t.typeCheck),t.isDark!==void 0&&((i=this.monaco)==null||i.editor.setTheme(t.isDark?"vs-dark":"vs")))}componentWillUnmount(){var t,i;this.editor&&((i=(t=this.props).onRegisterSelect)==null||i.call(t,null),this.editor.dispose(),this.editor=null)}async doPrettier(){var e,s,o,r;const t=this.props.runningInstances&&Object.keys(this.props.runningInstances).find(l=>{var a;return(a=this.props.runningInstances)==null?void 0:a[l]});if(!t){window.alert(f.I18n.t("No script adapter instance found to format the code"));return}const i=await this.props.socket.sendTo(t.replace("system.adapter.",""),"prettier",{code:(e=this.editor)==null?void 0:e.getValue(),type:this.state.language});i.error?this.setState({showError:{title:f.I18n.t("Error formatting code"),message:E(i.error)}}):i.code&&((s=this.editor)==null||s.setValue(i.code),(r=(o=this.props).onChange)==null||r.call(o,i.code),this.showDecorators())}setEditorLanguage(t){var e;if(!this.editor)return;const i=this.editor.getModel();if(i){const s=i.getValue(),o=i.uri.path,r=typeof o=="string"&&o.includes(".")?o.substring(0,o.lastIndexOf(".")):"index",l=t==="javascript"?"js":t==="typescript"?"ts":t;i.dispose();const a=t==="javascript"||t==="typescript"?"typescript":t,h=(e=this.monaco)==null?void 0:e.editor.createModel(s,a,this.monaco.Uri.from({scheme:window.location.protocol.replace(":",""),path:`${r}${O++}.${l}`}));h&&this.editor.setModel(h)}}setTypeCheck(t){var e,s;const i={noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive};(e=this.monaco)==null||e.languages.typescript.typescriptDefaults.setDiagnosticsOptions(i),(s=this.monaco)==null||s.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive})}setEditorTypings(t=""){var o,r,l,a,h,g,y,k;const i=v(t),e=`${t}.d.ts`,s=[];for(const d of Object.keys(this.typings))i&&(d==="global.d.ts"||d.startsWith("script.js.global")&&d!==e)||s.push({filePath:d,content:this.typings[d]});if((a=(l=(r=(o=this.monaco)==null?void 0:o.languages)==null?void 0:r.typescript)==null?void 0:l.typescriptDefaults)!=null&&a.setExtraLibs)this.monaco.languages.typescript.typescriptDefaults.setExtraLibs(s);else if((k=(y=(g=(h=this.monaco)==null?void 0:h.languages)==null?void 0:g.typescript)==null?void 0:y.typescriptDefaults)!=null&&k.addExtraLib){const d=this.monaco.languages.typescript.typescriptDefaults.getExtraLibs();s.forEach(u=>{!d[u.filePath]&&this.monaco&&this.monaco.languages.typescript.typescriptDefaults.addExtraLib(u.content,u.filePath)})}}insertTextIntoEditor(t){if(!this.editor||!this.monaco)return;const i=this.editor.getSelection();if(i){const e=new this.monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editor.executeEdits("",[{range:e,text:t,forceMoveMarkers:!0}])}this.editor.focus()}highlightText(t){var e;if(!this.editor||!this.monaco)return;const i=t?(e=this.editor.getModel())==null?void 0:e.findMatches(t,!0,!1,!1,null,!0):void 0;if(i!=null&&i.length)i.forEach(s=>{var o;return(o=this.editor)==null?void 0:o.setSelection(s.range)}),this.editor.revealLine(i[0].range.startLineNumber);else{const s=this.editor.getPosition();if(s){const o=s.lineNumber,r=s.column;this.editor.setSelection(new this.monaco.Range(o,r,o,r))}}}showDecorators(){var i;const t=[];if(this.location&&this.monaco&&(t.push({range:new this.monaco.Range(this.location.lineNumber+1,(this.location.columnNumber||0)+1,this.location.lineNumber+1,1e3),options:{isWholeLine:!1,className:this.props.isDark?"monacoCurrentLineDark":"monacoCurrentLine"}}),t.push({range:new this.monaco.Range(this.location.lineNumber+1,0,this.location.lineNumber+1,0),options:{isWholeLine:!0,className:this.props.isDark?"monacoCurrentFullLineDark":"monacoCurrentFullLine"}})),(i=this.breakpoints)==null||i.forEach(e=>{this.monaco&&t.push({range:new this.monaco.Range(e.location.lineNumber+1,0,e.location.lineNumber+1,100),options:{isWholeLine:!0,glyphMarginClassName:this.props.isDark?"monacoBreakPointDark":"monacoBreakPoint"}})}),this.editor){const e=this.editor.getModel();e&&(this.decorations=e.deltaDecorations(this.decorations,t))}}initNewScript(t,i){var e;this.setState({name:t}),this.originalCode=i||"",(e=this.editor)==null||e.setValue(i||""),this.highlightText(this.lastSearch),this.showDecorators(),this.setEditorTypings(t)}scrollToLineIfNeeded(t){if(this.editor){const i=this.editor.getVisibleRanges();(!i||!i[0]||i[0].startLineNumber>t||t>i[0].endLineNumber)&&this.editor.revealLineInCenter(t)}}UNSAFE_componentWillReceiveProps(t){const i={};this.state.name!==t.name&&this.initNewScript(t.name,t.code),JSON.stringify(t.runningInstances)!==this.runningInstancesStr&&(this.runningInstancesStr=JSON.stringify(t.runningInstances),this.state.typingsLoaded||this.loadTypings(t.runningInstances)),this.editor&&!t.changed&&(t.code!==this.originalCode||t.code!==this.editor.getValue())&&(this.originalCode=t.code||"",this.editor.setValue(this.originalCode),this.showDecorators(),this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),t.searchText!==this.lastSearch&&(this.lastSearch=t.searchText||"",this.highlightText(this.lastSearch)),JSON.stringify(t.location)!==JSON.stringify(this.location)&&JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.location=t.location||void 0,this.breakpoints=t.breakpoints,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)):JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.breakpoints=t.breakpoints,this.showDecorators()):JSON.stringify(t.location)!==JSON.stringify(this.location)&&(this.location=t.location||void 0,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),this.state.language!==(t.language||"javascript")?(this.setState({language:t.language||"javascript"}),i.language=t.language||"javascript"):this.state.readOnly!==(t.readOnly||!1)?(this.setState({readOnly:t.readOnly||!1}),i.readOnly=t.readOnly):this.state.isDark!==(t.isDark||!1)&&(this.setState({isDark:t.isDark||!1}),i.isDark=t.isDark),this.setEditorOptions(i),this.insert!==t.insert&&(this.insert=t.insert||"",this.insert&&(console.log(`Insert text: ${this.insert}`),setTimeout(e=>{this.insertTextIntoEditor(e),setTimeout(()=>this.props.onInserted&&this.props.onInserted(),100)},100,this.insert)))}onChange(){var t,i;!this.props.readOnly&&this.editor&&((i=(t=this.props).onChange)==null||i.call(t,this.editor.getValue()))}renderErrorDialog(){return this.state.showError?this.state.showError.full?n.jsxs(p.Dialog,{open:!0,maxWidth:"md",onClose:()=>this.setState({showError:null}),children:[n.jsx(p.DialogTitle,{children:this.state.showError.title||f.I18n.t("Error")}),n.jsx(p.DialogContent,{children:n.jsx("pre",{children:n.jsx("code",{children:this.state.showError.message})})}),n.jsx(p.DialogActions,{children:n.jsxs(p.Button,{variant:"contained",startIcon:n.jsx(b,{}),onClick:()=>this.setState({showError:null}),children:[f.I18n.t("Close")," "]})})]}):n.jsx(p.Snackbar,{open:!0,autoHideDuration:5e3,onClose:()=>this.setState({showError:null}),message:this.state.showError.title,action:n.jsxs(S.Fragment,{children:[n.jsx(p.Button,{color:"secondary",size:"small",onClick:()=>this.setState({showError:{...this.state.showError,full:!0}}),children:f.I18n.t("More")}),n.jsx(p.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({showError:null}),children:n.jsx(b,{fontSize:"small"})})]})}):null}render(){var t,i,e;return!((e=(i=(t=this.monaco)==null?void 0:t.languages)==null?void 0:i.typescript)!=null&&e.typescriptDefaults)||!this.props.runningInstances?(setTimeout(()=>{this.monaco=window.monaco,this.forceUpdate()},200),null):(this.props.triggerPrettier!==this.triggerPrettier&&(this.triggerPrettier=this.props.triggerPrettier,setTimeout(()=>this.doPrettier().catch(s=>console.error("Error formatting code:",s)),50)),n.jsxs("div",{ref:this.monacoDiv,style:{...this.props.style,width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:[this.renderErrorDialog(),!this.state.check&&n.jsx(p.Fab,{size:"small",title:f.I18n.t("Check is not active, because javascript adapter is disabled"),style:{bottom:10,right:10,opacity:.5,position:"absolute",zIndex:1,background:"red",color:"white"},color:"secondary",children:n.jsx(C,{})})]}))}}export{R as default}; diff --git a/admin/assets/index-CyP9QRCj.js b/admin/assets/index-BNiWan3F.js similarity index 99% rename from admin/assets/index-CyP9QRCj.js rename to admin/assets/index-BNiWan3F.js index 070431d19..c2d57474f 100644 --- a/admin/assets/index-CyP9QRCj.js +++ b/admin/assets/index-BNiWan3F.js @@ -1,4 +1,4 @@ -import{j as x}from"./createSvgIcon-DMsh-YeH.js";import{i as G}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{u as W_,a as B_,i as X,M as Be,C as Dr,G as M_,b as N_,c as Gs,I as P_,S as Mt,d as F_,e as Us,j as U_,D as H_,f as $_}from"./index-hex25_NL.js";import{i as En,C as q_}from"./index-f32XoI0M.js";import{g as G_,c as br}from"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";function K_(I){const s=W_().getMonitor(),[A,b]=B_(s,I);return G.useEffect(()=>s.subscribeToOffsetChange(b)),G.useEffect(()=>s.subscribeToStateChange(b)),A}let Er;function z_(){return Er||(Er=new Image,Er.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),Er}const J_="_wrapperRules_nnott_1",k_="_rootWrapper_nnott_9",Z_="_addClass_nnott_14",Vi={wrapperRules:J_,rootWrapper:k_,addClass:Z_},Y_="_switchesItem_10ls3_1",X_="_switchesItemActive_10ls3_28",Q_="_iconTheme_10ls3_36",nu={switchesItem:Y_,switchesItemActive:X_,iconTheme:Q_},Ks=({name:I,id:p,active:s,icon:A,adapter:b,socket:w,onDoubleClick:S,title:T,onTouchMove:W,style:un})=>x.jsxs("div",{onDoubleClick:S,onTouchMove:W,title:T?X.I18n.t(T):void 0,className:X.Utils.clsx(nu.switchesItem,s&&nu.switchesItemActive,`block-${p}`),children:[x.jsx(Be,{iconName:A,className:nu.iconTheme,adapter:b,socket:w,style:un}),x.jsx("span",{children:I?X.I18n.t(I):""})]},p),j_="_cardStyle_8rq8v_1",V_="_cardStyleActive_8rq8v_17",np="_controlMenu_8rq8v_22",tp="_closeBtn_8rq8v_31",ep="_isDelete_8rq8v_73",rp="_drag_mobile_8rq8v_90",ce={cardStyle:j_,cardStyleActive:V_,controlMenu:np,closeBtn:tp,isDelete:ep,drag_mobile:rp};function ae(I,p,s){let A;switch(I){case"actions":if(s==="else")return A={...p,actions:{...p[I],else:[...p[I].else]}},A;if(s==="then")return A={...p,actions:{...p[I],then:[...p[I].then]}},A;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return A={...p,triggers:[...p.triggers]},A;case"conditions":return A={...p,conditions:[...p.conditions]},A;default:throw new Error(`Unknown name: ${I}`)}}function Jt(I,p,s,A){var b;switch(I){case"actions":return p.actions[s]=p.actions[s].filter(w=>w._id!==A),p;case"conditions":return p.conditions[s]=(b=p.conditions[s])==null?void 0:b.filter(w=>w._id!==A),p;case"triggers":default:return p.triggers=p.triggers.filter(w=>w._id!==A),p}}function ip(I,p,s){const{_id:A,acceptedBy:b}=I;let w;if(!b||!p[b])return console.warn(`Cannot find ${b}`),p;switch(b){case"actions":if(w=p.actions[s].find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.actions[s].indexOf(w);p.actions[s][S]=I}return p;case"conditions":if(w=p.conditions[s].find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.conditions[s].indexOf(w);p.conditions[s][S]=I}return p;default:if(w=p.triggers.find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.triggers.indexOf(w);p.triggers[S]=I}return p}}const zs=G.memo(I=>{var Sn;const{setUserRules:p,userRules:s,_id:A,id:b,blockValue:w,active:S,acceptedBy:T,isTourOpen:W,setTourStep:un,tourStep:fn}=I,[j,K]=G.useState(null),{blocks:y,socket:on,onUpdate:Cn,setOnUpdate:U,onDebugMessage:E,enableSimulation:Q}=G.useContext(Dr),N=G.useCallback($=>y==null?void 0:y.find(V=>V.getStaticData().id===$),[y]),B=G.useCallback($=>{const V=ip($,s,w);V&&p(V)},[s]),J=$=>{$.currentTarget!==j&&K($.currentTarget)},xn=()=>K(null),_n=G.useMemo(()=>{const $=N(b)||M_;return x.jsx($,{...I,notFound:!N(b),isTourOpen:W,setTourStep:un,tourStep:fn,onUpdate:Cn,setOnUpdate:U,enableSimulation:Q,onDebugMessage:E,onChange:B,className:void 0,socket:on})},[s,Cn,E,Q]),[hn,In]=G.useState(!1);return x.jsxs("div",{onMouseMove:J,onMouseEnter:J,onMouseLeave:xn,onMouseDown:$=>{if($.ctrlKey){let V;const tn=ae(T,s,w);T==="conditions"?(V=tn.conditions[w].find(M=>M._id===A),V&&tn.conditions[w].splice(tn.conditions[w].indexOf(V),0,{...V,_id:Date.now()})):T==="actions"?(V=tn.actions[w].find(M=>M._id===A),V&&tn.actions[w].splice(tn.actions[w].indexOf(V),0,{...V,_id:Date.now()})):(V=tn.triggers.find(M=>M._id===A),V&&tn.triggers.splice(tn[T].indexOf(V),0,{...V,_id:Date.now()})),p(tn)}},id:"height",style:S?{width:(((Sn=document.getElementById("width"))==null?void 0:Sn.clientWidth)||0)-70}:void 0,className:`${ce.cardStyle} ${S?ce.cardStyleActive:null} ${hn?ce.isDelete:null}`,children:[x.jsx("div",{className:ce.drag_mobile}),_n,p&&x.jsx("div",{className:ce.controlMenu,style:j?{opacity:1}:{opacity:0},children:x.jsx("div",{onClick:()=>{let $=ae(T,s,w);$=Jt(T,$,w,A),In(!0),setTimeout(()=>{T==="triggers"&&U(!0),p($)},300)},className:ce.closeBtn})})]})}),up={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},fp=(I,p,s)=>{if(!I||!p)return{display:"none"};let{x:A,y:b}=p;const w=`translate(${A}px, ${b}px)`;return{transform:w,WebkitTransform:w}},sp=I=>{const{itemType:p,isDragging:s,item:A,initialOffset:b,currentOffset:w,targetIds:S}=K_(W=>({item:W.getItem(),itemType:W.getItemType(),initialOffset:W.getInitialSourceClientOffset(),currentOffset:W.getSourceClientOffset(),isDragging:W.isDragging(),targetIds:W.getTargetIds()})),T=()=>{switch(p){case"box":return S.length?x.jsx(zs,{active:!0,...A,allBlocks:I.allBlocks}):x.jsx(Ks,{active:!0,...A,socket:I.socket});default:return null}};return s?x.jsx("div",{style:up,children:x.jsx("div",{style:fp(b,w),children:T()})}):null},op="_border_wrpm3_1",lp="_emptyBlockStyle_wrpm3_6",cp="_emptyBlock_wrpm3_6",ap="_selectOnChange_wrpm3_22",hp="_selectOnChangeHelp_wrpm3_28",gp="_selectOnChangeHelpIcon_wrpm3_34",dp="_emptyBlockNone_wrpm3_49",_p="_mainBlockItemRules_wrpm3_55",pp="_nameBlockItems_wrpm3_63",vp="_contentBlockItem_wrpm3_73",xp="_wrapperMargin_wrpm3_81",mp="_contentHeightOn_wrpm3_87",wp="_contentHeightOff_wrpm3_99",Ap="_cardAdd_wrpm3_105",Cp="_blockCardAdd_wrpm3_125",Ip="_addClassOverflow_wrpm3_136",Sp="_addClassHeight_wrpm3_140",An={border:op,emptyBlockStyle:lp,emptyBlock:cp,selectOnChange:ap,selectOnChangeHelp:hp,selectOnChangeHelpIcon:gp,emptyBlockNone:dp,mainBlockItemRules:_p,nameBlockItems:pp,contentBlockItem:vp,wrapperMargin:xp,contentHeightOn:mp,contentHeightOff:wp,cardAdd:Ap,blockCardAdd:Cp,addClassOverflow:Ip,addClassHeight:Sp};function uu(I,p){const[s,A]=G.useState(window.localStorage.getItem(p)?JSON.parse(window.localStorage.getItem(p)||""):I);return[s,w=>{window.localStorage.setItem(p,JSON.stringify(w)),A(w)},!!window.localStorage.getItem(p)]}var Lr={exports:{}};/** +import{j as x}from"./createSvgIcon-DMsh-YeH.js";import{i as G}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{u as W_,a as B_,i as X,M as Be,C as Dr,G as M_,b as N_,c as Gs,I as P_,S as Mt,d as F_,e as Us,j as U_,D as H_,f as $_}from"./index-dMNZJoGO.js";import{i as En,C as q_}from"./index-f32XoI0M.js";import{g as G_,c as br}from"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";function K_(I){const s=W_().getMonitor(),[A,b]=B_(s,I);return G.useEffect(()=>s.subscribeToOffsetChange(b)),G.useEffect(()=>s.subscribeToStateChange(b)),A}let Er;function z_(){return Er||(Er=new Image,Er.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),Er}const J_="_wrapperRules_nnott_1",k_="_rootWrapper_nnott_9",Z_="_addClass_nnott_14",Vi={wrapperRules:J_,rootWrapper:k_,addClass:Z_},Y_="_switchesItem_10ls3_1",X_="_switchesItemActive_10ls3_28",Q_="_iconTheme_10ls3_36",nu={switchesItem:Y_,switchesItemActive:X_,iconTheme:Q_},Ks=({name:I,id:p,active:s,icon:A,adapter:b,socket:w,onDoubleClick:S,title:T,onTouchMove:W,style:un})=>x.jsxs("div",{onDoubleClick:S,onTouchMove:W,title:T?X.I18n.t(T):void 0,className:X.Utils.clsx(nu.switchesItem,s&&nu.switchesItemActive,`block-${p}`),children:[x.jsx(Be,{iconName:A,className:nu.iconTheme,adapter:b,socket:w,style:un}),x.jsx("span",{children:I?X.I18n.t(I):""})]},p),j_="_cardStyle_8rq8v_1",V_="_cardStyleActive_8rq8v_17",np="_controlMenu_8rq8v_22",tp="_closeBtn_8rq8v_31",ep="_isDelete_8rq8v_73",rp="_drag_mobile_8rq8v_90",ce={cardStyle:j_,cardStyleActive:V_,controlMenu:np,closeBtn:tp,isDelete:ep,drag_mobile:rp};function ae(I,p,s){let A;switch(I){case"actions":if(s==="else")return A={...p,actions:{...p[I],else:[...p[I].else]}},A;if(s==="then")return A={...p,actions:{...p[I],then:[...p[I].then]}},A;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return A={...p,triggers:[...p.triggers]},A;case"conditions":return A={...p,conditions:[...p.conditions]},A;default:throw new Error(`Unknown name: ${I}`)}}function Jt(I,p,s,A){var b;switch(I){case"actions":return p.actions[s]=p.actions[s].filter(w=>w._id!==A),p;case"conditions":return p.conditions[s]=(b=p.conditions[s])==null?void 0:b.filter(w=>w._id!==A),p;case"triggers":default:return p.triggers=p.triggers.filter(w=>w._id!==A),p}}function ip(I,p,s){const{_id:A,acceptedBy:b}=I;let w;if(!b||!p[b])return console.warn(`Cannot find ${b}`),p;switch(b){case"actions":if(w=p.actions[s].find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.actions[s].indexOf(w);p.actions[s][S]=I}return p;case"conditions":if(w=p.conditions[s].find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.conditions[s].indexOf(w);p.conditions[s][S]=I}return p;default:if(w=p.triggers.find(S=>S._id===A),!w)console.warn(`Cannot find ${A}`);else{const S=p.triggers.indexOf(w);p.triggers[S]=I}return p}}const zs=G.memo(I=>{var Sn;const{setUserRules:p,userRules:s,_id:A,id:b,blockValue:w,active:S,acceptedBy:T,isTourOpen:W,setTourStep:un,tourStep:fn}=I,[j,K]=G.useState(null),{blocks:y,socket:on,onUpdate:Cn,setOnUpdate:U,onDebugMessage:E,enableSimulation:Q}=G.useContext(Dr),N=G.useCallback($=>y==null?void 0:y.find(V=>V.getStaticData().id===$),[y]),B=G.useCallback($=>{const V=ip($,s,w);V&&p(V)},[s]),J=$=>{$.currentTarget!==j&&K($.currentTarget)},xn=()=>K(null),_n=G.useMemo(()=>{const $=N(b)||M_;return x.jsx($,{...I,notFound:!N(b),isTourOpen:W,setTourStep:un,tourStep:fn,onUpdate:Cn,setOnUpdate:U,enableSimulation:Q,onDebugMessage:E,onChange:B,className:void 0,socket:on})},[s,Cn,E,Q]),[hn,In]=G.useState(!1);return x.jsxs("div",{onMouseMove:J,onMouseEnter:J,onMouseLeave:xn,onMouseDown:$=>{if($.ctrlKey){let V;const tn=ae(T,s,w);T==="conditions"?(V=tn.conditions[w].find(M=>M._id===A),V&&tn.conditions[w].splice(tn.conditions[w].indexOf(V),0,{...V,_id:Date.now()})):T==="actions"?(V=tn.actions[w].find(M=>M._id===A),V&&tn.actions[w].splice(tn.actions[w].indexOf(V),0,{...V,_id:Date.now()})):(V=tn.triggers.find(M=>M._id===A),V&&tn.triggers.splice(tn[T].indexOf(V),0,{...V,_id:Date.now()})),p(tn)}},id:"height",style:S?{width:(((Sn=document.getElementById("width"))==null?void 0:Sn.clientWidth)||0)-70}:void 0,className:`${ce.cardStyle} ${S?ce.cardStyleActive:null} ${hn?ce.isDelete:null}`,children:[x.jsx("div",{className:ce.drag_mobile}),_n,p&&x.jsx("div",{className:ce.controlMenu,style:j?{opacity:1}:{opacity:0},children:x.jsx("div",{onClick:()=>{let $=ae(T,s,w);$=Jt(T,$,w,A),In(!0),setTimeout(()=>{T==="triggers"&&U(!0),p($)},300)},className:ce.closeBtn})})]})}),up={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},fp=(I,p,s)=>{if(!I||!p)return{display:"none"};let{x:A,y:b}=p;const w=`translate(${A}px, ${b}px)`;return{transform:w,WebkitTransform:w}},sp=I=>{const{itemType:p,isDragging:s,item:A,initialOffset:b,currentOffset:w,targetIds:S}=K_(W=>({item:W.getItem(),itemType:W.getItemType(),initialOffset:W.getInitialSourceClientOffset(),currentOffset:W.getSourceClientOffset(),isDragging:W.isDragging(),targetIds:W.getTargetIds()})),T=()=>{switch(p){case"box":return S.length?x.jsx(zs,{active:!0,...A,allBlocks:I.allBlocks}):x.jsx(Ks,{active:!0,...A,socket:I.socket});default:return null}};return s?x.jsx("div",{style:up,children:x.jsx("div",{style:fp(b,w),children:T()})}):null},op="_border_wrpm3_1",lp="_emptyBlockStyle_wrpm3_6",cp="_emptyBlock_wrpm3_6",ap="_selectOnChange_wrpm3_22",hp="_selectOnChangeHelp_wrpm3_28",gp="_selectOnChangeHelpIcon_wrpm3_34",dp="_emptyBlockNone_wrpm3_49",_p="_mainBlockItemRules_wrpm3_55",pp="_nameBlockItems_wrpm3_63",vp="_contentBlockItem_wrpm3_73",xp="_wrapperMargin_wrpm3_81",mp="_contentHeightOn_wrpm3_87",wp="_contentHeightOff_wrpm3_99",Ap="_cardAdd_wrpm3_105",Cp="_blockCardAdd_wrpm3_125",Ip="_addClassOverflow_wrpm3_136",Sp="_addClassHeight_wrpm3_140",An={border:op,emptyBlockStyle:lp,emptyBlock:cp,selectOnChange:ap,selectOnChangeHelp:hp,selectOnChangeHelpIcon:gp,emptyBlockNone:dp,mainBlockItemRules:_p,nameBlockItems:pp,contentBlockItem:vp,wrapperMargin:xp,contentHeightOn:mp,contentHeightOff:wp,cardAdd:Ap,blockCardAdd:Cp,addClassOverflow:Ip,addClassHeight:Sp};function uu(I,p){const[s,A]=G.useState(window.localStorage.getItem(p)?JSON.parse(window.localStorage.getItem(p)||""):I);return[s,w=>{window.localStorage.setItem(p,JSON.stringify(w)),A(w)},!!window.localStorage.getItem(p)]}var Lr={exports:{}};/** * @license * Lodash * Copyright OpenJS Foundation and other contributors diff --git a/admin/assets/index-Bis-ZPl5.js b/admin/assets/index-Bis-ZPl5.js deleted file mode 100644 index f1f2ba681..000000000 --- a/admin/assets/index-Bis-ZPl5.js +++ /dev/null @@ -1,930 +0,0 @@ -import{c as U,j as Q,o as Pe,a as YM,b as vM,d as bM,P as _}from"./createSvgIcon-DMsh-YeH.js";import{i as x,R as M}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as j,c as Ne,C as Oe,a as nt,S as ML,Q as uN,b as lN,Y as cL,Z,$ as uL,a0 as lL,a1 as NL,a2 as LL,a3 as QM,a4 as gL,a5 as jL,a6 as yL,a7 as TL,a8 as DL,a9 as UM,aa as dL,ab as hL,ac as zL,ad as wL,ae as CL,af as IL,ag as pL,ah as AL,ai as mL,aj as OL,ak as EL,al as fL,am as $M,an as PM,ao as xL,ap as WM,D as _L,aq as SL,ar as kL,as as YL,at as BM,au as vL,av as bL,aw as QL,T as UL,I as Pi}from"./index-f32XoI0M.js";import{I as cn}from"./Save-BSBgRX7g.js";import{c as ir,g as $L}from"./_commonjsHelpers-Cpj98o6Y.js";import{u as PL}from"./useTheme-N2j2HWMZ.js";import{t as B}from"./index-Dm1jc4t6.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";const un=U(Q.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add"),WL=U(Q.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack"),BL=U(Q.jsx("path",{d:"m10 17 5-5-5-5z"}),"ArrowRight"),JL=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 11h-3v3.75c0 1.24-1.01 2.25-2.25 2.25S8.5 17.99 8.5 16.75s1.01-2.25 2.25-2.25c.46 0 .89.14 1.25.38V11h4zm-3-4V3.5L18.5 9z"}),"AudioFile"),RL=U([Q.jsx("path",{d:"M16.5 12h-9c-.55 0-1 .45-1 1v1h11v-1c0-.55-.45-1-1-1M7.25 8.5h4v2h-4zm5.5 0h4v2h-4z"},"0"),Q.jsx("path",{d:"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-1 15h-1.5v-1.5h-11V17H5v-3.83c0-.66.25-1.26.65-1.72V9c0-1.1.9-2 2-2H11c.37 0 .72.12 1 .32.28-.2.63-.32 1-.32h3.35c1.1 0 2 .9 2 2v2.45c.4.46.65 1.06.65 1.72z"},"1")],"BedroomParent"),FL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2"}),"Bookmark"),GL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2m0 15-5-2.18L7 18V5h10z"}),"BookmarkBorder"),HL=U(Q.jsx("path",{d:"M22 24H2v-4h20zM13.06 5.19l3.75 3.75L7.75 18H4v-3.75zm4.82 2.68-3.75-3.75 1.83-1.83c.39-.39 1.02-.39 1.41 0l2.34 2.34c.39.39.39 1.02 0 1.41z"}),"BorderColor"),VL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4"),ZL=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6"}),"Brightness5"),ca=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness6"),XL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7"),KL=U(Q.jsx("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build"),qL=U(Q.jsx("path",{d:"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m0 18H4V8h16z"}),"CalendarToday"),ua=U(Q.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"}),"Code"),eg=U(Q.jsx("path",{d:"m20.71 5.63-2.34-2.34a.996.996 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42M6.92 19 5 17.08l8.06-8.06 1.92 1.92z"}),"Colorize"),tg=U(Q.jsx("path",{d:"m13.7826 15.1719 2.1213-2.1213 5.9963 5.9962-2.1213 2.1213zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49c-1.17-1.17-3.07-1.17-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21"}),"Construction"),sg=U(Q.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy"),NN=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2m-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3z"}),"CreateNewFolder"),ig=U(Q.jsx("path",{d:"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2z"}),"Crop"),rg=U(Q.jsx("path",{d:"M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7m17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4z"}),"DataObject"),Kr=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 16H8v-2h8zm0-4H8v-2h8zm-3-5V3.5L18.5 9z"}),"Description"),og=U(Q.jsx("path",{d:"M18.41 5.8 17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83M6.21 18H5v-1.21l8.66-8.66 1.21 1.21zM11 20l4-4h6v4z"}),"DriveFileRenameOutline"),mi=U(Q.jsx("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit"),ng=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error"),ag=U(Q.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore"),Mg=U(Q.jsx("path",{d:"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3"}),"FindInPage"),cg=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen"),ug=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m-2.06 11L15 15.28 12.06 17l.78-3.33-2.59-2.24 3.41-.29L15 8l1.34 3.14 3.41.29-2.59 2.24z"}),"FolderSpecial"),lg=U(Q.jsx("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-4.05 16.5-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13z"}),"FontDownload"),Ng=U(Q.jsx("path",{d:"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"}),"FormatItalic"),Lg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Image"),la=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),LN=U(Q.jsx("path",{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm7 7V3.5L18.5 9z"}),"InsertDriveFile"),gg=U(Q.jsx("path",{d:"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"}),"KeyboardReturn"),gN=U(Q.jsx("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link"),jg=U(Q.jsx("path",{d:"M3 13h2v-2H3zm0 4h2v-2H3zm0-8h2V7H3zm4 4h14v-2H7zm0 4h14v-2H7zM7 7v2h14V7z"}),"List"),yg=U(Q.jsx("path",{d:"M19 5v14H5V5zm1.1-2H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9M11 7h6v2h-6zm0 4h6v2h-6zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7z"}),"ListAlt"),Tg=U(Q.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-5 14h-2V9h-2V7h4z"}),"LooksOne"),Dg=U(Q.jsx("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3z"}),"MusicNote"),dg=U(Q.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),Na=U(Q.jsx("path",{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonOutlined"),hg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Photo"),Sr=U(Q.jsx("path",{d:"M5 4v2h14V4zm0 10h4v6h6v-6h4l-7-7z"}),"Publish"),jN=U(Q.jsx("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh"),La=U(Q.jsx("path",{d:"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7m-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1s1.8.3 2.5 1zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2M8 18H6v-2h2zm3.5 0h-2v-2h2zm3.5 0h-2v-2h2z"}),"Router"),zg=U(Q.jsx("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"SaveAlt"),ln=U(Q.jsx("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings"),kr=U(Q.jsx("path",{d:"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2m-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69s.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69"}),"SettingsApplications"),wg=U(Q.jsx("path",{d:"m3.5 18.49 6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z"}),"ShowChart"),ga=U(Q.jsx("path",{d:"M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m3.61 6.34c1.07 0 1.93.86 1.93 1.93s-.86 1.93-1.93 1.93-1.93-.86-1.93-1.93c-.01-1.07.86-1.93 1.93-1.93m-6-1.58c1.3 0 2.36 1.06 2.36 2.36s-1.06 2.36-2.36 2.36-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36m0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68M11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09"}),"SupervisedUserCircle"),Cg=U(Q.jsx("path",{d:"M2.5 4v3h5v12h3V7h5V4zm19 5h-9v3h3v7h3v-7h3z"}),"TextFields"),Ig=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFileOutlined"),pg=U(Q.jsx("path",{d:"M16 13h-3V3h-2v10H8l4 4zM4 19v2h16v-2z"}),"VerticalAlignBottom"),Ag=U(Q.jsx("path",{d:"M8 11h3v10h2V11h3l-4-4zM4 3v2h16V3z"}),"VerticalAlignTop"),mg=U(Q.jsx("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11z"}),"Videocam"),Og=U(Q.jsx("path",{d:"M14.67 5v14H9.33V5zm1 14H21V5h-5.33zm-7.34 0V5H3v14z"}),"ViewColumn"),Eg=U(Q.jsx("path",{d:"M4 15h16v-2H4zm0 4h16v-2H4zm0-8h16V9H4zm0-6v2h16V5z"}),"ViewHeadline"),fg=U(Q.jsx("path",{d:"M14.67 5v6.5H9.33V5zm1 6.5H21V5h-5.33zm-1 7.5v-6.5H9.33V19zm1-6.5V19H21v-6.5zm-7.34 0H3V19h5.33zm0-1V5H3v6.5z"}),"ViewModule"),xg=U(Q.jsx("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility"),_g=U(Q.jsx("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning"),Qs=U(Q.jsx("path",{d:"m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9m8 8 3 3 3-3c-1.65-1.66-4.34-1.66-6 0m-4-4 2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13"}),"Wifi"),rr=U(Q.jsx("path",{d:"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53zM2 3.05 5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0"}),"WifiOff"),Oo=11/23/100;function JM(s){const e={r:0,g:0,b:0};if(s.length===7)e.r=parseInt(s.substring(1,3),16),e.g=parseInt(s.substring(3,5),16),e.b=parseInt(s.substring(5,7),16);else if(s.length===4){const t=s[1],i=s[2],r=s[3];e.r=parseInt(t+t,16),e.g=parseInt(i+i,16),e.b=parseInt(r+r,16)}return e}function Sg(s){return`#${Math.round(s.r).toString(16)}${Math.round(s.g).toString(16)}${Math.round(s.b).toString(16)}`}function kg(s,e,t){const i=JM(s),r=JM(e);return i.r+=r.r*(.05+Oo*(t-1)),i.g+=r.g*(.05+Oo*(t-1)),i.b+=r.b*(.05+Oo*(t-1)),Sg(i)}function RM(s,e){const t={};for(let i=1;i<=24;i++)t[`elevation${i}`]={backgroundColor:kg(s,e,i)};return t}function Yg(s,e){var n,a,c,l,N,u,L,g,y,T,D;let t,i;s==="dark"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#121212","#fff")},t={name:s,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="blue"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="colored"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#151d21","#fff")},t={name:s,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):s==="PT"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):s==="DX"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(i={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(a=(n=t.palette)==null?void 0:n.primary)==null?void 0:a.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:YM[300],dark:YM[400]});const r=vM(t),o=r.palette;return vM(r,{...e||void 0,components:{...i,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(c=o.grey)==null?void 0:c[300],color:o.getContrastText&&((l=o.grey)!=null&&l[300])?o.getContrastText(o.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(N=o.text)==null?void 0:N.primary,borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(u=o.action)==null?void 0:u.disabledBackground}`},"&:hover":{borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:bM(((L=o.text)==null?void 0:L.primary)||"",((g=o.action)==null?void 0:g.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(y=o.text)==null?void 0:y.primary,"&:hover":{backgroundColor:bM(((T=o.text)==null?void 0:T.primary)||"",((D=o.action)==null?void 0:D.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function vg(){let s,e;const t=new Promise((i,r)=>{s=i,e=r});return t.resolve=s,t.reject=e,t}function Nn(s){return(s==null?void 0:s.rows.map(e=>e.value).filter(e=>!!e))??[]}function Tt(s){return s!=null&&s.startsWith("system.host.")||(s=`system.host.${s}`),s}function ui(s){return s!=null&&s.startsWith("system.host.")&&(s=s.substring(12)),s}function FM(s){return new Promise(e=>{setTimeout(e,s)})}function or(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}var rt;(function(s){s[s.CONNECTING=0]="CONNECTING",s[s.CONNECTED=1]="CONNECTED",s[s.OBJECTS_LOADED=2]="OBJECTS_LOADED",s[s.READY=3]="READY"})(rt||(rt={}));var Ie;(function(s){s.PERMISSION_ERROR="permissionError",s.NOT_CONNECTED="notConnectedError",s.TIMEOUT="timeout",s.NOT_ADMIN="Allowed only in admin",s.NOT_SUPPORTED="Not supported"})(Ie||(Ie={}));const W3e=Ie.PERMISSION_ERROR;Ie.NOT_CONNECTED;const bg=["material","echarts","vis"];class ze{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=vg();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let i=1;i<=30;i++){if(window.io||window.iob)return e();await FM(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,i=(this.props.protocol||window.location.protocol).replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),ze.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a.pop(),bg.includes(a[a.length-1])&&a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}`:`${i}://${e}`;return this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",n=>{window.addEventListener("storage",this.onAccessTokenUpdated);const a=ze.readTokens();if(a&&!a.owner){const c=Date.now();this.saveTokens({access_token:a.access_token,refresh_token:a.refresh_token,expires_in:Math.round((a.expires_in.getTime()-c)/1e3),refresh_token_expires_in:Math.round((a.refresh_token_expires_in.getTime()-c)/1e3),token_type:"Bearer"},a.stayLoggedIn)}this.onReadyDone=!1,n!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(c=>{const[l,N,u]=c.version.split(".");parseInt(l,10)*1e4+parseInt(N,10)*100+parseInt(u,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(g,y)=>this.onPreConnect(g,y))}).catch(c=>this.onError({message:c.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(c,l)=>{this.onPreConnect(c,l)})}),this._socket.on("reconnect",()=>{var n,a;this.onReadyDone=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(c=>c(!0)))}),this._socket.on("disconnect",()=>{var n,a;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.CONNECTING),this.onConnectionHandlers.forEach(c=>c(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a;n==null?a="":typeof n.toString=="function"?a=n.toString():(a=JSON.stringify(n),console.error(`Received strange error: ${a}`)),a.includes("User not authorized")?this.authenticate():a.includes("websocket error")?(console.error(`Socket Error => reload: ${n}`),window.location.reload()):console.error(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>{setTimeout(()=>this.objectChange(n,a),0)}),this._socket.on("stateChange",(n,a)=>{setTimeout(()=>this.stateChange(n,a),0)}),this._socket.on("im",(n,a,c)=>{setTimeout(()=>this.instanceMessage(n,a,c),0)}),this._socket.on("fileChange",(n,a,c)=>{setTimeout(()=>this.fileChange(n,a,c),0)}),this._socket.on("cmdStdout",(n,a)=>{var c;(c=this.onCmdStdoutHandler)==null||c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;(c=this.onCmdStderrHandler)==null||c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;(c=this.onCmdExitHandler)==null||c.call(this,n,a)}),Promise.resolve()}onPreConnect(e,t){var i,r;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(o=>console.error(`Cannot load data: ${o}`)):(r=(i=this.props).onProgress)==null||r.call(i,rt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(o=>o(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[i,r,o,n,a]=e.split(";"),c=new Date(r);return c.getTime(){if(e.key==="iob_tokens"){const t=ze.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,i)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):i?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(i=>{if(i.ok)return i.json();throw new Error("Cannot refresh access token")}).then(i=>{if(i.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${i.access_token}`),this.saveTokens(i,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(i.access_token);else throw new Error("Cannot get access token")}).catch(i=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${i}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(i),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const r=JSON.parse(t);if(e{r?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,i)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,i))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>{i?t(i):e(r||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(i=>console.error(`Cannot load data: ${i}`)),this.loaded)return;await FM(ze.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,i,r,o,n,a,c,l;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(N){this.onError(`Cannot read user permissions: ${N}`);return}try{this.props.admin5only&&!ze.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(N){this.onError(`Cannot read system config: ${N}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(i=(t=this.props).onLanguage)==null||i.call(t,this.systemLang),this.loaded=!0,(o=(r=this.props).onProgress)==null||o.call(r,rt.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.onReadyDone||(this.onReadyDone=!0,(l=(c=this.props).onReady)==null||l.call(c,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,i,r;e.length===3?[t,i,r]=e:([t,r]=e,i=!1);let o;if(Array.isArray(t)?o=t:o=[t],typeof r!="function")throw new Error("The state change handler must be a function!");const n=[];for(let a=0;aa.includes("*"))){let a;for(let c=0;cconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const a=await(ze.isWeb()?this.getStates(o):this.getForeignStates(o));if(a)for(const[c,l]of Object.entries(a)){const N=r(c,l);N instanceof Promise&&N.catch(u=>console.error(`Cannot call state change handler: ${u}`))}}catch(a){console.error(`Cannot getState "${o.join(", ")}": ${a.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var o;let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let n=0;n{try{const N=l(e,t,i);N instanceof Promise&&N.catch(u=>console.error(`Cannot call object change handler: ${u}`))}catch(N){console.error(`Error by callback of objectChange: ${N}`)}});if(r){const a=(n=(o=this.props).onObjectChange)==null?void 0:n.call(o,e,t);a instanceof Promise&&a.catch(c=>console.error(`Cannot call object change handler: ${c}`))}}stateChange(e,t){for(const i of Object.values(this.statesSubscribes))if(i.reg.test(e))for(const r of i.cbs)try{const o=r(e,t??null);o instanceof Promise&&o.catch(n=>console.error(`Cannot call state change handler: ${n}`))}catch(o){console.error(`Error by callback of stateChanged: ${o}`)}}instanceMessage(e,t,i){var r;(r=this._instanceSubscriptions[t])==null||r.forEach(o=>{if(o.messageType===e){const n=o.callback(i,t,e);n instanceof Promise&&n.catch(a=>console.error(`Cannot call instance message handler: ${a}`))}})}fileChange(e,t,i){for(const r of Object.values(this.filesSubscribes))if(r.regId.test(e)&&r.regFilePattern.test(t))for(const o of r.cbs)try{o(e,t,i)}catch(n){console.error(`Error by callback of fileChange: ${n}`)}}async subscribeFiles(e,t,i){if(typeof i!="function")throw new Error("The state change handler must be a function!");let r;Array.isArray(t)?r=t:r=[t];const o=[];for(let n=0;n{const u={elapsed:!1,clearTimeout:()=>{}};let L;i!==!1&&(L=setTimeout(()=>{u.elapsed=!0,r==null||r(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(Ie.TIMEOUT))},i??this.props.cmdTimeout),u.clearTimeout=()=>{clearTimeout(L)});try{await a(l,N,u)}catch(g){e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(g.toString()))}});return e&&(this._promises[e]=c),c}resetCache(e,t){t?Object.keys(this._promises).filter(i=>i.startsWith(e)).forEach(i=>{delete this._promises[i]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getStates",e,(r,o)=>{this.states=o??{},r?i(r):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(r,o)=>{r?i(r):t(o)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>{r?i(r):t(o)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setBinaryState",e,t,o=>{o?r(o):i()})}})}setState(e,t,i){return typeof i=="boolean"&&(t={val:t,ack:i}),this.request({commandTimeout:!1,executor:(r,o)=>{if(e&&e===this.ignoreState){let n;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?n=t:n={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=n,this.statesSubscribes[e])for(const a of this.statesSubscribes[e].cbs)try{const c=a(e,n);c instanceof Promise&&c.catch(l=>console.error(`Cannot call state change handler: ${l}`))}catch(c){console.error(`Error by callback of stateChanged: ${c}`)}r();return}this._socket.emit("setState",e,t,n=>{n?o(n):r()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{if(!e&&this.objects){i(this.objects);return}this._socket.emit(ze.isWeb()?"getObjects":"getAllObjects",(o,n)=>{var a,c;t||(c=(a=this.props).onProgress)==null||c.call(a,rt.OBJECTS_LOADED),o?r(o):(this.objects=n??{},i(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjects",e,(r,o)=>{r?i(r):t(o)})}})}_subscribe(e){var t,i;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("subscribeObjects",r),Object.keys(this.objectsSubscribes).forEach(o=>this._socket.emit("subscribeObjects",o)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("subscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("subscribeFiles",n,a)})}else if(!e&&this.subscribed){this.subscribed=!1,(i=this.props.autoSubscribes)!=null&&i.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("unsubscribeObjects",r),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("unsubscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("unsubscribeFiles",n,a)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("requireLog",e,r=>{r?i(r):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObject",e,{maintenance:t},o=>{o?r(o):i()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObjects",e,{maintenance:t},o=>{o?r(o):i()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(r,o)=>{r?i(r):t(o)})}})}sendTo(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendTo",e,t,i,o=>{r(o)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("extendObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(o,n)=>{if(o)r(o);else{const a={};if(n)for(let c=0;c{i=i||"",r=r||"香",this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(a);else{const l={};if(c&&c.rows)for(let N=0;N{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>{var o;i?t(i):e((o=r.rows)==null?void 0:o.map(n=>n.value).filter(n=>!!n))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>{o?r(o):i(n)})}})}readFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit(i?"readFile64":"readFile",e,t,(n,a,c)=>{n?o(n):r({file:a,mimeType:c})})}})}writeFile64(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>{n?o(n):r()});else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>{a?o(a):r()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o?r(o):i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o?r(o):i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n?o(n):r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n?o(n):r()})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c?n(c):o())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let i=await this.getObject("system.config");i??={},i.common??={},i.native??={},t(i)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>{r?i(r):(o??={},o.common??={},o.native??={},t(o))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>{r?i(r):t(o??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>{o?r(o):i(n)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>{o?r(o):i(n)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>{o?r(o):i({values:n,sessionId:c,step:a})})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(r):t({version:o,serverName:n})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(i,r)=>{i?t(i):e(r)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>{o?r(o):i(!!n)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,i)=>{e(i)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var i;const t=await this.getObject("system.meta.uuid");e((i=t==null?void 0:t.native)==null?void 0:i.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>{o?r(o):i(n)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=e?`system.adapter.${e}.`:"system.adapter.",o=`${r}香`,n=await this.getObjectViewSystem("instance",r,o),a=Object.values(n);i(e?a.filter(c=>c.common.name===e):a)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),o=Object.values(r);i(e?o.filter(n=>n.common.name===e):o)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",i=>{i?t(i):e(null)})}})}subscribeOnInstance(e,t,i,r){return this.request({commandTimeout:!1,executor:(o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(a):c&&(c.error?n(c.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c)))})}})}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(this.request({commandTimeout:!1,executor:(N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>L?u(L):N(g))}}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>!!a.find(c=>c)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:i=>(this._socket.emit("log",e,t),i(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function Qg(s,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(s.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(s.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(s.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(r=>r.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:s,type:t}}function Ug(s){var i,r,o,n;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((r=(i=s.native)==null?void 0:i.hardware)!=null&&r.networkInterfaces){const a=(n=(o=s.native)==null?void 0:o.hardware)==null?void 0:n.networkInterfaces;Object.keys(a).forEach(c=>{a[c].forEach(l=>{l.family!=="IPv6"?e.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv4"}):t.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class B3e extends ze{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var r;const i=await this.getObject("system.certificates");(r=i==null?void 0:i.native)!=null&&r.certificates?t(Object.entries(i.native.certificates).map(([o,n])=>Qg(o,n)).filter(o=>!!o)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>{i(r)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,r=>{i(r)})}})}upgradeController(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:i},n=>{const a=n;a.error?o(a.error):r(a.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("updateLicenses",e,t,(o,n)=>{o?r(o):i(n)})}})}upgradeOsPackages(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!i},o=>{r(o)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("readLogs",e,(r,o)=>{r&&i(r),t(o)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>{r&&i(r),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o&&r(o),i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o&&r(o),i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n&&o(n),r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n&&o(n),r()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}renameGroup(e,t,i){return this.request({commandTimeout:!1,executor:async r=>{const o=await this.getGroups(!0),n=o.filter(c=>c._id.startsWith(`${e}.`));for(const c of n){const l=c._id,N=t+c._id.substring(e.length);c._id=N,await this.setObject(N,c),await this.delObject(l)}const a=o.find(c=>c._id===e);if(a){const c=a._id;a._id=t,i!==void 0&&(a.common??={},a.common.name=i),await this.setObject(t,a),await this.delObject(c)}r()}})}getHostInfo(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfo"'):a?r(a):o('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfoShort"'):a?r(a):o('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,i,r){return this.request({cacheKey:`repository_${e}`,forceUpdate:i,commandTimeout:r,executor:(o,n,a)=>{this._socket.emit("sendToHost",e,"getRepository",t,c=>{a.elapsed||(a.clearTimeout(),c===Ie.PERMISSION_ERROR?n('May not read "getRepository"'):c?o(c):n('Cannot read "getRepository"'))})}})}getInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getInstalled"'):a?r(a):o('Cannot read "getInstalled"'))})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c&&n(c),o())})}})}readBaseSettings(e){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,o=>{r.elapsed||(r.clearTimeout(),o===Ie.PERMISSION_ERROR?i('May not read "BaseSettings"'):o?o.error?i(new Error(o.error)):t(o):i('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,n=>{o.elapsed||(o.clearTimeout(),n===Ie.PERMISSION_ERROR?r('May not write "BaseSettings"'):n?i(n):r('Cannot write "BaseSettings"'))})}})}restartController(e){return e=ui(e),this.request({executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{r.elapsed||(r.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=ui(e),this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getDiagData",t,n=>{o.elapsed||(o.clearTimeout(),i(n||null))})}})}changePassword(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("changePassword",e,t,n=>{o.elapsed||(o.clearTimeout(),n&&r(n),i())})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getHostByIp(e,t){return e=ui(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(i,r,o)=>{this._socket.emit("getHostByIp",e,(n,a)=>{if(o.elapsed)return;o.clearTimeout();const{IPs4:c,IPs6:l}=Ug(a);i([...c,...l])})}})}encrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("encrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}decrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("decrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}chmodFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chmodFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}chownFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chownFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}clearNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,i)=>{this._socket.emit("getIsEasyModeStrict",(r,o)=>{i.elapsed||(i.clearTimeout(),r&&t(r),e(!!o))})}})}getEasyMode(){return this.request({executor:(e,t,i)=>{this._socket.emit("getEasyMode",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(new Error(r)):e(o))})}})}getRatings(e){return this.request({executor:(t,i,r)=>{this._socket.emit("getRatings",!!e,(o,n)=>{r.elapsed||(r.clearTimeout(),o?i(new Error(o)):t(n))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(i,r,o)=>{try{const n=await fetch("./session",{signal:t.signal});if(o.elapsed)return;o.clearTimeout();const a=await n.json();i(a)}catch(n){r(`getCurrentSession: ${n}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,i)=>{this._socket.emit("getCurrentInstance",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(r):e(o))})}})}getAdapterInstances(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`instances_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapterInstances",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getAdapters(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`adapter_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapters",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactAdapters",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactInstances",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactInstalled",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactInstalled"'):a?r(a):o('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,i){return e=Tt(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactRepository",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactRepository"'):a?r(a):o('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactHosts",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactSystemRepositories",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}}const X=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Xt="9.24.0",ie=globalThis;function qr(){return eo(ie),ie}function eo(s){const e=s.__SENTRY__=s.__SENTRY__||{};return e.version=e.version||Xt,e[Xt]=e[Xt]||{}}function to(s,e,t=ie){const i=t.__SENTRY__=t.__SENTRY__||{},r=i[Xt]=i[Xt]||{};return r[s]||(r[s]=e())}const yN=Object.prototype.toString;function ja(s){switch(yN.call(s)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return bt(s,Error)}}function Vs(s,e){return yN.call(s)===`[object ${e}]`}function TN(s){return Vs(s,"ErrorEvent")}function GM(s){return Vs(s,"DOMError")}function $g(s){return Vs(s,"DOMException")}function ht(s){return Vs(s,"String")}function ya(s){return typeof s=="object"&&s!==null&&"__sentry_template_string__"in s&&"__sentry_template_values__"in s}function Ta(s){return s===null||ya(s)||typeof s!="object"&&typeof s!="function"}function _i(s){return Vs(s,"Object")}function so(s){return typeof Event<"u"&&bt(s,Event)}function Pg(s){return typeof Element<"u"&&bt(s,Element)}function Wg(s){return Vs(s,"RegExp")}function io(s){return!!(s!=null&&s.then&&typeof s.then=="function")}function Bg(s){return _i(s)&&"nativeEvent"in s&&"preventDefault"in s&&"stopPropagation"in s}function bt(s,e){try{return s instanceof e}catch{return!1}}function DN(s){return!!(typeof s=="object"&&s!==null&&(s.__isVue||s._isVue))}function Jg(s){return typeof Request<"u"&&bt(s,Request)}const Da=ie,Rg=80;function dN(s,e={}){if(!s)return"";try{let t=s;const i=5,r=[];let o=0,n=0;const a=" > ",c=a.length;let l;const N=Array.isArray(e)?e:e.keyAttrs,u=!Array.isArray(e)&&e.maxStringLength||Rg;for(;t&&o++1&&n+r.length*c+l.length>=u));)r.push(l),n+=l.length,t=t.parentNode;return r.reverse().join(a)}catch{return""}}function Fg(s,e){const t=s,i=[];if(!(t!=null&&t.tagName))return"";if(Da.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}i.push(t.tagName.toLowerCase());const r=e!=null&&e.length?e.filter(n=>t.getAttribute(n)).map(n=>[n,t.getAttribute(n)]):null;if(r!=null&&r.length)r.forEach(n=>{i.push(`[${n[0]}="${n[1]}"]`)});else{t.id&&i.push(`#${t.id}`);const n=t.className;if(n&&ht(n)){const a=n.split(/\s+/);for(const c of a)i.push(`.${c}`)}}const o=["aria-label","type","name","title","alt"];for(const n of o){const a=t.getAttribute(n);a&&i.push(`[${n}="${a}"]`)}return i.join("")}function da(){try{return Da.document.location.href}catch{return""}}function Gg(s){if(!Da.HTMLElement)return null;let e=s;const t=5;for(let i=0;i{const o=Yr[r];t[r]=e[r],e[r]=o});try{return s()}finally{i.forEach(r=>{e[r]=t[r]})}}function Vg(){let s=!1;const e={enable:()=>{s=!0},disable:()=>{s=!1},isEnabled:()=>s};return X?Ln.forEach(t=>{e[t]=(...i)=>{s&&Zs(()=>{ie.console[t](`${Hg}[${t}]:`,...i)})}}):Ln.forEach(t=>{e[t]=()=>{}}),e}const F=to("logger",Vg);function vr(s,e=0){return typeof s!="string"||e===0||s.length<=e?s:`${s.slice(0,e)}...`}function HM(s,e){if(!Array.isArray(s))return"";const t=[];for(let i=0;iZg(s,i,t))}function Ue(s,e,t){if(!(e in s))return;const i=s[e];if(typeof i!="function")return;const r=t(i);typeof r=="function"&&hN(r,i);try{s[e]=r}catch{X&&F.log(`Failed to replace method "${e}" in object`,s)}}function Kt(s,e,t){try{Object.defineProperty(s,e,{value:t,writable:!0,configurable:!0})}catch{X&&F.log(`Failed to add non-enumerable property "${e}" to object`,s)}}function hN(s,e){try{const t=e.prototype||{};s.prototype=e.prototype=t,Kt(s,"__sentry_original__",e)}catch{}}function ha(s){return s.__sentry_original__}function zN(s){if(ja(s))return{message:s.message,name:s.name,stack:s.stack,...ZM(s)};if(so(s)){const e={type:s.type,target:VM(s.target),currentTarget:VM(s.currentTarget),...ZM(s)};return typeof CustomEvent<"u"&&bt(s,CustomEvent)&&(e.detail=s.detail),e}else return s}function VM(s){try{return Pg(s)?dN(s):Object.prototype.toString.call(s)}catch{return""}}function ZM(s){if(typeof s=="object"&&s!==null){const e={};for(const t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t]=s[t]);return e}else return{}}function Xg(s,e=40){const t=Object.keys(zN(s));t.sort();const i=t[0];if(!i)return"[object has no keys]";if(i.length>=e)return vr(i,e);for(let r=t.length;r>0;r--){const o=t.slice(0,r).join(", ");if(!(o.length>e))return r===t.length?o:vr(o,e)}return""}function Kg(){const s=ie;return s.crypto||s.msCrypto}function Je(s=Kg()){let e=()=>Math.random()*16;try{if(s!=null&&s.randomUUID)return s.randomUUID().replace(/-/g,"");s!=null&&s.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return s.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function wN(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)==null?void 0:t[0]}function Vt(s){const{message:e,event_id:t}=s;if(e)return e;const i=wN(s);return i?i.type&&i.value?`${i.type}: ${i.value}`:i.type||i.value||t||"":t||""}function gn(s,e,t){const i=s.exception=s.exception||{},r=i.values=i.values||[],o=r[0]=r[0]||{};o.value||(o.value=e||""),o.type||(o.type="Error")}function Rs(s,e){const t=wN(s);if(!t)return;const i={type:"generic",handled:!0},r=t.mechanism;if(t.mechanism={...i,...r,...e},e&&"data"in e){const o={...r==null?void 0:r.data,...e.data};t.mechanism.data=o}}function XM(s){if(qg(s))return!0;try{Kt(s,"__sentry_captured__",!0)}catch{}return!1}function qg(s){try{return s.__sentry_captured__}catch{}}const CN=1e3;function Wi(){return Date.now()/CN}function ej(){const{performance:s}=ie;if(!(s!=null&&s.now))return Wi;const e=Date.now()-s.now(),t=s.timeOrigin==null?e:s.timeOrigin;return()=>(t+s.now())/CN}const zt=ej();function tj(s){const e=zt(),t={sid:Je(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>ij(t)};return s&&Fs(t,s),t}function Fs(s,e={}){if(e.user&&(!s.ipAddress&&e.user.ip_address&&(s.ipAddress=e.user.ip_address),!s.did&&!e.did&&(s.did=e.user.id||e.user.email||e.user.username)),s.timestamp=e.timestamp||zt(),e.abnormal_mechanism&&(s.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(s.ignoreDuration=e.ignoreDuration),e.sid&&(s.sid=e.sid.length===32?e.sid:Je()),e.init!==void 0&&(s.init=e.init),!s.did&&e.did&&(s.did=`${e.did}`),typeof e.started=="number"&&(s.started=e.started),s.ignoreDuration)s.duration=void 0;else if(typeof e.duration=="number")s.duration=e.duration;else{const t=s.timestamp-s.started;s.duration=t>=0?t:0}e.release&&(s.release=e.release),e.environment&&(s.environment=e.environment),!s.ipAddress&&e.ipAddress&&(s.ipAddress=e.ipAddress),!s.userAgent&&e.userAgent&&(s.userAgent=e.userAgent),typeof e.errors=="number"&&(s.errors=e.errors),e.status&&(s.status=e.status)}function sj(s,e){let t={};s.status==="ok"&&(t={status:"exited"}),Fs(s,t)}function ij(s){return{sid:`${s.sid}`,init:s.init,started:new Date(s.started*1e3).toISOString(),timestamp:new Date(s.timestamp*1e3).toISOString(),status:s.status,errors:s.errors,did:typeof s.did=="number"||typeof s.did=="string"?`${s.did}`:void 0,duration:s.duration,abnormal_mechanism:s.abnormal_mechanism,attrs:{release:s.release,environment:s.environment,ip_address:s.ipAddress,user_agent:s.userAgent}}}function Bi(s,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(s&&Object.keys(e).length===0)return s;const i={...s};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=Bi(i[r],e[r],t-1));return i}const jn="_sentrySpan";function KM(s,e){e?Kt(s,jn,e):delete s[jn]}function qM(s){return s[jn]}function ec(){return Je()}function IN(){return Je().substring(16)}const rj=100;class wt{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:ec(),sampleRand:Math.random()}}clone(){const e=new wt;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,KM(e,qM(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Fs(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,i=t instanceof wt?t.getScopeData():_i(t)?e:void 0,{tags:r,extra:o,user:n,contexts:a,level:c,fingerprint:l=[],propagationContext:N}=i||{};return this._tags={...this._tags,...r},this._extra={...this._extra,...o},this._contexts={...this._contexts,...a},n&&Object.keys(n).length&&(this._user=n),c&&(this._level=c),l.length&&(this._fingerprint=l),N&&(this._propagationContext=N),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,KM(this,void 0),this._attachments=[],this.setPropagationContext({traceId:ec(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var o;const i=typeof t=="number"?t:rj;if(i<=0)return this;const r={timestamp:Wi(),...e,message:e.message?vr(e.message,2048):e.message};return this._breadcrumbs.push(r),this._breadcrumbs.length>i&&(this._breadcrumbs=this._breadcrumbs.slice(-i),(o=this._client)==null||o.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:qM(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=Bi(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const i=(t==null?void 0:t.event_id)||Je();if(!this._client)return F.warn("No client configured on scope - will not capture exception!"),i;const r=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:i},this),i}captureMessage(e,t,i){const r=(i==null?void 0:i.event_id)||Je();if(!this._client)return F.warn("No client configured on scope - will not capture message!"),r;const o=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:o,...i,event_id:r},this),r}captureEvent(e,t){const i=(t==null?void 0:t.event_id)||Je();return this._client?(this._client.captureEvent(e,{...t,event_id:i},this),i):(F.warn("No client configured on scope - will not capture event!"),i)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function oj(){return to("defaultCurrentScope",()=>new wt)}function nj(){return to("defaultIsolationScope",()=>new wt)}class aj{constructor(e,t){let i;e?i=e:i=new wt;let r;t?r=t:r=new wt,this._stack=[{scope:i}],this._isolationScope=r}withScope(e){const t=this._pushScope();let i;try{i=e(t)}catch(r){throw this._popScope(),r}return io(i)?i.then(r=>(this._popScope(),r),r=>{throw this._popScope(),r}):(this._popScope(),i)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Gs(){const s=qr(),e=eo(s);return e.stack=e.stack||new aj(oj(),nj())}function Mj(s){return Gs().withScope(s)}function cj(s,e){const t=Gs();return t.withScope(()=>(t.getStackTop().scope=s,e(s)))}function tc(s){return Gs().withScope(()=>s(Gs().getIsolationScope()))}function uj(){return{withIsolationScope:tc,withScope:Mj,withSetScope:cj,withSetIsolationScope:(s,e)=>tc(e),getCurrentScope:()=>Gs().getScope(),getIsolationScope:()=>Gs().getIsolationScope()}}function za(s){const e=eo(s);return e.acs?e.acs:uj()}function Ct(){const s=qr();return za(s).getCurrentScope()}function Ji(){const s=qr();return za(s).getIsolationScope()}function lj(){return to("globalScope",()=>new wt)}function Nj(...s){const e=qr(),t=za(e);if(s.length===2){const[i,r]=s;return i?t.withSetScope(i,r):t.withScope(r)}return t.withScope(s[0])}function Ee(){return Ct().getClient()}function Lj(s){const e=s.getPropagationContext(),{traceId:t,parentSpanId:i,propagationSpanId:r}=e,o={trace_id:t,span_id:r||IN()};return i&&(o.parent_span_id=i),o}const gj="sentry.source",jj="sentry.sample_rate",yj="sentry.previous_trace_sample_rate",Tj="sentry.op",Dj="sentry.origin",pN="sentry.profile_id",AN="sentry.exclusive_time",dj=0,hj=1,zj="_sentryScope",wj="_sentryIsolationScope";function mN(s){return{scope:s[zj],isolationScope:s[wj]}}function Cj(s){if(typeof s=="boolean")return Number(s);const e=typeof s=="string"?parseFloat(s):s;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Ij="sentry-",pj=/^sentry-/;function Aj(s){const e=mj(s);if(!e)return;const t=Object.entries(e).reduce((i,[r,o])=>{if(r.match(pj)){const n=r.slice(Ij.length);i[n]=o}return i},{});if(Object.keys(t).length>0)return t}function mj(s){if(!(!s||!ht(s)&&!Array.isArray(s)))return Array.isArray(s)?s.reduce((e,t)=>{const i=sc(t);return Object.entries(i).forEach(([r,o])=>{e[r]=o}),e},{}):sc(s)}function sc(s){return s.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,i])=>(t&&i&&(e[t]=i),e),{})}const ON=1;let ic=!1;function Oj(s){const{spanId:e,traceId:t,isRemote:i}=s.spanContext(),r=i?e:wa(s).parent_span_id,o=mN(s).scope,n=i?(o==null?void 0:o.getPropagationContext().propagationSpanId)||IN():e;return{parent_span_id:r,span_id:n,trace_id:t}}function Ej(s){if(s&&s.length>0)return s.map(({context:{spanId:e,traceId:t,traceFlags:i,...r},attributes:o})=>({span_id:e,trace_id:t,sampled:i===ON,attributes:o,...r}))}function rc(s){return typeof s=="number"?oc(s):Array.isArray(s)?s[0]+s[1]/1e9:s instanceof Date?oc(s.getTime()):zt()}function oc(s){return s>9999999999?s/1e3:s}function wa(s){var i;if(xj(s))return s.getSpanJSON();const{spanId:e,traceId:t}=s.spanContext();if(fj(s)){const{attributes:r,startTime:o,name:n,endTime:a,status:c,links:l}=s,N="parentSpanId"in s?s.parentSpanId:"parentSpanContext"in s?(i=s.parentSpanContext)==null?void 0:i.spanId:void 0;return{span_id:e,trace_id:t,data:r,description:n,parent_span_id:N,start_timestamp:rc(o),timestamp:rc(a)||void 0,status:Sj(c),op:r[Tj],origin:r[Dj],links:Ej(l)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function fj(s){const e=s;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function xj(s){return typeof s.getSpanJSON=="function"}function _j(s){const{traceFlags:e}=s.spanContext();return e===ON}function Sj(s){if(!(!s||s.code===dj))return s.code===hj?"ok":s.message||"unknown_error"}const kj="_sentryRootSpan";function EN(s){return s[kj]||s}function nc(){ic||(Zs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),ic=!0)}const fN=50,qt="?",ac=/\(error: (.*)\)/,Mc=/captureMessage|captureException/;function xN(...s){const e=s.sort((t,i)=>t[0]-i[0]).map(t=>t[1]);return(t,i=0,r=0)=>{const o=[],n=t.split(` -`);for(let a=i;a1024)continue;const l=ac.test(c)?c.replace(ac,"$1"):c;if(!l.match(/\S*Error: /)){for(const N of e){const u=N(l);if(u){o.push(u);break}}if(o.length>=fN+r)break}}return vj(o.slice(r))}}function Yj(s){return Array.isArray(s)?xN(...s):s}function vj(s){if(!s.length)return[];const e=Array.from(s);return/sentryWrapped/.test(nr(e).function||"")&&e.pop(),e.reverse(),Mc.test(nr(e).function||"")&&(e.pop(),Mc.test(nr(e).function||"")&&e.pop()),e.slice(0,fN).map(t=>({...t,filename:t.filename||nr(e).filename,function:t.function||qt}))}function nr(s){return s[s.length-1]||{}}const Eo="";function Qt(s){try{return!s||typeof s!="function"?Eo:s.name||Eo}catch{return Eo}}function cc(s){const e=s.exception;if(e){const t=[];try{return e.values.forEach(i=>{i.stacktrace.frames&&t.push(...i.stacktrace.frames)}),t}catch{return}}}const Ar={},uc={};function rs(s,e){Ar[s]=Ar[s]||[],Ar[s].push(e)}function os(s,e){if(!uc[s]){uc[s]=!0;try{e()}catch(t){X&&F.error(`Error while instrumenting ${s}`,t)}}}function Ke(s,e){const t=s&&Ar[s];if(t)for(const i of t)try{i(e)}catch(r){X&&F.error(`Error while triggering instrumentation handler. -Type: ${s} -Name: ${Qt(i)} -Error:`,r)}}let fo=null;function bj(s){const e="error";rs(e,s),os(e,Qj)}function Qj(){fo=ie.onerror,ie.onerror=function(s,e,t,i,r){return Ke("error",{column:i,error:r,line:t,msg:s,url:e}),fo?fo.apply(this,arguments):!1},ie.onerror.__SENTRY_INSTRUMENTED__=!0}let xo=null;function Uj(s){const e="unhandledrejection";rs(e,s),os(e,$j)}function $j(){xo=ie.onunhandledrejection,ie.onunhandledrejection=function(s){return Ke("unhandledrejection",s),xo?xo.apply(this,arguments):!0},ie.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Pj(s){var t;if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;const e=s||((t=Ee())==null?void 0:t.getOptions());return!!e&&(e.tracesSampleRate!=null||!!e.tracesSampler)}const Ca="production",Wj=/^o(\d+)\./,Bj=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Jj(s){return s==="http"||s==="https"}function oo(s,e=!1){const{host:t,path:i,pass:r,port:o,projectId:n,protocol:a,publicKey:c}=s;return`${a}://${c}${e&&r?`:${r}`:""}@${t}${o?`:${o}`:""}/${i&&`${i}/`}${n}`}function Rj(s){const e=Bj.exec(s);if(!e){Zs(()=>{console.error(`Invalid Sentry Dsn: ${s}`)});return}const[t,i,r="",o="",n="",a=""]=e.slice(1);let c="",l=a;const N=l.split("/");if(N.length>1&&(c=N.slice(0,-1).join("/"),l=N.pop()),l){const u=l.match(/^\d+/);u&&(l=u[0])}return _N({host:o,pass:r,path:c,projectId:l,port:n,protocol:t,publicKey:i})}function _N(s){return{protocol:s.protocol,publicKey:s.publicKey||"",pass:s.pass||"",host:s.host,port:s.port||"",path:s.path||"",projectId:s.projectId}}function Fj(s){if(!X)return!0;const{port:e,projectId:t,protocol:i}=s;return["protocol","publicKey","host","projectId"].find(n=>s[n]?!1:(F.error(`Invalid Sentry Dsn: ${n} missing`),!0))?!1:t.match(/^\d+$/)?Jj(i)?e&&isNaN(parseInt(e,10))?(F.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(F.error(`Invalid Sentry Dsn: Invalid protocol ${i}`),!1):(F.error(`Invalid Sentry Dsn: Invalid projectId ${t}`),!1)}function Gj(s){const e=s.match(Wj);return e==null?void 0:e[1]}function Hj(s){const e=typeof s=="string"?Rj(s):_N(s);if(!(!e||!Fj(e)))return e}const Vj="_frozenDsc";function SN(s,e){const t=e.getOptions(),{publicKey:i,host:r}=e.getDsn()||{};let o;t.orgId?o=String(t.orgId):r&&(o=Gj(r));const n={environment:t.environment||Ca,release:t.release,public_key:i,trace_id:s,org_id:o};return e.emit("createDsc",n),n}function Zj(s,e){const t=e.getPropagationContext();return t.dsc||SN(t.traceId,s)}function Xj(s){var y;const e=Ee();if(!e)return{};const t=EN(s),i=wa(t),r=i.data,o=t.spanContext().traceState,n=(o==null?void 0:o.get("sentry.sample_rate"))??r[jj]??r[yj];function a(T){return(typeof n=="number"||typeof n=="string")&&(T.sample_rate=`${n}`),T}const c=t[Vj];if(c)return a(c);const l=o==null?void 0:o.get("sentry.dsc"),N=l&&Aj(l);if(N)return a(N);const u=SN(s.spanContext().traceId,e),L=r[gj],g=i.description;return L!=="url"&&g&&(u.transaction=g),Pj()&&(u.sampled=String(_j(t)),u.sample_rand=(o==null?void 0:o.get("sentry.sample_rand"))??((y=mN(t).scope)==null?void 0:y.getPropagationContext().sampleRand.toString())),a(u),e.emit("createDsc",u,t),u}function Dt(s,e=100,t=1/0){try{return yn("",s,e,t)}catch(i){return{ERROR:`**non-serializable** (${i})`}}}function kN(s,e=3,t=100*1024){const i=Dt(s,e);return ty(i)>t?kN(s,e-1,t):i}function yn(s,e,t=1/0,i=1/0,r=sy()){const[o,n]=r;if(e==null||["boolean","string"].includes(typeof e)||typeof e=="number"&&Number.isFinite(e))return e;const a=Kj(s,e);if(!a.startsWith("[object "))return a;if(e.__sentry_skip_normalization__)return e;const c=typeof e.__sentry_override_normalization_depth__=="number"?e.__sentry_override_normalization_depth__:t;if(c===0)return a.replace("object ","");if(o(e))return"[Circular ~]";const l=e;if(l&&typeof l.toJSON=="function")try{const g=l.toJSON();return yn("",g,c-1,i,r)}catch{}const N=Array.isArray(e)?[]:{};let u=0;const L=zN(e);for(const g in L){if(!Object.prototype.hasOwnProperty.call(L,g))continue;if(u>=i){N[g]="[MaxProperties ~]";break}const y=L[g];N[g]=yn(g,y,c-1,i,r),u++}return n(e),N}function Kj(s,e){try{if(s==="domain"&&e&&typeof e=="object"&&e._events)return"[Domain]";if(s==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&e===global)return"[Global]";if(typeof window<"u"&&e===window)return"[Window]";if(typeof document<"u"&&e===document)return"[Document]";if(DN(e))return"[VueViewModel]";if(Bg(e))return"[SyntheticEvent]";if(typeof e=="number"&&!Number.isFinite(e))return`[${e}]`;if(typeof e=="function")return`[Function: ${Qt(e)}]`;if(typeof e=="symbol")return`[${String(e)}]`;if(typeof e=="bigint")return`[BigInt: ${String(e)}]`;const t=qj(e);return/^HTML(\w*)Element$/.test(t)?`[HTMLElement: ${t}]`:`[object ${t}]`}catch(t){return`**non-serializable** (${t})`}}function qj(s){const e=Object.getPrototypeOf(s);return e!=null&&e.constructor?e.constructor.name:"null prototype"}function ey(s){return~-encodeURI(s).split(/%..|./).length}function ty(s){return ey(JSON.stringify(s))}function sy(){const s=new WeakSet;function e(i){return s.has(i)?!0:(s.add(i),!1)}function t(i){s.delete(i)}return[e,t]}function Ri(s,e=[]){return[s,e]}function iy(s,e){const[t,i]=s;return[t,[...i,e]]}function lc(s,e){const t=s[1];for(const i of t){const r=i[0].type;if(e(i,r))return!0}return!1}function Tn(s){const e=eo(ie);return e.encodePolyfill?e.encodePolyfill(s):new TextEncoder().encode(s)}function ry(s){const[e,t]=s;let i=JSON.stringify(e);function r(o){typeof i=="string"?i=typeof o=="string"?i+o:[Tn(i),o]:i.push(typeof o=="string"?Tn(o):o)}for(const o of t){const[n,a]=o;if(r(` -${JSON.stringify(n)} -`),typeof a=="string"||a instanceof Uint8Array)r(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(Dt(a))}r(c)}}return typeof i=="string"?i:oy(i)}function oy(s){const e=s.reduce((r,o)=>r+o.length,0),t=new Uint8Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function ny(s){const e=typeof s.data=="string"?Tn(s.data):s.data;return[{type:"attachment",length:e.length,filename:s.filename,content_type:s.contentType,attachment_type:s.attachmentType},e]}const ay={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item"};function Nc(s){return ay[s]}function YN(s){if(!(s!=null&&s.sdk))return;const{name:e,version:t}=s.sdk;return{name:e,version:t}}function My(s,e,t,i){var o;const r=(o=s.sdkProcessingMetadata)==null?void 0:o.dynamicSamplingContext;return{event_id:s.event_id,sent_at:new Date().toISOString(),...e&&{sdk:e},...!!t&&i&&{dsn:oo(i)},...r&&{trace:r}}}function cy(s,e){return e&&(s.sdk=s.sdk||{},s.sdk.name=s.sdk.name||e.name,s.sdk.version=s.sdk.version||e.version,s.sdk.integrations=[...s.sdk.integrations||[],...e.integrations||[]],s.sdk.packages=[...s.sdk.packages||[],...e.packages||[]]),s}function uy(s,e,t,i){const r=YN(t),o={sent_at:new Date().toISOString(),...r&&{sdk:r},...!!i&&e&&{dsn:oo(e)}},n="aggregates"in s?[{type:"sessions"},s]:[{type:"session"},s.toJSON()];return Ri(o,[n])}function ly(s,e,t,i){const r=YN(t),o=s.type&&s.type!=="replay_event"?s.type:"event";cy(s,t==null?void 0:t.sdk);const n=My(s,r,i,e);return delete s.sdkProcessingMetadata,Ri(n,[[{type:o},s]])}var dt;(function(s){s[s.PENDING=0]="PENDING";const t=1;s[s.RESOLVED=t]="RESOLVED";const i=2;s[s.REJECTED=i]="REJECTED"})(dt||(dt={}));function es(s){return new Ut(e=>{e(s)})}function br(s){return new Ut((e,t)=>{t(s)})}class Ut{constructor(e){this._state=dt.PENDING,this._handlers=[],this._runExecutor(e)}then(e,t){return new Ut((i,r)=>{this._handlers.push([!1,o=>{if(!e)i(o);else try{i(e(o))}catch(n){r(n)}},o=>{if(!t)r(o);else try{i(t(o))}catch(n){r(n)}}]),this._executeHandlers()})}catch(e){return this.then(t=>t,e)}finally(e){return new Ut((t,i)=>{let r,o;return this.then(n=>{o=!1,r=n,e&&e()},n=>{o=!0,r=n,e&&e()}).then(()=>{if(o){i(r);return}t(r)})})}_executeHandlers(){if(this._state===dt.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach(t=>{t[0]||(this._state===dt.RESOLVED&&t[1](this._value),this._state===dt.REJECTED&&t[2](this._value),t[0]=!0)})}_runExecutor(e){const t=(o,n)=>{if(this._state===dt.PENDING){if(io(n)){n.then(i,r);return}this._state=o,this._value=n,this._executeHandlers()}},i=o=>{t(dt.RESOLVED,o)},r=o=>{t(dt.REJECTED,o)};try{e(i,r)}catch(o){r(o)}}}function Dn(s,e,t,i=0){return new Ut((r,o)=>{const n=s[i];if(e===null||typeof n!="function")r(e);else{const a=n({...e},t);X&&n.id&&a===null&&F.log(`Event processor "${n.id}" dropped event`),io(a)?a.then(c=>Dn(s,c,t,i+1).then(r)).then(null,o):Dn(s,a,t,i+1).then(r).then(null,o)}})}let ar,Lc,Mr;function Ny(s){const e=ie._sentryDebugIds;if(!e)return{};const t=Object.keys(e);return Mr&&t.length===Lc||(Lc=t.length,Mr=t.reduce((i,r)=>{ar||(ar={});const o=ar[r];if(o)i[o[0]]=o[1];else{const n=s(r);for(let a=n.length-1;a>=0;a--){const c=n[a],l=c==null?void 0:c.filename,N=e[r];if(l&&N){i[l]=N,ar[r]=[l,N];break}}}return i},{})),Mr}function Ly(s,e){const{fingerprint:t,span:i,breadcrumbs:r,sdkProcessingMetadata:o}=e;gy(s,e),i&&Ty(s,i),Dy(s,t),jy(s,r),yy(s,o)}function gc(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,sdkProcessingMetadata:a,breadcrumbs:c,fingerprint:l,eventProcessors:N,attachments:u,propagationContext:L,transactionName:g,span:y}=e;cr(s,"extra",t),cr(s,"tags",i),cr(s,"user",r),cr(s,"contexts",o),s.sdkProcessingMetadata=Bi(s.sdkProcessingMetadata,a,2),n&&(s.level=n),g&&(s.transactionName=g),y&&(s.span=y),c.length&&(s.breadcrumbs=[...s.breadcrumbs,...c]),l.length&&(s.fingerprint=[...s.fingerprint,...l]),N.length&&(s.eventProcessors=[...s.eventProcessors,...N]),u.length&&(s.attachments=[...s.attachments,...u]),s.propagationContext={...s.propagationContext,...L}}function cr(s,e,t){s[e]=Bi(s[e],t,1)}function gy(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,transactionName:a}=e;Object.keys(t).length&&(s.extra={...t,...s.extra}),Object.keys(i).length&&(s.tags={...i,...s.tags}),Object.keys(r).length&&(s.user={...r,...s.user}),Object.keys(o).length&&(s.contexts={...o,...s.contexts}),n&&(s.level=n),a&&s.type!=="transaction"&&(s.transaction=a)}function jy(s,e){const t=[...s.breadcrumbs||[],...e];s.breadcrumbs=t.length?t:void 0}function yy(s,e){s.sdkProcessingMetadata={...s.sdkProcessingMetadata,...e}}function Ty(s,e){s.contexts={trace:Oj(e),...s.contexts},s.sdkProcessingMetadata={dynamicSamplingContext:Xj(e),...s.sdkProcessingMetadata};const t=EN(e),i=wa(t).description;i&&!s.transaction&&s.type==="transaction"&&(s.transaction=i)}function Dy(s,e){s.fingerprint=s.fingerprint?Array.isArray(s.fingerprint)?s.fingerprint:[s.fingerprint]:[],e&&(s.fingerprint=s.fingerprint.concat(e)),s.fingerprint.length||delete s.fingerprint}function dy(s,e,t,i,r,o){const{normalizeDepth:n=3,normalizeMaxBreadth:a=1e3}=s,c={...e,event_id:e.event_id||t.event_id||Je(),timestamp:e.timestamp||Wi()},l=t.integrations||s.integrations.map(D=>D.name);hy(c,s),Cy(c,l),r&&r.emit("applyFrameMetadata",e),e.type===void 0&&zy(c,s.stackParser);const N=py(i,t.captureContext);t.mechanism&&Rs(c,t.mechanism);const u=r?r.getEventProcessors():[],L=lj().getScopeData();if(o){const D=o.getScopeData();gc(L,D)}if(N){const D=N.getScopeData();gc(L,D)}const g=[...t.attachments||[],...L.attachments];g.length&&(t.attachments=g),Ly(c,L);const y=[...u,...L.eventProcessors];return Dn(y,c,t).then(D=>(D&&wy(D),typeof n=="number"&&n>0?Iy(D,n,a):D))}function hy(s,e){const{environment:t,release:i,dist:r,maxValueLength:o=250}=e;s.environment=s.environment||t||Ca,!s.release&&i&&(s.release=i),!s.dist&&r&&(s.dist=r);const n=s.request;n!=null&&n.url&&(n.url=vr(n.url,o))}function zy(s,e){var i,r;const t=Ny(e);(r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.filename&&(c.debug_id=t[c.filename])})})}function wy(s){var i,r;const e={};if((r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.debug_id&&(c.abs_path?e[c.abs_path]=c.debug_id:c.filename&&(e[c.filename]=c.debug_id),delete c.debug_id)})}),Object.keys(e).length===0)return;s.debug_meta=s.debug_meta||{},s.debug_meta.images=s.debug_meta.images||[];const t=s.debug_meta.images;Object.entries(e).forEach(([o,n])=>{t.push({type:"sourcemap",code_file:o,debug_id:n})})}function Cy(s,e){e.length>0&&(s.sdk=s.sdk||{},s.sdk.integrations=[...s.sdk.integrations||[],...e])}function Iy(s,e,t){var r,o;if(!s)return null;const i={...s,...s.breadcrumbs&&{breadcrumbs:s.breadcrumbs.map(n=>({...n,...n.data&&{data:Dt(n.data,e,t)}}))},...s.user&&{user:Dt(s.user,e,t)},...s.contexts&&{contexts:Dt(s.contexts,e,t)},...s.extra&&{extra:Dt(s.extra,e,t)}};return(r=s.contexts)!=null&&r.trace&&i.contexts&&(i.contexts.trace=s.contexts.trace,s.contexts.trace.data&&(i.contexts.trace.data=Dt(s.contexts.trace.data,e,t))),s.spans&&(i.spans=s.spans.map(n=>({...n,...n.data&&{data:Dt(n.data,e,t)}}))),(o=s.contexts)!=null&&o.flags&&i.contexts&&(i.contexts.flags=Dt(s.contexts.flags,3,t)),i}function py(s,e){if(!e)return s;const t=s?s.clone():new wt;return t.update(e),t}function Ay(s,e){return Ct().captureException(s,void 0)}function vN(s,e){return Ct().captureEvent(s,e)}function jc(s){const e=Ji(),t=Ct(),{userAgent:i}=ie.navigator||{},r=tj({user:t.getUser()||e.getUser(),...i&&{userAgent:i},...s}),o=e.getSession();return(o==null?void 0:o.status)==="ok"&&Fs(o,{status:"exited"}),bN(),e.setSession(r),r}function bN(){const s=Ji(),t=Ct().getSession()||s.getSession();t&&sj(t),QN(),s.setSession()}function QN(){const s=Ji(),e=Ee(),t=s.getSession();t&&e&&e.captureSession(t)}function yc(s=!1){if(s){bN();return}QN()}const my="7";function Oy(s){const e=s.protocol?`${s.protocol}:`:"",t=s.port?`:${s.port}`:"";return`${e}//${s.host}${t}${s.path?`/${s.path}`:""}/api/`}function Ey(s){return`${Oy(s)}${s.projectId}/envelope/`}function fy(s,e){const t={sentry_version:my};return s.publicKey&&(t.sentry_key=s.publicKey),e&&(t.sentry_client=`${e.name}/${e.version}`),new URLSearchParams(t).toString()}function xy(s,e,t){return e||`${Ey(s)}?${fy(s,t)}`}const Tc=[];function _y(s){const e={};return s.forEach(t=>{const{name:i}=t,r=e[i];r&&!r.isDefaultInstance&&t.isDefaultInstance||(e[i]=t)}),Object.values(e)}function Sy(s){const e=s.defaultIntegrations||[],t=s.integrations;e.forEach(r=>{r.isDefaultInstance=!0});let i;if(Array.isArray(t))i=[...e,...t];else if(typeof t=="function"){const r=t(e);i=Array.isArray(r)?r:[r]}else i=e;return _y(i)}function ky(s,e){const t={};return e.forEach(i=>{i&&UN(s,i,t)}),t}function Dc(s,e){for(const t of e)t!=null&&t.afterAllSetup&&t.afterAllSetup(s)}function UN(s,e,t){if(t[e.name]){X&&F.log(`Integration skipped because it was already installed: ${e.name}`);return}if(t[e.name]=e,Tc.indexOf(e.name)===-1&&typeof e.setupOnce=="function"&&(e.setupOnce(),Tc.push(e.name)),e.setup&&typeof e.setup=="function"&&e.setup(s),typeof e.preprocessEvent=="function"){const i=e.preprocessEvent.bind(e);s.on("preprocessEvent",(r,o)=>i(r,o,s))}if(typeof e.processEvent=="function"){const i=e.processEvent.bind(e),r=Object.assign((o,n)=>i(o,n,s),{id:e.name});s.addEventProcessor(r)}X&&F.log(`Integration installed: ${e.name}`)}function $N(s){const e=[];s.message&&e.push(s.message);try{const t=s.exception.values[s.exception.values.length-1];t!=null&&t.value&&(e.push(t.value),t.type&&e.push(`${t.type}: ${t.value}`))}catch{}return e}function Yy(s){var c;const{trace_id:e,parent_span_id:t,span_id:i,status:r,origin:o,data:n,op:a}=((c=s.contexts)==null?void 0:c.trace)??{};return{data:n??{},description:s.transaction,op:a,parent_span_id:t,span_id:i??"",start_timestamp:s.start_timestamp??0,status:r,timestamp:s.timestamp,trace_id:e??"",origin:o,profile_id:n==null?void 0:n[pN],exclusive_time:n==null?void 0:n[AN],measurements:s.measurements,is_segment:!0}}function vy(s){return{type:"transaction",timestamp:s.timestamp,start_timestamp:s.start_timestamp,transaction:s.description,contexts:{trace:{trace_id:s.trace_id,span_id:s.span_id,parent_span_id:s.parent_span_id,op:s.op,status:s.status,origin:s.origin,data:{...s.data,...s.profile_id&&{[pN]:s.profile_id},...s.exclusive_time&&{[AN]:s.exclusive_time}}}},measurements:s.measurements}}function by(s,e,t){const i=[{type:"client_report"},{timestamp:Wi(),discarded_events:s}];return Ri(e?{dsn:e}:{},[i])}const dc="Not capturing exception because it's already been captured.",hc="Discarded session because of missing or non-string release",PN=Symbol.for("SentryInternalError"),WN=Symbol.for("SentryDoNotSendEventError");function mr(s){return{message:s,[PN]:!0}}function _o(s){return{message:s,[WN]:!0}}function zc(s){return!!s&&typeof s=="object"&&PN in s}function wc(s){return!!s&&typeof s=="object"&&WN in s}class Qy{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=Hj(e.dsn):X&&F.warn("No DSN provided, client will not send events."),this._dsn){const t=xy(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,i){const r=Je();if(XM(e))return X&&F.log(dc),r;const o={event_id:r,...t};return this._process(this.eventFromException(e,o).then(n=>this._captureEvent(n,o,i))),o.event_id}captureMessage(e,t,i,r){const o={event_id:Je(),...i},n=ya(e)?e:String(e),a=Ta(e)?this.eventFromMessage(n,t,o):this.eventFromException(e,o);return this._process(a.then(c=>this._captureEvent(c,o,r))),o.event_id}captureEvent(e,t,i){const r=Je();if(t!=null&&t.originalException&&XM(t.originalException))return X&&F.log(dc),r;const o={event_id:r,...t},n=e.sdkProcessingMetadata||{},a=n.capturedSpanScope,c=n.capturedSpanIsolationScope;return this._process(this._captureEvent(e,o,a||i,c)),o.event_id}captureSession(e){this.sendSession(e),Fs(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit("flush"),this._isClientDoneProcessing(e).then(i=>t.flush(e).then(r=>i&&r))):es(!0)}close(e){return this.flush(e).then(t=>(this.getOptions().enabled=!1,this.emit("close"),t))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];UN(this,e,this._integrations),t||Dc(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let i=ly(e,this._dsn,this._options._metadata,this._options.tunnel);for(const o of t.attachments||[])i=iy(i,ny(o));const r=this.sendEnvelope(i);r&&r.then(o=>this.emit("afterSendEvent",e,o),null)}sendSession(e){const{release:t,environment:i=Ca}=this._options;if("aggregates"in e){const o=e.attrs||{};if(!o.release&&!t){X&&F.warn(hc);return}o.release=o.release||t,o.environment=o.environment||i,e.attrs=o}else{if(!e.release&&!t){X&&F.warn(hc);return}e.release=e.release||t,e.environment=e.environment||i}this.emit("beforeSendSession",e);const r=uy(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(r)}recordDroppedEvent(e,t,i=1){if(this._options.sendClientReports){const r=`${e}:${t}`;X&&F.log(`Recording outcome: "${r}"${i>1?` (${i} times)`:""}`),this._outcomes[r]=(this._outcomes[r]||0)+i}}on(e,t){const i=this._hooks[e]=this._hooks[e]||[];return i.push(t),()=>{const r=i.indexOf(t);r>-1&&i.splice(r,1)}}emit(e,...t){const i=this._hooks[e];i&&i.forEach(r=>r(...t))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,t=>(X&&F.error("Error while sending envelope:",t),t)):(X&&F.error("Transport disabled"),es({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=ky(this,e),Dc(this,e)}_updateSessionFromEvent(e,t){var c;let i=t.level==="fatal",r=!1;const o=(c=t.exception)==null?void 0:c.values;if(o){r=!0;for(const l of o){const N=l.mechanism;if((N==null?void 0:N.handled)===!1){i=!0;break}}}const n=e.status==="ok";(n&&e.errors===0||n&&i)&&(Fs(e,{...i&&{status:"crashed"},errors:e.errors||Number(r||i)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Ut(t=>{let i=0;const r=1,o=setInterval(()=>{this._numProcessing==0?(clearInterval(o),t(!0)):(i+=r,e&&i>=e&&(clearInterval(o),t(!1)))},r)})}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,i,r){const o=this.getOptions(),n=Object.keys(this._integrations);return!t.integrations&&(n!=null&&n.length)&&(t.integrations=n),this.emit("preprocessEvent",e,t),e.type||r.setLastEventId(e.event_id||t.event_id),dy(o,e,t,i,this,r).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,t),a.contexts={trace:Lj(i),...a.contexts};const c=Zj(this,i);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(e,t={},i=Ct(),r=Ji()){return X&&dn(e)&&F.log(`Captured error event \`${$N(e)[0]||""}\``),this._processEvent(e,t,i,r).then(o=>o.event_id,o=>{X&&(wc(o)?F.log(o.message):zc(o)?F.warn(o.message):F.warn(o))})}_processEvent(e,t,i,r){const o=this.getOptions(),{sampleRate:n}=o,a=BN(e),c=dn(e),l=e.type||"error",N=`before send for type \`${l}\``,u=typeof n>"u"?void 0:Cj(n);if(c&&typeof u=="number"&&Math.random()>u)return this.recordDroppedEvent("sample_rate","error"),br(_o(`Discarding event because it's not included in the random sample (sampling rate = ${n})`));const L=l==="replay_event"?"replay":l;return this._prepareEvent(e,t,i,r).then(g=>{if(g===null)throw this.recordDroppedEvent("event_processor",L),_o("An event processor returned `null`, will not send event.");if(t.data&&t.data.__sentry__===!0)return g;const T=$y(this,o,g,t);return Uy(T,N)}).then(g=>{var D;if(g===null){if(this.recordDroppedEvent("before_send",L),a){const p=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",p)}throw _o(`${N} returned \`null\`, will not send event.`)}const y=i.getSession()||r.getSession();if(c&&y&&this._updateSessionFromEvent(y,g),a){const z=((D=g.sdkProcessingMetadata)==null?void 0:D.spanCountBeforeProcessing)||0,p=g.spans?g.spans.length:0,C=z-p;C>0&&this.recordDroppedEvent("before_send","span",C)}const T=g.transaction_info;if(a&&T&&g.transaction!==e.transaction){const z="custom";g.transaction_info={...T,source:z}}return this.sendEvent(g,t),g}).then(null,g=>{throw wc(g)||zc(g)?g:(this.captureException(g,{data:{__sentry__:!0},originalException:g}),mr(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${g}`))})}_process(e){this._numProcessing++,e.then(t=>(this._numProcessing--,t),t=>(this._numProcessing--,t))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([t,i])=>{const[r,o]=t.split(":");return{reason:r,category:o,quantity:i}})}_flushOutcomes(){X&&F.log("Flushing outcomes...");const e=this._clearOutcomes();if(e.length===0){X&&F.log("No outcomes to send");return}if(!this._dsn){X&&F.log("No dsn provided, will not send outcomes");return}X&&F.log("Sending outcomes:",e);const t=by(e,this._options.tunnel&&oo(this._dsn));this.sendEnvelope(t)}}function Uy(s,e){const t=`${e} must return \`null\` or a valid event.`;if(io(s))return s.then(i=>{if(!_i(i)&&i!==null)throw mr(t);return i},i=>{throw mr(`${e} rejected with ${i}`)});if(!_i(s)&&s!==null)throw mr(t);return s}function $y(s,e,t,i){const{beforeSend:r,beforeSendTransaction:o,beforeSendSpan:n}=e;let a=t;if(dn(a)&&r)return r(a,i);if(BN(a)){if(n){const c=n(Yy(a));if(c?a=Bi(t,vy(c)):nc(),a.spans){const l=[];for(const N of a.spans){const u=n(N);u?l.push(u):(nc(),l.push(N))}a.spans=l}}if(o){if(a.spans){const c=a.spans.length;a.sdkProcessingMetadata={...t.sdkProcessingMetadata,spanCountBeforeProcessing:c}}return o(a,i)}}return a}function dn(s){return s.type===void 0}function BN(s){return s.type==="transaction"}function Py(s){return[{type:"log",item_count:s.length,content_type:"application/vnd.sentry.items.log+json"},{items:s}]}function Wy(s,e,t,i){const r={};return e!=null&&e.sdk&&(r.sdk={name:e.sdk.name,version:e.sdk.version}),t&&i&&(r.dsn=oo(i)),Ri(r,[Py(s)])}ie._sentryClientToLogBufferMap=new WeakMap;function So(s,e){var o;const t=By(s)??[];if(t.length===0)return;const i=s.getOptions(),r=Wy(t,i._metadata,i.tunnel,s.getDsn());(o=ie._sentryClientToLogBufferMap)==null||o.set(s,[]),s.emit("flushLogs"),s.sendEnvelope(r)}function By(s){var e;return(e=ie._sentryClientToLogBufferMap)==null?void 0:e.get(s)}function Jy(s,e){e.debug===!0&&(X?F.enable():Zs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Ct().update(e.initialScope);const i=new s(e);return Ry(i),i.init(),i}function Ry(s){Ct().setClient(s)}const JN=Symbol.for("SentryBufferFullError");function Fy(s){const e=[];function t(){return s===void 0||e.lengthi(a)).then(null,()=>i(a).then(null,()=>{})),a}function o(n){return new Ut((a,c)=>{let l=e.length;if(!l)return a(!0);const N=setTimeout(()=>{n&&n>0&&a(!1)},n);e.forEach(u=>{es(u).then(()=>{--l||(clearTimeout(N),a(!0))},c)})})}return{$:e,add:r,drain:o}}const Gy=60*1e3;function Hy(s,e=Date.now()){const t=parseInt(`${s}`,10);if(!isNaN(t))return t*1e3;const i=Date.parse(`${s}`);return isNaN(i)?Gy:i-e}function Vy(s,e){return s[e]||s.all||0}function Zy(s,e,t=Date.now()){return Vy(s,e)>t}function Xy(s,{statusCode:e,headers:t},i=Date.now()){const r={...s},o=t==null?void 0:t["x-sentry-rate-limits"],n=t==null?void 0:t["retry-after"];if(o)for(const a of o.trim().split(",")){const[c,l,,,N]=a.split(":",5),u=parseInt(c,10),L=(isNaN(u)?60:u)*1e3;if(!l)r.all=i+L;else for(const g of l.split(";"))g==="metric_bucket"?(!N||N.split(";").includes("custom"))&&(r[g]=i+L):r[g]=i+L}else n?r.all=i+Hy(n,i):e===429&&(r.all=i+60*1e3);return r}const Ky=64;function qy(s,e,t=Fy(s.bufferSize||Ky)){let i={};const r=n=>t.drain(n);function o(n){const a=[];if(lc(n,(u,L)=>{const g=Nc(L);Zy(i,g)?s.recordDroppedEvent("ratelimit_backoff",g):a.push(u)}),a.length===0)return es({});const c=Ri(n[0],a),l=u=>{lc(c,(L,g)=>{s.recordDroppedEvent(u,Nc(g))})},N=()=>e({body:ry(c)}).then(u=>(u.statusCode!==void 0&&(u.statusCode<200||u.statusCode>=300)&&X&&F.warn(`Sentry responded with status code ${u.statusCode} to sent event.`),i=Xy(i,u),u),u=>{throw l("network_error"),X&&F.error("Encountered error running transport request:",u),u});return t.add(N).then(u=>u,u=>{if(u===JN)return X&&F.error("Skipped sending event because buffer is full."),l("queue_overflow"),es({});throw u})}return{send:o,flush:r}}function eT(s){var e;((e=s.user)==null?void 0:e.ip_address)===void 0&&(s.user={...s.user,ip_address:"{{auto}}"})}function tT(s){var e;"aggregates"in s?((e=s.attrs)==null?void 0:e.ip_address)===void 0&&(s.attrs={...s.attrs,ip_address:"{{auto}}"}):s.ipAddress===void 0&&(s.ipAddress="{{auto}}")}function sT(s,e,t=[e],i="npm"){const r=s._metadata||{};r.sdk||(r.sdk={name:`sentry.javascript.${e}`,packages:t.map(o=>({name:`${i}:@sentry/${o}`,version:Xt})),version:Xt}),s._metadata=r}const iT=100;function ts(s,e){const t=Ee(),i=Ji();if(!t)return;const{beforeBreadcrumb:r=null,maxBreadcrumbs:o=iT}=t.getOptions();if(o<=0)return;const a={timestamp:Wi(),...s},c=r?Zs(()=>r(a,e)):a;c!==null&&(t.emit&&t.emit("beforeAddBreadcrumb",c,e),i.addBreadcrumb(c,o))}let Cc;const rT="FunctionToString",Ic=new WeakMap,oT=()=>({name:rT,setupOnce(){Cc=Function.prototype.toString;try{Function.prototype.toString=function(...s){const e=ha(this),t=Ic.has(Ee())&&e!==void 0?e:this;return Cc.apply(t,s)}}catch{}},setup(s){Ic.set(s,!0)}}),nT=oT,aT=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],MT="EventFilters",cT=(s={})=>{let e;return{name:MT,setup(t){const i=t.getOptions();e=pc(s,i)},processEvent(t,i,r){if(!e){const o=r.getOptions();e=pc(s,o)}return lT(t,e)?null:t}}},uT=(s={})=>({...cT(s),name:"InboundFilters"});function pc(s={},e={}){return{allowUrls:[...s.allowUrls||[],...e.allowUrls||[]],denyUrls:[...s.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...s.ignoreErrors||[],...e.ignoreErrors||[],...s.disableErrorDefaults?[]:aT],ignoreTransactions:[...s.ignoreTransactions||[],...e.ignoreTransactions||[]]}}function lT(s,e){if(s.type){if(s.type==="transaction"&<(s,e.ignoreTransactions))return X&&F.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${Vt(s)}`),!0}else{if(NT(s,e.ignoreErrors))return X&&F.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${Vt(s)}`),!0;if(TT(s))return X&&F.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${Vt(s)}`),!0;if(gT(s,e.denyUrls))return X&&F.warn(`Event dropped due to being matched by \`denyUrls\` option. -Event: ${Vt(s)}. -Url: ${Qr(s)}`),!0;if(!jT(s,e.allowUrls))return X&&F.warn(`Event dropped due to not being matched by \`allowUrls\` option. -Event: ${Vt(s)}. -Url: ${Qr(s)}`),!0}return!1}function NT(s,e){return e!=null&&e.length?$N(s).some(t=>ro(t,e)):!1}function LT(s,e){if(!(e!=null&&e.length))return!1;const t=s.transaction;return t?ro(t,e):!1}function gT(s,e){if(!(e!=null&&e.length))return!1;const t=Qr(s);return t?ro(t,e):!1}function jT(s,e){if(!(e!=null&&e.length))return!0;const t=Qr(s);return t?ro(t,e):!0}function yT(s=[]){for(let e=s.length-1;e>=0;e--){const t=s[e];if(t&&t.filename!==""&&t.filename!=="[native code]")return t.filename||null}return null}function Qr(s){var e,t;try{const i=[...((e=s.exception)==null?void 0:e.values)??[]].reverse().find(o=>{var n,a,c;return((n=o.mechanism)==null?void 0:n.parent_id)===void 0&&((c=(a=o.stacktrace)==null?void 0:a.frames)==null?void 0:c.length)}),r=(t=i==null?void 0:i.stacktrace)==null?void 0:t.frames;return r?yT(r):null}catch{return X&&F.error(`Cannot extract url for event ${Vt(s)}`),null}}function TT(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)!=null&&t.length?!s.message&&!s.exception.values.some(i=>i.stacktrace||i.type&&i.type!=="Error"||i.value):!1}function DT(s,e,t,i,r,o){var a;if(!((a=r.exception)!=null&&a.values)||!o||!bt(o.originalException,Error))return;const n=r.exception.values.length>0?r.exception.values[r.exception.values.length-1]:void 0;n&&(r.exception.values=hn(s,e,i,o.originalException,t,r.exception.values,n,0))}function hn(s,e,t,i,r,o,n,a){if(o.length>=t+1)return o;let c=[...o];if(bt(i[r],Error)){Ac(n,a);const l=s(e,i[r]),N=c.length;mc(l,r,N,a),c=hn(s,e,t,i[r],r,[l,...c],l,N)}return Array.isArray(i.errors)&&i.errors.forEach((l,N)=>{if(bt(l,Error)){Ac(n,a);const u=s(e,l),L=c.length;mc(u,`errors[${N}]`,L,a),c=hn(s,e,t,l,r,[u,...c],u,L)}}),c}function Ac(s,e){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,...s.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function mc(s,e,t,i){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,type:"chained",source:e,exception_id:t,parent_id:i}}function dT(s){const e="console";rs(e,s),os(e,hT)}function hT(){"console"in ie&&Ln.forEach(function(s){s in ie.console&&Ue(ie.console,s,function(e){return Yr[s]=e,function(...t){Ke("console",{args:t,level:s});const r=Yr[s];r==null||r.apply(ie.console,t)}})})}function zT(s){return s==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(s)?s:"log"}const wT="Dedupe",CT=()=>{let s;return{name:wT,processEvent(e){if(e.type)return e;try{if(IT(e,s))return X&&F.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return s=e}}},RN=CT;function IT(s,e){return e?!!(pT(s,e)||AT(s,e)):!1}function pT(s,e){const t=s.message,i=e.message;return!(!t&&!i||t&&!i||!t&&i||t!==i||!GN(s,e)||!FN(s,e))}function AT(s,e){const t=Oc(e),i=Oc(s);return!(!t||!i||t.type!==i.type||t.value!==i.value||!GN(s,e)||!FN(s,e))}function FN(s,e){let t=cc(s),i=cc(e);if(!t&&!i)return!0;if(t&&!i||!t&&i||(t=t,i=i,i.length!==t.length))return!1;for(let r=0;r=400&&s<500?"warning":s>=500?"error":void 0}const Si=ie;function mT(){return"history"in Si&&!!Si.history}function OT(){if(!("fetch"in Si))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function zn(s){return s&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(s.toString())}function ET(){var t;if(typeof EdgeRuntime=="string")return!0;if(!OT())return!1;if(zn(Si.fetch))return!0;let s=!1;const e=Si.document;if(e&&typeof e.createElement=="function")try{const i=e.createElement("iframe");i.hidden=!0,e.head.appendChild(i),(t=i.contentWindow)!=null&&t.fetch&&(s=zn(i.contentWindow.fetch)),e.head.removeChild(i)}catch(i){X&&F.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",i)}return s}function fT(s,e){const t="fetch";rs(t,s),os(t,()=>xT(void 0,e))}function xT(s,e=!1){e&&!ET()||Ue(ie,"fetch",function(t){return function(...i){const r=new Error,{method:o,url:n}=_T(i),a={args:i,fetchData:{method:o,url:n},startTimestamp:zt()*1e3,virtualError:r,headers:ST(i)};return Ke("fetch",{...a}),t.apply(ie,i).then(async c=>(Ke("fetch",{...a,endTimestamp:zt()*1e3,response:c}),c),c=>{if(Ke("fetch",{...a,endTimestamp:zt()*1e3,error:c}),ja(c)&&c.stack===void 0&&(c.stack=r.stack,Kt(c,"framesToPop",1)),c instanceof TypeError&&(c.message==="Failed to fetch"||c.message==="Load failed"||c.message==="NetworkError when attempting to fetch resource."))try{const l=new URL(a.fetchData.url);c.message=`${c.message} (${l.host})`}catch{}throw c})}})}function wn(s,e){return!!s&&typeof s=="object"&&!!s[e]}function Ec(s){return typeof s=="string"?s:s?wn(s,"url")?s.url:s.toString?s.toString():"":""}function _T(s){if(s.length===0)return{method:"GET",url:""};if(s.length===2){const[t,i]=s;return{url:Ec(t),method:wn(i,"method")?String(i.method).toUpperCase():"GET"}}const e=s[0];return{url:Ec(e),method:wn(e,"method")?String(e.method).toUpperCase():"GET"}}function ST(s){const[e,t]=s;try{if(typeof t=="object"&&t!==null&&"headers"in t&&t.headers)return new Headers(t.headers);if(Jg(e))return new Headers(e.headers)}catch{}}function kT(){return"npm"}const Le=ie;let Cn=0;function VN(){return Cn>0}function YT(){Cn++,setTimeout(()=>{Cn--})}function Hs(s,e={}){function t(r){return typeof r=="function"}if(!t(s))return s;try{const r=s.__sentry_wrapped__;if(r)return typeof r=="function"?r:s;if(ha(s))return s}catch{return s}const i=function(...r){try{const o=r.map(n=>Hs(n,e));return s.apply(this,o)}catch(o){throw YT(),Nj(n=>{n.addEventProcessor(a=>(e.mechanism&&(gn(a,void 0),Rs(a,e.mechanism)),a.extra={...a.extra,arguments:r},a)),Ay(o)}),o}};try{for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&(i[r]=s[r])}catch{}hN(i,s),Kt(s,"__sentry_wrapped__",i);try{Object.getOwnPropertyDescriptor(i,"name").configurable&&Object.defineProperty(i,"name",{get(){return s.name}})}catch{}return i}function vT(){const s=da(),{referrer:e}=Le.document||{},{userAgent:t}=Le.navigator||{},i={...e&&{Referer:e},...t&&{"User-Agent":t}};return{url:s,headers:i}}function Ia(s,e){const t=pa(s,e),i={type:PT(e),value:WT(e)};return t.length&&(i.stacktrace={frames:t}),i.type===void 0&&i.value===""&&(i.value="Unrecoverable error caught"),i}function bT(s,e,t,i){const r=Ee(),o=r==null?void 0:r.getOptions().normalizeDepth,n=GT(e),a={__serialized__:kN(e,o)};if(n)return{exception:{values:[Ia(s,n)]},extra:a};const c={exception:{values:[{type:so(e)?e.constructor.name:i?"UnhandledRejection":"Error",value:RT(e,{isUnhandledRejection:i})}]},extra:a};if(t){const l=pa(s,t);l.length&&(c.exception.values[0].stacktrace={frames:l})}return c}function Yo(s,e){return{exception:{values:[Ia(s,e)]}}}function pa(s,e){const t=e.stacktrace||e.stack||"",i=UT(e),r=$T(e);try{return s(t,i,r)}catch{}return[]}const QT=/Minified React error #\d+;/i;function UT(s){return s&&QT.test(s.message)?1:0}function $T(s){return typeof s.framesToPop=="number"?s.framesToPop:0}function ZN(s){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?s instanceof WebAssembly.Exception:!1}function PT(s){const e=s==null?void 0:s.name;return!e&&ZN(s)?s.message&&Array.isArray(s.message)&&s.message.length==2?s.message[0]:"WebAssembly.Exception":e}function WT(s){const e=s==null?void 0:s.message;return ZN(s)?Array.isArray(s.message)&&s.message.length==2?s.message[1]:"wasm exception":e?e.error&&typeof e.error.message=="string"?e.error.message:e:"No error message"}function BT(s,e,t,i){const r=(t==null?void 0:t.syntheticException)||void 0,o=Aa(s,e,r,i);return Rs(o),o.level="error",t!=null&&t.event_id&&(o.event_id=t.event_id),es(o)}function JT(s,e,t="info",i,r){const o=(i==null?void 0:i.syntheticException)||void 0,n=In(s,e,o,r);return n.level=t,i!=null&&i.event_id&&(n.event_id=i.event_id),es(n)}function Aa(s,e,t,i,r){let o;if(TN(e)&&e.error)return Yo(s,e.error);if(GM(e)||$g(e)){const n=e;if("stack"in e)o=Yo(s,e);else{const a=n.name||(GM(n)?"DOMError":"DOMException"),c=n.message?`${a}: ${n.message}`:a;o=In(s,c,t,i),gn(o,c)}return"code"in n&&(o.tags={...o.tags,"DOMException.code":`${n.code}`}),o}return ja(e)?Yo(s,e):_i(e)||so(e)?(o=bT(s,e,t,r),Rs(o,{synthetic:!0}),o):(o=In(s,e,t,i),gn(o,`${e}`),Rs(o,{synthetic:!0}),o)}function In(s,e,t,i){const r={};if(i&&t){const o=pa(s,t);o.length&&(r.exception={values:[{value:e,stacktrace:{frames:o}}]}),Rs(r,{synthetic:!0})}if(ya(e)){const{__sentry_template_string__:o,__sentry_template_values__:n}=e;return r.logentry={message:o,params:n},r}return r.message=e,r}function RT(s,{isUnhandledRejection:e}){const t=Xg(s),i=e?"promise rejection":"exception";return TN(s)?`Event \`ErrorEvent\` captured as ${i} with message \`${s.message}\``:so(s)?`Event \`${FT(s)}\` (type=${s.type}) captured as ${i}`:`Object captured as ${i} with keys: ${t}`}function FT(s){try{const e=Object.getPrototypeOf(s);return e?e.constructor.name:void 0}catch{}}function GT(s){for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const t=s[e];if(t instanceof Error)return t}}const HT=5e3;class VT extends Qy{constructor(e){const t=ZT(e),i=Le.SENTRY_SDK_SOURCE||kT();sT(t,"browser",["browser"],i),super(t);const{sendDefaultPii:r,sendClientReports:o,_experiments:n}=this._options,a=n==null?void 0:n.enableLogs;Le.document&&(o||a)&&Le.document.addEventListener("visibilitychange",()=>{Le.document.visibilityState==="hidden"&&(o&&this._flushOutcomes(),a&&So(this))}),a&&(this.on("flush",()=>{So(this)}),this.on("afterCaptureLog",()=>{this._logFlushIdleTimeout&&clearTimeout(this._logFlushIdleTimeout),this._logFlushIdleTimeout=setTimeout(()=>{So(this)},HT)})),r&&(this.on("postprocessEvent",eT),this.on("beforeSendSession",tT))}eventFromException(e,t){return BT(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",i){return JT(this._options.stackParser,e,t,i,this._options.attachStacktrace)}_prepareEvent(e,t,i,r){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,i,r)}}function ZT(s){var e;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(e=Le.SENTRY_RELEASE)==null?void 0:e.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...s}}const XT=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ae=ie,KT=1e3;let fc,pn,An;function qT(s){const e="dom";rs(e,s),os(e,eD)}function eD(){if(!Ae.document)return;const s=Ke.bind(null,"dom"),e=xc(s,!0);Ae.document.addEventListener("click",e,!1),Ae.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach(t=>{var o,n;const r=(o=Ae[t])==null?void 0:o.prototype;(n=r==null?void 0:r.hasOwnProperty)!=null&&n.call(r,"addEventListener")&&(Ue(r,"addEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},L=u[c]=u[c]||{refCount:0};if(!L.handler){const g=xc(s);L.handler=g,a.call(this,c,g,N)}L.refCount++}catch{}return a.call(this,c,l,N)}}),Ue(r,"removeEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__||{},L=u[c];L&&(L.refCount--,L.refCount<=0&&(a.call(this,c,L.handler,N),L.handler=void 0,delete u[c]),Object.keys(u).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return a.call(this,c,l,N)}}))})}function tD(s){if(s.type!==pn)return!1;try{if(!s.target||s.target._sentryId!==An)return!1}catch{}return!0}function sD(s,e){return s!=="keypress"?!1:e!=null&&e.tagName?!(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable):!0}function xc(s,e=!1){return t=>{if(!t||t._sentryCaptured)return;const i=iD(t);if(sD(t.type,i))return;Kt(t,"_sentryCaptured",!0),i&&!i._sentryId&&Kt(i,"_sentryId",Je());const r=t.type==="keypress"?"input":t.type;tD(t)||(s({event:t,name:r,global:e}),pn=t.type,An=i?i._sentryId:void 0),clearTimeout(fc),fc=Ae.setTimeout(()=>{An=void 0,pn=void 0},KT)}}function iD(s){try{return s.target}catch{return null}}let ur;function XN(s){const e="history";rs(e,s),os(e,rD)}function rD(){if(Ae.addEventListener("popstate",()=>{const e=Ae.location.href,t=ur;if(ur=e,t===e)return;Ke("history",{from:t,to:e})}),!mT())return;function s(e){return function(...t){const i=t.length>2?t[2]:void 0;if(i){const r=ur,o=oD(String(i));if(ur=o,r===o)return e.apply(this,t);Ke("history",{from:r,to:o})}return e.apply(this,t)}}Ue(Ae.history,"pushState",s),Ue(Ae.history,"replaceState",s)}function oD(s){try{return new URL(s,Ae.location.origin).toString()}catch{return s}}const Or={};function nD(s){const e=Or[s];if(e)return e;let t=Ae[s];if(zn(t))return Or[s]=t.bind(Ae);const i=Ae.document;if(i&&typeof i.createElement=="function")try{const r=i.createElement("iframe");r.hidden=!0,i.head.appendChild(r);const o=r.contentWindow;o!=null&&o[s]&&(t=o[s]),i.head.removeChild(r)}catch(r){XT&&F.warn(`Could not create sandbox iframe for ${s} check, bailing to window.${s}: `,r)}return t&&(Or[s]=t.bind(Ae))}function _c(s){Or[s]=void 0}const hi="__sentry_xhr_v3__";function aD(s){const e="xhr";rs(e,s),os(e,MD)}function MD(){if(!Ae.XMLHttpRequest)return;const s=XMLHttpRequest.prototype;s.open=new Proxy(s.open,{apply(e,t,i){const r=new Error,o=zt()*1e3,n=ht(i[0])?i[0].toUpperCase():void 0,a=cD(i[1]);if(!n||!a)return e.apply(t,i);t[hi]={method:n,url:a,request_headers:{}},n==="POST"&&a.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const c=()=>{const l=t[hi];if(l&&t.readyState===4){try{l.status_code=t.status}catch{}const N={endTimestamp:zt()*1e3,startTimestamp:o,xhr:t,virtualError:r};Ke("xhr",N)}};return"onreadystatechange"in t&&typeof t.onreadystatechange=="function"?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply(l,N,u){return c(),l.apply(N,u)}}):t.addEventListener("readystatechange",c),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(l,N,u){const[L,g]=u,y=N[hi];return y&&ht(L)&&ht(g)&&(y.request_headers[L.toLowerCase()]=g),l.apply(N,u)}}),e.apply(t,i)}}),s.send=new Proxy(s.send,{apply(e,t,i){const r=t[hi];if(!r)return e.apply(t,i);i[0]!==void 0&&(r.body=i[0]);const o={startTimestamp:zt()*1e3,xhr:t};return Ke("xhr",o),e.apply(t,i)}})}function cD(s){if(ht(s))return s;try{return s.toString()}catch{}}function uD(s,e=nD("fetch")){let t=0,i=0;function r(o){const n=o.body.length;t+=n,i++;const a={body:o.body,method:"POST",referrerPolicy:"strict-origin",headers:s.headers,keepalive:t<=6e4&&i<15,...s.fetchOptions};if(!e)return _c("fetch"),br("No fetch implementation available");try{return e(s.url,a).then(c=>(t-=n,i--,{statusCode:c.status,headers:{"x-sentry-rate-limits":c.headers.get("X-Sentry-Rate-Limits"),"retry-after":c.headers.get("Retry-After")}}))}catch(c){return _c("fetch"),t-=n,i--,br(c)}}return qy(s,r)}const lD=30,ND=50;function mn(s,e,t,i){const r={filename:s,function:e===""?qt:e,in_app:!0};return t!==void 0&&(r.lineno=t),i!==void 0&&(r.colno=i),r}const LD=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,gD=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,jD=/\((\S*)(?::(\d+))(?::(\d+))\)/,yD=s=>{const e=LD.exec(s);if(e){const[,i,r,o]=e;return mn(i,qt,+r,+o)}const t=gD.exec(s);if(t){if(t[2]&&t[2].indexOf("eval")===0){const n=jD.exec(t[2]);n&&(t[2]=n[1],t[3]=n[2],t[4]=n[3])}const[r,o]=KN(t[1]||qt,t[2]);return mn(o,r,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}},TD=[lD,yD],DD=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,dD=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,hD=s=>{const e=DD.exec(s);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const o=dD.exec(e[3]);o&&(e[1]=e[1]||"eval",e[3]=o[1],e[4]=o[2],e[5]="")}let i=e[3],r=e[1]||qt;return[r,i]=KN(r,i),mn(i,r,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}},zD=[ND,hD],wD=[TD,zD],CD=xN(...wD),KN=(s,e)=>{const t=s.indexOf("safari-extension")!==-1,i=s.indexOf("safari-web-extension")!==-1;return t||i?[s.indexOf("@")!==-1?s.split("@")[0]:qt,t?`safari-extension:${e}`:`safari-web-extension:${e}`]:[s,e]},no=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,lr=1024,ID="Breadcrumbs",pD=(s={})=>{const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...s};return{name:ID,setup(t){e.console&&dT(ED(t)),e.dom&&qT(OD(t,e.dom)),e.xhr&&aD(fD(t)),e.fetch&&fT(xD(t)),e.history&&XN(_D(t)),e.sentry&&t.on("beforeSendEvent",mD(t))}}},AD=pD;function mD(s){return function(t){Ee()===s&&ts({category:`sentry.${t.type==="transaction"?"transaction":"event"}`,event_id:t.event_id,level:t.level,message:Vt(t)},{event:t})}}function OD(s,e){return function(i){if(Ee()!==s)return;let r,o,n=typeof e=="object"?e.serializeAttribute:void 0,a=typeof e=="object"&&typeof e.maxStringLength=="number"?e.maxStringLength:void 0;a&&a>lr&&(no&&F.warn(`\`dom.maxStringLength\` cannot exceed ${lr}, but a value of ${a} was configured. Sentry will use ${lr} instead.`),a=lr),typeof n=="string"&&(n=[n]);try{const l=i.event,N=SD(l)?l.target:l;r=dN(N,{keyAttrs:n,maxStringLength:a}),o=Gg(N)}catch{r=""}if(r.length===0)return;const c={category:`ui.${i.name}`,message:r};o&&(c.data={"ui.component_name":o}),ts(c,{event:i.event,name:i.name,global:i.global})}}function ED(s){return function(t){if(Ee()!==s)return;const i={category:"console",data:{arguments:t.args,logger:"console"},level:zT(t.level),message:HM(t.args," ")};if(t.level==="assert")if(t.args[0]===!1)i.message=`Assertion failed: ${HM(t.args.slice(1)," ")||"console.assert"}`,i.data.arguments=t.args.slice(1);else return;ts(i,{input:t.args,level:t.level})}}function fD(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t,o=t.xhr[hi];if(!i||!r||!o)return;const{method:n,url:a,status_code:c,body:l}=o,N={method:n,url:a,status_code:c},u={xhr:t.xhr,input:l,startTimestamp:i,endTimestamp:r},L={category:"xhr",data:N,type:"http",level:HN(c)};s.emit("beforeOutgoingRequestBreadcrumb",L,u),ts(L,u)}}function xD(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t;if(r&&!(t.fetchData.url.match(/sentry_key/)&&t.fetchData.method==="POST"))if(t.fetchData.method,t.fetchData.url,t.error){const o=t.fetchData,n={data:t.error,input:t.args,startTimestamp:i,endTimestamp:r},a={category:"fetch",data:o,level:"error",type:"http"};s.emit("beforeOutgoingRequestBreadcrumb",a,n),ts(a,n)}else{const o=t.response,n={...t.fetchData,status_code:o==null?void 0:o.status};t.fetchData.request_body_size,t.fetchData.response_body_size,o==null||o.status;const a={input:t.args,response:o,startTimestamp:i,endTimestamp:r},c={category:"fetch",data:n,type:"http",level:HN(n.status_code)};s.emit("beforeOutgoingRequestBreadcrumb",c,a),ts(c,a)}}}function _D(s){return function(t){if(Ee()!==s)return;let i=t.from,r=t.to;const o=ko(Le.location.href);let n=i?ko(i):void 0;const a=ko(r);n!=null&&n.path||(n=o),o.protocol===a.protocol&&o.host===a.host&&(r=a.relative),o.protocol===n.protocol&&o.host===n.host&&(i=n.relative),ts({category:"navigation",data:{from:i,to:r}})}}function SD(s){return!!s&&!!s.target}const kD=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],YD="BrowserApiErrors",vD=(s={})=>{const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...s};return{name:YD,setupOnce(){e.setTimeout&&Ue(Le,"setTimeout",Sc),e.setInterval&&Ue(Le,"setInterval",Sc),e.requestAnimationFrame&&Ue(Le,"requestAnimationFrame",QD),e.XMLHttpRequest&&"XMLHttpRequest"in Le&&Ue(XMLHttpRequest.prototype,"send",UD);const t=e.eventTarget;t&&(Array.isArray(t)?t:kD).forEach(r=>$D(r,e))}}},bD=vD;function Sc(s){return function(...e){const t=e[0];return e[0]=Hs(t,{mechanism:{data:{function:Qt(s)},handled:!1,type:"instrument"}}),s.apply(this,e)}}function QD(s){return function(e){return s.apply(this,[Hs(e,{mechanism:{data:{function:"requestAnimationFrame",handler:Qt(s)},handled:!1,type:"instrument"}})])}}function UD(s){return function(...e){const t=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(r=>{r in t&&typeof t[r]=="function"&&Ue(t,r,function(o){const n={mechanism:{data:{function:r,handler:Qt(o)},handled:!1,type:"instrument"}},a=ha(o);return a&&(n.mechanism.data.handler=Qt(a)),Hs(o,n)})}),s.apply(this,e)}}function $D(s,e){var r,o;const i=(r=Le[s])==null?void 0:r.prototype;(o=i==null?void 0:i.hasOwnProperty)!=null&&o.call(i,"addEventListener")&&(Ue(i,"addEventListener",function(n){return function(a,c,l){try{PD(c)&&(c.handleEvent=Hs(c.handleEvent,{mechanism:{data:{function:"handleEvent",handler:Qt(c),target:s},handled:!1,type:"instrument"}}))}catch{}return e.unregisterOriginalCallbacks&&WD(this,a,c),n.apply(this,[a,Hs(c,{mechanism:{data:{function:"addEventListener",handler:Qt(c),target:s},handled:!1,type:"instrument"}}),l])}}),Ue(i,"removeEventListener",function(n){return function(a,c,l){try{const N=c.__sentry_wrapped__;N&&n.call(this,a,N,l)}catch{}return n.call(this,a,c,l)}}))}function PD(s){return typeof s.handleEvent=="function"}function WD(s,e,t){s&&typeof s=="object"&&"removeEventListener"in s&&typeof s.removeEventListener=="function"&&s.removeEventListener(e,t)}const BD=()=>({name:"BrowserSession",setupOnce(){if(typeof Le.document>"u"){no&&F.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}jc({ignoreDuration:!0}),yc(),XN(({from:s,to:e})=>{s!==void 0&&s!==e&&(jc({ignoreDuration:!0}),yc())})}}),JD="GlobalHandlers",RD=(s={})=>{const e={onerror:!0,onunhandledrejection:!0,...s};return{name:JD,setupOnce(){Error.stackTraceLimit=50},setup(t){e.onerror&&(GD(t),kc("onerror")),e.onunhandledrejection&&(HD(t),kc("onunhandledrejection"))}}},FD=RD;function GD(s){bj(e=>{const{stackParser:t,attachStacktrace:i}=qN();if(Ee()!==s||VN())return;const{msg:r,url:o,line:n,column:a,error:c}=e,l=XD(Aa(t,c||r,void 0,i,!1),o,n,a);l.level="error",vN(l,{originalException:c,mechanism:{handled:!1,type:"onerror"}})})}function HD(s){Uj(e=>{const{stackParser:t,attachStacktrace:i}=qN();if(Ee()!==s||VN())return;const r=VD(e),o=Ta(r)?ZD(r):Aa(t,r,void 0,i,!0);o.level="error",vN(o,{originalException:r,mechanism:{handled:!1,type:"onunhandledrejection"}})})}function VD(s){if(Ta(s))return s;try{if("reason"in s)return s.reason;if("detail"in s&&"reason"in s.detail)return s.detail.reason}catch{}return s}function ZD(s){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(s)}`}]}}}function XD(s,e,t,i){const r=s.exception=s.exception||{},o=r.values=r.values||[],n=o[0]=o[0]||{},a=n.stacktrace=n.stacktrace||{},c=a.frames=a.frames||[],l=i,N=t,u=ht(e)&&e.length>0?e:da();return c.length===0&&c.push({colno:l,filename:u,function:qt,in_app:!0,lineno:N}),s}function kc(s){no&&F.log(`Global Handler attached: ${s}`)}function qN(){const s=Ee();return(s==null?void 0:s.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}const KD=()=>({name:"HttpContext",preprocessEvent(s){var i;if(!Le.navigator&&!Le.location&&!Le.document)return;const e=vT(),t={...e.headers,...(i=s.request)==null?void 0:i.headers};s.request={...e,...s.request,headers:t}}}),qD="cause",ed=5,td="LinkedErrors",sd=(s={})=>{const e=s.limit||ed,t=s.key||qD;return{name:td,preprocessEvent(i,r,o){const n=o.getOptions();DT(Ia,n.stackParser,t,e,i,r)}}},id=sd;function rd(){return od()?(no&&Zs(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function od(){var o;if(typeof Le.window>"u")return!1;const s=Le;if(s.nw)return!1;const e=s.chrome||s.browser;if(!((o=e==null?void 0:e.runtime)!=null&&o.id))return!1;const t=da(),i=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(Le===Le.top&&i.some(n=>t.startsWith(`${n}://`)))}function nd(s){return[uT(),nT(),bD(),AD(),FD(),id(),RN(),KD(),BD()]}function ad(s={}){const e=!s.skipBrowserExtensionCheck&&rd(),t={...s,enabled:e?!1:s.enabled,stackParser:Yj(s.stackParser||CD),integrations:Sy({integrations:s.integrations,defaultIntegrations:s.defaultIntegrations==null?nd():s.defaultIntegrations}),transport:s.transport||uD};return Jy(VT,t)}function Md(){console.log(` -██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ -██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗ -██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝ -██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗ -██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║ -╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ -`),console.log("Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters"),console.log("Help us to create open source project with reactJS!"),console.log("See you :)")}const cd=` -/** - * Copyright 2018-2024 Denis Haev (bluefox) - * - * MIT License - * - **/ - -.logo-background-light, .logo-background-colored { - background: white; -} -.logo-background-dark, .logo-background-blue { - background: black; -} -.logo-div { - position: absolute; - top: 50%; - left: 50%; - -ms-transform: translateX(-50%) translateY(-50%); - -webkit-transform: translate(-50%,-50%); - transform: translate(-50%,-50%); - overflow: hidden; - border-radius: 50%; - z-index: 2; -} -.logo-border { - /*border-color: #164477;*/ - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - border-radius: 50%; - border-style: solid; - box-sizing: border-box; - width: 100%; - height: 100%; - position: absolute; -} -.logo-top { - position: absolute; - width: 4.5%; - height: 16%; - top: 0; - z-index: 2; -} -.logo-i { - position: absolute; - width: 14.5%; - height: 60%; - top: 20%; - left: 42%; - background: #3399CC; -} -.logo-i-top { - position: absolute; - width: 14.5%; - height: 4%; - left: 42%; - background: #3399CC; - border-radius: 100%; -} -.logo-back { - width: 100%; - height: 100%; - z-index: 0; - overflow: hidden; -} -@keyframes logo-grow { - 0% { - width: 230px; - height: 230px; - transform: translate(-50%,-50%) scale(1); - opacity: 1 - } - 99% { - width: 230px; - height: 230px; - transform: translate(-50%,-50%) scale(10); - opacity: 0; - } - 100% { - width: 0; - height: 0; - opacity: 0; - } -} -@keyframes logo-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } -@keyframes logo-color-inside-light { - 0% { - background: #FEFEFE; - } - 100% { - background: #3399CC; - } -} -@keyframes logo-color-inside-dark { - 0% { - background: #030303; - } - 100% { - background: #3399CC; - } -} -@keyframes logo-color-inside-colored { - 0% { - background: #FEFEFE; - } - 100% { - background: #3399CC; - } -} -@keyframes logo-color-inside-blue { - 0% { - background: #030303; - } - 100% { - background: #3399CC; - } -} - -@keyframes logo-color-outside-light { - 0% { - border-color: #FEFEFE; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} -@keyframes logo-color-outside-dark { - 0% { - border-color: #040404; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} -@keyframes logo-color-outside-colored { - 0% { - border-color: #FEFEFE; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} -@keyframes logo-color-outside-blue { - 0% { - border-color: #040404; - } - 100% { - border-top-color: #3399CC; - border-left-color: #164477; - border-bottom-color: #164477; - border-right-color: #164477; - } -} - -.logo-animate-wait { - animation: logo-color-outside 1.5s, logo-spin 1.5s linear infinite; -} - -.logo-animate-grow-light { - background: #DDD; -} -.logo-animate-grow-dark { - background: #1d1d1d; -} -.logo-animate-grow-colored { - background: #DDD; -} -.logo-animate-grow-blue { - background: #1d1d1d; -} - -.logo-animate-grow { - display: inline-block; - text-align: center; - z-index: 1; - top: 50%; - left: 50%; - -ms-transform: translateX(-50%) translateY(-50%); - -webkit-transform: translate(-50%,-50%); - transform: translate(-50%,-50%); - width: 245px; - height: 245px; - border-radius: 50%; - position: absolute; - animation: logo-grow 1s 1 ease forwards; -} - -.logo-animate-color-inside-light { - animation: logo-color-inside-light 2.5s; -} -.logo-animate-color-inside-dark { - animation: logo-color-inside-dark 2.5s; -} -.logo-animate-color-inside-colored { - animation: logo-color-inside-colored 2.5s; -} -.logo-animate-color-inside-blue { - animation: logo-color-inside-blue 2.5s; -} - -.logo-animate-color-outside-light { - animation: logo-color-outside-light 1.5s; -} -.logo-animate-color-outside-dark { - animation: logo-color-outside-dark 1.5s; -} -.logo-animate-color-outside-colored { - animation: logo-color-outside-colored 1.5s; -} -.logo-animate-color-outside-blue { - animation: logo-color-outside-blue 1.5s; -} -`;function ud(s){x.useEffect(()=>{if(!window.document.getElementById("loader-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","loader-iobroker-component"),i.innerHTML=cd,window.document.head.appendChild(i)}},[]);const e=s.size||234,t=s.themeName||s.theme||s.themeType||"light";return M.createElement("div",{className:`logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:void 0,backgroundSize:"cover"}},window.loadingHideLogo==="true"?null:M.createElement(M.Fragment,null,M.createElement("div",{className:"logo-div",style:{width:e,height:e}},M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"37%"}}),M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"57%"}}),M.createElement("div",{className:`logo-border logo-background-${t} logo-animate-wait`,style:{borderWidth:e*.132}}),M.createElement("div",{className:`logo-i logo-animate-color-inside-${t}`}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{top:"18%"}}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{bottom:"18%"}})),M.createElement("div",{className:`logo-animate-grow logo-animate-grow-${t}`,style:{width:e+11,height:e+11}})))}class Oi extends x.Component{onHashChangedBound;constructor(e){super(e),this.onHashChangedBound=this.onHashChanged.bind(this)}componentDidMount(){window.addEventListener("hashchange",this.onHashChangedBound)}componentWillUnmount(){window.removeEventListener("hashchange",this.onHashChangedBound)}onHashChanged(){}static getLocation(){let e=window.location.hash;e=e.replace(/^#/,"");const t=e.split("/").map(i=>{try{return i?decodeURIComponent(i):""}catch{return console.error(`Router: Cannot decode ${i}`),i}});return{tab:t[0]||"",dialog:t[1]||"",id:t[2]||"",arg:t[3]||""}}static doNavigate(e,t,i,r){let o="";const n=Oi.getLocation();r!==void 0&&!i&&(i=n.id),i&&!t&&(t=n.dialog),(t&&!e||e===null)&&(e=n.tab),e&&(o=`#${e}`,t&&(o+=`/${t}`,i&&(o+=`/${i}`,r!==void 0&&(o+=`/${r}`)))),window.location.hash!==o&&(window.location.hash=o)}}function ld(){const s=document.getSelection();if(!(s!=null&&s.rangeCount))return()=>{};let e=document.activeElement;const t=[];for(let i=0;i{s.type==="Caret"&&s.removeAllRanges(),s.rangeCount||t.forEach(i=>s.addRange(i)),e&&e.focus()}}const Yc={"text/plain":"Text","text/html":"Url",default:"Text"},Nd="Copy to clipboard: #{key}, Enter";function Ld(s){const e=`${/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl"}+C`;return s.replace(/#{\s*key\s*}/g,e)}function e0(s,e){let t,i,r,o,n=!1;e=e||{};const a=e.debug||!1;try{if(t=ld(),i=document.createRange(),r=document.getSelection(),o=document.createElement("span"),o.textContent=s,o.ariaHidden="true",o.style.all="unset",o.style.position="fixed",o.style.top="0px",o.style.clip="rect(0, 0, 0, 0)",o.style.whiteSpace="pre",o.style.userSelect="text",o.addEventListener("copy",l=>{var N,u,L,g;if(l.stopPropagation(),e!=null&&e.format)if(l.preventDefault(),typeof l.clipboardData>"u"){a&&console.warn("unable to use e.clipboardData"),a&&console.warn("trying IE specific stuff"),(N=window.clipboardData)==null||N.clearData();const y=Yc[e.format]||Yc.default;(u=window.clipboardData)==null||u.setData(y,s)}else(L=l.clipboardData)==null||L.clearData(),(g=l.clipboardData)==null||g.setData(e.format,s)}),document.body.appendChild(o),i.selectNodeContents(o),r==null||r.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");n=!0}catch(c){a&&console.error("unable to copy using execCommand: ",c),a&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",s),n=!0}catch(l){a&&console.error("unable to copy using clipboardData: ",l),a&&console.error("falling back to prompt");const N=Ld("message"in e?e.message||"":Nd);window.prompt(N,s)}}finally{r&&(i&&typeof r.removeRange=="function"?r.removeRange(i):r.removeAllRanges()),o&&document.body.removeChild(o),t&&t()}return n}class d{static translations={};static unknownTranslations=[];static lang=window.sysLang||"en";static _disableWarning=!1;static setLanguage(e){e&&(d.lang=e)}static extendTranslations(e,t){if(e.prefix){const i=e;if(typeof i.prefix=="string"){const r=i.prefix;delete i.prefix,Object.keys(i).forEach(o=>{const n=o,a={},c=i[n];Object.keys(c).forEach(l=>{l&&c&&(l.startsWith(r)?a[l]=c[l]:a[`${r}${l}`]=c[l])}),e[n]=a})}else console.warn("Found prefix in translations, but it is not a string")}try{if(!t)e.en&&e.de&&e.ru?Object.keys(e).forEach(i=>{const r=i;d.translations[r]=d.translations[r]||{};const o=d.translations[r];Object.assign(o,e[r])}):Object.keys(e).forEach(i=>{const r=e[i];Object.keys(r).forEach(o=>{const n=o,a=d.translations[n];a?a[i]?a[i]!==r[n]&&console.warn(`Translation for word "${i}" in "${n}" was ignored: existing = "${a[i]}", new = ${r[n]}`):a[i]=r[n]:console.warn(`Used unknown language: ${n}`)})});else{d.translations[t]||console.warn(`Used unknown language: ${t}`),d.translations[t]=d.translations[t]||{};const i=d.translations[t];i&&Object.keys(e).forEach(r=>{i[r]?i[r]!==e[r]&&console.warn(`Translation for word "${r}" in "${t}" was ignored: existing = "${i[r]}", new = ${e[r]}`):i[r]=e[r]})}}catch(i){console.error(`Cannot apply translations: ${i}`)}}static setTranslations(e){e&&(d.translations=e)}static getLanguage(){return d.lang}static t(e,...t){const i=d.translations[d.lang];if(i){const r=i[e];if(r)e=r;else if(d.unknownTranslations.includes(e)||(d.unknownTranslations.push(e),!d._disableWarning&&console.log(`Translate: ${e}`)),d.lang!=="en"&&d.translations.en){const o=d.translations.en[e];o&&(e=o)}}for(const r of t)e=e.replace("%s",r);return e}static i18nShow(e){const t={};e?typeof e=="string"?(d.unknownTranslations.forEach(i=>{i.startsWith(e)&&(t[i]=i.replace(e,""))}),console.log(JSON.stringify(t,null,2))):typeof e=="object"&&(d.unknownTranslations.forEach(i=>{e.test(i)&&(t[i]=i)}),console.log(JSON.stringify(t,null,2))):(d.unknownTranslations.forEach(i=>t[i]=i),console.log(JSON.stringify(t,null,2)))}static disableWarning(e){d._disableWarning=!!e}}window.i18nShow=d.i18nShow;window.i18nDisableWarning=d.disableWarning;const st="material",gd=["Su","Mo","Tu","We","Th","Fr","Sa"],jd=["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vo={0:"0x00 - good",1:"0x01 - general problem",2:"0x02 - no connection problem",16:"0x10 - substitute value from controller",32:"0x20 - substitute initial value",64:"0x40 - substitute value from device or instance",128:"0x80 - substitute value from sensor",17:"0x11 - general problem by instance",65:"0x41 - general problem by device",129:"0x81 - general problem by sensor",18:"0x12 - instance not connected",66:"0x42 - device not connected",130:"0x82 - sensor not connected",68:"0x44 - device reports error",132:"0x84 - sensor reports error"},vc={JVBERi0:"pdf",R0lGODdh:"gif",R0lGODlh:"gif",iVBORw0KGgo:"png","/9j/":"jpg",PHN2Zw:"svg",Qk1:"bmp",AAABAA:"ico"};class O{static namespace=st;static INSTANCES="instances";static dateFormat=["DD","MM"];static FORBIDDEN_CHARS=/[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;static CapitalWords(e){return(e||"").split(/[\s_]/).filter(t=>t).map(t=>t?t[0].toUpperCase()+t.substring(1).toLowerCase():"").join(" ")}static formatSeconds(e){const t=Math.floor(e/86400);e%=3600*24;const i=Math.floor(e/3600).toString().padStart(2,"0");e%=3600;const r=Math.floor(e/60).toString().padStart(2,"0");e%=60;const o=Math.floor(e).toString().padStart(2,"0");let n="";return t&&(n+=`${t} ${d.t("ra_daysShortText")} `),n+=`${i}:${r}:${o}`,n}static getObjectName(e,t,i,r,o){var c;const n=e[t];let a;if(typeof i=="string"&&!r&&(r={language:i},i=null),r=r||{},r.language||(r.language=e["system.config"]&&e["system.config"].common&&e["system.config"].common.language||window.sysLang||"en"),i!=null&&i.name){const l=i.name;typeof l=="object"?a=r.language&&l[r.language]||l.en:a=l}else if(o&&((c=n==null?void 0:n.common)!=null&&c.desc)){const l=n.common.desc;typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!o&&(n!=null&&n.common)){const l=n.common.name||n.common.desc;l&&typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else{const l=t.lastIndexOf(".");a=t.substring(l+1).replace(/[_.]/g," "),a=O.CapitalWords(a)}return(a==null?void 0:a.trim())||""}static getObjectNameFromObj(e,t,i,r,o){var c,l;const n=e;let a=(e==null?void 0:e._id)||"";if(typeof t=="string"&&!i&&(i={language:t},t=null),i=i||{},t!=null&&t.name){const N=t.name;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N}else if(r&&((c=n==null?void 0:n.common)!=null&&c.desc)){const N=n.common.desc;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!r&&((l=n==null?void 0:n.common)!=null&&l.name)){let N=n.common.name;!N&&n.common.desc&&(N=n.common.desc),typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}return o?a:a.trim()}static getSettingsOrder(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subOrder&&o[n].subOrder[t])return JSON.parse(JSON.stringify(o[n].subOrder[t]))}else if(o[n].order)return JSON.parse(JSON.stringify(o[n].order))}}return null}static getSettingsCustomURLs(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subURLs&&o[n].subURLs[t])return JSON.parse(JSON.stringify(o[n].subURLs[t]))}else if(o[n].URLs)return JSON.parse(JSON.stringify(o[n].URLs))}}return null}static reorder(e,t,i){const r=Array.from(e),[o]=r.splice(t,1);return r.splice(i,0,o),r}static getSettings(e,t,i){let r;const o=(e==null?void 0:e._id)||(t==null?void 0:t.id);let n;if(e&&Object.prototype.hasOwnProperty.call(e,"common")?n=e.common:n=e,n!=null&&n.custom?(r=n.custom,r=r[st]&&r[st][t.user||"admin"]?JSON.parse(JSON.stringify(r[st][t.user||"admin"])):{enabled:!0}):r={enabled:i===void 0?!0:i,useCustom:!1},Object.prototype.hasOwnProperty.call(r,"enabled")||(r.enabled=i===void 0?!0:i),t&&(!r.name&&t.name&&(r.name=t.name),!r.icon&&t.icon&&(r.icon=t.icon),!r.color&&t.color&&(r.color=t.color)),n&&(!r.color&&n.color&&(r.color=n.color),!r.icon&&n.icon&&(r.icon=n.icon),!r.name&&n.name&&(r.name=n.name)),typeof r.name=="object"&&(r.name=t.language&&r.name[t.language]||r.name.en,r.name=(r.name||"").toString().replace(/_/g," "),r.name===r.name.toUpperCase()&&(r.name=r.name[0]+r.name.substring(1).toLowerCase())),!r.name&&o){const a=o.lastIndexOf(".");r.name=o.substring(a+1).replace(/[_.]/g," "),r.name=(r.name||"").toString().replace(/_/g," "),r.name=O.CapitalWords(r.name)}return r}static setSettings(e,t,i){if(e){e.common=e.common||{},e.common.custom=e.common.custom||{},e.common.custom[st]=e.common.custom[st]||{},e.common.custom[st][i.user||"admin"]=t;const r=e.common.custom[st][i.user||"admin"];return r.useCommon&&(r.color!==void 0&&(e.common.color=r.color,delete r.color),r.icon!==void 0&&(e.common.icon=r.icon,delete r.icon),r.name!==void 0&&(typeof e.common.name!="object"&&i.language?e.common.name={[i.language]:r.name}:typeof e.common.name=="object"&&i.language&&(e.common.name[i.language]=r.name),delete r.name)),!0}return!1}static getIcon(e,t){return e!=null&&e.icon?e.icon.length<=2?M.createElement("span",{style:t||{}},e.icon):e.icon.startsWith("data:image")?M.createElement("img",{alt:e.name,src:e.icon,style:t||{}}):M.createElement("img",{alt:e.name,src:(e.prefix||"")+e.icon,style:t}):null}static getObjectIcon(e,t){var i;if(typeof e=="object"&&(t=e,e=t==null?void 0:t._id),(i=t==null?void 0:t.common)!=null&&i.icon){let r=t.common.icon;if(typeof r=="string"&&r.length<=2||r.startsWith("data:image"))return r;const o=e.split(".");return o[0]==="system"?r=`adapter/${o[2]}${r.startsWith("/")?"":"/"}${r}`:r=`adapter/${o[0]}${r.startsWith("/")?"":"/"}${r}`,window.location.pathname.match(/adapter\/[^/]+\/[^/]+\.html/)?r=`../../${r}`:window.location.pathname.match(/material\/[.\d]+/)?r=`../../${r}`:window.location.pathname.match(/material\//)&&(r=`../${r}`),r}return null}static splitCamelCase(e){return e?O.CapitalWords(e):""}static isUseBright(e,t){if(!e)return t===void 0?!0:t;e=e.toString(),e.startsWith("#")&&(e=e.slice(1));let i,r,o;const n=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(n&&n.length===4)i=parseInt(n[1],10),r=parseInt(n[2],10),o=parseInt(n[3],10);else{if(e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8)e=e.substring(0,6);else if(e.length!==6)return!1;i=parseInt(e.slice(0,2),16),r=parseInt(e.slice(2,4),16),o=parseInt(e.slice(4,6),16)}return i*.299+r*.587+o*.114<=186}static getTimeString(e){if(e=parseFloat(e),Number.isNaN(e))return"--:--";const t=Math.floor(e/3600),i=Math.floor(e%3600/60).toString().padStart(2,"0"),r=(e%60).toString().padStart(2,"0");return t?`${t}:${i}:${r}`:`${i}:${r}`}static getWindDirection(e){return e>=0&&e<11.25?"N":e>=11.25&&e<33.75?"NNE":e>=33.75&&e<56.25?"NE":e>=56.25&&e<78.75?"ENE":e>=78.75&&e<101.25?"E":e>=101.25&&e<123.75?"ESE":e>=123.75&&e<146.25?"SE":e>=146.25&&e<168.75?"SSE":e>=168.75&&e<191.25?"S":e>=191.25&&e<213.75?"SSW":e>=213.75&&e<236.25?"SW":e>=236.25&&e<258.75?"WSW":e>=258.75&&e<281.25?"W":e>=281.25&&e<303.75?"WNW":e>=303.75&&e<326.25?"NW":e>=326.25&&e<348.75?"NNW":"N"}static padding(e){return typeof e=="string"?e.length<2?`0${e}`:e:e<10?`0${e}`:e.toString()}static setDataFormat(e){e&&(O.dateFormat=e.toUpperCase().split(/[.-/]/),O.dateFormat.splice(O.dateFormat.indexOf("YYYY"),1))}static date2string(e){if(typeof e=="string"){if(e=e.trim(),!e)return"";if(e.match(/^[\w\s]+$/))return e;const i=e.match(/(\d{1,4})[-./](\d{1,2})[-./](\d{1,4})/);if(i){const r=[parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10)],o=r.find(n=>n>31);if(o!==void 0){r.splice(r.indexOf(o),1);const n=r.find(a=>a>12);n?(r.splice(r.indexOf(n),1),e=new Date(o,r[0]-1,n)):O.dateFormat[0][0]==="M"&&O.dateFormat[1][0]==="D"?(e=new Date(o,r[0]-1,r[1]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[1]-1,r[0]))):O.dateFormat[0][0]==="D"&&O.dateFormat[1][0]==="M"?(e=new Date(o,r[1]-1,r[0]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[0]-1,r[1]))):e=new Date(e)}else e=new Date(e)}else e=new Date(e)}else e=new Date(e);let t=d.t(`ra_dow_${gd[e.getDay()]}`).replace("ra_dow_","");return t+=`. ${e.getDate()} ${d.t(`ra_month_${jd[e.getMonth()]}`).replace("ra_month_","")}`,t}static renderTextWithA(e){let t=e.match(/
||[^<]+<\/b>|[^<]+<\/i>/);if(t){const i=[];let r=1;do{const o=e.substring(0,t.index);if(e=e.substring((t.index||0)+t[0].length),o&&i.push(M.createElement("span",{key:`a${r++}`},o)),t[0].startsWith(""))i.push(M.createElement("b",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith(""))i.push(M.createElement("i",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith("([^<]*)||[^<]+<\/b>|[^<]+<\/i>/):null,!t&&e&&i.push(M.createElement("span",{key:`a${r++}`},e))}while(t);return i}return e}static getSmartName(e,t,i,r){var n,a;if(!t){if(!r)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const c=e;return(n=c==null?void 0:c.common)!=null&&n.custom&&c.common.custom[i]?c.common.custom[i].smartName:void 0}if(!r)return e[t].common.smartName;const o=e[t];return(a=o==null?void 0:o.common)!=null&&a.custom&&o.common.custom[i]&&o.common.custom[i].smartName||null}static getSmartNameFromObj(e,t,i){var o,n;if(!i)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const r=(n=(o=e==null?void 0:e.common)==null?void 0:o.custom)==null?void 0:n[t];return r?r.smartName:void 0}static enableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName={}):e.common.smartName={}}static removeSmartName(e,t,i){i?e.common&&e.common.custom&&e.common.custom[t]&&(e.common.custom[t]=null):e.common.smartName=null}static updateSmartName(e,t,i,r,o,n){const a=d.getLanguage();if(typeof e.common.smartName=="string"){const c=e.common.smartName;e.common.smartName={},e.common.smartName[a]=c}if(e.native&&e.native.byON){delete e.native.byON;let c=e.common.smartName;c&&typeof c!="object"&&(c={en:c,[a]:c}),e.common.smartName=c}if(r!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},r?e.common.custom[o].smartName.smartType=r:delete e.common.custom[o].smartName.smartType):(e.common.smartName=e.common.smartName||{},r?e.common.smartName.smartType=r:delete e.common.smartName.smartType)),i!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},e.common.custom[o].smartName.byON=i):(e.common.smartName=e.common.smartName||{},e.common.smartName.byON=i)),t!==void 0){let c;if(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},c=e.common.custom[o].smartName):(e.common.smartName=e.common.smartName||{},c=e.common.smartName),c[a]=t,c&&(!c[a]||c[a]===e.common.name&&(!e.common.role||e.common.role.includes("button")))){delete c[a];let l=!0;for(const N in c)if(Object.prototype.hasOwnProperty.call(c,N)){l=!1;break}if(l)if(n&&e.common.custom&&e.common.custom[o])e.common.custom[o].smartName.byON===void 0?delete e.common.custom[o]:(delete e.common.custom[o].en,delete e.common.custom[o].de,delete e.common.custom[o].ru,delete e.common.custom[o].nl,delete e.common.custom[o].pl,delete e.common.custom[o].it,delete e.common.custom[o].fr,delete e.common.custom[o].pt,delete e.common.custom[o].es,delete e.common.custom[o].uk,delete e.common.custom[o]["zh-cn"]);else if(e.common.smartName&&e.common.smartName.byON!==void 0){const N=e.common.smartName;delete N.en,delete N.de,delete N.ru,delete N.nl,delete N.pl,delete N.it,delete N.fr,delete N.pt,delete N.es,delete N.uk,delete N["zh-cn"]}else e.common.smartName=null}}}static disableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName=!1):e.common.smartName=!1}static copyToClipboard(e,t){return t&&(t.stopPropagation(),t.preventDefault()),e0(e)}static getFileExtension(e){const t=(e||"").lastIndexOf(".");return t!==-1?e.substring(t+1).toLowerCase():null}static formatBytes(e){if(Math.abs(e)<1024)return`${e} B`;const t=["KB","MB","GB"];let i=-1;do e/=1024,++i;while(Math.abs(e)>=1024&&i186?`#000000${i||""}`:`#FFFFFF${i||""}`;const a=(255-r).toString(16),c=(255-o).toString(16),l=(255-n).toString(16);return`#${a.padStart(2,"0")}${c.padStart(2,"0")}${l.padStart(2,"0")}${i||""}`}static color2rgb(e){if(e==null||e===""||typeof e!="string")return!1;if(e.startsWith("rgba")){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else if(e.startsWith("rgb")){const t=e.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else e.startsWith("#")&&(e=e.slice(1));return e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length!==6&&e.length!==8?(console.warn(`Cannot invert color: ${e}`),!1):[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}static rgb2lab(e){let t=e[0]/255,i=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=(t*.4124+i*.3576+r*.1805)/.95047,n=t*.2126+i*.7152+r*.0722,a=(t*.0193+i*.1192+r*.9505)/1.08883;return o=o>.008856?o**.33333333:7.787*o+.137931,n=n>.008856?n**.33333333:7.787*n+.137931,a=a>.008856?a**.33333333:7.787*a+.137931,[116*n-16,500*(o-n),200*(n-a)]}static colorDistance(e,t){const i=O.color2rgb(e),r=O.color2rgb(t);if(!i||!r)return 0;const o=O.rgb2lab(i),n=O.rgb2lab(r),a=o[0]-n[0],c=o[1]-n[1],l=o[2]-n[2],N=Math.sqrt(o[1]*o[1]+o[2]*o[2]),u=Math.sqrt(n[1]*n[1]+n[2]*n[2]),L=N-u;let g=c*c+l*l-L*L;g=g<0?0:Math.sqrt(g);const y=1+.045*N,T=1+.015*N,D=a,z=L/y,p=g/T,C=D*D+z*z+p*p;return C<0?0:C}static _toVal(e){let t,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e))for(let r=0;r{if(i=i.trim(),i){const r=i.split("="),o=decodeURIComponent(r[0]).trim();if(r.length>1){const n=decodeURIComponent(r[1]);if(n==="true")t[o]=!0;else if(n==="false")t[o]=!1;else{const a=parseFloat(n);a.toString()===n?t[o]=a:t[o]=n}}else t[o]=!0}}),t}static getParentId(e){const t=(e||"").toString().split(".");return t.length>1?(t.pop(),t.join(".")):null}static formatDate(e,t){if(!e)return"";let i;const r=(e.getMonth()+1).toString().padStart(2,"0"),o=e.getDate().toString().padStart(2,"0");return t==="MM/DD/YYYY"?i=`${r}/${o}/${e.getFullYear()}`:i=`${e.getFullYear()}-${r}-${o}`,i+=` ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`,i}static formatTime(e){if(e){e=Math.round(e);const t=Math.floor(e/(3600*24)),i=Math.floor(e%(3600*24)/3600),r=Math.floor(e%3600/60),o=e%60;return t?`${t}.${i.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:i?`${i}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:`0:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}return"0:00:00"}static MDtext2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static MDgetTitle(e){var o;const t=O.MDextractHeader(e),i=t.header;let r=t.body;if(!i.title){r=r.replace(/{[^}]*}/g,""),r=r.trim();const n=r.replace(/\r/g,"").split(` -`);for(let a=0;a{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===t[c]?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static MDremoveDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static generateFile(e,t){const i=document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}static quality2text(e){const t=e&4294901760,i=vo[e];let r;return i?r=[i]:e&1?r=[vo[1],`0x${(e&65534).toString(16)}`]:e&2?r=[vo[2],`0x${(e&65533).toString(16)}`]:r=[`0x${e.toString(16)}`],t&&r.push(`0x${(t>>16).toString(16).toUpperCase()}`),r}static clone(e){return JSON.parse(JSON.stringify(e))}static getStates(e){var r;const t=(r=e==null?void 0:e.common)==null?void 0:r.states;let i;if(t)if(typeof t=="string"&&t[0]==="{")try{i=JSON.parse(t)}catch{console.error(`Cannot parse states: ${t}`),i=null}else if(typeof t=="string"){const o=t.split(";");i={};for(let n=0;ni[n]=o):(e==null?void 0:e.common.type)==="string"?t.forEach(o=>i[o]=o):(e==null?void 0:e.common.type)==="boolean"&&(i.false=t[0],i.true=t[1])):typeof t=="object"&&(i=t);return i||null}static async getSvg(e){const i=await(await fetch(e)).blob();return new Promise(r=>{const o=new FileReader;o.onload=()=>{var n;return r(((n=o.result)==null?void 0:n.toString())||"")},o.readAsDataURL(i)})}static detectMimeType(e){const t=Object.keys(vc).find(i=>e.startsWith(i));return t?vc[t]:null}static isStableRepository(e){return!!(typeof e=="string"&&e.toLowerCase().startsWith("stable")||e&&typeof e!="string"&&e.find(t=>t.toLowerCase().startsWith("stable")))}static isStringInteger(e){return typeof e=="number"?Math.round(e)===e:parseInt(e,10).toString()===e}static isValidDate(e){return e instanceof Date&&!isNaN(e)}static getStyle(e,...t){const i={};for(let r=0;r{if(typeof t[r][o]=="function")i[o]=t[r][o](e);else if(typeof t[r][o]=="object"){const n=t[r][o];i[o]={},Object.keys(n).forEach(a=>{typeof n[a]=="function"?i[o][a]=n(e):(n[a]||n[a]===0)&&(i[o][a]=n[a])})}else(t[r][o]||t[r][o]===0)&&(i[o]=t[r][o])});return i}}const bo={buttonIcon:{marginRight:8}};class yd extends M.Component{isIFrame;constructor(e){super(e);const t=e.newReact===void 0?!0:e.newReact;if(e.isIFrame!==void 0)this.isIFrame=e.isIFrame;else try{this.isIFrame=!t&&window.self!==window.top}catch{this.isIFrame=!t}}render(){const e=this.props.noTextOnButtons,t={borderRadius:this.props.theme.saveToolbar.button.borderRadius||3,height:this.props.theme.saveToolbar.button.height||32},i={bottom:this.isIFrame?38:0,left:this.props.paddingLeft||0,right:0,position:"absolute",background:this.props.theme.saveToolbar.background};return this.props.dense&&(i.minHeight=48),this.props.error&&(t.border="1px solid red"),M.createElement(j.Toolbar,{style:i},M.createElement(j.Fab,{variant:"extended","aria-label":"Save",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!1),style:t},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),!e&&d.t("ra_Save")),M.createElement(j.Fab,{variant:"extended","aria-label":"Save and close",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!0),style:{...t,marginLeft:10}},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),e?"+":d.t("ra_Save and close"),e&&M.createElement(Ne,null)),M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.Fab,{variant:"extended","aria-label":"Close",onClick:()=>this.props.onClose(),style:t},M.createElement(Ne,{style:e?void 0:bo.buttonIcon}),!e&&d.t("ra_Close")))}}const bc={suppress:{fontSize:12},suppressRoot:{marginTop:"16px"}};class t0 extends x.Component{constructor(e){if(super(e),!this.props.dialogName&&this.props.suppressQuestionMinutes)throw new Error("dialogName required if suppressQuestionMinutes used");let t=!1;this.props.suppressQuestionMinutes&&(t=parseInt((window._localStorage||window.localStorage).getItem(this.props.dialogName),10)||0,t?Date.now()>t&&((window._localStorage||window.localStorage).removeItem(this.props.dialogName),t=!1):t=!1),this.state={suppress:t}}handleOk(){this.state.suppress&&(window._localStorage||window.localStorage).setItem(this.props.dialogName,Date.now()+(this.props.suppressQuestionMinutes||2)*6e4),this.props.onClose&&this.props.onClose(!0)}handleCancel(){this.props.onClose&&this.props.onClose(!1)}render(){return typeof this.state.suppress=="number"?(setTimeout(()=>this.props.onClose&&this.props.onClose(!0),100),null):M.createElement(j.Dialog,{open:!0,maxWidth:"md",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:(e,t)=>{t!=="backdropClick"&&t!=="escapeKeyDown"&&this.handleCancel()},"aria-labelledby":"ar_confirmation_dialog_title","aria-describedby":"ar_confirmation_dialog_description"},M.createElement(j.DialogTitle,{id:"ar_confirmation_dialog_title"},this.props.title||d.t("ra_Are you sure?")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_confirmation_dialog_description"},this.props.icon||null,this.props.text,this.props.suppressQuestionMinutes?M.createElement("br",null):null,this.props.suppressQuestionMinutes?M.createElement(j.FormControlLabel,{sx:{"& .FormControlLabel-label":bc.suppress,"&.FormControlLabel-root":bc.suppressRoot},control:M.createElement(j.Checkbox,{id:`ar_dialog_confirm_suppress_${this.props.dialogName||""}`,checked:!!this.state.suppress,onChange:()=>this.setState({suppress:!this.state.suppress})}),label:this.props.suppressText||d.t("ra_Suppress question for next %s minutes",(this.props.suppressQuestionMinutes||2).toString())}):null)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_confirm_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_confirm_cancel_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Ne,null)},this.props.cancel||d.t("ra_Cancel"))))}}class s0 extends x.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},M.createElement(j.DialogTitle,{id:"ar_alert_dialog_title"},this.props.title||d.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_alert_dialog_description"},this.props.text||d.t("ra_Unknown error!"))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_error_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},d.t("ra_Ok"))))}}const Td="Actions",Dd="Append",dd="Cancel",hd="Categories",zd="Checked",wd="Delete",Cd="Close",Id="Commercial",pd="Configure",Ad="Connected",md="Continue",Od="Copied",Ed="Create",fd="Crop",xd="Delete",_d="Delete",Sd="Discard",kd="Disconnected",Yd="Error",vd="Filter",bd="Friday",Qd="Latitude",Ud="Logout",$d="Longitude",Pd="Message",Wd="Monday",Bd="Name",Jd="Objects",Rd="Ok",Fd="Product",Gd="Rename/Move/Copy",Hd="Repeat",Vd="Replace",Zd="Root",Xd="Saturday",Kd="Save",qd="Selected",eh="States",th="Sunday",sh="Thursday",ih="Timestamp",rh="Tuesday",oh="Update",nh="Valid till",ah="Value",Mh="Version",ch="Wednesday",uh="Width",lh="Yes",Nh="different",Lh="Everyone can read object",gh="Everyone can read state",jh="Everyone can write object",yh="Everyone can write state",Th="Group can read object",Dh="Group can read state",dh="Group can write object",hh="Group can write state",zh="Owner can read object",wh="Owner can read state",Ch="Owner can write object",Ih="Owner can write state",ph="Buttons",Ah="Changed from",mh="close",Oh="Create boolean state",Eh="Create channel",fh="Create device",xh="Create number state",_h="Create state",Sh="Create string state",kh="days",Yh="Fr",vh="Mo",bh="Sa",Qh="Su",Uh="Th",$h="Tu",Ph="We",Wh="Expert mode",Bh="FALSE",Jh="All files",Rh="Audio",Fh="Code/JSON",Gh="Images",Hh="Text",Vh="Video",Zh="Settings",Xh="without",Kh="Function",qh="ID",ez="Name",tz="Role",sz="Room",iz="Type",rz="Invalid settings",oz="Last change",nz="locally",az="Apr",Mz="Aug",cz="Dec",uz="Feb",lz="Jan",Nz="Jul",Lz="Jun",gz="Mai",jz="Mar",yz="Nov",Tz="Oct",Dz="Sep",dz="Apr",hz="Aug",zz="Dec",wz="Feb",Cz="Jan",Iz="Jul",pz="Jun",Az="Mai",mz="Mar",Oz="Nov",Ez="Oct",fz="Sep",xz="none",_z="Object changed by",Sz="Object last changed at",kz="Settings from other adapter %s",Yz="Quality code",vz="repeat",bz='To select folder, just hold the key "shift" by clicking the folder.',Qz="Show all",Uz="State changed by",$z="Object changed from",Pz="Timestamp",Wz="Acknowledged",Bz="Comment",Jz="Copy the state value",Rz="Hold Cltr/⌘ key to open the link",Fz="Custom settings",Gz="Delete object",Hz="Edit object",Vz="Edit the state value",Zz="Expires in",Xz="From",Kz="Last changed",qz="Quality",ew="Time stamp",tw="User",sw="Value",iw="TRUE",rw="Value",ow="Warning: The CRON job will run every minute during the specified period!",nw="Warning: The CRON job will run every second during the specified period!",aw="CRON",Mw="Date",cw="Dates",uw="Day",lw="Day of week",Nw="Every",Lw="every N days",gw="every Nth day of the week",jw="every N day of week",yw="every N hours",Tw="every N minutes",Dw="every N months",dw="every N seconds",hw="every day",zw="every day of the week",ww="every day of the week",Cw="every hour",Iw="every minute",pw="every month",Aw="every second",mw="From",Ow="Hours",Ew="Interval",fw="Interval between",xw="Invalid CRON",_w="Minutes",Sw="months",kw="Once",Yw="Period",vw="Seconds",bw="Simple",Qw="Specific time",Uw="specific dates",$w="specific day(s) of the week",Pw="specific day of weeks",Ww="specific hours",Bw="specific minutes",Jw="specific months",Rw="specific seconds",Fw="Time",Gw="To",Hw="Wizard",Vw="all",Zw="Astro day",Xw="Astro night",Kw="Dawn",qw="Dusk",eC="Golden hour",tC="Golden hour end",sC="Nadir",iC="Nautical dawn",rC="Nautical dusk",oC="Night",nC="Night end",aC="Solar noon",MC="Sunrise",cC="Sunrise end",uC="Sunset",lC="Sunset start",NC="at",LC="at %s",gC="every day",jC="every hour",yC="every minute",TC="every month",DC="every %s day",dC="every %s hours",hC="every %s minutes",zC="every %s months",wC="every %s weeks",CC="every %s years",IC="every week",pC="every year",AC="from %s to %s",mC="never",OC="on %s of %s",EC="on %s and %s of",fC="on every date of",xC="%s",_C="%s and %s",SC="on %s",kC="on %s and %s",YC="on weekends",vC="on working days",bC="will ne be not executed any more, because start is in the past",QC="on %s",UC="from %s",$C="Execute from to",PC="to %s",WC="every",BC="Specific time",JC="from",RC="From-to",FC="Interval time",GC="invert",HC="none",VC="on",ZC="Period",XC="Daily",KC="Dates",qC="Day",eI="Every",tI="Every day",sI="Every month",iI="Every week",rI="Every year",oI="Hours",nI="Minutes",aI="month",MI="Monthly",cI="Once",uI="Specific months",lI="Week",NI="Weekdays",LI="Weekend",gI="Weekly",jI="Workdays",yI="Year",TI="Yearly",DI="Specific time",dI="Time",hI="to",zI="Valid",wI="from",CI="to",II="Whole day",pI="every month",AI={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license",ra_Actions:Td,"ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:Dd,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:dd,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:hd,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:zd,ra_Clear:wd,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:Cd,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:Id,ra_Configure:pd,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:Ad,ra_Continue:md,ra_Copied:Od,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:Ed,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:fd,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:xd,ra_Delete:_d,"ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:Sd,ra_Disconnected:kd,"ra_Do not ask for next 2 hours in this session":"Do not ask for next 2 hours in this session","ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit full path":"Edit full path","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value","ra_Enter the code from that page here":"Enter the code from that page here",ra_Error:Yd,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:vd,"ra_Filter and Data Actions":"Filter and Data Actions","ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:bd,"ra_Get %s access":"Get %s access","ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_If the button above does not work, you can authorize manually this app by visiting this url":"If the button above does not work, you can authorize manually this app by visiting this url","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:Qd,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist","ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Logout:Ud,ra_Longitude:$d,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:Pd,ra_Monday:Wd,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:Bd,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:Jd,ra_Ok:Rd,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please allow popups in your browser for this page!":"Please allow popups in your browser for this page!","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Press ENTER Key to add new item":"Press ENTER Key to add new item","ra_Private certificate":"Private certificate",ra_Product:Fd,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Rename_Move_Copy:Gd,"ra_Renew %s access":"Renew %s access",ra_Repeat:Hd,ra_Replace:Vd,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:Zd,ra_Saturday:Xd,ra_Save:Kd,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:qd,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Session will expire in %s seconds. Continue?":"Session will expire in %s seconds. Continue?","ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:eh,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Successfully authorized. Token valid till %s and will be automatically renewed.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Successfully authorized. Token valid till %s but it can expire as the instance is not running.","ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:th,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:sh,ra_Timestamp:ih,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:rh,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:oh,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:nh,ra_Value:ah,ra_Version:Mh,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:ch,ra_Width:uh,ra_Yes:lh,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text",ra___different__:Nh,ra_aclEveryone_read_object:Lh,ra_aclEveryone_read_state:gh,ra_aclEveryone_write_object:jh,ra_aclEveryone_write_state:yh,ra_aclGroup_read_object:Th,ra_aclGroup_read_state:Dh,ra_aclGroup_write_object:dh,ra_aclGroup_write_state:hh,ra_aclOwner_read_object:zh,ra_aclOwner_read_state:wh,ra_aclOwner_write_object:Ch,ra_aclOwner_write_state:Ih,ra_buttons:ph,ra_changedFrom:Ah,ra_close:mh,ra_create_boolean_state:Oh,ra_create_channel:Eh,ra_create_device:fh,ra_create_number_state:xh,ra_create_state:_h,ra_create_string_state:Sh,ra_daysShortText:kh,ra_dow_Fr:Yh,ra_dow_Mo:vh,ra_dow_Sa:bh,ra_dow_Su:Qh,ra_dow_Th:Uh,ra_dow_Tu:$h,ra_dow_We:Ph,ra_expertMode:Wh,ra_false:Bh,ra_fileType_all:Jh,ra_fileType_audio:Rh,ra_fileType_code:Fh,ra_fileType_images:Gh,ra_fileType_txt:Hh,ra_fileType_video:Vh,"ra_fileType_video,":"Video",ra_filter_customs:Zh,ra_filter_customs_without:Xh,ra_filter_func:Kh,ra_filter_id:qh,ra_filter_name:ez,ra_filter_role:tz,ra_filter_room:sz,ra_filter_type:iz,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:rz,ra_lastChange:oz,ra_locally:nz,ra_month_Apr:az,ra_month_Aug:Mz,ra_month_Dec:cz,ra_month_Feb:uz,ra_month_Jan:lz,ra_month_Jul:Nz,ra_month_Jun:Lz,ra_month_Mai:gz,ra_month_Mar:jz,ra_month_Nov:yz,ra_month_Oct:Tz,ra_month_Sep:Dz,ra_months_Apr:dz,ra_months_Aug:hz,ra_months_Dec:zz,ra_months_Feb:wz,ra_months_Jan:Cz,ra_months_Jul:Iz,ra_months_Jun:pz,ra_months_Mai:Az,ra_months_Mar:mz,ra_months_Nov:Oz,ra_months_Oct:Ez,ra_months_Sep:fz,"ra_no confirm for 5 mins":"no confirm for 5 mins",ra_none:xz,ra_object_changed_by:_z,ra_object_changed_by_user:Sz,ra_otherConfig:kz,ra_qualityCode:Yz,ra_repeat:vz,ra_select_folder_hint:bz,ra_show_all:Qz,ra_state_changed_by:Uz,ra_state_changed_from:$z,ra_timestamp:Pz,ra_tooltip_ack:Wz,ra_tooltip_comment:Bz,ra_tooltip_copyState:Jz,ra_tooltip_ctrlForLink:Rz,ra_tooltip_customConfig:Fz,ra_tooltip_deleteObject:Gz,ra_tooltip_editObject:Hz,ra_tooltip_editState:Vz,ra_tooltip_expire:Zz,ra_tooltip_from:Xz,ra_tooltip_lc:Kz,ra_tooltip_quality:qz,ra_tooltip_ts:ew,ra_tooltip_user:tw,ra_tooltip_value:sw,ra_true:iw,"ra_use seconds":"use seconds",ra_val:rw,"ra_via internet":"via internet",ra_warning_every_minute:ow,ra_warning_every_second:nw,sc_cron:aw,sc_date:Mw,sc_dates:cw,sc_dow:uw,sc_dows:lw,sc_every:Nw,sc_everyN_dates:Lw,sc_everyN_dow:gw,sc_everyN_dows:jw,sc_everyN_hours:yw,sc_everyN_minutes:Tw,sc_everyN_months:Dw,sc_everyN_seconds:dw,sc_every_dates:hw,sc_every_dow:zw,sc_every_dows:ww,sc_every_hours:Cw,sc_every_minutes:Iw,sc_every_months:pw,sc_every_seconds:Aw,sc_from:mw,sc_hours:Ow,sc_interval:Ew,sc_intervalBetween:fw,sc_invalid_cron:xw,sc_minutes:_w,sc_months:Sw,sc_once:kw,sc_period:Yw,sc_seconds:vw,sc_simple:bw,sc_specific:Qw,sc_specific_dates:Uw,sc_specific_dow:$w,sc_specific_dows:Pw,sc_specific_hours:Ww,sc_specific_minutes:Bw,sc_specific_months:Jw,sc_specific_seconds:Rw,sc_time:Fw,sc_to:Gw,sc_wizard:Hw,sch_all:Vw,sch_astroDay:Zw,sch_astroNight:Xw,sch_astro_dawn:Kw,sch_astro_dusk:qw,sch_astro_goldenHour:eC,sch_astro_goldenHourEnd:tC,sch_astro_nadir:sC,sch_astro_nauticalDawn:iC,sch_astro_nauticalDusk:rC,sch_astro_night:oC,sch_astro_nightEnd:nC,sch_astro_solarNoon:aC,sch_astro_sunrise:MC,sch_astro_sunriseEnd:cC,sch_astro_sunset:uC,sch_astro_sunsetStart:lC,sch_at:NC,sch_desc_atTime:LC,sch_desc_everyDay:gC,sch_desc_everyHour:jC,sch_desc_everyMinute:yC,sch_desc_everyMonth:TC,sch_desc_everyNDay:DC,sch_desc_everyNHours:dC,sch_desc_everyNMinutes:hC,sch_desc_everyNMonths:zC,sch_desc_everyNWeeks:wC,sch_desc_everyNYears:CC,sch_desc_everyWeek:IC,sch_desc_everyYear:pC,sch_desc_intervalFromTo:AC,sch_desc_never:mC,sch_desc_onDate:OC,sch_desc_onDates:EC,sch_desc_onEveryDate:fC,sch_desc_onMonth:xC,sch_desc_onMonths:_C,sch_desc_onWeekday:SC,sch_desc_onWeekdays:kC,sch_desc_onWeekends:YC,sch_desc_onWorkdays:vC,sch_desc_onceInPast:bC,sch_desc_once_on:QC,sch_desc_validFrom:UC,sch_desc_validFromTo:$C,sch_desc_validTo:PC,sch_every:WC,sch_exactTime:BC,sch_from:JC,sch_fromTo:RC,sch_intervalTime:FC,sch_invert:GC,sch_no_one:HC,sch_on:VC,sch_period:ZC,sch_periodDaily:XC,sch_periodDates:KC,sch_periodDay:qC,sch_periodEvery:eI,sch_periodEveryDay:tI,sch_periodEveryMonth:sI,sch_periodEveryWeek:iI,sch_periodEveryYear:rI,sch_periodHours:oI,sch_periodMinutes:nI,sch_periodMonth:aI,sch_periodMonthly:MI,sch_periodOnce:cI,sch_periodSpecificMonths:uI,sch_periodWeek:lI,sch_periodWeekdays:NI,sch_periodWeekend:LI,sch_periodWeekly:gI,sch_periodWorkdays:jI,sch_periodYear:yI,sch_periodYearly:TI,sch_specificTime:DI,sch_time:dI,sch_to:hI,sch_valid:zI,sch_validFrom:wI,sch_validTo:CI,sch_wholeDay:II,sch_yearEveryMonth:pI},mI="Aktionen",OI="Anhängen",EI="Abbrechen",fI="Kategorien",xI="Geprüft",_I="Löschen",SI="Schließen",kI="Kommerziell",YI="Konfigurieren",vI="Verbunden",bI="Weitermachen",QI="Kopiert",UI="Erstellen",$I="Ernte",PI="Entf",WI="Löschen",BI="Verwerfen",JI="Getrennt",RI="Fehler",FI="Filter",GI="Freitag",HI="Breite",VI="Ausloggen",ZI="Längengrad",XI="Meldung",KI="Montag",qI="Name",e1="Objekte",t1="OK",s1="Produkt",i1="Umbenennen/Verschieben/Kopieren",r1="Wiederholen",o1="Ersetzen",n1="Anfang",a1="Samstag",M1="Speichern",c1="Ausgewählt",u1="Zustände",l1="Sonntag",N1="Donnerstag",L1="Zeitstempel",g1="Dienstag",j1="Aktualisieren",y1="Gültig bis",T1="Wert",D1="Ausführung",d1="Mittwoch",h1="Breite",z1="Ja",w1="unterschiedlich",C1="Jeder kann Objekt lesen",I1="Jeder kann Zustand lesen",p1="Jeder kann ein Objekt schreiben",A1="Jeder kann Zustand schreiben",m1="Gruppe kann Objekt lesen",O1="Gruppe kann Status lesen",E1="Gruppe kann Objekt schreiben",f1="Gruppe kann Status schreiben",x1="Besitzer kann Objekt lesen",_1="Besitzer kann Zustand lesen",S1="Besitzer kann Objekt schreiben",k1="Besitzer kann Zustand schreiben",Y1="Tasten",v1="Geändert von",b1="Schließen",Q1="Booleschen Zustand erstellen",U1="Kanal erstellen",$1="Gerät erstellen",P1="Nummern-Zustand erstellen",W1="Zustand erstellen",B1="String-Zustand erstellen",J1="T.",R1="Fr",F1="Mo",G1="Sa",H1="So",V1="Do",Z1="Di",X1="Mi",K1="Expertenmodus",q1="FALSCH",ep="Alle Dateien",tp="Audio",sp="Code/JSON",ip="Bilder",rp="Text",op="Video",np="Einstellungen",ap="ohne",Mp="Funktion",cp="ID",up="Name",lp="Rolle",Np="Raum",Lp="Typ",gp="Ungültige Einstellungen",jp="Letzte Änderung",yp="örtlich",Tp="Apr",Dp="Aug",dp="Dez",hp="Feb",zp="Jan",wp="Jul",Cp="Jun",Ip="Mai",pp="Mär",Ap="Nov",mp="Okt",Op="Sep",Ep="Apr",fp="Aug",xp="Dez",_p="Feb",Sp="Jan",kp="Jul",Yp="Jun",vp="Mai",bp="Mär",Qp="Nov",Up="Okt",$p="Sep",Pp="kein",Wp="Objekt geändert von",Bp="Objekt zuletzt geändert um",Jp="Einstellungen von anderen Adaptern %s",Rp="Qualitätscode",Fp="wiederholen",Gp='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',Hp="Alle anzeigen",Vp="Zustand geändert durch",Zp="Objekt geändert von",Xp="Zeitstempel",Kp="Bestätigt",qp="Kommentar",eA="Statuswert kopieren",tA="Strg/⌘-Taste gedrückt halten, um den Link zu öffnen",sA="Benutzerdefinierte Einstellungen",iA="Objekt löschen",rA="Objekt bearbeiten",oA="Statuswert bearbeiten",nA="Läuft ab in",aA="Von",MA="Zuletzt geändert",cA="Qualität",uA="Zeitstempel",lA="Benutzer",NA="Wert",LA="WAHR",gA="Wert",jA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",yA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",TA="CRON",DA="Datum",dA="Tage",hA="Tag",zA="Wochentage",wA="Jeden",CA="alle N Tage",IA="jeden x-ten Tag der Woche",pA="alle N Wochentage",AA="alle N Stunden",mA="alle N Minuten",OA="alle N Monate",EA="alle N Sekunden",fA="jeden Tag",xA="jeden Tag der Woche",_A="jeden Tag der Woche",SA="jede Stunde",kA="jede Minute",YA="jeden Monat",vA="jede Sekunde",bA="Von",QA="Stunden",UA="Intervall",$A="Intervall zwischen",PA="Ungültiger CRON",WA="Minuten",BA="Monate",JA="Einmal",RA="Zeitraum",FA="Sekunden",GA="Einfach",HA="Bestimmte Zeit",VA="bestimmte Tage",ZA="bestimmte(r) Tag(e) der Woche",XA="bestimmten Wochentag",KA="bestimmte Stunden",qA="bestimmte Minuten",e2="bestimmte Monate",t2="bestimmte Sekunden",s2="Zeit",i2="Bis",r2="Wizard",o2="alle",n2="Astronomischer Tag",a2="Astronomische Nacht",M2="Morgendämmerung",c2="Abenddämmerung",u2="Goldene Stunde",l2="Goldene Stundenende",N2="Nadir",L2="Nautische Morgendämmerung",g2="Nautische Abenddämmerung",j2="Nacht",y2="Nachtende",T2="Sonnenmittag",D2="Sonnenaufgang",d2="Sonnenaufgangende",h2="Sonnenuntergang",z2="Sonnenuntergangstart",w2="am",C2="um %s",I2="jeden Tag",p2="jede Stunde",A2="jede Minute",m2="jeden Monat",O2="jeden %s Tag",E2="alle %s Stunden",f2="alle %s Minuten",x2="alle %s Monate",_2="alle %s Wochen",S2="alle %s Jahre",k2="jede Woche",Y2="jedes Jahr",v2="von %s bis %s",b2="noch nie",Q2="am %s von %s",U2="am %s und %s von",$2="an jedem Datum von",P2="%s",W2="%s und %s",B2="auf %s",J2="auf %s und %s",R2="an Wochenenden",F2="an Werktagen",G2="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",H2="auf %s",V2="von %s",Z2="Ausführen von bis",X2="bis %s",K2="jeden",q2="Bestimmte Zeit",em="von",tm="Von bis",sm="Zeitintervall",im="umkehren",rm="keiner",om="am",nm="Zeitraum",am="Täglich",Mm="Daten",cm="Tag",um="Jeden",lm="Jeden Tag",Nm="Jeden Monat",Lm="Jede Woche",gm="Jedes Jahr",jm="Stunden",ym="Minuten",Tm="Monat",Dm="Monatlich",dm="Einmal",hm="Bestimmte Monate",zm="Woche",wm="Wochentage",Cm="Wochenende",Im="Wöchentlich",pm="Arbeitstage",Am="Jahr",mm="Jährlich",Om="Bestimmte Zeit",Em="Zeit",fm="zu",xm="Gültigkeit",_m="von",Sm="bis",km="Ganzer Tag",Ym="jeden Monat",vm={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren",ra_Actions:mI,"ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:OI,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:EI,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:fI,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:xI,ra_Clear:_I,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:SI,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:kI,ra_Configure:YI,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:vI,ra_Continue:bI,ra_Copied:QI,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:UI,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:$I,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:PI,ra_Delete:WI,"ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:BI,ra_Disconnected:JI,"ra_Do not ask for next 2 hours in this session":"Fragen Sie nicht nach den nächsten 2 Stunden in dieser Sitzung","ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit full path":"Vollständigen Pfad bearbeiten","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten","ra_Enter the code from that page here":"Geben Sie den Code von dieser Seite hier ein",ra_Error:RI,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:FI,"ra_Filter and Data Actions":"Filter- und Datenaktionen","ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:GI,"ra_Get %s access":"%s Zugriff erhalten","ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:HI,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Logout:VI,ra_Longitude:ZI,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:XI,ra_Monday:KI,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:qI,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:e1,ra_Ok:t1,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please allow popups in your browser for this page!":"Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Press ENTER Key to add new item":"Die Eingabetaste drücken, um ein neues Element hinzuzufügen","ra_Private certificate":"Privates Zertifikat",ra_Product:s1,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Rename_Move_Copy:i1,"ra_Renew %s access":"%s Zugriff erneuern",ra_Repeat:r1,ra_Replace:o1,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:n1,ra_Saturday:a1,ra_Save:M1,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:c1,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Session will expire in %s seconds. Continue?":"Die Sitzung läuft in %s Sekunden ab. Fortfahren?","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:u1,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.","ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:l1,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:N1,ra_Timestamp:L1,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:g1,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:j1,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:y1,ra_Value:T1,ra_Version:D1,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:d1,ra_Width:h1,ra_Yes:z1,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben",ra___different__:w1,ra_aclEveryone_read_object:C1,ra_aclEveryone_read_state:I1,ra_aclEveryone_write_object:p1,ra_aclEveryone_write_state:A1,ra_aclGroup_read_object:m1,ra_aclGroup_read_state:O1,ra_aclGroup_write_object:E1,ra_aclGroup_write_state:f1,ra_aclOwner_read_object:x1,ra_aclOwner_read_state:_1,ra_aclOwner_write_object:S1,ra_aclOwner_write_state:k1,ra_buttons:Y1,ra_changedFrom:v1,ra_close:b1,ra_create_boolean_state:Q1,ra_create_channel:U1,ra_create_device:$1,ra_create_number_state:P1,ra_create_state:W1,ra_create_string_state:B1,ra_daysShortText:J1,ra_dow_Fr:R1,ra_dow_Mo:F1,ra_dow_Sa:G1,ra_dow_Su:H1,ra_dow_Th:V1,ra_dow_Tu:Z1,ra_dow_We:X1,ra_expertMode:K1,ra_false:q1,ra_fileType_all:ep,ra_fileType_audio:tp,ra_fileType_code:sp,ra_fileType_images:ip,ra_fileType_txt:rp,ra_fileType_video:op,"ra_fileType_video,":"Video",ra_filter_customs:np,ra_filter_customs_without:ap,ra_filter_func:Mp,ra_filter_id:cp,ra_filter_name:up,ra_filter_role:lp,ra_filter_room:Np,ra_filter_type:Lp,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:gp,ra_lastChange:jp,ra_locally:yp,ra_month_Apr:Tp,ra_month_Aug:Dp,ra_month_Dec:dp,ra_month_Feb:hp,ra_month_Jan:zp,ra_month_Jul:wp,ra_month_Jun:Cp,ra_month_Mai:Ip,ra_month_Mar:pp,ra_month_Nov:Ap,ra_month_Oct:mp,ra_month_Sep:Op,ra_months_Apr:Ep,ra_months_Aug:fp,ra_months_Dec:xp,ra_months_Feb:_p,ra_months_Jan:Sp,ra_months_Jul:kp,ra_months_Jun:Yp,ra_months_Mai:vp,ra_months_Mar:bp,ra_months_Nov:Qp,ra_months_Oct:Up,ra_months_Sep:$p,"ra_no confirm for 5 mins":"5 Minuten lang keine Bestätigung",ra_none:Pp,ra_object_changed_by:Wp,ra_object_changed_by_user:Bp,ra_otherConfig:Jp,ra_qualityCode:Rp,ra_repeat:Fp,ra_select_folder_hint:Gp,ra_show_all:Hp,ra_state_changed_by:Vp,ra_state_changed_from:Zp,ra_timestamp:Xp,ra_tooltip_ack:Kp,ra_tooltip_comment:qp,ra_tooltip_copyState:eA,ra_tooltip_ctrlForLink:tA,ra_tooltip_customConfig:sA,ra_tooltip_deleteObject:iA,ra_tooltip_editObject:rA,ra_tooltip_editState:oA,ra_tooltip_expire:nA,ra_tooltip_from:aA,ra_tooltip_lc:MA,ra_tooltip_quality:cA,ra_tooltip_ts:uA,ra_tooltip_user:lA,ra_tooltip_value:NA,ra_true:LA,"ra_use seconds":"Sekunden benutzen",ra_val:gA,"ra_via internet":"übers Internet",ra_warning_every_minute:jA,ra_warning_every_second:yA,sc_cron:TA,sc_date:DA,sc_dates:dA,sc_dow:hA,sc_dows:zA,sc_every:wA,sc_everyN_dates:CA,sc_everyN_dow:IA,sc_everyN_dows:pA,sc_everyN_hours:AA,sc_everyN_minutes:mA,sc_everyN_months:OA,sc_everyN_seconds:EA,sc_every_dates:fA,sc_every_dow:xA,sc_every_dows:_A,sc_every_hours:SA,sc_every_minutes:kA,sc_every_months:YA,sc_every_seconds:vA,sc_from:bA,sc_hours:QA,sc_interval:UA,sc_intervalBetween:$A,sc_invalid_cron:PA,sc_minutes:WA,sc_months:BA,sc_once:JA,sc_period:RA,sc_seconds:FA,sc_simple:GA,sc_specific:HA,sc_specific_dates:VA,sc_specific_dow:ZA,sc_specific_dows:XA,sc_specific_hours:KA,sc_specific_minutes:qA,sc_specific_months:e2,sc_specific_seconds:t2,sc_time:s2,sc_to:i2,sc_wizard:r2,sch_all:o2,sch_astroDay:n2,sch_astroNight:a2,sch_astro_dawn:M2,sch_astro_dusk:c2,sch_astro_goldenHour:u2,sch_astro_goldenHourEnd:l2,sch_astro_nadir:N2,sch_astro_nauticalDawn:L2,sch_astro_nauticalDusk:g2,sch_astro_night:j2,sch_astro_nightEnd:y2,sch_astro_solarNoon:T2,sch_astro_sunrise:D2,sch_astro_sunriseEnd:d2,sch_astro_sunset:h2,sch_astro_sunsetStart:z2,sch_at:w2,sch_desc_atTime:C2,sch_desc_everyDay:I2,sch_desc_everyHour:p2,sch_desc_everyMinute:A2,sch_desc_everyMonth:m2,sch_desc_everyNDay:O2,sch_desc_everyNHours:E2,sch_desc_everyNMinutes:f2,sch_desc_everyNMonths:x2,sch_desc_everyNWeeks:_2,sch_desc_everyNYears:S2,sch_desc_everyWeek:k2,sch_desc_everyYear:Y2,sch_desc_intervalFromTo:v2,sch_desc_never:b2,sch_desc_onDate:Q2,sch_desc_onDates:U2,sch_desc_onEveryDate:$2,sch_desc_onMonth:P2,sch_desc_onMonths:W2,sch_desc_onWeekday:B2,sch_desc_onWeekdays:J2,sch_desc_onWeekends:R2,sch_desc_onWorkdays:F2,sch_desc_onceInPast:G2,sch_desc_once_on:H2,sch_desc_validFrom:V2,sch_desc_validFromTo:Z2,sch_desc_validTo:X2,sch_every:K2,sch_exactTime:q2,sch_from:em,sch_fromTo:tm,sch_intervalTime:sm,sch_invert:im,sch_no_one:rm,sch_on:om,sch_period:nm,sch_periodDaily:am,sch_periodDates:Mm,sch_periodDay:cm,sch_periodEvery:um,sch_periodEveryDay:lm,sch_periodEveryMonth:Nm,sch_periodEveryWeek:Lm,sch_periodEveryYear:gm,sch_periodHours:jm,sch_periodMinutes:ym,sch_periodMonth:Tm,sch_periodMonthly:Dm,sch_periodOnce:dm,sch_periodSpecificMonths:hm,sch_periodWeek:zm,sch_periodWeekdays:wm,sch_periodWeekend:Cm,sch_periodWeekly:Im,sch_periodWorkdays:pm,sch_periodYear:Am,sch_periodYearly:mm,sch_specificTime:Om,sch_time:Em,sch_to:fm,sch_valid:xm,sch_validFrom:_m,sch_validTo:Sm,sch_wholeDay:km,sch_yearEveryMonth:Ym},bm="Действия",Qm="Добавить",Um="Отмена",$m="Категории",Pm="Проверено",Wm="Удалить",Bm="Закрыть",Jm="Коммерческая",Rm="Настроить",Fm="Соединение установлено",Gm="Продолжать",Hm="скопировано",Vm="Создать",Zm="Обрезать",Xm="Delete",Km="Удалить",qm="Отказаться",eO="Отключено",tO="Ошибка",sO="Фильтр",iO="Пятница",rO="Широта",oO="Выйти",nO="Долгота",aO="Сообщение",MO="Понедельник",cO="Имя",uO="Объекты",lO="Ok",NO="Продукт",LO="Переименовать/Переместить/Копировать",gO="Повторение",jO="Заменять",yO="Начало",TO="Суббота",DO="Сохранить",dO="выбранный",hO="Состояния",zO="Воскресенье",wO="Четверг",CO="Времени",IO="Вторник",pO="Обновить",AO="Годен до",mO="Значение",OO="Версия",EO="Среда",fO="Ширина",xO="Да",_O="разное",SO="Каждый может читать объект",kO="Каждый может читать состояние",YO="Каждый может написать объект",vO="Каждый может написать состояние",bO="Группа может читать объект",QO="Группа может читать состояние",UO="Группа может писать объект",$O="Группа может записывать состояние",PO="Владелец может читать объект",WO="Владелец может читать состояние",BO="Владелец может писать объект",JO="Владелец может писать состояние",RO="Кнопки",FO="Изменено с",GO="Закрыть",HO="Создать логическое состояние",VO="Создать канал",ZO="Создать устройство",XO="Создать состояние номера",KO="Создать состояние",qO="Создать состояние строки",eE="д.",tE="Пт",sE="Пн",iE="Сб",rE="Вс",oE="Чт",nE="Вт",aE="Ср",ME="Экспертный режим",cE="ЛОЖЬ",uE="Все файлы",lE="Аудио",NE="Код/JSON",LE="Картинки",gE="Текст",jE="видео",yE="настройки",TE="без",DE="функция",dE="ID",hE="Имя",zE="роль",wE="комната",CE="Тип",IE="Неверные настройки",pE="Последнее изменение",AE="локально",mE="Апр",OE="Авг",EE="Дек",fE="Фев",xE="Янв",_E="Июл",SE="Июн",kE="Май",YE="Мрт",vE="Ноя",bE="Окт",QE="Сен",UE="Апр",$E="Авг",PE="Дек",WE="Фев",BE="Янв",JE="Июнь",RE="Июль",FE="Май",GE="Март",HE="Ноя",VE="Окт",ZE="Сен",XE="ничего",KE="Объект изменен",qE="Последний раз объект изменен в",ef="Настройки из другого адаптера %s",tf="Код качества",sf="повтор",rf="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",of="Показать все",nf="Состояние изменено",af="Объект изменен с",Mf="Отметка времени",cf="Подтверждено",uf="Комментарий",lf="Скопируйте значение состояния",Nf="Удерживайте клавишу Cltr/⌘, чтобы открыть ссылку",Lf="Пользовательские настройки",gf="Удалить объект",jf="Редактировать объект",yf="Изменить значение состояния",Tf="Истекает через",Df="От",df="Последнее изменение",hf="Качество",zf="Отметка времени",wf="пользователь",Cf="Значение",If="истинный",pf="Значение",Af="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",mf="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",Of="CRON",Ef="Дата",ff="Даты",xf="День",_f="День недели",Sf="каждый(ую/ые)",kf="каждый N день",Yf="каждый N-й день недели",vf="каждый N день недели",bf="каждые N часов",Qf="каждые N минут",Uf="каждые N месяцев",$f="каждые N секунд",Pf="каждый день",Wf="Каждый день недели",Bf="каждый день недели",Jf="каждый час",Rf="каждую минуту",Ff="каждый месяц",Gf="каждую секунду",Hf="От",Vf="часы",Zf="Интервал",Xf="Интервал между",Kf="Неверный CRON",qf="минуты",ex="Месяцы",tx="один раз",sx="Период",ix="секунды",rx="Просто",ox="Конкретное время",nx="конкретные даты",ax="конкретный день(а) недели",Mx="конкретный день недели",cx="конкретные часы",ux="конкретные минуты",lx="конкретные месяцы",Nx="конкретные секунды",Lx="Время",gx="До",jx="Форма",yx="все",Tx="днём",Dx="ночью",dx="Рассвет",hx="Сумерки",zx="Золотой час",wx="Конец золотого часа",Cx="Надир",Ix="Морской рассвет",px="Морские сумерки",Ax="Ночь",mx="Конец ночи",Ox="Солнечный полдень",Ex="Восход",fx="Восход солнца",xx="Заход солнца",_x="Начало заката",Sx="дата",kx="в %s",Yx="каждый день",vx="каждый час",bx="каждую минуту",Qx="каждый месяц",Ux="каждый %s день",$x="каждый %s часов",Px="каждые %s минут",Wx="каждые %s месяцев",Bx="каждые %s недель",Jx="каждые %s лет",Rx="каждую неделю",Fx="каждый год",Gx="от %s до %s",Hx="никогда",Vx="%s %s",Zx="%s и %s",Xx="в каждый день",Kx="%s",qx="%s и %s",e_="%s",t_="%s и %s",s_="на выходных",i_="в рабочие дни",r_="не будет больше выполняться, потому что начало в прошлом",o_="%s",n_="%s",a_="Выполнить с",M_="%s",c_="каждый",u_="Конкретное время",l_="от",N_="От и до",L_="Интервал времени",g_="инвертировать",j_="никакой",y_="на",T_="период",D_="Ежедневно",d_="Даты",h_="День",z_="каждый",w_="Каждый день",C_="Каждый месяц",I_="Каждую неделю",p_="Каждый год",A_="часов",m_="минут",O_="месяц",E_="ежемесячно",f_="однажды",x_="Конкретные месяцы",__="Неделю",S_="Будние дни",k_="выходные",Y_="еженедельно",v_="Рабочие дни",b_="Год",Q_="каждый год",U_="Конкретное время",$_="Время",P_="в",W_="действительный",B_="от",J_="в",R_="Весь день",F_="каждый месяц",G_={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию",ra_Actions:bm,"ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:Qm,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:Um,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:$m,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:Pm,ra_Clear:Wm,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:Bm,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:Jm,ra_Configure:Rm,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:Fm,ra_Continue:Gm,ra_Copied:Hm,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:Vm,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:Zm,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:Xm,ra_Delete:Km,"ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:qm,ra_Disconnected:eO,"ra_Do not ask for next 2 hours in this session":"Не спрашивайте о следующих 2 часах в этом сеансе","ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit full path":"Изменить полный путь","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение","ra_Enter the code from that page here":"Введите код с этой страницы здесь",ra_Error:tO,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:sO,"ra_Filter and Data Actions":"Фильтрация и действия с данными","ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:iO,"ra_Get %s access":"Получить %s доступ","ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:rO,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Logout:oO,ra_Longitude:nO,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:aO,ra_Monday:MO,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:cO,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:uO,ra_Ok:lO,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please allow popups in your browser for this page!":"Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Press ENTER Key to add new item":"Нажмите клавишу ENTER, чтобы добавить новый элемент.","ra_Private certificate":"Частный сертификат",ra_Product:NO,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Rename_Move_Copy:LO,"ra_Renew %s access":"Продлить доступ %s",ra_Repeat:gO,ra_Replace:jO,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:yO,ra_Saturday:TO,ra_Save:DO,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:dO,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Session will expire in %s seconds. Continue?":"Сессия истечет через %s секунд. Продолжить?","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:hO,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.","ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:zO,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:wO,ra_Timestamp:CO,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:IO,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:pO,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:AO,ra_Value:mO,ra_Version:OO,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:EO,ra_Width:fO,ra_Yes:xO,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст",ra___different__:_O,ra_aclEveryone_read_object:SO,ra_aclEveryone_read_state:kO,ra_aclEveryone_write_object:YO,ra_aclEveryone_write_state:vO,ra_aclGroup_read_object:bO,ra_aclGroup_read_state:QO,ra_aclGroup_write_object:UO,ra_aclGroup_write_state:$O,ra_aclOwner_read_object:PO,ra_aclOwner_read_state:WO,ra_aclOwner_write_object:BO,ra_aclOwner_write_state:JO,ra_buttons:RO,ra_changedFrom:FO,ra_close:GO,ra_create_boolean_state:HO,ra_create_channel:VO,ra_create_device:ZO,ra_create_number_state:XO,ra_create_state:KO,ra_create_string_state:qO,ra_daysShortText:eE,ra_dow_Fr:tE,ra_dow_Mo:sE,ra_dow_Sa:iE,ra_dow_Su:rE,ra_dow_Th:oE,ra_dow_Tu:nE,ra_dow_We:aE,ra_expertMode:ME,ra_false:cE,ra_fileType_all:uE,ra_fileType_audio:lE,ra_fileType_code:NE,ra_fileType_images:LE,ra_fileType_txt:gE,ra_fileType_video:jE,"ra_fileType_video,":"видео",ra_filter_customs:yE,ra_filter_customs_without:TE,ra_filter_func:DE,ra_filter_id:dE,ra_filter_name:hE,ra_filter_role:zE,ra_filter_room:wE,ra_filter_type:CE,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:IE,ra_lastChange:pE,ra_locally:AE,ra_month_Apr:mE,ra_month_Aug:OE,ra_month_Dec:EE,ra_month_Feb:fE,ra_month_Jan:xE,ra_month_Jul:_E,ra_month_Jun:SE,ra_month_Mai:kE,ra_month_Mar:YE,ra_month_Nov:vE,ra_month_Oct:bE,ra_month_Sep:QE,ra_months_Apr:UE,ra_months_Aug:$E,ra_months_Dec:PE,ra_months_Feb:WE,ra_months_Jan:BE,ra_months_Jul:JE,ra_months_Jun:RE,ra_months_Mai:FE,ra_months_Mar:GE,ra_months_Nov:HE,ra_months_Oct:VE,ra_months_Sep:ZE,"ra_no confirm for 5 mins":"не спрашивать подтверждения в течение 5 минут",ra_none:XE,ra_object_changed_by:KE,ra_object_changed_by_user:qE,ra_otherConfig:ef,ra_qualityCode:tf,ra_repeat:sf,ra_select_folder_hint:rf,ra_show_all:of,ra_state_changed_by:nf,ra_state_changed_from:af,ra_timestamp:Mf,ra_tooltip_ack:cf,ra_tooltip_comment:uf,ra_tooltip_copyState:lf,ra_tooltip_ctrlForLink:Nf,ra_tooltip_customConfig:Lf,ra_tooltip_deleteObject:gf,ra_tooltip_editObject:jf,ra_tooltip_editState:yf,ra_tooltip_expire:Tf,ra_tooltip_from:Df,ra_tooltip_lc:df,ra_tooltip_quality:hf,ra_tooltip_ts:zf,ra_tooltip_user:wf,ra_tooltip_value:Cf,ra_true:If,"ra_use seconds":"секунды",ra_val:pf,"ra_via internet":"через интернет",ra_warning_every_minute:Af,ra_warning_every_second:mf,sc_cron:Of,sc_date:Ef,sc_dates:ff,sc_dow:xf,sc_dows:_f,sc_every:Sf,sc_everyN_dates:kf,sc_everyN_dow:Yf,sc_everyN_dows:vf,sc_everyN_hours:bf,sc_everyN_minutes:Qf,sc_everyN_months:Uf,sc_everyN_seconds:$f,sc_every_dates:Pf,sc_every_dow:Wf,sc_every_dows:Bf,sc_every_hours:Jf,sc_every_minutes:Rf,sc_every_months:Ff,sc_every_seconds:Gf,sc_from:Hf,sc_hours:Vf,sc_interval:Zf,sc_intervalBetween:Xf,sc_invalid_cron:Kf,sc_minutes:qf,sc_months:ex,sc_once:tx,sc_period:sx,sc_seconds:ix,sc_simple:rx,sc_specific:ox,sc_specific_dates:nx,sc_specific_dow:ax,sc_specific_dows:Mx,sc_specific_hours:cx,sc_specific_minutes:ux,sc_specific_months:lx,sc_specific_seconds:Nx,sc_time:Lx,sc_to:gx,sc_wizard:jx,sch_all:yx,sch_astroDay:Tx,sch_astroNight:Dx,sch_astro_dawn:dx,sch_astro_dusk:hx,sch_astro_goldenHour:zx,sch_astro_goldenHourEnd:wx,sch_astro_nadir:Cx,sch_astro_nauticalDawn:Ix,sch_astro_nauticalDusk:px,sch_astro_night:Ax,sch_astro_nightEnd:mx,sch_astro_solarNoon:Ox,sch_astro_sunrise:Ex,sch_astro_sunriseEnd:fx,sch_astro_sunset:xx,sch_astro_sunsetStart:_x,sch_at:Sx,sch_desc_atTime:kx,sch_desc_everyDay:Yx,sch_desc_everyHour:vx,sch_desc_everyMinute:bx,sch_desc_everyMonth:Qx,sch_desc_everyNDay:Ux,sch_desc_everyNHours:$x,sch_desc_everyNMinutes:Px,sch_desc_everyNMonths:Wx,sch_desc_everyNWeeks:Bx,sch_desc_everyNYears:Jx,sch_desc_everyWeek:Rx,sch_desc_everyYear:Fx,sch_desc_intervalFromTo:Gx,sch_desc_never:Hx,sch_desc_onDate:Vx,sch_desc_onDates:Zx,sch_desc_onEveryDate:Xx,sch_desc_onMonth:Kx,sch_desc_onMonths:qx,sch_desc_onWeekday:e_,sch_desc_onWeekdays:t_,sch_desc_onWeekends:s_,sch_desc_onWorkdays:i_,sch_desc_onceInPast:r_,sch_desc_once_on:o_,sch_desc_validFrom:n_,sch_desc_validFromTo:a_,sch_desc_validTo:M_,sch_every:c_,sch_exactTime:u_,sch_from:l_,sch_fromTo:N_,sch_intervalTime:L_,sch_invert:g_,sch_no_one:j_,sch_on:y_,sch_period:T_,sch_periodDaily:D_,sch_periodDates:d_,sch_periodDay:h_,sch_periodEvery:z_,sch_periodEveryDay:w_,sch_periodEveryMonth:C_,sch_periodEveryWeek:I_,sch_periodEveryYear:p_,sch_periodHours:A_,sch_periodMinutes:m_,sch_periodMonth:O_,sch_periodMonthly:E_,sch_periodOnce:f_,sch_periodSpecificMonths:x_,sch_periodWeek:__,sch_periodWeekdays:S_,sch_periodWeekend:k_,sch_periodWeekly:Y_,sch_periodWorkdays:v_,sch_periodYear:b_,sch_periodYearly:Q_,sch_specificTime:U_,sch_time:$_,sch_to:P_,sch_valid:W_,sch_validFrom:B_,sch_validTo:J_,sch_wholeDay:R_,sch_yearEveryMonth:F_},H_="Ações",V_="Acrescentar",Z_="Cancelar",X_="Categorias",K_="Verificado",q_="Excluir",eS="Perto",tS="Comercial",sS="Configurar",iS="Conectado",rS="Continuar",oS="Copiado",nS="Crio",aS="Colheita",MS="Delete",cS="Excluir",uS="Descartar",lS="Desconectado",NS="Erro",LS="Filtro",gS="Sexta-feira",jS="Latitude",yS="Sair",TS="Longitude",DS="mensagem",dS="Segunda-feira",hS="Nome",zS="Objetos",wS="Está bem",CS="produtos",IS="Renomear/Mover/Copiar",pS="Repita",AS="Substituir",mS="Raiz",OS="Sábado",ES="Salve ",fS="Selecionado",xS="Estados",_S="Domingo",SS="Quinta-feira",kS="Timestamp",YS="Terça-feira",vS="Atualizar",bS="Válida até",QS="Valor",US="Versão",$S="Quarta-feira",PS="Largura",WS="Sim",BS="diferente",JS="Todos podem ler objetos",RS="Todos podem ler o estado",FS="Todos podem escrever objetos",GS="Todos podem escrever o estado",HS="O grupo pode ler o objeto",VS="O grupo pode ler o estado",ZS="O grupo pode escrever o objeto",XS="O grupo pode escrever o estado",KS="O proprietário pode ler o objeto",qS="O proprietário pode ler o estado",e3="O proprietário pode escrever o objeto",t3="O proprietário pode escrever o estado",s3="Botões",i3="Mudou de",r3="fechar",o3="Criar estado booleano",n3="Criar canal",a3="Criar dispositivo",M3="Criar estado numérico",c3="Criar estado",u3="Criar estado de string",l3="d.",N3="Fr",L3="Mo",g3="Sa",j3="Su",y3="º",T3="Tu",D3="Nós",d3="Modo especialista",h3="FALSO",z3="Todos os arquivos",w3="áudio",C3="Código/JSON",I3="Imagens",p3="Texto",A3="Vídeo",m3="Configurações",O3="sem",E3="Função",f3="ID",x3="Nome",_3="Papel (Função)",S3="Quarto",k3="Tipo",Y3="Configurações inválidas",v3="Última mudança",b3="localmente",Q3="abril",U3="agosto",$3="dezembro",P3="fevereiro",W3="janeiro",B3="julho",J3="junho",R3="Mai",F3="março",G3="novembro",H3="outubro",V3="setembro",Z3="abril",X3="agosto",K3="dezembro",q3="fevereiro",e5="janeiro",t5="julho",s5="junho",i5="Mai",r5="março",o5="novembro",n5="outubro",a5="setembro",M5="Nenhum",c5="Objeto alterado por",u5="Objeto alterado pela última vez em",l5="Configurações de outro adaptador %s",N5="Código de qualidade",L5="repetir",g5='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',j5="Mostrar tudo",y5="Estado alterado por",T5="Objeto alterado de",D5="Timestamp",d5="Confirmado",h5="Comente",z5="Copie o valor do estado",w5="Segure a tecla Ctrl/⌘ para abrir o link",C5="Opções customizadas",I5="Excluir objeto",p5="Editar objeto",A5="Edite o valor do estado",m5="Expira em",O5="De",E5="Última alteração",f5="Qualidade",x5="Timestamp",_5="Usuário",S5="Valor",k5="verdadeiro",Y5="Valor",v5="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",b5="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",Q5="CRON",U5="Data",$5="Dias",P5="Dia",W5="Dia da semana",B5="todos",J5="a cada N dias",R5="todo enésimo dia da semana",F5="todos os N dias da semana",G5="a cada N horas",H5="a cada N minutos",V5="a cada N meses",Z5="a cada N segundos",X5="todo dia",K5="todos os dias da semana",q5="todos os dias da semana",ek="toda hora",tk="todo minuto",sk="todo mês",ik="todo segundo",rk="de",ok="horas",nk="intervalo",ak="intervalo entre",Mk="CRON inválido",ck="minutos",uk="meses",lk="uma vez",Nk="período",Lk="segundos",gk="simples",jk="tempo específico",yk="datas específicas",Tk="dia(s) específico(s) da semana",Dk="dia específico de semanas",dk="horas específicas",hk="minutos específicos",zk="meses específicos",wk="segundos específicos",Ck="tempo",Ik="para",pk="assistente",Ak="tudo",mk="dia astral",Ok="noite astral",Ek="amanhecer",fk="anoitecer",xk="hora dourada",_k="Fim da hora dourada",Sk="nadir",kk="Amanhecer náutico",Yk="Anoitecer náutico",vk="noite",bk="fim da noite",Qk="meio-dia solar",Uk="nascer do sol",$k="fim do nascer do sol",Pk="pôr do sol",Wk="início do pôr do sol",Bk="às",Jk="em %s",Rk="todo dia",Fk="toda hora",Gk="todo minuto",Hk="todo mês",Vk="a cada %s dias",Zk="a cada %s horas",Xk="a cada %s minutos",Kk="a cada %s meses",qk="a cada %s semanas",eY="a cada %s anos",tY="toda semana",sY="todo ano",iY="de %s para %s",rY="nunca",oY="em %s de %s",nY="em %s e %s de",aY="em toda data de",MY="%s",cY="%s e %s",uY="em %s",lY="em %s e %s",NY="nos fins de semana",LY="em dias úteis",gY="não será mais executado, porque o começo está no passado",jY="em %s",yY="de %s",TY="Executar de até",DY="até %s",dY="cada",hY="tempo específico",zY="de",wY="de a´t",CY="tempo de intervalo",IY="invertido",pY="nenhum",AY="em",mY="período",OY="diariamente",EY="datas",fY="dia",xY="todos",_Y="todo dia",SY="todo mês",kY="toda semana",YY="todo ano",vY="horas",bY="minutos",QY="mês",UY="por mês",$Y="uma vez",PY="meses específicos",WY="semana",BY="dias úteis",JY="final de semana",RY="semanal",FY="dias úteis",GY="ano",HY="anual",VY="tempo específico",ZY="tempo",XY="para",KY="válido",qY="de",ev="para",tv="dia inteiro",sv="todo mês",iv={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença",ra_Actions:H_,"ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:V_,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:Z_,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:X_,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:K_,ra_Clear:q_,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:eS,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:tS,ra_Configure:sS,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:iS,ra_Continue:rS,ra_Copied:oS,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:nS,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:aS,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:MS,ra_Delete:cS,"ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:uS,ra_Disconnected:lS,"ra_Do not ask for next 2 hours in this session":"Não peça as próximas 2 horas nesta sessão","ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit full path":"Editar caminho completo","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Digite o código dessa página aqui",ra_Error:NS,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:LS,"ra_Filter and Data Actions":"Ações de filtro e dados","ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:gS,"ra_Get %s access":"Obtenha acesso %s","ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:jS,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Logout:yS,ra_Longitude:TS,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:DS,ra_Monday:dS,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:hS,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:zS,ra_Ok:wS,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please allow popups in your browser for this page!":"Por favor, permita pop-ups no seu navegador para esta página!","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Press ENTER Key to add new item":"Pressione a tecla ENTER para adicionar um novo item","ra_Private certificate":"certificado privado",ra_Product:CS,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Rename_Move_Copy:IS,"ra_Renew %s access":"Renovar acesso %s",ra_Repeat:pS,ra_Replace:AS,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:mS,ra_Saturday:OS,ra_Save:ES,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:fS,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"A sessão irá expirar em %s segundos. Continuar?","ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:xS,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado com sucesso. Token válido até %s e será renovado automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.","ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:_S,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:SS,ra_Timestamp:kS,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:YS,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:vS,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:bS,ra_Value:QS,ra_Version:US,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:$S,ra_Width:PS,ra_Yes:WS,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto",ra___different__:BS,ra_aclEveryone_read_object:JS,ra_aclEveryone_read_state:RS,ra_aclEveryone_write_object:FS,ra_aclEveryone_write_state:GS,ra_aclGroup_read_object:HS,ra_aclGroup_read_state:VS,ra_aclGroup_write_object:ZS,ra_aclGroup_write_state:XS,ra_aclOwner_read_object:KS,ra_aclOwner_read_state:qS,ra_aclOwner_write_object:e3,ra_aclOwner_write_state:t3,ra_buttons:s3,ra_changedFrom:i3,ra_close:r3,ra_create_boolean_state:o3,ra_create_channel:n3,ra_create_device:a3,ra_create_number_state:M3,ra_create_state:c3,ra_create_string_state:u3,ra_daysShortText:l3,ra_dow_Fr:N3,ra_dow_Mo:L3,ra_dow_Sa:g3,ra_dow_Su:j3,ra_dow_Th:y3,ra_dow_Tu:T3,ra_dow_We:D3,ra_expertMode:d3,ra_false:h3,ra_fileType_all:z3,ra_fileType_audio:w3,ra_fileType_code:C3,ra_fileType_images:I3,ra_fileType_txt:p3,ra_fileType_video:A3,"ra_fileType_video,":"Vídeo",ra_filter_customs:m3,ra_filter_customs_without:O3,ra_filter_func:E3,ra_filter_id:f3,ra_filter_name:x3,ra_filter_role:_3,ra_filter_room:S3,ra_filter_type:k3,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:Y3,ra_lastChange:v3,ra_locally:b3,ra_month_Apr:Q3,ra_month_Aug:U3,ra_month_Dec:$3,ra_month_Feb:P3,ra_month_Jan:W3,ra_month_Jul:B3,ra_month_Jun:J3,ra_month_Mai:R3,ra_month_Mar:F3,ra_month_Nov:G3,ra_month_Oct:H3,ra_month_Sep:V3,ra_months_Apr:Z3,ra_months_Aug:X3,ra_months_Dec:K3,ra_months_Feb:q3,ra_months_Jan:e5,ra_months_Jul:t5,ra_months_Jun:s5,ra_months_Mai:i5,ra_months_Mar:r5,ra_months_Nov:o5,ra_months_Oct:n5,ra_months_Sep:a5,"ra_no confirm for 5 mins":"sem confirmação por 5 minutos",ra_none:M5,ra_object_changed_by:c5,ra_object_changed_by_user:u5,ra_otherConfig:l5,ra_qualityCode:N5,ra_repeat:L5,ra_select_folder_hint:g5,ra_show_all:j5,ra_state_changed_by:y5,ra_state_changed_from:T5,ra_timestamp:D5,ra_tooltip_ack:d5,ra_tooltip_comment:h5,ra_tooltip_copyState:z5,ra_tooltip_ctrlForLink:w5,ra_tooltip_customConfig:C5,ra_tooltip_deleteObject:I5,ra_tooltip_editObject:p5,ra_tooltip_editState:A5,ra_tooltip_expire:m5,ra_tooltip_from:O5,ra_tooltip_lc:E5,ra_tooltip_quality:f5,ra_tooltip_ts:x5,ra_tooltip_user:_5,ra_tooltip_value:S5,ra_true:k5,"ra_use seconds":"use segundos",ra_val:Y5,"ra_via internet":"via internet",ra_warning_every_minute:v5,ra_warning_every_second:b5,sc_cron:Q5,sc_date:U5,sc_dates:$5,sc_dow:P5,sc_dows:W5,sc_every:B5,sc_everyN_dates:J5,sc_everyN_dow:R5,sc_everyN_dows:F5,sc_everyN_hours:G5,sc_everyN_minutes:H5,sc_everyN_months:V5,sc_everyN_seconds:Z5,sc_every_dates:X5,sc_every_dow:K5,sc_every_dows:q5,sc_every_hours:ek,sc_every_minutes:tk,sc_every_months:sk,sc_every_seconds:ik,sc_from:rk,sc_hours:ok,sc_interval:nk,sc_intervalBetween:ak,sc_invalid_cron:Mk,sc_minutes:ck,sc_months:uk,sc_once:lk,sc_period:Nk,sc_seconds:Lk,sc_simple:gk,sc_specific:jk,sc_specific_dates:yk,sc_specific_dow:Tk,sc_specific_dows:Dk,sc_specific_hours:dk,sc_specific_minutes:hk,sc_specific_months:zk,sc_specific_seconds:wk,sc_time:Ck,sc_to:Ik,sc_wizard:pk,sch_all:Ak,sch_astroDay:mk,sch_astroNight:Ok,sch_astro_dawn:Ek,sch_astro_dusk:fk,sch_astro_goldenHour:xk,sch_astro_goldenHourEnd:_k,sch_astro_nadir:Sk,sch_astro_nauticalDawn:kk,sch_astro_nauticalDusk:Yk,sch_astro_night:vk,sch_astro_nightEnd:bk,sch_astro_solarNoon:Qk,sch_astro_sunrise:Uk,sch_astro_sunriseEnd:$k,sch_astro_sunset:Pk,sch_astro_sunsetStart:Wk,sch_at:Bk,sch_desc_atTime:Jk,sch_desc_everyDay:Rk,sch_desc_everyHour:Fk,sch_desc_everyMinute:Gk,sch_desc_everyMonth:Hk,sch_desc_everyNDay:Vk,sch_desc_everyNHours:Zk,sch_desc_everyNMinutes:Xk,sch_desc_everyNMonths:Kk,sch_desc_everyNWeeks:qk,sch_desc_everyNYears:eY,sch_desc_everyWeek:tY,sch_desc_everyYear:sY,sch_desc_intervalFromTo:iY,sch_desc_never:rY,sch_desc_onDate:oY,sch_desc_onDates:nY,sch_desc_onEveryDate:aY,sch_desc_onMonth:MY,sch_desc_onMonths:cY,sch_desc_onWeekday:uY,sch_desc_onWeekdays:lY,sch_desc_onWeekends:NY,sch_desc_onWorkdays:LY,sch_desc_onceInPast:gY,sch_desc_once_on:jY,sch_desc_validFrom:yY,sch_desc_validFromTo:TY,sch_desc_validTo:DY,sch_every:dY,sch_exactTime:hY,sch_from:zY,sch_fromTo:wY,sch_intervalTime:CY,sch_invert:IY,sch_no_one:pY,sch_on:AY,sch_period:mY,sch_periodDaily:OY,sch_periodDates:EY,sch_periodDay:fY,sch_periodEvery:xY,sch_periodEveryDay:_Y,sch_periodEveryMonth:SY,sch_periodEveryWeek:kY,sch_periodEveryYear:YY,sch_periodHours:vY,sch_periodMinutes:bY,sch_periodMonth:QY,sch_periodMonthly:UY,sch_periodOnce:$Y,sch_periodSpecificMonths:PY,sch_periodWeek:WY,sch_periodWeekdays:BY,sch_periodWeekend:JY,sch_periodWeekly:RY,sch_periodWorkdays:FY,sch_periodYear:GY,sch_periodYearly:HY,sch_specificTime:VY,sch_time:ZY,sch_to:XY,sch_valid:KY,sch_validFrom:qY,sch_validTo:ev,sch_wholeDay:tv,sch_yearEveryMonth:sv},rv="Acties",ov="toevoegen",nv="Annuleer",av="Categorieën",Mv="Gecontroleerd",cv="Verwijderen",uv="Dichtbij",lv="Reclame",Nv="Configureren",Lv="Verbonden",gv="Doorgaan",jv="Gekopieerd",yv="Creëer",Tv="Bijsnijden",Dv="Delete",dv="Verwijderen",hv="Weggooien",zv="Verbinding verbroken",wv="Fout",Cv="Filter",Iv="Vrijdag",pv="Breedtegraad",Av="Uitloggen",mv="Lengtegraad",Ov="Bericht",Ev="Maandag",fv="Naam",xv="Voorwerpen",_v="OK",Sv="Product",kv="Hernoemen/Verplaatsen/Kopiëren",Yv="Herhaling",vv="Vervangen",bv="Wortel",Qv="Zaterdag",Uv="Sparen",$v="Geselecteerd",Pv="Staten",Wv="Zondag",Bv="Donderdag",Jv="Tijdstempel",Rv="Dinsdag",Fv="Bijwerken",Gv="Geldig tot",Hv="Waarde",Vv="Versie",Zv="Woensdag",Xv="Breedte",Kv="Ja",qv="verschillend",eb="Iedereen kan object lezen",tb="Iedereen kan staat lezen",sb="Iedereen kan object schrijven",ib="Iedereen kan staat schrijven",rb="Groep kan object lezen",ob="Groep kan status lezen",nb="Groep kan object schrijven",ab="Groep kan staat schrijven",Mb="Eigenaar kan object lezen",cb="Eigenaar kan staat lezen",ub="Eigenaar kan object schrijven",lb="Eigenaar kan staat schrijven",Nb="Toetsen",Lb="Veranderd van",gb="dichtbij",jb="Creëer een Booleaanse status",yb="Kanaal maken",Tb="Apparaat maken",Db="Nummerstatus maken",db="Staat creëren",hb="Tekenreeksstatus maken",zb="d.",wb="Fr",Cb="Mo",Ib="Za",pb="Zo",Ab="Th",mb="Tu",Ob="Wij",Eb="Expert modus",fb="ONWAAR",xb="Alle bestanden",_b="Audio",Sb="Code/JSON",kb="Afbeeldingen",Yb="Tekst",vb="Video",bb="Instellingen",Qb="zonder",Ub="Functie",$b="ID",Pb="Naam",Wb="Rol",Bb="Kamer",Jb="Type",Rb="Ongeldige instellingen",Fb="Laatste wijziging",Gb="plaatselijk",Hb="april",Vb="aug",Zb="dec",Xb="februari",Kb="jan",qb="jul",eQ="juni",tQ="Mei",sQ="mrt",iQ="nov",rQ="Okt",oQ="sept",nQ="april",aQ="aug",MQ="dec",cQ="februari",uQ="jan",lQ="jul",NQ="juni",LQ="Mei",gQ="mrt",jQ="nov",yQ="Okt",TQ="sept",DQ="geen",dQ="Object veranderd door",hQ="Object voor het laatst gewijzigd om",zQ="Instellingen van andere adapter %s",wQ="Kwaliteitscode",CQ="herhalen",IQ='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',pQ="Alles weergeven",AQ="Staat veranderd door",mQ="Object veranderd van",OQ="Tijdstempel",EQ="Erkende vlag",fQ="Opmerking",xQ="Kopieer de statuswaarde",_Q="Houd de Cltr/⌘-toets ingedrukt om de link te openen",SQ="Aangepaste instellingen",kQ="Object verwijderen",YQ="Object bewerken",vQ="Bewerk de statuswaarde",bQ="Verloopt over",QQ="Van",UQ="Laatst gewijzigd",$Q="Kwaliteit",PQ="Tijdstempel",WQ="Gebruiker",BQ="Waarde",JQ="WAAR",RQ="Waarde",FQ="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",GQ="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",HQ="CRON",VQ="Datum",ZQ="data",XQ="Dag",KQ="Dag van de week",qQ="elk",eU="elke N dagen",tU="elke N-de dag van de week",sU="elke N dag van de week",iU="elke N uur",rU="elke N minuten",oU="elke N maanden",nU="elke N seconden",aU="elke dag",MU="elke dag van de week",cU="elke dag van de week",uU="elk uur",lU="elke minuut",NU="elke maand",LU="elke seconde",gU="Van",jU="uren",yU="Interval",TU="Interval tussen",DU="Ongeldige CRON",dU="Notulen",hU="maanden",zU="Een keer",wU="Periode",CU="seconden",IU="Gemakkelijk",pU="Specifieke tijd",AU="specifieke data",mU="specifieke dag(en) van de week",OU="specifieke dag van weken",EU="specifieke uren",fU="specifieke minuten",xU="specifieke maanden",_U="specifieke seconden",SU="Tijd",kU="Naar",YU="tovenaar",vU="allemaal",bU="Astro-dag",QU="Astro-nacht",UU="Dageraad",$U="Schemer",PU="gouden uur",WU="Gouden uur einde",BU="Nadir",JU="Nautische dageraad",RU="Nautische schemering",FU="Nacht",GU="Nacht einde",HU="Zonne middag",VU="zonsopkomst",ZU="Sunrise einde",XU="Zonsondergang",KU="Zonsondergang start",qU="Bij",e8="op %s",t8="elke dag",s8="elk uur",i8="elke minuut",r8="elke maand",o8="elke %s dag",n8="elke %s uur",a8="elke %s minuten",M8="elke %s maanden",c8="elke %s weken",u8="elke %s jaar",l8="elke week",N8="elk jaar",L8="van %s tot %s",g8="nooit",j8="op %s van %s",y8="op %s en %s van",T8="op elke datum van",D8="%s",d8="%s en %s",h8="op %s",z8="op %s en %s",w8="in het weekend",C8="op werkdagen",I8="zal niet meer worden uitgevoerd, omdat start verleden tijd is",p8="op %s",A8="van %s",m8="Uitvoeren van tot",O8="tot %s",E8="elk",f8="Specifieke tijd",x8="van",_8="Van naar",S8="Interval tijd",k8="omkeren",Y8="geen",v8="Aan",b8="Periode",Q8="Dagelijks",U8="data",$8="Dag",P8="elk",W8="Elke dag",B8="Elke maand",J8="Elke week",R8="Elk jaar",F8="uren",G8="Notulen",H8="maand",V8="Maandelijks",Z8="Een keer",X8="Specifieke maanden",K8="Week",q8="Doordeweekse dagen",e6="Weekend",t6="Wekelijks",s6="werkdagen",i6="Jaar",r6="jaar-",o6="Specifieke tijd",n6="Tijd",a6="naar",M6="Geldig",c6="van",u6="naar",l6="Hele dag",N6="elke maand",L6={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie",ra_Actions:rv,"ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:ov,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:nv,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:av,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:Mv,ra_Clear:cv,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:uv,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:lv,ra_Configure:Nv,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:Lv,ra_Continue:gv,ra_Copied:jv,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:yv,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Tv,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:Dv,ra_Delete:dv,"ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:hv,ra_Disconnected:zv,"ra_Do not ask for next 2 hours in this session":"Vraag niet om de volgende 2 uur in deze sessie","ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit full path":"Volledig pad bewerken","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken","ra_Enter the code from that page here":"Voer hier de code van die pagina in",ra_Error:wv,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:Cv,"ra_Filter and Data Actions":"Filter- en gegevensacties","ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:Iv,"ra_Get %s access":"Krijg %s toegang","ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:pv,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Logout:Av,ra_Longitude:mv,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:Ov,ra_Monday:Ev,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:fv,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:xv,ra_Ok:_v,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please allow popups in your browser for this page!":"Sta pop-ups toe in uw browser voor deze pagina!","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Press ENTER Key to add new item":"Druk op de ENTER-toets om een nieuw item toe te voegen","ra_Private certificate":"Privé certificaat",ra_Product:Sv,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Rename_Move_Copy:kv,"ra_Renew %s access":"%s toegang verlengen",ra_Repeat:Yv,ra_Replace:vv,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:bv,ra_Saturday:Qv,ra_Save:Uv,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:$v,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Session will expire in %s seconds. Continue?":"Sessie verloopt over %s seconden. Doorgaan?","ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:Pv,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.","ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:Wv,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:Bv,ra_Timestamp:Jv,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:Rv,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:Fv,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:Gv,ra_Value:Hv,ra_Version:Vv,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:Zv,ra_Width:Xv,ra_Yes:Kv,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren",ra___different__:qv,ra_aclEveryone_read_object:eb,ra_aclEveryone_read_state:tb,ra_aclEveryone_write_object:sb,ra_aclEveryone_write_state:ib,ra_aclGroup_read_object:rb,ra_aclGroup_read_state:ob,ra_aclGroup_write_object:nb,ra_aclGroup_write_state:ab,ra_aclOwner_read_object:Mb,ra_aclOwner_read_state:cb,ra_aclOwner_write_object:ub,ra_aclOwner_write_state:lb,ra_buttons:Nb,ra_changedFrom:Lb,ra_close:gb,ra_create_boolean_state:jb,ra_create_channel:yb,ra_create_device:Tb,ra_create_number_state:Db,ra_create_state:db,ra_create_string_state:hb,ra_daysShortText:zb,ra_dow_Fr:wb,ra_dow_Mo:Cb,ra_dow_Sa:Ib,ra_dow_Su:pb,ra_dow_Th:Ab,ra_dow_Tu:mb,ra_dow_We:Ob,ra_expertMode:Eb,ra_false:fb,ra_fileType_all:xb,ra_fileType_audio:_b,ra_fileType_code:Sb,ra_fileType_images:kb,ra_fileType_txt:Yb,ra_fileType_video:vb,"ra_fileType_video,":"Video",ra_filter_customs:bb,ra_filter_customs_without:Qb,ra_filter_func:Ub,ra_filter_id:$b,ra_filter_name:Pb,ra_filter_role:Wb,ra_filter_room:Bb,ra_filter_type:Jb,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:Rb,ra_lastChange:Fb,ra_locally:Gb,ra_month_Apr:Hb,ra_month_Aug:Vb,ra_month_Dec:Zb,ra_month_Feb:Xb,ra_month_Jan:Kb,ra_month_Jul:qb,ra_month_Jun:eQ,ra_month_Mai:tQ,ra_month_Mar:sQ,ra_month_Nov:iQ,ra_month_Oct:rQ,ra_month_Sep:oQ,ra_months_Apr:nQ,ra_months_Aug:aQ,ra_months_Dec:MQ,ra_months_Feb:cQ,ra_months_Jan:uQ,ra_months_Jul:lQ,ra_months_Jun:NQ,ra_months_Mai:LQ,ra_months_Mar:gQ,ra_months_Nov:jQ,ra_months_Oct:yQ,ra_months_Sep:TQ,"ra_no confirm for 5 mins":"geen bevestiging gedurende 5 minuten",ra_none:DQ,ra_object_changed_by:dQ,ra_object_changed_by_user:hQ,ra_otherConfig:zQ,ra_qualityCode:wQ,ra_repeat:CQ,ra_select_folder_hint:IQ,ra_show_all:pQ,ra_state_changed_by:AQ,ra_state_changed_from:mQ,ra_timestamp:OQ,ra_tooltip_ack:EQ,ra_tooltip_comment:fQ,ra_tooltip_copyState:xQ,ra_tooltip_ctrlForLink:_Q,ra_tooltip_customConfig:SQ,ra_tooltip_deleteObject:kQ,ra_tooltip_editObject:YQ,ra_tooltip_editState:vQ,ra_tooltip_expire:bQ,ra_tooltip_from:QQ,ra_tooltip_lc:UQ,ra_tooltip_quality:$Q,ra_tooltip_ts:PQ,ra_tooltip_user:WQ,ra_tooltip_value:BQ,ra_true:JQ,"ra_use seconds":"gebruik seconden",ra_val:RQ,"ra_via internet":"via internet",ra_warning_every_minute:FQ,ra_warning_every_second:GQ,sc_cron:HQ,sc_date:VQ,sc_dates:ZQ,sc_dow:XQ,sc_dows:KQ,sc_every:qQ,sc_everyN_dates:eU,sc_everyN_dow:tU,sc_everyN_dows:sU,sc_everyN_hours:iU,sc_everyN_minutes:rU,sc_everyN_months:oU,sc_everyN_seconds:nU,sc_every_dates:aU,sc_every_dow:MU,sc_every_dows:cU,sc_every_hours:uU,sc_every_minutes:lU,sc_every_months:NU,sc_every_seconds:LU,sc_from:gU,sc_hours:jU,sc_interval:yU,sc_intervalBetween:TU,sc_invalid_cron:DU,sc_minutes:dU,sc_months:hU,sc_once:zU,sc_period:wU,sc_seconds:CU,sc_simple:IU,sc_specific:pU,sc_specific_dates:AU,sc_specific_dow:mU,sc_specific_dows:OU,sc_specific_hours:EU,sc_specific_minutes:fU,sc_specific_months:xU,sc_specific_seconds:_U,sc_time:SU,sc_to:kU,sc_wizard:YU,sch_all:vU,sch_astroDay:bU,sch_astroNight:QU,sch_astro_dawn:UU,sch_astro_dusk:$U,sch_astro_goldenHour:PU,sch_astro_goldenHourEnd:WU,sch_astro_nadir:BU,sch_astro_nauticalDawn:JU,sch_astro_nauticalDusk:RU,sch_astro_night:FU,sch_astro_nightEnd:GU,sch_astro_solarNoon:HU,sch_astro_sunrise:VU,sch_astro_sunriseEnd:ZU,sch_astro_sunset:XU,sch_astro_sunsetStart:KU,sch_at:qU,sch_desc_atTime:e8,sch_desc_everyDay:t8,sch_desc_everyHour:s8,sch_desc_everyMinute:i8,sch_desc_everyMonth:r8,sch_desc_everyNDay:o8,sch_desc_everyNHours:n8,sch_desc_everyNMinutes:a8,sch_desc_everyNMonths:M8,sch_desc_everyNWeeks:c8,sch_desc_everyNYears:u8,sch_desc_everyWeek:l8,sch_desc_everyYear:N8,sch_desc_intervalFromTo:L8,sch_desc_never:g8,sch_desc_onDate:j8,sch_desc_onDates:y8,sch_desc_onEveryDate:T8,sch_desc_onMonth:D8,sch_desc_onMonths:d8,sch_desc_onWeekday:h8,sch_desc_onWeekdays:z8,sch_desc_onWeekends:w8,sch_desc_onWorkdays:C8,sch_desc_onceInPast:I8,sch_desc_once_on:p8,sch_desc_validFrom:A8,sch_desc_validFromTo:m8,sch_desc_validTo:O8,sch_every:E8,sch_exactTime:f8,sch_from:x8,sch_fromTo:_8,sch_intervalTime:S8,sch_invert:k8,sch_no_one:Y8,sch_on:v8,sch_period:b8,sch_periodDaily:Q8,sch_periodDates:U8,sch_periodDay:$8,sch_periodEvery:P8,sch_periodEveryDay:W8,sch_periodEveryMonth:B8,sch_periodEveryWeek:J8,sch_periodEveryYear:R8,sch_periodHours:F8,sch_periodMinutes:G8,sch_periodMonth:H8,sch_periodMonthly:V8,sch_periodOnce:Z8,sch_periodSpecificMonths:X8,sch_periodWeek:K8,sch_periodWeekdays:q8,sch_periodWeekend:e6,sch_periodWeekly:t6,sch_periodWorkdays:s6,sch_periodYear:i6,sch_periodYearly:r6,sch_specificTime:o6,sch_time:n6,sch_to:a6,sch_valid:M6,sch_validFrom:c6,sch_validTo:u6,sch_wholeDay:l6,sch_yearEveryMonth:N6},g6="Actes",j6="Ajouter",y6="Annuler",T6="Catégories",D6="Vérifié",d6="Effacer",h6="Fermer",z6="Commercial",w6="Configurer",C6="Lié",I6="Continuer",p6="Copié",A6="Créer",m6="Recadrer",O6="Delete",E6="Supprimer",f6="Jeter",x6="Débranché",_6="Erreur",S6="Filtre",k6="Vendredi",Y6="Latitude",v6="Déconnexion",b6="Longitude",Q6="Message",U6="Lundi",$6="Nom",P6="Objets",W6="D'accord",B6="Produit",J6="Renommer/Déplacer/Copier",R6="Répéter",F6="Remplacer",G6="Racine",H6="Samedi",V6="sauver",Z6="Choisi",X6="États",K6="Dimanche",q6="Jeudi",e9="Horodatage",t9="Mardi",s9="Mise à jour",i9="Valable jusqu'au",r9="Valeur",o9="Version",n9="Mercredi",a9="Largeur",M9="Oui",c9="différent",u9="Tout le monde peut lire un objet",l9="Tout le monde peut lire l'état",N9="Tout le monde peut écrire un objet",L9="Tout le monde peut écrire l'état",g9="Le groupe peut lire l'objet",j9="Le groupe peut lire l'état",y9="Le groupe peut écrire un objet",T9="Le groupe peut écrire l'état",D9="Le propriétaire peut lire l'objet",d9="Le propriétaire peut lire l'état",h9="Le propriétaire peut écrire un objet",z9="Le propriétaire peut écrire l'état",w9="Boutons",C9="Changé de",I9="Fermer",p9="Créer un état booléen",A9="Créer une chaîne",m9="Créer un appareil",O9="Créer un état de numéro",E9="Créer un état",f9="Créer un état de chaîne",x9="j.",_9="Fr",S9="Mo",k9="Sa",Y9="Su",v9="Th",b9="Tu",Q9="Nous",U9="Mode expert",$9="FAUX",P9="Tous les fichiers",W9="l'audio",B9="Code/JSON",J9="Images",R9="Texte",F9="Vidéo",G9="Paramètres",H9="sans",V9="Une fonction",Z9="ID",X9="Prénom",K9="Rôle",q9="Pièce",e7="Type",t7="Paramètres invalides",s7="Dernier changement",i7="localement",r7="Avr",o7="Août",n7="Déc",a7="Fév",M7="Jan",c7="Juil",u7="Juin",l7="Mai",N7="Mar",L7="Nov",g7="Oct",j7="Sep",y7="Avr",T7="Août",D7="Déc",d7="Fév",h7="Jan",z7="Juil",w7="Juin",C7="Mai",I7="Mar",p7="Nov",A7="Oct",m7="Sep",O7="rien",E7="Objet modifié par",f7="Objet modifié pour la dernière fois à",x7="Paramètres d'un autre adaptateur %s",_7="Code de qualité",S7="répéter",k7='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',Y7="Tout afficher",v7="État modifié par",b7="Objet changé de",Q7="Horodatage",U7="Drapeau reconnu",$7="Commentaire",P7="Copiez la valeur d'état",W7="Maintenez la touche Cltr/⌘ enfoncée pour ouvrir le lien",B7="Paramètres personnalisés",J7="Supprimer un objet",R7="Modifier l'objet",F7="Modifier la valeur d'état",G7="Expire dans",H7="De",V7="Dernière modification",Z7="Qualité",X7="Horodatage",K7="Utilisateur",q7="Valeur",e$="VRAI",t$="Valeur",s$="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",i$="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",r$="CRON",o$="Date",n$="Rendez-vous",a$="Jour",M$="Jour de la semaine",c$="Chaque",u$="tous les N jours",l$="chaque Nième jour de la semaine",N$="tous les N jours de la semaine",L$="toutes les N heures",g$="toutes les N minutes",j$="tous les N mois",y$="toutes les N secondes",T$="tous les jours",D$="Chaque jour de la semaine",d$="Chaque jour de la semaine",h$="Toutes les heures",z$="chaque minute",w$="chaque mois",C$="chaque seconde",I$="De",p$="Heures",A$="Intervalle",m$="Intervalle entre",O$="CRON non valide",E$="Minutes",f$="mois",x$="Une fois que",_$="Période",S$="Secondes",k$="Facile",Y$="Temps spécifique",v$="dates spécifiques",b$="jour(s) spécifique(s) de la semaine",Q$="jour spécifique de semaines",U$="heures spécifiques",$$="minutes spécifiques",P$="mois spécifiques",W$="secondes spécifiques",B$="Temps",J$="À",R$="sorcier",F$="tout",G$="Journée astronomique",H$="Nuit astronomique",V$="Aube",Z$="Crépuscule",X$="Heure d'or",K$="Fin de l'heure d'or",q$="Nadir",eP="Aube nautique",tP="Crépuscule nautique",sP="Nuit",iP="Fin de nuit",rP="Midi solaire",oP="lever du soleil",nP="Fin du lever du soleil",aP="Le coucher du soleil",MP="Coucher du soleil",cP="à",uP="à %s",lP="tous les jours",NP="Toutes les heures",LP="chaque minute",gP="chaque mois",jP="chaque %s jour",yP="chaque %s heures",TP="toutes les %s minutes",DP="tous les %s mois",dP="chaque %s semaines",hP="tous les %s ans",zP="toutes les semaines",wP="chaque année",CP="de %s à %s",IP="jamais",pP="sur %s de %s",AP="sur %s et %s de",mP="à chaque date de",OP="%s",EP="%s et %s",fP="sur %s",xP="sur %s et %s",_P="les weekends",SP="les jours ouvrables",kP="ne sera plus exécuté, car start est dans le passé",YP="sur %s",vP="de %s",bP="Exécuter de à",QP="à %s",UP="chaque",$P="Temps spécifique",PP="de",WP="De à",BP="Temps d'interval",JP="inverser",RP="aucun",FP="sur",GP="Période",HP="du quotidien",VP="Rendez-vous",ZP="journée",XP="Chaque",KP="Tous les jours",qP="Chaque mois",eW="Toutes les semaines",tW="Chaque année",sW="Heures",iW="Minutes",rW="mois",oW="Mensuel",nW="Une fois que",aW="Mois spécifiques",MW="La semaine",cW="Jours de la semaine",uW="Weekend",lW="Hebdomadaire",NW="Jours ouvrables",LW="Année",gW="Annuel",jW="Temps spécifique",yW="Temps",TW="à",DW="Valide",dW="de",hW="à",zW="Toute la journée",wW="chaque mois",CW={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence",ra_Actions:g6,"ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:j6,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:y6,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:T6,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:D6,ra_Clear:d6,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:h6,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:z6,ra_Configure:w6,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:C6,ra_Continue:I6,ra_Copied:p6,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:A6,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:m6,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:O6,ra_Delete:E6,"ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:f6,ra_Disconnected:x6,"ra_Do not ask for next 2 hours in this session":"Ne demandez pas les 2 prochaines heures de cette session","ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit full path":"Modifier le chemin complet","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur","ra_Enter the code from that page here":"Entrez le code de cette page ici",ra_Error:_6,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:S6,"ra_Filter and Data Actions":"Actions sur les filtres et les données","ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:k6,"ra_Get %s access":"Obtenir l'accès %s","ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:Y6,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Logout:v6,ra_Longitude:b6,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:Q6,ra_Monday:U6,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:$6,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:P6,ra_Ok:W6,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please allow popups in your browser for this page!":"Veuillez autoriser les popups dans votre navigateur pour cette page !","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Press ENTER Key to add new item":"Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément","ra_Private certificate":"Certificat privé",ra_Product:B6,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Rename_Move_Copy:J6,"ra_Renew %s access":"Renouveler l'accès %s",ra_Repeat:R6,ra_Replace:F6,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:G6,ra_Saturday:H6,ra_Save:V6,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:Z6,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Session will expire in %s seconds. Continue?":"La session expirera dans %s secondes. Continuer ?","ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:X6,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.","ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:K6,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:q6,ra_Timestamp:e9,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:t9,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:s9,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:i9,ra_Value:r9,ra_Version:o9,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:n9,ra_Width:a9,ra_Yes:M9,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte",ra___different__:c9,ra_aclEveryone_read_object:u9,ra_aclEveryone_read_state:l9,ra_aclEveryone_write_object:N9,ra_aclEveryone_write_state:L9,ra_aclGroup_read_object:g9,ra_aclGroup_read_state:j9,ra_aclGroup_write_object:y9,ra_aclGroup_write_state:T9,ra_aclOwner_read_object:D9,ra_aclOwner_read_state:d9,ra_aclOwner_write_object:h9,ra_aclOwner_write_state:z9,ra_buttons:w9,ra_changedFrom:C9,ra_close:I9,ra_create_boolean_state:p9,ra_create_channel:A9,ra_create_device:m9,ra_create_number_state:O9,ra_create_state:E9,ra_create_string_state:f9,ra_daysShortText:x9,ra_dow_Fr:_9,ra_dow_Mo:S9,ra_dow_Sa:k9,ra_dow_Su:Y9,ra_dow_Th:v9,ra_dow_Tu:b9,ra_dow_We:Q9,ra_expertMode:U9,ra_false:$9,ra_fileType_all:P9,ra_fileType_audio:W9,ra_fileType_code:B9,ra_fileType_images:J9,ra_fileType_txt:R9,ra_fileType_video:F9,"ra_fileType_video,":"Vidéo",ra_filter_customs:G9,ra_filter_customs_without:H9,ra_filter_func:V9,ra_filter_id:Z9,ra_filter_name:X9,ra_filter_role:K9,ra_filter_room:q9,ra_filter_type:e7,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:t7,ra_lastChange:s7,ra_locally:i7,ra_month_Apr:r7,ra_month_Aug:o7,ra_month_Dec:n7,ra_month_Feb:a7,ra_month_Jan:M7,ra_month_Jul:c7,ra_month_Jun:u7,ra_month_Mai:l7,ra_month_Mar:N7,ra_month_Nov:L7,ra_month_Oct:g7,ra_month_Sep:j7,ra_months_Apr:y7,ra_months_Aug:T7,ra_months_Dec:D7,ra_months_Feb:d7,ra_months_Jan:h7,ra_months_Jul:z7,ra_months_Jun:w7,ra_months_Mai:C7,ra_months_Mar:I7,ra_months_Nov:p7,ra_months_Oct:A7,ra_months_Sep:m7,"ra_no confirm for 5 mins":"pas de confirmation pendant 5 minutes",ra_none:O7,ra_object_changed_by:E7,ra_object_changed_by_user:f7,ra_otherConfig:x7,ra_qualityCode:_7,ra_repeat:S7,ra_select_folder_hint:k7,ra_show_all:Y7,ra_state_changed_by:v7,ra_state_changed_from:b7,ra_timestamp:Q7,ra_tooltip_ack:U7,ra_tooltip_comment:$7,ra_tooltip_copyState:P7,ra_tooltip_ctrlForLink:W7,ra_tooltip_customConfig:B7,ra_tooltip_deleteObject:J7,ra_tooltip_editObject:R7,ra_tooltip_editState:F7,ra_tooltip_expire:G7,ra_tooltip_from:H7,ra_tooltip_lc:V7,ra_tooltip_quality:Z7,ra_tooltip_ts:X7,ra_tooltip_user:K7,ra_tooltip_value:q7,ra_true:e$,"ra_use seconds":"utiliser les secondes",ra_val:t$,"ra_via internet":"par Internet",ra_warning_every_minute:s$,ra_warning_every_second:i$,sc_cron:r$,sc_date:o$,sc_dates:n$,sc_dow:a$,sc_dows:M$,sc_every:c$,sc_everyN_dates:u$,sc_everyN_dow:l$,sc_everyN_dows:N$,sc_everyN_hours:L$,sc_everyN_minutes:g$,sc_everyN_months:j$,sc_everyN_seconds:y$,sc_every_dates:T$,sc_every_dow:D$,sc_every_dows:d$,sc_every_hours:h$,sc_every_minutes:z$,sc_every_months:w$,sc_every_seconds:C$,sc_from:I$,sc_hours:p$,sc_interval:A$,sc_intervalBetween:m$,sc_invalid_cron:O$,sc_minutes:E$,sc_months:f$,sc_once:x$,sc_period:_$,sc_seconds:S$,sc_simple:k$,sc_specific:Y$,sc_specific_dates:v$,sc_specific_dow:b$,sc_specific_dows:Q$,sc_specific_hours:U$,sc_specific_minutes:$$,sc_specific_months:P$,sc_specific_seconds:W$,sc_time:B$,sc_to:J$,sc_wizard:R$,sch_all:F$,sch_astroDay:G$,sch_astroNight:H$,sch_astro_dawn:V$,sch_astro_dusk:Z$,sch_astro_goldenHour:X$,sch_astro_goldenHourEnd:K$,sch_astro_nadir:q$,sch_astro_nauticalDawn:eP,sch_astro_nauticalDusk:tP,sch_astro_night:sP,sch_astro_nightEnd:iP,sch_astro_solarNoon:rP,sch_astro_sunrise:oP,sch_astro_sunriseEnd:nP,sch_astro_sunset:aP,sch_astro_sunsetStart:MP,sch_at:cP,sch_desc_atTime:uP,sch_desc_everyDay:lP,sch_desc_everyHour:NP,sch_desc_everyMinute:LP,sch_desc_everyMonth:gP,sch_desc_everyNDay:jP,sch_desc_everyNHours:yP,sch_desc_everyNMinutes:TP,sch_desc_everyNMonths:DP,sch_desc_everyNWeeks:dP,sch_desc_everyNYears:hP,sch_desc_everyWeek:zP,sch_desc_everyYear:wP,sch_desc_intervalFromTo:CP,sch_desc_never:IP,sch_desc_onDate:pP,sch_desc_onDates:AP,sch_desc_onEveryDate:mP,sch_desc_onMonth:OP,sch_desc_onMonths:EP,sch_desc_onWeekday:fP,sch_desc_onWeekdays:xP,sch_desc_onWeekends:_P,sch_desc_onWorkdays:SP,sch_desc_onceInPast:kP,sch_desc_once_on:YP,sch_desc_validFrom:vP,sch_desc_validFromTo:bP,sch_desc_validTo:QP,sch_every:UP,sch_exactTime:$P,sch_from:PP,sch_fromTo:WP,sch_intervalTime:BP,sch_invert:JP,sch_no_one:RP,sch_on:FP,sch_period:GP,sch_periodDaily:HP,sch_periodDates:VP,sch_periodDay:ZP,sch_periodEvery:XP,sch_periodEveryDay:KP,sch_periodEveryMonth:qP,sch_periodEveryWeek:eW,sch_periodEveryYear:tW,sch_periodHours:sW,sch_periodMinutes:iW,sch_periodMonth:rW,sch_periodMonthly:oW,sch_periodOnce:nW,sch_periodSpecificMonths:aW,sch_periodWeek:MW,sch_periodWeekdays:cW,sch_periodWeekend:uW,sch_periodWeekly:lW,sch_periodWorkdays:NW,sch_periodYear:LW,sch_periodYearly:gW,sch_specificTime:jW,sch_time:yW,sch_to:TW,sch_valid:DW,sch_validFrom:dW,sch_validTo:hW,sch_wholeDay:zW,sch_yearEveryMonth:wW},IW="Azioni",pW="Aggiungere",AW="Annulla",mW="Categorie",OW="Controllato",EW="Elimina",fW="Vicino",xW="Commerciale",_W="Configura",SW="Collegato",kW="Continuare",YW="Copiato",vW="Creare",bW="Raccolto",QW="Delete",UW="Elimina",$W="Scartare",PW="Disconnesso",WW="Errore",BW="Filtro",JW="Venerdì",RW="Latitudine",FW="Esci",GW="Longitudine",HW="Messaggio",VW="Lunedi",ZW="Nome",XW="Oggetti",KW="Ok",qW="Prodotto",eB="Rinomina/Sposta/Copia",tB="Ripetere",sB="Sostituire",iB="Radice",rB="Sabato",oB="Salva",nB="Selezionato",aB="stati",MB="Domenica",cB="Giovedì",uB="Timestamp",lB="Martedì",NB="Aggiornare",LB="Valido fino a",gB="Valore",jB="Versione",yB="Mercoledì",TB="Larghezza",DB="SÌ",dB="diverso",hB="Tutti possono leggere gli oggetti",zB="Tutti possono leggere lo stato",wB="Tutti possono scrivere oggetti",CB="Tutti possono scrivere stato",IB="Il gruppo può leggere l'oggetto",pB="Il gruppo può leggere lo stato",AB="Il gruppo può scrivere l'oggetto",mB="Il gruppo può scrivere lo stato",OB="Il proprietario può leggere l'oggetto",EB="Il proprietario può leggere lo stato",fB="Il proprietario può scrivere l'oggetto",xB="Il proprietario può scrivere lo stato",_B="Bottoni",SB="Cambiato da",kB="vicino",YB="Crea uno stato booleano",vB="Crea canale",bB="Crea dispositivo",QB="Crea lo stato del numero",UB="Crea stato",$B="Crea lo stato della stringa",PB="g.",WB="fr",BB="momento",JB="Sa",RB="su",FB="th",GB="Tu",HB="Noi",VB="Modalità esperto",ZB="FALSO",XB="Tutti i files",KB="Audio",qB="Codice/JSON",eJ="immagini",tJ="Testo",sJ="video",iJ="impostazioni",rJ="senza",oJ="Funzione",nJ="ID",aJ="Nome",MJ="Ruolo",cJ="Camera",uJ="genere",lJ="Impostazioni non valide",NJ="Ultima modifica",LJ="localmente",gJ="apr",jJ="agosto",yJ="Dic",TJ="febbraio",DJ="gen",dJ="lug",hJ="giu",zJ="Mai",wJ="marzo",CJ="nov",IJ="ottobre",pJ="Sett",AJ="apr",mJ="agosto",OJ="Dic",EJ="febbraio",fJ="gen",xJ="lug",_J="giu",SJ="Mai",kJ="marzo",YJ="nov",vJ="ottobre",bJ="Sett",QJ="nessuna",UJ="Oggetto modificato da",$J="L'oggetto è stato modificato l'ultima volta alle",PJ="Impostazioni dall'altro adattatore %s",WJ="Codice di qualità",BJ="ripetere",JJ='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',RJ="Mostra tutto",FJ="Stato cambiato da",GJ="Oggetto cambiato da",HJ="Timestamp",VJ="Bandiera riconosciuta",ZJ="Commento",XJ="Copia il valore dello stato",KJ="Tieni premuto il tasto Cltr/⌘ per aprire il collegamento",qJ="Impostazioni personalizzate",eR="Elimina oggetto",tR="Modifica oggetto",sR="Modifica il valore dello stato",iR="Scade tra",rR="A partire dal",oR="Ultima modifica",nR="Qualità",aR="Data e ora",MR="Utente",cR="Valore",uR="VERO",lR="Valore",NR="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",LR="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",gR="CRON",jR="Data",yR="Date",TR="Giorno",DR="Giorno della settimana",dR="Ogni",hR="ogni N giorni",zR="ogni Nesimo giorno della settimana",wR="ogni N giorno della settimana",CR="ogni N ore",IR="ogni N minuti",pR="ogni N mesi",AR="ogni N secondi",mR="ogni giorno",OR="Tutti i giorni della settimana",ER="Tutti i giorni della settimana",fR="ogni ora",xR="ogni minuto",_R="ogni mese",SR="ogni secondo",kR="A partire dal",YR="Ore",vR="Intervallo",bR="Intervallo tra",QR="CRON non valido",UR="Minuti",$R="mesi",PR="Una volta",WR="Periodo",BR="secondi",JR="Semplice",RR="Orario preciso",FR="date specifiche",GR="giorno/i specifico/i della settimana",HR="giorno specifico delle settimane",VR="orari specifici",ZR="minuti specifici",XR="mesi specifici",KR="secondi specifici",qR="Tempo",eF="Per",tF="procedura guidata",sF="tutti",iF="Astro day",rF="Astro night",oF="Alba",nF="Crepuscolo",aF="Ora d'oro",MF="Fine dell'ora d'oro",cF="Nadir",uF="Alba nautica",lF="Crepuscolo nautico",NF="Notte",LF="Fine della notte",gF="Mezzogiorno solare",jF="Alba",yF="Fine dell'alba",TF="Tramonto",DF="Inizio del tramonto",dF="a",hF="a %s",zF="ogni giorno",wF="ogni ora",CF="ogni minuto",IF="ogni mese",pF="ogni %s giorno",AF="ogni %s ore",mF="ogni %s minuti",OF="ogni %s mesi",EF="ogni %s settimane",fF="ogni %s anni",xF="ogni settimana",_F="ogni anno",SF="da %s a %s",kF="mai",YF="su %s di %s",vF="su %s e %s di",bF="in ogni data di",QF="%s",UF="%s e %s",$F="su %s",PF="su %s e %s",WF="nei finesettimana",BF="nei giorni lavorativi",JF="non verrà più eseguito, perché start è nel passato",RF="su %s",FF="da %s",GF="Eseguire da a",HF="a %s",VF="ogni",ZF="Orario preciso",XF="a partire dal",KF="Da A",qF="Intervallo di tempo",eG="invertire",tG="nessuna",sG="sopra",iG="Periodo",rG="Quotidiano",oG="Date",nG="Giorno",aG="Ogni",MG="Ogni giorno",cG="Ogni mese",uG="Ogni settimana",lG="Ogni anno",NG="Ore",LG="Minuti",gG="mese",jG="Mensile",yG="Una volta",TG="Mesi specifici",DG="Settimana",dG="Giorni della settimana",hG="Fine settimana",zG="settimanalmente",wG="giorni feriali",CG="Anno",IG="Annuale",pG="Orario preciso",AG="Tempo",mG="per",OG="Valido",EG="a partire dal",fG="per",xG="Giorno intero",_G="ogni mese",SG={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza",ra_Actions:IW,"ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:pW,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:AW,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:mW,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:OW,ra_Clear:EW,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:fW,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:xW,ra_Configure:_W,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:SW,ra_Continue:kW,ra_Copied:YW,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:vW,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:bW,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:QW,ra_Delete:UW,"ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:$W,ra_Disconnected:PW,"ra_Do not ask for next 2 hours in this session":"Non chiedere per le prossime 2 ore in questa sessione","ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit full path":"Modifica percorso completo","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore","ra_Enter the code from that page here":"Inserisci qui il codice da quella pagina",ra_Error:WW,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:BW,"ra_Filter and Data Actions":"Azioni sui filtri e sui dati","ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:JW,"ra_Get %s access":"Ottieni l'accesso %s","ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:RW,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Logout:FW,ra_Longitude:GW,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:HW,ra_Monday:VW,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:ZW,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:XW,ra_Ok:KW,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please allow popups in your browser for this page!":"Si prega di abilitare i popup nel browser per questa pagina!","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Press ENTER Key to add new item":"Premere il tasto INVIO per aggiungere un nuovo elemento","ra_Private certificate":"Certificato privato",ra_Product:qW,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Rename_Move_Copy:eB,"ra_Renew %s access":"Rinnova l'accesso %s",ra_Repeat:tB,ra_Replace:sB,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:iB,ra_Saturday:rB,ra_Save:oB,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:nB,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sessione scadrà tra %s secondi. Continuare?","ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:aB,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.","ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:MB,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:cB,ra_Timestamp:uB,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:lB,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:NB,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:LB,ra_Value:gB,ra_Version:jB,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:yB,ra_Width:TB,ra_Yes:DB,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo",ra___different__:dB,ra_aclEveryone_read_object:hB,ra_aclEveryone_read_state:zB,ra_aclEveryone_write_object:wB,ra_aclEveryone_write_state:CB,ra_aclGroup_read_object:IB,ra_aclGroup_read_state:pB,ra_aclGroup_write_object:AB,ra_aclGroup_write_state:mB,ra_aclOwner_read_object:OB,ra_aclOwner_read_state:EB,ra_aclOwner_write_object:fB,ra_aclOwner_write_state:xB,ra_buttons:_B,ra_changedFrom:SB,ra_close:kB,ra_create_boolean_state:YB,ra_create_channel:vB,ra_create_device:bB,ra_create_number_state:QB,ra_create_state:UB,ra_create_string_state:$B,ra_daysShortText:PB,ra_dow_Fr:WB,ra_dow_Mo:BB,ra_dow_Sa:JB,ra_dow_Su:RB,ra_dow_Th:FB,ra_dow_Tu:GB,ra_dow_We:HB,ra_expertMode:VB,ra_false:ZB,ra_fileType_all:XB,ra_fileType_audio:KB,ra_fileType_code:qB,ra_fileType_images:eJ,ra_fileType_txt:tJ,ra_fileType_video:sJ,"ra_fileType_video,":"video",ra_filter_customs:iJ,ra_filter_customs_without:rJ,ra_filter_func:oJ,ra_filter_id:nJ,ra_filter_name:aJ,ra_filter_role:MJ,ra_filter_room:cJ,ra_filter_type:uJ,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:lJ,ra_lastChange:NJ,ra_locally:LJ,ra_month_Apr:gJ,ra_month_Aug:jJ,ra_month_Dec:yJ,ra_month_Feb:TJ,ra_month_Jan:DJ,ra_month_Jul:dJ,ra_month_Jun:hJ,ra_month_Mai:zJ,ra_month_Mar:wJ,ra_month_Nov:CJ,ra_month_Oct:IJ,ra_month_Sep:pJ,ra_months_Apr:AJ,ra_months_Aug:mJ,ra_months_Dec:OJ,ra_months_Feb:EJ,ra_months_Jan:fJ,ra_months_Jul:xJ,ra_months_Jun:_J,ra_months_Mai:SJ,ra_months_Mar:kJ,ra_months_Nov:YJ,ra_months_Oct:vJ,ra_months_Sep:bJ,"ra_no confirm for 5 mins":"nessuna conferma per 5 minuti",ra_none:QJ,ra_object_changed_by:UJ,ra_object_changed_by_user:$J,ra_otherConfig:PJ,ra_qualityCode:WJ,ra_repeat:BJ,ra_select_folder_hint:JJ,ra_show_all:RJ,ra_state_changed_by:FJ,ra_state_changed_from:GJ,ra_timestamp:HJ,ra_tooltip_ack:VJ,ra_tooltip_comment:ZJ,ra_tooltip_copyState:XJ,ra_tooltip_ctrlForLink:KJ,ra_tooltip_customConfig:qJ,ra_tooltip_deleteObject:eR,ra_tooltip_editObject:tR,ra_tooltip_editState:sR,ra_tooltip_expire:iR,ra_tooltip_from:rR,ra_tooltip_lc:oR,ra_tooltip_quality:nR,ra_tooltip_ts:aR,ra_tooltip_user:MR,ra_tooltip_value:cR,ra_true:uR,"ra_use seconds":"usa i secondi",ra_val:lR,"ra_via internet":"attraverso internet",ra_warning_every_minute:NR,ra_warning_every_second:LR,sc_cron:gR,sc_date:jR,sc_dates:yR,sc_dow:TR,sc_dows:DR,sc_every:dR,sc_everyN_dates:hR,sc_everyN_dow:zR,sc_everyN_dows:wR,sc_everyN_hours:CR,sc_everyN_minutes:IR,sc_everyN_months:pR,sc_everyN_seconds:AR,sc_every_dates:mR,sc_every_dow:OR,sc_every_dows:ER,sc_every_hours:fR,sc_every_minutes:xR,sc_every_months:_R,sc_every_seconds:SR,sc_from:kR,sc_hours:YR,sc_interval:vR,sc_intervalBetween:bR,sc_invalid_cron:QR,sc_minutes:UR,sc_months:$R,sc_once:PR,sc_period:WR,sc_seconds:BR,sc_simple:JR,sc_specific:RR,sc_specific_dates:FR,sc_specific_dow:GR,sc_specific_dows:HR,sc_specific_hours:VR,sc_specific_minutes:ZR,sc_specific_months:XR,sc_specific_seconds:KR,sc_time:qR,sc_to:eF,sc_wizard:tF,sch_all:sF,sch_astroDay:iF,sch_astroNight:rF,sch_astro_dawn:oF,sch_astro_dusk:nF,sch_astro_goldenHour:aF,sch_astro_goldenHourEnd:MF,sch_astro_nadir:cF,sch_astro_nauticalDawn:uF,sch_astro_nauticalDusk:lF,sch_astro_night:NF,sch_astro_nightEnd:LF,sch_astro_solarNoon:gF,sch_astro_sunrise:jF,sch_astro_sunriseEnd:yF,sch_astro_sunset:TF,sch_astro_sunsetStart:DF,sch_at:dF,sch_desc_atTime:hF,sch_desc_everyDay:zF,sch_desc_everyHour:wF,sch_desc_everyMinute:CF,sch_desc_everyMonth:IF,sch_desc_everyNDay:pF,sch_desc_everyNHours:AF,sch_desc_everyNMinutes:mF,sch_desc_everyNMonths:OF,sch_desc_everyNWeeks:EF,sch_desc_everyNYears:fF,sch_desc_everyWeek:xF,sch_desc_everyYear:_F,sch_desc_intervalFromTo:SF,sch_desc_never:kF,sch_desc_onDate:YF,sch_desc_onDates:vF,sch_desc_onEveryDate:bF,sch_desc_onMonth:QF,sch_desc_onMonths:UF,sch_desc_onWeekday:$F,sch_desc_onWeekdays:PF,sch_desc_onWeekends:WF,sch_desc_onWorkdays:BF,sch_desc_onceInPast:JF,sch_desc_once_on:RF,sch_desc_validFrom:FF,sch_desc_validFromTo:GF,sch_desc_validTo:HF,sch_every:VF,sch_exactTime:ZF,sch_from:XF,sch_fromTo:KF,sch_intervalTime:qF,sch_invert:eG,sch_no_one:tG,sch_on:sG,sch_period:iG,sch_periodDaily:rG,sch_periodDates:oG,sch_periodDay:nG,sch_periodEvery:aG,sch_periodEveryDay:MG,sch_periodEveryMonth:cG,sch_periodEveryWeek:uG,sch_periodEveryYear:lG,sch_periodHours:NG,sch_periodMinutes:LG,sch_periodMonth:gG,sch_periodMonthly:jG,sch_periodOnce:yG,sch_periodSpecificMonths:TG,sch_periodWeek:DG,sch_periodWeekdays:dG,sch_periodWeekend:hG,sch_periodWeekly:zG,sch_periodWorkdays:wG,sch_periodYear:CG,sch_periodYearly:IG,sch_specificTime:pG,sch_time:AG,sch_to:mG,sch_valid:OG,sch_validFrom:EG,sch_validTo:fG,sch_wholeDay:xG,sch_yearEveryMonth:_G},kG="Comportamiento",YG="Adjuntar",vG="Cancelar",bG="Categorías",QG="Comprobado",UG="Borrar",$G="Cerca",PG="Comercial",WG="Configurar",BG="Conectado",JG="Continuar",RG="Copiado",FG="Crear",GG="Cultivo",HG="Delete",VG="Eliminar",ZG="Desechar",XG="Desconectado",KG="Error",qG="Filtrar",eH="Viernes",tH="Latitud",sH="Cerrar sesión",iH="Longitud",rH="Mensaje",oH="Lunes",nH="Nombre",aH="Objetos",MH="Okay",cH="Producto",uH="Cambiar nombre/Mover/Copiar",lH="Repetir",NH="Reemplazar",LH="Raíz",gH="Sábado",jH="Salvar",yH="Seleccionado",TH="Estados",DH="Domingo",dH="Jueves",hH="Marca de tiempo",zH="Martes",wH="Actualizar",CH="Válida hasta",IH="Valor",pH="Versión",AH="Miércoles",mH="Anchura",OH="Sí",EH="diferente",fH="Todo el mundo puede leer el objeto",xH="Todos pueden leer el estado",_H="Todos pueden escribir objetos",SH="Todos pueden escribir el estado",kH="El grupo puede leer el objeto",YH="El grupo puede leer el estado",vH="El grupo puede escribir un objeto",bH="El grupo puede escribir el estado",QH="El propietario puede leer el objeto",UH="El propietario puede leer el estado",$H="El propietario puede escribir el objeto",PH="El propietario puede escribir el estado",WH="Botones",BH="Cambiaron desde",JH="cerrar",RH="Crear estado booleano",FH="Crear canal",GH="Crear dispositivo",HH="Crear estado numérico",VH="Crear estado",ZH="Crear estado de cadena",XH="d.",KH="Fr",qH="Mes",eV="Sa",tV="Su",sV="Th",iV="Tu",rV="Nosotros",oV="Modo experto",nV="FALSO",aV="Todos los archivos",MV="Audio",cV="Código/JSON",uV="Imágenes",lV="Texto",NV="Video",LV="Configuraciones",gV="sin",jV="Función",yV="ID",TV="Nombre",DV="Papel",dV="Habitación",hV="Tipo",zV="Configuraciones inválidas",wV="Ultimo cambio",CV="en la zona",IV="Abr",pV="Ago",AV="Dic",mV="Feb",OV="Ene",EV="Jul",fV="Jun",xV="Mai",_V="Mar",SV="Nov",kV="Oct",YV="Sep",vV="Abr",bV="Ago",QV="Dic",UV="Feb",$V="Ene",PV="Jul",WV="Jun",BV="Mai",JV="Mar",RV="Nov",FV="Oct",GV="Sep",HV="ninguno",VV="Objeto cambiado por",ZV="Objeto cambiado por última vez a las",XV="Configuraciones de otro adaptador %s",KV="Código de calidad",qV="repetir",eZ='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',tZ="Mostrar todo",sZ="Estado cambiado por",iZ="Objeto cambiado de",rZ="Marca de tiempo",oZ="Bandera reconocida",nZ="Comentario",aZ="Copie el valor del estado",MZ="Mantenga presionada la tecla Cltr/⌘ para abrir el enlace",cZ="Ajustes personalizados",uZ="Eliminar objeto",lZ="Editar objeto",NZ="Edite el valor del estado",LZ="Caduca en",gZ="Desde",jZ="Último cambio",yZ="Calidad",TZ="Sello de tiempo",DZ="Usuario",dZ="Valor",hZ="VERDADERO",zZ="Valor",wZ="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",CZ="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",IZ="CRON",pZ="Fecha",AZ="fechas",mZ="Día",OZ="Día de la semana",EZ="Cada",fZ="cada N días",xZ="cada enésimo día de la semana",_Z="cada N día de la semana",SZ="cada N horas",kZ="cada N minutos",YZ="cada N meses",vZ="cada N segundos",bZ="cada día",QZ="Cada día de la semana",UZ="Cada día de la semana",$Z="cada hora",PZ="cada minuto",WZ="cada mes",BZ="cada segundo",JZ="De",RZ="Horas",FZ="Intervalo",GZ="Intervalo entre",HZ="CRON no válido",VZ="Minutos",ZZ="meses",XZ="Una vez",KZ="Período",qZ="Segundos",eX="Sencillo",tX="Tiempo específico",sX="fechas especificas",iX="día(s) específico(s) de la semana",rX="día específico de semanas",oX="horas específicas",nX="minutos específicos",aX="meses específicos",MX="segundos específicos",cX="Hora",uX="A",lX="Mago",NX="todas",LX="Día astro",gX="Noche astro",jX="Amanecer",yX="Oscuridad",TX="hora dorada",DX="Fin de la hora dorada",dX="Nadir",hX="Amanecer náutico",zX="Anochecer náutico",wX="Noche",CX="Fin de la noche",IX="Mediodía solar",pX="amanecer",AX="Fin del amanecer",mX="Puesta de sol",OX="Puesta de sol",EX="a",fX="en %s",xX="cada día",_X="cada hora",SX="cada minuto",kX="cada mes",YX="cada %s días",vX="cada %s horas",bX="cada %s minutos",QX="cada %s meses",UX="cada %s semanas",$X="cada %s años",PX="cada semana",WX="todos los años",BX="de %s a %s",JX="Nunca",RX="en %s de %s",FX="en %s y %s de",GX="en cada fecha de",HX="%s",VX="%s y %s",ZX="en %s",XX="en %s y %s",KX="en los fines de semana",qX="en días laborables",eK="ya no se ejecutará más, porque el inicio está en el pasado",tK="en %s",sK="de %s",iK="Ejecutar desde hasta",rK="a %s",oK="cada",nK="Tiempo específico",aK="de",MK="De-a",cK="Tiempo de intervalo",uK="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",lK="ninguna",NK="en",LK="Período",gK="Diario",jK="fechas",yK="Día",TK="Cada",DK="Cada día",dK="Cada mes",hK="Cada semana",zK="Todos los años",wK="Horas",CK="Minutos",IK="mes",pK="Mensual",AK="Una vez",mK="Meses específicos",OK="Semana",EK="Días laborables",fK="Fin de semana",xK="Semanal",_K="Días laborables",SK="Año",kK="Anual",YK="Tiempo específico",vK="Hora",bK="a",QK="Válido",UK="de",$K="a",PK="Todo el dia",WK="cada mes",BK={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia",ra_Actions:kG,"ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:YG,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:vG,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:bG,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:QG,ra_Clear:UG,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:$G,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:PG,ra_Configure:WG,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:BG,ra_Continue:JG,ra_Copied:RG,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:FG,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:GG,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:HG,ra_Delete:VG,"ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:ZG,ra_Disconnected:XG,"ra_Do not ask for next 2 hours in this session":"No preguntes por las siguientes 2 horas en esta sesión.","ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit full path":"Editar ruta completa","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Introduzca el código de esa página aquí",ra_Error:KG,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:qG,"ra_Filter and Data Actions":"Acciones de filtrado y datos","ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:eH,"ra_Get %s access":"Obtener %s acceso","ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:tH,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Logout:sH,ra_Longitude:iH,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:rH,ra_Monday:oH,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:nH,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:aH,ra_Ok:MH,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please allow popups in your browser for this page!":"¡Permita ventanas emergentes en su navegador para esta página!","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Press ENTER Key to add new item":"Presione la tecla ENTER para agregar un nuevo elemento","ra_Private certificate":"certificado privado",ra_Product:cH,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Rename_Move_Copy:uH,"ra_Renew %s access":"Renovar el acceso a %s",ra_Repeat:lH,ra_Replace:NH,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:LH,ra_Saturday:gH,ra_Save:jH,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:yH,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sesión expirará en %s segundos. ¿Continuar?","ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:TH,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.","ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:DH,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:dH,ra_Timestamp:hH,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:zH,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:wH,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:CH,ra_Value:IH,ra_Version:pH,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:AH,ra_Width:mH,ra_Yes:OH,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto",ra___different__:EH,ra_aclEveryone_read_object:fH,ra_aclEveryone_read_state:xH,ra_aclEveryone_write_object:_H,ra_aclEveryone_write_state:SH,ra_aclGroup_read_object:kH,ra_aclGroup_read_state:YH,ra_aclGroup_write_object:vH,ra_aclGroup_write_state:bH,ra_aclOwner_read_object:QH,ra_aclOwner_read_state:UH,ra_aclOwner_write_object:$H,ra_aclOwner_write_state:PH,ra_buttons:WH,ra_changedFrom:BH,ra_close:JH,ra_create_boolean_state:RH,ra_create_channel:FH,ra_create_device:GH,ra_create_number_state:HH,ra_create_state:VH,ra_create_string_state:ZH,ra_daysShortText:XH,ra_dow_Fr:KH,ra_dow_Mo:qH,ra_dow_Sa:eV,ra_dow_Su:tV,ra_dow_Th:sV,ra_dow_Tu:iV,ra_dow_We:rV,ra_expertMode:oV,ra_false:nV,ra_fileType_all:aV,ra_fileType_audio:MV,ra_fileType_code:cV,ra_fileType_images:uV,ra_fileType_txt:lV,ra_fileType_video:NV,"ra_fileType_video,":"Video",ra_filter_customs:LV,ra_filter_customs_without:gV,ra_filter_func:jV,ra_filter_id:yV,ra_filter_name:TV,ra_filter_role:DV,ra_filter_room:dV,ra_filter_type:hV,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:zV,ra_lastChange:wV,ra_locally:CV,ra_month_Apr:IV,ra_month_Aug:pV,ra_month_Dec:AV,ra_month_Feb:mV,ra_month_Jan:OV,ra_month_Jul:EV,ra_month_Jun:fV,ra_month_Mai:xV,ra_month_Mar:_V,ra_month_Nov:SV,ra_month_Oct:kV,ra_month_Sep:YV,ra_months_Apr:vV,ra_months_Aug:bV,ra_months_Dec:QV,ra_months_Feb:UV,ra_months_Jan:$V,ra_months_Jul:PV,ra_months_Jun:WV,ra_months_Mai:BV,ra_months_Mar:JV,ra_months_Nov:RV,ra_months_Oct:FV,ra_months_Sep:GV,"ra_no confirm for 5 mins":"Sin confirmación durante 5 minutos",ra_none:HV,ra_object_changed_by:VV,ra_object_changed_by_user:ZV,ra_otherConfig:XV,ra_qualityCode:KV,ra_repeat:qV,ra_select_folder_hint:eZ,ra_show_all:tZ,ra_state_changed_by:sZ,ra_state_changed_from:iZ,ra_timestamp:rZ,ra_tooltip_ack:oZ,ra_tooltip_comment:nZ,ra_tooltip_copyState:aZ,ra_tooltip_ctrlForLink:MZ,ra_tooltip_customConfig:cZ,ra_tooltip_deleteObject:uZ,ra_tooltip_editObject:lZ,ra_tooltip_editState:NZ,ra_tooltip_expire:LZ,ra_tooltip_from:gZ,ra_tooltip_lc:jZ,ra_tooltip_quality:yZ,ra_tooltip_ts:TZ,ra_tooltip_user:DZ,ra_tooltip_value:dZ,ra_true:hZ,"ra_use seconds":"usar segundos",ra_val:zZ,"ra_via internet":"vía Internet",ra_warning_every_minute:wZ,ra_warning_every_second:CZ,sc_cron:IZ,sc_date:pZ,sc_dates:AZ,sc_dow:mZ,sc_dows:OZ,sc_every:EZ,sc_everyN_dates:fZ,sc_everyN_dow:xZ,sc_everyN_dows:_Z,sc_everyN_hours:SZ,sc_everyN_minutes:kZ,sc_everyN_months:YZ,sc_everyN_seconds:vZ,sc_every_dates:bZ,sc_every_dow:QZ,sc_every_dows:UZ,sc_every_hours:$Z,sc_every_minutes:PZ,sc_every_months:WZ,sc_every_seconds:BZ,sc_from:JZ,sc_hours:RZ,sc_interval:FZ,sc_intervalBetween:GZ,sc_invalid_cron:HZ,sc_minutes:VZ,sc_months:ZZ,sc_once:XZ,sc_period:KZ,sc_seconds:qZ,sc_simple:eX,sc_specific:tX,sc_specific_dates:sX,sc_specific_dow:iX,sc_specific_dows:rX,sc_specific_hours:oX,sc_specific_minutes:nX,sc_specific_months:aX,sc_specific_seconds:MX,sc_time:cX,sc_to:uX,sc_wizard:lX,sch_all:NX,sch_astroDay:LX,sch_astroNight:gX,sch_astro_dawn:jX,sch_astro_dusk:yX,sch_astro_goldenHour:TX,sch_astro_goldenHourEnd:DX,sch_astro_nadir:dX,sch_astro_nauticalDawn:hX,sch_astro_nauticalDusk:zX,sch_astro_night:wX,sch_astro_nightEnd:CX,sch_astro_solarNoon:IX,sch_astro_sunrise:pX,sch_astro_sunriseEnd:AX,sch_astro_sunset:mX,sch_astro_sunsetStart:OX,sch_at:EX,sch_desc_atTime:fX,sch_desc_everyDay:xX,sch_desc_everyHour:_X,sch_desc_everyMinute:SX,sch_desc_everyMonth:kX,sch_desc_everyNDay:YX,sch_desc_everyNHours:vX,sch_desc_everyNMinutes:bX,sch_desc_everyNMonths:QX,sch_desc_everyNWeeks:UX,sch_desc_everyNYears:$X,sch_desc_everyWeek:PX,sch_desc_everyYear:WX,sch_desc_intervalFromTo:BX,sch_desc_never:JX,sch_desc_onDate:RX,sch_desc_onDates:FX,sch_desc_onEveryDate:GX,sch_desc_onMonth:HX,sch_desc_onMonths:VX,sch_desc_onWeekday:ZX,sch_desc_onWeekdays:XX,sch_desc_onWeekends:KX,sch_desc_onWorkdays:qX,sch_desc_onceInPast:eK,sch_desc_once_on:tK,sch_desc_validFrom:sK,sch_desc_validFromTo:iK,sch_desc_validTo:rK,sch_every:oK,sch_exactTime:nK,sch_from:aK,sch_fromTo:MK,sch_intervalTime:cK,sch_invert:uK,sch_no_one:lK,sch_on:NK,sch_period:LK,sch_periodDaily:gK,sch_periodDates:jK,sch_periodDay:yK,sch_periodEvery:TK,sch_periodEveryDay:DK,sch_periodEveryMonth:dK,sch_periodEveryWeek:hK,sch_periodEveryYear:zK,sch_periodHours:wK,sch_periodMinutes:CK,sch_periodMonth:IK,sch_periodMonthly:pK,sch_periodOnce:AK,sch_periodSpecificMonths:mK,sch_periodWeek:OK,sch_periodWeekdays:EK,sch_periodWeekend:fK,sch_periodWeekly:xK,sch_periodWorkdays:_K,sch_periodYear:SK,sch_periodYearly:kK,sch_specificTime:YK,sch_time:vK,sch_to:bK,sch_valid:QK,sch_validFrom:UK,sch_validTo:$K,sch_wholeDay:PK,sch_yearEveryMonth:WK},JK="Akcje",RK="Dodać",FK="Anuluj",GK="Kategorie",HK="Sprawdzony",VK="Kasować",ZK="Blisko",XK="Handlowy",KK="Konfiguruj",qK="Połączony",eq="Kontynuować",tq="Skopiowano",sq="Stwórz",iq="Przyciąć",rq="Delete",oq="Usunąć",nq="Wyrzucać",aq="Niepowiązany",Mq="Błąd",cq="Filtr",uq="Piątek",lq="Szerokość",Nq="Wyloguj",Lq="Długość geograficzna",gq="Wiadomość",jq="Poniedziałek",yq="Nazwa",Tq="Obiekty",Dq="Dobrze",dq="Produkt",hq="Zmień nazwę/Przenieś/Kopiuj",zq="Powtarzać",wq="Zastępować",Cq="Korzeń",Iq="Sobota",pq="Zapisać",Aq="Wybrany",mq="Stany",Oq="Niedziela",Eq="Czwartek",fq="Znak czasu",xq="Wtorek",_q="Aktualizacja",Sq="Obowiązuje do",kq="Wartość",Yq="Wersja",vq="Środa",bq="Szerokość",Qq="Tak",Uq="różne",$q="Każdy może czytać obiekt",Pq="Każdy może czytać stan",Wq="Każdy może pisać przedmiot",Bq="Każdy może pisać stan",Jq="Grupa może odczytać obiekt",Rq="Grupa może odczytać stan",Fq="Grupa może pisać obiekt",Gq="Grupa może pisać stan",Hq="Właściciel może czytać obiekt",Vq="Właściciel może odczytać stan",Zq="Właściciel może napisać obiekt",Xq="Właściciel może pisać stan",Kq="guziki",qq="Zmieniony z",eee="blisko",tee="Utwórz stan logiczny",see="Utwórz kanał",iee="Utwórz urządzenie",ree="Utwórz stan liczbowy",oee="Utwórz stan",nee="Utwórz stan ciągu",aee="d.",Mee="Ks",cee="Mo",uee="Sa",lee="Su",Nee="Th",Lee="Tu",gee="My",jee="Tryb ekspercki",yee="FAŁSZ",Tee="Wszystkie pliki",Dee="Audio",dee="Kod/JSON",hee="Obrazy",zee="Tekst",wee="Wideo",Cee="Ustawienia",Iee="bez",pee="Funkcjonować",Aee="ID",mee="Imię",Oee="Rola",Eee="Sala",fee="Rodzaj",xee="Nieprawidłowe ustawienia",_ee="Ostatnia zmiana",See="lokalnie",kee="kwiecień",Yee="sierpień",vee="grudzień",bee="luty",Qee="styczeń",Uee="lipiec",$ee="czerwiec",Pee="Mai",Wee="Zniszczyć",Bee="listopad",Jee="październik",Ree="wrzesień",Fee="kwiecień",Gee="sierpień",Hee="grudzień",Vee="luty",Zee="styczeń",Xee="lipiec",Kee="czerwiec",qee="Mai",ete="Zniszczyć",tte="listopad",ste="październik",ite="wrzesień",rte="Żaden",ote="Obiekt zmieniony przez",nte="Obiekt ostatnio zmieniony o godz",ate="Ustawienia z innego adaptera %s",Mte="Kod jakości",cte="powtarzać",ute="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",lte="Pokaż wszystko",Nte="Stan zmieniony przez",Lte="Obiekt zmieniony z",gte="Znak czasu",jte="Potwierdzon",yte="Komentarz",Tte="Skopiuj wartość stanu",Dte="Przytrzymaj klawisz CTRL/⌘, aby otworzyć link",dte="Własne ustawienia",hte="Usuń obiekt",zte="Edytuj obiekt",wte="Edytuj wartość stanu",Cte="Wygasa za",Ite="Z",pte="Ostatnia zmiana",Ate="Jakość",mte="Znak czasu",Ote="Użytkownik",Ete="Wartość",fte="PRAWDA",xte="Wartość",_te="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Ste="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",kte="CRON",Yte="Data",vte="Daktyle",bte="Dzień",Qte="Dzień tygodnia",Ute="Każdy",$te="co N dni",Pte="w każdy N-ty dzień tygodnia",Wte="co N dnia tygodnia",Bte="co N godzin",Jte="co N minut",Rte="co N miesięcy",Fte="co N sekund",Gte="codziennie",Hte="każdy dzień tygodnia",Vte="każdy dzień tygodnia",Zte="co godzinę",Xte="każda minuta",Kte="każdego miesiąca",qte="każda sekunda",ese="Od",tse="godziny",sse="Interwał",ise="Interwał między",rse="Nieprawidłowy CRON",ose="Minuty",nse="miesięcy",ase="Pewnego razu",Mse="Kropka",cse="sekundy",use="Prosty",lse="Określony czas",Nse="konkretne daty",Lse="określone dni tygodnia",gse="określony dzień tygodni",jse="określone godziny",yse="określone minuty",Tse="określone miesiące",Dse="określone sekundy",dse="Czas",hse="Do",zse="Czarodziej",wse="wszystko",Cse="Dzień Astro",Ise="Noc Astro",pse="Świt",Ase="Zmierzch",mse="złota godzina",Ose="Koniec złotej godziny",Ese="Nadir",fse="Morski świt",xse="Morski zmierzch",_se="Noc",Sse="Koniec nocy",kse="Południe słoneczne",Yse="wschód słońca",vse="Koniec wschodu słońca",bse="Zachód słońca",Qse="Początek zachodu słońca",Use="w",$se="na %s",Pse="codziennie",Wse="co godzinę",Bse="każda minuta",Jse="każdego miesiąca",Rse="każdego dnia %s",Fse="co %s godzin",Gse="co %s minut",Hse="co %s miesięcy",Vse="co %s tygodni",Zse="co %s lat",Xse="co tydzień",Kse="każdego roku",qse="od %s do %s",eie="nigdy",tie="na %s z %s",sie="na %s i %s z",iie="w każdą datę",rie="%s",oie="%s i %s",nie="na %s",aie="na %s i %s",Mie="w weekendy",cie="w dni robocze",uie="nie będzie już wykonywany, ponieważ start jest w przeszłości",lie="na %s",Nie="z %s",Lie="Wykonaj od do",gie="do %s",jie="każdy",yie="Określony czas",Tie="od",Die="Od-do",die="Czas przerwy",hie="odwracać",zie="Żaden",wie="na",Cie="Kropka",Iie="Codziennie",pie="Daktyle",Aie="Dzień",mie="Każdy",Oie="Codziennie",Eie="Każdego miesiąca",fie="Co tydzień",xie="Każdego roku",_ie="godziny",Sie="Minuty",kie="miesiąc",Yie="Miesięczny",vie="Pewnego razu",bie="Określone miesiące",Qie="Tydzień",Uie="Dni powszednie",$ie="Weekend",Pie="Co tydzień",Wie="Dni robocze",Bie="Rok",Jie="Rocznie",Rie="Określony czas",Fie="Czas",Gie="do",Hie="Ważny",Vie="od",Zie="do",Xie="Cały dzień",Kie="każdego miesiąca",qie={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję",ra_Actions:JK,"ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:RK,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:FK,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:GK,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:HK,ra_Clear:VK,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:ZK,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:XK,ra_Configure:KK,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:qK,ra_Continue:eq,ra_Copied:tq,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:sq,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:iq,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:rq,ra_Delete:oq,"ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:nq,ra_Disconnected:aq,"ra_Do not ask for next 2 hours in this session":"Nie proś o kolejne 2 godziny w tej sesji","ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit full path":"Edytuj pełną ścieżkę","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość","ra_Enter the code from that page here":"Wpisz kod z tej strony tutaj",ra_Error:Mq,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:cq,"ra_Filter and Data Actions":"Akcje filtrów i danych","ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:uq,"ra_Get %s access":"Uzyskaj dostęp %s","ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:lq,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Logout:Nq,ra_Longitude:Lq,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:gq,ra_Monday:jq,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:yq,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:Tq,ra_Ok:Dq,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please allow popups in your browser for this page!":"Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Press ENTER Key to add new item":"Naciśnij klawisz ENTER, aby dodać nowy element","ra_Private certificate":"Prywatny certyfikat",ra_Product:dq,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Rename_Move_Copy:hq,"ra_Renew %s access":"Odnów dostęp %s",ra_Repeat:zq,ra_Replace:wq,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:Cq,ra_Saturday:Iq,ra_Save:pq,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:Aq,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Session will expire in %s seconds. Continue?":"Sesja wygaśnie za %s sekund. Kontynuować?","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:mq,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.","ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:Oq,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:Eq,ra_Timestamp:fq,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:xq,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:_q,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Sq,ra_Value:kq,ra_Version:Yq,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:vq,ra_Width:bq,ra_Yes:Qq,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst",ra___different__:Uq,ra_aclEveryone_read_object:$q,ra_aclEveryone_read_state:Pq,ra_aclEveryone_write_object:Wq,ra_aclEveryone_write_state:Bq,ra_aclGroup_read_object:Jq,ra_aclGroup_read_state:Rq,ra_aclGroup_write_object:Fq,ra_aclGroup_write_state:Gq,ra_aclOwner_read_object:Hq,ra_aclOwner_read_state:Vq,ra_aclOwner_write_object:Zq,ra_aclOwner_write_state:Xq,ra_buttons:Kq,ra_changedFrom:qq,ra_close:eee,ra_create_boolean_state:tee,ra_create_channel:see,ra_create_device:iee,ra_create_number_state:ree,ra_create_state:oee,ra_create_string_state:nee,ra_daysShortText:aee,ra_dow_Fr:Mee,ra_dow_Mo:cee,ra_dow_Sa:uee,ra_dow_Su:lee,ra_dow_Th:Nee,ra_dow_Tu:Lee,ra_dow_We:gee,ra_expertMode:jee,ra_false:yee,ra_fileType_all:Tee,ra_fileType_audio:Dee,ra_fileType_code:dee,ra_fileType_images:hee,ra_fileType_txt:zee,ra_fileType_video:wee,"ra_fileType_video,":"Wideo",ra_filter_customs:Cee,ra_filter_customs_without:Iee,ra_filter_func:pee,ra_filter_id:Aee,ra_filter_name:mee,ra_filter_role:Oee,ra_filter_room:Eee,ra_filter_type:fee,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:xee,ra_lastChange:_ee,ra_locally:See,ra_month_Apr:kee,ra_month_Aug:Yee,ra_month_Dec:vee,ra_month_Feb:bee,ra_month_Jan:Qee,ra_month_Jul:Uee,ra_month_Jun:$ee,ra_month_Mai:Pee,ra_month_Mar:Wee,ra_month_Nov:Bee,ra_month_Oct:Jee,ra_month_Sep:Ree,ra_months_Apr:Fee,ra_months_Aug:Gee,ra_months_Dec:Hee,ra_months_Feb:Vee,ra_months_Jan:Zee,ra_months_Jul:Xee,ra_months_Jun:Kee,ra_months_Mai:qee,ra_months_Mar:ete,ra_months_Nov:tte,ra_months_Oct:ste,ra_months_Sep:ite,"ra_no confirm for 5 mins":"brak potwierdzenia przez 5 minut",ra_none:rte,ra_object_changed_by:ote,ra_object_changed_by_user:nte,ra_otherConfig:ate,ra_qualityCode:Mte,ra_repeat:cte,ra_select_folder_hint:ute,ra_show_all:lte,ra_state_changed_by:Nte,ra_state_changed_from:Lte,ra_timestamp:gte,ra_tooltip_ack:jte,ra_tooltip_comment:yte,ra_tooltip_copyState:Tte,ra_tooltip_ctrlForLink:Dte,ra_tooltip_customConfig:dte,ra_tooltip_deleteObject:hte,ra_tooltip_editObject:zte,ra_tooltip_editState:wte,ra_tooltip_expire:Cte,ra_tooltip_from:Ite,ra_tooltip_lc:pte,ra_tooltip_quality:Ate,ra_tooltip_ts:mte,ra_tooltip_user:Ote,ra_tooltip_value:Ete,ra_true:fte,"ra_use seconds":"użyj sekund",ra_val:xte,"ra_via internet":"przez internet",ra_warning_every_minute:_te,ra_warning_every_second:Ste,sc_cron:kte,sc_date:Yte,sc_dates:vte,sc_dow:bte,sc_dows:Qte,sc_every:Ute,sc_everyN_dates:$te,sc_everyN_dow:Pte,sc_everyN_dows:Wte,sc_everyN_hours:Bte,sc_everyN_minutes:Jte,sc_everyN_months:Rte,sc_everyN_seconds:Fte,sc_every_dates:Gte,sc_every_dow:Hte,sc_every_dows:Vte,sc_every_hours:Zte,sc_every_minutes:Xte,sc_every_months:Kte,sc_every_seconds:qte,sc_from:ese,sc_hours:tse,sc_interval:sse,sc_intervalBetween:ise,sc_invalid_cron:rse,sc_minutes:ose,sc_months:nse,sc_once:ase,sc_period:Mse,sc_seconds:cse,sc_simple:use,sc_specific:lse,sc_specific_dates:Nse,sc_specific_dow:Lse,sc_specific_dows:gse,sc_specific_hours:jse,sc_specific_minutes:yse,sc_specific_months:Tse,sc_specific_seconds:Dse,sc_time:dse,sc_to:hse,sc_wizard:zse,sch_all:wse,sch_astroDay:Cse,sch_astroNight:Ise,sch_astro_dawn:pse,sch_astro_dusk:Ase,sch_astro_goldenHour:mse,sch_astro_goldenHourEnd:Ose,sch_astro_nadir:Ese,sch_astro_nauticalDawn:fse,sch_astro_nauticalDusk:xse,sch_astro_night:_se,sch_astro_nightEnd:Sse,sch_astro_solarNoon:kse,sch_astro_sunrise:Yse,sch_astro_sunriseEnd:vse,sch_astro_sunset:bse,sch_astro_sunsetStart:Qse,sch_at:Use,sch_desc_atTime:$se,sch_desc_everyDay:Pse,sch_desc_everyHour:Wse,sch_desc_everyMinute:Bse,sch_desc_everyMonth:Jse,sch_desc_everyNDay:Rse,sch_desc_everyNHours:Fse,sch_desc_everyNMinutes:Gse,sch_desc_everyNMonths:Hse,sch_desc_everyNWeeks:Vse,sch_desc_everyNYears:Zse,sch_desc_everyWeek:Xse,sch_desc_everyYear:Kse,sch_desc_intervalFromTo:qse,sch_desc_never:eie,sch_desc_onDate:tie,sch_desc_onDates:sie,sch_desc_onEveryDate:iie,sch_desc_onMonth:rie,sch_desc_onMonths:oie,sch_desc_onWeekday:nie,sch_desc_onWeekdays:aie,sch_desc_onWeekends:Mie,sch_desc_onWorkdays:cie,sch_desc_onceInPast:uie,sch_desc_once_on:lie,sch_desc_validFrom:Nie,sch_desc_validFromTo:Lie,sch_desc_validTo:gie,sch_every:jie,sch_exactTime:yie,sch_from:Tie,sch_fromTo:Die,sch_intervalTime:die,sch_invert:hie,sch_no_one:zie,sch_on:wie,sch_period:Cie,sch_periodDaily:Iie,sch_periodDates:pie,sch_periodDay:Aie,sch_periodEvery:mie,sch_periodEveryDay:Oie,sch_periodEveryMonth:Eie,sch_periodEveryWeek:fie,sch_periodEveryYear:xie,sch_periodHours:_ie,sch_periodMinutes:Sie,sch_periodMonth:kie,sch_periodMonthly:Yie,sch_periodOnce:vie,sch_periodSpecificMonths:bie,sch_periodWeek:Qie,sch_periodWeekdays:Uie,sch_periodWeekend:$ie,sch_periodWeekly:Pie,sch_periodWorkdays:Wie,sch_periodYear:Bie,sch_periodYearly:Jie,sch_specificTime:Rie,sch_time:Fie,sch_to:Gie,sch_valid:Hie,sch_validFrom:Vie,sch_validTo:Zie,sch_wholeDay:Xie,sch_yearEveryMonth:Kie},ere="Дії",tre="Додайте",sre="Скасувати",ire="Категорії",rre="Перевірено",ore="Видалити",nre="Закрити",are="Комерційний",Mre="Налаштувати",cre="Підключено",ure="Продовжити",lre="Скопійовано",Nre="Створити",Lre="Урожай",gre="Delete",jre="Видалити",yre="Відкинути",Tre="Відключено",Dre="Помилка",dre="фільтр",hre="П'ятниця",zre="Широта",wre="Вийти",Cre="Довгота",Ire="повідомлення",pre="понеділок",Are="Ім'я",mre="Об'єкти",Ore="В порядку",Ere="Продукт",fre="Перейменувати/Перемістити/Копіювати",xre="Повторіть",_re="Замінити",Sre="Корінь",kre="Субота",Yre="зберегти",vre="Вибране",bre="держави",Qre="неділя",Ure="четвер",$re="Мітка часу",Pre="вівторок",Wre="оновлення",Bre="Дійсний до",Jre="Значення",Rre="Версія",Fre="Середа",Gre="Ширина",Hre="Так",Vre="інший",Zre="Кожен може читати об'єкт",Xre="Кожен може читати стан",Kre="Кожен може написати об'єкт",qre="Кожен може написати стан",eoe="Група може читати об'єкт",toe="Група може читати стан",soe="Група може писати об'єкт",ioe="Група може писати стан",roe="Власник може читати об'єкт",ooe="Власник може читати стан",noe="Власник може написати об'єкт",aoe="Власник може написати стан",Moe="кнопки",coe="Змінено з",uoe="закрити",loe="Створіть логічний стан",Noe="Створити канал",Loe="Створити пристрій",goe="Створити номерний стан",joe="Створити состояние",yoe="Створити рядковий стан",Toe="днів",Doe="О",doe="пн",hoe="Sa",zoe="Нд",woe="чт",Coe="вт",Ioe="ми",poe="Експертний режим",Aoe="НЕПРАВДА",moe="Всі файли",Ooe="Аудіо",Eoe="Код/JSON",foe="Зображення",xoe="текст",_oe="відео",Soe="Налаштування",koe="без",Yoe="функція",voe="ID",boe="Ім'я",Qoe="Роль",Uoe="Кімната",$oe="Тип",Poe="Недійсні налаштування",Woe="Остання зміна",Boe="локально",Joe="квіт",Roe="серп",Foe="груд",Goe="лютий",Hoe="січня",Voe="лип",Zoe="черв",Xoe="травень",Koe="березень",qoe="Листопад",ene="жовт",tne="вер",sne="квіт",ine="серп",rne="груд",one="лютий",nne="січня",ane="лип",Mne="черв",cne="травень",une="березень",lne="Листопад",Nne="жовт",Lne="вер",gne="немає",jne="Об'єкт змінено",yne="Об'єкт востаннє змінено о",Tne="Налаштування з іншого адаптера %s",Dne="Код якості",dne="повторити",hne="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",zne="Показати все",wne="Стан змінено на",Cne="Об'єкт змінено з",Ine="Мітка часу",pne="Визнано",Ane="коментар",mne="Скопіюйте значення стану",One="Утримуйте клавішу Cltr/⌘, щоб відкрити посилання",Ene="Спеціальні налаштування",fne="Видалити об'єкт",xne="Редагувати об'єкт",_ne="Відредагуйте значення стану",Sne="Термін дії закінчується через",kne="Від",Yne="Востаннє змінено",vne="якість",bne="Позначка часу",Qne="Користувач",Une="Значення",$ne="ПРАВДА",Pne="Значення",Wne="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",Bne="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Jne="CRON",Rne="Дата",Fne="дати",Gne="День",Hne="День тижня",Vne="кожен",Zne="кожні N днів",Xne="кожен N-й день тижня",Kne="кожні N днів тижня",qne="кожні N годин",eae="кожні N хвилин",tae="кожні N місяців",sae="кожні N секунд",iae="кожен день",rae="кожен день тижня",oae="кожен день тижня",nae="щогодини",aae="кожну хвилину",Mae="щомісяця",cae="кожна секунда",uae="Від",lae="години",Nae="Інтервал",Lae="Інтервал між",gae="Недійсний CRON",jae="хвилин",yae="місяців",Tae="Один раз",Dae="Крапка",dae="секунд",hae="просто",zae="Конкретний час",wae="конкретні дати",Cae="конкретний день (дні) тижня",Iae="конкретний день тижня",pae="конкретні години",Aae="конкретні хвилини",mae="конкретні місяці",Oae="конкретні секунди",Eae="час",fae="до",xae="майстер",_ae="все",Sae="Астродень",kae="Астро ніч",Yae="Світанок",vae="Сутінки",bae="Золота година",Qae="Кінець золотої години",Uae="Надір",$ae="Морський світанок",Pae="Морські сутінки",Wae="ніч",Bae="Кінець ночі",Jae="Сонячний полудень",Rae="Схід сонця",Fae="Кінець сходу сонця",Gae="Захід сонця",Hae="Початок заходу сонця",Vae="в",Zae="в %s",Xae="кожен день",Kae="щогодини",qae="кожну хвилину",eMe="щомісяця",tMe="кожен %s день",sMe="кожні %s годин",iMe="кожні %s хвилин",rMe="кожні %s місяців",oMe="кожні %s тижнів",nMe="кожні %s років",aMe="щотижня",MMe="щороку",cMe="від %s до %s",uMe="ніколи",lMe="на %s з %s",NMe="на %s і %s з",LMe="на кожну дату",gMe="%s",jMe="%s і %s",yMe="на %s",TMe="на %s і %s",DMe="на вихідних",dMe="в робочі дні",hMe="більше не виконуватиметься, оскільки запуск у минулому",zMe="на %s",wMe="від %s",CMe="Виконати від до",IMe="до %s",pMe="кожен",AMe="Конкретний час",mMe="від",OMe="Від до",EMe="Час інтервалу",fMe="інвертувати",xMe="немає",_Me="на",SMe="Крапка",kMe="Щодня",YMe="дати",vMe="День",bMe="кожен",QMe="Кожен день",UMe="Щомісяця",$Me="Щотижня",PMe="Щороку",WMe="години",BMe="хвилин",JMe="місяць",RMe="Щомісяця",FMe="Один раз",GMe="Конкретні місяці",HMe="тиждень",VMe="будні",ZMe="Вихідні",XMe="Щотижня",KMe="робочі дні",qMe="рік",ece="щорічно",tce="Конкретний час",sce="час",ice="до",rce="Дійсний",oce="від",nce="до",ace="Цілий день",Mce="щомісяця",cce={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію",ra_Actions:ere,"ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:tre,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:sre,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:ire,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:rre,ra_Clear:ore,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:nre,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:are,ra_Configure:Mre,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:cre,ra_Continue:ure,ra_Copied:lre,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:Nre,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:Lre,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:gre,ra_Delete:jre,"ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:yre,ra_Disconnected:Tre,"ra_Do not ask for next 2 hours in this session":"Не запитуйте про наступні 2 години цього сеансу","ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit full path":"Редагувати повний шлях","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення","ra_Enter the code from that page here":"Введіть тут код з цієї сторінки",ra_Error:Dre,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:dre,"ra_Filter and Data Actions":"Фільтр і дії з даними","ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:hre,"ra_Get %s access":"Отримайте доступ %s","ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:zre,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Logout:wre,ra_Longitude:Cre,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:Ire,ra_Monday:pre,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:Are,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:mre,ra_Ok:Ore,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please allow popups in your browser for this page!":"Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Press ENTER Key to add new item":"Натисніть клавішу ENTER, щоб додати новий елемент","ra_Private certificate":"Приватний сертифікат",ra_Product:Ere,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Rename_Move_Copy:fre,"ra_Renew %s access":"Поновити доступ %s",ra_Repeat:xre,ra_Replace:_re,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:Sre,ra_Saturday:kre,ra_Save:Yre,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:vre,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Session will expire in %s seconds. Continue?":"Сеанс закінчиться через %s секунд. Продовжити?","ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:bre,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.","ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:Qre,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Ure,ra_Timestamp:$re,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:Pre,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Wre,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Bre,ra_Value:Jre,ra_Version:Rre,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:Fre,ra_Width:Gre,ra_Yes:Hre,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст",ra___different__:Vre,ra_aclEveryone_read_object:Zre,ra_aclEveryone_read_state:Xre,ra_aclEveryone_write_object:Kre,ra_aclEveryone_write_state:qre,ra_aclGroup_read_object:eoe,ra_aclGroup_read_state:toe,ra_aclGroup_write_object:soe,ra_aclGroup_write_state:ioe,ra_aclOwner_read_object:roe,ra_aclOwner_read_state:ooe,ra_aclOwner_write_object:noe,ra_aclOwner_write_state:aoe,ra_buttons:Moe,ra_changedFrom:coe,ra_close:uoe,ra_create_boolean_state:loe,ra_create_channel:Noe,ra_create_device:Loe,ra_create_number_state:goe,ra_create_state:joe,ra_create_string_state:yoe,ra_daysShortText:Toe,ra_dow_Fr:Doe,ra_dow_Mo:doe,ra_dow_Sa:hoe,ra_dow_Su:zoe,ra_dow_Th:woe,ra_dow_Tu:Coe,ra_dow_We:Ioe,ra_expertMode:poe,ra_false:Aoe,ra_fileType_all:moe,ra_fileType_audio:Ooe,ra_fileType_code:Eoe,ra_fileType_images:foe,ra_fileType_txt:xoe,ra_fileType_video:_oe,"ra_fileType_video,":"відео",ra_filter_customs:Soe,ra_filter_customs_without:koe,ra_filter_func:Yoe,ra_filter_id:voe,ra_filter_name:boe,ra_filter_role:Qoe,ra_filter_room:Uoe,ra_filter_type:$oe,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Poe,ra_lastChange:Woe,ra_locally:Boe,ra_month_Apr:Joe,ra_month_Aug:Roe,ra_month_Dec:Foe,ra_month_Feb:Goe,ra_month_Jan:Hoe,ra_month_Jul:Voe,ra_month_Jun:Zoe,ra_month_Mai:Xoe,ra_month_Mar:Koe,ra_month_Nov:qoe,ra_month_Oct:ene,ra_month_Sep:tne,ra_months_Apr:sne,ra_months_Aug:ine,ra_months_Dec:rne,ra_months_Feb:one,ra_months_Jan:nne,ra_months_Jul:ane,ra_months_Jun:Mne,ra_months_Mai:cne,ra_months_Mar:une,ra_months_Nov:lne,ra_months_Oct:Nne,ra_months_Sep:Lne,"ra_no confirm for 5 mins":"без підтвердження протягом 5 хв",ra_none:gne,ra_object_changed_by:jne,ra_object_changed_by_user:yne,ra_otherConfig:Tne,ra_qualityCode:Dne,ra_repeat:dne,ra_select_folder_hint:hne,ra_show_all:zne,ra_state_changed_by:wne,ra_state_changed_from:Cne,ra_timestamp:Ine,ra_tooltip_ack:pne,ra_tooltip_comment:Ane,ra_tooltip_copyState:mne,ra_tooltip_ctrlForLink:One,ra_tooltip_customConfig:Ene,ra_tooltip_deleteObject:fne,ra_tooltip_editObject:xne,ra_tooltip_editState:_ne,ra_tooltip_expire:Sne,ra_tooltip_from:kne,ra_tooltip_lc:Yne,ra_tooltip_quality:vne,ra_tooltip_ts:bne,ra_tooltip_user:Qne,ra_tooltip_value:Une,ra_true:$ne,"ra_use seconds":"використовуйте секунди",ra_val:Pne,"ra_via internet":"через інтернет",ra_warning_every_minute:Wne,ra_warning_every_second:Bne,sc_cron:Jne,sc_date:Rne,sc_dates:Fne,sc_dow:Gne,sc_dows:Hne,sc_every:Vne,sc_everyN_dates:Zne,sc_everyN_dow:Xne,sc_everyN_dows:Kne,sc_everyN_hours:qne,sc_everyN_minutes:eae,sc_everyN_months:tae,sc_everyN_seconds:sae,sc_every_dates:iae,sc_every_dow:rae,sc_every_dows:oae,sc_every_hours:nae,sc_every_minutes:aae,sc_every_months:Mae,sc_every_seconds:cae,sc_from:uae,sc_hours:lae,sc_interval:Nae,sc_intervalBetween:Lae,sc_invalid_cron:gae,sc_minutes:jae,sc_months:yae,sc_once:Tae,sc_period:Dae,sc_seconds:dae,sc_simple:hae,sc_specific:zae,sc_specific_dates:wae,sc_specific_dow:Cae,sc_specific_dows:Iae,sc_specific_hours:pae,sc_specific_minutes:Aae,sc_specific_months:mae,sc_specific_seconds:Oae,sc_time:Eae,sc_to:fae,sc_wizard:xae,sch_all:_ae,sch_astroDay:Sae,sch_astroNight:kae,sch_astro_dawn:Yae,sch_astro_dusk:vae,sch_astro_goldenHour:bae,sch_astro_goldenHourEnd:Qae,sch_astro_nadir:Uae,sch_astro_nauticalDawn:$ae,sch_astro_nauticalDusk:Pae,sch_astro_night:Wae,sch_astro_nightEnd:Bae,sch_astro_solarNoon:Jae,sch_astro_sunrise:Rae,sch_astro_sunriseEnd:Fae,sch_astro_sunset:Gae,sch_astro_sunsetStart:Hae,sch_at:Vae,sch_desc_atTime:Zae,sch_desc_everyDay:Xae,sch_desc_everyHour:Kae,sch_desc_everyMinute:qae,sch_desc_everyMonth:eMe,sch_desc_everyNDay:tMe,sch_desc_everyNHours:sMe,sch_desc_everyNMinutes:iMe,sch_desc_everyNMonths:rMe,sch_desc_everyNWeeks:oMe,sch_desc_everyNYears:nMe,sch_desc_everyWeek:aMe,sch_desc_everyYear:MMe,sch_desc_intervalFromTo:cMe,sch_desc_never:uMe,sch_desc_onDate:lMe,sch_desc_onDates:NMe,sch_desc_onEveryDate:LMe,sch_desc_onMonth:gMe,sch_desc_onMonths:jMe,sch_desc_onWeekday:yMe,sch_desc_onWeekdays:TMe,sch_desc_onWeekends:DMe,sch_desc_onWorkdays:dMe,sch_desc_onceInPast:hMe,sch_desc_once_on:zMe,sch_desc_validFrom:wMe,sch_desc_validFromTo:CMe,sch_desc_validTo:IMe,sch_every:pMe,sch_exactTime:AMe,sch_from:mMe,sch_fromTo:OMe,sch_intervalTime:EMe,sch_invert:fMe,sch_no_one:xMe,sch_on:_Me,sch_period:SMe,sch_periodDaily:kMe,sch_periodDates:YMe,sch_periodDay:vMe,sch_periodEvery:bMe,sch_periodEveryDay:QMe,sch_periodEveryMonth:UMe,sch_periodEveryWeek:$Me,sch_periodEveryYear:PMe,sch_periodHours:WMe,sch_periodMinutes:BMe,sch_periodMonth:JMe,sch_periodMonthly:RMe,sch_periodOnce:FMe,sch_periodSpecificMonths:GMe,sch_periodWeek:HMe,sch_periodWeekdays:VMe,sch_periodWeekend:ZMe,sch_periodWeekly:XMe,sch_periodWorkdays:KMe,sch_periodYear:qMe,sch_periodYearly:ece,sch_specificTime:tce,sch_time:sce,sch_to:ice,sch_valid:rce,sch_validFrom:oce,sch_validTo:nce,sch_wholeDay:ace,sch_yearEveryMonth:Mce},uce="操作",lce="附加",Nce="取消",Lce="类别",gce="勾选",jce="删除",yce="关",Tce="商业的",Dce="配置",dce="连接的",hce="继续",zce="复制的",wce="创建",Cce="庄稼",Ice="Delete",pce="删除",Ace="丢弃",mce="断开连接",Oce="错误",Ece="筛选",fce="星期五",xce="纬度",_ce="登出",Sce="经度",kce="信息",Yce="周一",vce="姓名",bce="对象",Qce="好",Uce="产品",$ce="重命名/移动/复制",Pce="重复",Wce="代替",Bce="根",Jce="周六",Rce="保存",Fce="已选",Gce="状态",Hce="星期日",Vce="周四",Zce="时间戳记",Xce="周二",Kce="更新资料",qce="有效期至",eue="值",tue="版本",sue="周三",iue="宽度",rue="是的",oue="不同的",nue="每个人都可以阅读对象",aue="每个人都可以阅读状态",Mue="每个人都可以写对象",cue="每个人都可以写状态",uue="组可以读取对象",lue="群组可以读取状态",Nue="组可以写对象",Lue="组可以写状态",gue="所有者可以读取对象",jue="所有者可以读取状态",yue="所有者可以写对象",Tue="所有者可以写状态",Due="纽扣",due="更改为",hue="关闭",zue="创建布尔状态",wue="创建频道",Cue="创建设备",Iue="创建号码状态",pue="创建状态",Aue="创建字符串状态",mue="天",Oue="r",Eue="莫",fue="萨",xue="苏",_ue="Th",Sue="Tu",kue="我们",Yue="专家模式",vue="错误的",bue="所有文件",Que="声音的",Uue="代码/JSON",$ue="图片",Pue="文本",Wue="视频",Bue="设定值",Jue="没有",Rue="功能",Fue="ID",Gue="名称",Hue="角色",Vue="房间",Zue="类型",Xue="无效的设定",Kue="最后一次变更",que="本地",ele="4月",tle="八月",sle="十二月",ile="二月",rle="简",ole="七月",nle="君",ale="迈",Mle="三月",cle="十一月",ule="十月",lle="九月",Nle="4月",Lle="八月",gle="十二月",jle="二月",yle="简",Tle="七月",Dle="君",dle="迈",hle="三月",zle="十一月",wle="十月",Cle="九月",Ile="没有任何",ple="物件变更者",Ale="对象上次更改时间为",mle="来自其他适配器%s的设置",Ole="质量代码",Ele="重复",fle="要选择文件夹,只需按住“shift”键单击文件夹即可。",xle="显示全部",_le="状态由",Sle="对象已从更改",kle="时间戳记",Yle="致谢国旗",vle="评论",ble="复制状态值",Qle="按住 Cltr/⌘ 键打开链接",Ule="自定义设置",$le="删除物件",Ple="编辑物件",Wle="编辑状态值",Ble="有效期:",Jle="从",Rle="最后改变了",Fle="质量",Gle="时间戳",Hle="用户",Vle="值",Zle="真的",Xle="值",Kle="警告:CRON 作业将在指定期间内每分钟运行一次!",qle="警告:CRON 作业将在指定期间内每秒运行一次!",eNe="周期任务",tNe="日期",sNe="日",iNe="天",rNe="星期",oNe="每",nNe="每N天",aNe="每周的第 N 天",MNe="每周N天",cNe="每N小时一次",uNe="每N分钟",lNe="每N个月",NNe="每N秒",LNe="每天",gNe="一周的每一天",jNe="一周的每一天",yNe="每小时",TNe="每分钟",DNe="每月",dNe="每秒",hNe="从",zNe="小时",wNe="间隔",CNe="间隔时间",INe="无效的 CRON",pNe="分钟",ANe="月",mNe="一次",ONe="周期",ENe="秒",fNe="简单模式",xNe="特定的时间",_Ne="特定的日子",SNe="一周中的特定日子",kNe="特定的一周",YNe="特定的小时",vNe="特定的分钟",bNe="特定的月份",QNe="特定的描述",UNe="时间",$Ne="至",PNe="向导模式",WNe="全选",BNe="天文白天",JNe="天文夜晚",RNe="黎明",FNe="黄昏",GNe="黄金时段",HNe="黄金时段结束",VNe="天底",ZNe="航海黎明",XNe="航海黄昏",KNe="夜晚",qNe="夜晚结束",e0e="正午",t0e="日出",s0e="日出结束",i0e="日落",r0e="日落开始",o0e="在",n0e="的%s",a0e="每天",M0e="每小时",c0e="每分钟",u0e="每月",l0e="每%s天",N0e="每%s小时",L0e="每%s分钟",g0e="每%s月",j0e="每%s周",y0e="每%s年",T0e="每周",D0e="每年",d0e="从%s到%s",h0e="决不",z0e="在%s的%s上",w0e="在%s和%s上",C0e="在每天",I0e="%s",p0e="%s和%s",A0e="在%s上",m0e="在%s和%s上",O0e="在周末",E0e="在工作日",f0e="将不再执行,因为起始时间已经是过去的时间了。",x0e="在%s上",_0e="来自%s",S0e="从执行到",k0e="到%s",Y0e="每",v0e="特定的时间",b0e="从",Q0e="从到",U0e="间隔时间",$0e="倒置",P0e="取消全选",W0e="的",B0e="周期",J0e="每天",R0e="日期",F0e="天",G0e="每",H0e="每天",V0e="每月",Z0e="每周",X0e="每年",K0e="小时",q0e="分钟",e4e="月",t4e="每月一次",s4e="一次",i4e="特定的月份",r4e="周",o4e="工作日",n4e="周末",a4e="每周",M4e="工作日",c4e="年",u4e="每年",l4e="特定的时间",N4e="时间",L4e="至",g4e="生效",j4e="从",y4e="至",T4e="一整天",D4e="每月",d4e={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可",ra_Actions:uce,"ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:lce,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:Nce,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:Lce,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:gce,ra_Clear:jce,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:yce,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Tce,ra_Configure:Dce,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:dce,ra_Continue:hce,ra_Copied:zce,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:wce,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:Cce,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:Ice,ra_Delete:pce,"ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:Ace,ra_Disconnected:mce,"ra_Do not ask for next 2 hours in this session":"本次会话中不要询问接下来的 2 个小时","ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit full path":"编辑完整路径","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值","ra_Enter the code from that page here":"在此处输入该页面的代码",ra_Error:Oce,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:Ece,"ra_Filter and Data Actions":"过滤和数据操作","ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:fce,"ra_Get %s access":"获取 %s 访问权限","ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_If the button above does not work, you can authorize manually this app by visiting this url":"如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:xce,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Logout:_ce,ra_Longitude:Sce,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:kce,ra_Monday:Yce,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:vce,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:bce,ra_Ok:Qce,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please allow popups in your browser for this page!":"请允许浏览器弹出此页面!","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Press ENTER Key to add new item":"按 ENTER 键添加新项目","ra_Private certificate":"私有证书",ra_Product:Uce,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Rename_Move_Copy:$ce,"ra_Renew %s access":"续订 %s 访问权限",ra_Repeat:Pce,ra_Replace:Wce,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:Bce,ra_Saturday:Jce,ra_Save:Rce,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Fce,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Session will expire in %s seconds. Continue?":"会话将在 %s 秒后过期。是否继续?","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:Gce,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"授权成功。令牌有效期至 %s,并将自动续订。","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。","ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Hce,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Vce,ra_Timestamp:Zce,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Xce,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:Kce,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:qce,ra_Value:eue,ra_Version:tue,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:sue,ra_Width:iue,ra_Yes:rue,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目",ra___different__:oue,ra_aclEveryone_read_object:nue,ra_aclEveryone_read_state:aue,ra_aclEveryone_write_object:Mue,ra_aclEveryone_write_state:cue,ra_aclGroup_read_object:uue,ra_aclGroup_read_state:lue,ra_aclGroup_write_object:Nue,ra_aclGroup_write_state:Lue,ra_aclOwner_read_object:gue,ra_aclOwner_read_state:jue,ra_aclOwner_write_object:yue,ra_aclOwner_write_state:Tue,ra_buttons:Due,ra_changedFrom:due,ra_close:hue,ra_create_boolean_state:zue,ra_create_channel:wue,ra_create_device:Cue,ra_create_number_state:Iue,ra_create_state:pue,ra_create_string_state:Aue,ra_daysShortText:mue,ra_dow_Fr:Oue,ra_dow_Mo:Eue,ra_dow_Sa:fue,ra_dow_Su:xue,ra_dow_Th:_ue,ra_dow_Tu:Sue,ra_dow_We:kue,ra_expertMode:Yue,ra_false:vue,ra_fileType_all:bue,ra_fileType_audio:Que,ra_fileType_code:Uue,ra_fileType_images:$ue,ra_fileType_txt:Pue,ra_fileType_video:Wue,"ra_fileType_video,":"视频",ra_filter_customs:Bue,ra_filter_customs_without:Jue,ra_filter_func:Rue,ra_filter_id:Fue,ra_filter_name:Gue,ra_filter_role:Hue,ra_filter_room:Vue,ra_filter_type:Zue,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:Xue,ra_lastChange:Kue,ra_locally:que,ra_month_Apr:ele,ra_month_Aug:tle,ra_month_Dec:sle,ra_month_Feb:ile,ra_month_Jan:rle,ra_month_Jul:ole,ra_month_Jun:nle,ra_month_Mai:ale,ra_month_Mar:Mle,ra_month_Nov:cle,ra_month_Oct:ule,ra_month_Sep:lle,ra_months_Apr:Nle,ra_months_Aug:Lle,ra_months_Dec:gle,ra_months_Feb:jle,ra_months_Jan:yle,ra_months_Jul:Tle,ra_months_Jun:Dle,ra_months_Mai:dle,ra_months_Mar:hle,ra_months_Nov:zle,ra_months_Oct:wle,ra_months_Sep:Cle,"ra_no confirm for 5 mins":"5分钟内无需确认",ra_none:Ile,ra_object_changed_by:ple,ra_object_changed_by_user:Ale,ra_otherConfig:mle,ra_qualityCode:Ole,ra_repeat:Ele,ra_select_folder_hint:fle,ra_show_all:xle,ra_state_changed_by:_le,ra_state_changed_from:Sle,ra_timestamp:kle,ra_tooltip_ack:Yle,ra_tooltip_comment:vle,ra_tooltip_copyState:ble,ra_tooltip_ctrlForLink:Qle,ra_tooltip_customConfig:Ule,ra_tooltip_deleteObject:$le,ra_tooltip_editObject:Ple,ra_tooltip_editState:Wle,ra_tooltip_expire:Ble,ra_tooltip_from:Jle,ra_tooltip_lc:Rle,ra_tooltip_quality:Fle,ra_tooltip_ts:Gle,ra_tooltip_user:Hle,ra_tooltip_value:Vle,ra_true:Zle,"ra_use seconds":"用秒",ra_val:Xle,"ra_via internet":"通过互联网",ra_warning_every_minute:Kle,ra_warning_every_second:qle,sc_cron:eNe,sc_date:tNe,sc_dates:sNe,sc_dow:iNe,sc_dows:rNe,sc_every:oNe,sc_everyN_dates:nNe,sc_everyN_dow:aNe,sc_everyN_dows:MNe,sc_everyN_hours:cNe,sc_everyN_minutes:uNe,sc_everyN_months:lNe,sc_everyN_seconds:NNe,sc_every_dates:LNe,sc_every_dow:gNe,sc_every_dows:jNe,sc_every_hours:yNe,sc_every_minutes:TNe,sc_every_months:DNe,sc_every_seconds:dNe,sc_from:hNe,sc_hours:zNe,sc_interval:wNe,sc_intervalBetween:CNe,sc_invalid_cron:INe,sc_minutes:pNe,sc_months:ANe,sc_once:mNe,sc_period:ONe,sc_seconds:ENe,sc_simple:fNe,sc_specific:xNe,sc_specific_dates:_Ne,sc_specific_dow:SNe,sc_specific_dows:kNe,sc_specific_hours:YNe,sc_specific_minutes:vNe,sc_specific_months:bNe,sc_specific_seconds:QNe,sc_time:UNe,sc_to:$Ne,sc_wizard:PNe,sch_all:WNe,sch_astroDay:BNe,sch_astroNight:JNe,sch_astro_dawn:RNe,sch_astro_dusk:FNe,sch_astro_goldenHour:GNe,sch_astro_goldenHourEnd:HNe,sch_astro_nadir:VNe,sch_astro_nauticalDawn:ZNe,sch_astro_nauticalDusk:XNe,sch_astro_night:KNe,sch_astro_nightEnd:qNe,sch_astro_solarNoon:e0e,sch_astro_sunrise:t0e,sch_astro_sunriseEnd:s0e,sch_astro_sunset:i0e,sch_astro_sunsetStart:r0e,sch_at:o0e,sch_desc_atTime:n0e,sch_desc_everyDay:a0e,sch_desc_everyHour:M0e,sch_desc_everyMinute:c0e,sch_desc_everyMonth:u0e,sch_desc_everyNDay:l0e,sch_desc_everyNHours:N0e,sch_desc_everyNMinutes:L0e,sch_desc_everyNMonths:g0e,sch_desc_everyNWeeks:j0e,sch_desc_everyNYears:y0e,sch_desc_everyWeek:T0e,sch_desc_everyYear:D0e,sch_desc_intervalFromTo:d0e,sch_desc_never:h0e,sch_desc_onDate:z0e,sch_desc_onDates:w0e,sch_desc_onEveryDate:C0e,sch_desc_onMonth:I0e,sch_desc_onMonths:p0e,sch_desc_onWeekday:A0e,sch_desc_onWeekdays:m0e,sch_desc_onWeekends:O0e,sch_desc_onWorkdays:E0e,sch_desc_onceInPast:f0e,sch_desc_once_on:x0e,sch_desc_validFrom:_0e,sch_desc_validFromTo:S0e,sch_desc_validTo:k0e,sch_every:Y0e,sch_exactTime:v0e,sch_from:b0e,sch_fromTo:Q0e,sch_intervalTime:U0e,sch_invert:$0e,sch_no_one:P0e,sch_on:W0e,sch_period:B0e,sch_periodDaily:J0e,sch_periodDates:R0e,sch_periodDay:F0e,sch_periodEvery:G0e,sch_periodEveryDay:H0e,sch_periodEveryMonth:V0e,sch_periodEveryWeek:Z0e,sch_periodEveryYear:X0e,sch_periodHours:K0e,sch_periodMinutes:q0e,sch_periodMonth:e4e,sch_periodMonthly:t4e,sch_periodOnce:s4e,sch_periodSpecificMonths:i4e,sch_periodWeek:r4e,sch_periodWeekdays:o4e,sch_periodWeekend:n4e,sch_periodWeekly:a4e,sch_periodWorkdays:M4e,sch_periodYear:c4e,sch_periodYearly:u4e,sch_specificTime:l4e,sch_time:N4e,sch_to:L4e,sch_valid:g4e,sch_validFrom:j4e,sch_validTo:y4e,sch_wholeDay:T4e,sch_yearEveryMonth:D4e},h4e={en:AI,de:vm,ru:G_,pt:iv,nl:L6,fr:CW,it:SG,es:BK,pl:qie,uk:cce,"zh-cn":d4e},z4e=` -html { - height: 100%; -} - -body { - margin: 0; - padding: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - width: 100%; - height: 100%; - overflow: hidden; -} - -/* scrollbar */ -::-webkit-scrollbar-track { - background-color: #ccc; - border-radius: 5px; -} - -::-webkit-scrollbar { - width: 5px; - height: 5px; - background-color: #ccc; -} - -::-webkit-scrollbar-thumb { - background-color: #575757; - border-radius: 5px; -} - -#root { - height: 100%; -} - -.App { - height: 100%; -} - -@keyframes glow { - from { - background-color: initial; - } - to { - background-color: #58c458; - } -} -`;function w4e(){try{return window.self!==window.top}catch{return!0}}class Gt extends Oi{socket;isIFrame=w4e();instance;adapterName;instanceId;newReact;encryptedFields;sentryDSN;alertDialogRendered;_secret;_systemConfig;savedNative;common=null;sentryStarted=!1;sentryInited=!1;resizeTimer=null;constructor(e,t){const i=e.Connection||(t==null?void 0:t.Connection)||ze;if(!window.document.getElementById("generic-app-iobroker-component")){const N=window.document.createElement("style");N.setAttribute("id","generic-app-iobroker-component"),N.innerHTML=z4e,window.document.head.appendChild(N)}if(!Gt.isWeb()&&window.io&&window.location.port==="3000")try{const N=new window.SocketClient;delete window.io,window.io=N}catch{}super(e),Md();const r=(window.location.search||"").replace(/^\?/,"").replace(/#.*$/,""),o={};r.trim().split("&").filter(N=>N.trim()).forEach(N=>{const u=N.split("=");o[u[0]]=u.length===2?u[1]:!0,o[u[0]]==="true"?o[u[0]]=!0:o[u[0]]==="false"&&(o[u[0]]=!1)}),this.instance=(t==null?void 0:t.instance)??e.instance??(o.instance!==void 0?parseInt(o.instance,10)||0:parseInt(window.location.search.slice(1),10)||0);const n=window.location.pathname.split("/");this.adapterName=(t==null?void 0:t.adapterName)||e.adapterName||window.adapterName||n[n.length-2]||"iot",this.instanceId=`system.adapter.${this.adapterName}.${this.instance}`,this.newReact=o.newReact===!0;const a=Oi.getLocation();a.tab=a.tab||(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"";const c=this.createTheme();this.state=Object.assign(this.state||{},{selectedTab:(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"",selectedTabNum:-1,native:{},errorText:"",changed:!1,connected:!1,loaded:!1,isConfigurationError:"",expertMode:!1,toast:"",theme:c,themeName:this.getThemeName(c),themeType:this.getThemeType(c),bottomButtons:(t&&t.bottomButtons)===!1?!1:(e==null?void 0:e.bottomButtons)!==!1,width:Gt.getWidth(),confirmClose:!1,_alert:!1,_alertType:"info",_alertMessage:""});const l=h4e;t!=null&&t.translations?Object.keys(t.translations).forEach(N=>{t.translations&&(l[N]=Object.assign(l[N],t.translations[N]||{}))}):e.translations&&Object.keys(e.translations).forEach(N=>{e.translations&&(l[N]=Object.assign(l[N],e.translations[N]||{}))}),d.setTranslations(l),this.savedNative={},this.encryptedFields=e.encryptedFields||(t==null?void 0:t.encryptedFields)||[],this.sentryDSN=t&&t.sentryDSN||e.sentryDSN,window.socketUrl&&(window.socketUrl.startsWith(":")?window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`:!window.socketUrl.startsWith("http://")&&!window.socketUrl.startsWith("https://")&&(window.socketUrl=`${window.location.protocol}//${window.socketUrl}`)),this.alertDialogRendered=!1,window.iobOldAlert||(window.iobOldAlert=window.alert),window.alert=N=>{if(!this.alertDialogRendered){window.iobOldAlert(N);return}N!=null&&N.toString().toLowerCase().includes("error")?(console.error(N),this.showAlert(N.toString(),"error")):(console.log(N),this.showAlert(N.toString(),"info"))},this.socket=new i({...(e==null?void 0:e.socket)||(t==null?void 0:t.socket),name:this.adapterName,doNotLoadAllObjects:t==null?void 0:t.doNotLoadAllObjects,onProgress:N=>{N===rt.CONNECTING?this.setState({connected:!1}):N===rt.READY?this.setState({connected:!0}):this.setState({connected:!0})},onReady:()=>{d.setLanguage(this.socket.systemLang),this.socket.subscribeObject("system.config",this.onSystemConfigChanged).then(()=>this.getSystemConfig()).then(N=>(this._secret=typeof N<"u"&&N.native&&N.native.secret||"Zgfr56gFe87jJOM",this._systemConfig=(N==null?void 0:N.common)||{},this.socket.getObject(this.instanceId))).then(async N=>{var T,D;let u;const L=N,y=((T=await this.socket.getState(`${this.instanceId}.plugins.sentry.enabled`))==null?void 0:T.val)!==!1&&((D=this._systemConfig)==null?void 0:D.diag)!=="none"&&(L==null?void 0:L.common)&&L.common.name&&L.common.version&&!L.common.disableDataReporting&&window.location.host!=="localhost:3000";!this.sentryStarted&&this.sentryDSN&&y&&(this.sentryStarted=!0,ad({dsn:this.sentryDSN,release:`iobroker.${L.common.name}@${L.common.version}`,integrations:[RN()]}),console.log("Sentry initialized")),!this.sentryInited&&y&&(this.sentryInited=!0,u=this.socket.getObject("system.meta.uuid").then(z=>{z&&z.native&&z.native.uuid&&Ct().setUser({id:z.native.uuid})})),u=u instanceof Promise?u:Promise.resolve(),u.then(()=>{L?(this.common=L==null?void 0:L.common,this.onPrepareLoad(L.native,L.encryptedNative),this.savedNative=JSON.parse(JSON.stringify(L.native)),this.setState({native:L.native,loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady())):(console.warn("Cannot load instance settings"),this.setState({native:{},loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady()))})}).catch(N=>window.alert(`Cannot settings: ${N}`))},onError:N=>{console.error(N),this.showError(N)}})}static isWeb(){return window.socketUrl!==void 0}showAlert(e,t){t!=="error"&&t!=="warning"&&t!=="info"&&t!=="success"&&(t="info"),this.setState({_alert:!0,_alertType:t,_alertMessage:e})}renderAlertSnackbar(){return this.alertDialogRendered=!0,M.createElement(j.Snackbar,{style:this.state._alertType==="error"?{backgroundColor:"#f44336"}:this.state._alertType==="success"?{backgroundColor:"#4caf50"}:void 0,open:this.state._alert,autoHideDuration:6e3,onClose:(e,t)=>t!=="clickaway"&&this.setState({_alert:!1}),message:this.state._alertMessage})}onSystemConfigChanged=(e,t)=>{var i,r;t&&e==="system.config"&&(this.socket.systemLang!==(t==null?void 0:t.common.language)&&(this.socket.systemLang=(t==null?void 0:t.common.language)||"en",d.setLanguage(this.socket.systemLang)),((i=this._systemConfig)==null?void 0:i.expertMode)!==!!((r=t==null?void 0:t.common)!=null&&r.expertMode)?(this._systemConfig=(t==null?void 0:t.common)||{},this.setState({expertMode:this.getExpertMode()})):this._systemConfig=(t==null?void 0:t.common)||{})};componentDidMount(){window.addEventListener("resize",this.onResize,!0),window.addEventListener("message",this.onReceiveMessage,!1),super.componentDidMount()}componentWillUnmount(){window.removeEventListener("resize",this.onResize,!0),window.removeEventListener("message",this.onReceiveMessage,!1),window.iobOldAlert&&(window.alert=window.iobOldAlert,delete window.iobOldAlert),super.componentWillUnmount()}onReceiveMessage=e=>{if(e!=null&&e.data)if(e.data==="updateTheme"){const t=O.getThemeName();O.setThemeName(O.getThemeName());const i=this.createTheme(t);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(t),this.onThemeChanged&&this.onThemeChanged(t)})}else e.data==="updateExpertMode"?this.onToggleExpertMode&&this.onToggleExpertMode(this.getExpertMode()):e.data!=="chartReady"&&console.debug(`Received unknown message: "${JSON.stringify(e.data)}". May be it will be processed later`)};onResize=()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{this.resizeTimer=null,this.setState({width:Gt.getWidth()})},200)};static getWidth(){const e={xs:0,sm:600,md:960,lg:1280,xl:1920},t=window.innerWidth;return Object.keys(e).reverse().find(o=>t>=e[o])||"xs"}createTheme(e){return Yg(O.getThemeName(e))}getThemeName(e){return e.name}getThemeType(e){return e.palette.mode}onThemeChanged(e){}onToggleExpertMode(e){}toggleTheme(e){const t=this.state.themeName;if(e=e||(t==="dark"||t==="blue"||t==="colored"?"light":"dark"),e!==t){O.setThemeName(e);const i=this.createTheme(e);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(e||"light"),this.onThemeChanged&&this.onThemeChanged(e||"light")})}}getSystemConfig(){return this.socket.getSystemConfig()}getExpertMode(){var e;return window.sessionStorage.getItem("App.expertMode")==="true"||!!((e=this._systemConfig)!=null&&e.expertMode)}onConnectionReady(){}encrypt(e){let t="";if(this._secret)for(let i=0;i{e[i]&&(e[i]=this.encrypt(e[i]))}),!0}onPrepareLoad(e,t){var i;(i=this.encryptedFields)==null||i.forEach(r=>{e[r]&&(e[r]=this.decrypt(e[r]))}),t==null||t.forEach(r=>{this.encryptedFields=this.encryptedFields||[],!this.encryptedFields.includes(r)&&this.encryptedFields.push(r),e[r]&&(e[r]=this.decrypt(e[r]))})}async getExtendableInstances(){try{const e=await this.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香");return Object.values(e).filter(t=>{var i;return!!((i=t==null?void 0:t.common)!=null&&i.webExtendable)})}catch{return[]}}async getIpAddresses(e){var o;const t=await this.socket.getHostByIp(e||((o=this.common)==null?void 0:o.host)||""),i=t.find(n=>n.address==="0.0.0.0");i&&(i.name=`[IPv4] 0.0.0.0 - ${d.t("ra_Listen on all IPs")}`);const r=t.find(n=>n.address==="::");return r&&(r.name=`[IPv4] :: - ${d.t("ra_Listen on all IPs")}`),t}onSave(e){let t;if(this.state.isConfigurationError){this.setState({errorText:this.state.isConfigurationError});return}this.socket.getObject(this.instanceId).then(i=>{t=i||{};for(const r in this.state.native)Object.prototype.hasOwnProperty.call(this.state.native,r)&&(this.state.native[r]===null?t.native[r]=null:this.state.native[r]!==void 0?t.native[r]=JSON.parse(JSON.stringify(this.state.native[r])):delete t.native[r]);if(this.state.common)for(const r in this.state.common)this.state.common[r]===null?t.common[r]=null:this.state.common[r]!==void 0?t.common[r]=JSON.parse(JSON.stringify(this.state.common[r])):delete t.common[r];return this.onPrepareSave(t.native)!==!1?this.socket.setObject(this.instanceId,t):Promise.reject(new Error("Invalid configuration"))}).then(()=>{this.savedNative=t.native,globalThis.changed=!1;try{window.parent.postMessage("nochange","*")}catch{}this.setState({changed:!1},()=>{e&&Gt.onClose()})}).catch(i=>console.error(`Cannot save configuration: ${i}`))}renderToast(){return this.state.toast?M.createElement(j.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:M.createElement("span",{id:"message-id"},this.state.toast),action:[M.createElement(j.IconButton,{key:"close","aria-label":"Close",color:"inherit",onClick:()=>this.setState({toast:""}),size:"large"},M.createElement(Ne,null))]}):null}static onClose(){if(typeof window.parent<"u"&&window.parent)try{window.parent.$iframeDialog&&typeof window.parent.$iframeDialog.close=="function"?window.parent.$iframeDialog.close():window.parent.postMessage("close","*")}catch{window.parent.postMessage("close","*")}}renderError(){return this.state.errorText?M.createElement(s0,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}getIsChanged(e){e=e||this.state.native;const t=JSON.stringify(e)!==JSON.stringify(this.savedNative);return globalThis.changed=t,t}onLoadConfig(e){JSON.stringify(e)!==JSON.stringify(this.state.native)&&this.setState({native:e,changed:this.getIsChanged(e)})}setConfigurationError(e){this.state.isConfigurationError!==e&&this.setState({isConfigurationError:e})}renderSaveCloseButtons(){return!this.state.confirmClose&&!this.state.bottomButtons?null:M.createElement(M.Fragment,null,this.state.bottomButtons?M.createElement(yd,{theme:this.state.theme,newReact:this.newReact,noTextOnButtons:this.state.width==="xs"||this.state.width==="sm"||this.state.width==="md",changed:this.state.changed,onSave:e=>this.onSave(e),onClose:()=>{this.state.changed?this.setState({confirmClose:!0}):Gt.onClose()},error:!!this.state.isConfigurationError}):null,this.state.confirmClose?M.createElement(t0,{title:d.t("ra_Please confirm"),text:d.t("ra_Some data are not stored. Discard?"),ok:d.t("ra_Discard"),cancel:d.t("ra_Cancel"),onClose:e=>this.setState({confirmClose:!1},()=>e&&Gt.onClose())}):null)}_updateNativeValue(e,t,i){typeof t!="object"&&(t=t.split("."));const r=t.shift()||"";if(!t.length)return i&&typeof i=="object"?JSON.stringify(e[r])!==JSON.stringify(i)?(e[r]=i,!0):!1:e[r]!==i?(e[r]=i,!0):!1;if(e[r]=e[r]||{},typeof e[r]!="object")throw new Error(`attribute ${r} is no object, but ${typeof e[r]}`);return this._updateNativeValue(e[r],t,i)}updateNativeValue(e,t,i){const r=JSON.parse(JSON.stringify(this.state.native));if(this._updateNativeValue(r,e,t)){const o=this.getIsChanged(r);if(o!==this.state.changed)try{window.parent.postMessage(o?"change":"nochange","*")}catch{}this.setState({native:r,changed:o},i)}}showError(e){this.setState({errorText:e})}showToast(e){this.setState({toast:e})}renderHelperDialogs(){return M.createElement(M.Fragment,null,this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar())}render(){return this.state.loaded?M.createElement("div",{className:"App"},this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar()):M.createElement(ud,{themeType:this.state.themeType})}}var Be={},Fi={},C4e=typeof ir=="object"&&ir&&ir.Object===Object&&ir,i0=C4e,I4e=i0,p4e=typeof self=="object"&&self&&self.Object===Object&&self,A4e=I4e||p4e||Function("return this")(),ut=A4e,m4e=ut,O4e=m4e.Symbol,Gi=O4e,Qc=Gi,r0=Object.prototype,E4e=r0.hasOwnProperty,f4e=r0.toString,li=Qc?Qc.toStringTag:void 0;function x4e(s){var e=E4e.call(s,li),t=s[li];try{s[li]=void 0;var i=!0}catch{}var r=f4e.call(s);return i&&(e?s[li]=t:delete s[li]),r}var _4e=x4e,S4e=Object.prototype,k4e=S4e.toString;function Y4e(s){return k4e.call(s)}var v4e=Y4e,Uc=Gi,b4e=_4e,Q4e=v4e,U4e="[object Null]",$4e="[object Undefined]",$c=Uc?Uc.toStringTag:void 0;function P4e(s){return s==null?s===void 0?$4e:U4e:$c&&$c in Object(s)?b4e(s):Q4e(s)}var ns=P4e,W4e=Array.isArray,qe=W4e;function B4e(s){return s!=null&&typeof s=="object"}var It=B4e,J4e=ns,R4e=qe,F4e=It,G4e="[object String]";function H4e(s){return typeof s=="string"||!R4e(s)&&F4e(s)&&J4e(s)==G4e}var V4e=H4e;function Z4e(s){return function(e,t,i){for(var r=-1,o=Object(e),n=i(e),a=n.length;a--;){var c=n[s?a:++r];if(t(o[c],c,o)===!1)break}return e}}var X4e=Z4e,K4e=X4e,q4e=K4e(),eLe=q4e;function tLe(s,e){for(var t=-1,i=Array(s);++t-1&&s%1==0&&s-1&&s%1==0&&s<=TLe}var Oa=DLe,dLe=ns,hLe=Oa,zLe=It,wLe="[object Arguments]",CLe="[object Array]",ILe="[object Boolean]",pLe="[object Date]",ALe="[object Error]",mLe="[object Function]",OLe="[object Map]",ELe="[object Number]",fLe="[object Object]",xLe="[object RegExp]",_Le="[object Set]",SLe="[object String]",kLe="[object WeakMap]",YLe="[object ArrayBuffer]",vLe="[object DataView]",bLe="[object Float32Array]",QLe="[object Float64Array]",ULe="[object Int8Array]",$Le="[object Int16Array]",PLe="[object Int32Array]",WLe="[object Uint8Array]",BLe="[object Uint8ClampedArray]",JLe="[object Uint16Array]",RLe="[object Uint32Array]",oe={};oe[bLe]=oe[QLe]=oe[ULe]=oe[$Le]=oe[PLe]=oe[WLe]=oe[BLe]=oe[JLe]=oe[RLe]=!0;oe[wLe]=oe[CLe]=oe[YLe]=oe[ILe]=oe[vLe]=oe[pLe]=oe[ALe]=oe[mLe]=oe[OLe]=oe[ELe]=oe[fLe]=oe[xLe]=oe[_Le]=oe[SLe]=oe[kLe]=!1;function FLe(s){return zLe(s)&&hLe(s.length)&&!!oe[dLe(s)]}var GLe=FLe;function HLe(s){return function(e){return s(e)}}var Ea=HLe,$r={exports:{}};$r.exports;(function(s,e){var t=i0,i=e&&!e.nodeType&&e,r=i&&!0&&s&&!s.nodeType&&s,o=r&&r.exports===i,n=o&&t.process,a=function(){try{var c=r&&r.require&&r.require("util").types;return c||n&&n.binding&&n.binding("util")}catch{}}();s.exports=a})($r,$r.exports);var fa=$r.exports,VLe=GLe,ZLe=Ea,Wc=fa,Bc=Wc&&Wc.isTypedArray,XLe=Bc?ZLe(Bc):VLe,M0=XLe,KLe=sLe,qLe=n0,ege=qe,tge=ma,sge=a0,ige=M0,rge=Object.prototype,oge=rge.hasOwnProperty;function nge(s,e){var t=ege(s),i=!t&&qLe(s),r=!t&&!i&&tge(s),o=!t&&!i&&!r&&ige(s),n=t||i||r||o,a=n?KLe(s.length,String):[],c=a.length;for(var l in s)(e||oge.call(s,l))&&!(n&&(l=="length"||r&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||sge(l,c)))&&a.push(l);return a}var c0=nge,age=Object.prototype;function Mge(s){var e=s&&s.constructor,t=typeof e=="function"&&e.prototype||age;return s===t}var xa=Mge;function cge(s,e){return function(t){return s(e(t))}}var u0=cge,uge=u0,lge=uge(Object.keys,Object),Nge=lge,Lge=xa,gge=Nge,jge=Object.prototype,yge=jge.hasOwnProperty;function Tge(s){if(!Lge(s))return gge(s);var e=[];for(var t in Object(s))yge.call(s,t)&&t!="constructor"&&e.push(t);return e}var Dge=Tge;function dge(s){var e=typeof s;return s!=null&&(e=="object"||e=="function")}var Xs=dge,hge=ns,zge=Xs,wge="[object AsyncFunction]",Cge="[object Function]",Ige="[object GeneratorFunction]",pge="[object Proxy]";function Age(s){if(!zge(s))return!1;var e=hge(s);return e==Cge||e==Ige||e==wge||e==pge}var l0=Age,mge=l0,Oge=Oa;function Ege(s){return s!=null&&Oge(s.length)&&!mge(s)}var ao=Ege,fge=c0,xge=Dge,_ge=ao;function Sge(s){return _ge(s)?fge(s):xge(s)}var Hi=Sge,kge=eLe,Yge=Hi;function vge(s,e){return s&&kge(s,e,Yge)}var N0=vge;function bge(s){return s}var L0=bge,Qge=L0;function Uge(s){return typeof s=="function"?s:Qge}var $ge=Uge,Pge=N0,Wge=$ge;function Bge(s,e){return s&&Pge(s,Wge(e))}var _a=Bge,Jge=u0,Rge=Jge(Object.getPrototypeOf,Object),Sa=Rge,Fge=ns,Gge=Sa,Hge=It,Vge="[object Object]",Zge=Function.prototype,Xge=Object.prototype,g0=Zge.toString,Kge=Xge.hasOwnProperty,qge=g0.call(Object);function eje(s){if(!Hge(s)||Fge(s)!=Vge)return!1;var e=Gge(s);if(e===null)return!0;var t=Kge.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&g0.call(t)==qge}var tje=eje;function sje(s,e){for(var t=-1,i=s==null?0:s.length,r=Array(i);++t-1}var Dje=Tje,dje=Mo;function hje(s,e){var t=this.__data__,i=dje(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}var zje=hje,wje=rje,Cje=Nje,Ije=jje,pje=Dje,Aje=zje;function Ks(s){var e=-1,t=s==null?0:s.length;for(this.clear();++ea))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&QTe?new kTe:void 0;for(o.set(s,e),o.set(e,s);++u0&&arguments[0]!==void 0?arguments[0]:[],t=[];return(0,Aze.default)(e,function(i){Array.isArray(i)?s(i).map(function(r){return t.push(r)}):(0,Ize.default)(i)?(0,wze.default)(i,function(r,o){r===!0&&t.push(o),t.push(o+"-"+r)}):(0,hze.default)(i)&&t.push(i)}),t};Fi.default=mze;var Vi={};function Oze(s,e){for(var t=-1,i=s==null?0:s.length;++t1&&arguments[1]!==void 0?arguments[1]:[],i=e.default&&(0,HIe.default)(e.default)||{};return t.map(function(r){var o=e[r];return o&&(0,FIe.default)(o,function(n,a){i[a]||(i[a]={}),i[a]=VIe({},i[a],o[a])}),r}),i};Vi.default=ZIe;var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0});Zi.autoprefix=void 0;var XIe=_a,Cu=qIe(XIe),KIe=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){n1e(r,i);function r(){var o,n,a,c;o1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){N1e(r,i);function r(){var o,n,a,c;l1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:!0;i[n]=a};return e===0&&r("first-child"),e===t-1&&r("last-child"),(e===0||e%2===0)&&r("even"),Math.abs(e%2)===1&&r("odd"),r("nth-child",e),i};Ja.default=g1e;Object.defineProperty(Be,"__esModule",{value:!0});Be.ReactCSS=Be.loop=Be.handleActive=Ra=Be.handleHover=Be.hover=void 0;var j1e=Fi,y1e=ii(j1e),T1e=Vi,D1e=ii(T1e),d1e=Zi,h1e=ii(d1e),z1e=Xi,U0=ii(z1e),w1e=Ki,C1e=ii(w1e),I1e=Ja,p1e=ii(I1e);function ii(s){return s&&s.__esModule?s:{default:s}}Be.hover=U0.default;var Ra=Be.handleHover=U0.default;Be.handleActive=C1e.default;Be.loop=p1e.default;var A1e=Be.ReactCSS=function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),r=1;ra?L=1:L=Math.round(u*100/a)/100,t.a!==L)return{h:t.h,s:t.s,l:t.l,a:L,source:"rgb"}}else{var g=void 0;if(N<0?g=0:N>n?g=1:g=Math.round(N*100/n)/100,r!==g)return{h:t.h,s:t.s,l:t.l,a:g,source:"rgb"}}return null},Bo={},O1e=function(e,t,i,r){if(typeof document>"u"&&!r)return null;var o=r?new r:document.createElement("canvas");o.width=i*2,o.height=i*2;var n=o.getContext("2d");return n?(n.fillStyle=e,n.fillRect(0,0,o.width,o.height),n.fillStyle=t,n.fillRect(0,0,i,i),n.translate(i,i),n.fillRect(0,0,i,i),o.toDataURL()):null},E1e=function(e,t,i,r){var o=e+"-"+t+"-"+i+(r?"-server":"");if(Bo[o])return Bo[o];var n=O1e(e,t,i,r);return Bo[o]=n,n},Au=Object.assign||function(s){for(var e=1;e-1},B1e=function(e){return Number(String(e).replace(/%/g,""))},J1e=1,K=function(s){Q1e(e,s);function e(t){v1e(this,e);var i=b1e(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.handleBlur=function(){i.state.blurValue&&i.setState({value:i.state.blurValue,blurValue:null})},i.handleChange=function(r){i.setUpdatedValue(r.target.value,r)},i.handleKeyDown=function(r){var o=B1e(r.target.value);if(!isNaN(o)&&W1e(r.keyCode)){var n=i.getArrowOffset(),a=r.keyCode===$0?o+n:o-n;i.setUpdatedValue(a,r)}},i.handleDrag=function(r){if(i.props.dragLabel){var o=Math.round(i.props.value+r.movementX);o>=0&&o<=i.props.dragMax&&i.props.onChange&&i.props.onChange(i.getValueObjectWithLabel(o),r)}},i.handleMouseDown=function(r){i.props.dragLabel&&(r.preventDefault(),i.handleDrag(r),window.addEventListener("mousemove",i.handleDrag),window.addEventListener("mouseup",i.handleMouseUp))},i.handleMouseUp=function(){i.unbindEventListeners()},i.unbindEventListeners=function(){window.removeEventListener("mousemove",i.handleDrag),window.removeEventListener("mouseup",i.handleMouseUp)},i.state={value:String(t.value).toUpperCase(),blurValue:String(t.value).toUpperCase()},i.inputId="rc-editable-input-"+J1e++,i}return k1e(e,[{key:"componentDidUpdate",value:function(i,r){this.props.value!==this.state.value&&(i.value!==this.props.value||r.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(i){return Y1e({},this.props.label,i)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||U1e}},{key:"setUpdatedValue",value:function(i,r){var o=this.props.label?this.getValueObjectWithLabel(i):i;this.props.onChange&&this.props.onChange(o,r),this.setState({value:i})}},{key:"render",value:function(){var i=this,r=G({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return M.createElement("div",{style:r.wrap},M.createElement("input",{id:this.inputId,style:r.input,ref:function(n){return i.input=n},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?M.createElement("label",{htmlFor:this.inputId,style:r.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),e}(x.PureComponent||x.Component),R1e=function(e,t,i,r){var o=r.clientWidth,n=r.clientHeight,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(r.getBoundingClientRect().left+window.pageXOffset),N=c-(r.getBoundingClientRect().top+window.pageYOffset);if(t==="vertical"){var u=void 0;if(N<0)u=359;else if(N>n)u=0;else{var L=-(N*100/n)+100;u=360*L/100}if(i.h!==u)return{h:u,s:i.s,l:i.l,a:i.a,source:"hsl"}}else{var g=void 0;if(l<0)g=0;else if(l>o)g=359;else{var y=l*100/o;g=360*y/100}if(i.h!==g)return{h:g,s:i.s,l:i.l,a:i.a,source:"hsl"}}return null},F1e=function(){function s(e,t){for(var i=0;i-1}function tpe(s,e){var t=this.__data__,i=yo(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}function pt(s){var e=-1,t=s==null?0:s.length;for(this.clear();++e-1&&s%1==0&&s<=MAe}function ni(s){return s!=null&&Za(s.length)&&!Ga(s)}function cAe(s){return Pt(s)&&ni(s)}function uAe(){return!1}var H0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yu=H0&&typeof module=="object"&&module&&!module.nodeType&&module,lAe=Yu&&Yu.exports===H0,vu=lAe?et.Buffer:void 0,NAe=vu?vu.isBuffer:void 0,Fr=NAe||uAe,LAe="[object Object]",gAe=Function.prototype,jAe=Object.prototype,V0=gAe.toString,yAe=jAe.hasOwnProperty,TAe=V0.call(Object);function DAe(s){if(!Pt(s)||Ms(s)!=LAe)return!1;var e=F0(s);if(e===null)return!0;var t=yAe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&V0.call(t)==TAe}var dAe="[object Arguments]",hAe="[object Array]",zAe="[object Boolean]",wAe="[object Date]",CAe="[object Error]",IAe="[object Function]",pAe="[object Map]",AAe="[object Number]",mAe="[object Object]",OAe="[object RegExp]",EAe="[object Set]",fAe="[object String]",xAe="[object WeakMap]",_Ae="[object ArrayBuffer]",SAe="[object DataView]",kAe="[object Float32Array]",YAe="[object Float64Array]",vAe="[object Int8Array]",bAe="[object Int16Array]",QAe="[object Int32Array]",UAe="[object Uint8Array]",$Ae="[object Uint8ClampedArray]",PAe="[object Uint16Array]",WAe="[object Uint32Array]",ne={};ne[kAe]=ne[YAe]=ne[vAe]=ne[bAe]=ne[QAe]=ne[UAe]=ne[$Ae]=ne[PAe]=ne[WAe]=!0;ne[dAe]=ne[hAe]=ne[_Ae]=ne[zAe]=ne[SAe]=ne[wAe]=ne[CAe]=ne[IAe]=ne[pAe]=ne[AAe]=ne[mAe]=ne[OAe]=ne[EAe]=ne[fAe]=ne[xAe]=!1;function BAe(s){return Pt(s)&&Za(s.length)&&!!ne[Ms(s)]}function JAe(s){return function(e){return s(e)}}var Z0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ei=Z0&&typeof module=="object"&&module&&!module.nodeType&&module,RAe=Ei&&Ei.exports===Z0,Ro=RAe&&P0.process,bu=function(){try{var s=Ei&&Ei.require&&Ei.require("util").types;return s||Ro&&Ro.binding&&Ro.binding("util")}catch{}}(),Qu=bu&&bu.isTypedArray,Xa=Qu?JAe(Qu):BAe;function kn(s,e){if(!(e==="constructor"&&typeof s[e]=="function")&&e!="__proto__")return s[e]}var FAe=Object.prototype,GAe=FAe.hasOwnProperty;function HAe(s,e,t){var i=s[e];(!(GAe.call(s,e)&&qi(i,t))||t===void 0&&!(e in s))&&Ha(s,e,t)}function VAe(s,e,t,i){var r=!t;t||(t={});for(var o=-1,n=e.length;++o-1&&s%1==0&&s0){if(++e>=l2e)return arguments[0]}else e=0;return s.apply(void 0,arguments)}}var j2e=g2e(u2e);function y2e(s,e){return j2e(M2e(s,e,Do),s+"")}function T2e(s,e,t){if(!Re(t))return!1;var i=typeof e;return(i=="number"?ni(t)&&Ka(e,t.length):i=="string"&&e in t)?qi(t[e],s):!1}function D2e(s){return y2e(function(e,t){var i=-1,r=t.length,o=r>1?t[r-1]:void 0,n=r>2?t[2]:void 0;for(o=s.length>3&&typeof o=="function"?(r--,o):void 0,n&&T2e(t[0],t[1],n)&&(o=r<3?void 0:o,r=1),e=Object(e);++i=e||A<0||u&&S>=o}function z(){var h=Fo();if(D(h))return p(h);a=setTimeout(z,T(h))}function p(h){return a=void 0,L&&i?g(h):(i=r=void 0,n)}function C(){a!==void 0&&clearTimeout(a),l=0,i=c=r=a=void 0}function m(){return a===void 0?n:p(Fo())}function I(){var h=Fo(),A=D(h);if(i=arguments,r=this,c=h,A){if(a===void 0)return y(c);if(u)return clearTimeout(a),a=setTimeout(z,e),g(c)}return a===void 0&&(a=setTimeout(z,e)),n}return I.cancel=C,I.flush=m,I}var x2e="Expected a function";function _2e(s,e,t){var i=!0,r=!0;if(typeof s!="function")throw new TypeError(x2e);return Re(t)&&(i="leading"in t?!!t.leading:i,r="trailing"in t?!!t.trailing:r),e4(s,e,{leading:i,maxWait:e,trailing:r})}var S2e=function(e,t,i){var r=i.getBoundingClientRect(),o=r.width,n=r.height,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(i.getBoundingClientRect().left+window.pageXOffset),N=c-(i.getBoundingClientRect().top+window.pageYOffset);l<0?l=0:l>o&&(l=o),N<0?N=0:N>n&&(N=n);var u=l/o,L=1-N/n;return{h:t.h,s:u,v:L,a:t.a,source:"hsv"}},k2e=function(){function s(e,t){for(var i=0;i=0,o=!t&&r&&(e==="hex"||e==="hex6"||e==="hex3"||e==="hex4"||e==="hex8"||e==="name");return o?e==="name"&&this._a===0?this.toName():this.toRgbString():(e==="rgb"&&(i=this.toRgbString()),e==="prgb"&&(i=this.toPercentageRgbString()),(e==="hex"||e==="hex6")&&(i=this.toHexString()),e==="hex3"&&(i=this.toHexString(!0)),e==="hex4"&&(i=this.toHex8String(!0)),e==="hex8"&&(i=this.toHex8String()),e==="name"&&(i=this.toName()),e==="hsl"&&(i=this.toHslString()),e==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return $(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(ime,arguments)},brighten:function(){return this._applyModification(rme,arguments)},darken:function(){return this._applyModification(ome,arguments)},desaturate:function(){return this._applyModification(eme,arguments)},saturate:function(){return this._applyModification(tme,arguments)},greyscale:function(){return this._applyModification(sme,arguments)},spin:function(){return this._applyModification(nme,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(cme,arguments)},complement:function(){return this._applyCombination(ame,arguments)},monochromatic:function(){return this._applyCombination(ume,arguments)},splitcomplement:function(){return this._applyCombination(Mme,arguments)},triad:function(){return this._applyCombination(Fu,[3])},tetrad:function(){return this._applyCombination(Fu,[4])}};$.fromRatio=function(s,e){if(Gr(s)=="object"){var t={};for(var i in s)s.hasOwnProperty(i)&&(i==="a"?t[i]=s[i]:t[i]=zi(s[i]));s=t}return $(s,e)};function V2e(s){var e={r:0,g:0,b:0},t=1,i=null,r=null,o=null,n=!1,a=!1;return typeof s=="string"&&(s=jme(s)),Gr(s)=="object"&&(Nt(s.r)&&Nt(s.g)&&Nt(s.b)?(e=Z2e(s.r,s.g,s.b),n=!0,a=String(s.r).substr(-1)==="%"?"prgb":"rgb"):Nt(s.h)&&Nt(s.s)&&Nt(s.v)?(i=zi(s.s),r=zi(s.v),e=K2e(s.h,i,r),n=!0,a="hsv"):Nt(s.h)&&Nt(s.s)&&Nt(s.l)&&(i=zi(s.s),o=zi(s.l),e=X2e(s.h,i,o),n=!0,a="hsl"),s.hasOwnProperty("a")&&(t=s.a)),t=s4(t),{ok:n,format:s.format||a,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:t}}function Z2e(s,e,t){return{r:ce(s,255)*255,g:ce(e,255)*255,b:ce(t,255)*255}}function Wu(s,e,t){s=ce(s,255),e=ce(e,255),t=ce(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=(i+r)/2;if(i==r)o=n=0;else{var c=i-r;switch(n=a>.5?c/(2-i-r):c/(i+r),i){case s:o=(e-t)/c+(e1&&(u-=1),u<1/6?l+(N-l)*6*u:u<1/2?N:u<2/3?l+(N-l)*(2/3-u)*6:l}if(e===0)i=r=o=t;else{var a=t<.5?t*(1+e):t+e-t*e,c=2*t-a;i=n(c,a,s+1/3),r=n(c,a,s),o=n(c,a,s-1/3)}return{r:i*255,g:r*255,b:o*255}}function Bu(s,e,t){s=ce(s,255),e=ce(e,255),t=ce(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=i,c=i-r;if(n=i===0?0:c/i,i==r)o=0;else{switch(i){case s:o=(e-t)/c+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push($(i));return o}function ume(s,e){e=e||6;for(var t=$(s).toHsv(),i=t.h,r=t.s,o=t.v,n=[],a=1/e;e--;)n.push($({h:i,s:r,v:o})),o=(o+a)%1;return n}$.mix=function(s,e,t){t=t===0?0:t||50;var i=$(s).toRgb(),r=$(e).toRgb(),o=t/100,n={r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a};return $(n)};$.readability=function(s,e){var t=$(s),i=$(e);return(Math.max(t.getLuminance(),i.getLuminance())+.05)/(Math.min(t.getLuminance(),i.getLuminance())+.05)};$.isReadable=function(s,e,t){var i=$.readability(s,e),r,o;switch(o=!1,r=yme(t),r.level+r.size){case"AAsmall":case"AAAlarge":o=i>=4.5;break;case"AAlarge":o=i>=3;break;case"AAAsmall":o=i>=7;break}return o};$.mostReadable=function(s,e,t){var i=null,r=0,o,n,a,c;t=t||{},n=t.includeFallbackColors,a=t.level,c=t.size;for(var l=0;lr&&(r=o,i=$(e[l]));return $.isReadable(s,i,{level:a,size:c})||!n?i:(t.includeFallbackColors=!1,$.mostReadable(s,["#fff","#000"],t))};var Yn=$.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},lme=$.hexNames=Nme(Yn);function Nme(s){var e={};for(var t in s)s.hasOwnProperty(t)&&(e[s[t]]=t);return e}function s4(s){return s=parseFloat(s),(isNaN(s)||s<0||s>1)&&(s=1),s}function ce(s,e){Lme(s)&&(s="100%");var t=gme(s);return s=Math.min(e,Math.max(0,parseFloat(s))),t&&(s=parseInt(s*e,10)/100),Math.abs(s-e)<1e-6?1:s%e/parseFloat(e)}function wo(s){return Math.min(1,Math.max(0,s))}function be(s){return parseInt(s,16)}function Lme(s){return typeof s=="string"&&s.indexOf(".")!=-1&&parseFloat(s)===1}function gme(s){return typeof s=="string"&&s.indexOf("%")!=-1}function Xe(s){return s.length==1?"0"+s:""+s}function zi(s){return s<=1&&(s=s*100+"%"),s}function i4(s){return Math.round(parseFloat(s)*255).toString(16)}function Gu(s){return be(s)/255}var Ze=function(){var s="[-\\+]?\\d+%?",e="[-\\+]?\\d*\\.\\d+%?",t="(?:"+e+")|(?:"+s+")",i="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",r="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Nt(s){return!!Ze.CSS_UNIT.exec(s)}function jme(s){s=s.replace(G2e,"").replace(H2e,"").toLowerCase();var e=!1;if(Yn[s])s=Yn[s],e=!0;else if(s=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var t;return(t=Ze.rgb.exec(s))?{r:t[1],g:t[2],b:t[3]}:(t=Ze.rgba.exec(s))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Ze.hsl.exec(s))?{h:t[1],s:t[2],l:t[3]}:(t=Ze.hsla.exec(s))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Ze.hsv.exec(s))?{h:t[1],s:t[2],v:t[3]}:(t=Ze.hsva.exec(s))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Ze.hex8.exec(s))?{r:be(t[1]),g:be(t[2]),b:be(t[3]),a:Gu(t[4]),format:e?"name":"hex8"}:(t=Ze.hex6.exec(s))?{r:be(t[1]),g:be(t[2]),b:be(t[3]),format:e?"name":"hex"}:(t=Ze.hex4.exec(s))?{r:be(t[1]+""+t[1]),g:be(t[2]+""+t[2]),b:be(t[3]+""+t[3]),a:Gu(t[4]+""+t[4]),format:e?"name":"hex8"}:(t=Ze.hex3.exec(s))?{r:be(t[1]+""+t[1]),g:be(t[2]+""+t[2]),b:be(t[3]+""+t[3]),format:e?"name":"hex"}:!1}function yme(s){var e,t;return s=s||{level:"AA",size:"small"},e=(s.level||"AA").toUpperCase(),t=(s.size||"small").toLowerCase(),e!=="AA"&&e!=="AAA"&&(e="AA"),t!=="small"&&t!=="large"&&(t="small"),{level:e,size:t}}var Hu=function(e){var t=["r","g","b","a","h","s","l","v"],i=0,r=0;return F2e(t,function(o){if(e[o]&&(i+=1,isNaN(e[o])||(r+=1),o==="s"||o==="l")){var n=/^\d+%$/;n.test(e[o])&&(r+=1)}}),i===r?e:!1},wi=function(e,t){var i=e.hex?$(e.hex):$(e),r=i.toHsl(),o=i.toHsv(),n=i.toRgb(),a=i.toHex();r.s===0&&(r.h=t||0,o.h=t||0);var c=a==="000000"&&n.a===0;return{hsl:r,hex:c?"transparent":"#"+a,rgb:n,hsv:o,oldHue:e.h||t||r.h,source:e.source}},Wt=function(e){if(e==="transparent")return!0;var t=String(e).charAt(0)==="#"?1:0;return e.length!==4+t&&e.length<7+t&&$(e).isValid()},eM=function(e){if(!e)return"#fff";var t=wi(e);if(t.hex==="transparent")return"rgba(0,0,0,0.4)";var i=(t.rgb.r*299+t.rgb.g*587+t.rgb.b*114)/1e3;return i>=128?"#000":"#fff"},Go=function(e,t){var i=e.replace("°","");return $(t+" ("+i+")")._ok},Li=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){Ime(r,i);function r(){var o,n,a,c;Cme(this,r);for(var l=arguments.length,N=Array(l),u=0;ua))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&vme?new Hr:void 0;for(o.set(s,e),o.set(e,s);++u=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var gr=24,ZOe=L4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?gr:i,o=s.height,n=o===void 0?gr:o,a=s.style,c=a===void 0?{}:a,l=VOe(s,["fill","width","height","style"]);return Nl.default.createElement("svg",ll({viewBox:"0 0 "+gr+" "+gr,style:ll({fill:t,width:r,height:n},c)},l),Nl.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))},XOe=function(){function s(e,t){for(var i=0;i1&&(r.a=1),i.props.onChange({h:i.props.hsl.h,s:i.props.hsl.s,l:i.props.hsl.l,a:Math.round(r.a*100)/100,source:"rgb"},o)):(r.h||r.s||r.l)&&(typeof r.s=="string"&&r.s.includes("%")&&(r.s=r.s.replace("%","")),typeof r.l=="string"&&r.l.includes("%")&&(r.l=r.l.replace("%","")),r.s==1?r.s=.01:r.l==1&&(r.l=.01),i.props.onChange({h:r.h||i.props.hsl.h,s:Number(ul(r.s)?i.props.hsl.s:r.s),l:Number(ul(r.l)?i.props.hsl.l:r.l),source:"hsl"},o))},i.showHighlight=function(r){r.currentTarget.style.background="#eee"},i.hideHighlight=function(r){r.currentTarget.style.background="transparent"},t.hsl.a!==1&&t.view==="hex"?i.state={view:"rgb"}:i.state={view:t.view},i}return XOe(e,[{key:"render",value:function(){var i=this,r=G({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),o=void 0;return this.state.view==="hex"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):this.state.view==="rgb"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):this.state.view==="hsl"&&(o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"s",value:Math.round(this.props.hsl.s*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"l",value:Math.round(this.props.hsl.l*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),M.createElement("div",{style:r.wrap,className:"flexbox-fix"},o,M.createElement("div",{style:r.toggle},M.createElement("div",{style:r.icon,onClick:this.toggleViews,ref:function(a){return i.icon=a}},M.createElement(ZOe,{style:r.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(i,r){return i.hsl.a!==1&&r.view==="hex"?{view:"rgb"}:null}}]),e}(M.Component);g4.defaultProps={view:"hex"};var Ll=function(){var e=G({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return M.createElement("div",{style:e.picker})},tEe=function(){var e=G({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return M.createElement("div",{style:e.picker})},nM=function(e){var t=e.width,i=e.onChange,r=e.disableAlpha,o=e.rgb,n=e.hsl,a=e.hsv,c=e.hex,l=e.renderers,N=e.styles,u=N===void 0?{}:N,L=e.className,g=L===void 0?"":L,y=e.defaultView,T=G(Ye({default:{picker:{width:t,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+o.r+", "+o.g+", "+o.b+", "+o.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},u),{disableAlpha:r});return M.createElement("div",{style:T.picker,className:"chrome-picker "+g},M.createElement("div",{style:T.saturation},M.createElement(zo,{style:T.Saturation,hsl:n,hsv:a,pointer:tEe,onChange:i})),M.createElement("div",{style:T.body},M.createElement("div",{style:T.controls,className:"flexbox-fix"},M.createElement("div",{style:T.color},M.createElement("div",{style:T.swatch},M.createElement("div",{style:T.active}),M.createElement(ri,{renderers:l}))),M.createElement("div",{style:T.toggles},M.createElement("div",{style:T.hue},M.createElement(oi,{style:T.Hue,hsl:n,pointer:Ll,onChange:i})),M.createElement("div",{style:T.alpha},M.createElement(Fa,{style:T.Alpha,rgb:o,hsl:n,pointer:Ll,renderers:l,onChange:i})))),M.createElement(g4,{rgb:o,hsl:n,hex:c,view:y,onChange:i,disableAlpha:r})))};nM.propTypes={width:_.oneOfType([_.string,_.number]),disableAlpha:_.bool,styles:_.object,defaultView:_.oneOf(["hex","rgb","hsl"])};nM.defaultProps={width:225,disableAlpha:!1,styles:{}};const sEe=ve(nM);var iEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.active,a=G({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:eM(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:n,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{style:a.color,color:t,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:a.dot}))},rEe=function(e){var t=e.hex,i=e.rgb,r=e.onChange,o=G({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),n=function(c,l){c.r||c.g||c.b?r({r:c.r||i.r,g:c.g||i.g,b:c.b||i.b,source:"rgb"},l):r({hex:c.hex,source:"hex"},l)};return M.createElement("div",{style:o.fields,className:"flexbox-fix"},M.createElement("div",{style:o.active}),M.createElement(K,{style:{wrap:o.HEXwrap,input:o.HEXinput,label:o.HEXlabel},label:"hex",value:t,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"r",value:i.r,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"g",value:i.g,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"b",value:i.b,onChange:n}))},aM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.colors,o=e.hex,n=e.rgb,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=G(Ye({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},c)),L=function(y,T){y.hex?Wt(y.hex)&&t({hex:y.hex,source:"hex"},T):t(y,T)};return M.createElement(er,{style:u.Compact,styles:c},M.createElement("div",{style:u.compact,className:"compact-picker "+N},M.createElement("div",null,Ns(r,function(g){return M.createElement(iEe,{key:g,color:g,active:g.toLowerCase()===o,onClick:L,onSwatchHover:i})}),M.createElement("div",{style:u.clear})),M.createElement(rEe,{hex:o,rgb:n,onChange:L})))};aM.propTypes={colors:_.arrayOf(_.string),styles:_.object};aM.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}};ve(aM);var oEe=function(e){var t=e.hover,i=e.color,r=e.onClick,o=e.onSwatchHover,n={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},a=G({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:n}},{hover:t});return M.createElement("div",{style:a.swatch},M.createElement(ls,{color:i,onClick:r,onHover:o,focusStyle:n}))};const nEe=Ra(oEe);var MM=function(e){var t=e.width,i=e.colors,r=e.onChange,o=e.onSwatchHover,n=e.triangle,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=G(Ye({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},c),{"hide-triangle":n==="hide","top-left-triangle":n==="top-left","top-right-triangle":n==="top-right","bottom-left-triangle":n==="bottom-left","bottom-right-triangle":n==="bottom-right"}),L=function(y,T){return r({hex:y,source:"hex"},T)};return M.createElement("div",{style:u.card,className:"github-picker "+N},M.createElement("div",{style:u.triangleShadow}),M.createElement("div",{style:u.triangle}),Ns(i,function(g){return M.createElement(nEe,{color:g,key:g,onClick:L,onSwatchHover:o})}))};MM.propTypes={width:_.oneOfType([_.string,_.number]),colors:_.arrayOf(_.string),triangle:_.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:_.object};MM.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}};ve(MM);var aEe=function(e){var t=e.direction,i=G({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:t==="vertical"});return M.createElement("div",{style:i.picker})},MEe=Object.assign||function(s){for(var e=1;e.5});return M.createElement("div",{style:i.picker})},NEe=function(){var e=G({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return M.createElement("div",{style:e.pointer},M.createElement("div",{style:e.left},M.createElement("div",{style:e.leftInside})),M.createElement("div",{style:e.right},M.createElement("div",{style:e.rightInside})))},gl=function(e){var t=e.onClick,i=e.label,r=e.children,o=e.active,n=G({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:o});return M.createElement("div",{style:n.button,onClick:t},i||r)},LEe=function(e){var t=e.rgb,i=e.currentColor,r=G({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:i,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return M.createElement("div",null,M.createElement("div",{style:r.label},"new"),M.createElement("div",{style:r.swatches},M.createElement("div",{style:r.new}),M.createElement("div",{style:r.current})),M.createElement("div",{style:r.label},"current"))},gEe=function(){function s(e,t){for(var i=0;i100&&(N.a=100),N.a/=100,t({h:r.h,s:r.s,l:r.l,a:N.a,source:"rgb"},u))};return M.createElement("div",{style:a.fields,className:"flexbox-fix"},M.createElement("div",{style:a.double},M.createElement(K,{style:{input:a.input,label:a.label},label:"hex",value:o.replace("#",""),onChange:c})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"r",value:i.r,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"g",value:i.g,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"b",value:i.b,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.alpha},M.createElement(K,{style:{input:a.input,label:a.label},label:"a",value:Math.round(i.a*100),onChange:c,dragLabel:"true",dragMax:"100"})))},dEe=Object.assign||function(s){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var jr=24,AEe=y4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?jr:i,o=s.height,n=o===void 0?jr:o,a=s.style,c=a===void 0?{}:a,l=pEe(s,["fill","width","height","style"]);return yl.default.createElement("svg",jl({viewBox:"0 0 "+jr+" "+jr,style:jl({fill:t,width:r,height:n},c)},l),yl.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))},mEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.first,a=e.last,c=e.active,l=G({default:{color:{width:"40px",height:"24px",cursor:"pointer",background:t,marginBottom:"1px"},check:{color:eM(t),marginLeft:"8px",display:"none"}},first:{color:{overflow:"hidden",borderRadius:"2px 2px 0 0"}},last:{color:{overflow:"hidden",borderRadius:"0 0 2px 2px"}},active:{check:{display:"block"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},check:{color:"#333"}},transparent:{check:{color:"#333"}}},{first:n,last:a,active:c,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{color:t,style:l.color,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:l.check},M.createElement(AEe,null)))},OEe=function(e){var t=e.onClick,i=e.onSwatchHover,r=e.group,o=e.active,n=G({default:{group:{paddingBottom:"10px",width:"40px",float:"left",marginRight:"10px"}}});return M.createElement("div",{style:n.group},Ns(r,function(a,c){return M.createElement(mEe,{key:a,color:a,active:a.toLowerCase()===o,first:c===0,last:c===r.length-1,onClick:t,onSwatchHover:i})}))},LM=function(e){var t=e.width,i=e.height,r=e.onChange,o=e.onSwatchHover,n=e.colors,a=e.hex,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=G(Ye({default:{picker:{width:t,height:i},overflow:{height:i,overflowY:"scroll"},body:{padding:"16px 0 6px 16px"},clear:{clear:"both"}}},l)),g=function(T,D){return r({hex:T,source:"hex"},D)};return M.createElement("div",{style:L.picker,className:"swatches-picker "+u},M.createElement(er,null,M.createElement("div",{style:L.overflow},M.createElement("div",{style:L.body},Ns(n,function(y){return M.createElement(OEe,{key:y.toString(),group:y,active:a,onClick:g,onSwatchHover:o})}),M.createElement("div",{style:L.clear})))))};LM.propTypes={width:_.oneOfType([_.string,_.number]),height:_.oneOfType([_.string,_.number]),colors:_.arrayOf(_.arrayOf(_.string)),styles:_.object};LM.defaultProps={width:320,height:240,colors:[[zs[900],zs[700],zs[500],zs[300],zs[100]],[ws[900],ws[700],ws[500],ws[300],ws[100]],[Cs[900],Cs[700],Cs[500],Cs[300],Cs[100]],[Is[900],Is[700],Is[500],Is[300],Is[100]],[ps[900],ps[700],ps[500],ps[300],ps[100]],[As[900],As[700],As[500],As[300],As[100]],[ms[900],ms[700],ms[500],ms[300],ms[100]],[Os[900],Os[700],Os[500],Os[300],Os[100]],[Es[900],Es[700],Es[500],Es[300],Es[100]],["#194D33",Ci[700],Ci[500],Ci[300],Ci[100]],[fs[900],fs[700],fs[500],fs[300],fs[100]],[xs[900],xs[700],xs[500],xs[300],xs[100]],[_s[900],_s[700],_s[500],_s[300],_s[100]],[Ss[900],Ss[700],Ss[500],Ss[300],Ss[100]],[ks[900],ks[700],ks[500],ks[300],ks[100]],[Ys[900],Ys[700],Ys[500],Ys[300],Ys[100]],[vs[900],vs[700],vs[500],vs[300],vs[100]],[bs[900],bs[700],bs[500],bs[300],bs[100]],["#000000","#525252","#969696","#D9D9D9","#FFFFFF"]],styles:{}};ve(LM);var gM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.hex,o=e.colors,n=e.width,a=e.triangle,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=G(Ye({default:{card:{width:n,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},l),{"hide-triangle":a==="hide","top-left-triangle":a==="top-left","top-right-triangle":a==="top-right"}),g=function(T,D){Wt(T)&&t({hex:T,source:"hex"},D)};return M.createElement("div",{style:L.card,className:"twitter-picker "+u},M.createElement("div",{style:L.triangleShadow}),M.createElement("div",{style:L.triangle}),M.createElement("div",{style:L.body},Ns(o,function(y,T){return M.createElement(ls,{key:T,color:y,hex:y,style:L.swatch,onClick:g,onHover:i,focusStyle:{boxShadow:"0 0 4px "+y}})}),M.createElement("div",{style:L.hash},"#"),M.createElement(K,{label:null,style:{input:L.input},value:r.replace("#",""),onChange:g}),M.createElement("div",{style:L.clear})))};gM.propTypes={width:_.oneOfType([_.string,_.number]),triangle:_.oneOf(["hide","top-left","top-right"]),colors:_.arrayOf(_.string),styles:_.object};gM.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}};ve(gM);var jM=function(e){var t=G({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",border:"2px #fff solid",transform:"translate(-12px, -13px)",background:"hsl("+Math.round(e.hsl.h)+", "+Math.round(e.hsl.s*100)+"%, "+Math.round(e.hsl.l*100)+"%)"}}});return M.createElement("div",{style:t.picker})};jM.propTypes={hsl:_.shape({h:_.number,s:_.number,l:_.number,a:_.number})};jM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var yM=function(e){var t=G({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",transform:"translate(-10px, -7px)",background:"hsl("+Math.round(e.hsl.h)+", 100%, 50%)",border:"2px white solid"}}});return M.createElement("div",{style:t.picker})};yM.propTypes={hsl:_.shape({h:_.number,s:_.number,l:_.number,a:_.number})};yM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var EEe=function(e){var t=e.onChange,i=e.rgb,r=e.hsl,o=e.hex,n=e.hsv,a=function(g,y){if(g.hex)Wt(g.hex)&&t({hex:g.hex,source:"hex"},y);else if(g.rgb){var T=g.rgb.split(",");Go(g.rgb,"rgb")&&t({r:T[0],g:T[1],b:T[2],a:1,source:"rgb"},y)}else if(g.hsv){var D=g.hsv.split(",");Go(g.hsv,"hsv")&&(D[2]=D[2].replace("%",""),D[1]=D[1].replace("%",""),D[0]=D[0].replace("°",""),D[1]==1?D[1]=.01:D[2]==1&&(D[2]=.01),t({h:Number(D[0]),s:Number(D[1]),v:Number(D[2]),source:"hsv"},y))}else if(g.hsl){var z=g.hsl.split(",");Go(g.hsl,"hsl")&&(z[2]=z[2].replace("%",""),z[1]=z[1].replace("%",""),z[0]=z[0].replace("°",""),u[1]==1?u[1]=.01:u[2]==1&&(u[2]=.01),t({h:Number(z[0]),s:Number(z[1]),v:Number(z[2]),source:"hsl"},y))}},c=G({default:{wrap:{display:"flex",height:"100px",marginTop:"4px"},fields:{width:"100%"},column:{paddingTop:"10px",display:"flex",justifyContent:"space-between"},double:{padding:"0px 4.4px",boxSizing:"border-box"},input:{width:"100%",height:"38px",boxSizing:"border-box",padding:"4px 10% 3px",textAlign:"center",border:"1px solid #dadce0",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",fontFamily:"Roboto,Arial,sans-serif"},input2:{height:"38px",width:"100%",border:"1px solid #dadce0",boxSizing:"border-box",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",paddingLeft:"10px",fontFamily:"Roboto,Arial,sans-serif"},label:{textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"35px",top:"-6px",left:"0",right:"0",marginLeft:"auto",marginRight:"auto",fontFamily:"Roboto,Arial,sans-serif"},label2:{left:"10px",textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"32px",top:"-6px",fontFamily:"Roboto,Arial,sans-serif"},single:{flexGrow:"1",margin:"0px 4.4px"}}}),l=i.r+", "+i.g+", "+i.b,N=Math.round(r.h)+"°, "+Math.round(r.s*100)+"%, "+Math.round(r.l*100)+"%",u=Math.round(n.h)+"°, "+Math.round(n.s*100)+"%, "+Math.round(n.v*100)+"%";return M.createElement("div",{style:c.wrap,className:"flexbox-fix"},M.createElement("div",{style:c.fields},M.createElement("div",{style:c.double},M.createElement(K,{style:{input:c.input,label:c.label},label:"hex",value:o,onChange:a})),M.createElement("div",{style:c.column},M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"rgb",value:l,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsv",value:u,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsl",value:N,onChange:a})))))},TM=function(e){var t=e.width,i=e.onChange,r=e.rgb,o=e.hsl,n=e.hsv,a=e.hex,c=e.header,l=e.styles,N=l===void 0?{}:l,u=e.className,L=u===void 0?"":u,g=G(Ye({default:{picker:{width:t,background:"#fff",border:"1px solid #dfe1e5",boxSizing:"initial",display:"flex",flexWrap:"wrap",borderRadius:"8px 8px 0px 0px"},head:{height:"57px",width:"100%",paddingTop:"16px",paddingBottom:"16px",paddingLeft:"16px",fontSize:"20px",boxSizing:"border-box",fontFamily:"Roboto-Regular,HelveticaNeue,Arial,sans-serif"},saturation:{width:"70%",padding:"0px",position:"relative",overflow:"hidden"},swatch:{width:"30%",height:"228px",padding:"0px",background:"rgba("+r.r+", "+r.g+", "+r.b+", 1)",position:"relative",overflow:"hidden"},body:{margin:"auto",width:"95%"},controls:{display:"flex",boxSizing:"border-box",height:"52px",paddingTop:"22px"},color:{width:"32px"},hue:{height:"8px",position:"relative",margin:"0px 16px 0px 16px",width:"100%"},Hue:{radius:"2px"}}},N));return M.createElement("div",{style:g.picker,className:"google-picker "+L},M.createElement("div",{style:g.head},c),M.createElement("div",{style:g.swatch}),M.createElement("div",{style:g.saturation},M.createElement(zo,{hsl:o,hsv:n,pointer:jM,onChange:i})),M.createElement("div",{style:g.body},M.createElement("div",{style:g.controls,className:"flexbox-fix"},M.createElement("div",{style:g.hue},M.createElement(oi,{style:g.Hue,hsl:o,radius:"4px",pointer:yM,onChange:i}))),M.createElement(EEe,{rgb:r,hsl:o,hex:a,hsv:n,onChange:i})))};TM.propTypes={width:_.oneOfType([_.string,_.number]),styles:_.object,header:_.string};TM.defaultProps={width:652,styles:{},header:"Color picker"};ve(TM);const He={color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{mt:"16px",p:"5px",backgroundColor:"background.paper",borderRadius:"1px",boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{"& .MuiPaper-root":{textAlign:"right",backgroundColor:"#00000000",boxShadow:"none"}},popoverList:{padding:0},closeButton:s=>({backgroundColor:`${s.palette.background.paper} !important`,borderRadius:"0 0 25% 25%","&:hover":{backgroundColor:`${s.palette.secondary.main} !important`}}),textDense:{mt:0,mb:0},iconButton:{width:16,height:16},button:{width:32,height:32,minWidth:32,minHeight:32}};class Ii extends x.Component{constructor(e){super(e),this.state={displayColorPicker:!1,color:this.props.value||this.props.color||"",anchorEl:null}}handleClick=e=>{this.setState({displayColorPicker:!this.state.displayColorPicker,anchorEl:this.state.displayColorPicker?null:e.currentTarget})};handleClose=()=>{this.setState({displayColorPicker:!1,anchorEl:null})};static getColor(e,t){if(e&&typeof e=="object"){const i=e;if(i.rgb)return t?`#${i.rgb.r.toString(16).padStart(2,"0")}${i.rgb.g.toString(16).padStart(2,"0")}${i.rgb.b.toString(16).padStart(2,"0")}`:`rgba(${i.rgb.r},${i.rgb.g},${i.rgb.b},${i.rgb.a})`;const r=e;return t?`#${r.r.toString(16).padStart(2,"0")}${r.g.toString(16).padStart(2,"0")}${r.b.toString(16).padStart(2,"0")}`:`rgba(${r.r},${r.g},${r.b},${r.a})`}return typeof e=="string"?t?Ii.rgb2hex(e||""):e||"":""}static rgb2hex(e){const t=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(t){const i=parseInt(t[1],10).toString(16).padStart(2,"0"),r=parseInt(t[2],10).toString(16).padStart(2,"0"),o=parseInt(t[3],10).toString(16).padStart(2,"0");return(t==null?void 0:t.length)===4?`#${i}${r}${o}`:e}return e}handleChange=e=>{this.setState({color:e},()=>this.props.onChange&&this.props.onChange(Ii.getColor(e)))};componentDidUpdate(e,t){const i=Ii.getColor(this.props.color||this.props.value||"");i!==t.color&&this.setState({color:i})}renderCustomPalette(){return this.props.customPalette?M.createElement("div",{style:{width:"100%",display:"flex",flexWrap:"wrap"}},this.props.customPalette.map(e=>M.createElement(j.Button,{style:He.button,key:e,onClick:()=>{this.handleChange(e),setTimeout(()=>this.handleClose(),300)}},M.createElement("div",{style:{...He.iconButton,background:e}})))):null}render(){var i;const e={...this.props.style||{}};e.position="relative";const{color:t}=this.state;return M.createElement(j.Box,{component:"div",style:e,sx:this.props.sx||void 0,className:this.props.className||""},this.props.noInputField?null:M.createElement(j.TextField,{disabled:this.props.disabled,variant:"standard",id:"ar_color_picker_name",label:this.props.label||this.props.name,value:t||"",margin:"dense",sx:{"&.MuiFormControl-root":He.textDense,width:t?"calc(100% - 80px)":"calc(100% - 56px)",mr:t?void 0:1},onChange:r=>this.handleChange(r.target.value)}),!this.props.noInputField&&t?M.createElement(j.IconButton,{disabled:this.props.disabled,onClick:()=>this.handleChange(""),size:"small",style:this.props.label||this.props.name?He.delButton:void 0},M.createElement(nt,null)):null,M.createElement(j.Box,{component:"div",onClick:r=>!this.props.disabled&&this.handleClick(r),title:d.t("ra_Select color"),sx:{...He.swatch,...this.props.disabled?He.swatchDisabled:void 0,background:t?void 0:"transparent",border:t?void 0:"1px dashed #ccc",boxSizing:"border-box",marginTop:this.props.noInputField||!(this.props.label||this.props.name)?0:void 0}},M.createElement("div",{style:{...He.color,background:Ii.getColor(t),width:this.props.noInputField?this.props.barWidth||16:this.props.barWidth||36}})),this.state.displayColorPicker&&!this.props.disabled?M.createElement(j.Menu,{sx:{...He.popover,"&. MuiMenu-list":He.popoverList},anchorEl:this.state.anchorEl,open:!0,onClose:()=>this.handleClose()},M.createElement(sEe,{color:this.state.color||void 0,onChangeComplete:r=>this.handleChange(r.rgb),styles:{default:{picker:{backgroundColor:((i=this.props.theme)==null?void 0:i.palette.background.paper)||"#888"}}}}),t&&this.props.noInputField?M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleChange("")},M.createElement(nt,null)):null,M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleClose()},M.createElement(Ne,null)),this.renderCustomPalette()):null)}}var T4={exports:{}};(function(s,e){(function(i,r){s.exports=r()})(globalThis,()=>(()=>{var t={949:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.CronParser=void 0;var l=c(515),N=function(){function u(L,g,y){g===void 0&&(g=!0),y===void 0&&(y=!1),this.expression=L,this.dayOfWeekStartIndexZero=g,this.monthStartIndexZero=y}return u.prototype.parse=function(){var L,g,y=(L=this.expression)!==null&&L!==void 0?L:"";if(y.startsWith("@")){var T=this.parseSpecial(this.expression);g=this.extractParts(T)}else g=this.extractParts(this.expression);return this.normalize(g),this.validate(g),g},u.prototype.parseSpecial=function(L){var g={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"},y=g[L];if(!y)throw new Error("Unknown special expression.");return y},u.prototype.extractParts=function(L){if(!this.expression)throw new Error("cron expression is empty");for(var g=L.trim().split(/[ ]+/),y=0;y7)throw new Error("Expression has ".concat(g.length," parts; too many!"));return g},u.prototype.normalize=function(L){var g=this;if(L[3]=L[3].replace("?","*"),L[5]=L[5].replace("?","*"),L[2]=L[2].replace("?","*"),L[0].indexOf("0/")==0&&(L[0]=L[0].replace("0/","*/")),L[1].indexOf("0/")==0&&(L[1]=L[1].replace("0/","*/")),L[2].indexOf("0/")==0&&(L[2]=L[2].replace("0/","*/")),L[3].indexOf("1/")==0&&(L[3]=L[3].replace("1/","*/")),L[4].indexOf("1/")==0&&(L[4]=L[4].replace("1/","*/")),L[6].indexOf("1/")==0&&(L[6]=L[6].replace("1/","*/")),L[5]=L[5].replace(/(^\d)|([^#/\s]\d)/g,function(I){var h=I.replace(/\D/,""),A=h;return g.dayOfWeekStartIndexZero?h=="7"&&(A="0"):A=(parseInt(h)-1).toString(),I.replace(h,A)}),L[5]=="L"&&(L[5]="6"),L[3]=="?"&&(L[3]="*"),L[3].indexOf("W")>-1&&(L[3].indexOf(",")>-1||L[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var y={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var T in y)L[5]=L[5].replace(new RegExp(T,"gi"),y[T].toString());L[4]=L[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(I){var h=I.replace(/\D/,""),A=h;return g.monthStartIndexZero&&(A=(parseInt(h)+1).toString()),I.replace(h,A)});var D={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var z in D)L[4]=L[4].replace(new RegExp(z,"gi"),D[z].toString());L[0]=="0"&&(L[0]=""),!/\*|\-|\,|\//.test(L[2])&&(/\*|\//.test(L[1])||/\*|\//.test(L[0]))&&(L[2]+="-".concat(L[2]));for(var p=0;p-1&&!/^\*|\-|\,/.test(L[p])){var C=null;switch(p){case 4:C="12";break;case 5:C="6";break;case 6:C="9999";break;default:C=null;break}if(C!==null){var m=L[p].split("/");L[p]="".concat(m[0],"-").concat(C,"/").concat(m[1])}}},u.prototype.validate=function(L){var g="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(L[0],g),this.validateOnlyExpectedCharactersFound(L[1],g),this.validateOnlyExpectedCharactersFound(L[2],g),this.validateOnlyExpectedCharactersFound(L[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(L[4],g),this.validateOnlyExpectedCharactersFound(L[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(L[6],g),this.validateAnyRanges(L)},u.prototype.validateAnyRanges=function(L){l.default.secondRange(L[0]),l.default.minuteRange(L[1]),l.default.hourRange(L[2]),l.default.dayOfMonthRange(L[3]),l.default.monthRange(L[4],this.monthStartIndexZero),l.default.dayOfWeekRange(L[5],this.dayOfWeekStartIndexZero)},u.prototype.validateOnlyExpectedCharactersFound=function(L,g){var y=L.match(new RegExp("[^".concat(g,"]+"),"gi"));if(y&&y.length)throw new Error("Expression contains invalid values: '".concat(y.toString(),"'"))},u}();a.CronParser=N},333:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.ExpressionDescriptor=void 0;var l=c(823),N=c(949),u=function(){function L(g,y){if(this.expression=g,this.options=y,this.expressionParts=new Array(5),!this.options.locale&&L.defaultLocale&&(this.options.locale=L.defaultLocale),!L.locales[this.options.locale]){var T=Object.keys(L.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(T,"'.")),this.options.locale=T}this.i18n=L.locales[this.options.locale],y.use24HourTimeFormat===void 0&&(y.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return L.toString=function(g,y){var T=y===void 0?{}:y,D=T.throwExceptionOnParseError,z=D===void 0?!0:D,p=T.verbose,C=p===void 0?!1:p,m=T.dayOfWeekStartIndexZero,I=m===void 0?!0:m,h=T.monthStartIndexZero,A=h===void 0?!1:h,S=T.use24HourTimeFormat,f=T.locale,P=f===void 0?null:f,v=T.tzOffset,ee=v===void 0?0:v,ae={throwExceptionOnParseError:z,verbose:C,dayOfWeekStartIndexZero:I,monthStartIndexZero:A,use24HourTimeFormat:S,locale:P,tzOffset:ee};ae.tzOffset&&console.warn("'tzOffset' option has been deprecated and will be removed in a future release.");var J=new L(g,ae);return J.getFullDescription()},L.initialize=function(g,y){y===void 0&&(y="en"),L.specialCharacters=["/","-",",","*"],L.defaultLocale=y,g.load(L.locales)},L.prototype.getFullDescription=function(){var g="";try{var y=new N.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);this.expressionParts=y.parse();var T=this.getTimeOfDayDescription(),D=this.getDayOfMonthDescription(),z=this.getMonthDescription(),p=this.getDayOfWeekDescription(),C=this.getYearDescription();g+=T+D+p+z+C,g=this.transformVerbosity(g,!!this.options.verbose),g=g.charAt(0).toLocaleUpperCase()+g.substr(1)}catch(m){if(!this.options.throwExceptionOnParseError)g=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(m)}return g},L.prototype.getTimeOfDayDescription=function(){var g=this.expressionParts[0],y=this.expressionParts[1],T=this.expressionParts[2],D="";if(!l.StringUtilities.containsAny(y,L.specialCharacters)&&!l.StringUtilities.containsAny(T,L.specialCharacters)&&!l.StringUtilities.containsAny(g,L.specialCharacters))D+=this.i18n.atSpace()+this.formatTime(T,y,g);else if(!g&&y.indexOf("-")>-1&&!(y.indexOf(",")>-1)&&!(y.indexOf("/")>-1)&&!l.StringUtilities.containsAny(T,L.specialCharacters)){var z=y.split("-");D+=l.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(T,z[0],""),this.formatTime(T,z[1],""))}else if(!g&&T.indexOf(",")>-1&&T.indexOf("-")==-1&&T.indexOf("/")==-1&&!l.StringUtilities.containsAny(y,L.specialCharacters)){var p=T.split(",");D+=this.i18n.at();for(var C=0;C-1?p=D.substring(0,D.indexOf("#")):D.indexOf("L")>-1&&(p=p.replace("L",""));var C=parseInt(p);if(g.options.tzOffset){var m=g.expressionParts[2],I=parseInt(m)+(g.options.tzOffset?g.options.tzOffset:0);I>=24?C++:I<0&&C--,C>6?C=0:C<0&&(C=6)}var h=g.i18n.daysOfTheWeekInCase?g.i18n.daysOfTheWeekInCase(z)[C]:y[C];if(D.indexOf("#")>-1){var A=null,S=D.substring(D.indexOf("#")+1),f=D.substring(0,D.indexOf("#"));switch(S){case"1":A=g.i18n.first(f);break;case"2":A=g.i18n.second(f);break;case"3":A=g.i18n.third(f);break;case"4":A=g.i18n.fourth(f);break;case"5":A=g.i18n.fifth(f);break}h=A+" "+h}return h},function(D){return parseInt(D)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0DaysOfTheWeek(D),D)},function(D){var z=D.substring(0,D.indexOf("-")),p=g.expressionParts[3]!="*";return p?g.i18n.commaAndX0ThroughX1(z):g.i18n.commaX0ThroughX1(z)},function(D){var z=null;if(D.indexOf("#")>-1){var p=D.substring(D.indexOf("#")+1),C=D.substring(0,D.indexOf("#"));z=g.i18n.commaOnThe(p,C).trim()+g.i18n.spaceX0OfTheMonth()}else if(D.indexOf("L")>-1)z=g.i18n.commaOnTheLastX0OfTheMonth(D.replace("L",""));else{var m=g.expressionParts[3]!="*";z=m?g.i18n.commaAndOnX0():g.i18n.commaOnlyOnX0(D)}return z}),T},L.prototype.getMonthDescription=function(){var g=this,y=this.i18n.monthsOfTheYear(),T=this.getSegmentDescription(this.expressionParts[4],"",function(D,z){return z&&g.i18n.monthsOfTheYearInCase?g.i18n.monthsOfTheYearInCase(z)[parseInt(D)-1]:y[parseInt(D)-1]},function(D){return parseInt(D)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0Months(D),D)},function(D){return g.i18n.commaMonthX0ThroughMonthX1()||g.i18n.commaX0ThroughX1()},function(D){return g.i18n.commaOnlyInMonthX0?g.i18n.commaOnlyInMonthX0():g.i18n.commaOnlyInX0()});return T},L.prototype.getDayOfMonthDescription=function(){var g=this,y=null,T=this.expressionParts[3];switch(T){case"L":y=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":y=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var D=T.match(/(\d{1,2}W)|(W\d{1,2})/);if(D){var z=parseInt(D[0].replace("W","")),p=z==1?this.i18n.firstWeekday():l.StringUtilities.format(this.i18n.weekdayNearestDayX0(),z.toString());y=l.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),p);break}else{var C=T.match(/L-(\d{1,2})/);if(C){var m=C[1];y=l.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(m),m);break}else{if(T=="*"&&this.expressionParts[5]!="*")return"";y=this.getSegmentDescription(T,this.i18n.commaEveryDay(),function(I){return I=="L"?g.i18n.lastDay():g.i18n.dayX0?l.StringUtilities.format(g.i18n.dayX0(),I):I},function(I){return I=="1"?g.i18n.commaEveryDay():g.i18n.commaEveryX0Days(I)},function(I){return g.i18n.commaBetweenDayX0AndX1OfTheMonth(I)},function(I){return g.i18n.commaOnDayX0OfTheMonth(I)})}break}}return y},L.prototype.getYearDescription=function(){var g=this,y=this.getSegmentDescription(this.expressionParts[6],"",function(T){return/^\d+$/.test(T)?new Date(parseInt(T),1).getFullYear().toString():T},function(T){return l.StringUtilities.format(g.i18n.commaEveryX0Years(T),T)},function(T){return g.i18n.commaYearX0ThroughYearX1()||g.i18n.commaX0ThroughX1()},function(T){return g.i18n.commaOnlyInYearX0?g.i18n.commaOnlyInYearX0():g.i18n.commaOnlyInX0()});return y},L.prototype.getSegmentDescription=function(g,y,T,D,z,p){var C=null,m=g.indexOf("/")>-1,I=g.indexOf("-")>-1,h=g.indexOf(",")>-1;if(!g)C="";else if(g==="*")C=y;else if(!m&&!I&&!h)C=l.StringUtilities.format(p(g),T(g));else if(h){for(var A=g.split(","),S="",f=0;f0&&A.length>2&&(S+=",",f0&&A.length>1&&(f==A.length-1||A.length==2)&&(S+="".concat(this.i18n.spaceAnd()," ")),A[f].indexOf("/")>-1||A[f].indexOf("-")>-1){var P=A[f].indexOf("-")>-1&&A[f].indexOf("/")==-1,v=this.getSegmentDescription(A[f],y,T,D,P?this.i18n.commaX0ThroughX1:z,p);P&&(v=v.replace(", ","")),S+=v}else m?S+=this.getSegmentDescription(A[f],y,T,D,z,p):S+=T(A[f]);m?C=S:C=l.StringUtilities.format(p(g),S)}else if(m){var A=g.split("/");if(C=l.StringUtilities.format(D(A[1]),A[1]),A[0].indexOf("-")>-1){var ee=this.generateRangeSegmentDescription(A[0],z,T);ee.indexOf(", ")!=0&&(C+=", "),C+=ee}else if(A[0].indexOf("*")==-1){var ae=l.StringUtilities.format(p(A[0]),T(A[0]));ae=ae.replace(", ",""),C+=l.StringUtilities.format(this.i18n.commaStartingX0(),ae)}}else I&&(C=this.generateRangeSegmentDescription(g,z,T));return C},L.prototype.generateRangeSegmentDescription=function(g,y,T){var D="",z=g.split("-"),p=T(z[0],1),C=T(z[1],2),m=y(g);return D+=l.StringUtilities.format(m,p,C),D},L.prototype.formatTime=function(g,y,T){var D=0,z=0;this.options.tzOffset&&(D=this.options.tzOffset>0?Math.floor(this.options.tzOffset):Math.ceil(this.options.tzOffset),z=parseFloat((this.options.tzOffset%1).toFixed(2)),z!=0&&(z*=60));var p=parseInt(g)+D,C=parseInt(y)+z;C>=60?(C-=60,p+=1):C<0&&(C+=60,p-=1),p>=24?p=p-24:p<0&&(p=24+p);var m="",I=!1;this.options.use24HourTimeFormat||(I=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),m=I?"".concat(this.getPeriod(p)," "):" ".concat(this.getPeriod(p)),p>12&&(p-=12),p===0&&(p=12));var h="";return T&&(h=":".concat(("00"+T).substring(T.length))),"".concat(I?m:"").concat(("00"+p.toString()).substring(p.toString().length),":").concat(("00"+C.toString()).substring(C.toString().length)).concat(h).concat(I?"":m)},L.prototype.transformVerbosity=function(g,y){if(!y&&(g=g.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),g=g.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),g=g.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),g=g.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var T=0,D=Object.entries(this.i18n.conciseVerbosityReplacements());T=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},L.locales={},L}();a.ExpressionDescriptor=u},747:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.enLocaleLoader=void 0;var l=c(486),N=function(){function u(){}return u.prototype.load=function(L){L.en=new l.en},u}();a.enLocaleLoader=N},486:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.en=void 0;var c=function(){function l(){}return l.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},l.prototype.atX0MinutesPastTheHourGt20=function(){return null},l.prototype.commaMonthX0ThroughMonthX1=function(){return null},l.prototype.commaYearX0ThroughYearX1=function(){return null},l.prototype.use24HourTimeFormatByDefault=function(){return!1},l.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},l.prototype.everyMinute=function(){return"every minute"},l.prototype.everyHour=function(){return"every hour"},l.prototype.atSpace=function(){return"At "},l.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},l.prototype.at=function(){return"At"},l.prototype.spaceAnd=function(){return" and"},l.prototype.everySecond=function(){return"every second"},l.prototype.everyX0Seconds=function(){return"every %s seconds"},l.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},l.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},l.prototype.everyX0Minutes=function(){return"every %s minutes"},l.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},l.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},l.prototype.everyX0Hours=function(){return"every %s hours"},l.prototype.betweenX0AndX1=function(){return"between %s and %s"},l.prototype.atX0=function(){return"at %s"},l.prototype.commaEveryDay=function(){return", every day"},l.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},l.prototype.commaX0ThroughX1=function(){return", %s through %s"},l.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},l.prototype.first=function(){return"first"},l.prototype.second=function(){return"second"},l.prototype.third=function(){return"third"},l.prototype.fourth=function(){return"fourth"},l.prototype.fifth=function(){return"fifth"},l.prototype.commaOnThe=function(){return", on the "},l.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},l.prototype.lastDay=function(){return"the last day"},l.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},l.prototype.commaOnlyOnX0=function(){return", only on %s"},l.prototype.commaAndOnX0=function(){return", and on %s"},l.prototype.commaEveryX0Months=function(){return", every %s months"},l.prototype.commaOnlyInX0=function(){return", only in %s"},l.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},l.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},l.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},l.prototype.firstWeekday=function(){return"first weekday"},l.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},l.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},l.prototype.commaEveryX0Days=function(){return", every %s days"},l.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},l.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},l.prototype.commaEveryHour=function(){return", every hour"},l.prototype.commaEveryX0Years=function(){return", every %s years"},l.prototype.commaStartingX0=function(){return", starting %s"},l.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},l.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},l}();a.en=c},515:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0});function c(N,u){if(!N)throw new Error(u)}var l=function(){function N(){}return N.secondRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"seconds part must be >= 0 and <= 59")}},N.minuteRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"minutes part must be >= 0 and <= 59")}},N.hourRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=23,"hours part must be >= 0 and <= 23")}},N.dayOfMonthRange=function(u){for(var L=u.split(","),g=0;g=1&&y<=31,"DOM part must be >= 1 and <= 31")}},N.monthRange=function(u,L){for(var g=u.split(","),y=0;y=1&&T<=12,L?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},N.dayOfWeekRange=function(u,L){for(var g=u.split(","),y=0;y=0&&T<=6,L?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},N}();a.default=l},823:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.StringUtilities=void 0;var c=function(){function l(){}return l.format=function(N){for(var u=[],L=1;L-1})},l}();a.StringUtilities=c}},i={};function r(n){var a=i[n];if(a!==void 0)return a.exports;var c=i[n]={exports:{}};return t[n](c,c.exports,r),c.exports}var o={};return(()=>{var n=o;Object.defineProperty(n,"__esModule",{value:!0}),n.toString=void 0;var a=r(333),c=r(747);a.ExpressionDescriptor.initialize(new c.enLocaleLoader),n.default=a.ExpressionDescriptor;var l=a.ExpressionDescriptor.toString;n.toString=l})(),o})())})(T4);var lt=T4.exports;const fEe=$L(lt);var xEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.fr=void 0;var N=function(){function u(){}return u.prototype.conciseVerbosityReplacements=function(){return{"de le":"du"}},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe."},u.prototype.everyMinute=function(){return"toutes les minutes"},u.prototype.everyHour=function(){return"toutes les heures"},u.prototype.atSpace=function(){return"À "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Toutes les minutes entre %s et %s"},u.prototype.at=function(){return"À"},u.prototype.spaceAnd=function(){return" et"},u.prototype.everySecond=function(){return"toutes les secondes"},u.prototype.everyX0Seconds=function(){return"toutes les %s secondes"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"les secondes entre %s et %s après la minute"},u.prototype.atX0SecondsPastTheMinute=function(){return"%s secondes après la minute"},u.prototype.everyX0Minutes=function(){return"toutes les %s minutes"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"les minutes entre %s et %s après l'heure"},u.prototype.atX0MinutesPastTheHour=function(){return"%s minutes après l'heure"},u.prototype.everyX0Hours=function(){return"toutes les %s heures"},u.prototype.betweenX0AndX1=function(){return"de %s à %s"},u.prototype.atX0=function(){return"%s"},u.prototype.commaEveryDay=function(){return", tous les jours"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", tous les %s jours de la semaine"},u.prototype.commaX0ThroughX1=function(){return", de %s à %s"},u.prototype.commaAndX0ThroughX1=function(){return", et de %s à %s"},u.prototype.first=function(){return"premier"},u.prototype.second=function(){return"second"},u.prototype.third=function(){return"troisième"},u.prototype.fourth=function(){return"quatrième"},u.prototype.fifth=function(){return"cinquième"},u.prototype.commaOnThe=function(){return", le "},u.prototype.spaceX0OfTheMonth=function(){return" %s du mois"},u.prototype.lastDay=function(){return"le dernier jour"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", le dernier %s du mois"},u.prototype.commaOnlyOnX0=function(){return", uniquement le %s"},u.prototype.commaAndOnX0=function(){return", et %s"},u.prototype.commaEveryX0Months=function(){return", tous les %s mois"},u.prototype.commaOnlyInX0=function(){return", uniquement en %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", le dernier jour du mois"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", le dernier jour ouvrable du mois"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s jours avant le dernier jour du mois"},u.prototype.firstWeekday=function(){return"premier jour ouvrable"},u.prototype.weekdayNearestDayX0=function(){return"jour ouvrable le plus proche du %s"},u.prototype.commaOnTheX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryX0Days=function(){return", tous les %s jours"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", du %s au %s du mois"},u.prototype.commaOnDayX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryHour=function(){return", chaque heure"},u.prototype.commaEveryX0Years=function(){return", tous les %s ans"},u.prototype.commaDaysX0ThroughX1=function(){return", du %s au %s"},u.prototype.commaStartingX0=function(){return", à partir de %s"},u.prototype.daysOfTheWeek=function(){return["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},u.prototype.monthsOfTheYear=function(){return["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},u}();return l.fr=N,c().locales.fr=new N,n})())})(xEe);var _Ee={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.es=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocurrió un error mientras se generaba la descripción de la expresión. Revise la sintaxis de la expresión de cron."},u.prototype.at=function(){return"A las"},u.prototype.atSpace=function(){return"A las "},u.prototype.atX0=function(){return"a las %s"},u.prototype.atX0MinutesPastTheHour=function(){return"a los %s minutos de la hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"a los %s segundos del minuto"},u.prototype.betweenX0AndX1=function(){return"entre las %s y las %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre los días %s y %s del mes"},u.prototype.commaEveryDay=function(){return", cada día"},u.prototype.commaEveryX0Days=function(){return", cada %s días"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s días de la semana"},u.prototype.commaEveryX0Months=function(){return", cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", el día %s del mes"},u.prototype.commaOnlyInX0=function(){return", sólo en %s"},u.prototype.commaOnlyOnX0=function(){return", sólo el %s"},u.prototype.commaAndOnX0=function(){return", y el %s"},u.prototype.commaOnThe=function(){return", en el "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", en el último día del mes"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en el último día de la semana del mes"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s días antes del último día del mes"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", en el último %s del mes"},u.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", y de %s a %s"},u.prototype.everyHour=function(){return"cada hora"},u.prototype.everyMinute=function(){return"cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minuto entre las %s y las %s"},u.prototype.everySecond=function(){return"cada segundo"},u.prototype.everyX0Hours=function(){return"cada %s horas"},u.prototype.everyX0Minutes=function(){return"cada %s minutos"},u.prototype.everyX0Seconds=function(){return"cada %s segundos"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primero"},u.prototype.firstWeekday=function(){return"primer día de la semana"},u.prototype.fourth=function(){return"cuarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minuto %s al %s pasada la hora"},u.prototype.second=function(){return"segundo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En los segundos %s al %s de cada minuto"},u.prototype.spaceAnd=function(){return" y"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},u.prototype.lastDay=function(){return"el último día"},u.prototype.third=function(){return"tercer"},u.prototype.weekdayNearestDayX0=function(){return"día de la semana más próximo al %s"},u.prototype.commaEveryX0Years=function(){return", cada %s años"},u.prototype.commaStartingX0=function(){return", comenzando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},u.prototype.monthsOfTheYear=function(){return["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},u}();return l.es=N,c().locales.es=new N,n})())})(_Ee);var SEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.de=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"jede Minute"},u.prototype.everyHour=function(){return"jede Stunde"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Beim Generieren der Ausdrucksbeschreibung ist ein Fehler aufgetreten. Überprüfen Sie die Syntax des Cron-Ausdrucks."},u.prototype.atSpace=function(){return"Um "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Jede Minute zwischen %s und %s"},u.prototype.at=function(){return"Um"},u.prototype.spaceAnd=function(){return" und"},u.prototype.everySecond=function(){return"Jede Sekunde"},u.prototype.everyX0Seconds=function(){return"alle %s Sekunden"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"Sekunden %s bis %s"},u.prototype.atX0SecondsPastTheMinute=function(){return"bei Sekunde %s"},u.prototype.everyX0Minutes=function(){return"alle %s Minuten"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"Minuten %s bis %s"},u.prototype.atX0MinutesPastTheHour=function(){return"bei Minute %s"},u.prototype.everyX0Hours=function(){return"alle %s Stunden"},u.prototype.betweenX0AndX1=function(){return"zwischen %s und %s"},u.prototype.atX0=function(){return"um %s"},u.prototype.commaEveryDay=function(){return", jeden Tag"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", alle %s Tage der Woche"},u.prototype.commaX0ThroughX1=function(){return", %s bis %s"},u.prototype.commaAndX0ThroughX1=function(){return", und %s bis %s"},u.prototype.first=function(){return"ersten"},u.prototype.second=function(){return"zweiten"},u.prototype.third=function(){return"dritten"},u.prototype.fourth=function(){return"vierten"},u.prototype.fifth=function(){return"fünften"},u.prototype.commaOnThe=function(){return", am "},u.prototype.spaceX0OfTheMonth=function(){return" %s des Monats"},u.prototype.lastDay=function(){return"der letzte Tag"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", am letzten %s des Monats"},u.prototype.commaOnlyOnX0=function(){return", nur jeden %s"},u.prototype.commaAndOnX0=function(){return", und jeden %s"},u.prototype.commaEveryX0Months=function(){return", alle %s Monate"},u.prototype.commaOnlyInX0=function(){return", nur im %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", am letzten Tag des Monats"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", am letzten Werktag des Monats"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s tage vor dem letzten Tag des Monats"},u.prototype.firstWeekday=function(){return"ersten Werktag"},u.prototype.weekdayNearestDayX0=function(){return"Werktag am nächsten zum %s Tag"},u.prototype.commaOnTheX0OfTheMonth=function(){return", am %s des Monats"},u.prototype.commaEveryX0Days=function(){return", alle %s Tage"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", zwischen Tag %s und %s des Monats"},u.prototype.commaOnDayX0OfTheMonth=function(){return", an Tag %s des Monats"},u.prototype.commaEveryX0Years=function(){return", alle %s Jahre"},u.prototype.commaStartingX0=function(){return", beginnend %s"},u.prototype.daysOfTheWeek=function(){return["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},u.prototype.monthsOfTheYear=function(){return["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},u}();return l.de=N,c().locales.de=new N,n})())})(SEe);var kEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.it=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"È verificato un errore durante la generazione la descrizione espressione. Controllare la sintassi delle espressioni cron."},u.prototype.at=function(){return"Alle"},u.prototype.atSpace=function(){return"Alle "},u.prototype.atX0=function(){return"alle %s"},u.prototype.atX0MinutesPastTheHour=function(){return"al %s minuto passata l'ora"},u.prototype.atX0SecondsPastTheMinute=function(){return"al %s secondo passato il minuto"},u.prototype.betweenX0AndX1=function(){return"tra le %s e le %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tra il giorno %s e %s del mese"},u.prototype.commaEveryDay=function(){return", ogni giorno"},u.prototype.commaEveryX0Days=function(){return", ogni %s giorni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", ogni %s giorni della settimana"},u.prototype.commaEveryX0Months=function(){return", ogni %s mesi"},u.prototype.commaEveryX0Years=function(){return", ogni %s anni"},u.prototype.commaOnDayX0OfTheMonth=function(){return", il giorno %s del mese"},u.prototype.commaOnlyInX0=function(){return", solo in %s"},u.prototype.commaOnlyOnX0=function(){return", solo il %s"},u.prototype.commaAndOnX0=function(){return", e il %s"},u.prototype.commaOnThe=function(){return", il "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", l'ultimo giorno del mese"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", nell'ultima settimana del mese"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s giorni prima dell'ultimo giorno del mese"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", l'ultimo %s del mese"},u.prototype.commaOnTheX0OfTheMonth=function(){return", il %s del mese"},u.prototype.commaX0ThroughX1=function(){return", %s al %s"},u.prototype.commaAndX0ThroughX1=function(){return", e %s al %s"},u.prototype.everyHour=function(){return"ogni ora"},u.prototype.everyMinute=function(){return"ogni minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Ogni minuto tra le %s e le %s"},u.prototype.everySecond=function(){return"ogni secondo"},u.prototype.everyX0Hours=function(){return"ogni %s ore"},u.prototype.everyX0Minutes=function(){return"ogni %s minuti"},u.prototype.everyX0Seconds=function(){return"ogni %s secondi"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primo"},u.prototype.firstWeekday=function(){return"primo giorno della settimana"},u.prototype.fourth=function(){return"quarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuti %s al %s dopo l'ora"},u.prototype.second=function(){return"secondo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"secondi %s al %s oltre il minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mese"},u.prototype.lastDay=function(){return"l'ultimo giorno"},u.prototype.third=function(){return"terzo"},u.prototype.weekdayNearestDayX0=function(){return"giorno della settimana più vicino al %s"},u.prototype.commaStartingX0=function(){return", a partire %s"},u.prototype.daysOfTheWeek=function(){return["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},u.prototype.monthsOfTheYear=function(){return["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},u}();return l.it=N,c().locales.it=new N,n})())})(kEe);var YEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:g=>{g.exports=t}},r={};function o(g){var y=r[g];if(y!==void 0)return y.exports;var T=r[g]={exports:{}};return i[g](T,T.exports,o),T.exports}o.n=g=>{var y=g&&g.__esModule?()=>g.default:()=>g;return o.d(y,{a:y}),y},o.d=(g,y)=>{for(var T in y)o.o(y,T)&&!o.o(g,T)&&Object.defineProperty(g,T,{enumerable:!0,get:y[T]})},o.o=(g,y)=>Object.prototype.hasOwnProperty.call(g,y),o.r=g=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.ru=void 0;var N=function(g,y){var T=Number(g);return T!==void 0?y[T%100>4&&T%100<20?2:[2,0,1,1,1,2][T%10<5?Math.abs(T)%10:5]]:y[2]},u=function(g,y){var T=Number(g);return T!==void 0?y[T===0?0:T===1||T===2||T===4?1:2]:y[1]},L=function(){function g(){}return g.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},g.prototype.atX0MinutesPastTheHourGt20=function(){return null},g.prototype.commaMonthX0ThroughMonthX1=function(){return null},g.prototype.commaYearX0ThroughYearX1=function(){return null},g.prototype.use24HourTimeFormatByDefault=function(){return!0},g.prototype.everyMinute=function(){return"каждую минуту"},g.prototype.everyHour=function(){return"каждый час"},g.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Произошла ошибка во время генерации описания выражения. Проверьте синтаксис крон-выражения."},g.prototype.atSpace=function(){return"В "},g.prototype.everyMinuteBetweenX0AndX1=function(){return"Каждую минуту с %s по %s"},g.prototype.at=function(){return"В"},g.prototype.spaceAnd=function(){return" и"},g.prototype.everySecond=function(){return"каждую секунду"},g.prototype.everyX0Seconds=function(y){return N(y,["каждую %s секунду","каждые %s секунды","каждые %s секунд"])},g.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды с %s по %s"},g.prototype.atX0SecondsPastTheMinute=function(y){return N(y,["в %s секунду","в %s секунды","в %s секунд"])},g.prototype.everyX0Minutes=function(y){return N(y,["каждую %s минуту","каждые %s минуты","каждые %s минут"])},g.prototype.minutesX0ThroughX1PastTheHour=function(){return"минуты с %s по %s"},g.prototype.atX0MinutesPastTheHour=function(y){return N(y,["в %s минуту","в %s минуты","в %s минут"])},g.prototype.everyX0Hours=function(y){return N(y,["каждый %s час","каждые %s часа","каждые %s часов"])},g.prototype.betweenX0AndX1=function(){return"с %s по %s"},g.prototype.atX0=function(){return"в %s"},g.prototype.commaEveryDay=function(){return", каждый день"},g.prototype.commaEveryX0DaysOfTheWeek=function(y){return N(y,["",", каждые %s дня недели",", каждые %s дней недели"])},g.prototype.commaX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?", со %s по %s":", с %s по %s"},g.prototype.commaAndX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?" и со %s по %s":" и с %s по %s"},g.prototype.first=function(y){return u(y,["первое","первый","первую"])},g.prototype.second=function(y){return u(y,["второе","второй","вторую"])},g.prototype.third=function(y){return u(y,["третье","третий","третью"])},g.prototype.fourth=function(y){return u(y,["четвертое","четвертый","четвертую"])},g.prototype.fifth=function(y){return u(y,["пятое","пятый","пятую"])},g.prototype.commaOnThe=function(y){return y==="2"?", во ":", в "},g.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},g.prototype.lastDay=function(){return"последний день"},g.prototype.commaOnTheLastX0OfTheMonth=function(y){return u(y,[", в последнее %s месяца",", в последний %s месяца",", в последнюю %s месяца"])},g.prototype.commaOnlyOnX0=function(y){return y&&y[0]==="2"?", только во %s":", только в %s"},g.prototype.commaAndOnX0=function(){return", и %s"},g.prototype.commaEveryX0Months=function(y){return N(y,[""," каждые %s месяца"," каждые %s месяцев"])},g.prototype.commaOnlyInMonthX0=function(){return", только %s"},g.prototype.commaOnlyInX0=function(){return", только в %s"},g.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последний день месяца"},g.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последний будний день месяца"},g.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(y){return N(y,[", за %s день до конца месяца",", за %s дня до конца месяца",", за %s дней до конца месяца"])},g.prototype.firstWeekday=function(){return"первый будний день"},g.prototype.weekdayNearestDayX0=function(){return"ближайший будний день к %s числу"},g.prototype.commaOnTheX0OfTheMonth=function(){return", в %s месяца"},g.prototype.commaEveryX0Days=function(y){return N(y,[", каждый %s день",", каждые %s дня",", каждые %s дней"])},g.prototype.commaBetweenDayX0AndX1OfTheMonth=function(y){return y&&y.substring(0,y.indexOf("-"))=="2"?", со %s по %s число месяца":", с %s по %s число месяца"},g.prototype.commaOnDayX0OfTheMonth=function(y){return y&&y[0]=="2"?", во %s число месяца":", в %s число месяца"},g.prototype.commaEveryX0Years=function(y){return N(y,[", каждый %s год",", каждые %s года",", каждые %s лет"])},g.prototype.commaStartingX0=function(){return", начало %s"},g.prototype.daysOfTheWeek=function(){return["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},g.prototype.daysOfTheWeekInCase=function(y){return y===void 0&&(y=2),y==1?["воскресенья","понедельника","вторника","среды","четверга","пятницы","субботы"]:["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"]},g.prototype.monthsOfTheYear=function(){return["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},g.prototype.monthsOfTheYearInCase=function(y){return y==1?["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]:this.monthsOfTheYear()},g}();return l.ru=L,c().locales.ru=new L,n})())})(YEe);var vEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.zh_CN=void 0;var N=function(){function u(){}return u.prototype.setPeriodBeforeTime=function(){return!0},u.prototype.pm=function(){return"下午"},u.prototype.am=function(){return"上午"},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return", 从%s年至%s年"},u.prototype.use24HourTimeFormatByDefault=function(){return!1},u.prototype.everyMinute=function(){return"每分钟"},u.prototype.everyHour=function(){return"每小时"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"生成表达式描述时发生了错误,请检查cron表达式语法。"},u.prototype.atSpace=function(){return"在"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 至 %s 之间的每分钟"},u.prototype.at=function(){return"在"},u.prototype.spaceAnd=function(){return" 和"},u.prototype.everySecond=function(){return"每秒"},u.prototype.everyX0Seconds=function(){return"每隔 %s 秒"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分钟后的第 %s 到 %s 秒"},u.prototype.atX0SecondsPastTheMinute=function(){return"在一分钟后的第 %s 秒"},u.prototype.everyX0Minutes=function(){return"每隔 %s 分钟"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整点后的第 %s 到 %s 分钟"},u.prototype.atX0MinutesPastTheHour=function(){return"在整点后的第 %s 分钟"},u.prototype.everyX0Hours=function(){return"每隔 %s 小时"},u.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之间"},u.prototype.atX0=function(){return"在%s"},u.prototype.commaEveryDay=function(){return", 每天"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每周的每 %s 天"},u.prototype.commaX0ThroughX1=function(){return", %s至%s"},u.prototype.commaAndX0ThroughX1=function(){return", 和%s至%s"},u.prototype.first=function(){return"第一个"},u.prototype.second=function(){return"第二个"},u.prototype.third=function(){return"第三个"},u.prototype.fourth=function(){return"第四个"},u.prototype.fifth=function(){return"第五个"},u.prototype.commaOnThe=function(){return", 限每月的"},u.prototype.spaceX0OfTheMonth=function(){return"%s"},u.prototype.lastDay=function(){return"本月最后一天"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", 限每月的最后一个%s"},u.prototype.commaOnlyOnX0=function(){return", 仅%s"},u.prototype.commaAndOnX0=function(){return", 或者为%s"},u.prototype.commaEveryX0Months=function(){return", 每隔 %s 个月"},u.prototype.commaOnlyInX0=function(){return", 仅限%s"},u.prototype.commaOnlyInMonthX0=function(){return", 仅于%s份"},u.prototype.commaOnlyInYearX0=function(){return", 仅于 %s 年"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", 限每月的最后一天"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 限每月的最后一个工作日"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 限每月最后%s天"},u.prototype.firstWeekday=function(){return"第一个工作日"},u.prototype.weekdayNearestDayX0=function(){return"最接近 %s 号的工作日"},u.prototype.commaOnTheX0OfTheMonth=function(){return", 限每月的%s"},u.prototype.commaEveryX0Days=function(){return", 每隔 %s 天"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 限每月的 %s 至 %s 之间"},u.prototype.commaOnDayX0OfTheMonth=function(){return", 限每月%s"},u.prototype.commaEveryX0Years=function(){return", 每隔 %s 年"},u.prototype.commaStartingX0=function(){return", %s开始"},u.prototype.dayX0=function(){return" %s 号"},u.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},u.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},u}();return l.zh_CN=N,c().locales.zh_CN=new N,n})())})(vEe);var bEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.uk=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"щохвилини"},u.prototype.everyHour=function(){return"щогодини"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"ВІдбулася помилка підчас генерації опису. Перевірта правильність написання cron виразу."},u.prototype.atSpace=function(){return"О "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Щохвилини між %s та %s"},u.prototype.at=function(){return"О"},u.prototype.spaceAnd=function(){return" та"},u.prototype.everySecond=function(){return"Щосекунди"},u.prototype.everyX0Seconds=function(){return"кожні %s секунд"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"з %s по %s секунду"},u.prototype.atX0SecondsPastTheMinute=function(){return"о %s секунді"},u.prototype.everyX0Minutes=function(){return"кожні %s хвилин"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"з %s по %s хвилину"},u.prototype.atX0MinutesPastTheHour=function(){return"о %s хвилині"},u.prototype.everyX0Hours=function(){return"кожні %s годин"},u.prototype.betweenX0AndX1=function(){return"між %s та %s"},u.prototype.atX0=function(){return"о %s"},u.prototype.commaEveryDay=function(){return", щоденно"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожен %s день тижня"},u.prototype.commaX0ThroughX1=function(){return", %s по %s"},u.prototype.commaAndX0ThroughX1=function(){return", та %s по %s"},u.prototype.first=function(){return"перший"},u.prototype.second=function(){return"другий"},u.prototype.third=function(){return"третій"},u.prototype.fourth=function(){return"четвертий"},u.prototype.fifth=function(){return"п'ятий"},u.prototype.commaOnThe=function(){return", в "},u.prototype.spaceX0OfTheMonth=function(){return" %s місяця"},u.prototype.lastDay=function(){return"останній день"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", в останній %s місяця"},u.prototype.commaOnlyOnX0=function(){return", тільки в %s"},u.prototype.commaAndOnX0=function(){return", і в %s"},u.prototype.commaEveryX0Months=function(){return", кожен %s місяць"},u.prototype.commaOnlyInX0=function(){return", тільки в %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", в останній день місяця"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в останній будень місяця"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s днів до останнього дня місяця"},u.prototype.firstWeekday=function(){return"перший будень"},u.prototype.weekdayNearestDayX0=function(){return"будень найближчий до %s дня"},u.prototype.commaOnTheX0OfTheMonth=function(){return", в %s місяця"},u.prototype.commaEveryX0Days=function(){return", кожен %s день"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", між %s та %s днями місяця"},u.prototype.commaOnDayX0OfTheMonth=function(){return", на %s день місяця"},u.prototype.commaEveryX0Years=function(){return", кожні %s роки"},u.prototype.commaStartingX0=function(){return", початок %s"},u.prototype.daysOfTheWeek=function(){return["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"]},u.prototype.monthsOfTheYear=function(){return["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},u}();return l.uk=N,c().locales.uk=new N,n})())})(bEe);var QEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pt_BR=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},u.prototype.at=function(){return"às"},u.prototype.atSpace=function(){return"às "},u.prototype.atX0=function(){return"Às %s"},u.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},u.prototype.betweenX0AndX1=function(){return"entre %s e %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},u.prototype.commaEveryDay=function(){return", a cada dia"},u.prototype.commaEveryX0Days=function(){return", a cada %s dias"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},u.prototype.commaEveryX0Months=function(){return", a cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},u.prototype.commaOnlyInX0=function(L){return L&&L.length>1&&L[1]==="-"?"somente %s":", somente em %s"},u.prototype.commaOnlyOnX0=function(L){return L&&L.length>1&&L[1]==="-"?", somente %s":", somente de %s"},u.prototype.commaAndOnX0=function(){return", e de %s"},u.prototype.commaOnThe=function(L,g){return g==="6"||g==="0"?", no":", na "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},u.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},u.prototype.everyHour=function(){return"a cada hora"},u.prototype.everyMinute=function(){return"a cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},u.prototype.everySecond=function(){return"a cada segundo"},u.prototype.everyX0Hours=function(){return"a cada %s horas"},u.prototype.everyX0Minutes=function(){return"a cada %s minutos"},u.prototype.everyX0Seconds=function(){return"a cada %s segundos"},u.prototype.fifth=function(L){return L==="6"||L==="0"?"quinto":"quinta"},u.prototype.first=function(L){return L==="6"||L==="0"?"primeiro":"primeira"},u.prototype.firstWeekday=function(){return"primeiro dia da semana"},u.prototype.fourth=function(L){return L==="6"||L==="0"?"quarto":"quarta"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},u.prototype.second=function(L){return L==="6"||L==="0"?"segundo":"segunda"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},u.prototype.lastDay=function(){return"o último dia"},u.prototype.third=function(L){return L==="6"||L==="0"?"terceiro":"terceira"},u.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},u.prototype.commaEveryX0Years=function(){return", a cada %s anos"},u.prototype.commaStartingX0=function(){return", iniciando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},u.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},u}();return l.pt_BR=N,c().locales.pt_BR=new N,n})())})(QEe);var UEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pl=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Wystąpił błąd podczas generowania opisu wyrażenia cron. Sprawdź składnię wyrażenia cron."},u.prototype.at=function(){return"O"},u.prototype.atSpace=function(){return"O "},u.prototype.atX0=function(){return"o %s"},u.prototype.atX0MinutesPastTheHour=function(){return"w %s minucie"},u.prototype.atX0SecondsPastTheMinute=function(){return"w %s sekundzie"},u.prototype.betweenX0AndX1=function(){return"od %s do %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s-ego do %s-ego dnia miesiąca"},u.prototype.commaEveryDay=function(){return", co dzień"},u.prototype.commaEveryX0Days=function(){return", co %s dni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", co %s dni tygodnia"},u.prototype.commaEveryX0Months=function(){return", co %s miesięcy"},u.prototype.commaEveryX0Years=function(){return", co %s lat"},u.prototype.commaOnDayX0OfTheMonth=function(){return", %s-ego dnia miesiąca"},u.prototype.commaOnlyInX0=function(){return", tylko %s"},u.prototype.commaOnlyOnX0=function(){return", tylko %s"},u.prototype.commaAndOnX0=function(){return", i %s"},u.prototype.commaOnThe=function(){return", "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", ostatni dzień miesiąca"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ostatni dzień roboczy miesiąca"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni przed ostatnim dniem miesiąca"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", ostatni %s miesiąca"},u.prototype.commaOnTheX0OfTheMonth=function(){return", %s miesiąca"},u.prototype.commaX0ThroughX1=function(){return", od %s do %s"},u.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},u.prototype.everyHour=function(){return"co godzinę"},u.prototype.everyMinute=function(){return"co minutę"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Co minutę od %s do %s"},u.prototype.everySecond=function(){return"co sekundę"},u.prototype.everyX0Hours=function(){return"co %s godzin"},u.prototype.everyX0Minutes=function(){return"co %s minut"},u.prototype.everyX0Seconds=function(){return"co %s sekund"},u.prototype.fifth=function(){return"piąty"},u.prototype.first=function(){return"pierwszy"},u.prototype.firstWeekday=function(){return"pierwszy dzień roboczy"},u.prototype.fourth=function(){return"czwarty"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},u.prototype.second=function(){return"drugi"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},u.prototype.spaceAnd=function(){return" i"},u.prototype.spaceX0OfTheMonth=function(){return" %s miesiąca"},u.prototype.lastDay=function(){return"ostatni dzień"},u.prototype.third=function(){return"trzeci"},u.prototype.weekdayNearestDayX0=function(){return"dzień roboczy najbliższy %s-ego dnia"},u.prototype.commaStartingX0=function(){return", startowy %s"},u.prototype.daysOfTheWeek=function(){return["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},u.prototype.monthsOfTheYear=function(){return["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},u}();return l.pl=N,c().locales.pl=new N,n})())})(UEe);function D4(s,e){return fEe.toString(s,{locale:e})}const xe={mainDiv:{width:"100%",height:"100%"},periodSelect:{display:"block",width:250},tabContent:{padding:20,height:"calc(100% - 240px)",overflow:"auto"},numberButton:{padding:4,minWidth:40,margin:5},appBar:{color:"white"},warning:{marginLeft:16,color:"red",fontSize:12}},$Ee=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],PEe=["January","February","March","April","May","June","July","August","September","October","November","December"];function Tl(s,e){const t=[];if(s==="*"){if(e===24||e===60||e===7)for(let r=0;r1){const n=parseInt(o[1],10);for(let a=parseInt(o[0],10);a<=n;a++)t.push(a)}else t.push(parseInt(i[r],10))}t.sort();for(let r=t.length-1;r>=0;r--)t[r]===t[r+1]&&t.splice(r+1,1);return t}function Dl(s,e){if(typeof s!="object"&&(s=[s]),s.length===e)return"*";const t=[];if(!s.length)return"-";s=s.map(o=>parseInt(o,10)),s.sort((o,n)=>o-n);let i=s[0],r=s[0];for(let o=1;othis.props.onChange&&this.props.onChange(this.state.cron),100)}static cron2state(e){e=e.replace(/['"]/g,"").trim();const t=e.split(" ").map(r=>r.trim());let i;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",dates:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:!1,minutes:t[0]||"*",hours:t[1]||"*",dates:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i}static state2cron(e){let t=`${e.minutes} ${e.hours} ${e.dates} ${e.months} ${e.dow}`;return e.seconds!==!1&&(t=`${e.seconds} ${t}`),t}recalcCron(){const e=kt.state2cron(this.state);e!==this.state.cron&&this.setState({cron:e},()=>this.props.onChange&&this.props.onChange(this.state.cron))}onToggle(e,t,i){if(e===!0)this.setCronAttr(t,"*");else if(e===!1)i===60||i===24?this.setCronAttr(t,"0"):this.setCronAttr(t,"1");else{const r=Tl(this.state[t],i),o=r.indexOf(e);o!==-1?r.splice(o,1):(r.push(e),r.sort()),this.setCronAttr(t,Dl(r,i))}}getDigitsSelector(e,t){let i=[];if(t===7)i=[1,2,3,4,5,6,0];else if(t===60||t===24)for(let o=0;othis.onToggle(!1,e,t)},d.t("ra_Deselect all")),M.createElement(j.Button,{key:"addall",variant:"contained",style:xe.numberButton,color:"secondary",onClick:()=>this.onToggle(!0,e,t)},d.t("ra_Select all")),M.createElement("div",{key:"all"},i.map(o=>[t===7&&o===4||t===12&&o===7||t===31&&!((o-1)%10)||t===60&&o&&!(o%10)||t===24&&o&&!(o%6)?M.createElement("div",{key:`allInner${o}`,style:{width:"100%"}}):null,M.createElement(j.Button,{key:`_${o}`,variant:r.indexOf(o)!==-1?"contained":"outlined",style:xe.numberButton,color:r.indexOf(o)!==-1?"secondary":"primary",onClick:()=>this.onToggle(o,e,t)},t===7?d.t($Ee[o]):t===12?PEe[o-1]:o)]))]}getPeriodsTab(e,t){const i=this.state[e];let r=i==="*",o=i==null?!1:i.toString().includes("/"),n;if(this.state.modes[e]===null){n=r?"every":o?"everyN":"specific";const c=JSON.parse(JSON.stringify(this.state.modes));return c[e]=n,setTimeout(()=>this.setState({modes:c},()=>this.recalcCron()),100),null}r=this.state.modes[e]==="every",o=this.state.modes[e]==="everyN",n=this.state.modes[e];let a=1;return o&&i&&(a=parseInt(i.replace("*/",""),10)||1),M.createElement("div",null,M.createElement(j.Select,{variant:"standard",style:{...xe.periodSelect,verticalAlign:"bottom"},value:n,onChange:c=>{const l=JSON.parse(JSON.stringify(this.state.modes));if(l[e]=c.target.value,c.target.value==="every")this.setCronAttr(e,"*",l);else if(c.target.value==="everyN"){const N=parseInt((this.state[e]||"").toString().replace("*/",""),10)||1;this.setCronAttr(e,`*/${N}`,l)}else if(c.target.value==="specific"){let N=parseInt((this.state[e]||"").toString().split(",")[0],10)||0;!N&&(e==="months"||e==="dates")&&(N=1),this.setCronAttr(e,Dl(N,t),l)}}},M.createElement(j.MenuItem,{key:"every",value:"every"},d.t(`sc_every_${e}`)),M.createElement(j.MenuItem,{key:"everyN",value:"everyN"},d.t(`sc_everyN_${e}`)),M.createElement(j.MenuItem,{key:"specific",value:"specific"},d.t(`sc_specific_${e}`))),o&&M.createElement(j.TextField,{variant:"standard",key:"interval",label:d.t(`sc_${e}`),value:a,slotProps:{htmlInput:{min:1,max:t},inputLabel:{shrink:!0}},onChange:c=>{this.setState({[e]:`*/${c.target.value}`},()=>this.recalcCron())},type:"number",margin:"normal"}),!r&&!o&&this.getDigitsSelector(e,t))}static convertCronToText(e,t){return e.split(" ").includes("-")?d.t("ra_Invalid CRON"):D4(e,t)}setCronAttr(e,t,i){i?e==="seconds"?this.setState({seconds:t,modes:i},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t,modes:i},()=>this.recalcCron()):e==="hours"?this.setState({hours:t,modes:i},()=>this.recalcCron()):e==="dates"?this.setState({dates:t,modes:i},()=>this.recalcCron()):e==="months"?this.setState({months:t,modes:i},()=>this.recalcCron()):e==="dow"?this.setState({dow:t,modes:i},()=>this.recalcCron()):this.setState({modes:i},()=>this.recalcCron()):e==="seconds"?this.setState({seconds:t},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t},()=>this.recalcCron()):e==="hours"?this.setState({hours:t},()=>this.recalcCron()):e==="dates"?this.setState({dates:t},()=>this.recalcCron()):e==="months"?this.setState({months:t},()=>this.recalcCron()):e==="dow"&&this.setState({dow:t},()=>this.recalcCron())}render(){const e=this.state.seconds!==!1?this.state.tab:this.state.tab+1,t=this.state.minutes==="*"||this.state.minutes==="*/1",i=this.state.seconds==="*"||this.state.seconds==="*/1";return M.createElement("div",{style:xe.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)",height:60}},kt.convertCronToText(this.state.cron,this.props.language||"en"),M.createElement("span",{style:xe.warning},i?d.t("ra_warning_every_second"):t?d.t("ra_warning_every_minute"):"")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:!!this.state.seconds,onChange:r=>this.setState({seconds:r.target.checked?"*":!1},()=>this.recalcCron())}),label:d.t("ra_use seconds")}),M.createElement(j.AppBar,{position:"static",sx:{"&.MuiAppBar-root":xe.appBar},color:"secondary"},M.createElement(j.Tabs,{value:this.state.tab,style:xe.appBar,color:"secondary",onChange:(r,o)=>this.setState({tab:o})},this.state.seconds!==!1&&M.createElement(j.Tab,{id:"sc_seconds",label:d.t("sc_seconds")}),M.createElement(j.Tab,{id:"minutes",label:d.t("sc_minutes")}),M.createElement(j.Tab,{id:"hours",label:d.t("sc_hours")}),M.createElement(j.Tab,{id:"dates",label:d.t("sc_dates")}),M.createElement(j.Tab,{id:"months",label:d.t("sc_months")}),M.createElement(j.Tab,{id:"dow",label:d.t("sc_dows")}))),e===0&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("seconds",60)),e===1&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("minutes",60)),e===2&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("hours",24)),e===3&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dates",31)),e===4&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("months",12)),e===5&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dow",7)))}}const gs={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:s=>({color:s.palette.primary.main})};function J3e(s){const{open:e,toggleTranslation:t,noTranslation:i,title:r,fullWidth:o,help:n,maxWidth:a,progress:c,icon:l,applyDisabled:N,applyButton:u,onClose:L,children:g,titleButtonApply:y,titleButtonClose:T,onApply:D,textInput:z,defaultValue:p,overflowHidden:C}=s,[m,I]=x.useState(p||"");x.useEffect(()=>{I(p||"")},[p]);let h=null;return l&&(h=l),M.createElement(j.Dialog,{open:e,maxWidth:a||"md",fullWidth:!!o,disableEscapeKeyDown:!1,onClose:L,sx:{"& .MuiDialog-paper":gs.modalDialog}},r&&M.createElement(j.DialogTitle,null,l?M.createElement(h,{style:gs.titleIcon}):null,r,d.getLanguage()!=="en"&&t?M.createElement(j.IconButton,{size:"large",sx:O.getStyle(s.theme,gs.languageButton,i&&gs.languageButtonActive),onClick:()=>t(),title:d.t("Disable/Enable translation")},M.createElement(ML,null)):null),M.createElement(j.DialogContent,{style:{...gs.content,...C?gs.overflowHidden:void 0,paddingTop:8}},z&&M.createElement(j.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:m,onChange:A=>I(A.target.value)}),g,n?M.createElement("div",null,n):null),M.createElement(j.DialogActions,null,u!==!1&&M.createElement(j.Button,{startIcon:M.createElement(Oe,null),disabled:c||N&&p===m,onClick:()=>D(z?m:""),variant:"contained",color:"primary"},d.t(y||"ra_Ok")),M.createElement(j.Button,{color:"grey",onClick:L,disabled:c,variant:"contained",startIcon:M.createElement(Ne,null)},d.t(T||"ra_Cancel"))))}function WEe(){const s=PL();return[...s.breakpoints.keys].reverse().reduce((t,i)=>{const r=j.useMediaQuery(s.breakpoints.up(i));return!t&&r?i:t},null)||"xs"}function Io(){return s=>function(t){const i=WEe();return M.createElement(s,{...t,width:i})}}function BEe(s){const[e,t]=M.useState(s.input||s.value||""),[i,r]=M.useState("");return M.createElement(j.Dialog,{open:!0,onClose:()=>s.onClose(null),"aria-labelledby":"form-dialog-title",fullWidth:s.fullWidth!==void 0?s.fullWidth:!1},M.createElement(j.DialogTitle,{id:"form-dialog-title"},s.titleText),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,s.promptText),M.createElement(j.TextField,{variant:"standard",autoFocus:!0,margin:"dense",error:!!i,helperText:i===!0||!i?"":i,value:e,label:s.labelText||"",type:s.type||"text",onKeyUp:o=>o.code==="Enter"&&e&&s.onClose(e),onChange:o=>{let n="";s.verify&&(n=!s.verify(o.target.value)),s.rule?t(s.rule(o.target.value)):t(o.target.value),r(n)},fullWidth:!0})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!e||!!i,onClick:()=>s.onClose(e),color:"primary",startIcon:M.createElement(Oe,null)},s.applyText||d.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>s.onClose(null),startIcon:M.createElement(Ne,null)},s.cancelText||d.t("ra_Cancel"))))}const JEe=Io()(BEe);function $n(s){return M.createElement("svg",{onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 486 486",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),xmlns:"http://www.w3.org/2000/svg",className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m414.928297,149.715165 c-2.639376,-57.222555 -35.669446,-106.505345 -83.345894,-132.039151 c-3.758948,-2.049842 -7.636885,-3.932022 -11.590542,-5.641125 c-19.303146,-8.394083 -40.607459,-13.050853 -63.004303,-13.050853 c-84.113909,0 -152.791790,65.703174 -157.718988,148.605566 l0.043268,-0.010816 v0.281245 c0,3.061243 -0.146031,16.750306 -0.146031,16.750306 l-2.352723,5.224668 h15.744315 c5.916964,-19.384275 24.078904,-32.635245 45.513024,-32.635245 c26.231510,0 47.573684,21.915481 47.573684,48.146991 c0,26.226103 -21.342174,47.146409 -47.573684,47.146409 c-25.111939,0 -45.734774,-19.735831 -47.443879,-44.658471 h-18.789334 c-0.400232,0 -0.778832,0.638209 -1.162839,0.584122 l-19.762875,55.199753 c-2.774590,7.696379 2.926030,16.214860 11.103771,16.214860 h17.020735 l-0.129805,87.899899 c0,17.356066 14.073071,31.174935 31.429136,31.174935 h56.205745 v82.648189 c0,12.877778 12.937273,22.580734 25.815051,22.580734 h144.597825 c12.877778,0 23.429877,-9.702955 23.429877,-22.580734 v-166.037352 c0,-22.645636 5.976457,-44.761234 16.561008,-64.789128 c11.055093,-20.925714 17.523731,-44.620611 18.129489,-69.792045 c0.027042,-1.260193 0.037858,-2.552839 0.037858,-3.845485 c0,-2.466302 -0.070310,-4.938014 -0.183890,-7.377273 zm-155.393308,-11.731165 h-13.456494 v13.559257 c0,4.732489 -4.267352,8.567157 -8.999842,8.567157 c-4.727079,0 -8.999842,-3.834667 -8.999842,-8.567157 v-13.559257 h-12.185483 c-4.732489,0 -8.567157,-4.267352 -8.567157,-8.999842 c0,-4.727079 3.834667,-8.999842 8.567157,-8.999842 h12.185483 v-12.077311 c0,-4.732489 4.272762,-8.567157 8.999842,-8.567157 c4.732489,0 8.999842,3.834667 8.999842,8.567157 v12.077311 h13.456494 c4.727079,0 8.567157,4.272762 8.567157,8.999842 c0,4.732489 -3.840077,8.999842 -8.567157,8.999842 zm0,0"}),M.createElement("path",{fill:"currentColor",d:"m187.695312 285.875c3.9375-3.980469 6.414063-9.449219 6.414063-15.523438 0-12.128906-9.855469-21.980468-21.984375-21.980468-6.007812 0-11.472656 2.410156-15.457031 6.347656-4.023438 4.003906-6.523438 9.539062-6.523438 15.636719 0 12.125 9.855469 21.980469 21.980469 21.980469 6.078125 0 11.585938-2.476563 15.570312-6.460938zm0 0"}))}function Ws(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m524,128l-192,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,288c0,26.51 21.49,48 48,48l416,0c26.51,0 48,-21.49 48,-48l0,-224c0,-26.51 -21.49,-48 -48,-48z"}))}function fr(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m631.75617,292.093l-72.424,124.155a63.997,63.997 0 0 1 -55.281,31.752l-399.964,0c-18.523,0 -30.064,-20.093 -20.731,-36.093l72.424,-124.155a64,64 0 0 1 55.282,-31.752l399.964,0c18.523,0 30.064,20.093 20.73,36.093zm-420.694,-68.093l328,0l0,-48c0,-26.51 -21.49,-48 -48,-48l-160,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,278.046l69.077,-118.418c17.137,-29.378 48.912,-47.628 82.923,-47.628z"}))}function DM(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))}var REe=s=>typeof s!="string"?{}:s.split(/ ?; ?/).reduce((e,t)=>{const[i,r]=t.split(/ ?: ?/).map((o,n)=>n===0?o.replace(/\s+/g,""):o.trim());if(i&&r){const o=i.replace(/(\w)-(\w)/g,(a,c,l)=>`${c}${l.toUpperCase()}`);let n=r.trim();Number.isNaN(Number(r))||(n=Number(r)),e[i.startsWith("-")?i:o]=n}return e},{});function FEe(s=6){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let i=s;i>0;--i)t+=e[Math.round(Math.random()*(e.length-1))];return t}var GEe=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],dl={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function HEe(s,e){var o;const{key:t,level:i,...r}=e;switch(s.nodeType){case 1:return x.createElement(ZEe(s.nodeName),VEe(s,t),hl(s.childNodes,i,r));case 3:{const n=((o=s.nodeValue)==null?void 0:o.toString())??"";if(!r.allowWhiteSpaces&&/^\s+$/.test(n)&&!/[\u00A0\u202F]/.test(n))return null;if(!s.parentNode)return n;const a=s.parentNode.nodeName.toLowerCase();return GEe.includes(a)?(/\S/.test(n)&&console.warn(`A textNode is not allowed inside '${a}'. Your text "${n}" will be ignored`),null):n}case 8:return null;case 11:return hl(s.childNodes,i,e);default:return null}}function VEe(s,e){const t={key:e};if(s instanceof Element){const i=s.getAttribute("class");i&&(t.className=i),[...s.attributes].forEach(r=>{switch(r.name){case"class":break;case"style":t[r.name]=REe(r.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":t[dl[r.name]||r.name]=!0;break;default:t[dl[r.name]||r.name]=r.value}})}return t}function hl(s,e,t){const i=[...s].map((r,o)=>Vr(r,{...t,index:o,level:e+1})).filter(Boolean);return i.length?i:null}function ZEe(s){return/[a-z]+[A-Z]+[a-z]+/.test(s)?s:s.toLowerCase()}function d4(s,e={}){return typeof s=="string"?XEe(s,e):s instanceof Node?Vr(s,e):null}function Vr(s,e={}){if(!s||!(s instanceof Node))return null;const{actions:t=[],index:i=0,level:r=0,randomKey:o}=e;let n=s,a=`${r}-${i}`;const c=[];return o&&r===0&&(a=`${FEe()}-${a}`),Array.isArray(t)&&t.forEach(l=>{l.condition(n,a,r)&&(typeof l.pre=="function"&&(n=l.pre(n,a,r),n instanceof Node||(n=s)),typeof l.post=="function"&&c.push(l.post(n,a,r)))}),c.length?c:HEe(n,{key:a,level:r,...e})}function XEe(s,e={}){if(!s||typeof s!="string")return null;const{includeAllNodes:t=!1,nodeOnly:i=!1,selector:r="body > *",type:o="text/html"}=e;try{const a=new DOMParser().parseFromString(s,o);if(t){const{childNodes:l}=a.body;return i?l:[...l].map(N=>Vr(N,e))}const c=a.querySelector(r)||a.body.childNodes[0];if(!(c instanceof Node))throw new TypeError("Error parsing input");return i?c:Vr(c,e)}catch{}return null}var KEe=Object.defineProperty,qEe=(s,e,t)=>e in s?KEe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,yr=(s,e,t)=>qEe(s,typeof e!="symbol"?e+"":e,t),zl="react-inlinesvg",efe=10,se={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function tfe(s){return s[Math.floor(Math.random()*s.length)]}function pi(){var s;return!!(typeof window<"u"&&((s=window.document)!=null&&s.createElement))}function sfe(){return nfe()&&typeof window<"u"&&window!==null}function ife(s,...e){const t={};for(const i in s)({}).hasOwnProperty.call(s,i)&&(e.includes(i)||(t[i]=s[i]));return t}function rfe(s){const e="abcdefghijklmnopqrstuvwxyz",i=`${e}${e.toUpperCase()}1234567890`;let r="";for(let o=0;o299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(o=>r.includes(o)))throw new Error(`Content type isn't valid: ${r}`);return t.text()}function ofe(s=1){return new Promise(e=>{setTimeout(e,s*1e3)})}function nfe(){if(!document)return!1;const s=document.createElement("div");s.innerHTML="";const e=s.firstChild;return!!e&&e.namespaceURI==="http://www.w3.org/2000/svg"}var afe=class{constructor(){yr(this,"cacheApi"),yr(this,"cacheStore"),yr(this,"subscribers",[]),yr(this,"isReady",!1),this.cacheStore=new Map;let s=zl,e=!1;pi()&&(s=window.REACT_INLINESVG_CACHE_NAME??zl,e=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),e?caches.open(s).then(t=>{this.cacheApi=t}).catch(t=>{console.error(`Failed to open cache: ${t.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const t=[...this.subscribers];this.subscribers.length=0,t.forEach(i=>{try{i()}catch(r){console.error(`Error in CacheStore subscriber callback: ${r.message}`)}})}):this.isReady=!0}onReady(s){this.isReady?s():this.subscribers.push(s)}async get(s,e){var t;return await(this.cacheApi?this.fetchAndAddToPersistentCache(s,e):this.fetchAndAddToInternalCache(s,e)),((t=this.cacheStore.get(s))==null?void 0:t.content)??""}set(s,e){this.cacheStore.set(s,e)}isCached(s){var e;return((e=this.cacheStore.get(s))==null?void 0:e.status)===se.LOADED}async fetchAndAddToInternalCache(s,e){const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToInternalCache(s,e)});return}if(!(t!=null&&t.content)){this.cacheStore.set(s,{content:"",status:se.LOADING});try{const i=await h4(s,e);this.cacheStore.set(s,{content:i,status:se.LOADED})}catch(i){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),i}}}async fetchAndAddToPersistentCache(s,e){var r,o,n;const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADED)return;if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToPersistentCache(s,e)});return}this.cacheStore.set(s,{content:"",status:se.LOADING});const i=await((r=this.cacheApi)==null?void 0:r.match(s));if(i){const a=await i.text();this.cacheStore.set(s,{content:a,status:se.LOADED});return}try{await((o=this.cacheApi)==null?void 0:o.add(new Request(s,e)));const a=await((n=this.cacheApi)==null?void 0:n.match(s)),c=await(a==null?void 0:a.text())??"";this.cacheStore.set(s,{content:c,status:se.LOADED})}catch(a){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),a}}async handleLoading(s,e){var t;for(let i=0;i({[s]:e}))}async delete(s){this.cacheApi&&await this.cacheApi.delete(s),this.cacheStore.delete(s)}async clear(){if(this.cacheApi){const s=await this.cacheApi.keys();await Promise.allSettled(s.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function wl(s){const e=x.useRef(void 0);return x.useEffect(()=>{e.current=s}),e.current}function Mfe(s){const{baseURL:e,content:t,description:i,handleError:r,hash:o,preProcessor:n,title:a,uniquifyIDs:c=!1}=s;try{const l=cfe(t,n),N=d4(l,{nodeOnly:!0});if(!N||!(N instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const u=z4(N,{baseURL:e,hash:o,uniquifyIDs:c});if(i){const L=u.querySelector("desc");L!=null&&L.parentNode&&L.parentNode.removeChild(L);const g=document.createElementNS("http://www.w3.org/2000/svg","desc");g.innerHTML=i,u.prepend(g)}if(typeof a<"u"){const L=u.querySelector("title");if(L!=null&&L.parentNode&&L.parentNode.removeChild(L),a){const g=document.createElementNS("http://www.w3.org/2000/svg","title");g.innerHTML=a,u.prepend(g)}}return u}catch(l){return r(l)}}function cfe(s,e){return e?e(s):s}function z4(s,e){const{baseURL:t="",hash:i,uniquifyIDs:r}=e,o=["id","href","xlink:href","xlink:role","xlink:arcrole"],n=["href","xlink:href"],a=(c,l)=>n.includes(c)&&(l?!l.includes("#"):!1);return r&&[...s.children].forEach(c=>{var l;if((l=c.attributes)!=null&&l.length){const N=Object.values(c.attributes).map(u=>{const L=u,g=/url\((.*?)\)/.exec(u.value);return g!=null&&g[1]&&(L.value=u.value.replace(g[0],`url(${t}${g[1]}__${i})`)),L});o.forEach(u=>{const L=N.find(g=>g.name===u);L&&!a(u,L.value)&&(L.value=`${L.value}__${i}`)})}return c.children.length?z4(c,e):c}),s}var Us;function ufe(s){const{cacheRequests:e=!0,children:t=null,description:i,fetchOptions:r,innerRef:o,loader:n=null,onError:a,onLoad:c,src:l,title:N,uniqueHash:u}=s,[L,g]=x.useReducer((J,H)=>({...J,...H}),{content:"",element:null,isCached:e&&Us.isCached(s.src),status:se.IDLE}),{content:y,element:T,isCached:D,status:z}=L,p=wl(s),C=wl(L),m=x.useRef(u??rfe(8)),I=x.useRef(!1),h=x.useRef(!1),A=x.useCallback(J=>{I.current&&(g({status:J.message==="Browser does not support SVG"?se.UNSUPPORTED:se.FAILED}),a==null||a(J))},[a]),S=x.useCallback((J,H=!1)=>{I.current&&g({content:J,isCached:H,status:se.LOADED})},[]),f=x.useCallback(async()=>{const J=await h4(l,r);S(J)},[r,S,l]),P=x.useCallback(()=>{try{const J=Mfe({...s,handleError:A,hash:m.current,content:y}),H=d4(J);if(!H||!x.isValidElement(H))throw new Error("Could not convert the src to a React element");g({element:H,status:se.READY})}catch(J){A(J)}},[y,A,s]),v=x.useCallback(async()=>{const J=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(l);let H;if(J?H=J[1]?window.atob(J[2]):decodeURIComponent(J[2]):l.includes("{I.current&&g({content:"",element:null,isCached:!1,status:se.LOADING})},[]);x.useEffect(()=>{if(I.current=!0,!(!pi()||h.current)){try{if(z===se.IDLE){if(!sfe())throw new Error("Browser does not support SVG");if(!l)throw new Error("Missing src");ee()}}catch(J){A(J)}return h.current=!0,()=>{I.current=!1}}},[]),x.useEffect(()=>{if(!(!pi()||!p)&&p.src!==l){if(!l){A(new Error("Missing src"));return}ee()}},[A,ee,p,l]),x.useEffect(()=>{z===se.LOADED&&P()},[z,P]),x.useEffect(()=>{!pi()||!p||p.src!==l||(p.title!==N||p.description!==i)&&P()},[i,P,p,l,N]),x.useEffect(()=>{if(C)switch(z){case se.LOADING:{C.status!==se.LOADING&&v();break}case se.LOADED:{C.status!==se.LOADED&&P();break}case se.READY:{C.status!==se.READY&&(c==null||c(l,D));break}}},[v,P,D,c,C,l,z]);const ae=ife(s,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return pi()?T?x.cloneElement(T,{ref:o,...ae}):[se.UNSUPPORTED,se.FAILED].includes(z)?t:n:n}function Pn(s){Us||(Us=new afe);const{loader:e}=s,[t,i]=x.useState(Us.isReady);return x.useEffect(()=>{t||Us.onReady(()=>{i(!0)})},[t]),t?M.createElement(ufe,{...s}):e}function lfe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"}))}function R3e(s){let e;const t=s==null?void 0:s._id;return t?(t.startsWith("_design/")||t==="system"?e=M.createElement(kr,{className:"iconOwn"}):t==="0_userdata"||t==="0_userdata.0"?e=M.createElement(hg,{className:"iconOwn"}):t==="alias"||t==="alias.0"?e=M.createElement(lfe,{className:"iconOwn"}):t==="system.adapter"?e=M.createElement(kr,{className:"iconOwn"}):t==="system.group"?e=M.createElement(ga,{className:"iconOwn"}):t==="system.user"?e=M.createElement(Na,{className:"iconOwn"}):t==="system.host"?e=M.createElement(La,{className:"iconOwn"}):t.endsWith(".connection")||t.endsWith(".connected")?e=M.createElement(Qs,{className:"iconOwn"}):t.endsWith(".info")?e=M.createElement(la,{className:"iconOwn"}):(s==null?void 0:s.type)==="meta"&&(e=M.createElement(Kr,{className:"iconOwn"})),e||null):null}function F3e(s,e){e=e||".";let t="";const i=s==null?void 0:s.common;if(i){const r=i.icon;if(r)if(r.startsWith("data:image/"))t=r;else if(r.includes(".")){let o;s.type==="instance"||s.type==="adapter"?t=`${e}/adapter/${i.name}/${r}`:s._id&&s._id.startsWith("system.adapter.")?(o=s._id.split(".",3),r[0]==="/"?o[2]+=r:o[2]+=`/${r}`,t=`${e}/adapter/${o[2]}`):(o=s._id.split(".",2),r[0]==="/"?o[0]+=r:o[0]+=`/${r}`,t=`${e}/adapter/${o[0]}`)}else return null}return t||null}const Nfe=window.location.hostname.endsWith("iobroker.in"),Cl=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);function me(s){var e,t,i;if(s.src){if(typeof s.src=="string"){if(s.src.length<3)return s.sx?M.createElement(j.Box,{component:"span",sx:s.sx,title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src):M.createElement("span",{title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src);if(s.src.startsWith("data:image/svg"))return M.createElement(Pn,{title:s.title||void 0,src:s.src,className:O.clsx(s.className,"iconOwn"),width:((e=s.style)==null?void 0:e.width)||28,height:((t=s.style)==null?void 0:t.height)||((i=s.style)==null?void 0:i.width)||28,style:s.style||void 0});if(Nfe&&!s.src.startsWith("http://")&&!s.src.startsWith("https://")){let r=s.src;return r.startsWith("./")?r=Cl+r.substring(2):r.startsWith("/")||(r=Cl+r),s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)})}return s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError})}return s.src}return null}const Bt={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}},we={images:["png","jpg","svg","jpeg","bmp","gif","apng","avif","webp","ico"],code:["js","json","json5","md"],txt:["log","txt","html","css","xml","ics"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};function Il(s,e){let t="";const i=new Uint8Array((s==null?void 0:s.data)||s),r=i.byteLength;for(let o=0;o{let o="";r.file!==void 0&&(o=r.file);const n={copyPossible:this.state.copyPossible,ext:this.state.ext};if(o.type==="Buffer")if(i.toLowerCase().endsWith(".json5")){n.ext="json5",n.copyPossible=!0;try{o=atob(Il(o,!0))}catch{console.error("Cannot convert base64 to string"),o=""}}else{const a=O.detectMimeType(Il(o));a&&(n.ext=a,n.copyPossible=we.code.includes(a)||we.txt.includes(a))}n.copyPossible&&(n.ext&&we.txt.includes(n.ext)?(n.text=o,n.editingValue=o):n.ext&&we.code.includes(n.ext)&&(n.code=o,n.editingValue=o)),this.setState(n)}).catch(r=>window.alert(`Cannot read file: ${r}`))}}componentDidMount(){this.readFile();const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}componentWillUnmount(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}onFileChanged=(e,t,i)=>{this.state.changed||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.timeout=null,i===null?window.alert("Show file was deleted!"):this.state.text!==null||this.state.code!==null?this.readFile():this.setState({forceUpdate:Date.now()})},300))};getEditorOrViewer(){return M.createElement(j.TextField,{variant:"standard",style:Bt.textarea,multiline:!0,value:this.state.editingValue||this.state.code||this.state.text,slotProps:{htmlInput:{readOnly:!this.state.editing}}})}getContent(){return this.state.ext&&we.images.includes(this.state.ext)?this.state.imgError?M.createElement(DM,{style:{...Bt.img,...this.props.getStyleBackgroundImage()}}):M.createElement(me,{onError:e=>{e.target.onerror=null,this.setState({imgError:!0})},style:{...Bt.img,...this.props.getStyleBackgroundImage()},src:`${this.props.href}?ts=${this.state.forceUpdate}`,alt:this.props.href}):this.state.ext&&we.audio.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("audio",{style:{width:"100%"},src:this.props.href,controls:!0})):this.state.ext&&we.video.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("video",{style:{width:"100%",height:"100%"},controls:!0},M.createElement("source",{src:this.props.href,type:`video/${this.state.ext}}`}))):this.state.code!==null||this.state.text!==null||this.state.editing?this.getEditorOrViewer():null}onSave(){}render(){return M.createElement(j.Dialog,{sx:{"&.MuiDialog-scrollPaper":Bt.dialog,"& .MuiDialog-paper":Bt.paper},scroll:"paper",open:!!this.props.href,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"ar_dialog_file_view_title"},M.createElement("div",{style:Bt.dialogTitle},M.createElement(j.DialogTitle,{id:"ar_dialog_file_view_title"},`${this.props.t(this.state.editing?"Edit":"View")}: ${this.props.href}`),this.state.ext&&we.images.includes(this.state.ext)&&M.createElement("div",null,M.createElement(j.IconButton,{size:"large",color:"inherit",onClick:this.props.setStateBackgroundImage},M.createElement(ca,null)))),M.createElement(j.DialogContent,{style:Bt.content},this.getContent()),M.createElement(j.DialogActions,null,this.state.copyPossible?M.createElement(j.Button,{color:"grey",onClick:e=>{e.stopPropagation(),e.preventDefault(),O.copyToClipboard(this.state.text||this.state.code||"")},startIcon:M.createElement(sg,null)},this.props.t("Copy content")):null,this.state.editing?M.createElement(j.Button,{color:"grey",disabled:this.state.editingValue===this.state.code||this.state.editingValue===this.state.text,variant:"contained",onClick:()=>this.onSave(),startIcon:M.createElement(cn,null)},this.props.t("Save")):null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"primary",startIcon:M.createElement(Ne,null)},this.props.t("Close"))))}}const gfe=Io()(Lfe),js=32,Lt=32,Tr=120,pl=64,Al="Not found",Dr={all:LN,images:Lg,code:ua,txt:lg,audio:JL,video:mg},Y={root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - 8px)",overflowX:"hidden",overflowY:"auto",padding:8},filesDivHint:{position:"absolute",bottom:0,left:20,opacity:.7,fontStyle:"italic",fontSize:12},filesDivTable:{height:"calc(100% - 56px)"},filesDivTile:{height:`calc(100% - ${48*2+8}px)`,display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:`0 0 ${pl}px`},itemTile:s=>({position:"relative",userSelect:"none",cursor:"pointer",height:Tr,width:pl,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:"4px",borderRadius:"4px","&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:s=>({width:"100%",height:Tr-32-16-8,display:"block",pl:1,color:s.palette.secondary.main||"#fbff7d"}),itemFolderIconBack:s=>({position:"absolute",top:22,left:18,zIndex:1,color:(s.palette.mode==="dark","#FFF")}),itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:Tr-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:Tr-32-16-8,display:"block",objectFit:"contain"},itemSelected:s=>({background:s.palette.primary.main,color:O.invertColor(s.palette.primary.main,!0)}),itemTable:s=>({userSelect:"none",cursor:"pointer",height:js,display:"inline-flex",lineHeight:`${js}px`,"&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameTable:{display:"inline-block",pl:"10px",fontSize:"1rem",verticalAlign:"top",flexGrow:1,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden","@media screen and (max-width: 500px)":{textAlign:"end",direction:"rtl"}},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right",whiteSpace:"nowrap"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemNoImageTable:{marginTop:6},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:s=>({marginTop:"1px",marginLeft:"8px",display:"inline-block",width:30,height:30,color:s.palette.secondary.main||"#fbff7d"}),itemDownloadButtonTable:s=>({display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"middle",textAlign:"center",padding:0,borderRadius:`${Lt/2}px`,"&:hover":{backgroundColor:s.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"},"& span":{pt:"9px"},"& svg":{width:14,height:14,fontSize:"1rem",mt:"-3px",verticalAlign:"middle",color:s.palette.mode==="dark"?"#EEE":"#111"}}),itemDownloadEmptyTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,padding:0},itemAclButtonTable:{width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:s=>({m:"20px",border:"3px dashed grey",borderRadius:"30px",width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:s.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"}),uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",height:"30%",width:"100%",margin:"auto",opacity:.3},menuButtonExpertActive:{color:"#c00000"},menuButtonRestrictActive:{color:"#c05000"},pathDiv:s=>({display:"flex",width:"calc(100% - 16px)",ml:1,mr:1,textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap",backgroundColor:s.palette.secondary.main,color:s.palette.secondary.contrastText,borderRadius:"4px 4px 0 0"}),pathDivInput:{width:"100%"},pathDivBreadcrumbDir:s=>({pl:"2px",pr:"2px",cursor:"pointer",color:"white","&:hover":{backgroundColor:s.palette.primary.main,color:s.palette.primary.contrastText}}),pathDivBreadcrumbSelected:{color:"#FFF"},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},specialFolder:s=>({color:s.palette.mode==="dark"?"#229b0f":"#5dd300"}),tooltip:{pointerEvents:"none"}},mt="0_userdata.0";function ys(s){const e=(s||"").split("/");return e.length&&e.pop(),e.join("/")}function Vo(s){const e=O.getFileExtension(s);return!!(e!=null&&e.toLowerCase().match(/[a-z]+/)&&e.length<5)}const te="Table",Zo="Tile";function ml(s,e){return s.folder&&e.folder?s.name>e.name?1:s.namee.name?1:s.name{var l;return c.startsWith(`${this.limitToPath}/`)||c===this.limitToPath||((l=this.limitToPath)==null?void 0:l.startsWith(`${c}/`))}))}catch{i=[]}let r;this.props.showViewTypeButton?r=this.localStorage.getItem("files.viewType")||te:r=te;let o=this.props.selected||this.localStorage.getItem("files.selected")||mt,n;if(e.restrictToFolder){o=e.restrictToFolder,n=e.restrictToFolder;const c=e.restrictToFolder.split("/");i=[];let l="";for(let N=0;N{if(this.state.viewType===te&&!this.findItem(this.state.selected)){const t=this.state.selected.split("/");for(;t.length&&!this.findItem(t.join("/"));)t.pop();let i;t.length?i=t.join("/"):i=mt,this.setState({selected:i,path:i,pathFocus:!1},()=>this.scrollToSelected())}else this.scrollToSelected();this.initialReadFinished=!0})}scrollToSelected(){if(this.mounted){const e=document.getElementById(this.state.selected);e==null||e.scrollIntoView()}}async componentDidMount(){this.mounted=!0,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`)),this.supportSubscribes=await this.props.socket.checkFeatureSupported("BINARY_STATE_EVENT"),this.supportSubscribes&&await this.props.socket.subscribeFiles("*","*",this.onFileChange)}componentWillUnmount(){this.supportSubscribes&&this.props.socket.unsubscribeFiles("*","*",this.onFileChange),this.mounted=!1,this.browseList=null,this.browseListRunning=!1,Object.values(this._tempTimeout).forEach(e=>e&&clearTimeout(e)),this._tempTimeout={}}browseFoldersCb(e,t,i){if(!(e!=null&&e.length))i(t);else{const r=e.shift();r?this.browseFolder(r,t).catch(o=>console.error(`Cannot read folder ${r}: ${o.message}`)).then(()=>{setTimeout(()=>this.browseFoldersCb(e,t,i),0)}):setTimeout(()=>this.browseFoldersCb(e,t,i),0)}}browseFolders(e,t){let i;return t?i=t:(i={},Object.keys(this.state.folders).forEach(r=>i[r]=this.state.folders[r])),e!=null&&e.length?new Promise(r=>{this.browseFoldersCb(e,i,r)}):Promise.resolve(i)}readDirSerial(e,t){return new Promise((i,r)=>{this.browseList&&(this.browseList.push({resolve:i,reject:r,adapter:e,relPath:t}),this.browseListRunning||this.processBrowseList())})}processBrowseList(e=0){!this.browseListRunning&&this.browseList&&this.browseList.length&&(this.browseListRunning=!0,this.browseList.length>10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.resolve;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}).catch(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.reject;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}))}async browseFolder(e,t,i,r){let o;if(t?o=t:(o={},Object.keys(this.state.folders).forEach(u=>{o[u]=this.state.folders[u]})),o[e]&&!r)return i?Promise.resolve(o):new Promise((u,L)=>{Promise.all(o[e].filter(g=>g.folder).map(g=>this.browseFolder(g.id,o,!0).catch(()=>{}))).then(()=>u(o)).catch(g=>L(new Error(g)))});if(!e||e==="/"){try{let u=await this.props.socket.readMetaItems();const L=[];let g=null;if(this.state.restrictToFolder){const T=this.state.restrictToFolder.split("/")[0];u=u.filter(D=>D._id===T)}else this.state.expertMode||(u=u.filter(T=>!T._id.endsWith(".admin")));const y=u.findIndex(T=>T._id==="system.meta.uuid");if(y!==-1&&u.splice(y,1),u.forEach(T=>{if(this.limitToObjectID&&this.limitToObjectID!==T._id)return;const D={id:T._id,name:T._id,title:T.common&&T.common.name||T._id,meta:!0,from:T.from,ts:T.ts,color:T.common&&T.common.color,icon:T.common&&T.common.icon,folder:!0,acl:T.acl,level:0};D.id===mt?g=D:L.push(D)}),L.sort((T,D)=>T.id>D.id?1:T.idT.folder).map(T=>this.browseFolder(T.id,o,!0).catch(()=>{}))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read meta items: ${L.message}`),o[e||"/"]=[]}return o}const n=e.split("/"),a=n.length,c=n.shift(),l=n.join("/");let N;try{N=await this.readDirSerial(c||"",l)}catch(u){if(u==="Not exists"&&c==="0_userdata.0")N=[];else throw u}try{const u=[];if(N.forEach(L=>{var y;const g={id:`${e}/${L.file}`,ext:O.getFileExtension(L.file),folder:L.isDir,name:L.file,size:(y=L.stats)==null?void 0:y.size,modified:L.modifiedAt,acl:L.acl,level:a};this.state.restrictToFolder?(g.folder&&(g.id.startsWith(`${this.state.restrictToFolder}/`)||g.id===this.state.restrictToFolder||this.state.restrictToFolder.startsWith(`${g.id}/`))||g.id.startsWith(`${this.state.restrictToFolder}/`))&&u.push(g):this.limitToPath?(g.folder&&(g.id.startsWith(`${this.limitToPath}/`)||g.id===this.limitToPath||this.limitToPath.startsWith(`${g.id}/`))||g.id.startsWith(`${this.limitToPath}/`))&&u.push(g):u.push(g)}),u.sort(ml),o[e]=u,!i)return Promise.all(u.filter(L=>L.folder).map(L=>this.browseFolder(L.id,o,!0))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read ${c}${l?`/${l}`:""}: ${L==null?void 0:L.message}`),o[e]=[]}return o}toggleFolder(e,t){t==null||t.stopPropagation();const i=[...this.state.expanded],r=i.indexOf(e.id);r===-1?(i.push(e.id),i.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(i)),e.temp?this.setState({expanded:i}):this.browseFolder(e.id).then(o=>this.setState({expanded:i,folders:o})).catch(o=>window.alert(o===Al?this.props.t('ra_Cannot find "%s"',e.id):this.props.t('ra_Cannot read "%s"',e.id)))):(i.splice(r,1),this.localStorage.setItem("files.expanded",JSON.stringify(i)),this.setState({expanded:i}))}onFileChange=(e,t,i)=>{const r=`${e}/${t}`,o=r.lastIndexOf("/"),n=r.substring(0,o);console.log(`File changed ${r}[${i}]`),this.state.folders[n]&&(this._tempTimeout[n]&&clearTimeout(this._tempTimeout[n]),this._tempTimeout[n]=setTimeout(()=>{delete this._tempTimeout[n],this.browseFolder(n,null,!1,!0).then(a=>this.setState({folders:a})).catch(a=>console.error(`Cannot read folder: ${a.message}`))},300))};changeFolder(e,t){var r;e==null||e.stopPropagation(),this.lastSelect=Date.now();let i=t||ys(this.state.currentDir);if(i==="/"&&(i=""),this.state.viewType==="Tile"&&((r=this.refFileDiv.current)!=null&&r.scrollTop)&&(this.scrollPositions[this.state.currentDir]=this.refFileDiv.current.scrollTop),this.localStorage.setItem("files.currentDir",i),t&&e&&(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)){this.setState({selected:i});return}if(i&&!this.state.folders[i]){this.browseFolder(i).then(o=>this.setState({folders:o,path:i,currentDir:i,selected:i,pathFocus:!1},()=>this.props.onSelect&&this.props.onSelect(""))).catch(o=>console.error(`Cannot read folder: ${o.message}`));return}this.setState({currentDir:i,selected:i,path:i,pathFocus:!1},()=>{if(this.props.onSelect&&this.props.onSelect(""),this.state.viewType==="Tile"&&this.scrollPositions[this.state.currentDir]){const o=this.scrollPositions[this.state.currentDir];delete this.scrollPositions[this.state.currentDir],this.refFileDiv.current&&(this.refFileDiv.current.scrollTop=o)}})}select(e,t,i){t&&t.stopPropagation(),this.lastSelect=Date.now(),this.localStorage.setItem("files.selected",e),this.setState({selected:e,path:e,pathFocus:!1},()=>{if(this.props.onSelect){const r=O.getFileExtension(e);(!this.props.filterFiles||r&&this.props.filterFiles.includes(r))&&(!this.state.filterByType||r&&we[this.state.filterByType].includes(r))?this.props.onSelect(e,!1,!!this.state.folders[e]):this.props.onSelect("")}i&&i()})}getText(e){if(e)return typeof e=="object"?e[this.props.lang]||e.en||void 0:e}renderFolder(e,t){var c;if(this.state.filterEmpty&&!((c=this.state.folders[e.id])!=null&&c.length)&&e.id!==mt&&!e.temp)return null;const i=t?fr:Ws,r=this.state.viewType===te?e.level*this.levelPadding:0,o=e.name===mt,n=o||e.name==="vis.0"||e.name==="vis-2.0",a=O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`],n&&Y.specialFolder);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,style:this.state.viewType===te?{marginLeft:r,width:`calc(100% - ${r}px`}:void 0,onClick:l=>this.state.viewType===te?this.select(e.id,l):this.changeFolder(l,e.id),onDoubleClick:l=>this.state.viewType===te&&this.toggleFolder(e,l),title:this.getText(e.title),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:{},e.temp?Y.itemFolderTemp:{})},M.createElement(i,{style:a,onClick:this.state.viewType===te?l=>this.toggleFolder(e,l):void 0}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},o?this.props.t("ra_User files"):e.name),M.createElement(j.Box,{component:"div",style:Y[`itemSize${this.state.viewType}`],sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.state.folders[e.id]?this.state.folders[e.id].length:""),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),this.state.viewType===te&&this.props.expertMode?M.createElement(j.Box,{component:"div",sx:{...Y.itemDeleteButtonTable,display:{md:"inline-block",sm:"none"}}}):null,this.state.viewType===te&&this.props.allowDownload?M.createElement("div",{style:Y[`itemDownloadEmpty${this.state.viewType}`]}):null,this.state.viewType===te&&this.props.allowDelete&&this.state.folders[e.id]&&this.state.folders[e.id].length?M.createElement(j.IconButton,{"aria-label":"delete",onClick:l=>{l.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderBackFolder(){return M.createElement(j.Box,{component:"div",key:this.state.currentDir,id:this.state.currentDir,onClick:e=>this.changeFolder(e),title:this.props.t("ra_Back to %s",ys(this.state.currentDir)),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`])},M.createElement(Ws,{style:O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`])}),M.createElement(WL,{sx:Y.itemFolderIconBack}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},".."))}formatSize(e){return M.createElement("div",{style:Y[`itemSize${this.state.viewType}`]},e||e===0?O.formatBytes(e):"")}formatAcl(e){const t=e?e.permissions||e.file:0;let i;return t?i=t.toString(16).padStart(3,"0"):i="",M.createElement("div",{style:Y[`itemAccess${this.state.viewType}`]},this.props.modalEditOfAccessControl?M.createElement(j.IconButton,{size:"large",onClick:()=>this.setState({modalEditOfAccess:!0}),sx:Y[`itemAclButton${this.state.viewType}`]},i||"---"):i||"---")}getFileIcon(e){switch(e){case"json":case"json5":return M.createElement(FL,{style:Y[`itemIcon${this.state.viewType}`]});case"css":return M.createElement(GL,{style:Y[`itemIcon${this.state.viewType}`]});case"js":case"ts":return M.createElement(ua,{style:Y[`itemIcon${this.state.viewType}`]});case"html":case"md":return M.createElement(Kr,{style:Y[`itemIcon${this.state.viewType}`]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return M.createElement(Dg,{style:Y[`itemIcon${this.state.viewType}`]});default:return M.createElement(LN,{style:Y[`itemIcon${this.state.viewType}`]})}}static getEditFile(e){switch(e){case"json":case"json5":case"js":case"html":case"txt":case"css":case"log":return!0;default:return!1}}setStateBackgroundImage=()=>{const e=["light","dark","colored","delete"];this.setState(({backgroundImage:t})=>t&&e.indexOf(t)!==-1&&e.length-1!==e.indexOf(t)?(this.localStorage.setItem("files.backgroundImage",e[e.indexOf(t)+1]),{backgroundImage:e[e.indexOf(t)+1]}):(this.localStorage.setItem("files.backgroundImage",e[0]),{backgroundImage:e[0]}))};getStyleBackgroundImage=()=>{switch(this.state.backgroundImage){case"light":return Y.backgroundImageLight;case"dark":return Y.backgroundImageDark;case"colored":return Y.backgroundImageColored;case"delete":return null;default:return null}};renderFile(e){const t=this.state.viewType===te?e.level*this.levelPadding:0,i=O.getFileExtension(e.name);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,onDoubleClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},onClick:r=>this.select(e.id,r),style:this.state.viewType===te?{marginLeft:t,width:`calc(100% - ${t}px)`}:void 0,className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFile${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:void 0)},i&&we.images.includes(i)?this.state.fileErrors.includes(e.id)?M.createElement(DM,{style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage(),...Y[`itemNoImage${this.state.viewType}`]}}):M.createElement(me,{onError:r=>{r.target.onerror=null;const o=[...this.state.fileErrors];o.includes(e.id)||(o.push(e.id),this.setState({fileErrors:o}))},style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage()},src:this.imagePrefix+e.id,alt:e.name}):this.getFileIcon(i),M.createElement(j.Box,{component:"div",sx:Y[`itemName${this.state.viewType}`]},e.name),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.formatSize(e.size)),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode&&dM.getEditFile(i)?M.createElement(j.IconButton,{"aria-label":"edit",onClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},sx:Y.itemDeleteButtonTable,size:"large"},M.createElement(mi,{fontSize:"small"})):M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]})),this.state.viewType===te&&this.props.allowDownload?M.createElement(j.Box,{component:"a",className:"MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeLarge",sx:Y.itemDownloadButtonTable,tabIndex:0,download:e.id,href:this.imagePrefix+e.id,onClick:r=>r.stopPropagation()},M.createElement(zg,null)):null,this.state.viewType===te&&this.props.allowDelete&&e.id!=="vis.0/"&&e.id!=="vis-2.0/"&&e.id!==mt?M.createElement(j.IconButton,{"aria-label":"delete",onClick:r=>{r.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderItems(e){var t;if((t=this.state.folders)!=null&&t[e]){if(this.state.viewType===Zo){const r=[];return e&&e!=="/"&&r.push(this.renderBackFolder()),this.state.folders[e].forEach(o=>{o.folder?r.push(this.renderFolder(o)):(!this.props.filterFiles||o.ext&&this.props.filterFiles.includes(o.ext))&&(!this.state.filterByType||o.ext&&we[this.state.filterByType].includes(o.ext))&&r.push(this.renderFile(o))}),r}const i=[];return this.state.folders[e].forEach(r=>{if(r.folder){const o=this.state.expanded.includes(r.id),n=this.renderFolder(r,o);if(Array.isArray(n)?n.forEach(a=>i.push(a)):i.push(n),this.state.folders[r.id]&&o){const a=this.renderItems(r.id);Array.isArray(a)?a.forEach(c=>i.push(c)):i.push(a)}}else(!this.props.filterFiles||r.ext&&this.props.filterFiles.includes(r.ext))&&(!this.state.filterByType||r.ext&&we[this.state.filterByType].includes(r.ext))&&i.push(this.renderFile(r))}),i}return M.createElement("div",{style:{position:"relative"}},M.createElement(j.CircularProgress,{key:e,color:"secondary",size:24}),M.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}renderToolbar(){const e=this.props.showTypeSelector?Dr[this.state.filterByType||"all"]||Dr.all:null,t=this.findFirstFolder(this.state.selected);return M.createElement(j.Toolbar,{key:"toolbar",variant:"dense"},this.props.allowNonRestricted&&this.props.restrictToFolder?M.createElement(j.IconButton,{edge:"start",title:this.state.restrictToFolder?this.props.t("ra_Show all folders"):this.props.t("ra_Restrict to folder"),style:{...Y.menuButton,...this.state.restrictToFolder?Y.menuButtonRestrictActive:void 0},"aria-label":"restricted to folder",onClick:()=>this.setState({restrictToFolder:(this.state.restrictToFolder?"":this.props.restrictToFolder)||"",loadAllFolders:!0}),size:"small"},M.createElement(ug,{fontSize:"small"})):null,this.props.showExpertButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle expert mode"),style:{...Y.menuButton,...this.state.expertMode?Y.menuButtonExpertActive:void 0},"aria-label":"expert mode",onClick:()=>this.setState({expertMode:!this.state.expertMode}),size:"small"},M.createElement($n,null)):null,this.props.showViewTypeButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle view mode"),style:Y.menuButton,"aria-label":"view mode",onClick:()=>{const i=this.state.viewType===te?Zo:te;this.localStorage.setItem("files.viewType",i);let r=this.state.selected;Vo(r)&&(r=ys(r)),this.setState({viewType:i,currentDir:r},()=>{this.state.viewType===te&&this.scrollToSelected()})},size:"small"},this.state.viewType!==te?M.createElement(jg,{fontSize:"small"}):M.createElement(fg,{fontSize:"small"})):null,M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Hide empty folders"),style:Y.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:()=>{this.localStorage.setItem("file.empty",this.state.filterEmpty?"false":"true"),this.setState({filterEmpty:!this.state.filterEmpty})},size:"small"},M.createElement(cg,{fontSize:"small"})),M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Reload files"),style:Y.menuButton,color:"inherit","aria-label":"reload files",onClick:()=>this.setState({folders:{}},()=>this.loadFolders()),size:"small"},M.createElement(jN,{fontSize:"small"})),this.props.allowCreateFolder?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),style:Y.menuButton,color:"inherit","aria-label":"add folder",onClick:()=>this.setState({addFolder:!0}),size:"small"},M.createElement(NN,{fontSize:"small"})):null,this.props.allowUpload?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),style:Y.menuButton,color:"inherit","aria-label":"upload file",onClick:()=>this.setState({uploadFile:!0}),size:"small"},M.createElement(Sr,{fontSize:"small"})):null,this.props.showTypeSelector&&e?M.createElement(j.Tooltip,{title:this.props.t("ra_Filter files"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{size:"small",onClick:i=>this.setState({showTypesMenu:i.target})},M.createElement(e,{fontSize:"small"}))):null,this.state.showTypesMenu?M.createElement(j.Menu,{open:!0,anchorEl:this.state.showTypesMenu,onClose:()=>this.setState({showTypesMenu:null})},Object.keys(Dr).map(i=>{const r=Dr[i];return M.createElement(j.MenuItem,{key:i,selected:this.state.filterByType===i,onClick:()=>{i==="all"?(this.localStorage.removeItem("files.filterByType"),this.setState({filterByType:"",showTypesMenu:null})):(this.localStorage.setItem("files.filterByType",i),this.setState({filterByType:i,showTypesMenu:null}))}},M.createElement(j.ListItemIcon,null,M.createElement(r,{fontSize:"small"})),M.createElement(j.ListItemText,null,this.props.t(`ra_fileType_${i}`)))})):null,M.createElement(j.Tooltip,{title:this.props.t("ra_Background image"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{color:"inherit",edge:"start",style:Y.menuButton,onClick:this.setStateBackgroundImage,size:"small"},M.createElement(ca,{fontSize:"small"}))),this.state.viewType!==te&&this.props.allowDelete?M.createElement(j.Tooltip,{title:this.props.t("ra_Delete"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement("span",null,M.createElement(j.IconButton,{"aria-label":"delete",disabled:!this.state.selected||this.state.selected==="vis.0/"||this.state.selected==="vis-2.0/"||this.state.selected===mt,color:"inherit",edge:"start",style:Y.menuButton,onClick:i=>{i.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(this.state.selected):this.setState({deleteItem:this.state.selected})},size:"small"},M.createElement(nt,{fontSize:"small"})))):null)}findItem(e,t){if(t=t||this.state.folders,!t)return null;const i=e.split("/");i.pop();const r=i.join("/")||"/";return t[r]&&t[r].find(o=>o.id===e)||null}renderInputDialog(){if(this.state.addFolder){const e=this.findFirstFolder(this.state.selected);return e?M.createElement(JEe,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:t=>this.state.folders[e].find(i=>i.name===t)?"":this.props.t("ra_Duplicate name"),onClose:t=>{if(t){const i={};Object.keys(this.state.folders).forEach(a=>i[a]=this.state.folders[a]);const r=this.findItem(e),o=`${e}/${t}`;i[e].push({id:o,level:((r==null?void 0:r.level)||0)+1,name:t,folder:!0,temp:!0}),i[e].sort(ml),i[o]=[];const n=[...this.state.expanded];n.includes(e)||(n.push(e),n.sort()),this.localStorage.setItem("files.expanded",JSON.stringify(n)),this.setState({addFolder:!1,folders:i,expanded:n},()=>this.select(o))}else this.setState({addFolder:!1})},replace:t=>t.replace(/[^-_\w]/,"_")}):(window.alert(this.props.t("ra_Invalid parent folder!")),null)}return null}componentDidUpdate(){this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(()=>{this.setOpacityTimer=null;const e=window.document.getElementsByClassName("browserItem");for(let t=0;tthis.setState({uploadFile:!1})},M.createElement(Ne,null)),M.createElement(uN,{key:"dropzone",onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:e=>{let t=e.length;e.forEach(i=>{const r=new FileReader;r.onabort=()=>console.log("file reading was aborted"),r.onerror=()=>console.log("file reading has failed"),r.onload=()=>{const o=this.findFirstFolder(this.state.selected);if(!o)window.alert(this.props.t("ra_Invalid parent folder!"));else{const n=`${o}/${i.name}`;this.uploadFile(n,r.result).then(()=>{--t||this.setState({uploadFile:!1},()=>{if(this.supportSubscribes){const a=[...this.state.expanded];a.includes(o)||(a.push(o),a.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(a))),this.setState({expanded:a},()=>this.select(n))}else setTimeout(()=>this.browseFolder(o,null,!1,!0).then(a=>{const c=[...this.state.expanded];c.includes(o)||(c.push(o),c.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(c))),this.setState({folders:a,expanded:c},()=>this.select(n))}),500)})})}},r.readAsArrayBuffer(i)})}},({getRootProps:e,getInputProps:t})=>M.createElement("div",{style:{...Y.uploadDiv,...this.state.uploadFile==="dragging"?Y.uploadDivDragging:void 0},...e()},M.createElement("input",{...t()}),M.createElement(j.Box,{component:"div",sx:Y.uploadCenterDiv},M.createElement("div",{style:Y.uploadCenterTextAndIcon},M.createElement(Sr,{style:Y.uploadCenterIcon}),M.createElement("div",{style:Y.uploadCenterText},this.state.uploadFile==="dragging"?this.props.t("ra_Drop file here"):this.props.t("ra_Place your files here or click here to open the browse dialog"))))))]:null}deleteRecursive(e){const t=this.findItem(e);if(t!=null&&t.folder)return(this.state.folders[e]?Promise.all(this.state.folders[e].map(o=>this.deleteRecursive(o.id))):Promise.resolve()).then(()=>{if(t.level>=1){const o=e.split("/"),n=o.shift();this.props.socket.deleteFolder(n||"",o.join("/")).then(()=>{const a=JSON.parse(JSON.stringify(this.state.folders));delete a[t.id];const c=ys(t.id),l=a[c];if(l){const N=l.findIndex(u=>u.id===t.id);N!==-1&&l.splice(N,1),this.select(c,null,()=>this.setState({folders:a}))}})}});const i=e.split("/"),r=i.shift();return i.length?this.props.socket.deleteFile(r||"",i.join("/")).catch(o=>window.alert(`Cannot delete file: ${o}`)):Promise.resolve()}deleteItem(e){e=e||this.state.deleteItem,this.state.suppressDeleteConfirm&&(this.suppressDeleteConfirm=Date.now()+6e4*5),this.setState({deleteItem:"",suppressDeleteConfirm:!1},()=>this.deleteRecursive(e).then(()=>{const t={},i=this.state.expanded.indexOf(e);if(i!==-1){const r=[...this.state.expanded];r.splice(i,1),this.localStorage.setItem("files.expanded",JSON.stringify(r)),t.expanded=r}if(this.state.selected===e){const r=this.state.selected.split("/");r.pop(),t.selected=r.join("/")}if(this.supportSubscribes)this.setState(t);else{const r=this.findFirstFolder(e),o={};Object.keys(this.state.folders).forEach(n=>{n!==r&&!n.startsWith(`${r}/`)&&(o[n]=this.state.folders[n])}),t.folders=o,this.setState(t,()=>setTimeout(()=>{this.browseFolders([...this.state.expanded],o).then(n=>this.setState({folders:n})).catch(n=>console.error(n))},200))}}))}renderDeleteDialog(){return this.state.deleteItem?M.createElement(j.Dialog,{key:"deleteDialog",open:!0,onClose:()=>this.setState({deleteItem:""}),"aria-labelledby":"ar_dialog_file_delete_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_file_delete_title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.props.t("ra_Are you sure?")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.suppressDeleteConfirm,onChange:()=>{this.setState({suppressDeleteConfirm:!this.state.suppressDeleteConfirm})}}),label:this.props.t("ra_no confirm for 5 mins")})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.deleteItem(""),color:"primary",autoFocus:!0},this.props.t("ra_Delete")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({deleteItem:""}),color:"grey"},this.props.t("ra_Cancel")))):null}renderViewDialog(){const e=this.props.FileViewer||gfe;return this.state.viewer?M.createElement(e,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeType:this.props.themeType,setStateBackgroundImage:this.setStateBackgroundImage,getStyleBackgroundImage:this.getStyleBackgroundImage,t:this.props.t,socket:this.props.socket,onClose:()=>this.setState({viewer:"",formatEditFile:""})}):null}renderError(){return this.state.errorText?M.createElement(s0,{key:"errorDialog",text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}updateItemsAcl(e){this.cacheFolders||=JSON.parse(JSON.stringify(this.state.folders));let t;e.forEach(i=>{const r=this.findItem(i.id,this.cacheFolders);r&&JSON.stringify(r.acl)!==JSON.stringify(i.acl)&&(r.acl=i.acl,t=!0)}),t&&(this.cacheFoldersTimeout&&clearTimeout(this.cacheFoldersTimeout),this.cacheFoldersTimeout=setTimeout(()=>{this.cacheFoldersTimeout=null;const i=this.cacheFolders||{};this.cacheFolders=null,this.setState({folders:i})},200))}changeToPath(){setTimeout(()=>{if(this.state.path!==this.state.selected&&(!this.lastSelect||Date.now()-this.lastSelect>100)){let e=this.state.path;Vo(this.state.path)&&(e=ys(this.state.path)),new Promise(t=>{this.state.folders[e]?t(!0):this.browseFolder(e).then(i=>this.setState({folders:i},()=>t(!0))).catch(i=>this.setState({errorText:i===Al?this.props.t('ra_Cannot find "%s"',e):this.props.t('ra_Cannot read "%s"',e)}))}).then(t=>t&&this.setState({selected:this.state.path,currentDir:e,pathFocus:!1})).catch(t=>console.error(t))}else(!this.lastSelect||Date.now()-this.lastSelect>100)&&this.setState({pathFocus:!1})},100)}renderBreadcrumb(){const e=this.state.currentDir.startsWith("/")?this.state.currentDir.split("/"):`/${this.state.currentDir}`.split("/"),t=[];return M.createElement(j.Breadcrumbs,{style:{paddingLeft:8,color:"#FFF"}},e.map((i,r)=>{i&&t.push(i);const o=t.join("/");return rthis.changeFolder(n,o||"/")},i||this.props.t("ra_Root")):M.createElement("div",{style:Y.pathDivBreadcrumbSelected,key:`${this.state.selected}_${r}`,onClick:()=>this.setState({pathFocus:!0})},i)}))}renderPath(){return M.createElement(j.Box,{component:"div",key:"path",sx:Y.pathDiv},this.state.pathFocus?M.createElement(j.Input,{value:this.state.path,onKeyDown:e=>{e.key==="Enter"?this.changeToPath():e.key==="Escape"&&this.setState({pathFocus:!1})},endAdornment:M.createElement(j.IconButton,{size:"small",onClick:()=>this.changeToPath()},M.createElement(gg,null)),onBlur:()=>this.changeToPath(),onChange:e=>this.setState({path:e.target.value}),style:Y.pathDivInput}):this.renderBreadcrumb())}render(){return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(()=>{this.setState({loadAllFolders:!1,folders:{}},()=>{this.foldersLoading=!1,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`))})},300)),M.createElement("div",{style:{...Y.root,...this.props.style},className:this.props.className},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===Zo?this.renderPath():null,M.createElement("div",{style:{...Y.filesDiv,...Y[`filesDiv${this.state.viewType}`]},onClick:e=>{this.state.viewType!==te&&(this.state.selected!==(this.state.currentDir||"/")?this.changeFolder(e,this.state.currentDir||"/"):e.stopPropagation())},id:"dev",ref:this.refFileDiv},this.state.viewType===te?this.renderItems("/"):this.renderItems(this.state.currentDir||"/"),this.state.viewType!==te?M.createElement("div",{style:Y.filesDivHint},this.props.t("ra_select_folder_hint")):null),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl?this.props.modalEditOfAccessControl(this):null,this.renderError())):M.createElement(j.LinearProgress,null)}}const jfe=Io()(dM),yfe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIC0xMjAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDBoLTQ2NGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgzMnYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDI4OHYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTE5MmMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMzkyIDIyNGgtMjR2LTE2aDI0em0zNDQgMGgtMjR2LTE2aDI0em00MC0zMmgtNDQ4di0xNzZoNDQ4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2IDE3NmMzNS4zNDc2NTYgMCA2NC0yOC42NTIzNDQgNjQtNjRzLTI4LjY1MjM0NC02NC02NC02NC02NCAyOC42NTIzNDQtNjQgNjRjLjAzOTA2MiAzNS4zMjgxMjUgMjguNjcxODc1IDYzLjk2MDkzOCA2NCA2NHptLTgtMTExLjI4MTI1djE1LjI4MTI1aDE2di0xNS4yODEyNWMyNC42MDU0NjkgNC4xNjAxNTYgNDEuOTE3OTY5IDI2LjQ3NjU2MiAzOS44MzIwMzEgNTEuMzQzNzUtMi4wODU5MzcgMjQuODY3MTg4LTIyLjg3ODkwNiA0My45ODQzNzUtNDcuODMyMDMxIDQzLjk4NDM3NXMtNDUuNzQ2MDk0LTE5LjExNzE4Ny00Ny44MzIwMzEtNDMuOTg0Mzc1Yy0yLjA4NTkzOC0yNC44NjcxODggMTUuMjI2NTYyLTQ3LjE4MzU5NCAzOS44MzIwMzEtNTEuMzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjAgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYwIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzY4IDE3NmMxNi4wOTM3NS4wMTk1MzEgMjkuNjg3NS0xMS45Mzc1IDMxLjcxODc1LTI3LjkwNjI1IDIuMDM1MTU2LTE1Ljk2NDg0NC04LjEzMjgxMi0zMC45NDUzMTItMjMuNzE4NzUtMzQuOTU3MDMxdi0xNy4xMzY3MTloLTE2djE3LjEzNjcxOWMtMTUuNTg1OTM4IDQuMDExNzE5LTI1Ljc1MzkwNiAxOC45OTIxODctMjMuNzE4NzUgMzQuOTU3MDMxIDIuMDMxMjUgMTUuOTY4NzUgMTUuNjI1IDI3LjkyNTc4MSAzMS43MTg3NSAyNy45MDYyNXptMC00OGM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2cy03LjE2NDA2MiAxNi0xNiAxNi0xNi03LjE2NDA2Mi0xNi0xNiA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im02NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggMTEyaDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTMyYy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDh6bTgtNjRoMTZ2MTZoLTE2em0wIDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMiAxMzZjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MzIgMTY4YzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Tfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy41NDYgMTA1LjEyNWMwLTEuMDQ0LS4yMDUtMi4wOTEtLjY0Ny0zLjA3MmwtNDMuOTMtOTcuNjNjLTEuMjEtMi42OTItMy44ODgtNC40MjMtNi44MzktNC40MjNoLTE4Mi42M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMy44MTJ2ODIuNjNoLTgyLjYyNXYtODIuNjNoMjMuODEzYzQuMTQzIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xODIuNjNjLTIuOTUxIDAtNS42MjkgMS43MzEtNi44NCA0LjQyM2wtNDMuOTMgOTcuNjNjLS40NDEuOTgxLS42NDYgMi4wMjgtLjY0NyAzLjA3MmgtLjAxNXYxMi4yMDNjMCAyOS41MTQgMjIuODI3IDUzLjc4IDUxLjc1MSA1Ni4xMTJsMzEuODY1IDU4LjQxOWgtNC4wMDdjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjMzYy4wMDUgMCAuMDEuMDAxLjAxNS4wMDFzLjAxMS0uMDAxLjAxNi0uMDAxaDE2LjYxOGM0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTIuMTg5bC0zMi40NTYtNTkuNTAzYzE1Ljc1LTMuNDEzIDI5LjA1Ny0xMy40MzMgMzYuODc5LTI3LjAwMyA5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM3LjgyMiAxMy41NzEgMjEuMTI5IDIzLjU5MSAzNi44NzkgMjcuMDAzbC0zMi40NTYgNTkuNTAzaC0xMi4xODhjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjE4Yy4wMDUgMCAuMDExLjAwMS4wMTYuMDAxcy4wMS0uMDAxLjAxNS0uMDAxaDE2LjYzM2M0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNC4wMDdsMzEuODY1LTU4LjQxOWMyOC45MjQtMi4zMzIgNTEuNzUxLTI2LjU5OCA1MS43NTEtNTYuMTEydi0xMi4yMDN6bS0xOS4wODUtNy40OTVoLTc4LjUyM3YtODIuNjNoNDEuMzQzem0tOTMuNTIzLTgyLjYzdjgyLjYzaC04Mi42MjV2LTgyLjYzem0tMTk1LjI1IDgyLjYzaC04Mi42MjV2LTgyLjYzaDgyLjYyNXptLTEzOC45NjgtODIuNjNoNDEuMzQzdjgyLjYzaC03OC41MjR6bS4wMzQgMTQzLjY0MWMtLjAxMSAwLS4wMjEtLjAwMS0uMDMyLS4wMDEtMjIuNzY3LS4wMTUtNDEuMjg1LTE4LjU0Mi00MS4yODUtNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTMxIDQxLjMxLTQxLjMwOCA0MS4zMTN6bTk3LjYyMSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMwIDIyLjc3OC0xOC41MzQgNDEuMzEyLTQxLjMxMyA0MS4zMTJ6bTk3LjYyNSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMtLjAwMSAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42MjUgMGMtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42NDgtLjAwMWMtLjAwNSAwLS4wMDkgMC0uMDE0IDAtLjAwMyAwLS4wMDYgMC0uMDA5IDAtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjLS4wMDEgMjIuNzcyLTE4LjUyMSA0MS4zLTQxLjI5IDQxLjMxMnoiLz4KICAgIDwvZz4KPC9zdmc+",Dfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOC41MzYgNTA4LjUzNiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ5OC41MzYgMzQ0LjMyMWgtMTcuMjk4Yy40MzQtMTcuNjcyLTEwLjI2Ny0zNC4yMTItMjkuNTQ3LTM0LjIxMnMtMjkuOTgyIDE2LjU0LTI5LjU0NyAzNC4yMTJoLTE3LjI5OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OTdjMCAyNC42MDEgMTUuNzEyIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5M3YtNjYuNjRjMzYuMDg4IDEuMjY2IDU3Ljg0Ni0yMi4zOSA4MS4xNDktNDUuNjk0IDI4LjUxNy0zLjAyNCA1MC44MDktMjcuMjE2IDUwLjgwOS01Ni41MjJ2LTI1LjY5OGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwaC0xNy4yOThjLjQzNC0xNy42NzEtMTAuMjY3LTM0LjIxMi0yOS41NDctMzQuMjEycy0yOS45ODIgMTYuNTQtMjkuNTQ3IDM0LjIxMmgtMTcuM2MtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OThjMCAyNC42MDEgMTUuNzExIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5NCAwLTI1Ljg5NSAwLTUxLjc5MSAwLTc3LjY4NmgyMi43MTZjMTIuMjg1IDAgMTguNzI2IDE1LjUzIDEwLjAzMyAyNC4yMjEtOS4xMjIgOS4xMjEgNS4wMiAyMy4yNjQgMTQuMTQyIDE0LjE0MyA2LjQ1OC02LjQ1NyAxMC4wMTQtMTUuMDQyIDEwLjAxNC0yNC4xNzUgMC0xOC44NTItMTUuMzM3LTM0LjE4OC0zNC4xODktMzQuMTg4aC0yMi43MTZ2LTE4LjgyNGMyNi4yNTctNS4wNDMgNDYuMTYxLTI4LjE3NSA0Ni4xNjEtNTUuODgxdi0yMC44NTFjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMzYuOTE0di0yNC4yMzZoMzYuOTE0YzEyLjg0IDAgMTIuODU5LTIwIDAtMjBoLTkzLjgyOGMtMTIuODQgMC0xMi44NTkgMjAgMCAyMGgzNi45MTR2MjQuMjM1aC0zNi45MTRjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjAuODUxYzAgMjguMjMzIDIwLjY2OSA1MS43MTkgNDcuNjY3IDU2LjE1MXYxOC41NTVoLTIyLjcxNmMtMTguODUyIDAtMzQuMTg5IDE1LjMzNy0zNC4xODkgMzQuMTg4IDAgOS4xMzIgMy41NTYgMTcuNzE3IDEwLjAxNCAyNC4xNzUgOS4xMjEgOS4xMjEgMjMuMjYzLTUuMDIxIDE0LjE0My0xNC4xNDMtOC42ODUtOC42ODQtMi4yNjQtMjQuMjIxIDEwLjAzMy0yNC4yMjFoMjIuNzE2djc3LjY4NmMwIDMyLjM2NC0yNi4zMyA1OC42OTQtNTguNjk0IDU4LjY5NC0xNS42NzcgMC0zMC40MTctNi4xMDUtNDEuNTAyLTE3LjE5MWwtMTEuMjE4LTExLjIxOGMyMi41LTcuNTc1IDM4Ljc1Ni0yOC44NTYgMzguNzU2LTUzLjg3N3YtMjUuNjk4YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5OGMuNDM0LTE3LjY3MS0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4zYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwdjI1LjY5OGMwIDI4LjcwNyAyMS4zOTQgNTIuNDk4IDQ5LjA3MyA1Ni4zbDIyLjkzNyAyMi45MzdjMTUuMTY0IDE1LjE2MyAzNi4wMSAyMy40ODYgNTcuNDMzIDIzLjAwM3Y2Ni42MTRjMCAzMi4zNjQtMjYuMzMgNTguNjkzLTU4LjY5MyA1OC42OTMtMTUuNjc3IDAtMzAuNDE3LTYuMTA1LTQxLjUwMi0xNy4xOTFsLTExLjYwMi0xMS42MDJjMjEuOTE0LTcuODk4IDM3LjYyNS0yOC44OTIgMzcuNjI1LTUzLjQ5NHYtMjUuNjk3YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5N2MuNDM0LTE3LjY3Mi0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4yOTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjUuNjk3YzAgMjkuMzA1IDIyLjI5MiA1My40OTcgNTAuODA4IDU2LjUyMWwyMi43MTcgMjIuNzE2YzE0Ljg2MyAxNC44NjMgMzQuNjI1IDIzLjA0OCA1NS42NDUgMjMuMDQ4IDQzLjM5MiAwIDc4LjY5My0zNS4zMDIgNzguNjkzLTc4LjY5M3YtNjkuNjU3YzE0LjQyNi00LjE2NCAyNy4xNjEtMTIuMzQyIDM2LjkwNS0yMy4yNTd2MjAuNTIyYzAgMTIuODQgMjAgMTIuODU5IDIwIDB2LTIwLjUyMmM5LjUyIDEwLjY2MyAyMS44ODkgMTguNzIzIDM1LjkwNSAyMi45NzJ2NjkuOTQ2YzAgNDMuMzkyIDM1LjMwMiA3OC42OTMgNzguNjkzIDc4LjY5MyAyMS4wMiAwIDQwLjc4MS04LjE4NiA1NS42NDUtMjMuMDQ4bDIyLjcxNi0yMi43MTZjMjguNTE2LTMuMDI1IDUwLjgwOC0yNy4yMTYgNTAuODA4LTU2LjUyMXYtMjUuNjk3Yy4wMDEtNS41MjQtNC40NzYtMTAuMDAxLTkuOTk5LTEwLjAwMXptLTExMi4yOTgtMTQ5LjkyN2MwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0zMjYuOTE0LTI0LjY2NGMwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0xMDQuODEyIDEyMC41OTljMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTIgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjgtMzYuODQ1LTM2Ljg0NXYtMTUuNjk3em0xMjMuNDExLTI3OC4zNjR2LTEwLjg1MWg3My44Mjh2MTAuODUxYzAgNDcuNTk2LTczLjgyOCA0Ny41OTYtNzMuODI4IDB6bTIyNS4wNDIgMjUzLjdjMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTMgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjktMzYuODQ1LTM2Ljg0NXYtMTUuNjk3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yODEuMjA2IDQ0MS44NDctMTYuNDM4LTkuNDl2LTIxLjY0NWMwLTEyLjg0LTIwLTEyLjg1OS0yMCAwdjIxLjYxOWwtMTYuNDgzIDkuNTE2Yy0zLjA5NCAxLjc4Ni01IDUuMDg3LTUgOC42NnYyNC43OGMwIDMuNTczIDEuOTA2IDYuODc0IDUgOC42NmwyMS40NiAxMi4zOWMzLjA2NyAxLjc3MSA2LjkzMyAxLjc3MSAxMCAwbDIxLjQ2LTEyLjM5YzMuMDk0LTEuNzg2IDUtNS4wODcgNS04LjY2di0yNC43OGMuMDAxLTMuNTczLTEuOTA1LTYuODc0LTQuOTk5LTguNjZ6bS0xNSAyNy42NjctMTEuNDYgNi42MTctMTEuNDYtNi42MTd2LTEzLjIzM2wxMS40Ni02LjYxNyAxMS40NiA2LjYxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ1LjUzNSAzNzQuMTgzYzEuNjM1IDMuOTI0IDUuNzE2IDYuNDY2IDkuOTY4IDYuMTM4IDQuMTY5LS4zMjIgNy43NzgtMy4yNzIgOC44OTctNy4zMDMgMi4zNjQtOC41MTMtNy4xOTEtMTUuNzU5LTE0Ljc3My0xMS4yMzUtNC4yMTQgMi41MTQtNS45NDUgNy44OC00LjA5MiAxMi40eiIvPgogICAgPC9nPgo8L3N2Zz4=",dfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtOSAxN2M0LjQxMSAwIDgtMy41ODkgOC04IDAtMS4yNTYtLjI5OS0yLjQ0MS0uODE4LTMuNTAxIDEuMTAzLTEuNTQ4IDIuODk4LTIuNDk5IDQuODE4LTIuNDk5IDIuODQgMCA1LjI3OCAyLjA2NCA1Ljc5OSA0LjgzMS0uMTkuMTA1LS4zNzUuMjE4LS41NTQuMzQyLTEuMjI0LS43NDctMi42MzYtMS4xNzMtNC4wNzQtMS4xNzNoLS4xNzF2MmguMTcxYy44OTYgMCAxLjc4LjIyMSAyLjU4LjYxNS0uMDgzLjEwOS0uMTcxLjIxMS0uMjQ4LjMyNmwtLjMzNi41MDQgMS42NjQgMS4xMDkuMzM2LS41MDRjLjg1Ny0xLjI4MyAyLjI5LTIuMDUgMy44MzMtMi4wNSAxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTdjLTEuMTAzIDAtMi0uODk3LTItMmgtMmMwIDIuMjA2IDEuNzk0IDQgNCA0aDI1YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00Yy0uNDczIDAtLjkzNS4wNi0xLjM4Ny4xNTctMS4xNTktMy42MjMtNC41NDItNi4xNTctOC40My02LjE1Ny0zLjU0OSAwLTYuNzQ2IDIuMTA3LTguMTQ0IDUuMzY5bC0uMjc3LjY0NmMtLjM1Ni4wMTMtLjcwNi4wNTUtMS4wNS4xMjMtLjgyLTMuNTQyLTQuMDIzLTYuMTM4LTcuNzEyLTYuMTM4LTIuMzEyIDAtNC40ODggMS4wMzQtNS45NzggMi43NTEtMS40NjctMS42ODItMy42Mi0yLjc1MS02LjAyMi0yLjc1MS00LjQxMSAwLTggMy41ODktOCA4czMuNTg5IDggOCA4em0yOS4xODMtMTRjMy4wNDcgMCA1LjY3NiAyLjAxNyA2LjU0MSA0Ljg3Ny0uMTYzLjA5My0uMzI1LjE4OC0uNDc5LjI5NS0xLjIyNS0uNzQ2LTIuNjM2LTEuMTcyLTQuMDc0LTEuMTcyaC0uMTcxdjJoLjE3MWMuODk1IDAgMS43OC4yMjEgMi41OC42MTUtLjA4My4xMDktLjE3MS4yMTEtLjI0OC4zMjZsLS4zMzYuNTA0IDEuNjY0IDEuMTA5LjMzNi0uNTA0Yy44NTctMS4yODMgMi4yOS0yLjA1IDMuODMzLTIuMDUgMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC0xNC41NTZjLjM0NC0uNTkxLjU1Ni0xLjI2OC41NTYtMiAwLTEuNTcxLS45MTgtMi45MTktMi4yMzgtMy41NzNsLjExNi0uMjdjMS4wODItMi41MjUgMy41NTctNC4xNTcgNi4zMDUtNC4xNTd6bS0yOS4xODMgMGMzLjMwOSAwIDYgMi42OTEgNiA2cy0yLjY5MSA2LTYgNi02LTIuNjkxLTYtNiAyLjY5MS02IDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMzd2LTQuNWw0LTN2LTIuNWgtMnYxLjVsLTIgMS41di01aC0ydjdsLTItMS41di0xLjVoLTJ2Mi41bDQgM3YyLjVoLTEwdi02LjVsNC0zdi0yLjVoLTJ2MS41bC0yIDEuNXYtNC41ODZsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny40MTRsLTItMS41di0xLjVoLTJ2Mi41bDQgM3Y0LjVoLTE0di0xLjI3OWwuNDk2LS4xNjVjMy4yOTItMS4wOTggNS41MDQtNC4xNjYgNS41MDQtNy42MzYgMC0yLjE0OS0uODM3LTQuMTcxLTIuMzU3LTUuNjkxbC00LjY0My00LjY0My0zLjgyNSAzLjgyNWMtLjM5LS44MDItLjg5Ni0xLjU0Ni0xLjUzMi0yLjE4M2wtNC42NDMtNC42NDItNC42NDMgNC42NDNjLTEuNTIgMS41Mi0yLjM1NyAzLjU0Mi0yLjM1NyA1LjY5MSAwIDMuNDcgMi4yMTIgNi41MzggNS41MDMgNy42MzVsLjQ5Ny4xNjV2NC4yOGgtMTYuMjgxbC40OSAxLjk1OWMzLjUzOSAxNC4xNTUgMTYuMjAxIDI0LjA0MSAzMC43OTEgMjQuMDQxczI3LjI1Mi05Ljg4NiAzMC43OTEtMjQuMDQxbC40OS0xLjk1OXptLTI3LjM2NCA2LjI1OCAxLjE0NSAxLjcxN2MuMTQzLjIxNC4yMTkuNDY0LjIxOS43MjIgMCAuNzE5LS41ODQgMS4zMDMtMS4zMDMgMS4zMDNoLTE1LjM5NGMtLjcxOSAwLTEuMzAzLS41ODQtMS4zMDMtMS4zMDMgMC0uMjU4LjA3Ni0uNTA4LjIxOS0uNzIzbDEuMTQ2LTEuNzE4Yy40MTUtLjYyNC42MzUtMS4zNTEuNjM1LTIuMTAxIDAtLjc3LS4yNDYtMS41MjUtLjY4MS0yLjE1NWgxNS4zNjJjLS40MzUuNjMxLS42ODEgMS4zODUtLjY4MSAyLjE1NSAwIC43NS4yMiAxLjQ3Ny42MzYgMi4xMDN6bS0xLjYzNi0yMi44NDQgMy4yMjkgMy4yMjljMS4xNDIgMS4xNDIgMS43NzEgMi42NjIgMS43NzEgNC4yNzcgMCAyLjU1Ny0xLjYwNCA0LjgxNy00IDUuNjgxdi0xLjE4NmwyLjcwNy0yLjcwNy0xLjQxNC0xLjQxNC0xLjI5MyAxLjI5MnYtMi4xNzJsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny4wMTRjLTIuMzk2LS44NjMtNC0zLjEyMi00LTUuNjggMC0xLjYxNS42MjktMy4xMzUgMS43NzEtNC4yNzd6bS0xNSA0LjUwNmMwLTEuNjE1LjYyOS0zLjEzNSAxLjc3MS00LjI3N2wzLjIyOS0zLjIyOSAzLjIyOSAzLjIyOWMuNjY2LjY2NiAxLjE1MyAxLjQ4MSAxLjQ0OSAyLjM3MS0xLjA4NCAxLjQtMS42NzggMy4xMDYtMS42NzggNC45MDYgMCAuNDY0LjA0Ni45MTguMTIyIDEuMzY0LS42MDkuNTgxLTEuMzI5IDEuMDM0LTIuMTIyIDEuMzE5di02LjNsMS44MzItMi43NDgtMS42NjQtMS4xMDktMS4zMjMgMS45ODUtMS4xMzgtMS4xMzgtMS40MTQgMS40MTQgMS43MDcgMS43MDd2Mi4xNzJsLTEuMjkzLTEuMjkzLTEuNDE0IDEuNDE0IDIuNzA3IDIuNzA3djEuMTg2Yy0yLjM5Ni0uODYzLTQtMy4xMjItNC01LjY4em02IDcuODAxLjQ5Ni0uMTY1Yy44MjUtLjI3NSAxLjU4OS0uNjk2IDIuMjgxLTEuMjE2LjkxNiAxLjk0OCAyLjU4NiAzLjUwMiA0LjcyNiA0LjIxNWwuNDk3LjE2NXYxLjI4aC04em0tNy40MTQgNi4yNzkuODkuODljLjMzMy4zMzMuNTI0Ljc5NS41MjQgMS4yNjUgMCAuMzU0LS4xMDQuNjk4LS4zLjk5M2wtMS4xNDUgMS43MTdjLS4zNjMuNTQ0LS41NTUgMS4xNzgtLjU1NSAxLjgzMiAwIDEuODIyIDEuNDgxIDMuMzAzIDMuMzAzIDMuMzAzaDE1LjM5NWMxLjgyMSAwIDMuMzAyLTEuNDgxIDMuMzAyLTMuMzAzIDAtLjY1NC0uMTkyLTEuMjg4LS41NTUtMS44MzJsLTEuMTQ1LTEuNzE2Yy0uMTk2LS4yOTUtLjMtLjYzOS0uMy0uOTk0IDAtLjQ3MS4xOTEtLjkzMy41MjQtMS4yNjZsLjg5LS44OWg2LjgzNmMtLjE2LjM4NS0uMjUuODA2LS4yNSAxLjI0NyAwIDEuNDkyIDEuMDExIDIuNzg4IDIuNDU5IDMuMTQ5bDQuMjIgMS4wNTVjLjc3OC4xOTYgMS4zMjEuODkxIDEuMzIxIDEuNjkzIDAgLjcxNy0uNDMgMS4zNTMtMS4wOTYgMS42MThsLTYuMjc1IDIuNTExYy0xLjU5Ny42MzktMi42MjkgMi4xNjMtMi42MjkgMy44ODIgMCAxLjQ5Ni44MDcgMi44ODggMi4xMDcgMy42M2wyLjcxNSAxLjU1MWMtMy4wMDQgMS4wNDktNi4yMTUgMS42MjEtOS41MzcgMS42NTNsLTUuMDg2LTMuMzkxYy0uMTI0LS4wODItLjE5OS0uMjIxLS4xOTktLjM3MSAwLS4yMTkuMTU3LS40MDQuMzc0LS40NGwzLjQzNS0uNTcyYzEuMjY5LS4yMTMgMi4xOTEtMS4zMDIgMi4xOTEtMi41OSAwLTEuNDQ3LTEuMTc3LTIuNjI0LTIuNjI0LTIuNjI0aC0yMC42MDVjLTIuOTg5LTMuMzY3LTUuMjU2LTcuNDMtNi40ODYtMTJ6bTE0LjUwMyAyMC4yNjIgMi4yMyAxLjQ4N2MtNi4zMjktLjc4NC0xMi4xMDUtMy41NDgtMTYuNjA3LTcuNzQ5aDE4LjY2NGMuMzQ0IDAgLjYyNC4yOC42MjQuNjI0IDAgLjMwNy0uMjE5LjU2NS0uNTIxLjYxNmwtMy40MzQuNTcyYy0xLjE4NS4xOTgtMi4wNDUgMS4yMTItMi4wNDUgMi40MTQgMCAuODE5LjQwNyAxLjU4MSAxLjA4OSAyLjAzNnptMTguMTAzLS44NzUtNC4wOTMtMi4zMzljLS42NzgtLjM4OC0xLjA5OS0xLjExMy0xLjA5OS0xLjg5NCAwLS44OTcuNTM5LTEuNjkyIDEuMzcyLTIuMDI1bDYuMjc1LTIuNTExYzEuNDI5LS41NzEgMi4zNTMtMS45MzUgMi4zNTMtMy40NzUgMC0xLjcyMS0xLjE2Ni0zLjIxNC0yLjgzNS0zLjYzMmwtNC4yMi0xLjA1NWMtLjU1Ny0uMTQtLjk0NS0uNjM3LS45NDUtMS4yMSAwLS42ODcuNTU5LTEuMjQ2IDEuMjQ2LTEuMjQ2aDE4LjQ2OGMtMi4zNzYgOC44MjgtOC41NjUgMTUuODE0LTE2LjUyMiAxOS4zODd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDE3aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgMjFoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MyAxN2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDE5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgMjNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSAxN2gydjJoLTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",hfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik01MTEuOTc2LDQxNi4wNjNjLTAuMDA1LTAuMDc1LTAuMDA0LTAuMTQ5LTAuMDExLTAuMjI0Yy0wLjAyNy0wLjI5Ny0wLjA3LTAuNTg4LTAuMTMxLTAuODczCgkJYy0wLjAwNi0wLjAyOC0wLjAxNS0wLjA1Ni0wLjAyMi0wLjA4NGMtMC4wNTktMC4yNjItMC4xMzItMC41MTgtMC4yMTgtMC43NjhjLTAuMDIzLTAuMDY3LTAuMDQ4LTAuMTMyLTAuMDczLTAuMTk4CgkJYy0wLjA4NC0wLjIyNy0wLjE3OS0wLjQ0OC0wLjI4NC0wLjY2M2MtMC4wMTgtMC4wMzgtMC4wMy0wLjA3Ny0wLjA0OS0wLjExNWwtNDAuMTEyLTc5LjExOFY3My43MgoJCWMwLTguMDA2LTYuNTEzLTE0LjUxOS0xNC41MTktMTQuNTE5SDU1LjQ0MWMtOC4wMDYsMC0xNC41MTksNi41MTMtMTQuNTE5LDE0LjUxOXYyNjAuMjk4TDAuODExLDQxMy4xMzcKCQljLTAuMDE5LDAuMDM4LTAuMDMxLDAuMDc3LTAuMDQ5LDAuMTE1Yy0wLjEwNSwwLjIxNS0wLjE5OSwwLjQzNi0wLjI4NCwwLjY2MmMtMC4wMjUsMC4wNjYtMC4wNSwwLjEzMi0wLjA3MywwLjE5OQoJCWMtMC4wODUsMC4yNTEtMC4xNTksMC41MDgtMC4yMTgsMC43N2MtMC4wMDYsMC4wMjctMC4wMTUsMC4wNTQtMC4wMjEsMC4wODFjLTAuMDYxLDAuMjg2LTAuMTA0LDAuNTc3LTAuMTMxLDAuODc0CgkJYy0wLjAwNywwLjA3NC0wLjAwNywwLjE0OS0wLjAxMSwwLjIyM0MwLjAxNCw0MTYuMjE3LDAsNDE2LjM3MSwwLDQxNi41Mjl2MTkuMDI2YzAsOS41MDksNy43MzUsMTcuMjQ0LDE3LjI0NCwxNy4yNDRoNDc3LjUxMgoJCWM5LjUwOSwwLDE3LjI0NC03LjczNSwxNy4yNDQtMTcuMjQ0di0xOS4wMjZDNTEyLDQxNi4zNzEsNTExLjk4Niw0MTYuMjE3LDUxMS45NzYsNDE2LjA2M3ogTTU1LjkyMyw3NC4yMDNoNDAwLjE1NHYyNTQuMTA5CgkJSDU1LjkyM1Y3NC4yMDN6IE01My4wMjksMzQzLjMxMUg0NTguOTdsMzMuMzE4LDY1LjcxN2gtMTY0Ljc4bC04LjI3MS0yOS45ODljLTEuNjg0LTYuMTA1LTcuMjgyLTEwLjM2OS0xMy42MTUtMTAuMzY5aC05OS4yNDYKCQljLTYuMzMzLDAtMTEuOTMyLDQuMjY0LTEzLjYxNSwxMC4zNjhsLTguMjcxLDI5Ljk5SDE5LjcxMUw1My4wMjksMzQzLjMxMXogTTMxMS45NDgsNDA5LjAyOUgyMDAuMDUybDYuOTkzLTI1LjM1OGg5Ny45MQoJCUwzMTEuOTQ4LDQwOS4wMjl6IE00OTcsNDM1LjU1NGMwLDEuMjM3LTEuMDA3LDIuMjQ0LTIuMjQ0LDIuMjQ0SDE3LjI0NGMtMS4yMzcsMC0yLjI0NC0xLjAwNy0yLjI0NC0yLjI0NHYtMTEuNTI2aDQ4MlY0MzUuNTU0eiIKCQkvPgoJPHBhdGggZD0iTTQzMi41NzcsMjEzLjc1NmMtNC4xNDMsMC03LjUsMy4zNTctNy41LDcuNXY3Ni4wNTVIODYuOTIzdi03Ni4wNTVjMC00LjE0My0zLjM1Ny03LjUtNy41LTcuNQoJCQljLTQuMTQzLDAtNy41LDMuMzU3LTcuNSw3LjV2NzkuMjk0YzAsNi40ODUsNS4yNzUsMTEuNzYxLDExLjc2MSwxMS43NjFoMzQ0LjYzM2M2LjQ4NSwwLDExLjc2MS01LjI3NSwxMS43NjEtMTEuNzYxdi03OS4yOTQKCQkJQzQ0MC4wNzcsMjE3LjExNSw0MzYuNzIsMjEzLjc1Niw0MzIuNTc3LDIxMy43NTZ6Ii8+Cgk8cGF0aCBkPSJNNDI4LjMxNiw5MC4yMDNIODMuNjg0Yy02LjQ4NSwwLTExLjc2MSw1LjI3NS0xMS43NjEsMTEuNzYxdjc5LjI5NGMwLDQuMTQzLDMuMzU3LDcuNSw3LjUsNy41YzQuMTQzLDAsNy41LTMuMzU3LDcuNS03LjUKCQkJdi03Ni4wNTVoMzM4LjE1NHY3Ni4wNTVjMCw0LjE0MywzLjM1Nyw3LjUsNy41LDcuNXM3LjUtMy4zNTcsNy41LTcuNXYtNzkuMjk0QzQ0MC4wNzcsOTUuNDc3LDQzNC44MDIsOTAuMjAzLDQyOC4zMTYsOTAuMjAzeiIvPgo8L2c+Cjwvc3ZnPgo=",zfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE2NC4zOTkgMjA1Ljg3MmM0LjA5OS42NjQgOC4yMDYtMS4yNzMgMTAuMjg0LTQuOTFsNjAtMTA1YzEuNzY5LTMuMDk1IDEuNzU2LTYuODk3LS4wMzMtOS45OHMtNS4wODUtNC45ODEtOC42NDktNC45ODFoLTM2LjY4MmwtMTMuNDg2LTcyLjgyMWMtLjc3Mi00LjE2OS00LjA4OS03LjM5OC04LjI3Ny04LjA1OC00LjE4NS0uNjYtOC4zMzcgMS4zOTQtMTAuMzUzIDUuMTIzbC02MCAxMTFjLTEuNjc1IDMuMDk5LTEuNTk3IDYuODUxLjIwOCA5Ljg3NiAxLjgwNCAzLjAyNSA1LjA2NiA0Ljg3OSA4LjU4OSA0Ljg3OWgzNi44MDJsMTMuMzkzIDY2Ljk2MWMuODE3IDQuMDkgNC4wODggNy4yNDIgOC4yMDQgNy45MTF6bS0xMy4zOTktOTQuODcxaC0yOC4yMjhsMzguNTU0LTcxLjMyMyA5Ljg0MSA1My4xNDRjLjg3OCA0Ljc0IDUuMDEzIDguMTc5IDkuODMzIDguMTc5aDI3Ljc2OWwtMzguMiA2Ni44NS05Ljc2My00OC44MTFjLS45MzUtNC42NzQtNS4wMzktOC4wMzktOS44MDYtOC4wMzl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwIDQ1OS4wMDFjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoMjZjNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBoLTU2di02OGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHY2OGgtNDB2LTIyM2g0MHY2NWMwIDUuNTIzIDQuNDc4IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi03NWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHYyMzNoLTQwdi0xNzNjMC01LjUyMy00LjQ3OC0xMC0xMC0xMGgtNjBjLTUuNTIyIDAtMTAgNC40NzctMTAgMTB2MTczaC00MHYtMTEzYzAtNS41MjMtNC40NzgtMTAtMTAtMTBoLTYwYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwdjExM2gtNzN2LTQ0OWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHYyNmgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDN6bTI1Ni0xNjNoNDB2MTYzaC00MHptLTEyMCA2MGg0MHYxMDNoLTQweiIvPgogICAgICAgIDxwYXRoIGQ9Im00MzYgMTQ2LjAwMWM1LjUyMiAwIDEwLTQuNDc3IDEwLTEwdi02MGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgzNS44NTdsLTEwMCAxMDBoLTU1Ljg1N2MtMi42NTIgMC01LjE5NSAxLjA1NC03LjA3MSAyLjkyOWwtOTAgOTBjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAzLjkwNyAzLjkwNSAxMC4yMzYgMy45MDQgMTQuMTQzIDBsODcuMDcxLTg3LjA3MWg1NS44NTdjMi42NTIgMCA1LjE5NS0xLjA1NCA3LjA3MS0yLjkyOWwxMDIuOTI5LTEwMi45M3YzNS44NTdjMCA1LjUyNCA0LjQ3OCAxMC4wMDEgMTAgMTAuMDAxeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjQzNiIgY3k9IjM0Ni4wMDEiIHI9IjEwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",wfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHJlY3QgeD0iMjE2IiB5PSI4OC40ODkiIHdpZHRoPSI4MCIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjIxNiIgeT0iNjIuNDg5IiB3aWR0aD0iODAiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cGF0aCBkPSJNMzAsNTIuNDk0djkuMjg1Yy0yLjM0Ny0wLjgzMi00Ljg3Mi0xLjI4NS03LjUtMS4yODVjLTEyLjQwNiwwLTIyLjUsMTAuMDkzLTIyLjUsMjIuNWMwLDEyLjQwNywxMC4wOTQsMjIuNSwyMi41LDIyLjUKCQkJYzIuNjI4LDAsNS4xNTMtMC40NTMsNy41LTEuMjg1djM1NS4yOThoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NWMyLjg5OS0xLjc1NSw0LjgxNC0yLjkxNSw5LjMyNS0yLjkxNQoJCQljNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1YzguNjk4LDAsMTMuMzU0LTIuODE5LDE3LjA5NC01LjA4NQoJCQljMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1YzMuNzQsMi4yNjYsOC4zOTUsNS4wODUsMTcuMDkzLDUuMDg1CgkJCXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1YzQuNTEsMCw2LjQyNSwxLjE2LDkuMzIyLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTN2LTQwN0gzMHogTTIyLjUsOTAuNDk0Yy00LjEzNiwwLTcuNS0zLjM2NC03LjUtNy41YzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjUKCQkJczcuNSwzLjM2NCw3LjUsNy41QzMwLDg3LjEzLDI2LjYzNiw5MC40OTQsMjIuNSw5MC40OTR6IE0xODguNSw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTIxNi43OWgtMTV2MjIyLjk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFoNDYuMjVWNDQyLjY2NHoiLz4KICAgICAgICA8cmVjdCB4PSIxNTcuMjUiIHk9IjEzNi45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjE1Ny4yNSIgeT0iMTExLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTU3LjI1IiB5PSI4Ni45OTQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9Ijk3LjI1IiB5PSIxMzAuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iNjYiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iMTA1Ljk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iNDM1Ljc1IiB5PSIxMTMuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI0MzUuNzUiIHk9IjEzOC45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjQzNS43NSIgeT0iODguOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjE1NS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjEwNS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iMTMwLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4OS41LDYwLjQ5NGMtMi42MjgsMC01LjE1MywwLjQ1My03LjUsMS4yODV2LTkuMjg1SDMwOC41djQwNy4wMTNoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NQoJCQljMi44OTktMS43NTUsNC44MTQtMi45MTUsOS4zMjUtMi45MTVjNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1CgkJCWM4LjY5OCwwLDEzLjM1NC0yLjgxOSwxNy4wOTQtNS4wODVjMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk1LDUuMDg1LDE3LjA5Myw1LjA4NXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1CgkJCWM0LjUxLDAsNi40MjUsMS4xNiw5LjMyMiwyLjkxNWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTNWMTA0LjIwOGMyLjM0NywwLjgzMiw0Ljg3MiwxLjI4NSw3LjUsMS4yODUKCQkJYzEyLjQwNiwwLDIyLjUtMTAuMDkzLDIyLjUtMjIuNUM1MTIsNzAuNTg1LDUwMS45MDYsNjAuNDk0LDQ4OS41LDYwLjQ5NHogTTQ2Nyw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTI1MC43OWgtMTV2MjU2Ljk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFINDY3VjQ0Mi42NjR6IE00ODkuNSw5MC40OTRjLTQuMTM2LDAtNy41LTMuMzY0LTcuNS03LjUKCQkJYzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjVzNy41LDMuMzY0LDcuNSw3LjVDNDk3LDg3LjEzLDQ5My42MzYsOTAuNDk0LDQ4OS41LDkwLjQ5NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Cfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDIgMTJjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTItNGMwIDEuMTAzLS44OTcgMi0yIDJzLTItLjg5Ny0yLTJjMC0uMTc4LjAzMS0uMzQ3LjA3NS0uNTExbDEuMjE4IDEuMjE4IDEuNDE0LTEuNDE0LTEuMjE4LTEuMjE4Yy4xNjQtLjA0NC4zMzMtLjA3NS41MTEtLjA3NSAxLjEwMyAwIDIgLjg5NyAyIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTQtMS43OTQtNC00LTR6bTAgNmMtMS4xMDMgMC0yLS44OTctMi0ycy44OTctMiAyLTJjLjE3OCAwIC4zNDcuMDMxLjUxMS4wNzVsLTEuMjE4IDEuMjE4IDEuNDE0IDEuNDE0IDEuMjE4LTEuMjE4Yy4wNDQuMTY0LjA3NS4zMzMuMDc1LjUxMSAwIDEuMTAzLS44OTcgMi0yIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUxIDEyaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTNoLTJjLTEuNjU0IDAtMyAxLjM0Ni0zIDNzMS4zNDYgMyAzIDN6bTAtNGgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxaC0yYy0uNTUxIDAtMS0uNDQ5LTEtMXMuNDQ5LTEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMyA2aC0yYy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTN6bTAgNGgtMmMtLjU1MSAwLTEtLjQ0OS0xLTFzLjQ0OS0xIDEtMWgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im02Mi45OTcgNThjMC0uMTYzLS4wMzctLjMyNi0uMTE3LS40NzRsLTIuODgtNS4zNDl2LTM4LjE3Ny0xMGMwLTEuNjU0LTEuMzQ2LTMtMy0zaC01MGMtMS42NTQgMC0zIDEuMzQ2LTMgM3YxMCAzOC4xNzdsLTIuODggNS4zNDljLS4wOC4xNDgtLjExNy4zMTEtLjExNy40NzRoLS4wMDN2MmMwIDEuNjU0IDEuMzQ2IDMgMyAzaDU2YzEuNjU0IDAgMy0xLjM0NiAzLTN2LTJ6bS02Ljk5Ny0xMy4yNTF2LTI5Ljc0OWgydjMzLjQ2M3ptLTQxLjkzMS0yLjc0OWMuMTg5IDEuNTAyLjc5MiAyLjg3NSAxLjY5NSA0aC0yLjc2NHYtNHptMzYuOTMxIDB2NGgtMi43NjVjLjkwNC0xLjEyNSAxLjUwNy0yLjQ5OCAxLjY5NS00em0tNS42OSA0aC0uMzF2LTIuMzgyYy40MDItLjQ2LjctMS4wMDkuODU4LTEuNjE4aDIuMDUyYy0uMjgyIDEuNjY2LTEuMjQ2IDMuMTAxLTIuNiA0em0tOC4zMS0xLjY5di0yLjMxaDEuMTQyYy40NDcgMS43MjEgMiAzIDMuODU4IDMgLjM0NyAwIC42NzgtLjA1OCAxLS4xNDJ2MS4xNDJoLTQuMzFjLS42Ny0uNDQ1LTEuMjQ1LTEuMDItMS42OS0xLjY5em0zLjI3OC00LjMxYy4zNDctLjU5NS45ODUtMSAxLjcyMi0xczEuMzc1LjQwNSAxLjcyMiAxem0yLjcyMiAydi43MjJjLS4yOTUuMTcyLS42MzQuMjc4LTEgLjI3OC0uNzM3IDAtMS4zNzUtLjQwNS0xLjcyMi0xem0yLjg1OC0yYy0uNDQ3LTEuNzIxLTItMy0zLjg1OC0zcy0zLjQxMSAxLjI3OS0zLjg1OCAzaC0yLjA1MmMuNDc4LTIuODMzIDIuOTQyLTUgNS45MS01czUuNDMxIDIuMTY3IDUuOTEgNXptLTExLjcyNS03LjA4NGMuNTEzLTIuNzkyIDIuOTU5LTQuOTE2IDUuODk3LTQuOTE2IDEuNjEgMCAzLjA2NS42MzEgNC4xNDMgMS42Ni0uOTczLS40MjMtMi4wNDYtLjY2LTMuMTczLS42Ni0yLjkxOCAwLTUuNDY5IDEuNTc2LTYuODY3IDMuOTE2em0uODY3IDQuMDg0YzAtMy4zMDkgMi42OTEtNiA2LTYgMi4zMzUgMCA0LjM1NyAxLjM0MyA1LjM0OCAzLjI5NC0xLjI1My0uODE1LTIuNzQ1LTEuMjk0LTQuMzQ4LTEuMjk0LTMuMDA0IDAtNS42MjQgMS42NjctNi45OTIgNC4xMjItLjAwMS0uMDQxLS4wMDgtLjA4MS0uMDA4LS4xMjJ6bS0uOTMxIDVjLjEyOSAxLjAyNy40NDkgMS45OTYuOTMxIDIuODY0djEuMTM2aC02di0xLjEzNmMuNDgyLS44NjkuODAyLTEuODM3LjkzMS0yLjg2NHptLTEzLjA2OSA0di0xLjE0MmMuMzIyLjA4NC42NTMuMTQyIDEgLjE0MiAxLjg1OCAwIDMuNDExLTEuMjc5IDMuODU4LTNoMS4xNDJ2Mi4zMWMtLjQ0NS42Ny0xLjAyIDEuMjQ1LTEuNjkgMS42OXptMC00aDIuNzIyYy0uMzQ3LjU5NS0uOTg1IDEtMS43MjIgMS0uMzY2IDAtLjcwNS0uMTA2LTEtLjI3OHptLS43MjItMmMuMzQ3LS41OTUuOTg1LTEgMS43MjItMXMxLjM3NS40MDUgMS43MjIgMXptOC43MTQtMi44NzhjLTEuMzY4LTIuNDU1LTMuOTg4LTQuMTIyLTYuOTkyLTQuMTIyLTEuNjAzIDAtMy4wOTUuNDc5LTQuMzQ4IDEuMjk0Ljk5MS0xLjk1MSAzLjAxMy0zLjI5NCA1LjM0OC0zLjI5NCAzLjMwOSAwIDYgMi42OTEgNiA2IDAgLjA0MS0uMDA3LjA4MS0uMDA4LjEyMnptLTUuOTkyLTguMTIyYy0xLjEwNiAwLTIuMTYuMjI2LTMuMTE5LjYzNCAxLjA3Ni0xLjAxNSAyLjUyMi0xLjYzNCA0LjExOS0xLjYzNCAyLjk2MSAwIDUuNDIyIDIuMTU4IDUuOTA3IDQuOTgzLTEuMzg4LTIuMzc4LTMuOTYxLTMuOTgzLTYuOTA3LTMuOTgzem0tMSA2YzIuOTY3IDAgNS40MzEgMi4xNjcgNS45MSA1aC0yLjA1MmMtLjQ0Ny0xLjcyMS0yLTMtMy44NTgtM3MtMy40MTEgMS4yNzktMy44NTggM2gtMi4wNTJjLjQ3OS0yLjgzMyAyLjk0My01IDUuOTEtNXptLTMuODU4IDdjLjE1OC42MDkuNDU2IDEuMTU3Ljg1OCAxLjYxOHYyLjM4MmgtLjMxYy0xLjM1NC0uODk5LTIuMzE5LTIuMzM0LTIuNi00em0tNS4xNDIgNmg1LjEzNmMuMjc4LjE1NC41NjcuMjkuODY0LjQxMXYzLjU4OWgtNnptOCAuOTMxYy4zMjguMDQxLjY2MS4wNjkgMSAuMDY5IDEuNDAxIDAgMi43MTgtLjM2NCAzLjg2NC0xaDEuMTM2djRoLTZ6bTgtLjkzMWg2djRoLTZ6bTggMGgxLjEzNmMxLjE0Ny42MzYgMi40NjMgMSAzLjg2NCAxIC4zMzkgMCAuNjcyLS4wMjggMS0uMDY5djMuMDY5aC02em04IC40MTFjLjI5Ny0uMTIxLjU4Ni0uMjU3Ljg2NC0uNDExaDUuMTM2djRoLTZ6bTcuOTY4LTcuNTcyLjAxOS0uMDAzLTIuNzc0LTE2LjY0M2MtLjIxMi0xLjI3MS0xLjMwMS0yLjE5My0yLjU4OS0yLjE5My0xLjQ0NyAwLTIuNjI0IDEuMTc3LTIuNjI0IDIuNjI0djEuMzc2aDJ2LTEuMzc2YzAtLjM0NC4yOC0uNjI0LjYyNC0uNjI0LjMwNyAwIC41NjUuMjE5LjYxNi41MjFsMi41OCAxNS40NzloLS44ODljLS4xMjktMS4wMy0uNDUxLTItLjkzNC0yLjg3IDAtLjA0NC4wMDMtLjA4Ni4wMDMtLjEzIDAtMS40Mi0uMzc2LTIuNzUxLTEuMDI3LTMuOTA4LS40NTctNC4wNTQtMy44NDEtNy4wOTItNy45NDMtNy4wOTItNC40MTEgMC04IDMuNTg5LTggOCAwIDEuMzczLjM2NCAyLjcxMyAxLjAzMSAzLjkwNC4wODIuNzIxLjI2MSAxLjQyNS41MzIgMi4wOTZoLTMuMTg3Yy4yNjMtLjY1LjQ0Mi0xLjMzLjUyNy0yLjAyOC42OTItMS4yMDggMS4wNjctMi41NzQgMS4wNjctMy45NzIgMC00LjQxMS0zLjU4OS04LTgtOC00LjA4IDAtNy40NDggMy4wMDYtNy45MzQgNy4wMjctLjY3NCAxLjE3Mi0xLjA2NiAyLjUyNi0xLjA2NiAzLjk3MyAwIC4wNDQuMDAzLjA4Ni4wMDQuMTMtLjQ4NC44Ny0uODA1IDEuODQtLjkzNSAyLjg3aC0uODg5bDIuNTgtMTUuNDc5Yy4wNTEtLjMwMi4zMDktLjUyMS42MTYtLjUyMS4zNDQgMCAuNjI0LjI4LjYyNC42MjR2MS4zNzZoMnYtMS4zNzZjMC0xLjQ0Ny0xLjE3Ny0yLjYyNC0yLjYyNC0yLjYyNC0xLjI4OCAwLTIuMzc3LjkyMi0yLjU4OCAyLjE5MmwtMi43NzQgMTYuNjQ0LjAxOS4wMDNjLS4wMS4wNTQtLjAzMy4xMDQtLjAzMy4xNjF2M2gtMXYtMjNoNDR2MjNoLTF2LTNjMC0uMDU3LS4wMjMtLjEwNy0uMDMyLS4xNjF6bTEuMDMyLTI1LjgzOXY0aC00NHYtNHptLTIwLTJoLTR2LTRjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptLTI4LTljMC0uNTUxLjQ0OS0xIDEtMWg1MGMuNTUxIDAgMSAuNDQ5IDEgMXY5aC0yMnYtNGMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY0aC0yMnptMCAxMWgydjI5Ljc0OWwtMiAzLjcxNHptMy41OTcgMzFoMS40MDN2N2MwIC41NTMuNDQ4IDEgMSAxaDQwYy41NTIgMCAxLS40NDcgMS0xdi03aDEuNDAzbDUuOTIzIDExaC01Ni42NTJ6bTUwLjQwMyAxNWgtNTZjLS41NTEgMC0xLS40NDgtMS0xdi0xaDU4djFjMCAuNTUyLS40NDkgMS0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDE2aDR2MmgtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTZoNHYyaC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMSA5aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Ife="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMTMuMjA2IDEwNi4yNjVoLTEzLjYyM3YtODYuMjhhMS43NDkgMS43NDkgMCAwIDAgLTEuNTU0LTEuNzM4bC00Ni01LjE5MmExLjc1IDEuNzUgMCAwIDAgLTEuOTQ2IDEuNzM5djMuNDQxaC0xOS45MTZhMS43NSAxLjc1IDAgMCAwIC0xLjc1IDEuNzV2ODYuMjhoLTEzLjYyM2ExLjc1IDEuNzUgMCAxIDAgMCAzLjVoMzUuMjg5djMuNDQxYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzUgMS42MSAxLjYxIDAgMCAwIC4yLS4wMTFsNDUuOS01LjE4aDE1LjI3NmExLjc1IDEuNzUgMCAwIDAgMC0zLjV6bS04MS4yODktODQuNTNoMTguMTY2djQuNWgtMTEuOTE3YTEuNzUgMS43NSAwIDAgMCAtMS43NSAxLjc1djc4LjI4aC00LjV6bTggODQuNTN2LTc2LjUzaDEwLjE2NnY3Ni41M3ptMTMuNjY2LTg5LjUxMyA0Mi41IDQuOHY4NC45bC00Mi41IDQuOHoiLz4KICAgICAgICA8cGF0aCBkPSJtNjEuMTI1IDU4Ljc5MmE1LjIwOCA1LjIwOCAwIDEgMCA1LjIwOCA1LjIwOCA1LjIxNCA1LjIxNCAwIDAgMCAtNS4yMDgtNS4yMDh6bTAgNi45MTZhMS43MDggMS43MDggMCAxIDEgMS43MDgtMS43MDggMS43MSAxLjcxIDAgMCAxIC0xLjcwOCAxLjcwOHoiLz4KICAgIDwvZz4KPC9zdmc+",pfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQwMS4wNjcsMEgxMTAuOTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2NDk0LjkzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDI5MC4xMzMKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1Y4LjUzM0M0MDkuNiwzLjgxNCw0MDUuNzc3LDAsNDAxLjA2NywweiBNMzkyLjUzMyw0OTQuOTMzSDExOS40NjdWMTcuMDY3aDI3My4wNjdWNDk0LjkzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzY2LjkzMywzNC4xMzNIMTQ1LjA2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjQ2MC44YzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjIxLjg2NwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzdi00NjAuOEMzNzUuNDY3LDM3Ljk0OCwzNzEuNjQ0LDM0LjEzMywzNjYuOTMzLDM0LjEzM3ogTTM1OC40LDQ5NC45MzNIMTUzLjZWNTEuMmgyMDQuOFY0OTQuOTMzegoJCQkiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNDcuMDUzLDAtODUuMzMzLDM4LjI4MS04NS4zMzMsODUuMzMzdjguNTMzYzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTUzLjYKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxNTMuNkMzNDEuMzMzLDEwNi41NDcsMzAzLjA1Myw2OC4yNjcsMjU2LDY4LjI2N3ogTTE4Ny43MzMsMTUzLjYKCQkJYzAtMzcuNjQxLDMwLjYyNi02OC4yNjcsNjguMjY3LTY4LjI2N2MzNy42NDEsMCw2OC4yNjcsMzAuNjI2LDY4LjI2Nyw2OC4yNjdIMTg3LjczM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywxODcuNzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjE5Ni4yNjdDMjQ3LjQ2NywxOTEuNTQ4LDI0My42NDQsMTg3LjczMywyMzguOTMzLDE4Ny43MzN6IE0yMzAuNCwzMDcuMmgtNDIuNjY3VjIwNC44SDIzMC40CgkJCVYzMDcuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMTg3LjczM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMTk2LjI2N0MzNDEuMzMzLDE5MS41NDgsMzM3LjUxLDE4Ny43MzMsMzMyLjgsMTg3LjczM3ogTTMyNC4yNjcsMzA3LjJIMjgxLjZWMjA0LjhoNDIuNjY3VjMwNy4yCgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNDEuMzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjM0OS44NjdDMjQ3LjQ2NywzNDUuMTQ4LDI0My42NDQsMzQxLjMzMywyMzguOTMzLDM0MS4zMzN6IE0yMzAuNCw0NjAuOGgtNDIuNjY3VjM1OC40SDIzMC40CgkJCVY0NjAuOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMzQxLjMzM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMzQ5Ljg2N0MzNDEuMzMzLDM0NS4xNDgsMzM3LjUxLDM0MS4zMzMsMzMyLjgsMzQxLjMzM3ogTTMyNC4yNjcsNDYwLjhIMjgxLjZWMzU4LjRoNDIuNjY3VjQ2MC44CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjg1LjMzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODE0LDguNTMzLTguNTMzVjc2LjgKCQkJQzI2NC41MzMsNzIuMDgxLDI2MC43MSw2OC4yNjcsMjU2LDY4LjI2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzIwLjQzNSw5Ny42OThjLTMuMzI4LTMuMzM2LTguNzMtMy4zMzYtMTIuMDY2LDBMMjQ5Ljk2NywxNTYuMWMtMy4zMzcsMy4zMzctMy4zMzcsOC43MywwLDEyLjA2NgoJCQljMS42NjQsMS42NjQsMy44NDksMi41LDYuMDMzLDIuNWMyLjE4NSwwLDQuMzY5LTAuODM2LDYuMDMzLTIuNWw1OC40MDItNTguNDAyQzMyMy43NzIsMTA2LjQyOCwzMjMuNzcyLDEwMS4wMzUsMzIwLjQzNSw5Ny42OTh6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTI2Mi4wMzMsMTU2LjFMMjAzLjYzMSw5Ny42OWMtMy4zMjgtMy4zMzctOC43My0zLjMzNy0xMi4wNjYsMGMtMy4zMzcsMy4zMzYtMy4zMzcsOC43MywwLDEyLjA2Nmw1OC40MDIsNTguNDExCgkJCWMxLjY2NCwxLjY2NCwzLjg0OSwyLjUsNi4wMzMsMi41YzIuMTg1LDAsNC4zNjktMC44MzYsNi4wMzMtMi41QzI2NS4zNywxNjQuODMsMjY1LjM3LDE1OS40MzcsMjYyLjAzMywxNTYuMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNTkuNzMzLDQ5NC45MzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM0MwLDUwOC4xODYsMy44MjMsNTEyLDguNTMzLDUxMmg1MS4yCgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNjguMjY3LDQ5OC43NDgsNjQuNDQ0LDQ5NC45MzMsNTkuNzMzLDQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsNDk0LjkzM2gtMTAyLjRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDEwMi40CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNTEyLDQ5OC43NDgsNTA4LjE3Nyw0OTQuOTMzLDUwMy40NjcsNDk0LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Afe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjBhOTYgOTYgMCAxIDAgOTYgOTYgOTYuMTA4IDk2LjEwOCAwIDAgMCAtOTYtOTZ6bTAgMTc2YTgwIDgwIDAgMSAxIDgwLTgwIDgwLjA5MSA4MC4wOTEgMCAwIDEgLTgwIDgweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYgMTI4YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjguMTQ1IDEyOC4xNDUgMCAwIDAgLTEyOC0xMjh6bTAgMjQwYTExMiAxMTIgMCAxIDEgMTEyLTExMiAxMTIuMTI3IDExMi4xMjcgMCAwIDEgLTExMiAxMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMiA0ODh2LTQ2NGE4IDggMCAwIDAgLTgtOGgtMzM2YTggOCAwIDAgMCAtOCA4djQ2NGE4IDggMCAwIDAgOCA4aDMzNmE4IDggMCAwIDAgOC04em0tMzM2LTM3NmgzMjB2MzA0aC0zMjB6bTk2LTgwaDE0NHY0MGE4IDggMCAwIDAgOCA4aDcydjE2aC0yMjR6bTIyNCAzMmgtNjR2LTMyaDY0em0tMjQwLTMydjY0aC04MHYtNjR6bS04MCA0NDh2LTQ4aDMyMHY0OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDQwYTI0IDI0IDAgMSAwIDI0IDI0IDI0LjAyNyAyNC4wMjcgMCAwIDAgLTI0LTI0em0wIDMyYTggOCAwIDEgMSA4LTggOC4wMDkgOC4wMDkgMCAwIDEgLTggOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTEyIDU2aDQ4djE2aC00OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDQwaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDcyaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjcyIDIwMGE4IDggMCAwIDAgLTE2IDBjMCA2LjM3My0yLjQxNyA5LjE5MS02LjA3NCAxMy40NTgtNC40MjYgNS4xNTktOS45MjYgMTEuNTgtOS45MjYgMjMuODcyczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTMtNi4wNzQgMTMuNDYxYy00LjQyNiA1LjE1OS05LjkyNiAxMS41ODEtOS45MjYgMjMuODc0YTggOCAwIDAgMCAxNiAwYzAtNi4zNzUgMi40MTctOS4xOTQgNi4wNzQtMTMuNDYyIDQuNDIzLTUuMTU5IDkuOTI2LTExLjU4IDkuOTI2LTIzLjg3M3MtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXMyLjQxNy05LjE5MSA2LjA3NC0xMy40NThjNC40MjYtNS4xNTkgOS45MjYtMTEuNTggOS45MjYtMjMuODcyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTYgMjM3LjMzYzAtNi4zNzMgMi40MTctOS4xOTIgNi4wNzUtMTMuNDYuODEyLS45NDcgMS42MjMtMS45IDIuNDA3LTIuODc4YTggOCAwIDAgMCAtMTIuNS05Ljk4NGMtLjY2OC44MzYtMS4zNjEgMS42NDEtMi4wNTMgMi40NDktNC40MjkgNS4xNTktOS45MjkgMTEuNTgxLTkuOTI5IDIzLjg3M3M1LjUgMTguNzE0IDkuOTI2IDIzLjg3M2MzLjY1NyA0LjI2OCA2LjA3NCA3LjA4NyA2LjA3NCAxMy40NjJzLTIuNDE3IDkuMTk0LTYuMDc1IDEzLjQ2MmMtLjgxMy45NDktMS42MjUgMS45LTIuNDA5IDIuODgxYTggOCAwIDAgMCAxMi41IDkuOTg0Yy42NjgtLjgzNyAxLjM2Mi0xLjY0NCAyLjA1NC0yLjQ1MiA0LjQzLTUuMTYgOS45My0xMS41ODIgOS45My0yMy44NzVzLTUuNS0xOC43MTUtOS45MjYtMjMuODc0Yy0zLjY1Ny00LjI2OC02LjA3NC03LjA5MS02LjA3NC0xMy40NjF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxNiAyMzcuMzNjMC02LjM3MyAyLjQxNy05LjE5MiA2LjA3NS0xMy40Ni44MTItLjk0NyAxLjYyMy0xLjkgMi40MDctMi44NzhhOCA4IDAgMCAwIC0xMi41LTkuOTg0Yy0uNjY4LjgzNi0xLjM2MSAxLjY0MS0yLjA1MyAyLjQ0OS00LjQyOSA1LjE1OS05LjkyOSAxMS41ODEtOS45MjkgMjMuODczczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTQtNi4wNzUgMTMuNDYyYy0uODEzLjk0OS0xLjYyNSAxLjktMi40MDkgMi44ODFhOCA4IDAgMCAwIDEyLjUgOS45ODRjLjY2OC0uODM3IDEuMzYyLTEuNjQ0IDIuMDU0LTIuNDUyIDQuNDMtNS4xNiA5LjkzLTExLjU4MiA5LjkzLTIzLjg3NXMtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXoiLz4KICAgIDwvZz4KPC9zdmc+",mfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3Ni4wNjUgNDc2LjA2NSI+CjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+Cgk8cGF0aCBkPSJNNDMyLjU1OCwxNzIuMDJDNDE5LjMwMyw2NC41ODcsMzIxLjQ2Ni0xMS43NiwyMTQuMDMzLDEuNDk1UzMwLjI1MywxMTIuNTg3LDQzLjUwOCwyMjAuMDIKCQljMTEuMDA4LDg5LjIyMiw4MS4zMDMsMTU5LjUxNywxNzAuNTI1LDE3MC41MjV2MzcuNTJoLTU2Yy0xMy4yNTUsMC0yNCwxMC43NDUtMjQsMjR2MjRoMjA4di0yNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTU2CgkJdi0zNy41MkMzNjkuNDY2LDM3Ny4yOSw0NDUuODEzLDI3OS40NTMsNDMyLjU1OCwxNzIuMDJ6IE0zMTguMDMzLDQ0NC4wNjVjNC40MTgsMCw4LDMuNTgyLDgsOHY4aC0xNzZ2LThjMC00LjQxOCwzLjU4Mi04LDgtOAoJCUgzMTguMDMzeiBNMjMwLjAzMyw0MjguMDY1di0zMmgxNnYzMkgyMzAuMDMzeiBNMjM4LjAzMywzNzYuMDY1Yy05OS40MTEsMC0xODAtODAuNTg5LTE4MC0xODAKCQljMC4xMTUtOTkuMzY0LDgwLjYzNi0xNzkuODg1LDE4MC0xODBjOTkuNDExLDAsMTgwLDgwLjU4OSwxODAsMTgwUzMzNy40NDQsMzc2LjA2NSwyMzguMDMzLDM3Ni4wNjV6Ii8+Cgk8cGF0aCBkPSJNNDA2LjAzMywyMTIuMDY1di0xNmMwLTQuNDE4LTMuNTgyLTgtOC04aC05My41MzZjMzkuOC0yNy44MzIsNDkuNTAyLTgyLjY1OCwyMS42Ny0xMjIuNDU4CgkJYy0xNi40NjctMjMuNTQ4LTQzLjQtMzcuNTY1LTcyLjEzNC0zNy41NDJoLTE2Yy00LjQxOCwwLTgsMy41ODItOCw4djkzLjUzNmMtMjcuODMyLTM5LjgtODIuNjU4LTQ5LjUwMi0xMjIuNDU4LTIxLjY3CgkJYy0yMy41NDgsMTYuNDY3LTM3LjU2NSw0My40LTM3LjU0Miw3Mi4xMzR2MTZjMCw0LjQxOCwzLjU4Miw4LDgsOGg5My41MzZjLTIzLjQ2NSwxNi40NzgtMzcuNDYzLDQzLjMyOC0zNy41MzYsNzIKCQljMC4wNTcsNDguNTc3LDM5LjQyMyw4Ny45NDMsODgsODhoMTZjNC40MTgsMCw4LTMuNTgyLDgtOHYtOTMuNTM2YzI3LjgzMiwzOS44LDgyLjY1OCw0OS41MDIsMTIyLjQ1OCwyMS42NwoJCUMzOTIuMDM4LDI2Ny43MzMsNDA2LjA1NiwyNDAuOCw0MDYuMDMzLDIxMi4wNjV6IE0yNDYuMDMzLDQ0LjA2NWg4YzM5Ljc2NCwwLjA1NSw3MS45NTUsMzIuMzM2LDcxLjksNzIuMQoJCWMtMC4wNDMsMzEuMTctMjAuMTM4LDU4Ljc3Mi00OS43ODgsNjguMzg4Yy00LjIwMi0xNC4wNTItMTUuNzU4LTI0LjY3Ny0zMC4xMTItMjcuNjg4VjQ0LjA2NXogTTg2LjAzMywxODguMDY1di04CgkJYzAuMDczLTM5Ljc2NCwzMi4zNjgtNzEuOTQsNzIuMTMzLTcxLjg2N2MzMS4xNDgsMC4wNTcsNTguNzI3LDIwLjEzOCw2OC4zNDcsNDkuNzYzYy0xNC4wNDcsNC4yMDMtMjQuNjY4LDE1Ljc1NS0yNy42OCwzMC4xMDQKCQlIODYuMDMzeiBNMjMwLjAzMywzNDguMDY1aC04Yy0zOS43NjQtMC4wNTUtNzEuOTU1LTMyLjMzNi03MS45LTcyLjFjMC4wNDMtMzEuMTcsMjAuMTM4LTU4Ljc3Miw0OS43ODgtNjguMzg4CgkJYzQuMjAyLDE0LjA1MiwxNS43NTgsMjQuNjc3LDMwLjExMiwyNy42ODhWMzQ4LjA2NXogTTIzOC4wMzMsMjIwLjA2NWMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNAoJCXMyNCwxMC43NDUsMjQsMjRTMjUxLjI4NywyMjAuMDY1LDIzOC4wMzMsMjIwLjA2NXogTTMxNy45LDI4My45MzJjLTMxLjE0OC0wLjA1Ny01OC43MjctMjAuMTM4LTY4LjM0Ny00OS43NjMKCQljMTQuMDQ3LTQuMjAzLDI0LjY2OC0xNS43NTUsMjcuNjgtMzAuMTA0aDExMi44djhDMzg5Ljk1OSwyNTEuODMsMzU3LjY2NCwyODQuMDA2LDMxNy45LDI4My45MzJ6Ii8+CjwvZz4KPC9zdmc+Cg==",Ofe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk5LDEyNi4wMDFoLTAuMDI3YzYuMjkyLTguMzYyLDEwLjAyNy0xOC43NTIsMTAuMDI3LTMwYzAtMjcuNTctMjIuNDMtNTAuMDAxLTUwLTUwLjAwMQoJCXMtNTAuMDAxLDIyLjQzLTUwLjAwMSw1MC4wMDFjMCwxMS4yNDgsMy43MzYsMjEuNjM4LDEwLjAyNywzMGgtMC4wMjdjLTUuNTIyLDAtMTAsNC40NzctMTAsMTB2MzUuNTQ1CgkJYy0xMS4zMjgtNy4yMzMtMjMuMTI4LTEzLjY1OC0zNS4zMzQtMTkuMjQxdi0xNi4zMDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAsNC40NzctMTAsMTB2OC4wMzcKCQljLTMuMzY5LTEuMjQ3LTYuNzY0LTIuNDM4LTEwLjE4Ni0zLjU2MmMtOC4yOTEtMi43MjMtMTYuNjgzLTUuMDUyLTI1LjE0Ni03LjAxMXYtMjAuODMzYzAtNS41MjMtNC40NzgtMTAtMTAtMTAKCQljLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTYuOTMyYy0xMS42OC0xLjg0OS0yMy40NzQtMi45NzQtMzUuMzMyLTMuMzgxVjk2LjAwMWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJdjMwLjE4M2MtMTEuODU5LDAuNDA3LTIzLjY1MywxLjUzMi0zNS4zMzMsMy4zODF2LTE2LjkzMmMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjIwLjgzMwoJCWMtOC40NjIsMS45NTktMTYuODUyLDQuMjg3LTI1LjE0Miw3LjAwOWMtMy40MjQsMS4xMjQtNi44MTksMi4zMTYtMTAuMTkxLDMuNTYzdi04LjAzN2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwCgkJYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjE2LjMwNGMtMTIuMjA1LDUuNTgzLTI0LjAwNCwxMi4wMDctMzUuMzM0LDE5LjI0di0zNS41NDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMC4wMjcKCQljNi4yOTMtOC4zNjIsMTAuMDI3LTE4Ljc1MiwxMC4wMjctMzBjMC0yNy41Ny0yMi40My01MC01MC01MHMtNTAsMjIuNDMtNTAsNTBjMCwxMS4yNDgsMy43MzQsMjEuNjM4LDEwLjAyNywzMEgxMAoJCWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYzMTkuOTk5YzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDBoNDBoMzEuMDMzYzUuNTIyLDAsMTAtNC40NzcsMTAtMTBjMC01LjUyMi00LjQ3OC0xMC0xMC0xMEgxMDAKCQl2LTIwLjAwMWgzMTEuOTk4djIwLjAwMWgtMjEuMDMzYy01LjUyMywwLTEwLDQuNDc4LTEwLDEwYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoMzEuMDMzaDQwLjAwMWg0MGM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwCgkJVjEzNi4wMDFDNTExLjk5OSwxMzAuNDc3LDUwNy41MjEsMTI2LjAwMSw1MDEuOTk5LDEyNi4wMDF6IE04MCw0NDUuOTk5SDUwSDIwVjE0Ni4wMDFoMjB2NDEuODk4YzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQlzMTAtNC40NzcsMTAtMTB2LTQxLjg5OGgyMFY0NDUuOTk5eiBNNTAsMTI2LjAwMWMtMTYuNTQzLDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1Ny0zMCwzMC0zMGMxNi41NDMsMCwzMCwxMy40NTgsMzAsMzAKCQlTNjYuNTQzLDEyNi4wMDEsNTAsMTI2LjAwMXogTTEzNS4zMzQsNDA1Ljk5OEgxMDBWMTk1LjYyOWMxMS4zMTgtOC4wMiwyMy4xMjYtMTUuMDk1LDM1LjMzNC0yMS4yMThWNDA1Ljk5OHogTTE5MC42NjcsNDA2CgkJaC0zNS4zMzNWMTY1LjM4NGMxMS41LTQuNjMsMjMuMjk4LTguNDQ5LDM1LjMzMy0xMS40MzdWNDA2eiBNMjQ2LDQwNmgtMzUuMzMzVjE0OS43ODdjMTEuNjE0LTEuOTU4LDIzLjQwOS0zLjE2OCwzNS4zMzMtMy41OTkKCQlWNDA2eiBNMzAxLjMzMiw0MDUuOTk4SDI2NnYtMjU5LjgxYzExLjkyNCwwLjQzMSwyMy43MTcsMS42NDEsMzUuMzMyLDMuNTk5VjQwNS45OTh6IE0zNTYuNjY0LDQwNS45OTloLTM1LjMzMlYxNTMuOTQ4CgkJYzEyLjAzNSwyLjk4OCwyMy44MzIsNi44MDcsMzUuMzMyLDExLjQzOFY0MDUuOTk5eiBNNDExLjk5OCw0MDUuOTk4aC0zNS4zMzRWMTc0LjQxMmMxMi4yMDksNi4xMjMsMjQuMDE3LDEzLjIsMzUuMzM0LDIxLjIyCgkJVjQwNS45OTh6IE00OTEuOTk5LDQ0NS45OTloLTMwaC0zMC4wMDFWMTQ2LjAwMWgyMC4wMDF2NDEuODk4YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtNDEuODk4aDIwCgkJVjQ0NS45OTl6IE00NjEuOTk5LDEyNi4wMDFjLTE2LjU0MiwwLTMwLjAwMS0xMy40NTgtMzAuMDAxLTMwYzAtMTYuNTQzLDEzLjQ1OS0zMC4wMDEsMzAuMDAxLTMwLjAwMQoJCWMxNi41NDIsMCwzMCwxMy40NTgsMzAsMzAuMDAxQzQ5MS45OTksMTEyLjU0Miw0NzguNTQxLDEyNi4wMDEsNDYxLjk5OSwxMjYuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTAsNDQ1Ljk5OWgtMC4yMzZjLTUuNTIzLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMEgxNTBjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCUMxNjAsNDUwLjQ3NywxNTUuNTIzLDQ0NS45OTksMTUwLDQ0NS45OTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Mi4yMzQsNDQ1Ljk5OWgtMC4yMzdjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3OCwxMCwxMCwxMGgwLjIzN2M1LjUyMywwLDEwLTQuNDc3LDEwLTEwCgkJQzM3Mi4yMzQsNDUwLjQ3NywzNjcuNzU4LDQ0NS45OTksMzYyLjIzNCw0NDUuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MCwyMDYuNjMxYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzcsMTAsMTAsMTBzMTAtNC40NzcsMTAtMTB2LTAuMjM1CgkJQzYwLDIxMS4xMDgsNTUuNTIzLDIwNi42MzEsNTAsMjA2LjYzMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjk5OSwyMDYuNjMxYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtMC4yMzUKCQlDNDcxLjk5OSwyMTEuMTA4LDQ2Ny41MjEsMjA2LjYzMSw0NjEuOTk5LDIwNi42MzF6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Efe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuMDA1LDEwOC4wMDNjLTEzLjI1NSwwLTI0LDEwLjc0NS0yNCwyNGMwLDQuNDE4LDMuNTgyLDgsOCw4czgtMy41ODIsOC04czMuNTgyLTgsOC04czgtMy41ODIsOC04CgkJCVMxMDguNDIzLDEwOC4wMDMsMTA0LjAwNSwxMDguMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zODUuMzU3LDc2LjExNWwtMjgwLTQ4Yy0wLjQ0Ny0wLjA3My0wLjg5OS0wLjExMS0xLjM1Mi0wLjExMkM0Ni42MTIsMjcuOTU2LDAuMDQ3LDc0LjQ0NCwwLDEzMS44MzcKCQkJYy0wLjAyNiwzMS4wNTksMTMuODQzLDYwLjUwMSwzNy44MDUsODAuMjYxbDU4LjQ0LDIzMy44NDhjMC44OTIsMy41NTksNC4wOTEsNi4wNTYsNy43Niw2LjA1Nmg2NAoJCQljNC40MTgsMC4wMDgsOC4wMDctMy41NjYsOC4wMTUtNy45ODVjMC0wLjE3MS0wLjAwNS0wLjM0MS0wLjAxNS0wLjUxMWwtMTMuNi0yMTcuNGwyMjIuOTItMzguMjE2CgkJCWMzLjg1NC0wLjY0NSw2LjY3OS0zLjk4LDYuNjgtNy44ODh2LTk2QzM5Mi4wMDcsODAuMTA1LDM4OS4xOTksNzYuNzczLDM4NS4zNTcsNzYuMTE1eiBNMTEwLjI1Myw0MzYuMDAzTDU3LjYwNSwyMjUuMTcxCgkJCWMwLjUwNCwwLjI0OCwxLjA0LDAuNDE2LDEuNTQ0LDAuNjY0YzIuNTc2LDEuMjMyLDUuMTg5LDIuMzUyLDcuODQsMy4zNmMwLjc0NCwwLjI4LDEuNDY0LDAuNiwyLjIwOCwwLjg2NAoJCQljMy4zMTksMS4xNzQsNi42OTcsMi4xNzUsMTAuMTIsM2MwLjgsMC4xOTIsMS42LDAuMzI4LDIuNCwwLjUwNGMyLjc2OCwwLjU5Miw1LjU2NSwxLjA3Nyw4LjM5MiwxLjQ1NgoJCQljMS4wMDgsMC4xMjgsMi4wMTYsMC4yNjQsMy4wMjQsMC4zNjhjMy42MTEsMC4zOSw3LjI0LDAuNTk2LDEwLjg3MiwwLjYxNmMwLjQ1My0wLjAwMSwwLjkwNS0wLjAzOSwxLjM1Mi0wLjExMmw0MS4yMTYtNy4wODgKCQkJbDEyLjkyLDIwNy4ySDExMC4yNTN6IE0zNDQuMDA1LDE3OC43MzlsLTIzOC4wODgsNDAuOGwtMi41NzYsMC40NjRjLTQ4LjM2Ny0wLjMwNC04Ny4zOTktMzkuNjMyLTg3LjMzNi04OAoJCQljMC4wNTUtNDguMzIsMzkuMDE4LTg3LjU3OSw4Ny4zMzYtODhsMjQwLjY2NCw0MS4yNjRWMTc4LjczOXogTTM3Ni4wMDUsMTczLjI1OWwtMTYsMi43NDR2LTg4bDE2LDIuNzQ0VjE3My4yNTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNC4wMDUsNzYuMDAzYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMxNjAuMDA1LDEwMS4wNzUsMTM0LjkzMyw3Ni4wMDMsMTA0LjAwNSw3Ni4wMDN6IE0xMDQuMDA1LDE3Mi4wMDNjLTIyLjA5MSwwLTQwLTE3LjkwOS00MC00MGMwLjAyNi0yMi4wOCwxNy45Mi0zOS45NzQsNDAtNDAKCQkJYzIyLjA5MSwwLDQwLDE3LjkwOSw0MCw0MFMxMjYuMDk3LDE3Mi4wMDMsMTA0LjAwNSwxNzIuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDEuOTMzLDQxMS41MjNsLTkuNjY0LTE1NS4wMjRjLTAuMjc2LTQuNDE4LTQuMDgyLTcuNzc2LTguNS03LjVjLTQuNDE4LDAuMjc2LTcuNzc2LDQuMDgyLTcuNSw4LjVsOS42NjQsMTU1CgkJCWMwLjI2Myw0LjIyNywzLjc3Myw3LjUxNiw4LjAwOCw3LjUwNGMwLjE2OCwwLDAuMzM2LDAsMC41MDQsMEMxMzguODU0LDQxOS43MjgsMTQyLjIwNyw0MTUuOTMyLDE0MS45MzMsNDExLjUyM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDcyLjAwNSwxMjQuMDAzaC00OGMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGg0OGM0LjQxOCwwLDgtMy41ODIsOC04UzQ3Ni40MjMsMTI0LjAwMyw0NzIuMDA1LDEyNC4wMDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ3Mi4wMDUsMTU2LjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDE1Ni4wMDMsNDcyLjAwNSwxNTYuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzIuMDA1LDkyLjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDkyLjAwMyw0NzIuMDA1LDkyLjAwM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",ffe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OC40NTcsNzcuMjI3YTguMDYzLDguMDYzLDAsMCwwLTEwLjQsMTIuMzI1djYuOTI3YTUuMjczLDUuMjczLDAsMCwwLDEwLjU0NSwwVjg5LjU1M2E4LjA2Myw4LjA2MywwLDAsMC0uMTQ2LTEyLjMyNlpNNDUuODc0LDg3LjI0YTEuNzUsMS43NSwwLDAsMC0uNzcxLDEuNDUxdjcuNzg3YTEuNzczLDEuNzczLDAsMCwxLTMuNTQ1LDBWODguNjkxYTEuNzQ3LDEuNzQ3LDAsMCwwLS43NzMtMS40NTFBNC41NjYsNC41NjYsMCwwLDEsNDIuNCw3OC45NzhhNC44NzYsNC44NzYsMCwwLDEsLjk0LS4wOTIsNC41LDQuNSwwLDAsMSwyLjg5MywxLjA0MSw0LjU2Miw0LjU2MiwwLDAsMS0uMzU2LDcuMzEzWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDUuMjI4LDQ0LjY2Myw2NS41OCw0My4zNlYxOS41MTRhNS4zNyw1LjM3LDAsMCwwLTUuMzYzLTUuMzY0SDI2LjQ0M2E1LjM3LDUuMzcsMCwwLDAtNS4zNjMsNS4zNjR2ODguOTcyYTUuMzcsNS4zNywwLDAsMCw1LjM2Myw1LjM2NEg2MC4yMTdhNS4zNyw1LjM3LDAsMCwwLDUuMzYzLTUuMzY0VjU5LjhsMzkuNjQ4LTEuM2ExLjc1LDEuNzUsMCwwLDAsMS42OTItMS43NDlWNDYuNDEyQTEuNzUsMS43NSwwLDAsMCwxMDUuMjI4LDQ0LjY2M1pNNjIuMDgsMTA4LjQ4NmExLjg2NiwxLjg2NiwwLDAsMS0xLjg2MywxLjg2NEgyNi40NDNhMS44NjYsMS44NjYsMCwwLDEtMS44NjMtMS44NjRWMTkuNTE0YTEuODY2LDEuODY2LDAsMCwxLDEuODYzLTEuODY0SDYwLjIxN2ExLjg2NiwxLjg2NiwwLDAsMSwxLjg2MywxLjg2NFY0My4yNDVsLTYuMjY3LS4yMDZhMTUuMTI3LDE1LjEyNywwLDEsMCwwLDE3LjA4Nmw2LjI2NC0uMjA2Wk00NC4zOSw2MC41aDBMNTEsNjAuMjg0YTExLjYxMiwxMS42MTIsMCwxLDEsLjA0LTE3LjRsLTYuNjQ5LS4yMTloLS4wNThBOC45Miw4LjkyLDAsMSwwLDQ0LjM5LDYwLjVabTU5LjAzLTUuNDQyLTM5LjU4NywxLjNoLS4wMDhMNDQuMzM0LDU3YTUuNDIsNS40MiwwLDAsMS0uMDI3LTEwLjg0bDU5LjExMywxLjk0M1oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",xfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuMzQsMTE3LjMzNmMtNS45MDYsMC0xMC42ODgsNC43NzMtMTAuNjg4LDEwLjY2NHY4NS4zMzVINDY5LjM0di0yMS4zMzZjMC0yMy41MjMtMTkuMTU2LTQyLjY2My00Mi42ODgtNDIuNjYzCgkJYy0xMi43MTgsMC0yNC4xNTUsNS42MDktMzEuOTk5LDE0LjQ5MWMtNy44MTItOC44ODItMTkuMjUtMTQuNDkxLTMyLTE0LjQ5MWMtMTIuNzE4LDAtMjQuMTU1LDUuNjA5LTMxLjk5OSwxNC40OTEKCQljLTcuODEyLTguODgyLTE5LjI1LTE0LjQ5MS0zMi0xNC40OTFjLTEyLjcxOSwwLTI0LjE1Niw1LjYwOS0zMS45OTIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxCgkJYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxCgkJYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xOS44MzUsMC0zNi41NywxMy42MTYtNDEuMzIsMzEuOTk5SDMyYy01Ljg5MSwwLTEwLjY2NCw0Ljc3My0xMC42NjQsMTAuNjY0djIxLjMzNkgxMC42NjQKCQlDNC43NzMsMjEzLjMzNSwwLDIxOC4xMDgsMCwyMjMuOTk5czQuNzczLDEwLjY2NCwxMC42NjQsMTAuNjY0aDEwLjY3MnYyMS4zMzZjMCw1Ljg5MSw0Ljc3MywxMC42NjQsMTAuNjY0LDEwLjY2NGgzMnYyMDIuNjc4CgkJYzAsMjMuNTE2LDE5LjE0MSw0Mi42NTYsNDIuNjY0LDQyLjY1NmMxMi43NDIsMCwyNC4xOC01LjYyNSwzMi0xNC41YzcuODI4LDguODc1LDE5LjI3MywxNC41LDMyLDE0LjUKCQljMTIuNzQyLDAsMjQuMTgtNS42MjUsMzItMTQuNWM3LjgyOCw4Ljg3NSwxOS4yNzMsMTQuNSwzMiwxNC41YzEyLjc0MiwwLDI0LjE4LTUuNjI1LDMyLTE0LjUKCQljNy44MzYsOC44NzUsMTkuMjczLDE0LjUsMzEuOTkyLDE0LjVjMTIuNzUsMCwyNC4xODgtNS42MjUsMzItMTQuNWM3Ljg0NCw4Ljg3NSwxOS4yODEsMTQuNSwzMS45OTksMTQuNQoJCWMxMi43NSwwLDI0LjE4OC01LjYyNSwzMi0xNC41YzcuODQ0LDguODc1LDE5LjI4MSwxNC41LDMxLjk5OSwxNC41YzIzLjUzMSwwLDQyLjY4OC0xOS4xNDEsNDIuNjg4LTQyLjY1NlYyMzQuNjYzaDMyCgkJYzUuODc1LDAsMTAuNjU2LTQuNzczLDEwLjY1Ni0xMC42NjRWMTI4QzUxMS45OTYsMTIyLjEwOSw1MDcuMjE1LDExNy4zMzYsNTAxLjM0LDExNy4zMzZ6IE02NCwyNDUuMzM1SDQyLjY2NHYtNDIuNjcySDY0VjI0NS4zMzUKCQl6IE0xMjcuOTk5LDQ2OS4zNDFjMCwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMjU1Ljk5OXYtNjQKCQljMC0xMS43NTgsOS41Ny0yMS4zMzYsMjEuMzI4LTIxLjMzNmMxMS43NzMsMCwyMS4zMzYsOS41NzgsMjEuMzM2LDIxLjMzNlY0NjkuMzQxeiBNMTkxLjk5OSw0NjkuMzQxCgkJYy0wLjAwMSwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2CgkJYzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6IE0yNTUuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzM2LDIxLjMxMgoJCWMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2YzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6CgkJIE0zMTkuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzUsMC0yMS4zMTItOS41NjItMjEuMzEyLTIxLjMxMlYxOTEuOTk5CgkJYzAtMTEuNzU4LDkuNTYyLTIxLjMzNiwyMS4zMTItMjEuMzM2YzExLjc4MSwwLDIxLjM0NCw5LjU3OCwyMS4zNDQsMjEuMzM2VjQ2OS4zNDF6IE0zODMuOTk3LDQ2OS4zNDEKCQljMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzQ5LDAtMjEuMzEyLTkuNTYyLTIxLjMxMi0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU2Mi0yMS4zMzYsMjEuMzEyLTIxLjMzNgoJCWMxMS43ODEsMCwyMS4zNDQsOS41NzgsMjEuMzQ0LDIxLjMzNlY0NjkuMzQxeiBNNDQ3Ljk5Niw0NjkuMzQxYzAsMTEuNzUtOS41NjIsMjEuMzEyLTIxLjM0NCwyMS4zMTIKCQljLTExLjc0OSwwLTIxLjMxMi05LjU2Mi0yMS4zMTItMjEuMzEyVjE5MS45OTljMC0xMS43NTgsOS41NjItMjEuMzM2LDIxLjMxMi0yMS4zMzZjMTEuNzgxLDAsMjEuMzQ0LDkuNTc4LDIxLjM0NCwyMS4zMzZWNDY5LjM0MQoJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU2Ljg3MSwxMDMuNjcyYy0xLjMxMi00LjUzOS0wLjUtNy44NDQsMi42ODgtMTEuMDU1YzguNjU2LTguNjk1LDExLjUzMS0xOS45ODQsOC4wNjItMzEuODEyCgkJCWMtMi4zMTItNy45MzgtNi44MTItMTMuNTQ3LTcuMzc1LTE0LjI1Yy0wLjAzMSwwLTAuMDMxLTAuMDA4LTAuMDMxLTAuMDA4di0wLjAxNWMtMS45NjktMi4zNTktNC45MDYtMy44NjctOC4yMTktMy44NjcKCQkJYy01Ljg5LDAtMTAuNjU1LDQuNzgxLTEwLjY1NSwxMC42NzJjMCwyLjU4NiwwLjkwNiw0Ljk2MSwyLjQzOCw2LjgwNWMwLjAzMSwwLjAyMywyLjI4MSwyLjkzOCwzLjM3NSw2LjY1NgoJCQljMS4yNjYsNC4zNjcsMC40NjksNy41ODYtMi43MTksMTAuNzY2Yy04LjYyNSw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc4LDMxLjk5OGMyLjMyOCw4LjEwMiw2LjgyOCwxMy44MzYsNy4zMjgsMTQuNDY5di0wLjAwOAoJCQljMS45NjksMi40MjIsNC45NTMsMy45NzcsOC4zMTIsMy45NzdjNS44OTEsMCwxMC42NTYtNC43NzMsMTAuNjU2LTEwLjY2NGMwLTIuNTM5LTAuODc1LTQuODY3LTIuMzQ0LTYuNjk1CgkJCUMzNjAuMjc4LDExMC42MSwzNTcuOTY1LDEwNy41NTUsMzU2Ljg3MSwxMDMuNjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNjguNjU2LDk2LjYxYy0yLjQ2MS05LjgzNi0wLjQ5Mi0xOC4xOTUsNi0yNS41NDdjMTEuNDA2LTEyLjg5MSwxNS4wMzEtMjguNjk1LDEwLjUtNDUuNzI2CgkJCWMtMy4xODgtMTEuOTM4LTkuMzEyLTIwLjIyNy0xMC0yMS4xMzNWNC4yMmMtMS45NjktMi41NTUtNS4wMjMtNC4yMTktOC40OTItNC4yMTljLTUuODkzLDAtMTAuNjY2LDQuNzczLTEwLjY2NiwxMC42NjQKCQkJYzAsMi40MTQsMC44MDUsNC42MzMsMi4xNTYsNi40MTRoLTAuMDE2YzAuMDQ3LDAuMDYyLDQuNDkyLDYuMTA5LDYuNTQ3LDE0LjMyYzIuNDUzLDkuODI3LDAuNDg0LDE4LjE4Ny02LjAxNiwyNS41MzgKCQkJYy0xMS4zOSwxMi44OTEtMTUuMDE1LDI4LjY5Ni0xMC40ODMsNDUuNzI3YzMuMTcyLDExLjkzOCw5LjMwNSwyMC4yMjcsOS45ODQsMjEuMTMzbDAuMDE2LTAuMDE2CgkJCWMxLjk0NSwyLjU3LDUuMDE2LDQuMjE5LDguNDc3LDQuMjE5YzUuODk4LDAsMTAuNjgtNC43NzMsMTAuNjgtMTAuNjY0YzAtMi40MTQtMC44MTItNC42MzMtMi4xNTYtNi40MTQKCQkJQzI3NS4xNCwxMTAuODYsMjcwLjY5NSwxMDQuODEzLDI2OC42NTYsOTYuNjF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE4OS42NCwxMTAuNjQxYy0wLjAyMy0wLjAzMS0yLjMyOC0zLjA4Ni0zLjQ0NS02Ljk2OWMtMS4zMDUtNC41MzktMC41LTcuODQ0LDIuNjk1LTExLjA1NQoJCQljOC42NjQtOC42OTUsMTEuNTIzLTE5Ljk4NCw4LjA2Mi0zMS44MTJjLTIuMzItNy45MzgtNi43ODktMTMuNTMxLTcuMzkxLTE0LjI1YzAsMCwwLTAuMDA4LTAuMDA4LTAuMDA4bC0wLjAwOC0wLjAyM3YwLjAwOAoJCQljLTEuOTYxLTIuMzU5LTQuOTA2LTMuODY3LTguMjExLTMuODY3Yy01Ljg5MSwwLTEwLjY3Miw0Ljc4MS0xMC42NzIsMTAuNjcyYzAsMi41ODYsMC45MjIsNC45NjEsMi40NTMsNi44MDUKCQkJYzAuMDIzLDAuMDIzLDIuMjczLDIuOTM4LDMuMzU5LDYuNjU2YzEuMjgxLDQuMzY3LDAuNDY5LDcuNTg2LTIuNzAzLDEwLjc2NmMtOC42NCw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc3LDMxLjk5OAoJCQljMi4zMjgsOC4xMDIsNi44MjgsMTMuODM2LDcuMzM2LDE0LjQ2OXYtMC4wMDhjMS45NjEsMi40MjIsNC45NDUsMy45NzcsOC4zMDUsMy45NzdjNS44OTEsMCwxMC42NjQtNC43NzMsMTAuNjY0LTEwLjY2NAoJCQljMC0yLjUzOS0wLjg5MS00Ljg2Ny0yLjM2Ny02LjY5NUgxODkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",_fe="PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIC0xIDQ5NiA0OTUiIHdpZHRoPSI0OTZwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ4OCAzMjAuNWgtNDB2LTMyYzAtMi4xMjg5MDYtLjgzOTg0NC00LjE2MDE1Ni0yLjM0Mzc1LTUuNjU2MjVsLTEyMC0xMjBjLTEuNDk2MDk0LTEuNTAzOTA2LTMuNTI3MzQ0LTIuMzQzNzUtNS42NTYyNS0yLjM0Mzc1aC0xNnYtMTUyYzAtNC40MjU3ODEtMy41NzQyMTktOC04LThoLTk2Yy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djE1MmgtMjRjLTIuMTI4OTA2IDAtNC4xNjAxNTYuODM5ODQ0LTUuNjU2MjUgMi4zNDM3NWwtMTIwIDEyMGMtMS41MDM5MDYgMS40OTYwOTQtMi4zNDM3NSAzLjUyNzM0NC0yLjM0Mzc1IDUuNjU2MjV2MzJoLTMyYy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djQ4YzAgNC40MjU3ODEgMy41NzQyMTkgOCA4IDhoNDgwYzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQ4YzAtNC40MjU3ODEtMy41NzQyMTktOC04LTh6bS0yODAtMzA0aDgwdjE5MmgtODB6bS0xNTIgMjc1LjMxMjUgMTE1LjMxMjUtMTE1LjMxMjVoMjAuNjg3NXY0MGMwIDQuNDI1NzgxIDMuNTc0MjE5IDggOCA4aDk2YzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQwaDEyLjY4NzVsMTE1LjMxMjUgMTE1LjMxMjV2MjguNjg3NWgtMzc2em00MjQgNzYuNjg3NWgtNDY0di0zMmg0NjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNzkuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjI3LjMxMjUgNDQwLjVjLTIuMTM2NzE5LTIuMTQ0NTMxLTMuMzEyNS00Ljk3NjU2Mi0zLjMxMjUtOHMxLjE3NTc4MS01Ljg1NTQ2OSAzLjMxMjUtOGwxMC4zNDM3NS0xMC4zNDM3NS0xMS4zMTI1LTExLjMxMjUtMTAuMzQzNzUgMTAuMzQzNzVjLTUuMTYwMTU2IDUuMTYwMTU2LTggMTIuMDE1NjI1LTggMTkuMzEyNXMyLjgzOTg0NCAxNC4xNjAxNTYgOCAxOS4zMTI1bDQuNjg3NSA0LjY4NzVjMi4xMzY3MTkgMi4xNDQ1MzEgMy4zMTI1IDQuOTc2NTYyIDMuMzEyNSA4cy0xLjE3NTc4MSA1Ljg1NTQ2OS0zLjMxMjUgOGwtMTAuMzQzNzUgMTAuMzQzNzUgMTEuMzEyNSAxMS4zMTI1IDEwLjM0Mzc1LTEwLjM0Mzc1YzUuMTYwMTU2LTUuMTYwMTU2IDgtMTIuMDE1NjI1IDgtMTkuMzEyNXMtMi44Mzk4NDQtMTQuMTYwMTU2LTgtMTkuMzEyNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3NS4zMTI1IDQ0MC41Yy0yLjEzNjcxOS0yLjE0NDUzMS0zLjMxMjUtNC45NzY1NjItMy4zMTI1LThzMS4xNzU3ODEtNS44NTU0NjkgMy4zMTI1LThsMTAuMzQzNzUtMTAuMzQzNzUtMTEuMzEyNS0xMS4zMTI1LTEwLjM0Mzc1IDEwLjM0Mzc1Yy01LjE2MDE1NiA1LjE2MDE1Ni04IDEyLjAxNTYyNS04IDE5LjMxMjVzMi44Mzk4NDQgMTQuMTYwMTU2IDggMTkuMzEyNWw0LjY4NzUgNC42ODc1YzIuMTM2NzE5IDIuMTQ0NTMxIDMuMzEyNSA0Ljk3NjU2MiAzLjMxMjUgOHMtMS4xNzU3ODEgNS44NTU0NjktMy4zMTI1IDhsLTEwLjM0Mzc1IDEwLjM0Mzc1IDExLjMxMjUgMTEuMzEyNSAxMC4zNDM3NS0xMC4zNDM3NWM1LjE2MDE1Ni01LjE2MDE1NiA4LTEyLjAxNTYyNSA4LTE5LjMxMjVzLTIuODM5ODQ0LTE0LjE2MDE1Ni04LTE5LjMxMjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjMuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI4OC41aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAyODguNWgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAgMjg4LjVoMTZ2MTZoLTE2em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Sfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDUgNTEyLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0zMjcuMTU5LDIuNzY2Yy00LjA2My0zLjY4OC0xMC4yNS0zLjY4OC0xNC4zMTMsMGMtNC42NDIsNC4xODYtMTEwLjg4OSwxMDEuMjkyLTE2MC4yMjgsMjEzLjgzOQoJCQkJYy01LjMxOC0xLjg2Ny0xMS40NC0zLjI2Ni0xOS4zNTUtMy4yNjZjLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWMxMiwwLDE3LjU2MywzLjg2NSwyNC42MDQsOC43NgoJCQkJYzguMDUyLDUuNjA0LDE4LjA4MywxMi41NzMsMzYuNzcxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N2MtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzMKCQkJCWMtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTExLjIwOCwwLTE2LjgyMy0zLjQxOS0yMy4yNDItNy44NTRjNDAuMTIxLTkyLjY2MSwxMjMuNjYxLTE3Ny40NjYsMTQ4LjYwNy0yMDEuNDkKCQkJCWMzMy4yMTksMzIuMDEsMTcwLjY2NywxNzEuODY1LDE3MC42NjcsMjk0LjY3N2MwLDk0LjEwNC03Ni41NjMsMTcwLjY2Ny0xNzAuNjY3LDE3MC42NjdjLTQyLjQ3NywwLTgyLjY2OS0xNS44MjItMTEzLjc4LTQzLjc1OAoJCQkJYzExLjU0Mi0yLjEzOCwxOC45OTQtNy4xNzcsMjUuMTg2LTExLjQ4MmM3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NmM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzYKCQkJCWMtMTIsMC0xNy41NjMtMy44NjUtMjQuNTk0LTguNzZjLTguMDYzLTUuNjA0LTE4LjA5NC0xMi41NzMtMzYuNzgxLTEyLjU3M2MtMTguNjc3LDAtMjguNjk4LDYuOTY5LTM2Ljc1LDEyLjU3MwoJCQkJYy03LjAzMSw0Ljg5Ni0xMi41ODMsOC43Ni0yNC41NzMsOC43NmMtMTEuOTY5LDAtMTcuNTIxLTMuODY1LTI0LjU0Mi04Ljc1Yy04LjA0Mi01LjYwNC0xOC4wNjMtMTIuNTgzLTM2LjcyOS0xMi41ODMKCQkJCWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzUKCQkJCWM4LjA0Miw1LjYwNCwxOC4wNjMsMTIuNTgzLDM2LjcyOSwxMi41ODNjMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NQoJCQkJYzEyLDAsMTcuNTYzLDMuODY1LDI0LjYwNCw4Ljc2YzQuMzQ1LDMuMDIzLDkuNDE0LDYuMzU1LDE1Ljk2MSw4Ljg2NWMzNi42LDQyLjk5Niw4OS42NTUsNjcuNzA4LDE0Ni4xNzQsNjcuNzA4CgkJCQljMTA1Ljg2NSwwLDE5Mi04Ni4xMzUsMTkyLTE5MkM1MTIuMDAzLDE3MS42NDEsMzM0LjcwMSw5LjU4OSwzMjcuMTU5LDIuNzY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMC42NjksMzYyLjY3MmMxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzUKCQkJCWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzQuNzczLDM2Mi42NzIsMTAuNjY5LDM2Mi42NzJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzMy4yNjMsMzQxLjMzOWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMiwwLDE3LjU2MywzLjg2NSwyNC41OTQsOC43NgoJCQkJYzguMDYzLDUuNjA0LDE4LjA5NCwxMi41NzMsMzYuNzgxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzEyLjE5OCwwLDE4LjQwNiwzLjk2OSwyNi4yNSw4Ljk5YzkuMDUyLDUuNzgxLDE5LjMxMywxMi4zNDQsMzcuNzUsMTIuMzQ0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjcKCQkJCWMwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMi4xOTgsMC0xOC40MDYtMy45NjktMjYuMjUtOC45OWMtOS4wNTItNS43ODEtMTkuMzEzLTEyLjM0NC0zNy43NS0xMi4zNDQKCQkJCWMtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU5NCw4Ljc2LTI0LjU4Myw4Ljc2Yy0xMiwwLTE3LjU2My0zLjg2NS0yNC42MDQtOC43NgoJCQkJQzE2MS45ODIsMzQ4LjMwNywxNTEuOTUxLDM0MS4zMzksMTMzLjI2MywzNDEuMzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzMuMjYzLDI3Ny4zMzljLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlDMTQzLjkzLDI4Mi4xMDksMTM5LjE1OSwyNzcuMzM5LDEzMy4yNjMsMjc3LjMzOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjMxLjQwOSwzMDcuNDMyYzcuMDMxLTQuODk2LDEyLjU5NC04Ljc2LDI0LjU5NC04Ljc2YzExLjk2OSwwLDE3LjUyMSwzLjg2NSwyNC41NDIsOC43NQoJCQkJYzguMDQyLDUuNjA0LDE4LjA2MywxMi41ODMsMzYuNzI5LDEyLjU4M2MxOC42NzcsMCwyOC43MDgtNi45NzksMzYuNzYtMTIuNTgzYzcuMDMxLTQuODg1LDEyLjU4My04Ljc1LDI0LjU2My04Ljc1CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42NzcsMC0yOC42OTgsNi45NjktMzYuNzUsMTIuNTczCgkJCQljLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzVjLTguMDQyLTUuNjA0LTE4LjA2My0xMi41ODMtMzYuNzI5LTEyLjU4MwoJCQkJYy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjcKCQkJCXM0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N0MyMTMuMzE1LDMyMC4wMDUsMjIzLjM0NiwzMTMuMDM2LDIzMS40MDksMzA3LjQzMnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",kfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTIgMTYzLjg3YzAtMTMuOS01LjQxMi0yNi45NjEtMTUuMjMzLTM2Ljc3LTkuODE1LTkuODI4LTIyLjg3Ni0xNS4yNC0zNi43NzYtMTUuMjRoLTgwLjk3Yy0yNi43MDUgMC00OC40My0yMS43MjYtNDguNDMtNDguNDMgMC0xMi45MzggNS4wMzctMjUuMTAxIDE0LjE4NC0zNC4yNDcgOS4xNDQtOS4xNDYgMjEuMzA3LTE0LjE4MyAzNC4yNDUtMTQuMTgzaDEyNS40OGM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMTI1LjQ4Yy0xNi45NDUgMC0zMi44NzQgNi41OTctNDQuODUzIDE4LjU3Ny0xMS45NzkgMTEuOTc5LTE4LjU3NyAyNy45MDgtMTguNTc3IDQ0Ljg1MyAwIDM0Ljk3NSAyOC40NTUgNjMuNDMgNjMuNDMgNjMuNDNoODAuOTdjOS44OSAwIDE5LjE4MiAzLjg1IDI2LjE2OSAxMC44NDcgNi45OTEgNi45ODIgMTAuODQxIDE2LjI3MyAxMC44NDEgMjYuMTYzIDAgOC42MzctMy4wMzggMTcuMDQ0LTguNTU3IDIzLjY3NGwtMjIuMzA1IDI2LjgyMmMtNy44ODQtMi43MjUtMTYuOTg5LS45NzItMjMuMjgyIDUuMzExbC05LjA1OCA5LjA1OGMtMjAuMzItLjQyLTQzLjA5OCAzLjk0LTYyLjgyMSA3LjQyNy00LjA3OS43MjEtNi44MDEgNC42MTMtNi4wNzkgOC42OTEuNzIxIDQuMDc5IDQuNjEzIDYuNzk5IDguNjkxIDYuMDc5IDE4Ljk0Mi0zLjM1IDM4LjM5Mi01Ljc2OCA1Ny44MDktNy4xODUgNy42ODEtLjU2NiAxNC44MzMgNC4zOTMgMTYuOTg1IDExLjc4IDEuODI3IDYuMjcgNDcuMDI3IDE2MC4xNjcgNDguNTMzIDE2Ni41NzUuNDk4IDIuMTE5LS43MzggMy42Ni0yLjkxMiAzLjY2LTIyLjc4NiAwLTQxLjA0MiAxNS42Ni00OC40NjQgMzYuNDg4aC0zMjAuMzcxYy00LjE0MiAwLTcuNSAzLjM1Ny03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDMyNy43ODdjNS40NDUgMCA5Ljg3NSA0LjQzIDkuODc1IDkuODc1cy00LjQzMSA5Ljg3NS05Ljg3NiA5Ljg3NWgtNDM2LjkwNmMzLjI2NS0xMS4zOTEgMTMuNzc1LTE5Ljc1IDI2LjItMTkuNzVoNTIuOTE5YzQuMTQyIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC00NC45NDRjNjIuNDYyLTExMS41OTggMTcxLjkwMy0xNzcuMDI3IDI5NC43NzgtMjA1LjQ4NiA0LjAzNS0uOTM1IDYuNTQ5LTQuOTYzIDUuNjE0LTguOTk5LS45MzQtNC4wMzUtNC45NjQtNi41NDktOC45OTktNS42MTQtNzEuNjMyIDE2LjU5OS0xNDMuNTkzIDQ3LjA1MS0yMDEuNDczIDkyLjYwNmwtMTAuMDcxLTEwLjA3Yy04LjYzNS04Ljc1Mi0yMy4xNTktOC42NzgtMzEuODI2LS4wMS04LjYzMSA4LjYzMi04LjcyOCAyMy4xNjYgMCAzMS44MDdsOC4wNTEgOC4wNTFjLTI5LjQ2NyAyOC45NTktNTQuMTAyIDYyLjMyLTc0LjA0MiA5OC45Mi0xOC40ODcgNC41MDItMzIuMjU2IDIxLjE5MS0zMi4yNTYgNDEuMDQ1IDAgNC4xNDMgMy4zNTggNy41IDcuNSA3LjVoNDQ1LjQ1NWMxMy43MTYgMCAyNC44NzUtMTEuMTU5IDI0Ljg3NS0yNC44NzUgMC0xMC43NS02Ljg1NS0xOS45MjctMTYuNDI0LTIzLjM5NSA1LjI2My0xMy41NzMgMTcuOTAzLTIyLjk2OSAzMi41OTgtMjIuOTY5IDExLjQ4MyAwIDIwLjMwMi0xMS40MDEgMTcuNDExLTIyLjUxLS4wMTgtLjA3MS0uMDM4LS4xNDItLjA1OC0uMjExbC00NS44NTctMTU3LjM5MSA5LjE2My05LjE1NmM3LjM1OS03LjMwMyA4LjY0NC0xOS4wOTMgMy4xOTctMjcuNzYybDIyLjExNS0yNi41OTNjNy43NTQtOS4zMTggMTIuMDI1LTIxLjEzMiAxMi4wMjUtMzMuMjY4em0tNDAzLjE0NiAxNzEuNDEzYzEuNDItMS40MjEgMy4zMDUtMi4yMDMgNS4zMDctMi4yMDMgMS45OTkgMCAzLjg3Ny43NzkgNS4yOTYgMi4yMDRsOS4wMTQgOS4wMTRjLTMuODI1IDMuMjQzLTcuNTgyIDYuNTUxLTExLjI3NCA5LjkyMmwtOC4zNDQtOC4zNDRjLTIuOTItMi45Mi0yLjkyLTcuNjcyLjAwMS0xMC41OTN6bTM1NS4yMDUtOTQuMzk4LTMuOTg2IDMuOTgzYy0yLjQ5Ni00LjQ2MS02LjAzNy04LjIwMy0xMC4yMzMtMTAuOTYxbDMuNjE5LTMuNjE5YzIuOTI2LTIuOTIgNy42OC0yLjkyMiAxMC41OTgtLjAwNCAxLjQyMSAxLjQyMSAyLjIwMyAzLjMwMiAyLjIwMyA1LjI5NyAwIDItLjc4MiAzLjg4NS0yLjIwMSA1LjMwNHptLTIxNS43NjUgOTQuNzY0Yy0xMy44MjQgNy42NTMtMjIuNDEyIDIyLjIzNS0yMi40MTIgMzguMDU2IDAgMTEuOTg3IDUuMDE5IDIzLjU2MyAxMy43NzEgMzEuNzU4IDguMDY2IDcuNTUzIDE4Ljc4OCAxMS43NTYgMjkuNzg2IDExLjc1NS45NCAwIDE1MS4wOC05LjgzOCAxNTEuMDgtOS44MzggNi45MTEtLjQ1NCAxMy4yMjUtMy45MTYgMTcuMzIyLTkuNDk4IDQuMDk2LTUuNTc5IDUuNTA3LTEyLjYzNyAzLjg3Mi0xOS4zNjJsLTE5LjUzOC04MC4zMjNjLTMuMDE3LTEyLjQwNC0xNS4xODMtMjAuMDEzLTI3LjY5My0xNy4zMjktMzAuMDk0IDYuNDY2LTU5Ljc4NyAxNS41OTQtODguMjU2IDI3LjEzLTE5Ljc2OCA4LjAxLTM5LjI1OSAxNy4zMTMtNTcuOTMyIDI3LjY1MXptMTA3LjI2NiA2MC45NjktNjcuNDMgNC40MzN2LTE3LjY4MWMwLS4yMzguMjAyLS40NC40NC0uNDRoNjYuNTVjLjI0MyAwIC40NC4xOTcuNDQuNDR6bTQyLjA3MS0xMDEuMDg1Yy42MTMtLjEzMiAxLjIyMy0uMTk1IDEuODIzLS4xOTUgMy44MTQgMCA3LjIxIDIuNTU5IDguMTQ1IDYuNDAzbDE5LjUzOCA4MC4zMjNjLjU5NSAyLjQ0Ni4xMDIgNC45MTEtMS4zODggNi45NC0xLjQ5MiAyLjAzMi0zLjY5OSAzLjI0Mi02LjIxNSAzLjQwOGwtNDguOTc0IDMuMjE5di0xMi4yNjFjMC04LjUxNC02LjkyNi0xNS40NC0xNS40NC0xNS40NGgtNjYuNTVjLTguNTE0IDAtMTUuNDQgNi45MjctMTUuNDQgMTUuNDR2MTguNjY3bC0xLjg1LjEyMmMtNy45NTcuNTE4LTE1LjU1Mi0yLjE5Mi0yMS4zNzUtNy42NDUtNS44MTktNS40NDktOS4wMjQtMTIuODM5LTkuMDI0LTIwLjgwOSAwLTEwLjM2NyA1LjYyNC0xOS45MjEgMTQuNjc3LTI0LjkzMyAxOC4xNDgtMTAuMDQ3IDM3LjA5LTE5LjA4OCA1Ni4zMDEtMjYuODczIDI3LjY2Ni0xMS4yMTEgNTYuNTI1LTIwLjA4MyA4NS43NzItMjYuMzY2eiIvPgogICAgPC9nPgo8L3N2Zz4=",Yfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQzNS4yIDMyNC4yNjdoLTEwLjkwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY3Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTIzMi43NzJjLTE0LjEzOCAwLTI1LjYtMTEuNDYyLTI1LjYtMjUuNnMxMS40NjItMjUuNiAyNS42LTI1LjZoMzYuNTA2YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2g2Mi4xMDZjMTQuMTM4IDAgMjUuNi0xMS40NjIgMjUuNi0yNS42cy0xMS40NjItMjUuNi0yNS42LTI1LjZoLTYyLjEwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY2Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTM2LjUwNmMtNDIuNDE1IDAtNzYuOCAzNC4zODUtNzYuOCA3Ni44czM0LjM4NSA3Ni44IDc2LjggNzYuOGgyMzIuNzcyYzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gxMC45MDdjMTQuMTM4IDAgMjUuNiAxMS40NjIgMjUuNiAyNS42cy0xMS40NjIgMjUuNi0yNS42IDI1LjZoLTMwOS41NzJjLTMuMDI0LTUuMjYzLTguNjI0LTguNTE1LTE0LjY5NC04LjUzM3YtMTcuMDY3YzAtOS40MjYtNy42NDEtMTcuMDY3LTE3LjA2Ny0xNy4wNjdoLTE3LjA2N2MtOS40MjYgMC0xNy4wNjcgNy42NDEtMTcuMDY3IDE3LjA2N3YxNy4wNjdjLTYuMDcuMDE4LTExLjY3IDMuMjctMTQuNjk0IDguNTMzaC0xOS40MzljLTE0LjEzOCAwLTI1LjYgMTEuNDYyLTI1LjYgMjUuNnMxMS40NjIgMjUuNiAyNS42IDI1LjZoMTkuNDM5YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gzMDkuNTczYzQyLjQxNSAwIDc2LjgtMzQuMzg1IDc2LjgtNzYuOHMtMzQuMzg1LTc2LjgtNzYuOC03Ni44em0tNTkuNzMzLTI1LjZoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNzYuOC01MS4yYzAgNC43MTMtMy44MjEgOC41MzMtOC41MzMgOC41MzNoLTU5LjczNHYtMTcuMDY3aDU5LjczM2M0LjcxMyAwIDguNTM0IDMuODIxIDguNTM0IDguNTM0em0tMTE5LjQ2Ny01MS4yaDE3LjA2N3YxNy4wNjdoLTE3LjA2N3ptLTguNTMzIDM0LjEzM2g0Mi42Njd2MzQuMTMzaC01MS4ydi0zNC4xMzN6bS0xMTkuNDY3IDY4LjI2N2MuMDM4LTMyLjk3NCAyNi43NTktNTkuNjk2IDU5LjczMy01OS43MzNoMzQuMTMzdjE3LjA2NmgtMzQuMTMzYy0yMy41NjQgMC00Mi42NjcgMTkuMTAzLTQyLjY2NyA0Mi42NjdzMTkuMTAzIDQyLjY2NyA0Mi42NjcgNDIuNjY3aDIzMC40djE3LjA2NmgtMjMwLjRjLTMyLjk3NC0uMDM4LTU5LjY5NS0yNi43NTktNTkuNzMzLTU5LjczM3ptMzA3LjIgNjguMjY2di0zNC4xMzNoNTEuMnYzNC4xMzN6bS0yODEuNiAzNC4xMzRoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNTkuNzMzIDUxLjJjMC00LjcxMyAzLjgyMS04LjUzMyA4LjUzMy04LjUzM2gxNy4wNjd2MTcuMDY2aC0xNy4wNjdjLTQuNzEzIDAtOC41MzMtMy44Mi04LjUzMy04LjUzM3ptNDIuNjY2IDE3LjA2NnYtMzQuMTMzaDUxLjJ2MzQuMTMzem0zNzUuNDY3LTguNTMzaC0zMDcuMnYtMTcuMDY3aDMwNy4yYzIzLjU2NCAwIDQyLjY2Ny0xOS4xMDMgNDIuNjY3LTQyLjY2N3MtMTkuMTAzLTQyLjY2Ny00Mi42NjctNDIuNjY3aC04LjUzM3YtMTcuMDY3aDguNTMzYzMyLjk5IDAgNTkuNzMzIDI2Ljc0NCA1OS43MzMgNTkuNzMzcy0yNi43NDMgNTkuNzM1LTU5LjczMyA1OS43MzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4Ny43MzMgMTYyLjEzM2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyMS04LjUzMy04LjUzMy04LjUzMy00LjcxMyAwLTguNTMzIDMuODIxLTguNTMzIDguNTMzdjE3LjA2N2MwIDQuNzEzIDMuODIxIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xODcuNzMzIDExMC45MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTg3LjczMyA1OS43MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTU0Ljc0MyAxNTcuODY3YzEuNTEzIDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxMy0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjkuMTQzIDExMy40OTNjMS41MTMgMi42NjIgNC4zMzcgNC4zMDkgNy4zOTkgNC4zMTZzNS44OTMtMS42MjggNy40MTgtNC4yODMgMS41MTEtNS45MjQtLjAzOC04LjU2NmwtOC41MzMtMTQuNzhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMy41NDMgNjkuMTg4YzIuMzcyIDQuMDQ3IDcuNTY2IDUuNDIgMTEuNjI4IDMuMDc0IDQuMDYyLTIuMzQ1IDUuNDctNy41MyAzLjE1MS0xMS42MDhsLTguNTMzLTE0Ljc4OGMtMS41MTMtMi42NjItNC4zMzctNC4zMDktNy4zOTktNC4zMTZzLTUuODkzIDEuNjI4LTcuNDE4IDQuMjgzLTEuNTExIDUuOTI0LjAzOCA4LjU2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjA5LjA2NyAxNjAuOTljNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzhjMS41NDktMi42NDIgMS41NjMtNS45MTEuMDM4LTguNTY2cy00LjM1Ni00LjI5LTcuNDE4LTQuMjgzLTUuODg2IDEuNjU0LTcuMzk5IDQuMzE2bC04LjUzMyAxNC43OGMtMi4zNTggNC4wODEtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0LjY2NyAxMTYuNjUxYzQuMDgxIDIuMzU2IDkuMy45NTggMTEuNjU3LTMuMTIzbDguNTMzLTE0Ljc4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzhjLTIuMzU4IDQuMDgtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjYwLjI2NyA3Mi4zMTFjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzg4Yy0yLjM1OCA0LjA4MS0uOTYgOS4zIDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI3My4wNjdjNC43MTMgMCA4LjUzMy0zLjgyIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMjIxLjg2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMTcwLjY2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNTEuMDEgMjY4LjhjMi4zNzIgNC4wNDcgNy41NjYgNS40MiAxMS42MjggMy4wNzQgNC4wNjItMi4zNDUgNS40Ny03LjUzIDMuMTUxLTExLjYwOGwtOC41MzMtMTQuNzhjLTEuNTE0LTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyNS40MSAyMjQuNDI3YzEuNTE0IDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxNC0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTkuODEgMTgwLjEyMmMyLjM3MiA0LjA0NyA3LjU2NiA1LjQyIDExLjYyOCAzLjA3NCA0LjA2Mi0yLjM0NSA1LjQ3LTcuNTMgMy4xNTEtMTEuNjA4bC04LjUzMy0xNC43ODhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNS4zMzMgMjcxLjkyM2M0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4LTQuMDYyLTIuMzQ1LTkuMjU2LS45NzItMTEuNjI4IDMuMDc0bC04LjUzMyAxNC43OGMtMi4zNTcgNC4wODItLjk1OSA5LjMwMSAzLjEyMiAxMS42NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMC45MzMgMjI3LjU4NGM0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4cy05LjI1Ni0uOTcyLTExLjYyOCAzLjA3NGwtOC41MzMgMTQuNzhjLTIuMzU3IDQuMDgyLS45NTkgOS4zMDEgMy4xMjIgMTEuNjU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NTYuNTMzIDE4My4yNDVjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzIuMzE4LTQuMDc4LjkxMS05LjI2Mi0zLjE1MS0xMS42MDgtNC4wNjItMi4zNDUtOS4yNTYtLjk3Mi0xMS42MjggMy4wNzRsLTguNTMzIDE0Ljc4OGMtMi4zNTcgNC4wODItLjk1OSA5LjMgMy4xMjIgMTEuNjU3eiIvPgogICAgPC9nPgo8L3N2Zz4=",vfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDIgNTEyLjAwMiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM5OC41ODkgMjQ2LjM0MmMtNjQuNjY2LTE3LjMyOC0xMTUuNjAxLTY4LjI2NC0xMzIuOTI5LTEzMi45MjktMS4xNzEtNC4zNzItNS4xMzMtNy40MTItOS42NTktNy40MTJzLTguNDg4IDMuMDQtOS42NTkgNy40MTJjLTE3LjMyOCA2NC42NjYtNjguMjYzIDExNS42MDEtMTMyLjkyOSAxMzIuOTI5LTQuMzcyIDEuMTcxLTcuNDEyIDUuMTMzLTcuNDEyIDkuNjU5czMuMDQgOC40ODggNy40MTIgOS42NTljNjQuNjY2IDE3LjMyOSAxMTUuNjAxIDY4LjI2NCAxMzIuOTI5IDEzMi45MjkgMS4xNzEgNC4zNzIgNS4xMzMgNy40MTIgOS42NTkgNy40MTJzOC40ODgtMy4wNCA5LjY1OS03LjQxMmMxNy4zMjgtNjQuNjY1IDY4LjI2NC0xMTUuNjAxIDEzMi45MjktMTMyLjkyOSA0LjM3Mi0xLjE3MSA3LjQxMi01LjEzMyA3LjQxMi05LjY1OXMtMy4wNC04LjQ4OC03LjQxMi05LjY1OXptLTE0Mi41ODggMTE5LjE3NmMtMjEuMDM5LTQ5LjA5Ni02MC40Mi04OC40NzgtMTA5LjUxNi0xMDkuNTE3IDQ5LjA5Ni0yMS4wMzkgODguNDc4LTYwLjQyIDEwOS41MTYtMTA5LjUxNyAyMS4wMzkgNDkuMDk3IDYwLjQyIDg4LjQ3OCAxMDkuNTE3IDEwOS41MTctNDkuMDk3IDIxLjAzOS04OC40NzggNjAuNDItMTA5LjUxNyAxMDkuNTE3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuMDM2IDIwMC40NThjLTEuODg2LTIuNTQ1LTQuODY3LTQuMDQ3LTguMDM1LTQuMDQ3cy02LjE0OSAxLjUwMS04LjAzNSA0LjA0N2MtMTMuNDE2IDE4LjEwNy0yOS40IDM0LjA5MS00Ny41MDggNDcuNTA4LTIuNTQ1IDEuODg2LTQuMDQ3IDQuODY3LTQuMDQ3IDguMDM1czEuNTAxIDYuMTQ5IDQuMDQ3IDguMDM1YzE4LjEwOCAxMy40MTYgMzQuMDkyIDI5LjQgNDcuNTA4IDQ3LjUwOCAxLjg4NiAyLjU0NSA0Ljg2NyA0LjA0NyA4LjAzNSA0LjA0N3M2LjE0OS0xLjUwMSA4LjAzNS00LjA0N2MxMy40MTYtMTguMTA4IDI5LjQtMzQuMDkyIDQ3LjUwOC00Ny41MDggMi41NDUtMS44ODYgNC4wNDctNC44NjcgNC4wNDctOC4wMzVzLTEuNTAxLTYuMTQ5LTQuMDQ3LTguMDM1Yy0xOC4xMDgtMTMuNDE3LTM0LjA5Mi0yOS40MDEtNDcuNTA4LTQ3LjUwOHptLTguMDM1IDg4LjkwOWMtMTAuMDQtMTIuMTYyLTIxLjIwNC0yMy4zMjYtMzMuMzY2LTMzLjM2NiAxMi4xNjMtMTAuMDQgMjMuMzI2LTIxLjIwNCAzMy4zNjYtMzMuMzY2IDEwLjA0IDEyLjE2MyAyMS4yMDQgMjMuMzI2IDMzLjM2NiAzMy4zNjYtMTIuMTYyIDEwLjA0LTIzLjMyNiAyMS4yMDQtMzMuMzY2IDMzLjM2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2LjAwMSA3NS45OTljNS41MjMgMCAxMC00LjQ3NyAxMC0xMHYtNTUuOTk5YzAtNS41MjMtNC40NzctMTAtMTAtMTBzLTEwIDQuNDc3LTEwIDEwdjU1Ljk5OWMwIDUuNTIzIDQuNDc3IDEwIDEwIDEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTQuNTc5IDEyOC43MjFjMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWMzLjkwNS0zLjkwNSAzLjkwNS0xMC4yMzcgMC0xNC4xNDNsLTM5LjU5Ny0zOS41OThjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDMgMHMtMy45MDUgMTAuMjM3IDAgMTQuMTQzeiIvPgogICAgICAgIDxwYXRoIGQ9Im03NiAyNTYuMDAxYzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTU2Yy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwczQuNDc3IDEwIDEwIDEwaDU2YzUuNTIyIDAgMTAtNC40NzcgMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNC41NzkgMzgzLjI4MS0zOS41OTggMzkuNTk4Yy0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDMgMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWwzOS41OTgtMzkuNTk4YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3MtMTAuMjM3LTMuOTA2LTE0LjE0MiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMDAxIDQzNi4wMDNjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2NTUuOTk5YzAgNS41MjMgNC40NzcgMTAgMTAgMTBzMTAtNC40NzcgMTAtMTB2LTU1Ljk5OWMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTcuNDI0IDM4My4yODFjLTMuOTA1LTMuOTA0LTEwLjIzNi0zLjkwNC0xNC4xNDMgMC0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDNsMzkuNTk3IDM5LjU5OGMxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MSAyLjkyOXM1LjExOS0uOTc3IDcuMDcxLTIuOTI5YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3oiLz4KICAgICAgICA8cGF0aCBkPSJtNTAyLjAwMiAyNDYuMDAxaC01NS45OTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoNTUuOTk5YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTAuMzUzIDEzMS42NDljMi41NTkgMCA1LjExOS0uOTc2IDcuMDcxLTIuOTI5bDM5LjU5Ny0zOS41OThjMy45MDUtMy45MDUgMy45MDUtMTAuMjM3IDAtMTQuMTQzcy0xMC4yMzctMy45MDUtMTQuMTQzIDBsLTM5LjU5NyAzOS41OThjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MiAyLjkyOXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYxLjg2OCAzOC43MzVjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMSA1LjA3Ny0yLjE3NSA3LjQyOC04LjA1NCA1LjI1Mi0xMy4xM2wtLjAwMy0uMDA3Yy0yLjE3NS01LjA3Ni04LjA1MS03LjQyMy0xMy4xMjktNS4yNDktNS4wNzYgMi4xNzUtNy40MjYgOC4wNTgtNS4yNSAxMy4xMzQgMS42MjUgMy43OTIgNS4zMTYgNi4wNjMgOS4xOTYgNi4wNjN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2OS44NDQgNzQuMTMxIDEzLjA1NCAzMS41MTRjMS41OTUgMy44NTEgNS4zMTggNi4xNzUgOS4yNDMgNi4xNzUgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjQgNS4xMDItMi4xMTQgNy41MjUtNy45NjMgNS40MTItMTMuMDY2bC0xMy4wNTQtMzEuNTE0Yy0yLjExNC01LjEwMy03Ljk2My03LjUyNy0xMy4wNjYtNS40MTJzLTcuNTI2IDcuOTY0LTUuNDEyIDEzLjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQuNTQyIDE3MC45NDNjMS4zNTcuNjI2IDIuNzgyLjkyMyA0LjE4NC45MjMgMy43OCAwIDcuMzk4LTIuMTU0IDkuMDg2LTUuODEyIDIuMzE0LTUuMDE0LjEyNS0xMC45NTYtNC44ODktMTMuMjdsLS4wMDYtLjAwM2MtNS4wMTMtMi4zMTUtMTAuOTUyLS4xMjUtMTMuMjY3IDQuODkxLTIuMzE2IDUuMDE0LS4xMjMgMTAuOTU2IDQuODkyIDEzLjI3MXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjYuNDc3IDE4OC4zMjEgMzEuNTE1IDEzLjA1NGMxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2IDIuMTE0LTUuMTAzLS4zMS0xMC45NTItNS40MTItMTMuMDY1bC0zMS41MTYtMTMuMDU0Yy01LjEwMS0yLjExMy0xMC45NTIuMzEtMTMuMDY1IDUuNDEyLTIuMTE0IDUuMTAyLjMxIDEwLjk1MiA1LjQxMiAxMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwNS42NDUgMzI5LjEwNGM1LjEwMy0yLjExMyA3LjUyNi03Ljk2MyA1LjQxMi0xMy4wNjUtMi4xMTMtNS4xMDMtNy45NjQtNy41MjctMTMuMDY1LTUuNDEybC0zMS41MTQgMTMuMDU0Yy01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjUgMS41OTUgMy44NTIgNS4zMTggNi4xNzYgOS4yNDMgNi4xNzYgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI0Ljc5MyAzNDAuOTQ3LS4wMDcuMDAzYy01LjA3NiAyLjE3NS03LjQyNCA4LjA1My01LjI0OSAxMy4xMjkgMS42MjUgMy43OTIgNS4zMTcgNi4wNjIgOS4xOTggNi4wNjIgMS4zMTUgMCAyLjY1Mi0uMjYxIDMuOTM2LS44MTIgNS4wNzctMi4xNzUgNy40MjgtOC4wNTQgNS4yNTItMTMuMTMxLTIuMTc0LTUuMDc1LTguMDUzLTcuNDI2LTEzLjEzLTUuMjUxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjYuMDU0IDQ3NC4xOWMtNS4wMTUtMi4zMTUtMTAuOTU2LS4xMjUtMTMuMjcgNC44ODlsLS4wMDMuMDA2Yy0yLjMxNCA1LjAxNC0uMTI0IDEwLjk1MyA0Ljg5MSAxMy4yNjcgMS4zNTYuNjI2IDIuNzguOTIyIDQuMTgyLjkyMiAzLjc4MSAwIDcuNDAxLTIuMTU2IDkuMDg5LTUuODE0IDIuMzE0LTUuMDE0LjEyNS0xMC45NTUtNC44ODktMTMuMjd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NS45NjMgNDAwLjk0NWMtNS4xMDEtMi4xMTQtMTAuOTUyLjMxLTEzLjA2NSA1LjQxMmwtMTMuMDU0IDMxLjUxNWMtMi4xMTQgNS4xMDMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NSAxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2bDEzLjA1NC0zMS41MTVjMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDYuMTk5IDQ3NC4wNzhjLTUuMDc2IDIuMTc1LTcuNDI4IDguMDU0LTUuMjUyIDEzLjEzbC4wMDMuMDA3YzEuNjI1IDMuNzkxIDUuMzE0IDYuMDYgOS4xOTIgNi4wNiAxLjMxNSAwIDIuNjUxLS4yNjEgMy45MzctLjgxMiA1LjA3Ni0yLjE3NSA3LjQyNi04LjA1OCA1LjI1LTEzLjEzNC0yLjE3NC01LjA3Ni04LjA1MS03LjQyNi0xMy4xMy01LjI1MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjE1OCA0MzcuODcxLTEzLjA1NC0zMS41MTRjLTIuMTE0LTUuMTAzLTcuOTY1LTcuNTI3LTEzLjA2NS01LjQxMi01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjVsMTMuMDU0IDMxLjUxNGMxLjU5NSAzLjg1MiA1LjMxOCA2LjE3NiA5LjI0MyA2LjE3NiAxLjI3NSAwIDIuNTcyLS4yNDUgMy44MjMtLjc2NCA1LjEwMi0yLjExMiA3LjUyNS03Ljk2MiA1LjQxMS0xMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4Ny4yMDggMzQwLjk0N2MtNS4wNzYtMi4xNzctMTAuOTU1LjE3Ny0xMy4xMyA1LjI1Mi0yLjE3NiA1LjA3Ny4xNzYgMTAuOTU2IDUuMjUyIDEzLjEzMWwuMDA2LjAwM2MxLjI4NS41NSAyLjYxOS44MTEgMy45MzMuODExIDMuODc5IDAgNy41NjktMi4yNzIgOS4xOTQtNi4wNjQgMi4xNzctNS4wNzctLjE3OC0xMC45NTctNS4yNTUtMTMuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NDUuNTI1IDMyMy42ODEtMzEuNTE0LTEzLjA1NGMtNS4xMDItMi4xMTMtMTAuOTUxLjMxLTEzLjA2NSA1LjQxMnMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NWwzMS41MTQgMTMuMDU0YzEuMjUyLjUxOSAyLjU0OC43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzYgMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00ODMuMjc0IDE3MS44NjZjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMWwuMDA3LS4wMDNjNS4wNzYtMi4xNzUgNy40MjQtOC4wNTMgNS4yNDktMTMuMTI5cy04LjA2LTcuNDI3LTEzLjEzNC01LjI1Yy01LjA3NyAyLjE3NS03LjQyOCA4LjA1NC01LjI1MiAxMy4xMzEgMS42MjUgMy43OTEgNS4zMTYgNi4wNjIgOS4xOTYgNi4wNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNi4zNTcgMTgyLjg5N2MtNS4xMDMgMi4xMTMtNy41MjYgNy45NjMtNS40MTIgMTMuMDY1IDEuNTk1IDMuODUyIDUuMzE4IDYuMTc2IDkuMjQzIDYuMTc2IDEuMjc1IDAgMi41NzItLjI0NSAzLjgyMy0uNzY0bDMxLjUxNC0xMy4wNTRjNS4xMDMtMi4xMTMgNy41MjYtNy45NjMgNS40MTItMTMuMDY1LTIuMTE0LTUuMTAzLTcuOTYzLTcuNTI3LTEzLjA2Ni01LjQxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ2LjE5OSAzNy45MjNjMS4yODUuNTUxIDIuNjIxLjgxMSAzLjkzNS44MTEgMy44OCAwIDcuNTcxLTIuMjcxIDkuMTk2LTYuMDYzbC4wMDMtLjAwN2MyLjE3Ni01LjA3Ni0uMTc3LTEwLjk1Mi01LjI1My0xMy4xMjctNS4wNzQtMi4xNzYtMTAuOTU3LjE3OS0xMy4xMzIgNS4yNTYtMi4xNzcgNS4wNzYuMTc1IDEwLjk1NSA1LjI1MSAxMy4xM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMzE2LjAzOSAxMTEuMDU3YzEuMjUxLjUxOSAyLjU0Ny43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzZsMTMuMDU0LTMxLjUxNGMyLjExNC01LjEwMy0uMzEtMTAuOTUzLTUuNDEyLTEzLjA2Ni01LjEwMS0yLjExNC0xMC45NTEuMzEtMTMuMDY1IDUuNDEybC0xMy4wNTQgMzEuNTE0Yy0yLjExNSA1LjEwMi4zMDkgMTAuOTUyIDUuNDExIDEzLjA2NnoiLz4KICAgIDwvZz4KPC9zdmc+",bfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAuMDAzLDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04cy04LDMuNTgyLTgsOHYzMkMyMzIuMDAzLDQ0LjQxOCwyMzUuNTg0LDQ4LDI0MC4wMDMsNDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0MS4wNzUsMzYuNjU2bDE2LDI3LjcwNGMyLjE4NCwzLjg0MSw3LjA2OCw1LjE4NCwxMC45MDksM3M1LjE4NC03LjA2OCwzLTEwLjkwOWMtMC4wMTctMC4wMzEtMC4wMzUtMC4wNjEtMC4wNTMtMC4wOTIKCQkJCWwtMTYtMjcuNzA0Yy0yLjE4NC0zLjg0MS03LjA2OC01LjE4NC0xMC45MDktM2MtMy44NDEsMi4xODQtNS4xODQsNy4wNjgtMywxMC45MDlDMTQxLjAzOSwzNi41OTUsMTQxLjA1NywzNi42MjYsMTQxLjA3NSwzNi42NTYKCQkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuNTY3LDEwNi44NzVjMC4wMywwLjAxOCwwLjA2MSwwLjAzNSwwLjA5MiwwLjA1M2wyNy43MDQsMTZjMy44MTIsMi4yMzQsOC43MTMsMC45NTYsMTAuOTQ3LTIuODU2CgkJCQljMi4yMzQtMy44MTIsMC45NTYtOC43MTMtMi44NTYtMTAuOTQ3Yy0wLjAzLTAuMDE4LTAuMDYxLTAuMDM1LTAuMDkyLTAuMDUzbC0yNy43MDQtMTZjLTMuODEyLTIuMjM0LTguNzEzLTAuOTU2LTEwLjk0NywyLjg1NgoJCQkJQzcxLjQ3Nyw5OS43MzksNzIuNzU1LDEwNC42NDEsNzYuNTY3LDEwNi44NzV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTk2LjAwMywxOTJjMC00LjQxOC0zLjU4Mi04LTgtOGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJDOTIuNDIxLDIwMCw5Ni4wMDMsMTk2LjQxOCw5Ni4wMDMsMTkyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuNDU2LDI2MS4wMThjLTAuMDMxLDAuMDE4LTAuMDYyLDAuMDM2LTAuMDkzLDAuMDU0bC0yNy43MDQsMTZjLTMuODQxLDIuMTgzLTUuMTg1LDcuMDY3LTMuMDAyLDEwLjkwOAoJCQkJYzIuMTgzLDMuODQxLDcuMDY3LDUuMTg1LDEwLjkwOCwzLjAwMmMwLjAzMS0wLjAxOCwwLjA2Mi0wLjAzNiwwLjA5My0wLjA1NGwyNy43MDQtMTZjMy44NDEtMi4xODMsNS4xODUtNy4wNjcsMy4wMDItMTAuOTA4CgkJCQlDMTEzLjE4MSwyNjAuMTc5LDEwOC4yOTcsMjU4LjgzNSwxMDQuNDU2LDI2MS4wMTh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQwMy40NCwyNzcuMTI2Yy0wLjAzMS0wLjAxOC0wLjA2Mi0wLjAzNi0wLjA5My0wLjA1NGwtMjcuNzA0LTE2Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMi4yMzUsMy44MTEtMC45NTcsOC43MTMsMi44NTQsMTAuOTQ4YzAuMDMxLDAuMDE4LDAuMDYyLDAuMDM2LDAuMDkzLDAuMDU0bDI3LjcwNCwxNmMzLjgxMSwyLjIzNSw4LjcxMywwLjk1NywxMC45NDgtMi44NTQKCQkJCUM0MDguNTI5LDI4NC4yNjIsNDA3LjI1MSwyNzkuMzYxLDQwMy40NCwyNzcuMTI2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjQuMDAzLDE4NGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJjNC40MTgsMCw4LTMuNTgyLDgtOFM0MjguNDIxLDE4NCw0MjQuMDAzLDE4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzcxLjY1MSwxMjRjMS40MDQsMCwyLjc4NC0wLjM3LDQtMS4wNzJsMjcuNzA0LTE2YzMuODQxLTIuMTg0LDUuMTg0LTcuMDY4LDMtMTAuOTA5cy03LjA2OC01LjE4NC0xMC45MDktMwoJCQkJYy0wLjAzMSwwLjAxNy0wLjA2MSwwLjAzNS0wLjA5MiwwLjA1M2wtMjcuNzA0LDE2Yy0zLjgyNiwyLjIwOS01LjEzNyw3LjEwMi0yLjkyOCwxMC45MjgKCQkJCUMzNjYuMTUyLDEyMi40NzUsMzY4Ljc5MywxMjQsMzcxLjY1MSwxMjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMxMS45OTMsNjcuMjkxYzAuMDAzLDAuMDAyLDAuMDA2LDAuMDA0LDAuMDA5LDAuMDA1YzMuODI3LDIuMjA3LDguNzIsMC44OTQsMTAuOTI3LTIuOTM0CgkJCQljMC0wLjAwMSwwLjAwMS0wLjAwMiwwLjAwMS0wLjAwMmwxNi0yNy43MDRjMi4yMzUtMy44MTEsMC45NTctOC43MTMtMi44NTQtMTAuOTQ4Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMC4wMTgsMC4wMzEtMC4wMzYsMC4wNjItMC4wNTQsMC4wOTNsLTE2LDI3LjcwNEMzMDYuODYyLDYwLjE4NCwzMDguMTY5LDY1LjA3OCwzMTEuOTkzLDY3LjI5MXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LjAwMywzMjBjNC40MTgsMCw4LTMuNTgyLDgtOHYtODhoMTZjMTcuNjczLDAsMzItMTQuMzI3LDMyLTMycy0xNC4zMjctMzItMzItMzJjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMnYxNmgtMTYKCQkJCXYtMTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiwxNC4zMjctMzIsMzJzMTQuMzI3LDMyLDMyLDMyaDE2djg4YzAsNC40MTgsMy41ODIsOCw4LDhzOC0zLjU4Miw4LTh2LTg4aDE2djg4CgkJCQlDMjQ4LjAwMywzMTYuNDE4LDI1MS41ODQsMzIwLDI1Ni4wMDMsMzIweiBNMjY0LjAwMywxOTJjMC04LjgzNyw3LjE2My0xNiwxNi0xNnMxNiw3LjE2MywxNiwxNnMtNy4xNjMsMTYtMTYsMTZoLTE2VjE5MnoKCQkJCSBNMjE2LjAwMywyMDhoLTE2Yy04LjgzNywwLTE2LTcuMTYzLTE2LTE2czcuMTYzLTE2LDE2LTE2czE2LDcuMTYzLDE2LDE2VjIwOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQ2LjIxOSw2NC4xNTJjLTcwLjYxMS0zLjM5Mi0xMzAuNjAzLDUxLjA5OS0xMzMuOTk1LDEyMS43MWMtMS45NDMsNDAuNDMyLDE1LjM1NCw3OS40LDQ2LjY0MywxMDUuMDgyCgkJCQljNS42MzksNC40MTcsOC45OTQsMTEuMTM1LDkuMTM2LDE4LjI5NlYzMjhjMC4wNDIsMTAuMTM0LDYuNDQ1LDE5LjE1LDE2LDIyLjUyOFYzNjBjMC4wMjEsNS45MjMsMi4yNDUsMTEuNjI3LDYuMjQsMTYKCQkJCWMtOC4zMiw5LjA0NC04LjMyLDIyLjk1NiwwLDMyYy04Ljg5NCw5Ljc1LTguMiwyNC44NjQsMS41NSwzMy43NThjNC40MjksNC4wNCwxMC4yMTUsNi4yNjgsMTYuMjEsNi4yNDIKCQkJCWM0LjMwNiwwLjExMyw3Ljg4OS0zLjI4Nyw4LjAwMS03LjU5M2MwLjA0NC0xLjY4LTAuNDU2LTMuMzMtMS40MjUtNC43MDNjLTAuMjUzLTAuNDg5LTAuNTUzLTAuOTUzLTAuODk2LTEuMzg0CgkJCQljLTAuNjU4LTAuNjAyLTEuNDA5LTEuMDk0LTIuMjI0LTEuNDU2Yy0wLjIzMi0wLjEyLTAuNDY0LTAuMjE2LTAuNzA0LTAuMzEyYy0wLjgxLTAuMjk1LTEuNjU5LTAuNDY1LTIuNTItMC41MDQKCQkJCWMtMC4wOCwwLTAuMTUyLTAuMDQ4LTAuMjMyLTAuMDQ4Yy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMgoJCQkJYy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMmMtNC40MTgsMC04LTMuNTgyLTgtOHYtOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04CgkJCQlzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LTMuNTgyLTgtOHYtMTguNzZjLTAuMTMxLTExLjk2Mi01LjY0LTIzLjIzLTE1LTMwLjY4Yy00Ny43ODgtMzkuMjc0LTU0LjY4OS0xMDkuODUyLTE1LjQxNS0xNTcuNjQKCQkJCWMyMi40NjYtMjcuMzM2LDU2LjUyOC00Mi40NDgsOTEuODcxLTQwLjc2YzU5LjEwNywzLjUxNiwxMDUuNTM2LDUxLjk1NywxMDYuNTQ0LDExMS4xNmMwLjI4NywzNC4wNTItMTUuMDI0LDY2LjM2My00MS41Niw4Ny43MDQKCQkJCWMtOS4yOSw3LjY1Mi0xNC42MDIsMTkuMTA5LTE0LjQ0LDMxLjE0NFYzMjhjMCw0LjQxOC0zLjU4Miw4LTgsOGgtMjRjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMTZ2OAoJCQkJYzAsNC40MTgtMy41ODIsOC04LDhoLThjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoOGM0LjQxOCwwLDgsMy41ODIsOCw4cy0zLjU4Miw4LTgsOGgtOGMtNC40MTgsMC04LDMuNTgyLTgsOAoJCQkJczMuNTgyLDgsOCw4aDhjNC40MTgsMCw4LDMuNTgyLDgsOHMtMy41ODIsOC04LDhoLTQwYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMwLjYzMgoJCQkJYy00LjQxNywxMi40OTctMTguMTI5LDE5LjA0Ny0zMC42MjYsMTQuNjNjLTMuODI2LTEuMzUyLTcuMjQ2LTMuNjUzLTkuOTQyLTYuNjg2Yy0yLjkzOC0zLjMtNy45OTYtMy41OTQtMTEuMjk2LTAuNjU2CgkJCQljLTMuMywyLjkzOC0zLjU5NCw3Ljk5Ni0wLjY1NiwxMS4yOTZjMTQuNjMxLDE2LjQ4NywzOS44NTcsMTcuOTkyLDU2LjM0NCwzLjM2MmM2LjgxLTYuMDQzLDExLjM0OS0xNC4yMzIsMTIuODY0LTIzLjIxCgkJCQljMTIuNTI5LTMuOTE2LDE5LjUxMS0xNy4yNDcsMTUuNTk2LTI5Ljc3NmMtMS4wNC0zLjMyOS0yLjgwMS02LjM4OC01LjE1Ni04Ljk2YzguMzItOS4wNDQsOC4zMi0yMi45NTYsMC0zMgoJCQkJYzMuOTk1LTQuMzczLDYuMjE5LTEwLjA3Nyw2LjI0LTE2di05LjQ3MmM5LjU1NS0zLjM3OCwxNS45NTgtMTIuMzk0LDE2LTIyLjUyOHYtMTcuODMyYy0wLjEwNy03LjE4NywzLjAwNy0xNC4wNDYsOC40ODgtMTguNjk2CgkJCQljMzAuMzQ0LTI0LjM5NSw0Ny44NS02MS4zMzksNDcuNTEyLTEwMC4yNzJDMzY2Ljg0NywxMjMuNTMyLDMxMy43NzcsNjguMTY5LDI0Ni4yMTksNjQuMTUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Qfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjU1Ljk5OSwwYy03OS4wNDQsMC0xNDMuMzUyLDY0LjMwOC0xNDMuMzUyLDE0My4zNTN2NzAuMTkzYzAsNC43OCwzLjg3OSw4LjY1Niw4LjY1OSw4LjY1Nmg0OC4wNTcKCQkJYzQuNzgsMCw4LjY1Ni0zLjg3Niw4LjY1Ni04LjY1NnYtNzAuMTkzYzAtNDIuOTk4LDM0Ljk4MS03Ny45OCw3Ny45NzktNzcuOThzNzcuOTc5LDM0Ljk4Miw3Ny45NzksNzcuOTh2NzAuMTkzCgkJCWMwLDQuNzgsMy44OCw4LjY1Niw4LjY2MSw4LjY1Nmg0OC4wNTdjNC43OCwwLDguNjU2LTMuODc2LDguNjU2LTguNjU2di03MC4xOTNDMzk5LjM1Miw2NC4zMDgsMzM1LjA0NCwwLDI1NS45OTksMHoKCQkJIE0zODIuMDQsMjA0Ljg5aC0zMC43NDh2LTYxLjUzN2MwLTUyLjU0NC00Mi43NDgtOTUuMjkyLTk1LjI5MS05NS4yOTJzLTk1LjI5MSw0Mi43NDgtOTUuMjkxLDk1LjI5MnY2MS41MzdoLTMwLjc0OHYtNjEuNTM3CgkJCWMwLTY5LjQ5OSw1Ni41NC0xMjYuMDQsMTI2LjAzOC0xMjYuMDRjNjkuNDk5LDAsMTI2LjA0LDU2LjU0MSwxMjYuMDQsMTI2LjA0VjIwNC44OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDEwLjYzLDIwNC44OUgxMDEuMzcxYy0yMC41MDUsMC0zNy4xODgsMTYuNjgzLTM3LjE4OCwzNy4xODh2MjMyLjczNGMwLDIwLjUwNSwxNi42ODMsMzcuMTg4LDM3LjE4OCwzNy4xODhINDEwLjYzCgkJCWMyMC41MDUsMCwzNy4xODctMTYuNjgzLDM3LjE4Ny0zNy4xODlWMjQyLjA3OEM0NDcuODE3LDIyMS41NzMsNDMxLjEzNSwyMDQuODksNDEwLjYzLDIwNC44OXogTTQzMC41MDUsNDc0LjgxMQoJCQljMCwxMC45Ni04LjkxNiwxOS44NzYtMTkuODc1LDE5Ljg3NkgxMDEuMzcxYy0xMC45NiwwLTE5Ljg3Ni04LjkxNi0xOS44NzYtMTkuODc2VjI0Mi4wNzhjMC0xMC45Niw4LjkxNi0xOS44NzYsMTkuODc2LTE5Ljg3NgoJCQlINDEwLjYzYzEwLjk1OSwwLDE5Ljg3NSw4LjkxNiwxOS44NzUsMTkuODc2VjQ3NC44MTF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI4NS4xMSwzNjkuNzgxYzEwLjExMy04LjUyMSwxNS45OTgtMjAuOTc4LDE1Ljk5OC0zNC4zNjVjMC0yNC44NzMtMjAuMjM2LTQ1LjEwOS00NS4xMDktNDUuMTA5CgkJCWMtMjQuODc0LDAtNDUuMTEsMjAuMjM2LTQ1LjExLDQ1LjEwOWMwLDEzLjM4Nyw1Ljg4NSwyNS44NDQsMTYsMzQuMzY3bC05LjczMSw0Ni4zNjJjLTAuNTM1LDIuNTU0LDAuMTA4LDUuMjExLDEuNzUyLDcuMjM2CgkJCWMxLjY0NSwyLjAyMyw0LjExMywzLjIsNi43MiwzLjJoNjAuNzM4YzIuNjA4LDAsNS4wNzYtMS4xNzYsNi43MTktMy4yYzEuNjQzLTIuMDI2LDIuMjg2LTQuNjgzLDEuNzUxLTcuMjM0TDI4NS4xMSwzNjkuNzgxegoJCQkgTTI3MC44NTEsMzU4LjgyYy0zLjA0LDEuOTM2LTQuNTY1LDUuNTUzLTMuODI0LDkuMDgxbDguNjgsNDEuMzY2aC0zOS40MTVsOC42ODItNDEuMzYzYzAuNzQtMy41MjktMC43ODItNy4xNDYtMy44MjQtOS4wODEKCQkJYy04LjEwOC01LjE2LTEyLjk0OC0xMy45MTEtMTIuOTQ4LTIzLjQwNmMwLTE1LjMyNywxMi40NjktMjcuNzk2LDI3Ljc5Ny0yNy43OTZjMTUuMzI3LDAsMjcuNzk2LDEyLjQ2OSwyNy43OTYsMjcuNzk2CgkJCUMyODMuNzk3LDM0NC45MTQsMjc4Ljk1NywzNTMuNjYzLDI3MC44NTEsMzU4LjgyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Ufe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk0LjkzMzU5NCAwaC00NzcuODY3MTg4Yy05LjQyMTg3NS4wMDc4MTI1LTE3LjA1ODU5MzUgNy42NDQ1MzEtMTcuMDY2NDA2IDE3LjA2NjQwNnY1OS43MzQzNzVjLjAwNzgxMjUgOS40MjE4NzUgNy42NDQ1MzEgMTcuMDU0Njg4IDE3LjA2NjQwNiAxNy4wNjY0MDdoMTAuODk0NTMybC0yNi44MzU5MzggNDYuOTY0ODQzYy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE5NTMxIDEuNTI3MzQ0IDIuNjI4OTA3IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45NjQ4NDRjLTEuNTA3ODEyIDIuNjQwNjI1LTEuNSA1Ljg4NjcxOS4wMjczNDQgOC41MTU2MjUgMS41MjczNDQgMi42MzI4MTMgNC4zMzk4NDQgNC4yNSA3LjM4MjgxMiA0LjI1aDE5LjQyNTc4MmwtMjYuODM1OTM4IDQ2Ljk2ODc1Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODI4MTMuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjI4OTA2IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNyA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEyIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNTM5MDZoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEzIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNiA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoNDk0LjkyOTY4OGMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDk0IDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MTcxODcgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYyODkwNiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45NjQ4NDRoMTkuNDI1NzgyYzMuMDQyOTY4LS4wMDM5MDYgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNTM5MDYgMS41MjczNDQtMi42Mjg5MDYgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY0ODQ0aDE5LjQyNTc4MmMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDkzIDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYzMjgxMiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45Njg3NWgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYxNzE4NyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjI4OTA2IDEuNTM1MTU2LTUuODc1LjAyNzM0NC04LjUxNTYyNWwtMjYuODM1OTM4LTQ2Ljk2NDg0NGgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYyMTA5MyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjMyODEyIDEuNTM1MTU2LTUuODc4OTA2LjAyNzM0NC04LjUxOTUzMWwtMjYuODM1OTM4LTQ2Ljk2NDg0M2gxMC44OTQ1MzJjOS40MjE4NzUtLjAxMTcxOSAxNy4wNTQ2ODctNy42NDQ1MzIgMTcuMDY2NDA2LTE3LjA2NjQwN3YtNTkuNzM0Mzc1Yy0uMDExNzE5LTkuNDIxODc1LTcuNjQ0NTMxLTE3LjA1NDY4NzItMTcuMDY2NDA2LTE3LjA2NjQwNnptLTQ0Ny4zMTY0MDYgOTMuODY3MTg4aDQ2LjI1djQyLjY2Nzk2OGgtNzAuNjI4OTA3em0zMTkuMzE2NDA2IDB2NDIuNjY3OTY4aC0yMjEuODY3MTg4di00Mi42Njc5Njh6bTY4LjI2NTYyNSAwdjQyLjY2Nzk2OGgtMTcuMDY2NDA3di00Mi42Njc5Njh6bS0yOTAuMTMyODEzIDM0MS4zMzIwMzF2LTQyLjY2NDA2M2gyMjEuODY3MTg4djQyLjY2NDA2M3ptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY3OTY5aC0yMjEuODY3MTg4di00Mi42Njc5Njl6bTAtMjU2aC0yMjEuODY3MTg4di00Mi42NjQwNjNoMjIxLjg2NzE4OHptMTcuMDY2NDA2LTQyLjY2NDA2M2gxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bS0yMzguOTMzNTk0IDE2Mi4xMzI4MTN2LTQyLjY2Nzk2OWgyMjEuODY3MTg4djQyLjY2Nzk2OXptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY0MDYzaC0yMjEuODY3MTg4di00Mi42NjQwNjN6bS0yMjEuODY3MTg4LTc2LjgwMDc4MXYtNDIuNjY3OTY5aDIyMS44NjcxODh2NDIuNjY3OTY5em0tMTcuMDY2NDA2LTU5LjczNDM3NWgtMTcuMDY2NDA2di00Mi42NjQwNjNoMTcuMDY2NDA2em0wIDE3LjA2NjQwNnY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0yNTYgMGgxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bTAtMTcuMDcwMzEydi00Mi42NjQwNjNoMTcuMDY2NDA2djQyLjY2NDA2M3ptMC01OS43MzA0Njl2LTQyLjY2Nzk2OWgxNy4wNjY0MDZ2NDIuNjY3OTY5em0wLTU5LjczNDM3NXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTM0LjEzMjgxMi00Mi42Njc5NjloMTcuMDY2NDA3djQyLjY2Nzk2OWgtMTcuMDY2NDA3em0wLTE3LjA2NjQwNnYtNDIuNjY0MDYzaDE3LjA2NjQwN3Y0Mi42NjQwNjN6bS0xNy4wNjY0MDYtNTkuNzMwNDY5aC0xNy4wNjY0MDZ2LTQyLjY2Nzk2OGgxNy4wNjY0MDZ6bS0yNzMuMDY2NDA2IDBoLTE3LjA2NjQwNnYtNDIuNjY3OTY4aDE3LjA2NjQwNnptLTgwLjM4MjgxMiAxNy4wNjY0MDZoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzMwNDY5aDQ2LjI1djQyLjY2Nzk2OWgtNzAuNjI4OTA3em0wIDU5LjczNDM3NWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptMCA1OS43MzQzNzVoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzM0Mzc1aDQ2LjI1djQyLjY2NDA2M2gtNzAuNjI4OTA3em0wIDU5LjczMDQ2OWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptNjMuMzE2NDA2IDQyLjY2Nzk2OXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTI3My4wNjY0MDYgMHYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTEwNC43NTc4MTIgMGgtNzAuNjI1di00Mi42Njc5NjloNDYuMjV6bTAtNTkuNzM0Mzc1aC03MC42MjV2LTQyLjY2NDA2M2g0Ni4yNXptMC01OS43MzQzNzVoLTcwLjYyNXYtNDIuNjY0MDYzaDQ2LjI1em0wLTU5LjczMDQ2OWgtNzAuNjI1di00Mi42Njc5NjloMTcuMDY2NDA3djE3LjA2NjQwNmMwIDQuNzE0ODQ0IDMuODIwMzEyIDguNTM1MTU3IDguNTM1MTU2IDguNTM1MTU3IDQuNzEwOTM3IDAgOC41MzEyNS0zLjgyMDMxMyA4LjUzMTI1LTguNTM1MTU3di0xNy4wNjY0MDZoMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42Njc5NjloMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42NjQwNjNoMTIuMTE3MTg3em0wLTU5LjczMDQ2OWgtMzYuNDkyMTg3di00Mi42Njc5NjhoMTIuMTE3MTg3em0tMTkuNDI1NzgxLTU5LjczNDM3NWgtNDUyLjI2NTYyNXYtNTkuNzM0Mzc1aDQ3Ny44NjcxODhsLjAwNzgxMiA1OS43MzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01OS43MzQzNzUgNDIuNjY3OTY5aC0xNy4wNjY0MDZjLTQuNzE0ODQ0IDAtOC41MzUxNTcgMy44MjAzMTItOC41MzUxNTcgOC41MzEyNSAwIDQuNzE0ODQzIDMuODIwMzEzIDguNTM1MTU2IDguNTM1MTU3IDguNTM1MTU2aDE3LjA2NjQwNmM0LjcxMDkzNyAwIDguNTMxMjUtMy44MjAzMTMgOC41MzEyNS04LjUzNTE1NiAwLTQuNzEwOTM4LTMuODIwMzEzLTguNTMxMjUtOC41MzEyNS04LjUzMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ1LjA2NjQwNiA0Mi42Njc5NjloLTUxLjE5OTIxOGMtNC43MTQ4NDQgMC04LjUzNTE1NyAzLjgyMDMxMi04LjUzNTE1NyA4LjUzMTI1IDAgNC43MTQ4NDMgMy44MjAzMTMgOC41MzUxNTYgOC41MzUxNTcgOC41MzUxNTZoNTEuMTk5MjE4YzQuNzE0ODQ0IDAgOC41MzUxNTYtMy44MjAzMTMgOC41MzUxNTYtOC41MzUxNTYgMC00LjcxMDkzOC0zLjgyMDMxMi04LjUzMTI1LTguNTM1MTU2LTguNTMxMjV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",$fe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMjQzLjc4M2MtLjk1MSAwLTEuODY4LjE0MS0yLjczOS4zODlsLS4wMDItLjAwNy0yOC43MjIgOC4xODdjLTUuMzExIDEuNTE0LTguMzkgNy4wNDctNi44NzYgMTIuMzU4IDEuMjUzIDQuMzk2IDUuMjU4IDcuMjYxIDkuNjEyIDcuMjYxLjkwNyAwIDEuODMtLjEyNSAyLjc0Ni0uMzg1bDE1Ljk4MS00LjU1NHYzNS40MmwtMTI0IDM1LjM0NXYtMzUuNDJsMjEuNDY0LTYuMTE4YzUuMzExLTEuNTE0IDguMzktNy4wNDcgNi44NzYtMTIuMzU4cy03LjA0NS04LjM4Ny0xMi4zNTgtNi44NzZsLTI4LjcyMyA4LjE4Ny4wMDEuMDA3Yy00LjE4OSAxLjE5My03LjI2IDUuMDM5LTcuMjYgOS42MXYxMjcuMTk5Yy04LjM2My02LjI5My0xOC43NTItMTAuMDI4LTMwLTEwLjAyOC0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDA2bDEyNC0zNS4zNDV2NTcuNzMzYy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xNjcuMTcyYzAtNS41MjMtNC40NzctMTAtMTAtMTB6bS0xODQgMjQ4LjIxN2MtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xNDQtNDEuMDQ1Yy0xNi41NDIgMC0zMC0xMy40NTgtMzAtMzBzMTMuNDU4LTMwIDMwLTMwIDMwIDEzLjQ1OCAzMCAzMC0xMy40NTggMzAtMzAgMzB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUwOC4wMTMgMi4wMWMtMi41MTEtMS44ODktNS43NjMtMi40ODctOC43ODItMS42MTlsLTEwNC40MDggMzAuMDg5Yy00LjI4MiAxLjIzNC03LjIzMSA1LjE1Mi03LjIzMSA5LjYwOXYxMjcuMTk5Yy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDNsOTcuMTc3LTI4LjAwNWM0LjI4Mi0xLjIzNCA3LjIzMS01LjE1MiA3LjIzMS05LjYwOXYtNTYuMjE3YzAtMy4xNDItMS40NzctNi4xMDEtMy45ODctNy45OXptLTE1MC40MjEgMjM1LjI1MWMtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xMzQuNDA4LTE3OC41NjktODQuNDA4IDI0LjMyNXYtMzUuNDAzbDg0LjQwOC0yNC4zMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MS41OTEgMzQ4Ljc2Mi00OC4yODgtNy4wMTctMjEuNTk1LTQzLjc1NmMtMS42ODUtMy40MTMtNS4xNjEtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0yMS41OTUgNDMuNzU2LTQ4LjI4OCA3LjAxN2MtMy43NjcuNTQ3LTYuODk2IDMuMTg2LTguMDczIDYuODA2cy0uMTk1IDcuNTk0IDIuNTMxIDEwLjI1MWwzNC45NDEgMzQuMDYtOC4yNDkgNDguMDkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNiA3LjE2MiAyLjUzMiAxMC41MzEuNzYxbDQzLjE5LTIyLjcwNyA0My4xOSAyMi43MDZjMS40NjMuNzcgMy4wNjEgMS4xNDkgNC42NTIgMS4xNDkgMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzNyA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtOC4yNDktNDguMDkzIDM0Ljk0MS0zNC4wNmMyLjcyNi0yLjY1NyAzLjcwNy02LjYzMSAyLjUzMS0xMC4yNTFzLTQuMzA0LTYuMjU4LTguMDcxLTYuODA1em0tNDcuMTI0IDQwLjQ2NGMtMi4zNTcgMi4yOTctMy40MzMgNS42MDctMi44NzYgOC44NTFsNS43MTIgMzMuMzA0LTI5LjkwOS0xNS43MjRjLTIuOTEzLTEuNTMyLTYuMzkzLTEuNTMyLTkuMzA3IDBsLTI5LjkwOSAxNS43MjQgNS43MTItMzMuMzA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MWwtMjQuMTk2LTIzLjU4NiAzMy40MzktNC44NTljMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDE0Ljk1NS0zMC4zMDEgMTQuOTU0IDMwLjMwMWMxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDMzLjQzOSA0Ljg1OXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjIgOTAuNzA2LTYuNjIgMzguNTkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNyA3LjE2MyAyLjUzMyAxMC41MzEuNzYxbDM0LjY1OC0xOC4yMjEgMzQuNjU5IDE4LjIyMWMxLjQ2My43NjkgMy4wNjEgMS4xNDggNC42NTIgMS4xNDggMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzOCA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtNi42Mi0zOC41OTMgMjguMDQtMjcuMzMxYzIuNzI2LTIuNjU3IDMuNzA3LTYuNjMxIDIuNTMxLTEwLjI1MXMtNC4zMDYtNi4yNTgtOC4wNzMtNi44MDZsLTM4Ljc1LTUuNjMxLTE3LjMyOC0zNS4xMTJjLTEuNjg0LTMuNDEzLTUuMTYtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0xNy4zMjkgMzUuMTEzLTM4Ljc1IDUuNjMxYy0zLjc2Ny41NDctNi44OTYgMy4xODYtOC4wNzMgNi44MDZzLS4xOTUgNy41OTQgMi41MzEgMTAuMjUxem0yNC4zMy0zMC45ODNjMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDEwLjY4OC0yMS42NTcgMTAuNjg4IDIxLjY1N2MxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDIzLjkgMy40NzMtMTcuMjkyIDE2Ljg1OGMtMi4zNTcgMi4yOTgtMy40MzMgNS42MDgtMi44NzYgOC44NTJsNC4wODMgMjMuODA0LTIxLjM3Ny0xMS4yMzhjLTEuNDU3LS43NjYtMy4wNTUtMS4xNDktNC42NTMtMS4xNDktMS41OTkgMC0zLjE5Ny4zODMtNC42NTMgMS4xNDlsLTIxLjM3NyAxMS4yMzggNC4wODMtMjMuODA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MmwtMTcuMjk2LTE2Ljg1OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0IDg2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMTU2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzQgMTI2LjMwNmgtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoMTBjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NCAxNDYuMzA2aDEwYzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwaC0xMGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3NyAxMCAxMCAxMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYyIDI4NC4zMWMyLjYzIDAgNS4yMS0xLjA3IDcuMDctMi45M3MyLjkzLTQuNDQgMi45My03LjA3YzAtMi42NC0xLjA3LTUuMjEtMi45My03LjA4LTEuODYtMS44Ni00LjQ0LTIuOTItNy4wNy0yLjkycy01LjIxIDEuMDYtNy4wNyAyLjkyYy0xLjg2IDEuODctMi45MyA0LjQ0LTIuOTMgNy4wOCAwIDIuNjMgMS4wNyA1LjIxIDIuOTMgNy4wN3M0LjQ0IDIuOTMgNy4wNyAyLjkzeiIvPgogICAgPC9nPgo8L3N2Zz4=",Pfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwNS40IDUwNS40Ij4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzNy4xLDIzMy40NWMxNC44LTEwLjQsMjQuNi0yNy43LDI0LjYtNDcuMmMwLTMxLjktMjUuOC01Ny43LTU3LjctNTcuN2MtMzEuOSwwLTU3LjcsMjUuOC01Ny43LDU3LjcKCQkJYzAsMTkuNSw5LjcsMzYuOCwyNC42LDQ3LjJjLTEyLjcsNC40LTI0LjMsMTEuMi0zNC4xLDIwYy0xMy41LTExLjUtMjkuNC0yMC4zLTQ2LjgtMjUuNWMyMS4xLTEyLjgsMzUuMy0zNi4xLDM1LjMtNjIuNgoJCQljMC00MC40LTMyLjctNzMuMS03My4xLTczLjFjLTQwLjQsMC03My4xLDMyLjgtNzMuMSw3My4xYzAsMjYuNSwxNC4xLDQ5LjgsMzUuMyw2Mi42Yy0xNy4yLDUuMi0zMi45LDEzLjktNDYuMywyNS4yCgkJCWMtOS44LTguNi0yMS4yLTE1LjMtMzMuNy0xOS42YzE0LjgtMTAuNCwyNC42LTI3LjcsMjQuNi00Ny4yYzAtMzEuOS0yNS44LTU3LjctNTcuNy01Ny43cy01Ny43LDI1LjgtNTcuNyw1Ny43CgkJCWMwLDE5LjUsOS43LDM2LjgsMjQuNiw0Ny4yQzI4LjUsMjQ3LjI1LDAsMjg0Ljk1LDAsMzI5LjI1djYuNmMwLDAuMiwwLjIsMC40LDAuNCwwLjRoMTIyLjNjLTAuNyw1LjUtMS4xLDExLjItMS4xLDE2Ljl2Ni44CgkJCWMwLDI5LjQsMjMuOCw1My4yLDUzLjIsNTMuMmgxNTVjMjkuNCwwLDUzLjItMjMuOCw1My4yLTUzLjJ2LTYuOGMwLTUuNy0wLjQtMTEuNC0xLjEtMTYuOUg1MDVjMC4yLDAsMC40LTAuMiwwLjQtMC40di02LjYKCQkJQzUwNS4yLDI4NC44NSw0NzYuOCwyNDcuMTUsNDM3LjEsMjMzLjQ1eiBNMzYyLjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43CgkJCWMwLDIyLjctMTguMyw0MS4yLTQwLjksNDEuN2MtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzM4MC41LDIyNy40NSwzNjIuMywyMDguOTUsMzYyLjMsMTg2LjE1eiBNMTk0LjksMTY1LjM1CgkJCWMwLTMxLjUsMjUuNi01Ny4xLDU3LjEtNTcuMXM1Ny4xLDI1LjYsNTcuMSw1Ny4xYzAsMzAuNC0yMy45LDU1LjMtNTMuOCw1N2MtMS4xLDAtMi4yLDAtMy4zLDBjLTEuMSwwLTIuMiwwLTMuMywwCgkJCUMyMTguOCwyMjAuNjUsMTk0LjksMTk1Ljc1LDE5NC45LDE2NS4zNXogTTU5LjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43YzAsMjIuNy0xOC4zLDQxLjItNDAuOSw0MS43CgkJCWMtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzc3LjYsMjI3LjQ1LDU5LjMsMjA4Ljk1LDU5LjMsMTg2LjE1eiBNMTI1LjUsMzIwLjE1SDE2LjJjNC41LTQyLjYsNDAuNS03Niw4NC4yLTc2LjMKCQkJYzAuMiwwLDAuNCwwLDAuNiwwczAuNCwwLDAuNiwwYzIwLjgsMC4xLDM5LjgsNy44LDU0LjUsMjAuM0MxNDEuNywyNzkuNzUsMTMxLDI5OC45NSwxMjUuNSwzMjAuMTV6IE0zNjYuOCwzNTkuOTUKCQkJYzAsMjAuNS0xNi43LDM3LjItMzcuMiwzNy4yaC0xNTVjLTIwLjUsMC0zNy4yLTE2LjctMzcuMi0zNy4ydi02LjhjMC02Mi4xLDQ5LjYtMTEyLjksMTExLjMtMTE0LjdjMS4xLDAuMSwyLjMsMC4xLDMuNCwwLjEKCQkJczIuMywwLDMuNC0wLjFjNjEuNywxLjgsMTExLjMsNTIuNiwxMTEuMywxMTQuN1YzNTkuOTV6IE0zNzguNywzMjAuMTVjLTUuNS0yMS4xLTE2LTQwLTMwLjMtNTUuNmMxNC44LTEyLjgsMzQtMjAuNSw1NS0yMC43CgkJCWMwLjIsMCwwLjQsMCwwLjYsMHMwLjQsMCwwLjYsMGM0My43LDAuMyw3OS43LDMzLjcsODQuMiw3Ni4zSDM3OC43eiIvPgogICAgPC9nPgo8L3N2Zz4K",Wfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Bfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAxNjBoLTMydi04MGMwLTguODIyLTcuMTc4LTE2LTE2LTE2aC0zMnYtNDBjMC0xMy4yMzMtMTAuNzY3LTI0LTI0LTI0aC0yMjRjLTEzLjIzMyAwLTI0IDEwLjc2Ny0yNCAyNHY0MGgtMzJjLTguODIyIDAtMTYgNy4xNzgtMTYgMTZ2ODBoLTMyYy0yMi4wNTYgMC00MCAxNy45NDQtNDAgNDB2MTc2YzAgMjIuMDU2IDE3Ljk0NCA0MCA0MCA0MGg4MHY3MmMwIDEzLjIzMyAxMC43NjcgMjQgMjQgMjRoMjI0YzEzLjIzMyAwIDI0LTEwLjc2NyAyNC0yNHYtNzJoODBjMjIuMDU2IDAgNDAtMTcuOTQ0IDQwLTQwdi0xNzZjMC0yMi4wNTYtMTcuOTQ0LTQwLTQwLTQwem0tNDgtODB2ODBoLTMydi04MHptLTI4OC01NmMwLTQuNDExIDMuNTg5LTggOC04aDIyNGM0LjQxMSAwIDggMy41ODkgOCA4djEzNmgtMjQwYzAtMS42MzUgMC0xMzAuMjExIDAtMTM2em0tNDggNTZoMzJ2ODBoLTMyem0yODggNDA4YzAgNC40MTEtMy41ODkgOC04IDhoLTIyNGMtNC40MTEgMC04LTMuNTg5LTgtOHYtMTM2aDI0MHptMTIwLTExMmMwIDEzLjIzMy0xMC43NjcgMjQtMjQgMjRoLTgwdi00OGgxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOGMtMjguNjU3IDAtMjkwLjg4MyAwLTMwNCAwLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDhoMTZ2NDhoLTgwYy0xMy4yMzMgMC0yNC0xMC43NjctMjQtMjR2LTE3NmMwLTEzLjIzMyAxMC43NjctMjQgMjQtMjRoNDMyYzEzLjIzMyAwIDI0IDEwLjc2NyAyNCAyNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDU2IDE5MmMtMTMuMjMzIDAtMjQgMTAuNzY3LTI0IDI0czEwLjc2NyAyNCAyNCAyNCAyNC0xMC43NjcgMjQtMjQtMTAuNzY3LTI0LTI0LTI0em0wIDMyYy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTIgMTkyYy0xMy4yMzMgMC0yNCAxMC43NjctMjQgMjRzMTAuNzY3IDI0IDI0IDI0IDI0LTEwLjc2NyAyNC0yNC0xMC43NjctMjQtMjQtMjR6bTAgMzJjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCAzNzZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0MTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0NTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Jfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NzMuNTc0IDI1Mi40MzJoLTczLjE4NHYtNDMuNzYxYzAtMTEuNDczLTkuMzM0LTIwLjgwNy0yMC44MDctMjAuODA3LTkuODg2IDAtMzQuMjk1IDAtNDQuMzAyIDB2LTE3Ljg0MWMwLTEyLjM5OS0xMC4wODctMjIuNDg2LTIyLjQ4Ni0yMi40ODZoLTE3LjU5NWwxNC43MjQtNDcuNTM1YzE2Ljc1OS42OTIgMzAuNTM5LTEyLjc1IDMwLjUzOS0yOS4yODQgMC0xNi4xNjQtMTMuMTUxLTI5LjMxNS0yOS4zMTUtMjkuMzE1LTI5LjI2OCAwLTQwLjQ1NSAzOC41MS0xNS41NDEgNTQuMTU0bC0xNi4xMDEgNTEuOTc5aC0zMC4xMzNjLTEwLjU3NiAwLTE5LjgzMSA3LjUxNC0yMi4wMDYgMTcuODY2LS4xMDYuNTA3LS4xNiAxLjAyNC0uMTYgMS41NDJ2MjAuOTE5aC0zOC4xNDZ2LTE4LjgwMWMwLTguNjczLTcuMDU3LTE1LjczLTE1LjczLTE1LjczaC0xLjM3OXYtMTkuNTcyYzkuNDY5LS4yMDMgMTcuMTEzLTcuOTUzIDE3LjExMy0xNy40N3YtMTUuNjE2YzAtOS41MTctNy42NDQtMTcuMjY3LTE3LjExMy0xNy40N3YtNDMuNjk5YzAtMjEuNjk1LTE3LjY1LTM5LjM0Ni0zOS4zNDYtMzkuMzQ2aC01MS42NzdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NXMzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg1MS42NzhjMTMuNDI5IDAgMjQuMzU1IDEwLjkyNiAyNC4zNTUgMjQuMzU1djQzLjY4MmgtMzcuOTU3di0yMi41ODRjMC00LjE0LTMuMzU2LTcuNDk1LTcuNDk1LTcuNDk1aC05Ni4ydi0zNy45NTdoMzUuNjM4YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTUtNy40OTUtNy40OTUtNy40OTVoLTQzLjEzM2MtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djUyLjk0N2MwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoOTYuMnYxNS4xMDljLTkuNDY4LjIwMy0xNy4xMTIgNy45NTQtMTcuMTEyIDE3LjQ3djE1LjYxNmMwIDkuNTE2IDcuNjQ0IDE3LjI2NyAxNy4xMTIgMTcuNDd2MTkuNTcyaC0xLjM3OWMtOC42NzMgMC0xNS43MyA3LjA1Ny0xNS43MyAxNS43M3YxOC44MDFoLTIyLjU1NWMtMTEuNDczIDAtMjAuODA3IDkuMzM0LTIwLjgwNyAyMC44MDd2Mi40ODlsLTMzLjQwMiA3LjU4OWMtMy40MTMuNzc1LTUuODM1IDMuODA5LTUuODM1IDcuMzA5djEwNy4yNDNjMCAzLjQ5OSAyLjQyMSA2LjUzMyA1LjgzMyA3LjMwOGwzMy40MDQgNy41OTh2Mi40ODdjMCAxMS40NzMgOS4zMzQgMjAuODA3IDIwLjgwNyAyMC44MDdoNi40MjR2MjcuNzk5aC0xNS4xMjdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NSAwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoMzMzLjg0OWMxLjM3OCAwIDIuNDk4IDEuMTIxIDIuNDk4IDIuNDk4djI1LjUyYy0xNS44MzYtMi44My0zMi40MTguMTAzLTQ2LjcwNyA4LjgxMS0xNi43NTQgMTAuMjExLTM3LjU3IDEwLjIxMi01NC4zMjQgMC0yMS41NjctMTMuMTQ0LTQ4LjM2MS0xMy4xNDUtNjkuOTI4IDAtMTYuNzU0IDEwLjIxMS0zNy41NyAxMC4yMTItNTQuMzI0IDAtMjEuNTY3LTEzLjE0NC00OC4zNjEtMTMuMTQ1LTY5LjkyOCAwLTE2Ljc1NCAxMC4yMTItMzcuNTcgMTAuMjEyLTU0LjMyNCAwbC0yNy40NjktMTYuNzQydi0yMC4wODdoMTAuNjc2YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTYtNy40OTUtNy40OTUtNy40OTVoLTE4LjE3MmMtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djk3LjU0OWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDQ5Ny4wMDljNC4xNCAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1IDAtODguNTA2IDAtMTE4LjAwOSAwLTIxMy40ODcuMDAxLTIxLjE4OC0xNy4yMzctMzguNDI2LTM4LjQyNS0zOC40MjZ6bS0xNjIuNDI1LTE5Ni4wMzdjNy44OTggMCAxNC4zMjUgNi40MjYgMTQuMzI1IDE0LjMyNHMtNi40MjYgMTQuMzI1LTE0LjMyNSAxNC4zMjVjLTcuODk4IDAtMTQuMzI0LTYuNDI2LTE0LjMyNC0xNC4zMjVzNi40MjYtMTQuMzI0IDE0LjMyNC0xNC4zMjR6bS0yNjcuNjA0IDI3Ni40NC0yNC4yNDctNS41MTV2LTk1LjI3N2wyNC4yNDctNS41MDl6bTE5OC42NTMtMTY0Ljk3NGMuOTQ3LTMuMTI1IDMuODY3LTUuMzMzIDcuMTc2LTUuMzMzaDYzLjQyYzQuMTMzIDAgNy40OTUgMy4zNjIgNy40OTUgNy40OTV2MTcuODQxaC03OC4wOTF6bS0xNDAuMzA1LTUxLjU2OXYtMTUuNjE2YzAtMS4zNzggMS4xMjEtMi40OTggMi40OTgtMi40OThoNjcuMTg1YzEuMzc4IDAgMi40OTggMS4xMjEgMi40OTggMi40OTh2MTUuNjE2YzAgMS4zNzgtMS4xMjEgMi40OTgtMi40OTggMi40OThoLTY3LjE4NWMtMS4zNzcuMDAxLTIuNDk4LTEuMTItMi40OTgtMi40OTh6bTU1LjA2OSAxNy40ODl2MTkuNTUzaC0zNy45NTd2LTE5LjU1M3ptLTU1LjA2NiAzNS4yODNjMC0uNDA3LjMzMi0uNzM5LjczOS0uNzM5aDcwLjY5NmMuNDA3IDAgLjczOS4zMzIuNzM5LjczOXYxOC44MDFoLTcyLjE3NXYtMTguODAxem0tLjAwMyAzMy43OTFoMjQwLjE0OHYxNTMuNjU2aC0yNDAuMTQ4em0tMzcuNTQyIDE1My42NTZjLTMuMjA3IDAtNS44MTYtMi42MDktNS44MTYtNS44MTZ2LTE0Mi4wMjNjMC0zLjIwNyAyLjYwOS01LjgxNiA1LjgxNi01LjgxNmgyMi41NTF2MTUzLjY1NmMtNS4yMTEtLjAwMS0xNy40ODgtLjAwMS0yMi41NTEtLjAwMXptMjk5LjM3MiA0Mi43OWgtMjc3Ljk1N3YtMjcuNzk5aDI3Ny45NTZ2MjcuNzk5em03LjQ5NS00Mi43OTRjLS4wMjkgMC0uMDU4LjAwNC0uMDg3LjAwNGgtMTQuMDk5di0xNTMuNjU2aDIyLjU1MWMzLjIwNyAwIDUuODE2IDIuNjA5IDUuODE2IDUuODE2djE0Mi4wMjRjMCAzLjIwNy0yLjYwOSA1LjgxNi01LjgxNiA1LjgxNmgtOC4yNzhjLS4wMjkgMC0uMDU4LS4wMDQtLjA4Ny0uMDA0em0xMjUuNzkxIDE0MC4zNDNjLTkuMzc5IDAtNDcxLjEwNyAwLTQ4Mi4wMTkgMHYtNDQuOTE2bDE5LjY2NyAxMS45ODdjMjEuNTY3IDEzLjE0NSA0OC4zNjEgMTMuMTQ1IDY5LjkyOCAwIDE2Ljc1NC0xMC4yMTEgMzcuNTctMTAuMjEyIDU0LjMyNCAwIDIxLjU2OCAxMy4xNDUgNDguMzYxIDEzLjE0NSA2OS45MjggMCAxNi43NTQtMTAuMjExIDM3LjU3LTEwLjIxMiA1NC4zMjQgMCAyMS41NjggMTMuMTQ1IDQ4LjM2MSAxMy4xNDUgNjkuOTI4IDAgMTcuMDk3LTEwLjQyMSAzNy45NDEtOS45ODYgNTQuMzI0IDAgMjEuNTY3IDEzLjE0NCA0OC4zNjIgMTMuMTQ0IDY5LjkyOCAwbDE5LjY2Ny0xMS45ODdjLjAwMSAxMC41NTYuMDAxIDIyLjM4LjAwMSA0NC45MTZ6bTAtNjIuNDcyYy0yOS43ODkgMTguMTU2LTMwLjM1MyAxOC44MzYtMzYuNTI3IDIxLjEzMnYtNDQuMjU3YzAtNC4xMzktMy4zNTYtNy40OTUtNy40OTUtNy40OTVzLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djQ3LjQyN2MtMTkuNDcyIDEuMTcyLTI4Ljk4NC03LjY4OC0zOC41MDYtMTEuODM2di0zMC4wNTRjMC05LjY0My03Ljg0Ni0xNy40ODktMTcuNDg5LTE3LjQ4OWgtMTAuNzgzdi0yNy43OTljMTMuMzQyIDAgMjEuNjc2LTEwLjA0OSAyMS42NzYtMjAuODA3di0zMS43NTVoNDUuMTAydjYyLjMzMWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1czcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1di02OS44MjZjMC00LjEzOS0zLjM1Ni03LjQ5NS03LjQ5NS03LjQ5NWgtNTIuNTk3di0zNi41MjdoNzMuMTg0YzEyLjkyMyAwIDIzLjQzNiAxMC41MTMgMjMuNDM2IDIzLjQzNXYxNDMuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxMS4wMjQgMjI3LjE1M2gtNzkuNzI2Yy00LjE0IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTV2OTAuMDdjMCA0LjE0IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDc5LjcyNmM0LjE0IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTV2LTkwLjA3Yy4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6bS03LjQ5NSA5MC4wN2gtNjQuNzM1di03NS4wNzloNjQuNzM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTIuNjM1IDI0MC45N2gtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1IDAgNC4xNCAzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg2NC41MDVjNC4xMzkgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NS4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMi42MzUgMjcyLjE4OGgtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1czMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDY0LjUwNWM0LjEzOSAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1cy0zLjM1NS03LjQ5NS03LjQ5NS03LjQ5NXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzEyLjYzNSAzMDMuNDA2aC02NC41MDVjLTQuMTM5IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTVzMy4zNTYgNy40OTUgNy40OTUgNy40OTVoNjQuNTA1YzQuMTM5IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTVzLTMuMzU1LTcuNDk1LTcuNDk1LTcuNDk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjEuODk5IDI4Ny4xNzloNy41NDhsLTIuOTA0IDcuNDMyYy0xLjUwNyAzLjg1NS4zOTcgOC4yMDIgNC4yNTMgOS43MDkuODk2LjM1IDEuODE5LjUxNiAyLjcyNi41MTYgMi45OTcgMCA1LjgyNi0xLjgwOSA2Ljk4My00Ljc2OWw2LjktMTcuNjU1Yy45MDItMi4zMDcuNjA2LTQuOTEtLjc5MS02Ljk1NXMtMy43MTMtMy4yNjgtNi4xOS0zLjI2OGgtNy41NDhsMi45MDQtNy40MzJjMS41MDctMy44NTUtLjM5Ny04LjIwMi00LjI1My05LjcwOS0zLjg1NS0xLjUwOS04LjIwMy4zOTYtOS43MDkgNC4yNTNsLTYuOSAxNy42NTVjLS45MDIgMi4zMDctLjYwNiA0LjkxLjc5MSA2Ljk1NSAxLjM5NiAyLjA0NCAzLjcxMyAzLjI2OCA2LjE5IDMuMjY4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Rfe="PHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTk0LjcyNyA3My43MDhhNi43NSA2Ljc1IDAgMSAwIDYuNzUgNi43NSA2Ljc1NiA2Ljc1NiAwIDAgMCAtNi43NS02Ljc1em0wIDEwYTMuMjUgMy4yNSAwIDEgMSAzLjI1LTMuMjUgMy4yNTQgMy4yNTQgMCAwIDEgLTMuMjUgMy4yNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuMDgxIDczLjcwOGE2Ljc1IDYuNzUgMCAxIDAgNi43NSA2Ljc1IDYuNzU3IDYuNzU3IDAgMCAwIC02Ljc1LTYuNzV6bTAgMTBhMy4yNSAzLjI1IDAgMSAxIDMuMjUtMy4yNSAzLjI1NCAzLjI1NCAwIDAgMSAtMy4yNSAzLjI1eiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjY0Ljk2NiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9Ijc3LjU5MSIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjkwLjIxNiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjEwMi44NDEiIGN5PSI0OC4wMjEiIHI9IjMiLz4KICAgICAgICA8cGF0aCBkPSJtMTIxLjUgMzMuNWgtMTE1YTEuNzUxIDEuNzUxIDAgMCAwIC0xLjc1IDEuNzV2NTcuNWExLjc1MSAxLjc1MSAwIDAgMCAxLjc1IDEuNzVoMTUuOTQydjguMjVhMS43NTEgMS43NTEgMCAwIDAgMS43NSAxLjc1aDEwYTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoNTYuMTE2djguMjVhMS43NSAxLjc1IDAgMCAwIDEuNzUgMS43NWgxMGExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoMTUuOTQyYTEuNzUxIDEuNzUxIDAgMCAwIDEuNzUtMS43NXYtNTcuNWExLjc1MSAxLjc1MSAwIDAgMCAtMS43NS0xLjc1em0tODkuMDU4IDY3LjVoLTYuNXYtNi41aDYuNXptNjkuNjE2IDBoLTYuNXYtNi41aDYuNXptMTcuNjkyLTEwaC0xMTEuNXYtNTRoMTExLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyLjY5MiA3NC4yNWExMC4yNSAxMC4yNSAwIDEgMCAtMTAuMjUtMTAuMjUgMTAuMjYxIDEwLjI2MSAwIDAgMCAxMC4yNSAxMC4yNXptLTEuNzUtMTYuNzYydjQuMDEyYTEuNzUgMS43NSAwIDAgMCAzLjUgMHYtNC4wMTJhNi43NSA2Ljc1IDAgMSAxIC0zLjUgMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjkyIDQ5Ljk1OGExLjc0OSAxLjc0OSAwIDAgMCAxLjc1LTEuNzV2LTNhMS43NSAxLjc1IDAgMCAwIC0zLjUgMHYzYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4Ljc5MiA1MS4zNTNhMS43NSAxLjc1IDAgMCAwIDIuMzM3LS44MTZsMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyLTEuNTJsLTEuMyAyLjdhMS43NSAxLjc1IDAgMCAwIC44MTUgMi4zMzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1LjA1MiA1NS45MTlhMS43NDggMS43NDggMCAwIDAgMS4wODgtLjM4bDIuMzQ4LTEuODY4YTEuNzUgMS43NSAwIDAgMCAtMi4xNzktMi43MzlsLTIuMzQ4IDEuODY4YTEuNzUgMS43NSAwIDAgMCAxLjA5MSAzLjEyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNC4yNTYgNTAuNTM3YTEuNzUgMS43NSAwIDEgMCAzLjE1Mi0xLjUyMWwtMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyIDEuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2LjkgNTMuNjcxIDIuMzQ5IDEuODY4YTEuNzUgMS43NSAwIDAgMCAyLjE3OC0yLjc0bC0yLjM0OC0xLjg2N2ExLjc1IDEuNzUgMCAxIDAgLTIuMTc5IDIuNzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Im01OC44MDggNzAuMjkyaDUwLjE5MmExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTEwYTEuNzUgMS43NSAwIDAgMCAtMS43NS0xLjc1aC01MC4xOTJhMS43NDkgMS43NDkgMCAwIDAgLTEuNzUgMS43NXYxMGExLjc1IDEuNzUgMCAwIDAgMS43NSAxLjc1em0xLjc1LTEwaDQ2LjY5MnY2LjVoLTQ2LjY5MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYuMTM1IDg3LjIwOGgzMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAtMy41aC0zMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAgMy41eiIvPgogICAgPC9nPgo8L3N2Zz4=",Ffe="PHN2ZyBoZWlnaHQ9IjYwMHB0IiB2aWV3Qm94PSItNDUgLTE5IDYwMCA2MDAuMDAxIiB3aWR0aD0iNjAwcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTguMjE0ODQ0IDBoLTUwLjk3NjU2M2MtMTguMTk1MzEyLjAyNzM0MzgtMzIuOTMzNTkzIDE0Ljc2OTUzMS0zMi45NjQ4NDMgMzIuOTY0ODQ0djI0Ljg3MTA5NGgtMTQ0LjgyNDIxOWMtNjEuNDM3NS4wOTM3NS0xMTIuMjUzOTA3IDQ3Ljg3MTA5My0xMTYuMTMyODEzIDEwOS4xODc1aC0zOS4wNjY0MDZjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40Njg3NS05Ljk4ODI4MSA5Ljk4ODI4MXYzMC41MTE3MTloLTEwLjI4NTE1N2MtMy43MDcwMzEgMC03LjEwNTQ2OCAyLjA0Njg3NC04LjgzNTkzNyA1LjMyODEyNGwtODUuNzY5NTMxIDE2Mi41NTQ2ODhjLTEuNjM2NzE5IDMuMDk3NjU2LTEuNTMxMjUgNi44MjQyMTkuMjc3MzQ0IDkuODI0MjE5IDEuODA4NTkzIDMgNS4wNTA3ODEgNC44MjgxMjUgOC41NTQ2ODcgNC44MjgxMjVoMTA4LjEyMTA5NGMuMTc1NzgxIDMuOTU3MDMxLjY3NTc4MSA3Ljg4NjcxOCAxLjQ5NjA5MyAxMS43NjE3MTggNy41NzAzMTMgMzUuMDU0Njg4IDM4LjU1ODU5NCA2MC4wOTM3NSA3NC40MjU3ODIgNjAuMTI1IDM1Ljg3MTA5NC4wMzUxNTcgNjYuOTAyMzQ0LTI0Ljk0OTIxOCA3NC41MzUxNTYtNTkuOTk2MDkzLjg0Mzc1LTMuOTEwMTU3IDEuMzY3MTg4LTcuODkwNjI1IDEuNTUwNzgxLTExLjg5NDUzMWgxMDguMTM2NzE5YzMuNSAwIDYuNzUtMS44MzIwMzIgOC41NTQ2ODgtNC44MzIwMzIgMS44MDg1OTMtMyAxLjkxNzk2OC02LjcyNjU2Mi4yNzczNDMtOS44MjAzMTJsLTg1Ljc2OTUzMS0xNjIuNTQ2ODc1Yy0xLjczMDQ2OS0zLjI4OTA2My01LjE0NDUzMS01LjMzOTg0NC04Ljg1OTM3NS01LjMzMjAzMWgtMTAuMjYxNzE5di0zMC41MTE3MTljMC01LjUxOTUzMS00LjQ3MjY1Ni05Ljk4ODI4MS05Ljk4ODI4MS05Ljk4ODI4MWgtNDQuNTM1MTU2YzIuMTQwNjI1LTIyLjQ3MjY1NyAyMC45ODgyODEtMzkuNjQ0NTMyIDQzLjU2MjUtMzkuNjk5MjE5aDE0NC44MDQ2ODd2MjguMTYwMTU2Yy4wMzUxNTYgMTguMTkxNDA2IDE0Ljc3NzM0NCAzMi45MzM1OTQgMzIuOTY4NzUgMzIuOTYwOTM3aDUwLjk4MDQ2OWM1LjUxNTYyNSAwIDkuOTg4MjgxLTQuNDY0ODQzIDkuOTg4MjgxLTkuOTg4Mjgxdi0xNjguNDY4NzVjMC01LjUxMTcxOS00LjQ2NDg0NC05Ljk4MDQ2ODUtOS45NzY1NjItOS45ODgyODF6bS0yNTAuOTE3OTY5IDM5Ny42MzI4MTJjLTUuNTY2NDA2IDI1LjkzMzU5NC0yOC41MDc4MTMgNDQuNDUzMTI2LTU1LjAzMTI1IDQ0LjQyMTg3Ni0yNi41MzEyNS0uMDI3MzQ0LTQ5LjQyNTc4MS0xOC41OTc2NTctNTQuOTMzNTk0LTQ0LjU0Njg3Ni0uNTU0Njg3LTIuNDUzMTI0LS45MjU3ODEtNC45NDkyMTgtMS4xMjEwOTMtNy40NTMxMjRoMTEyLjIzNDM3NGMtLjE5OTIxOCAyLjU1MDc4MS0uNTg1OTM3IDUuMDgyMDMxLTEuMTQ4NDM3IDcuNTc4MTI0em0xMTIuNjA1NDY5LTI3LjU3NDIxOGgtMTAxLjM5NDUzMmMtLjA2NjQwNiAwLS4xMzY3MTggMC0uMjAzMTI0IDBoLTEzMS45NjA5MzhjLS4wNzAzMTIgMC0uMTM2NzE5IDAtLjIwNzAzMSAwaC0xMDEuMzk0NTMxbDc1LjI1MzkwNi0xNDIuNTU0Njg4aDE4NC42ODM1OTR6bS05OS40NzI2NTYtMTYyLjUzNTE1NmgtMTM2LjE5MTQwN3YtMjAuNTE5NTMyaDEzNi4xOTE0MDd6bTguOTk2MDkzLTEwMC4xODM1OTRjLTMzLjUzNTE1Ni4yNzM0MzctNjEuMjQ2MDkzIDI2LjIzODI4MS02My42OTUzMTIgNTkuNjgzNTk0aC0zMi40MzM1OTRjMy44NDc2NTYtNTAuMjczNDM4IDQ1LjczMDQ2OS04OS4xMjUgOTYuMTUyMzQ0LTg5LjE4NzVoMTQ0LjgwNDY4N3YyOS41MDM5MDZ6bTIxOC43Njk1MzEgNjEuMTQwNjI1aC00MC45ODQzNzRjLTcuMTY3OTY5LS4wMTk1MzEtMTIuOTcyNjU3LTUuODI0MjE5LTEyLjk5MjE4OC0xMi45ODgyODF2LTEyMi41MDc4MTNjLjAxOTUzMS03LjE2MDE1NiA1LjgyNDIxOS0xMi45NjQ4NDQgMTIuOTkyMTg4LTEyLjk4NDM3NWg0MC45ODQzNzR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im05MC41MTU2MjUgNDE1Ljk5MjE4OGMwLTUuNTE1NjI2LTQuNDcyNjU2LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4MjgyaC02MS4zOTg0MzhjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40NzI2NTYtOS45ODgyODEgOS45ODgyODIgMCA1LjUxOTUzMSA0LjQ3MjY1NiA5Ljk5MjE4NyA5Ljk4ODI4MSA5Ljk5MjE4N2g2MS4zOTg0MzhjNS41MTU2MjUgMCA5Ljk4ODI4MS00LjQ3MjY1NiA5Ljk4ODI4MS05Ljk5MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNy41MzkwNjIgNDcyLjY3MTg3NS00MC4wNzAzMTIgMzcuNzQ2MDk0Yy0yLjY0MDYyNSAyLjQzMzU5My0zLjc3MzQzOCA2LjEwMTU2Mi0yLjk1NzAzMSA5LjU5NzY1Ni44MTI1IDMuNTAzOTA2IDMuNDQxNDA2IDYuMjk2ODc1IDYuODg2NzE5IDcuMzE2NDA2IDMuNDQ1MzEyIDEuMDIzNDM4IDcuMTc1NzgxLjExNzE4OCA5Ljc2NTYyNC0yLjM3NWw0MC4wNzAzMTMtMzcuNzM4MjgxYzIuNjQwNjI1LTIuNDMzNTk0IDMuNzY5NTMxLTYuMTAxNTYyIDIuOTU3MDMxLTkuNjA1NDY5LS44MTY0MDYtMy40OTYwOTMtMy40NDUzMTItNi4yOTI5NjktNi44ODY3MTgtNy4zMTY0MDYtMy40NDkyMTktMS4wMTk1MzEtNy4xNzU3ODItLjExMzI4MS05Ljc2NTYyNiAyLjM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM2NS41NDY4NzUgNDA2LjAwMzkwNmgtNjEuMzkwNjI1Yy01LjUxOTUzMSAwLTkuOTkyMTg4IDQuNDcyNjU2LTkuOTkyMTg4IDkuOTg4MjgyIDAgNS41MTk1MzEgNC40NzI2NTcgOS45OTIxODcgOS45OTIxODggOS45OTIxODdoNjEuMzkwNjI1YzUuNTE5NTMxIDAgOS45ODgyODEtNC40NzI2NTYgOS45ODgyODEtOS45OTIxODcgMC01LjUxNTYyNi00LjQ2ODc1LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4Mjgyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY3LjA0Njg3NSA0NzIuNjcxODc1Yy0yLjU4OTg0NC0yLjQ4ODI4MS02LjMxNjQwNi0zLjM5NDUzMS05Ljc2NTYyNS0yLjM3NS0zLjQ0NTMxMiAxLjAyMzQzNy02LjA3NDIxOSAzLjgyMDMxMy02Ljg4NjcxOSA3LjMxNjQwNi0uODE2NDA2IDMuNTAzOTA3LjMxNjQwNyA3LjE3MTg3NSAyLjk1MzEyNSA5LjYwNTQ2OWw0MC4wNjI1IDM3LjcyMjY1NmMyLjU4OTg0NCAyLjQ5MjE4OCA2LjMxNjQwNiAzLjQwMjM0NCA5Ljc2NTYyNSAyLjM3NSAzLjQ0MTQwNy0xLjAxOTUzMSA2LjA3MDMxMy0zLjgxMjUgNi44ODY3MTktNy4zMTY0MDYuODEyNS0zLjQ5NjA5NC0uMzE2NDA2LTcuMTY0MDYyLTIuOTU3MDMxLTkuNjAxNTYyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyLjI3MzQzOCA0OTAuOTMzNTk0Yy01LjUxNTYyNiAwLTkuOTg4MjgyIDQuNDcyNjU2LTkuOTg4MjgyIDkuOTkyMTg3djUwLjg0NzY1N2MwIC4yNDYwOTMtLjAyMzQzNy41MDM5MDYtLjAyMzQzNy43MzgyODEgMCA1LjUxNTYyNSA0LjQ3MjY1NiA5Ljk4ODI4MSA5Ljk4ODI4MSA5Ljk4ODI4MS40MjU3ODEtLjAwMzkwNi44NTU0NjktLjAyNzM0NCAxLjI3NzM0NC0uMDg1OTM4IDQuOTkyMTg3LS42Mjg5MDYgOC43MzgyODEtNC44Nzg5MDYgOC43MzgyODEtOS45MDYyNXYtNTEuNTgyMDMxYzAtNS41MTk1MzEtNC40NzI2NTYtOS45OTIxODctOS45OTIxODctOS45OTIxODd6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Gfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzguNTExLDg4LjYyMkM0MDMuNjk0LDY5LjIyMywzMjguNDM3LDM5LjAxNywyNjAuODc4LDEuMjY5Yy0zLjAzLTEuNjkyLTYuNzIzLTEuNjkzLTkuNzU1LDAKCQkJQzE4MS42MjEsNDAuMDk5LDExMC40MzIsNjguNjcyLDMzLjQ4OSw4OC42MjNjLTQuNDEsMS4xNDQtNy40OSw1LjEyNC03LjQ5LDkuNjh2MTEwLjM5NGMwLDExMy41MzUsNTUuMjkyLDE4OC42MzksMTAxLjY3OCwyMzEuNjUKCQkJYzQ5Ljc1Nyw0Ni4xMzgsMTA3LjQ2LDcxLjY1NSwxMjguMzI0LDcxLjY1NWMyMC44NjQsMCw3OC41NjctMjUuNTE3LDEyOC4zMjQtNzEuNjU1CgkJCWM0Ni4zODQtNDMuMDExLDEwMS42NzgtMTE4LjExNCwxMDEuNjc4LTIzMS42NVY5OC4zMDJDNDg2LjAwMiw5My43NDYsNDgyLjkyMiw4OS43NjYsNDc4LjUxMSw4OC42MjJ6IE0zNzAuNzI2LDQyNS42NzgKCQkJYy0yNy41NTcsMjUuNTUzLTU0LjMzNiw0MS42ODUtNzEuOTUsNTAuNzE4Yy0yMi4zMTksMTEuNDQ3LTM3LjgxLDE1LjYwMy00Mi43NzYsMTUuNjAzYy00Ljk2NiwwLTIwLjQ1Ni00LjE1NS00Mi43NzYtMTUuNjAzCgkJCWMtMTcuNjEyLTkuMDMzLTQ0LjM5Mi0yNS4xNjUtNzEuOTUtNTAuNzE4Yy00My40NjQtNDAuMzAzLTk1LjI3Ni0xMTAuNjYzLTk1LjI3Ni0yMTYuOTgzVjEwNi4wMDgKCQkJYzczLjk2NC0xOS44LDE0Mi44MDEtNDcuNTIzLDIxMC4wMDMtODQuNTc0YzY1LjQ5OCwzNi4wNTksMTM3LjgyNyw2NS4xODUsMjEwLDg0LjU3MXYxMDIuNjloMC4wMDEKCQkJQzQ2Ni4wMDEsMzE1LjAxNSw0MTQuMTksMzg1LjM3NSwzNzAuNzI2LDQyNS42Nzh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ0My43OTMsMTE1LjM2OGMtNjMuMzM2LTE4LjQxMy0xMjQuOTM2LTQzLjQyNC0xODMuMDg3LTc0LjMzN2MtMi45MzgtMS41NjMtNi40NjEtMS41Ni05LjM5NywwLjAwNgoJCQlDMTkzLjA2OSw3Mi4wNzksMTMxLjQ3LDk3LjA5NCw2OC4yMiwxMTUuMzg3Yy00LjI3NywxLjIzNy03LjIyMiw1LjE1My03LjIyMiw5LjYwNnY4My43MDJjMCwzOS4wNzcsNy40MDUsNzYuMTYxLDIyLjAwOCwxMTAuMjIyCgkJCWMxNC41MywzMy44OTEsMzYuMjAxLDY0LjgyLDY0LjQwOSw5MS45MzNjMjAuMTc1LDE5LjM5LDQzLjQ2OSwzNi40NzcsNjcuMzY3LDQ5LjQxM2M0LjI4MiwyLjMxOCwyNi4zMDUsMTQuMDAzLDM5LjQwMiwxNi40MjEKCQkJYzAuNiwwLjExLDEuMjA3LDAuMTY2LDEuODE1LDAuMTY2YzAuNjA4LDAsMS4yMTUtMC4wNTYsMS44MTUtMC4xNjZjMTMuMDk3LTIuNDE4LDM1LjEyLTE0LjEwMywzOS40MDItMTYuNDIxCgkJCWMyMy44OTUtMTIuOTM2LDQ3LjE5LTMwLjAyMyw2Ny4zNjctNDkuNDEzYzI4LjIwOC0yNy4xMTEsNDkuODc4LTU4LjA0MSw2NC40MDktOTEuOTMzYzE0LjYwMy0zNC4wNiwyMi4wMDgtNzEuMTQ0LDIyLjAwOC0xMTAuMjIyCgkJCXYtODMuNzI0QzQ1MS4wMDEsMTIwLjUyNCw0NDguMDYzLDExNi42MTEsNDQzLjc5MywxMTUuMzY4eiBNNDMxLjAwMSwyMDguNjk1YzAsNzMuMzc2LTI3LjAwOCwxMzYuNTM4LTgwLjI3NiwxODcuNzM0CgkJCWMtMTguODk4LDE4LjE2Mi00MC42OTMsMzQuMTUzLTYzLjAyOSw0Ni4yNDVjLTEwLjE2Nyw1LjUwMy0yMy44OTIsMTEuOTE5LTMxLjY5NywxMy45MzRjLTcuODA1LTIuMDE1LTIxLjUzLTguNDMxLTMxLjY5Ni0xMy45MzQKCQkJYy0yMi4zMzctMTIuMDkzLTQ0LjEzMi0yOC4wODQtNjMuMDI5LTQ2LjI0NWMtNTMuMjY3LTUxLjE5NS04MC4yNzYtMTE0LjM1OS04MC4yNzYtMTg3LjczNFYxMzIuNDgKCQkJYzYwLjM1NC0xNy45NjksMTE5LjE3Mi00MS45MzEsMTc1LjAxOS03MS4zMDZjNTUuNzU3LDI5LjI1MSwxMTQuNTY5LDUzLjIwNCwxNzQuOTgzLDcxLjI3NFYyMDguNjk1eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuMDI3LDM1OC4zMDVsLTAuMi0wLjIxNWMtMy43MDEtNC4wNTUtOS45ODctNC4zNjctMTQuMDczLTAuNjg5Yy00LjEwNSwzLjY5NC00LjQzOCwxMC4wMTctMC43NDQsMTQuMTIybDAuMiwwLjIxNQoJCQljMS45NzEsMi4xNTgsNC42NzMsMy4yNTYsNy4zODcsMy4yNTZjMi4zODMsMCw0Ljc3NS0wLjg0OCw2LjY4Ni0yLjU2N0MxNzYuMzg4LDM2OC43MzMsMTc2LjcyMSwzNjIuNDA5LDE3My4wMjcsMzU4LjMwNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjI2Ljk2Myw0MDMuNjk1Yy0xMi4wNDYtNy42MDItMjMuNjQ1LTE2LjM2NC0zNC40NzMtMjYuMDQ0Yy00LjExNy0zLjY4Mi0xMC40MzktMy4zMjctMTQuMTIsMC43OQoJCQljLTMuNjgsNC4xMTgtMy4zMjYsMTAuNDM5LDAuNzkyLDE0LjEyYzExLjY1MywxMC40MTgsMjQuMTQ1LDE5Ljg1NCwzNy4xMjksMjguMDQ4YzEuNjU3LDEuMDQ1LDMuNTAyLDEuNTQ0LDUuMzI3LDEuNTQ0CgkJCWMzLjMxOCwwLDYuNTY0LTEuNjUsOC40NjYtNC42NjRDMjMzLjAzMiw0MTIuODE4LDIzMS42MzUsNDA2LjY0MiwyMjYuOTYzLDQwMy42OTV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMwOC44OTgsMjA5LjA3N3YtMzIuOTIxYzAtMjkuMTY4LTIzLjczLTUyLjg5OC01Mi45LTUyLjg5OGMtMjkuMTY4LDAtNTIuODk4LDIzLjczLTUyLjg5OCw1Mi44OTh2MzIuOTIxCgkJCWMtMTEuODk4LDAuNDI5LTIxLjQ0NywxMC4yMzUtMjEuNDQ3LDIyLjIzNnY3Ni43NjljLTAuMDAxLDEyLjI3Myw5Ljk4NCwyMi4yNTcsMjIuMjU3LDIyLjI1N0gzMDguMDkKCQkJYzEyLjI3MywwLDIyLjI1OC05Ljk4NCwyMi4yNTgtMjIuMjU3di03Ni43NjlDMzMwLjM0OCwyMTkuMzExLDMyMC43OTgsMjA5LjUwNCwzMDguODk4LDIwOS4wNzd6IE0yMjMuMDk5LDE3Ni4xNTYKCQkJYzAtMTguMTQsMTQuNzU5LTMyLjg5OCwzMi45LTMyLjg5OGMxOC4xNCwwLDMyLjg5OCwxNC43NTgsMzIuODk4LDMyLjg5OHYzMi45aC02NS43OTlWMTc2LjE1NnogTTMxMC4zNDcsMzA4LjA4MwoJCQljMCwxLjIyNC0xLjAzNCwyLjI1Ny0yLjI1OCwyLjI1N0gyMDMuOTA4Yy0xLjIyNCwwLTIuMjU4LTEuMDMzLTIuMjU4LTIuMjU3di03Ni43NjloMC4wMDFjMC0xLjIyNCwxLjAzNC0yLjI1NywyLjI1OC0yLjI1N2g5LjE4OQoJCQloODUuNzk5aDkuMTkyYzEuMjI0LDAsMi4yNTgsMS4wMzMsMi4yNTgsMi4yNTdWMzA4LjA4M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI0OS42NGMtNy43MDEsMC0xMy45ODIsNi4yODEtMTMuOTgyLDEzLjk4MmMwLDMuNzg2LDEuNTIzLDcuMjI1LDMuOTgyLDkuNzQ2djkuNzg3YzAsNS41MjIsNC40NzcsMTAsMTAsMTAKCQkJYzUuNTIzLDAsMTAtNC40NzgsMTAtMTB2LTkuNzg3YzIuNDU5LTIuNTIyLDMuOTgyLTUuOTYsMy45ODItOS43NDZDMjY5Ljk4MiwyNTUuOTIxLDI2My43MDEsMjQ5LjY0LDI1NiwyNDkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Hfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk2Ljg4MjgxMiAwaC00ODEuNzY1NjI0Yy04LjM0NzY1NyAwLTE1LjExNzE4OCA2Ljc2OTUzMS0xNS4xMTcxODggMTUuMTE3MTg4djQ4MS43NjU2MjRjMCA4LjM0NzY1NyA2Ljc2OTUzMSAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGg0ODEuNzY1NjI0YzguMzQ3NjU3IDAgMTUuMTE3MTg4LTYuNzY5NTMxIDE1LjExNzE4OC0xNS4xMTcxODh2LTQ4MS43NjU2MjRjMC04LjM0NzY1Ny02Ljc2OTUzMS0xNS4xMTcxODgtMTUuMTE3MTg4LTE1LjExNzE4OHptLTQwNi4xNzU3ODEgNDIxLjI5Mjk2OXYtODguNjk1MzEzaDExOS4wNzQyMTl2ODguNjk1MzEzem0tNjAuNDcyNjU2LTM5MS4wNTg1OTRoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTM1Mi44Mzk4NDQtNTguNDUzMTI1djI4LjIxODc1aC0yNTQuMTQ4NDM4di0yOC4yMTg3NXptLTI1NC4xNDg0MzggMjM5Ljg3MTA5NGgyNTQuMTUyMzQ0djMwLjIzODI4MWgtMjU0LjE1MjM0NHptMC0zMC4yMzQzNzV2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTZ2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTd2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptLTk4LjY5MTQwNiAzMC4yMzQzNzZoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTAgNjAuNDcyNjU2aDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptMzgzLjA3ODEyNSAwaDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptNjguNDUzMTI1LTMwLjIzNDM3NWgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1N2gtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0tMjQxLjc1IDI3Mi4xMjVoMzAuMjM4Mjgxdjg4LjY5NTMxM2gtMzAuMjM4Mjgxem02MC40NzY1NjMgMGgxMjAuODAwNzgxdjg4LjY5NTMxM2gtMTIwLjgwMDc4MXptLTI3MC4yNTc4MTMgMTQ5LjE2Nzk2OXYtMTQ5LjE2Nzk2OWgzMC4yMzgyODF2MTAzLjgxMjVjMCA4LjM0NzY1NiA2Ljc2OTUzMiAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGgzNjAuODIwMzEyYzguMzQ3NjU2IDAgMTUuMTE3MTg4LTYuNzY5NTMyIDE1LjExNzE4OC0xNS4xMTcxODh2LTEwMy44MTI1aDMwLjIzODI4MXYxNDkuMTY3OTY5em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Vfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0yIDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM0OC4yNDYwOTQgMzc2Ljc4NTE1NmMtMy4yNS0yLjYwNTQ2OC03Ljk5MjE4OC0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTI4Ljk0OTIxOSAzNi4wOTM3NWMtMy45ODQzNzUgNC45Njg3NS0uMzY3MTg4IDEyLjI1NzgxMiA1Ljg3NSAxMi4yNTc4MTIgMi4yMTA5MzcgMCA0LjM5ODQzNy0uOTY4NzUgNS44ODY3MTktMi44MjQyMTlsMjguOTQ5MjE4LTM2LjA5Mzc1YzIuNjA1NDY5LTMuMjUgMi4wODU5MzgtNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzkwLjM1OTM3NSAzNTguNzM4MjgxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg3LTIuMDgyMDMxLTEwLjU5NzY1NiAxLjE2NDA2M2wtMjguOTQ5MjE5IDM2LjA5Mzc1Yy0zLjk4NDM3NSA0Ljk2ODc1LS4zNjcxODggMTIuMjU3ODEyIDUuODc1IDEyLjI1NzgxMiAyLjIxMDkzOCAwIDQuMzk4NDM4LS45Njg3NSA1Ljg4NjcxOS0yLjgyNDIxOGwyOC45NDkyMTktMzYuMDkzNzVjMi42MDU0NjgtMy4yNDYwOTQgMi4wODU5MzctNy45OTIxODgtMS4xNjQwNjMtMTAuNTk3NjU3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTExLjc1IDQyMi4wNTA3ODFjMi4xMDkzNzUgMCA0LjIwNzAzMS0uODc4OTA2IDUuNjk5MjE5LTIuNTk3NjU2bDM5LjYxMzI4MS00NS42NDQ1MzFjMi43MzA0NjktMy4xNDQ1MzIgMi4zOTQ1MzEtNy45MDYyNS0uNzUtMTAuNjMyODEzLTMuMTQ0NTMxLTIuNzMwNDY5LTcuOTEwMTU2LTIuMzk0NTMxLTEwLjYzNjcxOS43NWwtMzkuNjE3MTg3IDQ1LjY0NDUzMWMtNC4yNTM5MDYgNC45MDIzNDQtLjY5NTMxMyAxMi40ODA0NjkgNS42OTE0MDYgMTIuNDgwNDY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk2LjYyMTA5NCAzNzYuNzg1MTU2Yy0zLjI1LTIuNjA1NDY4LTcuOTk2MDk0LTIuMDgyMDMxLTEwLjYwMTU2MyAxLjE2NDA2M2wtMTQuNDcyNjU2IDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5NjA5NCAxLjE2NDA2MyAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjUgOC4wMTE3MTggMi4wNjI1IDEwLjU5NzY1Ni0xLjE2NDA2MmwxNC40NzY1NjItMTguMDQ2ODc2YzIuNjA1NDY5LTMuMjUgMi4wODIwMzItNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDM3Ljk5MjE4OCAzOTQuODMyMDMxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg4LTIuMDgyMDMxLTEwLjU5NzY1NyAxLjE2NDA2M2wtMTQuNDc2NTYyIDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5MjE4NyAxLjE2NDA2MiAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjEwOTQgOC4wMTE3MTkgMi4wNjI1IDEwLjYwMTU2My0xLjE2NDA2M2wxNC40NzI2NTYtMTguMDQ2ODc0YzIuNjA1NDY5LTMuMjQ2MDk0IDIuMDgyMDMxLTcuOTkyMTg4LTEuMTY0MDYyLTEwLjU5NzY1N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNi40NzI2NTYgMzYyLjk4NDM3NWMtMy4yNS0yLjYwNTQ2OS03Ljk5MjE4Ny0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTE0LjQ3NjU2MiAxOC4wNTA3ODFjLTIuNjA1NDY5IDMuMjQ2MDkzLTIuMDgyMDMyIDcuOTkyMTg3IDEuMTY0MDYyIDEwLjU5NzY1NiAzLjI2OTUzMSAyLjYyMTA5NCA4LjAxMTcxOSAyLjA2MjUgMTAuNTk3NjU2LTEuMTY0MDYzbDE0LjQ3MjY1Ni0xOC4wNDY4NzRjMi42MDkzNzYtMy4yNSAyLjA4NTkzOC03Ljk5NjA5NC0xLjE2MDE1Ni0xMC42MDE1NjN6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01MDQuNDYwOTM4IDBjLTE3LjI1MzkwNyAwLTQ2Ni41OTM3NSAwLTQ5Ni45MjE4NzYgMC00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzY3MTg4LTcuNTM5MDYyIDcuNTM5MDYydjQ5My44NjcxODhjMCA0LjE3MTg3NSAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MiA3LjUzOTA2Mmg0MjIuMjEwOTM4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC00LjE2NDA2Mi0zLjM3ODkwNi03LjU0Mjk2OS03LjUzOTA2Mi03LjU0Mjk2OWgtNDE0LjY3MTg3NXYtMTQzLjg4MjgxMmgxNC4zNjcxODd2OTAuOTU3MDMxYzAgNC4xNjQwNjIgMy4zNzUgNy41MzkwNjIgNy41MzkwNjMgNy41MzkwNjJoMTI2LjQwMjM0NGM0LjE2MDE1NiAwIDcuNTM5MDYyLTMuMzc1IDcuNTM5MDYyLTcuNTM5MDYyIDAtNC4xNjAxNTYtMy4zNzg5MDYtNy41MzkwNjItNy41MzkwNjItNy41MzkwNjJoLTExOC44NjMyODF2LTgzLjQxNzk2OWgxNC41MzkwNjJ2MjYuMTIxMDkzYzAgNC4xNjQwNjMgMy4zNzUgNy41MzkwNjMgNy41MzkwNjIgNy41MzkwNjMgNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM3NSA3LjUzOTA2My03LjUzOTA2M3YtMjYuMTIxMDkzaDE1My43MTA5Mzd2ODMuNDE3OTY5aC0zNC4zMDg1OTNjLTQuMTYwMTU3IDAtNy41MzkwNjMgMy4zNzg5MDYtNy41MzkwNjMgNy41MzkwNjIgMCA0LjE2NDA2MiAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MyA3LjUzOTA2MmgyODEuNDcyNjU2YzQuMTY0MDYzIDAgNy41MzkwNjMtMy4zNzUgNy41MzkwNjMtNy41MzkwNjJ2LTkwLjk1NzAzMWgxNC4zNjcxODd2MTQzLjg4MjgxMmgtMzcuMDE1NjI1Yy00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzc4OTA3LTcuNTM5MDYyIDcuNTQyOTY5IDAgNC4xNzE4NzUgMy4zNzg5MDYgNy41MzkwNjIgNy41MzkwNjIgNy41MzkwNjJoNDQuNTU0Njg4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC01My44NjMyODEgMC00MzcuNDk2MDk0IDAtNDkzLjg2NzE4OCAwLTQuMTcxODc0LTMuMzc4OTA2LTcuNTM5MDYyLTcuNTM5MDYyLTcuNTM5MDYyem0tNDQ1LjM5ODQzOCAzMzQuOTAyMzQ0Yy0xMy43MTQ4NDQgMC0zMC4wNTg1OTQgMC00My45ODQzNzUgMCAwLTkuNTUwNzgyIDAtMTYuMjU3ODEzIDAtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2Mmg0My45ODQzNzV6bTAtNDEuODcxMDk0aC00My45ODQzNzV2LTI2Ljc3NzM0M2g0My45ODQzNzV6bTAtNDEuODU5Mzc0Yy05LjcwMzEyNSAwLTMzLjkxNzk2OSAwLTQzLjk4NDM3NSAwdi0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMTUuMDc4MTI1LTI2Ljc4MTI1aDM2My43MTg3NXYyNi43ODEyNWgtMzYzLjcxODc1em0wIDgzLjcxODc1aDI4OS4zMDA3ODFjNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM2NzE4NyA3LjUzOTA2My03LjUzOTA2MyAwLTQuMTYwMTU2LTMuMzc1LTcuNTM5MDYyLTcuNTM5MDYzLTcuNTM5MDYyLTEuMjM0Mzc1IDAtMjgyLjk0MTQwNiAwLTI4OS4zMDA3ODEgMHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1aC00NC4yNTc4MTNjLTQuMTY0MDYyIDAtNy41MzkwNjIgMy4zNzg5MDYtNy41MzkwNjIgNy41MzkwNjIgMCA0LjE3MTg3NiAzLjM3NSA3LjUzOTA2MyA3LjUzOTA2MiA3LjUzOTA2M2g0NC4yNTc4MTN2MjYuNzg5MDYzYy0xMS42MjUgMC0zNTQuNDkyMTg3IDAtMzYzLjcxODc1IDB6bTAgNDEuODcxMDk0aDM2My43MTg3NXYyNi43NzczNDNoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2MmgtMzYzLjcxODc1em0wIDQxLjg2NzE4N2gzNjMuNzE4NzV2MjYuNzgxMjVoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2M2gtMzYzLjcxODc1em0wIDY4LjY0ODQzOHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1Yy0zNS42MTcxODcgMC0zMjYuOTUzMTI1IDAtMzYzLjcxODc1IDB6bTM5My4zMzU5MzcgOTguNDk2MDk0aC0xODMuMzI4MTI0di00MC42Njc5NjljMC00LjE2NDA2My0zLjM3NS03LjUzOTA2My03LjUzOTA2My03LjUzOTA2M3MtNy41MzkwNjMgMy4zNzUtNy41MzkwNjMgNy41MzkwNjN2NDAuNjY3OTY5aC0yNi4xNDA2MjR2LTgzLjQxNDA2M2gyNi4xNDA2MjR2MTIuNTg1OTM3YzAgNC4xNjc5NjkgMy4zNzUgNy41MzkwNjMgNy41MzkwNjMgNy41MzkwNjNzNy41MzkwNjMtMy4zNzEwOTQgNy41MzkwNjMtNy41MzkwNjN2LTEyLjU4OTg0M2gxNTMuNzEwOTM3djI2LjEyMTA5M2MwIDQuMTY0MDYzIDMuMzc1IDcuNTM5MDYzIDcuNTM5MDYzIDcuNTM5MDYzIDQuMTY0MDYyIDAgNy41MzkwNjItMy4zNzUgNy41MzkwNjItNy41MzkwNjN2LTI2LjEyMTA5M2gxNC41MzkwNjJ6bTI5LjQ0NTMxMy05OC40OTYwOTRjLTEzLjc4OTA2MyAwLTI5Ljg2NzE4NyAwLTQzLjk4NDM3NSAwdi0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2M2g0My45ODQzNzV6bTAtNDEuODY3MTg4aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMC00MS44NTkzNzVoLTQzLjk4NDM3NXYtMjYuNzg5MDYyaDQzLjk4NDM3NXptMC00MS44NzEwOTRoLTQzLjk4NDM3NXYtMjYuNzc3MzQzaDQzLjk4NDM3NXptMC00MS44NTkzNzRoLTQzLjk4NDM3NXYtMjYuNzg5MDYzaDQzLjk4NDM3NXptMC00MS44NjcxODhoLTQzLjk4NDM3NXYtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Zfe="PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01Ni44MzggMWgtNDkuNjc2Yy0zLjM5OCAwLTYuMTYyIDIuNzY0LTYuMTYyIDYuMTYyIDAgLjY2NS4xMDYgMS4zMi4zMTYgMS45NDlsLjU1OCAxLjY3NmMuODQxIDIuNTIgMy4xOSA0LjIxMyA1Ljg0NyA0LjIxM2g0LjM4NGwxLjUwNiAxMy41NTJjLjI4MiAyLjUzNiAyLjQxOCA0LjQ0OCA0Ljk2OSA0LjQ0OGgyNi44NGMyLjU1MSAwIDQuNjg4LTEuOTEyIDQuOTY5LTQuNDQ4bDEuNTA2LTEzLjU1Mmg0LjM4NGMyLjY1NyAwIDUuMDA2LTEuNjkzIDUuODQ2LTQuMjE0bC41NTgtMS42NzRjLjIxMS0uNjMuMzE3LTEuMjg1LjMxNy0xLjk1IDAtMy4zOTgtMi43NjQtNi4xNjItNi4xNjItNi4xNjJ6bS0zMi44MzggMzBoLTR2LThjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptMTAgMGgtNHYtOGMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyem0xMCAwaC00di04YzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTQuNDAyLTIuNjY4Yy0uMTQ3IDEuMzI0LTEuMTM4IDIuMzYzLTIuNDAyIDIuNjExdi03Ljk0M2MwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY4aC0ydi04YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0djhoLTJ2LThjMC0yLjIwNi0xLjc5NC00LTQtNHMtNCAxLjc5NC00IDR2Ny45NDJjLTEuMjY0LS4yNDgtMi4yNTQtMS4yODctMi40MDItMi42MTFsLTEuNDgxLTEzLjMzMWgzNS43NjZ6bTEyLjM4NC0xOS44NTMtLjU1OCAxLjY3NWMtLjU2NyAxLjcwMi0yLjE1NCAyLjg0Ni0zLjk0OSAyLjg0NmgtNDguNTU4Yy0xLjc5NCAwLTMuMzgxLTEuMTQ0LTMuOTQ5LTIuODQ2bC0uNTU4LTEuNjc2Yy0uMTQyLS40MjQtLjIxNC0uODY3LS4yMTQtMS4zMTYgMC0yLjI5NSAxLjg2Ny00LjE2MiA0LjE2Mi00LjE2Mmg0OS42NzZjMi4yOTUgMCA0LjE2MiAxLjg2NyA0LjE2MiA0LjE2MiAwIC40NDktLjA3Mi44OTItLjIxNCAxLjMxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTUgNWgtNmMtMS4xMDMgMC0yIC44OTctMiAydjJjMCAxLjEwMy44OTcgMiAyIDJoNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTJjMC0xLjEwMy0uODk3LTItMi0yem0tNiA0di0yaDZsLjAwMSAyeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDcgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgOWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDloMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NCA0MHYtMWgtMWMtLjExOSAwLTEuNzk5LjA0Mi0zLjE3OSAyLjAzNS0uMDQ2LS4wNjMtLjA5Mi0uMTMxLS4xMzgtLjE5My0uOTAzLTEuMjMtMS42ODMtMi4yOTMtMS42ODMtNC44NDJ2LTFoLTFjLS4xMzkgMC0yLjg5My4wNTctNC42MjQgMy4yNzgtMi4wNTMtMy4yMjMtNS4zMjgtMy4yNzgtNS4zNzYtMy4yNzhoLTF2MWMwIDIuNTU5LS43ODQgMy42MzMtMS42OTIgNC44NzctLjA0LjA1NS0uMDguMTE0LS4xMi4xNjktMS4zODMtMi4wMDQtMy4wNjktMi4wNDYtMy4xODgtMi4wNDZoLTF2MWMwIDIuNTQzLS45OTUgMy44MzMtMi4xNDcgNS4zMjctMS4zMzcgMS43MzMtMi44NTMgMy42OTctMi44NTMgNy42NzMgMCA2LjA3NSAzLjkyNSAxMCAxMCAxMGgxNGM2LjA3NSAwIDEwLTMuOTI1IDEwLTEwIDAtMy45NzYtMS41MTYtNS45NC0yLjg1My03LjY3My0xLjE1Mi0xLjQ5NC0yLjE0Ny0yLjc4NC0yLjE0Ny01LjMyN3ptLTE5IDE3YzAtMi4zOTYgMS4zNTgtMy43MTkgMi42NzItNSAuODUxLS44MyAxLjcyNC0xLjY4IDIuMTE1LTIuNzczLjU2LjMxIDEuMjEzIDEuMDQzIDEuMjEzIDIuNzczdjNoMnYtMWMwLTEuOTg2IDEuMjM5LTIuNjYgMi4xNDctMi44ODcuMzU1IDEuMzA0IDEuMjk1IDIuMjQ0IDIuMTQ2IDMuMDk0LjkxNi45MTYgMS43MDcgMS43MDcgMS43MDcgMi43OTMgMCAxLjM4My0xLjQ2MyA0LTcgNHMtNy0yLjYxNy03LTR6bTE0IDRoLS4xMDJjMS41NjItMS4yOCAyLjEwMi0yLjg5OSAyLjEwMi00IDAtMS45MTQtMS4yMTgtMy4xMzItMi4yOTMtNC4yMDctLjkxNi0uOTE2LTEuNzA3LTEuNzA3LTEuNzA3LTIuNzkzdi0xaC0xYy0uODkyIDAtMi4xOTMuMjc4LTMuMjQ1IDEuMDg5LS42ODItMi4zOTUtMi42MjgtMy4wODktMy43NTUtMy4wODloLTF2MWMwIC44NDUtLjY1NSAxLjUyNi0xLjcyNCAyLjU2OC0xLjQ2IDEuNDIzLTMuMjc2IDMuMTkzLTMuMjc2IDYuNDMyIDAgMS4xMDEuNTQgMi43MiAyLjEwMiA0aC0uMTAyYy0zLjg2OCAwLTgtMi4xMDItOC04IDAtMy4yOTQgMS4xODMtNC44MjggMi40MzYtNi40NTIgMS4wNTUtMS4zNjcgMi4xMzktMi43NzIgMi40NjUtNS4wODQuODkxLjczOSAyLjA5OSAyLjY0MiAyLjA5OSA3LjUzNmgyYzAtMi41Ni0uMzIzLTQuNDYxLS44MDMtNS44NzguMjI4LS4zNjYuNDY5LS43MTMuNzI2LTEuMDY2Ljg0Ni0xLjE1OSAxLjc5MS0yLjQ1MyAyLjAyMy00Ljg3OSAxLjQ1Ni40NTMgNC4wNTQgMi4wNjkgNC4wNTQgNy44MjNoMmMwLTEuNjMtLjE5MS0yLjk5LS41MDYtNC4xMzIuNjM3LTIuMjczIDEuNzYxLTMuMjE4IDIuNTY3LTMuNjAxLjIzOCAyLjM0NiAxLjEzNyAzLjU3IDIuMDEgNC43NTkuMjYyLjM1Ny41MDcuNzA4LjczOCAxLjA4LS40ODMgMS40MTgtLjgwOSAzLjMyNC0uODA5IDUuODk0aDJjMC00LjkwNiAxLjIxNC02LjgwNyAyLjA5OC03LjU0Mi4zMjUgMi4zMTUgMS40MTEgMy43MjIgMi40NjYgNS4wOSAxLjI1MyAxLjYyNCAyLjQzNiAzLjE1OCAyLjQzNiA2LjQ1MiAwIDUuODk4LTQuMTMyIDgtOCA4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Xfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQ2NywwSDQ1QzIwLjE4NywwLDAsMjAuMTg3LDAsNDV2NDIyYzAsMjQuODEzLDIwLjE4Nyw0NSw0NSw0NWg0MjJjMjQuODEzLDAsNDUtMjAuMTg3LDQ1LTQ1VjQ1CgkJCUM1MTIsMjAuMTg3LDQ5MS44MTMsMCw0NjcsMHogTTQ4Miw0NjdjMCw4LjI3MS02LjcyOSwxNS0xNSwxNUg0NWMtOC4yNzEsMC0xNS02LjcyOS0xNS0xNVY0NWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1aDQyMgoJCQljOC4yNzEsMCwxNSw2LjcyOSwxNSwxNVY0Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI1Niw4MWMtOTYuNDk1LDAtMTc1LDc4LjUwNS0xNzUsMTc1czc4LjUwNSwxNzUsMTc1LDE3NXMxNzUtNzguNTA1LDE3NS0xNzVTMzUyLjQ5NSw4MSwyNTYsODF6IE0yNTYsNDAxCgkJCWMtNzkuOTUzLDAtMTQ1LTY1LjA0Ny0xNDUtMTQ1czY1LjA0Ny0xNDUsMTQ1LTE0NXMxNDUsNjUuMDQ3LDE0NSwxNDVTMzM1Ljk1Myw0MDEsMjU2LDQwMXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTg3LDIxNmMtMjIuMDU2LDAtNDAsMTcuOTQ0LTQwLDQwYzAsMjIuMDU2LDE3Ljk0NCw0MCw0MCw0MGMyMi4wNTYsMCw0MC0xNy45NDQsNDAtNDBDMjI3LDIzMy45NDQsMjA5LjA1NiwyMTYsMTg3LDIxNnoKCQkJIE0xODcsMjY2Yy01LjUxNCwwLTEwLTQuNDg2LTEwLTEwYzAtNS41MTQsNC40ODYtMTAsMTAtMTBjNS41MTQsMCwxMCw0LjQ4NiwxMCwxMEMxOTcsMjYxLjUxNCwxOTIuNTE0LDI2NiwxODcsMjY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMjUsMjE2Yy0yMi4wNTYsMC00MCwxNy45NDQtNDAsNDBjMCwyMi4wNTYsMTcuOTQ0LDQwLDQwLDQwYzIyLjA1NiwwLDQwLTE3Ljk0NCw0MC00MEMzNjUsMjMzLjk0NCwzNDcuMDU2LDIxNiwzMjUsMjE2egoJCQkgTTMyNSwyNjZjLTUuNTE0LDAtMTAtNC40ODYtMTAtMTBjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwQzMzNSwyNjEuNTE0LDMzMC41MTQsMjY2LDMyNSwyNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Kfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMzYwLDBIMTIwQzk3LjkyLDAuMDI2LDgwLjAyNiwxNy45Miw4MCw0MHYzNjhjMC4wMjQsMTkuMDAxLDEzLjM4OSwzNS4zNzMsMzIsMzkuMlY0ODBoNDh2LTMyaDE2MHYzMmg0OHYtMzIuOAoJCQljMTguNjExLTMuODI3LDMxLjk3Ni0yMC4xOTksMzItMzkuMlY0MEMzOTkuOTc0LDE3LjkyLDM4Mi4wOCwwLjAyNiwzNjAsMHogTTE0NCw0NjRoLTE2di0xNmgxNlY0NjR6IE0zNTIsNDY0aC0xNnYtMTZoMTZWNDY0egoJCQkgTTM4NCw0MDhjMCwxMy4yNTUtMTAuNzQ1LDI0LTI0LDI0SDEyMGMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0VjQwYzAtMTMuMjU1LDEwLjc0NS0yNCwyNC0yNGgyNDBjMTMuMjU1LDAsMjQsMTAuNzQ1LDI0LDI0VjQwOAoJCQl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwxNjBjLTcwLjY5MiwwLTEyOCw1Ny4zMDgtMTI4LDEyOGMwLjA4NCw3MC42NTgsNTcuMzQyLDEyNy45MTYsMTI4LDEyOGM3MC42OTIsMCwxMjgtNTcuMzA4LDEyOC0xMjgKCQkJUzMxMC42OTIsMTYwLDI0MCwxNjB6IE0yNDAsNDAwYy02MS44NTYsMC0xMTItNTAuMTQ0LTExMi0xMTJjMC4wNjYtNjEuODI4LDUwLjE3Mi0xMTEuOTM0LDExMi0xMTJjNjEuODU2LDAsMTEyLDUwLjE0NCwxMTIsMTEyCgkJCVMzMDEuODU2LDQwMCwyNDAsNDAweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAsMTkyYy01My4wMTksMC05Niw0Mi45ODEtOTYsOTZjMC4wNTcsNTIuOTk2LDQzLjAwNCw5NS45NDMsOTYsOTZjNTMuMDE5LDAsOTYtNDIuOTgxLDk2LTk2UzI5My4wMTksMTkyLDI0MCwxOTJ6CgkJCSBNMjQwLDM2OGMtNDQuMTgzLDAtODAtMzUuODE3LTgwLTgwYzAuMDQ5LTQ0LjE2MywzNS44MzctNzkuOTUyLDgwLTgwYzQ0LjE4MywwLDgwLDM1LjgxNyw4MCw4MEMzMjAsMzMyLjE4MywyODQuMTgzLDM2OCwyNDAsMzY4CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQwLDMyYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMyOTYsNTcuMDcyLDI3MC45MjgsMzIsMjQwLDMyeiBNMjQwLDEyOGMtMjIuMDkxLDAtNDAtMTcuOTA5LTQwLTQwYzAuMDI2LTIyLjA4LDE3LjkyLTM5Ljk3NCw0MC00MGMyMi4wOTEsMCw0MCwxNy45MDksNDAsNDAKCQkJUzI2Mi4wOTEsMTI4LDI0MCwxMjh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCw2NGMtMTMuMjU1LDAtMjQsMTAuNzQ1LTI0LDI0czEwLjc0NSwyNCwyNCwyNHMyNC0xMC43NDUsMjQtMjRTMjUzLjI1NSw2NCwyNDAsNjR6IE0yNDAsOTZjLTQuNDE4LDAtOC0zLjU4Mi04LTgKCQkJczMuNTgyLTgsOC04czgsMy41ODIsOCw4UzI0NC40MTgsOTYsMjQwLDk2eiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjM1MiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iNDAwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz4KICAgICAgICA8cmVjdCB4PSIzNTIiIHk9IjQwMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwyNDhjLTIyLjA5MSwwLTQwLDE3LjkwOS00MCw0MGMwLjAyNiwyMi4wOCwxNy45MiwzOS45NzQsNDAsNDBjMjIuMDkxLDAsNDAtMTcuOTA5LDQwLTQwCgkJCUMyODAsMjY1LjkwOSwyNjIuMDkxLDI0OCwyNDAsMjQ4eiBNMjQwLDMxMmMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNHMyNCwxMC43NDUsMjQsMjRTMjUzLjI1NSwzMTIsMjQwLDMxMnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDgsMjgwSDE2Yy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThTNTIuNDE4LDI4MCw0OCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjY1NiwyMjYuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNjktOC4yNDMtMi45ODEtMTEuMzEyLDAuMTk3Yy0yLjk5NCwzLjEtMi45OTQsOC4wMTUsMCwxMS4xMTVsMjQsMjQKCQkJYzMuMTc4LDMuMDY5LDguMjQzLDIuOTgxLDExLjMxMi0wLjE5N0M1Ni42NSwyMzQuMzU5LDU2LjY1LDIyOS40NDQsNTMuNjU2LDIyNi4zNDR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjQ2LDMzOC4zNDRjLTMuMS0yLjk5NS04LjAxNi0yLjk5NS0xMS4xMTYsMGwtMjQsMjRjLTMuMTc4LDMuMDctMy4yNjYsOC4xMzQtMC4xOTYsMTEuMzEyczguMTM0LDMuMjY2LDExLjMxMiwwLjE5NgoJCQljMC4wNjctMC4wNjQsMC4xMzItMC4xMywwLjE5Ni0wLjE5NmwyNC0yNEM1Ni43MjYsMzQ2LjQ3OCw1Ni42MzgsMzQxLjQxNCw1My40NiwzMzguMzQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjQsMjgwaC0zMmMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGgzMmM0LjQxOCwwLDgtMy41ODIsOC04UzQ2OC40MTgsMjgwLDQ2NCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2MS40NiwyMDIuMzQ0Yy0zLjEtMi45OTQtOC4wMTUtMi45OTQtMTEuMTE2LDBsLTI0LDI0Yy0zLjEyNCwzLjEyNS0zLjEyMyw4LjE5LDAuMDAyLDExLjMxNAoJCQljMS41LDEuNDk5LDMuNTM0LDIuMzQyLDUuNjU0LDIuMzQyYzIuMTIyLDAsNC4xNTYtMC44NDQsNS42NTYtMi4zNDRsMjQtMjRDNDY0LjcyNiwyMTAuNDc4LDQ2NC42MzgsMjA1LjQxNCw0NjEuNDYsMjAyLjM0NHoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjY1NiwzNjIuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNy04LjI0Mi0yLjk4Mi0xMS4zMTIsMC4xOTZjLTIuOTk1LDMuMS0yLjk5NSw4LjAxNiwwLDExLjExNmwyNCwyNAoJCQljMy4xNzgsMy4wNyw4LjI0MiwyLjk4MiwxMS4zMTItMC4xOTZDNDY0LjY1MSwzNzAuMzYsNDY0LjY1MSwzNjUuNDQ0LDQ2MS42NTYsMzYyLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",qfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTEyIDU2LjE2NDA2MmMwLTEyLjc5Njg3NC0xMC40MDYyNS0yMy4yMDMxMjQtMjMuMjAzMTI1LTIzLjIwMzEyNGgtNDkuOTY4NzV2LTE1LjA0Njg3NmMwLTkuODc4OTA2LTguMDM1MTU2LTE3LjkxNDA2Mi0xNy45MTQwNjMtMTcuOTE0MDYyaC0xMDMuMDg5ODQzYy05Ljg3ODkwNyAwLTE3LjkxNDA2MyA4LjAzOTA2Mi0xNy45MTQwNjMgMTcuOTE0MDYydjE1LjA0Njg3NmgtODcuODE2NDA2di0xNS4wNDY4NzZjMC05Ljg3ODkwNi04LjAzOTA2Mi0xNy45MTQwNjItMTcuOTE3OTY5LTE3LjkxNDA2MmgtMTAzLjA4OTg0M2MtOS44Nzg5MDcgMC0xNy45MTQwNjMgOC4wMzkwNjItMTcuOTE0MDYzIDE3LjkxNDA2MnYxNS4wNDY4NzZoLTQ5Ljk2ODc1Yy0xMi43OTY4NzUgMC0yMy4yMDMxMjUgMTAuNDA2MjUtMjMuMjAzMTI1IDIzLjIwMzEyNHY0OS41YzAgNi4wNTA3ODIgMi4zMjgxMjUgMTEuNTYyNSA2LjEzNjcxOSAxNS42OTkyMTktMy44MDg1OTQgNC4xMzI4MTMtNi4xMzY3MTkgOS42NDg0MzgtNi4xMzY3MTkgMTUuNjk5MjE5djMwNS44MDg1OTRjMCAxMi43OTI5NjggMTAuNDA2MjUgMjMuMjAzMTI1IDIzLjIwMzEyNSAyMy4yMDMxMjVoMi4zNzg5MDZ2MjIuNDUzMTI1YzAgMTIuNzgxMjUgMTAuMzk4NDM4IDIzLjE3NTc4MSAyMy4xNzk2ODggMjMuMTc1NzgxaDIzMi42MTcxODdjNC4xNDQ1MzIgMCA3LjUwMzkwNi0zLjM1OTM3NSA3LjUwMzkwNi03LjUgMC00LjE0NDUzMS0zLjM1OTM3NC03LjUwMzkwNi03LjUwMzkwNi03LjUwMzkwNmgtMjMyLjYxNzE4N2MtNC41MDc4MTMgMC04LjE3MTg3NS0zLjY2Nzk2OS04LjE3MTg3NS04LjE3MTg3NXYtMjIuNDUzMTI1aDQzMC44MjAzMTJ2MjIuNDUzMTI1YzAgNC41MDc4MTItMy42NjQwNjIgOC4xNzE4NzUtOC4xNzE4NzUgOC4xNzE4NzVoLTE0Ny4xMjVjLTQuMTQ4NDM3IDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41MDM5MDYgMCA0LjE0MDYyNSAzLjM1NTQ2OSA3LjUgNy41MDM5MDYgNy41aDE0Ny4xMjVjMTIuNzgxMjUgMCAyMy4xNzk2ODgtMTAuMzk0NTMxIDIzLjE3OTY4OC0yMy4xNzU3ODF2LTIyLjQ1MzEyNWgyLjM3ODkwNmMxMi43OTI5NjkgMCAyMy4yMDMxMjUtMTAuNDEwMTU3IDIzLjIwMzEyNS0yMy4yMDMxMjV2LTMwNS44MDg1OTRjMC02LjA1MDc4MS0yLjMzMjAzMS0xMS41NjY0MDYtNi4xMzY3MTktMTUuNjk5MjE5IDMuODA0Njg4LTQuMTM2NzE5IDYuMTM2NzE5LTkuNjQ4NDM3IDYuMTM2NzE5LTE1LjY5OTIxOXptLTE5Ny4wODU5MzgtMzguMjVjMC0xLjYwNTQ2OCAxLjMwNDY4OC0yLjkwNjI1IDIuOTEwMTU3LTIuOTA2MjVoMTAzLjA4OTg0M2MxLjYwNTQ2OSAwIDIuOTEwMTU3IDEuMzA0Njg4IDIuOTEwMTU3IDIuOTA2MjV2MTUuMDQ2ODc2aC0xMDguOTEwMTU3em0tMjI2LjczODI4MSAwYzAtMS42MDU0NjggMS4zMDQ2ODgtMi45MDYyNSAyLjkxMDE1Ny0yLjkwNjI1aDEwMy4wODk4NDNjMS42MDU0NjkgMCAyLjkxMDE1NyAxLjMwNDY4OCAyLjkxMDE1NyAyLjkwNjI1djE1LjA0Njg3NmgtMTA4LjkxMDE1N3ptNDA4LjgxNjQwNyA0MjQuOTU3MDMyYzAgNC41MTk1MzEtMy42NzU3ODIgOC4xOTkyMTgtOC4xOTUzMTMgOC4xOTkyMThoLTQ2NS41OTM3NWMtNC41MTk1MzEgMC04LjE5NTMxMy0zLjY3OTY4Ny04LjE5NTMxMy04LjE5OTIxOHYtMzA1LjgwODU5NGMwLTQuNTE5NTMxIDMuNjc1NzgyLTguMTk5MjE5IDguMTk1MzEzLTguMTk5MjE5aDQ2NS41OTM3NWM0LjUyMzQzNyAwIDguMTk1MzEzIDMuNjc5Njg4IDguMTk1MzEzIDguMTk5MjE5em0wLTMzNy4yMDcwMzJjMCA0LjUxOTUzMi0zLjY3NTc4MiA4LjE5NTMxMy04LjE5NTMxMyA4LjE5NTMxM2gtNDY1LjU5Mzc1Yy00LjUxOTUzMSAwLTguMTk1MzEzLTMuNjc1NzgxLTguMTk1MzEzLTguMTk1MzEzdi00OS41YzAtNC41MjM0MzcgMy42NzU3ODItOC4xOTkyMTggOC4xOTUzMTMtOC4xOTkyMThoNDY1LjU5Mzc1YzQuNTE5NTMxIDAgOC4xOTUzMTMgMy42NzU3ODEgOC4xOTUzMTMgOC4xOTkyMTh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMDk3NjU2IDU1LjE1MjM0NGMtMTQuMjA3MDMxIDAtMjUuNzYxNzE4IDExLjU1NDY4Ny0yNS43NjE3MTggMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1NDY4NyAyNS43NjE3MTkgMjUuNzYxNzE4IDI1Ljc2MTcxOSAxNC4yMDMxMjUgMCAyNS43NjE3MTktMTEuNTU0Njg3IDI1Ljc2MTcxOS0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU4NTk0LTI1Ljc1NzgxMi0yNS43NjE3MTktMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODcgMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE5LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg4IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOCAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3OS4xNjc5NjkgNTUuMTUyMzQ0Yy0xNC4yMDcwMzEgMC0yNS43NjE3MTkgMTEuNTU0Njg3LTI1Ljc2MTcxOSAyNS43NTc4MTIgMCAxNC4yMDcwMzIgMTEuNTU0Njg4IDI1Ljc2MTcxOSAyNS43NjE3MTkgMjUuNzYxNzE5IDE0LjIwMzEyNSAwIDI1Ljc1NzgxMi0xMS41NTQ2ODcgMjUuNzU3ODEyLTI1Ljc2MTcxOSAwLTE0LjIwMzEyNS0xMS41NTQ2ODctMjUuNzU3ODEyLTI1Ljc1NzgxMi0yNS43NTc4MTJ6bTAgMzYuNTE1NjI1Yy01LjkzMzU5NCAwLTEwLjc1NzgxMy00LjgyNDIxOS0xMC43NTc4MTMtMTAuNzUzOTA3IDAtNS45Mjk2ODcgNC44MjQyMTktMTAuNzU3ODEyIDEwLjc1NzgxMy0xMC43NTc4MTIgNS45Mjk2ODcgMCAxMC43NTM5MDYgNC44MjgxMjUgMTAuNzUzOTA2IDEwLjc1NzgxMiAwIDUuOTI5Njg4LTQuODI0MjE5IDEwLjc1MzkwNy0xMC43NTM5MDYgMTAuNzUzOTA3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzMyLjgzMjAzMSA1NS4xNTIzNDRjLTE0LjIwMzEyNSAwLTI1Ljc1NzgxMiAxMS41NTQ2ODctMjUuNzU3ODEyIDI1Ljc1NzgxMiAwIDE0LjIwNzAzMiAxMS41NTQ2ODcgMjUuNzYxNzE5IDI1Ljc1NzgxMiAyNS43NjE3MTkgMTQuMjA3MDMxIDAgMjUuNzYxNzE5LTExLjU1NDY4NyAyNS43NjE3MTktMjUuNzYxNzE5IDAtMTQuMjAzMTI1LTExLjU1NDY4OC0yNS43NTc4MTItMjUuNzYxNzE5LTI1Ljc1NzgxMnptMCAzNi41MTU2MjVjLTUuOTI5Njg3IDAtMTAuNzUzOTA2LTQuODI0MjE5LTEwLjc1MzkwNi0xMC43NTM5MDcgMC01LjkyOTY4NyA0LjgyNDIxOS0xMC43NTc4MTIgMTAuNzUzOTA2LTEwLjc1NzgxMiA1LjkzMzU5NCAwIDEwLjc1NzgxMyA0LjgyODEyNSAxMC43NTc4MTMgMTAuNzU3ODEyIDAgNS45Mjk2ODgtNC44MjQyMTkgMTAuNzUzOTA3LTEwLjc1NzgxMyAxMC43NTM5MDd6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDUuOTAyMzQ0IDU1LjE1MjM0NGMtMTQuMjAzMTI1IDAtMjUuNzYxNzE5IDExLjU1NDY4Ny0yNS43NjE3MTkgMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1ODU5NCAyNS43NjE3MTkgMjUuNzYxNzE5IDI1Ljc2MTcxOSAxNC4yMDcwMzEgMCAyNS43NjE3MTgtMTEuNTU0Njg3IDI1Ljc2MTcxOC0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU0Njg3LTI1Ljc1NzgxMi0yNS43NjE3MTgtMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODggMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE4LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg3IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOSAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzNC43NDIxODggMTcxLjkzNzVoLTIxOC4xNDg0MzhjLTQuMTQ0NTMxIDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41IDAgNC4xNDQ1MzEgMy4zNTkzNzUgNy41MDM5MDYgNy41MDM5MDYgNy41MDM5MDZoMjE4LjE0ODQzOGMxLjQzNzUgMCAyLjYwNTQ2OCAxLjE3MTg3NSAyLjYwNTQ2OCAyLjYwOTM3NXYxOS44NTE1NjNjMCAxLjQzNzUtMS4xNjc5NjggMi42MDkzNzUtMi42MDU0NjggMi42MDkzNzVoLTM1Ny40ODQzNzZjLTEuNDM3NSAwLTIuNjA1NDY4LTEuMTcxODc1LTIuNjA1NDY4LTIuNjA5Mzc1di0xOS44NTE1NjNjMC0xLjQzNzUgMS4xNjc5NjgtMi42MDkzNzUgMi42MDU0NjgtMi42MDkzNzVoMTA0LjI2OTUzMmM0LjE0NDUzMSAwIDcuNTAzOTA2LTMuMzU5Mzc1IDcuNTAzOTA2LTcuNTAzOTA2IDAtNC4xNDA2MjUtMy4zNTkzNzUtNy41LTcuNTAzOTA2LTcuNWgtMTA0LjI2OTUzMmMtOS43MTA5MzcgMC0xNy42MDkzNzQgNy44OTg0MzgtMTcuNjA5Mzc0IDE3LjYxMzI4MXYxOS44NTE1NjNjMCA5LjcxMDkzNyA3Ljg5ODQzNyAxNy42MTMyODEgMTcuNjA5Mzc0IDE3LjYxMzI4MWgxMC4wMzUxNTd2MTY2LjQ2NDg0NGMwIDE0LjI3NzM0MyAxMS42MTcxODcgMjUuODk0NTMxIDI1Ljg5NDUzMSAyNS44OTQ1MzFoMjg1LjYyNWMxNC4yNzczNDQgMCAyNS44OTQ1MzEtMTEuNjE3MTg4IDI1Ljg5NDUzMS0yNS44OTQ1MzF2LTE2Ni40NjQ4NDRoMTAuMDM1MTU3YzkuNzEwOTM3IDAgMTcuNjEzMjgxLTcuODk4NDM3IDE3LjYxMzI4MS0xNy42MTMyODF2LTE5Ljg1MTU2M2MwLTkuNzEwOTM3LTcuOTAyMzQ0LTE3LjYxMzI4MS0xNy42MTMyODEtMTcuNjEzMjgxem0tMjUuMDQyOTY5IDIyMS41NDI5NjljMCA2LjAwMzkwNi00Ljg4MjgxMyAxMC44ODY3MTktMTAuODg2NzE5IDEwLjg4NjcxOWgtMjg1LjYyNWMtNi4wMDM5MDYgMC0xMC44OTA2MjUtNC44ODI4MTMtMTAuODkwNjI1LTEwLjg4NjcxOXYtMTY2LjQ2NDg0NGgzMDcuNDAyMzQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyLjU0Mjk2OSAyOTQuODU5Mzc1YzIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNiA1LjUyMzQzNy0yLjQyMTg3NWwyMy4wMTE3MTktMjUuMDE1NjI1YzIuODA4NTk0LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDYtMTAuNjAxNTYzLTMuMDUwNzgxLTIuODA0Njg3LTcuNzkyOTY5LTIuNjA5Mzc0LTEwLjYwMTU2My40NDE0MDdsLTIzLjAxMTcxOCAyNS4wMTU2MjVjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA5Mzc2IDcuNzkyOTY4LjQ0MTQwNiAxMC42MDE1NjIgMS40NDE0MDYgMS4zMjQyMTkgMy4yNjE3MTggMS45ODA0NjkgNS4wNzgxMjUgMS45ODA0Njl6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTQuMTg3NSAzMjQuMTM2NzE5YzEuNDQxNDA2IDEuMzI4MTI1IDMuMjYxNzE5IDEuOTgwNDY5IDUuMDc4MTI1IDEuOTgwNDY5IDIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNyA1LjUyMzQzNy0yLjQyMTg3Nmw0Ny4zMTY0MDctNTEuNDI5Njg3YzIuODA0Njg3LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDctMTAuNjA1NDY5LTMuMDUwNzgxLTIuODA0Njg3LTcuNzk2ODc0LTIuNjA1NDY4LTEwLjYwMTU2Mi40NDE0MDZsLTQ3LjMxNjQwNiA1MS40MzM1OTRjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA1NDY5IDcuNzk2ODc1LjQ0MTQwNiAxMC42MDE1NjN6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",exe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMjIuMjUgMTcuMjY2aC0xMTYuNWE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NSA1Ljc1djY3Ljk5NGE1Ljc1NyA1Ljc1NyAwIDAgMCA1Ljc1IDUuNzVoOS44ODNsLTMuMDY4IDQuNDRhNi4wNzkgNi4wNzkgMCAwIDAgMTAgNi45MTJsNy44NDctMTEuMzUyaDY3LjE3Nmw3Ljg0NCAxMS4zNTFhNi4wNzkgNi4wNzkgMCAwIDAgMTAtNi45MTJsLTMuMDY4LTQuNDM5aDkuODgzYTUuNzU3IDUuNzU3IDAgMCAwIDUuNzUzLTUuNzV2LTY3Ljk5NGE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NS01Ljc1em0tMTAyLjU2MSA4OC44NTZhMi41ODIgMi41ODIgMCAwIDEgLTIuMTIyIDEuMTEyIDIuNTggMi41OCAwIDAgMSAtMi4xMjMtNC4wNDZsNC40NDMtNi40MjhoNi4yNzF6bTkyLjg2Ny0yLjkzNGEyLjU4IDIuNTggMCAwIDEgLTIuMTIzIDQuMDQ2IDIuNTg1IDIuNTg1IDAgMCAxIC0yLjEyMy0xLjExMmwtNi40NjgtOS4zNjJoNi4yNzF6bTExLjk0NC0xMi4xNzhhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUgMi4yNWgtMTE2LjVhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUtMi4yNXYtNjcuOTk0YTIuMjUzIDIuMjUzIDAgMCAxIDIuMjUtMi4yNWgxMTYuNWEyLjI1MyAyLjI1MyAwIDAgMSAyLjI1IDIuMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExOC4yNSAyNS4yNjZoLTEwOC41YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1IDEuNzV2NTkuOTk0YTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzVoMTA4LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNTkuOTk0YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1LTEuNzV6bS0xLjc1IDU5Ljk5NGgtMTA1di01Ni40OTRoMTA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4zNzUgNDcuOTIyaDcuM3YxOS45MzJhMS43NSAxLjc1IDAgMCAwIDMuNSAwdi0xOS45MzJoNy4zYTEuNzUgMS43NSAwIDAgMCAwLTMuNWgtMTguMWExLjc1IDEuNzUgMCAwIDAgMCAzLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTc1Ljk2MyA2OC41MjdhMS43NDkgMS43NDkgMCAwIDAgMy4yMyAwbDkuMDQ3LTIxLjY4MWExLjc1IDEuNzUgMCAxIDAgLTMuMjMtMS4zNDZsLTcuNDMyIDE3LjgwOS03LjQzMi0xNy44MDlhMS43NSAxLjc1IDAgMSAwIC0zLjIzIDEuMzQ4eiIvPgogICAgPC9nPgo8L3N2Zz4=",txe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTksMkg1QTMsMywwLDAsMCwyLDVWNTlhMywzLDAsMCwwLDMsM0g1OWEzLDMsMCwwLDAsMy0zVjVBMywzLDAsMCwwLDU5LDJabTEsNTdhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWNUExLDEsMCwwLDEsNSw0SDU5YTEsMSwwLDAsMSwxLDFaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDZBMjYsMjYsMCwxLDAsNTgsMzIsMjYuMDI5LDI2LjAyOSwwLDAsMCwzMiw2Wm0wLDUwQTI0LDI0LDAsMSwxLDU2LDMyLDI0LjAyOCwyNC4wMjgsMCwwLDEsMzIsNTZaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDEwQTIyLDIyLDAsMSwwLDU0LDMyLDIyLjAyNSwyMi4wMjUsMCwwLDAsMzIsMTBabTEwLjE3NSw0LjgxM2MyLjQ2OSw5LjU1LTMuNjEzLDEyLjktNi40MjgsMTMuOTExYTUsNSwwLDAsMC0xLjY1LTEuMjQ3LDExLjM3NCwxMS4zNzQsMCwwLDAsMy4zMTEtNi43OTRjLjI0OS0yLjg0NS0uNzktNS43MDYtMy4wNS04LjUzMUExOS44MjQsMTkuODI0LDAsMCwxLDQyLjE3NSwxNC44MTNaTTM1LDMyYTMsMywwLDEsMS0zLTNBMywzLDAsMCwxLDM1LDMyWk0zMS41ODYsMTIuMDIxYzIuNzY3LDIuODczLDQuMDY2LDUuNzIyLDMuODMxLDguNDdhMTAuMSwxMC4xLDAsMCwxLTMuNzg0LDYuNTMsMTkuNjUyLDE5LjY1MiwwLDAsMC05LjU4NS0xMi4zNDRBMTkuODM4LDE5LjgzOCwwLDAsMSwzMS41ODYsMTIuMDIxWk0yMC4xMiwxNS45NDhhMTcuNjU3LDE3LjY1NywwLDAsMSw5LjU5MiwxMS42MzMsNC45NTEsNC45NTEsMCwwLDAtLjk1Ny42NDcsMTguODg2LDE4Ljg4NiwwLDAsMC0xNC4zMzgtNS43NTJBMjAuMTI2LDIwLjEyNiwwLDAsMSwyMC4xMiwxNS45NDhaTTEyLDMyYTE5Ljg3LDE5Ljg3LDAsMCwxLDEuNDQyLTcuNDE2QTE2LjM4NSwxNi4zODUsMCwwLDEsMjUuODE2LDI4LjI2YTEzLjc5LDEzLjc5LDAsMCwwLTguMDY0LDEuMjkxQTEyLjY0NCwxMi42NDQsMCwwLDAsMTIuMzExLDM1LjQsMTkuOTEzLDE5LjkxMywwLDAsMSwxMiwzMlptMS4xNjQsNi42NmMxLjEzLTMuNTI5LDIuOTgyLTYsNS41Mi03LjM0YTEyLjY0MywxMi42NDMsMCwwLDEsOC41NjEtLjc4N0E0LjkxOSw0LjkxOSwwLDAsMCwyNywzMmMwLC4xMDkuMDI1LjIxMS4wMzIuMzE4LTIuMDA4LjkxNS03Ljk2MSw0LjQyLTguOSwxNC4wNjNBMjAuMDM0LDIwLjAzNCwwLDAsMSwxMy4xNjQsMzguNjZabTYuODc4LDkuMzMzYy4zNjQtOS4yNzksNS41NjMtMTIuNzQzLDcuNTMxLTEzLjcxOWE1LDUsMCwwLDAsMS4wNjUsMS40Yy0uOTU4LDIuNjA5LTIuODUzLDkuNzkxLDIuMTA4LDE2LjI2MUExOS44NTYsMTkuODU2LDAsMCwxLDIwLjA0Miw0Ny45OTNaTTMzLjM4MSw1MS45M2MtNS40LTUuNzMzLTMuOTItMTIuNDk1LTIuOTg4LTE1LjIxOUE0LjkyOSw0LjkyOSwwLDAsMCwzMiwzN2MuMDgxLDAsLjE1Ni0uMDIuMjM1LS4wMjQuNiwzLjA0OSwyLjgyOSw5LjIyMywxMS4xMTEsMTEuNDc1QTE5Ljg1NiwxOS44NTYsMCwwLDEsMzMuMzgxLDUxLjkzWm0xMS45NjYtNS4wNzhjLTguNDQxLTEuNjE3LTEwLjYyMy03LjI5Mi0xMS4xNzQtMTAuMzdhNS4wMDYsNS4wMDYsMCwwLDAsMS4wODQtLjcxOWMxLjg2OCwxLjksNi4yMTUsNS42MzMsMTEuNTIyLDUuNjMzYTExLjIwOCwxMS4yMDgsMCwwLDAsMy4wODUtLjQ1NUEyMC4wNjksMjAuMDY5LDAsMCwxLDQ1LjM0Nyw0Ni44NTJaTTUyLDMyYTE5LjksMTkuOSwwLDAsMS0xLjA3NCw2LjQxNGMtNi41MDcsMy4xMi0xMi40NjItMi4xODQtMTQuNDM4LTQuMjUxYTQuOTI3LDQuOTI3LDAsMCwwLC4zNjktMS4wMjUsMTYuNiwxNi42LDAsMCwwLDEuNzg5LjA5NCwxOC4zMjgsMTguMzI4LDAsMCwwLDEyLjkyNi01LjMzOUEyMCwyMCwwLDAsMSw1MiwzMlptLTE1LjA4OC0uODY4YTQuNzQ1LDQuNzQ1LDAsMCwwLS4xNzMtLjY1YzIuOTI2LTEuMTU1LDkuMjM0LTQuNzY2LDcuODE3LTE0LjAyOGEyMC4wNTcsMjAuMDU3LDAsMCwxLDYuMzk0LDkuMkExNi4zNDQsMTYuMzQ0LDAsMCwxLDM2LjkxMiwzMS4xMzJaIi8+CiAgICAgICAgPHBhdGggZD0iTTksMTJBMywzLDAsMSwwLDYsOSwzLDMsMCwwLDAsOSwxMlpNOSw4QTEsMSwwLDEsMSw4LDksMSwxLDAsMCwxLDksOFoiLz4KICAgICAgICA8cGF0aCBkPSJNNTUsNmEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCw1NSw2Wm0wLDRhMSwxLDAsMSwxLDEtMUExLDEsMCwwLDEsNTUsMTBaIi8+CiAgICAgICAgPHBhdGggZD0iTTEyLDU1YTMsMywwLDAsMC0zLTMsMi45NjYsMi45NjYsMCwwLDAtMSwuMTg0VjQ1SDZWNTVhMywzLDAsMCwwLDMsM2g2VjU2SDExLjgxNkEyLjk2NiwyLjk2NiwwLDAsMCwxMiw1NVpNOSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw5LDU2WiIvPgogICAgICAgIDxwYXRoIGQ9Ik01Niw1Mi4xODRBMi45NjYsMi45NjYsMCwwLDAsNTUsNTJhMywzLDAsMCwwLTMsMywyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDV2Mkg1NWEzLDMsMCwwLDAsMy0zVjQ5SDU2Wk01NSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw1NSw1NloiLz4KICAgICAgICA8cmVjdCB4PSIxNyIgeT0iNTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",sxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyOC42MDcgNDI4LjYwNyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00MjMuNzczLDM0My44NzFMNDIzLjc3MywzNDMuODcxYy02LjYxNy00LjU5OS0xMi40NC0xMC4yNDYtMTcuMjQxLTE2LjcxOGMtMTEuNDk0LTEzLjA2MS0yNi4xMjItMjkuMjU3LTUzLjI5LTI5LjI1NwoJCQkJYy0yNy4xNjcsMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtMTAuOTcxLTEyLjUzOS0yNS42LTI5Ljc4LTUzLjI5LTI5Ljc4Yy0yNy42OSwwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1CgkJCQlzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1Yy03LjQ1OC05Ljg1LTE2Ljg4OS0xOC4wMzUtMjcuNjktMjQuMDMzYy01LjE5NC0yLjU5Ny0xMS41MDktMC40OTItMTQuMTA2LDQuNzAyCgkJCQljLTIuNTk3LDUuMTk0LTAuNDkyLDExLjUwOSw0LjcwMiwxNC4xMDZjOC4yMDMsNC45NDQsMTUuNDU3LDExLjMxNCwyMS40MiwxOC44MDhjMTIuMDE2LDE0LjEwNiwyNi4xMjIsMjkuNzgsNTMuMjksMjkuNzgKCQkJCXM0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4YzEyLjAxNi0xNC4xMDYsMTkuODUzLTIyLjQ2NSwzNy42MTYtMjIuNDY1czI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1CgkJCQljMTAuOTcxLDEyLjUzOSwyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4YzI3LjY5LDAsNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NQoJCQkJYzE3Ljc2MywwLDI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1YzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDM1My41OTQsNDI4LjY3OSwzNDcuMDQ1LDQyMy43NzMsMzQzLjg3MXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDIzLjc3MywyNjUuNTAzTDQyMy43NzMsMjY1LjUwM2MtNi42MTctNC41OTktMTIuNDQtMTAuMjQ2LTE3LjI0MS0xNi43MThjLTExLjQ5NC0xMy4wNjEtMjYuMTIyLTI5LjI1Ny01My4yOS0yOS4yNTcKCQkJCWMtMjcuMTY3LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjVzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1CgkJCQljLTEwLjk3MS0xMi41MzktMjUuNi0yOS43OC01My4yOS0yOS43OGMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NQoJCQkJcy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJcy0wLjQ5MiwxMS41MDksNC43MDIsMTQuMTA2YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NWM0LjkwNSwzLjE3NCwxMS40NTUsMS43NzEsMTQuNjI5LTMuMTM1CgkJCQlDNDMwLjA4MiwyNzUuMjI3LDQyOC42NzksMjY4LjY3Nyw0MjMuNzczLDI2NS41MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyMy43NzMsMTgxLjkxMUw0MjMuNzczLDE4MS45MTFjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhzLTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjVzLTI1LjYtMjkuNzgtNTMuMjktMjkuNzgKCQkJCWMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMmMtMi41OTcsNS4xOTQtMC40OTIsMTEuNTA5LDQuNzAyLDE0LjEwNgoJCQkJYzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4czQxLjI3My0xNS42NzMsNTMuMjktMjkuNzgKCQkJCWMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NXMyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQljMjcuNjksMCw0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4czE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDE5MS42MzUsNDI4LjY3OSwxODUuMDg1LDQyMy43NzMsMTgxLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNS44MTQsODIuMTI0YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NmM0LjkwNSwzLjE3NCwxMS40NTUsMS43NywxNC42MjktMy4xMzUKCQkJCWMzLjE3NC00LjkwNSwxLjc3MS0xMS40NTUtMy4xMzUtMTQuNjI5aDBjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1cy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NQoJCQkJYy0xMC45NzEtMTIuNTM5LTI1LjYtMjkuNzgtNTMuMjktMjkuNzhjLTI3LjY5LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjUKCQkJCVM1My44OCw5OS44ODcsNDIuOTA4LDg3LjM0OGMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJUzAuNjIxLDc5LjUyNyw1LjgxNCw4Mi4xMjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",ixe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwOCA1MDgiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxMzkuMyIgd2lkdGg9IjE2LjQiIGhlaWdodD0iMzguMiIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTA0LjEsMjEuNCA4OC45LDI3LjcgOTgsNDkuOCAxMTMuMiw0My41IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNy41LDg5LjQgMjEuMywxMDQuNiA0My4zLDExMy43IDQ5LjUsOTguNSAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkwLjksMjEuNCAxODEuOCw0My41IDE5Ni45LDQ5LjggMjA2LDI3LjcgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQzLjMsMTgyLjcgMjEuMywxOTEuOCAyNy41LDIwNyA0OS41LDE5Ny45IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNjcuNCw4OS40IDI0NS40LDk4LjUgMjUxLjcsMTEzLjcgMjczLjcsMTA0LjYgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI0NiwzNy42IDIxOS4xLDY0LjYgMjMwLjcsNzYuMyAyNTcuNiw0OS4yIAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2NC4zLDIyMC4xIDM3LjQsMjQ3LjEgNDksMjU4LjggNzUuOSwyMzEuNyAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQuMywxNDAgMCwxNDAgMCwxNTYuNCAxNC4zLDE1Ni40IDM4LjEsMTU2LjQgMzguMSwxNDAgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU5LjEsNDcuNyA0OSwzNy42IDM3LjQsNDkuMiA2NC4zLDc2LjMgNzUuOSw2NC42IAkJIi8+CiAgICAgICAgPHBhdGggZD0iTTMxOS41LDE3Mi45djE2LjVjNDkuNywwLDkwLjEsNDAuNiw5MC4xLDkwLjZINDI2QzQyNi4xLDIyMC45LDM3OC4zLDE3Mi45LDMxOS41LDE3Mi45eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjYuMSwyOTUuNWMwLjYtNS42LDAuOS0xMC42LDAuOS0xNS42YzAtODEuNy02Ni4yLTE0OC4yLTE0Ny41LTE0OC4yYy0yOC40LDAtNTUuNSw4LjItNzguNywyM2MwLjItMi4yLDAuNS00LjMsMC41LTYuNQoJCQljMC01Mi00Mi4xLTk0LjMtOTMuOC05NC4zcy05My44LDQyLjMtOTMuOCw5NC4zYzAsMzAuNiwxNC45LDU5LjEsMzkuNSw3Ni43Yy0xNS40LDE3LjItMjUuNSwzOS4zLTI3LjMsNjMuNwoJCQljLTM3LDQtNjUuOCwzNS41LTY1LjgsNzMuN2MwLDQwLjksMzMuMSw3NC4xLDczLjcsNzQuMWgzNjAuNWM0MC43LDAsNzMuNy0zMy4yLDczLjctNzQuMUM1MDgsMzMzLjcsNDkxLjQsMzA3LjcsNDY2LjEsMjk1LjV6CgkJCSBNNzAsMTQ4LjJjMC00Mi45LDM0LjctNzcuOCw3Ny40LTc3LjhjNDIuNywwLDc3LjQsMzQuOSw3Ny40LDc3LjhjMCw2LjktMC45LDEzLjktMi43LDIwLjZjLTguMyw3LjQtMTUuNywxNS41LTIyLjEsMjQuNAoJCQljLTMzLjEtOS4xLTY4LjctMS4zLTk0LjksMjAuMUM4My4zLDE5OSw3MCwxNzQuNSw3MCwxNDguMnogTTQzNC4zLDQxOS45SDczLjdjLTMxLjYsMC01Ny40LTI1LjktNTcuNC01Ny42CgkJCWMwLTMxLjgsMjUuNy01Ny42LDU3LjQtNTcuNmg4LjJ2LTguMmMwLTQ5LjksNDAuNC05MC42LDkwLjEtOTAuNmMxNC40LDAsMzQuNyw2LjgsMzQuNyw2LjhzMzguNy02NC40LDExMi44LTY0LjQKCQkJYzcyLjMsMCwxMzEuMSw1OS4xLDEzMS4xLDEzMS43YzAsMTMuOS0yLjYsMjYuMS0yLjYsMjYuMWw2LjIsMi4zYzIyLjMsOC40LDM3LjMsMzAuMSwzNy4zLDUzLjkKCQkJQzQ5MS42LDM5NCw0NjUuOSw0MTkuOSw0MzQuMyw0MTkuOXoiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg4LjQsNDU1LjIgNDcuNSw0OTYuNCA1OS4xLDUwOCAxMDAsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE3OC42LDQ1NS4yIDEzNy42LDQ5Ni40IDE0OS4yLDUwOCAxOTAuMSw0NjYuOCAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjY4LjcsNDU1LjIgMjI3LjcsNDk2LjQgMjM5LjMsNTA4IDI4MC4zLDQ2Ni44IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzNTguOCw0NTUuMiAzMTcuOSw0OTYuNCAzMjkuNCw1MDggMzcwLjQsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ0OC45LDQ1NS4yIDQwOCw0OTYuNCA0MTkuNiw1MDggNDYwLjUsNDY2LjggCQkiLz4KICAgIDwvZz4KPC9zdmc+Cg==",rxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgNTVoLTV2LTQ0YTMuMDA5IDMuMDA5IDAgMCAwIDMtM3YtNWExIDEgMCAwIDAgLTEtMWgtNTJhMSAxIDAgMCAwIC0xIDF2NWEzLjAwOSAzLjAwOSAwIDAgMCAzIDN2NDRoLTVhMSAxIDAgMCAwIC0xIDF2NWExIDEgMCAwIDAgMSAxaDU4YTEgMSAwIDAgMCAxLTF2LTVhMSAxIDAgMCAwIC0xLTF6bS01NC00N3YtNGg1MHY0YTEgMSAwIDAgMSAtMSAxaC00OGExIDEgMCAwIDEgLTEtMXptNDcgM3Y0NGgtNDR2LTQ0em02IDQ5aC01NnYtM2g1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMTJoLTQwYTEgMSAwIDAgMCAtMSAxdjQwYTEgMSAwIDAgMCAxIDFoNDBhMSAxIDAgMCAwIDEtMXYtNDBhMSAxIDAgMCAwIC0xLTF6bS0yMSA0MGgtMTh2LTE5aDE4em0wLTIxaC0xOHYtMTdoMTh6bTIwIDIxaC0xOHYtMTloMTh6bTAtMjFoLTE4di0xN2gxOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTUuMTcyIDE4aDUuNjU3djJoLTUuNjU3eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcwNyAtLjcwNyAuNzA3IC43MDcgLTguMTYzIDE4LjI5MykiLz4KICAgICAgICA8cGF0aCBkPSJtMTQuMTM2IDIwLjVoMTIuNzI4djJoLTEyLjcyOHoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC05LjE5OCAyMC43OTMpIi8+CiAgICA8L2c+Cjwvc3ZnPg==",oxe={"Alarm Systems":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSItMzEgMCA1MTEgNTExLjk5OTk4IiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzUuMzI4MTI1IDExOS4xNjc5NjljMjAuODM5ODQ0IDguMDU4NTkzIDM1LjY0NDUzMSAyMS4xNDg0MzcgNDQuNjMyODEzIDQxLjUwMzkwNiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzEuNjg3NSAxMjguNTg1OTM4YzE4Ljk4MDQ2OSA3LjMzOTg0MyAzMS4zODI4MTIgMTguODMyMDMxIDM5LjAzNTE1NiAzNi4xNjQwNjIgMS42Njc5NjkgMy43NzM0MzggNS4zNjMyODIgNi4wMjM0MzggOS4yNDIxODggNi4wMjM0MzggMS4zNjMyODEgMCAyLjc0NjA5NC0uMjc3MzQ0IDQuMDcwMzEyLS44NjMyODIgNS4xMDU0NjktMi4yNTM5MDYgNy40MTQwNjMtOC4yMTQ4NDQgNS4xNjAxNTYtMTMuMzE2NDA2LTkuODIwMzEyLTIyLjI1LTI2LjI1LTM3LjU3NDIxOS01MC4yMjY1NjItNDYuODQzNzUtNS4xOTkyMTktMi4wMTE3MTktMTEuMDQ2ODc1LjU3NDIxOS0xMy4wNTg1OTQgNS43NzczNDQtMi4wMTE3MTggNS4yMDMxMjUuNTc4MTI1IDExLjA0Njg3NSA1Ljc3NzM0NCAxMy4wNTg1OTR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDcuMTA1NDY5IDIzNy44MTI1YzIwLjA4OTg0MyAwIDM2LjQzNzUtMTYuMzQzNzUgMzYuNDM3NS0zNi40MzM1OTQgMC0yMC4wOTM3NS0xNi4zNDc2NTctMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDM3NSAxNi4zNDM3NS0zNi40Mzc1IDM2LjQzNzUgMCAyMC4wODk4NDQgMTYuMzQ3NjU2IDM2LjQzMzU5NCAzNi40Mzc1IDM2LjQzMzU5NHptMC01Mi42NzU3ODFjOC45NTMxMjUgMCAxNi4yNDIxODcgNy4yODUxNTYgMTYuMjQyMTg3IDE2LjI0MjE4NyAwIDguOTUzMTI1LTcuMjg5MDYyIDE2LjIzODI4Mi0xNi4yNDIxODcgMTYuMjM4MjgyLTguOTU3MDMxIDAtMTYuMjQyMTg4LTcuMjg1MTU3LTE2LjI0MjE4OC0xNi4yMzgyODIgMC04Ljk1NzAzMSA3LjI4NTE1Ny0xNi4yNDIxODcgMTYuMjQyMTg4LTE2LjI0MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM5MC4xNzk2ODggMTQ3LjAxNTYyNWMzLjc2NTYyNCAwIDcuMzk4NDM3LS41NzQyMTkgMTAuODIwMzEyLTEuNjM2NzE5bDcuMzM5ODQ0IDkuODcxMDk0YzEzLjk0MTQwNiAxOC43NSAyMS42MjEwOTQgNDEuOTQ1MzEyIDIxLjYyMTA5NCA2NS4zMTI1djU5LjE1MjM0NGMwIDUuNTc4MTI1IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2IDUuNTc0MjE4IDAgMTAuMDk3NjU2LTQuNTE5NTMxIDEwLjA5NzY1Ni0xMC4wOTc2NTZ2LTU5LjE1MjM0NGMwLTI3LjY3NTc4MS05LjA5Mzc1LTU1LjE1MjM0NC0yNS42MDkzNzUtNzcuMzU5Mzc1bC02LjY3NTc4MS04Ljk4MDQ2OWM1LjQ0OTIxOC02LjM2NzE4NyA4Ljc0NjA5NC0xNC42MjUgOC43NDYwOTQtMjMuNjQwNjI1IDAtMjAuMDkzNzUtMTYuMzQzNzUtMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDMzNTk0IDE2LjM0Mzc1LTM2LjQzMzU5NCAzNi40Mzc1IDAgMjAuMDg5ODQ0IDE2LjM0Mzc1IDM2LjQzMzU5NCAzNi40MzM1OTQgMzYuNDMzNTk0em0wLTUyLjY3NTc4MWM4Ljk1NzAzMSAwIDE2LjI0MjE4NyA3LjI4NTE1NiAxNi4yNDIxODcgMTYuMjQyMTg3IDAgOC45NTMxMjUtNy4yODUxNTYgMTYuMjQyMTg4LTE2LjI0MjE4NyAxNi4yNDIxODgtOC45NTMxMjYgMC0xNi4yNDIxODgtNy4yODkwNjMtMTYuMjQyMTg4LTE2LjI0MjE4OCAwLTguOTU3MDMxIDcuMjg5MDYyLTE2LjI0MjE4NyAxNi4yNDIxODgtMTYuMjQyMTg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjA1ODU5NCAzNDkuMDUwNzgxYy01LjU3ODEyNSAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU3djYzLjMyMDMxMmMwIDE0LjIzMDQ2OS0xMS41NzgxMjYgMjUuODA4NTk0LTI1LjgwODU5NCAyNS44MDg1OTRoLTQ0LjU5NzY1NnYtMzMuNDI5Njg4YzAtNS41NzgxMjUtNC41MTk1MzItMTAuMDk3NjU2LTEwLjA5Mzc1LTEwLjA5NzY1NmgtNDIuMjY1NjI2di0xMTIuNDUzMTI1YzIxLjg1NTQ2OS0yNC4wMzUxNTYgMzUuMTkxNDA3LTU1Ljk0OTIxOSAzNS4xOTE0MDctOTAuOTE3OTY5IDAtNzQuNTk3NjU2LTYwLjY4NzUtMTM1LjI4NTE1Ni0xMzUuMjgxMjUtMTM1LjI4NTE1NnMtMTM1LjI4MTI1IDYwLjY4NzUtMTM1LjI4MTI1IDEzNS4yODUxNTZjMCAzMy4xMDU0NjkgMTEuOTU3MDMxIDYzLjQ2NDg0NCAzMS43NzczNDMgODcuMDAzOTA2djIxMy41MTk1MzJjMCA1LjU3ODEyNSA0LjUyMzQzOCAxMC4wOTc2NTYgMTAuMDk3NjU3IDEwLjA5NzY1NmgyMzUuNzYxNzE5YzUuNTc0MjE4IDAgMTAuMDkzNzUtNC41MTk1MzEgMTAuMDkzNzUtMTAuMDk3NjU2di0zMy40Mjk2ODhoNDQuNTk3NjU2YzI1LjM2NzE4NyAwIDQ2LjAwMzkwNi0yMC42MzY3MTggNDYuMDAzOTA2LTQ2LjAwMzkwNnYtNjMuMzIwMzEyYzAtNS41NzgxMjYtNC41MjM0MzgtMTAuMDk3NjU3LTEwLjA5NzY1Ni0xMC4wOTc2NTd6bS0yMzIuOTUzMTI1LTI2Mi43NjE3MTljNjMuNDU3MDMxIDAgMTE1LjA4NTkzNyA1MS42Mjg5MDcgMTE1LjA4NTkzNyAxMTUuMDg5ODQ0IDAgNjMuNDU3MDMyLTUxLjYyODkwNiAxMTUuMDg1OTM4LTExNS4wODU5MzcgMTE1LjA4NTkzOC02My40NjA5MzggMC0xMTUuMDg1OTM4LTUxLjYyODkwNi0xMTUuMDg1OTM4LTExNS4wODU5MzggMC02My40NjA5MzcgNTEuNjI1LTExNS4wODk4NDQgMTE1LjA4NTkzOC0xMTUuMDg5ODQ0em0tODMuMzA4NTk0IDIyMS42MDE1NjNjMjIuOTgwNDY5IDE4LjAxNTYyNSA1MS45MTAxNTYgMjguNzY5NTMxIDgzLjMwODU5NCAyOC43Njk1MzEgMjkuODYzMjgxIDAgNTcuNDkyMTg3LTkuNzM0Mzc1IDc5Ljg5NDUzMS0yNi4xODc1djE4MS4zMzIwMzJoLTE2My4yMDMxMjV6bTIxNS41NjY0MDYgMTgzLjkxNDA2M2gtMzIuMTY3OTY5di02Ni44NTkzNzZoMzIuMTY3OTY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ4LjE2MDE1NiAzNzcuNzg5MDYyaDE3LjkyNTc4MmM1LjU3NDIxOCAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzgtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyNTc4MmMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk4LjE0NDUzMSAzNzcuNzg5MDYyaDE3LjkyMTg3NWM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyMTg3NWMtNS41NzgxMjUgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTE5NTMxIDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY2LjA0Njg3NSAzNTcuNTkzNzVoLTE3LjkyMTg3NWMtNS41NzQyMTkgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDE3LjkyMTg3NWM1LjU3ODEyNSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDguMTYwMTU2IDQyMC42NzU3ODFoNjcuOTA2MjVjNS41NzQyMTkgMCAxMC4wOTc2NTYtNC41MTk1MzEgMTAuMDk3NjU2LTEwLjA5NzY1NnMtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTY3LjkwNjI1Yy01LjU3NDIxOCAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU2czQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4LjEyNSA0NDMuMTU2MjVoLTk5Ljk2NDg0NGMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDk5Ljk2NDg0NGM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMzU1NDY5IDQwLjEzNjcxOWMxLjg0Mzc1IDMuMzIwMzEyIDUuMjg1MTU2IDUuMTkxNDA2IDguODMyMDMxIDUuMTkxNDA2IDEuNjYwMTU2IDAgMy4zNDM3NS0uNDE0MDYzIDQuODk4NDM4LTEuMjc3MzQ0IDQuODc1LTIuNzEwOTM3IDYuNjI1LTguODU5Mzc1IDMuOTE0MDYyLTEzLjczNDM3NWwtMTMuOTg0Mzc1LTI1LjEyODkwNmMtMi43MTA5MzctNC44NzEwOTQtOC44NTkzNzUtNi42MjUtMTMuNzM0Mzc1LTMuOTEwMTU2LTQuODcxMDk0IDIuNzEwOTM3LTYuNjI1IDguODU5Mzc1LTMuOTE0MDYyIDEzLjczNDM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTYzLjE0NDUzMSA4My4wMTU2MjUtMjYuMDU0Njg3LTE1LjAzOTA2M2MtNC44MzIwMzItMi43ODkwNjItMTEuMDAzOTA2LTEuMTMyODEyLTEzLjc5Mjk2OSAzLjY5NTMxM3MtMS4xMzI4MTMgMTEuMDAzOTA2IDMuNjk1MzEzIDEzLjc5Mjk2OWwyNi4wNTQ2ODcgMTUuMDQyOTY4YzEuNTg5ODQ0LjkxNzk2OSAzLjMyODEyNSAxLjM1MTU2MyA1LjAzOTA2MyAxLjM1MTU2MyAzLjQ4ODI4MSAwIDYuODgyODEyLTEuODA4NTk0IDguNzUzOTA2LTUuMDQ2ODc1IDIuNzg5MDYyLTQuODMyMDMxIDEuMTMyODEyLTExLjAwNzgxMi0zLjY5NTMxMy0xMy43OTY4NzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4xMTMyODEgMTQ2LjIxMDkzOC0zMC4wODU5MzctMS4yODEyNWMtNS41ODIwMzItLjI1LTEwLjI4MTI1IDQuMDg5ODQzLTEwLjUxOTUzMiA5LjY2MDE1Ni0uMjM0Mzc0IDUuNTcwMzEyIDQuMDg5ODQ0IDEwLjI4MTI1IDkuNjYwMTU3IDEwLjUxNTYyNWwzMC4wODU5MzcgMS4yODEyNWMuMTQ0NTMyLjAwNzgxMi4yOTI5NjkuMDA3ODEyLjQzNzUuMDA3ODEyIDUuMzc4OTA2IDAgOS44NTE1NjMtNC4yNDIxODcgMTAuMDc4MTI1LTkuNjY3OTY5LjIzODI4MS01LjU3MDMxMi00LjA4NTkzNy0xMC4yNzczNDMtOS42NTYyNS0xMC41MTU2MjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODMuNjQwNjI1IDE5OC42MjUuMTIxMDk0LjI5Njg3NWMxLjU4OTg0MyAzLjkyNTc4MSA1LjM2NzE4NyA2LjMwNDY4NyA5LjM1OTM3NSA2LjMwNDY4NyAxLjI2MTcxOCAwIDIuNTQ2ODc1LS4yMzgyODEgMy43ODkwNjItLjc0MjE4NyA1LjE2Nzk2OS0yLjA5Mzc1IDcuNjYwMTU2LTcuOTgwNDY5IDUuNTY2NDA2LTEzLjE0ODQzN2wtLjEyMTA5My0uMjk2ODc2Yy0yLjA5Mzc1LTUuMTY3OTY4LTcuOTgwNDY5LTcuNjU2MjUtMTMuMTQ4NDM4LTUuNTYyNXMtNy42NjAxNTYgNy45ODA0NjktNS41NjY0MDYgMTMuMTQ4NDM4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ5LjM2NzE4OCAzMTUuNjY3OTY5Yy0yLjA3ODEyNi01LjE3MTg3NS03Ljk2NDg0NC03LjY3OTY4OC0xMy4xMzY3MTktNS42MDE1NjMtNS4xNzE4NzUgMi4wODIwMzItNy42Nzk2ODggNy45NjA5MzgtNS42MDE1NjMgMTMuMTM2NzE5bC4xMTcxODguMjkyOTY5YzEuNTg1OTM3IDMuOTQxNDA2IDUuMzcxMDk0IDYuMzM1OTM3IDkuMzc1IDYuMzM1OTM3IDEuMjUzOTA2IDAgMi41MjczNDQtLjIzNDM3NSAzLjc2MTcxOC0uNzM0Mzc1IDUuMTc1NzgyLTIuMDc4MTI1IDcuNjgzNTk0LTcuOTYwOTM3IDUuNjAxNTYzLTEzLjEzMjgxMnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Amplifier:yfe,Awnings:Tfe,"Battery Status":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zOTQuMDYzIDM5MS45OTZjLTkuMTk4LTUuMjktMTguMzczLTEwLjYyMy0yNy41NTgtMTUuOTM3IDUuMDAyLTExLjc2OSAxMC4xOTQtMjMuOTAyIDE0LjkwMy0zNi4wNTMgMS44MDktNC42NjcgMS4xODktOS45MTEtMS42NTUtMTQuMDI4LTUuNzc2LTguMzYxLTE2Ljg2My04Ljg1NS0yNC4zNDQtMS43NC0xOS42NjEgMTguNy0zOS4wODUgMzctNTguNjUyIDU1LjUzNy0zLjc3NSAzLjU3Ny01LjYzOSA4LjQzNC01LjExIDEzLjMyNy41MjMgNC44NDYgMy4zMzkgOS4xNDQgNy43MjUgMTEuNzkyIDkuMzQ1IDUuNjQxIDE4Ljc2MSAxMC45NTUgMjguMDk4IDE2LjI5MS00LjY0NCAxMC45NTEtMTAuMzcyIDI0LjI0Ni0xNC45MiAzNi4wMDItMi44ODcgNy40NjIuNDIxIDE1Ljc0NCA3LjY5MyAxOS4yNjQgNS43MTQgMi43NjYgMTIuMjggMi4yMTEgMTguMjk5LTMuNDgzIDE5LjM0NC0xOC4zIDM5LjM0My0zNy4yMTQgNTguNjctNTUuNTQ3IDMuODE4LTMuNjIyIDUuNjc0LTguNTEyIDUuMDktMTMuNDE2LS41OTEtNC45NjItMy41OTQtOS4zMzgtOC4yMzktMTIuMDA5em0tNy4xNzQgMTQuNTRjLTE1LjYzNCAxNC44MzItNTguOTQ5IDU2Ljk3My02MC4xMDkgNTYuNDEyLS4xMTgtLjA1Ny0uMzA2LS4xNzgtLjI0LS4zNDkgNS4xNzktMTMuNTI2IDExLjYzNS0yOC4yNzIgMTYuOTE4LTQwLjczMiAxLjQ5My0zLjUyMi45MDctOC4yOC0zLjc2OC0xMC45Ny0xMC44NC02LjIzNy0yMS43OTEtMTIuMzU0LTMyLjU2NC0xOC44NDUtLjgwMi0uNDgzLS43NjctLjcxLS4wNTEtMS4zODggMjAuODc0LTE5Ljc3OSA1Ny45NTktNTUuMzExIDU5LjgwMy01Ni40NTkuMzk2LjA4NC41NDQuMjk5LjU0NS4zODQtNS4zMDcgMTMuNjg0LTExLjIxMyAyNy4zMDUtMTYuOSA0MC43MzktMS43OTQgNC4yMzctLjI5MyA4LjY0OSAzLjczOSAxMC45OCA0LjM5OSAyLjU0IDguNzk2IDUuMDg3IDEzLjE5MSA3LjYzNCA2LjM3NCAzLjY5MyAxMi43NDggNy4zODcgMTkuMTM0IDExLjA1OSAxLjEwNi42MzUgMS4xMzYuNzQ0LjMwMiAxLjUzNXptLTgxLjc4NC0yMDguNGgtMjAxLjQ2Yy0xMC4yNzMgMC0xOC42MzEgOC4zMy0xOC42MzEgMTguNTY5djQ0LjI3NmMwIDEwLjIzOSA4LjM1NyAxOC41NjkgMTguNjMxIDE4LjU2OWgyMDEuNDYxYzEwLjI3MyAwIDE4LjYzMS04LjMzIDE4LjYzMS0xOC41Njl2LTQ0LjI3NmMtLjAwMS0xMC4yMzktOC4zNTgtMTguNTY5LTE4LjYzMi0xOC41Njl6bTMuNjMxIDYyLjg0NWMwIDEuOTY4LTEuNjI5IDMuNTY5LTMuNjMxIDMuNTY5aC0yMDEuNDZjLTIuMDAyIDAtMy42MzEtMS42MDEtMy42MzEtMy41Njl2LTQ0LjI3NmMwLTEuOTY4IDEuNjI5LTMuNTY5IDMuNjMxLTMuNTY5aDIwMS40NjFjMi4wMDIgMCAzLjYzMSAxLjYwMSAzLjYzMSAzLjU2OXY0NC4yNzZ6bTE1LTE0My44OThjMC0xMC4yMzktOC4zNTctMTguNTY5LTE4LjYzMS0xOC41NjloLTIwMS40NmMtMTAuMjczIDAtMTguNjMxIDguMzMtMTguNjMxIDE4LjU2OXY0NC4yNzZjMCAxMC4yMzkgOC4zNTcgMTguNTY5IDE4LjYzMSAxOC41NjloMjAxLjQ2MWMxMC4yNzMgMCAxOC42MzEtOC4zMyAxOC42MzEtMTguNTY5di00NC4yNzZ6bS0xNSA0NC4yNzdjMCAxLjk2OC0xLjYyOSAzLjU2OS0zLjYzMSAzLjU2OWgtMjAxLjQ2Yy0yLjAwMiAwLTMuNjMxLTEuNjAxLTMuNjMxLTMuNTY5di00NC4yNzZjMC0xLjk2OCAxLjYyOS0zLjU2OSAzLjYzMS0zLjU2OWgyMDEuNDYxYzIuMDAyIDAgMy42MzEgMS42MDEgMy42MzEgMy41Njl2NDQuMjc2em0zOC4yNDcgMTIzLjg1N2MtMTguNjUzIDAtMzYuMjY2IDQuNTI5LTUxLjgwMyAxMi41NDJoLTE5MS41MzVjLTEwLjI3MiAwLTE4LjYzIDguMzMxLTE4LjYzIDE4LjU3djQ0LjI3YzAgMTAuMjM5IDguMzU3IDE4LjU3IDE4LjYzIDE4LjU3aDEzMS42MjFjLTEuMDk2IDYuMzE4LTEuNjczIDEyLjgxMi0xLjY3MyAxOS40MzggMCAyNC4yNDMgNy42NTEgNDYuNzI5IDIwLjY2IDY1LjE4MmgtMTUwLjYwOGMtMi4wMDIgMC0zLjYzLTEuNjAyLTMuNjMtMy41N3YtNDQuMjdjMC0xLjk2OSAxLjYyOC0zLjU3IDMuNjMtMy41N2gxMDcuNjQxYzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMDcuNjQxYy0xMC4yNzIgMC0xOC42MyA4LjMzMS0xOC42MyAxOC41N3Y0NC4yN2MwIDEwLjIzOSA4LjM1NyAxOC41NyAxOC42MyAxOC41N2gxNjMuMjM3YzcuMDcgNy4wNjMgMTUuMDY1IDEzLjE5OSAyMy43ODUgMTguMjFoLTE5OC4yNDJjLTE0LjIyNyAwLTI1LjgtMTEuNTc0LTI1LjgtMjUuOHYtMzY1LjA4OWMwLTE0LjIyNiAxMS41NzMtMjUuOCAyNS44LTI1LjhoMjIzLjljMTQuMjI3IDAgMjUuOCAxMS41NzQgMjUuOCAyNS44djE1Ni42NGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xNTYuNjRjMC0yMi40OTctMTguMzAzLTQwLjgtNDAuOC00MC44aC00MC4wNjd2LTM1LjYxMWMwLTE2LjM3Ni0xMy4zMjMtMjkuNjk5LTI5LjY5OS0yOS42OTloLTg0LjM2N2MtMTYuMzc2IDAtMjkuNjk5IDEzLjMyMy0yOS42OTkgMjkuNjk5djM1LjYxMWgtNDAuMDY4Yy0yMi40OTcgMC00MC44IDE4LjMwMy00MC44IDQwLjh2MzY1LjA5YzAgMjIuNDk3IDE4LjMwMyA0MC44IDQwLjggNDAuOGgyMjMuOWMzLjg5MiAwIDcuNzMxLS41NTMgMTEuNDQyLTEuNjM2IDYuMjQ4IDEuMDcxIDEyLjY2NyAxLjYzNiAxOS4yMTYgMS42MzYgNjIuNTI0IDAgMTEzLjM5Mi01MC44NjcgMTEzLjM5Mi0xMTMuMzkyIDAtNjIuNTI0LTUwLjg2Ny0xMTMuMzkxLTExMy4zOTItMTEzLjM5MXptLTE5OS40OTEtMjU1LjUxOGMwLTguMTA1IDYuNTk0LTE0LjY5OSAxNC42OTktMTQuNjk5aDg0LjM2N2M4LjEwNSAwIDE0LjY5OSA2LjU5NCAxNC42OTkgMTQuNjk5djM1LjYxMWgtMTEzLjc2NXptLTQzLjg0NyAzMzQuNDcxYy0yLjAwMiAwLTMuNjMtMS42MDItMy42My0zLjU3di00NC4yN2MwLTEuOTY5IDEuNjI4LTMuNTcgMy42My0zLjU3aDE2OS4zNDFjLTE1LjY2NiAxMy41MjEtMjcuNiAzMS4yNS0zNC4wNDEgNTEuNDF6bTI0My4zMzggMTMyLjgzYy01NC4yNTMgMC05OC4zOTItNDQuMTM4LTk4LjM5Mi05OC4zOTIgMC01NC4yNTMgNDQuMTM5LTk4LjM5MSA5OC4zOTItOTguMzkxczk4LjM5MiA0NC4xMzggOTguMzkyIDk4LjM5MWMwIDU0LjI1NC00NC4xMzkgOTguMzkyLTk4LjM5MiA5OC4zOTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Ceiling Spotlights":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDc0IDc0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDYuNDQgNGgtMi45N2ExIDEgMCAwIDEgMC0yaDIuOTdhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNjguNjQgMTAuMzhoLTYzLjI4YTEgMSAwIDAgMSAtMS0xdi02LjM4YTEgMSAwIDAgMSAxLTFoMjEuMmExIDEgMCAwIDEgMCAyaC0yMC4ydjQuMzhoNjEuMjh2LTQuMzhoLTE0LjJhMSAxIDAgMCAxIDAtMmgxNS4yYTEgMSAwIDAgMSAxIDF2Ni4zOGExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYuNDcgNGgtMi45MWExIDEgMCAwIDEgMC0yaDIuOTFhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgNTEuMjA3YTEgMSAwIDAgMSAtMS0xdi00MC44MjhhMSAxIDAgMSAxIDIgMHY0MC44MjhhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ljc3MSA2Ny4wN2gtMTkuNTQyYTEgMSAwIDAgMSAtLjk3Ny0xLjIxNWwzLjQ5LTE1Ljg1NWExIDEgMCAwIDEgLjk3Ny0uNzg1aDEyLjU2MmExIDEgMCAwIDEgLjk3Ny43ODVsMy40OSAxNS44NmExIDEgMCAwIDEgLS45NzcgMS4yMTV6bS0xOC4zLTJoMTcuMDU2bC0zLjA0OS0xMy44NmgtMTAuOTU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyA3MmE1LjkzNiA1LjkzNiAwIDAgMSAtNS45My01LjkzIDEgMSAwIDAgMSAyIDAgMy45MyAzLjkzIDAgMCAwIDcuODYgMCAxIDEgMCAwIDEgMiAwIDUuOTM2IDUuOTM2IDAgMCAxIC01LjkzIDUuOTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiAzNS4xMTRhMSAxIDAgMCAxIC0xLTF2LTI0LjczNWExIDEgMCAwIDEgMiAwdjI0LjczNWExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjkuNiA1MC4wMjZoLTE4LjM3YTEgMSAwIDAgMSAtLjk3Ni0xLjIxNWwzLjI4LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgwOWExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgybC0yLjgzOS0xMi45MDloLTEwLjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiA1NC42NmE1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQtNS42MzQgMSAxIDAgMSAxIDIgMCAzLjYzNCAzLjYzNCAwIDEgMCA3LjI2OCAwIDEgMSAwIDEgMSAyIDAgNS42NDEgNS42NDEgMCAwIDEgLTUuNjM0IDUuNjM0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMy41ODQgMzUuMTE0YTEgMSAwIDAgMSAtMS0xdi0yNC43MzVhMSAxIDAgMCAxIDIgMHYyNC43MzVhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyLjc3IDUwLjAyNmgtMTguMzdhMSAxIDAgMCAxIC0uOTc2LTEuMjE1bDMuMjc2LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgxMmExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgxbC0yLjgzOS0xMi45MDloLTEwLjIwM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTMuNTg0IDU0LjY2YTUuNjQxIDUuNjQxIDAgMCAxIC01LjYzNC01LjYzNCAxIDEgMCAwIDEgMiAwIDMuNjM0IDMuNjM0IDAgMCAwIDcuMjY4IDAgMSAxIDAgMCAxIDIgMCA1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQgNS42MzR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Chandelier:Dfe,Climate:dfe,"Coffee Makers":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NjYgMTExLjk5NmgtNDkuNzE5bC0xMDkuMjE1LTQ2LjM2MSA0Ljg4OS01NC43NDZjLjI1LTIuNzk2LS42ODctNS41NjgtMi41ODItNy42MzktMS44OTQtMi4wNy00LjU3Mi0zLjI1LTcuMzc4LTMuMjVoLTYwYy0yLjgwNyAwLTUuNDg0IDEuMTgtNy4zNzkgMy4yNS0xLjg5NSAyLjA3MS0yLjgzMSA0Ljg0My0yLjU4MiA3LjYzOWw0Ljg5OCA1NC44NTQtMTA0Ljc5NSA0Ni4yNTNoLTI2LjEzN2MtMzguNTk4IDAtNzAgMzEuNDAyLTcwIDcwdjY5Ljk5N2MwIDE2LjU0MiAxMy40NTggMzAgMzAgMzBzMzAtMTMuNDU4IDMwLTMwdi02OS45OTdjMC01LjQyIDQuNTgtMTAgMTAtMTBoMjYuOTE1bDIxLjQ4MyAxMjEuNzM4YzEuOTI3IDEwLjkyMyA5LjkwNCAxOC4yNjMgMTkuODQ4IDE4LjI2M3Y0MC4wMDNjLTkuNjUyIDAtMTcuMjE3IDYuODAyLTE5Ljc0NCAxNy43NTFsLTMwLjAwMSAxMzBjLS42ODUgMi45NjkuMDIxIDYuMDg5IDEuOTE4IDguNDc0czQuNzc4IDMuNzc0IDcuODI2IDMuNzc0aDI4MGMzLjA0NyAwIDUuOTI5LTEuMzkgNy44MjYtMy43NzQgMS44OTctMi4zODUgMi42MDQtNS41MDUgMS45MTgtOC40NzRsLTMwLjAwMS0xMzBjLTIuNTI1LTEwLjk0OS0xMC4wOTEtMTcuNzUxLTE5Ljc0My0xNy43NTF2LTQwLjAwMmM5Ljk0NCAwIDE3LjkyLTcuMzM5IDE5Ljg0Ny0xOC4yNjJsMTQuMzgxLTgxLjQ5MiA2NC4wNTYtNTUuMjM2YzIuMjAzLTEuODk5IDMuNDctNC42NjUgMy40Ny03LjU3M3YtMjcuNDM4Yy4wMDEtNS41MjQtNC40NzctMTAuMDAxLTkuOTk5LTEwLjAwMXptLTE3NC45MzgtOTEuOTk2LTMuNzUgNDEuOTk2aC0zMC42MzRsLTMuNzUxLTQxLjk5NnptLTQxLjQyMyA2MS45OTZoNDQuNzg1bDcwLjY3MiAzMGgtMTgzLjQyOHptLTE0My42MzkgNzAuMDAxYy0xNi41NDIgMC0zMCAxMy40NTgtMzAgMzB2NjkuOTk3YzAgNS41MTQtNC40ODYgMTAtMTAgMTBzLTEwLTQuNDg2LTEwLTEwdi02OS45OTdjMC0yNy41NyAyMi40My01MCA1MC01MGgxOS44NTZsMy41MyAyMHptNjguMDk0IDEzOC4yNjMtMjcuOTI5LTE1OC4yNjRoNjIuNzYybDIuNTI4IDM1LjgxN2MuMzcyIDUuMjcgNC43NjIgOS4yOTYgOS45NjUgOS4yOTYuMjM2IDAgLjQ3NS0uMDA4LjcxNC0uMDI1IDUuNTA5LS4zODkgOS42Ni01LjE3IDkuMjcxLTEwLjY3OWwtMi40MjktMzQuNDA5aDkwLjUzOWwtMTEuMjk1IDE2MC4wMDJoLTY3Ljk0OWwtMi41MjktMzUuODE3Yy0uMzg5LTUuNTA5LTUuMTY2LTkuNjYxLTEwLjY3OS05LjI3MS01LjUwOS4zODktOS42NiA1LjE3LTkuMjcxIDEwLjY3OWwyLjQyOSAzNC40MDloLTQ1LjUxOGMtLjE5OS0uMzIxLS40NjMtLjkxNC0uNjA5LTEuNzM4em0tLjEwMyA4My45ODhjLjI1OS0xLjEyNS42MS0xLjg1Ny44NTMtMi4yNDloNDUuMzZsLTExLjA3NyAxMjBoLTYyLjMxem0xMzQuMjEyLTIuMjQ4IDExLjA3NyAxMjBoLTkwLjA2OWwxMS4wNzctMTIwem02Ni4yOTcgMi4yNDggMjcuMTc1IDExNy43NTJoLTYyLjMxbC0xMS4wNzctMTIwaDQ1LjM2Yy4yNDMuMzkxLjU5MyAxLjEyMy44NTIgMi4yNDh6bS0yMC4yNTUtMjIuMjQ4aC0xNTkuOTk4di00MC4wMDJoMTU5Ljk5OHptMjAuMTUxLTYxLjc0Yy0uMTQ2LjgyNC0uNDA5IDEuNDE3LS42MDggMS43MzdoLTQ1LjUxOGwxMS4yOTUtMTYwLjAwMWg2Mi43NjJsLTEyLjkzNyA3My4zMDljMCAuMDAxIDAgLjAwMi0uMDAxLjAwM3ptODEuNjA0LTE0NS40MDctNDIuMDI5IDM2LjI0MiA4LjY2NS00OS4wOTloMzMuMzY0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjQuNTk5IDIyMS45OTdjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTBoLS4wMDdjLTUuNTIzIDAtOS45OTYgNC40NzctOS45OTYgMTBzNC40OCAxMCAxMC4wMDMgMTB6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Cold Water":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3NSA0NzUiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik00MzguNDEzLDM0My4xODhDNDI4LjA1OSwzMzUuMDg1LDQxNS4xNzQsMzI1LDM5MC44MzUsMzI1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3NywxOC4xODgKCQlDMzM0LjQ5NiwzNTAuMDQ1LDMyOC4xNjUsMzU1LDMxNC4xNywzNTVjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzQzI3NC43MjksMzM1LjA4NSwyNjEuODQ0LDMyNSwyMzcuNTA2LDMyNQoJCWMtMjQuMzM5LDAtMzcuMjI0LDEwLjA4NS00Ny41NzgsMTguMTg4QzE4MS4xNjYsMzUwLjA0NSwxNzQuODM0LDM1NSwxNjAuODQsMzU1Yy0xMy45OTYsMC0yMC4zMjctNC45NTUtMjkuMDktMTEuODEzCgkJQzEyMS4zOTUsMzM1LjA4NCwxMDguNTA5LDMyNSw4NC4xNywzMjVjLTI0LjMzOSwwLTM3LjIyNSwxMC4wODQtNDcuNTc5LDE4LjE4OEMyNy44MjgsMzUwLjA0NSwyMS40OTYsMzU1LDcuNSwzNTV2MzAKCQljMjQuMzM5LDAsMzcuMjI1LTEwLjA4NCw0Ny41NzktMTguMTg4QzYzLjg0MiwzNTkuOTU1LDcwLjE3NCwzNTUsODQuMTcsMzU1YzEzLjk5NiwwLDIwLjMyNyw0Ljk1NSwyOS4wOTEsMTEuODEzCgkJQzEyMy42MTUsMzc0LjkxNiwxMzYuNSwzODUsMTYwLjg0LDM4NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg0LDQ3LjU3OC0xOC4xODhDMjE3LjE4LDM1OS45NTUsMjIzLjUxMSwzNTUsMjM3LjUwNiwzNTUKCQljMTMuOTk0LDAsMjAuMzI1LDQuOTU1LDI5LjA4NywxMS44MTNDMjc2Ljk0NywzNzQuOTE1LDI4OS44MzMsMzg1LDMxNC4xNywzODVjMjQuMzM4LDAsMzcuMjI0LTEwLjA4NSw0Ny41NzctMTguMTg4CgkJQzM3MC41MSwzNTkuOTU1LDM3Ni44NDEsMzU1LDM5MC44MzUsMzU1YzEzLjk5NSwwLDIwLjMyNSw0Ljk1NSwyOS4wODgsMTEuODEzQzQzMC4yNzcsMzc0LjkxNSw0NDMuMTYyLDM4NSw0NjcuNSwzODV2LTMwCgkJQzQ1My41MDYsMzU1LDQ0Ny4xNzUsMzUwLjA0NSw0MzguNDEzLDM0My4xODh6Ii8+Cgk8cGF0aCBkPSJNMzkwLjgzNSw0MTVjLTI0LjMzOCwwLTM3LjIyNCwxMC4wODUtNDcuNTc3LDE4LjE4OEMzMzQuNDk2LDQ0MC4wNDUsMzI4LjE2NSw0NDUsMzE0LjE3LDQ0NQoJCWMtMTMuOTk0LDAtMjAuMzI1LTQuOTU1LTI5LjA4Ny0xMS44MTNDMjc0LjcyOSw0MjUuMDg1LDI2MS44NDQsNDE1LDIzNy41MDYsNDE1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3OCwxOC4xODgKCQlDMTgxLjE2Niw0NDAuMDQ1LDE3NC44MzQsNDQ1LDE2MC44NCw0NDVjLTEzLjk5NiwwLTIwLjMyNy00Ljk1NS0yOS4wOS0xMS44MTNDMTIxLjM5NSw0MjUuMDg0LDEwOC41MDksNDE1LDg0LjE3LDQxNQoJCWMtMjQuMzM5LDAtMzcuMjI1LDEwLjA4NC00Ny41NzksMTguMTg4QzI3LjgyOCw0NDAuMDQ1LDIxLjQ5Niw0NDUsNy41LDQ0NXYzMGMyNC4zMzksMCwzNy4yMjUtMTAuMDg0LDQ3LjU3OS0xOC4xODgKCQlDNjMuODQyLDQ0OS45NTUsNzAuMTc0LDQ0NSw4NC4xNyw0NDVjMTMuOTk2LDAsMjAuMzI3LDQuOTU1LDI5LjA5MSwxMS44MTNDMTIzLjYxNSw0NjQuOTE2LDEzNi41LDQ3NSwxNjAuODQsNDc1CgkJYzI0LjMzOCwwLDM3LjIyNC0xMC4wODQsNDcuNTc4LTE4LjE4OEMyMTcuMTgsNDQ5Ljk1NSwyMjMuNTExLDQ0NSwyMzcuNTA2LDQ0NWMxMy45OTQsMCwyMC4zMjUsNC45NTUsMjkuMDg3LDExLjgxMwoJCUMyNzYuOTQ3LDQ2NC45MTUsMjg5LjgzMyw0NzUsMzE0LjE3LDQ3NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg1LDQ3LjU3Ny0xOC4xODhDMzcwLjUxLDQ0OS45NTUsMzc2Ljg0MSw0NDUsMzkwLjgzNSw0NDUKCQljMTMuOTk1LDAsMjAuMzI1LDQuOTU1LDI5LjA4OCwxMS44MTNDNDMwLjI3Nyw0NjQuOTE1LDQ0My4xNjIsNDc1LDQ2Ny41LDQ3NXYtMzBjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzCgkJQzQyOC4wNTksNDI1LjA4NSw0MTUuMTc0LDQxNSwzOTAuODM1LDQxNXoiLz4KCTxwb2x5Z29uIHBvaW50cz0iMTg0LjM3OCwyNTguMzIzIDIyMi41LDIzNi4zMTMgMjIyLjUsMjgwLjMzMyAyNTIuNSwyODAuMzMzIDI1Mi41LDIzNi4zMTMgMjkwLjYyMiwyNTguMzIzIDMwNS42MjIsMjMyLjM0MwoJCTI2Ny41LDIxMC4zMzMgMzA1LjYyMiwxODguMzIzIDI5MC42MjIsMTYyLjM0MyAyNTIuNSwxODQuMzUzIDI1Mi41LDE0MC4zMzMgMjIyLjUsMTQwLjMzMyAyMjIuNSwxODQuMzUzIDE4NC4zNzgsMTYyLjM0MwoJCTE2OS4zNzgsMTg4LjMyMyAyMDcuNSwyMTAuMzMzIDE2OS4zNzgsMjMyLjM0MyAJCQkiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjQuMDk1LDExNy45OSA2Mi4yMTYsOTUuOTggNjIuMjE2LDE0MCA5Mi4yMTYsMTQwIDkyLjIxNiw5NS45OCAxMzAuMzM4LDExNy45OSAxNDUuMzM4LDkyLjAxIDEwNy4yMTYsNzAKCQkxNDUuMzM4LDQ3Ljk5IDEzMC4zMzgsMjIuMDEgOTIuMjE2LDQ0LjAyIDkyLjIxNiwwIDYyLjIxNiwwIDYyLjIxNiw0NC4wMiAyNC4wOTUsMjIuMDEgOS4wOTUsNDcuOTkgNDcuMjE3LDcwIDkuMDk1LDkyLjAxCgkJIi8+Cgk8cG9seWdvbiBwb2ludHM9IjM0NC42NjIsMTE3Ljk5IDM4Mi43ODQsOTUuOTggMzgyLjc4NCwxNDAgNDEyLjc4NCwxNDAgNDEyLjc4NCw5NS45OCA0NTAuOTA1LDExNy45OSA0NjUuOTA1LDkyLjAxIDQyNy43ODMsNzAKCQk0NjUuOTA1LDQ3Ljk5IDQ1MC45MDUsMjIuMDEgNDEyLjc4NCw0NC4wMiA0MTIuNzg0LDAgMzgyLjc4NCwwIDM4Mi43ODQsNDQuMDIgMzQ0LjY2MiwyMi4wMSAzMjkuNjYyLDQ3Ljk5IDM2Ny43ODQsNzAKCQkzMjkuNjYyLDkyLjAxIAkJCSIvPgo8L2c+Cjwvc3ZnPgo=",Computer:hfe,Consumption:zfe,Curtains:wfe,Dishwashers:Cfe,Doors:Ife,Doorstep:pfe,Dryer:Afe,Fan:mfe,"Floor Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNzcuMDE4IDEwNC40LTU0Ljg2MS05My40MTZjLTMuOTgtNi43NzUtMTEuMzM0LTEwLjk4NC0xOS4xOTEtMTAuOTg0aC05MS42NTVjLTcuNjk3IDAtMTQuOTczIDQuMDc5LTE4Ljk4NyAxMC42NDRsLTU3LjEzNSA5My40MTRjLTkuMDU1IDE0LjgwMyAxLjYyNiAzMy44NyAxOC45ODcgMzMuODdoMjguMTgyYzIuMjIyIDMzLjQ1MiAyNi44MDggNjAuODg0IDU4LjkxNiA2Ny40MS0uMjc0IDEuODI2LS4xODQtMTMuNTEtLjE4NCAyMTcuMTk1aC0zNy40ODRjLTExLjg5OCAwLTIxLjU3OSA5LjY4LTIxLjU3OSAyMS41Nzl2NDYuMzFjMCAxMS44OTggOS42OCAyMS41NzkgMjEuNTc5IDIxLjU3OWgxMDQuNzljMTEuODk5IDAgMjEuNTc5LTkuNjggMjEuNTc5LTIxLjU3OXYtNDYuMzFjMC0xMS44OTgtOS42OC0yMS41NzktMjEuNTc5LTIxLjU3OWgtMzcuNDg0YzAtMjMwLjc2Ni4wOS0yMTUuMzctLjE4NC0yMTcuMTk1IDIyLjAyNS00LjQ3NiA0MC41MDUtMTguNzk1IDUwLjY2Ni0zOC4xNDF2MzcuNjMxYzAgOC4yMzUgNi42NzYgMTQuOTExIDE0LjkxMSAxNC45MTFzMTQuOTExLTYuNjc2IDE0LjkxMS0xNC45MTF2LTY2LjloNi42MWMxNy4xNjYgMCAyNy44OTMtMTguNzA4IDE5LjE5Mi0zMy41Mjh6bS03Ni44NjYgMzc3Ljc3OGgtODguMzAydi0yOS44MjJoODguMzAyem0tODQuNTk5LTQ1Mi4zNTZoODMuMDgzbDQ1Ljk3NCA3OC4yODRjLTcuMDYxIDAtMTY5LjkwMyAwLTE3Ni45MzggMHptNDAuNDQ3IDE0Ny4xNzJjLTIyLjU5NSAwLTQxLjI2Ny0xNy4xMTctNDMuNzI5LTM5LjA2Nmg4Ny40NThjLTIuNDYyIDIxLjk0OS0yMS4xMzQgMzkuMDY2LTQzLjcyOSAzOS4wNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Garage Doors":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDY0YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04SDhDMy41ODIsMCwwLDMuNTgyLDAsOHY0OGMwLDQuNDE4LDMuNTgyLDgsOCw4aDE2djQwMEg4CgkJYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDQ2NGM0LjQxOCwwLDgtMy41ODIsOC04cy0zLjU4Mi04LTgtOGgtMTZWNjRINDcyeiBNNDA4LDQ2NEg3MnYtNDhoMzM2VjQ2NHogTTQwOCw0MDBINzJ2LTQ4CgkJaDMzNlY0MDB6IE00MDgsMzM2SDcydi00OGgzMzZWMzM2eiBNNDA4LDI3Mkg3MnYtNDhoMzM2VjI3MnogTTQwOCwyMDhINzJ2LTQ4aDMzNlYyMDh6IE00MDgsMTQ0SDcyVjk2aDMzNlYxNDR6IE00NDAsNDY0aC0xNlY4OAoJCWMwLTQuNDE4LTMuNTgyLTgtOC04SDY0Yy00LjQxOCwwLTgsMy41ODItOCw4djM3Nkg0MFY2NGg0MDBWNDY0eiBNMTYsNDhWMTZoNDQ4djMySDE2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTYsNDU2aDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LDMuNTgyLTgsOFMyMTEuNTgyLDQ1NiwyMTYsNDU2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Gates:Ofe,Hairdryer:Efe,Handle:ffe,"Hanging Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05My41MjUgMzU5Ljc3MWgxMDcuODg1djQuMTI5YTUzLjA3MiA1My4wNzIgMCAxIDAgMTA2LjE0NCAwdi00LjEyNGgxMTAuOTIxYTYgNiAwIDAgMCA2LTZjMC04Mi4wMTUtNTguOTEzLTE1MC41MTgtMTM2LjY0LTE2NS40NDR2LTIwLjMxOWEzMS44ODMgMzEuODgzIDAgMCAwIC0yNS44MzUtMzEuMjZ2LTEyMC43NTNhNiA2IDAgMCAwIC0xMiAwdjEyMC43NTNhMzEuODgzIDMxLjg4MyAwIDAgMCAtMjUuODM1IDMxLjI2djIwLjMxNGMtNzcuNzI3IDE0LjkyNi0xMzYuNjQgODMuNDI5LTEzNi42NCAxNjUuNDQ0YTYgNiAwIDAgMCA2IDZ6bTIwMi4wMjkgNC4xMjlhNDEuMDcyIDQxLjA3MiAwIDEgMSAtODIuMTQ0IDB2LTQuMTI0aDgyLjE0NHptLTM5LjU1NC0yMTUuNzIyYTE5Ljg1MSAxOS44NTEgMCAwIDEgMTkuMTggMTQuODY4aC0zOC4zNmExOS44NTEgMTkuODUxIDAgMCAxIDE5LjE4LTE0Ljg2OHptLTE5LjgzNSAyNi44NjhoMzkuNjd2MTEuNDI0YTE2OC4yODggMTY4LjI4OCAwIDAgMCAtMzkuNjcgMHptMTkuODM1IDIyLjI1NGM4NC4yNzQgMCAxNTMuMiA2Ni45NiAxNTYuMzYxIDE1MC40NzRoLTMxMi43MjJjMy4xNjEtODMuNTE3IDcyLjA4Ny0xNTAuNDc0IDE1Ni4zNjEtMTUwLjQ3NHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUwIDQ1NS41MDh2NDAuNDkyYTYgNiAwIDAgMCAxMiAwdi00MC40OTJhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDMuNDIyIDQzMS40ODhhNiA2IDAgMCAwIC0uMDc1IDguNDg1bDI4LjM0NCAyOC44NTFhNiA2IDAgMCAwIDguNTYxLTguNDFsLTI4LjM0NC0yOC44NTFhNiA2IDAgMCAwIC04LjQ4Ni0uMDc1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuMDkyIDQzMS41NjMtMjguMzQ0IDI4Ljg1MWE2IDYgMCAwIDAgOC41NjEgOC40MWwyOC4zNDQtMjguODUxYTYgNiAwIDAgMCAtOC41NjEtOC40MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTg2Ljc1IDIzNi44MWExNjguNzMxIDE2OC43MzEgMCAwIDAgLTQ1LjkyNyA0OC4xNDMgNiA2IDAgMSAwIDEwLjE0MSA2LjQxNyAxNTYuNzgxIDE1Ni43ODEgMCAwIDEgNDIuNjc3LTQ0LjczNiA2IDYgMCAwIDAgLTYuODkxLTkuODI0eiIvPgogICAgPC9nPgo8L3N2Zz4=",Heater:xfe,Hoods:_fe,"Hot Water":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMCA1MTAiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTUgMjQxLjkwMmMtMTguMjIzIDAtMzMuMzU4LTUuOTM3LTQ1LjA5Mi0xNy42MnYtMTQ5LjM1NGMwLTQxLjMxNS0zMy42MTMtNzQuOTI4LTc0LjkyOS03NC45MjhzLTc0LjkyOCAzMy42MTMtNzQuOTI4IDc0LjkyOHYxNDkuMzk1Yy0yNC4yNTQgMjQuMTA3LTY5LjQ3NiAyNC40MTUtOTMuNjYzLTMuODAzLTUuOTgxLTYuOTc4LTE2Ljc5My02Ljk4Mi0yMi43NzcgMC0yNC41ODYgMjguNjg1LTcyLjUzOCAyOC43OTgtOTcuMjIzIDAtNi4zMjItNy4zNzgtMTcuODY3LTYuODY3LTIzLjUzNy45NjMtLjE0OC4yMDQtMTUuNjg4IDIwLjQxOC00Ny44NTIgMjAuNDE4LTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTVjMjguNjMyIDAgNDguNDg5LTExLjI4IDYwLjAyNy0yMC42MjQgMzMuNDQ3IDI3LjYxNSA4Ni41MTIgMjcuNjI1IDExOS45NzMtLjAyMiAzMC4xOTEgMjQuOTQ0IDc0LjM2MiAyNi4xNzkgMTA1LjA1MiA5Ljk1N3Y0MC40NzFjLTI3Ljk4NCAyMy4xMzEtNDMuODExIDU3Ljg3OC00Mi42NTggOTQuNDUzIDEuOTc0IDYyLjcyOCA1My43NDMgMTEzLjg2NCAxMTcuNTg2IDExMy44NjQgNjQuODcxIDAgMTE3LjY0Ny01Mi43NzYgMTE3LjY0Ny0xMTcuNjQ2IDAtMzUuMDctMTUuODM3LTY4LjQwNi00Mi43MTktOTAuNjY2di00MC40OTdjMTMuMzI1IDcuMDUyIDI4LjUxNyAxMC43MSA0NS4wOTIgMTAuNzEgOC4yODQgMCAxNS02LjcxNiAxNS0xNXMtNi43MTUtMTQuOTk5LTE0Ljk5OS0xNC45OTl6bS0xMjAuMDItMjExLjkwMmMyNC43NzMgMCA0NC45MjggMjAuMTU1IDQ0LjkyOCA0NC45Mjh2MTQ5LjUzN2MtOC4zMTQgOC4yMTEtMTguMzI3IDEzLjU1MS0yOS45MjkgMTUuOTUzdi0xNDMuOTU3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVzLTE1IDYuNzE2LTE1IDE1djE0My45NDdjLTExLjYwMy0yLjQwOS0yMS42MTUtNy43NTktMjkuOTI4LTE1Ljk4M3YtMTQ5LjQ5N2MuMDAxLTI0Ljc3MyAyMC4xNTYtNDQuOTI4IDQ0LjkyOS00NC45Mjh6bS0uMDAxIDM0My41MDRjMTAuNTMyIDAgMTkuMTAxIDguNTY4IDE5LjEwMSAxOS4xcy04LjU2OCAxOS4xLTE5LjEwMSAxOS4xYy0xMC41MzEgMC0xOS4xLTguNTY4LTE5LjEtMTkuMXM4LjU2OS0xOS4xIDE5LjEtMTkuMXptODcuNjQ4IDE4Ljg1YzAgNDguMzI5LTM5LjMxOCA4Ny42NDYtODcuNjQ3IDg3LjY0Ni00Ni44MzEgMC04Ni4xMjktMzguMDQ0LTg3LjYwMi04NC44MDgtLjkyLTI5LjIxOCAxMi43MDQtNTYuODc1IDM2LjQ0My03My45ODEgMy45MTItMi44MTkgNi4yMy03LjM0NyA2LjIzLTEyLjE2OXYtNDcuNzc0YzkuMTQ4IDQuODIgMTkuMTc3IDguMDMzIDI5LjkyOCA5LjU2OHY3NS4wMmMtMTkuNzU4IDYuMzU1LTM0LjEgMjQuOTA1LTM0LjEgNDYuNzQ4IDAgMjcuMDc0IDIyLjAyNiA0OS4xIDQ5LjEgNDkuMXM0OS4xMDEtMjIuMDI2IDQ5LjEwMS00OS4xYzAtMjEuODQzLTE0LjM0Mi00MC4zOTMtMzQuMTAxLTQ2Ljc0OHYtNzUuMDE0YzEwLjc1LTEuNTMxIDIwLjc4LTQuNzM4IDI5LjkyOS05LjU1MnY0Ny43NTNjMCA0LjgyMiAyLjMxOCA5LjM1MSA2LjIzIDEyLjE2OSAyMi44NDggMTYuNDYzIDM2LjQ4OSA0My4wNTkgMzYuNDg5IDcxLjE0MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc4LjE5IDMwOC4zMzJjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuODU3IDM3OS4xMTdjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjQuODYzIDE1NC4xNDNjLTUuODU4IDUuODU4LTUuODU4IDE1LjM1NSAwIDIxLjIxMyA1Ljg1NyA1Ljg1NyAxNS4zNTUgNS44NTggMjEuMjEzIDAgMjEuMDQ2LTIxLjA0NiAyMS4wNDYtNTUuMjkxIDAtNzYuMzM4LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ny01Ljg1OC0xNS4zNTUtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzQ5IDkuMzQ5IDkuMzQ5IDI0LjU2MSAwIDMzLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTQyLjI1MSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcxIDkuMzcxIDkuMzczIDI0LjUzOSAwIDMzLjkxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjE5LjYzOSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcgOS4zNzEgOS4zNzMgMjQuNTM5IDAgMzMuOTEyeiIvPgogICAgPC9nPgo8L3N2Zz4=",Humidity:Sfe,Iron:kfe,Irrigation:Yfe,"Led Strip":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTYgMThhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDI2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiA0MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgNTBhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDU4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiAzNGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTIgNjJoOGExIDEgMCAwIDAgMS0xdi00OWg2djQxYTEgMSAwIDAgMCAuMjkzLjcwN2w4IDhhMSAxIDAgMCAwIC43MDcuMjkzaDhhMSAxIDAgMCAwIC43MDctLjI5M2w4LThhMSAxIDAgMCAwIC4yOTMtLjcwN3YtNTBhMSAxIDAgMCAwIC0xLTFoLThhMSAxIDAgMCAwIC0xIDF2NDloLTZ2LTQ5YTEgMSAwIDAgMCAtMS0xaC0xNmExIDEgMCAwIDAgLS43MDcuMjkzbC04IDhhMSAxIDAgMCAwIC0uMjkzLjcwN3Y1MGExIDEgMCAwIDAgMSAxem0zMy0xM3YtNDVoNnY0OC41ODZsLTYgNnptLTggNWg2djZoLTZ6bS04LTV2LTQ1aDZ2NTQuNTg2bC02LTZ6bS04LTQ1aDZ2NmgtNnptLTggNTF2LTQzLjU4Nmw2LTZ2NTQuNTg2aC02eiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMyA2aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgNTZoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00IDMxaDV2MmgtNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNiAyNWgydjVoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNiAtLjggLjggLjYgLTE5LjIgMTYuNikiLz4KICAgICAgICA8cGF0aCBkPSJtNC41IDM1LjVoNXYyaC01eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjggLS42IC42IC44IC0yMC41MDUgMTEuNTA1KSIvPgogICAgICAgIDxwYXRoIGQ9Im01NSAzMWg1djJoLTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU0LjUgMjYuNWg1djJoLTV6IiB0cmFuc2Zvcm09Im1hdHJpeCguOCAtLjYgLjYgLjggLTUuMDk4IDM5LjcxMikiLz4KICAgICAgICA8cGF0aCBkPSJtNTYgMzRoMnY1aC0yeiIgdHJhbnNmb3JtPSJtYXRyaXgoLjYgLS44IC44IC42IC02LjQgNjAuMikiLz4KICAgIDwvZz4KPC9zdmc+",Light:vfe,Lightings:bfe,Lock:Qfe,Louvre:Ufe,"Mowing Machine":"PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NyA1NGM1LjUxNCAwIDEwLTQuNDg2IDEwLTEwcy00LjQ4Ni0xMC0xMC0xMC0xMCA0LjQ4Ni0xMCAxMCA0LjQ4NiAxMCAxMCAxMHptLTcuOTMxLTExYy4xODMtMS40NTguNzU5LTIuNzkyIDEuNjE5LTMuODk4bDEuMzYyIDEuMzYzIDEuNDE0LTEuNDE0LTEuMzYyLTEuMzYyYzEuMTA2LS44NiAyLjQ0LTEuNDM2IDMuODk4LTEuNjE5djEuOTNoMnYtMS45MzFjMS40NTguMTgzIDIuNzkyLjc1OSAzLjg5OCAxLjYxOWwtMS4zNjIgMS4zNjIgMS40MTQgMS40MTQgMS4zNjItMS4zNjNjLjg2IDEuMTA2IDEuNDM2IDIuNDQgMS42MTkgMy44OThoLTEuOTMxdjJoMS45MzFjLS4xODMgMS40NTgtLjc1OSAyLjc5Mi0xLjYxOSAzLjg5OGwtMS4zNjItMS4zNjMtMS40MTQgMS40MTQgMS4zNjIgMS4zNjJjLTEuMTA2Ljg2LTIuNDQgMS40MzYtMy44OTggMS42MTl2LTEuOTI5aC0ydjEuOTMxYy0xLjQ1OC0uMTgzLTIuNzkyLS43NTktMy44OTgtMS42MTlsMS4zNjItMS4zNjItMS40MTQtMS40MTQtMS4zNjIgMS4zNjNjLS44Ni0xLjEwNi0xLjQzNi0yLjQ0LTEuNjE5LTMuODk4aDEuOTMxdi0yaC0xLjkzMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMjFoLTI0Ljk4Yy0xLjUxMSAwLTIuOTg0LjQyNi00LjI2MiAxLjIyOWwtMjIuMDIxIDEzLjg2NmMtMi4zNCAxLjQ3My0zLjczNyA0LjAwNS0zLjczNyA2Ljc2OXY2LjEzNmMwIC41NTMuNDQ4IDEgMSAxaDMzLjA4OGMuMzQxIDAgLjY1OC0uMTc0Ljg0Mi0uNDYuMTg0LS4yODcuMjA5LS42NDcuMDY3LS45NTctLjc1LTEuNjM1LTEuMDgtMy4zODctLjk3OS01LjIwOC4zMDktNS41OTEgNC45MzYtMTAuMTQ1IDEwLjUzNS0xMC4zNjYgMy4wMjgtLjExNiA1Ljg5Mi45NjcgOC4wNjkgMy4wNiAyLjE3OCAyLjA5MyAzLjM3OCA0LjkxIDMuMzc4IDcuOTMxIDAgLjU1My40NDggMSAxIDFoM2MuNTUyIDAgMS0uNDQ3IDEtMXYtMTdjMC0zLjMwOS0yLjY5MS02LTYtNnptLTI4LjE3NyAyLjkyM2MuOTU5LS42MDQgMi4wNjQtLjkyMyAzLjE5Ny0uOTIzaDEwLjM3bC04LjM5MSA1LjAzNXYtLjAzNWgtMTEuNjUxem0tMjIuMDIgMTMuODY0IDEyLjM2OC03Ljc4N2gxMS41NTJsLTE4LjIzMyAxMC45NGMtMS4xNTcuNjk0LTIuNDggMS4wNi0zLjgyNyAxLjA2aC00LjU5NmMuMjQ4LTEuNzI4IDEuMjI5LTMuMjYzIDIuNzM2LTQuMjEzem01NC4xOTcgNS4yMTNoLTEuMDM4Yy0uMjM5LTMuMTg4LTEuNjIzLTYuMTMyLTMuOTU1LTguMzc0LTIuNTczLTIuNDczLTUuOTYzLTMuNzUtOS41MzQtMy42MTUtNi4xOS4yNDUtMTEuMzc0IDQuOTctMTIuMzE3IDEwLjk4OWgtMTcuMTU2djJoMTcuMDEzYy4wMDIgMS4zNjEuMjAyIDIuNzE1LjYxNSA0aC0zMC42Mjh2LTRoNC42NjNjMS43MDkgMCAzLjM4OS0uNDY1IDQuODU2LTEuMzQ1bDMyLjc1OC0xOS42NTVoMTAuNzIzYzIuMjA2IDAgNCAxLjc5NCA0IDR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDQ4YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNi42NTEgMTUuNjM1Yy0xLjc1NyAyLjEyNS0xLjQ1OCA1LjI4Mi42NjcgNy4wNGw0LjYyNCAzLjgyM2MuMTg3LjE1NC40MTIuMjI5LjYzNy4yMjkuMjg4IDAgLjU3My0uMTI0Ljc3MS0uMzYyIDEuNzU3LTIuMTI1IDEuNDU4LTUuMjgyLS42NjctNy4wNGwtNC42MjQtMy44MjNjLS40MjYtLjM1Mi0xLjA1Ni0uMjkyLTEuNDA4LjEzM3ptNS42NjIgOC41NzYtMy43MjEtMy4wNzdjLTEuMDA0LS44MzEtMS4zMjktMi4xODUtLjkwNS0zLjM0NWwzLjcyMSAzLjA3N2MxLjAwNS44MzEgMS4zMjkgMi4xODUuOTA1IDMuMzQ1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMS40NDUgOS4yMjktNC42MjQgMy44MjNjLTIuMTI1IDEuNzU4LTIuNDI0IDQuOTE2LS42NjcgNy4wNC4xOTguMjM5LjQ4My4zNjIuNzcxLjM2Mi4yMjUgMCAuNDUtLjA3NS42MzctLjIyOWw0LjYyNC0zLjgyM2MyLjEyNS0xLjc1NyAyLjQyNC00LjkxNS42NjctNy4wNC0uMzUyLS40MjQtLjk4My0uNDg0LTEuNDA4LS4xMzN6bS0uNTMzIDUuNjMyLTMuNzIyIDMuMDc4Yy0uMTUyLS40MTUtLjIxMS0uODYzLS4xNjgtMS4zMTYuMDc2LS43OTguNDU4LTEuNTE5IDEuMDc1LTIuMDI5bDMuNzIxLTMuMDc3Yy40MjMgMS4xNi4wOTkgMi41MTMtLjkwNiAzLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+",Music:$fe,"Outdoor Blinds":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NTcgMGgtNDAyYy0zMC4zMjcgMC01NSAyNC42NzMtNTUgNTV2NDU3aDQzMnYtNDA4LjAzNWM3LjUwNyAzLjg0OCAxNiA2LjAzNSAyNSA2LjAzNSAzMC4zMjcgMCA1NS0yNC42NzMgNTUtNTVzLTI0LjY3My01NS01NS01NXptLTQwMiAzMGgzNTMuMDM1Yy0zLjg0OCA3LjUwNy02LjAzNSAxNi02LjAzNSAyNXY3aC0zNzJ2LTdjMC0xMy43ODUgMTEuMjE1LTI1IDI1LTI1em0tMjUgMjcydi0zMGgzNzJ2MzB6bTM3MiAzMHYzMGgtMzcydi0zMHptLTM3Mi05MHYtMzBoMzcydjMwem0wLTYwdi0zMGgzNzJ2MzB6bTAtNjB2LTMwaDM3MnYzMHptMCAzNjB2LTkwaDM3MnY5MHptNDI3LTQwMmMtMTMuNzg1IDAtMjUtMTEuMjE1LTI1LTI1czExLjIxNS0yNSAyNS0yNSAyNSAxMS4yMTUgMjUgMjUtMTEuMjE1IDI1LTI1IDI1eiIvPgogICAgICAgIDxwYXRoIGQ9Im02MCA0MjJoMzB2MzBoLTMweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDIgNDIyaDMwdjMwaC0zMHoiLz4KICAgIDwvZz4KPC9zdmc+",People:Pfe,Pool:Wfe,"Power Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTIgM2MtLjI3NiAwLS41LS4yMjQtLjUtLjV2LTJjMC0uMjc2LjIyNC0uNS41LS41cy41LjIyNC41LjV2MmMwIC4yNzYtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4LjcxOCA1Ljc4MmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDYtLjE5NS0uMTk1LS4xOTUtLjUxMiAwLS43MDdsMS40MTQtMS40MTRjLjE5NS0uMTk1LjUxMi0uMTk1LjcwNyAwcy4xOTUuNTEyIDAgLjcwN2wtMS40MTQgMS40MTRjLS4wOTcuMDk3LS4yMjUuMTQ2LS4zNTMuMTQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMy41IDEyLjVoLTJjLS4yNzYgMC0uNS0uMjI0LS41LS41cy4yMjQtLjUuNS0uNWgyYy4yNzYgMCAuNS4yMjQuNS41cy0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjAuMTMyIDIwLjYzMmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDZsLTEuNDE0LTEuNDE0Yy0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN3MuNTEyLS4xOTUuNzA3IDBsMS40MTQgMS40MTRjLjE5NS4xOTUuMTk1LjUxMiAwIC43MDctLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDI0Yy0uMjc2IDAtLjUtLjIyNC0uNS0uNXYtMmMwLS4yNzYuMjI0LS41LjUtLjVzLjUuMjI0LjUuNXYyYzAgLjI3Ni0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMy44NjggMjAuNjMyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0Ni0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN2wxLjQxNC0xLjQxNGMuMTk1LS4xOTUuNTEyLS4xOTUuNzA3IDBzLjE5NS41MTIgMCAuNzA3bC0xLjQxNCAxLjQxNGMtLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIuNSAxMi41aC0yYy0uMjc2IDAtLjUtLjIyNC0uNS0uNXMuMjI0LS41LjUtLjVoMmMuMjc2IDAgLjUuMjI0LjUuNXMtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUuMjgyIDUuNzgyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0NmwtMS40MTMtMS40MTRjLS4xOTUtLjE5NS0uMTk1LS41MTIgMC0uNzA3cy41MTItLjE5NS43MDcgMGwxLjQxNCAxLjQxNGMuMTk1LjE5NS4xOTUuNTEyIDAgLjcwNy0uMDk4LjA5Ny0uMjI2LjE0Ni0uMzU0LjE0NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAuNTczIDIwYy0uMDU5IDAtLjExNy0uMDEtLjE3NS0uMDMxLS4yMTktLjA4Mi0uMzUyLS4zMDQtLjMyMS0uNTM0bC44NTMtNi40MzVoLTMuNDNjLS4xODkgMC0uMzYyLS4xMDctLjQ0Ny0uMjc2cy0uMDY3LS4zNzIuMDQ3LS41MjRsNi04Yy4xMzktLjE4Ni4zODYtLjI1Mi41OTctLjE2LjIxMi4wOTEuMzM1LjMxNC4yOTcuNTQybC0uOTA0IDUuNDE4aDMuNDFjLjE4NCAwIC4zNTMuMTAxLjQ0LjI2M3MuMDc4LjM1OC0uMDIyLjUxM2wtNS45MjcgOWMtLjA5NS4xNDMtLjI1NC4yMjQtLjQxOC4yMjR6bS0yLjA3My04aDNjLjE0NSAwIC4yODEuMDYzLjM3Ni4xNzEuMDk1LjEwNy4xMzkuMjUyLjEyLjM5NWwtLjY0MSA0LjgzOCA0LjIxNy02LjQwNGgtMy4wNzJjLS4xNDcgMC0uMjg2LS4wNjQtLjM4Mi0uMTc3LS4wOTUtLjExMi0uMTM2LS4yNjEtLjExMS0uNDA1bC42NjMtMy45Nzh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Printer:Bfe,Pump:Jfe,Receiver:Rfe,Sconces:Ffe,Security:Gfe,Shading:Hfe,Shutters:Vfe,SmokeDetector:Zfe,Sockets:Xfe,Speaker:Kfe,Stove:qfe,"Table Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05Ny41IDIyMC4zNjEtMTUuOTE0IDE1LjkxNGE2IDYgMCAxIDAgOC40ODQgOC40ODZsMTUuOTE1LTE1LjkxNWE2IDYgMCAxIDAgLTguNDg0LTguNDg1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS41MSAxMTdhNiA2IDAgMCAwIDQuMjQzLTEwLjI0MmwtMTUuOTE0LTE1LjkxNWE2IDYgMCAwIDAgLTguNDg2IDguNDg2bDE1LjkxNCAxNS45MTRhNS45NzggNS45NzggMCAwIDAgNC4yNDMgMS43NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzNS41IDI0Mi41MDgtMTUuOTEtMTUuOTE0YTYgNiAwIDAgMCAtOC40ODYgOC40ODVsMTUuOTE0IDE1LjkxNWE2IDYgMCAwIDAgOC40ODYtOC40ODZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTg2LjgyNiAxNzFhNiA2IDAgMCAwIC02LTZoLTI0LjgzN2E2IDYgMCAwIDAgMCAxMmgyNC44MzdhNiA2IDAgMCAwIDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTU1IDIzOS41MjFhNiA2IDAgMCAwIC02IDZ2MjQuODM2YTYgNiAwIDAgMCAxMiAwdi0yNC44MzZhNiA2IDAgMCAwIC02LTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzOC44NTIgNDUxLjk2OWE0MS44MzcgNDEuODM3IDAgMCAwIC00MS4xNjYtMzUuOTY5aC0yOC42ODZ2LTMyNi42ODRhNjkuMzA5IDY5LjMwOSAwIDAgMCAtMTIxLjctNDUuMzgyIDU2LjAyMiA1Ni4wMjIgMCAwIDAgLTQ4LjcwOSA2LjM0OWwtODEuNTE5IDU0LjA2OGE2IDYgMCAwIDAgLS45MjUgOS4yNDJsMjMuNDIyIDIzLjQyMy0xLjQ0MiAxLjQ0MmEzNS4xODggMzUuMTg4IDAgMCAwIDQ5Ljc2MyA0OS43NjNsMS40NDItMS40NDIgMjMuNDIyIDIzLjQyMWE2IDYgMCAwIDAgNC4yNDYgMS43NTljLjIgMCAuNC0uMDEuNi0uMDNhNiA2IDAgMCAwIDQuNC0yLjY1NGw1NC4wNjctODEuNTE5YTU2LjA4OCA1Ni4wODggMCAwIDAgMy40ODgtNTUuNjU2IDI2LjM4NiAyNi4zODYgMCAwIDEgNDYuNDQ1IDE3LjIxNnYzMjYuNjg0aC0yOS4xODJhNDIgNDIgMCAwIDAgLTQxLjM0MyAzNi4wNzYgMjYuNCAyNi40IDAgMCAwIC0yMi40NzUgMjUuOTU2djcuOTY4YTYuMjgyIDYuMjgyIDAgMCAwIDYuMzE5IDZoMjE2LjY5MmE1Ljk5MiA1Ljk5MiAwIDAgMCA1Ljk4OS02di03Ljk2OGEyNi4yNDcgMjYuMjQ3IDAgMCAwIC0yMy4xNDgtMjYuMDYzem0tMjU5LjQ1Mi0yNzIuMjM0YTIzLjE4OCAyMy4xODggMCAwIDEgLTMyLjc5My0zMi43OTJsMS40NDMtMS40NDMgMzIuNzkzIDMyLjc5M3ptMzYuNjQ4IDE2Ljc5NC04Ni4yMy04Ni4yMjkgMTguMDkzLTEyIDgwLjE0IDgwLjE0em01MC4wMTItNzUuNC0zMS4yNDYgNDcuMTEtNzYuNy03Ni43MDUgNDcuMTEtMzEuMjQ2YTQzLjg5NCA0My44OTQgMCAwIDEgNjAuODQgNjAuODQxem0zMy41MjgtNzAuMjcyYTM4LjI1MiAzOC4yNTIgMCAwIDAgLTI2LjY4OCAxMC44MjMgNTQuNjIgNTQuNjIgMCAwIDAgLTE0LjE4Ni0xMi40MzUgNTcuMzEgNTcuMzEgMCAwIDEgOTguMjg2IDQwLjA3MXYzMjYuNjg0aC0xOXYtMzI2LjY4NGEzOC40NjEgMzguNDYxIDAgMCAwIC0zOC40MDktMzguNDY0em0tMi43NyAzNzcuMTQzaDEwMC44NjhjMTQuMjU5IDAgMjYuMTk1IDExIDI4Ljk3NiAyNGgtMTU4LjgxOWMyLjc4MS0xMyAxNC43MTYtMjQgMjguOTc1LTI0em0xNTMuMTgyIDUyaC0yMDV2LTEuOTY4YTE0LjMyIDE0LjMyIDAgMCAxIDE0LjMxOS0xNC4wMzJoMTc2LjY5MmExNC4wMzQgMTQuMDM0IDAgMCAxIDEzLjk4OSAxNC4wMzJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwNSAzODEuMDMxYTYgNiAwIDAgMCAxMiAwdi03NS44MDZhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTEgMjkwLjg0NGE2IDYgMCAwIDAgNi02di00LjgzNGE2IDYgMCAwIDAgLTEyIDB2NC44MzRhNiA2IDAgMCAwIDYgNnoiLz4KICAgIDwvZz4KPC9zdmc+","Temperature Sensors":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTM1MiwzODUuNDA2VjUzLjMzM0MzNTIsMjMuOTI3LDMyOC4wNzMsMCwyOTguNjY3LDBzLTUzLjMzMywyMy45MjctNTMuMzMzLDUzLjMzM3YzMzIuMDczCgkJCQlDMjMxLjcxOSwzOTkuMzY1LDIyNCw0MTguMDMxLDIyNCw0MzcuMzMzQzIyNCw0NzguNSwyNTcuNSw1MTIsMjk4LjY2Nyw1MTJjNDEuMTY3LDAsNzQuNjY3LTMzLjUsNzQuNjY3LTc0LjY2NwoJCQkJQzM3My4zMzMsNDE4LjAzMSwzNjUuNjE1LDM5OS4zNjUsMzUyLDM4NS40MDZ6IE0yOTguNjY3LDQ5MC42NjdjLTI5LjQwNiwwLTUzLjMzMy0yMy45MjctNTMuMzMzLTUzLjMzMwoJCQkJYzAtMTUuMTA0LDYuMzIzLTI5LjEyNSwxNy44MTMtMzkuNDY5YzIuMjQtMi4wMzEsMy41MjEtNC45MDYsMy41MjEtNy45MjdWNTMuMzMzYzAtMTcuNjQ2LDE0LjM1NC0zMiwzMi0zMgoJCQkJYzE3LjY0NiwwLDMyLDE0LjM1NCwzMiwzMnYzMzYuNjA0YzAsMy4wMjEsMS4yODEsNS44OTYsMy41MjEsNy45MjdDMzQ1LjY3Nyw0MDguMjA4LDM1Miw0MjIuMjI5LDM1Miw0MzcuMzMzCgkJCQlDMzUyLDQ2Ni43NCwzMjguMDczLDQ5MC42NjcsMjk4LjY2Nyw0OTAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDkuMzMzLDQwNy4yOThWMjI0YzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42Njd2MTgzLjI5OAoJCQkJYy0xMi4zODksNC40MTgtMjEuMzMzLDE2LjE0Ny0yMS4zMzMsMzAuMDM1YzAsMTcuNjQ2LDE0LjM1NCwzMiwzMiwzMmMxNy42NDYsMCwzMi0xNC4zNTQsMzItMzIKCQkJCUMzMzAuNjY3LDQyMy40NDUsMzIxLjcyMyw0MTEuNzE2LDMwOS4zMzMsNDA3LjI5OHogTTI5OC42NjcsNDQ4Yy01Ljg4NSwwLTEwLjY2Ny00Ljc4MS0xMC42NjctMTAuNjY3CgkJCQljMC01Ljg4NSw0Ljc4MS0xMC42NjcsMTAuNjY3LTEwLjY2N2M1Ljg4NSwwLDEwLjY2Nyw0Ljc4MSwxMC42NjcsMTAuNjY3QzMwOS4zMzMsNDQzLjIxOSwzMDQuNTUyLDQ0OCwyOTguNjY3LDQ0OHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjEzLjMzMywzNDEuMzMzaC02NGMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDY0CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzQ2LjEwNCwyMTkuMjI5LDM0MS4zMzMsMjEzLjMzMywzNDEuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI5OC42NjdIMTkyYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3YzAsNS44OTYsNC43NzEsMTAuNjY3LDEwLjY2NywxMC42NjdoMjEuMzMzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzAzLjQzOCwyMTkuMjI5LDI5OC42NjcsMjEzLjMzMywyOTguNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI1NkgxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwyNjAuNzcxLDIxOS4yMjksMjU2LDIxMy4zMzMsMjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDkuMzMzLDIzNC42NjdoNjRjNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N3MtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdoLTY0CgkJCQljLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdTMTQzLjQzOCwyMzQuNjY3LDE0OS4zMzMsMjM0LjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTQ5LjMzMywxMDYuNjY3aDY0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3aC02NAoJCQkJYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzE0My40MzgsMTA2LjY2NywxNDkuMzMzLDEwNi42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTcwLjY2N0gxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwxNzUuNDM4LDIxOS4yMjksMTcwLjY2NywyMTMuMzMzLDE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTI4SDE5MmMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDIxLjMzMwoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdDMjI0LDEzMi43NzEsMjE5LjIyOSwxMjgsMjEzLjMzMywxMjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Tv:exe,"Vacuum Cleaner":"PHN2ZyB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ0MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOC0uMDI3MzQ0LTIyLjA4MjAzMS0xNy45MTc5NjktMzkuOTcyNjU2LTQwLTQwLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzMy41ODIwMzEtOCA4LThjMzAuOTE0MDYyLjAzNTE1NiA1NS45NjQ4NDQgMjUuMDg1OTM4IDU2IDU2IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzLTMuNTgyMDMxLTgtOC04LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04YzEzLjI1MzkwNiAwIDI0IDEwLjc0NjA5NCAyNCAyNCAwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04LS4wNDY4NzUtMzkuNzQ2MDk0LTMyLjI1MzkwNi03MS45NTMxMjUtNzItNzItNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOHMzLjU4MjAzMS04IDgtOGM0OC41NzgxMjUuMDU4NTkzOCA4Ny45NDE0MDYgMzkuNDIxODc1IDg4IDg4IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOCAuMDM1MTU2LTMwLjkxNDA2MiAyNS4wODU5MzgtNTUuOTY0ODQ0IDU2LTU2IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0yMi4wODIwMzEuMDI3MzQ0LTM5Ljk3MjY1NiAxNy45MTc5NjktNDAgNDAgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04IDAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNCA0LjQxNzk2OSAwIDggMy41ODIwMzEgOCA4cy0zLjU4MjAzMSA4LTggOC04IDMuNTgyMDMxLTggOC0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LTggLjA1ODU5MzgtNDguNTc4MTI1IDM5LjQyMTg3NS04Ny45NDE0MDYyIDg4LTg4IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0zOS43NDYwOTQuMDQ2ODc1LTcxLjk1MzEyNSAzMi4yNTM5MDYtNzIgNzIgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0MTZjMjYuNTA3ODEyIDAgNDgtMjEuNDkyMTg4IDQ4LTQ4cy0yMS40OTIxODgtNDgtNDgtNDgtNDggMjEuNDkyMTg4LTQ4IDQ4Yy4wMjczNDQgMjYuNSAyMS41IDQ3Ljk3MjY1NiA0OCA0OHptMC04MGMxNy42NzE4NzUgMCAzMiAxNC4zMjgxMjUgMzIgMzJzLTE0LjMyODEyNSAzMi0zMiAzMi0zMi0xNC4zMjgxMjUtMzItMzIgMTQuMzI4MTI1LTMyIDMyLTMyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQwIDE4NGMxMy4yNTM5MDYgMCAyNC0xMC43NDYwOTQgMjQtMjRzLTEwLjc0NjA5NC0yNC0yNC0yNC0yNCAxMC43NDYwOTQtMjQgMjQgMTAuNzQ2MDk0IDI0IDI0IDI0em0wLTMyYzQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzE3Ljk0NTMxMiAxNTJ2LjA0Njg3NWguMDU0Njg4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE1Mmg0OHYxNmgtNDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODAgMTUyaDQ4djE2aC00OHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0OGMtMTAxLjI2NTYyNS0uMDExNzE5LTE4OC45NDUzMTIgNzAuMzMyMDMxLTIxMC44OTA2MjUgMTY5LjE4NzUtMjEuOTQ1MzEzIDk4Ljg1OTM3NSAyNy43MzQzNzUgMTk5LjY5MTQwNiAxMTkuNDkyMTg3IDI0Mi41MzEyNSA1Ny45MjU3ODIgMjcuMDM1MTU2IDEyNC44NTE1NjMgMjcuMDM1MTU2IDE4Mi43ODEyNSAwIDkxLjc1NzgxMy00Mi44MzU5MzggMTQxLjQzMzU5NC0xNDMuNjY0MDYyIDExOS40OTIxODgtMjQyLjUyMzQzOC0yMS45NDE0MDYtOTguODU1NDY4LTEwOS42MTMyODEtMTY5LjE5OTIxOC0yMTAuODc1LTE2OS4xOTUzMTJ6bTAgMTZjMTA3LjI4NTE1Ni4xMzI4MTIgMTk1LjM5ODQzOCA4NC44MDQ2ODggMTk5LjgwMDc4MSAxOTJoLTE2Yy00LjU4MjAzMS05OC4xNzk2ODgtODUuNTE1NjI1LTE3NS40MjE4NzUtMTgzLjgwMDc4MS0xNzUuNDIxODc1cy0xNzkuMjE4NzUgNzcuMjQyMTg3LTE4My44MDA3ODEgMTc1LjQyMTg3NWgtMTZjNC40MDIzNDMtMTA3LjE5NTMxMiA5Mi41MTU2MjUtMTkxLjg2NzE4OCAxOTkuODAwNzgxLTE5MnptMjkuMTEzMjgxIDI0NS40OTYwOTRjMzAuNjgzNTk0IDExLjk4ODI4MSA1MC44ODI4MTMgNDEuNTU4NTk0IDUwLjg4NjcxOSA3NC41MDM5MDZ2MjcuNjQwNjI1Yy00OS44Nzg5MDYgMjcuMTQ0NTMxLTExMC4xMjEwOTQgMjcuMTQ0NTMxLTE2MCAwdi0yNy42NDA2MjVjLjAwMzkwNi0yNi40Mjk2ODggMTMuMDYyNS01MS4xNTIzNDQgMzQuODg2NzE5LTY2LjA1NDY4OCAyMS44MjgxMjUtMTQuOTA2MjUgNDkuNjA5Mzc1LTE4LjA2NjQwNiA3NC4yMjY1NjItOC40NDkyMTh6bTY2Ljg4NjcxOSA3NC41MDM5MDZjMC01My4wMTk1MzEtNDIuOTgwNDY5LTk2LTk2LTk2cy05NiA0Mi45ODA0NjktOTYgOTZ2MTcuNzM0Mzc1Yy0zOC44NjMyODEtMjYuOTgwNDY5LTY0LjUwNzgxMi02OS4xMzI4MTMtNzAuNjAxNTYyLTExNi4wNDY4NzUtNi4wOTc2NTctNDYuOTE3OTY5IDcuOTI1NzgxLTk0LjIyMjY1NiAzOC42MDE1NjItMTMwLjIzODI4MXYzNi41NTA3ODFjLjAyNzM0NCAyMi4wODIwMzEgMTcuOTE3OTY5IDM5Ljk3MjY1NiA0MCA0MGgxNzZjMjIuMDgyMDMxLS4wMjczNDQgMzkuOTcyNjU2LTE3LjkxNzk2OSA0MC00MHYtMzYuNTUwNzgxYzMwLjY3NTc4MSAzNi4wMTU2MjUgNDQuNjk5MjE5IDgzLjMyMDMxMiAzOC42MDE1NjIgMTMwLjIzODI4MS02LjA5Mzc1IDQ2LjkxNDA2Mi0zMS43MzgyODEgODkuMDY2NDA2LTcwLjYwMTU2MiAxMTYuMDQ2ODc1em0tMjA4LTI0NC44NjMyODFjNjMuNTg5ODQ0LTU3LjUxNTYyNSAxNjAuNDEwMTU2LTU3LjUxNTYyNSAyMjQgMHY1Mi44NjMyODFjMCAxMy4yNTM5MDYtMTAuNzQ2MDk0IDI0LTI0IDI0aC0xNzZjLTEzLjI1MzkwNiAwLTI0LTEwLjc0NjA5NC0yNC0yNHptLTg3LjcxMDkzOCAxMzIuODYzMjgxaDE2YzIuODM1OTM4IDYxLjAzOTA2MiAzNS42NzE4NzYgMTE2LjcyMjY1NiA4Ny43MTA5MzggMTQ4Ljc1MzkwNnYxOC42NDQ1MzJjLTYxLjQzNzUtMzMuODUxNTYzLTEwMC43NTM5MDYtOTcuMzEyNS0xMDMuNzEwOTM4LTE2Ny4zOTg0Mzh6bTExOS43MTA5MzggMTc1LjI0NjA5NHYtMTcuNjQ0NTMyYzUwLjUwMzkwNiAyNC41NjI1IDEwOS40OTYwOTQgMjQuNTYyNSAxNjAgMHYxNy42NzE4NzZjLTUwLjk5NjA5NCAyMi4zMzU5MzctMTA5LjAwMzkwNiAyMi4zMzU5MzctMTYwIDB6bTE3Ni03Ljg0NzY1NnYtMTguNjQ0NTMyYzUyLjA0Mjk2OS0zMi4wMjczNDQgODQuODg2NzE5LTg3LjcxMDkzNyA4Ny43MjY1NjItMTQ4Ljc1MzkwNmgxNmMtMi45NjA5MzcgNzAuMDg5ODQ0LTQyLjI4NTE1NiAxMzMuNTUwNzgxLTEwMy43MjY1NjIgMTY3LjM5ODQzOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ventilation:txe,"Washing Machines":"PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIDAgNDk2IDQ5NiIgd2lkdGg9IjQ5NnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDg4IDBoLTQwMGMtNC40MjU3ODEgMC04IDMuNTg1OTM4LTggOHYyOTYuODMyMDMxYy0yLjYwMTU2Mi0uNTI3MzQzLTUuMjczNDM4LS44MzIwMzEtOC0uODMyMDMxLTIyLjA1NDY4OCAwLTQwIDE3Ljk0NTMxMi00MCA0MHYuMTY3OTY5Yy03LjgyNDIxOSA1Ljg4NjcxOS0xMy4xNTIzNDQgMTQuMzk4NDM3LTE1LjEyMTA5NCAyMy44MzIwMzFoLTguODc4OTA2Yy00LjQyNTc4MSAwLTggMy41ODU5MzgtOCA4djMyYzAgNC40MTQwNjIgMy41NzQyMTkgOCA4IDhoOHYyNGMwIDMwLjg3ODkwNiAyNS4xMjg5MDYgNTYgNTYgNTZoNDE2YzQuNDI1NzgxIDAgOC0zLjU4NTkzOCA4LTh2LTQ4MGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04em0tOCAxNnY4MGgtMzg0di04MHptLTQzNS42NTYyNSAzMzkuMTc1NzgxYzIuODM5ODQ0LTEuNjAxNTYyIDQuNDMzNTk0LTQuNzYxNzE5IDQuMDE1NjI1LThsLS4xMjg5MDYtLjkyOTY4N2MtLjEwMTU2My0uNzM0Mzc1LS4yMzA0NjktMS40Njg3NS0uMjMwNDY5LTIuMjQ2MDk0IDAtMTMuMjMwNDY5IDEwLjc2OTUzMS0yNCAyNC0yNCA4LjQ0OTIxOSAwIDE2LjEyMTA5NCA0LjQwNjI1IDIwLjUyNzM0NCAxMS44MDA3ODEgMS4xOTkyMTggMi4wMTU2MjUgMy4yMzQzNzUgMy40MDYyNSA1LjU1MDc4MSAzLjc5Mjk2OSAyLjMyODEyNS4zOTg0MzggNC42OTkyMTktLjI2NTYyNSA2LjQ5NjA5NC0xLjc5Mjk2OSAzLjEyMTA5My0yLjY0ODQzNyA4LjMyMDMxMi01LjgwMDc4MSAxNS40MjU3ODEtNS44MDA3ODEgOC41NTg1OTQgMCAxNi41MzUxNTYgNC43MjY1NjIgMjAuODE2NDA2IDEyLjMzNTkzOCAxLjY2NDA2MyAyLjk3NjU2MiA1LjA1NDY4OCA0LjU1ODU5MyA4LjM4MjgxMyAzLjk2MDkzNyA4LjM1MTU2Mi0xLjQ4ODI4MSAxNi45MDYyNSA0LjI0NjA5NCAxOC40OTYwOTMgMTIuNzQyMTg3LjU3MDMxMyAzLjAzOTA2MyAyLjgzOTg0NCA1LjQ4ODI4MiA1LjgzOTg0NCA2LjI3MzQzOCAzLjAxNTYyNS44MDA3ODEgNi4xNjc5NjktLjIzNDM3NSA4LjE2Nzk2OS0yLjYwOTM3NSA0LjYxNzE4Ny01LjUyNzM0NCAxMS4yODkwNjMtOC43MDMxMjUgMTguMjk2ODc1LTguNzAzMTI1IDEwLjQxNDA2MiAwIDE5LjIxNDg0NCA2LjcxMDkzOCAyMi41MjczNDQgMTZoLTE4OC45MjU3ODJjMS45NDE0MDctNS4yOTY4NzUgNS42MDU0NjktOS45Mzc1IDEwLjc0MjE4OC0xMi44MjQyMTl6bTEwNy42NTYyNS03NS4xNzU3ODFjMC03NC45OTIxODggNjEuMDA3ODEyLTEzNiAxMzYtMTM2czEzNiA2MS4wMDc4MTIgMTM2IDEzNi02MS4wMDc4MTIgMTM2LTEzNiAxMzZjLTExLjI4OTA2MiAwLTIyLjMyODEyNS0xLjUxOTUzMS0zMy4wNzgxMjUtNC4yMTQ4NDQuNjI4OTA2LTEuMTQ0NTMxIDEuMDc4MTI1LTIuMzk0NTMxIDEuMDc4MTI1LTMuNzg1MTU2di0xMi4zMzU5MzhjMTAuMzY3MTg4IDIuODYzMjgyIDIxLjA3ODEyNSA0LjMzNTkzOCAzMiA0LjMzNTkzOCA2Ni4xNjc5NjkgMCAxMjAtNTMuODMyMDMxIDEyMC0xMjBzLTUzLjgzMjAzMS0xMjAtMTIwLTEyMC0xMjAgNTMuODMyMDMxLTEyMCAxMjBjMCAyMS4wODk4NDQgNS40ODA0NjkgNDEuNDMzNTk0IDE1LjgyNDIxOSA1OS41MDM5MDYtMS43OTI5NjkuODA4NTk0LTMuNTM1MTU3IDEuNzI2NTYzLTUuMTkxNDA3IDIuODAwNzgyLTQuMDU4NTkzLTYuMTEzMjgyLTEwLjE1MjM0My0xMC42MzI4MTMtMTcuMjA3MDMxLTEyLjgyNDIxOS02LjE2Nzk2OS0xNS43NjE3MTktOS40MjU3ODEtMzIuMzU5Mzc1LTkuNDI1NzgxLTQ5LjQ4MDQ2OXptNDguNDY0ODQ0IDU2LjA0Njg3NWMtNi4zNjcxODgtOS45MTAxNTYtMTEtMjAuNzAzMTI1LTEzLjY3OTY4OC0zMi4wNDY4NzVoNS4yMTQ4NDRjNy4yODkwNjIgMCAxNC4xNTIzNDQtMi44Mzk4NDQgMTkuMzEyNS04bDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGM1LjE2Nzk2OSA1LjE2MDE1NiAxMi4wMjM0MzggOCAxOS4zMTI1IDhoNS4wOTc2NTZjLTEwLjg4MjgxMiA0NS43OTI5NjktNTIuMDI3MzQ0IDgwLTEwMS4wOTc2NTYgODAtMTAuOTc2NTYyIDAtMjEuNjk1MzEyLTEuNzkyOTY5LTMyLTUuMTI4OTA2di0yLjg3MTA5NGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04aC04LjgwODU5NGMtMy42ODc1LTE4LjA4OTg0NC0xOS42MjUtMzEuNzI2NTYyLTM4LjcyNjU2Mi0zMS45NTMxMjV6bS0xNi40NjQ4NDQtNTYuMDQ2ODc1YzAtNTcuMzQzNzUgNDYuNjU2MjUtMTA0IDEwNC0xMDRzMTA0IDQ2LjY1NjI1IDEwNCAxMDRjMCAyLjcwMzEyNS0uMTk5MjE5IDUuMzUxNTYyLS40MDYyNSA4aC03LjU5Mzc1Yy0zLjAyMzQzOCAwLTUuODU1NDY5LTEuMTc1NzgxLTgtMy4zMTI1bC00LjY4NzUtNC42ODc1Yy0xMC4zMjgxMjUtMTAuMzEyNS0yOC4yOTY4NzUtMTAuMzIwMzEyLTM4LjYyNSAwbC00LjY4NzUgNC42Nzk2ODhjLTQuMjgxMjUgNC4yODEyNS0xMS43MTg3NSA0LjI4MTI1LTE2IDBsLTQuNjg3NS00LjY3OTY4OGMtMTAuMzI4MTI1LTEwLjMxMjUtMjguMjk2ODc1LTEwLjMyMDMxMi0zOC42MjUgMGwtNC42ODc1IDQuNjc5Njg4Yy00LjI4MTI1IDQuMjgxMjUtMTEuNzE4NzUgNC4yODEyNS0xNiAwbC00LjY4NzUtNC42Nzk2ODhjLTEwLjMyODEyNS0xMC4zMTI1LTI4LjI5Njg3NS0xMC4zMjAzMTItMzguNjI1IDBsLTQuNjg3NSA0LjY3OTY4OGMtMi4xNDQ1MzEgMi4xNDQ1MzEtNC45NzY1NjIgMy4zMjAzMTItOCAzLjMyMDMxMmgtNy42OTUzMTJjLS4xOTkyMTktMi42NDg0MzgtLjMwNDY4OC01LjMyMDMxMi0uMzA0Njg4LTh6bS0xNjggMTA0aDIyNHYxNmgtMjI0em0xNjAgOTZoLTEwNGMtMjIuMDU0Njg4IDAtNDAtMTcuOTQ1MzEyLTQwLTQwdi0yNGgxOTJ2MjRjMCAyMi4wNTQ2ODgtMTcuOTQ1MzEyIDQwLTQwIDQwem00Ny4xMTMyODEgMGMxMC40MDYyNS0xMC4xNzU3ODEgMTYuODg2NzE5LTI0LjMzNTkzOCAxNi44ODY3MTktNDB2LTE1Ljg3MTA5NGMxNS40MjU3ODEgNS4xNDQ1MzIgMzEuNTAzOTA2IDcuODcxMDk0IDQ4IDcuODcxMDk0IDgzLjgxNjQwNiAwIDE1Mi02OC4xODM1OTQgMTUyLTE1MnMtNjguMTgzNTk0LTE1Mi0xNTItMTUyLTE1MiA2OC4xODM1OTQtMTUyIDE1MmMwIDEzLjAxNTYyNSAxLjgwMDc4MSAyNS43MzQzNzUgNS4wMDc4MTIgMzguMTEzMjgxLTYuMjIyNjU2LTMuOTA2MjUtMTMuNDY0ODQzLTYuMTEzMjgxLTIxLjAwNzgxMi02LjExMzI4MS02LjUzNTE1NiAwLTEzIDEuNjcxODc1LTE4Ljc4NTE1NiA0LjgxNjQwNi0xLjU4OTg0NC0xLjcyNjU2Mi0zLjM3NS0zLjIxNDg0NC01LjIxNDg0NC00LjYyNXYtMjAwLjE5MTQwNmgzODR2MzY4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjAwIDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY0IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ4IDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ0OCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDE2IDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM4NCA2NGgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=","Water Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNjguOTkgMTg3LjQ5OWMtNS43NTEtOS45NTktMjAuMTk2LTEwLjAxNi0yNS45NzkgMC0yMS44MSA0MC42MTEtMzIuMDExIDQ4LjA2MS0zMi4wMTEgNjcuNTAxIDAgMjQuODEzIDIwLjE4NyA0NSA0NSA0NXM0NS0yMC4xODcgNDUtNDVjMC0xOS40NTgtMTAuNDg2LTI3LjQyMS0zMi4wMS02Ny41MDF6bS0xMi45OSA4Mi41MDFjLTguMjcxIDAtMTUtNi43MjktMTUtMTUgMC02LjY4NyAzLjA0Mi04LjIxNSAxNS0zMC4wMDUgMTEuOTc0IDIxLjgxOCAxNSAyMy4zMTggMTUgMzAuMDA1IDAgOC4yNzEtNi43MjkgMTUtMTUgMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNiAwaC0zMDBjLTguNzY5IDAtMTUuNjc2IDcuNTAyLTE0Ljk0OCAxNi4yNDZsMzAgMzYwYy42NDggNy43NzQgNy4xNDcgMTMuNzU0IDE0Ljk0OCAxMy43NTRoNzV2MzJoLTE1Yy0xMy4zMTggMC0yMC4wNDggMTYuMTY1LTEwLjYwNiAyNS42MDZsNjAgNjBjNS44NTcgNS44NTggMTUuMzU1IDUuODU5IDIxLjIxMyAwbDYwLTYwYzkuNDE3LTkuNDE3IDIuNzQ1LTI1LjYwNi0xMC42MDctMjUuNjA2aC0xNXYtMzJoNzVjNy44MDEgMCAxNC4zLTUuOTggMTQuOTQ4LTEzLjc1NGwzMC0zNjBjLjcyOC04LjczOS02LjE3NC0xNi4yNDYtMTQuOTQ4LTE2LjI0NnptLTE2LjMwMiAzMC01LjM0NiA2NC4xNDdjLTIxLjc2OCA4LjM0My0zNS44NzEgMjUuODUzLTUzLjM1MiAyNS44NTMtMjIuNzE3IDAtNDAuNDIzLTMwLTc1LTMwLTM0LjcyNyAwLTUyLjE3NiAzMC03NSAzMC0xNy40ODUgMC0zMS41NTYtMTcuNDk5LTUzLjM1Mi0yNS44NTNsLTUuMzQ2LTY0LjE0N3ptLTI3LjUgMzMwaC03Ni4xOThjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2NjJjMCA2LjQzMiA0LjA0OCAxMS45MTkgOS43MzYgMTQuMDVsLTI0LjczNiAyNC43MzctMjQuNzM2LTI0LjczNmM1LjY4OC0yLjEzMSA5LjczNi03LjYxOCA5LjczNi0xNC4wNXYtNjJjMC04LjI4NC02LjcxNi0xNS0xNS0xNWgtNzYuMTk4bC0xOS4yMDgtMjMwLjUwMmMxNC4zMTUgOS4xNTMgMjkuMDc2IDIwLjUwMSA1MC40MDYgMjAuNTAxIDM0LjcyNyAwIDUyLjE3Ni0zMCA3NS0zMCAyMi43MTcgMCA0MC40MjMgMzAgNzUgMzAgMjEuMDE5IDAgMzUuNDQ5LTEwLjkzNyA1MC40MDYtMjAuNTAyeiIvPgogICAgPC9nPgo8L3N2Zz4=","Water Heater":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTY3LDE4NS4zMjV2MjgxYTM1LjU0MSwzNS41NDEsMCwwLDAsMzUuNDY5LDM1LjYzMUwzMTkuMDYsNTAyaC4wMDZBMzUuODkxLDM1Ljg5MSwwLDAsMCwzNTUsNDY2LjM2OVY0NjRoNjAuNjJjMzQuODM3LDAsNjMuMzgtMjcuODcsNjMuMzgtNjIuNzE1VjE4OS43M2MwLTM0Ljg0NC0yOC41NDMtNjIuNzMtNjMuMzgtNjIuNzNIMzU1di05LjY4OWMwLS4wNzQtLjE2LS4xNDYtLjE2Mi0uMjE5cy0uMDY1LS4xMTQtLjA2NS0uMTg3QTYyLjA0NCw2Mi4wNDQsMCwwLDAsMjkyLjc2Myw1NUgyMTlWNDRoMTcuODI4QzI0NS42NSw0NCwyNTMsMzcuMiwyNTMsMjguMzc0VjI2YTE2LjE2NywxNi4xNjcsMCwwLDAtMTYuMTcyLTE2SDE4OS43MDZBMTUuNzcsMTUuNzcsMCwwLDAsMTc0LDI2djIuMzc0QTE1LjQ1NCwxNS40NTQsMCwwLDAsMTg5LjcwNiw0NEgyMDdWNTVIMTMzLjc3MUMxMDEuNSw1NSw3NC45MjQsODAsNzIuMSwxMTFIMzkuMmE2LjA1Niw2LjA1NiwwLDAsMC01LjIsOC45MjlaTTM1NSwxNjFoNjAuNjJBMjguNTgxLDI4LjU4MSwwLDAsMSw0NDQsMTg5LjczVjQwMS4yODVBMjguNTY4LDI4LjU2OCwwLDAsMSw0MTUuNjIsNDMwSDM1NVptMCwyODFoNjAuNjJBNDAuNTgxLDQwLjU4MSwwLDAsMCw0NTYsNDAxLjI4NVYxODkuNzNBNDAuNTk0LDQwLjU5NCwwLDAsMCw0MTUuNjIsMTQ5SDM1NVYxMzloNjAuNjJjMjguMjIxLDAsNTEuMzgsMjIuNSw1MS4zOCw1MC43M1Y0MDEuMjg1QzQ2Nyw0MjkuNTEzLDQ0My44NDEsNDUyLDQxNS42Miw0NTJIMzU1Wm0tMTIsMjQuMzY5QTIzLjg5MSwyMy44OTEsMCwwLDEsMzE5LjA2Niw0OTBoMGwtMjE2LjU5MS0uMDQxQTIzLjUyNywyMy41MjcsMCwwLDEsNzksNDY2LjMyOFY0NTIuNTdsMjY0LC4wNDlaTTE5MCwzMmE0LDQsMCwwLDEtNC00VjI2YTQsNCwwLDAsMSw0LTRoNDdhNCw0LDAsMCwxLDQsNHYyYTQsNCwwLDAsMS00LDRaTTEzMy43NzEsNjdIMjkyLjc2M2E0OS44MjksNDkuODI5LDAsMCwxLDQ5LjU3Niw0NEg4NC4yQTQ5LjgzLDQ5LjgzLDAsMCwxLDEzMy43NzEsNjdaTTM0MywxMjNWNDQwLjYxOUw3OSw0NDAuNTdWMTgzLjlhNi44NTMsNi44NTMsMCwwLDAtLjgtMi44NTFMNDguOTM0LDEyM1oiLz4KICAgICAgICA8cGF0aCBkPSJNMjAzLDM4OC40NDNBMzUuMDE3LDM1LjAxNywwLDAsMCwyMzgsMzUzLjZWMjM2Ljg0NGEzNSwzNSwwLDAsMC03MCwwVjM1My42QTM1LjAxNywzNS4wMTcsMCwwLDAsMjAzLDM4OC40NDNabS0yMy0xNTEuNmEyMywyMywwLDAsMSw0NiwwVjI4OUgxODBaTTE4MCwzMDFoNDZ2NTIuNmEyMywyMywwLDAsMS00NiwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik05OSwzMTQuOTEzYTYsNiwwLDAsMCw2LTZWMjMzLjEwNmE2LDYsMCwwLDAtMTIsMHY3NS44MDdBNiw2LDAsMCwwLDk5LDMxNC45MTNaIi8+CiAgICAgICAgPHBhdGggZD0iTTk5LDIxOC43MjZhNiw2LDAsMCwwLDYtNnYtNC44MzRhNiw2LDAsMCwwLTEyLDB2NC44MzRBNiw2LDAsMCwwLDk5LDIxOC43MjZaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Water:sxe,Weather:ixe,Window:rxe},nxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",axe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM2Mi43ODcgMzYyLjc4NyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNjAuOTQ1LDE0NC45NzljLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTlsLTQ3LjQ4NCw4MS4zMzNjLTEuMzU0LDIuMzE5LTEuMzY1LDUuMTg2LTAuMDI3LDcuNTE2CgkJYzEuMzM3LDIuMzI5LDMuODE4LDMuNzY2LDYuNTA0LDMuNzY2aDk0Ljk2OGMyLjY4NiwwLDUuMTY3LTEuNDM3LDYuNTA0LTMuNzY2YzEuMzM4LTIuMzMsMS4zMjctNS4xOTYtMC4wMjctNy41MTZsLTQ3LjQ4My04MS4zMzMKCQlDMjY2LjA3OCwxNDYuMzk1LDI2My42MTIsMTQ0Ljk3OSwyNjAuOTQ1LDE0NC45Nzl6IE0yMjYuNTI0LDIyNi4zMTJsMzQuNDIxLTU4Ljk1OGwzNC40Miw1OC45NThIMjI2LjUyNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU1LjI4NywyNTQuNjloLTE3NS42Mmw4MS4yNzgtMTM5LjIxOGw2Mi45MjYsMTA3Ljc4M2MyLjA4OCwzLjU3OCw2LjY4Myw0Ljc4NCwxMC4yNTgsMi42OTYKCQljMy41NzctMi4wODgsNC43ODQtNi42ODEsMi42OTUtMTAuMjU4TDI2Ny40MjIsOTYuODE1Yy0wLjAyMS0wLjAzNi0wLjA0OC0wLjA2Ny0wLjA2OS0wLjEwM2MtMC4xMjYtMC4yMDgtMC4yNjItMC40MDgtMC40MDctMC42MDMKCQljLTAuMDQ0LTAuMDU5LTAuMDg2LTAuMTE4LTAuMTMxLTAuMTc2Yy0wLjE4My0wLjIzLTAuMzc2LTAuNDUxLTAuNTg0LTAuNjU4Yy0wLjAyNC0wLjAyNC0wLjA1MS0wLjA0NS0wLjA3Ni0wLjA2OQoJCWMtMC4xODYtMC4xOC0wLjM4My0wLjM0OS0wLjU4Ny0wLjUwOWMtMC4wNjUtMC4wNTEtMC4xMzItMC4xLTAuMTk5LTAuMTQ4Yy0wLjE4Ny0wLjEzNy0wLjM3OS0wLjI2NC0wLjU3OC0wLjM4NAoJCWMtMC4wNTUtMC4wMzMtMC4xMDgtMC4wNjgtMC4xNjQtMC4xYy0wLjI2MS0wLjE0Ny0wLjUzLTAuMjgyLTAuODA5LTAuMzk3Yy0wLjAxMS0wLjAwNC0wLjAyMi0wLjAwOC0wLjAzMy0wLjAxMgoJCWMtMC4yNi0wLjEwNi0wLjUyOC0wLjE5Ni0wLjgwMi0wLjI3M2MtMC4wNzMtMC4wMjEtMC4xNDYtMC4wMzgtMC4yMi0wLjA1NmMtMC4yMjItMC4wNTUtMC40NDctMC4xLTAuNjc3LTAuMTM1CgkJYy0wLjA3OS0wLjAxMi0wLjE1Ny0wLjAyNi0wLjIzNi0wLjAzNmMtMC4yOTctMC4wMzYtMC41OTgtMC4wNi0wLjkwNi0wLjA2SDEwMS44NDJjLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTkKCQlMMS4wMjMsMjU4LjQwOGMtMS4zNTQsMi4zMTktMS4zNjUsNS4xODYtMC4wMjcsNy41MTZjMS4zMzcsMi4zMjksMy44MTgsMy43NjYsNi41MDQsMy43NjZoODYuNTM4YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDEKCQlzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzUuODg5YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDFzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzYuNTg2aDE4OC42ODQKCQljNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNVMzNTkuNDMsMjU0LjY5LDM1NS4yODcsMjU0LjY5eiBNMTYyLjI5OCwyNTQuNjloLTE5LjI2M2w2OS40My0xMTkuNDcKCQljMi4wODEtMy41ODIsMC44NjUtOC4xNzItMi43MTYtMTAuMjUzYy0zLjU4LTIuMDgzLTguMTczLTAuODY2LTEwLjI1MywyLjcxNmwtNzMuODEsMTI3LjAwN0gxMDcuMWw4NS4xOTItMTQ2LjU5NGg1NS41OQoJCUwxNjIuMjk4LDI1NC42OXogTTEwNi4xNDcsMTA4LjA5NmgzNC4wOTFMNzQuNzg5LDIyMC43MTdjLTIuMDgxLDMuNTgyLTAuODY1LDguMTcyLDIuNzE2LDEwLjI1MwoJCWMxLjE4NiwwLjY4OSwyLjQ4MiwxLjAxNywzLjc2MiwxLjAxN2MyLjU4NCwwLDUuMS0xLjMzNyw2LjQ5MS0zLjczM2w2OS44My0xMjAuMTU4aDE3LjM1Nkw4OS43NTEsMjU0LjY5SDIwLjU2M0wxMDYuMTQ3LDEwOC4wOTZ6IgogICAgICAgIC8+CiAgICA8L2c+Cjwvc3ZnPgo=",Mxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTYuNzA0IDI3Mi4wODZoLTgxLjcwNHYtODguMDczYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djg4LjA3M2gtMTV2LTE5My43MWMwLTguMjQ5LTYuNzExLTE0Ljk1OS0xNC45NTktMTQuOTU5aC05MS41ODJjLTguMjQ4IDAtMTQuOTU5IDYuNzEtMTQuOTU5IDE0Ljk1OXYxOTMuNzFoLTE1di0xOTMuNzFjMC04LjI0OS02LjcxMS0xNC45NTktMTQuOTU5LTE0Ljk1OWgtOTEuNTgyYy04LjI0OCAwLTE0Ljk1OSA2LjcxLTE0Ljk1OSAxNC45NTl2MTkzLjcxaC0xNXYtMjIzLjY2OWgyODh2MTAwLjU5NmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xMDAuNTk2aDMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODgzIDE1LjI5Ni0xNS4zNDR2LTE3LjczYzAtOC40Ni02Ljg2MS0xNS4zNDMtMTUuMjk2LTE1LjM0M2gtMzI0LjQwOGMtOC40MzUgMC0xNS4yOTYgNi44ODMtMTUuMjk2IDE1LjM0NHYxNy43M2MwIDguNDYgNi44NjEgMTUuMzQ0IDE1LjI5NiAxNS4zNDRoMy4yMDR2MjIzLjY2OWgtODEuNzA0Yy04LjQzNS0uMDAxLTE1LjI5NiA2Ljg2MS0xNS4yOTYgMTUuMjk1djE3LjYyMmMwIDguNDM1IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aC41djE0My40ODZoLS41Yy04LjQzNSAwLTE1LjI5NiA2Ljg2Mi0xNS4yOTYgMTUuMjk2djE3LjYyMmMwIDguNDM0IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aDIyMy4yMDRjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTIyMy4yMDRjLS4xNjMgMC0uMjk2LS4xMzMtLjI5Ni0uMjk2di0xNy42MjJjMC0uMTYzLjEzMy0uMjk2LjI5Ni0uMjk2aDQ4MS40MDhjLjE2MyAwIC4yOTYuMTMzLjI5Ni4yOTZ2MTcuNjIyYzAgLjE2My0uMTMzLjI5Ni0uMjk2LjI5NmgtMjIzLjIwNGMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMjMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODYyIDE1LjI5Ni0xNS4yOTZ2LTE3LjYyMmMwLTguNDM0LTYuODYxLTE1LjI5Ni0xNS4yOTYtMTUuMjk2aC0uNXYtMTQzLjQ4NmguNWM4LjQzNSAwIDE1LjI5Ni02Ljg2MiAxNS4yOTYtMTUuMjk2di0xNy42MjJjMC04LjQzNC02Ljg2MS0xNS4yOTYtMTUuMjk2LTE1LjI5NnptLTQwMy4yMDQtMjM5LjAxMnYtMTcuNzNjMC0uMjEyLjE1My0uMzQ0LjI5Ni0uMzQ0aDMyNC40MDhjLjE0MyAwIC4yOTYuMTMxLjI5Ni4zNDR2MTcuNzNjMCAuMjEyLS4xNTMuMzQ0LS4yOTYuMzQ0LTE1LjM2NyAwLTMwOS4wNTEgMC0zMjQuNDA4IDAtLjE0My0uMDAxLS4yOTYtLjEzMi0uMjk2LS4zNDR6bTE4NC45NTkgNDUuMzQzIDkxLjU0MS0uMDQxdjE5My43MWgtOTEuNTAyem0tMTM2LjUgMCA5MS41NDEtLjA0MXYxOTMuNzFoLTkxLjUwMnptMzM5LjI0NSAzODQuODE3aC00NTAuNDA4di0xNDIuOTM0aDQ1MC40MDh6bTE1Ljc5Ni0xNTguMjNjMCAuMTY0LS4xMzMuMjk2LS4yOTYuMjk2LTIuODI0IDAtNDcxLjE1MyAwLTQ4MS40MDggMC0uMTYzIDAtLjI5Ni0uMTMzLS4yOTYtLjI5NnYtMTcuNjIyYzAtLjE2My4xMzMtLjI5Ni4yOTYtLjI5Nmg0ODEuNDA4Yy4xNjMgMCAuMjk2LjEzMy4yOTYuMjk2eiIvPgogICAgICAgIDxwYXRoIGQ9Im02Ny42NTUgNDQyLjcwNGgxOC45OWM4Ljc2OCAwIDE1LjktNy4xMzMgMTUuOS0xNS45MDF2LTY5LjUyYzAtOC43NjgtNy4xMzMtMTUuOTAxLTE1LjktMTUuOTAxaC0xOC45OWMtOC43NjggMC0xNS45IDcuMTMzLTE1LjkgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkgMTUuOTAxem0tLjktODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45LS45MDFoMTguOTljLjQ5NiAwIC45LjQwNC45LjkwMXY2OS41MmMwIC40OTctLjQwNC45MDEtLjkuOTAxaC0xOC45OWMtLjQ5NiAwLS45LS40MDQtLjktLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM5LjQwNiA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMTAuNzk2IDQ0Mi43MDRoMTguOTljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTljLTguNzY4IDAtMTUuOSA3LjEzMy0xNS45IDE1LjkwMXY2OS41MmMwIDguNzY4IDcuMTMyIDE1LjkwMSAxNS45IDE1LjkwMXptLS45LTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOS0uOTAxaDE4Ljk5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTljLS40OTYgMC0uOS0uNDA0LS45LS45MDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI4Mi41NDcgNDQyLjcwNGgxOC45ODljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTg5Yy04Ljc2OCAwLTE1LjkwMSA3LjEzMy0xNS45MDEgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAxLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzU0LjEzMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjLS4wMDEgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAyLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDI1LjUyMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTYuNDExIDEwNy4yNjhjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDIzLjUxMiAyMy41MTJjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjYwNCA5Mi44MzJjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDExLjc1NiAxMS43NTZjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgIDwvZz4KPC9zdmc+",cxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00MTMuOTA3IDBjLTU0LjEwNCAwLTk4LjEyMiA0NC4wMDUtOTguMTIyIDk4LjA5NnY0My41ODJzLTY5LjgzMS0zNi45MTItNzEuMDY1LTM3LjU5M2MtOS41NDQtNS4yNjYtMTIuMTg1LTUuMjY3LTIxLjczMSAwLTEuMjM0LjY4MS0xMzYuMTQxIDcxLjk1OC0xMzYuMTQxIDcxLjk1OC0xMS40MzcgNi4wMTctMTMuMDQ1IDcuNzQ1LTE3Ljg3OCAxNS43ODMtLjc4OCAxLjMxMS02NS42OTggMTA0LjIzLTY1LjY5OCAxMDQuMjMtMy4xNzUgNS4wMjMtNC4wNzcgMTAuOTYyLTIuNTM5IDE2LjcyMiAxLjYxNyA2LjA1NiA1Ljg0IDExLjI2OSAxMS41NzcgMTQuMjk1IDMuNjQ2IDEuOTMgNy41ODIgMi44NSAxMS40NjUgMi44NSA2LjIwMiAwIDEyLjI1NS0yLjM1OCAxNi43NDUtNi42ODh2NjUuMDQ0YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTg3LjU0MXM0OS4xMzQtNzcuODU1IDQ5LjY1Mi03OC42ODJjMi4zMzQtMy43MjkgMy4zMjgtNS4yODMgNC40OTYtNi4zMTggMS4zMzMtMS4xODEgMy42NjUtMi40NjQgOC42NjUtNS4xMDdsMTEzLjAwMi01OS42NDljLjgwMS0uNDI1IDEuNDktLjgwMyAyLjA5My0xLjEzMy4xNDEtLjA3Ny4yODUtLjE1Ni40MjgtLjIzNC4xNDMuMDc4LjI4Ny4xNTcuNDI4LjIzNC42MDMuMzMxIDEuMjkyLjcwOCAyLjEwOSAxLjE0MiAwIDAgMTE4LjE5MyA2Mi40MTMgMTE5LjY0MiA2My4zMS44NjkuNTM4IDEuNTA5Ljk5NSAyLjAwOSAxLjQzOCAxLjE2NyAxLjAzNSAyLjE2MiAyLjU4OSA0LjQ5NiA2LjMxOC41MTguODI3IDQ5LjY1MSA3OC42ODEgNDkuNjUxIDc4LjY4MXYxNjAuNzE2aC04NC45MjF2LTEwNC4zNGgxMi42MjVjNy42NTIgMCAxMy44NzgtNi4yMjYgMTMuODc4LTEzLjg3OHYtMjEuNDNjMC03LjY1Mi02LjIyNi0xMy44NzgtMTMuODc4LTEzLjg3OGgtODUuMTIyYy00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDg0djE5LjE4NmgtMjA5Ljgxdi0xOS4xODZoOTEuMmM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtOTIuMzIyYy03LjY1MiAwLTEzLjg3OCA2LjIyNi0xMy44NzggMTMuODc4djIxLjQzYzAgNy42NTIgNi4yMjYgMTMuODc4IDEzLjg3OCAxMy44NzhoMTIuNjI1djEwNC4zMzloLTg0Ljk0N3YtMzguNTYzYzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc2LjUzNmMwIDYuOTM0IDUuNjQxIDEyLjU3NCAxMi41NzQgMTIuNTc0aDQ0NS45MDdjNy4xNjcgMCAxMi45OTktNS44MzIgMTIuOTk5LTEyLjk5OXYtNDAwLjkwNWMuMDAxLTU0LjA5MS00NC4wMDQtOTguMDk2LTk4LjA5Mi05OC4wOTZ6bS0yNzMuNDQgNDk3aC04NC45NDh2LTIwLjU0Nmg4NC45NDd2MjAuNTQ2em0xNTkuNzgzLTEzOS44ODYtNjYuMzgyIDU5Ljg0NS02Ni4zODItNTkuODQ1em0tMTQ0Ljc4MyA5LjM1OSA2Ny4yMDEgNjAuNTg0LTY3LjIwMSA2MC41ODR6bTEyLjAyIDEzMC41MjcgNjYuMzgyLTU5Ljg0NSA2Ni4zODEgNTkuODQ1em0xNDQuNzgzLTkuMzU5LTY3LjIwMS02MC41ODQgNjcuMjAxLTYwLjU4NHptOTkuOTE5IDkuMzU5aC04NC45MTl2LTIwLjU0Nmg4NC45MTl6bTUzLjQ0NS0xOTguODIzYy0uMzQ3LS43Mi0uNzMzLTEuNDI3LTEuMTY2LTIuMTE3bC01MS45NDUtODIuMjY2aDg0LjQ3N3Y4NC4zODN6bS0xMzQuODQ4LTIwMC4wODFjMC00NS44MTkgMzcuMjg4LTgzLjA5NiA4My4xMjItODMuMDk2IDQ1LjgxNiAwIDgzLjA5MiAzNy4yNzYgODMuMDkyIDgzLjA5NnYxLjI4N2gtMTY2LjIxNHptMCAxNi4yODdoMTY2LjIxNHY4NC40MTJoLTkzLjk0OXMtMy41MjMtNS42NTYtNC4zMTItNi45NjZjLTQuODMxLTguMDM2LTYuNDQtOS43NjYtMTcuODY4LTE1Ljc3OGwtNTAuMDg2LTI2LjQ1di0zNS4yMTh6bTk1LjI0NiAxODAuMTc3cy01MC4yNzUtNzkuNjU2LTUwLjc4LTgwLjQ2M2MtNC43OTktNy42NjUtNi41MTQtOS44MjUtMTMuMjgxLTEzLjY5Mi0uNTIxLS4yOTctMTE5LjkyOS02My40MDgtMTIwLjQ4Mi02My43MTEtNS4xMDEtMi43OTUtNy44NDctMy4zMi0xMi4wNjctMS41NzItLjAzNy4wMTUtLjA3Ni4wMzQtLjExMy4wNS0uNjE2LjI1OS0xMTcuOTg1IDYyLjE5Ny0xMTcuOTg1IDYyLjE5Ny0xMS43MjcgNi4yLTEyLjk2MSA3LjI5NS0xOC44NjggMTYuNzI5LS41MDUuODA3LTUwLjc4IDgwLjQ2My01MC43OCA4MC40NjMtLjAxLjAxNi0uMDE2LjAzMy0uMDI2LjA0OWwtMTAuMjk0IDE2LjMxYy0yLjM3NSAzLjc2Ny03Ljg4NSA1LjA5Ni0xMi4wMzkgMi44OTQtMi4wNi0xLjA4Ni0zLjU1Mi0yLjg3My00LjA5My00LjkwMS0uMzE2LTEuMTg0LS40NDYtMi45ODQuNzI5LTQuODQzIDAgMCA2NS4wMzctMTAzLjEyNCA2NS44NzItMTA0LjUxMiAzLjQ0OC01LjczNCAzLjQ0OC01LjczNCAxMi4wMTctMTAuMjQzIDAgMCAxMzkuMTkzLTczLjYzOSAxNDAuMDEyLTc0LjAxMy44Mi4zNzQgMTQwLjAxMiA3NC4wMTMgMTQwLjAxMiA3NC4wMTMuMDAzLjAwMi4wMDcuMDA0LjAxMS4wMDYgOC41NTkgNC41MDIgOC41NTkgNC41MDIgMTIuMDA3IDEwLjIzOC44MzQgMS4zODggMS44MTYgMy4wMiAzLjA1OCA0Ljk4N2w2Mi44MzMgOTkuNTA5YzEuMTY4IDEuODYgMS4wMzQgMy42NjkuNzE2IDQuODU5LS41NDQgMi4wMzItMi4wMzIgMy44Mi00LjA3MiA0Ljg5OS00LjIyNiAyLjIzMS05LjY0NS45MjQtMTIuMDY5LTIuODk2bC0xMC4yOTItMTYuMzA3Yy0uMDEtLjAxNy0uMDE2LS4wMzUtLjAyNi0uMDV6bTcwLjk2OCAyMDIuNDRoLTY5LjgxMXYtODQuNDExaDY5LjgxMXptLTY5LjgxMS05OS40MTF2LTc0LjM4OWM3LjMxMyA3LjA0MiAxOC43NjMgOC44NzQgMjguMjM4IDMuODc1IDUuNi0yLjk2NSA5Ljc0Ni04LjAxNiAxMS40MzgtMTMuODk3aDMwLjEzNXY4NC40MTJoLTY5LjgxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg1LjI2MiAyMzcuODczYzAtMjguMzQ3LTIzLjA2Mi01MS40MDktNTEuNDA4LTUxLjQwOS0yOC4zMzEgMC01MS4zNzkgMjMuMDYyLTUxLjM3OSA1MS40MDlzMjMuMDQ5IDUxLjQwOSA1MS4zNzkgNTEuNDA5YzI4LjM0Ny0uMDAxIDUxLjQwOC0yMy4wNjMgNTEuNDA4LTUxLjQwOXptLTg3Ljc4NyAwYzAtMjAuMDc2IDE2LjMyLTM2LjQwOSAzNi4zNzktMzYuNDA5IDIwLjA3NSAwIDM2LjQwOCAxNi4zMzMgMzYuNDA4IDM2LjQwOXMtMTYuMzMzIDM2LjQwOS0zNi40MDggMzYuNDA5Yy0yMC4wNTktLjAwMS0zNi4zNzktMTYuMzM0LTM2LjM3OS0zNi40MDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTIuOTk1IDE2Ni40ODktMzEuOTk1LTIzLjk5NnYtMTEyLjQ5M2M4LjI4NCAwIDE1LTYuNzE2IDE1LTE1cy02LjcxNi0xNS0xNS0xNWgtOTBjLTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTV2NDQuOTkybC04OC4wMDktNjYuMDA2Yy0xNS44OTMtMTEuOTA0LTM4LjA5LTExLjkwNS01My45ODkuMDA1bC0yMDkuOTk5IDE1Ny41Yy0xOS44NTMgMTQuODkzLTIzLjg5MSA0My4xNTUtOS4wMDEgNjMuMDA0IDcuMjIgOS42MiAxNy43NTIgMTUuODUzIDI5LjY1NyAxNy41NSAyLjE1Ny4zMDggNC4zMS40NiA2LjQ1LjQ1OSA1LjEwOSAwIDEwLjEzLS44NzYgMTQuODkxLTIuNTY0djI1Mi4wNmMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDM2MGM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di0yNTIuMDY4YzQuNzYzIDEuNjg1IDkuODAzIDIuNTYgMTQuOTc4IDIuNTYgMTQuMSAwIDI3LjU2NS02LjcyOSAzNi4wMjItMTggMTQuODg4LTE5Ljg0NiAxMC44NDktNDguMTA4LTkuMDA1LTYzLjAwM3ptLTkxLjk5NS0xMzYuNDg5aDMwdjg5Ljk5MmwtMzAtMjIuNXptLTEyMCAyNzJoLTUwdi05Mmg1MHptMzAgMHYtMTA3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTgwYy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djEwN2gtMTA5Ljk5OXYtNzcuMDA0bDE2NC45OTktMTIzLjc1MiAxNjUgMTIzLjc1M3Y3Ny4wMDN6bS0yMTkuOTk5IDMwaDIwOS45OTl2MzBoLTQ1Yy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djQ1aC00NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY0NWgtOTB6bTExOS45OTkgMTUwdi0zMGg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg5MHYxNTB6bTI2Ny4wMDItMjcwLjUxMWMtMi44NjMgMy44MTUtNy4yNDUgNi4wMDQtMTIuMDI0IDYuMDA0LTMuMjYgMC02LjM2NS0xLjAzNi04Ljk3OS0yLjk5NmwtMTkxLjk5OS0xNDQuMDAzYy01LjMzMy00LTEyLjY2Ny00LTE4IDBsLTE5Mi4wMDggMTQ0LjAwOWMtMy4xOTMgMi4zOTctNy4xMzYgMy40MDgtMTEuMDk4IDIuODQyLTMuOTczLS41NjYtNy40ODgtMi42NDctOS44OTYtNS44NTYtNC45NjEtNi42MTQtMy42MTItMTYuMDM1IDMuMDA2LTIxbDIwOS45OTEtMTU3LjQ5MmMyLjY1Mi0xLjk4NyA1LjgzLTIuOTc5IDkuMDA3LTIuOTc5IDMuMTc1IDAgNi4zNDkuOTkyIDguOTk2IDIuOTc0bDIwOS45OTYgMTU3LjQ5N2M2LjYyIDQuOTY2IDcuOTY5IDE0LjM4NiAzLjAwOCAyMXoiLz4KICAgIDwvZz4KPC9zdmc+",lxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDg1LjQsMjcyLjA2N2gtOC41MzN2LTE3OS4yYzAtNDIuNjY3LTM0LjEzMy03Ni44LTc2LjgtNzYuOGMtMzcuNzcsMC02NC45MzUsMjguMDA2LTY3Ljk3NCw2OS4wNDEKCQkJCWMtMTkuODI5LDMuNzQ4LTM0LjQyNiwyMC44MjYtMzQuNDI2LDQxLjg5MmMwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNoNjguMjY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzMwoJCQkJYzAtMjAuODMzLTE0LjI3NC0zNy43NjktMzMuNzY3LTQxLjc2N2MyLjU1LTI3LjExNiwxOC44MzYtNTIuMSw1MC44MzQtNTIuMWMzMy4yOCwwLDU5LjczMywyNi40NTMsNTkuNzMzLDU5LjczM3YxNzkuMkgyMDIuOTc1CgkJCQljLTMuODYtMTkuNjgxLTIwLjg3OC0zNC4xMzMtNDEuODQxLTM0LjEzM2MtOC41MzMtMTAuMjQtMjAuNDgtMTcuMDY3LTM0LjEzMy0xNy4wNjdjLTE2LjIxMywwLTMwLjcyLDkuMzg3LTM3LjU0NywyMy4wNAoJCQkJYy02LjgyNy0zLjQxMy0xNC41MDctNS45NzMtMjIuMTg3LTUuOTczYy0yMC45NjMsMC0zNy45ODEsMTQuNDUyLTQxLjg0MSwzNC4xMzNIMjQuNmMtMTQuNTA3LDAtMjUuNiwxMS4wOTMtMjUuNiwyNS42CgkJCQljMCwxNC41MDcsMTEuMDkzLDI1LjYsMjUuNiwyNS42aDEwLjI1NWwyMy4wMjUsOTEuMzA3YzYuODI3LDI2LjQ1MywzMC43Miw0NS4yMjcsNTguMDI3LDQ1LjIyN2g2LjgyN2wtMTEuMDkzLDIyLjE4NwoJCQkJYy0yLjU2LDQuMjY3LTAuODUzLDkuMzg3LDMuNDEzLDExLjA5M2MwLjg1MywwLjg1MywyLjU2LDAuODUzLDMuNDEzLDAuODUzYzMuNDEzLDAsNS45NzMtMS43MDcsNy42OC00LjI2N0wxNDEuMDgsNDU5LjhoMjM2LjgKCQkJCWwxNC41MDcsMjkuMDEzYzEuNzA3LDMuNDEzLDQuMjY3LDUuMTIsNy42OCw1LjEyYzEuNzA3LDAsMi41NiwwLDMuNDEzLTEuNzA3YzMuNDEzLTEuNzA3LDUuMTItNi44MjcsMy40MTMtMTEuMDkzCgkJCQlsLTEwLjY4OS0yMS4zNzljMjYuNDE5LTAuOTM4LDQ5LjI2Ni0xOS4zOSw1NS45MTYtNDQuMzI4bDIzLjI0LTkyLjE2aDEwLjA0YzE0LjUwNywwLDI1LjYtMTEuMDkzLDI1LjYtMjUuNgoJCQkJQzUxMSwyODMuMTYsNDk5LjkwNywyNzIuMDY3LDQ4NS40LDI3Mi4wNjd6IE0zNjUuMDgsMTE4LjQ2N2gtNDguNjRjMy40MTMtMTAuMjQsMTMuNjUzLTE3LjA2NywyNC43NDctMTcuMDY3CgkJCQlTMzYxLjY2NywxMDguMjI3LDM2NS4wOCwxMTguNDY3eiBNNjcuMjY3LDI1NWM3LjY4LDAsMTQuNTA3LDMuNDEzLDIwLjQ4LDkuMzg3YzEuNzA3LDIuNTYsNS4xMiwzLjQxMyw4LjUzMywyLjU2CgkJCQlzNS4xMi0zLjQxMyw1Ljk3My02LjgyN2MyLjU2LTEyLjgsMTIuOC0yMi4xODcsMjUuNi0yMi4xODdjOS4zODcsMCwxNy45Miw0LjI2NywyMi4xODcsMTIuOGMxLjcwNywzLjQxMyw1Ljk3Myw1LjEyLDkuMzg3LDQuMjY3CgkJCQljMC44NTMsMCwxLjcwNywwLDIuNTYsMGMxMS4wOTMsMCwyMC40OCw2LjgyNywyMy44OTMsMTcuMDY3SDQzLjM3M0M0Ni43ODcsMjYxLjgyNyw1Ni4xNzMsMjU1LDY3LjI2NywyNTV6IE00MzYuNzYsNDEwLjMwNwoJCQkJYy01LjEyLDE4Ljc3My0yMi4xODcsMzIuNDI3LTQxLjgxMywzMi40MjdIMTE2Ljc2Yy0xOS42MjcsMC0zNi42OTMtMTMuNjUzLTQxLjgxMy0zMi40MjdsLTIyLjE4Ny04Ny4wNGg0MDQuNDhMNDM2Ljc2LDQxMC4zMDd6CgkJCQkgTTQ4NS40LDMwNi4yaC0xNy4wNjdINDEuNjY3SDI0LjZjLTUuMTIsMC04LjUzMy0zLjQxMy04LjUzMy04LjUzM3MzLjQxMy04LjUzMyw4LjUzMy04LjUzM2g4LjUzM2gxNjIuMTMzSDQ4NS40CgkJCQljNS4xMiwwLDguNTMzLDMuNDEzLDguNTMzLDguNTMzUzQ5MC41MiwzMDYuMiw0ODUuNCwzMDYuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzA2LjIsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMyOTcuNjY3LDE3MC41MiwzMDEuMDgsMTczLjkzMywzMDYuMiwxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyMTMuMTg3YzUuMTIsMCw4LjUzMy00LjI2Nyw4LjUzMy04LjUzM3YtOS4zODdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y5LjM4NwoJCQkJQzI5Ny42NjcsMjA5Ljc3MywzMDEuMDgsMjEzLjE4NywzMDYuMiwyMTMuMTg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyNDYuNDY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzM3YtNC4yNjdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y0LjI2NwoJCQkJQzI5Ny42NjcsMjQzLjA1MywzMDEuMDgsMjQ2LjQ2NywzMDYuMiwyNDYuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDAuMzMzLDE3My45MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzdjQuMjY3QzMzMS44LDE3MC41MiwzMzUuMjEzLDE3My45MzMsMzQwLjMzMywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMzEuOCwyMDQuNjUzYzAsNS4xMiwzLjQxMyw4LjUzMyw4LjUzMyw4LjUzM2M1LjEyLDAsOC41MzMtNC4yNjcsOC41MzMtOC41MzN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJYy01LjEyLDAtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjA0LjY1M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzMxLjgsMjM3LjkzM2MwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzVjIzNy45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM3NC40NjcsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMzNjUuOTMzLDE3MC41MiwzNjkuMzQ3LDE3My45MzMsMzc0LjQ2NywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIwNC42NTNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzUzM4MywyMDguOTIsMzgzLDIwNC42NTN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM1YyMDQuNjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIzNy45MzNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCXMtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjM3LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Nxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OTYsMzQ0aC04VjI4MGEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMyVjExMmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDg4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJWMjQ4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJ2NjRIMTZhOCw4LDAsMCwwLTgsOHYzMmE4LDgsMCwwLDAsOCw4aDh2MzJhOCw4LDAsMCwwLDgsOEg1NmE3Ljk5LDcuOTksMCwwLDAsNy44NC02LjQzTDcwLjU2LDM5Mkg0NDEuNDRsNi43MiwzMy41N0E3Ljk5LDcuOTksMCwwLDAsNDU2LDQzMmgyNGE4LDgsMCwwLDAsOC04VjM5Mmg4YTgsOCwwLDAsMCw4LThWMzUyQTgsOCwwLDAsMCw0OTYsMzQ0Wk03MiwxMTJBMTYuMDIxLDE2LjAyMSwwLDAsMSw4OCw5Nkg0MjRhMTYuMDIxLDE2LjAyMSwwLDAsMSwxNiwxNlYyNDhINDI0VjIxNmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDI5NmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLDMydjMySDI0OFYyMTZhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMi0zMkgxMjBhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMiwzMnYzMkg3MlpNNDA4LDIxNnYzMkgyODBWMjE2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZoOTZBMTYuMDIxLDE2LjAyMSwwLDAsMSw0MDgsMjE2Wm0tMTc2LDB2MzJIMTA0VjIxNmExNi4wMjEsMTYuMDIxLDAsMCwxLDE2LTE2aDk2QTE2LjAyMSwxNi4wMjEsMCwwLDEsMjMyLDIxNlpNNDAsMjgwYTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZINDU2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYsMTZ2NjRINDBabTkuNDQsMTM2SDQwVjM5Mkg1NC4yNFpNNDcyLDQxNmgtOS40NGwtNC44LTI0SDQ3MlptMTYtNDBIMjRWMzYwSDQ4OFoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Lxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NS4zOTMgNDUuMzkzIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzLjUxOCwxMi43MDlMMjUuMTc4LDAuNzI4Yy0xLjUxMS0wLjk3OC0zLjQ1OC0wLjk2OC00Ljk2LDAuMDIxTDEuODU5LDEyLjcxOWMtMS4xNCwwLjc1MS0xLjQ1NSwyLjI4NC0wLjcwNSwzLjQyNAoJCQljMC43NTEsMS4xNCwyLjI4MywxLjQ1NiwzLjQyNCwwLjcwNEwyMi43MTUsNS4wMjFMNDAuODMsMTYuODU3YzAuNDE2LDAuMjY5LDAuODgxLDAuMzk2LDEuMzQxLDAuMzk2CgkJCWMwLjgxMiwwLDEuNjA0LTAuMzk3LDIuMDc3LTEuMTI3QzQ0Ljk5LDE0Ljk4LDQ0LjY2MiwxMy40NTIsNDMuNTE4LDEyLjcwOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzguODc5LDI3LjYxNmMtMC4xNTEtMC44NjUtMC45MDMtMS41MDUtMS43OC0xLjUwNWgtMS4wMDhsLTAuMzgzLTMuOTg3Yy0wLjQwOS00LjI2NC0zLjk0OC03LjQ5LTguMjMyLTcuNDlIMTcuOTIKCQkJYy00LjI4NSwwLTcuODIzLDMuMjI3LTguMjMzLDcuNDlsLTAuMzgyLDMuOTg3SDguMjk2Yy0wLjg3OCwwLTEuNjI5LDAuNjQtMS43ODIsMS41MDVsLTEuNSw4LjUwNAoJCQljLTAuMTg2LDEuMDU0LDAuMTEyLDIuMTM5LDAuOCwyLjk1N2MwLjY2MiwwLjc4OCwxLjYzNywxLjI1OCwyLjY1NywxLjI5M3YxLjQxMmMwLDEuOTk5LDEuNjAyLDMuNjEsMy42MDMsMy42MWgxLjEzOAoJCQljMS45OTksMCwzLjYyNS0xLjYxMSwzLjYyNS0zLjYxdi0xLjM4OWgxMS43MzJ2MS4zODZjMCwyLDEuNjEzLDMuNjEzLDMuNjEyLDMuNjEzaDEuMTM5YzEuOTk5LDAsMy42MTQtMS42MTMsMy42MTQtMy42MTNWNDAuMzcKCQkJYzEuMDItMC4wMzUsMS45ODktMC41MDEsMi42NDktMS4yODhjMC42ODgtMC44MiwwLjk4Mi0xLjg5OSwwLjc5OC0yLjk1NUwzOC44NzksMjcuNjE2eiBNMTEuNjQyLDM3LjExMwoJCQljLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1N2MxLjY4OCwwLDMuMDU3LDEuMzY3LDMuMDU3LDMuMDU3CgkJCUMxNC42OTksMzUuNzQ2LDEzLjMzLDM3LjExMywxMS42NDIsMzcuMTEzeiBNMTIuNDA0LDI2LjExMWwwLjM1My0zLjY3OGMwLjI1Ny0yLjY3NCwyLjQ3Ni00LjY4OCw1LjE2My00LjY4OGgwLjU1MXYxLjE1NgoJCQljMCwxLjAwMywwLjc5NywxLjgwMiwxLjc5OSwxLjgwMmg0Ljg1NmMxLjAwMiwwLDEuODEzLTAuNzk5LDEuODEzLTEuODAydi0xLjE1NWgwLjUzN2MyLjY4NywwLDQuOTA2LDIuMDE0LDUuMTYyLDQuNjg4CgkJCWwwLjM1NCwzLjY3OEwxMi40MDQsMjYuMTExTDEyLjQwNCwyNi4xMTF6IE0zMy43NSwzNy4xMTNjLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1NwoJCQljMS42ODgsMCwzLjA1NywxLjM2NywzLjA1NywzLjA1N0MzNi44MDcsMzUuNzQ2LDM1LjQzOCwzNy4xMTMsMzMuNzUsMzcuMTEzeiIvPgogICAgPC9nPgo8L3N2Zz4K",gxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDk0LjU5NCwzOTQuMjM3aC0xOS40NjFjMTIuOTU0LTE5LjU0MywyMC41MTItNDIuOTU4LDIwLjUxMi02OC4xMDljMC02OC4xNTctNTUuNDQ5LTEyMy42MDYtMTIzLjYwNi0xMjMuNjA2CgkJCWMtNy4xNzEsMC0xNC4yLDAuNjIyLTIxLjA0LDEuNzk5YzE3Ljg1My0yMS40MzUsMjguNjA4LTQ4Ljk3OSwyOC42MDgtNzguOTlDMzc5LjYwNiw1Ny4xNzQsMzI0LjE1NywxLjcyNCwyNTYsMS43MjQKCQkJYy02OC4xNTcsMC0xMjMuNjA2LDU1LjQ0OS0xMjMuNjA2LDEyMy42MDZjMCwzMC4wMTIsMTAuNzU1LDU3LjU1NSwyOC42MDgsNzguOTljLTYuODQtMS4xNzgtMTMuODY5LTEuNzk5LTIxLjA0LTEuNzk5CgkJCWMtNjguMTU3LDAtMTIzLjYwNiw1NS40NDktMTIzLjYwNiwxMjMuNjA2YzAsMjUuMTUxLDcuNTU4LDQ4LjU2NywyMC41MTIsNjguMTA5SDE3LjQwNkwwLDUxMC4yNzZoOTMuMjk0bDE1LjEzNS0yMC4xODFoNjMuMDY0CgkJCWwxNS4xMzUsMjAuMTgxaDEzOC43NDJsMTUuMTM1LTIwLjE4MWg2My4wNjRsMTUuMTM1LDIwLjE4MUg1MTJMNDk0LjU5NCwzOTQuMjM3eiBNNDY5LjUxOSwzNzMuNjdsLTEzLjE0Mi03LjU4OAoJCQljNC43MzYtOS45NTgsNy43Ni0yMC44ODEsOC42ODgtMzIuMzg3aDE1LjE3NUM0NzkuMjU0LDM0Ny45NDgsNDc1LjUwMywzNjEuNDUsNDY5LjUxOSwzNzMuNjd6IE00MDkuODc3LDM5NC41MzN2LTEzNi44MQoJCQljMjQuMDQ1LDEzLjM1NCw0MC4zNjEsMzkuMDA1LDQwLjM2MSw2OC40MDVTNDMzLjkyMiwzODEuMTc4LDQwOS44NzcsMzk0LjUzM3ogTTQxOS41ODEsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMNDE5LjU4MSw0MjMuNjA4eiBNNDQ4Ljc4NywzNzkuMTc2CgkJCWwxMy4xNDgsNy41OTFjLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzQzNC4zMzYsMzk2LjQ2NCw0NDIuMzc1LDM4OC40MjUsNDQ4Ljc4NywzNzkuMTc2egoJCQkgTTQ4MC4yNDEsMzE4LjU2aC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEM0NzUuNTAzLDI5MC44MDUsNDc5LjI1NCwzMDQuMzA3LDQ4MC4yNDEsMzE4LjU2egoJCQkgTTQzMi42NzgsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTkKCQkJTDQzMi42NzgsMjM2LjIzMXogTTQxMS45OTQsMjQxLjc4OWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4di0xNS4xNzZjMTQuMjUyLDAuOTg3LDI3Ljc1NCw0LjczOCwzOS45NzQsMTAuNzIyCgkJCUw0MTEuOTk0LDI0MS43ODl6IE0zOTQuNzQyLDI1MS4zdjE0OS42NTVjLTcuMTg5LDIuMTg2LTE0LjgxLDMuMzcyLTIyLjcwMywzLjM3MmMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zCgkJCWM3LjE4OS0yLjE4NiwxNC44MS0zLjM3MiwyMi43MDMtMy4zNzJDMzc5LjkzMiwyNDcuOTI4LDM4Ny41NTIsMjQ5LjExNCwzOTQuNzQyLDI1MS4zeiBNMTc3LjgsMzk0LjUzM3YtMTM2LjgxCgkJCWMyNC4wNDUsMTMuMzU0LDQwLjM2MSwzOS4wMDUsNDAuMzYxLDY4LjQwNVMyMDEuODQ1LDM4MS4xNzgsMTc3LjgsMzk0LjUzM3ogTTE4Ny41MDQsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMMTg3LjUwNCw0MjMuNjA4eiBNMjgyLjE0MiwyNjUuNDg4CgkJCWM3Ljc5NC0xMS41MTcsMTcuNzQtMjEuNDYzLDI5LjI1Ni0yOS4yNTZsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OUwyODIuMTQyLDI2NS40ODh6IE0yODcuNywyODYuMTczCgkJCWMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3aC0xNS4xNzVjMC45ODctMTQuMjUzLDQuNzM3LTI3Ljc1NCwxMC43MjItMzkuOTc1TDI4Ny43LDI4Ni4xNzN6IE0zMTYuNjQsMjE1LjIyNwoJCQlsLTcuNTkxLTEzLjE0OGM5LjI0OS02LjQxMiwxNy4yODctMTQuNDUsMjMuNjk5LTIzLjY5OWwxMy4xNDgsNy41OTFDMzM4LjEwMywxOTcuNDg3LDMyOC4xNTcsMjA3LjQzMywzMTYuNjQsMjE1LjIyN3oKCQkJIE0yOTMuODM5LDE5My43MzZWNTYuOTI1QzMxNy44ODQsNzAuMjgsMzM0LjIsOTUuOTMsMzM0LjIsMTI1LjMzMVMzMTcuODg0LDE4MC4zODEsMjkzLjgzOSwxOTMuNzM2eiBNMjk1Ljk1NSwyMDkuNjY5CgkJCWw3LjU4NywxMy4xNDJjLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVDMjc1LjA3NCwyMTcuNDMsMjg1Ljk5NiwyMTQuNDA3LDI5NS45NTUsMjA5LjY2OXogTTI3Ny4wNCwyNDcuMTM4CgkJCWMtOC45NTEsMTAuNzQ3LTE2LjExOSwyMy4wMjgtMjEuMDQsMzYuMzg5Yy00LjkyMS0xMy4zNjEtMTIuMDg5LTI1LjY0MS0yMS4wNC0zNi4zODljNi44NCwxLjE3OCwxMy44NjksMS43OTksMjEuMDQsMS43OTkKCQkJQzI2My4xNzEsMjQ4LjkzNywyNzAuMiwyNDguMzE1LDI3Ny4wNCwyNDcuMTM4eiBNMjQ4LjE2NCwzMTguNTZoLTE1LjE3NWMtMC45MjctMTEuNTA2LTMuOTUxLTIyLjQyOS04LjY4OC0zMi4zODdsMTMuMTQyLTcuNTg4CgkJCUMyNDMuNDI2LDI5MC44MDUsMjQ3LjE3NywzMDQuMzA3LDI0OC4xNjQsMzE4LjU2eiBNMjQ4LjQzMSwyMzMuNTMzYy0xNC4yNTItMC45ODctMjcuNzU0LTQuNzM4LTM5Ljk3NC0xMC43MjJsNy41ODctMTMuMTQyCgkJCWM5Ljk1OCw0LjczNiwyMC44ODEsNy43NiwzMi4zODcsOC42ODhWMjMzLjUzM3ogTTIxOC4xNjEsMTkzLjczNmMtMjQuMDQ1LTEzLjM1NC00MC4zNjEtMzkuMDA1LTQwLjM2MS02OC40MDUKCQkJYzAtMjkuNCwxNi4zMTYtNTUuMDUxLDQwLjM2MS02OC40MDVWMTkzLjczNnogTTE3OS4yNTEsMTc4LjM3OWM2LjQxMiw5LjI0OSwxNC40NSwxNy4yODcsMjMuNjk5LDIzLjY5OWwtNy41OTEsMTMuMTQ4CgkJCWMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDE3OS4yNTEsMTc4LjM3OXogTTIwMC42MDEsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTYKCQkJbC0xMy4xNDgsNy41OTFjLTYuNDEyLTkuMjQ5LTE0LjQ1LTE3LjI4Ny0yMy42OTktMjMuNjk5TDIwMC42MDEsMjM2LjIzMXogTTIxNi43MSwzNzkuMTc2bDEzLjE0OCw3LjU5MQoJCQljLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzIwMi4yNTksMzk2LjQ2NCwyMTAuMjk4LDM4OC40MjUsMjE2LjcxLDM3OS4xNzZ6IE0yMjQuMywzNjYuMDgyCgkJCWM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1Yy0wLjk4NywxNC4yNTMtNC43MzcsMjcuNzU0LTEwLjcyMiwzOS45NzVMMjI0LjMsMzY2LjA4MnogTTI1NiwzNjguNzI5CgkJCWMzLjMzMiw5LjA0NSw3LjY5NywxNy41OTMsMTIuOTQ0LDI1LjUwOGgtMjUuODg4QzI0OC4zMDMsMzg2LjMyMSwyNTIuNjY4LDM3Ny43NzQsMjU2LDM2OC43Mjl6IE0yNjMuODM2LDMzMy42OTVoMTUuMTc1CgkJCWMwLjkyNywxMS41MDYsMy45NTEsMjIuNDI5LDguNjg4LDMyLjM4N2wtMTMuMTQyLDcuNTg4QzI2OC41NzQsMzYxLjQ1LDI2NC44MjMsMzQ3Ljk0OCwyNjMuODM2LDMzMy42OTV6IE0yOTUuMjksMzc5LjE3NgoJCQljNi40MTIsOS4yNDksMTQuNDUsMTcuMjg3LDIzLjY5OSwyMy42OTlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDI5NS4yOSwzNzkuMTc2egoJCQkgTTI5My44MzksMzI2LjEyOGMwLTI5LjQsMTYuMzE2LTU1LjA1MSw0MC4zNjEtNjguNDA1djEzNi44MUMzMTAuMTU1LDM4MS4xNzgsMjkzLjgzOSwzNTUuNTI4LDI5My44MzksMzI2LjEyOHogTTMzMi4wODQsNDEwLjQ2NgoJCQljOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDMzMi4wODQsNDEwLjQ2NnogTTM2NC40NzEsMjE3LjkyNVYyMzMuMQoJCQljLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMzM2LjcxNiwyMjIuNjYzLDM1MC4yMTgsMjE4LjkxMiwzNjQuNDcxLDIxNy45MjV6IE0zNTMuNDgsMTcyLjg3MwoJCQlsLTEzLjE0Mi03LjU4OGM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1QzM2My4yMTYsMTQ3LjE1MSwzNTkuNDY1LDE2MC42NTMsMzUzLjQ4LDE3Mi44NzN6IE0zNjQuMjAyLDExNy43NjMKCQkJaC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEMzNTkuNDY1LDkwLjAwOCwzNjMuMjE2LDEwMy41MSwzNjQuMjAyLDExNy43NjN6IE0zMTYuNjQsMzUuNDM0CgkJCWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTlMMzE2LjY0LDM1LjQzNHogTTI5NS45NTYsNDAuOTkyCgkJCWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4VjE3LjEyOGMxNC4yNTIsMC45ODcsMjcuNzU0LDQuNzM4LDM5Ljk3NCwxMC43MjJMMjk1Ljk1Niw0MC45OTJ6IE0yNzguNzAzLDUwLjUwM3YxNDkuNjU1CgkJCWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyYy03Ljg5NCwwLTE1LjUxNC0xLjE4Ny0yMi43MDMtMy4zNzJWNTAuNTAzYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MgoJCQlDMjYzLjg5NCw0Ny4xMzEsMjcxLjUxNCw0OC4zMTcsMjc4LjcwMyw1MC41MDN6IE0yNDguNDMyLDE3LjEyOHYxNS4xNzVjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDIKCQkJQzIyMC42NzgsMjEuODY2LDIzNC4xOCwxOC4xMTUsMjQ4LjQzMiwxNy4xMjh6IE0xOTUuMzYsMzUuNDM0bDcuNTkxLDEzLjE0OGMtOS4yNDksNi40MTItMTcuMjg3LDE0LjQ1LTIzLjY5OSwyMy42OTkKCQkJbC0xMy4xNDgtNy41OTFDMTczLjg5Nyw1My4xNzQsMTgzLjg0Myw0My4yMjgsMTk1LjM2LDM1LjQzNHogTTE1OC41Miw3Ny43ODhsMTMuMTQyLDcuNTg4Yy00LjczNiw5Ljk1OC03Ljc2LDIwLjg4MS04LjY4OCwzMi4zODcKCQkJaC0xNS4xNzVDMTQ4Ljc4NSwxMDMuNTEsMTUyLjUzNSw5MC4wMDgsMTU4LjUyLDc3Ljc4OHogTTE1OC41MiwxNzIuODczYy01Ljk4NC0xMi4yMi05LjczNS0yNS43MjItMTAuNzIyLTM5Ljk3NWgxNS4xNzUKCQkJYzAuOTI3LDExLjUwNiwzLjk1MSwyMi40MjksOC42ODgsMzIuMzg3TDE1OC41MiwxNzIuODczeiBNMTg3LjUwNCwyMjguNjQ3bC03LjU4NywxMy4xNDJjLTkuOTU4LTQuNzM2LTIwLjg4MS03Ljc2LTMyLjM4Ny04LjY4OAoJCQl2LTE1LjE3NkMxNjEuNzgyLDIxOC45MTIsMTc1LjI4NCwyMjIuNjY0LDE4Ny41MDQsMjI4LjY0N3ogTTE2Mi42NjUsMjUxLjN2MTQ5LjY1NWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyCgkJCWMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MkMxNDcuODU1LDI0Ny45MjgsMTU1LjQ3NSwyNDkuMTE0LDE2Mi42NjUsMjUxLjN6CgkJCSBNNjEuNzYyLDMyNi4xMjhjMC0yOS40LDE2LjMxNi01NS4wNTEsNDAuMzYxLTY4LjQwNXYxMzYuODFDNzguMDc4LDM4MS4xNzgsNjEuNzYyLDM1NS41MjgsNjEuNzYyLDMyNi4xMjh6IE04Ni45MTMsNDAyLjg3NgoJCQlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2bDEzLjE0OC03LjU5MUM2OS42MjUsMzg4LjQyNSw3Ny42NjQsMzk2LjQ2NCw4Ni45MTMsNDAyLjg3NnoKCQkJIE0xMDAuMDA3LDQxMC40NjZjOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDEwMC4wMDcsNDEwLjQ2NnoKCQkJIE0xMzIuMzk0LDIxNy45MjVWMjMzLjFjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMTA0LjYzOSwyMjIuNjYzLDExOC4xNDEsMjE4LjkxMiwxMzIuMzk0LDIxNy45MjUKCQkJeiBNNzkuMzIyLDIzNi4yMzFsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OWwtMTMuMTQ4LTcuNTkxCgkJCUM1Ny44NTksMjUzLjk3MSw2Ny44MDUsMjQ0LjAyNSw3OS4zMjIsMjM2LjIzMXogTTQyLjQ4MSwyNzguNTg1bDEzLjE0Miw3LjU4OGMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3SDMxLjc1OQoJCQlDMzIuNzQ2LDMwNC4zMDcsMzYuNDk3LDI5MC44MDUsNDIuNDgxLDI3OC41ODV6IE0zMS43NTksMzMzLjY5NWgxNS4xNzVjMC45MjcsMTEuNTA2LDMuOTUxLDIyLjQyOSw4LjY4OCwzMi4zODdMNDIuNDgsMzczLjY3CgkJCUMzNi40OTcsMzYxLjQ1LDMyLjc0NiwzNDcuOTQ4LDMxLjc1OSwzMzMuNjk1eiBNNDI2LjI3NCw0OTUuMTRsLTE1LjEzNS0yMC4xODFoLTc4LjJsLTE1LjEzNSwyMC4xODFIMTk0LjE5N2wtMTUuMTM1LTIwLjE4MQoJCQloLTc4LjJMODUuNzI2LDQ5NS4xNEgxNy41NzVsMTIuODY1LTg1Ljc2OGgxOC4yM2MyMi42MiwyNC43ODYsNTUuMTcxLDQwLjM2MSw5MS4yOTEsNDAuMzYxczY4LjY3MS0xNS41NzUsOTEuMjkxLTQwLjM2MWg0OS40OTQKCQkJYzIyLjYyLDI0Ljc4Niw1NS4xNzEsNDAuMzYxLDkxLjI5MSw0MC4zNjFzNjguNjcxLTE1LjU3NSw5MS4yOTEtNDAuMzYxaDE4LjIzbDEyLjg2NSw4NS43NjhINDI2LjI3NHoiLz4KICAgICAgICA8cmVjdCB4PSIzMDUuOTQ4IiB5PSIxMTYuNzU1IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjE5MC45MTkiIHk9IjExNi43NTUiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTExLjIwNSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyNDguNDMzIiB5PSI2NS43OTkiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMzAuMjcxIi8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTcxLjc0NyIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSI0MjEuOTg2IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjMwNi45NTciIHk9IjMxNy41NTIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzY0LjQ3MiIgeT0iMzEyLjAwMiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIzNjQuNDcyIiB5PSIyNjYuNTk2IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjMwLjI3MSIvPgogICAgICAgIDxyZWN0IHg9IjM2NC40NzIiIHk9IjM3Mi41NDQiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTg5LjkxIiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9Ijc0Ljg4IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjEzMi4zOTUiIHk9IjMxMi4wMDIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTMyLjM5NSIgeT0iMjY2LjU5NiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIzMC4yNzEiLz4KICAgICAgICA8cmVjdCB4PSIxMzIuMzk1IiB5PSIzNzIuNTQ0IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ2MS4zODciIHk9IjQ3MC44ODEiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTg4OSAtMC4xNDgzIDAuMTQ4MyAwLjk4ODkgLTY1Ljc3MiA3NC44NDExKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ1Ni4yMSIgeT0iNDMxLjkzNSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODg5IC0wLjE0ODMgMC4xNDgzIDAuOTg4OSAtNjAuNzE5OSA3My42OTAzKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjI0LjE0NSIvPgogICAgICAgIDxyZWN0IHg9IjI0OC40MzMiIHk9IjQ2NC44NyIgd2lkdGg9IjQ1LjQwNiIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMTguMTYyIiB5PSI0NjQuODciIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjYzLjU2OSIgeT0iNDI0LjUwOSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMzMuMjk4IiB5PSI0MjQuNTA5IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjM2LjEyNyIgeT0iNDM2LjQ2MSIgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNDgzIC0wLjk4ODkgMC45ODg5IDAuMTQ4MyAtMzk4LjA2NzUgNDI1Ljg0MjcpIgogICAgICAgICAgICAgIHdpZHRoPSIyNC4xNDUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzUuNDY4IiB5PSI0NzAuODYiIHRyYW5zZm9ybT0ibWF0cml4KDAuMTQ4MyAtMC45ODg5IDAuOTg4OSAwLjE0ODMgLTQzNi40ODM4IDQ1MC4wMzI1KSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgPC9nPgo8L3N2Zz4K",jxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik02MSwyMUgzYTEsMSwwLDAsMCwwLDJINjFhMSwxLDAsMCwwLDAtMloiLz4KICAgICAgICA8cGF0aCBkPSJNNjEsMkg0OWExLDEsMCwwLDAtMSwxVjE3SDQ2di0uNzY0YTEwLjUzMywxMC41MzMsMCwwLDAtMS4xLTQuNjgzQTguNTIyLDguNTIyLDAsMCwxLDQ0LDcuNzY0VjNhMSwxLDAsMCwwLTEtMUgzOWExLDEsMCwwLDAtMSwxVjcuNzY0YTguNTIyLDguNTIyLDAsMCwxLS45LDMuNzg5Yy0uMDM5LjA4LS4wNjcuMTY1LS4xLjI0Ni0uMDM4LS4wODEtLjA2Ni0uMTY2LS4xLS4yNDZBOC41MjIsOC41MjIsMCwwLDEsMzYsNy43NjRWM2ExLDEsMCwwLDAtMS0xSDMxYTEsMSwwLDAsMC0xLDFWNy43NjRhOC41MjIsOC41MjIsMCwwLDEtLjg5NSwzLjc4OUExMC41MzMsMTAuNTMzLDAsMCwwLDI4LDE2LjIzNlYxN0gxOFYxMC40MTRhMi4zOTQsMi4zOTQsMCwwLDEsLjcwNy0xLjcwNkE0LjM4NSw0LjM4NSwwLDAsMCwyMCw1LjU4NlY0aDJWNS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMjQsMTAuNDE0VjE0YTEsMSwwLDAsMCwyLDBWMTAuNDE0YTQuMzg1LDQuMzg1LDAsMCwwLTEuMjkzLTMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDI0LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxOWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC41MTUsNC41MTUsMCwwLDAsMTcsNy42NDlhNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDE2LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxMWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC4zODUsNC4zODUsMCwwLDAsOCwxMC40MTRWMTdIM2ExLDEsMCwwLDAsMCwySDYxYTEsMSwwLDAsMCwwLTJINTBWMTRINjBhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw2MSwyWk00Miw0VjdINDBWNFpNMTAuNzA3LDguNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDEyLDUuNTg2VjRoMlY1LjU4NmE0LjM4NSw0LjM4NSwwLDAsMCwxLjI5MywzLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwxNiwxMC40MTRWMTJIMTBWMTAuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDEwLjcwNyw4LjcwOFpNMTAsMTRoNnYzSDEwWm0yMCwyLjIzNmE4LjUyMiw4LjUyMiwwLDAsMSwuODk1LTMuNzg5QTEwLjUzMywxMC41MzMsMCwwLDAsMzIsNy43NjRWNGgyVjcuNzY0YTEwLjUzMywxMC41MzMsMCwwLDAsMS4xLDQuNjgzLDguNTIyLDguNTIyLDAsMCwxLC45LDMuNzg5VjE3SDMwWk0zOCwxN3YtLjc2NGE4LjUyMiw4LjUyMiwwLDAsMSwuOS0zLjc4OUExMC41NDEsMTAuNTQxLDAsMCwwLDM5LjkyNCw5aDIuMTUyYTEwLjU0MSwxMC41NDEsMCwwLDAsMS4wMjksMy40NDcsOC41MjIsOC41MjIsMCwwLDEsLjksMy43ODlWMTdaTTYwLDRWNkg1MFY0Wk01MCwxMlY4SDYwdjRaIi8+CiAgICAgICAgPHBhdGggZD0iTTYxLDQ0SDNhMSwxLDAsMCwwLDAsMkg2MFY2MEg0NlY0OWExLDEsMCwwLDAtMiwwVjYwSDQyVjUzYTEsMSwwLDAsMC0xLTFIMjZhMSwxLDAsMCwwLTEsMXY3SDIyVjQ5YTEsMSwwLDAsMC0xLTFINWExLDEsMCwwLDAtMSwxVjYwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsMS0xVjQ1QTEsMSwwLDAsMCw2MSw0NFpNNDAsNTZIMzdWNTRoM1ptLTUsMEgzMlY1NGgzWm0tNS0ydjJIMjdWNTRaTTIwLDUyLjM4MmEzLjk0NywzLjk0NywwLDAsMC02LDBWNTBoNlpNMTksNTVhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTksNTVaTTYsNTRoNnYySDZabTYtNHYySDZWNTBaTTYsNThoNnYySDZabTgsMlY1Ny42MThhMy45NDcsMy45NDcsMCwwLDAsNiwwVjYwWm0xMy0yaDN2MkgyN1ptNSwwaDN2MkgzMlptNSwyVjU4aDN2MloiLz4KICAgICAgICA8cGF0aCBkPSJNNTcsNTZhMSwxLDAsMCwwLDEtMVY1MWExLDEsMCwwLDAtMS0xSDQ5YTEsMSwwLDAsMC0xLDF2NGExLDEsMCwwLDAsMSwxWm0tNy00aDZ2Mkg1MFoiLz4KICAgICAgICA8cGF0aCBkPSJNNjAsMjkuMTg0VjI2YTEsMSwwLDAsMC0xLTFINTVhMSwxLDAsMCwwLTEsMXYzLjE4NEEzLDMsMCwwLDAsNTIsMzJ2N2EyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDlWMzRhMSwxLDAsMCwwLDAtMkg0MWExLDEsMCwwLDAsMCwydjZIMzhWMzFhMSwxLDAsMCwwLTEtMUgyNWExLDEsMCwwLDAtMSwxdjlIMjJWMzlhMSwxLDAsMCwwLTIsMHYxSDE0VjMzLjQxNGEyLjM5NCwyLjM5NCwwLDAsMSwuNzA3LTEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDE2LDI4LjU4NlYyN2gydjEuNTg2YTQuMzg1LDQuMzg1LDAsMCwwLDEuMjkzLDMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDIwLDMzLjQxNFYzNWExLDEsMCwwLDAsMiwwVjMzLjQxNGE0LjM4NSw0LjM4NSwwLDAsMC0xLjI5My0zLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwyMCwyOC41ODZWMjZhMSwxLDAsMCwwLTEtMUgxNWExLDEsMCwwLDAtMSwxdjIuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDYsNC41MTUsNC41MTUsMCwwLDAtLjI5My4zNTcsNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDEyLDI4LjU4NlYyNmExLDEsMCwwLDAtMS0xSDdhMSwxLDAsMCwwLTEsMXYyLjU4NmEyLjM5NCwyLjM5NCwwLDAsMS0uNzA3LDEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDQsMzMuNDE0VjQwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsLjctMS43MTNBMi45NjQsMi45NjQsMCwwLDAsNjIsMzlWMzJBMywzLDAsMCwwLDYwLDI5LjE4NFpNNi43MDcsMzEuNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDgsMjguNTg2VjI3aDJ2MS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMTIsMzMuNDE0VjM1SDZWMzMuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDYuNzA3LDMxLjcwOFpNNiwzN2g2djNINlpNNTYsMjdoMnYySDU2Wm0tMSw0aDRhMSwxLDAsMCwxLDEsMXYzSDU0VjMyQTEsMSwwLDAsMSw1NSwzMVpNMzYsMzZIMzJWMzJoNFptLTYtNHYySDI2VjMyWm0tNCw0aDR2NEgyNlptNiw0VjM4aDR2MlptMTEsMFYzNGg0djZabTEyLDBhMSwxLDAsMCwxLTEtMVYzN2g2djJhMSwxLDAsMCwxLTEsMVoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",yxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Txe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4yNzMgNTEyLjI3MyIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy44OTEgMjM4LjM5OWMtNi43MjMtMzUuODgxLTIxLjg1My02Ni45MDUtNDMuNzU1LTg5LjcxOC05Ljg0NS0xMC4yNTMtMjEuNDU2LTE5Ljc1LTM0LjUxNC0yOC4yMjctMTQuOTQtOS42OTktMzIuMTkyLTE4LjQzOC01NC4yOTMtMjcuNTAzLTkuNjg0LTMuOTcyLTE5LjM3NS03LjYzNy0yOC40MDYtMTEuMDA1LTE0LjY0Mi01LjQ2LTMwLjA2NC0xMC45NTgtNDUuODQzLTE2LjMzNy01LjQyNy0xLjg1MS0xMC45MjEtMy42MDYtMTYuMjM0LTUuMzAzLTguNTA1LTIuNzE3LTE3LjMtNS41MjctMjUuNzcxLTguNzIxLTUuMjI0LTEuOTctNy40MjYtMy40NjQtOC4zMjEtNC4yNTguMDQ2LS4wNTYuMDk2LS4xMTUuMTUxLS4xNzcgNC4wNDgtNC42MTUgMjcuNjAzLTIzLjEwNSA0MS41MDEtMzMuNjc3IDIuNTYyLTEuOTQ5IDMuNTk1LTUuMzE1IDIuNTY2LTguMzY1cy0zLjg4OS01LjEwNC03LjEwNy01LjEwNGwtMTU0LjA1Mi0uMDA0Yy0xLjMyMSAwLTIuNjE5LjM0OS0zLjc2MiAxLjAxMi0xNy4yODIgMTAuMDIxLTMxLjYyMyAyNS43OS0zOS4zNDYgNDMuMjYyLTguOTQ2IDIwLjI0LTkuMDE2IDQxLjQyNS0uMjAyIDYxLjI2MyAxMi4wNyAyNy4xNjcgMzcuNTY3IDQyLjIzNyA2MC4wNjMgNTUuNTMzIDUuODcgMy40NjkgMTEuNDE0IDYuNzQ2IDE2LjY1NSAxMC4xNjcgMy4wOTUgMi4wMiA2LjI3MyA0LjAwMyA5LjM0NyA1LjkyMiAxMS41NDUgNy4yMDggMjIuNDUgMTQuMDE2IDMxLjE2NyAyMy42MDQgOC45ODEgOS44NzcgMTEuNjkzIDIyLjUwMSA3Ljg0MiAzNi41MDctOC45NDggMzIuNTQ0LTM1LjU0NCA2MS43ODEtNTkuMDA5IDg3LjU3Ni00LjM0MiA0Ljc3My04LjQ0MiA5LjI4MS0xMi40MDkgMTMuNzc2LTExLjEwNyAxMi41ODctMjcuMzkzIDMwLjg5LTQ0LjYzNCA1MC4yNjctNTYuODY5IDYzLjkxNC05NC40MTUgMTA2LjIyOS05OCAxMTEuODQ2LTEuNDc0IDIuMzA5LTEuNTcxIDUuMjM4LS4yNTQgNy42NCAxLjMxNiAyLjQwMiAzLjgzOCAzLjg5NSA2LjU3NyAzLjg5NWw0NDYuMzE2LjAwM2guMDAxYzMuMjUxIDAgNi4xMzItMi4wOTQgNy4xMzUtNS4xODcgMTEuNjU5LTM1Ljk2IDIyLjIxMi03Mi4yMzIgMzUuMjgzLTEyMS4yODMgMTUuNTkxLTU4LjUxNSAxOS4xODUtMTA1LjM1NCAxMS4zMDgtMTQ3LjQwNHptLTI1LjgwMyAxNDMuNTQzYy0xMi4zNyA0Ni40Mi0yMi40NjQgODEuMzA1LTMzLjM4NSAxMTUuMzMxbC0yNi45NC0uMDAyYzEuMjg4LTMuOTQ4IDIuNTczLTcuOTAzIDMuODYxLTExLjg0MiAxMS41OC0zNS40MSAyMi44NzctNzAuOTI1IDMyLjUwNC0xMDYuODg4IDEuNTM1LTUuNzQgMy4xMjItMTEuNjc0IDQuNjctMTcuNjQ1IDEuMDQtNC4wMDktMS4zNjgtOC4xMDMtNS4zNzgtOS4xNDItNC4wMDktMS4wMzgtOC4xMDIgMS4zNjktOS4xNDIgNS4zNzgtMS41MzMgNS45MTQtMy4xMTMgMTEuODItNC42NDEgMTcuNTMxLTkuNDM5IDM1LjI3NS0yMC43OTcgNzEuMDI1LTMyLjI3IDEwNi4xMDQtMS43OTcgNS40OTMtMy41OTUgMTAuOTkyLTUuMzg5IDE2LjUwNGgtMTU3Ljk3OGMtLjQzMi0xLjg1OC0xLjU2Ny0zLjU1My0zLjMwOS00LjY0OS0zLjUwNC0yLjIwNi04LjEzNi0xLjE1Mi0xMC4zNDIgMi4zNTMtLjQ5NS43ODYtLjk3MyAxLjU0Mi0xLjQ0OSAyLjI5NmgtMTU2LjIzNGMyNC40NzMtMzAuNTUxIDkxLjg5Ny0xMTIuMDczIDEyNC4yMzgtMTQ4LjcyNCAxNy4yNC0xOS41MzcgMzEuMzY4LTM4LjcyNiA0MS45OTQtNTcuMDMzIDE3LjU5OC0zMC4zMTkgMjQuNTY3LTU2Ljc2NSAyMC43MTYtNzguNjAxLTguMjczLTQ2LjkwOS00NS4xMjctNjUuNzY0LTc3LjY0My04Mi4zOTgtMy40MzktMS43NTktNi45OTUtMy41NzktMTAuNDA3LTUuMzc1bC0uNjA5LS4zMjFjLTMuNjYzLTEuOTMzLTguMi0uNTMtMTAuMTMzIDMuMTMzcy0uNTMgOC4yIDMuMTMzIDEwLjEzM2wuNjE2LjMyNWMzLjQ5NiAxLjg0IDcuMDkxIDMuNjggMTAuNTY4IDUuNDU4IDMyLjI1NyAxNi41MDIgNjIuNzI2IDMyLjA5IDY5LjcwMyA3MS42NSAzLjIyIDE4LjI1Ni0zLjE0NSA0MS4yOTEtMTguOTE3IDY4LjQ2Ni05Ljk4OSAxNy4yMS0yMy45MTQgMzYuMTA0LTQwLjI2OCA1NC42MzgtMzUuMjg2IDM5Ljk4OC0xMTYuMDk4IDEzNy44MzgtMTMyLjA1NiAxNTguNjQ4aC0zMy44NWMxNy44ODItMjAuNzUzIDU2Ljc0NC02NC40MjggODYuOTgxLTk4LjQxMSAxNy4yNTItMTkuMzg5IDMzLjU0Ny0zNy43MDIgNDQuNjc1LTUwLjMxMyAzLjg5Mi00LjQxIDcuOTU2LTguODc4IDEyLjI1OC0xMy42MDcgMjQuNTk3LTI3LjA0IDUyLjQ3Ni01Ny42ODggNjIuMzc1LTkzLjY5MyA1LjIwNy0xOC45MzkgMS4yMjctMzYuOS0xMS4yMDctNTAuNTc1LTE2LjQyMy0xOC4wNjItMzkuODYzLTMwLjIzNy02MC42MzUtNDIuNTE0LTIxLjU2NS0xMi43NDYtNDMuODY0LTI1LjkyNi01My45ODctNDguNzEtMTUuMDIzLTMzLjgxNSA0LjM2Ni02Ny43MTggMzEuNjY3LTg0LjQ0N2gxMy42MzljLTIwLjU1NyAxNS4wNzQtMzIuNTY4IDMwLjMwNS0zNi40OTQgNDYuMTk1LTMuMTgzIDEyLjg4Mi0uODEzIDI1Ljc1NiA3LjA0NSAzOC4yNjUgNC4zMjQgNi44ODMgOS45MDQgMTMuMTEyIDE3LjA1OCAxOS4wNDIgMy4xODggMi42NDMgNy45MTYgMi4yMDEgMTAuNTYxLS45ODggMi42NDMtMy4xODkgMi4yMDEtNy45MTctLjk4OC0xMC41NjEtNS45MDktNC44OTgtMTAuNDY1LTkuOTU5LTEzLjkyOS0xNS40NzItNS42ODgtOS4wNTYtNy4zODQtMTcuNzg2LTUuMTg1LTI2LjY4OCAzLjk3OS0xNi4xMDMgMjAuNTY4LTMyLjg1MSA0OS4zMTQtNDkuNzkzaDUwLjcxNWMtMTMuMzA2IDEwLjQ3OS0yOC4xMDUgMjQuNzc1LTI0LjA5NSA0Mi4zNTMgMy45NzkgMTcuNDQxIDI0LjE3NyAyNy4xNzkgMzkuMTc4IDMzLjQ3MiAxOS41NTggOC4yMDUgMzkuODM1IDE0LjcyIDU5LjQ0NSAyMS4wMjEgMzIuMDg4IDEwLjMxIDY1LjI2OSAyMC45NzEgOTUuMDAzIDM5LjEzNyAzMy45MzQgMjAuNzMxIDU1LjUxOCA1MS4xNTggNjIuNDIgODcuOTg5IDQuNDc4IDIzLjg5NiAzLjQyNiA1MC42MzQtMy4zMTEgODQuMTUybC0uMTA3LjUzNmMtLjgxNCA0LjA2MiAxLjgxOCA4LjAxNCA1Ljg4IDguODI4LjQ5OC4xLjk5My4xNDcgMS40ODEuMTQ3IDMuNTAxIDAgNi42MzItMi40NjQgNy4zNDYtNi4wMjhsLjEwNi0uNTMyYzcuMTI4LTM1LjQ2MiA4LjE5MS02NC4wMTggMy4zNDktODkuODY3LTcuNzA3LTQxLjEyMy0zMS42ODYtNzUuMDItNjkuMzQ0LTk4LjAyNi0zMS4yNjItMTkuMDk5LTY1LjMwOS0zMC4wMzktOTguMjM0LTQwLjYxOC0xOS4zMDctNi4yMDMtMzkuMjcxLTEyLjYxOC01OC4yMy0yMC41NzItNS43ODctMi40MjktMTAuNzEyLTQuOTEyLTE1LjA1Ny03LjU5LTUuNDY0LTMuMzY4LTEzLjcyMS04LjQ1Ny0xNS4zMDItMTUuMzg4LTIuNTc5LTExLjMwOSAxNC4zMy0yMy45OTggMjUuNTItMzIuMzk1IDMuMjE2LTIuNDE0IDYuMTA2LTQuNTg1IDguNDczLTYuNjE3IDAgMCAxMy43ODkgMCAxMy43ODcuMDAyLTkuODkyIDcuNzg2LTM0LjE1NiAxOS43MzMtMzAuMTc0IDM1LjY1MyAxLjk5OCA3Ljk4NiAxMC42ODggMTIuMTkxIDE4LjAzNSAxNC45NjIgMTMuOTgxIDUuMjcyIDI4LjMyNCA5LjM2NyA0Mi40NTYgMTQuMTg2IDE1LjY0NCA1LjMzNSAzMC45MzMgMTAuNzgzIDQ1LjQ0MiAxNi4xOTUgOC45MTMgMy4zMjUgMTguNDcgNi45MzggMjcuOTU3IDEwLjgyOSAyMS4yMTQgOC43MDEgMzcuNjc5IDE3LjAyOCA1MS44MTYgMjYuMjA2IDEyLjA5NCA3Ljg1MiAyMi44MTMgMTYuNjExIDMxLjg2MSAyNi4wMzUgMTkuODc1IDIwLjcwMSAzMy42NDggNDkuMDg4IDM5LjgzMSA4Mi4wOTEgNy40NTEgMzkuNzcxIDMuOTM3IDg0LjUwNS0xMS4wNTggMTQwLjc4MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ0LjM2NSAxOTkuNDA3YzEuNDYxIDIuMDczIDMuNzggMy4xOCA2LjEzOCAzLjE4IDEuNDkyIDAgMy0uNDQ0IDQuMzEzLTEuMzcgMy4zODYtMi4zODYgNC4xOTYtNy4wNjUgMS44MTEtMTAuNDUxLTQuMTA5LTUuODMxLTguODExLTExLjI5My0xMy45NzMtMTYuMjMzLTIuOTkzLTIuODY1LTcuNzQxLTIuNzYtMTAuNjA0LjIzMi0yLjg2NCAyLjk5My0yLjc2MSA3Ljc0LjIzMiAxMC42MDQgNC40NjUgNC4yNzQgOC41MzEgOC45OTcgMTIuMDgzIDE0LjAzOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU1LjA4MyAxMjIuNTE4LS40NzMtLjI0NmMtNS43NzYtMi45OTMtMTEuNTQ1LTUuOTgzLTE3LjMzNC04Ljk0NS0zLjY4NC0xLjg4My04LjIwNi0uNDI2LTEwLjA5MyAzLjI2Mi0xLjg4NiAzLjY4OC0uNDI2IDguMjA2IDMuMjYyIDEwLjA5MyA1Ljc2NSAyLjk0OSAxMS41MTEgNS45MjcgMTcuMjYzIDguOTA4bC40NzMuMjQ1YzEuMTA0LjU3MiAyLjI4My44NDMgMy40NDUuODQzIDIuNzEyIDAgNS4zMzEtMS40NzYgNi42NjUtNC4wNSAxLjkwNi0zLjY3OC40Ny04LjIwNC0zLjIwOC0xMC4xMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc5LjY4MyA1Ny41ODRjMS43NDQtNS41MSA0LjcxOS0xMC4xOTYgOC4xNjMtMTIuODU2IDMuMjc4LTIuNTMyIDMuODgyLTcuMjQyIDEuMzUxLTEwLjUyLTIuNTM0LTMuMjc5LTcuMjQ0LTMuODgyLTEwLjUyMS0xLjM1MS01Ljg4OSA0LjU0OS0xMC42MSAxMS43MjQtMTMuMjkzIDIwLjIwMS0xLjI1IDMuOTQ5LjkzOCA4LjE2NCA0Ljg4NyA5LjQxNC43NTMuMjM4IDEuNTE1LjM1MiAyLjI2NS4zNTIgMy4xODItLjAwMSA2LjEzNi0yLjA0MyA3LjE0OC01LjI0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDEuMTM2IDk1LjkwM2MtNi43NTEtMy4zMTQtMTEuNDI0LTYuMjY4LTE1LjE1Mi05LjU3Ni0zLjA5OC0yLjc1LTcuODM4LTIuNDY2LTEwLjU4OC42MzEtMi43NSAzLjA5OC0yLjQ2NyA3LjgzOC42MzEgMTAuNTg4IDQuNzc5IDQuMjQyIDEwLjQ4NCA3Ljg4OCAxOC40OTkgMTEuODIyIDEuMDYzLjUyMiAyLjE5Ljc2OSAzLjMuNzY5IDIuNzcgMCA1LjQzNS0xLjU0MiA2LjczOC00LjE5NiAxLjgyNS0zLjcxOC4yOS04LjIxMi0zLjQyOC0xMC4wMzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3NS44NTUgNDQxLjI3NmMtMy41NTMtMi4xMjYtOC4xNTktLjk3Mi0xMC4yODcgMi41ODMtMy40OTQgNS44MzUtNi45NDkgMTEuNTc2LTEwLjMwNiAxNy4xMjItMi4xNDUgMy41NDMtMS4wMTEgOC4xNTUgMi41MzMgMTAuMjk5IDEuMjE1LjczNSAyLjU1NCAxLjA4NSAzLjg3NyAxLjA4NSAyLjUzNyAwIDUuMDE0LTEuMjg4IDYuNDIzLTMuNjE4IDMuMzY4LTUuNTY1IDYuODM3LTExLjMyNyAxMC4zNDMtMTcuMTgzIDIuMTI3LTMuNTU0Ljk3MS04LjE2LTIuNTgzLTEwLjI4OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzY0Ljg2NCAyMjQuMTUyYy00LjA2Ny43ODYtNi43MjcgNC43Mi01Ljk0IDguNzg3LjkxIDQuNzEzIDEuMzcyIDkuNDY4IDEuMzcyIDE0LjEzMiAwIC4zNTgtLjAwMy43MTYtLjAwOSAxLjA5LS4wMTUuOTc2LS4wNDQgMS45NDctLjA4NyAyLjkxNS0uMTg3IDQuMTM4IDMuMDE4IDcuNjQzIDcuMTU1IDcuODI5LjExNS4wMDUuMjI5LjAwOC4zNDMuMDA4IDMuOTg2IDAgNy4zMDYtMy4xNCA3LjQ4Ni03LjE2My4wNTEtMS4xMTcuMDg0LTIuMjM5LjEwMS0zLjM1LjAwOC0uNDQzLjAxMS0uODg3LjAxMS0xLjMzIDAtNS42MTctLjU1NC0xMS4zMy0xLjY0NS0xNi45NzgtLjc4Ny00LjA2Ny00LjcyOC02LjcyNS04Ljc4Ny01Ljk0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDYuMjU0IDM4OS40ODFjLTMuNTgyLTIuMDczLTguMTcyLS44NTMtMTAuMjQ5IDIuNzMxLTMuMjMyIDUuNTgyLTYuNjA2IDExLjM3LTEwLjA2MiAxNy4yNjEtMi4wOTYgMy41NzMtLjg5NyA4LjE2OCAyLjY3NiAxMC4yNjQgMS4xOTIuNjk5IDIuNDk4IDEuMDMxIDMuNzg3IDEuMDMxIDIuNTc0IDAgNS4wOC0xLjMyNiA2LjQ3Ny0zLjcwNyAzLjQ2OS01LjkxNSA2Ljg1Ni0xMS43MjggMTAuMTAzLTE3LjMzMiAyLjA3Ni0zLjU4My44NTItOC4xNzEtMi43MzItMTAuMjQ4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjEuOTI5IDI4My4zMTRjLTMuODgzLTEuNDQ2LTguMjAxLjUzLTkuNjQ2IDQuNDEzLTIuMDkxIDUuNjE5LTQuNTkyIDExLjQwNC03LjY0NiAxNy42ODYtMS44MTEgMy43MjUtLjI1OSA4LjIxMyAzLjQ2NiAxMC4wMjQgMS4wNTcuNTE0IDIuMTc0Ljc1NiAzLjI3My43NTYgMi43ODEgMCA1LjQ1NC0xLjU1MyA2Ljc1MS00LjIyMyAzLjI2Ni02LjcxOCA1Ljk1Mi0xMi45MzcgOC4yMTQtMTkuMDExIDEuNDQ1LTMuODgyLS41My04LjItNC40MTItOS42NDV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzNS45MiAzMzcuMjc1Yy0zLjU4NS0yLjA3NS04LjE3My0uODUyLTEwLjI0OSAyLjczMy0zLjEwOSA1LjM3Mi02LjYzNCAxMS40Ni05Ljk3NSAxNy41MTctMiAzLjYyNy0uNjgyIDguMTg5IDIuOTQ1IDEwLjE5IDEuMTQ4LjYzMyAyLjM5MS45MzQgMy42MTUuOTM0IDIuNjQ0IDAgNS4yMDctMS40MDEgNi41NzQtMy44NzkgMy4yNjYtNS45MiA2Ljc0OS0xMS45MzggOS44MjItMTcuMjQ3IDIuMDc3LTMuNTg1Ljg1Mi04LjE3Mi0yLjczMi0xMC4yNDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwOC4wMDEgMTUxLjQwMmMtMy4yMTgtMS44MzgtNi40NzQtMy43NjMtOS42MjEtNS42MjQtMi41MzEtMS40OTYtNS4wNTktMi45OS03LjYtNC40NjEtMy41ODYtMi4wNzUtOC4xNzQtLjg1Mi0xMC4yNDggMi43MzMtMi4wNzYgMy41ODQtLjg1MyA4LjE3MyAyLjczMiAxMC4yNDkgMi41MDEgMS40NDggNC45OSAyLjkxOSA3LjQ4MiA0LjM5MyAzLjE5NCAxLjg4OCA2LjQ5OCAzLjg0MSA5LjgxMyA1LjczNSAxLjE3NC42NyAyLjQ1Mi45ODkgMy43MTQuOTg5IDIuNjA0IDAgNS4xMzUtMS4zNTggNi41MTktMy43ODEgMi4wNTYtMy41OTcuODA2LTguMTc4LTIuNzkxLTEwLjIzM3oiLz4KICAgIDwvZz4KPC9zdmc+",dxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxODguNjMyIiB5PSIyNTYiIHdpZHRoPSIzNS45MyIgaGVpZ2h0PSIxNy45NjUiLz4KICAgICAgICA8cGF0aCBkPSJNNDQxLjkxNyw0NzEuNTc5bDE2LjAzOS04OC4yMTljMC40ODItMi42MjMtMC4yMjgtNS4zMTYtMS45MzktNy4zNmMtMS43MDItMi4wNDQtNC4yMjgtMy4yMjgtNi44OTUtMy4yMjhoLTg5LjgyNQoJCQljLTIuNjY3LDAtNS4xOTMsMS4xODQtNi44OTUsMy4yMjhjLTEuNzExLDIuMDQ0LTIuNDIxLDQuNzM3LTEuOTM5LDcuMzZsMTYuMDM5LDg4LjIxOUgyNjAuNDkxVjMxLjQzOQoJCQljMC00Ljk2NS00LjAxOC04Ljk4Mi04Ljk4Mi04Ljk4Mkg1My44OTVjLTQuOTY1LDAtOC45ODIsNC4wMTgtOC45ODIsOC45ODJ2NDQwLjE0SDB2MTcuOTY1aDUzLjg5NWgxOTcuNjE0aDEyNS43NTRoNTMuODk1SDUxMgoJCQl2LTE3Ljk2NUg0NDEuOTE3eiBNMjQyLjUyNiw0NzEuNTc5SDYyLjg3N1Y0MC40MjFoMTc5LjY0OVY0NzEuNTc5eiBNNDIzLjY1OCw0NzEuNTc5aC0zOC44OTVsLTE0LjcwMi04MC44NDJoNjguMjk4CgkJCUw0MjMuNjU4LDQ3MS41Nzl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OC4xMDUsNzYuMzUxYy0yNy40NTYsMC00NC40ODksMTIuNDk2LTUzLjg5NSwyNS4xOTVjLTkuNDA4LTEyLjY5OS0yNi40MzktMjUuMTk1LTUzLjg5NS0yNS4xOTUKCQkJYy00Ljk2NSwwLTguOTgyLDQuMDE4LTguOTgyLDguOTgyYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJjMzMuNzU0LDAsNDMuMjcyLDIzLjMwNyw0NC45MTIsMjguMjQ2djIzMi4yNDYKCQkJYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJzOC45ODItNC4wMTgsOC45ODItOC45ODJWMTIyLjU3MmMxLjU0NC00LjY4LDEwLjk4Ny0yOC4yNTcsNDQuOTEyLTI4LjI1NwoJCQljNC45NjUsMCw4Ljk4Mi00LjAxOCw4Ljk4Mi04Ljk4MkM0NjcuMDg4LDgwLjM2OCw0NjMuMDcsNzYuMzUxLDQ1OC4xMDUsNzYuMzUxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDExOS4yNjNjLTE1LjU1My0xNS41NTMtMzYuODQyLTIyLjM3Ny01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwxNTYuMTU4LDM4MS4zOTUsMTM0LjgzMywzNjUuODMzLDExOS4yNjN6IE0zNjcuMDA5LDE2NC45MDMKCQkJYy0xMS4xNTgsMC40MzktMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NzksMjMuNTg4LDQuNTM1LDMyLjkzOSwxMy44NzcKCQkJQzM2Mi40NzQsMTQxLjMxNiwzNjcuNTcsMTUzLjcwMiwzNjcuMDA5LDE2NC45MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2NS44MzMsMjAwLjEwNWMtMTUuNTUzLTE1LjU1My0zNi44NDItMjIuMzY5LTU1LjY2Ny0xNy43OThjLTMuMjU0LDAuNzk4LTUuNzk4LDMuMzQyLTYuNTk2LDYuNTk2CgkJCWMtNC41NzksMTguNzcyLDIuMjM3LDQwLjA5NywxNy43OTgsNTUuNjY3YzEyLjM2LDEyLjM2LDI4LjM2LDE5LjIwMiw0My44MTYsMTkuMjAyYzQuMDA5LDAsNy45ODItMC40NjUsMTEuODUxLTEuNDA0CgkJCWMzLjI1NS0wLjc5OCw1Ljc5OC0zLjM0Miw2LjU5Ni02LjU5NkMzODguMjExLDIzNywzODEuMzk1LDIxNS42NzYsMzY1LjgzMywyMDAuMTA1eiBNMzY3LjAwOSwyNDUuNzQ2CgkJCWMtMTEuMTU4LDAuNDkxLTIzLjU5Ni00LjU0NC0zMi45MzktMTMuODc3Yy05LjM0Mi05LjM1MS0xNC40MzktMjEuNzM3LTEzLjg3Ny0zMi45MzljMTEuMTIzLTAuNTM1LDIzLjU4OCw0LjUzNSwzMi45MzksMTMuODc3CgkJCUMzNjIuNDc0LDIyMi4xNTgsMzY3LjU3LDIzNC41NDQsMzY3LjAwOSwyNDUuNzQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDI4MC45NDdjLTE1LjU1My0xNS41NjEtMzYuODQyLTIyLjM2OS01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwzMTcuODQyLDM4MS4zOTUsMjk2LjUxOCwzNjUuODMzLDI4MC45NDd6IE0zNjcuMDA5LDMyNi41ODgKCQkJYy0xMS4xNTgsMC40NDctMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NywyMy41ODgsNC41MzUsMzIuOTM5LDEzLjg3NwoJCQlDMzYyLjQ3NCwzMDMsMzY3LjU3LDMxNS4zODYsMzY3LjAwOSwzMjYuNTg4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDkuMzg2LDEwOC4wNjFjLTAuNzk4LTMuMjU0LTMuMzQyLTUuNzk4LTYuNTk2LTYuNTk2Yy0xOC43ODktNC41Ny00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjgsMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDE0OC4xNTgsNTEzLjk2NSwxMjYuODMzLDUwOS4zODYsMTA4LjA2MXogTTQ3OC44ODYsMTUxLjAyNgoJCQljLTkuMzUxLDkuMzQyLTIxLjg3NywxNC4zMjUtMzIuOTM5LDEzLjg3N2MtMC41NjEtMTEuMjAyLDQuNTM1LTIzLjU4OCwxMy44NzctMzIuOTM5YzkuMzUxLTkuMzQyLDIxLjc5OC0xNC40NDcsMzIuOTM5LTEzLjg3NwoJCQlDNDkzLjMyNSwxMjkuMjg5LDQ4OC4yMjgsMTQxLjY3NSw0NzguODg2LDE1MS4wMjZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwOS4zODYsMTg4LjkwM2MtMC43OTgtMy4yNTQtMy4zNDItNS43OTgtNi41OTYtNi41OTZjLTE4Ljc4OS00LjU3OS00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjksMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDIyOSw1MTMuOTY1LDIwNy42NzYsNTA5LjM4NiwxODguOTAzeiBNNDc4Ljg4NiwyMzEuODY4CgkJCWMtOS4zNTEsOS4zMzMtMjEuODc3LDE0LjM2OC0zMi45MzksMTMuODc3Yy0wLjU2MS0xMS4yMDIsNC41MzUtMjMuNTg4LDEzLjg3Ny0zMi45MzljOS4zNTEtOS4zNDIsMjEuNzk4LTE0LjQwMywzMi45MzktMTMuODc3CgkJCUM0OTMuMzI1LDIxMC4xMzIsNDg4LjIyOCwyMjIuNTE3LDQ3OC44ODYsMjMxLjg2OHoiLz4KICAgICAgICA8cGF0aCBkPSJNNTA5LjM4NiwyNjkuNzQ2Yy0wLjc5OC0zLjI1NC0zLjM0Mi01Ljc5OC02LjU5Ni02LjU5NmMtMTguNzg5LTQuNTc5LTQwLjEwNSwyLjIzNy01NS42NjcsMTcuNzk4CgkJCWMtMTUuNTYxLDE1LjU3LTIyLjM3NywzNi44OTUtMTcuNzk4LDU1LjY2N2MwLjc5OCwzLjI1NSwzLjM0Miw1Ljc5OCw2LjU5Niw2LjU5NmMzLjg2OSwwLjkzOSw3LjgzMywxLjQwNCwxMS44NDIsMS40MDQKCQkJYzE1LjQ2NSwwLDMxLjQ2NS02Ljg0Miw0My44MjUtMTkuMjAyQzUwNy4xNDksMzA5Ljg0Miw1MTMuOTY1LDI4OC41MTgsNTA5LjM4NiwyNjkuNzQ2eiBNNDc4Ljg4NiwzMTIuNzEKCQkJYy05LjM1MSw5LjM0Mi0yMS44NzcsMTQuMzMzLTMyLjkzOSwxMy44NzdjLTAuNTYxLTExLjIwMiw0LjUzNS0yMy41ODgsMTMuODc3LTMyLjkzOWM5LjM1MS05LjM0MiwyMS43OTgtMTQuNDQ3LDMyLjkzOS0xMy44NzcKCQkJQzQ5My4zMjUsMjkwLjk3NCw0ODguMjI4LDMwMy4zNiw0NzguODg2LDMxMi43MXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",hxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDIzMC41NjZoMjMyLjEzNWMyMi40MDUgMCA0MC42MzQtMTguMjI4IDQwLjYzNC00MC42MzN2LTE0OS4zYy0uMDAxLTIyLjQwNS0xOC4yMjktNDAuNjMzLTQwLjYzNS00MC42MzNoLTIzMi4xMzRjLTIyLjQwNSAwLTQwLjYzNCAxOC4yMjgtNDAuNjM0IDQwLjYzM3YxNDkuMjk5YzAgMjIuNDA2IDE4LjIyOCA0MC42MzQgNDAuNjM0IDQwLjYzNHptLTI1LjYzNC0xODkuOTMzYzAtMTQuMTM0IDExLjQ5OS0yNS42MzMgMjUuNjM0LTI1LjYzM2gyMzIuMTM1YzE0LjEzNSAwIDI1LjYzNCAxMS40OTkgMjUuNjM0IDI1LjYzM3YxNDkuMjk5YzAgMTQuMTM0LTExLjQ5OSAyNS42MzMtMjUuNjM0IDI1LjYzM2gtMjMyLjEzNWMtMTQuMTM1IDAtMjUuNjM0LTExLjQ5OS0yNS42MzQtMjUuNjMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDUuMTEgMTY0LjgxM2MxMC40MjMgMi4wODEgMTguODUgMTAuMTggMjAuOTcgMjAuMTU3IDEuNTM2IDcuMjIyIDguMDIyIDEyLjQ2MyAxNS40MjIgMTIuNDYzaDE0OC45NDdjNy40OCAwIDEzLjk4LTUuMzEgMTUuNDU1LTEyLjYyNCAyLjExNS0xMC40ODIgMTAuNTc2LTE4LjkzNiAyMS4wNTItMjEuMDM4IDcuMzA4LTEuNDY2IDEyLjYxMS03Ljk2NSAxMi42MTEtMTUuNDU0di02Ni4wNjdjMC03LjQ4NC01LjMxMS0xMy45ODUtMTIuNjI3LTE1LjQ1Ny0xMC40NzItMi4xMDctMTguOTI1LTEwLjU2My0yMS4wMzYtMjEuMDQxLTEuNDc1LTcuMzEyLTcuOTY3LTEyLjYxOC0xNS40MzktMTIuNjE4aC0xNDguOTcxYy03LjM5NSAwLTEzLjg3OCA1LjI0Mi0xNS40MTQgMTIuNDY1LTIuMTE4IDkuOTY5LTEwLjU0IDE4LjA2Ny0yMC45NTUgMjAuMTUzLTcuMzU1IDEuNDcyLTEyLjY5MiA3Ljk3OS0xMi42OTIgMTUuNDd2NjguMTI1YzAgNy40OTQgNS4zMzEgMTMuOTk5IDEyLjY3NyAxNS40NjZ6bTIuMzIzLTgzLjU5MmMwLS4zNzQuMjYyLS42ODcuNjM4LS43NjIgMTYuMjAzLTMuMjQ0IDI5LjMzNy0xNiAzMi42ODItMzEuNzQxLjA3My0uMzQ0LjM3OC0uNTg1Ljc0Mi0uNTg1aDE0OC45NzJjLjM1NyAwIC42NjYuMjQ1LjczMy41ODMgMy4yOSAxNi4zMjUgMTYuNDY0IDI5LjQ5OSAzMi43ODIgMzIuNzgyLjM0LjA2OC41ODYuMzg1LjU4Ni43NTJ2NjYuMDY3YzAgLjM2MS0uMjQxLjY4My0uNTYxLjc0Ny0xNi4zMjYgMy4yNzQtMjkuNTEgMTYuNDQ3LTMyLjgwNiAzMi43NzgtLjA2OS4zNDItLjM4Ni41OTEtLjc1Mi41OTFoLTE0OC45NDdjLS4zNjIgMC0uNjc4LS4yNDYtLjc1LS41ODItMy4zNDctMTUuNzUyLTE2LjQ5LTI4LjUxMS0zMi43MDUtMzEuNzQ4LS4zNTctLjA3MS0uNjE0LS4zODktLjYxNC0uNzU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNzIuMDY3IDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU4IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDE5OS41MDNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXYtNC4xNDJjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2NC4xNDJjMCA0LjE0MyAzLjM1NyA3LjUgNy41IDcuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcyLjA2NyAxODAuMzYyYy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQuMTQyYzAgNC4xNDIgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQuMTQyYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4OS43MzMgMTY0LjFoNDkuN2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNS42MzNoMTcuMzVjMi42IDAgNS4wMTQtMS4zNDYgNi4zOC0zLjU1N3MxLjQ5MS00Ljk3Mi4zMjgtNy4yOTdsLTI0Ljg1LTQ5LjdjLTEuMjcxLTIuNTQxLTMuODY3LTQuMTQ2LTYuNzA4LTQuMTQ2cy01LjQzOCAxLjYwNS02LjcwOCA0LjE0NmwtMTQuNDkzIDI4Ljk4N2gtMjguNDk4Yy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQ5LjdjLS4wMDEgNC4xNDIgMy4zNTcgNy41IDcuNDk5IDcuNXptNDkuNzAxLTczLjU2MyAxMi43MTUgMjUuNDNoLTI1LjQzem0tNDIuMjAxIDIzLjg2M2gxMy40OThsLTIuODU2IDUuNzEzYy0xLjE2MyAyLjMyNS0xLjAzOCA1LjA4Ni4zMjggNy4yOTdzMy43OCAzLjU1NyA2LjM4IDMuNTU3aDE3LjM1MXYxOC4xMzNoLTM0Ljd2LTM0Ljd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMy45ODMgMTQ3LjUzM2MxNy44MzggMCAzMi4zNS0xNC41MTIgMzIuMzUtMzIuMzUgMC0xNy44MzctMTQuNTEyLTMyLjM1LTMyLjM1LTMyLjM1cy0zMi4zNTEgMTQuNTEyLTMyLjM1MSAzMi4zNWMuMDAxIDE3LjgzOCAxNC41MTQgMzIuMzUgMzIuMzUxIDMyLjM1em0wLTQ5LjY5OWM5LjU2NiAwIDE3LjM1IDcuNzgzIDE3LjM1IDE3LjM1cy03Ljc4MyAxNy4zNS0xNy4zNSAxNy4zNS0xNy4zNTEtNy43ODMtMTcuMzUxLTE3LjM1Yy4wMDEtOS41NjcgNy43ODQtMTcuMzUgMTcuMzUxLTE3LjM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzAuODY3IDI0OC41Yy04LjU0NyAwLTE1LjUgNi45NTMtMTUuNSAxNS41djE3LjEzM2MwIDguNTQ3IDYuOTUzIDE1LjUgMTUuNSAxNS41aDUwLjI2NmM4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptNTAuNzY2IDE1LjV2MTcuMTMzYzAgLjI3Ni0uMjI1LjUtLjUuNWgtNTAuMjY2Yy0uMjc1IDAtLjUtLjIyNC0uNS0uNXYtMTcuMTMzYzAtLjI3Ni4yMjUtLjUuNS0uNWg1MC4yNjZjLjI3NSAwIC41LjIyNC41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ5Ni41IDQ2My44NjdoLTE3LjY3MmMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtMTM2LjUwNWM5LjYwOC0zLjE2IDE2LjU2Ny0xMi4yMTIgMTYuNTY3LTIyLjg2NHYtOC4yODRjMC04LjcwMy03LjA4MS0xNS43ODMtMTUuNzg0LTE1Ljc4M2gtMi41NjJjMS4xNDMtMi44IDEuNzc5LTUuODYgMS43NzktOS4wNjcgMC0xMy4yNy0xMC43OTYtMjQuMDY2LTI0LjA2Ni0yNC4wNjZzLTI0LjA2NiAxMC43OTYtMjQuMDY2IDI0LjA2NmMwIDMuMjA3LjYzNSA2LjI2NiAxLjc3OSA5LjA2N2gtMi41NjNjLTguNzAzIDAtMTUuNzgzIDcuMDgxLTE1Ljc4MyAxNS43ODN2OC4yODRjMCAxMC41MTggNi43ODYgMTkuNDc2IDE2LjIwNyAyMi43NDEtMTguNjE2IDE4LjQzOC00MC4wMzcgMzMuMzUxLTYzLjczNCA0NC4zMzctMy43NTggMS43NDItNS4zOTMgNi4yMDEtMy42NSA5Ljk1OCAxLjI3IDIuNzM3IDMuOTc4IDQuMzQ4IDYuODEgNC4zNDggMS4wNTYgMCAyLjEyOS0uMjI0IDMuMTQ5LS42OTggMjEuMDU4LTkuNzYyIDQwLjQyNy0yMi40MzIgNTcuNzg2LTM3Ljc1NHYyMy43MTJjLTQ1LjQxIDM1LjQ5NS0xMDAuMDE0IDU0LjI0Ny0xNTguMTY3IDU0LjI0Ny01OC4xNDggMC0xMTIuNzU2LTE4Ljc1My0xNTguMTY3LTU0LjI0OXYtMjMuNjljNDMuNzY0IDM4LjY5IDk5LjI4IDU5LjgwNSAxNTguMTY3IDU5LjgwNSAyMy41OTIgMCA0Ni45MTMtMy40NDEgNjkuMzE0LTEwLjIyOCAzLjk2NC0xLjIwMSA2LjIwNC01LjM4OCA1LjAwMy05LjM1My0xLjIwMS0zLjk2NC01LjM4OS02LjIwNy05LjM1My01LjAwMy0yMC45ODkgNi4zNTktNDIuODQ3IDkuNTgzLTY0Ljk2NCA5LjU4My01OS41NzIgMC0xMTUuNDYyLTIzLjA3LTE1Ny44MDItNjUuMDE4IDkuNDE5LTMuMjY3IDE2LjIwMi0xMi4yMjQgMTYuMjAyLTIyLjc0di04LjI4NGMwLTguNzAzLTcuMDgtMTUuNzgzLTE1Ljc4My0xNS43ODNoLTIuNTYzYzEuMTQzLTIuOCAxLjc3OS01Ljg2IDEuNzc5LTkuMDY3IDAtMTMuMjctMTAuNzk2LTI0LjA2Ni0yNC4wNjYtMjQuMDY2cy0yNC4wNyAxMC43OTgtMjQuMDcgMjQuMDY4YzAgMy4yMDcuNjM2IDYuMjY2IDEuNzc5IDkuMDY3aC0yLjU2MmMtOC43MDMgMC0xNS43ODQgNy4wODEtMTUuNzg0IDE1Ljc4M3Y4LjI4NGMwIDEwLjY1MiA2Ljk1OSAxOS43MDQgMTYuNTY3IDIyLjg2NHYxMzYuNTA2Yy05LjYwOCAzLjE2LTE2LjU2NyAxMi4yMTItMTYuNTY3IDIyLjg2NHY4LjI4NGMwIC4yNjQuMDI3LjUyMi4wNC43ODNoLTE3LjY3M2MtOC41NDcgMC0xNS41IDYuOTUzLTE1LjUgMTUuNXYxNy4xMzJjMCA4LjU0NyA2Ljk1MyAxNS41IDE1LjUgMTUuNWg1OS44MzNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTU5LjgzM2MtLjI3NSAwLS41LS4yMjQtLjUtLjV2LTE3LjEzM2MwLS4yNzYuMjI1LS41LjUtLjVoNDgxYy4yNzUgMCAuNS4yMjQuNS41djE3LjEzM2MwIC4yNzYtLjIyNS41LS41LjVoLTM5MS4xNjdjLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMzkxLjE2N2M4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptLTY3LjMzMy0xNjQuNTc3Yy4xNjEtLjg3OC4xNTgtMS43NzguMDA1LTIuNjU2aDE4LjEyOHYxOC4xMzNoLTE4LjEzM3ptMCA0My45MDRjLjAxMi0uMjM5LjAxMi0uNDc5IDAtLjcxOXYtMTIuNzA5aDE4LjEzM3YxMDAuOTY3aC0xOC4xMzN6bTAtMTAzLjc2MWMwLTQuOTk5IDQuMDY3LTkuMDY2IDkuMDY2LTkuMDY2czkuMDY2IDQuMDY3IDkuMDY2IDkuMDY2LTQuMDY3IDkuMDY3LTkuMDY2IDkuMDY3LTkuMDY2LTQuMDY3LTkuMDY2LTkuMDY3em0tMTYuNTY3IDI0Ljg1YzAtLjQzMi4zNTItLjc4My43ODMtLjc4M2g0OS43Yy40MzMgMCAuNzg0LjM1Mi43ODQuNzgzdjguMjg0YzAgNC45OTktNC4wNjcgOS4wNjYtOS4wNjcgOS4wNjZoLTMzLjEzM2MtNSAwLTkuMDY3LTQuMDY3LTkuMDY3LTkuMDY2em0tMTU2LjYgMTQ0LjE3NmM1Ny42NDggMCAxMTIuMDA3LTE3LjQyMiAxNTguMTY3LTUwLjUxNHY3My45OTFjLTkuNjA4IDMuMTYtMTYuNTY3IDEyLjIxMi0xNi41NjcgMjIuODY0djguMjg0YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMjgzLjI3OWMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtNzMuOTkyYzQ2LjE2MSAzMy4wOTIgMTAwLjUyMyA1MC41MTUgMTU4LjE2NiA1MC41MTV6bS0xNzMuMTY3LTExMC43ODljLS4wMTIuMjQ3LS4wMTIuNDk1IDAgLjc0MnYxNi4zNTVoLTE4LjEzM3YtMTguMTMzaDE4LjEzM3ptLTE4LjEzMyAzMi4wOTdoMTguMTMzdjEwMC45NjdoLTE4LjEzM3ptMC05MC4zMzRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ni05LjA2NnM5LjA2NiA0LjA2NyA5LjA2NiA5LjA2Ni00LjA2NyA5LjA2Ny05LjA2NiA5LjA2Ny05LjA2Ni00LjA2Ny05LjA2Ni05LjA2N3ptLTE2LjU2NyAyNC44NWMwLS40MzIuMzUyLS43ODMuNzg0LS43ODNoNDkuN2MuNDMyIDAgLjc4My4zNTIuNzgzLjc4M3Y4LjI4NGMwIDQuOTk5LTQuMDY3IDkuMDY2LTkuMDY3IDkuMDY2aC0zMy4xMzNjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2NnptLjc4NCAxOTkuNTg0Yy0uNDMzIDAtLjc4NC0uMzUyLS43ODQtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzgzLjc4M3ptMzY0LjQ2NiAwYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzg0Ljc4M3oiLz4KICAgIDwvZz4KPC9zdmc+",zxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDc0LjYwOCw4MC40MzlsLTIzMi04MGMtMS42OS0wLjU4My0zLjUyNi0wLjU4My01LjIxNiwwbC0yMzIsODBDMi4xNjYsODEuNTUxLDAuMDAxLDg0LjU4NywwLDg3Ljk5OXYzODQKCQkJYzAsNC40MTgsMy41ODIsOCw4LDhoNDBjNC40MTgsMCw4LTMuNTgyLDgtOHYtMjQ4aDM2OHYyNDhjMCw0LjQxOCwzLjU4Miw4LDgsOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04di0zODQKCQkJQzQ3OS45OTksODQuNTg3LDQ3Ny44MzQsODEuNTUxLDQ3NC42MDgsODAuNDM5eiBNNDAsMjE1Ljk5OXYyNDhIMTZ2LTMwNGgyNFYyMTUuOTk5eiBNNDI0LDIwNy45OTlINTZ2LTE2aDM2OFYyMDcuOTk5egoJCQkgTTQyNCwxNzUuOTk5SDU2di0xNmgzNjhWMTc1Ljk5OXogTTQ2NCw0NjMuOTk5aC0yNHYtMzA0aDI0VjQ2My45OTl6IE00NjQsMTQzLjk5OUgxNlY5My43MDNsMjI0LTc3LjI0bDIyNCw3Ny4yNFYxNDMuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zOTUuNTc2LDM0NC43OTlsLTI5LjYtMTQuOGwtMjYuNC01Mi44Yy00LjA2MS04LjEyNS0xMi4zODEtMTMuMjQyLTIxLjQ2NC0xMy4ySDE2MS44ODgKCQkJYy05LjA5OC0wLjAzLTE3LjQyMSw1LjExNC0yMS40NjQsMTMuMjY0bC0yNi40LDUyLjhsLTI5LjYsMTQuOGMtMi43MDUsMS4zNTItNC40MTYsNC4xMTItNC40MjQsNy4xMzZ2MTEyYzAsOC44MzcsNy4xNjMsMTYsMTYsMTYKCQkJaDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTI0aDE5MnYyNGMwLDguODM3LDcuMTYzLDE2LDE2LDE2aDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTExMgoJCQlDNDAwLjAxNywzNDguOTUyLDM5OC4zMDEsMzQ2LjE2LDM5NS41NzYsMzQ0Ljc5OXogTTE1NC43MzYsMjg0LjQyM2MxLjM0NS0yLjcxOCw0LjExOS00LjQzNCw3LjE1Mi00LjQyNGgxNTYuMjI0CgkJCWMzLjAzMy0wLjAxLDUuODA3LDEuNzA2LDcuMTUyLDQuNDI0bDIxLjc5Miw0My41NzZIMTMyLjk0NEwxNTQuNzM2LDI4NC40MjN6IE0xMjgsNDYzLjk5OUg5NnYtMjRoMzJWNDYzLjk5OXogTTM4NCw0NjMuOTk5aC0zMgoJCQl2LTI0aDMyVjQ2My45OTl6IE0zODQsNDIzLjk5OUgxMzZIOTZ2LTY3LjA1NmwyNS44ODgtMTIuOTQ0aDIzNi4yMjRMMzg0LDM1Ni45NDNWNDIzLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzE2OCwzNjcuMTYyLDE2MC44MzcsMzU5Ljk5OSwxNTIsMzU5Ljk5OXogTTE1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzM2OCwzNjcuMTYyLDM2MC44MzcsMzU5Ljk5OSwzNTIsMzU5Ljk5OXogTTM1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjgwLDM1OS45OTloLTgwYy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoODBjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzI5NiwzNjcuMTYyLDI4OC44MzcsMzU5Ljk5OSwyODAsMzU5Ljk5OXogTTI4MCwzOTEuOTk5aC04MHYtMTZoODBWMzkxLjk5OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",wxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMS45NzggNTExLjk3OCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjIzLjI0OGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0xNi42OTZjMC0xMi41NTcgMTAuMjE2LTIyLjc3MyAyMi43NzItMjIuNzczaDE1LjM5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTUuMzkyYy0yMC44MjggMC0zNy43NzIgMTYuOTQ1LTM3Ljc3MiAzNy43NzN2MTYuNjk2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjgxLjE4N2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNC43NDZjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2MjQuNzQ2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE1Ny44NTYgMjA4Ljg2djM2LjMzOWMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0zNi4zMzljMC0zLjI5NCAyLjc5Ni02LjA3OCA2LjEwNS02LjA3OGgxMy4yMzdjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTEzLjIzN2MtMTEuNjM3IDAtMjEuMTA1IDkuNDU1LTIxLjEwNSAyMS4wNzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyOC4xODEgMjExLjQzYzIuOTQyIDEuOTY0IDYuMzgyIDIuOTYzIDkuODg5IDIuOTYzIDIuNDQyIDAgNC45MTktLjQ4NSA3LjI4Mi0xLjQ2N2wyNC43Ni0xMC4yNTUgNjMuNTk1IDQuOTA2IDQuNjYxIDE2LjEyMWMxLjYxOSA1LjYwMSA1LjU5NiAxMC4wNzQgMTEuMTk3IDEyLjU5NSAzLjE0OCAxLjQxNyA2LjU5MSAyLjEyNCAxMC4wNDEgMi4xMjQgMy42NTMgMCA3LjMxNi0uNzkzIDEwLjY0NC0yLjM3NGwxMTcuMjkxLTU1LjcyOWM2LjQ2OS0zLjA3NCAxMS40MjUtOS4wMSAxMy4yNTgtMTUuODggMS41ODItNS45MzIuNjI5LTExLjgzNS0yLjY4NC0xNi42MTlsLTIzLjYzOS0zNC4xNjRjMTcuNzYzLTIwLjQ2MiAyMS45NDEtNDkuNTk1IDEwLjEyNy03NC40NjEtMTYuMjcyLTM0LjIwMS01Ny4zMzItNDguNzk3LTkxLjUxLTMyLjU1LTI2LjE4MSAxMi40MzUtNDEuNTkyIDQwLjAwOC0zOC45MSA2OC40NThsLTMzLjc2NiAxNi4wNDJjLS4wMDEgMC0uMDAxIDAtLjAwMSAwLTEwLjcyNSA1LjA5Ni0xNS4zOTEgMTcuMjgxLTExLjYxMSAzMC4zMTVsOC43NDUgMzAuMjQyaC00Ny4xNTdsLTI1LjA1NS0xMC4zNzdjLTUuNzYzLTIuMzcxLTEyLjE3OS0xLjc5My0xNy4xNjcgMS41NDYtNC43MTMgMy4xNTctNy40MTYgOC4yMjEtNy40MTYgMTMuODkzdjQwLjc2MWMtLjAwMiA1LjY5MSAyLjcwNiAxMC43NiA3LjQyNiAxMy45MXptMjU3LjYtNTUuMDc3Yy43OSAxLjE0Ljk2NiAyLjU1OC41MjQgNC4yMTQtLjY5MiAyLjU5My0yLjczNCA1LjAyNi01LjIwMiA2LjE5OWwtMTE3LjI5MSA1NS43MjhjLTIuNDcgMS4xNzMtNS42NDYgMS4yMjEtOC4wOTEuMTItMS41NjUtLjcwNC0yLjU1Ni0xLjc0MS0yLjk0My0zLjA4M2wtMjIuMzc2LTc3LjM4NSAxMDkuNTQyLTUyLjA0em0tODYuMjUyLTEzNi4xNjJjLjAwMSAwIC4wMDItLjAwMS4wMDMtLjAwMSAyNi43MTYtMTIuNzAzIDU4LjgwNi0xLjI4OCA3MS41MjQgMjUuNDQyIDguNjY0IDE4LjIzNyA2LjMzIDM5LjQxNy01LjQ2MyA1NS4xNzNsLS4wMjQtLjAyNi0yOC4wMDItNDAuNDdjLTcuNzI5LTExLjE2LTIwLjEzNS0xNS4yNDEtMzAuODY4LTEwLjE1N2wtMzcuODAzIDE3Ljk1OC0uMDEyLjAwM2MuMjE3LTIwLjE5IDExLjg5OS0zOS4wMTkgMzAuNjQ1LTQ3LjkyMnptLTcyLjY3NiA4NC40OTggODYuMjczLTQwLjk4NGM0Ljc1LTIuMjUxIDkuNDkyIDEuMzY2IDEyLjEwNyA1LjE0M2w2LjA2MiA4Ljc2LTEwNS4xMTUgNDkuOTM3LTIuOTY3LTEwLjI2MmMtMS4yNzgtNC40MDQtMS4wOS0xMC4zNDYgMy42NC0xMi41OTR6bS01MC40NTMgNjIuMDA5aDQ1LjQ3OGw3LjM2NSAyNS40OS01Mi44NDMtNC4wNzd6bS00MC42NDctOS45MzhjMC0uMzk1LjA3OS0uOTcyLjc2NS0xLjQzMS4yMDQtLjEzNy43NzEtLjQ1NSAxLjYxMy0uNDU1LjQyNyAwIC45MjQuMDgyIDEuNDguMzExbDIxLjc4OCA5LjAyNHYyNS44MzRsLTIxLjc5NyA5LjAyN2MtMS42NjUuNjk0LTIuNzkyLjA4NS0zLjA5Ni0uMTE4LS42NjgtLjQ0Ni0uNzU0LS45OTktLjc1NC0xLjQzMXYtNDAuNzYxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTcuOTYgNDY0LjQ3OWMtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOC03LjY3OC0yLjkyOC0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xOTAuOTIgNDY4LjI3N2MtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyNy03LjY3OC0yLjkyNy0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDcuOTU3IDQ2NC40NzljLTIuOTI5IDIuOTI5LTIuOTI5IDcuNjc4IDAgMTAuNjA2bC4wMjguMDI4YzEuNDYyIDEuNDYxIDMuMzcxIDIuMTkgNS4yODMgMi4xOSAxLjkyIDAgMy44NDItLjczNiA1LjMxLTIuMjA0IDIuOTI5LTIuOTI5IDIuOTE1LTcuNjkyLS4wMTQtMTAuNjIxLTIuOTMtMi45MjgtNy42NzgtMi45MjgtMTAuNjA3LjAwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjIyMiA0ODEuMTAyYzEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOS03LjY3OC0yLjkyOS0xMC42MDcgMHMtMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjIgMy4zNzEgMi4xOTEgNS4yODMgMi4xOTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MC43ODQgNDA5LjM4NWMyMi43MTMtMi4yNzggNDEuMTkxLTIyLjc5MiA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcwOS0xLjU0OS03LjIzNC00LjI0OC05LjY3MS0yLjY5Mi0yLjQzMS02LjM1Mi0zLjYwOS0xMC4wMS0zLjIzM2wtMjguODEgMi44OTJjLTkuOTIzIDEuMDEtMTkuMDM3IDUuNTAyLTI2LjE1MSAxMi4xNTJsLjA2My01LjE1NGMwLTIyLjkwMy0xOC4zMzctNDMuMjY2LTQxLjA1NC00NS41NzhsLTI4Ljc4My0yLjg5Yy0zLjY4Ny0uMzc5LTcuMzM0LjgwMi0xMC4wMjUgMy4yMzItMi42OTkgMi40MzgtNC4yNDggNS45NjItNC4yNDggOS42NzF2MjguNzQzYzAgMjIuOTAzIDE4LjQ3MyA0My40MTcgNDEuMTg1IDQ1LjcyOWwyNy44NjMgMi44MTR2NTMuOTk2aC01NC41MTljLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTE5LjMwNGMyLjQ0NCAwIDQuNDM0IDEuOTc2IDQuNDM0IDQuNDA1djQ1LjUyM2MwIDIuNDAzLTIuMDMgNC40MzQtNC40MzQgNC40MzRoLTQ3My4xMzRjLTIuMzg4IDAtNC40MDUtMi4wMy00LjQwNS00LjQzNHYtNDUuNTIzYzAtMi4zODggMi4wMTgtNC40MDUgNC40MDUtNC40MDVoMzE5LjE5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNzUuMTI2di0xNS4zOTdsMjguMDU3LTIuODMzYzIyLjcxMy0yLjI3OCA0MS4xOS0yMi43OTIgNDEuMTktNDUuNzI5di0yOC43NDNjMC0zLjcwNS0xLjU1Mi03LjIyOS00LjI1Ny05LjY2OS0yLjctMi40MzUtNi4zNTktMy42MTItMTAuMDAxLTMuMjM1bC0yOC44MSAyLjg5MmMtOS45MzQgMS4wMTEtMTkuMDU4IDUuNTA3LTI2LjE4IDEyLjE2MyAwIDAgLjE5OS00LjQyOS4xOTktNS4wMTMgMC0yMi45MDctMTguNDc0LTQzLjQyLTQxLjE5LTQ1LjcyOWwtMjguNzc2LTIuODljLTMuNjY2LS4zNzUtNy4zMDguNzk2LTkuOTk3IDMuMjIyLTIuNzA0IDIuNDM5LTQuMjU1IDUuOTY3LTQuMjU1IDkuNjgxdjI4Ljc0M2MwIDIyLjkwMyAxOC40NzQgNDMuNDE3IDQxLjE4NiA0NS43MjlsMjcuODM0IDIuODEzdjUzLjk5NmgtMTY0LjI1M3YtMTUuMzk4bDI4LjAyNi0yLjgzMmMyMi43MTMtMi4yNzQgNDEuMTkxLTIyLjc4OSA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcxMy0xLjU1MS03LjI0Mi00LjI1NS05LjY4MS0yLjY4OS0yLjQyNi02LjMzMy0zLjYwNC05Ljk3NS0zLjIyNGwtMjguODEgMi44OTJjLTkuOTM0IDEuMDExLTE5LjA1OCA1LjUwNy0yNi4xNzkgMTIuMTYyIDAgMCAuMTk4LTQuNDMuMTk4LTUuMDEyIDAtMjIuOTAzLTE4LjQ3NC00My40MTctNDEuMTktNDUuNzI5bC0yOC43NzYtMi44OWMtMy42Ni0uMzc0LTcuMzA2Ljc5NS05Ljk5NyAzLjIyMi0yLjcwNCAyLjQzOS00LjI1NSA1Ljk2OC00LjI1NSA5LjY4MXYyOC43NDNjMCAyMi45MDMgMTguNDc0IDQzLjQxNyA0MS4xODYgNDUuNzI5bDI3LjgzNSAyLjgxM3YzMS43OTUgMjIuMjAxaC00OS44MTJjLTEwLjcgMC0xOS40MDUgOC43MDUtMTkuNDA1IDE5LjQwNXY0NS41MjNjMCAxMC43MTYgOC43MDUgMTkuNDM0IDE5LjQwNSAxOS40MzRoNDczLjEzNGMxMC43MTYgMCAxOS40MzQtOC43MTggMTkuNDM0LTE5LjQzNHYtNDUuNTIzYzAtMTAuNy04LjcxOC0xOS40MDUtMTkuNDM0LTE5LjQwNWgtNDkuNzg1di0xNS4zOTh6bS0yOC4wMjgtMzguNzU2YzAtMTUuMTcxIDEyLjY3Mi0yOS4yNzkgMjcuNjYtMzAuODA1bDI2LjU1OS0yLjY2NnYyNi40OThjMCAxNS4xOTItMTIuNjggMjkuMjk5LTI3LjY5MyAzMC44MDVsLTE1LjQxNSAxLjU1OCAxOS4wNjktMjEuMDk3YzIuNzc3LTMuMDczIDIuNTM3LTcuODE2LS41MzUtMTAuNTkzLTMuMDcyLTIuNzc1LTcuODE0LTIuNTM5LTEwLjU5NC41MzVsLTE5LjA1MSAyMS4wNzd6bS0xNS0yMy40NTctMTguODgtMjAuODg4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M2wxOS4wNjcgMjEuMDk2LTE1LjQwOC0xLjU1NmMtMTUuMDE0LTEuNTI4LTI3LjY5OC0xNS42MzUtMjcuNjk4LTMwLjgwNXYtMjYuNDk3bDI2LjU0OCAyLjY2NmMxNS4wMTUgMS41MjggMjcuNSAxNS42MzUgMjcuNSAzMC44MDV6bS0xNjQuMjgyIDIzLjQ1N2MwLTE1LjE3IDEyLjY4NS0yOS4yNzcgMjcuNjg4LTMwLjgwNWwyNi41NTktMi42NjZ2MjYuNDk4YzAgMTUuMTkyLTEyLjY3OSAyOS4yOTktMjcuNjkyIDMwLjgwNWwtMTUuNDE0IDEuNTU3IDE5LjA2OC0yMS4wOTZjMi43NzctMy4wNzMgMi41MzctNy44MTYtLjUzNS0xMC41OTMtMy4wNzItMi43NzUtNy44MTQtMi41MzktMTAuNTk0LjUzNWwtMTkuMDc5IDIxLjEwOHYtMTUuMzQzem0tNDQuOTgtMzQuMjg2IDE5LjA2OSAyMS4wOTctMTUuNDA5LTEuNTU3Yy0xNS4wMTUtMS41MjgtMjcuNjk5LTE1LjYzNS0yNy42OTktMzAuODA1di0yNi40OTVsMjYuNTIxIDIuNjYzYzE1LjAxNSAxLjUyNiAyNy40OTkgMTUuNjMzIDI3LjQ5OSAzMC44MDV2MTUuMDkxbC0xOC44NTItMjAuODU3Yy0yLjc3OC0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M3ptLTEzNC4yNzMgMzQuMjg2YzAtMTUuMTcgMTIuNjg1LTI5LjI3NyAyNy42ODgtMzAuODA1bDI2LjUzLTIuNjYzdjI2LjQ5NWMwIDE1LjE5NS0xMi42NzkgMjkuMzAxLTI3LjY5MiAzMC44MDVsLTE1LjQwNSAxLjU1NyAxOS4wODMtMjEuMDk0YzIuNzc5LTMuMDcyIDIuNTQyLTcuODE0LS41My0xMC41OTMtMy4wNjgtMi43NzgtNy44MTMtMi41NDItMTAuNTkzLjUzbC0xOS4wODEgMjEuMDkxem0tNDQuOTgxLTM0LjI4NiAxOS4wNjkgMjEuMDk3LTE1LjQwOS0xLjU1OGMtMTUuMDE1LTEuNTI4LTI3LjY5OS0xNS42MzUtMjcuNjk5LTMwLjgwNXYtMjYuNDk1bDI2LjUyIDIuNjYzYzE1LjAxNSAxLjUyOCAyNy41MDEgMTUuNjM1IDI3LjUwMSAzMC44MDV2MTUuMDkybC0xOC44NTMtMjAuODU4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41MjEtLjUzNSAxMC41OTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Cxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNi42MjIgMTUxLjc0MWgxMC44djM1LjY4MWMwIDExLjEyNSA5LjA1MSAyMC4xNzUgMjAuMTc1IDIwLjE3NWgxNC44MTRjNC43OTkgMCA5LjIwOC0xLjY5MSAxMi42NzUtNC41IDMuNDY3IDIuODA5IDcuODc1IDQuNSAxMi42NzUgNC41aDE0LjgxNGMxMS4xMjQgMCAyMC4xNzUtOS4wNSAyMC4xNzUtMjAuMTc1di0zOS45NGgyMC4xMzl2MTg1LjExNWgtMjMuNDU3Yy0xMC45MzggMC0xOS44MzcgOC44OTgtMTkuODM3IDE5LjgzNnYzNy4zMjRjMCA5Ljk2OCA3LjM5OCAxOC4yMTkgMTYuOTg4IDE5LjYwOHY4Ny41NzZjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzVjOC4zMDQgMCAxNS4wNTktNi43NTUgMTUuMDU5LTE1LjA1OXYtNTMuODQ0aDUxLjQ2NGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWMtOS43NjUgMC04NS43ODUgMC05Ni45MTcgMHYtMTguNTAzaDIyOC44MzR2MTguNTAzYy0xMS4xMzcgMC04Ny4yMTcgMC05Ni45MTcgMC00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU3IDcuNSA3LjUgNy41aDUxLjQ2NXY1My44NDRjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzRjOC4zMDQgMCAxNS4wNi02Ljc1NSAxNS4wNi0xNS4wNTkgMC0xMC4xNTQgMC03Ny4wMzYgMC04Ny41NzYgOS41OS0xLjM4OSAxNi45ODgtOS42NCAxNi45ODgtMTkuNjA4di0zNy4zMjRjMC0xMC45MzgtOC44OTgtMTkuODM2LTE5LjgzNy0xOS44MzZoLTIzLjQ1N3YtNzUuMDU4YzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc1LjA1OGgtMjUuMTY0YzAtMjEuNzEzIDAtMTYyLjkxMiAwLTE4NS4xMTVoMjUuMTY0djc1LjA1OGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di03NS4wNThoMjAuMTM5djM5Ljk0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1aDE0LjgxNGM0Ljc5OSAwIDkuMjA4LTEuNjkxIDEyLjY3NS00LjUgMy40NjcgMi44MDkgNy44NzUgNC41IDEyLjY3NCA0LjVoMTQuODE1YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTM1LjY4MWgxMC44YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTE0LjgxNGMwLTExLjEyNS05LjA1MS0yMC4xNzUtMjAuMTc1LTIwLjE3NWgtMTAuOHYtMzUuNjgxYzAtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTVjLTQuNzk5IDAtOS4yMDcgMS42OTEtMTIuNjc0IDQuNS0zLjQ2Ny0yLjgwOS03Ljg3NS00LjUtMTIuNjc1LTQuNWgtMTQuODE0Yy0xMS4xMjQgMC0yMC4xNzUgOS4wNS0yMC4xNzUgMjAuMTc0djM5Ljk0MWgtMjAuMTM5di04MC42NjNjLS4wMDEtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTRjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzR2NTAuNTM0aC05NS44OTZ2LTUwLjUzNGMwLTExLjEyNC05LjA1LTIwLjE3NC0yMC4xNzQtMjAuMTc0aC0xNC44MTVjLTExLjEyNCAwLTIwLjE3NCA5LjA1LTIwLjE3NCAyMC4xNzR2ODAuNjYzaC0yMC4xMzl2LTM5Ljk0MWMwLTExLjEyNC05LjA1MS0yMC4xNzQtMjAuMTc1LTIwLjE3NGgtMTQuODE0Yy00Ljc5OSAwLTkuMjA4IDEuNjkxLTEyLjY3NSA0LjUtMy40NjctMi44MDktNy44NzUtNC41LTEyLjY3NS00LjVoLTE0LjgxNGMtMTEuMTI0IDAtMjAuMTc1IDkuMDUtMjAuMTc1IDIwLjE3NHYzNS42ODFoLTEwLjhjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzV2MTQuODE0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1em0xNDEuMjY3LTQuMjZoMjUuMTYzdjE4NS4xMTVoLTI1LjE2M3ptNDAuMTYzIDY4LjcxMmg5NS44OTZ2NzYuOTAxaC05NS44OTZ6bTk1Ljg5NS0xNWgtOTUuODk2di0yMy41ODNoOTUuODk2em0tMTMxLjkxOSAyNDEuOTA0LS4wNTEgNTMuOTAzLTMwLjM5My0uMDM5YzAtLjAwMS0uMDAxLS4wMDgtLjAwMS0uMDJ2LTUzLjg0NHptMTk4LjMyOSA1My45MDMtMzAuMzkzLS4wNTl2LTUzLjg0NGgzMC40NDV6bTEyLjIxMS0xNDkuNDAzYzIuNjY3IDAgNC44MzcgMi4xNjkgNC44MzcgNC44MzZ2MzcuMzI0YzAgMi42NjctMi4xNyA0LjgzNi00LjgzNyA0LjgzNi0xMy4yMDIgMC0yNDEuMjU2IDAtMjUzLjEzNyAwLTIuNjY3IDAtNC44MzctMi4xNjktNC44MzctNC44MzZ2LTM3LjMyNGMwLTIuNjY3IDIuMTctNC44MzYgNC44MzctNC44MzZ6bS0xNzQuNTE2LTE1di0yNC41MDNoOTUuODk2djI0LjUwM3ptOTUuODk1LTE2OS45ODdoLTk1Ljg5NnYtMTUuMTI4aDk1Ljg5NnptLTExNS45NzctMzAuMTI5di0xNi42NDVoMTM2LjA2djE2LjY0NWMtNC42NTMgMC0xMzAuNDExIDAtMTM2LjA2IDB6bTI5Ny40MDgtMjAuOTA0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NXYxNC44MTRjMCAyLjgwNS0yLjM3IDUuMTc1LTUuMTc1IDUuMTc1aC0xMC44di0yNS4xNjR6bS00NS43OS01NS44NTVoMTQuODE1YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE1Yy0yLjgwNSAwLTUuMTc0LTIuMzctNS4xNzQtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM2OS01LjE3NCA1LjE3NC01LjE3NHptLTQ1LjMzOCA1LjE3NGMwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtMi45MDQgMC0xMjIuNjAyIDAtMTI2LjUyNnptLTE1IDcxLjU4NWMtMTMuNDYzIDAtMjUuMTg2IDAtNDAuMjIxIDB2LTE2LjY0NWg0MC4yMjF6bS02MC4zMDMtMTEyLjMwN2MwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODU0IDAgNS4xNzUgMi4zMjEgNS4xNzUgNS4xNzR2ODAuNjYzYy05LjEwNiAwLTE2LjA1OCAwLTI1LjE2NCAwIDAtOS4zNzMgMC03MC44ODUgMC04MC42NjN6bS0xNSA2NS41MzR2MTUuMTI4aC05NS44OTZ2LTE1LjEyOHptLTEzNi4wNTgtNjUuNTM0YzAtMi44MDUgMi4zNjktNS4xNzQgNS4xNzQtNS4xNzRoMTQuODE1YzIuODA1IDAgNS4xNzQgMi4zNyA1LjE3NCA1LjE3NHY4MC42NjNjLTkuMTA0IDAtMTYuMDM5IDAtMjUuMTYzIDB6bTUuMDgxIDk1LjY2M3YxNi42NDVjLTE1LjI3MyAwLTI2LjQ2IDAtNDAuMjIgMHYtMTYuNjQ1em0tNzUuMjA5LTYwLjExNWgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjgwNSAwLTUuMTc1LTIuMzctNS4xNzUtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM3LTUuMTc0IDUuMTc1LTUuMTc0em0tNDUuMzM5IDUuMTc0YzAtMi44MDUgMi4zNy01LjE3NCA1LjE3NS01LjE3NGgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtNS42NzkgMC0xMjAuODI3IDAtMTI2LjUyNnptLTMwLjk3NSA1NS44NTZjMC0yLjg1NCAyLjMyMS01LjE3NSA1LjE3NS01LjE3NWgxMC44djI1LjE2NGgtMTAuOGMtMi44NTQgMC01LjE3NS0yLjMyMS01LjE3NS01LjE3NXoiLz4KICAgIDwvZz4KPC9zdmc+",Ixe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDI4MGgtMTZWMTY2LjRjMC0xMi05LjYtMjIuNC0yMi40LTIyLjRoLTRjLTEyLDAtMjIuNCw5LjYtMjIuNCwyMi40VjI4MGgtMjR2LTE2YzAtMTMuNi0xMC40LTI0LTI0LTI0SDEyMAoJCQljLTEzLjYsMC0yNCwxMC40LTI0LDI0djE2SDcyVjE2Ni40YzAtMTItOS42LTIyLjQtMjIuNC0yMi40aC0zLjJjLTEyLjgsMC0yMi40LDkuNi0yMi40LDIyLjRWMjgwSDhjLTQuOCwwLTgsMy4yLTgsOHMzLjIsOCw4LDhoOAoJCQl2MTQ0YzAsNC44LDMuMiw4LDgsOGg4djhjMCw0LjgsMy4yLDgsOCw4czgtMy4yLDgtOHYtOGgzODR2OGMwLDQuOCwzLjIsOCw4LDhzOC0zLjIsOC04di04aDhjNC44LDAsOC0zLjIsOC04VjI5Nmg4CgkJCWM0LjgsMCw4LTMuMiw4LThTNDc2LjgsMjgwLDQ3MiwyODB6IE00MzAuNCwxNjBoNGMzLjIsMCw2LjQsMi40LDYuNCw2LjRWMjgwaC0xNlYxNjYuNEg0MjRDNDI0LDE2My4yLDQyNi40LDE2MCw0MzAuNCwxNjB6CgkJCSBNMTEyLDI2NGMwLTQuOCwzLjItOCw4LThoMjQwYzQuOCwwLDgsMy4yLDgsOHYxNkgxMTJWMjY0eiBNNDAsMTY2LjRjMC00LDIuNC02LjQsNi40LTYuNGg0YzMuMiwwLDUuNiwyLjQsNS42LDYuNFYyODBINDBWMTY2LjR6CgkJCSBNMjMyLDQzMkgzMnYtNjRoMjAwVjQzMnogTTQ0OCw0MzJIMjQ4di02NGgyMDBWNDMyeiBNNDQ4LDM1MkgzMnYtNTZoNDE2VjM1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjA4LDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzIxNiwzODcuMiwyMTIuOCwzODQsMjA4LDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjcyLDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzI4MCwzODcuMiwyNzYuOCwzODQsMjcyLDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzg0LDE2SDk2Yy00LjgsMC04LDMuMi04LDh2MTYwYzAsNC44LDMuMiw4LDgsOGgyODhjNC44LDAsOC0zLjIsOC04VjI0QzM5MiwxOS4yLDM4OC44LDE2LDM4NCwxNnogTTM3NiwxNzZIMTA0VjMyaDI3MgoJCQlWMTc2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTIsMTQ0aC04Yy00LjgsMC04LDMuMi04LDhzMy4yLDgsOCw4aDhjNC44LDAsOC0zLjIsOC04UzM1Ni44LDE0NCwzNTIsMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTcuNiw1MC40Yy0zLjItMy4yLTgtMy4yLTExLjIsMGwtMjQsMjRjLTMuMiwzLjItMy4yLDgsMCwxMS4yYzMuMiwzLjIsOCwzLjIsMTEuMiwwbDI0LTI0CgkJCUMxNjAuOCw1OC40LDE2MC44LDUzLjYsMTU3LjYsNTAuNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMTk3LjYsNTAuNGMtMy4yLTMuMi04LTMuMi0xMS4yLDBsLTU2LDU2Yy0zLjIsMy4yLTMuMiw4LDAsMTEuMmMzLjIsMy4yLDgsMy4yLDExLjIsMGw1Ni01NgoJCQlDMjAwLjgsNTguNCwyMDAuOCw1My42LDE5Ny42LDUwLjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",pxe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2aC0xNDRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTg0aC0xNzZ2LTI0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0djE2aDE2djE2aC0zMnYtMzJoLTE2djMyaC0zMnYtMTZoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYyNGgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTc2YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoNDY0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTM2OGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMTM2IDE2aDEyOHY5NmgtMTI4em0tMTYgMjI0aC0xNDR2LTMyaDE0NHptLTMwNC0zMmgxNDR2MzJoLTE0NHptMCA0OGgxNDR2MTEyaC0xNDR6bTE2MCAwaDY0djExMmgtNjR6bTgwIDBoNjR2MTEyaC02NHptODAgMTEydi0yNDBoMTI4djI0MHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAxNDRoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDI1NmgxNnYzMmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im04MCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTIgMzIwYzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ0IDMyMGMwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4cy04LTMuNTgyMDMxLTgtOCAzLjU4MjAzMS04IDgtOCA4IDMuNTgyMDMxIDggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggMTUyaDE2MGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGMwLTIuMTIxMDk0LS44NDM3NS00LjE1NjI1LTIuMzQzNzUtNS42NTYyNWwtMzItMzJjLTEuNS0xLjUtMy41MzUxNTYtMi4zNDM3NS01LjY1NjI1LTIuMzQzNzVoLTh2LTcyYzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTY0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djcyaC04Yy0yLjEyMTA5NCAwLTQuMTU2MjUuODQzNzUtNS42NTYyNSAyLjM0Mzc1bC0zMiAzMmMtMS41IDEuNS0yLjM0Mzc1IDMuNTM1MTU2LTIuMzQzNzUgNS42NTYyNXYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em01Ni0xMzZoNDh2NjRoLTQ4em0tNDggMTA3LjMxMjUgMjcuMzEyNS0yNy4zMTI1aDg5LjM3NWwyNy4zMTI1IDI3LjMxMjV2MTIuNjg3NWgtMTQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDM2OGgtOTZjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg5NmM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di02NGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tOCA2NGgtODB2LTQ4aDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjMyIDMxMmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDggMzkyaDE2djMyaC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3MiAzOTJoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyIDIwMGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi0xNTMuMTM2NzE5aC0xNnYxNTMuMTM2NzE5Yy0xNC4wODU5MzggMy42MzY3MTktMjMuOTQ1MzEyIDE2LjMxNjQwNi0yNCAzMC44NjMyODF2OGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em0yNC0zMmM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2aC0zMmMwLTguODM1OTM4IDcuMTY0MDYyLTE2IDE2LTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDEzNmg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi04OS4xMzY3MTloLTE2djg5LjEzNjcxOWMtMTQuMDg1OTM4IDMuNjM2NzE5LTIzLjk0NTMxMiAxNi4zMTY0MDYtMjQgMzAuODYzMjgxdjhjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOHptMjQtMzJjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNmgtMzJjMC04LjgzNTkzOCA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Axe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTAuNDE3IDIzMy4yMjUtNTguNjQ0LTExNy4yNzljLTE1LjkzOS0zMS44NzctNDcuOTc4LTUxLjY4LTgzLjYyLTUxLjY4LTguNTg2IDAtMTYuOTg0IDEuMTg4LTI1LjAzMiAzLjQzNy4xMDUtMS40ODkuMTc4LTIuOTg4LjE3OC00LjUwMyAwLTM0Ljg0OS0yOC4zNTEtNjMuMi02My4yLTYzLjJzLTYzLjIgMjguMzUyLTYzLjIgNjMuMmMwIDMwLjk5MyAyMi40MzIgNTYuODI4IDUxLjkwOSA2Mi4xNjlsLTYxLjM2NiA2MS40N2MtNi44NzUgNi44ODYtMjEuODcxIDI3LjgyLTEwLjMzMyA1NC40Ni0xLjcwNS0uMTkxLTMuNDIxLS4yOTktNS4xNDQtLjI5OS0yMy4wODcgMC00Mi4zMzYgMTYuNjktNDYuMzUxIDM4LjYzNS03Ljc0LTQuMTQ0LTE2LjU3My02LjUwMS0yNS45NDktNi41MDEtMzAuNDE5IDAtNTUuMTY3IDI0Ljc0OC01NS4xNjcgNTUuMTY3IDAgOS4wNjMgMi4yMTEgMTcuNjE1IDYuMSAyNS4xNjdoLTQwLjU5OHYtMzM4LjQ2OGMwLTguMjg0LTYuNzE2LTE1LTE1LTE1cy0xNSA2LjcxNi0xNSAxNXY0ODJjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNXMxNS02LjcxNiAxNS0xNXYtNDkuMjY3aDMwNi41NjNjOC4yODQgMCAxNS02LjcxNiAxNS0xNXYtNjQuMjY3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTM2LjQxMmMzLjI3NC04LjM5NSAzLjIxNC0xNS4yNjMgMy4yMTQtMTguMiAyOC40NjkgMCA0OC4yLTIyLjA5OCA0OC4yLTQ3LjEzMyAwLTI1Ljk4OS0yMS4xNDQtNDcuMTMzLTQ3LjEzMy00Ny4xMzNoLTEyLjMwNGw1NS45MDQtNTYuMDg2IDUzLjczNiAxMDYuNzc3LS4xMDMgMjA1LjMwMWMtLjAwMiAzLjk3OSAxLjU3OCA3Ljc5NiA0LjM5MSAxMC42MTEgMi44MTMgMi44MTQgNi42MyA0LjM5NiAxMC42MDkgNC4zOTZoODAuMzM1YzguMjg0IDAgMTUtNi43MTYgMTUtMTV2LTI1Ny4wNjZjMC0yLjMyOS0uNTQyLTQuNjI1LTEuNTgzLTYuNzA4em0tMjYzLjUxNy0xNzAuMDI1YzAtMTguMzA3IDE0Ljg5NC0zMy4yIDMzLjItMzMuMnMzMy4yIDE0Ljg5NCAzMy4yIDMzLjItMTQuODk0IDMzLjItMzMuMiAzMy4yYy0xOC4zMDcgMC0zMy4yLTE0Ljg5My0zMy4yLTMzLjJ6bS0xMjcuMjMzIDIzOS45MzNjMTMuODc3IDAgMjUuMTY3IDExLjI5IDI1LjE2NyAyNS4xNjdzLTExLjI5IDI1LjE2Ny0yNS4xNjcgMjUuMTY3LTI1LjE2Ny0xMS4yOS0yNS4xNjctMjUuMTY3IDExLjI5LTI1LjE2NyAyNS4xNjctMjUuMTY3em0yMDEuODk2IDgwLjMzNHYzNC4yNjdoLTI5MS41NjN2LTM0LjI2N3ptLTE3LjEzLTExMi40NjdjOS40NDcgMCAxNy4xMzMgNy42ODYgMTcuMTMzIDE3LjEzMyAwIDkuNTgzLTcuODE0IDE3LjEzMy0xNy4xMzMgMTcuMTMzaC0xNi4wNjdjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2MTYuMDY3YzAgOS41ODMtNy44MTQgMTcuMTMzLTE3LjEzMyAxNy4xMzNoLTY0LjI2N2MtOS40NDcgMC0xNy4xMzMtNy42ODYtMTcuMTMzLTE3LjEzM3YtNDguMmMwLTkuNDQ3IDcuNjg2LTE3LjEzMyAxNy4xMzMtMTcuMTMzIDkuMjk3IDAgMTcuMTMzIDcuNTI2IDE3LjEzMyAxNy4xMzN2MTYuMDY3YzAgOC4yODQgNi43MTYgMTUgMTUgMTVzMTUtNi43MTYgMTUtMTV2LTE2LjA2N2MwLTkuNDI5IDcuNjE2LTE3LjEzMyAxNy4xMzMtMTcuMTMzem0xNzcuNTY3IDIxMWgtNTAuMzI2bC4wOTctMTkzLjg1OWMuMDAxLTIuMzQ0LS41NDctNC42NTYtMS42MDEtNi43NWwtNjQuNjg1LTEyOC41MzNjLTIuMTY3LTQuMzA1LTYuMjY5LTcuMzA2LTExLjAyNy04LjA2OC00Ljc2MS0uNzYyLTkuNTk0LjgxLTEyLjk5NSA0LjIyMmwtODYuNDU4IDg2LjczOWMtNy4yNjMgNy4yOTEtMTkuMTE1IDYuODA3LTI2LjMwOC0uMzg2LTcuMzgxLTcuMzgxLTcuNzI4LTE5LjYxMS0uMDIyLTI3LjMyOWw5NS4yNy05NS40MzFjMTEuNzk5LTExLjgyNSAyNy41LTE4LjMzNyA0NC4yMTctMTguMzM3IDI0LjE5OSAwIDQ1Ljk1NSAxMy40NDggNTYuNzc5IDM1LjA5N2w1Ny4wNTkgMTE0LjEwOXoiLz4KICAgIDwvZz4KPC9zdmc+",mxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTkyLjU0NSwxODUuMDljNTEuMDI5LDAsOTIuNTQ1LTQxLjUxNiw5Mi41NDUtOTIuNTQ1UzE0My41NzQsMCw5Mi41NDUsMFMwLDQxLjUxNiwwLDkyLjU0NSAgICBTNDEuNTE2LDE4NS4wOSw5Mi41NDUsMTg1LjA5eiBNOTIuNTQ1LDIwYzQwLjAwMSwwLDcyLjU0NSwzMi41NDQsNzIuNTQ1LDcyLjU0NXMtMzIuNTQ0LDcyLjU0NS03Mi41NDUsNzIuNTQ1ICAgIFMyMCwxMzIuNTQ2LDIwLDkyLjU0NVM1Mi41NDQsMjAsOTIuNTQ1LDIweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDAuNTAxLDExNC41MjZjMS45NTIsMS45NDUsNC41MDYsMi45MTcsNy4wNiwyLjkxN2MyLjU2NCwwLDUuMTMtMC45OCw3LjA4My0yLjk0ICAgIGMzLjg5OC0zLjkxMiwzLjg4OC0xMC4yNDQtMC4wMjMtMTQuMTQzbC0xMi4wMDgtMTEuOTY4VjQ0YzAtNS41MjItNC40NzgtMTAtMTAtMTBzLTEwLDQuNDc4LTEwLDEwdjQ4LjU0NSAgICBjMCwyLjY1OCwxLjA1OSw1LjIwNywyLjk0LDcuMDgzTDEwMC41MDEsMTE0LjUyNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNTAyLDMzMmgtNjEuNTQ3Yy04LjQ2LTEyLjAzNC0yMS4xNzItMjAuNTU4LTM1LjY3MS0yMy43MjhsLTQzLjk2NC05LjYxMyAgICBjMTcuOTkxLTEyLjEzNCwyOS44NDctMzIuNzAyLDI5Ljg0Ny01NS45ODh2LTI0LjQxN3YtMTEuMjk3di0yLjU0MmMwLTM3LjIxMi0zMC4yNzQtNjcuNDg2LTY3LjQ4Ni02Ny40ODYgICAgcy02Ny40ODYsMzAuMjc0LTY3LjQ4Niw2Ny40ODZ2Mi41NDJ2MTEuMjk3djI0LjQxN2MwLDIzLjI1NiwxMS44MjUsNDMuODAzLDI5Ljc3OCw1NS45NDNsLTQzLjkzNiw5LjYzOSAgICBjLTEuODc3LDAuNDEyLTMuNzIyLDAuOTE3LTUuNTM1LDEuNTAyVjIyN2MwLTUuNTIyLTQuNDc4LTEwLTEwLTEwaC02OGMtNS41MjIsMC0xMCw0LjQ3OC0xMCwxMHM0LjQ3OCwxMCwxMCwxMGg1OHYxNDBoLTY4di01MCAgICBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwcy0zMCwxMy40NTgtMzAsMzB2NTBIMjBWMjM3aDU4YzUuNTIyLDAsMTAtNC40NzgsMTAtMTBzLTQuNDc4LTEwLTEwLTEwSDEwYy01LjUyMiwwLTEwLDQuNDc4LTEwLDEwdjE2MCAgICBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg3OHYxOWgtMWMtMTcuMDk0LDAtMzEsMTMuOTA2LTMxLDMxdjVIMTBjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg0OTIgICAgYzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTQwdi00MHYtNDB2LTQwQzUxMiwzMzYuNDc4LDUwNy41MjIsMzMyLDUwMiwzMzJ6IE00NDEuMTc5LDQ1MkgzODR2LTIwaDEwOHYyMEg0NDEuMTc5eiBNNDkyLDQxMkgzODQgICAgdi0yMGgxMDhWNDEyeiBNNDkyLDM3MkgzODR2LTIwaDUwLjg3NGMwLjAzLDAsMC4wNiwwLjAwNiwwLjA4OSwwLjAwNmMwLjAzMSwwLDAuMDYzLTAuMDA2LDAuMDk0LTAuMDA2SDQ5MlYzNzJ6IE0yNzUuNjkyLDIwNC40MTYgICAgYzAtMjYuMTg0LDIxLjMwMy00Ny40ODYsNDcuNDg2LTQ3LjQ4NmMyNC45MzMsMCw0NS40MzksMTkuMzE0LDQ3LjM0Miw0My43NjdsLTIzLjI0Ni0xMy42NTcgICAgYy00LjIxMS0yLjQ3NS05LjU5My0xLjU0NC0xMi43MywyLjE5OWMtMTAuMTI2LDEyLjA4NS0yNC45NzcsMTkuMDE3LTQwLjc0NCwxOS4wMTdoLTE4LjEwN3YtMS4yOTdWMjA0LjQxNnogTTI3NS42OTIsMjI4LjI1NSAgICBIMjkzLjhjMTguODI1LDAsMzYuNy03LjE3OSw1MC4yMDUtMTkuOTRsMjYuNjYsMTUuNjYzdjE4LjY5NGMwLDI2LjE4NC0yMS4zMDMsNDcuNDg2LTQ3LjQ4Niw0Ny40ODZzLTQ3LjQ4Ni0yMS4zMDMtNDcuNDg2LTQ3LjQ4NiAgICBWMjI4LjI1NXogTTMzOC44NDQsMzA4LjMwM2wtMTUuODE1LDQyLjI5NGwtMTUuODQ0LTQyLjM3YzUuMTMsMS4yNTIsMTAuNDgzLDEuOTMxLDE1Ljk5MywxLjkzMSAgICBDMzI4LjU3MiwzMTAuMTU4LDMzMy44MTMsMzA5LjUwNCwzMzguODQ0LDMwOC4zMDN6IE0yMjYsMzk3YzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTU1LjYyM2MzLjA4NS0xLjYyNiw2LjM3NC0yLjgzMiw5LjgyLTMuNTg4ICAgIGw0My43NC05LjU5NmwyNC4xMDMsNjQuNDU3YzEuNDYxLDMuOTA3LDUuMTk0LDYuNDk3LDkuMzY2LDYuNDk3czcuOTA1LTIuNTksOS4zNjYtNi40OThsMjQuMTA0LTY0LjQ2MWw0NC4wMTEsOS42MjMgICAgYzMuODYzLDAuODQ0LDcuNTI5LDIuMjc0LDEwLjkwMiw0LjE4OEgzNzRjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDB2NDB2MzBIMjE1LjE3OXYtNTVIMjI2eiBNMTk1LjE3OSwzOTd2NTVIMTgwdi01ICAgIGMwLTE3LjA5NC0xMy45MDYtMzEtMzEtMzFoLTF2LTE5SDE5NS4xNzl6IE0xMDgsMzI3YzAtNS41MTQsNC40ODYtMTAsMTAtMTBzMTAsNC40ODYsMTAsMTB2ODloLTIwVjMyN3ogTTc2LDQ0NyAgICBjMC02LjA2NSw0LjkzNS0xMSwxMS0xMWgxMWg0MGgxMWM2LjA2NSwwLDExLDQuOTM1LDExLDExdjVINzZWNDQ3eiBNNDkyLDQ5MkgyMHYtMjBoNDcyVjQ5MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzLDIxOS45M2MtMS44NiwxLjg2LTIuOTMsNC40NC0yLjkzLDcuMDdzMS4wNjksNS4yMSwyLjkzLDcuMDY5YzEuODYsMS44Niw0LjQ0LDIuOTMxLDcuMDcsMi45MzEgICAgczUuMjEtMS4wNyw3LjA2OS0yLjkzMUMxMjYuOTMsMjMyLjIxLDEyOCwyMjkuNjMsMTI4LDIyN3MtMS4wNy01LjIxLTIuOTMxLTcuMDdjLTEuODU5LTEuODYtNC40MzktMi45My03LjA2OS0yLjkzICAgIFMxMTIuNzksMjE4LjA2OSwxMTAuOTMsMjE5LjkzeiIvPgogICAgPC9nPgo8L3N2Zz4K",Oxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTUsMzUuOTM1YzQuNDkzLS41NTUsOC00LjgsOC05LjkzNSwwLTQuODg1LTMuNTM1LTE5LTktMTlzLTksMTQuMTE1LTksMTljMCw1LjEzOCwzLjUwNyw5LjM4LDgsOS45MzVWNDJINDkuOTQ5YTkuOTc4LDkuOTc4LDAsMCwwLTE0LjQ0MS03LjkyMmwtMS42LTIuNTEzTDMyLjM4OCwyN0gzNi41YTEuNSwxLjUsMCwwLDEsMCwzSDM2djJoLjVhMy41LDMuNSwwLDAsMCwwLTdIMzFhMSwxLDAsMCwwLS45NDgsMS4zMTZMMzEuNjEzLDMxSDIwVjI5aDNhMSwxLDAsMCwwLDEtMSw1LDUsMCwwLDAtMTAsMCwxLDEsMCwwLDAsMSwxaDN2Mi42NzVsLTEuOTY0LDIuN2E5Ljk5MSw5Ljk5MSwwLDEsMCw0LjUxLDExLjYwNiwzLjk4NSwzLjk4NSwwLDEsMCw2LjQyNS00LjYzNGw1LjUyMS04LjI4MywxLjMyOSwyLjA4OUE5Ljk5NSw5Ljk5NSwwLDEsMCw0OS45NDksNDRINjNWNDJINTVaTTQ3LDI2YzAtNS4wNjcsMy42NjEtMTcsNy0xN3M3LDExLjkzMyw3LDE3YzAsNC4wMjItMi42MTQsNy4zNTEtNiw3LjkwOVYxOC41MzVsMi41NTUtMS43LTEuMTEtMS42NjQtMywyQTEsMSwwLDAsMCw1MywxOHY3bC0yLjQtMS44LTEuMiwxLjZMNTMsMjcuNXY2LjQwOUM0OS42MTQsMzMuMzUxLDQ3LDMwLjAyMiw0NywyNlpNMTksMjVhMy4wMDYsMy4wMDYsMCwwLDEsMi44MjksMkgxNi4xNzFBMy4wMDYsMy4wMDYsMCwwLDEsMTksMjVabTUsMTVhMy44MzYsMy44MzYsMCwwLDAtLjU2LjA1N0wyMC41LDMzaDkuNjMybC00LjgyNSw3LjIzN0EzLjk2OCwzLjk2OCwwLDAsMCwyNCw0MFpNMTEsNTFhOCw4LDAsMSwxLDMuODU3LTE1bC0zLjAxMSw0LjE0QTIuOTYsMi45NiwwLDAsMCwxMSw0MGEzLDMsMCwxLDAsMi43MzgsNC4yMTRsNS4xLjM5MkE4LjAxNCw4LjAxNCwwLDAsMSwxMSw1MVptNy45OC04LjM4OS01LjEtLjM5MmEzLjAwNSwzLjAwNSwwLDAsMC0uNDE0LS45MTZsMy00LjEyNUE3Ljk2OSw3Ljk2OSwwLDAsMSwxOC45OCw0Mi42MTFaTTEyLDQzYTEsMSwwLDEsMS0xLTFBMSwxLDAsMCwxLDEyLDQzWm04Ljg3OS0xLjQ3MmE5Ljk2OCw5Ljk2OCwwLDAsMC0zLjIyOC01Ljk3NGwxLjExMS0xLjUyNywyLjgzMiw2LjhBNC4wMzIsNC4wMzIsMCwwLDAsMjAuODc5LDQxLjUyOFpNMjQsNDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjQsNDZabTE2LDVhOCw4LDAsMCwxLTUuMS0xNC4xNTZsMi43NDgsNC4zMTlBMi45NjYsMi45NjYsMCwwLDAsMzcsNDNhMywzLDAsMSwwLDMtMywyLjk2MywyLjk2MywwLDAsMC0uNjcxLjA4MmwtMi43NDEtNC4zMDdBOCw4LDAsMSwxLDQwLDUxWm0wLTlhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsNDAsNDJaIi8+CiAgICAgICAgPHBhdGggZD0iTTcsMThhNCw0LDAsMCwwLDIuNzg4LTEuMTM5LDUuNjMzLDUuNjMzLDAsMCwwLDMuOTYxLS41NDVBMy45NTQsMy45NTQsMCwwLDAsMTcsMThhNCw0LDAsMSwwLS4wODMtOCw2LDYsMCwwLDAtMTEuOS41MzhBMy45OTIsMy45OTIsMCwwLDAsNywxOFptLS42NTMtNS44NzdhMSwxLDAsMCwwLC42Ny0uOTc3QS42LjYsMCwwLDAsNywxMWE0LDQsMCwwLDEsOC0uMDQxYzAsLjAzMy0uMDE4LjE1Mi0uMDIuMTg1YTEsMSwwLDAsMCwxLjMzOS45ODZBMS45NywxLjk3LDAsMCwxLDE3LDEyYTIsMiwwLDEsMS0xLjksMi41NzMsMSwxLDAsMCwwLTEuNTg5LS40ODcsMy44LDMuOCwwLDAsMS0zLjc1MS42OTMsMSwxLDAsMCwwLTEuMTI5LjM3MiwxLjk5NCwxLjk5NCwwLDEsMS0yLjI4Mi0zLjAyOFoiLz4KICAgICAgICA8cmVjdCB4PSIxIiB5PSI1NSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Exe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xNjguOTkyIDI3Ny41OTFjMC0yNi41NTEtMjEuNjAxLTQ4LjE1MS00OC4xNTEtNDguMTUxcy00OC4xNTEgMjEuNjAxLTQ4LjE1MSA0OC4xNTEgMjEuNjAxIDQ4LjE1IDQ4LjE1MSA0OC4xNSA0OC4xNTEtMjEuNiA0OC4xNTEtNDguMTV6bS04MS4zMDMgMGMwLTE4LjI3OSAxNC44NzItMzMuMTUxIDMzLjE1MS0zMy4xNTFzMzMuMTUxIDE0Ljg3MiAzMy4xNTEgMzMuMTUxLTE0Ljg3MiAzMy4xNS0zMy4xNTEgMzMuMTUtMzMuMTUxLTE0Ljg3MS0zMy4xNTEtMzMuMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3OS4yNzIgNDYyaC0zNC4wNjJsLTM5LjE1OC0zNi42NjdjLTMuMDIzLTIuODMxLTcuNzctMi42NzUtMTAuNjAxLjM0OXMtMi42NzUgNy43Ny4zNDkgMTAuNjAxbDQxLjMyMSAzOC42OTJjMS4zOSAxLjMwMiAzLjIyMiAyLjAyNSA1LjEyNiAyLjAyNWgzNy4wMjRjOS43NzUgMCAxNy43MjggNy45NTMgMTcuNzI4IDE3LjcyOXYyLjI3MWgtNjAuODQ0Yy0yLjE0OCAwLTQuMjYxLS43MDMtNS45ODEtMS45ODZsLTE4OC40OTItMTc4LjkxNHYtMjQuMTMybDEzMi4yMDcgMTIzLjc5NmMzLjAyMyAyLjgzMSA3Ljc3IDIuNjc1IDEwLjYwMS0uMzQ5czIuNjc1LTcuNzctLjM0OS0xMC42MDFsLTE0Mi40NTktMTMzLjM5NnYtMi40NThjMC04LjI4NC02Ljc0LTE1LjAyNC0xNS4wMjUtMTUuMDI0aC0xMi41NDh2LTQyLjc4NmgxMS40MzhjNi41MzYgMCAxMi4zOC0zLjkwMSAxNC44ODYtOS45MzggMi41MDctNi4wMzcgMS4xNDUtMTIuOTMtMy40NzEtMTcuNTZsLTEwNC43MDYtMTA1LjAzNmMtMS4xNjgtMS4xNzItMi40ODctMi4xMzgtMy45MS0yLjg4OXYtMTAuODY5aDUwLjE0OGM4Ljk1OSAwIDE2LjI0OC03LjI4OSAxNi4yNDgtMTYuMjQ4di0yNS4yMTNjMC04Ljk1OS03LjI4OS0xNi4yNDgtMTYuMjQ4LTE2LjI0OGgtNTAuMTY2Yy0uMTg0LTMuOTc4LTMuNDU4LTcuMTQ5LTcuNDgyLTcuMTQ5LTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjV2NjguMjIzYy0xLjQyNy43NTEtMi43NDkgMS43MTktMy45MiAyLjg5NGwtNDAuMDE1IDQwLjE0Yy0yLjkyNSAyLjkzNC0yLjkxNyA3LjY4Mi4wMTcgMTAuNjA2IDIuOTMzIDIuOTIzIDcuNjgxIDIuOTE3IDEwLjYwNi0uMDE3bDQwLjAxNi00MC4xNDFjLjI3MS0uMjcxLjU3OS0uMzI4Ljc5MS0uMzI4LjIxMSAwIC41MjEuMDU3Ljc5Mi4zMjlsMTA0LjcwNSAxMDUuMDM1Yy4xNTcuMTU4LjUyNy41MjkuMjQgMS4yMTktLjI4Ni42ODktLjgwOS42ODktMS4wMzIuNjg5aC0yMDkuNDFjLS4yMjQgMC0uNzQ3IDAtMS4wMzMtLjY4OXMuMDg0LTEuMDYxLjI0MS0xLjIxOWw0My41MjEtNDMuNjU4YzIuOTI1LTIuOTM0IDIuOTE3LTcuNjgzLS4wMTctMTAuNjA2LTIuOTM0LTIuOTI1LTcuNjgzLTIuOTE4LTEwLjYwNi4wMTdsLTQzLjUyMSA0My42NTdjLTQuNjE1IDQuNjMtNS45NzggMTEuNTIyLTMuNDcyIDE3LjU2MSAyLjUwNyA2LjAzNyA4LjM1IDkuOTM4IDE0Ljg4NyA5LjkzOGgxMS40Mzh2NjkuNDQ0YzAgNC4xNDMgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU3IDcuNS03LjV2LTY5LjQ0NGgxNTYuNTM1djEzMi44ODJoLTE1Ni41MzZ2LTMzLjQ1MmMwLTQuMTQzLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTctNy41IDcuNXYxODYuNDJoLTIwLjA3M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWg0OTdjNC4xNDMgMCA3LjUtMy4zNTcgNy41LTcuNXYtOS43NzFjMC0xOC4wNDctMTQuNjgyLTMyLjcyOS0zMi43MjgtMzIuNzI5em0tMjk5LjUzLTQzOC42MDN2MjUuMjEzYzAgLjY4OC0uNTYgMS4yNDgtMS4yNDggMS4yNDhoLTUwLjE0OHYtMjcuNzA5aDUwLjE0OGMuNjg5IDAgMS4yNDguNTYgMS4yNDggMS4yNDh6bTE2Ny4xOTYgNDEzLjI5MSA2My41NDEgNjAuMzEyaC02My41NDF6bS0xNSA2MC4zMTJoLTYwLjgxMXYtMTMyLjI3bDYwLjgxMSA1Ny43MnptLTc1LjgxLTE0Ni41MDh2MTQ2LjUwOGgtNDIuMDJ2LTE1Ni45NDJoMTIuNTQ4YzQuOTM5IDAgOS4zMTYtMi40MDYgMTIuMDU2LTYuMDk2em0tMjkuNDQ2LTgxLjUzMi0uMDEyIDU2LjA5N3MtLjAwNC4wMDEtLjAxNC4wMDFoLTEyLjU0OHYtNTYuMTEzem0tMjcuNTc0IDIyOC4wNGgtMzcuMTV2LTEzNy45NjloMzcuMTV6bS0xMDQuMzg0LTYxLjQ4NGg1Mi4yMzR2MjEuNDM2aC01Mi4yMzR6bTUyLjIzNC0xNWgtNTIuMjM0di0yMS40MzZoNTIuMjM0em0tNTIuMjM0IDUxLjQzNWg1Mi4yMzR2MjUuMDQ5aC01Mi4yMzR6bTUyLjIzNC0xMTIuOTJ2MjUuMDQ5aC01Mi4yMzR2LTI1LjA0OXptLTEwNC4zODUgMGgzNy4xNXYxMzcuOTY5aC0zNy4xNXoiLz4KICAgIDwvZz4KPC9zdmc+",fxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",xxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjE2LDI1MkgxMTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzIyMS41MSwyNTIsMjE2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1MmMtNS41MSwwLTEwLDQuNDktMTAsMTBzNC40OSwxMCwxMCwxMHMxMC00LjQ5LDEwLTEwUzI2MS41MSwyNTIsMjU2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzk2LDI1MkgyOTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzQwMS41MSwyNTIsMzk2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjg2LDEwN2gtNjBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NjBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg2MGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi02MAoJCQlDMjk2LDExMS40NzcsMjkxLjUyMywxMDcsMjg2LDEwN3ogTTI3NiwxNjdoLTQwdi00MGg0MFYxNjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMiw0OTJoLTEzVjIzM2MwLTYyLjIzNy0yNC4yMzYtMTIwLjc0OC02OC4yNDQtMTY0Ljc1NkMzNzYuNzQ4LDI0LjIzNiwzMTguMjM3LDAsMjU2LDBTMTM1LjI1MiwyNC4yMzYsOTEuMjQ0LDY4LjI0NAoJCQlTMjMsMTcwLjc2MywyMywyMzN2MjU5SDEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwczQuNDc3LDEwLDEwLDEwaDQ5MmM1LjUyMywwLDEwLTQuNDc3LDEwLTEwUzUwNy41MjMsNDkyLDUwMiw0OTJ6IE0zODYsNDkySDEyNgoJCQl2LTIwaDI2MFY0OTJ6IE0zODYsNDUySDEyNnYtMjBoMjYwVjQ1MnogTTM4Niw0MTJIMTI2di0yMGgyNjBWNDEyeiBNMzg2LDM3MkgxMjZ2LTIwaDI2MFYzNzJ6IE0zODYsMzMySDEyNnYtMjBoMjYwVjMzMnoKCQkJIE00MjksNDkyaC0yM1YzMDJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMEgxMTZjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTkwSDgzVjIzM2MwLTk1LjY2OCw3Ny4zODMtMTczLjUsMTcyLjUtMTczLjUKCQkJQzM1MS4xNjgsNTkuNSw0MjksMTM3LjMzMiw0MjksMjMzVjQ5MnogTTQ2OSw0OTJoLTIwVjIzM2MwLTEwNi42OTYtODYuODA0LTE5My41LTE5My41LTE5My41CgkJCWMtNTEuNjM5LDAtMTAwLjA2MywyMC4xMzctMTM2LjM1Miw1Ni43MDJDODIuOTQsMTMyLjY4NCw2MywxODEuMjY3LDYzLDIzM3YyNTlINDNWMjMzYzAtMTE3LjQ0OSw5NS41NTEtMjEzLDIxMy0yMTMKCQkJczIxMyw5NS41NTEsMjEzLDIxM1Y0OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",_xe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MDguNTQxIDIxOC4zODQtMTYyLjUwNy0yMDMuMTM0Yy03Ljc1My05LjY5Mi0xOS4zMTgtMTUuMjUtMzEuNzI5LTE1LjI1aC04My4xNTVjLTguNzAzIDAtMTUuNzgzIDcuMDgtMTUuNzgzIDE1Ljc4M3YxNi41NjdjMCA4LjcwMyA3LjA4IDE1Ljc4MyAxNS43ODMgMTUuNzgzaDMzLjkxN3YxMTcuNTMzaC0zMC42MzJsLTEyMC4zMzQtMTUwLjQxNmMtNy43NTMtOS42OTEtMTkuMzE4LTE1LjI1LTMxLjcyOS0xNS4yNWgtNjYuNTg5Yy04LjcwMyAwLTE1Ljc4MyA3LjA4LTE1Ljc4MyAxNS43ODN2MTYuNTY3YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2gxNy4zNXYxMTcuNTMzaC0xNy4zNWMtOC43MDMuMDAxLTE1Ljc4MyA3LjA4MS0xNS43ODMgMTUuNzg0djMwNi40ODNjMCAxMy4yNzEgMTAuNzk2IDI0LjA2NyAyNC4wNjcgMjQuMDY3aDQ3Mi4xNWM4LjcwMyAwIDE1Ljc4My03LjA4IDE1Ljc4My0xNS43ODN2LTc0LjU1LTE0My4yODktNTAuMTM0YzAtMy41NzEtMS4yMjgtNy4wNzMtMy40NTktOS44NnptLTYyLjAyNCAxOTUuNzgzYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtNzQuNTUtMTIxLjkwOGwxOC4xMzQgMjIuNjY3djE3NC41NzR6bS0yMzEuOTM0IDBjLS40MzIgMC0uNzg0LS4zNTItLjc4NC0uNzgzdi02Ny4wNWgxOC4xMzN2NjcuODMzem0tNjYuMjY2LTgyLjgzNGMtLjQzMiAwLS43ODQtLjM1Mi0uNzg0LS43ODR2LTY3LjA0OWgxOC4xMzN2NjcuODMzem0tNjYuMjY3LTgyLjgzM2MtLjQzMiAwLS43ODMtLjM1Mi0uNzgzLS43ODN2LTY3LjA1aDE4LjEzM3Y2Ny44MzN6bTgzLjYxNi05MS43NDF2OC45MDhoLTE4LjEzM3YtMzEuNTc0em02Ni4yNjcgODIuODMzdjguOTA4aC0xOC4xMzN2LTMxLjU3NHptODEuMjY3IDguMTI1di0xOTYuNDI4Yy4wNzIuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zODl2MTc0LjU3NWgtMTcuMzVjLS40MzEgMC0uNzgzLS4zNTItLjc4My0uNzgzem0xMTcuNTMzIDUwLjQ4M2gtMTguMTMzdi0xMjIuNjkxbDE4LjEzNCAyMi42Njd2MTAwLjAyNHptLTE4LjEzMyAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bS0xNSAxOC4xMzNoLTE3LjM1Yy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4NHYtNzQuNTQ5LTEyMS45MDhsMTguMTMzIDIyLjY2NnptLTMzLjEzMy0xMTUuOTY2aC0xOC4xMzR2LTEyMi42OTFsMTguMTM0IDIyLjY2N3ptLTE4LjEzNCAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzN2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzg0aC04NC40NHYtNTIuOTU1LTE0Ljg3OXptLTk5LjQwMSAxNy41MDl2MTAwLjAyNGgtMTguMTMzdi0xMjIuNjkxbDUuMDg2IDYuMzU3em0tMTUwLjY2Ni0xODguMzMzIDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzMgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptMzMuMTMzLTUuMTU4IDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzQgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptLTExNC40LTk3LjgzM2gtMTguMTMzdi0xMTQuMzc4Yy4wNzMuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zOXptMTUgNjQuN2gxOC4xMzN2MTguMTMzaC0xOC4xMzN6bTY2LjI2NiA4Mi44MzNoMTguMTM0djE4LjEzM2gtMTguMTMzdi0xOC4xMzN6bTY2LjI2NyA4Mi44MzNoMTguMTMzdjE4LjEzM2gtMTguMTMzem0zMy4xMzMtNDkuN2gxNTAuNjY3djY3LjA1YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMTUwLjcwN3ptMjA3LjMxNi03Ny4zNDYgOS42MTggMTIuMDIydjEwMC4wMjRoLTE4LjEzM3YtMTIyLjY5em0tOC41MTUgMTI3LjA0NmgxOC4xMzN2MTguMTMzaC0xOC4xMzN6bS0yNDguNS0zNjMuNjgzdi0xNi41NjdjMC0uNDMyLjM1Mi0uNzgzLjc4My0uNzgzaDgzLjE1NWM3LjgzIDAgMTUuMTI1IDMuNTA2IDIwLjAxNyA5LjYybDE2Mi41MDcgMjAzLjEzNGMwIC4wMDEuMDAxLjAwMS4wMDIuMDAyLjEwOS4xMzcuMTcuMzExLjE3LjQ4OHYyOC43NTNsLTE3MS44NjYtMjE0LjgzMWMtNC41OTMtNS43NC0xMS40NDItOS4wMzItMTguNzkzLTkuMDMyaC0uNjQyLTc0LjU1Yy0uNDMyLS4wMDEtLjc4My0uMzUyLS43ODMtLjc4NHptNjcuODMzIDE1Ljc4M3Y4NC40aC0xOC4xMzR2LTg0LjR6bS0xOC4xMzQgOTkuNGgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzR2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzgzaC0xOC4xNzR2LTIwLjI1NmMwLTMuNTctMS4yMjgtNy4wNzItMy40NTgtOS44NTkgMC0uMDAxIDAtLjAwMSAwLS4wMDFsLTMwLjE3NC0zNy43MThoNTEuNzY2em0tMjgzLjItMTQ4LjMxN3YtMTYuNTY3YzAtLjQzMS4zNTItLjc4My43ODMtLjc4M2g2Ni41ODhjNy44MyAwIDE1LjEyNSAzLjUwNiAyMC4wMTYgOS42MmwxNjIuNTA4IDIwMy4xMzRjLjExLjEzOC4xNzEuMzEzLjE3MS40OXYyOC43NTRsLTE3MS44NjUtMjE0LjgzMmMtNC41OTItNS43NC0xMS40NDItOS4wMzMtMTguNzkzLTkuMDMzaC0uNjQyLTU3Ljk4M2MtLjQzMSAwLS43ODMtLjM1MS0uNzgzLS43ODN6bTUxLjI2NyAxNS43ODN2ODQuNGgtMTguMTM0di04NC40em0tMTguMTM0IDk5LjRoMTguMTMzdjE4LjEzM2gtMTguMTMzem0tMjQuMDY2IDM0OS40NjdjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2N3YtMzA2LjQ4M2MwLS40MzIuMzUyLS43ODQuNzgzLS43ODRoNTAuNDgzdjY3LjA1YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2g1MC40ODN2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODQgMTUuNzg0IDE1Ljc4NGg1MC40ODR2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODMgMTUuNzg0IDE1Ljc4M2g1MC40ODN2NjcuMDVjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yNDAuMjE3em00NzIuOTMzLS43ODNjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yMTYuMTljLjAxMy0uMjYxLjA0LS41MTkuMDQtLjc4M3YtNjcuMDVoMjE2LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+",Sxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk4LDMwLjU5OGgtMTUyYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjQwLjAwM2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDIwLjAwMXY3NC43OTRoLTE5MAoJCQkJYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjQwLjAwMmMwLDUuNTIzLDQuNDc4LDEwLDEwLDEwSDIwMHY3NC43OTZIMTBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NDAuMDAxYzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQkJCWgxMy45OTZWNDcxLjRjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGgxODEuNzZjMi4yNTYsMCw0LjQ0NS0wLjc2Myw2LjIxMy0yLjE2NWwyODYuMjQzLTIyNi45NzIKCQkJCWMyLjM5Mi0xLjg5NiwzLjc4Ni00Ljc4MiwzLjc4Ni03LjgzNVY4MC42MDFWNDAuNTk4QzUxMS45OTgsMzUuMDc1LDUwNy41MjIsMzAuNTk4LDUwMS45OTgsMzAuNTk4eiBNMTg5Ljk5OSwyMDUuMzk3di0yMC4wMDIKCQkJCWgxODB2MjAuMDAySDE4OS45OTl6IE0yMCwzNDAuMTk0di0yMC4wMDFoMTgwdjIwLjAwMUgyMHogTTQ5MS45OTgsMTA5Ljg3OWgtNDEuMDM1Yy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJCQljMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg0MS4wMzV2MTA5LjcxNUwyMTIuMjcxLDQ2MS40SDQzLjk5NnYtNjIuMjUzaDQxLjAzNmM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMEg0My45OTYKCQkJCXYtMTguOTUzSDIxMGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi00MC4wMDF2LTg0Ljc5NmgxNTkuOTk5YzUuNTIzLDAsMTAtNC40NzcsMTAtMTB2LTQwLjAwMlY5MC42MDFoMTAxLjk5OVYxMDkuODc5egoJCQkJIE00OTEuOTk4LDcwLjYwMWgtMTMyVjUwLjU5OGgxMzJWNzAuNjAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTQsMzc5LjE0NGgtMC4yMzZjLTUuNTI0LDAtMTAsNC40NzctMTAsMTBzNC40NzYsMTAsMTAsMTBIMTE0YzUuNTIyLDAsMTAtNC40NzcsMTAtMTBTMTE5LjUyMiwzNzkuMTQ0LDExNCwzNzkuMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjEuOTk4LDEyOS44OGgwLjIzNWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMGgtMC4yMzVjLTUuNTIzLDAtMTAsNC40NzctMTAsMTAKCQkJCVM0MTYuNDc1LDEyOS44OCw0MjEuOTk4LDEyOS44OHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",kxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNS41MTggNjRoMi45ODZjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDIxaDQ0Ljk5MnYyLjAyMWMwIC41NTMuNDQ3IDEgMSAxaDNjLjU1MyAwIDEtLjQ0NyAxLTF2LTYwLjVjMC0xLjM3OC0xLjEyMS0yLjUtMi41LTIuNXMtMi41IDEuMTIyLTIuNSAyLjV2MTUuNTA0aC0yLjk5OHYtMTMuOTk2YzAtLjU1Mi0uNDQ3LTEtMS0xaC0xNS45OTZjLS41NTMgMC0xIC40NDgtMSAxdjEzLjk5NWgtMy4wMDJ2LTEzLjk5NWMwLS41NTItLjQ0Ny0xLTEtMWgtMTUuOTk2Yy0uNTUzIDAtMSAuNDQ4LTEgMXYxMy45OTVoLTN2LTE1LjUwM2MwLTEuMzc4LTEuMTIxLTIuNS0yLjUtMi41cy0yLjUgMS4xMjItMi41IDIuNWwuMDE0IDYwLjVjMCAuNTUzLjQ0NyAxIDEgMXptNTAuOTc4LTYxLjVjMC0uMjc2LjIyNS0uNS41LS41cy41LjIyNC41LjV2NTkuNWgtMXptLTE0Ljk5OCAyLjUwOGgyLjAwMnYxLjAwOGgtMi4wMDJ6bS01Ljk5NiAwaDMuOTk2djIuMDA4YzAgLjU1Mi40NDcgMSAxIDFoNC4wMDJjLjU1MyAwIDEtLjQ0OCAxLTF2LTIuMDA4aDMuOTk4djEyLjk5NWgtMTMuOTk2em0tMTUuMDAyIDBoMnYxLjAwOGgtMnptLTUuOTk2IDBoMy45OTZ2Mi4wMDhjMCAuNTUyLjQ0NyAxIDEgMWg0Yy41NTMgMCAxLS40NDggMS0xdi0yLjAwOGg0djEyLjk5NWgtMTMuOTk2em0tNSAxNC45OTVoNCAxNS45OTYgNS4wMDIgMTUuOTk2IDMuOTk4djFoLTQ0Ljk5MnptMCAzaDQ0Ljk5MnYxMy45NzFoLTIuOTk2di0xMC45OWMwLS41NTItLjQ0Ny0xLTEtMWgtMzdjLS41NTMgMC0xIC40NDgtMSAxdjEwLjk5MWgtMi45OTZ6bTE5Ljk5NiA2Ljk4MWg1Yy41NTMgMCAxLS40NDggMS0xdi0yaDE0djkuOTkxaC0zNXYtOS45OTFoMTR2MmMwIC41NTIuNDQ3IDEgMSAxem0xLTJ2LTFoM3Yxem0tMjAuOTk2IDEwLjk5MWgzLjk5NiAzNyAzLjk5NnYxLjAwMmgtNDQuOTkyem0wIDMuMDAyaDQ0Ljk5MnYxNGgtMi45OTR2LTExLjk5YzAtLjU1My0uNDQ3LTEtMS0xaC0xNC4wMDJjLS41NTMgMC0xIC40NDctMSAxdjExLjk5aC0yLjk5NHYtOC45ODhjMC0uNTUzLS40NDctMS0xLTFoLTYuOTk0Yy0uMDA0IDAtLjAwNi0uMDAyLS4wMS0uMDAycy0uMDA2LjAwMi0uMDEuMDAyaC0zLjk4MmMtLjAwNCAwLS4wMDYtLjAwMi0uMDEtLjAwMnMtLjAwNi4wMDItLjAxLjAwMmgtNi45ODZjLS41NTMgMC0xIC40NDctMSAxdjguOTg4aC0zem0zMS45OTYgNi4wMTdoNC4wMDJjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDA4aDN2MTAuOTloLTEyLjAwMnYtMTAuOTloM3YyLjAwOGMwIC41NTMuNDQ3IDEgMSAxem0xLTJ2LTEuMDA4aDIuMDAydjEuMDA4em0tMjIgNWg0LjAwMmMuNTUzIDAgMS0uNDQ3IDEtMXYtMi4wMDZoNS4wMDR2Ny45ODhoLTE2LjAwMnYtNy45ODhoNC45OTZ2Mi4wMDZjMCAuNTUzLjQ0NyAxIDEgMXptMS0ydi0xLjAwNmgyLjAwMnYxLjAwNnptLTExLjk5NiA4Ljk4M2g0IDE4LjAwMiA0Ljk5NCAxNC4wMDIgMy45OTR2MS4wMDJoLTQ0Ljk5MnptLTIuNS01NS45NzdjLjI3NSAwIC41LjIyNC41LjV2NTkuNWgtLjk4NmwtLjAxNC01OS41YzAtLjI3Ni4yMjUtLjUuNS0uNXoiLz4KICAgIDwvZz4KPC9zdmc+",Yxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMgM3YtMmgtMzFjLS41NTMgMC0xIC40NDctMSAxdjhjMCAuNTUzLjQ0NyAxIDEgMWgxdjUwaC0zMnYyaDMzIDQgOCA0IDEzdi0yaC0xMnYtNWgxMnYtMmgtMTMtNC0zdi0yaDIwdi0yaC0yMWMtLjU1MyAwLTEgLjQ0Ny0xIDF2NGMwIC41NTMuNDQ3IDEgMSAxaDN2NWgtNnYtNTBoMjR2LTJoLTI1LTQtMXYtNnptLTE2IDUzaDJ2NWgtMnptLTEwLTQ1djUwaC0ydi01MHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjEgMzJjMC0yLjExOC0uNTAxLTQuMjM4LTEuNDQ3LTYuMTMxbC0uNjU4LTEuMzE2Yy0uMzQtLjY3OC0xLjQ0OS0uNjc4LTEuNzg5IDBsLS42NTggMS4zMTZjLS45NDcgMS44OTMtMS40NDggNC4wMTMtMS40NDggNi4xMzEgMCAuMjQxLjAyOS40ODEuMDQyLjcyMi0uNjQ2LS40ODMtMS4zODMtLjgzNy0yLjE3Mi0xLjAzNGwtMi42MjgtLjY1N2MtLjMzOC0uMDg3LS43MDEuMDE1LS45NDkuMjYzcy0uMzQ5LjYwOC0uMjYzLjk0OWwuNjU3IDIuNjI5Yy4yNjkgMS4wNzMuODIzIDIuMDU1IDEuNjA1IDIuODM2Ljc4MS43ODIgMS43NjMgMS4zMzcgMi44MzYgMS42MDVoLjAwMWwuNjcyLjE2OC0xLjI1LjYyNS44OTUgMS43ODkgMi41NTQtMS4yNzd2Mi4zODJoLTdjLS41NTMgMC0xIC40NDctMSAxdjRjMCAuNTUzLjQ0NyAxIDEgMWgxLjA5NWwuOTEgOS4xYy4wNTEuNTEuNDgxLjkuOTk1LjloMTBjLjUxNCAwIC45NDQtLjM5Ljk5NS0uOWwuOTEtOS4xaDEuMDk1Yy41NTMgMCAxLS40NDcgMS0xdi00YzAtLjU1My0uNDQ3LTEtMS0xaC03di0yLjM4MmwyLjU1MyAxLjI3Ni44OTUtMS43ODktMS4yNS0uNjI1LjY3Mi0uMTY4aC4wMDFjMS4wNzMtLjI2OSAyLjA1NS0uODIzIDIuODM2LTEuNjA1Ljc4Mi0uNzgxIDEuMzM3LTEuNzYzIDEuNjA1LTIuODM3bC42NTctMi42MjhjLjA4Ni0uMzQxLS4wMTUtLjcwMS0uMjYzLS45NDlzLS42MDktLjM1LS45NDktLjI2M2wtMi42MjkuNjU3Yy0uNzg4LjE5Ny0xLjUyNS41NTEtMi4xNzEgMS4wMzQuMDE0LS4yNC4wNDMtLjQ4LjA0My0uNzIxem0xLjA5NSAyNWgtOC4xODlsLS44LThoOS43OXptMi45MDUtMTBoLTE0di0yaDE0em0tNy0xOS43MzRjLjY1NSAxLjQ4NSAxIDMuMTEgMSA0LjczNHMtLjM0NSAzLjI0OS0xIDQuNzM0Yy0uNjU1LTEuNDg1LTEtMy4xMS0xLTQuNzM0cy4zNDUtMy4yNDkgMS00LjczNHptLTUuMjkzIDkuMDI3Yy0uNTI1LS41MjUtLjg5OC0xLjE4Ni0xLjA4LTEuOTA3bC0uMjUyLTEuMDExIDEuMDEuMjUyYy43MjMuMTgyIDEuMzgzLjU1NSAxLjkwOCAxLjA4cy44OTggMS4xODYgMS4wOCAxLjkwN2wuMjUyIDEuMDExLTEuMDEtLjI1MmMtLjcyMi0uMTgyLTEuMzgzLS41NTUtMS45MDgtMS4wOHptMTAuOTA3LTIuNjY2IDEuMDExLS4yNTItLjI1MiAxLjAxYy0uMTgyLjcyMy0uNTU1IDEuMzgzLTEuMDggMS45MDhzLTEuMTg2Ljg5OC0xLjkwOCAxLjA4bC0xLjAxLjI1Mi4yNTItMS4wMWMuMTgyLS43MjMuNTU1LTEuMzgzIDEuMDgtMS45MDhzMS4xODYtLjg5OCAxLjkwNy0xLjA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im01IDE1aDEzYzIuNzU3IDAgNS0yLjI0MyA1LTVzLTIuMjQzLTUtNS01Yy0uNDM4IDAtLjg3Ny4wNjEtMS4zMDMuMTgtLjc2Ni0yLjQ1NS0zLjAyMy00LjE4LTUuNjk3LTQuMTgtMy4zMDkgMC02IDIuNjkxLTYgNi0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0em0wLTZjLjI3IDAgLjUzMy4wNTQuNzgzLjE2LjM1Mi4xNDcuNzU2LjA4NSAxLjA0My0uMTYzLjI4OC0uMjQ4LjQxMS0uNjM5LjMxNy0xLjAwNy0uMDk4LS4zNzctLjE0My0uNjkyLS4xNDMtLjk5IDAtMi4yMDYgMS43OTQtNCA0LTQgMi4wODEgMCAzLjc4NCAxLjU3NCAzLjk2MSAzLjY2Mi4wMjguMzQ1LjIzMy42NDguNTQuODA2LjMwOC4xNTguNjc1LjE0NS45Ny0uMDMyLjQ4My0uMjkuOTk3LS40MzYgMS41MjktLjQzNiAxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM2gtMTNjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yeiIvPgogICAgPC9nPgo8L3N2Zz4=",vxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",bxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOSA1MDkiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNTkuMiAwdjg5LjhoLTg5LjgwMXY4OS44aC04OS44djg5LjhoLTg5Ljc5OXY4OS44aC04OS44djE0OS44aDUwOXYtNTA5em0xMTkuOCA0NzloLTQ0OXYtODkuOGg4OS44di04OS44aDg5Ljh2LTg5LjhoODkuOHYtODkuOGg4OS44di04OS44aDg5Ljh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTY4LjQ0OCAxNzYuOTU2IDk0LjA0MS05NC4wNC0zLjYyOSA0My4wNjYgMjkuODk1IDIuNTE5IDguNTYyLTEwMS42MjYtMTAxLjYyNyA4LjU2MiAyLjUxOCAyOS44OTQgNDMuMDY4LTMuNjI4LTk0LjA0MSA5NC4wNHoiLz4KICAgIDwvZz4KPC9zdmc+",Qxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y0Mi42NjcKCQkJQzI0Ny40NjcsMzcuOTU2LDI0My42NDQsMzQuMTMzLDIzOC45MzMsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzcuODY3LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjc2LjhjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzUzQ4Ni40LDgxLjUxLDQ4Ni40LDc2LjhWNDIuNjY3CgkJCUM0ODYuNCwzNy45NTYsNDgyLjU3NywzNC4xMzMsNDc3Ljg2NywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE3OS4yLDBIOC41MzNDMy44MjMsMCwwLDMuODIzLDAsOC41MzN2NDk0LjkzM0MwLDUwOC4xNzcsMy44MjMsNTEyLDguNTMzLDUxMkgxNzkuMmM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzMKCQkJVjguNTMzQzE4Ny43MzMsMy44MjMsMTgzLjkxLDAsMTc5LjIsMHogTTE3MC42NjcsNDk0LjkzM2gtMTUzLjZWMTcuMDY3aDE1My42VjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMzU4LjRIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxMzYuNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gzMjQuMjY3CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzY2LjkzM0M1MTIsMzYyLjIyMyw1MDguMTc3LDM1OC40LDUwMy40NjcsMzU4LjR6IE00OTQuOTMzLDQ5NC45MzNoLTMwNy4yVjM3NS40NjdoMzA3LjIKCQkJVjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMEgxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjguNTMzQzUxMiwzLjgyMyw1MDguMTc3LDAsNTAzLjQ2NywweiBNNDk0LjkzMywzNC4xMzNoLTMwNy4yVjE3LjA2N2gzMDcuMlYzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzNi41MzMsMjQ3LjQ2N2gtMjUuNmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDI1LjZjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMxNDEuMjQ0LDI0Ny40NjcsMTM2LjUzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTAuOTMzLDI0Ny40NjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YyNS42YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YyNTYKCQkJQzExOS40NjcsMjUxLjI5LDExNS42NDQsMjQ3LjQ2NywxMTAuOTMzLDI0Ny40Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Ni45MzMsNDE4LjEzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDUxLjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMzNzEuNjQ0LDQxOC4xMzMsMzY2LjkzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDEuMzMzLDQxOC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxNy4wNjdjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCXYtMTcuMDY3QzM0OS44NjcsNDIxLjk1NiwzNDYuMDQ0LDQxOC4xMzMsMzQxLjMzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yOTAuMTMzLDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMyOTguNjY3LDM3Ljk1NiwyOTQuODQ0LDM0LjEzMywyOTAuMTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywxMTkuNDY3Yy00NS45MzUsMC03Ni44LDE3LjE0My03Ni44LDQyLjY2N1YxNzkuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTcuMDY3djc2LjgKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM0gzMzIuOGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhIMzU4LjRjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzM2Ni45MzMsMTM2LjYxLDMzNi4wNjgsMTE5LjQ2NywyOTAuMTMzLDExOS40Njd6IE0zNDkuODY3LDE3MC42NjdIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZIMjU2di03Ni44CgkJCWMwLTQuNzEtMy44MjMtOC41MzMtOC41MzMtOC41MzNIMjMwLjR2LTguNTMzYzAtMTIuNDA3LDIwLjkzMi0yNS42LDU5LjczMy0yNS42czU5LjczMywxMy4xOTMsNTkuNzMzLDI1LjZWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQ5Ljg2NywxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDI2LjY2NywxMzYuNjEsMzk1LjgwMiwxMTkuNDY3LDM0OS44NjcsMTE5LjQ2N3ogTTQwOS42LDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJSDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3YzAtOS44MTMtNC43MzYtMTguNTc3LTEzLjM4LTI1LjU1N2MzNi40MzcsMC44MDIsNTYuMDQ3LDEzLjU0Miw1Ni4wNDcsMjUuNTU3CgkJCVYxNzAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDkuNiwxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjg1LjMzMwoJCQljMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczM2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhoMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUM0ODYuNCwxMzYuNjEsNDU1LjUzNSwxMTkuNDY3LDQwOS42LDExOS40Njd6IE00NjkuMzMzLDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJaDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTMzA0LjI0Nyw4NS4zMzMsMjkwLjEzMyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMzNjYuOTMzLDM3Ljk1NiwzNjMuMTEsMzQuMTMzLDM1OC40LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzU4LjQsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzM3Mi41MTQsODUuMzMzLDM1OC40LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDNDM1LjIsMzcuOTU2LDQzMS4zNzcsMzQuMTMzLDQyNi42NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjYuNjY3LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVM0NDAuNzgxLDg1LjMzMyw0MjYuNjY3LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDg2LjQsMzI0LjI2N0gxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzA3LjIKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YzMzIuOEM0OTQuOTMzLDMyOC4wOSw0OTEuMTEsMzI0LjI2Nyw0ODYuNCwzMjQuMjY3eiBNNDc3Ljg2NywzNTguNEgxODcuNzMzdi0xNy4wNjdoMjkwLjEzMwoJCQlWMzU4LjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2OS4zMzMsMzkyLjUzM2gtMjU2Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NjguMjY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNTYKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNjguMjY3QzQ3Ny44NjcsMzk2LjM1Niw0NzQuMDQ0LDM5Mi41MzMsNDY5LjMzMywzOTIuNTMzeiBNNDYwLjgsNDYwLjhIMjIxLjg2N3YtNTEuMkg0NjAuOAoJCQlWNDYwLjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTUuNzU4IDYxLTEuNTY5LTUuNTdjNC4wNTMtMi4yMDQgNi44MTEtNi41MDEgNi44MTEtMTEuNDN2LTFjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMnYtMTBjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMmgtMjZjLTEuMTAzIDAtMiAuODk3LTIgMnYyYzAgMS4xMDMuODk3IDIgMiAydjEwYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MmMwIDEuMTAzLjg5NyAyIDIgMnYxYzAgNC45MjkgMi43NTggOS4yMjYgNi44MTEgMTEuNDNsLTEuNTY5IDUuNTdoLTEzLjM0M2MtLjQ2NS0yLjI3OS0yLjQ4NC00LTQuODk5LTRoLTF2LTkuMDAzYzQuNjkzLTEuOTYzIDgtNi42IDgtMTEuOTk3di03aC0xOHYtNGg0djJoMnYtMmMwLTEuMTAzLS44OTctMi0yLTJoLTYtMS0xYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NGgtMnY3YzAgNS4zOTcgMy4zMDcgMTAuMDM0IDggMTEuOTk3djkuMDAzaC0xYy0yLjQxNCAwLTQuNDM0IDEuNzIxLTQuODk5IDRoLTUuMTAxdjJoNjR2LTJ6bS0yMC43NTktMzhoMjYuMDAxdjJoLTI2em0yLjAwMSA4aDR2LTJoLTR2LTJoMjJ2MTBoLTIyem0tMi4wMDEgOGgyNi4wMDF2MmgtMjZ6bTIuMDAxIDV2LTFoMjJ2MWMwIDYuMDY1LTQuOTM1IDExLTExIDExcy0xMS00LjkzNS0xMS0xMXptNi42NjEgMTIuMjRjMS4zNi40ODMgMi44MTYuNzYgNC4zMzkuNzZzMi45NzktLjI3NyA0LjMzOS0uNzZsMS4zNCA0Ljc2aC0xMS4zNTh6bS0zNi42NjEtMzEuMjRoMSAxdjRoLTJ6bTIwIDZ2MmgtMjJ2LTJ6bS0yMiA1di0xaDIydjFjMCA2LjA2NS00LjkzNSAxMS0xMSAxMXMtMTEtNC45MzUtMTEtMTF6bTggMTIuNjM3Yy45NjUuMjI5IDEuOTY2LjM2MyAzIC4zNjNzMi4wMzUtLjEzNCAzLS4zNjN2OC4zNjNoLTZ6bS0zIDEwLjM2M2gxMmMxLjMwMiAwIDIuNDAyLjgzOSAyLjgxNiAyaC0xNy42MzJjLjQxNC0xLjE2MSAxLjUxNC0yIDIuODE2LTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQgMjFoMjRjMS42NTQgMCAzLTEuMzQ2IDMtM3YtMTRjMC0xLjY1NC0xLjM0Ni0zLTMtM2gtMjRjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2MTRjMCAxLjY1NCAxLjM0NiAzIDMgM3ptLTEtMTdjMC0uNTUxLjQ0OC0xIDEtMWgyNGMuNTUyIDAgMSAuNDQ5IDEgMXYxNGMwIC41NTEtLjQ0OCAxLTEgMWgtMjRjLS41NTIgMC0xLS40NDktMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyLjUxNWgydjE2Ljk3MWgtMnoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC00LjU1NiAxMSkiLz4KICAgICAgICA8cGF0aCBkPSJtMjAgMi41MTVoMnYxNi45NzFoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzA3IC0uNzA3IC43MDcgLjcwNyAtMS42MjcgMTguMDcxKSIvPgogICAgICAgIDxwYXRoIGQ9Im0zNSA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzUgMTNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxMWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDExaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgM2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDMgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDEzaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTUgMTdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01NyAxNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUzIDE1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",$xe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",Pxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTIzOC45MzMsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWNzYuOGMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWNDIuNjY3CgkJCUMyNDcuNDY3LDM3Ljk1NiwyNDMuNjQ0LDM0LjEzMywyMzguOTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDc3Ljg2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1M0ODYuNCw4MS41MSw0ODYuNCw3Ni44VjQyLjY2NwoJCQlDNDg2LjQsMzcuOTU2LDQ4Mi41NzcsMzQuMTMzLDQ3Ny44NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzkuMiwwSDguNTMzQzMuODIzLDAsMCwzLjgyMywwLDguNTMzdjQ5NC45MzNDMCw1MDguMTc3LDMuODIzLDUxMiw4LjUzMyw1MTJIMTc5LjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVY4LjUzM0MxODcuNzMzLDMuODIzLDE4My45MSwwLDE3OS4yLDB6IE0xNzAuNjY3LDQ5NC45MzNoLTE1My42VjE3LjA2N2gxNTMuNlY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDM1OC40SDE3OS4yYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjM2Ni45MzNDNTEyLDM2Mi4yMjMsNTA4LjE3NywzNTguNCw1MDMuNDY3LDM1OC40eiBNNDk0LjkzMyw0OTQuOTMzaC0zMDcuMlYzNzUuNDY3aDMwNy4yCgkJCVY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDBIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMyNC4yNjcKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y4LjUzM0M1MTIsMy44MjMsNTA4LjE3NywwLDUwMy40NjcsMHogTTQ5NC45MzMsMzQuMTMzaC0zMDcuMlYxNy4wNjdoMzA3LjJWMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzYuNTMzLDI0Ny40NjdoLTI1LjZjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNS42YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMTQxLjI0NCwyNDcuNDY3LDEzNi41MzMsMjQ3LjQ2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzMywyNDcuNDY3Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MjUuNmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWMjU2CgkJCUMxMTkuNDY3LDI1MS4yOSwxMTUuNjQ0LDI0Ny40NjcsMTEwLjkzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjYuOTMzLDQxOC4xMzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1MS4yYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMzcxLjY0NCw0MTguMTMzLDM2Ni45MzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQxLjMzMyw0MTguMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTcuMDY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQl2LTE3LjA2N0MzNDkuODY3LDQyMS45NTYsMzQ2LjA0NCw0MTguMTMzLDM0MS4zMzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMjk4LjY2NywzNy45NTYsMjk0Ljg0NCwzNC4xMzMsMjkwLjEzMywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsMTE5LjQ2N2MtNDUuOTM1LDAtNzYuOCwxNy4xNDMtNzYuOCw0Mi42NjdWMTc5LjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDE3LjA2N3Y3Ni44CgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNIMzMyLjhjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44SDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUMzNjYuOTMzLDEzNi42MSwzMzYuMDY4LDExOS40NjcsMjkwLjEzMywxMTkuNDY3eiBNMzQ5Ljg2NywxNzAuNjY3SDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWMjU2SDI1NnYtNzYuOAoJCQljMC00LjcxLTMuODIzLTguNTMzLTguNTMzLTguNTMzSDIzMC40di04LjUzM2MwLTEyLjQwNywyMC45MzItMjUuNiw1OS43MzMtMjUuNnM1OS43MzMsMTMuMTkzLDU5LjczMywyNS42VjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM0OS44NjcsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzSDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2ODUuMzMzCgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoNTkuNzMzYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNzYuOGgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzQyNi42NjcsMTM2LjYxLDM5NS44MDIsMTE5LjQ2NywzNDkuODY3LDExOS40Njd6IE00MDkuNiwxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCUgzNTguNGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjYsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzaC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDg2LjQsMTM2LjYxLDQ1NS41MzUsMTE5LjQ2Nyw0MDkuNiwxMTkuNDY3eiBNNDY5LjMzMywxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCWgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjdjMC05LjgxMy00LjczNi0xOC41NzctMTMuMzgtMjUuNTU3YzM2LjQzNywwLjgwMiw1Ni4wNDcsMTMuNTQyLDU2LjA0NywyNS41NTcKCQkJVjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzMwNC4yNDcsODUuMzMzLDI5MC4xMzMsODUuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTguNCwzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMzY2LjkzMywzNy45NTYsMzYzLjExLDM0LjEzMywzNTguNCwzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVMzNzIuNTE0LDg1LjMzMywzNTguNCw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyNi42NjcsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NTEuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTUxLjIKCQkJQzQzNS4yLDM3Ljk1Niw0MzEuMzc3LDM0LjEzMyw0MjYuNjY3LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2Nyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTNDQwLjc4MSw4NS4zMzMsNDI2LjY2Nyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4Ni40LDMyNC4yNjdIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMwNy4yCgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzMyLjhDNDk0LjkzMywzMjguMDksNDkxLjExLDMyNC4yNjcsNDg2LjQsMzI0LjI2N3ogTTQ3Ny44NjcsMzU4LjRIMTg3LjczM3YtMTcuMDY3aDI5MC4xMzMKCQkJVjM1OC40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjkuMzMzLDM5Mi41MzNoLTI1NmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjY4LjI2N2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjU2CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTY4LjI2N0M0NzcuODY3LDM5Ni4zNTYsNDc0LjA0NCwzOTIuNTMzLDQ2OS4zMzMsMzkyLjUzM3ogTTQ2MC44LDQ2MC44SDIyMS44Njd2LTUxLjJINDYwLjgKCQkJVjQ2MC44eiIvPgogICAgPC9nPgo8L3N2Zz4K",Wxe="PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE5NC44MzYgNThoLTExOS4zMjhjLTI0LjQ0NSAwLTQ0LjMzNiAxOS44ODktNDQuMzM2IDQ0LjMzNnYxMTkuMzI4YzAgMjQuNDQ3IDE5Ljg5MSA0NC4zMzYgNDQuMzM2IDQ0LjMzNmgxMTkuMzI4YzI0LjQ0NSAwIDQ0LjMzNi0xOS44ODkgNDQuMzM2LTQ0LjMzNnYtMTE5LjMyOGMwLTI0LjQ0Ny0xOS44OTEtNDQuMzM2LTQ0LjMzNi00NC4zMzZ6bTM2LjMzNiAxNjMuNjY0YzAgMjAuMDM1LTE2LjMwMSAzNi4zMzYtMzYuMzM2IDM2LjMzNmgtMTE5LjMyOGMtMjAuMDM1IDAtMzYuMzM2LTE2LjMwMS0zNi4zMzYtMzYuMzM2di0xMTkuMzI4YzAtMjAuMDM1IDE2LjMwMS0zNi4zMzYgMzYuMzM2LTM2LjMzNmgxMTkuMzI4YzIwLjAzNSAwIDM2LjMzNiAxNi4zMDEgMzYuMzM2IDM2LjMzNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM1LjE3MiA3NGMtNDkuNjI1IDAtOTAgNDAuMzczLTkwIDkwczQwLjM3NSA5MCA5MCA5MCA5MC00MC4zNzMgOTAtOTAtNDAuMzc1LTkwLTkwLTkwem0wIDE3MmMtNDUuMjE1IDAtODItMzYuNzg1LTgyLTgyczM2Ljc4NS04MiA4Mi04MiA4MiAzNi43ODUgODIgODItMzYuNzg1IDgyLTgyIDgyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzUuMTcyIDkwYy00MC44MDUgMC03NCAzMy4xOTUtNzQgNzRzMzMuMTk1IDc0IDc0IDc0IDc0LTMzLjE5NSA3NC03NC0zMy4xOTUtNzQtNzQtNzR6bTAgMTQwYy0zNi4zOTEgMC02Ni0yOS42MDctNjYtNjZzMjkuNjA5LTY2IDY2LTY2IDY2IDI5LjYwNyA2NiA2Ni0yOS42MSA2Ni02NiA2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNzkuMTcyIDEzOHYzMmMwIDIuMjA5IDEuNzg5IDQgNCA0aDEwNGMyLjIxMSAwIDQtMS43OTEgNC00di0zMmMwLTIuMjA5LTEuNzg5LTQtNC00aC0xMDRjLTIuMjExIDAtNCAxLjc5MS00IDR6bTggNGg5NnYyNGgtOTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNy4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyOS4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE0NS4xNzIgMTUxLjQ3Yy0yLjUwMiAwLTQuNTMgMi4wMjgtNC41MyA0LjUzIDAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTMgMi41MDEgMCA0LjUzLTIuMDI4IDQuNTMtNC41My0uMDAxLTIuNTAyLTIuMDI5LTQuNTMtNC41My00LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDEuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTMuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjE5OS4xNzIiIGN5PSIzOCIgcj0iNCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzkuMTcyIDQ2Yy02LjYxNyAwLTEyIDUuMzgzLTEyIDEyczUuMzgzIDEyIDEyIDEyIDEyLTUuMzgzIDEyLTEyLTUuMzgzLTEyLTEyLTEyem0wIDE2Yy0yLjIwNyAwLTQtMS43OTUtNC00czEuNzkzLTQgNC00IDQgMS43OTUgNCA0LTEuNzkzIDQtNCA0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuODI4IDExMCAyLjgyOC0yLjgyOGMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2cy00LjA5NC0xLjU2Mi01LjY1NiAwbC0yLjgyOCAyLjgyOC0yLjgyOC0yLjgyOGMtMS41NjItMS41NjItNC4wOTQtMS41NjItNS42NTYgMHMtMS41NjIgNC4wOTQgMCA1LjY1NmwyLjgyOCAyLjgyOC0yLjgyOCAyLjgyOGMtMS41NjIgMS41NjItMS41NjIgNC4wOTQgMCA1LjY1Ni43ODEuNzgxIDEuODA1IDEuMTcyIDIuODI4IDEuMTcyczIuMDQ3LS4zOTEgMi44MjgtMS4xNzJsMi44MjgtMi44MjggMi44MjggMi44MjhjLjc4MS43ODEgMS44MDUgMS4xNzIgMi44MjggMS4xNzJzMi4wNDctLjM5MSAyLjgyOC0xLjE3MmMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuMTcyIDE5NGgtNC45MzRsNS44NTktOS43NjhjMS4xMzctMS44OTUuNTIzLTQuMzUyLTEuMzcxLTUuNDg4LTEuODk4LTEuMTM3LTQuMzUyLS41MjEtNS40ODggMS4zNzFsLTkuNDk2IDE1LjgyNmMtLjc0MiAxLjIzNi0uNzYyIDIuNzc1LS4wNTEgNC4wMjlzMi4wMzkgMi4wMjkgMy40OCAyLjAyOWg1LjUyN2wtNS4xMDUgMTAuMjExYy0uOTg4IDEuOTc3LS4xODggNC4zNzkgMS43ODkgNS4zNjcuNTc0LjI4NyAxLjE4NC40MjIgMS43ODUuNDIyIDEuNDY5IDAgMi44NzktLjgwOSAzLjU4Mi0yLjIxMWw4LTE2Yy42MjEtMS4yNC41NTUtMi43MTMtLjE3Ni0zLjg5My0uNzI5LTEuMTc2LTIuMDE0LTEuODk1LTMuNDAxLTEuODk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDcuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTE5LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjMuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc1LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Bxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMi41IDUxMi41IiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsNDE4LjVjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjV2NzguNWMwLDkuNjczLDE1LDkuNjczLDE1LDBWNDI2QzUxMi4yNSw0MjEuODU4LDUwOC44OTMsNDE4LjUsNTA0Ljc1LDQxOC41eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsMjQ5LjM1NWgtNTguODk0di0yNy4wNDNoMTguMDExYzEwLjk2NCwwLDE5Ljg4My04LjkxOSwxOS44ODMtMTkuODgzVjE5Ljg4NEM0ODMuNzUsOC45Miw0NzQuODMxLDAsNDYzLjg2NywwICAgSDE4NC4wNTljLTEwLjk2NCwwLTE5Ljg4Myw4LjkyLTE5Ljg4MywxOS44ODR2MjYuOTI5YzAsOS42NzMsMTUsOS42NzMsMTUsMFYxOS44ODRjMC0yLjY5MywyLjE5LTQuODg0LDQuODgzLTQuODg0aDI3OS44MDkgICBjMi42OTIsMCw0Ljg4MywyLjE5MSw0Ljg4Myw0Ljg4NHYxNDUuNDI5aC0yMi44OTRWODUuNDA2YzAtMi40NzUtMS4yMjEtNC43OS0zLjI2My02LjE4OGMtMi4wNDEtMS4zOTgtNC42NDEtMS42OTktNi45NDktMC44MDUgICBjLTEuOTYyLDAuNzYxLTQzLjM0LDE3LjY1OS01Mi4xNDYsODYuODk5SDE3OS4xNzZ2LTc5LjVjMC05LjY3My0xNS05LjY3My0xNSwwdjExNi42MTdjMCwxMC45NjQsOC45MTksMTkuODgzLDE5Ljg4MywxOS44ODMgICBoMTAwLjc0NnYyNy4wNDNIMTE0LjUxNmMxNi42MTItMTYuNTk0LDE4LjIzNC00Mi44NzEsMTguMjM0LTY0Ljk0OWMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41aC00MC41di0xNC4xNTkgICBjMjQuMDYsNS4xMTQsNTAuMjg4LTE0LjYxNiw0OS45NjctMzkuNjQ1Yy0wLjA0My0zLjM1Mi0wLjQ1OS02Ljc1OC0zLjU1Ni04LjgwM2MtMTQuMjQ2LTkuNDAzLTMzLjg2Ni01LjQ4NS00Ni40MTEsNC43ODN2LTEzLjUyOSAgIGMyMS40MzMtMTQuNzkzLDIzLjAyNS00OS42MjksMi40MjktNjUuODg5Yy0yLjA3NS0xLjYzOC00LjM3MS0zLjE5Ny02LjgzNC00LjIwMWMtMTAuNTcxLTQuMzE2LTIyLjE5MSwxNC41MTMtMjQuNzEsMjEuNzgxICAgYy01Ljk1MSwxNy4xNzQtMC41NjgsMzYuOTI2LDE0LjExNCw0Ny44MjR2MTMuOTMxYy05LjYyNy03LjgzMy0yMi4yLTExLjY5Ni0zNC40ODMtOS4yMzZjLTUuMDc2LDEuMDE3LTEzLjk3MSwzLjMxNC0xNS4wNzgsOS40NjcgICBjLTQuNzU4LDI2LjQ3NiwyNS4yMzUsNDguNjQzLDQ5LjU2Miw0My41Mzl2MTQuMTM3aC00My41Yy00LjE0MywwLTcuNSwzLjM1OC03LjUsNy41YzAsMjIuMDQ3LDEuMTk2LDQ4LjM1NywxNy44MDYsNjQuOTQ5SDcuNzUgICBjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjVWNTA0LjVjMCw5LjY3MywxNSw5LjY3MywxNSwwdi0zNWgxMzUuNXYzNWMwLDkuNjczLDE1LDkuNjczLDE1LDB2LTE5MWgyNjUuMjE1ICAgYzAuMDM5LDIuNjEzLDAuMjg5LDE2LjY4OCwwLjMyLDIwLjkwNkgzMDQuMzU2Yy0yOS42NTEsMC01MS42Miw3LjcxOC02NS4yOTgsMjIuOTM5Yy0xNi40MjIsMTguMjc0LTE0LjI2LDQwLjQyNi0xNC4xNTksNDEuMzU5ICAgYzAuNDA4LDMuODExLDMuNjI0LDYuNzAxLDcuNDU3LDYuNzAxaDk2Ljg5NHYxMy41aC0yOS41Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMjkuNVY0OTdoLTk2Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMTAwLjgyNSAgIGMwLjgzMiwwLjMxOCwxLjczMSwwLjUsMi42NzUsMC41czEuODQzLTAuMTgyLDIuNjc1LTAuNUg0NDAuMjVjOS42NzMsMCw5LjY3My0xNSwwLTE1aC05NnYtOTEuNTk0aDUwLjEwNiAgIGMxNy4yMTgsMCwyOS42NjQtNC4xNTEsMzguMDUyLTEyLjY5YzE0LjY5OS0xNC45NjUsMTQuMjUxLTQwLjAyMiwxMy42ODQtNzEuNzQ3Yy0wLjA0NC0yLjQ1NC0wLjA4Ny00Ljk1LTAuMTI1LTcuNDdoNTEuMjgzVjM4NCAgIGMwLDkuNjczLDE1LDkuNjczLDE1LDBWMjU2Ljg1NUM1MTIuMjUsMjUyLjcxMyw1MDguODkzLDI0OS4zNTUsNTA0Ljc1LDI0OS4zNTV6IE05Ny4yNzYsMTI4LjQ5NiAgIGM5LjY1Mi02LjEyNCwxOC4wNDktNC42ODEsMjIuNDIxLTMuMTM3Yy0xLjMyLDE1LjU0Ny0yMC4yMjEsMjYuODYtMzQuNjY4LDIxLjk2M0M4NS42MzUsMTQyLjUxMSw4OC4wNzcsMTM0LjMzMiw5Ny4yNzYsMTI4LjQ5NnogICAgTTQ3LjQyNCwxNDQuMDk3Yy02LjM3Mi00LjA0My0xMS43OTItMTEuMDA1LTEyLjQ5My0xOC43NDJjMTUuMDItNS4yOCwzMi42ODMsNi40MTgsMzQuNjQsMjEuOTY3ICAgQzYyLjI4NiwxNDkuNzkyLDUzLjgxLDE0OC4xNDgsNDcuNDI0LDE0NC4wOTd6IE03Ny42MzcsNTEuMTY5YzEyLjU2LDkuNTU0LDExLjk5NywzMS4zNTktMC4wNDQsNDEuMDU0ICAgYy0zLjcxNS0zLjA1NS05LjMxOS05LjQ4MS05LjMxOS0yMC40NDFDNjguMjczLDYwLjM1Miw3My45OTEsNTQuMDM1LDc3LjYzNyw1MS4xNjl6IE0zMy44NTYsMTkxLjkwNmg4My43ODEgICBjLTEuMjcsNDAuNTE1LTEzLjM2Miw1Ni41LTQxLjg4OCw1Ni41QzQ2LjgzMiwyNDguNDA3LDM1LjA3MiwyMzIuOTM2LDMzLjg1NiwxOTEuOTA2eiBNNDIxLjcwNywzODIuMjA1ICAgYy01LjQyMSw1LjUxOS0xNC4zNjcsOC4yMDEtMjcuMzUxLDguMjAxSDI0MC4wMTNjMC42OTQtNS45ODgsMy4wMDYtMTUuMDI2LDEwLjIwMy0yMy4wMzUgICBjMTAuNzEyLTExLjkyMSwyOC45MjctMTcuOTY1LDU0LjE0MS0xNy45NjVoMTI2LjczNkM0MzAuNDczLDM2NC4xMDUsNDI4LjI1MSwzNzUuNTQzLDQyMS43MDcsMzgyLjIwNXogTTQ2OC43NSwxODAuMzEzdjIyLjExNyAgIGMwLDIuNjkzLTIuMTksNC44ODMtNC44ODMsNC44ODNoLTE4LjAxMXYtMjdINDY4Ljc1eiBNNDE5LjEyNiwxMTEuMzU4YzQuMDg0LTUuMzk1LDguMTktOS40MSwxMS43My0xMi4zMjJ2MTg3Ljg2MyAgIGMtMy41MjgtMy4wMjMtNy42MDQtNy4xNDYtMTEuNjU5LTEyLjYyMmMtMTQuNjE1LTE5LjczOS0yMi4zNDEtNDguMDQ5LTIyLjM0MS04MS44NzIgICBDMzk2Ljg1NiwxNTguNjMyLDQwNC41NTgsMTMwLjYwNiw0MTkuMTI2LDExMS4zNTh6IE0zODMuODczLDIyMi4zMTNjMS40MzIsMTAuMDk1LDMuNTUzLDE5LjA3Nyw2LjEzOCwyNy4wNDNoLTI2Ljg5di0yNy4wNDMgICBIMzgzLjg3M3ogTTE3OS4xNzYsMjAyLjQyOXYtMjIuMTE3aDIwMi45OTNjLTAuNDY5LDguOTkyLTAuNDE1LDE4LjAxNSwwLjE2OSwyN0gxODQuMDU5ICAgQzE4MS4zNjYsMjA3LjMxMywxNzkuMTc2LDIwNS4xMjIsMTc5LjE3NiwyMDIuNDI5eiBNMjk5LjgwNSwyMjIuMzEzaDQ4LjMxNnYyNy4wNDNoLTQ4LjMxNlYyMjIuMzEzeiBNMzk1LjkwMSwyNjQuMzU1ICAgYzcuODE1LDE2LjcsMTcuNTE2LDI3LjQ4OCwyNS4zNjUsMzQuMTQ1SDE1LjI1di0zNC4xNDVIMzk1LjkwMXogTTE1LjI1LDQ1NC41di02M2gxMzUuNXY2M0gxNS4yNXogTTE1MC43NSwzNzYuNUgxNS4yNXYtNjNoMTM1LjUgICBWMzc2LjV6IE00NDUuODU2LDI5OC41di0zNC4xNDVoNTEuMzk0VjI5OC41SDQ0NS44NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTU0Ljc1LDM1Mi41aDU3YzkuNjczLDAsOS42NzMtMTUsMC0xNWgtNTdDNDUuMDc3LDMzNy41LDQ1LjA3NywzNTIuNSw1NC43NSwzNTIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTExLjc1LDQxNS41aC01N2MtOS42NzMsMC05LjY3MywxNSwwLDE1aDU3QzEyMS40MjMsNDMwLjUsMTIxLjQyMyw0MTUuNSwxMTEuNzUsNDE1LjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Jxe={Anteroom:nxe,Attic:axe,Balcony:Mxe,Barn:cxe,Basement:uxe,Bathroom:lxe,Bedroom:Nxe,"Boiler Room":"PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSItMyAwIDQ4MCA0ODAiIHdpZHRoPSI0ODBwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTIzNC45Njg3NSA2NGMtMTMuMjUzOTA2IDAtMjQgMTAuNzQ2MDk0LTI0IDI0czEwLjc0NjA5NCAyNCAyNCAyNCAyNC0xMC43NDYwOTQgMjQtMjQtMTAuNzQ2MDk0LTI0LTI0LTI0em0wIDMyYy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04czMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzA2Ljk2ODc1IDE2MGgtMTQ0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoMTQ0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LTh6bS04IDY0aC0xMjh2LTQ4aDEyOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE4Ni45Njg3NSAxOTJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjE4Ljk2ODc1IDE5MmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjYuOTY4NzUgMTkyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEzOC45Njg3NSA3MnYzMmgxNnYtMjRoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ni45Njg3NSAwaC0zMmMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOGgtNTZ2LTU2aDI0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTQ4YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0di0xNmMtLjAyNzM0NC0yMi4wODIwMzEtMTcuOTIxODc1LTM5Ljk3MjY1Ni00MC00MGgtMTZ2LTE2aC0xNnYxNmgtMTcuNzYxNzE5bC02LjQ4MDQ2OS0yNS45Mzc1Yy0uODg2NzE4LTMuNTYyNS00LjA4NTkzNy02LjA2MjUtNy43NTc4MTItNi4wNjI1aC00OGMtMy42NzE4NzUgMC02Ljg3MTA5NCAyLjUtNy43NjE3MTkgNi4wNjI1bC02LjQ4MDQ2OSAyNS45Mzc1aC0xNy43NTc4MTJ2LTE2aC0xNnYxNmgtMTZjLTIyLjA4MjAzMS4wMjczNDQtMzkuOTcyNjU2IDE3LjkxNzk2OS00MCA0MHY1NmgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgyNHYyMjRoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTQxLjcxMDkzOGMxMi4zNzEwOTQgNi4zNzUgMjYuMDgyMDMxIDkuNzAzMTI2IDQwIDkuNzEwOTM4aDh2MjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGg4YzEzLjkxNDA2Mi0uMDA3ODEyIDI3LjYyODkwNi0zLjMzNTkzOCA0MC05LjcxMDkzOHY0MS43MTA5MzhoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTE3Nmg1NmMzMC45MTAxNTYtLjAzOTA2MiA1NS45NjA5MzgtMjUuMDg5ODQ0IDU2LTU2di0xOTJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOHptLTg4IDEwNHYzMmgtMTZ2LTMyem0tMTYxLjc1MzkwNi04OGgzNS41MDM5MDZsNCAxNmgtNDMuNTAzOTA2em0tOTQuMjQ2MDk0IDU2YzAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNGgxNzZjMTMuMjUzOTA2IDAgMjQgMTAuNzQ2MDk0IDI0IDI0djU2aC0yMjR6bS0zMiAxMjB2LTQ4aDE2djQ4em04MCAyNzJoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNjkuNTU4NTk0YzQuNTM1MTU2IDYuNDg0Mzc1IDkuOTE0MDYyIDEyLjMzMjAzMiAxNiAxNy4zOTA2MjV6bTExMi0xNmgtMzJ2LTE2aDMyem0xMjggNDhoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNTIuMTY3OTY5YzYuMDgyMDMxLTUuMDU4NTkzIDExLjQ2NDg0NC0xMC45MDYyNSAxNi0xNy4zOTA2MjV6bTAtMTIwYy0uMDQyOTY5IDM5Ljc0NjA5NC0zMi4yNTM5MDYgNzEuOTU3MDMxLTcyIDcyaC04MGMtMzkuNzQ2MDk0LS4wNDI5NjktNzEuOTU3MDMxLTMyLjI1MzkwNi03Mi03MnYtMTY4aDIyNHptMTEyLTExMmMtLjAyNzM0NCAyMi4wODIwMzEtMTcuOTIxODc1IDM5Ljk3MjY1Ni00MCA0MGgtNTZ2LTE2aDU2YzEzLjI1MzkwNiAwIDI0LTEwLjc0NjA5NCAyNC0yNHYtMTg0aDE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNTYuNjI1IDUzLjY1NjI1IDEwLjM0Mzc1LTEwLjM0Mzc1IDE4LjM0Mzc1IDE4LjM0Mzc1IDExLjMxMjUtMTEuMzEyNS0yNC0yNGMtMy4xMjUtMy4xMjEwOTQtOC4xODc1LTMuMTIxMDk0LTExLjMxMjUgMGwtMTAuOTM3NSAxMC45Mzc1LTM0LjM5ODQzOC0yNy41MjczNDQtMTAuMDA3ODEyIDEyLjQ5MjE4OCA0MCAzMmMzLjE4MzU5NCAyLjU1MDc4MSA3Ljc3MzQzOCAyLjI5Mjk2OCAxMC42NTYyNS0uNTg5ODQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMCA4Ny40MzM1OTQgNDAgMTZjMi45NzI2NTYgMS4xODM1OTQgNi4zNjMyODEuNDg0Mzc1IDguNjI1LTEuNzc3MzQ0bDExLjkxNzk2OS0xMS45MjE4NzUgMjYuODQ3NjU2IDEzLjQ2NDg0NCA3LjE1MjM0NC0xNC4zMjAzMTMtMzItMTZjLTMuMDc4MTI1LTEuNTM1MTU2LTYuNzk2ODc1LS45Mjk2ODctOS4yMzA0NjkgMS41MDM5MDZsLTEyLjI3MzQzOCAxMi4yMjY1NjMtMzUuMTAxNTYyLTE0LjA0Mjk2OXptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Carport:Lxe,Cellar:gxe,Chamber:jxe,Corridor:yxe,"Dining Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K","Dining Room":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dining:Txe,"Dressing Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTcuMDA0IDI3Ni4xNjljMC00LjEzOSAzLjM3NC03LjUxMiA3LjUxMi03LjUxMnM3LjQ4MyAzLjM3MyA3LjQ4MyA3LjUxMnYxMzcuMzQgMzkuOTk3YzAgNC4xMzktMy4zNDUgNy40ODMtNy40ODMgNy40ODNoLTQ5Ny4wMDRjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODMgMC0xMjQuNzU0IDAtMjQ5LjUzNiAwLTM3NC4yOTEgMC03Ljc2NyAzLjE3NS0xNC44MjUgOC4yNzctMTkuOTI4IDUuMTAzLTUuMTAzIDEyLjE2MS04LjI3NyAxOS45MjgtOC4yNzdoMTI0LjI0NGM3LjkwOSAwIDE1LjM2NCAzLjMxNiAyMC43MjIgOS4wOTkgNS4zNTctNS43ODMgMTIuODEyLTkuMDk5IDIwLjcyMi05LjA5OWgxMjQuMjQzYzcuODgxIDAgMTUuMzY0IDMuMzE2IDIwLjY5MyA5LjA5OSA1LjM1OC01Ljc4MyAxMi44MTMtOS4wOTkgMjAuNzIyLTkuMDk5aDEyNC4yNDRjNy43NjcgMCAxNC44MjYgMy4xNzUgMTkuOTI4IDguMjc3IDUuMTAyIDUuMTAzIDguMjc3IDEyLjE2MSA4LjI3NyAxOS45Mjh2MjUuNjI1IDEzNy4zNGMwIDQuMTM5LTMuMzQ1IDcuNTEyLTcuNDgzIDcuNTEyLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTEyOS44NTVoLTY3LjgzNXYxMi45MjZsNDYuODMgMjMuODM5YzQuMTk1IDIuMTI2IDcuMTE1IDUuNzU1IDguNDQ3IDkuODk0IDEuMzYgNC4xMzkgMS4xMzQgOC43ODctLjk5MiAxMi45NTQtMS40NDYgMi44MzUtMy42NTcgNS4xNTktNi4yOTMgNi43NzUtMi42NjQgMS42NDQtNS43MjYgMi41MjMtOC44NzIgMi41MjNoLTMuMzQ1djk1LjYxM2MwIDQuMTM5LTMuMzQ1IDcuNDg0LTcuNDg0IDcuNDg0aC03MS4xNWMtNC4xMzkgMC03LjQ4My0zLjM0NS03LjQ4My03LjQ4NHYtMzQuNTU0YzAtNC4xNjcgMy4zNDUtNy41MTIgNy40ODMtNy41MTIgNC4xMzkgMCA3LjUxMiAzLjM0NSA3LjUxMiA3LjUxMnYyNy4wNDNoNTYuMTI3di04OC4xMDJoLTU2LjEyN3YyNy4wNzFjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy40ODMtMy4zNzMtNy40ODMtNy41MTJ2LTI3LjA3MWgtMy4zNDVjLTQuNzA2IDAtOC45NTctMS44OTktMTIuMDE5LTQuOTg5LTMuMDktMy4wNjEtNC45ODktNy4zMTMtNC45ODktMTIuMDE5IDAtMy4zNDUuOTkyLTYuNTIgMi42OTMtOS4xNTYgMS43MjktMi42NjQgNC4xMzktNC44MTkgNi45NzQtNi4xOGw0Ni4wMzUtMjMuNDQzdi0xMy4xMjRoLTY3LjgzNHYyOTMuNzAxaDE1MC42NjN2LTEyOS44NTd6bS03My44NDMtMTM3LjE5OWMtLjgyMi0uNTEtMS42NzItLjUxLTIuNDk1IDBsLTQ1LjcyMyAyMy4zMDFjLS45MDcuMzQtMS40NzQuOTM2LTEuNDc0IDEuOTU2IDAgMS4xMDUuOTA3IDIuMDEzIDIuMDEzIDIuMDEzaDkyLjgwN2MuNzkzIDAgMS40NDYtLjM5NyAxLjc4Ni0xLjEwNS41MS0uOTkyLjE0Mi0yLjE4My0uODc4LTIuNjkzbC0xNS4zMzYtNy44MjNjLTkuMDQzLTQuNTkzLTE4LjA1Ny05LjE1OC0zMC43LTE1LjY0OXptLTE2NS44LS4wODVjLS43MDktLjQyNS0xLjQ3NC0uNDI1LTIuMjQgMGwtNDUuODY1IDIzLjM4NmMtLjg3OS4zNC0xLjQ0Ni45MzYtMS40NDYgMS45NTYgMCAxLjEwNS45MDcgMi4wMTMgMi4wMTMgMi4wMTNoOTIuODA3Yy43OTQgMCAxLjQ0Ni0uMzk3IDEuNzg2LTEuMTA1LjUxLS45OTIuMTQyLTIuMTgzLS44NzktMi42OTMtMTUuMzkyLTcuODI0LTMwLjgxMi0xNS42NDgtNDYuMTc2LTIzLjU1N3ptLTIxMS42NjYtMjYuNTZjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODRzMy4zNzMtNy41MTIgNy41MTItNy41MTJoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNzQgNy41MTIgNy41MTIgMCA0LjEzOS0zLjM3MyA3LjQ4NC03LjUxMiA3LjQ4NHptMCAxMDEuOTM0Yy00LjEzOSAwLTcuNTEyLTMuMzczLTcuNTEyLTcuNTEyczMuMzczLTcuNDgzIDcuNTEyLTcuNDgzaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzQ1IDcuNTEyIDcuNDgzIDAgNC4xMzktMy4zNzMgNy41MTItNy41MTIgNy41MTJ6bTAtMzMuOTg4Yy00LjEzOSAwLTcuNTEyLTMuMzQ1LTcuNTEyLTcuNDgzczMuMzczLTcuNTEyIDcuNTEyLTcuNTEyaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzczIDcuNTEyIDcuNTEycy0zLjM3MyA3LjQ4My03LjUxMiA3LjQ4M3ptMC0zMy45NTljLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJzMy4zNzMtNy40ODMgNy41MTItNy40ODNoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNDUgNy41MTIgNy40ODMgMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnptMjAyLjgyMi0yMC44NjN2LTEzLjEyNGgtNjcuODM0djEyOS44NTdjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTE2Mi45NjdjMC0zLjYyOC0xLjQ3NC02LjkxNy0zLjg4My05LjMyNi0yLjM4MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNi0zLjg4NGgtMTI0LjI0NGMtMy42MjggMC02LjkxNyAxLjUwMi05LjMyNyAzLjg4NC0yLjM4MSAyLjQwOS0zLjg4MyA1LjY5Ny0zLjg4MyA5LjMyNnYxOTIuMzYxaDE1LjMwOGM2LjA5NCAwIDExLjU5NCAyLjQ2NiAxNS41OSA2LjQ2NCAzLjk5NyAzLjk5NyA2LjQ5MiA5LjUyNSA2LjQ5MiAxNS41OXYyMy4zMDFjMCA2LjA2Ny0yLjQ5NSAxMS41OTQtNi40OTIgMTUuNTkxcy05LjQ5NiA2LjQ2My0xNS41OSA2LjQ2M2gtMTUuMzA4djEwNy4wMDloMTUwLjY2M3YtMTY5LjgyNWMwLTQuMTM5IDMuMzc0LTcuNTEyIDcuNTEyLTcuNTEyczcuNTEyIDMuMzczIDcuNTEyIDcuNTEydjEyOS44NTZoMTUwLjY2M3YtMjkzLjdoLTY3LjgzNHYxMi45MjZsNDYuNjMgMjMuNzI2YzQuMTY3IDIuMTI2IDcuMiA1LjUyOCA4LjY0NiAxMC4wMDcgMi40NjYgNy41NjgtLjUzOSAxNS41OS03LjI4NSAxOS43MjktMi42NjQgMS42NDQtNS43NTQgMi41MjMtOC44NzIgMi41MjNoLTkyLjgwN2MtNC43MDYgMC04Ljk1OC0xLjg5OS0xMi4wNDctNC45ODktMy4wNjEtMy4wNjEtNC45Ni03LjMxMy00Ljk2LTEyLjAxOSAwLTMuMzQ1Ljk5Mi02LjUyIDIuNjkzLTkuMTU2IDEuNzAxLTIuNjY0IDQuMTEtNC44MTkgNi45NzMtNi4xOHptLTIzMy41MjEgMTcyLjMyaDYuMDk0YzQuMTM5IDAgNy41MTIgMy4zNzMgNy41MTIgNy41MTJzLTMuMzczIDcuNTEyLTcuNTEyIDcuNTEyaC02LjA5NHYxMS4xOThoMTUuMzA4YzEuOTU2IDAgMy43MTMtLjc5NCA0Ljk4OS0yLjA2OSAxLjI3Ni0xLjMwNSAyLjA5OC0zLjA2MSAyLjA5OC00Ljk5di0yMy4zMDJjMC0xLjkyOC0uODIyLTMuNjg1LTIuMDk4LTQuOTg5LTEuMjc1LTEuMjc2LTMuMDMzLTIuMDY5LTQuOTg5LTIuMDY5aC0xNS4zMDh6bTMzMS4zNDUtMjE4LjU1NHYxOC4xMTNoMTUwLjY2M3YtMTguMTEzYzAtMy42MjgtMS40NzQtNi45MTctMy44ODMtOS4zMjYtMi40MDktMi4zODEtNS42OTgtMy44ODQtOS4zMjctMy44ODRoLTEyNC4yNDNjLTMuNjI4IDAtNi45MTcgMS41MDItOS4zMjYgMy44ODQtMi40MSAyLjQxLTMuODg0IDUuNjk4LTMuODg0IDkuMzI2em0tMTY1LjY1OCAxOC4xMTRoMTUwLjY2M3YtMTguMTE0YzAtMy42MjgtMS41MDItNi45MTctMy44ODMtOS4zMjYtMi40MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNy0zLjg4NGgtMTI0LjI0M2MtMy42MjkgMC02Ljk0NSAxLjUwMi05LjMyNyAzLjg4NC0yLjQxIDIuNDA5LTMuODgzIDUuNjk3LTMuODgzIDkuMzI2em0zMTYuMzIxIDMyMy42OTJoLTMxNi4zMjF2MjQuOTczaDMxNi4zMjJ2LTI0Ljk3M3oiLz4KICAgIDwvZz4KPC9zdmc+",Driveway:Dxe,Entrance:dxe,"Equipment Room":"PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC00IDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTMwMy4wOTM3NSAxNzQuMjVjMy4zOTQ1MzEgMi4zNzg5MDYgOC4wNzAzMTIgMS41NTA3ODEgMTAuNDQ1MzEyLTEuODM5ODQ0bDE1Ljk1MzEyNi0yMi43ODkwNjJjMi4zNzg5MDYtMy4zOTQ1MzIgMS41NTQ2ODctOC4wNzAzMTMtMS44Mzk4NDQtMTAuNDQ1MzEzLTMuMzk0NTMyLTIuMzc1LTguMDcwMzEzLTEuNTUwNzgxLTEwLjQ0NTMxMyAxLjg0Mzc1bC0xNS45NTcwMzEgMjIuNzg1MTU3Yy0yLjM3NSAzLjM5NDUzMS0xLjU1MDc4MSA4LjA3MDMxMiAxLjg0Mzc1IDEwLjQ0NTMxMnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM0MS42NzE4NzUgMTU1Ljk4NDM3NS01LjQxNzk2OSAyNy4yODUxNTZjLS45MTc5NjggNC42NDA2MjUgMi42MzI4MTMgOC45NjA5MzggNy4zNjcxODggOC45NjA5MzggMy41MDc4MTIgMCA2LjY0MDYyNS0yLjQ3MjY1NyA3LjM0NzY1Ni02LjAzOTA2M2w1LjQxNDA2Mi0yNy4yODkwNjJjLjgwODU5NC00LjA2MjUtMS44MzIwMzEtOC4wMTE3MTktNS44OTQ1MzEtOC44MTY0MDYtNC4wNjY0MDYtLjgwNDY4OC04LjAxMTcxOSAxLjgzMjAzMS04LjgxNjQwNiA1Ljg5ODQzN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTMwOS41ODk4NDQgMTIxLjQ0OTIxOWMtMi4xNDQ1MzItMy41NDI5NjktNi43NTc4MTMtNC42NzE4NzUtMTAuMzAwNzgyLTIuNTI3MzQ0bC0yMy43ODkwNjIgMTQuNDIxODc1Yy0zLjU0Mjk2OSAyLjE0ODQzOC00LjY3MTg3NSA2Ljc2MTcxOS0yLjUyNzM0NCAxMC4zMDQ2ODggMi4xNTIzNDQgMy41NDI5NjggNi43NjU2MjUgNC42Njc5NjggMTAuMzA0Njg4IDIuNTIzNDM3bDIzLjc4OTA2Mi0xNC40MTc5NjljMy41NDI5NjktMi4xNDg0MzcgNC42NzE4NzUtNi43NjE3MTggMi41MjM0MzgtMTAuMzA0Njg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtODMuNjUyMzQ0IDE1Mi4xNzk2ODhjMi43NTc4MTIgMS4zNTkzNzQgNi4xMTMyODEgMS40MDYyNSA4Ljk2ODc1IDAgNy0zLjQ1MzEyNiAyOS44MzU5MzctMTYuNTA3ODEzIDI5LjgzNTkzNy0zOS40NjQ4NDQgMC0xOC4yMDMxMjUtMjEuMjE0ODQzLTI3LjA2NjQwNi0zNC4zMTI1LTE2LjA3NDIxOS01LjA2MjUtNC4yNjE3MTktMTEuOTQxNDA2LTUuODkwNjI1LTE4Ljc1MzkwNi00LjA4OTg0NC05LjMxNjQwNiAyLjQ1NzAzMS0xNS41NzAzMTMgMTAuNTYyNS0xNS41NzAzMTMgMjAuMTY0MDYzIDAgMjMuMDE1NjI1IDIyLjg0Mzc1IDM2LjAzMTI1IDI5LjgzMjAzMiAzOS40NjQ4NDR6bS0zLjc3NzM0NC00Mi4zNjcxODhjMS4zOTg0MzggMi40Njg3NSA0LjQ2ODc1IDQuNjI1IDguMDIzNDM4IDQuNzEwOTM4IDMuNTgyMDMxLjExMzI4MSA2Ljk3MjY1Ni0yLjA0Njg3NiA4LjQ2MDkzNy00LjY1MjM0NCAzLjA1NDY4Ny01LjM1NTQ2OSAxMS4wOTc2NTYtMy4xNDQ1MzIgMTEuMDk3NjU2IDIuODQ3NjU2IDAgMTIuNjkxNDA2LTEzLjM5NDUzMSAyMS41NjY0MDYtMTkuMzI0MjE5IDI0Ljg3NS01LjkyOTY4Ny0zLjI5Mjk2OS0xOS4zMTI1LTEyLjE0NDUzMS0xOS4zMTI1LTI0Ljg3NSAwLTYuMDQyOTY5IDguMDg1OTM4LTguMTMyODEyIDExLjA1NDY4OC0yLjkwNjI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMDMuNjE3MTg4aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDA2MjYtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTkzNzQtNy41IDcuNSAwIDQuMTQ0NTMxIDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMzAuMDI3MzQ0aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDQ1MzItMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjgtNy41IDcuNSAwIDQuMTQwNjI1IDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxNTYuNDM3NWgyOS42MzY3MTljNC4xNDQ1MzEgMCA3LjUtMy4zNTU0NjkgNy41LTcuNXMtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjktNy41IDcuNXMzLjM1NTQ2OSA3LjUgNy41IDcuNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NS43Njk1MzEgMTUuMDA3ODEyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY4IDcuNS03LjUgMC00LjE0NDUzMS0zLjM1NTQ2OS03LjQ5OTk5OTUtNy41LTcuNDk5OTk5NWgtNzMuNzEwOTM3Yy0uMTE3MTg4IDAtLjIzMDQ2OS4wMTE3MTg3LS4zNDc2NTYuMDE1NjI1LTIuNDk2MDk0LS4xMjg5MDY1LTUgLjk4NDM3NDUtNi41MzkwNjMgMy4xODM1OTM1bC0yNS44OTA2MjUgMzYuOTcyNjU3LTMyLjgzOTg0NC0yMi45OTYwOTRjLTE3LjM3MTA5NC0xMi4xNjQwNjMtMzguOTAyMzQ0LTE2LjI4OTA2My01OS41OTM3NS0xMS41MzkwNjNsLTIuNTk3NjU2LTEuODIwMzEyYy05LjU4OTg0NC02LjcxMDkzOC0yMi44MTY0MDYtNC4zNDc2NTctMjkuNSA1LjE5OTIxOWwtNS45Njg3NSA4LjUyMzQzN2MtNi42OTUzMTIgOS41NjI1LTQuMzYzMjgxIDIyLjgwMDc4MSA1LjIwMzEyNSAyOS40OTYwOTRsMi4wNDY4NzUgMS40MzM1OTNjLTYuODU5Mzc1IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDgyMDMyIDUzLjE3OTY4OCAzNy4yMzgyODJsNC4xOTE0MDYgMi45MzM1OTRjLTYuODUxNTYzIDMwLjU3MDMxMiAyNi44MDQ2ODcgNTQuMTE3MTg3IDUzLjE3NTc4MSAzNy4yMzgyODFsNC4xOTUzMTMgMi45MzM1OTNjLTYuODU5Mzc2IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDc4MTI2IDUzLjE3NTc4MSAzNy4yMzQzNzZsMi4wNTQ2ODcgMS40NDE0MDZjOS41NjY0MDYgNi42OTUzMTIgMjIuODAwNzgyIDQuMzYzMjgxIDI5LjQ5NjA5NC01LjIwMzEyNWw1Ljk2ODc1LTguNTIzNDM4YzYuNjk1MzEyLTkuNTYyNSA0LjM2MzI4MS0yMi44MDA3ODEtNS4xOTkyMTktMjkuNDk2MDkzbC0zLjI3MzQzNy0yLjI5Mjk2OWMtMi42MTMyODItMjEuMDY2NDA3LTEzLjg1NTQ2OS0zOS44ODY3MTktMzEuMjI2NTYzLTUyLjA1NDY4OGwtMzAuMTk5MjE5LTIxLjE0MDYyNSAyMy42NTIzNDQtMzMuNzc3MzQ0em0tMjE1LjQ1NzAzMSA0My40NzI2NTcgMjQuNjIxMDk0IDE3LjI0MjE4N2MtMTEuNzk2ODc1IDIuNzkyOTY5LTIzLjIyMjY1Ni01LjIzNDM3NS0yNC42MjEwOTQtMTcuMjQyMTg3em01Ny4zNjcxODggNDAuMTY3OTY5IDI0LjYyNSAxNy4yNDIxODdjLTExLjc2OTUzMiAyLjc5Njg3NS0yMy4yMjI2NTctNS4yMDcwMzEtMjQuNjI1LTE3LjI0MjE4N3ptNTcuMzcxMDkzIDQwLjE3MTg3NGMxNC45MTc5NjkgMTAuNDQ1MzEzIDkuNzc3MzQ0IDYuODQzNzUgMjQuNjI1IDE3LjI0MjE4OC0xMS43NzM0MzcgMi43OTY4NzUtMjMuMjIyNjU2LTUuMjE0ODQ0LTI0LjYyNS0xNy4yNDIxODh6bTY0LjEyODkwNyA2LjM0Mzc1LTUuOTY4NzUgOC41MjM0MzhjLTEuOTUzMTI2IDIuNzg5MDYyLTUuODEyNSAzLjQ3MjY1Ni04LjYwNTQ2OSAxLjUxOTUzMS0yLjQxMDE1Ny0xLjY4NzUtMTY5Ljg1OTM3NS0xMTguOTQxNDA2LTE3Mi4wMTk1MzEtMTIwLjQ0OTIxOS0yLjc2OTUzMi0xLjk0MTQwNi0zLjQ1NzAzMi01LjgzMjAzMS0xLjUxNTYyNi04LjYwNTQ2OGw1Ljk2ODc1LTguNTIzNDM4YzEuOTQ5MjE5LTIuNzgxMjUgNS44NDM3NS0zLjQ0OTIxOCA4LjYwNTQ2OS0xLjUxNTYyNWwxNzIuMDE5NTMxIDEyMC40NDUzMTNjMi43NzM0MzggMS45NDE0MDYgMy40NTcwMzIgNS44MzU5MzcgMS41MTU2MjYgOC42MDU0Njh6bS0xNC45MDIzNDQtMzYuMjg5MDYyYy03Ljg5NDUzMi01LjUzMTI1LTEyNS4wNDY4NzUtODcuNTU4NTk0LTEyOC43MTA5MzgtOTAuMTI1IDExLjQ3MjY1Ni4zNTE1NjIgMjIuNjcxODc1IDQgMzIuMjczNDM4IDEwLjcyMjY1Nmw3NS4zMjQyMTggNTIuNzQyMTg4YzkuNTk3NjU3IDYuNzIyNjU2IDE2Ljg1OTM3NiAxNiAyMS4xMTMyODIgMjYuNjYwMTU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDkwLjgyMDMxMiAzMTAuNTE1NjI1aC0yMTcuMzIwMzEyYy00LjE0NDUzMSAwLTcuNSAzLjM1OTM3NS03LjUgNy41IDAgNC4xNDQ1MzEgMy4zNTU0NjkgNy41MDM5MDYgNy41IDcuNTAzOTA2aDIxNy4zMjAzMTJjMy40MDYyNSAwIDYuMTc5Njg4IDIuNzY5NTMxIDYuMTc5Njg4IDYuMTc1NzgxdjEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzggNi4xNzk2ODgtNi4xNzk2ODggNi4xNzk2ODgtMy40NDUzMTIgMC00NjMuNjA5Mzc0IDAtNDY5LjY0MDYyNCAwLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc2OTUzMi02LjE3OTY4OC02LjE3OTY4OHYtMTMuNjc5Njg4YzAtMy40MDYyNSAyLjc3MzQzOC02LjE3NTc4MSA2LjE3OTY4OC02LjE3NTc4MWgyMTcuMzIwMzEyYzQuMTQ0NTMxIDAgNy41LTMuMzU5Mzc1IDcuNS03LjUwMzkwNiAwLTQuMTQwNjI1LTMuMzU1NDY5LTcuNS03LjUtNy41aC04NS4zNTU0NjljLjU5NzY1Ny0xLjk1MzEyNS45MjU3ODEtNC4wMjczNDQuOTI1NzgxLTYuMTc1Nzgxdi0xMy42Nzk2ODhjMC0xMS42Nzk2ODctOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODctMjEuMTc5Njg3aC0xMTEuNzEwOTM3Yy0xMS42Nzk2ODggMC0yMS4xNzk2ODggOS41LTIxLjE3OTY4OCAyMS4xNzk2ODd2MTMuNjc5Njg4YzAgNS4yMTQ4NDQgMS45MDIzNDQgOS45ODQzNzUgNS4wMzkwNjIgMTMuNjc5Njg3LTMuMTM2NzE4IDMuNjkxNDA3LTUuMDM5MDYyIDguNDY0ODQ0LTUuMDM5MDYyIDEzLjY3NTc4MXYxMy42Nzk2ODhjMCAxMS4zMjgxMjUgOC45NDUzMTIgMjAuNTc4MTI1IDIwLjEzNjcxOSAyMS4xMjg5MDZ2Ni42MDkzNzVjMCAxMS42Nzk2ODggOS41MDM5MDYgMjEuMTc5Njg4IDIxLjE3OTY4NyAyMS4xNzk2ODhoMjAuNzE0ODQ0djk1LjE0MDYyNWMwIDcuODc4OTA2IDYuNDEwMTU2IDE0LjI4OTA2MiAxNC4yOTI5NjkgMTQuMjg5MDYyaDE0LjE1MjM0M2M3Ljg3ODkwNyAwIDE0LjI5Mjk2OS02LjQxMDE1NiAxNC4yOTI5NjktMTQuMjg5MDYydi05NS4xNDA2MjVoMzAyLjQ2MDkzOHY5NS4xNDA2MjVjMCA3Ljg3ODkwNiA2LjQxMDE1NiAxNC4yODkwNjIgMTQuMjkyOTY5IDE0LjI4OTA2MmgxNC4xNTIzNDNjNy44ODI4MTMgMCAxNC4yOTI5NjktNi40MTAxNTYgMTQuMjkyOTY5LTE0LjI4OTA2MnYtOTUuMTQwNjI1aDIwLjcxMDkzOGMxMS42Nzk2ODcgMCAyMS4xNzk2ODctOS41IDIxLjE3OTY4Ny0yMS4xNzk2ODh2LTYuNjA5Mzc1YzExLjE5NTMxMy0uNTUwNzgxIDIwLjE0MDYyNS05LjgwMDc4MSAyMC4xNDA2MjUtMjEuMTI4OTA2di0xMy42Nzk2ODhjMC0xMS42NzU3ODEtOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODgtMjEuMTc5Njg3em0tNDc1LjgyMDMxMi0xOS44NTU0NjljMC0zLjQwNjI1IDIuNzczNDM4LTYuMTc5Njg3IDYuMTc5Njg4LTYuMTc5Njg3aDExMS43MTA5MzdjMy40MDYyNSAwIDYuMTc5Njg3IDIuNzczNDM3IDYuMTc5Njg3IDYuMTc5Njg3djEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzcgNi4xNzk2ODctNi4xNzk2ODcgNi4xNzk2ODdoLTExMS43MTA5MzdjLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc3MzQzNy02LjE3OTY4OC02LjE3OTY4N3ptNzQuNzY1NjI1IDE5OC4wNjI1aC0xMi43MzQzNzV2LTk0LjQyOTY4N2gxMi43MzQzNzV6bTM0NS4yMDMxMjUgMGgtMTIuNzM4Mjgxdi05NC40Mjk2ODdoMTIuNzM4Mjgxem00MS44OTA2MjUtMTE1LjYwOTM3NWMwIDMuNDA2MjUtMi43Njk1MzEgNi4xNzk2ODgtNi4xNzk2ODcgNi4xNzk2ODgtMTMuNzE0ODQ0IDAtNDE1LjAzNTE1NyAwLTQyOS4zNjMyODIgMC0zLjQwNjI1IDAtNi4xNzk2ODctMi43NzM0MzgtNi4xNzk2ODctNi4xNzk2ODh2LTYuNTU4NTkzaDQ0MS43MjI2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjguOTYwOTM4IDExMi41MjczNDRjNC4xNDQ1MzEgMCA3LjUtMy4zNTkzNzUgNy41LTcuNXYtNDEuMTM2NzE5YzAtMTYuMzE2NDA2LTEzLjI3MzQzOC0yOS41OTM3NS0yOS41ODk4NDQtMjkuNTkzNzVoLTE3Ny4yODEyNWMtMTYuMzE2NDA2IDAtMjkuNTg5ODQ0IDEzLjI3MzQzNy0yOS41ODk4NDQgMjkuNTkzNzV2MTE3LjI3NzM0NGMwIDE2LjMxNjQwNiAxMy4yNzM0MzggMjkuNTg5ODQzIDI5LjU4OTg0NCAyOS41ODk4NDNoMTc3LjI4MTI1YzE2LjMxNjQwNiAwIDI5LjU5Mzc1LTEzLjI3MzQzNyAyOS41OTM3NS0yOS41ODk4NDN2LTQxLjE0MDYyNWMwLTQuMTQwNjI1LTMuMzU5Mzc1LTcuNS03LjUwMzkwNi03LjUtNC4xNDA2MjYgMC03LjUgMy4zNTkzNzUtNy41IDcuNXY0MS4xNDA2MjVjMCA4LjA0Mjk2OS02LjU0Njg3NiAxNC41ODk4NDMtMTQuNTg5ODQ0IDE0LjU4OTg0M2gtMTc3LjI4MTI1Yy04LjA0Mjk2OSAwLTE0LjU4OTg0NC02LjU0Njg3NC0xNC41ODk4NDQtMTQuNTg5ODQzdi0xMTcuMjc3MzQ0YzAtOC4wNDY4NzUgNi41NDY4NzUtMTQuNTkzNzUgMTQuNTg5ODQ0LTE0LjU5Mzc1aDE3Ny4yODEyNWM4LjA0Mjk2OCAwIDE0LjU4OTg0NCA2LjU0Njg3NSAxNC41ODk4NDQgMTQuNTkzNzV2NDEuMTM2NzE5YzAgNC4xNDA2MjUgMy4zNTkzNzQgNy41IDcuNSA3LjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNC43NzM0MzggNjEuNTcwMzEyYy00LjE0NDUzMiAwLTcuNSAzLjM1OTM3Ni03LjUgNy41djEwNi45MTQwNjNjMCA0LjE0NDUzMSAzLjM1NTQ2OCA3LjUgNy41IDcuNWgxNjYuOTE0MDYyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY5IDcuNS03LjV2LTEwNi45MTQwNjNjMC00LjE0MDYyNC0zLjM1NTQ2OS03LjUtNy41LTcuNXptMTU5LjQxNDA2MiAxMDYuOTE0MDYzaC0xNTEuOTE0MDYydi05MS45MTQwNjNoMTUxLjkxNDA2MnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==","Front Yard":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMTI2LjQ5LDM2Ljk0N2MtMzEuNTc5LDAtNTcuMjcsMjUuNjkxLTU3LjI3LDU3LjI3YzAsMzEuNTc5LDI1LjY5MSw1Ny4yNyw1Ny4yNyw1Ny4yN2MzMS41NzgsMCw1Ny4yNy0yNS42OTEsNTcuMjctNTcuMjcKCQkJQzE4My43NjEsNjIuNjM4LDE1OC4wNywzNi45NDcsMTI2LjQ5LDM2Ljk0N3ogTTEyNi40OSwxMzEuNDg3Yy0yMC41NTEsMC0zNy4yNy0xNi43MTktMzcuMjctMzcuMjcKCQkJYzAtMjAuNTUxLDE2LjcxOS0zNy4yNywzNy4yNy0zNy4yN2MyMC41NSwwLDM3LjI3LDE2LjcxOSwzNy4yNywzNy4yN0MxNjMuNzYxLDExNC43NjgsMTQ3LjA0MiwxMzEuNDg3LDEyNi40OSwxMzEuNDg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMFYxMEMxMzYuNDksNC40NzcsMTMyLjAxNCwwLDEyNi40OSwweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMTU2LjA5N2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMHYtMTIuMzM4CgkJCUMxMzYuNDksMTYwLjU3NCwxMzIuMDE0LDE1Ni4wOTcsMTI2LjQ5LDE1Ni4wOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMC43MDgsODQuMjE3SDE5OC4zN2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzhjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCQlTMjE2LjIzLDg0LjIxNywyMTAuNzA4LDg0LjIxN3oiLz4KICAgICAgICA8cGF0aCBkPSJNNTQuNjEsODQuMjE3SDQyLjI3MmMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzljNS41MjMsMCwxMC00LjQ3Nyw5Ljk5OS0xMAoJCQlDNjQuNjEsODguNjk0LDYwLjEzNCw4NC4yMTcsNTQuNjEsODQuMjE3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMDAuOTc3LDE5LjcyOWMtMy45MDUtMy45MDUtMTAuMjM3LTMuOTA1LTE0LjE0MiwwbC05Ljg3Nyw5Ljg3N2MtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzCgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOWMyLjU1OSwwLDUuMTE5LTAuOTc2LDcuMDcxLTIuOTI5bDkuODc3LTkuODc3QzIwNC44ODMsMjkuOTY2LDIwNC44ODMsMjMuNjM0LDIwMC45NzcsMTkuNzI5CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIzLDE0NC42ODVjLTMuOTA2LTMuOTA1LTEwLjIzOC0zLjkwNS0xNC4xNDMsMGwtOS44NzcsOS44NzdjLTMuOTA1LDMuOTA2LTMuOTA1LDEwLjIzOCwwLDE0LjE0MwoJCQljMS45NTIsMS45NTMsNC41MTIsMi45MjksNy4wNzEsMi45MjlzNS4xMTktMC45NzYsNy4wNzItMi45MjlsOS44NzctOS44NzdDNzkuOTI4LDE1NC45MjIsNzkuOTI4LDE0OC41OSw3Ni4wMjMsMTQ0LjY4NXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIxLDI5LjYwNmwtOS44NzctOS44NzdjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDIsMGMtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzbDkuODc3LDkuODc3CgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOXM1LjExOS0wLjk3Niw3LjA3MS0yLjkyOUM3OS45MjcsMzkuODQzLDc5LjkyNywzMy41MTEsNzYuMDIxLDI5LjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDU5LjU0LDQ2OC4zODljLTAuMTI5LTAuNjQtMC4zMi0xLjI3LTAuNTctMS44N2MtMC4yNS0wLjYtMC41Ni0xLjE4LTAuOTItMS43MmMtMC4zNi0wLjU1LTAuNzgtMS4wNi0xLjI0LTEuNTMKCQkJYy0wLjQ2LTAuNDYtMC45Ny0wLjg3LTEuNTItMS4yNGMtMC41NC0wLjM2LTEuMTItMC42Ny0xLjczLTAuOTJjLTAuNTk5LTAuMjUtMS4yMjktMC40NC0xLjg3LTAuNTdjLTEuMjktMC4yNi0yLjYyLTAuMjYtMy45MDksMAoJCQljLTAuNjMxLDAuMTMtMS4yNjEsMC4zMi0xLjg3LDAuNTdjLTAuNjAxLDAuMjUtMS4xODEsMC41Ni0xLjcyMSwwLjkyYy0wLjU1LDAuMzctMS4wNiwwLjc4LTEuNTIsMS4yNAoJCQljLTAuNDYsMC40Ny0wLjg4LDAuOTgtMS4yNSwxLjUzYy0wLjM2LDAuNTQtMC42NywxLjEyLTAuOTIsMS43MmMtMC4yNSwwLjYtMC40NCwxLjIzLTAuNTcsMS44NwoJCQljLTAuMTMsMC42NTEtMC4xOSwxLjMwMS0wLjE5LDEuOTYxYzAsMC42NSwwLjA2LDEuMzEsMC4xOSwxLjk1YzAuMTMsMC42NCwwLjMyLDEuMjcsMC41NywxLjg3YzAuMjUsMC42LDAuNTYsMS4xOCwwLjkyLDEuNzMKCQkJYzAuMzcsMC41NCwwLjc5LDEuMDYsMS4yNSwxLjUyYzAuNDYsMC40NiwwLjk3LDAuODgsMS41MiwxLjI0YzAuNTQsMC4zNiwxLjEyLDAuNjcsMS43MjEsMC45MmMwLjYwOSwwLjI1LDEuMjM5LDAuNDQsMS44NywwLjU3CgkJCWMwLjY1LDAuMTMsMS4zMSwwLjIsMS45NiwwLjJjMC42NSwwLDEuMzEtMC4wNywxLjk0OS0wLjJjMC42NDEtMC4xMywxLjI3LTAuMzIsMS44Ny0wLjU3YzAuNjEtMC4yNSwxLjE5LTAuNTYsMS43My0wLjkyCgkJCWMwLjU1LTAuMzYsMS4wNi0wLjc4LDEuNTItMS4yNGMwLjQ2LTAuNDYsMC44OC0wLjk4LDEuMjQtMS41MmMwLjM2MS0wLjU1LDAuNjctMS4xMywwLjkyLTEuNzNjMC4yNS0wLjYsMC40NC0xLjIzLDAuNTctMS44NwoJCQlzMC4yLTEuMywwLjItMS45NUM0NTkuNzQsNDY5LjY4OSw0NTkuNjcsNDY5LjAzOSw0NTkuNTQsNDY4LjM4OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjczOSw0NjAuMzQ2SDYyLjEzOGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgzNDcuNmM1LjUyMywwLDEwLTQuNDc3LDEwLjAwMS0xMAoJCQlDNDE5LjczOSw0NjQuODIzLDQxNS4yNjEsNDYwLjM0Niw0MDkuNzM5LDQ2MC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMS41NjMsNDI3LjkzMWgtNi44MDljLTMuODA2LTIxLjMxMi0yMi40NzYtMzcuNTQtNDQuODY0LTM3LjU0Yy0zLjMsMC02LjU5MSwwLjM2Mi05LjgwMywxLjA2N1YyOTMuMjkKCQkJYzM2LjQ4Mi00LjkwMiw2NC43MDQtMzYuMjM2LDY0LjcwNC03NC4wMzdjMC0xOS43MDktNy43ODEtMzguNTMxLTIxLjUyNC01Mi40NjRjMC4xODYtMS44MTQsMC4yNzgtMy42NDEsMC4yNzgtNS40NjgKCQkJYzAtMjkuNDc3LTIzLjk4MS01My40NTgtNTMuNDU4LTUzLjQ1OGMtMjkuNDc3LDAtNTMuNDU4LDIzLjk4Mi01My40NTgsNTMuNDU4YzAsMS44MjcsMC4wOTMsMy42NTMsMC4yNzcsNS40NjcKCQkJYy0xMy43NDEsMTMuOTM0LTIxLjUyMywzMi43NTYtMjEuNTIzLDUyLjQ2NWMwLDM3LjgwMiwyOC4yMjMsNjkuMTM2LDY0LjcwNCw3NC4wMzd2ODkuNjJjLTQuNjg1LTEuNjMyLTkuNzE2LTIuNTItMTQuOTUxLTIuNTIKCQkJYy0yNS4xMjksMC00NS41NzMsMjAuNDQ0LTQ1LjU3Myw0NS41NzR2MS45NjhoLTguNTA2di0zNS4xM2gwLjAwMWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi00M2MwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC0wLjAwMQoJCQl2LTQ3LjMyOWMwLTIuODQ0LTEuMjExLTUuNTUzLTMuMzMtNy40NUwzMTYuMjcsMjQ2Ljg2Yy0zLjc5Ny0zLjM5OS05LjU0My0zLjM5OS0xMy4zNCwwbC0yNC43ODcsMjIuMTkxbC0yNC43ODgtMjIuMTkxCgkJCWMtMy43OTctMy4zOTgtOS41NDMtMy4zOTgtMTMuMzQsMGwtMjQuNzg4LDIyLjE5MWwtMjQuNzg4LTIyLjE5MWMtMy43OTctMy4zOTktOS41NDMtMy4zOTktMTMuMzQsMC4wMDFsLTI0Ljc4NywyMi4xOTEKCQkJbC0yNC43ODgtMjIuMTkxYy0zLjc5Ny0zLjM5OC05LjU0My0zLjM5OC0xMy4zNCwwTDg5LjM5OCwyNjkuMDVMNjQuNjEsMjQ2Ljg1OWMtMy43OTYtMy4zOTktOS41NDMtMy4zOTktMTMuMzQtMC4wMDEKCQkJbC0zMS40NTgsMjguMTYzYy0yLjExOSwxLjg5Ny0zLjMzLDQuNjA2LTMuMzMsNy40NTF2NDcuMzI5aC0wLjAwMWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHY0M2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDAuMDAxCgkJCXYzNS4xM2gtNi4wNDRjLTUuNTIzLDAtMTAsNC40NzctMTAsMTBWNTAyYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDkxLjEyM2M1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi02NC4wNjkKCQkJQzUxMS41NjMsNDMyLjQwOCw1MDcuMDg1LDQyNy45MzEsNTAxLjU2Myw0MjcuOTMxeiBNNDQ5Ljg5LDQxMC4zOTFjMTEuMjk2LDAsMjAuOTA1LDcuMzYyLDI0LjI4MSwxNy41NGgtMjMuNDYydi0xLjk2OAoJCQljMC01LjQ0MS0wLjk1OS0xMC42NjItMi43MTYtMTUuNTA0QzQ0OC42Miw0MTAuNDE0LDQ0OS4yNTMsNDEwLjM5MSw0NDkuODksNDEwLjM5MXogTTQyMC4wODcsMTg1LjU3NHYzMy4xMThsLTEwLjQwNy0xMC40MDcKCQkJYy0zLjkwNi0zLjkwNC0xMC4yMzYtMy45MDQtMTQuMTQzLDBjLTMuOTA1LDMuOTA1LTMuOTA1LDEwLjIzNywwLDE0LjE0M2wyMy4yNTcsMjMuMjU3YzAuNDA3LDAuNDA2LDAuODM5LDAuNzcsMS4yOTMsMS4wOTEKCQkJdjI2LjI2NWMtMjUuNDA1LTQuNzEyLTQ0LjcwNC0yNy4wMzktNDQuNzA0LTUzLjc4OWMwLTE1LjgxNiw2Ljg0NS0zMC44NTQsMTguNzc4LTQxLjI1NmMyLjc0LTIuMzg4LDMuOTY5LTYuMDc1LDMuMjA5LTkuNjI5CgkJCWMtMC40OTItMi4yOTktMC43NDEtNC42Ny0wLjc0MS03LjA0N2MwLTE4LjQ0OSwxNS4wMDktMzMuNDU4LDMzLjQ1OC0zMy40NThjMTguNDQ5LDAsMzMuNDU4LDE1LjAwOSwzMy40NTgsMzMuNDU4CgkJCWMwLDIuMzc4LTAuMjQ5LDQuNzQ4LTAuNzQxLDcuMDQ1Yy0wLjc2MiwzLjU1NSwwLjQ2Nyw3LjI0MywzLjIwOCw5LjYzMmMxMS45MzUsMTAuNDAzLDE4Ljc3OSwyNS40NCwxOC43NzksNDEuMjU2CgkJCWMwLDI2Ljc1LTE5LjI5OSw0OS4wNzYtNDQuNzA0LDUzLjc4OHYtMjYuMjY1YzAuNDUzLTAuMzIyLDAuODg3LTAuNjg1LDEuMjkzLTEuMDkxbDIzLjI1Ny0yMy4yNTcKCQkJYzMuOTA1LTMuOTA1LDMuOTA1LTEwLjIzNywwLTE0LjE0M2MtMy45MDYtMy45MDQtMTAuMjM2LTMuOTA0LTE0LjE0MywwbC0xMC40MDcsMTAuNDA3di0zMy4xMThjMC01LjUyMy00LjQ3OC0xMC0xMC0xMAoJCQlDNDI0LjU2NCwxNzUuNTc0LDQyMC4wODcsMTgwLjA1MSw0MjAuMDg3LDE4NS41NzR6IE0zNzkuNTYzLDQyNS45NjNjMC0xNC4xMDIsMTEuNDcyLTI1LjU3NCwyNS41NzMtMjUuNTc0CgkJCWMxNC4xMDIsMCwyNS41NzMsMTEuNDcyLDI1LjU3MywyNS41NzR2MS45NjhoLTUxLjE0NlY0MjUuOTYzeiBNMjg4LjE0MywyODYuOTQxbDIxLjQ1Ny0xOS4yMWwyMS40NTcsMTkuMjFWMzI5LjhoLTQyLjkxNFYyODYuOTQxCgkJCXogTTIyNS4yMjcsMjg2Ljk0MWwyMS40NTgtMTkuMjFsMjEuNDU3LDE5LjIxVjMyOS44aC00Mi45MTVWMjg2Ljk0MXogTTE2Mi4zMTMsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44aC00Mi45MTUKCQkJVjI4Ni45NDF6IE05OS4zOTgsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44SDk5LjM5OFYyODYuOTQxeiBNMzYuNDgzLDI4Ni45NDFsMjEuNDU3LTE5LjIxbDIxLjQ1NywxOS4yMVYzMjkuOAoJCQlIMzYuNDgzVjI4Ni45NDF6IE0yNi40ODIsMzQ5LjgwMWgzMTQuNTc1djIzSDI2LjQ4MlYzNDkuODAxeiBNMzMxLjA1NywzOTIuODAxdjM1LjEzaC00Mi45MTR2LTM1LjEzSDMzMS4wNTd6IE0yNjguMTQzLDM5Mi44MDEKCQkJdjM1LjEzaC00Mi45MTV2LTM1LjEzSDI2OC4xNDN6IE0yMDUuMjI3LDM5Mi44MDF2MzUuMTNoLTQyLjkxNXYtMzUuMTNIMjA1LjIyN3ogTTE0Mi4zMTMsMzkyLjgwMXYzNS4xM0g5OS4zOTh2LTM1LjEzSDE0Mi4zMTN6CgkJCSBNNzkuMzk4LDM5Mi44MDF2MzUuMTNIMzYuNDgzdi0zNS4xM0g3OS4zOTh6IE0yMC40MzgsNDkydi00NC4wNjloNDcxLjEyM1Y0OTJIMjAuNDM4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzguNDg3LDEyNy44NDNjLTAuNTU2LDAtMS4xMTIsMC4wMTEtMS42NjgsMC4wMzNjLTcuNTQzLTE0LjQyLTIyLjUxOS0yMy45MjMtMzguODk0LTIzLjkyMwoJCQljLTIwLjU4NywwLTM4LjA0NywxNC42ODMtNDIuNzczLDM0LjM0NmMtMTkuNzgzLDEuOTMtMzUuMzA5LDE5LjAwMS0zNS4zMDksMzkuNzA3YzAsMjEuOTk0LDE3LjUxNywzOS44ODcsMzkuMDQ4LDM5Ljg4N2g3OS41OTYKCQkJYzI0LjI4NSwwLDQ0LjA0MS0yMC4xOTgsNDQuMDQxLTQ1LjAyNUMzMjIuNTI3LDE0OC4wNDEsMzAyLjc3MSwxMjcuODQzLDI3OC40ODcsMTI3Ljg0M3ogTTI3OC40ODcsMTk3Ljg5M2gtNzkuNTk2CgkJCWMtMTAuNTAzLDAtMTkuMDQ4LTguOTIxLTE5LjA0OC0xOS44ODdjMC0xMC45NjcsOC41NDUtMTkuODg4LDE5LjA0OC0xOS44ODhjMS4wNTYsMCwyLjE0OCwwLjA5OSwzLjI0NCwwLjI5NgoJCQljMi44OTMsMC41MTYsNS44Ny0wLjI2Nyw4LjEzNS0yLjE0MWMyLjI2NS0xLjg3NSwzLjU5LTQuNjUyLDMuNjIzLTcuNTkyYzAuMTUzLTEzLjYzNSwxMC45MzMtMjQuNzI4LDI0LjAzMi0yNC43MjgKCQkJYzEwLjYzOCwwLDE5Ljg3Nyw3LjEwOCwyMi45ODgsMTcuNjg5YzEuNTExLDUuMTM1LDYuNzk0LDguMTczLDExLjk5NCw2Ljg4NmMxLjgzOC0wLjQ1NCwzLjcxNS0wLjY4NCw1LjU4LTAuNjg0CgkJCWMxMy4yNTYsMCwyNC4wNDEsMTEuMjI2LDI0LjA0MSwyNS4wMjVDMzAyLjUyNywxODYuNjY3LDI5MS43NDMsMTk3Ljg5MywyNzguNDg3LDE5Ny44OTN6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gallery:hxe,Garage:zxe,Garden:wxe,"Ground Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgIGQ9Ik0yOTkuNjY4LDIzMS41NzJoLTMuMzM4di02NS43NDZjMC01LjcyNC00LjY1Ny0xMC4zOC0xMC4zOC0xMC4zOGgtNTkuMzU1Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAuMDAxLDQuMDI0LDMuMjYzLDcuMjg3LDcuMjg3LDcuMjg3aDg2Ljc5MWM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMzMDYuOTU1LDIzNC44MzUsMzAzLjY5MywyMzEuNTcyLDI5OS42NjgsMjMxLjU3MnogTTI4MS43NTgsMjMxLjU3M2gtNTAuOTd2LTYxLjU1NGg1MC45N1YyMzEuNTczeiIvPgogICAgICAgIDxwYXRoIG9wYWNpdHk9IjAuMjUiICBkPSJNNDEyLjU3MiwyMzEuNTcyaC0zLjMzOHYtNjUuNzQ2YzAtNS43MjQtNC42NTctMTAuMzgtMTAuMzc5LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g4Ni43OTFjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDE5Ljg1OSwyMzQuODM1LDQxNi41OTcsMjMxLjU3Miw0MTIuNTcyLDIzMS41NzJ6IE0zOTQuNjYxLDIzMS41NzNoLTUwLjk3di02MS41NTRoNTAuOTdWMjMxLjU3M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTgyLjgxMyw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTUsNC41MjktMTAuMDk1LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0aDU5LjUwNGg3LjgxNGM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMxOTAuMSw0MTcuMDk1LDE4Ni44MzgsNDEzLjgzMywxODIuODEzLDQxMy44MzN6IE0xNjcuNzEyLDQxMy44MzNoLTQ0LjkzMXYtNTUuNTY3aDQ0LjkzMVY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDQuMzE0LDQxMy44MzNoLTAuNTI4di02MC4wNDVjMC01LjU2Ni00LjUyOS0xMC4wOTUtMTAuMDk1LTEwLjA5NWgtNTMuODg2Yy01LjU2NiwwLTEwLjA5Niw0LjUyOS0xMC4wOTYsMTAuMDk1djYwLjA0NQoJCQloLTAuNTI4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjUsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoNy44MTRIMzk2LjVoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDExLjYwMSw0MTcuMDk1LDQwOC4zMzksNDEzLjgzMyw0MDQuMzE0LDQxMy44MzN6IE0zODkuMjEzLDQxMy44MzNoLTQ0LjkzMnYtNTUuNTY3aDQ0LjkzMlY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzYuNTQ1LDQwNS4wODljLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MTIuNjNjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4NwoJCQljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtMTIuNjNDMjgzLjgzMiw0MDguMzUyLDI4MC41Nyw0MDUuMDg5LDI3Ni41NDUsNDA1LjA4OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==","Guest Bathroom":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMuNjE4IDYyLTIuNzE4LTUuNDQ3YTEgMSAwIDAgMCAtLjktLjU1M2gtMXYtMzBoM3YtMmgtM3YtMTlhNS4wMDYgNS4wMDYgMCAwIDAgLTUtNWgtMTRhNS4wMDYgNS4wMDYgMCAwIDAgLTUgNXYxYTMgMyAwIDAgMCAtMyAzdjFoLTVhMyAzIDAgMCAwIC0zIDN2MmExIDEgMCAwIDAgMSAxaDE1di0yaC0xNHYtMWExIDEgMCAwIDEgMS0xaDE4YTEgMSAwIDAgMSAxIDF2MWgtNHYyaDVhMSAxIDAgMCAwIDEtMXYtMmEzIDMgMCAwIDAgLTMtM2gtNXYtMWEzIDMgMCAwIDAgLTMtM3YtMWEzIDMgMCAwIDEgMy0zaDE0YTMgMyAwIDAgMSAzIDN2MTloLTV2Mmg1djE0aC0zdi0yaC0ydjZoMnYtMmgzdjE0aC0xYTEgMSAwIDAgMCAtLjkuNTUzbC0yLjcxOCA1LjQ0N2gtNTIuMzgydjJoNjR2LTJ6bS0yNS42MTgtNTN2MWgtNHYtMWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXptMTguNjE4IDQ5aDIuNzY0bDIgNGgtNi43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI5IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDM0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMyAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDEgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDI0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAyOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDE4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMThoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI1IDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAxOGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIgMzcuOTg3djE5LjAxM2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTE5LjFsMi0uMDEzdjIuMTEzaDJ2LTZoLTJ2MS44ODJsLTE4LjAwNi4xMTguMDEyIDJ6bTIgMTIuMDEzaDEwdjFoLTEwem0wIDZ2LTNoMTB2M3ptMTAtOGgtMTB2LTEwLjAyNmwxMC0uMDY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyOWM0LjQ4NiAwIDgtNS4yNzEgOC0xMnMtMy41MTQtMTItOC0xMi04IDUuMjcxLTggMTIgMy41MTQgMTIgOCAxMnptMC0yMmMzLjI1MiAwIDYgNC41NzkgNiAxMHMtMi43NDggMTAtNiAxMC02LTQuNTc5LTYtMTAgMi43NDgtMTAgNi0xMHoiLz4KICAgICAgICA8cGF0aCBkPSJtNS4wOTUgMTMuNWg3LjgxdjJoLTcuODF6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzY4IC0uNjQgLjY0IC43NjggLTcuMTk3IDkuMTIyKSIvPgogICAgICAgIDxwYXRoIGQ9Im03LjA5NSAxOC41aDcuODF2MmgtNy44MXoiIHRyYW5zZm9ybT0ibWF0cml4KC43NjggLS42NCAuNjQgLjc2OCAtOS45MzQgMTEuNTYyKSIvPgogICAgPC9nPgo8L3N2Zz4=","Guest Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NTYsMzI4YTQwLjAzNyw0MC4wMzcsMCwwLDAtOCwuODA0OTNWMTQ0YTcuOTc1MjIsNy45NzUyMiwwLDAsMC0yLjM0MzgxLTUuNjU3NDcsMTQuNjQ1MzUsMTQuNjQ1MzUsMCwwLDEsMC0yMC42ODUwNkE3Ljk3NTIyLDcuOTc1MjIsMCwwLDAsNDQ4LDExMlY4OGg0MGE3Ljk5OTQ2LDcuOTk5NDYsMCwwLDAsNi45NDU4LTExLjk2ODc1bC0zMi01NkE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAsNDU2LDE2SDM4NGE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAtNi45NDU4LDQuMDMxMjVsLTMyLDU2QTcuOTk5NDYsNy45OTk0NiwwLDAsMCwzNTIsODhoNDB2MjRhNy45NzUyMiw3Ljk3NTIyLDAsMCwwLDIuMzQzODEsNS42NTc0NywxNC42NDUzNSwxNC42NDUzNSwwLDAsMSwwLDIwLjY4NTA2QTcuOTc1MjIsNy45NzUyMiwwLDAsMCwzOTIsMTQ0VjMyMEgzMTJWMjg4aDI0YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMjQ4YTguMDAwMDgsOC4wMDAwOCwwLDAsMC04LThIMzEyVjIxNmg0OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAsOC04VjExMmE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDIwOGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djk2YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhoNDh2MjRIMjA1LjQxNjA4bC0xMy42MDU1My0zNC4wMTQ2NS00Ljk3NDEyLTM5Ljc5M0E1Ni41MzE0OCw1Ni41MzE0OCwwLDAsMCwxODQsMTU0LjI2VjgwQTY0LDY0LDAsMCwwLDU2LDgwdjUyLjgyODYxQTU2LjA0MTkzLDU2LjA0MTkzLDAsMCwwLDMzLjU5NDI0LDE2MS45MTlsLTE3LjE4MzYsNTEuNTUwNzhhNy45OTgsNy45OTgsMCwwLDAtLjE3MTg3LDQuNDcwN2w1LjU5MTM3LDIyLjM2NTQ4QTcuOTk3NDUsNy45OTc0NSwwLDAsMCwxNiwyNDhWNDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhINDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMzY4QTQwLjA0NTUyLDQwLjA0NTUyLDAsMCwwLDQ1NiwzMjhabTI0LDQwdjU2SDQzMlYzNjhhMjQsMjQsMCwwLDEsNDgsMFpNMjY0LDQyNFY0MDBhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgtOEg0MDhhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgsOHYyNFpNOTYsNDI0VjQwMGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOC04SDI0MGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOCw4djI0Wm0zMjAtODB2MzMuMzc2MjJBMjMuODgyMTIsMjMuODgyMTIsMCwwLDAsNDA4LDM3NkgyNzJhMjMuOTAxMTEsMjMuOTAxMTEsMCwwLDAtMTYsNi4xMzA4NkEyMy45MDExMSwyMy45MDExMSwwLDAsMCwyNDAsMzc2SDEwNGEyMy44ODIxMiwyMy44ODIxMiwwLDAsMC04LDEuMzc2MjJWMzQ0YTguMDA5MTcsOC4wMDkxNywwLDAsMSw4LThINDA4QTguMDA5MTcsOC4wMDkxNywwLDAsMSw0MTYsMzQ0Wm0xMC40NTE3Mi0yMDhINDEzLjU0ODI4YTMwLjg0MzUxLDMwLjg0MzUxLDAsMCwwLDAtMTZoMTIuOTAzNDRBMzAuODQzNTEsMzAuODQzNTEsMCwwLDAsNDI2LjQ1MTcyLDEzNlpNMzg4LjY0MjU4LDMyaDYyLjcxNDg0bDIyLjg1Njk0LDQwSDM2NS43ODU2NFpNNDMyLDg4djE2SDQwOFY4OFptLTI0LDY0aDI0VjMzNi4wMjJjLS4zNjYzMy4yNzU2NC0uNzI0MTguNTYyLTEuMDgwNjkuODQ5NjFBMjQuMDQzNjksMjQuMDQzNjksMCwwLDAsNDA4LDMyMFpNMjk2LDMyMEgxMDRhMjQuMDQzNjksMjQuMDQzNjksMCwwLDAtMjIuOTE5MzEsMTYuODcxNThBMzkuOSwzOS45LDAsMCwwLDMyLDMzNi4wMjJWMjg4SDI5NlptMzItNDhIMzJWMjU2SDMyOFpNNzIsMjQwSDY0VjIyNS41NDFsNy4zMTY4OS0xOC4yOTJMNzIsMjA5LjI5Nzg1Wm04OC0uMDAwMjQuMDAwMjQuMDAwMjRIMTYwWk0yMTYsMjAwVjEyMEgzNTJ2ODBIMzEyVjE2OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDI2NGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djMyWm01Ni0yNGgyNHY2NEgyNzJaTTEyMCwzMmE0OC4wNTQsNDguMDU0LDAsMCwxLDQ4LDQ4djUwLjg1MzUyYTU2LjcyNTYyLDU2LjcyNTYyLDAsMCwwLTcuOTE5OTItNS43MzUzNmwtMTEuNDQxNjUtNi44NjVBMzEuNzk0MDUsMzEuNzk0MDUsMCwwLDAsMTUyLDEwNFY4MGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04aC02LjExMTMzYTIwLjgzMDUzLDIwLjgzMDUzLDAsMCwxLTE4LjczMzQtMTEuNTc4MTIsOC4wMDA2NCw4LjAwMDY0LDAsMCwwLTEyLjgxMi0yLjA3OTExbC0xNiwxNkE4LjAwMDc2LDguMDAwNzYsMCwwLDAsODgsODB2MjRhMzEuODAxODgsMzEuODAxODgsMCwwLDAsMi43NTc1MSwxMi45NzExOUw3MiwxMjUuMDFWODBBNDguMDU0LDQ4LjA1NCwwLDAsMSwxMjAsMzJabTE2LDcyYTE2LDE2LDAsMCwxLTMyLDBWODMuMzEzNDhsNi45NDY3OC02Ljk0NjI5QTM2LjY5ODE2LDM2LjY5ODE2LDAsMCwwLDEzNiw4Ny45NTMxMlptLTM0Ljc3MTkxLDI1Ljg5MjA5YTMxLjkxNjEzLDMxLjkxNjEzLDAsMCwwLDM2LjcwNDQ3LjU5NzE3bDEuMjM3MTguNzQyNDNMMTIwLDE1NS4xOTMzNmwtMTkuODY2MjctMjQuODMyMjhaTTQ4Ljc3MywxNjYuOTc5NDlBNDAuMDM1MzgsNDAuMDM1MzgsMCwwLDEsNzAuOTYzODcsMTQyLjg2MjNsMTMuOTExNjItNS45NjE5MSwyOC44Nzc0NCwzNi4wOTY2OGE3Ljk5OTQzLDcuOTk5NDMsMCwwLDAsMTIuNDk0MTQsMEwxNTIuOTksMTM5LjU2ODM2YTM5LjcyNzc5LDM5LjcyNzc5LDAsMCwxLDE3Ljk2OTQ4LDI4LjYwODRsNS4xMDI1NCw0MC44MTU0M2E3Ljk4MjgxLDcuOTgyODEsMCwwLDAsLjUxMDI2LDEuOTc4NTFMMTg4LjE4MzU5LDI0MEgxODBsLTIwLTI2LjY2N1YyMDEuODA2NjRhNTAuODIzMzgsNTAuODIzMzgsMCwwLDAsMS45MzI2Mi0zNy4zMDc2MmwtMi4zNDMyNi03LjAyOTI5LTE1LjE3ODcyLDUuMDYwNTQsMi4zNDMyNyw3LjAyOTNhMzQuOTU1MTMsMzQuOTU1MTMsMCwwLDEtMS45MDkxOCwyNi44NjIzMUE3Ljk5OTM0LDcuOTk5MzQsMCwwLDAsMTQ0LDIwMHY0MEg4OFYyMDhhOC4wMDY0Myw4LjAwNjQzLDAsMCwwLS40MTA2NC0yLjUzMDI3bC04LTI0YTguMDAwMDksOC4wMDAwOSwwLDAsMC0xNS4wMTcwOS0uNDQwNDNsLTE2LDQwQTcuOTk3MjMsNy45OTcyMywwLDAsMCw0OCwyMjR2MTZIMzguMjQ2MDlsLTUuOTE5OTItMjMuNjgwNjZaTTMyLDM2OGEyNCwyNCwwLDAsMSw0OCwwdjU2SDMyWk00ODAsNDgwSDMyVjQ0MEg0ODBaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gym:Cxe,Hall:Ixe,"Home Theater":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSIxIC00NCA1MTEuOTk4OTkgNTExIiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggZD0ibTI4Mi41MTk1MzEgMzMzLjk4ODI4MWMtNC4xNzE4NzUgMC03LjU0Njg3NSAzLjM3ODkwNy03LjU0Njg3NSA3LjU0Njg3NSAwIDQuMTY3OTY5IDMuMzc1IDcuNTQ2ODc1IDcuNTQ2ODc1IDcuNTQ2ODc1aDExNC4zMzk4NDRjNy4wODIwMzEgMCAxMi44NDM3NS01Ljc2MTcxOSAxMi44NDM3NS0xMi44NDc2NTZ2LTE5MS45Mjk2ODdjMC03LjA4MjAzMi01Ljc2MTcxOS0xMi44NDc2NTctMTIuODQzNzUtMTIuODQ3NjU3aC0yODEuNzE4NzVjLTcuMDgyMDMxIDAtMTIuODQzNzUgNS43NjU2MjUtMTIuODQzNzUgMTIuODQ3NjU3djE5MS45Mjk2ODdjMCA3LjA4NTkzNyA1Ljc2MTcxOSAxMi44NDc2NTYgMTIuODQzNzUgMTIuODQ3NjU2aDEzNy4xOTE0MDZjNC4xNjc5NjkgMCA3LjU0Njg3NS0zLjM3ODkwNiA3LjU0Njg3NS03LjU0Njg3NSAwLTQuMTY3OTY4LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc1LTcuNTQ2ODc1aC0xMzQuOTQ1MzEydi0xODcuNDM3NWgyNzcuMjI2NTYydjE4Ny40Mzc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00OS4yNjE3MTkgODIuNzQyMTg4YzE1LjU4MjAzMSAwIDI4LjI2MTcxOS0xMi42Nzk2ODggMjguMjYxNzE5LTI4LjI1MzkwNyAwLTE1LjU4NTkzNy0xMi42Nzk2ODgtMjguMjYxNzE5LTI4LjI2MTcxOS0yOC4yNjE3MTktMTUuNTc4MTI1IDAtMjguMjUzOTA3IDEyLjY3NTc4Mi0yOC4yNTM5MDcgMjguMjYxNzE5IDAgMTUuNTc0MjE5IDEyLjY3NTc4MiAyOC4yNTM5MDcgMjguMjUzOTA3IDI4LjI1MzkwN3ptMC00MS40MjU3ODJjNy4yNjE3MTkgMCAxMy4xNjc5NjkgNS45MDYyNSAxMy4xNjc5NjkgMTMuMTcxODc1IDAgNy4yNTM5MDctNS45MDYyNSAxMy4xNjAxNTctMTMuMTY3OTY5IDEzLjE2MDE1Ny03LjI1MzkwNyAwLTEzLjE2MDE1Ny01LjkwNjI1LTEzLjE2MDE1Ny0xMy4xNjAxNTcgMC03LjI2NTYyNSA1LjkwNjI1LTEzLjE3MTg3NSAxMy4xNjAxNTctMTMuMTcxODc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxLjVjLTI3LjE2NDA2MiAwLTQ5LjI2OTUzMSAyMi4xMDU0NjktNDkuMjY5NTMxIDQ5LjI2OTUzMXY1Ni4zMDQ2ODhjLTUuNjUyMzQ0LTEuMzY3MTg4LTYuMDQyOTY5LS41MzUxNTctNTQuMzMyMDMxLS43NzczNDQtNC4xNjQwNjMgMC03LjU0Mjk2OSAzLjM4MjgxMy03LjU0Mjk2OSA3LjU0Njg3NXMzLjM3ODkwNiA3LjU0Njg3NSA3LjU0Mjk2OSA3LjU0Njg3NWg0Ny43MjI2NTZjNy43MzA0NjkgMCAxMy45MTQwNjMgNi4zMDQ2ODcgMTMuOTE0MDYzIDEzLjkxNDA2M3YyMTEuOTMzNTkzYzAgNy42NjQwNjMtNi4yNDYwOTQgMTMuOTE0MDYzLTEzLjkxNDA2MyAxMy45MTQwNjMtNTkuNDE3OTY5IDAtMjMxLjU1NDY4NyAwLTMwMS43MTg3NSAwLTcuNjY3OTY5IDAtMTMuOTE0MDYzLTYuMjUtMTMuOTE0MDYzLTEzLjkxNDA2MyAwLTEwLjc0NjA5MyAwLTIwNC41ODk4NDMgMC0yMTEuOTMzNTkzIDAtNS4yNzM0MzggMi45NTcwMzItOS44Nzg5MDcgNy4zMDQ2ODgtMTIuMjQ2MDk0IDUuODQzNzUtMy4xNzU3ODItNC4yNDIxODgtMS4wNDY4NzUgMjMwLjQyMTg3NS0xLjY2Nzk2OSA0LjE3NTc4MSAwIDcuNTQ2ODc1LTMuMzgyODEzIDcuNTQ2ODc1LTcuNTQ2ODc1cy0zLjM3MTA5NC03LjU0Njg3NS03LjU0Njg3NS03LjU0Njg3NWMtMjM2LjM1MTU2My4yNzM0MzctMjI0LjU1MDc4MS0uNjQ0NTMxLTIzMC40MjE4NzUuNzc3MzQ0di01Ni4zMDQ2ODhjMC0yNy4xNjQwNjItMjIuMTA1NDY5LTQ5LjI2OTUzMS00OS4yNjk1MzEtNDkuMjY5NTMxLTIyLjc2OTUzMSAwLTQyLjQ0OTIxOSAxNS40MzM1OTQtNDcuODYzMjgxIDM3LjUyNzM0NC0uOTg0Mzc2IDQuMDU0Njg3IDEuNSA4LjE0MDYyNSA1LjU0Mjk2OCA5LjEyNSA0LjA0Njg3NS45ODgyODEgOC4xMjg5MDYtMS40ODgyODIgOS4xMjUtNS41MzEyNSAzLjc0NjA5NC0xNS4zMjQyMTkgMTcuMzk4NDM4LTI2LjAzMTI1IDMzLjE5NTMxMy0yNi4wMzEyNSAxOC44NDM3NSAwIDM0LjE3NTc4MSAxNS4zMzU5MzcgMzQuMTc1NzgxIDM0LjE3OTY4N3Y2NS4zMTY0MDdjLTMuMTEzMjgxIDMuNTExNzE4LTUuMzkwNjI1IDcuNzczNDM3LTYuNTExNzE5IDEyLjQ4MDQ2OC0yLjY3MTg3NS0xMi44MjQyMTgtMTQuMDU4NTkzLTIyLjQ4ODI4MS0yNy42NjQwNjItMjIuNDg4MjgxLTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42Nzk2ODctMjguMjUzOTA3IDI4LjI1NzgxMyAwIDE1LjU3ODEyNCAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIxMDkzOCAyNi44NzEwOTMtMTkuNTMxMjV2NjEuMzk4NDM4Yy0zLjY4MzU5My0xMS4zMjAzMTMtMTQuMzM1OTM3LTE5LjUyNzM0NC0yNi44NzEwOTMtMTkuNTI3MzQ0LTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42NzU3ODEtMjguMjUzOTA3IDI4LjI1MzkwNiAwIDE1LjU4MjAzMSAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIwNzAzMSAyNi44NzEwOTMtMTkuNTMxMjV2NjEuNDAyMzQ0Yy0zLjY4MzU5My0xMS4zMjQyMTgtMTQuMzM1OTM3LTE5LjUzMTI1LTI2Ljg3MTA5My0xOS41MzEyNS0xNS41NzgxMjUgMC0yOC4yNTM5MDcgMTIuNjc1NzgyLTI4LjI1MzkwNyAyOC4yNTM5MDYgMCAxNS41ODIwMzIgMTIuNjc1NzgyIDI4LjI1NzgxMyAyOC4yNTM5MDcgMjguMjU3ODEzIDEyLjUzNTE1NiAwIDIzLjE4NzUtOC4yMDcwMzEgMjYuODcxMDkzLTE5LjUzMTI1djE3LjA4OTg0NGMtMjAuMTA1NDY4IDI1LjUzMTI1LTYxLjAzOTA2MiAxMS4xMjUtNjEuMDM5MDYyLTIxLjA5NzY1N3YtMjI1Ljg0Mzc1YzAtNC4xNzU3ODEtMy4zODI4MTItNy41NDY4NzQtNy41NDY4NzUtNy41NDY4NzQtNC4xNzU3ODEgMC03LjU0Njg3NSAzLjM3MTA5My03LjU0Njg3NSA3LjU0Njg3NHYyMjUuODQzNzVjMCAyNC42MDE1NjMgMTguMTIxMDk0IDQ1LjA1MDc4MiA0MS43MTg3NSA0OC42OTUzMTN2NjIuNTI3MzQ0aC0xOC45NjQ4NDRjLTQuMTY3OTY4IDAtNy41NDY4NzUgMy4zNzg5MDYtNy41NDY4NzUgNy41NDY4NzUgMCA0LjE2Nzk2OCAzLjM3ODkwNyA3LjU0Njg3NSA3LjU0Njg3NSA3LjU0Njg3NWg1My4wMTk1MzJjNC4xNjc5NjggMCA3LjU0Njg3NC0zLjM3ODkwNyA3LjU0Njg3NC03LjU0Njg3NSAwLTQuMTY3OTY5LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc0LTcuNTQ2ODc1aC0xOC45NjQ4NDR2LTYyLjUzMTI1YzcuMDQyOTY4LTEuMDg1OTM4IDEzLjU5NzY1Ni0zLjY2Nzk2OSAxOS4zMjQyMTgtNy40MTAxNTd2OS4xOTkyMTljMCAxNS45ODQzNzUgMTMuMDE5NTMyIDI5LjAwMzkwNyAyOS4wMDc4MTMgMjkuMDAzOTA3aDQ1LjgyMDMxM3YzNS44OTg0MzdjMCA2LjI4OTA2MyA1LjEwOTM3NCAxMS40MTAxNTYgMTEuMzk4NDM3IDExLjQxMDE1NmgyMS4xMjg5MDZjNi4yODkwNjMgMCAxMS4zOTg0MzgtNS4xMjEwOTMgMTEuMzk4NDM4LTExLjQxMDE1NnYtMzUuODk4NDM3aDEyMi4yMjY1NjJ2MzUuODk4NDM3YzAgNi4yODkwNjMgNS4xMDkzNzUgMTEuNDEwMTU2IDExLjM5ODQzOCAxMS40MTAxNTZoMjEuMTI4OTA2YzYuMjg5MDYzIDAgMTEuMzk4NDM3LTUuMTIxMDkzIDExLjM5ODQzNy0xMS40MTAxNTZ2LTM1Ljg5ODQzN2g0NS44MjAzMTNjMTUuOTg4MjgxIDAgMjkuMDA3ODEzLTEzLjAxOTUzMiAyOS4wMDc4MTMtMjkuMDAzOTA3di05LjE5OTIxOWM1LjcyNjU2MiAzLjc0MjE4OCAxMi4yODEyNSA2LjMyNDIxOSAxOS4zMjQyMTggNy40MTAxNTd2NjIuNTMxMjVoLTE4Ljk2NDg0NGMtNC4xNjc5NjggMC03LjU0Njg3NCAzLjM3ODkwNi03LjU0Njg3NCA3LjU0Njg3NSAwIDQuMTY3OTY4IDMuMzc4OTA2IDcuNTQ2ODc1IDcuNTQ2ODc0IDcuNTQ2ODc1aDUzLjAxOTUzMmM0LjE2Nzk2OCAwIDcuNTQ2ODc1LTMuMzc4OTA3IDcuNTQ2ODc1LTcuNTQ2ODc1IDAtNC4xNjc5NjktMy4zNzg5MDctNy41NDY4NzUtNy41NDY4NzUtNy41NDY4NzVoLTE4Ljk2NDg0NHYtNjIuNTI3MzQ0YzIzLjU5NzY1Ni0zLjY0NDUzMSA0MS43MTg3NS0yNC4wOTM3NSA0MS43MTg3NS00OC42OTUzMTN2LTI0NS45ODgyODFjMC0yNy4xNjQwNjItMjIuMDkzNzUtNDkuMjY5NTMxLTQ5LjI2MTcxOS00OS4yNjk1MzF6bS00MTMuNDc2NTYyIDE0NmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY0MDYyIDAtNy4yNTc4MTMgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY0MDYzLTEzLjE2NDA2MyA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjMgMCA3LjI1NzgxMi01LjkwNjI1IDEzLjE2NDA2Mi0xMy4xNjQwNjIgMTMuMTY0MDYyem0wIDc4Ljg1NTQ2OWMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0wIDc4Ljg1MTU2MmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0xMzAuNTM1MTU2IDEwMy4yNTM5MDdoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNjYuMTUyMzQ0IDBoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNTAuOTU3MDMxLTExMS43MDMxMjZjMCAzMi4yMzgyODItNDAuOTQxNDA2IDQ2LjYyMTA5NC02MS4wMzkwNjIgMjEuMDk3NjU3di0xNy4wODU5MzhjMy42ODM1OTMgMTEuMzIwMzEzIDE0LjMzNTkzNyAxOS41MjczNDQgMjYuODcxMDkzIDE5LjUyNzM0NCAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTMgMC0xNS41NzgxMjQtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMi0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTQ1MzFjMy42ODM1OTMgMTEuMzIwMzEyIDE0LjMzNTkzNyAxOS41MjczNDMgMjYuODcxMDkzIDE5LjUyNzM0MyAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTIgMC0xNS41NzgxMjUtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMS0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTg0MzhjMy42ODM1OTMgMTEuMzI0MjE5IDE0LjMzNTkzNyAxOS41MzEyNSAyNi44NzEwOTMgMTkuNTMxMjUgMTUuNTc4MTI1IDAgMjguMjUzOTA3LTEyLjY3NTc4MSAyOC4yNTM5MDctMjguMjU3ODEyIDAtMTUuNTc4MTI2LTEyLjY3NTc4Mi0yOC4yNTM5MDctMjguMjUzOTA3LTI4LjI1MzkwNy0xMy42MDU0NjkgMC0yNC45OTIxODcgOS42NjAxNTctMjcuNjY0MDYyIDIyLjQ4NDM3NS0xLjEyMTA5NC00LjcwNzAzMS0zLjM5ODQzOC04Ljk2ODc1LTYuNTExNzE5LTEyLjQ3NjU2MnYtNjUuMzIwMzEzYzAtMTguODQzNzUgMTUuMzMyMDMxLTM0LjE3OTY4NyAzNC4xNzk2ODgtMzQuMTc5Njg3IDE4Ljg0Mzc1IDAgMzQuMTY3OTY4IDE1LjMzNTkzNyAzNC4xNjc5NjggMzQuMTc5Njg3djI0NS45ODgyODF6bS00Ny4zMzIwMzEtNC43MTg3NWMwLTcuMjU3ODEyIDUuOTA2MjUtMTMuMTY0MDYyIDEzLjE2NDA2Mi0xMy4xNjQwNjIgNy4yNTc4MTMgMCAxMy4xNjQwNjMgNS45MDYyNSAxMy4xNjQwNjMgMTMuMTY0MDYyIDAgNy4yNjE3MTktNS45MDYyNSAxMy4xNjc5NjktMTMuMTY0MDYzIDEzLjE2Nzk2OS03LjI1NzgxMiAwLTEzLjE2NDA2Mi01LjkwNjI1LTEzLjE2NDA2Mi0xMy4xNjc5Njl6bTAtNzguODUxNTYyYzAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYyLTEzLjE2NDA2MiA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwNjI1IDEzLjE2NDA2MyAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjMgMTMuMTY3OTY5LTcuMjU3ODEyIDAtMTMuMTY0MDYyLTUuOTA2MjUtMTMuMTY0MDYyLTEzLjE2Nzk2OXptMC03OC44NTE1NjJjMC03LjI1NzgxMyA1LjkwNjI1LTEzLjE2NDA2MyAxMy4xNjQwNjItMTMuMTY0MDYzIDcuMjU3ODEzIDAgMTMuMTY0MDYzIDUuOTA2MjUgMTMuMTY0MDYzIDEzLjE2NDA2MyAwIDcuMjU3ODEyLTUuOTA2MjUgMTMuMTY0MDYyLTEzLjE2NDA2MyAxMy4xNjQwNjItNy4yNTc4MTIgMC0xMy4xNjQwNjItNS45MDYyNS0xMy4xNjQwNjItMTMuMTY0MDYyem0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxIDI2LjIyNjU2MmMtMTUuNTgyMDMxIDAtMjguMjU3ODEyIDEyLjY3NTc4Mi0yOC4yNTc4MTIgMjguMjU3ODEzIDAgMTUuNTc4MTI1IDEyLjY3NTc4MSAyOC4yNTM5MDYgMjguMjU3ODEyIDI4LjI1MzkwNiAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTM5MDYgMC0xNS41ODIwMzEtMTIuNjc1NzgyLTI4LjI1NzgxMy0yOC4yNTM5MDctMjguMjU3ODEzem0wIDQxLjQyMTg3NmMtNy4yNjE3MTkgMC0xMy4xNjc5NjktNS45MDYyNS0xMy4xNjc5NjktMTMuMTY0MDYzIDAtNy4yNjE3MTkgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY3OTY5LTEzLjE2NDA2MyA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwMjM0NCAxMy4xNjQwNjMgMTMuMTY0MDYzIDAgNy4yNTc4MTMtNS45MDYyNSAxMy4xNjQwNjMtMTMuMTY0MDYzIDEzLjE2NDA2M3ptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Kitchen:pxe,"Laundry Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgMmgtNThjLS41NTIgMC0xIC40NDgtMSAxdjU4YzAgLjU1Mi40NDggMSAxIDFoNThjLjU1MiAwIDEtLjQ0OCAxLTF2LTU4YzAtLjU1Mi0uNDQ4LTEtMS0xem0tMSA2aC00di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC02Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyaC0zYy0uNTUyIDAtMSAuNDQ4LTEgMXY5aC0ydi0xNGgxOHptLTEyLjE0MiAzMS0xLjY5Mi0xMWg5LjY2OWwtMS42OTIgMTF6bTEuMTQyLTEzYzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTguNzU5LjM0OWMtLjE5LS4yMjItLjQ2Ny0uMzQ5LS43NTktLjM0OWgtMmMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNGgtMmMtLjI5MiAwLS41NjkuMTI3LS43NTkuMzQ5cy0uMjc0LjUxNS0uMjI5LjgwM2wxLjgyMyAxMS44NDhoLTMuODM1di0xOWgxOHYxOWgtMy44MzVsMS44MjMtMTEuODQ4Yy4wNDUtLjI4OC0uMDM5LS41ODItLjIyOS0uODAzem0tNy43NTktMTcuMzQ5di0yaDR2MTFoLTR6bS0yIDloLTJ2LThoMnptOCAwdi04aDR2OHptLTE2LTE0djE0aC0ydi0xMGMwLS41NTItLjQ0OC0xLTEtMWgtNmMtLjU1MiAwLTEgLjQ0OC0xIDF2MTBoLTJ2LTdjMC0uMjY1LS4xMDUtLjUyLS4yOTMtLjcwN2wtMS43MDctMS43MDd2LTIuNTg2YzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyLjU4NmwtMS43MDcgMS43MDdjLS4xODguMTg3LS4yOTMuNDQyLS4yOTMuNzA3djdoLTJ2LTEwYzAtLjU1Mi0uNDQ4LTEtMS0xaC04Yy0uNTUyIDAtMSAuNDQ4LTEgMXYxMGgtMnYtMTR6bS00IDE0aC00di05aDR6bS0xMS43MDctOC4yOTMgMS43MDcgMS43MDd2Ni41ODZoLTZ2LTYuNTg2bDEuNzA3LTEuNzA3Yy4xODgtLjE4Ny4yOTMtLjQ0Mi4yOTMtLjcwN3YtMmgydjJjMCAuMjY1LjEwNS41Mi4yOTMuNzA3em0tMTAuMjkzIDguMjkzaC02di05aDZ6bS0xMCAyaDM2djQwaC0zNnptNDUgMjhoLTJ2LTFoMnptLTMgMmg0LjY0OWw0LjM1MSAzLjQ4djYuNTJoLTl6bTExIDEwdi03YzAtLjMwNC0uMTM4LS41OTEtLjM3NS0uNzgxbC01LTRjLS4xNzgtLjE0Mi0uMzk4LS4yMTktLjYyNS0uMjE5di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyYy0uNTUyIDAtMSAuNDQ4LTEgMXYxMWgtMnYtMTloMTh2MTl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDIyaC0zMGMtLjU1MiAwLTEgLjQ0OC0xIDF2MzRjMCAuNTUyLjQ0OCAxIDEgMWgzMGMuNTUyIDAgMS0uNDQ4IDEtMXYtMzRjMC0uNTUyLS40NDgtMS0xLTF6bS0xIDJ2NWgtMjh2LTV6bS0yOCAzMnYtMjVoMjh2MjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDMzYy02LjA2NSAwLTExIDQuOTM1LTExIDExczQuOTM1IDExIDExIDExIDExLTQuOTM1IDExLTExLTQuOTM1LTExLTExLTExem0wIDIwYy00Ljk2MiAwLTktNC4wMzgtOS05czQuMDM4LTkgOS05IDkgNC4wMzggOSA5LTQuMDM4IDktOSA5eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNi4xOTkgNDguMjg2IDEuMzk5IDEuNDI5Yy42NzctLjY2MyAxLjIyNi0xLjQzMiAxLjYzMS0yLjI4NmwtMS44MDctLjg1N2MtLjMwMy42MzktLjcxNCAxLjIxNi0xLjIyMyAxLjcxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjIgMzZ2MmMzLjMwOSAwIDYgMi42OTEgNiA2aDJjMC00LjQxMS0zLjU4OS04LTgtOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAgMjVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNCAyNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+","Living Area":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTQuNSAyNzcuNjY3aC01LjV2LTM2LjVjMC0xNS4xNjQtMTIuMzM2LTI3LjUtMjcuNS0yNy41aC0xMTBjLTcuODc1IDAtMTQuOTgyIDMuMzMyLTIwIDguNjU1LTUuMDE4LTUuMzIyLTEyLjEyNS04LjY1NS0yMC04LjY1NWgtMTEwYy03Ljg3NSAwLTE0Ljk4MiAzLjMzMi0yMCA4LjY1NS01LjAxOC01LjMyMi0xMi4xMjUtOC42NTUtMjAtOC42NTVoLTQwLjVjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoNDAuNWM2Ljg5MyAwIDEyLjUgNS42MDcgMTIuNSAxMi41djc3LjAxOGMtMy43NTMtMS45MjQtOC0zLjAxOC0xMi41LTMuMDE4aC0xMDEuNXYtMjBjMC05LjY0OS03Ljg1MS0xNy41LTE3LjUtMTcuNWgtMy41di0zNi41YzAtNi44OTMgNS42MDctMTIuNSAxMi41LTEyLjVoMzQuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMzQuNWMtMTUuMTY0IDAtMjcuNSAxMi4zMzYtMjcuNSAyNy41djM2LjVoLTYuNWMtOS42NDkgMC0xNy41IDcuODUxLTE3LjUgMTcuNXY0Mi41YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQyLjVjMC0xLjM3OCAxLjEyMi0yLjUgMi41LTIuNWgyNWMxLjM3OCAwIDIuNSAxLjEyMiAyLjUgMi41djE0MC41aC0yNy41Yy0xLjM3OCAwLTIuNS0xLjEyMi0yLjUtMi41di02MC41YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djYwLjVjMCA5LjY0OSA3Ljg1MSAxNy41IDE3LjUgMTcuNWgyNy41djE0LjY2N2MwIDYuODkzIDUuNjA3IDEyLjUgMTIuNSAxMi41aDI1YzYuODkzIDAgMTIuNS01LjYwNyAxMi41LTEyLjV2LTE0LjY2N2gzMjJ2MTQuNjY3YzAgNi44OTMgNS42MDcgMTIuNSAxMi41IDEyLjVoMjVjNi44OTMgMCAxMi41LTUuNjA3IDEyLjUtMTIuNXYtMTQuNjY3aDI3LjVjOS42NDkgMCAxNy41LTcuODUxIDE3LjUtMTcuNXYtMTM4YzAtOS42NS03Ljg1MS0xNy41LTE3LjUtMTcuNXptLTE0My00OWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXYzNi41aC00LjVjLTkuNjQ5IDAtMTcuNSA3Ljg1MS0xNy41IDE3LjV2MjBoLTEwMC41Yy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTI5MS41IDIwN3YtMTVoMzI2YzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC0zMjZ2LTE1LjVoMTAxLjVjNy44NzUgMCAxNC45ODItMy4zMzIgMjAtOC42NTUgNS4wMTggNS4zMjIgMTIuMTI1IDguNjU1IDIwIDguNjU1aDExMGM3Ljg3NSAwIDE0Ljk4Mi0zLjMzMiAyMC04LjY1NSA1LjAxOCA1LjMyMiAxMi4xMjUgOC42NTUgMjAgOC42NTVoMTAwLjV2MTUuNWgtMzFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoMzF2MTV6bTM5Mi02MC41aC0xMDAuNWMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMDAuNXptLTEyOC0xMi41YzAgNi44OTMtNS42MDcgMTIuNS0xMi41IDEyLjVoLTExMGMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXptLTEyMi41LTEzNGgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXY3Ny4wMThjLTMuNzUzLTEuOTI0LTgtMy4wMTgtMTIuNS0zLjAxOGgtMTEwYy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTQwIDEwMS41YzYuODkzIDAgMTIuNSA1LjYwNyAxMi41IDEyLjV2MjBjMCA2Ljg5My01LjYwNyAxMi41LTEyLjUgMTIuNWgtMTAxLjV2LTQ1em0tODEuNSAxMzIuNjY2aC0yMHYtMTIuMTY3aDIwem0zNTIgMHYtMTIuMTY3aDIwdjEyLjE2N3ptNjUtMjkuNjY2YzAgMS4zNzgtMS4xMjIgMi41LTIuNSAyLjVoLTI3LjV2LTE0MC41YzAtMS4zNzggMS4xMjItMi41IDIuNS0yLjVoMjVjMS4zNzggMCAyLjUgMS4xMjIgMi41IDIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuNDkgMTMwLjE2N2gxMTIuMDJjNi44ODcgMCAxMi40OS01LjYwMyAxMi40OS0xMi40OXYtMTYuNTQ5YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djE0LjAzOWgtMTA3di02NmgxMDd2MTYuOTYxYzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTE5LjQ3MmMwLTYuODg3LTUuNjAzLTEyLjQ5LTEyLjQ5LTEyLjQ5aC0xMTIuMDJjLTYuODg3IDAtMTIuNDkgNS42MDMtMTIuNDkgMTIuNDl2NzEuMDIxYzAgNi44ODYgNS42MDMgMTIuNDkgMTIuNDkgMTIuNDl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzMS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4MS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMC4yMzIgMjQ3LjIxNWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjhjNy4zNDkgNC44MjggMTMuNTIyIDExLjAwMiAxOC4zNTEgMTguMzUxIDEuMzg3IDIuMTEgMy43NDMgMy4zODEgNi4yNjggMy4zODFzNC44ODEtMS4yNzEgNi4yNjgtMy4zODFjNC44MjgtNy4zNDkgMTEuMDAyLTEzLjUyMiAxOC4zNTEtMTguMzUxIDIuMTEtMS4zODcgMy4zODEtMy43NDMgMy4zODEtNi4yNjhzLTEuMjcxLTQuODgxLTMuMzgxLTYuMjY4Yy03LjM0OS00LjgyOC0xMy41MjItMTEuMDAyLTE4LjM1MS0xOC4zNTEtMS4zODctMi4xMS0zLjc0My0zLjM4MS02LjI2OC0zLjM4MXMtNC44ODEgMS4yNy02LjI2OCAzLjM4MXptMTQuMzQ0IDI0LjYxOGMtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTQgNS41ODMtNS4xODkgOC4wNzYtOC4wNzYgMi40OTQgMi44ODggNS4xODkgNS41ODMgOC4wNzYgOC4wNzZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Living Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzMsMzMxLjkxNlYyNzMuNjQ4QTM5LjcxLDM5LjcxLDAsMCwwLDQzMy4zMjgsMjM0SDM3NlYxNzBoNDQuMDA5YTYuMjg5LDYuMjg5LDAsMCwwLDUuNzQ3LTguMDJMNDA0LjgzMSw5Mi4yNDhBNS45NzYsNS45NzYsMCwwLDAsMzk5LjA4NCw4OEgzNDAuOTE2YTUuOTMyLDUuOTMyLDAsMCwwLTUuNzQ3LDQuMkwzMTQuMjQ0LDE2MS45MmE2LjM3Miw2LjM3MiwwLDAsMCwuOTM0LDUuNDgzLDYuMTc2LDYuMTc2LDAsMCwwLDQuODEzLDIuNkgzNjR2NjRIODguNjc1QTM5LjcxMywzOS43MTMsMCwwLDAsNDksMjczLjY0OHY1OC4yNjhhMzkuNDE3LDM5LjQxNywwLDAsMC0zNywzOS41NTZWNDYzLjFhNS45MTUsNS45MTUsMCwwLDAsNiw1LjlIMzV2MzBhNi4yNDYsNi4yNDYsMCwwLDAsNi4yOCw2aDY3Ljg2N0E1Ljg3Nyw1Ljg3NywwLDAsMCwxMTUsNDk5VjQ2OUg0MDd2MzBhNS44NzksNS44NzksMCwwLDAsNS44NTUsNmg2Ny44NjlBNi4yNDMsNi4yNDMsMCwwLDAsNDg3LDQ5OVY0NjloMTdhNS45MTMsNS45MTMsMCwwLDAsNi01LjlWMzcxLjQ3MkEzOS40MTcsMzkuNDE3LDAsMCwwLDQ3MywzMzEuOTE2Wk0zNDUuMzgxLDEwMGg0OS4yMzhsMTcuMzI2LDU4aC04My44OVpNODguNjc1LDI0Nkg0MzMuMzI4QTI3LjcsMjcuNywwLDAsMSw0NjEsMjczLjY0OHY1OS4zYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAsMzguNTI2VjM5MEg5MVYzNzEuNDcyYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAtMzguNTI2di01OS4zQTI3LjcsMjcuNywwLDAsMSw4OC42NzUsMjQ2Wk0xMDMsNDkzSDQ3VjQ2OWg1NlptMzcyLDBINDE5VjQ2OWg1NlptMjMtMzZIMjRWMzcxLjQ3MmEyNy41LDI3LjUsMCwxLDEsNTUsMFYzOTUuOGE2LjQ0OCw2LjQ0OCwwLDAsMCw2LjMxLDYuMkg0MzYuNjkzQTYuNDQ1LDYuNDQ1LDAsMCwwLDQ0MywzOTUuOFYzNzEuNDcyYTI3LjUsMjcuNSwwLDEsMSw1NSwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTQsMjAzLjIzOFY1Ni42MjZBNS42NCw1LjY0LDAsMCwwLDIwOC4wNjIsNTFoLTUzLjkyTDExMi4yNzIsOC45NDRhNS43MzcsNS43MzcsMCwwLDAtOC40ODQuMDQ3TDYxLjkxOSw1MUg4YTUuNjkzLDUuNjkzLDAsMCwwLTYsNS42MjZWMjAzLjIzOEE1LjgsNS44LDAsMCwwLDgsMjA5SDIwOC4wNjJBNS43NDksNS43NDksMCwwLDAsMjE0LDIwMy4yMzhaTTE3NCwxMzEuOGwtNDIuMjMsMTkuNjg2TDgwLjM2NSwxMTYuNDQzYTYuMjQ1LDYuMjQ1LDAsMCwwLTcuMTMxLjE2M0w0MSwxNDAuNjg2Vjg3SDE3NFpNNDEsMTU1LjY4OWwzNi4wNjItMjYuOTExLDUwLjg4NSwzNC41NDJhNi4xNyw2LjE3LDAsMCwwLDMuNDI3LDEuMDM5LDUuMTY5LDUuMTY5LDAsMCwwLDIuMzMyLS41NTdMMTc0LDE0NS4wMjVWMTczSDQxWk0xNzguMTU1LDc1SDM3LjY4OUwyMy4yNDMsNjNIMTkyLjVaTTI5LDg0LjA5MVYxNzYuMkwxNCwxODkuOTI4VjcwLjQ3M1pNMzcuNywxODVIMTc4LjE0bDEzLjc2NywxMkgyMy44MzVaTTE4NiwxNzYuMjFWODQuMDc4bDE2LTEzLjlWMTkwLjIyNlpNMTA4LjAzLDIxLjg1OSwxMzcuMTcyLDUxSDc4Ljg4OVoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4LjM3NCwxMzMuMmEyMC4yMTQsMjAuMjE0LDAsMSwwLTIwLjIxNC0yMC4yMTRBMjAuMjM2LDIwLjIzNiwwLDAsMCwxMjguMzc0LDEzMy4yWm0wLTI4LjQyN2E4LjIxNCw4LjIxNCwwLDEsMS04LjIxNCw4LjIxM0E4LjIyMyw4LjIyMywwLDAsMSwxMjguMzc0LDEwNC43NjhaIi8+CiAgICAgICAgPHBhdGggZD0iTTM0OC43ODcsMzA4LjQ0YTIyLjA4NywyMi4wODcsMCwwLDAsMCwyMS42NjJsLTguNDc5LDguNDc5YTYsNiwwLDEsMCw4LjQ4NCw4LjQ4NWw4LjQ3OS04LjQ4YTIyLjA5LDIyLjA5LDAsMCwwLDIxLjY2MiwwbDguNDc4LDguNDc5YTYsNiwwLDAsMCw4LjQ4Ni04LjQ4NWwtOC40ODctOC40ODhhMjIuMjExLDIyLjIxMSwwLDAsMCwwLTIxLjY0NGw4LjQ4Ny04LjQ4OGE2LDYsMCwwLDAtOC40ODYtOC40ODVsLTguNDc4LDguNDc5YTIyLjA5MiwyMi4wOTIsMCwwLDAtMjEuNjYxLDBsLTguNDgtOC40NzlhNiw2LDAsMSwwLTguNDg0LDguNDg1Wm0xOS4zMTYuNjc4YTEwLjE1NiwxMC4xNTYsMCwxLDEtNy4xNzksMi45NzRBMTAuMDgzLDEwLjA4MywwLDAsMSwzNjguMSwzMDkuMTE4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMzguNzg3LDMwOC40NGEyMi4wODcsMjIuMDg3LDAsMCwwLDAsMjEuNjYybC04LjQ3OSw4LjQ3OWE2LDYsMCwxLDAsOC40ODQsOC40ODVsOC40NzktOC40OGEyMi4wOSwyMi4wOSwwLDAsMCwyMS42NjIsMGw4LjQ3OCw4LjQ3OWE2LDYsMCwwLDAsOC40ODYtOC40ODVsLTguNDg3LTguNDg4YTIyLjIxMSwyMi4yMTEsMCwwLDAsMC0yMS42NDRsOC40ODctOC40ODhhNiw2LDAsMCwwLTguNDg2LTguNDg1bC04LjQ3OCw4LjQ3OWEyMi4wOTIsMjIuMDkyLDAsMCwwLTIxLjY2MSwwbC04LjQ4LTguNDc5YTYsNiwwLDEsMC04LjQ4NCw4LjQ4NVptMTkuMzE2LjY3OGExMC4xNTYsMTAuMTU2LDAsMSwxLTcuMTc5LDIuOTc0QTEwLjA4MywxMC4wODMsMCwwLDEsMjU4LjEsMzA5LjExOFoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4Ljc4NywzMDguNDRhMjIuMDg3LDIyLjA4NywwLDAsMCwwLDIxLjY2MmwtOC40NzksOC40NzlhNiw2LDAsMSwwLDguNDg0LDguNDg1bDguNDc5LTguNDhhMjIuMDksMjIuMDksMCwwLDAsMjEuNjYyLDBsOC40NzgsOC40NzlhNiw2LDAsMCwwLDguNDg2LTguNDg1bC04LjQ4Ny04LjQ4OGEyMi4yMTEsMjIuMjExLDAsMCwwLDAtMjEuNjQ0bDguNDg3LTguNDg4YTYsNiwwLDAsMC04LjQ4Ni04LjQ4NWwtOC40NzgsOC40NzlhMjIuMDkyLDIyLjA5MiwwLDAsMC0yMS42NjEsMGwtOC40OC04LjQ3OWE2LDYsMCwxLDAtOC40ODQsOC40ODVabTE5LjMxNi42NzhhMTAuMTU2LDEwLjE1NiwwLDEsMS03LjE3OSwyLjk3NEExMC4wODMsMTAuMDgzLDAsMCwxLDE0OC4xLDMwOS4xMThaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=","Locker Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDYwIDYwIiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMjMgNGgtMTVjLTIuMjA5MTM5IDAtNCAxLjc5MDg2MS00IDR2MzRjMCAyLjIwOTEzOSAxLjc5MDg2MSA0IDQgNGg2Yy41NTIyODQ3IDAgMS0uNDQ3NzE1MyAxLTFzLS40NDc3MTUzLTEtMS0xaC02Yy0xLjEwNDU2OTUgMC0yLS44OTU0MzA1LTItMnYtMzRjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYxMi4wNWMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyLjA1YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDEyaDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDE2aDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxIDE5YzAtLjU1MjI4NDctLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDFoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im05IDM1Yy0uNTUyMjg0NzUgMC0xIC40NDc3MTUzLTEgMXY1YzAgLjU1MjI4NDcuNDQ3NzE1MjUgMSAxIDFoM2MuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtMnYtNGMwLS41NTIyODQ3LS40NDc3MTUyNS0xLTEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMGgtMTVjLTIuOTEyMjE0Mi4wMDE4MDY5MS01LjU5MzQwMDggMS41ODYwMDUxOC03IDQuMTM2LTEuNDA2NTk5Mi0yLjU0OTk5NDgyLTQuMDg3Nzg1OC00LjEzNDE5MzA5LTctNC4xMzZoLTE1Yy00LjQxNjIyMTkyLjAwNDk1OTg4LTcuOTk1MDQwMTIgMy41ODM3NzgwOC04IDh2MzRjLjAwNDk1OTg4IDQuNDE2MjIxOSAzLjU4Mzc3ODA4IDcuOTk1MDQwMSA4IDhoNmMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtNmMtMy4zMTIzMzc1Ny0uMDAzMzA3NC01Ljk5NjY5MjYyLTIuNjg3NjYyNC02LTZ2LTM0Yy4wMDMzMDczOC0zLjMxMjMzNzU3IDIuNjg3NjYyNDMtNS45OTY2OTI2MiA2LTZoMTVjMy4zMTIzMzc2LjAwMzMwNzM4IDUuOTk2NjkyNiAyLjY4NzY2MjQzIDYgNnYxMmMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyYy4wMDMzMDc0LTMuMzEyMzM3NTcgMi42ODc2NjI0LTUuOTk2NjkyNjIgNi02aDE1YzMuMzEyMzM3Ni4wMDMzMDczOCA1Ljk5NjY5MjYgMi42ODc2NjI0MyA2IDZ2MzRjLS4wMDMzMDc0IDMuMzEyMzM3Ni0yLjY4NzY2MjQgNS45OTY2OTI2LTYgNmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMWg2YzQuNDE2MjIxOS0uMDA0OTU5OSA3Ljk5NTA0MDEtMy41ODM3NzgxIDgtOHYtMzRjLS4wMDQ5NTk5LTQuNDE2MjIxOTItMy41ODM3NzgxLTcuOTk1MDQwMTItOC04eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NiA0Nmg2YzIuMjA5MTM5IDAgNC0xLjc5MDg2MSA0LTR2LTM0YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTRoLTE1Yy0yLjIwOTEzOSAwLTQgMS43OTA4NjEtNCA0djEyLjA1YzAgLjU1MjI4NDcuNDQ3NzE1MyAxIDEgMXMxLS40NDc3MTUzIDEtMXYtMTIuMDVjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYzNGMwIDEuMTA0NTY5NS0uODk1NDMwNSAyLTIgMmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTJoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTZoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMjBoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDkgMjd2M2MwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTNjMC0uNTUyMjg0Ny0uNDQ3NzE1My0xLTEtMXMtMSAuNDQ3NzE1My0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3IDIzYy0zLjg2NDE2NTcuMDA0NDA4Ni02Ljk5NTU5MTQgMy4xMzU4MzQzLTcgN3Y2Yy0xLjY1Njg1NDIgMC0zIDEuMzQzMTQ1OC0zIDN2MThjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzaDIwYzEuNjU2ODU0MiAwIDMtMS4zNDMxNDU4IDMtM3YtMThjMC0xLjY1Njg1NDItMS4zNDMxNDU4LTMtMy0zdi02Yy0uMDA0NDA4Ni0zLjg2NDE2NTctMy4xMzU4MzQzLTYuOTk1NTkxNC03LTd6bTE0IDE2djE4YzAgLjU1MjI4NDctLjQ0NzcxNTMgMS0xIDFoLTIwYy0uNTUyMjg0NyAwLTEtLjQ0NzcxNTMtMS0xdi0xOGMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoMjBjLjU1MjI4NDcgMCAxIC40NDc3MTUzIDEgMXptLTctM2gtOHYtNmMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoNmMuNTUyMjg0NyAwIDEgLjQ0NzcxNTMgMSAxem00LTZ2NmgtMnYtNmMwLTEuNjU2ODU0Mi0xLjM0MzE0NTgtMy0zLTNoLTZjLTEuNjU2ODU0MiAwLTMgMS4zNDMxNDU4LTMgM3Y2aC0ydi02Yy4wMDMzMDYxLTIuNzYwMDUzMiAyLjIzOTk0NjgtNC45OTY2OTM5IDUtNWg2YzIuNzYwMDUzMi4wMDMzMDYxIDQuOTk2NjkzOSAyLjIzOTk0NjggNSA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMS4yMTMgNDEuMTQ0Yy0xLjUwNDE3Mi0uMzY5MzcyNy0zLjA5NDY0MjYtLjAyNTYwNjgtNC4zMTIuOTMyLTEuMjE3ODgzNC45NjE4MTM0LTEuOTIwMTI3NSAyLjQzNDYwODktMS45MDA3NDAzIDMuOTg2MzY1Ny4wMTkzODcxIDEuNTUxNzU2OC43NTgyMDc2IDMuMDA2NTQ4MSAxLjk5OTc0MDMgMy45Mzc2MzQzdjNjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzczMtMS4zNDMxNDU4IDMtM3YtM2MxLjU0NDUxMDctMS4xNTY5NTQ0IDIuMjg1MzQ5Mi0zLjA5OTQ1NTcgMS45MDM1MTkxLTQuOTkxMDg1Mi0uMzgxODMwMS0xLjg5MTYyOTYtMS44MTgxNTg3LTMuMzk0NjY0My0zLjY5MDUxOTEtMy44NjE5MTQ4em0uNTg3IDcuMjU2Yy0uNDk3MTQ3OS4zNTc2MDY2LS43OTQyNDAxLjkzMDYyMzItLjggMS41NDN2My4wNTdjMCAuNTUyMjg0Ny0uNDQ3NzE1MyAxLTEgMXMtMS0uNDQ3NzE1My0xLTF2LTMuMDgxYy0uMDA1NzA4Mi0uNjAyMDUyMi0uMjk5NDI1OS0xLjE2NDk0OTItLjc5LTEuNTE0LTEuMDM1MDU1My0uNzcxNzg3Mi0xLjQ2MDIxNjQtMi4xMTkyNTA3LTEuMDU1NTM2NC0zLjM0NTMxMzFzMS41NDg0MjEtMi4wNTU2ODY3IDIuODM5NTM2NC0yLjA1OTY4NjljLjI1NTAzMDkuMDAwNTA4NS41MDkxMTQ0LjAzMTA1MjIuNzU3LjA5MSAxLjA1NTg2OC4yNjMyNDYxIDEuODgyOTA3IDEuMDgzMzc3MiAyLjE1NSAyLjEzNy4zMTMzNzQ2IDEuMTgzOTY5NS0uMTI0NDE2NSAyLjQzOTU1MTItMS4xMDYgMy4xNzJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nursery:Axe,Office:mxe,Outdoors:Oxe,Playroom:Exe,Pool:fxe,"Rear Wall":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTAzLjQ2Nyw4LjUzM0gzODRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM3YxMTkuNDY3VjI1NnY1MS4yaC02OS43MzVjMC45NDgtMi42NzEsMS40NjgtNS41NDIsMS40NjgtOC41MzMKCQkJCWMwLTE0LjExNC0xMS40ODYtMjUuNi0yNS42LTI1LjZoLTE3LjA2N1YyNTZoODUuMzMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxMTAuOTMzYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzMKCQkJCUgxNjIuMTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDg1LjMzM3YxNy4wNjdIMjMwLjQKCQkJCWMtMTQuMTE0LDAtMjUuNiwxMS40ODYtMjUuNiwyNS42YzAsMi45OTEsMC41MjEsNS44NjIsMS40NjgsOC41MzNoLTY5LjczNVYyNTZWMTM2LjUzM1YxNy4wNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzMwoJCQkJSDguNTMzQzMuODIzLDguNTMzLDAsMTIuMzQ4LDAsMTcuMDY3djExOS40NjdWMjU2djExOS40Njd2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDEyOGgyNTZoMTE5LjQ2NwoJCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YzNzUuNDY3VjI1NlYxMzYuNTMzVjE3LjA2N0M1MTIsMTIuMzQ4LDUwOC4xNzcsOC41MzMsNTAzLjQ2Nyw4LjUzM3ogTTE3MC42NjcsMTUzLjZoMTcwLjY2NwoJCQkJdjUxLjJIMTcwLjY2N1YxNTMuNnogTTM0MS4zMzMsMTE5LjQ2N3YxNy4wNjdIMTcwLjY2N3YtMTcuMDY3SDM0MS4zMzN6IE0xNzAuNjY3LDIyMS44NjdoMTcwLjY2N3YxNy4wNjdIMTcwLjY2N1YyMjEuODY3egoJCQkJIE0zNzUuNDY3LDQ4Ni40SDI2NC41MzN2LTkzLjg2N2g1MS4yaDU5LjczM1Y0ODYuNHogTTMwNy4yLDM3NS40NjdIMjA0LjhWMzU4LjRoMTAyLjRWMzc1LjQ2N3ogTTQ5NC45MzMsMjQ3LjQ2N2gtMTcuMDY3VjE3OS4yCgkJCQljMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtMjUuNmgtMjUuNmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjY4LjI2N2gtMTcuMDY3di0xMDIuNGgxMDIuNFYyNDcuNDY3egoJCQkJIE00MjYuNjY3LDI0Ny40Njd2LTU5LjczM2g4LjUzM3Y1OS43MzNINDI2LjY2N3ogTTQ1Mi4yNjcsMTg3LjczM2g4LjUzM3Y1OS43MzNoLTguNTMzVjE4Ny43MzN6IE0zOTIuNTMzLDMxNS43MzN2LTUxLjJoMjUuNgoJCQkJaDI1LjZoMjUuNmgyNS42djEwMi40aC0xMDIuNFYzMTUuNzMzeiBNMzkyLjUzMywyNS42aDEwMi40VjEyOGgtMTAyLjRWMjUuNnogTTIyMS44NjcsMjk4LjY2N2MwLTQuNzEsMy44MzEtOC41MzMsOC41MzMtOC41MzMKCQkJCWg1MS4yYzQuNzAyLDAsOC41MzMsMy44MjMsOC41MzMsOC41MzNzLTMuODMxLDguNTMzLTguNTMzLDguNTMzaC01MS4yQzIyNS42OTgsMzA3LjIsMjIxLjg2NywzMDMuMzc3LDIyMS44NjcsMjk4LjY2N3oKCQkJCSBNMjMwLjQsMzI0LjI2N2g1MS4yaDkzLjg2N3Y1MS4yaC01MS4yVjM1OC40YzAtOS40MTItNy42NTQtMTcuMDY3LTE3LjA2Ny0xNy4wNjdIMjA0LjhjLTkuNDEyLDAtMTcuMDY3LDcuNjU0LTE3LjA2NywxNy4wNjcKCQkJCXYxNy4wNjdoLTUxLjJ2LTUxLjJIMjMwLjR6IE01MS4yLDMzMi44aDM0LjEzM3Y4LjUzM0g1MS4yVjMzMi44eiBNODUuMzMzLDMxNS43MzNINTEuMlYzMDcuMmgzNC4xMzNWMzE1LjczM3ogTTUxLjIsMzU4LjQKCQkJCWgzNC4xMzN2OC41MzNINTEuMlYzNTguNHogTTEwMi40LDM0OS44Njd2LTI1LjZ2LTI1LjZjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzCgkJCQl2MjUuNnYyNS42djE3LjA2N0gxNy4wNjd2LTEwMi40aDEwMi40djUxLjJ2NTEuMkgxMDIuNFYzNDkuODY3eiBNNTkuNzMzLDExMC45MzNINzYuOFYxMjhINTkuNzMzVjExMC45MzN6IE01MS4yLDE0NS4wNjdoMzQuMTMzCgkJCQloMzQuMTMzdjEwMi40aC0xMDIuNHYtMTAyLjRINTEuMnogTTE3LjA2NywyNS42aDEwMi40VjEyOGgtMjUuNnYtMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzNoLTguNTMzSDUxLjJoLTguNTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1YxMjgKCQkJCWgtMjUuNlYyNS42eiBNMTcuMDY3LDM4NGgyNS42aDUxLjJoMjUuNnYxMDIuNGgtMTAyLjRWMzg0eiBNMTM2LjUzMywzOTIuNTMzaDU5LjczM2g1MS4yVjQ4Ni40SDEzNi41MzNWMzkyLjUzM3ogTTQ5NC45MzMsNDg2LjQKCQkJCWgtMTcuMDY3di02OC4yNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDg2LjRoLTguNTMzdi02OC4yNjcKCQkJCWMwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjgxNC04LjUzMyw4LjUzM1Y0ODYuNGgtOC41MzN2LTY4LjI2N2MwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzCgkJCQlzLTguNTMzLDMuODE0LTguNTMzLDguNTMzVjQ4Ni40aC0xNy4wNjdWMzg0aDEwMi40VjQ4Ni40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjEuODY3LDQwOS42SDIwNC44Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNoOC41MzN2OC41MzMKCQkJCWMwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM3YtMTcuMDY3QzIzMC40LDQxMy40MTQsMjI2LjU3Nyw0MDkuNiwyMjEuODY3LDQwOS42eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDcuMiw0MDkuNmgtMTcuMDY3Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDM1LjJjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJdi04LjUzM2g4LjUzM2M0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNTMzExLjkxLDQwOS42LDMwNy4yLDQwOS42eiIvPgogICAgPC9nPgo8L3N2Zz4K","Second Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5OS42NjgsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTVjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzMwNi45NTUsMjM0LjgzNSwzMDMuNjkzLDIzMS41NzIsMjk5LjY2OCwyMzEuNTcyeiBNMjgxLjc1OCwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQxMi41NzIsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM3OS0xMC4zOGgtNTkuMzU2Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxOS44NTksMjM0LjgzNSw0MTYuNTk3LDIzMS41NzIsNDEyLjU3MiwyMzEuNTcyeiBNMzk0LjY2MSwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgZD0iTTE4Mi44MTMsNDEzLjgzM2gtMC41Mjh2LTYwLjA0NWMwLTUuNTY2LTQuNTI5LTEwLjA5NS0xMC4wOTUtMTAuMDk1aC01My44ODZjLTUuNTY2LDAtMTAuMDk1LDQuNTI5LTEwLjA5NSwxMC4wOTV2NjAuMDQ1CgkJCWgtMC41MjhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNSwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g3LjgxNGg1OS41MDRoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkwLjEsNDE3LjA5NSwxODYuODM4LDQxMy44MzMsMTgyLjgxMyw0MTMuODMzeiBNMTY3LjcxMiw0MTMuODMzaC00NC45MzF2LTU1LjU2N2g0NC45MzFWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNNDA0LjMxNCw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTYsNC41MjktMTAuMDk2LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0SDM5Ni41aDcuODE0YzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxMS42MDEsNDE3LjA5NSw0MDguMzM5LDQxMy44MzMsNDA0LjMxNCw0MTMuODMzeiBNMzg5LjIxMyw0MTMuODMzaC00NC45MzJ2LTU1LjU2N2g0NC45MzJWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNMjc2LjU0NSw0MDUuMDg5Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3djEyLjYzYzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODcKCQkJYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODd2LTEyLjYzQzI4My44MzIsNDA4LjM1MiwyODAuNTcsNDA1LjA4OSwyNzYuNTQ1LDQwNS4wODl6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Shed:xxe,"Sleeping Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDU2LDIyNGMtMTQuMTMzLDAtMjQsNi4zMDEtMjQsMTUuMzJ2MjcuNTA1QzQxOS4zMzMsMjQxLjc5MywzOTkuODUsMjI0LDM3NiwyMjRIMTUyYy00LjQxNy0wLjAwMS03Ljk5OSwzLjU3OS04LDcuOTk2CgkJCWMwLDAuMDAxLDAsMC4wMDMsMCwwLjAwNHY0OC4wNjdjMC4wNDUtMTMuMDUyLTUuMjAxLTI2LjA3NS0xNS41ODYtMzUuNTgzYy0xOS41NTItMTcuOTAyLTQ5LjkxNS0xNi41NjQtNjcuODE2LDIuOTg5CgkJCWMtMTYuNzY0LDE4LjMwOS0xNi44MDEsNDYuMzgtMC4wODYsNjQuNzM0Yy00LjYxMiwwLjUwOC04Ljk2OCwyLjM4LTEyLjUxMiw1LjM3NVYxMTUuMTk5QzQ4LDEwNC40MzQsMzcuNDYxLDk2LDI0LDk2CgkJCXMtMjQsOC40MzQtMjQsMTkuMTk5djM0NS42MDJDMCw0NzEuNTY2LDEwLjUzOSw0ODAsMjQsNDgwczI0LTguNDM0LDI0LTE5LjE5OVY0MDhoMzg0djU2LjY4YzAsOS4wMTksOS44NjcsMTUuMzIsMjQsMTUuMzIKCQkJczI0LTYuMzAxLDI0LTE1LjMyVjIzOS4zMkM0ODAsMjMwLjMwMSw0NzAuMTMzLDIyNCw0NTYsMjI0eiBNMzIsNDYwLjgwMWMtMC4wODYsMC42NTYtMi43NzMsMy4xOTktOCwzLjE5OQoJCQljLTUuMjUsMC03LjkyMi0yLjU0My04LTMuMTk5VjExNS4xOTljMC4wNzgtMC42NTYsMi43NS0zLjE5OSw4LTMuMTk5YzUuMjI3LDAsNy45MTQsMi41NDMsOCwzLjE5OVY0NjAuODAxeiBNMTYwLDI0MGgyMTYKCQkJYzMwLjE3MiwwLDUzLjE3Miw0NC45MjYsNTUuNzU4LDg4SDE2MFYyNDB6IE0xNDQsMjgwLjA4M3YzOC41NmMtMy40NTItMy4zNTMtNy44NDgtNS41NjYtMTIuNTk3LTYuMzQyCgkJCUMxMzkuNzkzLDMwMy4xMzcsMTQzLjk1NiwyOTEuNiwxNDQsMjgwLjA4M3ogTTk2LDI0OGMxNy42NzMsMCwzMiwxNC4zMjcsMzIsMzJjMCwxNy42NzMtMTQuMzI3LDMyLTMyLDMycy0zMi0xNC4zMjctMzItMzIKCQkJQzY0LjAxOSwyNjIuMzM1LDc4LjMzNSwyNDguMDE5LDk2LDI0OHogTTQzMiwzOTJINDh2LTQ4LjAyM2M0LjE2My0wLjMyOCw3LjM3NC0zLjgwMSw3LjM3NS03Ljk3NwoJCQljLTAuMDc3LTQuMzMxLDMuMzY0LTcuOTA5LDcuNjk1LThoNjQuNjFjNC4zMzEsMC4wOTEsNy43NzIsMy42NjksNy42OTUsOGMtMC4wMDEsNC40MTcsMy41NzksNy45OTksNy45OTYsOAoJCQljMC4wMDEsMCwwLjAwMywwLDAuMDA0LDBINDMyVjM5MnogTTQ2NCw0NjIuNTk0Yy01LjE2OSwxLjg3NS0xMC44MzEsMS44NzUtMTYsMFYyNDEuNDA2YzUuMTY5LTEuODc1LDEwLjgzMS0xLjg3NSwxNiwwVjQ2Mi41OTR6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTEzNy4wNzgsMTc2bDI5LjA3LTM0Ljg3OWMxLjk4Ni0yLjM4NiwyLjQxMy01LjcwNSwxLjA5NC04LjUxNmMtMS4zMTYtMi44MS00LjEzOS00LjYwNS03LjI0Mi00LjYwNWgtNDh2MTZoMzAuOTIyCgkJCWwtMjkuMDcsMzQuODc5Yy0yLjgyNywzLjM5OC0yLjM2NCw4LjQ0NCwxLjAzNCwxMS4yN2MxLjQzNywxLjE5NSwzLjI0NiwxLjg1LDUuMTE0LDEuODUxaDQ4di0xNkgxMzcuMDc4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjQuMzU5LDEzNmw0NS45NTMtNTkuMDljMS44NzctMi40MTEsMi4yMTctNS42ODEsMC44NzUtOC40MjZjLTEuMzQ0LTIuNzQzLTQuMTMyLTQuNDgzLTcuMTg4LTQuNDg0aC02NHYxNmg0Ny42NDEKCQkJbC00NS45NTMsNTkuMDljLTIuNzE0LDMuNDg0LTIuMDg5LDguNTA5LDEuMzk2LDExLjIyM2MxLjQwNSwxLjA5NCwzLjEzNiwxLjY4OCw0LjkxNywxLjY4OGg2NHYtMTZIMjI0LjM1OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzI4LDk2bDYyLjM5OC04My4xOTljMi42NTItMy41MzMsMS45MzktOC41NDYtMS41OTQtMTEuMTk5QzM4Ny40MTksMC41NjIsMzg1LjczMywwLDM4NCwwaC03MnYxNmg1NmwtNjIuMzk4LDgzLjE5OQoJCQljLTEuODE4LDIuNDI0LTIuMTEyLDUuNjY4LTAuNzU4LDguMzc5QzMwNi4yLDExMC4yODgsMzA4Ljk3LDExMiwzMTIsMTEyaDgwVjk2SDMyOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Stairway:_xe,Stairwell:Sxe,Storeroom:kxe,"Summer House":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuODMyLDIyNS4yNjNoLTQzLjAzOWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY2MC4xMzRjMCw0LjE0MiwzLjM1Nyw3LjUsNy41LDcuNWg0My4wMzljNC4xNDIsMCw3LjUtMy4zNTgsNy41LTcuNQoJCQl2LTYwLjEzNEMxODEuMzMyLDIyOC42MjIsMTc3Ljk3NCwyMjUuMjYzLDE3My44MzIsMjI1LjI2M3ogTTE2Ni4zMzEsMjg1LjM5N2gtMjguMDM4di00NS4xMzNoMjguMDM4VjI4NS4zOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OS4xMjcsMjAxLjE5M2MzLjMxNCwyLjI3OCw4LjA5MSwxLjQ3MSwxMC40My0xLjkzMmMwLDAsMjMuMDA5LTMzLjQ2OSwyMy4wMjktMzMuNDk4CgkJCWMyLjMxNS0zLjM2OCwxLjQyOC04LjEyMS0xLjkzMi0xMC40MzFMMjcxLjc2Myw0Ljg2MWMtOS40MjktNi40OC0yMi4wOTctNi40ODEtMzEuNTI2LDBjMCwwLTEzOS43NjIsOTYuMDc3LTE0MC4yNzMsOTYuNDI4CgkJCWMtNy45MTEsNS40MzgsMC40MjksMTcuOTEsOC40OTcsMTIuMzYzbDE0MC4yNzQtOTYuNDI5YzQuMzQ3LTIuOTg3LDEwLjE4Ny0yLjk4NywxNC41MzEtMC4wMDFsMjEyLjcwOSwxNDYuMjI0bC0xNC41MzEsMjEuMTM3CgkJCWMwLDAtMjAxLjE0My0xMzguMjcyLTIwMS4xOTUtMTM4LjMwOGMtMi40OTUtMS43MTUtNS45OTktMS43MTgtOC40OTgtMC4wMDFMNTAuNTU3LDE4NC41ODNsLTE0LjUzLTIxLjEzNwoJCQljMCwwLDQ3LjExNy0zMi4zOSw0Ny4yODktMzIuNTA5YzcuODA3LTUuMzY2LTAuNDE2LTE3LjkxNy04LjQ5OC0xMi4zNjJjMCwwLTUzLjMwMSwzNi42NC01My40NzEsMzYuNzU3CgkJCWMtMy4zNzQsMi4zMi00LjI0MSw3LjA3MS0xLjkzMywxMC40MzFsMjEuNzA5LDMxLjU3OXYzMDcuMTU2YzAsNC4xNDIsMy4zNTgsNy41LDcuNSw3LjVIMjU2YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjVWMzk1Ljk3MQoJCQlINDAyLjY0djEwOC41MjhjMCw0LjE0MiwzLjM1OCw3LjUsNy41MDEsNy41aDMwLjQ4OGM0LjE0MiwwLDcuNS0zLjM1OCw3LjUtNy41VjM5NS45NzFoMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4NwoJCQljMC00LjE0My0zLjM1OC03LjUtNy41LTcuNWgtMjMuNzY5di01Ny4yNTloMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4OGMwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC0yMy43Njl2LTU0LjEwMwoJCQlMNDU5LjEyNywyMDEuMTkzeiBNNDE3LjY0MSwxODYuODc2aDE1LjQ4N3Y2MC44NThoLTE1LjQ4N1YxODYuODc2eiBNMjU2LDYxLjU1NmwzOS4wNzUsMjYuODYxaC03OC4xNDlMMjU2LDYxLjU1NnoKCQkJIE01Ni4xMjUsMjcwLjMzMmgzOC4zOTl2NTMuMDU1YzAsNC4xNDEsMy4zNTgsNy41LDcuNSw3LjVIMjAyLjZjNC4xNDIsMCw3LjUwMS0zLjM1OCw3LjUwMS03LjV2LTUzLjA1NWgzOC4zOTh2NjguNDU2SDU2LjEyNQoJCQlWMjcwLjMzMnogTTEwOS41MjUsMzE1Ljg4NlYyMDkuNzc3aDg1LjU3NXYxMDYuMTA5SDEwOS41MjV6IE05NC41MjQsNDk2Ljk5OEg1Ni4xMjV2LTU5Ljc1NGgzOC4zOTlWNDk2Ljk5OHogTTE2Ni4zMzEsNDk2Ljk5NwoJCQloLTI4LjAzOHYtODUuNzgzaDI4LjAzOFY0OTYuOTk3eiBNMTk1LjA5OSw0OTYuOTk3aC0xMy43Njd2LTkzLjI4M2MwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC00My4wMzkKCQkJYy00LjE0MiwwLTcuNTAxLDMuMzU4LTcuNTAxLDcuNXY5My4yODNoLTEzLjc2OFYzODAuNzI3aDg1LjU3NVY0OTYuOTk3eiBNMjQ4LjQ5OSw0OTYuOTk4SDIxMC4xdi01OS43NTRoMzguMzk4VjQ5Ni45OTh6CgkJCSBNMjQ4LjUsNDIyLjI0NGgtMzguMzk5di00OS4wMThjLTAuMDAxLTQuMTQyLTMuMzU5LTcuNS03LjUwMi03LjVIMTAyLjAyNGMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNTAxdjQ5LjAxOEg1Ni4xMjV2LTY4LjQ1NgoJCQlIMjQ4LjVWNDIyLjI0NHogTTI0OC41LDI1NS4yMjVjMCwwLjAwMywwLDAuMDA2LDAsMC4wMXYwLjA5NmgtMzguMzk5di01My4wNTVjMC00LjE0Mi0zLjM1OC03LjUtNy41LTcuNUgxMDIuMDI0CgkJCWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY1My4wNTVINTYuMTI1di01Ni4zNzNsMTcuNjYzLTEyLjE0M2MwLjI5NywwLjAzNiwwLjU5NywwLjA2LDAuOTA0LDAuMDZIMjQ4LjVWMjU1LjIyNXoKCQkJIE05NS41MjMsMTcxLjg3NWw5OS41ODEtNjguNDU2aDEyMS43OTNsOTkuNTgxLDY4LjQ1NmgtNi4zMzZIOTUuNTIzeiBNNDAyLjY0LDE4Ni44NzZ2NjAuODU4SDI2My41MDF2LTYwLjg1OEg0MDIuNjR6CgkJCSBNMjYzLjUwMSwyOTMuMjIzaDE1LjQ4NnY1Ny4yNTloLTE1LjQ4NlYyOTMuMjIzeiBNNDMzLjEyOCw0OTYuOTk4aC0xNS40ODdWMzk1Ljk3MWgxNS40ODdWNDk2Ljk5OHogTTQ2NC4zOTcsMzY1LjQ4NHYxNS40ODYKCQkJSDI2My41MDF2LTE1LjQ4Nkg0NjQuMzk3eiBNMjkzLjk4OCwzNTAuNDgydi01Ny4yNTloMTUuNDg3djU3LjI1OUgyOTMuOTg4eiBNMzI0LjQ3NiwzNTAuNDgydi01Ny4yNTloMTYuMzM3djU3LjI1OUgzMjQuNDc2egoJCQkgTTM1NS44MTQsMzUwLjQ4MnYtNTcuMjU5aDE1LjQ4N3Y1Ny4yNTlIMzU1LjgxNHogTTM4Ni4zMDIsMzUwLjQ4MnYtNTcuMjU5aDE2LjMzN3Y1Ny4yNTlIMzg2LjMwMnogTTQxNy42NDEsMzUwLjQ4MnYtNTcuMjU5CgkJCWgxNS40ODd2NTcuMjU5SDQxNy42NDF6IE00NjQuMzk3LDI2Mi43MzV2MTUuNDg3SDI2My41MDF2LTE1LjQ4N0g0NjQuMzk3eiIvPgogICAgPC9nPgo8L3N2Zz4K","Swimming Pool":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4Ny43MzMgMTg3LjczMyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xODcuNTk5LDE1MS40NThMMTUzLjQ2NSwzMy4xODZjLTAuNDIyLTEuNDYxLTEuNzU4LTIuNDY2LTMuMjc5LTIuNDY2SDM3LjU0N2MtMS41MjEsMC0yLjg1NywxLjAwNS0zLjI3OSwyLjQ2NgoJCQlMMC4xMzUsMTUxLjQ1OEMwLjA0NCwxNTEuNzY1LDAsMTUyLjA4NSwwLDE1Mi40MDV2MjUuMDg4YzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNIMTg0LjMyCgkJCWMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzdi0yNS4wODhDMTg3LjczMywxNTIuMDg1LDE4Ny42ODcsMTUxLjc2NSwxODcuNTk5LDE1MS40NTh6IE0xODAuOTA3LDE3NC4wOEg2LjgyN3YtMjEuMTkyCgkJCUw0MC4xMTUsMzcuNTQ3SDE0Ny42MmwzMy4yODcsMTE1LjM0MlYxNzQuMDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTc4LjUwNyw2LjgyN2MtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3Y1MS4yYzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNzMy40MTMtMS41MjksMy40MTMtMy40MTN2LTUxLjIKCQkJQzgxLjkyLDguMzU2LDgwLjM5MSw2LjgyNyw3OC41MDcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsNi44MjdjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTN2NTEuMmMwLDEuODg0LDEuNTI5LDMuNDEzLDMuNDEzLDMuNDEzYzEuODg0LDAsMy40MTMtMS41MjksMy40MTMtMy40MTMKCQkJdi01MS4yQzExMi42NCw4LjM1NiwxMTEuMTExLDYuODI3LDEwOS4yMjcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsMTcuMDY3aC0zMC43MmMtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3MxLjUyOSwzLjQxMywzLjQxMywzLjQxM2gzMC43MmMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzCgkJCVMxMTEuMTExLDE3LjA2NywxMDkuMjI3LDE3LjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTA5LjIyNywzMC43MmgtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSwzMC43MiwxMDkuMjI3LDMwLjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDkuMjI3LDQ0LjM3M2gtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSw0NC4zNzMsMTA5LjIyNyw0NC4zNzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE2My43ODksMTQ2LjE3OWwtMTcuNTE2LTk4Ljk4N2MtMC4yODgtMS42My0xLjcwNS0yLjgxOC0zLjM2LTIuODE4SDQ4LjMyOGMtMS42MTMsMC0zLjAwNSwxLjEyNi0zLjM0LDIuNzAzCgkJCWwtMjEuMDE5LDk4Ljk4N2MtMC4yMTMsMS4wMDcsMC4wMzgsMi4wNTcsMC42ODYsMi44NTdjMC42NDksMC44LDEuNjIxLDEuMjY1LDIuNjUyLDEuMjY1aDEzMy4xMmMxLjAwOSwwLDEuOTY2LTAuNDQ3LDIuNjE2LTEuMjE5CgkJCUMxNjMuNjkxLDE0OC4xOTUsMTYzLjk2NSwxNDcuMTc0LDE2My43ODksMTQ2LjE3OXogTTMxLjUyLDE0My4zNkw1MS4wODksNTEuMmg4OC45NThsMTYuMzA5LDkyLjE2SDMxLjUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Terrace:Yxe,Toilet:vxe,Upstairs:bxe,Wardrobe:Qxe,Washroom:Uxe,Wc:$xe,Windscreen:Pxe,Workshop:Wxe,Workspace:Bxe},Rxe=[{_id:"hood",name:{en:"Hood",ru:"Вытяжка",de:"Abzugshaube",fr:"Capot",it:"Cappe",nl:"Hood",pl:"Okapy",pt:"Hood",es:"Campana","zh-cn":"抽油烟机"},icon:"Hoods.svg"},{_id:"alarm_system",name:{en:"Alarm System",ru:"Сигнализация",de:"Alarmanlage",fr:"Systèmes D'Alarme",it:"Sistemi Di Allarme",nl:"Alarm Systems",pl:"Systemy Alarmowe",pt:"Sistemas De Alarme",es:"Sistemas De Alarma","zh-cn":"报警系统"},icon:"Alarm Systems.svg"},{_id:"battery_status",name:{en:"Battery Status",ru:"Заряд батареи",de:"Batteriestatus",fr:"État De La Batterie",it:"Stato Della Batteria",nl:"Batterij Status",pl:"Stan Baterii",pt:"Estado Da Bateria",es:"Estado De La Batería","zh-cn":"电池状态"},icon:"Battery Status.svg"},{_id:"lighting",name:{en:"Lighting",ru:"Светильник",de:"Beleuchtung",fr:"Éclairages",it:"Illuminazione",nl:"Verlichting",pl:"Oprawy Oświetleniowe",pt:"Iluminações",es:"Iluminaciones","zh-cn":"照明"},icon:"Lightings.svg"},{_id:"shading",name:{en:"Shading",ru:"Затенение",de:"Beschattungen",fr:"Ombres",it:"Ombreggiatura",nl:"Shading",pl:"Zacienienie",pt:"Shading",es:"Sombreado","zh-cn":"底纹"},icon:"Shading.svg"},{_id:"irrigation",name:{en:"Irrigation",ru:"Орошение",de:"Bewässerung",fr:"Irrigation",it:"Irrigazione",nl:"Irrigatie",pl:"Nawadnianie",pt:"Irrigação",es:"Irrigación","zh-cn":"灌溉"},icon:"Irrigation.svg"},{_id:"iron",name:{en:"Iron",ru:"Утюг",de:"Bügeleisen",fr:"Le Fer",it:"Ferro",nl:"Ijzer",pl:"Żelazo",pt:"Ferro",es:"Hierro","zh-cn":"铁"},icon:"Iron.svg"},{_id:"computer",name:{en:"Computer",ru:"Компьютер",de:"Rechner",fr:"L'Ordinateur",it:"Computer",nl:"Computer",pl:"Komputer",pt:"Computador",es:"Ordenador","zh-cn":"电脑"},icon:"Computer.svg"},{_id:"ceiling_spotlight",name:{en:"Ceiling Spotlight",ru:"Потолочный прожектор",de:"Deckenspot",fr:"Plafond Spotlight",it:"Faretti A Soffitto",nl:"Plafond Spotlight",pl:"Reflektory Sufitowe",pt:"Tecto Foco",es:"Focos De Techo","zh-cn":"天花射灯"},icon:"Ceiling Spotlights.svg"},{_id:"printer",name:{en:"Printer",de:"Drucker",ru:"Принтер",pt:"Impressora",nl:"Printer",fr:"Imprimante",it:"Stampante",es:"Impresora",pl:"Drukarka","zh-cn":"打印机"},icon:"Printer.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"window",name:{en:"Window",ru:"Окно",de:"Fenster",fr:"La Fenêtre",it:"Finestra",nl:"Venster",pl:"Okno",pt:"Janela",es:"Ventana","zh-cn":"窗户"},icon:"Window.svg"},{_id:"garage_door",name:{en:"Garage Door",ru:"Гаражные Ворота",de:"Garagentor",fr:"Portes De Garage",it:"Garage Door",nl:"Garage Door",pl:"Bramy Garażowe",pt:"Portas De Garagem",es:"Las Puertas De Garaje","zh-cn":"车库门"},icon:"Garage Doors.svg"},{_id:"hairdryer",name:{en:"Hairdryer",ru:"Фен",de:"Haartrockner",fr:"Sèche-Cheveux",it:"Asciugacapelli",nl:"Haardroger",pl:"Suszarka Do Włosów",pt:"Secador De Cabelo",es:"Secador De Pelo","zh-cn":"电吹风"},icon:"Hairdryer.svg"},{_id:"hanging_lamp",name:{en:"Hanging Lamp",ru:"Подвесной светильник",de:"Hängelampe",fr:"Lampes Suspendues",it:"Lampade A Sospensione",nl:"Opknoping Lampen",pl:"Lampy Wiszące",pt:"Lâmpadas De Suspensão",es:"Lámparas Colgantes","zh-cn":"挂灯"},icon:"Hanging Lamps.svg"},{_id:"doorstep",name:{en:"Enterance",ru:"Входная дверь",de:"Haustür",fr:"Seuil De Porte",it:"Gradino Della Porta",nl:"Drempel",pl:"Próg",pt:"Porta",es:"Peldaño","zh-cn":"门阶"},icon:"Doorstep.svg"},{_id:"hot_water",name:{en:"Hot Water",ru:"Горячая вода",de:"Heißwasser",fr:"Eau Chaude",it:"Acqua Calda",nl:"Heet Water",pl:"Gorąca Woda",pt:"Água Quente",es:"Agua Caliente","zh-cn":"热水"},icon:"Hot Water.svg"},{_id:"heating",name:{en:"Heating",ru:"Отопление",de:"Heizung",fr:"Chauffe-Eau",it:"Riscaldatore",nl:"Verwarmer",pl:"Podgrzewacz",pt:"Aquecedor",es:"Calentador","zh-cn":"加热器"},icon:"Heater.svg"},{_id:"stove",name:{en:"Stove",ru:"Печь",de:"Herd",fr:"Le Fourneau",it:"Stufa",nl:"Fornuis",pl:"Kuchenka",pt:"Forno",es:"Cocina","zh-cn":"火炉"},icon:"Stove.svg"},{_id:"louvre",name:{en:"Louvre",ru:"Жалюзи",de:"Jalousie",fr:"Persienne",it:"Persiana Di Ventilazione",nl:"Louvre",pl:"Żaluzja",pt:"Trapeira",es:"Lumbrera","zh-cn":"卢浮宫"},icon:"Louvre.svg"},{_id:"coffee_maker",name:{en:"Coffee Maker",ru:"Кофеварка",de:"Kaffemaschine",fr:"Cafetière",it:"Macchine Da Caffè",nl:"Koffie Maker",pl:"Ekspresy Do Kawy",pt:"Cafeteira",es:"Cafetera","zh-cn":"咖啡壶"},icon:"Coffee Makers.svg"},{_id:"cold_water",name:{en:"Cold Water",ru:"Холодная вода",de:"Kaltwasser",fr:"Eau Froide",it:"Acqua Fredda",nl:"Koud Water",pl:"Zimna Woda",pt:"Água Fria",es:"Agua Fría","zh-cn":"冷水"},icon:"Cold Water.svg"},{_id:"climate",name:{en:"Climate",ru:"Климат",de:"Klima",fr:"Climat",it:"Clima",nl:"Klimaat",pl:"Klimat",pt:"Clima",es:"Clima","zh-cn":"气候"},icon:"Climate.svg"},{_id:"speaker",name:{en:"Speaker",ru:"Звуковая система",de:"Lautsprecher",fr:"Orateur",it:"Altoparlante",nl:"Spreker",pl:"Głośnik",pt:"Palestrante",es:"Altavoz","zh-cn":"扬声器"},icon:"Speaker.svg"},{_id:"led_strip",name:{en:"Led Strip",ru:"Светодиодная лента",de:"LED Leiste",fr:"Led Strip",it:"Led Strip",nl:"Loden Strip",pl:"Pasek Ledowy",pt:"Led Faixa",es:"Tira Llevada","zh-cn":"灯带"},icon:"Led Strip.svg"},{_id:"light",name:{en:"Light",ru:"Свет",de:"Licht",fr:"Lumière",it:"Leggero",nl:"Licht",pl:"Lekki",pt:"Luz",es:"Luz","zh-cn":"光"},icon:"Light.svg"},{_id:"fan",name:{en:"Fan",ru:"Вентилятор",de:"Lüfter",fr:"Ventilateur",it:"Fan",nl:"Ventilator",pl:"Wentylator",pt:"Ventilador",es:"Ventilador","zh-cn":"扇子"},icon:"Fan.svg"},{_id:"humidity",name:{en:"Humidity",ru:"Влажность",de:"Luftfeuchtigkeit",fr:"Humidité",it:"Umidità",nl:"Vochtigheid",pl:"Wilgotność",pt:"Umidade",es:"Humedad","zh-cn":"湿度"},icon:"Humidity.svg"},{_id:"ventilation",name:{en:"Ventilation",ru:"Вентиляция",de:"Lüftung",fr:"Ventilation",it:"Ventilazione",nl:"Ventilatie",pl:"Wentylacja",pt:"Ventilação",es:"Ventilación","zh-cn":"通风"},icon:"Ventilation.svg"},{_id:"chandelier",name:{en:"Chandelier",ru:"Люстра",de:"Kronleuchter",fr:"Lustre",it:"Lampadario",nl:"Kroonluchter",pl:"Żyrandol",pt:"Lustre",es:"Candelabro","zh-cn":"枝形吊灯"},icon:"Chandelier.svg"},{_id:"awning",name:{en:"Awning",ru:"Маркиза",de:"Markise",fr:"Auvents",it:"Tende",nl:"Luifels",pl:"Okrycia",pt:"Toldos",es:"Toldos","zh-cn":"遮阳篷"},icon:"Awnings.svg"},{_id:"music",name:{en:"Music",ru:"Музыка",de:"Musik",fr:"Musique",it:"Musica",nl:"Muziek",pl:"Muzyka",pt:"Música",es:"Música","zh-cn":"音乐"},icon:"Music.svg"},{_id:"people",name:{en:"People",ru:"Люди",de:"Personen",fr:"Gens",it:"Persone",nl:"Mensen",pl:"Ludzie",pt:"Pessoas",es:"Personas","zh-cn":"人们"},icon:"People.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"pump",name:{en:"Pump",ru:"Насос",de:"Pumpe",fr:"Pompe",it:"Pompa",nl:"Pomp",pl:"Pompa",pt:"Bombear",es:"Bomba","zh-cn":"泵"},icon:"Pump.svg"},{_id:"outdoor_blinds",name:{en:"Outdoor Blinds",ru:"Внещгте жалюзи",de:"Raffstore",fr:"Volets",it:"Tende Da Esterni",nl:"Outdoor Blinds",pl:"Rolety Zewnętrzne",pt:"Estores Exteriores",es:"Persianas Exteriores","zh-cn":"室外百叶窗"},icon:"Outdoor Blinds.svg"},{_id:"mowing_machine",name:{en:"Mowing Machine",ru:"Газонокосилка",de:"Rasenmäher",fr:"Machine De Fauchage",it:"Macchina Di Falciatura",nl:"Maaimachine",pl:"Kosiarka",pt:"Roçada Máquina",es:"Segadora","zh-cn":"割草机"},icon:"Mowing Machine.svg"},{_id:"receiver",name:{en:"Receiver",ru:"Приставка",de:"Receiver",fr:"Destinataire",it:"Ricevitore",nl:"Ontvanger",pl:"Odbiorca",pt:"Recebedor",es:"Receptor","zh-cn":"接收者"},icon:"Receiver.svg"},{_id:"shutters",name:{en:"Shutters",ru:"Ставни",de:"Rollladen",fr:"Volets",it:"Persiane",nl:"Shutters",pl:"Żaluzje",pt:"Persianas",es:"Persianas","zh-cn":"百叶窗"},icon:"Shutters.svg"},{_id:"smoke_detector",name:{en:"Smoke detector",de:"Rauchmelder",ru:"Детектор дыма",pt:"Detector de fumaça",nl:"Rookdetector",fr:"Détecteur de fumée",it:"Rilevatore di fumo",es:"Detector de humo",pl:"Wykrywacz dymu","zh-cn":"烟雾探测器"},icon:"SmokeDetector.svg"},{_id:"lock",name:{en:"Lock",ru:"Замок",de:"Schloß",fr:"Fermer À Clé",it:"Serratura",nl:"Slot",pl:"Zamek",pt:"Trancar",es:"Cerrar Con Llave","zh-cn":"锁"},icon:"Lock.svg"},{_id:"security",name:{en:"Security",ru:"Безопасность",de:"Sicherheit",fr:"Sécurité",it:"Sicurezza",nl:"Veiligheid",pl:"Bezpieczeństwo",pt:"Segurança",es:"Seguridad","zh-cn":"安全"},icon:"Security.svg"},{_id:"dishwasher",name:{en:"Dishwasher",ru:"Посудомоечная машина",de:"Spülmaschine",fr:"Lave-Vaisselles",it:"Lavastoviglie",nl:"Vaatwassers",pl:"Zmywarki",pt:"Máquinas De Lavar Louça",es:"Lavaplatos","zh-cn":"洗碗机"},icon:"Dishwashers.svg"},{_id:"vacuum_cleaner",name:{en:"Vacuum Cleaner",ru:"Пылесос",de:"Staubsauger",fr:"Aspirateur",it:"Aspirapolvere",nl:"Stofzuiger",pl:"Odkurzacz",pt:"Aspirador De Pó",es:"Aspiradora","zh-cn":"吸尘器"},icon:"Vacuum Cleaner.svg"},{_id:"socket",name:{en:"Socket",ru:"Розетка",de:"Steckdose",fr:"Prise",it:"Socket",nl:"Socket",pl:"Gniazdka",pt:"Tomada",es:"Zócalo","zh-cn":"套接字"},icon:"Sockets.svg"},{_id:"floor_lamp",name:{en:"Floor Lamp",ru:"Торшер",de:"Stehlampe",fr:"Lampes Pour Plancher",it:"Lampade A Stelo",nl:"Vloerlampen",pl:"Lampy Podłogowe",pt:"Lâmpadas Chão",es:"Lámparas De Pie","zh-cn":"落地灯"},icon:"Floor Lamps.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"temperature_sensor",name:{en:"Temperature Sensor",ru:"Температурный датчик",de:"Temperatur-Sensor",fr:"Capteur De Température",it:"Sensori Di Temperatura",nl:"Temperatuursensor",pl:"Czujniki Temperatury",pt:"Sensores De Temperatura",es:"Sensores De Temperatura","zh-cn":"温度传感器"},icon:"Temperature Sensors.svg"},{_id:"table_lamp",name:{en:"Table Lamp",ru:"Настольная лампа",de:"Tischlampe",fr:"Lampe De Chevet",it:"Lampade Da Tavolo",nl:"Tafellampen",pl:"Lampy Stołowe",pt:"Lâmpadas De Mesa",es:"Lámparas De Mesa","zh-cn":"台灯"},icon:"Table Lamps.svg"},{_id:"gate",name:{en:"Gate",ru:"Ворота",de:"Tor",fr:"Porte",it:"Gate",nl:"Gate",pl:"Bramy",pt:"Portões",es:"Puertas","zh-cn":"盖茨"},icon:"Gates.svg"},{_id:"dryer",name:{en:"Dryer",ru:"Сушилка",de:"Trockner",fr:"Séchoir",it:"Asciugatrice",nl:"Droger",pl:"Suszarka",pt:"Secador",es:"Secadora","zh-cn":"烘干机"},icon:"Dryer.svg"},{_id:"door",name:{en:"Door",ru:"Дверь",de:"Tür",fr:"Des Portes",it:"Porte",nl:"Deuren",pl:"Drzwi",pt:"Portas",es:"Puertas","zh-cn":"门"},icon:"Doors.svg"},{_id:"tv",name:{en:"Tv",ru:"Телевизор",de:"TV",fr:"La Télé",it:"Tv",nl:"Tv",pl:"Telewizja",pt:"Televisão",es:"Televisor","zh-cn":"电视"},icon:"Tv.svg"},{_id:"consumption",name:{en:"Consumption",ru:"Потребление",de:"Verbrauch",fr:"Consommation",it:"Consumo",nl:"Consumptie",pl:"Konsumpcja",pt:"Consumo",es:"Consumo","zh-cn":"消费"},icon:"Consumption.svg"},{_id:"amplifier",name:{en:"Amplifier",ru:"Усилитель звука",de:"Verstärker",fr:"Amplificateur",it:"Amplificatore",nl:"Versterker",pl:"Wzmacniacz",pt:"Amplificador",es:"Amplificador","zh-cn":"放大器"},icon:"Amplifier.svg"},{_id:"curtains",name:{en:"Curtains",ru:"Шторы",de:"Vorhänge",fr:"Des Rideaux",it:"Le Tende",nl:"Gordijnen",pl:"Zasłony",pt:"Cortinas",es:"Cortinas","zh-cn":"窗帘"},icon:"Curtains.svg"},{_id:"sconce",name:{en:"Sconce",ru:"Настенный светильник",de:"Wandlampe",fr:"Sconce",it:"Sconce",nl:"Sconce",pl:"Kinkiety",pt:"Arandelas",es:"Los Apliques","zh-cn":"壁灯"},icon:"Sconces.svg"},{_id:"washing_machine",name:{en:"Washing Machine",ru:"Стиральная машина",de:"Waschmaschine",fr:"Machines À Laver",it:"Lavatrici",nl:"Wasmachines",pl:"Pralki",pt:"Máquinas De Lavar Roupas",es:"Lavadoras","zh-cn":"洗衣机"},icon:"Washing Machines.svg"},{_id:"water",name:{en:"Water",ru:"Вода",de:"Wasser",fr:"L'Eau",it:"Acqua",nl:"Water",pl:"Woda",pt:"Água",es:"Agua","zh-cn":"水"},icon:"Water.svg"},{_id:"water_heater",name:{en:"Water Heater",ru:"Нагреватель воды",de:"Wasserkocher",fr:"Chauffe-Eau",it:"Scaldabagno",nl:"Waterkoker",pl:"Podgrzewacz Wody",pt:"Aquecedor De Água",es:"Calentador De Agua","zh-cn":"热水器"},icon:"Water Heater.svg"},{_id:"water_consumption",name:{en:"Water Consumption",ru:"Потребление воды",de:"Wasserverbrauch",fr:"Consommation D'Eau",it:"Consumo D'Acqua",nl:"Waterverbruik",pl:"Konsumpcja Wody",pt:"Consumo De Água",es:"Consumo De Agua","zh-cn":"耗水量"},icon:"Water Consumption.svg"},{_id:"weather",name:{en:"Weather",ru:"Погода",de:"Wetter",fr:"La Météo",it:"Tempo Metereologico",nl:"Weer",pl:"Pogoda",pt:"Clima",es:"Tiempo","zh-cn":"天气"},icon:"Weather.svg"}],Fxe=[{_id:"storeroom",name:{en:"Storeroom",ru:"Кладовая",de:"Abstellraum",fr:"Débarras",it:"Dispensa",nl:"Bergplaats",pl:"Magazyn",pt:"Despensa",es:"Trastero","zh-cn":"库房"},icon:"Storeroom.svg"},{_id:"second_floor",name:{en:"Second floor",ru:"Второй этаж",de:"Erster OG",pt:"Primeiro andar",nl:"Eerste verdieping",fr:"Premier étage",it:"Primo piano",es:"Primer piso",pl:"Pierwsze piętro","zh-cn":"第一层"},icon:"Second Floor.svg"},{_id:"dressing_room",name:{en:"Dressing Room",ru:"Гардеробная",de:"Ankleide",fr:"Vestiaire",it:"Camerino",nl:"Kleedkamer",pl:"Przebieralnia",pt:"Provador",es:"Vestidor","zh-cn":"更衣室"},icon:"Dressing Room.svg"},{_id:"workspace",name:{en:"Workspace",ru:"Рабочая Среда",de:"Arbeitszimmer",fr:"Espace De Travail",it:"Area Di Lavoro",nl:"Workspace",pl:"Workspace",pt:"Área De Trabalho",es:"Espacio De Trabajo","zh-cn":"工作区"},icon:"Workspace.svg"},{_id:"driveway",name:{en:"Driveway",ru:"Дорога",de:"Auffahrt",fr:"Allée",it:"Viale",nl:"Pad",pl:"Podjazd",pt:"Entrada Da Garagem",es:"Entrada De Coches","zh-cn":"车道"},icon:"Driveway.svg"},{_id:"outdoors",name:{en:"Outdoors",ru:"На Улице",de:"Außenbereich",fr:"En Plein Air",it:"All'Aperto",nl:"Buitenshuis",pl:"Na Dworze",pt:"Ao Ar Livre",es:"Al Aire Libre","zh-cn":"户外"},icon:"Outdoors.svg"},{_id:"bathroom",name:{en:"Bathroom",ru:"Ванная Комната",de:"Badezimmer",fr:"Salle De Bains",it:"Bagno",nl:"Badkamer",pl:"Łazienka",pt:"Banheiro",es:"Baño","zh-cn":"浴室"},icon:"Bathroom.svg"},{_id:"balcony",name:{en:"Balcony",ru:"Балкон",de:"Balkon",fr:"Balcon",it:"Balcone",nl:"Balkon",pl:"Balkon",pt:"Sacada",es:"Balcón","zh-cn":"阳台"},icon:"Balcony.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"carport",name:{en:"Carport",ru:"Навес",de:"Carport",fr:"Carport",it:"Posto Auto Coperto",nl:"Carport",pl:"Wiata",pt:"Telheiro",es:"Cochera","zh-cn":"车棚"},icon:"Carport.svg"},{_id:"attic",name:{en:"Attic",ru:"Чердак",de:"Dachgeschoss",fr:"Grenier",it:"Attico",nl:"Zolder",pl:"Poddasze",pt:"Sótão",es:"Ático","zh-cn":"阁楼"},icon:"Attic.svg"},{_id:"hall",name:{en:"Hall",ru:"Зал",de:"Diele",fr:"Salle",it:"Sala",nl:"Hal",pl:"Sala",pt:"Corredor",es:"Sala","zh-cn":"大厅"},icon:"Hall.svg"},{_id:"entrance",name:{en:"Entrance",ru:"Вход",de:"Eingang",fr:"Entrée",it:"Ingresso",nl:"Ingang",pl:"Wejście",pt:"Entrada",es:"Entrada","zh-cn":"入口"},icon:"Entrance.svg"},{_id:"ground_floor",name:{en:"Ground Floor",ru:"Первый Этаж",de:"Erdgeschoss",fr:"Rez-De-Chaussée",it:"Piano Terra",nl:"Begane Grond",pl:"Parter",pt:"Térreo",es:"Planta Baja","zh-cn":"一楼"},icon:"Ground Floor.svg"},{_id:"dining_area",name:{en:"Dining Area",ru:"Столовая",de:"Essbereich",fr:"Salle À Manger",it:"Zona Pranzo",nl:"Eethoek",pl:"Jadalnia",pt:"Área De Refeições",es:"Comedor","zh-cn":"用餐区"},icon:"Dining Area.svg"},{_id:"dining_room",name:{en:"Dining Room",ru:"Столовая",de:"Esszimmer",fr:"Salle À Manger",it:"Sala Da Pranzo",nl:"Eetkamer",pl:"Jadalnia",pt:"Sala De Jantar",es:"Comedor","zh-cn":"饭厅"},icon:"Dining Room.svg"},{_id:"gym",name:{en:"Gym",ru:"Спортзал",de:"Fitnessraum",fr:"Gym",it:"Palestra",nl:"Sportschool",pl:"Siłownia",pt:"Ginásio",es:"Gimnasio","zh-cn":"健身房"},icon:"Gym.svg"},{_id:"gallery",name:{en:"Gallery",ru:"Галерея",de:"Galerie",fr:"Galerie",it:"Galleria",nl:"Galerij",pl:"Galeria",pt:"Galeria",es:"Galería","zh-cn":"画廊"},icon:"Gallery.svg"},{_id:"garage",name:{en:"Garage",ru:"Гараж",de:"Garage",fr:"Garage",it:"Box Auto",nl:"Garage",pl:"Garaż",pt:"Garagem",es:"Garaje","zh-cn":"车库"},icon:"Garage.svg"},{_id:"wardrobe",name:{en:"Wardrobe",ru:"Гардероб",de:"Garderobe",fr:"Penderie",it:"Armadio",nl:"Garderobe",pl:"Szafa",pt:"Guarda Roupa",es:"Armario","zh-cn":"衣柜"},icon:"Wardrobe.svg"},{_id:"garden",name:{en:"Garden",ru:"Сад",de:"Garten",fr:"Jardin",it:"Giardino",nl:"Tuin",pl:"Ogród",pt:"Jardim",es:"Jardín","zh-cn":"花园"},icon:"Garden.svg"},{_id:"summer_house",name:{en:"Summer House",ru:"Дача",de:"Gartenhaus",fr:"Maison D'Été",it:"Casa Estiva",nl:"Zomerhuis",pl:"Domek Letniskowy",pt:"Summer House",es:"Casa De Verano","zh-cn":"凉亭"},icon:"Summer House.svg"},{_id:"guest_bathroom",name:{en:"Guest Bathroom",ru:"Гостевая Комната",de:"Gäste-WC",fr:"Salle De Bains Invité",it:"Guest Bathroom",nl:"Gastenbadkamer",pl:"Łazienka Gościnna",pt:"Banheiro De Hóspedes",es:"Baño De Visitas","zh-cn":"客用浴室"},icon:"Guest Bathroom.svg"},{_id:"guest_room",name:{en:"Guest Room",ru:"Гостевая Комната",de:"Gästezimmer",fr:"Chambre D'Amis",it:"Stanza Degli Ospiti",nl:"Guest Room",pl:"Pokój Gościnny",pt:"Quarto De Hóspedes",es:"Habitación De Huéspedes","zh-cn":"客房"},icon:"Guest Room.svg"},{_id:"laundry_room",name:{en:"Laundry Room",ru:"Прачечная",de:"Hauswirtschaftsraum",fr:"Buanderie",it:"Lavanderia",nl:"Wasruimte",pl:"Pralnia",pt:"Lavandaria",es:"Cuarto De Lavado","zh-cn":"洗衣房"},icon:"Laundry Room.svg"},{_id:"home_theater",name:{en:"Home Theater",ru:"Домашний Театр",de:"Heimkino",fr:"Cinéma Maison",it:"Home Theater",nl:"Thuisbioscoop",pl:"Kino Domowe",pt:"Cinema Em Casa",es:"Cine En Casa","zh-cn":"家庭电影院"},icon:"Home Theater.svg"},{_id:"boiler_room",name:{en:"Boiler Room",ru:"Бойлерная",de:"Heizungsraum",fr:"Chaufferie",it:"Locale Caldaia",nl:"Boiler Room",pl:"Kotłownia",pt:"Sala Da Caldeira",es:"Sala De Calderas","zh-cn":"锅炉房"},icon:"Boiler Room.svg"},{_id:"chamber",name:{en:"Chamber",ru:"Камера",de:"Kammer",fr:"Chambre",it:"Camera",nl:"Kamer",pl:"Izba",pt:"Câmara",es:"Cámara","zh-cn":"商会"},icon:"Chamber.svg"},{_id:"basement,_cellar",name:{en:"Basement, Cellar",ru:"Подвал, Погреб",de:"Keller",fr:"Sous-Sol, Cave",it:"Taverna, Cantina",nl:"Kelder, Kelder",pl:"Piwnica, Piwnica",pt:"Porão, Adega",es:"Sótano, Bodega","zh-cn":"地下室,地窖"},icon:"Basement.svg"},{_id:"nursery",name:{en:"Nursery",ru:"Питомник",de:"Kinderzimmer",fr:"Garderie",it:"Asilo",nl:"Kinderkamer",pl:"Żłobek",pt:"Berçário",es:"Guardería","zh-cn":"苗圃"},icon:"Nursery.svg"},{_id:"corridor",name:{en:"Corridor",ru:"Коридор",de:"Korridor",fr:"Couloir",it:"Corridoio",nl:"Gang",pl:"Korytarz",pt:"Corredor",es:"Corredor","zh-cn":"走廊"},icon:"Corridor.svg"},{_id:"kitchen",name:{en:"Kitchen",ru:"Кухня",de:"Küche",fr:"Cuisine",it:"Cucina",nl:"Keuken",pl:"Kuchnia",pt:"Cozinha",es:"Cocina","zh-cn":"厨房"},icon:"Kitchen.svg"},{_id:"upstairs",name:{en:"Upstairs",ru:"Вверх По Лестнице",de:"Obergeschoss",fr:"En Haut",it:"Di Sopra",nl:"Boven",pl:"Na Górę",pt:"Andar De Cima",es:"Piso Superior","zh-cn":"楼上"},icon:"Upstairs.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"rear_wall",name:{en:"Rear Wall",ru:"Задняя Стенка",de:"Rückwand",fr:"Paroi Arrière",it:"Parete Posteriore",nl:"Achterwand",pl:"Tylna Ściana",pt:"Parede Traseira",es:"Pared Posterior","zh-cn":"后墙"},icon:"Rear Wall.svg"},{_id:"barn",name:{en:"Barn",ru:"Амбар",de:"Scheune",fr:"Grange",it:"Fienile",nl:"Schuur",pl:"Stodoła",pt:"Celeiro",es:"Granero","zh-cn":"谷仓"},icon:"Barn.svg"},{_id:"sleeping_area",name:{en:"Sleeping Area",ru:"Спальное Место",de:"Schlafbereich",fr:"Coin Montagne",it:"Area Sleeping",nl:"Sleeping Area",pl:"Powierzchnia Spania",pt:"Sleeping Area",es:"Área De Dormir","zh-cn":"睡眠区"},icon:"Sleeping Area.svg"},{_id:"bedroom",name:{en:"Bedroom",ru:"Спальная Комната",de:"Schlafzimmer",fr:"Chambre",it:"Camera Da Letto",nl:"Slaapkamer",pl:"Sypialnia",pt:"Quarto",es:"Cuarto","zh-cn":"卧室"},icon:"Bedroom.svg"},{_id:"shed",name:{en:"Shed",ru:"Сбрасывать",de:"Schuppen",fr:"Hangar",it:"Capannone",nl:"Schuur",pl:"Budka",pt:"Cabana",es:"Cobertizo","zh-cn":"棚"},icon:"Shed.svg"},{_id:"swimming_pool",name:{en:"Swimming Pool",ru:"Плавательный Бассейн",de:"Schwimmbad",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"游泳池"},icon:"Swimming Pool.svg"},{_id:"dining",name:{en:"Dining",ru:"Обеденный",de:"Speis",fr:"À Manger",it:"Cenare",nl:"Dining",pl:"Jadalnia",pt:"Jantar",es:"Comida","zh-cn":"用餐"},icon:"Dining.svg"},{_id:"playroom",name:{en:"Playroom",ru:"Игровая Комната",de:"Spielzimmer",fr:"Salle De Jeux",it:"Stanza Dei Giochi",nl:"Speelkamer",pl:"Pokój Zabaw",pt:"Sala De Jogos",es:"Cuarto De Jugar","zh-cn":"游戏室"},icon:"Playroom.svg"},{_id:"stairway",name:{en:"Stairway",ru:"Лестница",de:"Treppe",fr:"Escalier",it:"Scala",nl:"Trap",pl:"Klatka Schodowa",pt:"Escada",es:"Escalera","zh-cn":"楼梯"},icon:"Stairway.svg"},{_id:"equipment_room",name:{en:"Equipment Room",ru:"Оборудование Номера",de:"Technikraum",fr:"Salle D'Équipement",it:"Stanza Degli Attrezzi",nl:"Technische Ruimte",pl:"Wyposażenie Pokoi",pt:"Sala De Equipamentos",es:"Cuarto De Equipos","zh-cn":"机房"},icon:"Equipment Room.svg"},{_id:"terrace",name:{en:"Terrace",ru:"Терраса",de:"Terrasse",fr:"Terrasse",it:"Terrazza",nl:"Terras",pl:"Taras",pt:"Terraço",es:"Terraza","zh-cn":"阳台"},icon:"Terrace.svg"},{_id:"toilet",name:{en:"Toilet",ru:"Туалет",de:"Toilette",fr:"Toilette",it:"Gabinetto",nl:"Toilet",pl:"Toaleta",pt:"Banheiro",es:"Inodoro","zh-cn":"洗手间"},icon:"Toilet.svg"},{_id:"stairwell",name:{en:"Stairwell",ru:"Лестничная клетка",de:"Treppenhaus",fr:"Cage D'Escalier",it:"Tromba Delle Scale",nl:"Trappenhuis",pl:"Klatka Schodowa",pt:"Caixa De Escada",es:"Hueco De Escalera","zh-cn":"楼梯间"},icon:"Stairwell.svg"},{_id:"locker_room",name:{en:"Locker Room",ru:"Камера Хранения",de:"Umkleideraum",fr:"Vestiaire",it:"Spogliatoio",nl:"Kleedkamer",pl:"Szatnia",pt:"Vestiário",es:"Vestuario","zh-cn":"更衣室"},icon:"Locker Room.svg"},{_id:"basement",name:{en:"Basement",ru:"Подвал",de:"Untergeschoss",fr:"Sous-Sol",it:"Seminterrato",nl:"Kelder",pl:"Piwnica",pt:"Porão",es:"Sótano","zh-cn":"地下室"},icon:"Basement.svg"},{_id:"front_yard",name:{en:"Front Yard",ru:"Передний Двор",de:"Vorgarten",fr:"Front Yard",it:"Cortile",nl:"Voortuin",pl:"Podwórko",pt:"Jardim Da Frente",es:"Patio Delantero","zh-cn":"前院"},icon:"Front Yard.svg"},{_id:"anteroom",name:{en:"Anteroom",ru:"Передняя",de:"Vorraum",fr:"Antichambre",it:"Anticamera",nl:"Voorkamer",pl:"Przedpokój",pt:"Ante-Sala",es:"Antesala","zh-cn":"接待室"},icon:"Anteroom.svg"},{_id:"washroom",name:{en:"Washroom",ru:"Уборная",de:"Waschraum",fr:"Toilettes",it:"Bagno",nl:"Waskamer",pl:"Umywalnia",pt:"Banheiro",es:"Baño","zh-cn":"卫生间"},icon:"Washroom.svg"},{_id:"wc",name:{en:"Wc",ru:"Туалет",de:"WC",fr:"Toilettes",it:"Bagno",nl:"Wc",pl:"Toaleta",pt:"Banheiro",es:"Wc","zh-cn":"厕所"},icon:"Wc.svg"},{_id:"workshop",name:{en:"Workshop",ru:"Мастерская",de:"Werkstatt",fr:"Atelier",it:"Laboratorio",nl:"Werkplaats",pl:"Warsztat",pt:"Oficina",es:"Taller","zh-cn":"作坊"},icon:"Workshop.svg"},{_id:"windscreen",name:{en:"Windscreen",ru:"Ветровое Стекло",de:"Windfang",fr:"Pare-Brise",it:"Parabrezza",nl:"Voorruit",pl:"Szyba Przednia",pt:"Pára-Brisas",es:"Parabrisas","zh-cn":"风档"},icon:"Windscreen.svg"},{_id:"living_area",name:{en:"Living Area",ru:"Жилая Площадь",de:"Wohnbereich",fr:"Salon",it:"Zona Giorno",nl:"Living Area",pl:"Powierzchnia Mieszkalna",pt:"Sala-De-Estar",es:"Sala De Estar","zh-cn":"生活区域"},icon:"Living Area.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"}];class Gxe extends x.Component{constructor(e){super(e),this.state={opened:!1,names:[],filter:"",icons:null,loading:!1,isAnyName:!1}}loadAllIcons(){this.state.loading||this.state.icons||this.setState({loading:!0},()=>{const e=[],t=[];if(this.props.icons){const i=this.props.icons.map((r,o)=>{let n;if(typeof r=="object"){if(n=r.icon||r.src||r.href||"",t[o]=typeof r.name=="object"?r.name[this.props.lang]||r.name.en||r._id||"":r.name||"",!t[o]){const a=n.split(".");a.pop(),t[o]=a[a.length-1]}}else n=r;return n?n.startsWith("data:")?(e[o]=n,Promise.resolve()):O.getSvg(n).then(a=>e[o]=a):Promise.resolve()});Promise.all(i).catch(r=>console.error(r)).then(()=>this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)}))}else{let i=this.props.onlyRooms||!this.props.onlyRooms&&!this.props.onlyDevices?Fxe:null;if(i&&(i.forEach(r=>{r.name&&typeof r.name=="object"&&(r.name=r.name[this.props.lang]||r.name.en||r._id),r.name=r.name||r._id}),i=i.filter((r,o)=>!(i!=null&&i.find((n,a)=>o!==a&&n.icon===r.icon&&n.name===r.name))),i.forEach((r,o)=>{t[o]=r.name,e[o]=`data:image/svg+xml;base64,${Jxe[r.icon.replace(/\.svg$/,"")]}`})),i=this.props.onlyDevices||!this.props.onlyRooms&&!this.props.onlyDevices?Rxe:null,i){const r=e.length;i&&i.forEach(o=>{o.name&&typeof o.name=="object"&&(o.name=o.name[this.props.lang]||o.name.en||o._id),o.name=o.name||o._id}),i=i.filter((o,n)=>!(i!=null&&i.find((a,c)=>n!==c&&a.icon===o.icon&&a.name===o.name))),i.forEach((o,n)=>{t[n+r]=o.name,e[n+r]=`data:image/svg+xml;base64,${oxe[o.icon.replace(/\.svg$/,"")]}`})}this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)})}})}render(){return this.state.loading?M.createElement(j.CircularProgress,null):M.createElement(M.Fragment,null,M.createElement(j.Button,{color:"grey",variant:"outlined",title:this.props.t("ra_Select predefined icon"),onClick:()=>this.setState({opened:!0},()=>this.loadAllIcons()),style:{minWidth:40,marginRight:8}},"..."),this.state.opened?M.createElement(j.Dialog,{onClose:()=>this.setState({opened:!1}),open:!0},M.createElement(j.DialogTitle,null,this.props.t("ra_Select predefined icon"),this.state.isAnyName?M.createElement(j.TextField,{variant:"standard",margin:"dense",style:{marginLeft:20},value:this.state.filter,onChange:e=>this.setState({filter:e.target.value.toLowerCase()}),placeholder:this.props.t("ra_Filter"),slotProps:{input:{endAdornment:this.state.filter?M.createElement(j.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({filter:""})},M.createElement(lN,null)):void 0}}}):null),M.createElement(j.DialogContent,null,M.createElement("div",{style:{width:"100%",textAlign:"center"}},this.state.icons&&this.state.icons.map((e,t)=>!this.state.filter||this.state.names[t]&&this.state.names[t].toLowerCase().includes(this.state.filter)?M.createElement(j.Tooltip,{title:this.state.names[t]||"",key:t,slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>this.setState({opened:!1},()=>{const i=this.props.onSelect||this.props.onChange;i&&i(e)}),size:"large"},M.createElement(me,{src:e,alt:t.toString(),style:{width:32,height:32,borderRadius:5}}))):null))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({opened:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Close")))):null)}}const Ot={formContainer:{display:"flex",justifyContent:"left",alignItems:"center"},formControl:{display:"flex",padding:24,flexGrow:1e3},divContainer:{width:64,height:32,whiteSpace:"nowrap",lineHeight:"32px",marginRight:8},dragField:{textAlign:"center",display:"table",minHeight:90,width:"calc(100% - 60px)",border:"2px dashed #777",borderRadius:10,padding:4},formIcon:{margin:10,opacity:.6},text:{display:"table-cell",verticalAlign:"middle"}};function G3e(s){var a,c,l,N;const e=s.icon,t=s.onChange,i=x.useCallback(u=>{const L=new FileReader;L.addEventListener("load",()=>t(L.result),!1),u[0]&&L.readAsDataURL(u[0])},[t]),{getRootProps:r,getInputProps:o,isDragActive:n}=cL({onDrop:i});return M.createElement("div",{style:Ot.formContainer},e?M.createElement(e,{style:Ot.formIcon}):null,M.createElement(j.FormControl,{variant:"standard",style:{...Ot.formControl,padding:3}},M.createElement(j.InputLabel,{shrink:!0,sx:(a=s.customStyles)!=null&&a.label?{"&.MuiInputLabel-root":s.customStyles.label}:void 0,classes:{root:(c=s.customClasses)==null?void 0:c.label}},s.label),M.createElement("div",{style:Ot.formContainer},s.value?M.createElement("div",{style:Ot.divContainer},M.createElement(me,{style:{...s.previewStyle,...((l=s.customStyles)==null?void 0:l.icon)||void 0},src:s.value,className:O.clsx(s.previewClassName,(N=s.customClasses)==null?void 0:N.icon)}),!s.disabled&&M.createElement(j.IconButton,{style:{verticalAlign:"top"},title:d.t("ra_Clear icon"),size:"small",onClick:()=>s.onChange("")},M.createElement(lN,null))):!s.disabled&&M.createElement(Gxe,{icons:s.icons,onlyRooms:s.onlyRooms,onlyDevices:s.onlyDevices,onSelect:u=>s.onChange(u),t:d.t,lang:d.getLanguage()}),!s.disabled&&M.createElement("div",{...r(),style:{...Ot.dragField,...n?{backgroundColor:"rgba(0, 255, 0, 0.1)"}:{cursor:"pointer"}}},M.createElement("input",{...o()}),n?M.createElement("span",{style:Ot.text},d.t("ra_Drop the files here...")):M.createElement("span",{style:Ot.text},d.t("ra_Drag 'n' drop some files here, or click to select files"))))))}function Hxe(s){const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;return t!=null&&t.remove?t.remove():t&&e.removeChild(t),e.remove(),t}function Vxe(s){const e={};if(!s)return e;for(let t,i=0;io[1].toUpperCase()),e[t]=s[i].value}return e}class xr extends x.Component{svg;static REMOTE_SERVER=window.location.hostname.includes("iobroker.in");static REMOTE_PREFIX=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);constructor(e){var t;super(e),this.state={svg:!!((t=this.props.src)!=null&&t.startsWith("data:")),created:!0,color:this.props.color||"",src:this.props.src||"",imgError:!1,showError:!!this.props.showError},this.svg=this.state.svg&&this.state.src?this.getSvgFromData(this.state.src):null}static getDerivedStateFromProps(e,t){var o;const i={};let r=!1;return e&&t&&e.src!==t.src&&(i.src=e.src,i.svg=(o=e.src)==null?void 0:o.startsWith("data:"),i.created=!1,r=!0),e&&t&&e.color!==t.color&&(i.color=e.color,i.created=!1,r=!0),e&&t&&e.showError!==t.showError&&(i.showError=e.showError,r=!0),r?i:null}getSvgFromData(e){const t="data:image/svg+xml;base64,";if(!e.startsWith(t))return null;e=e.substring(t.length);try{e=atob(e);const i=Hxe(e),r=i.innerHTML,o=Vxe(i.attributes);return i.remove(),M.createElement(j.Box,{component:"svg",sx:this.props.sx,className:this.props.className,style:this.state.color?{color:this.state.color}:void 0,...o,dangerouslySetInnerHTML:{__html:r}})}catch{}return null}render(){if(this.state.svg)return this.state.created||setTimeout(()=>{this.svg=this.state.src?this.getSvgFromData(this.state.src):null,this.setState({created:!0})},50),this.svg;if(this.state.src){if(this.state.imgError||!this.state.src)return M.createElement(DM,{className:this.props.className});if(xr.REMOTE_SERVER&&!this.state.src.startsWith("http://")&&!this.state.src.startsWith("https://")){let e=(this.props.imagePrefix||"")+this.state.src;return e.startsWith("./")?e=xr.REMOTE_PREFIX+e.substring(2):e.startsWith("/")||(e=xr.REMOTE_PREFIX+e),M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:`https://remote-files.iobroker.in${e}`,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:(this.props.imagePrefix||"")+this.state.src,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return null}}function Zxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"},child:[]}]})(s)}function Xxe(s){return Z({attr:{t:"1569683928793",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H212V212h200v200zM864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H612V212h200v200zM864 544H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z m-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function Kxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"},child:[]}]})(s)}function qxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z"},child:[]}]})(s)}function e_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z"},child:[]}]})(s)}function t_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z"},child:[]}]})(s)}function s_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function i_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function r_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M24 5.25v13a.75.75 0 0 1-1.136.643L16.5 15.075v2.175A1.75 1.75 0 0 1 14.75 19h-13A1.75 1.75 0 0 1 0 17.25v-11C0 5.284.784 4.5 1.75 4.5h13c.966 0 1.75.784 1.75 1.75v2.175l6.364-3.818A.75.75 0 0 1 24 5.25Zm-9 1a.25.25 0 0 0-.25-.25h-13a.25.25 0 0 0-.25.25v11c0 .138.112.25.25.25h13a.25.25 0 0 0 .25-.25v-11Zm1.5 7.075 6 3.6V6.575l-6 3.6Z"},child:[]}]})(s)}function Ol(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M3.89,17.6c0-0.99,0.31-1.88,0.93-2.65s1.41-1.27,2.38-1.49c0.26-1.17,0.85-2.14,1.78-2.88c0.93-0.75,2-1.12,3.22-1.12 - c1.18,0,2.24,0.36,3.16,1.09c0.93,0.73,1.53,1.66,1.8,2.8h0.27c1.18,0,2.18,0.41,3.01,1.24s1.25,1.83,1.25,3 - c0,1.18-0.42,2.18-1.25,3.01s-1.83,1.25-3.01,1.25H8.16c-0.58,0-1.13-0.11-1.65-0.34S5.52,21,5.14,20.62 - c-0.38-0.38-0.68-0.84-0.91-1.36S3.89,18.17,3.89,17.6z M5.34,17.6c0,0.76,0.28,1.42,0.82,1.96s1.21,0.82,1.99,0.82h9.28 - c0.77,0,1.44-0.27,1.99-0.82c0.55-0.55,0.83-1.2,0.83-1.96c0-0.76-0.27-1.42-0.83-1.96c-0.55-0.54-1.21-0.82-1.99-0.82h-1.39 - c-0.1,0-0.15-0.05-0.15-0.15l-0.07-0.49c-0.1-0.94-0.5-1.73-1.19-2.35s-1.51-0.93-2.45-0.93c-0.94,0-1.76,0.31-2.46,0.94 - c-0.7,0.62-1.09,1.41-1.18,2.34l-0.07,0.42c0,0.1-0.05,0.15-0.16,0.15l-0.45,0.07c-0.72,0.06-1.32,0.36-1.81,0.89 - C5.59,16.24,5.34,16.87,5.34,17.6z M14.19,8.88c-0.1,0.09-0.08,0.16,0.07,0.21c0.43,0.19,0.79,0.37,1.08,0.55 - c0.11,0.03,0.19,0.02,0.22-0.03c0.61-0.57,1.31-0.86,2.12-0.86c0.81,0,1.5,0.27,2.1,0.81c0.59,0.54,0.92,1.21,0.99,2l0.09,0.64h1.42 - c0.65,0,1.21,0.23,1.68,0.7c0.47,0.47,0.7,1.02,0.7,1.66c0,0.6-0.21,1.12-0.62,1.57s-0.92,0.7-1.53,0.77c-0.1,0-0.15,0.05-0.15,0.16 - v1.13c0,0.11,0.05,0.16,0.15,0.16c1.01-0.06,1.86-0.46,2.55-1.19s1.04-1.6,1.04-2.6c0-1.06-0.37-1.96-1.12-2.7 - c-0.75-0.75-1.65-1.12-2.7-1.12h-0.15c-0.26-1-0.81-1.82-1.65-2.47c-0.83-0.65-1.77-0.97-2.8-0.97C16.28,7.29,15.11,7.82,14.19,8.88 - z`},child:[]}]})(s)}function o_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M4.37,14.62c0-0.24,0.08-0.45,0.25-0.62c0.17-0.16,0.38-0.24,0.6-0.24h2.04c0.23,0,0.42,0.08,0.58,0.25 - c0.15,0.17,0.23,0.37,0.23,0.61S8,15.06,7.85,15.23c-0.15,0.17-0.35,0.25-0.58,0.25H5.23c-0.23,0-0.43-0.08-0.6-0.25 - C4.46,15.06,4.37,14.86,4.37,14.62z M7.23,21.55c0-0.23,0.08-0.43,0.23-0.61l1.47-1.43c0.15-0.16,0.35-0.23,0.59-0.23 - c0.24,0,0.44,0.08,0.6,0.23s0.24,0.34,0.24,0.57c0,0.24-0.08,0.46-0.24,0.64L8.7,22.14c-0.41,0.32-0.82,0.32-1.23,0 - C7.31,21.98,7.23,21.78,7.23,21.55z M7.23,7.71c0-0.23,0.08-0.43,0.23-0.61C7.66,6.93,7.87,6.85,8.1,6.85 - c0.22,0,0.42,0.08,0.59,0.24l1.43,1.47c0.16,0.15,0.24,0.35,0.24,0.59c0,0.24-0.08,0.44-0.24,0.6s-0.36,0.24-0.6,0.24 - c-0.24,0-0.44-0.08-0.59-0.24L7.47,8.32C7.31,8.16,7.23,7.95,7.23,7.71z M9.78,14.62c0-0.93,0.23-1.8,0.7-2.6s1.1-1.44,1.91-1.91 - s1.67-0.7,2.6-0.7c0.7,0,1.37,0.14,2.02,0.42c0.64,0.28,1.2,0.65,1.66,1.12c0.47,0.47,0.84,1.02,1.11,1.66 - c0.27,0.64,0.41,1.32,0.41,2.02c0,0.94-0.23,1.81-0.7,2.61c-0.47,0.8-1.1,1.43-1.9,1.9c-0.8,0.47-1.67,0.7-2.61,0.7 - s-1.81-0.23-2.61-0.7c-0.8-0.47-1.43-1.1-1.9-1.9C10.02,16.43,9.78,15.56,9.78,14.62z M11.48,14.62c0,0.98,0.34,1.81,1.03,2.5 - c0.68,0.69,1.51,1.04,2.49,1.04s1.81-0.35,2.5-1.04s1.04-1.52,1.04-2.5c0-0.96-0.35-1.78-1.04-2.47c-0.69-0.68-1.52-1.02-2.5-1.02 - c-0.97,0-1.8,0.34-2.48,1.02C11.82,12.84,11.48,13.66,11.48,14.62z M14.14,22.4c0-0.24,0.08-0.44,0.25-0.6s0.37-0.24,0.6-0.24 - c0.24,0,0.45,0.08,0.61,0.24s0.24,0.36,0.24,0.6v1.99c0,0.24-0.08,0.45-0.25,0.62c-0.17,0.17-0.37,0.25-0.6,0.25 - s-0.44-0.08-0.6-0.25c-0.17-0.17-0.25-0.38-0.25-0.62V22.4z M14.14,6.9V4.86c0-0.23,0.08-0.43,0.25-0.6C14.56,4.09,14.76,4,15,4 - s0.43,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6V6.9c0,0.23-0.08,0.42-0.25,0.58S15.23,7.71,15,7.71s-0.44-0.08-0.6-0.23 - S14.14,7.13,14.14,6.9z M19.66,20.08c0-0.23,0.08-0.42,0.23-0.56c0.15-0.16,0.34-0.23,0.56-0.23c0.24,0,0.44,0.08,0.6,0.23 - l1.46,1.43c0.16,0.17,0.24,0.38,0.24,0.61c0,0.23-0.08,0.43-0.24,0.59c-0.4,0.31-0.8,0.31-1.2,0l-1.42-1.42 - C19.74,20.55,19.66,20.34,19.66,20.08z M19.66,9.16c0-0.25,0.08-0.45,0.23-0.59l1.42-1.47c0.17-0.16,0.37-0.24,0.59-0.24 - c0.24,0,0.44,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6c0,0.25-0.08,0.46-0.24,0.62l-1.46,1.43c-0.18,0.16-0.38,0.24-0.6,0.24 - c-0.23,0-0.41-0.08-0.56-0.24S19.66,9.4,19.66,9.16z M21.92,14.62c0-0.24,0.08-0.44,0.24-0.62c0.16-0.16,0.35-0.24,0.57-0.24h2.02 - c0.23,0,0.43,0.09,0.6,0.26c0.17,0.17,0.26,0.37,0.26,0.6s-0.09,0.43-0.26,0.6c-0.17,0.17-0.37,0.25-0.6,0.25h-2.02 - c-0.23,0-0.43-0.08-0.58-0.25S21.92,14.86,21.92,14.62z`},child:[]}]})(s)}function n_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.38,21.83c0-0.3,0.1-0.55,0.29-0.76c0.19-0.21,0.43-0.31,0.7-0.31v-0.02l13.16,0.04c0.06-0.01,0.1-0.02,0.1-0.02 - c0.27,0.01,0.51,0.12,0.7,0.33c0.19,0.21,0.29,0.47,0.28,0.77c0,0.3-0.1,0.55-0.29,0.76c-0.19,0.21-0.43,0.31-0.7,0.31v0.01 - L8.59,22.9c-0.1,0.01-0.17,0.02-0.22,0.02c-0.28-0.01-0.51-0.11-0.7-0.32C7.47,22.39,7.37,22.13,7.38,21.83z M8.2,16.37 - c-0.01-0.43,0.04-0.93,0.16-1.52c0.06-0.3,0.2-0.76,0.44-1.37c0.02-0.05,0.07-0.14,0.13-0.28c0.01,0.02,0.03,0.03,0.04,0.05 - s0.02,0.02,0.02,0.03c0.11,0.44,0.27,0.84,0.49,1.2c0.21,0.32,0.48,0.56,0.82,0.69c0.26,0.11,0.63,0.17,1.1,0.18 - c0.02,0,0.05,0,0.08,0c0.03,0,0.06,0,0.08,0c-0.33-0.33-0.59-0.67-0.79-1c-0.3-0.52-0.49-1.12-0.57-1.81 - c-0.06-0.54-0.03-1.19,0.09-1.96c0.02-0.15,0.12-0.49,0.29-1.01c0.15-0.47,0.36-0.9,0.64-1.28C11.54,7.8,12,7.3,12.61,6.78 - c0.37-0.31,0.89-0.67,1.56-1.07c0.07-0.04,0.18-0.11,0.35-0.19c0,0.02,0,0.04,0,0.05s0,0.03,0,0.04v0.02 - c-0.24,0.57-0.41,1.15-0.49,1.73c-0.06,0.53,0.02,1.02,0.24,1.48c0.17,0.36,0.48,0.75,0.92,1.15c0.09,0.09,0.29,0.29,0.6,0.58 - c0.3,0.29,0.54,0.52,0.7,0.68l0.25,0.25c0.26-0.38,0.41-0.83,0.44-1.35c0.04-0.55,0-1.15-0.14-1.8c0-0.01,0-0.04,0.01-0.11 - c0.02,0.02,0.13,0.1,0.3,0.24c0.56,0.5,0.98,0.95,1.28,1.34c0.48,0.62,0.83,1.21,1.06,1.74c0.19,0.46,0.31,0.92,0.38,1.4 - c0.06,0.42,0.08,0.77,0.07,1.05c-0.01,0.78-0.1,1.43-0.25,1.96c-0.07,0.21-0.13,0.38-0.19,0.52c0.25-0.07,0.47-0.16,0.65-0.26 - c0.25-0.16,0.45-0.37,0.6-0.66c0.16-0.29,0.29-0.62,0.38-0.98c0-0.01,0.01-0.03,0.03-0.05c0.01,0.02,0.02,0.05,0.05,0.09 - c0.02,0.04,0.04,0.07,0.05,0.1c0.13,0.31,0.22,0.63,0.27,0.97c0.08,0.38,0.1,0.75,0.08,1.13c-0.02,0.29-0.07,0.56-0.16,0.81 - c-0.08,0.24-0.16,0.43-0.22,0.58c-0.19,0.38-0.39,0.71-0.62,0.98c-0.06,0.07-0.11,0.13-0.14,0.16H9.67 - c-0.01-0.01-0.03-0.03-0.07-0.06s-0.06-0.05-0.08-0.07C9.26,18.98,8.98,18.6,8.7,18.1c-0.08-0.15-0.18-0.38-0.29-0.69 - C8.29,17.1,8.22,16.75,8.2,16.37z`},child:[]}]})(s)}function a_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.56,17.19c0-0.88,0.24-1.89,0.72-3.03s1.1-2.25,1.86-3.31c1.56-2.06,2.92-3.62,4.06-4.67l0.75-0.72 - c0.25,0.26,0.53,0.5,0.83,0.72c0.41,0.42,1.04,1.11,1.88,2.09s1.57,1.85,2.17,2.65c0.71,1.01,1.32,2.1,1.81,3.25 - s0.74,2.16,0.74,3.03c0,1-0.19,1.95-0.58,2.86c-0.39,0.91-0.91,1.7-1.57,2.36c-0.66,0.66-1.45,1.19-2.37,1.58 - c-0.92,0.39-1.89,0.59-2.91,0.59c-1,0-1.95-0.19-2.86-0.57c-0.91-0.38-1.7-0.89-2.36-1.55c-0.66-0.65-1.19-1.44-1.58-2.35 - S7.56,18.23,7.56,17.19z M9.82,14.26c0,0.83,0.17,1.49,0.52,1.99c0.35,0.49,0.88,0.74,1.59,0.74c0.72,0,1.25-0.25,1.61-0.74 - c0.35-0.49,0.53-1.15,0.54-1.99c-0.01-0.84-0.19-1.5-0.54-2c-0.35-0.49-0.89-0.74-1.61-0.74c-0.71,0-1.24,0.25-1.59,0.74 - C9.99,12.76,9.82,13.42,9.82,14.26z M11.39,14.26c0-0.15,0-0.27,0-0.35s0.01-0.19,0.02-0.33c0.01-0.14,0.02-0.25,0.05-0.32 - s0.05-0.16,0.09-0.24c0.04-0.08,0.09-0.15,0.15-0.18c0.07-0.04,0.14-0.06,0.23-0.06c0.14,0,0.25,0.04,0.33,0.12s0.14,0.21,0.17,0.38 - c0.03,0.18,0.05,0.32,0.06,0.45s0.01,0.3,0.01,0.52c0,0.23,0,0.4-0.01,0.52c-0.01,0.12-0.03,0.27-0.06,0.45 - c-0.03,0.17-0.09,0.3-0.17,0.38s-0.19,0.12-0.33,0.12c-0.09,0-0.16-0.02-0.23-0.06c-0.07-0.04-0.12-0.1-0.15-0.18 - c-0.04-0.08-0.07-0.17-0.09-0.24c-0.02-0.08-0.04-0.19-0.05-0.32c-0.01-0.14-0.02-0.25-0.02-0.32S11.39,14.41,11.39,14.26z - M11.98,22.01h1.32l4.99-10.74h-1.35L11.98,22.01z M16.28,19.02c0.01,0.84,0.2,1.5,0.55,2c0.35,0.49,0.89,0.74,1.6,0.74 - c0.72,0,1.25-0.25,1.6-0.74c0.35-0.49,0.52-1.16,0.53-2c-0.01-0.84-0.18-1.5-0.53-1.99c-0.35-0.49-0.88-0.74-1.6-0.74 - c-0.71,0-1.25,0.25-1.6,0.74C16.47,17.52,16.29,18.18,16.28,19.02z M17.85,19.02c0-0.23,0-0.4,0.01-0.52 - c0.01-0.12,0.03-0.27,0.06-0.45s0.09-0.3,0.17-0.38s0.19-0.12,0.33-0.12c0.09,0,0.17,0.02,0.24,0.06c0.07,0.04,0.12,0.1,0.16,0.19 - c0.04,0.09,0.07,0.17,0.1,0.24s0.04,0.18,0.05,0.32l0.01,0.32l0,0.34c0,0.16,0,0.28,0,0.35l-0.01,0.32l-0.05,0.32l-0.1,0.24 - l-0.16,0.19l-0.24,0.06c-0.14,0-0.25-0.04-0.33-0.12s-0.14-0.21-0.17-0.38c-0.03-0.18-0.05-0.33-0.06-0.45S17.85,19.25,17.85,19.02z - `},child:[]}]})(s)}function M_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M6.34,12.48c0-0.94,0.3-1.78,0.89-2.52s1.34-1.21,2.25-1.41C9.73,7.43,10.3,6.5,11.2,5.78s1.92-1.08,3.08-1.08 - c1.12,0,2.13,0.35,3.02,1.05c0.89,0.7,1.46,1.6,1.73,2.69h0.27c1.12,0,2.08,0.39,2.88,1.18c0.79,0.78,1.19,1.74,1.19,2.85 - c0,0.6-0.12,1.17-0.37,1.7c-0.25,0.53-0.59,0.99-1.03,1.37v0.03c0,0.59-0.19,1.12-0.56,1.59c-0.37,0.47-0.84,0.76-1.4,0.89 - c-0.14,0.62-0.45,1.15-0.91,1.58c-0.46,0.43-1.01,0.7-1.63,0.8c0.29,0.34,0.43,0.72,0.43,1.13c0,0.48-0.17,0.89-0.51,1.24 - c-0.34,0.34-0.75,0.52-1.23,0.52c-0.48,0-0.89-0.17-1.23-0.52c-0.34-0.34-0.51-0.76-0.51-1.24c0-0.19,0.03-0.38,0.1-0.57h-0.1 - c-0.58,0-1.08-0.21-1.5-0.63c-0.42-0.42-0.63-0.92-0.63-1.5c0-0.4,0.1-0.76,0.3-1.07c-0.52-0.29-0.89-0.7-1.12-1.25h-1.28v-0.01 - c-1.07-0.07-1.98-0.49-2.73-1.27S6.34,13.56,6.34,12.48z M7.74,12.23c0,0.8,0.28,1.48,0.84,2.04s1.24,0.84,2.03,0.84 - c0.49,0,0.95-0.11,1.37-0.34c0.12,0.74,0.47,1.36,1.04,1.86s1.25,0.74,2.02,0.74c0.87,0,1.61-0.31,2.22-0.92 - c0.41,0.48,0.92,0.71,1.54,0.71c0.57,0,1.05-0.2,1.46-0.6c0.4-0.4,0.6-0.89,0.6-1.46c0.4-0.27,0.72-0.61,0.95-1.04 - c0.23-0.42,0.35-0.88,0.35-1.37c0-0.79-0.28-1.47-0.85-2.02c-0.57-0.55-1.25-0.83-2.05-0.83c-0.56,0-1.07,0.15-1.53,0.44 - c0.06-0.24,0.08-0.51,0.08-0.79c0-0.96-0.34-1.78-1.03-2.46c-0.69-0.68-1.52-1.01-2.49-1.01c-0.94,0-1.75,0.33-2.43,0.97 - s-1.04,1.44-1.07,2.37c-0.02,0-0.05,0-0.08,0c-0.04,0-0.07,0-0.09,0c-0.79,0-1.46,0.28-2.03,0.84S7.74,11.45,7.74,12.23z`},child:[]}]})(s)}function c_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M9.91,19.56c0-0.85,0.2-1.64,0.59-2.38s0.94-1.35,1.65-1.84V5.42c0-0.8,0.27-1.48,0.82-2.03S14.2,2.55,15,2.55 - c0.81,0,1.49,0.28,2.04,0.83c0.55,0.56,0.83,1.23,0.83,2.03v9.92c0.71,0.49,1.25,1.11,1.64,1.84s0.58,1.53,0.58,2.38 - c0,0.92-0.23,1.78-0.68,2.56s-1.07,1.4-1.85,1.85s-1.63,0.68-2.56,0.68c-0.92,0-1.77-0.23-2.55-0.68s-1.4-1.07-1.86-1.85 - S9.91,20.48,9.91,19.56z M11.67,19.56c0,0.93,0.33,1.73,0.98,2.39c0.65,0.66,1.44,0.99,2.36,0.99c0.93,0,1.73-0.33,2.4-1 - s1.01-1.46,1.01-2.37c0-0.62-0.16-1.2-0.48-1.73c-0.32-0.53-0.76-0.94-1.32-1.23l-0.28-0.14c-0.1-0.04-0.15-0.14-0.15-0.29V5.42 - c0-0.32-0.11-0.59-0.34-0.81C15.62,4.4,15.34,4.29,15,4.29c-0.32,0-0.6,0.11-0.83,0.32c-0.23,0.21-0.34,0.48-0.34,0.81v10.74 - c0,0.15-0.05,0.25-0.14,0.29l-0.27,0.14c-0.55,0.29-0.98,0.7-1.29,1.23C11.82,18.35,11.67,18.92,11.67,19.56z M12.45,19.56 - c0,0.71,0.24,1.32,0.73,1.82s1.07,0.75,1.76,0.75s1.28-0.25,1.79-0.75c0.51-0.5,0.76-1.11,0.76-1.81c0-0.63-0.22-1.19-0.65-1.67 - c-0.43-0.48-0.96-0.77-1.58-0.85V9.69c0-0.06-0.03-0.13-0.1-0.19c-0.07-0.07-0.14-0.1-0.22-0.1c-0.09,0-0.16,0.03-0.21,0.08 - c-0.05,0.06-0.08,0.12-0.08,0.21v7.34c-0.61,0.09-1.13,0.37-1.56,0.85C12.66,18.37,12.45,18.92,12.45,19.56z`},child:[]}]})(s)}function u_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"},child:[]}]})(s)}function l_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"},child:[]},{tag:"path",attr:{d:"M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"},child:[]}]})(s)}function El(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"},child:[]}]})(s)}function N_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M8 12a4 4 0 0 0 4 4m0 -8a4 4 0 0 0 -4 4"},child:[]},{tag:"path",attr:{d:"M3 12h1"},child:[]},{tag:"path",attr:{d:"M12 3v1"},child:[]},{tag:"path",attr:{d:"M12 20v1"},child:[]},{tag:"path",attr:{d:"M5.6 5.6l.7 .7"},child:[]},{tag:"path",attr:{d:"M6.3 17.7l-.7 .7"},child:[]},{tag:"path",attr:{d:"M20 7l-3 5h4l-3 5"},child:[]}]})(s)}function L_e(s){return Z({attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M224,127.17a96.48,96.48,0,0,1-2.39,22.18A24,24,0,0,1,198.21,168H152a24,24,0,0,0-24,24,24,24,0,0,1-32,22.61C58.73,201.44,32,169.81,32,128a96,96,0,0,1,95-96C179.84,31.47,223.55,74.35,224,127.17Z",opacity:"0.2"},child:[]},{tag:"path",attr:{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"},child:[]}]})(s)}function g_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M296,320H216a24,24,0,0,0,0,48h80a24,24,0,0,0,0-48Zm0,32H216a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"}),M.createElement("path",{d:"M68.071,123.492c22.578-13.918,52.2-25.229,85.674-32.71l-3.49-15.615c-35.688,7.977-66.163,19.653-90.58,34.705-17.914,11.043-32.041,23.643-41.99,37.451l12.98,9.354C39.376,144.588,51.961,133.423,68.071,123.492Z"}),M.createElement("path",{d:"M435.533,137.112C409.439,121.027,374,108.967,332.845,102.144,322.474,87,288.213,80,256,80s-66.474,7-76.845,22.144C138,108.967,102.561,121.027,76.467,137.112,47.376,155.045,32,176.792,32,200v96c0,29,24.155,55.7,68.016,75.193C141.813,389.77,197.209,400,256,400s114.187-10.23,155.984-28.807C455.845,351.7,480,325,480,296V200C480,176.792,464.624,155.045,435.533,137.112ZM177.64,151.23C185.676,168.192,221.98,176,256,176s70.324-7.808,78.36-24.77c21.862,4.212,41.832,10.19,58.13,17.44C422.343,181.941,432,195.509,432,200s-9.657,18.059-39.51,31.33C357.224,247.008,307.475,256,256,256s-101.224-8.992-136.49-24.67C89.657,218.059,80,204.491,80,200s9.657-18.059,39.512-31.331C135.808,161.42,155.778,155.442,177.64,151.23Zm14.36-19c15.6,8,40.35,11.773,64,11.773s48.4-3.775,64-11.773V144c0,.687-2.715,5.08-15.618,9.381C291.577,157.649,274.4,160,256,160s-35.577-2.351-48.382-6.619C194.715,149.08,192,144.687,192,144Zm15.618-29.608C220.423,98.351,237.605,96,256,96s35.577,2.351,48.382,6.619C317.285,106.92,320,111.313,320,112s-2.715,5.08-15.618,9.381C291.577,125.649,274.4,128,256,128s-35.577-2.351-48.382-6.619C194.715,117.08,192,112.687,192,112S194.715,106.92,207.618,102.619ZM176,118.937v16.319c-23.589,4.453-45.254,10.9-62.99,18.794C82.779,167.489,64,185.1,64,200s18.779,32.511,49.01,45.95C150.249,262.505,202.367,272,256,272s105.751-9.5,142.99-26.05C429.221,232.511,448,214.9,448,200s-18.779-32.511-49.008-45.95c-17.738-7.89-39.4-14.341-62.992-18.794V118.937C411.852,132.7,464,165.41,464,200c0,21.967-21.328,44.044-58.516,60.572C365.688,278.259,312.6,288,256,288s-109.688-9.741-149.484-27.428C69.328,244.044,48,221.967,48,200,48,165.41,100.148,132.7,176,118.937ZM464,296c0,21.967-21.327,44.044-58.514,60.572C365.689,374.259,312.6,384,256,384s-109.689-9.741-149.486-27.428C69.327,340.044,48,317.967,48,296V239.371c11.522,13.444,29.066,25.621,52.018,35.822C141.814,293.77,197.211,304,256,304s114.186-10.23,155.982-28.807c22.952-10.2,40.5-22.378,52.018-35.822Z"}),M.createElement("path",{d:"M418.482,385.814C374.684,405.28,316.979,416,256,416a488.01,488.01,0,0,1-78.705-6.23l-2.59,15.789A504.064,504.064,0,0,0,256,432c63.169,0,123.181-11.21,168.981-31.565q1.3-.576,2.572-1.16l-6.655-14.55Q419.7,385.274,418.482,385.814Z"}),M.createElement("path",{d:"M436.123,377.062l7.754,14c5.883-3.259,11.492-6.728,16.674-10.31l-9.1-13.161C446.7,370.871,441.546,374.059,436.123,377.062Z"}),M.createElement("rect",{x:"248",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"280",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"216",y:"192",width:"16",height:"16"})))}function j_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M298.667 298.667c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32c0 17.642 14.357 32 32 32zm0-42.667c5.867 0 10.667 4.779 10.667 10.667s-4.8 10.667-10.667 10.667S288 272.555 288 266.667 292.8 256 298.667 256z"}),M.createElement("path",{fill:"currentColor",d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667c-.597 0-1.131.256-1.707.341-.555.085-1.088.149-1.621.32-.939.32-1.749.789-2.56 1.344-.32.213-.704.277-1.003.533-.107.085-.149.213-.256.32-.768.704-1.365 1.579-1.899 2.496-.213.341-.512.619-.661.981-.597 1.345-.96 2.774-.96 4.332v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h42.667c.576 0 1.173-.043 1.749-.149l256-42.667a10.672 10.672 0 0 0 8.917-10.517V53.333c0-5.227-3.776-9.664-8.917-10.517L235.541 21.333h159.125v480c0 5.888 4.779 10.667 10.667 10.667H448c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-96-428.31v387.264l-234.667 39.125V23.253L352 62.357z"}))}function fl(s){return M.createElement("svg",{viewBox:"0 0 512.006 512.006",...s},M.createElement("path",{d:"M502.379 211.249c0 74.656-60.52 135.176-135.176 135.176-6.469.01-12.919-.473-19.311-1.448-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825a142.128 142.128 0 0 1 19.311-1.352c74.656 0 135.176 60.521 135.176 135.177z",fill:"#c52828"}),M.createElement("path",{d:"M463.757 211.249c-.029 67.173-49.378 124.131-115.865 133.728-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825 66.516 9.598 115.875 66.613 115.865 133.825z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M380.527 230.56h-26.649a8.208 8.208 0 0 1-8.4-7.242l-7.242-90.472c-.212-4.47 3.235-8.275 7.705-8.497.232-.01.463-.01.695 0h41.036a8.105 8.105 0 0 1 8.4 7.802c.01.232.01.463 0 .695l-7.242 90.472c-.501 4.181-4.093 7.319-8.303 7.242zM362.085 269.181h10.235c7.84 0 14.194 6.353 14.194 14.194v10.235c0 7.84-6.353 14.194-14.194 14.194h-10.235c-7.84 0-14.194-6.353-14.194-14.194v-10.235c.001-7.84 6.354-14.194 14.194-14.194z"})),M.createElement("path",{d:"M308.015 332.714a132.057 132.057 0 0 1-24.332-15.256 138.367 138.367 0 0 1-25.587-26.456 134.123 134.123 0 0 1-26.07-79.754 136.453 136.453 0 0 1 3.09-28.966 129.801 129.801 0 0 1 9.655-28.966c-24.428-39.201-50.691-78.113-85.547-108.334-2.607-2.221-5.214-4.442-7.917-6.566a161.051 161.051 0 0 0-14.387-10.621 80.965 80.965 0 0 0-13.807-7.145c1.641 7.338 3.476 14.773 4.731 22.208a180.355 180.355 0 0 1 2.993 26.939v7.145a192.012 192.012 0 0 1-60.829 139.521 202.647 202.647 0 0 0-43.836 52.719 149.063 149.063 0 0 0-6.566 120.017 152.006 152.006 0 0 0 22.208 40.167 164.926 164.926 0 0 0 106.21 61.891 86.874 86.874 0 0 1-44.801-32.249 51.315 51.315 0 0 1-3.669-5.6 77.46 77.46 0 0 1-6.469-13.325 79.464 79.464 0 0 1 3.766-63.726 111.914 111.914 0 0 1 23.463-28.387 101.983 101.983 0 0 0 32.442-74.25v-3.862a97.875 97.875 0 0 0-4.731-27.132 112.539 112.539 0 0 1 10.911 6.566 108.053 108.053 0 0 1 30.222 30.801 100.963 100.963 0 0 1 15.835 46.443v8.4a100.92 100.92 0 0 1-18.249 57.933c22.98 13.035 38.622-8.593 44.994-28.966a60.067 60.067 0 0 0 2.51-12.842 88.458 88.458 0 0 1 28.966 61.312v5.214c-2.704 33.678-25.346 62.451-57.45 72.995 73.353-11.789 128.717-72.889 133.245-147.053a131.977 131.977 0 0 1-30.994-10.815z",fill:"#f57c00"}),M.createElement("path",{d:"M263.117 417.489v-5.214a88.462 88.462 0 0 0-28.966-61.312 60.129 60.129 0 0 1-2.51 12.842c-5.986 20.47-22.014 42.098-44.994 28.966a100.923 100.923 0 0 0 18.249-57.933v-.966-7.338a100.971 100.971 0 0 0-15.835-46.443 108.027 108.027 0 0 0-30.222-30.801 108.949 108.949 0 0 0-39.877-35.532 97.838 97.838 0 0 1 4.731 27.132v3.862a101.988 101.988 0 0 1-32.442 74.25 111.924 111.924 0 0 0-23.366 28.387 79.491 79.491 0 0 0-3.573 63.726 83.948 83.948 0 0 0 35.436 42.291 51.315 51.315 0 0 0 3.669 5.6 86.886 86.886 0 0 0 44.415 32.249 164.927 164.927 0 0 1-106.21-61.892 152.082 152.082 0 0 1-22.014-40.167 149.055 149.055 0 0 1 6.564-120.015 202.714 202.714 0 0 1 44.029-53.202A192.012 192.012 0 0 0 131.03 76.458v-7.145a180.486 180.486 0 0 0-2.993-26.939c-1.255-7.435-3.09-14.869-4.731-22.208a80.965 80.965 0 0 1 13.807 7.145 159.446 159.446 0 0 1 14.773 10.718c2.704 2.124 5.311 4.345 7.917 6.566 34.856 30.222 61.119 69.133 85.547 108.334a129.75 129.75 0 0 0-9.655 28.966 136.634 136.634 0 0 0-3.669 29.353 134.116 134.116 0 0 0 26.07 79.754 138.396 138.396 0 0 0 25.587 26.456 132.164 132.164 0 0 0 24.332 15.256 152.203 152.203 0 0 1-44.898 84.775z",fill:"#ff9801"}),M.createElement("path",{d:"M147.831 500.912h-1.448c-61.756-8.7-113.963-50.15-136.432-108.334a158.725 158.725 0 0 1 7.338-127.355 212.528 212.528 0 0 1 45.96-55.809 181.787 181.787 0 0 0 57.933-132.473v-6.759a171.298 171.298 0 0 0-2.8-25.587c-.966-5.697-2.221-11.2-3.476-16.704l-1.159-5.117c-1.178-5.204 2.076-10.37 7.28-11.548a9.663 9.663 0 0 1 5.948.541 89.473 89.473 0 0 1 15.449 8.014 172.47 172.47 0 0 1 15.449 11.2c41.036 32.732 70.871 77.244 95.589 117.314a9.673 9.673 0 0 1 .483 9.655 121.056 121.056 0 0 0-9.655 26.842 128.158 128.158 0 0 0-2.607 26.456c.01 59.198 41.374 110.333 99.258 122.721a9.655 9.655 0 0 1 7.628 9.655c-3.186 77.244-61.216 141.742-141.163 156.129-5.253.927-10.254-2.588-11.181-7.84a9.65 9.65 0 0 1 6.353-10.795c29.99-9.8 50.517-37.492 51.174-69.037a67.618 67.618 0 0 0-14.387-40.746 56.78 56.78 0 0 1-24.139 31.091 33.122 33.122 0 0 1-33.408-1.448c-4.644-2.626-6.276-8.516-3.659-13.16.145-.261.299-.502.473-.743a91.187 91.187 0 0 0 16.511-52.429v-.772a90.743 90.743 0 0 0-14.58-48.277 98.107 98.107 0 0 0-19.311-21.532v9.945a111.13 111.13 0 0 1-35.436 81.299 103.445 103.445 0 0 0-21.532 25.78 69.873 69.873 0 0 0-3.09 56.002 76.304 76.304 0 0 0 49.533 44.512c5.33.801 9.009 5.774 8.207 11.104-.801 5.328-5.774 8.997-11.103 8.205zM137.113 39.478v1.738a188.136 188.136 0 0 1 3.09 28.194v7.435A200.926 200.926 0 0 1 76.38 223.318a192.998 192.998 0 0 0-42.098 50.498 139.414 139.414 0 0 0-6.469 111.907 148.682 148.682 0 0 0 65.561 76.568 89.522 89.522 0 0 1-15.159-49.726 91.25 91.25 0 0 1 9.655-40.167 119.46 119.46 0 0 1 25.394-31.091 92.026 92.026 0 0 0 29.449-67.588v-3.09a88.799 88.799 0 0 0-4.248-24.911 9.653 9.653 0 0 1 6.237-12.147 9.638 9.638 0 0 1 7.473.657 119.392 119.392 0 0 1 44.705 40.649 110.062 110.062 0 0 1 17.669 58.898v1.159a110.343 110.343 0 0 1-13.035 52.139 12.555 12.555 0 0 0 4.731-1.448c9.655-5.31 17.283-22.497 18.345-35.436.434-5.31 5.088-9.269 10.409-8.844a9.61 9.61 0 0 1 6.006 2.761 95.586 95.586 0 0 1 32.153 68.168 89.528 89.528 0 0 1-13.711 47.408 146.774 146.774 0 0 0 69.133-108.817c-62.77-17.37-106.22-74.492-106.21-139.618a146.655 146.655 0 0 1 3.283-30.994 139.876 139.876 0 0 1 8.497-26.263c-23.27-37.077-51.27-78.402-88.541-108.045a113.049 113.049 0 0 0-8.496-6.467z"}),M.createElement("path",{d:"M367.203 356.081a144.841 144.841 0 0 1-89.506-30.994 143.882 143.882 0 0 1-55.326-113.838 146.655 146.655 0 0 1 3.283-30.994 140.652 140.652 0 0 1 10.814-31.091c23.965-50.498 74.839-82.699 130.735-82.747 79.986.019 144.813 64.875 144.803 144.861a144.848 144.848 0 0 1-55.297 113.809 143.543 143.543 0 0 1-89.506 30.994zm0-270.353c-48.47.019-92.586 27.943-113.355 71.74a121.83 121.83 0 0 0-9.655 26.939 127.805 127.805 0 0 0-2.51 26.842c.01 59.198 41.374 110.333 99.258 122.721a125.763 125.763 0 0 0 26.263 2.8c69.326 0 125.521-56.195 125.521-125.521S436.519 85.728 367.203 85.728z"}),M.createElement("path",{d:"M380.527 240.215h-26.649c-9.279.097-17.109-6.894-18.056-16.125l-7.242-90.085a17.201 17.201 0 0 1 4.538-13.035 18.38 18.38 0 0 1 13.518-5.89h41.036a18.375 18.375 0 0 1 13.518 5.89 17.204 17.204 0 0 1 4.635 13.035l-7.242 90.472c-1.139 9.076-8.912 15.854-18.056 15.738zm-25.49-19.311h24.525l6.952-86.899h-38.622l7.145 86.899zM372.32 317.459h-10.235c-13.151-.048-23.801-10.698-23.849-23.849v-10.235c.048-13.151 10.698-23.801 23.849-23.849h10.138c13.189 0 23.888 10.66 23.946 23.849v10.138c0 13.18-10.669 23.888-23.849 23.946zm-10.138-38.622a4.635 4.635 0 0 0-4.538 4.538v10.138a4.635 4.635 0 0 0 4.538 4.538h10.138a4.635 4.635 0 0 0 4.538-4.538v-10.138a4.635 4.635 0 0 0-4.538-4.538h-10.138z"}))}function xl(s){return M.createElement("svg",{viewBox:"0 0 512.002 512.002",...s},M.createElement("path",{d:"M481.929 324.35c0 65.951-53.464 119.415-119.415 119.415a111.938 111.938 0 0 1-17.059-1.279c-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221a125.333 125.333 0 0 1 17.059-1.194c65.951-.001 119.415 53.462 119.415 119.414z",fill:"#c52828"}),M.createElement("path",{d:"M447.81 324.35c-.026 59.341-43.621 109.657-102.356 118.135-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221 58.77 8.487 102.373 58.846 102.356 118.221z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M374.285 341.409h-23.542a7.251 7.251 0 0 1-7.421-6.397l-6.397-79.923a7.174 7.174 0 0 1 6.807-7.506c.205-.009.409-.009.614 0h36.251a7.16 7.16 0 0 1 7.421 6.892c.009.205.009.409 0 .614l-6.397 79.923a7.249 7.249 0 0 1-7.336 6.397zM357.993 375.527h9.041c6.926 0 12.539 5.612 12.539 12.539v9.041c0 6.926-5.612 12.539-12.539 12.539h-9.041c-6.926 0-12.539-5.612-12.539-12.539v-9.041c0-6.926 5.621-12.539 12.539-12.539z"})),M.createElement("path",{d:"M318.415 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 159.575 159.575 0 0 1-61.413 12.283 149.268 149.268 0 0 1-20.556-1.365 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.753 152.753 0 0 1-12.368-60.219 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504 7.335-11.771c4.504-7.353 14.117-9.656 21.469-5.143a15.525 15.525 0 0 1 5.143 5.143l34.716 55.869c-2.644 4.18-5.032 8.53-7.335 12.709a96.424 96.424 0 0 0-11.515 44.439 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.344 115.344 0 0 0-11.6 31.048 120.546 120.546 0 0 0-2.729 25.589c.041 48.9 29.878 92.828 75.315 110.885z",fill:"#0377bc"}),M.createElement("path",{d:"M277.217 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 158.847 158.847 0 0 1-40.772 10.833 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.657 152.657 0 0 1-12.368-60.134 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504c9.212 14.671 18.339 29.427 27.465 44.098-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.323 115.323 0 0 0-12.283 31.133 120.546 120.546 0 0 0-2.729 25.589c.043 48.9 29.88 92.828 75.317 110.885z",fill:"#02a9f4"}),M.createElement("path",{d:"M411.388 144.545a477.911 477.911 0 0 0-27.636-43.842c-9.894-14.586-19.192-29.598-28.489-44.525L328.395 13.53c-3.037-4.708-9.323-6.065-14.031-3.028a10.259 10.259 0 0 0-3.028 3.028l-12.794 20.215-14.074 22.433c-9.297 14.927-18.595 29.939-28.489 44.525-6.994 10.236-13.989 20.471-20.301 31.133-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.758 98.758 0 0 0 29.939 70.284 106.83 106.83 0 0 0 9.98 8.53 119.423 119.423 0 0 1 84.017-60.902 114.9 114.9 0 0 1 21.068-1.877c5.186.009 10.372.324 15.524.938a119.369 119.369 0 0 1 39.578 12.539 96.462 96.462 0 0 0-6.228-73.866z",fill:"#0377bc"}),M.createElement("path",{d:"M379.573 188.899a93.046 93.046 0 0 1-1.535 17.059 131.537 131.537 0 0 0-15.524-1.024 114.797 114.797 0 0 0-21.068 1.877 119.425 119.425 0 0 0-84.017 60.902 106.96 106.96 0 0 1-9.98-8.53c-31.099-29.743-38.878-76.417-19.106-114.638 2.303-4.35 4.691-8.53 7.335-12.709 6.312-10.662 13.306-20.898 20.301-31.133 9.894-14.586 19.192-29.598 28.489-44.525l14.074-22.433 14.074 22.433c9.297 14.927 18.595 29.939 28.489 44.525a477.911 477.911 0 0 1 27.636 43.842 96.401 96.401 0 0 1 10.832 44.354z",fill:"#02a9f4"}),M.createElement("path",{d:"M187.656 512.002a167.398 167.398 0 0 1-64.655-12.88 165.226 165.226 0 0 1-88.623-86.746 160.466 160.466 0 0 1-13.05-63.631 158.81 158.81 0 0 1 17.656-72.928 698.388 698.388 0 0 1 39.663-63.887l3.412-5.032c12.027-17.998 23.627-36.677 34.886-54.76L167.1 71.531c6.986-11.353 21.861-14.893 33.214-7.898a24.1 24.1 0 0 1 7.898 7.898l17.059 27.38 17.827 28.404a8.521 8.521 0 0 1 0 9.383c-2.559 4.009-4.777 8.018-6.994 12.112a87.69 87.69 0 0 0-10.065 40.089 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83 99.608 99.608 0 0 0 9.212 7.847 8.534 8.534 0 0 1 2.303 10.918 106.955 106.955 0 0 0-10.747 28.745 112.483 112.483 0 0 0-2.559 23.712c.009 45.429 27.721 86.26 69.943 103.038 4.393 1.706 6.559 6.653 4.853 11.046a8.584 8.584 0 0 1-.93 1.749 162.407 162.407 0 0 1-20.301 24.139 164.29 164.29 0 0 1-52.884 34.886 167.489 167.489 0 0 1-64.653 12.795zm0-435.012a6.99 6.99 0 0 0-6.056 3.412l-50.154 80.69c-11.344 18.168-23.03 37.019-35.227 55.187l-3.412 5.032a687.543 687.543 0 0 0-38.725 62.266 141.613 141.613 0 0 0-15.695 65.166 143.56 143.56 0 0 0 11.686 56.893 148.16 148.16 0 0 0 79.411 77.79 152.855 152.855 0 0 0 116.344 0 147.616 147.616 0 0 0 47.425-31.133 143.446 143.446 0 0 0 12.027-13.306c-43.322-21.802-70.668-66.139-70.711-114.638a129.576 129.576 0 0 1 2.9-27.38 124.357 124.357 0 0 1 9.212-26.954 136.293 136.293 0 0 1-5.203-4.691 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 1.621-3.071 3.241-5.971 4.862-8.53l-14.927-24.054-17.059-27.38a7.087 7.087 0 0 0-6.141-3.837z"}),M.createElement("path",{d:"M99.971 442.4A8.521 8.521 0 0 1 94 439.926a129.631 129.631 0 0 1-28.318-41.113 126.28 126.28 0 0 1-10.236-50.069 124.503 124.503 0 0 1 13.818-57.234c1.868-4.325 6.883-6.32 11.208-4.452s6.32 6.883 4.452 11.208c-.162.375-.35.742-.563 1.092a107.494 107.494 0 0 0-11.856 49.387 109.211 109.211 0 0 0 8.53 43.331 112.626 112.626 0 0 0 24.565 35.739c3.344 3.318 3.369 8.717.051 12.061a8.549 8.549 0 0 1-6.022 2.525l.342-.001zM257.428 276.242a8.526 8.526 0 0 1-5.118-1.706 115.222 115.222 0 0 1-10.747-9.212 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 2.559-4.862 5.118-9.212 7.677-13.306 6.312-10.662 13.392-21.068 20.386-31.218 9.041-13.903 17.912-27.807 26.442-41.881L304 8.753c5.485-8.734 17.017-11.379 25.751-5.894a18.698 18.698 0 0 1 5.894 5.894l28.574 45.634c8.53 13.733 17.059 27.977 26.612 41.539l1.706 2.474a457.473 457.473 0 0 1 26.442 42.136 104.968 104.968 0 0 1 6.824 80.434c-1.433 4.487-6.235 6.969-10.722 5.536a8.282 8.282 0 0 1-1.39-.589 112.612 112.612 0 0 0-106.535 2.388 110.28 110.28 0 0 0-42.136 43.416 8.52 8.52 0 0 1-5.715 4.265l-1.877.256zm62.437-258.959a1.541 1.541 0 0 0-1.365.768l-28.489 45.378c-8.53 13.903-17.571 28.233-26.954 42.051-6.909 10.065-13.903 20.301-20.045 30.707-2.644 4.18-4.947 8.53-7.165 12.368a87.722 87.722 0 0 0-9.809 40.345 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83l1.791 1.706a127.216 127.216 0 0 1 43.331-41.369 129.73 129.73 0 0 1 113.359-7.25 87.904 87.904 0 0 0-8.53-57.831 444.102 444.102 0 0 0-25.589-40.516l-1.706-2.474c-9.383-13.818-18.339-28.148-26.954-42.051L321.23 18.05a1.532 1.532 0 0 0-1.365-.767z"}),M.createElement("path",{d:"M271.246 243.233a8.519 8.519 0 0 1-5.971-2.388 75.502 75.502 0 0 1-16.292-23.456 71.923 71.923 0 0 1-5.885-28.489 70.537 70.537 0 0 1 7.933-32.498c1.877-3.582 4.009-7.25 6.227-10.833l.512-.768a8.538 8.538 0 0 1 11.609-3.284 8.538 8.538 0 0 1 3.284 11.609 6.997 6.997 0 0 1-.392.631l-.512.853c-2.132 3.327-3.924 6.568-5.63 9.724a53.307 53.307 0 0 0-5.971 24.565 54.816 54.816 0 0 0 4.435 21.665 58.198 58.198 0 0 0 12.624 18.083c3.395 3.267 3.489 8.666.222 12.061a8.518 8.518 0 0 1-6.193 2.61v-.085z"}),M.createElement("path",{d:"M362.514 452.294c-70.66 0-127.945-57.285-127.945-127.945a129.576 129.576 0 0 1 2.9-27.38 123.98 123.98 0 0 1 12.453-33.351 127.15 127.15 0 0 1 48.619-50.154c37.94-21.495 84.136-22.518 122.997-2.729 62.744 32.489 87.275 109.7 54.777 172.452-22.005 42.512-65.916 69.184-113.801 69.107zm0-238.83c-40.763.009-78.234 22.382-97.579 58.257a107.238 107.238 0 0 0-10.747 28.83 112.818 112.818 0 0 0-2.559 23.798c0 61.243 49.643 110.885 110.885 110.885s110.885-49.642 110.885-110.885-49.643-110.885-110.885-110.885z"}),M.createElement("path",{d:"M374.285 349.939h-23.542c-8.231.085-15.157-6.141-15.95-14.33l-6.397-79.496a15.26 15.26 0 0 1 4.009-11.515 16.312 16.312 0 0 1 11.942-5.203h36.251a16.31 16.31 0 0 1 11.941 5.203 15.27 15.27 0 0 1 4.094 11.515l-6.397 79.923c-.999 8.026-7.865 14.013-15.951 13.903zm-22.519-17.06h21.665l6.141-76.767h-34.119l6.313 76.767zM367.034 418.176h-9.041c-11.617-.043-21.026-9.451-21.068-21.068v-9.041c.043-11.617 9.451-21.026 21.068-21.068h8.956c11.651 0 21.102 9.417 21.153 21.068v8.956c.001 11.651-9.416 21.11-21.068 21.153zm-8.956-34.119a4.095 4.095 0 0 0-4.009 4.009v8.956a4.095 4.095 0 0 0 4.009 4.009h8.956a4.095 4.095 0 0 0 4.009-4.009v-8.956a4.095 4.095 0 0 0-4.009-4.009h-8.956z"}))}function y_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M462,226c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.52,0,10-4.48,10-10S467.52,226,462,226z"}),M.createElement("path",{fill:"currentColor",d:"M50,226c-5.52,0-10,4.48-10,10s4.48,10,10,10s10-4.48,10-10S55.52,226,50,226z"}),M.createElement("path",{fill:"currentColor",d:`M502,126h-0.027C508.265,117.637,512,107.248,512,96c0-27.57-22.43-50-50-50s-50,22.43-50,50 - c0,11.248,3.735,21.637,10.027,30H422c-5.522,0-10,4.478-10,10v50.03c-7.399,0.025-17.158,0.065-23,0.113V166.63 - c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.435c-0.931-0.964-1.899-2.045-2.923-3.258 - c-10.745-12.754-24.515-23.761-40.077-32.106V121.83c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.983 - c-12.92-4.643-26.438-7.5-40-8.448V96c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v30.365 - c-13.565,0.948-27.084,3.807-40,8.452V120.17c0-5.522-4.477-10-10-10s-10,4.478-10,10v23.542 - c-15.764,8.457-29.695,19.652-40.55,32.652c-0.758,0.908-1.587,1.755-2.45,2.566v-12.3c0-5.522-4.477-10-10-10s-10,4.478-10,10 - v20.385c-4.189,0.067-14.913,0.05-23,0.024V136c0-5.522-4.477-10-10-10h-0.027C96.265,117.637,100,107.248,100,96 - c0-27.57-22.43-50-50-50S0,68.43,0,96c0,11.248,3.735,21.637,10.027,30H10c-5.523,0-10,4.478-10,10v320c0,5.522,4.477,10,10,10h80 - c5.523,0,10-4.478,10-10v-11h312v11c0,5.522,4.478,10,10,10h80c5.522,0,10-4.478,10-10V136C512,130.478,507.522,126,502,126z - M80,446H20V146h20v50c0,5.522,4.477,10,10,10s10-4.478,10-10v-50h20V446z M50,126c-16.542,0-30-13.458-30-30s13.458-30,30-30 - s30,13.458,30,30S66.542,126,50,126z M123,425h-23v-19h23V425z M123,386h-23V247h23V386z M123,227h-23v-19.959 - c3.808,0.011,8.197,0.022,12.244,0.022c4.378,0,8.351-0.012,10.756-0.046V227z M186,425h-43v-19h43V425z M186,276v40v70h-43 - V244.817c16.149-3.513,31.29-11.046,43-21.321V276z M186,194.605c-2.373,2.327-4.659,4.785-6.815,7.365 - c-8.521,10.2-21.771,18.214-36.185,22.224v-21.525c6.846-3.098,13.007-7.736,17.806-13.49c7.006-8.391,15.56-15.917,25.194-22.232 - V194.605z M206,156.285c12.757-5.415,26.344-8.765,40-9.871v20.099c-14.162,1.416-27.777,5.83-40,12.895V156.285z M206,203.562 - c11.538-9.26,25.37-15.088,40-16.922V266h-40V203.562z M246,425h-40v-19h40V425z M246,386h-40v-60h40V386z M306,425h-40v-19h40 - V425z M306,386h-40v-60h40V386z M306,306H206v-20h100V306z M306,266h-40v-79.359c14.617,1.835,28.449,7.664,40,16.924V266z - M306,179.418c-12.232-7.071-25.847-11.487-40-12.904v-20.1c13.651,1.106,27.238,4.454,40,9.865V179.418z M369,425h-43v-19h43V425 - z M369,386h-43v-70v-40v-52.635c11.722,10.137,26.674,17.329,43,20.634V386z M369,223.458 - c-14.663-3.788-27.83-11.575-36.517-21.887c-2.039-2.417-4.216-4.742-6.483-6.965v-27.672c9.465,6.201,17.88,13.567,24.789,21.767 - c4.64,5.496,10.324,11.234,18.211,14.57V223.458z M412,425h-23v-19h23V425z M412,386h-23V246h23V386z M412,226h-23v-19.856 - c5.683-0.048,15.526-0.088,23-0.113V226z M492,446h-60V146h20v50c0,5.522,4.478,10,10,10c5.522,0,10-4.478,10-10v-50h20V446z - M462,126c-16.542,0-30-13.458-30-30s13.458-30,30-30s30,13.458,30,30S478.542,126,462,126z`}))}function T_e(s){return M.createElement("svg",{viewBox:"0 0 511.448 511.448",...s},M.createElement("path",{d:"M344.556 112.216C318.38 78.84 291.34 44.344 269.516 7.32c-5.76-9.76-21.824-9.76-27.552 0-21.856 37.024-48.896 71.52-75.072 104.896-53.056 67.68-103.168 131.616-103.168 207.232 0 105.888 86.112 192 192 192s192-86.112 192-192c0-75.616-50.112-139.552-103.168-207.232z",fill:"#2196f3"}),M.createElement("g",{fill:"#fafafa"},M.createElement("path",{d:"M207.724 287.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.832 0-16 7.168-16 16s7.168 16 16 16 16-7.168 16-16-7.168-16-16-16zM303.724 447.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM175.724 415.448a16.07 16.07 0 0 1-11.328-4.672c-6.24-6.24-6.24-16.384 0-22.624l160-160c6.24-6.24 16.384-6.24 22.624 0s6.24 16.384 0 22.624l-160 160a15.943 15.943 0 0 1-11.296 4.672z"})))}function _l(s){return M.createElement("svg",{viewBox:"0 0 508.16 508.16",...s},M.createElement("path",{d:"M504.18 13.67a3.924 3.924 0 0 0-.42.02H4a4 4 0 0 0-4 4v47.28a4 4 0 0 0 4 4h19.72l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.16a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h479.8a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.64-42.08h9.84a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h19.72a4 4 0 0 0 4-4V17.69a4 4 0 0 0-3.98-4.02zM99.08 486.49H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm26.8 378.24h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm.16-47.28h-18.96V68.97h18.96v39.28zm247.84 378.24h-240v-39.28h240v39.28zm-240-47.28v-39.28h239.68v39.28H133.88zm240-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm-240-47.28V68.97h239.84v39.28H133.88zm266.64 378.24h-18.64l-.32-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm.32-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm-18.96-47.28V68.97h18.8v39.28h-18.8zm63.56 8v39.28h-36.92v-39.28h36.92zm-36.76-8V68.97h36.92v39.28h-36.92zm36.76 55.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.76l-.16-39.28h36.92zm42.68 181.12h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h36.92v17.44a4 4 0 0 0 8 0v-17.44h22.04l12.48 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6V68.97h22.04l12.56 39.28zm11.56-47.28H8V21.69h491.76l-.08 39.28z",fill:"currentColor"}),M.createElement("path",{d:"M454.32 37.33h-13.76a4 4 0 0 0 0 8h13.76a4 4 0 0 0 0-8zM414.84 37.33h-96a4 4 0 0 0 0 8h96a4 4 0 0 0 0-8z",fill:"currentColor"}))}function D_e(s){return M.createElement("svg",{viewBox:"0 0 63.907 63.907",fill:"currentColor",...s},M.createElement("circle",{fill:"currentColor",cx:30.515,cy:6.136,r:6.136}),M.createElement("path",{fill:"currentColor",d:"M47.399 27.455C42.346 24.53 38.2 20.579 34.71 15.931c-2.193-3.084-7.991-2.923-10.347-.097-3.584 3.487-6.625 7.081-9.037 10.677a3.209 3.209 0 0 0 5.329 3.573 54.205 54.205 0 0 1 3.59-4.734c-.051 3.333.116 9.347.2 12.05.028.9-.177 1.78-.595 2.579-3.308 6.317-5.424 12.294-7.572 19.606a3.37 3.37 0 1 0 6.465 1.901c1.982-6.742 3.897-12.201 6.884-17.981.152.006.304.006.458-.001 1.907 5.69 3.815 11.383 5.725 17.073 1.387 4.147 7.822 1.993 6.431-2.155-2.087-6.221-4.171-12.439-6.251-18.659-.121-.357-.414-1.755-.455-2.211-.344-3.832-.469-7.652-.432-11.477a51.027 51.027 0 0 0 9.782 7.328c3.597 2.088 6.063-3.891 2.514-5.948z"}))}function d_e(s){return M.createElement("svg",{viewBox:"0 0 285 285",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:`M88.4,87.996c2.525-2.146,2.832-5.933,0.687-8.458C82.801,72.144,79.34,62.719,79.34,53c0-22.607,18.393-41,41-41 - c22.607,0,41,18.393,41,41c0,9.729-3.467,19.161-9.761,26.557c-2.148,2.523-1.843,6.311,0.681,8.458 - c1.129,0.961,2.511,1.431,3.886,1.431c1.698,0,3.386-0.717,4.572-2.111C168.858,77.77,173.34,65.576,173.34,53 - c0-29.225-23.775-53-53-53c-29.225,0-53,23.775-53,53c0,12.563,4.476,24.748,12.602,34.31C82.089,89.835,85.873,90.141,88.4,87.996 - z`}),M.createElement("path",{fill:"currentColor",d:`M120.186,41.201c13.228,0,23.812,8.105,27.313,19.879c0.761-2.562,1.176-5.271,1.176-8.08 - c0-15.649-12.685-28.335-28.335-28.335c-15.648,0-28.334,12.686-28.334,28.335c0,2.623,0.364,5.16,1.031,7.571 - C96.691,49.076,107.152,41.201,120.186,41.201z`}),M.createElement("path",{fill:"currentColor",d:`M234.21,169.856c-3.769-22.452-19.597-26.04-27.034-26.462c-2.342-0.133-4.516-1.32-5.801-3.282 - c-5.388-8.225-12.609-10.4-18.742-10.4c-4.405,0-8.249,1.122-10.449,1.932c-0.275,0.102-0.559,0.15-0.837,0.15 - c-0.87,0-1.701-0.47-2.163-1.262c-5.472-9.387-13.252-11.809-19.822-11.809c-3.824,0-7.237,0.82-9.548,1.564 - c-0.241,0.077-0.764,0.114-1.001,0.114c-1.256,0-2.637-1.03-2.637-2.376V69.753c0-11.035-8.224-16.552-16.5-16.552 - c-8.276,0-16.5,5.517-16.5,16.552v84.912c0,4.989-3.811,8.074-7.918,8.074c-2.495,0-4.899-1.138-6.552-3.678l-7.937-12.281 - c-3.508-5.788-8.576-8.188-13.625-8.189c-11.412-0.001-22.574,12.258-14.644,25.344l62.491,119.692 - c0.408,0.782,1.225,1.373,2.108,1.373h87.757c1.253,0,2.289-1.075,2.365-2.325l2.196-35.816c0.025-0.413,0.162-0.84,0.39-1.186 - C231.591,212.679,237.828,191.414,234.21,169.856z`})))}function Xo(s){return M.createElement("svg",{viewBox:"1 -10 511.99999 511",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M 405.5 150 C 405.5 232.566406 338.566406 299.5 256 299.5 C 173.433594 299.5 106.5 232.566406 106.5 150 C 106.5 67.433594 173.433594 0.5 256 0.5 C 338.566406 0.5 405.5 67.433594 405.5 150 Z M 405.5 150 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(25.882353%,75.294118%,88.627451%)",fillOpacity:1}}),M.createElement("path",{d:"M 512 342.921875 C 512 425.488281 445.066406 492.421875 362.5 492.421875 C 279.933594 492.421875 213 425.488281 213 342.921875 C 213 260.355469 279.933594 193.421875 362.5 193.421875 C 445.066406 193.421875 512 260.355469 512 342.921875 Z M 512 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,81.568627%,38.039216%)",fillOpacity:1}}),M.createElement("path",{d:"M 220.746094 295.308594 C 232.050781 298.039062 243.855469 299.5 256 299.5 C 321.917969 299.5 377.871094 256.835938 397.753906 197.613281 C 386.449219 194.878906 374.644531 193.421875 362.5 193.421875 C 296.582031 193.421875 240.628906 236.085938 220.746094 295.308594 Z M 220.746094 295.308594 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(28.627451%,74.117647%,56.470588%)",fillOpacity:1}}),M.createElement("path",{d:"M 299 342.921875 C 299 425.488281 232.066406 492.421875 149.5 492.421875 C 66.933594 492.421875 0 425.488281 0 342.921875 C 0 260.355469 66.933594 193.421875 149.5 193.421875 C 232.066406 193.421875 299 260.355469 299 342.921875 Z M 299 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(98.039216%,43.921569%,69.803922%)",fillOpacity:1}}),M.createElement("path",{d:"M 114.246094 197.613281 C 134.128906 256.835938 190.082031 299.5 256 299.5 C 268.144531 299.5 279.949219 298.039062 291.253906 295.308594 C 271.371094 236.085938 215.417969 193.421875 149.5 193.421875 C 137.355469 193.421875 125.550781 194.878906 114.246094 197.613281 Z M 114.246094 197.613281 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(68.627451%,48.235294%,77.647059%)",fillOpacity:1}}),M.createElement("path",{d:"M 213 342.921875 C 213 383.800781 229.414062 420.839844 256 447.828125 C 282.585938 420.839844 299 383.800781 299 342.921875 C 299 302.042969 282.585938 265.003906 256 238.015625 C 229.414062 265.003906 213 302.042969 213 342.921875 Z M 213 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(93.72549%,38.039216%,13.333333%)",fillOpacity:1}}),M.createElement("path",{d:"M 291.253906 295.320312 C 279.949219 298.046875 268.140625 299.5 256 299.5 C 243.859375 299.5 232.050781 298.046875 220.746094 295.320312 C 228.058594 273.542969 240.242188 254.015625 256 238.015625 C 271.757812 254.015625 283.941406 273.542969 291.253906 295.320312 Z M 291.253906 295.320312 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,100%,100%)",fillOpacity:1}})))}function h_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 365.445 365.445",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M146.7 162.775h-26.8a6.655 6.655 0 0 0-6.647 6.647v26.602a6.653 6.653 0 0 0 6.647 6.646h26.8a6.654 6.654 0 0 0 6.647-6.646v-26.602a6.655 6.655 0 0 0-6.647-6.647zM245.547 162.775h-26.801a6.653 6.653 0 0 0-6.646 6.647v26.602a6.652 6.652 0 0 0 6.646 6.646h26.801a6.654 6.654 0 0 0 6.646-6.646v-26.602a6.655 6.655 0 0 0-6.646-6.647z"})),M.createElement("path",{d:"M345.445 1.204H20c-11.046 0-20 8.954-20 20v323.037c0 11.045 8.954 20 20 20h325.445c11.045 0 20-8.955 20-20V21.204c0-11.045-8.953-20-20-20zM182.723 287.66c-57.955 0-104.937-46.981-104.937-104.937 0-57.957 46.982-104.938 104.937-104.938S287.66 124.767 287.66 182.723 240.678 287.66 182.723 287.66z",fill:"currentColor"}))}function z_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 45.659 45.659",...s},M.createElement("path",{fill:"currentColor",d:"M30.619 27.309V7.781C30.619 3.49 27.124 0 22.833 0c-4.29 0-7.785 3.491-7.785 7.78v19.528a10.722 10.722 0 0 0-3.05 7.522c0 5.972 4.857 10.828 10.829 10.828 5.97 0 10.834-4.856 10.834-10.828 0-2.918-1.141-5.572-3.042-7.521zM22.825 42.66c-4.316 0-7.824-3.512-7.824-7.828 0-2.527 1.174-4.779 3.077-6.211V16.237h3.372c.552 0 1-.47 1-1.022 0-.553-.448-1.021-1-1.021h-3.372v-2.466h3.372c.552 0 1-.434 1-.986a.989.989 0 0 0-1-.986h-3.372V7.78c0-2.636 2.119-4.78 4.754-4.78 2.637 0 4.756 2.144 4.756 4.781v20.871c1.903 1.434 3.047 3.671 3.047 6.18 0 4.316-3.494 7.828-7.81 7.828z"}),M.createElement("path",{fill:"currentColor",d:"M25.334 30.463V18.632h-5.002v11.831a4.973 4.973 0 0 0-2.537 4.369 5.038 5.038 0 0 0 5.038 5.046 5.034 5.034 0 0 0 5.034-5.046c0-1.866-.982-3.495-2.533-4.369z"}))}function w_e(s){return M.createElement("svg",{viewBox:"0 0 297 297",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:"m243.404,138.042c-5.775,0-10.458,4.683-10.458,10.458 0,46.564-37.883,84.446-84.446,84.446s-84.446-37.882-84.446-84.446 37.883-84.446 84.446-84.446c5.775,0 10.458-4.683 10.458-10.458s-4.683-10.457-10.458-10.457c-58.097,0-105.361,47.265-105.361,105.361s47.264,105.361 105.361,105.361 105.361-47.264 105.361-105.361c0-5.775-4.681-10.458-10.457-10.458z"}),M.createElement("path",{fill:"currentColor",d:"m142.963,121.344l-20.272-30.41c-3.203-4.807-9.695-6.104-14.502-2.9-4.805,3.202-6.104,9.695-2.9,14.502l20.279,30.422c-3.015,4.436-4.78,9.787-4.78,15.543 0,15.281 12.432,27.713 27.713,27.713 15.281,0 27.713-12.432 27.713-27.713 0-15.281-12.432-27.713-27.713-27.713-1.897-0.001-3.749,0.191-5.538,0.556zm12.335,27.156c0,3.748-3.05,6.798-6.798,6.798s-6.798-3.05-6.798-6.798 3.05-6.798 6.798-6.798 6.798,3.05 6.798,6.798z"}),M.createElement("path",{fill:"currentColor",d:"M148.5,0C66.617,0,0,66.617,0,148.5S66.617,297,148.5,297S297,230.383,297,148.5S230.383,0,148.5,0z M158.958,275.653 v-6.366c0-5.775-4.683-10.458-10.458-10.458c-5.775,0-10.458,4.683-10.458,10.458v6.366 c-62.027-5.056-111.64-54.668-116.695-116.695h6.366c5.775,0,10.458-4.683,10.458-10.458s-4.683-10.458-10.458-10.458h-6.366 c5.056-62.027,54.668-111.64,116.695-116.695v6.366c0,5.775,4.683,10.458,10.458,10.458c5.775,0,10.458-4.683,10.458-10.458v-6.366 c62.027,5.056,111.64,54.668,116.695,116.695h-6.366c-5.775,0-10.458,4.683-10.458,10.458s4.683,10.458,10.458,10.458h6.366 C270.598,220.985,220.985,270.598,158.958,275.653z"})))}function C_e(s){return M.createElement("svg",{viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M228.5 205.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H228.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M232.826 280.905c-.339 3.356-18.813-.782-20.919-1.06l-45.073-5.94-45.074-5.94-14.507-1.912c-1.456-.192-6.201-.055-6.412-2.147-.621-6.157 0-12.699 0-18.878v-43.5-82.076-5.13c0-2.551 5.184-1.015 6.412-.853l35.438 4.67 83.723 11.035c1.457.192 6.201.055 6.412 2.147.169 1.673 0 3.451 0 5.13v144.454c0 6.448 10 6.448 10 0V136.451v-5.13c0-7.619-6.137-10.793-12.673-11.655l-28.531-3.76-88.411-11.652-9.897-1.304c-6.555-.864-12.473 4.9-12.473 11.38v144.832c0 2.023-.071 4.04.132 6.053.717 7.111 6.606 9.563 12.759 10.374l76.827 10.125 39.896 5.259 9.697 1.278c7.063.931 12.011-4.778 12.673-11.346.648-6.415-9.358-6.352-9.999 0z",fill:"currentColor"}))}function w4(s){return M.createElement("svg",{width:361,height:361,viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9zM265.732 265.178c.584 2.887-1.629 5.228-4.942 5.228H103.457c-3.313 0-6.474-2.341-7.058-5.228L75.24 130.633c-.584-2.887 1.628-5.228 4.942-5.228h157.333c3.313 0 6.474 2.34 7.058 5.228l21.159 134.545z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M247.194 199.667h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5h-6.639c-2.726 0-5 2.274-5 5s2.275 5 5 5z",fill:"currentColor"}))}const I_e={"type-Device type":"Device type","type-airCondition":"Air conditioner","type-blind":"Blinds","type-blindButtons":"Blind controlled by buttons","type-button":"Button","type-buttonSensor":"Button with feedback","type-camera":"Camera","type-chart":"Chart","type-cie":"CIE color light","type-ct":"Color temperature","type-dimmer":"Dimmer","type-door":"Door","type-fireAlarm":"Fire alarm","type-floodAlarm":"Flood alarm","type-gate":"Gate","type-hue":"HUE light","type-humidity":"Humidity","type-illuminance":"Illuminance","type-image":"Image","type-info":"Information","type-instance":"Instance","type-light":"Light","type-location":"Position","type-locationOne":"Position as one state","type-lock":"Lock","type-media":"Media-player","type-motion":"Motion sensor","type-rgb":"RGB light","type-rgbSingle":"R,G,B light - single states","type-rgbwSingle":"R,G,B,W light - single states","type-slider":"Slider","type-socket":"Socket","type-temperature":"Temperature","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Vacuum cleaner","type-valve":"Valve","type-volume":"Volume","type-volumeGroup":"Volume group","type-warning":"Warning","type-weatherCurrent":"Current weather","type-weatherForecast":"Weather forecast","type-window":"Window sensor","type-windowTilt":"Window tilt sensor"},p_e={"type-Device type":"Gerätetyp","type-airCondition":"Klimaanlage","type-blind":"Jalousien","type-blindButtons":"Jalousie über Tasten gesteuert","type-button":"Taste","type-buttonSensor":"Taste mit Rückmeldung","type-camera":"Kamera","type-chart":"Diagramm","type-cie":"CIE Farblicht","type-ct":"Farbtemperatur","type-dimmer":"Dimmer","type-door":"Türsensor","type-fireAlarm":"Feueralarm","type-floodAlarm":"Wasseralarm","type-gate":"Tor-Steuerung","type-hue":"HUE-Licht","type-humidity":"Feuchtigkeit","type-illuminance":"Beleuchtungsstärke","type-image":"Bild","type-info":"Information","type-instance":"Instanz","type-light":"Licht","type-location":"Position","type-locationOne":"Position als ein Zustand","type-lock":"Schloss","type-media":"Mediaplayer","type-motion":"Bewegungssensor","type-rgb":"RGB-Licht","type-rgbSingle":"R,G,B-Licht Einzelwerte","type-rgbwSingle":"R,G,B,W-Licht Einzelwerte","type-slider":"Schieberegler","type-socket":"Steckdose","type-temperature":"Temperatur","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Staubsauger","type-valve":"Ventil","type-volume":"Lautstärke","type-volumeGroup":"Lautstärke-Gruppe","type-warning":"Warnung","type-weatherCurrent":"Aktuelle Wetterlage","type-weatherForecast":"Wettervorhersage","type-window":"Fenstersensor","type-windowTilt":"Fensterkippung-Sensor"},A_e={"type-Device type":"Тип устройства","type-airCondition":"Кондиционер","type-blind":"Рольставни/Жалюзи","type-blindButtons":"Жалюзи управляющиеся кнопками","type-button":"Кнопка","type-buttonSensor":"Кнопка с обратной связью","type-camera":"Камера","type-chart":"Диаграмма","type-cie":"CIE свет","type-ct":"Цветовая температура","type-dimmer":"Диммер","type-door":"Датчик положения двери","type-fireAlarm":"Датчик дыма","type-floodAlarm":"Датчик затопления","type-gate":"Ворота","type-hue":"HUE свет","type-humidity":"Влажность","type-illuminance":"Освещенность","type-image":"Изображение","type-info":"Информация","type-instance":"Инстанция","type-light":"Свет","type-location":"Местоположение","type-locationOne":"Позиция в одном состоянии","type-lock":"Замок","type-media":"Медиа-плейер","type-motion":"Датчик движения","type-rgb":"RGB свет","type-rgbSingle":"R,G,B как отдельные значение","type-rgbwSingle":"R,G,B,W как отдельные значение","type-slider":"Ползунок","type-socket":"Розетка","type-temperature":"Температура","type-thermostat":"Термостат","type-url":"URL","type-vacuumCleaner":"Пылесос","type-valve":"Вентиль","type-volume":"Громкость","type-volumeGroup":"Группа громкости","type-warning":"Предупреждение","type-weatherCurrent":"Актуальная погода","type-weatherForecast":"Прогноз погоды","type-window":"Датчик открытия окна","type-windowTilt":"Датчик наклона окна"},m_e={"type-Device type":"Tipo de dispositivo","type-airCondition":"Ar condicionado","type-blind":"persianas","type-blindButtons":"Persiana controlada por botões","type-button":"botão","type-buttonSensor":"Sensor de botão","type-camera":"câmera","type-chart":"Gráfico","type-cie":"Luz colorida CIE","type-ct":"Temperatura de cor","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"alarme de incêndio","type-floodAlarm":"alarme de inundação","type-gate":"portão","type-hue":"Luz HUE","type-humidity":"umidade","type-illuminance":"Iluminância","type-image":"imagem","type-info":"informação","type-instance":"exemplo","type-light":"luz","type-location":"localização","type-locationOne":"Posição como um estado","type-lock":"trancar","type-media":"mídia","type-motion":"movimento","type-rgb":"Luz RGB","type-rgbSingle":"Luz RGB única","type-rgbwSingle":"RGBW como valor único","type-slider":"controle deslizante","type-socket":"soquete","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirador de pó","type-valve":"válvula","type-volume":"volume","type-volumeGroup":"grupo de volume","type-warning":"aviso","type-weatherCurrent":"clima atual","type-weatherForecast":"previsão do tempo","type-window":"janela","type-windowTilt":"inclinação da janela"},O_e={"type-Device type":"Typ urządzenia","type-airCondition":"Klimatyzator","type-blind":"żaluzje","type-blindButtons":"Roleta sterowana przyciskami","type-button":"przycisk","type-buttonSensor":"Czujnik przycisku","type-camera":"kamera","type-chart":"Wykres","type-cie":"Światło kolorowe CIE","type-ct":"Temperatura barwowa","type-dimmer":"opornik","type-door":"drzwi","type-fireAlarm":"alarm pożarowy","type-floodAlarm":"alarm przeciwpowodziowy","type-gate":"brama","type-hue":"Światło HUE","type-humidity":"wilgotność","type-illuminance":"Natężenie oświetlenia","type-image":"obraz","type-info":"Informacje","type-instance":"przykład","type-light":"światło","type-location":"lokalizacja","type-locationOne":"Pozycja jako państwa","type-lock":"zamek","type-media":"głoska bezdźwięczna","type-motion":"ruch","type-rgb":"Światło RGB","type-rgbSingle":"Pojedyncze światło RGB","type-rgbwSingle":"RGBW jako pojedyncza wartość","type-slider":"suwak","type-socket":"gniazdo","type-temperature":"temperatura","type-thermostat":"termostat","type-url":"Adres URL","type-vacuumCleaner":"Odkurzacz","type-valve":"zawór","type-volume":"tom","type-volumeGroup":"grupa woluminów","type-warning":"ostrzeżenie","type-weatherCurrent":"aktualna pogoda","type-weatherForecast":"prognoza pogody","type-window":"okno","type-windowTilt":"pochylenie okna"},E_e={"type-Device type":"Type d'appareil","type-airCondition":"Climatiseur","type-blind":"stores","type-blindButtons":"Store commandé par boutons","type-button":"bouton","type-buttonSensor":"Capteur de bouton","type-camera":"caméra","type-chart":"Graphique","type-cie":"lumière colorée CIE","type-ct":"Température de couleur","type-dimmer":"variateur","type-door":"porte","type-fireAlarm":"alarme incendie","type-floodAlarm":"alarme d'inondation","type-gate":"grille","type-hue":"Lumière HUE","type-humidity":"humidité","type-illuminance":"Éclairement","type-image":"image","type-info":"informations","type-instance":"exemple","type-light":"lumière","type-location":"emplacement","type-locationOne":"Position en tant qu'État","type-lock":"verrouillage","type-media":"médias","type-motion":"mouvement","type-rgb":"lumière RVB","type-rgbSingle":"Lumière RVB simple","type-rgbwSingle":"RGBW comme valeur unique","type-slider":"curseur","type-socket":"douille","type-temperature":"température","type-thermostat":"thermostat","type-url":"URL","type-vacuumCleaner":"Aspirateur","type-valve":"soupape","type-volume":"volume","type-volumeGroup":"groupe de volumes","type-warning":"avertissement","type-weatherCurrent":"météo actuelle","type-weatherForecast":"prévisions météorologiques","type-window":"fenêtre","type-windowTilt":"inclinaison de la fenêtre"},f_e={"type-Device type":"Tipo di dispositivo","type-airCondition":"Condizionatore d'aria","type-blind":"tende","type-blindButtons":"Tenda controllata da pulsanti","type-button":"pulsante","type-buttonSensor":"Sensore del pulsante","type-camera":"telecamera","type-chart":"Grafico","type-cie":"Luce colorata CIE","type-ct":"Temperatura del colore","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"allarme antincendio","type-floodAlarm":"allarme allagamento","type-gate":"cancello","type-hue":"Luce HUE","type-humidity":"umidità","type-illuminance":"Illuminamento","type-image":"immagine","type-info":"informazioni","type-instance":"esempio","type-light":"leggero","type-location":"posizione","type-locationOne":"Posizione come stato","type-lock":"serratura","type-media":"media","type-motion":"movimento","type-rgb":"luce RGB","type-rgbSingle":"Luce RGB singola","type-rgbwSingle":"RGBW come valore singolo","type-slider":"cursore","type-socket":"PRESA","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirapolvere","type-valve":"valvola","type-volume":"volume","type-volumeGroup":"gruppo di volumi","type-warning":"avvertimento","type-weatherCurrent":"meteo attuale","type-weatherForecast":"previsioni del tempo","type-window":"finestra","type-windowTilt":"inclinazione della finestra"},x_e={"type-Device type":"Apparaattype","type-airCondition":"Airconditioner","type-blind":"jaloezieën","type-blindButtons":"Jaloezie bediend door knoppen","type-button":"knop","type-buttonSensor":"Knopsensor","type-camera":"camera","type-chart":"Grafiek","type-cie":"CIE-kleurenlicht","type-ct":"Kleurtemperatuur","type-dimmer":"dimmer","type-door":"deur","type-fireAlarm":"brandalarm","type-floodAlarm":"overstromingsalarm","type-gate":"hek","type-hue":"HUE-licht","type-humidity":"vochtigheid","type-illuminance":"Verlichtingssterkte","type-image":"afbeelding","type-info":"informatie","type-instance":"aanleg","type-light":"licht","type-location":"locatie","type-locationOne":"Positie als staat","type-lock":"slot","type-media":"media","type-motion":"beweging","type-rgb":"RGB-licht","type-rgbSingle":"RGB-licht enkel","type-rgbwSingle":"RGBW als enkele waarde","type-slider":"schuifregelaar","type-socket":"stopcontact","type-temperature":"temperatuur","type-thermostat":"thermostaat","type-url":"URL","type-vacuumCleaner":"Stofzuiger","type-valve":"ventiel","type-volume":"volume","type-volumeGroup":"volumegroep","type-warning":"waarschuwing","type-weatherCurrent":"huidige weersomstandigheden","type-weatherForecast":"weersvoorspelling","type-window":"raam","type-windowTilt":"raamkanteling"},__e={"type-Device type":"Тип пристрою","type-airCondition":"Кондиціонер","type-blind":"жалюзі","type-blindButtons":"Штора керується кнопками","type-button":"кнопку","type-buttonSensor":"Датчик кнопки","type-camera":"камера","type-chart":"Діаграма","type-cie":"Кольорове світло CIE","type-ct":"Колірна температура","type-dimmer":"диммер","type-door":"двері","type-fireAlarm":"пожежна сигналізація","type-floodAlarm":"сигналізація про повінь","type-gate":"ворота","type-hue":"світло HUE","type-humidity":"вологість","type-illuminance":"Освітленість","type-image":"зображення","type-info":"інформація","type-instance":"екземпляр","type-light":"світло","type-location":"розташування","type-locationOne":"Позиція як держави","type-lock":"замок","type-media":"ЗМІ","type-motion":"руху","type-rgb":"RGB світло","type-rgbSingle":"Одиночне світло RGB","type-rgbwSingle":"RGBW як одне значення","type-slider":"повзунок","type-socket":"гніздо","type-temperature":"температура","type-thermostat":"термостат","type-url":"URL","type-vacuumCleaner":"Пилосос","type-valve":"клапан","type-volume":"обсяг","type-volumeGroup":"група обсягів","type-warning":"УВАГА","type-weatherCurrent":"поточна погода","type-weatherForecast":"прогноз погоди","type-window":"вікно","type-windowTilt":"нахил вікна"},S_e={"type-Device type":"设备类型","type-airCondition":"空调","type-blind":"百叶窗","type-blindButtons":"按钮控制百叶窗","type-button":"按钮","type-buttonSensor":"按钮传感器","type-camera":"相机","type-chart":"图表","type-cie":"CIE色光","type-ct":"色温","type-dimmer":"调光器","type-door":"门","type-fireAlarm":"火灾报警","type-floodAlarm":"洪水警报","type-gate":"门","type-hue":"色调灯","type-humidity":"湿度","type-illuminance":"照度","type-image":"图像","type-info":"信息","type-instance":"实例","type-light":"光","type-location":"地点","type-locationOne":"作为一个国家的地位","type-lock":"锁","type-media":"媒体","type-motion":"运动","type-rgb":"RGB灯","type-rgbSingle":"RGB灯单","type-rgbwSingle":"RGBW 作为单一值","type-slider":"滑块","type-socket":"插座","type-temperature":"温度","type-thermostat":"恒温器","type-url":"网址","type-vacuumCleaner":"吸尘器","type-valve":"阀门","type-volume":"体积","type-volumeGroup":"卷组","type-warning":"警告","type-weatherCurrent":"当前天气","type-weatherForecast":"天气预报","type-window":"窗户","type-windowTilt":"窗户倾斜"};function C4(){d.extendTranslations({en:I_e,de:p_e,ru:A_e,pt:m_e,pl:O_e,fr:E_e,it:f_e,nl:x_e,uk:__e,"zh-cn":S_e})}const Sl={[B.Types.airCondition]:mL,[B.Types.blind]:_l,[B.Types.blindButtons]:_l,[B.Types.button]:d_e,[B.Types.buttonSensor]:l_e,[B.Types.camera]:r_e,[B.Types.chart]:e_e,[B.Types.image]:AL,[B.Types.dimmer]:pL,[B.Types.door]:j_e,[B.Types.fireAlarm]:fl,"sensor.alarm.fire":fl,[B.Types.floodAlarm]:xl,"sensor.alarm.flood":xl,[B.Types.gate]:y_e,[B.Types.humidity]:T_e,[B.Types.illuminance]:N_e,[B.Types.info]:IL,[B.Types.light]:CL,[B.Types.lock]:wL,[B.Types.location]:zL,[B.Types.locationOne]:hL,[B.Types.media]:dL,[B.Types.motion]:D_e,[B.Types.ct]:UM,[B.Types.rgb]:Xo,[B.Types.rgbSingle]:Xo,[B.Types.rgbwSingle]:L_e,[B.Types.hue]:UM,[B.Types.cie]:Xo,[B.Types.slider]:DL,[B.Types.socket]:h_e,[B.Types.temperature]:z_e,[B.Types.thermostat]:w_e,[B.Types.vacuumCleaner]:g_e,[B.Types.volume]:TL,[B.Types.volumeGroup]:yL,[B.Types.window]:C_e,[B.Types.windowTilt]:w4,[B.Types.weatherCurrent]:Ol,[B.Types.weatherForecast]:Ol,[B.Types.warning]:QM,[B.Types.unknown]:jL,[B.Types.instance]:gL,invalid:QM,hub3:LL,node:NL,hub5:lL,controller:uL},dr={width:32,height:32};function k_e(s){const[e,t]=M.useState(!1);if(x.useEffect(()=>{s.title&&!e&&(C4(),t(!0))},[s.title]),!e&&s.title)return M.createElement(j.Box,{style:{...dr,...s.style||void 0},className:s.className,sx:s.sx});const i=s.type||(s.src?Object.keys(Sl).find(n=>s.src===n):void 0);if(!i&&s.src)return M.createElement(me,{style:dr,...s,title:s.title===!0?void 0:s.title,src:s.src});const r=i&&Sl[i];if(!r)return i?M.createElement("span",{style:{...dr,...s.style||void 0}},i[0].toUpperCase()):null;const o=M.createElement(r,{style:{...dr,...s.style||void 0},onClick:s.onClick,className:s.className,sx:s.sx});return s.title?M.createElement(j.Tooltip,{slotProps:{popper:{sx:{pointerEvents:"none"}}},title:s.title===!0?d.t(`type-${i}`):s.title},M.createElement("div",{style:{display:"flex"}},o)):o}const Et={itemChildrenWrapper:{display:"flex",width:"100%",justifyContent:"space-between"},type:{marginTop:10},selectIcon:{paddingRight:8,verticalAlign:"middle",width:20,height:20},selectText:{verticalAlign:"middle"},iconWrapper:{display:"flex",alignItems:"center"},iconStyle:{width:16,height:16,margin:"0 3px"},emptyIcon:{width:16,height:16,margin:"0 3px"}};function H3e(s){const[e,t]=M.useState({}),[i,r]=M.useState([]);return x.useEffect(()=>{const o={};Object.keys(B.Types).filter(a=>{var c,l;return(!s.supportedDevices||((c=s.supportedDevices)==null?void 0:c.includes(a)))&&!((l=s.unsupportedDevices)!=null&&l.includes(a))}).forEach(a=>o[a]=d.t(`type-${B.Types[a]}`));const n=Object.keys(o);n.sort((a,c)=>o[a]===o[c]?0:o[a].localeCompare(o[c],"de")),C4(),r(n),t(o)},[s.supportedDevices,s.unsupportedDevices]),i?M.createElement(j.FormControl,{style:{...Et.type,...s.style},sx:s.sx,variant:"standard",error:!!s.error},M.createElement(j.InputLabel,null,s.label||d.t("type-Device type")),M.createElement(j.Select,{variant:"standard",disabled:!!s.disabled,value:s.value,onChange:o=>s.onChange(o.target.value)},i.map(o=>{var n;return M.createElement(j.MenuItem,{key:B.Types[o],value:B.Types[o]},M.createElement("div",{style:Et.itemChildrenWrapper},M.createElement("div",null,M.createElement(k_e,{type:B.Types[o],style:{...Et.selectIcon,color:s.themeType==="dark"?"#FFFFFF":"#000"}}),M.createElement("span",{style:Et.selectText},e[o])),(n=s.showApplications)!=null&&n.TYPE_OPTIONS[o]?M.createElement("div",{style:Et.iconWrapper},Object.keys(s.showApplications.TYPE_OPTIONS[o]).map(a=>s.showApplications.TYPE_OPTIONS[o][a]?M.createElement(me,{key:a,style:Et.iconStyle,src:s.showApplications.ICONS_TYPE[a]}):M.createElement("div",{key:a,style:Et.emptyIcon}))):null))}))):M.createElement(j.Box,{style:{...Et.type,...s.style},sx:s.sx})}function Y_e(s){return Z({attr:{version:"1",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"circle",attr:{fill:"#B2EBF2",cx:"32",cy:"24",r:"9"},child:[]},{tag:"path",attr:{fill:"#4DD0E1",d:"M32,12c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C44,17.4,38.6,12,32,12z M32,32 c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S36.4,32,32,32z"},child:[]},{tag:"g",attr:{fill:"#3F51B5"},child:[{tag:"polygon",attr:{points:"25.4,22 19.8,5.1 13.6,27.7 11.4,22 4,22 4,26 8.6,26 14.4,40.3 20.2,18.9 22.6,26 30,26 30,22"},child:[]},{tag:"circle",attr:{cx:"32",cy:"24",r:"4"},child:[]}]}]})(s)}function v_e(s){return Z({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M4.428 2.727l3.335 3.335c-.486.07-.903.276-1.32.624L.886 12.383c-1.181 1.18-1.181 3.194 0 4.375a2.41 2.41 0 0 0 1.598.834l17.088 3.681-3.335-3.333c.486-.07.903-.278 1.32-.626l5.557-5.695c1.181-1.181 1.181-3.196 0-4.377a2.411 2.411 0 0 0-1.598-.833zM11.653 6.2c.694 0 1.25.486 1.25 1.18 0 .695-.486 1.251-1.181 1.251-.695 0-1.25-.485-1.25-1.18s.555-1.251 1.18-1.251zm1.51 3.792c.049-.006.088.046.088.098-.139.694-.695 1.181-1.39 1.181-.694 0-1.32-.487-1.46-1.112 0 0 .002-.07.071 0 .487.278.972.348 1.32.278.346 0 .833-.07 1.32-.416a.092.092 0 0 1 .05-.029zm.723 2.511c.058.013.06.106.06.158-.209.903-.973 1.666-1.946 1.666a2.167 2.167 0 0 1-2.084-1.528c-.07-.07 0-.138.138-.138.695.347 1.39.416 1.877.416.486 0 1.18-.14 1.875-.556.035-.017.06-.022.08-.018zm.597 3.018c.049-.013.087.09.087.195-.278 1.181-1.25 2.085-2.5 2.155-1.251 0-2.293-.835-2.57-1.946 0-.139.068-.278.207-.209.834.486 1.737.556 2.362.556s1.529-.208 2.362-.694c.018-.035.036-.053.052-.057z"},child:[]}]})(s)}function b_e(s){return Z({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13 5l.855 3.42 3.389-.971 1.501 2.6-2.535 2.449 2.535 2.451-1.5 2.6-3.39-.971-.855 3.422h-3l-.855-3.422-3.39.971-1.501-2.6 2.535-2.451-2.534-2.449 1.5-2.6 3.39.971.855-3.42h3m0-2h-3c-.918 0-1.718.625-1.939 1.516l-.354 1.412-1.4-.4c-.184-.053-.369-.078-.552-.078-.7 0-1.368.37-1.731 1l-1.5 2.6c-.459.796-.317 1.802.342 2.438l1.047 1.011-1.048 1.015c-.66.637-.802 1.643-.343 2.438l1.502 2.6c.363.631 1.031 1 1.731 1 .183 0 .368-.025.552-.076l1.399-.401.354 1.415c.222.885 1.022 1.51 1.94 1.51h3c.918 0 1.718-.625 1.939-1.516l.354-1.414 1.399.4c.184.053.369.077.552.077.7 0 1.368-.37 1.731-1l1.5-2.6c.459-.796.317-1.8-.342-2.438l-1.047-1.013 1.047-1.013c.66-.637.801-1.644.342-2.438l-1.5-2.6c-.365-.631-1.031-1-1.732-1-.184 0-.368.025-.551.076l-1.4.401-.354-1.413c-.22-.884-1.02-1.509-1.938-1.509zM11.5 10.5c1.104 0 2 .895 2 2 0 1.104-.896 2-2 2s-2-.896-2-2c0-1.105.896-2 2-2m0-1c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3z"},child:[]}]})(s)}function Q_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.707 17.707 13.414 12 7.707 6.293 6.293 7.707 10.586 12l-4.293 4.293zM15 6h2v12h-2z"},child:[]}]})(s)}function U_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M376 211H256V16L136 301h120v195z"},child:[]}]})(s)}function $_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32l-64 96 80 16-16 80 64-96-80-16 16-80zm-96 217c-1.9 0-9.8 3-15.8 6.7-2.8 1.7-5.3 3.5-7.2 4.8v119c1.9 1.3 4.4 3.1 7.2 4.8 6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 5.9-3.7 10.6-7.3 10.6-7.3l2.5-2H201V265h-12.1l-2.5-2s-4.7-3.6-10.6-7.3c-6-3.7-13.9-6.7-15.8-6.7zm192 0c-1.9 0-9.8 3-15.8 6.7-5.9 3.7-10.6 7.3-10.6 7.3l-2.5 2H311v110h12.1l2.5 2s4.7 3.6 10.6 7.3c6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 2.8-1.7 5.3-3.5 7.2-4.8v-119c-1.9-1.3-4.4-3.1-7.2-4.8-6-3.7-13.9-6.7-15.8-6.7zm-133 16v110h14V265h-14zm32 0v110h42V265h-42zM95.5 311c-18.8 0-36.6 9.2-49.94 22.7C32.22 347.1 23 365 23 384v106h18V384c0-13 6.78-27.1 17.32-37.7C68.85 335.8 82.8 329 95.5 329H119v-18H95.5zm297.5 0v18h22.9c13.1 0 27.1 6.8 37.7 17.4C464.2 357 471 371 471 384v106h18V384c0-19-9.2-37-22.7-50.4-13.4-13.4-31.4-22.6-50.4-22.6H393z"},child:[]}]})(s)}function P_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M20.127 52.803v58.986L250.46 245.153c26.367-28.823 70.087-36.533 105.313-16.195 35.29 20.374 50.465 62.207 38.567 99.503l101.648 58.855-64.728-74.65 35.638-37.352-57.27-7.687 84.72-86.92-125.71 33.186 12.995-120.208-66.578 96.363-27.448-80.593-16.353 88.77L20.127 52.803zm0 105.12l-.008.018.007.005v-.02zm0 .022l-.002 87.582 155.344 89.95-89.94 33.287h135.493l-63.658 99.87 116.22-70.083 15.77 85.852 38.543-80.01 63.66 87.018-5.853-87.047 90.54 17.268-102.4-59.198c-26.546 26.964-68.89 33.744-103.183 13.945-34.322-19.816-49.62-59.928-39.49-96.424L20.127 157.945zm316.6 119.442c-.938-.003-1.874.027-2.805.092-12.42.86-24.164 7.707-30.9 19.375-10.78 18.67-4.455 42.27 14.214 53.047 18.67 10.78 42.27 4.455 53.047-14.214 10.78-18.67 4.454-42.27-14.215-53.047-6.125-3.536-12.78-5.23-19.34-5.253z"},child:[]}]})(s)}function W_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M33.125 19.406L135.5 128.22l81-23.157 18.72-5.344-7.564 17.936-46.125 109.78 134.282-70 26.157-13.655L328.436 170 256.5 309.25l91.25-57.125 22.97-14.375-9.22 25.47-34.625 95.624 71-36.375 21.188-10.845L410.906 334l-33.937 93.063 45.124-6.688 4.53-.656 3.313 3.155 64.313 61.47-30.5-80.5 23.313-46.908-72.5 39.532 51.062-141.158-91.188 47.47 72.344-142.813-128.217 82.81L421.875 70.063 239.03 168.69l30.44-99.563-103.845 25.25-132.5-74.97zM18.155 30.78l77.876 108.25-31.124 75.532 94.125-46.78-98.905 166.812 190.25-99.656-101.03 185.406 140.25-79.063-46.94 102.22 106.5-53-45.655 92.28 86.5-14.467 93.47 31.562-63.158-60.344-56.125 8.314-15.53 2.312 5.374-14.75 31.158-85.437-70.907 36.31-21.124 10.814 8.094-22.313 33.47-92.436-97.22 60.875-28.938 18.092L224.22 331l74.06-143.344-131.06 68.313-22.97 12 10.03-23.908 48.626-115.687-67.75 19.375-5.5 1.563-3.875-4.157L18.157 30.78z"},child:[]}]})(s)}function B_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M288.3 13.4c-12.3-.01-23 6.49-27.3 15.31l-2.9 5.95-6.6-1.01c-5.5-.85-11.3-1.32-17.1-1.32-18.8 0-35.7 4.5-47.3 11.14-11.5 6.64-16.9 14.59-16.9 22 0 7.42 5.4 15.37 16.9 22 11.6 6.64 28.5 11.13 47.3 11.13 7.5-.02 14.9-.74 21.8-2.13l6.3-1.23 3.2 5.46c5.6 9.2 23.7 18.2 44.7 18.2 13.9 0 26.4-3.6 34.8-8.8 8.4-5.2 12.2-11.23 12.2-16.9 0-5.09-3-10.48-10-15.44-6.9-4.97-17.6-8.87-30-9.95l-18.3-1.59 12.5-13.49c4.1-4.41 6.1-9.6 6.1-14.87 0-12.88-12.4-24.46-29.4-24.46zM152.2 65.46C84.8 102.3 39 173.9 39 256c0 32.1 7 62.6 19.54 90 5.95-7.9 10.48-13.4 12.67-16C62.05 307.2 57 282.2 57 256c0-74 40.27-138.5 100.1-172.78-3.1-5.39-4.9-11.34-4.9-17.74v-.02zm210.7 1.75c7.5 6.93 12.5 15.9 12.5 25.99 0 1.14-.1 2.27-.2 3.38C423.7 132.9 455 190.7 455 256c0 23.7-4.2 46.5-11.8 67.6l18.3 2.2c7.4-21.9 11.5-45.4 11.5-69.8 0-80.8-44.4-151.5-110.1-188.79zm58.6 270.49c-11.1.2-23 1.1-35.9 3.1l-.5.1-.5.1c-25.8 7.3-37.1 15.2-46.4 24.7l-2.2 2.2-.3 3.1c-3.4 29.6-5.8 60 0 91.8l1.3 6.8 6.8.6c30.6 2.6 58.7 1.4 86.2 0l1-.1.9-.2c18.5-5.2 34.4-12.8 46.4-24.6l1.7-1.6.6-2.2c10-33.4 3.4-63.8.4-92.7l-.8-7.4-7.3-.7c-16.2-1.5-32.8-3.2-51.4-3zM79.62 348.2c-4.94 6.1-11.43 14.5-18.58 25.6-12.29 18.9-22.53 42.4-20.51 54.9 1.43 8.8 6.97 19.6 14.51 27.6 7.54 7.9 16.69 12.8 24.58 12.8 7.87 0 17.03-4.9 24.58-12.8 7.5-8 13.1-18.8 14.5-27.6 2-12.5-8.2-36-20.5-54.9-7.15-11-13.64-19.5-18.58-25.6zM427 355.7c1.7 0 3.3 0 5 .1 5.4.1 10.7.4 16 .8-5.9 3.4-12.1 6.8-19.5 9.9l-2.4.2c-19.5 1.4-37.7.3-55.4-2 4.7-2 10.5-4 18.3-6.2 13.8-2.2 26.3-2.9 38-2.8zm38 11.6c2.8 22.9 5 44.5-1 66.6-7 6.3-16 11.4-27 15.4 3-22.5 2-44.8-.5-66.6 11.3-5 20.2-10.2 28.5-15.4zm-112.2 13.1c20.7 3.2 42.3 5.4 65.8 4.5 2.5 23 3.5 45.6-.4 67.8-21.5 1-43.1 1.5-65.8-.1-3.5-24-2.2-47.9.4-72.2zm-216.4 34.7c.9 5.5 1 11 .1 16.4-.3 1.6-.6 3.3-1 4.9C170 459.5 211.4 473 256 473c21.6 0 42.5-3.2 62.3-9.1l-2-18.2c-19 6-39.3 9.3-60.3 9.3-44.9 0-86.3-14.8-119.6-39.9z"},child:[]}]})(s)}function kl(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M140 29.92c-31.4 0-59.89 3.25-79.89 8.25-9.9 2.5-17.8 5.51-22.4 8.25-3.2 1.87-4.1 3.15-4.5 3.58.4.43 1.3 1.71 4.5 3.58 4.6 2.74 12.5 5.75 22.4 8.25 20 5 48.49 8.25 79.89 8.25h5.7c5.3-2 11.1-3.78 17.6-5.4 20.3-5.08 46.5-8.42 75.8-9.36 1.2-.57 2.3-1.14 3.2-1.7 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zm232 0c-31.4 0-59.9 3.25-79.8 8.25-10 2.5-17.9 5.51-22.5 8.25-3.1 1.87-4.1 3.15-4.5 3.58.4.43 1.4 1.71 4.5 3.58.9.56 2 1.13 3.2 1.7 29.3.94 55.5 4.28 75.8 9.36 6.5 1.62 12.3 3.4 17.6 5.4h5.7c31.4 0 59.9-3.25 79.8-8.25 10-2.5 17.9-5.51 22.5-8.25 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zM33.01 71.44V369.9c0 4.3 1.8 8 6.8 12.3 5 4.3 13.1 8.5 23.3 11.9 15.3 5.1 35 8.5 55.89 9.8V278.3l-16.5 28.6-7.79-4.5c-27.4-15.9-44.3-45.3-44.4-77v-9h52.59c-.6 2.6-.9 5.3-.9 8.1 0 13.1 6.8 24.8 17 31.7v-63.4c-1.9 1.3-3.6 2.7-5.2 4.2l-25.99-45.1 7.8-4.5c7.49-4.2 15.29-7.3 23.39-9.3V87.61c-24.19-1.08-45.99-4.01-63.19-8.32-8.9-2.21-16.5-4.76-22.8-7.85zm445.99 0c-6.3 3.09-14 5.63-22.8 7.84-17.2 4.31-39 7.24-63.2 8.32v50.6c8.1 2 16 5.1 23.4 9.3l7.7 4.5-4.4 7.8-21.5 37.2c-1.6-1.5-3.3-2.9-5.2-4.2v63.4c10.2-6.9 17-18.6 17-31.7 0-2.8-.3-5.5-.9-8.1h50.8v9c0 31.8-17 61.1-44.4 77l-7.8 4.5-14.7-25.5v122.5c20.9-1.3 40.7-4.7 55.9-9.8 10.2-3.4 18.3-7.6 23.3-11.9 5-4.3 6.8-8 6.8-12.3zM256 73c-34.7 0-66.2 3.57-88.3 9.1-11.1 2.77-19.8 6.09-25.1 9.19-4.3 2.58-5.3 4.42-5.5 4.71.2.29 1.2 2.12 5.5 4.7 5.3 3.1 14 6.4 25.1 9.2 22.1 5.5 53.6 9.1 88.3 9.1 34.7 0 66.2-3.6 88.3-9.1 11.1-2.8 19.8-6.1 25.1-9.2 4.3-2.58 5.3-4.41 5.5-4.7-.2-.29-1.2-2.13-5.5-4.71-5.3-3.1-14-6.42-25.1-9.19-22.1-5.53-53.6-9.1-88.3-9.1zm118.9 23c.1.1.1.1.1 0s0-.1-.1 0zm-237.8 0c-.1-.1-.1-.1-.1 0s0 .1.1 0zm-.1 22.1V448c0 5 2.2 9.3 7.9 14.2 5.6 4.8 14.7 9.5 25.9 13.3 22.6 7.5 54 11.5 85.2 11.5 31.2 0 62.6-4 85.2-11.5 11.2-3.8 20.3-8.5 25.9-13.3 5.7-4.9 7.9-9.2 7.9-14.2V118.1c-7.2 3.7-16 6.6-26.3 9.3-24.2 6-56.7 9.6-92.7 9.6s-68.5-3.6-92.7-9.6c-10.3-2.7-19.1-5.6-26.3-9.3zM256 191c16.8 0 33.5 4.4 48.5 13l7.8 4.5-4.5 7.8-24.1 41.6c-7.3-6.7-17-10.9-27.7-10.9s-20.4 4.2-27.7 10.9l-28.6-49.4 7.8-4.5c15-8.7 31.7-13 48.5-13zm0 74c12.8 0 23 10.2 23 23s-10.2 23-23 23-23-10.2-23-23 10.2-23 23-23zm-98 15h57.8c-.5 2.6-.8 5.3-.8 8 0 18.1 12 33.7 28.5 39l-29.2 50.5-7.8-4.5c-30-17.3-48.5-49.4-48.5-84zm138.2 0H352v9c0 34.6-18.5 66.7-48.5 84l-7.8 4.5-28.8-50c17.3-4.8 30.1-20.8 30.1-39.5 0-2.7-.3-5.4-.8-8z"},child:[]}]})(s)}function J_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"},child:[]}]})(s)}function R_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.7 21.04l-194.4.41L21.04 159.3l.41 194.4L159.3 491l194.4-.4L491 352.7l-.4-194.4L352.7 21.04zm-8 19.66l126.2 125.7.4 178.3-123.1 123.6-2.6 2.6-178.3.4L41.08 345.6l-.38-178.3L166.4 41.08l178.3-.38zm-7.5 18.01l-163.3.34L58.71 174.8l.34 163.3L174.8 453.3l163.3-.3 115.2-115.8-.3-163.3L337.2 58.71zM108.4 210.4c5.3 0 10.8.5 16.4 1.3 5.7.8 11.5 2 17.5 3.6v20.5c-5.3-2.4-10.5-4.2-15.6-5.4-5.1-1.2-9.9-1.8-14.4-1.8-6 0-10.4.8-13.25 2.5-2.87 1.6-4.3 4.2-4.3 7.7 0 2.6.96 4.6 2.87 6.1 1.95 1.4 5.48 2.7 10.58 3.7l10.6 2.1c10.8 2.2 18.5 5.5 23.1 9.9 4.5 4.5 6.8 10.8 6.8 18.9 0 10.7-3.2 18.7-9.5 24-6.4 5.2-16.1 7.8-29.2 7.8-6.1 0-12.3-.6-18.51-1.8-6.2-1.1-12.41-2.9-18.61-5.2v-21.1c6.2 3.3 12.19 5.8 17.96 7.5 5.82 1.6 11.46 2.4 16.76 2.4 5.5 0 9.7-.9 12.6-2.7 2.9-1.8 4.4-4.4 4.4-7.8 0-3.1-1-5.4-3-7.1-2-1.6-5.9-3.1-11.8-4.4l-9.7-2.1c-9.73-2.1-16.85-5.4-21.37-10-4.47-4.5-6.7-10.7-6.7-18.4 0-9.7 3.12-17.1 9.37-22.3 6.25-5.3 15.24-7.9 27-7.9zm187.7 0c15.6 0 27.8 4.5 36.7 13.5 8.9 8.9 13.3 21.2 13.3 37 0 15.7-4.4 28-13.3 37-8.9 8.9-21.1 13.4-36.7 13.4-15.6 0-27.8-4.5-36.7-13.4-8.9-9-13.3-21.3-13.3-37 0-15.8 4.4-28.1 13.3-37 8.9-9 21.1-13.5 36.7-13.5zm-141.9 1.8h89.6v18.9h-32.2v78.3h-25.1v-78.3h-32.3v-18.9zm205.8 0h41.6c12.3 0 21.8 2.8 28.4 8.3 6.7 5.4 10 13.2 10 23.4s-3.3 18.1-10 23.6c-6.6 5.4-16.1 8.2-28.4 8.2H385v33.7h-25v-97.2zm-63.9 16.4c-7.7 0-13.6 2.8-17.8 8.5-4.2 5.6-6.3 13.6-6.3 23.8 0 10.2 2.1 18.1 6.3 23.8 4.2 5.6 10.1 8.4 17.8 8.4 7.7 0 13.6-2.8 17.8-8.4 4.2-5.7 6.3-13.6 6.3-23.8 0-10.2-2.1-18.2-6.3-23.8-4.2-5.7-10.1-8.5-17.8-8.5zm88.9 1.8v27.1h13.9c4.9 0 8.6-1.2 11.3-3.5 2.6-2.4 3.9-5.8 3.9-10.1s-1.3-7.7-3.9-10c-2.7-2.4-6.4-3.5-11.3-3.5H385z"},child:[]}]})(s)}function F_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M327.467 19.992c.748 14.94 2.317 51.268 2.59 98.76 3.474-.286 6.557-.381 9.72 1.08 18.04 8.345 27.243 29.326 27.026 50.506-.217 21.18-11.283 44.136-36.104 54.307a41.62 41.62 0 0 1-2.486.923c-3.408 80.504-12.307 166.37-33.754 225.5-6.876 15.831-17.029 29.217-26.828 40.94l55.27.422c20.676-12.19 32.041-27.395 36.32-46.407l17.558 3.954c-3.67 16.312-11.99 30.662-24.511 42.677l143.052 1.094c-5.13-14.524-16.16-46.501-20.357-70.217C451.89 293.171 450.15 45 450.025 19.992zM18.279 38.984l.881 18.725c17.856 12.047 32.035 23.91 45.969 35.527 12.887-11.156 2.404-29.725-5.82-39.091-13.668-5.346-27.335-10.467-41.03-15.16zM86.723 65.13c4.77 14.56 3.347 29.656-7.477 39.746 24.105 19.479 50.832 38.151 97.1 55.635 13.836-22.588 12.08-43.852-3.338-60.739-29.03-10.9-57.703-22.997-86.285-34.642zm-31.721 42.988V400h17.996V122.723c-6.187-4.856-12.114-9.73-17.996-14.606zm145.264 1.434c3.253 8.283 4.54 16.754 3.982 25.043-.765 11.35-4.673 22.135-10.545 32.095 16.926 5.691 36.192 11.248 58.451 16.655l2.604.633 1.834 1.953c9.223 9.826 22.535 17.206 35.469 21.006 12.933 3.8 25.473 3.655 31.814 1.056 18.024-7.385 24.773-22.363 24.932-37.84.152-14.822-7.069-28.554-15.479-33.306-45.88-1.699-89.948-12.607-133.062-27.295zm-33.264 66.476V400h17.996V182.605a502.784 502.784 0 0 1-17.996-6.578zM32 419.002v17.996h176v-17.996z"},child:[]}]})(s)}function G_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18.36 6.64a9 9 0 1 1-12.73 0"},child:[]},{tag:"line",attr:{x1:"12",y1:"2",x2:"12",y2:"12"},child:[]}]})(s)}function H_e(s){return Z({attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},child:[]}]})(s)}function V_e(s){return Z({attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 0l-6 8h6l-4 8 14-10h-8l6-6z"},child:[]}]})(s)}const V3e={SET:Xxe,WORKING:$M,UNREACH:BM,LOWBAT:PM,MAINTAIN:QL,ERROR:bL,DIRECTION:vL,CONNECTED:BM,ACTUAL:b_e,SECOND:Q_e,PRESS_LONG:YL,PRESS:kL,MUTE:SL,ACCURACY:P_e,RADIUS:s_e,ELEVATION:Kxe,LATITUDE:qxe,LONGITUDE:i_e,GPS:_L,ON_ACTUAL:WM,ON_SET:WM,OPEN:xL,STOP:R_e,WATER_ALARM:El,WASTE_ALARM:kl,PAUSE:Zxe,STATE:B_e,BATTERY:PM,WASTE:kl,WATER:El,WORK_MODE:$M,MODE:fL,POWER:t_e,BOOST:v_e,HUMIDITY:a_e,TEMPERATURE:c_e,BRIGHTNESS:o_e,MOTION:EL,FIRE:n_e,WINDOW:w4,SMOKE:M_e,SWING:F_e,SPEED:J_e,DIMMER:H_e,ON:G_e,COLOR_TEMP:OL,ELECTRIC_POWER:V_e,CURRENT:U_e,VOLTAGE:$_e,CONSUMPTION:Y_e,FREQUENCY:W_e,HUE:u_e};class I4 extends M.Component{static generateFile(e,t){const i=window.document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",window.document.body.appendChild(i),i.click(),window.document.body.removeChild(i)}handleFileSelect=e=>{const t=e.target,i=t==null?void 0:t.files;if(!i||!i.length){console.error("No files found. Please report to developers");return}const r=i[0];if(r){const o=new window.FileReader;o.onload=()=>{var a;const n=((a=o.result)==null?void 0:a.toString())||"";try{const c=JSON.parse(n);c.native&&c.common?c.common.name!==this.props.common.name?this.props.onError&&this.props.onError(d.t("ra_otherConfig",c.common.name)):this.props.onLoad&&this.props.onLoad(c.native):this.props.onError&&this.props.onError(d.t("ra_invalidConfig"))}catch(c){this.props.onError&&this.props.onError(c==null?void 0:c.toString())}},o.readAsText(r)}else alert("Failed to open JSON File")};download(){const e={_id:`system.adapter.${this.props.common.name}.${this.props.instance}`,common:JSON.parse(JSON.stringify(this.props.common)),native:this.props.native};e.common.news&&delete e.common.news,e.common.titleLang&&delete e.common.titleLang,e.common.desc&&delete e.common.desc,I4.generateFile(`${e._id}.json`,e)}upload(){const e=window.document.createElement("input");e.setAttribute("type","file"),e.setAttribute("id","files"),e.setAttribute("opacity","0"),e.addEventListener("change",this.handleFileSelect,!1),e.click()}render(){return M.createElement("div",{className:this.props.className,style:this.props.style},this.props.common.icon?M.createElement(me,{src:this.props.common.icon,style:{padding:8,width:64},alt:"logo"}):null,this.props.common.readme?M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Help",style:{marginRight:5,marginTop:5,float:"right"},onClick:()=>{const e=window.open(this.props.common.readme,"_blank");e==null||e.focus()}},M.createElement(UL,null)):null,M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Load config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Load configuration from file"),onClick:()=>this.upload()},M.createElement(Ag,null)),M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Save config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Save configuration to file"),onClick:()=>this.download()},M.createElement(pg,null)))}}class p4{static text2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static getTitle(e){const t=p4.extractHeader(e);let i=t.body;const r=t.header;if(!r.title){i=i.replace(/{[^}]*}/g,""),i=i.trim();const o=i.replace(/\r/g,"").split(` -`);for(let n=0;n{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===l?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static removeDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static onCopy(e,t){e0(t),e&&e.stopPropagation(),e&&e.preventDefault()}}function Z_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function A4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"248",cx:"160",fill:"none",strokeWidth:"15"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function Ts(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"}))}function m4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"140.83068",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"251",cx:"241",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"200.94531",x2:"240.5",y1:"45.94531",x1:"240.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"78.7979",x:"214.5",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"84",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"83.5",y1:"46.94531",x1:"83.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"57.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function X_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",onClick:e=>s.onClick&&s.onClick(e),width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}))}function K_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}),M.createElement("path",{fill:"currentColor",stroke:"null",d:"m261,270l-12,0l0,-24c0,-33.12 -26.88,-60 -60,-60s-60,26.88 -60,60l0,24l-12,0c-13.2,0 -24,10.8 -24,24l0,120c0,13.2 10.8,24 24,24l144,0c13.2,0 24,-10.8 24,-24l0,-120c0,-13.2 -10.8,-24 -24,-24zm-72,108c-13.2,0 -24,-10.8 -24,-24s10.8,-24 24,-24s24,10.8 24,24s-10.8,24 -24,24zm37.2,-108l-74.4,0l0,-24c0,-20.52 16.68,-37.2 37.2,-37.2c20.52,0 37.2,16.68 37.2,37.2l0,24z"}))}function q_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function Ai(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("rect",{fill:"none",rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor"}),M.createElement("ellipse",{fill:"none",ry:"54",rx:"54",cy:"160",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor"}))}function eSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 24 24",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",stroke:"currentColor",d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"}))}const Ko={root:{width:"100%",height:"100%"},overflowHidden:{overflow:"hidden"},container:{height:"100%"}};function tSe(s){var e;return M.createElement(j.Paper,{elevation:Number.isNaN(s.elevation)?1:s.elevation,style:{...Ko.root,...((e=s.styles)==null?void 0:e.root)||void 0,...s.overflow!=="visible"?Ko.overflowHidden:void 0},onKeyDown:s.onKeyDown,tabIndex:s.tabIndex},M.createElement(j.Grid2,{container:!0,direction:"column",wrap:"nowrap",sx:Ko.container},s.children))}const Yl={root:{height:"100%",overflow:"hidden"},overflowAuto:{overflow:"auto"}};function sSe(s){return M.createElement(j.Grid2,{sx:{...Yl.root,...(s==null?void 0:s.style)||void 0,...s.overflow==="auto"?Yl.overflowAuto:void 0},ref:s.ref},s.children)}function iSe(s){return M.createElement(j.Grid2,{container:!0,alignItems:"center"},s.children)}const Ds=24,pe=32,rSe=16,ge=20,O4=s=>s==="dark"?"#62ff25":"#37c400",E4=s=>s==="dark"?"#ee56ff":"#a204b4",oSe=s=>s==="dark"?"#fff46e":"#b89101",f4=s=>"#ff6d69",x4=s=>"#5773ff",_4="#ff413c",S4="#86211f",Wn="#57ff45",Bn="#098c04",Jn="#f3ad11",Rn="#6c5008",w={toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:16},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:8},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustom_center:{textAlign:"center"},columnCustom_left:{textAlign:"left"},columnCustom_right:{textAlign:"right"},width100:{width:"100%"},transparent_10:{opacity:.1},transparent_20:{opacity:.2},transparent_30:{opacity:.3},transparent_40:{opacity:.4},transparent_50:{opacity:.5},transparent_60:{opacity:.6},transparent_70:{opacity:.7},transparent_80:{opacity:.8},transparent_90:{opacity:.9},transparent_100:{opacity:1},headerRow:{paddingLeft:8,height:38,whiteSpace:"nowrap",userSelect:"none"},buttonClearFilter:{position:"relative",float:"right",padding:0},buttonClearFilterIcon:{zIndex:2,position:"absolute",top:0,left:0,color:"#FF0000",opacity:.7},tableDiv:{paddingTop:0,paddingLeft:0,width:"calc(100% - 8px)",height:"calc(100% - 38px)",overflow:"auto"},tableRow:s=>({pl:1,height:pe,lineHeight:`${pe}px`,verticalAlign:"top",userSelect:"none",position:"relative",width:"100%","&:hover":{background:`${s.palette.mode==="dark"?s.palette.primary.dark:s.palette.primary.light} !important`,color:O.invertColor(s.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"}),tableRowLines:s=>({borderBottom:`1px solid ${s.palette.mode==="dark","#8888882e"}`,"& > div":{borderRight:`1px solid ${s.palette.mode==="dark","#8888882e"}`}}),tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:pe+10},tableRowAliasReadWrite:{height:pe+22},tableRowFocused:s=>({"&:after":{content:'""',position:"absolute",top:1,left:1,right:1,bottom:1,border:s.palette.mode?"1px dotted #000":"1px dotted #FFF"}}),checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:pe-4,height:pe-4,mt:"2px",float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:s=>({marginRight:8,width:pe-4,height:pe-4,cursor:"pointer",color:s.palette.secondary.main||"#fbff7d",verticalAlign:"top"}),cellIdIconDocument:{verticalAlign:"middle",marginLeft:(pe-ge)/2,marginRight:8,width:ge,height:ge},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8,position:"absolute",right:3},cellCopyButtonInDetails:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8},cellEditButton:{width:ge,height:ge,color:"white",position:"absolute",top:(pe-ge)/2,right:ge+3,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,ml:"5px",overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellNameWithDesc:{lineHeight:"normal"},cellNameDivDiv:{},cellDescription:{fontSize:10,opacity:.5,fontStyle:"italic"},cellIdAlias:s=>({fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:s.palette.mode==="dark"?"#009900":"#007700"}}),cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:Ds,height:Ds,display:"inline-block"},"& .itemIconFolder":{marginLeft:3}},cellRole:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellRoom:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellEnumParent:{opacity:.4},cellFunc:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValue:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValueButton:{marginTop:5},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:pe,fontSize:16,display:"flex",overflow:"hidden",textOverflow:"ellipsis",position:"relative",verticalAlign:"top","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellValueFile:{color:"#2837b9"},cellValueTooltipTitle:{fontStyle:"italic",width:100,display:"inline-block"},cellValueTooltipValue:{width:120,display:"inline-block",whiteSpace:"nowrap",textOverflow:"ellipsis"},cellValueTooltipImage:{width:100,height:"auto"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden",pointerEvents:"none"},tooltip:{pointerEvents:"none"},cellValueTextUnit:{marginLeft:4,opacity:.8,display:"inline-block"},cellValueTextState:{opacity:.7},cellValueTooltipCopy:{position:"absolute",bottom:3,right:3},cellValueTooltipEdit:{position:"absolute",bottom:3,right:15},cellButtons:{display:"inline-block",verticalAlign:"top"},cellButtonsButton:{display:"inline-block",opacity:.5,width:ge+4,height:ge+4,"&:hover":{opacity:1},p:0,mt:"-2px"},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:40},cellButtonsButtonAlone:{ml:`${ge+6}px`,pt:0,mt:"-2px"},cellButtonsButtonWithCustoms:s=>({color:s.palette.mode==="dark"?s.palette.primary.main:s.palette.secondary.main}),cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:s=>({position:"absolute",top:ge/2-2,opacity:.7,width:ge-2,height:ge-2,color:s.palette.action.active,"&:hover":{opacity:1}}),cellButtonsValueButtonCopy:{right:8,cursor:"pointer"},cellButtonsValueButtonEdit:{right:ge/2+16},cellDetailsLine:{display:"flex",alignItems:"center",width:"100%",height:32,fontSize:16},cellDetailsName:{fontWeight:"bold",marginRight:8,minWidth:80},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{mt:0,mb:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:s=>({background:`${s.palette.primary.main} !important`,color:`${O.invertColor(s.palette.primary.main,!0)} !important`}),header:{width:"100%"},headerCell:{display:"inline-block",verticalAlign:"top"},headerCellValue:{paddingTop:4,fontSize:16},headerCellInput:{width:"calc(100% - 5px)",height:pe,pt:0,"& .itemIcon":{verticalAlign:"middle",width:Ds,height:Ds,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:Ds,height:Ds,mr:"5px",display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:8,width:32,height:32,borderRadius:8,background:"#FFFFFF"},enumIcon:{marginTop:4,marginLeft:4,width:24,height:24},enumDialog:{overflow:"hidden"},enumList:{minWidth:250,height:"calc(100% - 50px)",overflow:"auto"},enumCheckbox:{minWidth:0},buttonDiv:{display:"flex",height:"100%",alignItems:"center"},aclText:{fontSize:13,marginTop:6},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},fontSizeTitle:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}}},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:5,backgroundColor:"background.default"},iconDeviceConnected:s=>({color:s.palette.mode==="dark"?Wn:Bn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceDisconnected:s=>({color:s.palette.mode==="dark"?Jn:Rn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceError:s=>({color:s.palette.mode==="dark"?_4:S4,opacity:.8,position:"absolute",top:4,right:50,width:20}),resizeHandle:{display:"block",position:"absolute",cursor:"col-resize",width:7,top:2,bottom:2,zIndex:1},resizeHandleRight:{right:3,borderRight:"2px dotted #888","&:hover":{borderColor:"#ccc",borderRightStyle:"solid"},"&.active":{borderColor:"#517ea5",borderRightStyle:"solid"}},invertedBackground:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"}),invertedBackgroundFlex:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}),contextMenuEdit:s=>({color:s.palette.mode==="dark"?"#ffee48":"#cbb801"}),contextMenuEditValue:s=>({color:s.palette.mode==="dark"?"#5dff45":"#1cd301"}),contextMenuView:s=>({color:s.palette.mode==="dark"?"#FFF":"#000"}),contextMenuCustom:s=>({color:s.palette.mode==="dark"?"#42eaff":"#01bbc2"}),contextMenuACL:s=>({color:s.palette.mode==="dark"?"#e079ff":"#500070"}),contextMenuRoom:s=>({color:s.palette.mode==="dark"?"#ff9a33":"#642a00"}),contextMenuRole:s=>({color:s.palette.mode==="dark"?"#ffdb43":"#562d00"}),contextMenuDelete:s=>({color:s.palette.mode==="dark"?"#ff4f4f":"#cf0000"}),contextMenuKeys:{marginLeft:8,opacity:.7,fontSize:"smaller"},contextMenuWithSubMenu:{display:"flex"}};function nSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 436 436",style:s==null?void 0:s.style,width:"24",height:"24",className:"admin-button"},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function aSe(s,e){const t=[];for(let i=0;i{if(r==null)return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r}):MSe(s,(i,r,o)=>{if(r==null||e.includes(o))return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r})}function vl(s,e,t){const i=document.createElement("a"),r=[];t.excludeSystemRepositories&&r.push("system.repositories");const o=r.length>0||t.excludeTranslations?Fn(e,r,t.excludeTranslations):e,n=t.beautify?JSON.stringify(o,null,2):JSON.stringify(o);i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(n)}`),i.setAttribute("download",s),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function vi(s,e,t,i){if(t=t||0,i===void 0&&(i=s.length-1,!i))return s[0]===e;const r=Math.floor((t+i)/2);return e===s[r]?!0:i-1===t?s[t]===e||s[i]===e:e>s[r]?vi(s,e,r,i):eI.role.startsWith(h))||(l=!0)):l=!0),!l&&((p=n.common)==null?void 0:p.custom)==="_"&&(I!=null&&I.custom))l=!0;else if(!l&&((C=n.common)!=null&&C.custom)&&((m=n.common)==null?void 0:m.custom)!=="_"){const h=n.common.custom;if(!(I!=null&&I.custom))l=!0;else if(h==="_dataSources")Object.keys(I.custom).find(A=>A.startsWith("history.")||A.startsWith("sql.")||A.startsWith("influxdb."))||(l=!0);else if(Array.isArray(h)){const A=Object.keys(I.custom);h.find(S=>A.find(f=>f.startsWith(S)))&&(l=!0)}else h!==!0&&!Object.keys(I.custom).find(A=>A.startsWith(h))&&(l=!0)}}!l&&!e.expertMode&&(l=N.id==="system"||N.id==="enum"||N.id.startsWith("system.")||N.id.startsWith("enum.")||N.id.startsWith("_design/")||N.id.endsWith(".admin")||!!(I!=null&&I.expert)),!l&&r.id&&(N.fID===void 0&&(N.fID=N.id.toLowerCase()),l=!N.fID.includes(r.id)),!l&&r.name&&(I?(N.fName===void 0&&(N.fName=I&&Qe(I.name,t)||"",N.fName=N.fName.toLowerCase()),l=!N.fName.includes(r.name)):l=!0),!l&&e.role&&I&&(I?l=!(typeof I.role=="string"&&I.role.startsWith(r.role)):l=!0),!l&&r.room&&(l=!r.room.find(h=>h===N.id||N.id.startsWith(`${h}.`))),!l&&r.func&&(l=!r.func.find(h=>h===N.id||N.id.startsWith(`${h}.`))),!l&&r.type&&(l=!(N.obj&&N.obj.type&&N.obj.type===r.type)),!l&&a&&(l=!(N.obj&&N.obj.type&&a.includes(N.obj.type))),!l&&r.custom&&(I?r.custom==="_"?l=!!I.custom:l=!I.custom||!I.custom[r.custom]:l=!0)}return N.visible=!l,N.hasVisibleChildren=!1,s.children&&c<20&&s.children.forEach(I=>{Gn(I,e,t,i,r,o,n,a,c+1)&&(N.hasVisibleChildren=!0)}),N.sumVisibility=N.visible||N.hasVisibleChildren,o&&N.sumVisibility&&o.count++,N.id&&N.sumVisibility&&s.children&&s.children.forEach(I=>I.data.hasVisibleParent=!0),N.visible||N.hasVisibleChildren}function k4(s,e,t,i){var o;i=i||[];const r=s.data;return r.sumVisibility&&(r.id&&t[r.id]&&t[r.id].type===e&&i.push(r.id),(o=s.children)==null||o.forEach(n=>k4(n,e,t,i))),i}function bl(s,e,t,i,r,o){let n;return e==="alias"||e==="alias.0"?n=M.createElement(gN,{className:"iconOwn",style:{color:E4(i)}}):e==="0_userdata"||e==="0_userdata.0"?n=M.createElement(rg,{className:"iconOwn",style:{color:O4(i)}}):e.startsWith("_design/")||e==="system"?n=M.createElement(kr,{className:"iconOwn",style:{color:f4(i)}}):e==="system.adapter"?n=M.createElement(kr,{className:"iconOwn",style:{color:x4(i)}}):e==="system.group"?n=M.createElement(ga,{className:"iconOwn"}):e==="system.user"?n=M.createElement(Na,{className:"iconOwn"}):e==="system.host"?n=M.createElement(La,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?n=M.createElement(Qs,{className:"iconOwn"}):e.endsWith(".info")?n=M.createElement(la,{className:"iconOwn"}):s[e]&&s[e].type==="meta"?n=M.createElement(Kr,{className:"iconOwn"}):t<2&&s[`system.adapter.${e}`]&&(n=Zr(s,`system.adapter.${e}`,r,o)),n||null}function Y4(s,e){var t,i;return(i=(t=s==null?void 0:s.obj)==null?void 0:t.common)!=null&&i.desc&&Qe(s.obj.common.desc,e)||null}function cSe(s,e){const t=Y4(s,e);return t!=null&&t.startsWith("http")?M.createElement(j.Box,{component:"a",sx:w.cellIdTooltipLink,href:t,target:"_blank",rel:"noreferrer"},t):M.createElement("span",{style:w.cellIdTooltip},t||s.id||"")}function Ql(s,e){var N,u,L,g,y,T,D,z,p,C;const t=e.imagePrefix||".";let i=Object.keys(s);i.sort((m,I)=>m===I?0:(m=m.replace(/\./g,"!!!"),I=I.replace(/\./g,"!!!"),m>I?1:-1)),e.root&&(i=i.filter(m=>m===e.root||m.startsWith(`${e.root}.`)));let r=[],o="",n=0;const a={data:{name:"",id:""},children:[]},c={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:s,customs:["_"],enums:[],hasSomeCustoms:!1,aliasesMap:{}};let l=a;for(let m=0;mv.role===P)?typeof P!="string"?console.warn(`Invalid role type "${typeof P}" in "${h._id}"`):c.roles.push({role:P,type:f.type}):I.startsWith("enum.rooms.")?(c.roomEnums.push(I),c.enums.push(I)):I.startsWith("enum.functions.")?(c.funcEnums.push(I),c.enums.push(I)):h.type==="enum"?c.enums.push(I):h.type==="instance"&&f&&(f.supportCustoms||(N=f.adminUI)!=null&&N.custom)&&(c.hasSomeCustoms=!0,c.customs.push(I.substring(15))),I.startsWith("alias.")&&((u=h.common.alias)!=null&&u.id))if(typeof h.common.alias.id=="string"){const v=h.common.alias.id;c.aliasesMap[v]?c.aliasesMap[v].includes(I)||c.aliasesMap[v].push(I):c.aliasesMap[v]=[I]}else{const v=h.common.alias.id.read;v&&(c.aliasesMap[v]?c.aliasesMap[v].includes(I)||c.aliasesMap[v].push(I):c.aliasesMap[v]=[I]);const ee=h.common.alias.id.write;ee&&(c.aliasesMap[ee]?c.aliasesMap[ee].includes(I)||c.aliasesMap[ee].push(I):c.aliasesMap[ee]=[I])}}c.ids.push(I);let S;do if(S=!1,!o||I.startsWith(`${o}.`)){if(A.length-n>1){let P=o;for(let v=n;vee.data.name===A[v]));else{const ee={data:{name:A[v],parent:l,id:P,obj:s[P],level:v,icon:bl(s,P,v,e.themeType,e.lang,t),generated:!0}};l.children=l.children||[],l.children.push(ee),l=ee,c.ids.push(P)}}const f={data:{name:A[A.length-1],title:Qe((L=h==null?void 0:h.common)==null?void 0:L.name,e.lang),obj:h,parent:l,icon:Zr(s,I,e.lang,t)||bl(s,I,0,e.themeType,e.lang,t),id:I,hasCustoms:!!((g=h.common)!=null&&g.custom&&Object.keys(h.common.custom).length),level:A.length-1,generated:!1,button:h.type==="state"&&!!((y=h.common)!=null&&y.role)&&typeof h.common.role=="string"&&h.common.role.startsWith("button")&&((T=h.common)==null?void 0:T.write)!==!1,switch:h.type==="state"&&((D=h.common)==null?void 0:D.type)==="boolean"&&((z=h.common)==null?void 0:z.write)!==!1&&((p=h.common)==null?void 0:p.read)!==!1,url:!!((C=h.common)!=null&&C.role)&&typeof h.common.role=="string"&&h.common.role.startsWith("url")}};l.children=l.children||[],l.children.push(f),l=f,n=A.length,r=A,o=I}else{let f=0;for(;r[f]===A[f];)f++;if(f>0){let P=r.length;for(r=r.splice(0,f),n=f,o=r.join(".");P>f;)l.data.parent?l=l.data.parent:console.error(`Parent is null for ${I} ${o} ${r.join(".")}`),P--}else l=a,r=[],o="",n=0;S=!0}while(S)}return c.roomEnums.sort((m,I)=>{var S,f,P,v;const h=Qe((f=(S=s[m])==null?void 0:S.common)==null?void 0:f.name,e.lang)||m.split(".").pop(),A=Qe((v=(P=s[I])==null?void 0:P.common)==null?void 0:v.name,e.lang)||I.split(".").pop();return h>A?1:h{var S,f,P,v;const h=Qe((f=(S=s[m])==null?void 0:S.common)==null?void 0:f.name,e.lang)||m.split(".").pop(),A=Qe((v=(P=s[I])==null?void 0:P.common)==null?void 0:v.name,e.lang)||I.split(".").pop();return h>A?1:hm.role.localeCompare(I.role)),c.types.sort(),{info:c,root:a}}function v4(s,e,t,i,r){if(s.data.id===e)return s;if(t||(t=e.split("."),r=0,i=t[r]),!s.children&&s.data.id!==e)return null;let o;if(s.children)for(let n=0;ni)break}return o?(r=r||0,v4(o,e,t,`${i}.${t[r+1]}`,r+1)):null}function b4(s,e,t,i){var n,a;if(!e)return{rooms:[],per:!1};i=i||[];for(const c of s.roomEnums){const l=(n=s.objects[c])==null?void 0:n.common;if(!l)continue;const N=Qe(l.name,t);(a=l.members)!=null&&a.includes(e)&&!i.includes(N)&&i.push(N)}let r;const o=e.split(".");return o.pop(),e=o.join("."),s.objects[e]&&(r=i.length,b4(s,e,t,i)),{rooms:i,per:!r}}function ds(s,e,t,i){var r,o;if(!e)return[];i=i||[];for(let n=0;n946681200&&l<9466812e5&&(l*=1e3),l=l&&new Date(l).toString();else N==="number"?Number.isInteger(l)||(l=Math.round(l*1e8)/1e8,i&&(l=l.toString().replace(".",","))):N==="object"?l=JSON.stringify(l):N!=="string"?l=l.toString():l.startsWith("data:image/")&&(c="image"),typeof l!="string"&&(l=l.toString());const u={v:l};n&&n[l]!==void 0&&l!==n[l]&&(u.s=l,l=n[l],u.v=l),((g=u.v)==null?void 0:g.length)>40&&(u.c=u.v,u.v=`${u.v.substring(0,40)}...`),a!=null&&a.unit&&(u.u=a.unit);let L;if(s.full&&(typeof l=="string"&&l.length>100?L=[{t:r.value,v:`${l.substring(0,100)}...`}]:L=[{t:r.value,v:l}],t)){if(t.ack!==void 0&&t.ack!==null&&L.push({t:r.ack,v:t.ack.toString()}),t.ts&&L.push({t:r.ts,v:t.ts?O.formatDate(new Date(t.ts),e):""}),t.lc&&L.push({t:r.lc,v:t.lc?O.formatDate(new Date(t.lc),e):""}),t.from){let y=t.from.toString();y.startsWith("system.adapter.")&&(y=y.substring(15)),L.push({t:r.from,v:y})}if(t.user){let y=t.user.toString();y.startsWith("system.user.")&&(y=y.substring(12)),L.push({t:r.user,v:y})}t.c&&L.push({t:r.c,v:t.c}),L.push({t:r.quality,v:O.quality2text(t.q||0).join(", "),nbr:!0})}return{valText:u,valFull:L,fileViewer:c}}function uSe(s){const{state:e}=s;return{color:e!=null&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}function lSe(s,e){let t=e,i=1;const r=[];for(;i=t)r.push(0);else if(ithis.filterRefs[D]=x.createRef()),this.visibleCols=e.columns||le[e.width||"lg"].fields,e.types&&e.types.length===1){const D=this.visibleCols.indexOf("type");D!==-1&&this.visibleCols.splice(D,1)}this.possibleCols=le.xl.fields;let a=null;if(e.router){const D=e.router.getLocation();D.id&&D.dialog==="customs"&&(a=[D.id],this.pauseSubscribe(!0))}let c;Array.isArray(e.selected)?c=e.selected:c=[e.selected||""],c=c.map(D=>D.replace(/["']/g,"")).filter(D=>D),this.selectFirst=c.length&&c[0]?c[0]:this.selectFirst;const l=this.localStorage.getItem(`${e.dialogName||"App"}.columns`);let N;try{N=l?JSON.parse(l):null}catch{N=null}let u=null;try{u=u?JSON.parse(u):{}}catch{u={}}this.imagePrefix=e.imagePrefix||".";let L;const g=this.localStorage.getItem(`${e.dialogName||"App"}.foldersFirst`);g==="false"?L=!1:g==="true"?L=!0:L=e.foldersFirst===void 0?!0:e.foldersFirst;let y=!1;try{y=this.props.objectStatesView&&JSON.parse(this.localStorage.getItem(`${e.dialogName||"App"}.objectStatesView`)||"")||!1}catch{}this.state={loaded:!1,foldersFirst:L,selected:c,selectedNonObject:this.localStorage.getItem(`${e.dialogName||"App"}.selectedNonObject`)||"",filter:o,filterKey:0,focused:this.localStorage.getItem(`${e.dialogName||"App"}.focused`)||"",depth:0,expandAllVisible:!1,expanded:i,toast:"",scrollBarWidth:16,customDialog:a,editObjectDialog:"",editObjectAlias:!1,viewFileDialog:"",showAliasEditor:"",enumDialog:null,roleDialog:null,statesView:y,columns:N,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:this.localStorage.getItem(`${e.dialogName||"App"}.columnsAuto`)!=="false",columnsWidths:u,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,showAllExportOptions:!1,linesEnabled:this.localStorage.getItem(`${e.dialogName||"App"}.lines`)==="true",showDescription:this.localStorage.getItem(`${e.dialogName||"App"}.desc`)!=="false",showContextMenu:null,noStatesByExportImport:!1,beautifyJsonExport:!0,excludeSystemRepositoriesFromExport:!0,excludeTranslations:!1,tooltipInfo:null,aliasMenu:"",showRenameDialog:null},this.texts={name:e.t("ra_Name"),categories:e.t("ra_Categories"),value:e.t("ra_tooltip_value"),ack:e.t("ra_tooltip_ack"),ts:e.t("ra_tooltip_ts"),lc:e.t("ra_tooltip_lc"),from:e.t("ra_tooltip_from"),user:e.t("ra_tooltip_user"),c:e.t("ra_tooltip_comment"),quality:e.t("ra_tooltip_quality"),editObject:e.t("ra_tooltip_editObject"),deleteObject:e.t("ra_tooltip_deleteObject"),customConfig:e.t("ra_tooltip_customConfig"),copyState:e.t("ra_tooltip_copyState"),editState:e.t("ra_tooltip_editState"),ctrlForLink:e.t("ra_tooltip_ctrlForLink"),close:e.t("ra_Close"),filter_id:e.t("ra_filter_id"),filter_name:e.t("ra_filter_name"),filter_type:e.t("ra_filter_type"),filter_role:e.t("ra_filter_role"),filter_room:e.t("ra_filter_room"),filter_func:e.t("ra_filter_func"),filter_custom:e.t("ra_filter_customs"),filterCustomsWithout:e.t("ra_filter_customs_without"),objectChangedByUser:e.t("ra_object_changed_by_user"),objectChangedBy:e.t("ra_object_changed_by"),objectChangedFrom:e.t("ra_state_changed_from"),stateChangedBy:e.t("ra_state_changed_by"),stateChangedFrom:e.t("ra_state_changed_from"),ownerGroup:e.t("ra_Owner group"),ownerUser:e.t("ra_Owner user"),showAll:e.t("ra_show_all"),deviceError:e.t("ra_Error"),deviceDisconnected:e.t("ra_Disconnected"),deviceConnected:e.t("ra_Connected"),aclOwner_read_object:e.t("ra_aclOwner_read_object"),aclOwner_read_state:e.t("ra_aclOwner_read_state"),aclOwner_write_object:e.t("ra_aclOwner_write_object"),aclOwner_write_state:e.t("ra_aclOwner_write_state"),aclGroup_read_object:e.t("ra_aclGroup_read_object"),aclGroup_read_state:e.t("ra_aclGroup_read_state"),aclGroup_write_object:e.t("ra_aclGroup_write_object"),aclGroup_write_state:e.t("ra_aclGroup_write_state"),aclEveryone_read_object:e.t("ra_aclEveryone_read_object"),aclEveryone_read_state:e.t("ra_aclEveryone_read_state"),aclEveryone_write_object:e.t("ra_aclEveryone_write_object"),aclEveryone_write_state:e.t("ra_aclEveryone_write_state"),create:e.t("ra_Create"),createBooleanState:e.t("ra_create_boolean_state"),createNumberState:e.t("ra_create_number_state"),createStringState:e.t("ra_create_string_state"),createState:e.t("ra_create_state"),createChannel:e.t("ra_create_channel"),createDevice:e.t("ra_create_device"),createFolder:e.t("ra_Create folder")},this.levelPadding=e.levelPadding||rSe;const T=this.localStorage.getItem(`${this.props.dialogName||"App"}.table`);if(T)try{const D=JSON.parse(T),z=this.props.width||"lg";this.storedWidths=JSON.parse(JSON.stringify(le[z])),Object.keys(D).forEach(p=>{p==="id"?le[z].idWidth=D.id:p==="nameHeader"?le[z].widths.name=D[p]:le[z].widths[p]!==void 0&&(le[z].widths[p]=D[p])}),this.customWidth=!0}catch{}this.calculateColumnsVisibility()}async loadAllObjects(e){const t=this.props;try{await new Promise(c=>{this.setState({updating:!0},()=>c())});const i=(this.props.objectsWorker?await this.props.objectsWorker.getObjects(e):await t.socket.getObjects(e,!0))||{};if(t.types&&ze.isWeb())for(let c=0;c{try{if(c(i[l]))this.objects[l]=i[l];else{const N=i[l]&&i[l].type;N&&(N==="channel"||N==="device"||N==="folder"||N==="adapter"||N==="instance")&&(this.objects[l]=i[l])}}catch(N){console.log(`Error by filtering of "${l}": ${N}`)}})}else if(t.types){this.objects={};const c=t.types;Object.keys(i).forEach(l=>{const N=i[l]&&i[l].type;N&&(N==="channel"||N==="device"||N==="enum"||N==="folder"||N==="adapter"||N==="instance"||c.includes(N))&&(this.objects[l]=i[l])})}else this.objects=i;t.setObjectsReference&&t.setObjectsReference(this.objects),this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&t.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then(c=>{c!=null&&c.val||(this.defaultHistory="")}).catch(c=>window.alert(`Cannot get state: ${c}`));const r=await this.getAdditionalColumns();this.calculateColumnsVisibility(null,null,r);const{info:o,root:n}=Ql(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=n,this.info=o;const a=this.state.selected&&this.state.selected.length&&v4(this.root,this.state.selected[0]);this.lastAppliedFilter=null,a&&!Gn(a,this.state.filter,this.props.lang,this.objects,void 0,void 0,t.customFilter,t.types)?this.setState({filter:{...hr},columnsForAdmin:r},()=>{this.setState({loaded:!0,updating:!1},()=>this.expandAllSelected(()=>this.onAfterSelect()))}):this.setState({loaded:!0,updating:!1,columnsForAdmin:r},()=>this.expandAllSelected(()=>this.onAfterSelect()))}catch(i){this.showError(i)}}static isNonExpertId(e){return!!it.#e.find(t=>e.startsWith(t))}expandAllSelected(e){const t=[...this.state.expanded];let i=!1;this.state.selected.forEach(r=>{const o=r.split("."),n=[];for(let a=0;a{this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}):this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}static getDerivedStateFromProps(e,t){const i={};let r=!1;return e.expertMode!==void 0&&e.expertMode!==t.filter.expertMode&&(r=!0,i.filter={...t.filter},i.filter.expertMode=e.expertMode),r?i:null}async componentDidMount(){await this.loadAllObjects(!$l),this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChangeFromWorker):await this.props.socket.subscribeObject("*",this.onObjectChange),$l=!0,window.addEventListener("contextmenu",this.onContextMenu,!0),window.addEventListener("keydown",this.onKeyPress,!0),window.addEventListener("keyup",this.onKeyPress,!0)}onKeyPress=e=>{e.type==="keydown"&&e.ctrlKey&&!this.cltrPressed?(this.cltrPressed=!0,this.tableRef.current&&(this.tableRef.current.className="highlight-link")):e.type==="keyup"&&!e.ctrlKey&&this.cltrPressed&&(this.cltrPressed=!1,this.tableRef.current&&(this.tableRef.current.className=""))};componentWillUnmount(){this.filterTimer&&(clearTimeout(this.filterTimer),this.filterTimer=null),window.removeEventListener("contextmenu",this.onContextMenu,!0),window.removeEventListener("keydown",this.onKeyPress,!0),window.removeEventListener("keyup",this.onKeyPress,!0),this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChangeFromWorker,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange).catch(e=>console.error(`Cannot unsubscribe *: ${e}`)),this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.objects={}}showDeleteDialog(e){var c,l;const{id:t,obj:i,item:r}=e,o=Object.keys(this.objects);o.sort();let n=0;const a=`${t}.`;for(let N=0;Na)break;this.props.onObjectDelete&&this.props.onObjectDelete(t,!!((c=r.children)!=null&&c.length),!((l=i.common)!=null&&l.dontDelete),n+1)}onContextMenu=e=>{this.contextMenu&&Date.now()-this.contextMenu.ts<2e3?(e.preventDefault(),this.setState({showContextMenu:{item:this.contextMenu.item,position:{left:e.clientX+2,top:e.clientY-6}}})):this.state.showContextMenu&&(e.preventDefault(),this.setState({showContextMenu:null})),this.contextMenu=null};refreshComponent(){this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.loadAllObjects(!0).then(()=>console.log("updated!")).catch(e=>this.showError(e))}renderErrorDialog(){return this.state.error?M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description"},M.createElement(j.DialogTitle,{id:"alert-dialog-title"},this.props.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.state.error)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.t("ra_Ok")))):null}showError(e){this.setState({error:typeof e=="object"?e&&typeof e.toString=="function"?e.toString():JSON.stringify(e):e})}onSelect(e,t,i){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.focused`,e),!this.props.multiSelect)this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))?(this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==e?this.setState({selected:[e],selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()}):t&&this.props.onSelect&&this.onAfterSelect(t)):(this.localStorage.setItem(`${this.props.dialogName||"App"}.selectedNonObject`,e),this.setState({selected:[],selectedNonObject:e,focused:e},()=>{this.onAfterSelect(),i&&i()}));else if(this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))){this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const r=[...this.state.selected],o=r.indexOf(e);o===-1?(r.push(e),r.sort()):t||r.splice(o,1),this.setState({selected:r,selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()})}}_renderDefinedList(e){const t=[...this.possibleCols];if(t.unshift("id"),this.props.columns&&!this.props.columns.includes("buttons")){const i=t.indexOf("buttons");i!==-1&&t.splice(i,1)}return t.filter(i=>e&&(i==="val"||i==="buttons")||!e&&i!=="val"&&i!=="buttons").map(i=>{var r;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto&&i!=="id"){const o=[...this.state.columns||[]],n=o.indexOf(i);n===-1?(o.push(i),o.sort()):o.splice(n,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(o)),this.calculateColumnsVisibility(null,o),this.setState({columns:o})}},key:i},M.createElement(j.Checkbox,{edge:"start",disabled:i==="id"||this.state.columnsAuto,checked:i==="id"||!!(this.state.columnsAuto?this.visibleCols.includes(i):(r=this.state.columns)!=null&&r.includes(i)),disableRipple:!0}),M.createElement(j.ListItemText,{primary:this.texts[`filter_${i}`]||this.props.t(`ra_${i}`)}))})}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?M.createElement(j.Dialog,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,sx:{"& .MuiPaper-root":O.getStyle(this.props.theme,w.dialogColumns,w[`transparent_${this.state.columnsDialogTransparent}`])}},M.createElement(j.DialogTitle,{sx:w.fontSizeTitle},this.props.t("ra_Configure")),M.createElement(j.DialogContent,{sx:w.fontSizeTitle},M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.foldersFirst,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.foldersFirst`,this.state.foldersFirst?"false":"true"),this.setState({foldersFirst:!this.state.foldersFirst})}}),label:this.props.t("ra_Folders always first")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.linesEnabled,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.lines`,this.state.linesEnabled?"false":"true"),this.setState({linesEnabled:!this.state.linesEnabled})}}),label:this.props.t("ra_Show lines between rows")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.columnsAuto,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.columnsAuto`,this.state.columnsAuto?"false":"true"),this.state.columnsAuto?this.state.columns?(this.calculateColumnsVisibility(!1),this.setState({columnsAuto:!1})):(this.calculateColumnsVisibility(!1,[...this.visibleCols]),this.setState({columnsAuto:!1,columns:[...this.visibleCols]})):(this.calculateColumnsVisibility(!0),this.setState({columnsAuto:!0}))}}),label:this.props.t("ra_Auto (no custom columns)")}),M.createElement(j.List,null,this._renderDefinedList(!1),this.state.columnsForAdmin&&Object.keys(this.state.columnsForAdmin).sort().map(e=>this.state.columnsForAdmin&&this.state.columnsForAdmin[e].map(t=>{var i;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto){const r=[...this.state.columns||[]],o=`_${e}_${t.path}`,n=r.indexOf(o);n===-1?(r.push(o),r.sort()):r.splice(n,1),this.calculateColumnsVisibility(null,r),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(r)),this.setState({columns:r})}},key:`${e}_${t.name}`},M.createElement(j.ListItemIcon,null,M.createElement(j.Checkbox,{disabled:this.state.columnsAuto,edge:"start",checked:!this.state.columnsAuto&&((i=this.state.columns)==null?void 0:i.includes(`_${e}_${t.path}`)),disableRipple:!0})),M.createElement(j.ListItemText,{primary:`${t.name} (${e})`}))})),this._renderDefinedList(!0))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:M.createElement(Ne,null)},this.texts.close))):null}async getAdditionalColumns(){try{const e=await this.props.socket.getAdapters();let t=null;return e.forEach(i=>t=this.parseObjectForAdmins(t,i)),t}catch(e){return console.error(`Cannot get adapters: ${e}`),null}}checkUnsubscribes(){for(let e=this.subscribes.length-1;e>=0;e--)this.recordStates.includes(this.subscribes[e])||this.unsubscribe(this.subscribes[e]);this.recordStates=[]}findItem(e,t,i,r){if(t=t||e.split("."),i=i||this.root,!i||!t.length)return null;if(r=(r?`${r}.`:"")+t.shift(),i.children){const o=i.children.find(n=>n.data.id===r);if(o){if(o.data.id===e)return o;if(t.length)return this.findItem(e,t,o,r)}else return null}return null}onStateChange=(e,t)=>{if(console.log(`> stateChange ${e}`),this.states[e]){const i=this.findItem(e);i!=null&&i.data.state&&(i.data.state=void 0)}t?this.states[e]=t:delete this.states[e],this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout(()=>{this.statesUpdateTimer=null,this.forceUpdate()},300))};parseObjectForAdmins(e,t){if(t.common&&t.common.adminColumns&&t.common.name){const i=t.common.adminColumns;let r;i&&typeof i!="object"?r=[i]:i&&(r=i);let o;i?o=r.map(n=>{if(typeof n!="object")return{path:n,name:n.split(".").pop()};const a=n;return a.objTypes&&typeof a.objTypes!="object"?a.objTypes=[a.objTypes]:a.objTypes||(a.objTypes=void 0),!a.name&&a.path?{path:a.path,name:a.path.split(".").pop(),width:a.width,edit:!!a.edit,type:a.type,objTypes:a.objTypes}:a.path?{path:a.path,name:Qe(a.name||"",this.props.lang),width:a.width,edit:!!a.edit,type:a.type,objTypes:a.objTypes}:(console.warn(`Admin columns for ${t._id} ignored, because path not found`),null)}).filter(n=>n):o=null,o&&o.length&&(e=e||{},e[t.common.name]=o.sort((n,a)=>n.path>a.path?-1:n.path{if(Array.isArray(e)){let t=null;e.forEach(i=>{const{newInnerState:r,filtered:o}=this.processOnObjectChangeElement(i.id,i.obj);o||(r&&t?Object.assign(t,r):t=r)}),t&&this.setState(t),this.afterObjectUpdated()}};onObjectChange=(e,t)=>{const{newInnerState:i,filtered:r}=this.processOnObjectChangeElement(e,t);r||(i&&this.setState(i),this.afterObjectUpdated())};afterObjectUpdated(){!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout(()=>{this.objectsUpdateTimer=null;const{info:e,root:t}=Ql(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=t,this.info=e,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()},500))}updateAliases(e){var i,r,o;if(!this.objects||!((i=this.info)!=null&&i.aliasesMap)||!(e!=null&&e.startsWith("alias.")))return;const t=Object.keys(this.objects).filter(n=>n.startsWith("alias.0"));this.info.aliasesMap={};for(const n of t){const a=this.objects[n];if((o=(r=a==null?void 0:a.common)==null?void 0:r.alias)!=null&&o.id)if(typeof a.common.alias.id=="string"){const c=a.common.alias.id;this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]}else{const c=a.common.alias.id.read;c&&(this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]);const l=a.common.alias.id.write;l&&(this.info.aliasesMap[l]?this.info.aliasesMap[l].includes(n)||this.info.aliasesMap[l].push(n):this.info.aliasesMap[l]=[n])}}}processOnObjectChangeElement(e,t){console.log(`> objectChange ${e}`);const i=t==null?void 0:t.type;if(t&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(t)&&i!=="channel"&&i!=="device"&&i!=="folder"&&i!=="adapter"&&i!=="instance")return{newInnerState:null,filtered:!0};let r=null;if(e.startsWith("system.adapter.")&&(t==null?void 0:t.type)==="adapter"){const o=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(o,t),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(o)&&(r={columnsForAdmin:o})}return this.objects=this.objects||{},t?this.objects[e]=t:this.objects[e]&&delete this.objects[e],this.updateAliases(e),{newInnerState:r,filtered:!1}}subscribe(e){this.subscribes.includes(e)||(this.subscribes.push(e),console.log(`+ subscribe ${e}`),this.pausedSubscribes||this.props.socket.subscribeState(e,this.onStateChange).catch(t=>console.error(`Cannot subscribe on state ${e}: ${t}`)))}unsubscribe(e){const t=this.subscribes.indexOf(e);t!==-1&&(this.subscribes.splice(t,1),this.states[e]&&delete this.states[e],console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(e){!this.pausedSubscribes&&e?(this.pausedSubscribes=!0,this.subscribes.forEach(t=>this.props.socket.unsubscribeState(t,this.onStateChange))):this.pausedSubscribes&&!e&&(this.pausedSubscribes=!1,this.subscribes.forEach(t=>this.props.socket.subscribeState(t,this.onStateChange)))}onFilter(e,t){this.filterTimer=null;const i={...this.state.filter};Object.keys(this.filterRefs).forEach(r=>{if(this.filterRefs[r]&&this.filterRefs[r].current){const o=this.filterRefs[r].current;for(let n=0;nthis.props.onFilterChanged&&this.props.onFilterChanged(i)))}clearFilter(){const e={...this.state.filter};Object.keys(this.filterRefs).forEach(t=>{if(this.filterRefs[t]&&this.filterRefs[t].current){const i=this.filterRefs[t].current;for(let r=0;rthis.props.onFilterChanged&&this.props.onFilterChanged(e)))}isFilterEmpty(){return!Object.keys(this.state.filter).find(t=>t!=="expertMode"&&this.state.filter[t])}getFilterInput(e){var t,i,r;return M.createElement(j.FormControl,{sx:this.styles.filterInput,key:`${e}_${this.state.filterKey}`,margin:"dense"},M.createElement(j.Input,{ref:this.filterRefs[e],classes:{underline:"no-underline"},id:e,placeholder:this.texts[`filter_${e}`],defaultValue:this.state.filter[e]||"",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},autoComplete:"off"}),(r=(i=(t=this.filterRefs[e])==null?void 0:t.current)==null?void 0:i.firstChild)!=null&&r.value?M.createElement("div",{style:{position:"absolute",right:0}},M.createElement(j.IconButton,{size:"small",onClick:()=>{var o;((o=this.filterRefs[e].current)==null?void 0:o.firstChild).value="",this.onFilter(e,"")}},M.createElement(Ne,null))):null)}getFilterSelect(e,t){var r,o,n;const i=!!(t!=null&&t.find(a=>a.icon));return M.createElement("div",{style:{position:"relative"}},M.createElement(j.Select,{variant:"standard",key:`${e}_${this.state.filterKey}`,ref:this.filterRefs[e],sx:w.headerCellInput,className:"no-underline",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},defaultValue:this.state.filter[e]||"",inputProps:{name:e,id:e},displayEmpty:!0},M.createElement(j.MenuItem,{key:"empty",value:""},M.createElement("span",{style:w.selectNone},e==="custom"?this.texts.showAll:this.texts[`filter_${e}`])),t==null?void 0:t.map(a=>{let c,l,N;return typeof a=="object"?(c=a.value,l=a.name,N=a.icon):(c=a,l=a),M.createElement(j.MenuItem,{sx:w.headerCellSelectItem,key:c,value:c},N||(i?M.createElement("div",{className:"itemIcon"}):null),l)})),(n=(o=(r=this.filterRefs[e])==null?void 0:r.current)==null?void 0:o.childNodes[1])!=null&&n.value?M.createElement(j.Box,{component:"div",sx:w.selectClearButton},M.createElement(j.IconButton,{size:"small",onClick:()=>{var c;const a={...this.state.filter};a[e]="",((c=this.filterRefs[e].current)==null?void 0:c.childNodes[1]).value="",this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(a)),this.setState({filter:a,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(a))}},M.createElement(Ne,null))):null)}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles.map(e=>e.role))}getFilterSelectRoom(){const e=this.info.roomEnums.map(t=>{var i,r,o,n;return{name:Qe((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("room",e)}getFilterSelectFunction(){const e=this.info.funcEnums.map(t=>{var i,r,o,n;return{name:Qe((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("func",e)}getFilterSelectType(){const e=this.info.types.map(t=>({name:t,value:t,icon:Ul[t]||null}));return this.getFilterSelect("type",e)}getFilterSelectCustoms(){if(this.info.customs.length>1){const e=this.info.customs.map(t=>({name:t==="_"?this.texts.filterCustomsWithout:t,value:t,icon:t==="_"?null:M.createElement(me,{src:Zr(this.objects,t,this.props.lang,this.imagePrefix)||"",style:w.selectIcon})}));return this.getFilterSelect("custom",e)}return null}onExpandAll(e,t){var r;const i=e||this.root;t=t||[],(r=i==null?void 0:i.children)==null||r.forEach(o=>{o.data.sumVisibility&&(t.push(o.data.id),this.onExpandAll(o,t))}),i===this.root&&(t.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t}))}onCollapseAll(){this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},()=>this.onAfterSelect())}expandDepth(e,t,i){var r;e=e||this.root,t>0&&((r=e.children)==null||r.forEach(o=>{o.data.sumVisibility&&(vi(i,o.data.id)||(i.push(o.data.id),i.sort()),t-1>0&&this.expandDepth(o,t-1,i))}))}static collapseDepth(e,t){return t.filter(i=>i.split(".").length<=e)}onExpandVisible(){if(this.state.depth<9){const e=this.state.depth+1,t=[...this.state.expanded];this.root&&this.expandDepth(this.root,e,t),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}onStatesViewVisible(){const e=!this.state.statesView;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(e)),this.setState({statesView:e})}onCollapseVisible(){if(this.state.depth>0){const e=this.state.depth-1,t=it.collapseDepth(e,this.state.expanded);this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}getEnumsForId=e=>{const t=[];return this.info.enums.forEach(i=>{var r,o,n;if((n=(o=(r=this.objects[i])==null?void 0:r.common)==null?void 0:o.members)!=null&&n.includes(e)){const a={_id:this.objects[i]._id,common:JSON.parse(JSON.stringify(this.objects[i].common)),native:this.objects[i].native,type:"enum"};a.common&&(delete a.common.members,delete a.common.custom,delete a.common.mobile),t.push(a)}}),t.length?t:void 0};_createAllEnums=async(e,t)=>{var i,r;for(let o=0;or)break}return e}return[]}async _exportObjects(e){var o;if(e.isAll){vl("allObjects.json",this.objects,e);return}if(!(this.state.selected.length||this.state.selectedNonObject)){window.alert(this.props.t("ra_Save of objects-tree is not possible"));return}const t={},i=this.state.selected[0]||this.state.selectedNonObject,r=this._getSelectedIdsForExport();for(const n of r){if(t[n]=JSON.parse(JSON.stringify(this.objects[n])),((o=t[n])==null?void 0:o.type)==="state"&&!e.noStatesByExportImport){const a=await this.props.socket.getState(n);a&&(t[n].val=a.val,t[n].ack=a.ack)}if(t[n].common){const a=this.getEnumsForId(n);a&&(t[n].common.enums=a)}}vl(`${i}.json`,t,e)}renderExportDialog(){return this.state.showExportDialog===!1?null:M.createElement(j.Dialog,{open:!0,maxWidth:"lg"},M.createElement(j.DialogTitle,null,this.props.t("ra_Select type of export")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(M.Fragment,null,this.props.t("ra_You can export all objects or just the selected branch."),M.createElement("br",null),this.props.t("ra_Selected %s object(s)",this.state.showExportDialog),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.noStatesByExportImport,onChange:e=>this.setState({noStatesByExportImport:e.target.checked})}),label:this.props.t("ra_Do not export values of states")}),M.createElement("br",null),this.props.t("These options can reduce the size of the export file:"),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.beautifyJsonExport,onChange:e=>this.setState({beautifyJsonExport:e.target.checked})}),label:this.props.t("Beautify JSON output")}),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeSystemRepositoriesFromExport,onChange:e=>this.setState({excludeSystemRepositoriesFromExport:e.target.checked})}),label:this.props.t("Exclude system repositories from export JSON")}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeTranslations,onChange:e=>this.setState({excludeTranslations:e.target.checked})}),label:this.props.t("Exclude translations (except english) from export JSON")})):null)),M.createElement(j.DialogActions,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(j.Button,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!0,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_All objects")),"(",Object.keys(this.objects).length,")"):M.createElement(j.Button,{color:"grey",variant:"outlined",startIcon:M.createElement($n,null),onClick:()=>this.setState({showAllExportOptions:!0})},this.props.t("ra_Advanced options")),M.createElement(j.Button,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!1,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_Only selected")),"(",this.state.showExportDialog,")"),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}renderRenameDialog(){var t;if(!this.state.showRenameDialog)return null;const e=this.props.objectMoveRenameDialog;return M.createElement(e,{expertMode:this.props.expertMode,onClose:()=>this.setState({showRenameDialog:null}),id:this.state.showRenameDialog.id,childrenIds:this.state.showRenameDialog.childrenIds,theme:this.props.theme,socket:this.props.socket,t:this.props.t,objectType:(t=this.objects[this.state.showRenameDialog.id])==null?void 0:t.type})}handleJsonUpload(e){var r;const t=e.target,i=((r=t.files)==null?void 0:r.length)&&t.files[0];if(i){const o=new FileReader;o.onload=async n=>{var c;const a=(c=n.target)==null?void 0:c.result;try{const l=JSON.parse(a),N=Object.keys(l).length,u=l._id;if(u===void 0&&N)await this.loadObjects(l),window.alert(this.props.t("ra_%s object(s) processed",N));else{if(!u)return window.alert(this.props.t("ra_Invalid structure"));try{let L,g,y;if(l.common.enums&&(L=l.common.enums,delete l.common.enums),l.val&&(g=l.val,delete l.val),l.ack!==void 0&&(y=l.ack,delete l.ack),await this.props.socket.setObject(l._id,l),l.type==="state")if(g!=null)await this.props.socket.setState(l._id,g,y===void 0?!0:y);else{const T=await this.props.socket.getState(l._id);(!T||T.val===null||T.val===void 0)&&await this.props.socket.setState(l._id,l.common.def===void 0?null:l.common.def,!0)}L&&await this._createAllEnums(L,l._id),window.alert(this.props.t("ra_%s was imported",l._id))}catch(L){window.alert(L)}}}catch(l){window.alert(l)}return null},o.readAsText(i)}else window.alert(this.props.t("ra_Failed to open JSON File"))}toolTipObjectCreating=()=>{var i,r;const{t:e}=this.props;let t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];if(this.state.selected.length||this.state.selectedNonObject){const o=this.state.selected[0]||this.state.selectedNonObject;if(!(o.split(".").length<2||this.objects[o]&&((i=this.objects[o])==null?void 0:i.type)==="state"))if(this.state.filter.expertMode)switch((r=this.objects[o])==null?void 0:r.type){case"device":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"folder":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"channel":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:1},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break}else(o.startsWith("alias.0")||o.startsWith("0_userdata"))&&(t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:7},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:8},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))])}return t.length?t:e("ra_Add new child object to selected parent")};getToolbar(){let e=!1;if(this.state.selected.length||this.state.selectedNonObject){const t=this.state.selected[0]||this.state.selectedNonObject;t.split(".").length<2||this.objects[t]&&this.objects[t].type==="state"?e=!1:(this.state.filter.expertMode||t.startsWith("alias.0")||t.startsWith("0_userdata"))&&(e=!0)}return M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center",overflowX:"auto"}},M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},M.createElement(j.Tooltip,{title:this.props.t("ra_Refresh tree"),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large"},M.createElement(jN,null)))),this.props.showExpertButton&&!this.props.expertMode&&M.createElement(j.Tooltip,{title:this.props.t("ra_expertMode"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large"},M.createElement($n,null))),!this.props.disableColumnSelector&&this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Configure"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"columnSelector",color:this.state.columnsAuto?"primary":"default",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large"},M.createElement(Og,null))),this.props.width!=="xs"&&this.state.expandAllVisible&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandAll",onClick:()=>this.onExpandAll(),size:"large"},M.createElement(fr,null))),M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseAll",onClick:()=>this.onCollapseAll(),size:"large"},M.createElement(Ws,null))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandVisible",color:"primary",onClick:()=>this.onExpandVisible(),size:"large"},M.createElement(j.Badge,{badgeContent:this.state.depth,color:"secondary",sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}})},M.createElement(fr,null)))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseVisible",color:"primary",onClick:()=>this.onCollapseVisible(),size:"large"},M.createElement(j.Badge,{sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),badgeContent:this.state.depth,color:"secondary"},M.createElement(Ws,null)))),this.props.objectStatesView&&M.createElement(j.Tooltip,{title:this.props.t("ra_Toggle the states view"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.onStatesViewVisible(),size:"large"},M.createElement(Tg,{color:this.state.statesView?"primary":"inherit"}))),M.createElement(j.Tooltip,{title:this.props.t("ra_Show/Hide object descriptions"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.desc`,this.state.showDescription?"false":"true"),this.setState({showDescription:!this.state.showDescription})},size:"large"},M.createElement(Cg,{color:this.state.showDescription?"primary":"inherit"}))),this.props.objectAddBoolean?M.createElement(j.Tooltip,{title:this.toolTipObjectCreating(),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{disabled:!e,onClick:()=>this.setState({modalNewObj:{id:this.state.selected[0]||this.state.selectedNonObject}}),size:"large"},M.createElement(un,null)))):null,this.props.objectImportExport&&M.createElement(j.Tooltip,{title:this.props.t("ra_Add objects tree from JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("id","files"),t.setAttribute("opacity","0"),t.addEventListener("change",i=>this.handleJsonUpload(i),!1),t.click()},size:"large"},M.createElement(Sr,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&M.createElement(j.Tooltip,{title:this.props.t("ra_Save objects tree as JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large"},M.createElement(Sr,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&this.props.width!=="xs"&&M.createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter(t=>this.info.objects[t].type==="state").length}`),this.props.objectEditBoolean&&M.createElement(j.Tooltip,{title:this.props.t("ra_Edit custom config"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{var i;const t=this.root?k4(this.root,"state",this.objects):[];t.length?(this.pauseSubscribe(!0),t.length===1&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),(i=this.props.router)==null||i.doNavigate(null,"custom",this.state.selected[0])),this.setState({customDialog:t,customDialogAll:!0})):this.setState({toast:this.props.t("ra_please select object")})},size:"large"},M.createElement(KL,null))))}toggleExpanded(e){const t=JSON.parse(JSON.stringify(this.state.expanded)),i=t.indexOf(e);i===-1?(t.push(e),t.sort()):t.splice(i,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t})}onCopy(e,t){e.stopPropagation(),e.preventDefault(),t&&(O.copyToClipboard(t),t.length<50?this.setState({toast:this.props.t("ra_Copied %s",t)}):this.setState({toast:this.props.t("ra_Copied")}))}renderTooltipAccessControl=e=>{if(!e)return null;const t=[{value:"0x400",valueNum:1024,title:"read",group:"Owner"},{value:"0x200",valueNum:512,title:"write",group:"Owner"},{value:"0x40",valueNum:64,title:"read",group:"Group"},{value:"0x20",valueNum:32,title:"write",group:"Group"},{value:"0x4",valueNum:4,title:"read",group:"Everyone"},{value:"0x2",valueNum:2,title:"write",group:"Everyone"}],i=[],r=o=>{const n=e[o];t.forEach((a,c)=>{n&a.valueNum&&i.push(M.createElement("span",{key:o+c},this.texts[`acl${a.group}_${a.title}_${o}`],",",M.createElement("span",{style:o==="object"?w.rightsObject:w.rightsState},a.value)))})};return i.push(M.createElement("span",{key:"group"},`${this.texts.ownerGroup}: ${(e.ownerGroup||"").replace("system.group.","")}`)),i.push(M.createElement("span",{key:"owner"},`${this.texts.ownerUser}: ${(e.owner||"").replace("system.user.","")}`)),r("object"),e.state&&r("state"),i.length?M.createElement("span",{style:w.tooltipAccessControl},i.map(o=>o)):null};renderColumnButtons(e,t){var n,a,c;if(!t.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?M.createElement("div",{style:w.buttonDiv},this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsEmptyButton,...w.cellButtonMinWidth},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:{height:15}},"---")):null,this.props.onObjectDelete&&t.children&&t.children.length?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsButtonAlone},size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{var L;const l=Object.keys(this.objects);l.sort();let N=0;const u=`${e}.`;for(let g=0;gu)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((L=t.children)!=null&&L.length),!1,N+1)}},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null):null;t.data.aclTooltip=t.data.aclTooltip||this.renderTooltipAccessControl(t.data.obj.acl);const i=t.data.obj.acl?t.data.obj.type==="state"?t.data.obj.acl.state:t.data.obj.acl.object:0,r=t.data.obj.acl&&(t.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object),o=this.state.filter.expertMode||it.isNonExpertId(t.data.id);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.Tooltip,{key:"acl",title:t.data.aclTooltip,slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonMinWidth,opacity:1},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:w.aclText},Number.isNaN(Number(i))?Number(r).toString(16):Number(i).toString(16)))):M.createElement("div",{key:"aclEmpty",style:w.cellButtonMinWidth}),o?M.createElement(j.IconButton,{key:"edit",sx:{marginRight:"2px",...w.cellButtonsButton},size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.setState({editObjectDialog:e,editObjectAlias:!1})}},M.createElement(mi,{style:w.cellButtonsButtonIcon})):M.createElement(j.Box,{component:"div",key:"editDisabled",sx:w.cellButtonsButton}),this.props.onObjectDelete&&((n=t.children)!=null&&n.length||!((a=t.data.obj.common)!=null&&a.dontDelete))?M.createElement(j.IconButton,{key:"delete",sx:w.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{var L,g,y;const l=Object.keys(this.objects);l.sort();let N=0;const u=`${e}.`;for(let T=0;Tu)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((L=t.children)!=null&&L.length),!((y=(g=t.data.obj)==null?void 0:g.common)!=null&&y.dontDelete),N)},title:this.texts.deleteObject},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&t.data.obj.type==="state"&&((c=t.data.obj.common)==null?void 0:c.type)!=="file"?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...t.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms},key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{var l;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.pauseSubscribe(!0),(l=this.props.router)==null||l.doNavigate(null,"customs",e),this.setState({customDialog:[e],customDialogAll:!1})}},M.createElement(ln,{style:w.cellButtonsButtonIcon})):null]}readHistory(e){var t,i;if(window.sparkline&&this.defaultHistory&&((i=(t=this.objects[e])==null?void 0:t.common)!=null&&i.custom)&&this.objects[e].common.custom[this.defaultHistory]){const r=new Date;r.setHours(r.getHours()-24),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const o=r.getTime();this.props.socket.getHistory(e,{instance:this.defaultHistory,start:o,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addId:!1,aggregate:"minmax"}).then(n=>{const a=window.document.getElementsByClassName("sparkline");for(let c=0;cconsole.warn(`Cannot read history: ${n}`))}}getTooltipInfo(e,t){var l,N,u;const i=this.objects[e],r=this.states[e],{valFull:o,fileViewer:n}=qo({state:r,obj:i,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,full:!0}),a=[];o==null||o.forEach(L=>{L.t===this.texts.quality&&r.q?(a.push(M.createElement("div",{style:w.cellValueTooltipBoth,key:L.t},L.t,": ",L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`}))):(a.push(M.createElement("div",{style:w.cellValueTooltipTitle,key:L.t},L.t,": ")),a.push(M.createElement("div",{style:w.cellValueTooltipValue,key:`${L.t}_v`},L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`})))});const c=((l=i==null?void 0:i.common)==null?void 0:l.role)||"";n==="image"?a.push(M.createElement("img",{style:w.cellValueTooltipImage,src:r.val,alt:e})):c==="url"||i.common.role==="url.self"||i.common.role==="url.blank"?a.unshift(M.createElement("div",{key:"ctrl",style:{textDecoration:"underline",fontWeight:"bold"}},this.texts.ctrlForLink)):this.defaultHistory&&((u=(N=i==null?void 0:i.common)==null?void 0:N.custom)!=null&&u[this.defaultHistory])&&a.push(M.createElement("svg",{key:"sparkline",className:"sparkline","data-id":e,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"})),this.setState({tooltipInfo:{el:a,id:e}},()=>t&&t())}renderColumnValue(e,t,i){var c,l;const r=t.data.obj;if(!r||!this.states)return null;if(((c=r.common)==null?void 0:c.type)==="file")return M.createElement(j.Box,{component:"div",sx:{...w.cellValueText,...w.cellValueFile}},"[file]");if(!this.states[e])return r.type==="state"&&(this.recordStates.includes(e)||this.recordStates.push(e),this.states[e]={val:null},this.subscribe(e)),null;this.recordStates.includes(e)||this.recordStates.push(e);const o=this.states[e];let n=t.data.state;if(!n){const{valText:N}=qo({state:o,obj:r,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma}),u=[];if(t.data.state={valTextRx:u},u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}valText`,style:{whiteSpace:"nowrap",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}},N.v.toString())),N.u&&u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:w.cellValueTextUnit,key:`${N.v.toString()}unit`},N.u)),N.s!==void 0&&u.push(M.createElement("span",{style:w.cellValueTextState,className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}states`},"(",N.s,")")),!i){const L=N.c!==void 0?N.c:N.v||"";u.push(M.createElement(Ts,{className:"copyButton",style:this.styles.iconCopy,onClick:g=>this.onCopy(g,L),key:"cc"}))}n=t.data.state}n.style=uSe({state:o,isExpertMode:this.state.filter.expertMode,isButton:t.data.button});let a=n.valTextRx;return this.state.filter.expertMode||(t.data.button?a=[M.createElement(nSe,{key:"button",style:{color:n.style.color,...w.cellValueButton}})]:t.data.switch&&(a=[M.createElement(j.Switch,{key:"switch",sx:{"& .MuiSwitch-thumb":{color:n.style.color},"& .MuiSwitch-track":{backgroundColor:this.states[e].val&&this.state.selected.includes(e)?this.props.themeType==="dark"?"#FFF !important":"#111 !important":void 0}},checked:!!this.states[e].val})])),M.createElement(j.Tooltip,{key:"value",title:(l=this.state.tooltipInfo)==null?void 0:l.el,slotProps:{popper:{sx:w.cellValueTooltipBox},tooltip:{sx:w.cellValueTooltip}},onOpen:()=>this.getTooltipInfo(e,()=>this.readHistory(e)),onClose:()=>{var N;return((N=this.state.tooltipInfo)==null?void 0:N.id)===e&&this.setState({tooltipInfo:null})}},M.createElement(j.Box,{component:"div",style:n.style,className:t.data.url?"iob-link":void 0,sx:{...w.cellValueText,height:i?void 0:pe,"& .admin-button:active":{transform:"translate(0, 2px)"}}},a))}_syncEnum(e,t,i,r){var a,c,l;if(!t||!t.length){r&&r();return}const o=t.pop()||"",n=[];if((a=this.info.objects[o])!=null&&a.common){if((c=this.info.objects[o].common.members)!=null&&c.length){const N=this.info.objects[o].common.members.indexOf(e);if(N!==-1&&!i.includes(o)){const u=JSON.parse(JSON.stringify(this.info.objects[o]));u.common.members.splice(N,1),n.push(this.props.socket.setObject(o,u).then(()=>this.info.objects[o]=u).catch(L=>this.showError(L)))}}if(i.includes(o)&&!((l=this.info.objects[o].common.members)!=null&&l.includes(e))){const N=JSON.parse(JSON.stringify(this.info.objects[o]));N.common.members=N.common.members||[],N.common.members.push(e),N.common.members.sort(),n.push(this.props.socket.setObject(o,N).then(()=>this.info.objects[o]=N).catch(u=>this.showError(u)))}}Promise.all(n).then(()=>{setTimeout(()=>this._syncEnum(e,t,i,r),0)})}syncEnum(e,t,i){const r=[...this.info[t==="func"?"funcEnums":"roomEnums"]];return new Promise(o=>{this._syncEnum(e,r,i,()=>{o()})})}renderEnumDialog(){if(!this.state.enumDialog)return null;const e=this.state.enumDialog.type,t=this.state.enumDialog.item,i=this.state.enumDialogEnums,r=this.state.enumDialog.enumsOriginal,o=(e==="room"?this.info.roomEnums:this.info.funcEnums).map(n=>{var a,c;return{name:Qe(((c=(a=this.objects[n])==null?void 0:a.common)==null?void 0:c.name)||n.split(".").pop()||"",this.props.lang),value:n,icon:Zr(this.objects,n,this.props.lang,this.imagePrefix)}}).sort((n,a)=>n.name>a.name?1:-1);return o.forEach(n=>{n.icon&&typeof n.icon=="string"&&(n.icon=M.createElement(j.Box,{style:w.enumIconDiv},M.createElement("img",{src:n.icon,style:w.enumIcon,alt:n.name})))}),M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":w.enumDialog},onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"enum-dialog-title",style:{display:"flex",justifyContent:"space-between",width:"100%",flexWrap:"nowrap",gap:8,paddingRight:12}},e==="func"?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),M.createElement(j.Fab,{color:"primary",disabled:r===JSON.stringify(i),size:"small",onClick:()=>this.syncEnum(t.data.id,e,i).then(()=>this.setState({enumDialog:null,enumDialogEnums:null}))},M.createElement(Oe,null))),M.createElement(j.List,{sx:{"&.MuiList-root":w.enumList}},o.map(n=>{let a,c,l;typeof n=="object"?(a=n.value,c=n.name,l=n.icon):(a=n,c=n);const N=`checkbox-list-label-${a}`;return M.createElement(j.ListItem,{sx:w.headerCellSelectItem,key:a,onClick:()=>{const u=i.indexOf(a),L=JSON.parse(JSON.stringify(this.state.enumDialogEnums));u===-1?(L.push(a),L.sort()):L.splice(u,1),this.setState({enumDialogEnums:L})},secondaryAction:l},M.createElement(j.ListItemIcon,{sx:{"&.MuiListItemIcon-root":w.enumCheckbox}},M.createElement(j.Checkbox,{edge:"start",checked:i.includes(a),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":N}})),M.createElement(j.ListItemText,{id:N},c))})))}renderEditRoleDialog(){var e,t;if(!this.state.roleDialog||!this.props.objectBrowserEditRole)return null;if(this.state.roleDialog&&this.props.objectBrowserEditRole){const i=this.props.objectBrowserEditRole;return M.createElement(i,{key:"objectBrowserEditRole",id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roleArray:this.info.roles,commonType:(t=(e=this.info.objects[this.state.roleDialog])==null?void 0:e.common)==null?void 0:t.type,onClose:r=>{r&&(this.info.objects[this.state.roleDialog]=r),this.setState({roleDialog:null})}})}return null}onColumnsEditCustomDialogClose(e){var i,r;const t=this.customColumnDialog;if(e){let o=t.value;t.type==="boolean"?o=o==="true"||o===!0:t.type==="number"&&(o=parseFloat(o)),this.customColumnDialog=null,this.props.socket.getObject(((r=(i=this.state.columnsEditCustomDialog)==null?void 0:i.obj)==null?void 0:r._id)||"").then(n=>{var a;if(n&&it.setCustomValue(n,(a=this.state.columnsEditCustomDialog)==null?void 0:a.it,o))return this.props.socket.setObject(n._id,n);throw new Error(this.props.t("ra_Cannot update attribute, because not found in the object"))}).then(()=>this.setState({columnsEditCustomDialog:null})).catch(n=>this.showError(n))}else this.customColumnDialog=null,this.setState({columnsEditCustomDialog:null})}renderColumnsEditCustomDialog(){if(!this.state.columnsEditCustomDialog)return null;if(!this.customColumnDialog){const e=it.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof e,initValue:(e??"").toString(),value:(e??"").toString()}}return M.createElement(j.Dialog,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"custom-dialog-title"},`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.customColumnDialog.type==="boolean"?M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:this.customColumnDialog.value==="true",onChange:e=>{const t=this.customColumnDialog;t.value=e.target.checked.toString();const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):M.createElement(j.TextField,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:e=>{const t=this.customColumnDialog;t.value=e.target.value;const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})},autoFocus:!0}))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:M.createElement(Oe,null)},this.props.t("ra_Update")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}static getCustomValue(e,t){var i;if((i=e==null?void 0:e._id)!=null&&i.startsWith(`${t.adapter}.`)&&t.path.length>1){const r=t.path;let o;const n=e;if(n[r[0]]&&typeof n[r[0]]=="object")return r.length===2?o=n[r[0]][r[1]]:r.length===3?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"?n[r[0]][r[1]][r[2]]:null:r.length===4?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]?n[r[0]][r[1]][r[2]][r[3]]:null:r.length===5?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]?n[r[0]][r[1]][r[2]][r[3]][r[4]]:null:r.length===6&&(o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]&&n[r[0]][r[1]][r[2]][r[3]][r[4]]?n[r[0]][r[1]][r[2]][r[3]][r[4]][r[5]]:null),o??null}return null}static setCustomValue(e,t,i){var r;if((r=e==null?void 0:e._id)!=null&&r.startsWith(`${t.adapter}.`)&&t.path.length>1){const o=t.path,n=e;if(n[o[0]]&&typeof n[o[0]]=="object"){if(o.length===2)return n[o[0]][o[1]]=i,!0;if(o.length===3){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object")return n[o[0]][o[1]][o[2]]=i,!0}else if(o.length===4){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object")return n[o[0]][o[1]][o[2]][o[3]]=i,!0}else if(o.length===5){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]]=i,!0}else if(o.length===6&&n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object"&&n[o[0]][o[1]][o[2]][o[3]][o[4]]&&typeof n[o[0]][o[1]][o[2]][o[3]][o[4]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]][o[5]]=i,!0}}return!1}renderCustomValue(e,t,i){const r=it.getCustomValue(e,t);return r!=null?t.edit&&!this.props.notEditable&&(!t.objTypes||t.objTypes.includes(e.type))?M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w.columnCustomEditable,...w[`columnCustom_${t.align}`]},onClick:()=>this.setState({columnsEditCustomDialog:{item:i,it:t,obj:e},customColumnDialogValueChanged:!1})},r):M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w[`columnCustom_${t.align}`]}},r):null}renderAliasLink(e,t,i){const r=t||0,o=this.objects[this.info.aliasesMap[e][r]].common.alias.id;return o?M.createElement(j.Box,{component:"div",onClick:n=>{n.stopPropagation(),n.preventDefault();const a=this.info.aliasesMap[e][r];this.info.aliasesMap[e].length>1&&this.setState({aliasMenu:""}),this.onSelect(a),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(a)),100)},sx:i||this.styles.aliasAlone},M.createElement("span",{className:"admin-browser-arrow"},typeof o=="string"||o.read===e&&o.write===e?"↔":o.read===e?"→":"←"),this.info.aliasesMap[e][r]):null}renderLeaf(e,t,i){var ai,Mi,ci,tr,sr,AM,mM,OM,EM,fM,xM,_M,SM,kM;const r=e.data.id;i.count++,t=t===void 0?this.state.expanded.includes(r):t;let o;const n=e.data.obj,a=n==null?void 0:n.type;e.children||a==="folder"||a==="device"||a==="channel"||a==="meta"?o=t?M.createElement(fr,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):M.createElement(Ws,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):n&&n.common&&n.common.write===!1&&n.type==="state"?o=M.createElement(K_e,{style:this.styles.cellIdIconDocument}):o=M.createElement(X_e,{style:this.styles.cellIdIconDocument});let c=null;e.data.icon&&(typeof e.data.icon=="string"?e.data.icon.length<3?c=M.createElement("span",{className:"iconOwn",style:w.cellIdIconOwn},e.data.icon):c=M.createElement(me,{style:w.cellIdIconOwn,className:"iconOwn",src:e.data.icon,alt:""}):c=e.data.icon);const l=n==null?void 0:n.common,N=(n==null?void 0:n.type)&&Ul[n.type]||M.createElement("div",{className:"itemIcon"}),u=this.levelPadding*(e.data.level||0);if(e.data.lang!==this.props.lang){const{rooms:k,per:q}=b4(this.info,r,this.props.lang);e.data.rooms=k.join(", "),e.data.per=q;const{funcs:fe,pef:De}=Q4(this.info,r,this.props.lang);e.data.funcs=fe.join(", "),e.data.pef=De,e.data.lang=this.props.lang}const L=this.props.multiSelect&&this.objects[r]&&(!this.props.types||this.props.types.includes(this.objects[r].type))?M.createElement(j.Checkbox,{style:w.checkBox,checked:this.state.selected.includes(r)}):null;let g=!this.props.notEditable&&a==="state"&&(this.state.filter.expertMode||(l==null?void 0:l.write)!==!1);this.props.objectBrowserViewFile&&(l==null?void 0:l.type)==="file"&&(g=!0);const y=!this.props.notEditable&&this.objects[r]&&(this.state.filter.expertMode||a==="state"||a==="channel"||a==="device"),T=this.state.statesView&&(a==="state"||a==="channel"||a==="device");let D="";const z=[];if(T&&(D=(ai=this.states[r])==null?void 0:ai.from,D===void 0?D=" ":(D=D?D.replace(/^system\.adapter\.|^system\./,""):"",z.push(`${this.texts.stateChangedFrom} ${D}`)),n!=null&&n.user)){const k=n.user.replace("system.user.","");D+=`/${k}`,z.push(`${this.texts.stateChangedBy} ${k}`)}n&&(n.from&&z.push(`${this.texts.objectChangedFrom} ${n.from.replace(/^system\.adapter\.|^system\./,"")}`),n.user&&z.push(`${this.texts.objectChangedBy} ${n.user.replace(/^system\.user\./,"")}`),n.ts&&z.push(`${this.texts.objectChangedByUser} ${O.formatDate(new Date(n.ts),this.props.dateFormat||this.systemConfig.common.dateFormat)}`));let p=!1,C=null;r.startsWith("alias.")&&((Mi=l==null?void 0:l.alias)!=null&&Mi.id)?(p=typeof l.alias.id=="object",p?C=M.createElement("div",{style:w.cellIdAliasReadWriteDiv},l.alias.id.read?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.read),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.read)),100)},sx:this.styles.aliasReadWrite},"←",l.alias.id.read):null,l.alias.id.write?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.write),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.write)),100)},sx:this.styles.aliasReadWrite},"→",l.alias.id.write):null):C=M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id)),100)},sx:this.styles.aliasAlone},"→",l.alias.id)):this.info.aliasesMap[r]&&(this.info.aliasesMap[r].length>1?C=M.createElement(j.Box,{component:"div",id:`alias_${r}`,onClick:k=>{k.stopPropagation(),k.preventDefault(),this.setState({aliasMenu:r})},sx:this.styles.aliasAlone},this.props.t("ra_%s links from aliases",this.info.aliasesMap[r].length)):C=this.renderAliasLink(r,0));let m=l==null?void 0:l.color,I;if(m&&!this.state.selected.includes(r)){const k=this.props.themeName==="dark"?"#1f1f1f":this.props.themeName==="blue"?"#222a2e":"#FFFFFF";O.colorDistance(m,k)<1e3&&(I=this.props.themeType==="dark"?"#9a9a9a":"#565656")}let h=!1;r==="0_userdata"?(m=O4(this.props.themeType),h=!0):r==="alias"?(m=E4(this.props.themeType),h=!0):r==="javascript"?(m=oSe(this.props.themeType),h=!0):r==="system"?(m=f4(this.props.themeType),h=!0):r==="system.adapter"?m=x4(this.props.themeType):(!m||this.state.selected.includes(r))&&(m="inherit");const A=[];if(l!=null&&l.statusStates){const k={};Object.keys(l.statusStates).forEach(fe=>{var tt;let De=l.statusStates[fe];De.split(".").length<3&&(De=`${r}.${De}`),k[fe]=De,this.states[De]?this.recordStates.includes(De)||this.recordStates.push(De):((tt=this.objects[De])==null?void 0:tt.type)==="state"&&(this.recordStates.includes(De)||this.recordStates.push(De),this.states[De]={val:null},this.subscribe(De))});let q=!1;l.statusStates.errorId&&this.states[k.errorId]&&this.states[k.errorId].val&&(m=this.props.themeType==="dark"?_4:S4,q=!0,A.push(M.createElement(ng,{key:"error",style:this.styles.iconDeviceError}))),k.onlineId&&this.states[k.onlineId]?q?this.states[k.onlineId].val?A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):this.states[k.onlineId].val?(m=this.props.themeType==="dark"?Wn:Bn,A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))):(m=this.props.themeType==="dark"?Jn:Rn,A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):k.offlineId&&this.states[k.offlineId]&&(q?this.states[k.offlineId].val?A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):this.states[k.offlineId].val?(m=this.props.themeType==="dark"?Jn:Rn,A.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):(m=this.props.themeType==="dark"?Wn:Bn,A.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))))}const S=T?O.quality2text(((ci=this.states[r])==null?void 0:ci.q)||0).join(", "):null;let f=((tr=e.data)==null?void 0:tr.title)||"",P=!1;if(this.state.showDescription){const k=Y4(e.data,this.props.lang);k&&(f=[M.createElement("div",{key:"name",style:w.cellNameDivDiv},f),M.createElement("div",{key:"desc",style:w.cellDescription},k)],P=!!k)}const v=this.props.width==="xs"&&this.state.focused===r,ee=M.createElement(j.Grid2,{container:!0,wrap:"nowrap",direction:"row",sx:w.cellId,style:{width:this.columnsVisibility.id,paddingLeft:u}},M.createElement(j.Grid2,{container:!0,alignItems:"center"},L,o),M.createElement(j.Grid2,{style:{...w.cellIdSpan,...I?this.styles.invertedBackground:void 0,color:m,fontWeight:h?"bold":void 0}},M.createElement(j.Tooltip,{title:cSe(e.data,this.props.lang),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,e.data.name)),C,A),M.createElement("div",{style:{...w.grow,...I?this.styles.invertedBackgroundFlex:{}}}),M.createElement(j.Grid2,{container:!0,alignItems:"center"},c),this.props.width!=="xs"?M.createElement("div",null,M.createElement(Ts,{className:v?"":"copyButton",style:w.cellCopyButton,onClick:k=>this.onCopy(k,r)})):null);let ae=v&&f||this.columnsVisibility.name?M.createElement(j.Box,{component:"div",sx:{...w.cellName,...P?w.cellNameWithDesc:void 0,width:this.props.width!=="xs"?this.columnsVisibility.name:void 0,ml:v?0:"5px"}},f,!v&&((sr=e.data)!=null&&sr.title)?M.createElement(j.Box,{style:{color:m}},M.createElement(Ts,{className:"copyButton",style:w.cellCopyButton,onClick:k=>{var q;return this.onCopy(k,(q=e.data)==null?void 0:q.title)}})):null):null,J;this.state.statesView?J=[v&&T&&((AM=this.states[r])!=null&&AM.from)||this.columnsVisibility.changedFrom?{el:M.createElement("div",{key:"from",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.changedFrom:void 0},title:z.join(` -`)},T&&((mM=this.states[r])!=null&&mM.from)?D:null),type:"from"}:null,v&&S||this.columnsVisibility.qualityCode?{el:M.createElement("div",{key:"q",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.qualityCode:void 0},title:S||""},S),type:"quality"}:null,v&&T&&((OM=this.states[r])!=null&&OM.ts)||this.columnsVisibility.timestamp?{el:M.createElement("div",{key:"ts",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.timestamp:void 0}},T&&((EM=this.states[r])!=null&&EM.ts)?O.formatDate(new Date(this.states[r].ts),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"ts"}:null,v&&T&&((fM=this.states[r])!=null&&fM.lc)||this.columnsVisibility.lastChange?{el:M.createElement("div",{key:"lc",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.lastChange:void 0}},T&&((xM=this.states[r])!=null&&xM.lc)?O.formatDate(new Date(this.states[r].lc),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"lc"}:null]:J=[v&&(n!=null&&n.type)||this.columnsVisibility.type?{el:M.createElement("div",{key:"type",style:{...w.cellType,width:this.props.width!=="xs"?this.columnsVisibility.type:void 0}},N," ",n==null?void 0:n.type),type:"filter_type"}:null,v&&l||this.columnsVisibility.role?{el:M.createElement("div",{key:"role",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.role:"100%",cursor:this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?"text":"default"},onClick:!v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0},l==null?void 0:l.role),type:"filter_role",onClick:v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0}:null,v&&l||this.columnsVisibility.room?{el:M.createElement("div",{key:"room",style:{...w.cellRoom,...e.data.per?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.room:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.rooms),type:"filter_room",onClick:v&&y?()=>{const k=ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0}:null,v&&l||this.columnsVisibility.func?{el:M.createElement("div",{key:"func",style:{...w.cellFunc,...e.data.pef?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.func:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.funcs),type:"filter_func",onClick:v&&y?()=>{const k=ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0}:null];let H=((_M=this.adapterColumns)==null?void 0:_M.map(k=>M.createElement("div",{style:{...w.cellAdapter,width:this.props.width!=="xs"?this.columnsVisibility[k.id]:void 0},key:k.id,title:`${k.adapter} => ${k.pathText}`},n?this.renderCustomValue(n,k,e):null)))||null;const Te=v||this.columnsVisibility.val?this.renderColumnValue(r,e,v):null;let Fe=v&&Te||this.columnsVisibility.val?M.createElement("div",{style:{...w.cellValue,width:this.props.width!=="xs"?this.columnsVisibility.val:"calc(100% - 100px)",cursor:g?(l==null?void 0:l.type)==="file"?"zoom-in":e.data.button?"grab":"text":"default"},onClick:k=>{var q,fe,De;if(g){if(!(!n||!this.states))if((l==null?void 0:l.type)==="file")this.setState({viewFileDialog:r});else if(e.data.url&&k.ctrlKey){if((q=this.states[r])!=null&&q.val&&typeof this.states[r].val=="string")if((l==null?void 0:l.role)==="url.self")window.location.href=this.states[r].val;else{const tt=window.open(this.states[r].val,"_blank");tt==null||tt.focus()}}else!this.state.filter.expertMode&&e.data.button?this.props.socket.setState(r,!0).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):!this.state.filter.expertMode&&e.data.switch?this.props.socket.setState(r,!this.states[r].val).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):(this.edit={val:this.states[r]?this.states[r].val:"",q:this.states[r]&&this.states[r].q||0,ack:!1,id:r},this.setState({updateOpened:!0}))}else(l==null?void 0:l.role)==="url"||(l==null?void 0:l.role)==="url.blank"&&k.ctrlKey?(fe=this.states[r])!=null&&fe.val&&typeof this.states[r].val=="string"&&window.open(this.states[r].val,"_blank"):(l==null?void 0:l.role)==="url.self"&&k.ctrlKey&&(De=this.states[r])!=null&&De.val&&typeof this.states[r].val=="string"&&(window.location.href=this.states[r].val)}},Te):null,Ge=v||this.columnsVisibility.buttons?M.createElement("div",{style:{...w.cellButtons,width:this.props.width!=="xs"?this.columnsVisibility.buttons:void 0}},this.renderColumnButtons(r,e)):null,Ls=null;if(this.props.width==="xs"&&this.state.focused===r){J=J.filter(q=>q);let k;J.length?k=J.map(q=>q?M.createElement("div",{key:q.type,style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts[q.type],":"),q.el,M.createElement("div",{style:{flexGrow:1}}),q.onClick?M.createElement(mi,{style:w.cellCopyButtonInDetails,onClick:()=>{q!=null&&q.onClick&&q.onClick()}}):null):null):k=null,H.length||(H=null),Ls=M.createElement(j.Paper,{style:{width:"100%",display:"flex",flexDirection:"column",padding:10,backgroundColor:this.props.theme.palette.mode==="dark"?"#333":"#ccc"}},M.createElement("div",{style:w.cellDetailsLine},M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{style:w.cellCopyButtonInDetails,onClick:q=>this.onCopy(q,r)})),ae&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.name,":"),ae,M.createElement("div",{style:{flexGrow:1}}),(SM=e.data)!=null&&SM.title?M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{var fe;return this.onCopy(q,(fe=e.data)==null?void 0:fe.title)}}):null),k,H&&M.createElement("div",{style:w.cellDetailsLine},H),((kM=this.objects[r])==null?void 0:kM.type)==="state"&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.value,":"),Fe,M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{const{valText:fe}=qo({state:this.states[r],obj:this.objects[r],texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma});this.onCopy(q,fe.c!==void 0?fe.c:fe.v.toString())},key:"cc"})),Ge&&M.createElement("div",{style:{...w.cellDetailsLine,justifyContent:"right"}},Ge)),ae=null,J=null,H=null,Fe=null,Ge=null}return{row:M.createElement(j.Grid2,{container:!0,direction:"row",wrap:"nowrap",sx:O.getStyle(this.props.theme,w.tableRow,this.state.linesEnabled&&w.tableRowLines,!this.props.dragEnabled&&w.tableRowNoDragging,C&&w.tableRowAlias,p&&w.tableRowAliasReadWrite,this.state.focused===r&&this.props.multiSelect&&w.tableRowFocused,!e.data.visible&&w.filteredOut,e.data.hasVisibleParent&&!e.data.visible&&!e.data.hasVisibleChildren&&w.filteredParentOut,this.state.selected.includes(r)&&w.itemSelected,this.state.selectedNonObject===r&&w.itemSelected),key:r,id:r,onMouseDown:k=>{this.onSelect(r);let q;"which"in k?q=k.which===3:"button"in k&&(q=k.button===2),q?this.contextMenu={item:e,ts:Date.now()}:this.contextMenu=null},onDoubleClick:()=>{e.children?this.toggleExpanded(r):this.onSelect(r,!0)}},ee,ae,J==null?void 0:J.map(k=>k==null?void 0:k.el),H,Fe,Ge),details:Ls}}renderItem(e,t,i){const r=[];i=i||{count:0};const o=this.renderLeaf(e,t,i);let n;const a=this.props.DragWrapper;return this.props.dragEnabled&&a?e.data.sumVisibility?n=M.createElement(a,{key:e.data.id,item:e,style:w.draggable},o.row):n=M.createElement("div",{key:e.data.id,style:w.nonDraggable},o.row):n=o.row,e.data.id&&n&&r.push(n),o.details&&r.push(o.details),t=t===void 0?vi(this.state.expanded,e.data.id):t,(!e.data.id||t)&&(this.state.foldersFirst?e.children&&(r.push(e.children.map(c=>c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null)),r.push(e.children.map(c=>!c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))):e.children&&r.push(e.children.map(c=>(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))),r}calculateColumnsVisibility(e,t,i,r){let o=r||this.state.columnsWidths;const n=i||this.state.columnsForAdmin,a=t||this.state.columns||[],c=typeof e!="boolean"?this.state.columnsAuto:e;o=JSON.parse(JSON.stringify(o)),Object.keys(o).forEach(N=>{o[N]&&(o[N]=parseInt(o[N],10)||0)}),this.adapterColumns=[];const l=le[this.props.width||"lg"].widths;if(c){if(this.columnsVisibility={id:le[this.props.width||"lg"].idWidth,name:this.visibleCols.includes("name")&&l.name||0,nameHeader:this.visibleCols.includes("name")&&l.name||0,type:this.visibleCols.includes("type")&&l.type||0,role:this.visibleCols.includes("role")&&l.role||0,room:this.visibleCols.includes("room")&&l.room||0,func:this.visibleCols.includes("func")&&l.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&l.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&l.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&l.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&l.lastChange||0,val:this.visibleCols.includes("val")&&l.val||0,buttons:this.visibleCols.includes("buttons")&&l.buttons||0},this.columnsVisibility.name&&!this.customWidth){let N=this.columnsVisibility.id||0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.name=`calc(100% - ${N+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${N+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let N=0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.id=`calc(100% - ${N+5}px)`}}else{const N=this.props.width||"lg";this.columnsVisibility={id:o.id||le[N].idWidth,name:a.includes("name")&&(o.name||l.name||le[N].widths.name)||0,type:a.includes("type")&&(o.type||l.type||le[N].widths.type)||0,role:a.includes("role")&&(o.role||l.role||le[N].widths.role)||0,room:a.includes("room")&&(o.room||l.room||le[N].widths.room)||0,func:a.includes("func")&&(o.func||l.func||le[N].widths.func)||0};let u=this.columnsVisibility.id;if(this.columnsVisibility.name&&(u+=this.columnsVisibility.type||0,u+=this.columnsVisibility.role||0,u+=this.columnsVisibility.room||0,u+=this.columnsVisibility.func||0),n&&a&&Object.keys(n).sort().forEach(L=>n[L].forEach(g=>{const y=`_${L}_${g.path}`;if(a.includes(y)){const T={adapter:L,id:`_${L}_${g.path}`,name:g.name,path:g.path.split("."),pathText:g.path};g.edit&&(T.edit=!0,g.type&&(T.type=g.type),g.objTypes&&(T.objTypes=g.objTypes)),this.adapterColumns.push(T),this.columnsVisibility[y]=o[T.id]||g.width||le[N].widths.func||le.xl.widths.func||0,u+=this.columnsVisibility[y]}else this.columnsVisibility[y]=0})),this.adapterColumns.sort((L,g)=>L.id>g.id?-1:L.idy==="id"||typeof this.columnsVisibility[y]=="string"||!this.columnsVisibility[y]?g:g+this.columnsVisibility[y],0);this.columnsVisibility.id=`calc(100% - ${L}px)`}}}resizerMouseMove=e=>{if(this.resizerActiveDiv){let t,i;this.resizeLeft?(t=this.resizerOldWidth-e.clientX+this.resizerPosition,i=this.resizerOldWidthNext+e.clientX-this.resizerPosition):(t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition),this.resizerActiveName&&this.resizerNextName&&(!this.resizerMin||t>this.resizerMin)&&(!this.resizerNextMin||i>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=t,this.resizerCurrentWidths[this.resizerNextName]=i,this.resizerActiveDiv.style.width=`${t}px`,this.resizerNextDiv&&(this.resizerNextDiv.style.width=`${i}px`),this.columnsVisibility[this.resizerActiveName]=t,this.columnsVisibility[this.resizerNextName]=i,this.resizerNextName==="nameHeader"?(this.columnsVisibility.name=i-this.state.scrollBarWidth,this.resizerCurrentWidths.name=i-this.state.scrollBarWidth):this.resizerActiveName==="nameHeader"&&(this.columnsVisibility.name=t-this.state.scrollBarWidth,this.resizerCurrentWidths.name=t-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=null,this.forceUpdate()},200))}};resizerMouseUp=()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveName=null,this.resizerNextName=null,this.resizerActiveDiv=null,this.resizerNextDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{if(this.storedWidths||=JSON.parse(JSON.stringify(le[this.props.width||"lg"])),this.resizerCurrentWidths=this.resizerCurrentWidths||{},this.resizerActiveDiv=e.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name||null,this.resizerActiveName){let t=0;if(e.target.dataset.left==="true"){this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler");for(;this.resizerNextDiv&&!i&&t<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler"),t++;(i==null?void 0:i.dataset.left)!=="true"&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name||null,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=e.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerNextName&&(this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName]),window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};navigateKeyPress(e){var i,r;const t=this.state.selectedNonObject||this.state.selected[0];if(t){if(e.code==="ArrowUp"||e.code==="ArrowDown"){e.preventDefault();const o=[];(i=this.tableRef.current)==null||i.childNodes.forEach(l=>o.push(l.id));const n=o.indexOf(t),a=e.code==="ArrowDown"?n+1:n-1,c=o[a]||t;this.onSelect(c),this.scrollToItem(c)}if((e.code==="ArrowRight"||e.code==="ArrowLeft")&&this.toggleExpanded(t),e.code==="Delete"&&this.root&&t){const o=it.getItemFromRoot(this.root,t);if(o){const{obj:n}=o.data;n&&!((r=n.common)!=null&&r.dontDelete)&&this.showDeleteDialog({id:t,obj:n,item:o})}}}}static getItemFromRoot(e,t){const i=t.split(".");let r="",o=e;for(let n=0;n{this.customWidth=!1,le[this.props.width||"lg"]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),this.localStorage.removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()};renderHandleRight(){return M.createElement(j.Box,{component:"div",className:"iob-ob-resize-handler",sx:{...w.resizeHandle,...w.resizeHandleRight},onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})}renderHeader(){let e=null;return!this.columnsVisibility.buttons&&!this.isFilterEmpty()&&(e=M.createElement(j.IconButton,{onClick:()=>this.clearFilter(),style:w.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large"},M.createElement(eSe,null),M.createElement(Ne,{style:w.buttonClearFilterIcon}))),this.props.width==="xs"?M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:"100%"}},this.getFilterInput("id"))):M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id"},this.getFilterInput("id"),this.renderHandleRight()),this.columnsVisibility.name?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.nameHeader,position:"relative"},"data-min":100,"data-name":"nameHeader"},this.getFilterInput("name"),this.renderHandleRight()):null,!this.state.statesView&&M.createElement(M.Fragment,null,this.columnsVisibility.type?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.type,position:"relative"},"data-min":100,"data-name":"type"},this.getFilterSelectType(),this.renderHandleRight()):null,this.columnsVisibility.role?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.role,position:"relative"},"data-min":100,"data-name":"role"},this.getFilterSelectRole(),this.renderHandleRight()):null,this.columnsVisibility.room?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.room,position:"relative"},"data-min":100,"data-name":"room"},this.getFilterSelectRoom(),this.renderHandleRight()):null,this.columnsVisibility.func?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.func,position:"relative"},"data-min":100,"data-name":"func"},this.getFilterSelectFunction(),this.renderHandleRight()):null),this.state.statesView&&M.createElement(M.Fragment,null,M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.changedFrom,position:"relative"},"data-min":100,"data-name":"changedFrom"},this.props.t("ra_Changed from"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.qualityCode,position:"relative"},"data-min":100,"data-name":"qualityCode"},this.props.t("ra_Quality code"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.timestamp,position:"relative"},"data-min":100,"data-name":"timestamp"},this.props.t("ra_Timestamp"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.lastChange,position:"relative"},"data-min":100,"data-name":"lastChange"},this.props.t("ra_Last change"),this.renderHandleRight())),this.adapterColumns.map(t=>M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility[t.id]},title:t.adapter,key:t.id,"data-min":100,"data-name":t.id},t.name)),this.columnsVisibility.val?M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val"},this.props.t("ra_Value"),e):null,this.columnsVisibility.buttons?M.createElement("div",{title:this.texts.filter_custom,style:{...w.headerCell,width:this.columnsVisibility.buttons}}," ",this.getFilterSelectCustoms()):null)}renderToast(){return M.createElement(j.Snackbar,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:M.createElement(j.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""})},M.createElement(Ne,{fontSize:"small"}))})}componentDidUpdate(){if(this.tableRef.current){const e=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==e?setTimeout(()=>this.setState({scrollBarWidth:e}),100):this.selectFirst&&this.scrollToItem(this.selectFirst)}}scrollToItem(e){this.selectFirst="";const t=window.document.getElementById(e);t==null||t.scrollIntoView({behavior:"auto",block:"center",inline:"center"})}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const e=this.props.objectCustomDialog;return M.createElement(e,{reportChangedIds:t=>this.changedIds=[...t],objectIDs:this.state.customDialog,allVisibleObjects:!!this.state.customDialogAll,expertMode:this.state.filter.expertMode,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,t:this.props.t,lang:this.props.lang,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objects:this.objects,customsInstances:this.info.customs,onClose:()=>{var t;this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),(t=this.props.router)==null||t.doNavigate("tab-objects")},systemConfig:this.systemConfig})}return null}onUpdate(e){this.props.socket.setState(this.edit.id,{val:e.val,ack:e.ack,q:e.q||0,expire:e.expire||void 0}).catch(t=>this.showError(`Cannot write value: ${t}`))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const e=this.props.objectBrowserEditObject;return M.createElement(e,{key:this.state.editObjectDialog,obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,dialogName:this.props.dialogName,aliasTab:this.state.editObjectAlias,t:this.props.t,expertMode:!!this.state.filter.expertMode,onNewObject:t=>this.props.socket.setObject(t._id,t).then(()=>this.setState({editObjectDialog:t._id,editObjectAlias:!1},()=>this.onSelect(t._id))).catch(i=>this.showError(`Cannot write object: ${i}`)),onClose:t=>{var i,r;if(t){let o;this.state.editObjectDialog.startsWith("alias.")&&JSON.stringify((i=this.objects[this.state.editObjectDialog].common)==null?void 0:i.alias)!==JSON.stringify((r=t.common)==null?void 0:r.alias)&&(o=this.state.editObjectDialog),this.props.socket.setObject(t._id,t).then(()=>{o&&this.subscribes.includes(o)&&(this.unsubscribe(o),setTimeout(()=>this.subscribe(o),100))}).catch(n=>this.showError(`Cannot write object: ${n}`))}this.setState({editObjectDialog:"",editObjectAlias:!1})},width:this.props.width})}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const e=this.props.objectBrowserViewFile;return M.createElement(e,{key:"viewFile",obj:this.objects[this.state.viewFileDialog],socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({viewFileDialog:""})})}renderAliasEditorDialog(){if(!this.props.objectBrowserAliasEditor||!this.state.showAliasEditor)return null;const e=this.props.objectBrowserAliasEditor;return M.createElement(e,{key:"editAlias",obj:this.objects[this.state.showAliasEditor],roleArray:this.info.roles,objects:this.objects,socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({showAliasEditor:""}),onRedirect:(t,i)=>setTimeout(()=>this.onSelect(t,!1,()=>this.expandAllSelected(()=>{this.scrollToItem(t),setTimeout(()=>this.setState({editObjectDialog:t,showAliasEditor:"",editObjectAlias:!0}),300)})),i||0)})}showAddDataPointDialog(e,t,i){this.setState({showContextMenu:null,modalNewObj:{id:e,initialType:t,initialStateType:i}})}renderAliasMenu(){return this.state.aliasMenu?M.createElement(j.Menu,{key:"aliasmenu",open:!0,anchorEl:window.document.getElementById(`alias_${this.state.aliasMenu}`),onClose:()=>this.setState({aliasMenu:""})},this.info.aliasesMap[this.state.aliasMenu].map((e,t)=>M.createElement(j.MenuItem,{key:e,onClick:()=>this.onSelect(e)},M.createElement(j.ListItemText,null,this.renderAliasLink(this.state.aliasMenu,t,{"& .admin-browser-arrow":{mr:"8px"}}))))):null}renderContextMenu(){var L,g,y,T,D,z,p;if(!this.state.showContextMenu)return null;const e=this.state.showContextMenu.item,t=e.data.id,i=[],r=e.data.obj;let o="";if(this.props.objectEditOfAccessControl&&this.state.filter.expertMode)if(!r)o="---";else{const C=r.acl?r.type==="state"?r.acl.state:r.acl.object:0,m=r.acl&&(r.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);o=Number.isNaN(Number(C))?Number(m).toString(16):Number(C).toString(16)}const n=!this.props.notEditable&&r&&(this.state.filter.expertMode||r.type==="state"||r.type==="channel"||r.type==="device"),a=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="channel"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",c=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",l=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",N=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",u={EDIT:{key:"0",visibility:!!(this.props.objectBrowserEditObject&&r&&(this.state.filter.expertMode||it.isNonExpertId(t))),icon:M.createElement(mi,{fontSize:"small",style:this.styles.contextMenuEdit}),label:this.texts.editObject,onClick:()=>this.setState({editObjectDialog:e.data.id,showContextMenu:null,editObjectAlias:!1})},EDIT_VALUE:{key:"1",visibility:!!(this.states&&!this.props.notEditable&&r&&r.type==="state"&&((L=r.common)==null?void 0:L.type)!=="file"&&(this.state.filter.expertMode||r.common.write!==!1)),icon:M.createElement(Ng,{fontSize:"small",style:this.styles.contextMenuEditValue}),label:this.props.t("ra_Edit value"),onClick:()=>{this.edit={val:this.states[t]?this.states[t].val:"",q:this.states[t]&&this.states[t].q||0,ack:!1,id:t},this.setState({updateOpened:!0,showContextMenu:null})}},VIEW:{visibility:!!this.props.objectBrowserViewFile&&(r==null?void 0:r.type)==="state"&&((g=r.common)==null?void 0:g.type)==="file",icon:M.createElement(Mg,{fontSize:"small",style:this.styles.contextMenuView}),label:this.props.t("ra_View file"),onClick:()=>this.setState({viewFileDialog:(r==null?void 0:r._id)||"",showContextMenu:null})},CUSTOM:{key:"2",visibility:!(this.props.objectCustomDialog&&this.info.hasSomeCustoms&&r&&r.type==="state"&&((y=r.common)==null?void 0:y.type)!=="file"),icon:M.createElement(ln,{fontSize:"small",style:e.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),style:this.styles.contextMenuCustom,label:this.texts.customConfig,onClick:()=>{var C;this.pauseSubscribe(!0),(C=this.props.router)==null||C.doNavigate(null,"customs",t),this.setState({customDialog:[t],showContextMenu:null})}},ACL:{key:"3",visibility:!!o,icon:o,iconStyle:{fontSize:"smaller"},listItemIconStyle:this.styles.contextMenuACL,style:this.styles.contextMenuACL,label:this.props.t("ra_Edit ACL"),onClick:()=>this.setState({showContextMenu:null,modalEditOfAccess:!0,modalEditOfAccessObjData:e.data})},ROLE:{key:"4",visibility:!!(this.state.filter.expertMode&&n&&this.props.objectBrowserEditRole),icon:M.createElement(HL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit role"),onClick:()=>this.setState({roleDialog:e.data.id,showContextMenu:null})},FUNCTION:{key:"5",visibility:!!n,icon:M.createElement(RL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit function"),onClick:()=>{const C=ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ROOM:{key:"6",visibility:!!n,icon:M.createElement(tg,{fontSize:"small",style:this.styles.contextMenuRoom}),label:this.props.t("ra_Edit room"),onClick:()=>{const C=ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ALIAS:{key:"7",visibility:!!(!this.props.notEditable&&this.props.objectBrowserAliasEditor&&this.props.objectBrowserEditObject&&(r==null?void 0:r.type)==="state"&&((T=r.common)==null?void 0:T.type)!=="file"),icon:M.createElement(gN,{style:(D=r==null?void 0:r.common)!=null&&D.alias?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),label:this.info.aliasesMap[e.data.id]||e.data.id.startsWith("alias.0.")?this.props.t("ra_Edit alias"):this.props.t("ra_Create alias"),onClick:()=>{var C;(C=r==null?void 0:r.common)!=null&&C.alias?this.setState({showContextMenu:null,editObjectDialog:e.data.id,editObjectAlias:!0}):this.setState({showContextMenu:null,showAliasEditor:e.data.id})}},CREATE:{key:"+",visibility:(e.data.id.startsWith("0_userdata.0")||e.data.id.startsWith("javascript."))&&(a||c||l||N),icon:M.createElement(un,{fontSize:"small",style:this.styles.cellButtonsButtonWithCustoms}),style:w.contextMenuWithSubMenu,label:this.texts.create,subMenu:[{label:this.texts.createBooleanState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","boolean")},{label:this.texts.createNumberState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","number")},{label:this.texts.createStringState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","string")},{label:this.texts.createState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state")},{label:this.texts.createChannel,visibility:c,icon:M.createElement(A4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"channel")},{label:this.texts.createDevice,visibility:l,icon:M.createElement(m4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"device")},{label:this.texts.createFolder,icon:M.createElement(NN,{fontSize:"small"}),visibility:N,onClick:()=>this.showAddDataPointDialog(e.data.id,"folder")}]},RENAME:{key:"8",visibility:!!(!this.props.notEditable&&this.props.objectMoveRenameDialog&&!e.data.id.startsWith("system.")&&e.data.id.split(".").length>2&&(this.props.expertMode||e.data.id.startsWith("javascript.0.")||e.data.id.startsWith("0_userdata.0."))),icon:M.createElement(og,null),label:this.props.t("ra_Rename_Move_Copy"),onClick:()=>{const C=Object.keys(this.objects),m=`${e.data.id}.`;this.setState({showContextMenu:null,showRenameDialog:{id:e.data.id,childrenIds:C.filter(I=>I.startsWith(m))}})}},DELETE:{key:"Delete",visibility:!!(this.props.onObjectDelete&&((z=e.children)!=null&&z.length||r&&!((p=r.common)!=null&&p.dontDelete))),icon:M.createElement(nt,{fontSize:"small",style:this.styles.contextMenuDelete}),style:this.styles.contextMenuDelete,label:this.texts.deleteObject,onClick:()=>this.setState({showContextMenu:null},()=>this.showDeleteDialog({id:t,obj:r||{},item:e}))}};return Object.keys(u).forEach(C=>{var m,I;u[C].visibility&&(u[C].subMenu?(i.push(M.createElement(j.MenuItem,{key:C,href:"",onClick:h=>this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position,subItem:C,subAnchor:h.target}}),style:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label,"..."),M.createElement("div",{style:{...w.contextMenuKeys,opacity:1}},M.createElement(BL,null)))),((m=this.state.showContextMenu)==null?void 0:m.subItem)===C&&i.push(M.createElement(j.Menu,{key:"subContextMenu",open:!0,anchorEl:this.state.showContextMenu.subAnchor,onClose:()=>{this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position}}),this.contextMenu=null}},(I=u[C].subMenu)==null?void 0:I.map(h=>h.visibility?M.createElement(j.MenuItem,{key:h.label,onClick:h.onClick,style:h.style},M.createElement(j.ListItemIcon,{style:{...h.iconStyle,...h.listItemIconStyle||void 0}},h.icon),M.createElement(j.ListItemText,null,h.label)):null)))):i.push(M.createElement(j.MenuItem,{key:C,onClick:u[C].onClick,sx:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label),u[C].key?M.createElement("div",{style:w.contextMenuKeys},`Alt+${u[C].key==="Delete"?this.props.t("ra_Del"):u[C].key}`):null)))}),i.length?M.createElement(j.Menu,{key:"contextMenu",open:!0,onKeyUp:C=>{C.preventDefault(),C.altKey&&Object.keys(u).forEach(m=>{C.key===u[m].key&&u[m].onClick&&u[m].onClick()})},anchorReference:"anchorPosition",anchorPosition:this.state.showContextMenu.position,onClose:()=>{this.setState({showContextMenu:null}),this.contextMenu=null}},i):(setTimeout(()=>this.setState({showContextMenu:null}),100),null)}renderEditValueDialog(){var r;if(!this.state.updateOpened||!this.props.objectBrowserValue)return null;if(!this.edit.id)return console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`),null;if(!this.objects[this.edit.id])return console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`),null;const e=(r=this.objects[this.edit.id].common)!=null&&r.type?this.objects[this.edit.id].common.type:typeof this.edit.val,t=this.objects[this.edit.id].common.role,i=this.props.objectBrowserValue;return M.createElement(i,{t:this.props.t,lang:this.props.lang,type:e,role:t||"",states:O.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,theme:this.props.theme,expertMode:!!this.state.filter.expertMode,value:this.edit.val,socket:this.props.socket,object:this.objects[this.edit.id],defaultHistory:this.defaultHistory,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,onClose:o=>{this.setState({updateOpened:!1}),o&&this.onUpdate(o)},width:this.props.width})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer),this.styleTheme!==this.props.themeType&&(this.styles={cellIdIconFolder:O.getStyle(this.props.theme,w.cellIdIconFolder),cellIdIconDocument:O.getStyle(this.props.theme,w.cellIdIconDocument),iconDeviceError:O.getStyle(this.props.theme,w.iconDeviceError),iconDeviceConnected:O.getStyle(this.props.theme,w.iconDeviceConnected),iconDeviceDisconnected:O.getStyle(this.props.theme,w.iconDeviceDisconnected),cellButtonsButtonWithCustoms:O.getStyle(this.props.theme,w.cellButtonsButtonWithCustoms),invertedBackground:O.getStyle(this.props.theme,w.invertedBackground),invertedBackgroundFlex:O.getStyle(this.props.theme,w.invertedBackgroundFlex),contextMenuEdit:O.getStyle(this.props.theme,w.contextMenuEdit),contextMenuEditValue:O.getStyle(this.props.theme,w.contextMenuEditValue),contextMenuView:O.getStyle(this.props.theme,w.contextMenuView),contextMenuCustom:O.getStyle(this.props.theme,w.contextMenuCustom),contextMenuACL:O.getStyle(this.props.theme,w.contextMenuACL),contextMenuRoom:O.getStyle(this.props.theme,w.contextMenuRoom),contextMenuRole:O.getStyle(this.props.theme,w.contextMenuRole),contextMenuDelete:O.getStyle(this.props.theme,w.contextMenuDelete),filterInput:O.getStyle(this.props.theme,w.headerCellInput,w.filterInput),iconCopy:O.getStyle(this.props.theme,w.cellButtonsValueButton,w.cellButtonsValueButtonCopy),aliasReadWrite:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasReadWrite),aliasAlone:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasAlone)},this.styleTheme=this.props.themeType);const e=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==e&&this.objects&&this.root){const i={count:0};Gn(this.root,this.state.filter,this.props.lang,this.objects,void 0,i,this.props.customFilter,this.props.types),i.count<500&&!this.state.expandAllVisible?setTimeout(()=>this.setState({expandAllVisible:!0})):i.count>=500&&this.state.expandAllVisible&&setTimeout(()=>this.setState({expandAllVisible:!1})),this.lastAppliedFilter=e}if(this.unsubscribeTimer=setTimeout(()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()},200),!this.state.loaded)return M.createElement(j.CircularProgress,{key:`${this.props.dialogName}_c`});const t=this.root?this.renderItem(this.root,void 0):null;return M.createElement(tSe,{key:this.props.dialogName},M.createElement("style",null,` -@keyframes newValueAnimation-light { - 0% { - color: #00f900; - } - 80% { - color: #008000; - } - 100% { - color: #000; - } -} -@keyframes newValueAnimation-dark { - 0% { - color: #00f900; - } - 80% { - color: #008000; - } - 100% { - color: #fff; - } -} -.newValueBrowser-dark { - animation: newValueAnimation-dark 2s ease-in-out; -} -.newValueBrowser-light { - animation: newValueAnimation-light 2s ease-in-out; -} -.highlight-link .iob-link { - text-decoration: underline; - cursor: pointer; -} -`),M.createElement(iSe,null,this.getToolbar()),M.createElement(sSe,null,this.renderHeader(),M.createElement(j.Box,{style:w.tableDiv,ref:this.tableRef,onKeyDown:i=>this.navigateKeyPress(i)},t)),this.renderContextMenu(),this.renderAliasMenu(),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderAliasEditorDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderRenameDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.state.modalEditOfAccessObjData&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}}const NSe=Io()(it);class Z3e extends M.Component{refTypo;height;width;constructor(e){super(e),this.state={closed:this.props.storeId?window.localStorage.getItem(this.props.storeId)==="true":!1},this.height=0,this.width=0,this.refTypo=M.createRef()}componentDidMount(){this.detectHeight()}onClick(){this.props.storeId&&this.props.closed===void 0&&(this.state.closed?window.localStorage.removeItem(this.props.storeId):window.localStorage.setItem(this.props.storeId,"true")),this.props.closed===void 0?this.setState({closed:!this.state.closed},()=>{this.props.onClose&&this.props.onClose(this.state.closed)}):this.props.onClose&&this.props.onClose(!this.props.closed)}detectHeight(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed;this.props.closeable&&!e&&this.refTypo.current&&window.requestAnimationFrame(()=>{(this.props.closed!==void 0?this.props.closed:this.state.closed)||this.refTypo.current&&(!this.height||this.width!==this.refTypo.current.clientWidth)&&(this.height=this.refTypo.current.clientHeight,this.width=this.refTypo.current.clientWidth,this.forceUpdate())})}componentDidUpdate(){this.detectHeight()}render(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed,t=e?xg:Ne;return M.createElement(j.Box,{className:"iom-info-box",style:{whiteSpace:"preserve",display:"flex",gap:8,alignItems:e||this.props.iconPosition==="top"?"flex-start":"center",borderWidth:1,borderStyle:"solid",padding:4,borderRadius:5,marginBottom:8,maxWidth:"100%",transition:"height 0.5s",height:this.props.closeable?e?30:this.height||void 0:void 0,overflow:this.props.closeable?"hidden":void 0,position:"relative",...this.props.style},sx:{borderColor:i=>this.props.type==="ok"?i.palette.info.main:i.palette[this.props.type].main}},this.props.type==="ok"?M.createElement(Oe,{style:{color:"#0F0"}}):this.props.type==="info"?M.createElement(la,{color:"primary"}):M.createElement(_g,{color:this.props.type}),M.createElement(j.Typography,{ref:this.refTypo},this.props.children),this.props.closeable?M.createElement(t,{sx:{color:i=>i.palette.mode==="dark"?"lightgray":"gray",cursor:"pointer",position:"absolute",top:4,right:4},onClick:()=>this.onClick()}):null,this.props.closeable?M.createElement("div",{style:{width:22}}):null,e?M.createElement(j.Box,{component:"div",sx:i=>{const r=i.palette[this.props.type==="ok"?"info":this.props.type].main;return{background:`linear-gradient(${r}00 0%, ${r}10 60%, ${r}90 100%)`}},style:{bottom:0,position:"absolute",left:0,right:0,height:10}}):null)}}const E={hr:{border:0,borderTop:"1px solid gray"},scrollWindow:{width:"100%",overflow:"auto",height:"calc(100% - 22px)"},rowDiv:{width:"100%"},modeDiv:{width:200,display:"inline-block",verticalAlign:"top"},settingsDiv:{display:"inline-block",verticalAlign:"top"},inputTime:{width:90,marginTop:0,marginLeft:5},inputDate:{width:140,marginTop:0,marginLeft:5},inputEvery:{width:40,marginLeft:5,marginRight:5},inputRadio:{padding:"4px 12px",verticalAlign:"top"},inputGroup:{maxWidth:400,display:"inline-block"},inputGroupElement:{width:120},inputDateDay:{width:60},inputDateDayCheck:{padding:4},inputSmallCheck:{padding:0},rowOnce:{},rowDays:s=>({background:s.palette.mode!=="dark"?"#ddeaff":"#4b5057"}),rowDows:s=>({background:s.palette.mode!=="dark"?"#DDFFDD":"#52646c"}),rowMonths:s=>({background:s.palette.mode!=="dark"?"#DDFFFF":"#1f5557"}),rowMonthsDates:s=>({background:s.palette.mode!=="dark"?"#EEFFFF":"#3c5737",maxWidth:600}),rowYears:s=>({background:s.palette.mode!=="dark"?"#fbffdd":"#574b33"}),rowDowsDows:s=>({background:s.palette.mode!=="dark"?"#EEFFEE":"#3d4c54",pl:"10px",pb:"10px"})},en=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],zr=["January","February","March","April","May","June","July","August","September","October","November","December"],tn={minutes:"minutes",hours:"hours"},ji=["sunrise","sunriseEnd","goldenHourEnd","solarNoon","goldenHour","sunsetStart","sunset","dusk","nauticalDusk","night","nightEnd","nauticalDawn","dawn","nadir"];function gt(s){return s<10?`0${s}`:`${s}`}const Pl={time:{exactTime:!1,start:"00:00",end:"23:59",mode:"hours",interval:1},period:{once:"",days:1,dows:"",dates:"",weeks:0,months:"",years:0,yearMonth:0,yearDate:0},valid:{from:"",to:""}};function sn(s){const e=s.split(".");return e.length===3?`${e[2]}-${e[1]}-${e[0]}`:""}class de extends x.Component{refFrom;refTo;refOnce;timerOnce=null;timerFrom=null;timerTo=null;constructor(e){super(e);let t;if(this.props.schedule&&typeof this.props.schedule=="string"&&this.props.schedule[0]==="{")try{t=JSON.parse(this.props.schedule)}catch{}else typeof this.props.schedule=="object"&&(t=this.props.schedule);(!t||!Object.keys(t).length)&&(setTimeout(()=>this.onChange(this.state.schedule,!0),200),t=Pl),t={...Pl,...t},t.valid.from=t.valid.from||de.now2string(),this.refFrom=M.createRef(),this.refTo=M.createRef(),this.refOnce=M.createRef(),this.state={schedule:t,desc:de.state2text(t)},JSON.stringify(t)!==this.props.schedule&&setTimeout(()=>this.props.onChange&&this.props.onChange(JSON.stringify(t)),100)}onChange(e,t){const i=JSON.stringify(e)!==JSON.stringify(this.state.schedule);if(t||i){i&&this.setState({schedule:e,desc:de.state2text(e)});const r=JSON.parse(JSON.stringify(e));if(r.period.once){const o=r.period.once;delete r.period,r.period={once:o},delete r.valid}else if(r.period.days){const o=r.period.days,n=r.period.dows;delete r.period,r.period={days:o},n&&n!=="[]"&&(r.period.dows=n)}else if(r.period.weeks){const o=r.period.weeks,n=r.period.dows;delete r.period,r.period={weeks:o},n&&n!=="[]"&&(r.period.dows=n)}else if(r.period.months){const o=r.period.months,n=r.period.dates;delete r.period,r.period={months:o},n&&n!=="[]"&&(r.period.dates=n)}else if(r.period.years){const o=r.period.years,n=r.period.yearMonth,a=r.period.yearDate;delete r.period,r.period={years:o,yearDate:a},n&&(r.period.yearMonth=n)}if(r.time.exactTime?(delete r.time.end,delete r.time.mode,delete r.time.interval):delete r.time.exactTime,r.valid){if(r.valid.to||delete r.valid.to,r.period.days===1||r.period.weeks===1||r.period.months===1||r.period.years===1){const o=de.string2date(r.valid.from),n=new Date;n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setMilliseconds(0),o<=n&&delete r.valid.from}!r.valid.from&&!r.valid.to&&delete r.valid}this.props.onChange&&this.props.onChange(JSON.stringify(r),de.state2text(e))}}static state2text(e){if(typeof e=="string")try{e=JSON.parse(e)}catch{return""}const t=[],i=de.string2date(e.valid.from);if(e.period.once){const r=de.string2date(e.period.once),o=new Date;if(o.setMilliseconds(0),o.setSeconds(0),o.setMinutes(0),o.setHours(0),rd.t(en[n]));if(o.length===1)t.push(d.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(d.t("sch_desc_everyDay"));else{const n=o.pop();t.push(d.t("sch_desc_onWeekdays",o.join(", "),n))}}}else t.push(d.t("sch_desc_everyDay"));else t.push(d.t("sch_desc_everyNDay",e.period.days.toString()));else if(e.period.weeks)if(e.period.weeks===1?t.push(d.t("sch_desc_everyWeek")):t.push(d.t("sch_desc_everyNWeeks",e.period.weeks.toString())),e.period.dows){const r=JSON.parse(e.period.dows);if(r.length===2&&r[0]===0&&r[1]===6)t.push(d.t("sch_desc_onWeekends"));else if(r.length===5&&r[0]===1&&r[1]===2&&r[2]===3&&r[3]===4&&r[4]===5)t.push(d.t("sch_desc_onWorkdays"));else{const o=r.map(n=>d.t(en[n]));if(o.length===1)t.push(d.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(d.t("sch_desc_everyDay"));else{const n=o.pop();t.push(d.t("sch_desc_onWeekdays",o.join(", "),n))}}}else return d.t("sch_desc_never");else if(e.period.months){if(e.period.dates){const r=JSON.parse(e.period.dates);if(r.length===1)t.push(d.t("sch_desc_onDate",r[0]));else if(r.length===31)t.push(d.t("sch_desc_onEveryDate"));else if(r.length){const o=r.pop();t.push(d.t("sch_desc_onDates",r.join(", "),o))}else return d.t("sch_desc_never")}else t.push(d.t("sch_desc_onEveryDate"));if(e.period.months===1)t.push(d.t("sch_desc_everyMonth"));else if(typeof e.period.months=="number")t.push(d.t("sch_desc_everyNMonths",e.period.months.toString()));else{const o=JSON.parse(e.period.months).map(n=>d.t(zr[n-1]));if(!o.length)return d.t("sch_desc_never");if(o.length===1)t.push(d.t("sch_desc_onMonth",o[0]));else if(o.length===12)t.push(d.t("sch_desc_everyMonth"));else{const n=o.pop();t.push(d.t("sch_desc_onMonths",o.join(", "),n))}}}else e.period.years&&(e.period.years===1?t.push(d.t("sch_desc_everyYear")):t.push(d.t("sch_desc_everyNYears",e.period.years.toString())),t.push(d.t("sch_desc_onDate",e.period.yearDate.toString(),e.period.yearMonth?d.t(zr[e.period.yearMonth-1]):d.t("sch_desc_everyMonth"))));if(e.time.exactTime)ji.includes(e.time.start)?t.push(d.t("sch_desc_atTime",d.t(`sch_astro_${e.time.start}`))):t.push(d.t("sch_desc_atTime",e.time.start));else{e.time.mode===tn.minutes?e.time.interval===1?t.push(d.t("sch_desc_everyMinute")):t.push(d.t("sch_desc_everyNMinutes",e.time.interval.toString())):e.time.interval===1?t.push(d.t("sch_desc_everyHour")):t.push(d.t("sch_desc_everyNHours",e.time.interval.toString()));const r=ji.indexOf(e.time.start)!==-1?d.t(`sch_astro_${e.time.start}`):e.time.start,o=ji.indexOf(e.time.end)!==-1?d.t(`sch_astro_${e.time.end}`):e.time.end;(r!=="00:00"||o!=="24:00"&&o!=="23:59")&&t.push(d.t("sch_desc_intervalFromTo",r,o))}return e.period.once||(i.getTime()>Date.now()&&e.valid.to?t.push(d.t("sch_desc_validFromTo",e.valid.from,e.valid.to)):i.getTime()>Date.now()?t.push(d.t("sch_desc_validFrom",e.valid.from)):e.valid.to&&t.push(d.t("sch_desc_validTo",e.valid.to))),t.join(" ")}getTimePeriodElements(){const e=this.state.schedule;let t=!1,i=!1,r=!1,o=!0;return e.time.start==="00:00"&&e.time.end==="24:00"?(t=!0,o=!1):e.time.start==="sunrise"?(i=!0,o=!1):e.time.start==="sunset"&&(r=!0,o=!1),M.createElement("div",{key:"timePeriod",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!e.time.exactTime,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.exactTime=!1,this.onChange(n)}}),label:d.t("sch_intervalTime")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},!e.time.exactTime&&M.createElement("div",null,M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!o,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="23:59",this.onChange(n)}}),label:o?"":d.t("sch_fromTo")}),o&&[M.createElement(j.TextField,{variant:"standard",style:{...E.inputTime,marginRight:10},key:"exactTimeFrom",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.start,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.start=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_from"),margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeTo",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.end,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.end=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_to"),margin:"normal"})])),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="24:00",this.onChange(n)}}),label:d.t("sch_wholeDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!i,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunrise",n.time.end="sunset",this.onChange(n)}}),label:d.t("sch_astroDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!r,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunset",n.time.end="sunrise",this.onChange(n)}}),label:d.t("sch_astroNight")}))),!e.time.exactTime&&this.getPeriodSettingsMinutes(o)))}getTimeExactElements(){const e=ji.includes(this.state.schedule.time.start);return M.createElement("div",{key:"timeExact",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!this.state.schedule.time.exactTime,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.time.exactTime=!0,this.onChange(t)}}),label:d.t("sch_exactTime")})),this.state.schedule.time.exactTime&&M.createElement(j.Select,{variant:"standard",value:e?this.state.schedule.time.start:"00:00",onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{key:"specific",value:"00:00"},d.t("sch_specificTime")),ji.map(t=>M.createElement(j.MenuItem,{key:t,value:t},d.t(`sch_astro_${t}`)))),this.state.schedule.time.exactTime&&!e&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeValue",value:this.state.schedule.time.start,type:"time",sx:t=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:t.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}static getDivider(){return M.createElement("hr",{style:E.hr})}getPeriodModes(){const e=this.state.schedule,t=!e.period.dows&&!e.period.months&&!e.period.dates&&!e.period.years&&!e.period.days&&!e.period.weeks;return t&&!e.period.once&&(e.period.once=de.now2string(!0)),[M.createElement("div",{key:"once",style:{...E.rowDiv,...E.rowOnce}},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.once=i.period.once||de.now2string(!0),i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,this.onChange(i)}}),label:d.t("sch_periodOnce")})),t&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputDate,type:"date",ref:this.refOnce,key:"exactDateAt",defaultValue:sn(e.period.once),onChange:i=>{this.timerOnce&&clearTimeout(this.timerOnce),this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="#ff000030"),this.timerOnce=setTimeout(r=>{this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),n=de.string2date(r);n.toString()!=="Invalid Date"&&(o.period.once=`${gt(n.getDate())}.${gt(n.getMonth()+1)}.${n.getFullYear()}`,this.onChange(o))},1500,i.target.value)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_at"),margin:"normal"}))),M.createElement(j.Box,{component:"div",key:"days",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDays)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.days,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=1,i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodDaily")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsDaily(),e.period.days?this.getPeriodSettingsWeekdays():null)),M.createElement(j.Box,{component:"div",key:"weeks",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDows)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.weeks,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=e.period.weeks?0:1,i.period.dows=e.period.dows||"[0]",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodWeekly")})),M.createElement(j.Box,{component:"div",style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsWeekly()),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowDowsDows)},this.state.schedule.period.weeks?this.getPeriodSettingsWeekdays():null))),M.createElement(j.Box,{component:"div",key:"months",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowMonths)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.months,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,i.period.dows="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodMonthly")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsMonthly(),e.period.months?M.createElement(j.Box,null,M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.period.dates,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=i.period.months||1;const r=[];for(let o=1;o<=31;o++)r.push(o);i.period.dates=i.period.dates||JSON.stringify(r),i.period.dows="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodDates")})),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},this.getPeriodSettingsDates())):null)),M.createElement(j.Box,{component:"div",key:"years",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowYears)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.years,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=1,i.period.yearDate=1,i.period.yearMonth=1,i.period.dows="",i.period.months=0,i.period.dates="",i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:d.t("sch_periodYearly")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsYearly()),!!e.period.years&&M.createElement("div",{style:E.settingsDiv},M.createElement("span",null,d.t("sch_on")),M.createElement(j.Input,{key:"input",value:this.state.schedule.period.yearDate,style:E.inputEvery,type:"number",inputProps:{min:1,max:31},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearDate=parseInt(i.target.value,10),r.period.yearDate<1&&(r.period.yearDate=31),r.period.yearDate>31&&(r.period.yearDate=1),this.onChange(r)}}),M.createElement(j.Select,{variant:"standard",value:e.period.yearMonth,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearMonth=i.target.value,this.onChange(r)}},M.createElement(j.MenuItem,{key:"every",value:0},d.t("sch_yearEveryMonth")),zr.map((i,r)=>M.createElement(j.MenuItem,{key:i,value:r+1},d.t(i)))))))]}getPeriodSettingsMinutes(e){return M.createElement("div",{style:{display:"inline-block",marginTop:e?15:"inherit"}},M.createElement("label",{style:{marginLeft:4,marginRight:4}},d.t("sch_every")),M.createElement(j.Input,{value:this.state.schedule.time.interval,style:{...E.inputEvery,verticalAlign:"bottom"},type:"number",inputProps:{min:1},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.interval=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement(j.Select,{variant:"standard",value:this.state.schedule.time.mode,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.mode=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{value:tn.minutes},d.t("sch_periodMinutes")),M.createElement(j.MenuItem,{value:tn.hours},d.t("sch_periodHours"))))}getPeriodSettingsWeekdays(){const e=this.state.schedule,t=e.period.dows&&e.period.dows!=="[1, 2, 3, 4, 5]"&&e.period.dows!=="[0, 6]";return[M.createElement("div",{key:"workdays"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[1, 2, 3, 4, 5]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[1, 2, 3, 4, 5]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:d.t("sch_periodWorkdays")})),M.createElement("div",{key:"weekend"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[0, 6]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:d.t("sch_periodWeekend")})),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 1, 2, 3, 4, 5, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:d.t("sch_periodWeekdays")}),t&&(e.period.days===1||e.period.weeks)&&M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,width:150}},[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:`specific_${i}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:e.period.dows.includes(i.toString()),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state.schedule));let n;try{n=JSON.parse(o.period.dows)}catch{n=[]}r.target.checked&&!n.includes(i)?n.push(i):!r.target.checked&&n.includes(i)&&n.splice(n.indexOf(i),1),n.sort((a,c)=>a-c),o.period.dows=JSON.stringify(n),o.period.days&&(o.period.days=1),this.onChange(o)}}),label:d.t(en[i])}))))]}getPeriodSettingsDaily(){if(!this.state.schedule.period.days)return null;const e=this.state.schedule;return[M.createElement("div",{key:"every_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days===1&&!e.period.dows,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=1,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEveryDay")})),M.createElement("div",{key:"everyN_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=2,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.days>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.days,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=parseInt(t.target.value,10),i.period.dows="",this.onChange(i)}}),M.createElement("span",{key:"span",style:{paddingRight:10}},d.t("sch_periodDay"))])]}getPeriodSettingsWeekly(){if(!this.state.schedule.period.weeks)return null;const e=this.state.schedule;return[M.createElement("div",{key:"radios",style:{display:"inline-block",verticalAlign:"top"}},M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=1,this.onChange(t)}}),label:d.t("sch_periodEveryWeek")})),M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.weeks>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.weeks,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement("span",{key:"text"},d.t("sch_periodWeek"))]))]}getPeriodSettingsDates(){if(!this.state.schedule.period.dates)return null;const e=this.state.schedule,t=[];for(let r=1;r<=31;r++)t.push(r);const i=JSON.parse(e.period.dates);return M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,maxWidth:620}},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:i.length===31,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[];for(let n=1;n<=31;n++)o.push(n);r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:d.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!i.length,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.dates="[]",this.onChange(r)}}),label:d.t("sch_no_one")}),i.length!==31&&!!i.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[],n=JSON.parse(r.period.dates);for(let a=1;a<=31;a++)n.includes(a)||o.push(a);o.sort((a,c)=>a-c),r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:d.t("sch_invert")}),M.createElement("div",null),t.map(r=>M.createElement(j.FormControlLabel,{key:`date_${r}`,style:r?E.inputDateDay:{...E.inputDateDay,opacity:0,cursor:"default",userSelect:"none",pointerEvents:"none"},control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:JSON.parse(e.period.dates).includes(r),onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.dates)}catch{a=[]}o.target.checked&&!a.includes(r)?a.push(r):!o.target.checked&&a.includes(r)&&a.splice(a.indexOf(r),1),a.sort((c,l)=>c-l),n.period.dates=JSON.stringify(a),this.onChange(n)}}),label:r<10?[M.createElement("span",{key:"0",style:{opacity:0}},"0"),M.createElement("span",{key:"num"},r)]:r})))}getPeriodSettingsMonthly(){if(!this.state.schedule.period.months)return null;const e=this.state.schedule,t=typeof e.period.months=="string"?JSON.parse(e.period.months):[];return[M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months===1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,this.onChange(e)}}),label:d.t("sch_periodEveryMonth")})),M.createElement("div",{key:"everyN"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months>1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=2,this.onChange(i)}}),label:d.t("sch_periodEvery")}),typeof e.period.months=="number"&&e.period.months>1&&[M.createElement(j.Input,{key:"input",value:e.period.months,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.months=parseInt(i.target.value,10),r.period.months<1&&(r.period.months=1),this.onChange(r)}}),M.createElement("span",{key:"text"},d.t("sch_periodMonth"))]),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="string",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[1,2,3,4,5,6,7,8,9,10,11,12]",this.onChange(i)}}),label:d.t("sch_periodSpecificMonths")}),typeof e.period.months=="string"&&M.createElement(j.FormGroup,{row:!0,style:E.inputGroup},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:t.length===12,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[];for(let o=1;o<=12;o++)r.push(o);i.period.months=JSON.stringify(r),this.onChange(i)}}),label:d.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!t.length,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[]",this.onChange(i)}}),label:d.t("sch_no_one")}),t.length!==12&&!!t.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[],o=JSON.parse(i.period.months);for(let n=1;n<=12;n++)o.includes(n)||r.push(n);r.sort((n,a)=>n-a),i.period.months=JSON.stringify(r),this.onChange(i)}}),label:d.t("sch_invert")}),M.createElement("div",null),zr.map((i,r)=>M.createElement(j.FormControlLabel,{key:`month_${r}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:typeof e.period.months=="string"?JSON.parse(e.period.months).includes(r+1):e.period.months===r,onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.months)}catch{a=[]}o.target.checked&&!a.includes(r+1)?a.push(r+1):!o.target.checked&&a.includes(r+1)&&a.splice(a.indexOf(r+1),1),a.sort((c,l)=>c-l),n.period.months=JSON.stringify(a),this.onChange(n)}}),label:d.t(i)}))))]}getPeriodSettingsYearly(){if(!this.state.schedule.period.years)return null;const e=this.state.schedule;return[M.createElement("div",{key:"year"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=1,this.onChange(t)}}),label:d.t("sch_periodEveryYear")})),M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.years>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.years,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=parseInt(t.target.value,10),i.period.years<1&&(i.period.years=1),this.onChange(i)}}),M.createElement("span",{key:"text"},d.t("sch_periodYear"))])]}static now2string(e){const t=new Date;return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),e&&(t.setDate(t.getDate()+2),t.setMilliseconds(t.getMilliseconds()-1)),`${gt(t.getDate())}.${gt(t.getMonth()+1)}.${gt(t.getFullYear())}`}static string2date(e){let t=e.split(".");return t.length===1?(t=e.split("-"),new Date(parseInt(t[0],10),parseInt(t[1],10)-1,parseInt(t[2],10))):new Date(parseInt(t[2],10),parseInt(t[1],10)-1,parseInt(t[0],10))}getValidSettings(){const e=this.state.schedule;return M.createElement("div",{style:E.rowDiv},M.createElement("div",{style:{...E.modeDiv,verticalAlign:"middle"}},M.createElement("span",{style:{fontWeight:"bold",paddingRight:10}},d.t("sch_valid")),M.createElement("span",null,d.t("sch_validFrom"))),M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",inputRef:this.refFrom,defaultValue:sn(e.valid.from),type:"date",onChange:t=>{this.timerFrom&&clearTimeout(this.timerFrom),this.refFrom.current&&(this.refFrom.current.style.background="#ff000030"),this.timerFrom=setTimeout(i=>{this.timerFrom=null,this.refFrom.current&&(this.refFrom.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=de.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.from=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.valid.to,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.valid.to=t.valid.to?"":de.now2string(!0),this.onChange(t)}}),label:d.t("sch_validTo")}),!!e.valid.to&&M.createElement(j.TextField,{variant:"standard",inputRef:this.refTo,style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",type:"date",defaultValue:sn(e.valid.to),onChange:t=>{this.timerTo&&clearTimeout(this.timerTo),this.refTo.current&&(this.refTo.current.style.background="#ff000030"),this.timerTo=setTimeout(i=>{this.timerTo=null,this.refTo.current&&(this.refTo.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=de.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.to=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}render(){return M.createElement("div",{style:{height:"calc(100% - 48px)",width:"100%",overflow:"hidden"}},M.createElement("div",null,this.state.desc),M.createElement("div",{style:E.scrollWindow},M.createElement("h5",null,d.t("sch_time")),this.getTimePeriodElements(),this.getTimeExactElements(),de.getDivider(),M.createElement("h5",null,d.t("sch_period")),this.getPeriodModes(),!this.state.schedule.period.once&&de.getDivider(),!this.state.schedule.period.once&&this.getValidSettings()))}}const wr={different:{opacity:.5},icon:{width:16,height:16,marginRight:8}};class X3e extends x.Component{wordDifferent;timeout=null;constructor(e){super(e),e.different&&(this.wordDifferent=e.t("ra___different__"));let t;Array.isArray(e.list)?t=e.list.filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}):t=Object.values(e.list).filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}),e.different&&e.value===e.different&&t.unshift({value:e.different,name:this.wordDifferent||""}),e.allowNone&&t.unshift({value:"",name:d.t("ra_none")}),this.state={list:t}}render(){this.props.allowNone&&!this.state.list.find(r=>r.value==="")?this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list));r.unshift({value:"",name:d.t("ra_none")}),this.setState({list:r})},100):!this.props.allowNone&&this.state.list.find(r=>r.value==="")&&(this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list)),o=this.state.list.findIndex(n=>n.value==="");r.splice(o,1),this.setState({list:r})},100));const e=this.state.list.find(r=>r.value===this.props.value||this.props.removePrefix&&r.value.replace(this.props.removePrefix,"")===this.props.value),t=this.props.value===this.props.different?{}:{color:(e==null?void 0:e.color)||void 0,backgroundColor:O.getInvertedColor((e==null?void 0:e.color)||"",this.props.themeType)};this.props.dense&&this.props.style&&Object.assign(t,this.props.style);const i=M.createElement(j.Select,{variant:"standard",disabled:this.props.disabled,value:this.props.value,slotProps:{input:this.props.inputProps},renderValue:()=>M.createElement("span",null,e!=null&&e.icon?M.createElement(me,{src:e==null?void 0:e.icon,style:wr.icon}):null,e==null?void 0:e.name),sx:{"&.MuiSelect-root":this.props.value===this.props.different?wr.different:{}},classes:{root:this.props.dense?this.props.className:""},style:t,onChange:r=>{if(this.props.different&&r.target.value!==this.props.different){let o=null;for(let n=0;nthis.props.onChange(r.target.value));return}}this.props.onChange(this.props.removePrefix?r.target.value.replace(this.props.removePrefix,""):r.target.value)}},this.state.list.map(r=>M.createElement(j.MenuItem,{style:this.props.different&&r.value===this.props.different?wr.different:{color:r.color||void 0,backgroundColor:O.getInvertedColor(r.color||"",this.props.themeType)},key:r.value,value:r.value},r.icon?M.createElement(me,{src:r.icon,style:wr.icon}):null,r.name)));return this.props.dense?i:M.createElement(j.FormControl,{variant:"standard",fullWidth:!!this.props.fullWidth,style:this.props.style,className:this.props.className},M.createElement(j.InputLabel,null,this.props.label),i)}}class K3e extends x.Component{resizerRefTable;resizerActiveIndex;resizerActiveDiv;resizerCurrentWidths;widthFilled=!1;installTimeout=null;resizerMin=0;resizerMinNext=0;resizerPosition=0;resizerOldWidth=0;resizerOldWidthNext=0;constructor(e){super(e),this.resizerRefTable=M.createRef(),this.resizerActiveIndex=null,this.resizerActiveDiv=null,this.resizerCurrentWidths=[]}componentDidMount(){this.resizerInstall()}componentWillUnmount(){this.resizerUninstall()}resizerInstall(){if(this.resizerRefTable.current&&!this.resizerRefTable.current._installed){this.resizerRefTable.current._installed=!0;const e=this.resizerRefTable.current.querySelectorAll("th"),t=(window._localStorage||window.localStorage).getItem(`App.${this.props.name||"history"}.table`);if(this.widthFilled=!1,t)try{this.resizerCurrentWidths=JSON.parse(t),this.widthFilled=!0}catch{}if(this.widthFilled)if(this.resizerCurrentWidths.length!==e.length)this.resizerCurrentWidths=[],this.widthFilled=!1;else{const i=this.resizerRefTable.current.offsetWidth;let r=0;for(let o=0;o20&&(this.resizerCurrentWidths=[],this.widthFilled=!1)}for(let i=0;i{this.installTimeout=null,this.resizerInstall()},100)}resizerReset=()=>{for(let e=0;e{if(this.resizerActiveDiv&&this.resizerActiveIndex!==null){const t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition;(!this.resizerMin||t>this.resizerMin)&&(!this.resizerMinNext||i>this.resizerMinNext)&&(this.resizerCurrentWidths[this.resizerActiveIndex]=t,this.resizerCurrentWidths[this.resizerActiveIndex+1]=i,this.resizerApplyWidths())}};resizerMouseUp=()=>{(window._localStorage||window.localStorage).setItem(`App.${this.props.name||"history"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveIndex=null,this.resizerActiveDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{var t,i,r,o;if(this.resizerActiveIndex===null||this.resizerActiveIndex===void 0){console.log(`Mouse down ${(t=e.target)==null?void 0:t.dataset.index}`),this.resizerActiveIndex=parseInt(((i=e.target)==null?void 0:i.dataset.index)||"0",10),this.resizerActiveDiv=e.target,this.resizerMin=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex]:0,this.resizerMinNext=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex+1]:0,this.resizerPosition=e.clientX;let n;this.resizerCurrentWidths[this.resizerActiveIndex]==="auto"&&(n=(r=this.resizerRefTable.current)==null?void 0:r.querySelectorAll("th"),n&&(this.resizerCurrentWidths[this.resizerActiveIndex]=n[this.resizerActiveIndex].offsetWidth)),this.resizerCurrentWidths[this.resizerActiveIndex+1]==="auto"&&(n=n||((o=this.resizerRefTable.current)==null?void 0:o.querySelectorAll("th")),n&&(this.resizerCurrentWidths[this.resizerActiveIndex+1]=n[this.resizerActiveIndex+1].offsetWidth)),this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveIndex],this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerActiveIndex+1],window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};render(){if(this.props.ready===!1)return M.createElement(j.Skeleton,null);const e={gridTemplateColumns:this.resizerApplyWidths()};return M.createElement(j.Table,{stickyHeader:this.props.stickyHeader,size:this.props.size||"small",className:this.props.className,sx:this.props.sx,ref:this.resizerRefTable,style:{...this.props.style||void 0,...e}},this.props.children)}}const rn={div:{borderRadius:3,padding:"0 3px",lineHeight:"20px",whiteSpace:"nowrap",overflow:"hidden",display:"flex",alignItems:"center"},icon:{width:16,height:16,marginRight:8,verticalAlign:"middle"},text:{display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}};function q3e(s){var o,n,a,c,l,N,u,L,g;const e=s.value;let t;const i=s.removePrefix||"";if(typeof e=="string"){const y=s.list;if(y)if(Array.isArray(y)){const T=y.find(D=>(D==null?void 0:D._id)===i+e);T?t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((o=T.common)==null?void 0:o.icon),color:s.color||((n=T.common)==null?void 0:n.color)}:t={name:e,value:i+e}}else if(y[i+e]){const T=y[i+e];t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((a=T.common)==null?void 0:a.icon),color:s.color||((c=T.common)==null?void 0:c.color)}}else t={name:e,value:i+e,icon:s.icon,color:s.color};else t={name:e,value:i+e,icon:s.icon,color:s.color}}else if(!e||typeof e!="object")t={name:"",value:"",icon:s.icon,color:s.color};else{const y=e;t={name:O.getObjectNameFromObj(y,s.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:y._id,icon:s.icon||((l=y.common)==null?void 0:l.icon),color:s.color||((N=y.common)==null?void 0:N.color)}}const r=t!=null&&t.color?{border:`1px solid ${O.invertColor(t==null?void 0:t.color)}`,color:O.getInvertedColor(t==null?void 0:t.color,s.themeType||"light",!0)||void 0,backgroundColor:t==null?void 0:t.color}:{};return M.createElement("div",{style:{...s.style||void 0,...rn.div,...r||void 0},className:O.clsx(s.className,(u=s.moreClasses)==null?void 0:u.root),title:s.title||t.value},t!=null&&t.icon?M.createElement(me,{src:t==null?void 0:t.icon,className:(L=s.moreClasses)==null?void 0:L.icon,style:rn.icon}):null,M.createElement("div",{style:rn.text,className:(g=s.moreClasses)==null?void 0:g.text},t==null?void 0:t.name))}function e5e({themeName:s,toggleTheme:e,t,className:i,style:r,size:o}){return M.createElement("div",{className:i||void 0,style:r||void 0},M.createElement(j.Tooltip,{title:t("ra_Change color theme"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>e(),size:o||"medium"},s==="dark"&&M.createElement(VL,{className:i}),s==="blue"&&M.createElement(ZL,{className:i}),s==="colored"&&M.createElement(ca,{className:i}),s!=="dark"&&s!=="blue"&&s!=="colored"&&M.createElement(XL,{className:i}))))}function po(){return(po=Object.assign||function(s){for(var e=1;e=0||(r[t]=s[t]);return r}function Hn(s){var e=x.useRef(s),t=x.useRef(function(i){e.current&&e.current(i)});return e.current=s,t.current}var bi=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),s>t?t:s0:D.buttons>0)&&r.current?o(Wl(r.current,D,a.current)):T(!1)},y=function(){return T(!1)};function T(D){var z=c.current,p=Vn(r.current),C=D?p.addEventListener:p.removeEventListener;C(z?"touchmove":"mousemove",g),C(z?"touchend":"mouseup",y)}return[function(D){var z=D.nativeEvent,p=r.current;if(p&&(Bl(z),!function(m,I){return I&&!fi(m)}(z,c.current)&&p)){if(fi(z)){c.current=!0;var C=z.changedTouches||[];C.length&&(a.current=C[0].identifier)}p.focus(),o(Wl(p,z,a.current)),T(!0)}},function(D){var z=D.which||D.keyCode;z<37||z>40||(D.preventDefault(),n({left:z===39?.05:z===37?-.05:0,top:z===40?.05:z===38?-.05:0}))},T]},[n,o]),N=l[0],u=l[1],L=l[2];return x.useEffect(function(){return L},[L]),M.createElement("div",po({},i,{onTouchStart:N,onMouseDown:N,className:"react-colorful__interactive",ref:r,onKeyDown:u,tabIndex:0,role:"slider"}))}),hM=function(s){return s.filter(Boolean).join(" ")},P4=function(s){var e=s.color,t=s.left,i=s.top,r=i===void 0?.5:i,o=hM(["react-colorful__pointer",s.className]);return M.createElement("div",{className:o,style:{top:100*r+"%",left:100*t+"%"}},M.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},he=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*s)/t},LSe=function(s){return DSe(Zn(s))},Zn=function(s){return s[0]==="#"&&(s=s.substring(1)),s.length<6?{r:parseInt(s[0]+s[0],16),g:parseInt(s[1]+s[1],16),b:parseInt(s[2]+s[2],16),a:s.length===4?he(parseInt(s[3]+s[3],16)/255,2):1}:{r:parseInt(s.substring(0,2),16),g:parseInt(s.substring(2,4),16),b:parseInt(s.substring(4,6),16),a:s.length===8?he(parseInt(s.substring(6,8),16)/255,2):1}},gSe=function(s){return TSe(ySe(s))},jSe=function(s){var e=s.s,t=s.v,i=s.a,r=(200-e)*t/100;return{h:he(s.h),s:he(r>0&&r<200?e*t/100/(r<=100?r:200-r)*100:0),l:he(r/2),a:he(i,2)}},Xn=function(s){var e=jSe(s);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},ySe=function(s){var e=s.h,t=s.s,i=s.v,r=s.a;e=e/360*6,t/=100,i/=100;var o=Math.floor(e),n=i*(1-t),a=i*(1-(e-o)*t),c=i*(1-(1-e+o)*t),l=o%6;return{r:he(255*[i,a,n,n,c,i][l]),g:he(255*[c,i,i,a,n,n][l]),b:he(255*[n,n,c,i,i,a][l]),a:he(r,2)}},Cr=function(s){var e=s.toString(16);return e.length<2?"0"+e:e},TSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=r<1?Cr(he(255*r)):"";return"#"+Cr(e)+Cr(t)+Cr(i)+o},DSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=Math.max(e,t,i),n=o-Math.min(e,t,i),a=n?o===e?(t-i)/n:o===t?2+(i-e)/n:4+(e-t)/n:0;return{h:he(60*(a<0?a+6:a)),s:he(o?n/o*100:0),v:he(o/255*100),a:r}},dSe=M.memo(function(s){var e=s.hue,t=s.onChange,i=hM(["react-colorful__hue",s.className]);return M.createElement("div",{className:i},M.createElement($4,{onMove:function(r){t({h:360*r.left})},onKey:function(r){t({h:bi(e+360*r.left,0,360)})},"aria-label":"Hue","aria-valuenow":he(e),"aria-valuemax":"360","aria-valuemin":"0"},M.createElement(P4,{className:"react-colorful__hue-pointer",left:e/360,color:Xn({h:e,s:100,v:100,a:1})})))}),hSe=M.memo(function(s){var e=s.hsva,t=s.onChange,i={backgroundColor:Xn({h:e.h,s:100,v:100,a:1})};return M.createElement("div",{className:"react-colorful__saturation",style:i},M.createElement($4,{onMove:function(r){t({s:100*r.left,v:100-100*r.top})},onKey:function(r){t({s:bi(e.s+100*r.left,0,100),v:bi(e.v-100*r.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+he(e.s)+"%, Brightness "+he(e.v)+"%"},M.createElement(P4,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:Xn(e)})))}),W4=function(s,e){if(s===e)return!0;for(var t in s)if(s[t]!==e[t])return!1;return!0},zSe=function(s,e){return s.toLowerCase()===e.toLowerCase()||W4(Zn(s),Zn(e))};function wSe(s,e,t){var i=Hn(t),r=x.useState(function(){return s.toHsva(e)}),o=r[0],n=r[1],a=x.useRef({color:e,hsva:o});x.useEffect(function(){if(!s.equal(e,a.current.color)){var l=s.toHsva(e);a.current={hsva:l,color:e},n(l)}},[e,s]),x.useEffect(function(){var l;W4(o,a.current.hsva)||s.equal(l=s.fromHsva(o),a.current.color)||(a.current={hsva:o,color:l},i(l))},[o,s,i]);var c=x.useCallback(function(l){n(function(N){return Object.assign({},N,l)})},[]);return[o,c]}var CSe=typeof window<"u"?x.useLayoutEffect:x.useEffect,ISe=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Jl=new Map,pSe=function(s){CSe(function(){var e=s.current?s.current.ownerDocument:document;if(e!==void 0&&!Jl.has(e)){var t=e.createElement("style");t.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Jl.set(e,t);var i=ISe();i&&t.setAttribute("nonce",i),e.head.appendChild(t)}},[])},ASe=function(s){var e=s.className,t=s.colorModel,i=s.color,r=i===void 0?t.defaultColor:i,o=s.onChange,n=U4(s,["className","colorModel","color","onChange"]),a=x.useRef(null);pSe(a);var c=wSe(t,r,o),l=c[0],N=c[1],u=hM(["react-colorful",e]);return M.createElement("div",po({},n,{ref:a,className:u}),M.createElement(hSe,{hsva:l,onChange:N}),M.createElement(dSe,{hue:l.h,onChange:N,className:"react-colorful__last-control"}))},mSe={defaultColor:"000",toHsva:LSe,fromHsva:function(s){return gSe({h:s.h,s:s.s,v:s.v,a:1})},equal:zSe},OSe=function(s){return M.createElement(ASe,po({},s,{colorModel:mSe}))};class ESe extends x.Component{dialogName;filters;filterFunc;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectID.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters||{}});let i=this.props.selected||[];if(Array.isArray(i)||(i=[i]),i=i.filter(r=>r),e.filterFunc)if(typeof e.filterFunc=="string")try{this.filterFunc=new Function("obj",e.filterFunc)}catch{console.error(`Cannot parse filter function: "obj => ${e.filterFunc}"`),this.filterFunc=void 0}else this.filterFunc=e.filterFunc;this.state={selected:i,name:"",selectionBlocked:!1}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}render(){let e;return this.state.name||this.state.selected.length?this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},(this.state.name||this.state.selected[0])+(this.state.name?` [${this.state.selected[0]}]`:""))]:e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},d.t("%s items",this.state.selected.length.toString()))]:e=this.props.title||d.t("ra_Please select object ID..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{height:"95%",p:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)"}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectid_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectid_title",style:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}},e),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden",padding:"8px 4px"}},M.createElement(NSe,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,dateFormat:this.props.dateFormat,defaultFilters:this.filters,dialogName:this.dialogName,isFloatComma:this.props.isFloatComma,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,expertMode:this.props.expertMode,columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types?Array.isArray(this.props.types)?this.props.types:[this.props.types]:["state"],root:this.props.root,t:d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,customFilter:this.props.customFilter,allowNonObjects:this.props.allowNonObjects,onFilterChanged:t=>{this.filters=t,(window._localStorage||window.localStorage).setItem(this.dialogName,JSON.stringify(t))},onSelect:async(t,i,r)=>{let o;if(Array.isArray(t)?o=t:o=[t],JSON.stringify(o)!==JSON.stringify(this.state.selected)){let n=!0;if(this.props.onSelectConfirm){const a={};for(const c of o)try{a[c]=await this.props.socket.getObject(c)}catch{}n=await this.props.onSelectConfirm(o,a)}this.setState({selected:o,name:i,selectionBlocked:!n},()=>r&&this.handleOk())}else r&&this.handleOk()},filterFunc:this.filterFunc,title:"",classes:{}})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_selectid_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length||this.state.selectionBlocked,color:"primary"},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_selectid_cancel_${this.props.dialogName||""}`,color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}function St(s,e,t){if(typeof e=="string"&&(e=e.split(".")),!s)return null;if(e.length===1)return t&&t[s[e[0]]]?t[s[e[0]]]:s[e[0]];const i=e.shift();return St(s[i],e)}function B4(s,e,t){if(typeof e=="string"&&(e=e.split(".")),e.length===1)return s[e[0]]=t;const i=e.shift();return(s[i]===null||s[i]===void 0)&&(s[i]={}),B4(s[i],e,t)}const W={tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:s=>(s.palette.mode==="dark","#888"),color:s=>s.palette.mode==="dark"?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},fieldEditWithButton:{width:"calc(100% - 33px)",display:"inline-block"},fieldEdit:{width:"100%",display:"inline-block",lineHeight:"50px",verticalAlign:"middle"},fieldButton:{width:30,display:"inline-block"},colorDialog:{overflow:"hidden",padding:15},subText:{fontSize:10,fontStyle:"italic"},glow:{animation:"glow 0.2s 2 alternate"}};function Rl(s,e,t,i){const r=St(s,t,i)||"",o=St(e,t,i)||"";return or?1:0}function fSe(s,e,t){return s==="desc"?(i,r)=>Rl(i,r,e,t):(i,r)=>-Rl(i,r,e,t)}function xSe(s,e){const t=s.map((i,r)=>({e:i,i:r}));return t.sort((i,r)=>{const o=e(i.e,r.e);return o||i.i-r.i}),t.map(i=>i.e)}class Kn extends x.Component{selectCallback=null;updateTimeout=null;constructor(e){super(e);let t=(window._localStorage||window.localStorage).getItem(this.props.name||"iob-table")||"[]";try{t=JSON.parse(t)||[]}catch{t=[]}Array.isArray(t)||(t=[]),this.state={opened:t,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:this.props.columns[0].field,showSelectColor:!1}}static getDerivedStateFromProps(e,t){if(e.glowOnChange){const i=[];let r=0;return e.data&&t.data&&e.data.forEach(o=>{var a;r++;const n=(a=t.data)==null?void 0:a.find(c=>c.id===o.id);n?JSON.stringify(n)!==JSON.stringify(o)&&i.push(o.id):i.push(o.id)}),i.length&&i.length!==r?{data:e.data,update:i}:{data:e.data}}return{data:e.data}}renderCellEdit(e,t){let i=St(e,t.field);return Array.isArray(i)&&(i=i[0]),t.lookup?this.renderCellEditSelect(t,i):t.editComponent?this.renderCellEditCustom(t,i,e):t.type==="boolean"||!t.type&&typeof i=="boolean"?this.renderCellEditBoolean(t,i):t.type==="color"?this.renderCellEditColor(t,i):t.type==="oid"?this.renderCellEditObjectID(t,i):t.type==="numeric"?this.renderCellEditNumber(t,i):this.renderCellEditString(t,i)}onChange(e,t,i){const r=this.state.editData?{...this.state.editData}:{};i===t?delete r[e.field]:r[e.field]=i,this.setState({editData:r})}renderCellEditSelect(e,t){return M.createElement(j.Select,{variant:"standard",onChange:i=>this.onChange(e,t,i.target.value),value:this.state.editData&&this.state.editData[e.field]||t},e.lookup&&Object.keys(e.lookup).map((i,r)=>{var o;return M.createElement(j.MenuItem,{key:r,value:i},(o=e.lookup)==null?void 0:o[i])}))}renderCellEditString(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditNumber(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,type:"number",fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditCustom(e,t,i){const r=e.editComponent;return this.state.editData&&this.state.editData[e.field]!==void 0&&(t=this.state.editData[e.field],i=JSON.parse(JSON.stringify(i)),i[e.field]=t),r?M.createElement(r,{value:t,rowData:i,onChange:o=>this.onChange(e,t,o)}):null}renderCellEditBoolean(e,t){return M.createElement(j.Checkbox,{checked:this.state.editData&&this.state.editData[e.field]!==void 0?!!this.state.editData[e.field]:!!t,onChange:i=>this.onChange(e,!!t,i.target.checked),inputProps:{"aria-label":"checkbox"}})}renderSelectColorDialog(){return M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":W.root,"& .MuiPaper-paper":W.paper},onClose:()=>{this.selectCallback=null,this.setState({showSelectColor:!1})},open:this.state.showSelectColor},M.createElement(OSe,{color:this.state.selectIdValue,onChange:e=>this.setState({selectIdValue:e},()=>{this.selectCallback&&this.selectCallback(e)})}))}renderCellEditColor(e,t){const i=this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t;return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:i,inputProps:{style:{backgroundColor:i,color:O.isUseBright(i)?"#FFF":"#000"}},onChange:r=>this.onChange(e,!!t,r.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=r=>this.onChange(e,t,r),this.setState({showSelectColor:!0,selectIdValue:t})},size:"large"},M.createElement(eg,null)))}renderSelectIdDialog(){return this.state.showSelectId&&this.props.socket?M.createElement(ESe,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,selected:this.state.selectIdValue,onClose:()=>this.setState({showSelectId:!1}),onOk:e=>{this.setState({showSelectId:!1,selectIdValue:null});const t=Array.isArray(e)?e[0]:e;t&&this.selectCallback&&(this.selectCallback&&this.selectCallback(t),this.selectCallback=null)}}):null}renderCellEditObjectID(e,t){return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=i=>this.onChange(e,t,i),this.setState({showSelectId:!0,selectIdValue:t})},size:"large"},M.createElement(Eg,null)))}static renderCellNonEdit(e,t){let i=St(e,t.field,t.lookup);return Array.isArray(i)&&(i=i[0]),t.type==="boolean"?M.createElement(j.Checkbox,{checked:!!i,disabled:!0,inputProps:{"aria-label":"checkbox"}}):i}renderCell(e,t,i,r){return this.state.editMode===r&&t.editable!=="never"&&t.editable!==!1?M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},this.renderCellEdit(e,t)):M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},Kn.renderCellNonEdit(e,t))}static renderCellWithSubField(e,t){const i=St(e,t.field,t.lookup);if(t.subField){const r=St(e,t.subField,t.subLookup);return M.createElement("div",null,M.createElement("div",{style:W.mainText},i),M.createElement("div",{style:{...W.subText,...t.subStyle||void 0}},r))}return M.createElement("div",null,M.createElement("div",{style:W.mainText},i))}renderLine(e,t){const i=this.props.levelShift===void 0?24:this.props.levelShift;t=t||0;const r=this.props.data.indexOf(e);if(!e||!t&&e.parentId||t&&!e.parentId)return null;const o=this.state.opened.includes(e.id),n=this.props.data.filter(c=>c.parentId===e.id),a=M.createElement(j.TableRow,{key:e.id,className:`table-row-${(e.id||"").toString().replace(/[.$]/g,"_")}`,style:{...this.state.update&&this.state.update.includes(e.id)&&W.glow||void 0,...W.row,...t?W.rowSecondary:void 0,...!t&&n.length?W.rowMainWithChildren:void 0,...!t&&!n.length?W.rowMainWithoutChildren:void 0,...this.state.editMode!==!1&&this.state.editMode!==r?W.rowNoEdit:void 0,...this.state.deleteMode!==!1&&this.state.deleteMode!==r?W.rowNoEdit:void 0}},M.createElement(j.TableCell,{style:{...W.cell,...W.cellExpand,...t?W.cellSecondary:void 0}},n.length?M.createElement(j.IconButton,{onClick:()=>{const c=[...this.state.opened],l=c.indexOf(e.id);l===-1?(c.push(e.id),c.sort()):c.splice(l,1),(window._localStorage||window.localStorage).setItem(this.props.name||"iob-table",JSON.stringify(c)),this.setState({opened:c})},size:"small"},o?M.createElement(ag,null):M.createElement(dg,null)):null),M.createElement(j.TableCell,{scope:"row",style:{...W.cell,...t?W.cellSecondary:void 0,...this.props.columns[0].cellStyle,paddingLeft:i*t}},this.props.columns[0].subField?Kn.renderCellWithSubField(e,this.props.columns[0]):St(e,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map((c,l)=>!l&&!c.hidden?null:this.renderCell(e,c,t,r)),this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>{if(this.state.editMode!==!1){const c=JSON.parse(JSON.stringify(e));this.state.editData&&Object.keys(this.state.editData).forEach(l=>{var N;return B4(c,l,(N=this.state.editData)==null?void 0:N[l])}),this.setState({editMode:!1},()=>this.props.onUpdate&&this.props.onUpdate(c,e))}else this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e))},size:"large"},M.createElement(Oe,null)):M.createElement(j.IconButton,{disabled:this.state.editMode!==!1,onClick:()=>this.setState({editMode:r,editData:null}),size:"large"},M.createElement(mi,null))):null,this.props.onDelete&&!this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e)),size:"large"},M.createElement(Oe,null)):null):null,this.props.onUpdate||this.props.onDelete?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{onClick:()=>this.setState({editMode:!1,deleteMode:!1}),size:"large"},M.createElement(Ne,null)):this.props.onDelete?M.createElement(j.IconButton,{disabled:this.state.deleteMode!==!1,onClick:()=>this.setState({deleteMode:r}),size:"large"},M.createElement(nt,null)):null):null);if(!t&&o){const c=n.map(l=>this.renderLine(l,t+1));return c.unshift(a),c}return a}handleRequestSort(e){const t=this.state.orderBy===e&&this.state.order==="asc";this.setState({order:t?"desc":"asc",orderBy:e})}renderHead(){return M.createElement(j.TableHead,null,M.createElement(j.TableRow,{key:"headerRow"},M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellExpand)}),M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${this.props.columns[0].field.replace(/\./g,"_")}`]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:()=>this.handleRequestSort(this.props.columns[0].field)},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map((e,t)=>!t&&!e.hidden?null:M.createElement(j.TableCell,{key:e.field,sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${e.field.replace(/\./g,"_")}`]),style:e.headerStyle||e.cellStyle,component:"th"},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===e.field,direction:this.state.orderBy===e.field?this.state.order:"asc",onClick:()=>this.handleRequestSort(e.field)},e.title||e.field,this.state.orderBy===e.field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null))),this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)},this.props.noAdd?null:M.createElement(j.Fab,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:()=>this.props.onUpdate&&this.props.onUpdate(!0)},M.createElement(un,null))):null,this.props.onDelete||this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)}):null))}render(){const e=this.props.columns.find(t=>t.field===this.state.orderBy);if(e){const t=e.lookup,i=xSe(this.props.data,fSe(this.state.order,this.state.orderBy,t));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({update:null})},500)),M.createElement("div",{style:W.tableContainer,className:this.props.className},M.createElement(j.Table,{style:W.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),M.createElement(j.TableBody,null,i.map(r=>this.renderLine(r)))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}return null}}/*! - * Cropper.js v1.6.2 - * https://fengyuanchen.github.io/cropperjs - * - * Copyright 2015-present Chen Fengyuan - * Released under the MIT license - * - * Date: 2024-04-21T07:43:05.335Z - */function Fl(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(s,r).enumerable})),t.push.apply(t,i)}return t}function J4(s){for(var e=1;es.length)&&(e=s.length);for(var t=0,i=new Array(e);t
',VSe=Number.isNaN||ct.isNaN;function V(s){return typeof s=="number"&&!VSe(s)}var oN=function(e){return e>0&&e<1/0};function on(s){return typeof s>"u"}function is(s){return qn(s)==="object"&&s!==null}var ZSe=Object.prototype.hasOwnProperty;function $s(s){if(!is(s))return!1;try{var e=s.constructor,t=e.prototype;return e&&t&&ZSe.call(t,"isPrototypeOf")}catch{return!1}}function Se(s){return typeof s=="function"}var XSe=Array.prototype.slice;function eL(s){return Array.from?Array.from(s):XSe.call(s)}function je(s,e){return s&&Se(e)&&(Array.isArray(s)||V(s.length)?eL(s).forEach(function(t,i){e.call(s,t,i,s)}):is(s)&&Object.keys(s).forEach(function(t){e.call(s,s[t],t,s)})),s}var ue=Object.assign||function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&i.forEach(function(o){is(o)&&Object.keys(o).forEach(function(n){e[n]=o[n]})}),e},KSe=/\.\d*(?:0|9){12}\d*$/;function Bs(s){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return KSe.test(s)?Math.round(s*e)/e:s}var qSe=/^width|height|left|top|marginLeft|marginTop$/;function Yt(s,e){var t=s.style;je(e,function(i,r){qSe.test(r)&&V(i)&&(i="".concat(i,"px")),t[r]=i})}function e3e(s,e){return s.classList?s.classList.contains(e):s.className.indexOf(e)>-1}function ye(s,e){if(e){if(V(s.length)){je(s,function(i){ye(i,e)});return}if(s.classList){s.classList.add(e);return}var t=s.className.trim();t?t.indexOf(e)<0&&(s.className="".concat(t," ").concat(e)):s.className=e}}function Mt(s,e){if(e){if(V(s.length)){je(s,function(t){Mt(t,e)});return}if(s.classList){s.classList.remove(e);return}s.className.indexOf(e)>=0&&(s.className=s.className.replace(e,""))}}function Ps(s,e,t){if(e){if(V(s.length)){je(s,function(i){Ps(i,e,t)});return}t?ye(s,e):Mt(s,e)}}var t3e=/([a-z\d])([A-Z])/g;function pM(s){return s.replace(t3e,"$1-$2").toLowerCase()}function Ma(s,e){return is(s[e])?s[e]:s.dataset?s.dataset[e]:s.getAttribute("data-".concat(pM(e)))}function Ui(s,e,t){is(t)?s[e]=t:s.dataset?s.dataset[e]=t:s.setAttribute("data-".concat(pM(e)),t)}function s3e(s,e){if(is(s[e]))try{delete s[e]}catch{s[e]=void 0}else if(s.dataset)try{delete s.dataset[e]}catch{s.dataset[e]=void 0}else s.removeAttribute("data-".concat(pM(e)))}var tL=/\s\s*/,sL=function(){var s=!1;if(Ao){var e=!1,t=function(){},i=Object.defineProperty({},"once",{get:function(){return s=!0,e},set:function(o){e=o}});ct.addEventListener("test",t,i),ct.removeEventListener("test",t,i)}return s}();function Ve(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(tL).forEach(function(o){if(!sL){var n=s.listeners;n&&n[o]&&n[o][t]&&(r=n[o][t],delete n[o][t],Object.keys(n[o]).length===0&&delete n[o],Object.keys(n).length===0&&delete s.listeners)}s.removeEventListener(o,r,i)})}function We(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(tL).forEach(function(o){if(i.once&&!sL){var n=s.listeners,a=n===void 0?{}:n;r=function(){delete a[o][t],s.removeEventListener(o,r,i);for(var l=arguments.length,N=new Array(l),u=0;uMath.abs(t)&&(t=L)})}),t}function pr(s,e){var t=s.pageX,i=s.pageY,r={endX:t,endY:i};return e?r:J4({startX:t,startY:i},r)}function o3e(s){var e=0,t=0,i=0;return je(s,function(r){var o=r.startX,n=r.startY;e+=o,t+=n,i+=1}),e/=i,t/=i,{pageX:e,pageY:t}}function vt(s){var e=s.aspectRatio,t=s.height,i=s.width,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",o=oN(i),n=oN(t);if(o&&n){var a=t*e;r==="contain"&&a>i||r==="cover"&&a90?{width:c,height:a}:{width:a,height:c}}function a3e(s,e,t,i){var r=e.aspectRatio,o=e.naturalWidth,n=e.naturalHeight,a=e.rotate,c=a===void 0?0:a,l=e.scaleX,N=l===void 0?1:l,u=e.scaleY,L=u===void 0?1:u,g=t.aspectRatio,y=t.naturalWidth,T=t.naturalHeight,D=i.fillColor,z=D===void 0?"transparent":D,p=i.imageSmoothingEnabled,C=p===void 0?!0:p,m=i.imageSmoothingQuality,I=m===void 0?"low":m,h=i.maxWidth,A=h===void 0?1/0:h,S=i.maxHeight,f=S===void 0?1/0:S,P=i.minWidth,v=P===void 0?0:P,ee=i.minHeight,ae=ee===void 0?0:ee,J=document.createElement("canvas"),H=J.getContext("2d"),Te=vt({aspectRatio:g,width:A,height:f}),Fe=vt({aspectRatio:g,width:v,height:ae},"cover"),Ge=Math.min(Te.width,Math.max(Fe.width,y)),Ls=Math.min(Te.height,Math.max(Fe.height,T)),mo=vt({aspectRatio:r,width:A,height:f}),ai=vt({aspectRatio:r,width:v,height:ae},"cover"),Mi=Math.min(mo.width,Math.max(ai.width,o)),ci=Math.min(mo.height,Math.max(ai.height,n)),tr=[-Mi/2,-ci/2,Mi,ci];return J.width=Bs(Ge),J.height=Bs(Ls),H.fillStyle=z,H.fillRect(0,0,Ge,Ls),H.save(),H.translate(Ge/2,Ls/2),H.rotate(c*Math.PI/180),H.scale(N,L),H.imageSmoothingEnabled=C,H.imageSmoothingQuality=I,H.drawImage.apply(H,[s].concat(F4(tr.map(function(sr){return Math.floor(Bs(sr))})))),H.restore(),J}var rL=String.fromCharCode;function M3e(s,e,t){var i="";t+=e;for(var r=e;r0;)t.push(rL.apply(null,eL(r.subarray(0,i)))),r=r.subarray(i);return"data:".concat(e,";base64,").concat(btoa(t.join("")))}function N3e(s){var e=new DataView(s),t;try{var i,r,o;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var n=e.byteLength,a=2;a+1=8&&(o=l+u)}}}if(o){var L=e.getUint16(o,i),g,y;for(y=0;y=0?o:K4),height:Math.max(i.offsetHeight,n>=0?n:q4)};this.containerData=a,Yt(r,{width:a.width,height:a.height}),ye(e,ke),Mt(r,ke)},initCanvas:function(){var e=this.containerData,t=this.imageData,i=this.options.viewMode,r=Math.abs(t.rotate)%180===90,o=r?t.naturalHeight:t.naturalWidth,n=r?t.naturalWidth:t.naturalHeight,a=o/n,c=e.width,l=e.height;e.height*a>e.width?i===3?c=e.height*a:l=e.width/a:i===3?l=e.width/a:c=e.height*a;var N={aspectRatio:a,naturalWidth:o,naturalHeight:n,width:c,height:l};this.canvasData=N,this.limited=i===1||i===2,this.limitCanvas(!0,!0),N.width=Math.min(Math.max(N.width,N.minWidth),N.maxWidth),N.height=Math.min(Math.max(N.height,N.minHeight),N.maxHeight),N.left=(e.width-N.width)/2,N.top=(e.height-N.height)/2,N.oldLeft=N.left,N.oldTop=N.top,this.initialCanvasData=ue({},N)},limitCanvas:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=i.viewMode,c=o.aspectRatio,l=this.cropped&&n;if(e){var N=Number(i.minCanvasWidth)||0,u=Number(i.minCanvasHeight)||0;a>1?(N=Math.max(N,r.width),u=Math.max(u,r.height),a===3&&(u*c>N?N=u*c:u=N/c)):a>0&&(N?N=Math.max(N,l?n.width:0):u?u=Math.max(u,l?n.height:0):l&&(N=n.width,u=n.height,u*c>N?N=u*c:u=N/c));var L=vt({aspectRatio:c,width:N,height:u});N=L.width,u=L.height,o.minWidth=N,o.minHeight=u,o.maxWidth=1/0,o.maxHeight=1/0}if(t)if(a>(l?0:1)){var g=r.width-o.width,y=r.height-o.height;o.minLeft=Math.min(0,g),o.minTop=Math.min(0,y),o.maxLeft=Math.max(0,g),o.maxTop=Math.max(0,y),l&&this.limited&&(o.minLeft=Math.min(n.left,n.left+(n.width-o.width)),o.minTop=Math.min(n.top,n.top+(n.height-o.height)),o.maxLeft=n.left,o.maxTop=n.top,a===2&&(o.width>=r.width&&(o.minLeft=Math.min(0,g),o.maxLeft=Math.max(0,g)),o.height>=r.height&&(o.minTop=Math.min(0,y),o.maxTop=Math.max(0,y))))}else o.minLeft=-o.width,o.minTop=-o.height,o.maxLeft=r.width,o.maxTop=r.height},renderCanvas:function(e,t){var i=this.canvasData,r=this.imageData;if(t){var o=n3e({width:r.naturalWidth*Math.abs(r.scaleX||1),height:r.naturalHeight*Math.abs(r.scaleY||1),degree:r.rotate||0}),n=o.width,a=o.height,c=i.width*(n/i.naturalWidth),l=i.height*(a/i.naturalHeight);i.left-=(c-i.width)/2,i.top-=(l-i.height)/2,i.width=c,i.height=l,i.aspectRatio=n/a,i.naturalWidth=n,i.naturalHeight=a,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heightt.width?o.height=o.width/i:o.width=o.height*i),this.cropBoxData=o,this.limitCropBox(!0,!0),o.width=Math.min(Math.max(o.width,o.minWidth),o.maxWidth),o.height=Math.min(Math.max(o.height,o.minHeight),o.maxHeight),o.width=Math.max(o.minWidth,o.width*r),o.height=Math.max(o.minHeight,o.height*r),o.left=t.left+(t.width-o.width)/2,o.top=t.top+(t.height-o.height)/2,o.oldLeft=o.left,o.oldTop=o.top,this.initialCropBoxData=ue({},o)},limitCropBox:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=this.limited,c=i.aspectRatio;if(e){var l=Number(i.minCropBoxWidth)||0,N=Number(i.minCropBoxHeight)||0,u=a?Math.min(r.width,o.width,o.width+o.left,r.width-o.left):r.width,L=a?Math.min(r.height,o.height,o.height+o.top,r.height-o.top):r.height;l=Math.min(l,r.width),N=Math.min(N,r.height),c&&(l&&N?N*c>l?N=l/c:l=N*c:l?N=l/c:N&&(l=N*c),L*c>u?L=u/c:u=L*c),n.minWidth=Math.min(l,u),n.minHeight=Math.min(N,L),n.maxWidth=u,n.maxHeight=L}t&&(a?(n.minLeft=Math.max(0,o.left),n.minTop=Math.max(0,o.top),n.maxLeft=Math.min(r.width,o.left+o.width)-n.width,n.maxTop=Math.min(r.height,o.top+o.height)-n.height):(n.minLeft=0,n.minTop=0,n.maxLeft=r.width-n.width,n.maxTop=r.height-n.height))},renderCropBox:function(){var e=this.options,t=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=t.width&&i.height>=t.height?H4:CM),Yt(this.cropBox,ue({width:i.width,height:i.height},xi({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Js(this.element,ia,this.getData())}},j3e={initPreview:function(){var e=this.element,t=this.crossOrigin,i=this.options.preview,r=t?this.crossOriginUrl:this.url,o=e.alt||"The image to preview",n=document.createElement("img");if(t&&(n.crossOrigin=t),n.src=r,n.alt=o,this.viewBox.appendChild(n),this.viewBoxImage=n,!!i){var a=i;typeof i=="string"?a=e.ownerDocument.querySelectorAll(i):i.querySelector&&(a=[i]),this.previews=a,je(a,function(c){var l=document.createElement("img");Ui(c,Ir,{width:c.offsetWidth,height:c.offsetHeight,html:c.innerHTML}),t&&(l.crossOrigin=t),l.src=r,l.alt=o,l.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',c.innerHTML="",c.appendChild(l)})}},resetPreview:function(){je(this.previews,function(e){var t=Ma(e,Ir);Yt(e,{width:t.width,height:t.height}),e.innerHTML=t.html,s3e(e,Ir)})},preview:function(){var e=this.imageData,t=this.canvasData,i=this.cropBoxData,r=i.width,o=i.height,n=e.width,a=e.height,c=i.left-t.left-e.left,l=i.top-t.top-e.top;!this.cropped||this.disabled||(Yt(this.viewBoxImage,ue({width:n,height:a},xi(ue({translateX:-c,translateY:-l},e)))),je(this.previews,function(N){var u=Ma(N,Ir),L=u.width,g=u.height,y=L,T=g,D=1;r&&(D=L/r,T=o*D),o&&T>g&&(D=g/o,y=r*D,T=g),Yt(N,{width:y,height:T}),Yt(N.getElementsByTagName("img")[0],ue({width:n*D,height:a*D},xi(ue({translateX:-c*D,translateY:-l*D},e))))}))}},y3e={bind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&We(e,na,t.cropstart),Se(t.cropmove)&&We(e,oa,t.cropmove),Se(t.cropend)&&We(e,ra,t.cropend),Se(t.crop)&&We(e,ia,t.crop),Se(t.zoom)&&We(e,aa,t.zoom),We(i,Xl,this.onCropStart=this.cropStart.bind(this)),t.zoomable&&t.zoomOnWheel&&We(i,sN,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&We(i,Zl,this.onDblclick=this.dblclick.bind(this)),We(e.ownerDocument,Kl,this.onCropMove=this.cropMove.bind(this)),We(e.ownerDocument,ql,this.onCropEnd=this.cropEnd.bind(this)),t.responsive&&We(window,tN,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&Ve(e,na,t.cropstart),Se(t.cropmove)&&Ve(e,oa,t.cropmove),Se(t.cropend)&&Ve(e,ra,t.cropend),Se(t.crop)&&Ve(e,ia,t.crop),Se(t.zoom)&&Ve(e,aa,t.zoom),Ve(i,Xl,this.onCropStart),t.zoomable&&t.zoomOnWheel&&Ve(i,sN,this.onWheel,{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Ve(i,Zl,this.onDblclick),Ve(e.ownerDocument,Kl,this.onCropMove),Ve(e.ownerDocument,ql,this.onCropEnd),t.responsive&&Ve(window,tN,this.onResize)}},T3e={resize:function(){if(!this.disabled){var e=this.options,t=this.container,i=this.containerData,r=t.offsetWidth/i.width,o=t.offsetHeight/i.height,n=Math.abs(r-1)>Math.abs(o-1)?r:o;if(n!==1){var a,c;e.restore&&(a=this.getCanvasData(),c=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(je(a,function(l,N){a[N]=l*n})),this.setCropBoxData(je(c,function(l,N){c[N]=l*n})))}}},dblclick:function(){this.disabled||this.options.dragMode===X4||this.setDragMode(e3e(this.dragBox,ta)?Z4:IM)},wheel:function(e){var t=this,i=Number(this.options.wheelZoomRatio)||.1,r=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){t.wheeling=!1},50),e.deltaY?r=e.deltaY>0?1:-1:e.wheelDelta?r=-e.wheelDelta/120:e.detail&&(r=e.detail>0?1:-1),this.zoom(-r*i,e)))},cropStart:function(e){var t=e.buttons,i=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(V(t)&&t!==1||V(i)&&i!==0||e.ctrlKey))){var r=this.options,o=this.pointers,n;e.changedTouches?je(e.changedTouches,function(a){o[a.identifier]=pr(a)}):o[e.pointerId||0]=pr(e),Object.keys(o).length>1&&r.zoomable&&r.zoomOnTouch?n=V4:n=Ma(e.target,Qi),JSe.test(n)&&Js(this.element,na,{originalEvent:e,action:n})!==!1&&(e.preventDefault(),this.action=n,this.cropping=!1,n===G4&&(this.cropping=!0,ye(this.dragBox,Xr)))}},cropMove:function(e){var t=this.action;if(!(this.disabled||!t)){var i=this.pointers;e.preventDefault(),Js(this.element,oa,{originalEvent:e,action:t})!==!1&&(e.changedTouches?je(e.changedTouches,function(r){ue(i[r.identifier]||{},pr(r,!0))}):ue(i[e.pointerId||0]||{},pr(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var t=this.action,i=this.pointers;e.changedTouches?je(e.changedTouches,function(r){delete i[r.identifier]}):delete i[e.pointerId||0],t&&(e.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,Ps(this.dragBox,Xr,this.cropped&&this.options.modal)),Js(this.element,ra,{originalEvent:e,action:t}))}}},D3e={change:function(e){var t=this.options,i=this.canvasData,r=this.containerData,o=this.cropBoxData,n=this.pointers,a=this.action,c=t.aspectRatio,l=o.left,N=o.top,u=o.width,L=o.height,g=l+u,y=N+L,T=0,D=0,z=r.width,p=r.height,C=!0,m;!c&&e.shiftKey&&(c=u&&L?u/L:1),this.limited&&(T=o.minLeft,D=o.minTop,z=T+Math.min(r.width,i.width,i.left+i.width),p=D+Math.min(r.height,i.height,i.top+i.height));var I=n[Object.keys(n)[0]],h={x:I.endX-I.startX,y:I.endY-I.startY},A=function(f){switch(f){case Jt:g+h.x>z&&(h.x=z-g);break;case Rt:l+h.xp&&(h.y=p-y);break}};switch(a){case CM:l+=h.x,N+=h.y;break;case Jt:if(h.x>=0&&(g>=z||c&&(N<=D||y>=p))){C=!1;break}A(Jt),u+=h.x,u<0&&(a=Rt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case ft:if(h.y<=0&&(N<=D||c&&(l<=T||g>=z))){C=!1;break}A(ft),L-=h.y,N+=h.y,L<0&&(a=hs,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case Rt:if(h.x<=0&&(l<=T||c&&(N<=D||y>=p))){C=!1;break}A(Rt),u-=h.x,l+=h.x,u<0&&(a=Jt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case hs:if(h.y>=0&&(y>=p||c&&(l<=T||g>=z))){C=!1;break}A(hs),L+=h.y,L<0&&(a=ft,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case yi:if(c){if(h.y<=0&&(N<=D||g>=z)){C=!1;break}A(ft),L-=h.y,N+=h.y,u=L*c}else A(ft),A(Jt),h.x>=0?gD&&(L-=h.y,N+=h.y):(L-=h.y,N+=h.y);u<0&&L<0?(a=di,L=-L,u=-u,N-=L,l-=u):u<0?(a=Ti,u=-u,l-=u):L<0&&(a=Di,L=-L,N-=L);break;case Ti:if(c){if(h.y<=0&&(N<=D||l<=T)){C=!1;break}A(ft),L-=h.y,N+=h.y,u=L*c,l+=o.width-u}else A(ft),A(Rt),h.x<=0?l>T?(u-=h.x,l+=h.x):h.y<=0&&N<=D&&(C=!1):(u-=h.x,l+=h.x),h.y<=0?N>D&&(L-=h.y,N+=h.y):(L-=h.y,N+=h.y);u<0&&L<0?(a=Di,L=-L,u=-u,N-=L,l-=u):u<0?(a=yi,u=-u,l-=u):L<0&&(a=di,L=-L,N-=L);break;case di:if(c){if(h.x<=0&&(l<=T||y>=p)){C=!1;break}A(Rt),u-=h.x,l+=h.x,L=u/c}else A(hs),A(Rt),h.x<=0?l>T?(u-=h.x,l+=h.x):h.y>=0&&y>=p&&(C=!1):(u-=h.x,l+=h.x),h.y>=0?y=0&&(g>=z||y>=p)){C=!1;break}A(Jt),u+=h.x,L=u/c}else A(hs),A(Jt),h.x>=0?g=0&&y>=p&&(C=!1):u+=h.x,h.y>=0?y0?a=h.y>0?Di:yi:h.x<0&&(l-=u,a=h.y>0?di:Ti),h.y<0&&(N-=L),this.cropped||(Mt(this.cropBox,ke),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}C&&(o.width=u,o.height=L,o.left=l,o.top=N,this.action=a,this.renderCropBox()),je(n,function(S){S.startX=S.endX,S.startY=S.endY})}},d3e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&ye(this.dragBox,Xr),Mt(this.cropBox,ke),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ue({},this.initialImageData),this.canvasData=ue({},this.initialCanvasData),this.cropBoxData=ue({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ue(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Mt(this.dragBox,Xr),ye(this.cropBox,ke)),this},replace:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),t?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,je(this.previews,function(i){i.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Mt(this.cropper,Hl)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,ye(this.cropper,Hl)),this},destroy:function(){var e=this.element;return e[Me]?(e[Me]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=i.left,o=i.top;return this.moveTo(on(e)?e:r+Number(e),on(t)?t:o+Number(t))},moveTo:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.movable&&(V(e)&&(i.left=e,r=!0),V(t)&&(i.top=t,r=!0),r&&this.renderCanvas(!0)),this},zoom:function(e,t){var i=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(i.width*e/i.naturalWidth,null,t)},zoomTo:function(e,t,i){var r=this.options,o=this.canvasData,n=o.width,a=o.height,c=o.naturalWidth,l=o.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&r.zoomable){var N=c*e,u=l*e;if(Js(this.element,aa,{ratio:e,oldRatio:n/c,originalEvent:i})===!1)return this;if(i){var L=this.pointers,g=iL(this.cropper),y=L&&Object.keys(L).length?o3e(L):{pageX:i.pageX,pageY:i.pageY};o.left-=(N-n)*((y.pageX-g.left-o.left)/n),o.top-=(u-a)*((y.pageY-g.top-o.top)/a)}else $s(t)&&V(t.x)&&V(t.y)?(o.left-=(N-n)*((t.x-o.left)/n),o.top-=(u-a)*((t.y-o.top)/a)):(o.left-=(N-n)/2,o.top-=(u-a)/2);o.width=N,o.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),V(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var t=this.imageData.scaleY;return this.scale(e,V(t)?t:1)},scaleY:function(e){var t=this.imageData.scaleX;return this.scale(V(t)?t:1,e)},scale:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.imageData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.scalable&&(V(e)&&(i.scaleX=e,r=!0),V(t)&&(i.scaleY=t,r=!0),r&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.options,i=this.imageData,r=this.canvasData,o=this.cropBoxData,n;if(this.ready&&this.cropped){n={x:o.left-r.left,y:o.top-r.top,width:o.width,height:o.height};var a=i.width/i.naturalWidth;if(je(n,function(N,u){n[u]=N/a}),e){var c=Math.round(n.y+n.height),l=Math.round(n.x+n.width);n.x=Math.round(n.x),n.y=Math.round(n.y),n.width=l-n.x,n.height=c-n.y}}else n={x:0,y:0,width:0,height:0};return t.rotatable&&(n.rotate=i.rotate||0),t.scalable&&(n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1),n},setData:function(e){var t=this.options,i=this.imageData,r=this.canvasData,o={};if(this.ready&&!this.disabled&&$s(e)){var n=!1;t.rotatable&&V(e.rotate)&&e.rotate!==i.rotate&&(i.rotate=e.rotate,n=!0),t.scalable&&(V(e.scaleX)&&e.scaleX!==i.scaleX&&(i.scaleX=e.scaleX,n=!0),V(e.scaleY)&&e.scaleY!==i.scaleY&&(i.scaleY=e.scaleY,n=!0)),n&&this.renderCanvas(!0,!0);var a=i.width/i.naturalWidth;V(e.x)&&(o.left=e.x*a+r.left),V(e.y)&&(o.top=e.y*a+r.top),V(e.width)&&(o.width=e.width*a),V(e.height)&&(o.height=e.height*a),this.setCropBoxData(o)}return this},getContainerData:function(){return this.ready?ue({},this.containerData):{}},getImageData:function(){return this.sized?ue({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,t={};return this.ready&&je(["left","top","width","height","naturalWidth","naturalHeight"],function(i){t[i]=e[i]}),t},setCanvasData:function(e){var t=this.canvasData,i=t.aspectRatio;return this.ready&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)?(t.width=e.width,t.height=e.width/i):V(e.height)&&(t.height=e.height,t.width=e.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,t;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(e){var t=this.cropBoxData,i=this.options.aspectRatio,r,o;return this.ready&&this.cropped&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)&&e.width!==t.width&&(r=!0,t.width=e.width),V(e.height)&&e.height!==t.height&&(o=!0,t.height=e.height),i&&(r?t.height=t.width/i:o&&(t.width=t.height*i)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var t=this.canvasData,i=a3e(this.image,this.imageData,t,e);if(!this.cropped)return i;var r=this.getData(e.rounded),o=r.x,n=r.y,a=r.width,c=r.height,l=i.width/Math.floor(t.naturalWidth);l!==1&&(o*=l,n*=l,a*=l,c*=l);var N=a/c,u=vt({aspectRatio:N,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),L=vt({aspectRatio:N,width:e.minWidth||0,height:e.minHeight||0},"cover"),g=vt({aspectRatio:N,width:e.width||(l!==1?i.width:a),height:e.height||(l!==1?i.height:c)}),y=g.width,T=g.height;y=Math.min(u.width,Math.max(L.width,y)),T=Math.min(u.height,Math.max(L.height,T));var D=document.createElement("canvas"),z=D.getContext("2d");D.width=Bs(y),D.height=Bs(T),z.fillStyle=e.fillColor||"transparent",z.fillRect(0,0,y,T);var p=e.imageSmoothingEnabled,C=p===void 0?!0:p,m=e.imageSmoothingQuality;z.imageSmoothingEnabled=C,m&&(z.imageSmoothingQuality=m);var I=i.width,h=i.height,A=o,S=n,f,P,v,ee,ae,J;A<=-a||A>I?(A=0,f=0,v=0,ae=0):A<=0?(v=-A,A=0,f=Math.min(I,a+A),ae=f):A<=I&&(v=0,f=Math.min(a,I-A),ae=f),f<=0||S<=-c||S>h?(S=0,P=0,ee=0,J=0):S<=0?(ee=-S,S=0,P=Math.min(h,c+S),J=P):S<=h&&(ee=0,P=Math.min(c,h-S),J=P);var H=[A,S,f,P];if(ae>0&&J>0){var Te=y/a;H.push(v*Te,ee*Te,ae*Te,J*Te)}return z.drawImage.apply(z,[i].concat(F4(H.map(function(Fe){return Math.floor(Bs(Fe))})))),D},setAspectRatio:function(e){var t=this.options;return!this.disabled&&!on(e)&&(t.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var t=this.options,i=this.dragBox,r=this.face;if(this.ready&&!this.disabled){var o=e===IM,n=t.movable&&e===Z4;e=o||n?e:X4,t.dragMode=e,Ui(i,Qi,e),Ps(i,ta,o),Ps(i,sa,n),t.cropBoxMovable||(Ui(r,Qi,e),Ps(r,ta,o),Ps(r,sa,n))}return this}},h3e=ct.Cropper,oL=function(){function s(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(SSe(this,s),!e||!GSe.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=ue({},rN,$s(t)&&t),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return kSe(s,[{key:"init",value:function(){var t=this.element,i=t.tagName.toLowerCase(),r;if(!t[Me]){if(t[Me]=this,i==="img"){if(this.isImg=!0,r=t.getAttribute("src")||"",this.originalUrl=r,!r)return;r=t.src}else i==="canvas"&&window.HTMLCanvasElement&&(r=t.toDataURL());this.load(r)}}},{key:"load",value:function(t){var i=this;if(t){this.url=t,this.imageData={};var r=this.element,o=this.options;if(!o.rotatable&&!o.scalable&&(o.checkOrientation=!1),!o.checkOrientation||!window.ArrayBuffer){this.clone();return}if(RSe.test(t)){FSe.test(t)?this.read(u3e(t)):this.clone();return}var n=new XMLHttpRequest,a=this.clone.bind(this);this.reloading=!0,this.xhr=n,n.onabort=a,n.onerror=a,n.ontimeout=a,n.onprogress=function(){n.getResponseHeader("content-type")!==iN&&n.abort()},n.onload=function(){i.read(n.response)},n.onloadend=function(){i.reloading=!1,i.xhr=null},o.checkCrossOrigin&&nN(t)&&r.crossOrigin&&(t=aN(t)),n.open("GET",t,!0),n.responseType="arraybuffer",n.withCredentials=r.crossOrigin==="use-credentials",n.send()}}},{key:"read",value:function(t){var i=this.options,r=this.imageData,o=N3e(t),n=0,a=1,c=1;if(o>1){this.url=l3e(t,iN);var l=L3e(o);n=l.rotate,a=l.scaleX,c=l.scaleY}i.rotatable&&(r.rotate=n),i.scalable&&(r.scaleX=a,r.scaleY=c),this.clone()}},{key:"clone",value:function(){var t=this.element,i=this.url,r=t.crossOrigin,o=i;this.options.checkCrossOrigin&&nN(i)&&(r||(r="anonymous"),o=aN(i)),this.crossOrigin=r,this.crossOriginUrl=o;var n=document.createElement("img");r&&(n.crossOrigin=r),n.src=o||i,n.alt=t.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),ye(n,Vl),t.parentNode.insertBefore(n,t.nextSibling)}},{key:"start",value:function(){var t=this,i=this.image;i.onload=null,i.onerror=null,this.sizing=!0;var r=ct.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(ct.navigator.userAgent),o=function(l,N){ue(t.imageData,{naturalWidth:l,naturalHeight:N,aspectRatio:l/N}),t.initialImageData=ue({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(i.naturalWidth&&!r){o(i.naturalWidth,i.naturalHeight);return}var n=document.createElement("img"),a=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){o(n.width,n.height),r||a.removeChild(n)},n.src=i.src,r||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",a.appendChild(n))}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var t=this.element,i=this.options,r=this.image,o=t.parentNode,n=document.createElement("div");n.innerHTML=HSe;var a=n.querySelector(".".concat(Me,"-container")),c=a.querySelector(".".concat(Me,"-canvas")),l=a.querySelector(".".concat(Me,"-drag-box")),N=a.querySelector(".".concat(Me,"-crop-box")),u=N.querySelector(".".concat(Me,"-face"));this.container=o,this.cropper=a,this.canvas=c,this.dragBox=l,this.cropBox=N,this.viewBox=a.querySelector(".".concat(Me,"-view-box")),this.face=u,c.appendChild(r),ye(t,ke),o.insertBefore(a,t.nextSibling),Mt(r,Vl),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,ye(N,ke),i.guides||ye(N.getElementsByClassName("".concat(Me,"-dashed")),ke),i.center||ye(N.getElementsByClassName("".concat(Me,"-center")),ke),i.background&&ye(a,"".concat(Me,"-bg")),i.highlight||ye(u,$Se),i.cropBoxMovable&&(ye(u,sa),Ui(u,Qi,CM)),i.cropBoxResizable||(ye(N.getElementsByClassName("".concat(Me,"-line")),ke),ye(N.getElementsByClassName("".concat(Me,"-point")),ke)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),Se(i.ready)&&We(t,eN,i.ready,{once:!0}),Js(t,eN)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),Mt(this.element,ke)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=h3e,s}},{key:"setDefaults",value:function(t){ue(rN,$s(t)&&t)}}])}();ue(oL.prototype,g3e,j3e,y3e,T3e,D3e,d3e);var Zt=function(){return Zt=Object.assign||function(s){for(var e,t=1,i=arguments.length;t0&&S.zoomTo(Fe)}(A.currentTarget.cropper,C),D&&D(A)}}));z&&z(h)}return function(){var A,S;(S=(A=m.current)===null||A===void 0?void 0:A.cropper)===null||S===void 0||S.destroy()}},[m]);var I=function(h){return z3e.reduce(function(A,S){var f=A,P=S;return f[P],an(f,[typeof P=="symbol"?P:P+""])},h)}(Zt(Zt({},p),{crossOrigin:c,src:o,alt:T}));return M.createElement("div",{style:n,className:a},M.createElement("img",Zt({},I,{style:w3e,ref:m})))});const I3e=` -/*! - * Cropper.js v1.5.12 - * https://fengyuanchen.github.io/cropperjs - * - * Copyright 2015-present Chen Fengyuan - * Released under the MIT license - * - * Date: 2021-06-12T08:00:11.623Z - */ - -.cropper-container { - direction: ltr; - font-size: 0; - line-height: 0; - position: relative; - -ms-touch-action: none; - touch-action: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.cropper-container img { - display: block; - height: 100%; - image-orientation: 0deg; - max-height: none !important; - max-width: none !important; - min-height: 0 !important; - min-width: 0 !important; - width: 100%; -} - -.cropper-wrap-box, -.cropper-canvas, -.cropper-drag-box, -.cropper-crop-box, -.cropper-modal { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; -} - -.cropper-wrap-box, -.cropper-canvas { - overflow: hidden; -} - -.cropper-drag-box { - background-color: #fff; - opacity: 0; -} - -.cropper-modal { - background-color: #000; - opacity: 0.5; -} - -.cropper-view-box { - display: block; - height: 100%; - outline: 1px solid #39f; - outline-color: rgba(51, 153, 255, 0.75); - overflow: hidden; - width: 100%; -} - -.cropper-dashed { - border: 0 dashed #eee; - display: block; - opacity: 0.5; - position: absolute; -} - -.cropper-dashed.dashed-h { - border-bottom-width: 1px; - border-top-width: 1px; - height: calc(100% / 3); - left: 0; - top: calc(100% / 3); - width: 100%; -} - -.cropper-dashed.dashed-v { - border-left-width: 1px; - border-right-width: 1px; - height: 100%; - left: calc(100% / 3); - top: 0; - width: calc(100% / 3); -} - -.cropper-center { - display: block; - height: 0; - left: 50%; - opacity: 0.75; - position: absolute; - top: 50%; - width: 0; -} - -.cropper-center::before, -.cropper-center::after { - background-color: #eee; - content: ' '; - display: block; - position: absolute; -} - -.cropper-center::before { - height: 1px; - left: -3px; - top: 0; - width: 7px; -} - -.cropper-center::after { - height: 7px; - left: 0; - top: -3px; - width: 1px; -} - -.cropper-face, -.cropper-line, -.cropper-point { - display: block; - height: 100%; - opacity: 0.1; - position: absolute; - width: 100%; -} - -.cropper-face { - background-color: #fff; - left: 0; - top: 0; -} - -.cropper-line { - background-color: #39f; -} - -.cropper-line.line-e { - cursor: ew-resize; - right: -3px; - top: 0; - width: 5px; -} - -.cropper-line.line-n { - cursor: ns-resize; - height: 5px; - left: 0; - top: -3px; -} - -.cropper-line.line-w { - cursor: ew-resize; - left: -3px; - top: 0; - width: 5px; -} - -.cropper-line.line-s { - bottom: -3px; - cursor: ns-resize; - height: 5px; - left: 0; -} - -.cropper-point { - background-color: #39f; - height: 5px; - opacity: 0.75; - width: 5px; -} - -.cropper-point.point-e { - cursor: ew-resize; - margin-top: -3px; - right: -3px; - top: 50%; -} - -.cropper-point.point-n { - cursor: ns-resize; - left: 50%; - margin-left: -3px; - top: -3px; -} - -.cropper-point.point-w { - cursor: ew-resize; - left: -3px; - margin-top: -3px; - top: 50%; -} - -.cropper-point.point-s { - bottom: -3px; - cursor: s-resize; - left: 50%; - margin-left: -3px; -} - -.cropper-point.point-ne { - cursor: nesw-resize; - right: -3px; - top: -3px; -} - -.cropper-point.point-nw { - cursor: nwse-resize; - left: -3px; - top: -3px; -} - -.cropper-point.point-sw { - bottom: -3px; - cursor: nesw-resize; - left: -3px; -} - -.cropper-point.point-se { - bottom: -3px; - cursor: nwse-resize; - height: 20px; - opacity: 1; - right: -3px; - width: 20px; -} - -@media (min-width: 768px) { - .cropper-point.point-se { - height: 15px; - width: 15px; - } -} - -@media (min-width: 992px) { - .cropper-point.point-se { - height: 10px; - width: 10px; - } -} - -@media (min-width: 1200px) { - .cropper-point.point-se { - height: 5px; - opacity: 0.75; - width: 5px; - } -} - -.cropper-point.point-se::before { - background-color: #39f; - bottom: -50%; - content: ' '; - display: block; - height: 200%; - opacity: 0; - position: absolute; - right: -50%; - width: 200%; -} - -.cropper-invisible { - opacity: 0; -} - -.cropper-bg { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC'); -} - -.cropper-hide { - display: block; - height: 0; - position: absolute; - width: 0; -} - -.cropper-hidden { - display: none !important; -} - -.cropper-move { - cursor: move; -} - -.cropper-crop { - cursor: crosshair; -} - -.cropper-disabled .cropper-drag-box, -.cropper-disabled .cropper-face, -.cropper-disabled .cropper-line, -.cropper-disabled .cropper-point { - cursor: not-allowed; -} -`,_e={dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red",boxSizing:"border-box"}};class t5e extends x.Component{cropperRef;constructor(e){if(super(e),this.state={uploadFile:!1,anchorEl:null,cropHandler:!1},this.cropperRef=x.createRef(),!window.document.getElementById("cropper-style-json-component")){const t=window.document.createElement("style");t.setAttribute("id","cropper-style-json-component"),t.innerHTML=I3e,window.document.head.appendChild(t)}}onDrop(e){const t=this.props.onChange,i=this.props.maxSize||10*1024,r=e[0],o=new FileReader;o.onabort=()=>console.log("file reading was aborted"),o.onerror=()=>console.log("file reading has failed"),o.onload=()=>{var c,l;if(!r||!r.name)return;const n=(c=r.name)==null?void 0:c.split(".");let a=n!=null&&n.length?`image/${(l=n.pop())==null?void 0:l.toLowerCase()}`:"image/jpeg";if(a==="image/jpg"?a="image/jpeg":a.includes("svg")&&(a="image/svg+xml"),r.size>i)window.alert(d.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(i/1024)));else{const N=`data:${a};base64,${btoa(new Uint8Array(o.result).reduce((u,L)=>u+String.fromCharCode(L),""))}`;t?t(N):console.log(N)}},o.readAsArrayBuffer(r)}render(){const{disabled:e,icon:t,removeIconFunc:i,error:r,crop:o,onChange:n}=this.props,a=this.props.maxSize||10*1024;let c=this.props.accept||{"image/*":[]};const{uploadFile:l,anchorEl:N,cropHandler:u}=this.state;if(typeof c=="string")c={[c]:[]};else if(Array.isArray(c)){const L={};c.forEach(g=>{L[g]=[]}),c=L}return M.createElement(uN,{disabled:!!e||u,key:"dropzone",multiple:!1,accept:c,maxSize:a,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(L,g)=>{var y,T,D;this.setState({uploadFile:!1}),L.length?this.onDrop(L):window.alert(((D=(T=(y=g==null?void 0:g[0])==null?void 0:y.errors)==null?void 0:T[0])==null?void 0:D.message)||d.t("ra_Cannot upload"))}},({getRootProps:L,getInputProps:g})=>M.createElement("div",{style:{..._e.uploadDiv,...l==="dragging"?_e.uploadDivDragging:void 0,..._e.dropZone,...e?_e.disabledOpacity:void 0,...t?void 0:_e.dropZoneEmpty},...L()},M.createElement("input",{...g()}),M.createElement("div",{style:{..._e.uploadCenterDiv,...r?_e.error:void 0}},t?i&&!u&&M.createElement("div",{style:_e.buttonRemoveWrapper},M.createElement(j.Tooltip,{title:d.t("ra_Clear"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{i&&i(),y.stopPropagation()}},M.createElement(Ne,null)))):M.createElement("div",{style:_e.uploadCenterTextAndIcon},M.createElement(Ig,{style:_e.uploadCenterIcon}),M.createElement("div",{style:_e.uploadCenterText},l==="dragging"?d.t("ra_Drop file here"):d.t("ra_Place your files here or click here to open the browse dialog"))),t&&o&&M.createElement("div",{style:_e.buttonCropWrapper},M.createElement(j.Tooltip,{title:d.t("ra_Crop"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{u?this.setState({anchorEl:y.currentTarget}):this.setState({cropHandler:!0}),y.stopPropagation()}},M.createElement(ig,{color:u?"primary":"inherit"}))),M.createElement(j.Menu,{anchorEl:N,keepMounted:!0,open:!!N,onClose:()=>this.setState({anchorEl:null})},M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1},()=>{var T,D;const y=(D=(T=this.cropperRef)==null?void 0:T.current)==null?void 0:D.cropper;y&&(n?n(y.getCroppedCanvas().toDataURL()):console.log(y.getCroppedCanvas().toDataURL()))})},d.t("ra_Save")),M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1})},d.t("ra_Close")))),t&&!u?M.createElement(me,{src:t,style:_e.image,alt:"icon"}):null,t&&o&&u?M.createElement(C3e,{ref:this.cropperRef,style:_e.image,src:t,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null)))}}const xt={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},p3e={once:"once"},Ce={seconds:"seconds",minutes:"minutes"},MN=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function ot(s){return s<10?`0${s}`:`${s}`}const A3e={mode:"interval",interval:{period:1,unit:Ce.minutes}};function _r(s){if(s==="*")return[0,1,2,3,4,5,6];const e=s.split(","),t=[];return e.forEach(i=>{const r=i.split("-");if(r.length===2){const o=parseInt(r[0],10),n=parseInt(r[1],10);for(let a=o;a<=n;a++)t.includes(a===7?0:a)||t.push(a===7?0:a)}else{i==="7"&&(i="0");const o=parseInt(i,10);t.includes(o)||t.push(o)}}),t.sort(),t}function nL(s,e){s=s.replace(/['"]/g,"").trim();const t=s.split(" ");let i,r=null;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",date:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:null,minutes:t[0]||"*",hours:t[1]||"*",date:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i.seconds===null&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)&&(r={mode:"interval",interval:{period:1,unit:Ce.minutes}}),i.seconds==="*"&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:1,unit:Ce.seconds}}:i.seconds===null&&i.minutes.includes("/")&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&i.minutes.includes("/")&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"specific",specific:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&parseInt(i.date,10).toString()===i.date&&parseInt(i.months,10).toString()===i.months&&(i.dow==="*"||e)&&(r={mode:"once",once:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,date:`${ot(parseInt(i.date,10))}.${ot(parseInt(i.months,10))}`}}),r}class $i extends M.Component{constructor(e){super(e);let t=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";t[0]==="{"&&(t="");const i=nL(t||"* * * * *",!0)||A3e;this.state={extended:!1,cron:$i.state2cron(i),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:Ce.minutes},intervalBetween:{period:1,unit:Ce.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,i),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,t=7){if(t=t||7,e.length===t)return"*";const i=[];let r=null,o=null;if(!e.length)return"_";for(let n=0;n60&&(i.period=60),i.period!==void 0&&i.period<1&&(i.period=1),i.minutes!==void 0&&i.minutes!==null&&i.minutes>60&&(i.minutes=60),i.minutes!==void 0&&i.minutes!==null&&i.minutes<1&&(i.minutes=1),i.hours!==void 0&&i.hours!==null&&i.hours>24&&(i.hours=24),i.hours!==void 0&&i.hours!==null&&i.hours<1&&(i.hours=1),e.extended)t=`${i.minutes!==void 0&&i.minutes!==null&&i.minutes>1?`*/${i.minutes}`:"*"} ${i.hours!==void 0&&i.hours!==null&&i.hours>1?`*/${i.hours}`:"*"} * * *`;else switch(i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * * * * *`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const i=e.intervalBetween||{period:1,unit:Ce.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let r;switch(i.timeFrom=i.timeFrom||0,i.timeTo=i.timeTo===void 0?24:i.timeTo,i.timeFrom!==0&&i.timeTo===24&&(i.timeTo=23),i.timeFrom===0&&i.timeTo===24?r="*":r=i.timeFrom!==i.timeTo?`${i.timeFrom}-${i.timeTo}`:"*",i.period>60&&(i.period=60),i.period<1&&(i.period=1),i.unit=i.unit||Ce.minutes,i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * ${r} * * ${this.periodArray2text(i.weekdays)}`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} ${r} * * ${this.periodArray2text(i.weekdays)}`;break}}else if(e.mode==="specific"){const i=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},r=(i.time||"00:00").split(":");let o=parseInt(r[1],10)||0;o>59&&(o=59),o<0&&(o=0);let n=parseInt(r[0],10)||0;n>23&&(n=59),n<0&&(n=0),t=`${o} ${n} * * ${this.periodArray2text(i.weekdays||[])}`}else if(e.mode==="once"){const i=e.once||{time:"00:00",date:""};i.date||(i.date=`${new Date().getDate()}.${ot(new Date().getMonth()+1)}`);const r=(i.time||"00:00").split(":"),o=i.date.split(".");let n=parseInt(r[1],10)||0;n>59&&(n=59),n<0&&(n=0);let a=parseInt(r[0],10)||0;a>23&&(a=59),a<0&&(a=0);let c=parseInt(o[0],10)||1;c>31&&(c=31),c<1&&(a=1);let l=parseInt(o[1],10)||1;l>12&&(l=12),l<1&&(l=1),t=`${n} ${a} ${c} ${l} *`}return t}recalcCron(){this.onChange($i.state2cron(this.state))}getControlsWeekdaysElements(e){const t=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return M.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},M.createElement("h5",null,d.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:MN[i],control:M.createElement(j.Checkbox,{checked:t.weekdays.includes(i),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state[e])),n=o.weekdays.indexOf(i);r.target.checked?n===-1&&o.weekdays.push(i):n!==-1&&o.weekdays.splice(n,1),o.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:o},()=>this.recalcCron()):this.setState({specific:o},()=>this.recalcCron())},value:i.toString()}),label:d.t(MN[i])})))}getControlsPeriodElements(e){const t=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_minutes"),value:t.minutes,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.minutes=parseInt(i.target.value,10),r.minutes<1&&(r.minutes=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_hours"),value:t.hours,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.hours=parseInt(i.target.value,10),r.hours<1&&(r.hours=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_every"),value:t.period,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.period=parseInt(i.target.value,10),r.period<1&&(r.period=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.Select,{variant:"standard",style:{verticalAlign:"bottom"},value:t.unit,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.unit=i.target.value,e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())}},M.createElement(j.MenuItem,{value:"seconds"},d.t("sc_seconds")),")",M.createElement(j.MenuItem,{value:"minutes"},d.t("sc_minutes")),")"))}getControlsTime(e){const t=e==="once"?this.state.once:this.state.specific;return M.createElement(j.FormControl,{variant:"standard",sx:{...xt.formControl,"&.MuiFormControl-root":xt.formControlMarginRight}},M.createElement(j.TextField,{variant:"standard",key:"at",label:d.t("sc_time"),value:t.time,type:"time",sx:i=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:i.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.time=i.target.value,e==="once"?this.setState({once:r},()=>this.recalcCron()):this.setState({specific:r},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const t=new Date;e.date=`${t.getDate()}.${ot(t.getMonth()+1)}`}return M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.TextField,{variant:"standard",key:"date",label:d.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:xt.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.once));i.date=t.target.value,this.setState({once:i},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return M.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),M.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},M.createElement("h5",{style:{marginBottom:5}},d.t("sc_hours")),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_from")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeFrom=parseInt(t.target.value,10),i.timeTo===24&&(i.timeTo=23),this.setState({intervalBetween:i},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`B_${t}`,value:t},`${ot(t)}:00`)))),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_to")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeTo,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeTo=parseInt(t.target.value,10),this.setState({intervalBetween:i},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`A_${t}`,value:t},`${ot(t)}:00`)),!e.timeFrom&&M.createElement(j.MenuItem,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[M.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return M.createElement("div",{style:xt.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?d.t("sc_invalid_cron"):D4(this.state.cron,this.props.language||"en")),M.createElement("div",null,M.createElement(j.FormControl,{variant:"standard",style:{...xt.formControl,marginLeft:8,marginTop:8}},M.createElement(j.InputLabel,null,d.t("ra_Repeat")),M.createElement(j.Select,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},M.createElement(j.MenuItem,{value:"once"},d.t("sc_once")),M.createElement(j.MenuItem,{value:"interval"},d.t("sc_interval")),M.createElement(j.MenuItem,{value:"intervalBetween"},d.t("sc_intervalBetween")),M.createElement(j.MenuItem,{value:"specific"},d.t("sc_specific"))))),this.state.mode===p3e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const m3e=` -.logo-background-light, .logo-background-colored { - background: white; -} -.logo-background-dark, .logo-background-blue { - background: black; -} -`;function s5e(s){x.useEffect(()=>{if(!window.document.getElementById("vendor-iobroker-component")){const t=window.document.createElement("style");t.setAttribute("id","vendor-iobroker-component"),t.innerHTML=m3e,window.document.head.appendChild(t)}},[]);const e=s.themeType||s.themeName||"light";return M.createElement("div",{className:`vendor-logo-back logo-background-${e}`,style:{display:"flex",flexDirection:"column",height:"100%",width:"10%",margin:"auto",backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.CircularProgress,{color:"secondary",size:s.size||200,thickness:5}),M.createElement("div",{style:{flexGrow:1}}))}const O3e=` -.logo-background-light, .logo-background-colored { - background: white; -} -.logo-background-dark, .logo-background-blue { - background: black; -} -.pt-logo-div { - position: absolute; - top: 50%; - left: 50%; - -ms-transform: translateX(-50%) translateY(-50%); - -webkit-transform: translate(-50%,-50%); - transform: translate(-50%,-50%); - z-index: 2; -} -.pt-logo-border { - border-style: solid; - box-sizing: border-box; - width: 100%; - height: 100%; - position: absolute; -} -.pt-loader-block { - height: 65px; - width: 74px; - border-radius: 15px; - position: absolute; - box-sizing: content-box; -} -.pt-loader-blue { - border: 9px solid #0F99DE; - transform: rotate(5grad); - left: 93px; - top: 0; - animation: spin-blue 5s ease-in-out infinite; -} -.pt-loader-green { - border: 9px solid #88A536; - transform: rotate(-6grad); - left: 70px; - top: 58px; - animation: spin-green 5s ease-in-out infinite; -} -.pt-loader-red { - border: 9px solid #BD1B24; - transform: rotate(-15grad); - left: 24px; - top: 100px; - animation: spin-red 5s ease-in-out infinite; -} - -@keyframes spin-blue { - 0% { - transform: rotate(5deg); - } - 25% { - transform: rotate(185deg); - } - 50% { - transform: rotate(185deg); - } - 75% { - transform: rotate(185deg); - } - 100% { - transform: rotate(185deg); - } -} -@keyframes spin-green { - 0% { - transform: rotate(-6deg); - } - 25% { - transform: rotate(-6deg); - } - 50% { - transform: rotate(174deg); - } - 75% { - transform: rotate(174deg); - } - 100% { - transform: rotate(-6deg); - } -} -@keyframes spin-red { - 0% { - transform: rotate(-15deg); - } - 25% { - transform: rotate(-15deg); - } - 50% { - transform: rotate(-15deg); - } - 75% { - transform: rotate(165deg); - } - 100% { - transform: rotate(165deg); - } -} -`;function i5e(s){const e=s.size||200;x.useEffect(()=>{if(!window.document.getElementById("pt-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","pt-iobroker-component"),i.innerHTML=O3e,window.document.head.appendChild(i)}},[]);const t=s.themeType||s.themeName||"light";return M.createElement("div",{className:`pt-logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{className:"pt-logo-div",style:{width:e,height:e}},M.createElement("div",{style:{width:200,height:200}},M.createElement("div",{className:"pt-loader-blue pt-loader-block"}),M.createElement("div",{className:"pt-loader-green pt-loader-block"}),M.createElement("div",{className:"pt-loader-red pt-loader-block"}))))}function r5e(s){const e=s.themeType||"light",t=s.size||300;return M.createElement("div",{style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:e==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{width:t,height:t,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:2}},M.createElement("svg",{viewBox:"0 0 500 500",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%"},M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"200"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"133"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"83"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"66"}),M.createElement("circle",{strokeWidth:"15",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"15"}),M.createElement("g",null,M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("g",{transform:"rotate(60, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("g",{transform:"rotate(120, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),[0,15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270,285,300,315,330,345].map(i=>M.createElement("line",{key:i,transform:`rotate(${i}, 250, 250)`,y2:"250",x2:"115",y1:"240",x1:"135",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("animateTransform",{attributeType:"xml",attributeName:"transform",type:"rotate",from:"0 250 250",to:"360 250 250",dur:"10s",additive:"sum",repeatCount:"indefinite"})),M.createElement("path",{d:"M 56.089 160.250 C 55.077 162.588, 46.037 182.950, 36 205.500 C 25.963 228.050, 16.923 248.412, 15.911 250.750 L 14.071 255 28.286 254.976 L 42.500 254.952 47.931 242.226 C 50.918 235.227, 54.366 227.250, 55.592 224.500 L 57.822 219.500 66.383 237.250 L 74.945 255 88.973 255 C 96.688 255, 103 254.841, 103 254.646 C 103 254.452, 100.043 248.071, 96.430 240.466 L 89.859 226.638 91.603 222.771 C 92.563 220.644, 93.660 218.710, 94.043 218.473 C 94.426 218.237, 108.609 246.609, 125.562 281.522 L 156.384 345 166.071 345 C 175.705 345, 175.763 344.985, 176.856 342.250 C 179.911 334.602, 208 260.765, 208 260.383 C 208 260.138, 202.546 260.065, 195.879 260.219 L 183.759 260.500 174.629 285.244 C 169.608 298.853, 165.254 309.990, 164.952 309.994 C 164.651 309.997, 148.901 277.389, 129.952 237.532 C 111.004 197.674, 95.275 165.057, 95 165.049 C 94.725 165.041, 90.685 172.415, 86.022 181.435 C 81.358 190.455, 77.308 197.689, 77.022 197.510 C 76.735 197.331, 72.675 187.920, 68 176.598 C 63.325 165.275, 59.147 156.008, 58.714 156.005 C 58.282 156.002, 57.101 157.912, 56.089 160.250 M 55.294 168.694 C 52.241 175.842, 52.166 176.323, 53.718 178.692 L 55.349 181.182 56.706 178.591 C 57.453 177.166, 58.406 176, 58.825 176 C 59.244 176, 60.777 178.363, 62.232 181.250 C 64.829 186.403, 64.879 186.440, 64.939 183.250 C 64.973 181.463, 65.422 180, 65.937 180 C 66.724 180, 60.176 162.824, 58.920 161.596 C 58.689 161.370, 57.057 164.564, 55.294 168.694 M 91.698 175.542 C 89.205 180.626, 89.099 181.308, 90.410 183.792 L 91.840 186.500 92.926 183.669 C 94.349 179.961, 96.024 180.653, 98.588 186.009 L 100.676 190.370 101.324 187.132 C 101.832 184.592, 101.217 182.395, 98.473 176.947 C 96.549 173.126, 94.849 170, 94.696 170 C 94.542 170, 93.193 172.494, 91.698 175.542 M 157.005 192.607 C 143.168 197.636, 134.999 209.202, 135.001 223.761 C 135.002 232.756, 138.710 240.755, 145.856 247.180 C 152.159 252.848, 158.121 255, 167.518 255 C 173.509 255, 175.684 254.499, 180.811 251.936 C 200.823 241.936, 205.088 216.155, 189.337 200.403 C 181.479 192.546, 166.868 189.022, 157.005 192.607 M 206 223 L 206 255 215.472 255 L 224.944 255 225.222 241.419 L 225.500 227.837 230.500 234.660 C 233.250 238.412, 238.002 244.636, 241.060 248.491 L 246.620 255.500 253.810 255.168 L 261 254.836 261 222.918 L 261 191 251.528 191 L 242.056 191 241.778 204.552 L 241.500 218.104 231.111 204.552 L 220.722 191 213.361 191 L 206 191 206 223 M 285.821 192.331 C 276.229 195.045, 270.010 202.130, 270.004 210.349 C 269.995 221.957, 275.913 226.925, 295.801 232.006 C 300.753 233.271, 302.228 235.609, 299.412 237.730 C 296.739 239.746, 288.369 238.774, 281.563 235.657 L 276.132 233.171 272.469 239.320 C 268.119 246.621, 268.341 247.287, 276.524 251.500 C 281.399 254.010, 283.761 254.556, 290.977 254.842 C 302.365 255.294, 307.420 253.846, 312.603 248.649 C 317.383 243.855, 319.463 236.989, 318.043 230.693 C 316.210 222.562, 311.258 218.610, 297.878 214.599 C 288.025 211.645, 285.443 209.631, 288.538 207.315 C 291.104 205.394, 302.270 205.946, 306.769 208.217 L 310.039 209.866 313.104 203.794 C 316.516 197.035, 316.622 197.304, 309.167 193.844 C 303.663 191.289, 292.140 190.542, 285.821 192.331 M 322 199 L 322 207 330 207 L 338 207 338 231 L 338 255 347.500 255 L 357 255 357 231.044 L 357 207.088 364.250 206.794 L 371.500 206.500 371.792 198.750 L 372.084 191 347.042 191 L 322 191 322 199 M 379 223 L 379 255 401 255 L 423 255 423 247.500 L 423 240 409.500 240 L 396 240 396 235 L 396 230 407.500 230 L 419 230 419 222 L 419 214 407.500 214 L 396 214 396 210.529 L 396 207.058 409.250 206.779 L 422.500 206.500 422.792 198.750 L 423.084 191 401.042 191 L 379 191 379 223 M 433 223 L 433 255 442 255 L 451 255 451 247 L 451 239 454.800 239 C 458.555 239, 458.645 239.092, 462.469 246.937 L 466.339 254.874 476.172 255.187 C 481.580 255.359, 486.003 255.111, 486.002 254.636 C 486.001 254.160, 483.277 249.264, 479.949 243.754 C 473.914 233.765, 473.903 233.732, 475.836 231.619 C 480.222 226.824, 482.359 220.791, 482.431 213 C 482.512 204.192, 480.272 198.822, 475.031 195.260 C 469.795 191.703, 465.527 191.012, 448.750 191.006 L 433 191 433 223 M 448.210 213.250 L 448.500 221.500 455.338 221.500 C 461.319 221.500, 462.417 221.204, 464.088 219.139 C 465.995 216.785, 466.556 212.613, 465.379 209.545 C 464.356 206.879, 459.449 205, 453.509 205 L 447.919 205 448.210 213.250 M 163.169 209.017 C 156.337 210.583, 151.176 218.533, 152.339 225.701 C 154.672 240.077, 175.040 242.355, 180.446 228.844 C 184.978 217.516, 175.176 206.267, 163.169 209.017 M 216.676 271.715 C 216.037 272.750, 188 344.021, 188 344.612 C 188 344.863, 192.811 344.940, 198.691 344.784 L 209.381 344.500 211.894 336.750 L 214.406 329 226.550 329 L 238.694 329 242.097 336.992 L 245.500 344.983 255.250 344.992 C 262.399 344.998, 264.994 344.667, 264.979 343.750 C 264.968 343.063, 258.477 326.525, 250.555 307 L 236.150 271.500 226.656 271.215 C 221.434 271.058, 216.943 271.283, 216.676 271.715 M 273 307 C 273 326.800, 272.887 343.337, 272.750 343.750 C 272.613 344.163, 277.102 344.628, 282.727 344.785 L 292.954 345.069 293.227 327.379 L 293.500 309.689 307 327.336 L 320.500 344.982 328.262 344.991 L 336.025 345 335.762 308.250 L 335.500 271.500 326.750 271.211 L 318 270.922 317.882 286.711 C 317.816 295.395, 317.816 302.837, 317.882 303.250 C 317.947 303.663, 317.808 304, 317.574 304 C 317.340 304, 310.809 296.575, 303.060 287.500 L 288.971 271 280.985 271 L 273 271 273 307 M 223.254 303.048 L 220.078 312 226.539 312 C 230.093 312, 233 311.861, 233 311.691 C 233 311.257, 226.886 294.553, 226.636 294.302 C 226.522 294.189, 225.001 298.125, 223.254 303.048",stroke:"none",fill:s.themeType==="dark"?"#EEE":"#111",fillRule:"evenodd"}))))}function o5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 436 436",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function n5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 95 95",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:`M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 - c-0.344,0.922-0.443,1.413-0.907,1.363c-0.786-0.078-3.845-3.346-4.845-8.145l-2.482-11.6c1.961-3.177,3.977-5.629,5.988-7.292 - c1.08-0.882,2.314-1.349,3.808-1.43c3.815-0.26,5.203-0.74,6.14-1.399c1.547-1.115,2.397-2.728,2.397-4.542 - c0-1.596-0.604-3.019-1.75-4.115c-1.106-1.059-2.581-1.618-4.26-1.618c-2.468,0-5.239,1.142-8.474,3.49 - c-1.91,1.388-3.935,3.406-6.121,6.111c-0.711-2.653-1.319-3.889-1.771-4.628c-1.396-2.303-3.664-2.303-4.41-2.303l-0.813,0.013 - l-23.045,0.544l1.297-5.506c0.828-3.593,1.915-6.436,3.226-8.45c0.638-0.98,1.614-2.148,2.638-2.148 - c0.387,0,1.152,0.063,2.582,0.36c3.978,0.86,5.465,0.959,6.239,0.959c1.708,0,3.21-0.571,4.347-1.651 - c1.176-1.119,1.797-2.583,1.797-4.233c0-1.29-0.424-3.156-2.445-4.722c-1.396-1.081-3.311-1.629-5.691-1.629 - c-3.568,0-7.349,1.141-11.241,3.39c-3.862,2.232-7.038,5.317-9.438,9.171c-2.105,3.379-3.929,8.124-5.555,14.459H21.877 - l-2.238,8.831h10.186l-7.74,31.116c-1.603,6.443-2.777,8.028-3.098,8.361c-0.875,0.904-2.68,1.094-4.04,1.094 - c-1.683,0-3.477-0.121-5.349-0.361c-1.286-0.157-2.265-0.234-2.991-0.234c-1.878,0-3.423,0.488-4.59,1.448 - C0.716,81.858,0,83.403,0,85.14c0,1.357,0.44,3.309,2.539,4.895c1.434,1.08,3.389,1.628,5.813,1.628 - c6.069,0,11.725-2.411,16.813-7.165c4.947-4.624,8.571-11.413,10.773-20.195l6.119-24.935l20.87,0.354l2.244,9.64l-4.573,6.748 - c-0.824,1.209-2.051,2.701-3.658,4.441c-0.84,0.92-1.398,1.426-1.721,1.689c-1.316-1.608-2.809-2.424-4.432-2.424 - c-1.525,0-2.91,0.625-4.002,1.804c-1.036,1.116-1.583,2.514-1.583,4.038c0,1.83,0.783,3.459,2.264,4.709 - c1.357,1.146,3.034,1.728,4.981,1.728c2.414,0,4.884-0.921,7.344-2.737c2.053-1.519,4.697-4.526,8.074-9.189 - c2.17,6.24,5.248,10.252,6.714,11.927c2.313,2.644,6.049,4.22,9.993,4.22c3.348,0,5.244-1.402,6.916-2.641l0.148-0.109 - c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z`}))}function a5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),M.createElement("path",{fill:"currentColor",d:`M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 - l-74.091-22.229h174.635v106.667c0,11.776,9.536,21.333,21.333,21.333s21.333-9.557,21.333-21.333v-128 - C384.013,9.557,374.477,0,362.68,0H21.347c-0.768,0-1.451,0.32-2.197,0.405c-1.003,0.107-1.92,0.277-2.88,0.512 - c-2.24,0.576-4.267,1.451-6.165,2.645c-0.469,0.299-1.045,0.32-1.493,0.661C8.44,4.352,8.376,4.587,8.205,4.715 - C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992 - c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907 - l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491 - v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}function M5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 339 339",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("path",{fill:"currentColor",d:"M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("text",{style:{whiteSpace:"pre",fontFamily:"Arial, sans-serif",fontSize:16},x:"139.395",y:"288.084",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"},"vacuum"))}const E3e={dialogPaper:{height:"calc(100% - 96px)"}};class c5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const t=kt.cron2state(this.state.cron);if(t.seconds==="*"||t.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(t.minutes==="*"||t.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?M.createElement(t0,{title:d.t("ra_Please confirm"),text:d.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":E3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),M.createElement(j.DialogActions,null,!!this.props.clearButton&&M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:M.createElement(nt,null)},this.props.clear||d.t("ra_Clear")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}const f3e={dialogPaper:{height:"calc(100% - 96px)"}};class u5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof t=="object"||t[0]==="{")&&!this.props.noWizard?"wizard":nL(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":f3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?M.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),M.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},d.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),M.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},d.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),M.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},d.t("sc_cron")))):null,this.state.mode==="simple"&&M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()}),this.state.mode==="wizard"&&M.createElement(de,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}class l5e extends x.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"ar_dialog_message_title","aria-describedby":"ar_dialog_message_description"},M.createElement(j.DialogTitle,{id:"ar_dialog_message_title"},this.props.title||d.t("ra_Message")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_dialog_message_description"},M.createElement("span",{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_message_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Ne,null)},this.props.ok||d.t("ra_Close"))))}}const Ft={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class N5e extends M.Component{dialogName;filters;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let i=this.props.selected||[];typeof i!="object"?i=[i]:i=[...i],i=i.filter(r=>r),this.state={selected:i}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let e;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},this.state.selected)]:e=[M.createElement("span",{key:"selected"},d.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},d.t("%s items",this.state.selected.length))]:e=this.props.title||d.t("ra_Please select file..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...Ft.dialog,...Ft.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":Ft.titleRoot}},e),M.createElement(j.DialogContent,{style:{...Ft.content,...Ft.contentMobile}},M.createElement(jfe,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(t,i,r)=>{this.setState({selected:Array.isArray(t)?t:[t]},()=>i&&(!this.props.selectOnlyFolders||r)&&this.handleOk())},t:this.props.t||d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}const x3e={dialogPaper:{height:"calc(100% - 96px)"}};class L5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":x3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define CRON...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||d.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||d.t("ra_Cancel"))))}}const jt={CONNECTING:0,CONNECTED:1,OBJECTS_LOADED:2,STATES_LOADED:3,READY:4},yt="permissionError",b="notConnectedError";function cN(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}class R{_socket;_authTimer;systemLang="en";_waitForFirstConnection;_waitForFirstConnectionResolve=null;_promises={};_instanceSubscriptions;props;doNotLoadAllObjects;doNotLoadACL;states={};objects=null;scriptLoadCounter;acl=null;firstConnect=!0;waitForRestart=!1;connected=!1;statesSubscribes={};objectsSubscribes={};filesSubscribes={};onConnectionHandlers=[];onLogHandlers=[];onProgress;onError;loaded=!1;loadTimer=null;loadCounter=0;ignoreState="";simStates={};autoSubscribes;autoSubscribeLog;subscribed;isSecure;onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;systemConfig=null;constructor(e){e||={protocol:window.location.protocol,host:window.location.hostname},this.props=e,this.autoSubscribes=this.props.autoSubscribes||[],this.autoSubscribeLog=this.props.autoSubscribeLog||!1,this.props.protocol||=window.location.protocol,this.props.host||=window.location.hostname,this.props.port||=window.location.port==="3000"?R.isWeb()?8082:8081:window.location.port,this.props.ioTimeout=Math.max(this.props.ioTimeout||2e4,2e4),this.props.cmdTimeout=Math.max(this.props.cmdTimeout||5e3,5e3),this._instanceSubscriptions={},this.doNotLoadAllObjects=this.props.doNotLoadAllObjects===void 0?!0:this.props.doNotLoadAllObjects,this.doNotLoadACL=this.props.doNotLoadACL===void 0?!0:this.props.doNotLoadACL,this.states={},this._waitForFirstConnection=new Promise(t=>{this._waitForFirstConnectionResolve=t}),this.onProgress=this.props.onProgress||(()=>{}),this.onError=this.props.onError||(t=>console.error(t)),this.startSocket()}static isWeb(){const e=window.adapterName;return e==="material"||e==="vis"||(e==null?void 0:e.startsWith("vis-"))||e==="echarts-show"||window.socketUrl!==void 0}startSocket(){if(typeof window.io>"u"&&typeof window.iob>"u"){if(typeof window.registerSocketOnLoad!="function"){if(this.scriptLoadCounter||=0,this.scriptLoadCounter++,this.scriptLoadCounter<30){setTimeout(()=>this.startSocket(),100);return}window.alert("Cannot load socket.io.js!")}else window.registerSocketOnLoad(()=>this.startSocket());return}if(this._socket)return;let e=this.props.host,t=this.props.port,i=this.props.protocol.replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),R.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a[a.length-1].match(/\d+\.\d+\.\d+/)&&a.pop(),a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}${r}`:`${i}://${e}${r}`;this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid}),this._socket.on("connect",n=>{n!==!0?setTimeout(()=>this.getVersion().then(a=>{const[c,l,N]=a.version.split(".");parseInt(c,10)*1e4+parseInt(l,10)*100+parseInt(N,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(L,g)=>this.onPreConnect(L,g))}),500):this._socket.emit("authenticate",(a,c)=>this.onPreConnect(a,c))}),this._socket.on("reconnect",()=>{this.onProgress(jt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(n=>n(!0)))}),this._socket.on("disconnect",()=>{this.connected=!1,this.subscribed=!1,this.onProgress(jt.CONNECTING),this.onConnectionHandlers.forEach(n=>n(!1))}),this._socket.on("reauthenticate",()=>R.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a=n||"";typeof a.toString!="function"&&(a=JSON.stringify(a),console.error(`Received strange error: ${a}`)),a=a.toString(),a.includes("User not authorized")?R.authenticate():window.alert(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>setTimeout(()=>this.objectChange(n,a),0)),this._socket.on("stateChange",(n,a)=>setTimeout(()=>this.stateChange(n,a),0)),this._socket.on("im",(n,a,c)=>setTimeout(()=>this.instanceMessage(n,a,c),0)),this._socket.on("fileChange",(n,a,c)=>setTimeout(()=>this.fileChange(n,a,c),0)),this._socket.on("cmdStdout",(n,a)=>{var c;return(c=this.onCmdStdoutHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;return(c=this.onCmdStderrHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;return(c=this.onCmdExitHandler)==null?void 0:c.call(this,n,a)})}onPreConnect(e,t){this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?(this.loadTimer=setTimeout(()=>{this.loadTimer=null,this.loadCounter++,this.loadCounter<10&&this.onConnect().catch(i=>this.onError(i))},1e3),this.loaded||this.onConnect().catch(i=>this.onError(i))):this.onProgress(jt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(i=>i(!0))),this._waitForFirstConnectionResolve&&(this._waitForFirstConnectionResolve(),this._waitForFirstConnectionResolve=null)}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnection}async _getUserPermissions(){return this.doNotLoadACL?null:new Promise((e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>i?t(new Error(i)):e(r))})}async onConnect(){var i,r,o,n,a;let e;try{e=await this._getUserPermissions()}catch(c){const l=c;this.onError(`Cannot read user permissions: ${l.message}`);return}if(!this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1,this.acl=e}let t;try{if(t=await this.getSystemConfig(),this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1}this.systemConfig=t,(i=this.systemConfig)!=null&&i.common?this.systemLang=this.systemConfig.common.language:(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substr(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en")),(o=(r=this.props).onLanguage)==null||o.call(r,this.systemLang),this.doNotLoadAllObjects?(this.objects={"system.config":t},this.onProgress(jt.READY),(a=(n=this.props).onReady)==null||a.call(n,this.objects)):(await this.getObjects(),this.onProgress(jt.READY),this.props.onReady&&this.objects&&this.props.onReady(this.objects))}catch(c){this.onError(`Cannot read system config: ${c}`)}}static authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`}async subscribeState(e,t,i){typeof t=="function"&&(i=t,t=!1);let r;if(Array.isArray(e)?r=e:r=[e],!i)return console.error("No callback found for subscribeState"),Promise.reject(new Error("No callback found for subscribeState"));const o=[];for(let n=0;n{this._socket.emit(R.isWeb()?"getStates":"getForeignStates",r,(c,l)=>{c?(console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(c)}`),a(new Error(c))):(l&&Object.keys(l).forEach(N=>i(N,l[N])),n())})})}subscribeStateAsync(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{typeof t=="function"&&this.connected?this._socket.emit(R.isWeb()?"getStates":"getForeignStates",e,(a,c)=>{a&&console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`),c&&Object.keys(c).forEach(l=>t(l,c[l])),c?o():n(new Error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`))}):this.connected?n(new Error("callback is not a function")):n(new Error("not connected"))})}unsubscribeState(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{(o===e||this.objectsSubscribes[o].reg.test(e))&&this.objectsSubscribes[o].cbs.forEach(n=>{try{n(e,t,i)}catch(a){console.error(`Error by callback of objectChange: ${a}`)}})}),r&&this.props.onObjectChange&&this.props.onObjectChange(e,t)}stateChange(e,t){for(const i in this.statesSubscribes)Object.prototype.hasOwnProperty.call(this.statesSubscribes,i)&&this.statesSubscribes[i].reg.test(e)&&this.statesSubscribes[i].cbs.forEach(r=>{try{r(e,t)}catch(o){const n=o;console.error(`Error by callback of stateChange: ${n==null?void 0:n.message}`)}})}instanceMessage(e,t,i){this._instanceSubscriptions[t]&&this._instanceSubscriptions[t].forEach(r=>{r.messageType===e&&r.callback(i,t,e)})}getStates(e,t){return this.connected?(typeof e=="boolean"&&(t=e,e=void 0),new Promise((i,r)=>{this._socket.emit("getStates",e,(o,n)=>{this.states=n,!t&&this.onProgress(jt.STATES_LOADED),o?r(new Error(o)):i(this.states)})})):Promise.reject(new Error(b))}getState(e){return this.connected?e&&e===this.ignoreState?Promise.resolve(this.simStates[e]||{val:null,ack:!0}):new Promise((t,i)=>{this._socket.emit("getState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getBinaryState(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}setBinaryState(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("setBinaryState",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setState(e,t,i){if(!this.connected)return Promise.reject(new Error(b));if(e&&e===this.ignoreState){let r;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?r=t:r={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=r,this.statesSubscribes[e])for(const o of this.statesSubscribes[e].cbs)try{o(e,r)}catch(n){console.error(`Error by callback of stateChanged: ${n}`)}return Promise.resolve()}return new Promise((r,o)=>{this._socket.emit("setState",e,t,n=>n?o(new Error(n)):r())})}getObjects(e,t){return this.connected?new Promise((i,r)=>{!e&&this.objects?i(this.objects):this._socket.emit(R.isWeb()?"getObjects":"getAllObjects",(o,n)=>{this.objects=n,t&&this.onProgress(jt.OBJECTS_LOADED),o?r(new Error(o)):i(this.objects)})}):Promise.reject(new Error(b))}getObjectsById(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getObjects",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}_subscribe(e){if(e&&!this.subscribed){this.subscribed=!0,this.autoSubscribes.forEach(i=>this._socket.emit("subscribeObjects",i)),Object.keys(this.objectsSubscribes).forEach(i=>this._socket.emit("subscribeObjects",i)),this.autoSubscribeLog&&this._socket.emit("requireLog",!0);const t=Object.keys(this.statesSubscribes);t.forEach(i=>this._socket.emit("subscribe",i)),t.length&&this._socket.emit(R.isWeb()?"getStates":"getForeignStates",t,(i,r)=>{i&&console.error(`Cannot getForeignStates: ${JSON.stringify(i)}`),r&&Object.keys(r).forEach(o=>this.stateChange(o,r[o]))})}else!e&&this.subscribed&&(this.subscribed=!1,this.autoSubscribes.forEach(t=>this._socket.emit("unsubscribeObjects",t)),Object.keys(this.objectsSubscribes).forEach(t=>this._socket.emit("unsubscribeObjects",t)),this.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(t=>this._socket.emit("unsubscribe",t)))}requireLog(e){return this.connected?new Promise((t,i)=>{this._socket.emit("requireLog",e,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}delObject(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObject",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}delObjects(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObjects",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setObject(e,t){return this.connected?t?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("setObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error("Null object is not allowed")):Promise.reject(new Error(b))}getObject(e){return this.connected?e&&e===this.ignoreState?Promise.resolve({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed",read:!0,write:!0,role:"state"},native:{}}):new Promise((t,i)=>{this._socket.emit("getObject",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`instances_${e}`]instanceof Promise?this._promises[`instances_${e}`]:this.connected?(this._promises[`instances_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapterInstances",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`instances_${e}`]):Promise.reject(new Error(b))}getAdapters(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`adapter_${e}`]instanceof Promise?this._promises[`adapter_${e}`]:this.connected?(this._promises[`adapter_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapters",e,(o,n)=>{o?r(new Error(o)):i(n)})}),this._promises[`adapter_${e}`]):Promise.reject(new Error(b)))}_renameGroups(e,t){if(!(e!=null&&e.length))t==null||t(null);else{const i=e.pop();if(!i){setTimeout(()=>this._renameGroups(e,t),0);return}const r=i._id;i._id=i.newId,delete i.newId,this.setObject(i._id,i).then(()=>this.delObject(r)).then(()=>setTimeout(()=>this._renameGroups(e,t),0)).catch(o=>t==null?void 0:t(o))}}async renameGroup(e,t,i){if(R.isWeb())return Promise.reject(new Error("Allowed only in admin"));const r=await this.getGroups(!0);if(r.length){const o=r.filter(a=>a._id.startsWith(`${e}.`));o.forEach(a=>{a.newId=t+a._id.substring(e.length)}),await new Promise((a,c)=>{this._renameGroups(o,l=>l?c(new Error(l)):a(null))});const n=r.find(a=>a._id===e);if(n)return n._id=t,i!==void 0&&(n.common||={},n.common.name=i),this.setObject(n._id,n).then(()=>this.delObject(e))}return Promise.resolve()}sendTo(e,t,i){return this.connected?new Promise(r=>{this._socket.emit("sendTo",e,t,i,o=>r(o))}):Promise.reject(new Error(b))}extendObject(e,t){return this.connected?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("extendObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error(b))}registerLogHandler(e){!this.onLogHandlers.includes(e)&&this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){!this.onConnectionHandlers.includes(e)&&this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return!t&&this._promises[`enums_${e||"all"}`]instanceof Promise?this._promises[`enums_${e||"all"}`]:this.connected?(this._promises[`enums_${e||"all"}`]=new Promise((i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:`enum.${e?`${e}.`:""}香`},(o,n)=>{if(!o&&n){const a={};for(let c=0;c{this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(new Error(a));else{const l={};if(c&&c.rows)for(let N=0;N{const i=[];return t&&t.native&&t.native.certificates&&Object.keys(t.native.certificates).forEach(r=>{const o=t.native.certificates[r];if(!o)return;const n={name:r,type:""};o.length<700&&(o.includes("/")||o.includes("\\"))?(r.toLowerCase().includes("private")||o.toLowerCase().includes("private")?n.type="private":(r.toLowerCase().includes("public")||o.toLowerCase().includes("public"))&&(n.type="public"),i.push(n)):(n.type=o.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||o.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",n.type==="public"&&o.split("-----END CERTIFICATE-----").filter(c=>c.replace(/\r\n|\r|\n/,"").trim()).length>1&&(n.type="chained"),i.push(n))}),i}),this._promises.cert):Promise.reject(new Error(b))}getLogs(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>i(r))}):Promise.reject(new Error(b))}getLogsFiles(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("readLogs",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}delLogs(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}readMetaItems(){return this.connected?new Promise((e,t)=>{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>i?t(new Error(i)):e(r.rows&&r.rows.map(o=>o.value)))}):Promise.reject(new Error(b))}readDir(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}readFile(e,t,i){return this.connected?new Promise((r,o)=>{i?this._socket.emit("readFile64",e,t,i,(n,a)=>n?o(new Error(n)):r(a)):this._socket.emit("readFile",e,t,(n,a,c)=>{n?o(new Error(n)):r({data:a,type:c})})}):Promise.reject(new Error(b))}writeFile64(e,t,i){return this.connected?new Promise((r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>n?o(new Error(n)):r());else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>a?o(new Error(a)):r())}}):Promise.reject(new Error(b))}deleteFile(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("unlink",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}deleteFolder(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("deleteFolder",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}getHosts(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hosts instanceof Promise?this._promises.hosts:this.connected?(this._promises.hosts=new Promise((t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.hosts):Promise.reject(new Error(b))}getUsers(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.users instanceof Promise?this._promises.users:this.connected?(this._promises.users=new Promise((t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.users):Promise.reject(new Error(b))}getGroups(e){return!e&&this._promises.groups instanceof Promise?this._promises.groups:this.connected?(this._promises.groups=new Promise((t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.groups):Promise.reject(new Error(b))}getHostInfo(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfo_${e}`]instanceof Promise?this._promises[`hostInfo_${e}`]:this.connected?(this._promises[`hostInfo_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getHostInfo timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfo"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfo"')):r(a))})}),this._promises[`hostInfo_${e}`]):Promise.reject(new Error(b)))}getHostInfoShort(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfoShort_${e}`]instanceof Promise?this._promises[`hostInfoShort_${e}`]:this.connected?(this._promises[`hostInfoShort_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("hostInfoShort timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfoShort"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfoShort"')):r(a))})}),this._promises[`hostInfoShort_${e}`]):Promise.reject(new Error(b)))}getRepository(e,t,i,r){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!i&&this._promises.repo instanceof Promise?this._promises.repo:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repo=new Promise((o,n)=>{let a=setTimeout(()=>{a&&(a=null,n(new Error("getRepository timeout")))},r||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getRepository",t,c=>{a&&(clearTimeout(a),a=null,c===yt?n(new Error('May not read "getRepository"')):!c||typeof c!="object"?n(new Error('Cannot read "getRepository"')):o(c))})}),this._promises.repo):Promise.reject(new Error(b))}getInstalled(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installed=this._promises.installed||{},!t&&this._promises.installed[e]instanceof Promise?this._promises.installed[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installed[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getInstalled"')):r(a))})}),this._promises.installed[e]):Promise.reject(new Error(b)))}rename(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("rename",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}renameFile(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("renameFile",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}cmdExec(e,t,i,r){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),new Promise((o,n)=>{let a=r?setTimeout(()=>{a&&(a=null,n(new Error("cmdExec timeout")))},r):null;this._socket.emit("cmdExec",e,i,t,null,c=>{(!r||a)&&(a&&clearTimeout(a),a=null,c?n(new Error(c)):o())})})):Promise.reject(new Error(b))}checkFeatureSupported(e,t){return!t&&this._promises[`supportedFeatures_${e}`]instanceof Promise?this._promises[`supportedFeatures_${e}`]:this.connected?(this._promises[`supportedFeatures_${e}`]=new Promise((i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`supportedFeatures_${e}`]):Promise.reject(new Error(b))}async readBaseSettings(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):await this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS")?this.connected?new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("readBaseSettings timeout")))},this.props.cmdTimeout);e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),this._socket.emit("sendToHost",e,"readBaseSettings",null,n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "BaseSettings"')):!n||typeof n!="object"?r(new Error('Cannot read "BaseSettings"')):i(n))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported"))}writeBaseSettings(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then(i=>i?this.connected?new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("writeBaseSettings timeout")))},this.props.cmdTimeout);this._socket.emit("sendToHost",e,"writeBaseSettings",t,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not write "BaseSettings"')):a?r(a):o(new Error('Cannot write "BaseSettings"')))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported")))}restartController(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("sendToHost",e,"restartController",null,r=>{r?i(new Error(r)):t(!0)})})}getDiagData(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise(i=>{this._socket.emit("sendToHost",e,"getDiagData",t,r=>i(r))})}getForeignStates(e){return this.connected?R.isWeb()?new Promise((t,i)=>{this._socket.emit("getStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):new Promise((t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getForeignObjects(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getSystemConfig(e){return!e&&this._promises.systemConfig instanceof Promise?this._promises.systemConfig:this.connected?(this._promises.systemConfig=this.getObject("system.config").then(t=>{const i=t||{};return i.common||={},i.native||={},i}),this._promises.systemConfig):Promise.reject(new Error(b))}setSystemConfig(e){return this.setObject("system.config",e).then(()=>this._promises.systemConfig=Promise.resolve(e))}getRawSocket(){return this._socket}getHistory(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getHistoryEx(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>o?r(new Error(o)):i({values:n,sessionId:c,step:a}))}):Promise.reject(new Error(b))}changePassword(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((i,r)=>{this._socket.emit("changePassword",e,t,o=>o?r(new Error(o)):i())})}getIpAddresses(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e=`system.host.${e}`),!t&&this._promises[`IPs_${e}`]instanceof Promise?this._promises[`IPs_${e}`]:(this._promises[`IPs_${e}`]=this.getObject(e).then(i=>i!=null&&i.common?i.common.address||[]:[]),this._promises[`IPs_${e}`]))}getHostByIp(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),!t&&this._promises[`rIPs_${e}`]instanceof Promise?this._promises[`rIPs_${e}`]:(this._promises[`rIPs_${e}`]=new Promise(i=>{this._socket.emit("getHostByIp",e,(r,o)=>{var c,l;const n=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],a=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((l=(c=o==null?void 0:o.native)==null?void 0:c.hardware)!=null&&l.networkInterfaces){for(const N in o.native.hardware.networkInterfaces)if(Object.prototype.hasOwnProperty.call(o.native.hardware.networkInterfaces,N))for(let u=0;u{this._socket.emit("encrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}decrypt(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("decrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}getVersion(e){return!e&&this._promises.version instanceof Promise?this._promises.version:(this._promises.version=new Promise((t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(new Error(r)):t({version:o,serverName:n})})}),this._promises.version)}getWebServerName(){return this._promises.webName instanceof Promise?this._promises.webName:(this._promises.webName=new Promise((e,t)=>{this._socket.emit("getAdapterName",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.webName)}getAdminVersion(){return console.log("Deprecated: use getVersion"),this.getVersion()}chmodFile(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chmodFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}chownFile(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chownFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}fileExists(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getNotifications(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}clearNotifications(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}getIsEasyModeStrict(){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getIsEasyModeStrict",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getEasyMode(){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getEasyMode",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getCurrentUser(){return this.connected?new Promise(e=>{this._socket.emit("authEnabled",(t,i)=>e(i))}):Promise.reject(new Error(b))}getCurrentSession(e){return this.connected?new Promise((t,i)=>{const r=new AbortController;let o=setTimeout(()=>{o&&(o=null,r.abort(),i(new Error("getCurrentSession timeout")))},e||5e3);fetch("./session",{signal:r.signal}).then(n=>n.json()).then(n=>{o&&(clearTimeout(o),o=null,t(n))}).catch(n=>i(new Error(`getCurrentSession: ${n}`)))}):Promise.reject(new Error(b))}getRatings(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("getRatings",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getCurrentInstance(){return this.connected?this._promises.currentInstance instanceof Promise?this._promises.currentInstance:(this._promises.currentInstance=new Promise((e,t)=>{this._socket.emit("getCurrentInstance",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.currentInstance):Promise.reject(new Error(b))}getCompactAdapters(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactAdapters instanceof Promise?this._promises.compactAdapters:this.connected?(this._promises.compactAdapters=new Promise((t,i)=>{this._socket.emit("getCompactAdapters",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactAdapters):Promise.reject(new Error(b))}getAdaptersResetCache(e){e||="",delete this._promises.compactAdapters,delete this._promises[`adapter_${e}`]}getCompactInstances(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactInstances instanceof Promise?this._promises.compactInstances:this.connected?(this._promises.compactInstances=new Promise((t,i)=>{this._socket.emit("getCompactInstances",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactInstances):Promise.reject(new Error(b))}getAdapternInstancesResetCache(e){e||="",delete this._promises.compactInstances,delete this._promises[`instances_${e}`]}getCompactInstalled(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installedCompact||={},!t&&this._promises.installedCompact[e]instanceof Promise?this._promises.installedCompact[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installedCompact[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactInstalled",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getCompactInstalled"')):r(a))})}),this._promises.installedCompact[e]):Promise.reject(new Error(b)))}getCompactSystemRepositories(e,t){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.getCompactSystemRepositories instanceof Promise?this._promises.getCompactSystemRepositories:this.connected?(this._promises.getCompactSystemRepositories=new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("getCompactSystemRepositories timeout")))},t||this.props.cmdTimeout);this._socket.emit("getCompactSystemRepositories",n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "getCompactSystemRepositories"')):!n||typeof n!="object"?r(new Error('Cannot read "getCompactSystemRepositories"')):i(n))})}),this._promises.getCompactSystemRepositories):Promise.reject(new Error(b))}getCompactSystemConfig(e){return!e&&this._promises.systemConfigPromise instanceof Promise?this._promises.systemConfigPromise:this.connected?(this._promises.systemConfigPromise=new Promise((t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.systemConfigPromise):Promise.reject(new Error(b))}getCompactRepository(e,t,i){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!t&&this._promises.repoCompact instanceof Promise?this._promises.repoCompact:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repoCompact=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactRepository timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactRepository",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactRepository"')):a?r(a):o(new Error('Cannot read "getCompactRepository"')))})}),this._promises.repoCompact):Promise.reject(new Error(b))}getInstalledResetCache(){delete this._promises.repoCompact,delete this._promises.repo}getCompactHosts(e){return R.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hostsCompact instanceof Promise?this._promises.hostsCompact:this.connected?(this._promises.hostsCompact=new Promise((t,i)=>{this._socket.emit("getCompactHosts",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.hostsCompact):Promise.reject(new Error(b))}getUuid(){return this._promises.uuid instanceof Promise?this._promises.uuid:this.connected?(this._promises.uuid=this.getObject("system.meta.uuid").then(e=>{var t;return(t=e==null?void 0:e.native)==null?void 0:t.uuid}),this._promises.uuid):Promise.reject(new Error(b))}subscribeOnInstance(e,t,i,r){return this.connected?new Promise((o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(new Error(a)):c!=null&&c.error?n(new Error(c.error)):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]||=[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c))})}):Promise.reject(new Error(b))}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(new Promise((N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>{L?u(new Error(L)):N(g)})}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>a.find(c=>c)||!1):Promise.resolve(!1)}log(e,t){e&&this._socket.emit("log",e,t||"debug")}logout(){return this.connected?new Promise((e,t)=>{this._socket.emit("logout",i=>i?t(new Error(i)):e())}):Promise.reject(new Error(b))}setStateToIgnore(e){this.ignoreState=e||""}}function g5e(s){var e;return s.type==="object"?`iobobject://${s.address}/${s.path||""}`:s.type==="state"?`iobstate://${s.address}`:s.type==="file"?`iobfile://${s.address}/${s.path||""}`:s.type==="http"?s.address:(e=s.path)!=null&&e.includes("/")?`iobfile://${s.address}/${s.path}`:s.path?`iobobject://${s.address}/${s.path}`:`iobstate://${s.address}`}function _3e(s){const e={type:"object",address:""};if(s.startsWith("iobobject://")){e.type="object",s=s.replace("iobobject://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobstate://")){e.type="state",s=s.replace("iobstate://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobfile://")){e.type="file",s=s.replace("iobfile://","");const t=s.split("/");e.address=t.shift(),e.path=t.join("/")}else if(s.startsWith("http://")||s.startsWith("https://"))e.type="http",e.address=s;else if(s.startsWith("data:"))e.type="base64",e.address=s;else{const t=s.split("/");if(t.length===2)if(e.address=t[0],e.path=t[1],e.path.includes("."))e.type="object";else if(e.path)if(e.path==="val"||e.path==="q"||e.path==="ack"||e.path==="ts"||e.path==="lc"||e.path==="from"||e.path==="user"||e.path==="expire"||e.path==="c")e.type="state";else if(e.path==="common"||e.path==="native"||e.path==="from"||e.path==="acl"||e.path==="type")e.type="object";else throw new Error(`Unknown path: ${e.path}`);else e.type="state";else t.length===1?(e.address=t[0],e.type="state"):(e.address=t.shift(),e.type="file",e.path=t.join("/"))}return e}function aL(s,e,t){if(t=t||0,s==null||!e)return s;if(e.length-1===t)return s[e[t]];if(typeof s=="object")return aL(s[e[t]],e,t+1)}function S3e(s,e,t,i){if(i=i||0,s==null||!e)return t;if(e.length-1===i)return s[e[i]]=t,s;if(typeof s=="object")return S3e(s[e[i]],e,t,i+1)}async function j5e(s,e){var t;if(typeof s=="string"&&(s=_3e(s)),s.type==="object"){const i=await e.getObject(s.address);return aL(i,(t=s.path)==null?void 0:t.split("."))}if(s.type==="state"){const i=await e.getState(s.address);return s.path?i==null?void 0:i[s.path]:i}if(s.type==="file")return await e.readFile(s.address,s.path,!0);if(s.type==="http")return fetch(s.address).then(i=>i.text()).then(i=>{if(i.startsWith("{")&&i.endsWith("}")||i.startsWith("[")&&i.endsWith("]"))try{return JSON.parse(i)}catch{}return i});throw new Error(`Unknown type: ${s.type}`)}const Mn=s=>{const e={};return s.forEach(t=>{e[t]={requiredVersion:"*",singleton:!0}}),e};function y5e(s){const e=["@emotion/react","@emotion/styled","@iobroker/adapter-react-v5","@iobroker/json-config","@iobroker/dm-gui-components","@mui/icons-material","@mui/material","@mui/x-date-pickers","date-fns","date-fns/locale","leaflet","leaflet-geosearch","react","react-ace","react-dom","react-dropzone","semver"];return Array.isArray(s)?Mn(e.filter(t=>s.includes(t))):s&&(s.dependencies||s.devDependencies)?Mn(e.filter(t=>{var i,r;return((i=s.dependencies)==null?void 0:i[t])||((r=s.devDependencies)==null?void 0:r[t])})):Mn(e)}export{B3e as AdminConnection,Ii as ColorPicker,kt as ComplexCron,c5e as ComplexCronDialog,t0 as Confirm,ze as Connection,u5e as Cron,J3e as CustomModal,k_e as DeviceTypeIcon,H3e as DeviceTypeSelector,c5e as DialogComplexCron,t0 as DialogConfirm,u5e as DialogCron,s0 as DialogError,l5e as DialogMessage,N5e as DialogSelectFile,ESe as DialogSelectID,L5e as DialogSimpleCron,JEe as DialogTextInput,Ie as ERRORS,we as EXTENSIONS,s0 as Error,jfe as FileBrowser,dM as FileBrowserClass,gfe as FileViewer,Lfe as FileViewerClass,Gt as GenericApp,d as I18n,Ul as ITEM_IMAGES,me as Icon,Z_e as IconAdapter,lfe as IconAlias,o5e as IconButtonImage,A4 as IconChannel,eSe as IconClearFilter,Ws as IconClosed,Ts as IconCopy,m4 as IconDevice,X_e as IconDocument,K_e as IconDocumentReadOnly,$n as IconExpert,n5e as IconFx,q_e as IconInstance,a5e as IconLogout,DM as IconNoIcon,fr as IconOpen,G3e as IconPicker,Gxe as IconSelector,Ai as IconState,M5e as IconVacuum,xr as Image,Z3e as InfoBox,R as LegacyConnection,ud as Loader,r5e as LoaderMV,i5e as LoaderPT,s5e as LoaderVendor,I4 as Logo,p4 as MDUtils,l5e as Message,NSe as ObjectBrowser,it as ObjectBrowserClass,W3e as PERMISSION_ERROR,rt as PROGRESS,Oi as Router,V3e as STATES_NAME_ICONS,yd as SaveCloseButtons,de as Schedule,N5e as SelectFile,ESe as SelectID,X3e as SelectWithIcon,$i as SimpleCron,L5e as SimpleCronDialog,tSe as TabContainer,sSe as TabContent,iSe as TabHeader,K3e as TableResize,JEe as TextInput,q3e as TextWithIcon,Yg as Theme,e5e as ToggleThemeMenu,Kn as TreeTable,t5e as UploadImage,O as Utils,D4 as convertCronToText,e0 as copy,nL as cron2state,h4e as dictionary,C4 as extendDeviceTypeTranslation,aL as getAttrInObject,F3e as getSelectIdIcon,Zr as getSelectIdIconFromObjects,R3e as getSystemIcon,_3e as iobUriParse,j5e as iobUriRead,g5e as iobUriToString,y5e as moduleFederationShared,cN as pattern2RegEx,Md as printPrompt,S3e as setAttrInObject,Io as withWidth}; diff --git a/admin/assets/index-cbk_CvPb.js b/admin/assets/index-cbk_CvPb.js new file mode 100644 index 000000000..f9a962516 --- /dev/null +++ b/admin/assets/index-cbk_CvPb.js @@ -0,0 +1,930 @@ +import{c as U,j as Q,o as Pe,a as YM,b as vM,d as bM,P as S}from"./createSvgIcon-DMsh-YeH.js";import{i as f,R as M}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as j,c as Ne,C as Oe,a as nt,S as uL,Q as NN,b as LN,Y as lL,Z,$ as NL,a0 as LL,a1 as gL,a2 as jL,a3 as QM,a4 as yL,a5 as TL,a6 as dL,a7 as DL,a8 as hL,a9 as UM,aa as zL,ab as wL,ac as CL,ad as IL,ae as pL,af as AL,ag as mL,ah as OL,ai as EL,aj as fL,ak as xL,al as _L,am as $M,an as PM,ao as SL,ap as WM,D as kL,aq as YL,ar as vL,as as bL,at as BM,au as QL,av as UL,aw as $L,T as PL,I as Pi}from"./index-f32XoI0M.js";import{I as cn}from"./Save-BSBgRX7g.js";import{c as ir,g as WL}from"./_commonjsHelpers-Cpj98o6Y.js";import{u as BL}from"./useTheme-N2j2HWMZ.js";import{t as B}from"./index-Dm1jc4t6.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";const un=U(Q.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"}),"Add"),JL=U(Q.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack"),RL=U(Q.jsx("path",{d:"m10 17 5-5-5-5z"}),"ArrowRight"),FL=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 11h-3v3.75c0 1.24-1.01 2.25-2.25 2.25S8.5 17.99 8.5 16.75s1.01-2.25 2.25-2.25c.46 0 .89.14 1.25.38V11h4zm-3-4V3.5L18.5 9z"}),"AudioFile"),GL=U([Q.jsx("path",{d:"M16.5 12h-9c-.55 0-1 .45-1 1v1h11v-1c0-.55-.45-1-1-1M7.25 8.5h4v2h-4zm5.5 0h4v2h-4z"},"0"),Q.jsx("path",{d:"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-1 15h-1.5v-1.5h-11V17H5v-3.83c0-.66.25-1.26.65-1.72V9c0-1.1.9-2 2-2H11c.37 0 .72.12 1 .32.28-.2.63-.32 1-.32h3.35c1.1 0 2 .9 2 2v2.45c.4.46.65 1.06.65 1.72z"},"1")],"BedroomParent"),HL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2"}),"Bookmark"),VL=U(Q.jsx("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2m0 15-5-2.18L7 18V5h10z"}),"BookmarkBorder"),ZL=U(Q.jsx("path",{d:"M22 24H2v-4h20zM13.06 5.19l3.75 3.75L7.75 18H4v-3.75zm4.82 2.68-3.75-3.75 1.83-1.83c.39-.39 1.02-.39 1.41 0l2.34 2.34c.39.39.39 1.02 0 1.41z"}),"BorderColor"),XL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness4"),KL=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6"}),"Brightness5"),ca=U(Q.jsx("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6"}),"Brightness6"),qL=U(Q.jsx("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6m0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4"}),"Brightness7"),eg=U(Q.jsx("path",{d:"m22.7 19-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4"}),"Build"),tg=U(Q.jsx("path",{d:"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m0 18H4V8h16z"}),"CalendarToday"),ua=U(Q.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"}),"Code"),sg=U(Q.jsx("path",{d:"m20.71 5.63-2.34-2.34a.996.996 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42M6.92 19 5 17.08l8.06-8.06 1.92 1.92z"}),"Colorize"),ig=U(Q.jsx("path",{d:"m13.7826 15.1719 2.1213-2.1213 5.9963 5.9962-2.1213 2.1213zM17.5 10c1.93 0 3.5-1.57 3.5-3.5 0-.58-.16-1.12-.41-1.6l-2.7 2.7-1.49-1.49 2.7-2.7c-.48-.25-1.02-.41-1.6-.41C15.57 3 14 4.57 14 6.5c0 .41.08.8.21 1.16l-1.85 1.85-1.78-1.78.71-.71-1.41-1.41L12 3.49c-1.17-1.17-3.07-1.17-4.24 0L4.22 7.03l1.41 1.41H2.81l-.71.71 3.54 3.54.71-.71V9.15l1.41 1.41.71-.71 1.78 1.78-7.41 7.41 2.12 2.12L16.34 9.79c.36.13.75.21 1.16.21"}),"Construction"),rg=U(Q.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}),"ContentCopy"),gN=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2m-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3z"}),"CreateNewFolder"),og=U(Q.jsx("path",{d:"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2z"}),"Crop"),ng=U(Q.jsx("path",{d:"M4 7v2c0 .55-.45 1-1 1H2v4h1c.55 0 1 .45 1 1v2c0 1.65 1.35 3 3 3h3v-2H7c-.55 0-1-.45-1-1v-2c0-1.3-.84-2.42-2-2.83v-.34C5.16 11.42 6 10.3 6 9V7c0-.55.45-1 1-1h3V4H7C5.35 4 4 5.35 4 7m17 3c-.55 0-1-.45-1-1V7c0-1.65-1.35-3-3-3h-3v2h3c.55 0 1 .45 1 1v2c0 1.3.84 2.42 2 2.83v.34c-1.16.41-2 1.52-2 2.83v2c0 .55-.45 1-1 1h-3v2h3c1.65 0 3-1.35 3-3v-2c0-.55.45-1 1-1h1v-4z"}),"DataObject"),Kr=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm2 16H8v-2h8zm0-4H8v-2h8zm-3-5V3.5L18.5 9z"}),"Description"),ag=U(Q.jsx("path",{d:"M18.41 5.8 17.2 4.59c-.78-.78-2.05-.78-2.83 0l-2.68 2.68L3 15.96V20h4.04l8.74-8.74 2.63-2.63c.79-.78.79-2.05 0-2.83M6.21 18H5v-1.21l8.66-8.66 1.21 1.21zM11 20l4-4h6v4z"}),"DriveFileRenameOutline"),mi=U(Q.jsx("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit"),Mg=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error"),cg=U(Q.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore"),ug=U(Q.jsx("path",{d:"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3"}),"FindInPage"),lg=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m0 12H4V8h16z"}),"FolderOpen"),Ng=U(Q.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m-2.06 11L15 15.28 12.06 17l.78-3.33-2.59-2.24 3.41-.29L15 8l1.34 3.14 3.41.29-2.59 2.24z"}),"FolderSpecial"),Lg=U(Q.jsx("path",{d:"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-4.05 16.5-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13z"}),"FontDownload"),gg=U(Q.jsx("path",{d:"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"}),"FormatItalic"),jg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Image"),la=U(Q.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"}),"Info"),jN=U(Q.jsx("path",{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm7 7V3.5L18.5 9z"}),"InsertDriveFile"),yg=U(Q.jsx("path",{d:"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"}),"KeyboardReturn"),yN=U(Q.jsx("path",{d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5"}),"Link"),Tg=U(Q.jsx("path",{d:"M3 13h2v-2H3zm0 4h2v-2H3zm0-8h2V7H3zm4 4h14v-2H7zm0 4h14v-2H7zM7 7v2h14V7z"}),"List"),dg=U(Q.jsx("path",{d:"M19 5v14H5V5zm1.1-2H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9M11 7h6v2h-6zm0 4h6v2h-6zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7z"}),"ListAlt"),Dg=U(Q.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-5 14h-2V9h-2V7h4z"}),"LooksOne"),hg=U(Q.jsx("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3z"}),"MusicNote"),zg=U(Q.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),Na=U(Q.jsx("path",{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4m0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"}),"PersonOutlined"),wg=U(Q.jsx("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Photo"),Sr=U(Q.jsx("path",{d:"M5 4v2h14V4zm0 10h4v6h6v-6h4l-7-7z"}),"Publish"),TN=U(Q.jsx("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh"),La=U(Q.jsx("path",{d:"m20.2 5.9.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7m-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1s1.8.3 2.5 1zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2M8 18H6v-2h2zm3.5 0h-2v-2h2zm3.5 0h-2v-2h2z"}),"Router"),Cg=U(Q.jsx("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"SaveAlt"),ln=U(Q.jsx("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings"),kr=U(Q.jsx("path",{d:"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2m-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69s.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69"}),"SettingsApplications"),Ig=U(Q.jsx("path",{d:"m3.5 18.49 6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z"}),"ShowChart"),ga=U(Q.jsx("path",{d:"M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m3.61 6.34c1.07 0 1.93.86 1.93 1.93s-.86 1.93-1.93 1.93-1.93-.86-1.93-1.93c-.01-1.07.86-1.93 1.93-1.93m-6-1.58c1.3 0 2.36 1.06 2.36 2.36s-1.06 2.36-2.36 2.36-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36m0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68M11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09"}),"SupervisedUserCircle"),pg=U(Q.jsx("path",{d:"M2.5 4v3h5v12h3V7h5V4zm19 5h-9v3h3v7h3v-7h3z"}),"TextFields"),Ag=U(Q.jsx("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFileOutlined"),mg=U(Q.jsx("path",{d:"M16 13h-3V3h-2v10H8l4 4zM4 19v2h16v-2z"}),"VerticalAlignBottom"),Og=U(Q.jsx("path",{d:"M8 11h3v10h2V11h3l-4-4zM4 3v2h16V3z"}),"VerticalAlignTop"),Eg=U(Q.jsx("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11z"}),"Videocam"),fg=U(Q.jsx("path",{d:"M14.67 5v14H9.33V5zm1 14H21V5h-5.33zm-7.34 0V5H3v14z"}),"ViewColumn"),xg=U(Q.jsx("path",{d:"M4 15h16v-2H4zm0 4h16v-2H4zm0-8h16V9H4zm0-6v2h16V5z"}),"ViewHeadline"),_g=U(Q.jsx("path",{d:"M14.67 5v6.5H9.33V5zm1 6.5H21V5h-5.33zm-1 7.5v-6.5H9.33V19zm1-6.5V19H21v-6.5zm-7.34 0H3V19h5.33zm0-1V5H3v6.5z"}),"ViewModule"),Sg=U(Q.jsx("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility"),kg=U(Q.jsx("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning"),Qs=U(Q.jsx("path",{d:"m1 9 2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9m8 8 3 3 3-3c-1.65-1.66-4.34-1.66-6 0m-4-4 2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13"}),"Wifi"),rr=U(Q.jsx("path",{d:"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53zM2 3.05 5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0"}),"WifiOff"),Oo=11/23/100;function JM(s){const e={r:0,g:0,b:0};if(s.length===7)e.r=parseInt(s.substring(1,3),16),e.g=parseInt(s.substring(3,5),16),e.b=parseInt(s.substring(5,7),16);else if(s.length===4){const t=s[1],i=s[2],r=s[3];e.r=parseInt(t+t,16),e.g=parseInt(i+i,16),e.b=parseInt(r+r,16)}return e}function Yg(s){return`#${Math.round(s.r).toString(16)}${Math.round(s.g).toString(16)}${Math.round(s.b).toString(16)}`}function vg(s,e,t){const i=JM(s),r=JM(e);return i.r+=r.r*(.05+Oo*(t-1)),i.g+=r.g*(.05+Oo*(t-1)),i.b+=r.b*(.05+Oo*(t-1)),Yg(i)}function RM(s,e){const t={};for(let i=1;i<=24;i++)t[`elevation${i}`]={backgroundColor:vg(s,e,i)};return t}function bg(s,e){var n,a,c,l,N,u,L,g,y,T,d;let t,i;s==="dark"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#121212","#fff")},t={name:s,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="blue"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):s==="colored"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[200],"&:hover":{color:Pe[100]}}},MuiPaper:RM("#151d21","#fff")},t={name:s,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):s==="PT"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):s==="DX"?(i={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(i={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:Pe[400],"&:hover":{color:Pe[300]}}}},t={name:s,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(a=(n=t.palette)==null?void 0:n.primary)==null?void 0:a.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:YM[300],dark:YM[400]});const r=vM(t),o=r.palette;return vM(r,{...e||void 0,components:{...i,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(c=o.grey)==null?void 0:c[300],color:o.getContrastText&&((l=o.grey)!=null&&l[300])?o.getContrastText(o.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(N=o.text)==null?void 0:N.primary,borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(u=o.action)==null?void 0:u.disabledBackground}`},"&:hover":{borderColor:o.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:bM(((L=o.text)==null?void 0:L.primary)||"",((g=o.action)==null?void 0:g.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(y=o.text)==null?void 0:y.primary,"&:hover":{backgroundColor:bM(((T=o.text)==null?void 0:T.primary)||"",((d=o.action)==null?void 0:d.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function Qg(){let s,e;const t=new Promise((i,r)=>{s=i,e=r});return t.resolve=s,t.reject=e,t}function Nn(s){return(s==null?void 0:s.rows.map(e=>e.value).filter(e=>!!e))??[]}function Tt(s){return s!=null&&s.startsWith("system.host.")||(s=`system.host.${s}`),s}function ui(s){return s!=null&&s.startsWith("system.host.")&&(s=s.substring(12)),s}function FM(s){return new Promise(e=>{setTimeout(e,s)})}function or(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}var rt;(function(s){s[s.CONNECTING=0]="CONNECTING",s[s.CONNECTED=1]="CONNECTED",s[s.OBJECTS_LOADED=2]="OBJECTS_LOADED",s[s.READY=3]="READY"})(rt||(rt={}));var Ie;(function(s){s.PERMISSION_ERROR="permissionError",s.NOT_CONNECTED="notConnectedError",s.TIMEOUT="timeout",s.NOT_ADMIN="Allowed only in admin",s.NOT_SUPPORTED="Not supported"})(Ie||(Ie={}));const J3e=Ie.PERMISSION_ERROR;Ie.NOT_CONNECTED;const Ug=["material","echarts","vis"];class ze{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=Qg();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let i=1;i<=30;i++){if(window.io||window.iob)return e();await FM(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,i=(this.props.protocol||window.location.protocol).replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),ze.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a.pop(),Ug.includes(a[a.length-1])&&a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}`:`${i}://${e}`;return this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",n=>{window.addEventListener("storage",this.onAccessTokenUpdated);const a=ze.readTokens();if(a&&!a.owner){const c=Date.now();this.saveTokens({access_token:a.access_token,refresh_token:a.refresh_token,expires_in:Math.round((a.expires_in.getTime()-c)/1e3),refresh_token_expires_in:Math.round((a.refresh_token_expires_in.getTime()-c)/1e3),token_type:"Bearer"},a.stayLoggedIn)}this.onReadyDone=!1,n!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(c=>{const[l,N,u]=c.version.split(".");parseInt(l,10)*1e4+parseInt(N,10)*100+parseInt(u,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(g,y)=>this.onPreConnect(g,y))}).catch(c=>this.onError({message:c.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(c,l)=>{this.onPreConnect(c,l)})}),this._socket.on("reconnect",()=>{var n,a;this.onReadyDone=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(c=>c(!0)))}),this._socket.on("disconnect",()=>{var n,a;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(a=(n=this.props).onProgress)==null||a.call(n,rt.CONNECTING),this.onConnectionHandlers.forEach(c=>c(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a;n==null?a="":typeof n.toString=="function"?a=n.toString():(a=JSON.stringify(n),console.error(`Received strange error: ${a}`)),a.includes("User not authorized")?this.authenticate():a.includes("websocket error")?(console.error(`Socket Error => reload: ${n}`),window.location.reload()):console.error(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>{setTimeout(()=>this.objectChange(n,a),0)}),this._socket.on("stateChange",(n,a)=>{setTimeout(()=>this.stateChange(n,a),0)}),this._socket.on("im",(n,a,c)=>{setTimeout(()=>this.instanceMessage(n,a,c),0)}),this._socket.on("fileChange",(n,a,c)=>{setTimeout(()=>this.fileChange(n,a,c),0)}),this._socket.on("cmdStdout",(n,a)=>{var c;(c=this.onCmdStdoutHandler)==null||c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;(c=this.onCmdStderrHandler)==null||c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;(c=this.onCmdExitHandler)==null||c.call(this,n,a)}),Promise.resolve()}onPreConnect(e,t){var i,r;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(o=>console.error(`Cannot load data: ${o}`)):(r=(i=this.props).onProgress)==null||r.call(i,rt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(o=>o(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[i,r,o,n,a]=e.split(";"),c=new Date(r);return c.getTime(){if(e.key==="iob_tokens"){const t=ze.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,i)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):i?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(i=>{if(i.ok)return i.json();throw new Error("Cannot refresh access token")}).then(i=>{if(i.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${i.access_token}`),this.saveTokens(i,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(i.access_token);else throw new Error("Cannot get access token")}).catch(i=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${i}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(i),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const r=JSON.parse(t);if(e{r?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,i)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,i))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>{i?t(i):e(r||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(i=>console.error(`Cannot load data: ${i}`)),this.loaded)return;await FM(ze.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,i,r,o,n,a,c,l;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(N){this.onError(`Cannot read user permissions: ${N}`);return}try{this.props.admin5only&&!ze.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(N){this.onError(`Cannot read system config: ${N}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(i=(t=this.props).onLanguage)==null||i.call(t,this.systemLang),this.loaded=!0,(o=(r=this.props).onProgress)==null||o.call(r,rt.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(a=(n=this.props).onProgress)==null||a.call(n,rt.READY),this.onReadyDone||(this.onReadyDone=!0,(l=(c=this.props).onReady)==null||l.call(c,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,i,r;e.length===3?[t,i,r]=e:([t,r]=e,i=!1);let o;if(Array.isArray(t)?o=t:o=[t],typeof r!="function")throw new Error("The state change handler must be a function!");const n=[];for(let a=0;aa.includes("*"))){let a;for(let c=0;cconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const a=await(ze.isWeb()?this.getStates(o):this.getForeignStates(o));if(a)for(const[c,l]of Object.entries(a)){const N=r(c,l);N instanceof Promise&&N.catch(u=>console.error(`Cannot call state change handler: ${u}`))}}catch(a){console.error(`Cannot getState "${o.join(", ")}": ${a.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var o;let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let n=0;n{try{const N=l(e,t,i);N instanceof Promise&&N.catch(u=>console.error(`Cannot call object change handler: ${u}`))}catch(N){console.error(`Error by callback of objectChange: ${N}`)}});if(r){const a=(n=(o=this.props).onObjectChange)==null?void 0:n.call(o,e,t);a instanceof Promise&&a.catch(c=>console.error(`Cannot call object change handler: ${c}`))}}stateChange(e,t){for(const i of Object.values(this.statesSubscribes))if(i.reg.test(e))for(const r of i.cbs)try{const o=r(e,t??null);o instanceof Promise&&o.catch(n=>console.error(`Cannot call state change handler: ${n}`))}catch(o){console.error(`Error by callback of stateChanged: ${o}`)}}instanceMessage(e,t,i){var r;(r=this._instanceSubscriptions[t])==null||r.forEach(o=>{if(o.messageType===e){const n=o.callback(i,t,e);n instanceof Promise&&n.catch(a=>console.error(`Cannot call instance message handler: ${a}`))}})}fileChange(e,t,i){for(const r of Object.values(this.filesSubscribes))if(r.regId.test(e)&&r.regFilePattern.test(t))for(const o of r.cbs)try{o(e,t,i)}catch(n){console.error(`Error by callback of fileChange: ${n}`)}}async subscribeFiles(e,t,i){if(typeof i!="function")throw new Error("The state change handler must be a function!");let r;Array.isArray(t)?r=t:r=[t];const o=[];for(let n=0;n{const u={elapsed:!1,clearTimeout:()=>{}};let L;i!==!1&&(L=setTimeout(()=>{u.elapsed=!0,r==null||r(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(Ie.TIMEOUT))},i??this.props.cmdTimeout),u.clearTimeout=()=>{clearTimeout(L)});try{await a(l,N,u)}catch(g){e&&this._promises[e]instanceof Promise&&delete this._promises[e],N(new Error(g.toString()))}});return e&&(this._promises[e]=c),c}resetCache(e,t){t?Object.keys(this._promises).filter(i=>i.startsWith(e)).forEach(i=>{delete this._promises[i]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getStates",e,(r,o)=>{this.states=o??{},r?i(r):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(r,o)=>{r?i(r):t(o)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>{r?i(r):t(o)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setBinaryState",e,t,o=>{o?r(o):i()})}})}setState(e,t,i){return typeof i=="boolean"&&(t={val:t,ack:i}),this.request({commandTimeout:!1,executor:(r,o)=>{if(e&&e===this.ignoreState){let n;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?n=t:n={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=n,this.statesSubscribes[e])for(const a of this.statesSubscribes[e].cbs)try{const c=a(e,n);c instanceof Promise&&c.catch(l=>console.error(`Cannot call state change handler: ${l}`))}catch(c){console.error(`Error by callback of stateChanged: ${c}`)}r();return}this._socket.emit("setState",e,t,n=>{n?o(n):r()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{if(!e&&this.objects){i(this.objects);return}this._socket.emit(ze.isWeb()?"getObjects":"getAllObjects",(o,n)=>{var a,c;t||(c=(a=this.props).onProgress)==null||c.call(a,rt.OBJECTS_LOADED),o?r(o):(this.objects=n??{},i(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjects",e,(r,o)=>{r?i(r):t(o)})}})}_subscribe(e){var t,i;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("subscribeObjects",r),Object.keys(this.objectsSubscribes).forEach(o=>this._socket.emit("subscribeObjects",o)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("subscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("subscribeFiles",n,a)})}else if(!e&&this.subscribed){this.subscribed=!1,(i=this.props.autoSubscribes)!=null&&i.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const r=Object.keys(this.objectsSubscribes);r.length&&this._socket.emit("unsubscribeObjects",r),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(o=>this._socket.emit("unsubscribe",o)),Object.keys(this.filesSubscribes).forEach(o=>{const[n,a]=o.split("$%$");this._socket.emit("unsubscribeFiles",n,a)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("requireLog",e,r=>{r?i(r):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObject",e,{maintenance:t},o=>{o?r(o):i()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("delObjects",e,{maintenance:t},o=>{o?r(o):i()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("setObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,i)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(r,o)=>{r?i(r):t(o)})}})}sendTo(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendTo",e,t,i,o=>{r(o)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("extendObject",e,t,o=>{o?r(o):i()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(o,n)=>{if(o)r(o);else{const a={};if(n)for(let c=0;c{i=i||"",r=r||"香",this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(a);else{const l={};if(c&&c.rows)for(let N=0;N{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>{var o;i?t(i):e((o=r.rows)==null?void 0:o.map(n=>n.value).filter(n=>!!n))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>{o?r(o):i(n)})}})}readFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit(i?"readFile64":"readFile",e,t,(n,a,c)=>{n?o(n):r({file:a,mimeType:c})})}})}writeFile64(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>{n?o(n):r()});else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>{a?o(a):r()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o?r(o):i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o?r(o):i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n?o(n):r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n?o(n):r()})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c?n(c):o())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let i=await this.getObject("system.config");i??={},i.common??={},i.native??={},t(i)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>{r?i(r):(o??={},o.common??={},o.native??={},t(o))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>{r?i(r):t(o??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>{o?r(o):i(n)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>{o?r(o):i(n)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>{o?r(o):i({values:n,sessionId:c,step:a})})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(r):t({version:o,serverName:n})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(i,r)=>{i?t(i):e(r)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>{o?r(o):i(!!n)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,i)=>{e(i)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var i;const t=await this.getObject("system.meta.uuid");e((i=t==null?void 0:t.native)==null?void 0:i.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>{o?r(o):i(n)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=e?`system.adapter.${e}.`:"system.adapter.",o=`${r}香`,n=await this.getObjectViewSystem("instance",r,o),a=Object.values(n);i(e?a.filter(c=>c.common.name===e):a)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),o=Object.values(r);i(e?o.filter(n=>n.common.name===e):o)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",i=>{i?t(i):e(null)})}})}subscribeOnInstance(e,t,i,r){return this.request({commandTimeout:!1,executor:(o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(a):c&&(c.error?n(c.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c)))})}})}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(this.request({commandTimeout:!1,executor:(N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>L?u(L):N(g))}}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>!!a.find(c=>c)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:i=>(this._socket.emit("log",e,t),i(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function $g(s,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(s.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(s.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(s.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(r=>r.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:s,type:t}}function Pg(s){var i,r,o,n;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((r=(i=s.native)==null?void 0:i.hardware)!=null&&r.networkInterfaces){const a=(n=(o=s.native)==null?void 0:o.hardware)==null?void 0:n.networkInterfaces;Object.keys(a).forEach(c=>{a[c].forEach(l=>{l.family!=="IPv6"?e.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv4"}):t.push({name:`[${l.family}] ${l.address} - ${c}`,address:l.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class R3e extends ze{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var r;const i=await this.getObject("system.certificates");(r=i==null?void 0:i.native)!=null&&r.certificates?t(Object.entries(i.native.certificates).map(([o,n])=>$g(o,n)).filter(o=>!!o)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>{i(r)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:i=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,r=>{i(r)})}})}upgradeController(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:i},n=>{const a=n;a.error?o(a.error):r(a.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("updateLicenses",e,t,(o,n)=>{o?r(o):i(n)})}})}upgradeOsPackages(e,t,i){return this.request({commandTimeout:!1,executor:r=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!i},o=>{r(o)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("readLogs",e,(r,o)=>{r&&i(r),t(o)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>{r&&i(r),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFile",e,t,o=>{o&&r(o),i()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(i,r)=>{this._socket.emit("deleteFolder",e,t,o=>{o&&r(o),i()})}})}rename(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("rename",e,t,i,n=>{n&&o(n),r()})}})}renameFile(e,t,i){return this.request({commandTimeout:!1,executor:(r,o)=>{this._socket.emit("renameFile",e,t,i,n=>{n&&o(n),r()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(r):t(Nn(o))})}})}renameGroup(e,t,i){return this.request({commandTimeout:!1,executor:async r=>{const o=await this.getGroups(!0),n=o.filter(c=>c._id.startsWith(`${e}.`));for(const c of n){const l=c._id,N=t+c._id.substring(e.length);c._id=N,await this.setObject(N,c),await this.delObject(l)}const a=o.find(c=>c._id===e);if(a){const c=a._id;a._id=t,i!==void 0&&(a.common??={},a.common.name=i),await this.setObject(t,a),await this.delObject(c)}r()}})}getHostInfo(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfo"'):a?r(a):o('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,i){return e=Tt(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getHostInfoShort"'):a?r(a):o('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,i,r){return this.request({cacheKey:`repository_${e}`,forceUpdate:i,commandTimeout:r,executor:(o,n,a)=>{this._socket.emit("sendToHost",e,"getRepository",t,c=>{a.elapsed||(a.clearTimeout(),c===Ie.PERMISSION_ERROR?n('May not read "getRepository"'):c?o(c):n('Cannot read "getRepository"'))})}})}getInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getInstalled"'):a?r(a):o('Cannot read "getInstalled"'))})}})}cmdExec(e,t,i,r){return this.request({commandTimeout:r,executor:(o,n,a)=>{e=Tt(e),this._socket.emit("cmdExec",e,i,t,c=>{a.elapsed||(a.clearTimeout(),c&&n(c),o())})}})}readBaseSettings(e){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,o=>{r.elapsed||(r.clearTimeout(),o===Ie.PERMISSION_ERROR?i('May not read "BaseSettings"'):o?o.error?i(new Error(o.error)):t(o):i('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=ui(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,n=>{o.elapsed||(o.clearTimeout(),n===Ie.PERMISSION_ERROR?r('May not write "BaseSettings"'):n?i(n):r('Cannot write "BaseSettings"'))})}})}restartController(e){return e=ui(e),this.request({executor:(t,i,r)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{r.elapsed||(r.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=ui(e),this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getDiagData",t,n=>{o.elapsed||(o.clearTimeout(),i(n||null))})}})}changePassword(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("changePassword",e,t,n=>{o.elapsed||(o.clearTimeout(),n&&r(n),i())})}})}getIpAddresses(e,t){return e=Tt(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async i=>{const r=await this.getObject(e);i((r==null?void 0:r.common.address)??[])}})}getHostByIp(e,t){return e=ui(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(i,r,o)=>{this._socket.emit("getHostByIp",e,(n,a)=>{if(o.elapsed)return;o.clearTimeout();const{IPs4:c,IPs6:l}=Pg(a);i([...c,...l])})}})}encrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("encrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}decrypt(e){return this.request({executor:(t,i,r)=>{this._socket.emit("decrypt",e,(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}chmodFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chmodFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}chownFile(e,t,i){return this.request({executor:(r,o,n)=>{this._socket.emit("chownFile",e,t,i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}clearNotifications(e,t){return this.request({executor:(i,r,o)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},n=>{o.elapsed||(o.clearTimeout(),i(n))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,i)=>{this._socket.emit("getIsEasyModeStrict",(r,o)=>{i.elapsed||(i.clearTimeout(),r&&t(r),e(!!o))})}})}getEasyMode(){return this.request({executor:(e,t,i)=>{this._socket.emit("getEasyMode",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(new Error(r)):e(o))})}})}getRatings(e){return this.request({executor:(t,i,r)=>{this._socket.emit("getRatings",!!e,(o,n)=>{r.elapsed||(r.clearTimeout(),o?i(new Error(o)):t(n))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(i,r,o)=>{try{const n=await fetch("./session",{signal:t.signal});if(o.elapsed)return;o.clearTimeout();const a=await n.json();i(a)}catch(n){r(`getCurrentSession: ${n}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,i)=>{this._socket.emit("getCurrentInstance",(r,o)=>{i.elapsed||(i.clearTimeout(),r?t(r):e(o))})}})}getAdapterInstances(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`instances_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapterInstances",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getAdapters(e,t){let i;return typeof e=="boolean"?(t=e,i=""):i=e||"",this.request({cacheKey:`adapter_${i}`,forceUpdate:t,executor:(r,o,n)=>{this._socket.emit("getAdapters",i,(a,c)=>{n.elapsed||(n.clearTimeout(),a&&o(a),r(c))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactAdapters",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactInstances",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,i){return e=Tt(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactInstalled",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactInstalled"'):a?r(a):o('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,i){return e=Tt(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:i,executor:(r,o,n)=>{this._socket.emit("getCompactRepository",e,a=>{n.elapsed||(n.clearTimeout(),a===Ie.PERMISSION_ERROR?o('May not read "getCompactRepository"'):a?r(a):o('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactHosts",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,i,r)=>{this._socket.emit("getCompactSystemRepositories",(o,n)=>{r.elapsed||(r.clearTimeout(),o&&i(o),t(n))})}})}}const X=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Xt="9.30.0",ie=globalThis;function qr(){return eo(ie),ie}function eo(s){const e=s.__SENTRY__=s.__SENTRY__||{};return e.version=e.version||Xt,e[Xt]=e[Xt]||{}}function to(s,e,t=ie){const i=t.__SENTRY__=t.__SENTRY__||{},r=i[Xt]=i[Xt]||{};return r[s]||(r[s]=e())}const dN=Object.prototype.toString;function ja(s){switch(dN.call(s)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return bt(s,Error)}}function Vs(s,e){return dN.call(s)===`[object ${e}]`}function DN(s){return Vs(s,"ErrorEvent")}function GM(s){return Vs(s,"DOMError")}function Wg(s){return Vs(s,"DOMException")}function ht(s){return Vs(s,"String")}function ya(s){return typeof s=="object"&&s!==null&&"__sentry_template_string__"in s&&"__sentry_template_values__"in s}function Ta(s){return s===null||ya(s)||typeof s!="object"&&typeof s!="function"}function _i(s){return Vs(s,"Object")}function so(s){return typeof Event<"u"&&bt(s,Event)}function Bg(s){return typeof Element<"u"&&bt(s,Element)}function Jg(s){return Vs(s,"RegExp")}function io(s){return!!(s!=null&&s.then&&typeof s.then=="function")}function Rg(s){return _i(s)&&"nativeEvent"in s&&"preventDefault"in s&&"stopPropagation"in s}function bt(s,e){try{return s instanceof e}catch{return!1}}function hN(s){return!!(typeof s=="object"&&s!==null&&(s.__isVue||s._isVue))}function Fg(s){return typeof Request<"u"&&bt(s,Request)}const da=ie,Gg=80;function zN(s,e={}){if(!s)return"";try{let t=s;const i=5,r=[];let o=0,n=0;const a=" > ",c=a.length;let l;const N=Array.isArray(e)?e:e.keyAttrs,u=!Array.isArray(e)&&e.maxStringLength||Gg;for(;t&&o++1&&n+r.length*c+l.length>=u));)r.push(l),n+=l.length,t=t.parentNode;return r.reverse().join(a)}catch{return""}}function Hg(s,e){const t=s,i=[];if(!(t!=null&&t.tagName))return"";if(da.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}i.push(t.tagName.toLowerCase());const r=e!=null&&e.length?e.filter(n=>t.getAttribute(n)).map(n=>[n,t.getAttribute(n)]):null;if(r!=null&&r.length)r.forEach(n=>{i.push(`[${n[0]}="${n[1]}"]`)});else{t.id&&i.push(`#${t.id}`);const n=t.className;if(n&&ht(n)){const a=n.split(/\s+/);for(const c of a)i.push(`.${c}`)}}const o=["aria-label","type","name","title","alt"];for(const n of o){const a=t.getAttribute(n);a&&i.push(`[${n}="${a}"]`)}return i.join("")}function Da(){try{return da.document.location.href}catch{return""}}function Vg(s){if(!da.HTMLElement)return null;let e=s;const t=5;for(let i=0;i{const o=Yr[r];t[r]=e[r],e[r]=o});try{return s()}finally{i.forEach(r=>{e[r]=t[r]})}}function Xg(){let s=!1;const e={enable:()=>{s=!0},disable:()=>{s=!1},isEnabled:()=>s};return X?Ln.forEach(t=>{e[t]=(...i)=>{s&&Zs(()=>{ie.console[t](`${Zg}[${t}]:`,...i)})}}):Ln.forEach(t=>{e[t]=()=>{}}),e}const R=to("logger",Xg);function vr(s,e=0){return typeof s!="string"||e===0||s.length<=e?s:`${s.slice(0,e)}...`}function HM(s,e){if(!Array.isArray(s))return"";const t=[];for(let i=0;iKg(s,i,t))}function Ue(s,e,t){if(!(e in s))return;const i=s[e];if(typeof i!="function")return;const r=t(i);typeof r=="function"&&wN(r,i);try{s[e]=r}catch{X&&R.log(`Failed to replace method "${e}" in object`,s)}}function Kt(s,e,t){try{Object.defineProperty(s,e,{value:t,writable:!0,configurable:!0})}catch{X&&R.log(`Failed to add non-enumerable property "${e}" to object`,s)}}function wN(s,e){try{const t=e.prototype||{};s.prototype=e.prototype=t,Kt(s,"__sentry_original__",e)}catch{}}function ha(s){return s.__sentry_original__}function CN(s){if(ja(s))return{message:s.message,name:s.name,stack:s.stack,...ZM(s)};if(so(s)){const e={type:s.type,target:VM(s.target),currentTarget:VM(s.currentTarget),...ZM(s)};return typeof CustomEvent<"u"&&bt(s,CustomEvent)&&(e.detail=s.detail),e}else return s}function VM(s){try{return Bg(s)?zN(s):Object.prototype.toString.call(s)}catch{return""}}function ZM(s){if(typeof s=="object"&&s!==null){const e={};for(const t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t]=s[t]);return e}else return{}}function qg(s,e=40){const t=Object.keys(CN(s));t.sort();const i=t[0];if(!i)return"[object has no keys]";if(i.length>=e)return vr(i,e);for(let r=t.length;r>0;r--){const o=t.slice(0,r).join(", ");if(!(o.length>e))return r===t.length?o:vr(o,e)}return""}function ej(){const s=ie;return s.crypto||s.msCrypto}function Je(s=ej()){let e=()=>Math.random()*16;try{if(s!=null&&s.randomUUID)return s.randomUUID().replace(/-/g,"");s!=null&&s.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return s.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function IN(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)==null?void 0:t[0]}function Vt(s){const{message:e,event_id:t}=s;if(e)return e;const i=IN(s);return i?i.type&&i.value?`${i.type}: ${i.value}`:i.type||i.value||t||"":t||""}function gn(s,e,t){const i=s.exception=s.exception||{},r=i.values=i.values||[],o=r[0]=r[0]||{};o.value||(o.value=e||""),o.type||(o.type="Error")}function Rs(s,e){const t=IN(s);if(!t)return;const i={type:"generic",handled:!0},r=t.mechanism;if(t.mechanism={...i,...r,...e},e&&"data"in e){const o={...r==null?void 0:r.data,...e.data};t.mechanism.data=o}}function XM(s){if(tj(s))return!0;try{Kt(s,"__sentry_captured__",!0)}catch{}return!1}function tj(s){try{return s.__sentry_captured__}catch{}}const pN=1e3;function Wi(){return Date.now()/pN}function sj(){const{performance:s}=ie;if(!(s!=null&&s.now))return Wi;const e=Date.now()-s.now(),t=s.timeOrigin==null?e:s.timeOrigin;return()=>(t+s.now())/pN}const zt=sj();function ij(s){const e=zt(),t={sid:Je(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>oj(t)};return s&&Fs(t,s),t}function Fs(s,e={}){if(e.user&&(!s.ipAddress&&e.user.ip_address&&(s.ipAddress=e.user.ip_address),!s.did&&!e.did&&(s.did=e.user.id||e.user.email||e.user.username)),s.timestamp=e.timestamp||zt(),e.abnormal_mechanism&&(s.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(s.ignoreDuration=e.ignoreDuration),e.sid&&(s.sid=e.sid.length===32?e.sid:Je()),e.init!==void 0&&(s.init=e.init),!s.did&&e.did&&(s.did=`${e.did}`),typeof e.started=="number"&&(s.started=e.started),s.ignoreDuration)s.duration=void 0;else if(typeof e.duration=="number")s.duration=e.duration;else{const t=s.timestamp-s.started;s.duration=t>=0?t:0}e.release&&(s.release=e.release),e.environment&&(s.environment=e.environment),!s.ipAddress&&e.ipAddress&&(s.ipAddress=e.ipAddress),!s.userAgent&&e.userAgent&&(s.userAgent=e.userAgent),typeof e.errors=="number"&&(s.errors=e.errors),e.status&&(s.status=e.status)}function rj(s,e){let t={};s.status==="ok"&&(t={status:"exited"}),Fs(s,t)}function oj(s){return{sid:`${s.sid}`,init:s.init,started:new Date(s.started*1e3).toISOString(),timestamp:new Date(s.timestamp*1e3).toISOString(),status:s.status,errors:s.errors,did:typeof s.did=="number"||typeof s.did=="string"?`${s.did}`:void 0,duration:s.duration,abnormal_mechanism:s.abnormal_mechanism,attrs:{release:s.release,environment:s.environment,ip_address:s.ipAddress,user_agent:s.userAgent}}}function Bi(s,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(s&&Object.keys(e).length===0)return s;const i={...s};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=Bi(i[r],e[r],t-1));return i}const jn="_sentrySpan";function KM(s,e){e?Kt(s,jn,e):delete s[jn]}function qM(s){return s[jn]}function ec(){return Je()}function AN(){return Je().substring(16)}const nj=100;class wt{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:ec(),sampleRand:Math.random()}}clone(){const e=new wt;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,KM(e,qM(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Fs(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,i=t instanceof wt?t.getScopeData():_i(t)?e:void 0,{tags:r,extra:o,user:n,contexts:a,level:c,fingerprint:l=[],propagationContext:N}=i||{};return this._tags={...this._tags,...r},this._extra={...this._extra,...o},this._contexts={...this._contexts,...a},n&&Object.keys(n).length&&(this._user=n),c&&(this._level=c),l.length&&(this._fingerprint=l),N&&(this._propagationContext=N),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,KM(this,void 0),this._attachments=[],this.setPropagationContext({traceId:ec(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var o;const i=typeof t=="number"?t:nj;if(i<=0)return this;const r={timestamp:Wi(),...e,message:e.message?vr(e.message,2048):e.message};return this._breadcrumbs.push(r),this._breadcrumbs.length>i&&(this._breadcrumbs=this._breadcrumbs.slice(-i),(o=this._client)==null||o.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:qM(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=Bi(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const i=(t==null?void 0:t.event_id)||Je();if(!this._client)return R.warn("No client configured on scope - will not capture exception!"),i;const r=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:i},this),i}captureMessage(e,t,i){const r=(i==null?void 0:i.event_id)||Je();if(!this._client)return R.warn("No client configured on scope - will not capture message!"),r;const o=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:o,...i,event_id:r},this),r}captureEvent(e,t){const i=(t==null?void 0:t.event_id)||Je();return this._client?(this._client.captureEvent(e,{...t,event_id:i},this),i):(R.warn("No client configured on scope - will not capture event!"),i)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function aj(){return to("defaultCurrentScope",()=>new wt)}function Mj(){return to("defaultIsolationScope",()=>new wt)}class cj{constructor(e,t){let i;e?i=e:i=new wt;let r;t?r=t:r=new wt,this._stack=[{scope:i}],this._isolationScope=r}withScope(e){const t=this._pushScope();let i;try{i=e(t)}catch(r){throw this._popScope(),r}return io(i)?i.then(r=>(this._popScope(),r),r=>{throw this._popScope(),r}):(this._popScope(),i)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Gs(){const s=qr(),e=eo(s);return e.stack=e.stack||new cj(aj(),Mj())}function uj(s){return Gs().withScope(s)}function lj(s,e){const t=Gs();return t.withScope(()=>(t.getStackTop().scope=s,e(s)))}function tc(s){return Gs().withScope(()=>s(Gs().getIsolationScope()))}function Nj(){return{withIsolationScope:tc,withScope:uj,withSetScope:lj,withSetIsolationScope:(s,e)=>tc(e),getCurrentScope:()=>Gs().getScope(),getIsolationScope:()=>Gs().getIsolationScope()}}function za(s){const e=eo(s);return e.acs?e.acs:Nj()}function Ct(){const s=qr();return za(s).getCurrentScope()}function Ji(){const s=qr();return za(s).getIsolationScope()}function Lj(){return to("globalScope",()=>new wt)}function gj(...s){const e=qr(),t=za(e);if(s.length===2){const[i,r]=s;return i?t.withSetScope(i,r):t.withScope(r)}return t.withScope(s[0])}function Ee(){return Ct().getClient()}function jj(s){const e=s.getPropagationContext(),{traceId:t,parentSpanId:i,propagationSpanId:r}=e,o={trace_id:t,span_id:r||AN()};return i&&(o.parent_span_id=i),o}const yj="sentry.source",Tj="sentry.sample_rate",dj="sentry.previous_trace_sample_rate",Dj="sentry.op",hj="sentry.origin",mN="sentry.profile_id",ON="sentry.exclusive_time",zj=0,wj=1,Cj="_sentryScope",Ij="_sentryIsolationScope";function EN(s){return{scope:s[Cj],isolationScope:s[Ij]}}function pj(s){if(typeof s=="boolean")return Number(s);const e=typeof s=="string"?parseFloat(s):s;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Aj="sentry-",mj=/^sentry-/;function Oj(s){const e=Ej(s);if(!e)return;const t=Object.entries(e).reduce((i,[r,o])=>{if(r.match(mj)){const n=r.slice(Aj.length);i[n]=o}return i},{});if(Object.keys(t).length>0)return t}function Ej(s){if(!(!s||!ht(s)&&!Array.isArray(s)))return Array.isArray(s)?s.reduce((e,t)=>{const i=sc(t);return Object.entries(i).forEach(([r,o])=>{e[r]=o}),e},{}):sc(s)}function sc(s){return s.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,i])=>(t&&i&&(e[t]=i),e),{})}const fN=1;let ic=!1;function fj(s){const{spanId:e,traceId:t,isRemote:i}=s.spanContext(),r=i?e:wa(s).parent_span_id,o=EN(s).scope,n=i?(o==null?void 0:o.getPropagationContext().propagationSpanId)||AN():e;return{parent_span_id:r,span_id:n,trace_id:t}}function xj(s){if(s&&s.length>0)return s.map(({context:{spanId:e,traceId:t,traceFlags:i,...r},attributes:o})=>({span_id:e,trace_id:t,sampled:i===fN,attributes:o,...r}))}function rc(s){return typeof s=="number"?oc(s):Array.isArray(s)?s[0]+s[1]/1e9:s instanceof Date?oc(s.getTime()):zt()}function oc(s){return s>9999999999?s/1e3:s}function wa(s){var i;if(Sj(s))return s.getSpanJSON();const{spanId:e,traceId:t}=s.spanContext();if(_j(s)){const{attributes:r,startTime:o,name:n,endTime:a,status:c,links:l}=s,N="parentSpanId"in s?s.parentSpanId:"parentSpanContext"in s?(i=s.parentSpanContext)==null?void 0:i.spanId:void 0;return{span_id:e,trace_id:t,data:r,description:n,parent_span_id:N,start_timestamp:rc(o),timestamp:rc(a)||void 0,status:Yj(c),op:r[Dj],origin:r[hj],links:xj(l)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function _j(s){const e=s;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function Sj(s){return typeof s.getSpanJSON=="function"}function kj(s){const{traceFlags:e}=s.spanContext();return e===fN}function Yj(s){if(!(!s||s.code===zj))return s.code===wj?"ok":s.message||"unknown_error"}const vj="_sentryRootSpan";function xN(s){return s[vj]||s}function nc(){ic||(Zs(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),ic=!0)}const _N=50,qt="?",ac=/\(error: (.*)\)/,Mc=/captureMessage|captureException/;function SN(...s){const e=s.sort((t,i)=>t[0]-i[0]).map(t=>t[1]);return(t,i=0,r=0)=>{const o=[],n=t.split(` +`);for(let a=i;a1024)continue;const l=ac.test(c)?c.replace(ac,"$1"):c;if(!l.match(/\S*Error: /)){for(const N of e){const u=N(l);if(u){o.push(u);break}}if(o.length>=_N+r)break}}return Qj(o.slice(r))}}function bj(s){return Array.isArray(s)?SN(...s):s}function Qj(s){if(!s.length)return[];const e=Array.from(s);return/sentryWrapped/.test(nr(e).function||"")&&e.pop(),e.reverse(),Mc.test(nr(e).function||"")&&(e.pop(),Mc.test(nr(e).function||"")&&e.pop()),e.slice(0,_N).map(t=>({...t,filename:t.filename||nr(e).filename,function:t.function||qt}))}function nr(s){return s[s.length-1]||{}}const Eo="";function Qt(s){try{return!s||typeof s!="function"?Eo:s.name||Eo}catch{return Eo}}function cc(s){const e=s.exception;if(e){const t=[];try{return e.values.forEach(i=>{i.stacktrace.frames&&t.push(...i.stacktrace.frames)}),t}catch{return}}}const Ar={},uc={};function rs(s,e){Ar[s]=Ar[s]||[],Ar[s].push(e)}function os(s,e){if(!uc[s]){uc[s]=!0;try{e()}catch(t){X&&R.error(`Error while instrumenting ${s}`,t)}}}function Ke(s,e){const t=s&&Ar[s];if(t)for(const i of t)try{i(e)}catch(r){X&&R.error(`Error while triggering instrumentation handler. +Type: ${s} +Name: ${Qt(i)} +Error:`,r)}}let fo=null;function Uj(s){const e="error";rs(e,s),os(e,$j)}function $j(){fo=ie.onerror,ie.onerror=function(s,e,t,i,r){return Ke("error",{column:i,error:r,line:t,msg:s,url:e}),fo?fo.apply(this,arguments):!1},ie.onerror.__SENTRY_INSTRUMENTED__=!0}let xo=null;function Pj(s){const e="unhandledrejection";rs(e,s),os(e,Wj)}function Wj(){xo=ie.onunhandledrejection,ie.onunhandledrejection=function(s){return Ke("unhandledrejection",s),xo?xo.apply(this,arguments):!0},ie.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Bj(s){var t;if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;const e=s||((t=Ee())==null?void 0:t.getOptions());return!!e&&(e.tracesSampleRate!=null||!!e.tracesSampler)}const Ca="production",Jj=/^o(\d+)\./,Rj=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Fj(s){return s==="http"||s==="https"}function oo(s,e=!1){const{host:t,path:i,pass:r,port:o,projectId:n,protocol:a,publicKey:c}=s;return`${a}://${c}${e&&r?`:${r}`:""}@${t}${o?`:${o}`:""}/${i&&`${i}/`}${n}`}function Gj(s){const e=Rj.exec(s);if(!e){Zs(()=>{console.error(`Invalid Sentry Dsn: ${s}`)});return}const[t,i,r="",o="",n="",a=""]=e.slice(1);let c="",l=a;const N=l.split("/");if(N.length>1&&(c=N.slice(0,-1).join("/"),l=N.pop()),l){const u=l.match(/^\d+/);u&&(l=u[0])}return kN({host:o,pass:r,path:c,projectId:l,port:n,protocol:t,publicKey:i})}function kN(s){return{protocol:s.protocol,publicKey:s.publicKey||"",pass:s.pass||"",host:s.host,port:s.port||"",path:s.path||"",projectId:s.projectId}}function Hj(s){if(!X)return!0;const{port:e,projectId:t,protocol:i}=s;return["protocol","publicKey","host","projectId"].find(n=>s[n]?!1:(R.error(`Invalid Sentry Dsn: ${n} missing`),!0))?!1:t.match(/^\d+$/)?Fj(i)?e&&isNaN(parseInt(e,10))?(R.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(R.error(`Invalid Sentry Dsn: Invalid protocol ${i}`),!1):(R.error(`Invalid Sentry Dsn: Invalid projectId ${t}`),!1)}function Vj(s){const e=s.match(Jj);return e==null?void 0:e[1]}function Zj(s){const e=typeof s=="string"?Gj(s):kN(s);if(!(!e||!Hj(e)))return e}const Xj="_frozenDsc";function YN(s,e){const t=e.getOptions(),{publicKey:i,host:r}=e.getDsn()||{};let o;t.orgId?o=String(t.orgId):r&&(o=Vj(r));const n={environment:t.environment||Ca,release:t.release,public_key:i,trace_id:s,org_id:o};return e.emit("createDsc",n),n}function Kj(s,e){const t=e.getPropagationContext();return t.dsc||YN(t.traceId,s)}function qj(s){var y;const e=Ee();if(!e)return{};const t=xN(s),i=wa(t),r=i.data,o=t.spanContext().traceState,n=(o==null?void 0:o.get("sentry.sample_rate"))??r[Tj]??r[dj];function a(T){return(typeof n=="number"||typeof n=="string")&&(T.sample_rate=`${n}`),T}const c=t[Xj];if(c)return a(c);const l=o==null?void 0:o.get("sentry.dsc"),N=l&&Oj(l);if(N)return a(N);const u=YN(s.spanContext().traceId,e),L=r[yj],g=i.description;return L!=="url"&&g&&(u.transaction=g),Bj()&&(u.sampled=String(kj(t)),u.sample_rand=(o==null?void 0:o.get("sentry.sample_rand"))??((y=EN(t).scope)==null?void 0:y.getPropagationContext().sampleRand.toString())),a(u),e.emit("createDsc",u,t),u}function dt(s,e=100,t=1/0){try{return yn("",s,e,t)}catch(i){return{ERROR:`**non-serializable** (${i})`}}}function vN(s,e=3,t=100*1024){const i=dt(s,e);return iy(i)>t?vN(s,e-1,t):i}function yn(s,e,t=1/0,i=1/0,r=ry()){const[o,n]=r;if(e==null||["boolean","string"].includes(typeof e)||typeof e=="number"&&Number.isFinite(e))return e;const a=ey(s,e);if(!a.startsWith("[object "))return a;if(e.__sentry_skip_normalization__)return e;const c=typeof e.__sentry_override_normalization_depth__=="number"?e.__sentry_override_normalization_depth__:t;if(c===0)return a.replace("object ","");if(o(e))return"[Circular ~]";const l=e;if(l&&typeof l.toJSON=="function")try{const g=l.toJSON();return yn("",g,c-1,i,r)}catch{}const N=Array.isArray(e)?[]:{};let u=0;const L=CN(e);for(const g in L){if(!Object.prototype.hasOwnProperty.call(L,g))continue;if(u>=i){N[g]="[MaxProperties ~]";break}const y=L[g];N[g]=yn(g,y,c-1,i,r),u++}return n(e),N}function ey(s,e){try{if(s==="domain"&&e&&typeof e=="object"&&e._events)return"[Domain]";if(s==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&e===global)return"[Global]";if(typeof window<"u"&&e===window)return"[Window]";if(typeof document<"u"&&e===document)return"[Document]";if(hN(e))return"[VueViewModel]";if(Rg(e))return"[SyntheticEvent]";if(typeof e=="number"&&!Number.isFinite(e))return`[${e}]`;if(typeof e=="function")return`[Function: ${Qt(e)}]`;if(typeof e=="symbol")return`[${String(e)}]`;if(typeof e=="bigint")return`[BigInt: ${String(e)}]`;const t=ty(e);return/^HTML(\w*)Element$/.test(t)?`[HTMLElement: ${t}]`:`[object ${t}]`}catch(t){return`**non-serializable** (${t})`}}function ty(s){const e=Object.getPrototypeOf(s);return e!=null&&e.constructor?e.constructor.name:"null prototype"}function sy(s){return~-encodeURI(s).split(/%..|./).length}function iy(s){return sy(JSON.stringify(s))}function ry(){const s=new WeakSet;function e(i){return s.has(i)?!0:(s.add(i),!1)}function t(i){s.delete(i)}return[e,t]}function Ri(s,e=[]){return[s,e]}function oy(s,e){const[t,i]=s;return[t,[...i,e]]}function lc(s,e){const t=s[1];for(const i of t){const r=i[0].type;if(e(i,r))return!0}return!1}function Tn(s){const e=eo(ie);return e.encodePolyfill?e.encodePolyfill(s):new TextEncoder().encode(s)}function ny(s){const[e,t]=s;let i=JSON.stringify(e);function r(o){typeof i=="string"?i=typeof o=="string"?i+o:[Tn(i),o]:i.push(typeof o=="string"?Tn(o):o)}for(const o of t){const[n,a]=o;if(r(` +${JSON.stringify(n)} +`),typeof a=="string"||a instanceof Uint8Array)r(a);else{let c;try{c=JSON.stringify(a)}catch{c=JSON.stringify(dt(a))}r(c)}}return typeof i=="string"?i:ay(i)}function ay(s){const e=s.reduce((r,o)=>r+o.length,0),t=new Uint8Array(e);let i=0;for(const r of s)t.set(r,i),i+=r.length;return t}function My(s){const e=typeof s.data=="string"?Tn(s.data):s.data;return[{type:"attachment",length:e.length,filename:s.filename,content_type:s.contentType,attachment_type:s.attachmentType},e]}const cy={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item"};function Nc(s){return cy[s]}function bN(s){if(!(s!=null&&s.sdk))return;const{name:e,version:t}=s.sdk;return{name:e,version:t}}function uy(s,e,t,i){var o;const r=(o=s.sdkProcessingMetadata)==null?void 0:o.dynamicSamplingContext;return{event_id:s.event_id,sent_at:new Date().toISOString(),...e&&{sdk:e},...!!t&&i&&{dsn:oo(i)},...r&&{trace:r}}}function ly(s,e){return e&&(s.sdk=s.sdk||{},s.sdk.name=s.sdk.name||e.name,s.sdk.version=s.sdk.version||e.version,s.sdk.integrations=[...s.sdk.integrations||[],...e.integrations||[]],s.sdk.packages=[...s.sdk.packages||[],...e.packages||[]]),s}function Ny(s,e,t,i){const r=bN(t),o={sent_at:new Date().toISOString(),...r&&{sdk:r},...!!i&&e&&{dsn:oo(e)}},n="aggregates"in s?[{type:"sessions"},s]:[{type:"session"},s.toJSON()];return Ri(o,[n])}function Ly(s,e,t,i){const r=bN(t),o=s.type&&s.type!=="replay_event"?s.type:"event";ly(s,t==null?void 0:t.sdk);const n=uy(s,r,i,e);return delete s.sdkProcessingMetadata,Ri(n,[[{type:o},s]])}var Dt;(function(s){s[s.PENDING=0]="PENDING";const t=1;s[s.RESOLVED=t]="RESOLVED";const i=2;s[s.REJECTED=i]="REJECTED"})(Dt||(Dt={}));function es(s){return new Ut(e=>{e(s)})}function br(s){return new Ut((e,t)=>{t(s)})}class Ut{constructor(e){this._state=Dt.PENDING,this._handlers=[],this._runExecutor(e)}then(e,t){return new Ut((i,r)=>{this._handlers.push([!1,o=>{if(!e)i(o);else try{i(e(o))}catch(n){r(n)}},o=>{if(!t)r(o);else try{i(t(o))}catch(n){r(n)}}]),this._executeHandlers()})}catch(e){return this.then(t=>t,e)}finally(e){return new Ut((t,i)=>{let r,o;return this.then(n=>{o=!1,r=n,e&&e()},n=>{o=!0,r=n,e&&e()}).then(()=>{if(o){i(r);return}t(r)})})}_executeHandlers(){if(this._state===Dt.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach(t=>{t[0]||(this._state===Dt.RESOLVED&&t[1](this._value),this._state===Dt.REJECTED&&t[2](this._value),t[0]=!0)})}_runExecutor(e){const t=(o,n)=>{if(this._state===Dt.PENDING){if(io(n)){n.then(i,r);return}this._state=o,this._value=n,this._executeHandlers()}},i=o=>{t(Dt.RESOLVED,o)},r=o=>{t(Dt.REJECTED,o)};try{e(i,r)}catch(o){r(o)}}}function dn(s,e,t,i=0){return new Ut((r,o)=>{const n=s[i];if(e===null||typeof n!="function")r(e);else{const a=n({...e},t);X&&n.id&&a===null&&R.log(`Event processor "${n.id}" dropped event`),io(a)?a.then(c=>dn(s,c,t,i+1).then(r)).then(null,o):dn(s,a,t,i+1).then(r).then(null,o)}})}let ar,Lc,Mr;function gy(s){const e=ie._sentryDebugIds;if(!e)return{};const t=Object.keys(e);return Mr&&t.length===Lc||(Lc=t.length,Mr=t.reduce((i,r)=>{ar||(ar={});const o=ar[r];if(o)i[o[0]]=o[1];else{const n=s(r);for(let a=n.length-1;a>=0;a--){const c=n[a],l=c==null?void 0:c.filename,N=e[r];if(l&&N){i[l]=N,ar[r]=[l,N];break}}}return i},{})),Mr}function jy(s,e){const{fingerprint:t,span:i,breadcrumbs:r,sdkProcessingMetadata:o}=e;yy(s,e),i&&Dy(s,i),hy(s,t),Ty(s,r),dy(s,o)}function gc(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,sdkProcessingMetadata:a,breadcrumbs:c,fingerprint:l,eventProcessors:N,attachments:u,propagationContext:L,transactionName:g,span:y}=e;cr(s,"extra",t),cr(s,"tags",i),cr(s,"user",r),cr(s,"contexts",o),s.sdkProcessingMetadata=Bi(s.sdkProcessingMetadata,a,2),n&&(s.level=n),g&&(s.transactionName=g),y&&(s.span=y),c.length&&(s.breadcrumbs=[...s.breadcrumbs,...c]),l.length&&(s.fingerprint=[...s.fingerprint,...l]),N.length&&(s.eventProcessors=[...s.eventProcessors,...N]),u.length&&(s.attachments=[...s.attachments,...u]),s.propagationContext={...s.propagationContext,...L}}function cr(s,e,t){s[e]=Bi(s[e],t,1)}function yy(s,e){const{extra:t,tags:i,user:r,contexts:o,level:n,transactionName:a}=e;Object.keys(t).length&&(s.extra={...t,...s.extra}),Object.keys(i).length&&(s.tags={...i,...s.tags}),Object.keys(r).length&&(s.user={...r,...s.user}),Object.keys(o).length&&(s.contexts={...o,...s.contexts}),n&&(s.level=n),a&&s.type!=="transaction"&&(s.transaction=a)}function Ty(s,e){const t=[...s.breadcrumbs||[],...e];s.breadcrumbs=t.length?t:void 0}function dy(s,e){s.sdkProcessingMetadata={...s.sdkProcessingMetadata,...e}}function Dy(s,e){s.contexts={trace:fj(e),...s.contexts},s.sdkProcessingMetadata={dynamicSamplingContext:qj(e),...s.sdkProcessingMetadata};const t=xN(e),i=wa(t).description;i&&!s.transaction&&s.type==="transaction"&&(s.transaction=i)}function hy(s,e){s.fingerprint=s.fingerprint?Array.isArray(s.fingerprint)?s.fingerprint:[s.fingerprint]:[],e&&(s.fingerprint=s.fingerprint.concat(e)),s.fingerprint.length||delete s.fingerprint}function zy(s,e,t,i,r,o){const{normalizeDepth:n=3,normalizeMaxBreadth:a=1e3}=s,c={...e,event_id:e.event_id||t.event_id||Je(),timestamp:e.timestamp||Wi()},l=t.integrations||s.integrations.map(d=>d.name);wy(c,s),py(c,l),r&&r.emit("applyFrameMetadata",e),e.type===void 0&&Cy(c,s.stackParser);const N=my(i,t.captureContext);t.mechanism&&Rs(c,t.mechanism);const u=r?r.getEventProcessors():[],L=Lj().getScopeData();if(o){const d=o.getScopeData();gc(L,d)}if(N){const d=N.getScopeData();gc(L,d)}const g=[...t.attachments||[],...L.attachments];g.length&&(t.attachments=g),jy(c,L);const y=[...u,...L.eventProcessors];return dn(y,c,t).then(d=>(d&&Iy(d),typeof n=="number"&&n>0?Ay(d,n,a):d))}function wy(s,e){const{environment:t,release:i,dist:r,maxValueLength:o=250}=e;s.environment=s.environment||t||Ca,!s.release&&i&&(s.release=i),!s.dist&&r&&(s.dist=r);const n=s.request;n!=null&&n.url&&(n.url=vr(n.url,o))}function Cy(s,e){var i,r;const t=gy(e);(r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.filename&&(c.debug_id=t[c.filename])})})}function Iy(s){var i,r;const e={};if((r=(i=s.exception)==null?void 0:i.values)==null||r.forEach(o=>{var n,a;(a=(n=o.stacktrace)==null?void 0:n.frames)==null||a.forEach(c=>{c.debug_id&&(c.abs_path?e[c.abs_path]=c.debug_id:c.filename&&(e[c.filename]=c.debug_id),delete c.debug_id)})}),Object.keys(e).length===0)return;s.debug_meta=s.debug_meta||{},s.debug_meta.images=s.debug_meta.images||[];const t=s.debug_meta.images;Object.entries(e).forEach(([o,n])=>{t.push({type:"sourcemap",code_file:o,debug_id:n})})}function py(s,e){e.length>0&&(s.sdk=s.sdk||{},s.sdk.integrations=[...s.sdk.integrations||[],...e])}function Ay(s,e,t){var r,o;if(!s)return null;const i={...s,...s.breadcrumbs&&{breadcrumbs:s.breadcrumbs.map(n=>({...n,...n.data&&{data:dt(n.data,e,t)}}))},...s.user&&{user:dt(s.user,e,t)},...s.contexts&&{contexts:dt(s.contexts,e,t)},...s.extra&&{extra:dt(s.extra,e,t)}};return(r=s.contexts)!=null&&r.trace&&i.contexts&&(i.contexts.trace=s.contexts.trace,s.contexts.trace.data&&(i.contexts.trace.data=dt(s.contexts.trace.data,e,t))),s.spans&&(i.spans=s.spans.map(n=>({...n,...n.data&&{data:dt(n.data,e,t)}}))),(o=s.contexts)!=null&&o.flags&&i.contexts&&(i.contexts.flags=dt(s.contexts.flags,3,t)),i}function my(s,e){if(!e)return s;const t=s?s.clone():new wt;return t.update(e),t}function Oy(s,e){return Ct().captureException(s,void 0)}function QN(s,e){return Ct().captureEvent(s,e)}function jc(s){const e=Ji(),t=Ct(),{userAgent:i}=ie.navigator||{},r=ij({user:t.getUser()||e.getUser(),...i&&{userAgent:i},...s}),o=e.getSession();return(o==null?void 0:o.status)==="ok"&&Fs(o,{status:"exited"}),UN(),e.setSession(r),r}function UN(){const s=Ji(),t=Ct().getSession()||s.getSession();t&&rj(t),$N(),s.setSession()}function $N(){const s=Ji(),e=Ee(),t=s.getSession();t&&e&&e.captureSession(t)}function yc(s=!1){if(s){UN();return}$N()}const Ey="7";function fy(s){const e=s.protocol?`${s.protocol}:`:"",t=s.port?`:${s.port}`:"";return`${e}//${s.host}${t}${s.path?`/${s.path}`:""}/api/`}function xy(s){return`${fy(s)}${s.projectId}/envelope/`}function _y(s,e){const t={sentry_version:Ey};return s.publicKey&&(t.sentry_key=s.publicKey),e&&(t.sentry_client=`${e.name}/${e.version}`),new URLSearchParams(t).toString()}function Sy(s,e,t){return e||`${xy(s)}?${_y(s,t)}`}const Tc=[];function ky(s){const e={};return s.forEach(t=>{const{name:i}=t,r=e[i];r&&!r.isDefaultInstance&&t.isDefaultInstance||(e[i]=t)}),Object.values(e)}function Yy(s){const e=s.defaultIntegrations||[],t=s.integrations;e.forEach(r=>{r.isDefaultInstance=!0});let i;if(Array.isArray(t))i=[...e,...t];else if(typeof t=="function"){const r=t(e);i=Array.isArray(r)?r:[r]}else i=e;return ky(i)}function vy(s,e){const t={};return e.forEach(i=>{i&&PN(s,i,t)}),t}function dc(s,e){for(const t of e)t!=null&&t.afterAllSetup&&t.afterAllSetup(s)}function PN(s,e,t){if(t[e.name]){X&&R.log(`Integration skipped because it was already installed: ${e.name}`);return}if(t[e.name]=e,Tc.indexOf(e.name)===-1&&typeof e.setupOnce=="function"&&(e.setupOnce(),Tc.push(e.name)),e.setup&&typeof e.setup=="function"&&e.setup(s),typeof e.preprocessEvent=="function"){const i=e.preprocessEvent.bind(e);s.on("preprocessEvent",(r,o)=>i(r,o,s))}if(typeof e.processEvent=="function"){const i=e.processEvent.bind(e),r=Object.assign((o,n)=>i(o,n,s),{id:e.name});s.addEventProcessor(r)}X&&R.log(`Integration installed: ${e.name}`)}function WN(s){const e=[];s.message&&e.push(s.message);try{const t=s.exception.values[s.exception.values.length-1];t!=null&&t.value&&(e.push(t.value),t.type&&e.push(`${t.type}: ${t.value}`))}catch{}return e}function by(s){var c;const{trace_id:e,parent_span_id:t,span_id:i,status:r,origin:o,data:n,op:a}=((c=s.contexts)==null?void 0:c.trace)??{};return{data:n??{},description:s.transaction,op:a,parent_span_id:t,span_id:i??"",start_timestamp:s.start_timestamp??0,status:r,timestamp:s.timestamp,trace_id:e??"",origin:o,profile_id:n==null?void 0:n[mN],exclusive_time:n==null?void 0:n[ON],measurements:s.measurements,is_segment:!0}}function Qy(s){return{type:"transaction",timestamp:s.timestamp,start_timestamp:s.start_timestamp,transaction:s.description,contexts:{trace:{trace_id:s.trace_id,span_id:s.span_id,parent_span_id:s.parent_span_id,op:s.op,status:s.status,origin:s.origin,data:{...s.data,...s.profile_id&&{[mN]:s.profile_id},...s.exclusive_time&&{[ON]:s.exclusive_time}}}},measurements:s.measurements}}function Uy(s,e,t){const i=[{type:"client_report"},{timestamp:Wi(),discarded_events:s}];return Ri(e?{dsn:e}:{},[i])}const Dc="Not capturing exception because it's already been captured.",hc="Discarded session because of missing or non-string release",BN=Symbol.for("SentryInternalError"),JN=Symbol.for("SentryDoNotSendEventError");function mr(s){return{message:s,[BN]:!0}}function _o(s){return{message:s,[JN]:!0}}function zc(s){return!!s&&typeof s=="object"&&BN in s}function wc(s){return!!s&&typeof s=="object"&&JN in s}class $y{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=Zj(e.dsn):X&&R.warn("No DSN provided, client will not send events."),this._dsn){const t=Sy(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,i){const r=Je();if(XM(e))return X&&R.log(Dc),r;const o={event_id:r,...t};return this._process(this.eventFromException(e,o).then(n=>this._captureEvent(n,o,i))),o.event_id}captureMessage(e,t,i,r){const o={event_id:Je(),...i},n=ya(e)?e:String(e),a=Ta(e)?this.eventFromMessage(n,t,o):this.eventFromException(e,o);return this._process(a.then(c=>this._captureEvent(c,o,r))),o.event_id}captureEvent(e,t,i){const r=Je();if(t!=null&&t.originalException&&XM(t.originalException))return X&&R.log(Dc),r;const o={event_id:r,...t},n=e.sdkProcessingMetadata||{},a=n.capturedSpanScope,c=n.capturedSpanIsolationScope;return this._process(this._captureEvent(e,o,a||i,c)),o.event_id}captureSession(e){this.sendSession(e),Fs(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit("flush"),this._isClientDoneProcessing(e).then(i=>t.flush(e).then(r=>i&&r))):es(!0)}close(e){return this.flush(e).then(t=>(this.getOptions().enabled=!1,this.emit("close"),t))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];PN(this,e,this._integrations),t||dc(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let i=Ly(e,this._dsn,this._options._metadata,this._options.tunnel);for(const o of t.attachments||[])i=oy(i,My(o));const r=this.sendEnvelope(i);r&&r.then(o=>this.emit("afterSendEvent",e,o),null)}sendSession(e){const{release:t,environment:i=Ca}=this._options;if("aggregates"in e){const o=e.attrs||{};if(!o.release&&!t){X&&R.warn(hc);return}o.release=o.release||t,o.environment=o.environment||i,e.attrs=o}else{if(!e.release&&!t){X&&R.warn(hc);return}e.release=e.release||t,e.environment=e.environment||i}this.emit("beforeSendSession",e);const r=Ny(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(r)}recordDroppedEvent(e,t,i=1){if(this._options.sendClientReports){const r=`${e}:${t}`;X&&R.log(`Recording outcome: "${r}"${i>1?` (${i} times)`:""}`),this._outcomes[r]=(this._outcomes[r]||0)+i}}on(e,t){const i=this._hooks[e]=this._hooks[e]||[];return i.push(t),()=>{const r=i.indexOf(t);r>-1&&i.splice(r,1)}}emit(e,...t){const i=this._hooks[e];i&&i.forEach(r=>r(...t))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,t=>(X&&R.error("Error while sending envelope:",t),t)):(X&&R.error("Transport disabled"),es({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=vy(this,e),dc(this,e)}_updateSessionFromEvent(e,t){var c;let i=t.level==="fatal",r=!1;const o=(c=t.exception)==null?void 0:c.values;if(o){r=!0;for(const l of o){const N=l.mechanism;if((N==null?void 0:N.handled)===!1){i=!0;break}}}const n=e.status==="ok";(n&&e.errors===0||n&&i)&&(Fs(e,{...i&&{status:"crashed"},errors:e.errors||Number(r||i)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Ut(t=>{let i=0;const r=1,o=setInterval(()=>{this._numProcessing==0?(clearInterval(o),t(!0)):(i+=r,e&&i>=e&&(clearInterval(o),t(!1)))},r)})}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,i,r){const o=this.getOptions(),n=Object.keys(this._integrations);return!t.integrations&&(n!=null&&n.length)&&(t.integrations=n),this.emit("preprocessEvent",e,t),e.type||r.setLastEventId(e.event_id||t.event_id),zy(o,e,t,i,this,r).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,t),a.contexts={trace:jj(i),...a.contexts};const c=Kj(this,i);return a.sdkProcessingMetadata={dynamicSamplingContext:c,...a.sdkProcessingMetadata},a})}_captureEvent(e,t={},i=Ct(),r=Ji()){return X&&Dn(e)&&R.log(`Captured error event \`${WN(e)[0]||""}\``),this._processEvent(e,t,i,r).then(o=>o.event_id,o=>{X&&(wc(o)?R.log(o.message):zc(o)?R.warn(o.message):R.warn(o))})}_processEvent(e,t,i,r){const o=this.getOptions(),{sampleRate:n}=o,a=RN(e),c=Dn(e),l=e.type||"error",N=`before send for type \`${l}\``,u=typeof n>"u"?void 0:pj(n);if(c&&typeof u=="number"&&Math.random()>u)return this.recordDroppedEvent("sample_rate","error"),br(_o(`Discarding event because it's not included in the random sample (sampling rate = ${n})`));const L=l==="replay_event"?"replay":l;return this._prepareEvent(e,t,i,r).then(g=>{if(g===null)throw this.recordDroppedEvent("event_processor",L),_o("An event processor returned `null`, will not send event.");if(t.data&&t.data.__sentry__===!0)return g;const T=Wy(this,o,g,t);return Py(T,N)}).then(g=>{var d;if(g===null){if(this.recordDroppedEvent("before_send",L),a){const I=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",I)}throw _o(`${N} returned \`null\`, will not send event.`)}const y=i.getSession()||r.getSession();if(c&&y&&this._updateSessionFromEvent(y,g),a){const z=((d=g.sdkProcessingMetadata)==null?void 0:d.spanCountBeforeProcessing)||0,I=g.spans?g.spans.length:0,C=z-I;C>0&&this.recordDroppedEvent("before_send","span",C)}const T=g.transaction_info;if(a&&T&&g.transaction!==e.transaction){const z="custom";g.transaction_info={...T,source:z}}return this.sendEvent(g,t),g}).then(null,g=>{throw wc(g)||zc(g)?g:(this.captureException(g,{data:{__sentry__:!0},originalException:g}),mr(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${g}`))})}_process(e){this._numProcessing++,e.then(t=>(this._numProcessing--,t),t=>(this._numProcessing--,t))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([t,i])=>{const[r,o]=t.split(":");return{reason:r,category:o,quantity:i}})}_flushOutcomes(){X&&R.log("Flushing outcomes...");const e=this._clearOutcomes();if(e.length===0){X&&R.log("No outcomes to send");return}if(!this._dsn){X&&R.log("No dsn provided, will not send outcomes");return}X&&R.log("Sending outcomes:",e);const t=Uy(e,this._options.tunnel&&oo(this._dsn));this.sendEnvelope(t)}}function Py(s,e){const t=`${e} must return \`null\` or a valid event.`;if(io(s))return s.then(i=>{if(!_i(i)&&i!==null)throw mr(t);return i},i=>{throw mr(`${e} rejected with ${i}`)});if(!_i(s)&&s!==null)throw mr(t);return s}function Wy(s,e,t,i){const{beforeSend:r,beforeSendTransaction:o,beforeSendSpan:n}=e;let a=t;if(Dn(a)&&r)return r(a,i);if(RN(a)){if(n){const c=n(by(a));if(c?a=Bi(t,Qy(c)):nc(),a.spans){const l=[];for(const N of a.spans){const u=n(N);u?l.push(u):(nc(),l.push(N))}a.spans=l}}if(o){if(a.spans){const c=a.spans.length;a.sdkProcessingMetadata={...t.sdkProcessingMetadata,spanCountBeforeProcessing:c}}return o(a,i)}}return a}function Dn(s){return s.type===void 0}function RN(s){return s.type==="transaction"}function By(s){return[{type:"log",item_count:s.length,content_type:"application/vnd.sentry.items.log+json"},{items:s}]}function Jy(s,e,t,i){const r={};return e!=null&&e.sdk&&(r.sdk={name:e.sdk.name,version:e.sdk.version}),t&&i&&(r.dsn=oo(i)),Ri(r,[By(s)])}ie._sentryClientToLogBufferMap=new WeakMap;function So(s,e){var o;const t=Ry(s)??[];if(t.length===0)return;const i=s.getOptions(),r=Jy(t,i._metadata,i.tunnel,s.getDsn());(o=ie._sentryClientToLogBufferMap)==null||o.set(s,[]),s.emit("flushLogs"),s.sendEnvelope(r)}function Ry(s){var e;return(e=ie._sentryClientToLogBufferMap)==null?void 0:e.get(s)}function Fy(s,e){e.debug===!0&&(X?R.enable():Zs(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Ct().update(e.initialScope);const i=new s(e);return Gy(i),i.init(),i}function Gy(s){Ct().setClient(s)}const FN=Symbol.for("SentryBufferFullError");function Hy(s){const e=[];function t(){return s===void 0||e.lengthi(a)).then(null,()=>i(a).then(null,()=>{})),a}function o(n){return new Ut((a,c)=>{let l=e.length;if(!l)return a(!0);const N=setTimeout(()=>{n&&n>0&&a(!1)},n);e.forEach(u=>{es(u).then(()=>{--l||(clearTimeout(N),a(!0))},c)})})}return{$:e,add:r,drain:o}}const Vy=60*1e3;function Zy(s,e=Date.now()){const t=parseInt(`${s}`,10);if(!isNaN(t))return t*1e3;const i=Date.parse(`${s}`);return isNaN(i)?Vy:i-e}function Xy(s,e){return s[e]||s.all||0}function Ky(s,e,t=Date.now()){return Xy(s,e)>t}function qy(s,{statusCode:e,headers:t},i=Date.now()){const r={...s},o=t==null?void 0:t["x-sentry-rate-limits"],n=t==null?void 0:t["retry-after"];if(o)for(const a of o.trim().split(",")){const[c,l,,,N]=a.split(":",5),u=parseInt(c,10),L=(isNaN(u)?60:u)*1e3;if(!l)r.all=i+L;else for(const g of l.split(";"))g==="metric_bucket"?(!N||N.split(";").includes("custom"))&&(r[g]=i+L):r[g]=i+L}else n?r.all=i+Zy(n,i):e===429&&(r.all=i+60*1e3);return r}const eT=64;function tT(s,e,t=Hy(s.bufferSize||eT)){let i={};const r=n=>t.drain(n);function o(n){const a=[];if(lc(n,(u,L)=>{const g=Nc(L);Ky(i,g)?s.recordDroppedEvent("ratelimit_backoff",g):a.push(u)}),a.length===0)return es({});const c=Ri(n[0],a),l=u=>{lc(c,(L,g)=>{s.recordDroppedEvent(u,Nc(g))})},N=()=>e({body:ny(c)}).then(u=>(u.statusCode!==void 0&&(u.statusCode<200||u.statusCode>=300)&&X&&R.warn(`Sentry responded with status code ${u.statusCode} to sent event.`),i=qy(i,u),u),u=>{throw l("network_error"),X&&R.error("Encountered error running transport request:",u),u});return t.add(N).then(u=>u,u=>{if(u===FN)return X&&R.error("Skipped sending event because buffer is full."),l("queue_overflow"),es({});throw u})}return{send:o,flush:r}}function sT(s){var e;((e=s.user)==null?void 0:e.ip_address)===void 0&&(s.user={...s.user,ip_address:"{{auto}}"})}function iT(s){var e;"aggregates"in s?((e=s.attrs)==null?void 0:e.ip_address)===void 0&&(s.attrs={...s.attrs,ip_address:"{{auto}}"}):s.ipAddress===void 0&&(s.ipAddress="{{auto}}")}function rT(s,e,t=[e],i="npm"){const r=s._metadata||{};r.sdk||(r.sdk={name:`sentry.javascript.${e}`,packages:t.map(o=>({name:`${i}:@sentry/${o}`,version:Xt})),version:Xt}),s._metadata=r}const oT=100;function ts(s,e){const t=Ee(),i=Ji();if(!t)return;const{beforeBreadcrumb:r=null,maxBreadcrumbs:o=oT}=t.getOptions();if(o<=0)return;const a={timestamp:Wi(),...s},c=r?Zs(()=>r(a,e)):a;c!==null&&(t.emit&&t.emit("beforeAddBreadcrumb",c,e),i.addBreadcrumb(c,o))}let Cc;const nT="FunctionToString",Ic=new WeakMap,aT=()=>({name:nT,setupOnce(){Cc=Function.prototype.toString;try{Function.prototype.toString=function(...s){const e=ha(this),t=Ic.has(Ee())&&e!==void 0?e:this;return Cc.apply(t,s)}}catch{}},setup(s){Ic.set(s,!0)}}),MT=aT,cT=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],uT="EventFilters",lT=(s={})=>{let e;return{name:uT,setup(t){const i=t.getOptions();e=pc(s,i)},processEvent(t,i,r){if(!e){const o=r.getOptions();e=pc(s,o)}return LT(t,e)?null:t}}},NT=(s={})=>({...lT(s),name:"InboundFilters"});function pc(s={},e={}){return{allowUrls:[...s.allowUrls||[],...e.allowUrls||[]],denyUrls:[...s.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...s.ignoreErrors||[],...e.ignoreErrors||[],...s.disableErrorDefaults?[]:cT],ignoreTransactions:[...s.ignoreTransactions||[],...e.ignoreTransactions||[]]}}function LT(s,e){if(s.type){if(s.type==="transaction"&&jT(s,e.ignoreTransactions))return X&&R.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${Vt(s)}`),!0}else{if(gT(s,e.ignoreErrors))return X&&R.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${Vt(s)}`),!0;if(DT(s))return X&&R.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${Vt(s)}`),!0;if(yT(s,e.denyUrls))return X&&R.warn(`Event dropped due to being matched by \`denyUrls\` option. +Event: ${Vt(s)}. +Url: ${Qr(s)}`),!0;if(!TT(s,e.allowUrls))return X&&R.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Event: ${Vt(s)}. +Url: ${Qr(s)}`),!0}return!1}function gT(s,e){return e!=null&&e.length?WN(s).some(t=>ro(t,e)):!1}function jT(s,e){if(!(e!=null&&e.length))return!1;const t=s.transaction;return t?ro(t,e):!1}function yT(s,e){if(!(e!=null&&e.length))return!1;const t=Qr(s);return t?ro(t,e):!1}function TT(s,e){if(!(e!=null&&e.length))return!0;const t=Qr(s);return t?ro(t,e):!0}function dT(s=[]){for(let e=s.length-1;e>=0;e--){const t=s[e];if(t&&t.filename!==""&&t.filename!=="[native code]")return t.filename||null}return null}function Qr(s){var e,t;try{const i=[...((e=s.exception)==null?void 0:e.values)??[]].reverse().find(o=>{var n,a,c;return((n=o.mechanism)==null?void 0:n.parent_id)===void 0&&((c=(a=o.stacktrace)==null?void 0:a.frames)==null?void 0:c.length)}),r=(t=i==null?void 0:i.stacktrace)==null?void 0:t.frames;return r?dT(r):null}catch{return X&&R.error(`Cannot extract url for event ${Vt(s)}`),null}}function DT(s){var e,t;return(t=(e=s.exception)==null?void 0:e.values)!=null&&t.length?!s.message&&!s.exception.values.some(i=>i.stacktrace||i.type&&i.type!=="Error"||i.value):!1}function hT(s,e,t,i,r,o){var a;if(!((a=r.exception)!=null&&a.values)||!o||!bt(o.originalException,Error))return;const n=r.exception.values.length>0?r.exception.values[r.exception.values.length-1]:void 0;n&&(r.exception.values=hn(s,e,i,o.originalException,t,r.exception.values,n,0))}function hn(s,e,t,i,r,o,n,a){if(o.length>=t+1)return o;let c=[...o];if(bt(i[r],Error)){Ac(n,a);const l=s(e,i[r]),N=c.length;mc(l,r,N,a),c=hn(s,e,t,i[r],r,[l,...c],l,N)}return Array.isArray(i.errors)&&i.errors.forEach((l,N)=>{if(bt(l,Error)){Ac(n,a);const u=s(e,l),L=c.length;mc(u,`errors[${N}]`,L,a),c=hn(s,e,t,l,r,[u,...c],u,L)}}),c}function Ac(s,e){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,...s.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function mc(s,e,t,i){s.mechanism=s.mechanism||{type:"generic",handled:!0},s.mechanism={...s.mechanism,type:"chained",source:e,exception_id:t,parent_id:i}}function zT(s){const e="console";rs(e,s),os(e,wT)}function wT(){"console"in ie&&Ln.forEach(function(s){s in ie.console&&Ue(ie.console,s,function(e){return Yr[s]=e,function(...t){Ke("console",{args:t,level:s});const r=Yr[s];r==null||r.apply(ie.console,t)}})})}function CT(s){return s==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(s)?s:"log"}const IT="Dedupe",pT=()=>{let s;return{name:IT,processEvent(e){if(e.type)return e;try{if(AT(e,s))return X&&R.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return s=e}}},GN=pT;function AT(s,e){return e?!!(mT(s,e)||OT(s,e)):!1}function mT(s,e){const t=s.message,i=e.message;return!(!t&&!i||t&&!i||!t&&i||t!==i||!VN(s,e)||!HN(s,e))}function OT(s,e){const t=Oc(e),i=Oc(s);return!(!t||!i||t.type!==i.type||t.value!==i.value||!VN(s,e)||!HN(s,e))}function HN(s,e){let t=cc(s),i=cc(e);if(!t&&!i)return!0;if(t&&!i||!t&&i||(t=t,i=i,i.length!==t.length))return!1;for(let r=0;r=400&&s<500?"warning":s>=500?"error":void 0}const Si=ie;function ET(){return"history"in Si&&!!Si.history}function fT(){if(!("fetch"in Si))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function zn(s){return s&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(s.toString())}function xT(){var t;if(typeof EdgeRuntime=="string")return!0;if(!fT())return!1;if(zn(Si.fetch))return!0;let s=!1;const e=Si.document;if(e&&typeof e.createElement=="function")try{const i=e.createElement("iframe");i.hidden=!0,e.head.appendChild(i),(t=i.contentWindow)!=null&&t.fetch&&(s=zn(i.contentWindow.fetch)),e.head.removeChild(i)}catch(i){X&&R.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",i)}return s}function _T(s,e){const t="fetch";rs(t,s),os(t,()=>ST(void 0,e))}function ST(s,e=!1){e&&!xT()||Ue(ie,"fetch",function(t){return function(...i){const r=new Error,{method:o,url:n}=kT(i),a={args:i,fetchData:{method:o,url:n},startTimestamp:zt()*1e3,virtualError:r,headers:YT(i)};return Ke("fetch",{...a}),t.apply(ie,i).then(async c=>(Ke("fetch",{...a,endTimestamp:zt()*1e3,response:c}),c),c=>{if(Ke("fetch",{...a,endTimestamp:zt()*1e3,error:c}),ja(c)&&c.stack===void 0&&(c.stack=r.stack,Kt(c,"framesToPop",1)),c instanceof TypeError&&(c.message==="Failed to fetch"||c.message==="Load failed"||c.message==="NetworkError when attempting to fetch resource."))try{const l=new URL(a.fetchData.url);c.message=`${c.message} (${l.host})`}catch{}throw c})}})}function wn(s,e){return!!s&&typeof s=="object"&&!!s[e]}function Ec(s){return typeof s=="string"?s:s?wn(s,"url")?s.url:s.toString?s.toString():"":""}function kT(s){if(s.length===0)return{method:"GET",url:""};if(s.length===2){const[t,i]=s;return{url:Ec(t),method:wn(i,"method")?String(i.method).toUpperCase():"GET"}}const e=s[0];return{url:Ec(e),method:wn(e,"method")?String(e.method).toUpperCase():"GET"}}function YT(s){const[e,t]=s;try{if(typeof t=="object"&&t!==null&&"headers"in t&&t.headers)return new Headers(t.headers);if(Fg(e))return new Headers(e.headers)}catch{}}function vT(){return"npm"}const Le=ie;let Cn=0;function XN(){return Cn>0}function bT(){Cn++,setTimeout(()=>{Cn--})}function Hs(s,e={}){function t(r){return typeof r=="function"}if(!t(s))return s;try{const r=s.__sentry_wrapped__;if(r)return typeof r=="function"?r:s;if(ha(s))return s}catch{return s}const i=function(...r){try{const o=r.map(n=>Hs(n,e));return s.apply(this,o)}catch(o){throw bT(),gj(n=>{n.addEventProcessor(a=>(e.mechanism&&(gn(a,void 0),Rs(a,e.mechanism)),a.extra={...a.extra,arguments:r},a)),Oy(o)}),o}};try{for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&(i[r]=s[r])}catch{}wN(i,s),Kt(s,"__sentry_wrapped__",i);try{Object.getOwnPropertyDescriptor(i,"name").configurable&&Object.defineProperty(i,"name",{get(){return s.name}})}catch{}return i}function QT(){const s=Da(),{referrer:e}=Le.document||{},{userAgent:t}=Le.navigator||{},i={...e&&{Referer:e},...t&&{"User-Agent":t}};return{url:s,headers:i}}function Ia(s,e){const t=pa(s,e),i={type:BT(e),value:JT(e)};return t.length&&(i.stacktrace={frames:t}),i.type===void 0&&i.value===""&&(i.value="Unrecoverable error caught"),i}function UT(s,e,t,i){const r=Ee(),o=r==null?void 0:r.getOptions().normalizeDepth,n=VT(e),a={__serialized__:vN(e,o)};if(n)return{exception:{values:[Ia(s,n)]},extra:a};const c={exception:{values:[{type:so(e)?e.constructor.name:i?"UnhandledRejection":"Error",value:GT(e,{isUnhandledRejection:i})}]},extra:a};if(t){const l=pa(s,t);l.length&&(c.exception.values[0].stacktrace={frames:l})}return c}function Yo(s,e){return{exception:{values:[Ia(s,e)]}}}function pa(s,e){const t=e.stacktrace||e.stack||"",i=PT(e),r=WT(e);try{return s(t,i,r)}catch{}return[]}const $T=/Minified React error #\d+;/i;function PT(s){return s&&$T.test(s.message)?1:0}function WT(s){return typeof s.framesToPop=="number"?s.framesToPop:0}function KN(s){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?s instanceof WebAssembly.Exception:!1}function BT(s){const e=s==null?void 0:s.name;return!e&&KN(s)?s.message&&Array.isArray(s.message)&&s.message.length==2?s.message[0]:"WebAssembly.Exception":e}function JT(s){const e=s==null?void 0:s.message;return KN(s)?Array.isArray(s.message)&&s.message.length==2?s.message[1]:"wasm exception":e?e.error&&typeof e.error.message=="string"?e.error.message:e:"No error message"}function RT(s,e,t,i){const r=(t==null?void 0:t.syntheticException)||void 0,o=Aa(s,e,r,i);return Rs(o),o.level="error",t!=null&&t.event_id&&(o.event_id=t.event_id),es(o)}function FT(s,e,t="info",i,r){const o=(i==null?void 0:i.syntheticException)||void 0,n=In(s,e,o,r);return n.level=t,i!=null&&i.event_id&&(n.event_id=i.event_id),es(n)}function Aa(s,e,t,i,r){let o;if(DN(e)&&e.error)return Yo(s,e.error);if(GM(e)||Wg(e)){const n=e;if("stack"in e)o=Yo(s,e);else{const a=n.name||(GM(n)?"DOMError":"DOMException"),c=n.message?`${a}: ${n.message}`:a;o=In(s,c,t,i),gn(o,c)}return"code"in n&&(o.tags={...o.tags,"DOMException.code":`${n.code}`}),o}return ja(e)?Yo(s,e):_i(e)||so(e)?(o=UT(s,e,t,r),Rs(o,{synthetic:!0}),o):(o=In(s,e,t,i),gn(o,`${e}`),Rs(o,{synthetic:!0}),o)}function In(s,e,t,i){const r={};if(i&&t){const o=pa(s,t);o.length&&(r.exception={values:[{value:e,stacktrace:{frames:o}}]}),Rs(r,{synthetic:!0})}if(ya(e)){const{__sentry_template_string__:o,__sentry_template_values__:n}=e;return r.logentry={message:o,params:n},r}return r.message=e,r}function GT(s,{isUnhandledRejection:e}){const t=qg(s),i=e?"promise rejection":"exception";return DN(s)?`Event \`ErrorEvent\` captured as ${i} with message \`${s.message}\``:so(s)?`Event \`${HT(s)}\` (type=${s.type}) captured as ${i}`:`Object captured as ${i} with keys: ${t}`}function HT(s){try{const e=Object.getPrototypeOf(s);return e?e.constructor.name:void 0}catch{}}function VT(s){for(const e in s)if(Object.prototype.hasOwnProperty.call(s,e)){const t=s[e];if(t instanceof Error)return t}}const ZT=5e3;class XT extends $y{constructor(e){const t=KT(e),i=Le.SENTRY_SDK_SOURCE||vT();rT(t,"browser",["browser"],i),super(t);const{sendDefaultPii:r,sendClientReports:o,_experiments:n}=this._options,a=n==null?void 0:n.enableLogs;Le.document&&(o||a)&&Le.document.addEventListener("visibilitychange",()=>{Le.document.visibilityState==="hidden"&&(o&&this._flushOutcomes(),a&&So(this))}),a&&(this.on("flush",()=>{So(this)}),this.on("afterCaptureLog",()=>{this._logFlushIdleTimeout&&clearTimeout(this._logFlushIdleTimeout),this._logFlushIdleTimeout=setTimeout(()=>{So(this)},ZT)})),r&&(this.on("postprocessEvent",sT),this.on("beforeSendSession",iT))}eventFromException(e,t){return RT(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",i){return FT(this._options.stackParser,e,t,i,this._options.attachStacktrace)}_prepareEvent(e,t,i,r){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,i,r)}}function KT(s){var e;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(e=Le.SENTRY_RELEASE)==null?void 0:e.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...s}}const qT=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ae=ie,ed=1e3;let fc,pn,An;function td(s){const e="dom";rs(e,s),os(e,sd)}function sd(){if(!Ae.document)return;const s=Ke.bind(null,"dom"),e=xc(s,!0);Ae.document.addEventListener("click",e,!1),Ae.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach(t=>{var o,n;const r=(o=Ae[t])==null?void 0:o.prototype;(n=r==null?void 0:r.hasOwnProperty)!=null&&n.call(r,"addEventListener")&&(Ue(r,"addEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},L=u[c]=u[c]||{refCount:0};if(!L.handler){const g=xc(s);L.handler=g,a.call(this,c,g,N)}L.refCount++}catch{}return a.call(this,c,l,N)}}),Ue(r,"removeEventListener",function(a){return function(c,l,N){if(c==="click"||c=="keypress")try{const u=this.__sentry_instrumentation_handlers__||{},L=u[c];L&&(L.refCount--,L.refCount<=0&&(a.call(this,c,L.handler,N),L.handler=void 0,delete u[c]),Object.keys(u).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return a.call(this,c,l,N)}}))})}function id(s){if(s.type!==pn)return!1;try{if(!s.target||s.target._sentryId!==An)return!1}catch{}return!0}function rd(s,e){return s!=="keypress"?!1:e!=null&&e.tagName?!(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable):!0}function xc(s,e=!1){return t=>{if(!t||t._sentryCaptured)return;const i=od(t);if(rd(t.type,i))return;Kt(t,"_sentryCaptured",!0),i&&!i._sentryId&&Kt(i,"_sentryId",Je());const r=t.type==="keypress"?"input":t.type;id(t)||(s({event:t,name:r,global:e}),pn=t.type,An=i?i._sentryId:void 0),clearTimeout(fc),fc=Ae.setTimeout(()=>{An=void 0,pn=void 0},ed)}}function od(s){try{return s.target}catch{return null}}let ur;function qN(s){const e="history";rs(e,s),os(e,nd)}function nd(){if(Ae.addEventListener("popstate",()=>{const e=Ae.location.href,t=ur;if(ur=e,t===e)return;Ke("history",{from:t,to:e})}),!ET())return;function s(e){return function(...t){const i=t.length>2?t[2]:void 0;if(i){const r=ur,o=ad(String(i));if(ur=o,r===o)return e.apply(this,t);Ke("history",{from:r,to:o})}return e.apply(this,t)}}Ue(Ae.history,"pushState",s),Ue(Ae.history,"replaceState",s)}function ad(s){try{return new URL(s,Ae.location.origin).toString()}catch{return s}}const Or={};function Md(s){const e=Or[s];if(e)return e;let t=Ae[s];if(zn(t))return Or[s]=t.bind(Ae);const i=Ae.document;if(i&&typeof i.createElement=="function")try{const r=i.createElement("iframe");r.hidden=!0,i.head.appendChild(r);const o=r.contentWindow;o!=null&&o[s]&&(t=o[s]),i.head.removeChild(r)}catch(r){qT&&R.warn(`Could not create sandbox iframe for ${s} check, bailing to window.${s}: `,r)}return t&&(Or[s]=t.bind(Ae))}function _c(s){Or[s]=void 0}const hi="__sentry_xhr_v3__";function cd(s){const e="xhr";rs(e,s),os(e,ud)}function ud(){if(!Ae.XMLHttpRequest)return;const s=XMLHttpRequest.prototype;s.open=new Proxy(s.open,{apply(e,t,i){const r=new Error,o=zt()*1e3,n=ht(i[0])?i[0].toUpperCase():void 0,a=ld(i[1]);if(!n||!a)return e.apply(t,i);t[hi]={method:n,url:a,request_headers:{}},n==="POST"&&a.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const c=()=>{const l=t[hi];if(l&&t.readyState===4){try{l.status_code=t.status}catch{}const N={endTimestamp:zt()*1e3,startTimestamp:o,xhr:t,virtualError:r};Ke("xhr",N)}};return"onreadystatechange"in t&&typeof t.onreadystatechange=="function"?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply(l,N,u){return c(),l.apply(N,u)}}):t.addEventListener("readystatechange",c),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(l,N,u){const[L,g]=u,y=N[hi];return y&&ht(L)&&ht(g)&&(y.request_headers[L.toLowerCase()]=g),l.apply(N,u)}}),e.apply(t,i)}}),s.send=new Proxy(s.send,{apply(e,t,i){const r=t[hi];if(!r)return e.apply(t,i);i[0]!==void 0&&(r.body=i[0]);const o={startTimestamp:zt()*1e3,xhr:t};return Ke("xhr",o),e.apply(t,i)}})}function ld(s){if(ht(s))return s;try{return s.toString()}catch{}}function Nd(s,e=Md("fetch")){let t=0,i=0;function r(o){const n=o.body.length;t+=n,i++;const a={body:o.body,method:"POST",referrerPolicy:"strict-origin",headers:s.headers,keepalive:t<=6e4&&i<15,...s.fetchOptions};if(!e)return _c("fetch"),br("No fetch implementation available");try{return e(s.url,a).then(c=>(t-=n,i--,{statusCode:c.status,headers:{"x-sentry-rate-limits":c.headers.get("X-Sentry-Rate-Limits"),"retry-after":c.headers.get("Retry-After")}}))}catch(c){return _c("fetch"),t-=n,i--,br(c)}}return tT(s,r)}const Ld=30,gd=50;function mn(s,e,t,i){const r={filename:s,function:e===""?qt:e,in_app:!0};return t!==void 0&&(r.lineno=t),i!==void 0&&(r.colno=i),r}const jd=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,yd=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Td=/\((\S*)(?::(\d+))(?::(\d+))\)/,dd=s=>{const e=jd.exec(s);if(e){const[,i,r,o]=e;return mn(i,qt,+r,+o)}const t=yd.exec(s);if(t){if(t[2]&&t[2].indexOf("eval")===0){const n=Td.exec(t[2]);n&&(t[2]=n[1],t[3]=n[2],t[4]=n[3])}const[r,o]=e0(t[1]||qt,t[2]);return mn(o,r,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}},Dd=[Ld,dd],hd=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,zd=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,wd=s=>{const e=hd.exec(s);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const o=zd.exec(e[3]);o&&(e[1]=e[1]||"eval",e[3]=o[1],e[4]=o[2],e[5]="")}let i=e[3],r=e[1]||qt;return[r,i]=e0(r,i),mn(i,r,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}},Cd=[gd,wd],Id=[Dd,Cd],pd=SN(...Id),e0=(s,e)=>{const t=s.indexOf("safari-extension")!==-1,i=s.indexOf("safari-web-extension")!==-1;return t||i?[s.indexOf("@")!==-1?s.split("@")[0]:qt,t?`safari-extension:${e}`:`safari-web-extension:${e}`]:[s,e]},no=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,lr=1024,Ad="Breadcrumbs",md=(s={})=>{const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...s};return{name:Ad,setup(t){e.console&&zT(xd(t)),e.dom&&td(fd(t,e.dom)),e.xhr&&cd(_d(t)),e.fetch&&_T(Sd(t)),e.history&&qN(kd(t)),e.sentry&&t.on("beforeSendEvent",Ed(t))}}},Od=md;function Ed(s){return function(t){Ee()===s&&ts({category:`sentry.${t.type==="transaction"?"transaction":"event"}`,event_id:t.event_id,level:t.level,message:Vt(t)},{event:t})}}function fd(s,e){return function(i){if(Ee()!==s)return;let r,o,n=typeof e=="object"?e.serializeAttribute:void 0,a=typeof e=="object"&&typeof e.maxStringLength=="number"?e.maxStringLength:void 0;a&&a>lr&&(no&&R.warn(`\`dom.maxStringLength\` cannot exceed ${lr}, but a value of ${a} was configured. Sentry will use ${lr} instead.`),a=lr),typeof n=="string"&&(n=[n]);try{const l=i.event,N=Yd(l)?l.target:l;r=zN(N,{keyAttrs:n,maxStringLength:a}),o=Vg(N)}catch{r=""}if(r.length===0)return;const c={category:`ui.${i.name}`,message:r};o&&(c.data={"ui.component_name":o}),ts(c,{event:i.event,name:i.name,global:i.global})}}function xd(s){return function(t){if(Ee()!==s)return;const i={category:"console",data:{arguments:t.args,logger:"console"},level:CT(t.level),message:HM(t.args," ")};if(t.level==="assert")if(t.args[0]===!1)i.message=`Assertion failed: ${HM(t.args.slice(1)," ")||"console.assert"}`,i.data.arguments=t.args.slice(1);else return;ts(i,{input:t.args,level:t.level})}}function _d(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t,o=t.xhr[hi];if(!i||!r||!o)return;const{method:n,url:a,status_code:c,body:l}=o,N={method:n,url:a,status_code:c},u={xhr:t.xhr,input:l,startTimestamp:i,endTimestamp:r},L={category:"xhr",data:N,type:"http",level:ZN(c)};s.emit("beforeOutgoingRequestBreadcrumb",L,u),ts(L,u)}}function Sd(s){return function(t){if(Ee()!==s)return;const{startTimestamp:i,endTimestamp:r}=t;if(r&&!(t.fetchData.url.match(/sentry_key/)&&t.fetchData.method==="POST"))if(t.fetchData.method,t.fetchData.url,t.error){const o=t.fetchData,n={data:t.error,input:t.args,startTimestamp:i,endTimestamp:r},a={category:"fetch",data:o,level:"error",type:"http"};s.emit("beforeOutgoingRequestBreadcrumb",a,n),ts(a,n)}else{const o=t.response,n={...t.fetchData,status_code:o==null?void 0:o.status};t.fetchData.request_body_size,t.fetchData.response_body_size,o==null||o.status;const a={input:t.args,response:o,startTimestamp:i,endTimestamp:r},c={category:"fetch",data:n,type:"http",level:ZN(n.status_code)};s.emit("beforeOutgoingRequestBreadcrumb",c,a),ts(c,a)}}}function kd(s){return function(t){if(Ee()!==s)return;let i=t.from,r=t.to;const o=ko(Le.location.href);let n=i?ko(i):void 0;const a=ko(r);n!=null&&n.path||(n=o),o.protocol===a.protocol&&o.host===a.host&&(r=a.relative),o.protocol===n.protocol&&o.host===n.host&&(i=n.relative),ts({category:"navigation",data:{from:i,to:r}})}}function Yd(s){return!!s&&!!s.target}const vd=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],bd="BrowserApiErrors",Qd=(s={})=>{const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...s};return{name:bd,setupOnce(){e.setTimeout&&Ue(Le,"setTimeout",Sc),e.setInterval&&Ue(Le,"setInterval",Sc),e.requestAnimationFrame&&Ue(Le,"requestAnimationFrame",$d),e.XMLHttpRequest&&"XMLHttpRequest"in Le&&Ue(XMLHttpRequest.prototype,"send",Pd);const t=e.eventTarget;t&&(Array.isArray(t)?t:vd).forEach(r=>Wd(r,e))}}},Ud=Qd;function Sc(s){return function(...e){const t=e[0];return e[0]=Hs(t,{mechanism:{data:{function:Qt(s)},handled:!1,type:"instrument"}}),s.apply(this,e)}}function $d(s){return function(e){return s.apply(this,[Hs(e,{mechanism:{data:{function:"requestAnimationFrame",handler:Qt(s)},handled:!1,type:"instrument"}})])}}function Pd(s){return function(...e){const t=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(r=>{r in t&&typeof t[r]=="function"&&Ue(t,r,function(o){const n={mechanism:{data:{function:r,handler:Qt(o)},handled:!1,type:"instrument"}},a=ha(o);return a&&(n.mechanism.data.handler=Qt(a)),Hs(o,n)})}),s.apply(this,e)}}function Wd(s,e){var r,o;const i=(r=Le[s])==null?void 0:r.prototype;(o=i==null?void 0:i.hasOwnProperty)!=null&&o.call(i,"addEventListener")&&(Ue(i,"addEventListener",function(n){return function(a,c,l){try{Bd(c)&&(c.handleEvent=Hs(c.handleEvent,{mechanism:{data:{function:"handleEvent",handler:Qt(c),target:s},handled:!1,type:"instrument"}}))}catch{}return e.unregisterOriginalCallbacks&&Jd(this,a,c),n.apply(this,[a,Hs(c,{mechanism:{data:{function:"addEventListener",handler:Qt(c),target:s},handled:!1,type:"instrument"}}),l])}}),Ue(i,"removeEventListener",function(n){return function(a,c,l){try{const N=c.__sentry_wrapped__;N&&n.call(this,a,N,l)}catch{}return n.call(this,a,c,l)}}))}function Bd(s){return typeof s.handleEvent=="function"}function Jd(s,e,t){s&&typeof s=="object"&&"removeEventListener"in s&&typeof s.removeEventListener=="function"&&s.removeEventListener(e,t)}const Rd=()=>({name:"BrowserSession",setupOnce(){if(typeof Le.document>"u"){no&&R.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}jc({ignoreDuration:!0}),yc(),qN(({from:s,to:e})=>{s!==void 0&&s!==e&&(jc({ignoreDuration:!0}),yc())})}}),Fd="GlobalHandlers",Gd=(s={})=>{const e={onerror:!0,onunhandledrejection:!0,...s};return{name:Fd,setupOnce(){Error.stackTraceLimit=50},setup(t){e.onerror&&(Vd(t),kc("onerror")),e.onunhandledrejection&&(Zd(t),kc("onunhandledrejection"))}}},Hd=Gd;function Vd(s){Uj(e=>{const{stackParser:t,attachStacktrace:i}=t0();if(Ee()!==s||XN())return;const{msg:r,url:o,line:n,column:a,error:c}=e,l=qd(Aa(t,c||r,void 0,i,!1),o,n,a);l.level="error",QN(l,{originalException:c,mechanism:{handled:!1,type:"onerror"}})})}function Zd(s){Pj(e=>{const{stackParser:t,attachStacktrace:i}=t0();if(Ee()!==s||XN())return;const r=Xd(e),o=Ta(r)?Kd(r):Aa(t,r,void 0,i,!0);o.level="error",QN(o,{originalException:r,mechanism:{handled:!1,type:"onunhandledrejection"}})})}function Xd(s){if(Ta(s))return s;try{if("reason"in s)return s.reason;if("detail"in s&&"reason"in s.detail)return s.detail.reason}catch{}return s}function Kd(s){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(s)}`}]}}}function qd(s,e,t,i){const r=s.exception=s.exception||{},o=r.values=r.values||[],n=o[0]=o[0]||{},a=n.stacktrace=n.stacktrace||{},c=a.frames=a.frames||[],l=i,N=t,u=ht(e)&&e.length>0?e:Da();return c.length===0&&c.push({colno:l,filename:u,function:qt,in_app:!0,lineno:N}),s}function kc(s){no&&R.log(`Global Handler attached: ${s}`)}function t0(){const s=Ee();return(s==null?void 0:s.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}const eD=()=>({name:"HttpContext",preprocessEvent(s){var i;if(!Le.navigator&&!Le.location&&!Le.document)return;const e=QT(),t={...e.headers,...(i=s.request)==null?void 0:i.headers};s.request={...e,...s.request,headers:t}}}),tD="cause",sD=5,iD="LinkedErrors",rD=(s={})=>{const e=s.limit||sD,t=s.key||tD;return{name:iD,preprocessEvent(i,r,o){const n=o.getOptions();hT(Ia,n.stackParser,t,e,i,r)}}},oD=rD;function nD(){return aD()?(no&&Zs(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function aD(){var o;if(typeof Le.window>"u")return!1;const s=Le;if(s.nw)return!1;const e=s.chrome||s.browser;if(!((o=e==null?void 0:e.runtime)!=null&&o.id))return!1;const t=Da(),i=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(Le===Le.top&&i.some(n=>t.startsWith(`${n}://`)))}function MD(s){return[NT(),MT(),Ud(),Od(),Hd(),oD(),GN(),eD(),Rd()]}function cD(s={}){const e=!s.skipBrowserExtensionCheck&&nD(),t={...s,enabled:e?!1:s.enabled,stackParser:bj(s.stackParser||pd),integrations:Yy({integrations:s.integrations,defaultIntegrations:s.defaultIntegrations==null?MD():s.defaultIntegrations}),transport:s.transport||Nd};return Fy(XT,t)}function uD(){console.log(` +██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ +██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗ +██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝ +██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗ +██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║ +╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ +`),console.log("Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters"),console.log("Help us to create open source project with reactJS!"),console.log("See you :)")}const lD=` +/** + * Copyright 2018-2024 Denis Haev (bluefox) + * + * MIT License + * + **/ + +.logo-background-light, .logo-background-colored { + background: white; +} +.logo-background-dark, .logo-background-blue { + background: black; +} +.logo-div { + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + overflow: hidden; + border-radius: 50%; + z-index: 2; +} +.logo-border { + /*border-color: #164477;*/ + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + border-radius: 50%; + border-style: solid; + box-sizing: border-box; + width: 100%; + height: 100%; + position: absolute; +} +.logo-top { + position: absolute; + width: 4.5%; + height: 16%; + top: 0; + z-index: 2; +} +.logo-i { + position: absolute; + width: 14.5%; + height: 60%; + top: 20%; + left: 42%; + background: #3399CC; +} +.logo-i-top { + position: absolute; + width: 14.5%; + height: 4%; + left: 42%; + background: #3399CC; + border-radius: 100%; +} +.logo-back { + width: 100%; + height: 100%; + z-index: 0; + overflow: hidden; +} +@keyframes logo-grow { + 0% { + width: 230px; + height: 230px; + transform: translate(-50%,-50%) scale(1); + opacity: 1 + } + 99% { + width: 230px; + height: 230px; + transform: translate(-50%,-50%) scale(10); + opacity: 0; + } + 100% { + width: 0; + height: 0; + opacity: 0; + } +} +@keyframes logo-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } +@keyframes logo-color-inside-light { + 0% { + background: #FEFEFE; + } + 100% { + background: #3399CC; + } +} +@keyframes logo-color-inside-dark { + 0% { + background: #030303; + } + 100% { + background: #3399CC; + } +} +@keyframes logo-color-inside-colored { + 0% { + background: #FEFEFE; + } + 100% { + background: #3399CC; + } +} +@keyframes logo-color-inside-blue { + 0% { + background: #030303; + } + 100% { + background: #3399CC; + } +} + +@keyframes logo-color-outside-light { + 0% { + border-color: #FEFEFE; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} +@keyframes logo-color-outside-dark { + 0% { + border-color: #040404; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} +@keyframes logo-color-outside-colored { + 0% { + border-color: #FEFEFE; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} +@keyframes logo-color-outside-blue { + 0% { + border-color: #040404; + } + 100% { + border-top-color: #3399CC; + border-left-color: #164477; + border-bottom-color: #164477; + border-right-color: #164477; + } +} + +.logo-animate-wait { + animation: logo-color-outside 1.5s, logo-spin 1.5s linear infinite; +} + +.logo-animate-grow-light { + background: #DDD; +} +.logo-animate-grow-dark { + background: #1d1d1d; +} +.logo-animate-grow-colored { + background: #DDD; +} +.logo-animate-grow-blue { + background: #1d1d1d; +} + +.logo-animate-grow { + display: inline-block; + text-align: center; + z-index: 1; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + width: 245px; + height: 245px; + border-radius: 50%; + position: absolute; + animation: logo-grow 1s 1 ease forwards; +} + +.logo-animate-color-inside-light { + animation: logo-color-inside-light 2.5s; +} +.logo-animate-color-inside-dark { + animation: logo-color-inside-dark 2.5s; +} +.logo-animate-color-inside-colored { + animation: logo-color-inside-colored 2.5s; +} +.logo-animate-color-inside-blue { + animation: logo-color-inside-blue 2.5s; +} + +.logo-animate-color-outside-light { + animation: logo-color-outside-light 1.5s; +} +.logo-animate-color-outside-dark { + animation: logo-color-outside-dark 1.5s; +} +.logo-animate-color-outside-colored { + animation: logo-color-outside-colored 1.5s; +} +.logo-animate-color-outside-blue { + animation: logo-color-outside-blue 1.5s; +} +`;function ND(s){f.useEffect(()=>{if(!window.document.getElementById("loader-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","loader-iobroker-component"),i.innerHTML=lD,window.document.head.appendChild(i)}},[]);const e=s.size||234,t=s.themeName||s.theme||s.themeType||"light";return M.createElement("div",{className:`logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:void 0,backgroundSize:"cover"}},window.loadingHideLogo==="true"?null:M.createElement(M.Fragment,null,M.createElement("div",{className:"logo-div",style:{width:e,height:e}},M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"37%"}}),M.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"57%"}}),M.createElement("div",{className:`logo-border logo-background-${t} logo-animate-wait`,style:{borderWidth:e*.132}}),M.createElement("div",{className:`logo-i logo-animate-color-inside-${t}`}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{top:"18%"}}),M.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{bottom:"18%"}})),M.createElement("div",{className:`logo-animate-grow logo-animate-grow-${t}`,style:{width:e+11,height:e+11}})))}class Oi extends f.Component{onHashChangedBound;constructor(e){super(e),this.onHashChangedBound=this.onHashChanged.bind(this)}componentDidMount(){window.addEventListener("hashchange",this.onHashChangedBound)}componentWillUnmount(){window.removeEventListener("hashchange",this.onHashChangedBound)}onHashChanged(){}static getLocation(){let e=window.location.hash;e=e.replace(/^#/,"");const t=e.split("/").map(i=>{try{return i?decodeURIComponent(i):""}catch{return console.error(`Router: Cannot decode ${i}`),i}});return{tab:t[0]||"",dialog:t[1]||"",id:t[2]||"",arg:t[3]||""}}static doNavigate(e,t,i,r){let o="";const n=Oi.getLocation();r!==void 0&&!i&&(i=n.id),i&&!t&&(t=n.dialog),(t&&!e||e===null)&&(e=n.tab),e&&(o=`#${e}`,t&&(o+=`/${t}`,i&&(o+=`/${i}`,r!==void 0&&(o+=`/${r}`)))),window.location.hash!==o&&(window.location.hash=o)}}function LD(){const s=document.getSelection();if(!(s!=null&&s.rangeCount))return()=>{};let e=document.activeElement;const t=[];for(let i=0;i{s.type==="Caret"&&s.removeAllRanges(),s.rangeCount||t.forEach(i=>s.addRange(i)),e&&e.focus()}}const Yc={"text/plain":"Text","text/html":"Url",default:"Text"},gD="Copy to clipboard: #{key}, Enter";function jD(s){const e=`${/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl"}+C`;return s.replace(/#{\s*key\s*}/g,e)}function s0(s,e){let t,i,r,o,n=!1;e=e||{};const a=e.debug||!1;try{if(t=LD(),i=document.createRange(),r=document.getSelection(),o=document.createElement("span"),o.textContent=s,o.ariaHidden="true",o.style.all="unset",o.style.position="fixed",o.style.top="0px",o.style.clip="rect(0, 0, 0, 0)",o.style.whiteSpace="pre",o.style.userSelect="text",o.addEventListener("copy",l=>{var N,u,L,g;if(l.stopPropagation(),e!=null&&e.format)if(l.preventDefault(),typeof l.clipboardData>"u"){a&&console.warn("unable to use e.clipboardData"),a&&console.warn("trying IE specific stuff"),(N=window.clipboardData)==null||N.clearData();const y=Yc[e.format]||Yc.default;(u=window.clipboardData)==null||u.setData(y,s)}else(L=l.clipboardData)==null||L.clearData(),(g=l.clipboardData)==null||g.setData(e.format,s)}),document.body.appendChild(o),i.selectNodeContents(o),r==null||r.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");n=!0}catch(c){a&&console.error("unable to copy using execCommand: ",c),a&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",s),n=!0}catch(l){a&&console.error("unable to copy using clipboardData: ",l),a&&console.error("falling back to prompt");const N=jD("message"in e?e.message||"":gD);window.prompt(N,s)}}finally{r&&(i&&typeof r.removeRange=="function"?r.removeRange(i):r.removeAllRanges()),o&&document.body.removeChild(o),t&&t()}return n}class h{static translations={};static unknownTranslations=[];static lang=window.sysLang||"en";static _disableWarning=!1;static setLanguage(e){e&&(h.lang=e)}static extendTranslations(e,t){if(e.prefix){const i=e;if(typeof i.prefix=="string"){const r=i.prefix;delete i.prefix,Object.keys(i).forEach(o=>{const n=o,a={},c=i[n];Object.keys(c).forEach(l=>{l&&c&&(l.startsWith(r)?a[l]=c[l]:a[`${r}${l}`]=c[l])}),e[n]=a})}else console.warn("Found prefix in translations, but it is not a string")}try{if(!t)e.en&&e.de&&e.ru?Object.keys(e).forEach(i=>{const r=i;h.translations[r]=h.translations[r]||{};const o=h.translations[r];Object.assign(o,e[r])}):Object.keys(e).forEach(i=>{const r=e[i];Object.keys(r).forEach(o=>{const n=o,a=h.translations[n];a?a[i]?a[i]!==r[n]&&console.warn(`Translation for word "${i}" in "${n}" was ignored: existing = "${a[i]}", new = ${r[n]}`):a[i]=r[n]:console.warn(`Used unknown language: ${n}`)})});else{h.translations[t]||console.warn(`Used unknown language: ${t}`),h.translations[t]=h.translations[t]||{};const i=h.translations[t];i&&Object.keys(e).forEach(r=>{i[r]?i[r]!==e[r]&&console.warn(`Translation for word "${r}" in "${t}" was ignored: existing = "${i[r]}", new = ${e[r]}`):i[r]=e[r]})}}catch(i){console.error(`Cannot apply translations: ${i}`)}}static setTranslations(e){e&&(h.translations=e)}static getLanguage(){return h.lang}static t(e,...t){const i=h.translations[h.lang];if(i){const r=i[e];if(r)e=r;else if(h.unknownTranslations.includes(e)||(h.unknownTranslations.push(e),!h._disableWarning&&console.log(`Translate: ${e}`)),h.lang!=="en"&&h.translations.en){const o=h.translations.en[e];o&&(e=o)}}for(const r of t)e=e.replace("%s",r);return e}static i18nShow(e){const t={};e?typeof e=="string"?(h.unknownTranslations.forEach(i=>{i.startsWith(e)&&(t[i]=i.replace(e,""))}),console.log(JSON.stringify(t,null,2))):typeof e=="object"&&(h.unknownTranslations.forEach(i=>{e.test(i)&&(t[i]=i)}),console.log(JSON.stringify(t,null,2))):(h.unknownTranslations.forEach(i=>t[i]=i),console.log(JSON.stringify(t,null,2)))}static disableWarning(e){h._disableWarning=!!e}}window.i18nShow=h.i18nShow;window.i18nDisableWarning=h.disableWarning;const st="material",yD=["Su","Mo","Tu","We","Th","Fr","Sa"],TD=["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vo={0:"0x00 - good",1:"0x01 - general problem",2:"0x02 - no connection problem",16:"0x10 - substitute value from controller",32:"0x20 - substitute initial value",64:"0x40 - substitute value from device or instance",128:"0x80 - substitute value from sensor",17:"0x11 - general problem by instance",65:"0x41 - general problem by device",129:"0x81 - general problem by sensor",18:"0x12 - instance not connected",66:"0x42 - device not connected",130:"0x82 - sensor not connected",68:"0x44 - device reports error",132:"0x84 - sensor reports error"},vc={JVBERi0:"pdf",R0lGODdh:"gif",R0lGODlh:"gif",iVBORw0KGgo:"png","/9j/":"jpg",PHN2Zw:"svg",Qk1:"bmp",AAABAA:"ico"};class O{static namespace=st;static INSTANCES="instances";static dateFormat=["DD","MM"];static FORBIDDEN_CHARS=/[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;static CapitalWords(e){return(e||"").split(/[\s_]/).filter(t=>t).map(t=>t?t[0].toUpperCase()+t.substring(1).toLowerCase():"").join(" ")}static formatSeconds(e){const t=Math.floor(e/86400);e%=3600*24;const i=Math.floor(e/3600).toString().padStart(2,"0");e%=3600;const r=Math.floor(e/60).toString().padStart(2,"0");e%=60;const o=Math.floor(e).toString().padStart(2,"0");let n="";return t&&(n+=`${t} ${h.t("ra_daysShortText")} `),n+=`${i}:${r}:${o}`,n}static getObjectName(e,t,i,r,o){var c;const n=e[t];let a;if(typeof i=="string"&&!r&&(r={language:i},i=null),r=r||{},r.language||(r.language=e["system.config"]&&e["system.config"].common&&e["system.config"].common.language||window.sysLang||"en"),i!=null&&i.name){const l=i.name;typeof l=="object"?a=r.language&&l[r.language]||l.en:a=l}else if(o&&((c=n==null?void 0:n.common)!=null&&c.desc)){const l=n.common.desc;typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!o&&(n!=null&&n.common)){const l=n.common.name||n.common.desc;l&&typeof l=="object"?a=r.language&&l[r.language]||l.en||l.de||l.ru||"":a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else{const l=t.lastIndexOf(".");a=t.substring(l+1).replace(/[_.]/g," "),a=O.CapitalWords(a)}return(a==null?void 0:a.trim())||""}static getObjectNameFromObj(e,t,i,r,o){var c,l;const n=e;let a=(e==null?void 0:e._id)||"";if(typeof t=="string"&&!i&&(i={language:t},t=null),i=i||{},t!=null&&t.name){const N=t.name;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N}else if(r&&((c=n==null?void 0:n.common)!=null&&c.desc)){const N=n.common.desc;typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!r&&((l=n==null?void 0:n.common)!=null&&l.name)){let N=n.common.name;!N&&n.common.desc&&(N=n.common.desc),typeof N=="object"?a=i.language&&N[i.language]||N.en:a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}return o?a:a.trim()}static getSettingsOrder(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subOrder&&o[n].subOrder[t])return JSON.parse(JSON.stringify(o[n].subOrder[t]))}else if(o[n].order)return JSON.parse(JSON.stringify(o[n].order))}}return null}static getSettingsCustomURLs(e,t,i){let r;e&&Object.prototype.hasOwnProperty.call(e,"common")?r=e.common:r=e;let o;if(r!=null&&r.custom){o=r.custom[st];const n=i.user||"admin";if(o&&o[n]){if(t){if(o[n].subURLs&&o[n].subURLs[t])return JSON.parse(JSON.stringify(o[n].subURLs[t]))}else if(o[n].URLs)return JSON.parse(JSON.stringify(o[n].URLs))}}return null}static reorder(e,t,i){const r=Array.from(e),[o]=r.splice(t,1);return r.splice(i,0,o),r}static getSettings(e,t,i){let r;const o=(e==null?void 0:e._id)||(t==null?void 0:t.id);let n;if(e&&Object.prototype.hasOwnProperty.call(e,"common")?n=e.common:n=e,n!=null&&n.custom?(r=n.custom,r=r[st]&&r[st][t.user||"admin"]?JSON.parse(JSON.stringify(r[st][t.user||"admin"])):{enabled:!0}):r={enabled:i===void 0?!0:i,useCustom:!1},Object.prototype.hasOwnProperty.call(r,"enabled")||(r.enabled=i===void 0?!0:i),t&&(!r.name&&t.name&&(r.name=t.name),!r.icon&&t.icon&&(r.icon=t.icon),!r.color&&t.color&&(r.color=t.color)),n&&(!r.color&&n.color&&(r.color=n.color),!r.icon&&n.icon&&(r.icon=n.icon),!r.name&&n.name&&(r.name=n.name)),typeof r.name=="object"&&(r.name=t.language&&r.name[t.language]||r.name.en,r.name=(r.name||"").toString().replace(/_/g," "),r.name===r.name.toUpperCase()&&(r.name=r.name[0]+r.name.substring(1).toLowerCase())),!r.name&&o){const a=o.lastIndexOf(".");r.name=o.substring(a+1).replace(/[_.]/g," "),r.name=(r.name||"").toString().replace(/_/g," "),r.name=O.CapitalWords(r.name)}return r}static setSettings(e,t,i){if(e){e.common=e.common||{},e.common.custom=e.common.custom||{},e.common.custom[st]=e.common.custom[st]||{},e.common.custom[st][i.user||"admin"]=t;const r=e.common.custom[st][i.user||"admin"];return r.useCommon&&(r.color!==void 0&&(e.common.color=r.color,delete r.color),r.icon!==void 0&&(e.common.icon=r.icon,delete r.icon),r.name!==void 0&&(typeof e.common.name!="object"&&i.language?e.common.name={[i.language]:r.name}:typeof e.common.name=="object"&&i.language&&(e.common.name[i.language]=r.name),delete r.name)),!0}return!1}static getIcon(e,t){return e!=null&&e.icon?e.icon.length<=2?M.createElement("span",{style:t||{}},e.icon):e.icon.startsWith("data:image")?M.createElement("img",{alt:e.name,src:e.icon,style:t||{}}):M.createElement("img",{alt:e.name,src:(e.prefix||"")+e.icon,style:t}):null}static getObjectIcon(e,t){var i;if(typeof e=="object"&&(t=e,e=t==null?void 0:t._id),(i=t==null?void 0:t.common)!=null&&i.icon){let r=t.common.icon;if(typeof r=="string"&&r.length<=2||r.startsWith("data:image"))return r;const o=e.split(".");return o[0]==="system"?r=`adapter/${o[2]}${r.startsWith("/")?"":"/"}${r}`:r=`adapter/${o[0]}${r.startsWith("/")?"":"/"}${r}`,window.location.pathname.match(/adapter\/[^/]+\/[^/]+\.html/)?r=`../../${r}`:window.location.pathname.match(/material\/[.\d]+/)?r=`../../${r}`:window.location.pathname.match(/material\//)&&(r=`../${r}`),r}return null}static splitCamelCase(e){return e?O.CapitalWords(e):""}static isUseBright(e,t){if(!e)return t===void 0?!0:t;e=e.toString(),e.startsWith("#")&&(e=e.slice(1));let i,r,o;const n=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(n&&n.length===4)i=parseInt(n[1],10),r=parseInt(n[2],10),o=parseInt(n[3],10);else{if(e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8)e=e.substring(0,6);else if(e.length!==6)return!1;i=parseInt(e.slice(0,2),16),r=parseInt(e.slice(2,4),16),o=parseInt(e.slice(4,6),16)}return i*.299+r*.587+o*.114<=186}static getTimeString(e){if(e=parseFloat(e),Number.isNaN(e))return"--:--";const t=Math.floor(e/3600),i=Math.floor(e%3600/60).toString().padStart(2,"0"),r=(e%60).toString().padStart(2,"0");return t?`${t}:${i}:${r}`:`${i}:${r}`}static getWindDirection(e){return e>=0&&e<11.25?"N":e>=11.25&&e<33.75?"NNE":e>=33.75&&e<56.25?"NE":e>=56.25&&e<78.75?"ENE":e>=78.75&&e<101.25?"E":e>=101.25&&e<123.75?"ESE":e>=123.75&&e<146.25?"SE":e>=146.25&&e<168.75?"SSE":e>=168.75&&e<191.25?"S":e>=191.25&&e<213.75?"SSW":e>=213.75&&e<236.25?"SW":e>=236.25&&e<258.75?"WSW":e>=258.75&&e<281.25?"W":e>=281.25&&e<303.75?"WNW":e>=303.75&&e<326.25?"NW":e>=326.25&&e<348.75?"NNW":"N"}static padding(e){return typeof e=="string"?e.length<2?`0${e}`:e:e<10?`0${e}`:e.toString()}static setDataFormat(e){e&&(O.dateFormat=e.toUpperCase().split(/[.-/]/),O.dateFormat.splice(O.dateFormat.indexOf("YYYY"),1))}static date2string(e){if(typeof e=="string"){if(e=e.trim(),!e)return"";if(e.match(/^[\w\s]+$/))return e;const i=e.match(/(\d{1,4})[-./](\d{1,2})[-./](\d{1,4})/);if(i){const r=[parseInt(i[1],10),parseInt(i[2],10),parseInt(i[3],10)],o=r.find(n=>n>31);if(o!==void 0){r.splice(r.indexOf(o),1);const n=r.find(a=>a>12);n?(r.splice(r.indexOf(n),1),e=new Date(o,r[0]-1,n)):O.dateFormat[0][0]==="M"&&O.dateFormat[1][0]==="D"?(e=new Date(o,r[0]-1,r[1]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[1]-1,r[0]))):O.dateFormat[0][0]==="D"&&O.dateFormat[1][0]==="M"?(e=new Date(o,r[1]-1,r[0]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(o,r[0]-1,r[1]))):e=new Date(e)}else e=new Date(e)}else e=new Date(e)}else e=new Date(e);let t=h.t(`ra_dow_${yD[e.getDay()]}`).replace("ra_dow_","");return t+=`. ${e.getDate()} ${h.t(`ra_month_${TD[e.getMonth()]}`).replace("ra_month_","")}`,t}static renderTextWithA(e){let t=e.match(/
||[^<]+<\/b>|[^<]+<\/i>/);if(t){const i=[];let r=1;do{const o=e.substring(0,t.index);if(e=e.substring((t.index||0)+t[0].length),o&&i.push(M.createElement("span",{key:`a${r++}`},o)),t[0].startsWith(""))i.push(M.createElement("b",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith(""))i.push(M.createElement("i",{key:`a${r++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith("([^<]*)||[^<]+<\/b>|[^<]+<\/i>/):null,!t&&e&&i.push(M.createElement("span",{key:`a${r++}`},e))}while(t);return i}return e}static getSmartName(e,t,i,r){var n,a;if(!t){if(!r)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const c=e;return(n=c==null?void 0:c.common)!=null&&n.custom&&c.common.custom[i]?c.common.custom[i].smartName:void 0}if(!r)return e[t].common.smartName;const o=e[t];return(a=o==null?void 0:o.common)!=null&&a.custom&&o.common.custom[i]&&o.common.custom[i].smartName||null}static getSmartNameFromObj(e,t,i){var o,n;if(!i)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const r=(n=(o=e==null?void 0:e.common)==null?void 0:o.custom)==null?void 0:n[t];return r?r.smartName:void 0}static enableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName={}):e.common.smartName={}}static removeSmartName(e,t,i){i?e.common&&e.common.custom&&e.common.custom[t]&&(e.common.custom[t]=null):e.common.smartName=null}static updateSmartName(e,t,i,r,o,n){const a=h.getLanguage();if(typeof e.common.smartName=="string"){const c=e.common.smartName;e.common.smartName={},e.common.smartName[a]=c}if(e.native&&e.native.byON){delete e.native.byON;let c=e.common.smartName;c&&typeof c!="object"&&(c={en:c,[a]:c}),e.common.smartName=c}if(r!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},r?e.common.custom[o].smartName.smartType=r:delete e.common.custom[o].smartName.smartType):(e.common.smartName=e.common.smartName||{},r?e.common.smartName.smartType=r:delete e.common.smartName.smartType)),i!==void 0&&(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},e.common.custom[o].smartName.byON=i):(e.common.smartName=e.common.smartName||{},e.common.smartName.byON=i)),t!==void 0){let c;if(n?(e.common.custom=e.common.custom||{},e.common.custom[o]=e.common.custom[o]||{},e.common.custom[o].smartName=e.common.custom[o].smartName||{},c=e.common.custom[o].smartName):(e.common.smartName=e.common.smartName||{},c=e.common.smartName),c[a]=t,c&&(!c[a]||c[a]===e.common.name&&(!e.common.role||e.common.role.includes("button")))){delete c[a];let l=!0;for(const N in c)if(Object.prototype.hasOwnProperty.call(c,N)){l=!1;break}if(l)if(n&&e.common.custom&&e.common.custom[o])e.common.custom[o].smartName.byON===void 0?delete e.common.custom[o]:(delete e.common.custom[o].en,delete e.common.custom[o].de,delete e.common.custom[o].ru,delete e.common.custom[o].nl,delete e.common.custom[o].pl,delete e.common.custom[o].it,delete e.common.custom[o].fr,delete e.common.custom[o].pt,delete e.common.custom[o].es,delete e.common.custom[o].uk,delete e.common.custom[o]["zh-cn"]);else if(e.common.smartName&&e.common.smartName.byON!==void 0){const N=e.common.smartName;delete N.en,delete N.de,delete N.ru,delete N.nl,delete N.pl,delete N.it,delete N.fr,delete N.pt,delete N.es,delete N.uk,delete N["zh-cn"]}else e.common.smartName=null}}}static disableSmartName(e,t,i){i?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName=!1):e.common.smartName=!1}static copyToClipboard(e,t){return t&&(t.stopPropagation(),t.preventDefault()),s0(e)}static getFileExtension(e){const t=(e||"").lastIndexOf(".");return t!==-1?e.substring(t+1).toLowerCase():null}static formatBytes(e){if(Math.abs(e)<1024)return`${e} B`;const t=["KB","MB","GB"];let i=-1;do e/=1024,++i;while(Math.abs(e)>=1024&&i186?`#000000${i||""}`:`#FFFFFF${i||""}`;const a=(255-r).toString(16),c=(255-o).toString(16),l=(255-n).toString(16);return`#${a.padStart(2,"0")}${c.padStart(2,"0")}${l.padStart(2,"0")}${i||""}`}static color2rgb(e){if(e==null||e===""||typeof e!="string")return!1;if(e.startsWith("rgba")){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else if(e.startsWith("rgb")){const t=e.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else e.startsWith("#")&&(e=e.slice(1));return e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length!==6&&e.length!==8?(console.warn(`Cannot invert color: ${e}`),!1):[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}static rgb2lab(e){let t=e[0]/255,i=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let o=(t*.4124+i*.3576+r*.1805)/.95047,n=t*.2126+i*.7152+r*.0722,a=(t*.0193+i*.1192+r*.9505)/1.08883;return o=o>.008856?o**.33333333:7.787*o+.137931,n=n>.008856?n**.33333333:7.787*n+.137931,a=a>.008856?a**.33333333:7.787*a+.137931,[116*n-16,500*(o-n),200*(n-a)]}static colorDistance(e,t){const i=O.color2rgb(e),r=O.color2rgb(t);if(!i||!r)return 0;const o=O.rgb2lab(i),n=O.rgb2lab(r),a=o[0]-n[0],c=o[1]-n[1],l=o[2]-n[2],N=Math.sqrt(o[1]*o[1]+o[2]*o[2]),u=Math.sqrt(n[1]*n[1]+n[2]*n[2]),L=N-u;let g=c*c+l*l-L*L;g=g<0?0:Math.sqrt(g);const y=1+.045*N,T=1+.015*N,d=a,z=L/y,I=g/T,C=d*d+z*z+I*I;return C<0?0:C}static _toVal(e){let t,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e))for(let r=0;r{if(i=i.trim(),i){const r=i.split("="),o=decodeURIComponent(r[0]).trim();if(r.length>1){const n=decodeURIComponent(r[1]);if(n==="true")t[o]=!0;else if(n==="false")t[o]=!1;else{const a=parseFloat(n);a.toString()===n?t[o]=a:t[o]=n}}else t[o]=!0}}),t}static getParentId(e){const t=(e||"").toString().split(".");return t.length>1?(t.pop(),t.join(".")):null}static formatDate(e,t){if(!e)return"";let i;const r=(e.getMonth()+1).toString().padStart(2,"0"),o=e.getDate().toString().padStart(2,"0");return t==="MM/DD/YYYY"?i=`${r}/${o}/${e.getFullYear()}`:i=`${e.getFullYear()}-${r}-${o}`,i+=` ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`,i}static formatTime(e){if(e){e=Math.round(e);const t=Math.floor(e/(3600*24)),i=Math.floor(e%(3600*24)/3600),r=Math.floor(e%3600/60),o=e%60;return t?`${t}.${i.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:i?`${i}:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`:`0:${r.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}return"0:00:00"}static MDtext2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static MDgetTitle(e){var o;const t=O.MDextractHeader(e),i=t.header;let r=t.body;if(!i.title){r=r.replace(/{[^}]*}/g,""),r=r.trim();const n=r.replace(/\r/g,"").split(` +`);for(let a=0;a{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===t[c]?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static MDremoveDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static generateFile(e,t){const i=document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}static quality2text(e){const t=e&4294901760,i=vo[e];let r;return i?r=[i]:e&1?r=[vo[1],`0x${(e&65534).toString(16)}`]:e&2?r=[vo[2],`0x${(e&65533).toString(16)}`]:r=[`0x${e.toString(16)}`],t&&r.push(`0x${(t>>16).toString(16).toUpperCase()}`),r}static clone(e){return JSON.parse(JSON.stringify(e))}static getStates(e){var r;const t=(r=e==null?void 0:e.common)==null?void 0:r.states;let i;if(t)if(typeof t=="string"&&t[0]==="{")try{i=JSON.parse(t)}catch{console.error(`Cannot parse states: ${t}`),i=null}else if(typeof t=="string"){const o=t.split(";");i={};for(let n=0;ni[n]=o):(e==null?void 0:e.common.type)==="string"?t.forEach(o=>i[o]=o):(e==null?void 0:e.common.type)==="boolean"&&(i.false=t[0],i.true=t[1])):typeof t=="object"&&(i=t);return i||null}static async getSvg(e){const i=await(await fetch(e)).blob();return new Promise(r=>{const o=new FileReader;o.onload=()=>{var n;return r(((n=o.result)==null?void 0:n.toString())||"")},o.readAsDataURL(i)})}static detectMimeType(e){const t=Object.keys(vc).find(i=>e.startsWith(i));return t?vc[t]:null}static isStableRepository(e){return!!(typeof e=="string"&&e.toLowerCase().startsWith("stable")||e&&typeof e!="string"&&e.find(t=>t.toLowerCase().startsWith("stable")))}static isStringInteger(e){return typeof e=="number"?Math.round(e)===e:parseInt(e,10).toString()===e}static isValidDate(e){return e instanceof Date&&!isNaN(e)}static getStyle(e,...t){const i={};for(let r=0;r{if(typeof t[r][o]=="function")i[o]=t[r][o](e);else if(typeof t[r][o]=="object"){const n=t[r][o];i[o]={},Object.keys(n).forEach(a=>{typeof n[a]=="function"?i[o][a]=n(e):(n[a]||n[a]===0)&&(i[o][a]=n[a])})}else(t[r][o]||t[r][o]===0)&&(i[o]=t[r][o])});return i}}const bo={buttonIcon:{marginRight:8}};class dD extends M.Component{isIFrame;constructor(e){super(e);const t=e.newReact===void 0?!0:e.newReact;if(e.isIFrame!==void 0)this.isIFrame=e.isIFrame;else try{this.isIFrame=!t&&window.self!==window.top}catch{this.isIFrame=!t}}render(){const e=this.props.noTextOnButtons,t={borderRadius:this.props.theme.saveToolbar.button.borderRadius||3,height:this.props.theme.saveToolbar.button.height||32},i={bottom:this.isIFrame?38:0,left:this.props.paddingLeft||0,right:0,position:"absolute",background:this.props.theme.saveToolbar.background};return this.props.dense&&(i.minHeight=48),this.props.error&&(t.border="1px solid red"),M.createElement(j.Toolbar,{style:i},M.createElement(j.Fab,{variant:"extended","aria-label":"Save",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!1),style:t},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),!e&&h.t("ra_Save")),M.createElement(j.Fab,{variant:"extended","aria-label":"Save and close",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!0),style:{...t,marginLeft:10}},M.createElement(cn,{style:e?void 0:bo.buttonIcon}),e?"+":h.t("ra_Save and close"),e&&M.createElement(Ne,null)),M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.Fab,{variant:"extended","aria-label":"Close",onClick:()=>this.props.onClose(),style:t},M.createElement(Ne,{style:e?void 0:bo.buttonIcon}),!e&&h.t("ra_Close")))}}const bc={suppress:{fontSize:12},suppressRoot:{marginTop:"16px"}};class i0 extends f.Component{constructor(e){if(super(e),!this.props.dialogName&&this.props.suppressQuestionMinutes)throw new Error("dialogName required if suppressQuestionMinutes used");let t=!1;this.props.suppressQuestionMinutes&&(t=parseInt((window._localStorage||window.localStorage).getItem(this.props.dialogName),10)||0,t?Date.now()>t&&((window._localStorage||window.localStorage).removeItem(this.props.dialogName),t=!1):t=!1),this.state={suppress:t}}handleOk(){this.state.suppress&&(window._localStorage||window.localStorage).setItem(this.props.dialogName,Date.now()+(this.props.suppressQuestionMinutes||2)*6e4),this.props.onClose&&this.props.onClose(!0)}handleCancel(){this.props.onClose&&this.props.onClose(!1)}render(){return typeof this.state.suppress=="number"?(setTimeout(()=>this.props.onClose&&this.props.onClose(!0),100),null):M.createElement(j.Dialog,{open:!0,maxWidth:"md",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:(e,t)=>{t!=="backdropClick"&&t!=="escapeKeyDown"&&this.handleCancel()},"aria-labelledby":"ar_confirmation_dialog_title","aria-describedby":"ar_confirmation_dialog_description"},M.createElement(j.DialogTitle,{id:"ar_confirmation_dialog_title"},this.props.title||h.t("ra_Are you sure?")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_confirmation_dialog_description"},this.props.icon||null,this.props.text,this.props.suppressQuestionMinutes?M.createElement("br",null):null,this.props.suppressQuestionMinutes?M.createElement(j.FormControlLabel,{sx:{"& .FormControlLabel-label":bc.suppress,"&.FormControlLabel-root":bc.suppressRoot},control:M.createElement(j.Checkbox,{id:`ar_dialog_confirm_suppress_${this.props.dialogName||""}`,checked:!!this.state.suppress,onChange:()=>this.setState({suppress:!this.state.suppress})}),label:this.props.suppressText||h.t("ra_Suppress question for next %s minutes",(this.props.suppressQuestionMinutes||2).toString())}):null)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_confirm_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_confirm_cancel_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Ne,null)},this.props.cancel||h.t("ra_Cancel"))))}}class r0 extends f.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},M.createElement(j.DialogTitle,{id:"ar_alert_dialog_title"},this.props.title||h.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_alert_dialog_description"},this.props.text||h.t("ra_Unknown error!"))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_error_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},h.t("ra_Ok"))))}}const DD="Actions",hD="Append",zD="Cancel",wD="Categories",CD="Checked",ID="Delete",pD="Close",AD="Commercial",mD="Configure",OD="Connected",ED="Continue",fD="Copied",xD="Create",_D="Crop",SD="Delete",kD="Delete",YD="Discard",vD="Disconnected",bD="Error",QD="Filter",UD="Friday",$D="Latitude",PD="Logout",WD="Longitude",BD="Message",JD="Monday",RD="Name",FD="Objects",GD="Ok",HD="Product",VD="Rename/Move/Copy",ZD="Repeat",XD="Replace",KD="Root",qD="Saturday",eh="Save",th="Selected",sh="States",ih="Sunday",rh="Thursday",oh="Timestamp",nh="Tuesday",ah="Update",Mh="Valid till",ch="Value",uh="Version",lh="Wednesday",Nh="Width",Lh="Yes",gh="different",jh="Everyone can read object",yh="Everyone can read state",Th="Everyone can write object",dh="Everyone can write state",Dh="Group can read object",hh="Group can read state",zh="Group can write object",wh="Group can write state",Ch="Owner can read object",Ih="Owner can read state",ph="Owner can write object",Ah="Owner can write state",mh="Buttons",Oh="Changed from",Eh="close",fh="Create boolean state",xh="Create channel",_h="Create device",Sh="Create number state",kh="Create state",Yh="Create string state",vh="days",bh="Fr",Qh="Mo",Uh="Sa",$h="Su",Ph="Th",Wh="Tu",Bh="We",Jh="Expert mode",Rh="FALSE",Fh="All files",Gh="Audio",Hh="Code/JSON",Vh="Images",Zh="Text",Xh="Video",Kh="Settings",qh="without",ez="Function",tz="ID",sz="Name",iz="Role",rz="Room",oz="Type",nz="Invalid settings",az="Last change",Mz="locally",cz="Apr",uz="Aug",lz="Dec",Nz="Feb",Lz="Jan",gz="Jul",jz="Jun",yz="Mai",Tz="Mar",dz="Nov",Dz="Oct",hz="Sep",zz="Apr",wz="Aug",Cz="Dec",Iz="Feb",pz="Jan",Az="Jul",mz="Jun",Oz="Mai",Ez="Mar",fz="Nov",xz="Oct",_z="Sep",Sz="none",kz="Object changed by",Yz="Object last changed at",vz="Settings from other adapter %s",bz="Quality code",Qz="repeat",Uz='To select folder, just hold the key "shift" by clicking the folder.',$z="Show all",Pz="State changed by",Wz="Object changed from",Bz="Timestamp",Jz="Acknowledged",Rz="Comment",Fz="Copy the state value",Gz="Hold Cltr/⌘ key to open the link",Hz="Custom settings",Vz="Delete object",Zz="Edit object",Xz="Edit the state value",Kz="Expires in",qz="From",ew="Last changed",tw="Quality",sw="Time stamp",iw="User",rw="Value",ow="TRUE",nw="Value",aw="Warning: The CRON job will run every minute during the specified period!",Mw="Warning: The CRON job will run every second during the specified period!",cw="CRON",uw="Date",lw="Dates",Nw="Day",Lw="Day of week",gw="Every",jw="every N days",yw="every Nth day of the week",Tw="every N day of week",dw="every N hours",Dw="every N minutes",hw="every N months",zw="every N seconds",ww="every day",Cw="every day of the week",Iw="every day of the week",pw="every hour",Aw="every minute",mw="every month",Ow="every second",Ew="From",fw="Hours",xw="Interval",_w="Interval between",Sw="Invalid CRON",kw="Minutes",Yw="months",vw="Once",bw="Period",Qw="Seconds",Uw="Simple",$w="Specific time",Pw="specific dates",Ww="specific day(s) of the week",Bw="specific day of weeks",Jw="specific hours",Rw="specific minutes",Fw="specific months",Gw="specific seconds",Hw="Time",Vw="To",Zw="Wizard",Xw="all",Kw="Astro day",qw="Astro night",eC="Dawn",tC="Dusk",sC="Golden hour",iC="Golden hour end",rC="Nadir",oC="Nautical dawn",nC="Nautical dusk",aC="Night",MC="Night end",cC="Solar noon",uC="Sunrise",lC="Sunrise end",NC="Sunset",LC="Sunset start",gC="at",jC="at %s",yC="every day",TC="every hour",dC="every minute",DC="every month",hC="every %s day",zC="every %s hours",wC="every %s minutes",CC="every %s months",IC="every %s weeks",pC="every %s years",AC="every week",mC="every year",OC="from %s to %s",EC="never",fC="on %s of %s",xC="on %s and %s of",_C="on every date of",SC="%s",kC="%s and %s",YC="on %s",vC="on %s and %s",bC="on weekends",QC="on working days",UC="will ne be not executed any more, because start is in the past",$C="on %s",PC="from %s",WC="Execute from to",BC="to %s",JC="every",RC="Specific time",FC="from",GC="From-to",HC="Interval time",VC="invert",ZC="none",XC="on",KC="Period",qC="Daily",eI="Dates",tI="Day",sI="Every",iI="Every day",rI="Every month",oI="Every week",nI="Every year",aI="Hours",MI="Minutes",cI="month",uI="Monthly",lI="Once",NI="Specific months",LI="Week",gI="Weekdays",jI="Weekend",yI="Weekly",TI="Workdays",dI="Year",DI="Yearly",hI="Specific time",zI="Time",wI="to",CI="Valid",II="from",pI="to",AI="Whole day",mI="every month",OI={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license",ra_Actions:DD,"ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:hD,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:zD,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:wD,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:CD,ra_Clear:ID,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:pD,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:AD,ra_Configure:mD,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:OD,ra_Continue:ED,ra_Copied:fD,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:xD,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:_D,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:SD,ra_Delete:kD,"ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:YD,ra_Disconnected:vD,"ra_Do not ask for next 2 hours in this session":"Do not ask for next 2 hours in this session","ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit full path":"Edit full path","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value","ra_Enter the code from that page here":"Enter the code from that page here",ra_Error:bD,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:QD,"ra_Filter and Data Actions":"Filter and Data Actions","ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:UD,"ra_Get %s access":"Get %s access","ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_If the button above does not work, you can authorize manually this app by visiting this url":"If the button above does not work, you can authorize manually this app by visiting this url","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:$D,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist","ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Logout:PD,ra_Longitude:WD,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:BD,ra_Monday:JD,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:RD,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:FD,ra_Ok:GD,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please allow popups in your browser for this page!":"Please allow popups in your browser for this page!","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Press ENTER Key to add new item":"Press ENTER Key to add new item","ra_Private certificate":"Private certificate",ra_Product:HD,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Rename_Move_Copy:VD,"ra_Renew %s access":"Renew %s access",ra_Repeat:ZD,ra_Replace:XD,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:KD,ra_Saturday:qD,ra_Save:eh,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:th,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Session will expire in %s seconds. Continue?":"Session will expire in %s seconds. Continue?","ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:sh,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Successfully authorized. Token valid till %s and will be automatically renewed.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Successfully authorized. Token valid till %s but it can expire as the instance is not running.","ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:ih,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:rh,ra_Timestamp:oh,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:nh,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:ah,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:Mh,ra_Value:ch,ra_Version:uh,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:lh,ra_Width:Nh,ra_Yes:Lh,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text","ra_You can use * as wildcard":"You can use * as wildcard",ra___different__:gh,ra_aclEveryone_read_object:jh,ra_aclEveryone_read_state:yh,ra_aclEveryone_write_object:Th,ra_aclEveryone_write_state:dh,ra_aclGroup_read_object:Dh,ra_aclGroup_read_state:hh,ra_aclGroup_write_object:zh,ra_aclGroup_write_state:wh,ra_aclOwner_read_object:Ch,ra_aclOwner_read_state:Ih,ra_aclOwner_write_object:ph,ra_aclOwner_write_state:Ah,ra_buttons:mh,ra_changedFrom:Oh,ra_close:Eh,ra_create_boolean_state:fh,ra_create_channel:xh,ra_create_device:_h,ra_create_number_state:Sh,ra_create_state:kh,ra_create_string_state:Yh,ra_daysShortText:vh,ra_dow_Fr:bh,ra_dow_Mo:Qh,ra_dow_Sa:Uh,ra_dow_Su:$h,ra_dow_Th:Ph,ra_dow_Tu:Wh,ra_dow_We:Bh,ra_expertMode:Jh,ra_false:Rh,ra_fileType_all:Fh,ra_fileType_audio:Gh,ra_fileType_code:Hh,ra_fileType_images:Vh,ra_fileType_txt:Zh,ra_fileType_video:Xh,"ra_fileType_video,":"Video",ra_filter_customs:Kh,ra_filter_customs_without:qh,ra_filter_func:ez,ra_filter_id:tz,ra_filter_name:sz,ra_filter_role:iz,ra_filter_room:rz,ra_filter_type:oz,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:nz,ra_lastChange:az,ra_locally:Mz,ra_month_Apr:cz,ra_month_Aug:uz,ra_month_Dec:lz,ra_month_Feb:Nz,ra_month_Jan:Lz,ra_month_Jul:gz,ra_month_Jun:jz,ra_month_Mai:yz,ra_month_Mar:Tz,ra_month_Nov:dz,ra_month_Oct:Dz,ra_month_Sep:hz,ra_months_Apr:zz,ra_months_Aug:wz,ra_months_Dec:Cz,ra_months_Feb:Iz,ra_months_Jan:pz,ra_months_Jul:Az,ra_months_Jun:mz,ra_months_Mai:Oz,ra_months_Mar:Ez,ra_months_Nov:fz,ra_months_Oct:xz,ra_months_Sep:_z,"ra_no confirm for 5 mins":"no confirm for 5 mins",ra_none:Sz,ra_object_changed_by:kz,ra_object_changed_by_user:Yz,ra_otherConfig:vz,ra_qualityCode:bz,ra_repeat:Qz,ra_select_folder_hint:Uz,ra_show_all:$z,ra_state_changed_by:Pz,ra_state_changed_from:Wz,ra_timestamp:Bz,ra_tooltip_ack:Jz,ra_tooltip_comment:Rz,ra_tooltip_copyState:Fz,ra_tooltip_ctrlForLink:Gz,ra_tooltip_customConfig:Hz,ra_tooltip_deleteObject:Vz,ra_tooltip_editObject:Zz,ra_tooltip_editState:Xz,ra_tooltip_expire:Kz,ra_tooltip_from:qz,ra_tooltip_lc:ew,ra_tooltip_quality:tw,ra_tooltip_ts:sw,ra_tooltip_user:iw,ra_tooltip_value:rw,ra_true:ow,"ra_use seconds":"use seconds",ra_val:nw,"ra_via internet":"via internet",ra_warning_every_minute:aw,ra_warning_every_second:Mw,sc_cron:cw,sc_date:uw,sc_dates:lw,sc_dow:Nw,sc_dows:Lw,sc_every:gw,sc_everyN_dates:jw,sc_everyN_dow:yw,sc_everyN_dows:Tw,sc_everyN_hours:dw,sc_everyN_minutes:Dw,sc_everyN_months:hw,sc_everyN_seconds:zw,sc_every_dates:ww,sc_every_dow:Cw,sc_every_dows:Iw,sc_every_hours:pw,sc_every_minutes:Aw,sc_every_months:mw,sc_every_seconds:Ow,sc_from:Ew,sc_hours:fw,sc_interval:xw,sc_intervalBetween:_w,sc_invalid_cron:Sw,sc_minutes:kw,sc_months:Yw,sc_once:vw,sc_period:bw,sc_seconds:Qw,sc_simple:Uw,sc_specific:$w,sc_specific_dates:Pw,sc_specific_dow:Ww,sc_specific_dows:Bw,sc_specific_hours:Jw,sc_specific_minutes:Rw,sc_specific_months:Fw,sc_specific_seconds:Gw,sc_time:Hw,sc_to:Vw,sc_wizard:Zw,sch_all:Xw,sch_astroDay:Kw,sch_astroNight:qw,sch_astro_dawn:eC,sch_astro_dusk:tC,sch_astro_goldenHour:sC,sch_astro_goldenHourEnd:iC,sch_astro_nadir:rC,sch_astro_nauticalDawn:oC,sch_astro_nauticalDusk:nC,sch_astro_night:aC,sch_astro_nightEnd:MC,sch_astro_solarNoon:cC,sch_astro_sunrise:uC,sch_astro_sunriseEnd:lC,sch_astro_sunset:NC,sch_astro_sunsetStart:LC,sch_at:gC,sch_desc_atTime:jC,sch_desc_everyDay:yC,sch_desc_everyHour:TC,sch_desc_everyMinute:dC,sch_desc_everyMonth:DC,sch_desc_everyNDay:hC,sch_desc_everyNHours:zC,sch_desc_everyNMinutes:wC,sch_desc_everyNMonths:CC,sch_desc_everyNWeeks:IC,sch_desc_everyNYears:pC,sch_desc_everyWeek:AC,sch_desc_everyYear:mC,sch_desc_intervalFromTo:OC,sch_desc_never:EC,sch_desc_onDate:fC,sch_desc_onDates:xC,sch_desc_onEveryDate:_C,sch_desc_onMonth:SC,sch_desc_onMonths:kC,sch_desc_onWeekday:YC,sch_desc_onWeekdays:vC,sch_desc_onWeekends:bC,sch_desc_onWorkdays:QC,sch_desc_onceInPast:UC,sch_desc_once_on:$C,sch_desc_validFrom:PC,sch_desc_validFromTo:WC,sch_desc_validTo:BC,sch_every:JC,sch_exactTime:RC,sch_from:FC,sch_fromTo:GC,sch_intervalTime:HC,sch_invert:VC,sch_no_one:ZC,sch_on:XC,sch_period:KC,sch_periodDaily:qC,sch_periodDates:eI,sch_periodDay:tI,sch_periodEvery:sI,sch_periodEveryDay:iI,sch_periodEveryMonth:rI,sch_periodEveryWeek:oI,sch_periodEveryYear:nI,sch_periodHours:aI,sch_periodMinutes:MI,sch_periodMonth:cI,sch_periodMonthly:uI,sch_periodOnce:lI,sch_periodSpecificMonths:NI,sch_periodWeek:LI,sch_periodWeekdays:gI,sch_periodWeekend:jI,sch_periodWeekly:yI,sch_periodWorkdays:TI,sch_periodYear:dI,sch_periodYearly:DI,sch_specificTime:hI,sch_time:zI,sch_to:wI,sch_valid:CI,sch_validFrom:II,sch_validTo:pI,sch_wholeDay:AI,sch_yearEveryMonth:mI},EI="Aktionen",fI="Anhängen",xI="Abbrechen",_I="Kategorien",SI="Geprüft",kI="Löschen",YI="Schließen",vI="Kommerziell",bI="Konfigurieren",QI="Verbunden",UI="Weitermachen",$I="Kopiert",PI="Erstellen",WI="Ernte",BI="Entf",JI="Löschen",RI="Verwerfen",FI="Getrennt",GI="Fehler",HI="Filter",VI="Freitag",ZI="Breite",XI="Ausloggen",KI="Längengrad",qI="Meldung",e1="Montag",t1="Name",s1="Objekte",i1="OK",r1="Produkt",o1="Umbenennen/Verschieben/Kopieren",n1="Wiederholen",a1="Ersetzen",M1="Anfang",c1="Samstag",u1="Speichern",l1="Ausgewählt",N1="Zustände",L1="Sonntag",g1="Donnerstag",j1="Zeitstempel",y1="Dienstag",T1="Aktualisieren",d1="Gültig bis",D1="Wert",h1="Ausführung",z1="Mittwoch",w1="Breite",C1="Ja",I1="unterschiedlich",p1="Jeder kann Objekt lesen",A1="Jeder kann Zustand lesen",m1="Jeder kann ein Objekt schreiben",O1="Jeder kann Zustand schreiben",E1="Gruppe kann Objekt lesen",f1="Gruppe kann Status lesen",x1="Gruppe kann Objekt schreiben",_1="Gruppe kann Status schreiben",S1="Besitzer kann Objekt lesen",k1="Besitzer kann Zustand lesen",Y1="Besitzer kann Objekt schreiben",v1="Besitzer kann Zustand schreiben",b1="Tasten",Q1="Geändert von",U1="Schließen",$1="Booleschen Zustand erstellen",P1="Kanal erstellen",W1="Gerät erstellen",B1="Nummern-Zustand erstellen",J1="Zustand erstellen",R1="String-Zustand erstellen",F1="T.",G1="Fr",H1="Mo",V1="Sa",Z1="So",X1="Do",K1="Di",q1="Mi",ep="Expertenmodus",tp="FALSCH",sp="Alle Dateien",ip="Audio",rp="Code/JSON",op="Bilder",np="Text",ap="Video",Mp="Einstellungen",cp="ohne",up="Funktion",lp="ID",Np="Name",Lp="Rolle",gp="Raum",jp="Typ",yp="Ungültige Einstellungen",Tp="Letzte Änderung",dp="örtlich",Dp="Apr",hp="Aug",zp="Dez",wp="Feb",Cp="Jan",Ip="Jul",pp="Jun",Ap="Mai",mp="Mär",Op="Nov",Ep="Okt",fp="Sep",xp="Apr",_p="Aug",Sp="Dez",kp="Feb",Yp="Jan",vp="Jul",bp="Jun",Qp="Mai",Up="Mär",$p="Nov",Pp="Okt",Wp="Sep",Bp="kein",Jp="Objekt geändert von",Rp="Objekt zuletzt geändert um",Fp="Einstellungen von anderen Adaptern %s",Gp="Qualitätscode",Hp="wiederholen",Vp='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',Zp="Alle anzeigen",Xp="Zustand geändert durch",Kp="Objekt geändert von",qp="Zeitstempel",eA="Bestätigt",tA="Kommentar",sA="Statuswert kopieren",iA="Strg/⌘-Taste gedrückt halten, um den Link zu öffnen",rA="Benutzerdefinierte Einstellungen",oA="Objekt löschen",nA="Objekt bearbeiten",aA="Statuswert bearbeiten",MA="Läuft ab in",cA="Von",uA="Zuletzt geändert",lA="Qualität",NA="Zeitstempel",LA="Benutzer",gA="Wert",jA="WAHR",yA="Wert",TA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",dA="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",DA="CRON",hA="Datum",zA="Tage",wA="Tag",CA="Wochentage",IA="Jeden",pA="alle N Tage",AA="jeden x-ten Tag der Woche",mA="alle N Wochentage",OA="alle N Stunden",EA="alle N Minuten",fA="alle N Monate",xA="alle N Sekunden",_A="jeden Tag",SA="jeden Tag der Woche",kA="jeden Tag der Woche",YA="jede Stunde",vA="jede Minute",bA="jeden Monat",QA="jede Sekunde",UA="Von",$A="Stunden",PA="Intervall",WA="Intervall zwischen",BA="Ungültiger CRON",JA="Minuten",RA="Monate",FA="Einmal",GA="Zeitraum",HA="Sekunden",VA="Einfach",ZA="Bestimmte Zeit",XA="bestimmte Tage",KA="bestimmte(r) Tag(e) der Woche",qA="bestimmten Wochentag",e2="bestimmte Stunden",t2="bestimmte Minuten",s2="bestimmte Monate",i2="bestimmte Sekunden",r2="Zeit",o2="Bis",n2="Wizard",a2="alle",M2="Astronomischer Tag",c2="Astronomische Nacht",u2="Morgendämmerung",l2="Abenddämmerung",N2="Goldene Stunde",L2="Goldene Stundenende",g2="Nadir",j2="Nautische Morgendämmerung",y2="Nautische Abenddämmerung",T2="Nacht",d2="Nachtende",D2="Sonnenmittag",h2="Sonnenaufgang",z2="Sonnenaufgangende",w2="Sonnenuntergang",C2="Sonnenuntergangstart",I2="am",p2="um %s",A2="jeden Tag",m2="jede Stunde",O2="jede Minute",E2="jeden Monat",f2="jeden %s Tag",x2="alle %s Stunden",_2="alle %s Minuten",S2="alle %s Monate",k2="alle %s Wochen",Y2="alle %s Jahre",v2="jede Woche",b2="jedes Jahr",Q2="von %s bis %s",U2="noch nie",$2="am %s von %s",P2="am %s und %s von",W2="an jedem Datum von",B2="%s",J2="%s und %s",R2="auf %s",F2="auf %s und %s",G2="an Wochenenden",H2="an Werktagen",V2="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",Z2="auf %s",X2="von %s",K2="Ausführen von bis",q2="bis %s",em="jeden",tm="Bestimmte Zeit",sm="von",im="Von bis",rm="Zeitintervall",om="umkehren",nm="keiner",am="am",Mm="Zeitraum",cm="Täglich",um="Daten",lm="Tag",Nm="Jeden",Lm="Jeden Tag",gm="Jeden Monat",jm="Jede Woche",ym="Jedes Jahr",Tm="Stunden",dm="Minuten",Dm="Monat",hm="Monatlich",zm="Einmal",wm="Bestimmte Monate",Cm="Woche",Im="Wochentage",pm="Wochenende",Am="Wöchentlich",mm="Arbeitstage",Om="Jahr",Em="Jährlich",fm="Bestimmte Zeit",xm="Zeit",_m="zu",Sm="Gültigkeit",km="von",Ym="bis",vm="Ganzer Tag",bm="jeden Monat",Qm={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren",ra_Actions:EI,"ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:fI,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:xI,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:_I,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:SI,ra_Clear:kI,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:YI,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:vI,ra_Configure:bI,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:QI,ra_Continue:UI,ra_Copied:$I,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:PI,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:WI,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:BI,ra_Delete:JI,"ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:RI,ra_Disconnected:FI,"ra_Do not ask for next 2 hours in this session":"Fragen Sie nicht nach den nächsten 2 Stunden in dieser Sitzung","ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit full path":"Vollständigen Pfad bearbeiten","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten","ra_Enter the code from that page here":"Geben Sie den Code von dieser Seite hier ein",ra_Error:GI,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:HI,"ra_Filter and Data Actions":"Filter- und Datenaktionen","ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:VI,"ra_Get %s access":"%s Zugriff erhalten","ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:ZI,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Logout:XI,ra_Longitude:KI,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:qI,ra_Monday:e1,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:t1,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:s1,ra_Ok:i1,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please allow popups in your browser for this page!":"Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Press ENTER Key to add new item":"Die Eingabetaste drücken, um ein neues Element hinzuzufügen","ra_Private certificate":"Privates Zertifikat",ra_Product:r1,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Rename_Move_Copy:o1,"ra_Renew %s access":"%s Zugriff erneuern",ra_Repeat:n1,ra_Replace:a1,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:M1,ra_Saturday:c1,ra_Save:u1,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:l1,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Session will expire in %s seconds. Continue?":"Die Sitzung läuft in %s Sekunden ab. Fortfahren?","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:N1,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.","ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:L1,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:g1,ra_Timestamp:j1,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:y1,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:T1,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:d1,ra_Value:D1,ra_Version:h1,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:z1,ra_Width:w1,ra_Yes:C1,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben","ra_You can use * as wildcard":"Sie können * als Platzhalter verwenden",ra___different__:I1,ra_aclEveryone_read_object:p1,ra_aclEveryone_read_state:A1,ra_aclEveryone_write_object:m1,ra_aclEveryone_write_state:O1,ra_aclGroup_read_object:E1,ra_aclGroup_read_state:f1,ra_aclGroup_write_object:x1,ra_aclGroup_write_state:_1,ra_aclOwner_read_object:S1,ra_aclOwner_read_state:k1,ra_aclOwner_write_object:Y1,ra_aclOwner_write_state:v1,ra_buttons:b1,ra_changedFrom:Q1,ra_close:U1,ra_create_boolean_state:$1,ra_create_channel:P1,ra_create_device:W1,ra_create_number_state:B1,ra_create_state:J1,ra_create_string_state:R1,ra_daysShortText:F1,ra_dow_Fr:G1,ra_dow_Mo:H1,ra_dow_Sa:V1,ra_dow_Su:Z1,ra_dow_Th:X1,ra_dow_Tu:K1,ra_dow_We:q1,ra_expertMode:ep,ra_false:tp,ra_fileType_all:sp,ra_fileType_audio:ip,ra_fileType_code:rp,ra_fileType_images:op,ra_fileType_txt:np,ra_fileType_video:ap,"ra_fileType_video,":"Video",ra_filter_customs:Mp,ra_filter_customs_without:cp,ra_filter_func:up,ra_filter_id:lp,ra_filter_name:Np,ra_filter_role:Lp,ra_filter_room:gp,ra_filter_type:jp,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:yp,ra_lastChange:Tp,ra_locally:dp,ra_month_Apr:Dp,ra_month_Aug:hp,ra_month_Dec:zp,ra_month_Feb:wp,ra_month_Jan:Cp,ra_month_Jul:Ip,ra_month_Jun:pp,ra_month_Mai:Ap,ra_month_Mar:mp,ra_month_Nov:Op,ra_month_Oct:Ep,ra_month_Sep:fp,ra_months_Apr:xp,ra_months_Aug:_p,ra_months_Dec:Sp,ra_months_Feb:kp,ra_months_Jan:Yp,ra_months_Jul:vp,ra_months_Jun:bp,ra_months_Mai:Qp,ra_months_Mar:Up,ra_months_Nov:$p,ra_months_Oct:Pp,ra_months_Sep:Wp,"ra_no confirm for 5 mins":"5 Minuten lang keine Bestätigung",ra_none:Bp,ra_object_changed_by:Jp,ra_object_changed_by_user:Rp,ra_otherConfig:Fp,ra_qualityCode:Gp,ra_repeat:Hp,ra_select_folder_hint:Vp,ra_show_all:Zp,ra_state_changed_by:Xp,ra_state_changed_from:Kp,ra_timestamp:qp,ra_tooltip_ack:eA,ra_tooltip_comment:tA,ra_tooltip_copyState:sA,ra_tooltip_ctrlForLink:iA,ra_tooltip_customConfig:rA,ra_tooltip_deleteObject:oA,ra_tooltip_editObject:nA,ra_tooltip_editState:aA,ra_tooltip_expire:MA,ra_tooltip_from:cA,ra_tooltip_lc:uA,ra_tooltip_quality:lA,ra_tooltip_ts:NA,ra_tooltip_user:LA,ra_tooltip_value:gA,ra_true:jA,"ra_use seconds":"Sekunden benutzen",ra_val:yA,"ra_via internet":"übers Internet",ra_warning_every_minute:TA,ra_warning_every_second:dA,sc_cron:DA,sc_date:hA,sc_dates:zA,sc_dow:wA,sc_dows:CA,sc_every:IA,sc_everyN_dates:pA,sc_everyN_dow:AA,sc_everyN_dows:mA,sc_everyN_hours:OA,sc_everyN_minutes:EA,sc_everyN_months:fA,sc_everyN_seconds:xA,sc_every_dates:_A,sc_every_dow:SA,sc_every_dows:kA,sc_every_hours:YA,sc_every_minutes:vA,sc_every_months:bA,sc_every_seconds:QA,sc_from:UA,sc_hours:$A,sc_interval:PA,sc_intervalBetween:WA,sc_invalid_cron:BA,sc_minutes:JA,sc_months:RA,sc_once:FA,sc_period:GA,sc_seconds:HA,sc_simple:VA,sc_specific:ZA,sc_specific_dates:XA,sc_specific_dow:KA,sc_specific_dows:qA,sc_specific_hours:e2,sc_specific_minutes:t2,sc_specific_months:s2,sc_specific_seconds:i2,sc_time:r2,sc_to:o2,sc_wizard:n2,sch_all:a2,sch_astroDay:M2,sch_astroNight:c2,sch_astro_dawn:u2,sch_astro_dusk:l2,sch_astro_goldenHour:N2,sch_astro_goldenHourEnd:L2,sch_astro_nadir:g2,sch_astro_nauticalDawn:j2,sch_astro_nauticalDusk:y2,sch_astro_night:T2,sch_astro_nightEnd:d2,sch_astro_solarNoon:D2,sch_astro_sunrise:h2,sch_astro_sunriseEnd:z2,sch_astro_sunset:w2,sch_astro_sunsetStart:C2,sch_at:I2,sch_desc_atTime:p2,sch_desc_everyDay:A2,sch_desc_everyHour:m2,sch_desc_everyMinute:O2,sch_desc_everyMonth:E2,sch_desc_everyNDay:f2,sch_desc_everyNHours:x2,sch_desc_everyNMinutes:_2,sch_desc_everyNMonths:S2,sch_desc_everyNWeeks:k2,sch_desc_everyNYears:Y2,sch_desc_everyWeek:v2,sch_desc_everyYear:b2,sch_desc_intervalFromTo:Q2,sch_desc_never:U2,sch_desc_onDate:$2,sch_desc_onDates:P2,sch_desc_onEveryDate:W2,sch_desc_onMonth:B2,sch_desc_onMonths:J2,sch_desc_onWeekday:R2,sch_desc_onWeekdays:F2,sch_desc_onWeekends:G2,sch_desc_onWorkdays:H2,sch_desc_onceInPast:V2,sch_desc_once_on:Z2,sch_desc_validFrom:X2,sch_desc_validFromTo:K2,sch_desc_validTo:q2,sch_every:em,sch_exactTime:tm,sch_from:sm,sch_fromTo:im,sch_intervalTime:rm,sch_invert:om,sch_no_one:nm,sch_on:am,sch_period:Mm,sch_periodDaily:cm,sch_periodDates:um,sch_periodDay:lm,sch_periodEvery:Nm,sch_periodEveryDay:Lm,sch_periodEveryMonth:gm,sch_periodEveryWeek:jm,sch_periodEveryYear:ym,sch_periodHours:Tm,sch_periodMinutes:dm,sch_periodMonth:Dm,sch_periodMonthly:hm,sch_periodOnce:zm,sch_periodSpecificMonths:wm,sch_periodWeek:Cm,sch_periodWeekdays:Im,sch_periodWeekend:pm,sch_periodWeekly:Am,sch_periodWorkdays:mm,sch_periodYear:Om,sch_periodYearly:Em,sch_specificTime:fm,sch_time:xm,sch_to:_m,sch_valid:Sm,sch_validFrom:km,sch_validTo:Ym,sch_wholeDay:vm,sch_yearEveryMonth:bm},Um="Действия",$m="Добавить",Pm="Отмена",Wm="Категории",Bm="Проверено",Jm="Удалить",Rm="Закрыть",Fm="Коммерческая",Gm="Настроить",Hm="Соединение установлено",Vm="Продолжать",Zm="скопировано",Xm="Создать",Km="Обрезать",qm="Delete",eO="Удалить",tO="Отказаться",sO="Отключено",iO="Ошибка",rO="Фильтр",oO="Пятница",nO="Широта",aO="Выйти",MO="Долгота",cO="Сообщение",uO="Понедельник",lO="Имя",NO="Объекты",LO="Ok",gO="Продукт",jO="Переименовать/Переместить/Копировать",yO="Повторение",TO="Заменять",dO="Начало",DO="Суббота",hO="Сохранить",zO="выбранный",wO="Состояния",CO="Воскресенье",IO="Четверг",pO="Времени",AO="Вторник",mO="Обновить",OO="Годен до",EO="Значение",fO="Версия",xO="Среда",_O="Ширина",SO="Да",kO="разное",YO="Каждый может читать объект",vO="Каждый может читать состояние",bO="Каждый может написать объект",QO="Каждый может написать состояние",UO="Группа может читать объект",$O="Группа может читать состояние",PO="Группа может писать объект",WO="Группа может записывать состояние",BO="Владелец может читать объект",JO="Владелец может читать состояние",RO="Владелец может писать объект",FO="Владелец может писать состояние",GO="Кнопки",HO="Изменено с",VO="Закрыть",ZO="Создать логическое состояние",XO="Создать канал",KO="Создать устройство",qO="Создать состояние номера",eE="Создать состояние",tE="Создать состояние строки",sE="д.",iE="Пт",rE="Пн",oE="Сб",nE="Вс",aE="Чт",ME="Вт",cE="Ср",uE="Экспертный режим",lE="ЛОЖЬ",NE="Все файлы",LE="Аудио",gE="Код/JSON",jE="Картинки",yE="Текст",TE="видео",dE="настройки",DE="без",hE="функция",zE="ID",wE="Имя",CE="роль",IE="комната",pE="Тип",AE="Неверные настройки",mE="Последнее изменение",OE="локально",EE="Апр",fE="Авг",xE="Дек",_E="Фев",SE="Янв",kE="Июл",YE="Июн",vE="Май",bE="Мрт",QE="Ноя",UE="Окт",$E="Сен",PE="Апр",WE="Авг",BE="Дек",JE="Фев",RE="Янв",FE="Июнь",GE="Июль",HE="Май",VE="Март",ZE="Ноя",XE="Окт",KE="Сен",qE="ничего",ef="Объект изменен",tf="Последний раз объект изменен в",sf="Настройки из другого адаптера %s",rf="Код качества",of="повтор",nf="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",af="Показать все",Mf="Состояние изменено",cf="Объект изменен с",uf="Отметка времени",lf="Подтверждено",Nf="Комментарий",Lf="Скопируйте значение состояния",gf="Удерживайте клавишу Cltr/⌘, чтобы открыть ссылку",jf="Пользовательские настройки",yf="Удалить объект",Tf="Редактировать объект",df="Изменить значение состояния",Df="Истекает через",hf="От",zf="Последнее изменение",wf="Качество",Cf="Отметка времени",If="пользователь",pf="Значение",Af="истинный",mf="Значение",Of="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",Ef="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",ff="CRON",xf="Дата",_f="Даты",Sf="День",kf="День недели",Yf="каждый(ую/ые)",vf="каждый N день",bf="каждый N-й день недели",Qf="каждый N день недели",Uf="каждые N часов",$f="каждые N минут",Pf="каждые N месяцев",Wf="каждые N секунд",Bf="каждый день",Jf="Каждый день недели",Rf="каждый день недели",Ff="каждый час",Gf="каждую минуту",Hf="каждый месяц",Vf="каждую секунду",Zf="От",Xf="часы",Kf="Интервал",qf="Интервал между",ex="Неверный CRON",tx="минуты",sx="Месяцы",ix="один раз",rx="Период",ox="секунды",nx="Просто",ax="Конкретное время",Mx="конкретные даты",cx="конкретный день(а) недели",ux="конкретный день недели",lx="конкретные часы",Nx="конкретные минуты",Lx="конкретные месяцы",gx="конкретные секунды",jx="Время",yx="До",Tx="Форма",dx="все",Dx="днём",hx="ночью",zx="Рассвет",wx="Сумерки",Cx="Золотой час",Ix="Конец золотого часа",px="Надир",Ax="Морской рассвет",mx="Морские сумерки",Ox="Ночь",Ex="Конец ночи",fx="Солнечный полдень",xx="Восход",_x="Восход солнца",Sx="Заход солнца",kx="Начало заката",Yx="дата",vx="в %s",bx="каждый день",Qx="каждый час",Ux="каждую минуту",$x="каждый месяц",Px="каждый %s день",Wx="каждый %s часов",Bx="каждые %s минут",Jx="каждые %s месяцев",Rx="каждые %s недель",Fx="каждые %s лет",Gx="каждую неделю",Hx="каждый год",Vx="от %s до %s",Zx="никогда",Xx="%s %s",Kx="%s и %s",qx="в каждый день",e_="%s",t_="%s и %s",s_="%s",i_="%s и %s",r_="на выходных",o_="в рабочие дни",n_="не будет больше выполняться, потому что начало в прошлом",a_="%s",M_="%s",c_="Выполнить с",u_="%s",l_="каждый",N_="Конкретное время",L_="от",g_="От и до",j_="Интервал времени",y_="инвертировать",T_="никакой",d_="на",D_="период",h_="Ежедневно",z_="Даты",w_="День",C_="каждый",I_="Каждый день",p_="Каждый месяц",A_="Каждую неделю",m_="Каждый год",O_="часов",E_="минут",f_="месяц",x_="ежемесячно",__="однажды",S_="Конкретные месяцы",k_="Неделю",Y_="Будние дни",v_="выходные",b_="еженедельно",Q_="Рабочие дни",U_="Год",$_="каждый год",P_="Конкретное время",W_="Время",B_="в",J_="действительный",R_="от",F_="в",G_="Весь день",H_="каждый месяц",V_={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию",ra_Actions:Um,"ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:$m,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:Pm,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:Wm,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:Bm,ra_Clear:Jm,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:Rm,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:Fm,ra_Configure:Gm,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:Hm,ra_Continue:Vm,ra_Copied:Zm,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:Xm,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:Km,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:qm,ra_Delete:eO,"ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:tO,ra_Disconnected:sO,"ra_Do not ask for next 2 hours in this session":"Не спрашивайте о следующих 2 часах в этом сеансе","ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit full path":"Изменить полный путь","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение","ra_Enter the code from that page here":"Введите код с этой страницы здесь",ra_Error:iO,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:rO,"ra_Filter and Data Actions":"Фильтрация и действия с данными","ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:oO,"ra_Get %s access":"Получить %s доступ","ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:nO,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Logout:aO,ra_Longitude:MO,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:cO,ra_Monday:uO,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:lO,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:NO,ra_Ok:LO,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please allow popups in your browser for this page!":"Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Press ENTER Key to add new item":"Нажмите клавишу ENTER, чтобы добавить новый элемент.","ra_Private certificate":"Частный сертификат",ra_Product:gO,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Rename_Move_Copy:jO,"ra_Renew %s access":"Продлить доступ %s",ra_Repeat:yO,ra_Replace:TO,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:dO,ra_Saturday:DO,ra_Save:hO,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:zO,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Session will expire in %s seconds. Continue?":"Сессия истечет через %s секунд. Продолжить?","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:wO,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.","ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:CO,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:IO,ra_Timestamp:pO,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:AO,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:mO,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:OO,ra_Value:EO,ra_Version:fO,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:xO,ra_Width:_O,ra_Yes:SO,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст","ra_You can use * as wildcard":"Вы можете использовать * в качестве подстановочного знака",ra___different__:kO,ra_aclEveryone_read_object:YO,ra_aclEveryone_read_state:vO,ra_aclEveryone_write_object:bO,ra_aclEveryone_write_state:QO,ra_aclGroup_read_object:UO,ra_aclGroup_read_state:$O,ra_aclGroup_write_object:PO,ra_aclGroup_write_state:WO,ra_aclOwner_read_object:BO,ra_aclOwner_read_state:JO,ra_aclOwner_write_object:RO,ra_aclOwner_write_state:FO,ra_buttons:GO,ra_changedFrom:HO,ra_close:VO,ra_create_boolean_state:ZO,ra_create_channel:XO,ra_create_device:KO,ra_create_number_state:qO,ra_create_state:eE,ra_create_string_state:tE,ra_daysShortText:sE,ra_dow_Fr:iE,ra_dow_Mo:rE,ra_dow_Sa:oE,ra_dow_Su:nE,ra_dow_Th:aE,ra_dow_Tu:ME,ra_dow_We:cE,ra_expertMode:uE,ra_false:lE,ra_fileType_all:NE,ra_fileType_audio:LE,ra_fileType_code:gE,ra_fileType_images:jE,ra_fileType_txt:yE,ra_fileType_video:TE,"ra_fileType_video,":"видео",ra_filter_customs:dE,ra_filter_customs_without:DE,ra_filter_func:hE,ra_filter_id:zE,ra_filter_name:wE,ra_filter_role:CE,ra_filter_room:IE,ra_filter_type:pE,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:AE,ra_lastChange:mE,ra_locally:OE,ra_month_Apr:EE,ra_month_Aug:fE,ra_month_Dec:xE,ra_month_Feb:_E,ra_month_Jan:SE,ra_month_Jul:kE,ra_month_Jun:YE,ra_month_Mai:vE,ra_month_Mar:bE,ra_month_Nov:QE,ra_month_Oct:UE,ra_month_Sep:$E,ra_months_Apr:PE,ra_months_Aug:WE,ra_months_Dec:BE,ra_months_Feb:JE,ra_months_Jan:RE,ra_months_Jul:FE,ra_months_Jun:GE,ra_months_Mai:HE,ra_months_Mar:VE,ra_months_Nov:ZE,ra_months_Oct:XE,ra_months_Sep:KE,"ra_no confirm for 5 mins":"не спрашивать подтверждения в течение 5 минут",ra_none:qE,ra_object_changed_by:ef,ra_object_changed_by_user:tf,ra_otherConfig:sf,ra_qualityCode:rf,ra_repeat:of,ra_select_folder_hint:nf,ra_show_all:af,ra_state_changed_by:Mf,ra_state_changed_from:cf,ra_timestamp:uf,ra_tooltip_ack:lf,ra_tooltip_comment:Nf,ra_tooltip_copyState:Lf,ra_tooltip_ctrlForLink:gf,ra_tooltip_customConfig:jf,ra_tooltip_deleteObject:yf,ra_tooltip_editObject:Tf,ra_tooltip_editState:df,ra_tooltip_expire:Df,ra_tooltip_from:hf,ra_tooltip_lc:zf,ra_tooltip_quality:wf,ra_tooltip_ts:Cf,ra_tooltip_user:If,ra_tooltip_value:pf,ra_true:Af,"ra_use seconds":"секунды",ra_val:mf,"ra_via internet":"через интернет",ra_warning_every_minute:Of,ra_warning_every_second:Ef,sc_cron:ff,sc_date:xf,sc_dates:_f,sc_dow:Sf,sc_dows:kf,sc_every:Yf,sc_everyN_dates:vf,sc_everyN_dow:bf,sc_everyN_dows:Qf,sc_everyN_hours:Uf,sc_everyN_minutes:$f,sc_everyN_months:Pf,sc_everyN_seconds:Wf,sc_every_dates:Bf,sc_every_dow:Jf,sc_every_dows:Rf,sc_every_hours:Ff,sc_every_minutes:Gf,sc_every_months:Hf,sc_every_seconds:Vf,sc_from:Zf,sc_hours:Xf,sc_interval:Kf,sc_intervalBetween:qf,sc_invalid_cron:ex,sc_minutes:tx,sc_months:sx,sc_once:ix,sc_period:rx,sc_seconds:ox,sc_simple:nx,sc_specific:ax,sc_specific_dates:Mx,sc_specific_dow:cx,sc_specific_dows:ux,sc_specific_hours:lx,sc_specific_minutes:Nx,sc_specific_months:Lx,sc_specific_seconds:gx,sc_time:jx,sc_to:yx,sc_wizard:Tx,sch_all:dx,sch_astroDay:Dx,sch_astroNight:hx,sch_astro_dawn:zx,sch_astro_dusk:wx,sch_astro_goldenHour:Cx,sch_astro_goldenHourEnd:Ix,sch_astro_nadir:px,sch_astro_nauticalDawn:Ax,sch_astro_nauticalDusk:mx,sch_astro_night:Ox,sch_astro_nightEnd:Ex,sch_astro_solarNoon:fx,sch_astro_sunrise:xx,sch_astro_sunriseEnd:_x,sch_astro_sunset:Sx,sch_astro_sunsetStart:kx,sch_at:Yx,sch_desc_atTime:vx,sch_desc_everyDay:bx,sch_desc_everyHour:Qx,sch_desc_everyMinute:Ux,sch_desc_everyMonth:$x,sch_desc_everyNDay:Px,sch_desc_everyNHours:Wx,sch_desc_everyNMinutes:Bx,sch_desc_everyNMonths:Jx,sch_desc_everyNWeeks:Rx,sch_desc_everyNYears:Fx,sch_desc_everyWeek:Gx,sch_desc_everyYear:Hx,sch_desc_intervalFromTo:Vx,sch_desc_never:Zx,sch_desc_onDate:Xx,sch_desc_onDates:Kx,sch_desc_onEveryDate:qx,sch_desc_onMonth:e_,sch_desc_onMonths:t_,sch_desc_onWeekday:s_,sch_desc_onWeekdays:i_,sch_desc_onWeekends:r_,sch_desc_onWorkdays:o_,sch_desc_onceInPast:n_,sch_desc_once_on:a_,sch_desc_validFrom:M_,sch_desc_validFromTo:c_,sch_desc_validTo:u_,sch_every:l_,sch_exactTime:N_,sch_from:L_,sch_fromTo:g_,sch_intervalTime:j_,sch_invert:y_,sch_no_one:T_,sch_on:d_,sch_period:D_,sch_periodDaily:h_,sch_periodDates:z_,sch_periodDay:w_,sch_periodEvery:C_,sch_periodEveryDay:I_,sch_periodEveryMonth:p_,sch_periodEveryWeek:A_,sch_periodEveryYear:m_,sch_periodHours:O_,sch_periodMinutes:E_,sch_periodMonth:f_,sch_periodMonthly:x_,sch_periodOnce:__,sch_periodSpecificMonths:S_,sch_periodWeek:k_,sch_periodWeekdays:Y_,sch_periodWeekend:v_,sch_periodWeekly:b_,sch_periodWorkdays:Q_,sch_periodYear:U_,sch_periodYearly:$_,sch_specificTime:P_,sch_time:W_,sch_to:B_,sch_valid:J_,sch_validFrom:R_,sch_validTo:F_,sch_wholeDay:G_,sch_yearEveryMonth:H_},Z_="Ações",X_="Acrescentar",K_="Cancelar",q_="Categorias",eS="Verificado",tS="Excluir",sS="Perto",iS="Comercial",rS="Configurar",oS="Conectado",nS="Continuar",aS="Copiado",MS="Crio",cS="Colheita",uS="Delete",lS="Excluir",NS="Descartar",LS="Desconectado",gS="Erro",jS="Filtro",yS="Sexta-feira",TS="Latitude",dS="Sair",DS="Longitude",hS="mensagem",zS="Segunda-feira",wS="Nome",CS="Objetos",IS="Está bem",pS="produtos",AS="Renomear/Mover/Copiar",mS="Repita",OS="Substituir",ES="Raiz",fS="Sábado",xS="Salve ",_S="Selecionado",SS="Estados",kS="Domingo",YS="Quinta-feira",vS="Timestamp",bS="Terça-feira",QS="Atualizar",US="Válida até",$S="Valor",PS="Versão",WS="Quarta-feira",BS="Largura",JS="Sim",RS="diferente",FS="Todos podem ler objetos",GS="Todos podem ler o estado",HS="Todos podem escrever objetos",VS="Todos podem escrever o estado",ZS="O grupo pode ler o objeto",XS="O grupo pode ler o estado",KS="O grupo pode escrever o objeto",qS="O grupo pode escrever o estado",e3="O proprietário pode ler o objeto",t3="O proprietário pode ler o estado",s3="O proprietário pode escrever o objeto",i3="O proprietário pode escrever o estado",r3="Botões",o3="Mudou de",n3="fechar",a3="Criar estado booleano",M3="Criar canal",c3="Criar dispositivo",u3="Criar estado numérico",l3="Criar estado",N3="Criar estado de string",L3="d.",g3="Fr",j3="Mo",y3="Sa",T3="Su",d3="º",D3="Tu",h3="Nós",z3="Modo especialista",w3="FALSO",C3="Todos os arquivos",I3="áudio",p3="Código/JSON",A3="Imagens",m3="Texto",O3="Vídeo",E3="Configurações",f3="sem",x3="Função",_3="ID",S3="Nome",k3="Papel (Função)",Y3="Quarto",v3="Tipo",b3="Configurações inválidas",Q3="Última mudança",U3="localmente",$3="abril",P3="agosto",W3="dezembro",B3="fevereiro",J3="janeiro",R3="julho",F3="junho",G3="Mai",H3="março",V3="novembro",Z3="outubro",X3="setembro",K3="abril",q3="agosto",e5="dezembro",t5="fevereiro",s5="janeiro",i5="julho",r5="junho",o5="Mai",n5="março",a5="novembro",M5="outubro",c5="setembro",u5="Nenhum",l5="Objeto alterado por",N5="Objeto alterado pela última vez em",L5="Configurações de outro adaptador %s",g5="Código de qualidade",j5="repetir",y5='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',T5="Mostrar tudo",d5="Estado alterado por",D5="Objeto alterado de",h5="Timestamp",z5="Confirmado",w5="Comente",C5="Copie o valor do estado",I5="Segure a tecla Ctrl/⌘ para abrir o link",p5="Opções customizadas",A5="Excluir objeto",m5="Editar objeto",O5="Edite o valor do estado",E5="Expira em",f5="De",x5="Última alteração",_5="Qualidade",S5="Timestamp",k5="Usuário",Y5="Valor",v5="verdadeiro",b5="Valor",Q5="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",U5="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",$5="CRON",P5="Data",W5="Dias",B5="Dia",J5="Dia da semana",R5="todos",F5="a cada N dias",G5="todo enésimo dia da semana",H5="todos os N dias da semana",V5="a cada N horas",Z5="a cada N minutos",X5="a cada N meses",K5="a cada N segundos",q5="todo dia",ek="todos os dias da semana",tk="todos os dias da semana",sk="toda hora",ik="todo minuto",rk="todo mês",ok="todo segundo",nk="de",ak="horas",Mk="intervalo",ck="intervalo entre",uk="CRON inválido",lk="minutos",Nk="meses",Lk="uma vez",gk="período",jk="segundos",yk="simples",Tk="tempo específico",dk="datas específicas",Dk="dia(s) específico(s) da semana",hk="dia específico de semanas",zk="horas específicas",wk="minutos específicos",Ck="meses específicos",Ik="segundos específicos",pk="tempo",Ak="para",mk="assistente",Ok="tudo",Ek="dia astral",fk="noite astral",xk="amanhecer",_k="anoitecer",Sk="hora dourada",kk="Fim da hora dourada",Yk="nadir",vk="Amanhecer náutico",bk="Anoitecer náutico",Qk="noite",Uk="fim da noite",$k="meio-dia solar",Pk="nascer do sol",Wk="fim do nascer do sol",Bk="pôr do sol",Jk="início do pôr do sol",Rk="às",Fk="em %s",Gk="todo dia",Hk="toda hora",Vk="todo minuto",Zk="todo mês",Xk="a cada %s dias",Kk="a cada %s horas",qk="a cada %s minutos",eY="a cada %s meses",tY="a cada %s semanas",sY="a cada %s anos",iY="toda semana",rY="todo ano",oY="de %s para %s",nY="nunca",aY="em %s de %s",MY="em %s e %s de",cY="em toda data de",uY="%s",lY="%s e %s",NY="em %s",LY="em %s e %s",gY="nos fins de semana",jY="em dias úteis",yY="não será mais executado, porque o começo está no passado",TY="em %s",dY="de %s",DY="Executar de até",hY="até %s",zY="cada",wY="tempo específico",CY="de",IY="de a´t",pY="tempo de intervalo",AY="invertido",mY="nenhum",OY="em",EY="período",fY="diariamente",xY="datas",_Y="dia",SY="todos",kY="todo dia",YY="todo mês",vY="toda semana",bY="todo ano",QY="horas",UY="minutos",$Y="mês",PY="por mês",WY="uma vez",BY="meses específicos",JY="semana",RY="dias úteis",FY="final de semana",GY="semanal",HY="dias úteis",VY="ano",ZY="anual",XY="tempo específico",KY="tempo",qY="para",ev="válido",tv="de",sv="para",iv="dia inteiro",rv="todo mês",ov={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença",ra_Actions:Z_,"ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:X_,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:K_,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:q_,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:eS,ra_Clear:tS,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:sS,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:iS,ra_Configure:rS,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:oS,ra_Continue:nS,ra_Copied:aS,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:MS,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:cS,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:uS,ra_Delete:lS,"ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:NS,ra_Disconnected:LS,"ra_Do not ask for next 2 hours in this session":"Não peça as próximas 2 horas nesta sessão","ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit full path":"Editar caminho completo","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Digite o código dessa página aqui",ra_Error:gS,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:jS,"ra_Filter and Data Actions":"Ações de filtro e dados","ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:yS,"ra_Get %s access":"Obtenha acesso %s","ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:TS,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Logout:dS,ra_Longitude:DS,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:hS,ra_Monday:zS,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:wS,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:CS,ra_Ok:IS,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please allow popups in your browser for this page!":"Por favor, permita pop-ups no seu navegador para esta página!","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Press ENTER Key to add new item":"Pressione a tecla ENTER para adicionar um novo item","ra_Private certificate":"certificado privado",ra_Product:pS,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Rename_Move_Copy:AS,"ra_Renew %s access":"Renovar acesso %s",ra_Repeat:mS,ra_Replace:OS,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:ES,ra_Saturday:fS,ra_Save:xS,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:_S,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"A sessão irá expirar em %s segundos. Continuar?","ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:SS,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado com sucesso. Token válido até %s e será renovado automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.","ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:kS,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:YS,ra_Timestamp:vS,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:bS,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:QS,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:US,ra_Value:$S,ra_Version:PS,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:WS,ra_Width:BS,ra_Yes:JS,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto","ra_You can use * as wildcard":"Você pode usar * como curinga",ra___different__:RS,ra_aclEveryone_read_object:FS,ra_aclEveryone_read_state:GS,ra_aclEveryone_write_object:HS,ra_aclEveryone_write_state:VS,ra_aclGroup_read_object:ZS,ra_aclGroup_read_state:XS,ra_aclGroup_write_object:KS,ra_aclGroup_write_state:qS,ra_aclOwner_read_object:e3,ra_aclOwner_read_state:t3,ra_aclOwner_write_object:s3,ra_aclOwner_write_state:i3,ra_buttons:r3,ra_changedFrom:o3,ra_close:n3,ra_create_boolean_state:a3,ra_create_channel:M3,ra_create_device:c3,ra_create_number_state:u3,ra_create_state:l3,ra_create_string_state:N3,ra_daysShortText:L3,ra_dow_Fr:g3,ra_dow_Mo:j3,ra_dow_Sa:y3,ra_dow_Su:T3,ra_dow_Th:d3,ra_dow_Tu:D3,ra_dow_We:h3,ra_expertMode:z3,ra_false:w3,ra_fileType_all:C3,ra_fileType_audio:I3,ra_fileType_code:p3,ra_fileType_images:A3,ra_fileType_txt:m3,ra_fileType_video:O3,"ra_fileType_video,":"Vídeo",ra_filter_customs:E3,ra_filter_customs_without:f3,ra_filter_func:x3,ra_filter_id:_3,ra_filter_name:S3,ra_filter_role:k3,ra_filter_room:Y3,ra_filter_type:v3,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:b3,ra_lastChange:Q3,ra_locally:U3,ra_month_Apr:$3,ra_month_Aug:P3,ra_month_Dec:W3,ra_month_Feb:B3,ra_month_Jan:J3,ra_month_Jul:R3,ra_month_Jun:F3,ra_month_Mai:G3,ra_month_Mar:H3,ra_month_Nov:V3,ra_month_Oct:Z3,ra_month_Sep:X3,ra_months_Apr:K3,ra_months_Aug:q3,ra_months_Dec:e5,ra_months_Feb:t5,ra_months_Jan:s5,ra_months_Jul:i5,ra_months_Jun:r5,ra_months_Mai:o5,ra_months_Mar:n5,ra_months_Nov:a5,ra_months_Oct:M5,ra_months_Sep:c5,"ra_no confirm for 5 mins":"sem confirmação por 5 minutos",ra_none:u5,ra_object_changed_by:l5,ra_object_changed_by_user:N5,ra_otherConfig:L5,ra_qualityCode:g5,ra_repeat:j5,ra_select_folder_hint:y5,ra_show_all:T5,ra_state_changed_by:d5,ra_state_changed_from:D5,ra_timestamp:h5,ra_tooltip_ack:z5,ra_tooltip_comment:w5,ra_tooltip_copyState:C5,ra_tooltip_ctrlForLink:I5,ra_tooltip_customConfig:p5,ra_tooltip_deleteObject:A5,ra_tooltip_editObject:m5,ra_tooltip_editState:O5,ra_tooltip_expire:E5,ra_tooltip_from:f5,ra_tooltip_lc:x5,ra_tooltip_quality:_5,ra_tooltip_ts:S5,ra_tooltip_user:k5,ra_tooltip_value:Y5,ra_true:v5,"ra_use seconds":"use segundos",ra_val:b5,"ra_via internet":"via internet",ra_warning_every_minute:Q5,ra_warning_every_second:U5,sc_cron:$5,sc_date:P5,sc_dates:W5,sc_dow:B5,sc_dows:J5,sc_every:R5,sc_everyN_dates:F5,sc_everyN_dow:G5,sc_everyN_dows:H5,sc_everyN_hours:V5,sc_everyN_minutes:Z5,sc_everyN_months:X5,sc_everyN_seconds:K5,sc_every_dates:q5,sc_every_dow:ek,sc_every_dows:tk,sc_every_hours:sk,sc_every_minutes:ik,sc_every_months:rk,sc_every_seconds:ok,sc_from:nk,sc_hours:ak,sc_interval:Mk,sc_intervalBetween:ck,sc_invalid_cron:uk,sc_minutes:lk,sc_months:Nk,sc_once:Lk,sc_period:gk,sc_seconds:jk,sc_simple:yk,sc_specific:Tk,sc_specific_dates:dk,sc_specific_dow:Dk,sc_specific_dows:hk,sc_specific_hours:zk,sc_specific_minutes:wk,sc_specific_months:Ck,sc_specific_seconds:Ik,sc_time:pk,sc_to:Ak,sc_wizard:mk,sch_all:Ok,sch_astroDay:Ek,sch_astroNight:fk,sch_astro_dawn:xk,sch_astro_dusk:_k,sch_astro_goldenHour:Sk,sch_astro_goldenHourEnd:kk,sch_astro_nadir:Yk,sch_astro_nauticalDawn:vk,sch_astro_nauticalDusk:bk,sch_astro_night:Qk,sch_astro_nightEnd:Uk,sch_astro_solarNoon:$k,sch_astro_sunrise:Pk,sch_astro_sunriseEnd:Wk,sch_astro_sunset:Bk,sch_astro_sunsetStart:Jk,sch_at:Rk,sch_desc_atTime:Fk,sch_desc_everyDay:Gk,sch_desc_everyHour:Hk,sch_desc_everyMinute:Vk,sch_desc_everyMonth:Zk,sch_desc_everyNDay:Xk,sch_desc_everyNHours:Kk,sch_desc_everyNMinutes:qk,sch_desc_everyNMonths:eY,sch_desc_everyNWeeks:tY,sch_desc_everyNYears:sY,sch_desc_everyWeek:iY,sch_desc_everyYear:rY,sch_desc_intervalFromTo:oY,sch_desc_never:nY,sch_desc_onDate:aY,sch_desc_onDates:MY,sch_desc_onEveryDate:cY,sch_desc_onMonth:uY,sch_desc_onMonths:lY,sch_desc_onWeekday:NY,sch_desc_onWeekdays:LY,sch_desc_onWeekends:gY,sch_desc_onWorkdays:jY,sch_desc_onceInPast:yY,sch_desc_once_on:TY,sch_desc_validFrom:dY,sch_desc_validFromTo:DY,sch_desc_validTo:hY,sch_every:zY,sch_exactTime:wY,sch_from:CY,sch_fromTo:IY,sch_intervalTime:pY,sch_invert:AY,sch_no_one:mY,sch_on:OY,sch_period:EY,sch_periodDaily:fY,sch_periodDates:xY,sch_periodDay:_Y,sch_periodEvery:SY,sch_periodEveryDay:kY,sch_periodEveryMonth:YY,sch_periodEveryWeek:vY,sch_periodEveryYear:bY,sch_periodHours:QY,sch_periodMinutes:UY,sch_periodMonth:$Y,sch_periodMonthly:PY,sch_periodOnce:WY,sch_periodSpecificMonths:BY,sch_periodWeek:JY,sch_periodWeekdays:RY,sch_periodWeekend:FY,sch_periodWeekly:GY,sch_periodWorkdays:HY,sch_periodYear:VY,sch_periodYearly:ZY,sch_specificTime:XY,sch_time:KY,sch_to:qY,sch_valid:ev,sch_validFrom:tv,sch_validTo:sv,sch_wholeDay:iv,sch_yearEveryMonth:rv},nv="Acties",av="toevoegen",Mv="Annuleer",cv="Categorieën",uv="Gecontroleerd",lv="Verwijderen",Nv="Dichtbij",Lv="Reclame",gv="Configureren",jv="Verbonden",yv="Doorgaan",Tv="Gekopieerd",dv="Creëer",Dv="Bijsnijden",hv="Delete",zv="Verwijderen",wv="Weggooien",Cv="Verbinding verbroken",Iv="Fout",pv="Filter",Av="Vrijdag",mv="Breedtegraad",Ov="Uitloggen",Ev="Lengtegraad",fv="Bericht",xv="Maandag",_v="Naam",Sv="Voorwerpen",kv="OK",Yv="Product",vv="Hernoemen/Verplaatsen/Kopiëren",bv="Herhaling",Qv="Vervangen",Uv="Wortel",$v="Zaterdag",Pv="Sparen",Wv="Geselecteerd",Bv="Staten",Jv="Zondag",Rv="Donderdag",Fv="Tijdstempel",Gv="Dinsdag",Hv="Bijwerken",Vv="Geldig tot",Zv="Waarde",Xv="Versie",Kv="Woensdag",qv="Breedte",eb="Ja",tb="verschillend",sb="Iedereen kan object lezen",ib="Iedereen kan staat lezen",rb="Iedereen kan object schrijven",ob="Iedereen kan staat schrijven",nb="Groep kan object lezen",ab="Groep kan status lezen",Mb="Groep kan object schrijven",cb="Groep kan staat schrijven",ub="Eigenaar kan object lezen",lb="Eigenaar kan staat lezen",Nb="Eigenaar kan object schrijven",Lb="Eigenaar kan staat schrijven",gb="Toetsen",jb="Veranderd van",yb="dichtbij",Tb="Creëer een Booleaanse status",db="Kanaal maken",Db="Apparaat maken",hb="Nummerstatus maken",zb="Staat creëren",wb="Tekenreeksstatus maken",Cb="d.",Ib="Fr",pb="Mo",Ab="Za",mb="Zo",Ob="Th",Eb="Tu",fb="Wij",xb="Expert modus",_b="ONWAAR",Sb="Alle bestanden",kb="Audio",Yb="Code/JSON",vb="Afbeeldingen",bb="Tekst",Qb="Video",Ub="Instellingen",$b="zonder",Pb="Functie",Wb="ID",Bb="Naam",Jb="Rol",Rb="Kamer",Fb="Type",Gb="Ongeldige instellingen",Hb="Laatste wijziging",Vb="plaatselijk",Zb="april",Xb="aug",Kb="dec",qb="februari",eQ="jan",tQ="jul",sQ="juni",iQ="Mei",rQ="mrt",oQ="nov",nQ="Okt",aQ="sept",MQ="april",cQ="aug",uQ="dec",lQ="februari",NQ="jan",LQ="jul",gQ="juni",jQ="Mei",yQ="mrt",TQ="nov",dQ="Okt",DQ="sept",hQ="geen",zQ="Object veranderd door",wQ="Object voor het laatst gewijzigd om",CQ="Instellingen van andere adapter %s",IQ="Kwaliteitscode",pQ="herhalen",AQ='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',mQ="Alles weergeven",OQ="Staat veranderd door",EQ="Object veranderd van",fQ="Tijdstempel",xQ="Erkende vlag",_Q="Opmerking",SQ="Kopieer de statuswaarde",kQ="Houd de Cltr/⌘-toets ingedrukt om de link te openen",YQ="Aangepaste instellingen",vQ="Object verwijderen",bQ="Object bewerken",QQ="Bewerk de statuswaarde",UQ="Verloopt over",$Q="Van",PQ="Laatst gewijzigd",WQ="Kwaliteit",BQ="Tijdstempel",JQ="Gebruiker",RQ="Waarde",FQ="WAAR",GQ="Waarde",HQ="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",VQ="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",ZQ="CRON",XQ="Datum",KQ="data",qQ="Dag",eU="Dag van de week",tU="elk",sU="elke N dagen",iU="elke N-de dag van de week",rU="elke N dag van de week",oU="elke N uur",nU="elke N minuten",aU="elke N maanden",MU="elke N seconden",cU="elke dag",uU="elke dag van de week",lU="elke dag van de week",NU="elk uur",LU="elke minuut",gU="elke maand",jU="elke seconde",yU="Van",TU="uren",dU="Interval",DU="Interval tussen",hU="Ongeldige CRON",zU="Notulen",wU="maanden",CU="Een keer",IU="Periode",pU="seconden",AU="Gemakkelijk",mU="Specifieke tijd",OU="specifieke data",EU="specifieke dag(en) van de week",fU="specifieke dag van weken",xU="specifieke uren",_U="specifieke minuten",SU="specifieke maanden",kU="specifieke seconden",YU="Tijd",vU="Naar",bU="tovenaar",QU="allemaal",UU="Astro-dag",$U="Astro-nacht",PU="Dageraad",WU="Schemer",BU="gouden uur",JU="Gouden uur einde",RU="Nadir",FU="Nautische dageraad",GU="Nautische schemering",HU="Nacht",VU="Nacht einde",ZU="Zonne middag",XU="zonsopkomst",KU="Sunrise einde",qU="Zonsondergang",e8="Zonsondergang start",t8="Bij",s8="op %s",i8="elke dag",r8="elk uur",o8="elke minuut",n8="elke maand",a8="elke %s dag",M8="elke %s uur",c8="elke %s minuten",u8="elke %s maanden",l8="elke %s weken",N8="elke %s jaar",L8="elke week",g8="elk jaar",j8="van %s tot %s",y8="nooit",T8="op %s van %s",d8="op %s en %s van",D8="op elke datum van",h8="%s",z8="%s en %s",w8="op %s",C8="op %s en %s",I8="in het weekend",p8="op werkdagen",A8="zal niet meer worden uitgevoerd, omdat start verleden tijd is",m8="op %s",O8="van %s",E8="Uitvoeren van tot",f8="tot %s",x8="elk",_8="Specifieke tijd",S8="van",k8="Van naar",Y8="Interval tijd",v8="omkeren",b8="geen",Q8="Aan",U8="Periode",$8="Dagelijks",P8="data",W8="Dag",B8="elk",J8="Elke dag",R8="Elke maand",F8="Elke week",G8="Elk jaar",H8="uren",V8="Notulen",Z8="maand",X8="Maandelijks",K8="Een keer",q8="Specifieke maanden",e6="Week",t6="Doordeweekse dagen",s6="Weekend",i6="Wekelijks",r6="werkdagen",o6="Jaar",n6="jaar-",a6="Specifieke tijd",M6="Tijd",c6="naar",u6="Geldig",l6="van",N6="naar",L6="Hele dag",g6="elke maand",j6={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie",ra_Actions:nv,"ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:av,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:Mv,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:cv,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:uv,ra_Clear:lv,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:Nv,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:Lv,ra_Configure:gv,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:jv,ra_Continue:yv,ra_Copied:Tv,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:dv,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:Dv,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:hv,ra_Delete:zv,"ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:wv,ra_Disconnected:Cv,"ra_Do not ask for next 2 hours in this session":"Vraag niet om de volgende 2 uur in deze sessie","ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit full path":"Volledig pad bewerken","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken","ra_Enter the code from that page here":"Voer hier de code van die pagina in",ra_Error:Iv,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:pv,"ra_Filter and Data Actions":"Filter- en gegevensacties","ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:Av,"ra_Get %s access":"Krijg %s toegang","ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:mv,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Logout:Ov,ra_Longitude:Ev,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:fv,ra_Monday:xv,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:_v,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:Sv,ra_Ok:kv,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please allow popups in your browser for this page!":"Sta pop-ups toe in uw browser voor deze pagina!","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Press ENTER Key to add new item":"Druk op de ENTER-toets om een nieuw item toe te voegen","ra_Private certificate":"Privé certificaat",ra_Product:Yv,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Rename_Move_Copy:vv,"ra_Renew %s access":"%s toegang verlengen",ra_Repeat:bv,ra_Replace:Qv,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:Uv,ra_Saturday:$v,ra_Save:Pv,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:Wv,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Session will expire in %s seconds. Continue?":"Sessie verloopt over %s seconden. Doorgaan?","ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:Bv,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.","ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:Jv,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:Rv,ra_Timestamp:Fv,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:Gv,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:Hv,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:Vv,ra_Value:Zv,ra_Version:Xv,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:Kv,ra_Width:qv,ra_Yes:eb,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren","ra_You can use * as wildcard":"U kunt * als joker gebruiken",ra___different__:tb,ra_aclEveryone_read_object:sb,ra_aclEveryone_read_state:ib,ra_aclEveryone_write_object:rb,ra_aclEveryone_write_state:ob,ra_aclGroup_read_object:nb,ra_aclGroup_read_state:ab,ra_aclGroup_write_object:Mb,ra_aclGroup_write_state:cb,ra_aclOwner_read_object:ub,ra_aclOwner_read_state:lb,ra_aclOwner_write_object:Nb,ra_aclOwner_write_state:Lb,ra_buttons:gb,ra_changedFrom:jb,ra_close:yb,ra_create_boolean_state:Tb,ra_create_channel:db,ra_create_device:Db,ra_create_number_state:hb,ra_create_state:zb,ra_create_string_state:wb,ra_daysShortText:Cb,ra_dow_Fr:Ib,ra_dow_Mo:pb,ra_dow_Sa:Ab,ra_dow_Su:mb,ra_dow_Th:Ob,ra_dow_Tu:Eb,ra_dow_We:fb,ra_expertMode:xb,ra_false:_b,ra_fileType_all:Sb,ra_fileType_audio:kb,ra_fileType_code:Yb,ra_fileType_images:vb,ra_fileType_txt:bb,ra_fileType_video:Qb,"ra_fileType_video,":"Video",ra_filter_customs:Ub,ra_filter_customs_without:$b,ra_filter_func:Pb,ra_filter_id:Wb,ra_filter_name:Bb,ra_filter_role:Jb,ra_filter_room:Rb,ra_filter_type:Fb,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:Gb,ra_lastChange:Hb,ra_locally:Vb,ra_month_Apr:Zb,ra_month_Aug:Xb,ra_month_Dec:Kb,ra_month_Feb:qb,ra_month_Jan:eQ,ra_month_Jul:tQ,ra_month_Jun:sQ,ra_month_Mai:iQ,ra_month_Mar:rQ,ra_month_Nov:oQ,ra_month_Oct:nQ,ra_month_Sep:aQ,ra_months_Apr:MQ,ra_months_Aug:cQ,ra_months_Dec:uQ,ra_months_Feb:lQ,ra_months_Jan:NQ,ra_months_Jul:LQ,ra_months_Jun:gQ,ra_months_Mai:jQ,ra_months_Mar:yQ,ra_months_Nov:TQ,ra_months_Oct:dQ,ra_months_Sep:DQ,"ra_no confirm for 5 mins":"geen bevestiging gedurende 5 minuten",ra_none:hQ,ra_object_changed_by:zQ,ra_object_changed_by_user:wQ,ra_otherConfig:CQ,ra_qualityCode:IQ,ra_repeat:pQ,ra_select_folder_hint:AQ,ra_show_all:mQ,ra_state_changed_by:OQ,ra_state_changed_from:EQ,ra_timestamp:fQ,ra_tooltip_ack:xQ,ra_tooltip_comment:_Q,ra_tooltip_copyState:SQ,ra_tooltip_ctrlForLink:kQ,ra_tooltip_customConfig:YQ,ra_tooltip_deleteObject:vQ,ra_tooltip_editObject:bQ,ra_tooltip_editState:QQ,ra_tooltip_expire:UQ,ra_tooltip_from:$Q,ra_tooltip_lc:PQ,ra_tooltip_quality:WQ,ra_tooltip_ts:BQ,ra_tooltip_user:JQ,ra_tooltip_value:RQ,ra_true:FQ,"ra_use seconds":"gebruik seconden",ra_val:GQ,"ra_via internet":"via internet",ra_warning_every_minute:HQ,ra_warning_every_second:VQ,sc_cron:ZQ,sc_date:XQ,sc_dates:KQ,sc_dow:qQ,sc_dows:eU,sc_every:tU,sc_everyN_dates:sU,sc_everyN_dow:iU,sc_everyN_dows:rU,sc_everyN_hours:oU,sc_everyN_minutes:nU,sc_everyN_months:aU,sc_everyN_seconds:MU,sc_every_dates:cU,sc_every_dow:uU,sc_every_dows:lU,sc_every_hours:NU,sc_every_minutes:LU,sc_every_months:gU,sc_every_seconds:jU,sc_from:yU,sc_hours:TU,sc_interval:dU,sc_intervalBetween:DU,sc_invalid_cron:hU,sc_minutes:zU,sc_months:wU,sc_once:CU,sc_period:IU,sc_seconds:pU,sc_simple:AU,sc_specific:mU,sc_specific_dates:OU,sc_specific_dow:EU,sc_specific_dows:fU,sc_specific_hours:xU,sc_specific_minutes:_U,sc_specific_months:SU,sc_specific_seconds:kU,sc_time:YU,sc_to:vU,sc_wizard:bU,sch_all:QU,sch_astroDay:UU,sch_astroNight:$U,sch_astro_dawn:PU,sch_astro_dusk:WU,sch_astro_goldenHour:BU,sch_astro_goldenHourEnd:JU,sch_astro_nadir:RU,sch_astro_nauticalDawn:FU,sch_astro_nauticalDusk:GU,sch_astro_night:HU,sch_astro_nightEnd:VU,sch_astro_solarNoon:ZU,sch_astro_sunrise:XU,sch_astro_sunriseEnd:KU,sch_astro_sunset:qU,sch_astro_sunsetStart:e8,sch_at:t8,sch_desc_atTime:s8,sch_desc_everyDay:i8,sch_desc_everyHour:r8,sch_desc_everyMinute:o8,sch_desc_everyMonth:n8,sch_desc_everyNDay:a8,sch_desc_everyNHours:M8,sch_desc_everyNMinutes:c8,sch_desc_everyNMonths:u8,sch_desc_everyNWeeks:l8,sch_desc_everyNYears:N8,sch_desc_everyWeek:L8,sch_desc_everyYear:g8,sch_desc_intervalFromTo:j8,sch_desc_never:y8,sch_desc_onDate:T8,sch_desc_onDates:d8,sch_desc_onEveryDate:D8,sch_desc_onMonth:h8,sch_desc_onMonths:z8,sch_desc_onWeekday:w8,sch_desc_onWeekdays:C8,sch_desc_onWeekends:I8,sch_desc_onWorkdays:p8,sch_desc_onceInPast:A8,sch_desc_once_on:m8,sch_desc_validFrom:O8,sch_desc_validFromTo:E8,sch_desc_validTo:f8,sch_every:x8,sch_exactTime:_8,sch_from:S8,sch_fromTo:k8,sch_intervalTime:Y8,sch_invert:v8,sch_no_one:b8,sch_on:Q8,sch_period:U8,sch_periodDaily:$8,sch_periodDates:P8,sch_periodDay:W8,sch_periodEvery:B8,sch_periodEveryDay:J8,sch_periodEveryMonth:R8,sch_periodEveryWeek:F8,sch_periodEveryYear:G8,sch_periodHours:H8,sch_periodMinutes:V8,sch_periodMonth:Z8,sch_periodMonthly:X8,sch_periodOnce:K8,sch_periodSpecificMonths:q8,sch_periodWeek:e6,sch_periodWeekdays:t6,sch_periodWeekend:s6,sch_periodWeekly:i6,sch_periodWorkdays:r6,sch_periodYear:o6,sch_periodYearly:n6,sch_specificTime:a6,sch_time:M6,sch_to:c6,sch_valid:u6,sch_validFrom:l6,sch_validTo:N6,sch_wholeDay:L6,sch_yearEveryMonth:g6},y6="Actes",T6="Ajouter",d6="Annuler",D6="Catégories",h6="Vérifié",z6="Effacer",w6="Fermer",C6="Commercial",I6="Configurer",p6="Lié",A6="Continuer",m6="Copié",O6="Créer",E6="Recadrer",f6="Delete",x6="Supprimer",_6="Jeter",S6="Débranché",k6="Erreur",Y6="Filtre",v6="Vendredi",b6="Latitude",Q6="Déconnexion",U6="Longitude",$6="Message",P6="Lundi",W6="Nom",B6="Objets",J6="D'accord",R6="Produit",F6="Renommer/Déplacer/Copier",G6="Répéter",H6="Remplacer",V6="Racine",Z6="Samedi",X6="sauver",K6="Choisi",q6="États",e9="Dimanche",t9="Jeudi",s9="Horodatage",i9="Mardi",r9="Mise à jour",o9="Valable jusqu'au",n9="Valeur",a9="Version",M9="Mercredi",c9="Largeur",u9="Oui",l9="différent",N9="Tout le monde peut lire un objet",L9="Tout le monde peut lire l'état",g9="Tout le monde peut écrire un objet",j9="Tout le monde peut écrire l'état",y9="Le groupe peut lire l'objet",T9="Le groupe peut lire l'état",d9="Le groupe peut écrire un objet",D9="Le groupe peut écrire l'état",h9="Le propriétaire peut lire l'objet",z9="Le propriétaire peut lire l'état",w9="Le propriétaire peut écrire un objet",C9="Le propriétaire peut écrire l'état",I9="Boutons",p9="Changé de",A9="Fermer",m9="Créer un état booléen",O9="Créer une chaîne",E9="Créer un appareil",f9="Créer un état de numéro",x9="Créer un état",_9="Créer un état de chaîne",S9="j.",k9="Fr",Y9="Mo",v9="Sa",b9="Su",Q9="Th",U9="Tu",$9="Nous",P9="Mode expert",W9="FAUX",B9="Tous les fichiers",J9="l'audio",R9="Code/JSON",F9="Images",G9="Texte",H9="Vidéo",V9="Paramètres",Z9="sans",X9="Une fonction",K9="ID",q9="Prénom",e7="Rôle",t7="Pièce",s7="Type",i7="Paramètres invalides",r7="Dernier changement",o7="localement",n7="Avr",a7="Août",M7="Déc",c7="Fév",u7="Jan",l7="Juil",N7="Juin",L7="Mai",g7="Mar",j7="Nov",y7="Oct",T7="Sep",d7="Avr",D7="Août",h7="Déc",z7="Fév",w7="Jan",C7="Juil",I7="Juin",p7="Mai",A7="Mar",m7="Nov",O7="Oct",E7="Sep",f7="rien",x7="Objet modifié par",_7="Objet modifié pour la dernière fois à",S7="Paramètres d'un autre adaptateur %s",k7="Code de qualité",Y7="répéter",v7='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',b7="Tout afficher",Q7="État modifié par",U7="Objet changé de",$7="Horodatage",P7="Drapeau reconnu",W7="Commentaire",B7="Copiez la valeur d'état",J7="Maintenez la touche Cltr/⌘ enfoncée pour ouvrir le lien",R7="Paramètres personnalisés",F7="Supprimer un objet",G7="Modifier l'objet",H7="Modifier la valeur d'état",V7="Expire dans",Z7="De",X7="Dernière modification",K7="Qualité",q7="Horodatage",e$="Utilisateur",t$="Valeur",s$="VRAI",i$="Valeur",r$="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",o$="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",n$="CRON",a$="Date",M$="Rendez-vous",c$="Jour",u$="Jour de la semaine",l$="Chaque",N$="tous les N jours",L$="chaque Nième jour de la semaine",g$="tous les N jours de la semaine",j$="toutes les N heures",y$="toutes les N minutes",T$="tous les N mois",d$="toutes les N secondes",D$="tous les jours",h$="Chaque jour de la semaine",z$="Chaque jour de la semaine",w$="Toutes les heures",C$="chaque minute",I$="chaque mois",p$="chaque seconde",A$="De",m$="Heures",O$="Intervalle",E$="Intervalle entre",f$="CRON non valide",x$="Minutes",_$="mois",S$="Une fois que",k$="Période",Y$="Secondes",v$="Facile",b$="Temps spécifique",Q$="dates spécifiques",U$="jour(s) spécifique(s) de la semaine",$$="jour spécifique de semaines",P$="heures spécifiques",W$="minutes spécifiques",B$="mois spécifiques",J$="secondes spécifiques",R$="Temps",F$="À",G$="sorcier",H$="tout",V$="Journée astronomique",Z$="Nuit astronomique",X$="Aube",K$="Crépuscule",q$="Heure d'or",eP="Fin de l'heure d'or",tP="Nadir",sP="Aube nautique",iP="Crépuscule nautique",rP="Nuit",oP="Fin de nuit",nP="Midi solaire",aP="lever du soleil",MP="Fin du lever du soleil",cP="Le coucher du soleil",uP="Coucher du soleil",lP="à",NP="à %s",LP="tous les jours",gP="Toutes les heures",jP="chaque minute",yP="chaque mois",TP="chaque %s jour",dP="chaque %s heures",DP="toutes les %s minutes",hP="tous les %s mois",zP="chaque %s semaines",wP="tous les %s ans",CP="toutes les semaines",IP="chaque année",pP="de %s à %s",AP="jamais",mP="sur %s de %s",OP="sur %s et %s de",EP="à chaque date de",fP="%s",xP="%s et %s",_P="sur %s",SP="sur %s et %s",kP="les weekends",YP="les jours ouvrables",vP="ne sera plus exécuté, car start est dans le passé",bP="sur %s",QP="de %s",UP="Exécuter de à",$P="à %s",PP="chaque",WP="Temps spécifique",BP="de",JP="De à",RP="Temps d'interval",FP="inverser",GP="aucun",HP="sur",VP="Période",ZP="du quotidien",XP="Rendez-vous",KP="journée",qP="Chaque",eW="Tous les jours",tW="Chaque mois",sW="Toutes les semaines",iW="Chaque année",rW="Heures",oW="Minutes",nW="mois",aW="Mensuel",MW="Une fois que",cW="Mois spécifiques",uW="La semaine",lW="Jours de la semaine",NW="Weekend",LW="Hebdomadaire",gW="Jours ouvrables",jW="Année",yW="Annuel",TW="Temps spécifique",dW="Temps",DW="à",hW="Valide",zW="de",wW="à",CW="Toute la journée",IW="chaque mois",pW={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence",ra_Actions:y6,"ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:T6,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:d6,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:D6,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:h6,ra_Clear:z6,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:w6,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:C6,ra_Configure:I6,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:p6,ra_Continue:A6,ra_Copied:m6,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:O6,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:E6,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:f6,ra_Delete:x6,"ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:_6,ra_Disconnected:S6,"ra_Do not ask for next 2 hours in this session":"Ne demandez pas les 2 prochaines heures de cette session","ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit full path":"Modifier le chemin complet","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur","ra_Enter the code from that page here":"Entrez le code de cette page ici",ra_Error:k6,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:Y6,"ra_Filter and Data Actions":"Actions sur les filtres et les données","ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:v6,"ra_Get %s access":"Obtenir l'accès %s","ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:b6,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Logout:Q6,ra_Longitude:U6,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:$6,ra_Monday:P6,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:W6,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:B6,ra_Ok:J6,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please allow popups in your browser for this page!":"Veuillez autoriser les popups dans votre navigateur pour cette page !","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Press ENTER Key to add new item":"Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément","ra_Private certificate":"Certificat privé",ra_Product:R6,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Rename_Move_Copy:F6,"ra_Renew %s access":"Renouveler l'accès %s",ra_Repeat:G6,ra_Replace:H6,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:V6,ra_Saturday:Z6,ra_Save:X6,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:K6,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Session will expire in %s seconds. Continue?":"La session expirera dans %s secondes. Continuer ?","ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:q6,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.","ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:e9,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:t9,ra_Timestamp:s9,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:i9,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:r9,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:o9,ra_Value:n9,ra_Version:a9,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:M9,ra_Width:c9,ra_Yes:u9,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte","ra_You can use * as wildcard":"Vous pouvez utiliser * comme caractère générique",ra___different__:l9,ra_aclEveryone_read_object:N9,ra_aclEveryone_read_state:L9,ra_aclEveryone_write_object:g9,ra_aclEveryone_write_state:j9,ra_aclGroup_read_object:y9,ra_aclGroup_read_state:T9,ra_aclGroup_write_object:d9,ra_aclGroup_write_state:D9,ra_aclOwner_read_object:h9,ra_aclOwner_read_state:z9,ra_aclOwner_write_object:w9,ra_aclOwner_write_state:C9,ra_buttons:I9,ra_changedFrom:p9,ra_close:A9,ra_create_boolean_state:m9,ra_create_channel:O9,ra_create_device:E9,ra_create_number_state:f9,ra_create_state:x9,ra_create_string_state:_9,ra_daysShortText:S9,ra_dow_Fr:k9,ra_dow_Mo:Y9,ra_dow_Sa:v9,ra_dow_Su:b9,ra_dow_Th:Q9,ra_dow_Tu:U9,ra_dow_We:$9,ra_expertMode:P9,ra_false:W9,ra_fileType_all:B9,ra_fileType_audio:J9,ra_fileType_code:R9,ra_fileType_images:F9,ra_fileType_txt:G9,ra_fileType_video:H9,"ra_fileType_video,":"Vidéo",ra_filter_customs:V9,ra_filter_customs_without:Z9,ra_filter_func:X9,ra_filter_id:K9,ra_filter_name:q9,ra_filter_role:e7,ra_filter_room:t7,ra_filter_type:s7,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:i7,ra_lastChange:r7,ra_locally:o7,ra_month_Apr:n7,ra_month_Aug:a7,ra_month_Dec:M7,ra_month_Feb:c7,ra_month_Jan:u7,ra_month_Jul:l7,ra_month_Jun:N7,ra_month_Mai:L7,ra_month_Mar:g7,ra_month_Nov:j7,ra_month_Oct:y7,ra_month_Sep:T7,ra_months_Apr:d7,ra_months_Aug:D7,ra_months_Dec:h7,ra_months_Feb:z7,ra_months_Jan:w7,ra_months_Jul:C7,ra_months_Jun:I7,ra_months_Mai:p7,ra_months_Mar:A7,ra_months_Nov:m7,ra_months_Oct:O7,ra_months_Sep:E7,"ra_no confirm for 5 mins":"pas de confirmation pendant 5 minutes",ra_none:f7,ra_object_changed_by:x7,ra_object_changed_by_user:_7,ra_otherConfig:S7,ra_qualityCode:k7,ra_repeat:Y7,ra_select_folder_hint:v7,ra_show_all:b7,ra_state_changed_by:Q7,ra_state_changed_from:U7,ra_timestamp:$7,ra_tooltip_ack:P7,ra_tooltip_comment:W7,ra_tooltip_copyState:B7,ra_tooltip_ctrlForLink:J7,ra_tooltip_customConfig:R7,ra_tooltip_deleteObject:F7,ra_tooltip_editObject:G7,ra_tooltip_editState:H7,ra_tooltip_expire:V7,ra_tooltip_from:Z7,ra_tooltip_lc:X7,ra_tooltip_quality:K7,ra_tooltip_ts:q7,ra_tooltip_user:e$,ra_tooltip_value:t$,ra_true:s$,"ra_use seconds":"utiliser les secondes",ra_val:i$,"ra_via internet":"par Internet",ra_warning_every_minute:r$,ra_warning_every_second:o$,sc_cron:n$,sc_date:a$,sc_dates:M$,sc_dow:c$,sc_dows:u$,sc_every:l$,sc_everyN_dates:N$,sc_everyN_dow:L$,sc_everyN_dows:g$,sc_everyN_hours:j$,sc_everyN_minutes:y$,sc_everyN_months:T$,sc_everyN_seconds:d$,sc_every_dates:D$,sc_every_dow:h$,sc_every_dows:z$,sc_every_hours:w$,sc_every_minutes:C$,sc_every_months:I$,sc_every_seconds:p$,sc_from:A$,sc_hours:m$,sc_interval:O$,sc_intervalBetween:E$,sc_invalid_cron:f$,sc_minutes:x$,sc_months:_$,sc_once:S$,sc_period:k$,sc_seconds:Y$,sc_simple:v$,sc_specific:b$,sc_specific_dates:Q$,sc_specific_dow:U$,sc_specific_dows:$$,sc_specific_hours:P$,sc_specific_minutes:W$,sc_specific_months:B$,sc_specific_seconds:J$,sc_time:R$,sc_to:F$,sc_wizard:G$,sch_all:H$,sch_astroDay:V$,sch_astroNight:Z$,sch_astro_dawn:X$,sch_astro_dusk:K$,sch_astro_goldenHour:q$,sch_astro_goldenHourEnd:eP,sch_astro_nadir:tP,sch_astro_nauticalDawn:sP,sch_astro_nauticalDusk:iP,sch_astro_night:rP,sch_astro_nightEnd:oP,sch_astro_solarNoon:nP,sch_astro_sunrise:aP,sch_astro_sunriseEnd:MP,sch_astro_sunset:cP,sch_astro_sunsetStart:uP,sch_at:lP,sch_desc_atTime:NP,sch_desc_everyDay:LP,sch_desc_everyHour:gP,sch_desc_everyMinute:jP,sch_desc_everyMonth:yP,sch_desc_everyNDay:TP,sch_desc_everyNHours:dP,sch_desc_everyNMinutes:DP,sch_desc_everyNMonths:hP,sch_desc_everyNWeeks:zP,sch_desc_everyNYears:wP,sch_desc_everyWeek:CP,sch_desc_everyYear:IP,sch_desc_intervalFromTo:pP,sch_desc_never:AP,sch_desc_onDate:mP,sch_desc_onDates:OP,sch_desc_onEveryDate:EP,sch_desc_onMonth:fP,sch_desc_onMonths:xP,sch_desc_onWeekday:_P,sch_desc_onWeekdays:SP,sch_desc_onWeekends:kP,sch_desc_onWorkdays:YP,sch_desc_onceInPast:vP,sch_desc_once_on:bP,sch_desc_validFrom:QP,sch_desc_validFromTo:UP,sch_desc_validTo:$P,sch_every:PP,sch_exactTime:WP,sch_from:BP,sch_fromTo:JP,sch_intervalTime:RP,sch_invert:FP,sch_no_one:GP,sch_on:HP,sch_period:VP,sch_periodDaily:ZP,sch_periodDates:XP,sch_periodDay:KP,sch_periodEvery:qP,sch_periodEveryDay:eW,sch_periodEveryMonth:tW,sch_periodEveryWeek:sW,sch_periodEveryYear:iW,sch_periodHours:rW,sch_periodMinutes:oW,sch_periodMonth:nW,sch_periodMonthly:aW,sch_periodOnce:MW,sch_periodSpecificMonths:cW,sch_periodWeek:uW,sch_periodWeekdays:lW,sch_periodWeekend:NW,sch_periodWeekly:LW,sch_periodWorkdays:gW,sch_periodYear:jW,sch_periodYearly:yW,sch_specificTime:TW,sch_time:dW,sch_to:DW,sch_valid:hW,sch_validFrom:zW,sch_validTo:wW,sch_wholeDay:CW,sch_yearEveryMonth:IW},AW="Azioni",mW="Aggiungere",OW="Annulla",EW="Categorie",fW="Controllato",xW="Elimina",_W="Vicino",SW="Commerciale",kW="Configura",YW="Collegato",vW="Continuare",bW="Copiato",QW="Creare",UW="Raccolto",$W="Delete",PW="Elimina",WW="Scartare",BW="Disconnesso",JW="Errore",RW="Filtro",FW="Venerdì",GW="Latitudine",HW="Esci",VW="Longitudine",ZW="Messaggio",XW="Lunedi",KW="Nome",qW="Oggetti",eB="Ok",tB="Prodotto",sB="Rinomina/Sposta/Copia",iB="Ripetere",rB="Sostituire",oB="Radice",nB="Sabato",aB="Salva",MB="Selezionato",cB="stati",uB="Domenica",lB="Giovedì",NB="Timestamp",LB="Martedì",gB="Aggiornare",jB="Valido fino a",yB="Valore",TB="Versione",dB="Mercoledì",DB="Larghezza",hB="SÌ",zB="diverso",wB="Tutti possono leggere gli oggetti",CB="Tutti possono leggere lo stato",IB="Tutti possono scrivere oggetti",pB="Tutti possono scrivere stato",AB="Il gruppo può leggere l'oggetto",mB="Il gruppo può leggere lo stato",OB="Il gruppo può scrivere l'oggetto",EB="Il gruppo può scrivere lo stato",fB="Il proprietario può leggere l'oggetto",xB="Il proprietario può leggere lo stato",_B="Il proprietario può scrivere l'oggetto",SB="Il proprietario può scrivere lo stato",kB="Bottoni",YB="Cambiato da",vB="vicino",bB="Crea uno stato booleano",QB="Crea canale",UB="Crea dispositivo",$B="Crea lo stato del numero",PB="Crea stato",WB="Crea lo stato della stringa",BB="g.",JB="fr",RB="momento",FB="Sa",GB="su",HB="th",VB="Tu",ZB="Noi",XB="Modalità esperto",KB="FALSO",qB="Tutti i files",eJ="Audio",tJ="Codice/JSON",sJ="immagini",iJ="Testo",rJ="video",oJ="impostazioni",nJ="senza",aJ="Funzione",MJ="ID",cJ="Nome",uJ="Ruolo",lJ="Camera",NJ="genere",LJ="Impostazioni non valide",gJ="Ultima modifica",jJ="localmente",yJ="apr",TJ="agosto",dJ="Dic",DJ="febbraio",hJ="gen",zJ="lug",wJ="giu",CJ="Mai",IJ="marzo",pJ="nov",AJ="ottobre",mJ="Sett",OJ="apr",EJ="agosto",fJ="Dic",xJ="febbraio",_J="gen",SJ="lug",kJ="giu",YJ="Mai",vJ="marzo",bJ="nov",QJ="ottobre",UJ="Sett",$J="nessuna",PJ="Oggetto modificato da",WJ="L'oggetto è stato modificato l'ultima volta alle",BJ="Impostazioni dall'altro adattatore %s",JJ="Codice di qualità",RJ="ripetere",FJ='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',GJ="Mostra tutto",HJ="Stato cambiato da",VJ="Oggetto cambiato da",ZJ="Timestamp",XJ="Bandiera riconosciuta",KJ="Commento",qJ="Copia il valore dello stato",eR="Tieni premuto il tasto Cltr/⌘ per aprire il collegamento",tR="Impostazioni personalizzate",sR="Elimina oggetto",iR="Modifica oggetto",rR="Modifica il valore dello stato",oR="Scade tra",nR="A partire dal",aR="Ultima modifica",MR="Qualità",cR="Data e ora",uR="Utente",lR="Valore",NR="VERO",LR="Valore",gR="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",jR="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",yR="CRON",TR="Data",dR="Date",DR="Giorno",hR="Giorno della settimana",zR="Ogni",wR="ogni N giorni",CR="ogni Nesimo giorno della settimana",IR="ogni N giorno della settimana",pR="ogni N ore",AR="ogni N minuti",mR="ogni N mesi",OR="ogni N secondi",ER="ogni giorno",fR="Tutti i giorni della settimana",xR="Tutti i giorni della settimana",_R="ogni ora",SR="ogni minuto",kR="ogni mese",YR="ogni secondo",vR="A partire dal",bR="Ore",QR="Intervallo",UR="Intervallo tra",$R="CRON non valido",PR="Minuti",WR="mesi",BR="Una volta",JR="Periodo",RR="secondi",FR="Semplice",GR="Orario preciso",HR="date specifiche",VR="giorno/i specifico/i della settimana",ZR="giorno specifico delle settimane",XR="orari specifici",KR="minuti specifici",qR="mesi specifici",eF="secondi specifici",tF="Tempo",sF="Per",iF="procedura guidata",rF="tutti",oF="Astro day",nF="Astro night",aF="Alba",MF="Crepuscolo",cF="Ora d'oro",uF="Fine dell'ora d'oro",lF="Nadir",NF="Alba nautica",LF="Crepuscolo nautico",gF="Notte",jF="Fine della notte",yF="Mezzogiorno solare",TF="Alba",dF="Fine dell'alba",DF="Tramonto",hF="Inizio del tramonto",zF="a",wF="a %s",CF="ogni giorno",IF="ogni ora",pF="ogni minuto",AF="ogni mese",mF="ogni %s giorno",OF="ogni %s ore",EF="ogni %s minuti",fF="ogni %s mesi",xF="ogni %s settimane",_F="ogni %s anni",SF="ogni settimana",kF="ogni anno",YF="da %s a %s",vF="mai",bF="su %s di %s",QF="su %s e %s di",UF="in ogni data di",$F="%s",PF="%s e %s",WF="su %s",BF="su %s e %s",JF="nei finesettimana",RF="nei giorni lavorativi",FF="non verrà più eseguito, perché start è nel passato",GF="su %s",HF="da %s",VF="Eseguire da a",ZF="a %s",XF="ogni",KF="Orario preciso",qF="a partire dal",eG="Da A",tG="Intervallo di tempo",sG="invertire",iG="nessuna",rG="sopra",oG="Periodo",nG="Quotidiano",aG="Date",MG="Giorno",cG="Ogni",uG="Ogni giorno",lG="Ogni mese",NG="Ogni settimana",LG="Ogni anno",gG="Ore",jG="Minuti",yG="mese",TG="Mensile",dG="Una volta",DG="Mesi specifici",hG="Settimana",zG="Giorni della settimana",wG="Fine settimana",CG="settimanalmente",IG="giorni feriali",pG="Anno",AG="Annuale",mG="Orario preciso",OG="Tempo",EG="per",fG="Valido",xG="a partire dal",_G="per",SG="Giorno intero",kG="ogni mese",YG={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza",ra_Actions:AW,"ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:mW,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:OW,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:EW,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:fW,ra_Clear:xW,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:_W,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:SW,ra_Configure:kW,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:YW,ra_Continue:vW,ra_Copied:bW,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:QW,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:UW,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:$W,ra_Delete:PW,"ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:WW,ra_Disconnected:BW,"ra_Do not ask for next 2 hours in this session":"Non chiedere per le prossime 2 ore in questa sessione","ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit full path":"Modifica percorso completo","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore","ra_Enter the code from that page here":"Inserisci qui il codice da quella pagina",ra_Error:JW,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:RW,"ra_Filter and Data Actions":"Azioni sui filtri e sui dati","ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:FW,"ra_Get %s access":"Ottieni l'accesso %s","ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:GW,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Logout:HW,ra_Longitude:VW,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:ZW,ra_Monday:XW,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:KW,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:qW,ra_Ok:eB,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please allow popups in your browser for this page!":"Si prega di abilitare i popup nel browser per questa pagina!","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Press ENTER Key to add new item":"Premere il tasto INVIO per aggiungere un nuovo elemento","ra_Private certificate":"Certificato privato",ra_Product:tB,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Rename_Move_Copy:sB,"ra_Renew %s access":"Rinnova l'accesso %s",ra_Repeat:iB,ra_Replace:rB,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:oB,ra_Saturday:nB,ra_Save:aB,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:MB,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sessione scadrà tra %s secondi. Continuare?","ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:cB,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.","ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:uB,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:lB,ra_Timestamp:NB,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:LB,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:gB,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:jB,ra_Value:yB,ra_Version:TB,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:dB,ra_Width:DB,ra_Yes:hB,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo","ra_You can use * as wildcard":"Puoi usare * come carattere jolly",ra___different__:zB,ra_aclEveryone_read_object:wB,ra_aclEveryone_read_state:CB,ra_aclEveryone_write_object:IB,ra_aclEveryone_write_state:pB,ra_aclGroup_read_object:AB,ra_aclGroup_read_state:mB,ra_aclGroup_write_object:OB,ra_aclGroup_write_state:EB,ra_aclOwner_read_object:fB,ra_aclOwner_read_state:xB,ra_aclOwner_write_object:_B,ra_aclOwner_write_state:SB,ra_buttons:kB,ra_changedFrom:YB,ra_close:vB,ra_create_boolean_state:bB,ra_create_channel:QB,ra_create_device:UB,ra_create_number_state:$B,ra_create_state:PB,ra_create_string_state:WB,ra_daysShortText:BB,ra_dow_Fr:JB,ra_dow_Mo:RB,ra_dow_Sa:FB,ra_dow_Su:GB,ra_dow_Th:HB,ra_dow_Tu:VB,ra_dow_We:ZB,ra_expertMode:XB,ra_false:KB,ra_fileType_all:qB,ra_fileType_audio:eJ,ra_fileType_code:tJ,ra_fileType_images:sJ,ra_fileType_txt:iJ,ra_fileType_video:rJ,"ra_fileType_video,":"video",ra_filter_customs:oJ,ra_filter_customs_without:nJ,ra_filter_func:aJ,ra_filter_id:MJ,ra_filter_name:cJ,ra_filter_role:uJ,ra_filter_room:lJ,ra_filter_type:NJ,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:LJ,ra_lastChange:gJ,ra_locally:jJ,ra_month_Apr:yJ,ra_month_Aug:TJ,ra_month_Dec:dJ,ra_month_Feb:DJ,ra_month_Jan:hJ,ra_month_Jul:zJ,ra_month_Jun:wJ,ra_month_Mai:CJ,ra_month_Mar:IJ,ra_month_Nov:pJ,ra_month_Oct:AJ,ra_month_Sep:mJ,ra_months_Apr:OJ,ra_months_Aug:EJ,ra_months_Dec:fJ,ra_months_Feb:xJ,ra_months_Jan:_J,ra_months_Jul:SJ,ra_months_Jun:kJ,ra_months_Mai:YJ,ra_months_Mar:vJ,ra_months_Nov:bJ,ra_months_Oct:QJ,ra_months_Sep:UJ,"ra_no confirm for 5 mins":"nessuna conferma per 5 minuti",ra_none:$J,ra_object_changed_by:PJ,ra_object_changed_by_user:WJ,ra_otherConfig:BJ,ra_qualityCode:JJ,ra_repeat:RJ,ra_select_folder_hint:FJ,ra_show_all:GJ,ra_state_changed_by:HJ,ra_state_changed_from:VJ,ra_timestamp:ZJ,ra_tooltip_ack:XJ,ra_tooltip_comment:KJ,ra_tooltip_copyState:qJ,ra_tooltip_ctrlForLink:eR,ra_tooltip_customConfig:tR,ra_tooltip_deleteObject:sR,ra_tooltip_editObject:iR,ra_tooltip_editState:rR,ra_tooltip_expire:oR,ra_tooltip_from:nR,ra_tooltip_lc:aR,ra_tooltip_quality:MR,ra_tooltip_ts:cR,ra_tooltip_user:uR,ra_tooltip_value:lR,ra_true:NR,"ra_use seconds":"usa i secondi",ra_val:LR,"ra_via internet":"attraverso internet",ra_warning_every_minute:gR,ra_warning_every_second:jR,sc_cron:yR,sc_date:TR,sc_dates:dR,sc_dow:DR,sc_dows:hR,sc_every:zR,sc_everyN_dates:wR,sc_everyN_dow:CR,sc_everyN_dows:IR,sc_everyN_hours:pR,sc_everyN_minutes:AR,sc_everyN_months:mR,sc_everyN_seconds:OR,sc_every_dates:ER,sc_every_dow:fR,sc_every_dows:xR,sc_every_hours:_R,sc_every_minutes:SR,sc_every_months:kR,sc_every_seconds:YR,sc_from:vR,sc_hours:bR,sc_interval:QR,sc_intervalBetween:UR,sc_invalid_cron:$R,sc_minutes:PR,sc_months:WR,sc_once:BR,sc_period:JR,sc_seconds:RR,sc_simple:FR,sc_specific:GR,sc_specific_dates:HR,sc_specific_dow:VR,sc_specific_dows:ZR,sc_specific_hours:XR,sc_specific_minutes:KR,sc_specific_months:qR,sc_specific_seconds:eF,sc_time:tF,sc_to:sF,sc_wizard:iF,sch_all:rF,sch_astroDay:oF,sch_astroNight:nF,sch_astro_dawn:aF,sch_astro_dusk:MF,sch_astro_goldenHour:cF,sch_astro_goldenHourEnd:uF,sch_astro_nadir:lF,sch_astro_nauticalDawn:NF,sch_astro_nauticalDusk:LF,sch_astro_night:gF,sch_astro_nightEnd:jF,sch_astro_solarNoon:yF,sch_astro_sunrise:TF,sch_astro_sunriseEnd:dF,sch_astro_sunset:DF,sch_astro_sunsetStart:hF,sch_at:zF,sch_desc_atTime:wF,sch_desc_everyDay:CF,sch_desc_everyHour:IF,sch_desc_everyMinute:pF,sch_desc_everyMonth:AF,sch_desc_everyNDay:mF,sch_desc_everyNHours:OF,sch_desc_everyNMinutes:EF,sch_desc_everyNMonths:fF,sch_desc_everyNWeeks:xF,sch_desc_everyNYears:_F,sch_desc_everyWeek:SF,sch_desc_everyYear:kF,sch_desc_intervalFromTo:YF,sch_desc_never:vF,sch_desc_onDate:bF,sch_desc_onDates:QF,sch_desc_onEveryDate:UF,sch_desc_onMonth:$F,sch_desc_onMonths:PF,sch_desc_onWeekday:WF,sch_desc_onWeekdays:BF,sch_desc_onWeekends:JF,sch_desc_onWorkdays:RF,sch_desc_onceInPast:FF,sch_desc_once_on:GF,sch_desc_validFrom:HF,sch_desc_validFromTo:VF,sch_desc_validTo:ZF,sch_every:XF,sch_exactTime:KF,sch_from:qF,sch_fromTo:eG,sch_intervalTime:tG,sch_invert:sG,sch_no_one:iG,sch_on:rG,sch_period:oG,sch_periodDaily:nG,sch_periodDates:aG,sch_periodDay:MG,sch_periodEvery:cG,sch_periodEveryDay:uG,sch_periodEveryMonth:lG,sch_periodEveryWeek:NG,sch_periodEveryYear:LG,sch_periodHours:gG,sch_periodMinutes:jG,sch_periodMonth:yG,sch_periodMonthly:TG,sch_periodOnce:dG,sch_periodSpecificMonths:DG,sch_periodWeek:hG,sch_periodWeekdays:zG,sch_periodWeekend:wG,sch_periodWeekly:CG,sch_periodWorkdays:IG,sch_periodYear:pG,sch_periodYearly:AG,sch_specificTime:mG,sch_time:OG,sch_to:EG,sch_valid:fG,sch_validFrom:xG,sch_validTo:_G,sch_wholeDay:SG,sch_yearEveryMonth:kG},vG="Comportamiento",bG="Adjuntar",QG="Cancelar",UG="Categorías",$G="Comprobado",PG="Borrar",WG="Cerca",BG="Comercial",JG="Configurar",RG="Conectado",FG="Continuar",GG="Copiado",HG="Crear",VG="Cultivo",ZG="Delete",XG="Eliminar",KG="Desechar",qG="Desconectado",eH="Error",tH="Filtrar",sH="Viernes",iH="Latitud",rH="Cerrar sesión",oH="Longitud",nH="Mensaje",aH="Lunes",MH="Nombre",cH="Objetos",uH="Okay",lH="Producto",NH="Cambiar nombre/Mover/Copiar",LH="Repetir",gH="Reemplazar",jH="Raíz",yH="Sábado",TH="Salvar",dH="Seleccionado",DH="Estados",hH="Domingo",zH="Jueves",wH="Marca de tiempo",CH="Martes",IH="Actualizar",pH="Válida hasta",AH="Valor",mH="Versión",OH="Miércoles",EH="Anchura",fH="Sí",xH="diferente",_H="Todo el mundo puede leer el objeto",SH="Todos pueden leer el estado",kH="Todos pueden escribir objetos",YH="Todos pueden escribir el estado",vH="El grupo puede leer el objeto",bH="El grupo puede leer el estado",QH="El grupo puede escribir un objeto",UH="El grupo puede escribir el estado",$H="El propietario puede leer el objeto",PH="El propietario puede leer el estado",WH="El propietario puede escribir el objeto",BH="El propietario puede escribir el estado",JH="Botones",RH="Cambiaron desde",FH="cerrar",GH="Crear estado booleano",HH="Crear canal",VH="Crear dispositivo",ZH="Crear estado numérico",XH="Crear estado",KH="Crear estado de cadena",qH="d.",eV="Fr",tV="Mes",sV="Sa",iV="Su",rV="Th",oV="Tu",nV="Nosotros",aV="Modo experto",MV="FALSO",cV="Todos los archivos",uV="Audio",lV="Código/JSON",NV="Imágenes",LV="Texto",gV="Video",jV="Configuraciones",yV="sin",TV="Función",dV="ID",DV="Nombre",hV="Papel",zV="Habitación",wV="Tipo",CV="Configuraciones inválidas",IV="Ultimo cambio",pV="en la zona",AV="Abr",mV="Ago",OV="Dic",EV="Feb",fV="Ene",xV="Jul",_V="Jun",SV="Mai",kV="Mar",YV="Nov",vV="Oct",bV="Sep",QV="Abr",UV="Ago",$V="Dic",PV="Feb",WV="Ene",BV="Jul",JV="Jun",RV="Mai",FV="Mar",GV="Nov",HV="Oct",VV="Sep",ZV="ninguno",XV="Objeto cambiado por",KV="Objeto cambiado por última vez a las",qV="Configuraciones de otro adaptador %s",eZ="Código de calidad",tZ="repetir",sZ='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',iZ="Mostrar todo",rZ="Estado cambiado por",oZ="Objeto cambiado de",nZ="Marca de tiempo",aZ="Bandera reconocida",MZ="Comentario",cZ="Copie el valor del estado",uZ="Mantenga presionada la tecla Cltr/⌘ para abrir el enlace",lZ="Ajustes personalizados",NZ="Eliminar objeto",LZ="Editar objeto",gZ="Edite el valor del estado",jZ="Caduca en",yZ="Desde",TZ="Último cambio",dZ="Calidad",DZ="Sello de tiempo",hZ="Usuario",zZ="Valor",wZ="VERDADERO",CZ="Valor",IZ="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",pZ="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",AZ="CRON",mZ="Fecha",OZ="fechas",EZ="Día",fZ="Día de la semana",xZ="Cada",_Z="cada N días",SZ="cada enésimo día de la semana",kZ="cada N día de la semana",YZ="cada N horas",vZ="cada N minutos",bZ="cada N meses",QZ="cada N segundos",UZ="cada día",$Z="Cada día de la semana",PZ="Cada día de la semana",WZ="cada hora",BZ="cada minuto",JZ="cada mes",RZ="cada segundo",FZ="De",GZ="Horas",HZ="Intervalo",VZ="Intervalo entre",ZZ="CRON no válido",XZ="Minutos",KZ="meses",qZ="Una vez",eX="Período",tX="Segundos",sX="Sencillo",iX="Tiempo específico",rX="fechas especificas",oX="día(s) específico(s) de la semana",nX="día específico de semanas",aX="horas específicas",MX="minutos específicos",cX="meses específicos",uX="segundos específicos",lX="Hora",NX="A",LX="Mago",gX="todas",jX="Día astro",yX="Noche astro",TX="Amanecer",dX="Oscuridad",DX="hora dorada",hX="Fin de la hora dorada",zX="Nadir",wX="Amanecer náutico",CX="Anochecer náutico",IX="Noche",pX="Fin de la noche",AX="Mediodía solar",mX="amanecer",OX="Fin del amanecer",EX="Puesta de sol",fX="Puesta de sol",xX="a",_X="en %s",SX="cada día",kX="cada hora",YX="cada minuto",vX="cada mes",bX="cada %s días",QX="cada %s horas",UX="cada %s minutos",$X="cada %s meses",PX="cada %s semanas",WX="cada %s años",BX="cada semana",JX="todos los años",RX="de %s a %s",FX="Nunca",GX="en %s de %s",HX="en %s y %s de",VX="en cada fecha de",ZX="%s",XX="%s y %s",KX="en %s",qX="en %s y %s",eK="en los fines de semana",tK="en días laborables",sK="ya no se ejecutará más, porque el inicio está en el pasado",iK="en %s",rK="de %s",oK="Ejecutar desde hasta",nK="a %s",aK="cada",MK="Tiempo específico",cK="de",uK="De-a",lK="Tiempo de intervalo",NK="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",LK="ninguna",gK="en",jK="Período",yK="Diario",TK="fechas",dK="Día",DK="Cada",hK="Cada día",zK="Cada mes",wK="Cada semana",CK="Todos los años",IK="Horas",pK="Minutos",AK="mes",mK="Mensual",OK="Una vez",EK="Meses específicos",fK="Semana",xK="Días laborables",_K="Fin de semana",SK="Semanal",kK="Días laborables",YK="Año",vK="Anual",bK="Tiempo específico",QK="Hora",UK="a",$K="Válido",PK="de",WK="a",BK="Todo el dia",JK="cada mes",RK={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia",ra_Actions:vG,"ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:bG,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:QG,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:UG,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:$G,ra_Clear:PG,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:WG,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:BG,ra_Configure:JG,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:RG,ra_Continue:FG,ra_Copied:GG,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:HG,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:VG,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:ZG,ra_Delete:XG,"ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:KG,ra_Disconnected:qG,"ra_Do not ask for next 2 hours in this session":"No preguntes por las siguientes 2 horas en esta sesión.","ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit full path":"Editar ruta completa","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Introduzca el código de esa página aquí",ra_Error:eH,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:tH,"ra_Filter and Data Actions":"Acciones de filtrado y datos","ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:sH,"ra_Get %s access":"Obtener %s acceso","ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:iH,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Logout:rH,ra_Longitude:oH,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:nH,ra_Monday:aH,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:MH,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:cH,ra_Ok:uH,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please allow popups in your browser for this page!":"¡Permita ventanas emergentes en su navegador para esta página!","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Press ENTER Key to add new item":"Presione la tecla ENTER para agregar un nuevo elemento","ra_Private certificate":"certificado privado",ra_Product:lH,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Rename_Move_Copy:NH,"ra_Renew %s access":"Renovar el acceso a %s",ra_Repeat:LH,ra_Replace:gH,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:jH,ra_Saturday:yH,ra_Save:TH,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:dH,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sesión expirará en %s segundos. ¿Continuar?","ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:DH,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.","ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:hH,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:zH,ra_Timestamp:wH,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:CH,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:IH,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:pH,ra_Value:AH,ra_Version:mH,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:OH,ra_Width:EH,ra_Yes:fH,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto","ra_You can use * as wildcard":"Puedes utilizar * como comodín",ra___different__:xH,ra_aclEveryone_read_object:_H,ra_aclEveryone_read_state:SH,ra_aclEveryone_write_object:kH,ra_aclEveryone_write_state:YH,ra_aclGroup_read_object:vH,ra_aclGroup_read_state:bH,ra_aclGroup_write_object:QH,ra_aclGroup_write_state:UH,ra_aclOwner_read_object:$H,ra_aclOwner_read_state:PH,ra_aclOwner_write_object:WH,ra_aclOwner_write_state:BH,ra_buttons:JH,ra_changedFrom:RH,ra_close:FH,ra_create_boolean_state:GH,ra_create_channel:HH,ra_create_device:VH,ra_create_number_state:ZH,ra_create_state:XH,ra_create_string_state:KH,ra_daysShortText:qH,ra_dow_Fr:eV,ra_dow_Mo:tV,ra_dow_Sa:sV,ra_dow_Su:iV,ra_dow_Th:rV,ra_dow_Tu:oV,ra_dow_We:nV,ra_expertMode:aV,ra_false:MV,ra_fileType_all:cV,ra_fileType_audio:uV,ra_fileType_code:lV,ra_fileType_images:NV,ra_fileType_txt:LV,ra_fileType_video:gV,"ra_fileType_video,":"Video",ra_filter_customs:jV,ra_filter_customs_without:yV,ra_filter_func:TV,ra_filter_id:dV,ra_filter_name:DV,ra_filter_role:hV,ra_filter_room:zV,ra_filter_type:wV,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:CV,ra_lastChange:IV,ra_locally:pV,ra_month_Apr:AV,ra_month_Aug:mV,ra_month_Dec:OV,ra_month_Feb:EV,ra_month_Jan:fV,ra_month_Jul:xV,ra_month_Jun:_V,ra_month_Mai:SV,ra_month_Mar:kV,ra_month_Nov:YV,ra_month_Oct:vV,ra_month_Sep:bV,ra_months_Apr:QV,ra_months_Aug:UV,ra_months_Dec:$V,ra_months_Feb:PV,ra_months_Jan:WV,ra_months_Jul:BV,ra_months_Jun:JV,ra_months_Mai:RV,ra_months_Mar:FV,ra_months_Nov:GV,ra_months_Oct:HV,ra_months_Sep:VV,"ra_no confirm for 5 mins":"Sin confirmación durante 5 minutos",ra_none:ZV,ra_object_changed_by:XV,ra_object_changed_by_user:KV,ra_otherConfig:qV,ra_qualityCode:eZ,ra_repeat:tZ,ra_select_folder_hint:sZ,ra_show_all:iZ,ra_state_changed_by:rZ,ra_state_changed_from:oZ,ra_timestamp:nZ,ra_tooltip_ack:aZ,ra_tooltip_comment:MZ,ra_tooltip_copyState:cZ,ra_tooltip_ctrlForLink:uZ,ra_tooltip_customConfig:lZ,ra_tooltip_deleteObject:NZ,ra_tooltip_editObject:LZ,ra_tooltip_editState:gZ,ra_tooltip_expire:jZ,ra_tooltip_from:yZ,ra_tooltip_lc:TZ,ra_tooltip_quality:dZ,ra_tooltip_ts:DZ,ra_tooltip_user:hZ,ra_tooltip_value:zZ,ra_true:wZ,"ra_use seconds":"usar segundos",ra_val:CZ,"ra_via internet":"vía Internet",ra_warning_every_minute:IZ,ra_warning_every_second:pZ,sc_cron:AZ,sc_date:mZ,sc_dates:OZ,sc_dow:EZ,sc_dows:fZ,sc_every:xZ,sc_everyN_dates:_Z,sc_everyN_dow:SZ,sc_everyN_dows:kZ,sc_everyN_hours:YZ,sc_everyN_minutes:vZ,sc_everyN_months:bZ,sc_everyN_seconds:QZ,sc_every_dates:UZ,sc_every_dow:$Z,sc_every_dows:PZ,sc_every_hours:WZ,sc_every_minutes:BZ,sc_every_months:JZ,sc_every_seconds:RZ,sc_from:FZ,sc_hours:GZ,sc_interval:HZ,sc_intervalBetween:VZ,sc_invalid_cron:ZZ,sc_minutes:XZ,sc_months:KZ,sc_once:qZ,sc_period:eX,sc_seconds:tX,sc_simple:sX,sc_specific:iX,sc_specific_dates:rX,sc_specific_dow:oX,sc_specific_dows:nX,sc_specific_hours:aX,sc_specific_minutes:MX,sc_specific_months:cX,sc_specific_seconds:uX,sc_time:lX,sc_to:NX,sc_wizard:LX,sch_all:gX,sch_astroDay:jX,sch_astroNight:yX,sch_astro_dawn:TX,sch_astro_dusk:dX,sch_astro_goldenHour:DX,sch_astro_goldenHourEnd:hX,sch_astro_nadir:zX,sch_astro_nauticalDawn:wX,sch_astro_nauticalDusk:CX,sch_astro_night:IX,sch_astro_nightEnd:pX,sch_astro_solarNoon:AX,sch_astro_sunrise:mX,sch_astro_sunriseEnd:OX,sch_astro_sunset:EX,sch_astro_sunsetStart:fX,sch_at:xX,sch_desc_atTime:_X,sch_desc_everyDay:SX,sch_desc_everyHour:kX,sch_desc_everyMinute:YX,sch_desc_everyMonth:vX,sch_desc_everyNDay:bX,sch_desc_everyNHours:QX,sch_desc_everyNMinutes:UX,sch_desc_everyNMonths:$X,sch_desc_everyNWeeks:PX,sch_desc_everyNYears:WX,sch_desc_everyWeek:BX,sch_desc_everyYear:JX,sch_desc_intervalFromTo:RX,sch_desc_never:FX,sch_desc_onDate:GX,sch_desc_onDates:HX,sch_desc_onEveryDate:VX,sch_desc_onMonth:ZX,sch_desc_onMonths:XX,sch_desc_onWeekday:KX,sch_desc_onWeekdays:qX,sch_desc_onWeekends:eK,sch_desc_onWorkdays:tK,sch_desc_onceInPast:sK,sch_desc_once_on:iK,sch_desc_validFrom:rK,sch_desc_validFromTo:oK,sch_desc_validTo:nK,sch_every:aK,sch_exactTime:MK,sch_from:cK,sch_fromTo:uK,sch_intervalTime:lK,sch_invert:NK,sch_no_one:LK,sch_on:gK,sch_period:jK,sch_periodDaily:yK,sch_periodDates:TK,sch_periodDay:dK,sch_periodEvery:DK,sch_periodEveryDay:hK,sch_periodEveryMonth:zK,sch_periodEveryWeek:wK,sch_periodEveryYear:CK,sch_periodHours:IK,sch_periodMinutes:pK,sch_periodMonth:AK,sch_periodMonthly:mK,sch_periodOnce:OK,sch_periodSpecificMonths:EK,sch_periodWeek:fK,sch_periodWeekdays:xK,sch_periodWeekend:_K,sch_periodWeekly:SK,sch_periodWorkdays:kK,sch_periodYear:YK,sch_periodYearly:vK,sch_specificTime:bK,sch_time:QK,sch_to:UK,sch_valid:$K,sch_validFrom:PK,sch_validTo:WK,sch_wholeDay:BK,sch_yearEveryMonth:JK},FK="Akcje",GK="Dodać",HK="Anuluj",VK="Kategorie",ZK="Sprawdzony",XK="Kasować",KK="Blisko",qK="Handlowy",eq="Konfiguruj",tq="Połączony",sq="Kontynuować",iq="Skopiowano",rq="Stwórz",oq="Przyciąć",nq="Delete",aq="Usunąć",Mq="Wyrzucać",cq="Niepowiązany",uq="Błąd",lq="Filtr",Nq="Piątek",Lq="Szerokość",gq="Wyloguj",jq="Długość geograficzna",yq="Wiadomość",Tq="Poniedziałek",dq="Nazwa",Dq="Obiekty",hq="Dobrze",zq="Produkt",wq="Zmień nazwę/Przenieś/Kopiuj",Cq="Powtarzać",Iq="Zastępować",pq="Korzeń",Aq="Sobota",mq="Zapisać",Oq="Wybrany",Eq="Stany",fq="Niedziela",xq="Czwartek",_q="Znak czasu",Sq="Wtorek",kq="Aktualizacja",Yq="Obowiązuje do",vq="Wartość",bq="Wersja",Qq="Środa",Uq="Szerokość",$q="Tak",Pq="różne",Wq="Każdy może czytać obiekt",Bq="Każdy może czytać stan",Jq="Każdy może pisać przedmiot",Rq="Każdy może pisać stan",Fq="Grupa może odczytać obiekt",Gq="Grupa może odczytać stan",Hq="Grupa może pisać obiekt",Vq="Grupa może pisać stan",Zq="Właściciel może czytać obiekt",Xq="Właściciel może odczytać stan",Kq="Właściciel może napisać obiekt",qq="Właściciel może pisać stan",eee="guziki",tee="Zmieniony z",see="blisko",iee="Utwórz stan logiczny",ree="Utwórz kanał",oee="Utwórz urządzenie",nee="Utwórz stan liczbowy",aee="Utwórz stan",Mee="Utwórz stan ciągu",cee="d.",uee="Ks",lee="Mo",Nee="Sa",Lee="Su",gee="Th",jee="Tu",yee="My",Tee="Tryb ekspercki",dee="FAŁSZ",Dee="Wszystkie pliki",hee="Audio",zee="Kod/JSON",wee="Obrazy",Cee="Tekst",Iee="Wideo",pee="Ustawienia",Aee="bez",mee="Funkcjonować",Oee="ID",Eee="Imię",fee="Rola",xee="Sala",_ee="Rodzaj",See="Nieprawidłowe ustawienia",kee="Ostatnia zmiana",Yee="lokalnie",vee="kwiecień",bee="sierpień",Qee="grudzień",Uee="luty",$ee="styczeń",Pee="lipiec",Wee="czerwiec",Bee="Mai",Jee="Zniszczyć",Ree="listopad",Fee="październik",Gee="wrzesień",Hee="kwiecień",Vee="sierpień",Zee="grudzień",Xee="luty",Kee="styczeń",qee="lipiec",ete="czerwiec",tte="Mai",ste="Zniszczyć",ite="listopad",rte="październik",ote="wrzesień",nte="Żaden",ate="Obiekt zmieniony przez",Mte="Obiekt ostatnio zmieniony o godz",cte="Ustawienia z innego adaptera %s",ute="Kod jakości",lte="powtarzać",Nte="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",Lte="Pokaż wszystko",gte="Stan zmieniony przez",jte="Obiekt zmieniony z",yte="Znak czasu",Tte="Potwierdzon",dte="Komentarz",Dte="Skopiuj wartość stanu",hte="Przytrzymaj klawisz CTRL/⌘, aby otworzyć link",zte="Własne ustawienia",wte="Usuń obiekt",Cte="Edytuj obiekt",Ite="Edytuj wartość stanu",pte="Wygasa za",Ate="Z",mte="Ostatnia zmiana",Ote="Jakość",Ete="Znak czasu",fte="Użytkownik",xte="Wartość",_te="PRAWDA",Ste="Wartość",kte="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",Yte="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",vte="CRON",bte="Data",Qte="Daktyle",Ute="Dzień",$te="Dzień tygodnia",Pte="Każdy",Wte="co N dni",Bte="w każdy N-ty dzień tygodnia",Jte="co N dnia tygodnia",Rte="co N godzin",Fte="co N minut",Gte="co N miesięcy",Hte="co N sekund",Vte="codziennie",Zte="każdy dzień tygodnia",Xte="każdy dzień tygodnia",Kte="co godzinę",qte="każda minuta",ese="każdego miesiąca",tse="każda sekunda",sse="Od",ise="godziny",rse="Interwał",ose="Interwał między",nse="Nieprawidłowy CRON",ase="Minuty",Mse="miesięcy",cse="Pewnego razu",use="Kropka",lse="sekundy",Nse="Prosty",Lse="Określony czas",gse="konkretne daty",jse="określone dni tygodnia",yse="określony dzień tygodni",Tse="określone godziny",dse="określone minuty",Dse="określone miesiące",hse="określone sekundy",zse="Czas",wse="Do",Cse="Czarodziej",Ise="wszystko",pse="Dzień Astro",Ase="Noc Astro",mse="Świt",Ose="Zmierzch",Ese="złota godzina",fse="Koniec złotej godziny",xse="Nadir",_se="Morski świt",Sse="Morski zmierzch",kse="Noc",Yse="Koniec nocy",vse="Południe słoneczne",bse="wschód słońca",Qse="Koniec wschodu słońca",Use="Zachód słońca",$se="Początek zachodu słońca",Pse="w",Wse="na %s",Bse="codziennie",Jse="co godzinę",Rse="każda minuta",Fse="każdego miesiąca",Gse="każdego dnia %s",Hse="co %s godzin",Vse="co %s minut",Zse="co %s miesięcy",Xse="co %s tygodni",Kse="co %s lat",qse="co tydzień",eie="każdego roku",tie="od %s do %s",sie="nigdy",iie="na %s z %s",rie="na %s i %s z",oie="w każdą datę",nie="%s",aie="%s i %s",Mie="na %s",cie="na %s i %s",uie="w weekendy",lie="w dni robocze",Nie="nie będzie już wykonywany, ponieważ start jest w przeszłości",Lie="na %s",gie="z %s",jie="Wykonaj od do",yie="do %s",Tie="każdy",die="Określony czas",Die="od",hie="Od-do",zie="Czas przerwy",wie="odwracać",Cie="Żaden",Iie="na",pie="Kropka",Aie="Codziennie",mie="Daktyle",Oie="Dzień",Eie="Każdy",fie="Codziennie",xie="Każdego miesiąca",_ie="Co tydzień",Sie="Każdego roku",kie="godziny",Yie="Minuty",vie="miesiąc",bie="Miesięczny",Qie="Pewnego razu",Uie="Określone miesiące",$ie="Tydzień",Pie="Dni powszednie",Wie="Weekend",Bie="Co tydzień",Jie="Dni robocze",Rie="Rok",Fie="Rocznie",Gie="Określony czas",Hie="Czas",Vie="do",Zie="Ważny",Xie="od",Kie="do",qie="Cały dzień",ere="każdego miesiąca",tre={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję",ra_Actions:FK,"ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:GK,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:HK,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:VK,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:ZK,ra_Clear:XK,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:KK,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:qK,ra_Configure:eq,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:tq,ra_Continue:sq,ra_Copied:iq,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:rq,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:oq,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:nq,ra_Delete:aq,"ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:Mq,ra_Disconnected:cq,"ra_Do not ask for next 2 hours in this session":"Nie proś o kolejne 2 godziny w tej sesji","ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit full path":"Edytuj pełną ścieżkę","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość","ra_Enter the code from that page here":"Wpisz kod z tej strony tutaj",ra_Error:uq,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:lq,"ra_Filter and Data Actions":"Akcje filtrów i danych","ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:Nq,"ra_Get %s access":"Uzyskaj dostęp %s","ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:Lq,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Logout:gq,ra_Longitude:jq,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:yq,ra_Monday:Tq,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:dq,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:Dq,ra_Ok:hq,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please allow popups in your browser for this page!":"Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Press ENTER Key to add new item":"Naciśnij klawisz ENTER, aby dodać nowy element","ra_Private certificate":"Prywatny certyfikat",ra_Product:zq,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Rename_Move_Copy:wq,"ra_Renew %s access":"Odnów dostęp %s",ra_Repeat:Cq,ra_Replace:Iq,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:pq,ra_Saturday:Aq,ra_Save:mq,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:Oq,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Session will expire in %s seconds. Continue?":"Sesja wygaśnie za %s sekund. Kontynuować?","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:Eq,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.","ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:fq,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:xq,ra_Timestamp:_q,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:Sq,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:kq,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:Yq,ra_Value:vq,ra_Version:bq,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:Qq,ra_Width:Uq,ra_Yes:$q,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst","ra_You can use * as wildcard":"Możesz użyć * jako symbolu wieloznacznego",ra___different__:Pq,ra_aclEveryone_read_object:Wq,ra_aclEveryone_read_state:Bq,ra_aclEveryone_write_object:Jq,ra_aclEveryone_write_state:Rq,ra_aclGroup_read_object:Fq,ra_aclGroup_read_state:Gq,ra_aclGroup_write_object:Hq,ra_aclGroup_write_state:Vq,ra_aclOwner_read_object:Zq,ra_aclOwner_read_state:Xq,ra_aclOwner_write_object:Kq,ra_aclOwner_write_state:qq,ra_buttons:eee,ra_changedFrom:tee,ra_close:see,ra_create_boolean_state:iee,ra_create_channel:ree,ra_create_device:oee,ra_create_number_state:nee,ra_create_state:aee,ra_create_string_state:Mee,ra_daysShortText:cee,ra_dow_Fr:uee,ra_dow_Mo:lee,ra_dow_Sa:Nee,ra_dow_Su:Lee,ra_dow_Th:gee,ra_dow_Tu:jee,ra_dow_We:yee,ra_expertMode:Tee,ra_false:dee,ra_fileType_all:Dee,ra_fileType_audio:hee,ra_fileType_code:zee,ra_fileType_images:wee,ra_fileType_txt:Cee,ra_fileType_video:Iee,"ra_fileType_video,":"Wideo",ra_filter_customs:pee,ra_filter_customs_without:Aee,ra_filter_func:mee,ra_filter_id:Oee,ra_filter_name:Eee,ra_filter_role:fee,ra_filter_room:xee,ra_filter_type:_ee,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:See,ra_lastChange:kee,ra_locally:Yee,ra_month_Apr:vee,ra_month_Aug:bee,ra_month_Dec:Qee,ra_month_Feb:Uee,ra_month_Jan:$ee,ra_month_Jul:Pee,ra_month_Jun:Wee,ra_month_Mai:Bee,ra_month_Mar:Jee,ra_month_Nov:Ree,ra_month_Oct:Fee,ra_month_Sep:Gee,ra_months_Apr:Hee,ra_months_Aug:Vee,ra_months_Dec:Zee,ra_months_Feb:Xee,ra_months_Jan:Kee,ra_months_Jul:qee,ra_months_Jun:ete,ra_months_Mai:tte,ra_months_Mar:ste,ra_months_Nov:ite,ra_months_Oct:rte,ra_months_Sep:ote,"ra_no confirm for 5 mins":"brak potwierdzenia przez 5 minut",ra_none:nte,ra_object_changed_by:ate,ra_object_changed_by_user:Mte,ra_otherConfig:cte,ra_qualityCode:ute,ra_repeat:lte,ra_select_folder_hint:Nte,ra_show_all:Lte,ra_state_changed_by:gte,ra_state_changed_from:jte,ra_timestamp:yte,ra_tooltip_ack:Tte,ra_tooltip_comment:dte,ra_tooltip_copyState:Dte,ra_tooltip_ctrlForLink:hte,ra_tooltip_customConfig:zte,ra_tooltip_deleteObject:wte,ra_tooltip_editObject:Cte,ra_tooltip_editState:Ite,ra_tooltip_expire:pte,ra_tooltip_from:Ate,ra_tooltip_lc:mte,ra_tooltip_quality:Ote,ra_tooltip_ts:Ete,ra_tooltip_user:fte,ra_tooltip_value:xte,ra_true:_te,"ra_use seconds":"użyj sekund",ra_val:Ste,"ra_via internet":"przez internet",ra_warning_every_minute:kte,ra_warning_every_second:Yte,sc_cron:vte,sc_date:bte,sc_dates:Qte,sc_dow:Ute,sc_dows:$te,sc_every:Pte,sc_everyN_dates:Wte,sc_everyN_dow:Bte,sc_everyN_dows:Jte,sc_everyN_hours:Rte,sc_everyN_minutes:Fte,sc_everyN_months:Gte,sc_everyN_seconds:Hte,sc_every_dates:Vte,sc_every_dow:Zte,sc_every_dows:Xte,sc_every_hours:Kte,sc_every_minutes:qte,sc_every_months:ese,sc_every_seconds:tse,sc_from:sse,sc_hours:ise,sc_interval:rse,sc_intervalBetween:ose,sc_invalid_cron:nse,sc_minutes:ase,sc_months:Mse,sc_once:cse,sc_period:use,sc_seconds:lse,sc_simple:Nse,sc_specific:Lse,sc_specific_dates:gse,sc_specific_dow:jse,sc_specific_dows:yse,sc_specific_hours:Tse,sc_specific_minutes:dse,sc_specific_months:Dse,sc_specific_seconds:hse,sc_time:zse,sc_to:wse,sc_wizard:Cse,sch_all:Ise,sch_astroDay:pse,sch_astroNight:Ase,sch_astro_dawn:mse,sch_astro_dusk:Ose,sch_astro_goldenHour:Ese,sch_astro_goldenHourEnd:fse,sch_astro_nadir:xse,sch_astro_nauticalDawn:_se,sch_astro_nauticalDusk:Sse,sch_astro_night:kse,sch_astro_nightEnd:Yse,sch_astro_solarNoon:vse,sch_astro_sunrise:bse,sch_astro_sunriseEnd:Qse,sch_astro_sunset:Use,sch_astro_sunsetStart:$se,sch_at:Pse,sch_desc_atTime:Wse,sch_desc_everyDay:Bse,sch_desc_everyHour:Jse,sch_desc_everyMinute:Rse,sch_desc_everyMonth:Fse,sch_desc_everyNDay:Gse,sch_desc_everyNHours:Hse,sch_desc_everyNMinutes:Vse,sch_desc_everyNMonths:Zse,sch_desc_everyNWeeks:Xse,sch_desc_everyNYears:Kse,sch_desc_everyWeek:qse,sch_desc_everyYear:eie,sch_desc_intervalFromTo:tie,sch_desc_never:sie,sch_desc_onDate:iie,sch_desc_onDates:rie,sch_desc_onEveryDate:oie,sch_desc_onMonth:nie,sch_desc_onMonths:aie,sch_desc_onWeekday:Mie,sch_desc_onWeekdays:cie,sch_desc_onWeekends:uie,sch_desc_onWorkdays:lie,sch_desc_onceInPast:Nie,sch_desc_once_on:Lie,sch_desc_validFrom:gie,sch_desc_validFromTo:jie,sch_desc_validTo:yie,sch_every:Tie,sch_exactTime:die,sch_from:Die,sch_fromTo:hie,sch_intervalTime:zie,sch_invert:wie,sch_no_one:Cie,sch_on:Iie,sch_period:pie,sch_periodDaily:Aie,sch_periodDates:mie,sch_periodDay:Oie,sch_periodEvery:Eie,sch_periodEveryDay:fie,sch_periodEveryMonth:xie,sch_periodEveryWeek:_ie,sch_periodEveryYear:Sie,sch_periodHours:kie,sch_periodMinutes:Yie,sch_periodMonth:vie,sch_periodMonthly:bie,sch_periodOnce:Qie,sch_periodSpecificMonths:Uie,sch_periodWeek:$ie,sch_periodWeekdays:Pie,sch_periodWeekend:Wie,sch_periodWeekly:Bie,sch_periodWorkdays:Jie,sch_periodYear:Rie,sch_periodYearly:Fie,sch_specificTime:Gie,sch_time:Hie,sch_to:Vie,sch_valid:Zie,sch_validFrom:Xie,sch_validTo:Kie,sch_wholeDay:qie,sch_yearEveryMonth:ere},sre="Дії",ire="Додайте",rre="Скасувати",ore="Категорії",nre="Перевірено",are="Видалити",Mre="Закрити",cre="Комерційний",ure="Налаштувати",lre="Підключено",Nre="Продовжити",Lre="Скопійовано",gre="Створити",jre="Урожай",yre="Delete",Tre="Видалити",dre="Відкинути",Dre="Відключено",hre="Помилка",zre="фільтр",wre="П'ятниця",Cre="Широта",Ire="Вийти",pre="Довгота",Are="повідомлення",mre="понеділок",Ore="Ім'я",Ere="Об'єкти",fre="В порядку",xre="Продукт",_re="Перейменувати/Перемістити/Копіювати",Sre="Повторіть",kre="Замінити",Yre="Корінь",vre="Субота",bre="зберегти",Qre="Вибране",Ure="держави",$re="неділя",Pre="четвер",Wre="Мітка часу",Bre="вівторок",Jre="оновлення",Rre="Дійсний до",Fre="Значення",Gre="Версія",Hre="Середа",Vre="Ширина",Zre="Так",Xre="інший",Kre="Кожен може читати об'єкт",qre="Кожен може читати стан",eoe="Кожен може написати об'єкт",toe="Кожен може написати стан",soe="Група може читати об'єкт",ioe="Група може читати стан",roe="Група може писати об'єкт",ooe="Група може писати стан",noe="Власник може читати об'єкт",aoe="Власник може читати стан",Moe="Власник може написати об'єкт",coe="Власник може написати стан",uoe="кнопки",loe="Змінено з",Noe="закрити",Loe="Створіть логічний стан",goe="Створити канал",joe="Створити пристрій",yoe="Створити номерний стан",Toe="Створити состояние",doe="Створити рядковий стан",Doe="днів",hoe="О",zoe="пн",woe="Sa",Coe="Нд",Ioe="чт",poe="вт",Aoe="ми",moe="Експертний режим",Ooe="НЕПРАВДА",Eoe="Всі файли",foe="Аудіо",xoe="Код/JSON",_oe="Зображення",Soe="текст",koe="відео",Yoe="Налаштування",voe="без",boe="функція",Qoe="ID",Uoe="Ім'я",$oe="Роль",Poe="Кімната",Woe="Тип",Boe="Недійсні налаштування",Joe="Остання зміна",Roe="локально",Foe="квіт",Goe="серп",Hoe="груд",Voe="лютий",Zoe="січня",Xoe="лип",Koe="черв",qoe="травень",ene="березень",tne="Листопад",sne="жовт",ine="вер",rne="квіт",one="серп",nne="груд",ane="лютий",Mne="січня",cne="лип",une="черв",lne="травень",Nne="березень",Lne="Листопад",gne="жовт",jne="вер",yne="немає",Tne="Об'єкт змінено",dne="Об'єкт востаннє змінено о",Dne="Налаштування з іншого адаптера %s",hne="Код якості",zne="повторити",wne="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",Cne="Показати все",Ine="Стан змінено на",pne="Об'єкт змінено з",Ane="Мітка часу",mne="Визнано",One="коментар",Ene="Скопіюйте значення стану",fne="Утримуйте клавішу Cltr/⌘, щоб відкрити посилання",xne="Спеціальні налаштування",_ne="Видалити об'єкт",Sne="Редагувати об'єкт",kne="Відредагуйте значення стану",Yne="Термін дії закінчується через",vne="Від",bne="Востаннє змінено",Qne="якість",Une="Позначка часу",$ne="Користувач",Pne="Значення",Wne="ПРАВДА",Bne="Значення",Jne="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",Rne="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Fne="CRON",Gne="Дата",Hne="дати",Vne="День",Zne="День тижня",Xne="кожен",Kne="кожні N днів",qne="кожен N-й день тижня",eae="кожні N днів тижня",tae="кожні N годин",sae="кожні N хвилин",iae="кожні N місяців",rae="кожні N секунд",oae="кожен день",nae="кожен день тижня",aae="кожен день тижня",Mae="щогодини",cae="кожну хвилину",uae="щомісяця",lae="кожна секунда",Nae="Від",Lae="години",gae="Інтервал",jae="Інтервал між",yae="Недійсний CRON",Tae="хвилин",dae="місяців",Dae="Один раз",hae="Крапка",zae="секунд",wae="просто",Cae="Конкретний час",Iae="конкретні дати",pae="конкретний день (дні) тижня",Aae="конкретний день тижня",mae="конкретні години",Oae="конкретні хвилини",Eae="конкретні місяці",fae="конкретні секунди",xae="час",_ae="до",Sae="майстер",kae="все",Yae="Астродень",vae="Астро ніч",bae="Світанок",Qae="Сутінки",Uae="Золота година",$ae="Кінець золотої години",Pae="Надір",Wae="Морський світанок",Bae="Морські сутінки",Jae="ніч",Rae="Кінець ночі",Fae="Сонячний полудень",Gae="Схід сонця",Hae="Кінець сходу сонця",Vae="Захід сонця",Zae="Початок заходу сонця",Xae="в",Kae="в %s",qae="кожен день",eMe="щогодини",tMe="кожну хвилину",sMe="щомісяця",iMe="кожен %s день",rMe="кожні %s годин",oMe="кожні %s хвилин",nMe="кожні %s місяців",aMe="кожні %s тижнів",MMe="кожні %s років",cMe="щотижня",uMe="щороку",lMe="від %s до %s",NMe="ніколи",LMe="на %s з %s",gMe="на %s і %s з",jMe="на кожну дату",yMe="%s",TMe="%s і %s",dMe="на %s",DMe="на %s і %s",hMe="на вихідних",zMe="в робочі дні",wMe="більше не виконуватиметься, оскільки запуск у минулому",CMe="на %s",IMe="від %s",pMe="Виконати від до",AMe="до %s",mMe="кожен",OMe="Конкретний час",EMe="від",fMe="Від до",xMe="Час інтервалу",_Me="інвертувати",SMe="немає",kMe="на",YMe="Крапка",vMe="Щодня",bMe="дати",QMe="День",UMe="кожен",$Me="Кожен день",PMe="Щомісяця",WMe="Щотижня",BMe="Щороку",JMe="години",RMe="хвилин",FMe="місяць",GMe="Щомісяця",HMe="Один раз",VMe="Конкретні місяці",ZMe="тиждень",XMe="будні",KMe="Вихідні",qMe="Щотижня",ece="робочі дні",tce="рік",sce="щорічно",ice="Конкретний час",rce="час",oce="до",nce="Дійсний",ace="від",Mce="до",cce="Цілий день",uce="щомісяця",lce={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію",ra_Actions:sre,"ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:ire,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:rre,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:ore,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:nre,ra_Clear:are,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:Mre,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:cre,ra_Configure:ure,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:lre,ra_Continue:Nre,ra_Copied:Lre,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:gre,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:jre,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:yre,ra_Delete:Tre,"ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:dre,ra_Disconnected:Dre,"ra_Do not ask for next 2 hours in this session":"Не запитуйте про наступні 2 години цього сеансу","ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit full path":"Редагувати повний шлях","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення","ra_Enter the code from that page here":"Введіть тут код з цієї сторінки",ra_Error:hre,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:zre,"ra_Filter and Data Actions":"Фільтр і дії з даними","ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:wre,"ra_Get %s access":"Отримайте доступ %s","ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:Cre,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Logout:Ire,ra_Longitude:pre,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:Are,ra_Monday:mre,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:Ore,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:Ere,ra_Ok:fre,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please allow popups in your browser for this page!":"Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Press ENTER Key to add new item":"Натисніть клавішу ENTER, щоб додати новий елемент","ra_Private certificate":"Приватний сертифікат",ra_Product:xre,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Rename_Move_Copy:_re,"ra_Renew %s access":"Поновити доступ %s",ra_Repeat:Sre,ra_Replace:kre,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:Yre,ra_Saturday:vre,ra_Save:bre,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:Qre,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Session will expire in %s seconds. Continue?":"Сеанс закінчиться через %s секунд. Продовжити?","ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:Ure,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.","ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:$re,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:Pre,ra_Timestamp:Wre,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:Bre,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:Jre,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:Rre,ra_Value:Fre,ra_Version:Gre,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:Hre,ra_Width:Vre,ra_Yes:Zre,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст","ra_You can use * as wildcard":"Ви можете використовувати * як символ підстановки",ra___different__:Xre,ra_aclEveryone_read_object:Kre,ra_aclEveryone_read_state:qre,ra_aclEveryone_write_object:eoe,ra_aclEveryone_write_state:toe,ra_aclGroup_read_object:soe,ra_aclGroup_read_state:ioe,ra_aclGroup_write_object:roe,ra_aclGroup_write_state:ooe,ra_aclOwner_read_object:noe,ra_aclOwner_read_state:aoe,ra_aclOwner_write_object:Moe,ra_aclOwner_write_state:coe,ra_buttons:uoe,ra_changedFrom:loe,ra_close:Noe,ra_create_boolean_state:Loe,ra_create_channel:goe,ra_create_device:joe,ra_create_number_state:yoe,ra_create_state:Toe,ra_create_string_state:doe,ra_daysShortText:Doe,ra_dow_Fr:hoe,ra_dow_Mo:zoe,ra_dow_Sa:woe,ra_dow_Su:Coe,ra_dow_Th:Ioe,ra_dow_Tu:poe,ra_dow_We:Aoe,ra_expertMode:moe,ra_false:Ooe,ra_fileType_all:Eoe,ra_fileType_audio:foe,ra_fileType_code:xoe,ra_fileType_images:_oe,ra_fileType_txt:Soe,ra_fileType_video:koe,"ra_fileType_video,":"відео",ra_filter_customs:Yoe,ra_filter_customs_without:voe,ra_filter_func:boe,ra_filter_id:Qoe,ra_filter_name:Uoe,ra_filter_role:$oe,ra_filter_room:Poe,ra_filter_type:Woe,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:Boe,ra_lastChange:Joe,ra_locally:Roe,ra_month_Apr:Foe,ra_month_Aug:Goe,ra_month_Dec:Hoe,ra_month_Feb:Voe,ra_month_Jan:Zoe,ra_month_Jul:Xoe,ra_month_Jun:Koe,ra_month_Mai:qoe,ra_month_Mar:ene,ra_month_Nov:tne,ra_month_Oct:sne,ra_month_Sep:ine,ra_months_Apr:rne,ra_months_Aug:one,ra_months_Dec:nne,ra_months_Feb:ane,ra_months_Jan:Mne,ra_months_Jul:cne,ra_months_Jun:une,ra_months_Mai:lne,ra_months_Mar:Nne,ra_months_Nov:Lne,ra_months_Oct:gne,ra_months_Sep:jne,"ra_no confirm for 5 mins":"без підтвердження протягом 5 хв",ra_none:yne,ra_object_changed_by:Tne,ra_object_changed_by_user:dne,ra_otherConfig:Dne,ra_qualityCode:hne,ra_repeat:zne,ra_select_folder_hint:wne,ra_show_all:Cne,ra_state_changed_by:Ine,ra_state_changed_from:pne,ra_timestamp:Ane,ra_tooltip_ack:mne,ra_tooltip_comment:One,ra_tooltip_copyState:Ene,ra_tooltip_ctrlForLink:fne,ra_tooltip_customConfig:xne,ra_tooltip_deleteObject:_ne,ra_tooltip_editObject:Sne,ra_tooltip_editState:kne,ra_tooltip_expire:Yne,ra_tooltip_from:vne,ra_tooltip_lc:bne,ra_tooltip_quality:Qne,ra_tooltip_ts:Une,ra_tooltip_user:$ne,ra_tooltip_value:Pne,ra_true:Wne,"ra_use seconds":"використовуйте секунди",ra_val:Bne,"ra_via internet":"через інтернет",ra_warning_every_minute:Jne,ra_warning_every_second:Rne,sc_cron:Fne,sc_date:Gne,sc_dates:Hne,sc_dow:Vne,sc_dows:Zne,sc_every:Xne,sc_everyN_dates:Kne,sc_everyN_dow:qne,sc_everyN_dows:eae,sc_everyN_hours:tae,sc_everyN_minutes:sae,sc_everyN_months:iae,sc_everyN_seconds:rae,sc_every_dates:oae,sc_every_dow:nae,sc_every_dows:aae,sc_every_hours:Mae,sc_every_minutes:cae,sc_every_months:uae,sc_every_seconds:lae,sc_from:Nae,sc_hours:Lae,sc_interval:gae,sc_intervalBetween:jae,sc_invalid_cron:yae,sc_minutes:Tae,sc_months:dae,sc_once:Dae,sc_period:hae,sc_seconds:zae,sc_simple:wae,sc_specific:Cae,sc_specific_dates:Iae,sc_specific_dow:pae,sc_specific_dows:Aae,sc_specific_hours:mae,sc_specific_minutes:Oae,sc_specific_months:Eae,sc_specific_seconds:fae,sc_time:xae,sc_to:_ae,sc_wizard:Sae,sch_all:kae,sch_astroDay:Yae,sch_astroNight:vae,sch_astro_dawn:bae,sch_astro_dusk:Qae,sch_astro_goldenHour:Uae,sch_astro_goldenHourEnd:$ae,sch_astro_nadir:Pae,sch_astro_nauticalDawn:Wae,sch_astro_nauticalDusk:Bae,sch_astro_night:Jae,sch_astro_nightEnd:Rae,sch_astro_solarNoon:Fae,sch_astro_sunrise:Gae,sch_astro_sunriseEnd:Hae,sch_astro_sunset:Vae,sch_astro_sunsetStart:Zae,sch_at:Xae,sch_desc_atTime:Kae,sch_desc_everyDay:qae,sch_desc_everyHour:eMe,sch_desc_everyMinute:tMe,sch_desc_everyMonth:sMe,sch_desc_everyNDay:iMe,sch_desc_everyNHours:rMe,sch_desc_everyNMinutes:oMe,sch_desc_everyNMonths:nMe,sch_desc_everyNWeeks:aMe,sch_desc_everyNYears:MMe,sch_desc_everyWeek:cMe,sch_desc_everyYear:uMe,sch_desc_intervalFromTo:lMe,sch_desc_never:NMe,sch_desc_onDate:LMe,sch_desc_onDates:gMe,sch_desc_onEveryDate:jMe,sch_desc_onMonth:yMe,sch_desc_onMonths:TMe,sch_desc_onWeekday:dMe,sch_desc_onWeekdays:DMe,sch_desc_onWeekends:hMe,sch_desc_onWorkdays:zMe,sch_desc_onceInPast:wMe,sch_desc_once_on:CMe,sch_desc_validFrom:IMe,sch_desc_validFromTo:pMe,sch_desc_validTo:AMe,sch_every:mMe,sch_exactTime:OMe,sch_from:EMe,sch_fromTo:fMe,sch_intervalTime:xMe,sch_invert:_Me,sch_no_one:SMe,sch_on:kMe,sch_period:YMe,sch_periodDaily:vMe,sch_periodDates:bMe,sch_periodDay:QMe,sch_periodEvery:UMe,sch_periodEveryDay:$Me,sch_periodEveryMonth:PMe,sch_periodEveryWeek:WMe,sch_periodEveryYear:BMe,sch_periodHours:JMe,sch_periodMinutes:RMe,sch_periodMonth:FMe,sch_periodMonthly:GMe,sch_periodOnce:HMe,sch_periodSpecificMonths:VMe,sch_periodWeek:ZMe,sch_periodWeekdays:XMe,sch_periodWeekend:KMe,sch_periodWeekly:qMe,sch_periodWorkdays:ece,sch_periodYear:tce,sch_periodYearly:sce,sch_specificTime:ice,sch_time:rce,sch_to:oce,sch_valid:nce,sch_validFrom:ace,sch_validTo:Mce,sch_wholeDay:cce,sch_yearEveryMonth:uce},Nce="操作",Lce="附加",gce="取消",jce="类别",yce="勾选",Tce="删除",dce="关",Dce="商业的",hce="配置",zce="连接的",wce="继续",Cce="复制的",Ice="创建",pce="庄稼",Ace="Delete",mce="删除",Oce="丢弃",Ece="断开连接",fce="错误",xce="筛选",_ce="星期五",Sce="纬度",kce="登出",Yce="经度",vce="信息",bce="周一",Qce="姓名",Uce="对象",$ce="好",Pce="产品",Wce="重命名/移动/复制",Bce="重复",Jce="代替",Rce="根",Fce="周六",Gce="保存",Hce="已选",Vce="状态",Zce="星期日",Xce="周四",Kce="时间戳记",qce="周二",eue="更新资料",tue="有效期至",sue="值",iue="版本",rue="周三",oue="宽度",nue="是的",aue="不同的",Mue="每个人都可以阅读对象",cue="每个人都可以阅读状态",uue="每个人都可以写对象",lue="每个人都可以写状态",Nue="组可以读取对象",Lue="群组可以读取状态",gue="组可以写对象",jue="组可以写状态",yue="所有者可以读取对象",Tue="所有者可以读取状态",due="所有者可以写对象",Due="所有者可以写状态",hue="纽扣",zue="更改为",wue="关闭",Cue="创建布尔状态",Iue="创建频道",pue="创建设备",Aue="创建号码状态",mue="创建状态",Oue="创建字符串状态",Eue="天",fue="r",xue="莫",_ue="萨",Sue="苏",kue="Th",Yue="Tu",vue="我们",bue="专家模式",Que="错误的",Uue="所有文件",$ue="声音的",Pue="代码/JSON",Wue="图片",Bue="文本",Jue="视频",Rue="设定值",Fue="没有",Gue="功能",Hue="ID",Vue="名称",Zue="角色",Xue="房间",Kue="类型",que="无效的设定",ele="最后一次变更",tle="本地",sle="4月",ile="八月",rle="十二月",ole="二月",nle="简",ale="七月",Mle="君",cle="迈",ule="三月",lle="十一月",Nle="十月",Lle="九月",gle="4月",jle="八月",yle="十二月",Tle="二月",dle="简",Dle="七月",hle="君",zle="迈",wle="三月",Cle="十一月",Ile="十月",ple="九月",Ale="没有任何",mle="物件变更者",Ole="对象上次更改时间为",Ele="来自其他适配器%s的设置",fle="质量代码",xle="重复",_le="要选择文件夹,只需按住“shift”键单击文件夹即可。",Sle="显示全部",kle="状态由",Yle="对象已从更改",vle="时间戳记",ble="致谢国旗",Qle="评论",Ule="复制状态值",$le="按住 Cltr/⌘ 键打开链接",Ple="自定义设置",Wle="删除物件",Ble="编辑物件",Jle="编辑状态值",Rle="有效期:",Fle="从",Gle="最后改变了",Hle="质量",Vle="时间戳",Zle="用户",Xle="值",Kle="真的",qle="值",eNe="警告:CRON 作业将在指定期间内每分钟运行一次!",tNe="警告:CRON 作业将在指定期间内每秒运行一次!",sNe="周期任务",iNe="日期",rNe="日",oNe="天",nNe="星期",aNe="每",MNe="每N天",cNe="每周的第 N 天",uNe="每周N天",lNe="每N小时一次",NNe="每N分钟",LNe="每N个月",gNe="每N秒",jNe="每天",yNe="一周的每一天",TNe="一周的每一天",dNe="每小时",DNe="每分钟",hNe="每月",zNe="每秒",wNe="从",CNe="小时",INe="间隔",pNe="间隔时间",ANe="无效的 CRON",mNe="分钟",ONe="月",ENe="一次",fNe="周期",xNe="秒",_Ne="简单模式",SNe="特定的时间",kNe="特定的日子",YNe="一周中的特定日子",vNe="特定的一周",bNe="特定的小时",QNe="特定的分钟",UNe="特定的月份",$Ne="特定的描述",PNe="时间",WNe="至",BNe="向导模式",JNe="全选",RNe="天文白天",FNe="天文夜晚",GNe="黎明",HNe="黄昏",VNe="黄金时段",ZNe="黄金时段结束",XNe="天底",KNe="航海黎明",qNe="航海黄昏",e0e="夜晚",t0e="夜晚结束",s0e="正午",i0e="日出",r0e="日出结束",o0e="日落",n0e="日落开始",a0e="在",M0e="的%s",c0e="每天",u0e="每小时",l0e="每分钟",N0e="每月",L0e="每%s天",g0e="每%s小时",j0e="每%s分钟",y0e="每%s月",T0e="每%s周",d0e="每%s年",D0e="每周",h0e="每年",z0e="从%s到%s",w0e="决不",C0e="在%s的%s上",I0e="在%s和%s上",p0e="在每天",A0e="%s",m0e="%s和%s",O0e="在%s上",E0e="在%s和%s上",f0e="在周末",x0e="在工作日",_0e="将不再执行,因为起始时间已经是过去的时间了。",S0e="在%s上",k0e="来自%s",Y0e="从执行到",v0e="到%s",b0e="每",Q0e="特定的时间",U0e="从",$0e="从到",P0e="间隔时间",W0e="倒置",B0e="取消全选",J0e="的",R0e="周期",F0e="每天",G0e="日期",H0e="天",V0e="每",Z0e="每天",X0e="每月",K0e="每周",q0e="每年",e4e="小时",t4e="分钟",s4e="月",i4e="每月一次",r4e="一次",o4e="特定的月份",n4e="周",a4e="工作日",M4e="周末",c4e="每周",u4e="工作日",l4e="年",N4e="每年",L4e="特定的时间",g4e="时间",j4e="至",y4e="生效",T4e="从",d4e="至",D4e="一整天",h4e="每月",z4e={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可",ra_Actions:Nce,"ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:Lce,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:gce,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:jce,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:yce,ra_Clear:Tce,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:dce,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Dce,ra_Configure:hce,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:zce,ra_Continue:wce,ra_Copied:Cce,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:Ice,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:pce,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:Ace,ra_Delete:mce,"ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:Oce,ra_Disconnected:Ece,"ra_Do not ask for next 2 hours in this session":"本次会话中不要询问接下来的 2 个小时","ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit full path":"编辑完整路径","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值","ra_Enter the code from that page here":"在此处输入该页面的代码",ra_Error:fce,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:xce,"ra_Filter and Data Actions":"过滤和数据操作","ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:_ce,"ra_Get %s access":"获取 %s 访问权限","ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_If the button above does not work, you can authorize manually this app by visiting this url":"如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:Sce,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Logout:kce,ra_Longitude:Yce,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:vce,ra_Monday:bce,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:Qce,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:Uce,ra_Ok:$ce,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please allow popups in your browser for this page!":"请允许浏览器弹出此页面!","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Press ENTER Key to add new item":"按 ENTER 键添加新项目","ra_Private certificate":"私有证书",ra_Product:Pce,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Rename_Move_Copy:Wce,"ra_Renew %s access":"续订 %s 访问权限",ra_Repeat:Bce,ra_Replace:Jce,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:Rce,ra_Saturday:Fce,ra_Save:Gce,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Hce,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Session will expire in %s seconds. Continue?":"会话将在 %s 秒后过期。是否继续?","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:Vce,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"授权成功。令牌有效期至 %s,并将自动续订。","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。","ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:Zce,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Xce,ra_Timestamp:Kce,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:qce,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:eue,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:tue,ra_Value:sue,ra_Version:iue,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:rue,ra_Width:oue,ra_Yes:nue,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目","ra_You can use * as wildcard":"您可以使用 * 作为通配符",ra___different__:aue,ra_aclEveryone_read_object:Mue,ra_aclEveryone_read_state:cue,ra_aclEveryone_write_object:uue,ra_aclEveryone_write_state:lue,ra_aclGroup_read_object:Nue,ra_aclGroup_read_state:Lue,ra_aclGroup_write_object:gue,ra_aclGroup_write_state:jue,ra_aclOwner_read_object:yue,ra_aclOwner_read_state:Tue,ra_aclOwner_write_object:due,ra_aclOwner_write_state:Due,ra_buttons:hue,ra_changedFrom:zue,ra_close:wue,ra_create_boolean_state:Cue,ra_create_channel:Iue,ra_create_device:pue,ra_create_number_state:Aue,ra_create_state:mue,ra_create_string_state:Oue,ra_daysShortText:Eue,ra_dow_Fr:fue,ra_dow_Mo:xue,ra_dow_Sa:_ue,ra_dow_Su:Sue,ra_dow_Th:kue,ra_dow_Tu:Yue,ra_dow_We:vue,ra_expertMode:bue,ra_false:Que,ra_fileType_all:Uue,ra_fileType_audio:$ue,ra_fileType_code:Pue,ra_fileType_images:Wue,ra_fileType_txt:Bue,ra_fileType_video:Jue,"ra_fileType_video,":"视频",ra_filter_customs:Rue,ra_filter_customs_without:Fue,ra_filter_func:Gue,ra_filter_id:Hue,ra_filter_name:Vue,ra_filter_role:Zue,ra_filter_room:Xue,ra_filter_type:Kue,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:que,ra_lastChange:ele,ra_locally:tle,ra_month_Apr:sle,ra_month_Aug:ile,ra_month_Dec:rle,ra_month_Feb:ole,ra_month_Jan:nle,ra_month_Jul:ale,ra_month_Jun:Mle,ra_month_Mai:cle,ra_month_Mar:ule,ra_month_Nov:lle,ra_month_Oct:Nle,ra_month_Sep:Lle,ra_months_Apr:gle,ra_months_Aug:jle,ra_months_Dec:yle,ra_months_Feb:Tle,ra_months_Jan:dle,ra_months_Jul:Dle,ra_months_Jun:hle,ra_months_Mai:zle,ra_months_Mar:wle,ra_months_Nov:Cle,ra_months_Oct:Ile,ra_months_Sep:ple,"ra_no confirm for 5 mins":"5分钟内无需确认",ra_none:Ale,ra_object_changed_by:mle,ra_object_changed_by_user:Ole,ra_otherConfig:Ele,ra_qualityCode:fle,ra_repeat:xle,ra_select_folder_hint:_le,ra_show_all:Sle,ra_state_changed_by:kle,ra_state_changed_from:Yle,ra_timestamp:vle,ra_tooltip_ack:ble,ra_tooltip_comment:Qle,ra_tooltip_copyState:Ule,ra_tooltip_ctrlForLink:$le,ra_tooltip_customConfig:Ple,ra_tooltip_deleteObject:Wle,ra_tooltip_editObject:Ble,ra_tooltip_editState:Jle,ra_tooltip_expire:Rle,ra_tooltip_from:Fle,ra_tooltip_lc:Gle,ra_tooltip_quality:Hle,ra_tooltip_ts:Vle,ra_tooltip_user:Zle,ra_tooltip_value:Xle,ra_true:Kle,"ra_use seconds":"用秒",ra_val:qle,"ra_via internet":"通过互联网",ra_warning_every_minute:eNe,ra_warning_every_second:tNe,sc_cron:sNe,sc_date:iNe,sc_dates:rNe,sc_dow:oNe,sc_dows:nNe,sc_every:aNe,sc_everyN_dates:MNe,sc_everyN_dow:cNe,sc_everyN_dows:uNe,sc_everyN_hours:lNe,sc_everyN_minutes:NNe,sc_everyN_months:LNe,sc_everyN_seconds:gNe,sc_every_dates:jNe,sc_every_dow:yNe,sc_every_dows:TNe,sc_every_hours:dNe,sc_every_minutes:DNe,sc_every_months:hNe,sc_every_seconds:zNe,sc_from:wNe,sc_hours:CNe,sc_interval:INe,sc_intervalBetween:pNe,sc_invalid_cron:ANe,sc_minutes:mNe,sc_months:ONe,sc_once:ENe,sc_period:fNe,sc_seconds:xNe,sc_simple:_Ne,sc_specific:SNe,sc_specific_dates:kNe,sc_specific_dow:YNe,sc_specific_dows:vNe,sc_specific_hours:bNe,sc_specific_minutes:QNe,sc_specific_months:UNe,sc_specific_seconds:$Ne,sc_time:PNe,sc_to:WNe,sc_wizard:BNe,sch_all:JNe,sch_astroDay:RNe,sch_astroNight:FNe,sch_astro_dawn:GNe,sch_astro_dusk:HNe,sch_astro_goldenHour:VNe,sch_astro_goldenHourEnd:ZNe,sch_astro_nadir:XNe,sch_astro_nauticalDawn:KNe,sch_astro_nauticalDusk:qNe,sch_astro_night:e0e,sch_astro_nightEnd:t0e,sch_astro_solarNoon:s0e,sch_astro_sunrise:i0e,sch_astro_sunriseEnd:r0e,sch_astro_sunset:o0e,sch_astro_sunsetStart:n0e,sch_at:a0e,sch_desc_atTime:M0e,sch_desc_everyDay:c0e,sch_desc_everyHour:u0e,sch_desc_everyMinute:l0e,sch_desc_everyMonth:N0e,sch_desc_everyNDay:L0e,sch_desc_everyNHours:g0e,sch_desc_everyNMinutes:j0e,sch_desc_everyNMonths:y0e,sch_desc_everyNWeeks:T0e,sch_desc_everyNYears:d0e,sch_desc_everyWeek:D0e,sch_desc_everyYear:h0e,sch_desc_intervalFromTo:z0e,sch_desc_never:w0e,sch_desc_onDate:C0e,sch_desc_onDates:I0e,sch_desc_onEveryDate:p0e,sch_desc_onMonth:A0e,sch_desc_onMonths:m0e,sch_desc_onWeekday:O0e,sch_desc_onWeekdays:E0e,sch_desc_onWeekends:f0e,sch_desc_onWorkdays:x0e,sch_desc_onceInPast:_0e,sch_desc_once_on:S0e,sch_desc_validFrom:k0e,sch_desc_validFromTo:Y0e,sch_desc_validTo:v0e,sch_every:b0e,sch_exactTime:Q0e,sch_from:U0e,sch_fromTo:$0e,sch_intervalTime:P0e,sch_invert:W0e,sch_no_one:B0e,sch_on:J0e,sch_period:R0e,sch_periodDaily:F0e,sch_periodDates:G0e,sch_periodDay:H0e,sch_periodEvery:V0e,sch_periodEveryDay:Z0e,sch_periodEveryMonth:X0e,sch_periodEveryWeek:K0e,sch_periodEveryYear:q0e,sch_periodHours:e4e,sch_periodMinutes:t4e,sch_periodMonth:s4e,sch_periodMonthly:i4e,sch_periodOnce:r4e,sch_periodSpecificMonths:o4e,sch_periodWeek:n4e,sch_periodWeekdays:a4e,sch_periodWeekend:M4e,sch_periodWeekly:c4e,sch_periodWorkdays:u4e,sch_periodYear:l4e,sch_periodYearly:N4e,sch_specificTime:L4e,sch_time:g4e,sch_to:j4e,sch_valid:y4e,sch_validFrom:T4e,sch_validTo:d4e,sch_wholeDay:D4e,sch_yearEveryMonth:h4e},w4e={en:OI,de:Qm,ru:V_,pt:ov,nl:j6,fr:pW,it:YG,es:RK,pl:tre,uk:lce,"zh-cn":z4e},C4e=` +html { + height: 100%; +} + +body { + margin: 0; + padding: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 100%; + height: 100%; + overflow: hidden; +} + +/* scrollbar */ +::-webkit-scrollbar-track { + background-color: #ccc; + border-radius: 5px; +} + +::-webkit-scrollbar { + width: 5px; + height: 5px; + background-color: #ccc; +} + +::-webkit-scrollbar-thumb { + background-color: #575757; + border-radius: 5px; +} + +#root { + height: 100%; +} + +.App { + height: 100%; +} + +@keyframes glow { + from { + background-color: initial; + } + to { + background-color: #58c458; + } +} +`;function I4e(){try{return window.self!==window.top}catch{return!0}}class Gt extends Oi{socket;isIFrame=I4e();instance;adapterName;instanceId;newReact;encryptedFields;sentryDSN;alertDialogRendered;_secret;_systemConfig;savedNative;common=null;sentryStarted=!1;sentryInited=!1;resizeTimer=null;constructor(e,t){const i=e.Connection||(t==null?void 0:t.Connection)||ze;if(!window.document.getElementById("generic-app-iobroker-component")){const N=window.document.createElement("style");N.setAttribute("id","generic-app-iobroker-component"),N.innerHTML=C4e,window.document.head.appendChild(N)}if(!Gt.isWeb()&&window.io&&window.location.port==="3000")try{const N=new window.SocketClient;delete window.io,window.io=N}catch{}super(e),uD();const r=(window.location.search||"").replace(/^\?/,"").replace(/#.*$/,""),o={};r.trim().split("&").filter(N=>N.trim()).forEach(N=>{const u=N.split("=");o[u[0]]=u.length===2?u[1]:!0,o[u[0]]==="true"?o[u[0]]=!0:o[u[0]]==="false"&&(o[u[0]]=!1)}),this.instance=(t==null?void 0:t.instance)??e.instance??(o.instance!==void 0?parseInt(o.instance,10)||0:parseInt(window.location.search.slice(1),10)||0);const n=window.location.pathname.split("/");this.adapterName=(t==null?void 0:t.adapterName)||e.adapterName||window.adapterName||n[n.length-2]||"iot",this.instanceId=`system.adapter.${this.adapterName}.${this.instance}`,this.newReact=o.newReact===!0;const a=Oi.getLocation();a.tab=a.tab||(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"";const c=this.createTheme();this.state=Object.assign(this.state||{},{selectedTab:(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"",selectedTabNum:-1,native:{},errorText:"",changed:!1,connected:!1,loaded:!1,isConfigurationError:"",expertMode:!1,toast:"",theme:c,themeName:this.getThemeName(c),themeType:this.getThemeType(c),bottomButtons:(t&&t.bottomButtons)===!1?!1:(e==null?void 0:e.bottomButtons)!==!1,width:Gt.getWidth(),confirmClose:!1,_alert:!1,_alertType:"info",_alertMessage:""});const l=w4e;t!=null&&t.translations?Object.keys(t.translations).forEach(N=>{t.translations&&(l[N]=Object.assign(l[N],t.translations[N]||{}))}):e.translations&&Object.keys(e.translations).forEach(N=>{e.translations&&(l[N]=Object.assign(l[N],e.translations[N]||{}))}),h.setTranslations(l),this.savedNative={},this.encryptedFields=e.encryptedFields||(t==null?void 0:t.encryptedFields)||[],this.sentryDSN=t&&t.sentryDSN||e.sentryDSN,window.socketUrl&&(window.socketUrl.startsWith(":")?window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`:!window.socketUrl.startsWith("http://")&&!window.socketUrl.startsWith("https://")&&(window.socketUrl=`${window.location.protocol}//${window.socketUrl}`)),this.alertDialogRendered=!1,window.iobOldAlert||(window.iobOldAlert=window.alert),window.alert=N=>{if(!this.alertDialogRendered){window.iobOldAlert(N);return}N!=null&&N.toString().toLowerCase().includes("error")?(console.error(N),this.showAlert(N.toString(),"error")):(console.log(N),this.showAlert(N.toString(),"info"))},this.socket=new i({...(e==null?void 0:e.socket)||(t==null?void 0:t.socket),name:this.adapterName,doNotLoadAllObjects:t==null?void 0:t.doNotLoadAllObjects,onProgress:N=>{N===rt.CONNECTING?this.setState({connected:!1}):N===rt.READY?this.setState({connected:!0}):this.setState({connected:!0})},onReady:()=>{h.setLanguage(this.socket.systemLang),this.socket.subscribeObject("system.config",this.onSystemConfigChanged).then(()=>this.getSystemConfig()).then(N=>(this._secret=typeof N<"u"&&N.native&&N.native.secret||"Zgfr56gFe87jJOM",this._systemConfig=(N==null?void 0:N.common)||{},this.socket.getObject(this.instanceId))).then(async N=>{var T,d;let u;const L=N,y=((T=await this.socket.getState(`${this.instanceId}.plugins.sentry.enabled`))==null?void 0:T.val)!==!1&&((d=this._systemConfig)==null?void 0:d.diag)!=="none"&&(L==null?void 0:L.common)&&L.common.name&&L.common.version&&!L.common.disableDataReporting&&window.location.host!=="localhost:3000";!this.sentryStarted&&this.sentryDSN&&y&&(this.sentryStarted=!0,cD({dsn:this.sentryDSN,release:`iobroker.${L.common.name}@${L.common.version}`,integrations:[GN()]}),console.log("Sentry initialized")),!this.sentryInited&&y&&(this.sentryInited=!0,u=this.socket.getObject("system.meta.uuid").then(z=>{z&&z.native&&z.native.uuid&&Ct().setUser({id:z.native.uuid})})),u=u instanceof Promise?u:Promise.resolve(),u.then(()=>{L?(this.common=L==null?void 0:L.common,this.onPrepareLoad(L.native,L.encryptedNative),this.savedNative=JSON.parse(JSON.stringify(L.native)),this.setState({native:L.native,loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady())):(console.warn("Cannot load instance settings"),this.setState({native:{},loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady()))})}).catch(N=>window.alert(`Cannot settings: ${N}`))},onError:N=>{console.error(N),this.showError(N)}})}static isWeb(){return window.socketUrl!==void 0}showAlert(e,t){t!=="error"&&t!=="warning"&&t!=="info"&&t!=="success"&&(t="info"),this.setState({_alert:!0,_alertType:t,_alertMessage:e})}renderAlertSnackbar(){return this.alertDialogRendered=!0,M.createElement(j.Snackbar,{style:this.state._alertType==="error"?{backgroundColor:"#f44336"}:this.state._alertType==="success"?{backgroundColor:"#4caf50"}:void 0,open:this.state._alert,autoHideDuration:6e3,onClose:(e,t)=>t!=="clickaway"&&this.setState({_alert:!1}),message:this.state._alertMessage})}onSystemConfigChanged=(e,t)=>{var i,r;t&&e==="system.config"&&(this.socket.systemLang!==(t==null?void 0:t.common.language)&&(this.socket.systemLang=(t==null?void 0:t.common.language)||"en",h.setLanguage(this.socket.systemLang)),((i=this._systemConfig)==null?void 0:i.expertMode)!==!!((r=t==null?void 0:t.common)!=null&&r.expertMode)?(this._systemConfig=(t==null?void 0:t.common)||{},this.setState({expertMode:this.getExpertMode()})):this._systemConfig=(t==null?void 0:t.common)||{})};componentDidMount(){window.addEventListener("resize",this.onResize,!0),window.addEventListener("message",this.onReceiveMessage,!1),super.componentDidMount()}componentWillUnmount(){window.removeEventListener("resize",this.onResize,!0),window.removeEventListener("message",this.onReceiveMessage,!1),window.iobOldAlert&&(window.alert=window.iobOldAlert,delete window.iobOldAlert),super.componentWillUnmount()}onReceiveMessage=e=>{if(e!=null&&e.data)if(e.data==="updateTheme"){const t=O.getThemeName();O.setThemeName(O.getThemeName());const i=this.createTheme(t);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(t),this.onThemeChanged&&this.onThemeChanged(t)})}else e.data==="updateExpertMode"?this.onToggleExpertMode&&this.onToggleExpertMode(this.getExpertMode()):e.data!=="chartReady"&&console.debug(`Received unknown message: "${JSON.stringify(e.data)}". May be it will be processed later`)};onResize=()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{this.resizeTimer=null,this.setState({width:Gt.getWidth()})},200)};static getWidth(){const e={xs:0,sm:600,md:960,lg:1280,xl:1920},t=window.innerWidth;return Object.keys(e).reverse().find(o=>t>=e[o])||"xs"}createTheme(e){return bg(O.getThemeName(e))}getThemeName(e){return e.name}getThemeType(e){return e.palette.mode}onThemeChanged(e){}onToggleExpertMode(e){}toggleTheme(e){const t=this.state.themeName;if(e=e||(t==="dark"||t==="blue"||t==="colored"?"light":"dark"),e!==t){O.setThemeName(e);const i=this.createTheme(e);this.setState({theme:i,themeName:this.getThemeName(i),themeType:this.getThemeType(i)},()=>{this.props.onThemeChange&&this.props.onThemeChange(e||"light"),this.onThemeChanged&&this.onThemeChanged(e||"light")})}}getSystemConfig(){return this.socket.getSystemConfig()}getExpertMode(){var e;return window.sessionStorage.getItem("App.expertMode")==="true"||!!((e=this._systemConfig)!=null&&e.expertMode)}onConnectionReady(){}encrypt(e){let t="";if(this._secret)for(let i=0;i{e[i]&&(e[i]=this.encrypt(e[i]))}),!0}onPrepareLoad(e,t){var i;(i=this.encryptedFields)==null||i.forEach(r=>{e[r]&&(e[r]=this.decrypt(e[r]))}),t==null||t.forEach(r=>{this.encryptedFields=this.encryptedFields||[],!this.encryptedFields.includes(r)&&this.encryptedFields.push(r),e[r]&&(e[r]=this.decrypt(e[r]))})}async getExtendableInstances(){try{const e=await this.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香");return Object.values(e).filter(t=>{var i;return!!((i=t==null?void 0:t.common)!=null&&i.webExtendable)})}catch{return[]}}async getIpAddresses(e){var o;const t=await this.socket.getHostByIp(e||((o=this.common)==null?void 0:o.host)||""),i=t.find(n=>n.address==="0.0.0.0");i&&(i.name=`[IPv4] 0.0.0.0 - ${h.t("ra_Listen on all IPs")}`);const r=t.find(n=>n.address==="::");return r&&(r.name=`[IPv4] :: - ${h.t("ra_Listen on all IPs")}`),t}onSave(e){let t;if(this.state.isConfigurationError){this.setState({errorText:this.state.isConfigurationError});return}this.socket.getObject(this.instanceId).then(i=>{t=i||{};for(const r in this.state.native)Object.prototype.hasOwnProperty.call(this.state.native,r)&&(this.state.native[r]===null?t.native[r]=null:this.state.native[r]!==void 0?t.native[r]=JSON.parse(JSON.stringify(this.state.native[r])):delete t.native[r]);if(this.state.common)for(const r in this.state.common)this.state.common[r]===null?t.common[r]=null:this.state.common[r]!==void 0?t.common[r]=JSON.parse(JSON.stringify(this.state.common[r])):delete t.common[r];return this.onPrepareSave(t.native)!==!1?this.socket.setObject(this.instanceId,t):Promise.reject(new Error("Invalid configuration"))}).then(()=>{this.savedNative=t.native,globalThis.changed=!1;try{window.parent.postMessage("nochange","*")}catch{}this.setState({changed:!1},()=>{e&&Gt.onClose()})}).catch(i=>console.error(`Cannot save configuration: ${i}`))}renderToast(){return this.state.toast?M.createElement(j.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:M.createElement("span",{id:"message-id"},this.state.toast),action:[M.createElement(j.IconButton,{key:"close","aria-label":"Close",color:"inherit",onClick:()=>this.setState({toast:""}),size:"large"},M.createElement(Ne,null))]}):null}static onClose(){if(typeof window.parent<"u"&&window.parent)try{window.parent.$iframeDialog&&typeof window.parent.$iframeDialog.close=="function"?window.parent.$iframeDialog.close():window.parent.postMessage("close","*")}catch{window.parent.postMessage("close","*")}}renderError(){return this.state.errorText?M.createElement(r0,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}getIsChanged(e){e=e||this.state.native;const t=JSON.stringify(e)!==JSON.stringify(this.savedNative);return globalThis.changed=t,t}onLoadConfig(e){JSON.stringify(e)!==JSON.stringify(this.state.native)&&this.setState({native:e,changed:this.getIsChanged(e)})}setConfigurationError(e){this.state.isConfigurationError!==e&&this.setState({isConfigurationError:e})}renderSaveCloseButtons(){return!this.state.confirmClose&&!this.state.bottomButtons?null:M.createElement(M.Fragment,null,this.state.bottomButtons?M.createElement(dD,{theme:this.state.theme,newReact:this.newReact,noTextOnButtons:this.state.width==="xs"||this.state.width==="sm"||this.state.width==="md",changed:this.state.changed,onSave:e=>this.onSave(e),onClose:()=>{this.state.changed?this.setState({confirmClose:!0}):Gt.onClose()},error:!!this.state.isConfigurationError}):null,this.state.confirmClose?M.createElement(i0,{title:h.t("ra_Please confirm"),text:h.t("ra_Some data are not stored. Discard?"),ok:h.t("ra_Discard"),cancel:h.t("ra_Cancel"),onClose:e=>this.setState({confirmClose:!1},()=>e&&Gt.onClose())}):null)}_updateNativeValue(e,t,i){typeof t!="object"&&(t=t.split("."));const r=t.shift()||"";if(!t.length)return i&&typeof i=="object"?JSON.stringify(e[r])!==JSON.stringify(i)?(e[r]=i,!0):!1:e[r]!==i?(e[r]=i,!0):!1;if(e[r]=e[r]||{},typeof e[r]!="object")throw new Error(`attribute ${r} is no object, but ${typeof e[r]}`);return this._updateNativeValue(e[r],t,i)}updateNativeValue(e,t,i){const r=JSON.parse(JSON.stringify(this.state.native));if(this._updateNativeValue(r,e,t)){const o=this.getIsChanged(r);if(o!==this.state.changed)try{window.parent.postMessage(o?"change":"nochange","*")}catch{}this.setState({native:r,changed:o},i)}}showError(e){this.setState({errorText:e})}showToast(e){this.setState({toast:e})}renderHelperDialogs(){return M.createElement(M.Fragment,null,this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar())}render(){return this.state.loaded?M.createElement("div",{className:"App"},this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar()):M.createElement(ND,{themeType:this.state.themeType})}}var Be={},Fi={},p4e=typeof ir=="object"&&ir&&ir.Object===Object&&ir,o0=p4e,A4e=o0,m4e=typeof self=="object"&&self&&self.Object===Object&&self,O4e=A4e||m4e||Function("return this")(),ut=O4e,E4e=ut,f4e=E4e.Symbol,Gi=f4e,Qc=Gi,n0=Object.prototype,x4e=n0.hasOwnProperty,_4e=n0.toString,li=Qc?Qc.toStringTag:void 0;function S4e(s){var e=x4e.call(s,li),t=s[li];try{s[li]=void 0;var i=!0}catch{}var r=_4e.call(s);return i&&(e?s[li]=t:delete s[li]),r}var k4e=S4e,Y4e=Object.prototype,v4e=Y4e.toString;function b4e(s){return v4e.call(s)}var Q4e=b4e,Uc=Gi,U4e=k4e,$4e=Q4e,P4e="[object Null]",W4e="[object Undefined]",$c=Uc?Uc.toStringTag:void 0;function B4e(s){return s==null?s===void 0?W4e:P4e:$c&&$c in Object(s)?U4e(s):$4e(s)}var ns=B4e,J4e=Array.isArray,qe=J4e;function R4e(s){return s!=null&&typeof s=="object"}var It=R4e,F4e=ns,G4e=qe,H4e=It,V4e="[object String]";function Z4e(s){return typeof s=="string"||!G4e(s)&&H4e(s)&&F4e(s)==V4e}var X4e=Z4e;function K4e(s){return function(e,t,i){for(var r=-1,o=Object(e),n=i(e),a=n.length;a--;){var c=n[s?a:++r];if(t(o[c],c,o)===!1)break}return e}}var q4e=K4e,eLe=q4e,tLe=eLe(),sLe=tLe;function iLe(s,e){for(var t=-1,i=Array(s);++t-1&&s%1==0&&s-1&&s%1==0&&s<=DLe}var Oa=hLe,zLe=ns,wLe=Oa,CLe=It,ILe="[object Arguments]",pLe="[object Array]",ALe="[object Boolean]",mLe="[object Date]",OLe="[object Error]",ELe="[object Function]",fLe="[object Map]",xLe="[object Number]",_Le="[object Object]",SLe="[object RegExp]",kLe="[object Set]",YLe="[object String]",vLe="[object WeakMap]",bLe="[object ArrayBuffer]",QLe="[object DataView]",ULe="[object Float32Array]",$Le="[object Float64Array]",PLe="[object Int8Array]",WLe="[object Int16Array]",BLe="[object Int32Array]",JLe="[object Uint8Array]",RLe="[object Uint8ClampedArray]",FLe="[object Uint16Array]",GLe="[object Uint32Array]",oe={};oe[ULe]=oe[$Le]=oe[PLe]=oe[WLe]=oe[BLe]=oe[JLe]=oe[RLe]=oe[FLe]=oe[GLe]=!0;oe[ILe]=oe[pLe]=oe[bLe]=oe[ALe]=oe[QLe]=oe[mLe]=oe[OLe]=oe[ELe]=oe[fLe]=oe[xLe]=oe[_Le]=oe[SLe]=oe[kLe]=oe[YLe]=oe[vLe]=!1;function HLe(s){return CLe(s)&&wLe(s.length)&&!!oe[zLe(s)]}var VLe=HLe;function ZLe(s){return function(e){return s(e)}}var Ea=ZLe,$r={exports:{}};$r.exports;(function(s,e){var t=o0,i=e&&!e.nodeType&&e,r=i&&!0&&s&&!s.nodeType&&s,o=r&&r.exports===i,n=o&&t.process,a=function(){try{var c=r&&r.require&&r.require("util").types;return c||n&&n.binding&&n.binding("util")}catch{}}();s.exports=a})($r,$r.exports);var fa=$r.exports,XLe=VLe,KLe=Ea,Wc=fa,Bc=Wc&&Wc.isTypedArray,qLe=Bc?KLe(Bc):XLe,u0=qLe,ege=rLe,tge=M0,sge=qe,ige=ma,rge=c0,oge=u0,nge=Object.prototype,age=nge.hasOwnProperty;function Mge(s,e){var t=sge(s),i=!t&&tge(s),r=!t&&!i&&ige(s),o=!t&&!i&&!r&&oge(s),n=t||i||r||o,a=n?ege(s.length,String):[],c=a.length;for(var l in s)(e||age.call(s,l))&&!(n&&(l=="length"||r&&(l=="offset"||l=="parent")||o&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||rge(l,c)))&&a.push(l);return a}var l0=Mge,cge=Object.prototype;function uge(s){var e=s&&s.constructor,t=typeof e=="function"&&e.prototype||cge;return s===t}var xa=uge;function lge(s,e){return function(t){return s(e(t))}}var N0=lge,Nge=N0,Lge=Nge(Object.keys,Object),gge=Lge,jge=xa,yge=gge,Tge=Object.prototype,dge=Tge.hasOwnProperty;function Dge(s){if(!jge(s))return yge(s);var e=[];for(var t in Object(s))dge.call(s,t)&&t!="constructor"&&e.push(t);return e}var hge=Dge;function zge(s){var e=typeof s;return s!=null&&(e=="object"||e=="function")}var Xs=zge,wge=ns,Cge=Xs,Ige="[object AsyncFunction]",pge="[object Function]",Age="[object GeneratorFunction]",mge="[object Proxy]";function Oge(s){if(!Cge(s))return!1;var e=wge(s);return e==pge||e==Age||e==Ige||e==mge}var L0=Oge,Ege=L0,fge=Oa;function xge(s){return s!=null&&fge(s.length)&&!Ege(s)}var ao=xge,_ge=l0,Sge=hge,kge=ao;function Yge(s){return kge(s)?_ge(s):Sge(s)}var Hi=Yge,vge=sLe,bge=Hi;function Qge(s,e){return s&&vge(s,e,bge)}var g0=Qge;function Uge(s){return s}var j0=Uge,$ge=j0;function Pge(s){return typeof s=="function"?s:$ge}var Wge=Pge,Bge=g0,Jge=Wge;function Rge(s,e){return s&&Bge(s,Jge(e))}var _a=Rge,Fge=N0,Gge=Fge(Object.getPrototypeOf,Object),Sa=Gge,Hge=ns,Vge=Sa,Zge=It,Xge="[object Object]",Kge=Function.prototype,qge=Object.prototype,y0=Kge.toString,eje=qge.hasOwnProperty,tje=y0.call(Object);function sje(s){if(!Zge(s)||Hge(s)!=Xge)return!1;var e=Vge(s);if(e===null)return!0;var t=eje.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&y0.call(t)==tje}var ije=sje;function rje(s,e){for(var t=-1,i=s==null?0:s.length,r=Array(i);++t-1}var hje=Dje,zje=Mo;function wje(s,e){var t=this.__data__,i=zje(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}var Cje=wje,Ije=nje,pje=gje,Aje=Tje,mje=hje,Oje=Cje;function Ks(s){var e=-1,t=s==null?0:s.length;for(this.clear();++ea))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&$Te?new vTe:void 0;for(o.set(s,e),o.set(e,s);++u0&&arguments[0]!==void 0?arguments[0]:[],t=[];return(0,Oze.default)(e,function(i){Array.isArray(i)?s(i).map(function(r){return t.push(r)}):(0,Aze.default)(i)?(0,Ize.default)(i,function(r,o){r===!0&&t.push(o),t.push(o+"-"+r)}):(0,wze.default)(i)&&t.push(i)}),t};Fi.default=Eze;var Vi={};function fze(s,e){for(var t=-1,i=s==null?0:s.length;++t1&&arguments[1]!==void 0?arguments[1]:[],i=e.default&&(0,ZIe.default)(e.default)||{};return t.map(function(r){var o=e[r];return o&&(0,HIe.default)(o,function(n,a){i[a]||(i[a]={}),i[a]=XIe({},i[a],o[a])}),r}),i};Vi.default=KIe;var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0});Zi.autoprefix=void 0;var qIe=_a,Cu=t1e(qIe),e1e=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){M1e(r,i);function r(){var o,n,a,c;a1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){g1e(r,i);function r(){var o,n,a,c;L1e(this,r);for(var l=arguments.length,N=Array(l),u=0;u1&&arguments[1]!==void 0?arguments[1]:!0;i[n]=a};return e===0&&r("first-child"),e===t-1&&r("last-child"),(e===0||e%2===0)&&r("even"),Math.abs(e%2)===1&&r("odd"),r("nth-child",e),i};Ja.default=y1e;Object.defineProperty(Be,"__esModule",{value:!0});Be.ReactCSS=Be.loop=Be.handleActive=Ra=Be.handleHover=Be.hover=void 0;var T1e=Fi,d1e=ii(T1e),D1e=Vi,h1e=ii(D1e),z1e=Zi,w1e=ii(z1e),C1e=Xi,P0=ii(C1e),I1e=Ki,p1e=ii(I1e),A1e=Ja,m1e=ii(A1e);function ii(s){return s&&s.__esModule?s:{default:s}}Be.hover=P0.default;var Ra=Be.handleHover=P0.default;Be.handleActive=p1e.default;Be.loop=m1e.default;var O1e=Be.ReactCSS=function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),r=1;ra?L=1:L=Math.round(u*100/a)/100,t.a!==L)return{h:t.h,s:t.s,l:t.l,a:L,source:"rgb"}}else{var g=void 0;if(N<0?g=0:N>n?g=1:g=Math.round(N*100/n)/100,r!==g)return{h:t.h,s:t.s,l:t.l,a:g,source:"rgb"}}return null},Bo={},f1e=function(e,t,i,r){if(typeof document>"u"&&!r)return null;var o=r?new r:document.createElement("canvas");o.width=i*2,o.height=i*2;var n=o.getContext("2d");return n?(n.fillStyle=e,n.fillRect(0,0,o.width,o.height),n.fillStyle=t,n.fillRect(0,0,i,i),n.translate(i,i),n.fillRect(0,0,i,i),o.toDataURL()):null},x1e=function(e,t,i,r){var o=e+"-"+t+"-"+i+(r?"-server":"");if(Bo[o])return Bo[o];var n=f1e(e,t,i,r);return Bo[o]=n,n},Au=Object.assign||function(s){for(var e=1;e-1},R1e=function(e){return Number(String(e).replace(/%/g,""))},F1e=1,K=function(s){$1e(e,s);function e(t){Q1e(this,e);var i=U1e(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.handleBlur=function(){i.state.blurValue&&i.setState({value:i.state.blurValue,blurValue:null})},i.handleChange=function(r){i.setUpdatedValue(r.target.value,r)},i.handleKeyDown=function(r){var o=R1e(r.target.value);if(!isNaN(o)&&J1e(r.keyCode)){var n=i.getArrowOffset(),a=r.keyCode===W0?o+n:o-n;i.setUpdatedValue(a,r)}},i.handleDrag=function(r){if(i.props.dragLabel){var o=Math.round(i.props.value+r.movementX);o>=0&&o<=i.props.dragMax&&i.props.onChange&&i.props.onChange(i.getValueObjectWithLabel(o),r)}},i.handleMouseDown=function(r){i.props.dragLabel&&(r.preventDefault(),i.handleDrag(r),window.addEventListener("mousemove",i.handleDrag),window.addEventListener("mouseup",i.handleMouseUp))},i.handleMouseUp=function(){i.unbindEventListeners()},i.unbindEventListeners=function(){window.removeEventListener("mousemove",i.handleDrag),window.removeEventListener("mouseup",i.handleMouseUp)},i.state={value:String(t.value).toUpperCase(),blurValue:String(t.value).toUpperCase()},i.inputId="rc-editable-input-"+F1e++,i}return v1e(e,[{key:"componentDidUpdate",value:function(i,r){this.props.value!==this.state.value&&(i.value!==this.props.value||r.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(i){return b1e({},this.props.label,i)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||P1e}},{key:"setUpdatedValue",value:function(i,r){var o=this.props.label?this.getValueObjectWithLabel(i):i;this.props.onChange&&this.props.onChange(o,r),this.setState({value:i})}},{key:"render",value:function(){var i=this,r=F({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return M.createElement("div",{style:r.wrap},M.createElement("input",{id:this.inputId,style:r.input,ref:function(n){return i.input=n},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?M.createElement("label",{htmlFor:this.inputId,style:r.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),e}(f.PureComponent||f.Component),G1e=function(e,t,i,r){var o=r.clientWidth,n=r.clientHeight,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(r.getBoundingClientRect().left+window.pageXOffset),N=c-(r.getBoundingClientRect().top+window.pageYOffset);if(t==="vertical"){var u=void 0;if(N<0)u=359;else if(N>n)u=0;else{var L=-(N*100/n)+100;u=360*L/100}if(i.h!==u)return{h:u,s:i.s,l:i.l,a:i.a,source:"hsl"}}else{var g=void 0;if(l<0)g=0;else if(l>o)g=359;else{var y=l*100/o;g=360*y/100}if(i.h!==g)return{h:g,s:i.s,l:i.l,a:i.a,source:"hsl"}}return null},H1e=function(){function s(e,t){for(var i=0;i-1}function ipe(s,e){var t=this.__data__,i=yo(t,s);return i<0?(++this.size,t.push([s,e])):t[i][1]=e,this}function pt(s){var e=-1,t=s==null?0:s.length;for(this.clear();++e-1&&s%1==0&&s<=uAe}function ni(s){return s!=null&&Za(s.length)&&!Ga(s)}function lAe(s){return Pt(s)&&ni(s)}function NAe(){return!1}var Z0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Yu=Z0&&typeof module=="object"&&module&&!module.nodeType&&module,LAe=Yu&&Yu.exports===Z0,vu=LAe?et.Buffer:void 0,gAe=vu?vu.isBuffer:void 0,Fr=gAe||NAe,jAe="[object Object]",yAe=Function.prototype,TAe=Object.prototype,X0=yAe.toString,dAe=TAe.hasOwnProperty,DAe=X0.call(Object);function hAe(s){if(!Pt(s)||Ms(s)!=jAe)return!1;var e=H0(s);if(e===null)return!0;var t=dAe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&X0.call(t)==DAe}var zAe="[object Arguments]",wAe="[object Array]",CAe="[object Boolean]",IAe="[object Date]",pAe="[object Error]",AAe="[object Function]",mAe="[object Map]",OAe="[object Number]",EAe="[object Object]",fAe="[object RegExp]",xAe="[object Set]",_Ae="[object String]",SAe="[object WeakMap]",kAe="[object ArrayBuffer]",YAe="[object DataView]",vAe="[object Float32Array]",bAe="[object Float64Array]",QAe="[object Int8Array]",UAe="[object Int16Array]",$Ae="[object Int32Array]",PAe="[object Uint8Array]",WAe="[object Uint8ClampedArray]",BAe="[object Uint16Array]",JAe="[object Uint32Array]",ne={};ne[vAe]=ne[bAe]=ne[QAe]=ne[UAe]=ne[$Ae]=ne[PAe]=ne[WAe]=ne[BAe]=ne[JAe]=!0;ne[zAe]=ne[wAe]=ne[kAe]=ne[CAe]=ne[YAe]=ne[IAe]=ne[pAe]=ne[AAe]=ne[mAe]=ne[OAe]=ne[EAe]=ne[fAe]=ne[xAe]=ne[_Ae]=ne[SAe]=!1;function RAe(s){return Pt(s)&&Za(s.length)&&!!ne[Ms(s)]}function FAe(s){return function(e){return s(e)}}var K0=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ei=K0&&typeof module=="object"&&module&&!module.nodeType&&module,GAe=Ei&&Ei.exports===K0,Ro=GAe&&B0.process,bu=function(){try{var s=Ei&&Ei.require&&Ei.require("util").types;return s||Ro&&Ro.binding&&Ro.binding("util")}catch{}}(),Qu=bu&&bu.isTypedArray,Xa=Qu?FAe(Qu):RAe;function kn(s,e){if(!(e==="constructor"&&typeof s[e]=="function")&&e!="__proto__")return s[e]}var HAe=Object.prototype,VAe=HAe.hasOwnProperty;function ZAe(s,e,t){var i=s[e];(!(VAe.call(s,e)&&qi(i,t))||t===void 0&&!(e in s))&&Ha(s,e,t)}function XAe(s,e,t,i){var r=!t;t||(t={});for(var o=-1,n=e.length;++o-1&&s%1==0&&s0){if(++e>=L2e)return arguments[0]}else e=0;return s.apply(void 0,arguments)}}var T2e=y2e(N2e);function d2e(s,e){return T2e(u2e(s,e,Do),s+"")}function D2e(s,e,t){if(!Re(t))return!1;var i=typeof e;return(i=="number"?ni(t)&&Ka(e,t.length):i=="string"&&e in t)?qi(t[e],s):!1}function h2e(s){return d2e(function(e,t){var i=-1,r=t.length,o=r>1?t[r-1]:void 0,n=r>2?t[2]:void 0;for(o=s.length>3&&typeof o=="function"?(r--,o):void 0,n&&D2e(t[0],t[1],n)&&(o=r<3?void 0:o,r=1),e=Object(e);++i=e||p<0||u&&_>=o}function z(){var D=Fo();if(d(D))return I(D);a=setTimeout(z,T(D))}function I(D){return a=void 0,L&&i?g(D):(i=r=void 0,n)}function C(){a!==void 0&&clearTimeout(a),l=0,i=c=r=a=void 0}function m(){return a===void 0?n:I(Fo())}function A(){var D=Fo(),p=d(D);if(i=arguments,r=this,c=D,p){if(a===void 0)return y(c);if(u)return clearTimeout(a),a=setTimeout(z,e),g(c)}return a===void 0&&(a=setTimeout(z,e)),n}return A.cancel=C,A.flush=m,A}var S2e="Expected a function";function k2e(s,e,t){var i=!0,r=!0;if(typeof s!="function")throw new TypeError(S2e);return Re(t)&&(i="leading"in t?!!t.leading:i,r="trailing"in t?!!t.trailing:r),s4(s,e,{leading:i,maxWait:e,trailing:r})}var Y2e=function(e,t,i){var r=i.getBoundingClientRect(),o=r.width,n=r.height,a=typeof e.pageX=="number"?e.pageX:e.touches[0].pageX,c=typeof e.pageY=="number"?e.pageY:e.touches[0].pageY,l=a-(i.getBoundingClientRect().left+window.pageXOffset),N=c-(i.getBoundingClientRect().top+window.pageYOffset);l<0?l=0:l>o&&(l=o),N<0?N=0:N>n&&(N=n);var u=l/o,L=1-N/n;return{h:t.h,s:u,v:L,a:t.a,source:"hsv"}},v2e=function(){function s(e,t){for(var i=0;i=0,o=!t&&r&&(e==="hex"||e==="hex6"||e==="hex3"||e==="hex4"||e==="hex8"||e==="name");return o?e==="name"&&this._a===0?this.toName():this.toRgbString():(e==="rgb"&&(i=this.toRgbString()),e==="prgb"&&(i=this.toPercentageRgbString()),(e==="hex"||e==="hex6")&&(i=this.toHexString()),e==="hex3"&&(i=this.toHexString(!0)),e==="hex4"&&(i=this.toHex8String(!0)),e==="hex8"&&(i=this.toHex8String()),e==="name"&&(i=this.toName()),e==="hsl"&&(i=this.toHslString()),e==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return $(this.toString())},_applyModification:function(e,t){var i=e.apply(null,[this].concat([].slice.call(t)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(ome,arguments)},brighten:function(){return this._applyModification(nme,arguments)},darken:function(){return this._applyModification(ame,arguments)},desaturate:function(){return this._applyModification(sme,arguments)},saturate:function(){return this._applyModification(ime,arguments)},greyscale:function(){return this._applyModification(rme,arguments)},spin:function(){return this._applyModification(Mme,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(lme,arguments)},complement:function(){return this._applyCombination(cme,arguments)},monochromatic:function(){return this._applyCombination(Nme,arguments)},splitcomplement:function(){return this._applyCombination(ume,arguments)},triad:function(){return this._applyCombination(Fu,[3])},tetrad:function(){return this._applyCombination(Fu,[4])}};$.fromRatio=function(s,e){if(Gr(s)=="object"){var t={};for(var i in s)s.hasOwnProperty(i)&&(i==="a"?t[i]=s[i]:t[i]=zi(s[i]));s=t}return $(s,e)};function X2e(s){var e={r:0,g:0,b:0},t=1,i=null,r=null,o=null,n=!1,a=!1;return typeof s=="string"&&(s=Tme(s)),Gr(s)=="object"&&(Nt(s.r)&&Nt(s.g)&&Nt(s.b)?(e=K2e(s.r,s.g,s.b),n=!0,a=String(s.r).substr(-1)==="%"?"prgb":"rgb"):Nt(s.h)&&Nt(s.s)&&Nt(s.v)?(i=zi(s.s),r=zi(s.v),e=eme(s.h,i,r),n=!0,a="hsv"):Nt(s.h)&&Nt(s.s)&&Nt(s.l)&&(i=zi(s.s),o=zi(s.l),e=q2e(s.h,i,o),n=!0,a="hsl"),s.hasOwnProperty("a")&&(t=s.a)),t=r4(t),{ok:n,format:s.format||a,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:t}}function K2e(s,e,t){return{r:Me(s,255)*255,g:Me(e,255)*255,b:Me(t,255)*255}}function Wu(s,e,t){s=Me(s,255),e=Me(e,255),t=Me(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=(i+r)/2;if(i==r)o=n=0;else{var c=i-r;switch(n=a>.5?c/(2-i-r):c/(i+r),i){case s:o=(e-t)/c+(e1&&(u-=1),u<1/6?l+(N-l)*6*u:u<1/2?N:u<2/3?l+(N-l)*(2/3-u)*6:l}if(e===0)i=r=o=t;else{var a=t<.5?t*(1+e):t+e-t*e,c=2*t-a;i=n(c,a,s+1/3),r=n(c,a,s),o=n(c,a,s-1/3)}return{r:i*255,g:r*255,b:o*255}}function Bu(s,e,t){s=Me(s,255),e=Me(e,255),t=Me(t,255);var i=Math.max(s,e,t),r=Math.min(s,e,t),o,n,a=i,c=i-r;if(n=i===0?0:c/i,i==r)o=0;else{switch(i){case s:o=(e-t)/c+(e>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push($(i));return o}function Nme(s,e){e=e||6;for(var t=$(s).toHsv(),i=t.h,r=t.s,o=t.v,n=[],a=1/e;e--;)n.push($({h:i,s:r,v:o})),o=(o+a)%1;return n}$.mix=function(s,e,t){t=t===0?0:t||50;var i=$(s).toRgb(),r=$(e).toRgb(),o=t/100,n={r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a};return $(n)};$.readability=function(s,e){var t=$(s),i=$(e);return(Math.max(t.getLuminance(),i.getLuminance())+.05)/(Math.min(t.getLuminance(),i.getLuminance())+.05)};$.isReadable=function(s,e,t){var i=$.readability(s,e),r,o;switch(o=!1,r=dme(t),r.level+r.size){case"AAsmall":case"AAAlarge":o=i>=4.5;break;case"AAlarge":o=i>=3;break;case"AAAsmall":o=i>=7;break}return o};$.mostReadable=function(s,e,t){var i=null,r=0,o,n,a,c;t=t||{},n=t.includeFallbackColors,a=t.level,c=t.size;for(var l=0;lr&&(r=o,i=$(e[l]));return $.isReadable(s,i,{level:a,size:c})||!n?i:(t.includeFallbackColors=!1,$.mostReadable(s,["#fff","#000"],t))};var Yn=$.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Lme=$.hexNames=gme(Yn);function gme(s){var e={};for(var t in s)s.hasOwnProperty(t)&&(e[s[t]]=t);return e}function r4(s){return s=parseFloat(s),(isNaN(s)||s<0||s>1)&&(s=1),s}function Me(s,e){jme(s)&&(s="100%");var t=yme(s);return s=Math.min(e,Math.max(0,parseFloat(s))),t&&(s=parseInt(s*e,10)/100),Math.abs(s-e)<1e-6?1:s%e/parseFloat(e)}function wo(s){return Math.min(1,Math.max(0,s))}function Qe(s){return parseInt(s,16)}function jme(s){return typeof s=="string"&&s.indexOf(".")!=-1&&parseFloat(s)===1}function yme(s){return typeof s=="string"&&s.indexOf("%")!=-1}function Xe(s){return s.length==1?"0"+s:""+s}function zi(s){return s<=1&&(s=s*100+"%"),s}function o4(s){return Math.round(parseFloat(s)*255).toString(16)}function Gu(s){return Qe(s)/255}var Ze=function(){var s="[-\\+]?\\d+%?",e="[-\\+]?\\d*\\.\\d+%?",t="(?:"+e+")|(?:"+s+")",i="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",r="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Nt(s){return!!Ze.CSS_UNIT.exec(s)}function Tme(s){s=s.replace(V2e,"").replace(Z2e,"").toLowerCase();var e=!1;if(Yn[s])s=Yn[s],e=!0;else if(s=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var t;return(t=Ze.rgb.exec(s))?{r:t[1],g:t[2],b:t[3]}:(t=Ze.rgba.exec(s))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Ze.hsl.exec(s))?{h:t[1],s:t[2],l:t[3]}:(t=Ze.hsla.exec(s))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Ze.hsv.exec(s))?{h:t[1],s:t[2],v:t[3]}:(t=Ze.hsva.exec(s))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Ze.hex8.exec(s))?{r:Qe(t[1]),g:Qe(t[2]),b:Qe(t[3]),a:Gu(t[4]),format:e?"name":"hex8"}:(t=Ze.hex6.exec(s))?{r:Qe(t[1]),g:Qe(t[2]),b:Qe(t[3]),format:e?"name":"hex"}:(t=Ze.hex4.exec(s))?{r:Qe(t[1]+""+t[1]),g:Qe(t[2]+""+t[2]),b:Qe(t[3]+""+t[3]),a:Gu(t[4]+""+t[4]),format:e?"name":"hex8"}:(t=Ze.hex3.exec(s))?{r:Qe(t[1]+""+t[1]),g:Qe(t[2]+""+t[2]),b:Qe(t[3]+""+t[3]),format:e?"name":"hex"}:!1}function dme(s){var e,t;return s=s||{level:"AA",size:"small"},e=(s.level||"AA").toUpperCase(),t=(s.size||"small").toLowerCase(),e!=="AA"&&e!=="AAA"&&(e="AA"),t!=="small"&&t!=="large"&&(t="small"),{level:e,size:t}}var Hu=function(e){var t=["r","g","b","a","h","s","l","v"],i=0,r=0;return H2e(t,function(o){if(e[o]&&(i+=1,isNaN(e[o])||(r+=1),o==="s"||o==="l")){var n=/^\d+%$/;n.test(e[o])&&(r+=1)}}),i===r?e:!1},wi=function(e,t){var i=e.hex?$(e.hex):$(e),r=i.toHsl(),o=i.toHsv(),n=i.toRgb(),a=i.toHex();r.s===0&&(r.h=t||0,o.h=t||0);var c=a==="000000"&&n.a===0;return{hsl:r,hex:c?"transparent":"#"+a,rgb:n,hsv:o,oldHue:e.h||t||r.h,source:e.source}},Wt=function(e){if(e==="transparent")return!0;var t=String(e).charAt(0)==="#"?1:0;return e.length!==4+t&&e.length<7+t&&$(e).isValid()},eM=function(e){if(!e)return"#fff";var t=wi(e);if(t.hex==="transparent")return"rgba(0,0,0,0.4)";var i=(t.rgb.r*299+t.rgb.g*587+t.rgb.b*114)/1e3;return i>=128?"#000":"#fff"},Go=function(e,t){var i=e.replace("°","");return $(t+" ("+i+")")._ok},Li=Object.assign||function(s){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:"span";return function(i){Ame(r,i);function r(){var o,n,a,c;pme(this,r);for(var l=arguments.length,N=Array(l),u=0;ua))return!1;var l=o.get(s),N=o.get(e);if(l&&N)return l==e&&N==s;var u=-1,L=!0,g=t&Qme?new Hr:void 0;for(o.set(s,e),o.set(e,s);++u=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var gr=24,KOe=j4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?gr:i,o=s.height,n=o===void 0?gr:o,a=s.style,c=a===void 0?{}:a,l=XOe(s,["fill","width","height","style"]);return Nl.default.createElement("svg",ll({viewBox:"0 0 "+gr+" "+gr,style:ll({fill:t,width:r,height:n},c)},l),Nl.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))},qOe=function(){function s(e,t){for(var i=0;i1&&(r.a=1),i.props.onChange({h:i.props.hsl.h,s:i.props.hsl.s,l:i.props.hsl.l,a:Math.round(r.a*100)/100,source:"rgb"},o)):(r.h||r.s||r.l)&&(typeof r.s=="string"&&r.s.includes("%")&&(r.s=r.s.replace("%","")),typeof r.l=="string"&&r.l.includes("%")&&(r.l=r.l.replace("%","")),r.s==1?r.s=.01:r.l==1&&(r.l=.01),i.props.onChange({h:r.h||i.props.hsl.h,s:Number(ul(r.s)?i.props.hsl.s:r.s),l:Number(ul(r.l)?i.props.hsl.l:r.l),source:"hsl"},o))},i.showHighlight=function(r){r.currentTarget.style.background="#eee"},i.hideHighlight=function(r){r.currentTarget.style.background="transparent"},t.hsl.a!==1&&t.view==="hex"?i.state={view:"rgb"}:i.state={view:t.view},i}return qOe(e,[{key:"render",value:function(){var i=this,r=F({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),o=void 0;return this.state.view==="hex"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):this.state.view==="rgb"?o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):this.state.view==="hsl"&&(o=M.createElement("div",{style:r.fields,className:"flexbox-fix"},M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"s",value:Math.round(this.props.hsl.s*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.field},M.createElement(K,{style:{input:r.input,label:r.label},label:"l",value:Math.round(this.props.hsl.l*100)+"%",onChange:this.handleChange})),M.createElement("div",{style:r.alpha},M.createElement(K,{style:{input:r.input,label:r.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),M.createElement("div",{style:r.wrap,className:"flexbox-fix"},o,M.createElement("div",{style:r.toggle},M.createElement("div",{style:r.icon,onClick:this.toggleViews,ref:function(a){return i.icon=a}},M.createElement(KOe,{style:r.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(i,r){return i.hsl.a!==1&&r.view==="hex"?{view:"rgb"}:null}}]),e}(M.Component);y4.defaultProps={view:"hex"};var Ll=function(){var e=F({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return M.createElement("div",{style:e.picker})},iEe=function(){var e=F({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return M.createElement("div",{style:e.picker})},nM=function(e){var t=e.width,i=e.onChange,r=e.disableAlpha,o=e.rgb,n=e.hsl,a=e.hsv,c=e.hex,l=e.renderers,N=e.styles,u=N===void 0?{}:N,L=e.className,g=L===void 0?"":L,y=e.defaultView,T=F(ve({default:{picker:{width:t,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+o.r+", "+o.g+", "+o.b+", "+o.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},u),{disableAlpha:r});return M.createElement("div",{style:T.picker,className:"chrome-picker "+g},M.createElement("div",{style:T.saturation},M.createElement(zo,{style:T.Saturation,hsl:n,hsv:a,pointer:iEe,onChange:i})),M.createElement("div",{style:T.body},M.createElement("div",{style:T.controls,className:"flexbox-fix"},M.createElement("div",{style:T.color},M.createElement("div",{style:T.swatch},M.createElement("div",{style:T.active}),M.createElement(ri,{renderers:l}))),M.createElement("div",{style:T.toggles},M.createElement("div",{style:T.hue},M.createElement(oi,{style:T.Hue,hsl:n,pointer:Ll,onChange:i})),M.createElement("div",{style:T.alpha},M.createElement(Fa,{style:T.Alpha,rgb:o,hsl:n,pointer:Ll,renderers:l,onChange:i})))),M.createElement(y4,{rgb:o,hsl:n,hex:c,view:y,onChange:i,disableAlpha:r})))};nM.propTypes={width:S.oneOfType([S.string,S.number]),disableAlpha:S.bool,styles:S.object,defaultView:S.oneOf(["hex","rgb","hsl"])};nM.defaultProps={width:225,disableAlpha:!1,styles:{}};const rEe=be(nM);var oEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.active,a=F({default:{color:{background:t,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:eM(t),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:n,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{style:a.color,color:t,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:a.dot}))},nEe=function(e){var t=e.hex,i=e.rgb,r=e.onChange,o=F({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:t},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),n=function(c,l){c.r||c.g||c.b?r({r:c.r||i.r,g:c.g||i.g,b:c.b||i.b,source:"rgb"},l):r({hex:c.hex,source:"hex"},l)};return M.createElement("div",{style:o.fields,className:"flexbox-fix"},M.createElement("div",{style:o.active}),M.createElement(K,{style:{wrap:o.HEXwrap,input:o.HEXinput,label:o.HEXlabel},label:"hex",value:t,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"r",value:i.r,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"g",value:i.g,onChange:n}),M.createElement(K,{style:{wrap:o.RGBwrap,input:o.RGBinput,label:o.RGBlabel},label:"b",value:i.b,onChange:n}))},aM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.colors,o=e.hex,n=e.rgb,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=F(ve({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},c)),L=function(y,T){y.hex?Wt(y.hex)&&t({hex:y.hex,source:"hex"},T):t(y,T)};return M.createElement(er,{style:u.Compact,styles:c},M.createElement("div",{style:u.compact,className:"compact-picker "+N},M.createElement("div",null,Ns(r,function(g){return M.createElement(oEe,{key:g,color:g,active:g.toLowerCase()===o,onClick:L,onSwatchHover:i})}),M.createElement("div",{style:u.clear})),M.createElement(nEe,{hex:o,rgb:n,onChange:L})))};aM.propTypes={colors:S.arrayOf(S.string),styles:S.object};aM.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}};be(aM);var aEe=function(e){var t=e.hover,i=e.color,r=e.onClick,o=e.onSwatchHover,n={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},a=F({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:n}},{hover:t});return M.createElement("div",{style:a.swatch},M.createElement(ls,{color:i,onClick:r,onHover:o,focusStyle:n}))};const MEe=Ra(aEe);var MM=function(e){var t=e.width,i=e.colors,r=e.onChange,o=e.onSwatchHover,n=e.triangle,a=e.styles,c=a===void 0?{}:a,l=e.className,N=l===void 0?"":l,u=F(ve({default:{card:{width:t,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},c),{"hide-triangle":n==="hide","top-left-triangle":n==="top-left","top-right-triangle":n==="top-right","bottom-left-triangle":n==="bottom-left","bottom-right-triangle":n==="bottom-right"}),L=function(y,T){return r({hex:y,source:"hex"},T)};return M.createElement("div",{style:u.card,className:"github-picker "+N},M.createElement("div",{style:u.triangleShadow}),M.createElement("div",{style:u.triangle}),Ns(i,function(g){return M.createElement(MEe,{color:g,key:g,onClick:L,onSwatchHover:o})}))};MM.propTypes={width:S.oneOfType([S.string,S.number]),colors:S.arrayOf(S.string),triangle:S.oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:S.object};MM.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}};be(MM);var cEe=function(e){var t=e.direction,i=F({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:t==="vertical"});return M.createElement("div",{style:i.picker})},uEe=Object.assign||function(s){for(var e=1;e.5});return M.createElement("div",{style:i.picker})},gEe=function(){var e=F({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return M.createElement("div",{style:e.pointer},M.createElement("div",{style:e.left},M.createElement("div",{style:e.leftInside})),M.createElement("div",{style:e.right},M.createElement("div",{style:e.rightInside})))},gl=function(e){var t=e.onClick,i=e.label,r=e.children,o=e.active,n=F({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:o});return M.createElement("div",{style:n.button,onClick:t},i||r)},jEe=function(e){var t=e.rgb,i=e.currentColor,r=F({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+t.r+","+t.g+", "+t.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:i,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return M.createElement("div",null,M.createElement("div",{style:r.label},"new"),M.createElement("div",{style:r.swatches},M.createElement("div",{style:r.new}),M.createElement("div",{style:r.current})),M.createElement("div",{style:r.label},"current"))},yEe=function(){function s(e,t){for(var i=0;i100&&(N.a=100),N.a/=100,t({h:r.h,s:r.s,l:r.l,a:N.a,source:"rgb"},u))};return M.createElement("div",{style:a.fields,className:"flexbox-fix"},M.createElement("div",{style:a.double},M.createElement(K,{style:{input:a.input,label:a.label},label:"hex",value:o.replace("#",""),onChange:c})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"r",value:i.r,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"g",value:i.g,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.single},M.createElement(K,{style:{input:a.input,label:a.label},label:"b",value:i.b,onChange:c,dragLabel:"true",dragMax:"255"})),M.createElement("div",{style:a.alpha},M.createElement(K,{style:{input:a.input,label:a.label},label:"a",value:Math.round(i.a*100),onChange:c,dragLabel:"true",dragMax:"100"})))},zEe=Object.assign||function(s){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(s,i)&&(t[i]=s[i]);return t}var jr=24,OEe=d4.default=function(s){var e=s.fill,t=e===void 0?"currentColor":e,i=s.width,r=i===void 0?jr:i,o=s.height,n=o===void 0?jr:o,a=s.style,c=a===void 0?{}:a,l=mEe(s,["fill","width","height","style"]);return yl.default.createElement("svg",jl({viewBox:"0 0 "+jr+" "+jr,style:jl({fill:t,width:r,height:n},c)},l),yl.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))},EEe=function(e){var t=e.color,i=e.onClick,r=i===void 0?function(){}:i,o=e.onSwatchHover,n=e.first,a=e.last,c=e.active,l=F({default:{color:{width:"40px",height:"24px",cursor:"pointer",background:t,marginBottom:"1px"},check:{color:eM(t),marginLeft:"8px",display:"none"}},first:{color:{overflow:"hidden",borderRadius:"2px 2px 0 0"}},last:{color:{overflow:"hidden",borderRadius:"0 0 2px 2px"}},active:{check:{display:"block"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},check:{color:"#333"}},transparent:{check:{color:"#333"}}},{first:n,last:a,active:c,"color-#FFFFFF":t==="#FFFFFF",transparent:t==="transparent"});return M.createElement(ls,{color:t,style:l.color,onClick:r,onHover:o,focusStyle:{boxShadow:"0 0 4px "+t}},M.createElement("div",{style:l.check},M.createElement(OEe,null)))},fEe=function(e){var t=e.onClick,i=e.onSwatchHover,r=e.group,o=e.active,n=F({default:{group:{paddingBottom:"10px",width:"40px",float:"left",marginRight:"10px"}}});return M.createElement("div",{style:n.group},Ns(r,function(a,c){return M.createElement(EEe,{key:a,color:a,active:a.toLowerCase()===o,first:c===0,last:c===r.length-1,onClick:t,onSwatchHover:i})}))},LM=function(e){var t=e.width,i=e.height,r=e.onChange,o=e.onSwatchHover,n=e.colors,a=e.hex,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=F(ve({default:{picker:{width:t,height:i},overflow:{height:i,overflowY:"scroll"},body:{padding:"16px 0 6px 16px"},clear:{clear:"both"}}},l)),g=function(T,d){return r({hex:T,source:"hex"},d)};return M.createElement("div",{style:L.picker,className:"swatches-picker "+u},M.createElement(er,null,M.createElement("div",{style:L.overflow},M.createElement("div",{style:L.body},Ns(n,function(y){return M.createElement(fEe,{key:y.toString(),group:y,active:a,onClick:g,onSwatchHover:o})}),M.createElement("div",{style:L.clear})))))};LM.propTypes={width:S.oneOfType([S.string,S.number]),height:S.oneOfType([S.string,S.number]),colors:S.arrayOf(S.arrayOf(S.string)),styles:S.object};LM.defaultProps={width:320,height:240,colors:[[zs[900],zs[700],zs[500],zs[300],zs[100]],[ws[900],ws[700],ws[500],ws[300],ws[100]],[Cs[900],Cs[700],Cs[500],Cs[300],Cs[100]],[Is[900],Is[700],Is[500],Is[300],Is[100]],[ps[900],ps[700],ps[500],ps[300],ps[100]],[As[900],As[700],As[500],As[300],As[100]],[ms[900],ms[700],ms[500],ms[300],ms[100]],[Os[900],Os[700],Os[500],Os[300],Os[100]],[Es[900],Es[700],Es[500],Es[300],Es[100]],["#194D33",Ci[700],Ci[500],Ci[300],Ci[100]],[fs[900],fs[700],fs[500],fs[300],fs[100]],[xs[900],xs[700],xs[500],xs[300],xs[100]],[_s[900],_s[700],_s[500],_s[300],_s[100]],[Ss[900],Ss[700],Ss[500],Ss[300],Ss[100]],[ks[900],ks[700],ks[500],ks[300],ks[100]],[Ys[900],Ys[700],Ys[500],Ys[300],Ys[100]],[vs[900],vs[700],vs[500],vs[300],vs[100]],[bs[900],bs[700],bs[500],bs[300],bs[100]],["#000000","#525252","#969696","#D9D9D9","#FFFFFF"]],styles:{}};be(LM);var gM=function(e){var t=e.onChange,i=e.onSwatchHover,r=e.hex,o=e.colors,n=e.width,a=e.triangle,c=e.styles,l=c===void 0?{}:c,N=e.className,u=N===void 0?"":N,L=F(ve({default:{card:{width:n,background:"#fff",border:"0 solid rgba(0,0,0,0.25)",boxShadow:"0 1px 4px rgba(0,0,0,0.25)",borderRadius:"4px",position:"relative"},body:{padding:"15px 9px 9px 15px"},label:{fontSize:"18px",color:"#fff"},triangle:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent #fff transparent",position:"absolute"},triangleShadow:{width:"0px",height:"0px",borderStyle:"solid",borderWidth:"0 9px 10px 9px",borderColor:"transparent transparent rgba(0,0,0,.1) transparent",position:"absolute"},hash:{background:"#F0F0F0",height:"30px",width:"30px",borderRadius:"4px 0 0 4px",float:"left",color:"#98A1A4",display:"flex",alignItems:"center",justifyContent:"center"},input:{width:"100px",fontSize:"14px",color:"#666",border:"0px",outline:"none",height:"28px",boxShadow:"inset 0 0 0 1px #F0F0F0",boxSizing:"content-box",borderRadius:"0 4px 4px 0",float:"left",paddingLeft:"8px"},swatch:{width:"30px",height:"30px",float:"left",borderRadius:"4px",margin:"0 6px 6px 0"},clear:{clear:"both"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-10px",left:"12px"},triangleShadow:{top:"-11px",left:"12px"}},"top-right-triangle":{triangle:{top:"-10px",right:"12px"},triangleShadow:{top:"-11px",right:"12px"}}},l),{"hide-triangle":a==="hide","top-left-triangle":a==="top-left","top-right-triangle":a==="top-right"}),g=function(T,d){Wt(T)&&t({hex:T,source:"hex"},d)};return M.createElement("div",{style:L.card,className:"twitter-picker "+u},M.createElement("div",{style:L.triangleShadow}),M.createElement("div",{style:L.triangle}),M.createElement("div",{style:L.body},Ns(o,function(y,T){return M.createElement(ls,{key:T,color:y,hex:y,style:L.swatch,onClick:g,onHover:i,focusStyle:{boxShadow:"0 0 4px "+y}})}),M.createElement("div",{style:L.hash},"#"),M.createElement(K,{label:null,style:{input:L.input},value:r.replace("#",""),onChange:g}),M.createElement("div",{style:L.clear})))};gM.propTypes={width:S.oneOfType([S.string,S.number]),triangle:S.oneOf(["hide","top-left","top-right"]),colors:S.arrayOf(S.string),styles:S.object};gM.defaultProps={width:276,colors:["#FF6900","#FCB900","#7BDCB5","#00D084","#8ED1FC","#0693E3","#ABB8C3","#EB144C","#F78DA7","#9900EF"],triangle:"top-left",styles:{}};be(gM);var jM=function(e){var t=F({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",border:"2px #fff solid",transform:"translate(-12px, -13px)",background:"hsl("+Math.round(e.hsl.h)+", "+Math.round(e.hsl.s*100)+"%, "+Math.round(e.hsl.l*100)+"%)"}}});return M.createElement("div",{style:t.picker})};jM.propTypes={hsl:S.shape({h:S.number,s:S.number,l:S.number,a:S.number})};jM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var yM=function(e){var t=F({default:{picker:{width:"20px",height:"20px",borderRadius:"22px",transform:"translate(-10px, -7px)",background:"hsl("+Math.round(e.hsl.h)+", 100%, 50%)",border:"2px white solid"}}});return M.createElement("div",{style:t.picker})};yM.propTypes={hsl:S.shape({h:S.number,s:S.number,l:S.number,a:S.number})};yM.defaultProps={hsl:{a:1,h:249.94,l:.2,s:.5}};var xEe=function(e){var t=e.onChange,i=e.rgb,r=e.hsl,o=e.hex,n=e.hsv,a=function(g,y){if(g.hex)Wt(g.hex)&&t({hex:g.hex,source:"hex"},y);else if(g.rgb){var T=g.rgb.split(",");Go(g.rgb,"rgb")&&t({r:T[0],g:T[1],b:T[2],a:1,source:"rgb"},y)}else if(g.hsv){var d=g.hsv.split(",");Go(g.hsv,"hsv")&&(d[2]=d[2].replace("%",""),d[1]=d[1].replace("%",""),d[0]=d[0].replace("°",""),d[1]==1?d[1]=.01:d[2]==1&&(d[2]=.01),t({h:Number(d[0]),s:Number(d[1]),v:Number(d[2]),source:"hsv"},y))}else if(g.hsl){var z=g.hsl.split(",");Go(g.hsl,"hsl")&&(z[2]=z[2].replace("%",""),z[1]=z[1].replace("%",""),z[0]=z[0].replace("°",""),u[1]==1?u[1]=.01:u[2]==1&&(u[2]=.01),t({h:Number(z[0]),s:Number(z[1]),v:Number(z[2]),source:"hsl"},y))}},c=F({default:{wrap:{display:"flex",height:"100px",marginTop:"4px"},fields:{width:"100%"},column:{paddingTop:"10px",display:"flex",justifyContent:"space-between"},double:{padding:"0px 4.4px",boxSizing:"border-box"},input:{width:"100%",height:"38px",boxSizing:"border-box",padding:"4px 10% 3px",textAlign:"center",border:"1px solid #dadce0",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",fontFamily:"Roboto,Arial,sans-serif"},input2:{height:"38px",width:"100%",border:"1px solid #dadce0",boxSizing:"border-box",fontSize:"11px",textTransform:"lowercase",borderRadius:"5px",outline:"none",paddingLeft:"10px",fontFamily:"Roboto,Arial,sans-serif"},label:{textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"35px",top:"-6px",left:"0",right:"0",marginLeft:"auto",marginRight:"auto",fontFamily:"Roboto,Arial,sans-serif"},label2:{left:"10px",textAlign:"center",fontSize:"12px",background:"#fff",position:"absolute",textTransform:"uppercase",color:"#3c4043",width:"32px",top:"-6px",fontFamily:"Roboto,Arial,sans-serif"},single:{flexGrow:"1",margin:"0px 4.4px"}}}),l=i.r+", "+i.g+", "+i.b,N=Math.round(r.h)+"°, "+Math.round(r.s*100)+"%, "+Math.round(r.l*100)+"%",u=Math.round(n.h)+"°, "+Math.round(n.s*100)+"%, "+Math.round(n.v*100)+"%";return M.createElement("div",{style:c.wrap,className:"flexbox-fix"},M.createElement("div",{style:c.fields},M.createElement("div",{style:c.double},M.createElement(K,{style:{input:c.input,label:c.label},label:"hex",value:o,onChange:a})),M.createElement("div",{style:c.column},M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"rgb",value:l,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsv",value:u,onChange:a})),M.createElement("div",{style:c.single},M.createElement(K,{style:{input:c.input2,label:c.label2},label:"hsl",value:N,onChange:a})))))},TM=function(e){var t=e.width,i=e.onChange,r=e.rgb,o=e.hsl,n=e.hsv,a=e.hex,c=e.header,l=e.styles,N=l===void 0?{}:l,u=e.className,L=u===void 0?"":u,g=F(ve({default:{picker:{width:t,background:"#fff",border:"1px solid #dfe1e5",boxSizing:"initial",display:"flex",flexWrap:"wrap",borderRadius:"8px 8px 0px 0px"},head:{height:"57px",width:"100%",paddingTop:"16px",paddingBottom:"16px",paddingLeft:"16px",fontSize:"20px",boxSizing:"border-box",fontFamily:"Roboto-Regular,HelveticaNeue,Arial,sans-serif"},saturation:{width:"70%",padding:"0px",position:"relative",overflow:"hidden"},swatch:{width:"30%",height:"228px",padding:"0px",background:"rgba("+r.r+", "+r.g+", "+r.b+", 1)",position:"relative",overflow:"hidden"},body:{margin:"auto",width:"95%"},controls:{display:"flex",boxSizing:"border-box",height:"52px",paddingTop:"22px"},color:{width:"32px"},hue:{height:"8px",position:"relative",margin:"0px 16px 0px 16px",width:"100%"},Hue:{radius:"2px"}}},N));return M.createElement("div",{style:g.picker,className:"google-picker "+L},M.createElement("div",{style:g.head},c),M.createElement("div",{style:g.swatch}),M.createElement("div",{style:g.saturation},M.createElement(zo,{hsl:o,hsv:n,pointer:jM,onChange:i})),M.createElement("div",{style:g.body},M.createElement("div",{style:g.controls,className:"flexbox-fix"},M.createElement("div",{style:g.hue},M.createElement(oi,{style:g.Hue,hsl:o,radius:"4px",pointer:yM,onChange:i}))),M.createElement(xEe,{rgb:r,hsl:o,hex:a,hsv:n,onChange:i})))};TM.propTypes={width:S.oneOfType([S.string,S.number]),styles:S.object,header:S.string};TM.defaultProps={width:652,styles:{},header:"Color picker"};be(TM);const He={color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{mt:"16px",p:"5px",backgroundColor:"background.paper",borderRadius:"1px",boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{"& .MuiPaper-root":{textAlign:"right",backgroundColor:"#00000000",boxShadow:"none"}},popoverList:{padding:0},closeButton:s=>({backgroundColor:`${s.palette.background.paper} !important`,borderRadius:"0 0 25% 25%","&:hover":{backgroundColor:`${s.palette.secondary.main} !important`}}),textDense:{mt:0,mb:0},iconButton:{width:16,height:16},button:{width:32,height:32,minWidth:32,minHeight:32}};class Ii extends f.Component{constructor(e){super(e),this.state={displayColorPicker:!1,color:this.props.value||this.props.color||"",anchorEl:null}}handleClick=e=>{this.setState({displayColorPicker:!this.state.displayColorPicker,anchorEl:this.state.displayColorPicker?null:e.currentTarget})};handleClose=()=>{this.setState({displayColorPicker:!1,anchorEl:null})};static getColor(e,t){if(e&&typeof e=="object"){const i=e;if(i.rgb)return t?`#${i.rgb.r.toString(16).padStart(2,"0")}${i.rgb.g.toString(16).padStart(2,"0")}${i.rgb.b.toString(16).padStart(2,"0")}`:`rgba(${i.rgb.r},${i.rgb.g},${i.rgb.b},${i.rgb.a})`;const r=e;return t?`#${r.r.toString(16).padStart(2,"0")}${r.g.toString(16).padStart(2,"0")}${r.b.toString(16).padStart(2,"0")}`:`rgba(${r.r},${r.g},${r.b},${r.a})`}return typeof e=="string"?t?Ii.rgb2hex(e||""):e||"":""}static rgb2hex(e){const t=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(t){const i=parseInt(t[1],10).toString(16).padStart(2,"0"),r=parseInt(t[2],10).toString(16).padStart(2,"0"),o=parseInt(t[3],10).toString(16).padStart(2,"0");return(t==null?void 0:t.length)===4?`#${i}${r}${o}`:e}return e}handleChange=e=>{this.setState({color:e},()=>this.props.onChange&&this.props.onChange(Ii.getColor(e)))};componentDidUpdate(e,t){const i=Ii.getColor(this.props.color||this.props.value||"");i!==t.color&&this.setState({color:i})}renderCustomPalette(){return this.props.customPalette?M.createElement("div",{style:{width:"100%",display:"flex",flexWrap:"wrap"}},this.props.customPalette.map(e=>M.createElement(j.Button,{style:He.button,key:e,onClick:()=>{this.handleChange(e),setTimeout(()=>this.handleClose(),300)}},M.createElement("div",{style:{...He.iconButton,background:e}})))):null}render(){var i;const e={...this.props.style||{}};e.position="relative";const{color:t}=this.state;return M.createElement(j.Box,{component:"div",style:e,sx:this.props.sx||void 0,className:this.props.className||""},this.props.noInputField?null:M.createElement(j.TextField,{disabled:this.props.disabled,variant:"standard",id:"ar_color_picker_name",label:this.props.label||this.props.name,value:t||"",margin:"dense",sx:{"&.MuiFormControl-root":He.textDense,width:t?"calc(100% - 80px)":"calc(100% - 56px)",mr:t?void 0:1},onChange:r=>this.handleChange(r.target.value)}),!this.props.noInputField&&t?M.createElement(j.IconButton,{disabled:this.props.disabled,onClick:()=>this.handleChange(""),size:"small",style:this.props.label||this.props.name?He.delButton:void 0},M.createElement(nt,null)):null,M.createElement(j.Box,{component:"div",onClick:r=>!this.props.disabled&&this.handleClick(r),title:h.t("ra_Select color"),sx:{...He.swatch,...this.props.disabled?He.swatchDisabled:void 0,background:t?void 0:"transparent",border:t?void 0:"1px dashed #ccc",boxSizing:"border-box",marginTop:this.props.noInputField||!(this.props.label||this.props.name)?0:void 0}},M.createElement("div",{style:{...He.color,background:Ii.getColor(t),width:this.props.noInputField?this.props.barWidth||16:this.props.barWidth||36}})),this.state.displayColorPicker&&!this.props.disabled?M.createElement(j.Menu,{sx:{...He.popover,"&. MuiMenu-list":He.popoverList},anchorEl:this.state.anchorEl,open:!0,onClose:()=>this.handleClose()},M.createElement(rEe,{color:this.state.color||void 0,onChangeComplete:r=>this.handleChange(r.rgb),styles:{default:{picker:{backgroundColor:((i=this.props.theme)==null?void 0:i.palette.background.paper)||"#888"}}}}),t&&this.props.noInputField?M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleChange("")},M.createElement(nt,null)):null,M.createElement(j.IconButton,{sx:He.closeButton,onClick:()=>this.handleClose()},M.createElement(Ne,null)),this.renderCustomPalette()):null)}}var D4={exports:{}};(function(s,e){(function(i,r){s.exports=r()})(globalThis,()=>(()=>{var t={949:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.CronParser=void 0;var l=c(515),N=function(){function u(L,g,y){g===void 0&&(g=!0),y===void 0&&(y=!1),this.expression=L,this.dayOfWeekStartIndexZero=g,this.monthStartIndexZero=y}return u.prototype.parse=function(){var L,g,y=(L=this.expression)!==null&&L!==void 0?L:"";if(y==="@reboot")return g=["@reboot","","","","","",""],g;if(y.startsWith("@")){var T=this.parseSpecial(this.expression);g=this.extractParts(T)}else g=this.extractParts(this.expression);return this.normalize(g),this.validate(g),g},u.prototype.parseSpecial=function(L){var g={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *","@reboot":"@reboot"},y=g[L];if(!y)throw new Error("Unknown special expression.");return y},u.prototype.extractParts=function(L){if(!this.expression)throw new Error("cron expression is empty");for(var g=L.trim().split(/[ ]+/),y=0;y7)throw new Error("Expression has ".concat(g.length," parts; too many!"));return g},u.prototype.normalize=function(L){var g=this;if(L[3]=L[3].replace("?","*"),L[5]=L[5].replace("?","*"),L[2]=L[2].replace("?","*"),L[0].indexOf("0/")==0&&(L[0]=L[0].replace("0/","*/")),L[1].indexOf("0/")==0&&(L[1]=L[1].replace("0/","*/")),L[2].indexOf("0/")==0&&(L[2]=L[2].replace("0/","*/")),L[3].indexOf("1/")==0&&(L[3]=L[3].replace("1/","*/")),L[4].indexOf("1/")==0&&(L[4]=L[4].replace("1/","*/")),L[6].indexOf("1/")==0&&(L[6]=L[6].replace("1/","*/")),L[5]=L[5].replace(/(^\d)|([^#/\s]\d)/g,function(A){var D=A.replace(/\D/,""),p=D;return g.dayOfWeekStartIndexZero?D=="7"&&(p="0"):p=(parseInt(D)-1).toString(),A.replace(D,p)}),L[5]=="L"&&(L[5]="6"),L[3]=="?"&&(L[3]="*"),L[3].indexOf("W")>-1&&(L[3].indexOf(",")>-1||L[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var y={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var T in y)L[5]=L[5].replace(new RegExp(T,"gi"),y[T].toString());L[4]=L[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(A){var D=A.replace(/\D/,""),p=D;return g.monthStartIndexZero&&(p=(parseInt(D)+1).toString()),A.replace(D,p)});var d={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var z in d)L[4]=L[4].replace(new RegExp(z,"gi"),d[z].toString());L[0]=="0"&&(L[0]=""),!/\*|\-|\,|\//.test(L[2])&&(/\*|\//.test(L[1])||/\*|\//.test(L[0]))&&(L[2]+="-".concat(L[2]));for(var I=0;I-1&&!/^\*|\-|\,/.test(L[I])){var C=null;switch(I){case 4:C="12";break;case 5:C="6";break;case 6:C="9999";break;default:C=null;break}if(C!==null){var m=L[I].split("/");L[I]="".concat(m[0],"-").concat(C,"/").concat(m[1])}}},u.prototype.validate=function(L){var g="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(L[0],g),this.validateOnlyExpectedCharactersFound(L[1],g),this.validateOnlyExpectedCharactersFound(L[2],g),this.validateOnlyExpectedCharactersFound(L[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(L[4],g),this.validateOnlyExpectedCharactersFound(L[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(L[6],g),this.validateAnyRanges(L)},u.prototype.validateAnyRanges=function(L){l.default.secondRange(L[0]),l.default.minuteRange(L[1]),l.default.hourRange(L[2]),l.default.dayOfMonthRange(L[3]),l.default.monthRange(L[4],this.monthStartIndexZero),l.default.dayOfWeekRange(L[5],this.dayOfWeekStartIndexZero)},u.prototype.validateOnlyExpectedCharactersFound=function(L,g){var y=L.match(new RegExp("[^".concat(g,"]+"),"gi"));if(y&&y.length)throw new Error("Expression contains invalid values: '".concat(y.toString(),"'"))},u}();a.CronParser=N},333:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.ExpressionDescriptor=void 0;var l=c(823),N=c(949),u=function(){function L(g,y){if(this.expression=g,this.options=y,this.expressionParts=new Array(5),!this.options.locale&&L.defaultLocale&&(this.options.locale=L.defaultLocale),!L.locales[this.options.locale]){var T=Object.keys(L.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(T,"'.")),this.options.locale=T}this.i18n=L.locales[this.options.locale],y.use24HourTimeFormat===void 0&&(y.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return L.toString=function(g,y){var T=y===void 0?{}:y,d=T.throwExceptionOnParseError,z=d===void 0?!0:d,I=T.verbose,C=I===void 0?!1:I,m=T.dayOfWeekStartIndexZero,A=m===void 0?!0:m,D=T.monthStartIndexZero,p=D===void 0?!1:D,_=T.use24HourTimeFormat,x=T.locale,P=x===void 0?null:x,v={throwExceptionOnParseError:z,verbose:C,dayOfWeekStartIndexZero:A,monthStartIndexZero:p,use24HourTimeFormat:_,locale:P};v.tzOffset&&console.warn("'tzOffset' option has been deprecated and is no longer supported.");var ee=new L(g,v);return ee.getFullDescription()},L.initialize=function(g,y){y===void 0&&(y="en"),L.specialCharacters=["/","-",",","*"],L.defaultLocale=y,g.load(L.locales)},L.prototype.getFullDescription=function(){var g,y,T="";try{var d=new N.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);if(this.expressionParts=d.parse(),this.expressionParts[0]==="@reboot")return((y=(g=this.i18n).atReboot)===null||y===void 0?void 0:y.call(g))||"Run once, at startup";var z=this.getTimeOfDayDescription(),I=this.getDayOfMonthDescription(),C=this.getMonthDescription(),m=this.getDayOfWeekDescription(),A=this.getYearDescription();T+=z+I+m+C+A,T=this.transformVerbosity(T,!!this.options.verbose),T=T.charAt(0).toLocaleUpperCase()+T.substr(1)}catch(D){if(!this.options.throwExceptionOnParseError)T=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(D)}return T},L.prototype.getTimeOfDayDescription=function(){var g=this.expressionParts[0],y=this.expressionParts[1],T=this.expressionParts[2],d="";if(!l.StringUtilities.containsAny(y,L.specialCharacters)&&!l.StringUtilities.containsAny(T,L.specialCharacters)&&!l.StringUtilities.containsAny(g,L.specialCharacters))d+=this.i18n.atSpace()+this.formatTime(T,y,g);else if(!g&&y.indexOf("-")>-1&&!(y.indexOf(",")>-1)&&!(y.indexOf("/")>-1)&&!l.StringUtilities.containsAny(T,L.specialCharacters)){var z=y.split("-");d+=l.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(T,z[0],""),this.formatTime(T,z[1],""))}else if(!g&&T.indexOf(",")>-1&&T.indexOf("-")==-1&&T.indexOf("/")==-1&&!l.StringUtilities.containsAny(y,L.specialCharacters)){var I=T.split(",");d+=this.i18n.at();for(var C=0;C-1?I=d.substring(0,d.indexOf("#")):d.indexOf("L")>-1&&(I=I.replace("L",""));var C=parseInt(I),m=g.i18n.daysOfTheWeekInCase?g.i18n.daysOfTheWeekInCase(z)[C]:y[C];if(d.indexOf("#")>-1){var A=null,D=d.substring(d.indexOf("#")+1),p=d.substring(0,d.indexOf("#"));switch(D){case"1":A=g.i18n.first(p);break;case"2":A=g.i18n.second(p);break;case"3":A=g.i18n.third(p);break;case"4":A=g.i18n.fourth(p);break;case"5":A=g.i18n.fifth(p);break}m=A+" "+m}return m},function(d){return parseInt(d)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0DaysOfTheWeek(d),d)},function(d){var z=d.substring(0,d.indexOf("-")),I=g.expressionParts[3]!="*";return I?g.i18n.commaAndX0ThroughX1(z):g.i18n.commaX0ThroughX1(z)},function(d){var z=null;if(d.indexOf("#")>-1){var I=d.substring(d.indexOf("#")+1),C=d.substring(0,d.indexOf("#"));z=g.i18n.commaOnThe(I,C).trim()+g.i18n.spaceX0OfTheMonth()}else if(d.indexOf("L")>-1)z=g.i18n.commaOnTheLastX0OfTheMonth(d.replace("L",""));else{var m=g.expressionParts[3]!="*";z=m?g.i18n.commaAndOnX0():g.i18n.commaOnlyOnX0(d)}return z}),T},L.prototype.getMonthDescription=function(){var g=this,y=this.i18n.monthsOfTheYear(),T=this.getSegmentDescription(this.expressionParts[4],"",function(d,z){return z&&g.i18n.monthsOfTheYearInCase?g.i18n.monthsOfTheYearInCase(z)[parseInt(d)-1]:y[parseInt(d)-1]},function(d){return parseInt(d)==1?"":l.StringUtilities.format(g.i18n.commaEveryX0Months(d),d)},function(d){return g.i18n.commaMonthX0ThroughMonthX1()||g.i18n.commaX0ThroughX1()},function(d){return g.i18n.commaOnlyInMonthX0?g.i18n.commaOnlyInMonthX0():g.i18n.commaOnlyInX0()});return T},L.prototype.getDayOfMonthDescription=function(){var g=this,y=null,T=this.expressionParts[3];switch(T){case"L":y=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":y=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var d=T.match(/(\d{1,2}W)|(W\d{1,2})/);if(d){var z=parseInt(d[0].replace("W","")),I=z==1?this.i18n.firstWeekday():l.StringUtilities.format(this.i18n.weekdayNearestDayX0(),z.toString());y=l.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),I);break}else{var C=T.match(/L-(\d{1,2})/);if(C){var m=C[1];y=l.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(m),m);break}else{if(T=="*"&&this.expressionParts[5]!="*")return"";y=this.getSegmentDescription(T,this.i18n.commaEveryDay(),function(A){return A=="L"?g.i18n.lastDay():g.i18n.dayX0?l.StringUtilities.format(g.i18n.dayX0(),A):A},function(A){return A=="1"?g.i18n.commaEveryDay():g.i18n.commaEveryX0Days(A)},function(A){return g.i18n.commaBetweenDayX0AndX1OfTheMonth(A)},function(A){return g.i18n.commaOnDayX0OfTheMonth(A)})}break}}return y},L.prototype.getYearDescription=function(){var g=this,y=this.getSegmentDescription(this.expressionParts[6],"",function(T){return/^\d+$/.test(T)?new Date(parseInt(T),1).getFullYear().toString():T},function(T){return l.StringUtilities.format(g.i18n.commaEveryX0Years(T),T)},function(T){return g.i18n.commaYearX0ThroughYearX1()||g.i18n.commaX0ThroughX1()},function(T){return g.i18n.commaOnlyInYearX0?g.i18n.commaOnlyInYearX0():g.i18n.commaOnlyInX0()});return y},L.prototype.getSegmentDescription=function(g,y,T,d,z,I){var C=null,m=g.indexOf("/")>-1,A=g.indexOf("-")>-1,D=g.indexOf(",")>-1;if(!g)C="";else if(g==="*")C=y;else if(!m&&!A&&!D)C=l.StringUtilities.format(I(g),T(g));else if(D){for(var p=g.split(","),_="",x=0;x0&&p.length>2&&(_+=",",x0&&p.length>1&&(x==p.length-1||p.length==2)&&(_+="".concat(this.i18n.spaceAnd()," ")),p[x].indexOf("/")>-1||p[x].indexOf("-")>-1){var P=p[x].indexOf("-")>-1&&p[x].indexOf("/")==-1,v=this.getSegmentDescription(p[x],y,T,d,P?this.i18n.commaX0ThroughX1:z,I);P&&(v=v.replace(", ","")),_+=v}else m?_+=this.getSegmentDescription(p[x],y,T,d,z,I):_+=T(p[x]);m?C=_:C=l.StringUtilities.format(I(g),_)}else if(m){var p=g.split("/");if(C=l.StringUtilities.format(d(p[1]),p[1]),p[0].indexOf("-")>-1){var ee=this.generateRangeSegmentDescription(p[0],z,T);ee.indexOf(", ")!=0&&(C+=", "),C+=ee}else if(p[0].indexOf("*")==-1){var ue=l.StringUtilities.format(I(p[0]),T(p[0]));ue=ue.replace(", ",""),C+=l.StringUtilities.format(this.i18n.commaStartingX0(),ue)}}else A&&(C=this.generateRangeSegmentDescription(g,z,T));return C},L.prototype.generateRangeSegmentDescription=function(g,y,T){var d="",z=g.split("-"),I=T(z[0],1),C=T(z[1],2),m=y(g);return d+=l.StringUtilities.format(m,I,C),d},L.prototype.formatTime=function(g,y,T){var d=0,z=0,I=parseInt(g)+d,C=parseInt(y)+z;C>=60?(C-=60,I+=1):C<0&&(C+=60,I-=1),I>=24?I=I-24:I<0&&(I=24+I);var m="",A=!1;this.options.use24HourTimeFormat||(A=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),m=A?"".concat(this.getPeriod(I)," "):" ".concat(this.getPeriod(I)),I>12&&(I-=12),I===0&&(I=12));var D="";return T&&(D=":".concat(("00"+T).substring(T.length))),"".concat(A?m:"").concat(("00"+I.toString()).substring(I.toString().length),":").concat(("00"+C.toString()).substring(C.toString().length)).concat(D).concat(A?"":m)},L.prototype.transformVerbosity=function(g,y){if(!y&&(g=g.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),g=g.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),g=g.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),g=g.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var T=0,d=Object.entries(this.i18n.conciseVerbosityReplacements());T=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},L.locales={},L}();a.ExpressionDescriptor=u},747:(n,a,c)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.enLocaleLoader=void 0;var l=c(486),N=function(){function u(){}return u.prototype.load=function(L){L.en=new l.en},u}();a.enLocaleLoader=N},486:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.en=void 0;var c=function(){function l(){}return l.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},l.prototype.atX0MinutesPastTheHourGt20=function(){return null},l.prototype.commaMonthX0ThroughMonthX1=function(){return null},l.prototype.commaYearX0ThroughYearX1=function(){return null},l.prototype.use24HourTimeFormatByDefault=function(){return!1},l.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},l.prototype.everyMinute=function(){return"every minute"},l.prototype.everyHour=function(){return"every hour"},l.prototype.atSpace=function(){return"At "},l.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},l.prototype.at=function(){return"At"},l.prototype.spaceAnd=function(){return" and"},l.prototype.everySecond=function(){return"every second"},l.prototype.everyX0Seconds=function(){return"every %s seconds"},l.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},l.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},l.prototype.everyX0Minutes=function(){return"every %s minutes"},l.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},l.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},l.prototype.everyX0Hours=function(){return"every %s hours"},l.prototype.betweenX0AndX1=function(){return"between %s and %s"},l.prototype.atX0=function(){return"at %s"},l.prototype.commaEveryDay=function(){return", every day"},l.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},l.prototype.commaX0ThroughX1=function(){return", %s through %s"},l.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},l.prototype.first=function(){return"first"},l.prototype.second=function(){return"second"},l.prototype.third=function(){return"third"},l.prototype.fourth=function(){return"fourth"},l.prototype.fifth=function(){return"fifth"},l.prototype.commaOnThe=function(){return", on the "},l.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},l.prototype.lastDay=function(){return"the last day"},l.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},l.prototype.commaOnlyOnX0=function(){return", only on %s"},l.prototype.commaAndOnX0=function(){return", and on %s"},l.prototype.commaEveryX0Months=function(){return", every %s months"},l.prototype.commaOnlyInX0=function(){return", only in %s"},l.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},l.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},l.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},l.prototype.firstWeekday=function(){return"first weekday"},l.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},l.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},l.prototype.commaEveryX0Days=function(){return", every %s days"},l.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},l.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},l.prototype.commaEveryHour=function(){return", every hour"},l.prototype.commaEveryX0Years=function(){return", every %s years"},l.prototype.commaStartingX0=function(){return", starting %s"},l.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},l.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},l.prototype.atReboot=function(){return"Run once, at startup"},l}();a.en=c},515:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0});function c(N,u){if(!N)throw new Error(u)}var l=function(){function N(){}return N.secondRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"seconds part must be >= 0 and <= 59")}},N.minuteRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=59,"minutes part must be >= 0 and <= 59")}},N.hourRange=function(u){for(var L=u.split(","),g=0;g=0&&y<=23,"hours part must be >= 0 and <= 23")}},N.dayOfMonthRange=function(u){for(var L=u.split(","),g=0;g=1&&y<=31,"DOM part must be >= 1 and <= 31")}},N.monthRange=function(u,L){for(var g=u.split(","),y=0;y=1&&T<=12,L?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},N.dayOfWeekRange=function(u,L){for(var g=u.split(","),y=0;y=0&&T<=6,L?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},N}();a.default=l},823:(n,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.StringUtilities=void 0;var c=function(){function l(){}return l.format=function(N){for(var u=[],L=1;L-1})},l}();a.StringUtilities=c}},i={};function r(n){var a=i[n];if(a!==void 0)return a.exports;var c=i[n]={exports:{}};return t[n](c,c.exports,r),c.exports}var o={};return(()=>{var n=o;Object.defineProperty(n,"__esModule",{value:!0}),n.toString=void 0;var a=r(333),c=r(747);a.ExpressionDescriptor.initialize(new c.enLocaleLoader),n.default=a.ExpressionDescriptor;var l=a.ExpressionDescriptor.toString;n.toString=l})(),o})())})(D4);var lt=D4.exports;const _Ee=WL(lt);var SEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.fr=void 0;var N=function(){function u(){}return u.prototype.conciseVerbosityReplacements=function(){return{"de le":"du"}},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe."},u.prototype.everyMinute=function(){return"toutes les minutes"},u.prototype.everyHour=function(){return"toutes les heures"},u.prototype.atSpace=function(){return"À "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Toutes les minutes entre %s et %s"},u.prototype.at=function(){return"À"},u.prototype.spaceAnd=function(){return" et"},u.prototype.everySecond=function(){return"toutes les secondes"},u.prototype.everyX0Seconds=function(){return"toutes les %s secondes"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"les secondes entre %s et %s après la minute"},u.prototype.atX0SecondsPastTheMinute=function(){return"%s secondes après la minute"},u.prototype.everyX0Minutes=function(){return"toutes les %s minutes"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"les minutes entre %s et %s après l'heure"},u.prototype.atX0MinutesPastTheHour=function(){return"%s minutes après l'heure"},u.prototype.everyX0Hours=function(){return"toutes les %s heures"},u.prototype.betweenX0AndX1=function(){return"de %s à %s"},u.prototype.atX0=function(){return"%s"},u.prototype.commaEveryDay=function(){return", tous les jours"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", tous les %s jours de la semaine"},u.prototype.commaX0ThroughX1=function(){return", de %s à %s"},u.prototype.commaAndX0ThroughX1=function(){return", et de %s à %s"},u.prototype.first=function(){return"premier"},u.prototype.second=function(){return"second"},u.prototype.third=function(){return"troisième"},u.prototype.fourth=function(){return"quatrième"},u.prototype.fifth=function(){return"cinquième"},u.prototype.commaOnThe=function(){return", le "},u.prototype.spaceX0OfTheMonth=function(){return" %s du mois"},u.prototype.lastDay=function(){return"le dernier jour"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", le dernier %s du mois"},u.prototype.commaOnlyOnX0=function(){return", uniquement le %s"},u.prototype.commaAndOnX0=function(){return", et %s"},u.prototype.commaEveryX0Months=function(){return", tous les %s mois"},u.prototype.commaOnlyInX0=function(){return", uniquement en %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", le dernier jour du mois"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", le dernier jour ouvrable du mois"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s jours avant le dernier jour du mois"},u.prototype.firstWeekday=function(){return"premier jour ouvrable"},u.prototype.weekdayNearestDayX0=function(){return"jour ouvrable le plus proche du %s"},u.prototype.commaOnTheX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryX0Days=function(){return", tous les %s jours"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", du %s au %s du mois"},u.prototype.commaOnDayX0OfTheMonth=function(){return", le %s du mois"},u.prototype.commaEveryHour=function(){return", chaque heure"},u.prototype.commaEveryX0Years=function(){return", tous les %s ans"},u.prototype.commaDaysX0ThroughX1=function(){return", du %s au %s"},u.prototype.commaStartingX0=function(){return", à partir de %s"},u.prototype.daysOfTheWeek=function(){return["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},u.prototype.monthsOfTheYear=function(){return["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},u}();return l.fr=N,c().locales.fr=new N,n})())})(SEe);var kEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.es=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocurrió un error mientras se generaba la descripción de la expresión. Revise la sintaxis de la expresión de cron."},u.prototype.at=function(){return"A las"},u.prototype.atSpace=function(){return"A las "},u.prototype.atX0=function(){return"a las %s"},u.prototype.atX0MinutesPastTheHour=function(){return"a los %s minutos de la hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"a los %s segundos del minuto"},u.prototype.betweenX0AndX1=function(){return"entre las %s y las %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre los días %s y %s del mes"},u.prototype.commaEveryDay=function(){return", cada día"},u.prototype.commaEveryX0Days=function(){return", cada %s días"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s días de la semana"},u.prototype.commaEveryX0Months=function(){return", cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", el día %s del mes"},u.prototype.commaOnlyInX0=function(){return", sólo en %s"},u.prototype.commaOnlyOnX0=function(){return", sólo el %s"},u.prototype.commaAndOnX0=function(){return", y el %s"},u.prototype.commaOnThe=function(){return", en el "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", en el último día del mes"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en el último día de la semana del mes"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s días antes del último día del mes"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", en el último %s del mes"},u.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", y de %s a %s"},u.prototype.everyHour=function(){return"cada hora"},u.prototype.everyMinute=function(){return"cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minuto entre las %s y las %s"},u.prototype.everySecond=function(){return"cada segundo"},u.prototype.everyX0Hours=function(){return"cada %s horas"},u.prototype.everyX0Minutes=function(){return"cada %s minutos"},u.prototype.everyX0Seconds=function(){return"cada %s segundos"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primero"},u.prototype.firstWeekday=function(){return"primer día de la semana"},u.prototype.fourth=function(){return"cuarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minuto %s al %s pasada la hora"},u.prototype.second=function(){return"segundo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En los segundos %s al %s de cada minuto"},u.prototype.spaceAnd=function(){return" y"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},u.prototype.lastDay=function(){return"el último día"},u.prototype.third=function(){return"tercer"},u.prototype.weekdayNearestDayX0=function(){return"día de la semana más próximo al %s"},u.prototype.commaEveryX0Years=function(){return", cada %s años"},u.prototype.commaStartingX0=function(){return", comenzando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},u.prototype.monthsOfTheYear=function(){return["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},u}();return l.es=N,c().locales.es=new N,n})())})(kEe);var YEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.de=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"jede Minute"},u.prototype.everyHour=function(){return"jede Stunde"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Beim Generieren der Ausdrucksbeschreibung ist ein Fehler aufgetreten. Überprüfen Sie die Syntax des Cron-Ausdrucks."},u.prototype.atSpace=function(){return"Um "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Jede Minute zwischen %s und %s"},u.prototype.at=function(){return"Um"},u.prototype.spaceAnd=function(){return" und"},u.prototype.everySecond=function(){return"Jede Sekunde"},u.prototype.everyX0Seconds=function(){return"alle %s Sekunden"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"Sekunden %s bis %s"},u.prototype.atX0SecondsPastTheMinute=function(){return"bei Sekunde %s"},u.prototype.everyX0Minutes=function(){return"alle %s Minuten"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"Minuten %s bis %s"},u.prototype.atX0MinutesPastTheHour=function(){return"bei Minute %s"},u.prototype.everyX0Hours=function(){return"alle %s Stunden"},u.prototype.betweenX0AndX1=function(){return"zwischen %s und %s"},u.prototype.atX0=function(){return"um %s"},u.prototype.commaEveryDay=function(){return", jeden Tag"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", alle %s Tage der Woche"},u.prototype.commaX0ThroughX1=function(){return", %s bis %s"},u.prototype.commaAndX0ThroughX1=function(){return", und %s bis %s"},u.prototype.first=function(){return"ersten"},u.prototype.second=function(){return"zweiten"},u.prototype.third=function(){return"dritten"},u.prototype.fourth=function(){return"vierten"},u.prototype.fifth=function(){return"fünften"},u.prototype.commaOnThe=function(){return", am "},u.prototype.spaceX0OfTheMonth=function(){return" %s des Monats"},u.prototype.lastDay=function(){return"der letzte Tag"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", am letzten %s des Monats"},u.prototype.commaOnlyOnX0=function(){return", nur jeden %s"},u.prototype.commaAndOnX0=function(){return", und jeden %s"},u.prototype.commaEveryX0Months=function(){return", alle %s Monate"},u.prototype.commaOnlyInX0=function(){return", nur im %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", am letzten Tag des Monats"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", am letzten Werktag des Monats"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s tage vor dem letzten Tag des Monats"},u.prototype.firstWeekday=function(){return"ersten Werktag"},u.prototype.weekdayNearestDayX0=function(){return"Werktag am nächsten zum %s Tag"},u.prototype.commaOnTheX0OfTheMonth=function(){return", am %s des Monats"},u.prototype.commaEveryX0Days=function(){return", alle %s Tage"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", zwischen Tag %s und %s des Monats"},u.prototype.commaOnDayX0OfTheMonth=function(){return", an Tag %s des Monats"},u.prototype.commaEveryX0Years=function(){return", alle %s Jahre"},u.prototype.commaStartingX0=function(){return", beginnend %s"},u.prototype.daysOfTheWeek=function(){return["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},u.prototype.monthsOfTheYear=function(){return["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},u}();return l.de=N,c().locales.de=new N,n})())})(YEe);var vEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.it=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"È verificato un errore durante la generazione la descrizione espressione. Controllare la sintassi delle espressioni cron."},u.prototype.at=function(){return"Alle"},u.prototype.atSpace=function(){return"Alle "},u.prototype.atX0=function(){return"alle %s"},u.prototype.atX0MinutesPastTheHour=function(){return"al %s minuto passata l'ora"},u.prototype.atX0SecondsPastTheMinute=function(){return"al %s secondo passato il minuto"},u.prototype.betweenX0AndX1=function(){return"tra le %s e le %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tra il giorno %s e %s del mese"},u.prototype.commaEveryDay=function(){return", ogni giorno"},u.prototype.commaEveryX0Days=function(){return", ogni %s giorni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", ogni %s giorni della settimana"},u.prototype.commaEveryX0Months=function(){return", ogni %s mesi"},u.prototype.commaEveryX0Years=function(){return", ogni %s anni"},u.prototype.commaOnDayX0OfTheMonth=function(){return", il giorno %s del mese"},u.prototype.commaOnlyInX0=function(){return", solo in %s"},u.prototype.commaOnlyOnX0=function(){return", solo il %s"},u.prototype.commaAndOnX0=function(){return", e il %s"},u.prototype.commaOnThe=function(){return", il "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", l'ultimo giorno del mese"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", nell'ultima settimana del mese"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s giorni prima dell'ultimo giorno del mese"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", l'ultimo %s del mese"},u.prototype.commaOnTheX0OfTheMonth=function(){return", il %s del mese"},u.prototype.commaX0ThroughX1=function(){return", %s al %s"},u.prototype.commaAndX0ThroughX1=function(){return", e %s al %s"},u.prototype.everyHour=function(){return"ogni ora"},u.prototype.everyMinute=function(){return"ogni minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Ogni minuto tra le %s e le %s"},u.prototype.everySecond=function(){return"ogni secondo"},u.prototype.everyX0Hours=function(){return"ogni %s ore"},u.prototype.everyX0Minutes=function(){return"ogni %s minuti"},u.prototype.everyX0Seconds=function(){return"ogni %s secondi"},u.prototype.fifth=function(){return"quinto"},u.prototype.first=function(){return"primo"},u.prototype.firstWeekday=function(){return"primo giorno della settimana"},u.prototype.fourth=function(){return"quarto"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuti %s al %s dopo l'ora"},u.prototype.second=function(){return"secondo"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"secondi %s al %s oltre il minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s del mese"},u.prototype.lastDay=function(){return"l'ultimo giorno"},u.prototype.third=function(){return"terzo"},u.prototype.weekdayNearestDayX0=function(){return"giorno della settimana più vicino al %s"},u.prototype.commaStartingX0=function(){return", a partire %s"},u.prototype.daysOfTheWeek=function(){return["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},u.prototype.monthsOfTheYear=function(){return["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},u}();return l.it=N,c().locales.it=new N,n})())})(vEe);var bEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:g=>{g.exports=t}},r={};function o(g){var y=r[g];if(y!==void 0)return y.exports;var T=r[g]={exports:{}};return i[g](T,T.exports,o),T.exports}o.n=g=>{var y=g&&g.__esModule?()=>g.default:()=>g;return o.d(y,{a:y}),y},o.d=(g,y)=>{for(var T in y)o.o(y,T)&&!o.o(g,T)&&Object.defineProperty(g,T,{enumerable:!0,get:y[T]})},o.o=(g,y)=>Object.prototype.hasOwnProperty.call(g,y),o.r=g=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.ru=void 0;var N=function(g,y){var T=Number(g);return T!==void 0?y[T%100>4&&T%100<20?2:[2,0,1,1,1,2][T%10<5?Math.abs(T)%10:5]]:y[2]},u=function(g,y){var T=Number(g);return T!==void 0?y[T===0?0:T===1||T===2||T===4?1:2]:y[1]},L=function(){function g(){}return g.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},g.prototype.atX0MinutesPastTheHourGt20=function(){return null},g.prototype.commaMonthX0ThroughMonthX1=function(){return null},g.prototype.commaYearX0ThroughYearX1=function(){return null},g.prototype.use24HourTimeFormatByDefault=function(){return!0},g.prototype.everyMinute=function(){return"каждую минуту"},g.prototype.everyHour=function(){return"каждый час"},g.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Произошла ошибка во время генерации описания выражения. Проверьте синтаксис крон-выражения."},g.prototype.atSpace=function(){return"В "},g.prototype.everyMinuteBetweenX0AndX1=function(){return"Каждую минуту с %s по %s"},g.prototype.at=function(){return"В"},g.prototype.spaceAnd=function(){return" и"},g.prototype.everySecond=function(){return"каждую секунду"},g.prototype.everyX0Seconds=function(y){return N(y,["каждую %s секунду","каждые %s секунды","каждые %s секунд"])},g.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды с %s по %s"},g.prototype.atX0SecondsPastTheMinute=function(y){return N(y,["в %s секунду","в %s секунды","в %s секунд"])},g.prototype.everyX0Minutes=function(y){return N(y,["каждую %s минуту","каждые %s минуты","каждые %s минут"])},g.prototype.minutesX0ThroughX1PastTheHour=function(){return"минуты с %s по %s"},g.prototype.atX0MinutesPastTheHour=function(y){return N(y,["в %s минуту","в %s минуты","в %s минут"])},g.prototype.everyX0Hours=function(y){return N(y,["каждый %s час","каждые %s часа","каждые %s часов"])},g.prototype.betweenX0AndX1=function(){return"с %s по %s"},g.prototype.atX0=function(){return"в %s"},g.prototype.commaEveryDay=function(){return", каждый день"},g.prototype.commaEveryX0DaysOfTheWeek=function(y){return N(y,["",", каждые %s дня недели",", каждые %s дней недели"])},g.prototype.commaX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?", со %s по %s":", с %s по %s"},g.prototype.commaAndX0ThroughX1=function(y){return y&&(y[0]=="2"||y[0]=="3")?" и со %s по %s":" и с %s по %s"},g.prototype.first=function(y){return u(y,["первое","первый","первую"])},g.prototype.second=function(y){return u(y,["второе","второй","вторую"])},g.prototype.third=function(y){return u(y,["третье","третий","третью"])},g.prototype.fourth=function(y){return u(y,["четвертое","четвертый","четвертую"])},g.prototype.fifth=function(y){return u(y,["пятое","пятый","пятую"])},g.prototype.commaOnThe=function(y){return y==="2"?", во ":", в "},g.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},g.prototype.lastDay=function(){return"последний день"},g.prototype.commaOnTheLastX0OfTheMonth=function(y){return u(y,[", в последнее %s месяца",", в последний %s месяца",", в последнюю %s месяца"])},g.prototype.commaOnlyOnX0=function(y){return y&&y[0]==="2"?", только во %s":", только в %s"},g.prototype.commaAndOnX0=function(){return", и %s"},g.prototype.commaEveryX0Months=function(y){return N(y,[""," каждые %s месяца"," каждые %s месяцев"])},g.prototype.commaOnlyInMonthX0=function(){return", только %s"},g.prototype.commaOnlyInX0=function(){return", только в %s"},g.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последний день месяца"},g.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последний будний день месяца"},g.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(y){return N(y,[", за %s день до конца месяца",", за %s дня до конца месяца",", за %s дней до конца месяца"])},g.prototype.firstWeekday=function(){return"первый будний день"},g.prototype.weekdayNearestDayX0=function(){return"ближайший будний день к %s числу"},g.prototype.commaOnTheX0OfTheMonth=function(){return", в %s месяца"},g.prototype.commaEveryX0Days=function(y){return N(y,[", каждый %s день",", каждые %s дня",", каждые %s дней"])},g.prototype.commaBetweenDayX0AndX1OfTheMonth=function(y){return y&&y.substring(0,y.indexOf("-"))=="2"?", со %s по %s число месяца":", с %s по %s число месяца"},g.prototype.commaOnDayX0OfTheMonth=function(y){return y&&y[0]=="2"?", во %s число месяца":", в %s число месяца"},g.prototype.commaEveryX0Years=function(y){return N(y,[", каждый %s год",", каждые %s года",", каждые %s лет"])},g.prototype.commaStartingX0=function(){return", начало %s"},g.prototype.daysOfTheWeek=function(){return["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},g.prototype.daysOfTheWeekInCase=function(y){return y===void 0&&(y=2),y==1?["воскресенья","понедельника","вторника","среды","четверга","пятницы","субботы"]:["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"]},g.prototype.monthsOfTheYear=function(){return["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},g.prototype.monthsOfTheYearInCase=function(y){return y==1?["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]:this.monthsOfTheYear()},g}();return l.ru=L,c().locales.ru=new L,n})())})(bEe);var QEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.zh_CN=void 0;var N=function(){function u(){}return u.prototype.setPeriodBeforeTime=function(){return!0},u.prototype.pm=function(){return"下午"},u.prototype.am=function(){return"上午"},u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return", 从%s年至%s年"},u.prototype.use24HourTimeFormatByDefault=function(){return!1},u.prototype.everyMinute=function(){return"每分钟"},u.prototype.everyHour=function(){return"每小时"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"生成表达式描述时发生了错误,请检查cron表达式语法。"},u.prototype.atSpace=function(){return"在"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 至 %s 之间的每分钟"},u.prototype.at=function(){return"在"},u.prototype.spaceAnd=function(){return" 和"},u.prototype.everySecond=function(){return"每秒"},u.prototype.everyX0Seconds=function(){return"每隔 %s 秒"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分钟后的第 %s 到 %s 秒"},u.prototype.atX0SecondsPastTheMinute=function(){return"在一分钟后的第 %s 秒"},u.prototype.everyX0Minutes=function(){return"每隔 %s 分钟"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整点后的第 %s 到 %s 分钟"},u.prototype.atX0MinutesPastTheHour=function(){return"在整点后的第 %s 分钟"},u.prototype.everyX0Hours=function(){return"每隔 %s 小时"},u.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之间"},u.prototype.atX0=function(){return"在%s"},u.prototype.commaEveryDay=function(){return", 每天"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每周的每 %s 天"},u.prototype.commaX0ThroughX1=function(){return", %s至%s"},u.prototype.commaAndX0ThroughX1=function(){return", 和%s至%s"},u.prototype.first=function(){return"第一个"},u.prototype.second=function(){return"第二个"},u.prototype.third=function(){return"第三个"},u.prototype.fourth=function(){return"第四个"},u.prototype.fifth=function(){return"第五个"},u.prototype.commaOnThe=function(){return", 限每月的"},u.prototype.spaceX0OfTheMonth=function(){return"%s"},u.prototype.lastDay=function(){return"本月最后一天"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", 限每月的最后一个%s"},u.prototype.commaOnlyOnX0=function(){return", 仅%s"},u.prototype.commaAndOnX0=function(){return", 或者为%s"},u.prototype.commaEveryX0Months=function(){return", 每隔 %s 个月"},u.prototype.commaOnlyInX0=function(){return", 仅限%s"},u.prototype.commaOnlyInMonthX0=function(){return", 仅于%s份"},u.prototype.commaOnlyInYearX0=function(){return", 仅于 %s 年"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", 限每月的最后一天"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 限每月的最后一个工作日"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 限每月最后%s天"},u.prototype.firstWeekday=function(){return"第一个工作日"},u.prototype.weekdayNearestDayX0=function(){return"最接近 %s 号的工作日"},u.prototype.commaOnTheX0OfTheMonth=function(){return", 限每月的%s"},u.prototype.commaEveryX0Days=function(){return", 每隔 %s 天"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 限每月的 %s 至 %s 之间"},u.prototype.commaOnDayX0OfTheMonth=function(){return", 限每月%s"},u.prototype.commaEveryX0Years=function(){return", 每隔 %s 年"},u.prototype.commaStartingX0=function(){return", %s开始"},u.prototype.dayX0=function(){return" %s 号"},u.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},u.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},u}();return l.zh_CN=N,c().locales.zh_CN=new N,n})())})(QEe);var UEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.uk=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.everyMinute=function(){return"щохвилини"},u.prototype.everyHour=function(){return"щогодини"},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"ВІдбулася помилка підчас генерації опису. Перевірта правильність написання cron виразу."},u.prototype.atSpace=function(){return"О "},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Щохвилини між %s та %s"},u.prototype.at=function(){return"О"},u.prototype.spaceAnd=function(){return" та"},u.prototype.everySecond=function(){return"Щосекунди"},u.prototype.everyX0Seconds=function(){return"кожні %s секунд"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"з %s по %s секунду"},u.prototype.atX0SecondsPastTheMinute=function(){return"о %s секунді"},u.prototype.everyX0Minutes=function(){return"кожні %s хвилин"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"з %s по %s хвилину"},u.prototype.atX0MinutesPastTheHour=function(){return"о %s хвилині"},u.prototype.everyX0Hours=function(){return"кожні %s годин"},u.prototype.betweenX0AndX1=function(){return"між %s та %s"},u.prototype.atX0=function(){return"о %s"},u.prototype.commaEveryDay=function(){return", щоденно"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожен %s день тижня"},u.prototype.commaX0ThroughX1=function(){return", %s по %s"},u.prototype.commaAndX0ThroughX1=function(){return", та %s по %s"},u.prototype.first=function(){return"перший"},u.prototype.second=function(){return"другий"},u.prototype.third=function(){return"третій"},u.prototype.fourth=function(){return"четвертий"},u.prototype.fifth=function(){return"п'ятий"},u.prototype.commaOnThe=function(){return", в "},u.prototype.spaceX0OfTheMonth=function(){return" %s місяця"},u.prototype.lastDay=function(){return"останній день"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", в останній %s місяця"},u.prototype.commaOnlyOnX0=function(){return", тільки в %s"},u.prototype.commaAndOnX0=function(){return", і в %s"},u.prototype.commaEveryX0Months=function(){return", кожен %s місяць"},u.prototype.commaOnlyInX0=function(){return", тільки в %s"},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", в останній день місяця"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в останній будень місяця"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s днів до останнього дня місяця"},u.prototype.firstWeekday=function(){return"перший будень"},u.prototype.weekdayNearestDayX0=function(){return"будень найближчий до %s дня"},u.prototype.commaOnTheX0OfTheMonth=function(){return", в %s місяця"},u.prototype.commaEveryX0Days=function(){return", кожен %s день"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", між %s та %s днями місяця"},u.prototype.commaOnDayX0OfTheMonth=function(){return", на %s день місяця"},u.prototype.commaEveryX0Years=function(){return", кожні %s роки"},u.prototype.commaStartingX0=function(){return", початок %s"},u.prototype.daysOfTheWeek=function(){return["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"]},u.prototype.monthsOfTheYear=function(){return["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},u}();return l.uk=N,c().locales.uk=new N,n})())})(UEe);var $Ee={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pt_BR=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},u.prototype.at=function(){return"às"},u.prototype.atSpace=function(){return"às "},u.prototype.atX0=function(){return"Às %s"},u.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},u.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},u.prototype.betweenX0AndX1=function(){return"entre %s e %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},u.prototype.commaEveryDay=function(){return", a cada dia"},u.prototype.commaEveryX0Days=function(){return", a cada %s dias"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},u.prototype.commaEveryX0Months=function(){return", a cada %s meses"},u.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},u.prototype.commaOnlyInX0=function(L){return L&&L.length>1&&L[1]==="-"?"somente %s":", somente em %s"},u.prototype.commaOnlyOnX0=function(L){return L&&L.length>1&&L[1]==="-"?", somente %s":", somente de %s"},u.prototype.commaAndOnX0=function(){return", e de %s"},u.prototype.commaOnThe=function(L,g){return g==="6"||g==="0"?", no":", na "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},u.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},u.prototype.commaX0ThroughX1=function(){return", de %s a %s"},u.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},u.prototype.everyHour=function(){return"a cada hora"},u.prototype.everyMinute=function(){return"a cada minuto"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},u.prototype.everySecond=function(){return"a cada segundo"},u.prototype.everyX0Hours=function(){return"a cada %s horas"},u.prototype.everyX0Minutes=function(){return"a cada %s minutos"},u.prototype.everyX0Seconds=function(){return"a cada %s segundos"},u.prototype.fifth=function(L){return L==="6"||L==="0"?"quinto":"quinta"},u.prototype.first=function(L){return L==="6"||L==="0"?"primeiro":"primeira"},u.prototype.firstWeekday=function(){return"primeiro dia da semana"},u.prototype.fourth=function(L){return L==="6"||L==="0"?"quarto":"quarta"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},u.prototype.second=function(L){return L==="6"||L==="0"?"segundo":"segunda"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},u.prototype.spaceAnd=function(){return" e"},u.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},u.prototype.lastDay=function(){return"o último dia"},u.prototype.third=function(L){return L==="6"||L==="0"?"terceiro":"terceira"},u.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},u.prototype.commaEveryX0Years=function(){return", a cada %s anos"},u.prototype.commaStartingX0=function(){return", iniciando %s"},u.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},u.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},u}();return l.pt_BR=N,c().locales.pt_BR=new N,n})())})($Ee);var PEe={exports:{}};(function(s,e){(function(i,r){s.exports=r(lt)})(globalThis,t=>(()=>{var i={93:u=>{u.exports=t}},r={};function o(u){var L=r[u];if(L!==void 0)return L.exports;var g=r[u]={exports:{}};return i[u](g,g.exports,o),g.exports}o.n=u=>{var L=u&&u.__esModule?()=>u.default:()=>u;return o.d(L,{a:L}),L},o.d=(u,L)=>{for(var g in L)o.o(L,g)&&!o.o(u,g)&&Object.defineProperty(u,g,{enumerable:!0,get:L[g]})},o.o=(u,L)=>Object.prototype.hasOwnProperty.call(u,L),o.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})};var n={};o.r(n);var a=o(93),c=o.n(a),l=n;Object.defineProperty(l,"__esModule",{value:!0}),l.pl=void 0;var N=function(){function u(){}return u.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},u.prototype.atX0MinutesPastTheHourGt20=function(){return null},u.prototype.commaMonthX0ThroughMonthX1=function(){return null},u.prototype.commaYearX0ThroughYearX1=function(){return null},u.prototype.use24HourTimeFormatByDefault=function(){return!0},u.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Wystąpił błąd podczas generowania opisu wyrażenia cron. Sprawdź składnię wyrażenia cron."},u.prototype.at=function(){return"O"},u.prototype.atSpace=function(){return"O "},u.prototype.atX0=function(){return"o %s"},u.prototype.atX0MinutesPastTheHour=function(){return"w %s minucie"},u.prototype.atX0SecondsPastTheMinute=function(){return"w %s sekundzie"},u.prototype.betweenX0AndX1=function(){return"od %s do %s"},u.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s-ego do %s-ego dnia miesiąca"},u.prototype.commaEveryDay=function(){return", co dzień"},u.prototype.commaEveryX0Days=function(){return", co %s dni"},u.prototype.commaEveryX0DaysOfTheWeek=function(){return", co %s dni tygodnia"},u.prototype.commaEveryX0Months=function(){return", co %s miesięcy"},u.prototype.commaEveryX0Years=function(){return", co %s lat"},u.prototype.commaOnDayX0OfTheMonth=function(){return", %s-ego dnia miesiąca"},u.prototype.commaOnlyInX0=function(){return", tylko %s"},u.prototype.commaOnlyOnX0=function(){return", tylko %s"},u.prototype.commaAndOnX0=function(){return", i %s"},u.prototype.commaOnThe=function(){return", "},u.prototype.commaOnTheLastDayOfTheMonth=function(){return", ostatni dzień miesiąca"},u.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ostatni dzień roboczy miesiąca"},u.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni przed ostatnim dniem miesiąca"},u.prototype.commaOnTheLastX0OfTheMonth=function(){return", ostatni %s miesiąca"},u.prototype.commaOnTheX0OfTheMonth=function(){return", %s miesiąca"},u.prototype.commaX0ThroughX1=function(){return", od %s do %s"},u.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},u.prototype.everyHour=function(){return"co godzinę"},u.prototype.everyMinute=function(){return"co minutę"},u.prototype.everyMinuteBetweenX0AndX1=function(){return"Co minutę od %s do %s"},u.prototype.everySecond=function(){return"co sekundę"},u.prototype.everyX0Hours=function(){return"co %s godzin"},u.prototype.everyX0Minutes=function(){return"co %s minut"},u.prototype.everyX0Seconds=function(){return"co %s sekund"},u.prototype.fifth=function(){return"piąty"},u.prototype.first=function(){return"pierwszy"},u.prototype.firstWeekday=function(){return"pierwszy dzień roboczy"},u.prototype.fourth=function(){return"czwarty"},u.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},u.prototype.second=function(){return"drugi"},u.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},u.prototype.spaceAnd=function(){return" i"},u.prototype.spaceX0OfTheMonth=function(){return" %s miesiąca"},u.prototype.lastDay=function(){return"ostatni dzień"},u.prototype.third=function(){return"trzeci"},u.prototype.weekdayNearestDayX0=function(){return"dzień roboczy najbliższy %s-ego dnia"},u.prototype.commaStartingX0=function(){return", startowy %s"},u.prototype.daysOfTheWeek=function(){return["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},u.prototype.monthsOfTheYear=function(){return["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},u}();return l.pl=N,c().locales.pl=new N,n})())})(PEe);function h4(s,e){return _Ee.toString(s,{locale:e})}const xe={mainDiv:{width:"100%",height:"100%"},periodSelect:{display:"block",width:250},tabContent:{padding:20,height:"calc(100% - 240px)",overflow:"auto"},numberButton:{padding:4,minWidth:40,margin:5},appBar:{color:"white"},warning:{marginLeft:16,color:"red",fontSize:12}},WEe=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],BEe=["January","February","March","April","May","June","July","August","September","October","November","December"];function Tl(s,e){const t=[];if(s==="*"){if(e===24||e===60||e===7)for(let r=0;r1){const n=parseInt(o[1],10);for(let a=parseInt(o[0],10);a<=n;a++)t.push(a)}else t.push(parseInt(i[r],10))}t.sort();for(let r=t.length-1;r>=0;r--)t[r]===t[r+1]&&t.splice(r+1,1);return t}function dl(s,e){if(typeof s!="object"&&(s=[s]),s.length===e)return"*";const t=[];if(!s.length)return"-";s=s.map(o=>parseInt(o,10)),s.sort((o,n)=>o-n);let i=s[0],r=s[0];for(let o=1;othis.props.onChange&&this.props.onChange(this.state.cron),100)}static cron2state(e){e=e.replace(/['"]/g,"").trim();const t=e.split(" ").map(r=>r.trim());let i;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",dates:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:!1,minutes:t[0]||"*",hours:t[1]||"*",dates:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i}static state2cron(e){let t=`${e.minutes} ${e.hours} ${e.dates} ${e.months} ${e.dow}`;return e.seconds!==!1&&(t=`${e.seconds} ${t}`),t}recalcCron(){const e=kt.state2cron(this.state);e!==this.state.cron&&this.setState({cron:e},()=>this.props.onChange&&this.props.onChange(this.state.cron))}onToggle(e,t,i){if(e===!0)this.setCronAttr(t,"*");else if(e===!1)i===60||i===24?this.setCronAttr(t,"0"):this.setCronAttr(t,"1");else{const r=Tl(this.state[t],i),o=r.indexOf(e);o!==-1?r.splice(o,1):(r.push(e),r.sort()),this.setCronAttr(t,dl(r,i))}}getDigitsSelector(e,t){let i=[];if(t===7)i=[1,2,3,4,5,6,0];else if(t===60||t===24)for(let o=0;othis.onToggle(!1,e,t)},h.t("ra_Deselect all")),M.createElement(j.Button,{key:"addall",variant:"contained",style:xe.numberButton,color:"secondary",onClick:()=>this.onToggle(!0,e,t)},h.t("ra_Select all")),M.createElement("div",{key:"all"},i.map(o=>[t===7&&o===4||t===12&&o===7||t===31&&!((o-1)%10)||t===60&&o&&!(o%10)||t===24&&o&&!(o%6)?M.createElement("div",{key:`allInner${o}`,style:{width:"100%"}}):null,M.createElement(j.Button,{key:`_${o}`,variant:r.indexOf(o)!==-1?"contained":"outlined",style:xe.numberButton,color:r.indexOf(o)!==-1?"secondary":"primary",onClick:()=>this.onToggle(o,e,t)},t===7?h.t(WEe[o]):t===12?BEe[o-1]:o)]))]}getPeriodsTab(e,t){const i=this.state[e];let r=i==="*",o=i==null?!1:i.toString().includes("/"),n;if(this.state.modes[e]===null){n=r?"every":o?"everyN":"specific";const c=JSON.parse(JSON.stringify(this.state.modes));return c[e]=n,setTimeout(()=>this.setState({modes:c},()=>this.recalcCron()),100),null}r=this.state.modes[e]==="every",o=this.state.modes[e]==="everyN",n=this.state.modes[e];let a=1;return o&&i&&(a=parseInt(i.replace("*/",""),10)||1),M.createElement("div",null,M.createElement(j.Select,{variant:"standard",style:{...xe.periodSelect,verticalAlign:"bottom"},value:n,onChange:c=>{const l=JSON.parse(JSON.stringify(this.state.modes));if(l[e]=c.target.value,c.target.value==="every")this.setCronAttr(e,"*",l);else if(c.target.value==="everyN"){const N=parseInt((this.state[e]||"").toString().replace("*/",""),10)||1;this.setCronAttr(e,`*/${N}`,l)}else if(c.target.value==="specific"){let N=parseInt((this.state[e]||"").toString().split(",")[0],10)||0;!N&&(e==="months"||e==="dates")&&(N=1),this.setCronAttr(e,dl(N,t),l)}}},M.createElement(j.MenuItem,{key:"every",value:"every"},h.t(`sc_every_${e}`)),M.createElement(j.MenuItem,{key:"everyN",value:"everyN"},h.t(`sc_everyN_${e}`)),M.createElement(j.MenuItem,{key:"specific",value:"specific"},h.t(`sc_specific_${e}`))),o&&M.createElement(j.TextField,{variant:"standard",key:"interval",label:h.t(`sc_${e}`),value:a,slotProps:{htmlInput:{min:1,max:t},inputLabel:{shrink:!0}},onChange:c=>{this.setState({[e]:`*/${c.target.value}`},()=>this.recalcCron())},type:"number",margin:"normal"}),!r&&!o&&this.getDigitsSelector(e,t))}static convertCronToText(e,t){return e.split(" ").includes("-")?h.t("ra_Invalid CRON"):h4(e,t)}setCronAttr(e,t,i){i?e==="seconds"?this.setState({seconds:t,modes:i},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t,modes:i},()=>this.recalcCron()):e==="hours"?this.setState({hours:t,modes:i},()=>this.recalcCron()):e==="dates"?this.setState({dates:t,modes:i},()=>this.recalcCron()):e==="months"?this.setState({months:t,modes:i},()=>this.recalcCron()):e==="dow"?this.setState({dow:t,modes:i},()=>this.recalcCron()):this.setState({modes:i},()=>this.recalcCron()):e==="seconds"?this.setState({seconds:t},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t},()=>this.recalcCron()):e==="hours"?this.setState({hours:t},()=>this.recalcCron()):e==="dates"?this.setState({dates:t},()=>this.recalcCron()):e==="months"?this.setState({months:t},()=>this.recalcCron()):e==="dow"&&this.setState({dow:t},()=>this.recalcCron())}render(){const e=this.state.seconds!==!1?this.state.tab:this.state.tab+1,t=this.state.minutes==="*"||this.state.minutes==="*/1",i=this.state.seconds==="*"||this.state.seconds==="*/1";return M.createElement("div",{style:xe.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)",height:60}},kt.convertCronToText(this.state.cron,this.props.language||"en"),M.createElement("span",{style:xe.warning},i?h.t("ra_warning_every_second"):t?h.t("ra_warning_every_minute"):"")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:!!this.state.seconds,onChange:r=>this.setState({seconds:r.target.checked?"*":!1},()=>this.recalcCron())}),label:h.t("ra_use seconds")}),M.createElement(j.AppBar,{position:"static",sx:{"&.MuiAppBar-root":xe.appBar},color:"secondary"},M.createElement(j.Tabs,{value:this.state.tab,style:xe.appBar,color:"secondary",onChange:(r,o)=>this.setState({tab:o})},this.state.seconds!==!1&&M.createElement(j.Tab,{id:"sc_seconds",label:h.t("sc_seconds")}),M.createElement(j.Tab,{id:"minutes",label:h.t("sc_minutes")}),M.createElement(j.Tab,{id:"hours",label:h.t("sc_hours")}),M.createElement(j.Tab,{id:"dates",label:h.t("sc_dates")}),M.createElement(j.Tab,{id:"months",label:h.t("sc_months")}),M.createElement(j.Tab,{id:"dow",label:h.t("sc_dows")}))),e===0&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("seconds",60)),e===1&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("minutes",60)),e===2&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("hours",24)),e===3&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dates",31)),e===4&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("months",12)),e===5&&M.createElement("div",{style:xe.tabContent},this.getPeriodsTab("dow",7)))}}const gs={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:s=>({color:s.palette.primary.main})};function F3e(s){const{open:e,toggleTranslation:t,noTranslation:i,title:r,fullWidth:o,help:n,maxWidth:a,progress:c,icon:l,applyDisabled:N,applyButton:u,onClose:L,children:g,titleButtonApply:y,titleButtonClose:T,onApply:d,textInput:z,defaultValue:I,overflowHidden:C}=s,[m,A]=f.useState(I||"");f.useEffect(()=>{A(I||"")},[I]);let D=null;return l&&(D=l),M.createElement(j.Dialog,{open:e,maxWidth:a||"md",fullWidth:!!o,disableEscapeKeyDown:!1,onClose:L,sx:{"& .MuiDialog-paper":gs.modalDialog}},r&&M.createElement(j.DialogTitle,null,l?M.createElement(D,{style:gs.titleIcon}):null,r,h.getLanguage()!=="en"&&t?M.createElement(j.IconButton,{size:"large",sx:O.getStyle(s.theme,gs.languageButton,i&&gs.languageButtonActive),onClick:()=>t(),title:h.t("Disable/Enable translation")},M.createElement(uL,null)):null),M.createElement(j.DialogContent,{style:{...gs.content,...C?gs.overflowHidden:void 0,paddingTop:8}},z&&M.createElement(j.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:m,onChange:p=>A(p.target.value)}),g,n?M.createElement("div",null,n):null),M.createElement(j.DialogActions,null,u!==!1&&M.createElement(j.Button,{startIcon:M.createElement(Oe,null),disabled:c||N&&I===m,onClick:()=>d(z?m:""),variant:"contained",color:"primary"},h.t(y||"ra_Ok")),M.createElement(j.Button,{color:"grey",onClick:L,disabled:c,variant:"contained",startIcon:M.createElement(Ne,null)},h.t(T||"ra_Cancel"))))}function JEe(){const s=BL();return[...s.breakpoints.keys].reverse().reduce((t,i)=>{const r=j.useMediaQuery(s.breakpoints.up(i));return!t&&r?i:t},null)||"xs"}function Io(){return s=>function(t){const i=JEe();return M.createElement(s,{...t,width:i})}}function REe(s){const[e,t]=M.useState(s.input||s.value||""),[i,r]=M.useState("");return M.createElement(j.Dialog,{open:!0,onClose:()=>s.onClose(null),"aria-labelledby":"form-dialog-title",fullWidth:s.fullWidth!==void 0?s.fullWidth:!1},M.createElement(j.DialogTitle,{id:"form-dialog-title"},s.titleText),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,s.promptText),M.createElement(j.TextField,{variant:"standard",autoFocus:!0,margin:"dense",error:!!i,helperText:i===!0||!i?"":i,value:e,label:s.labelText||"",type:s.type||"text",onKeyUp:o=>o.code==="Enter"&&e&&s.onClose(e),onChange:o=>{let n="";s.verify&&(n=!s.verify(o.target.value)),s.rule?t(s.rule(o.target.value)):t(o.target.value),r(n)},fullWidth:!0})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!e||!!i,onClick:()=>s.onClose(e),color:"primary",startIcon:M.createElement(Oe,null)},s.applyText||h.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>s.onClose(null),startIcon:M.createElement(Ne,null)},s.cancelText||h.t("ra_Cancel"))))}const FEe=Io()(REe);function $n(s){return M.createElement("svg",{onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 486 486",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),xmlns:"http://www.w3.org/2000/svg",className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m414.928297,149.715165 c-2.639376,-57.222555 -35.669446,-106.505345 -83.345894,-132.039151 c-3.758948,-2.049842 -7.636885,-3.932022 -11.590542,-5.641125 c-19.303146,-8.394083 -40.607459,-13.050853 -63.004303,-13.050853 c-84.113909,0 -152.791790,65.703174 -157.718988,148.605566 l0.043268,-0.010816 v0.281245 c0,3.061243 -0.146031,16.750306 -0.146031,16.750306 l-2.352723,5.224668 h15.744315 c5.916964,-19.384275 24.078904,-32.635245 45.513024,-32.635245 c26.231510,0 47.573684,21.915481 47.573684,48.146991 c0,26.226103 -21.342174,47.146409 -47.573684,47.146409 c-25.111939,0 -45.734774,-19.735831 -47.443879,-44.658471 h-18.789334 c-0.400232,0 -0.778832,0.638209 -1.162839,0.584122 l-19.762875,55.199753 c-2.774590,7.696379 2.926030,16.214860 11.103771,16.214860 h17.020735 l-0.129805,87.899899 c0,17.356066 14.073071,31.174935 31.429136,31.174935 h56.205745 v82.648189 c0,12.877778 12.937273,22.580734 25.815051,22.580734 h144.597825 c12.877778,0 23.429877,-9.702955 23.429877,-22.580734 v-166.037352 c0,-22.645636 5.976457,-44.761234 16.561008,-64.789128 c11.055093,-20.925714 17.523731,-44.620611 18.129489,-69.792045 c0.027042,-1.260193 0.037858,-2.552839 0.037858,-3.845485 c0,-2.466302 -0.070310,-4.938014 -0.183890,-7.377273 zm-155.393308,-11.731165 h-13.456494 v13.559257 c0,4.732489 -4.267352,8.567157 -8.999842,8.567157 c-4.727079,0 -8.999842,-3.834667 -8.999842,-8.567157 v-13.559257 h-12.185483 c-4.732489,0 -8.567157,-4.267352 -8.567157,-8.999842 c0,-4.727079 3.834667,-8.999842 8.567157,-8.999842 h12.185483 v-12.077311 c0,-4.732489 4.272762,-8.567157 8.999842,-8.567157 c4.732489,0 8.999842,3.834667 8.999842,8.567157 v12.077311 h13.456494 c4.727079,0 8.567157,4.272762 8.567157,8.999842 c0,4.732489 -3.840077,8.999842 -8.567157,8.999842 zm0,0"}),M.createElement("path",{fill:"currentColor",d:"m187.695312 285.875c3.9375-3.980469 6.414063-9.449219 6.414063-15.523438 0-12.128906-9.855469-21.980468-21.984375-21.980468-6.007812 0-11.472656 2.410156-15.457031 6.347656-4.023438 4.003906-6.523438 9.539062-6.523438 15.636719 0 12.125 9.855469 21.980469 21.980469 21.980469 6.078125 0 11.585938-2.476563 15.570312-6.460938zm0 0"}))}function Ws(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m524,128l-192,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,288c0,26.51 21.49,48 48,48l416,0c26.51,0 48,-21.49 48,-48l0,-224c0,-26.51 -21.49,-48 -48,-48z"}))}function fr(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 650 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"m631.75617,292.093l-72.424,124.155a63.997,63.997 0 0 1 -55.281,31.752l-399.964,0c-18.523,0 -30.064,-20.093 -20.731,-36.093l72.424,-124.155a64,64 0 0 1 55.282,-31.752l399.964,0c18.523,0 30.064,20.093 20.73,36.093zm-420.694,-68.093l328,0l0,-48c0,-26.51 -21.49,-48 -48,-48l-160,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,278.046l69.077,-118.418c17.137,-29.378 48.912,-47.628 82.923,-47.628z"}))}function dM(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))}var GEe=s=>typeof s!="string"?{}:s.split(/ ?; ?/).reduce((e,t)=>{const[i,r]=t.split(/ ?: ?/).map((o,n)=>n===0?o.replace(/\s+/g,""):o.trim());if(i&&r){const o=i.replace(/(\w)-(\w)/g,(a,c,l)=>`${c}${l.toUpperCase()}`);let n=r.trim();Number.isNaN(Number(r))||(n=Number(r)),e[i.startsWith("-")?i:o]=n}return e},{});function HEe(s=6){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let i=s;i>0;--i)t+=e[Math.round(Math.random()*(e.length-1))];return t}var VEe=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],Dl={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function ZEe(s,e){var o;const{key:t,level:i,...r}=e;switch(s.nodeType){case 1:return f.createElement(KEe(s.nodeName),XEe(s,t),hl(s.childNodes,i,r));case 3:{const n=((o=s.nodeValue)==null?void 0:o.toString())??"";if(!r.allowWhiteSpaces&&/^\s+$/.test(n)&&!/[\u00A0\u202F]/.test(n))return null;if(!s.parentNode)return n;const a=s.parentNode.nodeName.toLowerCase();return VEe.includes(a)?(/\S/.test(n)&&console.warn(`A textNode is not allowed inside '${a}'. Your text "${n}" will be ignored`),null):n}case 8:return null;case 11:return hl(s.childNodes,i,e);default:return null}}function XEe(s,e){const t={key:e};if(s instanceof Element){const i=s.getAttribute("class");i&&(t.className=i),[...s.attributes].forEach(r=>{switch(r.name){case"class":break;case"style":t[r.name]=GEe(r.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":t[Dl[r.name]||r.name]=!0;break;default:t[Dl[r.name]||r.name]=r.value}})}return t}function hl(s,e,t){const i=[...s].map((r,o)=>Vr(r,{...t,index:o,level:e+1})).filter(Boolean);return i.length?i:null}function KEe(s){return/[a-z]+[A-Z]+[a-z]+/.test(s)?s:s.toLowerCase()}function z4(s,e={}){return typeof s=="string"?qEe(s,e):s instanceof Node?Vr(s,e):null}function Vr(s,e={}){if(!s||!(s instanceof Node))return null;const{actions:t=[],index:i=0,level:r=0,randomKey:o}=e;let n=s,a=`${r}-${i}`;const c=[];return o&&r===0&&(a=`${HEe()}-${a}`),Array.isArray(t)&&t.forEach(l=>{l.condition(n,a,r)&&(typeof l.pre=="function"&&(n=l.pre(n,a,r),n instanceof Node||(n=s)),typeof l.post=="function"&&c.push(l.post(n,a,r)))}),c.length?c:ZEe(n,{key:a,level:r,...e})}function qEe(s,e={}){if(!s||typeof s!="string")return null;const{includeAllNodes:t=!1,nodeOnly:i=!1,selector:r="body > *",type:o="text/html"}=e;try{const a=new DOMParser().parseFromString(s,o);if(t){const{childNodes:l}=a.body;return i?l:[...l].map(N=>Vr(N,e))}const c=a.querySelector(r)||a.body.childNodes[0];if(!(c instanceof Node))throw new TypeError("Error parsing input");return i?c:Vr(c,e)}catch{}return null}var efe=Object.defineProperty,tfe=(s,e,t)=>e in s?efe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,yr=(s,e,t)=>tfe(s,typeof e!="symbol"?e+"":e,t),zl="react-inlinesvg",sfe=10,se={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function ife(s){return s[Math.floor(Math.random()*s.length)]}function pi(){var s;return!!(typeof window<"u"&&((s=window.document)!=null&&s.createElement))}function rfe(){return Mfe()&&typeof window<"u"&&window!==null}function ofe(s,...e){const t={};for(const i in s)({}).hasOwnProperty.call(s,i)&&(e.includes(i)||(t[i]=s[i]));return t}function nfe(s){const e="abcdefghijklmnopqrstuvwxyz",i=`${e}${e.toUpperCase()}1234567890`;let r="";for(let o=0;o299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(o=>r.includes(o)))throw new Error(`Content type isn't valid: ${r}`);return t.text()}function afe(s=1){return new Promise(e=>{setTimeout(e,s*1e3)})}function Mfe(){if(!document)return!1;const s=document.createElement("div");s.innerHTML="";const e=s.firstChild;return!!e&&e.namespaceURI==="http://www.w3.org/2000/svg"}var cfe=class{constructor(){yr(this,"cacheApi"),yr(this,"cacheStore"),yr(this,"subscribers",[]),yr(this,"isReady",!1),this.cacheStore=new Map;let s=zl,e=!1;pi()&&(s=window.REACT_INLINESVG_CACHE_NAME??zl,e=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),e?caches.open(s).then(t=>{this.cacheApi=t}).catch(t=>{console.error(`Failed to open cache: ${t.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const t=[...this.subscribers];this.subscribers.length=0,t.forEach(i=>{try{i()}catch(r){console.error(`Error in CacheStore subscriber callback: ${r.message}`)}})}):this.isReady=!0}onReady(s){this.isReady?s():this.subscribers.push(s)}async get(s,e){var t;return await(this.cacheApi?this.fetchAndAddToPersistentCache(s,e):this.fetchAndAddToInternalCache(s,e)),((t=this.cacheStore.get(s))==null?void 0:t.content)??""}set(s,e){this.cacheStore.set(s,e)}isCached(s){var e;return((e=this.cacheStore.get(s))==null?void 0:e.status)===se.LOADED}async fetchAndAddToInternalCache(s,e){const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToInternalCache(s,e)});return}if(!(t!=null&&t.content)){this.cacheStore.set(s,{content:"",status:se.LOADING});try{const i=await w4(s,e);this.cacheStore.set(s,{content:i,status:se.LOADED})}catch(i){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),i}}}async fetchAndAddToPersistentCache(s,e){var r,o,n;const t=this.cacheStore.get(s);if((t==null?void 0:t.status)===se.LOADED)return;if((t==null?void 0:t.status)===se.LOADING){await this.handleLoading(s,async()=>{this.cacheStore.set(s,{content:"",status:se.IDLE}),await this.fetchAndAddToPersistentCache(s,e)});return}this.cacheStore.set(s,{content:"",status:se.LOADING});const i=await((r=this.cacheApi)==null?void 0:r.match(s));if(i){const a=await i.text();this.cacheStore.set(s,{content:a,status:se.LOADED});return}try{await((o=this.cacheApi)==null?void 0:o.add(new Request(s,e)));const a=await((n=this.cacheApi)==null?void 0:n.match(s)),c=await(a==null?void 0:a.text())??"";this.cacheStore.set(s,{content:c,status:se.LOADED})}catch(a){throw this.cacheStore.set(s,{content:"",status:se.FAILED}),a}}async handleLoading(s,e){var t;for(let i=0;i({[s]:e}))}async delete(s){this.cacheApi&&await this.cacheApi.delete(s),this.cacheStore.delete(s)}async clear(){if(this.cacheApi){const s=await this.cacheApi.keys();await Promise.allSettled(s.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function wl(s){const e=f.useRef(void 0);return f.useEffect(()=>{e.current=s}),e.current}function ufe(s){const{baseURL:e,content:t,description:i,handleError:r,hash:o,preProcessor:n,title:a,uniquifyIDs:c=!1}=s;try{const l=lfe(t,n),N=z4(l,{nodeOnly:!0});if(!N||!(N instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const u=C4(N,{baseURL:e,hash:o,uniquifyIDs:c});if(i){const L=u.querySelector("desc");L!=null&&L.parentNode&&L.parentNode.removeChild(L);const g=document.createElementNS("http://www.w3.org/2000/svg","desc");g.innerHTML=i,u.prepend(g)}if(typeof a<"u"){const L=u.querySelector("title");if(L!=null&&L.parentNode&&L.parentNode.removeChild(L),a){const g=document.createElementNS("http://www.w3.org/2000/svg","title");g.innerHTML=a,u.prepend(g)}}return u}catch(l){return r(l)}}function lfe(s,e){return e?e(s):s}function C4(s,e){const{baseURL:t="",hash:i,uniquifyIDs:r}=e,o=["id","href","xlink:href","xlink:role","xlink:arcrole"],n=["href","xlink:href"],a=(c,l)=>n.includes(c)&&(l?!l.includes("#"):!1);return r&&[...s.children].forEach(c=>{var l;if((l=c.attributes)!=null&&l.length){const N=Object.values(c.attributes).map(u=>{const L=u,g=/url\((.*?)\)/.exec(u.value);return g!=null&&g[1]&&(L.value=u.value.replace(g[0],`url(${t}${g[1]}__${i})`)),L});o.forEach(u=>{const L=N.find(g=>g.name===u);L&&!a(u,L.value)&&(L.value=`${L.value}__${i}`)})}return c.children.length?C4(c,e):c}),s}var Us;function Nfe(s){const{cacheRequests:e=!0,children:t=null,description:i,fetchOptions:r,innerRef:o,loader:n=null,onError:a,onLoad:c,src:l,title:N,uniqueHash:u}=s,[L,g]=f.useReducer((G,H)=>({...G,...H}),{content:"",element:null,isCached:e&&Us.isCached(s.src),status:se.IDLE}),{content:y,element:T,isCached:d,status:z}=L,I=wl(s),C=wl(L),m=f.useRef(u??nfe(8)),A=f.useRef(!1),D=f.useRef(!1),p=f.useCallback(G=>{A.current&&(g({status:G.message==="Browser does not support SVG"?se.UNSUPPORTED:se.FAILED}),a==null||a(G))},[a]),_=f.useCallback((G,H=!1)=>{A.current&&g({content:G,isCached:H,status:se.LOADED})},[]),x=f.useCallback(async()=>{const G=await w4(l,r);_(G)},[r,_,l]),P=f.useCallback(()=>{try{const G=ufe({...s,handleError:p,hash:m.current,content:y}),H=z4(G);if(!H||!f.isValidElement(H))throw new Error("Could not convert the src to a React element");g({element:H,status:se.READY})}catch(G){p(G)}},[y,p,s]),v=f.useCallback(async()=>{const G=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(l);let H;if(G?H=G[1]?window.atob(G[2]):decodeURIComponent(G[2]):l.includes("{A.current&&g({content:"",element:null,isCached:!1,status:se.LOADING})},[]);f.useEffect(()=>{if(A.current=!0,!(!pi()||D.current)){try{if(z===se.IDLE){if(!rfe())throw new Error("Browser does not support SVG");if(!l)throw new Error("Missing src");ee()}}catch(G){p(G)}return D.current=!0,()=>{A.current=!1}}},[]),f.useEffect(()=>{if(!(!pi()||!I)&&I.src!==l){if(!l){p(new Error("Missing src"));return}ee()}},[p,ee,I,l]),f.useEffect(()=>{z===se.LOADED&&P()},[z,P]),f.useEffect(()=>{!pi()||!I||I.src!==l||(I.title!==N||I.description!==i)&&P()},[i,P,I,l,N]),f.useEffect(()=>{if(C)switch(z){case se.LOADING:{C.status!==se.LOADING&&v();break}case se.LOADED:{C.status!==se.LOADED&&P();break}case se.READY:{C.status!==se.READY&&(c==null||c(l,d));break}}},[v,P,d,c,C,l,z]);const ue=ofe(s,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return pi()?T?f.cloneElement(T,{ref:o,...ue}):[se.UNSUPPORTED,se.FAILED].includes(z)?t:n:n}function Pn(s){Us||(Us=new cfe);const{loader:e}=s,[t,i]=f.useState(Us.isReady);return f.useEffect(()=>{t||Us.onReady(()=>{i(!0)})},[t]),t?M.createElement(Nfe,{...s}):e}function Lfe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"}))}function G3e(s){let e;const t=s==null?void 0:s._id;return t?(t.startsWith("_design/")||t==="system"?e=M.createElement(kr,{className:"iconOwn"}):t==="0_userdata"||t==="0_userdata.0"?e=M.createElement(wg,{className:"iconOwn"}):t==="alias"||t==="alias.0"?e=M.createElement(Lfe,{className:"iconOwn"}):t==="system.adapter"?e=M.createElement(kr,{className:"iconOwn"}):t==="system.group"?e=M.createElement(ga,{className:"iconOwn"}):t==="system.user"?e=M.createElement(Na,{className:"iconOwn"}):t==="system.host"?e=M.createElement(La,{className:"iconOwn"}):t.endsWith(".connection")||t.endsWith(".connected")?e=M.createElement(Qs,{className:"iconOwn"}):t.endsWith(".info")?e=M.createElement(la,{className:"iconOwn"}):(s==null?void 0:s.type)==="meta"&&(e=M.createElement(Kr,{className:"iconOwn"})),e||null):null}function H3e(s,e){e=e||".";let t="";const i=s==null?void 0:s.common;if(i){const r=i.icon;if(r)if(r.startsWith("data:image/"))t=r;else if(r.includes(".")){let o;s.type==="instance"||s.type==="adapter"?t=`${e}/adapter/${i.name}/${r}`:s._id&&s._id.startsWith("system.adapter.")?(o=s._id.split(".",3),r[0]==="/"?o[2]+=r:o[2]+=`/${r}`,t=`${e}/adapter/${o[2]}`):(o=s._id.split(".",2),r[0]==="/"?o[0]+=r:o[0]+=`/${r}`,t=`${e}/adapter/${o[0]}`)}else return null}return t||null}const gfe=window.location.hostname.endsWith("iobroker.in"),Cl=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);function me(s){var e,t,i;if(s.src){if(typeof s.src=="string"){if(s.src.length<3)return s.sx?M.createElement(j.Box,{component:"span",sx:s.sx,title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src):M.createElement("span",{title:s.title||void 0,style:{height:27,marginTop:-8,...s.styleUTF8||s.style},className:O.clsx(s.className,"iconOwn")},s.src);if(s.src.startsWith("data:image/svg"))return M.createElement(Pn,{title:s.title||void 0,src:s.src,className:O.clsx(s.className,"iconOwn"),width:((e=s.style)==null?void 0:e.width)||28,height:((t=s.style)==null?void 0:t.height)||((i=s.style)==null?void 0:i.width)||28,style:s.style||void 0});if(gfe&&!s.src.startsWith("http://")&&!s.src.startsWith("https://")){let r=s.src;return r.startsWith("./")?r=Cl+r.substring(2):r.startsWith("/")||(r=Cl+r),s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:`https://remote-files.iobroker.in${r}`,alt:s.alt||void 0,ref:s.ref,onError:o=>s.onError&&s.onError(o)})}return s.sx?M.createElement(j.Box,{component:"img",sx:s.sx,title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError}):M.createElement("img",{title:s.title||void 0,style:s.style||void 0,className:O.clsx(s.className,"iconOwn"),src:s.src,alt:s.alt||void 0,ref:s.ref,onError:s.onError})}return s.src}return null}const Bt={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}},we={images:["png","jpg","svg","jpeg","bmp","gif","apng","avif","webp","ico"],code:["js","json","json5","md"],txt:["log","txt","html","css","xml","ics"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};function Il(s,e){let t="";const i=new Uint8Array((s==null?void 0:s.data)||s),r=i.byteLength;for(let o=0;o{let o="";r.file!==void 0&&(o=r.file);const n={copyPossible:this.state.copyPossible,ext:this.state.ext};if(o.type==="Buffer")if(i.toLowerCase().endsWith(".json5")){n.ext="json5",n.copyPossible=!0;try{o=atob(Il(o,!0))}catch{console.error("Cannot convert base64 to string"),o=""}}else{const a=O.detectMimeType(Il(o));a&&(n.ext=a,n.copyPossible=we.code.includes(a)||we.txt.includes(a))}n.copyPossible&&(n.ext&&we.txt.includes(n.ext)?(n.text=o,n.editingValue=o):n.ext&&we.code.includes(n.ext)&&(n.code=o,n.editingValue=o)),this.setState(n)}).catch(r=>window.alert(`Cannot read file: ${r}`))}}componentDidMount(){this.readFile();const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}componentWillUnmount(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);const e=this.props.href.split("/");e.splice(0,2);const t=e[0],i=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,i,this.onFileChanged).catch(r=>window.alert(`Cannot subscribe on file: ${r}`))}onFileChanged=(e,t,i)=>{this.state.changed||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.timeout=null,i===null?window.alert("Show file was deleted!"):this.state.text!==null||this.state.code!==null?this.readFile():this.setState({forceUpdate:Date.now()})},300))};getEditorOrViewer(){return M.createElement(j.TextField,{variant:"standard",style:Bt.textarea,multiline:!0,value:this.state.editingValue||this.state.code||this.state.text,slotProps:{htmlInput:{readOnly:!this.state.editing}}})}getContent(){return this.state.ext&&we.images.includes(this.state.ext)?this.state.imgError?M.createElement(dM,{style:{...Bt.img,...this.props.getStyleBackgroundImage()}}):M.createElement(me,{onError:e=>{e.target.onerror=null,this.setState({imgError:!0})},style:{...Bt.img,...this.props.getStyleBackgroundImage()},src:`${this.props.href}?ts=${this.state.forceUpdate}`,alt:this.props.href}):this.state.ext&&we.audio.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("audio",{style:{width:"100%"},src:this.props.href,controls:!0})):this.state.ext&&we.video.includes(this.state.ext)?M.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},M.createElement("video",{style:{width:"100%",height:"100%"},controls:!0},M.createElement("source",{src:this.props.href,type:`video/${this.state.ext}}`}))):this.state.code!==null||this.state.text!==null||this.state.editing?this.getEditorOrViewer():null}onSave(){}render(){return M.createElement(j.Dialog,{sx:{"&.MuiDialog-scrollPaper":Bt.dialog,"& .MuiDialog-paper":Bt.paper},scroll:"paper",open:!!this.props.href,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"ar_dialog_file_view_title"},M.createElement("div",{style:Bt.dialogTitle},M.createElement(j.DialogTitle,{id:"ar_dialog_file_view_title"},`${this.props.t(this.state.editing?"Edit":"View")}: ${this.props.href}`),this.state.ext&&we.images.includes(this.state.ext)&&M.createElement("div",null,M.createElement(j.IconButton,{size:"large",color:"inherit",onClick:this.props.setStateBackgroundImage},M.createElement(ca,null)))),M.createElement(j.DialogContent,{style:Bt.content},this.getContent()),M.createElement(j.DialogActions,null,this.state.copyPossible?M.createElement(j.Button,{color:"grey",onClick:e=>{e.stopPropagation(),e.preventDefault(),O.copyToClipboard(this.state.text||this.state.code||"")},startIcon:M.createElement(rg,null)},this.props.t("Copy content")):null,this.state.editing?M.createElement(j.Button,{color:"grey",disabled:this.state.editingValue===this.state.code||this.state.editingValue===this.state.text,variant:"contained",onClick:()=>this.onSave(),startIcon:M.createElement(cn,null)},this.props.t("Save")):null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"primary",startIcon:M.createElement(Ne,null)},this.props.t("Close"))))}}const yfe=Io()(jfe),js=32,Lt=32,Tr=120,pl=64,Al="Not found",dr={all:jN,images:jg,code:ua,txt:Lg,audio:FL,video:Eg},Y={root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - 8px)",overflowX:"hidden",overflowY:"auto",padding:8},filesDivHint:{position:"absolute",bottom:0,left:20,opacity:.7,fontStyle:"italic",fontSize:12},filesDivTable:{height:"calc(100% - 56px)"},filesDivTile:{height:`calc(100% - ${48*2+8}px)`,display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:`0 0 ${pl}px`},itemTile:s=>({position:"relative",userSelect:"none",cursor:"pointer",height:Tr,width:pl,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:"4px",borderRadius:"4px","&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:s=>({width:"100%",height:Tr-32-16-8,display:"block",pl:1,color:s.palette.secondary.main||"#fbff7d"}),itemFolderIconBack:s=>({position:"absolute",top:22,left:18,zIndex:1,color:(s.palette.mode==="dark","#FFF")}),itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:Tr-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:Tr-32-16-8,display:"block",objectFit:"contain"},itemSelected:s=>({background:s.palette.primary.main,color:O.invertColor(s.palette.primary.main,!0)}),itemTable:s=>({userSelect:"none",cursor:"pointer",height:js,display:"inline-flex",lineHeight:`${js}px`,"&:hover":{background:s.palette.secondary.light,color:O.invertColor(s.palette.secondary.main,!0)}}),itemNameTable:{display:"inline-block",pl:"10px",fontSize:"1rem",verticalAlign:"top",flexGrow:1,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden","@media screen and (max-width: 500px)":{textAlign:"end",direction:"rtl"}},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right",whiteSpace:"nowrap"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemNoImageTable:{marginTop:6},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:s=>({marginTop:"1px",marginLeft:"8px",display:"inline-block",width:30,height:30,color:s.palette.secondary.main||"#fbff7d"}),itemDownloadButtonTable:s=>({display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"middle",textAlign:"center",padding:0,borderRadius:`${Lt/2}px`,"&:hover":{backgroundColor:s.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"},"& span":{pt:"9px"},"& svg":{width:14,height:14,fontSize:"1rem",mt:"-3px",verticalAlign:"middle",color:s.palette.mode==="dark"?"#EEE":"#111"}}),itemDownloadEmptyTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,padding:0},itemAclButtonTable:{width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:Lt,height:js,minWidth:Lt,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:s=>({m:"20px",border:"3px dashed grey",borderRadius:"30px",width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:s.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"}),uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",height:"30%",width:"100%",margin:"auto",opacity:.3},menuButtonExpertActive:{color:"#c00000"},menuButtonRestrictActive:{color:"#c05000"},pathDiv:s=>({display:"flex",width:"calc(100% - 16px)",ml:1,mr:1,textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap",backgroundColor:s.palette.secondary.main,color:s.palette.secondary.contrastText,borderRadius:"4px 4px 0 0"}),pathDivInput:{width:"100%"},pathDivBreadcrumbDir:s=>({pl:"2px",pr:"2px",cursor:"pointer",color:"white","&:hover":{backgroundColor:s.palette.primary.main,color:s.palette.primary.contrastText}}),pathDivBreadcrumbSelected:{color:"#FFF"},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},specialFolder:s=>({color:s.palette.mode==="dark"?"#229b0f":"#5dd300"}),tooltip:{pointerEvents:"none"}},mt="0_userdata.0";function ys(s){const e=(s||"").split("/");return e.length&&e.pop(),e.join("/")}function Vo(s){const e=O.getFileExtension(s);return!!(e!=null&&e.toLowerCase().match(/[a-z]+/)&&e.length<5)}const te="Table",Zo="Tile";function ml(s,e){return s.folder&&e.folder?s.name>e.name?1:s.namee.name?1:s.name{var l;return c.startsWith(`${this.limitToPath}/`)||c===this.limitToPath||((l=this.limitToPath)==null?void 0:l.startsWith(`${c}/`))}))}catch{i=[]}let r;this.props.showViewTypeButton?r=this.localStorage.getItem("files.viewType")||te:r=te;let o=this.props.selected||this.localStorage.getItem("files.selected")||mt,n;if(e.restrictToFolder){o=e.restrictToFolder,n=e.restrictToFolder;const c=e.restrictToFolder.split("/");i=[];let l="";for(let N=0;N{if(this.state.viewType===te&&!this.findItem(this.state.selected)){const t=this.state.selected.split("/");for(;t.length&&!this.findItem(t.join("/"));)t.pop();let i;t.length?i=t.join("/"):i=mt,this.setState({selected:i,path:i,pathFocus:!1},()=>this.scrollToSelected())}else this.scrollToSelected();this.initialReadFinished=!0})}scrollToSelected(){if(this.mounted){const e=document.getElementById(this.state.selected);e==null||e.scrollIntoView()}}async componentDidMount(){this.mounted=!0,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`)),this.supportSubscribes=await this.props.socket.checkFeatureSupported("BINARY_STATE_EVENT"),this.supportSubscribes&&await this.props.socket.subscribeFiles("*","*",this.onFileChange)}componentWillUnmount(){this.supportSubscribes&&this.props.socket.unsubscribeFiles("*","*",this.onFileChange),this.mounted=!1,this.browseList=null,this.browseListRunning=!1,Object.values(this._tempTimeout).forEach(e=>e&&clearTimeout(e)),this._tempTimeout={}}browseFoldersCb(e,t,i){if(!(e!=null&&e.length))i(t);else{const r=e.shift();r?this.browseFolder(r,t).catch(o=>console.error(`Cannot read folder ${r}: ${o.message}`)).then(()=>{setTimeout(()=>this.browseFoldersCb(e,t,i),0)}):setTimeout(()=>this.browseFoldersCb(e,t,i),0)}}browseFolders(e,t){let i;return t?i=t:(i={},Object.keys(this.state.folders).forEach(r=>i[r]=this.state.folders[r])),e!=null&&e.length?new Promise(r=>{this.browseFoldersCb(e,i,r)}):Promise.resolve(i)}readDirSerial(e,t){return new Promise((i,r)=>{this.browseList&&(this.browseList.push({resolve:i,reject:r,adapter:e,relPath:t}),this.browseListRunning||this.processBrowseList())})}processBrowseList(e=0){!this.browseListRunning&&this.browseList&&this.browseList.length&&(this.browseListRunning=!0,this.browseList.length>10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.resolve;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}).catch(t=>{if(this.browseList){const i=this.browseList.shift();if(i){const r=i.reject;i.resolve=null,i.reject=null,i.adapter=null,i.relPath=null,r&&r(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}))}async browseFolder(e,t,i,r){let o;if(t?o=t:(o={},Object.keys(this.state.folders).forEach(u=>{o[u]=this.state.folders[u]})),o[e]&&!r)return i?Promise.resolve(o):new Promise((u,L)=>{Promise.all(o[e].filter(g=>g.folder).map(g=>this.browseFolder(g.id,o,!0).catch(()=>{}))).then(()=>u(o)).catch(g=>L(new Error(g)))});if(!e||e==="/"){try{let u=await this.props.socket.readMetaItems();const L=[];let g=null;if(this.state.restrictToFolder){const T=this.state.restrictToFolder.split("/")[0];u=u.filter(d=>d._id===T)}else this.state.expertMode||(u=u.filter(T=>!T._id.endsWith(".admin")));const y=u.findIndex(T=>T._id==="system.meta.uuid");if(y!==-1&&u.splice(y,1),u.forEach(T=>{if(this.limitToObjectID&&this.limitToObjectID!==T._id)return;const d={id:T._id,name:T._id,title:T.common&&T.common.name||T._id,meta:!0,from:T.from,ts:T.ts,color:T.common&&T.common.color,icon:T.common&&T.common.icon,folder:!0,acl:T.acl,level:0};d.id===mt?g=d:L.push(d)}),L.sort((T,d)=>T.id>d.id?1:T.idT.folder).map(T=>this.browseFolder(T.id,o,!0).catch(()=>{}))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read meta items: ${L.message}`),o[e||"/"]=[]}return o}const n=e.split("/"),a=n.length,c=n.shift(),l=n.join("/");let N;try{N=await this.readDirSerial(c||"",l)}catch(u){if(u==="Not exists"&&c==="0_userdata.0")N=[];else throw u}try{const u=[];if(N.forEach(L=>{var y;const g={id:`${e}/${L.file}`,ext:O.getFileExtension(L.file),folder:L.isDir,name:L.file,size:(y=L.stats)==null?void 0:y.size,modified:L.modifiedAt,acl:L.acl,level:a};this.state.restrictToFolder?(g.folder&&(g.id.startsWith(`${this.state.restrictToFolder}/`)||g.id===this.state.restrictToFolder||this.state.restrictToFolder.startsWith(`${g.id}/`))||g.id.startsWith(`${this.state.restrictToFolder}/`))&&u.push(g):this.limitToPath?(g.folder&&(g.id.startsWith(`${this.limitToPath}/`)||g.id===this.limitToPath||this.limitToPath.startsWith(`${g.id}/`))||g.id.startsWith(`${this.limitToPath}/`))&&u.push(g):u.push(g)}),u.sort(ml),o[e]=u,!i)return Promise.all(u.filter(L=>L.folder).map(L=>this.browseFolder(L.id,o,!0))).then(()=>o)}catch(u){const L=u;this.initialReadFinished&&window.alert(`Cannot read ${c}${l?`/${l}`:""}: ${L==null?void 0:L.message}`),o[e]=[]}return o}toggleFolder(e,t){t==null||t.stopPropagation();const i=[...this.state.expanded],r=i.indexOf(e.id);r===-1?(i.push(e.id),i.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(i)),e.temp?this.setState({expanded:i}):this.browseFolder(e.id).then(o=>this.setState({expanded:i,folders:o})).catch(o=>window.alert(o===Al?this.props.t('ra_Cannot find "%s"',e.id):this.props.t('ra_Cannot read "%s"',e.id)))):(i.splice(r,1),this.localStorage.setItem("files.expanded",JSON.stringify(i)),this.setState({expanded:i}))}onFileChange=(e,t,i)=>{const r=`${e}/${t}`,o=r.lastIndexOf("/"),n=r.substring(0,o);console.log(`File changed ${r}[${i}]`),this.state.folders[n]&&(this._tempTimeout[n]&&clearTimeout(this._tempTimeout[n]),this._tempTimeout[n]=setTimeout(()=>{delete this._tempTimeout[n],this.browseFolder(n,null,!1,!0).then(a=>this.setState({folders:a})).catch(a=>console.error(`Cannot read folder: ${a.message}`))},300))};changeFolder(e,t){var r;e==null||e.stopPropagation(),this.lastSelect=Date.now();let i=t||ys(this.state.currentDir);if(i==="/"&&(i=""),this.state.viewType==="Tile"&&((r=this.refFileDiv.current)!=null&&r.scrollTop)&&(this.scrollPositions[this.state.currentDir]=this.refFileDiv.current.scrollTop),this.localStorage.setItem("files.currentDir",i),t&&e&&(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)){this.setState({selected:i});return}if(i&&!this.state.folders[i]){this.browseFolder(i).then(o=>this.setState({folders:o,path:i,currentDir:i,selected:i,pathFocus:!1},()=>this.props.onSelect&&this.props.onSelect(""))).catch(o=>console.error(`Cannot read folder: ${o.message}`));return}this.setState({currentDir:i,selected:i,path:i,pathFocus:!1},()=>{if(this.props.onSelect&&this.props.onSelect(""),this.state.viewType==="Tile"&&this.scrollPositions[this.state.currentDir]){const o=this.scrollPositions[this.state.currentDir];delete this.scrollPositions[this.state.currentDir],this.refFileDiv.current&&(this.refFileDiv.current.scrollTop=o)}})}select(e,t,i){t&&t.stopPropagation(),this.lastSelect=Date.now(),this.localStorage.setItem("files.selected",e),this.setState({selected:e,path:e,pathFocus:!1},()=>{if(this.props.onSelect){const r=O.getFileExtension(e);(!this.props.filterFiles||r&&this.props.filterFiles.includes(r))&&(!this.state.filterByType||r&&we[this.state.filterByType].includes(r))?this.props.onSelect(e,!1,!!this.state.folders[e]):this.props.onSelect("")}i&&i()})}getText(e){if(e)return typeof e=="object"?e[this.props.lang]||e.en||void 0:e}renderFolder(e,t){var c;if(this.state.filterEmpty&&!((c=this.state.folders[e.id])!=null&&c.length)&&e.id!==mt&&!e.temp)return null;const i=t?fr:Ws,r=this.state.viewType===te?e.level*this.levelPadding:0,o=e.name===mt,n=o||e.name==="vis.0"||e.name==="vis-2.0",a=O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`],n&&Y.specialFolder);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,style:this.state.viewType===te?{marginLeft:r,width:`calc(100% - ${r}px`}:void 0,onClick:l=>this.state.viewType===te?this.select(e.id,l):this.changeFolder(l,e.id),onDoubleClick:l=>this.state.viewType===te&&this.toggleFolder(e,l),title:this.getText(e.title),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:{},e.temp?Y.itemFolderTemp:{})},M.createElement(i,{style:a,onClick:this.state.viewType===te?l=>this.toggleFolder(e,l):void 0}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},o?this.props.t("ra_User files"):e.name),M.createElement(j.Box,{component:"div",style:Y[`itemSize${this.state.viewType}`],sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.state.folders[e.id]?this.state.folders[e.id].length:""),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),this.state.viewType===te&&this.props.expertMode?M.createElement(j.Box,{component:"div",sx:{...Y.itemDeleteButtonTable,display:{md:"inline-block",sm:"none"}}}):null,this.state.viewType===te&&this.props.allowDownload?M.createElement("div",{style:Y[`itemDownloadEmpty${this.state.viewType}`]}):null,this.state.viewType===te&&this.props.allowDelete&&this.state.folders[e.id]&&this.state.folders[e.id].length?M.createElement(j.IconButton,{"aria-label":"delete",onClick:l=>{l.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderBackFolder(){return M.createElement(j.Box,{component:"div",key:this.state.currentDir,id:this.state.currentDir,onClick:e=>this.changeFolder(e),title:this.props.t("ra_Back to %s",ys(this.state.currentDir)),className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFolder${this.state.viewType}`])},M.createElement(Ws,{style:O.getStyle(this.props.theme,Y[`itemFolderIcon${this.state.viewType}`])}),M.createElement(JL,{sx:Y.itemFolderIconBack}),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,Y[`itemName${this.state.viewType}`],Y[`itemNameFolder${this.state.viewType}`])},".."))}formatSize(e){return M.createElement("div",{style:Y[`itemSize${this.state.viewType}`]},e||e===0?O.formatBytes(e):"")}formatAcl(e){const t=e?e.permissions||e.file:0;let i;return t?i=t.toString(16).padStart(3,"0"):i="",M.createElement("div",{style:Y[`itemAccess${this.state.viewType}`]},this.props.modalEditOfAccessControl?M.createElement(j.IconButton,{size:"large",onClick:()=>this.setState({modalEditOfAccess:!0}),sx:Y[`itemAclButton${this.state.viewType}`]},i||"---"):i||"---")}getFileIcon(e){switch(e){case"json":case"json5":return M.createElement(HL,{style:Y[`itemIcon${this.state.viewType}`]});case"css":return M.createElement(VL,{style:Y[`itemIcon${this.state.viewType}`]});case"js":case"ts":return M.createElement(ua,{style:Y[`itemIcon${this.state.viewType}`]});case"html":case"md":return M.createElement(Kr,{style:Y[`itemIcon${this.state.viewType}`]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return M.createElement(hg,{style:Y[`itemIcon${this.state.viewType}`]});default:return M.createElement(jN,{style:Y[`itemIcon${this.state.viewType}`]})}}static getEditFile(e){switch(e){case"json":case"json5":case"js":case"html":case"txt":case"css":case"log":return!0;default:return!1}}setStateBackgroundImage=()=>{const e=["light","dark","colored","delete"];this.setState(({backgroundImage:t})=>t&&e.indexOf(t)!==-1&&e.length-1!==e.indexOf(t)?(this.localStorage.setItem("files.backgroundImage",e[e.indexOf(t)+1]),{backgroundImage:e[e.indexOf(t)+1]}):(this.localStorage.setItem("files.backgroundImage",e[0]),{backgroundImage:e[0]}))};getStyleBackgroundImage=()=>{switch(this.state.backgroundImage){case"light":return Y.backgroundImageLight;case"dark":return Y.backgroundImageDark;case"colored":return Y.backgroundImageColored;case"delete":return null;default:return null}};renderFile(e){const t=this.state.viewType===te?e.level*this.levelPadding:0,i=O.getFileExtension(e.name);return M.createElement(j.Box,{component:"div",key:e.id,id:e.id,onDoubleClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},onClick:r=>this.select(e.id,r),style:this.state.viewType===te?{marginLeft:t,width:`calc(100% - ${t}px)`}:void 0,className:"browserItem",sx:O.getStyle(this.props.theme,Y[`item${this.state.viewType}`],Y[`itemFile${this.state.viewType}`],this.state.selected===e.id?Y.itemSelected:void 0)},i&&we.images.includes(i)?this.state.fileErrors.includes(e.id)?M.createElement(dM,{style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage(),...Y[`itemNoImage${this.state.viewType}`]}}):M.createElement(me,{onError:r=>{r.target.onerror=null;const o=[...this.state.fileErrors];o.includes(e.id)||(o.push(e.id),this.setState({fileErrors:o}))},style:{...Y[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage()},src:this.imagePrefix+e.id,alt:e.name}):this.getFileIcon(i),M.createElement(j.Box,{component:"div",sx:Y[`itemName${this.state.viewType}`]},e.name),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.formatSize(e.size)),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode?this.formatAcl(e.acl):null),M.createElement(j.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===te&&this.props.expertMode&&DM.getEditFile(i)?M.createElement(j.IconButton,{"aria-label":"edit",onClick:r=>{r.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&we[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:i})},sx:Y.itemDeleteButtonTable,size:"large"},M.createElement(mi,{fontSize:"small"})):M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]})),this.state.viewType===te&&this.props.allowDownload?M.createElement(j.Box,{component:"a",className:"MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeLarge",sx:Y.itemDownloadButtonTable,tabIndex:0,download:e.id,href:this.imagePrefix+e.id,onClick:r=>r.stopPropagation()},M.createElement(Cg,null)):null,this.state.viewType===te&&this.props.allowDelete&&e.id!=="vis.0/"&&e.id!=="vis-2.0/"&&e.id!==mt?M.createElement(j.IconButton,{"aria-label":"delete",onClick:r=>{r.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:Y[`itemDeleteButton${this.state.viewType}`],size:"large"},M.createElement(nt,{fontSize:"small"})):this.state.viewType===te&&this.props.allowDelete?M.createElement(j.Box,{component:"div",sx:Y[`itemDeleteButton${this.state.viewType}`]}):null)}renderItems(e){var t;if((t=this.state.folders)!=null&&t[e]){if(this.state.viewType===Zo){const r=[];return e&&e!=="/"&&r.push(this.renderBackFolder()),this.state.folders[e].forEach(o=>{o.folder?r.push(this.renderFolder(o)):(!this.props.filterFiles||o.ext&&this.props.filterFiles.includes(o.ext))&&(!this.state.filterByType||o.ext&&we[this.state.filterByType].includes(o.ext))&&r.push(this.renderFile(o))}),r}const i=[];return this.state.folders[e].forEach(r=>{if(r.folder){const o=this.state.expanded.includes(r.id),n=this.renderFolder(r,o);if(Array.isArray(n)?n.forEach(a=>i.push(a)):i.push(n),this.state.folders[r.id]&&o){const a=this.renderItems(r.id);Array.isArray(a)?a.forEach(c=>i.push(c)):i.push(a)}}else(!this.props.filterFiles||r.ext&&this.props.filterFiles.includes(r.ext))&&(!this.state.filterByType||r.ext&&we[this.state.filterByType].includes(r.ext))&&i.push(this.renderFile(r))}),i}return M.createElement("div",{style:{position:"relative"}},M.createElement(j.CircularProgress,{key:e,color:"secondary",size:24}),M.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}renderToolbar(){const e=this.props.showTypeSelector?dr[this.state.filterByType||"all"]||dr.all:null,t=this.findFirstFolder(this.state.selected);return M.createElement(j.Toolbar,{key:"toolbar",variant:"dense"},this.props.allowNonRestricted&&this.props.restrictToFolder?M.createElement(j.IconButton,{edge:"start",title:this.state.restrictToFolder?this.props.t("ra_Show all folders"):this.props.t("ra_Restrict to folder"),style:{...Y.menuButton,...this.state.restrictToFolder?Y.menuButtonRestrictActive:void 0},"aria-label":"restricted to folder",onClick:()=>this.setState({restrictToFolder:(this.state.restrictToFolder?"":this.props.restrictToFolder)||"",loadAllFolders:!0}),size:"small"},M.createElement(Ng,{fontSize:"small"})):null,this.props.showExpertButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle expert mode"),style:{...Y.menuButton,...this.state.expertMode?Y.menuButtonExpertActive:void 0},"aria-label":"expert mode",onClick:()=>this.setState({expertMode:!this.state.expertMode}),size:"small"},M.createElement($n,null)):null,this.props.showViewTypeButton?M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Toggle view mode"),style:Y.menuButton,"aria-label":"view mode",onClick:()=>{const i=this.state.viewType===te?Zo:te;this.localStorage.setItem("files.viewType",i);let r=this.state.selected;Vo(r)&&(r=ys(r)),this.setState({viewType:i,currentDir:r},()=>{this.state.viewType===te&&this.scrollToSelected()})},size:"small"},this.state.viewType!==te?M.createElement(Tg,{fontSize:"small"}):M.createElement(_g,{fontSize:"small"})):null,M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Hide empty folders"),style:Y.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:()=>{this.localStorage.setItem("file.empty",this.state.filterEmpty?"false":"true"),this.setState({filterEmpty:!this.state.filterEmpty})},size:"small"},M.createElement(lg,{fontSize:"small"})),M.createElement(j.IconButton,{edge:"start",title:this.props.t("ra_Reload files"),style:Y.menuButton,color:"inherit","aria-label":"reload files",onClick:()=>this.setState({folders:{}},()=>this.loadFolders()),size:"small"},M.createElement(TN,{fontSize:"small"})),this.props.allowCreateFolder?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),style:Y.menuButton,color:"inherit","aria-label":"add folder",onClick:()=>this.setState({addFolder:!0}),size:"small"},M.createElement(gN,{fontSize:"small"})):null,this.props.allowUpload?M.createElement(j.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),style:Y.menuButton,color:"inherit","aria-label":"upload file",onClick:()=>this.setState({uploadFile:!0}),size:"small"},M.createElement(Sr,{fontSize:"small"})):null,this.props.showTypeSelector&&e?M.createElement(j.Tooltip,{title:this.props.t("ra_Filter files"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{size:"small",onClick:i=>this.setState({showTypesMenu:i.target})},M.createElement(e,{fontSize:"small"}))):null,this.state.showTypesMenu?M.createElement(j.Menu,{open:!0,anchorEl:this.state.showTypesMenu,onClose:()=>this.setState({showTypesMenu:null})},Object.keys(dr).map(i=>{const r=dr[i];return M.createElement(j.MenuItem,{key:i,selected:this.state.filterByType===i,onClick:()=>{i==="all"?(this.localStorage.removeItem("files.filterByType"),this.setState({filterByType:"",showTypesMenu:null})):(this.localStorage.setItem("files.filterByType",i),this.setState({filterByType:i,showTypesMenu:null}))}},M.createElement(j.ListItemIcon,null,M.createElement(r,{fontSize:"small"})),M.createElement(j.ListItemText,null,this.props.t(`ra_fileType_${i}`)))})):null,M.createElement(j.Tooltip,{title:this.props.t("ra_Background image"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement(j.IconButton,{color:"inherit",edge:"start",style:Y.menuButton,onClick:this.setStateBackgroundImage,size:"small"},M.createElement(ca,{fontSize:"small"}))),this.state.viewType!==te&&this.props.allowDelete?M.createElement(j.Tooltip,{title:this.props.t("ra_Delete"),slotProps:{popper:{sx:Y.tooltip}}},M.createElement("span",null,M.createElement(j.IconButton,{"aria-label":"delete",disabled:!this.state.selected||this.state.selected==="vis.0/"||this.state.selected==="vis-2.0/"||this.state.selected===mt,color:"inherit",edge:"start",style:Y.menuButton,onClick:i=>{i.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(this.state.selected):this.setState({deleteItem:this.state.selected})},size:"small"},M.createElement(nt,{fontSize:"small"})))):null)}findItem(e,t){if(t=t||this.state.folders,!t)return null;const i=e.split("/");i.pop();const r=i.join("/")||"/";return t[r]&&t[r].find(o=>o.id===e)||null}renderInputDialog(){if(this.state.addFolder){const e=this.findFirstFolder(this.state.selected);return e?M.createElement(FEe,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:t=>this.state.folders[e].find(i=>i.name===t)?"":this.props.t("ra_Duplicate name"),onClose:t=>{if(t){const i={};Object.keys(this.state.folders).forEach(a=>i[a]=this.state.folders[a]);const r=this.findItem(e),o=`${e}/${t}`;i[e].push({id:o,level:((r==null?void 0:r.level)||0)+1,name:t,folder:!0,temp:!0}),i[e].sort(ml),i[o]=[];const n=[...this.state.expanded];n.includes(e)||(n.push(e),n.sort()),this.localStorage.setItem("files.expanded",JSON.stringify(n)),this.setState({addFolder:!1,folders:i,expanded:n},()=>this.select(o))}else this.setState({addFolder:!1})},replace:t=>t.replace(/[^-_\w]/,"_")}):(window.alert(this.props.t("ra_Invalid parent folder!")),null)}return null}componentDidUpdate(){this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(()=>{this.setOpacityTimer=null;const e=window.document.getElementsByClassName("browserItem");for(let t=0;tthis.setState({uploadFile:!1})},M.createElement(Ne,null)),M.createElement(NN,{key:"dropzone",onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:e=>{let t=e.length;e.forEach(i=>{const r=new FileReader;r.onabort=()=>console.log("file reading was aborted"),r.onerror=()=>console.log("file reading has failed"),r.onload=()=>{const o=this.findFirstFolder(this.state.selected);if(!o)window.alert(this.props.t("ra_Invalid parent folder!"));else{const n=`${o}/${i.name}`;this.uploadFile(n,r.result).then(()=>{--t||this.setState({uploadFile:!1},()=>{if(this.supportSubscribes){const a=[...this.state.expanded];a.includes(o)||(a.push(o),a.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(a))),this.setState({expanded:a},()=>this.select(n))}else setTimeout(()=>this.browseFolder(o,null,!1,!0).then(a=>{const c=[...this.state.expanded];c.includes(o)||(c.push(o),c.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(c))),this.setState({folders:a,expanded:c},()=>this.select(n))}),500)})})}},r.readAsArrayBuffer(i)})}},({getRootProps:e,getInputProps:t})=>M.createElement("div",{style:{...Y.uploadDiv,...this.state.uploadFile==="dragging"?Y.uploadDivDragging:void 0},...e()},M.createElement("input",{...t()}),M.createElement(j.Box,{component:"div",sx:Y.uploadCenterDiv},M.createElement("div",{style:Y.uploadCenterTextAndIcon},M.createElement(Sr,{style:Y.uploadCenterIcon}),M.createElement("div",{style:Y.uploadCenterText},this.state.uploadFile==="dragging"?this.props.t("ra_Drop file here"):this.props.t("ra_Place your files here or click here to open the browse dialog"))))))]:null}deleteRecursive(e){const t=this.findItem(e);if(t!=null&&t.folder)return(this.state.folders[e]?Promise.all(this.state.folders[e].map(o=>this.deleteRecursive(o.id))):Promise.resolve()).then(()=>{if(t.level>=1){const o=e.split("/"),n=o.shift();this.props.socket.deleteFolder(n||"",o.join("/")).then(()=>{const a=JSON.parse(JSON.stringify(this.state.folders));delete a[t.id];const c=ys(t.id),l=a[c];if(l){const N=l.findIndex(u=>u.id===t.id);N!==-1&&l.splice(N,1),this.select(c,null,()=>this.setState({folders:a}))}})}});const i=e.split("/"),r=i.shift();return i.length?this.props.socket.deleteFile(r||"",i.join("/")).catch(o=>window.alert(`Cannot delete file: ${o}`)):Promise.resolve()}deleteItem(e){e=e||this.state.deleteItem,this.state.suppressDeleteConfirm&&(this.suppressDeleteConfirm=Date.now()+6e4*5),this.setState({deleteItem:"",suppressDeleteConfirm:!1},()=>this.deleteRecursive(e).then(()=>{const t={},i=this.state.expanded.indexOf(e);if(i!==-1){const r=[...this.state.expanded];r.splice(i,1),this.localStorage.setItem("files.expanded",JSON.stringify(r)),t.expanded=r}if(this.state.selected===e){const r=this.state.selected.split("/");r.pop(),t.selected=r.join("/")}if(this.supportSubscribes)this.setState(t);else{const r=this.findFirstFolder(e),o={};Object.keys(this.state.folders).forEach(n=>{n!==r&&!n.startsWith(`${r}/`)&&(o[n]=this.state.folders[n])}),t.folders=o,this.setState(t,()=>setTimeout(()=>{this.browseFolders([...this.state.expanded],o).then(n=>this.setState({folders:n})).catch(n=>console.error(n))},200))}}))}renderDeleteDialog(){return this.state.deleteItem?M.createElement(j.Dialog,{key:"deleteDialog",open:!0,onClose:()=>this.setState({deleteItem:""}),"aria-labelledby":"ar_dialog_file_delete_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_file_delete_title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.props.t("ra_Are you sure?")),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.suppressDeleteConfirm,onChange:()=>{this.setState({suppressDeleteConfirm:!this.state.suppressDeleteConfirm})}}),label:this.props.t("ra_no confirm for 5 mins")})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.deleteItem(""),color:"primary",autoFocus:!0},this.props.t("ra_Delete")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({deleteItem:""}),color:"grey"},this.props.t("ra_Cancel")))):null}renderViewDialog(){const e=this.props.FileViewer||yfe;return this.state.viewer?M.createElement(e,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeType:this.props.themeType,setStateBackgroundImage:this.setStateBackgroundImage,getStyleBackgroundImage:this.getStyleBackgroundImage,t:this.props.t,socket:this.props.socket,onClose:()=>this.setState({viewer:"",formatEditFile:""})}):null}renderError(){return this.state.errorText?M.createElement(r0,{key:"errorDialog",text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}updateItemsAcl(e){this.cacheFolders||=JSON.parse(JSON.stringify(this.state.folders));let t;e.forEach(i=>{const r=this.findItem(i.id,this.cacheFolders);r&&JSON.stringify(r.acl)!==JSON.stringify(i.acl)&&(r.acl=i.acl,t=!0)}),t&&(this.cacheFoldersTimeout&&clearTimeout(this.cacheFoldersTimeout),this.cacheFoldersTimeout=setTimeout(()=>{this.cacheFoldersTimeout=null;const i=this.cacheFolders||{};this.cacheFolders=null,this.setState({folders:i})},200))}changeToPath(){setTimeout(()=>{if(this.state.path!==this.state.selected&&(!this.lastSelect||Date.now()-this.lastSelect>100)){let e=this.state.path;Vo(this.state.path)&&(e=ys(this.state.path)),new Promise(t=>{this.state.folders[e]?t(!0):this.browseFolder(e).then(i=>this.setState({folders:i},()=>t(!0))).catch(i=>this.setState({errorText:i===Al?this.props.t('ra_Cannot find "%s"',e):this.props.t('ra_Cannot read "%s"',e)}))}).then(t=>t&&this.setState({selected:this.state.path,currentDir:e,pathFocus:!1})).catch(t=>console.error(t))}else(!this.lastSelect||Date.now()-this.lastSelect>100)&&this.setState({pathFocus:!1})},100)}renderBreadcrumb(){const e=this.state.currentDir.startsWith("/")?this.state.currentDir.split("/"):`/${this.state.currentDir}`.split("/"),t=[];return M.createElement(j.Breadcrumbs,{style:{paddingLeft:8,color:"#FFF"}},e.map((i,r)=>{i&&t.push(i);const o=t.join("/");return rthis.changeFolder(n,o||"/")},i||this.props.t("ra_Root")):M.createElement("div",{style:Y.pathDivBreadcrumbSelected,key:`${this.state.selected}_${r}`,onClick:()=>this.setState({pathFocus:!0})},i)}))}renderPath(){return M.createElement(j.Box,{component:"div",key:"path",sx:Y.pathDiv},this.state.pathFocus?M.createElement(j.Input,{value:this.state.path,onKeyDown:e=>{e.key==="Enter"?this.changeToPath():e.key==="Escape"&&this.setState({pathFocus:!1})},endAdornment:M.createElement(j.IconButton,{size:"small",onClick:()=>this.changeToPath()},M.createElement(yg,null)),onBlur:()=>this.changeToPath(),onChange:e=>this.setState({path:e.target.value}),style:Y.pathDivInput}):this.renderBreadcrumb())}render(){return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(()=>{this.setState({loadAllFolders:!1,folders:{}},()=>{this.foldersLoading=!1,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`))})},300)),M.createElement("div",{style:{...Y.root,...this.props.style},className:this.props.className},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===Zo?this.renderPath():null,M.createElement("div",{style:{...Y.filesDiv,...Y[`filesDiv${this.state.viewType}`]},onClick:e=>{this.state.viewType!==te&&(this.state.selected!==(this.state.currentDir||"/")?this.changeFolder(e,this.state.currentDir||"/"):e.stopPropagation())},id:"dev",ref:this.refFileDiv},this.state.viewType===te?this.renderItems("/"):this.renderItems(this.state.currentDir||"/"),this.state.viewType!==te?M.createElement("div",{style:Y.filesDivHint},this.props.t("ra_select_folder_hint")):null),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl?this.props.modalEditOfAccessControl(this):null,this.renderError())):M.createElement(j.LinearProgress,null)}}const Tfe=Io()(DM),dfe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIC0xMjAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDBoLTQ2NGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgzMnYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDI4OHYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTE5MmMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMzkyIDIyNGgtMjR2LTE2aDI0em0zNDQgMGgtMjR2LTE2aDI0em00MC0zMmgtNDQ4di0xNzZoNDQ4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2IDE3NmMzNS4zNDc2NTYgMCA2NC0yOC42NTIzNDQgNjQtNjRzLTI4LjY1MjM0NC02NC02NC02NC02NCAyOC42NTIzNDQtNjQgNjRjLjAzOTA2MiAzNS4zMjgxMjUgMjguNjcxODc1IDYzLjk2MDkzOCA2NCA2NHptLTgtMTExLjI4MTI1djE1LjI4MTI1aDE2di0xNS4yODEyNWMyNC42MDU0NjkgNC4xNjAxNTYgNDEuOTE3OTY5IDI2LjQ3NjU2MiAzOS44MzIwMzEgNTEuMzQzNzUtMi4wODU5MzcgMjQuODY3MTg4LTIyLjg3ODkwNiA0My45ODQzNzUtNDcuODMyMDMxIDQzLjk4NDM3NXMtNDUuNzQ2MDk0LTE5LjExNzE4Ny00Ny44MzIwMzEtNDMuOTg0Mzc1Yy0yLjA4NTkzOC0yNC44NjcxODggMTUuMjI2NTYyLTQ3LjE4MzU5NCAzOS44MzIwMzEtNTEuMzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjAgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYwIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzY4IDE3NmMxNi4wOTM3NS4wMTk1MzEgMjkuNjg3NS0xMS45Mzc1IDMxLjcxODc1LTI3LjkwNjI1IDIuMDM1MTU2LTE1Ljk2NDg0NC04LjEzMjgxMi0zMC45NDUzMTItMjMuNzE4NzUtMzQuOTU3MDMxdi0xNy4xMzY3MTloLTE2djE3LjEzNjcxOWMtMTUuNTg1OTM4IDQuMDExNzE5LTI1Ljc1MzkwNiAxOC45OTIxODctMjMuNzE4NzUgMzQuOTU3MDMxIDIuMDMxMjUgMTUuOTY4NzUgMTUuNjI1IDI3LjkyNTc4MSAzMS43MTg3NSAyNy45MDYyNXptMC00OGM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2cy03LjE2NDA2MiAxNi0xNiAxNi0xNi03LjE2NDA2Mi0xNi0xNiA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im02NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggMTEyaDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTMyYy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDh6bTgtNjRoMTZ2MTZoLTE2em0wIDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMiAxMzZjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MzIgMTY4YzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Dfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy41NDYgMTA1LjEyNWMwLTEuMDQ0LS4yMDUtMi4wOTEtLjY0Ny0zLjA3MmwtNDMuOTMtOTcuNjNjLTEuMjEtMi42OTItMy44ODgtNC40MjMtNi44MzktNC40MjNoLTE4Mi42M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMy44MTJ2ODIuNjNoLTgyLjYyNXYtODIuNjNoMjMuODEzYzQuMTQzIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xODIuNjNjLTIuOTUxIDAtNS42MjkgMS43MzEtNi44NCA0LjQyM2wtNDMuOTMgOTcuNjNjLS40NDEuOTgxLS42NDYgMi4wMjgtLjY0NyAzLjA3MmgtLjAxNXYxMi4yMDNjMCAyOS41MTQgMjIuODI3IDUzLjc4IDUxLjc1MSA1Ni4xMTJsMzEuODY1IDU4LjQxOWgtNC4wMDdjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjMzYy4wMDUgMCAuMDEuMDAxLjAxNS4wMDFzLjAxMS0uMDAxLjAxNi0uMDAxaDE2LjYxOGM0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTIuMTg5bC0zMi40NTYtNTkuNTAzYzE1Ljc1LTMuNDEzIDI5LjA1Ny0xMy40MzMgMzYuODc5LTI3LjAwMyA5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM3LjgyMiAxMy41NzEgMjEuMTI5IDIzLjU5MSAzNi44NzkgMjcuMDAzbC0zMi40NTYgNTkuNTAzaC0xMi4xODhjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjE4Yy4wMDUgMCAuMDExLjAwMS4wMTYuMDAxcy4wMS0uMDAxLjAxNS0uMDAxaDE2LjYzM2M0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNC4wMDdsMzEuODY1LTU4LjQxOWMyOC45MjQtMi4zMzIgNTEuNzUxLTI2LjU5OCA1MS43NTEtNTYuMTEydi0xMi4yMDN6bS0xOS4wODUtNy40OTVoLTc4LjUyM3YtODIuNjNoNDEuMzQzem0tOTMuNTIzLTgyLjYzdjgyLjYzaC04Mi42MjV2LTgyLjYzem0tMTk1LjI1IDgyLjYzaC04Mi42MjV2LTgyLjYzaDgyLjYyNXptLTEzOC45NjgtODIuNjNoNDEuMzQzdjgyLjYzaC03OC41MjR6bS4wMzQgMTQzLjY0MWMtLjAxMSAwLS4wMjEtLjAwMS0uMDMyLS4wMDEtMjIuNzY3LS4wMTUtNDEuMjg1LTE4LjU0Mi00MS4yODUtNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTMxIDQxLjMxLTQxLjMwOCA0MS4zMTN6bTk3LjYyMSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMwIDIyLjc3OC0xOC41MzQgNDEuMzEyLTQxLjMxMyA0MS4zMTJ6bTk3LjYyNSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMtLjAwMSAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42MjUgMGMtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42NDgtLjAwMWMtLjAwNSAwLS4wMDkgMC0uMDE0IDAtLjAwMyAwLS4wMDYgMC0uMDA5IDAtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjLS4wMDEgMjIuNzcyLTE4LjUyMSA0MS4zLTQxLjI5IDQxLjMxMnoiLz4KICAgIDwvZz4KPC9zdmc+",hfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOC41MzYgNTA4LjUzNiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ5OC41MzYgMzQ0LjMyMWgtMTcuMjk4Yy40MzQtMTcuNjcyLTEwLjI2Ny0zNC4yMTItMjkuNTQ3LTM0LjIxMnMtMjkuOTgyIDE2LjU0LTI5LjU0NyAzNC4yMTJoLTE3LjI5OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OTdjMCAyNC42MDEgMTUuNzEyIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5M3YtNjYuNjRjMzYuMDg4IDEuMjY2IDU3Ljg0Ni0yMi4zOSA4MS4xNDktNDUuNjk0IDI4LjUxNy0zLjAyNCA1MC44MDktMjcuMjE2IDUwLjgwOS01Ni41MjJ2LTI1LjY5OGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwaC0xNy4yOThjLjQzNC0xNy42NzEtMTAuMjY3LTM0LjIxMi0yOS41NDctMzQuMjEycy0yOS45ODIgMTYuNTQtMjkuNTQ3IDM0LjIxMmgtMTcuM2MtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OThjMCAyNC42MDEgMTUuNzExIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5NCAwLTI1Ljg5NSAwLTUxLjc5MSAwLTc3LjY4NmgyMi43MTZjMTIuMjg1IDAgMTguNzI2IDE1LjUzIDEwLjAzMyAyNC4yMjEtOS4xMjIgOS4xMjEgNS4wMiAyMy4yNjQgMTQuMTQyIDE0LjE0MyA2LjQ1OC02LjQ1NyAxMC4wMTQtMTUuMDQyIDEwLjAxNC0yNC4xNzUgMC0xOC44NTItMTUuMzM3LTM0LjE4OC0zNC4xODktMzQuMTg4aC0yMi43MTZ2LTE4LjgyNGMyNi4yNTctNS4wNDMgNDYuMTYxLTI4LjE3NSA0Ni4xNjEtNTUuODgxdi0yMC44NTFjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMzYuOTE0di0yNC4yMzZoMzYuOTE0YzEyLjg0IDAgMTIuODU5LTIwIDAtMjBoLTkzLjgyOGMtMTIuODQgMC0xMi44NTkgMjAgMCAyMGgzNi45MTR2MjQuMjM1aC0zNi45MTRjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjAuODUxYzAgMjguMjMzIDIwLjY2OSA1MS43MTkgNDcuNjY3IDU2LjE1MXYxOC41NTVoLTIyLjcxNmMtMTguODUyIDAtMzQuMTg5IDE1LjMzNy0zNC4xODkgMzQuMTg4IDAgOS4xMzIgMy41NTYgMTcuNzE3IDEwLjAxNCAyNC4xNzUgOS4xMjEgOS4xMjEgMjMuMjYzLTUuMDIxIDE0LjE0My0xNC4xNDMtOC42ODUtOC42ODQtMi4yNjQtMjQuMjIxIDEwLjAzMy0yNC4yMjFoMjIuNzE2djc3LjY4NmMwIDMyLjM2NC0yNi4zMyA1OC42OTQtNTguNjk0IDU4LjY5NC0xNS42NzcgMC0zMC40MTctNi4xMDUtNDEuNTAyLTE3LjE5MWwtMTEuMjE4LTExLjIxOGMyMi41LTcuNTc1IDM4Ljc1Ni0yOC44NTYgMzguNzU2LTUzLjg3N3YtMjUuNjk4YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5OGMuNDM0LTE3LjY3MS0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4zYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwdjI1LjY5OGMwIDI4LjcwNyAyMS4zOTQgNTIuNDk4IDQ5LjA3MyA1Ni4zbDIyLjkzNyAyMi45MzdjMTUuMTY0IDE1LjE2MyAzNi4wMSAyMy40ODYgNTcuNDMzIDIzLjAwM3Y2Ni42MTRjMCAzMi4zNjQtMjYuMzMgNTguNjkzLTU4LjY5MyA1OC42OTMtMTUuNjc3IDAtMzAuNDE3LTYuMTA1LTQxLjUwMi0xNy4xOTFsLTExLjYwMi0xMS42MDJjMjEuOTE0LTcuODk4IDM3LjYyNS0yOC44OTIgMzcuNjI1LTUzLjQ5NHYtMjUuNjk3YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5N2MuNDM0LTE3LjY3Mi0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4yOTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjUuNjk3YzAgMjkuMzA1IDIyLjI5MiA1My40OTcgNTAuODA4IDU2LjUyMWwyMi43MTcgMjIuNzE2YzE0Ljg2MyAxNC44NjMgMzQuNjI1IDIzLjA0OCA1NS42NDUgMjMuMDQ4IDQzLjM5MiAwIDc4LjY5My0zNS4zMDIgNzguNjkzLTc4LjY5M3YtNjkuNjU3YzE0LjQyNi00LjE2NCAyNy4xNjEtMTIuMzQyIDM2LjkwNS0yMy4yNTd2MjAuNTIyYzAgMTIuODQgMjAgMTIuODU5IDIwIDB2LTIwLjUyMmM5LjUyIDEwLjY2MyAyMS44ODkgMTguNzIzIDM1LjkwNSAyMi45NzJ2NjkuOTQ2YzAgNDMuMzkyIDM1LjMwMiA3OC42OTMgNzguNjkzIDc4LjY5MyAyMS4wMiAwIDQwLjc4MS04LjE4NiA1NS42NDUtMjMuMDQ4bDIyLjcxNi0yMi43MTZjMjguNTE2LTMuMDI1IDUwLjgwOC0yNy4yMTYgNTAuODA4LTU2LjUyMXYtMjUuNjk3Yy4wMDEtNS41MjQtNC40NzYtMTAuMDAxLTkuOTk5LTEwLjAwMXptLTExMi4yOTgtMTQ5LjkyN2MwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0zMjYuOTE0LTI0LjY2NGMwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0xMDQuODEyIDEyMC41OTljMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTIgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjgtMzYuODQ1LTM2Ljg0NXYtMTUuNjk3em0xMjMuNDExLTI3OC4zNjR2LTEwLjg1MWg3My44Mjh2MTAuODUxYzAgNDcuNTk2LTczLjgyOCA0Ny41OTYtNzMuODI4IDB6bTIyNS4wNDIgMjUzLjdjMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTMgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjktMzYuODQ1LTM2Ljg0NXYtMTUuNjk3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yODEuMjA2IDQ0MS44NDctMTYuNDM4LTkuNDl2LTIxLjY0NWMwLTEyLjg0LTIwLTEyLjg1OS0yMCAwdjIxLjYxOWwtMTYuNDgzIDkuNTE2Yy0zLjA5NCAxLjc4Ni01IDUuMDg3LTUgOC42NnYyNC43OGMwIDMuNTczIDEuOTA2IDYuODc0IDUgOC42NmwyMS40NiAxMi4zOWMzLjA2NyAxLjc3MSA2LjkzMyAxLjc3MSAxMCAwbDIxLjQ2LTEyLjM5YzMuMDk0LTEuNzg2IDUtNS4wODcgNS04LjY2di0yNC43OGMuMDAxLTMuNTczLTEuOTA1LTYuODc0LTQuOTk5LTguNjZ6bS0xNSAyNy42NjctMTEuNDYgNi42MTctMTEuNDYtNi42MTd2LTEzLjIzM2wxMS40Ni02LjYxNyAxMS40NiA2LjYxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ1LjUzNSAzNzQuMTgzYzEuNjM1IDMuOTI0IDUuNzE2IDYuNDY2IDkuOTY4IDYuMTM4IDQuMTY5LS4zMjIgNy43NzgtMy4yNzIgOC44OTctNy4zMDMgMi4zNjQtOC41MTMtNy4xOTEtMTUuNzU5LTE0Ljc3My0xMS4yMzUtNC4yMTQgMi41MTQtNS45NDUgNy44OC00LjA5MiAxMi40eiIvPgogICAgPC9nPgo8L3N2Zz4=",zfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtOSAxN2M0LjQxMSAwIDgtMy41ODkgOC04IDAtMS4yNTYtLjI5OS0yLjQ0MS0uODE4LTMuNTAxIDEuMTAzLTEuNTQ4IDIuODk4LTIuNDk5IDQuODE4LTIuNDk5IDIuODQgMCA1LjI3OCAyLjA2NCA1Ljc5OSA0LjgzMS0uMTkuMTA1LS4zNzUuMjE4LS41NTQuMzQyLTEuMjI0LS43NDctMi42MzYtMS4xNzMtNC4wNzQtMS4xNzNoLS4xNzF2MmguMTcxYy44OTYgMCAxLjc4LjIyMSAyLjU4LjYxNS0uMDgzLjEwOS0uMTcxLjIxMS0uMjQ4LjMyNmwtLjMzNi41MDQgMS42NjQgMS4xMDkuMzM2LS41MDRjLjg1Ny0xLjI4MyAyLjI5LTIuMDUgMy44MzMtMi4wNSAxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTdjLTEuMTAzIDAtMi0uODk3LTItMmgtMmMwIDIuMjA2IDEuNzk0IDQgNCA0aDI1YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00Yy0uNDczIDAtLjkzNS4wNi0xLjM4Ny4xNTctMS4xNTktMy42MjMtNC41NDItNi4xNTctOC40My02LjE1Ny0zLjU0OSAwLTYuNzQ2IDIuMTA3LTguMTQ0IDUuMzY5bC0uMjc3LjY0NmMtLjM1Ni4wMTMtLjcwNi4wNTUtMS4wNS4xMjMtLjgyLTMuNTQyLTQuMDIzLTYuMTM4LTcuNzEyLTYuMTM4LTIuMzEyIDAtNC40ODggMS4wMzQtNS45NzggMi43NTEtMS40NjctMS42ODItMy42Mi0yLjc1MS02LjAyMi0yLjc1MS00LjQxMSAwLTggMy41ODktOCA4czMuNTg5IDggOCA4em0yOS4xODMtMTRjMy4wNDcgMCA1LjY3NiAyLjAxNyA2LjU0MSA0Ljg3Ny0uMTYzLjA5My0uMzI1LjE4OC0uNDc5LjI5NS0xLjIyNS0uNzQ2LTIuNjM2LTEuMTcyLTQuMDc0LTEuMTcyaC0uMTcxdjJoLjE3MWMuODk1IDAgMS43OC4yMjEgMi41OC42MTUtLjA4My4xMDktLjE3MS4yMTEtLjI0OC4zMjZsLS4zMzYuNTA0IDEuNjY0IDEuMTA5LjMzNi0uNTA0Yy44NTctMS4yODMgMi4yOS0yLjA1IDMuODMzLTIuMDUgMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC0xNC41NTZjLjM0NC0uNTkxLjU1Ni0xLjI2OC41NTYtMiAwLTEuNTcxLS45MTgtMi45MTktMi4yMzgtMy41NzNsLjExNi0uMjdjMS4wODItMi41MjUgMy41NTctNC4xNTcgNi4zMDUtNC4xNTd6bS0yOS4xODMgMGMzLjMwOSAwIDYgMi42OTEgNiA2cy0yLjY5MSA2LTYgNi02LTIuNjkxLTYtNiAyLjY5MS02IDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMzd2LTQuNWw0LTN2LTIuNWgtMnYxLjVsLTIgMS41di01aC0ydjdsLTItMS41di0xLjVoLTJ2Mi41bDQgM3YyLjVoLTEwdi02LjVsNC0zdi0yLjVoLTJ2MS41bC0yIDEuNXYtNC41ODZsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny40MTRsLTItMS41di0xLjVoLTJ2Mi41bDQgM3Y0LjVoLTE0di0xLjI3OWwuNDk2LS4xNjVjMy4yOTItMS4wOTggNS41MDQtNC4xNjYgNS41MDQtNy42MzYgMC0yLjE0OS0uODM3LTQuMTcxLTIuMzU3LTUuNjkxbC00LjY0My00LjY0My0zLjgyNSAzLjgyNWMtLjM5LS44MDItLjg5Ni0xLjU0Ni0xLjUzMi0yLjE4M2wtNC42NDMtNC42NDItNC42NDMgNC42NDNjLTEuNTIgMS41Mi0yLjM1NyAzLjU0Mi0yLjM1NyA1LjY5MSAwIDMuNDcgMi4yMTIgNi41MzggNS41MDMgNy42MzVsLjQ5Ny4xNjV2NC4yOGgtMTYuMjgxbC40OSAxLjk1OWMzLjUzOSAxNC4xNTUgMTYuMjAxIDI0LjA0MSAzMC43OTEgMjQuMDQxczI3LjI1Mi05Ljg4NiAzMC43OTEtMjQuMDQxbC40OS0xLjk1OXptLTI3LjM2NCA2LjI1OCAxLjE0NSAxLjcxN2MuMTQzLjIxNC4yMTkuNDY0LjIxOS43MjIgMCAuNzE5LS41ODQgMS4zMDMtMS4zMDMgMS4zMDNoLTE1LjM5NGMtLjcxOSAwLTEuMzAzLS41ODQtMS4zMDMtMS4zMDMgMC0uMjU4LjA3Ni0uNTA4LjIxOS0uNzIzbDEuMTQ2LTEuNzE4Yy40MTUtLjYyNC42MzUtMS4zNTEuNjM1LTIuMTAxIDAtLjc3LS4yNDYtMS41MjUtLjY4MS0yLjE1NWgxNS4zNjJjLS40MzUuNjMxLS42ODEgMS4zODUtLjY4MSAyLjE1NSAwIC43NS4yMiAxLjQ3Ny42MzYgMi4xMDN6bS0xLjYzNi0yMi44NDQgMy4yMjkgMy4yMjljMS4xNDIgMS4xNDIgMS43NzEgMi42NjIgMS43NzEgNC4yNzcgMCAyLjU1Ny0xLjYwNCA0LjgxNy00IDUuNjgxdi0xLjE4NmwyLjcwNy0yLjcwNy0xLjQxNC0xLjQxNC0xLjI5MyAxLjI5MnYtMi4xNzJsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny4wMTRjLTIuMzk2LS44NjMtNC0zLjEyMi00LTUuNjggMC0xLjYxNS42MjktMy4xMzUgMS43NzEtNC4yNzd6bS0xNSA0LjUwNmMwLTEuNjE1LjYyOS0zLjEzNSAxLjc3MS00LjI3N2wzLjIyOS0zLjIyOSAzLjIyOSAzLjIyOWMuNjY2LjY2NiAxLjE1MyAxLjQ4MSAxLjQ0OSAyLjM3MS0xLjA4NCAxLjQtMS42NzggMy4xMDYtMS42NzggNC45MDYgMCAuNDY0LjA0Ni45MTguMTIyIDEuMzY0LS42MDkuNTgxLTEuMzI5IDEuMDM0LTIuMTIyIDEuMzE5di02LjNsMS44MzItMi43NDgtMS42NjQtMS4xMDktMS4zMjMgMS45ODUtMS4xMzgtMS4xMzgtMS40MTQgMS40MTQgMS43MDcgMS43MDd2Mi4xNzJsLTEuMjkzLTEuMjkzLTEuNDE0IDEuNDE0IDIuNzA3IDIuNzA3djEuMTg2Yy0yLjM5Ni0uODYzLTQtMy4xMjItNC01LjY4em02IDcuODAxLjQ5Ni0uMTY1Yy44MjUtLjI3NSAxLjU4OS0uNjk2IDIuMjgxLTEuMjE2LjkxNiAxLjk0OCAyLjU4NiAzLjUwMiA0LjcyNiA0LjIxNWwuNDk3LjE2NXYxLjI4aC04em0tNy40MTQgNi4yNzkuODkuODljLjMzMy4zMzMuNTI0Ljc5NS41MjQgMS4yNjUgMCAuMzU0LS4xMDQuNjk4LS4zLjk5M2wtMS4xNDUgMS43MTdjLS4zNjMuNTQ0LS41NTUgMS4xNzgtLjU1NSAxLjgzMiAwIDEuODIyIDEuNDgxIDMuMzAzIDMuMzAzIDMuMzAzaDE1LjM5NWMxLjgyMSAwIDMuMzAyLTEuNDgxIDMuMzAyLTMuMzAzIDAtLjY1NC0uMTkyLTEuMjg4LS41NTUtMS44MzJsLTEuMTQ1LTEuNzE2Yy0uMTk2LS4yOTUtLjMtLjYzOS0uMy0uOTk0IDAtLjQ3MS4xOTEtLjkzMy41MjQtMS4yNjZsLjg5LS44OWg2LjgzNmMtLjE2LjM4NS0uMjUuODA2LS4yNSAxLjI0NyAwIDEuNDkyIDEuMDExIDIuNzg4IDIuNDU5IDMuMTQ5bDQuMjIgMS4wNTVjLjc3OC4xOTYgMS4zMjEuODkxIDEuMzIxIDEuNjkzIDAgLjcxNy0uNDMgMS4zNTMtMS4wOTYgMS42MThsLTYuMjc1IDIuNTExYy0xLjU5Ny42MzktMi42MjkgMi4xNjMtMi42MjkgMy44ODIgMCAxLjQ5Ni44MDcgMi44ODggMi4xMDcgMy42M2wyLjcxNSAxLjU1MWMtMy4wMDQgMS4wNDktNi4yMTUgMS42MjEtOS41MzcgMS42NTNsLTUuMDg2LTMuMzkxYy0uMTI0LS4wODItLjE5OS0uMjIxLS4xOTktLjM3MSAwLS4yMTkuMTU3LS40MDQuMzc0LS40NGwzLjQzNS0uNTcyYzEuMjY5LS4yMTMgMi4xOTEtMS4zMDIgMi4xOTEtMi41OSAwLTEuNDQ3LTEuMTc3LTIuNjI0LTIuNjI0LTIuNjI0aC0yMC42MDVjLTIuOTg5LTMuMzY3LTUuMjU2LTcuNDMtNi40ODYtMTJ6bTE0LjUwMyAyMC4yNjIgMi4yMyAxLjQ4N2MtNi4zMjktLjc4NC0xMi4xMDUtMy41NDgtMTYuNjA3LTcuNzQ5aDE4LjY2NGMuMzQ0IDAgLjYyNC4yOC42MjQuNjI0IDAgLjMwNy0uMjE5LjU2NS0uNTIxLjYxNmwtMy40MzQuNTcyYy0xLjE4NS4xOTgtMi4wNDUgMS4yMTItMi4wNDUgMi40MTQgMCAuODE5LjQwNyAxLjU4MSAxLjA4OSAyLjAzNnptMTguMTAzLS44NzUtNC4wOTMtMi4zMzljLS42NzgtLjM4OC0xLjA5OS0xLjExMy0xLjA5OS0xLjg5NCAwLS44OTcuNTM5LTEuNjkyIDEuMzcyLTIuMDI1bDYuMjc1LTIuNTExYzEuNDI5LS41NzEgMi4zNTMtMS45MzUgMi4zNTMtMy40NzUgMC0xLjcyMS0xLjE2Ni0zLjIxNC0yLjgzNS0zLjYzMmwtNC4yMi0xLjA1NWMtLjU1Ny0uMTQtLjk0NS0uNjM3LS45NDUtMS4yMSAwLS42ODcuNTU5LTEuMjQ2IDEuMjQ2LTEuMjQ2aDE4LjQ2OGMtMi4zNzYgOC44MjgtOC41NjUgMTUuODE0LTE2LjUyMiAxOS4zODd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDE3aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgMjFoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MyAxN2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDE5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgMjNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSAxN2gydjJoLTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",wfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik01MTEuOTc2LDQxNi4wNjNjLTAuMDA1LTAuMDc1LTAuMDA0LTAuMTQ5LTAuMDExLTAuMjI0Yy0wLjAyNy0wLjI5Ny0wLjA3LTAuNTg4LTAuMTMxLTAuODczCgkJYy0wLjAwNi0wLjAyOC0wLjAxNS0wLjA1Ni0wLjAyMi0wLjA4NGMtMC4wNTktMC4yNjItMC4xMzItMC41MTgtMC4yMTgtMC43NjhjLTAuMDIzLTAuMDY3LTAuMDQ4LTAuMTMyLTAuMDczLTAuMTk4CgkJYy0wLjA4NC0wLjIyNy0wLjE3OS0wLjQ0OC0wLjI4NC0wLjY2M2MtMC4wMTgtMC4wMzgtMC4wMy0wLjA3Ny0wLjA0OS0wLjExNWwtNDAuMTEyLTc5LjExOFY3My43MgoJCWMwLTguMDA2LTYuNTEzLTE0LjUxOS0xNC41MTktMTQuNTE5SDU1LjQ0MWMtOC4wMDYsMC0xNC41MTksNi41MTMtMTQuNTE5LDE0LjUxOXYyNjAuMjk4TDAuODExLDQxMy4xMzcKCQljLTAuMDE5LDAuMDM4LTAuMDMxLDAuMDc3LTAuMDQ5LDAuMTE1Yy0wLjEwNSwwLjIxNS0wLjE5OSwwLjQzNi0wLjI4NCwwLjY2MmMtMC4wMjUsMC4wNjYtMC4wNSwwLjEzMi0wLjA3MywwLjE5OQoJCWMtMC4wODUsMC4yNTEtMC4xNTksMC41MDgtMC4yMTgsMC43N2MtMC4wMDYsMC4wMjctMC4wMTUsMC4wNTQtMC4wMjEsMC4wODFjLTAuMDYxLDAuMjg2LTAuMTA0LDAuNTc3LTAuMTMxLDAuODc0CgkJYy0wLjAwNywwLjA3NC0wLjAwNywwLjE0OS0wLjAxMSwwLjIyM0MwLjAxNCw0MTYuMjE3LDAsNDE2LjM3MSwwLDQxNi41Mjl2MTkuMDI2YzAsOS41MDksNy43MzUsMTcuMjQ0LDE3LjI0NCwxNy4yNDRoNDc3LjUxMgoJCWM5LjUwOSwwLDE3LjI0NC03LjczNSwxNy4yNDQtMTcuMjQ0di0xOS4wMjZDNTEyLDQxNi4zNzEsNTExLjk4Niw0MTYuMjE3LDUxMS45NzYsNDE2LjA2M3ogTTU1LjkyMyw3NC4yMDNoNDAwLjE1NHYyNTQuMTA5CgkJSDU1LjkyM1Y3NC4yMDN6IE01My4wMjksMzQzLjMxMUg0NTguOTdsMzMuMzE4LDY1LjcxN2gtMTY0Ljc4bC04LjI3MS0yOS45ODljLTEuNjg0LTYuMTA1LTcuMjgyLTEwLjM2OS0xMy42MTUtMTAuMzY5aC05OS4yNDYKCQljLTYuMzMzLDAtMTEuOTMyLDQuMjY0LTEzLjYxNSwxMC4zNjhsLTguMjcxLDI5Ljk5SDE5LjcxMUw1My4wMjksMzQzLjMxMXogTTMxMS45NDgsNDA5LjAyOUgyMDAuMDUybDYuOTkzLTI1LjM1OGg5Ny45MQoJCUwzMTEuOTQ4LDQwOS4wMjl6IE00OTcsNDM1LjU1NGMwLDEuMjM3LTEuMDA3LDIuMjQ0LTIuMjQ0LDIuMjQ0SDE3LjI0NGMtMS4yMzcsMC0yLjI0NC0xLjAwNy0yLjI0NC0yLjI0NHYtMTEuNTI2aDQ4MlY0MzUuNTU0eiIKCQkvPgoJPHBhdGggZD0iTTQzMi41NzcsMjEzLjc1NmMtNC4xNDMsMC03LjUsMy4zNTctNy41LDcuNXY3Ni4wNTVIODYuOTIzdi03Ni4wNTVjMC00LjE0My0zLjM1Ny03LjUtNy41LTcuNQoJCQljLTQuMTQzLDAtNy41LDMuMzU3LTcuNSw3LjV2NzkuMjk0YzAsNi40ODUsNS4yNzUsMTEuNzYxLDExLjc2MSwxMS43NjFoMzQ0LjYzM2M2LjQ4NSwwLDExLjc2MS01LjI3NSwxMS43NjEtMTEuNzYxdi03OS4yOTQKCQkJQzQ0MC4wNzcsMjE3LjExNSw0MzYuNzIsMjEzLjc1Niw0MzIuNTc3LDIxMy43NTZ6Ii8+Cgk8cGF0aCBkPSJNNDI4LjMxNiw5MC4yMDNIODMuNjg0Yy02LjQ4NSwwLTExLjc2MSw1LjI3NS0xMS43NjEsMTEuNzYxdjc5LjI5NGMwLDQuMTQzLDMuMzU3LDcuNSw3LjUsNy41YzQuMTQzLDAsNy41LTMuMzU3LDcuNS03LjUKCQkJdi03Ni4wNTVoMzM4LjE1NHY3Ni4wNTVjMCw0LjE0MywzLjM1Nyw3LjUsNy41LDcuNXM3LjUtMy4zNTcsNy41LTcuNXYtNzkuMjk0QzQ0MC4wNzcsOTUuNDc3LDQzNC44MDIsOTAuMjAzLDQyOC4zMTYsOTAuMjAzeiIvPgo8L2c+Cjwvc3ZnPgo=",Cfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE2NC4zOTkgMjA1Ljg3MmM0LjA5OS42NjQgOC4yMDYtMS4yNzMgMTAuMjg0LTQuOTFsNjAtMTA1YzEuNzY5LTMuMDk1IDEuNzU2LTYuODk3LS4wMzMtOS45OHMtNS4wODUtNC45ODEtOC42NDktNC45ODFoLTM2LjY4MmwtMTMuNDg2LTcyLjgyMWMtLjc3Mi00LjE2OS00LjA4OS03LjM5OC04LjI3Ny04LjA1OC00LjE4NS0uNjYtOC4zMzcgMS4zOTQtMTAuMzUzIDUuMTIzbC02MCAxMTFjLTEuNjc1IDMuMDk5LTEuNTk3IDYuODUxLjIwOCA5Ljg3NiAxLjgwNCAzLjAyNSA1LjA2NiA0Ljg3OSA4LjU4OSA0Ljg3OWgzNi44MDJsMTMuMzkzIDY2Ljk2MWMuODE3IDQuMDkgNC4wODggNy4yNDIgOC4yMDQgNy45MTF6bS0xMy4zOTktOTQuODcxaC0yOC4yMjhsMzguNTU0LTcxLjMyMyA5Ljg0MSA1My4xNDRjLjg3OCA0Ljc0IDUuMDEzIDguMTc5IDkuODMzIDguMTc5aDI3Ljc2OWwtMzguMiA2Ni44NS05Ljc2My00OC44MTFjLS45MzUtNC42NzQtNS4wMzktOC4wMzktOS44MDYtOC4wMzl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwIDQ1OS4wMDFjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoMjZjNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBoLTU2di02OGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHY2OGgtNDB2LTIyM2g0MHY2NWMwIDUuNTIzIDQuNDc4IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi03NWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHYyMzNoLTQwdi0xNzNjMC01LjUyMy00LjQ3OC0xMC0xMC0xMGgtNjBjLTUuNTIyIDAtMTAgNC40NzctMTAgMTB2MTczaC00MHYtMTEzYzAtNS41MjMtNC40NzgtMTAtMTAtMTBoLTYwYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwdjExM2gtNzN2LTQ0OWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHYyNmgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDN6bTI1Ni0xNjNoNDB2MTYzaC00MHptLTEyMCA2MGg0MHYxMDNoLTQweiIvPgogICAgICAgIDxwYXRoIGQ9Im00MzYgMTQ2LjAwMWM1LjUyMiAwIDEwLTQuNDc3IDEwLTEwdi02MGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgzNS44NTdsLTEwMCAxMDBoLTU1Ljg1N2MtMi42NTIgMC01LjE5NSAxLjA1NC03LjA3MSAyLjkyOWwtOTAgOTBjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAzLjkwNyAzLjkwNSAxMC4yMzYgMy45MDQgMTQuMTQzIDBsODcuMDcxLTg3LjA3MWg1NS44NTdjMi42NTIgMCA1LjE5NS0xLjA1NCA3LjA3MS0yLjkyOWwxMDIuOTI5LTEwMi45M3YzNS44NTdjMCA1LjUyNCA0LjQ3OCAxMC4wMDEgMTAgMTAuMDAxeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjQzNiIgY3k9IjM0Ni4wMDEiIHI9IjEwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ife="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHJlY3QgeD0iMjE2IiB5PSI4OC40ODkiIHdpZHRoPSI4MCIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjIxNiIgeT0iNjIuNDg5IiB3aWR0aD0iODAiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cGF0aCBkPSJNMzAsNTIuNDk0djkuMjg1Yy0yLjM0Ny0wLjgzMi00Ljg3Mi0xLjI4NS03LjUtMS4yODVjLTEyLjQwNiwwLTIyLjUsMTAuMDkzLTIyLjUsMjIuNWMwLDEyLjQwNywxMC4wOTQsMjIuNSwyMi41LDIyLjUKCQkJYzIuNjI4LDAsNS4xNTMtMC40NTMsNy41LTEuMjg1djM1NS4yOThoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NWMyLjg5OS0xLjc1NSw0LjgxNC0yLjkxNSw5LjMyNS0yLjkxNQoJCQljNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1YzguNjk4LDAsMTMuMzU0LTIuODE5LDE3LjA5NC01LjA4NQoJCQljMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1YzMuNzQsMi4yNjYsOC4zOTUsNS4wODUsMTcuMDkzLDUuMDg1CgkJCXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1YzQuNTEsMCw2LjQyNSwxLjE2LDkuMzIyLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTN2LTQwN0gzMHogTTIyLjUsOTAuNDk0Yy00LjEzNiwwLTcuNS0zLjM2NC03LjUtNy41YzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjUKCQkJczcuNSwzLjM2NCw3LjUsNy41QzMwLDg3LjEzLDI2LjYzNiw5MC40OTQsMjIuNSw5MC40OTR6IE0xODguNSw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTIxNi43OWgtMTV2MjIyLjk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFoNDYuMjVWNDQyLjY2NHoiLz4KICAgICAgICA8cmVjdCB4PSIxNTcuMjUiIHk9IjEzNi45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjE1Ny4yNSIgeT0iMTExLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTU3LjI1IiB5PSI4Ni45OTQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9Ijk3LjI1IiB5PSIxMzAuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iNjYiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iMTA1Ljk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iNDM1Ljc1IiB5PSIxMTMuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI0MzUuNzUiIHk9IjEzOC45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjQzNS43NSIgeT0iODguOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjE1NS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjEwNS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iMTMwLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4OS41LDYwLjQ5NGMtMi42MjgsMC01LjE1MywwLjQ1My03LjUsMS4yODV2LTkuMjg1SDMwOC41djQwNy4wMTNoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NQoJCQljMi44OTktMS43NTUsNC44MTQtMi45MTUsOS4zMjUtMi45MTVjNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1CgkJCWM4LjY5OCwwLDEzLjM1NC0yLjgxOSwxNy4wOTQtNS4wODVjMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk1LDUuMDg1LDE3LjA5Myw1LjA4NXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1CgkJCWM0LjUxLDAsNi40MjUsMS4xNiw5LjMyMiwyLjkxNWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTNWMTA0LjIwOGMyLjM0NywwLjgzMiw0Ljg3MiwxLjI4NSw3LjUsMS4yODUKCQkJYzEyLjQwNiwwLDIyLjUtMTAuMDkzLDIyLjUtMjIuNUM1MTIsNzAuNTg1LDUwMS45MDYsNjAuNDk0LDQ4OS41LDYwLjQ5NHogTTQ2Nyw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTI1MC43OWgtMTV2MjU2Ljk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFINDY3VjQ0Mi42NjR6IE00ODkuNSw5MC40OTRjLTQuMTM2LDAtNy41LTMuMzY0LTcuNS03LjUKCQkJYzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjVzNy41LDMuMzY0LDcuNSw3LjVDNDk3LDg3LjEzLDQ5My42MzYsOTAuNDk0LDQ4OS41LDkwLjQ5NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",pfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDIgMTJjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTItNGMwIDEuMTAzLS44OTcgMi0yIDJzLTItLjg5Ny0yLTJjMC0uMTc4LjAzMS0uMzQ3LjA3NS0uNTExbDEuMjE4IDEuMjE4IDEuNDE0LTEuNDE0LTEuMjE4LTEuMjE4Yy4xNjQtLjA0NC4zMzMtLjA3NS41MTEtLjA3NSAxLjEwMyAwIDIgLjg5NyAyIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTQtMS43OTQtNC00LTR6bTAgNmMtMS4xMDMgMC0yLS44OTctMi0ycy44OTctMiAyLTJjLjE3OCAwIC4zNDcuMDMxLjUxMS4wNzVsLTEuMjE4IDEuMjE4IDEuNDE0IDEuNDE0IDEuMjE4LTEuMjE4Yy4wNDQuMTY0LjA3NS4zMzMuMDc1LjUxMSAwIDEuMTAzLS44OTcgMi0yIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUxIDEyaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTNoLTJjLTEuNjU0IDAtMyAxLjM0Ni0zIDNzMS4zNDYgMyAzIDN6bTAtNGgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxaC0yYy0uNTUxIDAtMS0uNDQ5LTEtMXMuNDQ5LTEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMyA2aC0yYy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTN6bTAgNGgtMmMtLjU1MSAwLTEtLjQ0OS0xLTFzLjQ0OS0xIDEtMWgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im02Mi45OTcgNThjMC0uMTYzLS4wMzctLjMyNi0uMTE3LS40NzRsLTIuODgtNS4zNDl2LTM4LjE3Ny0xMGMwLTEuNjU0LTEuMzQ2LTMtMy0zaC01MGMtMS42NTQgMC0zIDEuMzQ2LTMgM3YxMCAzOC4xNzdsLTIuODggNS4zNDljLS4wOC4xNDgtLjExNy4zMTEtLjExNy40NzRoLS4wMDN2MmMwIDEuNjU0IDEuMzQ2IDMgMyAzaDU2YzEuNjU0IDAgMy0xLjM0NiAzLTN2LTJ6bS02Ljk5Ny0xMy4yNTF2LTI5Ljc0OWgydjMzLjQ2M3ptLTQxLjkzMS0yLjc0OWMuMTg5IDEuNTAyLjc5MiAyLjg3NSAxLjY5NSA0aC0yLjc2NHYtNHptMzYuOTMxIDB2NGgtMi43NjVjLjkwNC0xLjEyNSAxLjUwNy0yLjQ5OCAxLjY5NS00em0tNS42OSA0aC0uMzF2LTIuMzgyYy40MDItLjQ2LjctMS4wMDkuODU4LTEuNjE4aDIuMDUyYy0uMjgyIDEuNjY2LTEuMjQ2IDMuMTAxLTIuNiA0em0tOC4zMS0xLjY5di0yLjMxaDEuMTQyYy40NDcgMS43MjEgMiAzIDMuODU4IDMgLjM0NyAwIC42NzgtLjA1OCAxLS4xNDJ2MS4xNDJoLTQuMzFjLS42Ny0uNDQ1LTEuMjQ1LTEuMDItMS42OS0xLjY5em0zLjI3OC00LjMxYy4zNDctLjU5NS45ODUtMSAxLjcyMi0xczEuMzc1LjQwNSAxLjcyMiAxem0yLjcyMiAydi43MjJjLS4yOTUuMTcyLS42MzQuMjc4LTEgLjI3OC0uNzM3IDAtMS4zNzUtLjQwNS0xLjcyMi0xem0yLjg1OC0yYy0uNDQ3LTEuNzIxLTItMy0zLjg1OC0zcy0zLjQxMSAxLjI3OS0zLjg1OCAzaC0yLjA1MmMuNDc4LTIuODMzIDIuOTQyLTUgNS45MS01czUuNDMxIDIuMTY3IDUuOTEgNXptLTExLjcyNS03LjA4NGMuNTEzLTIuNzkyIDIuOTU5LTQuOTE2IDUuODk3LTQuOTE2IDEuNjEgMCAzLjA2NS42MzEgNC4xNDMgMS42Ni0uOTczLS40MjMtMi4wNDYtLjY2LTMuMTczLS42Ni0yLjkxOCAwLTUuNDY5IDEuNTc2LTYuODY3IDMuOTE2em0uODY3IDQuMDg0YzAtMy4zMDkgMi42OTEtNiA2LTYgMi4zMzUgMCA0LjM1NyAxLjM0MyA1LjM0OCAzLjI5NC0xLjI1My0uODE1LTIuNzQ1LTEuMjk0LTQuMzQ4LTEuMjk0LTMuMDA0IDAtNS42MjQgMS42NjctNi45OTIgNC4xMjItLjAwMS0uMDQxLS4wMDgtLjA4MS0uMDA4LS4xMjJ6bS0uOTMxIDVjLjEyOSAxLjAyNy40NDkgMS45OTYuOTMxIDIuODY0djEuMTM2aC02di0xLjEzNmMuNDgyLS44NjkuODAyLTEuODM3LjkzMS0yLjg2NHptLTEzLjA2OSA0di0xLjE0MmMuMzIyLjA4NC42NTMuMTQyIDEgLjE0MiAxLjg1OCAwIDMuNDExLTEuMjc5IDMuODU4LTNoMS4xNDJ2Mi4zMWMtLjQ0NS42Ny0xLjAyIDEuMjQ1LTEuNjkgMS42OXptMC00aDIuNzIyYy0uMzQ3LjU5NS0uOTg1IDEtMS43MjIgMS0uMzY2IDAtLjcwNS0uMTA2LTEtLjI3OHptLS43MjItMmMuMzQ3LS41OTUuOTg1LTEgMS43MjItMXMxLjM3NS40MDUgMS43MjIgMXptOC43MTQtMi44NzhjLTEuMzY4LTIuNDU1LTMuOTg4LTQuMTIyLTYuOTkyLTQuMTIyLTEuNjAzIDAtMy4wOTUuNDc5LTQuMzQ4IDEuMjk0Ljk5MS0xLjk1MSAzLjAxMy0zLjI5NCA1LjM0OC0zLjI5NCAzLjMwOSAwIDYgMi42OTEgNiA2IDAgLjA0MS0uMDA3LjA4MS0uMDA4LjEyMnptLTUuOTkyLTguMTIyYy0xLjEwNiAwLTIuMTYuMjI2LTMuMTE5LjYzNCAxLjA3Ni0xLjAxNSAyLjUyMi0xLjYzNCA0LjExOS0xLjYzNCAyLjk2MSAwIDUuNDIyIDIuMTU4IDUuOTA3IDQuOTgzLTEuMzg4LTIuMzc4LTMuOTYxLTMuOTgzLTYuOTA3LTMuOTgzem0tMSA2YzIuOTY3IDAgNS40MzEgMi4xNjcgNS45MSA1aC0yLjA1MmMtLjQ0Ny0xLjcyMS0yLTMtMy44NTgtM3MtMy40MTEgMS4yNzktMy44NTggM2gtMi4wNTJjLjQ3OS0yLjgzMyAyLjk0My01IDUuOTEtNXptLTMuODU4IDdjLjE1OC42MDkuNDU2IDEuMTU3Ljg1OCAxLjYxOHYyLjM4MmgtLjMxYy0xLjM1NC0uODk5LTIuMzE5LTIuMzM0LTIuNi00em0tNS4xNDIgNmg1LjEzNmMuMjc4LjE1NC41NjcuMjkuODY0LjQxMXYzLjU4OWgtNnptOCAuOTMxYy4zMjguMDQxLjY2MS4wNjkgMSAuMDY5IDEuNDAxIDAgMi43MTgtLjM2NCAzLjg2NC0xaDEuMTM2djRoLTZ6bTgtLjkzMWg2djRoLTZ6bTggMGgxLjEzNmMxLjE0Ny42MzYgMi40NjMgMSAzLjg2NCAxIC4zMzkgMCAuNjcyLS4wMjggMS0uMDY5djMuMDY5aC02em04IC40MTFjLjI5Ny0uMTIxLjU4Ni0uMjU3Ljg2NC0uNDExaDUuMTM2djRoLTZ6bTcuOTY4LTcuNTcyLjAxOS0uMDAzLTIuNzc0LTE2LjY0M2MtLjIxMi0xLjI3MS0xLjMwMS0yLjE5My0yLjU4OS0yLjE5My0xLjQ0NyAwLTIuNjI0IDEuMTc3LTIuNjI0IDIuNjI0djEuMzc2aDJ2LTEuMzc2YzAtLjM0NC4yOC0uNjI0LjYyNC0uNjI0LjMwNyAwIC41NjUuMjE5LjYxNi41MjFsMi41OCAxNS40NzloLS44ODljLS4xMjktMS4wMy0uNDUxLTItLjkzNC0yLjg3IDAtLjA0NC4wMDMtLjA4Ni4wMDMtLjEzIDAtMS40Mi0uMzc2LTIuNzUxLTEuMDI3LTMuOTA4LS40NTctNC4wNTQtMy44NDEtNy4wOTItNy45NDMtNy4wOTItNC40MTEgMC04IDMuNTg5LTggOCAwIDEuMzczLjM2NCAyLjcxMyAxLjAzMSAzLjkwNC4wODIuNzIxLjI2MSAxLjQyNS41MzIgMi4wOTZoLTMuMTg3Yy4yNjMtLjY1LjQ0Mi0xLjMzLjUyNy0yLjAyOC42OTItMS4yMDggMS4wNjctMi41NzQgMS4wNjctMy45NzIgMC00LjQxMS0zLjU4OS04LTgtOC00LjA4IDAtNy40NDggMy4wMDYtNy45MzQgNy4wMjctLjY3NCAxLjE3Mi0xLjA2NiAyLjUyNi0xLjA2NiAzLjk3MyAwIC4wNDQuMDAzLjA4Ni4wMDQuMTMtLjQ4NC44Ny0uODA1IDEuODQtLjkzNSAyLjg3aC0uODg5bDIuNTgtMTUuNDc5Yy4wNTEtLjMwMi4zMDktLjUyMS42MTYtLjUyMS4zNDQgMCAuNjI0LjI4LjYyNC42MjR2MS4zNzZoMnYtMS4zNzZjMC0xLjQ0Ny0xLjE3Ny0yLjYyNC0yLjYyNC0yLjYyNC0xLjI4OCAwLTIuMzc3LjkyMi0yLjU4OCAyLjE5MmwtMi43NzQgMTYuNjQ0LjAxOS4wMDNjLS4wMS4wNTQtLjAzMy4xMDQtLjAzMy4xNjF2M2gtMXYtMjNoNDR2MjNoLTF2LTNjMC0uMDU3LS4wMjMtLjEwNy0uMDMyLS4xNjF6bTEuMDMyLTI1LjgzOXY0aC00NHYtNHptLTIwLTJoLTR2LTRjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptLTI4LTljMC0uNTUxLjQ0OS0xIDEtMWg1MGMuNTUxIDAgMSAuNDQ5IDEgMXY5aC0yMnYtNGMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY0aC0yMnptMCAxMWgydjI5Ljc0OWwtMiAzLjcxNHptMy41OTcgMzFoMS40MDN2N2MwIC41NTMuNDQ4IDEgMSAxaDQwYy41NTIgMCAxLS40NDcgMS0xdi03aDEuNDAzbDUuOTIzIDExaC01Ni42NTJ6bTUwLjQwMyAxNWgtNTZjLS41NTEgMC0xLS40NDgtMS0xdi0xaDU4djFjMCAuNTUyLS40NDkgMS0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDE2aDR2MmgtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTZoNHYyaC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMSA5aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Afe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMTMuMjA2IDEwNi4yNjVoLTEzLjYyM3YtODYuMjhhMS43NDkgMS43NDkgMCAwIDAgLTEuNTU0LTEuNzM4bC00Ni01LjE5MmExLjc1IDEuNzUgMCAwIDAgLTEuOTQ2IDEuNzM5djMuNDQxaC0xOS45MTZhMS43NSAxLjc1IDAgMCAwIC0xLjc1IDEuNzV2ODYuMjhoLTEzLjYyM2ExLjc1IDEuNzUgMCAxIDAgMCAzLjVoMzUuMjg5djMuNDQxYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzUgMS42MSAxLjYxIDAgMCAwIC4yLS4wMTFsNDUuOS01LjE4aDE1LjI3NmExLjc1IDEuNzUgMCAwIDAgMC0zLjV6bS04MS4yODktODQuNTNoMTguMTY2djQuNWgtMTEuOTE3YTEuNzUgMS43NSAwIDAgMCAtMS43NSAxLjc1djc4LjI4aC00LjV6bTggODQuNTN2LTc2LjUzaDEwLjE2NnY3Ni41M3ptMTMuNjY2LTg5LjUxMyA0Mi41IDQuOHY4NC45bC00Mi41IDQuOHoiLz4KICAgICAgICA8cGF0aCBkPSJtNjEuMTI1IDU4Ljc5MmE1LjIwOCA1LjIwOCAwIDEgMCA1LjIwOCA1LjIwOCA1LjIxNCA1LjIxNCAwIDAgMCAtNS4yMDgtNS4yMDh6bTAgNi45MTZhMS43MDggMS43MDggMCAxIDEgMS43MDgtMS43MDggMS43MSAxLjcxIDAgMCAxIC0xLjcwOCAxLjcwOHoiLz4KICAgIDwvZz4KPC9zdmc+",mfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQwMS4wNjcsMEgxMTAuOTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2NDk0LjkzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDI5MC4xMzMKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1Y4LjUzM0M0MDkuNiwzLjgxNCw0MDUuNzc3LDAsNDAxLjA2NywweiBNMzkyLjUzMyw0OTQuOTMzSDExOS40NjdWMTcuMDY3aDI3My4wNjdWNDk0LjkzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzY2LjkzMywzNC4xMzNIMTQ1LjA2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjQ2MC44YzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjIxLjg2NwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzdi00NjAuOEMzNzUuNDY3LDM3Ljk0OCwzNzEuNjQ0LDM0LjEzMywzNjYuOTMzLDM0LjEzM3ogTTM1OC40LDQ5NC45MzNIMTUzLjZWNTEuMmgyMDQuOFY0OTQuOTMzegoJCQkiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNDcuMDUzLDAtODUuMzMzLDM4LjI4MS04NS4zMzMsODUuMzMzdjguNTMzYzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTUzLjYKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxNTMuNkMzNDEuMzMzLDEwNi41NDcsMzAzLjA1Myw2OC4yNjcsMjU2LDY4LjI2N3ogTTE4Ny43MzMsMTUzLjYKCQkJYzAtMzcuNjQxLDMwLjYyNi02OC4yNjcsNjguMjY3LTY4LjI2N2MzNy42NDEsMCw2OC4yNjcsMzAuNjI2LDY4LjI2Nyw2OC4yNjdIMTg3LjczM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywxODcuNzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjE5Ni4yNjdDMjQ3LjQ2NywxOTEuNTQ4LDI0My42NDQsMTg3LjczMywyMzguOTMzLDE4Ny43MzN6IE0yMzAuNCwzMDcuMmgtNDIuNjY3VjIwNC44SDIzMC40CgkJCVYzMDcuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMTg3LjczM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMTk2LjI2N0MzNDEuMzMzLDE5MS41NDgsMzM3LjUxLDE4Ny43MzMsMzMyLjgsMTg3LjczM3ogTTMyNC4yNjcsMzA3LjJIMjgxLjZWMjA0LjhoNDIuNjY3VjMwNy4yCgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNDEuMzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjM0OS44NjdDMjQ3LjQ2NywzNDUuMTQ4LDI0My42NDQsMzQxLjMzMywyMzguOTMzLDM0MS4zMzN6IE0yMzAuNCw0NjAuOGgtNDIuNjY3VjM1OC40SDIzMC40CgkJCVY0NjAuOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMzQxLjMzM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMzQ5Ljg2N0MzNDEuMzMzLDM0NS4xNDgsMzM3LjUxLDM0MS4zMzMsMzMyLjgsMzQxLjMzM3ogTTMyNC4yNjcsNDYwLjhIMjgxLjZWMzU4LjRoNDIuNjY3VjQ2MC44CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjg1LjMzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODE0LDguNTMzLTguNTMzVjc2LjgKCQkJQzI2NC41MzMsNzIuMDgxLDI2MC43MSw2OC4yNjcsMjU2LDY4LjI2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzIwLjQzNSw5Ny42OThjLTMuMzI4LTMuMzM2LTguNzMtMy4zMzYtMTIuMDY2LDBMMjQ5Ljk2NywxNTYuMWMtMy4zMzcsMy4zMzctMy4zMzcsOC43MywwLDEyLjA2NgoJCQljMS42NjQsMS42NjQsMy44NDksMi41LDYuMDMzLDIuNWMyLjE4NSwwLDQuMzY5LTAuODM2LDYuMDMzLTIuNWw1OC40MDItNTguNDAyQzMyMy43NzIsMTA2LjQyOCwzMjMuNzcyLDEwMS4wMzUsMzIwLjQzNSw5Ny42OTh6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTI2Mi4wMzMsMTU2LjFMMjAzLjYzMSw5Ny42OWMtMy4zMjgtMy4zMzctOC43My0zLjMzNy0xMi4wNjYsMGMtMy4zMzcsMy4zMzYtMy4zMzcsOC43MywwLDEyLjA2Nmw1OC40MDIsNTguNDExCgkJCWMxLjY2NCwxLjY2NCwzLjg0OSwyLjUsNi4wMzMsMi41YzIuMTg1LDAsNC4zNjktMC44MzYsNi4wMzMtMi41QzI2NS4zNywxNjQuODMsMjY1LjM3LDE1OS40MzcsMjYyLjAzMywxNTYuMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNTkuNzMzLDQ5NC45MzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM0MwLDUwOC4xODYsMy44MjMsNTEyLDguNTMzLDUxMmg1MS4yCgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNjguMjY3LDQ5OC43NDgsNjQuNDQ0LDQ5NC45MzMsNTkuNzMzLDQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsNDk0LjkzM2gtMTAyLjRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDEwMi40CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNTEyLDQ5OC43NDgsNTA4LjE3Nyw0OTQuOTMzLDUwMy40NjcsNDk0LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Ofe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjBhOTYgOTYgMCAxIDAgOTYgOTYgOTYuMTA4IDk2LjEwOCAwIDAgMCAtOTYtOTZ6bTAgMTc2YTgwIDgwIDAgMSAxIDgwLTgwIDgwLjA5MSA4MC4wOTEgMCAwIDEgLTgwIDgweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYgMTI4YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjguMTQ1IDEyOC4xNDUgMCAwIDAgLTEyOC0xMjh6bTAgMjQwYTExMiAxMTIgMCAxIDEgMTEyLTExMiAxMTIuMTI3IDExMi4xMjcgMCAwIDEgLTExMiAxMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMiA0ODh2LTQ2NGE4IDggMCAwIDAgLTgtOGgtMzM2YTggOCAwIDAgMCAtOCA4djQ2NGE4IDggMCAwIDAgOCA4aDMzNmE4IDggMCAwIDAgOC04em0tMzM2LTM3NmgzMjB2MzA0aC0zMjB6bTk2LTgwaDE0NHY0MGE4IDggMCAwIDAgOCA4aDcydjE2aC0yMjR6bTIyNCAzMmgtNjR2LTMyaDY0em0tMjQwLTMydjY0aC04MHYtNjR6bS04MCA0NDh2LTQ4aDMyMHY0OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDQwYTI0IDI0IDAgMSAwIDI0IDI0IDI0LjAyNyAyNC4wMjcgMCAwIDAgLTI0LTI0em0wIDMyYTggOCAwIDEgMSA4LTggOC4wMDkgOC4wMDkgMCAwIDEgLTggOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTEyIDU2aDQ4djE2aC00OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDQwaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDcyaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjcyIDIwMGE4IDggMCAwIDAgLTE2IDBjMCA2LjM3My0yLjQxNyA5LjE5MS02LjA3NCAxMy40NTgtNC40MjYgNS4xNTktOS45MjYgMTEuNTgtOS45MjYgMjMuODcyczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTMtNi4wNzQgMTMuNDYxYy00LjQyNiA1LjE1OS05LjkyNiAxMS41ODEtOS45MjYgMjMuODc0YTggOCAwIDAgMCAxNiAwYzAtNi4zNzUgMi40MTctOS4xOTQgNi4wNzQtMTMuNDYyIDQuNDIzLTUuMTU5IDkuOTI2LTExLjU4IDkuOTI2LTIzLjg3M3MtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXMyLjQxNy05LjE5MSA2LjA3NC0xMy40NThjNC40MjYtNS4xNTkgOS45MjYtMTEuNTggOS45MjYtMjMuODcyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTYgMjM3LjMzYzAtNi4zNzMgMi40MTctOS4xOTIgNi4wNzUtMTMuNDYuODEyLS45NDcgMS42MjMtMS45IDIuNDA3LTIuODc4YTggOCAwIDAgMCAtMTIuNS05Ljk4NGMtLjY2OC44MzYtMS4zNjEgMS42NDEtMi4wNTMgMi40NDktNC40MjkgNS4xNTktOS45MjkgMTEuNTgxLTkuOTI5IDIzLjg3M3M1LjUgMTguNzE0IDkuOTI2IDIzLjg3M2MzLjY1NyA0LjI2OCA2LjA3NCA3LjA4NyA2LjA3NCAxMy40NjJzLTIuNDE3IDkuMTk0LTYuMDc1IDEzLjQ2MmMtLjgxMy45NDktMS42MjUgMS45LTIuNDA5IDIuODgxYTggOCAwIDAgMCAxMi41IDkuOTg0Yy42NjgtLjgzNyAxLjM2Mi0xLjY0NCAyLjA1NC0yLjQ1MiA0LjQzLTUuMTYgOS45My0xMS41ODIgOS45My0yMy44NzVzLTUuNS0xOC43MTUtOS45MjYtMjMuODc0Yy0zLjY1Ny00LjI2OC02LjA3NC03LjA5MS02LjA3NC0xMy40NjF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxNiAyMzcuMzNjMC02LjM3MyAyLjQxNy05LjE5MiA2LjA3NS0xMy40Ni44MTItLjk0NyAxLjYyMy0xLjkgMi40MDctMi44NzhhOCA4IDAgMCAwIC0xMi41LTkuOTg0Yy0uNjY4LjgzNi0xLjM2MSAxLjY0MS0yLjA1MyAyLjQ0OS00LjQyOSA1LjE1OS05LjkyOSAxMS41ODEtOS45MjkgMjMuODczczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTQtNi4wNzUgMTMuNDYyYy0uODEzLjk0OS0xLjYyNSAxLjktMi40MDkgMi44ODFhOCA4IDAgMCAwIDEyLjUgOS45ODRjLjY2OC0uODM3IDEuMzYyLTEuNjQ0IDIuMDU0LTIuNDUyIDQuNDMtNS4xNiA5LjkzLTExLjU4MiA5LjkzLTIzLjg3NXMtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXoiLz4KICAgIDwvZz4KPC9zdmc+",Efe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3Ni4wNjUgNDc2LjA2NSI+CjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+Cgk8cGF0aCBkPSJNNDMyLjU1OCwxNzIuMDJDNDE5LjMwMyw2NC41ODcsMzIxLjQ2Ni0xMS43NiwyMTQuMDMzLDEuNDk1UzMwLjI1MywxMTIuNTg3LDQzLjUwOCwyMjAuMDIKCQljMTEuMDA4LDg5LjIyMiw4MS4zMDMsMTU5LjUxNywxNzAuNTI1LDE3MC41MjV2MzcuNTJoLTU2Yy0xMy4yNTUsMC0yNCwxMC43NDUtMjQsMjR2MjRoMjA4di0yNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTU2CgkJdi0zNy41MkMzNjkuNDY2LDM3Ny4yOSw0NDUuODEzLDI3OS40NTMsNDMyLjU1OCwxNzIuMDJ6IE0zMTguMDMzLDQ0NC4wNjVjNC40MTgsMCw4LDMuNTgyLDgsOHY4aC0xNzZ2LThjMC00LjQxOCwzLjU4Mi04LDgtOAoJCUgzMTguMDMzeiBNMjMwLjAzMyw0MjguMDY1di0zMmgxNnYzMkgyMzAuMDMzeiBNMjM4LjAzMywzNzYuMDY1Yy05OS40MTEsMC0xODAtODAuNTg5LTE4MC0xODAKCQljMC4xMTUtOTkuMzY0LDgwLjYzNi0xNzkuODg1LDE4MC0xODBjOTkuNDExLDAsMTgwLDgwLjU4OSwxODAsMTgwUzMzNy40NDQsMzc2LjA2NSwyMzguMDMzLDM3Ni4wNjV6Ii8+Cgk8cGF0aCBkPSJNNDA2LjAzMywyMTIuMDY1di0xNmMwLTQuNDE4LTMuNTgyLTgtOC04aC05My41MzZjMzkuOC0yNy44MzIsNDkuNTAyLTgyLjY1OCwyMS42Ny0xMjIuNDU4CgkJYy0xNi40NjctMjMuNTQ4LTQzLjQtMzcuNTY1LTcyLjEzNC0zNy41NDJoLTE2Yy00LjQxOCwwLTgsMy41ODItOCw4djkzLjUzNmMtMjcuODMyLTM5LjgtODIuNjU4LTQ5LjUwMi0xMjIuNDU4LTIxLjY3CgkJYy0yMy41NDgsMTYuNDY3LTM3LjU2NSw0My40LTM3LjU0Miw3Mi4xMzR2MTZjMCw0LjQxOCwzLjU4Miw4LDgsOGg5My41MzZjLTIzLjQ2NSwxNi40NzgtMzcuNDYzLDQzLjMyOC0zNy41MzYsNzIKCQljMC4wNTcsNDguNTc3LDM5LjQyMyw4Ny45NDMsODgsODhoMTZjNC40MTgsMCw4LTMuNTgyLDgtOHYtOTMuNTM2YzI3LjgzMiwzOS44LDgyLjY1OCw0OS41MDIsMTIyLjQ1OCwyMS42NwoJCUMzOTIuMDM4LDI2Ny43MzMsNDA2LjA1NiwyNDAuOCw0MDYuMDMzLDIxMi4wNjV6IE0yNDYuMDMzLDQ0LjA2NWg4YzM5Ljc2NCwwLjA1NSw3MS45NTUsMzIuMzM2LDcxLjksNzIuMQoJCWMtMC4wNDMsMzEuMTctMjAuMTM4LDU4Ljc3Mi00OS43ODgsNjguMzg4Yy00LjIwMi0xNC4wNTItMTUuNzU4LTI0LjY3Ny0zMC4xMTItMjcuNjg4VjQ0LjA2NXogTTg2LjAzMywxODguMDY1di04CgkJYzAuMDczLTM5Ljc2NCwzMi4zNjgtNzEuOTQsNzIuMTMzLTcxLjg2N2MzMS4xNDgsMC4wNTcsNTguNzI3LDIwLjEzOCw2OC4zNDcsNDkuNzYzYy0xNC4wNDcsNC4yMDMtMjQuNjY4LDE1Ljc1NS0yNy42OCwzMC4xMDQKCQlIODYuMDMzeiBNMjMwLjAzMywzNDguMDY1aC04Yy0zOS43NjQtMC4wNTUtNzEuOTU1LTMyLjMzNi03MS45LTcyLjFjMC4wNDMtMzEuMTcsMjAuMTM4LTU4Ljc3Miw0OS43ODgtNjguMzg4CgkJYzQuMjAyLDE0LjA1MiwxNS43NTgsMjQuNjc3LDMwLjExMiwyNy42ODhWMzQ4LjA2NXogTTIzOC4wMzMsMjIwLjA2NWMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNAoJCXMyNCwxMC43NDUsMjQsMjRTMjUxLjI4NywyMjAuMDY1LDIzOC4wMzMsMjIwLjA2NXogTTMxNy45LDI4My45MzJjLTMxLjE0OC0wLjA1Ny01OC43MjctMjAuMTM4LTY4LjM0Ny00OS43NjMKCQljMTQuMDQ3LTQuMjAzLDI0LjY2OC0xNS43NTUsMjcuNjgtMzAuMTA0aDExMi44djhDMzg5Ljk1OSwyNTEuODMsMzU3LjY2NCwyODQuMDA2LDMxNy45LDI4My45MzJ6Ii8+CjwvZz4KPC9zdmc+Cg==",ffe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk5LDEyNi4wMDFoLTAuMDI3YzYuMjkyLTguMzYyLDEwLjAyNy0xOC43NTIsMTAuMDI3LTMwYzAtMjcuNTctMjIuNDMtNTAuMDAxLTUwLTUwLjAwMQoJCXMtNTAuMDAxLDIyLjQzLTUwLjAwMSw1MC4wMDFjMCwxMS4yNDgsMy43MzYsMjEuNjM4LDEwLjAyNywzMGgtMC4wMjdjLTUuNTIyLDAtMTAsNC40NzctMTAsMTB2MzUuNTQ1CgkJYy0xMS4zMjgtNy4yMzMtMjMuMTI4LTEzLjY1OC0zNS4zMzQtMTkuMjQxdi0xNi4zMDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAsNC40NzctMTAsMTB2OC4wMzcKCQljLTMuMzY5LTEuMjQ3LTYuNzY0LTIuNDM4LTEwLjE4Ni0zLjU2MmMtOC4yOTEtMi43MjMtMTYuNjgzLTUuMDUyLTI1LjE0Ni03LjAxMXYtMjAuODMzYzAtNS41MjMtNC40NzgtMTAtMTAtMTAKCQljLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTYuOTMyYy0xMS42OC0xLjg0OS0yMy40NzQtMi45NzQtMzUuMzMyLTMuMzgxVjk2LjAwMWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJdjMwLjE4M2MtMTEuODU5LDAuNDA3LTIzLjY1MywxLjUzMi0zNS4zMzMsMy4zODF2LTE2LjkzMmMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjIwLjgzMwoJCWMtOC40NjIsMS45NTktMTYuODUyLDQuMjg3LTI1LjE0Miw3LjAwOWMtMy40MjQsMS4xMjQtNi44MTksMi4zMTYtMTAuMTkxLDMuNTYzdi04LjAzN2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwCgkJYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjE2LjMwNGMtMTIuMjA1LDUuNTgzLTI0LjAwNCwxMi4wMDctMzUuMzM0LDE5LjI0di0zNS41NDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMC4wMjcKCQljNi4yOTMtOC4zNjIsMTAuMDI3LTE4Ljc1MiwxMC4wMjctMzBjMC0yNy41Ny0yMi40My01MC01MC01MHMtNTAsMjIuNDMtNTAsNTBjMCwxMS4yNDgsMy43MzQsMjEuNjM4LDEwLjAyNywzMEgxMAoJCWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYzMTkuOTk5YzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDBoNDBoMzEuMDMzYzUuNTIyLDAsMTAtNC40NzcsMTAtMTBjMC01LjUyMi00LjQ3OC0xMC0xMC0xMEgxMDAKCQl2LTIwLjAwMWgzMTEuOTk4djIwLjAwMWgtMjEuMDMzYy01LjUyMywwLTEwLDQuNDc4LTEwLDEwYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoMzEuMDMzaDQwLjAwMWg0MGM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwCgkJVjEzNi4wMDFDNTExLjk5OSwxMzAuNDc3LDUwNy41MjEsMTI2LjAwMSw1MDEuOTk5LDEyNi4wMDF6IE04MCw0NDUuOTk5SDUwSDIwVjE0Ni4wMDFoMjB2NDEuODk4YzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQlzMTAtNC40NzcsMTAtMTB2LTQxLjg5OGgyMFY0NDUuOTk5eiBNNTAsMTI2LjAwMWMtMTYuNTQzLDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1Ny0zMCwzMC0zMGMxNi41NDMsMCwzMCwxMy40NTgsMzAsMzAKCQlTNjYuNTQzLDEyNi4wMDEsNTAsMTI2LjAwMXogTTEzNS4zMzQsNDA1Ljk5OEgxMDBWMTk1LjYyOWMxMS4zMTgtOC4wMiwyMy4xMjYtMTUuMDk1LDM1LjMzNC0yMS4yMThWNDA1Ljk5OHogTTE5MC42NjcsNDA2CgkJaC0zNS4zMzNWMTY1LjM4NGMxMS41LTQuNjMsMjMuMjk4LTguNDQ5LDM1LjMzMy0xMS40MzdWNDA2eiBNMjQ2LDQwNmgtMzUuMzMzVjE0OS43ODdjMTEuNjE0LTEuOTU4LDIzLjQwOS0zLjE2OCwzNS4zMzMtMy41OTkKCQlWNDA2eiBNMzAxLjMzMiw0MDUuOTk4SDI2NnYtMjU5LjgxYzExLjkyNCwwLjQzMSwyMy43MTcsMS42NDEsMzUuMzMyLDMuNTk5VjQwNS45OTh6IE0zNTYuNjY0LDQwNS45OTloLTM1LjMzMlYxNTMuOTQ4CgkJYzEyLjAzNSwyLjk4OCwyMy44MzIsNi44MDcsMzUuMzMyLDExLjQzOFY0MDUuOTk5eiBNNDExLjk5OCw0MDUuOTk4aC0zNS4zMzRWMTc0LjQxMmMxMi4yMDksNi4xMjMsMjQuMDE3LDEzLjIsMzUuMzM0LDIxLjIyCgkJVjQwNS45OTh6IE00OTEuOTk5LDQ0NS45OTloLTMwaC0zMC4wMDFWMTQ2LjAwMWgyMC4wMDF2NDEuODk4YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtNDEuODk4aDIwCgkJVjQ0NS45OTl6IE00NjEuOTk5LDEyNi4wMDFjLTE2LjU0MiwwLTMwLjAwMS0xMy40NTgtMzAuMDAxLTMwYzAtMTYuNTQzLDEzLjQ1OS0zMC4wMDEsMzAuMDAxLTMwLjAwMQoJCWMxNi41NDIsMCwzMCwxMy40NTgsMzAsMzAuMDAxQzQ5MS45OTksMTEyLjU0Miw0NzguNTQxLDEyNi4wMDEsNDYxLjk5OSwxMjYuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTAsNDQ1Ljk5OWgtMC4yMzZjLTUuNTIzLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMEgxNTBjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCUMxNjAsNDUwLjQ3NywxNTUuNTIzLDQ0NS45OTksMTUwLDQ0NS45OTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Mi4yMzQsNDQ1Ljk5OWgtMC4yMzdjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3OCwxMCwxMCwxMGgwLjIzN2M1LjUyMywwLDEwLTQuNDc3LDEwLTEwCgkJQzM3Mi4yMzQsNDUwLjQ3NywzNjcuNzU4LDQ0NS45OTksMzYyLjIzNCw0NDUuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MCwyMDYuNjMxYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzcsMTAsMTAsMTBzMTAtNC40NzcsMTAtMTB2LTAuMjM1CgkJQzYwLDIxMS4xMDgsNTUuNTIzLDIwNi42MzEsNTAsMjA2LjYzMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjk5OSwyMDYuNjMxYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtMC4yMzUKCQlDNDcxLjk5OSwyMTEuMTA4LDQ2Ny41MjEsMjA2LjYzMSw0NjEuOTk5LDIwNi42MzF6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",xfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuMDA1LDEwOC4wMDNjLTEzLjI1NSwwLTI0LDEwLjc0NS0yNCwyNGMwLDQuNDE4LDMuNTgyLDgsOCw4czgtMy41ODIsOC04czMuNTgyLTgsOC04czgtMy41ODIsOC04CgkJCVMxMDguNDIzLDEwOC4wMDMsMTA0LjAwNSwxMDguMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zODUuMzU3LDc2LjExNWwtMjgwLTQ4Yy0wLjQ0Ny0wLjA3My0wLjg5OS0wLjExMS0xLjM1Mi0wLjExMkM0Ni42MTIsMjcuOTU2LDAuMDQ3LDc0LjQ0NCwwLDEzMS44MzcKCQkJYy0wLjAyNiwzMS4wNTksMTMuODQzLDYwLjUwMSwzNy44MDUsODAuMjYxbDU4LjQ0LDIzMy44NDhjMC44OTIsMy41NTksNC4wOTEsNi4wNTYsNy43Niw2LjA1Nmg2NAoJCQljNC40MTgsMC4wMDgsOC4wMDctMy41NjYsOC4wMTUtNy45ODVjMC0wLjE3MS0wLjAwNS0wLjM0MS0wLjAxNS0wLjUxMWwtMTMuNi0yMTcuNGwyMjIuOTItMzguMjE2CgkJCWMzLjg1NC0wLjY0NSw2LjY3OS0zLjk4LDYuNjgtNy44ODh2LTk2QzM5Mi4wMDcsODAuMTA1LDM4OS4xOTksNzYuNzczLDM4NS4zNTcsNzYuMTE1eiBNMTEwLjI1Myw0MzYuMDAzTDU3LjYwNSwyMjUuMTcxCgkJCWMwLjUwNCwwLjI0OCwxLjA0LDAuNDE2LDEuNTQ0LDAuNjY0YzIuNTc2LDEuMjMyLDUuMTg5LDIuMzUyLDcuODQsMy4zNmMwLjc0NCwwLjI4LDEuNDY0LDAuNiwyLjIwOCwwLjg2NAoJCQljMy4zMTksMS4xNzQsNi42OTcsMi4xNzUsMTAuMTIsM2MwLjgsMC4xOTIsMS42LDAuMzI4LDIuNCwwLjUwNGMyLjc2OCwwLjU5Miw1LjU2NSwxLjA3Nyw4LjM5MiwxLjQ1NgoJCQljMS4wMDgsMC4xMjgsMi4wMTYsMC4yNjQsMy4wMjQsMC4zNjhjMy42MTEsMC4zOSw3LjI0LDAuNTk2LDEwLjg3MiwwLjYxNmMwLjQ1My0wLjAwMSwwLjkwNS0wLjAzOSwxLjM1Mi0wLjExMmw0MS4yMTYtNy4wODgKCQkJbDEyLjkyLDIwNy4ySDExMC4yNTN6IE0zNDQuMDA1LDE3OC43MzlsLTIzOC4wODgsNDAuOGwtMi41NzYsMC40NjRjLTQ4LjM2Ny0wLjMwNC04Ny4zOTktMzkuNjMyLTg3LjMzNi04OAoJCQljMC4wNTUtNDguMzIsMzkuMDE4LTg3LjU3OSw4Ny4zMzYtODhsMjQwLjY2NCw0MS4yNjRWMTc4LjczOXogTTM3Ni4wMDUsMTczLjI1OWwtMTYsMi43NDR2LTg4bDE2LDIuNzQ0VjE3My4yNTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNC4wMDUsNzYuMDAzYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMxNjAuMDA1LDEwMS4wNzUsMTM0LjkzMyw3Ni4wMDMsMTA0LjAwNSw3Ni4wMDN6IE0xMDQuMDA1LDE3Mi4wMDNjLTIyLjA5MSwwLTQwLTE3LjkwOS00MC00MGMwLjAyNi0yMi4wOCwxNy45Mi0zOS45NzQsNDAtNDAKCQkJYzIyLjA5MSwwLDQwLDE3LjkwOSw0MCw0MFMxMjYuMDk3LDE3Mi4wMDMsMTA0LjAwNSwxNzIuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDEuOTMzLDQxMS41MjNsLTkuNjY0LTE1NS4wMjRjLTAuMjc2LTQuNDE4LTQuMDgyLTcuNzc2LTguNS03LjVjLTQuNDE4LDAuMjc2LTcuNzc2LDQuMDgyLTcuNSw4LjVsOS42NjQsMTU1CgkJCWMwLjI2Myw0LjIyNywzLjc3Myw3LjUxNiw4LjAwOCw3LjUwNGMwLjE2OCwwLDAuMzM2LDAsMC41MDQsMEMxMzguODU0LDQxOS43MjgsMTQyLjIwNyw0MTUuOTMyLDE0MS45MzMsNDExLjUyM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDcyLjAwNSwxMjQuMDAzaC00OGMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGg0OGM0LjQxOCwwLDgtMy41ODIsOC04UzQ3Ni40MjMsMTI0LjAwMyw0NzIuMDA1LDEyNC4wMDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ3Mi4wMDUsMTU2LjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDE1Ni4wMDMsNDcyLjAwNSwxNTYuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzIuMDA1LDkyLjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDkyLjAwMyw0NzIuMDA1LDkyLjAwM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",_fe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OC40NTcsNzcuMjI3YTguMDYzLDguMDYzLDAsMCwwLTEwLjQsMTIuMzI1djYuOTI3YTUuMjczLDUuMjczLDAsMCwwLDEwLjU0NSwwVjg5LjU1M2E4LjA2Myw4LjA2MywwLDAsMC0uMTQ2LTEyLjMyNlpNNDUuODc0LDg3LjI0YTEuNzUsMS43NSwwLDAsMC0uNzcxLDEuNDUxdjcuNzg3YTEuNzczLDEuNzczLDAsMCwxLTMuNTQ1LDBWODguNjkxYTEuNzQ3LDEuNzQ3LDAsMCwwLS43NzMtMS40NTFBNC41NjYsNC41NjYsMCwwLDEsNDIuNCw3OC45NzhhNC44NzYsNC44NzYsMCwwLDEsLjk0LS4wOTIsNC41LDQuNSwwLDAsMSwyLjg5MywxLjA0MSw0LjU2Miw0LjU2MiwwLDAsMS0uMzU2LDcuMzEzWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDUuMjI4LDQ0LjY2Myw2NS41OCw0My4zNlYxOS41MTRhNS4zNyw1LjM3LDAsMCwwLTUuMzYzLTUuMzY0SDI2LjQ0M2E1LjM3LDUuMzcsMCwwLDAtNS4zNjMsNS4zNjR2ODguOTcyYTUuMzcsNS4zNywwLDAsMCw1LjM2Myw1LjM2NEg2MC4yMTdhNS4zNyw1LjM3LDAsMCwwLDUuMzYzLTUuMzY0VjU5LjhsMzkuNjQ4LTEuM2ExLjc1LDEuNzUsMCwwLDAsMS42OTItMS43NDlWNDYuNDEyQTEuNzUsMS43NSwwLDAsMCwxMDUuMjI4LDQ0LjY2M1pNNjIuMDgsMTA4LjQ4NmExLjg2NiwxLjg2NiwwLDAsMS0xLjg2MywxLjg2NEgyNi40NDNhMS44NjYsMS44NjYsMCwwLDEtMS44NjMtMS44NjRWMTkuNTE0YTEuODY2LDEuODY2LDAsMCwxLDEuODYzLTEuODY0SDYwLjIxN2ExLjg2NiwxLjg2NiwwLDAsMSwxLjg2MywxLjg2NFY0My4yNDVsLTYuMjY3LS4yMDZhMTUuMTI3LDE1LjEyNywwLDEsMCwwLDE3LjA4Nmw2LjI2NC0uMjA2Wk00NC4zOSw2MC41aDBMNTEsNjAuMjg0YTExLjYxMiwxMS42MTIsMCwxLDEsLjA0LTE3LjRsLTYuNjQ5LS4yMTloLS4wNThBOC45Miw4LjkyLDAsMSwwLDQ0LjM5LDYwLjVabTU5LjAzLTUuNDQyLTM5LjU4NywxLjNoLS4wMDhMNDQuMzM0LDU3YTUuNDIsNS40MiwwLDAsMS0uMDI3LTEwLjg0bDU5LjExMywxLjk0M1oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Sfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuMzQsMTE3LjMzNmMtNS45MDYsMC0xMC42ODgsNC43NzMtMTAuNjg4LDEwLjY2NHY4NS4zMzVINDY5LjM0di0yMS4zMzZjMC0yMy41MjMtMTkuMTU2LTQyLjY2My00Mi42ODgtNDIuNjYzCgkJYy0xMi43MTgsMC0yNC4xNTUsNS42MDktMzEuOTk5LDE0LjQ5MWMtNy44MTItOC44ODItMTkuMjUtMTQuNDkxLTMyLTE0LjQ5MWMtMTIuNzE4LDAtMjQuMTU1LDUuNjA5LTMxLjk5OSwxNC40OTEKCQljLTcuODEyLTguODgyLTE5LjI1LTE0LjQ5MS0zMi0xNC40OTFjLTEyLjcxOSwwLTI0LjE1Niw1LjYwOS0zMS45OTIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxCgkJYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxCgkJYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xOS44MzUsMC0zNi41NywxMy42MTYtNDEuMzIsMzEuOTk5SDMyYy01Ljg5MSwwLTEwLjY2NCw0Ljc3My0xMC42NjQsMTAuNjY0djIxLjMzNkgxMC42NjQKCQlDNC43NzMsMjEzLjMzNSwwLDIxOC4xMDgsMCwyMjMuOTk5czQuNzczLDEwLjY2NCwxMC42NjQsMTAuNjY0aDEwLjY3MnYyMS4zMzZjMCw1Ljg5MSw0Ljc3MywxMC42NjQsMTAuNjY0LDEwLjY2NGgzMnYyMDIuNjc4CgkJYzAsMjMuNTE2LDE5LjE0MSw0Mi42NTYsNDIuNjY0LDQyLjY1NmMxMi43NDIsMCwyNC4xOC01LjYyNSwzMi0xNC41YzcuODI4LDguODc1LDE5LjI3MywxNC41LDMyLDE0LjUKCQljMTIuNzQyLDAsMjQuMTgtNS42MjUsMzItMTQuNWM3LjgyOCw4Ljg3NSwxOS4yNzMsMTQuNSwzMiwxNC41YzEyLjc0MiwwLDI0LjE4LTUuNjI1LDMyLTE0LjUKCQljNy44MzYsOC44NzUsMTkuMjczLDE0LjUsMzEuOTkyLDE0LjVjMTIuNzUsMCwyNC4xODgtNS42MjUsMzItMTQuNWM3Ljg0NCw4Ljg3NSwxOS4yODEsMTQuNSwzMS45OTksMTQuNQoJCWMxMi43NSwwLDI0LjE4OC01LjYyNSwzMi0xNC41YzcuODQ0LDguODc1LDE5LjI4MSwxNC41LDMxLjk5OSwxNC41YzIzLjUzMSwwLDQyLjY4OC0xOS4xNDEsNDIuNjg4LTQyLjY1NlYyMzQuNjYzaDMyCgkJYzUuODc1LDAsMTAuNjU2LTQuNzczLDEwLjY1Ni0xMC42NjRWMTI4QzUxMS45OTYsMTIyLjEwOSw1MDcuMjE1LDExNy4zMzYsNTAxLjM0LDExNy4zMzZ6IE02NCwyNDUuMzM1SDQyLjY2NHYtNDIuNjcySDY0VjI0NS4zMzUKCQl6IE0xMjcuOTk5LDQ2OS4zNDFjMCwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMjU1Ljk5OXYtNjQKCQljMC0xMS43NTgsOS41Ny0yMS4zMzYsMjEuMzI4LTIxLjMzNmMxMS43NzMsMCwyMS4zMzYsOS41NzgsMjEuMzM2LDIxLjMzNlY0NjkuMzQxeiBNMTkxLjk5OSw0NjkuMzQxCgkJYy0wLjAwMSwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2CgkJYzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6IE0yNTUuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzM2LDIxLjMxMgoJCWMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2YzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6CgkJIE0zMTkuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzUsMC0yMS4zMTItOS41NjItMjEuMzEyLTIxLjMxMlYxOTEuOTk5CgkJYzAtMTEuNzU4LDkuNTYyLTIxLjMzNiwyMS4zMTItMjEuMzM2YzExLjc4MSwwLDIxLjM0NCw5LjU3OCwyMS4zNDQsMjEuMzM2VjQ2OS4zNDF6IE0zODMuOTk3LDQ2OS4zNDEKCQljMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzQ5LDAtMjEuMzEyLTkuNTYyLTIxLjMxMi0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU2Mi0yMS4zMzYsMjEuMzEyLTIxLjMzNgoJCWMxMS43ODEsMCwyMS4zNDQsOS41NzgsMjEuMzQ0LDIxLjMzNlY0NjkuMzQxeiBNNDQ3Ljk5Niw0NjkuMzQxYzAsMTEuNzUtOS41NjIsMjEuMzEyLTIxLjM0NCwyMS4zMTIKCQljLTExLjc0OSwwLTIxLjMxMi05LjU2Mi0yMS4zMTItMjEuMzEyVjE5MS45OTljMC0xMS43NTgsOS41NjItMjEuMzM2LDIxLjMxMi0yMS4zMzZjMTEuNzgxLDAsMjEuMzQ0LDkuNTc4LDIxLjM0NCwyMS4zMzZWNDY5LjM0MQoJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU2Ljg3MSwxMDMuNjcyYy0xLjMxMi00LjUzOS0wLjUtNy44NDQsMi42ODgtMTEuMDU1YzguNjU2LTguNjk1LDExLjUzMS0xOS45ODQsOC4wNjItMzEuODEyCgkJCWMtMi4zMTItNy45MzgtNi44MTItMTMuNTQ3LTcuMzc1LTE0LjI1Yy0wLjAzMSwwLTAuMDMxLTAuMDA4LTAuMDMxLTAuMDA4di0wLjAxNWMtMS45NjktMi4zNTktNC45MDYtMy44NjctOC4yMTktMy44NjcKCQkJYy01Ljg5LDAtMTAuNjU1LDQuNzgxLTEwLjY1NSwxMC42NzJjMCwyLjU4NiwwLjkwNiw0Ljk2MSwyLjQzOCw2LjgwNWMwLjAzMSwwLjAyMywyLjI4MSwyLjkzOCwzLjM3NSw2LjY1NgoJCQljMS4yNjYsNC4zNjcsMC40NjksNy41ODYtMi43MTksMTAuNzY2Yy04LjYyNSw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc4LDMxLjk5OGMyLjMyOCw4LjEwMiw2LjgyOCwxMy44MzYsNy4zMjgsMTQuNDY5di0wLjAwOAoJCQljMS45NjksMi40MjIsNC45NTMsMy45NzcsOC4zMTIsMy45NzdjNS44OTEsMCwxMC42NTYtNC43NzMsMTAuNjU2LTEwLjY2NGMwLTIuNTM5LTAuODc1LTQuODY3LTIuMzQ0LTYuNjk1CgkJCUMzNjAuMjc4LDExMC42MSwzNTcuOTY1LDEwNy41NTUsMzU2Ljg3MSwxMDMuNjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNjguNjU2LDk2LjYxYy0yLjQ2MS05LjgzNi0wLjQ5Mi0xOC4xOTUsNi0yNS41NDdjMTEuNDA2LTEyLjg5MSwxNS4wMzEtMjguNjk1LDEwLjUtNDUuNzI2CgkJCWMtMy4xODgtMTEuOTM4LTkuMzEyLTIwLjIyNy0xMC0yMS4xMzNWNC4yMmMtMS45NjktMi41NTUtNS4wMjMtNC4yMTktOC40OTItNC4yMTljLTUuODkzLDAtMTAuNjY2LDQuNzczLTEwLjY2NiwxMC42NjQKCQkJYzAsMi40MTQsMC44MDUsNC42MzMsMi4xNTYsNi40MTRoLTAuMDE2YzAuMDQ3LDAuMDYyLDQuNDkyLDYuMTA5LDYuNTQ3LDE0LjMyYzIuNDUzLDkuODI3LDAuNDg0LDE4LjE4Ny02LjAxNiwyNS41MzgKCQkJYy0xMS4zOSwxMi44OTEtMTUuMDE1LDI4LjY5Ni0xMC40ODMsNDUuNzI3YzMuMTcyLDExLjkzOCw5LjMwNSwyMC4yMjcsOS45ODQsMjEuMTMzbDAuMDE2LTAuMDE2CgkJCWMxLjk0NSwyLjU3LDUuMDE2LDQuMjE5LDguNDc3LDQuMjE5YzUuODk4LDAsMTAuNjgtNC43NzMsMTAuNjgtMTAuNjY0YzAtMi40MTQtMC44MTItNC42MzMtMi4xNTYtNi40MTQKCQkJQzI3NS4xNCwxMTAuODYsMjcwLjY5NSwxMDQuODEzLDI2OC42NTYsOTYuNjF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE4OS42NCwxMTAuNjQxYy0wLjAyMy0wLjAzMS0yLjMyOC0zLjA4Ni0zLjQ0NS02Ljk2OWMtMS4zMDUtNC41MzktMC41LTcuODQ0LDIuNjk1LTExLjA1NQoJCQljOC42NjQtOC42OTUsMTEuNTIzLTE5Ljk4NCw4LjA2Mi0zMS44MTJjLTIuMzItNy45MzgtNi43ODktMTMuNTMxLTcuMzkxLTE0LjI1YzAsMCwwLTAuMDA4LTAuMDA4LTAuMDA4bC0wLjAwOC0wLjAyM3YwLjAwOAoJCQljLTEuOTYxLTIuMzU5LTQuOTA2LTMuODY3LTguMjExLTMuODY3Yy01Ljg5MSwwLTEwLjY3Miw0Ljc4MS0xMC42NzIsMTAuNjcyYzAsMi41ODYsMC45MjIsNC45NjEsMi40NTMsNi44MDUKCQkJYzAuMDIzLDAuMDIzLDIuMjczLDIuOTM4LDMuMzU5LDYuNjU2YzEuMjgxLDQuMzY3LDAuNDY5LDcuNTg2LTIuNzAzLDEwLjc2NmMtOC42NCw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc3LDMxLjk5OAoJCQljMi4zMjgsOC4xMDIsNi44MjgsMTMuODM2LDcuMzM2LDE0LjQ2OXYtMC4wMDhjMS45NjEsMi40MjIsNC45NDUsMy45NzcsOC4zMDUsMy45NzdjNS44OTEsMCwxMC42NjQtNC43NzMsMTAuNjY0LTEwLjY2NAoJCQljMC0yLjUzOS0wLjg5MS00Ljg2Ny0yLjM2Ny02LjY5NUgxODkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",kfe="PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIC0xIDQ5NiA0OTUiIHdpZHRoPSI0OTZwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ4OCAzMjAuNWgtNDB2LTMyYzAtMi4xMjg5MDYtLjgzOTg0NC00LjE2MDE1Ni0yLjM0Mzc1LTUuNjU2MjVsLTEyMC0xMjBjLTEuNDk2MDk0LTEuNTAzOTA2LTMuNTI3MzQ0LTIuMzQzNzUtNS42NTYyNS0yLjM0Mzc1aC0xNnYtMTUyYzAtNC40MjU3ODEtMy41NzQyMTktOC04LThoLTk2Yy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djE1MmgtMjRjLTIuMTI4OTA2IDAtNC4xNjAxNTYuODM5ODQ0LTUuNjU2MjUgMi4zNDM3NWwtMTIwIDEyMGMtMS41MDM5MDYgMS40OTYwOTQtMi4zNDM3NSAzLjUyNzM0NC0yLjM0Mzc1IDUuNjU2MjV2MzJoLTMyYy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djQ4YzAgNC40MjU3ODEgMy41NzQyMTkgOCA4IDhoNDgwYzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQ4YzAtNC40MjU3ODEtMy41NzQyMTktOC04LTh6bS0yODAtMzA0aDgwdjE5MmgtODB6bS0xNTIgMjc1LjMxMjUgMTE1LjMxMjUtMTE1LjMxMjVoMjAuNjg3NXY0MGMwIDQuNDI1NzgxIDMuNTc0MjE5IDggOCA4aDk2YzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQwaDEyLjY4NzVsMTE1LjMxMjUgMTE1LjMxMjV2MjguNjg3NWgtMzc2em00MjQgNzYuNjg3NWgtNDY0di0zMmg0NjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNzkuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjI3LjMxMjUgNDQwLjVjLTIuMTM2NzE5LTIuMTQ0NTMxLTMuMzEyNS00Ljk3NjU2Mi0zLjMxMjUtOHMxLjE3NTc4MS01Ljg1NTQ2OSAzLjMxMjUtOGwxMC4zNDM3NS0xMC4zNDM3NS0xMS4zMTI1LTExLjMxMjUtMTAuMzQzNzUgMTAuMzQzNzVjLTUuMTYwMTU2IDUuMTYwMTU2LTggMTIuMDE1NjI1LTggMTkuMzEyNXMyLjgzOTg0NCAxNC4xNjAxNTYgOCAxOS4zMTI1bDQuNjg3NSA0LjY4NzVjMi4xMzY3MTkgMi4xNDQ1MzEgMy4zMTI1IDQuOTc2NTYyIDMuMzEyNSA4cy0xLjE3NTc4MSA1Ljg1NTQ2OS0zLjMxMjUgOGwtMTAuMzQzNzUgMTAuMzQzNzUgMTEuMzEyNSAxMS4zMTI1IDEwLjM0Mzc1LTEwLjM0Mzc1YzUuMTYwMTU2LTUuMTYwMTU2IDgtMTIuMDE1NjI1IDgtMTkuMzEyNXMtMi44Mzk4NDQtMTQuMTYwMTU2LTgtMTkuMzEyNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3NS4zMTI1IDQ0MC41Yy0yLjEzNjcxOS0yLjE0NDUzMS0zLjMxMjUtNC45NzY1NjItMy4zMTI1LThzMS4xNzU3ODEtNS44NTU0NjkgMy4zMTI1LThsMTAuMzQzNzUtMTAuMzQzNzUtMTEuMzEyNS0xMS4zMTI1LTEwLjM0Mzc1IDEwLjM0Mzc1Yy01LjE2MDE1NiA1LjE2MDE1Ni04IDEyLjAxNTYyNS04IDE5LjMxMjVzMi44Mzk4NDQgMTQuMTYwMTU2IDggMTkuMzEyNWw0LjY4NzUgNC42ODc1YzIuMTM2NzE5IDIuMTQ0NTMxIDMuMzEyNSA0Ljk3NjU2MiAzLjMxMjUgOHMtMS4xNzU3ODEgNS44NTU0NjktMy4zMTI1IDhsLTEwLjM0Mzc1IDEwLjM0Mzc1IDExLjMxMjUgMTEuMzEyNSAxMC4zNDM3NS0xMC4zNDM3NWM1LjE2MDE1Ni01LjE2MDE1NiA4LTEyLjAxNTYyNSA4LTE5LjMxMjVzLTIuODM5ODQ0LTE0LjE2MDE1Ni04LTE5LjMxMjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjMuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI4OC41aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAyODguNWgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAgMjg4LjVoMTZ2MTZoLTE2em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Yfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDUgNTEyLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0zMjcuMTU5LDIuNzY2Yy00LjA2My0zLjY4OC0xMC4yNS0zLjY4OC0xNC4zMTMsMGMtNC42NDIsNC4xODYtMTEwLjg4OSwxMDEuMjkyLTE2MC4yMjgsMjEzLjgzOQoJCQkJYy01LjMxOC0xLjg2Ny0xMS40NC0zLjI2Ni0xOS4zNTUtMy4yNjZjLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWMxMiwwLDE3LjU2MywzLjg2NSwyNC42MDQsOC43NgoJCQkJYzguMDUyLDUuNjA0LDE4LjA4MywxMi41NzMsMzYuNzcxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N2MtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzMKCQkJCWMtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTExLjIwOCwwLTE2LjgyMy0zLjQxOS0yMy4yNDItNy44NTRjNDAuMTIxLTkyLjY2MSwxMjMuNjYxLTE3Ny40NjYsMTQ4LjYwNy0yMDEuNDkKCQkJCWMzMy4yMTksMzIuMDEsMTcwLjY2NywxNzEuODY1LDE3MC42NjcsMjk0LjY3N2MwLDk0LjEwNC03Ni41NjMsMTcwLjY2Ny0xNzAuNjY3LDE3MC42NjdjLTQyLjQ3NywwLTgyLjY2OS0xNS44MjItMTEzLjc4LTQzLjc1OAoJCQkJYzExLjU0Mi0yLjEzOCwxOC45OTQtNy4xNzcsMjUuMTg2LTExLjQ4MmM3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NmM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzYKCQkJCWMtMTIsMC0xNy41NjMtMy44NjUtMjQuNTk0LTguNzZjLTguMDYzLTUuNjA0LTE4LjA5NC0xMi41NzMtMzYuNzgxLTEyLjU3M2MtMTguNjc3LDAtMjguNjk4LDYuOTY5LTM2Ljc1LDEyLjU3MwoJCQkJYy03LjAzMSw0Ljg5Ni0xMi41ODMsOC43Ni0yNC41NzMsOC43NmMtMTEuOTY5LDAtMTcuNTIxLTMuODY1LTI0LjU0Mi04Ljc1Yy04LjA0Mi01LjYwNC0xOC4wNjMtMTIuNTgzLTM2LjcyOS0xMi41ODMKCQkJCWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzUKCQkJCWM4LjA0Miw1LjYwNCwxOC4wNjMsMTIuNTgzLDM2LjcyOSwxMi41ODNjMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NQoJCQkJYzEyLDAsMTcuNTYzLDMuODY1LDI0LjYwNCw4Ljc2YzQuMzQ1LDMuMDIzLDkuNDE0LDYuMzU1LDE1Ljk2MSw4Ljg2NWMzNi42LDQyLjk5Niw4OS42NTUsNjcuNzA4LDE0Ni4xNzQsNjcuNzA4CgkJCQljMTA1Ljg2NSwwLDE5Mi04Ni4xMzUsMTkyLTE5MkM1MTIuMDAzLDE3MS42NDEsMzM0LjcwMSw5LjU4OSwzMjcuMTU5LDIuNzY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMC42NjksMzYyLjY3MmMxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzUKCQkJCWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzQuNzczLDM2Mi42NzIsMTAuNjY5LDM2Mi42NzJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzMy4yNjMsMzQxLjMzOWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMiwwLDE3LjU2MywzLjg2NSwyNC41OTQsOC43NgoJCQkJYzguMDYzLDUuNjA0LDE4LjA5NCwxMi41NzMsMzYuNzgxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzEyLjE5OCwwLDE4LjQwNiwzLjk2OSwyNi4yNSw4Ljk5YzkuMDUyLDUuNzgxLDE5LjMxMywxMi4zNDQsMzcuNzUsMTIuMzQ0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjcKCQkJCWMwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMi4xOTgsMC0xOC40MDYtMy45NjktMjYuMjUtOC45OWMtOS4wNTItNS43ODEtMTkuMzEzLTEyLjM0NC0zNy43NS0xMi4zNDQKCQkJCWMtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU5NCw4Ljc2LTI0LjU4Myw4Ljc2Yy0xMiwwLTE3LjU2My0zLjg2NS0yNC42MDQtOC43NgoJCQkJQzE2MS45ODIsMzQ4LjMwNywxNTEuOTUxLDM0MS4zMzksMTMzLjI2MywzNDEuMzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzMuMjYzLDI3Ny4zMzljLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlDMTQzLjkzLDI4Mi4xMDksMTM5LjE1OSwyNzcuMzM5LDEzMy4yNjMsMjc3LjMzOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjMxLjQwOSwzMDcuNDMyYzcuMDMxLTQuODk2LDEyLjU5NC04Ljc2LDI0LjU5NC04Ljc2YzExLjk2OSwwLDE3LjUyMSwzLjg2NSwyNC41NDIsOC43NQoJCQkJYzguMDQyLDUuNjA0LDE4LjA2MywxMi41ODMsMzYuNzI5LDEyLjU4M2MxOC42NzcsMCwyOC43MDgtNi45NzksMzYuNzYtMTIuNTgzYzcuMDMxLTQuODg1LDEyLjU4My04Ljc1LDI0LjU2My04Ljc1CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42NzcsMC0yOC42OTgsNi45NjktMzYuNzUsMTIuNTczCgkJCQljLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzVjLTguMDQyLTUuNjA0LTE4LjA2My0xMi41ODMtMzYuNzI5LTEyLjU4MwoJCQkJYy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjcKCQkJCXM0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N0MyMTMuMzE1LDMyMC4wMDUsMjIzLjM0NiwzMTMuMDM2LDIzMS40MDksMzA3LjQzMnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",vfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTIgMTYzLjg3YzAtMTMuOS01LjQxMi0yNi45NjEtMTUuMjMzLTM2Ljc3LTkuODE1LTkuODI4LTIyLjg3Ni0xNS4yNC0zNi43NzYtMTUuMjRoLTgwLjk3Yy0yNi43MDUgMC00OC40My0yMS43MjYtNDguNDMtNDguNDMgMC0xMi45MzggNS4wMzctMjUuMTAxIDE0LjE4NC0zNC4yNDcgOS4xNDQtOS4xNDYgMjEuMzA3LTE0LjE4MyAzNC4yNDUtMTQuMTgzaDEyNS40OGM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMTI1LjQ4Yy0xNi45NDUgMC0zMi44NzQgNi41OTctNDQuODUzIDE4LjU3Ny0xMS45NzkgMTEuOTc5LTE4LjU3NyAyNy45MDgtMTguNTc3IDQ0Ljg1MyAwIDM0Ljk3NSAyOC40NTUgNjMuNDMgNjMuNDMgNjMuNDNoODAuOTdjOS44OSAwIDE5LjE4MiAzLjg1IDI2LjE2OSAxMC44NDcgNi45OTEgNi45ODIgMTAuODQxIDE2LjI3MyAxMC44NDEgMjYuMTYzIDAgOC42MzctMy4wMzggMTcuMDQ0LTguNTU3IDIzLjY3NGwtMjIuMzA1IDI2LjgyMmMtNy44ODQtMi43MjUtMTYuOTg5LS45NzItMjMuMjgyIDUuMzExbC05LjA1OCA5LjA1OGMtMjAuMzItLjQyLTQzLjA5OCAzLjk0LTYyLjgyMSA3LjQyNy00LjA3OS43MjEtNi44MDEgNC42MTMtNi4wNzkgOC42OTEuNzIxIDQuMDc5IDQuNjEzIDYuNzk5IDguNjkxIDYuMDc5IDE4Ljk0Mi0zLjM1IDM4LjM5Mi01Ljc2OCA1Ny44MDktNy4xODUgNy42ODEtLjU2NiAxNC44MzMgNC4zOTMgMTYuOTg1IDExLjc4IDEuODI3IDYuMjcgNDcuMDI3IDE2MC4xNjcgNDguNTMzIDE2Ni41NzUuNDk4IDIuMTE5LS43MzggMy42Ni0yLjkxMiAzLjY2LTIyLjc4NiAwLTQxLjA0MiAxNS42Ni00OC40NjQgMzYuNDg4aC0zMjAuMzcxYy00LjE0MiAwLTcuNSAzLjM1Ny03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDMyNy43ODdjNS40NDUgMCA5Ljg3NSA0LjQzIDkuODc1IDkuODc1cy00LjQzMSA5Ljg3NS05Ljg3NiA5Ljg3NWgtNDM2LjkwNmMzLjI2NS0xMS4zOTEgMTMuNzc1LTE5Ljc1IDI2LjItMTkuNzVoNTIuOTE5YzQuMTQyIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC00NC45NDRjNjIuNDYyLTExMS41OTggMTcxLjkwMy0xNzcuMDI3IDI5NC43NzgtMjA1LjQ4NiA0LjAzNS0uOTM1IDYuNTQ5LTQuOTYzIDUuNjE0LTguOTk5LS45MzQtNC4wMzUtNC45NjQtNi41NDktOC45OTktNS42MTQtNzEuNjMyIDE2LjU5OS0xNDMuNTkzIDQ3LjA1MS0yMDEuNDczIDkyLjYwNmwtMTAuMDcxLTEwLjA3Yy04LjYzNS04Ljc1Mi0yMy4xNTktOC42NzgtMzEuODI2LS4wMS04LjYzMSA4LjYzMi04LjcyOCAyMy4xNjYgMCAzMS44MDdsOC4wNTEgOC4wNTFjLTI5LjQ2NyAyOC45NTktNTQuMTAyIDYyLjMyLTc0LjA0MiA5OC45Mi0xOC40ODcgNC41MDItMzIuMjU2IDIxLjE5MS0zMi4yNTYgNDEuMDQ1IDAgNC4xNDMgMy4zNTggNy41IDcuNSA3LjVoNDQ1LjQ1NWMxMy43MTYgMCAyNC44NzUtMTEuMTU5IDI0Ljg3NS0yNC44NzUgMC0xMC43NS02Ljg1NS0xOS45MjctMTYuNDI0LTIzLjM5NSA1LjI2My0xMy41NzMgMTcuOTAzLTIyLjk2OSAzMi41OTgtMjIuOTY5IDExLjQ4MyAwIDIwLjMwMi0xMS40MDEgMTcuNDExLTIyLjUxLS4wMTgtLjA3MS0uMDM4LS4xNDItLjA1OC0uMjExbC00NS44NTctMTU3LjM5MSA5LjE2My05LjE1NmM3LjM1OS03LjMwMyA4LjY0NC0xOS4wOTMgMy4xOTctMjcuNzYybDIyLjExNS0yNi41OTNjNy43NTQtOS4zMTggMTIuMDI1LTIxLjEzMiAxMi4wMjUtMzMuMjY4em0tNDAzLjE0NiAxNzEuNDEzYzEuNDItMS40MjEgMy4zMDUtMi4yMDMgNS4zMDctMi4yMDMgMS45OTkgMCAzLjg3Ny43NzkgNS4yOTYgMi4yMDRsOS4wMTQgOS4wMTRjLTMuODI1IDMuMjQzLTcuNTgyIDYuNTUxLTExLjI3NCA5LjkyMmwtOC4zNDQtOC4zNDRjLTIuOTItMi45Mi0yLjkyLTcuNjcyLjAwMS0xMC41OTN6bTM1NS4yMDUtOTQuMzk4LTMuOTg2IDMuOTgzYy0yLjQ5Ni00LjQ2MS02LjAzNy04LjIwMy0xMC4yMzMtMTAuOTYxbDMuNjE5LTMuNjE5YzIuOTI2LTIuOTIgNy42OC0yLjkyMiAxMC41OTgtLjAwNCAxLjQyMSAxLjQyMSAyLjIwMyAzLjMwMiAyLjIwMyA1LjI5NyAwIDItLjc4MiAzLjg4NS0yLjIwMSA1LjMwNHptLTIxNS43NjUgOTQuNzY0Yy0xMy44MjQgNy42NTMtMjIuNDEyIDIyLjIzNS0yMi40MTIgMzguMDU2IDAgMTEuOTg3IDUuMDE5IDIzLjU2MyAxMy43NzEgMzEuNzU4IDguMDY2IDcuNTUzIDE4Ljc4OCAxMS43NTYgMjkuNzg2IDExLjc1NS45NCAwIDE1MS4wOC05LjgzOCAxNTEuMDgtOS44MzggNi45MTEtLjQ1NCAxMy4yMjUtMy45MTYgMTcuMzIyLTkuNDk4IDQuMDk2LTUuNTc5IDUuNTA3LTEyLjYzNyAzLjg3Mi0xOS4zNjJsLTE5LjUzOC04MC4zMjNjLTMuMDE3LTEyLjQwNC0xNS4xODMtMjAuMDEzLTI3LjY5My0xNy4zMjktMzAuMDk0IDYuNDY2LTU5Ljc4NyAxNS41OTQtODguMjU2IDI3LjEzLTE5Ljc2OCA4LjAxLTM5LjI1OSAxNy4zMTMtNTcuOTMyIDI3LjY1MXptMTA3LjI2NiA2MC45NjktNjcuNDMgNC40MzN2LTE3LjY4MWMwLS4yMzguMjAyLS40NC40NC0uNDRoNjYuNTVjLjI0MyAwIC40NC4xOTcuNDQuNDR6bTQyLjA3MS0xMDEuMDg1Yy42MTMtLjEzMiAxLjIyMy0uMTk1IDEuODIzLS4xOTUgMy44MTQgMCA3LjIxIDIuNTU5IDguMTQ1IDYuNDAzbDE5LjUzOCA4MC4zMjNjLjU5NSAyLjQ0Ni4xMDIgNC45MTEtMS4zODggNi45NC0xLjQ5MiAyLjAzMi0zLjY5OSAzLjI0Mi02LjIxNSAzLjQwOGwtNDguOTc0IDMuMjE5di0xMi4yNjFjMC04LjUxNC02LjkyNi0xNS40NC0xNS40NC0xNS40NGgtNjYuNTVjLTguNTE0IDAtMTUuNDQgNi45MjctMTUuNDQgMTUuNDR2MTguNjY3bC0xLjg1LjEyMmMtNy45NTcuNTE4LTE1LjU1Mi0yLjE5Mi0yMS4zNzUtNy42NDUtNS44MTktNS40NDktOS4wMjQtMTIuODM5LTkuMDI0LTIwLjgwOSAwLTEwLjM2NyA1LjYyNC0xOS45MjEgMTQuNjc3LTI0LjkzMyAxOC4xNDgtMTAuMDQ3IDM3LjA5LTE5LjA4OCA1Ni4zMDEtMjYuODczIDI3LjY2Ni0xMS4yMTEgNTYuNTI1LTIwLjA4MyA4NS43NzItMjYuMzY2eiIvPgogICAgPC9nPgo8L3N2Zz4=",bfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQzNS4yIDMyNC4yNjdoLTEwLjkwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY3Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTIzMi43NzJjLTE0LjEzOCAwLTI1LjYtMTEuNDYyLTI1LjYtMjUuNnMxMS40NjItMjUuNiAyNS42LTI1LjZoMzYuNTA2YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2g2Mi4xMDZjMTQuMTM4IDAgMjUuNi0xMS40NjIgMjUuNi0yNS42cy0xMS40NjItMjUuNi0yNS42LTI1LjZoLTYyLjEwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY2Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTM2LjUwNmMtNDIuNDE1IDAtNzYuOCAzNC4zODUtNzYuOCA3Ni44czM0LjM4NSA3Ni44IDc2LjggNzYuOGgyMzIuNzcyYzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gxMC45MDdjMTQuMTM4IDAgMjUuNiAxMS40NjIgMjUuNiAyNS42cy0xMS40NjIgMjUuNi0yNS42IDI1LjZoLTMwOS41NzJjLTMuMDI0LTUuMjYzLTguNjI0LTguNTE1LTE0LjY5NC04LjUzM3YtMTcuMDY3YzAtOS40MjYtNy42NDEtMTcuMDY3LTE3LjA2Ny0xNy4wNjdoLTE3LjA2N2MtOS40MjYgMC0xNy4wNjcgNy42NDEtMTcuMDY3IDE3LjA2N3YxNy4wNjdjLTYuMDcuMDE4LTExLjY3IDMuMjctMTQuNjk0IDguNTMzaC0xOS40MzljLTE0LjEzOCAwLTI1LjYgMTEuNDYyLTI1LjYgMjUuNnMxMS40NjIgMjUuNiAyNS42IDI1LjZoMTkuNDM5YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gzMDkuNTczYzQyLjQxNSAwIDc2LjgtMzQuMzg1IDc2LjgtNzYuOHMtMzQuMzg1LTc2LjgtNzYuOC03Ni44em0tNTkuNzMzLTI1LjZoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNzYuOC01MS4yYzAgNC43MTMtMy44MjEgOC41MzMtOC41MzMgOC41MzNoLTU5LjczNHYtMTcuMDY3aDU5LjczM2M0LjcxMyAwIDguNTM0IDMuODIxIDguNTM0IDguNTM0em0tMTE5LjQ2Ny01MS4yaDE3LjA2N3YxNy4wNjdoLTE3LjA2N3ptLTguNTMzIDM0LjEzM2g0Mi42Njd2MzQuMTMzaC01MS4ydi0zNC4xMzN6bS0xMTkuNDY3IDY4LjI2N2MuMDM4LTMyLjk3NCAyNi43NTktNTkuNjk2IDU5LjczMy01OS43MzNoMzQuMTMzdjE3LjA2NmgtMzQuMTMzYy0yMy41NjQgMC00Mi42NjcgMTkuMTAzLTQyLjY2NyA0Mi42NjdzMTkuMTAzIDQyLjY2NyA0Mi42NjcgNDIuNjY3aDIzMC40djE3LjA2NmgtMjMwLjRjLTMyLjk3NC0uMDM4LTU5LjY5NS0yNi43NTktNTkuNzMzLTU5LjczM3ptMzA3LjIgNjguMjY2di0zNC4xMzNoNTEuMnYzNC4xMzN6bS0yODEuNiAzNC4xMzRoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNTkuNzMzIDUxLjJjMC00LjcxMyAzLjgyMS04LjUzMyA4LjUzMy04LjUzM2gxNy4wNjd2MTcuMDY2aC0xNy4wNjdjLTQuNzEzIDAtOC41MzMtMy44Mi04LjUzMy04LjUzM3ptNDIuNjY2IDE3LjA2NnYtMzQuMTMzaDUxLjJ2MzQuMTMzem0zNzUuNDY3LTguNTMzaC0zMDcuMnYtMTcuMDY3aDMwNy4yYzIzLjU2NCAwIDQyLjY2Ny0xOS4xMDMgNDIuNjY3LTQyLjY2N3MtMTkuMTAzLTQyLjY2Ny00Mi42NjctNDIuNjY3aC04LjUzM3YtMTcuMDY3aDguNTMzYzMyLjk5IDAgNTkuNzMzIDI2Ljc0NCA1OS43MzMgNTkuNzMzcy0yNi43NDMgNTkuNzM1LTU5LjczMyA1OS43MzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4Ny43MzMgMTYyLjEzM2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyMS04LjUzMy04LjUzMy04LjUzMy00LjcxMyAwLTguNTMzIDMuODIxLTguNTMzIDguNTMzdjE3LjA2N2MwIDQuNzEzIDMuODIxIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xODcuNzMzIDExMC45MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTg3LjczMyA1OS43MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTU0Ljc0MyAxNTcuODY3YzEuNTEzIDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxMy0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjkuMTQzIDExMy40OTNjMS41MTMgMi42NjIgNC4zMzcgNC4zMDkgNy4zOTkgNC4zMTZzNS44OTMtMS42MjggNy40MTgtNC4yODMgMS41MTEtNS45MjQtLjAzOC04LjU2NmwtOC41MzMtMTQuNzhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMy41NDMgNjkuMTg4YzIuMzcyIDQuMDQ3IDcuNTY2IDUuNDIgMTEuNjI4IDMuMDc0IDQuMDYyLTIuMzQ1IDUuNDctNy41MyAzLjE1MS0xMS42MDhsLTguNTMzLTE0Ljc4OGMtMS41MTMtMi42NjItNC4zMzctNC4zMDktNy4zOTktNC4zMTZzLTUuODkzIDEuNjI4LTcuNDE4IDQuMjgzLTEuNTExIDUuOTI0LjAzOCA4LjU2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjA5LjA2NyAxNjAuOTljNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzhjMS41NDktMi42NDIgMS41NjMtNS45MTEuMDM4LTguNTY2cy00LjM1Ni00LjI5LTcuNDE4LTQuMjgzLTUuODg2IDEuNjU0LTcuMzk5IDQuMzE2bC04LjUzMyAxNC43OGMtMi4zNTggNC4wODEtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0LjY2NyAxMTYuNjUxYzQuMDgxIDIuMzU2IDkuMy45NTggMTEuNjU3LTMuMTIzbDguNTMzLTE0Ljc4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzhjLTIuMzU4IDQuMDgtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjYwLjI2NyA3Mi4zMTFjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzg4Yy0yLjM1OCA0LjA4MS0uOTYgOS4zIDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI3My4wNjdjNC43MTMgMCA4LjUzMy0zLjgyIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMjIxLjg2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMTcwLjY2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNTEuMDEgMjY4LjhjMi4zNzIgNC4wNDcgNy41NjYgNS40MiAxMS42MjggMy4wNzQgNC4wNjItMi4zNDUgNS40Ny03LjUzIDMuMTUxLTExLjYwOGwtOC41MzMtMTQuNzhjLTEuNTE0LTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyNS40MSAyMjQuNDI3YzEuNTE0IDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxNC0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTkuODEgMTgwLjEyMmMyLjM3MiA0LjA0NyA3LjU2NiA1LjQyIDExLjYyOCAzLjA3NCA0LjA2Mi0yLjM0NSA1LjQ3LTcuNTMgMy4xNTEtMTEuNjA4bC04LjUzMy0xNC43ODhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNS4zMzMgMjcxLjkyM2M0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4LTQuMDYyLTIuMzQ1LTkuMjU2LS45NzItMTEuNjI4IDMuMDc0bC04LjUzMyAxNC43OGMtMi4zNTcgNC4wODItLjk1OSA5LjMwMSAzLjEyMiAxMS42NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMC45MzMgMjI3LjU4NGM0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4cy05LjI1Ni0uOTcyLTExLjYyOCAzLjA3NGwtOC41MzMgMTQuNzhjLTIuMzU3IDQuMDgyLS45NTkgOS4zMDEgMy4xMjIgMTEuNjU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NTYuNTMzIDE4My4yNDVjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzIuMzE4LTQuMDc4LjkxMS05LjI2Mi0zLjE1MS0xMS42MDgtNC4wNjItMi4zNDUtOS4yNTYtLjk3Mi0xMS42MjggMy4wNzRsLTguNTMzIDE0Ljc4OGMtMi4zNTcgNC4wODItLjk1OSA5LjMgMy4xMjIgMTEuNjU3eiIvPgogICAgPC9nPgo8L3N2Zz4=",Qfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDIgNTEyLjAwMiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM5OC41ODkgMjQ2LjM0MmMtNjQuNjY2LTE3LjMyOC0xMTUuNjAxLTY4LjI2NC0xMzIuOTI5LTEzMi45MjktMS4xNzEtNC4zNzItNS4xMzMtNy40MTItOS42NTktNy40MTJzLTguNDg4IDMuMDQtOS42NTkgNy40MTJjLTE3LjMyOCA2NC42NjYtNjguMjYzIDExNS42MDEtMTMyLjkyOSAxMzIuOTI5LTQuMzcyIDEuMTcxLTcuNDEyIDUuMTMzLTcuNDEyIDkuNjU5czMuMDQgOC40ODggNy40MTIgOS42NTljNjQuNjY2IDE3LjMyOSAxMTUuNjAxIDY4LjI2NCAxMzIuOTI5IDEzMi45MjkgMS4xNzEgNC4zNzIgNS4xMzMgNy40MTIgOS42NTkgNy40MTJzOC40ODgtMy4wNCA5LjY1OS03LjQxMmMxNy4zMjgtNjQuNjY1IDY4LjI2NC0xMTUuNjAxIDEzMi45MjktMTMyLjkyOSA0LjM3Mi0xLjE3MSA3LjQxMi01LjEzMyA3LjQxMi05LjY1OXMtMy4wNC04LjQ4OC03LjQxMi05LjY1OXptLTE0Mi41ODggMTE5LjE3NmMtMjEuMDM5LTQ5LjA5Ni02MC40Mi04OC40NzgtMTA5LjUxNi0xMDkuNTE3IDQ5LjA5Ni0yMS4wMzkgODguNDc4LTYwLjQyIDEwOS41MTYtMTA5LjUxNyAyMS4wMzkgNDkuMDk3IDYwLjQyIDg4LjQ3OCAxMDkuNTE3IDEwOS41MTctNDkuMDk3IDIxLjAzOS04OC40NzggNjAuNDItMTA5LjUxNyAxMDkuNTE3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuMDM2IDIwMC40NThjLTEuODg2LTIuNTQ1LTQuODY3LTQuMDQ3LTguMDM1LTQuMDQ3cy02LjE0OSAxLjUwMS04LjAzNSA0LjA0N2MtMTMuNDE2IDE4LjEwNy0yOS40IDM0LjA5MS00Ny41MDggNDcuNTA4LTIuNTQ1IDEuODg2LTQuMDQ3IDQuODY3LTQuMDQ3IDguMDM1czEuNTAxIDYuMTQ5IDQuMDQ3IDguMDM1YzE4LjEwOCAxMy40MTYgMzQuMDkyIDI5LjQgNDcuNTA4IDQ3LjUwOCAxLjg4NiAyLjU0NSA0Ljg2NyA0LjA0NyA4LjAzNSA0LjA0N3M2LjE0OS0xLjUwMSA4LjAzNS00LjA0N2MxMy40MTYtMTguMTA4IDI5LjQtMzQuMDkyIDQ3LjUwOC00Ny41MDggMi41NDUtMS44ODYgNC4wNDctNC44NjcgNC4wNDctOC4wMzVzLTEuNTAxLTYuMTQ5LTQuMDQ3LTguMDM1Yy0xOC4xMDgtMTMuNDE3LTM0LjA5Mi0yOS40MDEtNDcuNTA4LTQ3LjUwOHptLTguMDM1IDg4LjkwOWMtMTAuMDQtMTIuMTYyLTIxLjIwNC0yMy4zMjYtMzMuMzY2LTMzLjM2NiAxMi4xNjMtMTAuMDQgMjMuMzI2LTIxLjIwNCAzMy4zNjYtMzMuMzY2IDEwLjA0IDEyLjE2MyAyMS4yMDQgMjMuMzI2IDMzLjM2NiAzMy4zNjYtMTIuMTYyIDEwLjA0LTIzLjMyNiAyMS4yMDQtMzMuMzY2IDMzLjM2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2LjAwMSA3NS45OTljNS41MjMgMCAxMC00LjQ3NyAxMC0xMHYtNTUuOTk5YzAtNS41MjMtNC40NzctMTAtMTAtMTBzLTEwIDQuNDc3LTEwIDEwdjU1Ljk5OWMwIDUuNTIzIDQuNDc3IDEwIDEwIDEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTQuNTc5IDEyOC43MjFjMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWMzLjkwNS0zLjkwNSAzLjkwNS0xMC4yMzcgMC0xNC4xNDNsLTM5LjU5Ny0zOS41OThjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDMgMHMtMy45MDUgMTAuMjM3IDAgMTQuMTQzeiIvPgogICAgICAgIDxwYXRoIGQ9Im03NiAyNTYuMDAxYzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTU2Yy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwczQuNDc3IDEwIDEwIDEwaDU2YzUuNTIyIDAgMTAtNC40NzcgMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNC41NzkgMzgzLjI4MS0zOS41OTggMzkuNTk4Yy0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDMgMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWwzOS41OTgtMzkuNTk4YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3MtMTAuMjM3LTMuOTA2LTE0LjE0MiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMDAxIDQzNi4wMDNjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2NTUuOTk5YzAgNS41MjMgNC40NzcgMTAgMTAgMTBzMTAtNC40NzcgMTAtMTB2LTU1Ljk5OWMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTcuNDI0IDM4My4yODFjLTMuOTA1LTMuOTA0LTEwLjIzNi0zLjkwNC0xNC4xNDMgMC0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDNsMzkuNTk3IDM5LjU5OGMxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MSAyLjkyOXM1LjExOS0uOTc3IDcuMDcxLTIuOTI5YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3oiLz4KICAgICAgICA8cGF0aCBkPSJtNTAyLjAwMiAyNDYuMDAxaC01NS45OTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoNTUuOTk5YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTAuMzUzIDEzMS42NDljMi41NTkgMCA1LjExOS0uOTc2IDcuMDcxLTIuOTI5bDM5LjU5Ny0zOS41OThjMy45MDUtMy45MDUgMy45MDUtMTAuMjM3IDAtMTQuMTQzcy0xMC4yMzctMy45MDUtMTQuMTQzIDBsLTM5LjU5NyAzOS41OThjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MiAyLjkyOXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYxLjg2OCAzOC43MzVjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMSA1LjA3Ny0yLjE3NSA3LjQyOC04LjA1NCA1LjI1Mi0xMy4xM2wtLjAwMy0uMDA3Yy0yLjE3NS01LjA3Ni04LjA1MS03LjQyMy0xMy4xMjktNS4yNDktNS4wNzYgMi4xNzUtNy40MjYgOC4wNTgtNS4yNSAxMy4xMzQgMS42MjUgMy43OTIgNS4zMTYgNi4wNjMgOS4xOTYgNi4wNjN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2OS44NDQgNzQuMTMxIDEzLjA1NCAzMS41MTRjMS41OTUgMy44NTEgNS4zMTggNi4xNzUgOS4yNDMgNi4xNzUgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjQgNS4xMDItMi4xMTQgNy41MjUtNy45NjMgNS40MTItMTMuMDY2bC0xMy4wNTQtMzEuNTE0Yy0yLjExNC01LjEwMy03Ljk2My03LjUyNy0xMy4wNjYtNS40MTJzLTcuNTI2IDcuOTY0LTUuNDEyIDEzLjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQuNTQyIDE3MC45NDNjMS4zNTcuNjI2IDIuNzgyLjkyMyA0LjE4NC45MjMgMy43OCAwIDcuMzk4LTIuMTU0IDkuMDg2LTUuODEyIDIuMzE0LTUuMDE0LjEyNS0xMC45NTYtNC44ODktMTMuMjdsLS4wMDYtLjAwM2MtNS4wMTMtMi4zMTUtMTAuOTUyLS4xMjUtMTMuMjY3IDQuODkxLTIuMzE2IDUuMDE0LS4xMjMgMTAuOTU2IDQuODkyIDEzLjI3MXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjYuNDc3IDE4OC4zMjEgMzEuNTE1IDEzLjA1NGMxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2IDIuMTE0LTUuMTAzLS4zMS0xMC45NTItNS40MTItMTMuMDY1bC0zMS41MTYtMTMuMDU0Yy01LjEwMS0yLjExMy0xMC45NTIuMzEtMTMuMDY1IDUuNDEyLTIuMTE0IDUuMTAyLjMxIDEwLjk1MiA1LjQxMiAxMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwNS42NDUgMzI5LjEwNGM1LjEwMy0yLjExMyA3LjUyNi03Ljk2MyA1LjQxMi0xMy4wNjUtMi4xMTMtNS4xMDMtNy45NjQtNy41MjctMTMuMDY1LTUuNDEybC0zMS41MTQgMTMuMDU0Yy01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjUgMS41OTUgMy44NTIgNS4zMTggNi4xNzYgOS4yNDMgNi4xNzYgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI0Ljc5MyAzNDAuOTQ3LS4wMDcuMDAzYy01LjA3NiAyLjE3NS03LjQyNCA4LjA1My01LjI0OSAxMy4xMjkgMS42MjUgMy43OTIgNS4zMTcgNi4wNjIgOS4xOTggNi4wNjIgMS4zMTUgMCAyLjY1Mi0uMjYxIDMuOTM2LS44MTIgNS4wNzctMi4xNzUgNy40MjgtOC4wNTQgNS4yNTItMTMuMTMxLTIuMTc0LTUuMDc1LTguMDUzLTcuNDI2LTEzLjEzLTUuMjUxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjYuMDU0IDQ3NC4xOWMtNS4wMTUtMi4zMTUtMTAuOTU2LS4xMjUtMTMuMjcgNC44ODlsLS4wMDMuMDA2Yy0yLjMxNCA1LjAxNC0uMTI0IDEwLjk1MyA0Ljg5MSAxMy4yNjcgMS4zNTYuNjI2IDIuNzguOTIyIDQuMTgyLjkyMiAzLjc4MSAwIDcuNDAxLTIuMTU2IDkuMDg5LTUuODE0IDIuMzE0LTUuMDE0LjEyNS0xMC45NTUtNC44ODktMTMuMjd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NS45NjMgNDAwLjk0NWMtNS4xMDEtMi4xMTQtMTAuOTUyLjMxLTEzLjA2NSA1LjQxMmwtMTMuMDU0IDMxLjUxNWMtMi4xMTQgNS4xMDMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NSAxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2bDEzLjA1NC0zMS41MTVjMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDYuMTk5IDQ3NC4wNzhjLTUuMDc2IDIuMTc1LTcuNDI4IDguMDU0LTUuMjUyIDEzLjEzbC4wMDMuMDA3YzEuNjI1IDMuNzkxIDUuMzE0IDYuMDYgOS4xOTIgNi4wNiAxLjMxNSAwIDIuNjUxLS4yNjEgMy45MzctLjgxMiA1LjA3Ni0yLjE3NSA3LjQyNi04LjA1OCA1LjI1LTEzLjEzNC0yLjE3NC01LjA3Ni04LjA1MS03LjQyNi0xMy4xMy01LjI1MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjE1OCA0MzcuODcxLTEzLjA1NC0zMS41MTRjLTIuMTE0LTUuMTAzLTcuOTY1LTcuNTI3LTEzLjA2NS01LjQxMi01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjVsMTMuMDU0IDMxLjUxNGMxLjU5NSAzLjg1MiA1LjMxOCA2LjE3NiA5LjI0MyA2LjE3NiAxLjI3NSAwIDIuNTcyLS4yNDUgMy44MjMtLjc2NCA1LjEwMi0yLjExMiA3LjUyNS03Ljk2MiA1LjQxMS0xMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4Ny4yMDggMzQwLjk0N2MtNS4wNzYtMi4xNzctMTAuOTU1LjE3Ny0xMy4xMyA1LjI1Mi0yLjE3NiA1LjA3Ny4xNzYgMTAuOTU2IDUuMjUyIDEzLjEzMWwuMDA2LjAwM2MxLjI4NS41NSAyLjYxOS44MTEgMy45MzMuODExIDMuODc5IDAgNy41NjktMi4yNzIgOS4xOTQtNi4wNjQgMi4xNzctNS4wNzctLjE3OC0xMC45NTctNS4yNTUtMTMuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NDUuNTI1IDMyMy42ODEtMzEuNTE0LTEzLjA1NGMtNS4xMDItMi4xMTMtMTAuOTUxLjMxLTEzLjA2NSA1LjQxMnMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NWwzMS41MTQgMTMuMDU0YzEuMjUyLjUxOSAyLjU0OC43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzYgMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00ODMuMjc0IDE3MS44NjZjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMWwuMDA3LS4wMDNjNS4wNzYtMi4xNzUgNy40MjQtOC4wNTMgNS4yNDktMTMuMTI5cy04LjA2LTcuNDI3LTEzLjEzNC01LjI1Yy01LjA3NyAyLjE3NS03LjQyOCA4LjA1NC01LjI1MiAxMy4xMzEgMS42MjUgMy43OTEgNS4zMTYgNi4wNjIgOS4xOTYgNi4wNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNi4zNTcgMTgyLjg5N2MtNS4xMDMgMi4xMTMtNy41MjYgNy45NjMtNS40MTIgMTMuMDY1IDEuNTk1IDMuODUyIDUuMzE4IDYuMTc2IDkuMjQzIDYuMTc2IDEuMjc1IDAgMi41NzItLjI0NSAzLjgyMy0uNzY0bDMxLjUxNC0xMy4wNTRjNS4xMDMtMi4xMTMgNy41MjYtNy45NjMgNS40MTItMTMuMDY1LTIuMTE0LTUuMTAzLTcuOTYzLTcuNTI3LTEzLjA2Ni01LjQxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ2LjE5OSAzNy45MjNjMS4yODUuNTUxIDIuNjIxLjgxMSAzLjkzNS44MTEgMy44OCAwIDcuNTcxLTIuMjcxIDkuMTk2LTYuMDYzbC4wMDMtLjAwN2MyLjE3Ni01LjA3Ni0uMTc3LTEwLjk1Mi01LjI1My0xMy4xMjctNS4wNzQtMi4xNzYtMTAuOTU3LjE3OS0xMy4xMzIgNS4yNTYtMi4xNzcgNS4wNzYuMTc1IDEwLjk1NSA1LjI1MSAxMy4xM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMzE2LjAzOSAxMTEuMDU3YzEuMjUxLjUxOSAyLjU0Ny43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzZsMTMuMDU0LTMxLjUxNGMyLjExNC01LjEwMy0uMzEtMTAuOTUzLTUuNDEyLTEzLjA2Ni01LjEwMS0yLjExNC0xMC45NTEuMzEtMTMuMDY1IDUuNDEybC0xMy4wNTQgMzEuNTE0Yy0yLjExNSA1LjEwMi4zMDkgMTAuOTUyIDUuNDExIDEzLjA2NnoiLz4KICAgIDwvZz4KPC9zdmc+",Ufe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAuMDAzLDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04cy04LDMuNTgyLTgsOHYzMkMyMzIuMDAzLDQ0LjQxOCwyMzUuNTg0LDQ4LDI0MC4wMDMsNDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0MS4wNzUsMzYuNjU2bDE2LDI3LjcwNGMyLjE4NCwzLjg0MSw3LjA2OCw1LjE4NCwxMC45MDksM3M1LjE4NC03LjA2OCwzLTEwLjkwOWMtMC4wMTctMC4wMzEtMC4wMzUtMC4wNjEtMC4wNTMtMC4wOTIKCQkJCWwtMTYtMjcuNzA0Yy0yLjE4NC0zLjg0MS03LjA2OC01LjE4NC0xMC45MDktM2MtMy44NDEsMi4xODQtNS4xODQsNy4wNjgtMywxMC45MDlDMTQxLjAzOSwzNi41OTUsMTQxLjA1NywzNi42MjYsMTQxLjA3NSwzNi42NTYKCQkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuNTY3LDEwNi44NzVjMC4wMywwLjAxOCwwLjA2MSwwLjAzNSwwLjA5MiwwLjA1M2wyNy43MDQsMTZjMy44MTIsMi4yMzQsOC43MTMsMC45NTYsMTAuOTQ3LTIuODU2CgkJCQljMi4yMzQtMy44MTIsMC45NTYtOC43MTMtMi44NTYtMTAuOTQ3Yy0wLjAzLTAuMDE4LTAuMDYxLTAuMDM1LTAuMDkyLTAuMDUzbC0yNy43MDQtMTZjLTMuODEyLTIuMjM0LTguNzEzLTAuOTU2LTEwLjk0NywyLjg1NgoJCQkJQzcxLjQ3Nyw5OS43MzksNzIuNzU1LDEwNC42NDEsNzYuNTY3LDEwNi44NzV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTk2LjAwMywxOTJjMC00LjQxOC0zLjU4Mi04LTgtOGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJDOTIuNDIxLDIwMCw5Ni4wMDMsMTk2LjQxOCw5Ni4wMDMsMTkyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuNDU2LDI2MS4wMThjLTAuMDMxLDAuMDE4LTAuMDYyLDAuMDM2LTAuMDkzLDAuMDU0bC0yNy43MDQsMTZjLTMuODQxLDIuMTgzLTUuMTg1LDcuMDY3LTMuMDAyLDEwLjkwOAoJCQkJYzIuMTgzLDMuODQxLDcuMDY3LDUuMTg1LDEwLjkwOCwzLjAwMmMwLjAzMS0wLjAxOCwwLjA2Mi0wLjAzNiwwLjA5My0wLjA1NGwyNy43MDQtMTZjMy44NDEtMi4xODMsNS4xODUtNy4wNjcsMy4wMDItMTAuOTA4CgkJCQlDMTEzLjE4MSwyNjAuMTc5LDEwOC4yOTcsMjU4LjgzNSwxMDQuNDU2LDI2MS4wMTh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQwMy40NCwyNzcuMTI2Yy0wLjAzMS0wLjAxOC0wLjA2Mi0wLjAzNi0wLjA5My0wLjA1NGwtMjcuNzA0LTE2Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMi4yMzUsMy44MTEtMC45NTcsOC43MTMsMi44NTQsMTAuOTQ4YzAuMDMxLDAuMDE4LDAuMDYyLDAuMDM2LDAuMDkzLDAuMDU0bDI3LjcwNCwxNmMzLjgxMSwyLjIzNSw4LjcxMywwLjk1NywxMC45NDgtMi44NTQKCQkJCUM0MDguNTI5LDI4NC4yNjIsNDA3LjI1MSwyNzkuMzYxLDQwMy40NCwyNzcuMTI2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjQuMDAzLDE4NGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJjNC40MTgsMCw4LTMuNTgyLDgtOFM0MjguNDIxLDE4NCw0MjQuMDAzLDE4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzcxLjY1MSwxMjRjMS40MDQsMCwyLjc4NC0wLjM3LDQtMS4wNzJsMjcuNzA0LTE2YzMuODQxLTIuMTg0LDUuMTg0LTcuMDY4LDMtMTAuOTA5cy03LjA2OC01LjE4NC0xMC45MDktMwoJCQkJYy0wLjAzMSwwLjAxNy0wLjA2MSwwLjAzNS0wLjA5MiwwLjA1M2wtMjcuNzA0LDE2Yy0zLjgyNiwyLjIwOS01LjEzNyw3LjEwMi0yLjkyOCwxMC45MjgKCQkJCUMzNjYuMTUyLDEyMi40NzUsMzY4Ljc5MywxMjQsMzcxLjY1MSwxMjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMxMS45OTMsNjcuMjkxYzAuMDAzLDAuMDAyLDAuMDA2LDAuMDA0LDAuMDA5LDAuMDA1YzMuODI3LDIuMjA3LDguNzIsMC44OTQsMTAuOTI3LTIuOTM0CgkJCQljMC0wLjAwMSwwLjAwMS0wLjAwMiwwLjAwMS0wLjAwMmwxNi0yNy43MDRjMi4yMzUtMy44MTEsMC45NTctOC43MTMtMi44NTQtMTAuOTQ4Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMC4wMTgsMC4wMzEtMC4wMzYsMC4wNjItMC4wNTQsMC4wOTNsLTE2LDI3LjcwNEMzMDYuODYyLDYwLjE4NCwzMDguMTY5LDY1LjA3OCwzMTEuOTkzLDY3LjI5MXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LjAwMywzMjBjNC40MTgsMCw4LTMuNTgyLDgtOHYtODhoMTZjMTcuNjczLDAsMzItMTQuMzI3LDMyLTMycy0xNC4zMjctMzItMzItMzJjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMnYxNmgtMTYKCQkJCXYtMTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiwxNC4zMjctMzIsMzJzMTQuMzI3LDMyLDMyLDMyaDE2djg4YzAsNC40MTgsMy41ODIsOCw4LDhzOC0zLjU4Miw4LTh2LTg4aDE2djg4CgkJCQlDMjQ4LjAwMywzMTYuNDE4LDI1MS41ODQsMzIwLDI1Ni4wMDMsMzIweiBNMjY0LjAwMywxOTJjMC04LjgzNyw3LjE2My0xNiwxNi0xNnMxNiw3LjE2MywxNiwxNnMtNy4xNjMsMTYtMTYsMTZoLTE2VjE5MnoKCQkJCSBNMjE2LjAwMywyMDhoLTE2Yy04LjgzNywwLTE2LTcuMTYzLTE2LTE2czcuMTYzLTE2LDE2LTE2czE2LDcuMTYzLDE2LDE2VjIwOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQ2LjIxOSw2NC4xNTJjLTcwLjYxMS0zLjM5Mi0xMzAuNjAzLDUxLjA5OS0xMzMuOTk1LDEyMS43MWMtMS45NDMsNDAuNDMyLDE1LjM1NCw3OS40LDQ2LjY0MywxMDUuMDgyCgkJCQljNS42MzksNC40MTcsOC45OTQsMTEuMTM1LDkuMTM2LDE4LjI5NlYzMjhjMC4wNDIsMTAuMTM0LDYuNDQ1LDE5LjE1LDE2LDIyLjUyOFYzNjBjMC4wMjEsNS45MjMsMi4yNDUsMTEuNjI3LDYuMjQsMTYKCQkJCWMtOC4zMiw5LjA0NC04LjMyLDIyLjk1NiwwLDMyYy04Ljg5NCw5Ljc1LTguMiwyNC44NjQsMS41NSwzMy43NThjNC40MjksNC4wNCwxMC4yMTUsNi4yNjgsMTYuMjEsNi4yNDIKCQkJCWM0LjMwNiwwLjExMyw3Ljg4OS0zLjI4Nyw4LjAwMS03LjU5M2MwLjA0NC0xLjY4LTAuNDU2LTMuMzMtMS40MjUtNC43MDNjLTAuMjUzLTAuNDg5LTAuNTUzLTAuOTUzLTAuODk2LTEuMzg0CgkJCQljLTAuNjU4LTAuNjAyLTEuNDA5LTEuMDk0LTIuMjI0LTEuNDU2Yy0wLjIzMi0wLjEyLTAuNDY0LTAuMjE2LTAuNzA0LTAuMzEyYy0wLjgxLTAuMjk1LTEuNjU5LTAuNDY1LTIuNTItMC41MDQKCQkJCWMtMC4wOCwwLTAuMTUyLTAuMDQ4LTAuMjMyLTAuMDQ4Yy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMgoJCQkJYy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMmMtNC40MTgsMC04LTMuNTgyLTgtOHYtOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04CgkJCQlzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LTMuNTgyLTgtOHYtMTguNzZjLTAuMTMxLTExLjk2Mi01LjY0LTIzLjIzLTE1LTMwLjY4Yy00Ny43ODgtMzkuMjc0LTU0LjY4OS0xMDkuODUyLTE1LjQxNS0xNTcuNjQKCQkJCWMyMi40NjYtMjcuMzM2LDU2LjUyOC00Mi40NDgsOTEuODcxLTQwLjc2YzU5LjEwNywzLjUxNiwxMDUuNTM2LDUxLjk1NywxMDYuNTQ0LDExMS4xNmMwLjI4NywzNC4wNTItMTUuMDI0LDY2LjM2My00MS41Niw4Ny43MDQKCQkJCWMtOS4yOSw3LjY1Mi0xNC42MDIsMTkuMTA5LTE0LjQ0LDMxLjE0NFYzMjhjMCw0LjQxOC0zLjU4Miw4LTgsOGgtMjRjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMTZ2OAoJCQkJYzAsNC40MTgtMy41ODIsOC04LDhoLThjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoOGM0LjQxOCwwLDgsMy41ODIsOCw4cy0zLjU4Miw4LTgsOGgtOGMtNC40MTgsMC04LDMuNTgyLTgsOAoJCQkJczMuNTgyLDgsOCw4aDhjNC40MTgsMCw4LDMuNTgyLDgsOHMtMy41ODIsOC04LDhoLTQwYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMwLjYzMgoJCQkJYy00LjQxNywxMi40OTctMTguMTI5LDE5LjA0Ny0zMC42MjYsMTQuNjNjLTMuODI2LTEuMzUyLTcuMjQ2LTMuNjUzLTkuOTQyLTYuNjg2Yy0yLjkzOC0zLjMtNy45OTYtMy41OTQtMTEuMjk2LTAuNjU2CgkJCQljLTMuMywyLjkzOC0zLjU5NCw3Ljk5Ni0wLjY1NiwxMS4yOTZjMTQuNjMxLDE2LjQ4NywzOS44NTcsMTcuOTkyLDU2LjM0NCwzLjM2MmM2LjgxLTYuMDQzLDExLjM0OS0xNC4yMzIsMTIuODY0LTIzLjIxCgkJCQljMTIuNTI5LTMuOTE2LDE5LjUxMS0xNy4yNDcsMTUuNTk2LTI5Ljc3NmMtMS4wNC0zLjMyOS0yLjgwMS02LjM4OC01LjE1Ni04Ljk2YzguMzItOS4wNDQsOC4zMi0yMi45NTYsMC0zMgoJCQkJYzMuOTk1LTQuMzczLDYuMjE5LTEwLjA3Nyw2LjI0LTE2di05LjQ3MmM5LjU1NS0zLjM3OCwxNS45NTgtMTIuMzk0LDE2LTIyLjUyOHYtMTcuODMyYy0wLjEwNy03LjE4NywzLjAwNy0xNC4wNDYsOC40ODgtMTguNjk2CgkJCQljMzAuMzQ0LTI0LjM5NSw0Ny44NS02MS4zMzksNDcuNTEyLTEwMC4yNzJDMzY2Ljg0NywxMjMuNTMyLDMxMy43NzcsNjguMTY5LDI0Ni4yMTksNjQuMTUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",$fe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjU1Ljk5OSwwYy03OS4wNDQsMC0xNDMuMzUyLDY0LjMwOC0xNDMuMzUyLDE0My4zNTN2NzAuMTkzYzAsNC43OCwzLjg3OSw4LjY1Niw4LjY1OSw4LjY1Nmg0OC4wNTcKCQkJYzQuNzgsMCw4LjY1Ni0zLjg3Niw4LjY1Ni04LjY1NnYtNzAuMTkzYzAtNDIuOTk4LDM0Ljk4MS03Ny45OCw3Ny45NzktNzcuOThzNzcuOTc5LDM0Ljk4Miw3Ny45NzksNzcuOTh2NzAuMTkzCgkJCWMwLDQuNzgsMy44OCw4LjY1Niw4LjY2MSw4LjY1Nmg0OC4wNTdjNC43OCwwLDguNjU2LTMuODc2LDguNjU2LTguNjU2di03MC4xOTNDMzk5LjM1Miw2NC4zMDgsMzM1LjA0NCwwLDI1NS45OTksMHoKCQkJIE0zODIuMDQsMjA0Ljg5aC0zMC43NDh2LTYxLjUzN2MwLTUyLjU0NC00Mi43NDgtOTUuMjkyLTk1LjI5MS05NS4yOTJzLTk1LjI5MSw0Mi43NDgtOTUuMjkxLDk1LjI5MnY2MS41MzdoLTMwLjc0OHYtNjEuNTM3CgkJCWMwLTY5LjQ5OSw1Ni41NC0xMjYuMDQsMTI2LjAzOC0xMjYuMDRjNjkuNDk5LDAsMTI2LjA0LDU2LjU0MSwxMjYuMDQsMTI2LjA0VjIwNC44OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDEwLjYzLDIwNC44OUgxMDEuMzcxYy0yMC41MDUsMC0zNy4xODgsMTYuNjgzLTM3LjE4OCwzNy4xODh2MjMyLjczNGMwLDIwLjUwNSwxNi42ODMsMzcuMTg4LDM3LjE4OCwzNy4xODhINDEwLjYzCgkJCWMyMC41MDUsMCwzNy4xODctMTYuNjgzLDM3LjE4Ny0zNy4xODlWMjQyLjA3OEM0NDcuODE3LDIyMS41NzMsNDMxLjEzNSwyMDQuODksNDEwLjYzLDIwNC44OXogTTQzMC41MDUsNDc0LjgxMQoJCQljMCwxMC45Ni04LjkxNiwxOS44NzYtMTkuODc1LDE5Ljg3NkgxMDEuMzcxYy0xMC45NiwwLTE5Ljg3Ni04LjkxNi0xOS44NzYtMTkuODc2VjI0Mi4wNzhjMC0xMC45Niw4LjkxNi0xOS44NzYsMTkuODc2LTE5Ljg3NgoJCQlINDEwLjYzYzEwLjk1OSwwLDE5Ljg3NSw4LjkxNiwxOS44NzUsMTkuODc2VjQ3NC44MTF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI4NS4xMSwzNjkuNzgxYzEwLjExMy04LjUyMSwxNS45OTgtMjAuOTc4LDE1Ljk5OC0zNC4zNjVjMC0yNC44NzMtMjAuMjM2LTQ1LjEwOS00NS4xMDktNDUuMTA5CgkJCWMtMjQuODc0LDAtNDUuMTEsMjAuMjM2LTQ1LjExLDQ1LjEwOWMwLDEzLjM4Nyw1Ljg4NSwyNS44NDQsMTYsMzQuMzY3bC05LjczMSw0Ni4zNjJjLTAuNTM1LDIuNTU0LDAuMTA4LDUuMjExLDEuNzUyLDcuMjM2CgkJCWMxLjY0NSwyLjAyMyw0LjExMywzLjIsNi43MiwzLjJoNjAuNzM4YzIuNjA4LDAsNS4wNzYtMS4xNzYsNi43MTktMy4yYzEuNjQzLTIuMDI2LDIuMjg2LTQuNjgzLDEuNzUxLTcuMjM0TDI4NS4xMSwzNjkuNzgxegoJCQkgTTI3MC44NTEsMzU4LjgyYy0zLjA0LDEuOTM2LTQuNTY1LDUuNTUzLTMuODI0LDkuMDgxbDguNjgsNDEuMzY2aC0zOS40MTVsOC42ODItNDEuMzYzYzAuNzQtMy41MjktMC43ODItNy4xNDYtMy44MjQtOS4wODEKCQkJYy04LjEwOC01LjE2LTEyLjk0OC0xMy45MTEtMTIuOTQ4LTIzLjQwNmMwLTE1LjMyNywxMi40NjktMjcuNzk2LDI3Ljc5Ny0yNy43OTZjMTUuMzI3LDAsMjcuNzk2LDEyLjQ2OSwyNy43OTYsMjcuNzk2CgkJCUMyODMuNzk3LDM0NC45MTQsMjc4Ljk1NywzNTMuNjYzLDI3MC44NTEsMzU4LjgyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Pfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk0LjkzMzU5NCAwaC00NzcuODY3MTg4Yy05LjQyMTg3NS4wMDc4MTI1LTE3LjA1ODU5MzUgNy42NDQ1MzEtMTcuMDY2NDA2IDE3LjA2NjQwNnY1OS43MzQzNzVjLjAwNzgxMjUgOS40MjE4NzUgNy42NDQ1MzEgMTcuMDU0Njg4IDE3LjA2NjQwNiAxNy4wNjY0MDdoMTAuODk0NTMybC0yNi44MzU5MzggNDYuOTY0ODQzYy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE5NTMxIDEuNTI3MzQ0IDIuNjI4OTA3IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45NjQ4NDRjLTEuNTA3ODEyIDIuNjQwNjI1LTEuNSA1Ljg4NjcxOS4wMjczNDQgOC41MTU2MjUgMS41MjczNDQgMi42MzI4MTMgNC4zMzk4NDQgNC4yNSA3LjM4MjgxMiA0LjI1aDE5LjQyNTc4MmwtMjYuODM1OTM4IDQ2Ljk2ODc1Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODI4MTMuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjI4OTA2IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNyA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEyIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNTM5MDZoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEzIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNiA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoNDk0LjkyOTY4OGMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDk0IDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MTcxODcgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYyODkwNiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45NjQ4NDRoMTkuNDI1NzgyYzMuMDQyOTY4LS4wMDM5MDYgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNTM5MDYgMS41MjczNDQtMi42Mjg5MDYgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY0ODQ0aDE5LjQyNTc4MmMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDkzIDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYzMjgxMiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45Njg3NWgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYxNzE4NyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjI4OTA2IDEuNTM1MTU2LTUuODc1LjAyNzM0NC04LjUxNTYyNWwtMjYuODM1OTM4LTQ2Ljk2NDg0NGgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYyMTA5MyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjMyODEyIDEuNTM1MTU2LTUuODc4OTA2LjAyNzM0NC04LjUxOTUzMWwtMjYuODM1OTM4LTQ2Ljk2NDg0M2gxMC44OTQ1MzJjOS40MjE4NzUtLjAxMTcxOSAxNy4wNTQ2ODctNy42NDQ1MzIgMTcuMDY2NDA2LTE3LjA2NjQwN3YtNTkuNzM0Mzc1Yy0uMDExNzE5LTkuNDIxODc1LTcuNjQ0NTMxLTE3LjA1NDY4NzItMTcuMDY2NDA2LTE3LjA2NjQwNnptLTQ0Ny4zMTY0MDYgOTMuODY3MTg4aDQ2LjI1djQyLjY2Nzk2OGgtNzAuNjI4OTA3em0zMTkuMzE2NDA2IDB2NDIuNjY3OTY4aC0yMjEuODY3MTg4di00Mi42Njc5Njh6bTY4LjI2NTYyNSAwdjQyLjY2Nzk2OGgtMTcuMDY2NDA3di00Mi42Njc5Njh6bS0yOTAuMTMyODEzIDM0MS4zMzIwMzF2LTQyLjY2NDA2M2gyMjEuODY3MTg4djQyLjY2NDA2M3ptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY3OTY5aC0yMjEuODY3MTg4di00Mi42Njc5Njl6bTAtMjU2aC0yMjEuODY3MTg4di00Mi42NjQwNjNoMjIxLjg2NzE4OHptMTcuMDY2NDA2LTQyLjY2NDA2M2gxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bS0yMzguOTMzNTk0IDE2Mi4xMzI4MTN2LTQyLjY2Nzk2OWgyMjEuODY3MTg4djQyLjY2Nzk2OXptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY0MDYzaC0yMjEuODY3MTg4di00Mi42NjQwNjN6bS0yMjEuODY3MTg4LTc2LjgwMDc4MXYtNDIuNjY3OTY5aDIyMS44NjcxODh2NDIuNjY3OTY5em0tMTcuMDY2NDA2LTU5LjczNDM3NWgtMTcuMDY2NDA2di00Mi42NjQwNjNoMTcuMDY2NDA2em0wIDE3LjA2NjQwNnY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0yNTYgMGgxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bTAtMTcuMDcwMzEydi00Mi42NjQwNjNoMTcuMDY2NDA2djQyLjY2NDA2M3ptMC01OS43MzA0Njl2LTQyLjY2Nzk2OWgxNy4wNjY0MDZ2NDIuNjY3OTY5em0wLTU5LjczNDM3NXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTM0LjEzMjgxMi00Mi42Njc5NjloMTcuMDY2NDA3djQyLjY2Nzk2OWgtMTcuMDY2NDA3em0wLTE3LjA2NjQwNnYtNDIuNjY0MDYzaDE3LjA2NjQwN3Y0Mi42NjQwNjN6bS0xNy4wNjY0MDYtNTkuNzMwNDY5aC0xNy4wNjY0MDZ2LTQyLjY2Nzk2OGgxNy4wNjY0MDZ6bS0yNzMuMDY2NDA2IDBoLTE3LjA2NjQwNnYtNDIuNjY3OTY4aDE3LjA2NjQwNnptLTgwLjM4MjgxMiAxNy4wNjY0MDZoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzMwNDY5aDQ2LjI1djQyLjY2Nzk2OWgtNzAuNjI4OTA3em0wIDU5LjczNDM3NWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptMCA1OS43MzQzNzVoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzM0Mzc1aDQ2LjI1djQyLjY2NDA2M2gtNzAuNjI4OTA3em0wIDU5LjczMDQ2OWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptNjMuMzE2NDA2IDQyLjY2Nzk2OXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTI3My4wNjY0MDYgMHYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTEwNC43NTc4MTIgMGgtNzAuNjI1di00Mi42Njc5NjloNDYuMjV6bTAtNTkuNzM0Mzc1aC03MC42MjV2LTQyLjY2NDA2M2g0Ni4yNXptMC01OS43MzQzNzVoLTcwLjYyNXYtNDIuNjY0MDYzaDQ2LjI1em0wLTU5LjczMDQ2OWgtNzAuNjI1di00Mi42Njc5NjloMTcuMDY2NDA3djE3LjA2NjQwNmMwIDQuNzE0ODQ0IDMuODIwMzEyIDguNTM1MTU3IDguNTM1MTU2IDguNTM1MTU3IDQuNzEwOTM3IDAgOC41MzEyNS0zLjgyMDMxMyA4LjUzMTI1LTguNTM1MTU3di0xNy4wNjY0MDZoMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42Njc5NjloMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42NjQwNjNoMTIuMTE3MTg3em0wLTU5LjczMDQ2OWgtMzYuNDkyMTg3di00Mi42Njc5NjhoMTIuMTE3MTg3em0tMTkuNDI1NzgxLTU5LjczNDM3NWgtNDUyLjI2NTYyNXYtNTkuNzM0Mzc1aDQ3Ny44NjcxODhsLjAwNzgxMiA1OS43MzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01OS43MzQzNzUgNDIuNjY3OTY5aC0xNy4wNjY0MDZjLTQuNzE0ODQ0IDAtOC41MzUxNTcgMy44MjAzMTItOC41MzUxNTcgOC41MzEyNSAwIDQuNzE0ODQzIDMuODIwMzEzIDguNTM1MTU2IDguNTM1MTU3IDguNTM1MTU2aDE3LjA2NjQwNmM0LjcxMDkzNyAwIDguNTMxMjUtMy44MjAzMTMgOC41MzEyNS04LjUzNTE1NiAwLTQuNzEwOTM4LTMuODIwMzEzLTguNTMxMjUtOC41MzEyNS04LjUzMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ1LjA2NjQwNiA0Mi42Njc5NjloLTUxLjE5OTIxOGMtNC43MTQ4NDQgMC04LjUzNTE1NyAzLjgyMDMxMi04LjUzNTE1NyA4LjUzMTI1IDAgNC43MTQ4NDMgMy44MjAzMTMgOC41MzUxNTYgOC41MzUxNTcgOC41MzUxNTZoNTEuMTk5MjE4YzQuNzE0ODQ0IDAgOC41MzUxNTYtMy44MjAzMTMgOC41MzUxNTYtOC41MzUxNTYgMC00LjcxMDkzOC0zLjgyMDMxMi04LjUzMTI1LTguNTM1MTU2LTguNTMxMjV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Wfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMjQzLjc4M2MtLjk1MSAwLTEuODY4LjE0MS0yLjczOS4zODlsLS4wMDItLjAwNy0yOC43MjIgOC4xODdjLTUuMzExIDEuNTE0LTguMzkgNy4wNDctNi44NzYgMTIuMzU4IDEuMjUzIDQuMzk2IDUuMjU4IDcuMjYxIDkuNjEyIDcuMjYxLjkwNyAwIDEuODMtLjEyNSAyLjc0Ni0uMzg1bDE1Ljk4MS00LjU1NHYzNS40MmwtMTI0IDM1LjM0NXYtMzUuNDJsMjEuNDY0LTYuMTE4YzUuMzExLTEuNTE0IDguMzktNy4wNDcgNi44NzYtMTIuMzU4cy03LjA0NS04LjM4Ny0xMi4zNTgtNi44NzZsLTI4LjcyMyA4LjE4Ny4wMDEuMDA3Yy00LjE4OSAxLjE5My03LjI2IDUuMDM5LTcuMjYgOS42MXYxMjcuMTk5Yy04LjM2My02LjI5My0xOC43NTItMTAuMDI4LTMwLTEwLjAyOC0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDA2bDEyNC0zNS4zNDV2NTcuNzMzYy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xNjcuMTcyYzAtNS41MjMtNC40NzctMTAtMTAtMTB6bS0xODQgMjQ4LjIxN2MtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xNDQtNDEuMDQ1Yy0xNi41NDIgMC0zMC0xMy40NTgtMzAtMzBzMTMuNDU4LTMwIDMwLTMwIDMwIDEzLjQ1OCAzMCAzMC0xMy40NTggMzAtMzAgMzB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUwOC4wMTMgMi4wMWMtMi41MTEtMS44ODktNS43NjMtMi40ODctOC43ODItMS42MTlsLTEwNC40MDggMzAuMDg5Yy00LjI4MiAxLjIzNC03LjIzMSA1LjE1Mi03LjIzMSA5LjYwOXYxMjcuMTk5Yy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDNsOTcuMTc3LTI4LjAwNWM0LjI4Mi0xLjIzNCA3LjIzMS01LjE1MiA3LjIzMS05LjYwOXYtNTYuMjE3YzAtMy4xNDItMS40NzctNi4xMDEtMy45ODctNy45OXptLTE1MC40MjEgMjM1LjI1MWMtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xMzQuNDA4LTE3OC41NjktODQuNDA4IDI0LjMyNXYtMzUuNDAzbDg0LjQwOC0yNC4zMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MS41OTEgMzQ4Ljc2Mi00OC4yODgtNy4wMTctMjEuNTk1LTQzLjc1NmMtMS42ODUtMy40MTMtNS4xNjEtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0yMS41OTUgNDMuNzU2LTQ4LjI4OCA3LjAxN2MtMy43NjcuNTQ3LTYuODk2IDMuMTg2LTguMDczIDYuODA2cy0uMTk1IDcuNTk0IDIuNTMxIDEwLjI1MWwzNC45NDEgMzQuMDYtOC4yNDkgNDguMDkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNiA3LjE2MiAyLjUzMiAxMC41MzEuNzYxbDQzLjE5LTIyLjcwNyA0My4xOSAyMi43MDZjMS40NjMuNzcgMy4wNjEgMS4xNDkgNC42NTIgMS4xNDkgMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzNyA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtOC4yNDktNDguMDkzIDM0Ljk0MS0zNC4wNmMyLjcyNi0yLjY1NyAzLjcwNy02LjYzMSAyLjUzMS0xMC4yNTFzLTQuMzA0LTYuMjU4LTguMDcxLTYuODA1em0tNDcuMTI0IDQwLjQ2NGMtMi4zNTcgMi4yOTctMy40MzMgNS42MDctMi44NzYgOC44NTFsNS43MTIgMzMuMzA0LTI5LjkwOS0xNS43MjRjLTIuOTEzLTEuNTMyLTYuMzkzLTEuNTMyLTkuMzA3IDBsLTI5LjkwOSAxNS43MjQgNS43MTItMzMuMzA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MWwtMjQuMTk2LTIzLjU4NiAzMy40MzktNC44NTljMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDE0Ljk1NS0zMC4zMDEgMTQuOTU0IDMwLjMwMWMxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDMzLjQzOSA0Ljg1OXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjIgOTAuNzA2LTYuNjIgMzguNTkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNyA3LjE2MyAyLjUzMyAxMC41MzEuNzYxbDM0LjY1OC0xOC4yMjEgMzQuNjU5IDE4LjIyMWMxLjQ2My43NjkgMy4wNjEgMS4xNDggNC42NTIgMS4xNDggMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzOCA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtNi42Mi0zOC41OTMgMjguMDQtMjcuMzMxYzIuNzI2LTIuNjU3IDMuNzA3LTYuNjMxIDIuNTMxLTEwLjI1MXMtNC4zMDYtNi4yNTgtOC4wNzMtNi44MDZsLTM4Ljc1LTUuNjMxLTE3LjMyOC0zNS4xMTJjLTEuNjg0LTMuNDEzLTUuMTYtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0xNy4zMjkgMzUuMTEzLTM4Ljc1IDUuNjMxYy0zLjc2Ny41NDctNi44OTYgMy4xODYtOC4wNzMgNi44MDZzLS4xOTUgNy41OTQgMi41MzEgMTAuMjUxem0yNC4zMy0zMC45ODNjMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDEwLjY4OC0yMS42NTcgMTAuNjg4IDIxLjY1N2MxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDIzLjkgMy40NzMtMTcuMjkyIDE2Ljg1OGMtMi4zNTcgMi4yOTgtMy40MzMgNS42MDgtMi44NzYgOC44NTJsNC4wODMgMjMuODA0LTIxLjM3Ny0xMS4yMzhjLTEuNDU3LS43NjYtMy4wNTUtMS4xNDktNC42NTMtMS4xNDktMS41OTkgMC0zLjE5Ny4zODMtNC42NTMgMS4xNDlsLTIxLjM3NyAxMS4yMzggNC4wODMtMjMuODA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MmwtMTcuMjk2LTE2Ljg1OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0IDg2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMTU2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzQgMTI2LjMwNmgtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoMTBjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NCAxNDYuMzA2aDEwYzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwaC0xMGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3NyAxMCAxMCAxMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYyIDI4NC4zMWMyLjYzIDAgNS4yMS0xLjA3IDcuMDctMi45M3MyLjkzLTQuNDQgMi45My03LjA3YzAtMi42NC0xLjA3LTUuMjEtMi45My03LjA4LTEuODYtMS44Ni00LjQ0LTIuOTItNy4wNy0yLjkycy01LjIxIDEuMDYtNy4wNyAyLjkyYy0xLjg2IDEuODctMi45MyA0LjQ0LTIuOTMgNy4wOCAwIDIuNjMgMS4wNyA1LjIxIDIuOTMgNy4wN3M0LjQ0IDIuOTMgNy4wNyAyLjkzeiIvPgogICAgPC9nPgo8L3N2Zz4=",Bfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwNS40IDUwNS40Ij4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzNy4xLDIzMy40NWMxNC44LTEwLjQsMjQuNi0yNy43LDI0LjYtNDcuMmMwLTMxLjktMjUuOC01Ny43LTU3LjctNTcuN2MtMzEuOSwwLTU3LjcsMjUuOC01Ny43LDU3LjcKCQkJYzAsMTkuNSw5LjcsMzYuOCwyNC42LDQ3LjJjLTEyLjcsNC40LTI0LjMsMTEuMi0zNC4xLDIwYy0xMy41LTExLjUtMjkuNC0yMC4zLTQ2LjgtMjUuNWMyMS4xLTEyLjgsMzUuMy0zNi4xLDM1LjMtNjIuNgoJCQljMC00MC40LTMyLjctNzMuMS03My4xLTczLjFjLTQwLjQsMC03My4xLDMyLjgtNzMuMSw3My4xYzAsMjYuNSwxNC4xLDQ5LjgsMzUuMyw2Mi42Yy0xNy4yLDUuMi0zMi45LDEzLjktNDYuMywyNS4yCgkJCWMtOS44LTguNi0yMS4yLTE1LjMtMzMuNy0xOS42YzE0LjgtMTAuNCwyNC42LTI3LjcsMjQuNi00Ny4yYzAtMzEuOS0yNS44LTU3LjctNTcuNy01Ny43cy01Ny43LDI1LjgtNTcuNyw1Ny43CgkJCWMwLDE5LjUsOS43LDM2LjgsMjQuNiw0Ny4yQzI4LjUsMjQ3LjI1LDAsMjg0Ljk1LDAsMzI5LjI1djYuNmMwLDAuMiwwLjIsMC40LDAuNCwwLjRoMTIyLjNjLTAuNyw1LjUtMS4xLDExLjItMS4xLDE2Ljl2Ni44CgkJCWMwLDI5LjQsMjMuOCw1My4yLDUzLjIsNTMuMmgxNTVjMjkuNCwwLDUzLjItMjMuOCw1My4yLTUzLjJ2LTYuOGMwLTUuNy0wLjQtMTEuNC0xLjEtMTYuOUg1MDVjMC4yLDAsMC40LTAuMiwwLjQtMC40di02LjYKCQkJQzUwNS4yLDI4NC44NSw0NzYuOCwyNDcuMTUsNDM3LjEsMjMzLjQ1eiBNMzYyLjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43CgkJCWMwLDIyLjctMTguMyw0MS4yLTQwLjksNDEuN2MtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzM4MC41LDIyNy40NSwzNjIuMywyMDguOTUsMzYyLjMsMTg2LjE1eiBNMTk0LjksMTY1LjM1CgkJCWMwLTMxLjUsMjUuNi01Ny4xLDU3LjEtNTcuMXM1Ny4xLDI1LjYsNTcuMSw1Ny4xYzAsMzAuNC0yMy45LDU1LjMtNTMuOCw1N2MtMS4xLDAtMi4yLDAtMy4zLDBjLTEuMSwwLTIuMiwwLTMuMywwCgkJCUMyMTguOCwyMjAuNjUsMTk0LjksMTk1Ljc1LDE5NC45LDE2NS4zNXogTTU5LjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43YzAsMjIuNy0xOC4zLDQxLjItNDAuOSw0MS43CgkJCWMtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzc3LjYsMjI3LjQ1LDU5LjMsMjA4Ljk1LDU5LjMsMTg2LjE1eiBNMTI1LjUsMzIwLjE1SDE2LjJjNC41LTQyLjYsNDAuNS03Niw4NC4yLTc2LjMKCQkJYzAuMiwwLDAuNCwwLDAuNiwwczAuNCwwLDAuNiwwYzIwLjgsMC4xLDM5LjgsNy44LDU0LjUsMjAuM0MxNDEuNywyNzkuNzUsMTMxLDI5OC45NSwxMjUuNSwzMjAuMTV6IE0zNjYuOCwzNTkuOTUKCQkJYzAsMjAuNS0xNi43LDM3LjItMzcuMiwzNy4yaC0xNTVjLTIwLjUsMC0zNy4yLTE2LjctMzcuMi0zNy4ydi02LjhjMC02Mi4xLDQ5LjYtMTEyLjksMTExLjMtMTE0LjdjMS4xLDAuMSwyLjMsMC4xLDMuNCwwLjEKCQkJczIuMywwLDMuNC0wLjFjNjEuNywxLjgsMTExLjMsNTIuNiwxMTEuMywxMTQuN1YzNTkuOTV6IE0zNzguNywzMjAuMTVjLTUuNS0yMS4xLTE2LTQwLTMwLjMtNTUuNmMxNC44LTEyLjgsMzQtMjAuNSw1NS0yMC43CgkJCWMwLjIsMCwwLjQsMCwwLjYsMHMwLjQsMCwwLjYsMGM0My43LDAuMyw3OS43LDMzLjcsODQuMiw3Ni4zSDM3OC43eiIvPgogICAgPC9nPgo8L3N2Zz4K",Jfe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Rfe="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAxNjBoLTMydi04MGMwLTguODIyLTcuMTc4LTE2LTE2LTE2aC0zMnYtNDBjMC0xMy4yMzMtMTAuNzY3LTI0LTI0LTI0aC0yMjRjLTEzLjIzMyAwLTI0IDEwLjc2Ny0yNCAyNHY0MGgtMzJjLTguODIyIDAtMTYgNy4xNzgtMTYgMTZ2ODBoLTMyYy0yMi4wNTYgMC00MCAxNy45NDQtNDAgNDB2MTc2YzAgMjIuMDU2IDE3Ljk0NCA0MCA0MCA0MGg4MHY3MmMwIDEzLjIzMyAxMC43NjcgMjQgMjQgMjRoMjI0YzEzLjIzMyAwIDI0LTEwLjc2NyAyNC0yNHYtNzJoODBjMjIuMDU2IDAgNDAtMTcuOTQ0IDQwLTQwdi0xNzZjMC0yMi4wNTYtMTcuOTQ0LTQwLTQwLTQwem0tNDgtODB2ODBoLTMydi04MHptLTI4OC01NmMwLTQuNDExIDMuNTg5LTggOC04aDIyNGM0LjQxMSAwIDggMy41ODkgOCA4djEzNmgtMjQwYzAtMS42MzUgMC0xMzAuMjExIDAtMTM2em0tNDggNTZoMzJ2ODBoLTMyem0yODggNDA4YzAgNC40MTEtMy41ODkgOC04IDhoLTIyNGMtNC40MTEgMC04LTMuNTg5LTgtOHYtMTM2aDI0MHptMTIwLTExMmMwIDEzLjIzMy0xMC43NjcgMjQtMjQgMjRoLTgwdi00OGgxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOGMtMjguNjU3IDAtMjkwLjg4MyAwLTMwNCAwLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDhoMTZ2NDhoLTgwYy0xMy4yMzMgMC0yNC0xMC43NjctMjQtMjR2LTE3NmMwLTEzLjIzMyAxMC43NjctMjQgMjQtMjRoNDMyYzEzLjIzMyAwIDI0IDEwLjc2NyAyNCAyNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDU2IDE5MmMtMTMuMjMzIDAtMjQgMTAuNzY3LTI0IDI0czEwLjc2NyAyNCAyNCAyNCAyNC0xMC43NjcgMjQtMjQtMTAuNzY3LTI0LTI0LTI0em0wIDMyYy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTIgMTkyYy0xMy4yMzMgMC0yNCAxMC43NjctMjQgMjRzMTAuNzY3IDI0IDI0IDI0IDI0LTEwLjc2NyAyNC0yNC0xMC43NjctMjQtMjQtMjR6bTAgMzJjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCAzNzZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0MTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0NTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Ffe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NzMuNTc0IDI1Mi40MzJoLTczLjE4NHYtNDMuNzYxYzAtMTEuNDczLTkuMzM0LTIwLjgwNy0yMC44MDctMjAuODA3LTkuODg2IDAtMzQuMjk1IDAtNDQuMzAyIDB2LTE3Ljg0MWMwLTEyLjM5OS0xMC4wODctMjIuNDg2LTIyLjQ4Ni0yMi40ODZoLTE3LjU5NWwxNC43MjQtNDcuNTM1YzE2Ljc1OS42OTIgMzAuNTM5LTEyLjc1IDMwLjUzOS0yOS4yODQgMC0xNi4xNjQtMTMuMTUxLTI5LjMxNS0yOS4zMTUtMjkuMzE1LTI5LjI2OCAwLTQwLjQ1NSAzOC41MS0xNS41NDEgNTQuMTU0bC0xNi4xMDEgNTEuOTc5aC0zMC4xMzNjLTEwLjU3NiAwLTE5LjgzMSA3LjUxNC0yMi4wMDYgMTcuODY2LS4xMDYuNTA3LS4xNiAxLjAyNC0uMTYgMS41NDJ2MjAuOTE5aC0zOC4xNDZ2LTE4LjgwMWMwLTguNjczLTcuMDU3LTE1LjczLTE1LjczLTE1LjczaC0xLjM3OXYtMTkuNTcyYzkuNDY5LS4yMDMgMTcuMTEzLTcuOTUzIDE3LjExMy0xNy40N3YtMTUuNjE2YzAtOS41MTctNy42NDQtMTcuMjY3LTE3LjExMy0xNy40N3YtNDMuNjk5YzAtMjEuNjk1LTE3LjY1LTM5LjM0Ni0zOS4zNDYtMzkuMzQ2aC01MS42NzdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NXMzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg1MS42NzhjMTMuNDI5IDAgMjQuMzU1IDEwLjkyNiAyNC4zNTUgMjQuMzU1djQzLjY4MmgtMzcuOTU3di0yMi41ODRjMC00LjE0LTMuMzU2LTcuNDk1LTcuNDk1LTcuNDk1aC05Ni4ydi0zNy45NTdoMzUuNjM4YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTUtNy40OTUtNy40OTUtNy40OTVoLTQzLjEzM2MtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djUyLjk0N2MwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoOTYuMnYxNS4xMDljLTkuNDY4LjIwMy0xNy4xMTIgNy45NTQtMTcuMTEyIDE3LjQ3djE1LjYxNmMwIDkuNTE2IDcuNjQ0IDE3LjI2NyAxNy4xMTIgMTcuNDd2MTkuNTcyaC0xLjM3OWMtOC42NzMgMC0xNS43MyA3LjA1Ny0xNS43MyAxNS43M3YxOC44MDFoLTIyLjU1NWMtMTEuNDczIDAtMjAuODA3IDkuMzM0LTIwLjgwNyAyMC44MDd2Mi40ODlsLTMzLjQwMiA3LjU4OWMtMy40MTMuNzc1LTUuODM1IDMuODA5LTUuODM1IDcuMzA5djEwNy4yNDNjMCAzLjQ5OSAyLjQyMSA2LjUzMyA1LjgzMyA3LjMwOGwzMy40MDQgNy41OTh2Mi40ODdjMCAxMS40NzMgOS4zMzQgMjAuODA3IDIwLjgwNyAyMC44MDdoNi40MjR2MjcuNzk5aC0xNS4xMjdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NSAwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoMzMzLjg0OWMxLjM3OCAwIDIuNDk4IDEuMTIxIDIuNDk4IDIuNDk4djI1LjUyYy0xNS44MzYtMi44My0zMi40MTguMTAzLTQ2LjcwNyA4LjgxMS0xNi43NTQgMTAuMjExLTM3LjU3IDEwLjIxMi01NC4zMjQgMC0yMS41NjctMTMuMTQ0LTQ4LjM2MS0xMy4xNDUtNjkuOTI4IDAtMTYuNzU0IDEwLjIxMS0zNy41NyAxMC4yMTItNTQuMzI0IDAtMjEuNTY3LTEzLjE0NC00OC4zNjEtMTMuMTQ1LTY5LjkyOCAwLTE2Ljc1NCAxMC4yMTItMzcuNTcgMTAuMjEyLTU0LjMyNCAwbC0yNy40NjktMTYuNzQydi0yMC4wODdoMTAuNjc2YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTYtNy40OTUtNy40OTUtNy40OTVoLTE4LjE3MmMtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djk3LjU0OWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDQ5Ny4wMDljNC4xNCAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1IDAtODguNTA2IDAtMTE4LjAwOSAwLTIxMy40ODcuMDAxLTIxLjE4OC0xNy4yMzctMzguNDI2LTM4LjQyNS0zOC40MjZ6bS0xNjIuNDI1LTE5Ni4wMzdjNy44OTggMCAxNC4zMjUgNi40MjYgMTQuMzI1IDE0LjMyNHMtNi40MjYgMTQuMzI1LTE0LjMyNSAxNC4zMjVjLTcuODk4IDAtMTQuMzI0LTYuNDI2LTE0LjMyNC0xNC4zMjVzNi40MjYtMTQuMzI0IDE0LjMyNC0xNC4zMjR6bS0yNjcuNjA0IDI3Ni40NC0yNC4yNDctNS41MTV2LTk1LjI3N2wyNC4yNDctNS41MDl6bTE5OC42NTMtMTY0Ljk3NGMuOTQ3LTMuMTI1IDMuODY3LTUuMzMzIDcuMTc2LTUuMzMzaDYzLjQyYzQuMTMzIDAgNy40OTUgMy4zNjIgNy40OTUgNy40OTV2MTcuODQxaC03OC4wOTF6bS0xNDAuMzA1LTUxLjU2OXYtMTUuNjE2YzAtMS4zNzggMS4xMjEtMi40OTggMi40OTgtMi40OThoNjcuMTg1YzEuMzc4IDAgMi40OTggMS4xMjEgMi40OTggMi40OTh2MTUuNjE2YzAgMS4zNzgtMS4xMjEgMi40OTgtMi40OTggMi40OThoLTY3LjE4NWMtMS4zNzcuMDAxLTIuNDk4LTEuMTItMi40OTgtMi40OTh6bTU1LjA2OSAxNy40ODl2MTkuNTUzaC0zNy45NTd2LTE5LjU1M3ptLTU1LjA2NiAzNS4yODNjMC0uNDA3LjMzMi0uNzM5LjczOS0uNzM5aDcwLjY5NmMuNDA3IDAgLjczOS4zMzIuNzM5LjczOXYxOC44MDFoLTcyLjE3NXYtMTguODAxem0tLjAwMyAzMy43OTFoMjQwLjE0OHYxNTMuNjU2aC0yNDAuMTQ4em0tMzcuNTQyIDE1My42NTZjLTMuMjA3IDAtNS44MTYtMi42MDktNS44MTYtNS44MTZ2LTE0Mi4wMjNjMC0zLjIwNyAyLjYwOS01LjgxNiA1LjgxNi01LjgxNmgyMi41NTF2MTUzLjY1NmMtNS4yMTEtLjAwMS0xNy40ODgtLjAwMS0yMi41NTEtLjAwMXptMjk5LjM3MiA0Mi43OWgtMjc3Ljk1N3YtMjcuNzk5aDI3Ny45NTZ2MjcuNzk5em03LjQ5NS00Mi43OTRjLS4wMjkgMC0uMDU4LjAwNC0uMDg3LjAwNGgtMTQuMDk5di0xNTMuNjU2aDIyLjU1MWMzLjIwNyAwIDUuODE2IDIuNjA5IDUuODE2IDUuODE2djE0Mi4wMjRjMCAzLjIwNy0yLjYwOSA1LjgxNi01LjgxNiA1LjgxNmgtOC4yNzhjLS4wMjkgMC0uMDU4LS4wMDQtLjA4Ny0uMDA0em0xMjUuNzkxIDE0MC4zNDNjLTkuMzc5IDAtNDcxLjEwNyAwLTQ4Mi4wMTkgMHYtNDQuOTE2bDE5LjY2NyAxMS45ODdjMjEuNTY3IDEzLjE0NSA0OC4zNjEgMTMuMTQ1IDY5LjkyOCAwIDE2Ljc1NC0xMC4yMTEgMzcuNTctMTAuMjEyIDU0LjMyNCAwIDIxLjU2OCAxMy4xNDUgNDguMzYxIDEzLjE0NSA2OS45MjggMCAxNi43NTQtMTAuMjExIDM3LjU3LTEwLjIxMiA1NC4zMjQgMCAyMS41NjggMTMuMTQ1IDQ4LjM2MSAxMy4xNDUgNjkuOTI4IDAgMTcuMDk3LTEwLjQyMSAzNy45NDEtOS45ODYgNTQuMzI0IDAgMjEuNTY3IDEzLjE0NCA0OC4zNjIgMTMuMTQ0IDY5LjkyOCAwbDE5LjY2Ny0xMS45ODdjLjAwMSAxMC41NTYuMDAxIDIyLjM4LjAwMSA0NC45MTZ6bTAtNjIuNDcyYy0yOS43ODkgMTguMTU2LTMwLjM1MyAxOC44MzYtMzYuNTI3IDIxLjEzMnYtNDQuMjU3YzAtNC4xMzktMy4zNTYtNy40OTUtNy40OTUtNy40OTVzLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djQ3LjQyN2MtMTkuNDcyIDEuMTcyLTI4Ljk4NC03LjY4OC0zOC41MDYtMTEuODM2di0zMC4wNTRjMC05LjY0My03Ljg0Ni0xNy40ODktMTcuNDg5LTE3LjQ4OWgtMTAuNzgzdi0yNy43OTljMTMuMzQyIDAgMjEuNjc2LTEwLjA0OSAyMS42NzYtMjAuODA3di0zMS43NTVoNDUuMTAydjYyLjMzMWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1czcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1di02OS44MjZjMC00LjEzOS0zLjM1Ni03LjQ5NS03LjQ5NS03LjQ5NWgtNTIuNTk3di0zNi41MjdoNzMuMTg0YzEyLjkyMyAwIDIzLjQzNiAxMC41MTMgMjMuNDM2IDIzLjQzNXYxNDMuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxMS4wMjQgMjI3LjE1M2gtNzkuNzI2Yy00LjE0IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTV2OTAuMDdjMCA0LjE0IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDc5LjcyNmM0LjE0IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTV2LTkwLjA3Yy4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6bS03LjQ5NSA5MC4wN2gtNjQuNzM1di03NS4wNzloNjQuNzM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTIuNjM1IDI0MC45N2gtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1IDAgNC4xNCAzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg2NC41MDVjNC4xMzkgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NS4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMi42MzUgMjcyLjE4OGgtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1czMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDY0LjUwNWM0LjEzOSAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1cy0zLjM1NS03LjQ5NS03LjQ5NS03LjQ5NXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzEyLjYzNSAzMDMuNDA2aC02NC41MDVjLTQuMTM5IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTVzMy4zNTYgNy40OTUgNy40OTUgNy40OTVoNjQuNTA1YzQuMTM5IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTVzLTMuMzU1LTcuNDk1LTcuNDk1LTcuNDk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjEuODk5IDI4Ny4xNzloNy41NDhsLTIuOTA0IDcuNDMyYy0xLjUwNyAzLjg1NS4zOTcgOC4yMDIgNC4yNTMgOS43MDkuODk2LjM1IDEuODE5LjUxNiAyLjcyNi41MTYgMi45OTcgMCA1LjgyNi0xLjgwOSA2Ljk4My00Ljc2OWw2LjktMTcuNjU1Yy45MDItMi4zMDcuNjA2LTQuOTEtLjc5MS02Ljk1NXMtMy43MTMtMy4yNjgtNi4xOS0zLjI2OGgtNy41NDhsMi45MDQtNy40MzJjMS41MDctMy44NTUtLjM5Ny04LjIwMi00LjI1My05LjcwOS0zLjg1NS0xLjUwOS04LjIwMy4zOTYtOS43MDkgNC4yNTNsLTYuOSAxNy42NTVjLS45MDIgMi4zMDctLjYwNiA0LjkxLjc5MSA2Ljk1NSAxLjM5NiAyLjA0NCAzLjcxMyAzLjI2OCA2LjE5IDMuMjY4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Gfe="PHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTk0LjcyNyA3My43MDhhNi43NSA2Ljc1IDAgMSAwIDYuNzUgNi43NSA2Ljc1NiA2Ljc1NiAwIDAgMCAtNi43NS02Ljc1em0wIDEwYTMuMjUgMy4yNSAwIDEgMSAzLjI1LTMuMjUgMy4yNTQgMy4yNTQgMCAwIDEgLTMuMjUgMy4yNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuMDgxIDczLjcwOGE2Ljc1IDYuNzUgMCAxIDAgNi43NSA2Ljc1IDYuNzU3IDYuNzU3IDAgMCAwIC02Ljc1LTYuNzV6bTAgMTBhMy4yNSAzLjI1IDAgMSAxIDMuMjUtMy4yNSAzLjI1NCAzLjI1NCAwIDAgMSAtMy4yNSAzLjI1eiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjY0Ljk2NiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9Ijc3LjU5MSIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjkwLjIxNiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjEwMi44NDEiIGN5PSI0OC4wMjEiIHI9IjMiLz4KICAgICAgICA8cGF0aCBkPSJtMTIxLjUgMzMuNWgtMTE1YTEuNzUxIDEuNzUxIDAgMCAwIC0xLjc1IDEuNzV2NTcuNWExLjc1MSAxLjc1MSAwIDAgMCAxLjc1IDEuNzVoMTUuOTQydjguMjVhMS43NTEgMS43NTEgMCAwIDAgMS43NSAxLjc1aDEwYTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoNTYuMTE2djguMjVhMS43NSAxLjc1IDAgMCAwIDEuNzUgMS43NWgxMGExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoMTUuOTQyYTEuNzUxIDEuNzUxIDAgMCAwIDEuNzUtMS43NXYtNTcuNWExLjc1MSAxLjc1MSAwIDAgMCAtMS43NS0xLjc1em0tODkuMDU4IDY3LjVoLTYuNXYtNi41aDYuNXptNjkuNjE2IDBoLTYuNXYtNi41aDYuNXptMTcuNjkyLTEwaC0xMTEuNXYtNTRoMTExLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyLjY5MiA3NC4yNWExMC4yNSAxMC4yNSAwIDEgMCAtMTAuMjUtMTAuMjUgMTAuMjYxIDEwLjI2MSAwIDAgMCAxMC4yNSAxMC4yNXptLTEuNzUtMTYuNzYydjQuMDEyYTEuNzUgMS43NSAwIDAgMCAzLjUgMHYtNC4wMTJhNi43NSA2Ljc1IDAgMSAxIC0zLjUgMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjkyIDQ5Ljk1OGExLjc0OSAxLjc0OSAwIDAgMCAxLjc1LTEuNzV2LTNhMS43NSAxLjc1IDAgMCAwIC0zLjUgMHYzYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4Ljc5MiA1MS4zNTNhMS43NSAxLjc1IDAgMCAwIDIuMzM3LS44MTZsMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyLTEuNTJsLTEuMyAyLjdhMS43NSAxLjc1IDAgMCAwIC44MTUgMi4zMzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1LjA1MiA1NS45MTlhMS43NDggMS43NDggMCAwIDAgMS4wODgtLjM4bDIuMzQ4LTEuODY4YTEuNzUgMS43NSAwIDAgMCAtMi4xNzktMi43MzlsLTIuMzQ4IDEuODY4YTEuNzUgMS43NSAwIDAgMCAxLjA5MSAzLjEyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNC4yNTYgNTAuNTM3YTEuNzUgMS43NSAwIDEgMCAzLjE1Mi0xLjUyMWwtMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyIDEuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2LjkgNTMuNjcxIDIuMzQ5IDEuODY4YTEuNzUgMS43NSAwIDAgMCAyLjE3OC0yLjc0bC0yLjM0OC0xLjg2N2ExLjc1IDEuNzUgMCAxIDAgLTIuMTc5IDIuNzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Im01OC44MDggNzAuMjkyaDUwLjE5MmExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTEwYTEuNzUgMS43NSAwIDAgMCAtMS43NS0xLjc1aC01MC4xOTJhMS43NDkgMS43NDkgMCAwIDAgLTEuNzUgMS43NXYxMGExLjc1IDEuNzUgMCAwIDAgMS43NSAxLjc1em0xLjc1LTEwaDQ2LjY5MnY2LjVoLTQ2LjY5MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYuMTM1IDg3LjIwOGgzMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAtMy41aC0zMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAgMy41eiIvPgogICAgPC9nPgo8L3N2Zz4=",Hfe="PHN2ZyBoZWlnaHQ9IjYwMHB0IiB2aWV3Qm94PSItNDUgLTE5IDYwMCA2MDAuMDAxIiB3aWR0aD0iNjAwcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTguMjE0ODQ0IDBoLTUwLjk3NjU2M2MtMTguMTk1MzEyLjAyNzM0MzgtMzIuOTMzNTkzIDE0Ljc2OTUzMS0zMi45NjQ4NDMgMzIuOTY0ODQ0djI0Ljg3MTA5NGgtMTQ0LjgyNDIxOWMtNjEuNDM3NS4wOTM3NS0xMTIuMjUzOTA3IDQ3Ljg3MTA5My0xMTYuMTMyODEzIDEwOS4xODc1aC0zOS4wNjY0MDZjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40Njg3NS05Ljk4ODI4MSA5Ljk4ODI4MXYzMC41MTE3MTloLTEwLjI4NTE1N2MtMy43MDcwMzEgMC03LjEwNTQ2OCAyLjA0Njg3NC04LjgzNTkzNyA1LjMyODEyNGwtODUuNzY5NTMxIDE2Mi41NTQ2ODhjLTEuNjM2NzE5IDMuMDk3NjU2LTEuNTMxMjUgNi44MjQyMTkuMjc3MzQ0IDkuODI0MjE5IDEuODA4NTkzIDMgNS4wNTA3ODEgNC44MjgxMjUgOC41NTQ2ODcgNC44MjgxMjVoMTA4LjEyMTA5NGMuMTc1NzgxIDMuOTU3MDMxLjY3NTc4MSA3Ljg4NjcxOCAxLjQ5NjA5MyAxMS43NjE3MTggNy41NzAzMTMgMzUuMDU0Njg4IDM4LjU1ODU5NCA2MC4wOTM3NSA3NC40MjU3ODIgNjAuMTI1IDM1Ljg3MTA5NC4wMzUxNTcgNjYuOTAyMzQ0LTI0Ljk0OTIxOCA3NC41MzUxNTYtNTkuOTk2MDkzLjg0Mzc1LTMuOTEwMTU3IDEuMzY3MTg4LTcuODkwNjI1IDEuNTUwNzgxLTExLjg5NDUzMWgxMDguMTM2NzE5YzMuNSAwIDYuNzUtMS44MzIwMzIgOC41NTQ2ODgtNC44MzIwMzIgMS44MDg1OTMtMyAxLjkxNzk2OC02LjcyNjU2Mi4yNzczNDMtOS44MjAzMTJsLTg1Ljc2OTUzMS0xNjIuNTQ2ODc1Yy0xLjczMDQ2OS0zLjI4OTA2My01LjE0NDUzMS01LjMzOTg0NC04Ljg1OTM3NS01LjMzMjAzMWgtMTAuMjYxNzE5di0zMC41MTE3MTljMC01LjUxOTUzMS00LjQ3MjY1Ni05Ljk4ODI4MS05Ljk4ODI4MS05Ljk4ODI4MWgtNDQuNTM1MTU2YzIuMTQwNjI1LTIyLjQ3MjY1NyAyMC45ODgyODEtMzkuNjQ0NTMyIDQzLjU2MjUtMzkuNjk5MjE5aDE0NC44MDQ2ODd2MjguMTYwMTU2Yy4wMzUxNTYgMTguMTkxNDA2IDE0Ljc3NzM0NCAzMi45MzM1OTQgMzIuOTY4NzUgMzIuOTYwOTM3aDUwLjk4MDQ2OWM1LjUxNTYyNSAwIDkuOTg4MjgxLTQuNDY0ODQzIDkuOTg4MjgxLTkuOTg4Mjgxdi0xNjguNDY4NzVjMC01LjUxMTcxOS00LjQ2NDg0NC05Ljk4MDQ2ODUtOS45NzY1NjItOS45ODgyODF6bS0yNTAuOTE3OTY5IDM5Ny42MzI4MTJjLTUuNTY2NDA2IDI1LjkzMzU5NC0yOC41MDc4MTMgNDQuNDUzMTI2LTU1LjAzMTI1IDQ0LjQyMTg3Ni0yNi41MzEyNS0uMDI3MzQ0LTQ5LjQyNTc4MS0xOC41OTc2NTctNTQuOTMzNTk0LTQ0LjU0Njg3Ni0uNTU0Njg3LTIuNDUzMTI0LS45MjU3ODEtNC45NDkyMTgtMS4xMjEwOTMtNy40NTMxMjRoMTEyLjIzNDM3NGMtLjE5OTIxOCAyLjU1MDc4MS0uNTg1OTM3IDUuMDgyMDMxLTEuMTQ4NDM3IDcuNTc4MTI0em0xMTIuNjA1NDY5LTI3LjU3NDIxOGgtMTAxLjM5NDUzMmMtLjA2NjQwNiAwLS4xMzY3MTggMC0uMjAzMTI0IDBoLTEzMS45NjA5MzhjLS4wNzAzMTIgMC0uMTM2NzE5IDAtLjIwNzAzMSAwaC0xMDEuMzk0NTMxbDc1LjI1MzkwNi0xNDIuNTU0Njg4aDE4NC42ODM1OTR6bS05OS40NzI2NTYtMTYyLjUzNTE1NmgtMTM2LjE5MTQwN3YtMjAuNTE5NTMyaDEzNi4xOTE0MDd6bTguOTk2MDkzLTEwMC4xODM1OTRjLTMzLjUzNTE1Ni4yNzM0MzctNjEuMjQ2MDkzIDI2LjIzODI4MS02My42OTUzMTIgNTkuNjgzNTk0aC0zMi40MzM1OTRjMy44NDc2NTYtNTAuMjczNDM4IDQ1LjczMDQ2OS04OS4xMjUgOTYuMTUyMzQ0LTg5LjE4NzVoMTQ0LjgwNDY4N3YyOS41MDM5MDZ6bTIxOC43Njk1MzEgNjEuMTQwNjI1aC00MC45ODQzNzRjLTcuMTY3OTY5LS4wMTk1MzEtMTIuOTcyNjU3LTUuODI0MjE5LTEyLjk5MjE4OC0xMi45ODgyODF2LTEyMi41MDc4MTNjLjAxOTUzMS03LjE2MDE1NiA1LjgyNDIxOS0xMi45NjQ4NDQgMTIuOTkyMTg4LTEyLjk4NDM3NWg0MC45ODQzNzR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im05MC41MTU2MjUgNDE1Ljk5MjE4OGMwLTUuNTE1NjI2LTQuNDcyNjU2LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4MjgyaC02MS4zOTg0MzhjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40NzI2NTYtOS45ODgyODEgOS45ODgyODIgMCA1LjUxOTUzMSA0LjQ3MjY1NiA5Ljk5MjE4NyA5Ljk4ODI4MSA5Ljk5MjE4N2g2MS4zOTg0MzhjNS41MTU2MjUgMCA5Ljk4ODI4MS00LjQ3MjY1NiA5Ljk4ODI4MS05Ljk5MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNy41MzkwNjIgNDcyLjY3MTg3NS00MC4wNzAzMTIgMzcuNzQ2MDk0Yy0yLjY0MDYyNSAyLjQzMzU5My0zLjc3MzQzOCA2LjEwMTU2Mi0yLjk1NzAzMSA5LjU5NzY1Ni44MTI1IDMuNTAzOTA2IDMuNDQxNDA2IDYuMjk2ODc1IDYuODg2NzE5IDcuMzE2NDA2IDMuNDQ1MzEyIDEuMDIzNDM4IDcuMTc1NzgxLjExNzE4OCA5Ljc2NTYyNC0yLjM3NWw0MC4wNzAzMTMtMzcuNzM4MjgxYzIuNjQwNjI1LTIuNDMzNTk0IDMuNzY5NTMxLTYuMTAxNTYyIDIuOTU3MDMxLTkuNjA1NDY5LS44MTY0MDYtMy40OTYwOTMtMy40NDUzMTItNi4yOTI5NjktNi44ODY3MTgtNy4zMTY0MDYtMy40NDkyMTktMS4wMTk1MzEtNy4xNzU3ODItLjExMzI4MS05Ljc2NTYyNiAyLjM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM2NS41NDY4NzUgNDA2LjAwMzkwNmgtNjEuMzkwNjI1Yy01LjUxOTUzMSAwLTkuOTkyMTg4IDQuNDcyNjU2LTkuOTkyMTg4IDkuOTg4MjgyIDAgNS41MTk1MzEgNC40NzI2NTcgOS45OTIxODcgOS45OTIxODggOS45OTIxODdoNjEuMzkwNjI1YzUuNTE5NTMxIDAgOS45ODgyODEtNC40NzI2NTYgOS45ODgyODEtOS45OTIxODcgMC01LjUxNTYyNi00LjQ2ODc1LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4Mjgyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY3LjA0Njg3NSA0NzIuNjcxODc1Yy0yLjU4OTg0NC0yLjQ4ODI4MS02LjMxNjQwNi0zLjM5NDUzMS05Ljc2NTYyNS0yLjM3NS0zLjQ0NTMxMiAxLjAyMzQzNy02LjA3NDIxOSAzLjgyMDMxMy02Ljg4NjcxOSA3LjMxNjQwNi0uODE2NDA2IDMuNTAzOTA3LjMxNjQwNyA3LjE3MTg3NSAyLjk1MzEyNSA5LjYwNTQ2OWw0MC4wNjI1IDM3LjcyMjY1NmMyLjU4OTg0NCAyLjQ5MjE4OCA2LjMxNjQwNiAzLjQwMjM0NCA5Ljc2NTYyNSAyLjM3NSAzLjQ0MTQwNy0xLjAxOTUzMSA2LjA3MDMxMy0zLjgxMjUgNi44ODY3MTktNy4zMTY0MDYuODEyNS0zLjQ5NjA5NC0uMzE2NDA2LTcuMTY0MDYyLTIuOTU3MDMxLTkuNjAxNTYyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyLjI3MzQzOCA0OTAuOTMzNTk0Yy01LjUxNTYyNiAwLTkuOTg4MjgyIDQuNDcyNjU2LTkuOTg4MjgyIDkuOTkyMTg3djUwLjg0NzY1N2MwIC4yNDYwOTMtLjAyMzQzNy41MDM5MDYtLjAyMzQzNy43MzgyODEgMCA1LjUxNTYyNSA0LjQ3MjY1NiA5Ljk4ODI4MSA5Ljk4ODI4MSA5Ljk4ODI4MS40MjU3ODEtLjAwMzkwNi44NTU0NjktLjAyNzM0NCAxLjI3NzM0NC0uMDg1OTM4IDQuOTkyMTg3LS42Mjg5MDYgOC43MzgyODEtNC44Nzg5MDYgOC43MzgyODEtOS45MDYyNXYtNTEuNTgyMDMxYzAtNS41MTk1MzEtNC40NzI2NTYtOS45OTIxODctOS45OTIxODctOS45OTIxODd6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Vfe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzguNTExLDg4LjYyMkM0MDMuNjk0LDY5LjIyMywzMjguNDM3LDM5LjAxNywyNjAuODc4LDEuMjY5Yy0zLjAzLTEuNjkyLTYuNzIzLTEuNjkzLTkuNzU1LDAKCQkJQzE4MS42MjEsNDAuMDk5LDExMC40MzIsNjguNjcyLDMzLjQ4OSw4OC42MjNjLTQuNDEsMS4xNDQtNy40OSw1LjEyNC03LjQ5LDkuNjh2MTEwLjM5NGMwLDExMy41MzUsNTUuMjkyLDE4OC42MzksMTAxLjY3OCwyMzEuNjUKCQkJYzQ5Ljc1Nyw0Ni4xMzgsMTA3LjQ2LDcxLjY1NSwxMjguMzI0LDcxLjY1NWMyMC44NjQsMCw3OC41NjctMjUuNTE3LDEyOC4zMjQtNzEuNjU1CgkJCWM0Ni4zODQtNDMuMDExLDEwMS42NzgtMTE4LjExNCwxMDEuNjc4LTIzMS42NVY5OC4zMDJDNDg2LjAwMiw5My43NDYsNDgyLjkyMiw4OS43NjYsNDc4LjUxMSw4OC42MjJ6IE0zNzAuNzI2LDQyNS42NzgKCQkJYy0yNy41NTcsMjUuNTUzLTU0LjMzNiw0MS42ODUtNzEuOTUsNTAuNzE4Yy0yMi4zMTksMTEuNDQ3LTM3LjgxLDE1LjYwMy00Mi43NzYsMTUuNjAzYy00Ljk2NiwwLTIwLjQ1Ni00LjE1NS00Mi43NzYtMTUuNjAzCgkJCWMtMTcuNjEyLTkuMDMzLTQ0LjM5Mi0yNS4xNjUtNzEuOTUtNTAuNzE4Yy00My40NjQtNDAuMzAzLTk1LjI3Ni0xMTAuNjYzLTk1LjI3Ni0yMTYuOTgzVjEwNi4wMDgKCQkJYzczLjk2NC0xOS44LDE0Mi44MDEtNDcuNTIzLDIxMC4wMDMtODQuNTc0YzY1LjQ5OCwzNi4wNTksMTM3LjgyNyw2NS4xODUsMjEwLDg0LjU3MXYxMDIuNjloMC4wMDEKCQkJQzQ2Ni4wMDEsMzE1LjAxNSw0MTQuMTksMzg1LjM3NSwzNzAuNzI2LDQyNS42Nzh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ0My43OTMsMTE1LjM2OGMtNjMuMzM2LTE4LjQxMy0xMjQuOTM2LTQzLjQyNC0xODMuMDg3LTc0LjMzN2MtMi45MzgtMS41NjMtNi40NjEtMS41Ni05LjM5NywwLjAwNgoJCQlDMTkzLjA2OSw3Mi4wNzksMTMxLjQ3LDk3LjA5NCw2OC4yMiwxMTUuMzg3Yy00LjI3NywxLjIzNy03LjIyMiw1LjE1My03LjIyMiw5LjYwNnY4My43MDJjMCwzOS4wNzcsNy40MDUsNzYuMTYxLDIyLjAwOCwxMTAuMjIyCgkJCWMxNC41MywzMy44OTEsMzYuMjAxLDY0LjgyLDY0LjQwOSw5MS45MzNjMjAuMTc1LDE5LjM5LDQzLjQ2OSwzNi40NzcsNjcuMzY3LDQ5LjQxM2M0LjI4MiwyLjMxOCwyNi4zMDUsMTQuMDAzLDM5LjQwMiwxNi40MjEKCQkJYzAuNiwwLjExLDEuMjA3LDAuMTY2LDEuODE1LDAuMTY2YzAuNjA4LDAsMS4yMTUtMC4wNTYsMS44MTUtMC4xNjZjMTMuMDk3LTIuNDE4LDM1LjEyLTE0LjEwMywzOS40MDItMTYuNDIxCgkJCWMyMy44OTUtMTIuOTM2LDQ3LjE5LTMwLjAyMyw2Ny4zNjctNDkuNDEzYzI4LjIwOC0yNy4xMTEsNDkuODc4LTU4LjA0MSw2NC40MDktOTEuOTMzYzE0LjYwMy0zNC4wNiwyMi4wMDgtNzEuMTQ0LDIyLjAwOC0xMTAuMjIyCgkJCXYtODMuNzI0QzQ1MS4wMDEsMTIwLjUyNCw0NDguMDYzLDExNi42MTEsNDQzLjc5MywxMTUuMzY4eiBNNDMxLjAwMSwyMDguNjk1YzAsNzMuMzc2LTI3LjAwOCwxMzYuNTM4LTgwLjI3NiwxODcuNzM0CgkJCWMtMTguODk4LDE4LjE2Mi00MC42OTMsMzQuMTUzLTYzLjAyOSw0Ni4yNDVjLTEwLjE2Nyw1LjUwMy0yMy44OTIsMTEuOTE5LTMxLjY5NywxMy45MzRjLTcuODA1LTIuMDE1LTIxLjUzLTguNDMxLTMxLjY5Ni0xMy45MzQKCQkJYy0yMi4zMzctMTIuMDkzLTQ0LjEzMi0yOC4wODQtNjMuMDI5LTQ2LjI0NWMtNTMuMjY3LTUxLjE5NS04MC4yNzYtMTE0LjM1OS04MC4yNzYtMTg3LjczNFYxMzIuNDgKCQkJYzYwLjM1NC0xNy45NjksMTE5LjE3Mi00MS45MzEsMTc1LjAxOS03MS4zMDZjNTUuNzU3LDI5LjI1MSwxMTQuNTY5LDUzLjIwNCwxNzQuOTgzLDcxLjI3NFYyMDguNjk1eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuMDI3LDM1OC4zMDVsLTAuMi0wLjIxNWMtMy43MDEtNC4wNTUtOS45ODctNC4zNjctMTQuMDczLTAuNjg5Yy00LjEwNSwzLjY5NC00LjQzOCwxMC4wMTctMC43NDQsMTQuMTIybDAuMiwwLjIxNQoJCQljMS45NzEsMi4xNTgsNC42NzMsMy4yNTYsNy4zODcsMy4yNTZjMi4zODMsMCw0Ljc3NS0wLjg0OCw2LjY4Ni0yLjU2N0MxNzYuMzg4LDM2OC43MzMsMTc2LjcyMSwzNjIuNDA5LDE3My4wMjcsMzU4LjMwNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjI2Ljk2Myw0MDMuNjk1Yy0xMi4wNDYtNy42MDItMjMuNjQ1LTE2LjM2NC0zNC40NzMtMjYuMDQ0Yy00LjExNy0zLjY4Mi0xMC40MzktMy4zMjctMTQuMTIsMC43OQoJCQljLTMuNjgsNC4xMTgtMy4zMjYsMTAuNDM5LDAuNzkyLDE0LjEyYzExLjY1MywxMC40MTgsMjQuMTQ1LDE5Ljg1NCwzNy4xMjksMjguMDQ4YzEuNjU3LDEuMDQ1LDMuNTAyLDEuNTQ0LDUuMzI3LDEuNTQ0CgkJCWMzLjMxOCwwLDYuNTY0LTEuNjUsOC40NjYtNC42NjRDMjMzLjAzMiw0MTIuODE4LDIzMS42MzUsNDA2LjY0MiwyMjYuOTYzLDQwMy42OTV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMwOC44OTgsMjA5LjA3N3YtMzIuOTIxYzAtMjkuMTY4LTIzLjczLTUyLjg5OC01Mi45LTUyLjg5OGMtMjkuMTY4LDAtNTIuODk4LDIzLjczLTUyLjg5OCw1Mi44OTh2MzIuOTIxCgkJCWMtMTEuODk4LDAuNDI5LTIxLjQ0NywxMC4yMzUtMjEuNDQ3LDIyLjIzNnY3Ni43NjljLTAuMDAxLDEyLjI3Myw5Ljk4NCwyMi4yNTcsMjIuMjU3LDIyLjI1N0gzMDguMDkKCQkJYzEyLjI3MywwLDIyLjI1OC05Ljk4NCwyMi4yNTgtMjIuMjU3di03Ni43NjlDMzMwLjM0OCwyMTkuMzExLDMyMC43OTgsMjA5LjUwNCwzMDguODk4LDIwOS4wNzd6IE0yMjMuMDk5LDE3Ni4xNTYKCQkJYzAtMTguMTQsMTQuNzU5LTMyLjg5OCwzMi45LTMyLjg5OGMxOC4xNCwwLDMyLjg5OCwxNC43NTgsMzIuODk4LDMyLjg5OHYzMi45aC02NS43OTlWMTc2LjE1NnogTTMxMC4zNDcsMzA4LjA4MwoJCQljMCwxLjIyNC0xLjAzNCwyLjI1Ny0yLjI1OCwyLjI1N0gyMDMuOTA4Yy0xLjIyNCwwLTIuMjU4LTEuMDMzLTIuMjU4LTIuMjU3di03Ni43NjloMC4wMDFjMC0xLjIyNCwxLjAzNC0yLjI1NywyLjI1OC0yLjI1N2g5LjE4OQoJCQloODUuNzk5aDkuMTkyYzEuMjI0LDAsMi4yNTgsMS4wMzMsMi4yNTgsMi4yNTdWMzA4LjA4M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI0OS42NGMtNy43MDEsMC0xMy45ODIsNi4yODEtMTMuOTgyLDEzLjk4MmMwLDMuNzg2LDEuNTIzLDcuMjI1LDMuOTgyLDkuNzQ2djkuNzg3YzAsNS41MjIsNC40NzcsMTAsMTAsMTAKCQkJYzUuNTIzLDAsMTAtNC40NzgsMTAtMTB2LTkuNzg3YzIuNDU5LTIuNTIyLDMuOTgyLTUuOTYsMy45ODItOS43NDZDMjY5Ljk4MiwyNTUuOTIxLDI2My43MDEsMjQ5LjY0LDI1NiwyNDkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Zfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk2Ljg4MjgxMiAwaC00ODEuNzY1NjI0Yy04LjM0NzY1NyAwLTE1LjExNzE4OCA2Ljc2OTUzMS0xNS4xMTcxODggMTUuMTE3MTg4djQ4MS43NjU2MjRjMCA4LjM0NzY1NyA2Ljc2OTUzMSAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGg0ODEuNzY1NjI0YzguMzQ3NjU3IDAgMTUuMTE3MTg4LTYuNzY5NTMxIDE1LjExNzE4OC0xNS4xMTcxODh2LTQ4MS43NjU2MjRjMC04LjM0NzY1Ny02Ljc2OTUzMS0xNS4xMTcxODgtMTUuMTE3MTg4LTE1LjExNzE4OHptLTQwNi4xNzU3ODEgNDIxLjI5Mjk2OXYtODguNjk1MzEzaDExOS4wNzQyMTl2ODguNjk1MzEzem0tNjAuNDcyNjU2LTM5MS4wNTg1OTRoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTM1Mi44Mzk4NDQtNTguNDUzMTI1djI4LjIxODc1aC0yNTQuMTQ4NDM4di0yOC4yMTg3NXptLTI1NC4xNDg0MzggMjM5Ljg3MTA5NGgyNTQuMTUyMzQ0djMwLjIzODI4MWgtMjU0LjE1MjM0NHptMC0zMC4yMzQzNzV2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTZ2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTd2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptLTk4LjY5MTQwNiAzMC4yMzQzNzZoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTAgNjAuNDcyNjU2aDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptMzgzLjA3ODEyNSAwaDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptNjguNDUzMTI1LTMwLjIzNDM3NWgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1N2gtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0tMjQxLjc1IDI3Mi4xMjVoMzAuMjM4Mjgxdjg4LjY5NTMxM2gtMzAuMjM4Mjgxem02MC40NzY1NjMgMGgxMjAuODAwNzgxdjg4LjY5NTMxM2gtMTIwLjgwMDc4MXptLTI3MC4yNTc4MTMgMTQ5LjE2Nzk2OXYtMTQ5LjE2Nzk2OWgzMC4yMzgyODF2MTAzLjgxMjVjMCA4LjM0NzY1NiA2Ljc2OTUzMiAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGgzNjAuODIwMzEyYzguMzQ3NjU2IDAgMTUuMTE3MTg4LTYuNzY5NTMyIDE1LjExNzE4OC0xNS4xMTcxODh2LTEwMy44MTI1aDMwLjIzODI4MXYxNDkuMTY3OTY5em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Xfe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0yIDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM0OC4yNDYwOTQgMzc2Ljc4NTE1NmMtMy4yNS0yLjYwNTQ2OC03Ljk5MjE4OC0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTI4Ljk0OTIxOSAzNi4wOTM3NWMtMy45ODQzNzUgNC45Njg3NS0uMzY3MTg4IDEyLjI1NzgxMiA1Ljg3NSAxMi4yNTc4MTIgMi4yMTA5MzcgMCA0LjM5ODQzNy0uOTY4NzUgNS44ODY3MTktMi44MjQyMTlsMjguOTQ5MjE4LTM2LjA5Mzc1YzIuNjA1NDY5LTMuMjUgMi4wODU5MzgtNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzkwLjM1OTM3NSAzNTguNzM4MjgxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg3LTIuMDgyMDMxLTEwLjU5NzY1NiAxLjE2NDA2M2wtMjguOTQ5MjE5IDM2LjA5Mzc1Yy0zLjk4NDM3NSA0Ljk2ODc1LS4zNjcxODggMTIuMjU3ODEyIDUuODc1IDEyLjI1NzgxMiAyLjIxMDkzOCAwIDQuMzk4NDM4LS45Njg3NSA1Ljg4NjcxOS0yLjgyNDIxOGwyOC45NDkyMTktMzYuMDkzNzVjMi42MDU0NjgtMy4yNDYwOTQgMi4wODU5MzctNy45OTIxODgtMS4xNjQwNjMtMTAuNTk3NjU3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTExLjc1IDQyMi4wNTA3ODFjMi4xMDkzNzUgMCA0LjIwNzAzMS0uODc4OTA2IDUuNjk5MjE5LTIuNTk3NjU2bDM5LjYxMzI4MS00NS42NDQ1MzFjMi43MzA0NjktMy4xNDQ1MzIgMi4zOTQ1MzEtNy45MDYyNS0uNzUtMTAuNjMyODEzLTMuMTQ0NTMxLTIuNzMwNDY5LTcuOTEwMTU2LTIuMzk0NTMxLTEwLjYzNjcxOS43NWwtMzkuNjE3MTg3IDQ1LjY0NDUzMWMtNC4yNTM5MDYgNC45MDIzNDQtLjY5NTMxMyAxMi40ODA0NjkgNS42OTE0MDYgMTIuNDgwNDY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk2LjYyMTA5NCAzNzYuNzg1MTU2Yy0zLjI1LTIuNjA1NDY4LTcuOTk2MDk0LTIuMDgyMDMxLTEwLjYwMTU2MyAxLjE2NDA2M2wtMTQuNDcyNjU2IDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5NjA5NCAxLjE2NDA2MyAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjUgOC4wMTE3MTggMi4wNjI1IDEwLjU5NzY1Ni0xLjE2NDA2MmwxNC40NzY1NjItMTguMDQ2ODc2YzIuNjA1NDY5LTMuMjUgMi4wODIwMzItNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDM3Ljk5MjE4OCAzOTQuODMyMDMxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg4LTIuMDgyMDMxLTEwLjU5NzY1NyAxLjE2NDA2M2wtMTQuNDc2NTYyIDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5MjE4NyAxLjE2NDA2MiAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjEwOTQgOC4wMTE3MTkgMi4wNjI1IDEwLjYwMTU2My0xLjE2NDA2M2wxNC40NzI2NTYtMTguMDQ2ODc0YzIuNjA1NDY5LTMuMjQ2MDk0IDIuMDgyMDMxLTcuOTkyMTg4LTEuMTY0MDYyLTEwLjU5NzY1N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNi40NzI2NTYgMzYyLjk4NDM3NWMtMy4yNS0yLjYwNTQ2OS03Ljk5MjE4Ny0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTE0LjQ3NjU2MiAxOC4wNTA3ODFjLTIuNjA1NDY5IDMuMjQ2MDkzLTIuMDgyMDMyIDcuOTkyMTg3IDEuMTY0MDYyIDEwLjU5NzY1NiAzLjI2OTUzMSAyLjYyMTA5NCA4LjAxMTcxOSAyLjA2MjUgMTAuNTk3NjU2LTEuMTY0MDYzbDE0LjQ3MjY1Ni0xOC4wNDY4NzRjMi42MDkzNzYtMy4yNSAyLjA4NTkzOC03Ljk5NjA5NC0xLjE2MDE1Ni0xMC42MDE1NjN6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01MDQuNDYwOTM4IDBjLTE3LjI1MzkwNyAwLTQ2Ni41OTM3NSAwLTQ5Ni45MjE4NzYgMC00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzY3MTg4LTcuNTM5MDYyIDcuNTM5MDYydjQ5My44NjcxODhjMCA0LjE3MTg3NSAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MiA3LjUzOTA2Mmg0MjIuMjEwOTM4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC00LjE2NDA2Mi0zLjM3ODkwNi03LjU0Mjk2OS03LjUzOTA2Mi03LjU0Mjk2OWgtNDE0LjY3MTg3NXYtMTQzLjg4MjgxMmgxNC4zNjcxODd2OTAuOTU3MDMxYzAgNC4xNjQwNjIgMy4zNzUgNy41MzkwNjIgNy41MzkwNjMgNy41MzkwNjJoMTI2LjQwMjM0NGM0LjE2MDE1NiAwIDcuNTM5MDYyLTMuMzc1IDcuNTM5MDYyLTcuNTM5MDYyIDAtNC4xNjAxNTYtMy4zNzg5MDYtNy41MzkwNjItNy41MzkwNjItNy41MzkwNjJoLTExOC44NjMyODF2LTgzLjQxNzk2OWgxNC41MzkwNjJ2MjYuMTIxMDkzYzAgNC4xNjQwNjMgMy4zNzUgNy41MzkwNjMgNy41MzkwNjIgNy41MzkwNjMgNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM3NSA3LjUzOTA2My03LjUzOTA2M3YtMjYuMTIxMDkzaDE1My43MTA5Mzd2ODMuNDE3OTY5aC0zNC4zMDg1OTNjLTQuMTYwMTU3IDAtNy41MzkwNjMgMy4zNzg5MDYtNy41MzkwNjMgNy41MzkwNjIgMCA0LjE2NDA2MiAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MyA3LjUzOTA2MmgyODEuNDcyNjU2YzQuMTY0MDYzIDAgNy41MzkwNjMtMy4zNzUgNy41MzkwNjMtNy41MzkwNjJ2LTkwLjk1NzAzMWgxNC4zNjcxODd2MTQzLjg4MjgxMmgtMzcuMDE1NjI1Yy00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzc4OTA3LTcuNTM5MDYyIDcuNTQyOTY5IDAgNC4xNzE4NzUgMy4zNzg5MDYgNy41MzkwNjIgNy41MzkwNjIgNy41MzkwNjJoNDQuNTU0Njg4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC01My44NjMyODEgMC00MzcuNDk2MDk0IDAtNDkzLjg2NzE4OCAwLTQuMTcxODc0LTMuMzc4OTA2LTcuNTM5MDYyLTcuNTM5MDYyLTcuNTM5MDYyem0tNDQ1LjM5ODQzOCAzMzQuOTAyMzQ0Yy0xMy43MTQ4NDQgMC0zMC4wNTg1OTQgMC00My45ODQzNzUgMCAwLTkuNTUwNzgyIDAtMTYuMjU3ODEzIDAtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2Mmg0My45ODQzNzV6bTAtNDEuODcxMDk0aC00My45ODQzNzV2LTI2Ljc3NzM0M2g0My45ODQzNzV6bTAtNDEuODU5Mzc0Yy05LjcwMzEyNSAwLTMzLjkxNzk2OSAwLTQzLjk4NDM3NSAwdi0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMTUuMDc4MTI1LTI2Ljc4MTI1aDM2My43MTg3NXYyNi43ODEyNWgtMzYzLjcxODc1em0wIDgzLjcxODc1aDI4OS4zMDA3ODFjNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM2NzE4NyA3LjUzOTA2My03LjUzOTA2MyAwLTQuMTYwMTU2LTMuMzc1LTcuNTM5MDYyLTcuNTM5MDYzLTcuNTM5MDYyLTEuMjM0Mzc1IDAtMjgyLjk0MTQwNiAwLTI4OS4zMDA3ODEgMHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1aC00NC4yNTc4MTNjLTQuMTY0MDYyIDAtNy41MzkwNjIgMy4zNzg5MDYtNy41MzkwNjIgNy41MzkwNjIgMCA0LjE3MTg3NiAzLjM3NSA3LjUzOTA2MyA3LjUzOTA2MiA3LjUzOTA2M2g0NC4yNTc4MTN2MjYuNzg5MDYzYy0xMS42MjUgMC0zNTQuNDkyMTg3IDAtMzYzLjcxODc1IDB6bTAgNDEuODcxMDk0aDM2My43MTg3NXYyNi43NzczNDNoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2MmgtMzYzLjcxODc1em0wIDQxLjg2NzE4N2gzNjMuNzE4NzV2MjYuNzgxMjVoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2M2gtMzYzLjcxODc1em0wIDY4LjY0ODQzOHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1Yy0zNS42MTcxODcgMC0zMjYuOTUzMTI1IDAtMzYzLjcxODc1IDB6bTM5My4zMzU5MzcgOTguNDk2MDk0aC0xODMuMzI4MTI0di00MC42Njc5NjljMC00LjE2NDA2My0zLjM3NS03LjUzOTA2My03LjUzOTA2My03LjUzOTA2M3MtNy41MzkwNjMgMy4zNzUtNy41MzkwNjMgNy41MzkwNjN2NDAuNjY3OTY5aC0yNi4xNDA2MjR2LTgzLjQxNDA2M2gyNi4xNDA2MjR2MTIuNTg1OTM3YzAgNC4xNjc5NjkgMy4zNzUgNy41MzkwNjMgNy41MzkwNjMgNy41MzkwNjNzNy41MzkwNjMtMy4zNzEwOTQgNy41MzkwNjMtNy41MzkwNjN2LTEyLjU4OTg0M2gxNTMuNzEwOTM3djI2LjEyMTA5M2MwIDQuMTY0MDYzIDMuMzc1IDcuNTM5MDYzIDcuNTM5MDYzIDcuNTM5MDYzIDQuMTY0MDYyIDAgNy41MzkwNjItMy4zNzUgNy41MzkwNjItNy41MzkwNjN2LTI2LjEyMTA5M2gxNC41MzkwNjJ6bTI5LjQ0NTMxMy05OC40OTYwOTRjLTEzLjc4OTA2MyAwLTI5Ljg2NzE4NyAwLTQzLjk4NDM3NSAwdi0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2M2g0My45ODQzNzV6bTAtNDEuODY3MTg4aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMC00MS44NTkzNzVoLTQzLjk4NDM3NXYtMjYuNzg5MDYyaDQzLjk4NDM3NXptMC00MS44NzEwOTRoLTQzLjk4NDM3NXYtMjYuNzc3MzQzaDQzLjk4NDM3NXptMC00MS44NTkzNzRoLTQzLjk4NDM3NXYtMjYuNzg5MDYzaDQzLjk4NDM3NXptMC00MS44NjcxODhoLTQzLjk4NDM3NXYtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Kfe="PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01Ni44MzggMWgtNDkuNjc2Yy0zLjM5OCAwLTYuMTYyIDIuNzY0LTYuMTYyIDYuMTYyIDAgLjY2NS4xMDYgMS4zMi4zMTYgMS45NDlsLjU1OCAxLjY3NmMuODQxIDIuNTIgMy4xOSA0LjIxMyA1Ljg0NyA0LjIxM2g0LjM4NGwxLjUwNiAxMy41NTJjLjI4MiAyLjUzNiAyLjQxOCA0LjQ0OCA0Ljk2OSA0LjQ0OGgyNi44NGMyLjU1MSAwIDQuNjg4LTEuOTEyIDQuOTY5LTQuNDQ4bDEuNTA2LTEzLjU1Mmg0LjM4NGMyLjY1NyAwIDUuMDA2LTEuNjkzIDUuODQ2LTQuMjE0bC41NTgtMS42NzRjLjIxMS0uNjMuMzE3LTEuMjg1LjMxNy0xLjk1IDAtMy4zOTgtMi43NjQtNi4xNjItNi4xNjItNi4xNjJ6bS0zMi44MzggMzBoLTR2LThjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptMTAgMGgtNHYtOGMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyem0xMCAwaC00di04YzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTQuNDAyLTIuNjY4Yy0uMTQ3IDEuMzI0LTEuMTM4IDIuMzYzLTIuNDAyIDIuNjExdi03Ljk0M2MwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY4aC0ydi04YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0djhoLTJ2LThjMC0yLjIwNi0xLjc5NC00LTQtNHMtNCAxLjc5NC00IDR2Ny45NDJjLTEuMjY0LS4yNDgtMi4yNTQtMS4yODctMi40MDItMi42MTFsLTEuNDgxLTEzLjMzMWgzNS43NjZ6bTEyLjM4NC0xOS44NTMtLjU1OCAxLjY3NWMtLjU2NyAxLjcwMi0yLjE1NCAyLjg0Ni0zLjk0OSAyLjg0NmgtNDguNTU4Yy0xLjc5NCAwLTMuMzgxLTEuMTQ0LTMuOTQ5LTIuODQ2bC0uNTU4LTEuNjc2Yy0uMTQyLS40MjQtLjIxNC0uODY3LS4yMTQtMS4zMTYgMC0yLjI5NSAxLjg2Ny00LjE2MiA0LjE2Mi00LjE2Mmg0OS42NzZjMi4yOTUgMCA0LjE2MiAxLjg2NyA0LjE2MiA0LjE2MiAwIC40NDktLjA3Mi44OTItLjIxNCAxLjMxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTUgNWgtNmMtMS4xMDMgMC0yIC44OTctMiAydjJjMCAxLjEwMy44OTcgMiAyIDJoNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTJjMC0xLjEwMy0uODk3LTItMi0yem0tNiA0di0yaDZsLjAwMSAyeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDcgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgOWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDloMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NCA0MHYtMWgtMWMtLjExOSAwLTEuNzk5LjA0Mi0zLjE3OSAyLjAzNS0uMDQ2LS4wNjMtLjA5Mi0uMTMxLS4xMzgtLjE5My0uOTAzLTEuMjMtMS42ODMtMi4yOTMtMS42ODMtNC44NDJ2LTFoLTFjLS4xMzkgMC0yLjg5My4wNTctNC42MjQgMy4yNzgtMi4wNTMtMy4yMjMtNS4zMjgtMy4yNzgtNS4zNzYtMy4yNzhoLTF2MWMwIDIuNTU5LS43ODQgMy42MzMtMS42OTIgNC44NzctLjA0LjA1NS0uMDguMTE0LS4xMi4xNjktMS4zODMtMi4wMDQtMy4wNjktMi4wNDYtMy4xODgtMi4wNDZoLTF2MWMwIDIuNTQzLS45OTUgMy44MzMtMi4xNDcgNS4zMjctMS4zMzcgMS43MzMtMi44NTMgMy42OTctMi44NTMgNy42NzMgMCA2LjA3NSAzLjkyNSAxMCAxMCAxMGgxNGM2LjA3NSAwIDEwLTMuOTI1IDEwLTEwIDAtMy45NzYtMS41MTYtNS45NC0yLjg1My03LjY3My0xLjE1Mi0xLjQ5NC0yLjE0Ny0yLjc4NC0yLjE0Ny01LjMyN3ptLTE5IDE3YzAtMi4zOTYgMS4zNTgtMy43MTkgMi42NzItNSAuODUxLS44MyAxLjcyNC0xLjY4IDIuMTE1LTIuNzczLjU2LjMxIDEuMjEzIDEuMDQzIDEuMjEzIDIuNzczdjNoMnYtMWMwLTEuOTg2IDEuMjM5LTIuNjYgMi4xNDctMi44ODcuMzU1IDEuMzA0IDEuMjk1IDIuMjQ0IDIuMTQ2IDMuMDk0LjkxNi45MTYgMS43MDcgMS43MDcgMS43MDcgMi43OTMgMCAxLjM4My0xLjQ2MyA0LTcgNHMtNy0yLjYxNy03LTR6bTE0IDRoLS4xMDJjMS41NjItMS4yOCAyLjEwMi0yLjg5OSAyLjEwMi00IDAtMS45MTQtMS4yMTgtMy4xMzItMi4yOTMtNC4yMDctLjkxNi0uOTE2LTEuNzA3LTEuNzA3LTEuNzA3LTIuNzkzdi0xaC0xYy0uODkyIDAtMi4xOTMuMjc4LTMuMjQ1IDEuMDg5LS42ODItMi4zOTUtMi42MjgtMy4wODktMy43NTUtMy4wODloLTF2MWMwIC44NDUtLjY1NSAxLjUyNi0xLjcyNCAyLjU2OC0xLjQ2IDEuNDIzLTMuMjc2IDMuMTkzLTMuMjc2IDYuNDMyIDAgMS4xMDEuNTQgMi43MiAyLjEwMiA0aC0uMTAyYy0zLjg2OCAwLTgtMi4xMDItOC04IDAtMy4yOTQgMS4xODMtNC44MjggMi40MzYtNi40NTIgMS4wNTUtMS4zNjcgMi4xMzktMi43NzIgMi40NjUtNS4wODQuODkxLjczOSAyLjA5OSAyLjY0MiAyLjA5OSA3LjUzNmgyYzAtMi41Ni0uMzIzLTQuNDYxLS44MDMtNS44NzguMjI4LS4zNjYuNDY5LS43MTMuNzI2LTEuMDY2Ljg0Ni0xLjE1OSAxLjc5MS0yLjQ1MyAyLjAyMy00Ljg3OSAxLjQ1Ni40NTMgNC4wNTQgMi4wNjkgNC4wNTQgNy44MjNoMmMwLTEuNjMtLjE5MS0yLjk5LS41MDYtNC4xMzIuNjM3LTIuMjczIDEuNzYxLTMuMjE4IDIuNTY3LTMuNjAxLjIzOCAyLjM0NiAxLjEzNyAzLjU3IDIuMDEgNC43NTkuMjYyLjM1Ny41MDcuNzA4LjczOCAxLjA4LS40ODMgMS40MTgtLjgwOSAzLjMyNC0uODA5IDUuODk0aDJjMC00LjkwNiAxLjIxNC02LjgwNyAyLjA5OC03LjU0Mi4zMjUgMi4zMTUgMS40MTEgMy43MjIgMi40NjYgNS4wOSAxLjI1MyAxLjYyNCAyLjQzNiAzLjE1OCAyLjQzNiA2LjQ1MiAwIDUuODk4LTQuMTMyIDgtOCA4eiIvPgogICAgPC9nPgo8L3N2Zz4=",qfe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQ2NywwSDQ1QzIwLjE4NywwLDAsMjAuMTg3LDAsNDV2NDIyYzAsMjQuODEzLDIwLjE4Nyw0NSw0NSw0NWg0MjJjMjQuODEzLDAsNDUtMjAuMTg3LDQ1LTQ1VjQ1CgkJCUM1MTIsMjAuMTg3LDQ5MS44MTMsMCw0NjcsMHogTTQ4Miw0NjdjMCw4LjI3MS02LjcyOSwxNS0xNSwxNUg0NWMtOC4yNzEsMC0xNS02LjcyOS0xNS0xNVY0NWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1aDQyMgoJCQljOC4yNzEsMCwxNSw2LjcyOSwxNSwxNVY0Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI1Niw4MWMtOTYuNDk1LDAtMTc1LDc4LjUwNS0xNzUsMTc1czc4LjUwNSwxNzUsMTc1LDE3NXMxNzUtNzguNTA1LDE3NS0xNzVTMzUyLjQ5NSw4MSwyNTYsODF6IE0yNTYsNDAxCgkJCWMtNzkuOTUzLDAtMTQ1LTY1LjA0Ny0xNDUtMTQ1czY1LjA0Ny0xNDUsMTQ1LTE0NXMxNDUsNjUuMDQ3LDE0NSwxNDVTMzM1Ljk1Myw0MDEsMjU2LDQwMXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTg3LDIxNmMtMjIuMDU2LDAtNDAsMTcuOTQ0LTQwLDQwYzAsMjIuMDU2LDE3Ljk0NCw0MCw0MCw0MGMyMi4wNTYsMCw0MC0xNy45NDQsNDAtNDBDMjI3LDIzMy45NDQsMjA5LjA1NiwyMTYsMTg3LDIxNnoKCQkJIE0xODcsMjY2Yy01LjUxNCwwLTEwLTQuNDg2LTEwLTEwYzAtNS41MTQsNC40ODYtMTAsMTAtMTBjNS41MTQsMCwxMCw0LjQ4NiwxMCwxMEMxOTcsMjYxLjUxNCwxOTIuNTE0LDI2NiwxODcsMjY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMjUsMjE2Yy0yMi4wNTYsMC00MCwxNy45NDQtNDAsNDBjMCwyMi4wNTYsMTcuOTQ0LDQwLDQwLDQwYzIyLjA1NiwwLDQwLTE3Ljk0NCw0MC00MEMzNjUsMjMzLjk0NCwzNDcuMDU2LDIxNiwzMjUsMjE2egoJCQkgTTMyNSwyNjZjLTUuNTE0LDAtMTAtNC40ODYtMTAtMTBjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwQzMzNSwyNjEuNTE0LDMzMC41MTQsMjY2LDMyNSwyNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",exe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMzYwLDBIMTIwQzk3LjkyLDAuMDI2LDgwLjAyNiwxNy45Miw4MCw0MHYzNjhjMC4wMjQsMTkuMDAxLDEzLjM4OSwzNS4zNzMsMzIsMzkuMlY0ODBoNDh2LTMyaDE2MHYzMmg0OHYtMzIuOAoJCQljMTguNjExLTMuODI3LDMxLjk3Ni0yMC4xOTksMzItMzkuMlY0MEMzOTkuOTc0LDE3LjkyLDM4Mi4wOCwwLjAyNiwzNjAsMHogTTE0NCw0NjRoLTE2di0xNmgxNlY0NjR6IE0zNTIsNDY0aC0xNnYtMTZoMTZWNDY0egoJCQkgTTM4NCw0MDhjMCwxMy4yNTUtMTAuNzQ1LDI0LTI0LDI0SDEyMGMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0VjQwYzAtMTMuMjU1LDEwLjc0NS0yNCwyNC0yNGgyNDBjMTMuMjU1LDAsMjQsMTAuNzQ1LDI0LDI0VjQwOAoJCQl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwxNjBjLTcwLjY5MiwwLTEyOCw1Ny4zMDgtMTI4LDEyOGMwLjA4NCw3MC42NTgsNTcuMzQyLDEyNy45MTYsMTI4LDEyOGM3MC42OTIsMCwxMjgtNTcuMzA4LDEyOC0xMjgKCQkJUzMxMC42OTIsMTYwLDI0MCwxNjB6IE0yNDAsNDAwYy02MS44NTYsMC0xMTItNTAuMTQ0LTExMi0xMTJjMC4wNjYtNjEuODI4LDUwLjE3Mi0xMTEuOTM0LDExMi0xMTJjNjEuODU2LDAsMTEyLDUwLjE0NCwxMTIsMTEyCgkJCVMzMDEuODU2LDQwMCwyNDAsNDAweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAsMTkyYy01My4wMTksMC05Niw0Mi45ODEtOTYsOTZjMC4wNTcsNTIuOTk2LDQzLjAwNCw5NS45NDMsOTYsOTZjNTMuMDE5LDAsOTYtNDIuOTgxLDk2LTk2UzI5My4wMTksMTkyLDI0MCwxOTJ6CgkJCSBNMjQwLDM2OGMtNDQuMTgzLDAtODAtMzUuODE3LTgwLTgwYzAuMDQ5LTQ0LjE2MywzNS44MzctNzkuOTUyLDgwLTgwYzQ0LjE4MywwLDgwLDM1LjgxNyw4MCw4MEMzMjAsMzMyLjE4MywyODQuMTgzLDM2OCwyNDAsMzY4CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQwLDMyYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMyOTYsNTcuMDcyLDI3MC45MjgsMzIsMjQwLDMyeiBNMjQwLDEyOGMtMjIuMDkxLDAtNDAtMTcuOTA5LTQwLTQwYzAuMDI2LTIyLjA4LDE3LjkyLTM5Ljk3NCw0MC00MGMyMi4wOTEsMCw0MCwxNy45MDksNDAsNDAKCQkJUzI2Mi4wOTEsMTI4LDI0MCwxMjh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCw2NGMtMTMuMjU1LDAtMjQsMTAuNzQ1LTI0LDI0czEwLjc0NSwyNCwyNCwyNHMyNC0xMC43NDUsMjQtMjRTMjUzLjI1NSw2NCwyNDAsNjR6IE0yNDAsOTZjLTQuNDE4LDAtOC0zLjU4Mi04LTgKCQkJczMuNTgyLTgsOC04czgsMy41ODIsOCw4UzI0NC40MTgsOTYsMjQwLDk2eiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjM1MiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iNDAwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz4KICAgICAgICA8cmVjdCB4PSIzNTIiIHk9IjQwMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwyNDhjLTIyLjA5MSwwLTQwLDE3LjkwOS00MCw0MGMwLjAyNiwyMi4wOCwxNy45MiwzOS45NzQsNDAsNDBjMjIuMDkxLDAsNDAtMTcuOTA5LDQwLTQwCgkJCUMyODAsMjY1LjkwOSwyNjIuMDkxLDI0OCwyNDAsMjQ4eiBNMjQwLDMxMmMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNHMyNCwxMC43NDUsMjQsMjRTMjUzLjI1NSwzMTIsMjQwLDMxMnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDgsMjgwSDE2Yy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThTNTIuNDE4LDI4MCw0OCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjY1NiwyMjYuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNjktOC4yNDMtMi45ODEtMTEuMzEyLDAuMTk3Yy0yLjk5NCwzLjEtMi45OTQsOC4wMTUsMCwxMS4xMTVsMjQsMjQKCQkJYzMuMTc4LDMuMDY5LDguMjQzLDIuOTgxLDExLjMxMi0wLjE5N0M1Ni42NSwyMzQuMzU5LDU2LjY1LDIyOS40NDQsNTMuNjU2LDIyNi4zNDR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjQ2LDMzOC4zNDRjLTMuMS0yLjk5NS04LjAxNi0yLjk5NS0xMS4xMTYsMGwtMjQsMjRjLTMuMTc4LDMuMDctMy4yNjYsOC4xMzQtMC4xOTYsMTEuMzEyczguMTM0LDMuMjY2LDExLjMxMiwwLjE5NgoJCQljMC4wNjctMC4wNjQsMC4xMzItMC4xMywwLjE5Ni0wLjE5NmwyNC0yNEM1Ni43MjYsMzQ2LjQ3OCw1Ni42MzgsMzQxLjQxNCw1My40NiwzMzguMzQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjQsMjgwaC0zMmMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGgzMmM0LjQxOCwwLDgtMy41ODIsOC04UzQ2OC40MTgsMjgwLDQ2NCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2MS40NiwyMDIuMzQ0Yy0zLjEtMi45OTQtOC4wMTUtMi45OTQtMTEuMTE2LDBsLTI0LDI0Yy0zLjEyNCwzLjEyNS0zLjEyMyw4LjE5LDAuMDAyLDExLjMxNAoJCQljMS41LDEuNDk5LDMuNTM0LDIuMzQyLDUuNjU0LDIuMzQyYzIuMTIyLDAsNC4xNTYtMC44NDQsNS42NTYtMi4zNDRsMjQtMjRDNDY0LjcyNiwyMTAuNDc4LDQ2NC42MzgsMjA1LjQxNCw0NjEuNDYsMjAyLjM0NHoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjY1NiwzNjIuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNy04LjI0Mi0yLjk4Mi0xMS4zMTIsMC4xOTZjLTIuOTk1LDMuMS0yLjk5NSw4LjAxNiwwLDExLjExNmwyNCwyNAoJCQljMy4xNzgsMy4wNyw4LjI0MiwyLjk4MiwxMS4zMTItMC4xOTZDNDY0LjY1MSwzNzAuMzYsNDY0LjY1MSwzNjUuNDQ0LDQ2MS42NTYsMzYyLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",txe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTEyIDU2LjE2NDA2MmMwLTEyLjc5Njg3NC0xMC40MDYyNS0yMy4yMDMxMjQtMjMuMjAzMTI1LTIzLjIwMzEyNGgtNDkuOTY4NzV2LTE1LjA0Njg3NmMwLTkuODc4OTA2LTguMDM1MTU2LTE3LjkxNDA2Mi0xNy45MTQwNjMtMTcuOTE0MDYyaC0xMDMuMDg5ODQzYy05Ljg3ODkwNyAwLTE3LjkxNDA2MyA4LjAzOTA2Mi0xNy45MTQwNjMgMTcuOTE0MDYydjE1LjA0Njg3NmgtODcuODE2NDA2di0xNS4wNDY4NzZjMC05Ljg3ODkwNi04LjAzOTA2Mi0xNy45MTQwNjItMTcuOTE3OTY5LTE3LjkxNDA2MmgtMTAzLjA4OTg0M2MtOS44Nzg5MDcgMC0xNy45MTQwNjMgOC4wMzkwNjItMTcuOTE0MDYzIDE3LjkxNDA2MnYxNS4wNDY4NzZoLTQ5Ljk2ODc1Yy0xMi43OTY4NzUgMC0yMy4yMDMxMjUgMTAuNDA2MjUtMjMuMjAzMTI1IDIzLjIwMzEyNHY0OS41YzAgNi4wNTA3ODIgMi4zMjgxMjUgMTEuNTYyNSA2LjEzNjcxOSAxNS42OTkyMTktMy44MDg1OTQgNC4xMzI4MTMtNi4xMzY3MTkgOS42NDg0MzgtNi4xMzY3MTkgMTUuNjk5MjE5djMwNS44MDg1OTRjMCAxMi43OTI5NjggMTAuNDA2MjUgMjMuMjAzMTI1IDIzLjIwMzEyNSAyMy4yMDMxMjVoMi4zNzg5MDZ2MjIuNDUzMTI1YzAgMTIuNzgxMjUgMTAuMzk4NDM4IDIzLjE3NTc4MSAyMy4xNzk2ODggMjMuMTc1NzgxaDIzMi42MTcxODdjNC4xNDQ1MzIgMCA3LjUwMzkwNi0zLjM1OTM3NSA3LjUwMzkwNi03LjUgMC00LjE0NDUzMS0zLjM1OTM3NC03LjUwMzkwNi03LjUwMzkwNi03LjUwMzkwNmgtMjMyLjYxNzE4N2MtNC41MDc4MTMgMC04LjE3MTg3NS0zLjY2Nzk2OS04LjE3MTg3NS04LjE3MTg3NXYtMjIuNDUzMTI1aDQzMC44MjAzMTJ2MjIuNDUzMTI1YzAgNC41MDc4MTItMy42NjQwNjIgOC4xNzE4NzUtOC4xNzE4NzUgOC4xNzE4NzVoLTE0Ny4xMjVjLTQuMTQ4NDM3IDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41MDM5MDYgMCA0LjE0MDYyNSAzLjM1NTQ2OSA3LjUgNy41MDM5MDYgNy41aDE0Ny4xMjVjMTIuNzgxMjUgMCAyMy4xNzk2ODgtMTAuMzk0NTMxIDIzLjE3OTY4OC0yMy4xNzU3ODF2LTIyLjQ1MzEyNWgyLjM3ODkwNmMxMi43OTI5NjkgMCAyMy4yMDMxMjUtMTAuNDEwMTU3IDIzLjIwMzEyNS0yMy4yMDMxMjV2LTMwNS44MDg1OTRjMC02LjA1MDc4MS0yLjMzMjAzMS0xMS41NjY0MDYtNi4xMzY3MTktMTUuNjk5MjE5IDMuODA0Njg4LTQuMTM2NzE5IDYuMTM2NzE5LTkuNjQ4NDM3IDYuMTM2NzE5LTE1LjY5OTIxOXptLTE5Ny4wODU5MzgtMzguMjVjMC0xLjYwNTQ2OCAxLjMwNDY4OC0yLjkwNjI1IDIuOTEwMTU3LTIuOTA2MjVoMTAzLjA4OTg0M2MxLjYwNTQ2OSAwIDIuOTEwMTU3IDEuMzA0Njg4IDIuOTEwMTU3IDIuOTA2MjV2MTUuMDQ2ODc2aC0xMDguOTEwMTU3em0tMjI2LjczODI4MSAwYzAtMS42MDU0NjggMS4zMDQ2ODgtMi45MDYyNSAyLjkxMDE1Ny0yLjkwNjI1aDEwMy4wODk4NDNjMS42MDU0NjkgMCAyLjkxMDE1NyAxLjMwNDY4OCAyLjkxMDE1NyAyLjkwNjI1djE1LjA0Njg3NmgtMTA4LjkxMDE1N3ptNDA4LjgxNjQwNyA0MjQuOTU3MDMyYzAgNC41MTk1MzEtMy42NzU3ODIgOC4xOTkyMTgtOC4xOTUzMTMgOC4xOTkyMThoLTQ2NS41OTM3NWMtNC41MTk1MzEgMC04LjE5NTMxMy0zLjY3OTY4Ny04LjE5NTMxMy04LjE5OTIxOHYtMzA1LjgwODU5NGMwLTQuNTE5NTMxIDMuNjc1NzgyLTguMTk5MjE5IDguMTk1MzEzLTguMTk5MjE5aDQ2NS41OTM3NWM0LjUyMzQzNyAwIDguMTk1MzEzIDMuNjc5Njg4IDguMTk1MzEzIDguMTk5MjE5em0wLTMzNy4yMDcwMzJjMCA0LjUxOTUzMi0zLjY3NTc4MiA4LjE5NTMxMy04LjE5NTMxMyA4LjE5NTMxM2gtNDY1LjU5Mzc1Yy00LjUxOTUzMSAwLTguMTk1MzEzLTMuNjc1NzgxLTguMTk1MzEzLTguMTk1MzEzdi00OS41YzAtNC41MjM0MzcgMy42NzU3ODItOC4xOTkyMTggOC4xOTUzMTMtOC4xOTkyMThoNDY1LjU5Mzc1YzQuNTE5NTMxIDAgOC4xOTUzMTMgMy42NzU3ODEgOC4xOTUzMTMgOC4xOTkyMTh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMDk3NjU2IDU1LjE1MjM0NGMtMTQuMjA3MDMxIDAtMjUuNzYxNzE4IDExLjU1NDY4Ny0yNS43NjE3MTggMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1NDY4NyAyNS43NjE3MTkgMjUuNzYxNzE4IDI1Ljc2MTcxOSAxNC4yMDMxMjUgMCAyNS43NjE3MTktMTEuNTU0Njg3IDI1Ljc2MTcxOS0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU4NTk0LTI1Ljc1NzgxMi0yNS43NjE3MTktMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODcgMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE5LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg4IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOCAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3OS4xNjc5NjkgNTUuMTUyMzQ0Yy0xNC4yMDcwMzEgMC0yNS43NjE3MTkgMTEuNTU0Njg3LTI1Ljc2MTcxOSAyNS43NTc4MTIgMCAxNC4yMDcwMzIgMTEuNTU0Njg4IDI1Ljc2MTcxOSAyNS43NjE3MTkgMjUuNzYxNzE5IDE0LjIwMzEyNSAwIDI1Ljc1NzgxMi0xMS41NTQ2ODcgMjUuNzU3ODEyLTI1Ljc2MTcxOSAwLTE0LjIwMzEyNS0xMS41NTQ2ODctMjUuNzU3ODEyLTI1Ljc1NzgxMi0yNS43NTc4MTJ6bTAgMzYuNTE1NjI1Yy01LjkzMzU5NCAwLTEwLjc1NzgxMy00LjgyNDIxOS0xMC43NTc4MTMtMTAuNzUzOTA3IDAtNS45Mjk2ODcgNC44MjQyMTktMTAuNzU3ODEyIDEwLjc1NzgxMy0xMC43NTc4MTIgNS45Mjk2ODcgMCAxMC43NTM5MDYgNC44MjgxMjUgMTAuNzUzOTA2IDEwLjc1NzgxMiAwIDUuOTI5Njg4LTQuODI0MjE5IDEwLjc1MzkwNy0xMC43NTM5MDYgMTAuNzUzOTA3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzMyLjgzMjAzMSA1NS4xNTIzNDRjLTE0LjIwMzEyNSAwLTI1Ljc1NzgxMiAxMS41NTQ2ODctMjUuNzU3ODEyIDI1Ljc1NzgxMiAwIDE0LjIwNzAzMiAxMS41NTQ2ODcgMjUuNzYxNzE5IDI1Ljc1NzgxMiAyNS43NjE3MTkgMTQuMjA3MDMxIDAgMjUuNzYxNzE5LTExLjU1NDY4NyAyNS43NjE3MTktMjUuNzYxNzE5IDAtMTQuMjAzMTI1LTExLjU1NDY4OC0yNS43NTc4MTItMjUuNzYxNzE5LTI1Ljc1NzgxMnptMCAzNi41MTU2MjVjLTUuOTI5Njg3IDAtMTAuNzUzOTA2LTQuODI0MjE5LTEwLjc1MzkwNi0xMC43NTM5MDcgMC01LjkyOTY4NyA0LjgyNDIxOS0xMC43NTc4MTIgMTAuNzUzOTA2LTEwLjc1NzgxMiA1LjkzMzU5NCAwIDEwLjc1NzgxMyA0LjgyODEyNSAxMC43NTc4MTMgMTAuNzU3ODEyIDAgNS45Mjk2ODgtNC44MjQyMTkgMTAuNzUzOTA3LTEwLjc1NzgxMyAxMC43NTM5MDd6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDUuOTAyMzQ0IDU1LjE1MjM0NGMtMTQuMjAzMTI1IDAtMjUuNzYxNzE5IDExLjU1NDY4Ny0yNS43NjE3MTkgMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1ODU5NCAyNS43NjE3MTkgMjUuNzYxNzE5IDI1Ljc2MTcxOSAxNC4yMDcwMzEgMCAyNS43NjE3MTgtMTEuNTU0Njg3IDI1Ljc2MTcxOC0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU0Njg3LTI1Ljc1NzgxMi0yNS43NjE3MTgtMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODggMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE4LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg3IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOSAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzNC43NDIxODggMTcxLjkzNzVoLTIxOC4xNDg0MzhjLTQuMTQ0NTMxIDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41IDAgNC4xNDQ1MzEgMy4zNTkzNzUgNy41MDM5MDYgNy41MDM5MDYgNy41MDM5MDZoMjE4LjE0ODQzOGMxLjQzNzUgMCAyLjYwNTQ2OCAxLjE3MTg3NSAyLjYwNTQ2OCAyLjYwOTM3NXYxOS44NTE1NjNjMCAxLjQzNzUtMS4xNjc5NjggMi42MDkzNzUtMi42MDU0NjggMi42MDkzNzVoLTM1Ny40ODQzNzZjLTEuNDM3NSAwLTIuNjA1NDY4LTEuMTcxODc1LTIuNjA1NDY4LTIuNjA5Mzc1di0xOS44NTE1NjNjMC0xLjQzNzUgMS4xNjc5NjgtMi42MDkzNzUgMi42MDU0NjgtMi42MDkzNzVoMTA0LjI2OTUzMmM0LjE0NDUzMSAwIDcuNTAzOTA2LTMuMzU5Mzc1IDcuNTAzOTA2LTcuNTAzOTA2IDAtNC4xNDA2MjUtMy4zNTkzNzUtNy41LTcuNTAzOTA2LTcuNWgtMTA0LjI2OTUzMmMtOS43MTA5MzcgMC0xNy42MDkzNzQgNy44OTg0MzgtMTcuNjA5Mzc0IDE3LjYxMzI4MXYxOS44NTE1NjNjMCA5LjcxMDkzNyA3Ljg5ODQzNyAxNy42MTMyODEgMTcuNjA5Mzc0IDE3LjYxMzI4MWgxMC4wMzUxNTd2MTY2LjQ2NDg0NGMwIDE0LjI3NzM0MyAxMS42MTcxODcgMjUuODk0NTMxIDI1Ljg5NDUzMSAyNS44OTQ1MzFoMjg1LjYyNWMxNC4yNzczNDQgMCAyNS44OTQ1MzEtMTEuNjE3MTg4IDI1Ljg5NDUzMS0yNS44OTQ1MzF2LTE2Ni40NjQ4NDRoMTAuMDM1MTU3YzkuNzEwOTM3IDAgMTcuNjEzMjgxLTcuODk4NDM3IDE3LjYxMzI4MS0xNy42MTMyODF2LTE5Ljg1MTU2M2MwLTkuNzEwOTM3LTcuOTAyMzQ0LTE3LjYxMzI4MS0xNy42MTMyODEtMTcuNjEzMjgxem0tMjUuMDQyOTY5IDIyMS41NDI5NjljMCA2LjAwMzkwNi00Ljg4MjgxMyAxMC44ODY3MTktMTAuODg2NzE5IDEwLjg4NjcxOWgtMjg1LjYyNWMtNi4wMDM5MDYgMC0xMC44OTA2MjUtNC44ODI4MTMtMTAuODkwNjI1LTEwLjg4NjcxOXYtMTY2LjQ2NDg0NGgzMDcuNDAyMzQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyLjU0Mjk2OSAyOTQuODU5Mzc1YzIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNiA1LjUyMzQzNy0yLjQyMTg3NWwyMy4wMTE3MTktMjUuMDE1NjI1YzIuODA4NTk0LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDYtMTAuNjAxNTYzLTMuMDUwNzgxLTIuODA0Njg3LTcuNzkyOTY5LTIuNjA5Mzc0LTEwLjYwMTU2My40NDE0MDdsLTIzLjAxMTcxOCAyNS4wMTU2MjVjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA5Mzc2IDcuNzkyOTY4LjQ0MTQwNiAxMC42MDE1NjIgMS40NDE0MDYgMS4zMjQyMTkgMy4yNjE3MTggMS45ODA0NjkgNS4wNzgxMjUgMS45ODA0Njl6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTQuMTg3NSAzMjQuMTM2NzE5YzEuNDQxNDA2IDEuMzI4MTI1IDMuMjYxNzE5IDEuOTgwNDY5IDUuMDc4MTI1IDEuOTgwNDY5IDIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNyA1LjUyMzQzNy0yLjQyMTg3Nmw0Ny4zMTY0MDctNTEuNDI5Njg3YzIuODA0Njg3LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDctMTAuNjA1NDY5LTMuMDUwNzgxLTIuODA0Njg3LTcuNzk2ODc0LTIuNjA1NDY4LTEwLjYwMTU2Mi40NDE0MDZsLTQ3LjMxNjQwNiA1MS40MzM1OTRjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA1NDY5IDcuNzk2ODc1LjQ0MTQwNiAxMC42MDE1NjN6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",sxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMjIuMjUgMTcuMjY2aC0xMTYuNWE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NSA1Ljc1djY3Ljk5NGE1Ljc1NyA1Ljc1NyAwIDAgMCA1Ljc1IDUuNzVoOS44ODNsLTMuMDY4IDQuNDRhNi4wNzkgNi4wNzkgMCAwIDAgMTAgNi45MTJsNy44NDctMTEuMzUyaDY3LjE3Nmw3Ljg0NCAxMS4zNTFhNi4wNzkgNi4wNzkgMCAwIDAgMTAtNi45MTJsLTMuMDY4LTQuNDM5aDkuODgzYTUuNzU3IDUuNzU3IDAgMCAwIDUuNzUzLTUuNzV2LTY3Ljk5NGE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NS01Ljc1em0tMTAyLjU2MSA4OC44NTZhMi41ODIgMi41ODIgMCAwIDEgLTIuMTIyIDEuMTEyIDIuNTggMi41OCAwIDAgMSAtMi4xMjMtNC4wNDZsNC40NDMtNi40MjhoNi4yNzF6bTkyLjg2Ny0yLjkzNGEyLjU4IDIuNTggMCAwIDEgLTIuMTIzIDQuMDQ2IDIuNTg1IDIuNTg1IDAgMCAxIC0yLjEyMy0xLjExMmwtNi40NjgtOS4zNjJoNi4yNzF6bTExLjk0NC0xMi4xNzhhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUgMi4yNWgtMTE2LjVhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUtMi4yNXYtNjcuOTk0YTIuMjUzIDIuMjUzIDAgMCAxIDIuMjUtMi4yNWgxMTYuNWEyLjI1MyAyLjI1MyAwIDAgMSAyLjI1IDIuMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExOC4yNSAyNS4yNjZoLTEwOC41YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1IDEuNzV2NTkuOTk0YTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzVoMTA4LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNTkuOTk0YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1LTEuNzV6bS0xLjc1IDU5Ljk5NGgtMTA1di01Ni40OTRoMTA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4zNzUgNDcuOTIyaDcuM3YxOS45MzJhMS43NSAxLjc1IDAgMCAwIDMuNSAwdi0xOS45MzJoNy4zYTEuNzUgMS43NSAwIDAgMCAwLTMuNWgtMTguMWExLjc1IDEuNzUgMCAwIDAgMCAzLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTc1Ljk2MyA2OC41MjdhMS43NDkgMS43NDkgMCAwIDAgMy4yMyAwbDkuMDQ3LTIxLjY4MWExLjc1IDEuNzUgMCAxIDAgLTMuMjMtMS4zNDZsLTcuNDMyIDE3LjgwOS03LjQzMi0xNy44MDlhMS43NSAxLjc1IDAgMSAwIC0zLjIzIDEuMzQ4eiIvPgogICAgPC9nPgo8L3N2Zz4=",ixe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTksMkg1QTMsMywwLDAsMCwyLDVWNTlhMywzLDAsMCwwLDMsM0g1OWEzLDMsMCwwLDAsMy0zVjVBMywzLDAsMCwwLDU5LDJabTEsNTdhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWNUExLDEsMCwwLDEsNSw0SDU5YTEsMSwwLDAsMSwxLDFaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDZBMjYsMjYsMCwxLDAsNTgsMzIsMjYuMDI5LDI2LjAyOSwwLDAsMCwzMiw2Wm0wLDUwQTI0LDI0LDAsMSwxLDU2LDMyLDI0LjAyOCwyNC4wMjgsMCwwLDEsMzIsNTZaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDEwQTIyLDIyLDAsMSwwLDU0LDMyLDIyLjAyNSwyMi4wMjUsMCwwLDAsMzIsMTBabTEwLjE3NSw0LjgxM2MyLjQ2OSw5LjU1LTMuNjEzLDEyLjktNi40MjgsMTMuOTExYTUsNSwwLDAsMC0xLjY1LTEuMjQ3LDExLjM3NCwxMS4zNzQsMCwwLDAsMy4zMTEtNi43OTRjLjI0OS0yLjg0NS0uNzktNS43MDYtMy4wNS04LjUzMUExOS44MjQsMTkuODI0LDAsMCwxLDQyLjE3NSwxNC44MTNaTTM1LDMyYTMsMywwLDEsMS0zLTNBMywzLDAsMCwxLDM1LDMyWk0zMS41ODYsMTIuMDIxYzIuNzY3LDIuODczLDQuMDY2LDUuNzIyLDMuODMxLDguNDdhMTAuMSwxMC4xLDAsMCwxLTMuNzg0LDYuNTMsMTkuNjUyLDE5LjY1MiwwLDAsMC05LjU4NS0xMi4zNDRBMTkuODM4LDE5LjgzOCwwLDAsMSwzMS41ODYsMTIuMDIxWk0yMC4xMiwxNS45NDhhMTcuNjU3LDE3LjY1NywwLDAsMSw5LjU5MiwxMS42MzMsNC45NTEsNC45NTEsMCwwLDAtLjk1Ny42NDcsMTguODg2LDE4Ljg4NiwwLDAsMC0xNC4zMzgtNS43NTJBMjAuMTI2LDIwLjEyNiwwLDAsMSwyMC4xMiwxNS45NDhaTTEyLDMyYTE5Ljg3LDE5Ljg3LDAsMCwxLDEuNDQyLTcuNDE2QTE2LjM4NSwxNi4zODUsMCwwLDEsMjUuODE2LDI4LjI2YTEzLjc5LDEzLjc5LDAsMCwwLTguMDY0LDEuMjkxQTEyLjY0NCwxMi42NDQsMCwwLDAsMTIuMzExLDM1LjQsMTkuOTEzLDE5LjkxMywwLDAsMSwxMiwzMlptMS4xNjQsNi42NmMxLjEzLTMuNTI5LDIuOTgyLTYsNS41Mi03LjM0YTEyLjY0MywxMi42NDMsMCwwLDEsOC41NjEtLjc4N0E0LjkxOSw0LjkxOSwwLDAsMCwyNywzMmMwLC4xMDkuMDI1LjIxMS4wMzIuMzE4LTIuMDA4LjkxNS03Ljk2MSw0LjQyLTguOSwxNC4wNjNBMjAuMDM0LDIwLjAzNCwwLDAsMSwxMy4xNjQsMzguNjZabTYuODc4LDkuMzMzYy4zNjQtOS4yNzksNS41NjMtMTIuNzQzLDcuNTMxLTEzLjcxOWE1LDUsMCwwLDAsMS4wNjUsMS40Yy0uOTU4LDIuNjA5LTIuODUzLDkuNzkxLDIuMTA4LDE2LjI2MUExOS44NTYsMTkuODU2LDAsMCwxLDIwLjA0Miw0Ny45OTNaTTMzLjM4MSw1MS45M2MtNS40LTUuNzMzLTMuOTItMTIuNDk1LTIuOTg4LTE1LjIxOUE0LjkyOSw0LjkyOSwwLDAsMCwzMiwzN2MuMDgxLDAsLjE1Ni0uMDIuMjM1LS4wMjQuNiwzLjA0OSwyLjgyOSw5LjIyMywxMS4xMTEsMTEuNDc1QTE5Ljg1NiwxOS44NTYsMCwwLDEsMzMuMzgxLDUxLjkzWm0xMS45NjYtNS4wNzhjLTguNDQxLTEuNjE3LTEwLjYyMy03LjI5Mi0xMS4xNzQtMTAuMzdhNS4wMDYsNS4wMDYsMCwwLDAsMS4wODQtLjcxOWMxLjg2OCwxLjksNi4yMTUsNS42MzMsMTEuNTIyLDUuNjMzYTExLjIwOCwxMS4yMDgsMCwwLDAsMy4wODUtLjQ1NUEyMC4wNjksMjAuMDY5LDAsMCwxLDQ1LjM0Nyw0Ni44NTJaTTUyLDMyYTE5LjksMTkuOSwwLDAsMS0xLjA3NCw2LjQxNGMtNi41MDcsMy4xMi0xMi40NjItMi4xODQtMTQuNDM4LTQuMjUxYTQuOTI3LDQuOTI3LDAsMCwwLC4zNjktMS4wMjUsMTYuNiwxNi42LDAsMCwwLDEuNzg5LjA5NCwxOC4zMjgsMTguMzI4LDAsMCwwLDEyLjkyNi01LjMzOUEyMCwyMCwwLDAsMSw1MiwzMlptLTE1LjA4OC0uODY4YTQuNzQ1LDQuNzQ1LDAsMCwwLS4xNzMtLjY1YzIuOTI2LTEuMTU1LDkuMjM0LTQuNzY2LDcuODE3LTE0LjAyOGEyMC4wNTcsMjAuMDU3LDAsMCwxLDYuMzk0LDkuMkExNi4zNDQsMTYuMzQ0LDAsMCwxLDM2LjkxMiwzMS4xMzJaIi8+CiAgICAgICAgPHBhdGggZD0iTTksMTJBMywzLDAsMSwwLDYsOSwzLDMsMCwwLDAsOSwxMlpNOSw4QTEsMSwwLDEsMSw4LDksMSwxLDAsMCwxLDksOFoiLz4KICAgICAgICA8cGF0aCBkPSJNNTUsNmEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCw1NSw2Wm0wLDRhMSwxLDAsMSwxLDEtMUExLDEsMCwwLDEsNTUsMTBaIi8+CiAgICAgICAgPHBhdGggZD0iTTEyLDU1YTMsMywwLDAsMC0zLTMsMi45NjYsMi45NjYsMCwwLDAtMSwuMTg0VjQ1SDZWNTVhMywzLDAsMCwwLDMsM2g2VjU2SDExLjgxNkEyLjk2NiwyLjk2NiwwLDAsMCwxMiw1NVpNOSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw5LDU2WiIvPgogICAgICAgIDxwYXRoIGQ9Ik01Niw1Mi4xODRBMi45NjYsMi45NjYsMCwwLDAsNTUsNTJhMywzLDAsMCwwLTMsMywyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDV2Mkg1NWEzLDMsMCwwLDAsMy0zVjQ5SDU2Wk01NSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw1NSw1NloiLz4KICAgICAgICA8cmVjdCB4PSIxNyIgeT0iNTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",rxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyOC42MDcgNDI4LjYwNyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00MjMuNzczLDM0My44NzFMNDIzLjc3MywzNDMuODcxYy02LjYxNy00LjU5OS0xMi40NC0xMC4yNDYtMTcuMjQxLTE2LjcxOGMtMTEuNDk0LTEzLjA2MS0yNi4xMjItMjkuMjU3LTUzLjI5LTI5LjI1NwoJCQkJYy0yNy4xNjcsMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtMTAuOTcxLTEyLjUzOS0yNS42LTI5Ljc4LTUzLjI5LTI5Ljc4Yy0yNy42OSwwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1CgkJCQlzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1Yy03LjQ1OC05Ljg1LTE2Ljg4OS0xOC4wMzUtMjcuNjktMjQuMDMzYy01LjE5NC0yLjU5Ny0xMS41MDktMC40OTItMTQuMTA2LDQuNzAyCgkJCQljLTIuNTk3LDUuMTk0LTAuNDkyLDExLjUwOSw0LjcwMiwxNC4xMDZjOC4yMDMsNC45NDQsMTUuNDU3LDExLjMxNCwyMS40MiwxOC44MDhjMTIuMDE2LDE0LjEwNiwyNi4xMjIsMjkuNzgsNTMuMjksMjkuNzgKCQkJCXM0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4YzEyLjAxNi0xNC4xMDYsMTkuODUzLTIyLjQ2NSwzNy42MTYtMjIuNDY1czI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1CgkJCQljMTAuOTcxLDEyLjUzOSwyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4YzI3LjY5LDAsNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NQoJCQkJYzE3Ljc2MywwLDI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1YzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDM1My41OTQsNDI4LjY3OSwzNDcuMDQ1LDQyMy43NzMsMzQzLjg3MXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDIzLjc3MywyNjUuNTAzTDQyMy43NzMsMjY1LjUwM2MtNi42MTctNC41OTktMTIuNDQtMTAuMjQ2LTE3LjI0MS0xNi43MThjLTExLjQ5NC0xMy4wNjEtMjYuMTIyLTI5LjI1Ny01My4yOS0yOS4yNTcKCQkJCWMtMjcuMTY3LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjVzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1CgkJCQljLTEwLjk3MS0xMi41MzktMjUuNi0yOS43OC01My4yOS0yOS43OGMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NQoJCQkJcy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJcy0wLjQ5MiwxMS41MDksNC43MDIsMTQuMTA2YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NWM0LjkwNSwzLjE3NCwxMS40NTUsMS43NzEsMTQuNjI5LTMuMTM1CgkJCQlDNDMwLjA4MiwyNzUuMjI3LDQyOC42NzksMjY4LjY3Nyw0MjMuNzczLDI2NS41MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyMy43NzMsMTgxLjkxMUw0MjMuNzczLDE4MS45MTFjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhzLTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjVzLTI1LjYtMjkuNzgtNTMuMjktMjkuNzgKCQkJCWMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMmMtMi41OTcsNS4xOTQtMC40OTIsMTEuNTA5LDQuNzAyLDE0LjEwNgoJCQkJYzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4czQxLjI3My0xNS42NzMsNTMuMjktMjkuNzgKCQkJCWMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NXMyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQljMjcuNjksMCw0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4czE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDE5MS42MzUsNDI4LjY3OSwxODUuMDg1LDQyMy43NzMsMTgxLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNS44MTQsODIuMTI0YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NmM0LjkwNSwzLjE3NCwxMS40NTUsMS43NywxNC42MjktMy4xMzUKCQkJCWMzLjE3NC00LjkwNSwxLjc3MS0xMS40NTUtMy4xMzUtMTQuNjI5aDBjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1cy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NQoJCQkJYy0xMC45NzEtMTIuNTM5LTI1LjYtMjkuNzgtNTMuMjktMjkuNzhjLTI3LjY5LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjUKCQkJCVM1My44OCw5OS44ODcsNDIuOTA4LDg3LjM0OGMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJUzAuNjIxLDc5LjUyNyw1LjgxNCw4Mi4xMjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",oxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwOCA1MDgiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxMzkuMyIgd2lkdGg9IjE2LjQiIGhlaWdodD0iMzguMiIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTA0LjEsMjEuNCA4OC45LDI3LjcgOTgsNDkuOCAxMTMuMiw0My41IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNy41LDg5LjQgMjEuMywxMDQuNiA0My4zLDExMy43IDQ5LjUsOTguNSAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkwLjksMjEuNCAxODEuOCw0My41IDE5Ni45LDQ5LjggMjA2LDI3LjcgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQzLjMsMTgyLjcgMjEuMywxOTEuOCAyNy41LDIwNyA0OS41LDE5Ny45IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNjcuNCw4OS40IDI0NS40LDk4LjUgMjUxLjcsMTEzLjcgMjczLjcsMTA0LjYgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI0NiwzNy42IDIxOS4xLDY0LjYgMjMwLjcsNzYuMyAyNTcuNiw0OS4yIAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2NC4zLDIyMC4xIDM3LjQsMjQ3LjEgNDksMjU4LjggNzUuOSwyMzEuNyAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQuMywxNDAgMCwxNDAgMCwxNTYuNCAxNC4zLDE1Ni40IDM4LjEsMTU2LjQgMzguMSwxNDAgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU5LjEsNDcuNyA0OSwzNy42IDM3LjQsNDkuMiA2NC4zLDc2LjMgNzUuOSw2NC42IAkJIi8+CiAgICAgICAgPHBhdGggZD0iTTMxOS41LDE3Mi45djE2LjVjNDkuNywwLDkwLjEsNDAuNiw5MC4xLDkwLjZINDI2QzQyNi4xLDIyMC45LDM3OC4zLDE3Mi45LDMxOS41LDE3Mi45eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjYuMSwyOTUuNWMwLjYtNS42LDAuOS0xMC42LDAuOS0xNS42YzAtODEuNy02Ni4yLTE0OC4yLTE0Ny41LTE0OC4yYy0yOC40LDAtNTUuNSw4LjItNzguNywyM2MwLjItMi4yLDAuNS00LjMsMC41LTYuNQoJCQljMC01Mi00Mi4xLTk0LjMtOTMuOC05NC4zcy05My44LDQyLjMtOTMuOCw5NC4zYzAsMzAuNiwxNC45LDU5LjEsMzkuNSw3Ni43Yy0xNS40LDE3LjItMjUuNSwzOS4zLTI3LjMsNjMuNwoJCQljLTM3LDQtNjUuOCwzNS41LTY1LjgsNzMuN2MwLDQwLjksMzMuMSw3NC4xLDczLjcsNzQuMWgzNjAuNWM0MC43LDAsNzMuNy0zMy4yLDczLjctNzQuMUM1MDgsMzMzLjcsNDkxLjQsMzA3LjcsNDY2LjEsMjk1LjV6CgkJCSBNNzAsMTQ4LjJjMC00Mi45LDM0LjctNzcuOCw3Ny40LTc3LjhjNDIuNywwLDc3LjQsMzQuOSw3Ny40LDc3LjhjMCw2LjktMC45LDEzLjktMi43LDIwLjZjLTguMyw3LjQtMTUuNywxNS41LTIyLjEsMjQuNAoJCQljLTMzLjEtOS4xLTY4LjctMS4zLTk0LjksMjAuMUM4My4zLDE5OSw3MCwxNzQuNSw3MCwxNDguMnogTTQzNC4zLDQxOS45SDczLjdjLTMxLjYsMC01Ny40LTI1LjktNTcuNC01Ny42CgkJCWMwLTMxLjgsMjUuNy01Ny42LDU3LjQtNTcuNmg4LjJ2LTguMmMwLTQ5LjksNDAuNC05MC42LDkwLjEtOTAuNmMxNC40LDAsMzQuNyw2LjgsMzQuNyw2LjhzMzguNy02NC40LDExMi44LTY0LjQKCQkJYzcyLjMsMCwxMzEuMSw1OS4xLDEzMS4xLDEzMS43YzAsMTMuOS0yLjYsMjYuMS0yLjYsMjYuMWw2LjIsMi4zYzIyLjMsOC40LDM3LjMsMzAuMSwzNy4zLDUzLjkKCQkJQzQ5MS42LDM5NCw0NjUuOSw0MTkuOSw0MzQuMyw0MTkuOXoiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg4LjQsNDU1LjIgNDcuNSw0OTYuNCA1OS4xLDUwOCAxMDAsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE3OC42LDQ1NS4yIDEzNy42LDQ5Ni40IDE0OS4yLDUwOCAxOTAuMSw0NjYuOCAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjY4LjcsNDU1LjIgMjI3LjcsNDk2LjQgMjM5LjMsNTA4IDI4MC4zLDQ2Ni44IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzNTguOCw0NTUuMiAzMTcuOSw0OTYuNCAzMjkuNCw1MDggMzcwLjQsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ0OC45LDQ1NS4yIDQwOCw0OTYuNCA0MTkuNiw1MDggNDYwLjUsNDY2LjggCQkiLz4KICAgIDwvZz4KPC9zdmc+Cg==",nxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgNTVoLTV2LTQ0YTMuMDA5IDMuMDA5IDAgMCAwIDMtM3YtNWExIDEgMCAwIDAgLTEtMWgtNTJhMSAxIDAgMCAwIC0xIDF2NWEzLjAwOSAzLjAwOSAwIDAgMCAzIDN2NDRoLTVhMSAxIDAgMCAwIC0xIDF2NWExIDEgMCAwIDAgMSAxaDU4YTEgMSAwIDAgMCAxLTF2LTVhMSAxIDAgMCAwIC0xLTF6bS01NC00N3YtNGg1MHY0YTEgMSAwIDAgMSAtMSAxaC00OGExIDEgMCAwIDEgLTEtMXptNDcgM3Y0NGgtNDR2LTQ0em02IDQ5aC01NnYtM2g1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMTJoLTQwYTEgMSAwIDAgMCAtMSAxdjQwYTEgMSAwIDAgMCAxIDFoNDBhMSAxIDAgMCAwIDEtMXYtNDBhMSAxIDAgMCAwIC0xLTF6bS0yMSA0MGgtMTh2LTE5aDE4em0wLTIxaC0xOHYtMTdoMTh6bTIwIDIxaC0xOHYtMTloMTh6bTAtMjFoLTE4di0xN2gxOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTUuMTcyIDE4aDUuNjU3djJoLTUuNjU3eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcwNyAtLjcwNyAuNzA3IC43MDcgLTguMTYzIDE4LjI5MykiLz4KICAgICAgICA8cGF0aCBkPSJtMTQuMTM2IDIwLjVoMTIuNzI4djJoLTEyLjcyOHoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC05LjE5OCAyMC43OTMpIi8+CiAgICA8L2c+Cjwvc3ZnPg==",axe={"Alarm Systems":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSItMzEgMCA1MTEgNTExLjk5OTk4IiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzUuMzI4MTI1IDExOS4xNjc5NjljMjAuODM5ODQ0IDguMDU4NTkzIDM1LjY0NDUzMSAyMS4xNDg0MzcgNDQuNjMyODEzIDQxLjUwMzkwNiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzEuNjg3NSAxMjguNTg1OTM4YzE4Ljk4MDQ2OSA3LjMzOTg0MyAzMS4zODI4MTIgMTguODMyMDMxIDM5LjAzNTE1NiAzNi4xNjQwNjIgMS42Njc5NjkgMy43NzM0MzggNS4zNjMyODIgNi4wMjM0MzggOS4yNDIxODggNi4wMjM0MzggMS4zNjMyODEgMCAyLjc0NjA5NC0uMjc3MzQ0IDQuMDcwMzEyLS44NjMyODIgNS4xMDU0NjktMi4yNTM5MDYgNy40MTQwNjMtOC4yMTQ4NDQgNS4xNjAxNTYtMTMuMzE2NDA2LTkuODIwMzEyLTIyLjI1LTI2LjI1LTM3LjU3NDIxOS01MC4yMjY1NjItNDYuODQzNzUtNS4xOTkyMTktMi4wMTE3MTktMTEuMDQ2ODc1LjU3NDIxOS0xMy4wNTg1OTQgNS43NzczNDQtMi4wMTE3MTggNS4yMDMxMjUuNTc4MTI1IDExLjA0Njg3NSA1Ljc3NzM0NCAxMy4wNTg1OTR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDcuMTA1NDY5IDIzNy44MTI1YzIwLjA4OTg0MyAwIDM2LjQzNzUtMTYuMzQzNzUgMzYuNDM3NS0zNi40MzM1OTQgMC0yMC4wOTM3NS0xNi4zNDc2NTctMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDM3NSAxNi4zNDM3NS0zNi40Mzc1IDM2LjQzNzUgMCAyMC4wODk4NDQgMTYuMzQ3NjU2IDM2LjQzMzU5NCAzNi40Mzc1IDM2LjQzMzU5NHptMC01Mi42NzU3ODFjOC45NTMxMjUgMCAxNi4yNDIxODcgNy4yODUxNTYgMTYuMjQyMTg3IDE2LjI0MjE4NyAwIDguOTUzMTI1LTcuMjg5MDYyIDE2LjIzODI4Mi0xNi4yNDIxODcgMTYuMjM4MjgyLTguOTU3MDMxIDAtMTYuMjQyMTg4LTcuMjg1MTU3LTE2LjI0MjE4OC0xNi4yMzgyODIgMC04Ljk1NzAzMSA3LjI4NTE1Ny0xNi4yNDIxODcgMTYuMjQyMTg4LTE2LjI0MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM5MC4xNzk2ODggMTQ3LjAxNTYyNWMzLjc2NTYyNCAwIDcuMzk4NDM3LS41NzQyMTkgMTAuODIwMzEyLTEuNjM2NzE5bDcuMzM5ODQ0IDkuODcxMDk0YzEzLjk0MTQwNiAxOC43NSAyMS42MjEwOTQgNDEuOTQ1MzEyIDIxLjYyMTA5NCA2NS4zMTI1djU5LjE1MjM0NGMwIDUuNTc4MTI1IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2IDUuNTc0MjE4IDAgMTAuMDk3NjU2LTQuNTE5NTMxIDEwLjA5NzY1Ni0xMC4wOTc2NTZ2LTU5LjE1MjM0NGMwLTI3LjY3NTc4MS05LjA5Mzc1LTU1LjE1MjM0NC0yNS42MDkzNzUtNzcuMzU5Mzc1bC02LjY3NTc4MS04Ljk4MDQ2OWM1LjQ0OTIxOC02LjM2NzE4NyA4Ljc0NjA5NC0xNC42MjUgOC43NDYwOTQtMjMuNjQwNjI1IDAtMjAuMDkzNzUtMTYuMzQzNzUtMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDMzNTk0IDE2LjM0Mzc1LTM2LjQzMzU5NCAzNi40Mzc1IDAgMjAuMDg5ODQ0IDE2LjM0Mzc1IDM2LjQzMzU5NCAzNi40MzM1OTQgMzYuNDMzNTk0em0wLTUyLjY3NTc4MWM4Ljk1NzAzMSAwIDE2LjI0MjE4NyA3LjI4NTE1NiAxNi4yNDIxODcgMTYuMjQyMTg3IDAgOC45NTMxMjUtNy4yODUxNTYgMTYuMjQyMTg4LTE2LjI0MjE4NyAxNi4yNDIxODgtOC45NTMxMjYgMC0xNi4yNDIxODgtNy4yODkwNjMtMTYuMjQyMTg4LTE2LjI0MjE4OCAwLTguOTU3MDMxIDcuMjg5MDYyLTE2LjI0MjE4NyAxNi4yNDIxODgtMTYuMjQyMTg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjA1ODU5NCAzNDkuMDUwNzgxYy01LjU3ODEyNSAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU3djYzLjMyMDMxMmMwIDE0LjIzMDQ2OS0xMS41NzgxMjYgMjUuODA4NTk0LTI1LjgwODU5NCAyNS44MDg1OTRoLTQ0LjU5NzY1NnYtMzMuNDI5Njg4YzAtNS41NzgxMjUtNC41MTk1MzItMTAuMDk3NjU2LTEwLjA5Mzc1LTEwLjA5NzY1NmgtNDIuMjY1NjI2di0xMTIuNDUzMTI1YzIxLjg1NTQ2OS0yNC4wMzUxNTYgMzUuMTkxNDA3LTU1Ljk0OTIxOSAzNS4xOTE0MDctOTAuOTE3OTY5IDAtNzQuNTk3NjU2LTYwLjY4NzUtMTM1LjI4NTE1Ni0xMzUuMjgxMjUtMTM1LjI4NTE1NnMtMTM1LjI4MTI1IDYwLjY4NzUtMTM1LjI4MTI1IDEzNS4yODUxNTZjMCAzMy4xMDU0NjkgMTEuOTU3MDMxIDYzLjQ2NDg0NCAzMS43NzczNDMgODcuMDAzOTA2djIxMy41MTk1MzJjMCA1LjU3ODEyNSA0LjUyMzQzOCAxMC4wOTc2NTYgMTAuMDk3NjU3IDEwLjA5NzY1NmgyMzUuNzYxNzE5YzUuNTc0MjE4IDAgMTAuMDkzNzUtNC41MTk1MzEgMTAuMDkzNzUtMTAuMDk3NjU2di0zMy40Mjk2ODhoNDQuNTk3NjU2YzI1LjM2NzE4NyAwIDQ2LjAwMzkwNi0yMC42MzY3MTggNDYuMDAzOTA2LTQ2LjAwMzkwNnYtNjMuMzIwMzEyYzAtNS41NzgxMjYtNC41MjM0MzgtMTAuMDk3NjU3LTEwLjA5NzY1Ni0xMC4wOTc2NTd6bS0yMzIuOTUzMTI1LTI2Mi43NjE3MTljNjMuNDU3MDMxIDAgMTE1LjA4NTkzNyA1MS42Mjg5MDcgMTE1LjA4NTkzNyAxMTUuMDg5ODQ0IDAgNjMuNDU3MDMyLTUxLjYyODkwNiAxMTUuMDg1OTM4LTExNS4wODU5MzcgMTE1LjA4NTkzOC02My40NjA5MzggMC0xMTUuMDg1OTM4LTUxLjYyODkwNi0xMTUuMDg1OTM4LTExNS4wODU5MzggMC02My40NjA5MzcgNTEuNjI1LTExNS4wODk4NDQgMTE1LjA4NTkzOC0xMTUuMDg5ODQ0em0tODMuMzA4NTk0IDIyMS42MDE1NjNjMjIuOTgwNDY5IDE4LjAxNTYyNSA1MS45MTAxNTYgMjguNzY5NTMxIDgzLjMwODU5NCAyOC43Njk1MzEgMjkuODYzMjgxIDAgNTcuNDkyMTg3LTkuNzM0Mzc1IDc5Ljg5NDUzMS0yNi4xODc1djE4MS4zMzIwMzJoLTE2My4yMDMxMjV6bTIxNS41NjY0MDYgMTgzLjkxNDA2M2gtMzIuMTY3OTY5di02Ni44NTkzNzZoMzIuMTY3OTY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ4LjE2MDE1NiAzNzcuNzg5MDYyaDE3LjkyNTc4MmM1LjU3NDIxOCAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzgtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyNTc4MmMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk4LjE0NDUzMSAzNzcuNzg5MDYyaDE3LjkyMTg3NWM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyMTg3NWMtNS41NzgxMjUgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTE5NTMxIDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY2LjA0Njg3NSAzNTcuNTkzNzVoLTE3LjkyMTg3NWMtNS41NzQyMTkgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDE3LjkyMTg3NWM1LjU3ODEyNSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDguMTYwMTU2IDQyMC42NzU3ODFoNjcuOTA2MjVjNS41NzQyMTkgMCAxMC4wOTc2NTYtNC41MTk1MzEgMTAuMDk3NjU2LTEwLjA5NzY1NnMtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTY3LjkwNjI1Yy01LjU3NDIxOCAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU2czQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4LjEyNSA0NDMuMTU2MjVoLTk5Ljk2NDg0NGMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDk5Ljk2NDg0NGM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMzU1NDY5IDQwLjEzNjcxOWMxLjg0Mzc1IDMuMzIwMzEyIDUuMjg1MTU2IDUuMTkxNDA2IDguODMyMDMxIDUuMTkxNDA2IDEuNjYwMTU2IDAgMy4zNDM3NS0uNDE0MDYzIDQuODk4NDM4LTEuMjc3MzQ0IDQuODc1LTIuNzEwOTM3IDYuNjI1LTguODU5Mzc1IDMuOTE0MDYyLTEzLjczNDM3NWwtMTMuOTg0Mzc1LTI1LjEyODkwNmMtMi43MTA5MzctNC44NzEwOTQtOC44NTkzNzUtNi42MjUtMTMuNzM0Mzc1LTMuOTEwMTU2LTQuODcxMDk0IDIuNzEwOTM3LTYuNjI1IDguODU5Mzc1LTMuOTE0MDYyIDEzLjczNDM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTYzLjE0NDUzMSA4My4wMTU2MjUtMjYuMDU0Njg3LTE1LjAzOTA2M2MtNC44MzIwMzItMi43ODkwNjItMTEuMDAzOTA2LTEuMTMyODEyLTEzLjc5Mjk2OSAzLjY5NTMxM3MtMS4xMzI4MTMgMTEuMDAzOTA2IDMuNjk1MzEzIDEzLjc5Mjk2OWwyNi4wNTQ2ODcgMTUuMDQyOTY4YzEuNTg5ODQ0LjkxNzk2OSAzLjMyODEyNSAxLjM1MTU2MyA1LjAzOTA2MyAxLjM1MTU2MyAzLjQ4ODI4MSAwIDYuODgyODEyLTEuODA4NTk0IDguNzUzOTA2LTUuMDQ2ODc1IDIuNzg5MDYyLTQuODMyMDMxIDEuMTMyODEyLTExLjAwNzgxMi0zLjY5NTMxMy0xMy43OTY4NzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4xMTMyODEgMTQ2LjIxMDkzOC0zMC4wODU5MzctMS4yODEyNWMtNS41ODIwMzItLjI1LTEwLjI4MTI1IDQuMDg5ODQzLTEwLjUxOTUzMiA5LjY2MDE1Ni0uMjM0Mzc0IDUuNTcwMzEyIDQuMDg5ODQ0IDEwLjI4MTI1IDkuNjYwMTU3IDEwLjUxNTYyNWwzMC4wODU5MzcgMS4yODEyNWMuMTQ0NTMyLjAwNzgxMi4yOTI5NjkuMDA3ODEyLjQzNzUuMDA3ODEyIDUuMzc4OTA2IDAgOS44NTE1NjMtNC4yNDIxODcgMTAuMDc4MTI1LTkuNjY3OTY5LjIzODI4MS01LjU3MDMxMi00LjA4NTkzNy0xMC4yNzczNDMtOS42NTYyNS0xMC41MTU2MjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODMuNjQwNjI1IDE5OC42MjUuMTIxMDk0LjI5Njg3NWMxLjU4OTg0MyAzLjkyNTc4MSA1LjM2NzE4NyA2LjMwNDY4NyA5LjM1OTM3NSA2LjMwNDY4NyAxLjI2MTcxOCAwIDIuNTQ2ODc1LS4yMzgyODEgMy43ODkwNjItLjc0MjE4NyA1LjE2Nzk2OS0yLjA5Mzc1IDcuNjYwMTU2LTcuOTgwNDY5IDUuNTY2NDA2LTEzLjE0ODQzN2wtLjEyMTA5My0uMjk2ODc2Yy0yLjA5Mzc1LTUuMTY3OTY4LTcuOTgwNDY5LTcuNjU2MjUtMTMuMTQ4NDM4LTUuNTYyNXMtNy42NjAxNTYgNy45ODA0NjktNS41NjY0MDYgMTMuMTQ4NDM4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ5LjM2NzE4OCAzMTUuNjY3OTY5Yy0yLjA3ODEyNi01LjE3MTg3NS03Ljk2NDg0NC03LjY3OTY4OC0xMy4xMzY3MTktNS42MDE1NjMtNS4xNzE4NzUgMi4wODIwMzItNy42Nzk2ODggNy45NjA5MzgtNS42MDE1NjMgMTMuMTM2NzE5bC4xMTcxODguMjkyOTY5YzEuNTg1OTM3IDMuOTQxNDA2IDUuMzcxMDk0IDYuMzM1OTM3IDkuMzc1IDYuMzM1OTM3IDEuMjUzOTA2IDAgMi41MjczNDQtLjIzNDM3NSAzLjc2MTcxOC0uNzM0Mzc1IDUuMTc1NzgyLTIuMDc4MTI1IDcuNjgzNTk0LTcuOTYwOTM3IDUuNjAxNTYzLTEzLjEzMjgxMnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Amplifier:dfe,Awnings:Dfe,"Battery Status":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zOTQuMDYzIDM5MS45OTZjLTkuMTk4LTUuMjktMTguMzczLTEwLjYyMy0yNy41NTgtMTUuOTM3IDUuMDAyLTExLjc2OSAxMC4xOTQtMjMuOTAyIDE0LjkwMy0zNi4wNTMgMS44MDktNC42NjcgMS4xODktOS45MTEtMS42NTUtMTQuMDI4LTUuNzc2LTguMzYxLTE2Ljg2My04Ljg1NS0yNC4zNDQtMS43NC0xOS42NjEgMTguNy0zOS4wODUgMzctNTguNjUyIDU1LjUzNy0zLjc3NSAzLjU3Ny01LjYzOSA4LjQzNC01LjExIDEzLjMyNy41MjMgNC44NDYgMy4zMzkgOS4xNDQgNy43MjUgMTEuNzkyIDkuMzQ1IDUuNjQxIDE4Ljc2MSAxMC45NTUgMjguMDk4IDE2LjI5MS00LjY0NCAxMC45NTEtMTAuMzcyIDI0LjI0Ni0xNC45MiAzNi4wMDItMi44ODcgNy40NjIuNDIxIDE1Ljc0NCA3LjY5MyAxOS4yNjQgNS43MTQgMi43NjYgMTIuMjggMi4yMTEgMTguMjk5LTMuNDgzIDE5LjM0NC0xOC4zIDM5LjM0My0zNy4yMTQgNTguNjctNTUuNTQ3IDMuODE4LTMuNjIyIDUuNjc0LTguNTEyIDUuMDktMTMuNDE2LS41OTEtNC45NjItMy41OTQtOS4zMzgtOC4yMzktMTIuMDA5em0tNy4xNzQgMTQuNTRjLTE1LjYzNCAxNC44MzItNTguOTQ5IDU2Ljk3My02MC4xMDkgNTYuNDEyLS4xMTgtLjA1Ny0uMzA2LS4xNzgtLjI0LS4zNDkgNS4xNzktMTMuNTI2IDExLjYzNS0yOC4yNzIgMTYuOTE4LTQwLjczMiAxLjQ5My0zLjUyMi45MDctOC4yOC0zLjc2OC0xMC45Ny0xMC44NC02LjIzNy0yMS43OTEtMTIuMzU0LTMyLjU2NC0xOC44NDUtLjgwMi0uNDgzLS43NjctLjcxLS4wNTEtMS4zODggMjAuODc0LTE5Ljc3OSA1Ny45NTktNTUuMzExIDU5LjgwMy01Ni40NTkuMzk2LjA4NC41NDQuMjk5LjU0NS4zODQtNS4zMDcgMTMuNjg0LTExLjIxMyAyNy4zMDUtMTYuOSA0MC43MzktMS43OTQgNC4yMzctLjI5MyA4LjY0OSAzLjczOSAxMC45OCA0LjM5OSAyLjU0IDguNzk2IDUuMDg3IDEzLjE5MSA3LjYzNCA2LjM3NCAzLjY5MyAxMi43NDggNy4zODcgMTkuMTM0IDExLjA1OSAxLjEwNi42MzUgMS4xMzYuNzQ0LjMwMiAxLjUzNXptLTgxLjc4NC0yMDguNGgtMjAxLjQ2Yy0xMC4yNzMgMC0xOC42MzEgOC4zMy0xOC42MzEgMTguNTY5djQ0LjI3NmMwIDEwLjIzOSA4LjM1NyAxOC41NjkgMTguNjMxIDE4LjU2OWgyMDEuNDYxYzEwLjI3MyAwIDE4LjYzMS04LjMzIDE4LjYzMS0xOC41Njl2LTQ0LjI3NmMtLjAwMS0xMC4yMzktOC4zNTgtMTguNTY5LTE4LjYzMi0xOC41Njl6bTMuNjMxIDYyLjg0NWMwIDEuOTY4LTEuNjI5IDMuNTY5LTMuNjMxIDMuNTY5aC0yMDEuNDZjLTIuMDAyIDAtMy42MzEtMS42MDEtMy42MzEtMy41Njl2LTQ0LjI3NmMwLTEuOTY4IDEuNjI5LTMuNTY5IDMuNjMxLTMuNTY5aDIwMS40NjFjMi4wMDIgMCAzLjYzMSAxLjYwMSAzLjYzMSAzLjU2OXY0NC4yNzZ6bTE1LTE0My44OThjMC0xMC4yMzktOC4zNTctMTguNTY5LTE4LjYzMS0xOC41NjloLTIwMS40NmMtMTAuMjczIDAtMTguNjMxIDguMzMtMTguNjMxIDE4LjU2OXY0NC4yNzZjMCAxMC4yMzkgOC4zNTcgMTguNTY5IDE4LjYzMSAxOC41NjloMjAxLjQ2MWMxMC4yNzMgMCAxOC42MzEtOC4zMyAxOC42MzEtMTguNTY5di00NC4yNzZ6bS0xNSA0NC4yNzdjMCAxLjk2OC0xLjYyOSAzLjU2OS0zLjYzMSAzLjU2OWgtMjAxLjQ2Yy0yLjAwMiAwLTMuNjMxLTEuNjAxLTMuNjMxLTMuNTY5di00NC4yNzZjMC0xLjk2OCAxLjYyOS0zLjU2OSAzLjYzMS0zLjU2OWgyMDEuNDYxYzIuMDAyIDAgMy42MzEgMS42MDEgMy42MzEgMy41Njl2NDQuMjc2em0zOC4yNDcgMTIzLjg1N2MtMTguNjUzIDAtMzYuMjY2IDQuNTI5LTUxLjgwMyAxMi41NDJoLTE5MS41MzVjLTEwLjI3MiAwLTE4LjYzIDguMzMxLTE4LjYzIDE4LjU3djQ0LjI3YzAgMTAuMjM5IDguMzU3IDE4LjU3IDE4LjYzIDE4LjU3aDEzMS42MjFjLTEuMDk2IDYuMzE4LTEuNjczIDEyLjgxMi0xLjY3MyAxOS40MzggMCAyNC4yNDMgNy42NTEgNDYuNzI5IDIwLjY2IDY1LjE4MmgtMTUwLjYwOGMtMi4wMDIgMC0zLjYzLTEuNjAyLTMuNjMtMy41N3YtNDQuMjdjMC0xLjk2OSAxLjYyOC0zLjU3IDMuNjMtMy41N2gxMDcuNjQxYzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMDcuNjQxYy0xMC4yNzIgMC0xOC42MyA4LjMzMS0xOC42MyAxOC41N3Y0NC4yN2MwIDEwLjIzOSA4LjM1NyAxOC41NyAxOC42MyAxOC41N2gxNjMuMjM3YzcuMDcgNy4wNjMgMTUuMDY1IDEzLjE5OSAyMy43ODUgMTguMjFoLTE5OC4yNDJjLTE0LjIyNyAwLTI1LjgtMTEuNTc0LTI1LjgtMjUuOHYtMzY1LjA4OWMwLTE0LjIyNiAxMS41NzMtMjUuOCAyNS44LTI1LjhoMjIzLjljMTQuMjI3IDAgMjUuOCAxMS41NzQgMjUuOCAyNS44djE1Ni42NGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xNTYuNjRjMC0yMi40OTctMTguMzAzLTQwLjgtNDAuOC00MC44aC00MC4wNjd2LTM1LjYxMWMwLTE2LjM3Ni0xMy4zMjMtMjkuNjk5LTI5LjY5OS0yOS42OTloLTg0LjM2N2MtMTYuMzc2IDAtMjkuNjk5IDEzLjMyMy0yOS42OTkgMjkuNjk5djM1LjYxMWgtNDAuMDY4Yy0yMi40OTcgMC00MC44IDE4LjMwMy00MC44IDQwLjh2MzY1LjA5YzAgMjIuNDk3IDE4LjMwMyA0MC44IDQwLjggNDAuOGgyMjMuOWMzLjg5MiAwIDcuNzMxLS41NTMgMTEuNDQyLTEuNjM2IDYuMjQ4IDEuMDcxIDEyLjY2NyAxLjYzNiAxOS4yMTYgMS42MzYgNjIuNTI0IDAgMTEzLjM5Mi01MC44NjcgMTEzLjM5Mi0xMTMuMzkyIDAtNjIuNTI0LTUwLjg2Ny0xMTMuMzkxLTExMy4zOTItMTEzLjM5MXptLTE5OS40OTEtMjU1LjUxOGMwLTguMTA1IDYuNTk0LTE0LjY5OSAxNC42OTktMTQuNjk5aDg0LjM2N2M4LjEwNSAwIDE0LjY5OSA2LjU5NCAxNC42OTkgMTQuNjk5djM1LjYxMWgtMTEzLjc2NXptLTQzLjg0NyAzMzQuNDcxYy0yLjAwMiAwLTMuNjMtMS42MDItMy42My0zLjU3di00NC4yN2MwLTEuOTY5IDEuNjI4LTMuNTcgMy42My0zLjU3aDE2OS4zNDFjLTE1LjY2NiAxMy41MjEtMjcuNiAzMS4yNS0zNC4wNDEgNTEuNDF6bTI0My4zMzggMTMyLjgzYy01NC4yNTMgMC05OC4zOTItNDQuMTM4LTk4LjM5Mi05OC4zOTIgMC01NC4yNTMgNDQuMTM5LTk4LjM5MSA5OC4zOTItOTguMzkxczk4LjM5MiA0NC4xMzggOTguMzkyIDk4LjM5MWMwIDU0LjI1NC00NC4xMzkgOTguMzkyLTk4LjM5MiA5OC4zOTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Ceiling Spotlights":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDc0IDc0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDYuNDQgNGgtMi45N2ExIDEgMCAwIDEgMC0yaDIuOTdhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNjguNjQgMTAuMzhoLTYzLjI4YTEgMSAwIDAgMSAtMS0xdi02LjM4YTEgMSAwIDAgMSAxLTFoMjEuMmExIDEgMCAwIDEgMCAyaC0yMC4ydjQuMzhoNjEuMjh2LTQuMzhoLTE0LjJhMSAxIDAgMCAxIDAtMmgxNS4yYTEgMSAwIDAgMSAxIDF2Ni4zOGExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYuNDcgNGgtMi45MWExIDEgMCAwIDEgMC0yaDIuOTFhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgNTEuMjA3YTEgMSAwIDAgMSAtMS0xdi00MC44MjhhMSAxIDAgMSAxIDIgMHY0MC44MjhhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ljc3MSA2Ny4wN2gtMTkuNTQyYTEgMSAwIDAgMSAtLjk3Ny0xLjIxNWwzLjQ5LTE1Ljg1NWExIDEgMCAwIDEgLjk3Ny0uNzg1aDEyLjU2MmExIDEgMCAwIDEgLjk3Ny43ODVsMy40OSAxNS44NmExIDEgMCAwIDEgLS45NzcgMS4yMTV6bS0xOC4zLTJoMTcuMDU2bC0zLjA0OS0xMy44NmgtMTAuOTU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyA3MmE1LjkzNiA1LjkzNiAwIDAgMSAtNS45My01LjkzIDEgMSAwIDAgMSAyIDAgMy45MyAzLjkzIDAgMCAwIDcuODYgMCAxIDEgMCAwIDEgMiAwIDUuOTM2IDUuOTM2IDAgMCAxIC01LjkzIDUuOTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiAzNS4xMTRhMSAxIDAgMCAxIC0xLTF2LTI0LjczNWExIDEgMCAwIDEgMiAwdjI0LjczNWExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjkuNiA1MC4wMjZoLTE4LjM3YTEgMSAwIDAgMSAtLjk3Ni0xLjIxNWwzLjI4LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgwOWExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgybC0yLjgzOS0xMi45MDloLTEwLjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiA1NC42NmE1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQtNS42MzQgMSAxIDAgMSAxIDIgMCAzLjYzNCAzLjYzNCAwIDEgMCA3LjI2OCAwIDEgMSAwIDEgMSAyIDAgNS42NDEgNS42NDEgMCAwIDEgLTUuNjM0IDUuNjM0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMy41ODQgMzUuMTE0YTEgMSAwIDAgMSAtMS0xdi0yNC43MzVhMSAxIDAgMCAxIDIgMHYyNC43MzVhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyLjc3IDUwLjAyNmgtMTguMzdhMSAxIDAgMCAxIC0uOTc2LTEuMjE1bDMuMjc2LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgxMmExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgxbC0yLjgzOS0xMi45MDloLTEwLjIwM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTMuNTg0IDU0LjY2YTUuNjQxIDUuNjQxIDAgMCAxIC01LjYzNC01LjYzNCAxIDEgMCAwIDEgMiAwIDMuNjM0IDMuNjM0IDAgMCAwIDcuMjY4IDAgMSAxIDAgMCAxIDIgMCA1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQgNS42MzR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Chandelier:hfe,Climate:zfe,"Coffee Makers":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NjYgMTExLjk5NmgtNDkuNzE5bC0xMDkuMjE1LTQ2LjM2MSA0Ljg4OS01NC43NDZjLjI1LTIuNzk2LS42ODctNS41NjgtMi41ODItNy42MzktMS44OTQtMi4wNy00LjU3Mi0zLjI1LTcuMzc4LTMuMjVoLTYwYy0yLjgwNyAwLTUuNDg0IDEuMTgtNy4zNzkgMy4yNS0xLjg5NSAyLjA3MS0yLjgzMSA0Ljg0My0yLjU4MiA3LjYzOWw0Ljg5OCA1NC44NTQtMTA0Ljc5NSA0Ni4yNTNoLTI2LjEzN2MtMzguNTk4IDAtNzAgMzEuNDAyLTcwIDcwdjY5Ljk5N2MwIDE2LjU0MiAxMy40NTggMzAgMzAgMzBzMzAtMTMuNDU4IDMwLTMwdi02OS45OTdjMC01LjQyIDQuNTgtMTAgMTAtMTBoMjYuOTE1bDIxLjQ4MyAxMjEuNzM4YzEuOTI3IDEwLjkyMyA5LjkwNCAxOC4yNjMgMTkuODQ4IDE4LjI2M3Y0MC4wMDNjLTkuNjUyIDAtMTcuMjE3IDYuODAyLTE5Ljc0NCAxNy43NTFsLTMwLjAwMSAxMzBjLS42ODUgMi45NjkuMDIxIDYuMDg5IDEuOTE4IDguNDc0czQuNzc4IDMuNzc0IDcuODI2IDMuNzc0aDI4MGMzLjA0NyAwIDUuOTI5LTEuMzkgNy44MjYtMy43NzQgMS44OTctMi4zODUgMi42MDQtNS41MDUgMS45MTgtOC40NzRsLTMwLjAwMS0xMzBjLTIuNTI1LTEwLjk0OS0xMC4wOTEtMTcuNzUxLTE5Ljc0My0xNy43NTF2LTQwLjAwMmM5Ljk0NCAwIDE3LjkyLTcuMzM5IDE5Ljg0Ny0xOC4yNjJsMTQuMzgxLTgxLjQ5MiA2NC4wNTYtNTUuMjM2YzIuMjAzLTEuODk5IDMuNDctNC42NjUgMy40Ny03LjU3M3YtMjcuNDM4Yy4wMDEtNS41MjQtNC40NzctMTAuMDAxLTkuOTk5LTEwLjAwMXptLTE3NC45MzgtOTEuOTk2LTMuNzUgNDEuOTk2aC0zMC42MzRsLTMuNzUxLTQxLjk5NnptLTQxLjQyMyA2MS45OTZoNDQuNzg1bDcwLjY3MiAzMGgtMTgzLjQyOHptLTE0My42MzkgNzAuMDAxYy0xNi41NDIgMC0zMCAxMy40NTgtMzAgMzB2NjkuOTk3YzAgNS41MTQtNC40ODYgMTAtMTAgMTBzLTEwLTQuNDg2LTEwLTEwdi02OS45OTdjMC0yNy41NyAyMi40My01MCA1MC01MGgxOS44NTZsMy41MyAyMHptNjguMDk0IDEzOC4yNjMtMjcuOTI5LTE1OC4yNjRoNjIuNzYybDIuNTI4IDM1LjgxN2MuMzcyIDUuMjcgNC43NjIgOS4yOTYgOS45NjUgOS4yOTYuMjM2IDAgLjQ3NS0uMDA4LjcxNC0uMDI1IDUuNTA5LS4zODkgOS42Ni01LjE3IDkuMjcxLTEwLjY3OWwtMi40MjktMzQuNDA5aDkwLjUzOWwtMTEuMjk1IDE2MC4wMDJoLTY3Ljk0OWwtMi41MjktMzUuODE3Yy0uMzg5LTUuNTA5LTUuMTY2LTkuNjYxLTEwLjY3OS05LjI3MS01LjUwOS4zODktOS42NiA1LjE3LTkuMjcxIDEwLjY3OWwyLjQyOSAzNC40MDloLTQ1LjUxOGMtLjE5OS0uMzIxLS40NjMtLjkxNC0uNjA5LTEuNzM4em0tLjEwMyA4My45ODhjLjI1OS0xLjEyNS42MS0xLjg1Ny44NTMtMi4yNDloNDUuMzZsLTExLjA3NyAxMjBoLTYyLjMxem0xMzQuMjEyLTIuMjQ4IDExLjA3NyAxMjBoLTkwLjA2OWwxMS4wNzctMTIwem02Ni4yOTcgMi4yNDggMjcuMTc1IDExNy43NTJoLTYyLjMxbC0xMS4wNzctMTIwaDQ1LjM2Yy4yNDMuMzkxLjU5MyAxLjEyMy44NTIgMi4yNDh6bS0yMC4yNTUtMjIuMjQ4aC0xNTkuOTk4di00MC4wMDJoMTU5Ljk5OHptMjAuMTUxLTYxLjc0Yy0uMTQ2LjgyNC0uNDA5IDEuNDE3LS42MDggMS43MzdoLTQ1LjUxOGwxMS4yOTUtMTYwLjAwMWg2Mi43NjJsLTEyLjkzNyA3My4zMDljMCAuMDAxIDAgLjAwMi0uMDAxLjAwM3ptODEuNjA0LTE0NS40MDctNDIuMDI5IDM2LjI0MiA4LjY2NS00OS4wOTloMzMuMzY0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjQuNTk5IDIyMS45OTdjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTBoLS4wMDdjLTUuNTIzIDAtOS45OTYgNC40NzctOS45OTYgMTBzNC40OCAxMCAxMC4wMDMgMTB6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Cold Water":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3NSA0NzUiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik00MzguNDEzLDM0My4xODhDNDI4LjA1OSwzMzUuMDg1LDQxNS4xNzQsMzI1LDM5MC44MzUsMzI1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3NywxOC4xODgKCQlDMzM0LjQ5NiwzNTAuMDQ1LDMyOC4xNjUsMzU1LDMxNC4xNywzNTVjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzQzI3NC43MjksMzM1LjA4NSwyNjEuODQ0LDMyNSwyMzcuNTA2LDMyNQoJCWMtMjQuMzM5LDAtMzcuMjI0LDEwLjA4NS00Ny41NzgsMTguMTg4QzE4MS4xNjYsMzUwLjA0NSwxNzQuODM0LDM1NSwxNjAuODQsMzU1Yy0xMy45OTYsMC0yMC4zMjctNC45NTUtMjkuMDktMTEuODEzCgkJQzEyMS4zOTUsMzM1LjA4NCwxMDguNTA5LDMyNSw4NC4xNywzMjVjLTI0LjMzOSwwLTM3LjIyNSwxMC4wODQtNDcuNTc5LDE4LjE4OEMyNy44MjgsMzUwLjA0NSwyMS40OTYsMzU1LDcuNSwzNTV2MzAKCQljMjQuMzM5LDAsMzcuMjI1LTEwLjA4NCw0Ny41NzktMTguMTg4QzYzLjg0MiwzNTkuOTU1LDcwLjE3NCwzNTUsODQuMTcsMzU1YzEzLjk5NiwwLDIwLjMyNyw0Ljk1NSwyOS4wOTEsMTEuODEzCgkJQzEyMy42MTUsMzc0LjkxNiwxMzYuNSwzODUsMTYwLjg0LDM4NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg0LDQ3LjU3OC0xOC4xODhDMjE3LjE4LDM1OS45NTUsMjIzLjUxMSwzNTUsMjM3LjUwNiwzNTUKCQljMTMuOTk0LDAsMjAuMzI1LDQuOTU1LDI5LjA4NywxMS44MTNDMjc2Ljk0NywzNzQuOTE1LDI4OS44MzMsMzg1LDMxNC4xNywzODVjMjQuMzM4LDAsMzcuMjI0LTEwLjA4NSw0Ny41NzctMTguMTg4CgkJQzM3MC41MSwzNTkuOTU1LDM3Ni44NDEsMzU1LDM5MC44MzUsMzU1YzEzLjk5NSwwLDIwLjMyNSw0Ljk1NSwyOS4wODgsMTEuODEzQzQzMC4yNzcsMzc0LjkxNSw0NDMuMTYyLDM4NSw0NjcuNSwzODV2LTMwCgkJQzQ1My41MDYsMzU1LDQ0Ny4xNzUsMzUwLjA0NSw0MzguNDEzLDM0My4xODh6Ii8+Cgk8cGF0aCBkPSJNMzkwLjgzNSw0MTVjLTI0LjMzOCwwLTM3LjIyNCwxMC4wODUtNDcuNTc3LDE4LjE4OEMzMzQuNDk2LDQ0MC4wNDUsMzI4LjE2NSw0NDUsMzE0LjE3LDQ0NQoJCWMtMTMuOTk0LDAtMjAuMzI1LTQuOTU1LTI5LjA4Ny0xMS44MTNDMjc0LjcyOSw0MjUuMDg1LDI2MS44NDQsNDE1LDIzNy41MDYsNDE1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3OCwxOC4xODgKCQlDMTgxLjE2Niw0NDAuMDQ1LDE3NC44MzQsNDQ1LDE2MC44NCw0NDVjLTEzLjk5NiwwLTIwLjMyNy00Ljk1NS0yOS4wOS0xMS44MTNDMTIxLjM5NSw0MjUuMDg0LDEwOC41MDksNDE1LDg0LjE3LDQxNQoJCWMtMjQuMzM5LDAtMzcuMjI1LDEwLjA4NC00Ny41NzksMTguMTg4QzI3LjgyOCw0NDAuMDQ1LDIxLjQ5Niw0NDUsNy41LDQ0NXYzMGMyNC4zMzksMCwzNy4yMjUtMTAuMDg0LDQ3LjU3OS0xOC4xODgKCQlDNjMuODQyLDQ0OS45NTUsNzAuMTc0LDQ0NSw4NC4xNyw0NDVjMTMuOTk2LDAsMjAuMzI3LDQuOTU1LDI5LjA5MSwxMS44MTNDMTIzLjYxNSw0NjQuOTE2LDEzNi41LDQ3NSwxNjAuODQsNDc1CgkJYzI0LjMzOCwwLDM3LjIyNC0xMC4wODQsNDcuNTc4LTE4LjE4OEMyMTcuMTgsNDQ5Ljk1NSwyMjMuNTExLDQ0NSwyMzcuNTA2LDQ0NWMxMy45OTQsMCwyMC4zMjUsNC45NTUsMjkuMDg3LDExLjgxMwoJCUMyNzYuOTQ3LDQ2NC45MTUsMjg5LjgzMyw0NzUsMzE0LjE3LDQ3NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg1LDQ3LjU3Ny0xOC4xODhDMzcwLjUxLDQ0OS45NTUsMzc2Ljg0MSw0NDUsMzkwLjgzNSw0NDUKCQljMTMuOTk1LDAsMjAuMzI1LDQuOTU1LDI5LjA4OCwxMS44MTNDNDMwLjI3Nyw0NjQuOTE1LDQ0My4xNjIsNDc1LDQ2Ny41LDQ3NXYtMzBjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzCgkJQzQyOC4wNTksNDI1LjA4NSw0MTUuMTc0LDQxNSwzOTAuODM1LDQxNXoiLz4KCTxwb2x5Z29uIHBvaW50cz0iMTg0LjM3OCwyNTguMzIzIDIyMi41LDIzNi4zMTMgMjIyLjUsMjgwLjMzMyAyNTIuNSwyODAuMzMzIDI1Mi41LDIzNi4zMTMgMjkwLjYyMiwyNTguMzIzIDMwNS42MjIsMjMyLjM0MwoJCTI2Ny41LDIxMC4zMzMgMzA1LjYyMiwxODguMzIzIDI5MC42MjIsMTYyLjM0MyAyNTIuNSwxODQuMzUzIDI1Mi41LDE0MC4zMzMgMjIyLjUsMTQwLjMzMyAyMjIuNSwxODQuMzUzIDE4NC4zNzgsMTYyLjM0MwoJCTE2OS4zNzgsMTg4LjMyMyAyMDcuNSwyMTAuMzMzIDE2OS4zNzgsMjMyLjM0MyAJCQkiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjQuMDk1LDExNy45OSA2Mi4yMTYsOTUuOTggNjIuMjE2LDE0MCA5Mi4yMTYsMTQwIDkyLjIxNiw5NS45OCAxMzAuMzM4LDExNy45OSAxNDUuMzM4LDkyLjAxIDEwNy4yMTYsNzAKCQkxNDUuMzM4LDQ3Ljk5IDEzMC4zMzgsMjIuMDEgOTIuMjE2LDQ0LjAyIDkyLjIxNiwwIDYyLjIxNiwwIDYyLjIxNiw0NC4wMiAyNC4wOTUsMjIuMDEgOS4wOTUsNDcuOTkgNDcuMjE3LDcwIDkuMDk1LDkyLjAxCgkJIi8+Cgk8cG9seWdvbiBwb2ludHM9IjM0NC42NjIsMTE3Ljk5IDM4Mi43ODQsOTUuOTggMzgyLjc4NCwxNDAgNDEyLjc4NCwxNDAgNDEyLjc4NCw5NS45OCA0NTAuOTA1LDExNy45OSA0NjUuOTA1LDkyLjAxIDQyNy43ODMsNzAKCQk0NjUuOTA1LDQ3Ljk5IDQ1MC45MDUsMjIuMDEgNDEyLjc4NCw0NC4wMiA0MTIuNzg0LDAgMzgyLjc4NCwwIDM4Mi43ODQsNDQuMDIgMzQ0LjY2MiwyMi4wMSAzMjkuNjYyLDQ3Ljk5IDM2Ny43ODQsNzAKCQkzMjkuNjYyLDkyLjAxIAkJCSIvPgo8L2c+Cjwvc3ZnPgo=",Computer:wfe,Consumption:Cfe,Curtains:Ife,Dishwashers:pfe,Doors:Afe,Doorstep:mfe,Dryer:Ofe,Fan:Efe,"Floor Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNzcuMDE4IDEwNC40LTU0Ljg2MS05My40MTZjLTMuOTgtNi43NzUtMTEuMzM0LTEwLjk4NC0xOS4xOTEtMTAuOTg0aC05MS42NTVjLTcuNjk3IDAtMTQuOTczIDQuMDc5LTE4Ljk4NyAxMC42NDRsLTU3LjEzNSA5My40MTRjLTkuMDU1IDE0LjgwMyAxLjYyNiAzMy44NyAxOC45ODcgMzMuODdoMjguMTgyYzIuMjIyIDMzLjQ1MiAyNi44MDggNjAuODg0IDU4LjkxNiA2Ny40MS0uMjc0IDEuODI2LS4xODQtMTMuNTEtLjE4NCAyMTcuMTk1aC0zNy40ODRjLTExLjg5OCAwLTIxLjU3OSA5LjY4LTIxLjU3OSAyMS41Nzl2NDYuMzFjMCAxMS44OTggOS42OCAyMS41NzkgMjEuNTc5IDIxLjU3OWgxMDQuNzljMTEuODk5IDAgMjEuNTc5LTkuNjggMjEuNTc5LTIxLjU3OXYtNDYuMzFjMC0xMS44OTgtOS42OC0yMS41NzktMjEuNTc5LTIxLjU3OWgtMzcuNDg0YzAtMjMwLjc2Ni4wOS0yMTUuMzctLjE4NC0yMTcuMTk1IDIyLjAyNS00LjQ3NiA0MC41MDUtMTguNzk1IDUwLjY2Ni0zOC4xNDF2MzcuNjMxYzAgOC4yMzUgNi42NzYgMTQuOTExIDE0LjkxMSAxNC45MTFzMTQuOTExLTYuNjc2IDE0LjkxMS0xNC45MTF2LTY2LjloNi42MWMxNy4xNjYgMCAyNy44OTMtMTguNzA4IDE5LjE5Mi0zMy41Mjh6bS03Ni44NjYgMzc3Ljc3OGgtODguMzAydi0yOS44MjJoODguMzAyem0tODQuNTk5LTQ1Mi4zNTZoODMuMDgzbDQ1Ljk3NCA3OC4yODRjLTcuMDYxIDAtMTY5LjkwMyAwLTE3Ni45MzggMHptNDAuNDQ3IDE0Ny4xNzJjLTIyLjU5NSAwLTQxLjI2Ny0xNy4xMTctNDMuNzI5LTM5LjA2Nmg4Ny40NThjLTIuNDYyIDIxLjk0OS0yMS4xMzQgMzkuMDY2LTQzLjcyOSAzOS4wNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Garage Doors":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDY0YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04SDhDMy41ODIsMCwwLDMuNTgyLDAsOHY0OGMwLDQuNDE4LDMuNTgyLDgsOCw4aDE2djQwMEg4CgkJYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDQ2NGM0LjQxOCwwLDgtMy41ODIsOC04cy0zLjU4Mi04LTgtOGgtMTZWNjRINDcyeiBNNDA4LDQ2NEg3MnYtNDhoMzM2VjQ2NHogTTQwOCw0MDBINzJ2LTQ4CgkJaDMzNlY0MDB6IE00MDgsMzM2SDcydi00OGgzMzZWMzM2eiBNNDA4LDI3Mkg3MnYtNDhoMzM2VjI3MnogTTQwOCwyMDhINzJ2LTQ4aDMzNlYyMDh6IE00MDgsMTQ0SDcyVjk2aDMzNlYxNDR6IE00NDAsNDY0aC0xNlY4OAoJCWMwLTQuNDE4LTMuNTgyLTgtOC04SDY0Yy00LjQxOCwwLTgsMy41ODItOCw4djM3Nkg0MFY2NGg0MDBWNDY0eiBNMTYsNDhWMTZoNDQ4djMySDE2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTYsNDU2aDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LDMuNTgyLTgsOFMyMTEuNTgyLDQ1NiwyMTYsNDU2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Gates:ffe,Hairdryer:xfe,Handle:_fe,"Hanging Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05My41MjUgMzU5Ljc3MWgxMDcuODg1djQuMTI5YTUzLjA3MiA1My4wNzIgMCAxIDAgMTA2LjE0NCAwdi00LjEyNGgxMTAuOTIxYTYgNiAwIDAgMCA2LTZjMC04Mi4wMTUtNTguOTEzLTE1MC41MTgtMTM2LjY0LTE2NS40NDR2LTIwLjMxOWEzMS44ODMgMzEuODgzIDAgMCAwIC0yNS44MzUtMzEuMjZ2LTEyMC43NTNhNiA2IDAgMCAwIC0xMiAwdjEyMC43NTNhMzEuODgzIDMxLjg4MyAwIDAgMCAtMjUuODM1IDMxLjI2djIwLjMxNGMtNzcuNzI3IDE0LjkyNi0xMzYuNjQgODMuNDI5LTEzNi42NCAxNjUuNDQ0YTYgNiAwIDAgMCA2IDZ6bTIwMi4wMjkgNC4xMjlhNDEuMDcyIDQxLjA3MiAwIDEgMSAtODIuMTQ0IDB2LTQuMTI0aDgyLjE0NHptLTM5LjU1NC0yMTUuNzIyYTE5Ljg1MSAxOS44NTEgMCAwIDEgMTkuMTggMTQuODY4aC0zOC4zNmExOS44NTEgMTkuODUxIDAgMCAxIDE5LjE4LTE0Ljg2OHptLTE5LjgzNSAyNi44NjhoMzkuNjd2MTEuNDI0YTE2OC4yODggMTY4LjI4OCAwIDAgMCAtMzkuNjcgMHptMTkuODM1IDIyLjI1NGM4NC4yNzQgMCAxNTMuMiA2Ni45NiAxNTYuMzYxIDE1MC40NzRoLTMxMi43MjJjMy4xNjEtODMuNTE3IDcyLjA4Ny0xNTAuNDc0IDE1Ni4zNjEtMTUwLjQ3NHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUwIDQ1NS41MDh2NDAuNDkyYTYgNiAwIDAgMCAxMiAwdi00MC40OTJhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDMuNDIyIDQzMS40ODhhNiA2IDAgMCAwIC0uMDc1IDguNDg1bDI4LjM0NCAyOC44NTFhNiA2IDAgMCAwIDguNTYxLTguNDFsLTI4LjM0NC0yOC44NTFhNiA2IDAgMCAwIC04LjQ4Ni0uMDc1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuMDkyIDQzMS41NjMtMjguMzQ0IDI4Ljg1MWE2IDYgMCAwIDAgOC41NjEgOC40MWwyOC4zNDQtMjguODUxYTYgNiAwIDAgMCAtOC41NjEtOC40MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTg2Ljc1IDIzNi44MWExNjguNzMxIDE2OC43MzEgMCAwIDAgLTQ1LjkyNyA0OC4xNDMgNiA2IDAgMSAwIDEwLjE0MSA2LjQxNyAxNTYuNzgxIDE1Ni43ODEgMCAwIDEgNDIuNjc3LTQ0LjczNiA2IDYgMCAwIDAgLTYuODkxLTkuODI0eiIvPgogICAgPC9nPgo8L3N2Zz4=",Heater:Sfe,Hoods:kfe,"Hot Water":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMCA1MTAiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTUgMjQxLjkwMmMtMTguMjIzIDAtMzMuMzU4LTUuOTM3LTQ1LjA5Mi0xNy42MnYtMTQ5LjM1NGMwLTQxLjMxNS0zMy42MTMtNzQuOTI4LTc0LjkyOS03NC45MjhzLTc0LjkyOCAzMy42MTMtNzQuOTI4IDc0LjkyOHYxNDkuMzk1Yy0yNC4yNTQgMjQuMTA3LTY5LjQ3NiAyNC40MTUtOTMuNjYzLTMuODAzLTUuOTgxLTYuOTc4LTE2Ljc5My02Ljk4Mi0yMi43NzcgMC0yNC41ODYgMjguNjg1LTcyLjUzOCAyOC43OTgtOTcuMjIzIDAtNi4zMjItNy4zNzgtMTcuODY3LTYuODY3LTIzLjUzNy45NjMtLjE0OC4yMDQtMTUuNjg4IDIwLjQxOC00Ny44NTIgMjAuNDE4LTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTVjMjguNjMyIDAgNDguNDg5LTExLjI4IDYwLjAyNy0yMC42MjQgMzMuNDQ3IDI3LjYxNSA4Ni41MTIgMjcuNjI1IDExOS45NzMtLjAyMiAzMC4xOTEgMjQuOTQ0IDc0LjM2MiAyNi4xNzkgMTA1LjA1MiA5Ljk1N3Y0MC40NzFjLTI3Ljk4NCAyMy4xMzEtNDMuODExIDU3Ljg3OC00Mi42NTggOTQuNDUzIDEuOTc0IDYyLjcyOCA1My43NDMgMTEzLjg2NCAxMTcuNTg2IDExMy44NjQgNjQuODcxIDAgMTE3LjY0Ny01Mi43NzYgMTE3LjY0Ny0xMTcuNjQ2IDAtMzUuMDctMTUuODM3LTY4LjQwNi00Mi43MTktOTAuNjY2di00MC40OTdjMTMuMzI1IDcuMDUyIDI4LjUxNyAxMC43MSA0NS4wOTIgMTAuNzEgOC4yODQgMCAxNS02LjcxNiAxNS0xNXMtNi43MTUtMTQuOTk5LTE0Ljk5OS0xNC45OTl6bS0xMjAuMDItMjExLjkwMmMyNC43NzMgMCA0NC45MjggMjAuMTU1IDQ0LjkyOCA0NC45Mjh2MTQ5LjUzN2MtOC4zMTQgOC4yMTEtMTguMzI3IDEzLjU1MS0yOS45MjkgMTUuOTUzdi0xNDMuOTU3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVzLTE1IDYuNzE2LTE1IDE1djE0My45NDdjLTExLjYwMy0yLjQwOS0yMS42MTUtNy43NTktMjkuOTI4LTE1Ljk4M3YtMTQ5LjQ5N2MuMDAxLTI0Ljc3MyAyMC4xNTYtNDQuOTI4IDQ0LjkyOS00NC45Mjh6bS0uMDAxIDM0My41MDRjMTAuNTMyIDAgMTkuMTAxIDguNTY4IDE5LjEwMSAxOS4xcy04LjU2OCAxOS4xLTE5LjEwMSAxOS4xYy0xMC41MzEgMC0xOS4xLTguNTY4LTE5LjEtMTkuMXM4LjU2OS0xOS4xIDE5LjEtMTkuMXptODcuNjQ4IDE4Ljg1YzAgNDguMzI5LTM5LjMxOCA4Ny42NDYtODcuNjQ3IDg3LjY0Ni00Ni44MzEgMC04Ni4xMjktMzguMDQ0LTg3LjYwMi04NC44MDgtLjkyLTI5LjIxOCAxMi43MDQtNTYuODc1IDM2LjQ0My03My45ODEgMy45MTItMi44MTkgNi4yMy03LjM0NyA2LjIzLTEyLjE2OXYtNDcuNzc0YzkuMTQ4IDQuODIgMTkuMTc3IDguMDMzIDI5LjkyOCA5LjU2OHY3NS4wMmMtMTkuNzU4IDYuMzU1LTM0LjEgMjQuOTA1LTM0LjEgNDYuNzQ4IDAgMjcuMDc0IDIyLjAyNiA0OS4xIDQ5LjEgNDkuMXM0OS4xMDEtMjIuMDI2IDQ5LjEwMS00OS4xYzAtMjEuODQzLTE0LjM0Mi00MC4zOTMtMzQuMTAxLTQ2Ljc0OHYtNzUuMDE0YzEwLjc1LTEuNTMxIDIwLjc4LTQuNzM4IDI5LjkyOS05LjU1MnY0Ny43NTNjMCA0LjgyMiAyLjMxOCA5LjM1MSA2LjIzIDEyLjE2OSAyMi44NDggMTYuNDYzIDM2LjQ4OSA0My4wNTkgMzYuNDg5IDcxLjE0MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc4LjE5IDMwOC4zMzJjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuODU3IDM3OS4xMTdjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjQuODYzIDE1NC4xNDNjLTUuODU4IDUuODU4LTUuODU4IDE1LjM1NSAwIDIxLjIxMyA1Ljg1NyA1Ljg1NyAxNS4zNTUgNS44NTggMjEuMjEzIDAgMjEuMDQ2LTIxLjA0NiAyMS4wNDYtNTUuMjkxIDAtNzYuMzM4LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ny01Ljg1OC0xNS4zNTUtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzQ5IDkuMzQ5IDkuMzQ5IDI0LjU2MSAwIDMzLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTQyLjI1MSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcxIDkuMzcxIDkuMzczIDI0LjUzOSAwIDMzLjkxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjE5LjYzOSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcgOS4zNzEgOS4zNzMgMjQuNTM5IDAgMzMuOTEyeiIvPgogICAgPC9nPgo8L3N2Zz4=",Humidity:Yfe,Iron:vfe,Irrigation:bfe,"Led Strip":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTYgMThhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDI2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiA0MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgNTBhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDU4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiAzNGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTIgNjJoOGExIDEgMCAwIDAgMS0xdi00OWg2djQxYTEgMSAwIDAgMCAuMjkzLjcwN2w4IDhhMSAxIDAgMCAwIC43MDcuMjkzaDhhMSAxIDAgMCAwIC43MDctLjI5M2w4LThhMSAxIDAgMCAwIC4yOTMtLjcwN3YtNTBhMSAxIDAgMCAwIC0xLTFoLThhMSAxIDAgMCAwIC0xIDF2NDloLTZ2LTQ5YTEgMSAwIDAgMCAtMS0xaC0xNmExIDEgMCAwIDAgLS43MDcuMjkzbC04IDhhMSAxIDAgMCAwIC0uMjkzLjcwN3Y1MGExIDEgMCAwIDAgMSAxem0zMy0xM3YtNDVoNnY0OC41ODZsLTYgNnptLTggNWg2djZoLTZ6bS04LTV2LTQ1aDZ2NTQuNTg2bC02LTZ6bS04LTQ1aDZ2NmgtNnptLTggNTF2LTQzLjU4Nmw2LTZ2NTQuNTg2aC02eiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMyA2aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgNTZoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00IDMxaDV2MmgtNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNiAyNWgydjVoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNiAtLjggLjggLjYgLTE5LjIgMTYuNikiLz4KICAgICAgICA8cGF0aCBkPSJtNC41IDM1LjVoNXYyaC01eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjggLS42IC42IC44IC0yMC41MDUgMTEuNTA1KSIvPgogICAgICAgIDxwYXRoIGQ9Im01NSAzMWg1djJoLTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU0LjUgMjYuNWg1djJoLTV6IiB0cmFuc2Zvcm09Im1hdHJpeCguOCAtLjYgLjYgLjggLTUuMDk4IDM5LjcxMikiLz4KICAgICAgICA8cGF0aCBkPSJtNTYgMzRoMnY1aC0yeiIgdHJhbnNmb3JtPSJtYXRyaXgoLjYgLS44IC44IC42IC02LjQgNjAuMikiLz4KICAgIDwvZz4KPC9zdmc+",Light:Qfe,Lightings:Ufe,Lock:$fe,Louvre:Pfe,"Mowing Machine":"PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NyA1NGM1LjUxNCAwIDEwLTQuNDg2IDEwLTEwcy00LjQ4Ni0xMC0xMC0xMC0xMCA0LjQ4Ni0xMCAxMCA0LjQ4NiAxMCAxMCAxMHptLTcuOTMxLTExYy4xODMtMS40NTguNzU5LTIuNzkyIDEuNjE5LTMuODk4bDEuMzYyIDEuMzYzIDEuNDE0LTEuNDE0LTEuMzYyLTEuMzYyYzEuMTA2LS44NiAyLjQ0LTEuNDM2IDMuODk4LTEuNjE5djEuOTNoMnYtMS45MzFjMS40NTguMTgzIDIuNzkyLjc1OSAzLjg5OCAxLjYxOWwtMS4zNjIgMS4zNjIgMS40MTQgMS40MTQgMS4zNjItMS4zNjNjLjg2IDEuMTA2IDEuNDM2IDIuNDQgMS42MTkgMy44OThoLTEuOTMxdjJoMS45MzFjLS4xODMgMS40NTgtLjc1OSAyLjc5Mi0xLjYxOSAzLjg5OGwtMS4zNjItMS4zNjMtMS40MTQgMS40MTQgMS4zNjIgMS4zNjJjLTEuMTA2Ljg2LTIuNDQgMS40MzYtMy44OTggMS42MTl2LTEuOTI5aC0ydjEuOTMxYy0xLjQ1OC0uMTgzLTIuNzkyLS43NTktMy44OTgtMS42MTlsMS4zNjItMS4zNjItMS40MTQtMS40MTQtMS4zNjIgMS4zNjNjLS44Ni0xLjEwNi0xLjQzNi0yLjQ0LTEuNjE5LTMuODk4aDEuOTMxdi0yaC0xLjkzMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMjFoLTI0Ljk4Yy0xLjUxMSAwLTIuOTg0LjQyNi00LjI2MiAxLjIyOWwtMjIuMDIxIDEzLjg2NmMtMi4zNCAxLjQ3My0zLjczNyA0LjAwNS0zLjczNyA2Ljc2OXY2LjEzNmMwIC41NTMuNDQ4IDEgMSAxaDMzLjA4OGMuMzQxIDAgLjY1OC0uMTc0Ljg0Mi0uNDYuMTg0LS4yODcuMjA5LS42NDcuMDY3LS45NTctLjc1LTEuNjM1LTEuMDgtMy4zODctLjk3OS01LjIwOC4zMDktNS41OTEgNC45MzYtMTAuMTQ1IDEwLjUzNS0xMC4zNjYgMy4wMjgtLjExNiA1Ljg5Mi45NjcgOC4wNjkgMy4wNiAyLjE3OCAyLjA5MyAzLjM3OCA0LjkxIDMuMzc4IDcuOTMxIDAgLjU1My40NDggMSAxIDFoM2MuNTUyIDAgMS0uNDQ3IDEtMXYtMTdjMC0zLjMwOS0yLjY5MS02LTYtNnptLTI4LjE3NyAyLjkyM2MuOTU5LS42MDQgMi4wNjQtLjkyMyAzLjE5Ny0uOTIzaDEwLjM3bC04LjM5MSA1LjAzNXYtLjAzNWgtMTEuNjUxem0tMjIuMDIgMTMuODY0IDEyLjM2OC03Ljc4N2gxMS41NTJsLTE4LjIzMyAxMC45NGMtMS4xNTcuNjk0LTIuNDggMS4wNi0zLjgyNyAxLjA2aC00LjU5NmMuMjQ4LTEuNzI4IDEuMjI5LTMuMjYzIDIuNzM2LTQuMjEzem01NC4xOTcgNS4yMTNoLTEuMDM4Yy0uMjM5LTMuMTg4LTEuNjIzLTYuMTMyLTMuOTU1LTguMzc0LTIuNTczLTIuNDczLTUuOTYzLTMuNzUtOS41MzQtMy42MTUtNi4xOS4yNDUtMTEuMzc0IDQuOTctMTIuMzE3IDEwLjk4OWgtMTcuMTU2djJoMTcuMDEzYy4wMDIgMS4zNjEuMjAyIDIuNzE1LjYxNSA0aC0zMC42Mjh2LTRoNC42NjNjMS43MDkgMCAzLjM4OS0uNDY1IDQuODU2LTEuMzQ1bDMyLjc1OC0xOS42NTVoMTAuNzIzYzIuMjA2IDAgNCAxLjc5NCA0IDR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDQ4YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNi42NTEgMTUuNjM1Yy0xLjc1NyAyLjEyNS0xLjQ1OCA1LjI4Mi42NjcgNy4wNGw0LjYyNCAzLjgyM2MuMTg3LjE1NC40MTIuMjI5LjYzNy4yMjkuMjg4IDAgLjU3My0uMTI0Ljc3MS0uMzYyIDEuNzU3LTIuMTI1IDEuNDU4LTUuMjgyLS42NjctNy4wNGwtNC42MjQtMy44MjNjLS40MjYtLjM1Mi0xLjA1Ni0uMjkyLTEuNDA4LjEzM3ptNS42NjIgOC41NzYtMy43MjEtMy4wNzdjLTEuMDA0LS44MzEtMS4zMjktMi4xODUtLjkwNS0zLjM0NWwzLjcyMSAzLjA3N2MxLjAwNS44MzEgMS4zMjkgMi4xODUuOTA1IDMuMzQ1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMS40NDUgOS4yMjktNC42MjQgMy44MjNjLTIuMTI1IDEuNzU4LTIuNDI0IDQuOTE2LS42NjcgNy4wNC4xOTguMjM5LjQ4My4zNjIuNzcxLjM2Mi4yMjUgMCAuNDUtLjA3NS42MzctLjIyOWw0LjYyNC0zLjgyM2MyLjEyNS0xLjc1NyAyLjQyNC00LjkxNS42NjctNy4wNC0uMzUyLS40MjQtLjk4My0uNDg0LTEuNDA4LS4xMzN6bS0uNTMzIDUuNjMyLTMuNzIyIDMuMDc4Yy0uMTUyLS40MTUtLjIxMS0uODYzLS4xNjgtMS4zMTYuMDc2LS43OTguNDU4LTEuNTE5IDEuMDc1LTIuMDI5bDMuNzIxLTMuMDc3Yy40MjMgMS4xNi4wOTkgMi41MTMtLjkwNiAzLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+",Music:Wfe,"Outdoor Blinds":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NTcgMGgtNDAyYy0zMC4zMjcgMC01NSAyNC42NzMtNTUgNTV2NDU3aDQzMnYtNDA4LjAzNWM3LjUwNyAzLjg0OCAxNiA2LjAzNSAyNSA2LjAzNSAzMC4zMjcgMCA1NS0yNC42NzMgNTUtNTVzLTI0LjY3My01NS01NS01NXptLTQwMiAzMGgzNTMuMDM1Yy0zLjg0OCA3LjUwNy02LjAzNSAxNi02LjAzNSAyNXY3aC0zNzJ2LTdjMC0xMy43ODUgMTEuMjE1LTI1IDI1LTI1em0tMjUgMjcydi0zMGgzNzJ2MzB6bTM3MiAzMHYzMGgtMzcydi0zMHptLTM3Mi05MHYtMzBoMzcydjMwem0wLTYwdi0zMGgzNzJ2MzB6bTAtNjB2LTMwaDM3MnYzMHptMCAzNjB2LTkwaDM3MnY5MHptNDI3LTQwMmMtMTMuNzg1IDAtMjUtMTEuMjE1LTI1LTI1czExLjIxNS0yNSAyNS0yNSAyNSAxMS4yMTUgMjUgMjUtMTEuMjE1IDI1LTI1IDI1eiIvPgogICAgICAgIDxwYXRoIGQ9Im02MCA0MjJoMzB2MzBoLTMweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDIgNDIyaDMwdjMwaC0zMHoiLz4KICAgIDwvZz4KPC9zdmc+",People:Bfe,Pool:Jfe,"Power Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTIgM2MtLjI3NiAwLS41LS4yMjQtLjUtLjV2LTJjMC0uMjc2LjIyNC0uNS41LS41cy41LjIyNC41LjV2MmMwIC4yNzYtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4LjcxOCA1Ljc4MmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDYtLjE5NS0uMTk1LS4xOTUtLjUxMiAwLS43MDdsMS40MTQtMS40MTRjLjE5NS0uMTk1LjUxMi0uMTk1LjcwNyAwcy4xOTUuNTEyIDAgLjcwN2wtMS40MTQgMS40MTRjLS4wOTcuMDk3LS4yMjUuMTQ2LS4zNTMuMTQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMy41IDEyLjVoLTJjLS4yNzYgMC0uNS0uMjI0LS41LS41cy4yMjQtLjUuNS0uNWgyYy4yNzYgMCAuNS4yMjQuNS41cy0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjAuMTMyIDIwLjYzMmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDZsLTEuNDE0LTEuNDE0Yy0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN3MuNTEyLS4xOTUuNzA3IDBsMS40MTQgMS40MTRjLjE5NS4xOTUuMTk1LjUxMiAwIC43MDctLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDI0Yy0uMjc2IDAtLjUtLjIyNC0uNS0uNXYtMmMwLS4yNzYuMjI0LS41LjUtLjVzLjUuMjI0LjUuNXYyYzAgLjI3Ni0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMy44NjggMjAuNjMyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0Ni0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN2wxLjQxNC0xLjQxNGMuMTk1LS4xOTUuNTEyLS4xOTUuNzA3IDBzLjE5NS41MTIgMCAuNzA3bC0xLjQxNCAxLjQxNGMtLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIuNSAxMi41aC0yYy0uMjc2IDAtLjUtLjIyNC0uNS0uNXMuMjI0LS41LjUtLjVoMmMuMjc2IDAgLjUuMjI0LjUuNXMtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUuMjgyIDUuNzgyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0NmwtMS40MTMtMS40MTRjLS4xOTUtLjE5NS0uMTk1LS41MTIgMC0uNzA3cy41MTItLjE5NS43MDcgMGwxLjQxNCAxLjQxNGMuMTk1LjE5NS4xOTUuNTEyIDAgLjcwNy0uMDk4LjA5Ny0uMjI2LjE0Ni0uMzU0LjE0NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAuNTczIDIwYy0uMDU5IDAtLjExNy0uMDEtLjE3NS0uMDMxLS4yMTktLjA4Mi0uMzUyLS4zMDQtLjMyMS0uNTM0bC44NTMtNi40MzVoLTMuNDNjLS4xODkgMC0uMzYyLS4xMDctLjQ0Ny0uMjc2cy0uMDY3LS4zNzIuMDQ3LS41MjRsNi04Yy4xMzktLjE4Ni4zODYtLjI1Mi41OTctLjE2LjIxMi4wOTEuMzM1LjMxNC4yOTcuNTQybC0uOTA0IDUuNDE4aDMuNDFjLjE4NCAwIC4zNTMuMTAxLjQ0LjI2M3MuMDc4LjM1OC0uMDIyLjUxM2wtNS45MjcgOWMtLjA5NS4xNDMtLjI1NC4yMjQtLjQxOC4yMjR6bS0yLjA3My04aDNjLjE0NSAwIC4yODEuMDYzLjM3Ni4xNzEuMDk1LjEwNy4xMzkuMjUyLjEyLjM5NWwtLjY0MSA0LjgzOCA0LjIxNy02LjQwNGgtMy4wNzJjLS4xNDcgMC0uMjg2LS4wNjQtLjM4Mi0uMTc3LS4wOTUtLjExMi0uMTM2LS4yNjEtLjExMS0uNDA1bC42NjMtMy45Nzh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Printer:Rfe,Pump:Ffe,Receiver:Gfe,Sconces:Hfe,Security:Vfe,Shading:Zfe,Shutters:Xfe,SmokeDetector:Kfe,Sockets:qfe,Speaker:exe,Stove:txe,"Table Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05Ny41IDIyMC4zNjEtMTUuOTE0IDE1LjkxNGE2IDYgMCAxIDAgOC40ODQgOC40ODZsMTUuOTE1LTE1LjkxNWE2IDYgMCAxIDAgLTguNDg0LTguNDg1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS41MSAxMTdhNiA2IDAgMCAwIDQuMjQzLTEwLjI0MmwtMTUuOTE0LTE1LjkxNWE2IDYgMCAwIDAgLTguNDg2IDguNDg2bDE1LjkxNCAxNS45MTRhNS45NzggNS45NzggMCAwIDAgNC4yNDMgMS43NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzNS41IDI0Mi41MDgtMTUuOTEtMTUuOTE0YTYgNiAwIDAgMCAtOC40ODYgOC40ODVsMTUuOTE0IDE1LjkxNWE2IDYgMCAwIDAgOC40ODYtOC40ODZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTg2LjgyNiAxNzFhNiA2IDAgMCAwIC02LTZoLTI0LjgzN2E2IDYgMCAwIDAgMCAxMmgyNC44MzdhNiA2IDAgMCAwIDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTU1IDIzOS41MjFhNiA2IDAgMCAwIC02IDZ2MjQuODM2YTYgNiAwIDAgMCAxMiAwdi0yNC44MzZhNiA2IDAgMCAwIC02LTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzOC44NTIgNDUxLjk2OWE0MS44MzcgNDEuODM3IDAgMCAwIC00MS4xNjYtMzUuOTY5aC0yOC42ODZ2LTMyNi42ODRhNjkuMzA5IDY5LjMwOSAwIDAgMCAtMTIxLjctNDUuMzgyIDU2LjAyMiA1Ni4wMjIgMCAwIDAgLTQ4LjcwOSA2LjM0OWwtODEuNTE5IDU0LjA2OGE2IDYgMCAwIDAgLS45MjUgOS4yNDJsMjMuNDIyIDIzLjQyMy0xLjQ0MiAxLjQ0MmEzNS4xODggMzUuMTg4IDAgMCAwIDQ5Ljc2MyA0OS43NjNsMS40NDItMS40NDIgMjMuNDIyIDIzLjQyMWE2IDYgMCAwIDAgNC4yNDYgMS43NTljLjIgMCAuNC0uMDEuNi0uMDNhNiA2IDAgMCAwIDQuNC0yLjY1NGw1NC4wNjctODEuNTE5YTU2LjA4OCA1Ni4wODggMCAwIDAgMy40ODgtNTUuNjU2IDI2LjM4NiAyNi4zODYgMCAwIDEgNDYuNDQ1IDE3LjIxNnYzMjYuNjg0aC0yOS4xODJhNDIgNDIgMCAwIDAgLTQxLjM0MyAzNi4wNzYgMjYuNCAyNi40IDAgMCAwIC0yMi40NzUgMjUuOTU2djcuOTY4YTYuMjgyIDYuMjgyIDAgMCAwIDYuMzE5IDZoMjE2LjY5MmE1Ljk5MiA1Ljk5MiAwIDAgMCA1Ljk4OS02di03Ljk2OGEyNi4yNDcgMjYuMjQ3IDAgMCAwIC0yMy4xNDgtMjYuMDYzem0tMjU5LjQ1Mi0yNzIuMjM0YTIzLjE4OCAyMy4xODggMCAwIDEgLTMyLjc5My0zMi43OTJsMS40NDMtMS40NDMgMzIuNzkzIDMyLjc5M3ptMzYuNjQ4IDE2Ljc5NC04Ni4yMy04Ni4yMjkgMTguMDkzLTEyIDgwLjE0IDgwLjE0em01MC4wMTItNzUuNC0zMS4yNDYgNDcuMTEtNzYuNy03Ni43MDUgNDcuMTEtMzEuMjQ2YTQzLjg5NCA0My44OTQgMCAwIDEgNjAuODQgNjAuODQxem0zMy41MjgtNzAuMjcyYTM4LjI1MiAzOC4yNTIgMCAwIDAgLTI2LjY4OCAxMC44MjMgNTQuNjIgNTQuNjIgMCAwIDAgLTE0LjE4Ni0xMi40MzUgNTcuMzEgNTcuMzEgMCAwIDEgOTguMjg2IDQwLjA3MXYzMjYuNjg0aC0xOXYtMzI2LjY4NGEzOC40NjEgMzguNDYxIDAgMCAwIC0zOC40MDktMzguNDY0em0tMi43NyAzNzcuMTQzaDEwMC44NjhjMTQuMjU5IDAgMjYuMTk1IDExIDI4Ljk3NiAyNGgtMTU4LjgxOWMyLjc4MS0xMyAxNC43MTYtMjQgMjguOTc1LTI0em0xNTMuMTgyIDUyaC0yMDV2LTEuOTY4YTE0LjMyIDE0LjMyIDAgMCAxIDE0LjMxOS0xNC4wMzJoMTc2LjY5MmExNC4wMzQgMTQuMDM0IDAgMCAxIDEzLjk4OSAxNC4wMzJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwNSAzODEuMDMxYTYgNiAwIDAgMCAxMiAwdi03NS44MDZhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTEgMjkwLjg0NGE2IDYgMCAwIDAgNi02di00LjgzNGE2IDYgMCAwIDAgLTEyIDB2NC44MzRhNiA2IDAgMCAwIDYgNnoiLz4KICAgIDwvZz4KPC9zdmc+","Temperature Sensors":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTM1MiwzODUuNDA2VjUzLjMzM0MzNTIsMjMuOTI3LDMyOC4wNzMsMCwyOTguNjY3LDBzLTUzLjMzMywyMy45MjctNTMuMzMzLDUzLjMzM3YzMzIuMDczCgkJCQlDMjMxLjcxOSwzOTkuMzY1LDIyNCw0MTguMDMxLDIyNCw0MzcuMzMzQzIyNCw0NzguNSwyNTcuNSw1MTIsMjk4LjY2Nyw1MTJjNDEuMTY3LDAsNzQuNjY3LTMzLjUsNzQuNjY3LTc0LjY2NwoJCQkJQzM3My4zMzMsNDE4LjAzMSwzNjUuNjE1LDM5OS4zNjUsMzUyLDM4NS40MDZ6IE0yOTguNjY3LDQ5MC42NjdjLTI5LjQwNiwwLTUzLjMzMy0yMy45MjctNTMuMzMzLTUzLjMzMwoJCQkJYzAtMTUuMTA0LDYuMzIzLTI5LjEyNSwxNy44MTMtMzkuNDY5YzIuMjQtMi4wMzEsMy41MjEtNC45MDYsMy41MjEtNy45MjdWNTMuMzMzYzAtMTcuNjQ2LDE0LjM1NC0zMiwzMi0zMgoJCQkJYzE3LjY0NiwwLDMyLDE0LjM1NCwzMiwzMnYzMzYuNjA0YzAsMy4wMjEsMS4yODEsNS44OTYsMy41MjEsNy45MjdDMzQ1LjY3Nyw0MDguMjA4LDM1Miw0MjIuMjI5LDM1Miw0MzcuMzMzCgkJCQlDMzUyLDQ2Ni43NCwzMjguMDczLDQ5MC42NjcsMjk4LjY2Nyw0OTAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDkuMzMzLDQwNy4yOThWMjI0YzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42Njd2MTgzLjI5OAoJCQkJYy0xMi4zODksNC40MTgtMjEuMzMzLDE2LjE0Ny0yMS4zMzMsMzAuMDM1YzAsMTcuNjQ2LDE0LjM1NCwzMiwzMiwzMmMxNy42NDYsMCwzMi0xNC4zNTQsMzItMzIKCQkJCUMzMzAuNjY3LDQyMy40NDUsMzIxLjcyMyw0MTEuNzE2LDMwOS4zMzMsNDA3LjI5OHogTTI5OC42NjcsNDQ4Yy01Ljg4NSwwLTEwLjY2Ny00Ljc4MS0xMC42NjctMTAuNjY3CgkJCQljMC01Ljg4NSw0Ljc4MS0xMC42NjcsMTAuNjY3LTEwLjY2N2M1Ljg4NSwwLDEwLjY2Nyw0Ljc4MSwxMC42NjcsMTAuNjY3QzMwOS4zMzMsNDQzLjIxOSwzMDQuNTUyLDQ0OCwyOTguNjY3LDQ0OHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjEzLjMzMywzNDEuMzMzaC02NGMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDY0CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzQ2LjEwNCwyMTkuMjI5LDM0MS4zMzMsMjEzLjMzMywzNDEuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI5OC42NjdIMTkyYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3YzAsNS44OTYsNC43NzEsMTAuNjY3LDEwLjY2NywxMC42NjdoMjEuMzMzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzAzLjQzOCwyMTkuMjI5LDI5OC42NjcsMjEzLjMzMywyOTguNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI1NkgxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwyNjAuNzcxLDIxOS4yMjksMjU2LDIxMy4zMzMsMjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDkuMzMzLDIzNC42NjdoNjRjNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N3MtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdoLTY0CgkJCQljLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdTMTQzLjQzOCwyMzQuNjY3LDE0OS4zMzMsMjM0LjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTQ5LjMzMywxMDYuNjY3aDY0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3aC02NAoJCQkJYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzE0My40MzgsMTA2LjY2NywxNDkuMzMzLDEwNi42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTcwLjY2N0gxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwxNzUuNDM4LDIxOS4yMjksMTcwLjY2NywyMTMuMzMzLDE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTI4SDE5MmMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDIxLjMzMwoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdDMjI0LDEzMi43NzEsMjE5LjIyOSwxMjgsMjEzLjMzMywxMjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Tv:sxe,"Vacuum Cleaner":"PHN2ZyB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ0MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOC0uMDI3MzQ0LTIyLjA4MjAzMS0xNy45MTc5NjktMzkuOTcyNjU2LTQwLTQwLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzMy41ODIwMzEtOCA4LThjMzAuOTE0MDYyLjAzNTE1NiA1NS45NjQ4NDQgMjUuMDg1OTM4IDU2IDU2IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzLTMuNTgyMDMxLTgtOC04LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04YzEzLjI1MzkwNiAwIDI0IDEwLjc0NjA5NCAyNCAyNCAwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04LS4wNDY4NzUtMzkuNzQ2MDk0LTMyLjI1MzkwNi03MS45NTMxMjUtNzItNzItNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOHMzLjU4MjAzMS04IDgtOGM0OC41NzgxMjUuMDU4NTkzOCA4Ny45NDE0MDYgMzkuNDIxODc1IDg4IDg4IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOCAuMDM1MTU2LTMwLjkxNDA2MiAyNS4wODU5MzgtNTUuOTY0ODQ0IDU2LTU2IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0yMi4wODIwMzEuMDI3MzQ0LTM5Ljk3MjY1NiAxNy45MTc5NjktNDAgNDAgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04IDAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNCA0LjQxNzk2OSAwIDggMy41ODIwMzEgOCA4cy0zLjU4MjAzMSA4LTggOC04IDMuNTgyMDMxLTggOC0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LTggLjA1ODU5MzgtNDguNTc4MTI1IDM5LjQyMTg3NS04Ny45NDE0MDYyIDg4LTg4IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0zOS43NDYwOTQuMDQ2ODc1LTcxLjk1MzEyNSAzMi4yNTM5MDYtNzIgNzIgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0MTZjMjYuNTA3ODEyIDAgNDgtMjEuNDkyMTg4IDQ4LTQ4cy0yMS40OTIxODgtNDgtNDgtNDgtNDggMjEuNDkyMTg4LTQ4IDQ4Yy4wMjczNDQgMjYuNSAyMS41IDQ3Ljk3MjY1NiA0OCA0OHptMC04MGMxNy42NzE4NzUgMCAzMiAxNC4zMjgxMjUgMzIgMzJzLTE0LjMyODEyNSAzMi0zMiAzMi0zMi0xNC4zMjgxMjUtMzItMzIgMTQuMzI4MTI1LTMyIDMyLTMyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQwIDE4NGMxMy4yNTM5MDYgMCAyNC0xMC43NDYwOTQgMjQtMjRzLTEwLjc0NjA5NC0yNC0yNC0yNC0yNCAxMC43NDYwOTQtMjQgMjQgMTAuNzQ2MDk0IDI0IDI0IDI0em0wLTMyYzQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzE3Ljk0NTMxMiAxNTJ2LjA0Njg3NWguMDU0Njg4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE1Mmg0OHYxNmgtNDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODAgMTUyaDQ4djE2aC00OHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0OGMtMTAxLjI2NTYyNS0uMDExNzE5LTE4OC45NDUzMTIgNzAuMzMyMDMxLTIxMC44OTA2MjUgMTY5LjE4NzUtMjEuOTQ1MzEzIDk4Ljg1OTM3NSAyNy43MzQzNzUgMTk5LjY5MTQwNiAxMTkuNDkyMTg3IDI0Mi41MzEyNSA1Ny45MjU3ODIgMjcuMDM1MTU2IDEyNC44NTE1NjMgMjcuMDM1MTU2IDE4Mi43ODEyNSAwIDkxLjc1NzgxMy00Mi44MzU5MzggMTQxLjQzMzU5NC0xNDMuNjY0MDYyIDExOS40OTIxODgtMjQyLjUyMzQzOC0yMS45NDE0MDYtOTguODU1NDY4LTEwOS42MTMyODEtMTY5LjE5OTIxOC0yMTAuODc1LTE2OS4xOTUzMTJ6bTAgMTZjMTA3LjI4NTE1Ni4xMzI4MTIgMTk1LjM5ODQzOCA4NC44MDQ2ODggMTk5LjgwMDc4MSAxOTJoLTE2Yy00LjU4MjAzMS05OC4xNzk2ODgtODUuNTE1NjI1LTE3NS40MjE4NzUtMTgzLjgwMDc4MS0xNzUuNDIxODc1cy0xNzkuMjE4NzUgNzcuMjQyMTg3LTE4My44MDA3ODEgMTc1LjQyMTg3NWgtMTZjNC40MDIzNDMtMTA3LjE5NTMxMiA5Mi41MTU2MjUtMTkxLjg2NzE4OCAxOTkuODAwNzgxLTE5MnptMjkuMTEzMjgxIDI0NS40OTYwOTRjMzAuNjgzNTk0IDExLjk4ODI4MSA1MC44ODI4MTMgNDEuNTU4NTk0IDUwLjg4NjcxOSA3NC41MDM5MDZ2MjcuNjQwNjI1Yy00OS44Nzg5MDYgMjcuMTQ0NTMxLTExMC4xMjEwOTQgMjcuMTQ0NTMxLTE2MCAwdi0yNy42NDA2MjVjLjAwMzkwNi0yNi40Mjk2ODggMTMuMDYyNS01MS4xNTIzNDQgMzQuODg2NzE5LTY2LjA1NDY4OCAyMS44MjgxMjUtMTQuOTA2MjUgNDkuNjA5Mzc1LTE4LjA2NjQwNiA3NC4yMjY1NjItOC40NDkyMTh6bTY2Ljg4NjcxOSA3NC41MDM5MDZjMC01My4wMTk1MzEtNDIuOTgwNDY5LTk2LTk2LTk2cy05NiA0Mi45ODA0NjktOTYgOTZ2MTcuNzM0Mzc1Yy0zOC44NjMyODEtMjYuOTgwNDY5LTY0LjUwNzgxMi02OS4xMzI4MTMtNzAuNjAxNTYyLTExNi4wNDY4NzUtNi4wOTc2NTctNDYuOTE3OTY5IDcuOTI1NzgxLTk0LjIyMjY1NiAzOC42MDE1NjItMTMwLjIzODI4MXYzNi41NTA3ODFjLjAyNzM0NCAyMi4wODIwMzEgMTcuOTE3OTY5IDM5Ljk3MjY1NiA0MCA0MGgxNzZjMjIuMDgyMDMxLS4wMjczNDQgMzkuOTcyNjU2LTE3LjkxNzk2OSA0MC00MHYtMzYuNTUwNzgxYzMwLjY3NTc4MSAzNi4wMTU2MjUgNDQuNjk5MjE5IDgzLjMyMDMxMiAzOC42MDE1NjIgMTMwLjIzODI4MS02LjA5Mzc1IDQ2LjkxNDA2Mi0zMS43MzgyODEgODkuMDY2NDA2LTcwLjYwMTU2MiAxMTYuMDQ2ODc1em0tMjA4LTI0NC44NjMyODFjNjMuNTg5ODQ0LTU3LjUxNTYyNSAxNjAuNDEwMTU2LTU3LjUxNTYyNSAyMjQgMHY1Mi44NjMyODFjMCAxMy4yNTM5MDYtMTAuNzQ2MDk0IDI0LTI0IDI0aC0xNzZjLTEzLjI1MzkwNiAwLTI0LTEwLjc0NjA5NC0yNC0yNHptLTg3LjcxMDkzOCAxMzIuODYzMjgxaDE2YzIuODM1OTM4IDYxLjAzOTA2MiAzNS42NzE4NzYgMTE2LjcyMjY1NiA4Ny43MTA5MzggMTQ4Ljc1MzkwNnYxOC42NDQ1MzJjLTYxLjQzNzUtMzMuODUxNTYzLTEwMC43NTM5MDYtOTcuMzEyNS0xMDMuNzEwOTM4LTE2Ny4zOTg0Mzh6bTExOS43MTA5MzggMTc1LjI0NjA5NHYtMTcuNjQ0NTMyYzUwLjUwMzkwNiAyNC41NjI1IDEwOS40OTYwOTQgMjQuNTYyNSAxNjAgMHYxNy42NzE4NzZjLTUwLjk5NjA5NCAyMi4zMzU5MzctMTA5LjAwMzkwNiAyMi4zMzU5MzctMTYwIDB6bTE3Ni03Ljg0NzY1NnYtMTguNjQ0NTMyYzUyLjA0Mjk2OS0zMi4wMjczNDQgODQuODg2NzE5LTg3LjcxMDkzNyA4Ny43MjY1NjItMTQ4Ljc1MzkwNmgxNmMtMi45NjA5MzcgNzAuMDg5ODQ0LTQyLjI4NTE1NiAxMzMuNTUwNzgxLTEwMy43MjY1NjIgMTY3LjM5ODQzOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ventilation:ixe,"Washing Machines":"PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIDAgNDk2IDQ5NiIgd2lkdGg9IjQ5NnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDg4IDBoLTQwMGMtNC40MjU3ODEgMC04IDMuNTg1OTM4LTggOHYyOTYuODMyMDMxYy0yLjYwMTU2Mi0uNTI3MzQzLTUuMjczNDM4LS44MzIwMzEtOC0uODMyMDMxLTIyLjA1NDY4OCAwLTQwIDE3Ljk0NTMxMi00MCA0MHYuMTY3OTY5Yy03LjgyNDIxOSA1Ljg4NjcxOS0xMy4xNTIzNDQgMTQuMzk4NDM3LTE1LjEyMTA5NCAyMy44MzIwMzFoLTguODc4OTA2Yy00LjQyNTc4MSAwLTggMy41ODU5MzgtOCA4djMyYzAgNC40MTQwNjIgMy41NzQyMTkgOCA4IDhoOHYyNGMwIDMwLjg3ODkwNiAyNS4xMjg5MDYgNTYgNTYgNTZoNDE2YzQuNDI1NzgxIDAgOC0zLjU4NTkzOCA4LTh2LTQ4MGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04em0tOCAxNnY4MGgtMzg0di04MHptLTQzNS42NTYyNSAzMzkuMTc1NzgxYzIuODM5ODQ0LTEuNjAxNTYyIDQuNDMzNTk0LTQuNzYxNzE5IDQuMDE1NjI1LThsLS4xMjg5MDYtLjkyOTY4N2MtLjEwMTU2My0uNzM0Mzc1LS4yMzA0NjktMS40Njg3NS0uMjMwNDY5LTIuMjQ2MDk0IDAtMTMuMjMwNDY5IDEwLjc2OTUzMS0yNCAyNC0yNCA4LjQ0OTIxOSAwIDE2LjEyMTA5NCA0LjQwNjI1IDIwLjUyNzM0NCAxMS44MDA3ODEgMS4xOTkyMTggMi4wMTU2MjUgMy4yMzQzNzUgMy40MDYyNSA1LjU1MDc4MSAzLjc5Mjk2OSAyLjMyODEyNS4zOTg0MzggNC42OTkyMTktLjI2NTYyNSA2LjQ5NjA5NC0xLjc5Mjk2OSAzLjEyMTA5My0yLjY0ODQzNyA4LjMyMDMxMi01LjgwMDc4MSAxNS40MjU3ODEtNS44MDA3ODEgOC41NTg1OTQgMCAxNi41MzUxNTYgNC43MjY1NjIgMjAuODE2NDA2IDEyLjMzNTkzOCAxLjY2NDA2MyAyLjk3NjU2MiA1LjA1NDY4OCA0LjU1ODU5MyA4LjM4MjgxMyAzLjk2MDkzNyA4LjM1MTU2Mi0xLjQ4ODI4MSAxNi45MDYyNSA0LjI0NjA5NCAxOC40OTYwOTMgMTIuNzQyMTg3LjU3MDMxMyAzLjAzOTA2MyAyLjgzOTg0NCA1LjQ4ODI4MiA1LjgzOTg0NCA2LjI3MzQzOCAzLjAxNTYyNS44MDA3ODEgNi4xNjc5NjktLjIzNDM3NSA4LjE2Nzk2OS0yLjYwOTM3NSA0LjYxNzE4Ny01LjUyNzM0NCAxMS4yODkwNjMtOC43MDMxMjUgMTguMjk2ODc1LTguNzAzMTI1IDEwLjQxNDA2MiAwIDE5LjIxNDg0NCA2LjcxMDkzOCAyMi41MjczNDQgMTZoLTE4OC45MjU3ODJjMS45NDE0MDctNS4yOTY4NzUgNS42MDU0NjktOS45Mzc1IDEwLjc0MjE4OC0xMi44MjQyMTl6bTEwNy42NTYyNS03NS4xNzU3ODFjMC03NC45OTIxODggNjEuMDA3ODEyLTEzNiAxMzYtMTM2czEzNiA2MS4wMDc4MTIgMTM2IDEzNi02MS4wMDc4MTIgMTM2LTEzNiAxMzZjLTExLjI4OTA2MiAwLTIyLjMyODEyNS0xLjUxOTUzMS0zMy4wNzgxMjUtNC4yMTQ4NDQuNjI4OTA2LTEuMTQ0NTMxIDEuMDc4MTI1LTIuMzk0NTMxIDEuMDc4MTI1LTMuNzg1MTU2di0xMi4zMzU5MzhjMTAuMzY3MTg4IDIuODYzMjgyIDIxLjA3ODEyNSA0LjMzNTkzOCAzMiA0LjMzNTkzOCA2Ni4xNjc5NjkgMCAxMjAtNTMuODMyMDMxIDEyMC0xMjBzLTUzLjgzMjAzMS0xMjAtMTIwLTEyMC0xMjAgNTMuODMyMDMxLTEyMCAxMjBjMCAyMS4wODk4NDQgNS40ODA0NjkgNDEuNDMzNTk0IDE1LjgyNDIxOSA1OS41MDM5MDYtMS43OTI5NjkuODA4NTk0LTMuNTM1MTU3IDEuNzI2NTYzLTUuMTkxNDA3IDIuODAwNzgyLTQuMDU4NTkzLTYuMTEzMjgyLTEwLjE1MjM0My0xMC42MzI4MTMtMTcuMjA3MDMxLTEyLjgyNDIxOS02LjE2Nzk2OS0xNS43NjE3MTktOS40MjU3ODEtMzIuMzU5Mzc1LTkuNDI1NzgxLTQ5LjQ4MDQ2OXptNDguNDY0ODQ0IDU2LjA0Njg3NWMtNi4zNjcxODgtOS45MTAxNTYtMTEtMjAuNzAzMTI1LTEzLjY3OTY4OC0zMi4wNDY4NzVoNS4yMTQ4NDRjNy4yODkwNjIgMCAxNC4xNTIzNDQtMi44Mzk4NDQgMTkuMzEyNS04bDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGM1LjE2Nzk2OSA1LjE2MDE1NiAxMi4wMjM0MzggOCAxOS4zMTI1IDhoNS4wOTc2NTZjLTEwLjg4MjgxMiA0NS43OTI5NjktNTIuMDI3MzQ0IDgwLTEwMS4wOTc2NTYgODAtMTAuOTc2NTYyIDAtMjEuNjk1MzEyLTEuNzkyOTY5LTMyLTUuMTI4OTA2di0yLjg3MTA5NGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04aC04LjgwODU5NGMtMy42ODc1LTE4LjA4OTg0NC0xOS42MjUtMzEuNzI2NTYyLTM4LjcyNjU2Mi0zMS45NTMxMjV6bS0xNi40NjQ4NDQtNTYuMDQ2ODc1YzAtNTcuMzQzNzUgNDYuNjU2MjUtMTA0IDEwNC0xMDRzMTA0IDQ2LjY1NjI1IDEwNCAxMDRjMCAyLjcwMzEyNS0uMTk5MjE5IDUuMzUxNTYyLS40MDYyNSA4aC03LjU5Mzc1Yy0zLjAyMzQzOCAwLTUuODU1NDY5LTEuMTc1NzgxLTgtMy4zMTI1bC00LjY4NzUtNC42ODc1Yy0xMC4zMjgxMjUtMTAuMzEyNS0yOC4yOTY4NzUtMTAuMzIwMzEyLTM4LjYyNSAwbC00LjY4NzUgNC42Nzk2ODhjLTQuMjgxMjUgNC4yODEyNS0xMS43MTg3NSA0LjI4MTI1LTE2IDBsLTQuNjg3NS00LjY3OTY4OGMtMTAuMzI4MTI1LTEwLjMxMjUtMjguMjk2ODc1LTEwLjMyMDMxMi0zOC42MjUgMGwtNC42ODc1IDQuNjc5Njg4Yy00LjI4MTI1IDQuMjgxMjUtMTEuNzE4NzUgNC4yODEyNS0xNiAwbC00LjY4NzUtNC42Nzk2ODhjLTEwLjMyODEyNS0xMC4zMTI1LTI4LjI5Njg3NS0xMC4zMjAzMTItMzguNjI1IDBsLTQuNjg3NSA0LjY3OTY4OGMtMi4xNDQ1MzEgMi4xNDQ1MzEtNC45NzY1NjIgMy4zMjAzMTItOCAzLjMyMDMxMmgtNy42OTUzMTJjLS4xOTkyMTktMi42NDg0MzgtLjMwNDY4OC01LjMyMDMxMi0uMzA0Njg4LTh6bS0xNjggMTA0aDIyNHYxNmgtMjI0em0xNjAgOTZoLTEwNGMtMjIuMDU0Njg4IDAtNDAtMTcuOTQ1MzEyLTQwLTQwdi0yNGgxOTJ2MjRjMCAyMi4wNTQ2ODgtMTcuOTQ1MzEyIDQwLTQwIDQwem00Ny4xMTMyODEgMGMxMC40MDYyNS0xMC4xNzU3ODEgMTYuODg2NzE5LTI0LjMzNTkzOCAxNi44ODY3MTktNDB2LTE1Ljg3MTA5NGMxNS40MjU3ODEgNS4xNDQ1MzIgMzEuNTAzOTA2IDcuODcxMDk0IDQ4IDcuODcxMDk0IDgzLjgxNjQwNiAwIDE1Mi02OC4xODM1OTQgMTUyLTE1MnMtNjguMTgzNTk0LTE1Mi0xNTItMTUyLTE1MiA2OC4xODM1OTQtMTUyIDE1MmMwIDEzLjAxNTYyNSAxLjgwMDc4MSAyNS43MzQzNzUgNS4wMDc4MTIgMzguMTEzMjgxLTYuMjIyNjU2LTMuOTA2MjUtMTMuNDY0ODQzLTYuMTEzMjgxLTIxLjAwNzgxMi02LjExMzI4MS02LjUzNTE1NiAwLTEzIDEuNjcxODc1LTE4Ljc4NTE1NiA0LjgxNjQwNi0xLjU4OTg0NC0xLjcyNjU2Mi0zLjM3NS0zLjIxNDg0NC01LjIxNDg0NC00LjYyNXYtMjAwLjE5MTQwNmgzODR2MzY4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjAwIDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY0IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ4IDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ0OCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDE2IDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM4NCA2NGgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=","Water Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNjguOTkgMTg3LjQ5OWMtNS43NTEtOS45NTktMjAuMTk2LTEwLjAxNi0yNS45NzkgMC0yMS44MSA0MC42MTEtMzIuMDExIDQ4LjA2MS0zMi4wMTEgNjcuNTAxIDAgMjQuODEzIDIwLjE4NyA0NSA0NSA0NXM0NS0yMC4xODcgNDUtNDVjMC0xOS40NTgtMTAuNDg2LTI3LjQyMS0zMi4wMS02Ny41MDF6bS0xMi45OSA4Mi41MDFjLTguMjcxIDAtMTUtNi43MjktMTUtMTUgMC02LjY4NyAzLjA0Mi04LjIxNSAxNS0zMC4wMDUgMTEuOTc0IDIxLjgxOCAxNSAyMy4zMTggMTUgMzAuMDA1IDAgOC4yNzEtNi43MjkgMTUtMTUgMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNiAwaC0zMDBjLTguNzY5IDAtMTUuNjc2IDcuNTAyLTE0Ljk0OCAxNi4yNDZsMzAgMzYwYy42NDggNy43NzQgNy4xNDcgMTMuNzU0IDE0Ljk0OCAxMy43NTRoNzV2MzJoLTE1Yy0xMy4zMTggMC0yMC4wNDggMTYuMTY1LTEwLjYwNiAyNS42MDZsNjAgNjBjNS44NTcgNS44NTggMTUuMzU1IDUuODU5IDIxLjIxMyAwbDYwLTYwYzkuNDE3LTkuNDE3IDIuNzQ1LTI1LjYwNi0xMC42MDctMjUuNjA2aC0xNXYtMzJoNzVjNy44MDEgMCAxNC4zLTUuOTggMTQuOTQ4LTEzLjc1NGwzMC0zNjBjLjcyOC04LjczOS02LjE3NC0xNi4yNDYtMTQuOTQ4LTE2LjI0NnptLTE2LjMwMiAzMC01LjM0NiA2NC4xNDdjLTIxLjc2OCA4LjM0My0zNS44NzEgMjUuODUzLTUzLjM1MiAyNS44NTMtMjIuNzE3IDAtNDAuNDIzLTMwLTc1LTMwLTM0LjcyNyAwLTUyLjE3NiAzMC03NSAzMC0xNy40ODUgMC0zMS41NTYtMTcuNDk5LTUzLjM1Mi0yNS44NTNsLTUuMzQ2LTY0LjE0N3ptLTI3LjUgMzMwaC03Ni4xOThjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2NjJjMCA2LjQzMiA0LjA0OCAxMS45MTkgOS43MzYgMTQuMDVsLTI0LjczNiAyNC43MzctMjQuNzM2LTI0LjczNmM1LjY4OC0yLjEzMSA5LjczNi03LjYxOCA5LjczNi0xNC4wNXYtNjJjMC04LjI4NC02LjcxNi0xNS0xNS0xNWgtNzYuMTk4bC0xOS4yMDgtMjMwLjUwMmMxNC4zMTUgOS4xNTMgMjkuMDc2IDIwLjUwMSA1MC40MDYgMjAuNTAxIDM0LjcyNyAwIDUyLjE3Ni0zMCA3NS0zMCAyMi43MTcgMCA0MC40MjMgMzAgNzUgMzAgMjEuMDE5IDAgMzUuNDQ5LTEwLjkzNyA1MC40MDYtMjAuNTAyeiIvPgogICAgPC9nPgo8L3N2Zz4=","Water Heater":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTY3LDE4NS4zMjV2MjgxYTM1LjU0MSwzNS41NDEsMCwwLDAsMzUuNDY5LDM1LjYzMUwzMTkuMDYsNTAyaC4wMDZBMzUuODkxLDM1Ljg5MSwwLDAsMCwzNTUsNDY2LjM2OVY0NjRoNjAuNjJjMzQuODM3LDAsNjMuMzgtMjcuODcsNjMuMzgtNjIuNzE1VjE4OS43M2MwLTM0Ljg0NC0yOC41NDMtNjIuNzMtNjMuMzgtNjIuNzNIMzU1di05LjY4OWMwLS4wNzQtLjE2LS4xNDYtLjE2Mi0uMjE5cy0uMDY1LS4xMTQtLjA2NS0uMTg3QTYyLjA0NCw2Mi4wNDQsMCwwLDAsMjkyLjc2Myw1NUgyMTlWNDRoMTcuODI4QzI0NS42NSw0NCwyNTMsMzcuMiwyNTMsMjguMzc0VjI2YTE2LjE2NywxNi4xNjcsMCwwLDAtMTYuMTcyLTE2SDE4OS43MDZBMTUuNzcsMTUuNzcsMCwwLDAsMTc0LDI2djIuMzc0QTE1LjQ1NCwxNS40NTQsMCwwLDAsMTg5LjcwNiw0NEgyMDdWNTVIMTMzLjc3MUMxMDEuNSw1NSw3NC45MjQsODAsNzIuMSwxMTFIMzkuMmE2LjA1Niw2LjA1NiwwLDAsMC01LjIsOC45MjlaTTM1NSwxNjFoNjAuNjJBMjguNTgxLDI4LjU4MSwwLDAsMSw0NDQsMTg5LjczVjQwMS4yODVBMjguNTY4LDI4LjU2OCwwLDAsMSw0MTUuNjIsNDMwSDM1NVptMCwyODFoNjAuNjJBNDAuNTgxLDQwLjU4MSwwLDAsMCw0NTYsNDAxLjI4NVYxODkuNzNBNDAuNTk0LDQwLjU5NCwwLDAsMCw0MTUuNjIsMTQ5SDM1NVYxMzloNjAuNjJjMjguMjIxLDAsNTEuMzgsMjIuNSw1MS4zOCw1MC43M1Y0MDEuMjg1QzQ2Nyw0MjkuNTEzLDQ0My44NDEsNDUyLDQxNS42Miw0NTJIMzU1Wm0tMTIsMjQuMzY5QTIzLjg5MSwyMy44OTEsMCwwLDEsMzE5LjA2Niw0OTBoMGwtMjE2LjU5MS0uMDQxQTIzLjUyNywyMy41MjcsMCwwLDEsNzksNDY2LjMyOFY0NTIuNTdsMjY0LC4wNDlaTTE5MCwzMmE0LDQsMCwwLDEtNC00VjI2YTQsNCwwLDAsMSw0LTRoNDdhNCw0LDAsMCwxLDQsNHYyYTQsNCwwLDAsMS00LDRaTTEzMy43NzEsNjdIMjkyLjc2M2E0OS44MjksNDkuODI5LDAsMCwxLDQ5LjU3Niw0NEg4NC4yQTQ5LjgzLDQ5LjgzLDAsMCwxLDEzMy43NzEsNjdaTTM0MywxMjNWNDQwLjYxOUw3OSw0NDAuNTdWMTgzLjlhNi44NTMsNi44NTMsMCwwLDAtLjgtMi44NTFMNDguOTM0LDEyM1oiLz4KICAgICAgICA8cGF0aCBkPSJNMjAzLDM4OC40NDNBMzUuMDE3LDM1LjAxNywwLDAsMCwyMzgsMzUzLjZWMjM2Ljg0NGEzNSwzNSwwLDAsMC03MCwwVjM1My42QTM1LjAxNywzNS4wMTcsMCwwLDAsMjAzLDM4OC40NDNabS0yMy0xNTEuNmEyMywyMywwLDAsMSw0NiwwVjI4OUgxODBaTTE4MCwzMDFoNDZ2NTIuNmEyMywyMywwLDAsMS00NiwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik05OSwzMTQuOTEzYTYsNiwwLDAsMCw2LTZWMjMzLjEwNmE2LDYsMCwwLDAtMTIsMHY3NS44MDdBNiw2LDAsMCwwLDk5LDMxNC45MTNaIi8+CiAgICAgICAgPHBhdGggZD0iTTk5LDIxOC43MjZhNiw2LDAsMCwwLDYtNnYtNC44MzRhNiw2LDAsMCwwLTEyLDB2NC44MzRBNiw2LDAsMCwwLDk5LDIxOC43MjZaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Water:rxe,Weather:oxe,Window:nxe},Mxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",cxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM2Mi43ODcgMzYyLjc4NyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNjAuOTQ1LDE0NC45NzljLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTlsLTQ3LjQ4NCw4MS4zMzNjLTEuMzU0LDIuMzE5LTEuMzY1LDUuMTg2LTAuMDI3LDcuNTE2CgkJYzEuMzM3LDIuMzI5LDMuODE4LDMuNzY2LDYuNTA0LDMuNzY2aDk0Ljk2OGMyLjY4NiwwLDUuMTY3LTEuNDM3LDYuNTA0LTMuNzY2YzEuMzM4LTIuMzMsMS4zMjctNS4xOTYtMC4wMjctNy41MTZsLTQ3LjQ4My04MS4zMzMKCQlDMjY2LjA3OCwxNDYuMzk1LDI2My42MTIsMTQ0Ljk3OSwyNjAuOTQ1LDE0NC45Nzl6IE0yMjYuNTI0LDIyNi4zMTJsMzQuNDIxLTU4Ljk1OGwzNC40Miw1OC45NThIMjI2LjUyNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU1LjI4NywyNTQuNjloLTE3NS42Mmw4MS4yNzgtMTM5LjIxOGw2Mi45MjYsMTA3Ljc4M2MyLjA4OCwzLjU3OCw2LjY4Myw0Ljc4NCwxMC4yNTgsMi42OTYKCQljMy41NzctMi4wODgsNC43ODQtNi42ODEsMi42OTUtMTAuMjU4TDI2Ny40MjIsOTYuODE1Yy0wLjAyMS0wLjAzNi0wLjA0OC0wLjA2Ny0wLjA2OS0wLjEwM2MtMC4xMjYtMC4yMDgtMC4yNjItMC40MDgtMC40MDctMC42MDMKCQljLTAuMDQ0LTAuMDU5LTAuMDg2LTAuMTE4LTAuMTMxLTAuMTc2Yy0wLjE4My0wLjIzLTAuMzc2LTAuNDUxLTAuNTg0LTAuNjU4Yy0wLjAyNC0wLjAyNC0wLjA1MS0wLjA0NS0wLjA3Ni0wLjA2OQoJCWMtMC4xODYtMC4xOC0wLjM4My0wLjM0OS0wLjU4Ny0wLjUwOWMtMC4wNjUtMC4wNTEtMC4xMzItMC4xLTAuMTk5LTAuMTQ4Yy0wLjE4Ny0wLjEzNy0wLjM3OS0wLjI2NC0wLjU3OC0wLjM4NAoJCWMtMC4wNTUtMC4wMzMtMC4xMDgtMC4wNjgtMC4xNjQtMC4xYy0wLjI2MS0wLjE0Ny0wLjUzLTAuMjgyLTAuODA5LTAuMzk3Yy0wLjAxMS0wLjAwNC0wLjAyMi0wLjAwOC0wLjAzMy0wLjAxMgoJCWMtMC4yNi0wLjEwNi0wLjUyOC0wLjE5Ni0wLjgwMi0wLjI3M2MtMC4wNzMtMC4wMjEtMC4xNDYtMC4wMzgtMC4yMi0wLjA1NmMtMC4yMjItMC4wNTUtMC40NDctMC4xLTAuNjc3LTAuMTM1CgkJYy0wLjA3OS0wLjAxMi0wLjE1Ny0wLjAyNi0wLjIzNi0wLjAzNmMtMC4yOTctMC4wMzYtMC41OTgtMC4wNi0wLjkwNi0wLjA2SDEwMS44NDJjLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTkKCQlMMS4wMjMsMjU4LjQwOGMtMS4zNTQsMi4zMTktMS4zNjUsNS4xODYtMC4wMjcsNy41MTZjMS4zMzcsMi4zMjksMy44MTgsMy43NjYsNi41MDQsMy43NjZoODYuNTM4YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDEKCQlzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzUuODg5YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDFzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzYuNTg2aDE4OC42ODQKCQljNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNVMzNTkuNDMsMjU0LjY5LDM1NS4yODcsMjU0LjY5eiBNMTYyLjI5OCwyNTQuNjloLTE5LjI2M2w2OS40My0xMTkuNDcKCQljMi4wODEtMy41ODIsMC44NjUtOC4xNzItMi43MTYtMTAuMjUzYy0zLjU4LTIuMDgzLTguMTczLTAuODY2LTEwLjI1MywyLjcxNmwtNzMuODEsMTI3LjAwN0gxMDcuMWw4NS4xOTItMTQ2LjU5NGg1NS41OQoJCUwxNjIuMjk4LDI1NC42OXogTTEwNi4xNDcsMTA4LjA5NmgzNC4wOTFMNzQuNzg5LDIyMC43MTdjLTIuMDgxLDMuNTgyLTAuODY1LDguMTcyLDIuNzE2LDEwLjI1MwoJCWMxLjE4NiwwLjY4OSwyLjQ4MiwxLjAxNywzLjc2MiwxLjAxN2MyLjU4NCwwLDUuMS0xLjMzNyw2LjQ5MS0zLjczM2w2OS44My0xMjAuMTU4aDE3LjM1Nkw4OS43NTEsMjU0LjY5SDIwLjU2M0wxMDYuMTQ3LDEwOC4wOTZ6IgogICAgICAgIC8+CiAgICA8L2c+Cjwvc3ZnPgo=",uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTYuNzA0IDI3Mi4wODZoLTgxLjcwNHYtODguMDczYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djg4LjA3M2gtMTV2LTE5My43MWMwLTguMjQ5LTYuNzExLTE0Ljk1OS0xNC45NTktMTQuOTU5aC05MS41ODJjLTguMjQ4IDAtMTQuOTU5IDYuNzEtMTQuOTU5IDE0Ljk1OXYxOTMuNzFoLTE1di0xOTMuNzFjMC04LjI0OS02LjcxMS0xNC45NTktMTQuOTU5LTE0Ljk1OWgtOTEuNTgyYy04LjI0OCAwLTE0Ljk1OSA2LjcxLTE0Ljk1OSAxNC45NTl2MTkzLjcxaC0xNXYtMjIzLjY2OWgyODh2MTAwLjU5NmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xMDAuNTk2aDMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODgzIDE1LjI5Ni0xNS4zNDR2LTE3LjczYzAtOC40Ni02Ljg2MS0xNS4zNDMtMTUuMjk2LTE1LjM0M2gtMzI0LjQwOGMtOC40MzUgMC0xNS4yOTYgNi44ODMtMTUuMjk2IDE1LjM0NHYxNy43M2MwIDguNDYgNi44NjEgMTUuMzQ0IDE1LjI5NiAxNS4zNDRoMy4yMDR2MjIzLjY2OWgtODEuNzA0Yy04LjQzNS0uMDAxLTE1LjI5NiA2Ljg2MS0xNS4yOTYgMTUuMjk1djE3LjYyMmMwIDguNDM1IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aC41djE0My40ODZoLS41Yy04LjQzNSAwLTE1LjI5NiA2Ljg2Mi0xNS4yOTYgMTUuMjk2djE3LjYyMmMwIDguNDM0IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aDIyMy4yMDRjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTIyMy4yMDRjLS4xNjMgMC0uMjk2LS4xMzMtLjI5Ni0uMjk2di0xNy42MjJjMC0uMTYzLjEzMy0uMjk2LjI5Ni0uMjk2aDQ4MS40MDhjLjE2MyAwIC4yOTYuMTMzLjI5Ni4yOTZ2MTcuNjIyYzAgLjE2My0uMTMzLjI5Ni0uMjk2LjI5NmgtMjIzLjIwNGMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMjMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODYyIDE1LjI5Ni0xNS4yOTZ2LTE3LjYyMmMwLTguNDM0LTYuODYxLTE1LjI5Ni0xNS4yOTYtMTUuMjk2aC0uNXYtMTQzLjQ4NmguNWM4LjQzNSAwIDE1LjI5Ni02Ljg2MiAxNS4yOTYtMTUuMjk2di0xNy42MjJjMC04LjQzNC02Ljg2MS0xNS4yOTYtMTUuMjk2LTE1LjI5NnptLTQwMy4yMDQtMjM5LjAxMnYtMTcuNzNjMC0uMjEyLjE1My0uMzQ0LjI5Ni0uMzQ0aDMyNC40MDhjLjE0MyAwIC4yOTYuMTMxLjI5Ni4zNDR2MTcuNzNjMCAuMjEyLS4xNTMuMzQ0LS4yOTYuMzQ0LTE1LjM2NyAwLTMwOS4wNTEgMC0zMjQuNDA4IDAtLjE0My0uMDAxLS4yOTYtLjEzMi0uMjk2LS4zNDR6bTE4NC45NTkgNDUuMzQzIDkxLjU0MS0uMDQxdjE5My43MWgtOTEuNTAyem0tMTM2LjUgMCA5MS41NDEtLjA0MXYxOTMuNzFoLTkxLjUwMnptMzM5LjI0NSAzODQuODE3aC00NTAuNDA4di0xNDIuOTM0aDQ1MC40MDh6bTE1Ljc5Ni0xNTguMjNjMCAuMTY0LS4xMzMuMjk2LS4yOTYuMjk2LTIuODI0IDAtNDcxLjE1MyAwLTQ4MS40MDggMC0uMTYzIDAtLjI5Ni0uMTMzLS4yOTYtLjI5NnYtMTcuNjIyYzAtLjE2My4xMzMtLjI5Ni4yOTYtLjI5Nmg0ODEuNDA4Yy4xNjMgMCAuMjk2LjEzMy4yOTYuMjk2eiIvPgogICAgICAgIDxwYXRoIGQ9Im02Ny42NTUgNDQyLjcwNGgxOC45OWM4Ljc2OCAwIDE1LjktNy4xMzMgMTUuOS0xNS45MDF2LTY5LjUyYzAtOC43NjgtNy4xMzMtMTUuOTAxLTE1LjktMTUuOTAxaC0xOC45OWMtOC43NjggMC0xNS45IDcuMTMzLTE1LjkgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkgMTUuOTAxem0tLjktODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45LS45MDFoMTguOTljLjQ5NiAwIC45LjQwNC45LjkwMXY2OS41MmMwIC40OTctLjQwNC45MDEtLjkuOTAxaC0xOC45OWMtLjQ5NiAwLS45LS40MDQtLjktLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM5LjQwNiA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMTAuNzk2IDQ0Mi43MDRoMTguOTljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTljLTguNzY4IDAtMTUuOSA3LjEzMy0xNS45IDE1LjkwMXY2OS41MmMwIDguNzY4IDcuMTMyIDE1LjkwMSAxNS45IDE1LjkwMXptLS45LTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOS0uOTAxaDE4Ljk5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTljLS40OTYgMC0uOS0uNDA0LS45LS45MDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI4Mi41NDcgNDQyLjcwNGgxOC45ODljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTg5Yy04Ljc2OCAwLTE1LjkwMSA3LjEzMy0xNS45MDEgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAxLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzU0LjEzMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjLS4wMDEgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAyLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDI1LjUyMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTYuNDExIDEwNy4yNjhjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDIzLjUxMiAyMy41MTJjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjYwNCA5Mi44MzJjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDExLjc1NiAxMS43NTZjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgIDwvZz4KPC9zdmc+",lxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00MTMuOTA3IDBjLTU0LjEwNCAwLTk4LjEyMiA0NC4wMDUtOTguMTIyIDk4LjA5NnY0My41ODJzLTY5LjgzMS0zNi45MTItNzEuMDY1LTM3LjU5M2MtOS41NDQtNS4yNjYtMTIuMTg1LTUuMjY3LTIxLjczMSAwLTEuMjM0LjY4MS0xMzYuMTQxIDcxLjk1OC0xMzYuMTQxIDcxLjk1OC0xMS40MzcgNi4wMTctMTMuMDQ1IDcuNzQ1LTE3Ljg3OCAxNS43ODMtLjc4OCAxLjMxMS02NS42OTggMTA0LjIzLTY1LjY5OCAxMDQuMjMtMy4xNzUgNS4wMjMtNC4wNzcgMTAuOTYyLTIuNTM5IDE2LjcyMiAxLjYxNyA2LjA1NiA1Ljg0IDExLjI2OSAxMS41NzcgMTQuMjk1IDMuNjQ2IDEuOTMgNy41ODIgMi44NSAxMS40NjUgMi44NSA2LjIwMiAwIDEyLjI1NS0yLjM1OCAxNi43NDUtNi42ODh2NjUuMDQ0YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTg3LjU0MXM0OS4xMzQtNzcuODU1IDQ5LjY1Mi03OC42ODJjMi4zMzQtMy43MjkgMy4zMjgtNS4yODMgNC40OTYtNi4zMTggMS4zMzMtMS4xODEgMy42NjUtMi40NjQgOC42NjUtNS4xMDdsMTEzLjAwMi01OS42NDljLjgwMS0uNDI1IDEuNDktLjgwMyAyLjA5My0xLjEzMy4xNDEtLjA3Ny4yODUtLjE1Ni40MjgtLjIzNC4xNDMuMDc4LjI4Ny4xNTcuNDI4LjIzNC42MDMuMzMxIDEuMjkyLjcwOCAyLjEwOSAxLjE0MiAwIDAgMTE4LjE5MyA2Mi40MTMgMTE5LjY0MiA2My4zMS44NjkuNTM4IDEuNTA5Ljk5NSAyLjAwOSAxLjQzOCAxLjE2NyAxLjAzNSAyLjE2MiAyLjU4OSA0LjQ5NiA2LjMxOC41MTguODI3IDQ5LjY1MSA3OC42ODEgNDkuNjUxIDc4LjY4MXYxNjAuNzE2aC04NC45MjF2LTEwNC4zNGgxMi42MjVjNy42NTIgMCAxMy44NzgtNi4yMjYgMTMuODc4LTEzLjg3OHYtMjEuNDNjMC03LjY1Mi02LjIyNi0xMy44NzgtMTMuODc4LTEzLjg3OGgtODUuMTIyYy00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDg0djE5LjE4NmgtMjA5Ljgxdi0xOS4xODZoOTEuMmM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtOTIuMzIyYy03LjY1MiAwLTEzLjg3OCA2LjIyNi0xMy44NzggMTMuODc4djIxLjQzYzAgNy42NTIgNi4yMjYgMTMuODc4IDEzLjg3OCAxMy44NzhoMTIuNjI1djEwNC4zMzloLTg0Ljk0N3YtMzguNTYzYzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc2LjUzNmMwIDYuOTM0IDUuNjQxIDEyLjU3NCAxMi41NzQgMTIuNTc0aDQ0NS45MDdjNy4xNjcgMCAxMi45OTktNS44MzIgMTIuOTk5LTEyLjk5OXYtNDAwLjkwNWMuMDAxLTU0LjA5MS00NC4wMDQtOTguMDk2LTk4LjA5Mi05OC4wOTZ6bS0yNzMuNDQgNDk3aC04NC45NDh2LTIwLjU0Nmg4NC45NDd2MjAuNTQ2em0xNTkuNzgzLTEzOS44ODYtNjYuMzgyIDU5Ljg0NS02Ni4zODItNTkuODQ1em0tMTQ0Ljc4MyA5LjM1OSA2Ny4yMDEgNjAuNTg0LTY3LjIwMSA2MC41ODR6bTEyLjAyIDEzMC41MjcgNjYuMzgyLTU5Ljg0NSA2Ni4zODEgNTkuODQ1em0xNDQuNzgzLTkuMzU5LTY3LjIwMS02MC41ODQgNjcuMjAxLTYwLjU4NHptOTkuOTE5IDkuMzU5aC04NC45MTl2LTIwLjU0Nmg4NC45MTl6bTUzLjQ0NS0xOTguODIzYy0uMzQ3LS43Mi0uNzMzLTEuNDI3LTEuMTY2LTIuMTE3bC01MS45NDUtODIuMjY2aDg0LjQ3N3Y4NC4zODN6bS0xMzQuODQ4LTIwMC4wODFjMC00NS44MTkgMzcuMjg4LTgzLjA5NiA4My4xMjItODMuMDk2IDQ1LjgxNiAwIDgzLjA5MiAzNy4yNzYgODMuMDkyIDgzLjA5NnYxLjI4N2gtMTY2LjIxNHptMCAxNi4yODdoMTY2LjIxNHY4NC40MTJoLTkzLjk0OXMtMy41MjMtNS42NTYtNC4zMTItNi45NjZjLTQuODMxLTguMDM2LTYuNDQtOS43NjYtMTcuODY4LTE1Ljc3OGwtNTAuMDg2LTI2LjQ1di0zNS4yMTh6bTk1LjI0NiAxODAuMTc3cy01MC4yNzUtNzkuNjU2LTUwLjc4LTgwLjQ2M2MtNC43OTktNy42NjUtNi41MTQtOS44MjUtMTMuMjgxLTEzLjY5Mi0uNTIxLS4yOTctMTE5LjkyOS02My40MDgtMTIwLjQ4Mi02My43MTEtNS4xMDEtMi43OTUtNy44NDctMy4zMi0xMi4wNjctMS41NzItLjAzNy4wMTUtLjA3Ni4wMzQtLjExMy4wNS0uNjE2LjI1OS0xMTcuOTg1IDYyLjE5Ny0xMTcuOTg1IDYyLjE5Ny0xMS43MjcgNi4yLTEyLjk2MSA3LjI5NS0xOC44NjggMTYuNzI5LS41MDUuODA3LTUwLjc4IDgwLjQ2My01MC43OCA4MC40NjMtLjAxLjAxNi0uMDE2LjAzMy0uMDI2LjA0OWwtMTAuMjk0IDE2LjMxYy0yLjM3NSAzLjc2Ny03Ljg4NSA1LjA5Ni0xMi4wMzkgMi44OTQtMi4wNi0xLjA4Ni0zLjU1Mi0yLjg3My00LjA5My00LjkwMS0uMzE2LTEuMTg0LS40NDYtMi45ODQuNzI5LTQuODQzIDAgMCA2NS4wMzctMTAzLjEyNCA2NS44NzItMTA0LjUxMiAzLjQ0OC01LjczNCAzLjQ0OC01LjczNCAxMi4wMTctMTAuMjQzIDAgMCAxMzkuMTkzLTczLjYzOSAxNDAuMDEyLTc0LjAxMy44Mi4zNzQgMTQwLjAxMiA3NC4wMTMgMTQwLjAxMiA3NC4wMTMuMDAzLjAwMi4wMDcuMDA0LjAxMS4wMDYgOC41NTkgNC41MDIgOC41NTkgNC41MDIgMTIuMDA3IDEwLjIzOC44MzQgMS4zODggMS44MTYgMy4wMiAzLjA1OCA0Ljk4N2w2Mi44MzMgOTkuNTA5YzEuMTY4IDEuODYgMS4wMzQgMy42NjkuNzE2IDQuODU5LS41NDQgMi4wMzItMi4wMzIgMy44Mi00LjA3MiA0Ljg5OS00LjIyNiAyLjIzMS05LjY0NS45MjQtMTIuMDY5LTIuODk2bC0xMC4yOTItMTYuMzA3Yy0uMDEtLjAxNy0uMDE2LS4wMzUtLjAyNi0uMDV6bTcwLjk2OCAyMDIuNDRoLTY5LjgxMXYtODQuNDExaDY5LjgxMXptLTY5LjgxMS05OS40MTF2LTc0LjM4OWM3LjMxMyA3LjA0MiAxOC43NjMgOC44NzQgMjguMjM4IDMuODc1IDUuNi0yLjk2NSA5Ljc0Ni04LjAxNiAxMS40MzgtMTMuODk3aDMwLjEzNXY4NC40MTJoLTY5LjgxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg1LjI2MiAyMzcuODczYzAtMjguMzQ3LTIzLjA2Mi01MS40MDktNTEuNDA4LTUxLjQwOS0yOC4zMzEgMC01MS4zNzkgMjMuMDYyLTUxLjM3OSA1MS40MDlzMjMuMDQ5IDUxLjQwOSA1MS4zNzkgNTEuNDA5YzI4LjM0Ny0uMDAxIDUxLjQwOC0yMy4wNjMgNTEuNDA4LTUxLjQwOXptLTg3Ljc4NyAwYzAtMjAuMDc2IDE2LjMyLTM2LjQwOSAzNi4zNzktMzYuNDA5IDIwLjA3NSAwIDM2LjQwOCAxNi4zMzMgMzYuNDA4IDM2LjQwOXMtMTYuMzMzIDM2LjQwOS0zNi40MDggMzYuNDA5Yy0yMC4wNTktLjAwMS0zNi4zNzktMTYuMzM0LTM2LjM3OS0zNi40MDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTIuOTk1IDE2Ni40ODktMzEuOTk1LTIzLjk5NnYtMTEyLjQ5M2M4LjI4NCAwIDE1LTYuNzE2IDE1LTE1cy02LjcxNi0xNS0xNS0xNWgtOTBjLTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTV2NDQuOTkybC04OC4wMDktNjYuMDA2Yy0xNS44OTMtMTEuOTA0LTM4LjA5LTExLjkwNS01My45ODkuMDA1bC0yMDkuOTk5IDE1Ny41Yy0xOS44NTMgMTQuODkzLTIzLjg5MSA0My4xNTUtOS4wMDEgNjMuMDA0IDcuMjIgOS42MiAxNy43NTIgMTUuODUzIDI5LjY1NyAxNy41NSAyLjE1Ny4zMDggNC4zMS40NiA2LjQ1LjQ1OSA1LjEwOSAwIDEwLjEzLS44NzYgMTQuODkxLTIuNTY0djI1Mi4wNmMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDM2MGM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di0yNTIuMDY4YzQuNzYzIDEuNjg1IDkuODAzIDIuNTYgMTQuOTc4IDIuNTYgMTQuMSAwIDI3LjU2NS02LjcyOSAzNi4wMjItMTggMTQuODg4LTE5Ljg0NiAxMC44NDktNDguMTA4LTkuMDA1LTYzLjAwM3ptLTkxLjk5NS0xMzYuNDg5aDMwdjg5Ljk5MmwtMzAtMjIuNXptLTEyMCAyNzJoLTUwdi05Mmg1MHptMzAgMHYtMTA3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTgwYy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djEwN2gtMTA5Ljk5OXYtNzcuMDA0bDE2NC45OTktMTIzLjc1MiAxNjUgMTIzLjc1M3Y3Ny4wMDN6bS0yMTkuOTk5IDMwaDIwOS45OTl2MzBoLTQ1Yy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djQ1aC00NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY0NWgtOTB6bTExOS45OTkgMTUwdi0zMGg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg5MHYxNTB6bTI2Ny4wMDItMjcwLjUxMWMtMi44NjMgMy44MTUtNy4yNDUgNi4wMDQtMTIuMDI0IDYuMDA0LTMuMjYgMC02LjM2NS0xLjAzNi04Ljk3OS0yLjk5NmwtMTkxLjk5OS0xNDQuMDAzYy01LjMzMy00LTEyLjY2Ny00LTE4IDBsLTE5Mi4wMDggMTQ0LjAwOWMtMy4xOTMgMi4zOTctNy4xMzYgMy40MDgtMTEuMDk4IDIuODQyLTMuOTczLS41NjYtNy40ODgtMi42NDctOS44OTYtNS44NTYtNC45NjEtNi42MTQtMy42MTItMTYuMDM1IDMuMDA2LTIxbDIwOS45OTEtMTU3LjQ5MmMyLjY1Mi0xLjk4NyA1LjgzLTIuOTc5IDkuMDA3LTIuOTc5IDMuMTc1IDAgNi4zNDkuOTkyIDguOTk2IDIuOTc0bDIwOS45OTYgMTU3LjQ5N2M2LjYyIDQuOTY2IDcuOTY5IDE0LjM4NiAzLjAwOCAyMXoiLz4KICAgIDwvZz4KPC9zdmc+",Lxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDg1LjQsMjcyLjA2N2gtOC41MzN2LTE3OS4yYzAtNDIuNjY3LTM0LjEzMy03Ni44LTc2LjgtNzYuOGMtMzcuNzcsMC02NC45MzUsMjguMDA2LTY3Ljk3NCw2OS4wNDEKCQkJCWMtMTkuODI5LDMuNzQ4LTM0LjQyNiwyMC44MjYtMzQuNDI2LDQxLjg5MmMwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNoNjguMjY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzMwoJCQkJYzAtMjAuODMzLTE0LjI3NC0zNy43NjktMzMuNzY3LTQxLjc2N2MyLjU1LTI3LjExNiwxOC44MzYtNTIuMSw1MC44MzQtNTIuMWMzMy4yOCwwLDU5LjczMywyNi40NTMsNTkuNzMzLDU5LjczM3YxNzkuMkgyMDIuOTc1CgkJCQljLTMuODYtMTkuNjgxLTIwLjg3OC0zNC4xMzMtNDEuODQxLTM0LjEzM2MtOC41MzMtMTAuMjQtMjAuNDgtMTcuMDY3LTM0LjEzMy0xNy4wNjdjLTE2LjIxMywwLTMwLjcyLDkuMzg3LTM3LjU0NywyMy4wNAoJCQkJYy02LjgyNy0zLjQxMy0xNC41MDctNS45NzMtMjIuMTg3LTUuOTczYy0yMC45NjMsMC0zNy45ODEsMTQuNDUyLTQxLjg0MSwzNC4xMzNIMjQuNmMtMTQuNTA3LDAtMjUuNiwxMS4wOTMtMjUuNiwyNS42CgkJCQljMCwxNC41MDcsMTEuMDkzLDI1LjYsMjUuNiwyNS42aDEwLjI1NWwyMy4wMjUsOTEuMzA3YzYuODI3LDI2LjQ1MywzMC43Miw0NS4yMjcsNTguMDI3LDQ1LjIyN2g2LjgyN2wtMTEuMDkzLDIyLjE4NwoJCQkJYy0yLjU2LDQuMjY3LTAuODUzLDkuMzg3LDMuNDEzLDExLjA5M2MwLjg1MywwLjg1MywyLjU2LDAuODUzLDMuNDEzLDAuODUzYzMuNDEzLDAsNS45NzMtMS43MDcsNy42OC00LjI2N0wxNDEuMDgsNDU5LjhoMjM2LjgKCQkJCWwxNC41MDcsMjkuMDEzYzEuNzA3LDMuNDEzLDQuMjY3LDUuMTIsNy42OCw1LjEyYzEuNzA3LDAsMi41NiwwLDMuNDEzLTEuNzA3YzMuNDEzLTEuNzA3LDUuMTItNi44MjcsMy40MTMtMTEuMDkzCgkJCQlsLTEwLjY4OS0yMS4zNzljMjYuNDE5LTAuOTM4LDQ5LjI2Ni0xOS4zOSw1NS45MTYtNDQuMzI4bDIzLjI0LTkyLjE2aDEwLjA0YzE0LjUwNywwLDI1LjYtMTEuMDkzLDI1LjYtMjUuNgoJCQkJQzUxMSwyODMuMTYsNDk5LjkwNywyNzIuMDY3LDQ4NS40LDI3Mi4wNjd6IE0zNjUuMDgsMTE4LjQ2N2gtNDguNjRjMy40MTMtMTAuMjQsMTMuNjUzLTE3LjA2NywyNC43NDctMTcuMDY3CgkJCQlTMzYxLjY2NywxMDguMjI3LDM2NS4wOCwxMTguNDY3eiBNNjcuMjY3LDI1NWM3LjY4LDAsMTQuNTA3LDMuNDEzLDIwLjQ4LDkuMzg3YzEuNzA3LDIuNTYsNS4xMiwzLjQxMyw4LjUzMywyLjU2CgkJCQlzNS4xMi0zLjQxMyw1Ljk3My02LjgyN2MyLjU2LTEyLjgsMTIuOC0yMi4xODcsMjUuNi0yMi4xODdjOS4zODcsMCwxNy45Miw0LjI2NywyMi4xODcsMTIuOGMxLjcwNywzLjQxMyw1Ljk3Myw1LjEyLDkuMzg3LDQuMjY3CgkJCQljMC44NTMsMCwxLjcwNywwLDIuNTYsMGMxMS4wOTMsMCwyMC40OCw2LjgyNywyMy44OTMsMTcuMDY3SDQzLjM3M0M0Ni43ODcsMjYxLjgyNyw1Ni4xNzMsMjU1LDY3LjI2NywyNTV6IE00MzYuNzYsNDEwLjMwNwoJCQkJYy01LjEyLDE4Ljc3My0yMi4xODcsMzIuNDI3LTQxLjgxMywzMi40MjdIMTE2Ljc2Yy0xOS42MjcsMC0zNi42OTMtMTMuNjUzLTQxLjgxMy0zMi40MjdsLTIyLjE4Ny04Ny4wNGg0MDQuNDhMNDM2Ljc2LDQxMC4zMDd6CgkJCQkgTTQ4NS40LDMwNi4yaC0xNy4wNjdINDEuNjY3SDI0LjZjLTUuMTIsMC04LjUzMy0zLjQxMy04LjUzMy04LjUzM3MzLjQxMy04LjUzMyw4LjUzMy04LjUzM2g4LjUzM2gxNjIuMTMzSDQ4NS40CgkJCQljNS4xMiwwLDguNTMzLDMuNDEzLDguNTMzLDguNTMzUzQ5MC41MiwzMDYuMiw0ODUuNCwzMDYuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzA2LjIsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMyOTcuNjY3LDE3MC41MiwzMDEuMDgsMTczLjkzMywzMDYuMiwxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyMTMuMTg3YzUuMTIsMCw4LjUzMy00LjI2Nyw4LjUzMy04LjUzM3YtOS4zODdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y5LjM4NwoJCQkJQzI5Ny42NjcsMjA5Ljc3MywzMDEuMDgsMjEzLjE4NywzMDYuMiwyMTMuMTg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyNDYuNDY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzM3YtNC4yNjdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y0LjI2NwoJCQkJQzI5Ny42NjcsMjQzLjA1MywzMDEuMDgsMjQ2LjQ2NywzMDYuMiwyNDYuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDAuMzMzLDE3My45MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzdjQuMjY3QzMzMS44LDE3MC41MiwzMzUuMjEzLDE3My45MzMsMzQwLjMzMywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMzEuOCwyMDQuNjUzYzAsNS4xMiwzLjQxMyw4LjUzMyw4LjUzMyw4LjUzM2M1LjEyLDAsOC41MzMtNC4yNjcsOC41MzMtOC41MzN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJYy01LjEyLDAtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjA0LjY1M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzMxLjgsMjM3LjkzM2MwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzVjIzNy45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM3NC40NjcsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMzNjUuOTMzLDE3MC41MiwzNjkuMzQ3LDE3My45MzMsMzc0LjQ2NywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIwNC42NTNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzUzM4MywyMDguOTIsMzgzLDIwNC42NTN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM1YyMDQuNjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIzNy45MzNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCXMtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjM3LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",gxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OTYsMzQ0aC04VjI4MGEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMyVjExMmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDg4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJWMjQ4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJ2NjRIMTZhOCw4LDAsMCwwLTgsOHYzMmE4LDgsMCwwLDAsOCw4aDh2MzJhOCw4LDAsMCwwLDgsOEg1NmE3Ljk5LDcuOTksMCwwLDAsNy44NC02LjQzTDcwLjU2LDM5Mkg0NDEuNDRsNi43MiwzMy41N0E3Ljk5LDcuOTksMCwwLDAsNDU2LDQzMmgyNGE4LDgsMCwwLDAsOC04VjM5Mmg4YTgsOCwwLDAsMCw4LThWMzUyQTgsOCwwLDAsMCw0OTYsMzQ0Wk03MiwxMTJBMTYuMDIxLDE2LjAyMSwwLDAsMSw4OCw5Nkg0MjRhMTYuMDIxLDE2LjAyMSwwLDAsMSwxNiwxNlYyNDhINDI0VjIxNmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDI5NmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLDMydjMySDI0OFYyMTZhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMi0zMkgxMjBhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMiwzMnYzMkg3MlpNNDA4LDIxNnYzMkgyODBWMjE2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZoOTZBMTYuMDIxLDE2LjAyMSwwLDAsMSw0MDgsMjE2Wm0tMTc2LDB2MzJIMTA0VjIxNmExNi4wMjEsMTYuMDIxLDAsMCwxLDE2LTE2aDk2QTE2LjAyMSwxNi4wMjEsMCwwLDEsMjMyLDIxNlpNNDAsMjgwYTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZINDU2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYsMTZ2NjRINDBabTkuNDQsMTM2SDQwVjM5Mkg1NC4yNFpNNDcyLDQxNmgtOS40NGwtNC44LTI0SDQ3MlptMTYtNDBIMjRWMzYwSDQ4OFoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",jxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NS4zOTMgNDUuMzkzIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzLjUxOCwxMi43MDlMMjUuMTc4LDAuNzI4Yy0xLjUxMS0wLjk3OC0zLjQ1OC0wLjk2OC00Ljk2LDAuMDIxTDEuODU5LDEyLjcxOWMtMS4xNCwwLjc1MS0xLjQ1NSwyLjI4NC0wLjcwNSwzLjQyNAoJCQljMC43NTEsMS4xNCwyLjI4MywxLjQ1NiwzLjQyNCwwLjcwNEwyMi43MTUsNS4wMjFMNDAuODMsMTYuODU3YzAuNDE2LDAuMjY5LDAuODgxLDAuMzk2LDEuMzQxLDAuMzk2CgkJCWMwLjgxMiwwLDEuNjA0LTAuMzk3LDIuMDc3LTEuMTI3QzQ0Ljk5LDE0Ljk4LDQ0LjY2MiwxMy40NTIsNDMuNTE4LDEyLjcwOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzguODc5LDI3LjYxNmMtMC4xNTEtMC44NjUtMC45MDMtMS41MDUtMS43OC0xLjUwNWgtMS4wMDhsLTAuMzgzLTMuOTg3Yy0wLjQwOS00LjI2NC0zLjk0OC03LjQ5LTguMjMyLTcuNDlIMTcuOTIKCQkJYy00LjI4NSwwLTcuODIzLDMuMjI3LTguMjMzLDcuNDlsLTAuMzgyLDMuOTg3SDguMjk2Yy0wLjg3OCwwLTEuNjI5LDAuNjQtMS43ODIsMS41MDVsLTEuNSw4LjUwNAoJCQljLTAuMTg2LDEuMDU0LDAuMTEyLDIuMTM5LDAuOCwyLjk1N2MwLjY2MiwwLjc4OCwxLjYzNywxLjI1OCwyLjY1NywxLjI5M3YxLjQxMmMwLDEuOTk5LDEuNjAyLDMuNjEsMy42MDMsMy42MWgxLjEzOAoJCQljMS45OTksMCwzLjYyNS0xLjYxMSwzLjYyNS0zLjYxdi0xLjM4OWgxMS43MzJ2MS4zODZjMCwyLDEuNjEzLDMuNjEzLDMuNjEyLDMuNjEzaDEuMTM5YzEuOTk5LDAsMy42MTQtMS42MTMsMy42MTQtMy42MTNWNDAuMzcKCQkJYzEuMDItMC4wMzUsMS45ODktMC41MDEsMi42NDktMS4yODhjMC42ODgtMC44MiwwLjk4Mi0xLjg5OSwwLjc5OC0yLjk1NUwzOC44NzksMjcuNjE2eiBNMTEuNjQyLDM3LjExMwoJCQljLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1N2MxLjY4OCwwLDMuMDU3LDEuMzY3LDMuMDU3LDMuMDU3CgkJCUMxNC42OTksMzUuNzQ2LDEzLjMzLDM3LjExMywxMS42NDIsMzcuMTEzeiBNMTIuNDA0LDI2LjExMWwwLjM1My0zLjY3OGMwLjI1Ny0yLjY3NCwyLjQ3Ni00LjY4OCw1LjE2My00LjY4OGgwLjU1MXYxLjE1NgoJCQljMCwxLjAwMywwLjc5NywxLjgwMiwxLjc5OSwxLjgwMmg0Ljg1NmMxLjAwMiwwLDEuODEzLTAuNzk5LDEuODEzLTEuODAydi0xLjE1NWgwLjUzN2MyLjY4NywwLDQuOTA2LDIuMDE0LDUuMTYyLDQuNjg4CgkJCWwwLjM1NCwzLjY3OEwxMi40MDQsMjYuMTExTDEyLjQwNCwyNi4xMTF6IE0zMy43NSwzNy4xMTNjLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1NwoJCQljMS42ODgsMCwzLjA1NywxLjM2NywzLjA1NywzLjA1N0MzNi44MDcsMzUuNzQ2LDM1LjQzOCwzNy4xMTMsMzMuNzUsMzcuMTEzeiIvPgogICAgPC9nPgo8L3N2Zz4K",yxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDk0LjU5NCwzOTQuMjM3aC0xOS40NjFjMTIuOTU0LTE5LjU0MywyMC41MTItNDIuOTU4LDIwLjUxMi02OC4xMDljMC02OC4xNTctNTUuNDQ5LTEyMy42MDYtMTIzLjYwNi0xMjMuNjA2CgkJCWMtNy4xNzEsMC0xNC4yLDAuNjIyLTIxLjA0LDEuNzk5YzE3Ljg1My0yMS40MzUsMjguNjA4LTQ4Ljk3OSwyOC42MDgtNzguOTlDMzc5LjYwNiw1Ny4xNzQsMzI0LjE1NywxLjcyNCwyNTYsMS43MjQKCQkJYy02OC4xNTcsMC0xMjMuNjA2LDU1LjQ0OS0xMjMuNjA2LDEyMy42MDZjMCwzMC4wMTIsMTAuNzU1LDU3LjU1NSwyOC42MDgsNzguOTljLTYuODQtMS4xNzgtMTMuODY5LTEuNzk5LTIxLjA0LTEuNzk5CgkJCWMtNjguMTU3LDAtMTIzLjYwNiw1NS40NDktMTIzLjYwNiwxMjMuNjA2YzAsMjUuMTUxLDcuNTU4LDQ4LjU2NywyMC41MTIsNjguMTA5SDE3LjQwNkwwLDUxMC4yNzZoOTMuMjk0bDE1LjEzNS0yMC4xODFoNjMuMDY0CgkJCWwxNS4xMzUsMjAuMTgxaDEzOC43NDJsMTUuMTM1LTIwLjE4MWg2My4wNjRsMTUuMTM1LDIwLjE4MUg1MTJMNDk0LjU5NCwzOTQuMjM3eiBNNDY5LjUxOSwzNzMuNjdsLTEzLjE0Mi03LjU4OAoJCQljNC43MzYtOS45NTgsNy43Ni0yMC44ODEsOC42ODgtMzIuMzg3aDE1LjE3NUM0NzkuMjU0LDM0Ny45NDgsNDc1LjUwMywzNjEuNDUsNDY5LjUxOSwzNzMuNjd6IE00MDkuODc3LDM5NC41MzN2LTEzNi44MQoJCQljMjQuMDQ1LDEzLjM1NCw0MC4zNjEsMzkuMDA1LDQwLjM2MSw2OC40MDVTNDMzLjkyMiwzODEuMTc4LDQwOS44NzcsMzk0LjUzM3ogTTQxOS41ODEsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMNDE5LjU4MSw0MjMuNjA4eiBNNDQ4Ljc4NywzNzkuMTc2CgkJCWwxMy4xNDgsNy41OTFjLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzQzNC4zMzYsMzk2LjQ2NCw0NDIuMzc1LDM4OC40MjUsNDQ4Ljc4NywzNzkuMTc2egoJCQkgTTQ4MC4yNDEsMzE4LjU2aC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEM0NzUuNTAzLDI5MC44MDUsNDc5LjI1NCwzMDQuMzA3LDQ4MC4yNDEsMzE4LjU2egoJCQkgTTQzMi42NzgsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTkKCQkJTDQzMi42NzgsMjM2LjIzMXogTTQxMS45OTQsMjQxLjc4OWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4di0xNS4xNzZjMTQuMjUyLDAuOTg3LDI3Ljc1NCw0LjczOCwzOS45NzQsMTAuNzIyCgkJCUw0MTEuOTk0LDI0MS43ODl6IE0zOTQuNzQyLDI1MS4zdjE0OS42NTVjLTcuMTg5LDIuMTg2LTE0LjgxLDMuMzcyLTIyLjcwMywzLjM3MmMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zCgkJCWM3LjE4OS0yLjE4NiwxNC44MS0zLjM3MiwyMi43MDMtMy4zNzJDMzc5LjkzMiwyNDcuOTI4LDM4Ny41NTIsMjQ5LjExNCwzOTQuNzQyLDI1MS4zeiBNMTc3LjgsMzk0LjUzM3YtMTM2LjgxCgkJCWMyNC4wNDUsMTMuMzU0LDQwLjM2MSwzOS4wMDUsNDAuMzYxLDY4LjQwNVMyMDEuODQ1LDM4MS4xNzgsMTc3LjgsMzk0LjUzM3ogTTE4Ny41MDQsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMMTg3LjUwNCw0MjMuNjA4eiBNMjgyLjE0MiwyNjUuNDg4CgkJCWM3Ljc5NC0xMS41MTcsMTcuNzQtMjEuNDYzLDI5LjI1Ni0yOS4yNTZsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OUwyODIuMTQyLDI2NS40ODh6IE0yODcuNywyODYuMTczCgkJCWMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3aC0xNS4xNzVjMC45ODctMTQuMjUzLDQuNzM3LTI3Ljc1NCwxMC43MjItMzkuOTc1TDI4Ny43LDI4Ni4xNzN6IE0zMTYuNjQsMjE1LjIyNwoJCQlsLTcuNTkxLTEzLjE0OGM5LjI0OS02LjQxMiwxNy4yODctMTQuNDUsMjMuNjk5LTIzLjY5OWwxMy4xNDgsNy41OTFDMzM4LjEwMywxOTcuNDg3LDMyOC4xNTcsMjA3LjQzMywzMTYuNjQsMjE1LjIyN3oKCQkJIE0yOTMuODM5LDE5My43MzZWNTYuOTI1QzMxNy44ODQsNzAuMjgsMzM0LjIsOTUuOTMsMzM0LjIsMTI1LjMzMVMzMTcuODg0LDE4MC4zODEsMjkzLjgzOSwxOTMuNzM2eiBNMjk1Ljk1NSwyMDkuNjY5CgkJCWw3LjU4NywxMy4xNDJjLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVDMjc1LjA3NCwyMTcuNDMsMjg1Ljk5NiwyMTQuNDA3LDI5NS45NTUsMjA5LjY2OXogTTI3Ny4wNCwyNDcuMTM4CgkJCWMtOC45NTEsMTAuNzQ3LTE2LjExOSwyMy4wMjgtMjEuMDQsMzYuMzg5Yy00LjkyMS0xMy4zNjEtMTIuMDg5LTI1LjY0MS0yMS4wNC0zNi4zODljNi44NCwxLjE3OCwxMy44NjksMS43OTksMjEuMDQsMS43OTkKCQkJQzI2My4xNzEsMjQ4LjkzNywyNzAuMiwyNDguMzE1LDI3Ny4wNCwyNDcuMTM4eiBNMjQ4LjE2NCwzMTguNTZoLTE1LjE3NWMtMC45MjctMTEuNTA2LTMuOTUxLTIyLjQyOS04LjY4OC0zMi4zODdsMTMuMTQyLTcuNTg4CgkJCUMyNDMuNDI2LDI5MC44MDUsMjQ3LjE3NywzMDQuMzA3LDI0OC4xNjQsMzE4LjU2eiBNMjQ4LjQzMSwyMzMuNTMzYy0xNC4yNTItMC45ODctMjcuNzU0LTQuNzM4LTM5Ljk3NC0xMC43MjJsNy41ODctMTMuMTQyCgkJCWM5Ljk1OCw0LjczNiwyMC44ODEsNy43NiwzMi4zODcsOC42ODhWMjMzLjUzM3ogTTIxOC4xNjEsMTkzLjczNmMtMjQuMDQ1LTEzLjM1NC00MC4zNjEtMzkuMDA1LTQwLjM2MS02OC40MDUKCQkJYzAtMjkuNCwxNi4zMTYtNTUuMDUxLDQwLjM2MS02OC40MDVWMTkzLjczNnogTTE3OS4yNTEsMTc4LjM3OWM2LjQxMiw5LjI0OSwxNC40NSwxNy4yODcsMjMuNjk5LDIzLjY5OWwtNy41OTEsMTMuMTQ4CgkJCWMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDE3OS4yNTEsMTc4LjM3OXogTTIwMC42MDEsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTYKCQkJbC0xMy4xNDgsNy41OTFjLTYuNDEyLTkuMjQ5LTE0LjQ1LTE3LjI4Ny0yMy42OTktMjMuNjk5TDIwMC42MDEsMjM2LjIzMXogTTIxNi43MSwzNzkuMTc2bDEzLjE0OCw3LjU5MQoJCQljLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzIwMi4yNTksMzk2LjQ2NCwyMTAuMjk4LDM4OC40MjUsMjE2LjcxLDM3OS4xNzZ6IE0yMjQuMywzNjYuMDgyCgkJCWM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1Yy0wLjk4NywxNC4yNTMtNC43MzcsMjcuNzU0LTEwLjcyMiwzOS45NzVMMjI0LjMsMzY2LjA4MnogTTI1NiwzNjguNzI5CgkJCWMzLjMzMiw5LjA0NSw3LjY5NywxNy41OTMsMTIuOTQ0LDI1LjUwOGgtMjUuODg4QzI0OC4zMDMsMzg2LjMyMSwyNTIuNjY4LDM3Ny43NzQsMjU2LDM2OC43Mjl6IE0yNjMuODM2LDMzMy42OTVoMTUuMTc1CgkJCWMwLjkyNywxMS41MDYsMy45NTEsMjIuNDI5LDguNjg4LDMyLjM4N2wtMTMuMTQyLDcuNTg4QzI2OC41NzQsMzYxLjQ1LDI2NC44MjMsMzQ3Ljk0OCwyNjMuODM2LDMzMy42OTV6IE0yOTUuMjksMzc5LjE3NgoJCQljNi40MTIsOS4yNDksMTQuNDUsMTcuMjg3LDIzLjY5OSwyMy42OTlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDI5NS4yOSwzNzkuMTc2egoJCQkgTTI5My44MzksMzI2LjEyOGMwLTI5LjQsMTYuMzE2LTU1LjA1MSw0MC4zNjEtNjguNDA1djEzNi44MUMzMTAuMTU1LDM4MS4xNzgsMjkzLjgzOSwzNTUuNTI4LDI5My44MzksMzI2LjEyOHogTTMzMi4wODQsNDEwLjQ2NgoJCQljOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDMzMi4wODQsNDEwLjQ2NnogTTM2NC40NzEsMjE3LjkyNVYyMzMuMQoJCQljLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMzM2LjcxNiwyMjIuNjYzLDM1MC4yMTgsMjE4LjkxMiwzNjQuNDcxLDIxNy45MjV6IE0zNTMuNDgsMTcyLjg3MwoJCQlsLTEzLjE0Mi03LjU4OGM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1QzM2My4yMTYsMTQ3LjE1MSwzNTkuNDY1LDE2MC42NTMsMzUzLjQ4LDE3Mi44NzN6IE0zNjQuMjAyLDExNy43NjMKCQkJaC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEMzNTkuNDY1LDkwLjAwOCwzNjMuMjE2LDEwMy41MSwzNjQuMjAyLDExNy43NjN6IE0zMTYuNjQsMzUuNDM0CgkJCWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTlMMzE2LjY0LDM1LjQzNHogTTI5NS45NTYsNDAuOTkyCgkJCWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4VjE3LjEyOGMxNC4yNTIsMC45ODcsMjcuNzU0LDQuNzM4LDM5Ljk3NCwxMC43MjJMMjk1Ljk1Niw0MC45OTJ6IE0yNzguNzAzLDUwLjUwM3YxNDkuNjU1CgkJCWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyYy03Ljg5NCwwLTE1LjUxNC0xLjE4Ny0yMi43MDMtMy4zNzJWNTAuNTAzYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MgoJCQlDMjYzLjg5NCw0Ny4xMzEsMjcxLjUxNCw0OC4zMTcsMjc4LjcwMyw1MC41MDN6IE0yNDguNDMyLDE3LjEyOHYxNS4xNzVjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDIKCQkJQzIyMC42NzgsMjEuODY2LDIzNC4xOCwxOC4xMTUsMjQ4LjQzMiwxNy4xMjh6IE0xOTUuMzYsMzUuNDM0bDcuNTkxLDEzLjE0OGMtOS4yNDksNi40MTItMTcuMjg3LDE0LjQ1LTIzLjY5OSwyMy42OTkKCQkJbC0xMy4xNDgtNy41OTFDMTczLjg5Nyw1My4xNzQsMTgzLjg0Myw0My4yMjgsMTk1LjM2LDM1LjQzNHogTTE1OC41Miw3Ny43ODhsMTMuMTQyLDcuNTg4Yy00LjczNiw5Ljk1OC03Ljc2LDIwLjg4MS04LjY4OCwzMi4zODcKCQkJaC0xNS4xNzVDMTQ4Ljc4NSwxMDMuNTEsMTUyLjUzNSw5MC4wMDgsMTU4LjUyLDc3Ljc4OHogTTE1OC41MiwxNzIuODczYy01Ljk4NC0xMi4yMi05LjczNS0yNS43MjItMTAuNzIyLTM5Ljk3NWgxNS4xNzUKCQkJYzAuOTI3LDExLjUwNiwzLjk1MSwyMi40MjksOC42ODgsMzIuMzg3TDE1OC41MiwxNzIuODczeiBNMTg3LjUwNCwyMjguNjQ3bC03LjU4NywxMy4xNDJjLTkuOTU4LTQuNzM2LTIwLjg4MS03Ljc2LTMyLjM4Ny04LjY4OAoJCQl2LTE1LjE3NkMxNjEuNzgyLDIxOC45MTIsMTc1LjI4NCwyMjIuNjY0LDE4Ny41MDQsMjI4LjY0N3ogTTE2Mi42NjUsMjUxLjN2MTQ5LjY1NWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyCgkJCWMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MkMxNDcuODU1LDI0Ny45MjgsMTU1LjQ3NSwyNDkuMTE0LDE2Mi42NjUsMjUxLjN6CgkJCSBNNjEuNzYyLDMyNi4xMjhjMC0yOS40LDE2LjMxNi01NS4wNTEsNDAuMzYxLTY4LjQwNXYxMzYuODFDNzguMDc4LDM4MS4xNzgsNjEuNzYyLDM1NS41MjgsNjEuNzYyLDMyNi4xMjh6IE04Ni45MTMsNDAyLjg3NgoJCQlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2bDEzLjE0OC03LjU5MUM2OS42MjUsMzg4LjQyNSw3Ny42NjQsMzk2LjQ2NCw4Ni45MTMsNDAyLjg3NnoKCQkJIE0xMDAuMDA3LDQxMC40NjZjOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDEwMC4wMDcsNDEwLjQ2NnoKCQkJIE0xMzIuMzk0LDIxNy45MjVWMjMzLjFjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMTA0LjYzOSwyMjIuNjYzLDExOC4xNDEsMjE4LjkxMiwxMzIuMzk0LDIxNy45MjUKCQkJeiBNNzkuMzIyLDIzNi4yMzFsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OWwtMTMuMTQ4LTcuNTkxCgkJCUM1Ny44NTksMjUzLjk3MSw2Ny44MDUsMjQ0LjAyNSw3OS4zMjIsMjM2LjIzMXogTTQyLjQ4MSwyNzguNTg1bDEzLjE0Miw3LjU4OGMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3SDMxLjc1OQoJCQlDMzIuNzQ2LDMwNC4zMDcsMzYuNDk3LDI5MC44MDUsNDIuNDgxLDI3OC41ODV6IE0zMS43NTksMzMzLjY5NWgxNS4xNzVjMC45MjcsMTEuNTA2LDMuOTUxLDIyLjQyOSw4LjY4OCwzMi4zODdMNDIuNDgsMzczLjY3CgkJCUMzNi40OTcsMzYxLjQ1LDMyLjc0NiwzNDcuOTQ4LDMxLjc1OSwzMzMuNjk1eiBNNDI2LjI3NCw0OTUuMTRsLTE1LjEzNS0yMC4xODFoLTc4LjJsLTE1LjEzNSwyMC4xODFIMTk0LjE5N2wtMTUuMTM1LTIwLjE4MQoJCQloLTc4LjJMODUuNzI2LDQ5NS4xNEgxNy41NzVsMTIuODY1LTg1Ljc2OGgxOC4yM2MyMi42MiwyNC43ODYsNTUuMTcxLDQwLjM2MSw5MS4yOTEsNDAuMzYxczY4LjY3MS0xNS41NzUsOTEuMjkxLTQwLjM2MWg0OS40OTQKCQkJYzIyLjYyLDI0Ljc4Niw1NS4xNzEsNDAuMzYxLDkxLjI5MSw0MC4zNjFzNjguNjcxLTE1LjU3NSw5MS4yOTEtNDAuMzYxaDE4LjIzbDEyLjg2NSw4NS43NjhINDI2LjI3NHoiLz4KICAgICAgICA8cmVjdCB4PSIzMDUuOTQ4IiB5PSIxMTYuNzU1IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjE5MC45MTkiIHk9IjExNi43NTUiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTExLjIwNSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyNDguNDMzIiB5PSI2NS43OTkiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMzAuMjcxIi8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTcxLjc0NyIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSI0MjEuOTg2IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjMwNi45NTciIHk9IjMxNy41NTIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzY0LjQ3MiIgeT0iMzEyLjAwMiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIzNjQuNDcyIiB5PSIyNjYuNTk2IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjMwLjI3MSIvPgogICAgICAgIDxyZWN0IHg9IjM2NC40NzIiIHk9IjM3Mi41NDQiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTg5LjkxIiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9Ijc0Ljg4IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjEzMi4zOTUiIHk9IjMxMi4wMDIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTMyLjM5NSIgeT0iMjY2LjU5NiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIzMC4yNzEiLz4KICAgICAgICA8cmVjdCB4PSIxMzIuMzk1IiB5PSIzNzIuNTQ0IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ2MS4zODciIHk9IjQ3MC44ODEiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTg4OSAtMC4xNDgzIDAuMTQ4MyAwLjk4ODkgLTY1Ljc3MiA3NC44NDExKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ1Ni4yMSIgeT0iNDMxLjkzNSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODg5IC0wLjE0ODMgMC4xNDgzIDAuOTg4OSAtNjAuNzE5OSA3My42OTAzKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjI0LjE0NSIvPgogICAgICAgIDxyZWN0IHg9IjI0OC40MzMiIHk9IjQ2NC44NyIgd2lkdGg9IjQ1LjQwNiIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMTguMTYyIiB5PSI0NjQuODciIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjYzLjU2OSIgeT0iNDI0LjUwOSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMzMuMjk4IiB5PSI0MjQuNTA5IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjM2LjEyNyIgeT0iNDM2LjQ2MSIgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNDgzIC0wLjk4ODkgMC45ODg5IDAuMTQ4MyAtMzk4LjA2NzUgNDI1Ljg0MjcpIgogICAgICAgICAgICAgIHdpZHRoPSIyNC4xNDUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzUuNDY4IiB5PSI0NzAuODYiIHRyYW5zZm9ybT0ibWF0cml4KDAuMTQ4MyAtMC45ODg5IDAuOTg4OSAwLjE0ODMgLTQzNi40ODM4IDQ1MC4wMzI1KSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgPC9nPgo8L3N2Zz4K",Txe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik02MSwyMUgzYTEsMSwwLDAsMCwwLDJINjFhMSwxLDAsMCwwLDAtMloiLz4KICAgICAgICA8cGF0aCBkPSJNNjEsMkg0OWExLDEsMCwwLDAtMSwxVjE3SDQ2di0uNzY0YTEwLjUzMywxMC41MzMsMCwwLDAtMS4xLTQuNjgzQTguNTIyLDguNTIyLDAsMCwxLDQ0LDcuNzY0VjNhMSwxLDAsMCwwLTEtMUgzOWExLDEsMCwwLDAtMSwxVjcuNzY0YTguNTIyLDguNTIyLDAsMCwxLS45LDMuNzg5Yy0uMDM5LjA4LS4wNjcuMTY1LS4xLjI0Ni0uMDM4LS4wODEtLjA2Ni0uMTY2LS4xLS4yNDZBOC41MjIsOC41MjIsMCwwLDEsMzYsNy43NjRWM2ExLDEsMCwwLDAtMS0xSDMxYTEsMSwwLDAsMC0xLDFWNy43NjRhOC41MjIsOC41MjIsMCwwLDEtLjg5NSwzLjc4OUExMC41MzMsMTAuNTMzLDAsMCwwLDI4LDE2LjIzNlYxN0gxOFYxMC40MTRhMi4zOTQsMi4zOTQsMCwwLDEsLjcwNy0xLjcwNkE0LjM4NSw0LjM4NSwwLDAsMCwyMCw1LjU4NlY0aDJWNS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMjQsMTAuNDE0VjE0YTEsMSwwLDAsMCwyLDBWMTAuNDE0YTQuMzg1LDQuMzg1LDAsMCwwLTEuMjkzLTMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDI0LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxOWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC41MTUsNC41MTUsMCwwLDAsMTcsNy42NDlhNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDE2LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxMWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC4zODUsNC4zODUsMCwwLDAsOCwxMC40MTRWMTdIM2ExLDEsMCwwLDAsMCwySDYxYTEsMSwwLDAsMCwwLTJINTBWMTRINjBhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw2MSwyWk00Miw0VjdINDBWNFpNMTAuNzA3LDguNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDEyLDUuNTg2VjRoMlY1LjU4NmE0LjM4NSw0LjM4NSwwLDAsMCwxLjI5MywzLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwxNiwxMC40MTRWMTJIMTBWMTAuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDEwLjcwNyw4LjcwOFpNMTAsMTRoNnYzSDEwWm0yMCwyLjIzNmE4LjUyMiw4LjUyMiwwLDAsMSwuODk1LTMuNzg5QTEwLjUzMywxMC41MzMsMCwwLDAsMzIsNy43NjRWNGgyVjcuNzY0YTEwLjUzMywxMC41MzMsMCwwLDAsMS4xLDQuNjgzLDguNTIyLDguNTIyLDAsMCwxLC45LDMuNzg5VjE3SDMwWk0zOCwxN3YtLjc2NGE4LjUyMiw4LjUyMiwwLDAsMSwuOS0zLjc4OUExMC41NDEsMTAuNTQxLDAsMCwwLDM5LjkyNCw5aDIuMTUyYTEwLjU0MSwxMC41NDEsMCwwLDAsMS4wMjksMy40NDcsOC41MjIsOC41MjIsMCwwLDEsLjksMy43ODlWMTdaTTYwLDRWNkg1MFY0Wk01MCwxMlY4SDYwdjRaIi8+CiAgICAgICAgPHBhdGggZD0iTTYxLDQ0SDNhMSwxLDAsMCwwLDAsMkg2MFY2MEg0NlY0OWExLDEsMCwwLDAtMiwwVjYwSDQyVjUzYTEsMSwwLDAsMC0xLTFIMjZhMSwxLDAsMCwwLTEsMXY3SDIyVjQ5YTEsMSwwLDAsMC0xLTFINWExLDEsMCwwLDAtMSwxVjYwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsMS0xVjQ1QTEsMSwwLDAsMCw2MSw0NFpNNDAsNTZIMzdWNTRoM1ptLTUsMEgzMlY1NGgzWm0tNS0ydjJIMjdWNTRaTTIwLDUyLjM4MmEzLjk0NywzLjk0NywwLDAsMC02LDBWNTBoNlpNMTksNTVhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTksNTVaTTYsNTRoNnYySDZabTYtNHYySDZWNTBaTTYsNThoNnYySDZabTgsMlY1Ny42MThhMy45NDcsMy45NDcsMCwwLDAsNiwwVjYwWm0xMy0yaDN2MkgyN1ptNSwwaDN2MkgzMlptNSwyVjU4aDN2MloiLz4KICAgICAgICA8cGF0aCBkPSJNNTcsNTZhMSwxLDAsMCwwLDEtMVY1MWExLDEsMCwwLDAtMS0xSDQ5YTEsMSwwLDAsMC0xLDF2NGExLDEsMCwwLDAsMSwxWm0tNy00aDZ2Mkg1MFoiLz4KICAgICAgICA8cGF0aCBkPSJNNjAsMjkuMTg0VjI2YTEsMSwwLDAsMC0xLTFINTVhMSwxLDAsMCwwLTEsMXYzLjE4NEEzLDMsMCwwLDAsNTIsMzJ2N2EyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDlWMzRhMSwxLDAsMCwwLDAtMkg0MWExLDEsMCwwLDAsMCwydjZIMzhWMzFhMSwxLDAsMCwwLTEtMUgyNWExLDEsMCwwLDAtMSwxdjlIMjJWMzlhMSwxLDAsMCwwLTIsMHYxSDE0VjMzLjQxNGEyLjM5NCwyLjM5NCwwLDAsMSwuNzA3LTEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDE2LDI4LjU4NlYyN2gydjEuNTg2YTQuMzg1LDQuMzg1LDAsMCwwLDEuMjkzLDMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDIwLDMzLjQxNFYzNWExLDEsMCwwLDAsMiwwVjMzLjQxNGE0LjM4NSw0LjM4NSwwLDAsMC0xLjI5My0zLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwyMCwyOC41ODZWMjZhMSwxLDAsMCwwLTEtMUgxNWExLDEsMCwwLDAtMSwxdjIuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDYsNC41MTUsNC41MTUsMCwwLDAtLjI5My4zNTcsNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDEyLDI4LjU4NlYyNmExLDEsMCwwLDAtMS0xSDdhMSwxLDAsMCwwLTEsMXYyLjU4NmEyLjM5NCwyLjM5NCwwLDAsMS0uNzA3LDEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDQsMzMuNDE0VjQwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsLjctMS43MTNBMi45NjQsMi45NjQsMCwwLDAsNjIsMzlWMzJBMywzLDAsMCwwLDYwLDI5LjE4NFpNNi43MDcsMzEuNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDgsMjguNTg2VjI3aDJ2MS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMTIsMzMuNDE0VjM1SDZWMzMuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDYuNzA3LDMxLjcwOFpNNiwzN2g2djNINlpNNTYsMjdoMnYySDU2Wm0tMSw0aDRhMSwxLDAsMCwxLDEsMXYzSDU0VjMyQTEsMSwwLDAsMSw1NSwzMVpNMzYsMzZIMzJWMzJoNFptLTYtNHYySDI2VjMyWm0tNCw0aDR2NEgyNlptNiw0VjM4aDR2MlptMTEsMFYzNGg0djZabTEyLDBhMSwxLDAsMCwxLTEtMVYzN2g2djJhMSwxLDAsMCwxLTEsMVoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",dxe="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Dxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",hxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4yNzMgNTEyLjI3MyIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy44OTEgMjM4LjM5OWMtNi43MjMtMzUuODgxLTIxLjg1My02Ni45MDUtNDMuNzU1LTg5LjcxOC05Ljg0NS0xMC4yNTMtMjEuNDU2LTE5Ljc1LTM0LjUxNC0yOC4yMjctMTQuOTQtOS42OTktMzIuMTkyLTE4LjQzOC01NC4yOTMtMjcuNTAzLTkuNjg0LTMuOTcyLTE5LjM3NS03LjYzNy0yOC40MDYtMTEuMDA1LTE0LjY0Mi01LjQ2LTMwLjA2NC0xMC45NTgtNDUuODQzLTE2LjMzNy01LjQyNy0xLjg1MS0xMC45MjEtMy42MDYtMTYuMjM0LTUuMzAzLTguNTA1LTIuNzE3LTE3LjMtNS41MjctMjUuNzcxLTguNzIxLTUuMjI0LTEuOTctNy40MjYtMy40NjQtOC4zMjEtNC4yNTguMDQ2LS4wNTYuMDk2LS4xMTUuMTUxLS4xNzcgNC4wNDgtNC42MTUgMjcuNjAzLTIzLjEwNSA0MS41MDEtMzMuNjc3IDIuNTYyLTEuOTQ5IDMuNTk1LTUuMzE1IDIuNTY2LTguMzY1cy0zLjg4OS01LjEwNC03LjEwNy01LjEwNGwtMTU0LjA1Mi0uMDA0Yy0xLjMyMSAwLTIuNjE5LjM0OS0zLjc2MiAxLjAxMi0xNy4yODIgMTAuMDIxLTMxLjYyMyAyNS43OS0zOS4zNDYgNDMuMjYyLTguOTQ2IDIwLjI0LTkuMDE2IDQxLjQyNS0uMjAyIDYxLjI2MyAxMi4wNyAyNy4xNjcgMzcuNTY3IDQyLjIzNyA2MC4wNjMgNTUuNTMzIDUuODcgMy40NjkgMTEuNDE0IDYuNzQ2IDE2LjY1NSAxMC4xNjcgMy4wOTUgMi4wMiA2LjI3MyA0LjAwMyA5LjM0NyA1LjkyMiAxMS41NDUgNy4yMDggMjIuNDUgMTQuMDE2IDMxLjE2NyAyMy42MDQgOC45ODEgOS44NzcgMTEuNjkzIDIyLjUwMSA3Ljg0MiAzNi41MDctOC45NDggMzIuNTQ0LTM1LjU0NCA2MS43ODEtNTkuMDA5IDg3LjU3Ni00LjM0MiA0Ljc3My04LjQ0MiA5LjI4MS0xMi40MDkgMTMuNzc2LTExLjEwNyAxMi41ODctMjcuMzkzIDMwLjg5LTQ0LjYzNCA1MC4yNjctNTYuODY5IDYzLjkxNC05NC40MTUgMTA2LjIyOS05OCAxMTEuODQ2LTEuNDc0IDIuMzA5LTEuNTcxIDUuMjM4LS4yNTQgNy42NCAxLjMxNiAyLjQwMiAzLjgzOCAzLjg5NSA2LjU3NyAzLjg5NWw0NDYuMzE2LjAwM2guMDAxYzMuMjUxIDAgNi4xMzItMi4wOTQgNy4xMzUtNS4xODcgMTEuNjU5LTM1Ljk2IDIyLjIxMi03Mi4yMzIgMzUuMjgzLTEyMS4yODMgMTUuNTkxLTU4LjUxNSAxOS4xODUtMTA1LjM1NCAxMS4zMDgtMTQ3LjQwNHptLTI1LjgwMyAxNDMuNTQzYy0xMi4zNyA0Ni40Mi0yMi40NjQgODEuMzA1LTMzLjM4NSAxMTUuMzMxbC0yNi45NC0uMDAyYzEuMjg4LTMuOTQ4IDIuNTczLTcuOTAzIDMuODYxLTExLjg0MiAxMS41OC0zNS40MSAyMi44NzctNzAuOTI1IDMyLjUwNC0xMDYuODg4IDEuNTM1LTUuNzQgMy4xMjItMTEuNjc0IDQuNjctMTcuNjQ1IDEuMDQtNC4wMDktMS4zNjgtOC4xMDMtNS4zNzgtOS4xNDItNC4wMDktMS4wMzgtOC4xMDIgMS4zNjktOS4xNDIgNS4zNzgtMS41MzMgNS45MTQtMy4xMTMgMTEuODItNC42NDEgMTcuNTMxLTkuNDM5IDM1LjI3NS0yMC43OTcgNzEuMDI1LTMyLjI3IDEwNi4xMDQtMS43OTcgNS40OTMtMy41OTUgMTAuOTkyLTUuMzg5IDE2LjUwNGgtMTU3Ljk3OGMtLjQzMi0xLjg1OC0xLjU2Ny0zLjU1My0zLjMwOS00LjY0OS0zLjUwNC0yLjIwNi04LjEzNi0xLjE1Mi0xMC4zNDIgMi4zNTMtLjQ5NS43ODYtLjk3MyAxLjU0Mi0xLjQ0OSAyLjI5NmgtMTU2LjIzNGMyNC40NzMtMzAuNTUxIDkxLjg5Ny0xMTIuMDczIDEyNC4yMzgtMTQ4LjcyNCAxNy4yNC0xOS41MzcgMzEuMzY4LTM4LjcyNiA0MS45OTQtNTcuMDMzIDE3LjU5OC0zMC4zMTkgMjQuNTY3LTU2Ljc2NSAyMC43MTYtNzguNjAxLTguMjczLTQ2LjkwOS00NS4xMjctNjUuNzY0LTc3LjY0My04Mi4zOTgtMy40MzktMS43NTktNi45OTUtMy41NzktMTAuNDA3LTUuMzc1bC0uNjA5LS4zMjFjLTMuNjYzLTEuOTMzLTguMi0uNTMtMTAuMTMzIDMuMTMzcy0uNTMgOC4yIDMuMTMzIDEwLjEzM2wuNjE2LjMyNWMzLjQ5NiAxLjg0IDcuMDkxIDMuNjggMTAuNTY4IDUuNDU4IDMyLjI1NyAxNi41MDIgNjIuNzI2IDMyLjA5IDY5LjcwMyA3MS42NSAzLjIyIDE4LjI1Ni0zLjE0NSA0MS4yOTEtMTguOTE3IDY4LjQ2Ni05Ljk4OSAxNy4yMS0yMy45MTQgMzYuMTA0LTQwLjI2OCA1NC42MzgtMzUuMjg2IDM5Ljk4OC0xMTYuMDk4IDEzNy44MzgtMTMyLjA1NiAxNTguNjQ4aC0zMy44NWMxNy44ODItMjAuNzUzIDU2Ljc0NC02NC40MjggODYuOTgxLTk4LjQxMSAxNy4yNTItMTkuMzg5IDMzLjU0Ny0zNy43MDIgNDQuNjc1LTUwLjMxMyAzLjg5Mi00LjQxIDcuOTU2LTguODc4IDEyLjI1OC0xMy42MDcgMjQuNTk3LTI3LjA0IDUyLjQ3Ni01Ny42ODggNjIuMzc1LTkzLjY5MyA1LjIwNy0xOC45MzkgMS4yMjctMzYuOS0xMS4yMDctNTAuNTc1LTE2LjQyMy0xOC4wNjItMzkuODYzLTMwLjIzNy02MC42MzUtNDIuNTE0LTIxLjU2NS0xMi43NDYtNDMuODY0LTI1LjkyNi01My45ODctNDguNzEtMTUuMDIzLTMzLjgxNSA0LjM2Ni02Ny43MTggMzEuNjY3LTg0LjQ0N2gxMy42MzljLTIwLjU1NyAxNS4wNzQtMzIuNTY4IDMwLjMwNS0zNi40OTQgNDYuMTk1LTMuMTgzIDEyLjg4Mi0uODEzIDI1Ljc1NiA3LjA0NSAzOC4yNjUgNC4zMjQgNi44ODMgOS45MDQgMTMuMTEyIDE3LjA1OCAxOS4wNDIgMy4xODggMi42NDMgNy45MTYgMi4yMDEgMTAuNTYxLS45ODggMi42NDMtMy4xODkgMi4yMDEtNy45MTctLjk4OC0xMC41NjEtNS45MDktNC44OTgtMTAuNDY1LTkuOTU5LTEzLjkyOS0xNS40NzItNS42ODgtOS4wNTYtNy4zODQtMTcuNzg2LTUuMTg1LTI2LjY4OCAzLjk3OS0xNi4xMDMgMjAuNTY4LTMyLjg1MSA0OS4zMTQtNDkuNzkzaDUwLjcxNWMtMTMuMzA2IDEwLjQ3OS0yOC4xMDUgMjQuNzc1LTI0LjA5NSA0Mi4zNTMgMy45NzkgMTcuNDQxIDI0LjE3NyAyNy4xNzkgMzkuMTc4IDMzLjQ3MiAxOS41NTggOC4yMDUgMzkuODM1IDE0LjcyIDU5LjQ0NSAyMS4wMjEgMzIuMDg4IDEwLjMxIDY1LjI2OSAyMC45NzEgOTUuMDAzIDM5LjEzNyAzMy45MzQgMjAuNzMxIDU1LjUxOCA1MS4xNTggNjIuNDIgODcuOTg5IDQuNDc4IDIzLjg5NiAzLjQyNiA1MC42MzQtMy4zMTEgODQuMTUybC0uMTA3LjUzNmMtLjgxNCA0LjA2MiAxLjgxOCA4LjAxNCA1Ljg4IDguODI4LjQ5OC4xLjk5My4xNDcgMS40ODEuMTQ3IDMuNTAxIDAgNi42MzItMi40NjQgNy4zNDYtNi4wMjhsLjEwNi0uNTMyYzcuMTI4LTM1LjQ2MiA4LjE5MS02NC4wMTggMy4zNDktODkuODY3LTcuNzA3LTQxLjEyMy0zMS42ODYtNzUuMDItNjkuMzQ0LTk4LjAyNi0zMS4yNjItMTkuMDk5LTY1LjMwOS0zMC4wMzktOTguMjM0LTQwLjYxOC0xOS4zMDctNi4yMDMtMzkuMjcxLTEyLjYxOC01OC4yMy0yMC41NzItNS43ODctMi40MjktMTAuNzEyLTQuOTEyLTE1LjA1Ny03LjU5LTUuNDY0LTMuMzY4LTEzLjcyMS04LjQ1Ny0xNS4zMDItMTUuMzg4LTIuNTc5LTExLjMwOSAxNC4zMy0yMy45OTggMjUuNTItMzIuMzk1IDMuMjE2LTIuNDE0IDYuMTA2LTQuNTg1IDguNDczLTYuNjE3IDAgMCAxMy43ODkgMCAxMy43ODcuMDAyLTkuODkyIDcuNzg2LTM0LjE1NiAxOS43MzMtMzAuMTc0IDM1LjY1MyAxLjk5OCA3Ljk4NiAxMC42ODggMTIuMTkxIDE4LjAzNSAxNC45NjIgMTMuOTgxIDUuMjcyIDI4LjMyNCA5LjM2NyA0Mi40NTYgMTQuMTg2IDE1LjY0NCA1LjMzNSAzMC45MzMgMTAuNzgzIDQ1LjQ0MiAxNi4xOTUgOC45MTMgMy4zMjUgMTguNDcgNi45MzggMjcuOTU3IDEwLjgyOSAyMS4yMTQgOC43MDEgMzcuNjc5IDE3LjAyOCA1MS44MTYgMjYuMjA2IDEyLjA5NCA3Ljg1MiAyMi44MTMgMTYuNjExIDMxLjg2MSAyNi4wMzUgMTkuODc1IDIwLjcwMSAzMy42NDggNDkuMDg4IDM5LjgzMSA4Mi4wOTEgNy40NTEgMzkuNzcxIDMuOTM3IDg0LjUwNS0xMS4wNTggMTQwLjc4MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ0LjM2NSAxOTkuNDA3YzEuNDYxIDIuMDczIDMuNzggMy4xOCA2LjEzOCAzLjE4IDEuNDkyIDAgMy0uNDQ0IDQuMzEzLTEuMzcgMy4zODYtMi4zODYgNC4xOTYtNy4wNjUgMS44MTEtMTAuNDUxLTQuMTA5LTUuODMxLTguODExLTExLjI5My0xMy45NzMtMTYuMjMzLTIuOTkzLTIuODY1LTcuNzQxLTIuNzYtMTAuNjA0LjIzMi0yLjg2NCAyLjk5My0yLjc2MSA3Ljc0LjIzMiAxMC42MDQgNC40NjUgNC4yNzQgOC41MzEgOC45OTcgMTIuMDgzIDE0LjAzOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU1LjA4MyAxMjIuNTE4LS40NzMtLjI0NmMtNS43NzYtMi45OTMtMTEuNTQ1LTUuOTgzLTE3LjMzNC04Ljk0NS0zLjY4NC0xLjg4My04LjIwNi0uNDI2LTEwLjA5MyAzLjI2Mi0xLjg4NiAzLjY4OC0uNDI2IDguMjA2IDMuMjYyIDEwLjA5MyA1Ljc2NSAyLjk0OSAxMS41MTEgNS45MjcgMTcuMjYzIDguOTA4bC40NzMuMjQ1YzEuMTA0LjU3MiAyLjI4My44NDMgMy40NDUuODQzIDIuNzEyIDAgNS4zMzEtMS40NzYgNi42NjUtNC4wNSAxLjkwNi0zLjY3OC40Ny04LjIwNC0zLjIwOC0xMC4xMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc5LjY4MyA1Ny41ODRjMS43NDQtNS41MSA0LjcxOS0xMC4xOTYgOC4xNjMtMTIuODU2IDMuMjc4LTIuNTMyIDMuODgyLTcuMjQyIDEuMzUxLTEwLjUyLTIuNTM0LTMuMjc5LTcuMjQ0LTMuODgyLTEwLjUyMS0xLjM1MS01Ljg4OSA0LjU0OS0xMC42MSAxMS43MjQtMTMuMjkzIDIwLjIwMS0xLjI1IDMuOTQ5LjkzOCA4LjE2NCA0Ljg4NyA5LjQxNC43NTMuMjM4IDEuNTE1LjM1MiAyLjI2NS4zNTIgMy4xODItLjAwMSA2LjEzNi0yLjA0MyA3LjE0OC01LjI0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDEuMTM2IDk1LjkwM2MtNi43NTEtMy4zMTQtMTEuNDI0LTYuMjY4LTE1LjE1Mi05LjU3Ni0zLjA5OC0yLjc1LTcuODM4LTIuNDY2LTEwLjU4OC42MzEtMi43NSAzLjA5OC0yLjQ2NyA3LjgzOC42MzEgMTAuNTg4IDQuNzc5IDQuMjQyIDEwLjQ4NCA3Ljg4OCAxOC40OTkgMTEuODIyIDEuMDYzLjUyMiAyLjE5Ljc2OSAzLjMuNzY5IDIuNzcgMCA1LjQzNS0xLjU0MiA2LjczOC00LjE5NiAxLjgyNS0zLjcxOC4yOS04LjIxMi0zLjQyOC0xMC4wMzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3NS44NTUgNDQxLjI3NmMtMy41NTMtMi4xMjYtOC4xNTktLjk3Mi0xMC4yODcgMi41ODMtMy40OTQgNS44MzUtNi45NDkgMTEuNTc2LTEwLjMwNiAxNy4xMjItMi4xNDUgMy41NDMtMS4wMTEgOC4xNTUgMi41MzMgMTAuMjk5IDEuMjE1LjczNSAyLjU1NCAxLjA4NSAzLjg3NyAxLjA4NSAyLjUzNyAwIDUuMDE0LTEuMjg4IDYuNDIzLTMuNjE4IDMuMzY4LTUuNTY1IDYuODM3LTExLjMyNyAxMC4zNDMtMTcuMTgzIDIuMTI3LTMuNTU0Ljk3MS04LjE2LTIuNTgzLTEwLjI4OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzY0Ljg2NCAyMjQuMTUyYy00LjA2Ny43ODYtNi43MjcgNC43Mi01Ljk0IDguNzg3LjkxIDQuNzEzIDEuMzcyIDkuNDY4IDEuMzcyIDE0LjEzMiAwIC4zNTgtLjAwMy43MTYtLjAwOSAxLjA5LS4wMTUuOTc2LS4wNDQgMS45NDctLjA4NyAyLjkxNS0uMTg3IDQuMTM4IDMuMDE4IDcuNjQzIDcuMTU1IDcuODI5LjExNS4wMDUuMjI5LjAwOC4zNDMuMDA4IDMuOTg2IDAgNy4zMDYtMy4xNCA3LjQ4Ni03LjE2My4wNTEtMS4xMTcuMDg0LTIuMjM5LjEwMS0zLjM1LjAwOC0uNDQzLjAxMS0uODg3LjAxMS0xLjMzIDAtNS42MTctLjU1NC0xMS4zMy0xLjY0NS0xNi45NzgtLjc4Ny00LjA2Ny00LjcyOC02LjcyNS04Ljc4Ny01Ljk0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDYuMjU0IDM4OS40ODFjLTMuNTgyLTIuMDczLTguMTcyLS44NTMtMTAuMjQ5IDIuNzMxLTMuMjMyIDUuNTgyLTYuNjA2IDExLjM3LTEwLjA2MiAxNy4yNjEtMi4wOTYgMy41NzMtLjg5NyA4LjE2OCAyLjY3NiAxMC4yNjQgMS4xOTIuNjk5IDIuNDk4IDEuMDMxIDMuNzg3IDEuMDMxIDIuNTc0IDAgNS4wOC0xLjMyNiA2LjQ3Ny0zLjcwNyAzLjQ2OS01LjkxNSA2Ljg1Ni0xMS43MjggMTAuMTAzLTE3LjMzMiAyLjA3Ni0zLjU4My44NTItOC4xNzEtMi43MzItMTAuMjQ4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjEuOTI5IDI4My4zMTRjLTMuODgzLTEuNDQ2LTguMjAxLjUzLTkuNjQ2IDQuNDEzLTIuMDkxIDUuNjE5LTQuNTkyIDExLjQwNC03LjY0NiAxNy42ODYtMS44MTEgMy43MjUtLjI1OSA4LjIxMyAzLjQ2NiAxMC4wMjQgMS4wNTcuNTE0IDIuMTc0Ljc1NiAzLjI3My43NTYgMi43ODEgMCA1LjQ1NC0xLjU1MyA2Ljc1MS00LjIyMyAzLjI2Ni02LjcxOCA1Ljk1Mi0xMi45MzcgOC4yMTQtMTkuMDExIDEuNDQ1LTMuODgyLS41My04LjItNC40MTItOS42NDV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzNS45MiAzMzcuMjc1Yy0zLjU4NS0yLjA3NS04LjE3My0uODUyLTEwLjI0OSAyLjczMy0zLjEwOSA1LjM3Mi02LjYzNCAxMS40Ni05Ljk3NSAxNy41MTctMiAzLjYyNy0uNjgyIDguMTg5IDIuOTQ1IDEwLjE5IDEuMTQ4LjYzMyAyLjM5MS45MzQgMy42MTUuOTM0IDIuNjQ0IDAgNS4yMDctMS40MDEgNi41NzQtMy44NzkgMy4yNjYtNS45MiA2Ljc0OS0xMS45MzggOS44MjItMTcuMjQ3IDIuMDc3LTMuNTg1Ljg1Mi04LjE3Mi0yLjczMi0xMC4yNDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwOC4wMDEgMTUxLjQwMmMtMy4yMTgtMS44MzgtNi40NzQtMy43NjMtOS42MjEtNS42MjQtMi41MzEtMS40OTYtNS4wNTktMi45OS03LjYtNC40NjEtMy41ODYtMi4wNzUtOC4xNzQtLjg1Mi0xMC4yNDggMi43MzMtMi4wNzYgMy41ODQtLjg1MyA4LjE3MyAyLjczMiAxMC4yNDkgMi41MDEgMS40NDggNC45OSAyLjkxOSA3LjQ4MiA0LjM5MyAzLjE5NCAxLjg4OCA2LjQ5OCAzLjg0MSA5LjgxMyA1LjczNSAxLjE3NC42NyAyLjQ1Mi45ODkgMy43MTQuOTg5IDIuNjA0IDAgNS4xMzUtMS4zNTggNi41MTktMy43ODEgMi4wNTYtMy41OTcuODA2LTguMTc4LTIuNzkxLTEwLjIzM3oiLz4KICAgIDwvZz4KPC9zdmc+",zxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxODguNjMyIiB5PSIyNTYiIHdpZHRoPSIzNS45MyIgaGVpZ2h0PSIxNy45NjUiLz4KICAgICAgICA8cGF0aCBkPSJNNDQxLjkxNyw0NzEuNTc5bDE2LjAzOS04OC4yMTljMC40ODItMi42MjMtMC4yMjgtNS4zMTYtMS45MzktNy4zNmMtMS43MDItMi4wNDQtNC4yMjgtMy4yMjgtNi44OTUtMy4yMjhoLTg5LjgyNQoJCQljLTIuNjY3LDAtNS4xOTMsMS4xODQtNi44OTUsMy4yMjhjLTEuNzExLDIuMDQ0LTIuNDIxLDQuNzM3LTEuOTM5LDcuMzZsMTYuMDM5LDg4LjIxOUgyNjAuNDkxVjMxLjQzOQoJCQljMC00Ljk2NS00LjAxOC04Ljk4Mi04Ljk4Mi04Ljk4Mkg1My44OTVjLTQuOTY1LDAtOC45ODIsNC4wMTgtOC45ODIsOC45ODJ2NDQwLjE0SDB2MTcuOTY1aDUzLjg5NWgxOTcuNjE0aDEyNS43NTRoNTMuODk1SDUxMgoJCQl2LTE3Ljk2NUg0NDEuOTE3eiBNMjQyLjUyNiw0NzEuNTc5SDYyLjg3N1Y0MC40MjFoMTc5LjY0OVY0NzEuNTc5eiBNNDIzLjY1OCw0NzEuNTc5aC0zOC44OTVsLTE0LjcwMi04MC44NDJoNjguMjk4CgkJCUw0MjMuNjU4LDQ3MS41Nzl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OC4xMDUsNzYuMzUxYy0yNy40NTYsMC00NC40ODksMTIuNDk2LTUzLjg5NSwyNS4xOTVjLTkuNDA4LTEyLjY5OS0yNi40MzktMjUuMTk1LTUzLjg5NS0yNS4xOTUKCQkJYy00Ljk2NSwwLTguOTgyLDQuMDE4LTguOTgyLDguOTgyYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJjMzMuNzU0LDAsNDMuMjcyLDIzLjMwNyw0NC45MTIsMjguMjQ2djIzMi4yNDYKCQkJYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJzOC45ODItNC4wMTgsOC45ODItOC45ODJWMTIyLjU3MmMxLjU0NC00LjY4LDEwLjk4Ny0yOC4yNTcsNDQuOTEyLTI4LjI1NwoJCQljNC45NjUsMCw4Ljk4Mi00LjAxOCw4Ljk4Mi04Ljk4MkM0NjcuMDg4LDgwLjM2OCw0NjMuMDcsNzYuMzUxLDQ1OC4xMDUsNzYuMzUxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDExOS4yNjNjLTE1LjU1My0xNS41NTMtMzYuODQyLTIyLjM3Ny01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwxNTYuMTU4LDM4MS4zOTUsMTM0LjgzMywzNjUuODMzLDExOS4yNjN6IE0zNjcuMDA5LDE2NC45MDMKCQkJYy0xMS4xNTgsMC40MzktMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NzksMjMuNTg4LDQuNTM1LDMyLjkzOSwxMy44NzcKCQkJQzM2Mi40NzQsMTQxLjMxNiwzNjcuNTcsMTUzLjcwMiwzNjcuMDA5LDE2NC45MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2NS44MzMsMjAwLjEwNWMtMTUuNTUzLTE1LjU1My0zNi44NDItMjIuMzY5LTU1LjY2Ny0xNy43OThjLTMuMjU0LDAuNzk4LTUuNzk4LDMuMzQyLTYuNTk2LDYuNTk2CgkJCWMtNC41NzksMTguNzcyLDIuMjM3LDQwLjA5NywxNy43OTgsNTUuNjY3YzEyLjM2LDEyLjM2LDI4LjM2LDE5LjIwMiw0My44MTYsMTkuMjAyYzQuMDA5LDAsNy45ODItMC40NjUsMTEuODUxLTEuNDA0CgkJCWMzLjI1NS0wLjc5OCw1Ljc5OC0zLjM0Miw2LjU5Ni02LjU5NkMzODguMjExLDIzNywzODEuMzk1LDIxNS42NzYsMzY1LjgzMywyMDAuMTA1eiBNMzY3LjAwOSwyNDUuNzQ2CgkJCWMtMTEuMTU4LDAuNDkxLTIzLjU5Ni00LjU0NC0zMi45MzktMTMuODc3Yy05LjM0Mi05LjM1MS0xNC40MzktMjEuNzM3LTEzLjg3Ny0zMi45MzljMTEuMTIzLTAuNTM1LDIzLjU4OCw0LjUzNSwzMi45MzksMTMuODc3CgkJCUMzNjIuNDc0LDIyMi4xNTgsMzY3LjU3LDIzNC41NDQsMzY3LjAwOSwyNDUuNzQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDI4MC45NDdjLTE1LjU1My0xNS41NjEtMzYuODQyLTIyLjM2OS01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwzMTcuODQyLDM4MS4zOTUsMjk2LjUxOCwzNjUuODMzLDI4MC45NDd6IE0zNjcuMDA5LDMyNi41ODgKCQkJYy0xMS4xNTgsMC40NDctMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NywyMy41ODgsNC41MzUsMzIuOTM5LDEzLjg3NwoJCQlDMzYyLjQ3NCwzMDMsMzY3LjU3LDMxNS4zODYsMzY3LjAwOSwzMjYuNTg4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDkuMzg2LDEwOC4wNjFjLTAuNzk4LTMuMjU0LTMuMzQyLTUuNzk4LTYuNTk2LTYuNTk2Yy0xOC43ODktNC41Ny00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjgsMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDE0OC4xNTgsNTEzLjk2NSwxMjYuODMzLDUwOS4zODYsMTA4LjA2MXogTTQ3OC44ODYsMTUxLjAyNgoJCQljLTkuMzUxLDkuMzQyLTIxLjg3NywxNC4zMjUtMzIuOTM5LDEzLjg3N2MtMC41NjEtMTEuMjAyLDQuNTM1LTIzLjU4OCwxMy44NzctMzIuOTM5YzkuMzUxLTkuMzQyLDIxLjc5OC0xNC40NDcsMzIuOTM5LTEzLjg3NwoJCQlDNDkzLjMyNSwxMjkuMjg5LDQ4OC4yMjgsMTQxLjY3NSw0NzguODg2LDE1MS4wMjZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwOS4zODYsMTg4LjkwM2MtMC43OTgtMy4yNTQtMy4zNDItNS43OTgtNi41OTYtNi41OTZjLTE4Ljc4OS00LjU3OS00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjksMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDIyOSw1MTMuOTY1LDIwNy42NzYsNTA5LjM4NiwxODguOTAzeiBNNDc4Ljg4NiwyMzEuODY4CgkJCWMtOS4zNTEsOS4zMzMtMjEuODc3LDE0LjM2OC0zMi45MzksMTMuODc3Yy0wLjU2MS0xMS4yMDIsNC41MzUtMjMuNTg4LDEzLjg3Ny0zMi45MzljOS4zNTEtOS4zNDIsMjEuNzk4LTE0LjQwMywzMi45MzktMTMuODc3CgkJCUM0OTMuMzI1LDIxMC4xMzIsNDg4LjIyOCwyMjIuNTE3LDQ3OC44ODYsMjMxLjg2OHoiLz4KICAgICAgICA8cGF0aCBkPSJNNTA5LjM4NiwyNjkuNzQ2Yy0wLjc5OC0zLjI1NC0zLjM0Mi01Ljc5OC02LjU5Ni02LjU5NmMtMTguNzg5LTQuNTc5LTQwLjEwNSwyLjIzNy01NS42NjcsMTcuNzk4CgkJCWMtMTUuNTYxLDE1LjU3LTIyLjM3NywzNi44OTUtMTcuNzk4LDU1LjY2N2MwLjc5OCwzLjI1NSwzLjM0Miw1Ljc5OCw2LjU5Niw2LjU5NmMzLjg2OSwwLjkzOSw3LjgzMywxLjQwNCwxMS44NDIsMS40MDQKCQkJYzE1LjQ2NSwwLDMxLjQ2NS02Ljg0Miw0My44MjUtMTkuMjAyQzUwNy4xNDksMzA5Ljg0Miw1MTMuOTY1LDI4OC41MTgsNTA5LjM4NiwyNjkuNzQ2eiBNNDc4Ljg4NiwzMTIuNzEKCQkJYy05LjM1MSw5LjM0Mi0yMS44NzcsMTQuMzMzLTMyLjkzOSwxMy44NzdjLTAuNTYxLTExLjIwMiw0LjUzNS0yMy41ODgsMTMuODc3LTMyLjkzOWM5LjM1MS05LjM0MiwyMS43OTgtMTQuNDQ3LDMyLjkzOS0xMy44NzcKCQkJQzQ5My4zMjUsMjkwLjk3NCw0ODguMjI4LDMwMy4zNiw0NzguODg2LDMxMi43MXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",wxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDIzMC41NjZoMjMyLjEzNWMyMi40MDUgMCA0MC42MzQtMTguMjI4IDQwLjYzNC00MC42MzN2LTE0OS4zYy0uMDAxLTIyLjQwNS0xOC4yMjktNDAuNjMzLTQwLjYzNS00MC42MzNoLTIzMi4xMzRjLTIyLjQwNSAwLTQwLjYzNCAxOC4yMjgtNDAuNjM0IDQwLjYzM3YxNDkuMjk5YzAgMjIuNDA2IDE4LjIyOCA0MC42MzQgNDAuNjM0IDQwLjYzNHptLTI1LjYzNC0xODkuOTMzYzAtMTQuMTM0IDExLjQ5OS0yNS42MzMgMjUuNjM0LTI1LjYzM2gyMzIuMTM1YzE0LjEzNSAwIDI1LjYzNCAxMS40OTkgMjUuNjM0IDI1LjYzM3YxNDkuMjk5YzAgMTQuMTM0LTExLjQ5OSAyNS42MzMtMjUuNjM0IDI1LjYzM2gtMjMyLjEzNWMtMTQuMTM1IDAtMjUuNjM0LTExLjQ5OS0yNS42MzQtMjUuNjMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDUuMTEgMTY0LjgxM2MxMC40MjMgMi4wODEgMTguODUgMTAuMTggMjAuOTcgMjAuMTU3IDEuNTM2IDcuMjIyIDguMDIyIDEyLjQ2MyAxNS40MjIgMTIuNDYzaDE0OC45NDdjNy40OCAwIDEzLjk4LTUuMzEgMTUuNDU1LTEyLjYyNCAyLjExNS0xMC40ODIgMTAuNTc2LTE4LjkzNiAyMS4wNTItMjEuMDM4IDcuMzA4LTEuNDY2IDEyLjYxMS03Ljk2NSAxMi42MTEtMTUuNDU0di02Ni4wNjdjMC03LjQ4NC01LjMxMS0xMy45ODUtMTIuNjI3LTE1LjQ1Ny0xMC40NzItMi4xMDctMTguOTI1LTEwLjU2My0yMS4wMzYtMjEuMDQxLTEuNDc1LTcuMzEyLTcuOTY3LTEyLjYxOC0xNS40MzktMTIuNjE4aC0xNDguOTcxYy03LjM5NSAwLTEzLjg3OCA1LjI0Mi0xNS40MTQgMTIuNDY1LTIuMTE4IDkuOTY5LTEwLjU0IDE4LjA2Ny0yMC45NTUgMjAuMTUzLTcuMzU1IDEuNDcyLTEyLjY5MiA3Ljk3OS0xMi42OTIgMTUuNDd2NjguMTI1YzAgNy40OTQgNS4zMzEgMTMuOTk5IDEyLjY3NyAxNS40NjZ6bTIuMzIzLTgzLjU5MmMwLS4zNzQuMjYyLS42ODcuNjM4LS43NjIgMTYuMjAzLTMuMjQ0IDI5LjMzNy0xNiAzMi42ODItMzEuNzQxLjA3My0uMzQ0LjM3OC0uNTg1Ljc0Mi0uNTg1aDE0OC45NzJjLjM1NyAwIC42NjYuMjQ1LjczMy41ODMgMy4yOSAxNi4zMjUgMTYuNDY0IDI5LjQ5OSAzMi43ODIgMzIuNzgyLjM0LjA2OC41ODYuMzg1LjU4Ni43NTJ2NjYuMDY3YzAgLjM2MS0uMjQxLjY4My0uNTYxLjc0Ny0xNi4zMjYgMy4yNzQtMjkuNTEgMTYuNDQ3LTMyLjgwNiAzMi43NzgtLjA2OS4zNDItLjM4Ni41OTEtLjc1Mi41OTFoLTE0OC45NDdjLS4zNjIgMC0uNjc4LS4yNDYtLjc1LS41ODItMy4zNDctMTUuNzUyLTE2LjQ5LTI4LjUxMS0zMi43MDUtMzEuNzQ4LS4zNTctLjA3MS0uNjE0LS4zODktLjYxNC0uNzU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNzIuMDY3IDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU4IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDE5OS41MDNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXYtNC4xNDJjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2NC4xNDJjMCA0LjE0MyAzLjM1NyA3LjUgNy41IDcuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcyLjA2NyAxODAuMzYyYy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQuMTQyYzAgNC4xNDIgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQuMTQyYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4OS43MzMgMTY0LjFoNDkuN2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNS42MzNoMTcuMzVjMi42IDAgNS4wMTQtMS4zNDYgNi4zOC0zLjU1N3MxLjQ5MS00Ljk3Mi4zMjgtNy4yOTdsLTI0Ljg1LTQ5LjdjLTEuMjcxLTIuNTQxLTMuODY3LTQuMTQ2LTYuNzA4LTQuMTQ2cy01LjQzOCAxLjYwNS02LjcwOCA0LjE0NmwtMTQuNDkzIDI4Ljk4N2gtMjguNDk4Yy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQ5LjdjLS4wMDEgNC4xNDIgMy4zNTcgNy41IDcuNDk5IDcuNXptNDkuNzAxLTczLjU2MyAxMi43MTUgMjUuNDNoLTI1LjQzem0tNDIuMjAxIDIzLjg2M2gxMy40OThsLTIuODU2IDUuNzEzYy0xLjE2MyAyLjMyNS0xLjAzOCA1LjA4Ni4zMjggNy4yOTdzMy43OCAzLjU1NyA2LjM4IDMuNTU3aDE3LjM1MXYxOC4xMzNoLTM0Ljd2LTM0Ljd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMy45ODMgMTQ3LjUzM2MxNy44MzggMCAzMi4zNS0xNC41MTIgMzIuMzUtMzIuMzUgMC0xNy44MzctMTQuNTEyLTMyLjM1LTMyLjM1LTMyLjM1cy0zMi4zNTEgMTQuNTEyLTMyLjM1MSAzMi4zNWMuMDAxIDE3LjgzOCAxNC41MTQgMzIuMzUgMzIuMzUxIDMyLjM1em0wLTQ5LjY5OWM5LjU2NiAwIDE3LjM1IDcuNzgzIDE3LjM1IDE3LjM1cy03Ljc4MyAxNy4zNS0xNy4zNSAxNy4zNS0xNy4zNTEtNy43ODMtMTcuMzUxLTE3LjM1Yy4wMDEtOS41NjcgNy43ODQtMTcuMzUgMTcuMzUxLTE3LjM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzAuODY3IDI0OC41Yy04LjU0NyAwLTE1LjUgNi45NTMtMTUuNSAxNS41djE3LjEzM2MwIDguNTQ3IDYuOTUzIDE1LjUgMTUuNSAxNS41aDUwLjI2NmM4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptNTAuNzY2IDE1LjV2MTcuMTMzYzAgLjI3Ni0uMjI1LjUtLjUuNWgtNTAuMjY2Yy0uMjc1IDAtLjUtLjIyNC0uNS0uNXYtMTcuMTMzYzAtLjI3Ni4yMjUtLjUuNS0uNWg1MC4yNjZjLjI3NSAwIC41LjIyNC41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ5Ni41IDQ2My44NjdoLTE3LjY3MmMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtMTM2LjUwNWM5LjYwOC0zLjE2IDE2LjU2Ny0xMi4yMTIgMTYuNTY3LTIyLjg2NHYtOC4yODRjMC04LjcwMy03LjA4MS0xNS43ODMtMTUuNzg0LTE1Ljc4M2gtMi41NjJjMS4xNDMtMi44IDEuNzc5LTUuODYgMS43NzktOS4wNjcgMC0xMy4yNy0xMC43OTYtMjQuMDY2LTI0LjA2Ni0yNC4wNjZzLTI0LjA2NiAxMC43OTYtMjQuMDY2IDI0LjA2NmMwIDMuMjA3LjYzNSA2LjI2NiAxLjc3OSA5LjA2N2gtMi41NjNjLTguNzAzIDAtMTUuNzgzIDcuMDgxLTE1Ljc4MyAxNS43ODN2OC4yODRjMCAxMC41MTggNi43ODYgMTkuNDc2IDE2LjIwNyAyMi43NDEtMTguNjE2IDE4LjQzOC00MC4wMzcgMzMuMzUxLTYzLjczNCA0NC4zMzctMy43NTggMS43NDItNS4zOTMgNi4yMDEtMy42NSA5Ljk1OCAxLjI3IDIuNzM3IDMuOTc4IDQuMzQ4IDYuODEgNC4zNDggMS4wNTYgMCAyLjEyOS0uMjI0IDMuMTQ5LS42OTggMjEuMDU4LTkuNzYyIDQwLjQyNy0yMi40MzIgNTcuNzg2LTM3Ljc1NHYyMy43MTJjLTQ1LjQxIDM1LjQ5NS0xMDAuMDE0IDU0LjI0Ny0xNTguMTY3IDU0LjI0Ny01OC4xNDggMC0xMTIuNzU2LTE4Ljc1My0xNTguMTY3LTU0LjI0OXYtMjMuNjljNDMuNzY0IDM4LjY5IDk5LjI4IDU5LjgwNSAxNTguMTY3IDU5LjgwNSAyMy41OTIgMCA0Ni45MTMtMy40NDEgNjkuMzE0LTEwLjIyOCAzLjk2NC0xLjIwMSA2LjIwNC01LjM4OCA1LjAwMy05LjM1My0xLjIwMS0zLjk2NC01LjM4OS02LjIwNy05LjM1My01LjAwMy0yMC45ODkgNi4zNTktNDIuODQ3IDkuNTgzLTY0Ljk2NCA5LjU4My01OS41NzIgMC0xMTUuNDYyLTIzLjA3LTE1Ny44MDItNjUuMDE4IDkuNDE5LTMuMjY3IDE2LjIwMi0xMi4yMjQgMTYuMjAyLTIyLjc0di04LjI4NGMwLTguNzAzLTcuMDgtMTUuNzgzLTE1Ljc4My0xNS43ODNoLTIuNTYzYzEuMTQzLTIuOCAxLjc3OS01Ljg2IDEuNzc5LTkuMDY3IDAtMTMuMjctMTAuNzk2LTI0LjA2Ni0yNC4wNjYtMjQuMDY2cy0yNC4wNyAxMC43OTgtMjQuMDcgMjQuMDY4YzAgMy4yMDcuNjM2IDYuMjY2IDEuNzc5IDkuMDY3aC0yLjU2MmMtOC43MDMgMC0xNS43ODQgNy4wODEtMTUuNzg0IDE1Ljc4M3Y4LjI4NGMwIDEwLjY1MiA2Ljk1OSAxOS43MDQgMTYuNTY3IDIyLjg2NHYxMzYuNTA2Yy05LjYwOCAzLjE2LTE2LjU2NyAxMi4yMTItMTYuNTY3IDIyLjg2NHY4LjI4NGMwIC4yNjQuMDI3LjUyMi4wNC43ODNoLTE3LjY3M2MtOC41NDcgMC0xNS41IDYuOTUzLTE1LjUgMTUuNXYxNy4xMzJjMCA4LjU0NyA2Ljk1MyAxNS41IDE1LjUgMTUuNWg1OS44MzNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTU5LjgzM2MtLjI3NSAwLS41LS4yMjQtLjUtLjV2LTE3LjEzM2MwLS4yNzYuMjI1LS41LjUtLjVoNDgxYy4yNzUgMCAuNS4yMjQuNS41djE3LjEzM2MwIC4yNzYtLjIyNS41LS41LjVoLTM5MS4xNjdjLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMzkxLjE2N2M4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptLTY3LjMzMy0xNjQuNTc3Yy4xNjEtLjg3OC4xNTgtMS43NzguMDA1LTIuNjU2aDE4LjEyOHYxOC4xMzNoLTE4LjEzM3ptMCA0My45MDRjLjAxMi0uMjM5LjAxMi0uNDc5IDAtLjcxOXYtMTIuNzA5aDE4LjEzM3YxMDAuOTY3aC0xOC4xMzN6bTAtMTAzLjc2MWMwLTQuOTk5IDQuMDY3LTkuMDY2IDkuMDY2LTkuMDY2czkuMDY2IDQuMDY3IDkuMDY2IDkuMDY2LTQuMDY3IDkuMDY3LTkuMDY2IDkuMDY3LTkuMDY2LTQuMDY3LTkuMDY2LTkuMDY3em0tMTYuNTY3IDI0Ljg1YzAtLjQzMi4zNTItLjc4My43ODMtLjc4M2g0OS43Yy40MzMgMCAuNzg0LjM1Mi43ODQuNzgzdjguMjg0YzAgNC45OTktNC4wNjcgOS4wNjYtOS4wNjcgOS4wNjZoLTMzLjEzM2MtNSAwLTkuMDY3LTQuMDY3LTkuMDY3LTkuMDY2em0tMTU2LjYgMTQ0LjE3NmM1Ny42NDggMCAxMTIuMDA3LTE3LjQyMiAxNTguMTY3LTUwLjUxNHY3My45OTFjLTkuNjA4IDMuMTYtMTYuNTY3IDEyLjIxMi0xNi41NjcgMjIuODY0djguMjg0YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMjgzLjI3OWMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtNzMuOTkyYzQ2LjE2MSAzMy4wOTIgMTAwLjUyMyA1MC41MTUgMTU4LjE2NiA1MC41MTV6bS0xNzMuMTY3LTExMC43ODljLS4wMTIuMjQ3LS4wMTIuNDk1IDAgLjc0MnYxNi4zNTVoLTE4LjEzM3YtMTguMTMzaDE4LjEzM3ptLTE4LjEzMyAzMi4wOTdoMTguMTMzdjEwMC45NjdoLTE4LjEzM3ptMC05MC4zMzRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ni05LjA2NnM5LjA2NiA0LjA2NyA5LjA2NiA5LjA2Ni00LjA2NyA5LjA2Ny05LjA2NiA5LjA2Ny05LjA2Ni00LjA2Ny05LjA2Ni05LjA2N3ptLTE2LjU2NyAyNC44NWMwLS40MzIuMzUyLS43ODMuNzg0LS43ODNoNDkuN2MuNDMyIDAgLjc4My4zNTIuNzgzLjc4M3Y4LjI4NGMwIDQuOTk5LTQuMDY3IDkuMDY2LTkuMDY3IDkuMDY2aC0zMy4xMzNjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2NnptLjc4NCAxOTkuNTg0Yy0uNDMzIDAtLjc4NC0uMzUyLS43ODQtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzgzLjc4M3ptMzY0LjQ2NiAwYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzg0Ljc4M3oiLz4KICAgIDwvZz4KPC9zdmc+",Cxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDc0LjYwOCw4MC40MzlsLTIzMi04MGMtMS42OS0wLjU4My0zLjUyNi0wLjU4My01LjIxNiwwbC0yMzIsODBDMi4xNjYsODEuNTUxLDAuMDAxLDg0LjU4NywwLDg3Ljk5OXYzODQKCQkJYzAsNC40MTgsMy41ODIsOCw4LDhoNDBjNC40MTgsMCw4LTMuNTgyLDgtOHYtMjQ4aDM2OHYyNDhjMCw0LjQxOCwzLjU4Miw4LDgsOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04di0zODQKCQkJQzQ3OS45OTksODQuNTg3LDQ3Ny44MzQsODEuNTUxLDQ3NC42MDgsODAuNDM5eiBNNDAsMjE1Ljk5OXYyNDhIMTZ2LTMwNGgyNFYyMTUuOTk5eiBNNDI0LDIwNy45OTlINTZ2LTE2aDM2OFYyMDcuOTk5egoJCQkgTTQyNCwxNzUuOTk5SDU2di0xNmgzNjhWMTc1Ljk5OXogTTQ2NCw0NjMuOTk5aC0yNHYtMzA0aDI0VjQ2My45OTl6IE00NjQsMTQzLjk5OUgxNlY5My43MDNsMjI0LTc3LjI0bDIyNCw3Ny4yNFYxNDMuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zOTUuNTc2LDM0NC43OTlsLTI5LjYtMTQuOGwtMjYuNC01Mi44Yy00LjA2MS04LjEyNS0xMi4zODEtMTMuMjQyLTIxLjQ2NC0xMy4ySDE2MS44ODgKCQkJYy05LjA5OC0wLjAzLTE3LjQyMSw1LjExNC0yMS40NjQsMTMuMjY0bC0yNi40LDUyLjhsLTI5LjYsMTQuOGMtMi43MDUsMS4zNTItNC40MTYsNC4xMTItNC40MjQsNy4xMzZ2MTEyYzAsOC44MzcsNy4xNjMsMTYsMTYsMTYKCQkJaDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTI0aDE5MnYyNGMwLDguODM3LDcuMTYzLDE2LDE2LDE2aDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTExMgoJCQlDNDAwLjAxNywzNDguOTUyLDM5OC4zMDEsMzQ2LjE2LDM5NS41NzYsMzQ0Ljc5OXogTTE1NC43MzYsMjg0LjQyM2MxLjM0NS0yLjcxOCw0LjExOS00LjQzNCw3LjE1Mi00LjQyNGgxNTYuMjI0CgkJCWMzLjAzMy0wLjAxLDUuODA3LDEuNzA2LDcuMTUyLDQuNDI0bDIxLjc5Miw0My41NzZIMTMyLjk0NEwxNTQuNzM2LDI4NC40MjN6IE0xMjgsNDYzLjk5OUg5NnYtMjRoMzJWNDYzLjk5OXogTTM4NCw0NjMuOTk5aC0zMgoJCQl2LTI0aDMyVjQ2My45OTl6IE0zODQsNDIzLjk5OUgxMzZIOTZ2LTY3LjA1NmwyNS44ODgtMTIuOTQ0aDIzNi4yMjRMMzg0LDM1Ni45NDNWNDIzLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzE2OCwzNjcuMTYyLDE2MC44MzcsMzU5Ljk5OSwxNTIsMzU5Ljk5OXogTTE1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzM2OCwzNjcuMTYyLDM2MC44MzcsMzU5Ljk5OSwzNTIsMzU5Ljk5OXogTTM1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjgwLDM1OS45OTloLTgwYy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoODBjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzI5NiwzNjcuMTYyLDI4OC44MzcsMzU5Ljk5OSwyODAsMzU5Ljk5OXogTTI4MCwzOTEuOTk5aC04MHYtMTZoODBWMzkxLjk5OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Ixe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMS45NzggNTExLjk3OCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjIzLjI0OGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0xNi42OTZjMC0xMi41NTcgMTAuMjE2LTIyLjc3MyAyMi43NzItMjIuNzczaDE1LjM5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTUuMzkyYy0yMC44MjggMC0zNy43NzIgMTYuOTQ1LTM3Ljc3MiAzNy43NzN2MTYuNjk2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjgxLjE4N2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNC43NDZjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2MjQuNzQ2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE1Ny44NTYgMjA4Ljg2djM2LjMzOWMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0zNi4zMzljMC0zLjI5NCAyLjc5Ni02LjA3OCA2LjEwNS02LjA3OGgxMy4yMzdjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTEzLjIzN2MtMTEuNjM3IDAtMjEuMTA1IDkuNDU1LTIxLjEwNSAyMS4wNzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyOC4xODEgMjExLjQzYzIuOTQyIDEuOTY0IDYuMzgyIDIuOTYzIDkuODg5IDIuOTYzIDIuNDQyIDAgNC45MTktLjQ4NSA3LjI4Mi0xLjQ2N2wyNC43Ni0xMC4yNTUgNjMuNTk1IDQuOTA2IDQuNjYxIDE2LjEyMWMxLjYxOSA1LjYwMSA1LjU5NiAxMC4wNzQgMTEuMTk3IDEyLjU5NSAzLjE0OCAxLjQxNyA2LjU5MSAyLjEyNCAxMC4wNDEgMi4xMjQgMy42NTMgMCA3LjMxNi0uNzkzIDEwLjY0NC0yLjM3NGwxMTcuMjkxLTU1LjcyOWM2LjQ2OS0zLjA3NCAxMS40MjUtOS4wMSAxMy4yNTgtMTUuODggMS41ODItNS45MzIuNjI5LTExLjgzNS0yLjY4NC0xNi42MTlsLTIzLjYzOS0zNC4xNjRjMTcuNzYzLTIwLjQ2MiAyMS45NDEtNDkuNTk1IDEwLjEyNy03NC40NjEtMTYuMjcyLTM0LjIwMS01Ny4zMzItNDguNzk3LTkxLjUxLTMyLjU1LTI2LjE4MSAxMi40MzUtNDEuNTkyIDQwLjAwOC0zOC45MSA2OC40NThsLTMzLjc2NiAxNi4wNDJjLS4wMDEgMC0uMDAxIDAtLjAwMSAwLTEwLjcyNSA1LjA5Ni0xNS4zOTEgMTcuMjgxLTExLjYxMSAzMC4zMTVsOC43NDUgMzAuMjQyaC00Ny4xNTdsLTI1LjA1NS0xMC4zNzdjLTUuNzYzLTIuMzcxLTEyLjE3OS0xLjc5My0xNy4xNjcgMS41NDYtNC43MTMgMy4xNTctNy40MTYgOC4yMjEtNy40MTYgMTMuODkzdjQwLjc2MWMtLjAwMiA1LjY5MSAyLjcwNiAxMC43NiA3LjQyNiAxMy45MXptMjU3LjYtNTUuMDc3Yy43OSAxLjE0Ljk2NiAyLjU1OC41MjQgNC4yMTQtLjY5MiAyLjU5My0yLjczNCA1LjAyNi01LjIwMiA2LjE5OWwtMTE3LjI5MSA1NS43MjhjLTIuNDcgMS4xNzMtNS42NDYgMS4yMjEtOC4wOTEuMTItMS41NjUtLjcwNC0yLjU1Ni0xLjc0MS0yLjk0My0zLjA4M2wtMjIuMzc2LTc3LjM4NSAxMDkuNTQyLTUyLjA0em0tODYuMjUyLTEzNi4xNjJjLjAwMSAwIC4wMDItLjAwMS4wMDMtLjAwMSAyNi43MTYtMTIuNzAzIDU4LjgwNi0xLjI4OCA3MS41MjQgMjUuNDQyIDguNjY0IDE4LjIzNyA2LjMzIDM5LjQxNy01LjQ2MyA1NS4xNzNsLS4wMjQtLjAyNi0yOC4wMDItNDAuNDdjLTcuNzI5LTExLjE2LTIwLjEzNS0xNS4yNDEtMzAuODY4LTEwLjE1N2wtMzcuODAzIDE3Ljk1OC0uMDEyLjAwM2MuMjE3LTIwLjE5IDExLjg5OS0zOS4wMTkgMzAuNjQ1LTQ3LjkyMnptLTcyLjY3NiA4NC40OTggODYuMjczLTQwLjk4NGM0Ljc1LTIuMjUxIDkuNDkyIDEuMzY2IDEyLjEwNyA1LjE0M2w2LjA2MiA4Ljc2LTEwNS4xMTUgNDkuOTM3LTIuOTY3LTEwLjI2MmMtMS4yNzgtNC40MDQtMS4wOS0xMC4zNDYgMy42NC0xMi41OTR6bS01MC40NTMgNjIuMDA5aDQ1LjQ3OGw3LjM2NSAyNS40OS01Mi44NDMtNC4wNzd6bS00MC42NDctOS45MzhjMC0uMzk1LjA3OS0uOTcyLjc2NS0xLjQzMS4yMDQtLjEzNy43NzEtLjQ1NSAxLjYxMy0uNDU1LjQyNyAwIC45MjQuMDgyIDEuNDguMzExbDIxLjc4OCA5LjAyNHYyNS44MzRsLTIxLjc5NyA5LjAyN2MtMS42NjUuNjk0LTIuNzkyLjA4NS0zLjA5Ni0uMTE4LS42NjgtLjQ0Ni0uNzU0LS45OTktLjc1NC0xLjQzMXYtNDAuNzYxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTcuOTYgNDY0LjQ3OWMtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOC03LjY3OC0yLjkyOC0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xOTAuOTIgNDY4LjI3N2MtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyNy03LjY3OC0yLjkyNy0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDcuOTU3IDQ2NC40NzljLTIuOTI5IDIuOTI5LTIuOTI5IDcuNjc4IDAgMTAuNjA2bC4wMjguMDI4YzEuNDYyIDEuNDYxIDMuMzcxIDIuMTkgNS4yODMgMi4xOSAxLjkyIDAgMy44NDItLjczNiA1LjMxLTIuMjA0IDIuOTI5LTIuOTI5IDIuOTE1LTcuNjkyLS4wMTQtMTAuNjIxLTIuOTMtMi45MjgtNy42NzgtMi45MjgtMTAuNjA3LjAwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjIyMiA0ODEuMTAyYzEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOS03LjY3OC0yLjkyOS0xMC42MDcgMHMtMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjIgMy4zNzEgMi4xOTEgNS4yODMgMi4xOTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MC43ODQgNDA5LjM4NWMyMi43MTMtMi4yNzggNDEuMTkxLTIyLjc5MiA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcwOS0xLjU0OS03LjIzNC00LjI0OC05LjY3MS0yLjY5Mi0yLjQzMS02LjM1Mi0zLjYwOS0xMC4wMS0zLjIzM2wtMjguODEgMi44OTJjLTkuOTIzIDEuMDEtMTkuMDM3IDUuNTAyLTI2LjE1MSAxMi4xNTJsLjA2My01LjE1NGMwLTIyLjkwMy0xOC4zMzctNDMuMjY2LTQxLjA1NC00NS41NzhsLTI4Ljc4My0yLjg5Yy0zLjY4Ny0uMzc5LTcuMzM0LjgwMi0xMC4wMjUgMy4yMzItMi42OTkgMi40MzgtNC4yNDggNS45NjItNC4yNDggOS42NzF2MjguNzQzYzAgMjIuOTAzIDE4LjQ3MyA0My40MTcgNDEuMTg1IDQ1LjcyOWwyNy44NjMgMi44MTR2NTMuOTk2aC01NC41MTljLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTE5LjMwNGMyLjQ0NCAwIDQuNDM0IDEuOTc2IDQuNDM0IDQuNDA1djQ1LjUyM2MwIDIuNDAzLTIuMDMgNC40MzQtNC40MzQgNC40MzRoLTQ3My4xMzRjLTIuMzg4IDAtNC40MDUtMi4wMy00LjQwNS00LjQzNHYtNDUuNTIzYzAtMi4zODggMi4wMTgtNC40MDUgNC40MDUtNC40MDVoMzE5LjE5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNzUuMTI2di0xNS4zOTdsMjguMDU3LTIuODMzYzIyLjcxMy0yLjI3OCA0MS4xOS0yMi43OTIgNDEuMTktNDUuNzI5di0yOC43NDNjMC0zLjcwNS0xLjU1Mi03LjIyOS00LjI1Ny05LjY2OS0yLjctMi40MzUtNi4zNTktMy42MTItMTAuMDAxLTMuMjM1bC0yOC44MSAyLjg5MmMtOS45MzQgMS4wMTEtMTkuMDU4IDUuNTA3LTI2LjE4IDEyLjE2MyAwIDAgLjE5OS00LjQyOS4xOTktNS4wMTMgMC0yMi45MDctMTguNDc0LTQzLjQyLTQxLjE5LTQ1LjcyOWwtMjguNzc2LTIuODljLTMuNjY2LS4zNzUtNy4zMDguNzk2LTkuOTk3IDMuMjIyLTIuNzA0IDIuNDM5LTQuMjU1IDUuOTY3LTQuMjU1IDkuNjgxdjI4Ljc0M2MwIDIyLjkwMyAxOC40NzQgNDMuNDE3IDQxLjE4NiA0NS43MjlsMjcuODM0IDIuODEzdjUzLjk5NmgtMTY0LjI1M3YtMTUuMzk4bDI4LjAyNi0yLjgzMmMyMi43MTMtMi4yNzQgNDEuMTkxLTIyLjc4OSA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcxMy0xLjU1MS03LjI0Mi00LjI1NS05LjY4MS0yLjY4OS0yLjQyNi02LjMzMy0zLjYwNC05Ljk3NS0zLjIyNGwtMjguODEgMi44OTJjLTkuOTM0IDEuMDExLTE5LjA1OCA1LjUwNy0yNi4xNzkgMTIuMTYyIDAgMCAuMTk4LTQuNDMuMTk4LTUuMDEyIDAtMjIuOTAzLTE4LjQ3NC00My40MTctNDEuMTktNDUuNzI5bC0yOC43NzYtMi44OWMtMy42Ni0uMzc0LTcuMzA2Ljc5NS05Ljk5NyAzLjIyMi0yLjcwNCAyLjQzOS00LjI1NSA1Ljk2OC00LjI1NSA5LjY4MXYyOC43NDNjMCAyMi45MDMgMTguNDc0IDQzLjQxNyA0MS4xODYgNDUuNzI5bDI3LjgzNSAyLjgxM3YzMS43OTUgMjIuMjAxaC00OS44MTJjLTEwLjcgMC0xOS40MDUgOC43MDUtMTkuNDA1IDE5LjQwNXY0NS41MjNjMCAxMC43MTYgOC43MDUgMTkuNDM0IDE5LjQwNSAxOS40MzRoNDczLjEzNGMxMC43MTYgMCAxOS40MzQtOC43MTggMTkuNDM0LTE5LjQzNHYtNDUuNTIzYzAtMTAuNy04LjcxOC0xOS40MDUtMTkuNDM0LTE5LjQwNWgtNDkuNzg1di0xNS4zOTh6bS0yOC4wMjgtMzguNzU2YzAtMTUuMTcxIDEyLjY3Mi0yOS4yNzkgMjcuNjYtMzAuODA1bDI2LjU1OS0yLjY2NnYyNi40OThjMCAxNS4xOTItMTIuNjggMjkuMjk5LTI3LjY5MyAzMC44MDVsLTE1LjQxNSAxLjU1OCAxOS4wNjktMjEuMDk3YzIuNzc3LTMuMDczIDIuNTM3LTcuODE2LS41MzUtMTAuNTkzLTMuMDcyLTIuNzc1LTcuODE0LTIuNTM5LTEwLjU5NC41MzVsLTE5LjA1MSAyMS4wNzd6bS0xNS0yMy40NTctMTguODgtMjAuODg4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M2wxOS4wNjcgMjEuMDk2LTE1LjQwOC0xLjU1NmMtMTUuMDE0LTEuNTI4LTI3LjY5OC0xNS42MzUtMjcuNjk4LTMwLjgwNXYtMjYuNDk3bDI2LjU0OCAyLjY2NmMxNS4wMTUgMS41MjggMjcuNSAxNS42MzUgMjcuNSAzMC44MDV6bS0xNjQuMjgyIDIzLjQ1N2MwLTE1LjE3IDEyLjY4NS0yOS4yNzcgMjcuNjg4LTMwLjgwNWwyNi41NTktMi42NjZ2MjYuNDk4YzAgMTUuMTkyLTEyLjY3OSAyOS4yOTktMjcuNjkyIDMwLjgwNWwtMTUuNDE0IDEuNTU3IDE5LjA2OC0yMS4wOTZjMi43NzctMy4wNzMgMi41MzctNy44MTYtLjUzNS0xMC41OTMtMy4wNzItMi43NzUtNy44MTQtMi41MzktMTAuNTk0LjUzNWwtMTkuMDc5IDIxLjEwOHYtMTUuMzQzem0tNDQuOTgtMzQuMjg2IDE5LjA2OSAyMS4wOTctMTUuNDA5LTEuNTU3Yy0xNS4wMTUtMS41MjgtMjcuNjk5LTE1LjYzNS0yNy42OTktMzAuODA1di0yNi40OTVsMjYuNTIxIDIuNjYzYzE1LjAxNSAxLjUyNiAyNy40OTkgMTUuNjMzIDI3LjQ5OSAzMC44MDV2MTUuMDkxbC0xOC44NTItMjAuODU3Yy0yLjc3OC0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M3ptLTEzNC4yNzMgMzQuMjg2YzAtMTUuMTcgMTIuNjg1LTI5LjI3NyAyNy42ODgtMzAuODA1bDI2LjUzLTIuNjYzdjI2LjQ5NWMwIDE1LjE5NS0xMi42NzkgMjkuMzAxLTI3LjY5MiAzMC44MDVsLTE1LjQwNSAxLjU1NyAxOS4wODMtMjEuMDk0YzIuNzc5LTMuMDcyIDIuNTQyLTcuODE0LS41My0xMC41OTMtMy4wNjgtMi43NzgtNy44MTMtMi41NDItMTAuNTkzLjUzbC0xOS4wODEgMjEuMDkxem0tNDQuOTgxLTM0LjI4NiAxOS4wNjkgMjEuMDk3LTE1LjQwOS0xLjU1OGMtMTUuMDE1LTEuNTI4LTI3LjY5OS0xNS42MzUtMjcuNjk5LTMwLjgwNXYtMjYuNDk1bDI2LjUyIDIuNjYzYzE1LjAxNSAxLjUyOCAyNy41MDEgMTUuNjM1IDI3LjUwMSAzMC44MDV2MTUuMDkybC0xOC44NTMtMjAuODU4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41MjEtLjUzNSAxMC41OTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",pxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNi42MjIgMTUxLjc0MWgxMC44djM1LjY4MWMwIDExLjEyNSA5LjA1MSAyMC4xNzUgMjAuMTc1IDIwLjE3NWgxNC44MTRjNC43OTkgMCA5LjIwOC0xLjY5MSAxMi42NzUtNC41IDMuNDY3IDIuODA5IDcuODc1IDQuNSAxMi42NzUgNC41aDE0LjgxNGMxMS4xMjQgMCAyMC4xNzUtOS4wNSAyMC4xNzUtMjAuMTc1di0zOS45NGgyMC4xMzl2MTg1LjExNWgtMjMuNDU3Yy0xMC45MzggMC0xOS44MzcgOC44OTgtMTkuODM3IDE5LjgzNnYzNy4zMjRjMCA5Ljk2OCA3LjM5OCAxOC4yMTkgMTYuOTg4IDE5LjYwOHY4Ny41NzZjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzVjOC4zMDQgMCAxNS4wNTktNi43NTUgMTUuMDU5LTE1LjA1OXYtNTMuODQ0aDUxLjQ2NGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWMtOS43NjUgMC04NS43ODUgMC05Ni45MTcgMHYtMTguNTAzaDIyOC44MzR2MTguNTAzYy0xMS4xMzcgMC04Ny4yMTcgMC05Ni45MTcgMC00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU3IDcuNSA3LjUgNy41aDUxLjQ2NXY1My44NDRjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzRjOC4zMDQgMCAxNS4wNi02Ljc1NSAxNS4wNi0xNS4wNTkgMC0xMC4xNTQgMC03Ny4wMzYgMC04Ny41NzYgOS41OS0xLjM4OSAxNi45ODgtOS42NCAxNi45ODgtMTkuNjA4di0zNy4zMjRjMC0xMC45MzgtOC44OTgtMTkuODM2LTE5LjgzNy0xOS44MzZoLTIzLjQ1N3YtNzUuMDU4YzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc1LjA1OGgtMjUuMTY0YzAtMjEuNzEzIDAtMTYyLjkxMiAwLTE4NS4xMTVoMjUuMTY0djc1LjA1OGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di03NS4wNThoMjAuMTM5djM5Ljk0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1aDE0LjgxNGM0Ljc5OSAwIDkuMjA4LTEuNjkxIDEyLjY3NS00LjUgMy40NjcgMi44MDkgNy44NzUgNC41IDEyLjY3NCA0LjVoMTQuODE1YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTM1LjY4MWgxMC44YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTE0LjgxNGMwLTExLjEyNS05LjA1MS0yMC4xNzUtMjAuMTc1LTIwLjE3NWgtMTAuOHYtMzUuNjgxYzAtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTVjLTQuNzk5IDAtOS4yMDcgMS42OTEtMTIuNjc0IDQuNS0zLjQ2Ny0yLjgwOS03Ljg3NS00LjUtMTIuNjc1LTQuNWgtMTQuODE0Yy0xMS4xMjQgMC0yMC4xNzUgOS4wNS0yMC4xNzUgMjAuMTc0djM5Ljk0MWgtMjAuMTM5di04MC42NjNjLS4wMDEtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTRjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzR2NTAuNTM0aC05NS44OTZ2LTUwLjUzNGMwLTExLjEyNC05LjA1LTIwLjE3NC0yMC4xNzQtMjAuMTc0aC0xNC44MTVjLTExLjEyNCAwLTIwLjE3NCA5LjA1LTIwLjE3NCAyMC4xNzR2ODAuNjYzaC0yMC4xMzl2LTM5Ljk0MWMwLTExLjEyNC05LjA1MS0yMC4xNzQtMjAuMTc1LTIwLjE3NGgtMTQuODE0Yy00Ljc5OSAwLTkuMjA4IDEuNjkxLTEyLjY3NSA0LjUtMy40NjctMi44MDktNy44NzUtNC41LTEyLjY3NS00LjVoLTE0LjgxNGMtMTEuMTI0IDAtMjAuMTc1IDkuMDUtMjAuMTc1IDIwLjE3NHYzNS42ODFoLTEwLjhjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzV2MTQuODE0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1em0xNDEuMjY3LTQuMjZoMjUuMTYzdjE4NS4xMTVoLTI1LjE2M3ptNDAuMTYzIDY4LjcxMmg5NS44OTZ2NzYuOTAxaC05NS44OTZ6bTk1Ljg5NS0xNWgtOTUuODk2di0yMy41ODNoOTUuODk2em0tMTMxLjkxOSAyNDEuOTA0LS4wNTEgNTMuOTAzLTMwLjM5My0uMDM5YzAtLjAwMS0uMDAxLS4wMDgtLjAwMS0uMDJ2LTUzLjg0NHptMTk4LjMyOSA1My45MDMtMzAuMzkzLS4wNTl2LTUzLjg0NGgzMC40NDV6bTEyLjIxMS0xNDkuNDAzYzIuNjY3IDAgNC44MzcgMi4xNjkgNC44MzcgNC44MzZ2MzcuMzI0YzAgMi42NjctMi4xNyA0LjgzNi00LjgzNyA0LjgzNi0xMy4yMDIgMC0yNDEuMjU2IDAtMjUzLjEzNyAwLTIuNjY3IDAtNC44MzctMi4xNjktNC44MzctNC44MzZ2LTM3LjMyNGMwLTIuNjY3IDIuMTctNC44MzYgNC44MzctNC44MzZ6bS0xNzQuNTE2LTE1di0yNC41MDNoOTUuODk2djI0LjUwM3ptOTUuODk1LTE2OS45ODdoLTk1Ljg5NnYtMTUuMTI4aDk1Ljg5NnptLTExNS45NzctMzAuMTI5di0xNi42NDVoMTM2LjA2djE2LjY0NWMtNC42NTMgMC0xMzAuNDExIDAtMTM2LjA2IDB6bTI5Ny40MDgtMjAuOTA0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NXYxNC44MTRjMCAyLjgwNS0yLjM3IDUuMTc1LTUuMTc1IDUuMTc1aC0xMC44di0yNS4xNjR6bS00NS43OS01NS44NTVoMTQuODE1YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE1Yy0yLjgwNSAwLTUuMTc0LTIuMzctNS4xNzQtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM2OS01LjE3NCA1LjE3NC01LjE3NHptLTQ1LjMzOCA1LjE3NGMwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtMi45MDQgMC0xMjIuNjAyIDAtMTI2LjUyNnptLTE1IDcxLjU4NWMtMTMuNDYzIDAtMjUuMTg2IDAtNDAuMjIxIDB2LTE2LjY0NWg0MC4yMjF6bS02MC4zMDMtMTEyLjMwN2MwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODU0IDAgNS4xNzUgMi4zMjEgNS4xNzUgNS4xNzR2ODAuNjYzYy05LjEwNiAwLTE2LjA1OCAwLTI1LjE2NCAwIDAtOS4zNzMgMC03MC44ODUgMC04MC42NjN6bS0xNSA2NS41MzR2MTUuMTI4aC05NS44OTZ2LTE1LjEyOHptLTEzNi4wNTgtNjUuNTM0YzAtMi44MDUgMi4zNjktNS4xNzQgNS4xNzQtNS4xNzRoMTQuODE1YzIuODA1IDAgNS4xNzQgMi4zNyA1LjE3NCA1LjE3NHY4MC42NjNjLTkuMTA0IDAtMTYuMDM5IDAtMjUuMTYzIDB6bTUuMDgxIDk1LjY2M3YxNi42NDVjLTE1LjI3MyAwLTI2LjQ2IDAtNDAuMjIgMHYtMTYuNjQ1em0tNzUuMjA5LTYwLjExNWgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjgwNSAwLTUuMTc1LTIuMzctNS4xNzUtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM3LTUuMTc0IDUuMTc1LTUuMTc0em0tNDUuMzM5IDUuMTc0YzAtMi44MDUgMi4zNy01LjE3NCA1LjE3NS01LjE3NGgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtNS42NzkgMC0xMjAuODI3IDAtMTI2LjUyNnptLTMwLjk3NSA1NS44NTZjMC0yLjg1NCAyLjMyMS01LjE3NSA1LjE3NS01LjE3NWgxMC44djI1LjE2NGgtMTAuOGMtMi44NTQgMC01LjE3NS0yLjMyMS01LjE3NS01LjE3NXoiLz4KICAgIDwvZz4KPC9zdmc+",Axe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDI4MGgtMTZWMTY2LjRjMC0xMi05LjYtMjIuNC0yMi40LTIyLjRoLTRjLTEyLDAtMjIuNCw5LjYtMjIuNCwyMi40VjI4MGgtMjR2LTE2YzAtMTMuNi0xMC40LTI0LTI0LTI0SDEyMAoJCQljLTEzLjYsMC0yNCwxMC40LTI0LDI0djE2SDcyVjE2Ni40YzAtMTItOS42LTIyLjQtMjIuNC0yMi40aC0zLjJjLTEyLjgsMC0yMi40LDkuNi0yMi40LDIyLjRWMjgwSDhjLTQuOCwwLTgsMy4yLTgsOHMzLjIsOCw4LDhoOAoJCQl2MTQ0YzAsNC44LDMuMiw4LDgsOGg4djhjMCw0LjgsMy4yLDgsOCw4czgtMy4yLDgtOHYtOGgzODR2OGMwLDQuOCwzLjIsOCw4LDhzOC0zLjIsOC04di04aDhjNC44LDAsOC0zLjIsOC04VjI5Nmg4CgkJCWM0LjgsMCw4LTMuMiw4LThTNDc2LjgsMjgwLDQ3MiwyODB6IE00MzAuNCwxNjBoNGMzLjIsMCw2LjQsMi40LDYuNCw2LjRWMjgwaC0xNlYxNjYuNEg0MjRDNDI0LDE2My4yLDQyNi40LDE2MCw0MzAuNCwxNjB6CgkJCSBNMTEyLDI2NGMwLTQuOCwzLjItOCw4LThoMjQwYzQuOCwwLDgsMy4yLDgsOHYxNkgxMTJWMjY0eiBNNDAsMTY2LjRjMC00LDIuNC02LjQsNi40LTYuNGg0YzMuMiwwLDUuNiwyLjQsNS42LDYuNFYyODBINDBWMTY2LjR6CgkJCSBNMjMyLDQzMkgzMnYtNjRoMjAwVjQzMnogTTQ0OCw0MzJIMjQ4di02NGgyMDBWNDMyeiBNNDQ4LDM1MkgzMnYtNTZoNDE2VjM1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjA4LDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzIxNiwzODcuMiwyMTIuOCwzODQsMjA4LDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjcyLDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzI4MCwzODcuMiwyNzYuOCwzODQsMjcyLDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzg0LDE2SDk2Yy00LjgsMC04LDMuMi04LDh2MTYwYzAsNC44LDMuMiw4LDgsOGgyODhjNC44LDAsOC0zLjIsOC04VjI0QzM5MiwxOS4yLDM4OC44LDE2LDM4NCwxNnogTTM3NiwxNzZIMTA0VjMyaDI3MgoJCQlWMTc2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTIsMTQ0aC04Yy00LjgsMC04LDMuMi04LDhzMy4yLDgsOCw4aDhjNC44LDAsOC0zLjIsOC04UzM1Ni44LDE0NCwzNTIsMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTcuNiw1MC40Yy0zLjItMy4yLTgtMy4yLTExLjIsMGwtMjQsMjRjLTMuMiwzLjItMy4yLDgsMCwxMS4yYzMuMiwzLjIsOCwzLjIsMTEuMiwwbDI0LTI0CgkJCUMxNjAuOCw1OC40LDE2MC44LDUzLjYsMTU3LjYsNTAuNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMTk3LjYsNTAuNGMtMy4yLTMuMi04LTMuMi0xMS4yLDBsLTU2LDU2Yy0zLjIsMy4yLTMuMiw4LDAsMTEuMmMzLjIsMy4yLDgsMy4yLDExLjIsMGw1Ni01NgoJCQlDMjAwLjgsNTguNCwyMDAuOCw1My42LDE5Ny42LDUwLjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",mxe="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2aC0xNDRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTg0aC0xNzZ2LTI0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0djE2aDE2djE2aC0zMnYtMzJoLTE2djMyaC0zMnYtMTZoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYyNGgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTc2YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoNDY0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTM2OGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMTM2IDE2aDEyOHY5NmgtMTI4em0tMTYgMjI0aC0xNDR2LTMyaDE0NHptLTMwNC0zMmgxNDR2MzJoLTE0NHptMCA0OGgxNDR2MTEyaC0xNDR6bTE2MCAwaDY0djExMmgtNjR6bTgwIDBoNjR2MTEyaC02NHptODAgMTEydi0yNDBoMTI4djI0MHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAxNDRoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDI1NmgxNnYzMmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im04MCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTIgMzIwYzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ0IDMyMGMwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4cy04LTMuNTgyMDMxLTgtOCAzLjU4MjAzMS04IDgtOCA4IDMuNTgyMDMxIDggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggMTUyaDE2MGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGMwLTIuMTIxMDk0LS44NDM3NS00LjE1NjI1LTIuMzQzNzUtNS42NTYyNWwtMzItMzJjLTEuNS0xLjUtMy41MzUxNTYtMi4zNDM3NS01LjY1NjI1LTIuMzQzNzVoLTh2LTcyYzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTY0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djcyaC04Yy0yLjEyMTA5NCAwLTQuMTU2MjUuODQzNzUtNS42NTYyNSAyLjM0Mzc1bC0zMiAzMmMtMS41IDEuNS0yLjM0Mzc1IDMuNTM1MTU2LTIuMzQzNzUgNS42NTYyNXYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em01Ni0xMzZoNDh2NjRoLTQ4em0tNDggMTA3LjMxMjUgMjcuMzEyNS0yNy4zMTI1aDg5LjM3NWwyNy4zMTI1IDI3LjMxMjV2MTIuNjg3NWgtMTQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDM2OGgtOTZjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg5NmM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di02NGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tOCA2NGgtODB2LTQ4aDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjMyIDMxMmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDggMzkyaDE2djMyaC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3MiAzOTJoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyIDIwMGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi0xNTMuMTM2NzE5aC0xNnYxNTMuMTM2NzE5Yy0xNC4wODU5MzggMy42MzY3MTktMjMuOTQ1MzEyIDE2LjMxNjQwNi0yNCAzMC44NjMyODF2OGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em0yNC0zMmM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2aC0zMmMwLTguODM1OTM4IDcuMTY0MDYyLTE2IDE2LTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDEzNmg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi04OS4xMzY3MTloLTE2djg5LjEzNjcxOWMtMTQuMDg1OTM4IDMuNjM2NzE5LTIzLjk0NTMxMiAxNi4zMTY0MDYtMjQgMzAuODYzMjgxdjhjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOHptMjQtMzJjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNmgtMzJjMC04LjgzNTkzOCA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Oxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTAuNDE3IDIzMy4yMjUtNTguNjQ0LTExNy4yNzljLTE1LjkzOS0zMS44NzctNDcuOTc4LTUxLjY4LTgzLjYyLTUxLjY4LTguNTg2IDAtMTYuOTg0IDEuMTg4LTI1LjAzMiAzLjQzNy4xMDUtMS40ODkuMTc4LTIuOTg4LjE3OC00LjUwMyAwLTM0Ljg0OS0yOC4zNTEtNjMuMi02My4yLTYzLjJzLTYzLjIgMjguMzUyLTYzLjIgNjMuMmMwIDMwLjk5MyAyMi40MzIgNTYuODI4IDUxLjkwOSA2Mi4xNjlsLTYxLjM2NiA2MS40N2MtNi44NzUgNi44ODYtMjEuODcxIDI3LjgyLTEwLjMzMyA1NC40Ni0xLjcwNS0uMTkxLTMuNDIxLS4yOTktNS4xNDQtLjI5OS0yMy4wODcgMC00Mi4zMzYgMTYuNjktNDYuMzUxIDM4LjYzNS03Ljc0LTQuMTQ0LTE2LjU3My02LjUwMS0yNS45NDktNi41MDEtMzAuNDE5IDAtNTUuMTY3IDI0Ljc0OC01NS4xNjcgNTUuMTY3IDAgOS4wNjMgMi4yMTEgMTcuNjE1IDYuMSAyNS4xNjdoLTQwLjU5OHYtMzM4LjQ2OGMwLTguMjg0LTYuNzE2LTE1LTE1LTE1cy0xNSA2LjcxNi0xNSAxNXY0ODJjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNXMxNS02LjcxNiAxNS0xNXYtNDkuMjY3aDMwNi41NjNjOC4yODQgMCAxNS02LjcxNiAxNS0xNXYtNjQuMjY3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTM2LjQxMmMzLjI3NC04LjM5NSAzLjIxNC0xNS4yNjMgMy4yMTQtMTguMiAyOC40NjkgMCA0OC4yLTIyLjA5OCA0OC4yLTQ3LjEzMyAwLTI1Ljk4OS0yMS4xNDQtNDcuMTMzLTQ3LjEzMy00Ny4xMzNoLTEyLjMwNGw1NS45MDQtNTYuMDg2IDUzLjczNiAxMDYuNzc3LS4xMDMgMjA1LjMwMWMtLjAwMiAzLjk3OSAxLjU3OCA3Ljc5NiA0LjM5MSAxMC42MTEgMi44MTMgMi44MTQgNi42MyA0LjM5NiAxMC42MDkgNC4zOTZoODAuMzM1YzguMjg0IDAgMTUtNi43MTYgMTUtMTV2LTI1Ny4wNjZjMC0yLjMyOS0uNTQyLTQuNjI1LTEuNTgzLTYuNzA4em0tMjYzLjUxNy0xNzAuMDI1YzAtMTguMzA3IDE0Ljg5NC0zMy4yIDMzLjItMzMuMnMzMy4yIDE0Ljg5NCAzMy4yIDMzLjItMTQuODk0IDMzLjItMzMuMiAzMy4yYy0xOC4zMDcgMC0zMy4yLTE0Ljg5My0zMy4yLTMzLjJ6bS0xMjcuMjMzIDIzOS45MzNjMTMuODc3IDAgMjUuMTY3IDExLjI5IDI1LjE2NyAyNS4xNjdzLTExLjI5IDI1LjE2Ny0yNS4xNjcgMjUuMTY3LTI1LjE2Ny0xMS4yOS0yNS4xNjctMjUuMTY3IDExLjI5LTI1LjE2NyAyNS4xNjctMjUuMTY3em0yMDEuODk2IDgwLjMzNHYzNC4yNjdoLTI5MS41NjN2LTM0LjI2N3ptLTE3LjEzLTExMi40NjdjOS40NDcgMCAxNy4xMzMgNy42ODYgMTcuMTMzIDE3LjEzMyAwIDkuNTgzLTcuODE0IDE3LjEzMy0xNy4xMzMgMTcuMTMzaC0xNi4wNjdjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2MTYuMDY3YzAgOS41ODMtNy44MTQgMTcuMTMzLTE3LjEzMyAxNy4xMzNoLTY0LjI2N2MtOS40NDcgMC0xNy4xMzMtNy42ODYtMTcuMTMzLTE3LjEzM3YtNDguMmMwLTkuNDQ3IDcuNjg2LTE3LjEzMyAxNy4xMzMtMTcuMTMzIDkuMjk3IDAgMTcuMTMzIDcuNTI2IDE3LjEzMyAxNy4xMzN2MTYuMDY3YzAgOC4yODQgNi43MTYgMTUgMTUgMTVzMTUtNi43MTYgMTUtMTV2LTE2LjA2N2MwLTkuNDI5IDcuNjE2LTE3LjEzMyAxNy4xMzMtMTcuMTMzem0xNzcuNTY3IDIxMWgtNTAuMzI2bC4wOTctMTkzLjg1OWMuMDAxLTIuMzQ0LS41NDctNC42NTYtMS42MDEtNi43NWwtNjQuNjg1LTEyOC41MzNjLTIuMTY3LTQuMzA1LTYuMjY5LTcuMzA2LTExLjAyNy04LjA2OC00Ljc2MS0uNzYyLTkuNTk0LjgxLTEyLjk5NSA0LjIyMmwtODYuNDU4IDg2LjczOWMtNy4yNjMgNy4yOTEtMTkuMTE1IDYuODA3LTI2LjMwOC0uMzg2LTcuMzgxLTcuMzgxLTcuNzI4LTE5LjYxMS0uMDIyLTI3LjMyOWw5NS4yNy05NS40MzFjMTEuNzk5LTExLjgyNSAyNy41LTE4LjMzNyA0NC4yMTctMTguMzM3IDI0LjE5OSAwIDQ1Ljk1NSAxMy40NDggNTYuNzc5IDM1LjA5N2w1Ny4wNTkgMTE0LjEwOXoiLz4KICAgIDwvZz4KPC9zdmc+",Exe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTkyLjU0NSwxODUuMDljNTEuMDI5LDAsOTIuNTQ1LTQxLjUxNiw5Mi41NDUtOTIuNTQ1UzE0My41NzQsMCw5Mi41NDUsMFMwLDQxLjUxNiwwLDkyLjU0NSAgICBTNDEuNTE2LDE4NS4wOSw5Mi41NDUsMTg1LjA5eiBNOTIuNTQ1LDIwYzQwLjAwMSwwLDcyLjU0NSwzMi41NDQsNzIuNTQ1LDcyLjU0NXMtMzIuNTQ0LDcyLjU0NS03Mi41NDUsNzIuNTQ1ICAgIFMyMCwxMzIuNTQ2LDIwLDkyLjU0NVM1Mi41NDQsMjAsOTIuNTQ1LDIweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDAuNTAxLDExNC41MjZjMS45NTIsMS45NDUsNC41MDYsMi45MTcsNy4wNiwyLjkxN2MyLjU2NCwwLDUuMTMtMC45OCw3LjA4My0yLjk0ICAgIGMzLjg5OC0zLjkxMiwzLjg4OC0xMC4yNDQtMC4wMjMtMTQuMTQzbC0xMi4wMDgtMTEuOTY4VjQ0YzAtNS41MjItNC40NzgtMTAtMTAtMTBzLTEwLDQuNDc4LTEwLDEwdjQ4LjU0NSAgICBjMCwyLjY1OCwxLjA1OSw1LjIwNywyLjk0LDcuMDgzTDEwMC41MDEsMTE0LjUyNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNTAyLDMzMmgtNjEuNTQ3Yy04LjQ2LTEyLjAzNC0yMS4xNzItMjAuNTU4LTM1LjY3MS0yMy43MjhsLTQzLjk2NC05LjYxMyAgICBjMTcuOTkxLTEyLjEzNCwyOS44NDctMzIuNzAyLDI5Ljg0Ny01NS45ODh2LTI0LjQxN3YtMTEuMjk3di0yLjU0MmMwLTM3LjIxMi0zMC4yNzQtNjcuNDg2LTY3LjQ4Ni02Ny40ODYgICAgcy02Ny40ODYsMzAuMjc0LTY3LjQ4Niw2Ny40ODZ2Mi41NDJ2MTEuMjk3djI0LjQxN2MwLDIzLjI1NiwxMS44MjUsNDMuODAzLDI5Ljc3OCw1NS45NDNsLTQzLjkzNiw5LjYzOSAgICBjLTEuODc3LDAuNDEyLTMuNzIyLDAuOTE3LTUuNTM1LDEuNTAyVjIyN2MwLTUuNTIyLTQuNDc4LTEwLTEwLTEwaC02OGMtNS41MjIsMC0xMCw0LjQ3OC0xMCwxMHM0LjQ3OCwxMCwxMCwxMGg1OHYxNDBoLTY4di01MCAgICBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwcy0zMCwxMy40NTgtMzAsMzB2NTBIMjBWMjM3aDU4YzUuNTIyLDAsMTAtNC40NzgsMTAtMTBzLTQuNDc4LTEwLTEwLTEwSDEwYy01LjUyMiwwLTEwLDQuNDc4LTEwLDEwdjE2MCAgICBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg3OHYxOWgtMWMtMTcuMDk0LDAtMzEsMTMuOTA2LTMxLDMxdjVIMTBjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg0OTIgICAgYzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTQwdi00MHYtNDB2LTQwQzUxMiwzMzYuNDc4LDUwNy41MjIsMzMyLDUwMiwzMzJ6IE00NDEuMTc5LDQ1MkgzODR2LTIwaDEwOHYyMEg0NDEuMTc5eiBNNDkyLDQxMkgzODQgICAgdi0yMGgxMDhWNDEyeiBNNDkyLDM3MkgzODR2LTIwaDUwLjg3NGMwLjAzLDAsMC4wNiwwLjAwNiwwLjA4OSwwLjAwNmMwLjAzMSwwLDAuMDYzLTAuMDA2LDAuMDk0LTAuMDA2SDQ5MlYzNzJ6IE0yNzUuNjkyLDIwNC40MTYgICAgYzAtMjYuMTg0LDIxLjMwMy00Ny40ODYsNDcuNDg2LTQ3LjQ4NmMyNC45MzMsMCw0NS40MzksMTkuMzE0LDQ3LjM0Miw0My43NjdsLTIzLjI0Ni0xMy42NTcgICAgYy00LjIxMS0yLjQ3NS05LjU5My0xLjU0NC0xMi43MywyLjE5OWMtMTAuMTI2LDEyLjA4NS0yNC45NzcsMTkuMDE3LTQwLjc0NCwxOS4wMTdoLTE4LjEwN3YtMS4yOTdWMjA0LjQxNnogTTI3NS42OTIsMjI4LjI1NSAgICBIMjkzLjhjMTguODI1LDAsMzYuNy03LjE3OSw1MC4yMDUtMTkuOTRsMjYuNjYsMTUuNjYzdjE4LjY5NGMwLDI2LjE4NC0yMS4zMDMsNDcuNDg2LTQ3LjQ4Niw0Ny40ODZzLTQ3LjQ4Ni0yMS4zMDMtNDcuNDg2LTQ3LjQ4NiAgICBWMjI4LjI1NXogTTMzOC44NDQsMzA4LjMwM2wtMTUuODE1LDQyLjI5NGwtMTUuODQ0LTQyLjM3YzUuMTMsMS4yNTIsMTAuNDgzLDEuOTMxLDE1Ljk5MywxLjkzMSAgICBDMzI4LjU3MiwzMTAuMTU4LDMzMy44MTMsMzA5LjUwNCwzMzguODQ0LDMwOC4zMDN6IE0yMjYsMzk3YzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTU1LjYyM2MzLjA4NS0xLjYyNiw2LjM3NC0yLjgzMiw5LjgyLTMuNTg4ICAgIGw0My43NC05LjU5NmwyNC4xMDMsNjQuNDU3YzEuNDYxLDMuOTA3LDUuMTk0LDYuNDk3LDkuMzY2LDYuNDk3czcuOTA1LTIuNTksOS4zNjYtNi40OThsMjQuMTA0LTY0LjQ2MWw0NC4wMTEsOS42MjMgICAgYzMuODYzLDAuODQ0LDcuNTI5LDIuMjc0LDEwLjkwMiw0LjE4OEgzNzRjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDB2NDB2MzBIMjE1LjE3OXYtNTVIMjI2eiBNMTk1LjE3OSwzOTd2NTVIMTgwdi01ICAgIGMwLTE3LjA5NC0xMy45MDYtMzEtMzEtMzFoLTF2LTE5SDE5NS4xNzl6IE0xMDgsMzI3YzAtNS41MTQsNC40ODYtMTAsMTAtMTBzMTAsNC40ODYsMTAsMTB2ODloLTIwVjMyN3ogTTc2LDQ0NyAgICBjMC02LjA2NSw0LjkzNS0xMSwxMS0xMWgxMWg0MGgxMWM2LjA2NSwwLDExLDQuOTM1LDExLDExdjVINzZWNDQ3eiBNNDkyLDQ5MkgyMHYtMjBoNDcyVjQ5MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzLDIxOS45M2MtMS44NiwxLjg2LTIuOTMsNC40NC0yLjkzLDcuMDdzMS4wNjksNS4yMSwyLjkzLDcuMDY5YzEuODYsMS44Niw0LjQ0LDIuOTMxLDcuMDcsMi45MzEgICAgczUuMjEtMS4wNyw3LjA2OS0yLjkzMUMxMjYuOTMsMjMyLjIxLDEyOCwyMjkuNjMsMTI4LDIyN3MtMS4wNy01LjIxLTIuOTMxLTcuMDdjLTEuODU5LTEuODYtNC40MzktMi45My03LjA2OS0yLjkzICAgIFMxMTIuNzksMjE4LjA2OSwxMTAuOTMsMjE5LjkzeiIvPgogICAgPC9nPgo8L3N2Zz4K",fxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTUsMzUuOTM1YzQuNDkzLS41NTUsOC00LjgsOC05LjkzNSwwLTQuODg1LTMuNTM1LTE5LTktMTlzLTksMTQuMTE1LTksMTljMCw1LjEzOCwzLjUwNyw5LjM4LDgsOS45MzVWNDJINDkuOTQ5YTkuOTc4LDkuOTc4LDAsMCwwLTE0LjQ0MS03LjkyMmwtMS42LTIuNTEzTDMyLjM4OCwyN0gzNi41YTEuNSwxLjUsMCwwLDEsMCwzSDM2djJoLjVhMy41LDMuNSwwLDAsMCwwLTdIMzFhMSwxLDAsMCwwLS45NDgsMS4zMTZMMzEuNjEzLDMxSDIwVjI5aDNhMSwxLDAsMCwwLDEtMSw1LDUsMCwwLDAtMTAsMCwxLDEsMCwwLDAsMSwxaDN2Mi42NzVsLTEuOTY0LDIuN2E5Ljk5MSw5Ljk5MSwwLDEsMCw0LjUxLDExLjYwNiwzLjk4NSwzLjk4NSwwLDEsMCw2LjQyNS00LjYzNGw1LjUyMS04LjI4MywxLjMyOSwyLjA4OUE5Ljk5NSw5Ljk5NSwwLDEsMCw0OS45NDksNDRINjNWNDJINTVaTTQ3LDI2YzAtNS4wNjcsMy42NjEtMTcsNy0xN3M3LDExLjkzMyw3LDE3YzAsNC4wMjItMi42MTQsNy4zNTEtNiw3LjkwOVYxOC41MzVsMi41NTUtMS43LTEuMTEtMS42NjQtMywyQTEsMSwwLDAsMCw1MywxOHY3bC0yLjQtMS44LTEuMiwxLjZMNTMsMjcuNXY2LjQwOUM0OS42MTQsMzMuMzUxLDQ3LDMwLjAyMiw0NywyNlpNMTksMjVhMy4wMDYsMy4wMDYsMCwwLDEsMi44MjksMkgxNi4xNzFBMy4wMDYsMy4wMDYsMCwwLDEsMTksMjVabTUsMTVhMy44MzYsMy44MzYsMCwwLDAtLjU2LjA1N0wyMC41LDMzaDkuNjMybC00LjgyNSw3LjIzN0EzLjk2OCwzLjk2OCwwLDAsMCwyNCw0MFpNMTEsNTFhOCw4LDAsMSwxLDMuODU3LTE1bC0zLjAxMSw0LjE0QTIuOTYsMi45NiwwLDAsMCwxMSw0MGEzLDMsMCwxLDAsMi43MzgsNC4yMTRsNS4xLjM5MkE4LjAxNCw4LjAxNCwwLDAsMSwxMSw1MVptNy45OC04LjM4OS01LjEtLjM5MmEzLjAwNSwzLjAwNSwwLDAsMC0uNDE0LS45MTZsMy00LjEyNUE3Ljk2OSw3Ljk2OSwwLDAsMSwxOC45OCw0Mi42MTFaTTEyLDQzYTEsMSwwLDEsMS0xLTFBMSwxLDAsMCwxLDEyLDQzWm04Ljg3OS0xLjQ3MmE5Ljk2OCw5Ljk2OCwwLDAsMC0zLjIyOC01Ljk3NGwxLjExMS0xLjUyNywyLjgzMiw2LjhBNC4wMzIsNC4wMzIsMCwwLDAsMjAuODc5LDQxLjUyOFpNMjQsNDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjQsNDZabTE2LDVhOCw4LDAsMCwxLTUuMS0xNC4xNTZsMi43NDgsNC4zMTlBMi45NjYsMi45NjYsMCwwLDAsMzcsNDNhMywzLDAsMSwwLDMtMywyLjk2MywyLjk2MywwLDAsMC0uNjcxLjA4MmwtMi43NDEtNC4zMDdBOCw4LDAsMSwxLDQwLDUxWm0wLTlhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsNDAsNDJaIi8+CiAgICAgICAgPHBhdGggZD0iTTcsMThhNCw0LDAsMCwwLDIuNzg4LTEuMTM5LDUuNjMzLDUuNjMzLDAsMCwwLDMuOTYxLS41NDVBMy45NTQsMy45NTQsMCwwLDAsMTcsMThhNCw0LDAsMSwwLS4wODMtOCw2LDYsMCwwLDAtMTEuOS41MzhBMy45OTIsMy45OTIsMCwwLDAsNywxOFptLS42NTMtNS44NzdhMSwxLDAsMCwwLC42Ny0uOTc3QS42LjYsMCwwLDAsNywxMWE0LDQsMCwwLDEsOC0uMDQxYzAsLjAzMy0uMDE4LjE1Mi0uMDIuMTg1YTEsMSwwLDAsMCwxLjMzOS45ODZBMS45NywxLjk3LDAsMCwxLDE3LDEyYTIsMiwwLDEsMS0xLjksMi41NzMsMSwxLDAsMCwwLTEuNTg5LS40ODcsMy44LDMuOCwwLDAsMS0zLjc1MS42OTMsMSwxLDAsMCwwLTEuMTI5LjM3MiwxLjk5NCwxLjk5NCwwLDEsMS0yLjI4Mi0zLjAyOFoiLz4KICAgICAgICA8cmVjdCB4PSIxIiB5PSI1NSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",xxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xNjguOTkyIDI3Ny41OTFjMC0yNi41NTEtMjEuNjAxLTQ4LjE1MS00OC4xNTEtNDguMTUxcy00OC4xNTEgMjEuNjAxLTQ4LjE1MSA0OC4xNTEgMjEuNjAxIDQ4LjE1IDQ4LjE1MSA0OC4xNSA0OC4xNTEtMjEuNiA0OC4xNTEtNDguMTV6bS04MS4zMDMgMGMwLTE4LjI3OSAxNC44NzItMzMuMTUxIDMzLjE1MS0zMy4xNTFzMzMuMTUxIDE0Ljg3MiAzMy4xNTEgMzMuMTUxLTE0Ljg3MiAzMy4xNS0zMy4xNTEgMzMuMTUtMzMuMTUxLTE0Ljg3MS0zMy4xNTEtMzMuMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3OS4yNzIgNDYyaC0zNC4wNjJsLTM5LjE1OC0zNi42NjdjLTMuMDIzLTIuODMxLTcuNzctMi42NzUtMTAuNjAxLjM0OXMtMi42NzUgNy43Ny4zNDkgMTAuNjAxbDQxLjMyMSAzOC42OTJjMS4zOSAxLjMwMiAzLjIyMiAyLjAyNSA1LjEyNiAyLjAyNWgzNy4wMjRjOS43NzUgMCAxNy43MjggNy45NTMgMTcuNzI4IDE3LjcyOXYyLjI3MWgtNjAuODQ0Yy0yLjE0OCAwLTQuMjYxLS43MDMtNS45ODEtMS45ODZsLTE4OC40OTItMTc4LjkxNHYtMjQuMTMybDEzMi4yMDcgMTIzLjc5NmMzLjAyMyAyLjgzMSA3Ljc3IDIuNjc1IDEwLjYwMS0uMzQ5czIuNjc1LTcuNzctLjM0OS0xMC42MDFsLTE0Mi40NTktMTMzLjM5NnYtMi40NThjMC04LjI4NC02Ljc0LTE1LjAyNC0xNS4wMjUtMTUuMDI0aC0xMi41NDh2LTQyLjc4NmgxMS40MzhjNi41MzYgMCAxMi4zOC0zLjkwMSAxNC44ODYtOS45MzggMi41MDctNi4wMzcgMS4xNDUtMTIuOTMtMy40NzEtMTcuNTZsLTEwNC43MDYtMTA1LjAzNmMtMS4xNjgtMS4xNzItMi40ODctMi4xMzgtMy45MS0yLjg4OXYtMTAuODY5aDUwLjE0OGM4Ljk1OSAwIDE2LjI0OC03LjI4OSAxNi4yNDgtMTYuMjQ4di0yNS4yMTNjMC04Ljk1OS03LjI4OS0xNi4yNDgtMTYuMjQ4LTE2LjI0OGgtNTAuMTY2Yy0uMTg0LTMuOTc4LTMuNDU4LTcuMTQ5LTcuNDgyLTcuMTQ5LTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjV2NjguMjIzYy0xLjQyNy43NTEtMi43NDkgMS43MTktMy45MiAyLjg5NGwtNDAuMDE1IDQwLjE0Yy0yLjkyNSAyLjkzNC0yLjkxNyA3LjY4Mi4wMTcgMTAuNjA2IDIuOTMzIDIuOTIzIDcuNjgxIDIuOTE3IDEwLjYwNi0uMDE3bDQwLjAxNi00MC4xNDFjLjI3MS0uMjcxLjU3OS0uMzI4Ljc5MS0uMzI4LjIxMSAwIC41MjEuMDU3Ljc5Mi4zMjlsMTA0LjcwNSAxMDUuMDM1Yy4xNTcuMTU4LjUyNy41MjkuMjQgMS4yMTktLjI4Ni42ODktLjgwOS42ODktMS4wMzIuNjg5aC0yMDkuNDFjLS4yMjQgMC0uNzQ3IDAtMS4wMzMtLjY4OXMuMDg0LTEuMDYxLjI0MS0xLjIxOWw0My41MjEtNDMuNjU4YzIuOTI1LTIuOTM0IDIuOTE3LTcuNjgzLS4wMTctMTAuNjA2LTIuOTM0LTIuOTI1LTcuNjgzLTIuOTE4LTEwLjYwNi4wMTdsLTQzLjUyMSA0My42NTdjLTQuNjE1IDQuNjMtNS45NzggMTEuNTIyLTMuNDcyIDE3LjU2MSAyLjUwNyA2LjAzNyA4LjM1IDkuOTM4IDE0Ljg4NyA5LjkzOGgxMS40Mzh2NjkuNDQ0YzAgNC4xNDMgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU3IDcuNS03LjV2LTY5LjQ0NGgxNTYuNTM1djEzMi44ODJoLTE1Ni41MzZ2LTMzLjQ1MmMwLTQuMTQzLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTctNy41IDcuNXYxODYuNDJoLTIwLjA3M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWg0OTdjNC4xNDMgMCA3LjUtMy4zNTcgNy41LTcuNXYtOS43NzFjMC0xOC4wNDctMTQuNjgyLTMyLjcyOS0zMi43MjgtMzIuNzI5em0tMjk5LjUzLTQzOC42MDN2MjUuMjEzYzAgLjY4OC0uNTYgMS4yNDgtMS4yNDggMS4yNDhoLTUwLjE0OHYtMjcuNzA5aDUwLjE0OGMuNjg5IDAgMS4yNDguNTYgMS4yNDggMS4yNDh6bTE2Ny4xOTYgNDEzLjI5MSA2My41NDEgNjAuMzEyaC02My41NDF6bS0xNSA2MC4zMTJoLTYwLjgxMXYtMTMyLjI3bDYwLjgxMSA1Ny43MnptLTc1LjgxLTE0Ni41MDh2MTQ2LjUwOGgtNDIuMDJ2LTE1Ni45NDJoMTIuNTQ4YzQuOTM5IDAgOS4zMTYtMi40MDYgMTIuMDU2LTYuMDk2em0tMjkuNDQ2LTgxLjUzMi0uMDEyIDU2LjA5N3MtLjAwNC4wMDEtLjAxNC4wMDFoLTEyLjU0OHYtNTYuMTEzem0tMjcuNTc0IDIyOC4wNGgtMzcuMTV2LTEzNy45NjloMzcuMTV6bS0xMDQuMzg0LTYxLjQ4NGg1Mi4yMzR2MjEuNDM2aC01Mi4yMzR6bTUyLjIzNC0xNWgtNTIuMjM0di0yMS40MzZoNTIuMjM0em0tNTIuMjM0IDUxLjQzNWg1Mi4yMzR2MjUuMDQ5aC01Mi4yMzR6bTUyLjIzNC0xMTIuOTJ2MjUuMDQ5aC01Mi4yMzR2LTI1LjA0OXptLTEwNC4zODUgMGgzNy4xNXYxMzcuOTY5aC0zNy4xNXoiLz4KICAgIDwvZz4KPC9zdmc+",_xe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Sxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjE2LDI1MkgxMTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzIyMS41MSwyNTIsMjE2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1MmMtNS41MSwwLTEwLDQuNDktMTAsMTBzNC40OSwxMCwxMCwxMHMxMC00LjQ5LDEwLTEwUzI2MS41MSwyNTIsMjU2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzk2LDI1MkgyOTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzQwMS41MSwyNTIsMzk2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjg2LDEwN2gtNjBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NjBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg2MGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi02MAoJCQlDMjk2LDExMS40NzcsMjkxLjUyMywxMDcsMjg2LDEwN3ogTTI3NiwxNjdoLTQwdi00MGg0MFYxNjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMiw0OTJoLTEzVjIzM2MwLTYyLjIzNy0yNC4yMzYtMTIwLjc0OC02OC4yNDQtMTY0Ljc1NkMzNzYuNzQ4LDI0LjIzNiwzMTguMjM3LDAsMjU2LDBTMTM1LjI1MiwyNC4yMzYsOTEuMjQ0LDY4LjI0NAoJCQlTMjMsMTcwLjc2MywyMywyMzN2MjU5SDEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwczQuNDc3LDEwLDEwLDEwaDQ5MmM1LjUyMywwLDEwLTQuNDc3LDEwLTEwUzUwNy41MjMsNDkyLDUwMiw0OTJ6IE0zODYsNDkySDEyNgoJCQl2LTIwaDI2MFY0OTJ6IE0zODYsNDUySDEyNnYtMjBoMjYwVjQ1MnogTTM4Niw0MTJIMTI2di0yMGgyNjBWNDEyeiBNMzg2LDM3MkgxMjZ2LTIwaDI2MFYzNzJ6IE0zODYsMzMySDEyNnYtMjBoMjYwVjMzMnoKCQkJIE00MjksNDkyaC0yM1YzMDJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMEgxMTZjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTkwSDgzVjIzM2MwLTk1LjY2OCw3Ny4zODMtMTczLjUsMTcyLjUtMTczLjUKCQkJQzM1MS4xNjgsNTkuNSw0MjksMTM3LjMzMiw0MjksMjMzVjQ5MnogTTQ2OSw0OTJoLTIwVjIzM2MwLTEwNi42OTYtODYuODA0LTE5My41LTE5My41LTE5My41CgkJCWMtNTEuNjM5LDAtMTAwLjA2MywyMC4xMzctMTM2LjM1Miw1Ni43MDJDODIuOTQsMTMyLjY4NCw2MywxODEuMjY3LDYzLDIzM3YyNTlINDNWMjMzYzAtMTE3LjQ0OSw5NS41NTEtMjEzLDIxMy0yMTMKCQkJczIxMyw5NS41NTEsMjEzLDIxM1Y0OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",kxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MDguNTQxIDIxOC4zODQtMTYyLjUwNy0yMDMuMTM0Yy03Ljc1My05LjY5Mi0xOS4zMTgtMTUuMjUtMzEuNzI5LTE1LjI1aC04My4xNTVjLTguNzAzIDAtMTUuNzgzIDcuMDgtMTUuNzgzIDE1Ljc4M3YxNi41NjdjMCA4LjcwMyA3LjA4IDE1Ljc4MyAxNS43ODMgMTUuNzgzaDMzLjkxN3YxMTcuNTMzaC0zMC42MzJsLTEyMC4zMzQtMTUwLjQxNmMtNy43NTMtOS42OTEtMTkuMzE4LTE1LjI1LTMxLjcyOS0xNS4yNWgtNjYuNTg5Yy04LjcwMyAwLTE1Ljc4MyA3LjA4LTE1Ljc4MyAxNS43ODN2MTYuNTY3YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2gxNy4zNXYxMTcuNTMzaC0xNy4zNWMtOC43MDMuMDAxLTE1Ljc4MyA3LjA4MS0xNS43ODMgMTUuNzg0djMwNi40ODNjMCAxMy4yNzEgMTAuNzk2IDI0LjA2NyAyNC4wNjcgMjQuMDY3aDQ3Mi4xNWM4LjcwMyAwIDE1Ljc4My03LjA4IDE1Ljc4My0xNS43ODN2LTc0LjU1LTE0My4yODktNTAuMTM0YzAtMy41NzEtMS4yMjgtNy4wNzMtMy40NTktOS44NnptLTYyLjAyNCAxOTUuNzgzYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtNzQuNTUtMTIxLjkwOGwxOC4xMzQgMjIuNjY3djE3NC41NzR6bS0yMzEuOTM0IDBjLS40MzIgMC0uNzg0LS4zNTItLjc4NC0uNzgzdi02Ny4wNWgxOC4xMzN2NjcuODMzem0tNjYuMjY2LTgyLjgzNGMtLjQzMiAwLS43ODQtLjM1Mi0uNzg0LS43ODR2LTY3LjA0OWgxOC4xMzN2NjcuODMzem0tNjYuMjY3LTgyLjgzM2MtLjQzMiAwLS43ODMtLjM1Mi0uNzgzLS43ODN2LTY3LjA1aDE4LjEzM3Y2Ny44MzN6bTgzLjYxNi05MS43NDF2OC45MDhoLTE4LjEzM3YtMzEuNTc0em02Ni4yNjcgODIuODMzdjguOTA4aC0xOC4xMzN2LTMxLjU3NHptODEuMjY3IDguMTI1di0xOTYuNDI4Yy4wNzIuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zODl2MTc0LjU3NWgtMTcuMzVjLS40MzEgMC0uNzgzLS4zNTItLjc4My0uNzgzem0xMTcuNTMzIDUwLjQ4M2gtMTguMTMzdi0xMjIuNjkxbDE4LjEzNCAyMi42Njd2MTAwLjAyNHptLTE4LjEzMyAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bS0xNSAxOC4xMzNoLTE3LjM1Yy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4NHYtNzQuNTQ5LTEyMS45MDhsMTguMTMzIDIyLjY2NnptLTMzLjEzMy0xMTUuOTY2aC0xOC4xMzR2LTEyMi42OTFsMTguMTM0IDIyLjY2N3ptLTE4LjEzNCAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzN2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzg0aC04NC40NHYtNTIuOTU1LTE0Ljg3OXptLTk5LjQwMSAxNy41MDl2MTAwLjAyNGgtMTguMTMzdi0xMjIuNjkxbDUuMDg2IDYuMzU3em0tMTUwLjY2Ni0xODguMzMzIDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzMgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptMzMuMTMzLTUuMTU4IDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzQgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptLTExNC40LTk3LjgzM2gtMTguMTMzdi0xMTQuMzc4Yy4wNzMuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zOXptMTUgNjQuN2gxOC4xMzN2MTguMTMzaC0xOC4xMzN6bTY2LjI2NiA4Mi44MzNoMTguMTM0djE4LjEzM2gtMTguMTMzdi0xOC4xMzN6bTY2LjI2NyA4Mi44MzNoMTguMTMzdjE4LjEzM2gtMTguMTMzem0zMy4xMzMtNDkuN2gxNTAuNjY3djY3LjA1YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMTUwLjcwN3ptMjA3LjMxNi03Ny4zNDYgOS42MTggMTIuMDIydjEwMC4wMjRoLTE4LjEzM3YtMTIyLjY5em0tOC41MTUgMTI3LjA0NmgxOC4xMzN2MTguMTMzaC0xOC4xMzN6bS0yNDguNS0zNjMuNjgzdi0xNi41NjdjMC0uNDMyLjM1Mi0uNzgzLjc4My0uNzgzaDgzLjE1NWM3LjgzIDAgMTUuMTI1IDMuNTA2IDIwLjAxNyA5LjYybDE2Mi41MDcgMjAzLjEzNGMwIC4wMDEuMDAxLjAwMS4wMDIuMDAyLjEwOS4xMzcuMTcuMzExLjE3LjQ4OHYyOC43NTNsLTE3MS44NjYtMjE0LjgzMWMtNC41OTMtNS43NC0xMS40NDItOS4wMzItMTguNzkzLTkuMDMyaC0uNjQyLTc0LjU1Yy0uNDMyLS4wMDEtLjc4My0uMzUyLS43ODMtLjc4NHptNjcuODMzIDE1Ljc4M3Y4NC40aC0xOC4xMzR2LTg0LjR6bS0xOC4xMzQgOTkuNGgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzR2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzgzaC0xOC4xNzR2LTIwLjI1NmMwLTMuNTctMS4yMjgtNy4wNzItMy40NTgtOS44NTkgMC0uMDAxIDAtLjAwMSAwLS4wMDFsLTMwLjE3NC0zNy43MThoNTEuNzY2em0tMjgzLjItMTQ4LjMxN3YtMTYuNTY3YzAtLjQzMS4zNTItLjc4My43ODMtLjc4M2g2Ni41ODhjNy44MyAwIDE1LjEyNSAzLjUwNiAyMC4wMTYgOS42MmwxNjIuNTA4IDIwMy4xMzRjLjExLjEzOC4xNzEuMzEzLjE3MS40OXYyOC43NTRsLTE3MS44NjUtMjE0LjgzMmMtNC41OTItNS43NC0xMS40NDItOS4wMzMtMTguNzkzLTkuMDMzaC0uNjQyLTU3Ljk4M2MtLjQzMSAwLS43ODMtLjM1MS0uNzgzLS43ODN6bTUxLjI2NyAxNS43ODN2ODQuNGgtMTguMTM0di04NC40em0tMTguMTM0IDk5LjRoMTguMTMzdjE4LjEzM2gtMTguMTMzem0tMjQuMDY2IDM0OS40NjdjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2N3YtMzA2LjQ4M2MwLS40MzIuMzUyLS43ODQuNzgzLS43ODRoNTAuNDgzdjY3LjA1YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2g1MC40ODN2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODQgMTUuNzg0IDE1Ljc4NGg1MC40ODR2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODMgMTUuNzg0IDE1Ljc4M2g1MC40ODN2NjcuMDVjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yNDAuMjE3em00NzIuOTMzLS43ODNjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yMTYuMTljLjAxMy0uMjYxLjA0LS41MTkuMDQtLjc4M3YtNjcuMDVoMjE2LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+",Yxe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk4LDMwLjU5OGgtMTUyYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjQwLjAwM2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDIwLjAwMXY3NC43OTRoLTE5MAoJCQkJYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjQwLjAwMmMwLDUuNTIzLDQuNDc4LDEwLDEwLDEwSDIwMHY3NC43OTZIMTBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NDAuMDAxYzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQkJCWgxMy45OTZWNDcxLjRjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGgxODEuNzZjMi4yNTYsMCw0LjQ0NS0wLjc2Myw2LjIxMy0yLjE2NWwyODYuMjQzLTIyNi45NzIKCQkJCWMyLjM5Mi0xLjg5NiwzLjc4Ni00Ljc4MiwzLjc4Ni03LjgzNVY4MC42MDFWNDAuNTk4QzUxMS45OTgsMzUuMDc1LDUwNy41MjIsMzAuNTk4LDUwMS45OTgsMzAuNTk4eiBNMTg5Ljk5OSwyMDUuMzk3di0yMC4wMDIKCQkJCWgxODB2MjAuMDAySDE4OS45OTl6IE0yMCwzNDAuMTk0di0yMC4wMDFoMTgwdjIwLjAwMUgyMHogTTQ5MS45OTgsMTA5Ljg3OWgtNDEuMDM1Yy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJCQljMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg0MS4wMzV2MTA5LjcxNUwyMTIuMjcxLDQ2MS40SDQzLjk5NnYtNjIuMjUzaDQxLjAzNmM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMEg0My45OTYKCQkJCXYtMTguOTUzSDIxMGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi00MC4wMDF2LTg0Ljc5NmgxNTkuOTk5YzUuNTIzLDAsMTAtNC40NzcsMTAtMTB2LTQwLjAwMlY5MC42MDFoMTAxLjk5OVYxMDkuODc5egoJCQkJIE00OTEuOTk4LDcwLjYwMWgtMTMyVjUwLjU5OGgxMzJWNzAuNjAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTQsMzc5LjE0NGgtMC4yMzZjLTUuNTI0LDAtMTAsNC40NzctMTAsMTBzNC40NzYsMTAsMTAsMTBIMTE0YzUuNTIyLDAsMTAtNC40NzcsMTAtMTBTMTE5LjUyMiwzNzkuMTQ0LDExNCwzNzkuMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjEuOTk4LDEyOS44OGgwLjIzNWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMGgtMC4yMzVjLTUuNTIzLDAtMTAsNC40NzctMTAsMTAKCQkJCVM0MTYuNDc1LDEyOS44OCw0MjEuOTk4LDEyOS44OHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",vxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNS41MTggNjRoMi45ODZjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDIxaDQ0Ljk5MnYyLjAyMWMwIC41NTMuNDQ3IDEgMSAxaDNjLjU1MyAwIDEtLjQ0NyAxLTF2LTYwLjVjMC0xLjM3OC0xLjEyMS0yLjUtMi41LTIuNXMtMi41IDEuMTIyLTIuNSAyLjV2MTUuNTA0aC0yLjk5OHYtMTMuOTk2YzAtLjU1Mi0uNDQ3LTEtMS0xaC0xNS45OTZjLS41NTMgMC0xIC40NDgtMSAxdjEzLjk5NWgtMy4wMDJ2LTEzLjk5NWMwLS41NTItLjQ0Ny0xLTEtMWgtMTUuOTk2Yy0uNTUzIDAtMSAuNDQ4LTEgMXYxMy45OTVoLTN2LTE1LjUwM2MwLTEuMzc4LTEuMTIxLTIuNS0yLjUtMi41cy0yLjUgMS4xMjItMi41IDIuNWwuMDE0IDYwLjVjMCAuNTUzLjQ0NyAxIDEgMXptNTAuOTc4LTYxLjVjMC0uMjc2LjIyNS0uNS41LS41cy41LjIyNC41LjV2NTkuNWgtMXptLTE0Ljk5OCAyLjUwOGgyLjAwMnYxLjAwOGgtMi4wMDJ6bS01Ljk5NiAwaDMuOTk2djIuMDA4YzAgLjU1Mi40NDcgMSAxIDFoNC4wMDJjLjU1MyAwIDEtLjQ0OCAxLTF2LTIuMDA4aDMuOTk4djEyLjk5NWgtMTMuOTk2em0tMTUuMDAyIDBoMnYxLjAwOGgtMnptLTUuOTk2IDBoMy45OTZ2Mi4wMDhjMCAuNTUyLjQ0NyAxIDEgMWg0Yy41NTMgMCAxLS40NDggMS0xdi0yLjAwOGg0djEyLjk5NWgtMTMuOTk2em0tNSAxNC45OTVoNCAxNS45OTYgNS4wMDIgMTUuOTk2IDMuOTk4djFoLTQ0Ljk5MnptMCAzaDQ0Ljk5MnYxMy45NzFoLTIuOTk2di0xMC45OWMwLS41NTItLjQ0Ny0xLTEtMWgtMzdjLS41NTMgMC0xIC40NDgtMSAxdjEwLjk5MWgtMi45OTZ6bTE5Ljk5NiA2Ljk4MWg1Yy41NTMgMCAxLS40NDggMS0xdi0yaDE0djkuOTkxaC0zNXYtOS45OTFoMTR2MmMwIC41NTIuNDQ3IDEgMSAxem0xLTJ2LTFoM3Yxem0tMjAuOTk2IDEwLjk5MWgzLjk5NiAzNyAzLjk5NnYxLjAwMmgtNDQuOTkyem0wIDMuMDAyaDQ0Ljk5MnYxNGgtMi45OTR2LTExLjk5YzAtLjU1My0uNDQ3LTEtMS0xaC0xNC4wMDJjLS41NTMgMC0xIC40NDctMSAxdjExLjk5aC0yLjk5NHYtOC45ODhjMC0uNTUzLS40NDctMS0xLTFoLTYuOTk0Yy0uMDA0IDAtLjAwNi0uMDAyLS4wMS0uMDAycy0uMDA2LjAwMi0uMDEuMDAyaC0zLjk4MmMtLjAwNCAwLS4wMDYtLjAwMi0uMDEtLjAwMnMtLjAwNi4wMDItLjAxLjAwMmgtNi45ODZjLS41NTMgMC0xIC40NDctMSAxdjguOTg4aC0zem0zMS45OTYgNi4wMTdoNC4wMDJjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDA4aDN2MTAuOTloLTEyLjAwMnYtMTAuOTloM3YyLjAwOGMwIC41NTMuNDQ3IDEgMSAxem0xLTJ2LTEuMDA4aDIuMDAydjEuMDA4em0tMjIgNWg0LjAwMmMuNTUzIDAgMS0uNDQ3IDEtMXYtMi4wMDZoNS4wMDR2Ny45ODhoLTE2LjAwMnYtNy45ODhoNC45OTZ2Mi4wMDZjMCAuNTUzLjQ0NyAxIDEgMXptMS0ydi0xLjAwNmgyLjAwMnYxLjAwNnptLTExLjk5NiA4Ljk4M2g0IDE4LjAwMiA0Ljk5NCAxNC4wMDIgMy45OTR2MS4wMDJoLTQ0Ljk5MnptLTIuNS01NS45NzdjLjI3NSAwIC41LjIyNC41LjV2NTkuNWgtLjk4NmwtLjAxNC01OS41YzAtLjI3Ni4yMjUtLjUuNS0uNXoiLz4KICAgIDwvZz4KPC9zdmc+",bxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMgM3YtMmgtMzFjLS41NTMgMC0xIC40NDctMSAxdjhjMCAuNTUzLjQ0NyAxIDEgMWgxdjUwaC0zMnYyaDMzIDQgOCA0IDEzdi0yaC0xMnYtNWgxMnYtMmgtMTMtNC0zdi0yaDIwdi0yaC0yMWMtLjU1MyAwLTEgLjQ0Ny0xIDF2NGMwIC41NTMuNDQ3IDEgMSAxaDN2NWgtNnYtNTBoMjR2LTJoLTI1LTQtMXYtNnptLTE2IDUzaDJ2NWgtMnptLTEwLTQ1djUwaC0ydi01MHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjEgMzJjMC0yLjExOC0uNTAxLTQuMjM4LTEuNDQ3LTYuMTMxbC0uNjU4LTEuMzE2Yy0uMzQtLjY3OC0xLjQ0OS0uNjc4LTEuNzg5IDBsLS42NTggMS4zMTZjLS45NDcgMS44OTMtMS40NDggNC4wMTMtMS40NDggNi4xMzEgMCAuMjQxLjAyOS40ODEuMDQyLjcyMi0uNjQ2LS40ODMtMS4zODMtLjgzNy0yLjE3Mi0xLjAzNGwtMi42MjgtLjY1N2MtLjMzOC0uMDg3LS43MDEuMDE1LS45NDkuMjYzcy0uMzQ5LjYwOC0uMjYzLjk0OWwuNjU3IDIuNjI5Yy4yNjkgMS4wNzMuODIzIDIuMDU1IDEuNjA1IDIuODM2Ljc4MS43ODIgMS43NjMgMS4zMzcgMi44MzYgMS42MDVoLjAwMWwuNjcyLjE2OC0xLjI1LjYyNS44OTUgMS43ODkgMi41NTQtMS4yNzd2Mi4zODJoLTdjLS41NTMgMC0xIC40NDctMSAxdjRjMCAuNTUzLjQ0NyAxIDEgMWgxLjA5NWwuOTEgOS4xYy4wNTEuNTEuNDgxLjkuOTk1LjloMTBjLjUxNCAwIC45NDQtLjM5Ljk5NS0uOWwuOTEtOS4xaDEuMDk1Yy41NTMgMCAxLS40NDcgMS0xdi00YzAtLjU1My0uNDQ3LTEtMS0xaC03di0yLjM4MmwyLjU1MyAxLjI3Ni44OTUtMS43ODktMS4yNS0uNjI1LjY3Mi0uMTY4aC4wMDFjMS4wNzMtLjI2OSAyLjA1NS0uODIzIDIuODM2LTEuNjA1Ljc4Mi0uNzgxIDEuMzM3LTEuNzYzIDEuNjA1LTIuODM3bC42NTctMi42MjhjLjA4Ni0uMzQxLS4wMTUtLjcwMS0uMjYzLS45NDlzLS42MDktLjM1LS45NDktLjI2M2wtMi42MjkuNjU3Yy0uNzg4LjE5Ny0xLjUyNS41NTEtMi4xNzEgMS4wMzQuMDE0LS4yNC4wNDMtLjQ4LjA0My0uNzIxem0xLjA5NSAyNWgtOC4xODlsLS44LThoOS43OXptMi45MDUtMTBoLTE0di0yaDE0em0tNy0xOS43MzRjLjY1NSAxLjQ4NSAxIDMuMTEgMSA0LjczNHMtLjM0NSAzLjI0OS0xIDQuNzM0Yy0uNjU1LTEuNDg1LTEtMy4xMS0xLTQuNzM0cy4zNDUtMy4yNDkgMS00LjczNHptLTUuMjkzIDkuMDI3Yy0uNTI1LS41MjUtLjg5OC0xLjE4Ni0xLjA4LTEuOTA3bC0uMjUyLTEuMDExIDEuMDEuMjUyYy43MjMuMTgyIDEuMzgzLjU1NSAxLjkwOCAxLjA4cy44OTggMS4xODYgMS4wOCAxLjkwN2wuMjUyIDEuMDExLTEuMDEtLjI1MmMtLjcyMi0uMTgyLTEuMzgzLS41NTUtMS45MDgtMS4wOHptMTAuOTA3LTIuNjY2IDEuMDExLS4yNTItLjI1MiAxLjAxYy0uMTgyLjcyMy0uNTU1IDEuMzgzLTEuMDggMS45MDhzLTEuMTg2Ljg5OC0xLjkwOCAxLjA4bC0xLjAxLjI1Mi4yNTItMS4wMWMuMTgyLS43MjMuNTU1LTEuMzgzIDEuMDgtMS45MDhzMS4xODYtLjg5OCAxLjkwNy0xLjA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im01IDE1aDEzYzIuNzU3IDAgNS0yLjI0MyA1LTVzLTIuMjQzLTUtNS01Yy0uNDM4IDAtLjg3Ny4wNjEtMS4zMDMuMTgtLjc2Ni0yLjQ1NS0zLjAyMy00LjE4LTUuNjk3LTQuMTgtMy4zMDkgMC02IDIuNjkxLTYgNi0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0em0wLTZjLjI3IDAgLjUzMy4wNTQuNzgzLjE2LjM1Mi4xNDcuNzU2LjA4NSAxLjA0My0uMTYzLjI4OC0uMjQ4LjQxMS0uNjM5LjMxNy0xLjAwNy0uMDk4LS4zNzctLjE0My0uNjkyLS4xNDMtLjk5IDAtMi4yMDYgMS43OTQtNCA0LTQgMi4wODEgMCAzLjc4NCAxLjU3NCAzLjk2MSAzLjY2Mi4wMjguMzQ1LjIzMy42NDguNTQuODA2LjMwOC4xNTguNjc1LjE0NS45Ny0uMDMyLjQ4My0uMjkuOTk3LS40MzYgMS41MjktLjQzNiAxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM2gtMTNjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yeiIvPgogICAgPC9nPgo8L3N2Zz4=",Qxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",Uxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOSA1MDkiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNTkuMiAwdjg5LjhoLTg5LjgwMXY4OS44aC04OS44djg5LjhoLTg5Ljc5OXY4OS44aC04OS44djE0OS44aDUwOXYtNTA5em0xMTkuOCA0NzloLTQ0OXYtODkuOGg4OS44di04OS44aDg5Ljh2LTg5LjhoODkuOHYtODkuOGg4OS44di04OS44aDg5Ljh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTY4LjQ0OCAxNzYuOTU2IDk0LjA0MS05NC4wNC0zLjYyOSA0My4wNjYgMjkuODk1IDIuNTE5IDguNTYyLTEwMS42MjYtMTAxLjYyNyA4LjU2MiAyLjUxOCAyOS44OTQgNDMuMDY4LTMuNjI4LTk0LjA0MSA5NC4wNHoiLz4KICAgIDwvZz4KPC9zdmc+",$xe="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y0Mi42NjcKCQkJQzI0Ny40NjcsMzcuOTU2LDI0My42NDQsMzQuMTMzLDIzOC45MzMsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzcuODY3LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjc2LjhjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzUzQ4Ni40LDgxLjUxLDQ4Ni40LDc2LjhWNDIuNjY3CgkJCUM0ODYuNCwzNy45NTYsNDgyLjU3NywzNC4xMzMsNDc3Ljg2NywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE3OS4yLDBIOC41MzNDMy44MjMsMCwwLDMuODIzLDAsOC41MzN2NDk0LjkzM0MwLDUwOC4xNzcsMy44MjMsNTEyLDguNTMzLDUxMkgxNzkuMmM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzMKCQkJVjguNTMzQzE4Ny43MzMsMy44MjMsMTgzLjkxLDAsMTc5LjIsMHogTTE3MC42NjcsNDk0LjkzM2gtMTUzLjZWMTcuMDY3aDE1My42VjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMzU4LjRIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxMzYuNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gzMjQuMjY3CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzY2LjkzM0M1MTIsMzYyLjIyMyw1MDguMTc3LDM1OC40LDUwMy40NjcsMzU4LjR6IE00OTQuOTMzLDQ5NC45MzNoLTMwNy4yVjM3NS40NjdoMzA3LjIKCQkJVjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMEgxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjguNTMzQzUxMiwzLjgyMyw1MDguMTc3LDAsNTAzLjQ2NywweiBNNDk0LjkzMywzNC4xMzNoLTMwNy4yVjE3LjA2N2gzMDcuMlYzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzNi41MzMsMjQ3LjQ2N2gtMjUuNmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDI1LjZjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMxNDEuMjQ0LDI0Ny40NjcsMTM2LjUzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTAuOTMzLDI0Ny40NjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YyNS42YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YyNTYKCQkJQzExOS40NjcsMjUxLjI5LDExNS42NDQsMjQ3LjQ2NywxMTAuOTMzLDI0Ny40Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Ni45MzMsNDE4LjEzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDUxLjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMzNzEuNjQ0LDQxOC4xMzMsMzY2LjkzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDEuMzMzLDQxOC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxNy4wNjdjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCXYtMTcuMDY3QzM0OS44NjcsNDIxLjk1NiwzNDYuMDQ0LDQxOC4xMzMsMzQxLjMzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yOTAuMTMzLDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMyOTguNjY3LDM3Ljk1NiwyOTQuODQ0LDM0LjEzMywyOTAuMTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywxMTkuNDY3Yy00NS45MzUsMC03Ni44LDE3LjE0My03Ni44LDQyLjY2N1YxNzkuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTcuMDY3djc2LjgKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM0gzMzIuOGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhIMzU4LjRjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzM2Ni45MzMsMTM2LjYxLDMzNi4wNjgsMTE5LjQ2NywyOTAuMTMzLDExOS40Njd6IE0zNDkuODY3LDE3MC42NjdIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZIMjU2di03Ni44CgkJCWMwLTQuNzEtMy44MjMtOC41MzMtOC41MzMtOC41MzNIMjMwLjR2LTguNTMzYzAtMTIuNDA3LDIwLjkzMi0yNS42LDU5LjczMy0yNS42czU5LjczMywxMy4xOTMsNTkuNzMzLDI1LjZWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQ5Ljg2NywxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDI2LjY2NywxMzYuNjEsMzk1LjgwMiwxMTkuNDY3LDM0OS44NjcsMTE5LjQ2N3ogTTQwOS42LDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJSDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3YzAtOS44MTMtNC43MzYtMTguNTc3LTEzLjM4LTI1LjU1N2MzNi40MzcsMC44MDIsNTYuMDQ3LDEzLjU0Miw1Ni4wNDcsMjUuNTU3CgkJCVYxNzAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDkuNiwxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjg1LjMzMwoJCQljMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczM2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhoMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUM0ODYuNCwxMzYuNjEsNDU1LjUzNSwxMTkuNDY3LDQwOS42LDExOS40Njd6IE00NjkuMzMzLDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJaDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTMzA0LjI0Nyw4NS4zMzMsMjkwLjEzMyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMzNjYuOTMzLDM3Ljk1NiwzNjMuMTEsMzQuMTMzLDM1OC40LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzU4LjQsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzM3Mi41MTQsODUuMzMzLDM1OC40LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDNDM1LjIsMzcuOTU2LDQzMS4zNzcsMzQuMTMzLDQyNi42NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjYuNjY3LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVM0NDAuNzgxLDg1LjMzMyw0MjYuNjY3LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDg2LjQsMzI0LjI2N0gxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzA3LjIKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YzMzIuOEM0OTQuOTMzLDMyOC4wOSw0OTEuMTEsMzI0LjI2Nyw0ODYuNCwzMjQuMjY3eiBNNDc3Ljg2NywzNTguNEgxODcuNzMzdi0xNy4wNjdoMjkwLjEzMwoJCQlWMzU4LjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2OS4zMzMsMzkyLjUzM2gtMjU2Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NjguMjY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNTYKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNjguMjY3QzQ3Ny44NjcsMzk2LjM1Niw0NzQuMDQ0LDM5Mi41MzMsNDY5LjMzMywzOTIuNTMzeiBNNDYwLjgsNDYwLjhIMjIxLjg2N3YtNTEuMkg0NjAuOAoJCQlWNDYwLjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Pxe="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTUuNzU4IDYxLTEuNTY5LTUuNTdjNC4wNTMtMi4yMDQgNi44MTEtNi41MDEgNi44MTEtMTEuNDN2LTFjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMnYtMTBjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMmgtMjZjLTEuMTAzIDAtMiAuODk3LTIgMnYyYzAgMS4xMDMuODk3IDIgMiAydjEwYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MmMwIDEuMTAzLjg5NyAyIDIgMnYxYzAgNC45MjkgMi43NTggOS4yMjYgNi44MTEgMTEuNDNsLTEuNTY5IDUuNTdoLTEzLjM0M2MtLjQ2NS0yLjI3OS0yLjQ4NC00LTQuODk5LTRoLTF2LTkuMDAzYzQuNjkzLTEuOTYzIDgtNi42IDgtMTEuOTk3di03aC0xOHYtNGg0djJoMnYtMmMwLTEuMTAzLS44OTctMi0yLTJoLTYtMS0xYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NGgtMnY3YzAgNS4zOTcgMy4zMDcgMTAuMDM0IDggMTEuOTk3djkuMDAzaC0xYy0yLjQxNCAwLTQuNDM0IDEuNzIxLTQuODk5IDRoLTUuMTAxdjJoNjR2LTJ6bS0yMC43NTktMzhoMjYuMDAxdjJoLTI2em0yLjAwMSA4aDR2LTJoLTR2LTJoMjJ2MTBoLTIyem0tMi4wMDEgOGgyNi4wMDF2MmgtMjZ6bTIuMDAxIDV2LTFoMjJ2MWMwIDYuMDY1LTQuOTM1IDExLTExIDExcy0xMS00LjkzNS0xMS0xMXptNi42NjEgMTIuMjRjMS4zNi40ODMgMi44MTYuNzYgNC4zMzkuNzZzMi45NzktLjI3NyA0LjMzOS0uNzZsMS4zNCA0Ljc2aC0xMS4zNTh6bS0zNi42NjEtMzEuMjRoMSAxdjRoLTJ6bTIwIDZ2MmgtMjJ2LTJ6bS0yMiA1di0xaDIydjFjMCA2LjA2NS00LjkzNSAxMS0xMSAxMXMtMTEtNC45MzUtMTEtMTF6bTggMTIuNjM3Yy45NjUuMjI5IDEuOTY2LjM2MyAzIC4zNjNzMi4wMzUtLjEzNCAzLS4zNjN2OC4zNjNoLTZ6bS0zIDEwLjM2M2gxMmMxLjMwMiAwIDIuNDAyLjgzOSAyLjgxNiAyaC0xNy42MzJjLjQxNC0xLjE2MSAxLjUxNC0yIDIuODE2LTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQgMjFoMjRjMS42NTQgMCAzLTEuMzQ2IDMtM3YtMTRjMC0xLjY1NC0xLjM0Ni0zLTMtM2gtMjRjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2MTRjMCAxLjY1NCAxLjM0NiAzIDMgM3ptLTEtMTdjMC0uNTUxLjQ0OC0xIDEtMWgyNGMuNTUyIDAgMSAuNDQ5IDEgMXYxNGMwIC41NTEtLjQ0OCAxLTEgMWgtMjRjLS41NTIgMC0xLS40NDktMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyLjUxNWgydjE2Ljk3MWgtMnoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC00LjU1NiAxMSkiLz4KICAgICAgICA8cGF0aCBkPSJtMjAgMi41MTVoMnYxNi45NzFoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzA3IC0uNzA3IC43MDcgLjcwNyAtMS42MjcgMTguMDcxKSIvPgogICAgICAgIDxwYXRoIGQ9Im0zNSA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzUgMTNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxMWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDExaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgM2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDMgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDEzaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTUgMTdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01NyAxNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUzIDE1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Wxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",Bxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTIzOC45MzMsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWNzYuOGMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWNDIuNjY3CgkJCUMyNDcuNDY3LDM3Ljk1NiwyNDMuNjQ0LDM0LjEzMywyMzguOTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDc3Ljg2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1M0ODYuNCw4MS41MSw0ODYuNCw3Ni44VjQyLjY2NwoJCQlDNDg2LjQsMzcuOTU2LDQ4Mi41NzcsMzQuMTMzLDQ3Ny44NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzkuMiwwSDguNTMzQzMuODIzLDAsMCwzLjgyMywwLDguNTMzdjQ5NC45MzNDMCw1MDguMTc3LDMuODIzLDUxMiw4LjUzMyw1MTJIMTc5LjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVY4LjUzM0MxODcuNzMzLDMuODIzLDE4My45MSwwLDE3OS4yLDB6IE0xNzAuNjY3LDQ5NC45MzNoLTE1My42VjE3LjA2N2gxNTMuNlY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDM1OC40SDE3OS4yYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjM2Ni45MzNDNTEyLDM2Mi4yMjMsNTA4LjE3NywzNTguNCw1MDMuNDY3LDM1OC40eiBNNDk0LjkzMyw0OTQuOTMzaC0zMDcuMlYzNzUuNDY3aDMwNy4yCgkJCVY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDBIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMyNC4yNjcKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y4LjUzM0M1MTIsMy44MjMsNTA4LjE3NywwLDUwMy40NjcsMHogTTQ5NC45MzMsMzQuMTMzaC0zMDcuMlYxNy4wNjdoMzA3LjJWMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzYuNTMzLDI0Ny40NjdoLTI1LjZjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNS42YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMTQxLjI0NCwyNDcuNDY3LDEzNi41MzMsMjQ3LjQ2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzMywyNDcuNDY3Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MjUuNmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWMjU2CgkJCUMxMTkuNDY3LDI1MS4yOSwxMTUuNjQ0LDI0Ny40NjcsMTEwLjkzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjYuOTMzLDQxOC4xMzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1MS4yYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMzcxLjY0NCw0MTguMTMzLDM2Ni45MzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQxLjMzMyw0MTguMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTcuMDY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQl2LTE3LjA2N0MzNDkuODY3LDQyMS45NTYsMzQ2LjA0NCw0MTguMTMzLDM0MS4zMzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMjk4LjY2NywzNy45NTYsMjk0Ljg0NCwzNC4xMzMsMjkwLjEzMywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsMTE5LjQ2N2MtNDUuOTM1LDAtNzYuOCwxNy4xNDMtNzYuOCw0Mi42NjdWMTc5LjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDE3LjA2N3Y3Ni44CgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNIMzMyLjhjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44SDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUMzNjYuOTMzLDEzNi42MSwzMzYuMDY4LDExOS40NjcsMjkwLjEzMywxMTkuNDY3eiBNMzQ5Ljg2NywxNzAuNjY3SDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWMjU2SDI1NnYtNzYuOAoJCQljMC00LjcxLTMuODIzLTguNTMzLTguNTMzLTguNTMzSDIzMC40di04LjUzM2MwLTEyLjQwNywyMC45MzItMjUuNiw1OS43MzMtMjUuNnM1OS43MzMsMTMuMTkzLDU5LjczMywyNS42VjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM0OS44NjcsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzSDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2ODUuMzMzCgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoNTkuNzMzYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNzYuOGgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzQyNi42NjcsMTM2LjYxLDM5NS44MDIsMTE5LjQ2NywzNDkuODY3LDExOS40Njd6IE00MDkuNiwxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCUgzNTguNGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjYsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzaC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDg2LjQsMTM2LjYxLDQ1NS41MzUsMTE5LjQ2Nyw0MDkuNiwxMTkuNDY3eiBNNDY5LjMzMywxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCWgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjdjMC05LjgxMy00LjczNi0xOC41NzctMTMuMzgtMjUuNTU3YzM2LjQzNywwLjgwMiw1Ni4wNDcsMTMuNTQyLDU2LjA0NywyNS41NTcKCQkJVjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzMwNC4yNDcsODUuMzMzLDI5MC4xMzMsODUuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTguNCwzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMzY2LjkzMywzNy45NTYsMzYzLjExLDM0LjEzMywzNTguNCwzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVMzNzIuNTE0LDg1LjMzMywzNTguNCw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyNi42NjcsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NTEuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTUxLjIKCQkJQzQzNS4yLDM3Ljk1Niw0MzEuMzc3LDM0LjEzMyw0MjYuNjY3LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2Nyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTNDQwLjc4MSw4NS4zMzMsNDI2LjY2Nyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4Ni40LDMyNC4yNjdIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMwNy4yCgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzMyLjhDNDk0LjkzMywzMjguMDksNDkxLjExLDMyNC4yNjcsNDg2LjQsMzI0LjI2N3ogTTQ3Ny44NjcsMzU4LjRIMTg3LjczM3YtMTcuMDY3aDI5MC4xMzMKCQkJVjM1OC40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjkuMzMzLDM5Mi41MzNoLTI1NmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjY4LjI2N2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjU2CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTY4LjI2N0M0NzcuODY3LDM5Ni4zNTYsNDc0LjA0NCwzOTIuNTMzLDQ2OS4zMzMsMzkyLjUzM3ogTTQ2MC44LDQ2MC44SDIyMS44Njd2LTUxLjJINDYwLjgKCQkJVjQ2MC44eiIvPgogICAgPC9nPgo8L3N2Zz4K",Jxe="PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE5NC44MzYgNThoLTExOS4zMjhjLTI0LjQ0NSAwLTQ0LjMzNiAxOS44ODktNDQuMzM2IDQ0LjMzNnYxMTkuMzI4YzAgMjQuNDQ3IDE5Ljg5MSA0NC4zMzYgNDQuMzM2IDQ0LjMzNmgxMTkuMzI4YzI0LjQ0NSAwIDQ0LjMzNi0xOS44ODkgNDQuMzM2LTQ0LjMzNnYtMTE5LjMyOGMwLTI0LjQ0Ny0xOS44OTEtNDQuMzM2LTQ0LjMzNi00NC4zMzZ6bTM2LjMzNiAxNjMuNjY0YzAgMjAuMDM1LTE2LjMwMSAzNi4zMzYtMzYuMzM2IDM2LjMzNmgtMTE5LjMyOGMtMjAuMDM1IDAtMzYuMzM2LTE2LjMwMS0zNi4zMzYtMzYuMzM2di0xMTkuMzI4YzAtMjAuMDM1IDE2LjMwMS0zNi4zMzYgMzYuMzM2LTM2LjMzNmgxMTkuMzI4YzIwLjAzNSAwIDM2LjMzNiAxNi4zMDEgMzYuMzM2IDM2LjMzNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM1LjE3MiA3NGMtNDkuNjI1IDAtOTAgNDAuMzczLTkwIDkwczQwLjM3NSA5MCA5MCA5MCA5MC00MC4zNzMgOTAtOTAtNDAuMzc1LTkwLTkwLTkwem0wIDE3MmMtNDUuMjE1IDAtODItMzYuNzg1LTgyLTgyczM2Ljc4NS04MiA4Mi04MiA4MiAzNi43ODUgODIgODItMzYuNzg1IDgyLTgyIDgyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzUuMTcyIDkwYy00MC44MDUgMC03NCAzMy4xOTUtNzQgNzRzMzMuMTk1IDc0IDc0IDc0IDc0LTMzLjE5NSA3NC03NC0zMy4xOTUtNzQtNzQtNzR6bTAgMTQwYy0zNi4zOTEgMC02Ni0yOS42MDctNjYtNjZzMjkuNjA5LTY2IDY2LTY2IDY2IDI5LjYwNyA2NiA2Ni0yOS42MSA2Ni02NiA2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNzkuMTcyIDEzOHYzMmMwIDIuMjA5IDEuNzg5IDQgNCA0aDEwNGMyLjIxMSAwIDQtMS43OTEgNC00di0zMmMwLTIuMjA5LTEuNzg5LTQtNC00aC0xMDRjLTIuMjExIDAtNCAxLjc5MS00IDR6bTggNGg5NnYyNGgtOTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNy4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyOS4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE0NS4xNzIgMTUxLjQ3Yy0yLjUwMiAwLTQuNTMgMi4wMjgtNC41MyA0LjUzIDAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTMgMi41MDEgMCA0LjUzLTIuMDI4IDQuNTMtNC41My0uMDAxLTIuNTAyLTIuMDI5LTQuNTMtNC41My00LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDEuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTMuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjE5OS4xNzIiIGN5PSIzOCIgcj0iNCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzkuMTcyIDQ2Yy02LjYxNyAwLTEyIDUuMzgzLTEyIDEyczUuMzgzIDEyIDEyIDEyIDEyLTUuMzgzIDEyLTEyLTUuMzgzLTEyLTEyLTEyem0wIDE2Yy0yLjIwNyAwLTQtMS43OTUtNC00czEuNzkzLTQgNC00IDQgMS43OTUgNCA0LTEuNzkzIDQtNCA0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuODI4IDExMCAyLjgyOC0yLjgyOGMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2cy00LjA5NC0xLjU2Mi01LjY1NiAwbC0yLjgyOCAyLjgyOC0yLjgyOC0yLjgyOGMtMS41NjItMS41NjItNC4wOTQtMS41NjItNS42NTYgMHMtMS41NjIgNC4wOTQgMCA1LjY1NmwyLjgyOCAyLjgyOC0yLjgyOCAyLjgyOGMtMS41NjIgMS41NjItMS41NjIgNC4wOTQgMCA1LjY1Ni43ODEuNzgxIDEuODA1IDEuMTcyIDIuODI4IDEuMTcyczIuMDQ3LS4zOTEgMi44MjgtMS4xNzJsMi44MjgtMi44MjggMi44MjggMi44MjhjLjc4MS43ODEgMS44MDUgMS4xNzIgMi44MjggMS4xNzJzMi4wNDctLjM5MSAyLjgyOC0xLjE3MmMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuMTcyIDE5NGgtNC45MzRsNS44NTktOS43NjhjMS4xMzctMS44OTUuNTIzLTQuMzUyLTEuMzcxLTUuNDg4LTEuODk4LTEuMTM3LTQuMzUyLS41MjEtNS40ODggMS4zNzFsLTkuNDk2IDE1LjgyNmMtLjc0MiAxLjIzNi0uNzYyIDIuNzc1LS4wNTEgNC4wMjlzMi4wMzkgMi4wMjkgMy40OCAyLjAyOWg1LjUyN2wtNS4xMDUgMTAuMjExYy0uOTg4IDEuOTc3LS4xODggNC4zNzkgMS43ODkgNS4zNjcuNTc0LjI4NyAxLjE4NC40MjIgMS43ODUuNDIyIDEuNDY5IDAgMi44NzktLjgwOSAzLjU4Mi0yLjIxMWw4LTE2Yy42MjEtMS4yNC41NTUtMi43MTMtLjE3Ni0zLjg5My0uNzI5LTEuMTc2LTIuMDE0LTEuODk1LTMuNDAxLTEuODk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDcuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTE5LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjMuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc1LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Rxe="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMi41IDUxMi41IiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsNDE4LjVjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjV2NzguNWMwLDkuNjczLDE1LDkuNjczLDE1LDBWNDI2QzUxMi4yNSw0MjEuODU4LDUwOC44OTMsNDE4LjUsNTA0Ljc1LDQxOC41eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsMjQ5LjM1NWgtNTguODk0di0yNy4wNDNoMTguMDExYzEwLjk2NCwwLDE5Ljg4My04LjkxOSwxOS44ODMtMTkuODgzVjE5Ljg4NEM0ODMuNzUsOC45Miw0NzQuODMxLDAsNDYzLjg2NywwICAgSDE4NC4wNTljLTEwLjk2NCwwLTE5Ljg4Myw4LjkyLTE5Ljg4MywxOS44ODR2MjYuOTI5YzAsOS42NzMsMTUsOS42NzMsMTUsMFYxOS44ODRjMC0yLjY5MywyLjE5LTQuODg0LDQuODgzLTQuODg0aDI3OS44MDkgICBjMi42OTIsMCw0Ljg4MywyLjE5MSw0Ljg4Myw0Ljg4NHYxNDUuNDI5aC0yMi44OTRWODUuNDA2YzAtMi40NzUtMS4yMjEtNC43OS0zLjI2My02LjE4OGMtMi4wNDEtMS4zOTgtNC42NDEtMS42OTktNi45NDktMC44MDUgICBjLTEuOTYyLDAuNzYxLTQzLjM0LDE3LjY1OS01Mi4xNDYsODYuODk5SDE3OS4xNzZ2LTc5LjVjMC05LjY3My0xNS05LjY3My0xNSwwdjExNi42MTdjMCwxMC45NjQsOC45MTksMTkuODgzLDE5Ljg4MywxOS44ODMgICBoMTAwLjc0NnYyNy4wNDNIMTE0LjUxNmMxNi42MTItMTYuNTk0LDE4LjIzNC00Mi44NzEsMTguMjM0LTY0Ljk0OWMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41aC00MC41di0xNC4xNTkgICBjMjQuMDYsNS4xMTQsNTAuMjg4LTE0LjYxNiw0OS45NjctMzkuNjQ1Yy0wLjA0My0zLjM1Mi0wLjQ1OS02Ljc1OC0zLjU1Ni04LjgwM2MtMTQuMjQ2LTkuNDAzLTMzLjg2Ni01LjQ4NS00Ni40MTEsNC43ODN2LTEzLjUyOSAgIGMyMS40MzMtMTQuNzkzLDIzLjAyNS00OS42MjksMi40MjktNjUuODg5Yy0yLjA3NS0xLjYzOC00LjM3MS0zLjE5Ny02LjgzNC00LjIwMWMtMTAuNTcxLTQuMzE2LTIyLjE5MSwxNC41MTMtMjQuNzEsMjEuNzgxICAgYy01Ljk1MSwxNy4xNzQtMC41NjgsMzYuOTI2LDE0LjExNCw0Ny44MjR2MTMuOTMxYy05LjYyNy03LjgzMy0yMi4yLTExLjY5Ni0zNC40ODMtOS4yMzZjLTUuMDc2LDEuMDE3LTEzLjk3MSwzLjMxNC0xNS4wNzgsOS40NjcgICBjLTQuNzU4LDI2LjQ3NiwyNS4yMzUsNDguNjQzLDQ5LjU2Miw0My41Mzl2MTQuMTM3aC00My41Yy00LjE0MywwLTcuNSwzLjM1OC03LjUsNy41YzAsMjIuMDQ3LDEuMTk2LDQ4LjM1NywxNy44MDYsNjQuOTQ5SDcuNzUgICBjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjVWNTA0LjVjMCw5LjY3MywxNSw5LjY3MywxNSwwdi0zNWgxMzUuNXYzNWMwLDkuNjczLDE1LDkuNjczLDE1LDB2LTE5MWgyNjUuMjE1ICAgYzAuMDM5LDIuNjEzLDAuMjg5LDE2LjY4OCwwLjMyLDIwLjkwNkgzMDQuMzU2Yy0yOS42NTEsMC01MS42Miw3LjcxOC02NS4yOTgsMjIuOTM5Yy0xNi40MjIsMTguMjc0LTE0LjI2LDQwLjQyNi0xNC4xNTksNDEuMzU5ICAgYzAuNDA4LDMuODExLDMuNjI0LDYuNzAxLDcuNDU3LDYuNzAxaDk2Ljg5NHYxMy41aC0yOS41Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMjkuNVY0OTdoLTk2Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMTAwLjgyNSAgIGMwLjgzMiwwLjMxOCwxLjczMSwwLjUsMi42NzUsMC41czEuODQzLTAuMTgyLDIuNjc1LTAuNUg0NDAuMjVjOS42NzMsMCw5LjY3My0xNSwwLTE1aC05NnYtOTEuNTk0aDUwLjEwNiAgIGMxNy4yMTgsMCwyOS42NjQtNC4xNTEsMzguMDUyLTEyLjY5YzE0LjY5OS0xNC45NjUsMTQuMjUxLTQwLjAyMiwxMy42ODQtNzEuNzQ3Yy0wLjA0NC0yLjQ1NC0wLjA4Ny00Ljk1LTAuMTI1LTcuNDdoNTEuMjgzVjM4NCAgIGMwLDkuNjczLDE1LDkuNjczLDE1LDBWMjU2Ljg1NUM1MTIuMjUsMjUyLjcxMyw1MDguODkzLDI0OS4zNTUsNTA0Ljc1LDI0OS4zNTV6IE05Ny4yNzYsMTI4LjQ5NiAgIGM5LjY1Mi02LjEyNCwxOC4wNDktNC42ODEsMjIuNDIxLTMuMTM3Yy0xLjMyLDE1LjU0Ny0yMC4yMjEsMjYuODYtMzQuNjY4LDIxLjk2M0M4NS42MzUsMTQyLjUxMSw4OC4wNzcsMTM0LjMzMiw5Ny4yNzYsMTI4LjQ5NnogICAgTTQ3LjQyNCwxNDQuMDk3Yy02LjM3Mi00LjA0My0xMS43OTItMTEuMDA1LTEyLjQ5My0xOC43NDJjMTUuMDItNS4yOCwzMi42ODMsNi40MTgsMzQuNjQsMjEuOTY3ICAgQzYyLjI4NiwxNDkuNzkyLDUzLjgxLDE0OC4xNDgsNDcuNDI0LDE0NC4wOTd6IE03Ny42MzcsNTEuMTY5YzEyLjU2LDkuNTU0LDExLjk5NywzMS4zNTktMC4wNDQsNDEuMDU0ICAgYy0zLjcxNS0zLjA1NS05LjMxOS05LjQ4MS05LjMxOS0yMC40NDFDNjguMjczLDYwLjM1Miw3My45OTEsNTQuMDM1LDc3LjYzNyw1MS4xNjl6IE0zMy44NTYsMTkxLjkwNmg4My43ODEgICBjLTEuMjcsNDAuNTE1LTEzLjM2Miw1Ni41LTQxLjg4OCw1Ni41QzQ2LjgzMiwyNDguNDA3LDM1LjA3MiwyMzIuOTM2LDMzLjg1NiwxOTEuOTA2eiBNNDIxLjcwNywzODIuMjA1ICAgYy01LjQyMSw1LjUxOS0xNC4zNjcsOC4yMDEtMjcuMzUxLDguMjAxSDI0MC4wMTNjMC42OTQtNS45ODgsMy4wMDYtMTUuMDI2LDEwLjIwMy0yMy4wMzUgICBjMTAuNzEyLTExLjkyMSwyOC45MjctMTcuOTY1LDU0LjE0MS0xNy45NjVoMTI2LjczNkM0MzAuNDczLDM2NC4xMDUsNDI4LjI1MSwzNzUuNTQzLDQyMS43MDcsMzgyLjIwNXogTTQ2OC43NSwxODAuMzEzdjIyLjExNyAgIGMwLDIuNjkzLTIuMTksNC44ODMtNC44ODMsNC44ODNoLTE4LjAxMXYtMjdINDY4Ljc1eiBNNDE5LjEyNiwxMTEuMzU4YzQuMDg0LTUuMzk1LDguMTktOS40MSwxMS43My0xMi4zMjJ2MTg3Ljg2MyAgIGMtMy41MjgtMy4wMjMtNy42MDQtNy4xNDYtMTEuNjU5LTEyLjYyMmMtMTQuNjE1LTE5LjczOS0yMi4zNDEtNDguMDQ5LTIyLjM0MS04MS44NzIgICBDMzk2Ljg1NiwxNTguNjMyLDQwNC41NTgsMTMwLjYwNiw0MTkuMTI2LDExMS4zNTh6IE0zODMuODczLDIyMi4zMTNjMS40MzIsMTAuMDk1LDMuNTUzLDE5LjA3Nyw2LjEzOCwyNy4wNDNoLTI2Ljg5di0yNy4wNDMgICBIMzgzLjg3M3ogTTE3OS4xNzYsMjAyLjQyOXYtMjIuMTE3aDIwMi45OTNjLTAuNDY5LDguOTkyLTAuNDE1LDE4LjAxNSwwLjE2OSwyN0gxODQuMDU5ICAgQzE4MS4zNjYsMjA3LjMxMywxNzkuMTc2LDIwNS4xMjIsMTc5LjE3NiwyMDIuNDI5eiBNMjk5LjgwNSwyMjIuMzEzaDQ4LjMxNnYyNy4wNDNoLTQ4LjMxNlYyMjIuMzEzeiBNMzk1LjkwMSwyNjQuMzU1ICAgYzcuODE1LDE2LjcsMTcuNTE2LDI3LjQ4OCwyNS4zNjUsMzQuMTQ1SDE1LjI1di0zNC4xNDVIMzk1LjkwMXogTTE1LjI1LDQ1NC41di02M2gxMzUuNXY2M0gxNS4yNXogTTE1MC43NSwzNzYuNUgxNS4yNXYtNjNoMTM1LjUgICBWMzc2LjV6IE00NDUuODU2LDI5OC41di0zNC4xNDVoNTEuMzk0VjI5OC41SDQ0NS44NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTU0Ljc1LDM1Mi41aDU3YzkuNjczLDAsOS42NzMtMTUsMC0xNWgtNTdDNDUuMDc3LDMzNy41LDQ1LjA3NywzNTIuNSw1NC43NSwzNTIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTExLjc1LDQxNS41aC01N2MtOS42NzMsMC05LjY3MywxNSwwLDE1aDU3QzEyMS40MjMsNDMwLjUsMTIxLjQyMyw0MTUuNSwxMTEuNzUsNDE1LjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Fxe={Anteroom:Mxe,Attic:cxe,Balcony:uxe,Barn:lxe,Basement:Nxe,Bathroom:Lxe,Bedroom:gxe,"Boiler Room":"PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSItMyAwIDQ4MCA0ODAiIHdpZHRoPSI0ODBwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTIzNC45Njg3NSA2NGMtMTMuMjUzOTA2IDAtMjQgMTAuNzQ2MDk0LTI0IDI0czEwLjc0NjA5NCAyNCAyNCAyNCAyNC0xMC43NDYwOTQgMjQtMjQtMTAuNzQ2MDk0LTI0LTI0LTI0em0wIDMyYy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04czMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzA2Ljk2ODc1IDE2MGgtMTQ0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoMTQ0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LTh6bS04IDY0aC0xMjh2LTQ4aDEyOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE4Ni45Njg3NSAxOTJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjE4Ljk2ODc1IDE5MmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjYuOTY4NzUgMTkyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEzOC45Njg3NSA3MnYzMmgxNnYtMjRoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ni45Njg3NSAwaC0zMmMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOGgtNTZ2LTU2aDI0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTQ4YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0di0xNmMtLjAyNzM0NC0yMi4wODIwMzEtMTcuOTIxODc1LTM5Ljk3MjY1Ni00MC00MGgtMTZ2LTE2aC0xNnYxNmgtMTcuNzYxNzE5bC02LjQ4MDQ2OS0yNS45Mzc1Yy0uODg2NzE4LTMuNTYyNS00LjA4NTkzNy02LjA2MjUtNy43NTc4MTItNi4wNjI1aC00OGMtMy42NzE4NzUgMC02Ljg3MTA5NCAyLjUtNy43NjE3MTkgNi4wNjI1bC02LjQ4MDQ2OSAyNS45Mzc1aC0xNy43NTc4MTJ2LTE2aC0xNnYxNmgtMTZjLTIyLjA4MjAzMS4wMjczNDQtMzkuOTcyNjU2IDE3LjkxNzk2OS00MCA0MHY1NmgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgyNHYyMjRoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTQxLjcxMDkzOGMxMi4zNzEwOTQgNi4zNzUgMjYuMDgyMDMxIDkuNzAzMTI2IDQwIDkuNzEwOTM4aDh2MjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGg4YzEzLjkxNDA2Mi0uMDA3ODEyIDI3LjYyODkwNi0zLjMzNTkzOCA0MC05LjcxMDkzOHY0MS43MTA5MzhoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTE3Nmg1NmMzMC45MTAxNTYtLjAzOTA2MiA1NS45NjA5MzgtMjUuMDg5ODQ0IDU2LTU2di0xOTJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOHptLTg4IDEwNHYzMmgtMTZ2LTMyem0tMTYxLjc1MzkwNi04OGgzNS41MDM5MDZsNCAxNmgtNDMuNTAzOTA2em0tOTQuMjQ2MDk0IDU2YzAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNGgxNzZjMTMuMjUzOTA2IDAgMjQgMTAuNzQ2MDk0IDI0IDI0djU2aC0yMjR6bS0zMiAxMjB2LTQ4aDE2djQ4em04MCAyNzJoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNjkuNTU4NTk0YzQuNTM1MTU2IDYuNDg0Mzc1IDkuOTE0MDYyIDEyLjMzMjAzMiAxNiAxNy4zOTA2MjV6bTExMi0xNmgtMzJ2LTE2aDMyem0xMjggNDhoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNTIuMTY3OTY5YzYuMDgyMDMxLTUuMDU4NTkzIDExLjQ2NDg0NC0xMC45MDYyNSAxNi0xNy4zOTA2MjV6bTAtMTIwYy0uMDQyOTY5IDM5Ljc0NjA5NC0zMi4yNTM5MDYgNzEuOTU3MDMxLTcyIDcyaC04MGMtMzkuNzQ2MDk0LS4wNDI5NjktNzEuOTU3MDMxLTMyLjI1MzkwNi03Mi03MnYtMTY4aDIyNHptMTEyLTExMmMtLjAyNzM0NCAyMi4wODIwMzEtMTcuOTIxODc1IDM5Ljk3MjY1Ni00MCA0MGgtNTZ2LTE2aDU2YzEzLjI1MzkwNiAwIDI0LTEwLjc0NjA5NCAyNC0yNHYtMTg0aDE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNTYuNjI1IDUzLjY1NjI1IDEwLjM0Mzc1LTEwLjM0Mzc1IDE4LjM0Mzc1IDE4LjM0Mzc1IDExLjMxMjUtMTEuMzEyNS0yNC0yNGMtMy4xMjUtMy4xMjEwOTQtOC4xODc1LTMuMTIxMDk0LTExLjMxMjUgMGwtMTAuOTM3NSAxMC45Mzc1LTM0LjM5ODQzOC0yNy41MjczNDQtMTAuMDA3ODEyIDEyLjQ5MjE4OCA0MCAzMmMzLjE4MzU5NCAyLjU1MDc4MSA3Ljc3MzQzOCAyLjI5Mjk2OCAxMC42NTYyNS0uNTg5ODQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMCA4Ny40MzM1OTQgNDAgMTZjMi45NzI2NTYgMS4xODM1OTQgNi4zNjMyODEuNDg0Mzc1IDguNjI1LTEuNzc3MzQ0bDExLjkxNzk2OS0xMS45MjE4NzUgMjYuODQ3NjU2IDEzLjQ2NDg0NCA3LjE1MjM0NC0xNC4zMjAzMTMtMzItMTZjLTMuMDc4MTI1LTEuNTM1MTU2LTYuNzk2ODc1LS45Mjk2ODctOS4yMzA0NjkgMS41MDM5MDZsLTEyLjI3MzQzOCAxMi4yMjY1NjMtMzUuMTAxNTYyLTE0LjA0Mjk2OXptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Carport:jxe,Cellar:yxe,Chamber:Txe,Corridor:dxe,"Dining Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K","Dining Room":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dining:Dxe,"Dressing Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTcuMDA0IDI3Ni4xNjljMC00LjEzOSAzLjM3NC03LjUxMiA3LjUxMi03LjUxMnM3LjQ4MyAzLjM3MyA3LjQ4MyA3LjUxMnYxMzcuMzQgMzkuOTk3YzAgNC4xMzktMy4zNDUgNy40ODMtNy40ODMgNy40ODNoLTQ5Ny4wMDRjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODMgMC0xMjQuNzU0IDAtMjQ5LjUzNiAwLTM3NC4yOTEgMC03Ljc2NyAzLjE3NS0xNC44MjUgOC4yNzctMTkuOTI4IDUuMTAzLTUuMTAzIDEyLjE2MS04LjI3NyAxOS45MjgtOC4yNzdoMTI0LjI0NGM3LjkwOSAwIDE1LjM2NCAzLjMxNiAyMC43MjIgOS4wOTkgNS4zNTctNS43ODMgMTIuODEyLTkuMDk5IDIwLjcyMi05LjA5OWgxMjQuMjQzYzcuODgxIDAgMTUuMzY0IDMuMzE2IDIwLjY5MyA5LjA5OSA1LjM1OC01Ljc4MyAxMi44MTMtOS4wOTkgMjAuNzIyLTkuMDk5aDEyNC4yNDRjNy43NjcgMCAxNC44MjYgMy4xNzUgMTkuOTI4IDguMjc3IDUuMTAyIDUuMTAzIDguMjc3IDEyLjE2MSA4LjI3NyAxOS45Mjh2MjUuNjI1IDEzNy4zNGMwIDQuMTM5LTMuMzQ1IDcuNTEyLTcuNDgzIDcuNTEyLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTEyOS44NTVoLTY3LjgzNXYxMi45MjZsNDYuODMgMjMuODM5YzQuMTk1IDIuMTI2IDcuMTE1IDUuNzU1IDguNDQ3IDkuODk0IDEuMzYgNC4xMzkgMS4xMzQgOC43ODctLjk5MiAxMi45NTQtMS40NDYgMi44MzUtMy42NTcgNS4xNTktNi4yOTMgNi43NzUtMi42NjQgMS42NDQtNS43MjYgMi41MjMtOC44NzIgMi41MjNoLTMuMzQ1djk1LjYxM2MwIDQuMTM5LTMuMzQ1IDcuNDg0LTcuNDg0IDcuNDg0aC03MS4xNWMtNC4xMzkgMC03LjQ4My0zLjM0NS03LjQ4My03LjQ4NHYtMzQuNTU0YzAtNC4xNjcgMy4zNDUtNy41MTIgNy40ODMtNy41MTIgNC4xMzkgMCA3LjUxMiAzLjM0NSA3LjUxMiA3LjUxMnYyNy4wNDNoNTYuMTI3di04OC4xMDJoLTU2LjEyN3YyNy4wNzFjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy40ODMtMy4zNzMtNy40ODMtNy41MTJ2LTI3LjA3MWgtMy4zNDVjLTQuNzA2IDAtOC45NTctMS44OTktMTIuMDE5LTQuOTg5LTMuMDktMy4wNjEtNC45ODktNy4zMTMtNC45ODktMTIuMDE5IDAtMy4zNDUuOTkyLTYuNTIgMi42OTMtOS4xNTYgMS43MjktMi42NjQgNC4xMzktNC44MTkgNi45NzQtNi4xOGw0Ni4wMzUtMjMuNDQzdi0xMy4xMjRoLTY3LjgzNHYyOTMuNzAxaDE1MC42NjN2LTEyOS44NTd6bS03My44NDMtMTM3LjE5OWMtLjgyMi0uNTEtMS42NzItLjUxLTIuNDk1IDBsLTQ1LjcyMyAyMy4zMDFjLS45MDcuMzQtMS40NzQuOTM2LTEuNDc0IDEuOTU2IDAgMS4xMDUuOTA3IDIuMDEzIDIuMDEzIDIuMDEzaDkyLjgwN2MuNzkzIDAgMS40NDYtLjM5NyAxLjc4Ni0xLjEwNS41MS0uOTkyLjE0Mi0yLjE4My0uODc4LTIuNjkzbC0xNS4zMzYtNy44MjNjLTkuMDQzLTQuNTkzLTE4LjA1Ny05LjE1OC0zMC43LTE1LjY0OXptLTE2NS44LS4wODVjLS43MDktLjQyNS0xLjQ3NC0uNDI1LTIuMjQgMGwtNDUuODY1IDIzLjM4NmMtLjg3OS4zNC0xLjQ0Ni45MzYtMS40NDYgMS45NTYgMCAxLjEwNS45MDcgMi4wMTMgMi4wMTMgMi4wMTNoOTIuODA3Yy43OTQgMCAxLjQ0Ni0uMzk3IDEuNzg2LTEuMTA1LjUxLS45OTIuMTQyLTIuMTgzLS44NzktMi42OTMtMTUuMzkyLTcuODI0LTMwLjgxMi0xNS42NDgtNDYuMTc2LTIzLjU1N3ptLTIxMS42NjYtMjYuNTZjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODRzMy4zNzMtNy41MTIgNy41MTItNy41MTJoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNzQgNy41MTIgNy41MTIgMCA0LjEzOS0zLjM3MyA3LjQ4NC03LjUxMiA3LjQ4NHptMCAxMDEuOTM0Yy00LjEzOSAwLTcuNTEyLTMuMzczLTcuNTEyLTcuNTEyczMuMzczLTcuNDgzIDcuNTEyLTcuNDgzaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzQ1IDcuNTEyIDcuNDgzIDAgNC4xMzktMy4zNzMgNy41MTItNy41MTIgNy41MTJ6bTAtMzMuOTg4Yy00LjEzOSAwLTcuNTEyLTMuMzQ1LTcuNTEyLTcuNDgzczMuMzczLTcuNTEyIDcuNTEyLTcuNTEyaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzczIDcuNTEyIDcuNTEycy0zLjM3MyA3LjQ4My03LjUxMiA3LjQ4M3ptMC0zMy45NTljLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJzMy4zNzMtNy40ODMgNy41MTItNy40ODNoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNDUgNy41MTIgNy40ODMgMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnptMjAyLjgyMi0yMC44NjN2LTEzLjEyNGgtNjcuODM0djEyOS44NTdjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTE2Mi45NjdjMC0zLjYyOC0xLjQ3NC02LjkxNy0zLjg4My05LjMyNi0yLjM4MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNi0zLjg4NGgtMTI0LjI0NGMtMy42MjggMC02LjkxNyAxLjUwMi05LjMyNyAzLjg4NC0yLjM4MSAyLjQwOS0zLjg4MyA1LjY5Ny0zLjg4MyA5LjMyNnYxOTIuMzYxaDE1LjMwOGM2LjA5NCAwIDExLjU5NCAyLjQ2NiAxNS41OSA2LjQ2NCAzLjk5NyAzLjk5NyA2LjQ5MiA5LjUyNSA2LjQ5MiAxNS41OXYyMy4zMDFjMCA2LjA2Ny0yLjQ5NSAxMS41OTQtNi40OTIgMTUuNTkxcy05LjQ5NiA2LjQ2My0xNS41OSA2LjQ2M2gtMTUuMzA4djEwNy4wMDloMTUwLjY2M3YtMTY5LjgyNWMwLTQuMTM5IDMuMzc0LTcuNTEyIDcuNTEyLTcuNTEyczcuNTEyIDMuMzczIDcuNTEyIDcuNTEydjEyOS44NTZoMTUwLjY2M3YtMjkzLjdoLTY3LjgzNHYxMi45MjZsNDYuNjMgMjMuNzI2YzQuMTY3IDIuMTI2IDcuMiA1LjUyOCA4LjY0NiAxMC4wMDcgMi40NjYgNy41NjgtLjUzOSAxNS41OS03LjI4NSAxOS43MjktMi42NjQgMS42NDQtNS43NTQgMi41MjMtOC44NzIgMi41MjNoLTkyLjgwN2MtNC43MDYgMC04Ljk1OC0xLjg5OS0xMi4wNDctNC45ODktMy4wNjEtMy4wNjEtNC45Ni03LjMxMy00Ljk2LTEyLjAxOSAwLTMuMzQ1Ljk5Mi02LjUyIDIuNjkzLTkuMTU2IDEuNzAxLTIuNjY0IDQuMTEtNC44MTkgNi45NzMtNi4xOHptLTIzMy41MjEgMTcyLjMyaDYuMDk0YzQuMTM5IDAgNy41MTIgMy4zNzMgNy41MTIgNy41MTJzLTMuMzczIDcuNTEyLTcuNTEyIDcuNTEyaC02LjA5NHYxMS4xOThoMTUuMzA4YzEuOTU2IDAgMy43MTMtLjc5NCA0Ljk4OS0yLjA2OSAxLjI3Ni0xLjMwNSAyLjA5OC0zLjA2MSAyLjA5OC00Ljk5di0yMy4zMDJjMC0xLjkyOC0uODIyLTMuNjg1LTIuMDk4LTQuOTg5LTEuMjc1LTEuMjc2LTMuMDMzLTIuMDY5LTQuOTg5LTIuMDY5aC0xNS4zMDh6bTMzMS4zNDUtMjE4LjU1NHYxOC4xMTNoMTUwLjY2M3YtMTguMTEzYzAtMy42MjgtMS40NzQtNi45MTctMy44ODMtOS4zMjYtMi40MDktMi4zODEtNS42OTgtMy44ODQtOS4zMjctMy44ODRoLTEyNC4yNDNjLTMuNjI4IDAtNi45MTcgMS41MDItOS4zMjYgMy44ODQtMi40MSAyLjQxLTMuODg0IDUuNjk4LTMuODg0IDkuMzI2em0tMTY1LjY1OCAxOC4xMTRoMTUwLjY2M3YtMTguMTE0YzAtMy42MjgtMS41MDItNi45MTctMy44ODMtOS4zMjYtMi40MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNy0zLjg4NGgtMTI0LjI0M2MtMy42MjkgMC02Ljk0NSAxLjUwMi05LjMyNyAzLjg4NC0yLjQxIDIuNDA5LTMuODgzIDUuNjk3LTMuODgzIDkuMzI2em0zMTYuMzIxIDMyMy42OTJoLTMxNi4zMjF2MjQuOTczaDMxNi4zMjJ2LTI0Ljk3M3oiLz4KICAgIDwvZz4KPC9zdmc+",Driveway:hxe,Entrance:zxe,"Equipment Room":"PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC00IDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTMwMy4wOTM3NSAxNzQuMjVjMy4zOTQ1MzEgMi4zNzg5MDYgOC4wNzAzMTIgMS41NTA3ODEgMTAuNDQ1MzEyLTEuODM5ODQ0bDE1Ljk1MzEyNi0yMi43ODkwNjJjMi4zNzg5MDYtMy4zOTQ1MzIgMS41NTQ2ODctOC4wNzAzMTMtMS44Mzk4NDQtMTAuNDQ1MzEzLTMuMzk0NTMyLTIuMzc1LTguMDcwMzEzLTEuNTUwNzgxLTEwLjQ0NTMxMyAxLjg0Mzc1bC0xNS45NTcwMzEgMjIuNzg1MTU3Yy0yLjM3NSAzLjM5NDUzMS0xLjU1MDc4MSA4LjA3MDMxMiAxLjg0Mzc1IDEwLjQ0NTMxMnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM0MS42NzE4NzUgMTU1Ljk4NDM3NS01LjQxNzk2OSAyNy4yODUxNTZjLS45MTc5NjggNC42NDA2MjUgMi42MzI4MTMgOC45NjA5MzggNy4zNjcxODggOC45NjA5MzggMy41MDc4MTIgMCA2LjY0MDYyNS0yLjQ3MjY1NyA3LjM0NzY1Ni02LjAzOTA2M2w1LjQxNDA2Mi0yNy4yODkwNjJjLjgwODU5NC00LjA2MjUtMS44MzIwMzEtOC4wMTE3MTktNS44OTQ1MzEtOC44MTY0MDYtNC4wNjY0MDYtLjgwNDY4OC04LjAxMTcxOSAxLjgzMjAzMS04LjgxNjQwNiA1Ljg5ODQzN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTMwOS41ODk4NDQgMTIxLjQ0OTIxOWMtMi4xNDQ1MzItMy41NDI5NjktNi43NTc4MTMtNC42NzE4NzUtMTAuMzAwNzgyLTIuNTI3MzQ0bC0yMy43ODkwNjIgMTQuNDIxODc1Yy0zLjU0Mjk2OSAyLjE0ODQzOC00LjY3MTg3NSA2Ljc2MTcxOS0yLjUyNzM0NCAxMC4zMDQ2ODggMi4xNTIzNDQgMy41NDI5NjggNi43NjU2MjUgNC42Njc5NjggMTAuMzA0Njg4IDIuNTIzNDM3bDIzLjc4OTA2Mi0xNC40MTc5NjljMy41NDI5NjktMi4xNDg0MzcgNC42NzE4NzUtNi43NjE3MTggMi41MjM0MzgtMTAuMzA0Njg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtODMuNjUyMzQ0IDE1Mi4xNzk2ODhjMi43NTc4MTIgMS4zNTkzNzQgNi4xMTMyODEgMS40MDYyNSA4Ljk2ODc1IDAgNy0zLjQ1MzEyNiAyOS44MzU5MzctMTYuNTA3ODEzIDI5LjgzNTkzNy0zOS40NjQ4NDQgMC0xOC4yMDMxMjUtMjEuMjE0ODQzLTI3LjA2NjQwNi0zNC4zMTI1LTE2LjA3NDIxOS01LjA2MjUtNC4yNjE3MTktMTEuOTQxNDA2LTUuODkwNjI1LTE4Ljc1MzkwNi00LjA4OTg0NC05LjMxNjQwNiAyLjQ1NzAzMS0xNS41NzAzMTMgMTAuNTYyNS0xNS41NzAzMTMgMjAuMTY0MDYzIDAgMjMuMDE1NjI1IDIyLjg0Mzc1IDM2LjAzMTI1IDI5LjgzMjAzMiAzOS40NjQ4NDR6bS0zLjc3NzM0NC00Mi4zNjcxODhjMS4zOTg0MzggMi40Njg3NSA0LjQ2ODc1IDQuNjI1IDguMDIzNDM4IDQuNzEwOTM4IDMuNTgyMDMxLjExMzI4MSA2Ljk3MjY1Ni0yLjA0Njg3NiA4LjQ2MDkzNy00LjY1MjM0NCAzLjA1NDY4Ny01LjM1NTQ2OSAxMS4wOTc2NTYtMy4xNDQ1MzIgMTEuMDk3NjU2IDIuODQ3NjU2IDAgMTIuNjkxNDA2LTEzLjM5NDUzMSAyMS41NjY0MDYtMTkuMzI0MjE5IDI0Ljg3NS01LjkyOTY4Ny0zLjI5Mjk2OS0xOS4zMTI1LTEyLjE0NDUzMS0xOS4zMTI1LTI0Ljg3NSAwLTYuMDQyOTY5IDguMDg1OTM4LTguMTMyODEyIDExLjA1NDY4OC0yLjkwNjI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMDMuNjE3MTg4aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDA2MjYtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTkzNzQtNy41IDcuNSAwIDQuMTQ0NTMxIDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMzAuMDI3MzQ0aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDQ1MzItMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjgtNy41IDcuNSAwIDQuMTQwNjI1IDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxNTYuNDM3NWgyOS42MzY3MTljNC4xNDQ1MzEgMCA3LjUtMy4zNTU0NjkgNy41LTcuNXMtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjktNy41IDcuNXMzLjM1NTQ2OSA3LjUgNy41IDcuNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NS43Njk1MzEgMTUuMDA3ODEyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY4IDcuNS03LjUgMC00LjE0NDUzMS0zLjM1NTQ2OS03LjQ5OTk5OTUtNy41LTcuNDk5OTk5NWgtNzMuNzEwOTM3Yy0uMTE3MTg4IDAtLjIzMDQ2OS4wMTE3MTg3LS4zNDc2NTYuMDE1NjI1LTIuNDk2MDk0LS4xMjg5MDY1LTUgLjk4NDM3NDUtNi41MzkwNjMgMy4xODM1OTM1bC0yNS44OTA2MjUgMzYuOTcyNjU3LTMyLjgzOTg0NC0yMi45OTYwOTRjLTE3LjM3MTA5NC0xMi4xNjQwNjMtMzguOTAyMzQ0LTE2LjI4OTA2My01OS41OTM3NS0xMS41MzkwNjNsLTIuNTk3NjU2LTEuODIwMzEyYy05LjU4OTg0NC02LjcxMDkzOC0yMi44MTY0MDYtNC4zNDc2NTctMjkuNSA1LjE5OTIxOWwtNS45Njg3NSA4LjUyMzQzN2MtNi42OTUzMTIgOS41NjI1LTQuMzYzMjgxIDIyLjgwMDc4MSA1LjIwMzEyNSAyOS40OTYwOTRsMi4wNDY4NzUgMS40MzM1OTNjLTYuODU5Mzc1IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDgyMDMyIDUzLjE3OTY4OCAzNy4yMzgyODJsNC4xOTE0MDYgMi45MzM1OTRjLTYuODUxNTYzIDMwLjU3MDMxMiAyNi44MDQ2ODcgNTQuMTE3MTg3IDUzLjE3NTc4MSAzNy4yMzgyODFsNC4xOTUzMTMgMi45MzM1OTNjLTYuODU5Mzc2IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDc4MTI2IDUzLjE3NTc4MSAzNy4yMzQzNzZsMi4wNTQ2ODcgMS40NDE0MDZjOS41NjY0MDYgNi42OTUzMTIgMjIuODAwNzgyIDQuMzYzMjgxIDI5LjQ5NjA5NC01LjIwMzEyNWw1Ljk2ODc1LTguNTIzNDM4YzYuNjk1MzEyLTkuNTYyNSA0LjM2MzI4MS0yMi44MDA3ODEtNS4xOTkyMTktMjkuNDk2MDkzbC0zLjI3MzQzNy0yLjI5Mjk2OWMtMi42MTMyODItMjEuMDY2NDA3LTEzLjg1NTQ2OS0zOS44ODY3MTktMzEuMjI2NTYzLTUyLjA1NDY4OGwtMzAuMTk5MjE5LTIxLjE0MDYyNSAyMy42NTIzNDQtMzMuNzc3MzQ0em0tMjE1LjQ1NzAzMSA0My40NzI2NTcgMjQuNjIxMDk0IDE3LjI0MjE4N2MtMTEuNzk2ODc1IDIuNzkyOTY5LTIzLjIyMjY1Ni01LjIzNDM3NS0yNC42MjEwOTQtMTcuMjQyMTg3em01Ny4zNjcxODggNDAuMTY3OTY5IDI0LjYyNSAxNy4yNDIxODdjLTExLjc2OTUzMiAyLjc5Njg3NS0yMy4yMjI2NTctNS4yMDcwMzEtMjQuNjI1LTE3LjI0MjE4N3ptNTcuMzcxMDkzIDQwLjE3MTg3NGMxNC45MTc5NjkgMTAuNDQ1MzEzIDkuNzc3MzQ0IDYuODQzNzUgMjQuNjI1IDE3LjI0MjE4OC0xMS43NzM0MzcgMi43OTY4NzUtMjMuMjIyNjU2LTUuMjE0ODQ0LTI0LjYyNS0xNy4yNDIxODh6bTY0LjEyODkwNyA2LjM0Mzc1LTUuOTY4NzUgOC41MjM0MzhjLTEuOTUzMTI2IDIuNzg5MDYyLTUuODEyNSAzLjQ3MjY1Ni04LjYwNTQ2OSAxLjUxOTUzMS0yLjQxMDE1Ny0xLjY4NzUtMTY5Ljg1OTM3NS0xMTguOTQxNDA2LTE3Mi4wMTk1MzEtMTIwLjQ0OTIxOS0yLjc2OTUzMi0xLjk0MTQwNi0zLjQ1NzAzMi01LjgzMjAzMS0xLjUxNTYyNi04LjYwNTQ2OGw1Ljk2ODc1LTguNTIzNDM4YzEuOTQ5MjE5LTIuNzgxMjUgNS44NDM3NS0zLjQ0OTIxOCA4LjYwNTQ2OS0xLjUxNTYyNWwxNzIuMDE5NTMxIDEyMC40NDUzMTNjMi43NzM0MzggMS45NDE0MDYgMy40NTcwMzIgNS44MzU5MzcgMS41MTU2MjYgOC42MDU0Njh6bS0xNC45MDIzNDQtMzYuMjg5MDYyYy03Ljg5NDUzMi01LjUzMTI1LTEyNS4wNDY4NzUtODcuNTU4NTk0LTEyOC43MTA5MzgtOTAuMTI1IDExLjQ3MjY1Ni4zNTE1NjIgMjIuNjcxODc1IDQgMzIuMjczNDM4IDEwLjcyMjY1Nmw3NS4zMjQyMTggNTIuNzQyMTg4YzkuNTk3NjU3IDYuNzIyNjU2IDE2Ljg1OTM3NiAxNiAyMS4xMTMyODIgMjYuNjYwMTU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDkwLjgyMDMxMiAzMTAuNTE1NjI1aC0yMTcuMzIwMzEyYy00LjE0NDUzMSAwLTcuNSAzLjM1OTM3NS03LjUgNy41IDAgNC4xNDQ1MzEgMy4zNTU0NjkgNy41MDM5MDYgNy41IDcuNTAzOTA2aDIxNy4zMjAzMTJjMy40MDYyNSAwIDYuMTc5Njg4IDIuNzY5NTMxIDYuMTc5Njg4IDYuMTc1NzgxdjEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzggNi4xNzk2ODgtNi4xNzk2ODggNi4xNzk2ODgtMy40NDUzMTIgMC00NjMuNjA5Mzc0IDAtNDY5LjY0MDYyNCAwLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc2OTUzMi02LjE3OTY4OC02LjE3OTY4OHYtMTMuNjc5Njg4YzAtMy40MDYyNSAyLjc3MzQzOC02LjE3NTc4MSA2LjE3OTY4OC02LjE3NTc4MWgyMTcuMzIwMzEyYzQuMTQ0NTMxIDAgNy41LTMuMzU5Mzc1IDcuNS03LjUwMzkwNiAwLTQuMTQwNjI1LTMuMzU1NDY5LTcuNS03LjUtNy41aC04NS4zNTU0NjljLjU5NzY1Ny0xLjk1MzEyNS45MjU3ODEtNC4wMjczNDQuOTI1NzgxLTYuMTc1Nzgxdi0xMy42Nzk2ODhjMC0xMS42Nzk2ODctOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODctMjEuMTc5Njg3aC0xMTEuNzEwOTM3Yy0xMS42Nzk2ODggMC0yMS4xNzk2ODggOS41LTIxLjE3OTY4OCAyMS4xNzk2ODd2MTMuNjc5Njg4YzAgNS4yMTQ4NDQgMS45MDIzNDQgOS45ODQzNzUgNS4wMzkwNjIgMTMuNjc5Njg3LTMuMTM2NzE4IDMuNjkxNDA3LTUuMDM5MDYyIDguNDY0ODQ0LTUuMDM5MDYyIDEzLjY3NTc4MXYxMy42Nzk2ODhjMCAxMS4zMjgxMjUgOC45NDUzMTIgMjAuNTc4MTI1IDIwLjEzNjcxOSAyMS4xMjg5MDZ2Ni42MDkzNzVjMCAxMS42Nzk2ODggOS41MDM5MDYgMjEuMTc5Njg4IDIxLjE3OTY4NyAyMS4xNzk2ODhoMjAuNzE0ODQ0djk1LjE0MDYyNWMwIDcuODc4OTA2IDYuNDEwMTU2IDE0LjI4OTA2MiAxNC4yOTI5NjkgMTQuMjg5MDYyaDE0LjE1MjM0M2M3Ljg3ODkwNyAwIDE0LjI5Mjk2OS02LjQxMDE1NiAxNC4yOTI5NjktMTQuMjg5MDYydi05NS4xNDA2MjVoMzAyLjQ2MDkzOHY5NS4xNDA2MjVjMCA3Ljg3ODkwNiA2LjQxMDE1NiAxNC4yODkwNjIgMTQuMjkyOTY5IDE0LjI4OTA2MmgxNC4xNTIzNDNjNy44ODI4MTMgMCAxNC4yOTI5NjktNi40MTAxNTYgMTQuMjkyOTY5LTE0LjI4OTA2MnYtOTUuMTQwNjI1aDIwLjcxMDkzOGMxMS42Nzk2ODcgMCAyMS4xNzk2ODctOS41IDIxLjE3OTY4Ny0yMS4xNzk2ODh2LTYuNjA5Mzc1YzExLjE5NTMxMy0uNTUwNzgxIDIwLjE0MDYyNS05LjgwMDc4MSAyMC4xNDA2MjUtMjEuMTI4OTA2di0xMy42Nzk2ODhjMC0xMS42NzU3ODEtOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODgtMjEuMTc5Njg3em0tNDc1LjgyMDMxMi0xOS44NTU0NjljMC0zLjQwNjI1IDIuNzczNDM4LTYuMTc5Njg3IDYuMTc5Njg4LTYuMTc5Njg3aDExMS43MTA5MzdjMy40MDYyNSAwIDYuMTc5Njg3IDIuNzczNDM3IDYuMTc5Njg3IDYuMTc5Njg3djEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzcgNi4xNzk2ODctNi4xNzk2ODcgNi4xNzk2ODdoLTExMS43MTA5MzdjLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc3MzQzNy02LjE3OTY4OC02LjE3OTY4N3ptNzQuNzY1NjI1IDE5OC4wNjI1aC0xMi43MzQzNzV2LTk0LjQyOTY4N2gxMi43MzQzNzV6bTM0NS4yMDMxMjUgMGgtMTIuNzM4Mjgxdi05NC40Mjk2ODdoMTIuNzM4Mjgxem00MS44OTA2MjUtMTE1LjYwOTM3NWMwIDMuNDA2MjUtMi43Njk1MzEgNi4xNzk2ODgtNi4xNzk2ODcgNi4xNzk2ODgtMTMuNzE0ODQ0IDAtNDE1LjAzNTE1NyAwLTQyOS4zNjMyODIgMC0zLjQwNjI1IDAtNi4xNzk2ODctMi43NzM0MzgtNi4xNzk2ODctNi4xNzk2ODh2LTYuNTU4NTkzaDQ0MS43MjI2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjguOTYwOTM4IDExMi41MjczNDRjNC4xNDQ1MzEgMCA3LjUtMy4zNTkzNzUgNy41LTcuNXYtNDEuMTM2NzE5YzAtMTYuMzE2NDA2LTEzLjI3MzQzOC0yOS41OTM3NS0yOS41ODk4NDQtMjkuNTkzNzVoLTE3Ny4yODEyNWMtMTYuMzE2NDA2IDAtMjkuNTg5ODQ0IDEzLjI3MzQzNy0yOS41ODk4NDQgMjkuNTkzNzV2MTE3LjI3NzM0NGMwIDE2LjMxNjQwNiAxMy4yNzM0MzggMjkuNTg5ODQzIDI5LjU4OTg0NCAyOS41ODk4NDNoMTc3LjI4MTI1YzE2LjMxNjQwNiAwIDI5LjU5Mzc1LTEzLjI3MzQzNyAyOS41OTM3NS0yOS41ODk4NDN2LTQxLjE0MDYyNWMwLTQuMTQwNjI1LTMuMzU5Mzc1LTcuNS03LjUwMzkwNi03LjUtNC4xNDA2MjYgMC03LjUgMy4zNTkzNzUtNy41IDcuNXY0MS4xNDA2MjVjMCA4LjA0Mjk2OS02LjU0Njg3NiAxNC41ODk4NDMtMTQuNTg5ODQ0IDE0LjU4OTg0M2gtMTc3LjI4MTI1Yy04LjA0Mjk2OSAwLTE0LjU4OTg0NC02LjU0Njg3NC0xNC41ODk4NDQtMTQuNTg5ODQzdi0xMTcuMjc3MzQ0YzAtOC4wNDY4NzUgNi41NDY4NzUtMTQuNTkzNzUgMTQuNTg5ODQ0LTE0LjU5Mzc1aDE3Ny4yODEyNWM4LjA0Mjk2OCAwIDE0LjU4OTg0NCA2LjU0Njg3NSAxNC41ODk4NDQgMTQuNTkzNzV2NDEuMTM2NzE5YzAgNC4xNDA2MjUgMy4zNTkzNzQgNy41IDcuNSA3LjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNC43NzM0MzggNjEuNTcwMzEyYy00LjE0NDUzMiAwLTcuNSAzLjM1OTM3Ni03LjUgNy41djEwNi45MTQwNjNjMCA0LjE0NDUzMSAzLjM1NTQ2OCA3LjUgNy41IDcuNWgxNjYuOTE0MDYyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY5IDcuNS03LjV2LTEwNi45MTQwNjNjMC00LjE0MDYyNC0zLjM1NTQ2OS03LjUtNy41LTcuNXptMTU5LjQxNDA2MiAxMDYuOTE0MDYzaC0xNTEuOTE0MDYydi05MS45MTQwNjNoMTUxLjkxNDA2MnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==","Front Yard":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMTI2LjQ5LDM2Ljk0N2MtMzEuNTc5LDAtNTcuMjcsMjUuNjkxLTU3LjI3LDU3LjI3YzAsMzEuNTc5LDI1LjY5MSw1Ny4yNyw1Ny4yNyw1Ny4yN2MzMS41NzgsMCw1Ny4yNy0yNS42OTEsNTcuMjctNTcuMjcKCQkJQzE4My43NjEsNjIuNjM4LDE1OC4wNywzNi45NDcsMTI2LjQ5LDM2Ljk0N3ogTTEyNi40OSwxMzEuNDg3Yy0yMC41NTEsMC0zNy4yNy0xNi43MTktMzcuMjctMzcuMjcKCQkJYzAtMjAuNTUxLDE2LjcxOS0zNy4yNywzNy4yNy0zNy4yN2MyMC41NSwwLDM3LjI3LDE2LjcxOSwzNy4yNywzNy4yN0MxNjMuNzYxLDExNC43NjgsMTQ3LjA0MiwxMzEuNDg3LDEyNi40OSwxMzEuNDg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMFYxMEMxMzYuNDksNC40NzcsMTMyLjAxNCwwLDEyNi40OSwweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMTU2LjA5N2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMHYtMTIuMzM4CgkJCUMxMzYuNDksMTYwLjU3NCwxMzIuMDE0LDE1Ni4wOTcsMTI2LjQ5LDE1Ni4wOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMC43MDgsODQuMjE3SDE5OC4zN2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzhjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCQlTMjE2LjIzLDg0LjIxNywyMTAuNzA4LDg0LjIxN3oiLz4KICAgICAgICA8cGF0aCBkPSJNNTQuNjEsODQuMjE3SDQyLjI3MmMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzljNS41MjMsMCwxMC00LjQ3Nyw5Ljk5OS0xMAoJCQlDNjQuNjEsODguNjk0LDYwLjEzNCw4NC4yMTcsNTQuNjEsODQuMjE3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMDAuOTc3LDE5LjcyOWMtMy45MDUtMy45MDUtMTAuMjM3LTMuOTA1LTE0LjE0MiwwbC05Ljg3Nyw5Ljg3N2MtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzCgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOWMyLjU1OSwwLDUuMTE5LTAuOTc2LDcuMDcxLTIuOTI5bDkuODc3LTkuODc3QzIwNC44ODMsMjkuOTY2LDIwNC44ODMsMjMuNjM0LDIwMC45NzcsMTkuNzI5CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIzLDE0NC42ODVjLTMuOTA2LTMuOTA1LTEwLjIzOC0zLjkwNS0xNC4xNDMsMGwtOS44NzcsOS44NzdjLTMuOTA1LDMuOTA2LTMuOTA1LDEwLjIzOCwwLDE0LjE0MwoJCQljMS45NTIsMS45NTMsNC41MTIsMi45MjksNy4wNzEsMi45MjlzNS4xMTktMC45NzYsNy4wNzItMi45MjlsOS44NzctOS44NzdDNzkuOTI4LDE1NC45MjIsNzkuOTI4LDE0OC41OSw3Ni4wMjMsMTQ0LjY4NXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIxLDI5LjYwNmwtOS44NzctOS44NzdjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDIsMGMtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzbDkuODc3LDkuODc3CgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOXM1LjExOS0wLjk3Niw3LjA3MS0yLjkyOUM3OS45MjcsMzkuODQzLDc5LjkyNywzMy41MTEsNzYuMDIxLDI5LjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDU5LjU0LDQ2OC4zODljLTAuMTI5LTAuNjQtMC4zMi0xLjI3LTAuNTctMS44N2MtMC4yNS0wLjYtMC41Ni0xLjE4LTAuOTItMS43MmMtMC4zNi0wLjU1LTAuNzgtMS4wNi0xLjI0LTEuNTMKCQkJYy0wLjQ2LTAuNDYtMC45Ny0wLjg3LTEuNTItMS4yNGMtMC41NC0wLjM2LTEuMTItMC42Ny0xLjczLTAuOTJjLTAuNTk5LTAuMjUtMS4yMjktMC40NC0xLjg3LTAuNTdjLTEuMjktMC4yNi0yLjYyLTAuMjYtMy45MDksMAoJCQljLTAuNjMxLDAuMTMtMS4yNjEsMC4zMi0xLjg3LDAuNTdjLTAuNjAxLDAuMjUtMS4xODEsMC41Ni0xLjcyMSwwLjkyYy0wLjU1LDAuMzctMS4wNiwwLjc4LTEuNTIsMS4yNAoJCQljLTAuNDYsMC40Ny0wLjg4LDAuOTgtMS4yNSwxLjUzYy0wLjM2LDAuNTQtMC42NywxLjEyLTAuOTIsMS43MmMtMC4yNSwwLjYtMC40NCwxLjIzLTAuNTcsMS44NwoJCQljLTAuMTMsMC42NTEtMC4xOSwxLjMwMS0wLjE5LDEuOTYxYzAsMC42NSwwLjA2LDEuMzEsMC4xOSwxLjk1YzAuMTMsMC42NCwwLjMyLDEuMjcsMC41NywxLjg3YzAuMjUsMC42LDAuNTYsMS4xOCwwLjkyLDEuNzMKCQkJYzAuMzcsMC41NCwwLjc5LDEuMDYsMS4yNSwxLjUyYzAuNDYsMC40NiwwLjk3LDAuODgsMS41MiwxLjI0YzAuNTQsMC4zNiwxLjEyLDAuNjcsMS43MjEsMC45MmMwLjYwOSwwLjI1LDEuMjM5LDAuNDQsMS44NywwLjU3CgkJCWMwLjY1LDAuMTMsMS4zMSwwLjIsMS45NiwwLjJjMC42NSwwLDEuMzEtMC4wNywxLjk0OS0wLjJjMC42NDEtMC4xMywxLjI3LTAuMzIsMS44Ny0wLjU3YzAuNjEtMC4yNSwxLjE5LTAuNTYsMS43My0wLjkyCgkJCWMwLjU1LTAuMzYsMS4wNi0wLjc4LDEuNTItMS4yNGMwLjQ2LTAuNDYsMC44OC0wLjk4LDEuMjQtMS41MmMwLjM2MS0wLjU1LDAuNjctMS4xMywwLjkyLTEuNzNjMC4yNS0wLjYsMC40NC0xLjIzLDAuNTctMS44NwoJCQlzMC4yLTEuMywwLjItMS45NUM0NTkuNzQsNDY5LjY4OSw0NTkuNjcsNDY5LjAzOSw0NTkuNTQsNDY4LjM4OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjczOSw0NjAuMzQ2SDYyLjEzOGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgzNDcuNmM1LjUyMywwLDEwLTQuNDc3LDEwLjAwMS0xMAoJCQlDNDE5LjczOSw0NjQuODIzLDQxNS4yNjEsNDYwLjM0Niw0MDkuNzM5LDQ2MC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMS41NjMsNDI3LjkzMWgtNi44MDljLTMuODA2LTIxLjMxMi0yMi40NzYtMzcuNTQtNDQuODY0LTM3LjU0Yy0zLjMsMC02LjU5MSwwLjM2Mi05LjgwMywxLjA2N1YyOTMuMjkKCQkJYzM2LjQ4Mi00LjkwMiw2NC43MDQtMzYuMjM2LDY0LjcwNC03NC4wMzdjMC0xOS43MDktNy43ODEtMzguNTMxLTIxLjUyNC01Mi40NjRjMC4xODYtMS44MTQsMC4yNzgtMy42NDEsMC4yNzgtNS40NjgKCQkJYzAtMjkuNDc3LTIzLjk4MS01My40NTgtNTMuNDU4LTUzLjQ1OGMtMjkuNDc3LDAtNTMuNDU4LDIzLjk4Mi01My40NTgsNTMuNDU4YzAsMS44MjcsMC4wOTMsMy42NTMsMC4yNzcsNS40NjcKCQkJYy0xMy43NDEsMTMuOTM0LTIxLjUyMywzMi43NTYtMjEuNTIzLDUyLjQ2NWMwLDM3LjgwMiwyOC4yMjMsNjkuMTM2LDY0LjcwNCw3NC4wMzd2ODkuNjJjLTQuNjg1LTEuNjMyLTkuNzE2LTIuNTItMTQuOTUxLTIuNTIKCQkJYy0yNS4xMjksMC00NS41NzMsMjAuNDQ0LTQ1LjU3Myw0NS41NzR2MS45NjhoLTguNTA2di0zNS4xM2gwLjAwMWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi00M2MwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC0wLjAwMQoJCQl2LTQ3LjMyOWMwLTIuODQ0LTEuMjExLTUuNTUzLTMuMzMtNy40NUwzMTYuMjcsMjQ2Ljg2Yy0zLjc5Ny0zLjM5OS05LjU0My0zLjM5OS0xMy4zNCwwbC0yNC43ODcsMjIuMTkxbC0yNC43ODgtMjIuMTkxCgkJCWMtMy43OTctMy4zOTgtOS41NDMtMy4zOTgtMTMuMzQsMGwtMjQuNzg4LDIyLjE5MWwtMjQuNzg4LTIyLjE5MWMtMy43OTctMy4zOTktOS41NDMtMy4zOTktMTMuMzQsMC4wMDFsLTI0Ljc4NywyMi4xOTEKCQkJbC0yNC43ODgtMjIuMTkxYy0zLjc5Ny0zLjM5OC05LjU0My0zLjM5OC0xMy4zNCwwTDg5LjM5OCwyNjkuMDVMNjQuNjEsMjQ2Ljg1OWMtMy43OTYtMy4zOTktOS41NDMtMy4zOTktMTMuMzQtMC4wMDEKCQkJbC0zMS40NTgsMjguMTYzYy0yLjExOSwxLjg5Ny0zLjMzLDQuNjA2LTMuMzMsNy40NTF2NDcuMzI5aC0wLjAwMWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHY0M2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDAuMDAxCgkJCXYzNS4xM2gtNi4wNDRjLTUuNTIzLDAtMTAsNC40NzctMTAsMTBWNTAyYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDkxLjEyM2M1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi02NC4wNjkKCQkJQzUxMS41NjMsNDMyLjQwOCw1MDcuMDg1LDQyNy45MzEsNTAxLjU2Myw0MjcuOTMxeiBNNDQ5Ljg5LDQxMC4zOTFjMTEuMjk2LDAsMjAuOTA1LDcuMzYyLDI0LjI4MSwxNy41NGgtMjMuNDYydi0xLjk2OAoJCQljMC01LjQ0MS0wLjk1OS0xMC42NjItMi43MTYtMTUuNTA0QzQ0OC42Miw0MTAuNDE0LDQ0OS4yNTMsNDEwLjM5MSw0NDkuODksNDEwLjM5MXogTTQyMC4wODcsMTg1LjU3NHYzMy4xMThsLTEwLjQwNy0xMC40MDcKCQkJYy0zLjkwNi0zLjkwNC0xMC4yMzYtMy45MDQtMTQuMTQzLDBjLTMuOTA1LDMuOTA1LTMuOTA1LDEwLjIzNywwLDE0LjE0M2wyMy4yNTcsMjMuMjU3YzAuNDA3LDAuNDA2LDAuODM5LDAuNzcsMS4yOTMsMS4wOTEKCQkJdjI2LjI2NWMtMjUuNDA1LTQuNzEyLTQ0LjcwNC0yNy4wMzktNDQuNzA0LTUzLjc4OWMwLTE1LjgxNiw2Ljg0NS0zMC44NTQsMTguNzc4LTQxLjI1NmMyLjc0LTIuMzg4LDMuOTY5LTYuMDc1LDMuMjA5LTkuNjI5CgkJCWMtMC40OTItMi4yOTktMC43NDEtNC42Ny0wLjc0MS03LjA0N2MwLTE4LjQ0OSwxNS4wMDktMzMuNDU4LDMzLjQ1OC0zMy40NThjMTguNDQ5LDAsMzMuNDU4LDE1LjAwOSwzMy40NTgsMzMuNDU4CgkJCWMwLDIuMzc4LTAuMjQ5LDQuNzQ4LTAuNzQxLDcuMDQ1Yy0wLjc2MiwzLjU1NSwwLjQ2Nyw3LjI0MywzLjIwOCw5LjYzMmMxMS45MzUsMTAuNDAzLDE4Ljc3OSwyNS40NCwxOC43NzksNDEuMjU2CgkJCWMwLDI2Ljc1LTE5LjI5OSw0OS4wNzYtNDQuNzA0LDUzLjc4OHYtMjYuMjY1YzAuNDUzLTAuMzIyLDAuODg3LTAuNjg1LDEuMjkzLTEuMDkxbDIzLjI1Ny0yMy4yNTcKCQkJYzMuOTA1LTMuOTA1LDMuOTA1LTEwLjIzNywwLTE0LjE0M2MtMy45MDYtMy45MDQtMTAuMjM2LTMuOTA0LTE0LjE0MywwbC0xMC40MDcsMTAuNDA3di0zMy4xMThjMC01LjUyMy00LjQ3OC0xMC0xMC0xMAoJCQlDNDI0LjU2NCwxNzUuNTc0LDQyMC4wODcsMTgwLjA1MSw0MjAuMDg3LDE4NS41NzR6IE0zNzkuNTYzLDQyNS45NjNjMC0xNC4xMDIsMTEuNDcyLTI1LjU3NCwyNS41NzMtMjUuNTc0CgkJCWMxNC4xMDIsMCwyNS41NzMsMTEuNDcyLDI1LjU3MywyNS41NzR2MS45NjhoLTUxLjE0NlY0MjUuOTYzeiBNMjg4LjE0MywyODYuOTQxbDIxLjQ1Ny0xOS4yMWwyMS40NTcsMTkuMjFWMzI5LjhoLTQyLjkxNFYyODYuOTQxCgkJCXogTTIyNS4yMjcsMjg2Ljk0MWwyMS40NTgtMTkuMjFsMjEuNDU3LDE5LjIxVjMyOS44aC00Mi45MTVWMjg2Ljk0MXogTTE2Mi4zMTMsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44aC00Mi45MTUKCQkJVjI4Ni45NDF6IE05OS4zOTgsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44SDk5LjM5OFYyODYuOTQxeiBNMzYuNDgzLDI4Ni45NDFsMjEuNDU3LTE5LjIxbDIxLjQ1NywxOS4yMVYzMjkuOAoJCQlIMzYuNDgzVjI4Ni45NDF6IE0yNi40ODIsMzQ5LjgwMWgzMTQuNTc1djIzSDI2LjQ4MlYzNDkuODAxeiBNMzMxLjA1NywzOTIuODAxdjM1LjEzaC00Mi45MTR2LTM1LjEzSDMzMS4wNTd6IE0yNjguMTQzLDM5Mi44MDEKCQkJdjM1LjEzaC00Mi45MTV2LTM1LjEzSDI2OC4xNDN6IE0yMDUuMjI3LDM5Mi44MDF2MzUuMTNoLTQyLjkxNXYtMzUuMTNIMjA1LjIyN3ogTTE0Mi4zMTMsMzkyLjgwMXYzNS4xM0g5OS4zOTh2LTM1LjEzSDE0Mi4zMTN6CgkJCSBNNzkuMzk4LDM5Mi44MDF2MzUuMTNIMzYuNDgzdi0zNS4xM0g3OS4zOTh6IE0yMC40MzgsNDkydi00NC4wNjloNDcxLjEyM1Y0OTJIMjAuNDM4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzguNDg3LDEyNy44NDNjLTAuNTU2LDAtMS4xMTIsMC4wMTEtMS42NjgsMC4wMzNjLTcuNTQzLTE0LjQyLTIyLjUxOS0yMy45MjMtMzguODk0LTIzLjkyMwoJCQljLTIwLjU4NywwLTM4LjA0NywxNC42ODMtNDIuNzczLDM0LjM0NmMtMTkuNzgzLDEuOTMtMzUuMzA5LDE5LjAwMS0zNS4zMDksMzkuNzA3YzAsMjEuOTk0LDE3LjUxNywzOS44ODcsMzkuMDQ4LDM5Ljg4N2g3OS41OTYKCQkJYzI0LjI4NSwwLDQ0LjA0MS0yMC4xOTgsNDQuMDQxLTQ1LjAyNUMzMjIuNTI3LDE0OC4wNDEsMzAyLjc3MSwxMjcuODQzLDI3OC40ODcsMTI3Ljg0M3ogTTI3OC40ODcsMTk3Ljg5M2gtNzkuNTk2CgkJCWMtMTAuNTAzLDAtMTkuMDQ4LTguOTIxLTE5LjA0OC0xOS44ODdjMC0xMC45NjcsOC41NDUtMTkuODg4LDE5LjA0OC0xOS44ODhjMS4wNTYsMCwyLjE0OCwwLjA5OSwzLjI0NCwwLjI5NgoJCQljMi44OTMsMC41MTYsNS44Ny0wLjI2Nyw4LjEzNS0yLjE0MWMyLjI2NS0xLjg3NSwzLjU5LTQuNjUyLDMuNjIzLTcuNTkyYzAuMTUzLTEzLjYzNSwxMC45MzMtMjQuNzI4LDI0LjAzMi0yNC43MjgKCQkJYzEwLjYzOCwwLDE5Ljg3Nyw3LjEwOCwyMi45ODgsMTcuNjg5YzEuNTExLDUuMTM1LDYuNzk0LDguMTczLDExLjk5NCw2Ljg4NmMxLjgzOC0wLjQ1NCwzLjcxNS0wLjY4NCw1LjU4LTAuNjg0CgkJCWMxMy4yNTYsMCwyNC4wNDEsMTEuMjI2LDI0LjA0MSwyNS4wMjVDMzAyLjUyNywxODYuNjY3LDI5MS43NDMsMTk3Ljg5MywyNzguNDg3LDE5Ny44OTN6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gallery:wxe,Garage:Cxe,Garden:Ixe,"Ground Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgIGQ9Ik0yOTkuNjY4LDIzMS41NzJoLTMuMzM4di02NS43NDZjMC01LjcyNC00LjY1Ny0xMC4zOC0xMC4zOC0xMC4zOGgtNTkuMzU1Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAuMDAxLDQuMDI0LDMuMjYzLDcuMjg3LDcuMjg3LDcuMjg3aDg2Ljc5MWM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMzMDYuOTU1LDIzNC44MzUsMzAzLjY5MywyMzEuNTcyLDI5OS42NjgsMjMxLjU3MnogTTI4MS43NTgsMjMxLjU3M2gtNTAuOTd2LTYxLjU1NGg1MC45N1YyMzEuNTczeiIvPgogICAgICAgIDxwYXRoIG9wYWNpdHk9IjAuMjUiICBkPSJNNDEyLjU3MiwyMzEuNTcyaC0zLjMzOHYtNjUuNzQ2YzAtNS43MjQtNC42NTctMTAuMzgtMTAuMzc5LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g4Ni43OTFjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDE5Ljg1OSwyMzQuODM1LDQxNi41OTcsMjMxLjU3Miw0MTIuNTcyLDIzMS41NzJ6IE0zOTQuNjYxLDIzMS41NzNoLTUwLjk3di02MS41NTRoNTAuOTdWMjMxLjU3M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTgyLjgxMyw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTUsNC41MjktMTAuMDk1LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0aDU5LjUwNGg3LjgxNGM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMxOTAuMSw0MTcuMDk1LDE4Ni44MzgsNDEzLjgzMywxODIuODEzLDQxMy44MzN6IE0xNjcuNzEyLDQxMy44MzNoLTQ0LjkzMXYtNTUuNTY3aDQ0LjkzMVY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDQuMzE0LDQxMy44MzNoLTAuNTI4di02MC4wNDVjMC01LjU2Ni00LjUyOS0xMC4wOTUtMTAuMDk1LTEwLjA5NWgtNTMuODg2Yy01LjU2NiwwLTEwLjA5Niw0LjUyOS0xMC4wOTYsMTAuMDk1djYwLjA0NQoJCQloLTAuNTI4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjUsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoNy44MTRIMzk2LjVoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDExLjYwMSw0MTcuMDk1LDQwOC4zMzksNDEzLjgzMyw0MDQuMzE0LDQxMy44MzN6IE0zODkuMjEzLDQxMy44MzNoLTQ0LjkzMnYtNTUuNTY3aDQ0LjkzMlY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzYuNTQ1LDQwNS4wODljLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MTIuNjNjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4NwoJCQljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtMTIuNjNDMjgzLjgzMiw0MDguMzUyLDI4MC41Nyw0MDUuMDg5LDI3Ni41NDUsNDA1LjA4OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==","Guest Bathroom":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMuNjE4IDYyLTIuNzE4LTUuNDQ3YTEgMSAwIDAgMCAtLjktLjU1M2gtMXYtMzBoM3YtMmgtM3YtMTlhNS4wMDYgNS4wMDYgMCAwIDAgLTUtNWgtMTRhNS4wMDYgNS4wMDYgMCAwIDAgLTUgNXYxYTMgMyAwIDAgMCAtMyAzdjFoLTVhMyAzIDAgMCAwIC0zIDN2MmExIDEgMCAwIDAgMSAxaDE1di0yaC0xNHYtMWExIDEgMCAwIDEgMS0xaDE4YTEgMSAwIDAgMSAxIDF2MWgtNHYyaDVhMSAxIDAgMCAwIDEtMXYtMmEzIDMgMCAwIDAgLTMtM2gtNXYtMWEzIDMgMCAwIDAgLTMtM3YtMWEzIDMgMCAwIDEgMy0zaDE0YTMgMyAwIDAgMSAzIDN2MTloLTV2Mmg1djE0aC0zdi0yaC0ydjZoMnYtMmgzdjE0aC0xYTEgMSAwIDAgMCAtLjkuNTUzbC0yLjcxOCA1LjQ0N2gtNTIuMzgydjJoNjR2LTJ6bS0yNS42MTgtNTN2MWgtNHYtMWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXptMTguNjE4IDQ5aDIuNzY0bDIgNGgtNi43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI5IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDM0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMyAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDEgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDI0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAyOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDE4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMThoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI1IDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAxOGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIgMzcuOTg3djE5LjAxM2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTE5LjFsMi0uMDEzdjIuMTEzaDJ2LTZoLTJ2MS44ODJsLTE4LjAwNi4xMTguMDEyIDJ6bTIgMTIuMDEzaDEwdjFoLTEwem0wIDZ2LTNoMTB2M3ptMTAtOGgtMTB2LTEwLjAyNmwxMC0uMDY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyOWM0LjQ4NiAwIDgtNS4yNzEgOC0xMnMtMy41MTQtMTItOC0xMi04IDUuMjcxLTggMTIgMy41MTQgMTIgOCAxMnptMC0yMmMzLjI1MiAwIDYgNC41NzkgNiAxMHMtMi43NDggMTAtNiAxMC02LTQuNTc5LTYtMTAgMi43NDgtMTAgNi0xMHoiLz4KICAgICAgICA8cGF0aCBkPSJtNS4wOTUgMTMuNWg3LjgxdjJoLTcuODF6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzY4IC0uNjQgLjY0IC43NjggLTcuMTk3IDkuMTIyKSIvPgogICAgICAgIDxwYXRoIGQ9Im03LjA5NSAxOC41aDcuODF2MmgtNy44MXoiIHRyYW5zZm9ybT0ibWF0cml4KC43NjggLS42NCAuNjQgLjc2OCAtOS45MzQgMTEuNTYyKSIvPgogICAgPC9nPgo8L3N2Zz4=","Guest Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NTYsMzI4YTQwLjAzNyw0MC4wMzcsMCwwLDAtOCwuODA0OTNWMTQ0YTcuOTc1MjIsNy45NzUyMiwwLDAsMC0yLjM0MzgxLTUuNjU3NDcsMTQuNjQ1MzUsMTQuNjQ1MzUsMCwwLDEsMC0yMC42ODUwNkE3Ljk3NTIyLDcuOTc1MjIsMCwwLDAsNDQ4LDExMlY4OGg0MGE3Ljk5OTQ2LDcuOTk5NDYsMCwwLDAsNi45NDU4LTExLjk2ODc1bC0zMi01NkE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAsNDU2LDE2SDM4NGE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAtNi45NDU4LDQuMDMxMjVsLTMyLDU2QTcuOTk5NDYsNy45OTk0NiwwLDAsMCwzNTIsODhoNDB2MjRhNy45NzUyMiw3Ljk3NTIyLDAsMCwwLDIuMzQzODEsNS42NTc0NywxNC42NDUzNSwxNC42NDUzNSwwLDAsMSwwLDIwLjY4NTA2QTcuOTc1MjIsNy45NzUyMiwwLDAsMCwzOTIsMTQ0VjMyMEgzMTJWMjg4aDI0YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMjQ4YTguMDAwMDgsOC4wMDAwOCwwLDAsMC04LThIMzEyVjIxNmg0OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAsOC04VjExMmE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDIwOGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djk2YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhoNDh2MjRIMjA1LjQxNjA4bC0xMy42MDU1My0zNC4wMTQ2NS00Ljk3NDEyLTM5Ljc5M0E1Ni41MzE0OCw1Ni41MzE0OCwwLDAsMCwxODQsMTU0LjI2VjgwQTY0LDY0LDAsMCwwLDU2LDgwdjUyLjgyODYxQTU2LjA0MTkzLDU2LjA0MTkzLDAsMCwwLDMzLjU5NDI0LDE2MS45MTlsLTE3LjE4MzYsNTEuNTUwNzhhNy45OTgsNy45OTgsMCwwLDAtLjE3MTg3LDQuNDcwN2w1LjU5MTM3LDIyLjM2NTQ4QTcuOTk3NDUsNy45OTc0NSwwLDAsMCwxNiwyNDhWNDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhINDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMzY4QTQwLjA0NTUyLDQwLjA0NTUyLDAsMCwwLDQ1NiwzMjhabTI0LDQwdjU2SDQzMlYzNjhhMjQsMjQsMCwwLDEsNDgsMFpNMjY0LDQyNFY0MDBhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgtOEg0MDhhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgsOHYyNFpNOTYsNDI0VjQwMGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOC04SDI0MGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOCw4djI0Wm0zMjAtODB2MzMuMzc2MjJBMjMuODgyMTIsMjMuODgyMTIsMCwwLDAsNDA4LDM3NkgyNzJhMjMuOTAxMTEsMjMuOTAxMTEsMCwwLDAtMTYsNi4xMzA4NkEyMy45MDExMSwyMy45MDExMSwwLDAsMCwyNDAsMzc2SDEwNGEyMy44ODIxMiwyMy44ODIxMiwwLDAsMC04LDEuMzc2MjJWMzQ0YTguMDA5MTcsOC4wMDkxNywwLDAsMSw4LThINDA4QTguMDA5MTcsOC4wMDkxNywwLDAsMSw0MTYsMzQ0Wm0xMC40NTE3Mi0yMDhINDEzLjU0ODI4YTMwLjg0MzUxLDMwLjg0MzUxLDAsMCwwLDAtMTZoMTIuOTAzNDRBMzAuODQzNTEsMzAuODQzNTEsMCwwLDAsNDI2LjQ1MTcyLDEzNlpNMzg4LjY0MjU4LDMyaDYyLjcxNDg0bDIyLjg1Njk0LDQwSDM2NS43ODU2NFpNNDMyLDg4djE2SDQwOFY4OFptLTI0LDY0aDI0VjMzNi4wMjJjLS4zNjYzMy4yNzU2NC0uNzI0MTguNTYyLTEuMDgwNjkuODQ5NjFBMjQuMDQzNjksMjQuMDQzNjksMCwwLDAsNDA4LDMyMFpNMjk2LDMyMEgxMDRhMjQuMDQzNjksMjQuMDQzNjksMCwwLDAtMjIuOTE5MzEsMTYuODcxNThBMzkuOSwzOS45LDAsMCwwLDMyLDMzNi4wMjJWMjg4SDI5NlptMzItNDhIMzJWMjU2SDMyOFpNNzIsMjQwSDY0VjIyNS41NDFsNy4zMTY4OS0xOC4yOTJMNzIsMjA5LjI5Nzg1Wm04OC0uMDAwMjQuMDAwMjQuMDAwMjRIMTYwWk0yMTYsMjAwVjEyMEgzNTJ2ODBIMzEyVjE2OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDI2NGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djMyWm01Ni0yNGgyNHY2NEgyNzJaTTEyMCwzMmE0OC4wNTQsNDguMDU0LDAsMCwxLDQ4LDQ4djUwLjg1MzUyYTU2LjcyNTYyLDU2LjcyNTYyLDAsMCwwLTcuOTE5OTItNS43MzUzNmwtMTEuNDQxNjUtNi44NjVBMzEuNzk0MDUsMzEuNzk0MDUsMCwwLDAsMTUyLDEwNFY4MGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04aC02LjExMTMzYTIwLjgzMDUzLDIwLjgzMDUzLDAsMCwxLTE4LjczMzQtMTEuNTc4MTIsOC4wMDA2NCw4LjAwMDY0LDAsMCwwLTEyLjgxMi0yLjA3OTExbC0xNiwxNkE4LjAwMDc2LDguMDAwNzYsMCwwLDAsODgsODB2MjRhMzEuODAxODgsMzEuODAxODgsMCwwLDAsMi43NTc1MSwxMi45NzExOUw3MiwxMjUuMDFWODBBNDguMDU0LDQ4LjA1NCwwLDAsMSwxMjAsMzJabTE2LDcyYTE2LDE2LDAsMCwxLTMyLDBWODMuMzEzNDhsNi45NDY3OC02Ljk0NjI5QTM2LjY5ODE2LDM2LjY5ODE2LDAsMCwwLDEzNiw4Ny45NTMxMlptLTM0Ljc3MTkxLDI1Ljg5MjA5YTMxLjkxNjEzLDMxLjkxNjEzLDAsMCwwLDM2LjcwNDQ3LjU5NzE3bDEuMjM3MTguNzQyNDNMMTIwLDE1NS4xOTMzNmwtMTkuODY2MjctMjQuODMyMjhaTTQ4Ljc3MywxNjYuOTc5NDlBNDAuMDM1MzgsNDAuMDM1MzgsMCwwLDEsNzAuOTYzODcsMTQyLjg2MjNsMTMuOTExNjItNS45NjE5MSwyOC44Nzc0NCwzNi4wOTY2OGE3Ljk5OTQzLDcuOTk5NDMsMCwwLDAsMTIuNDk0MTQsMEwxNTIuOTksMTM5LjU2ODM2YTM5LjcyNzc5LDM5LjcyNzc5LDAsMCwxLDE3Ljk2OTQ4LDI4LjYwODRsNS4xMDI1NCw0MC44MTU0M2E3Ljk4MjgxLDcuOTgyODEsMCwwLDAsLjUxMDI2LDEuOTc4NTFMMTg4LjE4MzU5LDI0MEgxODBsLTIwLTI2LjY2N1YyMDEuODA2NjRhNTAuODIzMzgsNTAuODIzMzgsMCwwLDAsMS45MzI2Mi0zNy4zMDc2MmwtMi4zNDMyNi03LjAyOTI5LTE1LjE3ODcyLDUuMDYwNTQsMi4zNDMyNyw3LjAyOTNhMzQuOTU1MTMsMzQuOTU1MTMsMCwwLDEtMS45MDkxOCwyNi44NjIzMUE3Ljk5OTM0LDcuOTk5MzQsMCwwLDAsMTQ0LDIwMHY0MEg4OFYyMDhhOC4wMDY0Myw4LjAwNjQzLDAsMCwwLS40MTA2NC0yLjUzMDI3bC04LTI0YTguMDAwMDksOC4wMDAwOSwwLDAsMC0xNS4wMTcwOS0uNDQwNDNsLTE2LDQwQTcuOTk3MjMsNy45OTcyMywwLDAsMCw0OCwyMjR2MTZIMzguMjQ2MDlsLTUuOTE5OTItMjMuNjgwNjZaTTMyLDM2OGEyNCwyNCwwLDAsMSw0OCwwdjU2SDMyWk00ODAsNDgwSDMyVjQ0MEg0ODBaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gym:pxe,Hall:Axe,"Home Theater":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSIxIC00NCA1MTEuOTk4OTkgNTExIiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggZD0ibTI4Mi41MTk1MzEgMzMzLjk4ODI4MWMtNC4xNzE4NzUgMC03LjU0Njg3NSAzLjM3ODkwNy03LjU0Njg3NSA3LjU0Njg3NSAwIDQuMTY3OTY5IDMuMzc1IDcuNTQ2ODc1IDcuNTQ2ODc1IDcuNTQ2ODc1aDExNC4zMzk4NDRjNy4wODIwMzEgMCAxMi44NDM3NS01Ljc2MTcxOSAxMi44NDM3NS0xMi44NDc2NTZ2LTE5MS45Mjk2ODdjMC03LjA4MjAzMi01Ljc2MTcxOS0xMi44NDc2NTctMTIuODQzNzUtMTIuODQ3NjU3aC0yODEuNzE4NzVjLTcuMDgyMDMxIDAtMTIuODQzNzUgNS43NjU2MjUtMTIuODQzNzUgMTIuODQ3NjU3djE5MS45Mjk2ODdjMCA3LjA4NTkzNyA1Ljc2MTcxOSAxMi44NDc2NTYgMTIuODQzNzUgMTIuODQ3NjU2aDEzNy4xOTE0MDZjNC4xNjc5NjkgMCA3LjU0Njg3NS0zLjM3ODkwNiA3LjU0Njg3NS03LjU0Njg3NSAwLTQuMTY3OTY4LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc1LTcuNTQ2ODc1aC0xMzQuOTQ1MzEydi0xODcuNDM3NWgyNzcuMjI2NTYydjE4Ny40Mzc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00OS4yNjE3MTkgODIuNzQyMTg4YzE1LjU4MjAzMSAwIDI4LjI2MTcxOS0xMi42Nzk2ODggMjguMjYxNzE5LTI4LjI1MzkwNyAwLTE1LjU4NTkzNy0xMi42Nzk2ODgtMjguMjYxNzE5LTI4LjI2MTcxOS0yOC4yNjE3MTktMTUuNTc4MTI1IDAtMjguMjUzOTA3IDEyLjY3NTc4Mi0yOC4yNTM5MDcgMjguMjYxNzE5IDAgMTUuNTc0MjE5IDEyLjY3NTc4MiAyOC4yNTM5MDcgMjguMjUzOTA3IDI4LjI1MzkwN3ptMC00MS40MjU3ODJjNy4yNjE3MTkgMCAxMy4xNjc5NjkgNS45MDYyNSAxMy4xNjc5NjkgMTMuMTcxODc1IDAgNy4yNTM5MDctNS45MDYyNSAxMy4xNjAxNTctMTMuMTY3OTY5IDEzLjE2MDE1Ny03LjI1MzkwNyAwLTEzLjE2MDE1Ny01LjkwNjI1LTEzLjE2MDE1Ny0xMy4xNjAxNTcgMC03LjI2NTYyNSA1LjkwNjI1LTEzLjE3MTg3NSAxMy4xNjAxNTctMTMuMTcxODc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxLjVjLTI3LjE2NDA2MiAwLTQ5LjI2OTUzMSAyMi4xMDU0NjktNDkuMjY5NTMxIDQ5LjI2OTUzMXY1Ni4zMDQ2ODhjLTUuNjUyMzQ0LTEuMzY3MTg4LTYuMDQyOTY5LS41MzUxNTctNTQuMzMyMDMxLS43NzczNDQtNC4xNjQwNjMgMC03LjU0Mjk2OSAzLjM4MjgxMy03LjU0Mjk2OSA3LjU0Njg3NXMzLjM3ODkwNiA3LjU0Njg3NSA3LjU0Mjk2OSA3LjU0Njg3NWg0Ny43MjI2NTZjNy43MzA0NjkgMCAxMy45MTQwNjMgNi4zMDQ2ODcgMTMuOTE0MDYzIDEzLjkxNDA2M3YyMTEuOTMzNTkzYzAgNy42NjQwNjMtNi4yNDYwOTQgMTMuOTE0MDYzLTEzLjkxNDA2MyAxMy45MTQwNjMtNTkuNDE3OTY5IDAtMjMxLjU1NDY4NyAwLTMwMS43MTg3NSAwLTcuNjY3OTY5IDAtMTMuOTE0MDYzLTYuMjUtMTMuOTE0MDYzLTEzLjkxNDA2MyAwLTEwLjc0NjA5MyAwLTIwNC41ODk4NDMgMC0yMTEuOTMzNTkzIDAtNS4yNzM0MzggMi45NTcwMzItOS44Nzg5MDcgNy4zMDQ2ODgtMTIuMjQ2MDk0IDUuODQzNzUtMy4xNzU3ODItNC4yNDIxODgtMS4wNDY4NzUgMjMwLjQyMTg3NS0xLjY2Nzk2OSA0LjE3NTc4MSAwIDcuNTQ2ODc1LTMuMzgyODEzIDcuNTQ2ODc1LTcuNTQ2ODc1cy0zLjM3MTA5NC03LjU0Njg3NS03LjU0Njg3NS03LjU0Njg3NWMtMjM2LjM1MTU2My4yNzM0MzctMjI0LjU1MDc4MS0uNjQ0NTMxLTIzMC40MjE4NzUuNzc3MzQ0di01Ni4zMDQ2ODhjMC0yNy4xNjQwNjItMjIuMTA1NDY5LTQ5LjI2OTUzMS00OS4yNjk1MzEtNDkuMjY5NTMxLTIyLjc2OTUzMSAwLTQyLjQ0OTIxOSAxNS40MzM1OTQtNDcuODYzMjgxIDM3LjUyNzM0NC0uOTg0Mzc2IDQuMDU0Njg3IDEuNSA4LjE0MDYyNSA1LjU0Mjk2OCA5LjEyNSA0LjA0Njg3NS45ODgyODEgOC4xMjg5MDYtMS40ODgyODIgOS4xMjUtNS41MzEyNSAzLjc0NjA5NC0xNS4zMjQyMTkgMTcuMzk4NDM4LTI2LjAzMTI1IDMzLjE5NTMxMy0yNi4wMzEyNSAxOC44NDM3NSAwIDM0LjE3NTc4MSAxNS4zMzU5MzcgMzQuMTc1NzgxIDM0LjE3OTY4N3Y2NS4zMTY0MDdjLTMuMTEzMjgxIDMuNTExNzE4LTUuMzkwNjI1IDcuNzczNDM3LTYuNTExNzE5IDEyLjQ4MDQ2OC0yLjY3MTg3NS0xMi44MjQyMTgtMTQuMDU4NTkzLTIyLjQ4ODI4MS0yNy42NjQwNjItMjIuNDg4MjgxLTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42Nzk2ODctMjguMjUzOTA3IDI4LjI1NzgxMyAwIDE1LjU3ODEyNCAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIxMDkzOCAyNi44NzEwOTMtMTkuNTMxMjV2NjEuMzk4NDM4Yy0zLjY4MzU5My0xMS4zMjAzMTMtMTQuMzM1OTM3LTE5LjUyNzM0NC0yNi44NzEwOTMtMTkuNTI3MzQ0LTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42NzU3ODEtMjguMjUzOTA3IDI4LjI1MzkwNiAwIDE1LjU4MjAzMSAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIwNzAzMSAyNi44NzEwOTMtMTkuNTMxMjV2NjEuNDAyMzQ0Yy0zLjY4MzU5My0xMS4zMjQyMTgtMTQuMzM1OTM3LTE5LjUzMTI1LTI2Ljg3MTA5My0xOS41MzEyNS0xNS41NzgxMjUgMC0yOC4yNTM5MDcgMTIuNjc1NzgyLTI4LjI1MzkwNyAyOC4yNTM5MDYgMCAxNS41ODIwMzIgMTIuNjc1NzgyIDI4LjI1NzgxMyAyOC4yNTM5MDcgMjguMjU3ODEzIDEyLjUzNTE1NiAwIDIzLjE4NzUtOC4yMDcwMzEgMjYuODcxMDkzLTE5LjUzMTI1djE3LjA4OTg0NGMtMjAuMTA1NDY4IDI1LjUzMTI1LTYxLjAzOTA2MiAxMS4xMjUtNjEuMDM5MDYyLTIxLjA5NzY1N3YtMjI1Ljg0Mzc1YzAtNC4xNzU3ODEtMy4zODI4MTItNy41NDY4NzQtNy41NDY4NzUtNy41NDY4NzQtNC4xNzU3ODEgMC03LjU0Njg3NSAzLjM3MTA5My03LjU0Njg3NSA3LjU0Njg3NHYyMjUuODQzNzVjMCAyNC42MDE1NjMgMTguMTIxMDk0IDQ1LjA1MDc4MiA0MS43MTg3NSA0OC42OTUzMTN2NjIuNTI3MzQ0aC0xOC45NjQ4NDRjLTQuMTY3OTY4IDAtNy41NDY4NzUgMy4zNzg5MDYtNy41NDY4NzUgNy41NDY4NzUgMCA0LjE2Nzk2OCAzLjM3ODkwNyA3LjU0Njg3NSA3LjU0Njg3NSA3LjU0Njg3NWg1My4wMTk1MzJjNC4xNjc5NjggMCA3LjU0Njg3NC0zLjM3ODkwNyA3LjU0Njg3NC03LjU0Njg3NSAwLTQuMTY3OTY5LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc0LTcuNTQ2ODc1aC0xOC45NjQ4NDR2LTYyLjUzMTI1YzcuMDQyOTY4LTEuMDg1OTM4IDEzLjU5NzY1Ni0zLjY2Nzk2OSAxOS4zMjQyMTgtNy40MTAxNTd2OS4xOTkyMTljMCAxNS45ODQzNzUgMTMuMDE5NTMyIDI5LjAwMzkwNyAyOS4wMDc4MTMgMjkuMDAzOTA3aDQ1LjgyMDMxM3YzNS44OTg0MzdjMCA2LjI4OTA2MyA1LjEwOTM3NCAxMS40MTAxNTYgMTEuMzk4NDM3IDExLjQxMDE1NmgyMS4xMjg5MDZjNi4yODkwNjMgMCAxMS4zOTg0MzgtNS4xMjEwOTMgMTEuMzk4NDM4LTExLjQxMDE1NnYtMzUuODk4NDM3aDEyMi4yMjY1NjJ2MzUuODk4NDM3YzAgNi4yODkwNjMgNS4xMDkzNzUgMTEuNDEwMTU2IDExLjM5ODQzOCAxMS40MTAxNTZoMjEuMTI4OTA2YzYuMjg5MDYzIDAgMTEuMzk4NDM3LTUuMTIxMDkzIDExLjM5ODQzNy0xMS40MTAxNTZ2LTM1Ljg5ODQzN2g0NS44MjAzMTNjMTUuOTg4MjgxIDAgMjkuMDA3ODEzLTEzLjAxOTUzMiAyOS4wMDc4MTMtMjkuMDAzOTA3di05LjE5OTIxOWM1LjcyNjU2MiAzLjc0MjE4OCAxMi4yODEyNSA2LjMyNDIxOSAxOS4zMjQyMTggNy40MTAxNTd2NjIuNTMxMjVoLTE4Ljk2NDg0NGMtNC4xNjc5NjggMC03LjU0Njg3NCAzLjM3ODkwNi03LjU0Njg3NCA3LjU0Njg3NSAwIDQuMTY3OTY4IDMuMzc4OTA2IDcuNTQ2ODc1IDcuNTQ2ODc0IDcuNTQ2ODc1aDUzLjAxOTUzMmM0LjE2Nzk2OCAwIDcuNTQ2ODc1LTMuMzc4OTA3IDcuNTQ2ODc1LTcuNTQ2ODc1IDAtNC4xNjc5NjktMy4zNzg5MDctNy41NDY4NzUtNy41NDY4NzUtNy41NDY4NzVoLTE4Ljk2NDg0NHYtNjIuNTI3MzQ0YzIzLjU5NzY1Ni0zLjY0NDUzMSA0MS43MTg3NS0yNC4wOTM3NSA0MS43MTg3NS00OC42OTUzMTN2LTI0NS45ODgyODFjMC0yNy4xNjQwNjItMjIuMDkzNzUtNDkuMjY5NTMxLTQ5LjI2MTcxOS00OS4yNjk1MzF6bS00MTMuNDc2NTYyIDE0NmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY0MDYyIDAtNy4yNTc4MTMgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY0MDYzLTEzLjE2NDA2MyA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjMgMCA3LjI1NzgxMi01LjkwNjI1IDEzLjE2NDA2Mi0xMy4xNjQwNjIgMTMuMTY0MDYyem0wIDc4Ljg1NTQ2OWMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0wIDc4Ljg1MTU2MmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0xMzAuNTM1MTU2IDEwMy4yNTM5MDdoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNjYuMTUyMzQ0IDBoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNTAuOTU3MDMxLTExMS43MDMxMjZjMCAzMi4yMzgyODItNDAuOTQxNDA2IDQ2LjYyMTA5NC02MS4wMzkwNjIgMjEuMDk3NjU3di0xNy4wODU5MzhjMy42ODM1OTMgMTEuMzIwMzEzIDE0LjMzNTkzNyAxOS41MjczNDQgMjYuODcxMDkzIDE5LjUyNzM0NCAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTMgMC0xNS41NzgxMjQtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMi0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTQ1MzFjMy42ODM1OTMgMTEuMzIwMzEyIDE0LjMzNTkzNyAxOS41MjczNDMgMjYuODcxMDkzIDE5LjUyNzM0MyAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTIgMC0xNS41NzgxMjUtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMS0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTg0MzhjMy42ODM1OTMgMTEuMzI0MjE5IDE0LjMzNTkzNyAxOS41MzEyNSAyNi44NzEwOTMgMTkuNTMxMjUgMTUuNTc4MTI1IDAgMjguMjUzOTA3LTEyLjY3NTc4MSAyOC4yNTM5MDctMjguMjU3ODEyIDAtMTUuNTc4MTI2LTEyLjY3NTc4Mi0yOC4yNTM5MDctMjguMjUzOTA3LTI4LjI1MzkwNy0xMy42MDU0NjkgMC0yNC45OTIxODcgOS42NjAxNTctMjcuNjY0MDYyIDIyLjQ4NDM3NS0xLjEyMTA5NC00LjcwNzAzMS0zLjM5ODQzOC04Ljk2ODc1LTYuNTExNzE5LTEyLjQ3NjU2MnYtNjUuMzIwMzEzYzAtMTguODQzNzUgMTUuMzMyMDMxLTM0LjE3OTY4NyAzNC4xNzk2ODgtMzQuMTc5Njg3IDE4Ljg0Mzc1IDAgMzQuMTY3OTY4IDE1LjMzNTkzNyAzNC4xNjc5NjggMzQuMTc5Njg3djI0NS45ODgyODF6bS00Ny4zMzIwMzEtNC43MTg3NWMwLTcuMjU3ODEyIDUuOTA2MjUtMTMuMTY0MDYyIDEzLjE2NDA2Mi0xMy4xNjQwNjIgNy4yNTc4MTMgMCAxMy4xNjQwNjMgNS45MDYyNSAxMy4xNjQwNjMgMTMuMTY0MDYyIDAgNy4yNjE3MTktNS45MDYyNSAxMy4xNjc5NjktMTMuMTY0MDYzIDEzLjE2Nzk2OS03LjI1NzgxMiAwLTEzLjE2NDA2Mi01LjkwNjI1LTEzLjE2NDA2Mi0xMy4xNjc5Njl6bTAtNzguODUxNTYyYzAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYyLTEzLjE2NDA2MiA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwNjI1IDEzLjE2NDA2MyAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjMgMTMuMTY3OTY5LTcuMjU3ODEyIDAtMTMuMTY0MDYyLTUuOTA2MjUtMTMuMTY0MDYyLTEzLjE2Nzk2OXptMC03OC44NTE1NjJjMC03LjI1NzgxMyA1LjkwNjI1LTEzLjE2NDA2MyAxMy4xNjQwNjItMTMuMTY0MDYzIDcuMjU3ODEzIDAgMTMuMTY0MDYzIDUuOTA2MjUgMTMuMTY0MDYzIDEzLjE2NDA2MyAwIDcuMjU3ODEyLTUuOTA2MjUgMTMuMTY0MDYyLTEzLjE2NDA2MyAxMy4xNjQwNjItNy4yNTc4MTIgMC0xMy4xNjQwNjItNS45MDYyNS0xMy4xNjQwNjItMTMuMTY0MDYyem0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxIDI2LjIyNjU2MmMtMTUuNTgyMDMxIDAtMjguMjU3ODEyIDEyLjY3NTc4Mi0yOC4yNTc4MTIgMjguMjU3ODEzIDAgMTUuNTc4MTI1IDEyLjY3NTc4MSAyOC4yNTM5MDYgMjguMjU3ODEyIDI4LjI1MzkwNiAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTM5MDYgMC0xNS41ODIwMzEtMTIuNjc1NzgyLTI4LjI1NzgxMy0yOC4yNTM5MDctMjguMjU3ODEzem0wIDQxLjQyMTg3NmMtNy4yNjE3MTkgMC0xMy4xNjc5NjktNS45MDYyNS0xMy4xNjc5NjktMTMuMTY0MDYzIDAtNy4yNjE3MTkgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY3OTY5LTEzLjE2NDA2MyA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwMjM0NCAxMy4xNjQwNjMgMTMuMTY0MDYzIDAgNy4yNTc4MTMtNS45MDYyNSAxMy4xNjQwNjMtMTMuMTY0MDYzIDEzLjE2NDA2M3ptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Kitchen:mxe,"Laundry Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgMmgtNThjLS41NTIgMC0xIC40NDgtMSAxdjU4YzAgLjU1Mi40NDggMSAxIDFoNThjLjU1MiAwIDEtLjQ0OCAxLTF2LTU4YzAtLjU1Mi0uNDQ4LTEtMS0xem0tMSA2aC00di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC02Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyaC0zYy0uNTUyIDAtMSAuNDQ4LTEgMXY5aC0ydi0xNGgxOHptLTEyLjE0MiAzMS0xLjY5Mi0xMWg5LjY2OWwtMS42OTIgMTF6bTEuMTQyLTEzYzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTguNzU5LjM0OWMtLjE5LS4yMjItLjQ2Ny0uMzQ5LS43NTktLjM0OWgtMmMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNGgtMmMtLjI5MiAwLS41NjkuMTI3LS43NTkuMzQ5cy0uMjc0LjUxNS0uMjI5LjgwM2wxLjgyMyAxMS44NDhoLTMuODM1di0xOWgxOHYxOWgtMy44MzVsMS44MjMtMTEuODQ4Yy4wNDUtLjI4OC0uMDM5LS41ODItLjIyOS0uODAzem0tNy43NTktMTcuMzQ5di0yaDR2MTFoLTR6bS0yIDloLTJ2LThoMnptOCAwdi04aDR2OHptLTE2LTE0djE0aC0ydi0xMGMwLS41NTItLjQ0OC0xLTEtMWgtNmMtLjU1MiAwLTEgLjQ0OC0xIDF2MTBoLTJ2LTdjMC0uMjY1LS4xMDUtLjUyLS4yOTMtLjcwN2wtMS43MDctMS43MDd2LTIuNTg2YzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyLjU4NmwtMS43MDcgMS43MDdjLS4xODguMTg3LS4yOTMuNDQyLS4yOTMuNzA3djdoLTJ2LTEwYzAtLjU1Mi0uNDQ4LTEtMS0xaC04Yy0uNTUyIDAtMSAuNDQ4LTEgMXYxMGgtMnYtMTR6bS00IDE0aC00di05aDR6bS0xMS43MDctOC4yOTMgMS43MDcgMS43MDd2Ni41ODZoLTZ2LTYuNTg2bDEuNzA3LTEuNzA3Yy4xODgtLjE4Ny4yOTMtLjQ0Mi4yOTMtLjcwN3YtMmgydjJjMCAuMjY1LjEwNS41Mi4yOTMuNzA3em0tMTAuMjkzIDguMjkzaC02di05aDZ6bS0xMCAyaDM2djQwaC0zNnptNDUgMjhoLTJ2LTFoMnptLTMgMmg0LjY0OWw0LjM1MSAzLjQ4djYuNTJoLTl6bTExIDEwdi03YzAtLjMwNC0uMTM4LS41OTEtLjM3NS0uNzgxbC01LTRjLS4xNzgtLjE0Mi0uMzk4LS4yMTktLjYyNS0uMjE5di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyYy0uNTUyIDAtMSAuNDQ4LTEgMXYxMWgtMnYtMTloMTh2MTl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDIyaC0zMGMtLjU1MiAwLTEgLjQ0OC0xIDF2MzRjMCAuNTUyLjQ0OCAxIDEgMWgzMGMuNTUyIDAgMS0uNDQ4IDEtMXYtMzRjMC0uNTUyLS40NDgtMS0xLTF6bS0xIDJ2NWgtMjh2LTV6bS0yOCAzMnYtMjVoMjh2MjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDMzYy02LjA2NSAwLTExIDQuOTM1LTExIDExczQuOTM1IDExIDExIDExIDExLTQuOTM1IDExLTExLTQuOTM1LTExLTExLTExem0wIDIwYy00Ljk2MiAwLTktNC4wMzgtOS05czQuMDM4LTkgOS05IDkgNC4wMzggOSA5LTQuMDM4IDktOSA5eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNi4xOTkgNDguMjg2IDEuMzk5IDEuNDI5Yy42NzctLjY2MyAxLjIyNi0xLjQzMiAxLjYzMS0yLjI4NmwtMS44MDctLjg1N2MtLjMwMy42MzktLjcxNCAxLjIxNi0xLjIyMyAxLjcxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjIgMzZ2MmMzLjMwOSAwIDYgMi42OTEgNiA2aDJjMC00LjQxMS0zLjU4OS04LTgtOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAgMjVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNCAyNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+","Living Area":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTQuNSAyNzcuNjY3aC01LjV2LTM2LjVjMC0xNS4xNjQtMTIuMzM2LTI3LjUtMjcuNS0yNy41aC0xMTBjLTcuODc1IDAtMTQuOTgyIDMuMzMyLTIwIDguNjU1LTUuMDE4LTUuMzIyLTEyLjEyNS04LjY1NS0yMC04LjY1NWgtMTEwYy03Ljg3NSAwLTE0Ljk4MiAzLjMzMi0yMCA4LjY1NS01LjAxOC01LjMyMi0xMi4xMjUtOC42NTUtMjAtOC42NTVoLTQwLjVjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoNDAuNWM2Ljg5MyAwIDEyLjUgNS42MDcgMTIuNSAxMi41djc3LjAxOGMtMy43NTMtMS45MjQtOC0zLjAxOC0xMi41LTMuMDE4aC0xMDEuNXYtMjBjMC05LjY0OS03Ljg1MS0xNy41LTE3LjUtMTcuNWgtMy41di0zNi41YzAtNi44OTMgNS42MDctMTIuNSAxMi41LTEyLjVoMzQuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMzQuNWMtMTUuMTY0IDAtMjcuNSAxMi4zMzYtMjcuNSAyNy41djM2LjVoLTYuNWMtOS42NDkgMC0xNy41IDcuODUxLTE3LjUgMTcuNXY0Mi41YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQyLjVjMC0xLjM3OCAxLjEyMi0yLjUgMi41LTIuNWgyNWMxLjM3OCAwIDIuNSAxLjEyMiAyLjUgMi41djE0MC41aC0yNy41Yy0xLjM3OCAwLTIuNS0xLjEyMi0yLjUtMi41di02MC41YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djYwLjVjMCA5LjY0OSA3Ljg1MSAxNy41IDE3LjUgMTcuNWgyNy41djE0LjY2N2MwIDYuODkzIDUuNjA3IDEyLjUgMTIuNSAxMi41aDI1YzYuODkzIDAgMTIuNS01LjYwNyAxMi41LTEyLjV2LTE0LjY2N2gzMjJ2MTQuNjY3YzAgNi44OTMgNS42MDcgMTIuNSAxMi41IDEyLjVoMjVjNi44OTMgMCAxMi41LTUuNjA3IDEyLjUtMTIuNXYtMTQuNjY3aDI3LjVjOS42NDkgMCAxNy41LTcuODUxIDE3LjUtMTcuNXYtMTM4YzAtOS42NS03Ljg1MS0xNy41LTE3LjUtMTcuNXptLTE0My00OWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXYzNi41aC00LjVjLTkuNjQ5IDAtMTcuNSA3Ljg1MS0xNy41IDE3LjV2MjBoLTEwMC41Yy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTI5MS41IDIwN3YtMTVoMzI2YzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC0zMjZ2LTE1LjVoMTAxLjVjNy44NzUgMCAxNC45ODItMy4zMzIgMjAtOC42NTUgNS4wMTggNS4zMjIgMTIuMTI1IDguNjU1IDIwIDguNjU1aDExMGM3Ljg3NSAwIDE0Ljk4Mi0zLjMzMiAyMC04LjY1NSA1LjAxOCA1LjMyMiAxMi4xMjUgOC42NTUgMjAgOC42NTVoMTAwLjV2MTUuNWgtMzFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoMzF2MTV6bTM5Mi02MC41aC0xMDAuNWMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMDAuNXptLTEyOC0xMi41YzAgNi44OTMtNS42MDcgMTIuNS0xMi41IDEyLjVoLTExMGMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXptLTEyMi41LTEzNGgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXY3Ny4wMThjLTMuNzUzLTEuOTI0LTgtMy4wMTgtMTIuNS0zLjAxOGgtMTEwYy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTQwIDEwMS41YzYuODkzIDAgMTIuNSA1LjYwNyAxMi41IDEyLjV2MjBjMCA2Ljg5My01LjYwNyAxMi41LTEyLjUgMTIuNWgtMTAxLjV2LTQ1em0tODEuNSAxMzIuNjY2aC0yMHYtMTIuMTY3aDIwem0zNTIgMHYtMTIuMTY3aDIwdjEyLjE2N3ptNjUtMjkuNjY2YzAgMS4zNzgtMS4xMjIgMi41LTIuNSAyLjVoLTI3LjV2LTE0MC41YzAtMS4zNzggMS4xMjItMi41IDIuNS0yLjVoMjVjMS4zNzggMCAyLjUgMS4xMjIgMi41IDIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuNDkgMTMwLjE2N2gxMTIuMDJjNi44ODcgMCAxMi40OS01LjYwMyAxMi40OS0xMi40OXYtMTYuNTQ5YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djE0LjAzOWgtMTA3di02NmgxMDd2MTYuOTYxYzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTE5LjQ3MmMwLTYuODg3LTUuNjAzLTEyLjQ5LTEyLjQ5LTEyLjQ5aC0xMTIuMDJjLTYuODg3IDAtMTIuNDkgNS42MDMtMTIuNDkgMTIuNDl2NzEuMDIxYzAgNi44ODYgNS42MDMgMTIuNDkgMTIuNDkgMTIuNDl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzMS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4MS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMC4yMzIgMjQ3LjIxNWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjhjNy4zNDkgNC44MjggMTMuNTIyIDExLjAwMiAxOC4zNTEgMTguMzUxIDEuMzg3IDIuMTEgMy43NDMgMy4zODEgNi4yNjggMy4zODFzNC44ODEtMS4yNzEgNi4yNjgtMy4zODFjNC44MjgtNy4zNDkgMTEuMDAyLTEzLjUyMiAxOC4zNTEtMTguMzUxIDIuMTEtMS4zODcgMy4zODEtMy43NDMgMy4zODEtNi4yNjhzLTEuMjcxLTQuODgxLTMuMzgxLTYuMjY4Yy03LjM0OS00LjgyOC0xMy41MjItMTEuMDAyLTE4LjM1MS0xOC4zNTEtMS4zODctMi4xMS0zLjc0My0zLjM4MS02LjI2OC0zLjM4MXMtNC44ODEgMS4yNy02LjI2OCAzLjM4MXptMTQuMzQ0IDI0LjYxOGMtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTQgNS41ODMtNS4xODkgOC4wNzYtOC4wNzYgMi40OTQgMi44ODggNS4xODkgNS41ODMgOC4wNzYgOC4wNzZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Living Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzMsMzMxLjkxNlYyNzMuNjQ4QTM5LjcxLDM5LjcxLDAsMCwwLDQzMy4zMjgsMjM0SDM3NlYxNzBoNDQuMDA5YTYuMjg5LDYuMjg5LDAsMCwwLDUuNzQ3LTguMDJMNDA0LjgzMSw5Mi4yNDhBNS45NzYsNS45NzYsMCwwLDAsMzk5LjA4NCw4OEgzNDAuOTE2YTUuOTMyLDUuOTMyLDAsMCwwLTUuNzQ3LDQuMkwzMTQuMjQ0LDE2MS45MmE2LjM3Miw2LjM3MiwwLDAsMCwuOTM0LDUuNDgzLDYuMTc2LDYuMTc2LDAsMCwwLDQuODEzLDIuNkgzNjR2NjRIODguNjc1QTM5LjcxMywzOS43MTMsMCwwLDAsNDksMjczLjY0OHY1OC4yNjhhMzkuNDE3LDM5LjQxNywwLDAsMC0zNywzOS41NTZWNDYzLjFhNS45MTUsNS45MTUsMCwwLDAsNiw1LjlIMzV2MzBhNi4yNDYsNi4yNDYsMCwwLDAsNi4yOCw2aDY3Ljg2N0E1Ljg3Nyw1Ljg3NywwLDAsMCwxMTUsNDk5VjQ2OUg0MDd2MzBhNS44NzksNS44NzksMCwwLDAsNS44NTUsNmg2Ny44NjlBNi4yNDMsNi4yNDMsMCwwLDAsNDg3LDQ5OVY0NjloMTdhNS45MTMsNS45MTMsMCwwLDAsNi01LjlWMzcxLjQ3MkEzOS40MTcsMzkuNDE3LDAsMCwwLDQ3MywzMzEuOTE2Wk0zNDUuMzgxLDEwMGg0OS4yMzhsMTcuMzI2LDU4aC04My44OVpNODguNjc1LDI0Nkg0MzMuMzI4QTI3LjcsMjcuNywwLDAsMSw0NjEsMjczLjY0OHY1OS4zYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAsMzguNTI2VjM5MEg5MVYzNzEuNDcyYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAtMzguNTI2di01OS4zQTI3LjcsMjcuNywwLDAsMSw4OC42NzUsMjQ2Wk0xMDMsNDkzSDQ3VjQ2OWg1NlptMzcyLDBINDE5VjQ2OWg1NlptMjMtMzZIMjRWMzcxLjQ3MmEyNy41LDI3LjUsMCwxLDEsNTUsMFYzOTUuOGE2LjQ0OCw2LjQ0OCwwLDAsMCw2LjMxLDYuMkg0MzYuNjkzQTYuNDQ1LDYuNDQ1LDAsMCwwLDQ0MywzOTUuOFYzNzEuNDcyYTI3LjUsMjcuNSwwLDEsMSw1NSwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTQsMjAzLjIzOFY1Ni42MjZBNS42NCw1LjY0LDAsMCwwLDIwOC4wNjIsNTFoLTUzLjkyTDExMi4yNzIsOC45NDRhNS43MzcsNS43MzcsMCwwLDAtOC40ODQuMDQ3TDYxLjkxOSw1MUg4YTUuNjkzLDUuNjkzLDAsMCwwLTYsNS42MjZWMjAzLjIzOEE1LjgsNS44LDAsMCwwLDgsMjA5SDIwOC4wNjJBNS43NDksNS43NDksMCwwLDAsMjE0LDIwMy4yMzhaTTE3NCwxMzEuOGwtNDIuMjMsMTkuNjg2TDgwLjM2NSwxMTYuNDQzYTYuMjQ1LDYuMjQ1LDAsMCwwLTcuMTMxLjE2M0w0MSwxNDAuNjg2Vjg3SDE3NFpNNDEsMTU1LjY4OWwzNi4wNjItMjYuOTExLDUwLjg4NSwzNC41NDJhNi4xNyw2LjE3LDAsMCwwLDMuNDI3LDEuMDM5LDUuMTY5LDUuMTY5LDAsMCwwLDIuMzMyLS41NTdMMTc0LDE0NS4wMjVWMTczSDQxWk0xNzguMTU1LDc1SDM3LjY4OUwyMy4yNDMsNjNIMTkyLjVaTTI5LDg0LjA5MVYxNzYuMkwxNCwxODkuOTI4VjcwLjQ3M1pNMzcuNywxODVIMTc4LjE0bDEzLjc2NywxMkgyMy44MzVaTTE4NiwxNzYuMjFWODQuMDc4bDE2LTEzLjlWMTkwLjIyNlpNMTA4LjAzLDIxLjg1OSwxMzcuMTcyLDUxSDc4Ljg4OVoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4LjM3NCwxMzMuMmEyMC4yMTQsMjAuMjE0LDAsMSwwLTIwLjIxNC0yMC4yMTRBMjAuMjM2LDIwLjIzNiwwLDAsMCwxMjguMzc0LDEzMy4yWm0wLTI4LjQyN2E4LjIxNCw4LjIxNCwwLDEsMS04LjIxNCw4LjIxM0E4LjIyMyw4LjIyMywwLDAsMSwxMjguMzc0LDEwNC43NjhaIi8+CiAgICAgICAgPHBhdGggZD0iTTM0OC43ODcsMzA4LjQ0YTIyLjA4NywyMi4wODcsMCwwLDAsMCwyMS42NjJsLTguNDc5LDguNDc5YTYsNiwwLDEsMCw4LjQ4NCw4LjQ4NWw4LjQ3OS04LjQ4YTIyLjA5LDIyLjA5LDAsMCwwLDIxLjY2MiwwbDguNDc4LDguNDc5YTYsNiwwLDAsMCw4LjQ4Ni04LjQ4NWwtOC40ODctOC40ODhhMjIuMjExLDIyLjIxMSwwLDAsMCwwLTIxLjY0NGw4LjQ4Ny04LjQ4OGE2LDYsMCwwLDAtOC40ODYtOC40ODVsLTguNDc4LDguNDc5YTIyLjA5MiwyMi4wOTIsMCwwLDAtMjEuNjYxLDBsLTguNDgtOC40NzlhNiw2LDAsMSwwLTguNDg0LDguNDg1Wm0xOS4zMTYuNjc4YTEwLjE1NiwxMC4xNTYsMCwxLDEtNy4xNzksMi45NzRBMTAuMDgzLDEwLjA4MywwLDAsMSwzNjguMSwzMDkuMTE4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMzguNzg3LDMwOC40NGEyMi4wODcsMjIuMDg3LDAsMCwwLDAsMjEuNjYybC04LjQ3OSw4LjQ3OWE2LDYsMCwxLDAsOC40ODQsOC40ODVsOC40NzktOC40OGEyMi4wOSwyMi4wOSwwLDAsMCwyMS42NjIsMGw4LjQ3OCw4LjQ3OWE2LDYsMCwwLDAsOC40ODYtOC40ODVsLTguNDg3LTguNDg4YTIyLjIxMSwyMi4yMTEsMCwwLDAsMC0yMS42NDRsOC40ODctOC40ODhhNiw2LDAsMCwwLTguNDg2LTguNDg1bC04LjQ3OCw4LjQ3OWEyMi4wOTIsMjIuMDkyLDAsMCwwLTIxLjY2MSwwbC04LjQ4LTguNDc5YTYsNiwwLDEsMC04LjQ4NCw4LjQ4NVptMTkuMzE2LjY3OGExMC4xNTYsMTAuMTU2LDAsMSwxLTcuMTc5LDIuOTc0QTEwLjA4MywxMC4wODMsMCwwLDEsMjU4LjEsMzA5LjExOFoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4Ljc4NywzMDguNDRhMjIuMDg3LDIyLjA4NywwLDAsMCwwLDIxLjY2MmwtOC40NzksOC40NzlhNiw2LDAsMSwwLDguNDg0LDguNDg1bDguNDc5LTguNDhhMjIuMDksMjIuMDksMCwwLDAsMjEuNjYyLDBsOC40NzgsOC40NzlhNiw2LDAsMCwwLDguNDg2LTguNDg1bC04LjQ4Ny04LjQ4OGEyMi4yMTEsMjIuMjExLDAsMCwwLDAtMjEuNjQ0bDguNDg3LTguNDg4YTYsNiwwLDAsMC04LjQ4Ni04LjQ4NWwtOC40NzgsOC40NzlhMjIuMDkyLDIyLjA5MiwwLDAsMC0yMS42NjEsMGwtOC40OC04LjQ3OWE2LDYsMCwxLDAtOC40ODQsOC40ODVabTE5LjMxNi42NzhhMTAuMTU2LDEwLjE1NiwwLDEsMS03LjE3OSwyLjk3NEExMC4wODMsMTAuMDgzLDAsMCwxLDE0OC4xLDMwOS4xMThaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=","Locker Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDYwIDYwIiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMjMgNGgtMTVjLTIuMjA5MTM5IDAtNCAxLjc5MDg2MS00IDR2MzRjMCAyLjIwOTEzOSAxLjc5MDg2MSA0IDQgNGg2Yy41NTIyODQ3IDAgMS0uNDQ3NzE1MyAxLTFzLS40NDc3MTUzLTEtMS0xaC02Yy0xLjEwNDU2OTUgMC0yLS44OTU0MzA1LTItMnYtMzRjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYxMi4wNWMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyLjA1YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDEyaDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDE2aDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxIDE5YzAtLjU1MjI4NDctLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDFoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im05IDM1Yy0uNTUyMjg0NzUgMC0xIC40NDc3MTUzLTEgMXY1YzAgLjU1MjI4NDcuNDQ3NzE1MjUgMSAxIDFoM2MuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtMnYtNGMwLS41NTIyODQ3LS40NDc3MTUyNS0xLTEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMGgtMTVjLTIuOTEyMjE0Mi4wMDE4MDY5MS01LjU5MzQwMDggMS41ODYwMDUxOC03IDQuMTM2LTEuNDA2NTk5Mi0yLjU0OTk5NDgyLTQuMDg3Nzg1OC00LjEzNDE5MzA5LTctNC4xMzZoLTE1Yy00LjQxNjIyMTkyLjAwNDk1OTg4LTcuOTk1MDQwMTIgMy41ODM3NzgwOC04IDh2MzRjLjAwNDk1OTg4IDQuNDE2MjIxOSAzLjU4Mzc3ODA4IDcuOTk1MDQwMSA4IDhoNmMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtNmMtMy4zMTIzMzc1Ny0uMDAzMzA3NC01Ljk5NjY5MjYyLTIuNjg3NjYyNC02LTZ2LTM0Yy4wMDMzMDczOC0zLjMxMjMzNzU3IDIuNjg3NjYyNDMtNS45OTY2OTI2MiA2LTZoMTVjMy4zMTIzMzc2LjAwMzMwNzM4IDUuOTk2NjkyNiAyLjY4NzY2MjQzIDYgNnYxMmMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyYy4wMDMzMDc0LTMuMzEyMzM3NTcgMi42ODc2NjI0LTUuOTk2NjkyNjIgNi02aDE1YzMuMzEyMzM3Ni4wMDMzMDczOCA1Ljk5NjY5MjYgMi42ODc2NjI0MyA2IDZ2MzRjLS4wMDMzMDc0IDMuMzEyMzM3Ni0yLjY4NzY2MjQgNS45OTY2OTI2LTYgNmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMWg2YzQuNDE2MjIxOS0uMDA0OTU5OSA3Ljk5NTA0MDEtMy41ODM3NzgxIDgtOHYtMzRjLS4wMDQ5NTk5LTQuNDE2MjIxOTItMy41ODM3NzgxLTcuOTk1MDQwMTItOC04eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NiA0Nmg2YzIuMjA5MTM5IDAgNC0xLjc5MDg2MSA0LTR2LTM0YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTRoLTE1Yy0yLjIwOTEzOSAwLTQgMS43OTA4NjEtNCA0djEyLjA1YzAgLjU1MjI4NDcuNDQ3NzE1MyAxIDEgMXMxLS40NDc3MTUzIDEtMXYtMTIuMDVjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYzNGMwIDEuMTA0NTY5NS0uODk1NDMwNSAyLTIgMmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTJoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTZoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMjBoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDkgMjd2M2MwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTNjMC0uNTUyMjg0Ny0uNDQ3NzE1My0xLTEtMXMtMSAuNDQ3NzE1My0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3IDIzYy0zLjg2NDE2NTcuMDA0NDA4Ni02Ljk5NTU5MTQgMy4xMzU4MzQzLTcgN3Y2Yy0xLjY1Njg1NDIgMC0zIDEuMzQzMTQ1OC0zIDN2MThjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzaDIwYzEuNjU2ODU0MiAwIDMtMS4zNDMxNDU4IDMtM3YtMThjMC0xLjY1Njg1NDItMS4zNDMxNDU4LTMtMy0zdi02Yy0uMDA0NDA4Ni0zLjg2NDE2NTctMy4xMzU4MzQzLTYuOTk1NTkxNC03LTd6bTE0IDE2djE4YzAgLjU1MjI4NDctLjQ0NzcxNTMgMS0xIDFoLTIwYy0uNTUyMjg0NyAwLTEtLjQ0NzcxNTMtMS0xdi0xOGMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoMjBjLjU1MjI4NDcgMCAxIC40NDc3MTUzIDEgMXptLTctM2gtOHYtNmMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoNmMuNTUyMjg0NyAwIDEgLjQ0NzcxNTMgMSAxem00LTZ2NmgtMnYtNmMwLTEuNjU2ODU0Mi0xLjM0MzE0NTgtMy0zLTNoLTZjLTEuNjU2ODU0MiAwLTMgMS4zNDMxNDU4LTMgM3Y2aC0ydi02Yy4wMDMzMDYxLTIuNzYwMDUzMiAyLjIzOTk0NjgtNC45OTY2OTM5IDUtNWg2YzIuNzYwMDUzMi4wMDMzMDYxIDQuOTk2NjkzOSAyLjIzOTk0NjggNSA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMS4yMTMgNDEuMTQ0Yy0xLjUwNDE3Mi0uMzY5MzcyNy0zLjA5NDY0MjYtLjAyNTYwNjgtNC4zMTIuOTMyLTEuMjE3ODgzNC45NjE4MTM0LTEuOTIwMTI3NSAyLjQzNDYwODktMS45MDA3NDAzIDMuOTg2MzY1Ny4wMTkzODcxIDEuNTUxNzU2OC43NTgyMDc2IDMuMDA2NTQ4MSAxLjk5OTc0MDMgMy45Mzc2MzQzdjNjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzczMtMS4zNDMxNDU4IDMtM3YtM2MxLjU0NDUxMDctMS4xNTY5NTQ0IDIuMjg1MzQ5Mi0zLjA5OTQ1NTcgMS45MDM1MTkxLTQuOTkxMDg1Mi0uMzgxODMwMS0xLjg5MTYyOTYtMS44MTgxNTg3LTMuMzk0NjY0My0zLjY5MDUxOTEtMy44NjE5MTQ4em0uNTg3IDcuMjU2Yy0uNDk3MTQ3OS4zNTc2MDY2LS43OTQyNDAxLjkzMDYyMzItLjggMS41NDN2My4wNTdjMCAuNTUyMjg0Ny0uNDQ3NzE1MyAxLTEgMXMtMS0uNDQ3NzE1My0xLTF2LTMuMDgxYy0uMDA1NzA4Mi0uNjAyMDUyMi0uMjk5NDI1OS0xLjE2NDk0OTItLjc5LTEuNTE0LTEuMDM1MDU1My0uNzcxNzg3Mi0xLjQ2MDIxNjQtMi4xMTkyNTA3LTEuMDU1NTM2NC0zLjM0NTMxMzFzMS41NDg0MjEtMi4wNTU2ODY3IDIuODM5NTM2NC0yLjA1OTY4NjljLjI1NTAzMDkuMDAwNTA4NS41MDkxMTQ0LjAzMTA1MjIuNzU3LjA5MSAxLjA1NTg2OC4yNjMyNDYxIDEuODgyOTA3IDEuMDgzMzc3MiAyLjE1NSAyLjEzNy4zMTMzNzQ2IDEuMTgzOTY5NS0uMTI0NDE2NSAyLjQzOTU1MTItMS4xMDYgMy4xNzJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nursery:Oxe,Office:Exe,Outdoors:fxe,Playroom:xxe,Pool:_xe,"Rear Wall":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTAzLjQ2Nyw4LjUzM0gzODRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM3YxMTkuNDY3VjI1NnY1MS4yaC02OS43MzVjMC45NDgtMi42NzEsMS40NjgtNS41NDIsMS40NjgtOC41MzMKCQkJCWMwLTE0LjExNC0xMS40ODYtMjUuNi0yNS42LTI1LjZoLTE3LjA2N1YyNTZoODUuMzMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxMTAuOTMzYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzMKCQkJCUgxNjIuMTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDg1LjMzM3YxNy4wNjdIMjMwLjQKCQkJCWMtMTQuMTE0LDAtMjUuNiwxMS40ODYtMjUuNiwyNS42YzAsMi45OTEsMC41MjEsNS44NjIsMS40NjgsOC41MzNoLTY5LjczNVYyNTZWMTM2LjUzM1YxNy4wNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzMwoJCQkJSDguNTMzQzMuODIzLDguNTMzLDAsMTIuMzQ4LDAsMTcuMDY3djExOS40NjdWMjU2djExOS40Njd2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDEyOGgyNTZoMTE5LjQ2NwoJCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YzNzUuNDY3VjI1NlYxMzYuNTMzVjE3LjA2N0M1MTIsMTIuMzQ4LDUwOC4xNzcsOC41MzMsNTAzLjQ2Nyw4LjUzM3ogTTE3MC42NjcsMTUzLjZoMTcwLjY2NwoJCQkJdjUxLjJIMTcwLjY2N1YxNTMuNnogTTM0MS4zMzMsMTE5LjQ2N3YxNy4wNjdIMTcwLjY2N3YtMTcuMDY3SDM0MS4zMzN6IE0xNzAuNjY3LDIyMS44NjdoMTcwLjY2N3YxNy4wNjdIMTcwLjY2N1YyMjEuODY3egoJCQkJIE0zNzUuNDY3LDQ4Ni40SDI2NC41MzN2LTkzLjg2N2g1MS4yaDU5LjczM1Y0ODYuNHogTTMwNy4yLDM3NS40NjdIMjA0LjhWMzU4LjRoMTAyLjRWMzc1LjQ2N3ogTTQ5NC45MzMsMjQ3LjQ2N2gtMTcuMDY3VjE3OS4yCgkJCQljMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtMjUuNmgtMjUuNmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjY4LjI2N2gtMTcuMDY3di0xMDIuNGgxMDIuNFYyNDcuNDY3egoJCQkJIE00MjYuNjY3LDI0Ny40Njd2LTU5LjczM2g4LjUzM3Y1OS43MzNINDI2LjY2N3ogTTQ1Mi4yNjcsMTg3LjczM2g4LjUzM3Y1OS43MzNoLTguNTMzVjE4Ny43MzN6IE0zOTIuNTMzLDMxNS43MzN2LTUxLjJoMjUuNgoJCQkJaDI1LjZoMjUuNmgyNS42djEwMi40aC0xMDIuNFYzMTUuNzMzeiBNMzkyLjUzMywyNS42aDEwMi40VjEyOGgtMTAyLjRWMjUuNnogTTIyMS44NjcsMjk4LjY2N2MwLTQuNzEsMy44MzEtOC41MzMsOC41MzMtOC41MzMKCQkJCWg1MS4yYzQuNzAyLDAsOC41MzMsMy44MjMsOC41MzMsOC41MzNzLTMuODMxLDguNTMzLTguNTMzLDguNTMzaC01MS4yQzIyNS42OTgsMzA3LjIsMjIxLjg2NywzMDMuMzc3LDIyMS44NjcsMjk4LjY2N3oKCQkJCSBNMjMwLjQsMzI0LjI2N2g1MS4yaDkzLjg2N3Y1MS4yaC01MS4yVjM1OC40YzAtOS40MTItNy42NTQtMTcuMDY3LTE3LjA2Ny0xNy4wNjdIMjA0LjhjLTkuNDEyLDAtMTcuMDY3LDcuNjU0LTE3LjA2NywxNy4wNjcKCQkJCXYxNy4wNjdoLTUxLjJ2LTUxLjJIMjMwLjR6IE01MS4yLDMzMi44aDM0LjEzM3Y4LjUzM0g1MS4yVjMzMi44eiBNODUuMzMzLDMxNS43MzNINTEuMlYzMDcuMmgzNC4xMzNWMzE1LjczM3ogTTUxLjIsMzU4LjQKCQkJCWgzNC4xMzN2OC41MzNINTEuMlYzNTguNHogTTEwMi40LDM0OS44Njd2LTI1LjZ2LTI1LjZjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzCgkJCQl2MjUuNnYyNS42djE3LjA2N0gxNy4wNjd2LTEwMi40aDEwMi40djUxLjJ2NTEuMkgxMDIuNFYzNDkuODY3eiBNNTkuNzMzLDExMC45MzNINzYuOFYxMjhINTkuNzMzVjExMC45MzN6IE01MS4yLDE0NS4wNjdoMzQuMTMzCgkJCQloMzQuMTMzdjEwMi40aC0xMDIuNHYtMTAyLjRINTEuMnogTTE3LjA2NywyNS42aDEwMi40VjEyOGgtMjUuNnYtMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzNoLTguNTMzSDUxLjJoLTguNTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1YxMjgKCQkJCWgtMjUuNlYyNS42eiBNMTcuMDY3LDM4NGgyNS42aDUxLjJoMjUuNnYxMDIuNGgtMTAyLjRWMzg0eiBNMTM2LjUzMywzOTIuNTMzaDU5LjczM2g1MS4yVjQ4Ni40SDEzNi41MzNWMzkyLjUzM3ogTTQ5NC45MzMsNDg2LjQKCQkJCWgtMTcuMDY3di02OC4yNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDg2LjRoLTguNTMzdi02OC4yNjcKCQkJCWMwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjgxNC04LjUzMyw4LjUzM1Y0ODYuNGgtOC41MzN2LTY4LjI2N2MwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzCgkJCQlzLTguNTMzLDMuODE0LTguNTMzLDguNTMzVjQ4Ni40aC0xNy4wNjdWMzg0aDEwMi40VjQ4Ni40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjEuODY3LDQwOS42SDIwNC44Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNoOC41MzN2OC41MzMKCQkJCWMwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM3YtMTcuMDY3QzIzMC40LDQxMy40MTQsMjI2LjU3Nyw0MDkuNiwyMjEuODY3LDQwOS42eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDcuMiw0MDkuNmgtMTcuMDY3Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDM1LjJjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJdi04LjUzM2g4LjUzM2M0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNTMzExLjkxLDQwOS42LDMwNy4yLDQwOS42eiIvPgogICAgPC9nPgo8L3N2Zz4K","Second Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5OS42NjgsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTVjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzMwNi45NTUsMjM0LjgzNSwzMDMuNjkzLDIzMS41NzIsMjk5LjY2OCwyMzEuNTcyeiBNMjgxLjc1OCwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQxMi41NzIsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM3OS0xMC4zOGgtNTkuMzU2Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxOS44NTksMjM0LjgzNSw0MTYuNTk3LDIzMS41NzIsNDEyLjU3MiwyMzEuNTcyeiBNMzk0LjY2MSwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgZD0iTTE4Mi44MTMsNDEzLjgzM2gtMC41Mjh2LTYwLjA0NWMwLTUuNTY2LTQuNTI5LTEwLjA5NS0xMC4wOTUtMTAuMDk1aC01My44ODZjLTUuNTY2LDAtMTAuMDk1LDQuNTI5LTEwLjA5NSwxMC4wOTV2NjAuMDQ1CgkJCWgtMC41MjhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNSwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g3LjgxNGg1OS41MDRoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkwLjEsNDE3LjA5NSwxODYuODM4LDQxMy44MzMsMTgyLjgxMyw0MTMuODMzeiBNMTY3LjcxMiw0MTMuODMzaC00NC45MzF2LTU1LjU2N2g0NC45MzFWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNNDA0LjMxNCw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTYsNC41MjktMTAuMDk2LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0SDM5Ni41aDcuODE0YzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxMS42MDEsNDE3LjA5NSw0MDguMzM5LDQxMy44MzMsNDA0LjMxNCw0MTMuODMzeiBNMzg5LjIxMyw0MTMuODMzaC00NC45MzJ2LTU1LjU2N2g0NC45MzJWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNMjc2LjU0NSw0MDUuMDg5Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3djEyLjYzYzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODcKCQkJYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODd2LTEyLjYzQzI4My44MzIsNDA4LjM1MiwyODAuNTcsNDA1LjA4OSwyNzYuNTQ1LDQwNS4wODl6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Shed:Sxe,"Sleeping Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDU2LDIyNGMtMTQuMTMzLDAtMjQsNi4zMDEtMjQsMTUuMzJ2MjcuNTA1QzQxOS4zMzMsMjQxLjc5MywzOTkuODUsMjI0LDM3NiwyMjRIMTUyYy00LjQxNy0wLjAwMS03Ljk5OSwzLjU3OS04LDcuOTk2CgkJCWMwLDAuMDAxLDAsMC4wMDMsMCwwLjAwNHY0OC4wNjdjMC4wNDUtMTMuMDUyLTUuMjAxLTI2LjA3NS0xNS41ODYtMzUuNTgzYy0xOS41NTItMTcuOTAyLTQ5LjkxNS0xNi41NjQtNjcuODE2LDIuOTg5CgkJCWMtMTYuNzY0LDE4LjMwOS0xNi44MDEsNDYuMzgtMC4wODYsNjQuNzM0Yy00LjYxMiwwLjUwOC04Ljk2OCwyLjM4LTEyLjUxMiw1LjM3NVYxMTUuMTk5QzQ4LDEwNC40MzQsMzcuNDYxLDk2LDI0LDk2CgkJCXMtMjQsOC40MzQtMjQsMTkuMTk5djM0NS42MDJDMCw0NzEuNTY2LDEwLjUzOSw0ODAsMjQsNDgwczI0LTguNDM0LDI0LTE5LjE5OVY0MDhoMzg0djU2LjY4YzAsOS4wMTksOS44NjcsMTUuMzIsMjQsMTUuMzIKCQkJczI0LTYuMzAxLDI0LTE1LjMyVjIzOS4zMkM0ODAsMjMwLjMwMSw0NzAuMTMzLDIyNCw0NTYsMjI0eiBNMzIsNDYwLjgwMWMtMC4wODYsMC42NTYtMi43NzMsMy4xOTktOCwzLjE5OQoJCQljLTUuMjUsMC03LjkyMi0yLjU0My04LTMuMTk5VjExNS4xOTljMC4wNzgtMC42NTYsMi43NS0zLjE5OSw4LTMuMTk5YzUuMjI3LDAsNy45MTQsMi41NDMsOCwzLjE5OVY0NjAuODAxeiBNMTYwLDI0MGgyMTYKCQkJYzMwLjE3MiwwLDUzLjE3Miw0NC45MjYsNTUuNzU4LDg4SDE2MFYyNDB6IE0xNDQsMjgwLjA4M3YzOC41NmMtMy40NTItMy4zNTMtNy44NDgtNS41NjYtMTIuNTk3LTYuMzQyCgkJCUMxMzkuNzkzLDMwMy4xMzcsMTQzLjk1NiwyOTEuNiwxNDQsMjgwLjA4M3ogTTk2LDI0OGMxNy42NzMsMCwzMiwxNC4zMjcsMzIsMzJjMCwxNy42NzMtMTQuMzI3LDMyLTMyLDMycy0zMi0xNC4zMjctMzItMzIKCQkJQzY0LjAxOSwyNjIuMzM1LDc4LjMzNSwyNDguMDE5LDk2LDI0OHogTTQzMiwzOTJINDh2LTQ4LjAyM2M0LjE2My0wLjMyOCw3LjM3NC0zLjgwMSw3LjM3NS03Ljk3NwoJCQljLTAuMDc3LTQuMzMxLDMuMzY0LTcuOTA5LDcuNjk1LThoNjQuNjFjNC4zMzEsMC4wOTEsNy43NzIsMy42NjksNy42OTUsOGMtMC4wMDEsNC40MTcsMy41NzksNy45OTksNy45OTYsOAoJCQljMC4wMDEsMCwwLjAwMywwLDAuMDA0LDBINDMyVjM5MnogTTQ2NCw0NjIuNTk0Yy01LjE2OSwxLjg3NS0xMC44MzEsMS44NzUtMTYsMFYyNDEuNDA2YzUuMTY5LTEuODc1LDEwLjgzMS0xLjg3NSwxNiwwVjQ2Mi41OTR6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTEzNy4wNzgsMTc2bDI5LjA3LTM0Ljg3OWMxLjk4Ni0yLjM4NiwyLjQxMy01LjcwNSwxLjA5NC04LjUxNmMtMS4zMTYtMi44MS00LjEzOS00LjYwNS03LjI0Mi00LjYwNWgtNDh2MTZoMzAuOTIyCgkJCWwtMjkuMDcsMzQuODc5Yy0yLjgyNywzLjM5OC0yLjM2NCw4LjQ0NCwxLjAzNCwxMS4yN2MxLjQzNywxLjE5NSwzLjI0NiwxLjg1LDUuMTE0LDEuODUxaDQ4di0xNkgxMzcuMDc4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjQuMzU5LDEzNmw0NS45NTMtNTkuMDljMS44NzctMi40MTEsMi4yMTctNS42ODEsMC44NzUtOC40MjZjLTEuMzQ0LTIuNzQzLTQuMTMyLTQuNDgzLTcuMTg4LTQuNDg0aC02NHYxNmg0Ny42NDEKCQkJbC00NS45NTMsNTkuMDljLTIuNzE0LDMuNDg0LTIuMDg5LDguNTA5LDEuMzk2LDExLjIyM2MxLjQwNSwxLjA5NCwzLjEzNiwxLjY4OCw0LjkxNywxLjY4OGg2NHYtMTZIMjI0LjM1OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzI4LDk2bDYyLjM5OC04My4xOTljMi42NTItMy41MzMsMS45MzktOC41NDYtMS41OTQtMTEuMTk5QzM4Ny40MTksMC41NjIsMzg1LjczMywwLDM4NCwwaC03MnYxNmg1NmwtNjIuMzk4LDgzLjE5OQoJCQljLTEuODE4LDIuNDI0LTIuMTEyLDUuNjY4LTAuNzU4LDguMzc5QzMwNi4yLDExMC4yODgsMzA4Ljk3LDExMiwzMTIsMTEyaDgwVjk2SDMyOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Stairway:kxe,Stairwell:Yxe,Storeroom:vxe,"Summer House":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuODMyLDIyNS4yNjNoLTQzLjAzOWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY2MC4xMzRjMCw0LjE0MiwzLjM1Nyw3LjUsNy41LDcuNWg0My4wMzljNC4xNDIsMCw3LjUtMy4zNTgsNy41LTcuNQoJCQl2LTYwLjEzNEMxODEuMzMyLDIyOC42MjIsMTc3Ljk3NCwyMjUuMjYzLDE3My44MzIsMjI1LjI2M3ogTTE2Ni4zMzEsMjg1LjM5N2gtMjguMDM4di00NS4xMzNoMjguMDM4VjI4NS4zOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OS4xMjcsMjAxLjE5M2MzLjMxNCwyLjI3OCw4LjA5MSwxLjQ3MSwxMC40My0xLjkzMmMwLDAsMjMuMDA5LTMzLjQ2OSwyMy4wMjktMzMuNDk4CgkJCWMyLjMxNS0zLjM2OCwxLjQyOC04LjEyMS0xLjkzMi0xMC40MzFMMjcxLjc2Myw0Ljg2MWMtOS40MjktNi40OC0yMi4wOTctNi40ODEtMzEuNTI2LDBjMCwwLTEzOS43NjIsOTYuMDc3LTE0MC4yNzMsOTYuNDI4CgkJCWMtNy45MTEsNS40MzgsMC40MjksMTcuOTEsOC40OTcsMTIuMzYzbDE0MC4yNzQtOTYuNDI5YzQuMzQ3LTIuOTg3LDEwLjE4Ny0yLjk4NywxNC41MzEtMC4wMDFsMjEyLjcwOSwxNDYuMjI0bC0xNC41MzEsMjEuMTM3CgkJCWMwLDAtMjAxLjE0My0xMzguMjcyLTIwMS4xOTUtMTM4LjMwOGMtMi40OTUtMS43MTUtNS45OTktMS43MTgtOC40OTgtMC4wMDFMNTAuNTU3LDE4NC41ODNsLTE0LjUzLTIxLjEzNwoJCQljMCwwLDQ3LjExNy0zMi4zOSw0Ny4yODktMzIuNTA5YzcuODA3LTUuMzY2LTAuNDE2LTE3LjkxNy04LjQ5OC0xMi4zNjJjMCwwLTUzLjMwMSwzNi42NC01My40NzEsMzYuNzU3CgkJCWMtMy4zNzQsMi4zMi00LjI0MSw3LjA3MS0xLjkzMywxMC40MzFsMjEuNzA5LDMxLjU3OXYzMDcuMTU2YzAsNC4xNDIsMy4zNTgsNy41LDcuNSw3LjVIMjU2YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjVWMzk1Ljk3MQoJCQlINDAyLjY0djEwOC41MjhjMCw0LjE0MiwzLjM1OCw3LjUsNy41MDEsNy41aDMwLjQ4OGM0LjE0MiwwLDcuNS0zLjM1OCw3LjUtNy41VjM5NS45NzFoMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4NwoJCQljMC00LjE0My0zLjM1OC03LjUtNy41LTcuNWgtMjMuNzY5di01Ny4yNTloMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4OGMwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC0yMy43Njl2LTU0LjEwMwoJCQlMNDU5LjEyNywyMDEuMTkzeiBNNDE3LjY0MSwxODYuODc2aDE1LjQ4N3Y2MC44NThoLTE1LjQ4N1YxODYuODc2eiBNMjU2LDYxLjU1NmwzOS4wNzUsMjYuODYxaC03OC4xNDlMMjU2LDYxLjU1NnoKCQkJIE01Ni4xMjUsMjcwLjMzMmgzOC4zOTl2NTMuMDU1YzAsNC4xNDEsMy4zNTgsNy41LDcuNSw3LjVIMjAyLjZjNC4xNDIsMCw3LjUwMS0zLjM1OCw3LjUwMS03LjV2LTUzLjA1NWgzOC4zOTh2NjguNDU2SDU2LjEyNQoJCQlWMjcwLjMzMnogTTEwOS41MjUsMzE1Ljg4NlYyMDkuNzc3aDg1LjU3NXYxMDYuMTA5SDEwOS41MjV6IE05NC41MjQsNDk2Ljk5OEg1Ni4xMjV2LTU5Ljc1NGgzOC4zOTlWNDk2Ljk5OHogTTE2Ni4zMzEsNDk2Ljk5NwoJCQloLTI4LjAzOHYtODUuNzgzaDI4LjAzOFY0OTYuOTk3eiBNMTk1LjA5OSw0OTYuOTk3aC0xMy43Njd2LTkzLjI4M2MwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC00My4wMzkKCQkJYy00LjE0MiwwLTcuNTAxLDMuMzU4LTcuNTAxLDcuNXY5My4yODNoLTEzLjc2OFYzODAuNzI3aDg1LjU3NVY0OTYuOTk3eiBNMjQ4LjQ5OSw0OTYuOTk4SDIxMC4xdi01OS43NTRoMzguMzk4VjQ5Ni45OTh6CgkJCSBNMjQ4LjUsNDIyLjI0NGgtMzguMzk5di00OS4wMThjLTAuMDAxLTQuMTQyLTMuMzU5LTcuNS03LjUwMi03LjVIMTAyLjAyNGMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNTAxdjQ5LjAxOEg1Ni4xMjV2LTY4LjQ1NgoJCQlIMjQ4LjVWNDIyLjI0NHogTTI0OC41LDI1NS4yMjVjMCwwLjAwMywwLDAuMDA2LDAsMC4wMXYwLjA5NmgtMzguMzk5di01My4wNTVjMC00LjE0Mi0zLjM1OC03LjUtNy41LTcuNUgxMDIuMDI0CgkJCWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY1My4wNTVINTYuMTI1di01Ni4zNzNsMTcuNjYzLTEyLjE0M2MwLjI5NywwLjAzNiwwLjU5NywwLjA2LDAuOTA0LDAuMDZIMjQ4LjVWMjU1LjIyNXoKCQkJIE05NS41MjMsMTcxLjg3NWw5OS41ODEtNjguNDU2aDEyMS43OTNsOTkuNTgxLDY4LjQ1NmgtNi4zMzZIOTUuNTIzeiBNNDAyLjY0LDE4Ni44NzZ2NjAuODU4SDI2My41MDF2LTYwLjg1OEg0MDIuNjR6CgkJCSBNMjYzLjUwMSwyOTMuMjIzaDE1LjQ4NnY1Ny4yNTloLTE1LjQ4NlYyOTMuMjIzeiBNNDMzLjEyOCw0OTYuOTk4aC0xNS40ODdWMzk1Ljk3MWgxNS40ODdWNDk2Ljk5OHogTTQ2NC4zOTcsMzY1LjQ4NHYxNS40ODYKCQkJSDI2My41MDF2LTE1LjQ4Nkg0NjQuMzk3eiBNMjkzLjk4OCwzNTAuNDgydi01Ny4yNTloMTUuNDg3djU3LjI1OUgyOTMuOTg4eiBNMzI0LjQ3NiwzNTAuNDgydi01Ny4yNTloMTYuMzM3djU3LjI1OUgzMjQuNDc2egoJCQkgTTM1NS44MTQsMzUwLjQ4MnYtNTcuMjU5aDE1LjQ4N3Y1Ny4yNTlIMzU1LjgxNHogTTM4Ni4zMDIsMzUwLjQ4MnYtNTcuMjU5aDE2LjMzN3Y1Ny4yNTlIMzg2LjMwMnogTTQxNy42NDEsMzUwLjQ4MnYtNTcuMjU5CgkJCWgxNS40ODd2NTcuMjU5SDQxNy42NDF6IE00NjQuMzk3LDI2Mi43MzV2MTUuNDg3SDI2My41MDF2LTE1LjQ4N0g0NjQuMzk3eiIvPgogICAgPC9nPgo8L3N2Zz4K","Swimming Pool":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4Ny43MzMgMTg3LjczMyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xODcuNTk5LDE1MS40NThMMTUzLjQ2NSwzMy4xODZjLTAuNDIyLTEuNDYxLTEuNzU4LTIuNDY2LTMuMjc5LTIuNDY2SDM3LjU0N2MtMS41MjEsMC0yLjg1NywxLjAwNS0zLjI3OSwyLjQ2NgoJCQlMMC4xMzUsMTUxLjQ1OEMwLjA0NCwxNTEuNzY1LDAsMTUyLjA4NSwwLDE1Mi40MDV2MjUuMDg4YzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNIMTg0LjMyCgkJCWMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzdi0yNS4wODhDMTg3LjczMywxNTIuMDg1LDE4Ny42ODcsMTUxLjc2NSwxODcuNTk5LDE1MS40NTh6IE0xODAuOTA3LDE3NC4wOEg2LjgyN3YtMjEuMTkyCgkJCUw0MC4xMTUsMzcuNTQ3SDE0Ny42MmwzMy4yODcsMTE1LjM0MlYxNzQuMDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTc4LjUwNyw2LjgyN2MtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3Y1MS4yYzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNzMy40MTMtMS41MjksMy40MTMtMy40MTN2LTUxLjIKCQkJQzgxLjkyLDguMzU2LDgwLjM5MSw2LjgyNyw3OC41MDcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsNi44MjdjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTN2NTEuMmMwLDEuODg0LDEuNTI5LDMuNDEzLDMuNDEzLDMuNDEzYzEuODg0LDAsMy40MTMtMS41MjksMy40MTMtMy40MTMKCQkJdi01MS4yQzExMi42NCw4LjM1NiwxMTEuMTExLDYuODI3LDEwOS4yMjcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsMTcuMDY3aC0zMC43MmMtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3MxLjUyOSwzLjQxMywzLjQxMywzLjQxM2gzMC43MmMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzCgkJCVMxMTEuMTExLDE3LjA2NywxMDkuMjI3LDE3LjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTA5LjIyNywzMC43MmgtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSwzMC43MiwxMDkuMjI3LDMwLjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDkuMjI3LDQ0LjM3M2gtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSw0NC4zNzMsMTA5LjIyNyw0NC4zNzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE2My43ODksMTQ2LjE3OWwtMTcuNTE2LTk4Ljk4N2MtMC4yODgtMS42My0xLjcwNS0yLjgxOC0zLjM2LTIuODE4SDQ4LjMyOGMtMS42MTMsMC0zLjAwNSwxLjEyNi0zLjM0LDIuNzAzCgkJCWwtMjEuMDE5LDk4Ljk4N2MtMC4yMTMsMS4wMDcsMC4wMzgsMi4wNTcsMC42ODYsMi44NTdjMC42NDksMC44LDEuNjIxLDEuMjY1LDIuNjUyLDEuMjY1aDEzMy4xMmMxLjAwOSwwLDEuOTY2LTAuNDQ3LDIuNjE2LTEuMjE5CgkJCUMxNjMuNjkxLDE0OC4xOTUsMTYzLjk2NSwxNDcuMTc0LDE2My43ODksMTQ2LjE3OXogTTMxLjUyLDE0My4zNkw1MS4wODksNTEuMmg4OC45NThsMTYuMzA5LDkyLjE2SDMxLjUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Terrace:bxe,Toilet:Qxe,Upstairs:Uxe,Wardrobe:$xe,Washroom:Pxe,Wc:Wxe,Windscreen:Bxe,Workshop:Jxe,Workspace:Rxe},Gxe=[{_id:"hood",name:{en:"Hood",ru:"Вытяжка",de:"Abzugshaube",fr:"Capot",it:"Cappe",nl:"Hood",pl:"Okapy",pt:"Hood",es:"Campana","zh-cn":"抽油烟机"},icon:"Hoods.svg"},{_id:"alarm_system",name:{en:"Alarm System",ru:"Сигнализация",de:"Alarmanlage",fr:"Systèmes D'Alarme",it:"Sistemi Di Allarme",nl:"Alarm Systems",pl:"Systemy Alarmowe",pt:"Sistemas De Alarme",es:"Sistemas De Alarma","zh-cn":"报警系统"},icon:"Alarm Systems.svg"},{_id:"battery_status",name:{en:"Battery Status",ru:"Заряд батареи",de:"Batteriestatus",fr:"État De La Batterie",it:"Stato Della Batteria",nl:"Batterij Status",pl:"Stan Baterii",pt:"Estado Da Bateria",es:"Estado De La Batería","zh-cn":"电池状态"},icon:"Battery Status.svg"},{_id:"lighting",name:{en:"Lighting",ru:"Светильник",de:"Beleuchtung",fr:"Éclairages",it:"Illuminazione",nl:"Verlichting",pl:"Oprawy Oświetleniowe",pt:"Iluminações",es:"Iluminaciones","zh-cn":"照明"},icon:"Lightings.svg"},{_id:"shading",name:{en:"Shading",ru:"Затенение",de:"Beschattungen",fr:"Ombres",it:"Ombreggiatura",nl:"Shading",pl:"Zacienienie",pt:"Shading",es:"Sombreado","zh-cn":"底纹"},icon:"Shading.svg"},{_id:"irrigation",name:{en:"Irrigation",ru:"Орошение",de:"Bewässerung",fr:"Irrigation",it:"Irrigazione",nl:"Irrigatie",pl:"Nawadnianie",pt:"Irrigação",es:"Irrigación","zh-cn":"灌溉"},icon:"Irrigation.svg"},{_id:"iron",name:{en:"Iron",ru:"Утюг",de:"Bügeleisen",fr:"Le Fer",it:"Ferro",nl:"Ijzer",pl:"Żelazo",pt:"Ferro",es:"Hierro","zh-cn":"铁"},icon:"Iron.svg"},{_id:"computer",name:{en:"Computer",ru:"Компьютер",de:"Rechner",fr:"L'Ordinateur",it:"Computer",nl:"Computer",pl:"Komputer",pt:"Computador",es:"Ordenador","zh-cn":"电脑"},icon:"Computer.svg"},{_id:"ceiling_spotlight",name:{en:"Ceiling Spotlight",ru:"Потолочный прожектор",de:"Deckenspot",fr:"Plafond Spotlight",it:"Faretti A Soffitto",nl:"Plafond Spotlight",pl:"Reflektory Sufitowe",pt:"Tecto Foco",es:"Focos De Techo","zh-cn":"天花射灯"},icon:"Ceiling Spotlights.svg"},{_id:"printer",name:{en:"Printer",de:"Drucker",ru:"Принтер",pt:"Impressora",nl:"Printer",fr:"Imprimante",it:"Stampante",es:"Impresora",pl:"Drukarka","zh-cn":"打印机"},icon:"Printer.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"window",name:{en:"Window",ru:"Окно",de:"Fenster",fr:"La Fenêtre",it:"Finestra",nl:"Venster",pl:"Okno",pt:"Janela",es:"Ventana","zh-cn":"窗户"},icon:"Window.svg"},{_id:"garage_door",name:{en:"Garage Door",ru:"Гаражные Ворота",de:"Garagentor",fr:"Portes De Garage",it:"Garage Door",nl:"Garage Door",pl:"Bramy Garażowe",pt:"Portas De Garagem",es:"Las Puertas De Garaje","zh-cn":"车库门"},icon:"Garage Doors.svg"},{_id:"hairdryer",name:{en:"Hairdryer",ru:"Фен",de:"Haartrockner",fr:"Sèche-Cheveux",it:"Asciugacapelli",nl:"Haardroger",pl:"Suszarka Do Włosów",pt:"Secador De Cabelo",es:"Secador De Pelo","zh-cn":"电吹风"},icon:"Hairdryer.svg"},{_id:"hanging_lamp",name:{en:"Hanging Lamp",ru:"Подвесной светильник",de:"Hängelampe",fr:"Lampes Suspendues",it:"Lampade A Sospensione",nl:"Opknoping Lampen",pl:"Lampy Wiszące",pt:"Lâmpadas De Suspensão",es:"Lámparas Colgantes","zh-cn":"挂灯"},icon:"Hanging Lamps.svg"},{_id:"doorstep",name:{en:"Enterance",ru:"Входная дверь",de:"Haustür",fr:"Seuil De Porte",it:"Gradino Della Porta",nl:"Drempel",pl:"Próg",pt:"Porta",es:"Peldaño","zh-cn":"门阶"},icon:"Doorstep.svg"},{_id:"hot_water",name:{en:"Hot Water",ru:"Горячая вода",de:"Heißwasser",fr:"Eau Chaude",it:"Acqua Calda",nl:"Heet Water",pl:"Gorąca Woda",pt:"Água Quente",es:"Agua Caliente","zh-cn":"热水"},icon:"Hot Water.svg"},{_id:"heating",name:{en:"Heating",ru:"Отопление",de:"Heizung",fr:"Chauffe-Eau",it:"Riscaldatore",nl:"Verwarmer",pl:"Podgrzewacz",pt:"Aquecedor",es:"Calentador","zh-cn":"加热器"},icon:"Heater.svg"},{_id:"stove",name:{en:"Stove",ru:"Печь",de:"Herd",fr:"Le Fourneau",it:"Stufa",nl:"Fornuis",pl:"Kuchenka",pt:"Forno",es:"Cocina","zh-cn":"火炉"},icon:"Stove.svg"},{_id:"louvre",name:{en:"Louvre",ru:"Жалюзи",de:"Jalousie",fr:"Persienne",it:"Persiana Di Ventilazione",nl:"Louvre",pl:"Żaluzja",pt:"Trapeira",es:"Lumbrera","zh-cn":"卢浮宫"},icon:"Louvre.svg"},{_id:"coffee_maker",name:{en:"Coffee Maker",ru:"Кофеварка",de:"Kaffemaschine",fr:"Cafetière",it:"Macchine Da Caffè",nl:"Koffie Maker",pl:"Ekspresy Do Kawy",pt:"Cafeteira",es:"Cafetera","zh-cn":"咖啡壶"},icon:"Coffee Makers.svg"},{_id:"cold_water",name:{en:"Cold Water",ru:"Холодная вода",de:"Kaltwasser",fr:"Eau Froide",it:"Acqua Fredda",nl:"Koud Water",pl:"Zimna Woda",pt:"Água Fria",es:"Agua Fría","zh-cn":"冷水"},icon:"Cold Water.svg"},{_id:"climate",name:{en:"Climate",ru:"Климат",de:"Klima",fr:"Climat",it:"Clima",nl:"Klimaat",pl:"Klimat",pt:"Clima",es:"Clima","zh-cn":"气候"},icon:"Climate.svg"},{_id:"speaker",name:{en:"Speaker",ru:"Звуковая система",de:"Lautsprecher",fr:"Orateur",it:"Altoparlante",nl:"Spreker",pl:"Głośnik",pt:"Palestrante",es:"Altavoz","zh-cn":"扬声器"},icon:"Speaker.svg"},{_id:"led_strip",name:{en:"Led Strip",ru:"Светодиодная лента",de:"LED Leiste",fr:"Led Strip",it:"Led Strip",nl:"Loden Strip",pl:"Pasek Ledowy",pt:"Led Faixa",es:"Tira Llevada","zh-cn":"灯带"},icon:"Led Strip.svg"},{_id:"light",name:{en:"Light",ru:"Свет",de:"Licht",fr:"Lumière",it:"Leggero",nl:"Licht",pl:"Lekki",pt:"Luz",es:"Luz","zh-cn":"光"},icon:"Light.svg"},{_id:"fan",name:{en:"Fan",ru:"Вентилятор",de:"Lüfter",fr:"Ventilateur",it:"Fan",nl:"Ventilator",pl:"Wentylator",pt:"Ventilador",es:"Ventilador","zh-cn":"扇子"},icon:"Fan.svg"},{_id:"humidity",name:{en:"Humidity",ru:"Влажность",de:"Luftfeuchtigkeit",fr:"Humidité",it:"Umidità",nl:"Vochtigheid",pl:"Wilgotność",pt:"Umidade",es:"Humedad","zh-cn":"湿度"},icon:"Humidity.svg"},{_id:"ventilation",name:{en:"Ventilation",ru:"Вентиляция",de:"Lüftung",fr:"Ventilation",it:"Ventilazione",nl:"Ventilatie",pl:"Wentylacja",pt:"Ventilação",es:"Ventilación","zh-cn":"通风"},icon:"Ventilation.svg"},{_id:"chandelier",name:{en:"Chandelier",ru:"Люстра",de:"Kronleuchter",fr:"Lustre",it:"Lampadario",nl:"Kroonluchter",pl:"Żyrandol",pt:"Lustre",es:"Candelabro","zh-cn":"枝形吊灯"},icon:"Chandelier.svg"},{_id:"awning",name:{en:"Awning",ru:"Маркиза",de:"Markise",fr:"Auvents",it:"Tende",nl:"Luifels",pl:"Okrycia",pt:"Toldos",es:"Toldos","zh-cn":"遮阳篷"},icon:"Awnings.svg"},{_id:"music",name:{en:"Music",ru:"Музыка",de:"Musik",fr:"Musique",it:"Musica",nl:"Muziek",pl:"Muzyka",pt:"Música",es:"Música","zh-cn":"音乐"},icon:"Music.svg"},{_id:"people",name:{en:"People",ru:"Люди",de:"Personen",fr:"Gens",it:"Persone",nl:"Mensen",pl:"Ludzie",pt:"Pessoas",es:"Personas","zh-cn":"人们"},icon:"People.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"pump",name:{en:"Pump",ru:"Насос",de:"Pumpe",fr:"Pompe",it:"Pompa",nl:"Pomp",pl:"Pompa",pt:"Bombear",es:"Bomba","zh-cn":"泵"},icon:"Pump.svg"},{_id:"outdoor_blinds",name:{en:"Outdoor Blinds",ru:"Внещгте жалюзи",de:"Raffstore",fr:"Volets",it:"Tende Da Esterni",nl:"Outdoor Blinds",pl:"Rolety Zewnętrzne",pt:"Estores Exteriores",es:"Persianas Exteriores","zh-cn":"室外百叶窗"},icon:"Outdoor Blinds.svg"},{_id:"mowing_machine",name:{en:"Mowing Machine",ru:"Газонокосилка",de:"Rasenmäher",fr:"Machine De Fauchage",it:"Macchina Di Falciatura",nl:"Maaimachine",pl:"Kosiarka",pt:"Roçada Máquina",es:"Segadora","zh-cn":"割草机"},icon:"Mowing Machine.svg"},{_id:"receiver",name:{en:"Receiver",ru:"Приставка",de:"Receiver",fr:"Destinataire",it:"Ricevitore",nl:"Ontvanger",pl:"Odbiorca",pt:"Recebedor",es:"Receptor","zh-cn":"接收者"},icon:"Receiver.svg"},{_id:"shutters",name:{en:"Shutters",ru:"Ставни",de:"Rollladen",fr:"Volets",it:"Persiane",nl:"Shutters",pl:"Żaluzje",pt:"Persianas",es:"Persianas","zh-cn":"百叶窗"},icon:"Shutters.svg"},{_id:"smoke_detector",name:{en:"Smoke detector",de:"Rauchmelder",ru:"Детектор дыма",pt:"Detector de fumaça",nl:"Rookdetector",fr:"Détecteur de fumée",it:"Rilevatore di fumo",es:"Detector de humo",pl:"Wykrywacz dymu","zh-cn":"烟雾探测器"},icon:"SmokeDetector.svg"},{_id:"lock",name:{en:"Lock",ru:"Замок",de:"Schloß",fr:"Fermer À Clé",it:"Serratura",nl:"Slot",pl:"Zamek",pt:"Trancar",es:"Cerrar Con Llave","zh-cn":"锁"},icon:"Lock.svg"},{_id:"security",name:{en:"Security",ru:"Безопасность",de:"Sicherheit",fr:"Sécurité",it:"Sicurezza",nl:"Veiligheid",pl:"Bezpieczeństwo",pt:"Segurança",es:"Seguridad","zh-cn":"安全"},icon:"Security.svg"},{_id:"dishwasher",name:{en:"Dishwasher",ru:"Посудомоечная машина",de:"Spülmaschine",fr:"Lave-Vaisselles",it:"Lavastoviglie",nl:"Vaatwassers",pl:"Zmywarki",pt:"Máquinas De Lavar Louça",es:"Lavaplatos","zh-cn":"洗碗机"},icon:"Dishwashers.svg"},{_id:"vacuum_cleaner",name:{en:"Vacuum Cleaner",ru:"Пылесос",de:"Staubsauger",fr:"Aspirateur",it:"Aspirapolvere",nl:"Stofzuiger",pl:"Odkurzacz",pt:"Aspirador De Pó",es:"Aspiradora","zh-cn":"吸尘器"},icon:"Vacuum Cleaner.svg"},{_id:"socket",name:{en:"Socket",ru:"Розетка",de:"Steckdose",fr:"Prise",it:"Socket",nl:"Socket",pl:"Gniazdka",pt:"Tomada",es:"Zócalo","zh-cn":"套接字"},icon:"Sockets.svg"},{_id:"floor_lamp",name:{en:"Floor Lamp",ru:"Торшер",de:"Stehlampe",fr:"Lampes Pour Plancher",it:"Lampade A Stelo",nl:"Vloerlampen",pl:"Lampy Podłogowe",pt:"Lâmpadas Chão",es:"Lámparas De Pie","zh-cn":"落地灯"},icon:"Floor Lamps.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"temperature_sensor",name:{en:"Temperature Sensor",ru:"Температурный датчик",de:"Temperatur-Sensor",fr:"Capteur De Température",it:"Sensori Di Temperatura",nl:"Temperatuursensor",pl:"Czujniki Temperatury",pt:"Sensores De Temperatura",es:"Sensores De Temperatura","zh-cn":"温度传感器"},icon:"Temperature Sensors.svg"},{_id:"table_lamp",name:{en:"Table Lamp",ru:"Настольная лампа",de:"Tischlampe",fr:"Lampe De Chevet",it:"Lampade Da Tavolo",nl:"Tafellampen",pl:"Lampy Stołowe",pt:"Lâmpadas De Mesa",es:"Lámparas De Mesa","zh-cn":"台灯"},icon:"Table Lamps.svg"},{_id:"gate",name:{en:"Gate",ru:"Ворота",de:"Tor",fr:"Porte",it:"Gate",nl:"Gate",pl:"Bramy",pt:"Portões",es:"Puertas","zh-cn":"盖茨"},icon:"Gates.svg"},{_id:"dryer",name:{en:"Dryer",ru:"Сушилка",de:"Trockner",fr:"Séchoir",it:"Asciugatrice",nl:"Droger",pl:"Suszarka",pt:"Secador",es:"Secadora","zh-cn":"烘干机"},icon:"Dryer.svg"},{_id:"door",name:{en:"Door",ru:"Дверь",de:"Tür",fr:"Des Portes",it:"Porte",nl:"Deuren",pl:"Drzwi",pt:"Portas",es:"Puertas","zh-cn":"门"},icon:"Doors.svg"},{_id:"tv",name:{en:"Tv",ru:"Телевизор",de:"TV",fr:"La Télé",it:"Tv",nl:"Tv",pl:"Telewizja",pt:"Televisão",es:"Televisor","zh-cn":"电视"},icon:"Tv.svg"},{_id:"consumption",name:{en:"Consumption",ru:"Потребление",de:"Verbrauch",fr:"Consommation",it:"Consumo",nl:"Consumptie",pl:"Konsumpcja",pt:"Consumo",es:"Consumo","zh-cn":"消费"},icon:"Consumption.svg"},{_id:"amplifier",name:{en:"Amplifier",ru:"Усилитель звука",de:"Verstärker",fr:"Amplificateur",it:"Amplificatore",nl:"Versterker",pl:"Wzmacniacz",pt:"Amplificador",es:"Amplificador","zh-cn":"放大器"},icon:"Amplifier.svg"},{_id:"curtains",name:{en:"Curtains",ru:"Шторы",de:"Vorhänge",fr:"Des Rideaux",it:"Le Tende",nl:"Gordijnen",pl:"Zasłony",pt:"Cortinas",es:"Cortinas","zh-cn":"窗帘"},icon:"Curtains.svg"},{_id:"sconce",name:{en:"Sconce",ru:"Настенный светильник",de:"Wandlampe",fr:"Sconce",it:"Sconce",nl:"Sconce",pl:"Kinkiety",pt:"Arandelas",es:"Los Apliques","zh-cn":"壁灯"},icon:"Sconces.svg"},{_id:"washing_machine",name:{en:"Washing Machine",ru:"Стиральная машина",de:"Waschmaschine",fr:"Machines À Laver",it:"Lavatrici",nl:"Wasmachines",pl:"Pralki",pt:"Máquinas De Lavar Roupas",es:"Lavadoras","zh-cn":"洗衣机"},icon:"Washing Machines.svg"},{_id:"water",name:{en:"Water",ru:"Вода",de:"Wasser",fr:"L'Eau",it:"Acqua",nl:"Water",pl:"Woda",pt:"Água",es:"Agua","zh-cn":"水"},icon:"Water.svg"},{_id:"water_heater",name:{en:"Water Heater",ru:"Нагреватель воды",de:"Wasserkocher",fr:"Chauffe-Eau",it:"Scaldabagno",nl:"Waterkoker",pl:"Podgrzewacz Wody",pt:"Aquecedor De Água",es:"Calentador De Agua","zh-cn":"热水器"},icon:"Water Heater.svg"},{_id:"water_consumption",name:{en:"Water Consumption",ru:"Потребление воды",de:"Wasserverbrauch",fr:"Consommation D'Eau",it:"Consumo D'Acqua",nl:"Waterverbruik",pl:"Konsumpcja Wody",pt:"Consumo De Água",es:"Consumo De Agua","zh-cn":"耗水量"},icon:"Water Consumption.svg"},{_id:"weather",name:{en:"Weather",ru:"Погода",de:"Wetter",fr:"La Météo",it:"Tempo Metereologico",nl:"Weer",pl:"Pogoda",pt:"Clima",es:"Tiempo","zh-cn":"天气"},icon:"Weather.svg"}],Hxe=[{_id:"storeroom",name:{en:"Storeroom",ru:"Кладовая",de:"Abstellraum",fr:"Débarras",it:"Dispensa",nl:"Bergplaats",pl:"Magazyn",pt:"Despensa",es:"Trastero","zh-cn":"库房"},icon:"Storeroom.svg"},{_id:"second_floor",name:{en:"Second floor",ru:"Второй этаж",de:"Erster OG",pt:"Primeiro andar",nl:"Eerste verdieping",fr:"Premier étage",it:"Primo piano",es:"Primer piso",pl:"Pierwsze piętro","zh-cn":"第一层"},icon:"Second Floor.svg"},{_id:"dressing_room",name:{en:"Dressing Room",ru:"Гардеробная",de:"Ankleide",fr:"Vestiaire",it:"Camerino",nl:"Kleedkamer",pl:"Przebieralnia",pt:"Provador",es:"Vestidor","zh-cn":"更衣室"},icon:"Dressing Room.svg"},{_id:"workspace",name:{en:"Workspace",ru:"Рабочая Среда",de:"Arbeitszimmer",fr:"Espace De Travail",it:"Area Di Lavoro",nl:"Workspace",pl:"Workspace",pt:"Área De Trabalho",es:"Espacio De Trabajo","zh-cn":"工作区"},icon:"Workspace.svg"},{_id:"driveway",name:{en:"Driveway",ru:"Дорога",de:"Auffahrt",fr:"Allée",it:"Viale",nl:"Pad",pl:"Podjazd",pt:"Entrada Da Garagem",es:"Entrada De Coches","zh-cn":"车道"},icon:"Driveway.svg"},{_id:"outdoors",name:{en:"Outdoors",ru:"На Улице",de:"Außenbereich",fr:"En Plein Air",it:"All'Aperto",nl:"Buitenshuis",pl:"Na Dworze",pt:"Ao Ar Livre",es:"Al Aire Libre","zh-cn":"户外"},icon:"Outdoors.svg"},{_id:"bathroom",name:{en:"Bathroom",ru:"Ванная Комната",de:"Badezimmer",fr:"Salle De Bains",it:"Bagno",nl:"Badkamer",pl:"Łazienka",pt:"Banheiro",es:"Baño","zh-cn":"浴室"},icon:"Bathroom.svg"},{_id:"balcony",name:{en:"Balcony",ru:"Балкон",de:"Balkon",fr:"Balcon",it:"Balcone",nl:"Balkon",pl:"Balkon",pt:"Sacada",es:"Balcón","zh-cn":"阳台"},icon:"Balcony.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"carport",name:{en:"Carport",ru:"Навес",de:"Carport",fr:"Carport",it:"Posto Auto Coperto",nl:"Carport",pl:"Wiata",pt:"Telheiro",es:"Cochera","zh-cn":"车棚"},icon:"Carport.svg"},{_id:"attic",name:{en:"Attic",ru:"Чердак",de:"Dachgeschoss",fr:"Grenier",it:"Attico",nl:"Zolder",pl:"Poddasze",pt:"Sótão",es:"Ático","zh-cn":"阁楼"},icon:"Attic.svg"},{_id:"hall",name:{en:"Hall",ru:"Зал",de:"Diele",fr:"Salle",it:"Sala",nl:"Hal",pl:"Sala",pt:"Corredor",es:"Sala","zh-cn":"大厅"},icon:"Hall.svg"},{_id:"entrance",name:{en:"Entrance",ru:"Вход",de:"Eingang",fr:"Entrée",it:"Ingresso",nl:"Ingang",pl:"Wejście",pt:"Entrada",es:"Entrada","zh-cn":"入口"},icon:"Entrance.svg"},{_id:"ground_floor",name:{en:"Ground Floor",ru:"Первый Этаж",de:"Erdgeschoss",fr:"Rez-De-Chaussée",it:"Piano Terra",nl:"Begane Grond",pl:"Parter",pt:"Térreo",es:"Planta Baja","zh-cn":"一楼"},icon:"Ground Floor.svg"},{_id:"dining_area",name:{en:"Dining Area",ru:"Столовая",de:"Essbereich",fr:"Salle À Manger",it:"Zona Pranzo",nl:"Eethoek",pl:"Jadalnia",pt:"Área De Refeições",es:"Comedor","zh-cn":"用餐区"},icon:"Dining Area.svg"},{_id:"dining_room",name:{en:"Dining Room",ru:"Столовая",de:"Esszimmer",fr:"Salle À Manger",it:"Sala Da Pranzo",nl:"Eetkamer",pl:"Jadalnia",pt:"Sala De Jantar",es:"Comedor","zh-cn":"饭厅"},icon:"Dining Room.svg"},{_id:"gym",name:{en:"Gym",ru:"Спортзал",de:"Fitnessraum",fr:"Gym",it:"Palestra",nl:"Sportschool",pl:"Siłownia",pt:"Ginásio",es:"Gimnasio","zh-cn":"健身房"},icon:"Gym.svg"},{_id:"gallery",name:{en:"Gallery",ru:"Галерея",de:"Galerie",fr:"Galerie",it:"Galleria",nl:"Galerij",pl:"Galeria",pt:"Galeria",es:"Galería","zh-cn":"画廊"},icon:"Gallery.svg"},{_id:"garage",name:{en:"Garage",ru:"Гараж",de:"Garage",fr:"Garage",it:"Box Auto",nl:"Garage",pl:"Garaż",pt:"Garagem",es:"Garaje","zh-cn":"车库"},icon:"Garage.svg"},{_id:"wardrobe",name:{en:"Wardrobe",ru:"Гардероб",de:"Garderobe",fr:"Penderie",it:"Armadio",nl:"Garderobe",pl:"Szafa",pt:"Guarda Roupa",es:"Armario","zh-cn":"衣柜"},icon:"Wardrobe.svg"},{_id:"garden",name:{en:"Garden",ru:"Сад",de:"Garten",fr:"Jardin",it:"Giardino",nl:"Tuin",pl:"Ogród",pt:"Jardim",es:"Jardín","zh-cn":"花园"},icon:"Garden.svg"},{_id:"summer_house",name:{en:"Summer House",ru:"Дача",de:"Gartenhaus",fr:"Maison D'Été",it:"Casa Estiva",nl:"Zomerhuis",pl:"Domek Letniskowy",pt:"Summer House",es:"Casa De Verano","zh-cn":"凉亭"},icon:"Summer House.svg"},{_id:"guest_bathroom",name:{en:"Guest Bathroom",ru:"Гостевая Комната",de:"Gäste-WC",fr:"Salle De Bains Invité",it:"Guest Bathroom",nl:"Gastenbadkamer",pl:"Łazienka Gościnna",pt:"Banheiro De Hóspedes",es:"Baño De Visitas","zh-cn":"客用浴室"},icon:"Guest Bathroom.svg"},{_id:"guest_room",name:{en:"Guest Room",ru:"Гостевая Комната",de:"Gästezimmer",fr:"Chambre D'Amis",it:"Stanza Degli Ospiti",nl:"Guest Room",pl:"Pokój Gościnny",pt:"Quarto De Hóspedes",es:"Habitación De Huéspedes","zh-cn":"客房"},icon:"Guest Room.svg"},{_id:"laundry_room",name:{en:"Laundry Room",ru:"Прачечная",de:"Hauswirtschaftsraum",fr:"Buanderie",it:"Lavanderia",nl:"Wasruimte",pl:"Pralnia",pt:"Lavandaria",es:"Cuarto De Lavado","zh-cn":"洗衣房"},icon:"Laundry Room.svg"},{_id:"home_theater",name:{en:"Home Theater",ru:"Домашний Театр",de:"Heimkino",fr:"Cinéma Maison",it:"Home Theater",nl:"Thuisbioscoop",pl:"Kino Domowe",pt:"Cinema Em Casa",es:"Cine En Casa","zh-cn":"家庭电影院"},icon:"Home Theater.svg"},{_id:"boiler_room",name:{en:"Boiler Room",ru:"Бойлерная",de:"Heizungsraum",fr:"Chaufferie",it:"Locale Caldaia",nl:"Boiler Room",pl:"Kotłownia",pt:"Sala Da Caldeira",es:"Sala De Calderas","zh-cn":"锅炉房"},icon:"Boiler Room.svg"},{_id:"chamber",name:{en:"Chamber",ru:"Камера",de:"Kammer",fr:"Chambre",it:"Camera",nl:"Kamer",pl:"Izba",pt:"Câmara",es:"Cámara","zh-cn":"商会"},icon:"Chamber.svg"},{_id:"basement,_cellar",name:{en:"Basement, Cellar",ru:"Подвал, Погреб",de:"Keller",fr:"Sous-Sol, Cave",it:"Taverna, Cantina",nl:"Kelder, Kelder",pl:"Piwnica, Piwnica",pt:"Porão, Adega",es:"Sótano, Bodega","zh-cn":"地下室,地窖"},icon:"Basement.svg"},{_id:"nursery",name:{en:"Nursery",ru:"Питомник",de:"Kinderzimmer",fr:"Garderie",it:"Asilo",nl:"Kinderkamer",pl:"Żłobek",pt:"Berçário",es:"Guardería","zh-cn":"苗圃"},icon:"Nursery.svg"},{_id:"corridor",name:{en:"Corridor",ru:"Коридор",de:"Korridor",fr:"Couloir",it:"Corridoio",nl:"Gang",pl:"Korytarz",pt:"Corredor",es:"Corredor","zh-cn":"走廊"},icon:"Corridor.svg"},{_id:"kitchen",name:{en:"Kitchen",ru:"Кухня",de:"Küche",fr:"Cuisine",it:"Cucina",nl:"Keuken",pl:"Kuchnia",pt:"Cozinha",es:"Cocina","zh-cn":"厨房"},icon:"Kitchen.svg"},{_id:"upstairs",name:{en:"Upstairs",ru:"Вверх По Лестнице",de:"Obergeschoss",fr:"En Haut",it:"Di Sopra",nl:"Boven",pl:"Na Górę",pt:"Andar De Cima",es:"Piso Superior","zh-cn":"楼上"},icon:"Upstairs.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"rear_wall",name:{en:"Rear Wall",ru:"Задняя Стенка",de:"Rückwand",fr:"Paroi Arrière",it:"Parete Posteriore",nl:"Achterwand",pl:"Tylna Ściana",pt:"Parede Traseira",es:"Pared Posterior","zh-cn":"后墙"},icon:"Rear Wall.svg"},{_id:"barn",name:{en:"Barn",ru:"Амбар",de:"Scheune",fr:"Grange",it:"Fienile",nl:"Schuur",pl:"Stodoła",pt:"Celeiro",es:"Granero","zh-cn":"谷仓"},icon:"Barn.svg"},{_id:"sleeping_area",name:{en:"Sleeping Area",ru:"Спальное Место",de:"Schlafbereich",fr:"Coin Montagne",it:"Area Sleeping",nl:"Sleeping Area",pl:"Powierzchnia Spania",pt:"Sleeping Area",es:"Área De Dormir","zh-cn":"睡眠区"},icon:"Sleeping Area.svg"},{_id:"bedroom",name:{en:"Bedroom",ru:"Спальная Комната",de:"Schlafzimmer",fr:"Chambre",it:"Camera Da Letto",nl:"Slaapkamer",pl:"Sypialnia",pt:"Quarto",es:"Cuarto","zh-cn":"卧室"},icon:"Bedroom.svg"},{_id:"shed",name:{en:"Shed",ru:"Сбрасывать",de:"Schuppen",fr:"Hangar",it:"Capannone",nl:"Schuur",pl:"Budka",pt:"Cabana",es:"Cobertizo","zh-cn":"棚"},icon:"Shed.svg"},{_id:"swimming_pool",name:{en:"Swimming Pool",ru:"Плавательный Бассейн",de:"Schwimmbad",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"游泳池"},icon:"Swimming Pool.svg"},{_id:"dining",name:{en:"Dining",ru:"Обеденный",de:"Speis",fr:"À Manger",it:"Cenare",nl:"Dining",pl:"Jadalnia",pt:"Jantar",es:"Comida","zh-cn":"用餐"},icon:"Dining.svg"},{_id:"playroom",name:{en:"Playroom",ru:"Игровая Комната",de:"Spielzimmer",fr:"Salle De Jeux",it:"Stanza Dei Giochi",nl:"Speelkamer",pl:"Pokój Zabaw",pt:"Sala De Jogos",es:"Cuarto De Jugar","zh-cn":"游戏室"},icon:"Playroom.svg"},{_id:"stairway",name:{en:"Stairway",ru:"Лестница",de:"Treppe",fr:"Escalier",it:"Scala",nl:"Trap",pl:"Klatka Schodowa",pt:"Escada",es:"Escalera","zh-cn":"楼梯"},icon:"Stairway.svg"},{_id:"equipment_room",name:{en:"Equipment Room",ru:"Оборудование Номера",de:"Technikraum",fr:"Salle D'Équipement",it:"Stanza Degli Attrezzi",nl:"Technische Ruimte",pl:"Wyposażenie Pokoi",pt:"Sala De Equipamentos",es:"Cuarto De Equipos","zh-cn":"机房"},icon:"Equipment Room.svg"},{_id:"terrace",name:{en:"Terrace",ru:"Терраса",de:"Terrasse",fr:"Terrasse",it:"Terrazza",nl:"Terras",pl:"Taras",pt:"Terraço",es:"Terraza","zh-cn":"阳台"},icon:"Terrace.svg"},{_id:"toilet",name:{en:"Toilet",ru:"Туалет",de:"Toilette",fr:"Toilette",it:"Gabinetto",nl:"Toilet",pl:"Toaleta",pt:"Banheiro",es:"Inodoro","zh-cn":"洗手间"},icon:"Toilet.svg"},{_id:"stairwell",name:{en:"Stairwell",ru:"Лестничная клетка",de:"Treppenhaus",fr:"Cage D'Escalier",it:"Tromba Delle Scale",nl:"Trappenhuis",pl:"Klatka Schodowa",pt:"Caixa De Escada",es:"Hueco De Escalera","zh-cn":"楼梯间"},icon:"Stairwell.svg"},{_id:"locker_room",name:{en:"Locker Room",ru:"Камера Хранения",de:"Umkleideraum",fr:"Vestiaire",it:"Spogliatoio",nl:"Kleedkamer",pl:"Szatnia",pt:"Vestiário",es:"Vestuario","zh-cn":"更衣室"},icon:"Locker Room.svg"},{_id:"basement",name:{en:"Basement",ru:"Подвал",de:"Untergeschoss",fr:"Sous-Sol",it:"Seminterrato",nl:"Kelder",pl:"Piwnica",pt:"Porão",es:"Sótano","zh-cn":"地下室"},icon:"Basement.svg"},{_id:"front_yard",name:{en:"Front Yard",ru:"Передний Двор",de:"Vorgarten",fr:"Front Yard",it:"Cortile",nl:"Voortuin",pl:"Podwórko",pt:"Jardim Da Frente",es:"Patio Delantero","zh-cn":"前院"},icon:"Front Yard.svg"},{_id:"anteroom",name:{en:"Anteroom",ru:"Передняя",de:"Vorraum",fr:"Antichambre",it:"Anticamera",nl:"Voorkamer",pl:"Przedpokój",pt:"Ante-Sala",es:"Antesala","zh-cn":"接待室"},icon:"Anteroom.svg"},{_id:"washroom",name:{en:"Washroom",ru:"Уборная",de:"Waschraum",fr:"Toilettes",it:"Bagno",nl:"Waskamer",pl:"Umywalnia",pt:"Banheiro",es:"Baño","zh-cn":"卫生间"},icon:"Washroom.svg"},{_id:"wc",name:{en:"Wc",ru:"Туалет",de:"WC",fr:"Toilettes",it:"Bagno",nl:"Wc",pl:"Toaleta",pt:"Banheiro",es:"Wc","zh-cn":"厕所"},icon:"Wc.svg"},{_id:"workshop",name:{en:"Workshop",ru:"Мастерская",de:"Werkstatt",fr:"Atelier",it:"Laboratorio",nl:"Werkplaats",pl:"Warsztat",pt:"Oficina",es:"Taller","zh-cn":"作坊"},icon:"Workshop.svg"},{_id:"windscreen",name:{en:"Windscreen",ru:"Ветровое Стекло",de:"Windfang",fr:"Pare-Brise",it:"Parabrezza",nl:"Voorruit",pl:"Szyba Przednia",pt:"Pára-Brisas",es:"Parabrisas","zh-cn":"风档"},icon:"Windscreen.svg"},{_id:"living_area",name:{en:"Living Area",ru:"Жилая Площадь",de:"Wohnbereich",fr:"Salon",it:"Zona Giorno",nl:"Living Area",pl:"Powierzchnia Mieszkalna",pt:"Sala-De-Estar",es:"Sala De Estar","zh-cn":"生活区域"},icon:"Living Area.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"}];class Vxe extends f.Component{constructor(e){super(e),this.state={opened:!1,names:[],filter:"",icons:null,loading:!1,isAnyName:!1}}loadAllIcons(){this.state.loading||this.state.icons||this.setState({loading:!0},()=>{const e=[],t=[];if(this.props.icons){const i=this.props.icons.map((r,o)=>{let n;if(typeof r=="object"){if(n=r.icon||r.src||r.href||"",t[o]=typeof r.name=="object"?r.name[this.props.lang]||r.name.en||r._id||"":r.name||"",!t[o]){const a=n.split(".");a.pop(),t[o]=a[a.length-1]}}else n=r;return n?n.startsWith("data:")?(e[o]=n,Promise.resolve()):O.getSvg(n).then(a=>e[o]=a):Promise.resolve()});Promise.all(i).catch(r=>console.error(r)).then(()=>this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)}))}else{let i=this.props.onlyRooms||!this.props.onlyRooms&&!this.props.onlyDevices?Hxe:null;if(i&&(i.forEach(r=>{r.name&&typeof r.name=="object"&&(r.name=r.name[this.props.lang]||r.name.en||r._id),r.name=r.name||r._id}),i=i.filter((r,o)=>!(i!=null&&i.find((n,a)=>o!==a&&n.icon===r.icon&&n.name===r.name))),i.forEach((r,o)=>{t[o]=r.name,e[o]=`data:image/svg+xml;base64,${Fxe[r.icon.replace(/\.svg$/,"")]}`})),i=this.props.onlyDevices||!this.props.onlyRooms&&!this.props.onlyDevices?Gxe:null,i){const r=e.length;i&&i.forEach(o=>{o.name&&typeof o.name=="object"&&(o.name=o.name[this.props.lang]||o.name.en||o._id),o.name=o.name||o._id}),i=i.filter((o,n)=>!(i!=null&&i.find((a,c)=>n!==c&&a.icon===o.icon&&a.name===o.name))),i.forEach((o,n)=>{t[n+r]=o.name,e[n+r]=`data:image/svg+xml;base64,${axe[o.icon.replace(/\.svg$/,"")]}`})}this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(r=>r)})}})}render(){return this.state.loading?M.createElement(j.CircularProgress,null):M.createElement(M.Fragment,null,M.createElement(j.Button,{color:"grey",variant:"outlined",title:this.props.t("ra_Select predefined icon"),onClick:()=>this.setState({opened:!0},()=>this.loadAllIcons()),style:{minWidth:40,marginRight:8}},"..."),this.state.opened?M.createElement(j.Dialog,{onClose:()=>this.setState({opened:!1}),open:!0},M.createElement(j.DialogTitle,null,this.props.t("ra_Select predefined icon"),this.state.isAnyName?M.createElement(j.TextField,{variant:"standard",margin:"dense",style:{marginLeft:20},value:this.state.filter,onChange:e=>this.setState({filter:e.target.value.toLowerCase()}),placeholder:this.props.t("ra_Filter"),slotProps:{input:{endAdornment:this.state.filter?M.createElement(j.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({filter:""})},M.createElement(LN,null)):void 0}}}):null),M.createElement(j.DialogContent,null,M.createElement("div",{style:{width:"100%",textAlign:"center"}},this.state.icons&&this.state.icons.map((e,t)=>!this.state.filter||this.state.names[t]&&this.state.names[t].toLowerCase().includes(this.state.filter)?M.createElement(j.Tooltip,{title:this.state.names[t]||"",key:t,slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>this.setState({opened:!1},()=>{const i=this.props.onSelect||this.props.onChange;i&&i(e)}),size:"large"},M.createElement(me,{src:e,alt:t.toString(),style:{width:32,height:32,borderRadius:5}}))):null))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({opened:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Close")))):null)}}const Ot={formContainer:{display:"flex",justifyContent:"left",alignItems:"center"},formControl:{display:"flex",padding:24,flexGrow:1e3},divContainer:{width:64,height:32,whiteSpace:"nowrap",lineHeight:"32px",marginRight:8},dragField:{textAlign:"center",display:"table",minHeight:90,width:"calc(100% - 60px)",border:"2px dashed #777",borderRadius:10,padding:4},formIcon:{margin:10,opacity:.6},text:{display:"table-cell",verticalAlign:"middle"}};function V3e(s){var a,c,l,N;const e=s.icon,t=s.onChange,i=f.useCallback(u=>{const L=new FileReader;L.addEventListener("load",()=>t(L.result),!1),u[0]&&L.readAsDataURL(u[0])},[t]),{getRootProps:r,getInputProps:o,isDragActive:n}=lL({onDrop:i});return M.createElement("div",{style:Ot.formContainer},e?M.createElement(e,{style:Ot.formIcon}):null,M.createElement(j.FormControl,{variant:"standard",style:{...Ot.formControl,padding:3}},M.createElement(j.InputLabel,{shrink:!0,sx:(a=s.customStyles)!=null&&a.label?{"&.MuiInputLabel-root":s.customStyles.label}:void 0,classes:{root:(c=s.customClasses)==null?void 0:c.label}},s.label),M.createElement("div",{style:Ot.formContainer},s.value?M.createElement("div",{style:Ot.divContainer},M.createElement(me,{style:{...s.previewStyle,...((l=s.customStyles)==null?void 0:l.icon)||void 0},src:s.value,className:O.clsx(s.previewClassName,(N=s.customClasses)==null?void 0:N.icon)}),!s.disabled&&M.createElement(j.IconButton,{style:{verticalAlign:"top"},title:h.t("ra_Clear icon"),size:"small",onClick:()=>s.onChange("")},M.createElement(LN,null))):!s.disabled&&M.createElement(Vxe,{icons:s.icons,onlyRooms:s.onlyRooms,onlyDevices:s.onlyDevices,onSelect:u=>s.onChange(u),t:h.t,lang:h.getLanguage()}),!s.disabled&&M.createElement("div",{...r(),style:{...Ot.dragField,...n?{backgroundColor:"rgba(0, 255, 0, 0.1)"}:{cursor:"pointer"}}},M.createElement("input",{...o()}),n?M.createElement("span",{style:Ot.text},h.t("ra_Drop the files here...")):M.createElement("span",{style:Ot.text},h.t("ra_Drag 'n' drop some files here, or click to select files"))))))}function Zxe(s){const e=document.createElement("div");e.innerHTML=s;const t=e.firstElementChild;return t!=null&&t.remove?t.remove():t&&e.removeChild(t),e.remove(),t}function Xxe(s){const e={};if(!s)return e;for(let t,i=0;io[1].toUpperCase()),e[t]=s[i].value}return e}class xr extends f.Component{svg;static REMOTE_SERVER=window.location.hostname.includes("iobroker.in");static REMOTE_PREFIX=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);constructor(e){var t;super(e),this.state={svg:!!((t=this.props.src)!=null&&t.startsWith("data:")),created:!0,color:this.props.color||"",src:this.props.src||"",imgError:!1,showError:!!this.props.showError},this.svg=this.state.svg&&this.state.src?this.getSvgFromData(this.state.src):null}static getDerivedStateFromProps(e,t){var o;const i={};let r=!1;return e&&t&&e.src!==t.src&&(i.src=e.src,i.svg=(o=e.src)==null?void 0:o.startsWith("data:"),i.created=!1,r=!0),e&&t&&e.color!==t.color&&(i.color=e.color,i.created=!1,r=!0),e&&t&&e.showError!==t.showError&&(i.showError=e.showError,r=!0),r?i:null}getSvgFromData(e){const t="data:image/svg+xml;base64,";if(!e.startsWith(t))return null;e=e.substring(t.length);try{e=atob(e);const i=Zxe(e),r=i.innerHTML,o=Xxe(i.attributes);return i.remove(),M.createElement(j.Box,{component:"svg",sx:this.props.sx,className:this.props.className,style:this.state.color?{color:this.state.color}:void 0,...o,dangerouslySetInnerHTML:{__html:r}})}catch{}return null}render(){if(this.state.svg)return this.state.created||setTimeout(()=>{this.svg=this.state.src?this.getSvgFromData(this.state.src):null,this.setState({created:!0})},50),this.svg;if(this.state.src){if(this.state.imgError||!this.state.src)return M.createElement(dM,{className:this.props.className});if(xr.REMOTE_SERVER&&!this.state.src.startsWith("http://")&&!this.state.src.startsWith("https://")){let e=(this.props.imagePrefix||"")+this.state.src;return e.startsWith("./")?e=xr.REMOTE_PREFIX+e.substring(2):e.startsWith("/")||(e=xr.REMOTE_PREFIX+e),M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:`https://remote-files.iobroker.in${e}`,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return M.createElement(j.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:(this.props.imagePrefix||"")+this.state.src,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return null}}function Kxe(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"},child:[]}]})(s)}function qxe(s){return Z({attr:{t:"1569683928793",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H212V212h200v200zM864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H612V212h200v200zM864 544H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z m-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function e_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"},child:[]}]})(s)}function t_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z"},child:[]}]})(s)}function s_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z"},child:[]}]})(s)}function i_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z"},child:[]}]})(s)}function r_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function o_e(s){return Z({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"},child:[]}]})(s)}function n_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M24 5.25v13a.75.75 0 0 1-1.136.643L16.5 15.075v2.175A1.75 1.75 0 0 1 14.75 19h-13A1.75 1.75 0 0 1 0 17.25v-11C0 5.284.784 4.5 1.75 4.5h13c.966 0 1.75.784 1.75 1.75v2.175l6.364-3.818A.75.75 0 0 1 24 5.25Zm-9 1a.25.25 0 0 0-.25-.25h-13a.25.25 0 0 0-.25.25v11c0 .138.112.25.25.25h13a.25.25 0 0 0 .25-.25v-11Zm1.5 7.075 6 3.6V6.575l-6 3.6Z"},child:[]}]})(s)}function Ol(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M3.89,17.6c0-0.99,0.31-1.88,0.93-2.65s1.41-1.27,2.38-1.49c0.26-1.17,0.85-2.14,1.78-2.88c0.93-0.75,2-1.12,3.22-1.12 + c1.18,0,2.24,0.36,3.16,1.09c0.93,0.73,1.53,1.66,1.8,2.8h0.27c1.18,0,2.18,0.41,3.01,1.24s1.25,1.83,1.25,3 + c0,1.18-0.42,2.18-1.25,3.01s-1.83,1.25-3.01,1.25H8.16c-0.58,0-1.13-0.11-1.65-0.34S5.52,21,5.14,20.62 + c-0.38-0.38-0.68-0.84-0.91-1.36S3.89,18.17,3.89,17.6z M5.34,17.6c0,0.76,0.28,1.42,0.82,1.96s1.21,0.82,1.99,0.82h9.28 + c0.77,0,1.44-0.27,1.99-0.82c0.55-0.55,0.83-1.2,0.83-1.96c0-0.76-0.27-1.42-0.83-1.96c-0.55-0.54-1.21-0.82-1.99-0.82h-1.39 + c-0.1,0-0.15-0.05-0.15-0.15l-0.07-0.49c-0.1-0.94-0.5-1.73-1.19-2.35s-1.51-0.93-2.45-0.93c-0.94,0-1.76,0.31-2.46,0.94 + c-0.7,0.62-1.09,1.41-1.18,2.34l-0.07,0.42c0,0.1-0.05,0.15-0.16,0.15l-0.45,0.07c-0.72,0.06-1.32,0.36-1.81,0.89 + C5.59,16.24,5.34,16.87,5.34,17.6z M14.19,8.88c-0.1,0.09-0.08,0.16,0.07,0.21c0.43,0.19,0.79,0.37,1.08,0.55 + c0.11,0.03,0.19,0.02,0.22-0.03c0.61-0.57,1.31-0.86,2.12-0.86c0.81,0,1.5,0.27,2.1,0.81c0.59,0.54,0.92,1.21,0.99,2l0.09,0.64h1.42 + c0.65,0,1.21,0.23,1.68,0.7c0.47,0.47,0.7,1.02,0.7,1.66c0,0.6-0.21,1.12-0.62,1.57s-0.92,0.7-1.53,0.77c-0.1,0-0.15,0.05-0.15,0.16 + v1.13c0,0.11,0.05,0.16,0.15,0.16c1.01-0.06,1.86-0.46,2.55-1.19s1.04-1.6,1.04-2.6c0-1.06-0.37-1.96-1.12-2.7 + c-0.75-0.75-1.65-1.12-2.7-1.12h-0.15c-0.26-1-0.81-1.82-1.65-2.47c-0.83-0.65-1.77-0.97-2.8-0.97C16.28,7.29,15.11,7.82,14.19,8.88 + z`},child:[]}]})(s)}function a_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M4.37,14.62c0-0.24,0.08-0.45,0.25-0.62c0.17-0.16,0.38-0.24,0.6-0.24h2.04c0.23,0,0.42,0.08,0.58,0.25 + c0.15,0.17,0.23,0.37,0.23,0.61S8,15.06,7.85,15.23c-0.15,0.17-0.35,0.25-0.58,0.25H5.23c-0.23,0-0.43-0.08-0.6-0.25 + C4.46,15.06,4.37,14.86,4.37,14.62z M7.23,21.55c0-0.23,0.08-0.43,0.23-0.61l1.47-1.43c0.15-0.16,0.35-0.23,0.59-0.23 + c0.24,0,0.44,0.08,0.6,0.23s0.24,0.34,0.24,0.57c0,0.24-0.08,0.46-0.24,0.64L8.7,22.14c-0.41,0.32-0.82,0.32-1.23,0 + C7.31,21.98,7.23,21.78,7.23,21.55z M7.23,7.71c0-0.23,0.08-0.43,0.23-0.61C7.66,6.93,7.87,6.85,8.1,6.85 + c0.22,0,0.42,0.08,0.59,0.24l1.43,1.47c0.16,0.15,0.24,0.35,0.24,0.59c0,0.24-0.08,0.44-0.24,0.6s-0.36,0.24-0.6,0.24 + c-0.24,0-0.44-0.08-0.59-0.24L7.47,8.32C7.31,8.16,7.23,7.95,7.23,7.71z M9.78,14.62c0-0.93,0.23-1.8,0.7-2.6s1.1-1.44,1.91-1.91 + s1.67-0.7,2.6-0.7c0.7,0,1.37,0.14,2.02,0.42c0.64,0.28,1.2,0.65,1.66,1.12c0.47,0.47,0.84,1.02,1.11,1.66 + c0.27,0.64,0.41,1.32,0.41,2.02c0,0.94-0.23,1.81-0.7,2.61c-0.47,0.8-1.1,1.43-1.9,1.9c-0.8,0.47-1.67,0.7-2.61,0.7 + s-1.81-0.23-2.61-0.7c-0.8-0.47-1.43-1.1-1.9-1.9C10.02,16.43,9.78,15.56,9.78,14.62z M11.48,14.62c0,0.98,0.34,1.81,1.03,2.5 + c0.68,0.69,1.51,1.04,2.49,1.04s1.81-0.35,2.5-1.04s1.04-1.52,1.04-2.5c0-0.96-0.35-1.78-1.04-2.47c-0.69-0.68-1.52-1.02-2.5-1.02 + c-0.97,0-1.8,0.34-2.48,1.02C11.82,12.84,11.48,13.66,11.48,14.62z M14.14,22.4c0-0.24,0.08-0.44,0.25-0.6s0.37-0.24,0.6-0.24 + c0.24,0,0.45,0.08,0.61,0.24s0.24,0.36,0.24,0.6v1.99c0,0.24-0.08,0.45-0.25,0.62c-0.17,0.17-0.37,0.25-0.6,0.25 + s-0.44-0.08-0.6-0.25c-0.17-0.17-0.25-0.38-0.25-0.62V22.4z M14.14,6.9V4.86c0-0.23,0.08-0.43,0.25-0.6C14.56,4.09,14.76,4,15,4 + s0.43,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6V6.9c0,0.23-0.08,0.42-0.25,0.58S15.23,7.71,15,7.71s-0.44-0.08-0.6-0.23 + S14.14,7.13,14.14,6.9z M19.66,20.08c0-0.23,0.08-0.42,0.23-0.56c0.15-0.16,0.34-0.23,0.56-0.23c0.24,0,0.44,0.08,0.6,0.23 + l1.46,1.43c0.16,0.17,0.24,0.38,0.24,0.61c0,0.23-0.08,0.43-0.24,0.59c-0.4,0.31-0.8,0.31-1.2,0l-1.42-1.42 + C19.74,20.55,19.66,20.34,19.66,20.08z M19.66,9.16c0-0.25,0.08-0.45,0.23-0.59l1.42-1.47c0.17-0.16,0.37-0.24,0.59-0.24 + c0.24,0,0.44,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6c0,0.25-0.08,0.46-0.24,0.62l-1.46,1.43c-0.18,0.16-0.38,0.24-0.6,0.24 + c-0.23,0-0.41-0.08-0.56-0.24S19.66,9.4,19.66,9.16z M21.92,14.62c0-0.24,0.08-0.44,0.24-0.62c0.16-0.16,0.35-0.24,0.57-0.24h2.02 + c0.23,0,0.43,0.09,0.6,0.26c0.17,0.17,0.26,0.37,0.26,0.6s-0.09,0.43-0.26,0.6c-0.17,0.17-0.37,0.25-0.6,0.25h-2.02 + c-0.23,0-0.43-0.08-0.58-0.25S21.92,14.86,21.92,14.62z`},child:[]}]})(s)}function M_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.38,21.83c0-0.3,0.1-0.55,0.29-0.76c0.19-0.21,0.43-0.31,0.7-0.31v-0.02l13.16,0.04c0.06-0.01,0.1-0.02,0.1-0.02 + c0.27,0.01,0.51,0.12,0.7,0.33c0.19,0.21,0.29,0.47,0.28,0.77c0,0.3-0.1,0.55-0.29,0.76c-0.19,0.21-0.43,0.31-0.7,0.31v0.01 + L8.59,22.9c-0.1,0.01-0.17,0.02-0.22,0.02c-0.28-0.01-0.51-0.11-0.7-0.32C7.47,22.39,7.37,22.13,7.38,21.83z M8.2,16.37 + c-0.01-0.43,0.04-0.93,0.16-1.52c0.06-0.3,0.2-0.76,0.44-1.37c0.02-0.05,0.07-0.14,0.13-0.28c0.01,0.02,0.03,0.03,0.04,0.05 + s0.02,0.02,0.02,0.03c0.11,0.44,0.27,0.84,0.49,1.2c0.21,0.32,0.48,0.56,0.82,0.69c0.26,0.11,0.63,0.17,1.1,0.18 + c0.02,0,0.05,0,0.08,0c0.03,0,0.06,0,0.08,0c-0.33-0.33-0.59-0.67-0.79-1c-0.3-0.52-0.49-1.12-0.57-1.81 + c-0.06-0.54-0.03-1.19,0.09-1.96c0.02-0.15,0.12-0.49,0.29-1.01c0.15-0.47,0.36-0.9,0.64-1.28C11.54,7.8,12,7.3,12.61,6.78 + c0.37-0.31,0.89-0.67,1.56-1.07c0.07-0.04,0.18-0.11,0.35-0.19c0,0.02,0,0.04,0,0.05s0,0.03,0,0.04v0.02 + c-0.24,0.57-0.41,1.15-0.49,1.73c-0.06,0.53,0.02,1.02,0.24,1.48c0.17,0.36,0.48,0.75,0.92,1.15c0.09,0.09,0.29,0.29,0.6,0.58 + c0.3,0.29,0.54,0.52,0.7,0.68l0.25,0.25c0.26-0.38,0.41-0.83,0.44-1.35c0.04-0.55,0-1.15-0.14-1.8c0-0.01,0-0.04,0.01-0.11 + c0.02,0.02,0.13,0.1,0.3,0.24c0.56,0.5,0.98,0.95,1.28,1.34c0.48,0.62,0.83,1.21,1.06,1.74c0.19,0.46,0.31,0.92,0.38,1.4 + c0.06,0.42,0.08,0.77,0.07,1.05c-0.01,0.78-0.1,1.43-0.25,1.96c-0.07,0.21-0.13,0.38-0.19,0.52c0.25-0.07,0.47-0.16,0.65-0.26 + c0.25-0.16,0.45-0.37,0.6-0.66c0.16-0.29,0.29-0.62,0.38-0.98c0-0.01,0.01-0.03,0.03-0.05c0.01,0.02,0.02,0.05,0.05,0.09 + c0.02,0.04,0.04,0.07,0.05,0.1c0.13,0.31,0.22,0.63,0.27,0.97c0.08,0.38,0.1,0.75,0.08,1.13c-0.02,0.29-0.07,0.56-0.16,0.81 + c-0.08,0.24-0.16,0.43-0.22,0.58c-0.19,0.38-0.39,0.71-0.62,0.98c-0.06,0.07-0.11,0.13-0.14,0.16H9.67 + c-0.01-0.01-0.03-0.03-0.07-0.06s-0.06-0.05-0.08-0.07C9.26,18.98,8.98,18.6,8.7,18.1c-0.08-0.15-0.18-0.38-0.29-0.69 + C8.29,17.1,8.22,16.75,8.2,16.37z`},child:[]}]})(s)}function c_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.56,17.19c0-0.88,0.24-1.89,0.72-3.03s1.1-2.25,1.86-3.31c1.56-2.06,2.92-3.62,4.06-4.67l0.75-0.72 + c0.25,0.26,0.53,0.5,0.83,0.72c0.41,0.42,1.04,1.11,1.88,2.09s1.57,1.85,2.17,2.65c0.71,1.01,1.32,2.1,1.81,3.25 + s0.74,2.16,0.74,3.03c0,1-0.19,1.95-0.58,2.86c-0.39,0.91-0.91,1.7-1.57,2.36c-0.66,0.66-1.45,1.19-2.37,1.58 + c-0.92,0.39-1.89,0.59-2.91,0.59c-1,0-1.95-0.19-2.86-0.57c-0.91-0.38-1.7-0.89-2.36-1.55c-0.66-0.65-1.19-1.44-1.58-2.35 + S7.56,18.23,7.56,17.19z M9.82,14.26c0,0.83,0.17,1.49,0.52,1.99c0.35,0.49,0.88,0.74,1.59,0.74c0.72,0,1.25-0.25,1.61-0.74 + c0.35-0.49,0.53-1.15,0.54-1.99c-0.01-0.84-0.19-1.5-0.54-2c-0.35-0.49-0.89-0.74-1.61-0.74c-0.71,0-1.24,0.25-1.59,0.74 + C9.99,12.76,9.82,13.42,9.82,14.26z M11.39,14.26c0-0.15,0-0.27,0-0.35s0.01-0.19,0.02-0.33c0.01-0.14,0.02-0.25,0.05-0.32 + s0.05-0.16,0.09-0.24c0.04-0.08,0.09-0.15,0.15-0.18c0.07-0.04,0.14-0.06,0.23-0.06c0.14,0,0.25,0.04,0.33,0.12s0.14,0.21,0.17,0.38 + c0.03,0.18,0.05,0.32,0.06,0.45s0.01,0.3,0.01,0.52c0,0.23,0,0.4-0.01,0.52c-0.01,0.12-0.03,0.27-0.06,0.45 + c-0.03,0.17-0.09,0.3-0.17,0.38s-0.19,0.12-0.33,0.12c-0.09,0-0.16-0.02-0.23-0.06c-0.07-0.04-0.12-0.1-0.15-0.18 + c-0.04-0.08-0.07-0.17-0.09-0.24c-0.02-0.08-0.04-0.19-0.05-0.32c-0.01-0.14-0.02-0.25-0.02-0.32S11.39,14.41,11.39,14.26z + M11.98,22.01h1.32l4.99-10.74h-1.35L11.98,22.01z M16.28,19.02c0.01,0.84,0.2,1.5,0.55,2c0.35,0.49,0.89,0.74,1.6,0.74 + c0.72,0,1.25-0.25,1.6-0.74c0.35-0.49,0.52-1.16,0.53-2c-0.01-0.84-0.18-1.5-0.53-1.99c-0.35-0.49-0.88-0.74-1.6-0.74 + c-0.71,0-1.25,0.25-1.6,0.74C16.47,17.52,16.29,18.18,16.28,19.02z M17.85,19.02c0-0.23,0-0.4,0.01-0.52 + c0.01-0.12,0.03-0.27,0.06-0.45s0.09-0.3,0.17-0.38s0.19-0.12,0.33-0.12c0.09,0,0.17,0.02,0.24,0.06c0.07,0.04,0.12,0.1,0.16,0.19 + c0.04,0.09,0.07,0.17,0.1,0.24s0.04,0.18,0.05,0.32l0.01,0.32l0,0.34c0,0.16,0,0.28,0,0.35l-0.01,0.32l-0.05,0.32l-0.1,0.24 + l-0.16,0.19l-0.24,0.06c-0.14,0-0.25-0.04-0.33-0.12s-0.14-0.21-0.17-0.38c-0.03-0.18-0.05-0.33-0.06-0.45S17.85,19.25,17.85,19.02z + `},child:[]}]})(s)}function u_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M6.34,12.48c0-0.94,0.3-1.78,0.89-2.52s1.34-1.21,2.25-1.41C9.73,7.43,10.3,6.5,11.2,5.78s1.92-1.08,3.08-1.08 + c1.12,0,2.13,0.35,3.02,1.05c0.89,0.7,1.46,1.6,1.73,2.69h0.27c1.12,0,2.08,0.39,2.88,1.18c0.79,0.78,1.19,1.74,1.19,2.85 + c0,0.6-0.12,1.17-0.37,1.7c-0.25,0.53-0.59,0.99-1.03,1.37v0.03c0,0.59-0.19,1.12-0.56,1.59c-0.37,0.47-0.84,0.76-1.4,0.89 + c-0.14,0.62-0.45,1.15-0.91,1.58c-0.46,0.43-1.01,0.7-1.63,0.8c0.29,0.34,0.43,0.72,0.43,1.13c0,0.48-0.17,0.89-0.51,1.24 + c-0.34,0.34-0.75,0.52-1.23,0.52c-0.48,0-0.89-0.17-1.23-0.52c-0.34-0.34-0.51-0.76-0.51-1.24c0-0.19,0.03-0.38,0.1-0.57h-0.1 + c-0.58,0-1.08-0.21-1.5-0.63c-0.42-0.42-0.63-0.92-0.63-1.5c0-0.4,0.1-0.76,0.3-1.07c-0.52-0.29-0.89-0.7-1.12-1.25h-1.28v-0.01 + c-1.07-0.07-1.98-0.49-2.73-1.27S6.34,13.56,6.34,12.48z M7.74,12.23c0,0.8,0.28,1.48,0.84,2.04s1.24,0.84,2.03,0.84 + c0.49,0,0.95-0.11,1.37-0.34c0.12,0.74,0.47,1.36,1.04,1.86s1.25,0.74,2.02,0.74c0.87,0,1.61-0.31,2.22-0.92 + c0.41,0.48,0.92,0.71,1.54,0.71c0.57,0,1.05-0.2,1.46-0.6c0.4-0.4,0.6-0.89,0.6-1.46c0.4-0.27,0.72-0.61,0.95-1.04 + c0.23-0.42,0.35-0.88,0.35-1.37c0-0.79-0.28-1.47-0.85-2.02c-0.57-0.55-1.25-0.83-2.05-0.83c-0.56,0-1.07,0.15-1.53,0.44 + c0.06-0.24,0.08-0.51,0.08-0.79c0-0.96-0.34-1.78-1.03-2.46c-0.69-0.68-1.52-1.01-2.49-1.01c-0.94,0-1.75,0.33-2.43,0.97 + s-1.04,1.44-1.07,2.37c-0.02,0-0.05,0-0.08,0c-0.04,0-0.07,0-0.09,0c-0.79,0-1.46,0.28-2.03,0.84S7.74,11.45,7.74,12.23z`},child:[]}]})(s)}function l_e(s){return Z({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M9.91,19.56c0-0.85,0.2-1.64,0.59-2.38s0.94-1.35,1.65-1.84V5.42c0-0.8,0.27-1.48,0.82-2.03S14.2,2.55,15,2.55 + c0.81,0,1.49,0.28,2.04,0.83c0.55,0.56,0.83,1.23,0.83,2.03v9.92c0.71,0.49,1.25,1.11,1.64,1.84s0.58,1.53,0.58,2.38 + c0,0.92-0.23,1.78-0.68,2.56s-1.07,1.4-1.85,1.85s-1.63,0.68-2.56,0.68c-0.92,0-1.77-0.23-2.55-0.68s-1.4-1.07-1.86-1.85 + S9.91,20.48,9.91,19.56z M11.67,19.56c0,0.93,0.33,1.73,0.98,2.39c0.65,0.66,1.44,0.99,2.36,0.99c0.93,0,1.73-0.33,2.4-1 + s1.01-1.46,1.01-2.37c0-0.62-0.16-1.2-0.48-1.73c-0.32-0.53-0.76-0.94-1.32-1.23l-0.28-0.14c-0.1-0.04-0.15-0.14-0.15-0.29V5.42 + c0-0.32-0.11-0.59-0.34-0.81C15.62,4.4,15.34,4.29,15,4.29c-0.32,0-0.6,0.11-0.83,0.32c-0.23,0.21-0.34,0.48-0.34,0.81v10.74 + c0,0.15-0.05,0.25-0.14,0.29l-0.27,0.14c-0.55,0.29-0.98,0.7-1.29,1.23C11.82,18.35,11.67,18.92,11.67,19.56z M12.45,19.56 + c0,0.71,0.24,1.32,0.73,1.82s1.07,0.75,1.76,0.75s1.28-0.25,1.79-0.75c0.51-0.5,0.76-1.11,0.76-1.81c0-0.63-0.22-1.19-0.65-1.67 + c-0.43-0.48-0.96-0.77-1.58-0.85V9.69c0-0.06-0.03-0.13-0.1-0.19c-0.07-0.07-0.14-0.1-0.22-0.1c-0.09,0-0.16,0.03-0.21,0.08 + c-0.05,0.06-0.08,0.12-0.08,0.21v7.34c-0.61,0.09-1.13,0.37-1.56,0.85C12.66,18.37,12.45,18.92,12.45,19.56z`},child:[]}]})(s)}function N_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"},child:[]}]})(s)}function L_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"},child:[]},{tag:"path",attr:{d:"M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"},child:[]}]})(s)}function El(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"},child:[]}]})(s)}function g_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M8 12a4 4 0 0 0 4 4m0 -8a4 4 0 0 0 -4 4"},child:[]},{tag:"path",attr:{d:"M3 12h1"},child:[]},{tag:"path",attr:{d:"M12 3v1"},child:[]},{tag:"path",attr:{d:"M12 20v1"},child:[]},{tag:"path",attr:{d:"M5.6 5.6l.7 .7"},child:[]},{tag:"path",attr:{d:"M6.3 17.7l-.7 .7"},child:[]},{tag:"path",attr:{d:"M20 7l-3 5h4l-3 5"},child:[]}]})(s)}function j_e(s){return Z({attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M224,127.17a96.48,96.48,0,0,1-2.39,22.18A24,24,0,0,1,198.21,168H152a24,24,0,0,0-24,24,24,24,0,0,1-32,22.61C58.73,201.44,32,169.81,32,128a96,96,0,0,1,95-96C179.84,31.47,223.55,74.35,224,127.17Z",opacity:"0.2"},child:[]},{tag:"path",attr:{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"},child:[]}]})(s)}function y_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M296,320H216a24,24,0,0,0,0,48h80a24,24,0,0,0,0-48Zm0,32H216a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"}),M.createElement("path",{d:"M68.071,123.492c22.578-13.918,52.2-25.229,85.674-32.71l-3.49-15.615c-35.688,7.977-66.163,19.653-90.58,34.705-17.914,11.043-32.041,23.643-41.99,37.451l12.98,9.354C39.376,144.588,51.961,133.423,68.071,123.492Z"}),M.createElement("path",{d:"M435.533,137.112C409.439,121.027,374,108.967,332.845,102.144,322.474,87,288.213,80,256,80s-66.474,7-76.845,22.144C138,108.967,102.561,121.027,76.467,137.112,47.376,155.045,32,176.792,32,200v96c0,29,24.155,55.7,68.016,75.193C141.813,389.77,197.209,400,256,400s114.187-10.23,155.984-28.807C455.845,351.7,480,325,480,296V200C480,176.792,464.624,155.045,435.533,137.112ZM177.64,151.23C185.676,168.192,221.98,176,256,176s70.324-7.808,78.36-24.77c21.862,4.212,41.832,10.19,58.13,17.44C422.343,181.941,432,195.509,432,200s-9.657,18.059-39.51,31.33C357.224,247.008,307.475,256,256,256s-101.224-8.992-136.49-24.67C89.657,218.059,80,204.491,80,200s9.657-18.059,39.512-31.331C135.808,161.42,155.778,155.442,177.64,151.23Zm14.36-19c15.6,8,40.35,11.773,64,11.773s48.4-3.775,64-11.773V144c0,.687-2.715,5.08-15.618,9.381C291.577,157.649,274.4,160,256,160s-35.577-2.351-48.382-6.619C194.715,149.08,192,144.687,192,144Zm15.618-29.608C220.423,98.351,237.605,96,256,96s35.577,2.351,48.382,6.619C317.285,106.92,320,111.313,320,112s-2.715,5.08-15.618,9.381C291.577,125.649,274.4,128,256,128s-35.577-2.351-48.382-6.619C194.715,117.08,192,112.687,192,112S194.715,106.92,207.618,102.619ZM176,118.937v16.319c-23.589,4.453-45.254,10.9-62.99,18.794C82.779,167.489,64,185.1,64,200s18.779,32.511,49.01,45.95C150.249,262.505,202.367,272,256,272s105.751-9.5,142.99-26.05C429.221,232.511,448,214.9,448,200s-18.779-32.511-49.008-45.95c-17.738-7.89-39.4-14.341-62.992-18.794V118.937C411.852,132.7,464,165.41,464,200c0,21.967-21.328,44.044-58.516,60.572C365.688,278.259,312.6,288,256,288s-109.688-9.741-149.484-27.428C69.328,244.044,48,221.967,48,200,48,165.41,100.148,132.7,176,118.937ZM464,296c0,21.967-21.327,44.044-58.514,60.572C365.689,374.259,312.6,384,256,384s-109.689-9.741-149.486-27.428C69.327,340.044,48,317.967,48,296V239.371c11.522,13.444,29.066,25.621,52.018,35.822C141.814,293.77,197.211,304,256,304s114.186-10.23,155.982-28.807c22.952-10.2,40.5-22.378,52.018-35.822Z"}),M.createElement("path",{d:"M418.482,385.814C374.684,405.28,316.979,416,256,416a488.01,488.01,0,0,1-78.705-6.23l-2.59,15.789A504.064,504.064,0,0,0,256,432c63.169,0,123.181-11.21,168.981-31.565q1.3-.576,2.572-1.16l-6.655-14.55Q419.7,385.274,418.482,385.814Z"}),M.createElement("path",{d:"M436.123,377.062l7.754,14c5.883-3.259,11.492-6.728,16.674-10.31l-9.1-13.161C446.7,370.871,441.546,374.059,436.123,377.062Z"}),M.createElement("rect",{x:"248",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"280",y:"192",width:"16",height:"16"}),M.createElement("rect",{x:"216",y:"192",width:"16",height:"16"})))}function T_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M298.667 298.667c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32c0 17.642 14.357 32 32 32zm0-42.667c5.867 0 10.667 4.779 10.667 10.667s-4.8 10.667-10.667 10.667S288 272.555 288 266.667 292.8 256 298.667 256z"}),M.createElement("path",{fill:"currentColor",d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667c-.597 0-1.131.256-1.707.341-.555.085-1.088.149-1.621.32-.939.32-1.749.789-2.56 1.344-.32.213-.704.277-1.003.533-.107.085-.149.213-.256.32-.768.704-1.365 1.579-1.899 2.496-.213.341-.512.619-.661.981-.597 1.345-.96 2.774-.96 4.332v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h42.667c.576 0 1.173-.043 1.749-.149l256-42.667a10.672 10.672 0 0 0 8.917-10.517V53.333c0-5.227-3.776-9.664-8.917-10.517L235.541 21.333h159.125v480c0 5.888 4.779 10.667 10.667 10.667H448c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-96-428.31v387.264l-234.667 39.125V23.253L352 62.357z"}))}function fl(s){return M.createElement("svg",{viewBox:"0 0 512.006 512.006",...s},M.createElement("path",{d:"M502.379 211.249c0 74.656-60.52 135.176-135.176 135.176-6.469.01-12.919-.473-19.311-1.448-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825a142.128 142.128 0 0 1 19.311-1.352c74.656 0 135.176 60.521 135.176 135.177z",fill:"#c52828"}),M.createElement("path",{d:"M463.757 211.249c-.029 67.173-49.378 124.131-115.865 133.728-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825 66.516 9.598 115.875 66.613 115.865 133.825z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M380.527 230.56h-26.649a8.208 8.208 0 0 1-8.4-7.242l-7.242-90.472c-.212-4.47 3.235-8.275 7.705-8.497.232-.01.463-.01.695 0h41.036a8.105 8.105 0 0 1 8.4 7.802c.01.232.01.463 0 .695l-7.242 90.472c-.501 4.181-4.093 7.319-8.303 7.242zM362.085 269.181h10.235c7.84 0 14.194 6.353 14.194 14.194v10.235c0 7.84-6.353 14.194-14.194 14.194h-10.235c-7.84 0-14.194-6.353-14.194-14.194v-10.235c.001-7.84 6.354-14.194 14.194-14.194z"})),M.createElement("path",{d:"M308.015 332.714a132.057 132.057 0 0 1-24.332-15.256 138.367 138.367 0 0 1-25.587-26.456 134.123 134.123 0 0 1-26.07-79.754 136.453 136.453 0 0 1 3.09-28.966 129.801 129.801 0 0 1 9.655-28.966c-24.428-39.201-50.691-78.113-85.547-108.334-2.607-2.221-5.214-4.442-7.917-6.566a161.051 161.051 0 0 0-14.387-10.621 80.965 80.965 0 0 0-13.807-7.145c1.641 7.338 3.476 14.773 4.731 22.208a180.355 180.355 0 0 1 2.993 26.939v7.145a192.012 192.012 0 0 1-60.829 139.521 202.647 202.647 0 0 0-43.836 52.719 149.063 149.063 0 0 0-6.566 120.017 152.006 152.006 0 0 0 22.208 40.167 164.926 164.926 0 0 0 106.21 61.891 86.874 86.874 0 0 1-44.801-32.249 51.315 51.315 0 0 1-3.669-5.6 77.46 77.46 0 0 1-6.469-13.325 79.464 79.464 0 0 1 3.766-63.726 111.914 111.914 0 0 1 23.463-28.387 101.983 101.983 0 0 0 32.442-74.25v-3.862a97.875 97.875 0 0 0-4.731-27.132 112.539 112.539 0 0 1 10.911 6.566 108.053 108.053 0 0 1 30.222 30.801 100.963 100.963 0 0 1 15.835 46.443v8.4a100.92 100.92 0 0 1-18.249 57.933c22.98 13.035 38.622-8.593 44.994-28.966a60.067 60.067 0 0 0 2.51-12.842 88.458 88.458 0 0 1 28.966 61.312v5.214c-2.704 33.678-25.346 62.451-57.45 72.995 73.353-11.789 128.717-72.889 133.245-147.053a131.977 131.977 0 0 1-30.994-10.815z",fill:"#f57c00"}),M.createElement("path",{d:"M263.117 417.489v-5.214a88.462 88.462 0 0 0-28.966-61.312 60.129 60.129 0 0 1-2.51 12.842c-5.986 20.47-22.014 42.098-44.994 28.966a100.923 100.923 0 0 0 18.249-57.933v-.966-7.338a100.971 100.971 0 0 0-15.835-46.443 108.027 108.027 0 0 0-30.222-30.801 108.949 108.949 0 0 0-39.877-35.532 97.838 97.838 0 0 1 4.731 27.132v3.862a101.988 101.988 0 0 1-32.442 74.25 111.924 111.924 0 0 0-23.366 28.387 79.491 79.491 0 0 0-3.573 63.726 83.948 83.948 0 0 0 35.436 42.291 51.315 51.315 0 0 0 3.669 5.6 86.886 86.886 0 0 0 44.415 32.249 164.927 164.927 0 0 1-106.21-61.892 152.082 152.082 0 0 1-22.014-40.167 149.055 149.055 0 0 1 6.564-120.015 202.714 202.714 0 0 1 44.029-53.202A192.012 192.012 0 0 0 131.03 76.458v-7.145a180.486 180.486 0 0 0-2.993-26.939c-1.255-7.435-3.09-14.869-4.731-22.208a80.965 80.965 0 0 1 13.807 7.145 159.446 159.446 0 0 1 14.773 10.718c2.704 2.124 5.311 4.345 7.917 6.566 34.856 30.222 61.119 69.133 85.547 108.334a129.75 129.75 0 0 0-9.655 28.966 136.634 136.634 0 0 0-3.669 29.353 134.116 134.116 0 0 0 26.07 79.754 138.396 138.396 0 0 0 25.587 26.456 132.164 132.164 0 0 0 24.332 15.256 152.203 152.203 0 0 1-44.898 84.775z",fill:"#ff9801"}),M.createElement("path",{d:"M147.831 500.912h-1.448c-61.756-8.7-113.963-50.15-136.432-108.334a158.725 158.725 0 0 1 7.338-127.355 212.528 212.528 0 0 1 45.96-55.809 181.787 181.787 0 0 0 57.933-132.473v-6.759a171.298 171.298 0 0 0-2.8-25.587c-.966-5.697-2.221-11.2-3.476-16.704l-1.159-5.117c-1.178-5.204 2.076-10.37 7.28-11.548a9.663 9.663 0 0 1 5.948.541 89.473 89.473 0 0 1 15.449 8.014 172.47 172.47 0 0 1 15.449 11.2c41.036 32.732 70.871 77.244 95.589 117.314a9.673 9.673 0 0 1 .483 9.655 121.056 121.056 0 0 0-9.655 26.842 128.158 128.158 0 0 0-2.607 26.456c.01 59.198 41.374 110.333 99.258 122.721a9.655 9.655 0 0 1 7.628 9.655c-3.186 77.244-61.216 141.742-141.163 156.129-5.253.927-10.254-2.588-11.181-7.84a9.65 9.65 0 0 1 6.353-10.795c29.99-9.8 50.517-37.492 51.174-69.037a67.618 67.618 0 0 0-14.387-40.746 56.78 56.78 0 0 1-24.139 31.091 33.122 33.122 0 0 1-33.408-1.448c-4.644-2.626-6.276-8.516-3.659-13.16.145-.261.299-.502.473-.743a91.187 91.187 0 0 0 16.511-52.429v-.772a90.743 90.743 0 0 0-14.58-48.277 98.107 98.107 0 0 0-19.311-21.532v9.945a111.13 111.13 0 0 1-35.436 81.299 103.445 103.445 0 0 0-21.532 25.78 69.873 69.873 0 0 0-3.09 56.002 76.304 76.304 0 0 0 49.533 44.512c5.33.801 9.009 5.774 8.207 11.104-.801 5.328-5.774 8.997-11.103 8.205zM137.113 39.478v1.738a188.136 188.136 0 0 1 3.09 28.194v7.435A200.926 200.926 0 0 1 76.38 223.318a192.998 192.998 0 0 0-42.098 50.498 139.414 139.414 0 0 0-6.469 111.907 148.682 148.682 0 0 0 65.561 76.568 89.522 89.522 0 0 1-15.159-49.726 91.25 91.25 0 0 1 9.655-40.167 119.46 119.46 0 0 1 25.394-31.091 92.026 92.026 0 0 0 29.449-67.588v-3.09a88.799 88.799 0 0 0-4.248-24.911 9.653 9.653 0 0 1 6.237-12.147 9.638 9.638 0 0 1 7.473.657 119.392 119.392 0 0 1 44.705 40.649 110.062 110.062 0 0 1 17.669 58.898v1.159a110.343 110.343 0 0 1-13.035 52.139 12.555 12.555 0 0 0 4.731-1.448c9.655-5.31 17.283-22.497 18.345-35.436.434-5.31 5.088-9.269 10.409-8.844a9.61 9.61 0 0 1 6.006 2.761 95.586 95.586 0 0 1 32.153 68.168 89.528 89.528 0 0 1-13.711 47.408 146.774 146.774 0 0 0 69.133-108.817c-62.77-17.37-106.22-74.492-106.21-139.618a146.655 146.655 0 0 1 3.283-30.994 139.876 139.876 0 0 1 8.497-26.263c-23.27-37.077-51.27-78.402-88.541-108.045a113.049 113.049 0 0 0-8.496-6.467z"}),M.createElement("path",{d:"M367.203 356.081a144.841 144.841 0 0 1-89.506-30.994 143.882 143.882 0 0 1-55.326-113.838 146.655 146.655 0 0 1 3.283-30.994 140.652 140.652 0 0 1 10.814-31.091c23.965-50.498 74.839-82.699 130.735-82.747 79.986.019 144.813 64.875 144.803 144.861a144.848 144.848 0 0 1-55.297 113.809 143.543 143.543 0 0 1-89.506 30.994zm0-270.353c-48.47.019-92.586 27.943-113.355 71.74a121.83 121.83 0 0 0-9.655 26.939 127.805 127.805 0 0 0-2.51 26.842c.01 59.198 41.374 110.333 99.258 122.721a125.763 125.763 0 0 0 26.263 2.8c69.326 0 125.521-56.195 125.521-125.521S436.519 85.728 367.203 85.728z"}),M.createElement("path",{d:"M380.527 240.215h-26.649c-9.279.097-17.109-6.894-18.056-16.125l-7.242-90.085a17.201 17.201 0 0 1 4.538-13.035 18.38 18.38 0 0 1 13.518-5.89h41.036a18.375 18.375 0 0 1 13.518 5.89 17.204 17.204 0 0 1 4.635 13.035l-7.242 90.472c-1.139 9.076-8.912 15.854-18.056 15.738zm-25.49-19.311h24.525l6.952-86.899h-38.622l7.145 86.899zM372.32 317.459h-10.235c-13.151-.048-23.801-10.698-23.849-23.849v-10.235c.048-13.151 10.698-23.801 23.849-23.849h10.138c13.189 0 23.888 10.66 23.946 23.849v10.138c0 13.18-10.669 23.888-23.849 23.946zm-10.138-38.622a4.635 4.635 0 0 0-4.538 4.538v10.138a4.635 4.635 0 0 0 4.538 4.538h10.138a4.635 4.635 0 0 0 4.538-4.538v-10.138a4.635 4.635 0 0 0-4.538-4.538h-10.138z"}))}function xl(s){return M.createElement("svg",{viewBox:"0 0 512.002 512.002",...s},M.createElement("path",{d:"M481.929 324.35c0 65.951-53.464 119.415-119.415 119.415a111.938 111.938 0 0 1-17.059-1.279c-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221a125.333 125.333 0 0 1 17.059-1.194c65.951-.001 119.415 53.462 119.415 119.414z",fill:"#c52828"}),M.createElement("path",{d:"M447.81 324.35c-.026 59.341-43.621 109.657-102.356 118.135-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221 58.77 8.487 102.373 58.846 102.356 118.221z",fill:"#f44335"}),M.createElement("g",{fill:"#fdd834"},M.createElement("path",{d:"M374.285 341.409h-23.542a7.251 7.251 0 0 1-7.421-6.397l-6.397-79.923a7.174 7.174 0 0 1 6.807-7.506c.205-.009.409-.009.614 0h36.251a7.16 7.16 0 0 1 7.421 6.892c.009.205.009.409 0 .614l-6.397 79.923a7.249 7.249 0 0 1-7.336 6.397zM357.993 375.527h9.041c6.926 0 12.539 5.612 12.539 12.539v9.041c0 6.926-5.612 12.539-12.539 12.539h-9.041c-6.926 0-12.539-5.612-12.539-12.539v-9.041c0-6.926 5.621-12.539 12.539-12.539z"})),M.createElement("path",{d:"M318.415 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 159.575 159.575 0 0 1-61.413 12.283 149.268 149.268 0 0 1-20.556-1.365 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.753 152.753 0 0 1-12.368-60.219 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504 7.335-11.771c4.504-7.353 14.117-9.656 21.469-5.143a15.525 15.525 0 0 1 5.143 5.143l34.716 55.869c-2.644 4.18-5.032 8.53-7.335 12.709a96.424 96.424 0 0 0-11.515 44.439 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.344 115.344 0 0 0-11.6 31.048 120.546 120.546 0 0 0-2.729 25.589c.041 48.9 29.878 92.828 75.315 110.885z",fill:"#0377bc"}),M.createElement("path",{d:"M277.217 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 158.847 158.847 0 0 1-40.772 10.833 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.657 152.657 0 0 1-12.368-60.134 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504c9.212 14.671 18.339 29.427 27.465 44.098-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.323 115.323 0 0 0-12.283 31.133 120.546 120.546 0 0 0-2.729 25.589c.043 48.9 29.88 92.828 75.317 110.885z",fill:"#02a9f4"}),M.createElement("path",{d:"M411.388 144.545a477.911 477.911 0 0 0-27.636-43.842c-9.894-14.586-19.192-29.598-28.489-44.525L328.395 13.53c-3.037-4.708-9.323-6.065-14.031-3.028a10.259 10.259 0 0 0-3.028 3.028l-12.794 20.215-14.074 22.433c-9.297 14.927-18.595 29.939-28.489 44.525-6.994 10.236-13.989 20.471-20.301 31.133-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.758 98.758 0 0 0 29.939 70.284 106.83 106.83 0 0 0 9.98 8.53 119.423 119.423 0 0 1 84.017-60.902 114.9 114.9 0 0 1 21.068-1.877c5.186.009 10.372.324 15.524.938a119.369 119.369 0 0 1 39.578 12.539 96.462 96.462 0 0 0-6.228-73.866z",fill:"#0377bc"}),M.createElement("path",{d:"M379.573 188.899a93.046 93.046 0 0 1-1.535 17.059 131.537 131.537 0 0 0-15.524-1.024 114.797 114.797 0 0 0-21.068 1.877 119.425 119.425 0 0 0-84.017 60.902 106.96 106.96 0 0 1-9.98-8.53c-31.099-29.743-38.878-76.417-19.106-114.638 2.303-4.35 4.691-8.53 7.335-12.709 6.312-10.662 13.306-20.898 20.301-31.133 9.894-14.586 19.192-29.598 28.489-44.525l14.074-22.433 14.074 22.433c9.297 14.927 18.595 29.939 28.489 44.525a477.911 477.911 0 0 1 27.636 43.842 96.401 96.401 0 0 1 10.832 44.354z",fill:"#02a9f4"}),M.createElement("path",{d:"M187.656 512.002a167.398 167.398 0 0 1-64.655-12.88 165.226 165.226 0 0 1-88.623-86.746 160.466 160.466 0 0 1-13.05-63.631 158.81 158.81 0 0 1 17.656-72.928 698.388 698.388 0 0 1 39.663-63.887l3.412-5.032c12.027-17.998 23.627-36.677 34.886-54.76L167.1 71.531c6.986-11.353 21.861-14.893 33.214-7.898a24.1 24.1 0 0 1 7.898 7.898l17.059 27.38 17.827 28.404a8.521 8.521 0 0 1 0 9.383c-2.559 4.009-4.777 8.018-6.994 12.112a87.69 87.69 0 0 0-10.065 40.089 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83 99.608 99.608 0 0 0 9.212 7.847 8.534 8.534 0 0 1 2.303 10.918 106.955 106.955 0 0 0-10.747 28.745 112.483 112.483 0 0 0-2.559 23.712c.009 45.429 27.721 86.26 69.943 103.038 4.393 1.706 6.559 6.653 4.853 11.046a8.584 8.584 0 0 1-.93 1.749 162.407 162.407 0 0 1-20.301 24.139 164.29 164.29 0 0 1-52.884 34.886 167.489 167.489 0 0 1-64.653 12.795zm0-435.012a6.99 6.99 0 0 0-6.056 3.412l-50.154 80.69c-11.344 18.168-23.03 37.019-35.227 55.187l-3.412 5.032a687.543 687.543 0 0 0-38.725 62.266 141.613 141.613 0 0 0-15.695 65.166 143.56 143.56 0 0 0 11.686 56.893 148.16 148.16 0 0 0 79.411 77.79 152.855 152.855 0 0 0 116.344 0 147.616 147.616 0 0 0 47.425-31.133 143.446 143.446 0 0 0 12.027-13.306c-43.322-21.802-70.668-66.139-70.711-114.638a129.576 129.576 0 0 1 2.9-27.38 124.357 124.357 0 0 1 9.212-26.954 136.293 136.293 0 0 1-5.203-4.691 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 1.621-3.071 3.241-5.971 4.862-8.53l-14.927-24.054-17.059-27.38a7.087 7.087 0 0 0-6.141-3.837z"}),M.createElement("path",{d:"M99.971 442.4A8.521 8.521 0 0 1 94 439.926a129.631 129.631 0 0 1-28.318-41.113 126.28 126.28 0 0 1-10.236-50.069 124.503 124.503 0 0 1 13.818-57.234c1.868-4.325 6.883-6.32 11.208-4.452s6.32 6.883 4.452 11.208c-.162.375-.35.742-.563 1.092a107.494 107.494 0 0 0-11.856 49.387 109.211 109.211 0 0 0 8.53 43.331 112.626 112.626 0 0 0 24.565 35.739c3.344 3.318 3.369 8.717.051 12.061a8.549 8.549 0 0 1-6.022 2.525l.342-.001zM257.428 276.242a8.526 8.526 0 0 1-5.118-1.706 115.222 115.222 0 0 1-10.747-9.212 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 2.559-4.862 5.118-9.212 7.677-13.306 6.312-10.662 13.392-21.068 20.386-31.218 9.041-13.903 17.912-27.807 26.442-41.881L304 8.753c5.485-8.734 17.017-11.379 25.751-5.894a18.698 18.698 0 0 1 5.894 5.894l28.574 45.634c8.53 13.733 17.059 27.977 26.612 41.539l1.706 2.474a457.473 457.473 0 0 1 26.442 42.136 104.968 104.968 0 0 1 6.824 80.434c-1.433 4.487-6.235 6.969-10.722 5.536a8.282 8.282 0 0 1-1.39-.589 112.612 112.612 0 0 0-106.535 2.388 110.28 110.28 0 0 0-42.136 43.416 8.52 8.52 0 0 1-5.715 4.265l-1.877.256zm62.437-258.959a1.541 1.541 0 0 0-1.365.768l-28.489 45.378c-8.53 13.903-17.571 28.233-26.954 42.051-6.909 10.065-13.903 20.301-20.045 30.707-2.644 4.18-4.947 8.53-7.165 12.368a87.722 87.722 0 0 0-9.809 40.345 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83l1.791 1.706a127.216 127.216 0 0 1 43.331-41.369 129.73 129.73 0 0 1 113.359-7.25 87.904 87.904 0 0 0-8.53-57.831 444.102 444.102 0 0 0-25.589-40.516l-1.706-2.474c-9.383-13.818-18.339-28.148-26.954-42.051L321.23 18.05a1.532 1.532 0 0 0-1.365-.767z"}),M.createElement("path",{d:"M271.246 243.233a8.519 8.519 0 0 1-5.971-2.388 75.502 75.502 0 0 1-16.292-23.456 71.923 71.923 0 0 1-5.885-28.489 70.537 70.537 0 0 1 7.933-32.498c1.877-3.582 4.009-7.25 6.227-10.833l.512-.768a8.538 8.538 0 0 1 11.609-3.284 8.538 8.538 0 0 1 3.284 11.609 6.997 6.997 0 0 1-.392.631l-.512.853c-2.132 3.327-3.924 6.568-5.63 9.724a53.307 53.307 0 0 0-5.971 24.565 54.816 54.816 0 0 0 4.435 21.665 58.198 58.198 0 0 0 12.624 18.083c3.395 3.267 3.489 8.666.222 12.061a8.518 8.518 0 0 1-6.193 2.61v-.085z"}),M.createElement("path",{d:"M362.514 452.294c-70.66 0-127.945-57.285-127.945-127.945a129.576 129.576 0 0 1 2.9-27.38 123.98 123.98 0 0 1 12.453-33.351 127.15 127.15 0 0 1 48.619-50.154c37.94-21.495 84.136-22.518 122.997-2.729 62.744 32.489 87.275 109.7 54.777 172.452-22.005 42.512-65.916 69.184-113.801 69.107zm0-238.83c-40.763.009-78.234 22.382-97.579 58.257a107.238 107.238 0 0 0-10.747 28.83 112.818 112.818 0 0 0-2.559 23.798c0 61.243 49.643 110.885 110.885 110.885s110.885-49.642 110.885-110.885-49.643-110.885-110.885-110.885z"}),M.createElement("path",{d:"M374.285 349.939h-23.542c-8.231.085-15.157-6.141-15.95-14.33l-6.397-79.496a15.26 15.26 0 0 1 4.009-11.515 16.312 16.312 0 0 1 11.942-5.203h36.251a16.31 16.31 0 0 1 11.941 5.203 15.27 15.27 0 0 1 4.094 11.515l-6.397 79.923c-.999 8.026-7.865 14.013-15.951 13.903zm-22.519-17.06h21.665l6.141-76.767h-34.119l6.313 76.767zM367.034 418.176h-9.041c-11.617-.043-21.026-9.451-21.068-21.068v-9.041c.043-11.617 9.451-21.026 21.068-21.068h8.956c11.651 0 21.102 9.417 21.153 21.068v8.956c.001 11.651-9.416 21.11-21.068 21.153zm-8.956-34.119a4.095 4.095 0 0 0-4.009 4.009v8.956a4.095 4.095 0 0 0 4.009 4.009h8.956a4.095 4.095 0 0 0 4.009-4.009v-8.956a4.095 4.095 0 0 0-4.009-4.009h-8.956z"}))}function d_e(s){return M.createElement("svg",{viewBox:"0 0 512 512",...s},M.createElement("path",{fill:"currentColor",d:"M462,226c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.52,0,10-4.48,10-10S467.52,226,462,226z"}),M.createElement("path",{fill:"currentColor",d:"M50,226c-5.52,0-10,4.48-10,10s4.48,10,10,10s10-4.48,10-10S55.52,226,50,226z"}),M.createElement("path",{fill:"currentColor",d:`M502,126h-0.027C508.265,117.637,512,107.248,512,96c0-27.57-22.43-50-50-50s-50,22.43-50,50 + c0,11.248,3.735,21.637,10.027,30H422c-5.522,0-10,4.478-10,10v50.03c-7.399,0.025-17.158,0.065-23,0.113V166.63 + c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.435c-0.931-0.964-1.899-2.045-2.923-3.258 + c-10.745-12.754-24.515-23.761-40.077-32.106V121.83c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.983 + c-12.92-4.643-26.438-7.5-40-8.448V96c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v30.365 + c-13.565,0.948-27.084,3.807-40,8.452V120.17c0-5.522-4.477-10-10-10s-10,4.478-10,10v23.542 + c-15.764,8.457-29.695,19.652-40.55,32.652c-0.758,0.908-1.587,1.755-2.45,2.566v-12.3c0-5.522-4.477-10-10-10s-10,4.478-10,10 + v20.385c-4.189,0.067-14.913,0.05-23,0.024V136c0-5.522-4.477-10-10-10h-0.027C96.265,117.637,100,107.248,100,96 + c0-27.57-22.43-50-50-50S0,68.43,0,96c0,11.248,3.735,21.637,10.027,30H10c-5.523,0-10,4.478-10,10v320c0,5.522,4.477,10,10,10h80 + c5.523,0,10-4.478,10-10v-11h312v11c0,5.522,4.478,10,10,10h80c5.522,0,10-4.478,10-10V136C512,130.478,507.522,126,502,126z + M80,446H20V146h20v50c0,5.522,4.477,10,10,10s10-4.478,10-10v-50h20V446z M50,126c-16.542,0-30-13.458-30-30s13.458-30,30-30 + s30,13.458,30,30S66.542,126,50,126z M123,425h-23v-19h23V425z M123,386h-23V247h23V386z M123,227h-23v-19.959 + c3.808,0.011,8.197,0.022,12.244,0.022c4.378,0,8.351-0.012,10.756-0.046V227z M186,425h-43v-19h43V425z M186,276v40v70h-43 + V244.817c16.149-3.513,31.29-11.046,43-21.321V276z M186,194.605c-2.373,2.327-4.659,4.785-6.815,7.365 + c-8.521,10.2-21.771,18.214-36.185,22.224v-21.525c6.846-3.098,13.007-7.736,17.806-13.49c7.006-8.391,15.56-15.917,25.194-22.232 + V194.605z M206,156.285c12.757-5.415,26.344-8.765,40-9.871v20.099c-14.162,1.416-27.777,5.83-40,12.895V156.285z M206,203.562 + c11.538-9.26,25.37-15.088,40-16.922V266h-40V203.562z M246,425h-40v-19h40V425z M246,386h-40v-60h40V386z M306,425h-40v-19h40 + V425z M306,386h-40v-60h40V386z M306,306H206v-20h100V306z M306,266h-40v-79.359c14.617,1.835,28.449,7.664,40,16.924V266z + M306,179.418c-12.232-7.071-25.847-11.487-40-12.904v-20.1c13.651,1.106,27.238,4.454,40,9.865V179.418z M369,425h-43v-19h43V425 + z M369,386h-43v-70v-40v-52.635c11.722,10.137,26.674,17.329,43,20.634V386z M369,223.458 + c-14.663-3.788-27.83-11.575-36.517-21.887c-2.039-2.417-4.216-4.742-6.483-6.965v-27.672c9.465,6.201,17.88,13.567,24.789,21.767 + c4.64,5.496,10.324,11.234,18.211,14.57V223.458z M412,425h-23v-19h23V425z M412,386h-23V246h23V386z M412,226h-23v-19.856 + c5.683-0.048,15.526-0.088,23-0.113V226z M492,446h-60V146h20v50c0,5.522,4.478,10,10,10c5.522,0,10-4.478,10-10v-50h20V446z + M462,126c-16.542,0-30-13.458-30-30s13.458-30,30-30s30,13.458,30,30S478.542,126,462,126z`}))}function D_e(s){return M.createElement("svg",{viewBox:"0 0 511.448 511.448",...s},M.createElement("path",{d:"M344.556 112.216C318.38 78.84 291.34 44.344 269.516 7.32c-5.76-9.76-21.824-9.76-27.552 0-21.856 37.024-48.896 71.52-75.072 104.896-53.056 67.68-103.168 131.616-103.168 207.232 0 105.888 86.112 192 192 192s192-86.112 192-192c0-75.616-50.112-139.552-103.168-207.232z",fill:"#2196f3"}),M.createElement("g",{fill:"#fafafa"},M.createElement("path",{d:"M207.724 287.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.832 0-16 7.168-16 16s7.168 16 16 16 16-7.168 16-16-7.168-16-16-16zM303.724 447.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM175.724 415.448a16.07 16.07 0 0 1-11.328-4.672c-6.24-6.24-6.24-16.384 0-22.624l160-160c6.24-6.24 16.384-6.24 22.624 0s6.24 16.384 0 22.624l-160 160a15.943 15.943 0 0 1-11.296 4.672z"})))}function _l(s){return M.createElement("svg",{viewBox:"0 0 508.16 508.16",...s},M.createElement("path",{d:"M504.18 13.67a3.924 3.924 0 0 0-.42.02H4a4 4 0 0 0-4 4v47.28a4 4 0 0 0 4 4h19.72l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.16a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h479.8a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.64-42.08h9.84a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h19.72a4 4 0 0 0 4-4V17.69a4 4 0 0 0-3.98-4.02zM99.08 486.49H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm26.8 378.24h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm.16-47.28h-18.96V68.97h18.96v39.28zm247.84 378.24h-240v-39.28h240v39.28zm-240-47.28v-39.28h239.68v39.28H133.88zm240-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm-240-47.28V68.97h239.84v39.28H133.88zm266.64 378.24h-18.64l-.32-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm.32-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm-18.96-47.28V68.97h18.8v39.28h-18.8zm63.56 8v39.28h-36.92v-39.28h36.92zm-36.76-8V68.97h36.92v39.28h-36.92zm36.76 55.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.76l-.16-39.28h36.92zm42.68 181.12h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h36.92v17.44a4 4 0 0 0 8 0v-17.44h22.04l12.48 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6V68.97h22.04l12.56 39.28zm11.56-47.28H8V21.69h491.76l-.08 39.28z",fill:"currentColor"}),M.createElement("path",{d:"M454.32 37.33h-13.76a4 4 0 0 0 0 8h13.76a4 4 0 0 0 0-8zM414.84 37.33h-96a4 4 0 0 0 0 8h96a4 4 0 0 0 0-8z",fill:"currentColor"}))}function h_e(s){return M.createElement("svg",{viewBox:"0 0 63.907 63.907",fill:"currentColor",...s},M.createElement("circle",{fill:"currentColor",cx:30.515,cy:6.136,r:6.136}),M.createElement("path",{fill:"currentColor",d:"M47.399 27.455C42.346 24.53 38.2 20.579 34.71 15.931c-2.193-3.084-7.991-2.923-10.347-.097-3.584 3.487-6.625 7.081-9.037 10.677a3.209 3.209 0 0 0 5.329 3.573 54.205 54.205 0 0 1 3.59-4.734c-.051 3.333.116 9.347.2 12.05.028.9-.177 1.78-.595 2.579-3.308 6.317-5.424 12.294-7.572 19.606a3.37 3.37 0 1 0 6.465 1.901c1.982-6.742 3.897-12.201 6.884-17.981.152.006.304.006.458-.001 1.907 5.69 3.815 11.383 5.725 17.073 1.387 4.147 7.822 1.993 6.431-2.155-2.087-6.221-4.171-12.439-6.251-18.659-.121-.357-.414-1.755-.455-2.211-.344-3.832-.469-7.652-.432-11.477a51.027 51.027 0 0 0 9.782 7.328c3.597 2.088 6.063-3.891 2.514-5.948z"}))}function z_e(s){return M.createElement("svg",{viewBox:"0 0 285 285",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:`M88.4,87.996c2.525-2.146,2.832-5.933,0.687-8.458C82.801,72.144,79.34,62.719,79.34,53c0-22.607,18.393-41,41-41 + c22.607,0,41,18.393,41,41c0,9.729-3.467,19.161-9.761,26.557c-2.148,2.523-1.843,6.311,0.681,8.458 + c1.129,0.961,2.511,1.431,3.886,1.431c1.698,0,3.386-0.717,4.572-2.111C168.858,77.77,173.34,65.576,173.34,53 + c0-29.225-23.775-53-53-53c-29.225,0-53,23.775-53,53c0,12.563,4.476,24.748,12.602,34.31C82.089,89.835,85.873,90.141,88.4,87.996 + z`}),M.createElement("path",{fill:"currentColor",d:`M120.186,41.201c13.228,0,23.812,8.105,27.313,19.879c0.761-2.562,1.176-5.271,1.176-8.08 + c0-15.649-12.685-28.335-28.335-28.335c-15.648,0-28.334,12.686-28.334,28.335c0,2.623,0.364,5.16,1.031,7.571 + C96.691,49.076,107.152,41.201,120.186,41.201z`}),M.createElement("path",{fill:"currentColor",d:`M234.21,169.856c-3.769-22.452-19.597-26.04-27.034-26.462c-2.342-0.133-4.516-1.32-5.801-3.282 + c-5.388-8.225-12.609-10.4-18.742-10.4c-4.405,0-8.249,1.122-10.449,1.932c-0.275,0.102-0.559,0.15-0.837,0.15 + c-0.87,0-1.701-0.47-2.163-1.262c-5.472-9.387-13.252-11.809-19.822-11.809c-3.824,0-7.237,0.82-9.548,1.564 + c-0.241,0.077-0.764,0.114-1.001,0.114c-1.256,0-2.637-1.03-2.637-2.376V69.753c0-11.035-8.224-16.552-16.5-16.552 + c-8.276,0-16.5,5.517-16.5,16.552v84.912c0,4.989-3.811,8.074-7.918,8.074c-2.495,0-4.899-1.138-6.552-3.678l-7.937-12.281 + c-3.508-5.788-8.576-8.188-13.625-8.189c-11.412-0.001-22.574,12.258-14.644,25.344l62.491,119.692 + c0.408,0.782,1.225,1.373,2.108,1.373h87.757c1.253,0,2.289-1.075,2.365-2.325l2.196-35.816c0.025-0.413,0.162-0.84,0.39-1.186 + C231.591,212.679,237.828,191.414,234.21,169.856z`})))}function Xo(s){return M.createElement("svg",{viewBox:"1 -10 511.99999 511",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M 405.5 150 C 405.5 232.566406 338.566406 299.5 256 299.5 C 173.433594 299.5 106.5 232.566406 106.5 150 C 106.5 67.433594 173.433594 0.5 256 0.5 C 338.566406 0.5 405.5 67.433594 405.5 150 Z M 405.5 150 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(25.882353%,75.294118%,88.627451%)",fillOpacity:1}}),M.createElement("path",{d:"M 512 342.921875 C 512 425.488281 445.066406 492.421875 362.5 492.421875 C 279.933594 492.421875 213 425.488281 213 342.921875 C 213 260.355469 279.933594 193.421875 362.5 193.421875 C 445.066406 193.421875 512 260.355469 512 342.921875 Z M 512 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,81.568627%,38.039216%)",fillOpacity:1}}),M.createElement("path",{d:"M 220.746094 295.308594 C 232.050781 298.039062 243.855469 299.5 256 299.5 C 321.917969 299.5 377.871094 256.835938 397.753906 197.613281 C 386.449219 194.878906 374.644531 193.421875 362.5 193.421875 C 296.582031 193.421875 240.628906 236.085938 220.746094 295.308594 Z M 220.746094 295.308594 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(28.627451%,74.117647%,56.470588%)",fillOpacity:1}}),M.createElement("path",{d:"M 299 342.921875 C 299 425.488281 232.066406 492.421875 149.5 492.421875 C 66.933594 492.421875 0 425.488281 0 342.921875 C 0 260.355469 66.933594 193.421875 149.5 193.421875 C 232.066406 193.421875 299 260.355469 299 342.921875 Z M 299 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(98.039216%,43.921569%,69.803922%)",fillOpacity:1}}),M.createElement("path",{d:"M 114.246094 197.613281 C 134.128906 256.835938 190.082031 299.5 256 299.5 C 268.144531 299.5 279.949219 298.039062 291.253906 295.308594 C 271.371094 236.085938 215.417969 193.421875 149.5 193.421875 C 137.355469 193.421875 125.550781 194.878906 114.246094 197.613281 Z M 114.246094 197.613281 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(68.627451%,48.235294%,77.647059%)",fillOpacity:1}}),M.createElement("path",{d:"M 213 342.921875 C 213 383.800781 229.414062 420.839844 256 447.828125 C 282.585938 420.839844 299 383.800781 299 342.921875 C 299 302.042969 282.585938 265.003906 256 238.015625 C 229.414062 265.003906 213 302.042969 213 342.921875 Z M 213 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(93.72549%,38.039216%,13.333333%)",fillOpacity:1}}),M.createElement("path",{d:"M 291.253906 295.320312 C 279.949219 298.046875 268.140625 299.5 256 299.5 C 243.859375 299.5 232.050781 298.046875 220.746094 295.320312 C 228.058594 273.542969 240.242188 254.015625 256 238.015625 C 271.757812 254.015625 283.941406 273.542969 291.253906 295.320312 Z M 291.253906 295.320312 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,100%,100%)",fillOpacity:1}})))}function w_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 365.445 365.445",...s},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"M146.7 162.775h-26.8a6.655 6.655 0 0 0-6.647 6.647v26.602a6.653 6.653 0 0 0 6.647 6.646h26.8a6.654 6.654 0 0 0 6.647-6.646v-26.602a6.655 6.655 0 0 0-6.647-6.647zM245.547 162.775h-26.801a6.653 6.653 0 0 0-6.646 6.647v26.602a6.652 6.652 0 0 0 6.646 6.646h26.801a6.654 6.654 0 0 0 6.646-6.646v-26.602a6.655 6.655 0 0 0-6.646-6.647z"})),M.createElement("path",{d:"M345.445 1.204H20c-11.046 0-20 8.954-20 20v323.037c0 11.045 8.954 20 20 20h325.445c11.045 0 20-8.955 20-20V21.204c0-11.045-8.953-20-20-20zM182.723 287.66c-57.955 0-104.937-46.981-104.937-104.937 0-57.957 46.982-104.938 104.937-104.938S287.66 124.767 287.66 182.723 240.678 287.66 182.723 287.66z",fill:"currentColor"}))}function C_e(s){return M.createElement("svg",{width:32,height:32,viewBox:"0 0 45.659 45.659",...s},M.createElement("path",{fill:"currentColor",d:"M30.619 27.309V7.781C30.619 3.49 27.124 0 22.833 0c-4.29 0-7.785 3.491-7.785 7.78v19.528a10.722 10.722 0 0 0-3.05 7.522c0 5.972 4.857 10.828 10.829 10.828 5.97 0 10.834-4.856 10.834-10.828 0-2.918-1.141-5.572-3.042-7.521zM22.825 42.66c-4.316 0-7.824-3.512-7.824-7.828 0-2.527 1.174-4.779 3.077-6.211V16.237h3.372c.552 0 1-.47 1-1.022 0-.553-.448-1.021-1-1.021h-3.372v-2.466h3.372c.552 0 1-.434 1-.986a.989.989 0 0 0-1-.986h-3.372V7.78c0-2.636 2.119-4.78 4.754-4.78 2.637 0 4.756 2.144 4.756 4.781v20.871c1.903 1.434 3.047 3.671 3.047 6.18 0 4.316-3.494 7.828-7.81 7.828z"}),M.createElement("path",{fill:"currentColor",d:"M25.334 30.463V18.632h-5.002v11.831a4.973 4.973 0 0 0-2.537 4.369 5.038 5.038 0 0 0 5.038 5.046 5.034 5.034 0 0 0 5.034-5.046c0-1.866-.982-3.495-2.533-4.369z"}))}function I_e(s){return M.createElement("svg",{viewBox:"0 0 297 297",...s},M.createElement("g",null,M.createElement("path",{fill:"currentColor",d:"m243.404,138.042c-5.775,0-10.458,4.683-10.458,10.458 0,46.564-37.883,84.446-84.446,84.446s-84.446-37.882-84.446-84.446 37.883-84.446 84.446-84.446c5.775,0 10.458-4.683 10.458-10.458s-4.683-10.457-10.458-10.457c-58.097,0-105.361,47.265-105.361,105.361s47.264,105.361 105.361,105.361 105.361-47.264 105.361-105.361c0-5.775-4.681-10.458-10.457-10.458z"}),M.createElement("path",{fill:"currentColor",d:"m142.963,121.344l-20.272-30.41c-3.203-4.807-9.695-6.104-14.502-2.9-4.805,3.202-6.104,9.695-2.9,14.502l20.279,30.422c-3.015,4.436-4.78,9.787-4.78,15.543 0,15.281 12.432,27.713 27.713,27.713 15.281,0 27.713-12.432 27.713-27.713 0-15.281-12.432-27.713-27.713-27.713-1.897-0.001-3.749,0.191-5.538,0.556zm12.335,27.156c0,3.748-3.05,6.798-6.798,6.798s-6.798-3.05-6.798-6.798 3.05-6.798 6.798-6.798 6.798,3.05 6.798,6.798z"}),M.createElement("path",{fill:"currentColor",d:"M148.5,0C66.617,0,0,66.617,0,148.5S66.617,297,148.5,297S297,230.383,297,148.5S230.383,0,148.5,0z M158.958,275.653 v-6.366c0-5.775-4.683-10.458-10.458-10.458c-5.775,0-10.458,4.683-10.458,10.458v6.366 c-62.027-5.056-111.64-54.668-116.695-116.695h6.366c5.775,0,10.458-4.683,10.458-10.458s-4.683-10.458-10.458-10.458h-6.366 c5.056-62.027,54.668-111.64,116.695-116.695v6.366c0,5.775,4.683,10.458,10.458,10.458c5.775,0,10.458-4.683,10.458-10.458v-6.366 c62.027,5.056,111.64,54.668,116.695,116.695h-6.366c-5.775,0-10.458,4.683-10.458,10.458s4.683,10.458,10.458,10.458h6.366 C270.598,220.985,220.985,270.598,158.958,275.653z"})))}function p_e(s){return M.createElement("svg",{viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M228.5 205.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H228.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M232.826 280.905c-.339 3.356-18.813-.782-20.919-1.06l-45.073-5.94-45.074-5.94-14.507-1.912c-1.456-.192-6.201-.055-6.412-2.147-.621-6.157 0-12.699 0-18.878v-43.5-82.076-5.13c0-2.551 5.184-1.015 6.412-.853l35.438 4.67 83.723 11.035c1.457.192 6.201.055 6.412 2.147.169 1.673 0 3.451 0 5.13v144.454c0 6.448 10 6.448 10 0V136.451v-5.13c0-7.619-6.137-10.793-12.673-11.655l-28.531-3.76-88.411-11.652-9.897-1.304c-6.555-.864-12.473 4.9-12.473 11.38v144.832c0 2.023-.071 4.04.132 6.053.717 7.111 6.606 9.563 12.759 10.374l76.827 10.125 39.896 5.259 9.697 1.278c7.063.931 12.011-4.778 12.673-11.346.648-6.415-9.358-6.352-9.999 0z",fill:"currentColor"}))}function I4(s){return M.createElement("svg",{width:361,height:361,viewBox:"0 0 361 361",...s},M.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9zM265.732 265.178c.584 2.887-1.629 5.228-4.942 5.228H103.457c-3.313 0-6.474-2.341-7.058-5.228L75.24 130.633c-.584-2.887 1.628-5.228 4.942-5.228h157.333c3.313 0 6.474 2.34 7.058 5.228l21.159 134.545z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),M.createElement("path",{d:"M247.194 199.667h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5h-6.639c-2.726 0-5 2.274-5 5s2.275 5 5 5z",fill:"currentColor"}))}const A_e={"type-Device type":"Device type","type-airCondition":"Air conditioner","type-blind":"Blinds","type-blindButtons":"Blind controlled by buttons","type-button":"Button","type-buttonSensor":"Button with feedback","type-camera":"Camera","type-chart":"Chart","type-cie":"CIE color light","type-ct":"Color temperature","type-dimmer":"Dimmer","type-door":"Door","type-fireAlarm":"Fire alarm","type-floodAlarm":"Flood alarm","type-gate":"Gate","type-hue":"HUE light","type-humidity":"Humidity","type-illuminance":"Illuminance","type-image":"Image","type-info":"Information","type-instance":"Instance","type-light":"Light","type-location":"Position","type-locationOne":"Position as one state","type-lock":"Lock","type-media":"Media-player","type-motion":"Motion sensor","type-rgb":"RGB light","type-rgbSingle":"R,G,B light - single states","type-rgbwSingle":"R,G,B,W light - single states","type-slider":"Slider","type-socket":"Socket","type-temperature":"Temperature","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Vacuum cleaner","type-valve":"Valve","type-volume":"Volume","type-volumeGroup":"Volume group","type-warning":"Warning","type-weatherCurrent":"Current weather","type-weatherForecast":"Weather forecast","type-window":"Window sensor","type-windowTilt":"Window tilt sensor"},m_e={"type-Device type":"Gerätetyp","type-airCondition":"Klimaanlage","type-blind":"Jalousien","type-blindButtons":"Jalousie über Tasten gesteuert","type-button":"Taste","type-buttonSensor":"Taste mit Rückmeldung","type-camera":"Kamera","type-chart":"Diagramm","type-cie":"CIE Farblicht","type-ct":"Farbtemperatur","type-dimmer":"Dimmer","type-door":"Türsensor","type-fireAlarm":"Feueralarm","type-floodAlarm":"Wasseralarm","type-gate":"Tor-Steuerung","type-hue":"HUE-Licht","type-humidity":"Feuchtigkeit","type-illuminance":"Beleuchtungsstärke","type-image":"Bild","type-info":"Information","type-instance":"Instanz","type-light":"Licht","type-location":"Position","type-locationOne":"Position als ein Zustand","type-lock":"Schloss","type-media":"Mediaplayer","type-motion":"Bewegungssensor","type-rgb":"RGB-Licht","type-rgbSingle":"R,G,B-Licht Einzelwerte","type-rgbwSingle":"R,G,B,W-Licht Einzelwerte","type-slider":"Schieberegler","type-socket":"Steckdose","type-temperature":"Temperatur","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Staubsauger","type-valve":"Ventil","type-volume":"Lautstärke","type-volumeGroup":"Lautstärke-Gruppe","type-warning":"Warnung","type-weatherCurrent":"Aktuelle Wetterlage","type-weatherForecast":"Wettervorhersage","type-window":"Fenstersensor","type-windowTilt":"Fensterkippung-Sensor"},O_e={"type-Device type":"Тип устройства","type-airCondition":"Кондиционер","type-blind":"Рольставни/Жалюзи","type-blindButtons":"Жалюзи управляющиеся кнопками","type-button":"Кнопка","type-buttonSensor":"Кнопка с обратной связью","type-camera":"Камера","type-chart":"Диаграмма","type-cie":"CIE свет","type-ct":"Цветовая температура","type-dimmer":"Диммер","type-door":"Датчик положения двери","type-fireAlarm":"Датчик дыма","type-floodAlarm":"Датчик затопления","type-gate":"Ворота","type-hue":"HUE свет","type-humidity":"Влажность","type-illuminance":"Освещенность","type-image":"Изображение","type-info":"Информация","type-instance":"Инстанция","type-light":"Свет","type-location":"Местоположение","type-locationOne":"Позиция в одном состоянии","type-lock":"Замок","type-media":"Медиа-плейер","type-motion":"Датчик движения","type-rgb":"RGB свет","type-rgbSingle":"R,G,B как отдельные значение","type-rgbwSingle":"R,G,B,W как отдельные значение","type-slider":"Ползунок","type-socket":"Розетка","type-temperature":"Температура","type-thermostat":"Термостат","type-url":"URL","type-vacuumCleaner":"Пылесос","type-valve":"Вентиль","type-volume":"Громкость","type-volumeGroup":"Группа громкости","type-warning":"Предупреждение","type-weatherCurrent":"Актуальная погода","type-weatherForecast":"Прогноз погоды","type-window":"Датчик открытия окна","type-windowTilt":"Датчик наклона окна"},E_e={"type-Device type":"Tipo de dispositivo","type-airCondition":"Ar condicionado","type-blind":"persianas","type-blindButtons":"Persiana controlada por botões","type-button":"botão","type-buttonSensor":"Sensor de botão","type-camera":"câmera","type-chart":"Gráfico","type-cie":"Luz colorida CIE","type-ct":"Temperatura de cor","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"alarme de incêndio","type-floodAlarm":"alarme de inundação","type-gate":"portão","type-hue":"Luz HUE","type-humidity":"umidade","type-illuminance":"Iluminância","type-image":"imagem","type-info":"informação","type-instance":"exemplo","type-light":"luz","type-location":"localização","type-locationOne":"Posição como um estado","type-lock":"trancar","type-media":"mídia","type-motion":"movimento","type-rgb":"Luz RGB","type-rgbSingle":"Luz RGB única","type-rgbwSingle":"RGBW como valor único","type-slider":"controle deslizante","type-socket":"soquete","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirador de pó","type-valve":"válvula","type-volume":"volume","type-volumeGroup":"grupo de volume","type-warning":"aviso","type-weatherCurrent":"clima atual","type-weatherForecast":"previsão do tempo","type-window":"janela","type-windowTilt":"inclinação da janela"},f_e={"type-Device type":"Typ urządzenia","type-airCondition":"Klimatyzator","type-blind":"żaluzje","type-blindButtons":"Roleta sterowana przyciskami","type-button":"przycisk","type-buttonSensor":"Czujnik przycisku","type-camera":"kamera","type-chart":"Wykres","type-cie":"Światło kolorowe CIE","type-ct":"Temperatura barwowa","type-dimmer":"opornik","type-door":"drzwi","type-fireAlarm":"alarm pożarowy","type-floodAlarm":"alarm przeciwpowodziowy","type-gate":"brama","type-hue":"Światło HUE","type-humidity":"wilgotność","type-illuminance":"Natężenie oświetlenia","type-image":"obraz","type-info":"Informacje","type-instance":"przykład","type-light":"światło","type-location":"lokalizacja","type-locationOne":"Pozycja jako państwa","type-lock":"zamek","type-media":"głoska bezdźwięczna","type-motion":"ruch","type-rgb":"Światło RGB","type-rgbSingle":"Pojedyncze światło RGB","type-rgbwSingle":"RGBW jako pojedyncza wartość","type-slider":"suwak","type-socket":"gniazdo","type-temperature":"temperatura","type-thermostat":"termostat","type-url":"Adres URL","type-vacuumCleaner":"Odkurzacz","type-valve":"zawór","type-volume":"tom","type-volumeGroup":"grupa woluminów","type-warning":"ostrzeżenie","type-weatherCurrent":"aktualna pogoda","type-weatherForecast":"prognoza pogody","type-window":"okno","type-windowTilt":"pochylenie okna"},x_e={"type-Device type":"Type d'appareil","type-airCondition":"Climatiseur","type-blind":"stores","type-blindButtons":"Store commandé par boutons","type-button":"bouton","type-buttonSensor":"Capteur de bouton","type-camera":"caméra","type-chart":"Graphique","type-cie":"lumière colorée CIE","type-ct":"Température de couleur","type-dimmer":"variateur","type-door":"porte","type-fireAlarm":"alarme incendie","type-floodAlarm":"alarme d'inondation","type-gate":"grille","type-hue":"Lumière HUE","type-humidity":"humidité","type-illuminance":"Éclairement","type-image":"image","type-info":"informations","type-instance":"exemple","type-light":"lumière","type-location":"emplacement","type-locationOne":"Position en tant qu'État","type-lock":"verrouillage","type-media":"médias","type-motion":"mouvement","type-rgb":"lumière RVB","type-rgbSingle":"Lumière RVB simple","type-rgbwSingle":"RGBW comme valeur unique","type-slider":"curseur","type-socket":"douille","type-temperature":"température","type-thermostat":"thermostat","type-url":"URL","type-vacuumCleaner":"Aspirateur","type-valve":"soupape","type-volume":"volume","type-volumeGroup":"groupe de volumes","type-warning":"avertissement","type-weatherCurrent":"météo actuelle","type-weatherForecast":"prévisions météorologiques","type-window":"fenêtre","type-windowTilt":"inclinaison de la fenêtre"},__e={"type-Device type":"Tipo di dispositivo","type-airCondition":"Condizionatore d'aria","type-blind":"tende","type-blindButtons":"Tenda controllata da pulsanti","type-button":"pulsante","type-buttonSensor":"Sensore del pulsante","type-camera":"telecamera","type-chart":"Grafico","type-cie":"Luce colorata CIE","type-ct":"Temperatura del colore","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"allarme antincendio","type-floodAlarm":"allarme allagamento","type-gate":"cancello","type-hue":"Luce HUE","type-humidity":"umidità","type-illuminance":"Illuminamento","type-image":"immagine","type-info":"informazioni","type-instance":"esempio","type-light":"leggero","type-location":"posizione","type-locationOne":"Posizione come stato","type-lock":"serratura","type-media":"media","type-motion":"movimento","type-rgb":"luce RGB","type-rgbSingle":"Luce RGB singola","type-rgbwSingle":"RGBW come valore singolo","type-slider":"cursore","type-socket":"PRESA","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirapolvere","type-valve":"valvola","type-volume":"volume","type-volumeGroup":"gruppo di volumi","type-warning":"avvertimento","type-weatherCurrent":"meteo attuale","type-weatherForecast":"previsioni del tempo","type-window":"finestra","type-windowTilt":"inclinazione della finestra"},S_e={"type-Device type":"Apparaattype","type-airCondition":"Airconditioner","type-blind":"jaloezieën","type-blindButtons":"Jaloezie bediend door knoppen","type-button":"knop","type-buttonSensor":"Knopsensor","type-camera":"camera","type-chart":"Grafiek","type-cie":"CIE-kleurenlicht","type-ct":"Kleurtemperatuur","type-dimmer":"dimmer","type-door":"deur","type-fireAlarm":"brandalarm","type-floodAlarm":"overstromingsalarm","type-gate":"hek","type-hue":"HUE-licht","type-humidity":"vochtigheid","type-illuminance":"Verlichtingssterkte","type-image":"afbeelding","type-info":"informatie","type-instance":"aanleg","type-light":"licht","type-location":"locatie","type-locationOne":"Positie als staat","type-lock":"slot","type-media":"media","type-motion":"beweging","type-rgb":"RGB-licht","type-rgbSingle":"RGB-licht enkel","type-rgbwSingle":"RGBW als enkele waarde","type-slider":"schuifregelaar","type-socket":"stopcontact","type-temperature":"temperatuur","type-thermostat":"thermostaat","type-url":"URL","type-vacuumCleaner":"Stofzuiger","type-valve":"ventiel","type-volume":"volume","type-volumeGroup":"volumegroep","type-warning":"waarschuwing","type-weatherCurrent":"huidige weersomstandigheden","type-weatherForecast":"weersvoorspelling","type-window":"raam","type-windowTilt":"raamkanteling"},k_e={"type-Device type":"Тип пристрою","type-airCondition":"Кондиціонер","type-blind":"жалюзі","type-blindButtons":"Штора керується кнопками","type-button":"кнопку","type-buttonSensor":"Датчик кнопки","type-camera":"камера","type-chart":"Діаграма","type-cie":"Кольорове світло CIE","type-ct":"Колірна температура","type-dimmer":"диммер","type-door":"двері","type-fireAlarm":"пожежна сигналізація","type-floodAlarm":"сигналізація про повінь","type-gate":"ворота","type-hue":"світло HUE","type-humidity":"вологість","type-illuminance":"Освітленість","type-image":"зображення","type-info":"інформація","type-instance":"екземпляр","type-light":"світло","type-location":"розташування","type-locationOne":"Позиція як держави","type-lock":"замок","type-media":"ЗМІ","type-motion":"руху","type-rgb":"RGB світло","type-rgbSingle":"Одиночне світло RGB","type-rgbwSingle":"RGBW як одне значення","type-slider":"повзунок","type-socket":"гніздо","type-temperature":"температура","type-thermostat":"термостат","type-url":"URL","type-vacuumCleaner":"Пилосос","type-valve":"клапан","type-volume":"обсяг","type-volumeGroup":"група обсягів","type-warning":"УВАГА","type-weatherCurrent":"поточна погода","type-weatherForecast":"прогноз погоди","type-window":"вікно","type-windowTilt":"нахил вікна"},Y_e={"type-Device type":"设备类型","type-airCondition":"空调","type-blind":"百叶窗","type-blindButtons":"按钮控制百叶窗","type-button":"按钮","type-buttonSensor":"按钮传感器","type-camera":"相机","type-chart":"图表","type-cie":"CIE色光","type-ct":"色温","type-dimmer":"调光器","type-door":"门","type-fireAlarm":"火灾报警","type-floodAlarm":"洪水警报","type-gate":"门","type-hue":"色调灯","type-humidity":"湿度","type-illuminance":"照度","type-image":"图像","type-info":"信息","type-instance":"实例","type-light":"光","type-location":"地点","type-locationOne":"作为一个国家的地位","type-lock":"锁","type-media":"媒体","type-motion":"运动","type-rgb":"RGB灯","type-rgbSingle":"RGB灯单","type-rgbwSingle":"RGBW 作为单一值","type-slider":"滑块","type-socket":"插座","type-temperature":"温度","type-thermostat":"恒温器","type-url":"网址","type-vacuumCleaner":"吸尘器","type-valve":"阀门","type-volume":"体积","type-volumeGroup":"卷组","type-warning":"警告","type-weatherCurrent":"当前天气","type-weatherForecast":"天气预报","type-window":"窗户","type-windowTilt":"窗户倾斜"};let Sl=!1;function p4(){Sl||(Sl=!0,h.extendTranslations({en:A_e,de:m_e,ru:O_e,pt:E_e,pl:f_e,fr:x_e,it:__e,nl:S_e,uk:k_e,"zh-cn":Y_e}))}const kl={[B.Types.airCondition]:EL,[B.Types.blind]:_l,[B.Types.blindButtons]:_l,[B.Types.button]:z_e,[B.Types.buttonSensor]:L_e,[B.Types.camera]:n_e,[B.Types.chart]:s_e,[B.Types.image]:OL,[B.Types.dimmer]:mL,[B.Types.door]:T_e,[B.Types.fireAlarm]:fl,"sensor.alarm.fire":fl,[B.Types.floodAlarm]:xl,"sensor.alarm.flood":xl,[B.Types.gate]:d_e,[B.Types.humidity]:D_e,[B.Types.illuminance]:g_e,[B.Types.info]:AL,[B.Types.light]:pL,[B.Types.lock]:IL,[B.Types.location]:CL,[B.Types.locationOne]:wL,[B.Types.media]:zL,[B.Types.motion]:h_e,[B.Types.ct]:UM,[B.Types.rgb]:Xo,[B.Types.rgbSingle]:Xo,[B.Types.rgbwSingle]:j_e,[B.Types.hue]:UM,[B.Types.cie]:Xo,[B.Types.slider]:hL,[B.Types.socket]:w_e,[B.Types.temperature]:C_e,[B.Types.thermostat]:I_e,[B.Types.vacuumCleaner]:y_e,[B.Types.volume]:DL,[B.Types.volumeGroup]:dL,[B.Types.window]:p_e,[B.Types.windowTilt]:I4,[B.Types.weatherCurrent]:Ol,[B.Types.weatherForecast]:Ol,[B.Types.warning]:QM,[B.Types.unknown]:TL,[B.Types.instance]:yL,invalid:QM,hub3:jL,node:gL,hub5:LL,controller:NL},Dr={width:32,height:32};function v_e(s){const[e,t]=M.useState(!1);if(f.useEffect(()=>{s.title&&!e&&(p4(),t(!0))},[s.title,e]),!e&&s.title)return M.createElement(j.Box,{style:{...Dr,...s.style||void 0},className:s.className,sx:s.sx});const i=s.type||(s.src?Object.keys(kl).find(n=>s.src===n):void 0);if(!i&&s.src)return M.createElement(me,{style:Dr,...s,title:s.title===!0?void 0:s.title,src:s.src});const r=i&&kl[i];if(!r)return i?M.createElement("span",{style:{...Dr,...s.style||void 0}},i[0].toUpperCase()):null;const o=M.createElement(r,{style:{...Dr,...s.style||void 0},onClick:s.onClick,className:s.className,sx:s.sx});return s.title?M.createElement(j.Tooltip,{slotProps:{popper:{sx:{pointerEvents:"none"}}},title:s.title===!0?h.t(`type-${i}`):s.title},M.createElement("div",{style:{display:"flex"}},o)):o}const Et={itemChildrenWrapper:{display:"flex",width:"100%",justifyContent:"space-between"},type:{marginTop:10},selectIcon:{paddingRight:8,verticalAlign:"middle",width:20,height:20},selectText:{verticalAlign:"middle"},iconWrapper:{display:"flex",alignItems:"center"},iconStyle:{width:16,height:16,margin:"0 3px"},emptyIcon:{width:16,height:16,margin:"0 3px"}};function Z3e(s){const[e,t]=M.useState({}),[i,r]=M.useState([]);return f.useEffect(()=>{const o={};Object.keys(B.Types).filter(a=>{var c,l;return(!s.supportedDevices||((c=s.supportedDevices)==null?void 0:c.includes(a)))&&!((l=s.unsupportedDevices)!=null&&l.includes(a))}).forEach(a=>o[a]=h.t(`type-${B.Types[a]}`));const n=Object.keys(o);n.sort((a,c)=>o[a]===o[c]?0:o[a].localeCompare(o[c],"de")),p4(),r(n),t(o)},[s.supportedDevices,s.unsupportedDevices]),i?M.createElement(j.FormControl,{style:{...Et.type,...s.style},sx:s.sx,variant:"standard",error:!!s.error},M.createElement(j.InputLabel,null,s.label||h.t("type-Device type")),M.createElement(j.Select,{variant:"standard",disabled:!!s.disabled,value:s.value,onChange:o=>s.onChange(o.target.value)},i.map(o=>{var n;return M.createElement(j.MenuItem,{key:B.Types[o],value:B.Types[o]},M.createElement("div",{style:Et.itemChildrenWrapper},M.createElement("div",null,M.createElement(v_e,{type:B.Types[o],style:{...Et.selectIcon,color:s.themeType==="dark"?"#FFFFFF":"#000"}}),M.createElement("span",{style:Et.selectText},e[o])),(n=s.showApplications)!=null&&n.TYPE_OPTIONS[o]?M.createElement("div",{style:Et.iconWrapper},Object.keys(s.showApplications.TYPE_OPTIONS[o]).map(a=>s.showApplications.TYPE_OPTIONS[o][a]?M.createElement(me,{key:a,style:Et.iconStyle,src:s.showApplications.ICONS_TYPE[a]}):M.createElement("div",{key:a,style:Et.emptyIcon}))):null))}))):M.createElement(j.Box,{style:{...Et.type,...s.style},sx:s.sx})}function b_e(s){return Z({attr:{version:"1",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"circle",attr:{fill:"#B2EBF2",cx:"32",cy:"24",r:"9"},child:[]},{tag:"path",attr:{fill:"#4DD0E1",d:"M32,12c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C44,17.4,38.6,12,32,12z M32,32 c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S36.4,32,32,32z"},child:[]},{tag:"g",attr:{fill:"#3F51B5"},child:[{tag:"polygon",attr:{points:"25.4,22 19.8,5.1 13.6,27.7 11.4,22 4,22 4,26 8.6,26 14.4,40.3 20.2,18.9 22.6,26 30,26 30,22"},child:[]},{tag:"circle",attr:{cx:"32",cy:"24",r:"4"},child:[]}]}]})(s)}function Q_e(s){return Z({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M4.428 2.727l3.335 3.335c-.486.07-.903.276-1.32.624L.886 12.383c-1.181 1.18-1.181 3.194 0 4.375a2.41 2.41 0 0 0 1.598.834l17.088 3.681-3.335-3.333c.486-.07.903-.278 1.32-.626l5.557-5.695c1.181-1.181 1.181-3.196 0-4.377a2.411 2.411 0 0 0-1.598-.833zM11.653 6.2c.694 0 1.25.486 1.25 1.18 0 .695-.486 1.251-1.181 1.251-.695 0-1.25-.485-1.25-1.18s.555-1.251 1.18-1.251zm1.51 3.792c.049-.006.088.046.088.098-.139.694-.695 1.181-1.39 1.181-.694 0-1.32-.487-1.46-1.112 0 0 .002-.07.071 0 .487.278.972.348 1.32.278.346 0 .833-.07 1.32-.416a.092.092 0 0 1 .05-.029zm.723 2.511c.058.013.06.106.06.158-.209.903-.973 1.666-1.946 1.666a2.167 2.167 0 0 1-2.084-1.528c-.07-.07 0-.138.138-.138.695.347 1.39.416 1.877.416.486 0 1.18-.14 1.875-.556.035-.017.06-.022.08-.018zm.597 3.018c.049-.013.087.09.087.195-.278 1.181-1.25 2.085-2.5 2.155-1.251 0-2.293-.835-2.57-1.946 0-.139.068-.278.207-.209.834.486 1.737.556 2.362.556s1.529-.208 2.362-.694c.018-.035.036-.053.052-.057z"},child:[]}]})(s)}function U_e(s){return Z({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13 5l.855 3.42 3.389-.971 1.501 2.6-2.535 2.449 2.535 2.451-1.5 2.6-3.39-.971-.855 3.422h-3l-.855-3.422-3.39.971-1.501-2.6 2.535-2.451-2.534-2.449 1.5-2.6 3.39.971.855-3.42h3m0-2h-3c-.918 0-1.718.625-1.939 1.516l-.354 1.412-1.4-.4c-.184-.053-.369-.078-.552-.078-.7 0-1.368.37-1.731 1l-1.5 2.6c-.459.796-.317 1.802.342 2.438l1.047 1.011-1.048 1.015c-.66.637-.802 1.643-.343 2.438l1.502 2.6c.363.631 1.031 1 1.731 1 .183 0 .368-.025.552-.076l1.399-.401.354 1.415c.222.885 1.022 1.51 1.94 1.51h3c.918 0 1.718-.625 1.939-1.516l.354-1.414 1.399.4c.184.053.369.077.552.077.7 0 1.368-.37 1.731-1l1.5-2.6c.459-.796.317-1.8-.342-2.438l-1.047-1.013 1.047-1.013c.66-.637.801-1.644.342-2.438l-1.5-2.6c-.365-.631-1.031-1-1.732-1-.184 0-.368.025-.551.076l-1.4.401-.354-1.413c-.22-.884-1.02-1.509-1.938-1.509zM11.5 10.5c1.104 0 2 .895 2 2 0 1.104-.896 2-2 2s-2-.896-2-2c0-1.105.896-2 2-2m0-1c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3z"},child:[]}]})(s)}function $_e(s){return Z({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.707 17.707 13.414 12 7.707 6.293 6.293 7.707 10.586 12l-4.293 4.293zM15 6h2v12h-2z"},child:[]}]})(s)}function P_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M376 211H256V16L136 301h120v195z"},child:[]}]})(s)}function W_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32l-64 96 80 16-16 80 64-96-80-16 16-80zm-96 217c-1.9 0-9.8 3-15.8 6.7-2.8 1.7-5.3 3.5-7.2 4.8v119c1.9 1.3 4.4 3.1 7.2 4.8 6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 5.9-3.7 10.6-7.3 10.6-7.3l2.5-2H201V265h-12.1l-2.5-2s-4.7-3.6-10.6-7.3c-6-3.7-13.9-6.7-15.8-6.7zm192 0c-1.9 0-9.8 3-15.8 6.7-5.9 3.7-10.6 7.3-10.6 7.3l-2.5 2H311v110h12.1l2.5 2s4.7 3.6 10.6 7.3c6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 2.8-1.7 5.3-3.5 7.2-4.8v-119c-1.9-1.3-4.4-3.1-7.2-4.8-6-3.7-13.9-6.7-15.8-6.7zm-133 16v110h14V265h-14zm32 0v110h42V265h-42zM95.5 311c-18.8 0-36.6 9.2-49.94 22.7C32.22 347.1 23 365 23 384v106h18V384c0-13 6.78-27.1 17.32-37.7C68.85 335.8 82.8 329 95.5 329H119v-18H95.5zm297.5 0v18h22.9c13.1 0 27.1 6.8 37.7 17.4C464.2 357 471 371 471 384v106h18V384c0-19-9.2-37-22.7-50.4-13.4-13.4-31.4-22.6-50.4-22.6H393z"},child:[]}]})(s)}function B_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M20.127 52.803v58.986L250.46 245.153c26.367-28.823 70.087-36.533 105.313-16.195 35.29 20.374 50.465 62.207 38.567 99.503l101.648 58.855-64.728-74.65 35.638-37.352-57.27-7.687 84.72-86.92-125.71 33.186 12.995-120.208-66.578 96.363-27.448-80.593-16.353 88.77L20.127 52.803zm0 105.12l-.008.018.007.005v-.02zm0 .022l-.002 87.582 155.344 89.95-89.94 33.287h135.493l-63.658 99.87 116.22-70.083 15.77 85.852 38.543-80.01 63.66 87.018-5.853-87.047 90.54 17.268-102.4-59.198c-26.546 26.964-68.89 33.744-103.183 13.945-34.322-19.816-49.62-59.928-39.49-96.424L20.127 157.945zm316.6 119.442c-.938-.003-1.874.027-2.805.092-12.42.86-24.164 7.707-30.9 19.375-10.78 18.67-4.455 42.27 14.214 53.047 18.67 10.78 42.27 4.455 53.047-14.214 10.78-18.67 4.454-42.27-14.215-53.047-6.125-3.536-12.78-5.23-19.34-5.253z"},child:[]}]})(s)}function J_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M33.125 19.406L135.5 128.22l81-23.157 18.72-5.344-7.564 17.936-46.125 109.78 134.282-70 26.157-13.655L328.436 170 256.5 309.25l91.25-57.125 22.97-14.375-9.22 25.47-34.625 95.624 71-36.375 21.188-10.845L410.906 334l-33.937 93.063 45.124-6.688 4.53-.656 3.313 3.155 64.313 61.47-30.5-80.5 23.313-46.908-72.5 39.532 51.062-141.158-91.188 47.47 72.344-142.813-128.217 82.81L421.875 70.063 239.03 168.69l30.44-99.563-103.845 25.25-132.5-74.97zM18.155 30.78l77.876 108.25-31.124 75.532 94.125-46.78-98.905 166.812 190.25-99.656-101.03 185.406 140.25-79.063-46.94 102.22 106.5-53-45.655 92.28 86.5-14.467 93.47 31.562-63.158-60.344-56.125 8.314-15.53 2.312 5.374-14.75 31.158-85.437-70.907 36.31-21.124 10.814 8.094-22.313 33.47-92.436-97.22 60.875-28.938 18.092L224.22 331l74.06-143.344-131.06 68.313-22.97 12 10.03-23.908 48.626-115.687-67.75 19.375-5.5 1.563-3.875-4.157L18.157 30.78z"},child:[]}]})(s)}function R_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M288.3 13.4c-12.3-.01-23 6.49-27.3 15.31l-2.9 5.95-6.6-1.01c-5.5-.85-11.3-1.32-17.1-1.32-18.8 0-35.7 4.5-47.3 11.14-11.5 6.64-16.9 14.59-16.9 22 0 7.42 5.4 15.37 16.9 22 11.6 6.64 28.5 11.13 47.3 11.13 7.5-.02 14.9-.74 21.8-2.13l6.3-1.23 3.2 5.46c5.6 9.2 23.7 18.2 44.7 18.2 13.9 0 26.4-3.6 34.8-8.8 8.4-5.2 12.2-11.23 12.2-16.9 0-5.09-3-10.48-10-15.44-6.9-4.97-17.6-8.87-30-9.95l-18.3-1.59 12.5-13.49c4.1-4.41 6.1-9.6 6.1-14.87 0-12.88-12.4-24.46-29.4-24.46zM152.2 65.46C84.8 102.3 39 173.9 39 256c0 32.1 7 62.6 19.54 90 5.95-7.9 10.48-13.4 12.67-16C62.05 307.2 57 282.2 57 256c0-74 40.27-138.5 100.1-172.78-3.1-5.39-4.9-11.34-4.9-17.74v-.02zm210.7 1.75c7.5 6.93 12.5 15.9 12.5 25.99 0 1.14-.1 2.27-.2 3.38C423.7 132.9 455 190.7 455 256c0 23.7-4.2 46.5-11.8 67.6l18.3 2.2c7.4-21.9 11.5-45.4 11.5-69.8 0-80.8-44.4-151.5-110.1-188.79zm58.6 270.49c-11.1.2-23 1.1-35.9 3.1l-.5.1-.5.1c-25.8 7.3-37.1 15.2-46.4 24.7l-2.2 2.2-.3 3.1c-3.4 29.6-5.8 60 0 91.8l1.3 6.8 6.8.6c30.6 2.6 58.7 1.4 86.2 0l1-.1.9-.2c18.5-5.2 34.4-12.8 46.4-24.6l1.7-1.6.6-2.2c10-33.4 3.4-63.8.4-92.7l-.8-7.4-7.3-.7c-16.2-1.5-32.8-3.2-51.4-3zM79.62 348.2c-4.94 6.1-11.43 14.5-18.58 25.6-12.29 18.9-22.53 42.4-20.51 54.9 1.43 8.8 6.97 19.6 14.51 27.6 7.54 7.9 16.69 12.8 24.58 12.8 7.87 0 17.03-4.9 24.58-12.8 7.5-8 13.1-18.8 14.5-27.6 2-12.5-8.2-36-20.5-54.9-7.15-11-13.64-19.5-18.58-25.6zM427 355.7c1.7 0 3.3 0 5 .1 5.4.1 10.7.4 16 .8-5.9 3.4-12.1 6.8-19.5 9.9l-2.4.2c-19.5 1.4-37.7.3-55.4-2 4.7-2 10.5-4 18.3-6.2 13.8-2.2 26.3-2.9 38-2.8zm38 11.6c2.8 22.9 5 44.5-1 66.6-7 6.3-16 11.4-27 15.4 3-22.5 2-44.8-.5-66.6 11.3-5 20.2-10.2 28.5-15.4zm-112.2 13.1c20.7 3.2 42.3 5.4 65.8 4.5 2.5 23 3.5 45.6-.4 67.8-21.5 1-43.1 1.5-65.8-.1-3.5-24-2.2-47.9.4-72.2zm-216.4 34.7c.9 5.5 1 11 .1 16.4-.3 1.6-.6 3.3-1 4.9C170 459.5 211.4 473 256 473c21.6 0 42.5-3.2 62.3-9.1l-2-18.2c-19 6-39.3 9.3-60.3 9.3-44.9 0-86.3-14.8-119.6-39.9z"},child:[]}]})(s)}function Yl(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M140 29.92c-31.4 0-59.89 3.25-79.89 8.25-9.9 2.5-17.8 5.51-22.4 8.25-3.2 1.87-4.1 3.15-4.5 3.58.4.43 1.3 1.71 4.5 3.58 4.6 2.74 12.5 5.75 22.4 8.25 20 5 48.49 8.25 79.89 8.25h5.7c5.3-2 11.1-3.78 17.6-5.4 20.3-5.08 46.5-8.42 75.8-9.36 1.2-.57 2.3-1.14 3.2-1.7 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zm232 0c-31.4 0-59.9 3.25-79.8 8.25-10 2.5-17.9 5.51-22.5 8.25-3.1 1.87-4.1 3.15-4.5 3.58.4.43 1.4 1.71 4.5 3.58.9.56 2 1.13 3.2 1.7 29.3.94 55.5 4.28 75.8 9.36 6.5 1.62 12.3 3.4 17.6 5.4h5.7c31.4 0 59.9-3.25 79.8-8.25 10-2.5 17.9-5.51 22.5-8.25 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zM33.01 71.44V369.9c0 4.3 1.8 8 6.8 12.3 5 4.3 13.1 8.5 23.3 11.9 15.3 5.1 35 8.5 55.89 9.8V278.3l-16.5 28.6-7.79-4.5c-27.4-15.9-44.3-45.3-44.4-77v-9h52.59c-.6 2.6-.9 5.3-.9 8.1 0 13.1 6.8 24.8 17 31.7v-63.4c-1.9 1.3-3.6 2.7-5.2 4.2l-25.99-45.1 7.8-4.5c7.49-4.2 15.29-7.3 23.39-9.3V87.61c-24.19-1.08-45.99-4.01-63.19-8.32-8.9-2.21-16.5-4.76-22.8-7.85zm445.99 0c-6.3 3.09-14 5.63-22.8 7.84-17.2 4.31-39 7.24-63.2 8.32v50.6c8.1 2 16 5.1 23.4 9.3l7.7 4.5-4.4 7.8-21.5 37.2c-1.6-1.5-3.3-2.9-5.2-4.2v63.4c10.2-6.9 17-18.6 17-31.7 0-2.8-.3-5.5-.9-8.1h50.8v9c0 31.8-17 61.1-44.4 77l-7.8 4.5-14.7-25.5v122.5c20.9-1.3 40.7-4.7 55.9-9.8 10.2-3.4 18.3-7.6 23.3-11.9 5-4.3 6.8-8 6.8-12.3zM256 73c-34.7 0-66.2 3.57-88.3 9.1-11.1 2.77-19.8 6.09-25.1 9.19-4.3 2.58-5.3 4.42-5.5 4.71.2.29 1.2 2.12 5.5 4.7 5.3 3.1 14 6.4 25.1 9.2 22.1 5.5 53.6 9.1 88.3 9.1 34.7 0 66.2-3.6 88.3-9.1 11.1-2.8 19.8-6.1 25.1-9.2 4.3-2.58 5.3-4.41 5.5-4.7-.2-.29-1.2-2.13-5.5-4.71-5.3-3.1-14-6.42-25.1-9.19-22.1-5.53-53.6-9.1-88.3-9.1zm118.9 23c.1.1.1.1.1 0s0-.1-.1 0zm-237.8 0c-.1-.1-.1-.1-.1 0s0 .1.1 0zm-.1 22.1V448c0 5 2.2 9.3 7.9 14.2 5.6 4.8 14.7 9.5 25.9 13.3 22.6 7.5 54 11.5 85.2 11.5 31.2 0 62.6-4 85.2-11.5 11.2-3.8 20.3-8.5 25.9-13.3 5.7-4.9 7.9-9.2 7.9-14.2V118.1c-7.2 3.7-16 6.6-26.3 9.3-24.2 6-56.7 9.6-92.7 9.6s-68.5-3.6-92.7-9.6c-10.3-2.7-19.1-5.6-26.3-9.3zM256 191c16.8 0 33.5 4.4 48.5 13l7.8 4.5-4.5 7.8-24.1 41.6c-7.3-6.7-17-10.9-27.7-10.9s-20.4 4.2-27.7 10.9l-28.6-49.4 7.8-4.5c15-8.7 31.7-13 48.5-13zm0 74c12.8 0 23 10.2 23 23s-10.2 23-23 23-23-10.2-23-23 10.2-23 23-23zm-98 15h57.8c-.5 2.6-.8 5.3-.8 8 0 18.1 12 33.7 28.5 39l-29.2 50.5-7.8-4.5c-30-17.3-48.5-49.4-48.5-84zm138.2 0H352v9c0 34.6-18.5 66.7-48.5 84l-7.8 4.5-28.8-50c17.3-4.8 30.1-20.8 30.1-39.5 0-2.7-.3-5.4-.8-8z"},child:[]}]})(s)}function F_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"},child:[]}]})(s)}function G_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.7 21.04l-194.4.41L21.04 159.3l.41 194.4L159.3 491l194.4-.4L491 352.7l-.4-194.4L352.7 21.04zm-8 19.66l126.2 125.7.4 178.3-123.1 123.6-2.6 2.6-178.3.4L41.08 345.6l-.38-178.3L166.4 41.08l178.3-.38zm-7.5 18.01l-163.3.34L58.71 174.8l.34 163.3L174.8 453.3l163.3-.3 115.2-115.8-.3-163.3L337.2 58.71zM108.4 210.4c5.3 0 10.8.5 16.4 1.3 5.7.8 11.5 2 17.5 3.6v20.5c-5.3-2.4-10.5-4.2-15.6-5.4-5.1-1.2-9.9-1.8-14.4-1.8-6 0-10.4.8-13.25 2.5-2.87 1.6-4.3 4.2-4.3 7.7 0 2.6.96 4.6 2.87 6.1 1.95 1.4 5.48 2.7 10.58 3.7l10.6 2.1c10.8 2.2 18.5 5.5 23.1 9.9 4.5 4.5 6.8 10.8 6.8 18.9 0 10.7-3.2 18.7-9.5 24-6.4 5.2-16.1 7.8-29.2 7.8-6.1 0-12.3-.6-18.51-1.8-6.2-1.1-12.41-2.9-18.61-5.2v-21.1c6.2 3.3 12.19 5.8 17.96 7.5 5.82 1.6 11.46 2.4 16.76 2.4 5.5 0 9.7-.9 12.6-2.7 2.9-1.8 4.4-4.4 4.4-7.8 0-3.1-1-5.4-3-7.1-2-1.6-5.9-3.1-11.8-4.4l-9.7-2.1c-9.73-2.1-16.85-5.4-21.37-10-4.47-4.5-6.7-10.7-6.7-18.4 0-9.7 3.12-17.1 9.37-22.3 6.25-5.3 15.24-7.9 27-7.9zm187.7 0c15.6 0 27.8 4.5 36.7 13.5 8.9 8.9 13.3 21.2 13.3 37 0 15.7-4.4 28-13.3 37-8.9 8.9-21.1 13.4-36.7 13.4-15.6 0-27.8-4.5-36.7-13.4-8.9-9-13.3-21.3-13.3-37 0-15.8 4.4-28.1 13.3-37 8.9-9 21.1-13.5 36.7-13.5zm-141.9 1.8h89.6v18.9h-32.2v78.3h-25.1v-78.3h-32.3v-18.9zm205.8 0h41.6c12.3 0 21.8 2.8 28.4 8.3 6.7 5.4 10 13.2 10 23.4s-3.3 18.1-10 23.6c-6.6 5.4-16.1 8.2-28.4 8.2H385v33.7h-25v-97.2zm-63.9 16.4c-7.7 0-13.6 2.8-17.8 8.5-4.2 5.6-6.3 13.6-6.3 23.8 0 10.2 2.1 18.1 6.3 23.8 4.2 5.6 10.1 8.4 17.8 8.4 7.7 0 13.6-2.8 17.8-8.4 4.2-5.7 6.3-13.6 6.3-23.8 0-10.2-2.1-18.2-6.3-23.8-4.2-5.7-10.1-8.5-17.8-8.5zm88.9 1.8v27.1h13.9c4.9 0 8.6-1.2 11.3-3.5 2.6-2.4 3.9-5.8 3.9-10.1s-1.3-7.7-3.9-10c-2.7-2.4-6.4-3.5-11.3-3.5H385z"},child:[]}]})(s)}function H_e(s){return Z({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M327.467 19.992c.748 14.94 2.317 51.268 2.59 98.76 3.474-.286 6.557-.381 9.72 1.08 18.04 8.345 27.243 29.326 27.026 50.506-.217 21.18-11.283 44.136-36.104 54.307a41.62 41.62 0 0 1-2.486.923c-3.408 80.504-12.307 166.37-33.754 225.5-6.876 15.831-17.029 29.217-26.828 40.94l55.27.422c20.676-12.19 32.041-27.395 36.32-46.407l17.558 3.954c-3.67 16.312-11.99 30.662-24.511 42.677l143.052 1.094c-5.13-14.524-16.16-46.501-20.357-70.217C451.89 293.171 450.15 45 450.025 19.992zM18.279 38.984l.881 18.725c17.856 12.047 32.035 23.91 45.969 35.527 12.887-11.156 2.404-29.725-5.82-39.091-13.668-5.346-27.335-10.467-41.03-15.16zM86.723 65.13c4.77 14.56 3.347 29.656-7.477 39.746 24.105 19.479 50.832 38.151 97.1 55.635 13.836-22.588 12.08-43.852-3.338-60.739-29.03-10.9-57.703-22.997-86.285-34.642zm-31.721 42.988V400h17.996V122.723c-6.187-4.856-12.114-9.73-17.996-14.606zm145.264 1.434c3.253 8.283 4.54 16.754 3.982 25.043-.765 11.35-4.673 22.135-10.545 32.095 16.926 5.691 36.192 11.248 58.451 16.655l2.604.633 1.834 1.953c9.223 9.826 22.535 17.206 35.469 21.006 12.933 3.8 25.473 3.655 31.814 1.056 18.024-7.385 24.773-22.363 24.932-37.84.152-14.822-7.069-28.554-15.479-33.306-45.88-1.699-89.948-12.607-133.062-27.295zm-33.264 66.476V400h17.996V182.605a502.784 502.784 0 0 1-17.996-6.578zM32 419.002v17.996h176v-17.996z"},child:[]}]})(s)}function V_e(s){return Z({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18.36 6.64a9 9 0 1 1-12.73 0"},child:[]},{tag:"line",attr:{x1:"12",y1:"2",x2:"12",y2:"12"},child:[]}]})(s)}function Z_e(s){return Z({attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},child:[]}]})(s)}function X_e(s){return Z({attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 0l-6 8h6l-4 8 14-10h-8l6-6z"},child:[]}]})(s)}const X3e={SET:qxe,WORKING:$M,UNREACH:BM,LOWBAT:PM,MAINTAIN:$L,ERROR:UL,DIRECTION:QL,CONNECTED:BM,ACTUAL:U_e,SECOND:$_e,PRESS_LONG:bL,PRESS:vL,MUTE:YL,ACCURACY:B_e,RADIUS:r_e,ELEVATION:e_e,LATITUDE:t_e,LONGITUDE:o_e,GPS:kL,ON_ACTUAL:WM,ON_SET:WM,OPEN:SL,STOP:G_e,WATER_ALARM:El,WASTE_ALARM:Yl,PAUSE:Kxe,STATE:R_e,BATTERY:PM,WASTE:Yl,WATER:El,WORK_MODE:$M,MODE:_L,POWER:i_e,BOOST:Q_e,HUMIDITY:c_e,TEMPERATURE:l_e,BRIGHTNESS:a_e,MOTION:xL,FIRE:M_e,WINDOW:I4,SMOKE:u_e,SWING:H_e,SPEED:F_e,DIMMER:Z_e,ON:V_e,COLOR_TEMP:fL,ELECTRIC_POWER:X_e,CURRENT:P_e,VOLTAGE:W_e,CONSUMPTION:b_e,FREQUENCY:J_e,HUE:N_e};class A4 extends M.Component{static generateFile(e,t){const i=window.document.createElement("a");i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),i.setAttribute("download",e),i.style.display="none",window.document.body.appendChild(i),i.click(),window.document.body.removeChild(i)}handleFileSelect=e=>{const t=e.target,i=t==null?void 0:t.files;if(!i||!i.length){console.error("No files found. Please report to developers");return}const r=i[0];if(r){const o=new window.FileReader;o.onload=()=>{var a;const n=((a=o.result)==null?void 0:a.toString())||"";try{const c=JSON.parse(n);c.native&&c.common?c.common.name!==this.props.common.name?this.props.onError&&this.props.onError(h.t("ra_otherConfig",c.common.name)):this.props.onLoad&&this.props.onLoad(c.native):this.props.onError&&this.props.onError(h.t("ra_invalidConfig"))}catch(c){this.props.onError&&this.props.onError(c==null?void 0:c.toString())}},o.readAsText(r)}else alert("Failed to open JSON File")};download(){const e={_id:`system.adapter.${this.props.common.name}.${this.props.instance}`,common:JSON.parse(JSON.stringify(this.props.common)),native:this.props.native};e.common.news&&delete e.common.news,e.common.titleLang&&delete e.common.titleLang,e.common.desc&&delete e.common.desc,A4.generateFile(`${e._id}.json`,e)}upload(){const e=window.document.createElement("input");e.setAttribute("type","file"),e.setAttribute("id","files"),e.setAttribute("opacity","0"),e.addEventListener("change",this.handleFileSelect,!1),e.click()}render(){return M.createElement("div",{className:this.props.className,style:this.props.style},this.props.common.icon?M.createElement(me,{src:this.props.common.icon,style:{padding:8,width:64},alt:"logo"}):null,this.props.common.readme?M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Help",style:{marginRight:5,marginTop:5,float:"right"},onClick:()=>{const e=window.open(this.props.common.readme,"_blank");e==null||e.focus()}},M.createElement(PL,null)):null,M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Load config",style:{marginRight:5,marginTop:5,float:"right"},title:h.t("ra_Load configuration from file"),onClick:()=>this.upload()},M.createElement(Og,null)),M.createElement(j.Fab,{size:"small",color:"primary","aria-label":"Save config",style:{marginRight:5,marginTop:5,float:"right"},title:h.t("ra_Save configuration to file"),onClick:()=>this.download()},M.createElement(mg,null)))}}class m4{static text2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static getTitle(e){const t=m4.extractHeader(e);let i=t.body;const r=t.header;if(!r.title){i=i.replace(/{[^}]*}/g,""),i=i.trim();const o=i.replace(/\r/g,"").split(` +`);for(let n=0;n{if(!n.trim())return;const a=n.indexOf(":");if(a!==-1){const c=n.substring(0,a).trim();let l=n.substring(a+1).trim();l=l.replace(/^['"]|['"]$/g,""),l==="true"?t[c]=!0:l==="false"?t[c]=!1:parseFloat(l).toString()===l?t[c]=parseFloat(l):t[c]=l}else t[n.trim()]=!0}),e=e.substring(i+7))}return{header:t,body:e}}static removeDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(i=>e=e.replace(i,"")),e}static onCopy(e,t){s0(t),e&&e.stopPropagation(),e&&e.preventDefault()}}function K_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function O4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"248",cx:"160",fill:"none",strokeWidth:"15"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function Ts(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"}))}function E4(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"140.83068",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"251",cx:"241",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"200.94531",x2:"240.5",y1:"45.94531",x1:"240.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"78.7979",x:"214.5",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),M.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"84",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),M.createElement("line",{y2:"201.94531",x2:"83.5",y1:"46.94531",x1:"83.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),M.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"57.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function q_e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",onClick:e=>s.onClick&&s.onClick(e),width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}))}function eSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}),M.createElement("path",{fill:"currentColor",stroke:"null",d:"m261,270l-12,0l0,-24c0,-33.12 -26.88,-60 -60,-60s-60,26.88 -60,60l0,24l-12,0c-13.2,0 -24,10.8 -24,24l0,120c0,13.2 10.8,24 24,24l144,0c13.2,0 24,-10.8 24,-24l0,-120c0,-13.2 -10.8,-24 -24,-24zm-72,108c-13.2,0 -24,-10.8 -24,-24s10.8,-24 24,-24s24,10.8 24,24s-10.8,24 -24,24zm37.2,-108l-74.4,0l0,-24c0,-20.52 16.68,-37.2 37.2,-37.2c20.52,0 37.2,16.68 37.2,37.2l0,24z"}))}function tSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function Ai(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 320 320",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("rect",{fill:"none",rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor"}),M.createElement("ellipse",{fill:"none",ry:"54",rx:"54",cy:"160",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor"}))}function sSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 24 24",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",stroke:"currentColor",d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"}))}const Ko={root:{width:"100%",height:"100%"},overflowHidden:{overflow:"hidden"},container:{height:"100%"}};function iSe(s){var e;return M.createElement(j.Paper,{elevation:Number.isNaN(s.elevation)?1:s.elevation,style:{...Ko.root,...((e=s.styles)==null?void 0:e.root)||void 0,...s.overflow!=="visible"?Ko.overflowHidden:void 0},onKeyDown:s.onKeyDown,tabIndex:s.tabIndex},M.createElement(j.Grid2,{container:!0,direction:"column",wrap:"nowrap",sx:Ko.container},s.children))}const vl={root:{height:"100%",overflow:"hidden"},overflowAuto:{overflow:"auto"}};function rSe(s){return M.createElement(j.Grid2,{sx:{...vl.root,...(s==null?void 0:s.style)||void 0,...s.overflow==="auto"?vl.overflowAuto:void 0},ref:s.ref},s.children)}function oSe(s){return M.createElement(j.Grid2,{container:!0,alignItems:"center"},s.children)}const ds=24,pe=32,nSe=16,ge=20,f4=s=>s==="dark"?"#62ff25":"#37c400",x4=s=>s==="dark"?"#ee56ff":"#a204b4",aSe=s=>s==="dark"?"#fff46e":"#b89101",_4=s=>"#ff6d69",S4=s=>"#5773ff",k4="#ff413c",Y4="#86211f",Wn="#57ff45",Bn="#098c04",Jn="#f3ad11",Rn="#6c5008",w={toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:16},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:8},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustom_center:{textAlign:"center"},columnCustom_left:{textAlign:"left"},columnCustom_right:{textAlign:"right"},width100:{width:"100%"},transparent_10:{opacity:.1},transparent_20:{opacity:.2},transparent_30:{opacity:.3},transparent_40:{opacity:.4},transparent_50:{opacity:.5},transparent_60:{opacity:.6},transparent_70:{opacity:.7},transparent_80:{opacity:.8},transparent_90:{opacity:.9},transparent_100:{opacity:1},headerRow:{paddingLeft:8,height:38,whiteSpace:"nowrap",userSelect:"none"},buttonClearFilter:{position:"relative",float:"right",padding:0},buttonClearFilterIcon:{zIndex:2,position:"absolute",top:0,left:0,color:"#FF0000",opacity:.7},tableDiv:{paddingTop:0,paddingLeft:0,width:"calc(100% - 8px)",height:"calc(100% - 38px)",overflow:"auto"},tableRow:s=>({pl:1,height:pe,lineHeight:`${pe}px`,verticalAlign:"top",userSelect:"none",position:"relative",width:"100%","&:hover":{background:`${s.palette.mode==="dark"?s.palette.primary.dark:s.palette.primary.light} !important`,color:O.invertColor(s.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"}),tableRowLines:s=>({borderBottom:`1px solid ${s.palette.mode==="dark","#8888882e"}`,"& > div":{borderRight:`1px solid ${s.palette.mode==="dark","#8888882e"}`}}),tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:pe+10},tableRowAliasReadWrite:{height:pe+22},tableRowFocused:s=>({"&:after":{content:'""',position:"absolute",top:1,left:1,right:1,bottom:1,border:s.palette.mode?"1px dotted #000":"1px dotted #FFF"}}),checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:pe-4,height:pe-4,mt:"2px",float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:s=>({marginRight:8,width:pe-4,height:pe-4,cursor:"pointer",color:s.palette.secondary.main||"#fbff7d",verticalAlign:"top"}),cellIdIconDocument:{verticalAlign:"middle",marginLeft:(pe-ge)/2,marginRight:8,width:ge,height:ge},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8,position:"absolute",right:3},cellCopyButtonInDetails:{width:ge,height:ge,top:(pe-ge)/2,opacity:.8},cellEditButton:{width:ge,height:ge,color:"white",position:"absolute",top:(pe-ge)/2,right:ge+3,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,ml:"5px",overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellNameWithDesc:{lineHeight:"normal"},cellNameDivDiv:{},cellDescription:{fontSize:10,opacity:.5,fontStyle:"italic"},cellIdAlias:s=>({fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:s.palette.mode==="dark"?"#009900":"#007700"}}),cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:ds,height:ds,display:"inline-block"},"& .itemIconFolder":{marginLeft:3}},cellRole:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellRoom:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellEnumParent:{opacity:.4},cellFunc:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValue:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValueButton:{marginTop:5},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:pe,fontSize:16,display:"flex",overflow:"hidden",textOverflow:"ellipsis",position:"relative",verticalAlign:"top","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellValueFile:{color:"#2837b9"},cellValueTooltipTitle:{fontStyle:"italic",width:100,display:"inline-block"},cellValueTooltipValue:{width:120,display:"inline-block",whiteSpace:"nowrap",textOverflow:"ellipsis"},cellValueTooltipImage:{width:100,height:"auto"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden",pointerEvents:"none"},tooltip:{pointerEvents:"none"},cellValueTextUnit:{marginLeft:4,opacity:.8,display:"inline-block"},cellValueTextState:{opacity:.7},cellValueTooltipCopy:{position:"absolute",bottom:3,right:3},cellValueTooltipEdit:{position:"absolute",bottom:3,right:15},cellButtons:{display:"inline-block",verticalAlign:"top"},cellButtonsButton:{display:"inline-block",opacity:.5,width:ge+4,height:ge+4,"&:hover":{opacity:1},p:0,mt:"-2px"},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:40},cellButtonsButtonAlone:{ml:`${ge+6}px`,pt:0,mt:"-2px"},cellButtonsButtonWithCustoms:s=>({color:s.palette.mode==="dark"?s.palette.primary.main:s.palette.secondary.main}),cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:s=>({position:"absolute",top:ge/2-2,opacity:.7,width:ge-2,height:ge-2,color:s.palette.action.active,"&:hover":{opacity:1}}),cellButtonsValueButtonCopy:{right:8,cursor:"pointer"},cellButtonsValueButtonEdit:{right:ge/2+16},cellDetailsLine:{display:"flex",alignItems:"center",width:"100%",height:32,fontSize:16},cellDetailsName:{fontWeight:"bold",marginRight:8,minWidth:80},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{mt:0,mb:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:s=>({background:`${s.palette.primary.main} !important`,color:`${O.invertColor(s.palette.primary.main,!0)} !important`}),header:{width:"100%"},headerCell:{display:"inline-block",verticalAlign:"top"},headerCellValue:{paddingTop:4,fontSize:16},headerCellInput:{width:"calc(100% - 5px)",height:pe,pt:0,"& .itemIcon":{verticalAlign:"middle",width:ds,height:ds,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:ds,height:ds,mr:"5px",display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:8,width:32,height:32,borderRadius:8,background:"#FFFFFF"},enumIcon:{marginTop:4,marginLeft:4,width:24,height:24},enumDialog:{overflow:"hidden"},enumList:{minWidth:250,height:"calc(100% - 50px)",overflow:"auto"},enumCheckbox:{minWidth:0},buttonDiv:{display:"flex",height:"100%",alignItems:"center"},aclText:{fontSize:13,marginTop:6},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},fontSizeTitle:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}}},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:5,backgroundColor:"background.default"},iconDeviceConnected:s=>({color:s.palette.mode==="dark"?Wn:Bn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceDisconnected:s=>({color:s.palette.mode==="dark"?Jn:Rn,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceError:s=>({color:s.palette.mode==="dark"?k4:Y4,opacity:.8,position:"absolute",top:4,right:50,width:20}),resizeHandle:{display:"block",position:"absolute",cursor:"col-resize",width:7,top:2,bottom:2,zIndex:1},resizeHandleRight:{right:3,borderRight:"2px dotted #888","&:hover":{borderColor:"#ccc",borderRightStyle:"solid"},"&.active":{borderColor:"#517ea5",borderRightStyle:"solid"}},invertedBackground:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"}),invertedBackgroundFlex:s=>({backgroundColor:s.palette.mode==="dark"?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}),contextMenuEdit:s=>({color:s.palette.mode==="dark"?"#ffee48":"#cbb801"}),contextMenuEditValue:s=>({color:s.palette.mode==="dark"?"#5dff45":"#1cd301"}),contextMenuView:s=>({color:s.palette.mode==="dark"?"#FFF":"#000"}),contextMenuCustom:s=>({color:s.palette.mode==="dark"?"#42eaff":"#01bbc2"}),contextMenuACL:s=>({color:s.palette.mode==="dark"?"#e079ff":"#500070"}),contextMenuRoom:s=>({color:s.palette.mode==="dark"?"#ff9a33":"#642a00"}),contextMenuRole:s=>({color:s.palette.mode==="dark"?"#ffdb43":"#562d00"}),contextMenuDelete:s=>({color:s.palette.mode==="dark"?"#ff4f4f":"#cf0000"}),contextMenuKeys:{marginLeft:8,opacity:.7,fontSize:"smaller"},contextMenuWithSubMenu:{display:"flex"}};function MSe(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 436 436",style:s==null?void 0:s.style,width:"24",height:"24",className:"admin-button"},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function bl(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}function cSe(s,e){const t=[];for(let i=0;i{if(r==null)return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r}):uSe(s,(i,r,o)=>{if(r==null||e.includes(o))return;const n=typeof r=="object";if(t&&n&&typeof r.en=="string"&&typeof r.de=="string"){i[o]=r.en;return}i[o]=n?Fn(r,e,t):r})}function Ql(s,e,t){const i=document.createElement("a"),r=[];t.excludeSystemRepositories&&r.push("system.repositories");const o=r.length>0||t.excludeTranslations?Fn(e,r,t.excludeTranslations):e,n=t.beautify?JSON.stringify(o,null,2):JSON.stringify(o);i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(n)}`),i.setAttribute("download",s),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function vi(s,e,t,i){if(t||=0,i===void 0&&(i=s.length-1,!i))return s[0]===e;const r=Math.floor((t+i)/2);return e===s[r]?!0:i-1===t?s[t]===e||s[i]===e:e>s[r]?vi(s,e,r,i):eD.role.startsWith(p))||(l=!0)):l=!0),!l&&((I=n.common)==null?void 0:I.custom)==="_"&&(D!=null&&D.custom))l=!0;else if(!l&&((C=n.common)!=null&&C.custom)&&((m=n.common)==null?void 0:m.custom)!=="_"){const p=n.common.custom;if(!(D!=null&&D.custom))l=!0;else if(p==="_dataSources")Object.keys(D.custom).find(_=>_.startsWith("history.")||_.startsWith("sql.")||_.startsWith("influxdb."))||(l=!0);else if(Array.isArray(p)){const _=Object.keys(D.custom);p.find(x=>_.find(P=>P.startsWith(x)))&&(l=!0)}else p!==!0&&!Object.keys(D.custom).find(_=>_.startsWith(p))&&(l=!0)}}!l&&!e.expertMode&&(l=N.id==="system"||N.id==="enum"||N.id.startsWith("system.")||N.id.startsWith("enum.")||N.id.startsWith("_design/")||N.id.endsWith(".admin")||!!(D!=null&&D.expert)),!l&&r.id&&(N.fID===void 0&&(N.fID=N.id.toLowerCase()),l=!N.fID.includes(r.id)),!l&&r.idRx&&(l=!r.idRx.test(N.id)),!l&&r.name&&(D?(N.fName===void 0&&(N.fName=Ye(D.name,t)||"",N.fName=N.fName.toLowerCase()),l=!N.fName.includes(r.name)):l=!0),!l&&r.nameRx&&D&&(N.fName===void 0&&(N.fName=Ye(D.name,t)||"",N.fName=N.fName.toLowerCase()),l=!r.nameRx.test(N.fName)),!l&&e.role&&D&&(D?l=!(typeof D.role=="string"&&D.role.startsWith(r.role)):l=!0),!l&&r.room&&(l=!r.room.find(p=>p===N.id||N.id.startsWith(`${p}.`))),!l&&r.func&&(l=!r.func.find(p=>p===N.id||N.id.startsWith(`${p}.`))),!l&&r.type&&(l=!(N.obj&&N.obj.type&&N.obj.type===r.type)),!l&&a&&(l=!(N.obj&&N.obj.type&&a.includes(N.obj.type))),!l&&r.custom&&(D?r.custom==="_"?l=!!D.custom:l=!((A=D.custom)!=null&&A[r.custom]):l=!0)}return N.visible=!l,N.hasVisibleChildren=!1,s.children&&c<20&&s.children.forEach(D=>{Gn(D,e,t,i,r,o,n,a,c+1)&&(N.hasVisibleChildren=!0)}),N.sumVisibility=N.visible||N.hasVisibleChildren,o&&N.sumVisibility&&o.count++,N.id&&N.sumVisibility&&s.children&&s.children.forEach(D=>D.data.hasVisibleParent=!0),N.visible||N.hasVisibleChildren}function v4(s,e,t,i){var o;i||=[];const r=s.data;return r.sumVisibility&&(r.id&&t[r.id]&&t[r.id].type===e&&i.push(r.id),(o=s.children)==null||o.forEach(n=>v4(n,e,t,i))),i}function Ul(s,e,t,i,r,o){let n;return e==="alias"||e==="alias.0"?n=M.createElement(yN,{className:"iconOwn",style:{color:x4(i)}}):e==="0_userdata"||e==="0_userdata.0"?n=M.createElement(ng,{className:"iconOwn",style:{color:f4(i)}}):e.startsWith("_design/")||e==="system"?n=M.createElement(kr,{className:"iconOwn",style:{color:_4(i)}}):e==="system.adapter"?n=M.createElement(kr,{className:"iconOwn",style:{color:S4(i)}}):e==="system.group"?n=M.createElement(ga,{className:"iconOwn"}):e==="system.user"?n=M.createElement(Na,{className:"iconOwn"}):e==="system.host"?n=M.createElement(La,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?n=M.createElement(Qs,{className:"iconOwn"}):e.endsWith(".info")?n=M.createElement(la,{className:"iconOwn"}):s[e]&&s[e].type==="meta"?n=M.createElement(Kr,{className:"iconOwn"}):t<2&&s[`system.adapter.${e}`]&&(n=Zr(s,`system.adapter.${e}`,r,o)),n||null}function b4(s,e){var t,i;return(i=(t=s==null?void 0:s.obj)==null?void 0:t.common)!=null&&i.desc&&Ye(s.obj.common.desc,e)||null}function lSe(s,e){const t=b4(s,e);return t!=null&&t.startsWith("http")?M.createElement(j.Box,{component:"a",sx:w.cellIdTooltipLink,href:t,target:"_blank",rel:"noreferrer"},t):M.createElement("span",{style:w.cellIdTooltip},t||s.id||"")}function $l(s,e){var N,u,L,g,y,T,d,z,I,C;const t=e.imagePrefix||".";let i=Object.keys(s);i.sort((m,A)=>m===A?0:(m=m.replace(/\./g,"!!!"),A=A.replace(/\./g,"!!!"),m>A?1:-1)),e.root&&(i=i.filter(m=>m===e.root||m.startsWith(`${e.root}.`)));let r=[],o="",n=0;const a={data:{name:"",id:""},children:[]},c={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:s,customs:["_"],enums:[],hasSomeCustoms:!1,aliasesMap:{}};let l=a;for(let m=0;mv.role===P)?typeof P!="string"?console.warn(`Invalid role type "${typeof P}" in "${D._id}"`):c.roles.push({role:P,type:x.type}):A.startsWith("enum.rooms.")?(c.roomEnums.push(A),c.enums.push(A)):A.startsWith("enum.functions.")?(c.funcEnums.push(A),c.enums.push(A)):D.type==="enum"?c.enums.push(A):D.type==="instance"&&x&&(x.supportCustoms||(N=x.adminUI)!=null&&N.custom)&&(c.hasSomeCustoms=!0,c.customs.push(A.substring(15))),A.startsWith("alias.")&&((u=D.common.alias)!=null&&u.id))if(typeof D.common.alias.id=="string"){const v=D.common.alias.id;c.aliasesMap[v]?c.aliasesMap[v].includes(A)||c.aliasesMap[v].push(A):c.aliasesMap[v]=[A]}else{const v=D.common.alias.id.read;v&&(c.aliasesMap[v]?c.aliasesMap[v].includes(A)||c.aliasesMap[v].push(A):c.aliasesMap[v]=[A]);const ee=D.common.alias.id.write;ee&&(c.aliasesMap[ee]?c.aliasesMap[ee].includes(A)||c.aliasesMap[ee].push(A):c.aliasesMap[ee]=[A])}}c.ids.push(A);let _;do if(_=!1,!o||A.startsWith(`${o}.`)){if(p.length-n>1){let P=o;for(let v=n;vee.data.name===p[v]));else{const ee={data:{name:p[v],parent:l,id:P,obj:s[P],level:v,icon:Ul(s,P,v,e.themeType,e.lang,t),generated:!0}};l.children||=[],l.children.push(ee),l=ee,c.ids.push(P)}}const x={data:{name:p[p.length-1],title:Ye((L=D==null?void 0:D.common)==null?void 0:L.name,e.lang),obj:D,parent:l,icon:Zr(s,A,e.lang,t)||Ul(s,A,0,e.themeType,e.lang,t),id:A,hasCustoms:!!((g=D.common)!=null&&g.custom&&Object.keys(D.common.custom).length),level:p.length-1,generated:!1,button:D.type==="state"&&!!((y=D.common)!=null&&y.role)&&typeof D.common.role=="string"&&D.common.role.startsWith("button")&&((T=D.common)==null?void 0:T.write)!==!1,switch:D.type==="state"&&((d=D.common)==null?void 0:d.type)==="boolean"&&((z=D.common)==null?void 0:z.write)!==!1&&((I=D.common)==null?void 0:I.read)!==!1,url:!!((C=D.common)!=null&&C.role)&&typeof D.common.role=="string"&&D.common.role.startsWith("url")}};l.children||=[],l.children.push(x),l=x,n=p.length,r=p,o=A}else{let x=0;for(;r[x]===p[x];)x++;if(x>0){let P=r.length;for(r=r.splice(0,x),n=x,o=r.join(".");P>x;)l.data.parent?l=l.data.parent:console.error(`Parent is null for ${A} ${o} ${r.join(".")}`),P--}else l=a,r=[],o="",n=0;_=!0}while(_)}return c.roomEnums.sort((m,A)=>{var _,x,P,v;const D=Ye((x=(_=s[m])==null?void 0:_.common)==null?void 0:x.name,e.lang)||m.split(".").pop(),p=Ye((v=(P=s[A])==null?void 0:P.common)==null?void 0:v.name,e.lang)||A.split(".").pop();return D>p?1:D{var _,x,P,v;const D=Ye((x=(_=s[m])==null?void 0:_.common)==null?void 0:x.name,e.lang)||m.split(".").pop(),p=Ye((v=(P=s[A])==null?void 0:P.common)==null?void 0:v.name,e.lang)||A.split(".").pop();return D>p?1:Dm.role.localeCompare(A.role)),c.types.sort(),{info:c,root:a}}function Q4(s,e,t,i,r){if(s.data.id===e)return s;if(t||(t=e.split("."),r=0,i=t[r]),!s.children&&s.data.id!==e)return null;let o;if(s.children)for(let n=0;ni)break}return o?(r||=0,Q4(o,e,t,`${i}.${t[r+1]}`,r+1)):null}function U4(s,e,t,i){var n,a;if(!e)return{rooms:[],per:!1};i||=[];for(const c of s.roomEnums){const l=(n=s.objects[c])==null?void 0:n.common;if(!l)continue;const N=Ye(l.name,t);(a=l.members)!=null&&a.includes(e)&&!i.includes(N)&&i.push(N)}let r;const o=e.split(".");return o.pop(),e=o.join("."),s.objects[e]&&(r=i.length,U4(s,e,t,i)),{rooms:i,per:!r}}function Ds(s,e,t,i){var r,o;if(!e)return[];i||=[];for(let n=0;n946681200&&l<9466812e5&&(l*=1e3),l=l&&new Date(l).toString();else N==="number"?Number.isInteger(l)||(l=Math.round(l*1e8)/1e8,i&&(l=l.toString().replace(".",","))):N==="object"?l=JSON.stringify(l):N!=="string"?l=l.toString():l.startsWith("data:image/")&&(c="image"),typeof l!="string"&&(l=l.toString());const u={v:l};n&&n[l]!==void 0&&l!==n[l]&&(u.s=l,l=n[l],u.v=l),((g=u.v)==null?void 0:g.length)>40&&(u.c=u.v,u.v=`${u.v.substring(0,40)}...`),a!=null&&a.unit&&(u.u=a.unit);let L;if(s.full&&(typeof l=="string"&&l.length>100?L=[{t:r.value,v:`${l.substring(0,100)}...`}]:L=[{t:r.value,v:l}],t)){if(t.ack!==void 0&&t.ack!==null&&L.push({t:r.ack,v:t.ack.toString()}),t.ts&&L.push({t:r.ts,v:t.ts?O.formatDate(new Date(t.ts),e):""}),t.lc&&L.push({t:r.lc,v:t.lc?O.formatDate(new Date(t.lc),e):""}),t.from){let y=t.from.toString();y.startsWith("system.adapter.")&&(y=y.substring(15)),L.push({t:r.from,v:y})}if(t.user){let y=t.user.toString();y.startsWith("system.user.")&&(y=y.substring(12)),L.push({t:r.user,v:y})}t.c&&L.push({t:r.c,v:t.c}),L.push({t:r.quality,v:O.quality2text(t.q||0).join(", "),nbr:!0})}return{valText:u,valFull:L,fileViewer:c}}function NSe(s){const{state:e}=s;return{color:e!=null&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}function LSe(s,e){let t=e,i=1;const r=[];for(;i=t)r.push(0);else if(ithis.filterRefs[d]=f.createRef()),this.visibleCols=e.columns||le[e.width||"lg"].fields,e.types&&e.types.length===1){const d=this.visibleCols.indexOf("type");d!==-1&&this.visibleCols.splice(d,1)}this.possibleCols=le.xl.fields;let a=null;if(e.router){const d=e.router.getLocation();d.id&&d.dialog==="customs"&&(a=[d.id],this.pauseSubscribe(!0))}let c;Array.isArray(e.selected)?c=e.selected:c=[e.selected||""],c=c.map(d=>d.replace(/["']/g,"")).filter(d=>d),this.selectFirst=c.length&&c[0]?c[0]:this.selectFirst;const l=this.localStorage.getItem(`${e.dialogName||"App"}.columns`);let N;try{N=l?JSON.parse(l):null}catch{N=null}let u=null;try{u=u?JSON.parse(u):{}}catch{u={}}this.imagePrefix=e.imagePrefix||".";let L;const g=this.localStorage.getItem(`${e.dialogName||"App"}.foldersFirst`);g==="false"?L=!1:g==="true"?L=!0:L=e.foldersFirst===void 0?!0:e.foldersFirst;let y=!1;try{y=this.props.objectStatesView&&JSON.parse(this.localStorage.getItem(`${e.dialogName||"App"}.objectStatesView`)||"")||!1}catch{}this.state={loaded:!1,foldersFirst:L,selected:c,selectedNonObject:this.localStorage.getItem(`${e.dialogName||"App"}.selectedNonObject`)||"",filter:o,filterKey:0,focused:this.localStorage.getItem(`${e.dialogName||"App"}.focused`)||"",depth:0,expandAllVisible:!1,expanded:i,toast:"",scrollBarWidth:16,customDialog:a,editObjectDialog:"",editObjectAlias:!1,viewFileDialog:"",showAliasEditor:"",enumDialog:null,roleDialog:null,statesView:y,columns:N,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:this.localStorage.getItem(`${e.dialogName||"App"}.columnsAuto`)!=="false",columnsWidths:u,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,showAllExportOptions:!1,linesEnabled:this.localStorage.getItem(`${e.dialogName||"App"}.lines`)==="true",showDescription:this.localStorage.getItem(`${e.dialogName||"App"}.desc`)!=="false",showContextMenu:null,noStatesByExportImport:!1,beautifyJsonExport:!0,excludeSystemRepositoriesFromExport:!0,excludeTranslations:!1,tooltipInfo:null,aliasMenu:"",showRenameDialog:null},this.texts={name:e.t("ra_Name"),categories:e.t("ra_Categories"),value:e.t("ra_tooltip_value"),ack:e.t("ra_tooltip_ack"),ts:e.t("ra_tooltip_ts"),lc:e.t("ra_tooltip_lc"),from:e.t("ra_tooltip_from"),user:e.t("ra_tooltip_user"),c:e.t("ra_tooltip_comment"),quality:e.t("ra_tooltip_quality"),editObject:e.t("ra_tooltip_editObject"),deleteObject:e.t("ra_tooltip_deleteObject"),customConfig:e.t("ra_tooltip_customConfig"),copyState:e.t("ra_tooltip_copyState"),editState:e.t("ra_tooltip_editState"),ctrlForLink:e.t("ra_tooltip_ctrlForLink"),close:e.t("ra_Close"),filter_id:e.t("ra_filter_id"),filter_name:e.t("ra_filter_name"),filter_type:e.t("ra_filter_type"),filter_role:e.t("ra_filter_role"),filter_room:e.t("ra_filter_room"),filter_func:e.t("ra_filter_func"),filter_custom:e.t("ra_filter_customs"),filterCustomsWithout:e.t("ra_filter_customs_without"),objectChangedByUser:e.t("ra_object_changed_by_user"),objectChangedBy:e.t("ra_object_changed_by"),objectChangedFrom:e.t("ra_state_changed_from"),stateChangedBy:e.t("ra_state_changed_by"),stateChangedFrom:e.t("ra_state_changed_from"),ownerGroup:e.t("ra_Owner group"),ownerUser:e.t("ra_Owner user"),showAll:e.t("ra_show_all"),deviceError:e.t("ra_Error"),deviceDisconnected:e.t("ra_Disconnected"),deviceConnected:e.t("ra_Connected"),aclOwner_read_object:e.t("ra_aclOwner_read_object"),aclOwner_read_state:e.t("ra_aclOwner_read_state"),aclOwner_write_object:e.t("ra_aclOwner_write_object"),aclOwner_write_state:e.t("ra_aclOwner_write_state"),aclGroup_read_object:e.t("ra_aclGroup_read_object"),aclGroup_read_state:e.t("ra_aclGroup_read_state"),aclGroup_write_object:e.t("ra_aclGroup_write_object"),aclGroup_write_state:e.t("ra_aclGroup_write_state"),aclEveryone_read_object:e.t("ra_aclEveryone_read_object"),aclEveryone_read_state:e.t("ra_aclEveryone_read_state"),aclEveryone_write_object:e.t("ra_aclEveryone_write_object"),aclEveryone_write_state:e.t("ra_aclEveryone_write_state"),create:e.t("ra_Create"),createBooleanState:e.t("ra_create_boolean_state"),createNumberState:e.t("ra_create_number_state"),createStringState:e.t("ra_create_string_state"),createState:e.t("ra_create_state"),createChannel:e.t("ra_create_channel"),createDevice:e.t("ra_create_device"),createFolder:e.t("ra_Create folder")},this.levelPadding=e.levelPadding||nSe;const T=this.localStorage.getItem(`${this.props.dialogName||"App"}.table`);if(T)try{const d=JSON.parse(T),z=this.props.width||"lg";this.storedWidths=JSON.parse(JSON.stringify(le[z])),Object.keys(d).forEach(I=>{I==="id"?le[z].idWidth=d.id:I==="nameHeader"?le[z].widths.name=d[I]:le[z].widths[I]!==void 0&&(le[z].widths[I]=d[I])}),this.customWidth=!0}catch{}this.calculateColumnsVisibility()}async loadAllObjects(e){var i;const t=this.props;try{await new Promise(l=>{this.setState({updating:!0},()=>l())});const r=(this.props.objectsWorker?await this.props.objectsWorker.getObjects(e):await t.socket.getObjects(e,!0))||{};if(t.types&&ze.isWeb())for(let l=0;l{try{if(l(r[N]))this.objects[N]=r[N];else{const u=r[N]&&r[N].type;u&&(u==="channel"||u==="device"||u==="folder"||u==="adapter"||u==="instance")&&(this.objects[N]=r[N])}}catch(u){console.log(`Error by filtering of "${N}": ${u}`)}})}else if(t.types){this.objects={};const l=t.types;Object.keys(r).forEach(N=>{var L;const u=(L=r[N])==null?void 0:L.type;u&&(u==="channel"||u==="device"||u==="enum"||u==="folder"||u==="adapter"||u==="instance"||l.includes(u))&&(this.objects[N]=r[N])})}else this.objects=r;t.setObjectsReference&&t.setObjectsReference(this.objects),this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&t.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then(l=>{l!=null&&l.val||(this.defaultHistory="")}).catch(l=>window.alert(`Cannot get state: ${l}`));const o=await this.getAdditionalColumns();this.calculateColumnsVisibility(null,null,o);const{info:n,root:a}=$l(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=a,this.info=n;const c=((i=this.state.selected)==null?void 0:i.length)&&Q4(this.root,this.state.selected[0]);this.lastAppliedFilter=null,c&&!Gn(c,this.state.filter,this.props.lang,this.objects,void 0,void 0,t.customFilter,t.types)?this.setState({filter:{...hr},columnsForAdmin:o},()=>{this.setState({loaded:!0,updating:!1},()=>this.expandAllSelected(()=>this.onAfterSelect()))}):this.setState({loaded:!0,updating:!1,columnsForAdmin:o},()=>this.expandAllSelected(()=>this.onAfterSelect()))}catch(r){this.showError(r)}}static isNonExpertId(e){return!!it.#e.find(t=>e.startsWith(t))}expandAllSelected(e){const t=[...this.state.expanded];let i=!1;this.state.selected.forEach(r=>{const o=r.split("."),n=[];for(let a=0;a{this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}):this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}static getDerivedStateFromProps(e,t){const i={};let r=!1;return e.expertMode!==void 0&&e.expertMode!==t.filter.expertMode&&(r=!0,i.filter={...t.filter},i.filter.expertMode=e.expertMode),r?i:null}async componentDidMount(){await this.loadAllObjects(!Wl),this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChangeFromWorker):await this.props.socket.subscribeObject("*",this.onObjectChange),Wl=!0,window.addEventListener("contextmenu",this.onContextMenu,!0),window.addEventListener("keydown",this.onKeyPress,!0),window.addEventListener("keyup",this.onKeyPress,!0)}onKeyPress=e=>{e.type==="keydown"&&e.ctrlKey&&!this.cltrPressed?(this.cltrPressed=!0,this.tableRef.current&&(this.tableRef.current.className="highlight-link")):e.type==="keyup"&&!e.ctrlKey&&this.cltrPressed&&(this.cltrPressed=!1,this.tableRef.current&&(this.tableRef.current.className=""))};componentWillUnmount(){this.filterTimer&&(clearTimeout(this.filterTimer),this.filterTimer=null),window.removeEventListener("contextmenu",this.onContextMenu,!0),window.removeEventListener("keydown",this.onKeyPress,!0),window.removeEventListener("keyup",this.onKeyPress,!0),this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChangeFromWorker,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange).catch(e=>console.error(`Cannot unsubscribe *: ${e}`)),this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.objects={}}showDeleteDialog(e){var c,l,N,u;const{id:t,obj:i,item:r}=e,o=Object.keys(this.objects);o.sort();let n=0;const a=`${t}.`;for(let L=0;La)break;(u=(N=this.props).onObjectDelete)==null||u.call(N,t,!!((c=r.children)!=null&&c.length),!((l=i.common)!=null&&l.dontDelete),n+1)}onContextMenu=e=>{this.contextMenu&&Date.now()-this.contextMenu.ts<2e3?(e.preventDefault(),this.setState({showContextMenu:{item:this.contextMenu.item,position:{left:e.clientX+2,top:e.clientY-6}}})):this.state.showContextMenu&&(e.preventDefault(),this.setState({showContextMenu:null})),this.contextMenu=null};refreshComponent(){this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.loadAllObjects(!0).then(()=>console.log("updated!")).catch(e=>this.showError(e))}renderErrorDialog(){return this.state.error?M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description"},M.createElement(j.DialogTitle,{id:"alert-dialog-title"},this.props.t("ra_Error")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.state.error)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:M.createElement(Oe,null)},this.props.t("ra_Ok")))):null}showError(e){this.setState({error:typeof e=="object"?e&&typeof e.toString=="function"?e.toString():JSON.stringify(e):e})}onSelect(e,t,i){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.focused`,e),!this.props.multiSelect)this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))?(this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==e?this.setState({selected:[e],selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()}):t&&this.props.onSelect&&this.onAfterSelect(t)):(this.localStorage.setItem(`${this.props.dialogName||"App"}.selectedNonObject`,e),this.setState({selected:[],selectedNonObject:e,focused:e},()=>{this.onAfterSelect(),i&&i()}));else if(this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))){this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const r=[...this.state.selected],o=r.indexOf(e);o===-1?(r.push(e),r.sort()):t||r.splice(o,1),this.setState({selected:r,selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),i&&i()})}}_renderDefinedList(e){const t=[...this.possibleCols];if(t.unshift("id"),this.props.columns&&!this.props.columns.includes("buttons")){const i=t.indexOf("buttons");i!==-1&&t.splice(i,1)}return t.filter(i=>e&&(i==="val"||i==="buttons")||!e&&i!=="val"&&i!=="buttons").map(i=>{var r;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto&&i!=="id"){const o=[...this.state.columns||[]],n=o.indexOf(i);n===-1?(o.push(i),o.sort()):o.splice(n,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(o)),this.calculateColumnsVisibility(null,o),this.setState({columns:o})}},key:i},M.createElement(j.Checkbox,{edge:"start",disabled:i==="id"||this.state.columnsAuto,checked:i==="id"||!!(this.state.columnsAuto?this.visibleCols.includes(i):(r=this.state.columns)!=null&&r.includes(i)),disableRipple:!0}),M.createElement(j.ListItemText,{primary:this.texts[`filter_${i}`]||this.props.t(`ra_${i}`)}))})}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?M.createElement(j.Dialog,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,sx:{"& .MuiPaper-root":O.getStyle(this.props.theme,w.dialogColumns,w[`transparent_${this.state.columnsDialogTransparent}`])}},M.createElement(j.DialogTitle,{sx:w.fontSizeTitle},this.props.t("ra_Configure")),M.createElement(j.DialogContent,{sx:w.fontSizeTitle},M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.foldersFirst,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.foldersFirst`,this.state.foldersFirst?"false":"true"),this.setState({foldersFirst:!this.state.foldersFirst})}}),label:this.props.t("ra_Folders always first")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.linesEnabled,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.lines`,this.state.linesEnabled?"false":"true"),this.setState({linesEnabled:!this.state.linesEnabled})}}),label:this.props.t("ra_Show lines between rows")}),M.createElement(j.FormControlLabel,{style:w.switchColumnAuto,control:M.createElement(j.Switch,{checked:this.state.columnsAuto,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.columnsAuto`,this.state.columnsAuto?"false":"true"),this.state.columnsAuto?this.state.columns?(this.calculateColumnsVisibility(!1),this.setState({columnsAuto:!1})):(this.calculateColumnsVisibility(!1,[...this.visibleCols]),this.setState({columnsAuto:!1,columns:[...this.visibleCols]})):(this.calculateColumnsVisibility(!0),this.setState({columnsAuto:!0}))}}),label:this.props.t("ra_Auto (no custom columns)")}),M.createElement(j.List,null,this._renderDefinedList(!1),this.state.columnsForAdmin&&Object.keys(this.state.columnsForAdmin).sort().map(e=>{var t;return(t=this.state.columnsForAdmin)==null?void 0:t[e].map(i=>{var r;return M.createElement(j.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto){const o=[...this.state.columns||[]],n=`_${e}_${i.path}`,a=o.indexOf(n);a===-1?(o.push(n),o.sort()):o.splice(a,1),this.calculateColumnsVisibility(null,o),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(o)),this.setState({columns:o})}},key:`${e}_${i.name}`},M.createElement(j.ListItemIcon,null,M.createElement(j.Checkbox,{disabled:this.state.columnsAuto,edge:"start",checked:!this.state.columnsAuto&&((r=this.state.columns)==null?void 0:r.includes(`_${e}_${i.path}`)),disableRipple:!0})),M.createElement(j.ListItemText,{primary:`${i.name} (${e})`}))})}),this._renderDefinedList(!0))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:M.createElement(Ne,null)},this.texts.close))):null}async getAdditionalColumns(){try{const e=await this.props.socket.getAdapters();let t=null;return e.forEach(i=>t=this.parseObjectForAdmins(t,i)),t}catch(e){return console.error(`Cannot get adapters: ${e}`),null}}checkUnsubscribes(){for(let e=this.subscribes.length-1;e>=0;e--)this.recordStates.includes(this.subscribes[e])||this.unsubscribe(this.subscribes[e]);this.recordStates=[]}findItem(e,t,i,r){if(t||=e.split("."),i||=this.root,!i||!t.length)return null;if(r=(r?`${r}.`:"")+t.shift(),i.children){const o=i.children.find(n=>n.data.id===r);if(o){if(o.data.id===e)return o;if(t.length)return this.findItem(e,t,o,r)}else return null}return null}onStateChange=(e,t)=>{if(console.log(`> stateChange ${e}`),this.states[e]){const i=this.findItem(e);i!=null&&i.data.state&&(i.data.state=void 0)}t?this.states[e]=t:delete this.states[e],this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout(()=>{this.statesUpdateTimer=null,this.forceUpdate()},300))};parseObjectForAdmins(e,t){var i;if((i=t.common)!=null&&i.adminColumns&&t.common.name){const r=t.common.adminColumns;let o;r&&typeof r!="object"?o=[r]:r&&(o=r);let n;r?n=o.map(a=>{if(typeof a!="object")return{path:a,name:a.split(".").pop()};const c=a;return c.objTypes&&typeof c.objTypes!="object"?c.objTypes=[c.objTypes]:c.objTypes||(c.objTypes=void 0),!c.name&&c.path?{path:c.path,name:c.path.split(".").pop(),width:c.width,edit:!!c.edit,type:c.type,objTypes:c.objTypes}:c.path?{path:c.path,name:Ye(c.name||"",this.props.lang),width:c.width,edit:!!c.edit,type:c.type,objTypes:c.objTypes}:(console.warn(`Admin columns for ${t._id} ignored, because path not found`),null)}).filter(a=>a):n=null,n!=null&&n.length&&(e||={},e[t.common.name]=n.sort((a,c)=>a.path>c.path?-1:a.path{if(Array.isArray(e)){let t=null;e.forEach(i=>{const{newInnerState:r,filtered:o}=this.processOnObjectChangeElement(i.id,i.obj);o||(r&&t?Object.assign(t,r):t=r)}),t&&this.setState(t),this.afterObjectUpdated()}};onObjectChange=(e,t)=>{const{newInnerState:i,filtered:r}=this.processOnObjectChangeElement(e,t);r||(i&&this.setState(i),this.afterObjectUpdated())};afterObjectUpdated(){!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout(()=>{this.objectsUpdateTimer=null;const{info:e,root:t}=$l(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=t,this.info=e,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()},500))}updateAliases(e){var i,r,o;if(!this.objects||!((i=this.info)!=null&&i.aliasesMap)||!(e!=null&&e.startsWith("alias.")))return;const t=Object.keys(this.objects).filter(n=>n.startsWith("alias.0"));this.info.aliasesMap={};for(const n of t){const a=this.objects[n];if((o=(r=a==null?void 0:a.common)==null?void 0:r.alias)!=null&&o.id)if(typeof a.common.alias.id=="string"){const c=a.common.alias.id;this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]}else{const c=a.common.alias.id.read;c&&(this.info.aliasesMap[c]?this.info.aliasesMap[c].includes(n)||this.info.aliasesMap[c].push(n):this.info.aliasesMap[c]=[n]);const l=a.common.alias.id.write;l&&(this.info.aliasesMap[l]?this.info.aliasesMap[l].includes(n)||this.info.aliasesMap[l].push(n):this.info.aliasesMap[l]=[n])}}}processOnObjectChangeElement(e,t){console.log(`> objectChange ${e}`);const i=t==null?void 0:t.type;if(t&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(t)&&i!=="channel"&&i!=="device"&&i!=="folder"&&i!=="adapter"&&i!=="instance")return{newInnerState:null,filtered:!0};let r=null;if(e.startsWith("system.adapter.")&&(t==null?void 0:t.type)==="adapter"){const o=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(o,t),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(o)&&(r={columnsForAdmin:o})}return this.objects||={},t?this.objects[e]=t:this.objects[e]&&delete this.objects[e],this.updateAliases(e),{newInnerState:r,filtered:!1}}subscribe(e){this.subscribes.includes(e)||(this.subscribes.push(e),console.log(`+ subscribe ${e}`),this.pausedSubscribes||this.props.socket.subscribeState(e,this.onStateChange).catch(t=>console.error(`Cannot subscribe on state ${e}: ${t}`)))}unsubscribe(e){const t=this.subscribes.indexOf(e);t!==-1&&(this.subscribes.splice(t,1),this.states[e]&&delete this.states[e],console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(e){!this.pausedSubscribes&&e?(this.pausedSubscribes=!0,this.subscribes.forEach(t=>this.props.socket.unsubscribeState(t,this.onStateChange))):this.pausedSubscribes&&!e&&(this.pausedSubscribes=!1,this.subscribes.forEach(t=>this.props.socket.subscribeState(t,this.onStateChange)))}onFilter(e,t){this.filterTimer=null;const i={...this.state.filter};Object.keys(this.filterRefs).forEach(r=>{var o;if((o=this.filterRefs[r])!=null&&o.current){const n=this.filterRefs[r].current;for(let a=0;athis.props.onFilterChanged&&this.props.onFilterChanged(i)))}clearFilter(){const e={...this.state.filter};Object.keys(this.filterRefs).forEach(t=>{var i;if((i=this.filterRefs[t])!=null&&i.current){const r=this.filterRefs[t].current;for(let o=0;o{var t,i;return(i=(t=this.props).onFilterChanged)==null?void 0:i.call(t,e)}))}isFilterEmpty(){return!Object.keys(this.state.filter).find(t=>t!=="expertMode"&&this.state.filter[t])}getFilterInput(e){var t,i,r;return M.createElement(j.FormControl,{sx:this.styles.filterInput,key:`${e}_${this.state.filterKey}`,title:e==="name"||e==="id"?this.props.t("ra_You can use * as wildcard"):void 0,margin:"dense"},M.createElement(j.Input,{ref:this.filterRefs[e],classes:{underline:"no-underline"},id:e,placeholder:this.texts[`filter_${e}`],defaultValue:this.state.filter[e]||"",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},autoComplete:"off"}),(r=(i=(t=this.filterRefs[e])==null?void 0:t.current)==null?void 0:i.firstChild)!=null&&r.value?M.createElement("div",{style:{position:"absolute",right:0}},M.createElement(j.IconButton,{size:"small",onClick:()=>{var o;((o=this.filterRefs[e].current)==null?void 0:o.firstChild).value="",this.onFilter(e,"")}},M.createElement(Ne,null))):null)}getFilterSelect(e,t){var r,o,n;const i=!!(t!=null&&t.find(a=>a.icon));return M.createElement("div",{style:{position:"relative"}},M.createElement(j.Select,{variant:"standard",key:`${e}_${this.state.filterKey}`,ref:this.filterRefs[e],sx:w.headerCellInput,className:"no-underline",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},defaultValue:this.state.filter[e]||"",inputProps:{name:e,id:e},displayEmpty:!0},M.createElement(j.MenuItem,{key:"empty",value:""},M.createElement("span",{style:w.selectNone},e==="custom"?this.texts.showAll:this.texts[`filter_${e}`])),t==null?void 0:t.map(a=>{let c,l,N;return typeof a=="object"?(c=a.value,l=a.name,N=a.icon):(c=a,l=a),M.createElement(j.MenuItem,{sx:w.headerCellSelectItem,key:c,value:c},N||(i?M.createElement("div",{className:"itemIcon"}):null),l)})),(n=(o=(r=this.filterRefs[e])==null?void 0:r.current)==null?void 0:o.childNodes[1])!=null&&n.value?M.createElement(j.Box,{component:"div",sx:w.selectClearButton},M.createElement(j.IconButton,{size:"small",onClick:()=>{var c;const a={...this.state.filter};a[e]="",((c=this.filterRefs[e].current)==null?void 0:c.childNodes[1]).value="",this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(a)),this.setState({filter:a,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(a))}},M.createElement(Ne,null))):null)}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles.map(e=>e.role))}getFilterSelectRoom(){const e=this.info.roomEnums.map(t=>{var i,r,o,n;return{name:Ye((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("room",e)}getFilterSelectFunction(){const e=this.info.funcEnums.map(t=>{var i,r,o,n;return{name:Ye((r=(i=this.objects[t])==null?void 0:i.common)==null?void 0:r.name,this.props.lang)||t.split(".").pop(),value:t,icon:M.createElement(me,{src:((n=(o=this.objects[t])==null?void 0:o.common)==null?void 0:n.icon)||"",style:w.selectIcon})}});return this.getFilterSelect("func",e)}getFilterSelectType(){const e=this.info.types.map(t=>({name:t,value:t,icon:Pl[t]||null}));return this.getFilterSelect("type",e)}getFilterSelectCustoms(){if(this.info.customs.length>1){const e=this.info.customs.map(t=>({name:t==="_"?this.texts.filterCustomsWithout:t,value:t,icon:t==="_"?null:M.createElement(me,{src:Zr(this.objects,t,this.props.lang,this.imagePrefix)||"",style:w.selectIcon})}));return this.getFilterSelect("custom",e)}return null}onExpandAll(e,t){var r;const i=e||this.root;t||=[],(r=i==null?void 0:i.children)==null||r.forEach(o=>{o.data.sumVisibility&&(t.push(o.data.id),this.onExpandAll(o,t))}),i===this.root&&(t.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t}))}onCollapseAll(){this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},()=>this.onAfterSelect())}expandDepth(e,t,i){var r;e||=this.root,t>0&&((r=e.children)==null||r.forEach(o=>{o.data.sumVisibility&&(vi(i,o.data.id)||(i.push(o.data.id),i.sort()),t-1>0&&this.expandDepth(o,t-1,i))}))}static collapseDepth(e,t){return t.filter(i=>i.split(".").length<=e)}onExpandVisible(){if(this.state.depth<9){const e=this.state.depth+1,t=[...this.state.expanded];this.root&&this.expandDepth(this.root,e,t),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}onStatesViewVisible(){const e=!this.state.statesView;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(e)),this.setState({statesView:e})}onCollapseVisible(){if(this.state.depth>0){const e=this.state.depth-1,t=it.collapseDepth(e,this.state.expanded);this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}getEnumsForId=e=>{const t=[];return this.info.enums.forEach(i=>{var r,o,n;if((n=(o=(r=this.objects[i])==null?void 0:r.common)==null?void 0:o.members)!=null&&n.includes(e)){const a={_id:this.objects[i]._id,common:JSON.parse(JSON.stringify(this.objects[i].common)),native:this.objects[i].native,type:"enum"};a.common&&(delete a.common.members,delete a.common.custom,delete a.common.mobile),t.push(a)}}),t.length?t:void 0};_createAllEnums=async(e,t)=>{var i,r;for(let o=0;or)break}return e}return[]}async _exportObjects(e){var o;if(e.isAll){Ql("allObjects.json",this.objects,e);return}if(!(this.state.selected.length||this.state.selectedNonObject)){window.alert(this.props.t("ra_Save of objects-tree is not possible"));return}const t={},i=this.state.selected[0]||this.state.selectedNonObject,r=this._getSelectedIdsForExport();for(const n of r){if(t[n]=JSON.parse(JSON.stringify(this.objects[n])),((o=t[n])==null?void 0:o.type)==="state"&&!e.noStatesByExportImport){const a=await this.props.socket.getState(n);a&&(t[n].val=a.val,t[n].ack=a.ack)}if(t[n].common){const a=this.getEnumsForId(n);a&&(t[n].common.enums=a)}}Ql(`${i}.json`,t,e)}renderExportDialog(){return this.state.showExportDialog===!1?null:M.createElement(j.Dialog,{open:!0,maxWidth:"lg"},M.createElement(j.DialogTitle,null,this.props.t("ra_Select type of export")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(M.Fragment,null,this.props.t("ra_You can export all objects or just the selected branch."),M.createElement("br",null),this.props.t("ra_Selected %s object(s)",this.state.showExportDialog),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.noStatesByExportImport,onChange:e=>this.setState({noStatesByExportImport:e.target.checked})}),label:this.props.t("ra_Do not export values of states")}),M.createElement("br",null),this.props.t("These options can reduce the size of the export file:"),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.beautifyJsonExport,onChange:e=>this.setState({beautifyJsonExport:e.target.checked})}),label:this.props.t("Beautify JSON output")}),M.createElement("br",null),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeSystemRepositoriesFromExport,onChange:e=>this.setState({excludeSystemRepositoriesFromExport:e.target.checked})}),label:this.props.t("Exclude system repositories from export JSON")}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{checked:this.state.excludeTranslations,onChange:e=>this.setState({excludeTranslations:e.target.checked})}),label:this.props.t("Exclude translations (except english) from export JSON")})):null)),M.createElement(j.DialogActions,null,this.state.filter.expertMode||this.state.showAllExportOptions?M.createElement(j.Button,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!0,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_All objects")),"(",Object.keys(this.objects).length,")"):M.createElement(j.Button,{color:"grey",variant:"outlined",startIcon:M.createElement($n,null),onClick:()=>this.setState({showAllExportOptions:!0})},this.props.t("ra_Advanced options")),M.createElement(j.Button,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!1,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},M.createElement("span",{style:{marginRight:8}},this.props.t("ra_Only selected")),"(",this.state.showExportDialog,")"),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1}),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}renderRenameDialog(){var t;if(!this.state.showRenameDialog)return null;const e=this.props.objectMoveRenameDialog;return M.createElement(e,{expertMode:this.props.expertMode,onClose:()=>this.setState({showRenameDialog:null}),id:this.state.showRenameDialog.id,childrenIds:this.state.showRenameDialog.childrenIds,theme:this.props.theme,socket:this.props.socket,t:this.props.t,objectType:(t=this.objects[this.state.showRenameDialog.id])==null?void 0:t.type})}handleJsonUpload(e){var r;const t=e.target,i=((r=t.files)==null?void 0:r.length)&&t.files[0];if(i){const o=new FileReader;o.onload=async n=>{var c;const a=(c=n.target)==null?void 0:c.result;try{const l=JSON.parse(a),N=Object.keys(l).length,u=l._id;if(u===void 0&&N)await this.loadObjects(l),window.alert(this.props.t("ra_%s object(s) processed",N));else{if(!u)return window.alert(this.props.t("ra_Invalid structure"));try{let L,g,y;if(l.common.enums&&(L=l.common.enums,delete l.common.enums),l.val&&(g=l.val,delete l.val),l.ack!==void 0&&(y=l.ack,delete l.ack),await this.props.socket.setObject(l._id,l),l.type==="state")if(g!=null)await this.props.socket.setState(l._id,g,y===void 0?!0:y);else{const T=await this.props.socket.getState(l._id);(!T||T.val===null||T.val===void 0)&&await this.props.socket.setState(l._id,l.common.def===void 0?null:l.common.def,!0)}L&&await this._createAllEnums(L,l._id),window.alert(this.props.t("ra_%s was imported",l._id))}catch(L){window.alert(L)}}}catch(l){window.alert(l)}return null},o.readAsText(i)}else window.alert(this.props.t("ra_Failed to open JSON File"))}toolTipObjectCreating=()=>{var i,r;const{t:e}=this.props;let t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];if(this.state.selected.length||this.state.selectedNonObject){const o=this.state.selected[0]||this.state.selectedNonObject;if(!(o.split(".").length<2||this.objects[o]&&((i=this.objects[o])==null?void 0:i.type)==="state"))if(this.state.filter.expertMode)switch((r=this.objects[o])==null?void 0:r.type){case"device":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"folder":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"channel":t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:1},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break}else(o.startsWith("alias.0")||o.startsWith("0_userdata"))&&(t=[M.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),M.createElement("div",{key:2},e("ra_Folder → State")),M.createElement("div",{key:3},e("ra_Folder → Channel → State")),M.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),M.createElement("div",{key:5},e("ra_Device → Channel → State")),M.createElement("div",{key:6},e("ra_Channel → State")),M.createElement("div",{key:7,style:{height:10}}),M.createElement("div",{key:7},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),M.createElement("div",{key:8},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))])}return t.length?t:e("ra_Add new child object to selected parent")};getToolbar(){let e=!1;if(this.state.selected.length||this.state.selectedNonObject){const t=this.state.selected[0]||this.state.selectedNonObject;t.split(".").length<2||this.objects[t]&&this.objects[t].type==="state"?e=!1:(this.state.filter.expertMode||t.startsWith("alias.0")||t.startsWith("0_userdata"))&&(e=!0)}return M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center",overflowX:"auto"}},M.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},M.createElement(j.Tooltip,{title:this.props.t("ra_Refresh tree"),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large"},M.createElement(TN,null)))),this.props.showExpertButton&&!this.props.expertMode&&M.createElement(j.Tooltip,{title:this.props.t("ra_expertMode"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large"},M.createElement($n,null))),!this.props.disableColumnSelector&&this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Configure"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"columnSelector",color:this.state.columnsAuto?"primary":"default",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large"},M.createElement(fg,null))),this.props.width!=="xs"&&this.state.expandAllVisible&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandAll",onClick:()=>this.onExpandAll(),size:"large"},M.createElement(fr,null))),M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse all nodes"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseAll",onClick:()=>this.onCollapseAll(),size:"large"},M.createElement(Ws,null))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Expand one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"expandVisible",color:"primary",onClick:()=>this.onExpandVisible(),size:"large"},M.createElement(j.Badge,{badgeContent:this.state.depth,color:"secondary",sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}})},M.createElement(fr,null)))),this.props.width!=="xs"&&M.createElement(j.Tooltip,{title:this.props.t("ra_Collapse one step node"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{key:"collapseVisible",color:"primary",onClick:()=>this.onCollapseVisible(),size:"large"},M.createElement(j.Badge,{sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),badgeContent:this.state.depth,color:"secondary"},M.createElement(Ws,null)))),this.props.objectStatesView&&M.createElement(j.Tooltip,{title:this.props.t("ra_Toggle the states view"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.onStatesViewVisible(),size:"large"},M.createElement(Dg,{color:this.state.statesView?"primary":"inherit"}))),M.createElement(j.Tooltip,{title:this.props.t("ra_Show/Hide object descriptions"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.desc`,this.state.showDescription?"false":"true"),this.setState({showDescription:!this.state.showDescription})},size:"large"},M.createElement(pg,{color:this.state.showDescription?"primary":"inherit"}))),this.props.objectAddBoolean?M.createElement(j.Tooltip,{title:this.toolTipObjectCreating(),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,M.createElement(j.IconButton,{disabled:!e,onClick:()=>this.setState({modalNewObj:{id:this.state.selected[0]||this.state.selectedNonObject}}),size:"large"},M.createElement(un,null)))):null,this.props.objectImportExport&&M.createElement(j.Tooltip,{title:this.props.t("ra_Add objects tree from JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("id","files"),t.setAttribute("opacity","0"),t.addEventListener("change",i=>this.handleJsonUpload(i),!1),t.click()},size:"large"},M.createElement(Sr,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&M.createElement(j.Tooltip,{title:this.props.t("ra_Save objects tree as JSON file"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large"},M.createElement(Sr,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&this.props.width!=="xs"&&M.createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter(t=>this.info.objects[t].type==="state").length}`),this.props.objectEditBoolean&&M.createElement(j.Tooltip,{title:this.props.t("ra_Edit custom config"),slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{onClick:()=>{var i;const t=this.root?v4(this.root,"state",this.objects):[];t.length?(this.pauseSubscribe(!0),t.length===1&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),(i=this.props.router)==null||i.doNavigate(null,"custom",this.state.selected[0])),this.setState({customDialog:t,customDialogAll:!0})):this.setState({toast:this.props.t("ra_please select object")})},size:"large"},M.createElement(eg,null))))}toggleExpanded(e){const t=JSON.parse(JSON.stringify(this.state.expanded)),i=t.indexOf(e);i===-1?(t.push(e),t.sort()):t.splice(i,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t})}onCopy(e,t){e.stopPropagation(),e.preventDefault(),t&&(O.copyToClipboard(t),t.length<50?this.setState({toast:this.props.t("ra_Copied %s",t)}):this.setState({toast:this.props.t("ra_Copied")}))}renderTooltipAccessControl=e=>{if(!e)return null;const t=[{value:"0x400",valueNum:1024,title:"read",group:"Owner"},{value:"0x200",valueNum:512,title:"write",group:"Owner"},{value:"0x40",valueNum:64,title:"read",group:"Group"},{value:"0x20",valueNum:32,title:"write",group:"Group"},{value:"0x4",valueNum:4,title:"read",group:"Everyone"},{value:"0x2",valueNum:2,title:"write",group:"Everyone"}],i=[],r=o=>{const n=e[o];t.forEach((a,c)=>{n&a.valueNum&&i.push(M.createElement("span",{key:o+c},this.texts[`acl${a.group}_${a.title}_${o}`],",",M.createElement("span",{style:o==="object"?w.rightsObject:w.rightsState},a.value)))})};return i.push(M.createElement("span",{key:"group"},`${this.texts.ownerGroup}: ${(e.ownerGroup||"").replace("system.group.","")}`)),i.push(M.createElement("span",{key:"owner"},`${this.texts.ownerUser}: ${(e.owner||"").replace("system.user.","")}`)),r("object"),e.state&&r("state"),i.length?M.createElement("span",{style:w.tooltipAccessControl},i.map(o=>o)):null};renderColumnButtons(e,t){var n,a,c,l;if(!t.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?M.createElement("div",{style:w.buttonDiv},this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsEmptyButton,...w.cellButtonMinWidth},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:{height:15}},"---")):null,this.props.onObjectDelete&&((n=t.children)!=null&&n.length)?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonsButtonAlone},size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{var g;const N=Object.keys(this.objects);N.sort();let u=0;const L=`${e}.`;for(let y=0;yL)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((g=t.children)!=null&&g.length),!1,u+1)}},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null):null;t.data.aclTooltip=t.data.aclTooltip||this.renderTooltipAccessControl(t.data.obj.acl);const i=t.data.obj.acl?t.data.obj.type==="state"?t.data.obj.acl.state:t.data.obj.acl.object:0,r=t.data.obj.acl&&(t.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object),o=this.state.filter.expertMode||it.isNonExpertId(t.data.id);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?M.createElement(j.Tooltip,{key:"acl",title:t.data.aclTooltip,slotProps:{popper:{sx:w.tooltip}}},M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...w.cellButtonMinWidth,opacity:1},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},M.createElement("div",{style:w.aclText},Number.isNaN(Number(i))?Number(r).toString(16):Number(i).toString(16)))):M.createElement("div",{key:"aclEmpty",style:w.cellButtonMinWidth}),o?M.createElement(j.IconButton,{key:"edit",sx:{marginRight:"2px",...w.cellButtonsButton},size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.setState({editObjectDialog:e,editObjectAlias:!1})}},M.createElement(mi,{style:w.cellButtonsButtonIcon})):M.createElement(j.Box,{component:"div",key:"editDisabled",sx:w.cellButtonsButton}),this.props.onObjectDelete&&((a=t.children)!=null&&a.length||!((c=t.data.obj.common)!=null&&c.dontDelete))?M.createElement(j.IconButton,{key:"delete",sx:w.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{var g,y,T;const N=Object.keys(this.objects);N.sort();let u=0;const L=`${e}.`;for(let d=0;dL)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((g=t.children)!=null&&g.length),!((T=(y=t.data.obj)==null?void 0:y.common)!=null&&T.dontDelete),u)},title:this.texts.deleteObject},M.createElement(nt,{style:w.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&t.data.obj.type==="state"&&((l=t.data.obj.common)==null?void 0:l.type)!=="file"?M.createElement(j.IconButton,{sx:{...w.cellButtonsButton,...t.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms},key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{var N;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.pauseSubscribe(!0),(N=this.props.router)==null||N.doNavigate(null,"customs",e),this.setState({customDialog:[e],customDialogAll:!1})}},M.createElement(ln,{style:w.cellButtonsButtonIcon})):null]}readHistory(e){var t,i;if(window.sparkline&&this.defaultHistory&&((i=(t=this.objects[e])==null?void 0:t.common)!=null&&i.custom)&&this.objects[e].common.custom[this.defaultHistory]){const r=new Date;r.setHours(r.getHours()-24),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0);const o=r.getTime();this.props.socket.getHistory(e,{instance:this.defaultHistory,start:o,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addId:!1,aggregate:"minmax"}).then(n=>{const a=window.document.getElementsByClassName("sparkline");for(let c=0;cconsole.warn(`Cannot read history: ${n}`))}}getTooltipInfo(e,t){var l,N,u;const i=this.objects[e],r=this.states[e],{valFull:o,fileViewer:n}=qo({state:r,obj:i,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,full:!0}),a=[];o==null||o.forEach(L=>{L.t===this.texts.quality&&r.q?(a.push(M.createElement("div",{style:w.cellValueTooltipBoth,key:L.t},L.t,": ",L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`}))):(a.push(M.createElement("div",{style:w.cellValueTooltipTitle,key:L.t},L.t,": ")),a.push(M.createElement("div",{style:w.cellValueTooltipValue,key:`${L.t}_v`},L.v)),L.nbr||a.push(M.createElement("br",{key:`${L.t}_br`})))});const c=((l=i==null?void 0:i.common)==null?void 0:l.role)||"";n==="image"?a.push(M.createElement("img",{style:w.cellValueTooltipImage,src:r.val,alt:e})):c==="url"||i.common.role==="url.self"||i.common.role==="url.blank"?a.unshift(M.createElement("div",{key:"ctrl",style:{textDecoration:"underline",fontWeight:"bold"}},this.texts.ctrlForLink)):this.defaultHistory&&((u=(N=i==null?void 0:i.common)==null?void 0:N.custom)!=null&&u[this.defaultHistory])&&a.push(M.createElement("svg",{key:"sparkline",className:"sparkline","data-id":e,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"})),this.setState({tooltipInfo:{el:a,id:e}},()=>t&&t())}renderColumnValue(e,t,i){var c,l;const r=t.data.obj;if(!r||!this.states)return null;if(((c=r.common)==null?void 0:c.type)==="file")return M.createElement(j.Box,{component:"div",sx:{...w.cellValueText,...w.cellValueFile}},"[file]");if(!this.states[e])return r.type==="state"&&(this.recordStates.includes(e)||this.recordStates.push(e),this.states[e]={val:null},this.subscribe(e)),null;this.recordStates.includes(e)||this.recordStates.push(e);const o=this.states[e];let n=t.data.state;if(!n){const{valText:N}=qo({state:o,obj:r,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma}),u=[];if(t.data.state={valTextRx:u},u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}valText`,style:{whiteSpace:"nowrap",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}},N.v.toString())),N.u&&u.push(M.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:w.cellValueTextUnit,key:`${N.v.toString()}unit`},N.u)),N.s!==void 0&&u.push(M.createElement("span",{style:w.cellValueTextState,className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${N.v.toString()}states`},"(",N.s,")")),!i){const L=N.c!==void 0?N.c:N.v||"";u.push(M.createElement(Ts,{className:"copyButton",style:this.styles.iconCopy,onClick:g=>this.onCopy(g,L),key:"cc"}))}n=t.data.state}n.style=NSe({state:o,isExpertMode:this.state.filter.expertMode,isButton:t.data.button});let a=n.valTextRx;return this.state.filter.expertMode||(t.data.button?a=[M.createElement(MSe,{key:"button",style:{color:n.style.color,...w.cellValueButton}})]:t.data.switch&&(a=[M.createElement(j.Switch,{key:"switch",sx:{"& .MuiSwitch-thumb":{color:n.style.color},"& .MuiSwitch-track":{backgroundColor:this.states[e].val&&this.state.selected.includes(e)?this.props.themeType==="dark"?"#FFF !important":"#111 !important":void 0}},checked:!!this.states[e].val})])),M.createElement(j.Tooltip,{key:"value",title:(l=this.state.tooltipInfo)==null?void 0:l.el,slotProps:{popper:{sx:w.cellValueTooltipBox},tooltip:{sx:w.cellValueTooltip}},onOpen:()=>this.getTooltipInfo(e,()=>this.readHistory(e)),onClose:()=>{var N;return((N=this.state.tooltipInfo)==null?void 0:N.id)===e&&this.setState({tooltipInfo:null})}},M.createElement(j.Box,{component:"div",style:n.style,className:t.data.url?"iob-link":void 0,sx:{...w.cellValueText,height:i?void 0:pe,"& .admin-button:active":{transform:"translate(0, 2px)"}}},a))}_syncEnum(e,t,i,r){var a,c,l;if(!(t!=null&&t.length)){r&&r();return}const o=t.pop()||"",n=[];if((a=this.info.objects[o])!=null&&a.common){if((c=this.info.objects[o].common.members)!=null&&c.length){const N=this.info.objects[o].common.members.indexOf(e);if(N!==-1&&!i.includes(o)){const u=JSON.parse(JSON.stringify(this.info.objects[o]));u.common.members.splice(N,1),n.push(this.props.socket.setObject(o,u).then(()=>this.info.objects[o]=u).catch(L=>this.showError(L)))}}if(i.includes(o)&&!((l=this.info.objects[o].common.members)!=null&&l.includes(e))){const N=JSON.parse(JSON.stringify(this.info.objects[o]));N.common.members||=[],N.common.members.push(e),N.common.members.sort(),n.push(this.props.socket.setObject(o,N).then(()=>this.info.objects[o]=N).catch(u=>this.showError(u)))}}Promise.all(n).then(()=>{setTimeout(()=>this._syncEnum(e,t,i,r),0)})}syncEnum(e,t,i){const r=[...this.info[t==="func"?"funcEnums":"roomEnums"]];return new Promise(o=>{this._syncEnum(e,r,i,()=>{o()})})}renderEnumDialog(){if(!this.state.enumDialog)return null;const e=this.state.enumDialog.type,t=this.state.enumDialog.item,i=this.state.enumDialogEnums,r=this.state.enumDialog.enumsOriginal,o=(e==="room"?this.info.roomEnums:this.info.funcEnums).map(n=>{var a,c;return{name:Ye(((c=(a=this.objects[n])==null?void 0:a.common)==null?void 0:c.name)||n.split(".").pop()||"",this.props.lang),value:n,icon:Zr(this.objects,n,this.props.lang,this.imagePrefix)}}).sort((n,a)=>n.name>a.name?1:-1);return o.forEach(n=>{n.icon&&typeof n.icon=="string"&&(n.icon=M.createElement(j.Box,{style:w.enumIconDiv},M.createElement("img",{src:n.icon,style:w.enumIcon,alt:n.name})))}),M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":w.enumDialog},onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"enum-dialog-title",style:{display:"flex",justifyContent:"space-between",width:"100%",flexWrap:"nowrap",gap:8,paddingRight:12}},e==="func"?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),M.createElement(j.Fab,{color:"primary",disabled:r===JSON.stringify(i),size:"small",onClick:()=>this.syncEnum(t.data.id,e,i).then(()=>this.setState({enumDialog:null,enumDialogEnums:null}))},M.createElement(Oe,null))),M.createElement(j.List,{sx:{"&.MuiList-root":w.enumList}},o.map(n=>{let a,c,l;typeof n=="object"?(a=n.value,c=n.name,l=n.icon):(a=n,c=n);const N=`checkbox-list-label-${a}`;return M.createElement(j.ListItem,{sx:w.headerCellSelectItem,key:a,onClick:()=>{const u=i.indexOf(a),L=JSON.parse(JSON.stringify(this.state.enumDialogEnums));u===-1?(L.push(a),L.sort()):L.splice(u,1),this.setState({enumDialogEnums:L})},secondaryAction:l},M.createElement(j.ListItemIcon,{sx:{"&.MuiListItemIcon-root":w.enumCheckbox}},M.createElement(j.Checkbox,{edge:"start",checked:i.includes(a),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":N}})),M.createElement(j.ListItemText,{id:N},c))})))}renderEditRoleDialog(){var e,t;if(!this.state.roleDialog||!this.props.objectBrowserEditRole)return null;if(this.state.roleDialog&&this.props.objectBrowserEditRole){const i=this.props.objectBrowserEditRole;return M.createElement(i,{key:"objectBrowserEditRole",id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roleArray:this.info.roles,commonType:(t=(e=this.info.objects[this.state.roleDialog])==null?void 0:e.common)==null?void 0:t.type,onClose:r=>{r&&(this.info.objects[this.state.roleDialog]=r),this.setState({roleDialog:null})}})}return null}onColumnsEditCustomDialogClose(e){var i,r;const t=this.customColumnDialog;if(e){let o=t.value;t.type==="boolean"?o=o==="true"||o===!0:t.type==="number"&&(o=parseFloat(o)),this.customColumnDialog=null,this.props.socket.getObject(((r=(i=this.state.columnsEditCustomDialog)==null?void 0:i.obj)==null?void 0:r._id)||"").then(n=>{var a;if(n&&it.setCustomValue(n,(a=this.state.columnsEditCustomDialog)==null?void 0:a.it,o))return this.props.socket.setObject(n._id,n);throw new Error(this.props.t("ra_Cannot update attribute, because not found in the object"))}).then(()=>this.setState({columnsEditCustomDialog:null})).catch(n=>this.showError(n))}else this.customColumnDialog=null,this.setState({columnsEditCustomDialog:null})}renderColumnsEditCustomDialog(){if(!this.state.columnsEditCustomDialog)return null;if(!this.customColumnDialog){const e=it.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof e,initValue:(e??"").toString(),value:(e??"").toString()}}return M.createElement(j.Dialog,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0},M.createElement(j.DialogTitle,{id:"custom-dialog-title"},`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"alert-dialog-description"},this.customColumnDialog.type==="boolean"?M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:this.customColumnDialog.value==="true",onChange:e=>{const t=this.customColumnDialog;t.value=e.target.checked.toString();const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):M.createElement(j.TextField,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:e=>{const t=this.customColumnDialog;t.value=e.target.value;const i=t.value!==t.initValue;i===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:i})},autoFocus:!0}))),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:M.createElement(Oe,null)},this.props.t("ra_Update")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:M.createElement(Ne,null)},this.props.t("ra_Cancel"))))}static getCustomValue(e,t){var i;if((i=e==null?void 0:e._id)!=null&&i.startsWith(`${t.adapter}.`)&&t.path.length>1){const r=t.path;let o;const n=e;if(n[r[0]]&&typeof n[r[0]]=="object")return r.length===2?o=n[r[0]][r[1]]:r.length===3?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"?n[r[0]][r[1]][r[2]]:null:r.length===4?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]?n[r[0]][r[1]][r[2]][r[3]]:null:r.length===5?o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]?n[r[0]][r[1]][r[2]][r[3]][r[4]]:null:r.length===6&&(o=n[r[0]][r[1]]&&typeof n[r[0]][r[1]]=="object"&&n[r[0]][r[1]][r[2]]&&n[r[0]][r[1]][r[2]][r[3]]&&n[r[0]][r[1]][r[2]][r[3]][r[4]]?n[r[0]][r[1]][r[2]][r[3]][r[4]][r[5]]:null),o??null}return null}static setCustomValue(e,t,i){var r;if((r=e==null?void 0:e._id)!=null&&r.startsWith(`${t.adapter}.`)&&t.path.length>1){const o=t.path,n=e;if(n[o[0]]&&typeof n[o[0]]=="object"){if(o.length===2)return n[o[0]][o[1]]=i,!0;if(o.length===3){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object")return n[o[0]][o[1]][o[2]]=i,!0}else if(o.length===4){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object")return n[o[0]][o[1]][o[2]][o[3]]=i,!0}else if(o.length===5){if(n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]]=i,!0}else if(o.length===6&&n[o[0]][o[1]]&&typeof n[o[0]][o[1]]=="object"&&n[o[0]][o[1]][o[2]]&&typeof n[o[0]][o[1]][o[2]]=="object"&&n[o[0]][o[1]][o[2]][o[3]]&&typeof n[o[0]][o[1]][o[2]][o[3]]=="object"&&n[o[0]][o[1]][o[2]][o[3]][o[4]]&&typeof n[o[0]][o[1]][o[2]][o[3]][o[4]]=="object")return n[o[0]][o[1]][o[2]][o[3]][o[4]][o[5]]=i,!0}}return!1}renderCustomValue(e,t,i){const r=it.getCustomValue(e,t);return r!=null?t.edit&&!this.props.notEditable&&(!t.objTypes||t.objTypes.includes(e.type))?M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w.columnCustomEditable,...w[`columnCustom_${t.align}`]},onClick:()=>this.setState({columnsEditCustomDialog:{item:i,it:t,obj:e},customColumnDialogValueChanged:!1})},r):M.createElement(j.Box,{component:"div",style:{...w.columnCustom,...w[`columnCustom_${t.align}`]}},r):null}renderAliasLink(e,t,i){const r=t||0,o=this.objects[this.info.aliasesMap[e][r]].common.alias.id;return o?M.createElement(j.Box,{component:"div",onClick:n=>{n.stopPropagation(),n.preventDefault();const a=this.info.aliasesMap[e][r];this.info.aliasesMap[e].length>1&&this.setState({aliasMenu:""}),this.onSelect(a),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(a)),100)},sx:i||this.styles.aliasAlone},M.createElement("span",{className:"admin-browser-arrow"},typeof o=="string"||o.read===e&&o.write===e?"↔":o.read===e?"→":"←"),this.info.aliasesMap[e][r]):null}renderLeaf(e,t,i){var ai,Mi,ci,tr,sr,AM,mM,OM,EM,fM,xM,_M,SM,kM;const r=e.data.id;i.count++,t=t===void 0?this.state.expanded.includes(r):t;let o;const n=e.data.obj,a=n==null?void 0:n.type;e.children||a==="folder"||a==="device"||a==="channel"||a==="meta"?o=t?M.createElement(fr,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):M.createElement(Ws,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(r)}):n&&n.common&&n.common.write===!1&&n.type==="state"?o=M.createElement(eSe,{style:this.styles.cellIdIconDocument}):o=M.createElement(q_e,{style:this.styles.cellIdIconDocument});let c=null;e.data.icon&&(typeof e.data.icon=="string"?e.data.icon.length<3?c=M.createElement("span",{className:"iconOwn",style:w.cellIdIconOwn},e.data.icon):c=M.createElement(me,{style:w.cellIdIconOwn,className:"iconOwn",src:e.data.icon,alt:""}):c=e.data.icon);const l=n==null?void 0:n.common,N=(n==null?void 0:n.type)&&Pl[n.type]||M.createElement("div",{className:"itemIcon"}),u=this.levelPadding*(e.data.level||0);if(e.data.lang!==this.props.lang){const{rooms:k,per:q}=U4(this.info,r,this.props.lang);e.data.rooms=k.join(", "),e.data.per=q;const{funcs:fe,pef:de}=$4(this.info,r,this.props.lang);e.data.funcs=fe.join(", "),e.data.pef=de,e.data.lang=this.props.lang}const L=this.props.multiSelect&&this.objects[r]&&(!this.props.types||this.props.types.includes(this.objects[r].type))?M.createElement(j.Checkbox,{style:w.checkBox,checked:this.state.selected.includes(r)}):null;let g=!this.props.notEditable&&a==="state"&&(this.state.filter.expertMode||(l==null?void 0:l.write)!==!1);this.props.objectBrowserViewFile&&(l==null?void 0:l.type)==="file"&&(g=!0);const y=!this.props.notEditable&&this.objects[r]&&(this.state.filter.expertMode||a==="state"||a==="channel"||a==="device"),T=this.state.statesView&&(a==="state"||a==="channel"||a==="device");let d="";const z=[];if(T&&(d=(ai=this.states[r])==null?void 0:ai.from,d===void 0?d=" ":(d=d?d.replace(/^system\.adapter\.|^system\./,""):"",z.push(`${this.texts.stateChangedFrom} ${d}`)),n!=null&&n.user)){const k=n.user.replace("system.user.","");d+=`/${k}`,z.push(`${this.texts.stateChangedBy} ${k}`)}n&&(n.from&&z.push(`${this.texts.objectChangedFrom} ${n.from.replace(/^system\.adapter\.|^system\./,"")}`),n.user&&z.push(`${this.texts.objectChangedBy} ${n.user.replace(/^system\.user\./,"")}`),n.ts&&z.push(`${this.texts.objectChangedByUser} ${O.formatDate(new Date(n.ts),this.props.dateFormat||this.systemConfig.common.dateFormat)}`));let I=!1,C=null;r.startsWith("alias.")&&((Mi=l==null?void 0:l.alias)!=null&&Mi.id)?(I=typeof l.alias.id=="object",I?C=M.createElement("div",{style:w.cellIdAliasReadWriteDiv},l.alias.id.read?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.read),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.read)),100)},sx:this.styles.aliasReadWrite},"←",l.alias.id.read):null,l.alias.id.write?M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id.write),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id.write)),100)},sx:this.styles.aliasReadWrite},"→",l.alias.id.write):null):C=M.createElement(j.Box,{component:"div",onClick:k=>{k.stopPropagation(),k.preventDefault(),this.onSelect(l.alias.id),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(l.alias.id)),100)},sx:this.styles.aliasAlone},"→",l.alias.id)):this.info.aliasesMap[r]&&(this.info.aliasesMap[r].length>1?C=M.createElement(j.Box,{component:"div",id:`alias_${r}`,onClick:k=>{k.stopPropagation(),k.preventDefault(),this.setState({aliasMenu:r})},sx:this.styles.aliasAlone},this.props.t("ra_%s links from aliases",this.info.aliasesMap[r].length)):C=this.renderAliasLink(r,0));let m=l==null?void 0:l.color,A;if(m&&!this.state.selected.includes(r)){const k=this.props.themeName==="dark"?"#1f1f1f":this.props.themeName==="blue"?"#222a2e":"#FFFFFF";O.colorDistance(m,k)<1e3&&(A=this.props.themeType==="dark"?"#9a9a9a":"#565656")}let D=!1;r==="0_userdata"?(m=f4(this.props.themeType),D=!0):r==="alias"?(m=x4(this.props.themeType),D=!0):r==="javascript"?(m=aSe(this.props.themeType),D=!0):r==="system"?(m=_4(this.props.themeType),D=!0):r==="system.adapter"?m=S4(this.props.themeType):(!m||this.state.selected.includes(r))&&(m="inherit");const p=[];if(l!=null&&l.statusStates){const k={};Object.keys(l.statusStates).forEach(fe=>{var tt;let de=l.statusStates[fe];de.split(".").length<3&&(de=`${r}.${de}`),k[fe]=de,this.states[de]?this.recordStates.includes(de)||this.recordStates.push(de):((tt=this.objects[de])==null?void 0:tt.type)==="state"&&(this.recordStates.includes(de)||this.recordStates.push(de),this.states[de]={val:null},this.subscribe(de))});let q=!1;l.statusStates.errorId&&this.states[k.errorId]&&this.states[k.errorId].val&&(m=this.props.themeType==="dark"?k4:Y4,q=!0,p.push(M.createElement(Mg,{key:"error",style:this.styles.iconDeviceError}))),k.onlineId&&this.states[k.onlineId]?q?this.states[k.onlineId].val?p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):this.states[k.onlineId].val?(m=this.props.themeType==="dark"?Wn:Bn,p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))):(m=this.props.themeType==="dark"?Jn:Rn,p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):k.offlineId&&this.states[k.offlineId]&&(q?this.states[k.offlineId].val?p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected})):p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected})):this.states[k.offlineId].val?(m=this.props.themeType==="dark"?Jn:Rn,p.push(M.createElement(rr,{key:"disc",style:this.styles.iconDeviceDisconnected}))):(m=this.props.themeType==="dark"?Wn:Bn,p.push(M.createElement(Qs,{key:"conn",style:this.styles.iconDeviceConnected}))))}const _=T?O.quality2text(((ci=this.states[r])==null?void 0:ci.q)||0).join(", "):null;let x=((tr=e.data)==null?void 0:tr.title)||"",P=!1;if(this.state.showDescription){const k=b4(e.data,this.props.lang);k&&(x=[M.createElement("div",{key:"name",style:w.cellNameDivDiv},x),M.createElement("div",{key:"desc",style:w.cellDescription},k)],P=!!k)}const v=this.props.width==="xs"&&this.state.focused===r,ee=M.createElement(j.Grid2,{container:!0,wrap:"nowrap",direction:"row",sx:w.cellId,style:{width:this.columnsVisibility.id,paddingLeft:u}},M.createElement(j.Grid2,{container:!0,alignItems:"center"},L,o),M.createElement(j.Grid2,{style:{...w.cellIdSpan,...A?this.styles.invertedBackground:void 0,color:m,fontWeight:D?"bold":void 0}},M.createElement(j.Tooltip,{title:lSe(e.data,this.props.lang),slotProps:{popper:{sx:w.tooltip}}},M.createElement("div",null,e.data.name)),C,p),M.createElement("div",{style:{...w.grow,...A?this.styles.invertedBackgroundFlex:{}}}),M.createElement(j.Grid2,{container:!0,alignItems:"center"},c),this.props.width!=="xs"?M.createElement("div",null,M.createElement(Ts,{className:v?"":"copyButton",style:w.cellCopyButton,onClick:k=>this.onCopy(k,r)})):null);let ue=v&&x||this.columnsVisibility.name?M.createElement(j.Box,{component:"div",sx:{...w.cellName,...P?w.cellNameWithDesc:void 0,width:this.props.width!=="xs"?this.columnsVisibility.name:void 0,ml:v?0:"5px"}},x,!v&&((sr=e.data)!=null&&sr.title)?M.createElement(j.Box,{style:{color:m}},M.createElement(Ts,{className:"copyButton",style:w.cellCopyButton,onClick:k=>{var q;return this.onCopy(k,(q=e.data)==null?void 0:q.title)}})):null):null,G;this.state.statesView?G=[v&&T&&((AM=this.states[r])!=null&&AM.from)||this.columnsVisibility.changedFrom?{el:M.createElement("div",{key:"from",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.changedFrom:void 0},title:z.join(` +`)},T&&((mM=this.states[r])!=null&&mM.from)?d:null),type:"from"}:null,v&&_||this.columnsVisibility.qualityCode?{el:M.createElement("div",{key:"q",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.qualityCode:void 0},title:_||""},_),type:"quality"}:null,v&&T&&((OM=this.states[r])!=null&&OM.ts)||this.columnsVisibility.timestamp?{el:M.createElement("div",{key:"ts",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.timestamp:void 0}},T&&((EM=this.states[r])!=null&&EM.ts)?O.formatDate(new Date(this.states[r].ts),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"ts"}:null,v&&T&&((fM=this.states[r])!=null&&fM.lc)||this.columnsVisibility.lastChange?{el:M.createElement("div",{key:"lc",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.lastChange:void 0}},T&&((xM=this.states[r])!=null&&xM.lc)?O.formatDate(new Date(this.states[r].lc),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"lc"}:null]:G=[v&&(n!=null&&n.type)||this.columnsVisibility.type?{el:M.createElement("div",{key:"type",style:{...w.cellType,width:this.props.width!=="xs"?this.columnsVisibility.type:void 0}},N," ",n==null?void 0:n.type),type:"filter_type"}:null,v&&l||this.columnsVisibility.role?{el:M.createElement("div",{key:"role",style:{...w.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.role:"100%",cursor:this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?"text":"default"},onClick:!v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0},l==null?void 0:l.role),type:"filter_role",onClick:v&&this.state.filter.expertMode&&y&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0}:null,v&&l||this.columnsVisibility.room?{el:M.createElement("div",{key:"room",style:{...w.cellRoom,...e.data.per?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.room:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=Ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.rooms),type:"filter_room",onClick:v&&y?()=>{const k=Ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(k)}})}:void 0}:null,v&&l||this.columnsVisibility.func?{el:M.createElement("div",{key:"func",style:{...w.cellFunc,...e.data.pef?w.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.func:"100%",cursor:y?"text":"default"},onClick:!v&&y?()=>{const k=Ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0},e.data.funcs),type:"filter_func",onClick:v&&y?()=>{const k=Ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:k,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(k)}})}:void 0}:null];let H=((_M=this.adapterColumns)==null?void 0:_M.map(k=>M.createElement("div",{style:{...w.cellAdapter,width:this.props.width!=="xs"?this.columnsVisibility[k.id]:void 0},key:k.id,title:`${k.adapter} => ${k.pathText}`},n?this.renderCustomValue(n,k,e):null)))||null;const Te=v||this.columnsVisibility.val?this.renderColumnValue(r,e,v):null;let Fe=v&&Te||this.columnsVisibility.val?M.createElement("div",{style:{...w.cellValue,width:this.props.width!=="xs"?this.columnsVisibility.val:"calc(100% - 100px)",cursor:g?(l==null?void 0:l.type)==="file"?"zoom-in":e.data.button?"grab":"text":"default"},onClick:k=>{var q,fe,de;if(g){if(!(!n||!this.states))if((l==null?void 0:l.type)==="file")this.setState({viewFileDialog:r});else if(e.data.url&&k.ctrlKey){if((q=this.states[r])!=null&&q.val&&typeof this.states[r].val=="string")if((l==null?void 0:l.role)==="url.self")window.location.href=this.states[r].val;else{const tt=window.open(this.states[r].val,"_blank");tt==null||tt.focus()}}else!this.state.filter.expertMode&&e.data.button?this.props.socket.setState(r,!0).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):!this.state.filter.expertMode&&e.data.switch?this.props.socket.setState(r,!this.states[r].val).catch(tt=>window.alert(`Cannot write state "${r}": ${tt}`)):(this.edit={val:this.states[r]?this.states[r].val:"",q:this.states[r]&&this.states[r].q||0,ack:!1,id:r},this.setState({updateOpened:!0}))}else(l==null?void 0:l.role)==="url"||(l==null?void 0:l.role)==="url.blank"&&k.ctrlKey?(fe=this.states[r])!=null&&fe.val&&typeof this.states[r].val=="string"&&window.open(this.states[r].val,"_blank"):(l==null?void 0:l.role)==="url.self"&&k.ctrlKey&&(de=this.states[r])!=null&&de.val&&typeof this.states[r].val=="string"&&(window.location.href=this.states[r].val)}},Te):null,Ge=v||this.columnsVisibility.buttons?M.createElement("div",{style:{...w.cellButtons,width:this.props.width!=="xs"?this.columnsVisibility.buttons:void 0}},this.renderColumnButtons(r,e)):null,Ls=null;if(this.props.width==="xs"&&this.state.focused===r){G=G.filter(q=>q);let k;G.length?k=G.map(q=>q?M.createElement("div",{key:q.type,style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts[q.type],":"),q.el,M.createElement("div",{style:{flexGrow:1}}),q.onClick?M.createElement(mi,{style:w.cellCopyButtonInDetails,onClick:()=>{q!=null&&q.onClick&&q.onClick()}}):null):null):k=null,H.length||(H=null),Ls=M.createElement(j.Paper,{style:{width:"100%",display:"flex",flexDirection:"column",padding:10,backgroundColor:this.props.theme.palette.mode==="dark"?"#333":"#ccc"}},M.createElement("div",{style:w.cellDetailsLine},M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{style:w.cellCopyButtonInDetails,onClick:q=>this.onCopy(q,r)})),ue&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.name,":"),ue,M.createElement("div",{style:{flexGrow:1}}),(SM=e.data)!=null&&SM.title?M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{var fe;return this.onCopy(q,(fe=e.data)==null?void 0:fe.title)}}):null),k,H&&M.createElement("div",{style:w.cellDetailsLine},H),((kM=this.objects[r])==null?void 0:kM.type)==="state"&&M.createElement("div",{style:w.cellDetailsLine},M.createElement("span",{style:w.cellDetailsName},this.texts.value,":"),Fe,M.createElement("div",{style:{flexGrow:1}}),M.createElement(Ts,{className:"copyButton",style:w.cellCopyButtonInDetails,onClick:q=>{const{valText:fe}=qo({state:this.states[r],obj:this.objects[r],texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma});this.onCopy(q,fe.c!==void 0?fe.c:fe.v.toString())},key:"cc"})),Ge&&M.createElement("div",{style:{...w.cellDetailsLine,justifyContent:"right"}},Ge)),ue=null,G=null,H=null,Fe=null,Ge=null}return{row:M.createElement(j.Grid2,{container:!0,direction:"row",wrap:"nowrap",sx:O.getStyle(this.props.theme,w.tableRow,this.state.linesEnabled&&w.tableRowLines,!this.props.dragEnabled&&w.tableRowNoDragging,C&&w.tableRowAlias,I&&w.tableRowAliasReadWrite,this.state.focused===r&&this.props.multiSelect&&w.tableRowFocused,!e.data.visible&&w.filteredOut,e.data.hasVisibleParent&&!e.data.visible&&!e.data.hasVisibleChildren&&w.filteredParentOut,this.state.selected.includes(r)&&w.itemSelected,this.state.selectedNonObject===r&&w.itemSelected),key:r,id:r,onMouseDown:k=>{this.onSelect(r);let q;"which"in k?q=k.which===3:"button"in k&&(q=k.button===2),q?this.contextMenu={item:e,ts:Date.now()}:this.contextMenu=null},onDoubleClick:()=>{e.children?this.toggleExpanded(r):this.onSelect(r,!0)}},ee,ue,G==null?void 0:G.map(k=>k==null?void 0:k.el),H,Fe,Ge),details:Ls}}renderItem(e,t,i){const r=[];i=i||{count:0};const o=this.renderLeaf(e,t,i);let n;const a=this.props.DragWrapper;return this.props.dragEnabled&&a?e.data.sumVisibility?n=M.createElement(a,{key:e.data.id,item:e,style:w.draggable},o.row):n=M.createElement("div",{key:e.data.id,style:w.nonDraggable},o.row):n=o.row,e.data.id&&n&&r.push(n),o.details&&r.push(o.details),t=t===void 0?vi(this.state.expanded,e.data.id):t,(!e.data.id||t)&&(this.state.foldersFirst?e.children&&(r.push(e.children.map(c=>c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null)),r.push(e.children.map(c=>!c.children&&(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))):e.children&&r.push(e.children.map(c=>(!this.state.columnsSelectorShow||i.count<15)&&c.data.sumVisibility?this.renderItem(c,void 0,i):null))),r}calculateColumnsVisibility(e,t,i,r){let o=r||this.state.columnsWidths;const n=i||this.state.columnsForAdmin,a=t||this.state.columns||[],c=typeof e!="boolean"?this.state.columnsAuto:e;o=JSON.parse(JSON.stringify(o)),Object.keys(o).forEach(N=>{o[N]&&(o[N]=parseInt(o[N],10)||0)}),this.adapterColumns=[];const l=le[this.props.width||"lg"].widths;if(c){if(this.columnsVisibility={id:le[this.props.width||"lg"].idWidth,name:this.visibleCols.includes("name")&&l.name||0,nameHeader:this.visibleCols.includes("name")&&l.name||0,type:this.visibleCols.includes("type")&&l.type||0,role:this.visibleCols.includes("role")&&l.role||0,room:this.visibleCols.includes("room")&&l.room||0,func:this.visibleCols.includes("func")&&l.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&l.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&l.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&l.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&l.lastChange||0,val:this.visibleCols.includes("val")&&l.val||0,buttons:this.visibleCols.includes("buttons")&&l.buttons||0},this.columnsVisibility.name&&!this.customWidth){let N=this.columnsVisibility.id||0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.name=`calc(100% - ${N+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${N+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let N=0;this.state.statesView?(N+=this.columnsVisibility.changedFrom||0,N+=this.columnsVisibility.qualityCode||0,N+=this.columnsVisibility.timestamp||0,N+=this.columnsVisibility.lastChange||0):(N+=this.columnsVisibility.type||0,N+=this.columnsVisibility.role||0,N+=this.columnsVisibility.room||0,N+=this.columnsVisibility.func||0),N+=this.columnsVisibility.val||0,N+=this.columnsVisibility.buttons||0,this.columnsVisibility.id=`calc(100% - ${N+5}px)`}}else{const N=this.props.width||"lg";this.columnsVisibility={id:o.id||le[N].idWidth,name:a.includes("name")&&(o.name||l.name||le[N].widths.name)||0,type:a.includes("type")&&(o.type||l.type||le[N].widths.type)||0,role:a.includes("role")&&(o.role||l.role||le[N].widths.role)||0,room:a.includes("room")&&(o.room||l.room||le[N].widths.room)||0,func:a.includes("func")&&(o.func||l.func||le[N].widths.func)||0};let u=this.columnsVisibility.id;if(this.columnsVisibility.name&&(u+=this.columnsVisibility.type||0,u+=this.columnsVisibility.role||0,u+=this.columnsVisibility.room||0,u+=this.columnsVisibility.func||0),n&&a&&Object.keys(n).sort().forEach(L=>n[L].forEach(g=>{const y=`_${L}_${g.path}`;if(a.includes(y)){const T={adapter:L,id:`_${L}_${g.path}`,name:g.name,path:g.path.split("."),pathText:g.path};g.edit&&(T.edit=!0,g.type&&(T.type=g.type),g.objTypes&&(T.objTypes=g.objTypes)),this.adapterColumns.push(T),this.columnsVisibility[y]=o[T.id]||g.width||le[N].widths.func||le.xl.widths.func||0,u+=this.columnsVisibility[y]}else this.columnsVisibility[y]=0})),this.adapterColumns.sort((L,g)=>L.id>g.id?-1:L.idy==="id"||typeof this.columnsVisibility[y]=="string"||!this.columnsVisibility[y]?g:g+this.columnsVisibility[y],0);this.columnsVisibility.id=`calc(100% - ${L}px)`}}}resizerMouseMove=e=>{if(this.resizerActiveDiv){let t,i;this.resizeLeft?(t=this.resizerOldWidth-e.clientX+this.resizerPosition,i=this.resizerOldWidthNext+e.clientX-this.resizerPosition):(t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition),this.resizerActiveName&&this.resizerNextName&&(!this.resizerMin||t>this.resizerMin)&&(!this.resizerNextMin||i>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=t,this.resizerCurrentWidths[this.resizerNextName]=i,this.resizerActiveDiv.style.width=`${t}px`,this.resizerNextDiv&&(this.resizerNextDiv.style.width=`${i}px`),this.columnsVisibility[this.resizerActiveName]=t,this.columnsVisibility[this.resizerNextName]=i,this.resizerNextName==="nameHeader"?(this.columnsVisibility.name=i-this.state.scrollBarWidth,this.resizerCurrentWidths.name=i-this.state.scrollBarWidth):this.resizerActiveName==="nameHeader"&&(this.columnsVisibility.name=t-this.state.scrollBarWidth,this.resizerCurrentWidths.name=t-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=null,this.forceUpdate()},200))}};resizerMouseUp=()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveName=null,this.resizerNextName=null,this.resizerActiveDiv=null,this.resizerNextDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{if(this.storedWidths||=JSON.parse(JSON.stringify(le[this.props.width||"lg"])),this.resizerCurrentWidths||={},this.resizerActiveDiv=e.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name||null,this.resizerActiveName){let t=0;if(e.target.dataset.left==="true"){this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler");for(;this.resizerNextDiv&&!i&&t<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,i=this.resizerNextDiv.querySelector(".iob-ob-resize-handler"),t++;(i==null?void 0:i.dataset.left)!=="true"&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name||null,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=e.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerNextName&&(this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName]),window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};navigateKeyPress(e){var i,r;const t=this.state.selectedNonObject||this.state.selected[0];if(t){if(e.code==="ArrowUp"||e.code==="ArrowDown"){e.preventDefault();const o=[];(i=this.tableRef.current)==null||i.childNodes.forEach(l=>o.push(l.id));const n=o.indexOf(t),a=e.code==="ArrowDown"?n+1:n-1,c=o[a]||t;this.onSelect(c),this.scrollToItem(c)}if((e.code==="ArrowRight"||e.code==="ArrowLeft")&&this.toggleExpanded(t),e.code==="Delete"&&this.root&&t){const o=it.getItemFromRoot(this.root,t);if(o){const{obj:n}=o.data;n&&!((r=n.common)!=null&&r.dontDelete)&&this.showDeleteDialog({id:t,obj:n,item:o})}}}}static getItemFromRoot(e,t){const i=t.split(".");let r="",o=e;for(let n=0;n{this.customWidth=!1,le[this.props.width||"lg"]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),this.localStorage.removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()};renderHandleRight(){return M.createElement(j.Box,{component:"div",className:"iob-ob-resize-handler",sx:{...w.resizeHandle,...w.resizeHandleRight},onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})}renderHeader(){let e=null;return!this.columnsVisibility.buttons&&!this.isFilterEmpty()&&(e=M.createElement(j.IconButton,{onClick:()=>this.clearFilter(),style:w.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large"},M.createElement(sSe,null),M.createElement(Ne,{style:w.buttonClearFilterIcon}))),this.props.width==="xs"?M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:"100%"}},this.getFilterInput("id"))):M.createElement("div",{style:w.headerRow},M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id"},this.getFilterInput("id"),this.renderHandleRight()),this.columnsVisibility.name?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.nameHeader,position:"relative"},"data-min":100,"data-name":"nameHeader"},this.getFilterInput("name"),this.renderHandleRight()):null,!this.state.statesView&&M.createElement(M.Fragment,null,this.columnsVisibility.type?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.type,position:"relative"},"data-min":100,"data-name":"type"},this.getFilterSelectType(),this.renderHandleRight()):null,this.columnsVisibility.role?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.role,position:"relative"},"data-min":100,"data-name":"role"},this.getFilterSelectRole(),this.renderHandleRight()):null,this.columnsVisibility.room?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.room,position:"relative"},"data-min":100,"data-name":"room"},this.getFilterSelectRoom(),this.renderHandleRight()):null,this.columnsVisibility.func?M.createElement("div",{style:{...w.headerCell,width:this.columnsVisibility.func,position:"relative"},"data-min":100,"data-name":"func"},this.getFilterSelectFunction(),this.renderHandleRight()):null),this.state.statesView&&M.createElement(M.Fragment,null,M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.changedFrom,position:"relative"},"data-min":100,"data-name":"changedFrom"},this.props.t("ra_Changed from"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.qualityCode,position:"relative"},"data-min":100,"data-name":"qualityCode"},this.props.t("ra_Quality code"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.timestamp,position:"relative"},"data-min":100,"data-name":"timestamp"},this.props.t("ra_Timestamp"),this.renderHandleRight()),M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.lastChange,position:"relative"},"data-min":100,"data-name":"lastChange"},this.props.t("ra_Last change"),this.renderHandleRight())),this.adapterColumns.map(t=>M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility[t.id]},title:t.adapter,key:t.id,"data-min":100,"data-name":t.id},t.name)),this.columnsVisibility.val?M.createElement("div",{style:{...w.headerCell,...w.headerCellValue,width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val"},this.props.t("ra_Value"),e):null,this.columnsVisibility.buttons?M.createElement("div",{title:this.texts.filter_custom,style:{...w.headerCell,width:this.columnsVisibility.buttons}}," ",this.getFilterSelectCustoms()):null)}renderToast(){return M.createElement(j.Snackbar,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:M.createElement(j.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""})},M.createElement(Ne,{fontSize:"small"}))})}componentDidUpdate(){if(this.tableRef.current){const e=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==e?setTimeout(()=>this.setState({scrollBarWidth:e}),100):this.selectFirst&&this.scrollToItem(this.selectFirst)}}scrollToItem(e){this.selectFirst="";const t=window.document.getElementById(e);t==null||t.scrollIntoView({behavior:"auto",block:"center",inline:"center"})}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const e=this.props.objectCustomDialog;return M.createElement(e,{reportChangedIds:t=>this.changedIds=[...t],objectIDs:this.state.customDialog,allVisibleObjects:!!this.state.customDialogAll,expertMode:this.state.filter.expertMode,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,t:this.props.t,lang:this.props.lang,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objects:this.objects,customsInstances:this.info.customs,onClose:()=>{var t;this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),(t=this.props.router)==null||t.doNavigate("tab-objects")},systemConfig:this.systemConfig})}return null}onUpdate(e){this.props.socket.setState(this.edit.id,{val:e.val,ack:e.ack,q:e.q||0,expire:e.expire||void 0}).catch(t=>this.showError(`Cannot write value: ${t}`))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const e=this.props.objectBrowserEditObject;return M.createElement(e,{key:this.state.editObjectDialog,obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,dialogName:this.props.dialogName,aliasTab:this.state.editObjectAlias,t:this.props.t,expertMode:!!this.state.filter.expertMode,onNewObject:t=>this.props.socket.setObject(t._id,t).then(()=>this.setState({editObjectDialog:t._id,editObjectAlias:!1},()=>this.onSelect(t._id))).catch(i=>this.showError(`Cannot write object: ${i}`)),onClose:t=>{var i,r;if(t){let o;this.state.editObjectDialog.startsWith("alias.")&&JSON.stringify((i=this.objects[this.state.editObjectDialog].common)==null?void 0:i.alias)!==JSON.stringify((r=t.common)==null?void 0:r.alias)&&(o=this.state.editObjectDialog),this.props.socket.setObject(t._id,t).then(()=>{o&&this.subscribes.includes(o)&&(this.unsubscribe(o),setTimeout(()=>this.subscribe(o),100))}).catch(n=>this.showError(`Cannot write object: ${n}`))}this.setState({editObjectDialog:"",editObjectAlias:!1})},width:this.props.width})}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const e=this.props.objectBrowserViewFile;return M.createElement(e,{key:"viewFile",obj:this.objects[this.state.viewFileDialog],socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({viewFileDialog:""})})}renderAliasEditorDialog(){if(!this.props.objectBrowserAliasEditor||!this.state.showAliasEditor)return null;const e=this.props.objectBrowserAliasEditor;return M.createElement(e,{key:"editAlias",obj:this.objects[this.state.showAliasEditor],roleArray:this.info.roles,objects:this.objects,socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({showAliasEditor:""}),onRedirect:(t,i)=>setTimeout(()=>this.onSelect(t,!1,()=>this.expandAllSelected(()=>{this.scrollToItem(t),setTimeout(()=>this.setState({editObjectDialog:t,showAliasEditor:"",editObjectAlias:!0}),300)})),i||0)})}showAddDataPointDialog(e,t,i){this.setState({showContextMenu:null,modalNewObj:{id:e,initialType:t,initialStateType:i}})}renderAliasMenu(){return this.state.aliasMenu?M.createElement(j.Menu,{key:"aliasmenu",open:!0,anchorEl:window.document.getElementById(`alias_${this.state.aliasMenu}`),onClose:()=>this.setState({aliasMenu:""})},this.info.aliasesMap[this.state.aliasMenu].map((e,t)=>M.createElement(j.MenuItem,{key:e,onClick:()=>this.onSelect(e)},M.createElement(j.ListItemText,null,this.renderAliasLink(this.state.aliasMenu,t,{"& .admin-browser-arrow":{mr:"8px"}}))))):null}renderContextMenu(){var L,g,y,T,d,z,I;if(!this.state.showContextMenu)return null;const e=this.state.showContextMenu.item,t=e.data.id,i=[],r=e.data.obj;let o="";if(this.props.objectEditOfAccessControl&&this.state.filter.expertMode)if(!r)o="---";else{const C=r.acl?r.type==="state"?r.acl.state:r.acl.object:0,m=r.acl&&(r.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);o=Number.isNaN(Number(C))?Number(m).toString(16):Number(C).toString(16)}const n=!this.props.notEditable&&r&&(this.state.filter.expertMode||r.type==="state"||r.type==="channel"||r.type==="device"),a=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="channel"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",c=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",l=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",N=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",u={EDIT:{key:"0",visibility:!!(this.props.objectBrowserEditObject&&r&&(this.state.filter.expertMode||it.isNonExpertId(t))),icon:M.createElement(mi,{fontSize:"small",style:this.styles.contextMenuEdit}),label:this.texts.editObject,onClick:()=>this.setState({editObjectDialog:e.data.id,showContextMenu:null,editObjectAlias:!1})},EDIT_VALUE:{key:"1",visibility:!!(this.states&&!this.props.notEditable&&r&&r.type==="state"&&((L=r.common)==null?void 0:L.type)!=="file"&&(this.state.filter.expertMode||r.common.write!==!1)),icon:M.createElement(gg,{fontSize:"small",style:this.styles.contextMenuEditValue}),label:this.props.t("ra_Edit value"),onClick:()=>{var C;this.edit={val:this.states[t]?this.states[t].val:"",q:((C=this.states[t])==null?void 0:C.q)||0,ack:!1,id:t},this.setState({updateOpened:!0,showContextMenu:null})}},VIEW:{visibility:!!this.props.objectBrowserViewFile&&(r==null?void 0:r.type)==="state"&&((g=r.common)==null?void 0:g.type)==="file",icon:M.createElement(ug,{fontSize:"small",style:this.styles.contextMenuView}),label:this.props.t("ra_View file"),onClick:()=>this.setState({viewFileDialog:(r==null?void 0:r._id)||"",showContextMenu:null})},CUSTOM:{key:"2",visibility:!(this.props.objectCustomDialog&&this.info.hasSomeCustoms&&r&&r.type==="state"&&((y=r.common)==null?void 0:y.type)!=="file"),icon:M.createElement(ln,{fontSize:"small",style:e.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),style:this.styles.contextMenuCustom,label:this.texts.customConfig,onClick:()=>{var C;this.pauseSubscribe(!0),(C=this.props.router)==null||C.doNavigate(null,"customs",t),this.setState({customDialog:[t],showContextMenu:null})}},ACL:{key:"3",visibility:!!o,icon:o,iconStyle:{fontSize:"smaller"},listItemIconStyle:this.styles.contextMenuACL,style:this.styles.contextMenuACL,label:this.props.t("ra_Edit ACL"),onClick:()=>this.setState({showContextMenu:null,modalEditOfAccess:!0,modalEditOfAccessObjData:e.data})},ROLE:{key:"4",visibility:!!(this.state.filter.expertMode&&n&&this.props.objectBrowserEditRole),icon:M.createElement(ZL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit role"),onClick:()=>this.setState({roleDialog:e.data.id,showContextMenu:null})},FUNCTION:{key:"5",visibility:!!n,icon:M.createElement(GL,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit function"),onClick:()=>{const C=Ds(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ROOM:{key:"6",visibility:!!n,icon:M.createElement(ig,{fontSize:"small",style:this.styles.contextMenuRoom}),label:this.props.t("ra_Edit room"),onClick:()=>{const C=Ds(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:C,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(C)},showContextMenu:null})}},ALIAS:{key:"7",visibility:!!(!this.props.notEditable&&this.props.objectBrowserAliasEditor&&this.props.objectBrowserEditObject&&(r==null?void 0:r.type)==="state"&&((T=r.common)==null?void 0:T.type)!=="file"),icon:M.createElement(yN,{style:(d=r==null?void 0:r.common)!=null&&d.alias?this.styles.cellButtonsButtonWithCustoms:w.cellButtonsButtonWithoutCustoms}),label:this.info.aliasesMap[e.data.id]||e.data.id.startsWith("alias.0.")?this.props.t("ra_Edit alias"):this.props.t("ra_Create alias"),onClick:()=>{var C;(C=r==null?void 0:r.common)!=null&&C.alias?this.setState({showContextMenu:null,editObjectDialog:e.data.id,editObjectAlias:!0}):this.setState({showContextMenu:null,showAliasEditor:e.data.id})}},CREATE:{key:"+",visibility:(e.data.id.startsWith("0_userdata.0")||e.data.id.startsWith("javascript."))&&(a||c||l||N),icon:M.createElement(un,{fontSize:"small",style:this.styles.cellButtonsButtonWithCustoms}),style:w.contextMenuWithSubMenu,label:this.texts.create,subMenu:[{label:this.texts.createBooleanState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","boolean")},{label:this.texts.createNumberState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","number")},{label:this.texts.createStringState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","string")},{label:this.texts.createState,visibility:a,icon:M.createElement(Ai,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state")},{label:this.texts.createChannel,visibility:c,icon:M.createElement(O4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"channel")},{label:this.texts.createDevice,visibility:l,icon:M.createElement(E4,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"device")},{label:this.texts.createFolder,icon:M.createElement(gN,{fontSize:"small"}),visibility:N,onClick:()=>this.showAddDataPointDialog(e.data.id,"folder")}]},RENAME:{key:"8",visibility:!!(!this.props.notEditable&&this.props.objectMoveRenameDialog&&!e.data.id.startsWith("system.")&&e.data.id.split(".").length>2&&(this.props.expertMode||e.data.id.startsWith("javascript.0.")||e.data.id.startsWith("0_userdata.0."))),icon:M.createElement(ag,null),label:this.props.t("ra_Rename_Move_Copy"),onClick:()=>{const C=Object.keys(this.objects),m=`${e.data.id}.`;this.setState({showContextMenu:null,showRenameDialog:{id:e.data.id,childrenIds:C.filter(A=>A.startsWith(m))}})}},DELETE:{key:"Delete",visibility:!!(this.props.onObjectDelete&&((z=e.children)!=null&&z.length||r&&!((I=r.common)!=null&&I.dontDelete))),icon:M.createElement(nt,{fontSize:"small",style:this.styles.contextMenuDelete}),style:this.styles.contextMenuDelete,label:this.texts.deleteObject,onClick:()=>this.setState({showContextMenu:null},()=>this.showDeleteDialog({id:t,obj:r||{},item:e}))}};return Object.keys(u).forEach(C=>{var m,A;u[C].visibility&&(u[C].subMenu?(i.push(M.createElement(j.MenuItem,{key:C,href:"",onClick:D=>this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position,subItem:C,subAnchor:D.target}}),style:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label,"..."),M.createElement("div",{style:{...w.contextMenuKeys,opacity:1}},M.createElement(RL,null)))),((m=this.state.showContextMenu)==null?void 0:m.subItem)===C&&i.push(M.createElement(j.Menu,{key:"subContextMenu",open:!0,anchorEl:this.state.showContextMenu.subAnchor,onClose:()=>{this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position}}),this.contextMenu=null}},(A=u[C].subMenu)==null?void 0:A.map(D=>D.visibility?M.createElement(j.MenuItem,{key:D.label,onClick:D.onClick,style:D.style},M.createElement(j.ListItemIcon,{style:{...D.iconStyle,...D.listItemIconStyle||void 0}},D.icon),M.createElement(j.ListItemText,null,D.label)):null)))):i.push(M.createElement(j.MenuItem,{key:C,onClick:u[C].onClick,sx:u[C].style},M.createElement(j.ListItemIcon,{style:{...u[C].iconStyle,...u[C].listItemIconStyle}},u[C].icon),M.createElement(j.ListItemText,null,u[C].label),u[C].key?M.createElement("div",{style:w.contextMenuKeys},`Alt+${u[C].key==="Delete"?this.props.t("ra_Del"):u[C].key}`):null)))}),i.length?M.createElement(j.Menu,{key:"contextMenu",open:!0,onKeyUp:C=>{C.preventDefault(),C.altKey&&Object.keys(u).forEach(m=>{C.key===u[m].key&&u[m].onClick&&u[m].onClick()})},anchorReference:"anchorPosition",anchorPosition:this.state.showContextMenu.position,onClose:()=>{this.setState({showContextMenu:null}),this.contextMenu=null}},i):(setTimeout(()=>this.setState({showContextMenu:null}),100),null)}renderEditValueDialog(){var r;if(!this.state.updateOpened||!this.props.objectBrowserValue)return null;if(!this.edit.id)return console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`),null;if(!this.objects[this.edit.id])return console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`),null;const e=(r=this.objects[this.edit.id].common)!=null&&r.type?this.objects[this.edit.id].common.type:typeof this.edit.val,t=this.objects[this.edit.id].common.role,i=this.props.objectBrowserValue;return M.createElement(i,{t:this.props.t,lang:this.props.lang,type:e,role:t||"",states:O.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,theme:this.props.theme,expertMode:!!this.state.filter.expertMode,value:this.edit.val,socket:this.props.socket,object:this.objects[this.edit.id],defaultHistory:this.defaultHistory,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,onClose:o=>{this.setState({updateOpened:!1}),o&&this.onUpdate(o)},width:this.props.width})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer),this.styleTheme!==this.props.themeType&&(this.styles={cellIdIconFolder:O.getStyle(this.props.theme,w.cellIdIconFolder),cellIdIconDocument:O.getStyle(this.props.theme,w.cellIdIconDocument),iconDeviceError:O.getStyle(this.props.theme,w.iconDeviceError),iconDeviceConnected:O.getStyle(this.props.theme,w.iconDeviceConnected),iconDeviceDisconnected:O.getStyle(this.props.theme,w.iconDeviceDisconnected),cellButtonsButtonWithCustoms:O.getStyle(this.props.theme,w.cellButtonsButtonWithCustoms),invertedBackground:O.getStyle(this.props.theme,w.invertedBackground),invertedBackgroundFlex:O.getStyle(this.props.theme,w.invertedBackgroundFlex),contextMenuEdit:O.getStyle(this.props.theme,w.contextMenuEdit),contextMenuEditValue:O.getStyle(this.props.theme,w.contextMenuEditValue),contextMenuView:O.getStyle(this.props.theme,w.contextMenuView),contextMenuCustom:O.getStyle(this.props.theme,w.contextMenuCustom),contextMenuACL:O.getStyle(this.props.theme,w.contextMenuACL),contextMenuRoom:O.getStyle(this.props.theme,w.contextMenuRoom),contextMenuRole:O.getStyle(this.props.theme,w.contextMenuRole),contextMenuDelete:O.getStyle(this.props.theme,w.contextMenuDelete),filterInput:O.getStyle(this.props.theme,w.headerCellInput,w.filterInput),iconCopy:O.getStyle(this.props.theme,w.cellButtonsValueButton,w.cellButtonsValueButtonCopy),aliasReadWrite:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasReadWrite),aliasAlone:O.getStyle(this.props.theme,w.cellIdAlias,w.cellIdAliasAlone)},this.styleTheme=this.props.themeType);const e=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==e&&this.objects&&this.root){const i={count:0};Gn(this.root,this.state.filter,this.props.lang,this.objects,void 0,i,this.props.customFilter,this.props.types),i.count<500&&!this.state.expandAllVisible?setTimeout(()=>this.setState({expandAllVisible:!0})):i.count>=500&&this.state.expandAllVisible&&setTimeout(()=>this.setState({expandAllVisible:!1})),this.lastAppliedFilter=e}if(this.unsubscribeTimer=setTimeout(()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()},200),!this.state.loaded)return M.createElement(j.CircularProgress,{key:`${this.props.dialogName}_c`});const t=this.root?this.renderItem(this.root,void 0):null;return M.createElement(iSe,{key:this.props.dialogName},M.createElement("style",null,` +@keyframes newValueAnimation-light { + 0% { + color: #00f900; + } + 80% { + color: #008000; + } + 100% { + color: #000; + } +} +@keyframes newValueAnimation-dark { + 0% { + color: #00f900; + } + 80% { + color: #008000; + } + 100% { + color: #fff; + } +} +.newValueBrowser-dark { + animation: newValueAnimation-dark 2s ease-in-out; +} +.newValueBrowser-light { + animation: newValueAnimation-light 2s ease-in-out; +} +.highlight-link .iob-link { + text-decoration: underline; + cursor: pointer; +} +`),M.createElement(oSe,null,this.getToolbar()),M.createElement(rSe,null,this.renderHeader(),M.createElement(j.Box,{style:w.tableDiv,ref:this.tableRef,onKeyDown:i=>this.navigateKeyPress(i)},t)),this.renderContextMenu(),this.renderAliasMenu(),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderAliasEditorDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderRenameDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.state.modalEditOfAccessObjData&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}}const gSe=Io()(it);class K3e extends M.Component{refTypo;height;width;constructor(e){super(e),this.state={closed:this.props.storeId?window.localStorage.getItem(this.props.storeId)==="true":!1},this.height=0,this.width=0,this.refTypo=M.createRef()}componentDidMount(){this.detectHeight()}onClick(){this.props.storeId&&this.props.closed===void 0&&(this.state.closed?window.localStorage.removeItem(this.props.storeId):window.localStorage.setItem(this.props.storeId,"true")),this.props.closed===void 0?this.setState({closed:!this.state.closed},()=>{this.props.onClose&&this.props.onClose(this.state.closed)}):this.props.onClose&&this.props.onClose(!this.props.closed)}detectHeight(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed;this.props.closeable&&!e&&this.refTypo.current&&window.requestAnimationFrame(()=>{(this.props.closed!==void 0?this.props.closed:this.state.closed)||this.refTypo.current&&(!this.height||this.width!==this.refTypo.current.clientWidth)&&(this.height=this.refTypo.current.clientHeight,this.width=this.refTypo.current.clientWidth,this.forceUpdate())})}componentDidUpdate(){this.detectHeight()}render(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed,t=e?Sg:Ne;return M.createElement(j.Box,{className:"iom-info-box",style:{whiteSpace:"preserve",display:"flex",gap:8,alignItems:e||this.props.iconPosition==="top"?"flex-start":"center",borderWidth:1,borderStyle:"solid",padding:4,borderRadius:5,marginBottom:8,maxWidth:"100%",transition:"height 0.5s",height:this.props.closeable?e?30:this.height||void 0:void 0,overflow:this.props.closeable?"hidden":void 0,position:"relative",...this.props.style},sx:{borderColor:i=>this.props.type==="ok"?i.palette.info.main:i.palette[this.props.type].main}},this.props.type==="ok"?M.createElement(Oe,{style:{color:"#0F0"}}):this.props.type==="info"?M.createElement(la,{color:"primary"}):M.createElement(kg,{color:this.props.type}),M.createElement(j.Typography,{ref:this.refTypo},this.props.children),this.props.closeable?M.createElement(t,{sx:{color:i=>i.palette.mode==="dark"?"lightgray":"gray",cursor:"pointer",position:"absolute",top:4,right:4},onClick:()=>this.onClick()}):null,this.props.closeable?M.createElement("div",{style:{width:22}}):null,e?M.createElement(j.Box,{component:"div",sx:i=>{const r=i.palette[this.props.type==="ok"?"info":this.props.type].main;return{background:`linear-gradient(${r}00 0%, ${r}10 60%, ${r}90 100%)`}},style:{bottom:0,position:"absolute",left:0,right:0,height:10}}):null)}}const E={hr:{border:0,borderTop:"1px solid gray"},scrollWindow:{width:"100%",overflow:"auto",height:"calc(100% - 22px)"},rowDiv:{width:"100%"},modeDiv:{width:200,display:"inline-block",verticalAlign:"top"},settingsDiv:{display:"inline-block",verticalAlign:"top"},inputTime:{width:90,marginTop:0,marginLeft:5},inputDate:{width:140,marginTop:0,marginLeft:5},inputEvery:{width:40,marginLeft:5,marginRight:5},inputRadio:{padding:"4px 12px",verticalAlign:"top"},inputGroup:{maxWidth:400,display:"inline-block"},inputGroupElement:{width:120},inputDateDay:{width:60},inputDateDayCheck:{padding:4},inputSmallCheck:{padding:0},rowOnce:{},rowDays:s=>({background:s.palette.mode!=="dark"?"#ddeaff":"#4b5057"}),rowDows:s=>({background:s.palette.mode!=="dark"?"#DDFFDD":"#52646c"}),rowMonths:s=>({background:s.palette.mode!=="dark"?"#DDFFFF":"#1f5557"}),rowMonthsDates:s=>({background:s.palette.mode!=="dark"?"#EEFFFF":"#3c5737",maxWidth:600}),rowYears:s=>({background:s.palette.mode!=="dark"?"#fbffdd":"#574b33"}),rowDowsDows:s=>({background:s.palette.mode!=="dark"?"#EEFFEE":"#3d4c54",pl:"10px",pb:"10px"})},en=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],zr=["January","February","March","April","May","June","July","August","September","October","November","December"],tn={minutes:"minutes",hours:"hours"},ji=["sunrise","sunriseEnd","goldenHourEnd","solarNoon","goldenHour","sunsetStart","sunset","dusk","nauticalDusk","night","nightEnd","nauticalDawn","dawn","nadir"];function gt(s){return s<10?`0${s}`:`${s}`}const Bl={time:{exactTime:!1,start:"00:00",end:"23:59",mode:"hours",interval:1},period:{once:"",days:1,dows:"",dates:"",weeks:0,months:"",years:0,yearMonth:0,yearDate:0},valid:{from:"",to:""}};function sn(s){const e=s.split(".");return e.length===3?`${e[2]}-${e[1]}-${e[0]}`:""}class De extends f.Component{refFrom;refTo;refOnce;timerOnce=null;timerFrom=null;timerTo=null;constructor(e){super(e);let t;if(this.props.schedule&&typeof this.props.schedule=="string"&&this.props.schedule[0]==="{")try{t=JSON.parse(this.props.schedule)}catch{}else typeof this.props.schedule=="object"&&(t=this.props.schedule);(!t||!Object.keys(t).length)&&(setTimeout(()=>this.onChange(this.state.schedule,!0),200),t=Bl),t={...Bl,...t},t.valid.from||=De.now2string(),this.refFrom=M.createRef(),this.refTo=M.createRef(),this.refOnce=M.createRef(),this.state={schedule:t,desc:De.state2text(t)},JSON.stringify(t)!==this.props.schedule&&setTimeout(()=>{var i,r;return(r=(i=this.props).onChange)==null?void 0:r.call(i,JSON.stringify(t))},100)}onChange(e,t){var r,o;const i=JSON.stringify(e)!==JSON.stringify(this.state.schedule);if(t||i){i&&this.setState({schedule:e,desc:De.state2text(e)});const n=JSON.parse(JSON.stringify(e));if(n.period.once){const a=n.period.once;delete n.period,n.period={once:a},delete n.valid}else if(n.period.days){const a=n.period.days,c=n.period.dows;delete n.period,n.period={days:a},c&&c!=="[]"&&(n.period.dows=c)}else if(n.period.weeks){const a=n.period.weeks,c=n.period.dows;delete n.period,n.period={weeks:a},c&&c!=="[]"&&(n.period.dows=c)}else if(n.period.months){const a=n.period.months,c=n.period.dates;delete n.period,n.period={months:a},c&&c!=="[]"&&(n.period.dates=c)}else if(n.period.years){const a=n.period.years,c=n.period.yearMonth,l=n.period.yearDate;delete n.period,n.period={years:a,yearDate:l},c&&(n.period.yearMonth=c)}if(n.time.exactTime?(delete n.time.end,delete n.time.mode,delete n.time.interval):delete n.time.exactTime,n.valid){if(n.valid.to||delete n.valid.to,n.period.days===1||n.period.weeks===1||n.period.months===1||n.period.years===1){const a=De.string2date(n.valid.from),c=new Date;c.setHours(0),c.setMinutes(0),c.setSeconds(0),c.setMilliseconds(0),a<=c&&delete n.valid.from}!n.valid.from&&!n.valid.to&&delete n.valid}(o=(r=this.props).onChange)==null||o.call(r,JSON.stringify(n),De.state2text(e))}}static state2text(e){if(typeof e=="string")try{e=JSON.parse(e)}catch{return""}const t=[],i=De.string2date(e.valid.from);if(e.period.once){const r=De.string2date(e.period.once),o=new Date;if(o.setMilliseconds(0),o.setSeconds(0),o.setMinutes(0),o.setHours(0),rh.t(en[n]));if(o.length===1)t.push(h.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(h.t("sch_desc_everyDay"));else{const n=o.pop();t.push(h.t("sch_desc_onWeekdays",o.join(", "),n))}}}else t.push(h.t("sch_desc_everyDay"));else t.push(h.t("sch_desc_everyNDay",e.period.days.toString()));else if(e.period.weeks)if(e.period.weeks===1?t.push(h.t("sch_desc_everyWeek")):t.push(h.t("sch_desc_everyNWeeks",e.period.weeks.toString())),e.period.dows){const r=JSON.parse(e.period.dows);if(r.length===2&&r[0]===0&&r[1]===6)t.push(h.t("sch_desc_onWeekends"));else if(r.length===5&&r[0]===1&&r[1]===2&&r[2]===3&&r[3]===4&&r[4]===5)t.push(h.t("sch_desc_onWorkdays"));else{const o=r.map(n=>h.t(en[n]));if(o.length===1)t.push(h.t("sch_desc_onWeekday",o[0]));else if(o.length===7)t.push(h.t("sch_desc_everyDay"));else{const n=o.pop();t.push(h.t("sch_desc_onWeekdays",o.join(", "),n))}}}else return h.t("sch_desc_never");else if(e.period.months){if(e.period.dates){const r=JSON.parse(e.period.dates);if(r.length===1)t.push(h.t("sch_desc_onDate",r[0]));else if(r.length===31)t.push(h.t("sch_desc_onEveryDate"));else if(r.length){const o=r.pop();t.push(h.t("sch_desc_onDates",r.join(", "),o))}else return h.t("sch_desc_never")}else t.push(h.t("sch_desc_onEveryDate"));if(e.period.months===1)t.push(h.t("sch_desc_everyMonth"));else if(typeof e.period.months=="number")t.push(h.t("sch_desc_everyNMonths",e.period.months.toString()));else{const o=JSON.parse(e.period.months).map(n=>h.t(zr[n-1]));if(!o.length)return h.t("sch_desc_never");if(o.length===1)t.push(h.t("sch_desc_onMonth",o[0]));else if(o.length===12)t.push(h.t("sch_desc_everyMonth"));else{const n=o.pop();t.push(h.t("sch_desc_onMonths",o.join(", "),n))}}}else e.period.years&&(e.period.years===1?t.push(h.t("sch_desc_everyYear")):t.push(h.t("sch_desc_everyNYears",e.period.years.toString())),t.push(h.t("sch_desc_onDate",e.period.yearDate.toString(),e.period.yearMonth?h.t(zr[e.period.yearMonth-1]):h.t("sch_desc_everyMonth"))));if(e.time.exactTime)ji.includes(e.time.start)?t.push(h.t("sch_desc_atTime",h.t(`sch_astro_${e.time.start}`))):t.push(h.t("sch_desc_atTime",e.time.start));else{e.time.mode===tn.minutes?e.time.interval===1?t.push(h.t("sch_desc_everyMinute")):t.push(h.t("sch_desc_everyNMinutes",e.time.interval.toString())):e.time.interval===1?t.push(h.t("sch_desc_everyHour")):t.push(h.t("sch_desc_everyNHours",e.time.interval.toString()));const r=ji.indexOf(e.time.start)!==-1?h.t(`sch_astro_${e.time.start}`):e.time.start,o=ji.indexOf(e.time.end)!==-1?h.t(`sch_astro_${e.time.end}`):e.time.end;(r!=="00:00"||o!=="24:00"&&o!=="23:59")&&t.push(h.t("sch_desc_intervalFromTo",r,o))}return e.period.once||(i.getTime()>Date.now()&&e.valid.to?t.push(h.t("sch_desc_validFromTo",e.valid.from,e.valid.to)):i.getTime()>Date.now()?t.push(h.t("sch_desc_validFrom",e.valid.from)):e.valid.to&&t.push(h.t("sch_desc_validTo",e.valid.to))),t.join(" ")}getTimePeriodElements(){const e=this.state.schedule;let t=!1,i=!1,r=!1,o=!0;return e.time.start==="00:00"&&e.time.end==="24:00"?(t=!0,o=!1):e.time.start==="sunrise"?(i=!0,o=!1):e.time.start==="sunset"&&(r=!0,o=!1),M.createElement("div",{key:"timePeriod",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!e.time.exactTime,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.exactTime=!1,this.onChange(n)}}),label:h.t("sch_intervalTime")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},!e.time.exactTime&&M.createElement("div",null,M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!o,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="23:59",this.onChange(n)}}),label:o?"":h.t("sch_fromTo")}),o&&[M.createElement(j.TextField,{variant:"standard",style:{...E.inputTime,marginRight:10},key:"exactTimeFrom",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.start,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.start=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:h.t("sch_from"),margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeTo",type:"time",sx:n=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:n.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.end,onChange:n=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.end=n.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:h.t("sch_to"),margin:"normal"})])),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="00:00",n.time.end="24:00",this.onChange(n)}}),label:h.t("sch_wholeDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!i,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunrise",n.time.end="sunset",this.onChange(n)}}),label:h.t("sch_astroDay")})),!e.time.exactTime&&M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!r,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start="sunset",n.time.end="sunrise",this.onChange(n)}}),label:h.t("sch_astroNight")}))),!e.time.exactTime&&this.getPeriodSettingsMinutes(o)))}getTimeExactElements(){const e=ji.includes(this.state.schedule.time.start);return M.createElement("div",{key:"timeExact",style:E.rowDiv},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!this.state.schedule.time.exactTime,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.time.exactTime=!0,this.onChange(t)}}),label:h.t("sch_exactTime")})),this.state.schedule.time.exactTime&&M.createElement(j.Select,{variant:"standard",value:e?this.state.schedule.time.start:"00:00",onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{key:"specific",value:"00:00"},h.t("sch_specificTime")),ji.map(t=>M.createElement(j.MenuItem,{key:t,value:t},h.t(`sch_astro_${t}`)))),this.state.schedule.time.exactTime&&!e&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputTime,key:"exactTimeValue",value:this.state.schedule.time.start,type:"time",sx:t=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:t.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.start=t.target.value,this.onChange(i)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}static getDivider(){return M.createElement("hr",{style:E.hr})}getPeriodModes(){const e=this.state.schedule,t=!e.period.dows&&!e.period.months&&!e.period.dates&&!e.period.years&&!e.period.days&&!e.period.weeks;return t&&!e.period.once&&(e.period.once=De.now2string(!0)),[M.createElement("div",{key:"once",style:{...E.rowDiv,...E.rowOnce}},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.once||=De.now2string(!0),i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,this.onChange(i)}}),label:h.t("sch_periodOnce")})),t&&M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:E.inputDate,type:"date",ref:this.refOnce,key:"exactDateAt",defaultValue:sn(e.period.once),onChange:i=>{this.timerOnce&&clearTimeout(this.timerOnce),this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="#ff000030"),this.timerOnce=setTimeout(r=>{this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),n=De.string2date(r);n.toString()!=="Invalid Date"&&(o.period.once=`${gt(n.getDate())}.${gt(n.getMonth()+1)}.${n.getFullYear()}`,this.onChange(o))},1500,i.target.value)},slotProps:{inputLabel:{shrink:!0}},label:h.t("sch_at"),margin:"normal"}))),M.createElement(j.Box,{component:"div",key:"days",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDays)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.days,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=1,i.period.dows="",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodDaily")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsDaily(),e.period.days?this.getPeriodSettingsWeekdays():null)),M.createElement(j.Box,{component:"div",key:"weeks",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowDows)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.weeks,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=e.period.weeks?0:1,i.period.dows||="[0]",i.period.months="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodWeekly")})),M.createElement(j.Box,{component:"div",style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsWeekly()),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowDowsDows)},this.state.schedule.period.weeks?this.getPeriodSettingsWeekdays():null))),M.createElement(j.Box,{component:"div",key:"months",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowMonths)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.months,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,i.period.dows="",i.period.dates="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodMonthly")})),M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsMonthly(),e.period.months?M.createElement(j.Box,null,M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.period.dates,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months||=1;const r=[];for(let o=1;o<=31;o++)r.push(o);i.period.dates||=JSON.stringify(r),i.period.dows="",i.period.years=0,i.period.yearDate=0,i.period.yearMonth=0,i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodDates")})),M.createElement(j.Box,{component:"div",sx:O.getStyle(this.props.theme,E.settingsDiv,E.rowMonthsDates)},this.getPeriodSettingsDates())):null)),M.createElement(j.Box,{component:"div",key:"years",sx:O.getStyle(this.props.theme,E.rowDiv,E.rowYears)},M.createElement("div",{style:E.modeDiv},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!e.period.years,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=1,i.period.yearDate=1,i.period.yearMonth=1,i.period.dows="",i.period.months=0,i.period.dates="",i.period.weeks=0,i.period.days=0,i.period.once="",this.onChange(i)}}),label:h.t("sch_periodYearly")})),M.createElement("div",{style:E.settingsDiv},M.createElement("div",{style:E.settingsDiv},this.getPeriodSettingsYearly()),!!e.period.years&&M.createElement("div",{style:E.settingsDiv},M.createElement("span",null,h.t("sch_on")),M.createElement(j.Input,{key:"input",value:this.state.schedule.period.yearDate,style:E.inputEvery,type:"number",inputProps:{min:1,max:31},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearDate=parseInt(i.target.value,10),r.period.yearDate<1&&(r.period.yearDate=31),r.period.yearDate>31&&(r.period.yearDate=1),this.onChange(r)}}),M.createElement(j.Select,{variant:"standard",value:e.period.yearMonth,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.yearMonth=i.target.value,this.onChange(r)}},M.createElement(j.MenuItem,{key:"every",value:0},h.t("sch_yearEveryMonth")),zr.map((i,r)=>M.createElement(j.MenuItem,{key:i,value:r+1},h.t(i)))))))]}getPeriodSettingsMinutes(e){return M.createElement("div",{style:{display:"inline-block",marginTop:e?15:"inherit"}},M.createElement("label",{style:{marginLeft:4,marginRight:4}},h.t("sch_every")),M.createElement(j.Input,{value:this.state.schedule.time.interval,style:{...E.inputEvery,verticalAlign:"bottom"},type:"number",inputProps:{min:1},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.interval=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement(j.Select,{variant:"standard",value:this.state.schedule.time.mode,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.time.mode=t.target.value,this.onChange(i)}},M.createElement(j.MenuItem,{value:tn.minutes},h.t("sch_periodMinutes")),M.createElement(j.MenuItem,{value:tn.hours},h.t("sch_periodHours"))))}getPeriodSettingsWeekdays(){const e=this.state.schedule,t=e.period.dows&&e.period.dows!=="[1, 2, 3, 4, 5]"&&e.period.dows!=="[0, 6]";return[M.createElement("div",{key:"workdays"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[1, 2, 3, 4, 5]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[1, 2, 3, 4, 5]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:h.t("sch_periodWorkdays")})),M.createElement("div",{key:"weekend"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.dows==="[0, 6]",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:h.t("sch_periodWeekend")})),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:!!t,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.dows="[0, 1, 2, 3, 4, 5, 6]",i.period.days&&(i.period.days=1),this.onChange(i)}}),label:h.t("sch_periodWeekdays")}),t&&(e.period.days===1||e.period.weeks)&&M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,width:150}},[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:`specific_${i}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:e.period.dows.includes(i.toString()),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state.schedule));let n;try{n=JSON.parse(o.period.dows)}catch{n=[]}r.target.checked&&!n.includes(i)?n.push(i):!r.target.checked&&n.includes(i)&&n.splice(n.indexOf(i),1),n.sort((a,c)=>a-c),o.period.dows=JSON.stringify(n),o.period.days&&(o.period.days=1),this.onChange(o)}}),label:h.t(en[i])}))))]}getPeriodSettingsDaily(){if(!this.state.schedule.period.days)return null;const e=this.state.schedule;return[M.createElement("div",{key:"every_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days===1&&!e.period.dows,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=1,t.period.dows="",this.onChange(t)}}),label:h.t("sch_periodEveryDay")})),M.createElement("div",{key:"everyN_day"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.days>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=2,t.period.dows="",this.onChange(t)}}),label:h.t("sch_periodEvery")}),e.period.days>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.days,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.days=parseInt(t.target.value,10),i.period.dows="",this.onChange(i)}}),M.createElement("span",{key:"span",style:{paddingRight:10}},h.t("sch_periodDay"))])]}getPeriodSettingsWeekly(){if(!this.state.schedule.period.weeks)return null;const e=this.state.schedule;return[M.createElement("div",{key:"radios",style:{display:"inline-block",verticalAlign:"top"}},M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=1,this.onChange(t)}}),label:h.t("sch_periodEveryWeek")})),M.createElement("div",null,M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.weeks>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=2,this.onChange(t)}}),label:h.t("sch_periodEvery")}),e.period.weeks>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.weeks,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.weeks=parseInt(t.target.value,10),this.onChange(i)}}),M.createElement("span",{key:"text"},h.t("sch_periodWeek"))]))]}getPeriodSettingsDates(){if(!this.state.schedule.period.dates)return null;const e=this.state.schedule,t=[];for(let r=1;r<=31;r++)t.push(r);const i=JSON.parse(e.period.dates);return M.createElement(j.FormGroup,{row:!0,style:{...E.inputGroup,maxWidth:620}},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:i.length===31,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[];for(let n=1;n<=31;n++)o.push(n);r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:h.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!i.length,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.dates="[]",this.onChange(r)}}),label:h.t("sch_no_one")}),i.length!==31&&!!i.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const r=JSON.parse(JSON.stringify(this.state.schedule)),o=[],n=JSON.parse(r.period.dates);for(let a=1;a<=31;a++)n.includes(a)||o.push(a);o.sort((a,c)=>a-c),r.period.dates=JSON.stringify(o),this.onChange(r)}}),label:h.t("sch_invert")}),M.createElement("div",null),t.map(r=>M.createElement(j.FormControlLabel,{key:`date_${r}`,style:r?E.inputDateDay:{...E.inputDateDay,opacity:0,cursor:"default",userSelect:"none",pointerEvents:"none"},control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:JSON.parse(e.period.dates).includes(r),onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.dates)}catch{a=[]}o.target.checked&&!a.includes(r)?a.push(r):!o.target.checked&&a.includes(r)&&a.splice(a.indexOf(r),1),a.sort((c,l)=>c-l),n.period.dates=JSON.stringify(a),this.onChange(n)}}),label:r<10?[M.createElement("span",{key:"0",style:{opacity:0}},"0"),M.createElement("span",{key:"num"},r)]:r})))}getPeriodSettingsMonthly(){if(!this.state.schedule.period.months)return null;const e=this.state.schedule,t=typeof e.period.months=="string"?JSON.parse(e.period.months):[];return[M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months===1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=1,this.onChange(e)}}),label:h.t("sch_periodEveryMonth")})),M.createElement("div",{key:"everyN"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="number"&&e.period.months>1,onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months=2,this.onChange(i)}}),label:h.t("sch_periodEvery")}),typeof e.period.months=="number"&&e.period.months>1&&[M.createElement(j.Input,{key:"input",value:e.period.months,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:i=>{const r=JSON.parse(JSON.stringify(this.state.schedule));r.period.months=parseInt(i.target.value,10),r.period.months<1&&(r.period.months=1),this.onChange(r)}}),M.createElement("span",{key:"text"},h.t("sch_periodMonth"))]),M.createElement("div",{key:"specific",style:{verticalAlign:"top"}},M.createElement(j.FormControlLabel,{style:{verticalAlign:"top"},control:M.createElement(j.Radio,{style:E.inputRadio,checked:typeof e.period.months=="string",onClick:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[1,2,3,4,5,6,7,8,9,10,11,12]",this.onChange(i)}}),label:h.t("sch_periodSpecificMonths")}),typeof e.period.months=="string"&&M.createElement(j.FormGroup,{row:!0,style:E.inputGroup},M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:t.length===12,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[];for(let o=1;o<=12;o++)r.push(o);i.period.months=JSON.stringify(r),this.onChange(i)}}),label:h.t("sch_all")}),M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!t.length,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.months="[]",this.onChange(i)}}),label:h.t("sch_no_one")}),t.length!==12&&!!t.length&&M.createElement(j.FormControlLabel,{style:E.inputDateDay,control:M.createElement(j.Checkbox,{style:E.inputDateDayCheck,checked:!1,onChange:()=>{const i=JSON.parse(JSON.stringify(this.state.schedule)),r=[],o=JSON.parse(i.period.months);for(let n=1;n<=12;n++)o.includes(n)||r.push(n);r.sort((n,a)=>n-a),i.period.months=JSON.stringify(r),this.onChange(i)}}),label:h.t("sch_invert")}),M.createElement("div",null),zr.map((i,r)=>M.createElement(j.FormControlLabel,{key:`month_${r}`,style:E.inputGroupElement,control:M.createElement(j.Checkbox,{style:E.inputSmallCheck,checked:typeof e.period.months=="string"?JSON.parse(e.period.months).includes(r+1):e.period.months===r,onChange:o=>{const n=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(n.period.months)}catch{a=[]}o.target.checked&&!a.includes(r+1)?a.push(r+1):!o.target.checked&&a.includes(r+1)&&a.splice(a.indexOf(r+1),1),a.sort((c,l)=>c-l),n.period.months=JSON.stringify(a),this.onChange(n)}}),label:h.t(i)}))))]}getPeriodSettingsYearly(){if(!this.state.schedule.period.years)return null;const e=this.state.schedule;return[M.createElement("div",{key:"year"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=1,this.onChange(t)}}),label:h.t("sch_periodEveryYear")})),M.createElement("div",{key:"every"},M.createElement(j.FormControlLabel,{control:M.createElement(j.Radio,{style:E.inputRadio,checked:e.period.years>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=2,this.onChange(t)}}),label:h.t("sch_periodEvery")}),e.period.years>1&&[M.createElement(j.Input,{key:"input",value:this.state.schedule.period.years,style:E.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.schedule));i.period.years=parseInt(t.target.value,10),i.period.years<1&&(i.period.years=1),this.onChange(i)}}),M.createElement("span",{key:"text"},h.t("sch_periodYear"))])]}static now2string(e){const t=new Date;return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),e&&(t.setDate(t.getDate()+2),t.setMilliseconds(t.getMilliseconds()-1)),`${gt(t.getDate())}.${gt(t.getMonth()+1)}.${gt(t.getFullYear())}`}static string2date(e){let t=e.split(".");return t.length===1?(t=e.split("-"),new Date(parseInt(t[0],10),parseInt(t[1],10)-1,parseInt(t[2],10))):new Date(parseInt(t[2],10),parseInt(t[1],10)-1,parseInt(t[0],10))}getValidSettings(){const e=this.state.schedule;return M.createElement("div",{style:E.rowDiv},M.createElement("div",{style:{...E.modeDiv,verticalAlign:"middle"}},M.createElement("span",{style:{fontWeight:"bold",paddingRight:10}},h.t("sch_valid")),M.createElement("span",null,h.t("sch_validFrom"))),M.createElement("div",{style:E.settingsDiv},M.createElement(j.TextField,{variant:"standard",style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",inputRef:this.refFrom,defaultValue:sn(e.valid.from),type:"date",onChange:t=>{this.timerFrom&&clearTimeout(this.timerFrom),this.refFrom.current&&(this.refFrom.current.style.background="#ff000030"),this.timerFrom=setTimeout(i=>{this.timerFrom=null,this.refFrom.current&&(this.refFrom.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=De.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.from=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}),M.createElement(j.FormControlLabel,{control:M.createElement(j.Checkbox,{style:E.inputRadio,checked:!!e.valid.to,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.valid.to=t.valid.to?"":De.now2string(!0),this.onChange(t)}}),label:h.t("sch_validTo")}),!!e.valid.to&&M.createElement(j.TextField,{variant:"standard",inputRef:this.refTo,style:{...E.inputDate,marginRight:10},key:"exactTimeFrom",type:"date",defaultValue:sn(e.valid.to),onChange:t=>{this.timerTo&&clearTimeout(this.timerTo),this.refTo.current&&(this.refTo.current.style.background="#ff000030"),this.timerTo=setTimeout(i=>{this.timerTo=null,this.refTo.current&&(this.refTo.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),o=De.string2date(i);o.toString()!=="Invalid Date"&&(r.valid.to=`${gt(o.getDate())}.${gt(o.getMonth()+1)}.${o.getFullYear()}`,this.onChange(r))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}render(){return M.createElement("div",{style:{height:"calc(100% - 48px)",width:"100%",overflow:"hidden"}},M.createElement("div",null,this.state.desc),M.createElement("div",{style:E.scrollWindow},M.createElement("h5",null,h.t("sch_time")),this.getTimePeriodElements(),this.getTimeExactElements(),De.getDivider(),M.createElement("h5",null,h.t("sch_period")),this.getPeriodModes(),!this.state.schedule.period.once&&De.getDivider(),!this.state.schedule.period.once&&this.getValidSettings()))}}const wr={different:{opacity:.5},icon:{width:16,height:16,marginRight:8}};class q3e extends f.Component{wordDifferent;timeout=null;constructor(e){super(e),e.different&&(this.wordDifferent=e.t("ra___different__"));let t;Array.isArray(e.list)?t=e.list.filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}):t=Object.values(e.list).filter(i=>(i==null?void 0:i._id)&&i.common).map(i=>{var r,o;return{name:O.getObjectNameFromObj(i,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:i._id,icon:(r=i.common)==null?void 0:r.icon,color:(o=i.common)==null?void 0:o.color}}),e.different&&e.value===e.different&&t.unshift({value:e.different,name:this.wordDifferent||""}),e.allowNone&&t.unshift({value:"",name:h.t("ra_none")}),this.state={list:t}}render(){this.props.allowNone&&!this.state.list.find(r=>r.value==="")?this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list));r.unshift({value:"",name:h.t("ra_none")}),this.setState({list:r})},100):!this.props.allowNone&&this.state.list.find(r=>r.value==="")&&(this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const r=JSON.parse(JSON.stringify(this.state.list)),o=this.state.list.findIndex(n=>n.value==="");r.splice(o,1),this.setState({list:r})},100));const e=this.state.list.find(r=>r.value===this.props.value||this.props.removePrefix&&r.value.replace(this.props.removePrefix,"")===this.props.value),t=this.props.value===this.props.different?{}:{color:(e==null?void 0:e.color)||void 0,backgroundColor:O.getInvertedColor((e==null?void 0:e.color)||"",this.props.themeType)};this.props.dense&&this.props.style&&Object.assign(t,this.props.style);const i=M.createElement(j.Select,{variant:"standard",disabled:this.props.disabled,value:this.props.value,slotProps:{input:this.props.inputProps},renderValue:()=>M.createElement("span",null,e!=null&&e.icon?M.createElement(me,{src:e==null?void 0:e.icon,style:wr.icon}):null,e==null?void 0:e.name),sx:{"&.MuiSelect-root":this.props.value===this.props.different?wr.different:{}},classes:{root:this.props.dense?this.props.className:""},style:t,onChange:r=>{if(this.props.different&&r.target.value!==this.props.different){let o=null;for(let n=0;nthis.props.onChange(r.target.value));return}}this.props.onChange(this.props.removePrefix?r.target.value.replace(this.props.removePrefix,""):r.target.value)}},this.state.list.map(r=>M.createElement(j.MenuItem,{style:this.props.different&&r.value===this.props.different?wr.different:{color:r.color||void 0,backgroundColor:O.getInvertedColor(r.color||"",this.props.themeType)},key:r.value,value:r.value},r.icon?M.createElement(me,{src:r.icon,style:wr.icon}):null,r.name)));return this.props.dense?i:M.createElement(j.FormControl,{variant:"standard",fullWidth:!!this.props.fullWidth,style:this.props.style,className:this.props.className},M.createElement(j.InputLabel,null,this.props.label),i)}}class e5e extends f.Component{resizerRefTable;resizerActiveIndex;resizerActiveDiv;resizerCurrentWidths;widthFilled=!1;installTimeout=null;resizerMin=0;resizerMinNext=0;resizerPosition=0;resizerOldWidth=0;resizerOldWidthNext=0;constructor(e){super(e),this.resizerRefTable=M.createRef(),this.resizerActiveIndex=null,this.resizerActiveDiv=null,this.resizerCurrentWidths=[]}componentDidMount(){this.resizerInstall()}componentWillUnmount(){this.resizerUninstall()}resizerInstall(){if(this.resizerRefTable.current&&!this.resizerRefTable.current._installed){this.resizerRefTable.current._installed=!0;const e=this.resizerRefTable.current.querySelectorAll("th"),t=(window._localStorage||window.localStorage).getItem(`App.${this.props.name||"history"}.table`);if(this.widthFilled=!1,t)try{this.resizerCurrentWidths=JSON.parse(t),this.widthFilled=!0}catch{}if(this.widthFilled)if(this.resizerCurrentWidths.length!==e.length)this.resizerCurrentWidths=[],this.widthFilled=!1;else{const i=this.resizerRefTable.current.offsetWidth;let r=0;for(let o=0;o20&&(this.resizerCurrentWidths=[],this.widthFilled=!1)}for(let i=0;i{this.installTimeout=null,this.resizerInstall()},100)}resizerReset=()=>{for(let e=0;e{if(this.resizerActiveDiv&&this.resizerActiveIndex!==null){const t=this.resizerOldWidth+e.clientX-this.resizerPosition,i=this.resizerOldWidthNext-e.clientX+this.resizerPosition;(!this.resizerMin||t>this.resizerMin)&&(!this.resizerMinNext||i>this.resizerMinNext)&&(this.resizerCurrentWidths[this.resizerActiveIndex]=t,this.resizerCurrentWidths[this.resizerActiveIndex+1]=i,this.resizerApplyWidths())}};resizerMouseUp=()=>{(window._localStorage||window.localStorage).setItem(`App.${this.props.name||"history"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveIndex=null,this.resizerActiveDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{var t,i,r,o;if(this.resizerActiveIndex===null||this.resizerActiveIndex===void 0){console.log(`Mouse down ${(t=e.target)==null?void 0:t.dataset.index}`),this.resizerActiveIndex=parseInt(((i=e.target)==null?void 0:i.dataset.index)||"0",10),this.resizerActiveDiv=e.target,this.resizerMin=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex]:0,this.resizerMinNext=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex+1]:0,this.resizerPosition=e.clientX;let n;this.resizerCurrentWidths[this.resizerActiveIndex]==="auto"&&(n=(r=this.resizerRefTable.current)==null?void 0:r.querySelectorAll("th"),n&&(this.resizerCurrentWidths[this.resizerActiveIndex]=n[this.resizerActiveIndex].offsetWidth)),this.resizerCurrentWidths[this.resizerActiveIndex+1]==="auto"&&(n=n||((o=this.resizerRefTable.current)==null?void 0:o.querySelectorAll("th")),n&&(this.resizerCurrentWidths[this.resizerActiveIndex+1]=n[this.resizerActiveIndex+1].offsetWidth)),this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveIndex],this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerActiveIndex+1],window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};render(){if(this.props.ready===!1)return M.createElement(j.Skeleton,null);const e={gridTemplateColumns:this.resizerApplyWidths()};return M.createElement(j.Table,{stickyHeader:this.props.stickyHeader,size:this.props.size||"small",className:this.props.className,sx:this.props.sx,ref:this.resizerRefTable,style:{...this.props.style||void 0,...e}},this.props.children)}}const rn={div:{borderRadius:3,padding:"0 3px",lineHeight:"20px",whiteSpace:"nowrap",overflow:"hidden",display:"flex",alignItems:"center"},icon:{width:16,height:16,marginRight:8,verticalAlign:"middle"},text:{display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}};function t5e(s){var o,n,a,c,l,N,u,L,g;const e=s.value;let t;const i=s.removePrefix||"";if(typeof e=="string"){const y=s.list;if(y)if(Array.isArray(y)){const T=y.find(d=>(d==null?void 0:d._id)===i+e);T?t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((o=T.common)==null?void 0:o.icon),color:s.color||((n=T.common)==null?void 0:n.color)}:t={name:e,value:i+e}}else if(y[i+e]){const T=y[i+e];t={name:O.getObjectNameFromObj(T,s.lang).replace("system.group.",""),value:T._id,icon:s.icon||((a=T.common)==null?void 0:a.icon),color:s.color||((c=T.common)==null?void 0:c.color)}}else t={name:e,value:i+e,icon:s.icon,color:s.color};else t={name:e,value:i+e,icon:s.icon,color:s.color}}else if(!e||typeof e!="object")t={name:"",value:"",icon:s.icon,color:s.color};else{const y=e;t={name:O.getObjectNameFromObj(y,s.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:y._id,icon:s.icon||((l=y.common)==null?void 0:l.icon),color:s.color||((N=y.common)==null?void 0:N.color)}}const r=t!=null&&t.color?{border:`1px solid ${O.invertColor(t==null?void 0:t.color)}`,color:O.getInvertedColor(t==null?void 0:t.color,s.themeType||"light",!0)||void 0,backgroundColor:t==null?void 0:t.color}:{};return M.createElement("div",{style:{...s.style||void 0,...rn.div,...r||void 0},className:O.clsx(s.className,(u=s.moreClasses)==null?void 0:u.root),title:s.title||t.value},t!=null&&t.icon?M.createElement(me,{src:t==null?void 0:t.icon,className:(L=s.moreClasses)==null?void 0:L.icon,style:rn.icon}):null,M.createElement("div",{style:rn.text,className:(g=s.moreClasses)==null?void 0:g.text},t==null?void 0:t.name))}function s5e({themeName:s,toggleTheme:e,t,className:i,style:r,size:o}){return M.createElement("div",{className:i||void 0,style:r||void 0},M.createElement(j.Tooltip,{title:t("ra_Change color theme"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{onClick:()=>e(),size:o||"medium"},s==="dark"&&M.createElement(XL,{className:i}),s==="blue"&&M.createElement(KL,{className:i}),s==="colored"&&M.createElement(ca,{className:i}),s!=="dark"&&s!=="blue"&&s!=="colored"&&M.createElement(qL,{className:i}))))}function po(){return(po=Object.assign||function(s){for(var e=1;e=0||(r[t]=s[t]);return r}function Hn(s){var e=f.useRef(s),t=f.useRef(function(i){e.current&&e.current(i)});return e.current=s,t.current}var bi=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),s>t?t:s0:d.buttons>0)&&r.current?o(Jl(r.current,d,a.current)):T(!1)},y=function(){return T(!1)};function T(d){var z=c.current,I=Vn(r.current),C=d?I.addEventListener:I.removeEventListener;C(z?"touchmove":"mousemove",g),C(z?"touchend":"mouseup",y)}return[function(d){var z=d.nativeEvent,I=r.current;if(I&&(Rl(z),!function(m,A){return A&&!fi(m)}(z,c.current)&&I)){if(fi(z)){c.current=!0;var C=z.changedTouches||[];C.length&&(a.current=C[0].identifier)}I.focus(),o(Jl(I,z,a.current)),T(!0)}},function(d){var z=d.which||d.keyCode;z<37||z>40||(d.preventDefault(),n({left:z===39?.05:z===37?-.05:0,top:z===40?.05:z===38?-.05:0}))},T]},[n,o]),N=l[0],u=l[1],L=l[2];return f.useEffect(function(){return L},[L]),M.createElement("div",po({},i,{onTouchStart:N,onMouseDown:N,className:"react-colorful__interactive",ref:r,onKeyDown:u,tabIndex:0,role:"slider"}))}),hM=function(s){return s.filter(Boolean).join(" ")},B4=function(s){var e=s.color,t=s.left,i=s.top,r=i===void 0?.5:i,o=hM(["react-colorful__pointer",s.className]);return M.createElement("div",{className:o,style:{top:100*r+"%",left:100*t+"%"}},M.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},he=function(s,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*s)/t},jSe=function(s){return hSe(Zn(s))},Zn=function(s){return s[0]==="#"&&(s=s.substring(1)),s.length<6?{r:parseInt(s[0]+s[0],16),g:parseInt(s[1]+s[1],16),b:parseInt(s[2]+s[2],16),a:s.length===4?he(parseInt(s[3]+s[3],16)/255,2):1}:{r:parseInt(s.substring(0,2),16),g:parseInt(s.substring(2,4),16),b:parseInt(s.substring(4,6),16),a:s.length===8?he(parseInt(s.substring(6,8),16)/255,2):1}},ySe=function(s){return DSe(dSe(s))},TSe=function(s){var e=s.s,t=s.v,i=s.a,r=(200-e)*t/100;return{h:he(s.h),s:he(r>0&&r<200?e*t/100/(r<=100?r:200-r)*100:0),l:he(r/2),a:he(i,2)}},Xn=function(s){var e=TSe(s);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},dSe=function(s){var e=s.h,t=s.s,i=s.v,r=s.a;e=e/360*6,t/=100,i/=100;var o=Math.floor(e),n=i*(1-t),a=i*(1-(e-o)*t),c=i*(1-(1-e+o)*t),l=o%6;return{r:he(255*[i,a,n,n,c,i][l]),g:he(255*[c,i,i,a,n,n][l]),b:he(255*[n,n,c,i,i,a][l]),a:he(r,2)}},Cr=function(s){var e=s.toString(16);return e.length<2?"0"+e:e},DSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=r<1?Cr(he(255*r)):"";return"#"+Cr(e)+Cr(t)+Cr(i)+o},hSe=function(s){var e=s.r,t=s.g,i=s.b,r=s.a,o=Math.max(e,t,i),n=o-Math.min(e,t,i),a=n?o===e?(t-i)/n:o===t?2+(i-e)/n:4+(e-t)/n:0;return{h:he(60*(a<0?a+6:a)),s:he(o?n/o*100:0),v:he(o/255*100),a:r}},zSe=M.memo(function(s){var e=s.hue,t=s.onChange,i=hM(["react-colorful__hue",s.className]);return M.createElement("div",{className:i},M.createElement(W4,{onMove:function(r){t({h:360*r.left})},onKey:function(r){t({h:bi(e+360*r.left,0,360)})},"aria-label":"Hue","aria-valuenow":he(e),"aria-valuemax":"360","aria-valuemin":"0"},M.createElement(B4,{className:"react-colorful__hue-pointer",left:e/360,color:Xn({h:e,s:100,v:100,a:1})})))}),wSe=M.memo(function(s){var e=s.hsva,t=s.onChange,i={backgroundColor:Xn({h:e.h,s:100,v:100,a:1})};return M.createElement("div",{className:"react-colorful__saturation",style:i},M.createElement(W4,{onMove:function(r){t({s:100*r.left,v:100-100*r.top})},onKey:function(r){t({s:bi(e.s+100*r.left,0,100),v:bi(e.v-100*r.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+he(e.s)+"%, Brightness "+he(e.v)+"%"},M.createElement(B4,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:Xn(e)})))}),J4=function(s,e){if(s===e)return!0;for(var t in s)if(s[t]!==e[t])return!1;return!0},CSe=function(s,e){return s.toLowerCase()===e.toLowerCase()||J4(Zn(s),Zn(e))};function ISe(s,e,t){var i=Hn(t),r=f.useState(function(){return s.toHsva(e)}),o=r[0],n=r[1],a=f.useRef({color:e,hsva:o});f.useEffect(function(){if(!s.equal(e,a.current.color)){var l=s.toHsva(e);a.current={hsva:l,color:e},n(l)}},[e,s]),f.useEffect(function(){var l;J4(o,a.current.hsva)||s.equal(l=s.fromHsva(o),a.current.color)||(a.current={hsva:o,color:l},i(l))},[o,s,i]);var c=f.useCallback(function(l){n(function(N){return Object.assign({},N,l)})},[]);return[o,c]}var pSe=typeof window<"u"?f.useLayoutEffect:f.useEffect,ASe=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},Fl=new Map,mSe=function(s){pSe(function(){var e=s.current?s.current.ownerDocument:document;if(e!==void 0&&!Fl.has(e)){var t=e.createElement("style");t.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Fl.set(e,t);var i=ASe();i&&t.setAttribute("nonce",i),e.head.appendChild(t)}},[])},OSe=function(s){var e=s.className,t=s.colorModel,i=s.color,r=i===void 0?t.defaultColor:i,o=s.onChange,n=P4(s,["className","colorModel","color","onChange"]),a=f.useRef(null);mSe(a);var c=ISe(t,r,o),l=c[0],N=c[1],u=hM(["react-colorful",e]);return M.createElement("div",po({},n,{ref:a,className:u}),M.createElement(wSe,{hsva:l,onChange:N}),M.createElement(zSe,{hue:l.h,onChange:N,className:"react-colorful__last-control"}))},ESe={defaultColor:"000",toHsva:jSe,fromHsva:function(s){return ySe({h:s.h,s:s.s,v:s.v,a:1})},equal:CSe},fSe=function(s){return M.createElement(OSe,po({},s,{colorModel:ESe}))};class xSe extends f.Component{dialogName;filters;filterFunc;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectID.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters||{}});let i=this.props.selected||[];if(Array.isArray(i)||(i=[i]),i=i.filter(r=>r),e.filterFunc)if(typeof e.filterFunc=="string")try{this.filterFunc=new Function("obj",e.filterFunc)}catch{console.error(`Cannot parse filter function: "obj => ${e.filterFunc}"`),this.filterFunc=void 0}else this.filterFunc=e.filterFunc;this.state={selected:i,name:"",selectionBlocked:!1}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}render(){let e;return this.state.name||this.state.selected.length?this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},(this.state.name||this.state.selected[0])+(this.state.name?` [${this.state.selected[0]}]`:""))]:e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},h.t("%s items",this.state.selected.length.toString()))]:e=this.props.title||h.t("ra_Please select object ID..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{height:"95%",p:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)"}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectid_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectid_title",style:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}},e),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden",padding:"8px 4px"}},M.createElement(gSe,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,dateFormat:this.props.dateFormat,defaultFilters:this.filters,dialogName:this.dialogName,isFloatComma:this.props.isFloatComma,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,expertMode:this.props.expertMode,columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types?Array.isArray(this.props.types)?this.props.types:[this.props.types]:["state"],root:this.props.root,t:h.t,lang:this.props.lang||h.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,customFilter:this.props.customFilter,allowNonObjects:this.props.allowNonObjects,onFilterChanged:t=>{this.filters=t,(window._localStorage||window.localStorage).setItem(this.dialogName,JSON.stringify(t))},onSelect:async(t,i,r)=>{let o;if(Array.isArray(t)?o=t:o=[t],JSON.stringify(o)!==JSON.stringify(this.state.selected)){let n=!0;if(this.props.onSelectConfirm){const a={};for(const c of o)try{a[c]=await this.props.socket.getObject(c)}catch{}n=await this.props.onSelectConfirm(o,a)}this.setState({selected:o,name:i,selectionBlocked:!n},()=>r&&this.handleOk())}else r&&this.handleOk()},filterFunc:this.filterFunc,title:"",classes:{}})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:`ar_dialog_selectid_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length||this.state.selectionBlocked,color:"primary"},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{id:`ar_dialog_selectid_cancel_${this.props.dialogName||""}`,color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}function St(s,e,t){if(typeof e=="string"&&(e=e.split(".")),!s)return null;if(e.length===1)return t&&t[s[e[0]]]?t[s[e[0]]]:s[e[0]];const i=e.shift();return St(s[i],e)}function R4(s,e,t){if(typeof e=="string"&&(e=e.split(".")),e.length===1)return s[e[0]]=t;const i=e.shift();return(s[i]===null||s[i]===void 0)&&(s[i]={}),R4(s[i],e,t)}const W={tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:s=>(s.palette.mode==="dark","#888"),color:s=>s.palette.mode==="dark"?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},fieldEditWithButton:{width:"calc(100% - 33px)",display:"inline-block"},fieldEdit:{width:"100%",display:"inline-block",lineHeight:"50px",verticalAlign:"middle"},fieldButton:{width:30,display:"inline-block"},colorDialog:{overflow:"hidden",padding:15},subText:{fontSize:10,fontStyle:"italic"},glow:{animation:"glow 0.2s 2 alternate"}};function Gl(s,e,t,i){const r=St(s,t,i)||"",o=St(e,t,i)||"";return or?1:0}function _Se(s,e,t){return s==="desc"?(i,r)=>Gl(i,r,e,t):(i,r)=>-Gl(i,r,e,t)}function SSe(s,e){const t=s.map((i,r)=>({e:i,i:r}));return t.sort((i,r)=>{const o=e(i.e,r.e);return o||i.i-r.i}),t.map(i=>i.e)}class Kn extends f.Component{selectCallback=null;updateTimeout=null;constructor(e){super(e);let t=(window._localStorage||window.localStorage).getItem(this.props.name||"iob-table")||"[]";try{t=JSON.parse(t)||[]}catch{t=[]}Array.isArray(t)||(t=[]),this.state={opened:t,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:this.props.columns[0].field,showSelectColor:!1}}static getDerivedStateFromProps(e,t){if(e.glowOnChange){const i=[];let r=0;return e.data&&t.data&&e.data.forEach(o=>{var a;r++;const n=(a=t.data)==null?void 0:a.find(c=>c.id===o.id);n?JSON.stringify(n)!==JSON.stringify(o)&&i.push(o.id):i.push(o.id)}),i.length&&i.length!==r?{data:e.data,update:i}:{data:e.data}}return{data:e.data}}renderCellEdit(e,t){let i=St(e,t.field);return Array.isArray(i)&&(i=i[0]),t.lookup?this.renderCellEditSelect(t,i):t.editComponent?this.renderCellEditCustom(t,i,e):t.type==="boolean"||!t.type&&typeof i=="boolean"?this.renderCellEditBoolean(t,i):t.type==="color"?this.renderCellEditColor(t,i):t.type==="oid"?this.renderCellEditObjectID(t,i):t.type==="numeric"?this.renderCellEditNumber(t,i):this.renderCellEditString(t,i)}onChange(e,t,i){const r=this.state.editData?{...this.state.editData}:{};i===t?delete r[e.field]:r[e.field]=i,this.setState({editData:r})}renderCellEditSelect(e,t){return M.createElement(j.Select,{variant:"standard",onChange:i=>this.onChange(e,t,i.target.value),value:this.state.editData&&this.state.editData[e.field]||t},e.lookup&&Object.keys(e.lookup).map((i,r)=>{var o;return M.createElement(j.MenuItem,{key:r,value:i},(o=e.lookup)==null?void 0:o[i])}))}renderCellEditString(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditNumber(e,t){return M.createElement(j.TextField,{variant:"standard",style:W.fieldEdit,type:"number",fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)})}renderCellEditCustom(e,t,i){const r=e.editComponent;return this.state.editData&&this.state.editData[e.field]!==void 0&&(t=this.state.editData[e.field],i=JSON.parse(JSON.stringify(i)),i[e.field]=t),r?M.createElement(r,{value:t,rowData:i,onChange:o=>this.onChange(e,t,o)}):null}renderCellEditBoolean(e,t){return M.createElement(j.Checkbox,{checked:this.state.editData&&this.state.editData[e.field]!==void 0?!!this.state.editData[e.field]:!!t,onChange:i=>this.onChange(e,!!t,i.target.checked),inputProps:{"aria-label":"checkbox"}})}renderSelectColorDialog(){return M.createElement(j.Dialog,{sx:{"& .MuiPaper-root":W.root,"& .MuiPaper-paper":W.paper},onClose:()=>{this.selectCallback=null,this.setState({showSelectColor:!1})},open:this.state.showSelectColor},M.createElement(fSe,{color:this.state.selectIdValue,onChange:e=>this.setState({selectIdValue:e},()=>{this.selectCallback&&this.selectCallback(e)})}))}renderCellEditColor(e,t){const i=this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t;return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:i,inputProps:{style:{backgroundColor:i,color:O.isUseBright(i)?"#FFF":"#000"}},onChange:r=>this.onChange(e,!!t,r.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=r=>this.onChange(e,t,r),this.setState({showSelectColor:!0,selectIdValue:t})},size:"large"},M.createElement(sg,null)))}renderSelectIdDialog(){return this.state.showSelectId&&this.props.socket?M.createElement(xSe,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,selected:this.state.selectIdValue,onClose:()=>this.setState({showSelectId:!1}),onOk:e=>{this.setState({showSelectId:!1,selectIdValue:null});const t=Array.isArray(e)?e[0]:e;t&&this.selectCallback&&(this.selectCallback&&this.selectCallback(t),this.selectCallback=null)}}):null}renderCellEditObjectID(e,t){return M.createElement("div",{style:W.fieldEdit},M.createElement(j.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:i=>this.onChange(e,t,i.target.value)}),M.createElement(j.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=i=>this.onChange(e,t,i),this.setState({showSelectId:!0,selectIdValue:t})},size:"large"},M.createElement(xg,null)))}static renderCellNonEdit(e,t){let i=St(e,t.field,t.lookup);return Array.isArray(i)&&(i=i[0]),t.type==="boolean"?M.createElement(j.Checkbox,{checked:!!i,disabled:!0,inputProps:{"aria-label":"checkbox"}}):i}renderCell(e,t,i,r){return this.state.editMode===r&&t.editable!=="never"&&t.editable!==!1?M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},this.renderCellEdit(e,t)):M.createElement(j.TableCell,{key:t.field,style:{...W.cell,...i?W.cellSecondary:void 0,...t.cellStyle},component:"th"},Kn.renderCellNonEdit(e,t))}static renderCellWithSubField(e,t){const i=St(e,t.field,t.lookup);if(t.subField){const r=St(e,t.subField,t.subLookup);return M.createElement("div",null,M.createElement("div",{style:W.mainText},i),M.createElement("div",{style:{...W.subText,...t.subStyle||void 0}},r))}return M.createElement("div",null,M.createElement("div",{style:W.mainText},i))}renderLine(e,t){const i=this.props.levelShift===void 0?24:this.props.levelShift;t=t||0;const r=this.props.data.indexOf(e);if(!e||!t&&e.parentId||t&&!e.parentId)return null;const o=this.state.opened.includes(e.id),n=this.props.data.filter(c=>c.parentId===e.id),a=M.createElement(j.TableRow,{key:e.id,className:`table-row-${(e.id||"").toString().replace(/[.$]/g,"_")}`,style:{...this.state.update&&this.state.update.includes(e.id)&&W.glow||void 0,...W.row,...t?W.rowSecondary:void 0,...!t&&n.length?W.rowMainWithChildren:void 0,...!t&&!n.length?W.rowMainWithoutChildren:void 0,...this.state.editMode!==!1&&this.state.editMode!==r?W.rowNoEdit:void 0,...this.state.deleteMode!==!1&&this.state.deleteMode!==r?W.rowNoEdit:void 0}},M.createElement(j.TableCell,{style:{...W.cell,...W.cellExpand,...t?W.cellSecondary:void 0}},n.length?M.createElement(j.IconButton,{onClick:()=>{const c=[...this.state.opened],l=c.indexOf(e.id);l===-1?(c.push(e.id),c.sort()):c.splice(l,1),(window._localStorage||window.localStorage).setItem(this.props.name||"iob-table",JSON.stringify(c)),this.setState({opened:c})},size:"small"},o?M.createElement(cg,null):M.createElement(zg,null)):null),M.createElement(j.TableCell,{scope:"row",style:{...W.cell,...t?W.cellSecondary:void 0,...this.props.columns[0].cellStyle,paddingLeft:i*t}},this.props.columns[0].subField?Kn.renderCellWithSubField(e,this.props.columns[0]):St(e,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map((c,l)=>!l&&!c.hidden?null:this.renderCell(e,c,t,r)),this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>{if(this.state.editMode!==!1){const c=JSON.parse(JSON.stringify(e));this.state.editData&&Object.keys(this.state.editData).forEach(l=>{var N;return R4(c,l,(N=this.state.editData)==null?void 0:N[l])}),this.setState({editMode:!1},()=>this.props.onUpdate&&this.props.onUpdate(c,e))}else this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e))},size:"large"},M.createElement(Oe,null)):M.createElement(j.IconButton,{disabled:this.state.editMode!==!1,onClick:()=>this.setState({editMode:r,editData:null}),size:"large"},M.createElement(mi,null))):null,this.props.onDelete&&!this.props.onUpdate?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.deleteMode===r?M.createElement(j.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e)),size:"large"},M.createElement(Oe,null)):null):null,this.props.onUpdate||this.props.onDelete?M.createElement(j.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===r||this.state.deleteMode===r?M.createElement(j.IconButton,{onClick:()=>this.setState({editMode:!1,deleteMode:!1}),size:"large"},M.createElement(Ne,null)):this.props.onDelete?M.createElement(j.IconButton,{disabled:this.state.deleteMode!==!1,onClick:()=>this.setState({deleteMode:r}),size:"large"},M.createElement(nt,null)):null):null);if(!t&&o){const c=n.map(l=>this.renderLine(l,t+1));return c.unshift(a),c}return a}handleRequestSort(e){const t=this.state.orderBy===e&&this.state.order==="asc";this.setState({order:t?"desc":"asc",orderBy:e})}renderHead(){return M.createElement(j.TableHead,null,M.createElement(j.TableRow,{key:"headerRow"},M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellExpand)}),M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${this.props.columns[0].field.replace(/\./g,"_")}`]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:()=>this.handleRequestSort(this.props.columns[0].field)},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map((e,t)=>!t&&!e.hidden?null:M.createElement(j.TableCell,{key:e.field,sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${e.field.replace(/\./g,"_")}`]),style:e.headerStyle||e.cellStyle,component:"th"},this.props.noSort?null:M.createElement(j.TableSortLabel,{active:this.state.orderBy===e.field,direction:this.state.orderBy===e.field?this.state.order:"asc",onClick:()=>this.handleRequestSort(e.field)},e.title||e.field,this.state.orderBy===e.field?M.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null))),this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)},this.props.noAdd?null:M.createElement(j.Fab,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:()=>this.props.onUpdate&&this.props.onUpdate(!0)},M.createElement(un,null))):null,this.props.onDelete||this.props.onUpdate?M.createElement(j.TableCell,{component:"th",sx:O.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)}):null))}render(){const e=this.props.columns.find(t=>t.field===this.state.orderBy);if(e){const t=e.lookup,i=SSe(this.props.data,_Se(this.state.order,this.state.orderBy,t));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({update:null})},500)),M.createElement("div",{style:W.tableContainer,className:this.props.className},M.createElement(j.Table,{style:W.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),M.createElement(j.TableBody,null,i.map(r=>this.renderLine(r)))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}return null}}/*! + * Cropper.js v1.6.2 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2024-04-21T07:43:05.335Z + */function Hl(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(s);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(s,r).enumerable})),t.push.apply(t,i)}return t}function F4(s){for(var e=1;es.length)&&(e=s.length);for(var t=0,i=new Array(e);t
',XSe=Number.isNaN||ct.isNaN;function V(s){return typeof s=="number"&&!XSe(s)}var aN=function(e){return e>0&&e<1/0};function on(s){return typeof s>"u"}function is(s){return qn(s)==="object"&&s!==null}var KSe=Object.prototype.hasOwnProperty;function $s(s){if(!is(s))return!1;try{var e=s.constructor,t=e.prototype;return e&&t&&KSe.call(t,"isPrototypeOf")}catch{return!1}}function Se(s){return typeof s=="function"}var qSe=Array.prototype.slice;function sL(s){return Array.from?Array.from(s):qSe.call(s)}function je(s,e){return s&&Se(e)&&(Array.isArray(s)||V(s.length)?sL(s).forEach(function(t,i){e.call(s,t,i,s)}):is(s)&&Object.keys(s).forEach(function(t){e.call(s,s[t],t,s)})),s}var ce=Object.assign||function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&i.forEach(function(o){is(o)&&Object.keys(o).forEach(function(n){e[n]=o[n]})}),e},e3e=/\.\d*(?:0|9){12}\d*$/;function Bs(s){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return e3e.test(s)?Math.round(s*e)/e:s}var t3e=/^width|height|left|top|marginLeft|marginTop$/;function Yt(s,e){var t=s.style;je(e,function(i,r){t3e.test(r)&&V(i)&&(i="".concat(i,"px")),t[r]=i})}function s3e(s,e){return s.classList?s.classList.contains(e):s.className.indexOf(e)>-1}function ye(s,e){if(e){if(V(s.length)){je(s,function(i){ye(i,e)});return}if(s.classList){s.classList.add(e);return}var t=s.className.trim();t?t.indexOf(e)<0&&(s.className="".concat(t," ").concat(e)):s.className=e}}function Mt(s,e){if(e){if(V(s.length)){je(s,function(t){Mt(t,e)});return}if(s.classList){s.classList.remove(e);return}s.className.indexOf(e)>=0&&(s.className=s.className.replace(e,""))}}function Ps(s,e,t){if(e){if(V(s.length)){je(s,function(i){Ps(i,e,t)});return}t?ye(s,e):Mt(s,e)}}var i3e=/([a-z\d])([A-Z])/g;function pM(s){return s.replace(i3e,"$1-$2").toLowerCase()}function Ma(s,e){return is(s[e])?s[e]:s.dataset?s.dataset[e]:s.getAttribute("data-".concat(pM(e)))}function Ui(s,e,t){is(t)?s[e]=t:s.dataset?s.dataset[e]=t:s.setAttribute("data-".concat(pM(e)),t)}function r3e(s,e){if(is(s[e]))try{delete s[e]}catch{s[e]=void 0}else if(s.dataset)try{delete s.dataset[e]}catch{s.dataset[e]=void 0}else s.removeAttribute("data-".concat(pM(e)))}var iL=/\s\s*/,rL=function(){var s=!1;if(Ao){var e=!1,t=function(){},i=Object.defineProperty({},"once",{get:function(){return s=!0,e},set:function(o){e=o}});ct.addEventListener("test",t,i),ct.removeEventListener("test",t,i)}return s}();function Ve(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(iL).forEach(function(o){if(!rL){var n=s.listeners;n&&n[o]&&n[o][t]&&(r=n[o][t],delete n[o][t],Object.keys(n[o]).length===0&&delete n[o],Object.keys(n).length===0&&delete s.listeners)}s.removeEventListener(o,r,i)})}function We(s,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=t;e.trim().split(iL).forEach(function(o){if(i.once&&!rL){var n=s.listeners,a=n===void 0?{}:n;r=function(){delete a[o][t],s.removeEventListener(o,r,i);for(var l=arguments.length,N=new Array(l),u=0;uMath.abs(t)&&(t=L)})}),t}function pr(s,e){var t=s.pageX,i=s.pageY,r={endX:t,endY:i};return e?r:F4({startX:t,startY:i},r)}function a3e(s){var e=0,t=0,i=0;return je(s,function(r){var o=r.startX,n=r.startY;e+=o,t+=n,i+=1}),e/=i,t/=i,{pageX:e,pageY:t}}function vt(s){var e=s.aspectRatio,t=s.height,i=s.width,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",o=aN(i),n=aN(t);if(o&&n){var a=t*e;r==="contain"&&a>i||r==="cover"&&a90?{width:c,height:a}:{width:a,height:c}}function c3e(s,e,t,i){var r=e.aspectRatio,o=e.naturalWidth,n=e.naturalHeight,a=e.rotate,c=a===void 0?0:a,l=e.scaleX,N=l===void 0?1:l,u=e.scaleY,L=u===void 0?1:u,g=t.aspectRatio,y=t.naturalWidth,T=t.naturalHeight,d=i.fillColor,z=d===void 0?"transparent":d,I=i.imageSmoothingEnabled,C=I===void 0?!0:I,m=i.imageSmoothingQuality,A=m===void 0?"low":m,D=i.maxWidth,p=D===void 0?1/0:D,_=i.maxHeight,x=_===void 0?1/0:_,P=i.minWidth,v=P===void 0?0:P,ee=i.minHeight,ue=ee===void 0?0:ee,G=document.createElement("canvas"),H=G.getContext("2d"),Te=vt({aspectRatio:g,width:p,height:x}),Fe=vt({aspectRatio:g,width:v,height:ue},"cover"),Ge=Math.min(Te.width,Math.max(Fe.width,y)),Ls=Math.min(Te.height,Math.max(Fe.height,T)),mo=vt({aspectRatio:r,width:p,height:x}),ai=vt({aspectRatio:r,width:v,height:ue},"cover"),Mi=Math.min(mo.width,Math.max(ai.width,o)),ci=Math.min(mo.height,Math.max(ai.height,n)),tr=[-Mi/2,-ci/2,Mi,ci];return G.width=Bs(Ge),G.height=Bs(Ls),H.fillStyle=z,H.fillRect(0,0,Ge,Ls),H.save(),H.translate(Ge/2,Ls/2),H.rotate(c*Math.PI/180),H.scale(N,L),H.imageSmoothingEnabled=C,H.imageSmoothingQuality=A,H.drawImage.apply(H,[s].concat(H4(tr.map(function(sr){return Math.floor(Bs(sr))})))),H.restore(),G}var nL=String.fromCharCode;function u3e(s,e,t){var i="";t+=e;for(var r=e;r0;)t.push(nL.apply(null,sL(r.subarray(0,i)))),r=r.subarray(i);return"data:".concat(e,";base64,").concat(btoa(t.join("")))}function g3e(s){var e=new DataView(s),t;try{var i,r,o;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var n=e.byteLength,a=2;a+1=8&&(o=l+u)}}}if(o){var L=e.getUint16(o,i),g,y;for(y=0;y=0?o:eL),height:Math.max(i.offsetHeight,n>=0?n:tL)};this.containerData=a,Yt(r,{width:a.width,height:a.height}),ye(e,ke),Mt(r,ke)},initCanvas:function(){var e=this.containerData,t=this.imageData,i=this.options.viewMode,r=Math.abs(t.rotate)%180===90,o=r?t.naturalHeight:t.naturalWidth,n=r?t.naturalWidth:t.naturalHeight,a=o/n,c=e.width,l=e.height;e.height*a>e.width?i===3?c=e.height*a:l=e.width/a:i===3?l=e.width/a:c=e.height*a;var N={aspectRatio:a,naturalWidth:o,naturalHeight:n,width:c,height:l};this.canvasData=N,this.limited=i===1||i===2,this.limitCanvas(!0,!0),N.width=Math.min(Math.max(N.width,N.minWidth),N.maxWidth),N.height=Math.min(Math.max(N.height,N.minHeight),N.maxHeight),N.left=(e.width-N.width)/2,N.top=(e.height-N.height)/2,N.oldLeft=N.left,N.oldTop=N.top,this.initialCanvasData=ce({},N)},limitCanvas:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=i.viewMode,c=o.aspectRatio,l=this.cropped&&n;if(e){var N=Number(i.minCanvasWidth)||0,u=Number(i.minCanvasHeight)||0;a>1?(N=Math.max(N,r.width),u=Math.max(u,r.height),a===3&&(u*c>N?N=u*c:u=N/c)):a>0&&(N?N=Math.max(N,l?n.width:0):u?u=Math.max(u,l?n.height:0):l&&(N=n.width,u=n.height,u*c>N?N=u*c:u=N/c));var L=vt({aspectRatio:c,width:N,height:u});N=L.width,u=L.height,o.minWidth=N,o.minHeight=u,o.maxWidth=1/0,o.maxHeight=1/0}if(t)if(a>(l?0:1)){var g=r.width-o.width,y=r.height-o.height;o.minLeft=Math.min(0,g),o.minTop=Math.min(0,y),o.maxLeft=Math.max(0,g),o.maxTop=Math.max(0,y),l&&this.limited&&(o.minLeft=Math.min(n.left,n.left+(n.width-o.width)),o.minTop=Math.min(n.top,n.top+(n.height-o.height)),o.maxLeft=n.left,o.maxTop=n.top,a===2&&(o.width>=r.width&&(o.minLeft=Math.min(0,g),o.maxLeft=Math.max(0,g)),o.height>=r.height&&(o.minTop=Math.min(0,y),o.maxTop=Math.max(0,y))))}else o.minLeft=-o.width,o.minTop=-o.height,o.maxLeft=r.width,o.maxTop=r.height},renderCanvas:function(e,t){var i=this.canvasData,r=this.imageData;if(t){var o=M3e({width:r.naturalWidth*Math.abs(r.scaleX||1),height:r.naturalHeight*Math.abs(r.scaleY||1),degree:r.rotate||0}),n=o.width,a=o.height,c=i.width*(n/i.naturalWidth),l=i.height*(a/i.naturalHeight);i.left-=(c-i.width)/2,i.top-=(l-i.height)/2,i.width=c,i.height=l,i.aspectRatio=n/a,i.naturalWidth=n,i.naturalHeight=a,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heightt.width?o.height=o.width/i:o.width=o.height*i),this.cropBoxData=o,this.limitCropBox(!0,!0),o.width=Math.min(Math.max(o.width,o.minWidth),o.maxWidth),o.height=Math.min(Math.max(o.height,o.minHeight),o.maxHeight),o.width=Math.max(o.minWidth,o.width*r),o.height=Math.max(o.minHeight,o.height*r),o.left=t.left+(t.width-o.width)/2,o.top=t.top+(t.height-o.height)/2,o.oldLeft=o.left,o.oldTop=o.top,this.initialCropBoxData=ce({},o)},limitCropBox:function(e,t){var i=this.options,r=this.containerData,o=this.canvasData,n=this.cropBoxData,a=this.limited,c=i.aspectRatio;if(e){var l=Number(i.minCropBoxWidth)||0,N=Number(i.minCropBoxHeight)||0,u=a?Math.min(r.width,o.width,o.width+o.left,r.width-o.left):r.width,L=a?Math.min(r.height,o.height,o.height+o.top,r.height-o.top):r.height;l=Math.min(l,r.width),N=Math.min(N,r.height),c&&(l&&N?N*c>l?N=l/c:l=N*c:l?N=l/c:N&&(l=N*c),L*c>u?L=u/c:u=L*c),n.minWidth=Math.min(l,u),n.minHeight=Math.min(N,L),n.maxWidth=u,n.maxHeight=L}t&&(a?(n.minLeft=Math.max(0,o.left),n.minTop=Math.max(0,o.top),n.maxLeft=Math.min(r.width,o.left+o.width)-n.width,n.maxTop=Math.min(r.height,o.top+o.height)-n.height):(n.minLeft=0,n.minTop=0,n.maxLeft=r.width-n.width,n.maxTop=r.height-n.height))},renderCropBox:function(){var e=this.options,t=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=t.width&&i.height>=t.height?Z4:CM),Yt(this.cropBox,ce({width:i.width,height:i.height},xi({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Js(this.element,ia,this.getData())}},T3e={initPreview:function(){var e=this.element,t=this.crossOrigin,i=this.options.preview,r=t?this.crossOriginUrl:this.url,o=e.alt||"The image to preview",n=document.createElement("img");if(t&&(n.crossOrigin=t),n.src=r,n.alt=o,this.viewBox.appendChild(n),this.viewBoxImage=n,!!i){var a=i;typeof i=="string"?a=e.ownerDocument.querySelectorAll(i):i.querySelector&&(a=[i]),this.previews=a,je(a,function(c){var l=document.createElement("img");Ui(c,Ir,{width:c.offsetWidth,height:c.offsetHeight,html:c.innerHTML}),t&&(l.crossOrigin=t),l.src=r,l.alt=o,l.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',c.innerHTML="",c.appendChild(l)})}},resetPreview:function(){je(this.previews,function(e){var t=Ma(e,Ir);Yt(e,{width:t.width,height:t.height}),e.innerHTML=t.html,r3e(e,Ir)})},preview:function(){var e=this.imageData,t=this.canvasData,i=this.cropBoxData,r=i.width,o=i.height,n=e.width,a=e.height,c=i.left-t.left-e.left,l=i.top-t.top-e.top;!this.cropped||this.disabled||(Yt(this.viewBoxImage,ce({width:n,height:a},xi(ce({translateX:-c,translateY:-l},e)))),je(this.previews,function(N){var u=Ma(N,Ir),L=u.width,g=u.height,y=L,T=g,d=1;r&&(d=L/r,T=o*d),o&&T>g&&(d=g/o,y=r*d,T=g),Yt(N,{width:y,height:T}),Yt(N.getElementsByTagName("img")[0],ce({width:n*d,height:a*d},xi(ce({translateX:-c*d,translateY:-l*d},e))))}))}},d3e={bind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&We(e,na,t.cropstart),Se(t.cropmove)&&We(e,oa,t.cropmove),Se(t.cropend)&&We(e,ra,t.cropend),Se(t.crop)&&We(e,ia,t.crop),Se(t.zoom)&&We(e,aa,t.zoom),We(i,ql,this.onCropStart=this.cropStart.bind(this)),t.zoomable&&t.zoomOnWheel&&We(i,rN,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&We(i,Kl,this.onDblclick=this.dblclick.bind(this)),We(e.ownerDocument,eN,this.onCropMove=this.cropMove.bind(this)),We(e.ownerDocument,tN,this.onCropEnd=this.cropEnd.bind(this)),t.responsive&&We(window,iN,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&Ve(e,na,t.cropstart),Se(t.cropmove)&&Ve(e,oa,t.cropmove),Se(t.cropend)&&Ve(e,ra,t.cropend),Se(t.crop)&&Ve(e,ia,t.crop),Se(t.zoom)&&Ve(e,aa,t.zoom),Ve(i,ql,this.onCropStart),t.zoomable&&t.zoomOnWheel&&Ve(i,rN,this.onWheel,{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Ve(i,Kl,this.onDblclick),Ve(e.ownerDocument,eN,this.onCropMove),Ve(e.ownerDocument,tN,this.onCropEnd),t.responsive&&Ve(window,iN,this.onResize)}},D3e={resize:function(){if(!this.disabled){var e=this.options,t=this.container,i=this.containerData,r=t.offsetWidth/i.width,o=t.offsetHeight/i.height,n=Math.abs(r-1)>Math.abs(o-1)?r:o;if(n!==1){var a,c;e.restore&&(a=this.getCanvasData(),c=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(je(a,function(l,N){a[N]=l*n})),this.setCropBoxData(je(c,function(l,N){c[N]=l*n})))}}},dblclick:function(){this.disabled||this.options.dragMode===q4||this.setDragMode(s3e(this.dragBox,ta)?K4:IM)},wheel:function(e){var t=this,i=Number(this.options.wheelZoomRatio)||.1,r=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){t.wheeling=!1},50),e.deltaY?r=e.deltaY>0?1:-1:e.wheelDelta?r=-e.wheelDelta/120:e.detail&&(r=e.detail>0?1:-1),this.zoom(-r*i,e)))},cropStart:function(e){var t=e.buttons,i=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(V(t)&&t!==1||V(i)&&i!==0||e.ctrlKey))){var r=this.options,o=this.pointers,n;e.changedTouches?je(e.changedTouches,function(a){o[a.identifier]=pr(a)}):o[e.pointerId||0]=pr(e),Object.keys(o).length>1&&r.zoomable&&r.zoomOnTouch?n=X4:n=Ma(e.target,Qi),FSe.test(n)&&Js(this.element,na,{originalEvent:e,action:n})!==!1&&(e.preventDefault(),this.action=n,this.cropping=!1,n===V4&&(this.cropping=!0,ye(this.dragBox,Xr)))}},cropMove:function(e){var t=this.action;if(!(this.disabled||!t)){var i=this.pointers;e.preventDefault(),Js(this.element,oa,{originalEvent:e,action:t})!==!1&&(e.changedTouches?je(e.changedTouches,function(r){ce(i[r.identifier]||{},pr(r,!0))}):ce(i[e.pointerId||0]||{},pr(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var t=this.action,i=this.pointers;e.changedTouches?je(e.changedTouches,function(r){delete i[r.identifier]}):delete i[e.pointerId||0],t&&(e.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,Ps(this.dragBox,Xr,this.cropped&&this.options.modal)),Js(this.element,ra,{originalEvent:e,action:t}))}}},h3e={change:function(e){var t=this.options,i=this.canvasData,r=this.containerData,o=this.cropBoxData,n=this.pointers,a=this.action,c=t.aspectRatio,l=o.left,N=o.top,u=o.width,L=o.height,g=l+u,y=N+L,T=0,d=0,z=r.width,I=r.height,C=!0,m;!c&&e.shiftKey&&(c=u&&L?u/L:1),this.limited&&(T=o.minLeft,d=o.minTop,z=T+Math.min(r.width,i.width,i.left+i.width),I=d+Math.min(r.height,i.height,i.top+i.height));var A=n[Object.keys(n)[0]],D={x:A.endX-A.startX,y:A.endY-A.startY},p=function(x){switch(x){case Jt:g+D.x>z&&(D.x=z-g);break;case Rt:l+D.xI&&(D.y=I-y);break}};switch(a){case CM:l+=D.x,N+=D.y;break;case Jt:if(D.x>=0&&(g>=z||c&&(N<=d||y>=I))){C=!1;break}p(Jt),u+=D.x,u<0&&(a=Rt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case ft:if(D.y<=0&&(N<=d||c&&(l<=T||g>=z))){C=!1;break}p(ft),L-=D.y,N+=D.y,L<0&&(a=hs,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case Rt:if(D.x<=0&&(l<=T||c&&(N<=d||y>=I))){C=!1;break}p(Rt),u-=D.x,l+=D.x,u<0&&(a=Jt,u=-u,l-=u),c&&(L=u/c,N+=(o.height-L)/2);break;case hs:if(D.y>=0&&(y>=I||c&&(l<=T||g>=z))){C=!1;break}p(hs),L+=D.y,L<0&&(a=ft,L=-L,N-=L),c&&(u=L*c,l+=(o.width-u)/2);break;case yi:if(c){if(D.y<=0&&(N<=d||g>=z)){C=!1;break}p(ft),L-=D.y,N+=D.y,u=L*c}else p(ft),p(Jt),D.x>=0?gd&&(L-=D.y,N+=D.y):(L-=D.y,N+=D.y);u<0&&L<0?(a=Di,L=-L,u=-u,N-=L,l-=u):u<0?(a=Ti,u=-u,l-=u):L<0&&(a=di,L=-L,N-=L);break;case Ti:if(c){if(D.y<=0&&(N<=d||l<=T)){C=!1;break}p(ft),L-=D.y,N+=D.y,u=L*c,l+=o.width-u}else p(ft),p(Rt),D.x<=0?l>T?(u-=D.x,l+=D.x):D.y<=0&&N<=d&&(C=!1):(u-=D.x,l+=D.x),D.y<=0?N>d&&(L-=D.y,N+=D.y):(L-=D.y,N+=D.y);u<0&&L<0?(a=di,L=-L,u=-u,N-=L,l-=u):u<0?(a=yi,u=-u,l-=u):L<0&&(a=Di,L=-L,N-=L);break;case Di:if(c){if(D.x<=0&&(l<=T||y>=I)){C=!1;break}p(Rt),u-=D.x,l+=D.x,L=u/c}else p(hs),p(Rt),D.x<=0?l>T?(u-=D.x,l+=D.x):D.y>=0&&y>=I&&(C=!1):(u-=D.x,l+=D.x),D.y>=0?y=0&&(g>=z||y>=I)){C=!1;break}p(Jt),u+=D.x,L=u/c}else p(hs),p(Jt),D.x>=0?g=0&&y>=I&&(C=!1):u+=D.x,D.y>=0?y0?a=D.y>0?di:yi:D.x<0&&(l-=u,a=D.y>0?Di:Ti),D.y<0&&(N-=L),this.cropped||(Mt(this.cropBox,ke),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}C&&(o.width=u,o.height=L,o.left=l,o.top=N,this.action=a,this.renderCropBox()),je(n,function(_){_.startX=_.endX,_.startY=_.endY})}},z3e={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&ye(this.dragBox,Xr),Mt(this.cropBox,ke),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ce({},this.initialImageData),this.canvasData=ce({},this.initialCanvasData),this.cropBoxData=ce({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ce(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Mt(this.dragBox,Xr),ye(this.cropBox,ke)),this},replace:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),t?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,je(this.previews,function(i){i.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Mt(this.cropper,Zl)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,ye(this.cropper,Zl)),this},destroy:function(){var e=this.element;return e[ae]?(e[ae]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=i.left,o=i.top;return this.moveTo(on(e)?e:r+Number(e),on(t)?t:o+Number(t))},moveTo:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.canvasData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.movable&&(V(e)&&(i.left=e,r=!0),V(t)&&(i.top=t,r=!0),r&&this.renderCanvas(!0)),this},zoom:function(e,t){var i=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(i.width*e/i.naturalWidth,null,t)},zoomTo:function(e,t,i){var r=this.options,o=this.canvasData,n=o.width,a=o.height,c=o.naturalWidth,l=o.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&r.zoomable){var N=c*e,u=l*e;if(Js(this.element,aa,{ratio:e,oldRatio:n/c,originalEvent:i})===!1)return this;if(i){var L=this.pointers,g=oL(this.cropper),y=L&&Object.keys(L).length?a3e(L):{pageX:i.pageX,pageY:i.pageY};o.left-=(N-n)*((y.pageX-g.left-o.left)/n),o.top-=(u-a)*((y.pageY-g.top-o.top)/a)}else $s(t)&&V(t.x)&&V(t.y)?(o.left-=(N-n)*((t.x-o.left)/n),o.top-=(u-a)*((t.y-o.top)/a)):(o.left-=(N-n)/2,o.top-=(u-a)/2);o.width=N,o.height=u,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),V(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var t=this.imageData.scaleY;return this.scale(e,V(t)?t:1)},scaleY:function(e){var t=this.imageData.scaleX;return this.scale(V(t)?t:1,e)},scale:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,i=this.imageData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.scalable&&(V(e)&&(i.scaleX=e,r=!0),V(t)&&(i.scaleY=t,r=!0),r&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.options,i=this.imageData,r=this.canvasData,o=this.cropBoxData,n;if(this.ready&&this.cropped){n={x:o.left-r.left,y:o.top-r.top,width:o.width,height:o.height};var a=i.width/i.naturalWidth;if(je(n,function(N,u){n[u]=N/a}),e){var c=Math.round(n.y+n.height),l=Math.round(n.x+n.width);n.x=Math.round(n.x),n.y=Math.round(n.y),n.width=l-n.x,n.height=c-n.y}}else n={x:0,y:0,width:0,height:0};return t.rotatable&&(n.rotate=i.rotate||0),t.scalable&&(n.scaleX=i.scaleX||1,n.scaleY=i.scaleY||1),n},setData:function(e){var t=this.options,i=this.imageData,r=this.canvasData,o={};if(this.ready&&!this.disabled&&$s(e)){var n=!1;t.rotatable&&V(e.rotate)&&e.rotate!==i.rotate&&(i.rotate=e.rotate,n=!0),t.scalable&&(V(e.scaleX)&&e.scaleX!==i.scaleX&&(i.scaleX=e.scaleX,n=!0),V(e.scaleY)&&e.scaleY!==i.scaleY&&(i.scaleY=e.scaleY,n=!0)),n&&this.renderCanvas(!0,!0);var a=i.width/i.naturalWidth;V(e.x)&&(o.left=e.x*a+r.left),V(e.y)&&(o.top=e.y*a+r.top),V(e.width)&&(o.width=e.width*a),V(e.height)&&(o.height=e.height*a),this.setCropBoxData(o)}return this},getContainerData:function(){return this.ready?ce({},this.containerData):{}},getImageData:function(){return this.sized?ce({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,t={};return this.ready&&je(["left","top","width","height","naturalWidth","naturalHeight"],function(i){t[i]=e[i]}),t},setCanvasData:function(e){var t=this.canvasData,i=t.aspectRatio;return this.ready&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)?(t.width=e.width,t.height=e.width/i):V(e.height)&&(t.height=e.height,t.width=e.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,t;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(e){var t=this.cropBoxData,i=this.options.aspectRatio,r,o;return this.ready&&this.cropped&&!this.disabled&&$s(e)&&(V(e.left)&&(t.left=e.left),V(e.top)&&(t.top=e.top),V(e.width)&&e.width!==t.width&&(r=!0,t.width=e.width),V(e.height)&&e.height!==t.height&&(o=!0,t.height=e.height),i&&(r?t.height=t.width/i:o&&(t.width=t.height*i)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var t=this.canvasData,i=c3e(this.image,this.imageData,t,e);if(!this.cropped)return i;var r=this.getData(e.rounded),o=r.x,n=r.y,a=r.width,c=r.height,l=i.width/Math.floor(t.naturalWidth);l!==1&&(o*=l,n*=l,a*=l,c*=l);var N=a/c,u=vt({aspectRatio:N,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),L=vt({aspectRatio:N,width:e.minWidth||0,height:e.minHeight||0},"cover"),g=vt({aspectRatio:N,width:e.width||(l!==1?i.width:a),height:e.height||(l!==1?i.height:c)}),y=g.width,T=g.height;y=Math.min(u.width,Math.max(L.width,y)),T=Math.min(u.height,Math.max(L.height,T));var d=document.createElement("canvas"),z=d.getContext("2d");d.width=Bs(y),d.height=Bs(T),z.fillStyle=e.fillColor||"transparent",z.fillRect(0,0,y,T);var I=e.imageSmoothingEnabled,C=I===void 0?!0:I,m=e.imageSmoothingQuality;z.imageSmoothingEnabled=C,m&&(z.imageSmoothingQuality=m);var A=i.width,D=i.height,p=o,_=n,x,P,v,ee,ue,G;p<=-a||p>A?(p=0,x=0,v=0,ue=0):p<=0?(v=-p,p=0,x=Math.min(A,a+p),ue=x):p<=A&&(v=0,x=Math.min(a,A-p),ue=x),x<=0||_<=-c||_>D?(_=0,P=0,ee=0,G=0):_<=0?(ee=-_,_=0,P=Math.min(D,c+_),G=P):_<=D&&(ee=0,P=Math.min(c,D-_),G=P);var H=[p,_,x,P];if(ue>0&&G>0){var Te=y/a;H.push(v*Te,ee*Te,ue*Te,G*Te)}return z.drawImage.apply(z,[i].concat(H4(H.map(function(Fe){return Math.floor(Bs(Fe))})))),d},setAspectRatio:function(e){var t=this.options;return!this.disabled&&!on(e)&&(t.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var t=this.options,i=this.dragBox,r=this.face;if(this.ready&&!this.disabled){var o=e===IM,n=t.movable&&e===K4;e=o||n?e:q4,t.dragMode=e,Ui(i,Qi,e),Ps(i,ta,o),Ps(i,sa,n),t.cropBoxMovable||(Ui(r,Qi,e),Ps(r,ta,o),Ps(r,sa,n))}return this}},w3e=ct.Cropper,aL=function(){function s(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(YSe(this,s),!e||!VSe.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=ce({},nN,$s(t)&&t),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return vSe(s,[{key:"init",value:function(){var t=this.element,i=t.tagName.toLowerCase(),r;if(!t[ae]){if(t[ae]=this,i==="img"){if(this.isImg=!0,r=t.getAttribute("src")||"",this.originalUrl=r,!r)return;r=t.src}else i==="canvas"&&window.HTMLCanvasElement&&(r=t.toDataURL());this.load(r)}}},{key:"load",value:function(t){var i=this;if(t){this.url=t,this.imageData={};var r=this.element,o=this.options;if(!o.rotatable&&!o.scalable&&(o.checkOrientation=!1),!o.checkOrientation||!window.ArrayBuffer){this.clone();return}if(GSe.test(t)){HSe.test(t)?this.read(N3e(t)):this.clone();return}var n=new XMLHttpRequest,a=this.clone.bind(this);this.reloading=!0,this.xhr=n,n.onabort=a,n.onerror=a,n.ontimeout=a,n.onprogress=function(){n.getResponseHeader("content-type")!==oN&&n.abort()},n.onload=function(){i.read(n.response)},n.onloadend=function(){i.reloading=!1,i.xhr=null},o.checkCrossOrigin&&MN(t)&&r.crossOrigin&&(t=cN(t)),n.open("GET",t,!0),n.responseType="arraybuffer",n.withCredentials=r.crossOrigin==="use-credentials",n.send()}}},{key:"read",value:function(t){var i=this.options,r=this.imageData,o=g3e(t),n=0,a=1,c=1;if(o>1){this.url=L3e(t,oN);var l=j3e(o);n=l.rotate,a=l.scaleX,c=l.scaleY}i.rotatable&&(r.rotate=n),i.scalable&&(r.scaleX=a,r.scaleY=c),this.clone()}},{key:"clone",value:function(){var t=this.element,i=this.url,r=t.crossOrigin,o=i;this.options.checkCrossOrigin&&MN(i)&&(r||(r="anonymous"),o=cN(i)),this.crossOrigin=r,this.crossOriginUrl=o;var n=document.createElement("img");r&&(n.crossOrigin=r),n.src=o||i,n.alt=t.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),ye(n,Xl),t.parentNode.insertBefore(n,t.nextSibling)}},{key:"start",value:function(){var t=this,i=this.image;i.onload=null,i.onerror=null,this.sizing=!0;var r=ct.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(ct.navigator.userAgent),o=function(l,N){ce(t.imageData,{naturalWidth:l,naturalHeight:N,aspectRatio:l/N}),t.initialImageData=ce({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(i.naturalWidth&&!r){o(i.naturalWidth,i.naturalHeight);return}var n=document.createElement("img"),a=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){o(n.width,n.height),r||a.removeChild(n)},n.src=i.src,r||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",a.appendChild(n))}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var t=this.element,i=this.options,r=this.image,o=t.parentNode,n=document.createElement("div");n.innerHTML=ZSe;var a=n.querySelector(".".concat(ae,"-container")),c=a.querySelector(".".concat(ae,"-canvas")),l=a.querySelector(".".concat(ae,"-drag-box")),N=a.querySelector(".".concat(ae,"-crop-box")),u=N.querySelector(".".concat(ae,"-face"));this.container=o,this.cropper=a,this.canvas=c,this.dragBox=l,this.cropBox=N,this.viewBox=a.querySelector(".".concat(ae,"-view-box")),this.face=u,c.appendChild(r),ye(t,ke),o.insertBefore(a,t.nextSibling),Mt(r,Xl),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,ye(N,ke),i.guides||ye(N.getElementsByClassName("".concat(ae,"-dashed")),ke),i.center||ye(N.getElementsByClassName("".concat(ae,"-center")),ke),i.background&&ye(a,"".concat(ae,"-bg")),i.highlight||ye(u,WSe),i.cropBoxMovable&&(ye(u,sa),Ui(u,Qi,CM)),i.cropBoxResizable||(ye(N.getElementsByClassName("".concat(ae,"-line")),ke),ye(N.getElementsByClassName("".concat(ae,"-point")),ke)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),Se(i.ready)&&We(t,sN,i.ready,{once:!0}),Js(t,sN)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),Mt(this.element,ke)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=w3e,s}},{key:"setDefaults",value:function(t){ce(nN,$s(t)&&t)}}])}();ce(aL.prototype,y3e,T3e,d3e,D3e,h3e,z3e);var Zt=function(){return Zt=Object.assign||function(s){for(var e,t=1,i=arguments.length;t0&&_.zoomTo(Fe)}(p.currentTarget.cropper,C),d&&d(p)}}));z&&z(D)}return function(){var p,_;(_=(p=m.current)===null||p===void 0?void 0:p.cropper)===null||_===void 0||_.destroy()}},[m]);var A=function(D){return C3e.reduce(function(p,_){var x=p,P=_;return x[P],an(x,[typeof P=="symbol"?P:P+""])},D)}(Zt(Zt({},I),{crossOrigin:c,src:o,alt:T}));return M.createElement("div",{style:n,className:a},M.createElement("img",Zt({},A,{style:I3e,ref:m})))});const A3e=` +/*! + * Cropper.js v1.5.12 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2021-06-12T08:00:11.623Z + */ + +.cropper-container { + direction: ltr; + font-size: 0; + line-height: 0; + position: relative; + -ms-touch-action: none; + touch-action: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.cropper-container img { + display: block; + height: 100%; + image-orientation: 0deg; + max-height: none !important; + max-width: none !important; + min-height: 0 !important; + min-width: 0 !important; + width: 100%; +} + +.cropper-wrap-box, +.cropper-canvas, +.cropper-drag-box, +.cropper-crop-box, +.cropper-modal { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.cropper-wrap-box, +.cropper-canvas { + overflow: hidden; +} + +.cropper-drag-box { + background-color: #fff; + opacity: 0; +} + +.cropper-modal { + background-color: #000; + opacity: 0.5; +} + +.cropper-view-box { + display: block; + height: 100%; + outline: 1px solid #39f; + outline-color: rgba(51, 153, 255, 0.75); + overflow: hidden; + width: 100%; +} + +.cropper-dashed { + border: 0 dashed #eee; + display: block; + opacity: 0.5; + position: absolute; +} + +.cropper-dashed.dashed-h { + border-bottom-width: 1px; + border-top-width: 1px; + height: calc(100% / 3); + left: 0; + top: calc(100% / 3); + width: 100%; +} + +.cropper-dashed.dashed-v { + border-left-width: 1px; + border-right-width: 1px; + height: 100%; + left: calc(100% / 3); + top: 0; + width: calc(100% / 3); +} + +.cropper-center { + display: block; + height: 0; + left: 50%; + opacity: 0.75; + position: absolute; + top: 50%; + width: 0; +} + +.cropper-center::before, +.cropper-center::after { + background-color: #eee; + content: ' '; + display: block; + position: absolute; +} + +.cropper-center::before { + height: 1px; + left: -3px; + top: 0; + width: 7px; +} + +.cropper-center::after { + height: 7px; + left: 0; + top: -3px; + width: 1px; +} + +.cropper-face, +.cropper-line, +.cropper-point { + display: block; + height: 100%; + opacity: 0.1; + position: absolute; + width: 100%; +} + +.cropper-face { + background-color: #fff; + left: 0; + top: 0; +} + +.cropper-line { + background-color: #39f; +} + +.cropper-line.line-e { + cursor: ew-resize; + right: -3px; + top: 0; + width: 5px; +} + +.cropper-line.line-n { + cursor: ns-resize; + height: 5px; + left: 0; + top: -3px; +} + +.cropper-line.line-w { + cursor: ew-resize; + left: -3px; + top: 0; + width: 5px; +} + +.cropper-line.line-s { + bottom: -3px; + cursor: ns-resize; + height: 5px; + left: 0; +} + +.cropper-point { + background-color: #39f; + height: 5px; + opacity: 0.75; + width: 5px; +} + +.cropper-point.point-e { + cursor: ew-resize; + margin-top: -3px; + right: -3px; + top: 50%; +} + +.cropper-point.point-n { + cursor: ns-resize; + left: 50%; + margin-left: -3px; + top: -3px; +} + +.cropper-point.point-w { + cursor: ew-resize; + left: -3px; + margin-top: -3px; + top: 50%; +} + +.cropper-point.point-s { + bottom: -3px; + cursor: s-resize; + left: 50%; + margin-left: -3px; +} + +.cropper-point.point-ne { + cursor: nesw-resize; + right: -3px; + top: -3px; +} + +.cropper-point.point-nw { + cursor: nwse-resize; + left: -3px; + top: -3px; +} + +.cropper-point.point-sw { + bottom: -3px; + cursor: nesw-resize; + left: -3px; +} + +.cropper-point.point-se { + bottom: -3px; + cursor: nwse-resize; + height: 20px; + opacity: 1; + right: -3px; + width: 20px; +} + +@media (min-width: 768px) { + .cropper-point.point-se { + height: 15px; + width: 15px; + } +} + +@media (min-width: 992px) { + .cropper-point.point-se { + height: 10px; + width: 10px; + } +} + +@media (min-width: 1200px) { + .cropper-point.point-se { + height: 5px; + opacity: 0.75; + width: 5px; + } +} + +.cropper-point.point-se::before { + background-color: #39f; + bottom: -50%; + content: ' '; + display: block; + height: 200%; + opacity: 0; + position: absolute; + right: -50%; + width: 200%; +} + +.cropper-invisible { + opacity: 0; +} + +.cropper-bg { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC'); +} + +.cropper-hide { + display: block; + height: 0; + position: absolute; + width: 0; +} + +.cropper-hidden { + display: none !important; +} + +.cropper-move { + cursor: move; +} + +.cropper-crop { + cursor: crosshair; +} + +.cropper-disabled .cropper-drag-box, +.cropper-disabled .cropper-face, +.cropper-disabled .cropper-line, +.cropper-disabled .cropper-point { + cursor: not-allowed; +} +`,_e={dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red",boxSizing:"border-box"}};class i5e extends f.Component{cropperRef;constructor(e){if(super(e),this.state={uploadFile:!1,anchorEl:null,cropHandler:!1},this.cropperRef=f.createRef(),!window.document.getElementById("cropper-style-json-component")){const t=window.document.createElement("style");t.setAttribute("id","cropper-style-json-component"),t.innerHTML=A3e,window.document.head.appendChild(t)}}onDrop(e){const t=this.props.onChange,i=this.props.maxSize||10*1024,r=e[0],o=new FileReader;o.onabort=()=>console.log("file reading was aborted"),o.onerror=()=>console.log("file reading has failed"),o.onload=()=>{var c,l;if(!r||!r.name)return;const n=(c=r.name)==null?void 0:c.split(".");let a=n!=null&&n.length?`image/${(l=n.pop())==null?void 0:l.toLowerCase()}`:"image/jpeg";if(a==="image/jpg"?a="image/jpeg":a.includes("svg")&&(a="image/svg+xml"),r.size>i)window.alert(h.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(i/1024)));else{const N=`data:${a};base64,${btoa(new Uint8Array(o.result).reduce((u,L)=>u+String.fromCharCode(L),""))}`;t?t(N):console.log(N)}},o.readAsArrayBuffer(r)}render(){const{disabled:e,icon:t,removeIconFunc:i,error:r,crop:o,onChange:n}=this.props,a=this.props.maxSize||10*1024;let c=this.props.accept||{"image/*":[]};const{uploadFile:l,anchorEl:N,cropHandler:u}=this.state;if(typeof c=="string")c={[c]:[]};else if(Array.isArray(c)){const L={};c.forEach(g=>{L[g]=[]}),c=L}return M.createElement(NN,{disabled:!!e||u,key:"dropzone",multiple:!1,accept:c,maxSize:a,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(L,g)=>{var y,T,d;this.setState({uploadFile:!1}),L.length?this.onDrop(L):window.alert(((d=(T=(y=g==null?void 0:g[0])==null?void 0:y.errors)==null?void 0:T[0])==null?void 0:d.message)||h.t("ra_Cannot upload"))}},({getRootProps:L,getInputProps:g})=>M.createElement("div",{style:{..._e.uploadDiv,...l==="dragging"?_e.uploadDivDragging:void 0,..._e.dropZone,...e?_e.disabledOpacity:void 0,...t?void 0:_e.dropZoneEmpty},...L()},M.createElement("input",{...g()}),M.createElement("div",{style:{..._e.uploadCenterDiv,...r?_e.error:void 0}},t?i&&!u&&M.createElement("div",{style:_e.buttonRemoveWrapper},M.createElement(j.Tooltip,{title:h.t("ra_Clear"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{i&&i(),y.stopPropagation()}},M.createElement(Ne,null)))):M.createElement("div",{style:_e.uploadCenterTextAndIcon},M.createElement(Ag,{style:_e.uploadCenterIcon}),M.createElement("div",{style:_e.uploadCenterText},l==="dragging"?h.t("ra_Drop file here"):h.t("ra_Place your files here or click here to open the browse dialog"))),t&&o&&M.createElement("div",{style:_e.buttonCropWrapper},M.createElement(j.Tooltip,{title:h.t("ra_Crop"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},M.createElement(j.IconButton,{size:"large",onClick:y=>{u?this.setState({anchorEl:y.currentTarget}):this.setState({cropHandler:!0}),y.stopPropagation()}},M.createElement(og,{color:u?"primary":"inherit"}))),M.createElement(j.Menu,{anchorEl:N,keepMounted:!0,open:!!N,onClose:()=>this.setState({anchorEl:null})},M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1},()=>{var T,d;const y=(d=(T=this.cropperRef)==null?void 0:T.current)==null?void 0:d.cropper;y&&(n?n(y.getCroppedCanvas().toDataURL()):console.log(y.getCroppedCanvas().toDataURL()))})},h.t("ra_Save")),M.createElement(j.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1})},h.t("ra_Close")))),t&&!u?M.createElement(me,{src:t,style:_e.image,alt:"icon"}):null,t&&o&&u?M.createElement(p3e,{ref:this.cropperRef,style:_e.image,src:t,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null)))}}const xt={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},m3e={once:"once"},Ce={seconds:"seconds",minutes:"minutes"},uN=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function ot(s){return s<10?`0${s}`:`${s}`}const O3e={mode:"interval",interval:{period:1,unit:Ce.minutes}};function _r(s){if(s==="*")return[0,1,2,3,4,5,6];const e=s.split(","),t=[];return e.forEach(i=>{const r=i.split("-");if(r.length===2){const o=parseInt(r[0],10),n=parseInt(r[1],10);for(let a=o;a<=n;a++)t.includes(a===7?0:a)||t.push(a===7?0:a)}else{i==="7"&&(i="0");const o=parseInt(i,10);t.includes(o)||t.push(o)}}),t.sort(),t}function ML(s,e){s=s.replace(/['"]/g,"").trim();const t=s.split(" ");let i,r=null;return t.length===6?i={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",date:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:i={seconds:null,minutes:t[0]||"*",hours:t[1]||"*",date:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},i.seconds===null&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)&&(r={mode:"interval",interval:{period:1,unit:Ce.minutes}}),i.seconds==="*"&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:1,unit:Ce.seconds}}:i.seconds===null&&i.minutes.includes("/")&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours==="*"&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"interval",interval:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds}}:i.seconds!==null&&i.seconds.includes("/")&&i.minutes==="*"&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.seconds.split("/")[1],10),unit:Ce.seconds,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&i.minutes.includes("/")&&i.hours.includes("-")&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"intervalBetween",intervalBetween:{period:parseInt(i.minutes.split("/")[1],10),unit:Ce.minutes,timeFrom:parseInt(i.hours.split("-")[0],10),timeTo:parseInt(i.hours.split("-")[1],10),weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&i.date==="*"&&i.months==="*"&&(i.dow==="*"||e)?r={mode:"specific",specific:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,weekdays:_r(i.dow)}}:i.seconds===null&&parseInt(i.minutes,10).toString()===i.minutes&&parseInt(i.hours,10).toString()===i.hours&&parseInt(i.date,10).toString()===i.date&&parseInt(i.months,10).toString()===i.months&&(i.dow==="*"||e)&&(r={mode:"once",once:{time:`${ot(parseInt(i.hours,10))}:${ot(parseInt(i.minutes,10))}`,date:`${ot(parseInt(i.date,10))}.${ot(parseInt(i.months,10))}`}}),r}class $i extends M.Component{constructor(e){super(e);let t=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";t[0]==="{"&&(t="");const i=ML(t||"* * * * *",!0)||O3e;this.state={extended:!1,cron:$i.state2cron(i),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:Ce.minutes},intervalBetween:{period:1,unit:Ce.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,i),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,t=7){if(t=t||7,e.length===t)return"*";const i=[];let r=null,o=null;if(!e.length)return"_";for(let n=0;n60&&(i.period=60),i.period!==void 0&&i.period<1&&(i.period=1),i.minutes!==void 0&&i.minutes!==null&&i.minutes>60&&(i.minutes=60),i.minutes!==void 0&&i.minutes!==null&&i.minutes<1&&(i.minutes=1),i.hours!==void 0&&i.hours!==null&&i.hours>24&&(i.hours=24),i.hours!==void 0&&i.hours!==null&&i.hours<1&&(i.hours=1),e.extended)t=`${i.minutes!==void 0&&i.minutes!==null&&i.minutes>1?`*/${i.minutes}`:"*"} ${i.hours!==void 0&&i.hours!==null&&i.hours>1?`*/${i.hours}`:"*"} * * *`;else switch(i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * * * * *`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const i=e.intervalBetween||{period:1,unit:Ce.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let r;switch(i.timeFrom=i.timeFrom||0,i.timeTo=i.timeTo===void 0?24:i.timeTo,i.timeFrom!==0&&i.timeTo===24&&(i.timeTo=23),i.timeFrom===0&&i.timeTo===24?r="*":r=i.timeFrom!==i.timeTo?`${i.timeFrom}-${i.timeTo}`:"*",i.period>60&&(i.period=60),i.period<1&&(i.period=1),i.unit=i.unit||Ce.minutes,i.unit){case Ce.seconds:t=`${i.period>1?`*/${i.period}`:"*"} * ${r} * * ${this.periodArray2text(i.weekdays)}`;break;case Ce.minutes:t=`${i.period>1?`*/${i.period}`:"*"} ${r} * * ${this.periodArray2text(i.weekdays)}`;break}}else if(e.mode==="specific"){const i=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},r=(i.time||"00:00").split(":");let o=parseInt(r[1],10)||0;o>59&&(o=59),o<0&&(o=0);let n=parseInt(r[0],10)||0;n>23&&(n=59),n<0&&(n=0),t=`${o} ${n} * * ${this.periodArray2text(i.weekdays||[])}`}else if(e.mode==="once"){const i=e.once||{time:"00:00",date:""};i.date||(i.date=`${new Date().getDate()}.${ot(new Date().getMonth()+1)}`);const r=(i.time||"00:00").split(":"),o=i.date.split(".");let n=parseInt(r[1],10)||0;n>59&&(n=59),n<0&&(n=0);let a=parseInt(r[0],10)||0;a>23&&(a=59),a<0&&(a=0);let c=parseInt(o[0],10)||1;c>31&&(c=31),c<1&&(a=1);let l=parseInt(o[1],10)||1;l>12&&(l=12),l<1&&(l=1),t=`${n} ${a} ${c} ${l} *`}return t}recalcCron(){this.onChange($i.state2cron(this.state))}getControlsWeekdaysElements(e){const t=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return M.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},M.createElement("h5",null,h.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(i=>M.createElement(j.FormControlLabel,{key:uN[i],control:M.createElement(j.Checkbox,{checked:t.weekdays.includes(i),onChange:r=>{const o=JSON.parse(JSON.stringify(this.state[e])),n=o.weekdays.indexOf(i);r.target.checked?n===-1&&o.weekdays.push(i):n!==-1&&o.weekdays.splice(n,1),o.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:o},()=>this.recalcCron()):this.setState({specific:o},()=>this.recalcCron())},value:i.toString()}),label:h.t(uN[i])})))}getControlsPeriodElements(e){const t=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},h.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:h.t("sc_minutes"),value:t.minutes,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.minutes=parseInt(i.target.value,10),r.minutes<1&&(r.minutes=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:h.t("sc_hours"),value:t.hours,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.hours=parseInt(i.target.value,10),r.hours<1&&(r.hours=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):M.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},M.createElement("h5",{style:{marginBottom:5}},h.t("sc_period")),M.createElement(j.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:h.t("sc_every"),value:t.period,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.period=parseInt(i.target.value,10),r.period<1&&(r.period=1),e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),M.createElement(j.Select,{variant:"standard",style:{verticalAlign:"bottom"},value:t.unit,onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.unit=i.target.value,e==="interval"?this.setState({interval:r},()=>this.recalcCron()):this.setState({intervalBetween:r},()=>this.recalcCron())}},M.createElement(j.MenuItem,{value:"seconds"},h.t("sc_seconds")),")",M.createElement(j.MenuItem,{value:"minutes"},h.t("sc_minutes")),")"))}getControlsTime(e){const t=e==="once"?this.state.once:this.state.specific;return M.createElement(j.FormControl,{variant:"standard",sx:{...xt.formControl,"&.MuiFormControl-root":xt.formControlMarginRight}},M.createElement(j.TextField,{variant:"standard",key:"at",label:h.t("sc_time"),value:t.time,type:"time",sx:i=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:i.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:i=>{const r=JSON.parse(JSON.stringify(this.state[e]));r.time=i.target.value,e==="once"?this.setState({once:r},()=>this.recalcCron()):this.setState({specific:r},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const t=new Date;e.date=`${t.getDate()}.${ot(t.getMonth()+1)}`}return M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.TextField,{variant:"standard",key:"date",label:h.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:xt.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.once));i.date=t.target.value,this.setState({once:i},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return M.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),M.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},M.createElement("h5",{style:{marginBottom:5}},h.t("sc_hours")),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},h.t("sc_from")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeFrom=parseInt(t.target.value,10),i.timeTo===24&&(i.timeTo=23),this.setState({intervalBetween:i},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`B_${t}`,value:t},`${ot(t)}:00`)))),M.createElement(j.FormControl,{variant:"standard",style:xt.formControl},M.createElement(j.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},h.t("sc_to")),M.createElement(j.Select,{variant:"standard",style:{width:100},value:e.timeTo,onChange:t=>{const i=JSON.parse(JSON.stringify(this.state.intervalBetween));i.timeTo=parseInt(t.target.value,10),this.setState({intervalBetween:i},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>M.createElement(j.MenuItem,{key:`A_${t}`,value:t},`${ot(t)}:00`)),!e.timeFrom&&M.createElement(j.MenuItem,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[M.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return M.createElement("div",{style:xt.mainDiv},M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},M.createElement(j.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),M.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?h.t("sc_invalid_cron"):h4(this.state.cron,this.props.language||"en")),M.createElement("div",null,M.createElement(j.FormControl,{variant:"standard",style:{...xt.formControl,marginLeft:8,marginTop:8}},M.createElement(j.InputLabel,null,h.t("ra_Repeat")),M.createElement(j.Select,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},M.createElement(j.MenuItem,{value:"once"},h.t("sc_once")),M.createElement(j.MenuItem,{value:"interval"},h.t("sc_interval")),M.createElement(j.MenuItem,{value:"intervalBetween"},h.t("sc_intervalBetween")),M.createElement(j.MenuItem,{value:"specific"},h.t("sc_specific"))))),this.state.mode===m3e.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const E3e=` +.logo-background-light, .logo-background-colored { + background: white; +} +.logo-background-dark, .logo-background-blue { + background: black; +} +`;function r5e(s){f.useEffect(()=>{if(!window.document.getElementById("vendor-iobroker-component")){const t=window.document.createElement("style");t.setAttribute("id","vendor-iobroker-component"),t.innerHTML=E3e,window.document.head.appendChild(t)}},[]);const e=s.themeType||s.themeName||"light";return M.createElement("div",{className:`vendor-logo-back logo-background-${e}`,style:{display:"flex",flexDirection:"column",height:"100%",width:"10%",margin:"auto",backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{flexGrow:1}}),M.createElement(j.CircularProgress,{color:"secondary",size:s.size||200,thickness:5}),M.createElement("div",{style:{flexGrow:1}}))}const f3e=` +.logo-background-light, .logo-background-colored { + background: white; +} +.logo-background-dark, .logo-background-blue { + background: black; +} +.pt-logo-div { + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + z-index: 2; +} +.pt-logo-border { + border-style: solid; + box-sizing: border-box; + width: 100%; + height: 100%; + position: absolute; +} +.pt-loader-block { + height: 65px; + width: 74px; + border-radius: 15px; + position: absolute; + box-sizing: content-box; +} +.pt-loader-blue { + border: 9px solid #0F99DE; + transform: rotate(5grad); + left: 93px; + top: 0; + animation: spin-blue 5s ease-in-out infinite; +} +.pt-loader-green { + border: 9px solid #88A536; + transform: rotate(-6grad); + left: 70px; + top: 58px; + animation: spin-green 5s ease-in-out infinite; +} +.pt-loader-red { + border: 9px solid #BD1B24; + transform: rotate(-15grad); + left: 24px; + top: 100px; + animation: spin-red 5s ease-in-out infinite; +} + +@keyframes spin-blue { + 0% { + transform: rotate(5deg); + } + 25% { + transform: rotate(185deg); + } + 50% { + transform: rotate(185deg); + } + 75% { + transform: rotate(185deg); + } + 100% { + transform: rotate(185deg); + } +} +@keyframes spin-green { + 0% { + transform: rotate(-6deg); + } + 25% { + transform: rotate(-6deg); + } + 50% { + transform: rotate(174deg); + } + 75% { + transform: rotate(174deg); + } + 100% { + transform: rotate(-6deg); + } +} +@keyframes spin-red { + 0% { + transform: rotate(-15deg); + } + 25% { + transform: rotate(-15deg); + } + 50% { + transform: rotate(-15deg); + } + 75% { + transform: rotate(165deg); + } + 100% { + transform: rotate(165deg); + } +} +`;function o5e(s){const e=s.size||200;f.useEffect(()=>{if(!window.document.getElementById("pt-iobroker-component")){const i=window.document.createElement("style");i.setAttribute("id","pt-iobroker-component"),i.innerHTML=f3e,window.document.head.appendChild(i)}},[]);const t=s.themeType||s.themeName||"light";return M.createElement("div",{className:`pt-logo-back logo-background-${t}`,style:{backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:s.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{className:"pt-logo-div",style:{width:e,height:e}},M.createElement("div",{style:{width:200,height:200}},M.createElement("div",{className:"pt-loader-blue pt-loader-block"}),M.createElement("div",{className:"pt-loader-green pt-loader-block"}),M.createElement("div",{className:"pt-loader-red pt-loader-block"}))))}function n5e(s){const e=s.themeType||"light",t=s.size||300;return M.createElement("div",{style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,backgroundImage:s.backgroundImage&&s.backgroundImage!=="@@loginBackgroundImage@@"?s.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:s.backgroundColor&&s.backgroundColor!=="@@loginBackgroundColor@@"?s.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:e==="dark"?"#000":"#FFF",backgroundSize:"cover"}},M.createElement("div",{style:{width:t,height:t,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:2}},M.createElement("svg",{viewBox:"0 0 500 500",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%"},M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"200"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"133"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"83"}),M.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"66"}),M.createElement("circle",{strokeWidth:"15",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"15"}),M.createElement("g",null,M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("g",{transform:"rotate(60, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("g",{transform:"rotate(120, 250, 250)"},M.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),M.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),[0,15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270,285,300,315,330,345].map(i=>M.createElement("line",{key:i,transform:`rotate(${i}, 250, 250)`,y2:"250",x2:"115",y1:"240",x1:"135",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),M.createElement("animateTransform",{attributeType:"xml",attributeName:"transform",type:"rotate",from:"0 250 250",to:"360 250 250",dur:"10s",additive:"sum",repeatCount:"indefinite"})),M.createElement("path",{d:"M 56.089 160.250 C 55.077 162.588, 46.037 182.950, 36 205.500 C 25.963 228.050, 16.923 248.412, 15.911 250.750 L 14.071 255 28.286 254.976 L 42.500 254.952 47.931 242.226 C 50.918 235.227, 54.366 227.250, 55.592 224.500 L 57.822 219.500 66.383 237.250 L 74.945 255 88.973 255 C 96.688 255, 103 254.841, 103 254.646 C 103 254.452, 100.043 248.071, 96.430 240.466 L 89.859 226.638 91.603 222.771 C 92.563 220.644, 93.660 218.710, 94.043 218.473 C 94.426 218.237, 108.609 246.609, 125.562 281.522 L 156.384 345 166.071 345 C 175.705 345, 175.763 344.985, 176.856 342.250 C 179.911 334.602, 208 260.765, 208 260.383 C 208 260.138, 202.546 260.065, 195.879 260.219 L 183.759 260.500 174.629 285.244 C 169.608 298.853, 165.254 309.990, 164.952 309.994 C 164.651 309.997, 148.901 277.389, 129.952 237.532 C 111.004 197.674, 95.275 165.057, 95 165.049 C 94.725 165.041, 90.685 172.415, 86.022 181.435 C 81.358 190.455, 77.308 197.689, 77.022 197.510 C 76.735 197.331, 72.675 187.920, 68 176.598 C 63.325 165.275, 59.147 156.008, 58.714 156.005 C 58.282 156.002, 57.101 157.912, 56.089 160.250 M 55.294 168.694 C 52.241 175.842, 52.166 176.323, 53.718 178.692 L 55.349 181.182 56.706 178.591 C 57.453 177.166, 58.406 176, 58.825 176 C 59.244 176, 60.777 178.363, 62.232 181.250 C 64.829 186.403, 64.879 186.440, 64.939 183.250 C 64.973 181.463, 65.422 180, 65.937 180 C 66.724 180, 60.176 162.824, 58.920 161.596 C 58.689 161.370, 57.057 164.564, 55.294 168.694 M 91.698 175.542 C 89.205 180.626, 89.099 181.308, 90.410 183.792 L 91.840 186.500 92.926 183.669 C 94.349 179.961, 96.024 180.653, 98.588 186.009 L 100.676 190.370 101.324 187.132 C 101.832 184.592, 101.217 182.395, 98.473 176.947 C 96.549 173.126, 94.849 170, 94.696 170 C 94.542 170, 93.193 172.494, 91.698 175.542 M 157.005 192.607 C 143.168 197.636, 134.999 209.202, 135.001 223.761 C 135.002 232.756, 138.710 240.755, 145.856 247.180 C 152.159 252.848, 158.121 255, 167.518 255 C 173.509 255, 175.684 254.499, 180.811 251.936 C 200.823 241.936, 205.088 216.155, 189.337 200.403 C 181.479 192.546, 166.868 189.022, 157.005 192.607 M 206 223 L 206 255 215.472 255 L 224.944 255 225.222 241.419 L 225.500 227.837 230.500 234.660 C 233.250 238.412, 238.002 244.636, 241.060 248.491 L 246.620 255.500 253.810 255.168 L 261 254.836 261 222.918 L 261 191 251.528 191 L 242.056 191 241.778 204.552 L 241.500 218.104 231.111 204.552 L 220.722 191 213.361 191 L 206 191 206 223 M 285.821 192.331 C 276.229 195.045, 270.010 202.130, 270.004 210.349 C 269.995 221.957, 275.913 226.925, 295.801 232.006 C 300.753 233.271, 302.228 235.609, 299.412 237.730 C 296.739 239.746, 288.369 238.774, 281.563 235.657 L 276.132 233.171 272.469 239.320 C 268.119 246.621, 268.341 247.287, 276.524 251.500 C 281.399 254.010, 283.761 254.556, 290.977 254.842 C 302.365 255.294, 307.420 253.846, 312.603 248.649 C 317.383 243.855, 319.463 236.989, 318.043 230.693 C 316.210 222.562, 311.258 218.610, 297.878 214.599 C 288.025 211.645, 285.443 209.631, 288.538 207.315 C 291.104 205.394, 302.270 205.946, 306.769 208.217 L 310.039 209.866 313.104 203.794 C 316.516 197.035, 316.622 197.304, 309.167 193.844 C 303.663 191.289, 292.140 190.542, 285.821 192.331 M 322 199 L 322 207 330 207 L 338 207 338 231 L 338 255 347.500 255 L 357 255 357 231.044 L 357 207.088 364.250 206.794 L 371.500 206.500 371.792 198.750 L 372.084 191 347.042 191 L 322 191 322 199 M 379 223 L 379 255 401 255 L 423 255 423 247.500 L 423 240 409.500 240 L 396 240 396 235 L 396 230 407.500 230 L 419 230 419 222 L 419 214 407.500 214 L 396 214 396 210.529 L 396 207.058 409.250 206.779 L 422.500 206.500 422.792 198.750 L 423.084 191 401.042 191 L 379 191 379 223 M 433 223 L 433 255 442 255 L 451 255 451 247 L 451 239 454.800 239 C 458.555 239, 458.645 239.092, 462.469 246.937 L 466.339 254.874 476.172 255.187 C 481.580 255.359, 486.003 255.111, 486.002 254.636 C 486.001 254.160, 483.277 249.264, 479.949 243.754 C 473.914 233.765, 473.903 233.732, 475.836 231.619 C 480.222 226.824, 482.359 220.791, 482.431 213 C 482.512 204.192, 480.272 198.822, 475.031 195.260 C 469.795 191.703, 465.527 191.012, 448.750 191.006 L 433 191 433 223 M 448.210 213.250 L 448.500 221.500 455.338 221.500 C 461.319 221.500, 462.417 221.204, 464.088 219.139 C 465.995 216.785, 466.556 212.613, 465.379 209.545 C 464.356 206.879, 459.449 205, 453.509 205 L 447.919 205 448.210 213.250 M 163.169 209.017 C 156.337 210.583, 151.176 218.533, 152.339 225.701 C 154.672 240.077, 175.040 242.355, 180.446 228.844 C 184.978 217.516, 175.176 206.267, 163.169 209.017 M 216.676 271.715 C 216.037 272.750, 188 344.021, 188 344.612 C 188 344.863, 192.811 344.940, 198.691 344.784 L 209.381 344.500 211.894 336.750 L 214.406 329 226.550 329 L 238.694 329 242.097 336.992 L 245.500 344.983 255.250 344.992 C 262.399 344.998, 264.994 344.667, 264.979 343.750 C 264.968 343.063, 258.477 326.525, 250.555 307 L 236.150 271.500 226.656 271.215 C 221.434 271.058, 216.943 271.283, 216.676 271.715 M 273 307 C 273 326.800, 272.887 343.337, 272.750 343.750 C 272.613 344.163, 277.102 344.628, 282.727 344.785 L 292.954 345.069 293.227 327.379 L 293.500 309.689 307 327.336 L 320.500 344.982 328.262 344.991 L 336.025 345 335.762 308.250 L 335.500 271.500 326.750 271.211 L 318 270.922 317.882 286.711 C 317.816 295.395, 317.816 302.837, 317.882 303.250 C 317.947 303.663, 317.808 304, 317.574 304 C 317.340 304, 310.809 296.575, 303.060 287.500 L 288.971 271 280.985 271 L 273 271 273 307 M 223.254 303.048 L 220.078 312 226.539 312 C 230.093 312, 233 311.861, 233 311.691 C 233 311.257, 226.886 294.553, 226.636 294.302 C 226.522 294.189, 225.001 298.125, 223.254 303.048",stroke:"none",fill:s.themeType==="dark"?"#EEE":"#111",fillRule:"evenodd"}))))}function a5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 436 436",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("g",{fill:"currentColor"},M.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),M.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function M5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 95 95",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:`M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 + c-0.344,0.922-0.443,1.413-0.907,1.363c-0.786-0.078-3.845-3.346-4.845-8.145l-2.482-11.6c1.961-3.177,3.977-5.629,5.988-7.292 + c1.08-0.882,2.314-1.349,3.808-1.43c3.815-0.26,5.203-0.74,6.14-1.399c1.547-1.115,2.397-2.728,2.397-4.542 + c0-1.596-0.604-3.019-1.75-4.115c-1.106-1.059-2.581-1.618-4.26-1.618c-2.468,0-5.239,1.142-8.474,3.49 + c-1.91,1.388-3.935,3.406-6.121,6.111c-0.711-2.653-1.319-3.889-1.771-4.628c-1.396-2.303-3.664-2.303-4.41-2.303l-0.813,0.013 + l-23.045,0.544l1.297-5.506c0.828-3.593,1.915-6.436,3.226-8.45c0.638-0.98,1.614-2.148,2.638-2.148 + c0.387,0,1.152,0.063,2.582,0.36c3.978,0.86,5.465,0.959,6.239,0.959c1.708,0,3.21-0.571,4.347-1.651 + c1.176-1.119,1.797-2.583,1.797-4.233c0-1.29-0.424-3.156-2.445-4.722c-1.396-1.081-3.311-1.629-5.691-1.629 + c-3.568,0-7.349,1.141-11.241,3.39c-3.862,2.232-7.038,5.317-9.438,9.171c-2.105,3.379-3.929,8.124-5.555,14.459H21.877 + l-2.238,8.831h10.186l-7.74,31.116c-1.603,6.443-2.777,8.028-3.098,8.361c-0.875,0.904-2.68,1.094-4.04,1.094 + c-1.683,0-3.477-0.121-5.349-0.361c-1.286-0.157-2.265-0.234-2.991-0.234c-1.878,0-3.423,0.488-4.59,1.448 + C0.716,81.858,0,83.403,0,85.14c0,1.357,0.44,3.309,2.539,4.895c1.434,1.08,3.389,1.628,5.813,1.628 + c6.069,0,11.725-2.411,16.813-7.165c4.947-4.624,8.571-11.413,10.773-20.195l6.119-24.935l20.87,0.354l2.244,9.64l-4.573,6.748 + c-0.824,1.209-2.051,2.701-3.658,4.441c-0.84,0.92-1.398,1.426-1.721,1.689c-1.316-1.608-2.809-2.424-4.432-2.424 + c-1.525,0-2.91,0.625-4.002,1.804c-1.036,1.116-1.583,2.514-1.583,4.038c0,1.83,0.783,3.459,2.264,4.709 + c1.357,1.146,3.034,1.728,4.981,1.728c2.414,0,4.884-0.921,7.344-2.737c2.053-1.519,4.697-4.526,8.074-9.189 + c2.17,6.24,5.248,10.252,6.714,11.927c2.313,2.644,6.049,4.22,9.993,4.22c3.348,0,5.244-1.402,6.916-2.641l0.148-0.109 + c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z`}))}function c5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 512 512",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),M.createElement("path",{fill:"currentColor",d:`M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 + l-74.091-22.229h174.635v106.667c0,11.776,9.536,21.333,21.333,21.333s21.333-9.557,21.333-21.333v-128 + C384.013,9.557,374.477,0,362.68,0H21.347c-0.768,0-1.451,0.32-2.197,0.405c-1.003,0.107-1.92,0.277-2.88,0.512 + c-2.24,0.576-4.267,1.451-6.165,2.645c-0.469,0.299-1.045,0.32-1.493,0.661C8.44,4.352,8.376,4.587,8.205,4.715 + C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992 + c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907 + l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491 + v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}function u5e(s){return M.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>s.onClick&&s.onClick(e),viewBox:"0 0 339 339",width:s.width||(s.fontSize==="small"?16:20),height:s.height||s.width||(s.fontSize==="small"?16:20),className:s.className,style:s.style},M.createElement("path",{fill:"currentColor",d:"M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("path",{fill:"currentColor",d:"M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),M.createElement("text",{style:{whiteSpace:"pre",fontFamily:"Arial, sans-serif",fontSize:16},x:"139.395",y:"288.084",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"},"vacuum"))}const x3e={dialogPaper:{height:"calc(100% - 96px)"}};class l5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const t=kt.cron2state(this.state.cron);if(t.seconds==="*"||t.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(t.minutes==="*"||t.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?M.createElement(i0,{title:h.t("ra_Please confirm"),text:h.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":x3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||h.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()})),M.createElement(j.DialogActions,null,!!this.props.clearButton&&M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:M.createElement(nt,null)},this.props.clear||h.t("ra_Clear")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}const _3e={dialogPaper:{height:"calc(100% - 96px)"}};class N5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof t=="object"||t[0]==="{")&&!this.props.noWizard?"wizard":ML(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":_3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||h.t("ra_Define schedule...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?M.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),M.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},h.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),M.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},h.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&M.createElement(M.Fragment,null,M.createElement(j.Radio,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),M.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},h.t("sc_cron")))):null,this.state.mode==="simple"&&M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()}),this.state.mode==="wizard"&&M.createElement(De,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&M.createElement(kt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}class L5e extends f.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return M.createElement(j.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"ar_dialog_message_title","aria-describedby":"ar_dialog_message_description"},M.createElement(j.DialogTitle,{id:"ar_dialog_message_title"},this.props.title||h.t("ra_Message")),M.createElement(j.DialogContent,null,M.createElement(j.DialogContentText,{id:"ar_dialog_message_description"},M.createElement("span",{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),M.createElement(j.DialogActions,null,M.createElement(j.Button,{id:"ar_dialog_message_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:M.createElement(Ne,null)},this.props.ok||h.t("ra_Close"))))}}const Ft={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class g5e extends M.Component{dialogName;filters;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let i=this.props.selected||[];typeof i!="object"?i=[i]:i=[...i],i=i.filter(r=>r),this.state={selected:i}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let e;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},this.state.selected)]:e=[M.createElement("span",{key:"selected"},h.t("ra_Selected")," "),M.createElement("span",{key:"id",style:Ft.headerID},h.t("%s items",this.state.selected.length))]:e=this.props.title||h.t("ra_Please select file..."),M.createElement(j.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...Ft.dialog,...Ft.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},M.createElement(j.DialogTitle,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":Ft.titleRoot}},e),M.createElement(j.DialogContent,{style:{...Ft.content,...Ft.contentMobile}},M.createElement(Tfe,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(t,i,r)=>{this.setState({selected:Array.isArray(t)?t:[t]},()=>i&&(!this.props.selectOnlyFolders||r)&&this.handleOk())},t:this.props.t||h.t,lang:this.props.lang||h.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleOk(),startIcon:M.createElement(Oe,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}const S3e={dialogPaper:{height:"calc(100% - 96px)"}};class j5e extends M.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return M.createElement(j.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":S3e.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},M.createElement(j.DialogTitle,{id:"cron-dialog-title"},this.props.title||h.t("ra_Define CRON...")),M.createElement(j.DialogContent,{style:{height:"100%",overflow:"hidden"}},M.createElement($i,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:h.getLanguage()})),M.createElement(j.DialogActions,null,M.createElement(j.Button,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:M.createElement(Oe,null)},this.props.ok||h.t("ra_Ok")),M.createElement(j.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:M.createElement(Pi,null)},this.props.cancel||h.t("ra_Cancel"))))}}const jt={CONNECTING:0,CONNECTED:1,OBJECTS_LOADED:2,STATES_LOADED:3,READY:4},yt="permissionError",b="notConnectedError";function lN(s){s=(s||"").toString();const e=s[0]==="*",t=s[s.length-1]==="*";return s=s.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+s+(t?"":"$")}class J{_socket;_authTimer;systemLang="en";_waitForFirstConnection;_waitForFirstConnectionResolve=null;_promises={};_instanceSubscriptions;props;doNotLoadAllObjects;doNotLoadACL;states={};objects=null;scriptLoadCounter;acl=null;firstConnect=!0;waitForRestart=!1;connected=!1;statesSubscribes={};objectsSubscribes={};filesSubscribes={};onConnectionHandlers=[];onLogHandlers=[];onProgress;onError;loaded=!1;loadTimer=null;loadCounter=0;ignoreState="";simStates={};autoSubscribes;autoSubscribeLog;subscribed;isSecure;onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;systemConfig=null;constructor(e){e||={protocol:window.location.protocol,host:window.location.hostname},this.props=e,this.autoSubscribes=this.props.autoSubscribes||[],this.autoSubscribeLog=this.props.autoSubscribeLog||!1,this.props.protocol||=window.location.protocol,this.props.host||=window.location.hostname,this.props.port||=window.location.port==="3000"?J.isWeb()?8082:8081:window.location.port,this.props.ioTimeout=Math.max(this.props.ioTimeout||2e4,2e4),this.props.cmdTimeout=Math.max(this.props.cmdTimeout||5e3,5e3),this._instanceSubscriptions={},this.doNotLoadAllObjects=this.props.doNotLoadAllObjects===void 0?!0:this.props.doNotLoadAllObjects,this.doNotLoadACL=this.props.doNotLoadACL===void 0?!0:this.props.doNotLoadACL,this.states={},this._waitForFirstConnection=new Promise(t=>{this._waitForFirstConnectionResolve=t}),this.onProgress=this.props.onProgress||(()=>{}),this.onError=this.props.onError||(t=>console.error(t)),this.startSocket()}static isWeb(){const e=window.adapterName;return e==="material"||e==="vis"||(e==null?void 0:e.startsWith("vis-"))||e==="echarts-show"||window.socketUrl!==void 0}startSocket(){if(typeof window.io>"u"&&typeof window.iob>"u"){if(typeof window.registerSocketOnLoad!="function"){if(this.scriptLoadCounter||=0,this.scriptLoadCounter++,this.scriptLoadCounter<30){setTimeout(()=>this.startSocket(),100);return}window.alert("Cannot load socket.io.js!")}else window.registerSocketOnLoad(()=>this.startSocket());return}if(this._socket)return;let e=this.props.host,t=this.props.port,i=this.props.protocol.replace(":",""),r=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")r="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,i=a.protocol.replace(":","")}const n=r.lastIndexOf("/");if(n!==-1&&(r=r.substring(0,n+1)),J.isWeb()){const a=r.split("/");a.length>2&&(a.pop(),a[a.length-1].match(/\d+\.\d+\.\d+/)&&a.pop(),a.pop(),r=a.join("/"),r.endsWith("/")||(r+="/"))}}const o=t?`${i}://${e}:${t}${r}`:`${i}://${e}${r}`;this._socket=(window.io||window.iob).connect(o,{path:r.endsWith("/")?`${r}socket.io`:`${r}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid}),this._socket.on("connect",n=>{n!==!0?setTimeout(()=>this.getVersion().then(a=>{const[c,l,N]=a.version.split(".");parseInt(c,10)*1e4+parseInt(l,10)*100+parseInt(N,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(L,g)=>this.onPreConnect(L,g))}),500):this._socket.emit("authenticate",(a,c)=>this.onPreConnect(a,c))}),this._socket.on("reconnect",()=>{this.onProgress(jt.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(n=>n(!0)))}),this._socket.on("disconnect",()=>{this.connected=!1,this.subscribed=!1,this.onProgress(jt.CONNECTING),this.onConnectionHandlers.forEach(n=>n(!1))}),this._socket.on("reauthenticate",()=>J.authenticate()),this._socket.on("log",n=>{var a,c;(c=(a=this.props).onLog)==null||c.call(a,n),this.onLogHandlers.forEach(l=>l(n))}),this._socket.on("error",n=>{let a=n||"";typeof a.toString!="function"&&(a=JSON.stringify(a),console.error(`Received strange error: ${a}`)),a=a.toString(),a.includes("User not authorized")?J.authenticate():window.alert(`Socket Error: ${n}`)}),this._socket.on("connect_error",n=>console.error(`Connect error: ${n}`)),this._socket.on("permissionError",n=>this.onError({message:"no permission",operation:n.operation,type:n.type,id:n.id||""})),this._socket.on("objectChange",(n,a)=>setTimeout(()=>this.objectChange(n,a),0)),this._socket.on("stateChange",(n,a)=>setTimeout(()=>this.stateChange(n,a),0)),this._socket.on("im",(n,a,c)=>setTimeout(()=>this.instanceMessage(n,a,c),0)),this._socket.on("fileChange",(n,a,c)=>setTimeout(()=>this.fileChange(n,a,c),0)),this._socket.on("cmdStdout",(n,a)=>{var c;return(c=this.onCmdStdoutHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdStderr",(n,a)=>{var c;return(c=this.onCmdStderrHandler)==null?void 0:c.call(this,n,a)}),this._socket.on("cmdExit",(n,a)=>{var c;return(c=this.onCmdExitHandler)==null?void 0:c.call(this,n,a)})}onPreConnect(e,t){this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?(this.loadTimer=setTimeout(()=>{this.loadTimer=null,this.loadCounter++,this.loadCounter<10&&this.onConnect().catch(i=>this.onError(i))},1e3),this.loaded||this.onConnect().catch(i=>this.onError(i))):this.onProgress(jt.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(i=>i(!0))),this._waitForFirstConnectionResolve&&(this._waitForFirstConnectionResolve(),this._waitForFirstConnectionResolve=null)}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnection}async _getUserPermissions(){return this.doNotLoadACL?null:new Promise((e,t)=>{this._socket.emit("getUserPermissions",(i,r)=>i?t(new Error(i)):e(r))})}async onConnect(){var i,r,o,n,a;let e;try{e=await this._getUserPermissions()}catch(c){const l=c;this.onError(`Cannot read user permissions: ${l.message}`);return}if(!this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1,this.acl=e}let t;try{if(t=await this.getSystemConfig(),this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(jt.CONNECTED),this.firstConnect=!1}this.systemConfig=t,(i=this.systemConfig)!=null&&i.common?this.systemLang=this.systemConfig.common.language:(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substr(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en")),(o=(r=this.props).onLanguage)==null||o.call(r,this.systemLang),this.doNotLoadAllObjects?(this.objects={"system.config":t},this.onProgress(jt.READY),(a=(n=this.props).onReady)==null||a.call(n,this.objects)):(await this.getObjects(),this.onProgress(jt.READY),this.props.onReady&&this.objects&&this.props.onReady(this.objects))}catch(c){this.onError(`Cannot read system config: ${c}`)}}static authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`}async subscribeState(e,t,i){typeof t=="function"&&(i=t,t=!1);let r;if(Array.isArray(e)?r=e:r=[e],!i)return console.error("No callback found for subscribeState"),Promise.reject(new Error("No callback found for subscribeState"));const o=[];for(let n=0;n{this._socket.emit(J.isWeb()?"getStates":"getForeignStates",r,(c,l)=>{c?(console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(c)}`),a(new Error(c))):(l&&Object.keys(l).forEach(N=>i(N,l[N])),n())})})}subscribeStateAsync(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{typeof t=="function"&&this.connected?this._socket.emit(J.isWeb()?"getStates":"getForeignStates",e,(a,c)=>{a&&console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`),c&&Object.keys(c).forEach(l=>t(l,c[l])),c?o():n(new Error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`))}):this.connected?n(new Error("callback is not a function")):n(new Error("not connected"))})}unsubscribeState(e,t){let i;Array.isArray(e)?i=e:i=[e];const r=[];for(let o=0;o{(o===e||this.objectsSubscribes[o].reg.test(e))&&this.objectsSubscribes[o].cbs.forEach(n=>{try{n(e,t,i)}catch(a){console.error(`Error by callback of objectChange: ${a}`)}})}),r&&this.props.onObjectChange&&this.props.onObjectChange(e,t)}stateChange(e,t){for(const i in this.statesSubscribes)Object.prototype.hasOwnProperty.call(this.statesSubscribes,i)&&this.statesSubscribes[i].reg.test(e)&&this.statesSubscribes[i].cbs.forEach(r=>{try{r(e,t)}catch(o){const n=o;console.error(`Error by callback of stateChange: ${n==null?void 0:n.message}`)}})}instanceMessage(e,t,i){this._instanceSubscriptions[t]&&this._instanceSubscriptions[t].forEach(r=>{r.messageType===e&&r.callback(i,t,e)})}getStates(e,t){return this.connected?(typeof e=="boolean"&&(t=e,e=void 0),new Promise((i,r)=>{this._socket.emit("getStates",e,(o,n)=>{this.states=n,!t&&this.onProgress(jt.STATES_LOADED),o?r(new Error(o)):i(this.states)})})):Promise.reject(new Error(b))}getState(e){return this.connected?e&&e===this.ignoreState?Promise.resolve(this.simStates[e]||{val:null,ack:!0}):new Promise((t,i)=>{this._socket.emit("getState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getBinaryState(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getBinaryState",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}setBinaryState(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("setBinaryState",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setState(e,t,i){if(!this.connected)return Promise.reject(new Error(b));if(e&&e===this.ignoreState){let r;if(typeof i=="boolean"||typeof t=="object"&&t.val!==void 0?r=t:r={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=r,this.statesSubscribes[e])for(const o of this.statesSubscribes[e].cbs)try{o(e,r)}catch(n){console.error(`Error by callback of stateChanged: ${n}`)}return Promise.resolve()}return new Promise((r,o)=>{this._socket.emit("setState",e,t,n=>n?o(new Error(n)):r())})}getObjects(e,t){return this.connected?new Promise((i,r)=>{!e&&this.objects?i(this.objects):this._socket.emit(J.isWeb()?"getObjects":"getAllObjects",(o,n)=>{this.objects=n,t&&this.onProgress(jt.OBJECTS_LOADED),o?r(new Error(o)):i(this.objects)})}):Promise.reject(new Error(b))}getObjectsById(e){return this.connected?new Promise((t,i)=>{this._socket.emit("getObjects",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}_subscribe(e){if(e&&!this.subscribed){this.subscribed=!0,this.autoSubscribes.forEach(i=>this._socket.emit("subscribeObjects",i)),Object.keys(this.objectsSubscribes).forEach(i=>this._socket.emit("subscribeObjects",i)),this.autoSubscribeLog&&this._socket.emit("requireLog",!0);const t=Object.keys(this.statesSubscribes);t.forEach(i=>this._socket.emit("subscribe",i)),t.length&&this._socket.emit(J.isWeb()?"getStates":"getForeignStates",t,(i,r)=>{i&&console.error(`Cannot getForeignStates: ${JSON.stringify(i)}`),r&&Object.keys(r).forEach(o=>this.stateChange(o,r[o]))})}else!e&&this.subscribed&&(this.subscribed=!1,this.autoSubscribes.forEach(t=>this._socket.emit("unsubscribeObjects",t)),Object.keys(this.objectsSubscribes).forEach(t=>this._socket.emit("unsubscribeObjects",t)),this.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(t=>this._socket.emit("unsubscribe",t)))}requireLog(e){return this.connected?new Promise((t,i)=>{this._socket.emit("requireLog",e,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}delObject(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObject",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}delObjects(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("delObjects",e,{maintenance:!!t},o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}setObject(e,t){return this.connected?t?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("setObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error("Null object is not allowed")):Promise.reject(new Error(b))}getObject(e){return this.connected?e&&e===this.ignoreState?Promise.resolve({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed",read:!0,write:!0,role:"state"},native:{}}):new Promise((t,i)=>{this._socket.emit("getObject",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`instances_${e}`]instanceof Promise?this._promises[`instances_${e}`]:this.connected?(this._promises[`instances_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapterInstances",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`instances_${e}`]):Promise.reject(new Error(b))}getAdapters(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`adapter_${e}`]instanceof Promise?this._promises[`adapter_${e}`]:this.connected?(this._promises[`adapter_${e}`]=new Promise((i,r)=>{this._socket.emit("getAdapters",e,(o,n)=>{o?r(new Error(o)):i(n)})}),this._promises[`adapter_${e}`]):Promise.reject(new Error(b)))}_renameGroups(e,t){if(!(e!=null&&e.length))t==null||t(null);else{const i=e.pop();if(!i){setTimeout(()=>this._renameGroups(e,t),0);return}const r=i._id;i._id=i.newId,delete i.newId,this.setObject(i._id,i).then(()=>this.delObject(r)).then(()=>setTimeout(()=>this._renameGroups(e,t),0)).catch(o=>t==null?void 0:t(o))}}async renameGroup(e,t,i){if(J.isWeb())return Promise.reject(new Error("Allowed only in admin"));const r=await this.getGroups(!0);if(r.length){const o=r.filter(a=>a._id.startsWith(`${e}.`));o.forEach(a=>{a.newId=t+a._id.substring(e.length)}),await new Promise((a,c)=>{this._renameGroups(o,l=>l?c(new Error(l)):a(null))});const n=r.find(a=>a._id===e);if(n)return n._id=t,i!==void 0&&(n.common||={},n.common.name=i),this.setObject(n._id,n).then(()=>this.delObject(e))}return Promise.resolve()}sendTo(e,t,i){return this.connected?new Promise(r=>{this._socket.emit("sendTo",e,t,i,o=>r(o))}):Promise.reject(new Error(b))}extendObject(e,t){return this.connected?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((i,r)=>{this._socket.emit("extendObject",e,t,o=>o?r(new Error(o)):i())})):Promise.reject(new Error(b))}registerLogHandler(e){!this.onLogHandlers.includes(e)&&this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){!this.onConnectionHandlers.includes(e)&&this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return!t&&this._promises[`enums_${e||"all"}`]instanceof Promise?this._promises[`enums_${e||"all"}`]:this.connected?(this._promises[`enums_${e||"all"}`]=new Promise((i,r)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:`enum.${e?`${e}.`:""}香`},(o,n)=>{if(!o&&n){const a={};for(let c=0;c{this._socket.emit("getObjectView",e,t,{startkey:i,endkey:r},(a,c)=>{if(a)n(new Error(a));else{const l={};if(c&&c.rows)for(let N=0;N{const i=[];return t&&t.native&&t.native.certificates&&Object.keys(t.native.certificates).forEach(r=>{const o=t.native.certificates[r];if(!o)return;const n={name:r,type:""};o.length<700&&(o.includes("/")||o.includes("\\"))?(r.toLowerCase().includes("private")||o.toLowerCase().includes("private")?n.type="private":(r.toLowerCase().includes("public")||o.toLowerCase().includes("public"))&&(n.type="public"),i.push(n)):(n.type=o.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||o.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",n.type==="public"&&o.split("-----END CERTIFICATE-----").filter(c=>c.replace(/\r\n|\r|\n/,"").trim()).length>1&&(n.type="chained"),i.push(n))}),i}),this._promises.cert):Promise.reject(new Error(b))}getLogs(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getLogs",t||200,r=>i(r))}):Promise.reject(new Error(b))}getLogsFiles(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("readLogs",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}delLogs(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("sendToHost",e,"delLogs",null,r=>r?i(new Error(r)):t())}):Promise.reject(new Error(b))}readMetaItems(){return this.connected?new Promise((e,t)=>{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(i,r)=>i?t(new Error(i)):e(r.rows&&r.rows.map(o=>o.value)))}):Promise.reject(new Error(b))}readDir(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("readDir",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}readFile(e,t,i){return this.connected?new Promise((r,o)=>{i?this._socket.emit("readFile64",e,t,i,(n,a)=>n?o(new Error(n)):r(a)):this._socket.emit("readFile",e,t,(n,a,c)=>{n?o(new Error(n)):r({data:a,type:c})})}):Promise.reject(new Error(b))}writeFile64(e,t,i){return this.connected?new Promise((r,o)=>{if(typeof i=="string")this._socket.emit("writeFile",e,t,i,n=>n?o(new Error(n)):r());else{const n=btoa(new Uint8Array(i).reduce((a,c)=>a+String.fromCharCode(c),""));this._socket.emit("writeFile64",e,t,n,a=>a?o(new Error(a)):r())}}):Promise.reject(new Error(b))}deleteFile(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("unlink",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}deleteFolder(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("deleteFolder",e,t,o=>o?r(new Error(o)):i())}):Promise.reject(new Error(b))}getHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hosts instanceof Promise?this._promises.hosts:this.connected?(this._promises.hosts=new Promise((t,i)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.hosts):Promise.reject(new Error(b))}getUsers(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.users instanceof Promise?this._promises.users:this.connected?(this._promises.users=new Promise((t,i)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.users):Promise.reject(new Error(b))}getGroups(e){return!e&&this._promises.groups instanceof Promise?this._promises.groups:this.connected?(this._promises.groups=new Promise((t,i)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(r,o)=>{r?i(new Error(r)):t(o.rows.map(n=>n.value))})}),this._promises.groups):Promise.reject(new Error(b))}getHostInfo(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfo_${e}`]instanceof Promise?this._promises[`hostInfo_${e}`]:this.connected?(this._promises[`hostInfo_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getHostInfo timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfo"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfo"')):r(a))})}),this._promises[`hostInfo_${e}`]):Promise.reject(new Error(b)))}getHostInfoShort(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfoShort_${e}`]instanceof Promise?this._promises[`hostInfoShort_${e}`]:this.connected?(this._promises[`hostInfoShort_${e}`]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("hostInfoShort timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getHostInfoShort"')):!a||typeof a!="object"?o(new Error('Cannot read "getHostInfoShort"')):r(a))})}),this._promises[`hostInfoShort_${e}`]):Promise.reject(new Error(b)))}getRepository(e,t,i,r){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!i&&this._promises.repo instanceof Promise?this._promises.repo:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repo=new Promise((o,n)=>{let a=setTimeout(()=>{a&&(a=null,n(new Error("getRepository timeout")))},r||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getRepository",t,c=>{a&&(clearTimeout(a),a=null,c===yt?n(new Error('May not read "getRepository"')):!c||typeof c!="object"?n(new Error('Cannot read "getRepository"')):o(c))})}),this._promises.repo):Promise.reject(new Error(b))}getInstalled(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installed=this._promises.installed||{},!t&&this._promises.installed[e]instanceof Promise?this._promises.installed[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installed[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getInstalled",null,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getInstalled"')):r(a))})}),this._promises.installed[e]):Promise.reject(new Error(b)))}rename(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("rename",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}renameFile(e,t,i){return this.connected?new Promise((r,o)=>{this._socket.emit("renameFile",e,t,i,n=>n?o(new Error(n)):r())}):Promise.reject(new Error(b))}cmdExec(e,t,i,r){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),new Promise((o,n)=>{let a=r?setTimeout(()=>{a&&(a=null,n(new Error("cmdExec timeout")))},r):null;this._socket.emit("cmdExec",e,i,t,null,c=>{(!r||a)&&(a&&clearTimeout(a),a=null,c?n(new Error(c)):o())})})):Promise.reject(new Error(b))}checkFeatureSupported(e,t){return!t&&this._promises[`supportedFeatures_${e}`]instanceof Promise?this._promises[`supportedFeatures_${e}`]:this.connected?(this._promises[`supportedFeatures_${e}`]=new Promise((i,r)=>{this._socket.emit("checkFeatureSupported",e,(o,n)=>o?r(new Error(o)):i(n))}),this._promises[`supportedFeatures_${e}`]):Promise.reject(new Error(b))}async readBaseSettings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):await this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS")?this.connected?new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("readBaseSettings timeout")))},this.props.cmdTimeout);e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),this._socket.emit("sendToHost",e,"readBaseSettings",null,n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "BaseSettings"')):!n||typeof n!="object"?r(new Error('Cannot read "BaseSettings"')):i(n))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported"))}writeBaseSettings(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then(i=>i?this.connected?new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("writeBaseSettings timeout")))},this.props.cmdTimeout);this._socket.emit("sendToHost",e,"writeBaseSettings",t,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not write "BaseSettings"')):a?r(a):o(new Error('Cannot write "BaseSettings"')))})}):Promise.reject(new Error(b)):Promise.reject(new Error("Not supported")))}restartController(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("sendToHost",e,"restartController",null,r=>{r?i(new Error(r)):t(!0)})})}getDiagData(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise(i=>{this._socket.emit("sendToHost",e,"getDiagData",t,r=>i(r))})}getForeignStates(e){return this.connected?J.isWeb()?new Promise((t,i)=>{this._socket.emit("getStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):new Promise((t,i)=>{this._socket.emit("getForeignStates",e||"*",(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getForeignObjects(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((i,r)=>{this._socket.emit("getForeignObjects",e||"*",t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getSystemConfig(e){return!e&&this._promises.systemConfig instanceof Promise?this._promises.systemConfig:this.connected?(this._promises.systemConfig=this.getObject("system.config").then(t=>{const i=t||{};return i.common||={},i.native||={},i}),this._promises.systemConfig):Promise.reject(new Error(b))}setSystemConfig(e){return this.setObject("system.config",e).then(()=>this._promises.systemConfig=Promise.resolve(e))}getRawSocket(){return this._socket}getHistory(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getHistoryEx(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("getHistory",e,t,(o,n,a,c)=>o?r(new Error(o)):i({values:n,sessionId:c,step:a}))}):Promise.reject(new Error(b))}changePassword(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((i,r)=>{this._socket.emit("changePassword",e,t,o=>o?r(new Error(o)):i())})}getIpAddresses(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e=`system.host.${e}`),!t&&this._promises[`IPs_${e}`]instanceof Promise?this._promises[`IPs_${e}`]:(this._promises[`IPs_${e}`]=this.getObject(e).then(i=>i!=null&&i.common?i.common.address||[]:[]),this._promises[`IPs_${e}`]))}getHostByIp(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),!t&&this._promises[`rIPs_${e}`]instanceof Promise?this._promises[`rIPs_${e}`]:(this._promises[`rIPs_${e}`]=new Promise(i=>{this._socket.emit("getHostByIp",e,(r,o)=>{var c,l;const n=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],a=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((l=(c=o==null?void 0:o.native)==null?void 0:c.hardware)!=null&&l.networkInterfaces){for(const N in o.native.hardware.networkInterfaces)if(Object.prototype.hasOwnProperty.call(o.native.hardware.networkInterfaces,N))for(let u=0;u{this._socket.emit("encrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}decrypt(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,i)=>{this._socket.emit("decrypt",e,(r,o)=>r?i(new Error(r)):t(o))})}getVersion(e){return!e&&this._promises.version instanceof Promise?this._promises.version:(this._promises.version=new Promise((t,i)=>{this._socket.emit("getVersion",(r,o,n)=>{r&&!o&&typeof r=="string"&&r.match(/\d+\.\d+\.\d+/)?t({version:r,serverName:"socketio"}):r?i(new Error(r)):t({version:o,serverName:n})})}),this._promises.version)}getWebServerName(){return this._promises.webName instanceof Promise?this._promises.webName:(this._promises.webName=new Promise((e,t)=>{this._socket.emit("getAdapterName",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.webName)}getAdminVersion(){return console.log("Deprecated: use getVersion"),this.getVersion()}chmodFile(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chmodFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}chownFile(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((r,o)=>{this._socket.emit("chownFile",e,t,i,(n,a,c)=>n?o(new Error(n)):r({entries:a,id:c}))}):Promise.reject(new Error(b))}fileExists(e,t){return this.connected?new Promise((i,r)=>{this._socket.emit("fileExists",e,t,(o,n)=>o?r(new Error(o)):i(n))}):Promise.reject(new Error(b))}getNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}clearNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(i=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},r=>i(r))}):Promise.reject(new Error(b))}getIsEasyModeStrict(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getIsEasyModeStrict",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getEasyMode(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getEasyMode",(i,r)=>i?t(new Error(i)):e(r))}):Promise.reject(new Error(b))}getCurrentUser(){return this.connected?new Promise(e=>{this._socket.emit("authEnabled",(t,i)=>e(i))}):Promise.reject(new Error(b))}getCurrentSession(e){return this.connected?new Promise((t,i)=>{const r=new AbortController;let o=setTimeout(()=>{o&&(o=null,r.abort(),i(new Error("getCurrentSession timeout")))},e||5e3);fetch("./session",{signal:r.signal}).then(n=>n.json()).then(n=>{o&&(clearTimeout(o),o=null,t(n))}).catch(n=>i(new Error(`getCurrentSession: ${n}`)))}):Promise.reject(new Error(b))}getRatings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,i)=>{this._socket.emit("getRatings",e,(r,o)=>r?i(new Error(r)):t(o))}):Promise.reject(new Error(b))}getCurrentInstance(){return this.connected?this._promises.currentInstance instanceof Promise?this._promises.currentInstance:(this._promises.currentInstance=new Promise((e,t)=>{this._socket.emit("getCurrentInstance",(i,r)=>i?t(new Error(i)):e(r))}),this._promises.currentInstance):Promise.reject(new Error(b))}getCompactAdapters(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactAdapters instanceof Promise?this._promises.compactAdapters:this.connected?(this._promises.compactAdapters=new Promise((t,i)=>{this._socket.emit("getCompactAdapters",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactAdapters):Promise.reject(new Error(b))}getAdaptersResetCache(e){e||="",delete this._promises.compactAdapters,delete this._promises[`adapter_${e}`]}getCompactInstances(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactInstances instanceof Promise?this._promises.compactInstances:this.connected?(this._promises.compactInstances=new Promise((t,i)=>{this._socket.emit("getCompactInstances",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.compactInstances):Promise.reject(new Error(b))}getAdapternInstancesResetCache(e){e||="",delete this._promises.compactInstances,delete this._promises[`instances_${e}`]}getCompactInstalled(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installedCompact||={},!t&&this._promises.installedCompact[e]instanceof Promise?this._promises.installedCompact[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installedCompact[e]=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactInstalled timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactInstalled",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactInstalled"')):!a||typeof a!="object"?o(new Error('Cannot read "getCompactInstalled"')):r(a))})}),this._promises.installedCompact[e]):Promise.reject(new Error(b)))}getCompactSystemRepositories(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.getCompactSystemRepositories instanceof Promise?this._promises.getCompactSystemRepositories:this.connected?(this._promises.getCompactSystemRepositories=new Promise((i,r)=>{let o=setTimeout(()=>{o&&(o=null,r(new Error("getCompactSystemRepositories timeout")))},t||this.props.cmdTimeout);this._socket.emit("getCompactSystemRepositories",n=>{o&&(clearTimeout(o),o=null,n===yt?r(new Error('May not read "getCompactSystemRepositories"')):!n||typeof n!="object"?r(new Error('Cannot read "getCompactSystemRepositories"')):i(n))})}),this._promises.getCompactSystemRepositories):Promise.reject(new Error(b))}getCompactSystemConfig(e){return!e&&this._promises.systemConfigPromise instanceof Promise?this._promises.systemConfigPromise:this.connected?(this._promises.systemConfigPromise=new Promise((t,i)=>{this._socket.emit("getCompactSystemConfig",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.systemConfigPromise):Promise.reject(new Error(b))}getCompactRepository(e,t,i){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!t&&this._promises.repoCompact instanceof Promise?this._promises.repoCompact:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repoCompact=new Promise((r,o)=>{let n=setTimeout(()=>{n&&(n=null,o(new Error("getCompactRepository timeout")))},i||this.props.cmdTimeout);this._socket.emit("getCompactRepository",e,a=>{n&&(clearTimeout(n),n=null,a===yt?o(new Error('May not read "getCompactRepository"')):a?r(a):o(new Error('Cannot read "getCompactRepository"')))})}),this._promises.repoCompact):Promise.reject(new Error(b))}getInstalledResetCache(){delete this._promises.repoCompact,delete this._promises.repo}getCompactHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hostsCompact instanceof Promise?this._promises.hostsCompact:this.connected?(this._promises.hostsCompact=new Promise((t,i)=>{this._socket.emit("getCompactHosts",(r,o)=>r?i(new Error(r)):t(o))}),this._promises.hostsCompact):Promise.reject(new Error(b))}getUuid(){return this._promises.uuid instanceof Promise?this._promises.uuid:this.connected?(this._promises.uuid=this.getObject("system.meta.uuid").then(e=>{var t;return(t=e==null?void 0:e.native)==null?void 0:t.uuid}),this._promises.uuid):Promise.reject(new Error(b))}subscribeOnInstance(e,t,i,r){return this.connected?new Promise((o,n)=>{this._socket.emit("clientSubscribe",e,t,i,(a,c)=>{a?n(new Error(a)):c!=null&&c.error?n(new Error(c.error)):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]||=[],this._instanceSubscriptions[e].find(l=>l.messageType===t&&l.callback===r)||this._instanceSubscriptions[e].push({messageType:t,callback:r}),o(c))})}):Promise.reject(new Error(b))}unsubscribeFromInstance(e,t,i){var n;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let r;const o=[];do{r=!1;const a=(n=this._instanceSubscriptions[e])==null?void 0:n.findIndex(c=>(!t||c.messageType===t)&&(!i||c.callback===i));if(a!=null&&a!==-1){r=!0;const c=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(N=>N.messageType===c)||o.push(new Promise((N,u)=>{this._socket.emit("clientUnsubscribe",e,t,(L,g)=>{L?u(new Error(L)):N(g)})}))}}while(r&&(!i||!t));return o.length?Promise.all(o).then(a=>a.find(c=>c)||!1):Promise.resolve(!1)}log(e,t){e&&this._socket.emit("log",e,t||"debug")}logout(){return this.connected?new Promise((e,t)=>{this._socket.emit("logout",i=>i?t(new Error(i)):e())}):Promise.reject(new Error(b))}setStateToIgnore(e){this.ignoreState=e||""}}function y5e(s){var e;return s.type==="object"?`iobobject://${s.address}/${s.path||""}`:s.type==="state"?`iobstate://${s.address}`:s.type==="file"?`iobfile://${s.address}/${s.path||""}`:s.type==="http"?s.address:(e=s.path)!=null&&e.includes("/")?`iobfile://${s.address}/${s.path}`:s.path?`iobobject://${s.address}/${s.path}`:`iobstate://${s.address}`}function k3e(s){const e={type:"object",address:""};if(s.startsWith("iobobject://")){e.type="object",s=s.replace("iobobject://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobstate://")){e.type="state",s=s.replace("iobstate://","");const t=s.split("/");e.address=t[0],e.path=t[1]}else if(s.startsWith("iobfile://")){e.type="file",s=s.replace("iobfile://","");const t=s.split("/");e.address=t.shift(),e.path=t.join("/")}else if(s.startsWith("http://")||s.startsWith("https://"))e.type="http",e.address=s;else if(s.startsWith("data:"))e.type="base64",e.address=s;else{const t=s.split("/");if(t.length===2)if(e.address=t[0],e.path=t[1],e.path.includes("."))e.type="object";else if(e.path)if(e.path==="val"||e.path==="q"||e.path==="ack"||e.path==="ts"||e.path==="lc"||e.path==="from"||e.path==="user"||e.path==="expire"||e.path==="c")e.type="state";else if(e.path==="common"||e.path==="native"||e.path==="from"||e.path==="acl"||e.path==="type")e.type="object";else throw new Error(`Unknown path: ${e.path}`);else e.type="state";else t.length===1?(e.address=t[0],e.type="state"):(e.address=t.shift(),e.type="file",e.path=t.join("/"))}return e}function cL(s,e,t){if(t=t||0,s==null||!e)return s;if(e.length-1===t)return s[e[t]];if(typeof s=="object")return cL(s[e[t]],e,t+1)}function Y3e(s,e,t,i){if(i=i||0,s==null||!e)return t;if(e.length-1===i)return s[e[i]]=t,s;if(typeof s=="object")return Y3e(s[e[i]],e,t,i+1)}async function T5e(s,e){var t;if(typeof s=="string"&&(s=k3e(s)),s.type==="object"){const i=await e.getObject(s.address);return cL(i,(t=s.path)==null?void 0:t.split("."))}if(s.type==="state"){const i=await e.getState(s.address);return s.path?i==null?void 0:i[s.path]:i}if(s.type==="file")return await e.readFile(s.address,s.path,!0);if(s.type==="http")return fetch(s.address).then(i=>i.text()).then(i=>{if(i.startsWith("{")&&i.endsWith("}")||i.startsWith("[")&&i.endsWith("]"))try{return JSON.parse(i)}catch{}return i});throw new Error(`Unknown type: ${s.type}`)}const Mn=s=>{const e={};return s.forEach(t=>{e[t]={requiredVersion:"*",singleton:!0}}),e};function d5e(s){const e=["@emotion/react","@emotion/styled","@iobroker/adapter-react-v5","@iobroker/json-config","@iobroker/dm-gui-components","@mui/icons-material","@mui/material","@mui/x-date-pickers","date-fns","date-fns/locale","leaflet","leaflet-geosearch","react","react-ace","react-dom","react-dropzone","semver"];return Array.isArray(s)?Mn(e.filter(t=>s.includes(t))):s&&(s.dependencies||s.devDependencies)?Mn(e.filter(t=>{var i,r;return((i=s.dependencies)==null?void 0:i[t])||((r=s.devDependencies)==null?void 0:r[t])})):Mn(e)}export{R3e as AdminConnection,Ii as ColorPicker,kt as ComplexCron,l5e as ComplexCronDialog,i0 as Confirm,ze as Connection,N5e as Cron,F3e as CustomModal,v_e as DeviceTypeIcon,Z3e as DeviceTypeSelector,l5e as DialogComplexCron,i0 as DialogConfirm,N5e as DialogCron,r0 as DialogError,L5e as DialogMessage,g5e as DialogSelectFile,xSe as DialogSelectID,j5e as DialogSimpleCron,FEe as DialogTextInput,Ie as ERRORS,we as EXTENSIONS,r0 as Error,Tfe as FileBrowser,DM as FileBrowserClass,yfe as FileViewer,jfe as FileViewerClass,Gt as GenericApp,h as I18n,Pl as ITEM_IMAGES,me as Icon,K_e as IconAdapter,Lfe as IconAlias,a5e as IconButtonImage,O4 as IconChannel,sSe as IconClearFilter,Ws as IconClosed,Ts as IconCopy,E4 as IconDevice,q_e as IconDocument,eSe as IconDocumentReadOnly,$n as IconExpert,M5e as IconFx,tSe as IconInstance,c5e as IconLogout,dM as IconNoIcon,fr as IconOpen,V3e as IconPicker,Vxe as IconSelector,Ai as IconState,u5e as IconVacuum,xr as Image,K3e as InfoBox,J as LegacyConnection,ND as Loader,n5e as LoaderMV,o5e as LoaderPT,r5e as LoaderVendor,A4 as Logo,m4 as MDUtils,L5e as Message,gSe as ObjectBrowser,it as ObjectBrowserClass,J3e as PERMISSION_ERROR,rt as PROGRESS,Oi as Router,X3e as STATES_NAME_ICONS,dD as SaveCloseButtons,De as Schedule,g5e as SelectFile,xSe as SelectID,q3e as SelectWithIcon,$i as SimpleCron,j5e as SimpleCronDialog,iSe as TabContainer,rSe as TabContent,oSe as TabHeader,e5e as TableResize,FEe as TextInput,t5e as TextWithIcon,bg as Theme,s5e as ToggleThemeMenu,Kn as TreeTable,i5e as UploadImage,O as Utils,h4 as convertCronToText,s0 as copy,ML as cron2state,w4e as dictionary,p4 as extendDeviceTypeTranslation,cL as getAttrInObject,H3e as getSelectIdIcon,Zr as getSelectIdIconFromObjects,G3e as getSystemIcon,k3e as iobUriParse,T5e as iobUriRead,y5e as iobUriToString,d5e as moduleFederationShared,lN as pattern2RegEx,uD as printPrompt,Y3e as setAttrInObject,Io as withWidth}; diff --git a/admin/assets/index-hex25_NL.js b/admin/assets/index-dMNZJoGO.js similarity index 99% rename from admin/assets/index-hex25_NL.js rename to admin/assets/index-dMNZJoGO.js index ffc53495e..b053996df 100644 --- a/admin/assets/index-hex25_NL.js +++ b/admin/assets/index-dMNZJoGO.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CyP9QRCj.js","./createSvgIcon-DMsh-YeH.js","./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","./_commonjsHelpers-Cpj98o6Y.js","./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","./index-f32XoI0M.js","./inheritsLoose-DgfqekV3.js","./preload-helper-Dp1pzeXC.js","./index-DUBaHZ92.css","./index-BeXkxxIT.js","./ScriptEditorVanillaMonaco-CZnuN4bN.js","./ScriptEditor-DCULXCiS.js","./Save-BSBgRX7g.js","./OpenAiDialog-CZs8bTbV.js","./index-Dm1jc4t6.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BNiWan3F.js","./createSvgIcon-DMsh-YeH.js","./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","./_commonjsHelpers-Cpj98o6Y.js","./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","./index-f32XoI0M.js","./inheritsLoose-DgfqekV3.js","./preload-helper-Dp1pzeXC.js","./index-DUBaHZ92.css","./index-o6IQE1xm.js","./ScriptEditorVanillaMonaco-B14Clvtt.js","./ScriptEditor-2NACU7zq.js","./Save-BSBgRX7g.js","./OpenAiDialog-BN6QnEKv.js","./index-Dm1jc4t6.js"])))=>i.map(i=>d[i]); import{i as Jp,a as DT}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import{j as p,c as Gt,g as R_,r as O_,_ as Xp,i as dy,P as ee}from"./createSvgIcon-DMsh-YeH.js";import{i as M_,y as AT,_ as RT,a as OT,m as MT,S as hy,T as py}from"./inheritsLoose-DgfqekV3.js";import{R as X,i as V}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as y,C as di,I as lo,a as NT,b as LT,c as BT,M as zl,d as qp,e as vp,f as N_,F as PT,g as FT,h as Vl,j as Zp,k as jT,l as L_,m as wr,n as zT,o as Cr,p as UT,q as Cg,r as HT,s as WT,t as GT,u as VT,v as KT,w as YT,x as JT,y as XT,z as qT,_ as ZT,A as QT,B as gy,D as ek,E as tk,G as my,H as $c,J as sk,K as ok,L as ik,N as nk,O as rk,P as ak,Q as B_,R as P_,S as lk,T as ck,U as uk,V as dk,W as hk,X as pk}from"./index-f32XoI0M.js";import{g as hi,c as nn}from"./_commonjsHelpers-Cpj98o6Y.js";import{_ as mn}from"./preload-helper-Dp1pzeXC.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const u of l)if(u.type==="childList")for(const d of u.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&r(d)}).observe(document,{childList:!0,subtree:!0});function i(l){const u={};return l.integrity&&(u.integrity=l.integrity),l.referrerPolicy&&(u.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?u.credentials="include":l.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function r(l){if(l.ep)return;l.ep=!0;const u=i(l);fetch(l.href,u)}})();var F_,fy=M_;F_=fy.createRoot,fy.hydrateRoot;var j_={exports:{}},nt={};/** @license React v17.0.2 * react-is.production.min.js * @@ -298,7 +298,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho transform: rotate(270deg); } } -`}),p.jsx("div",{style:Nl.connecting,children:p.jsx("svg",{style:Nl.spinner,width:"100%",height:"100%",viewBox:"0 0 66 66",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("circle",{style:Nl.path,fill:"none",strokeWidth:"6",strokeLinecap:"round",cx:"33",cy:"33",r:"30"})})})]})}const f0=X.lazy(()=>mn(()=>Promise.resolve().then(()=>Y0),void 0,import.meta.url)),$0=X.lazy(()=>mn(()=>import("./index-CyP9QRCj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url)),b0=X.lazy(()=>mn(()=>import("./index-BeXkxxIT.js"),__vite__mapDeps([9,1,2,3,4,5,10,6,7]),import.meta.url)),v0=X.lazy(()=>mn(()=>import("./ScriptEditorVanillaMonaco-CZnuN4bN.js"),__vite__mapDeps([10,1,2,3,4,5,6,7]),import.meta.url)),y0=X.lazy(()=>mn(()=>import("./ScriptEditor-DCULXCiS.js"),__vite__mapDeps([11,1,2,3,4,5,10,6,7,12]),import.meta.url)),_0=X.lazy(()=>mn(()=>import("./OpenAiDialog-CZs8bTbV.js"),__vite__mapDeps([13,1,2,3,4,5,7,14,10,6]),import.meta.url)),$_={Blockly:pw,"Javascript/js":Yl,Rules:mw,def:Yl,"TypeScript/ts":gw},w0=48,b_="#02a102",Fp="#70aae9",C0=R_[400],T0=O_[400],Se={toolbar:a=>({minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)",backgroundColor:a.palette.mode==="dark"?"#1e1e1e":"#E2E2E2"}),toolbarButtons:{padding:4,marginLeft:4},toolbarButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},editorDiv:a=>({height:`calc(100% - ${(parseInt(a.toolbar.height,10)||48)+38+10}px)`,width:"100%",overflow:"hidden",position:"relative"}),textButton:{marginRight:10,minHeight:24,padding:"6px 16px"},saveButton:{background:"#ff9900"},tabIcon:{width:24,height:24,verticalAlign:"middle",marginBottom:2,marginRight:2,borderRadius:3},hintIcon:{padding:"0 8px 0 8px"},hintButton:{marginTop:8,marginLeft:20},tabMenuButton:{position:"absolute",top:0,right:0},tabChanged:a=>({color:a.palette.secondary.main}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},tabChangedIcon:{color:"#FF0000",fontSize:16,marginLeft:5},closeButton:{marginLeft:5},notRunning:{color:"#ffbc00",marginRight:8,marginLeft:8},tabButton:{minHeight:48},tabButtonWrapper:{display:"inline-block"},menuIcon:{width:18,height:18,borderRadius:2,marginRight:5}};function k0(){return p.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 2406 2406",children:[p.jsx("path",{d:"M1 578.4C1 259.5 259.5 1 578.4 1h1249.1c319 0 577.5 258.5 577.5 577.4V2406H578.4C259.5 2406 1 2147.5 1 1828.6V578.4z",fill:"#74aa9c"}),p.jsx("path",{d:"M1107.3 299.1c-198 0-373.9 127.3-435.2 315.3C544.8 640.6 434.9 720.2 370.5 833c-99.3 171.4-76.6 386.9 56.4 533.8-41.1 123.1-27 257.7 38.6 369.2 98.7 172 297.3 260.2 491.6 219.2 86.1 97 209.8 152.3 339.6 151.8 198 0 373.9-127.3 435.3-315.3 127.5-26.3 237.2-105.9 301-218.5 99.9-171.4 77.2-386.9-55.8-533.9v-.6c41.1-123.1 27-257.8-38.6-369.8-98.7-171.4-297.3-259.6-491-218.6-86.6-96.8-210.5-151.8-340.3-151.2zm0 117.5-.6.6c79.7 0 156.3 27.5 217.6 78.4-2.5 1.2-7.4 4.3-11 6.1L952.8 709.3c-18.4 10.4-29.4 30-29.4 51.4V1248l-155.1-89.4V755.8c-.1-187.1 151.6-338.9 339-339.2zm434.2 141.9c121.6-.2 234 64.5 294.7 169.8 39.2 68.6 53.9 148.8 40.4 226.5-2.5-1.8-7.3-4.3-10.4-6.1l-360.4-208.2c-18.4-10.4-41-10.4-59.4 0L1024 984.2V805.4L1372.7 604c51.3-29.7 109.5-45.4 168.8-45.5zM650 743.5v427.9c0 21.4 11 40.4 29.4 51.4l421.7 243-155.7 90L597.2 1355c-162-93.8-217.4-300.9-123.8-462.8C513.1 823.6 575.5 771 650 743.5zm807.9 106 348.8 200.8c162.5 93.7 217.6 300.6 123.8 462.8l.6.6c-39.8 68.6-102.4 121.2-176.5 148.2v-428c0-21.4-11-41-29.4-51.4l-422.3-243.7 155-89.3zM1201.7 997l177.8 102.8v205.1l-177.8 102.8-177.8-102.8v-205.1L1201.7 997zm279.5 161.6 155.1 89.4v402.2c0 187.3-152 339.2-339 339.2v-.6c-79.1 0-156.3-27.6-217-78.4 2.5-1.2 8-4.3 11-6.1l360.4-207.5c18.4-10.4 30-30 29.4-51.4l.1-486.8zM1380 1421.9v178.8l-348.8 200.8c-162.5 93.1-369.6 38-463.4-123.7h.6c-39.8-68-54-148.8-40.5-226.5 2.5 1.8 7.4 4.3 10.4 6.1l360.4 208.2c18.4 10.4 41 10.4 59.4 0l421.9-243.7z",fill:"white"})]})}class ln extends X.Component{getSelect=null;cron={initValue:null,callback:null};scriptDialog={initValue:null,callback:null,args:null,isReturn:!1};objects;scripts;selectId={initValue:null,callback:null};confirmCallback=null;constructor(s){super(s);const i=window.localStorage.getItem("Editor.selected")||"",r=window.localStorage.getItem("Editor.editing")||"[]";let l;try{l=JSON.parse(r)}catch{l=[]}i&&!l.includes(i)&&l.push(i),this.state={askAboutDebug:!1,astroEvents:null,blockly:null,changed:{},cmdToBlockly:"",cmdToRules:"",confirm:"",debugEnabled:!1,editing:l,insert:"",instancesLoaded:!1,isTourOpen:window.localStorage.getItem("tour")!=="true",menuDebugAnchorEl:null,menuOpened:!!this.props.menuOpened,menuTabsOpened:!1,openAiDialog:!1,triggerPrettier:1,rules:null,runningInstances:this.props.runningInstances||{},searchText:"",selected:i,showAdapterDebug:!1,showAstro:!1,showCompiledCode:!1,showCron:!1,showDebugMenu:!1,showScript:!1,showSelectId:!1,themeType:this.props.themeType,toast:"",tourStep:ws.selectTriggers,verboseEnabled:!1,visible:s.visible},this.setChangedInAdmin(),window.systemLang=b.I18n.getLanguage(),window.main={objects:{},getObject:(u,d)=>this.props.socket.getObject(u).then(g=>d&&d(null,g)).catch(g=>d&&d(g)),instances:[],selectIdDialog:(u,d,g)=>{typeof d=="function"&&(g=d,d=null),this.selectId.callback=g,this.selectId.initValue=u,this.selectId.type=d,this.setState({showSelectId:!0})},cronDialog:(u,d)=>{this.cron.callback=d,this.cron.initValue=u,this.setState({showCron:!0})},showScriptDialog:(u,d,g,m)=>{this.scriptDialog.callback=m,this.scriptDialog.initValue=u,this.scriptDialog.args=d,this.scriptDialog.isReturn=g||!1,this.setState({showScript:!0})}},this.objects=s.objects,this.scripts={},!this.state.selected&&this.state.editing.length&&Object.assign(this.state,{selected:this.state.editing[0]}),this.getAllAdapterInstances().then(()=>{this.props.onSelectedChange&&this.state.selected&&setTimeout(()=>this.props.onSelectedChange(this.state.selected,this.state.editing),100)})}getAllAdapterInstances(){return this.props.socket.getAdapterInstances(!0).then(s=>{const i={},r=s.map(l=>(i[l._id]=l,l._id));window.main.objects=i,window.main.instances=r,this.setState({instancesLoaded:!0})})}static onInstanceChanged(s,i){if(s)if(!i&&window.main.instances.includes(s)){delete window.main.objects[s];const r=window.main.instances.indexOf(s);window.main.instances.splice(r,1)}else i&&i.type==="instance"&&(window.main.instances.includes(s)||(window.main.instances.push(s),window.main.instances.sort()),window.main.objects[s]=i)}setChangedInAdmin(){const s=Object.keys(this.state.changed).find(i=>this.state.changed[i]);typeof window.parent<"u"&&window.parent&&(window.parent.configNotSaved=!!s)}componentDidMount(){window.addEventListener("beforeunload",this.onBrowserClose,!1),this.props.socket.subscribeObject("system.adapter.*",ln.onInstanceChanged)}componentWillUnmount(){window.removeEventListener("beforeunload",this.onBrowserClose),this.props.socket.unsubscribeObject("system.adapter.*",ln.onInstanceChanged)}onBrowserClose=s=>{const i=Object.keys(this.scripts).find(r=>JSON.stringify(this.scripts[r])!==JSON.stringify(this.props.objects[r].common));if(i){console.log(`Script ${JSON.stringify(this.scripts[i])}`);const r=b.I18n.t("Configuration not saved.");return s=s||window.event,s&&(s.returnValue=r),r}};removeNonExistingScripts(s,i){s=s||this.props,i=i||{};let r=!1;if(this.state.editing&&this.state.editing.find(u=>s&&!s.objects[u])){const u=JSON.parse(JSON.stringify(this.state.editing));for(let d=u.length-1;d>=0;d--)this.objects[u[d]]||(r=!0,u.splice(d,1));r&&(i.editing=u),this.state.selected&&!this.objects[this.state.selected]&&(r=!0,i.selected=u[0]||"",i.selected&&this.scripts[i.selected]&&(this.state.blockly!==(this.scripts[i.selected].engineType==="Blockly")&&(i.blockly=this.scripts[i.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[i.selected].engineType==="Rules")&&(i.rules=this.scripts[i.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[i.selected].verbose&&(i.verboseEnabled=this.scripts[i.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[i.selected].debug&&(i.debugEnabled=this.scripts[i.selected].debug,r=!0)))}return r}UNSAFE_componentWillReceiveProps(s){var l,u;const i={};let r=!1;if(JSON.stringify(s.runningInstances)!==JSON.stringify(this.state.runningInstances)&&(r=!0,i.runningInstances=s.runningInstances),this.state.menuOpened!==s.menuOpened&&(i.menuOpened=s.menuOpened,r=!0),this.state.themeType!==s.themeType&&(i.themeType=s.themeType,r=!0),this.removeNonExistingScripts(s,i)&&(r=!0),this.state.searchText!==s.searchText&&(i.searchText=s.searchText,r=!0),this.objects!==s.objects){this.objects=s.objects,window.main.objects=s.objects,Object.keys(this.scripts).forEach(g=>{const m=this.scripts[g].source;this.scripts[g]=JSON.parse(JSON.stringify(this.objects[g].common)),this.scripts[g].source=m}),this.state.selected&&this.objects[this.state.selected]&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.objects[this.state.selected].common)),this.state.blockly!==(this.scripts[this.state.selected].engineType==="Blockly")&&(i.blockly=this.scripts[this.state.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[this.state.selected].engineType==="Rules")&&(i.rules=this.scripts[this.state.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[this.state.selected].verbose&&(i.verboseEnabled=this.scripts[this.state.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[this.state.selected].debug&&(i.debugEnabled=this.scripts[this.state.selected].debug,r=!0));const d=JSON.parse(JSON.stringify(this.state.editing));for(let g=d.length-1;g>=0;g--)this.objects[d[g]]||(r=!0,d.splice(g,1),this.state.changed[d[g]]!==void 0&&(i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&delete i.changed[d[g]]));this.state.selected&&!this.objects[this.state.selected]&&(i.selected=d[0]||""),r&&(i.editing=d)}else for(const d in this.scripts)if(Object.prototype.hasOwnProperty.call(this.scripts,d)){if((l=this.objects[d])!=null&&l.common){if(this.objects[d].type==="script"){const g=this.scripts[d].source,m=JSON.parse(JSON.stringify(this.scripts[d]));m.source=this.objects[d].common.source,JSON.stringify(m)!==JSON.stringify(this.objects[d].common)&&(this.scripts[d]=JSON.parse(JSON.stringify(this.objects[d].common)),this.scripts[d].source=g),g!==this.objects[d].common.source?this.state.changed[d]?(u=this.objects[d].from)!=null&&u.startsWith("system.adapter.javascript.")&&(this.objects[d].from="system.adapter.admin.0",this.setState({toast:b.I18n.t("Script %s was modified on disk.",d.split(".").pop())})):this.scripts[d].source=this.objects[d].common.source:this.state.changed[d]&&(i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&(i.changed[d]=!1),r=!0)}}else if(this.scripts[d]&&(delete this.scripts[d],this.state.selected===d)){if(this.state.editing.indexOf(d)!==-1){const g=JSON.parse(JSON.stringify(this.state.editing)),m=g.indexOf(d);m!==-1&&(g.splice(m,1),i.editing=g,r=!0)}i.selected=this.state.editing[0]||"",r=!0}}if(this.state.selected!==s.selected&&s.selected){s.selected&&(this.scripts[s.selected]=this.scripts[s.selected]||JSON.parse(JSON.stringify(this.props.objects[s.selected].common)));const d=this.props.objects[s.selected]&&this.props.objects[s.selected].common,g=d&&JSON.stringify(this.scripts[s.selected])!==JSON.stringify(d),m=JSON.parse(JSON.stringify(this.state.editing));s.selected&&m.indexOf(s.selected)===-1&&(m.push(s.selected),this.props.onSelectedChange(s.selected,m),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(m))),r=!0,i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&(i.changed[s.selected]=g),i.editing=m,i.selected=s.selected,i.blockly=this.scripts[s.selected].engineType==="Blockly",i.rules=this.scripts[s.selected].engineType==="Rules",i.verboseEnabled=this.scripts[s.selected].verbose,i.debugEnabled=this.scripts[s.selected].debug,i.showCompiledCode=!1}this.state.visible!==s.visible&&(r=!0,i.visible=s.visible),r&&this.setState(i,()=>this.setChangedInAdmin())}onRestart(){this.props.onRestart&&this.props.onRestart(this.state.selected)}onStartStop(){const s=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));s.enabled=!s.enabled,this.props.onChange&&this.props.onChange(this.state.selected,s)}onSave(){if(this.state.isTourOpen&&this.state.tourStep===ws.saveTheScript&&(this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true")),this.state.changed[this.state.selected]){const s=JSON.parse(JSON.stringify(this.state.changed));s[this.state.selected]=!1,this.setState({changed:s},()=>{this.setChangedInAdmin(),this.props.onChange&&this.props.onChange(this.state.selected,this.scripts[this.state.selected])})}}onSaveAll(){const s=JSON.parse(JSON.stringify(this.state.changed));Object.keys(s).forEach(i=>{s[i]&&(s[i]=!1,this.props.onChange&&this.props.onChange(i,this.scripts[i]))}),this.setState({changed:s},()=>this.setChangedInAdmin())}onCancel(){this.scripts[this.state.selected]=JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));const s=JSON.parse(JSON.stringify(this.state.changed));s[this.state.selected]=!1,this.setState({changed:s},()=>this.setChangedInAdmin())}onRegisterSelect(s){this.getSelect=s}onConvertBlockly2JS(){this.showConfirmDialog(b.I18n.t("It will not be possible to revert this operation."),s=>{if(s){this.scripts[this.state.selected].engineType="Javascript/js";const r=this.scripts[this.state.selected].source.split(` +`}),p.jsx("div",{style:Nl.connecting,children:p.jsx("svg",{style:Nl.spinner,width:"100%",height:"100%",viewBox:"0 0 66 66",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("circle",{style:Nl.path,fill:"none",strokeWidth:"6",strokeLinecap:"round",cx:"33",cy:"33",r:"30"})})})]})}const f0=X.lazy(()=>mn(()=>Promise.resolve().then(()=>Y0),void 0,import.meta.url)),$0=X.lazy(()=>mn(()=>import("./index-BNiWan3F.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url)),b0=X.lazy(()=>mn(()=>import("./index-o6IQE1xm.js"),__vite__mapDeps([9,1,2,3,4,5,10,6,7]),import.meta.url)),v0=X.lazy(()=>mn(()=>import("./ScriptEditorVanillaMonaco-B14Clvtt.js"),__vite__mapDeps([10,1,2,3,4,5,6,7]),import.meta.url)),y0=X.lazy(()=>mn(()=>import("./ScriptEditor-2NACU7zq.js"),__vite__mapDeps([11,1,2,3,4,5,10,6,7,12]),import.meta.url)),_0=X.lazy(()=>mn(()=>import("./OpenAiDialog-BN6QnEKv.js"),__vite__mapDeps([13,1,2,3,4,5,7,14,10,6]),import.meta.url)),$_={Blockly:pw,"Javascript/js":Yl,Rules:mw,def:Yl,"TypeScript/ts":gw},w0=48,b_="#02a102",Fp="#70aae9",C0=R_[400],T0=O_[400],Se={toolbar:a=>({minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)",backgroundColor:a.palette.mode==="dark"?"#1e1e1e":"#E2E2E2"}),toolbarButtons:{padding:4,marginLeft:4},toolbarButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},editorDiv:a=>({height:`calc(100% - ${(parseInt(a.toolbar.height,10)||48)+38+10}px)`,width:"100%",overflow:"hidden",position:"relative"}),textButton:{marginRight:10,minHeight:24,padding:"6px 16px"},saveButton:{background:"#ff9900"},tabIcon:{width:24,height:24,verticalAlign:"middle",marginBottom:2,marginRight:2,borderRadius:3},hintIcon:{padding:"0 8px 0 8px"},hintButton:{marginTop:8,marginLeft:20},tabMenuButton:{position:"absolute",top:0,right:0},tabChanged:a=>({color:a.palette.secondary.main}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},tabChangedIcon:{color:"#FF0000",fontSize:16,marginLeft:5},closeButton:{marginLeft:5},notRunning:{color:"#ffbc00",marginRight:8,marginLeft:8},tabButton:{minHeight:48},tabButtonWrapper:{display:"inline-block"},menuIcon:{width:18,height:18,borderRadius:2,marginRight:5}};function k0(){return p.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 2406 2406",children:[p.jsx("path",{d:"M1 578.4C1 259.5 259.5 1 578.4 1h1249.1c319 0 577.5 258.5 577.5 577.4V2406H578.4C259.5 2406 1 2147.5 1 1828.6V578.4z",fill:"#74aa9c"}),p.jsx("path",{d:"M1107.3 299.1c-198 0-373.9 127.3-435.2 315.3C544.8 640.6 434.9 720.2 370.5 833c-99.3 171.4-76.6 386.9 56.4 533.8-41.1 123.1-27 257.7 38.6 369.2 98.7 172 297.3 260.2 491.6 219.2 86.1 97 209.8 152.3 339.6 151.8 198 0 373.9-127.3 435.3-315.3 127.5-26.3 237.2-105.9 301-218.5 99.9-171.4 77.2-386.9-55.8-533.9v-.6c41.1-123.1 27-257.8-38.6-369.8-98.7-171.4-297.3-259.6-491-218.6-86.6-96.8-210.5-151.8-340.3-151.2zm0 117.5-.6.6c79.7 0 156.3 27.5 217.6 78.4-2.5 1.2-7.4 4.3-11 6.1L952.8 709.3c-18.4 10.4-29.4 30-29.4 51.4V1248l-155.1-89.4V755.8c-.1-187.1 151.6-338.9 339-339.2zm434.2 141.9c121.6-.2 234 64.5 294.7 169.8 39.2 68.6 53.9 148.8 40.4 226.5-2.5-1.8-7.3-4.3-10.4-6.1l-360.4-208.2c-18.4-10.4-41-10.4-59.4 0L1024 984.2V805.4L1372.7 604c51.3-29.7 109.5-45.4 168.8-45.5zM650 743.5v427.9c0 21.4 11 40.4 29.4 51.4l421.7 243-155.7 90L597.2 1355c-162-93.8-217.4-300.9-123.8-462.8C513.1 823.6 575.5 771 650 743.5zm807.9 106 348.8 200.8c162.5 93.7 217.6 300.6 123.8 462.8l.6.6c-39.8 68.6-102.4 121.2-176.5 148.2v-428c0-21.4-11-41-29.4-51.4l-422.3-243.7 155-89.3zM1201.7 997l177.8 102.8v205.1l-177.8 102.8-177.8-102.8v-205.1L1201.7 997zm279.5 161.6 155.1 89.4v402.2c0 187.3-152 339.2-339 339.2v-.6c-79.1 0-156.3-27.6-217-78.4 2.5-1.2 8-4.3 11-6.1l360.4-207.5c18.4-10.4 30-30 29.4-51.4l.1-486.8zM1380 1421.9v178.8l-348.8 200.8c-162.5 93.1-369.6 38-463.4-123.7h.6c-39.8-68-54-148.8-40.5-226.5 2.5 1.8 7.4 4.3 10.4 6.1l360.4 208.2c18.4 10.4 41 10.4 59.4 0l421.9-243.7z",fill:"white"})]})}class ln extends X.Component{getSelect=null;cron={initValue:null,callback:null};scriptDialog={initValue:null,callback:null,args:null,isReturn:!1};objects;scripts;selectId={initValue:null,callback:null};confirmCallback=null;constructor(s){super(s);const i=window.localStorage.getItem("Editor.selected")||"",r=window.localStorage.getItem("Editor.editing")||"[]";let l;try{l=JSON.parse(r)}catch{l=[]}i&&!l.includes(i)&&l.push(i),this.state={askAboutDebug:!1,astroEvents:null,blockly:null,changed:{},cmdToBlockly:"",cmdToRules:"",confirm:"",debugEnabled:!1,editing:l,insert:"",instancesLoaded:!1,isTourOpen:window.localStorage.getItem("tour")!=="true",menuDebugAnchorEl:null,menuOpened:!!this.props.menuOpened,menuTabsOpened:!1,openAiDialog:!1,triggerPrettier:1,rules:null,runningInstances:this.props.runningInstances||{},searchText:"",selected:i,showAdapterDebug:!1,showAstro:!1,showCompiledCode:!1,showCron:!1,showDebugMenu:!1,showScript:!1,showSelectId:!1,themeType:this.props.themeType,toast:"",tourStep:ws.selectTriggers,verboseEnabled:!1,visible:s.visible},this.setChangedInAdmin(),window.systemLang=b.I18n.getLanguage(),window.main={objects:{},getObject:(u,d)=>this.props.socket.getObject(u).then(g=>d&&d(null,g)).catch(g=>d&&d(g)),instances:[],selectIdDialog:(u,d,g)=>{typeof d=="function"&&(g=d,d=null),this.selectId.callback=g,this.selectId.initValue=u,this.selectId.type=d,this.setState({showSelectId:!0})},cronDialog:(u,d)=>{this.cron.callback=d,this.cron.initValue=u,this.setState({showCron:!0})},showScriptDialog:(u,d,g,m)=>{this.scriptDialog.callback=m,this.scriptDialog.initValue=u,this.scriptDialog.args=d,this.scriptDialog.isReturn=g||!1,this.setState({showScript:!0})}},this.objects=s.objects,this.scripts={},!this.state.selected&&this.state.editing.length&&Object.assign(this.state,{selected:this.state.editing[0]}),this.getAllAdapterInstances().then(()=>{this.props.onSelectedChange&&this.state.selected&&setTimeout(()=>this.props.onSelectedChange(this.state.selected,this.state.editing),100)})}getAllAdapterInstances(){return this.props.socket.getAdapterInstances(!0).then(s=>{const i={},r=s.map(l=>(i[l._id]=l,l._id));window.main.objects=i,window.main.instances=r,this.setState({instancesLoaded:!0})})}static onInstanceChanged(s,i){if(s)if(!i&&window.main.instances.includes(s)){delete window.main.objects[s];const r=window.main.instances.indexOf(s);window.main.instances.splice(r,1)}else i&&i.type==="instance"&&(window.main.instances.includes(s)||(window.main.instances.push(s),window.main.instances.sort()),window.main.objects[s]=i)}setChangedInAdmin(){const s=Object.keys(this.state.changed).find(i=>this.state.changed[i]);typeof window.parent<"u"&&window.parent&&(window.parent.configNotSaved=!!s)}componentDidMount(){window.addEventListener("beforeunload",this.onBrowserClose,!1),this.props.socket.subscribeObject("system.adapter.*",ln.onInstanceChanged)}componentWillUnmount(){window.removeEventListener("beforeunload",this.onBrowserClose),this.props.socket.unsubscribeObject("system.adapter.*",ln.onInstanceChanged)}onBrowserClose=s=>{const i=Object.keys(this.scripts).find(r=>JSON.stringify(this.scripts[r])!==JSON.stringify(this.props.objects[r].common));if(i){console.log(`Script ${JSON.stringify(this.scripts[i])}`);const r=b.I18n.t("Configuration not saved.");return s=s||window.event,s&&(s.returnValue=r),r}};removeNonExistingScripts(s,i){s=s||this.props,i=i||{};let r=!1;if(this.state.editing&&this.state.editing.find(u=>s&&!s.objects[u])){const u=JSON.parse(JSON.stringify(this.state.editing));for(let d=u.length-1;d>=0;d--)this.objects[u[d]]||(r=!0,u.splice(d,1));r&&(i.editing=u),this.state.selected&&!this.objects[this.state.selected]&&(r=!0,i.selected=u[0]||"",i.selected&&this.scripts[i.selected]&&(this.state.blockly!==(this.scripts[i.selected].engineType==="Blockly")&&(i.blockly=this.scripts[i.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[i.selected].engineType==="Rules")&&(i.rules=this.scripts[i.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[i.selected].verbose&&(i.verboseEnabled=this.scripts[i.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[i.selected].debug&&(i.debugEnabled=this.scripts[i.selected].debug,r=!0)))}return r}UNSAFE_componentWillReceiveProps(s){var l,u;const i={};let r=!1;if(JSON.stringify(s.runningInstances)!==JSON.stringify(this.state.runningInstances)&&(r=!0,i.runningInstances=s.runningInstances),this.state.menuOpened!==s.menuOpened&&(i.menuOpened=s.menuOpened,r=!0),this.state.themeType!==s.themeType&&(i.themeType=s.themeType,r=!0),this.removeNonExistingScripts(s,i)&&(r=!0),this.state.searchText!==s.searchText&&(i.searchText=s.searchText,r=!0),this.objects!==s.objects){this.objects=s.objects,window.main.objects=s.objects,Object.keys(this.scripts).forEach(g=>{const m=this.scripts[g].source;this.scripts[g]=JSON.parse(JSON.stringify(this.objects[g].common)),this.scripts[g].source=m}),this.state.selected&&this.objects[this.state.selected]&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.objects[this.state.selected].common)),this.state.blockly!==(this.scripts[this.state.selected].engineType==="Blockly")&&(i.blockly=this.scripts[this.state.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[this.state.selected].engineType==="Rules")&&(i.rules=this.scripts[this.state.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[this.state.selected].verbose&&(i.verboseEnabled=this.scripts[this.state.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[this.state.selected].debug&&(i.debugEnabled=this.scripts[this.state.selected].debug,r=!0));const d=JSON.parse(JSON.stringify(this.state.editing));for(let g=d.length-1;g>=0;g--)this.objects[d[g]]||(r=!0,d.splice(g,1),this.state.changed[d[g]]!==void 0&&(i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&delete i.changed[d[g]]));this.state.selected&&!this.objects[this.state.selected]&&(i.selected=d[0]||""),r&&(i.editing=d)}else for(const d in this.scripts)if(Object.prototype.hasOwnProperty.call(this.scripts,d)){if((l=this.objects[d])!=null&&l.common){if(this.objects[d].type==="script"){const g=this.scripts[d].source,m=JSON.parse(JSON.stringify(this.scripts[d]));m.source=this.objects[d].common.source,JSON.stringify(m)!==JSON.stringify(this.objects[d].common)&&(this.scripts[d]=JSON.parse(JSON.stringify(this.objects[d].common)),this.scripts[d].source=g),g!==this.objects[d].common.source?this.state.changed[d]?(u=this.objects[d].from)!=null&&u.startsWith("system.adapter.javascript.")&&(this.objects[d].from="system.adapter.admin.0",this.setState({toast:b.I18n.t("Script %s was modified on disk.",d.split(".").pop())})):this.scripts[d].source=this.objects[d].common.source:this.state.changed[d]&&(i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&(i.changed[d]=!1),r=!0)}}else if(this.scripts[d]&&(delete this.scripts[d],this.state.selected===d)){if(this.state.editing.indexOf(d)!==-1){const g=JSON.parse(JSON.stringify(this.state.editing)),m=g.indexOf(d);m!==-1&&(g.splice(m,1),i.editing=g,r=!0)}i.selected=this.state.editing[0]||"",r=!0}}if(this.state.selected!==s.selected&&s.selected){s.selected&&(this.scripts[s.selected]=this.scripts[s.selected]||JSON.parse(JSON.stringify(this.props.objects[s.selected].common)));const d=this.props.objects[s.selected]&&this.props.objects[s.selected].common,g=d&&JSON.stringify(this.scripts[s.selected])!==JSON.stringify(d),m=JSON.parse(JSON.stringify(this.state.editing));s.selected&&m.indexOf(s.selected)===-1&&(m.push(s.selected),this.props.onSelectedChange(s.selected,m),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(m))),r=!0,i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&(i.changed[s.selected]=g),i.editing=m,i.selected=s.selected,i.blockly=this.scripts[s.selected].engineType==="Blockly",i.rules=this.scripts[s.selected].engineType==="Rules",i.verboseEnabled=this.scripts[s.selected].verbose,i.debugEnabled=this.scripts[s.selected].debug,i.showCompiledCode=!1}this.state.visible!==s.visible&&(r=!0,i.visible=s.visible),r&&this.setState(i,()=>this.setChangedInAdmin())}onRestart(){this.props.onRestart&&this.props.onRestart(this.state.selected)}onStartStop(){const s=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));s.enabled=!s.enabled,this.props.onChange&&this.props.onChange(this.state.selected,s)}onSave(){if(this.state.isTourOpen&&this.state.tourStep===ws.saveTheScript&&(this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true")),this.state.changed[this.state.selected]){const s=JSON.parse(JSON.stringify(this.state.changed));s[this.state.selected]=!1,this.setState({changed:s},()=>{this.setChangedInAdmin(),this.props.onChange&&this.props.onChange(this.state.selected,this.scripts[this.state.selected])})}}onSaveAll(){const s=JSON.parse(JSON.stringify(this.state.changed));Object.keys(s).forEach(i=>{s[i]&&(s[i]=!1,this.props.onChange&&this.props.onChange(i,this.scripts[i]))}),this.setState({changed:s},()=>this.setChangedInAdmin())}onCancel(){this.scripts[this.state.selected]=JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));const s=JSON.parse(JSON.stringify(this.state.changed));s[this.state.selected]=!1,this.setState({changed:s},()=>this.setChangedInAdmin())}onRegisterSelect(s){this.getSelect=s}onConvertBlockly2JS(){this.showConfirmDialog(b.I18n.t("It will not be possible to revert this operation."),s=>{if(s){this.scripts[this.state.selected].engineType="Javascript/js";const r=this.scripts[this.state.selected].source.split(` `);r.pop(),this.scripts[this.state.selected].source=r.join(` `);const l=this.state.selected,u=JSON.parse(JSON.stringify(this.state.changed));u[this.state.selected]=!0,this.setState({changed:u,blockly:!1,selected:""},()=>{this.setChangedInAdmin(),setTimeout(()=>this.setState({selected:l}),100)})}})}onChange(s){s=s||{},s&&(s.script!==void 0&&(this.scripts[this.state.selected].source=s.script),s.debug!==void 0&&(this.scripts[this.state.selected].debug=s.debug),s.verbose!==void 0&&(this.scripts[this.state.selected].verbose=s.verbose));const i=JSON.stringify(this.scripts[this.state.selected])!==JSON.stringify(this.props.objects[this.state.selected].common);if(i!==(this.state.changed[this.state.selected]||!1)){const r=JSON.parse(JSON.stringify(this.state.changed));r[this.state.selected]=i,this.objects[this.state.selected].from="system.adapter.admin.0",this.setState({changed:r},()=>this.setChangedInAdmin())}}onTabChange(s){if(this.props.debugMode)return;window.localStorage&&window.localStorage.setItem("Editor.selected",s);const i=this.scripts[s]||this.props.objects[s]&&this.props.objects[s].common;this.setState({selected:s,rules:i.engineType==="Rules",blockly:i.engineType==="Blockly",showCompiledCode:!1,verboseEnabled:i.verbose,debugEnabled:i.debug}),this.props.onSelectedChange&&this.props.onSelectedChange(s,this.state.editing)}isScriptChanged(s){return!!(this.scripts[s]&&this.props.objects[s]&&JSON.stringify(this.scripts[s])!==JSON.stringify(this.props.objects[s].common))}onTabClose(s,i){i==null||i.stopPropagation();const r=this.state.editing.indexOf(s);if(this.state.editing.includes(s))if(this.isScriptChanged(s))this.showConfirmDialog(b.I18n.t("Discard changes for %s",this.props.objects[s].common.name),l=>{l&&(delete this.scripts[s],this.onTabClose(s))});else{const l=JSON.parse(JSON.stringify(this.state.editing));l.splice(r,1);const u={editing:l};if(s===this.state.selected?l.length?r===0||l.length===1?u.selected=l[0]:u.selected=l[r-1]:u.selected="":this.state.selected&&!l.length&&(u.selected=""),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(l)),u.selected!==void 0){u.changed=u.changed||JSON.parse(JSON.stringify(this.state.changed))||{},u.changed&&(u.changed[u.selected]=this.isScriptChanged(u.selected));const d=u.selected&&(this.scripts[u.selected]||this.props.objects[u.selected]&&this.props.objects[u.selected].common);u.blockly=d?d.engineType==="Blockly":!1,u.rules=d?d.engineType==="Rules":!1,u.verboseEnabled=d?d.verbose:!1,u.debugEnabled=d?d.debug:!1,u.showCompiledCode=!1}this.setState(u,()=>{this.setChangedInAdmin(),u.selected!==void 0?(this.props.onSelectedChange&&this.props.onSelectedChange(u.selected,this.state.editing),window.localStorage&&window.localStorage.setItem("Editor.selected",u.selected)):this.props.onSelectedChange&&this.props.onSelectedChange(this.state.selected,this.state.editing)})}}showConfirmDialog(s,i){this.confirmCallback=i,this.setState({confirm:s})}sendCommandToBlockly(s){this.setState({cmdToBlockly:s},()=>setTimeout(()=>this.setState({cmdToBlockly:""}),200))}sendCommandToRules(s){this.setState({cmdToRules:s},()=>setTimeout(()=>this.setState({cmdToRules:""}),200))}static getText(s){return typeof s=="object"?s[b.I18n.getLanguage()]||s.en:s}getScriptFullName(s){const i=s.split(".");i.shift(),i.shift();const r=[];let l="script.js";for(let u=0;uthis.onTabChange(i),indicatorColor:"primary",style:{position:"relative",marginLeft:10,width:this.state.editing.length>1?"calc(100% - 50px)":"100%",display:"inline-block"},textColor:"primary",variant:"scrollable",scrollButtons:"auto",allowScrollButtonsMobile:!0,children:[this.state.editing.map(s=>{if(!this.props.objects[s]){const d=[p.jsx(y.Box,{sx:this.isScriptChanged(s)?Se.tabChanged:void 0,style:Se.tabText,children:s.split(".").pop()},"text"),p.jsx(y.IconButton,{onClick:g=>this.onTabClose(s,g),style:Se.closeButton,size:"small",component:"span",children:p.jsx(Cr,{})},"icon")];return p.jsx(y.Tab,{wrapped:!0,href:`#${s}`,label:d,value:s,sx:{"& .MuiTab-wrapper":Se.tabButtonWrapper}},s)}let i=ln.getText(this.props.objects[s].common.name)||"";const r=this.getScriptFullName(s);i.length>18&&(i=`${i.substring(0,15)}...`);const l=this.scripts[s]&&this.props.objects[s].common&&this.props.objects[s].common.source!==this.scripts[s].source,u=[p.jsx(y.Box,{sx:this.isScriptChanged(s)?Se.tabChanged:void 0,style:Se.tabText,children:i},"text"),l?p.jsx("span",{style:Se.tabChangedIcon,children:"▣"},"changedSign"):null,!this.props.debugInstance&&(!this.props.debugMode||this.state.selected!==s)&&p.jsx(y.IconButton,{onClick:d=>this.onTabClose(s,d),style:Se.closeButton,size:"small",component:"span",children:p.jsx(Cr,{})},"icon")];return p.jsx(y.Tab,{disabled:!!this.props.debugInstance||this.state.selected!==s&&this.props.debugMode,wrapped:!0,iconPosition:"start",icon:p.jsx("img",{alt:"",src:$_[this.props.objects[s].common.engineType]||$_.def,style:Se.tabIcon},"icon"),href:`#${s}`,label:u,style:Se.tabButton,value:s,title:r,sx:{"& .MuiTab-wrapper":Se.tabButtonWrapper}},s)}),this.props.debugInstance?p.jsx(y.Tab,{disabled:!1,wrapped:!0,href:`#${this.props.debugInstance.adapter}`,label:this.props.debugInstance.adapter,style:Se.tabButton,value:this.props.debugInstance.adapter,title:this.props.debugInstance.adapter,sx:{"& .MuiTab-wrapper":Se.tabButtonWrapper}},this.props.debugInstance.adapter):""]},"tabs1"),this.state.editing.length>1?p.jsx(y.IconButton,{href:"#","aria-label":"Close all but current",style:Se.tabMenuButton,title:b.I18n.t("Close all but current"),"aria-haspopup":"false",onClick:s=>{const i=[this.state.selected];Object.keys(this.scripts).forEach(r=>r!==this.state.selected&&JSON.stringify(this.scripts[r])!==JSON.stringify(this.props.objects[r].common)&&i.push(r)),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(i)),this.setState({menuTabsOpened:!1,editing:i})},size:"medium",children:p.jsx(QT,{})},"menuButton"):null]:p.jsx(y.Box,{sx:Se.toolbar,children:p.jsxs(y.Button,{color:"grey",disabled:!0,style:Se.hintButton,href:"",children:[p.jsx("span",{children:b.I18n.t("Click on this icon")},"select2"),p.jsx(N_,{style:Se.hintIcon},"select3"),p.jsx("span",{children:b.I18n.t("for edit or create script")},"select4")]},"select1")},"tabs2")}getDebugMenu(){return this.state.showDebugMenu?p.jsxs(y.Menu,{id:"menu-debug",anchorEl:this.state.menuDebugAnchorEl,open:this.state.showDebugMenu,onClose:()=>this.setState({showDebugMenu:!1,menuDebugAnchorEl:null}),slotProps:{root:{style:{maxHeight:w0*7.5}}},children:[p.jsxs(y.MenuItem,{title:b.I18n.t("debug_help"),onClick:s=>{s.stopPropagation(),s.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,debugEnabled:!this.state.debugEnabled},()=>this.onChange({debug:this.state.debugEnabled}))},children:[p.jsx(y.Checkbox,{checked:this.state.debugEnabled}),p.jsx(wr,{style:{...Se.menuIcon,color:b_}}),b.I18n.t("debug_label")]},"debugEnabled"),p.jsxs(y.MenuItem,{title:b.I18n.t("verbose_help"),onClick:s=>{s.stopPropagation(),s.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,verboseEnabled:!this.state.verboseEnabled},()=>this.onChange({verbose:this.state.verboseEnabled}))},children:[p.jsx(y.Checkbox,{checked:this.state.verboseEnabled}),p.jsx(gy,{style:{...Se.menuIcon,color:Fp}}),b.I18n.t("verbose_label")]},"verboseEnabled")]},"menuDebug"):null}getDebugBadge(){return[this.state.debugEnabled&&this.state.verboseEnabled?p.jsx(wr,{style:{...Se.menuIcon,color:Fp}},"DebugVerbose"):null,this.state.debugEnabled&&!this.state.verboseEnabled?p.jsx(wr,{style:{...Se.menuIcon,color:b_}},"DebugNoVerbose"):null,!this.state.debugEnabled&&this.state.verboseEnabled?p.jsx(gy,{style:{...Se.menuIcon,color:Fp}},"noDebugVerbose"):null]}getAskAboutDebug(){return this.state.askAboutDebug?p.jsx(b.DialogConfirm,{onClose:()=>{this.setState({askAboutDebug:!1},()=>this.props.onDebugModeChange(!0))},ok:b.I18n.t("Yes"),cancel:b.I18n.t("Cancel"),text:b.I18n.t("The script will be stopped and must be activated manually after debugging. Continue?")}):null}renderOpenAiDialog(){return this.state.openAiDialog?p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(_0,{adapterName:this.props.adapterName,socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,onClose:()=>this.setState({openAiDialog:!1}),language:this.scripts[this.state.selected].engineType==="TypeScript/ts"?"typescript":"javascript",onAddCode:s=>this.setState({insert:s})})}):null}getToolbar(){const s=!!(this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine]),i=!!(this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].enabled);if(this.state.selected){const r=Object.keys(this.state.changed).filter(u=>this.state.changed[u]).length,l=this.state.changed[this.state.selected];return p.jsxs(y.Toolbar,{variant:"dense",sx:Se.toolbar,children:[!this.props.debugInstance&&this.state.menuOpened&&this.props.onLocate&&p.jsx(y.IconButton,{style:Se.toolbarButtons,title:b.I18n.t("Locate file"),onClick:()=>this.props.onLocate(this.state.selected),size:"medium",children:p.jsx(ek,{})},"locate"),!this.props.debugInstance&&!l&&s?p.jsx(y.IconButton,{disabled:this.props.debugMode,style:Se.toolbarButtons,onClick:()=>this.onRestart(),title:b.I18n.t("Restart"),size:"medium",children:p.jsx(tk,{})},"restart"):null,!this.props.debugInstance&&!l?p.jsx(y.IconButton,{disabled:this.props.debugMode,onClick:()=>this.onStartStop(),title:i?b.I18n.t("Pause script"):b.I18n.t("Run script"),size:"medium",style:{...Se.toolbarButtons,color:i?C0:T0},children:i?p.jsx(zl,{}):p.jsx(qp,{})},"start-stop"):null,!this.props.debugInstance&&!l&&!i?p.jsx("span",{style:Se.notRunning,children:b.I18n.t("Script is not running")}):null,!l&&i&&!s?p.jsx("span",{style:Se.notRunning,children:b.I18n.t("Instance is disabled")}):null,l?p.jsx(y.Button,{color:"grey",variant:"contained",style:{...Se.textButton,...Se.saveButton},className:"button-save",onClick:()=>this.onSave(),endIcon:p.jsx(my,{}),children:b.I18n.t("Save")},"save"):null,r>1||r===1&&!l?p.jsx(y.Button,{color:"grey",variant:"contained",style:Se.textButton,onClick:()=>this.onSaveAll(),endIcon:p.jsx(my,{}),children:b.I18n.t("Save all")},"saveall"):null,l?p.jsx(y.Button,{color:"grey",variant:"contained",style:Se.textButton,onClick:()=>this.onCancel(),endIcon:p.jsx($c,{}),children:b.I18n.t("Cancel")},"cancel"):null,p.jsx("div",{style:{flex:2}}),!this.props.debugInstance&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{style:Se.toolbarButtons,title:b.I18n.t("Prettify the script"),onClick:()=>this.setState({triggerPrettier:this.state.triggerPrettier+1}),size:"medium",children:p.jsx(sk,{})},"prettier"),this.state.blockly&&!this.state.showCompiledCode?p.jsx(y.IconButton,{"aria-label":"Export Blocks",title:b.I18n.t("Export blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToBlockly("export"),size:"medium",children:p.jsx(Vl,{})},"export"):null,this.state.blockly&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Import Blocks",title:b.I18n.t("Import blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToBlockly("import"),size:"medium",children:p.jsx(Zp,{})},"import"),this.state.blockly&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Check code",title:b.I18n.t("Check blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToBlockly("check"),size:"medium",children:p.jsx(ok,{})},"check"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode?p.jsx(y.IconButton,{"aria-label":"create CRON",title:b.I18n.t("Create or edit CRON or time wizard"),style:Se.toolbarButtons,onClick:()=>this.setState({showCron:!0}),size:"medium",children:p.jsx(ik,{})},"select-cron"):null,this.scripts[this.state.selected]&&this.scripts[this.state.selected].engineType!=="Blockly"&&this.scripts[this.state.selected].engineType!=="Rules"?p.jsx(y.IconButton,{"aria-label":"AI",title:b.I18n.t("AI code generator"),style:Se.toolbarButtons,size:"medium",onClick:()=>this.setState({openAiDialog:!0}),children:p.jsx(k0,{})},"ai"):null,p.jsx(y.IconButton,{"aria-label":"Show astronomical events",title:b.I18n.t("Show astronomical events"),style:Se.toolbarButtons,disabled:!s,onClick:()=>{this.setState({showAstro:!0,astroEvents:null}),this.props.socket.sendTo(this.scripts[this.state.selected].engine.replace("system.adapter.",""),"calcAstroAll",{}).then(u=>this.setState({astroEvents:u}))},size:"medium",children:p.jsx(nk,{})},"show-astro"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"select ID",title:b.I18n.t("Insert object ID"),style:Se.toolbarButtons,onClick:()=>this.setState({showSelectId:!0}),size:"medium",children:p.jsx(rk,{})},"select-id"),this.state.blockly&&!this.state.rules&&this.state.showCompiledCode&&p.jsx(y.Button,{color:"grey","aria-label":"convert to javascript",title:b.I18n.t("Convert blockly to javascript for ever."),onClick:()=>this.onConvertBlockly2JS(),children:"Blockly=>JS"},"convert2js"),this.state.rules&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Export Blocks",title:b.I18n.t("Export blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToRules("export"),size:"medium",children:p.jsx(Vl,{})},"export"),this.state.rules&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Import Blocks",title:b.I18n.t("Import blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToRules("import"),size:"medium",children:p.jsx(Zp,{})},"import"),this.props.expertMode&&!l&&(this.props.debugMode||!this.state.blockly&&!this.state.rules||(this.state.blockly||this.state.rules)&&this.state.showCompiledCode)&&p.jsx(y.IconButton,{style:Se.toolbarButtons,color:this.props.debugMode?"primary":"default",disabled:!this.props.debugMode&&!s,onClick:()=>{!this.props.debugMode&&i?this.setState({askAboutDebug:!0}):this.props.onDebugModeChange(!this.props.debugMode)},size:"medium",children:p.jsx(wr,{style:{fontSize:32}})}),(this.state.blockly||this.state.rules)&&p.jsx(y.Button,{"aria-label":"blockly",title:b.I18n.t("Show javascript code"),className:"button-js-code",color:this.state.showCompiledCode?"secondary":"inherit",disabled:this.props.debugMode,style:{...Se.toolbarButtons,...this.props.debugMode?Se.toolbarButtonsDisabled:void 0,padding:"0 5px"},onClick:()=>{this.props.debugMode||(this.setState({showCompiledCode:!this.state.showCompiledCode}),this.state.isTourOpen&&this.state.tourStep===ws.showJavascript&&this.setState({tourStep:ws.switchBackToRules}),this.state.isTourOpen&&this.state.tourStep===ws.switchBackToRules&&this.setState({tourStep:ws.saveTheScript}))},children:p.jsx("img",{alt:this.state.blockly?"blockly2js":"rules2js",src:this.state.blockly?p0:g0})},"blockly-code"),p.jsx(y.IconButton,{disabled:this.props.debugMode,"aria-label":"Debug menu",title:b.I18n.t("Debug options"),style:Se.toolbarButtons,onClick:u=>this.setState({showDebugMenu:!0,menuDebugAnchorEl:u.currentTarget}),size:"medium",children:p.jsx(y.Badge,{style:Se.badgeMargin,badgeContent:this.getDebugBadge(),children:p.jsx(ak,{})})},"debug")]},"toolbar1")}return null}getScriptEditor(){return!this.props.debugMode&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly!==null&&(!this.state.blockly||this.state.showCompiledCode)&&(!this.state.rules||this.state.showCompiledCode)?(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),p.jsx(y.Box,{sx:Se.editorDiv,children:p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(v0,{name:this.state.selected,adapterName:this.props.adapterName,insert:this.state.insert,onInserted:()=>this.setState({insert:""}),onForceSave:()=>this.onSave(),searchText:this.state.searchText,onRegisterSelect:s=>this.onRegisterSelect(s),readOnly:this.state.showCompiledCode,changed:this.state.changed[this.state.selected],code:this.scripts[this.state.selected].source||"",isDark:this.state.themeType==="dark",socket:this.props.socket,runningInstances:this.state.runningInstances,triggerPrettier:this.state.triggerPrettier,onChange:s=>this.onChange({script:s}),language:this.scripts[this.state.selected].engineType==="TypeScript/ts"?"typescript":"javascript"},"scriptEditor1")})},"scriptEditorDiv")):null}getBlocklyEditor(){return!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly&&!this.state.showCompiledCode&&this.state.visible?(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),p.jsx(y.Box,{sx:Se.editorDiv,children:p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(f0,{command:this.state.cmdToBlockly,themeType:this.state.themeType,searchText:this.state.searchText,code:this.scripts[this.state.selected].source||"",scriptId:this.state.selected,onChange:s=>this.onChange({script:s})},"BlocklyEditor")})},"blocklyEditorDiv")):null}getRulesEditor(){var s,i;if(!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.rules&&!this.state.showCompiledCode&&this.state.visible){this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));const r=!!this.state.selected&&!!((s=this.scripts[this.state.selected])!=null&&s.engine)&&this.state.runningInstances[this.scripts[this.state.selected].engine],l=!!this.state.selected&&((i=this.scripts[this.state.selected])==null?void 0:i.enabled);return p.jsx(y.Box,{sx:Se.editorDiv,children:p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx($0,{scriptId:this.state.selected,setTourStep:this.setTourStep,tourStep:this.state.tourStep,isTourOpen:this.state.isTourOpen,changed:this.state.changed[this.state.selected],running:r&&l,command:this.state.cmdToRules,themeType:this.state.themeType,themeName:this.props.themeName,theme:this.props.theme,searchText:this.state.searchText,resizing:this.props.resizing,code:this.scripts[this.state.selected].source||"",onChange:u=>this.onChange({script:u})},"flowEditor")})},"flowEditorDiv")}return null}getConfirmDialog(){return this.state.confirm?p.jsx(b.DialogConfirm,{text:this.state.confirm,onClose:s=>{if(this.confirmCallback){const i=this.confirmCallback;this.confirmCallback=null,i(s)}this.setState({confirm:""})}},"dialogConfirm1"):null}getSelectIdDialog(){var s;if(this.state.showSelectId){const i=["state","channel","device","adapter","instance","enum","host","config","script","user","group"],r=["adapter","instance","enum","host","config","script","user","group"];let l=this.selectId.callback?this.selectId.initValue||"":this.getSelect&&this.getSelect()||"",u=l.indexOf("/*");u!==-1&&(l=l.substring(0,u)),u=l.indexOf("//"),u!==-1&&(l=l.substring(0,u));let d=l.match(/"([^"]+)"/);return d&&(l=d[1]),d=l.match(/'([^']+)'/),d&&(l=d[1]),p.jsx(b.DialogSelectID,{theme:this.props.theme,imagePrefix:"../..",themeName:this.props.themeName,themeType:this.state.themeType,socket:this.props.socket,selected:l,expertMode:this.selectId.type&&this.selectId.type!=="all"&&r.includes(this.selectId.type)?!0:void 0,types:((s=this.selectId)==null?void 0:s.type)==="all"?i:[this.selectId.type||"state"],onClose:()=>{this.setState({showSelectId:!1}),this.selectId.callback&&(this.selectId.callback=null)},onOk:(g,m)=>{this.selectId.initValue=null,this.selectId.callback?(this.selectId.callback(g),this.selectId.callback=null):this.setState({insert:`'${g}'/*${m}*/`})}},"dialogSelectID1")}return null}getCronDialog(){return this.state.showCron?p.jsx(b.DialogCron,{theme:this.props.theme,cron:this.cron.callback?this.cron.initValue||"":this.getSelect?this.getSelect():"* * * * *",onClose:()=>this.setState({showCron:!1}),onOk:s=>{this.cron.initValue=null,this.cron.callback?(this.cron.callback(s),this.cron.callback=null):this.setState({insert:`'${s}'`})}},"dialogCron1"):null}getAstroDialog(){return this.state.showAstro?p.jsxs(y.Dialog,{open:!0,onClose:()=>this.setState({showAstro:!1}),children:[p.jsx(y.DialogTitle,{children:b.I18n.t("Astronomical events today")}),p.jsx(y.DialogContent,{children:this.state.astroEvents?p.jsx(y.TableContainer,{component:y.Paper,children:p.jsxs(y.Table,{size:"small",children:[p.jsx(y.TableHead,{children:p.jsxs(y.TableRow,{children:[p.jsx(y.TableCell,{children:b.I18n.t("Name")}),p.jsx(y.TableCell,{children:b.I18n.t("Server time")}),p.jsx(y.TableCell,{children:b.I18n.t("Description")})]})}),p.jsx(y.TableBody,{children:Object.keys(this.state.astroEvents).map(s=>{var i,r,l,u;return p.jsxs(y.TableRow,{children:[p.jsx(y.TableCell,{component:"th",scope:"row",children:s.startsWith("next")?"":s}),p.jsx(y.Tooltip,{title:`${b.I18n.t("Local time")}: ${(i=this.state.astroEvents)!=null&&i[s].isValidDate?new Date((r=this.state.astroEvents)==null?void 0:r[s].date).toLocaleTimeString():"n/a"}`,children:p.jsx(y.TableCell,{align:"right",children:(l=this.state.astroEvents)!=null&&l[s].isValidDate?(u=this.state.astroEvents)==null?void 0:u[s].serverTime:"n/a"})}),p.jsx(y.TableCell,{children:b.I18n.t(s)})]},s)})})]})}):p.jsx(y.LinearProgress,{})}),p.jsx(y.DialogActions,{children:p.jsx(y.Button,{variant:"contained",onClick:()=>this.setState({showAstro:!1}),color:"primary",startIcon:p.jsx(Cr,{}),children:b.I18n.t("Close")})})]},"dialogAstro"):null}getEditorDialog(){return this.state.showScript?p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(y0,{adapterName:this.props.adapterName,source:this.scriptDialog.initValue||"",args:this.scriptDialog.args?this.scriptDialog.args.join(", "):"",isReturn:this.scriptDialog.isReturn,socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,onClose:s=>{this.scriptDialog.initValue=null,this.scriptDialog.callback&&(s!==!1&&this.scriptDialog.callback(s||""),this.scriptDialog.callback=null),this.setState({showScript:!1})}},"scriptEditorDialog")}):null}getToast(){return p.jsx(y.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!!this.state.toast,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:p.jsx("span",{id:"message-id",children:this.state.toast}),action:[p.jsx(y.IconButton,{"aria-label":"close",color:"inherit",style:Se.closeToast,onClick:()=>this.setState({toast:""}),size:"medium",children:p.jsx(Cr,{})},"close")]},"toast")}setTourStep=s=>this.setState({tourStep:s});getTour(){return this.state.instancesLoaded&&this.state.selected&&this.props.isAnyRulesExists===1&&this.props.objects[this.state.selected]&&this.state.rules&&this.state.visible?p.jsx(Zg,{steps:m0,isOpen:this.state.isTourOpen,onRequestClose:()=>{this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true"),this.props.socket.setState("javascript.0.variables.rulesTour",{val:!0,ack:!0})},goToStep:this.state.tourStep},"tour"):null}getDebug(){return this.props.debugMode?this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine]?p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(b0,{runningInstances:this.state.runningInstances,adapterName:this.props.adapterName,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,src:this.props.debugInstance?this.props.debugInstance.adapter:this.state.selected,debugInstance:this.props.debugInstance},"debugger")}):(setTimeout(()=>this.props.onDebugModeChange(!1)),null):null}render(){return this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly===null&&this.state.rules===null&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),setTimeout(()=>{const s={blockly:this.scripts[this.state.selected].engineType==="Blockly",rules:this.scripts[this.state.selected].engineType==="Rules",showCompiledCode:!1,debugEnabled:this.scripts[this.state.selected].debug,verboseEnabled:this.scripts[this.state.selected].verbose};this.removeNonExistingScripts(null,s),this.setState(s)},100)),[this.getTabs(),this.getToolbar(),this.getScriptEditor(),this.getAskAboutDebug(),this.getBlocklyEditor(),this.getRulesEditor(),this.getDebug(),this.getConfirmDialog(),this.getSelectIdDialog(),this.getCronDialog(),this.getEditorDialog(),this.getAstroDialog(),this.getDebugMenu(),this.renderOpenAiDialog(),this.getToast(),this.getTour()]}}const Pt={dialog:{height:"95%"},dropzone:{marginTop:20,width:"100%",borderWidth:5,borderStyle:"dashed",borderColor:"#d0cccc",textAlign:"center",boxSizing:"border-box",paddingTop:45,borderRadius:10,height:"calc(100% - 10px)"},dropzoneDiv:{width:"100%",height:"100%"},dropzoneRejected:{borderColor:"#970000"},dropzoneAccepted:{borderColor:"#17cd02"},icon:{height:"30%",width:"30%",color:"#eeeeee",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:0},iconError:{color:"#ffc3c6"},iconOk:{color:"#aaeebc"},text:{top:"50%",left:"50%",transform:"translate(-50%,-50%)",color:"#868686",position:"absolute",zIndex:1}};class Qg extends X.Component{constructor(s){super(s),this.state={error:"",imageStatus:""}}componentDidMount(){setTimeout(()=>{var s;try{(s=window.document.getElementById("import-text-area"))==null||s.focus()}catch{}},100)}handleCancel(){this.props.onClose()}static readFileDataUrl(s,i){const r=new FileReader;r.onload=()=>{i(null,{data:r.result,name:s.name})},r.onabort=()=>{console.error("file reading was aborted"),i(b.I18n.t("file reading was aborted"))},r.onerror=l=>{console.error("file reading has failed"),i(b.I18n.t("file reading has failed: %s",l))},r.readAsDataURL(s)}handleDropFile(s){if(!(s!=null&&s.length))return;const i=s[s.length-1];i&&Qg.readFileDataUrl(i,(r,l)=>{var u;r||!l?this.setState({error:r||"No data"}):this.props.onClose(((u=l.data)==null?void 0:u.toString())||"")})}render(){const s={...Pt.dropzone,...this.state.imageStatus==="accepted"?Pt.dropzoneAccepted:this.state.imageStatus==="rejected"?Pt.dropzoneRejected:void 0};return p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":Pt.dialog},fullWidth:!0,open:!0,"aria-labelledby":"import-dialog-title",PaperProps:{style:{minHeight:"90%",maxHeight:"90%"}},children:[p.jsx(y.DialogTitle,{id:"import-dialog-title",children:b.I18n.t("Import scripts")}),p.jsxs(y.DialogContent,{children:[p.jsx(B_,{maxSize:5e7,onDrop:(i,r)=>{var l,u,d;i.length?this.handleDropFile(i):window.alert(((d=(u=(l=r==null?void 0:r[0])==null?void 0:l.errors)==null?void 0:u[0])==null?void 0:d.message)||b.I18n.t("ra_Cannot upload"))},multiple:!1,accept:{"application/zip":[],"application/x-zip-compressed":[]},children:({getRootProps:i,getInputProps:r,isDragActive:l,isDragReject:u})=>u?(this.state.imageStatus!=="rejected"&&this.setState({imageStatus:"rejected"}),p.jsxs("div",{style:{...s,...Pt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:Pt.text,children:b.I18n.t("Some files will be rejected")},"text"),p.jsx($c,{style:{...Pt.icon,...Pt.iconError}},"icon")]})):l?(this.state.imageStatus!=="accepted"&&this.setState({imageStatus:"accepted"}),p.jsxs("div",{style:{...s,...Pt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:Pt.text,children:b.I18n.t("All files will be accepted")},"text"),p.jsx(Cg,{style:{...Pt.icon,...Pt.iconOk}},"icon")]})):(this.state.imageStatus!=="wait"&&this.setState({imageStatus:"wait"}),p.jsxs("div",{style:{...s,...Pt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:Pt.text,children:b.I18n.t("Drop some files here or click...")},"text"),p.jsx(P_,{style:Pt.icon},"icon")]}))},"image-drop"),this.state.error?p.jsx(kc,{text:this.state.error,onClose:()=>this.setState({error:""})}):null]}),p.jsx(y.DialogActions,{children:p.jsx(y.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:p.jsx(lo,{}),children:b.I18n.t("Close")})})]})}}var em={exports:{}},S0=em.exports;(function(a,s){(function(i,r){a.exports=r()})(S0,function(){var i={},r,l,u,d,g,m,f,v,w,_,S,k,C,E,A,R,O,Z,ae,se,ge,K,je,Me,qe,ce,de,J,we,me,Fe,Y,et,q,oe,F,H,U,le,x,pe,W,ke,ve,Ie,fe,Ge,Ye,Ce,Ee,be,Le,mt,Q,lt,ze,_t,ye,tt,Us,wt,Ct,Lc,L,$e,Gr,st,om,Ve,Do,Vr,Ao,Ro,Bc,$n,Kr,Yr,bn,im,Pc,ks,co,Fc,jc,Jr,zc,vn,Xr,Uc,Hc,nm,rm,am,gi,lm,qr,cm,yn,Zr,um,Qr,dm,ea,Wc,Gc,ta,sa,oa,_n,hm,mi,wn,ia,pm,gm,mm,uo,Tt,Cn,Vc,ps,Hs,fm,Kc,na,Yc,$m,Jc,Tn,bm,ra,vm,ym,aa,_m,fi,wm,Xc,la,qc,Zc,Cm,ca,$i,ua,Tm,Qc,eu,km,Sm,Oo,Em,kn,Vt,Im,xm,Dm,Am,Rm,Om,Mm,tu,Ws,bi,su,Nm,Lm,Bm,Pm,Fm,jm,zm,Um,Hm,ou,Wm,vi,da,Gm,yi,iu,nu,ru,Sn,ha,au,Vm,lu,cu,uu,du,hu,pu,gu,Km,En,mu,pa,ga,Ss,fu,$u,In,bu,vu,Ym,ma,yu,Jm,Xm,qm,Zm,Qm,_i,_u,wu,wi,fa,ef,tf,Cu,Tu,Gs,ku,Su,sf,of,nf,rf,Eu,af,Iu,lf,Mo,xn,$a,ba,No,xu,va,Du,dt,cf,Ci,Lo,uf,Au,ya,Ti,Ru,Bo,Dn,Ou,Mu,df,hf,pf,Nu,gf,Lu,An,mf,ff,$f,bf,Rn,Bu,Pu,_a,wa,vf,On,Fu,Mn,yf,_f,ho,ju,Es,wf,Cf,zu,Tf,Po,Uu,kf,Sf,Ef,If,xf,Hu,Df,Af,Ca,Rf,Of,Wu,Ta,Gu,ka,Vu,Ku,ki,Fo,Vs,Is,Mf,Nf,Lf,Yu,Sa,Bf,Pf,Ff,Ju,Ea,Xu,Ia,jf,zf,Uf,Hf,he,jt,bt,rt,xs,Si,re,ht,qu,Wf,po,xa,Da,Zu,Gf,Qu,Aa,ed,td,Vf,sd,Kf,Ra,Yf,Jf,Xf,qf,Zf,od,Qf,Nn,Ln,e$,id,nd,rd,ad,Oa,ld,t$,s$,o$,Ei,cd,i$,Ma,Qt,n$,go,ud,r$,Bn,dd,hd,pd,gd,md,fd,$d,bd,vd,yd,a$,l$,c$,u$,d$,h$,Na,p$,g$,_d,wd,Cd,Td,kd,Sd,Ed,La,Pn,Id,m$,xd,Dd,Ad,Rd,Od,Md,Nd,Ld,Bd,Pd,f$,$$,b$,Fd,v$,y$,_$,w$,C$,j;r=function(e,t,o,n){if(!(e instanceof z)&&typeof e!="string"||`${e}`.trim()==="")throw Error('Invalid type "'+e+'". The type must be a non-empty string or a Blockly.registry.Type.');if(e=`${e}`.toLowerCase(),typeof t!="string"||t.trim()==="")throw Error('Invalid name "'+t+'". The name must be a non-empty string.');const c=t.toLowerCase();if(!o)throw Error("Can not register a null value");let h=mo[e],$=Ba[e];if(h||(h=mo[e]=Object.create(null),$=Ba[e]=Object.create(null)),l(e,o),!n&&h[c]&&h[c]!==o)throw Error('Name "'+c+'" with type "'+e+'" already registered.');h[c]=o,$[c]=t},l=function(e,t){switch(e){case String(z.FIELD):if(typeof t.fromJson!="function")throw Error('Type "'+e+'" must have a fromJson function')}},u=function(e,t){e=`${e}`.toLowerCase(),t=t.toLowerCase();const o=mo[e];o&&o[t]?(delete mo[e][t],delete Ba[e][t]):console.warn("Unable to unregister ["+t+"]["+e+"] from the registry.")},d=function(e,t,o){e=`${e}`.toLowerCase(),t=t.toLowerCase();const n=mo[e];if(!n||!n[t]){if(t="Unable to find ["+t+"]["+e+"] in the registry.",o)throw Error(t+" You must require or register a "+e+" plugin.");return console.warn(t),null}return n[t]},g=function(e,t){return e=`${e}`.toLowerCase(),t=t.toLowerCase(),(e=mo[e])?!!e[t]:!1},m=function(e,t,o){return d(e,t,o)},f=function(e,t,o){return d(e,t,o)},v=function(e,t,o){e=`${e}`.toLowerCase();var n=mo[e];if(!n){if(n=`Unable to find [${e}] in the registry.`,o)throw Error(`${n} You must require or register a ${e} plugin.`);return console.warn(n),null}if(!t)return n;e=Ba[e],o=Object.create(null);for(const c of Object.keys(n))o[e[c]]=n[c];return o},w=function(e,t,o){return t=t.plugins[String(e)]||Ds,typeof t=="function"?t:m(e,t,o)},_=function(e,t,o,n){e=e+" was deprecated in "+t+" and will be deleted in "+o+".",n&&(e+=` Use `+n+" instead."),k$.has(e)||(k$.add(e),console.warn(e))},S=function(){return"blockly-"+(MC++).toString(36)},k=function(){return I$.genUid()},C=function(e){return e.type===M.BLOCK_CREATE},E=function(e){return e.type===M.BLOCK_DELETE},A=function(e){return e.type===M.BLOCK_CHANGE},R=function(e){return e.type===M.BLOCK_FIELD_INTERMEDIATE_CHANGE},O=function(e){return e.type===M.BLOCK_MOVE},Z=function(e){return e.type===M.CLICK},ae=function(e){return e.type===M.BUBBLE_OPEN},se=function(e){return e.type===M.VIEWPORT_CHANGE},i.setRecordUndo$$module$build$src$core$events$utils=function(e){Fn=e},ge=function(){return Fn},K=function(e){D$.fireInternal(e)},je=function(e){if(J()){if(!Ys.length)try{requestAnimationFrame(()=>{setTimeout(Me,0)})}catch{setTimeout(Me,0)}qe(e)}},Me=function(){const e=ce(Ys,!0);Ys.length=0;for(const t of e){if(!t.workspaceId)continue;let o;(o=q(t.workspaceId))==null||o.fireChangeListener(t)}},qe=function(e){if(A(e)&&e.element==="mutation"){let t;for(t=Ys.length;0!n.isNull()),t||e.reverse(),e},de=function(){for(let e=0,t;t=Ys[e];e++)t.recordUndo=!1},i.disable$$module$build$src$core$events$utils=function(){zd++},i.enable$$module$build$src$core$events$utils=function(){zd--},J=function(){return zd===0},i.getGroup$$module$build$src$core$events$utils=function(){return x$},i.setGroup$$module$build$src$core$events$utils=function(e){D$.setGroupInternal(e)},we=function(e){x$=typeof e=="boolean"?e?k():"":e},me=function(e){const t=[];e=e.getDescendants(!1);for(let o=0,n;n=e[o];o++)t[o]=n.id;return t},Fe=function(e,t){const o=Y(e.type);if(!o)throw Error("Unknown event type.");return o.fromJson(e,t)},Y=function(e){const t=m(z.EVENT,e);if(!t)throw Error(`Event type ${e} not found in registry.`);return t},et=function(e){if((O(e)||C(e))&&e.workspaceId){var t=q(e.workspaceId);if(!e.blockId)throw Error("Encountered a blockEvent without a proper blockId");if(e=t.getBlockById(e.blockId)){const o=Fn;try{Fn=!1;const n=e.getParent();if(n&&!n.hasDisabledReason(Ud)){const c=e.getDescendants(!1);for(let h=0,$;$=c[h];h++)$.setDisabledReason(!1,Ud)}else if((e.outputConnection||e.previousConnection)&&!t.isDragging())do e.setDisabledReason(!0,Ud),e=e.getNextBlock();while(e)}finally{Fn=o}}}},q=function(e){return jn[e]||null},oe=function(){const e=[];for(const t in jn)e.push(jn[t]);return e},F=function(e){jn[e.id]=e},H=function(e){delete jn[e.id]},U=function(){return A$},le=function(e){A$=e},x=function(){return jo},i.setSelected$$module$build$src$core$common=function(e){if(jo!==e){var t,o,n,c,h,$,T=new(Y(M.SELECTED))((n=(t=jo)==null?void 0:t.id)!=null?n:null,(c=e==null?void 0:e.id)!=null?c:null,($=(h=e==null?void 0:e.workspace.id)!=null?h:(o=jo)==null?void 0:o.workspace.id)!=null?$:"");K(T);var B;(B=jo)==null||B.unselect(),jo=e;var ie;(ie=jo)==null||ie.select()}},pe=function(){return R$},W=function(e){R$=e},ke=function(e){for(;e.options.parentWorkspace;)e=e.options.parentWorkspace;const t=e.getParentSvg(),o=e.getCachedParentSvgSize();var n=t.parentElement;if(n instanceof HTMLElement){var c=n.offsetWidth;n=n.offsetHeight,o.width!==c&&(t.setAttribute("width",c+"px"),e.setCachedParentSvgSize(c,null)),o.height!==n&&(t.setAttribute("height",n+"px"),e.setCachedParentSvgSize(null,n)),e.resize()}},ve=function(e,t){const o=Object.create(null),n=e.getDescendants(!0);t&&(e=e.getNextBlock())&&(e=n.indexOf(e),n.splice(e,n.length-e));for(let c=0,h;h=n[c];c++)o[h.type]?o[h.type]++:o[h.type]=1;return o},Ie=function(e){return function(){this.jsonInit(e)}},fe=function(e){O$.defineBlocksWithJsonArrayInternal(e)},Ge=function(e){i.defineBlocks$$module$build$src$core$common(i.createBlockDefinitionsFromJsonArray$$module$build$src$core$common(e))},i.createBlockDefinitionsFromJsonArray$$module$build$src$core$common=function(e){const t={};for(let o=0;othis.props.onToggleBreakpoint(v)},"scriptEditor2")},"scriptEditorDiv2")}}const At=34,Ke={logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:X=>({display:"inline-block",color:X.palette.mode==="dark"?"white":"black",width:`calc(100% - ${At}px)`,height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"}),info:X=>({background:X.palette.mode==="dark"?"darkgrey":"lightgrey",color:(X.palette.mode==="dark","black")}),error:X=>({background:"#FF0000",color:X.palette.mode==="dark"?"black":"white"}),warn:X=>({background:"#FF8000",color:X.palette.mode==="dark"?"black":"white"}),debug:X=>({background:"gray",opacity:.8,color:X.palette.mode==="dark"?"black":"white"}),silly:X=>({background:"gray",opacity:.6,color:X.palette.mode==="dark"?"black":"white"}),table:{fontFamily:"monospace",width:"100%"},toolbox:{width:At,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},iconButtons:{width:32,height:32,padding:4}};function ra(X){let v,g=X.getHours();return g<10&&(g=`0${g.toString()}`),v=`${g}:`,g=X.getMinutes(),g<10&&(g=`0${g.toString()}`),v+=`${g}:`,g=X.getSeconds(),g<10&&(g=`0${g.toString()}`),v+=`${g}.`,g=X.getMilliseconds(),g<10?g=`00${g.toString()}`:g<100&&(g=`0${g.toString()}`),v+=g,v}class _t extends dt.Component{messagesEnd;constructor(v){super(v),this.state={goBottom:!0},this.messagesEnd=dt.createRef()}static generateLine(v){return M.jsxs(G.Box,{component:"tr",sx:Ke[v.severity],children:[M.jsx("td",{style:Ke.trTime,children:ra(new Date(v.ts))}),M.jsx("td",{style:Ke.trSeverity,children:v.severity}),M.jsx("td",{children:v.text})]},`tr_${v.ts}_${v.text.substring(v.text.length-10,v.text.length)}`)}renderLogList(v){return v!=null&&v.length?M.jsxs(G.Box,{sx:Ke.logBoxInner,children:[M.jsx("table",{style:Ke.table,children:M.jsx("tbody",{children:v.map(g=>_t.generateLine(g))})},"logTable"),M.jsx("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):M.jsx(G.Box,{sx:Ke.logBoxInner,style:{paddingLeft:10},children:Oe.I18n.t("Log outputs")},"logList")}onCopy(){Oe.Utils.copyToClipboard(this.props.console.join(` +import{j as M}from"./createSvgIcon-DMsh-YeH.js";import{R as dt,i as Rt}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{i as Oe,m as Ft,z as Nt,g as Lt}from"./index-dMNZJoGO.js";import{i as G,x as Vt,y as zt,l as qt,U as It,e as Wt,q as Kt,o as $t,E as Jt,d as Ut,M as Ht,ax as Gt,ay as Yt,az as Qt,a3 as Zt}from"./index-f32XoI0M.js";import Xt from"./ScriptEditorVanillaMonaco-B14Clvtt.js";import{g as ea}from"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import"./inheritsLoose-DgfqekV3.js";import"./preload-helper-Dp1pzeXC.js";const ta={editorDiv:{height:"100%",width:"100%",overflow:"hidden",position:"relative"}};class aa extends dt.Component{constructor(v){super(v),this.state={lines:(this.props.script||"").split(/\r\n|\n/)}}render(){return M.jsx("div",{style:ta.editorDiv,children:M.jsx(Xt,{triggerPrettier:1,name:this.props.scriptName,adapterName:this.props.adapterName,readOnly:!0,code:this.props.script||"",isDark:this.props.themeType==="dark",socket:this.props.socket,runningInstances:this.props.runningInstances,language:"javascript",breakpoints:this.props.breakpoints,location:this.props.paused?this.props.location:null,onToggleBreakpoint:v=>this.props.onToggleBreakpoint(v)},"scriptEditor2")},"scriptEditorDiv2")}}const At=34,Ke={logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:X=>({display:"inline-block",color:X.palette.mode==="dark"?"white":"black",width:`calc(100% - ${At}px)`,height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"}),info:X=>({background:X.palette.mode==="dark"?"darkgrey":"lightgrey",color:(X.palette.mode==="dark","black")}),error:X=>({background:"#FF0000",color:X.palette.mode==="dark"?"black":"white"}),warn:X=>({background:"#FF8000",color:X.palette.mode==="dark"?"black":"white"}),debug:X=>({background:"gray",opacity:.8,color:X.palette.mode==="dark"?"black":"white"}),silly:X=>({background:"gray",opacity:.6,color:X.palette.mode==="dark"?"black":"white"}),table:{fontFamily:"monospace",width:"100%"},toolbox:{width:At,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},iconButtons:{width:32,height:32,padding:4}};function ra(X){let v,g=X.getHours();return g<10&&(g=`0${g.toString()}`),v=`${g}:`,g=X.getMinutes(),g<10&&(g=`0${g.toString()}`),v+=`${g}:`,g=X.getSeconds(),g<10&&(g=`0${g.toString()}`),v+=`${g}.`,g=X.getMilliseconds(),g<10?g=`00${g.toString()}`:g<100&&(g=`0${g.toString()}`),v+=g,v}class _t extends dt.Component{messagesEnd;constructor(v){super(v),this.state={goBottom:!0},this.messagesEnd=dt.createRef()}static generateLine(v){return M.jsxs(G.Box,{component:"tr",sx:Ke[v.severity],children:[M.jsx("td",{style:Ke.trTime,children:ra(new Date(v.ts))}),M.jsx("td",{style:Ke.trSeverity,children:v.severity}),M.jsx("td",{children:v.text})]},`tr_${v.ts}_${v.text.substring(v.text.length-10,v.text.length)}`)}renderLogList(v){return v!=null&&v.length?M.jsxs(G.Box,{sx:Ke.logBoxInner,children:[M.jsx("table",{style:Ke.table,children:M.jsx("tbody",{children:v.map(g=>_t.generateLine(g))})},"logTable"),M.jsx("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):M.jsx(G.Box,{sx:Ke.logBoxInner,style:{paddingLeft:10},children:Oe.I18n.t("Log outputs")},"logList")}onCopy(){Oe.Utils.copyToClipboard(this.props.console.join(` `))}scrollToBottom(){var v,g;(g=(v=this.messagesEnd)==null?void 0:v.current)==null||g.scrollIntoView({behavior:"smooth"})}componentDidUpdate(){this.state.goBottom&&this.scrollToBottom()}render(){const v=this.props.console;return M.jsxs("div",{style:Ke.logBox,children:[M.jsxs("div",{style:Ke.toolbox,children:[M.jsx(G.IconButton,{style:Ke.iconButtons,onClick:()=>this.setState({goBottom:!this.state.goBottom}),color:this.state.goBottom?"secondary":void 0,size:"medium",children:M.jsx(Vt,{})}),v!=null&&v.length?M.jsx(G.IconButton,{style:Ke.iconButtons,onClick:()=>this.props.onClearAllLogs(),size:"medium",children:M.jsx(zt,{})}):null,v!=null&&v.length?M.jsx(G.IconButton,{style:Ke.iconButtons,onClick:()=>this.onCopy(),size:"medium",children:M.jsx(qt,{})}):null]},"toolbox"),this.renderLogList(v)]})}}var wt={exports:{}},na=wt.exports;(function(X,v){(function(g,a){X.exports=a(Rt)})(na,function(g){return function(a){var t={};function e(s){if(t[s])return t[s].exports;var c=t[s]={i:s,l:!1,exports:{}};return a[s].call(c.exports,c,c.exports,e),c.l=!0,c.exports}return e.m=a,e.c=t,e.d=function(s,c,d){e.o(s,c)||Object.defineProperty(s,c,{enumerable:!0,get:d})},e.r=function(s){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(s,"__esModule",{value:!0})},e.t=function(s,c){if(1&c&&(s=e(s)),8&c||4&c&&typeof s=="object"&&s&&s.__esModule)return s;var d=Object.create(null);if(e.r(d),Object.defineProperty(d,"default",{enumerable:!0,value:s}),2&c&&typeof s!="string")for(var p in s)e.d(d,p,function(f){return s[f]}.bind(null,p));return d},e.n=function(s){var c=s&&s.__esModule?function(){return s.default}:function(){return s};return e.d(c,"a",c),c},e.o=function(s,c){return Object.prototype.hasOwnProperty.call(s,c)},e.p="",e(e.s=48)}([function(a,t){a.exports=g},function(a,t){var e=a.exports={version:"2.6.12"};typeof __e=="number"&&(__e=e)},function(a,t,e){var s=e(26)("wks"),c=e(17),d=e(3).Symbol,p=typeof d=="function";(a.exports=function(f){return s[f]||(s[f]=p&&d[f]||(p?d:c)("Symbol."+f))}).store=s},function(a,t){var e=a.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=e)},function(a,t,e){a.exports=!e(8)(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7})},function(a,t){var e={}.hasOwnProperty;a.exports=function(s,c){return e.call(s,c)}},function(a,t,e){var s=e(7),c=e(16);a.exports=e(4)?function(d,p,f){return s.f(d,p,c(1,f))}:function(d,p,f){return d[p]=f,d}},function(a,t,e){var s=e(10),c=e(35),d=e(23),p=Object.defineProperty;t.f=e(4)?Object.defineProperty:function(f,h,E){if(s(f),h=d(h,!0),s(E),c)try{return p(f,h,E)}catch{}if("get"in E||"set"in E)throw TypeError("Accessors not supported!");return"value"in E&&(f[h]=E.value),f}},function(a,t){a.exports=function(e){try{return!!e()}catch{return!0}}},function(a,t,e){var s=e(40),c=e(22);a.exports=function(d){return s(c(d))}},function(a,t,e){var s=e(11);a.exports=function(c){if(!s(c))throw TypeError(c+" is not an object!");return c}},function(a,t){a.exports=function(e){return typeof e=="object"?e!==null:typeof e=="function"}},function(a,t){a.exports={}},function(a,t,e){var s=e(39),c=e(27);a.exports=Object.keys||function(d){return s(d,c)}},function(a,t){a.exports=!0},function(a,t,e){var s=e(3),c=e(1),d=e(53),p=e(6),f=e(5),h=function(E,b,w){var I,D,H,L=E&h.F,ee=E&h.G,r=E&h.S,B=E&h.P,V=E&h.B,z=E&h.W,q=ee?c:c[b]||(c[b]={}),k=q.prototype,A=ee?s:r?s[b]:(s[b]||{}).prototype;for(I in ee&&(w=b),w)(D=!L&&A&&A[I]!==void 0)&&f(q,I)||(H=D?A[I]:w[I],q[I]=ee&&typeof A[I]!="function"?w[I]:V&&D?d(H,s):z&&A[I]==H?function(T){var W=function(S,te,J){if(this instanceof T){switch(arguments.length){case 0:return new T;case 1:return new T(S);case 2:return new T(S,te)}return new T(S,te,J)}return T.apply(this,arguments)};return W.prototype=T.prototype,W}(H):B&&typeof H=="function"?d(Function.call,H):H,B&&((q.virtual||(q.virtual={}))[I]=H,E&h.R&&k&&!k[I]&&p(k,I,H)))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,h.U=64,h.R=128,a.exports=h},function(a,t){a.exports=function(e,s){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:s}}},function(a,t){var e=0,s=Math.random();a.exports=function(c){return"Symbol(".concat(c===void 0?"":c,")_",(++e+s).toString(36))}},function(a,t,e){var s=e(22);a.exports=function(c){return Object(s(c))}},function(a,t){t.f={}.propertyIsEnumerable},function(a,t,e){var s=e(52)(!0);e(34)(String,"String",function(c){this._t=String(c),this._i=0},function(){var c,d=this._t,p=this._i;return p>=d.length?{value:void 0,done:!0}:(c=s(d,p),this._i+=c.length,{value:c,done:!1})})},function(a,t){var e=Math.ceil,s=Math.floor;a.exports=function(c){return isNaN(c=+c)?0:(c>0?s:e)(c)}},function(a,t){a.exports=function(e){if(e==null)throw TypeError("Can't call method on "+e);return e}},function(a,t,e){var s=e(11);a.exports=function(c,d){if(!s(c))return c;var p,f;if(d&&typeof(p=c.toString)=="function"&&!s(f=p.call(c))||typeof(p=c.valueOf)=="function"&&!s(f=p.call(c))||!d&&typeof(p=c.toString)=="function"&&!s(f=p.call(c)))return f;throw TypeError("Can't convert object to primitive value")}},function(a,t){var e={}.toString;a.exports=function(s){return e.call(s).slice(8,-1)}},function(a,t,e){var s=e(26)("keys"),c=e(17);a.exports=function(d){return s[d]||(s[d]=c(d))}},function(a,t,e){var s=e(1),c=e(3),d=c["__core-js_shared__"]||(c["__core-js_shared__"]={});(a.exports=function(p,f){return d[p]||(d[p]=f!==void 0?f:{})})("versions",[]).push({version:s.version,mode:e(14)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(a,t){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,t,e){var s=e(7).f,c=e(5),d=e(2)("toStringTag");a.exports=function(p,f,h){p&&!c(p=h?p:p.prototype,d)&&s(p,d,{configurable:!0,value:f})}},function(a,t,e){e(62);for(var s=e(3),c=e(6),d=e(12),p=e(2)("toStringTag"),f="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),h=0;hdocument.F=Object<\/script>"),E.close(),h=E.F;w--;)delete h.prototype[d[w]];return h()};a.exports=Object.create||function(E,b){var w;return E!==null?(f.prototype=s(E),w=new f,f.prototype=null,w[p]=E):w=h(),b===void 0?w:c(w,b)}},function(a,t,e){var s=e(5),c=e(9),d=e(57)(!1),p=e(25)("IE_PROTO");a.exports=function(f,h){var E,b=c(f),w=0,I=[];for(E in b)E!=p&&s(b,E)&&I.push(E);for(;h.length>w;)s(b,E=h[w++])&&(~d(I,E)||I.push(E));return I}},function(a,t,e){var s=e(24);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(c){return s(c)=="String"?c.split(""):Object(c)}},function(a,t,e){var s=e(39),c=e(27).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(d){return s(d,c)}},function(a,t,e){var s=e(24),c=e(2)("toStringTag"),d=s(function(){return arguments}())=="Arguments";a.exports=function(p){var f,h,E;return p===void 0?"Undefined":p===null?"Null":typeof(h=function(b,w){try{return b[w]}catch{}}(f=Object(p),c))=="string"?h:d?s(f):(E=s(f))=="Object"&&typeof f.callee=="function"?"Arguments":E}},function(a,t){var e;e=function(){return this}();try{e=e||new Function("return this")()}catch{typeof window=="object"&&(e=window)}a.exports=e},function(a,t){var e=/-?\d+(\.\d+)?%?/g;a.exports=function(s){return s.match(e)}},function(a,t,e){Object.defineProperty(t,"__esModule",{value:!0}),t.getBase16Theme=t.createStyling=t.invertTheme=void 0;var s=D(e(49)),c=D(e(76)),d=D(e(81)),p=D(e(89)),f=D(e(93)),h=function(k){if(k&&k.__esModule)return k;var A={};if(k!=null)for(var T in k)Object.prototype.hasOwnProperty.call(k,T)&&(A[T]=k[T]);return A.default=k,A}(e(94)),E=D(e(132)),b=D(e(133)),w=D(e(138)),I=e(139);function D(k){return k&&k.__esModule?k:{default:k}}var H=h.default,L=(0,p.default)(H),ee=(0,w.default)(b.default,I.rgb2yuv,function(k){var A,T=(0,d.default)(k,3),W=T[0],S=T[1],te=T[2];return[(A=W,A<.25?1:A<.5?.9-A:1.1-A),S,te]},I.yuv2rgb,E.default),r=function(k){return function(A){return{className:[A.className,k.className].filter(Boolean).join(" "),style:(0,c.default)({},A.style||{},k.style||{})}}},B=function(k,A){var T=(0,p.default)(A);for(var W in k)T.indexOf(W)===-1&&T.push(W);return T.reduce(function(S,te){return S[te]=function(J,C){if(J===void 0)return C;if(C===void 0)return J;var Q=J===void 0?"undefined":(0,s.default)(J),he=C===void 0?"undefined":(0,s.default)(C);switch(Q){case"string":switch(he){case"string":return[C,J].filter(Boolean).join(" ");case"object":return r({className:J,style:C});case"function":return function(ue){for(var U=arguments.length,ce=Array(U>1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z1?U-1:0),Z=1;Z2?T-2:0),S=2;S3?A-3:0),W=3;W1&&arguments[1]!==void 0?arguments[1]:{},te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},J=S.defaultBase16,C=J===void 0?H:J,Q=S.base16Themes,he=Q===void 0?null:Q,ue=q(te,he);ue&&(te=(0,c.default)({},ue,te));var U=L.reduce(function(ge,Me){return ge[Me]=te[Me]||C[Me],ge},{}),ce=(0,p.default)(te).reduce(function(ge,Me){return L.indexOf(Me)===-1&&(ge[Me]=te[Me]),ge},{}),Z=k(U),me=B(ce,Z);return(0,f.default)(V,2).apply(void 0,[me].concat(T))},3),t.getBase16Theme=function(k,A){if(k&&k.extend&&(k=k.extend),typeof k=="string"){var T=k.split(":"),W=(0,d.default)(T,2),S=W[0],te=W[1];k=(A||{})[S]||h[S],te==="inverted"&&(k=z(k))}return k&&k.hasOwnProperty("base00")?k:void 0})},function(a,t,e){var s,c=typeof Reflect=="object"?Reflect:null,d=c&&typeof c.apply=="function"?c.apply:function(r,B,V){return Function.prototype.apply.call(r,B,V)};s=c&&typeof c.ownKeys=="function"?c.ownKeys:Object.getOwnPropertySymbols?function(r){return Object.getOwnPropertyNames(r).concat(Object.getOwnPropertySymbols(r))}:function(r){return Object.getOwnPropertyNames(r)};var p=Number.isNaN||function(r){return r!=r};function f(){f.init.call(this)}a.exports=f,a.exports.once=function(r,B){return new Promise(function(V,z){function q(){k!==void 0&&r.removeListener("error",k),V([].slice.call(arguments))}var k;B!=="error"&&(k=function(A){r.removeListener(B,q),z(A)},r.once("error",k)),r.once(B,q)})},f.EventEmitter=f,f.prototype._events=void 0,f.prototype._eventsCount=0,f.prototype._maxListeners=void 0;var h=10;function E(r){if(typeof r!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof r)}function b(r){return r._maxListeners===void 0?f.defaultMaxListeners:r._maxListeners}function w(r,B,V,z){var q,k,A,T;if(E(V),(k=r._events)===void 0?(k=r._events=Object.create(null),r._eventsCount=0):(k.newListener!==void 0&&(r.emit("newListener",B,V.listener?V.listener:V),k=r._events),A=k[B]),A===void 0)A=k[B]=V,++r._eventsCount;else if(typeof A=="function"?A=k[B]=z?[V,A]:[A,V]:z?A.unshift(V):A.push(V),(q=b(r))>0&&A.length>q&&!A.warned){A.warned=!0;var W=new Error("Possible EventEmitter memory leak detected. "+A.length+" "+String(B)+" listeners added. Use emitter.setMaxListeners() to increase limit");W.name="MaxListenersExceededWarning",W.emitter=r,W.type=B,W.count=A.length,T=W,console&&console.warn&&console.warn(T)}return r}function I(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function D(r,B,V){var z={fired:!1,wrapFn:void 0,target:r,type:B,listener:V},q=I.bind(z);return q.listener=V,z.wrapFn=q,q}function H(r,B,V){var z=r._events;if(z===void 0)return[];var q=z[B];return q===void 0?[]:typeof q=="function"?V?[q.listener||q]:[q]:V?function(k){for(var A=new Array(k.length),T=0;T0&&(k=B[0]),k instanceof Error)throw k;var A=new Error("Unhandled error."+(k?" ("+k.message+")":""));throw A.context=k,A}var T=q[r];if(T===void 0)return!1;if(typeof T=="function")d(T,this,B);else{var W=T.length,S=ee(T,W);for(V=0;V=0;k--)if(V[k]===B||V[k].listener===B){A=V[k].listener,q=k;break}if(q<0)return this;q===0?V.shift():function(T,W){for(;W+1=0;z--)this.removeListener(r,B[z]);return this},f.prototype.listeners=function(r){return H(this,r,!0)},f.prototype.rawListeners=function(r){return H(this,r,!1)},f.listenerCount=function(r,B){return typeof r.listenerCount=="function"?r.listenerCount(B):L.call(r,B)},f.prototype.listenerCount=L,f.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},function(a,t,e){a.exports.Dispatcher=e(140)},function(a,t,e){a.exports=e(142)},function(a,t,e){t.__esModule=!0;var s=p(e(50)),c=p(e(65)),d=typeof c.default=="function"&&typeof s.default=="symbol"?function(f){return typeof f}:function(f){return f&&typeof c.default=="function"&&f.constructor===c.default&&f!==c.default.prototype?"symbol":typeof f};function p(f){return f&&f.__esModule?f:{default:f}}t.default=typeof c.default=="function"&&d(s.default)==="symbol"?function(f){return f===void 0?"undefined":d(f)}:function(f){return f&&typeof c.default=="function"&&f.constructor===c.default&&f!==c.default.prototype?"symbol":f===void 0?"undefined":d(f)}},function(a,t,e){a.exports={default:e(51),__esModule:!0}},function(a,t,e){e(20),e(29),a.exports=e(30).f("iterator")},function(a,t,e){var s=e(21),c=e(22);a.exports=function(d){return function(p,f){var h,E,b=String(c(p)),w=s(f),I=b.length;return w<0||w>=I?d?"":void 0:(h=b.charCodeAt(w))<55296||h>56319||w+1===I||(E=b.charCodeAt(w+1))<56320||E>57343?d?b.charAt(w):h:d?b.slice(w,w+2):E-56320+(h-55296<<10)+65536}}},function(a,t,e){var s=e(54);a.exports=function(c,d,p){if(s(c),d===void 0)return c;switch(p){case 1:return function(f){return c.call(d,f)};case 2:return function(f,h){return c.call(d,f,h)};case 3:return function(f,h,E){return c.call(d,f,h,E)}}return function(){return c.apply(d,arguments)}}},function(a,t){a.exports=function(e){if(typeof e!="function")throw TypeError(e+" is not a function!");return e}},function(a,t,e){var s=e(38),c=e(16),d=e(28),p={};e(6)(p,e(2)("iterator"),function(){return this}),a.exports=function(f,h,E){f.prototype=s(p,{next:c(1,E)}),d(f,h+" Iterator")}},function(a,t,e){var s=e(7),c=e(10),d=e(13);a.exports=e(4)?Object.defineProperties:function(p,f){c(p);for(var h,E=d(f),b=E.length,w=0;b>w;)s.f(p,h=E[w++],f[h]);return p}},function(a,t,e){var s=e(9),c=e(58),d=e(59);a.exports=function(p){return function(f,h,E){var b,w=s(f),I=c(w.length),D=d(E,I);if(p&&h!=h){for(;I>D;)if((b=w[D++])!=b)return!0}else for(;I>D;D++)if((p||D in w)&&w[D]===h)return p||D||0;return!p&&-1}}},function(a,t,e){var s=e(21),c=Math.min;a.exports=function(d){return d>0?c(s(d),9007199254740991):0}},function(a,t,e){var s=e(21),c=Math.max,d=Math.min;a.exports=function(p,f){return(p=s(p))<0?c(p+f,0):d(p,f)}},function(a,t,e){var s=e(3).document;a.exports=s&&s.documentElement},function(a,t,e){var s=e(5),c=e(18),d=e(25)("IE_PROTO"),p=Object.prototype;a.exports=Object.getPrototypeOf||function(f){return f=c(f),s(f,d)?f[d]:typeof f.constructor=="function"&&f instanceof f.constructor?f.constructor.prototype:f instanceof Object?p:null}},function(a,t,e){var s=e(63),c=e(64),d=e(12),p=e(9);a.exports=e(34)(Array,"Array",function(f,h){this._t=p(f),this._i=0,this._k=h},function(){var f=this._t,h=this._k,E=this._i++;return!f||E>=f.length?(this._t=void 0,c(1)):c(0,h=="keys"?E:h=="values"?f[E]:[E,f[E]])},"values"),d.Arguments=d.Array,s("keys"),s("values"),s("entries")},function(a,t){a.exports=function(){}},function(a,t){a.exports=function(e,s){return{value:s,done:!!e}}},function(a,t,e){a.exports={default:e(66),__esModule:!0}},function(a,t,e){e(67),e(73),e(74),e(75),a.exports=e(1).Symbol},function(a,t,e){var s=e(3),c=e(5),d=e(4),p=e(15),f=e(37),h=e(68).KEY,E=e(8),b=e(26),w=e(28),I=e(17),D=e(2),H=e(30),L=e(31),ee=e(69),r=e(70),B=e(10),V=e(11),z=e(18),q=e(9),k=e(23),A=e(16),T=e(38),W=e(71),S=e(72),te=e(32),J=e(7),C=e(13),Q=S.f,he=J.f,ue=W.f,U=s.Symbol,ce=s.JSON,Z=ce&&ce.stringify,me=D("_hidden"),ge=D("toPrimitive"),Me={}.propertyIsEnumerable,Ee=b("symbol-registry"),Ce=b("symbols"),be=b("op-symbols"),ye=Object.prototype,Be=typeof U=="function"&&!!te.f,Ue=s.QObject,Ze=!Ue||!Ue.prototype||!Ue.prototype.findChild,Xe=d&&E(function(){return T(he({},"a",{get:function(){return he(this,"a",{value:7}).a}})).a!=7})?function(j,N,R){var K=Q(ye,N);K&&delete ye[N],he(j,N,R),K&&j!==ye&&he(ye,N,K)}:he,et=function(j){var N=Ce[j]=T(U.prototype);return N._k=j,N},tt=Be&&typeof U.iterator=="symbol"?function(j){return typeof j=="symbol"}:function(j){return j instanceof U},He=function(j,N,R){return j===ye&&He(be,N,R),B(j),N=k(N,!0),B(R),c(Ce,N)?(R.enumerable?(c(j,me)&&j[me][N]&&(j[me][N]=!1),R=T(R,{enumerable:A(0,!1)})):(c(j,me)||he(j,me,A(1,{})),j[me][N]=!0),Xe(j,N,R)):he(j,N,R)},nt=function(j,N){B(j);for(var R,K=ee(N=q(N)),ne=0,ae=K.length;ae>ne;)He(j,R=K[ne++],N[R]);return j},st=function(j){var N=Me.call(this,j=k(j,!0));return!(this===ye&&c(Ce,j)&&!c(be,j))&&(!(N||!c(this,j)||!c(Ce,j)||c(this,me)&&this[me][j])||N)},at=function(j,N){if(j=q(j),N=k(N,!0),j!==ye||!c(Ce,N)||c(be,N)){var R=Q(j,N);return!R||!c(Ce,N)||c(j,me)&&j[me][N]||(R.enumerable=!0),R}},ot=function(j){for(var N,R=ue(q(j)),K=[],ne=0;R.length>ne;)c(Ce,N=R[ne++])||N==me||N==h||K.push(N);return K},Ge=function(j){for(var N,R=j===ye,K=ue(R?be:q(j)),ne=[],ae=0;K.length>ae;)!c(Ce,N=K[ae++])||R&&!c(ye,N)||ne.push(Ce[N]);return ne};Be||(f((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor!");var j=I(arguments.length>0?arguments[0]:void 0),N=function(R){this===ye&&N.call(be,R),c(this,me)&&c(this[me],j)&&(this[me][j]=!1),Xe(this,j,A(1,R))};return d&&Ze&&Xe(ye,j,{configurable:!0,set:N}),et(j)}).prototype,"toString",function(){return this._k}),S.f=at,J.f=He,e(41).f=W.f=ot,e(19).f=st,te.f=Ge,d&&!e(14)&&f(ye,"propertyIsEnumerable",st,!0),H.f=function(j){return et(D(j))}),p(p.G+p.W+p.F*!Be,{Symbol:U});for(var Ve="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),Ie=0;Ve.length>Ie;)D(Ve[Ie++]);for(var rt=C(D.store),F=0;rt.length>F;)L(rt[F++]);p(p.S+p.F*!Be,"Symbol",{for:function(j){return c(Ee,j+="")?Ee[j]:Ee[j]=U(j)},keyFor:function(j){if(!tt(j))throw TypeError(j+" is not a symbol!");for(var N in Ee)if(Ee[N]===j)return N},useSetter:function(){Ze=!0},useSimple:function(){Ze=!1}}),p(p.S+p.F*!Be,"Object",{create:function(j,N){return N===void 0?T(j):nt(T(j),N)},defineProperty:He,defineProperties:nt,getOwnPropertyDescriptor:at,getOwnPropertyNames:ot,getOwnPropertySymbols:Ge});var x=E(function(){te.f(1)});p(p.S+p.F*x,"Object",{getOwnPropertySymbols:function(j){return te.f(z(j))}}),ce&&p(p.S+p.F*(!Be||E(function(){var j=U();return Z([j])!="[null]"||Z({a:j})!="{}"||Z(Object(j))!="{}"})),"JSON",{stringify:function(j){for(var N,R,K=[j],ne=1;arguments.length>ne;)K.push(arguments[ne++]);if(R=N=K[1],(V(N)||j!==void 0)&&!tt(j))return r(N)||(N=function(ae,pe){if(typeof R=="function"&&(pe=R.call(this,ae,pe)),!tt(pe))return pe}),K[1]=N,Z.apply(ce,K)}}),U.prototype[ge]||e(6)(U.prototype,ge,U.prototype.valueOf),w(U,"Symbol"),w(Math,"Math",!0),w(s.JSON,"JSON",!0)},function(a,t,e){var s=e(17)("meta"),c=e(11),d=e(5),p=e(7).f,f=0,h=Object.isExtensible||function(){return!0},E=!e(8)(function(){return h(Object.preventExtensions({}))}),b=function(I){p(I,s,{value:{i:"O"+ ++f,w:{}}})},w=a.exports={KEY:s,NEED:!1,fastKey:function(I,D){if(!c(I))return typeof I=="symbol"?I:(typeof I=="string"?"S":"P")+I;if(!d(I,s)){if(!h(I))return"F";if(!D)return"E";b(I)}return I[s].i},getWeak:function(I,D){if(!d(I,s)){if(!h(I))return!0;if(!D)return!1;b(I)}return I[s].w},onFreeze:function(I){return E&&w.NEED&&h(I)&&!d(I,s)&&b(I),I}}},function(a,t,e){var s=e(13),c=e(32),d=e(19);a.exports=function(p){var f=s(p),h=c.f;if(h)for(var E,b=h(p),w=d.f,I=0;b.length>I;)w.call(p,E=b[I++])&&f.push(E);return f}},function(a,t,e){var s=e(24);a.exports=Array.isArray||function(c){return s(c)=="Array"}},function(a,t,e){var s=e(9),c=e(41).f,d={}.toString,p=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];a.exports.f=function(f){return p&&d.call(f)=="[object Window]"?function(h){try{return c(h)}catch{return p.slice()}}(f):c(s(f))}},function(a,t,e){var s=e(19),c=e(16),d=e(9),p=e(23),f=e(5),h=e(35),E=Object.getOwnPropertyDescriptor;t.f=e(4)?E:function(b,w){if(b=d(b),w=p(w,!0),h)try{return E(b,w)}catch{}if(f(b,w))return c(!s.f.call(b,w),b[w])}},function(a,t){},function(a,t,e){e(31)("asyncIterator")},function(a,t,e){e(31)("observable")},function(a,t,e){t.__esModule=!0;var s,c=e(77),d=(s=c)&&s.__esModule?s:{default:s};t.default=d.default||function(p){for(var f=1;fH;)for(var r,B=h(arguments[H++]),V=L?c(B).concat(L(B)):c(B),z=V.length,q=0;z>q;)r=V[q++],s&&!ee.call(B,r)||(I[r]=B[r]);return I}:E},function(a,t,e){t.__esModule=!0;var s=d(e(82)),c=d(e(85));function d(p){return p&&p.__esModule?p:{default:p}}t.default=function(p,f){if(Array.isArray(p))return p;if((0,s.default)(Object(p)))return function(h,E){var b=[],w=!0,I=!1,D=void 0;try{for(var H,L=(0,c.default)(h);!(w=(H=L.next()).done)&&(b.push(H.value),!E||b.length!==E);w=!0);}catch(ee){I=!0,D=ee}finally{try{!w&&L.return&&L.return()}finally{if(I)throw D}}return b}(p,f);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(a,t,e){a.exports={default:e(83),__esModule:!0}},function(a,t,e){e(29),e(20),a.exports=e(84)},function(a,t,e){var s=e(42),c=e(2)("iterator"),d=e(12);a.exports=e(1).isIterable=function(p){var f=Object(p);return f[c]!==void 0||"@@iterator"in f||d.hasOwnProperty(s(f))}},function(a,t,e){a.exports={default:e(86),__esModule:!0}},function(a,t,e){e(29),e(20),a.exports=e(87)},function(a,t,e){var s=e(10),c=e(88);a.exports=e(1).getIterator=function(d){var p=c(d);if(typeof p!="function")throw TypeError(d+" is not iterable!");return s(p.call(d))}},function(a,t,e){var s=e(42),c=e(2)("iterator"),d=e(12);a.exports=e(1).getIteratorMethod=function(p){if(p!=null)return p[c]||p["@@iterator"]||d[s(p)]}},function(a,t,e){a.exports={default:e(90),__esModule:!0}},function(a,t,e){e(91),a.exports=e(1).Object.keys},function(a,t,e){var s=e(18),c=e(13);e(92)("keys",function(){return function(d){return c(s(d))}})},function(a,t,e){var s=e(15),c=e(1),d=e(8);a.exports=function(p,f){var h=(c.Object||{})[p]||Object[p],E={};E[p]=f(h),s(s.S+s.F*d(function(){h(1)}),"Object",E)}},function(a,t,e){(function(s){var c=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],d=/^\s+|\s+$/g,p=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,f=/\{\n\/\* \[wrapped with (.+)\] \*/,h=/,? & /,E=/^[-+]0x[0-9a-f]+$/i,b=/^0b[01]+$/i,w=/^\[object .+?Constructor\]$/,I=/^0o[0-7]+$/i,D=/^(?:0|[1-9]\d*)$/,H=parseInt,L=typeof s=="object"&&s&&s.Object===Object&&s,ee=typeof self=="object"&&self&&self.Object===Object&&self,r=L||ee||Function("return this")();function B(F,x,j){switch(j.length){case 0:return F.call(x);case 1:return F.call(x,j[0]);case 2:return F.call(x,j[0],j[1]);case 3:return F.call(x,j[0],j[1],j[2])}return F.apply(x,j)}function V(F,x){return!!(F&&F.length)&&function(j,N,R){if(N!=N)return function(ae,pe,xe,je){for(var Ae=ae.length,ve=xe+-1;++ve-1}function z(F){return F!=F}function q(F,x){for(var j=F.length,N=0;j--;)F[j]===x&&N++;return N}function k(F,x){for(var j=-1,N=F.length,R=0,K=[];++j2?T:void 0);function Me(F){return Ve(F)?ce(F):{}}function Ee(F){return!(!Ve(F)||function(x){return!!C&&C in x}(F))&&(function(x){var j=Ve(x)?ue.call(x):"";return j=="[object Function]"||j=="[object GeneratorFunction]"}(F)||function(x){var j=!1;if(x!=null&&typeof x.toString!="function")try{j=!!(x+"")}catch{}return j}(F)?U:w).test(function(x){if(x!=null){try{return Q.call(x)}catch{}try{return x+""}catch{}}return""}(F))}function Ce(F,x,j,N){for(var R=-1,K=F.length,ne=j.length,ae=-1,pe=x.length,xe=Z(K-ne,0),je=Array(pe+xe),Ae=!N;++ae1&&oe.reverse(),je&&pe1?"& ":"")+x[N],x=x.join(j>2?", ":" "),F.replace(p,`{ /* [wrapped with `+x+`] */ `)}function nt(F,x){return!!(x=x??9007199254740991)&&(typeof F=="number"||D.test(F))&&F>-1&&F%1==0&&F1&&d--,f=6*d<1?s+6*(c-s)*d:2*d<1?c:3*d<2?s+(c-s)*(2/3-d)*6:s,p[w]=255*f;return p}},function(a,t,e){(function(s){var c=typeof s=="object"&&s&&s.Object===Object&&s,d=typeof self=="object"&&self&&self.Object===Object&&self,p=c||d||Function("return this")();function f(k,A,T){switch(T.length){case 0:return k.call(A);case 1:return k.call(A,T[0]);case 2:return k.call(A,T[0],T[1]);case 3:return k.call(A,T[0],T[1],T[2])}return k.apply(A,T)}function h(k,A){for(var T=-1,W=A.length,S=k.length;++T-1&&S%1==0&&S<=9007199254740991}(W.length)&&!function(S){var te=function(J){var C=typeof J;return!!J&&(C=="object"||C=="function")}(S)?w.call(S):"";return te=="[object Function]"||te=="[object GeneratorFunction]"}(W)}(T)}(A)&&b.call(A,"callee")&&(!D.call(A,"callee")||w.call(A)=="[object Arguments]")}(k)||!!(H&&k&&k[H])}var r=Array.isArray,B,V,z,q=(V=function(k){var A=(k=function(S,te,J,C,Q){var he=-1,ue=S.length;for(J||(J=ee),Q||(Q=[]);++he2?d-2:0),f=2;f"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}();return function(){var n,o=w(l);if(u){var i=w(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return H(this,n)}}e.r(t);var ee=e(0),r=e.n(ee);function B(){var l=this.constructor.getDerivedStateFromProps(this.props,this.state);l!=null&&this.setState(l)}function V(l){this.setState(function(u){var n=this.constructor.getDerivedStateFromProps(l,u);return n??null}.bind(this))}function z(l,u){try{var n=this.props,o=this.state;this.props=l,this.state=u,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,o)}finally{this.props=n,this.state=o}}function q(l){var u=l.prototype;if(!u||!u.isReactComponent)throw new Error("Can only polyfill class components");if(typeof l.getDerivedStateFromProps!="function"&&typeof u.getSnapshotBeforeUpdate!="function")return l;var n=null,o=null,i=null;if(typeof u.componentWillMount=="function"?n="componentWillMount":typeof u.UNSAFE_componentWillMount=="function"&&(n="UNSAFE_componentWillMount"),typeof u.componentWillReceiveProps=="function"?o="componentWillReceiveProps":typeof u.UNSAFE_componentWillReceiveProps=="function"&&(o="UNSAFE_componentWillReceiveProps"),typeof u.componentWillUpdate=="function"?i="componentWillUpdate":typeof u.UNSAFE_componentWillUpdate=="function"&&(i="UNSAFE_componentWillUpdate"),n!==null||o!==null||i!==null){var y=l.displayName||l.name,O=typeof l.getDerivedStateFromProps=="function"?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error(`Unsafe legacy lifecycles will not be called for components using new component APIs. diff --git a/admin/custom/assets/index-3awjKpeb.js b/admin/custom/assets/index-BADTG0C3.js similarity index 61% rename from admin/custom/assets/index-3awjKpeb.js rename to admin/custom/assets/index-BADTG0C3.js index 6fb65d753..c54ef6bfd 100644 --- a/admin/custom/assets/index-3awjKpeb.js +++ b/admin/custom/assets/index-BADTG0C3.js @@ -1,25 +1,25 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CttBOMyq.js","./useTheme-MELayQMj.js","./_commonjsHelpers-D6-XlEtG.js","./createTheme-BwMO3rTt.js","./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js","./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js","./useThemeWithoutDefault-C-hl_s0Z.js"])))=>i.map(i=>d[i]); -import{C as dt,R as M}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{a as Xr,c as He,g as Zr}from"./_commonjsHelpers-D6-XlEtG.js";import{C as N}from"./ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js";import{C as Z,a as qr,I as es,D as Pi}from"./index-B8sZ2j0S.js";import{C as j,A as ts,a as Wi}from"./ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DAwHgdl6.js";import{R as ns}from"./ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js";import{F as is}from"./FilledInput-BpuM_GyB.js";import{p as rs}from"./createTheme-BwMO3rTt.js";import{i as Pn}from"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import{p as Un}from"./useTheme-MELayQMj.js";import{_ as ss}from"./preload-helper-Dp1pzeXC.js";import"./DefaultPropsProvider-9qubdy-V.js";import"./defaultTheme-avbtL0lf.js";import"./DefaultPropsProvider-DbEA5uR6.js";import"./jsx-runtime-o-xyxrOj.js";import"./useEnhancedEffect-CdLBzwyA.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";const os=Object.freeze(Object.defineProperty({__proto__:null,get ConfigGeneric(){return K},get ConfigPanel(){return $t},get JsonConfig(){return xl},get JsonConfigComponent(){return cn}},Symbol.toStringTag,{value:"Module"}));var as=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ls=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,us=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,$n={Space_Separator:as,ID_Start:ls,ID_Continue:us},Me={isSpaceSeparator(L){return typeof L=="string"&&$n.Space_Separator.test(L)},isIdStartChar(L){return typeof L=="string"&&(L>="a"&&L<="z"||L>="A"&&L<="Z"||L==="$"||L==="_"||$n.ID_Start.test(L))},isIdContinueChar(L){return typeof L=="string"&&(L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="$"||L==="_"||L==="‌"||L==="‍"||$n.ID_Continue.test(L))},isDigit(L){return typeof L=="string"&&/[0-9]/.test(L)},isHexDigit(L){return typeof L=="string"&&/[0-9A-Fa-f]/.test(L)}};let Wn,Be,it,dn,pt,Ye,Ie,Gn,Vt;var hs=function(n,i){Wn=String(n),Be="start",it=[],dn=0,pt=1,Ye=0,Ie=void 0,Gn=void 0,Vt=void 0;do Ie=cs(),fs[Be]();while(Ie.type!=="eof");return typeof i=="function"?Hn({"":Vt},"",i):Vt};function Hn(L,n,i){const u=L[n];if(u!=null&&typeof u=="object")if(Array.isArray(u))for(let v=0;v="a"&&L<="z"||L>="A"&&L<="Z"||L==="$"||L==="_"||$n.ID_Start.test(L))},isIdContinueChar(L){return typeof L=="string"&&(L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="$"||L==="_"||L==="‌"||L==="‍"||$n.ID_Continue.test(L))},isDigit(L){return typeof L=="string"&&/[0-9]/.test(L)},isHexDigit(L){return typeof L=="string"&&/[0-9A-Fa-f]/.test(L)}};let Wn,Be,it,pn,dt,Ye,Ie,Gn,Vt;var us=function(n,i){Wn=String(n),Be="start",it=[],pn=0,dt=1,Ye=0,Ie=void 0,Gn=void 0,Vt=void 0;do Ie=cs(),fs[Be]();while(Ie.type!=="eof");return typeof i=="function"?Hn({"":Vt},"",i):Vt};function Hn(L,n,i){const h=L[n];if(h!=null&&typeof h=="object")if(Array.isArray(h))for(let v=0;v0;){const i=rt();if(!Me.isHexDigit(i))throw Ae(q());L+=q()}return String.fromCodePoint(parseInt(L,16))}const fs={start(){if(Ie.type==="eof")throw Ct();Tn()},beforePropertyName(){switch(Ie.type){case"identifier":case"string":Gn=Ie.value,Be="afterPropertyName";return;case"punctuator":nn();return;case"eof":throw Ct()}},afterPropertyName(){if(Ie.type==="eof")throw Ct();Be="beforePropertyValue"},beforePropertyValue(){if(Ie.type==="eof")throw Ct();Tn()},beforeArrayValue(){if(Ie.type==="eof")throw Ct();if(Ie.type==="punctuator"&&Ie.value==="]"){nn();return}Tn()},afterPropertyValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforePropertyName";return;case"}":nn()}},afterArrayValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforeArrayValue";return;case"]":nn()}},end(){}};function Tn(){let L;switch(Ie.type){case"punctuator":switch(Ie.value){case"{":L={};break;case"[":L=[];break}break;case"null":case"boolean":case"numeric":case"string":L=Ie.value;break}if(Vt===void 0)Vt=L;else{const n=it[it.length-1];Array.isArray(n)?n.push(L):Object.defineProperty(n,Gn,{value:L,writable:!0,enumerable:!0,configurable:!0})}if(L!==null&&typeof L=="object")it.push(L),Array.isArray(L)?Be="beforeArrayValue":Be="beforePropertyName";else{const n=it[it.length-1];n==null?Be="end":Array.isArray(n)?Be="afterArrayValue":Be="afterPropertyValue"}}function nn(){it.pop();const L=it[it.length-1];L==null?Be="end":Array.isArray(L)?Be="afterArrayValue":Be="afterPropertyValue"}function Ae(L){return pn(L===void 0?`JSON5: invalid end of input at ${pt}:${Ye}`:`JSON5: invalid character '${zi(L)}' at ${pt}:${Ye}`)}function Ct(){return pn(`JSON5: invalid end of input at ${pt}:${Ye}`)}function hi(){return Ye-=5,pn(`JSON5: invalid identifier character at ${pt}:${Ye}`)}function gs(L){console.warn(`JSON5: '${zi(L)}' in strings is not valid ECMAScript; consider escaping`)}function zi(L){const n={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(n[L])return n[L];if(L<" "){const i=L.charCodeAt(0).toString(16);return"\\x"+("00"+i).substring(i.length)}return L}function pn(L){const n=new SyntaxError(L);return n.lineNumber=pt,n.columnNumber=Ye,n}var ms=function(n,i,u){const v=[];let o="",h,p,a="",d;if(i!=null&&typeof i=="object"&&!Array.isArray(i)&&(u=i.space,d=i.quote,i=i.replacer),typeof i=="function")p=i;else if(Array.isArray(i)){h=[];for(const c of i){let f;typeof c=="string"?f=c:(typeof c=="number"||c instanceof String||c instanceof Number)&&(f=String(c)),f!==void 0&&h.indexOf(f)<0&&h.push(f)}}return u instanceof Number?u=Number(u):u instanceof String&&(u=String(u)),typeof u=="number"?u>0&&(u=Math.min(10,Math.floor(u)),a=" ".substr(0,u)):typeof u=="string"&&(a=u.substr(0,10)),e("",{"":n});function e(c,f){let m=f[c];switch(m!=null&&(typeof m.toJSON5=="function"?m=m.toJSON5(c):typeof m.toJSON=="function"&&(m=m.toJSON(c))),p&&(m=p.call(f,c,m)),m instanceof Number?m=Number(m):m instanceof String?m=String(m):m instanceof Boolean&&(m=m.valueOf()),m){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof m=="string")return t(m);if(typeof m=="number")return String(m);if(typeof m=="object")return Array.isArray(m)?s(m):r(m)}function t(c){const f={"'":.1,'"':.2},m={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let y="";for(let E=0;Ef[E]=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=o;o=o+a;let m=h||Object.keys(c),y=[];for(const E of m){const b=e(E,c);if(b!==void 0){let g=l(E)+":";a!==""&&(g+=" "),g+=b,y.push(g)}}let D;if(y.length===0)D="{}";else{let E;if(a==="")E=y.join(","),D="{"+E+"}";else{let b=`, -`+o;E=y.join(b),D=`{ -`+o+E+`, -`+f+"}"}}return v.pop(),o=f,D}function l(c){if(c.length===0)return t(c);const f=String.fromCodePoint(c.codePointAt(0));if(!Me.isIdStartChar(f))return t(c);for(let m=f.length;m=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=o;o=o+a;let m=[];for(let D=0;D>>2]>>>24-S%4*8&255;D[b+S>>>2]|=T<<24-(b+S)%4*8}else for(var k=0;k>>2]=E[k>>>2];return this.sigBytes+=g,this},clamp:function(){var y=this.words,D=this.sigBytes;y[D>>>2]&=4294967295<<32-D%4*8,y.length=u.ceil(D/4)},clone:function(){var y=e.clone.call(this);return y.words=this.words.slice(0),y},random:function(y){for(var D=[],E=0;E>>2]>>>24-g%4*8&255;b.push((S>>>4).toString(16)),b.push((S&15).toString(16))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>3]|=parseInt(y.substr(b,2),16)<<24-b%8*4;return new t.init(E,D/2)}},s=r.Latin1={stringify:function(y){for(var D=y.words,E=y.sigBytes,b=[],g=0;g>>2]>>>24-g%4*8&255;b.push(String.fromCharCode(S))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>2]|=(y.charCodeAt(b)&255)<<24-b%4*8;return new t.init(E,D)}},c=r.Utf8={stringify:function(y){try{return decodeURIComponent(escape(s.stringify(y)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(y){return s.parse(unescape(encodeURIComponent(y)))}},f=d.BufferedBlockAlgorithm=e.extend({reset:function(){this._data=new t.init,this._nDataBytes=0},_append:function(y){typeof y=="string"&&(y=c.parse(y)),this._data.concat(y),this._nDataBytes+=y.sigBytes},_process:function(y){var D,E=this._data,b=E.words,g=E.sigBytes,S=this.blockSize,T=S*4,k=g/T;y?k=u.ceil(k):k=u.max((k|0)-this._minBufferSize,0);var _=k*S,O=u.min(_*4,g);if(_){for(var $=0;$<_;$+=S)this._doProcessBlock(b,$);D=b.splice(0,_),E.sigBytes-=O}return new t.init(D,O)},clone:function(){var y=e.clone.call(this);return y._data=this._data.clone(),y},_minBufferSize:0});d.Hasher=f.extend({cfg:e.extend(),init:function(y){this.cfg=this.cfg.extend(y),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(y){return this._append(y),this._process(),this},finalize:function(y){y&&this._append(y);var D=this._doFinalize();return D},blockSize:16,_createHelper:function(y){return function(D,E){return new y.init(E).finalize(D)}},_createHmacHelper:function(y){return function(D,E){return new m.HMAC.init(y,E).finalize(D)}}});var m=a.algo={};return a}(Math);return i})}(hn)),hn.exports}var Ds=Kn.exports;(function(L,n){(function(i,u){L.exports=u(Ss())})(Ds,function(i){return function(u){var v=i,o=v.lib,h=o.WordArray,p=o.Hasher,a=v.algo,d=[];(function(){for(var c=0;c<64;c++)d[c]=u.abs(u.sin(c+1))*4294967296|0})();var e=a.MD5=p.extend({_doReset:function(){this._hash=new h.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(c,f){for(var m=0;m<16;m++){var y=f+m,D=c[y];c[y]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360}var E=this._hash.words,b=c[f+0],g=c[f+1],S=c[f+2],T=c[f+3],k=c[f+4],_=c[f+5],O=c[f+6],$=c[f+7],A=c[f+8],C=c[f+9],w=c[f+10],x=c[f+11],I=c[f+12],F=c[f+13],R=c[f+14],B=c[f+15],P=E[0],V=E[1],W=E[2],H=E[3];P=t(P,V,W,H,b,7,d[0]),H=t(H,P,V,W,g,12,d[1]),W=t(W,H,P,V,S,17,d[2]),V=t(V,W,H,P,T,22,d[3]),P=t(P,V,W,H,k,7,d[4]),H=t(H,P,V,W,_,12,d[5]),W=t(W,H,P,V,O,17,d[6]),V=t(V,W,H,P,$,22,d[7]),P=t(P,V,W,H,A,7,d[8]),H=t(H,P,V,W,C,12,d[9]),W=t(W,H,P,V,w,17,d[10]),V=t(V,W,H,P,x,22,d[11]),P=t(P,V,W,H,I,7,d[12]),H=t(H,P,V,W,F,12,d[13]),W=t(W,H,P,V,R,17,d[14]),V=t(V,W,H,P,B,22,d[15]),P=r(P,V,W,H,g,5,d[16]),H=r(H,P,V,W,O,9,d[17]),W=r(W,H,P,V,x,14,d[18]),V=r(V,W,H,P,b,20,d[19]),P=r(P,V,W,H,_,5,d[20]),H=r(H,P,V,W,w,9,d[21]),W=r(W,H,P,V,B,14,d[22]),V=r(V,W,H,P,k,20,d[23]),P=r(P,V,W,H,C,5,d[24]),H=r(H,P,V,W,R,9,d[25]),W=r(W,H,P,V,T,14,d[26]),V=r(V,W,H,P,A,20,d[27]),P=r(P,V,W,H,F,5,d[28]),H=r(H,P,V,W,S,9,d[29]),W=r(W,H,P,V,$,14,d[30]),V=r(V,W,H,P,I,20,d[31]),P=l(P,V,W,H,_,4,d[32]),H=l(H,P,V,W,A,11,d[33]),W=l(W,H,P,V,x,16,d[34]),V=l(V,W,H,P,R,23,d[35]),P=l(P,V,W,H,g,4,d[36]),H=l(H,P,V,W,k,11,d[37]),W=l(W,H,P,V,$,16,d[38]),V=l(V,W,H,P,w,23,d[39]),P=l(P,V,W,H,F,4,d[40]),H=l(H,P,V,W,b,11,d[41]),W=l(W,H,P,V,T,16,d[42]),V=l(V,W,H,P,O,23,d[43]),P=l(P,V,W,H,C,4,d[44]),H=l(H,P,V,W,I,11,d[45]),W=l(W,H,P,V,B,16,d[46]),V=l(V,W,H,P,S,23,d[47]),P=s(P,V,W,H,b,6,d[48]),H=s(H,P,V,W,$,10,d[49]),W=s(W,H,P,V,R,15,d[50]),V=s(V,W,H,P,_,21,d[51]),P=s(P,V,W,H,I,6,d[52]),H=s(H,P,V,W,T,10,d[53]),W=s(W,H,P,V,w,15,d[54]),V=s(V,W,H,P,g,21,d[55]),P=s(P,V,W,H,A,6,d[56]),H=s(H,P,V,W,B,10,d[57]),W=s(W,H,P,V,O,15,d[58]),V=s(V,W,H,P,F,21,d[59]),P=s(P,V,W,H,k,6,d[60]),H=s(H,P,V,W,x,10,d[61]),W=s(W,H,P,V,S,15,d[62]),V=s(V,W,H,P,C,21,d[63]),E[0]=E[0]+P|0,E[1]=E[1]+V|0,E[2]=E[2]+W|0,E[3]=E[3]+H|0},_doFinalize:function(){var c=this._data,f=c.words,m=this._nDataBytes*8,y=c.sigBytes*8;f[y>>>5]|=128<<24-y%32;var D=u.floor(m/4294967296),E=m;f[(y+64>>>9<<4)+15]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,f[(y+64>>>9<<4)+14]=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,c.sigBytes=(f.length+1)*4,this._process();for(var b=this._hash,g=b.words,S=0;S<4;S++){var T=g[S];g[S]=(T<<8|T>>>24)&16711935|(T<<24|T>>>8)&4278255360}return b},clone:function(){var c=p.clone.call(this);return c._hash=this._hash.clone(),c}});function t(c,f,m,y,D,E,b){var g=c+(f&m|~f&y)+D+b;return(g<>>32-E)+f}function r(c,f,m,y,D,E,b){var g=c+(f&y|m&~y)+D+b;return(g<>>32-E)+f}function l(c,f,m,y,D,E,b){var g=c+(f^m^y)+D+b;return(g<>>32-E)+f}function s(c,f,m,y,D,E,b){var g=c+(m^(f|~y))+D+b;return(g<>>32-E)+f}v.MD5=p._createHelper(e),v.HmacMD5=p._createHmacHelper(e)}(Math),i.MD5})})(Kn);var As=Kn.exports;const di=Zr(As),xs=window.innerWidth<=600?12:void 0;function _n(L){return Object.prototype.toString.call(L)==="[object Object]"}class K extends dt.Component{static DIFFERENT_VALUE="__different__";static DIFFERENT_LABEL="ra___different__";static NONE_VALUE="";static NONE_LABEL="ra_none";defaultValue;isError;lang;defaultSendToDone;sendToTimeout;noPlaceRequired;constructor(n){super(n),this.state={confirmDialog:!1,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},this.isError={},n.schema&&(n.custom?this.defaultValue=n.schema.defaultFunc?this.executeCustom(n.schema.defaultFunc,n.data,n.customObj,n.oContext.instanceObj,n.arrayIndex,n.globalData):n.schema.default:n.schema.type!=="state"&&(this.defaultValue=n.schema.defaultFunc?this.execute(n.schema.defaultFunc,n.schema.default,n.data,n.arrayIndex,n.globalData):n.schema.default)),this.lang=j.I18n.getLanguage()}componentDidMount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr,this.onUpdate);const n=["select","autocomplete","autocompleteSendTo"];if(this.defaultValue!==void 0){const i=K.getValue(this.props.data,this.props.attr);(i===void 0||n.includes(this.props.schema.type)&&(i===""||i===null))&&setTimeout(()=>{this.props.custom?this.props.onChange(this.props.attr,this.defaultValue,()=>setTimeout(()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data),100)):(K.setValue(this.props.data,this.props.attr,this.defaultValue),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)))},100)}else this.props.schema.defaultSendTo&&this.sendTo()}sendTo(){if(this.props.alive){this.defaultSendToDone=!0;let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}else n={attr:this.props.attr,value:K.getValue(this.props.data,this.props.attr)};n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.defaultSendTo,n).then(i=>{i!=null&&(this.props.custom?this.props.onChange(this.props.attr,i,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)):(K.setValue(this.props.data,this.props.attr,i),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data))))})}else this.defaultSendToDone=!1,this.props.schema.allowSaveWithError||this.onError(this.props.attr,j.I18n.t("ra_Instance %s is not alive",this.props.oContext.instance.toString()))}componentWillUnmount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr),this.sendToTimeout&&(clearTimeout(this.sendToTimeout),this.sendToTimeout=null)}onUpdate=n=>{const i=K.getValue(n||this.props.data,this.props.attr)||"";this.state.value!==i?this.setState({value:i}):this.forceUpdate()};static getValue(n,i){if(typeof i=="string")return K.getValue(n,i.split("."));if(i.length===1)return n[i[0]];const u=i.shift();if(typeof u=="string"&&typeof n[u]=="object")return K.getValue(n[u],i)}static setValue(n,i,u){if(typeof i=="string"){K.setValue(n,i.split("."),u);return}if(i.length===1)u===null?delete n[i[0]]:n[i[0]]=u;else{const v=i.shift();if(typeof v!="string")return;(!n[v]||typeof n[v]=="object")&&(n[v]=n[v]||{}),K.setValue(n[v],i,u)}}getText(n,i){if(!n)return"";if(typeof n=="string"){const u=i?n:j.I18n.t(n);return u.includes("${")?this.getPattern(u,null,i):u}return _n(n)?n.func?typeof n.func=="object"?this.getPattern(n.func[this.lang]||n.func.en||"",null,!0):this.getPattern(n.func,null,i):n[this.lang]||n.en||"":n.toString()}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:u=>this.setState({confirmDialog:!1},()=>{if(u){if(this.state.confirmCallback){const o=this.state.confirmCallback;this.setState({confirmCallback:null},()=>o(!0));return}const v=JSON.parse(JSON.stringify(this.props.data));this.state.confirmDepAttr&&K.setValue(v,this.state.confirmDepAttr,this.state.confirmDepNewValue),K.setValue(v,this.state.confirmAttr,this.state.confirmNewValue),this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null},()=>this.props.onChange(v))}else{const v=this.state.confirmCallback;this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},()=>{v&&v(!1)})}})})}getIcon(n){n=n||this.props.schema.icon;let i=null;return n==="auth"?i=M.createElement(Z.Key,null):n==="send"?i=M.createElement(Z.Send,null):n==="web"?i=M.createElement(Z.Public,null):n==="warning"?i=M.createElement(Z.Warning,null):n==="error"?i=M.createElement(Z.Error,null):n==="info"?i=M.createElement(Z.Info,null):n==="search"?i=M.createElement(Z.Search,null):n==="book"?i=M.createElement(Z.MenuBook,null):n==="help"?i=M.createElement(Z.Help,null):n==="upload"?i=M.createElement(Z.UploadFile,null):n==="edit"?i=M.createElement(Z.Edit,null):n==="user"?i=M.createElement(Z.Person,null):n==="group"?i=M.createElement(Z.Group,null):n==="delete"?i=M.createElement(Z.Delete,null):n==="refresh"?i=M.createElement(Z.Refresh,null):n==="add"?i=M.createElement(Z.Add,null):n==="unpair"?i=M.createElement(Z.LinkOff,null):n==="pair"?i=M.createElement(Z.Link,null):n==="save"?i=M.createElement(Z.Save,null):n==="open"?i=M.createElement(Z.OpenInNew,null):n&&((n.endsWith(".png")||n.endsWith(".svg")||n.endsWith(".jpg"))&&!n.startsWith("http://")&&!n.startsWith("https://")&&(n=`./adapter/${this.props.oContext.adapterName}/${n}`),i=M.createElement(j.Icon,{src:n,style:{width:22,height:22}})),i}onChangeAsync(n,i){return new Promise(u=>{const v=this.onChange(n,i,u);v instanceof Promise&&v.catch(o=>console.error(`Cannot set value: ${o}`))})}onChange(n,i,u){const v=JSON.parse(JSON.stringify(this.props.data));if(K.setValue(v,n,i),this.props.schema.confirm&&this.execute(this.props.schema.confirm.condition,!1,v,this.props.arrayIndex,this.props.globalData))return new Promise(h=>{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmData:null},()=>{typeof u=="function"?u():h()})});if(this.props.schema.confirmDependsOn)for(let h=0;h{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmDepNewValue:a,confirmDepAttr:p.attr,confirmData:p.confirm},()=>{typeof u=="function"?u():d()})})}}const o=[];if(this.props.schema.onChangeDependsOn)for(let h=0;hu&&u()),o!=null&&o.length&&o.forEach((h,p)=>setTimeout(()=>this.props.onChange(h,K.getValue(v,h)),p*50))):this.props.onChange(v,void 0,()=>{o.length&&this.props.oContext.forceUpdate(o,v),u&&u()}),Promise.resolve()}execute(n,i,u,v,o){let h;if(_n(n))h=n.func;else if(typeof n=="string")h=n;else return n;if(!h)return i;try{return new Function("data","originalData","_system","_alive","_common","_socket","_instance","arrayIndex","globalData","_changed",h.includes("return")?h:`return ${h}`)(u||this.props.data,this.props.originalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.oContext.instance,v,o,this.props.changed)}catch(p){return console.error(`Cannot execute ${JSON.stringify(n)}: ${p}`),i}}executeCustom(n,i,u,v,o,h){let p;if(_n(n))p=n.func;else if(typeof n=="string")p=n;else return n;if(!p)return null;try{return new Function("data","originalData","_system","instanceObj","customObj","_socket","arrayIndex","globalData","_changed",p.includes("return")?p:`return ${p}`)(i||this.props.data,this.props.originalData,this.props.oContext.systemConfig,v,u,this.props.oContext.socket,o,h,this.props.changed)}catch(a){return console.error(`Cannot execute ${p}: ${a}`),null}}calculate(n){let i,u,v,o;return this.props.custom?(i=n.validator?!this.executeCustom(n.validator,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?u=!0:u=n.disabled?this.executeCustom(n.disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.executeCustom(n.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,o=n.defaultFunc?this.executeCustom(n.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):n.default):(i=n.validator?!this.execute(n.validator,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?u=!0:u=n.disabled?this.execute(n.disabled,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.execute(n.hidden,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,o=n.defaultFunc?this.execute(n.defaultFunc,n.default,this.props.data,this.props.arrayIndex,this.props.globalData):n.default),{error:i,disabled:u,hidden:v,defaultValue:o}}onError(n,i){i?this.isError[n]=i:delete this.isError[n],this.props.onError&&this.props.onError(n,i)}renderItem(n,i,u){return this.getText(this.props.schema.label)||this.getText(this.props.schema.text)}renderHelp(n,i,u){return i?M.createElement("a",{href:i,target:"_blank",rel:"noreferrer",style:{color:this.props.oContext.themeType==="dark"?"#a147ff":"#5b238f",textDecoration:"underline"}},this.getText(n,u)):(n=this.getText(n,u)||"",n&&(n.includes("
")||n.includes(""))?j.Utils.renderTextWithA(n):n)}static escapeString(n,i){return typeof n!="string"?"":(n=n.replace(/`/g,"\\`"),n=n.replace(/\${([^}]+)}/g,(u,v)=>{if(v&&typeof v=="string"&&v.startsWith("data.")){const o=K.getValue(i,v.replace(/^data\./,""));if(typeof o=="string"&&o.includes('"'))return`\${${v}.replace(/"/g, '\\\\"')}`}return u}),n)}getPattern(n,i,u){if(i=i||this.props.data,!n)return"";let v;typeof n=="object"?n.func?v=n.func:(console.log(`Object must be stringified: ${JSON.stringify(n)}`),v=JSON.stringify(n)):v=n;try{if(this.props.custom)return new Function("data","originalData","arrayIndex","globalData","_system","instanceObj","customObj","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.oContext.instanceObj,this.props.customObj,this.props.oContext.socket,this.props.changed);const h=new Function("data","originalData","arrayIndex","globalData","_system","_alive","_common","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.changed);return u?h:j.I18n.t(h)}catch(o){return console.error(`Cannot execute ${v}: ${o}`),v}}render(){const n=this.props.schema;if(!n||this.props.expertMode===!1&&n.expertMode)return null;this.props.alive&&this.defaultSendToDone===!1&&(this.sendToTimeout=setTimeout(()=>{this.sendToTimeout=null,this.sendTo()},200));const{error:i,disabled:u,hidden:v,defaultValue:o}=this.calculate(n);if(v){if(Object.keys(this.isError).length&&(setTimeout(a=>Object.keys(a).forEach(d=>this.props.onError(d)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}),n.hideOnlyControl){const a=M.createElement(N.Grid2,{size:{xs:n.xs||xs,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}});return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),a):a}return null}n.validatorNoSaveOnError&&(i&&!Object.keys(this.isError).length?(this.isError={[this.props.attr]:n.validatorErrorText?j.I18n.t(n.validatorErrorText):!0},setTimeout(a=>Object.keys(a).forEach(d=>this.props.onError(d,a[d])),100,JSON.parse(JSON.stringify(this.isError)))):!i&&Object.keys(this.isError).length&&(setTimeout(a=>Object.keys(a).forEach(d=>this.props.onError(d)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}));const h=this.renderItem(i,u||this.props.commandRunning||this.props.disabled,o);if(this.noPlaceRequired)return h;const p=M.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",width:n.type==="divider"||n.type==="header"?n.width||"100%":void 0,...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}},this.props.schema.defaultSendTo&&this.props.schema.button?M.createElement(N.Grid2,{container:!0,style:{width:"100%"}},M.createElement(N.Grid2,{flex:1},h),M.createElement(N.Grid2,null,M.createElement(N.Button,{disabled:u,variant:"outlined",onClick:()=>this.sendTo(),title:this.props.schema.buttonTooltip?this.getText(this.props.schema.buttonTooltip,this.props.schema.buttonTooltipNoTranslation):j.I18n.t("ra_Request data by instance")},this.getText(this.props.schema.button)))):h);return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),this.renderDialogConfirm(),p):this.state.confirmDialog?M.createElement(M.Fragment,null,this.renderDialogConfirm(),p):p}}const Ge={fullWidth:{width:"100%"},accordionSummary:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"}),accordionTitle:{},toolbar:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)",borderRadius:"3px"}),tooltip:{pointerEvents:"none"}};class $s extends K{typingTimer=null;constructor(n){super(n),this.props.schema.items=this.props.schema.items||[]}componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr)||[];Array.isArray(n)||(n=[]),this.setState({value:n,activeIndex:-1,iteration:0})}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),super.componentWillUnmount()}itemAccordion(n,i){const{value:u}=this.state,{schema:v}=this.props,o={type:"panel",items:v.items.reduce((h,p)=>(h[p.attr]=p,h),{}),style:{marginLeft:"-8px",marginTop:"10px",marginBottom:"10px"}};return M.createElement($t,{oContext:this.props.oContext,index:i+this.state.iteration,arrayIndex:i,changed:this.props.changed,expertMode:this.props.expertMode,globalData:this.props.data,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:n,custom:!0,schema:o,originalData:this.props.originalData,onChange:(h,p)=>{const a=JSON.parse(JSON.stringify(u));a[i][h]=p,this.setState({value:a},()=>this.onChangeWrapper(a))},onError:(h,p)=>this.onError(h,p),table:this.props.table})}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),u=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof u[this.props.schema.clone]=="string"){let v=1,o=u[this.props.schema.clone];const h=o.match(/(\d+)$/);for(h?(o=o.replace(h[0],""),v=parseInt(h[0],10)+1):o+="_";i.find(p=>p[this.props.schema.clone]===o+v.toString());)v++;u[this.props.schema.clone]=`${u[this.props.schema.clone]}_${v}`}i.splice(n,0,u),this.setState({value:i,activeIndex:-1,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onChangeWrapper=n=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout(i=>{this.typingTimer=null;const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>this.onError(v))},300,n)};onAdd=()=>{const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),u=n.items&&n.items.reduce((v,o)=>{let h;return o.defaultFunc?this.props.custom?h=o.defaultFunc?this.executeCustom(o.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:h=o.defaultFunc?this.execute(o.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:h=o.default===void 0?null:o.default,v[o.attr]=h,v},{});i.push(u),this.setState({value:i,activeIndex:i.length-1},()=>this.onChangeWrapper(i))};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n-1,0,u);const v=this.state.activeIndex-1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n+1,0,u);const v=this.state.activeIndex+1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}renderItem(){const{schema:n}=this.props,{value:i}=this.state;return i?M.createElement(N.Paper,null,n.label||!n.noDelete?M.createElement(N.Toolbar,{variant:"dense"},n.label?M.createElement(N.Typography,{variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)):null,n.noDelete?null:M.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},M.createElement(Z.Add,null))):null,i.map((u,v)=>M.createElement(N.Accordion,{key:`${u}_${v}`,expanded:this.state.activeIndex===v,onChange:(o,h)=>this.setState({activeIndex:h?v:-1})},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,Ge.fullWidth,Ge.accordionSummary)},M.createElement(N.Typography,{style:Ge.accordionTitle},u[n.titleAttr])),M.createElement(N.AccordionDetails,{style:{...n.style,...this.props.oContext.themeType?n.darkStyle:void 0}},this.itemAccordion(i[v],v),M.createElement(N.Toolbar,{sx:Ge.toolbar},v?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(v)},M.createElement(Z.ArrowUpward,null))):M.createElement("div",{style:Ge.buttonEmpty}),vthis.onMoveDown(v)},M.createElement(Z.ArrowDownward,null))):M.createElement("div",{style:Ge.buttonEmpty}),n.noDelete?null:M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(v)},M.createElement(Z.Delete,null))),n.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(v)},M.createElement(Z.ContentCopy,null))):null)))),!n.noDelete&&i.length>0?M.createElement(N.Toolbar,{variant:"dense",sx:Ge.rootTool},M.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},M.createElement(Z.Add,null))):null,n.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null):null}}const pi={root:{width:"100%"},notAlive:{color:"#a30000"}};class Ts extends K{componentDidMount(){super.componentDidMount();const n=this.getInstance();this.props.oContext.socket.getState(`${n}.alive`).then(i=>this.setState({alive:!!(i&&i.val),instance:n}))}getInstance(){let n=this.props.schema.instance||`${this.props.oContext.adapterName}.${this.props.oContext.instance}`;return n.includes("${")&&(n=this.getPattern(n,null,!0)),n&&!n.startsWith("system.adapter.")&&(n=`system.adapter.${n}`),n}renderItem(){if(this.getInstance()!==this.state.instance&&setTimeout(()=>{const i=this.getInstance();i?this.props.oContext.socket.getState(`${i}.alive`).then(u=>this.setState({alive:!!(u&&u.val),instance:i})):this.setState({alive:null,instance:i})},200),this.state.alive!==!1&&this.state.alive!==!0)return null;const n=this.state.instance.replace(/^system.adapter./,"");return M.createElement("div",{style:{...pi.root,...this.state.alive?void 0:pi.notAlive}},this.state.alive?this.props.schema.textAlive!==void 0?this.props.schema.textAlive?j.I18n.t(this.props.schema.textAlive,n):"":j.I18n.t("ra_Instance %s is alive",n):this.props.schema.textNotAlive!==void 0?this.props.schema.textNotAlive?j.I18n.t(this.props.schema.textNotAlive,n):"":j.I18n.t("ra_Instance %s is not alive",n))}}class _s extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options.map(u=>typeof u=="string"?{label:u,value:u}:JSON.parse(JSON.stringify(u)));Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}renderItem(n,i){if(!this.state.selectOptions)return null;let u;const v=JSON.parse(JSON.stringify(this.state.selectOptions));return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE?([...this.state.value].filter(h=>!v.find(p=>typeof p=="object"?p.value===h:p===h)).forEach(h=>v.push({label:h.toString(),value:h})),u={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(u)):(u=this.state.value!==null&&this.state.value!==void 0&&v.find(h=>typeof h=="object"?h.value==this.state.value:h==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!u&&this.props.schema.freeSolo&&(u={value:this.state.value,label:this.state.value},v.push(u))),M.createElement(N.Autocomplete,{fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,value:u,options:v,isOptionEqualToValue:(h,p)=>h.value===p.value,filterOptions:(h,p)=>{const a=h.filter(d=>p.inputValue===""?!0:d.label.toLowerCase().includes(p.inputValue.toLowerCase())||d.value.toLowerCase().includes(p.inputValue.toLowerCase()));return this.props.schema.freeSolo&&p.inputValue!==""&&a.push({label:p.inputValue,value:p.inputValue}),a},onInputChange:h=>{if(!h||!this.props.schema.freeSolo)return;const p=h.target.value;p!==this.state.value&&this.setState({value:p},()=>this.onChange(this.props.attr,p))},onChange:(h,p)=>{const a=typeof p=="object"?p?p.value:"":p;a!==this.state.value&&this.setState({value:a},()=>this.onChange(this.props.attr,a))},getOptionLabel:h=>typeof h=="object"?(h==null?void 0:h.label)??"":"",renderInput:h=>M.createElement(N.TextField,{variant:"standard",...h,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})})}}class ks extends K{initialized=!1;localContext;askInstance(){const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options?this.props.schema.options.map(u=>typeof u=="string"?{label:u,value:u}:JSON.parse(JSON.stringify(u))):[];if(this.props.alive){let u=this.props.schema.data;if(u===void 0&&this.props.schema.jsonData){const v=this.getPattern(this.props.schema.jsonData,null,!0);try{typeof v=="string"&&(u=JSON.parse(v))}catch{console.error(`Cannot parse json data: ${JSON.stringify(u)}`)}}u===void 0&&(u=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",u).then(v=>{v&&Array.isArray(v)&&v.forEach(o=>i.push(typeof o=="string"?{label:o,value:o}:JSON.parse(JSON.stringify(o)))),Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})})}else Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(n,i){if(this.props.alive){const h=this.getContext();(h!==this.localContext||!this.initialized)&&(this.localContext=h,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}let u;const v=this.state.selectOptions?JSON.parse(JSON.stringify(this.state.selectOptions)):[];return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_LABEL?([...this.state.value].filter(h=>!v.find(p=>p.value===h)).forEach(h=>v.push({label:h.toString(),value:h})),u={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(u)):(u=this.state.value!==null&&this.state.value!==void 0&&v.find(h=>h.value==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!u&&this.props.schema.freeSolo&&(u={value:this.state.value,label:this.state.value},v.push(u)),u=u||null),v.length?M.createElement(N.Autocomplete,{value:u,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,options:v,isOptionEqualToValue:(h,p)=>h.value===p.value,filterOptions:(h,p)=>{const a=h.filter(d=>p.inputValue===""?!0:d.label.toLowerCase().includes(p.inputValue.toLowerCase())||d.value.toLowerCase().includes(p.inputValue.toLowerCase()));return this.props.schema.freeSolo&&p.inputValue!==""&&a.push({label:p.inputValue,value:p.inputValue}),a},getOptionLabel:h=>(h==null?void 0:h.label)??"",onInputChange:h=>{if(!h||!this.props.schema.freeSolo)return;const p=h.target.value;p!==this.state.value&&this.setState({value:p},()=>this.onChange(this.props.attr,p))},onChange:(h,p)=>{const a=typeof p=="object"?p?p.value:"":p;a!==this.state.value&&this.setState({value:a},()=>this.onChange(this.props.attr,a))},renderInput:h=>M.createElement(N.TextField,{variant:"standard",...h,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})}):M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},onChange:h=>{const p=h.target.value;this.setState({value:p},()=>this.onChange(this.props.attr,(p||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const kn={fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Ms extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"";this.setState({value:u,showDialog:!1})}renderItem(n,i){const{schema:u,attr:v}=this.props,{value:o,showDialog:h}=this.state;return M.createElement(N.FormControl,{style:kn.fullWidth,variant:"standard"},u.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(u.label)):null,M.createElement("div",{style:kn.flex},M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:o??"",error:!!n,disabled:i,placeholder:this.getText(u.placeholder),label:this.getText(u.label),helperText:this.renderHelp(u.help,u.helpLink,u.noTranslation),onChange:p=>{const a=p.target.value;this.setState({value:a},()=>this.onChange(v,a))}}),M.createElement(N.Button,{color:"grey",disabled:i,style:kn.button,size:"small",variant:"outlined",onClick:()=>this.setState({showDialog:!0})},"...")),h?M.createElement(j.DialogCron,{title:j.I18n.t("ra_Define schedule"),simple:u.simple,complex:u.complex,cron:o,onClose:()=>this.setState({showDialog:!1}),cancel:j.I18n.t("ra_Cancel"),ok:j.I18n.t("ra_Ok"),theme:this.props.oContext.theme,onOk:p=>this.setState({showDialog:!1,value:p},()=>this.onChange(v,p))}):null)}}class Ls extends K{async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),u=(await this.props.oContext.socket.getCertificates()).filter(v=>{const o=this.props.attr.toLowerCase();return o.includes(v.type)||v.type==="public"&&o.includes("cert")||v.type==="private"&&(o.includes("priv")||o.includes("key"))?!0:!!(v.type==="chained"&&(o.includes("chain")||o.includes("ca")))}).map(v=>({label:v.name,value:v.name}));u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})}renderItem(n,i){var v,o;if(!this.state.selectOptions)return null;const u=(v=this.state.selectOptions)==null?void 0:v.find(h=>h.value===this.state.value);return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>this.getText(u==null?void 0:u.label,this.props.schema.noTranslation!==!1),onChange:h=>this.setState({value:h.target.value},()=>this.onChange(this.props.attr,this.state.value))},(o=this.state.selectOptions)==null?void 0:o.map(h=>M.createElement(N.MenuItem,{key:h.value,value:h.value,style:h.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(h.label,this.props.schema.noTranslation!==!1)))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const zt={fullWidth:{width:"100%"},leWidth:{width:620,marginBottom:10},certWidth:{width:200,marginRight:10}};class Is extends K{async componentDidMount(){var p;super.componentDidMount();const n=await this.props.oContext.socket.getCertificates(),i=[],u=[],v=[];let o=[];const h=await this.props.oContext.socket.getObject("system.certificates");(p=h==null?void 0:h.native)!=null&&p.collections?o=Object.keys(h.native.collections):o=null,n.forEach(a=>{a.type==="public"?i.push({label:a.name,value:a.name}):a.type==="private"?u.push({label:a.name,value:a.name}):a.type==="chained"?v.push({label:a.name,value:a.name}):(i.push({label:a.name,value:a.name}),u.push({label:a.name,value:a.name}),v.push({label:a.name,value:a.name}))}),i.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),v.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({certsPublicOptions:i,certsChainOptions:v,certsPrivateOptions:u,collectionsOptions:o})}renderItem(n,i){var e,t,r,l,s,c,f;if(!this.state.certsPublicOptions||!this.state.certsPrivateOptions||!this.state.certsChainOptions)return null;const u=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString(),v=K.getValue(this.props.data,this.props.schema.certPublicName||"certPublic"),o=K.getValue(this.props.data,this.props.schema.certPrivateName||"certPrivate"),h=K.getValue(this.props.data,this.props.schema.certChainedName||"certChained"),p=(e=this.state.certsPublicOptions)==null?void 0:e.find(m=>m.value===v),a=(t=this.state.certsPrivateOptions)==null?void 0:t.find(m=>m.value===o),d=(r=this.state.certsChainOptions)==null?void 0:r.find(m=>m.value===h);return M.createElement("div",{style:zt.fullWidth},this.state.collectionsOptions?M.createElement(N.FormControl,{style:zt.leWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},"Let's encrypt"),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:u,onChange:m=>this.onChange(this.props.schema.leCollectionName||"leCollection",m.target.value==="false"?!1:m.target.value==="true"?!0:m.target.value)},M.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),M.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(l=this.state.collectionsOptions)==null?void 0:l.map(m=>M.createElement(N.MenuItem,{key:m,value:m},m)))):null,this.state.collectionsOptions?M.createElement("br",null):null,this.state.collectionsOptions&&u!=="false"?M.createElement("div",null,j.I18n.t("ra_Fallback custom certificates")):null,M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Public certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:v||"",renderValue:()=>this.getText(p==null?void 0:p.label),onChange:m=>this.onChange(this.props.schema.certPublicName||"certPublic",m.target.value)},(s=this.state.certsPublicOptions)==null?void 0:s.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Private certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:o||"",renderValue:()=>this.getText(a==null?void 0:a.label),onChange:m=>this.onChange(this.props.schema.certPrivateName||"certPrivate",m.target.value)},(c=this.state.certsPrivateOptions)==null?void 0:c.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Chained certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:h||"",renderValue:()=>this.getText(d==null?void 0:d.label),onChange:m=>this.onChange(this.props.schema.certChainedName||"certChained",m.target.value)},(f=this.state.certsChainOptions)==null?void 0:f.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))))}}class Fs extends K{async componentDidMount(){var u;super.componentDidMount();let n;const i=await this.props.oContext.socket.getObject("system.certificates");(u=i==null?void 0:i.native)!=null&&u.collections?n=Object.keys(i.native.collections):n=[],this.setState({collectionsOptions:n})}renderItem(n,i){var v;if(!this.state.collectionsOptions)return null;const u=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString();return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:u,onChange:o=>this.onChange(this.props.schema.leCollectionName||"leCollection",o.target.value==="false"?!1:o.target.value==="true"?!0:o.target.value)},M.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),M.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(v=this.state.collectionsOptions)==null?void 0:v.map(o=>M.createElement(N.MenuItem,{key:o,value:o},o))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const We={fullWidth:{width:"100%"},licLabel:{fontWeight:"bold",minWidth:100,marginRight:10,textTransform:"capitalize",display:"inline-block"},errorTitle:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020"}),okTitle:L=>({color:L.palette.mode==="dark"?"#6fd56f":"#007c00"}),errorText:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020",mb:"30px"})};class ct extends K{componentDidMount(){super.componentDidMount(),this.setState({_error:"",running:!1,showLicenseData:null,foundSuitableLicense:!1,licenseOfflineCheck:!1,result:null,allLicenses:null,askForUpdate:!1,showLinkToProfile:!1})}renderErrorDialog(){if(this.state._error&&!this.state.showLicenseData){let n=this.state._error;return this.state.allLicenses&&(n=[M.createElement("div",{key:"error"},n)],n.push(M.createElement(N.Button,{key:"button",variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},j.I18n.t("iobroker.net"))),this.state.allLicenses.length?n.push(M.createElement(N.TableContainer,{key:"table"},M.createElement(N.Table,{size:"small"},M.createElement(N.TableHead,null,M.createElement(N.TableRow,null,M.createElement(N.TableCell,null,j.I18n.t("ra_Product")),M.createElement(N.TableCell,null,j.I18n.t("ra_Version")),M.createElement(N.TableCell,null,"UUID"),M.createElement(N.TableCell,null,j.I18n.t("ra_ValidTill")),M.createElement(N.TableCell,null,j.I18n.t("ra_Commercial")),M.createElement(N.TableCell,null,"ID"))),M.createElement(N.TableBody,null,this.state.allLicenses.map(i=>M.createElement(N.TableRow,{key:i.id},M.createElement(N.TableCell,{sx:i.validName?null:We.errorText},i.license.product),M.createElement(N.TableCell,{sx:i.validVersion?null:We.errorText},i.license.version),M.createElement(N.TableCell,{sx:i.validUuid?null:We.errorText},i.license.uuid||"--"),M.createElement(N.TableCell,{sx:i.validTill?null:We.errorText},i.license.validTill&&i.license.validTill!=="0000-00-00 00:00:00"?new Date(i.license.validTill).toLocaleDateString():"--"),M.createElement(N.TableCell,null,i.license.invoice!=="free"?i.license.invoice==="MANUALLY_CREATED"?"✓":i.license.invoice:"-"),M.createElement(N.TableCell,null,i.id))))))):(n.push(M.createElement("div",{key:"text1"},j.I18n.t("ra_No one license found in license manager"))),n.push(M.createElement("div",{key:"text2"},j.I18n.t("ra_Please create license"))))),M.createElement(N.Dialog,{open:!0,maxWidth:"xl",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClick:()=>this.setState({_error:"",allLicenses:null})},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Error")),M.createElement(N.DialogContent,null,M.createElement(N.DialogContentText,null,n)),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({_error:"",allLicenses:null}),color:"primary",autoFocus:!0,startIcon:M.createElement(Z.Check,null)},j.I18n.t("ra_Ok"))))}return null}renderMessageDialog(){if(this.state.showLicenseData){const n=[],i=this.state.showLicenseData;return Object.keys(i).forEach(u=>{if(!(i[u]===null||i[u]===void 0))if(typeof i[u]=="object"){const v=i[u];Object.keys(v).forEach(o=>{v[o]!==null&&v[o]!==void 0&&(typeof v[o]=="object"?n.push(M.createElement("div",{key:o},M.createElement("div",{style:We.licLabel},o,":"),JSON.stringify(v[o],null,2))):n.push(M.createElement("div",{key:o},M.createElement("div",{style:We.licLabel},u," -",o,":"),v[o].toString())))})}else n.push(M.createElement("div",{key:u},M.createElement("div",{style:We.licLabel},u.replace(/_/g," "),":"),i[u].toString()))}),n.push(M.createElement("div",{key:"checked"},M.createElement("div",{style:We.licLabel},j.I18n.t("ra_Checked"),":"),this.state.licenseOfflineCheck?j.I18n.t("ra_locally"):j.I18n.t("ra_via internet"))),M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showLicenseData:null})},M.createElement(N.DialogTitle,null,M.createElement(N.Box,{component:"span",sx:this.state.result?We.okTitle:We.errorTitle},j.I18n.t("ra_License %s",this.state.result?"OK":"INVALID"))),M.createElement(N.DialogContent,null,this.state.showLinkToProfile?M.createElement(N.Button,{variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},"https://iobroker.net"):null,this.state._error?M.createElement(N.Box,{component:"div",sx:We.errorText},this.state._error):null,n),M.createElement(N.DialogActions,null,M.createElement(N.Button,{onClick:()=>this.setState({showLicenseData:null,_error:""}),color:"primary",variant:"contained"},j.I18n.t("ra_Close"))))}return null}static parseJwt(n){const u=n.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),v=decodeURIComponent(atob(u).split("").map(o=>`%${`00${o.charCodeAt(0).toString(16)}`.slice(-2)}`).join(""));try{return JSON.parse(v)}catch{return null}}static isVersionValid(n,i,u,v){if(!i||!n)return!0;let o=!0;const[h]=n.split(".");return i.startsWith(">=")?o=parseInt(h,10)>=parseInt(i.substring(2,10)):i.startsWith("<=")?o=parseInt(h,10)<=parseInt(i.substring(2,10)):i.startsWith(">")?o=parseInt(h,10)>parseInt(i.substring(1,10)):i.startsWith("<")?o=parseInt(h,10){const l=!r.validTill||r.validTill==="0000-00-00 00:00:00"||new Date(r.validTill).getTime()>d,s=(r.product||"").split("."),c=s[1]===n||n==="vis-2"&&s[1]==="vis",f=!e||!r.uuid||r.uuid===e,m=ct.isVersionValid(t,r.version,r.invoice,n);(!a||r.invoice!=="free")&&l&&c&&f&&m&&(a=r),u.push({id:r.id,validName:c,validUuid:f,validVersion:m,validTill:l,license:r})}),a&&(u.find(r=>r.id===a.id).used=!0)}return u}async checkLicense(n,i){var p,a,d;let u;if(this.props.schema.uuid){const e=await this.props.oContext.socket.getObject("system.meta.uuid");u=(p=e==null?void 0:e.native)==null?void 0:p.uuid}let v;if(this.props.schema.version){const e=await this.props.oContext.socket.getObject(`system.adapter.${i}`);v=(a=e==null?void 0:e.common)==null?void 0:a.version}const o=new AbortController;let h=setTimeout(()=>{h=null,o.abort()},5e3);try{const e=await window.fetch("https://iobroker.net/api/v1/public/cert/",{method:"POST",body:JSON.stringify({json:n,uuid:u}),headers:{"Content-Type":"text/plain"},signal:o.signal});h&&clearTimeout(h);const t=await e.text();let r;try{r=JSON.parse(t)}catch{}if(r!=null&&r.error)try{const l=ct.parseJwt(n),s=j.I18n.t(`ra_${l.error||r.error||"Unknown error"}`).replace(/^ra_/,"");return this.setState({_error:s,licenseOfflineCheck:!1,showLicenseData:l,result:!1,running:!1})}catch{return console.log("Cannot parse license"),this.setState({_error:r.error,result:!1,running:!1})}else{let l=null;try{l=ct.parseJwt(n)}catch{}if(r){const s=r.validTill||r.valid_till;if(s&&s!=="0000-00-00 00:00:00"&&new Date(s).getTime(){if(n){this.setState({askForUpdate:!1});try{await this.props.oContext.socket.updateLicenses(null,null)}catch(i){window.alert(j.I18n.t("ra_Cannot read licenses: %s",i));return}await this._onClick(!0)}else this.setState({askForUpdate:!1,running:!1})}}):null}async _onClick(n){const i=this.props.oContext.adapterName==="vis-2"?"vis":this.props.oContext.adapterName;this.setState({running:!0});let u,v;if(this.props.data.useLicenseManager){if(v=await this.findInLicenseManager(i),u=v.find(o=>o.used),u&&(u=u.license.json),!u&&!n){this.setState({askForUpdate:!0});return}}else u=this.props.data.license;u?await this.checkLicense(u,i):this.props.data.useLicenseManager?this.setState({_error:j.I18n.t("ra_Suitable license not found in license manager"),result:!1,running:!1,allLicenses:v}):this.setState({_error:j.I18n.t("ra_Please enter the license"),result:!1,running:!1})}renderItem(){return M.createElement("div",{style:We.fullWidth},M.createElement(N.Button,{variant:this.props.schema.variant||"outlined",color:this.props.schema.color||"primary",style:We.fullWidth,disabled:!this.props.data.license&&!this.props.data.useLicenseManager||this.state.running,startIcon:M.createElement(Z.Send,null),onClick:()=>this._onClick()},this.state.running?M.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label||"ra_Check license",this.props.schema.noTranslation)),this.renderMessageDialog(),this.renderErrorDialog(),this.renderAskForUpdate())}}class Os extends K{renderItem(n,i){const u=K.getValue(this.props.data,this.props.attr),v=Array.isArray(u);return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},M.createElement(N.FormControlLabel,{onClick:o=>{if(o.preventDefault(),o.stopPropagation(),!i){const h=this.onChange(this.props.attr,!u);h instanceof Promise&&h.catch(p=>console.error(`Cannot set value: ${p}`))}},control:M.createElement(N.Checkbox,{indeterminate:v,checked:!!u,onChange:o=>{let h;v?h=this.onChange(this.props.attr,!0):h=this.onChange(this.props.attr,o.target.checked),h instanceof Promise&&h.catch(p=>console.error(`Cannot set value: ${p}`))},disabled:i||this.props.schema.readOnly}),label:this.getText(this.props.schema.label)}),M.createElement(N.FormHelperText,{style:{color:"red"}},n?this.props.schema.validatorErrorText?j.I18n.t(this.props.schema.validatorErrorText):j.I18n.t("ra_Error"):null),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Rs={standard:N.Input,filled:is,outlined:N.OutlinedInput},Ns=L=>{const n=L.palette.mode==="light",i=n?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{},inputRoot:{display:"inline-flex",flexWrap:"wrap",flex:1,marginTop:0,minWidth:70,"&.mui-variant-outlined,&.mui-variant-filled":{boxSizing:"border-box"},"&.mui-variant-outlined":{paddingTop:"14px"},"&.mui-variant-filled":{paddingTop:"28px"}},input:{display:"inline-block",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",appearance:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",float:"left",flex:1},chipContainer:{display:"flex",flexFlow:"row wrap",alignItems:"center",cursor:"text",marginBottom:"-2px",minHeight:40},outlined:{"& input":{height:16,paddingTop:"4px",paddingBottom:"12px",marginTop:"4px",marginBottom:"4px"}},standard:{marginTop:"18px"},filled:{"& input":{height:22,marginBottom:"4px",marginTop:"4px",paddingTop:0},"$marginDense & input":{height:26}},labeled:{},label:{top:4,"&$outlined&:not($labelShrink)":{top:2,"$marginDense &":{top:5}},"&$filled&:not($labelShrink)":{top:15,"$marginDense &":{top:20}}},labelShrink:{top:0},helperText:{marginBottom:-20},focused:{},disabled:{},underline:{"&:after":{borderBottom:`2px solid ${L.palette.primary[n?"dark":"light"]}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:L.transitions.create("transform",{duration:L.transitions.duration.shorter,easing:L.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:L.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:`1px solid ${i}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:L.transitions.create("border-bottom-color",{duration:L.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):not($focused):not($error):before":{borderBottom:`2px solid ${L.palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${i}`}},"&$disabled:before":{borderBottomStyle:"dotted"}},error:{"&:after":{backgroundColor:L.palette.error.main,transform:"scaleX(1)"}},chip:{margin:"0 8px 8px 0",float:"left"},marginDense:{}}},rn={BACKSPACE:8,DELETE:46,LEFT_ARROW:37,RIGHT_ARROW:39},Bs=({value:L,isFocused:n,isDisabled:i,isReadOnly:u,handleClick:v,handleDelete:o,style:h},p)=>M.createElement(N.Chip,{key:p,style:{...h,pointerEvents:i||u?"none":void 0,backgroundColor:n?rs[300]:void 0},onClick:v,onDelete:o,label:L});class Ps extends M.Component{labelRef;labelNode=null;input;newChipKeyCodes;newChipKeys;actualInput=null;inputBlurTimeout=null;_keyPressed;_preventChipCreation;styles={};styleTheme=null;constructor(n){super(n),this.state={chips:n.defaultValue||[],focusedChip:null,inputValue:"",isFocused:!1,chipsUpdated:!1,prevPropsValue:[],variant:this.props.variant||"standard"},this.newChipKeyCodes=n.newChipKeyCodes||[13],this.newChipKeys=n.newChipKeys||["Enter"],this.labelRef=M.createRef(),this.input=M.createRef()}componentDidMount(){this.state.variant==="outlined"&&(this.labelNode=ns.findDOMNode(this.labelRef.current),this.forceUpdate())}componentWillUnmount(){this.inputBlurTimeout&&clearTimeout(this.inputBlurTimeout)}static getDerivedStateFromProps(n,i){let u=null;return n.value&&n.value.length!==i.prevPropsValue.length&&(u={prevPropsValue:n.value},n.clearInputValueOnChange&&(u.inputValue="")),n.clearInputValueOnChange&&n.value&&n.value.length!==i.prevPropsValue.length&&(u={prevPropsValue:n.value,inputValue:""}),n.disabled&&(u={...u,focusedChip:null}),!i.chipsUpdated&&n.defaultValue&&(u={...u,chips:n.defaultValue}),u}focus=()=>{var n;(n=this.actualInput)==null||n.focus(),this.state.focusedChip&&this.setState({focusedChip:null})};handleInputBlur=n=>{this.props.onBlur&&this.props.onBlur(n),this.setState({isFocused:!1}),this.state.focusedChip&&this.setState({focusedChip:null});const i=n.target.value;let u;switch(this.props.blurBehavior||"clear"){case"add-or-clear":u={clearInputOnFail:!0};case"add":if(this.props.delayBeforeAdd){const v=(this.props.value||this.state.chips).length;this.inputBlurTimeout=setTimeout(()=>{const o=(this.props.value||this.state.chips).length;v===o?this.handleAddChip(i,u):this.clearInput()},150)}else this.handleAddChip(i,u);break;case"clear":this.clearInput();break}};handleInputFocus=n=>{this.setState({isFocused:!0}),this.props.onFocus&&this.props.onFocus(n)};handleKeyDown=n=>{const{focusedChip:i}=this.state;if(this._keyPressed=!1,this._preventChipCreation=!1,this.props.onKeyDown&&(this.props.onKeyDown(n),n.isDefaultPrevented()))return;const u=this.props.value||this.state.chips;if(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key)){this.handleAddChip(n.target.value)!==!1&&n.preventDefault();return}switch(n.keyCode){case rn.BACKSPACE:n.target.value===""&&(i?(this.handleDeleteChip(u[i],i),i&&this.setState({focusedChip:i-1})):this.setState({focusedChip:u.length-1}));break;case rn.DELETE:n.target.value===""&&i&&(this.handleDeleteChip(u[i],i),i<=u.length-1&&this.setState({focusedChip:i}));break;case rn.LEFT_ARROW:i===null&&n.target.value===""&&u.length?this.setState({focusedChip:u.length-1}):i!==null&&i>0&&this.setState({focusedChip:i-1});break;case rn.RIGHT_ARROW:i!==null&&i{!this._preventChipCreation&&(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key))&&this._keyPressed?this.clearInput():this.updateInput(n.target.value),this.props.onKeyUp&&this.props.onKeyUp(n)};handleUpdateInput=n=>{(this.props.inputValue===null||this.props.inputValue===void 0)&&this.updateInput(n.target.value),this.props.onUpdateInput&&this.props.onUpdateInput(n)};handleAddChip(n,i){if(this.props.onBeforeAdd&&!this.props.onBeforeAdd(n))return this._preventChipCreation=!0,i&&i.clearInputOnFail&&this.clearInput(),!1;this.clearInput();const u=this.props.value||this.state.chips;return n.trim().length?((this.props.allowDuplicates||!u.includes(n))&&(this.props.value&&this.props.onAdd?this.props.onAdd(n):this.updateChips([...this.state.chips,n])),!0):!1}handleDeleteChip(n,i){if(this.props.value)this.props.onDelete&&this.props.onDelete(n,i);else{const u=this.state.chips.slice();if(u.splice(i,1)){let o=this.state.focusedChip;this.state.focusedChip===i?o=null:this.state.focusedChip>i&&(o=this.state.focusedChip-1),this.updateChips(u,{focusedChip:o})}}}updateChips(n,i={}){this.setState({chips:n,chipsUpdated:!0,...i}),this.props.onChange&&this.props.onChange(n)}clearInput(){this.updateInput("")}updateInput(n){this.setState({inputValue:n})}setActualInputRef=n=>{this.actualInput=n,this.props.inputRef&&this.props.inputRef(n)};render(){const{alwaysShowPlaceholder:n,chipRenderer:i=Bs,className:u,disabled:v,disableUnderline:o,error:h,FormHelperTextProps:p,fullWidth:a,fullWidthInput:d,helperText:e,id:t,InputProps:r={},InputLabelProps:l={},inputValue:s,label:c,placeholder:f,readOnly:m,required:y,rootRef:D,value:E,margin:b}=this.props,g=this.state.variant;this.styleTheme!==this.props.theme.palette.mode&&(this.styleTheme=this.props.theme.palette.mode,this.styles=j.Utils.getStyle(this.props.theme,Ns));let S=E||this.state.chips||[];Array.isArray(S)||(S=(S||"").toString().split(/[,\s]+/).map(C=>C.trim()));const T=s??this.state.inputValue,k=(this.props.value||T).length||T.length,_=typeof l.shrink=="boolean"?l.shrink:c!==null&&(k||this.state.isFocused||S.length),O=S.map((C,w)=>i({value:C,isDisabled:!!v,isReadOnly:m,isFocused:this.state.focusedChip===w,handleClick:()=>this.setState({focusedChip:w}),handleDelete:()=>this.handleDeleteChip(C,w),style:this.styles.chip},w.toString())),$={};g==="outlined"&&($.notched=!!_,$.labelWidth=_&&this.labelNode&&this.labelNode.offsetWidth||0),g!=="standard"?$.startAdornment=O:r.disableUnderline=!0;const A=Rs[g];return M.createElement(N.FormControl,{ref:D,fullWidth:a,className:u,sx:{...this.styles.root,...b==="dense"?this.styles.marginDense:{}},error:h,required:S.length>0?void 0:y,onClick:this.focus,disabled:v,variant:g,component:"div",margin:b},c&&M.createElement(N.InputLabel,{htmlFor:t,sx:{"&.MuiInputLabel-root":this.styles.label,"&.MuiInputLabel-shrink":this.styles.labelShrink},shrink:!!_,focused:this.state.isFocused,variant:g,ref:this.labelRef,required:y,component:"label",...l},c),M.createElement(N.Box,{component:"div",id:"input-chip-container",sx:{...this.styles[g],...this.styles.chipContainer,...this.state.isFocused?this.styles.focused:void 0,...!o&&g==="standard"?this.styles.underline:void 0,...v?this.styles.disabled:void 0,...c?this.styles.labeled:void 0,...h?this.styles.error:void 0}},g==="standard"&&O,M.createElement(A,{ref:this.input,className:`mui-variant-${this.styles[g]} ${c?"mui-chip-with-label":"mui-chip-no-label"}`,sx:{"&.MuiInputBase-input":{...this.styles.input,...this.styles[g]},"&.MuiInputBase-root":{...this.styles.inputRoot}},id:t,value:T,onChange:this.handleUpdateInput,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,inputRef:this.setActualInputRef,disabled:v,fullWidth:d,placeholder:!k&&(_||c===null||c===void 0)||n?f:null,readOnly:m,...r,...$})),e&&M.createElement(N.FormHelperText,{...p,className:p==null?void 0:p.className,style:this.styles.helperText},e))}}class fi extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i);if(this.props.schema.delimiter&&typeof u=="string"){const v=u.split(this.props.schema.delimiter).map(o=>o.trim()).filter(o=>o);this.setState({value:v})}else this.setState({value:u||[]})}renderItem(n,i){const{attr:u,schema:v}=this.props,{value:o}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},M.createElement(Ps,{value:o,disabled:!!i,label:this.getText(v.label),error:!!n,onAdd:h=>{const p=JSON.parse(JSON.stringify(o));p.push(h),this.setState({value:p},()=>{let a;this.props.schema.delimiter?a=this.onChange(u,p.join(`${this.props.schema.delimiter} `)):a=this.onChange(u,p),a instanceof Promise&&a.catch(d=>console.error(d))})},theme:this.props.oContext.theme,onDelete:(h,p)=>{const a=JSON.parse(JSON.stringify(o));a.splice(p,1),this.setState({value:a},()=>{let d;this.props.schema.delimiter?d=this.onChange(u,a.join(`${this.props.schema.delimiter} `)):d=this.onChange(u,a),d instanceof Promise&&d.catch(e=>console.error(e))})}}),M.createElement(N.FormHelperText,null,j.I18n.t("ra_Press ENTER Key to add new item")),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Ws extends K{renderColorDialog(){return!!this.state.showColorDialog&&M.createElement(N.Dialog,{onClose:()=>this.setState({showColorDialog:!1}),open:this.state.showColorDialog},M.createElement(qr,{color:this.state.colorDialogValue,onChange:n=>this.setState({colorDialogValue:n.hex},()=>this.onChange(this.props.attr,this.state.colorDialogValue))}))}renderItem(n,i){const u=K.getValue(this.props.data,this.props.attr);let v=j.Utils.isUseBright(u,null);return v===null&&(v=void 0),M.createElement(M.Fragment,null,this.renderColorDialog(),M.createElement(N.TextField,{variant:"standard",disabled:!!i,style:{minWidth:100,width:"calc(100% - 8px)"},label:this.getText(this.props.schema.label),value:u||"",onClick:()=>!this.props.schema.readOnly&&this.setState({showColorDialog:!0,colorDialogValue:u||""}),onChange:o=>{const h=o.target.value,p=this.onChange(this.props.attr,h);p instanceof Promise&&p.catch(a=>console.error(`Cannot set value: ${a}`))},slotProps:{htmlInput:{style:{backgroundColor:u,color:v?"#FFF":"#000"},readOnly:this.props.schema.readOnly||!1},input:{endAdornment:!this.props.schema.readOnly&&u&&!this.props.schema.noClearButton?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:o=>{o.stopPropagation();const h=this.onChange(this.props.attr,"");h instanceof Promise&&h.catch(p=>console.error(`Cannot set value: ${p}`))}},M.createElement(Z.Close,null)):void 0},inputLabel:{shrink:!0}}}))}}const Mn={width:{width:"calc(100% - 85px)"},width50:{width:120,marginRight:5}};class Hs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n});const i={};this.props.schema.useSystemName&&(i.useSystem=!!K.getValue(this.props.data,this.props.schema.useSystemName)),this.props.schema.longitudeName&&this.props.schema.latitudeName?(i.longitude=K.getValue(this.props.data,this.props.schema.longitudeName),i.latitude=K.getValue(this.props.data,this.props.schema.latitudeName),!i.longitude&&!i.latitude&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300)):!K.getValue(this.props.data,this.props.attr)&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300),Object.keys(i).length&&setTimeout(()=>this.setState(i),50)}async getSystemCoordinates(){const n=await this.props.oContext.socket.getCompactSystemConfig();if(n!=null&&n.common&&(n.common.longitude||n.common.latitude))if(window.alert(j.I18n.t("ra_Used system settings")),this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.common.longitude,latitude:n.common.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.common.longitude),await this.onChange(this.props.schema.latitudeName,n.common.latitude)});else{const i=n.common.latitude+(this.props.schema.divider||",")+n.common.longitude;this.setState({value:i},()=>{const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))})}else window.alert(j.I18n.t("ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser"))}getCoordinates(){navigator.geolocation?navigator.geolocation.getCurrentPosition(async n=>{if(n!=null&&n.coords)if(this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.coords.longitude,latitude:n.coords.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.coords.longitude||""),await this.onChange(this.props.schema.latitudeName,n.coords.latitude||"")});else{const i=n.coords.latitude+(this.props.schema.divider||",")+n.coords.longitude;this.setState({value:i},()=>{const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))})}else await this.getSystemCoordinates()},async n=>{console.error(`Cannot determine coordinates from browser: ${n.message}`),await this.getSystemCoordinates()}):this.getSystemCoordinates().catch(n=>{console.error(`Cannot determine coordinates: ${n}`)})}renderItem(n,i){return M.createElement(M.Fragment,null,this.props.schema.useSystemName?M.createElement(N.FormControlLabel,{control:M.createElement(N.Checkbox,{checked:!!this.state.useSystem,onChange:u=>{const v=u.target.checked;v&&this.getSystemCoordinates().catch(o=>console.error(`Cannot determine coordinates: ${o}`)),this.setState({useSystem:v},()=>this.onChange(this.props.schema.useSystemName,v))}}),label:j.I18n.t("ra_Use system settings for position")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.longitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:u=>{const v=u.target.value;this.setState({longitude:v},()=>{const o=this.onChange(this.props.schema.longitudeName,(v||"").trim());o instanceof Promise&&o.catch(h=>console.error(`Cannot set value: ${h}`))})},label:j.I18n.t("ra_Longitude")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.latitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:u=>{const v=u.target.value;this.setState({latitude:v},()=>this.onChange(this.props.schema.latitudeName,(v||"").trim()))},label:j.I18n.t("ra_Latitude")}):null,!this.props.schema.longitudeName||!this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.state.useSystem}},onChange:u=>{const v=u.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,(v||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):null,this.state.useSystem?null:M.createElement(N.Fab,{size:"small",onClick:()=>this.getCoordinates(),title:j.I18n.t("ra_Take browser position"),style:{marginRight:4}},M.createElement(Z.LocationOn,null)),this.state.useSystem?null:M.createElement(N.Fab,{size:"small",onClick:()=>this.getSystemCoordinates(),title:j.I18n.t("ra_Take position from system settings")},M.createElement(Z.GpsFixed,null)))}}Pn.init({name:"iobroker_admin",shared:{"@iobroker/adapter-react-v5":{lib:()=>ts,version:"*"},"@mui/icons-material":{lib:()=>es,version:"*"},"@iobroker/json-config":{lib:()=>os,version:"*"}},remotes:[]});class Ut extends K{static runningLoads={};constructor(n){super(n),Object.assign(this.state,{Component:null,error:""})}async componentDidMount(){if(!this.props.schema.url){console.error("URL is empty. Cannot load custom component!"),this.setState({error:"URL is empty. Cannot load custom component!"});return}let n;this.props.schema.url.startsWith("http:")||this.props.schema.url.startsWith("https:")?n=this.props.schema.url:this.props.schema.url.startsWith("./")?n=`${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\./,"")}`:n=`${window.location.protocol}//${window.location.host}/adapter/${this.props.oContext.adapterName}/${this.props.schema.url}`;const[i,u,...v]=this.props.schema.name.split("/"),o=v.join("/");if(!n){console.error('Cannot find URL for custom component! Please define "url" as "custom/customComponents.js" in the schema');return}if(!i||!u||!o){console.error('Invalid format of "name"! Please define "name" as "ConfigCustomBackItUpSet/Components/AdapterExist" in the schema');return}let h=Ut.runningLoads[`${n}!${u}`];if(!(h instanceof Promise)){let p;if(this.props.schema.i18n===!0){const a=n.lastIndexOf("/");let d;a!==-1?d=n.substring(0,a):d=n;const e=j.I18n.getLanguage(),t=`${d}/i18n/${e}.json`;p=fetch(t).then(r=>r.json()).then(r=>j.I18n.extendTranslations(r,e)).catch(r=>{if(e!=="en"){fetch(`${d}/i18n/en.json`).then(l=>l.json()).then(l=>j.I18n.extendTranslations(l,e)).catch(l=>console.log(`Cannot load i18n "${t}": ${l}`));return}console.log(`Cannot load i18n "${t}": ${r}`)})}else if(this.props.schema.i18n&&typeof this.props.schema.i18n=="object")try{j.I18n.extendTranslations(this.props.schema.i18n)}catch(a){console.error(`Cannot import i18n: ${a}`)}try{console.log(n,i,u,o),Pn.registerRemotes([{name:i,entry:n,type:this.props.schema.bundlerType||void 0}]),h=Pn.loadRemote(`${i}/${u}`),p instanceof Promise&&(h=Promise.all([h,p]).then(a=>a[0])),Ut.runningLoads[`${n}!${u}`]=h}catch(a){console.error(a),this.setState({error:`Cannot import from ${this.props.schema.url}: ${a}`})}}try{const p=(await h).default;if(p!=null&&p[o])this.setState({Component:p[o]});else{const a=Object.keys(p||{});console.error("URL is empty. Cannot load custom component!"),this.setState({error:`Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${a.join(", ")}`})}}catch(p){console.error(p),this.setState({error:`Cannot import from ${this.props.schema.url}: ${p}`})}}render(){const n=this.state.Component,i=this.props.schema||{};let u=n?M.createElement(n,{...this.props,socket:this.props.oContext.socket,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,instance:this.props.oContext.instance,adapterName:this.props.oContext.adapterName,systemConfig:this.props.oContext.systemConfig,forceUpdate:this.props.oContext.forceUpdate}):this.state.error?M.createElement("div",null,this.state.error):M.createElement(N.LinearProgress,null);return i.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),u):u}}class zs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){return M.createElement(Wi.DatePicker,{sx:u=>({width:"100%",borderBottom:`1px solid ${u.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${u.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),format:this.props.oContext.systemConfig.dateFormat.toLowerCase().replace("mm","MM"),disabled:!!i,value:this.state.value,onChange:u=>{this.setState({value:u},()=>this.onChange(this.props.attr,this.state.value))},label:this.getText(this.props.schema.label)})}}class js extends K{renderItem(){if(!this.props.schema)return null;if(this.props.oContext.DeviceManager){const i=this.props.oContext.DeviceManager;return M.createElement(i,{uploadImagesToInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,title:this.getText(this.props.schema.label),socket:this.props.oContext.socket,selectedInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,themeName:this.props.themeName,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,isFloatComma:this.props.oContext.isFloatComma,dateFormat:this.props.oContext.dateFormat})}return M.createElement("div",null,"DeviceManager not found")}}const Ke={fullWidth:{width:"100%"},uploadDiv:{position:"relative",width:"100%"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"100%",height:"100%",position:"absolute",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},error:{border:"2px solid red"},deleteButton:{},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Vs=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Us=["mp3","ogg","wav","aac"],Gs=["avi","mp4","mov"],Ks=["txt","log","html","htm"],Js=["json","js","ts"];class mn extends K{dropzoneRef;imagePrefix;objectID;path;constructor(n){super(n),this.dropzoneRef=M.createRef(),this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix}componentDidMount(){super.componentDidMount(),this.objectID=(this.props.schema.objectID||"0_userdata.0").replace("%INSTANCE%",(this.props.oContext.instance||0).toString()),this.path=this.props.schema.upload,this.path&&(this.path==="/"?this.path="":this.path.endsWith("/")||(this.path=`${this.path}/`)),this.updateFiles().then(()=>{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n}),this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(i=>console.error(`Cannot subscribe: ${i}`))})}onFolderChanged=(n,i)=>{this.path&&i.startsWith(this.path)&&this.updateFiles().catch(u=>console.error(`Cannot update files: ${u}`))};componentWillUnmount(){this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(n=>console.error(`Cannot subscribe: ${n}`)),super.componentWillUnmount()}async updateFiles(){const n=await this.readFiles(this.props.schema.pattern);await new Promise(i=>this.setState({files:n},i))}async readFolder(n,i,u){try{const v=await this.props.oContext.socket.readDir(this.objectID,n.replace(/^\//,"")||null);for(let o=0;oconsole.log("file reading was aborted"),u.onerror=()=>console.log("file reading has failed"),u.onload=()=>{if(i.size>v){window.alert(j.I18n.t("File is too big. Max %sk allowed. Try use SVG.",Math.round(v/1024)));return}this.props.oContext.socket.writeFile64(this.objectID,this.path+i.name,u.result).then(()=>this.updateFiles()).then(()=>this.setState({value:this.path+i.name},()=>this.onChange(this.props.attr,this.path+i.name))).catch(o=>window.alert(`Cannot upload file: ${o}`))},u.readAsArrayBuffer(i)}renderDeleteDialog(){return this.state.deleteFile?M.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Are you sure?"),text:j.I18n.t("ra_File will be deleted"),ok:j.I18n.t("ra_Delete"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>{const i=this.state.deleteFile;this.setState({deleteFile:""},()=>{n&&this.props.oContext.socket.deleteFile(this.objectID,i).then(()=>this.updateFiles()).catch(u=>window.alert(`Cannot delete file: ${u}`))})}}):null}static base64ToArrayBuffer(n){const i=window.atob(n),u=i.length,v=new Uint8Array(u);for(let o=0;o{if(typeof AudioContext<"u"){const i=new AudioContext,u=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(u,v=>{const o=i.createBufferSource();o.buffer=v,o.connect(i.destination),o.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getFileIcon(n){return n!=null&&n.extension?Vs.includes(n.extension)?M.createElement("div",{style:{...Ke.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.objectID}/${n.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Us.includes(n.extension)?M.createElement(Z.MusicNote,null):Ks.includes(n.extension)?M.createElement(Z.Article,null):Gs.includes(n.extension)?M.createElement(Z.Videocam,null):Js.includes(n.extension)?M.createElement(Z.Code,null):null:null}renderItem(n,i){if(!this.state.files)return null;const u=[];this.props.schema.withFolder||this.state.files.forEach(e=>{const t=e.name.lastIndexOf("/");if(t===-1)u.includes("/")||u.push("/");else{const r=e.name.substring(0,t+1);u.includes(r)||u.push(r)}});const v=this.state.files.map(e=>({value:e.name,label:!this.props.schema.withFolder&&u.length===1?`${e.name.substring(u[0].length)}`:`${e.name}${this.props.schema.noSize?"":`(${e.size})`}`,extension:e.name.toLowerCase().split(".").pop()}));this.props.schema.noNone||v.unshift({label:j.I18n.t("ra_none"),value:""});const o=v.find(e=>e.value===this.state.value);let h=0;this.props.schema.upload&&h++,this.props.schema.refresh&&h++;const p=this.state.value&&(this.state.value.endsWith(".mp3")||this.state.value.endsWith(".ogg")||this.state.value.endsWith(".wav"));p&&h++;const a=M.createElement("div",{style:Ke.fullWidth},M.createElement(N.FormControl,{variant:"standard",style:{width:`calc(100% - ${h*42}px)`}},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>M.createElement(M.Fragment,null,this.getFileIcon(o),M.createElement("span",null,(o==null?void 0:o.label)||"")),onChange:e=>{this.setState({value:e.target.value==="_"?"":e.target.value},()=>this.onChange(this.props.attr,this.state.value))}},v.map(e=>M.createElement(N.MenuItem,{key:e.value,value:e.value},M.createElement(N.ListItemIcon,null,this.getFileIcon(e)),M.createElement(N.ListItemText,null,e.label),this.props.schema.delete&&o.value?M.createElement(N.IconButton,{style:Ke.deleteButton,size:"small",onClick:()=>this.setState({deleteFile:o.value})},M.createElement(Z.Delete,null)):null))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null),this.props.schema.refresh&&M.createElement(N.IconButton,{onClick:()=>this.updateFiles()},M.createElement(Z.Refresh,null)),this.props.schema.upload&&M.createElement(N.IconButton,{onClick:()=>{var e;return(e=this.dropzoneRef.current)==null?void 0:e.open()}},M.createElement(Z.UploadFile,null)),p&&M.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},M.createElement(Z.PlayArrow,null)));if(!this.props.schema.upload)return M.createElement(M.Fragment,null,a,this.renderDeleteDialog());let d={"*/*":[]};if(this.props.schema.fileTypes==="image"?d={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:this.props.schema.fileTypes==="audio"?d={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:this.props.schema.fileTypes==="text"&&(d={"text/plain":[".txt"]}),this.props.schema.pattern){const e=this.props.schema.pattern.split("/").pop().toLowerCase().replace(/.*\./,"");e==="png"||e==="jpg"||e==="svg"||e==="gif"||e==="apng"||e==="avif"||e==="webp"?d={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:e==="mp3"||e==="ogg"||e==="wav"?d={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:e==="ics"?d={"text/calendar":[".ics"]}:e==="txt"?d={"text/plain":[".txt"]}:e==="pem"?d={"text/plain":[".pem"]}:d={"*/*":[`.${e}`]}}return M.createElement(Pi,{ref:this.dropzoneRef,multiple:!1,accept:d,noKeyboard:!0,noClick:!0,maxSize:this.props.schema.maxSize||2*1024*1024,onDragEnter:()=>{this.setState({uploadFile:"dragging"})},onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(e,t)=>{var r,l,s;this.setState({uploadFile:!1}),e.length?this.onDrop(e):window.alert(((s=(l=(r=t==null?void 0:t[0])==null?void 0:r.errors)==null?void 0:l[0])==null?void 0:s.message)||j.I18n.t("Cannot upload"))}},({getRootProps:e,getInputProps:t})=>M.createElement("div",{style:{...Ke.uploadDiv,...this.state.uploadFile==="dragging"?Ke.uploadDivDragging:void 0,...i?Ke.disabledOpacity:void 0},...e()},M.createElement("input",{...t()}),this.state.uploadFile==="dragging"?M.createElement("div",{style:{...Ke.uploadCenterDiv,...this.state.uploadError?Ke.error:void 0}},M.createElement("div",{style:Ke.uploadCenterTextAndIcon},M.createElement(Z.UploadFile,{style:Ke.uploadCenterIcon}),M.createElement("div",{style:Ke.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog")))):null,a,this.renderDeleteDialog()))}}const sn={fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 69px)",marginRight:4},fullWidthIcon:{width:"calc(100% - 119px)",marginRight:4},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Ys=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Qs=["mp3","ogg","wav","aac"],Xs=["avi","mp4","mov"],Zs=["txt","log","html","htm"],qs=["json","js","ts"];class eo extends K{imagePrefix="../..";componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix,this.setState({value:n??""})}static getDerivedStateFromProps(n,i){const u=K.getValue(n.data,n.attr);return u==null||u.toString().trim()!==(i.value||"").toString().trim()?{value:u??""}:null}loadFile(){const n=this.state.value.indexOf("/");if(n!==-1){const i=this.state.value.substring(0,n),u=this.state.value.substring(n+1);return this.props.oContext.socket.readFile(i,u,!0)}return Promise.resolve(null)}play(){this.loadFile().then(n=>{if(typeof AudioContext<"u"&&(n!=null&&n.file)){const i=new AudioContext,u=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(u,v=>{const o=i.createBufferSource();o.buffer=v,o.connect(i.destination),o.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getIcon(){const n=this.state.value.split(".").pop().toLowerCase();return Ys.includes(n)?M.createElement("div",{style:{...sn.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.state.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Qs.includes(n)?M.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},M.createElement(Z.PlayArrow,null)):Zs.includes(n)?M.createElement(Z.Article,null):Xs.includes(n)?M.createElement(Z.Videocam,null):qs.includes(n)?M.createElement(Z.Code,null):null}renderFileBrowser(){return this.state.showFileBrowser?M.createElement(j.DialogSelectFile,{imagePrefix:this.props.oContext.imagePrefix,socket:this.props.oContext.socket,selected:this.state.value,onClose:()=>this.setState({showFileBrowser:!1}),onOk:n=>{const i=Array.isArray(n)?n[0]:n;this.setState({value:i},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?i:(i||"").trim()))},selectOnlyFolders:this.props.schema.selectOnlyFolders,allowUpload:this.props.schema.allowUpload,allowDownload:this.props.schema.allowDownload,allowCreateFolder:this.props.schema.allowCreateFolder,allowView:this.props.schema.allowView,showToolbar:this.props.schema.showToolbar,limitPath:this.props.schema.limitPath,theme:this.props.oContext.theme}):null}renderItem(n,i){const u=this.getIcon();return M.createElement("div",{style:sn.fullWidth},u,M.createElement(N.TextField,{variant:"standard",style:u?sn.fullWidthIcon:sn.fullWidthOneButton,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:!!this.props.schema.disableEdit}},onChange:v=>{const o=v.target.value;this.setState({value:o},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?o:(o||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),M.createElement(N.Button,{disabled:i,variant:"outlined",onClick:()=>this.setState({showFileBrowser:!0})},"..."),this.renderFileBrowser())}}class to extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("functions").then(i=>{const u=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.functions.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})})}renderItem(n,i){if(!this.state.selectOptions)return null;const u=this.state.selectOptions.find(v=>v.value===this.state.value);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>u?u.obj?M.createElement(j.TextWithIcon,{value:u.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):u.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>M.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?M.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class no extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getHostByIp(this.props.common.host).then(n=>{this.props.schema.listenOnAllPorts||(n=n.filter(i=>i.address!=="0.0.0.0"&&i.address!=="::")),this.props.schema.onlyIp4?n=n.filter(i=>i.family==="ipv4"):this.props.schema.onlyIp6&&(n=n.filter(i=>i.family==="ipv6")),this.props.schema.noInternal&&(n=n.filter(i=>!i.internal)),n.forEach(i=>{i.address==="0.0.0.0"?i.name=`[IPv4] 0.0.0.0 - ${j.I18n.t("ra_Listen on all IPs")}`:i.address==="::"&&(i.name=`[IPv6] :: - ${j.I18n.t("ra_Listen on all IPs")}`)}),this.setState({ips:n})}).catch(n=>console.error(n))}renderItem(n,i){var o,h;const u=K.getValue(this.props.data,this.props.attr),v=(o=this.state.ips)==null?void 0:o.find(p=>p.address===u);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.state.ips&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.ips?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:p=>(v==null?void 0:v.name)||p,onChange:p=>this.onChange(this.props.attr,p.target.value)},(h=this.state.ips)==null?void 0:h.map((p,a)=>M.createElement(N.MenuItem,{key:a,value:p.address},p.name))):M.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:u,onChange:p=>this.onChange(this.props.attr,p.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class io extends K{initialized=!1;localContext;componentDidMount(){super.componentDidMount(),this.askInstance()}askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);if(i)try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${JSON.stringify(n)}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({image:i||""}))}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const n=this.getContext();(n!==this.localContext||!this.initialized)&&(this.localContext=n,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}return this.state.image===void 0?null:M.createElement("img",{alt:"dynamic content",src:this.state.image,style:{width:this.props.schema.width||"100%",height:this.props.schema.height}})}}class ro extends K{index;constructor(n){super(n),this.index=Date.now()}componentDidMount(){if(super.componentDidMount(),this.props.schema.base64){const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}else this.props.oContext.socket.fileExists(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).then(n=>n&&this.loadImage())}_getUrl(n){n&&(this.index=Date.now());let i=`files/${this.props.oContext.adapterName}.${this.props.oContext.instance}/${this.props.attr}?t=${this.index}`;return window.location.port==="3000"&&(i=`${window.location.protocol}//${window.location.hostname}:8081/${i}`),i}loadImage(){fetch(this._getUrl()).then(n=>n.blob()).then(n=>{const i=new FileReader;i.onload=()=>{this.setState({value:i.result})},i.readAsDataURL(n)}).catch(n=>console.error(n))}renderItem(n,i){return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(j.UploadImage,{error:!!n,disabled:i,accept:this.props.schema.accept,crop:this.props.schema.crop,maxSize:this.props.schema.maxSize||256*1024,icon:this.state.value||void 0,removeIconFunc:()=>this.setState({value:null},()=>{if(this.props.schema.base64){const u=this.onChange(this.props.attr,this.state.value);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))}else this.props.oContext.socket.deleteFile(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).catch(u=>console.error(u))}),onChange:u=>this.setState({value:u},()=>{if(this.props.schema.base64){const v=this.onChange(this.props.attr,this.state.value);v instanceof Promise&&v.catch(o=>console.error(`Cannot set value: ${o}`))}else u.startsWith("data")&&(u=u.split(",")[1]);this.props.oContext.socket.writeFile64(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr,u).catch(v=>console.error(v))})}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const gi={icon:{width:20,height:20,marginRight:4}};class so extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);let i=this.props.schema.adapter;i==="_dataSources"&&(i=void 0),this.props.oContext.socket.getAdapterInstances(i,!0).then(async u=>{this.props.schema.adapter==="_dataSources"?u=u.filter(o=>{var h;return(h=o==null?void 0:o.common)==null?void 0:h.getHistory}):this.props.schema.adapter?u=u.filter(o=>o==null?void 0:o._id.startsWith(`system.adapter.${this.props.schema.adapter}.`)):this.props.schema.adapters&&Array.isArray(this.props.schema.adapters)&&(u=u.filter(o=>{var h;return this.props.schema.adapters.includes((h=o==null?void 0:o.common)==null?void 0:h.name)})),this.props.schema.onlyEnabled&&(u=u.filter(o=>{var h;return(h=o==null?void 0:o.common)==null?void 0:h.enabled}));const v=u.map(o=>({value:this.props.schema.long?o._id:this.props.schema.short?o._id.split(".").pop():o._id.replace(/^system\.adapter\./,""),label:`${o.common.name} [${o._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${o.common.name}/${o.common.icon}`}));v.sort((o,h)=>o.value>h.value?1:o.valueconsole.error(`Cannot get instances: ${u}`))}componentWillUnmount(){this.props.oContext.socket.unsubscribeObject("system.adapter.*",this.onInstancesUpdate).then(()=>{}),super.componentWillUnmount()}onInstancesUpdate=(n,i)=>{if(!n.match(/^system\.adapter\.[-_a-z\d]+\.\d+$/))return;const u=this.props.schema.long?n:this.props.schema.short?n.split(".").pop():n.replace(/^system\.adapter\./,""),v=this.state.selectOptions.findIndex(o=>o.value===u);if(i){if(this.props.schema.adapter==="_dataSources"&&(!i.common||!i.common.getHistory))return;if(v===-1){const o=JSON.parse(JSON.stringify(this.state.selectOptions)),h=typeof i.common.name=="object"?i.common.name[j.I18n.getLanguage()]||i.common.name.en:i.common.name;o.push({value:this.props.schema.long?i._id:this.props.schema.short?i._id.split(".").pop():i._id.replace(/^system\.adapter\./,""),label:`${h} [${i._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${h}/${i.common.icon}`}),o.sort((p,a)=>p.label>a.label?1:p.labelo.value===this.state.value);return M.createElement(N.FormControl,{fullWidth:!0,key:this.props.attr,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>M.createElement("span",{style:{display:"flex"}},u!=null&&u.icon?M.createElement("img",{src:`./${u.icon}`,alt:u.value,style:gi.icon}):null,this.getText(u==null?void 0:u.label,!0)),onChange:o=>this.setState({value:o.target.value},()=>this.onChange(this.props.attr,this.state.value))},this.state.selectOptions.map(o=>M.createElement(N.MenuItem,{key:o.value,value:o.value,style:o.value===K.NONE_VALUE?{opacity:.5}:{}},o.icon?M.createElement("img",{src:`./${o.icon}`,alt:o.value,style:gi.icon}):null,this.getText(o.label,!0)))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const mi={address:{fontSize:"smaller",opacity:.5,marginLeft:8}};class oo extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getObject(`system.host.${this.props.common.host}`).then(n=>{var u,v;const i=[];if((v=(u=n==null?void 0:n.native)==null?void 0:u.hardware)!=null&&v.networkInterfaces){const o=n.native.hardware.networkInterfaces;Object.keys(o).forEach(h=>{if(this.props.schema.ignoreInternal&&!o[h].find(a=>!a.internal)||this.props.schema.ignoreLoopback&&o[h].find(a=>a.address==="127.0.0.1"||a.address==="::1"))return;let p=o[h].find(a=>a.family==="IPv4");p=p||o[h].find(a=>a.family==="IPv6"),i.push({value:h,address:p.address})})}this.setState({interfaces:i})}).catch(n=>window.alert(`Cannot read interfaces: ${n}`))}renderItem(n,i){var o,h,p;const u=K.getValue(this.props.data,this.props.attr),v=(o=this.state.interfaces)==null?void 0:o.find(a=>a.value===u);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},(h=this.state.interfaces)!=null&&h.length&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,(p=this.state.interfaces)!=null&&p.length?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:a=>v?M.createElement("span",null,v.value,M.createElement("span",{style:mi.address},v.address)):a,onChange:a=>this.onChange(this.props.attr,a.target.value)},this.state.interfaces.map((a,d)=>M.createElement(N.MenuItem,{key:d,value:a.value},M.createElement("span",null,a.value,M.createElement("span",{style:mi.address},a.address))))):M.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:u,onChange:a=>this.onChange(this.props.attr,a.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const kt={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:{color:"primary.main"}},ao=({toggleTranslation:L,noTranslation:n,title:i,fullWidth:u,help:v,maxWidth:o,progress:h,icon:p,applyDisabled:a,applyButton:d,onClose:e,children:t,titleButtonApply:r,titleButtonClose:l,onApply:s,textInput:c,defaultValue:f,overflowHidden:m})=>{const[y,D]=dt.useState(f);dt.useEffect(()=>{D(f)},[f]);let E=null;return p&&(E=p),M.createElement(N.Dialog,{open:!0,maxWidth:o||"md",fullWidth:!!u,disableEscapeKeyDown:!1,onClose:e,sx:{"& .MuiPaper-root":kt.modalDialog}},i&&M.createElement(N.DialogTitle,null,p?M.createElement(E,{style:kt.titleIcon}):null,i,j.I18n.getLanguage()!=="en"&&L?M.createElement(N.IconButton,{size:"large",style:{...kt.languageButton,...n?kt.languageButtonActive:{}},onClick:()=>L(),title:j.I18n.t("Disable/Enable translation")},M.createElement(Z.Language,null)):null),M.createElement(N.DialogContent,{sx:{...m?kt.overflowHidden:{},...kt.content},style:{paddingTop:8}},c&&M.createElement(N.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:y,onChange:b=>D(b.target.value)}),t,v?M.createElement("div",null,v):null),M.createElement(N.DialogActions,null,d!==!1&&M.createElement(N.Button,{startIcon:M.createElement(Z.Check,null),disabled:h||a&&f===y,onClick:()=>s&&s(c?y:""),variant:"contained",color:"primary"},j.I18n.t(r||"Ok")),M.createElement(N.Button,{color:"grey",onClick:()=>e&&e(),disabled:h,variant:"contained",startIcon:M.createElement(Z.Close,null)},j.I18n.t(l||"Cancel"))))};var It={},Dt={},Vi={exports:{}};(function(L,n){(function(){var i="ace",u=function(){return this}();!u&&typeof window<"u"&&(u=window);var v=function(e,t,r){if(typeof e!="string"){v.original?v.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=t),v.modules[e]||(v.payloads[e]=r,v.modules[e]=null)};v.modules={},v.payloads={};var o=function(e,t,r){if(typeof t=="string"){var l=a(e,t);if(l!=null)return r&&r(),l}else if(Object.prototype.toString.call(t)==="[object Array]"){for(var s=[],c=0,f=t.length;ca.length)&&(p=a.length),p-=h.length;var d=a.indexOf(h,p);return d!==-1&&d===p}),String.prototype.repeat||o(String.prototype,"repeat",function(h){for(var p="",a=this;h>0;)h&1&&(p+=a),(h>>=1)&&(a+=a);return p}),String.prototype.includes||o(String.prototype,"includes",function(h,p){return this.indexOf(h,p)!=-1}),Object.assign||(Object.assign=function(h){if(h==null)throw new TypeError("Cannot convert undefined or null to object");for(var p=Object(h),a=1;a>>0,d=arguments[1],e=d>>0,t=e<0?Math.max(a+e,0):Math.min(e,a),r=arguments[2],l=r===void 0?a:r>>0,s=l<0?Math.max(a+l,0):Math.min(l,a);t0;)a&1&&(d+=p),(a>>=1)&&(p+=p);return d};var o=/^\s\s*/,h=/\s\s*$/;u.stringTrimLeft=function(p){return p.replace(o,"")},u.stringTrimRight=function(p){return p.replace(h,"")},u.copyObject=function(p){var a={};for(var d in p)a[d]=p[d];return a},u.copyArray=function(p){for(var a=[],d=0,e=p.length;d65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(i,u,v){u.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},u.getOS=function(){return u.isMac?u.OS.MAC:u.isLinux?u.OS.LINUX:u.OS.WINDOWS};var o=typeof navigator=="object"?navigator:{},h=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),p=o.userAgent||"",a=o.appName||"";u.isWin=h=="win",u.isMac=h=="mac",u.isLinux=h=="linux",u.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((p.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((p.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),u.isOldIE=u.isIE&&u.isIE<9,u.isGecko=u.isMozilla=p.match(/ Gecko\/\d+/),u.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",u.isWebKit=parseFloat(p.split("WebKit/")[1])||void 0,u.isChrome=parseFloat(p.split(" Chrome/")[1])||void 0,u.isSafari=parseFloat(p.split(" Safari/")[1])&&!u.isChrome||void 0,u.isEdge=parseFloat(p.split(" Edge/")[1])||void 0,u.isAIR=p.indexOf("AdobeAIR")>=0,u.isAndroid=p.indexOf("Android")>=0,u.isChromeOS=p.indexOf(" CrOS ")>=0,u.isIOS=/iPad|iPhone|iPod/.test(p)&&!window.MSStream,u.isIOS&&(u.isMac=!0),u.isMobile=u.isIOS||u.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(i,u,v){var o=i("./useragent"),h="http://www.w3.org/1999/xhtml";u.buildDom=function r(l,s,c){if(typeof l=="string"&&l){var f=document.createTextNode(l);return s&&s.appendChild(f),f}if(!Array.isArray(l))return l&&l.appendChild&&s&&s.appendChild(l),l;if(typeof l[0]!="string"||!l[0]){for(var m=[],y=0;y"u")){if(a){if(s)d();else if(s===!1)return a.push([r,l])}if(!p){var c=s;!s||!s.getRootNode?c=document:(c=s.getRootNode(),(!c||c==s)&&(c=document));var f=c.ownerDocument||c;if(l&&u.hasCssString(l,c))return null;l&&(r+=` -/*# sourceURL=ace/css/`+l+" */");var m=u.createElement("style");m.appendChild(f.createTextNode(r)),l&&(m.id=l),c==f&&(c=u.getDocumentHead(f)),c.insertBefore(m,c.firstChild)}}}if(u.importCssString=e,u.importCssStylsheet=function(r,l){u.buildDom(["link",{rel:"stylesheet",href:r}],u.getDocumentHead(l))},u.scrollbarWidth=function(r){var l=u.createElement("ace_inner");l.style.width="100%",l.style.minWidth="0px",l.style.height="200px",l.style.display="block";var s=u.createElement("ace_outer"),c=s.style;c.position="absolute",c.left="-10000px",c.overflow="hidden",c.width="200px",c.minWidth="0px",c.height="150px",c.display="block",s.appendChild(l);var f=r&&r.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(s);var m=l.offsetWidth;c.overflow="scroll";var y=l.offsetWidth;return m===y&&(y=s.clientWidth),f.removeChild(s),m-y},u.computedStyle=function(r,l){return window.getComputedStyle(r,"")||{}},u.setStyle=function(r,l,s){r[l]!==s&&(r[l]=s)},u.HAS_CSS_ANIMATION=!1,u.HAS_CSS_TRANSFORMS=!1,u.HI_DPI=o.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,o.isChromeOS&&(u.HI_DPI=!1),typeof document<"u"){var t=document.createElement("div");u.HI_DPI&&t.style.transform!==void 0&&(u.HAS_CSS_TRANSFORMS=!0),!o.isEdge&&typeof t.style.animationName<"u"&&(u.HAS_CSS_ANIMATION=!0),t=null}u.HAS_CSS_TRANSFORMS?u.translate=function(r,l,s){r.style.transform="translate("+Math.round(l)+"px, "+Math.round(s)+"px)"}:u.translate=function(r,l,s){r.style.top=Math.round(s)+"px",r.style.left=Math.round(l)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(i,u,v){/* +`&&q(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw Ae(q());case void 0:throw Ae(q())}return q()}function ds(){let L="",n=rt();if(!Me.isHexDigit(n)||(L+=q(),n=rt(),!Me.isHexDigit(n)))throw Ae(q());return L+=q(),String.fromCodePoint(parseInt(L,16))}function zn(){let L="",n=4;for(;n-- >0;){const i=rt();if(!Me.isHexDigit(i))throw Ae(q());L+=q()}return String.fromCodePoint(parseInt(L,16))}const fs={start(){if(Ie.type==="eof")throw Ct();Tn()},beforePropertyName(){switch(Ie.type){case"identifier":case"string":Gn=Ie.value,Be="afterPropertyName";return;case"punctuator":nn();return;case"eof":throw Ct()}},afterPropertyName(){if(Ie.type==="eof")throw Ct();Be="beforePropertyValue"},beforePropertyValue(){if(Ie.type==="eof")throw Ct();Tn()},beforeArrayValue(){if(Ie.type==="eof")throw Ct();if(Ie.type==="punctuator"&&Ie.value==="]"){nn();return}Tn()},afterPropertyValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforePropertyName";return;case"}":nn()}},afterArrayValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforeArrayValue";return;case"]":nn()}},end(){}};function Tn(){let L;switch(Ie.type){case"punctuator":switch(Ie.value){case"{":L={};break;case"[":L=[];break}break;case"null":case"boolean":case"numeric":case"string":L=Ie.value;break}if(Vt===void 0)Vt=L;else{const n=it[it.length-1];Array.isArray(n)?n.push(L):Object.defineProperty(n,Gn,{value:L,writable:!0,enumerable:!0,configurable:!0})}if(L!==null&&typeof L=="object")it.push(L),Array.isArray(L)?Be="beforeArrayValue":Be="beforePropertyName";else{const n=it[it.length-1];n==null?Be="end":Array.isArray(n)?Be="afterArrayValue":Be="afterPropertyValue"}}function nn(){it.pop();const L=it[it.length-1];L==null?Be="end":Array.isArray(L)?Be="afterArrayValue":Be="afterPropertyValue"}function Ae(L){return dn(L===void 0?`JSON5: invalid end of input at ${dt}:${Ye}`:`JSON5: invalid character '${zi(L)}' at ${dt}:${Ye}`)}function Ct(){return dn(`JSON5: invalid end of input at ${dt}:${Ye}`)}function ui(){return Ye-=5,dn(`JSON5: invalid identifier character at ${dt}:${Ye}`)}function gs(L){console.warn(`JSON5: '${zi(L)}' in strings is not valid ECMAScript; consider escaping`)}function zi(L){const n={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(n[L])return n[L];if(L<" "){const i=L.charCodeAt(0).toString(16);return"\\x"+("00"+i).substring(i.length)}return L}function dn(L){const n=new SyntaxError(L);return n.lineNumber=dt,n.columnNumber=Ye,n}var ms=function(n,i,h){const v=[];let s="",u,d,a="",p;if(i!=null&&typeof i=="object"&&!Array.isArray(i)&&(h=i.space,p=i.quote,i=i.replacer),typeof i=="function")d=i;else if(Array.isArray(i)){u=[];for(const c of i){let f;typeof c=="string"?f=c:(typeof c=="number"||c instanceof String||c instanceof Number)&&(f=String(c)),f!==void 0&&u.indexOf(f)<0&&u.push(f)}}return h instanceof Number?h=Number(h):h instanceof String&&(h=String(h)),typeof h=="number"?h>0&&(h=Math.min(10,Math.floor(h)),a=" ".substr(0,h)):typeof h=="string"&&(a=h.substr(0,10)),e("",{"":n});function e(c,f){let m=f[c];switch(m!=null&&(typeof m.toJSON5=="function"?m=m.toJSON5(c):typeof m.toJSON=="function"&&(m=m.toJSON(c))),d&&(m=d.call(f,c,m)),m instanceof Number?m=Number(m):m instanceof String?m=String(m):m instanceof Boolean&&(m=m.valueOf()),m){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof m=="string")return t(m);if(typeof m=="number")return String(m);if(typeof m=="object")return Array.isArray(m)?o(m):r(m)}function t(c){const f={"'":.1,'"':.2},m={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let y="";for(let E=0;Ef[E]=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=s;s=s+a;let m=u||Object.keys(c),y=[];for(const E of m){const b=e(E,c);if(b!==void 0){let g=l(E)+":";a!==""&&(g+=" "),g+=b,y.push(g)}}let D;if(y.length===0)D="{}";else{let E;if(a==="")E=y.join(","),D="{"+E+"}";else{let b=`, +`+s;E=y.join(b),D=`{ +`+s+E+`, +`+f+"}"}}return v.pop(),s=f,D}function l(c){if(c.length===0)return t(c);const f=String.fromCodePoint(c.codePointAt(0));if(!Me.isIdStartChar(f))return t(c);for(let m=f.length;m=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=s;s=s+a;let m=[];for(let D=0;D>>2]>>>24-S%4*8&255;D[b+S>>>2]|=T<<24-(b+S)%4*8}else for(var k=0;k>>2]=E[k>>>2];return this.sigBytes+=g,this},clamp:function(){var y=this.words,D=this.sigBytes;y[D>>>2]&=4294967295<<32-D%4*8,y.length=h.ceil(D/4)},clone:function(){var y=e.clone.call(this);return y.words=this.words.slice(0),y},random:function(y){for(var D=[],E=0;E>>2]>>>24-g%4*8&255;b.push((S>>>4).toString(16)),b.push((S&15).toString(16))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>3]|=parseInt(y.substr(b,2),16)<<24-b%8*4;return new t.init(E,D/2)}},o=r.Latin1={stringify:function(y){for(var D=y.words,E=y.sigBytes,b=[],g=0;g>>2]>>>24-g%4*8&255;b.push(String.fromCharCode(S))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>2]|=(y.charCodeAt(b)&255)<<24-b%4*8;return new t.init(E,D)}},c=r.Utf8={stringify:function(y){try{return decodeURIComponent(escape(o.stringify(y)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(y){return o.parse(unescape(encodeURIComponent(y)))}},f=p.BufferedBlockAlgorithm=e.extend({reset:function(){this._data=new t.init,this._nDataBytes=0},_append:function(y){typeof y=="string"&&(y=c.parse(y)),this._data.concat(y),this._nDataBytes+=y.sigBytes},_process:function(y){var D,E=this._data,b=E.words,g=E.sigBytes,S=this.blockSize,T=S*4,k=g/T;y?k=h.ceil(k):k=h.max((k|0)-this._minBufferSize,0);var _=k*S,O=h.min(_*4,g);if(_){for(var $=0;$<_;$+=S)this._doProcessBlock(b,$);D=b.splice(0,_),E.sigBytes-=O}return new t.init(D,O)},clone:function(){var y=e.clone.call(this);return y._data=this._data.clone(),y},_minBufferSize:0});p.Hasher=f.extend({cfg:e.extend(),init:function(y){this.cfg=this.cfg.extend(y),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(y){return this._append(y),this._process(),this},finalize:function(y){y&&this._append(y);var D=this._doFinalize();return D},blockSize:16,_createHelper:function(y){return function(D,E){return new y.init(E).finalize(D)}},_createHmacHelper:function(y){return function(D,E){return new m.HMAC.init(y,E).finalize(D)}}});var m=a.algo={};return a}(Math);return i})}(un)),un.exports}var Ds=Kn.exports;(function(L,n){(function(i,h){L.exports=h(Ss())})(Ds,function(i){return function(h){var v=i,s=v.lib,u=s.WordArray,d=s.Hasher,a=v.algo,p=[];(function(){for(var c=0;c<64;c++)p[c]=h.abs(h.sin(c+1))*4294967296|0})();var e=a.MD5=d.extend({_doReset:function(){this._hash=new u.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(c,f){for(var m=0;m<16;m++){var y=f+m,D=c[y];c[y]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360}var E=this._hash.words,b=c[f+0],g=c[f+1],S=c[f+2],T=c[f+3],k=c[f+4],_=c[f+5],O=c[f+6],$=c[f+7],A=c[f+8],C=c[f+9],w=c[f+10],x=c[f+11],I=c[f+12],F=c[f+13],R=c[f+14],B=c[f+15],P=E[0],V=E[1],W=E[2],H=E[3];P=t(P,V,W,H,b,7,p[0]),H=t(H,P,V,W,g,12,p[1]),W=t(W,H,P,V,S,17,p[2]),V=t(V,W,H,P,T,22,p[3]),P=t(P,V,W,H,k,7,p[4]),H=t(H,P,V,W,_,12,p[5]),W=t(W,H,P,V,O,17,p[6]),V=t(V,W,H,P,$,22,p[7]),P=t(P,V,W,H,A,7,p[8]),H=t(H,P,V,W,C,12,p[9]),W=t(W,H,P,V,w,17,p[10]),V=t(V,W,H,P,x,22,p[11]),P=t(P,V,W,H,I,7,p[12]),H=t(H,P,V,W,F,12,p[13]),W=t(W,H,P,V,R,17,p[14]),V=t(V,W,H,P,B,22,p[15]),P=r(P,V,W,H,g,5,p[16]),H=r(H,P,V,W,O,9,p[17]),W=r(W,H,P,V,x,14,p[18]),V=r(V,W,H,P,b,20,p[19]),P=r(P,V,W,H,_,5,p[20]),H=r(H,P,V,W,w,9,p[21]),W=r(W,H,P,V,B,14,p[22]),V=r(V,W,H,P,k,20,p[23]),P=r(P,V,W,H,C,5,p[24]),H=r(H,P,V,W,R,9,p[25]),W=r(W,H,P,V,T,14,p[26]),V=r(V,W,H,P,A,20,p[27]),P=r(P,V,W,H,F,5,p[28]),H=r(H,P,V,W,S,9,p[29]),W=r(W,H,P,V,$,14,p[30]),V=r(V,W,H,P,I,20,p[31]),P=l(P,V,W,H,_,4,p[32]),H=l(H,P,V,W,A,11,p[33]),W=l(W,H,P,V,x,16,p[34]),V=l(V,W,H,P,R,23,p[35]),P=l(P,V,W,H,g,4,p[36]),H=l(H,P,V,W,k,11,p[37]),W=l(W,H,P,V,$,16,p[38]),V=l(V,W,H,P,w,23,p[39]),P=l(P,V,W,H,F,4,p[40]),H=l(H,P,V,W,b,11,p[41]),W=l(W,H,P,V,T,16,p[42]),V=l(V,W,H,P,O,23,p[43]),P=l(P,V,W,H,C,4,p[44]),H=l(H,P,V,W,I,11,p[45]),W=l(W,H,P,V,B,16,p[46]),V=l(V,W,H,P,S,23,p[47]),P=o(P,V,W,H,b,6,p[48]),H=o(H,P,V,W,$,10,p[49]),W=o(W,H,P,V,R,15,p[50]),V=o(V,W,H,P,_,21,p[51]),P=o(P,V,W,H,I,6,p[52]),H=o(H,P,V,W,T,10,p[53]),W=o(W,H,P,V,w,15,p[54]),V=o(V,W,H,P,g,21,p[55]),P=o(P,V,W,H,A,6,p[56]),H=o(H,P,V,W,B,10,p[57]),W=o(W,H,P,V,O,15,p[58]),V=o(V,W,H,P,F,21,p[59]),P=o(P,V,W,H,k,6,p[60]),H=o(H,P,V,W,x,10,p[61]),W=o(W,H,P,V,S,15,p[62]),V=o(V,W,H,P,C,21,p[63]),E[0]=E[0]+P|0,E[1]=E[1]+V|0,E[2]=E[2]+W|0,E[3]=E[3]+H|0},_doFinalize:function(){var c=this._data,f=c.words,m=this._nDataBytes*8,y=c.sigBytes*8;f[y>>>5]|=128<<24-y%32;var D=h.floor(m/4294967296),E=m;f[(y+64>>>9<<4)+15]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,f[(y+64>>>9<<4)+14]=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,c.sigBytes=(f.length+1)*4,this._process();for(var b=this._hash,g=b.words,S=0;S<4;S++){var T=g[S];g[S]=(T<<8|T>>>24)&16711935|(T<<24|T>>>8)&4278255360}return b},clone:function(){var c=d.clone.call(this);return c._hash=this._hash.clone(),c}});function t(c,f,m,y,D,E,b){var g=c+(f&m|~f&y)+D+b;return(g<>>32-E)+f}function r(c,f,m,y,D,E,b){var g=c+(f&y|m&~y)+D+b;return(g<>>32-E)+f}function l(c,f,m,y,D,E,b){var g=c+(f^m^y)+D+b;return(g<>>32-E)+f}function o(c,f,m,y,D,E,b){var g=c+(m^(f|~y))+D+b;return(g<>>32-E)+f}v.MD5=d._createHelper(e),v.HmacMD5=d._createHmacHelper(e)}(Math),i.MD5})})(Kn);var As=Kn.exports;const pi=Zr(As),xs=window.innerWidth<=600?12:void 0;function _n(L){return Object.prototype.toString.call(L)==="[object Object]"}class K extends pt.Component{static DIFFERENT_VALUE="__different__";static DIFFERENT_LABEL="ra___different__";static NONE_VALUE="";static NONE_LABEL="ra_none";defaultValue;isError;lang;defaultSendToDone;sendToTimeout;noPlaceRequired;constructor(n){super(n),this.state={confirmDialog:!1,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},this.isError={},n.schema&&(n.custom?this.defaultValue=n.schema.defaultFunc?this.executeCustom(n.schema.defaultFunc,n.data,n.customObj,n.oContext.instanceObj,n.arrayIndex,n.globalData):n.schema.default:n.schema.type!=="state"&&(this.defaultValue=n.schema.defaultFunc?this.execute(n.schema.defaultFunc,n.schema.default,n.data,n.arrayIndex,n.globalData):n.schema.default)),this.lang=j.I18n.getLanguage()}componentDidMount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr,this.onUpdate);const n=["select","autocomplete","autocompleteSendTo"];if(this.defaultValue!==void 0){const i=K.getValue(this.props.data,this.props.attr);(i===void 0||n.includes(this.props.schema.type)&&(i===""||i===null))&&setTimeout(()=>{this.props.custom?this.props.onChange(this.props.attr,this.defaultValue,()=>setTimeout(()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data),100)):(K.setValue(this.props.data,this.props.attr,this.defaultValue),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)))},100)}else this.props.schema.defaultSendTo&&this.sendTo()}sendTo(){if(this.props.alive){this.defaultSendToDone=!0;let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}else n={attr:this.props.attr,value:K.getValue(this.props.data,this.props.attr)};n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.defaultSendTo,n).then(i=>{i!=null&&(this.props.custom?this.props.onChange(this.props.attr,i,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)):(K.setValue(this.props.data,this.props.attr,i),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data))))})}else this.defaultSendToDone=!1,this.props.schema.allowSaveWithError||this.onError(this.props.attr,j.I18n.t("ra_Instance %s is not alive",this.props.oContext.instance.toString()))}componentWillUnmount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr),this.sendToTimeout&&(clearTimeout(this.sendToTimeout),this.sendToTimeout=null)}onUpdate=n=>{const i=K.getValue(n||this.props.data,this.props.attr)||"";this.state.value!==i?this.setState({value:i}):this.forceUpdate()};static getValue(n,i){if(typeof i=="string")return K.getValue(n,i.split("."));if(i.length===1)return n[i[0]];const h=i.shift();if(typeof h=="string"&&typeof n[h]=="object")return K.getValue(n[h],i)}static setValue(n,i,h){if(typeof i=="string"){K.setValue(n,i.split("."),h);return}if(i.length===1)h===null?delete n[i[0]]:n[i[0]]=h;else{const v=i.shift();if(typeof v!="string")return;(!n[v]||typeof n[v]=="object")&&(n[v]=n[v]||{}),K.setValue(n[v],i,h)}}getText(n,i){if(!n)return"";if(typeof n=="string"){const h=i?n:j.I18n.t(n);return h.includes("${")?this.getPattern(h,null,i):h}return _n(n)?n.func?typeof n.func=="object"?this.getPattern(n.func[this.lang]||n.func.en||"",null,!0):this.getPattern(n.func,null,i):n[this.lang]||n.en||"":n.toString()}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:h=>this.setState({confirmDialog:!1},()=>{if(h){if(this.state.confirmCallback){const s=this.state.confirmCallback;this.setState({confirmCallback:null},()=>s(!0));return}const v=JSON.parse(JSON.stringify(this.props.data));this.state.confirmDepAttr&&K.setValue(v,this.state.confirmDepAttr,this.state.confirmDepNewValue),K.setValue(v,this.state.confirmAttr,this.state.confirmNewValue),this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null},()=>this.props.onChange(v))}else{const v=this.state.confirmCallback;this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},()=>{v&&v(!1)})}})})}getIcon(n){n=n||this.props.schema.icon;let i=null;return n==="auth"?i=M.createElement(Z.Key,null):n==="send"?i=M.createElement(Z.Send,null):n==="web"?i=M.createElement(Z.Public,null):n==="warning"?i=M.createElement(Z.Warning,null):n==="error"?i=M.createElement(Z.Error,null):n==="info"?i=M.createElement(Z.Info,null):n==="search"?i=M.createElement(Z.Search,null):n==="book"?i=M.createElement(Z.MenuBook,null):n==="help"?i=M.createElement(Z.Help,null):n==="upload"?i=M.createElement(Z.UploadFile,null):n==="edit"?i=M.createElement(Z.Edit,null):n==="user"?i=M.createElement(Z.Person,null):n==="group"?i=M.createElement(Z.Group,null):n==="delete"?i=M.createElement(Z.Delete,null):n==="refresh"?i=M.createElement(Z.Refresh,null):n==="add"?i=M.createElement(Z.Add,null):n==="unpair"?i=M.createElement(Z.LinkOff,null):n==="pair"?i=M.createElement(Z.Link,null):n==="save"?i=M.createElement(Z.Save,null):n==="open"?i=M.createElement(Z.OpenInNew,null):n&&((n.endsWith(".png")||n.endsWith(".svg")||n.endsWith(".jpg"))&&!n.startsWith("http://")&&!n.startsWith("https://")&&(n=`./adapter/${this.props.oContext.adapterName}/${n}`),i=M.createElement(j.Icon,{src:n,style:{width:22,height:22}})),i}onChangeAsync(n,i){return new Promise(h=>{const v=this.onChange(n,i,h);v instanceof Promise&&v.catch(s=>console.error(`Cannot set value: ${s}`))})}onChange(n,i,h){const v=JSON.parse(JSON.stringify(this.props.data));if(K.setValue(v,n,i),this.props.schema.confirm&&this.execute(this.props.schema.confirm.condition,!1,v,this.props.arrayIndex,this.props.globalData))return new Promise(u=>{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmData:null},()=>{typeof h=="function"?h():u()})});if(this.props.schema.confirmDependsOn)for(let u=0;u{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmDepNewValue:a,confirmDepAttr:d.attr,confirmData:d.confirm},()=>{typeof h=="function"?h():p()})})}}const s=[];if(this.props.schema.onChangeDependsOn)for(let u=0;uh&&h()),s!=null&&s.length&&s.forEach((u,d)=>setTimeout(()=>this.props.onChange(u,K.getValue(v,u)),d*50))):this.props.onChange(v,void 0,()=>{s.length&&this.props.oContext.forceUpdate(s,v),h&&h()}),Promise.resolve()}execute(n,i,h,v,s){let u;if(_n(n))u=n.func;else if(typeof n=="string")u=n;else return n;if(!u)return i;try{return new Function("data","originalData","_system","_alive","_common","_socket","_instance","arrayIndex","globalData","_changed",u.includes("return")?u:`return ${u}`)(h||this.props.data,this.props.originalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.oContext.instance,v,s,this.props.changed)}catch(d){return console.error(`Cannot execute ${JSON.stringify(n)}: ${d}`),i}}executeCustom(n,i,h,v,s,u){let d;if(_n(n))d=n.func;else if(typeof n=="string")d=n;else return n;if(!d)return null;try{return new Function("data","originalData","_system","instanceObj","customObj","_socket","arrayIndex","globalData","_changed",d.includes("return")?d:`return ${d}`)(i||this.props.data,this.props.originalData,this.props.oContext.systemConfig,v,h,this.props.oContext.socket,s,u,this.props.changed)}catch(a){return console.error(`Cannot execute ${d}: ${a}`),null}}calculate(n){let i,h,v,s;return this.props.custom?(i=n.validator?!this.executeCustom(n.validator,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?h=!0:h=n.disabled?this.executeCustom(n.disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.executeCustom(n.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,s=n.defaultFunc?this.executeCustom(n.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):n.default):(i=n.validator?!this.execute(n.validator,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?h=!0:h=n.disabled?this.execute(n.disabled,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.execute(n.hidden,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,s=n.defaultFunc?this.execute(n.defaultFunc,n.default,this.props.data,this.props.arrayIndex,this.props.globalData):n.default),{error:i,disabled:h,hidden:v,defaultValue:s}}onError(n,i){i?this.isError[n]=i:delete this.isError[n],this.props.onError&&this.props.onError(n,i)}renderItem(n,i,h){return this.getText(this.props.schema.label)||this.getText(this.props.schema.text)}renderHelp(n,i,h){return i?M.createElement("a",{href:i,target:"_blank",rel:"noreferrer",style:{color:this.props.oContext.themeType==="dark"?"#a147ff":"#5b238f",textDecoration:"underline"}},this.getText(n,h)):(n=this.getText(n,h)||"",n&&(n.includes("")||n.includes(""))?j.Utils.renderTextWithA(n):n)}static escapeString(n,i){return typeof n!="string"?"":(n=n.replace(/`/g,"\\`"),n=n.replace(/\${([^}]+)}/g,(h,v)=>{if(v&&typeof v=="string"&&v.startsWith("data.")){const s=K.getValue(i,v.replace(/^data\./,""));if(typeof s=="string"&&s.includes('"'))return`\${${v}.replace(/"/g, '\\\\"')}`}return h}),n)}getPattern(n,i,h){if(i=i||this.props.data,!n)return"";let v;typeof n=="object"?n.func?v=n.func:(console.log(`Object must be stringified: ${JSON.stringify(n)}`),v=JSON.stringify(n)):v=n;try{if(this.props.custom)return new Function("data","originalData","arrayIndex","globalData","_system","instanceObj","customObj","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.oContext.instanceObj,this.props.customObj,this.props.oContext.socket,this.props.changed);const u=new Function("data","originalData","arrayIndex","globalData","_system","_alive","_common","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.changed);return h?u:j.I18n.t(u)}catch(s){return console.error(`Cannot execute ${v}: ${s}`),v}}render(){const n=this.props.schema;if(!n||this.props.expertMode===!1&&n.expertMode)return null;this.props.alive&&this.defaultSendToDone===!1&&(this.sendToTimeout=setTimeout(()=>{this.sendToTimeout=null,this.sendTo()},200));const{error:i,disabled:h,hidden:v,defaultValue:s}=this.calculate(n);if(v){if(Object.keys(this.isError).length&&(setTimeout(a=>Object.keys(a).forEach(p=>this.props.onError(p)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}),n.hideOnlyControl){const a=M.createElement(N.Grid2,{size:{xs:n.xs||xs,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}});return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),a):a}return null}n.validatorNoSaveOnError&&(i&&!Object.keys(this.isError).length?(this.isError={[this.props.attr]:n.validatorErrorText?j.I18n.t(n.validatorErrorText):!0},setTimeout(a=>Object.keys(a).forEach(p=>this.props.onError(p,a[p])),100,JSON.parse(JSON.stringify(this.isError)))):!i&&Object.keys(this.isError).length&&(setTimeout(a=>Object.keys(a).forEach(p=>this.props.onError(p)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}));const u=this.renderItem(i,h||this.props.commandRunning||this.props.disabled,s);if(this.noPlaceRequired)return u;const d=M.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",width:n.type==="divider"||n.type==="header"?n.width||"100%":void 0,...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}},this.props.schema.defaultSendTo&&this.props.schema.button?M.createElement(N.Grid2,{container:!0,style:{width:"100%"}},M.createElement(N.Grid2,{flex:1},u),M.createElement(N.Grid2,null,M.createElement(N.Button,{disabled:h,variant:"outlined",onClick:()=>this.sendTo(),title:this.props.schema.buttonTooltip?this.getText(this.props.schema.buttonTooltip,this.props.schema.buttonTooltipNoTranslation):j.I18n.t("ra_Request data by instance")},this.getText(this.props.schema.button)))):u);return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),this.renderDialogConfirm(),d):this.state.confirmDialog?M.createElement(M.Fragment,null,this.renderDialogConfirm(),d):d}}const Ge={fullWidth:{width:"100%"},accordionSummary:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"}),accordionTitle:{},toolbar:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)",borderRadius:"3px"}),tooltip:{pointerEvents:"none"}};class $s extends K{typingTimer=null;constructor(n){super(n),this.props.schema.items=this.props.schema.items||[]}componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr)||[];Array.isArray(n)||(n=[]),this.setState({value:n,activeIndex:-1,iteration:0})}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),super.componentWillUnmount()}itemAccordion(n,i){const{value:h}=this.state,{schema:v}=this.props,s={type:"panel",items:v.items.reduce((u,d)=>(u[d.attr]=d,u),{}),style:{marginLeft:"-8px",marginTop:"10px",marginBottom:"10px"}};return M.createElement($t,{oContext:this.props.oContext,index:i+this.state.iteration,arrayIndex:i,changed:this.props.changed,expertMode:this.props.expertMode,globalData:this.props.data,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:n,custom:!0,schema:s,originalData:this.props.originalData,onChange:(u,d)=>{const a=JSON.parse(JSON.stringify(h));a[i][u]=d,this.setState({value:a},()=>this.onChangeWrapper(a))},onError:(u,d)=>this.onError(u,d),table:this.props.table})}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),h=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof h[this.props.schema.clone]=="string"){let v=1,s=h[this.props.schema.clone];const u=s.match(/(\d+)$/);for(u?(s=s.replace(u[0],""),v=parseInt(u[0],10)+1):s+="_";i.find(d=>d[this.props.schema.clone]===s+v.toString());)v++;h[this.props.schema.clone]=`${h[this.props.schema.clone]}_${v}`}i.splice(n,0,h),this.setState({value:i,activeIndex:-1,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onChangeWrapper=n=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout(i=>{this.typingTimer=null;const h=this.onChange(this.props.attr,i);h instanceof Promise&&h.catch(v=>this.onError(v))},300,n)};onAdd=()=>{const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),h=n.items&&n.items.reduce((v,s)=>{let u;return s.defaultFunc?this.props.custom?u=s.defaultFunc?this.executeCustom(s.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:u=s.defaultFunc?this.execute(s.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:u=s.default===void 0?null:s.default,v[s.attr]=u,v},{});i.push(h),this.setState({value:i,activeIndex:i.length-1},()=>this.onChangeWrapper(i))};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),h=i[n];i.splice(n,1),i.splice(n-1,0,h);const v=this.state.activeIndex-1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),h=i[n];i.splice(n,1),i.splice(n+1,0,h);const v=this.state.activeIndex+1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}renderItem(){const{schema:n}=this.props,{value:i}=this.state;return i?M.createElement(N.Paper,null,n.label||!n.noDelete?M.createElement(N.Toolbar,{variant:"dense"},n.label?M.createElement(N.Typography,{variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)):null,n.noDelete?null:M.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},M.createElement(Z.Add,null))):null,i.map((h,v)=>M.createElement(N.Accordion,{key:`${h}_${v}`,expanded:this.state.activeIndex===v,onChange:(s,u)=>this.setState({activeIndex:u?v:-1})},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,Ge.fullWidth,Ge.accordionSummary)},M.createElement(N.Typography,{style:Ge.accordionTitle},h[n.titleAttr])),M.createElement(N.AccordionDetails,{style:{...n.style,...this.props.oContext.themeType?n.darkStyle:void 0}},this.itemAccordion(i[v],v),M.createElement(N.Toolbar,{sx:Ge.toolbar},v?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(v)},M.createElement(Z.ArrowUpward,null))):M.createElement("div",{style:Ge.buttonEmpty}),vthis.onMoveDown(v)},M.createElement(Z.ArrowDownward,null))):M.createElement("div",{style:Ge.buttonEmpty}),n.noDelete?null:M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(v)},M.createElement(Z.Delete,null))),n.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(v)},M.createElement(Z.ContentCopy,null))):null)))),!n.noDelete&&i.length>0?M.createElement(N.Toolbar,{variant:"dense",sx:Ge.rootTool},M.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},M.createElement(Z.Add,null))):null,n.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null):null}}const di={root:{width:"100%"},notAlive:{color:"#a30000"}};class Ts extends K{componentDidMount(){super.componentDidMount();const n=this.getInstance();this.props.oContext.socket.getState(`${n}.alive`).then(i=>this.setState({alive:!!(i&&i.val),instance:n}))}getInstance(){let n=this.props.schema.instance||`${this.props.oContext.adapterName}.${this.props.oContext.instance}`;return n.includes("${")&&(n=this.getPattern(n,null,!0)),n&&!n.startsWith("system.adapter.")&&(n=`system.adapter.${n}`),n}renderItem(){if(this.getInstance()!==this.state.instance&&setTimeout(()=>{const i=this.getInstance();i?this.props.oContext.socket.getState(`${i}.alive`).then(h=>this.setState({alive:!!(h&&h.val),instance:i})):this.setState({alive:null,instance:i})},200),this.state.alive!==!1&&this.state.alive!==!0)return null;const n=this.state.instance.replace(/^system.adapter./,"");return M.createElement("div",{style:{...di.root,...this.state.alive?void 0:di.notAlive}},this.state.alive?this.props.schema.textAlive!==void 0?this.props.schema.textAlive?j.I18n.t(this.props.schema.textAlive,n):"":j.I18n.t("ra_Instance %s is alive",n):this.props.schema.textNotAlive!==void 0?this.props.schema.textNotAlive?j.I18n.t(this.props.schema.textNotAlive,n):"":j.I18n.t("ra_Instance %s is not alive",n))}}class _s extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options.map(h=>typeof h=="string"?{label:h,value:h}:JSON.parse(JSON.stringify(h)));Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}renderItem(n,i){if(!this.state.selectOptions)return null;let h;const v=JSON.parse(JSON.stringify(this.state.selectOptions));return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE?([...this.state.value].filter(u=>!v.find(d=>typeof d=="object"?d.value===u:d===u)).forEach(u=>v.push({label:u.toString(),value:u})),h={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(h)):(h=this.state.value!==null&&this.state.value!==void 0&&v.find(u=>typeof u=="object"?u.value==this.state.value:u==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!h&&this.props.schema.freeSolo&&(h={value:this.state.value,label:this.state.value},v.push(h))),M.createElement(N.Autocomplete,{fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,value:h,options:v,isOptionEqualToValue:(u,d)=>u.value===d.value,filterOptions:(u,d)=>{const a=u.filter(p=>d.inputValue===""?!0:p.label.toLowerCase().includes(d.inputValue.toLowerCase())||p.value.toLowerCase().includes(d.inputValue.toLowerCase()));return this.props.schema.freeSolo&&d.inputValue!==""&&a.push({label:d.inputValue,value:d.inputValue}),a},onInputChange:u=>{if(!u||!this.props.schema.freeSolo)return;const d=u.target.value;d!==this.state.value&&this.setState({value:d},()=>this.onChange(this.props.attr,d))},onChange:(u,d)=>{const a=typeof d=="object"?d?d.value:"":d;a!==this.state.value&&this.setState({value:a},()=>this.onChange(this.props.attr,a))},getOptionLabel:u=>typeof u=="object"?(u==null?void 0:u.label)??"":"",renderInput:u=>M.createElement(N.TextField,{variant:"standard",...u,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})})}}class ks extends K{initialized=!1;localContext;askInstance(){const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options?this.props.schema.options.map(h=>typeof h=="string"?{label:h,value:h}:JSON.parse(JSON.stringify(h))):[];if(this.props.alive){let h=this.props.schema.data;if(h===void 0&&this.props.schema.jsonData){const v=this.getPattern(this.props.schema.jsonData,null,!0);try{typeof v=="string"&&(h=JSON.parse(v))}catch{console.error(`Cannot parse json data: ${JSON.stringify(h)}`)}}h===void 0&&(h=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",h).then(v=>{v&&Array.isArray(v)&&v.forEach(s=>i.push(typeof s=="string"?{label:s,value:s}:JSON.parse(JSON.stringify(s)))),Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})})}else Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(n,i){if(this.props.alive){const u=this.getContext();(u!==this.localContext||!this.initialized)&&(this.localContext=u,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}let h;const v=this.state.selectOptions?JSON.parse(JSON.stringify(this.state.selectOptions)):[];return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_LABEL?([...this.state.value].filter(u=>!v.find(d=>d.value===u)).forEach(u=>v.push({label:u.toString(),value:u})),h={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(h)):(h=this.state.value!==null&&this.state.value!==void 0&&v.find(u=>u.value==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!h&&this.props.schema.freeSolo&&(h={value:this.state.value,label:this.state.value},v.push(h)),h=h||null),v.length?M.createElement(N.Autocomplete,{value:h,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,options:v,isOptionEqualToValue:(u,d)=>u.value===d.value,filterOptions:(u,d)=>{const a=u.filter(p=>d.inputValue===""?!0:p.label.toLowerCase().includes(d.inputValue.toLowerCase())||p.value.toLowerCase().includes(d.inputValue.toLowerCase()));return this.props.schema.freeSolo&&d.inputValue!==""&&a.push({label:d.inputValue,value:d.inputValue}),a},getOptionLabel:u=>(u==null?void 0:u.label)??"",onInputChange:u=>{if(!u||!this.props.schema.freeSolo)return;const d=u.target.value;d!==this.state.value&&this.setState({value:d},()=>this.onChange(this.props.attr,d))},onChange:(u,d)=>{const a=typeof d=="object"?d?d.value:"":d;a!==this.state.value&&this.setState({value:a},()=>this.onChange(this.props.attr,a))},renderInput:u=>M.createElement(N.TextField,{variant:"standard",...u,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})}):M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},onChange:u=>{const d=u.target.value;this.setState({value:d},()=>this.onChange(this.props.attr,(d||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const kn={fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Ms extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,h=K.getValue(n,i)||"";this.setState({value:h,showDialog:!1})}renderItem(n,i){const{schema:h,attr:v}=this.props,{value:s,showDialog:u}=this.state;return M.createElement(N.FormControl,{style:kn.fullWidth,variant:"standard"},h.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(h.label)):null,M.createElement("div",{style:kn.flex},M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:s??"",error:!!n,disabled:i,placeholder:this.getText(h.placeholder),label:this.getText(h.label),helperText:this.renderHelp(h.help,h.helpLink,h.noTranslation),onChange:d=>{const a=d.target.value;this.setState({value:a},()=>this.onChange(v,a))}}),M.createElement(N.Button,{color:"grey",disabled:i,style:kn.button,size:"small",variant:"outlined",onClick:()=>this.setState({showDialog:!0})},"...")),u?M.createElement(j.DialogCron,{title:j.I18n.t("ra_Define schedule"),simple:h.simple,complex:h.complex,cron:s,onClose:()=>this.setState({showDialog:!1}),cancel:j.I18n.t("ra_Cancel"),ok:j.I18n.t("ra_Ok"),theme:this.props.oContext.theme,onOk:d=>this.setState({showDialog:!1,value:d},()=>this.onChange(v,d))}):null)}}class Ls extends K{async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),h=(await this.props.oContext.socket.getCertificates()).filter(v=>{const s=this.props.attr.toLowerCase();return s.includes(v.type)||v.type==="public"&&s.includes("cert")||v.type==="private"&&(s.includes("priv")||s.includes("key"))?!0:!!(v.type==="chained"&&(s.includes("chain")||s.includes("ca")))}).map(v=>({label:v.name,value:v.name}));h.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:h})}renderItem(n,i){var v,s;if(!this.state.selectOptions)return null;const h=(v=this.state.selectOptions)==null?void 0:v.find(u=>u.value===this.state.value);return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>this.getText(h==null?void 0:h.label,this.props.schema.noTranslation!==!1),onChange:u=>this.setState({value:u.target.value},()=>this.onChange(this.props.attr,this.state.value))},(s=this.state.selectOptions)==null?void 0:s.map(u=>M.createElement(N.MenuItem,{key:u.value,value:u.value,style:u.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(u.label,this.props.schema.noTranslation!==!1)))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const zt={fullWidth:{width:"100%"},leWidth:{width:620,marginBottom:10},certWidth:{width:200,marginRight:10}};class Is extends K{async componentDidMount(){var d;super.componentDidMount();const n=await this.props.oContext.socket.getCertificates(),i=[],h=[],v=[];let s=[];const u=await this.props.oContext.socket.getObject("system.certificates");(d=u==null?void 0:u.native)!=null&&d.collections?s=Object.keys(u.native.collections):s=null,n.forEach(a=>{a.type==="public"?i.push({label:a.name,value:a.name}):a.type==="private"?h.push({label:a.name,value:a.name}):a.type==="chained"?v.push({label:a.name,value:a.name}):(i.push({label:a.name,value:a.name}),h.push({label:a.name,value:a.name}),v.push({label:a.name,value:a.name}))}),i.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),h.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),v.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({certsPublicOptions:i,certsChainOptions:v,certsPrivateOptions:h,collectionsOptions:s})}renderItem(n,i){var e,t,r,l,o,c,f;if(!this.state.certsPublicOptions||!this.state.certsPrivateOptions||!this.state.certsChainOptions)return null;const h=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString(),v=K.getValue(this.props.data,this.props.schema.certPublicName||"certPublic"),s=K.getValue(this.props.data,this.props.schema.certPrivateName||"certPrivate"),u=K.getValue(this.props.data,this.props.schema.certChainedName||"certChained"),d=(e=this.state.certsPublicOptions)==null?void 0:e.find(m=>m.value===v),a=(t=this.state.certsPrivateOptions)==null?void 0:t.find(m=>m.value===s),p=(r=this.state.certsChainOptions)==null?void 0:r.find(m=>m.value===u);return M.createElement("div",{style:zt.fullWidth},this.state.collectionsOptions?M.createElement(N.FormControl,{style:zt.leWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},"Let's encrypt"),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:h,onChange:m=>this.onChange(this.props.schema.leCollectionName||"leCollection",m.target.value==="false"?!1:m.target.value==="true"?!0:m.target.value)},M.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),M.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(l=this.state.collectionsOptions)==null?void 0:l.map(m=>M.createElement(N.MenuItem,{key:m,value:m},m)))):null,this.state.collectionsOptions?M.createElement("br",null):null,this.state.collectionsOptions&&h!=="false"?M.createElement("div",null,j.I18n.t("ra_Fallback custom certificates")):null,M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Public certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:v||"",renderValue:()=>this.getText(d==null?void 0:d.label),onChange:m=>this.onChange(this.props.schema.certPublicName||"certPublic",m.target.value)},(o=this.state.certsPublicOptions)==null?void 0:o.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Private certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:s||"",renderValue:()=>this.getText(a==null?void 0:a.label),onChange:m=>this.onChange(this.props.schema.certPrivateName||"certPrivate",m.target.value)},(c=this.state.certsPrivateOptions)==null?void 0:c.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Chained certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:u||"",renderValue:()=>this.getText(p==null?void 0:p.label),onChange:m=>this.onChange(this.props.schema.certChainedName||"certChained",m.target.value)},(f=this.state.certsChainOptions)==null?void 0:f.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))))}}class Fs extends K{async componentDidMount(){var h;super.componentDidMount();let n;const i=await this.props.oContext.socket.getObject("system.certificates");(h=i==null?void 0:i.native)!=null&&h.collections?n=Object.keys(i.native.collections):n=[],this.setState({collectionsOptions:n})}renderItem(n,i){var v;if(!this.state.collectionsOptions)return null;const h=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString();return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:h,onChange:s=>this.onChange(this.props.schema.leCollectionName||"leCollection",s.target.value==="false"?!1:s.target.value==="true"?!0:s.target.value)},M.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),M.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(v=this.state.collectionsOptions)==null?void 0:v.map(s=>M.createElement(N.MenuItem,{key:s,value:s},s))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const We={fullWidth:{width:"100%"},licLabel:{fontWeight:"bold",minWidth:100,marginRight:10,textTransform:"capitalize",display:"inline-block"},errorTitle:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020"}),okTitle:L=>({color:L.palette.mode==="dark"?"#6fd56f":"#007c00"}),errorText:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020",mb:"30px"})};class ct extends K{componentDidMount(){super.componentDidMount(),this.setState({_error:"",running:!1,showLicenseData:null,foundSuitableLicense:!1,licenseOfflineCheck:!1,result:null,allLicenses:null,askForUpdate:!1,showLinkToProfile:!1})}renderErrorDialog(){if(this.state._error&&!this.state.showLicenseData){let n=this.state._error;return this.state.allLicenses&&(n=[M.createElement("div",{key:"error"},n)],n.push(M.createElement(N.Button,{key:"button",variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},j.I18n.t("iobroker.net"))),this.state.allLicenses.length?n.push(M.createElement(N.TableContainer,{key:"table"},M.createElement(N.Table,{size:"small"},M.createElement(N.TableHead,null,M.createElement(N.TableRow,null,M.createElement(N.TableCell,null,j.I18n.t("ra_Product")),M.createElement(N.TableCell,null,j.I18n.t("ra_Version")),M.createElement(N.TableCell,null,"UUID"),M.createElement(N.TableCell,null,j.I18n.t("ra_ValidTill")),M.createElement(N.TableCell,null,j.I18n.t("ra_Commercial")),M.createElement(N.TableCell,null,"ID"))),M.createElement(N.TableBody,null,this.state.allLicenses.map(i=>M.createElement(N.TableRow,{key:i.id},M.createElement(N.TableCell,{sx:i.validName?null:We.errorText},i.license.product),M.createElement(N.TableCell,{sx:i.validVersion?null:We.errorText},i.license.version),M.createElement(N.TableCell,{sx:i.validUuid?null:We.errorText},i.license.uuid||"--"),M.createElement(N.TableCell,{sx:i.validTill?null:We.errorText},i.license.validTill&&i.license.validTill!=="0000-00-00 00:00:00"?new Date(i.license.validTill).toLocaleDateString():"--"),M.createElement(N.TableCell,null,i.license.invoice!=="free"?i.license.invoice==="MANUALLY_CREATED"?"✓":i.license.invoice:"-"),M.createElement(N.TableCell,null,i.id))))))):(n.push(M.createElement("div",{key:"text1"},j.I18n.t("ra_No one license found in license manager"))),n.push(M.createElement("div",{key:"text2"},j.I18n.t("ra_Please create license"))))),M.createElement(N.Dialog,{open:!0,maxWidth:"xl",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClick:()=>this.setState({_error:"",allLicenses:null})},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Error")),M.createElement(N.DialogContent,null,M.createElement(N.DialogContentText,null,n)),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({_error:"",allLicenses:null}),color:"primary",autoFocus:!0,startIcon:M.createElement(Z.Check,null)},j.I18n.t("ra_Ok"))))}return null}renderMessageDialog(){if(this.state.showLicenseData){const n=[],i=this.state.showLicenseData;return Object.keys(i).forEach(h=>{if(!(i[h]===null||i[h]===void 0))if(typeof i[h]=="object"){const v=i[h];Object.keys(v).forEach(s=>{v[s]!==null&&v[s]!==void 0&&(typeof v[s]=="object"?n.push(M.createElement("div",{key:s},M.createElement("div",{style:We.licLabel},s,":"),JSON.stringify(v[s],null,2))):n.push(M.createElement("div",{key:s},M.createElement("div",{style:We.licLabel},h," -",s,":"),v[s].toString())))})}else n.push(M.createElement("div",{key:h},M.createElement("div",{style:We.licLabel},h.replace(/_/g," "),":"),i[h].toString()))}),n.push(M.createElement("div",{key:"checked"},M.createElement("div",{style:We.licLabel},j.I18n.t("ra_Checked"),":"),this.state.licenseOfflineCheck?j.I18n.t("ra_locally"):j.I18n.t("ra_via internet"))),M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showLicenseData:null})},M.createElement(N.DialogTitle,null,M.createElement(N.Box,{component:"span",sx:this.state.result?We.okTitle:We.errorTitle},j.I18n.t("ra_License %s",this.state.result?"OK":"INVALID"))),M.createElement(N.DialogContent,null,this.state.showLinkToProfile?M.createElement(N.Button,{variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},"https://iobroker.net"):null,this.state._error?M.createElement(N.Box,{component:"div",sx:We.errorText},this.state._error):null,n),M.createElement(N.DialogActions,null,M.createElement(N.Button,{onClick:()=>this.setState({showLicenseData:null,_error:""}),color:"primary",variant:"contained"},j.I18n.t("ra_Close"))))}return null}static parseJwt(n){const h=n.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),v=decodeURIComponent(atob(h).split("").map(s=>`%${`00${s.charCodeAt(0).toString(16)}`.slice(-2)}`).join(""));try{return JSON.parse(v)}catch{return null}}static isVersionValid(n,i,h,v){if(!i||!n)return!0;let s=!0;const[u]=n.split(".");return i.startsWith(">=")?s=parseInt(u,10)>=parseInt(i.substring(2,10)):i.startsWith("<=")?s=parseInt(u,10)<=parseInt(i.substring(2,10)):i.startsWith(">")?s=parseInt(u,10)>parseInt(i.substring(1,10)):i.startsWith("<")?s=parseInt(u,10){const l=!r.validTill||r.validTill==="0000-00-00 00:00:00"||new Date(r.validTill).getTime()>p,o=(r.product||"").split("."),c=o[1]===n||n==="vis-2"&&o[1]==="vis",f=!e||!r.uuid||r.uuid===e,m=ct.isVersionValid(t,r.version,r.invoice,n);(!a||r.invoice!=="free")&&l&&c&&f&&m&&(a=r),h.push({id:r.id,validName:c,validUuid:f,validVersion:m,validTill:l,license:r})}),a&&(h.find(r=>r.id===a.id).used=!0)}return h}async checkLicense(n,i){var d,a,p;let h;if(this.props.schema.uuid){const e=await this.props.oContext.socket.getObject("system.meta.uuid");h=(d=e==null?void 0:e.native)==null?void 0:d.uuid}let v;if(this.props.schema.version){const e=await this.props.oContext.socket.getObject(`system.adapter.${i}`);v=(a=e==null?void 0:e.common)==null?void 0:a.version}const s=new AbortController;let u=setTimeout(()=>{u=null,s.abort()},5e3);try{const e=await window.fetch("https://iobroker.net/api/v1/public/cert/",{method:"POST",body:JSON.stringify({json:n,uuid:h}),headers:{"Content-Type":"text/plain"},signal:s.signal});u&&clearTimeout(u);const t=await e.text();let r;try{r=JSON.parse(t)}catch{}if(r!=null&&r.error)try{const l=ct.parseJwt(n),o=j.I18n.t(`ra_${l.error||r.error||"Unknown error"}`).replace(/^ra_/,"");return this.setState({_error:o,licenseOfflineCheck:!1,showLicenseData:l,result:!1,running:!1})}catch{return console.log("Cannot parse license"),this.setState({_error:r.error,result:!1,running:!1})}else{let l=null;try{l=ct.parseJwt(n)}catch{}if(r){const o=r.validTill||r.valid_till;if(o&&o!=="0000-00-00 00:00:00"&&new Date(o).getTime(){if(n){this.setState({askForUpdate:!1});try{await this.props.oContext.socket.updateLicenses(null,null)}catch(i){window.alert(j.I18n.t("ra_Cannot read licenses: %s",i));return}await this._onClick(!0)}else this.setState({askForUpdate:!1,running:!1})}}):null}async _onClick(n){const i=this.props.oContext.adapterName==="vis-2"?"vis":this.props.oContext.adapterName;this.setState({running:!0});let h,v;if(this.props.data.useLicenseManager){if(v=await this.findInLicenseManager(i),h=v.find(s=>s.used),h&&(h=h.license.json),!h&&!n){this.setState({askForUpdate:!0});return}}else h=this.props.data.license;h?await this.checkLicense(h,i):this.props.data.useLicenseManager?this.setState({_error:j.I18n.t("ra_Suitable license not found in license manager"),result:!1,running:!1,allLicenses:v}):this.setState({_error:j.I18n.t("ra_Please enter the license"),result:!1,running:!1})}renderItem(){return M.createElement("div",{style:We.fullWidth},M.createElement(N.Button,{variant:this.props.schema.variant||"outlined",color:this.props.schema.color||"primary",style:We.fullWidth,disabled:!this.props.data.license&&!this.props.data.useLicenseManager||this.state.running,startIcon:M.createElement(Z.Send,null),onClick:()=>this._onClick()},this.state.running?M.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label||"ra_Check license",this.props.schema.noTranslation)),this.renderMessageDialog(),this.renderErrorDialog(),this.renderAskForUpdate())}}class Os extends K{renderItem(n,i){const h=K.getValue(this.props.data,this.props.attr),v=Array.isArray(h);return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},M.createElement(N.FormControlLabel,{onClick:s=>{if(s.preventDefault(),s.stopPropagation(),!i){const u=this.onChange(this.props.attr,!h);u instanceof Promise&&u.catch(d=>console.error(`Cannot set value: ${d}`))}},control:M.createElement(N.Checkbox,{indeterminate:v,checked:!!h,onChange:s=>{let u;v?u=this.onChange(this.props.attr,!0):u=this.onChange(this.props.attr,s.target.checked),u instanceof Promise&&u.catch(d=>console.error(`Cannot set value: ${d}`))},disabled:i||this.props.schema.readOnly}),label:this.getText(this.props.schema.label)}),M.createElement(N.FormHelperText,{style:{color:"red"}},n?this.props.schema.validatorErrorText?j.I18n.t(this.props.schema.validatorErrorText):j.I18n.t("ra_Error"):null),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Rs={standard:N.Input,filled:is,outlined:N.OutlinedInput},Ns=L=>{const n=L.palette.mode==="light",i=n?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{},inputRoot:{display:"inline-flex",flexWrap:"wrap",flex:1,marginTop:0,minWidth:70,"&.mui-variant-outlined,&.mui-variant-filled":{boxSizing:"border-box"},"&.mui-variant-outlined":{paddingTop:"14px"},"&.mui-variant-filled":{paddingTop:"28px"}},input:{display:"inline-block",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",appearance:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",float:"left",flex:1},chipContainer:{display:"flex",flexFlow:"row wrap",alignItems:"center",cursor:"text",marginBottom:"-2px",minHeight:40},outlined:{"& input":{height:16,paddingTop:"4px",paddingBottom:"12px",marginTop:"4px",marginBottom:"4px"}},standard:{marginTop:"18px"},filled:{"& input":{height:22,marginBottom:"4px",marginTop:"4px",paddingTop:0},"$marginDense & input":{height:26}},labeled:{},label:{top:4,"&$outlined&:not($labelShrink)":{top:2,"$marginDense &":{top:5}},"&$filled&:not($labelShrink)":{top:15,"$marginDense &":{top:20}}},labelShrink:{top:0},helperText:{marginBottom:-20},focused:{},disabled:{},underline:{"&:after":{borderBottom:`2px solid ${L.palette.primary[n?"dark":"light"]}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:L.transitions.create("transform",{duration:L.transitions.duration.shorter,easing:L.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:L.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:`1px solid ${i}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:L.transitions.create("border-bottom-color",{duration:L.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):not($focused):not($error):before":{borderBottom:`2px solid ${L.palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${i}`}},"&$disabled:before":{borderBottomStyle:"dotted"}},error:{"&:after":{backgroundColor:L.palette.error.main,transform:"scaleX(1)"}},chip:{margin:"0 8px 8px 0",float:"left"},marginDense:{}}},rn={BACKSPACE:8,DELETE:46,LEFT_ARROW:37,RIGHT_ARROW:39},Bs=({value:L,isFocused:n,isDisabled:i,isReadOnly:h,handleClick:v,handleDelete:s,style:u},d)=>M.createElement(N.Chip,{key:d,style:{...u,pointerEvents:i||h?"none":void 0,backgroundColor:n?rs[300]:void 0},onClick:v,onDelete:s,label:L});class Ps extends M.Component{labelRef;labelNode=null;input;newChipKeyCodes;newChipKeys;actualInput=null;inputBlurTimeout=null;_keyPressed;_preventChipCreation;styles={};styleTheme=null;constructor(n){super(n),this.state={chips:n.defaultValue||[],focusedChip:null,inputValue:"",isFocused:!1,chipsUpdated:!1,prevPropsValue:[],variant:this.props.variant||"standard"},this.newChipKeyCodes=n.newChipKeyCodes||[13],this.newChipKeys=n.newChipKeys||["Enter"],this.labelRef=M.createRef(),this.input=M.createRef()}componentDidMount(){this.state.variant==="outlined"&&(this.labelNode=ns.findDOMNode(this.labelRef.current),this.forceUpdate())}componentWillUnmount(){this.inputBlurTimeout&&clearTimeout(this.inputBlurTimeout)}static getDerivedStateFromProps(n,i){let h=null;return n.value&&n.value.length!==i.prevPropsValue.length&&(h={prevPropsValue:n.value},n.clearInputValueOnChange&&(h.inputValue="")),n.clearInputValueOnChange&&n.value&&n.value.length!==i.prevPropsValue.length&&(h={prevPropsValue:n.value,inputValue:""}),n.disabled&&(h={...h,focusedChip:null}),!i.chipsUpdated&&n.defaultValue&&(h={...h,chips:n.defaultValue}),h}focus=()=>{var n;(n=this.actualInput)==null||n.focus(),this.state.focusedChip&&this.setState({focusedChip:null})};handleInputBlur=n=>{this.props.onBlur&&this.props.onBlur(n),this.setState({isFocused:!1}),this.state.focusedChip&&this.setState({focusedChip:null});const i=n.target.value;let h;switch(this.props.blurBehavior||"clear"){case"add-or-clear":h={clearInputOnFail:!0};case"add":if(this.props.delayBeforeAdd){const v=(this.props.value||this.state.chips).length;this.inputBlurTimeout=setTimeout(()=>{const s=(this.props.value||this.state.chips).length;v===s?this.handleAddChip(i,h):this.clearInput()},150)}else this.handleAddChip(i,h);break;case"clear":this.clearInput();break}};handleInputFocus=n=>{this.setState({isFocused:!0}),this.props.onFocus&&this.props.onFocus(n)};handleKeyDown=n=>{const{focusedChip:i}=this.state;if(this._keyPressed=!1,this._preventChipCreation=!1,this.props.onKeyDown&&(this.props.onKeyDown(n),n.isDefaultPrevented()))return;const h=this.props.value||this.state.chips;if(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key)){this.handleAddChip(n.target.value)!==!1&&n.preventDefault();return}switch(n.keyCode){case rn.BACKSPACE:n.target.value===""&&(i?(this.handleDeleteChip(h[i],i),i&&this.setState({focusedChip:i-1})):this.setState({focusedChip:h.length-1}));break;case rn.DELETE:n.target.value===""&&i&&(this.handleDeleteChip(h[i],i),i<=h.length-1&&this.setState({focusedChip:i}));break;case rn.LEFT_ARROW:i===null&&n.target.value===""&&h.length?this.setState({focusedChip:h.length-1}):i!==null&&i>0&&this.setState({focusedChip:i-1});break;case rn.RIGHT_ARROW:i!==null&&i{!this._preventChipCreation&&(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key))&&this._keyPressed?this.clearInput():this.updateInput(n.target.value),this.props.onKeyUp&&this.props.onKeyUp(n)};handleUpdateInput=n=>{(this.props.inputValue===null||this.props.inputValue===void 0)&&this.updateInput(n.target.value),this.props.onUpdateInput&&this.props.onUpdateInput(n)};handleAddChip(n,i){if(this.props.onBeforeAdd&&!this.props.onBeforeAdd(n))return this._preventChipCreation=!0,i&&i.clearInputOnFail&&this.clearInput(),!1;this.clearInput();const h=this.props.value||this.state.chips;return n.trim().length?((this.props.allowDuplicates||!h.includes(n))&&(this.props.value&&this.props.onAdd?this.props.onAdd(n):this.updateChips([...this.state.chips,n])),!0):!1}handleDeleteChip(n,i){if(this.props.value)this.props.onDelete&&this.props.onDelete(n,i);else{const h=this.state.chips.slice();if(h.splice(i,1)){let s=this.state.focusedChip;this.state.focusedChip===i?s=null:this.state.focusedChip>i&&(s=this.state.focusedChip-1),this.updateChips(h,{focusedChip:s})}}}updateChips(n,i={}){this.setState({chips:n,chipsUpdated:!0,...i}),this.props.onChange&&this.props.onChange(n)}clearInput(){this.updateInput("")}updateInput(n){this.setState({inputValue:n})}setActualInputRef=n=>{this.actualInput=n,this.props.inputRef&&this.props.inputRef(n)};render(){const{alwaysShowPlaceholder:n,chipRenderer:i=Bs,className:h,disabled:v,disableUnderline:s,error:u,FormHelperTextProps:d,fullWidth:a,fullWidthInput:p,helperText:e,id:t,InputProps:r={},InputLabelProps:l={},inputValue:o,label:c,placeholder:f,readOnly:m,required:y,rootRef:D,value:E,margin:b}=this.props,g=this.state.variant;this.styleTheme!==this.props.theme.palette.mode&&(this.styleTheme=this.props.theme.palette.mode,this.styles=j.Utils.getStyle(this.props.theme,Ns));let S=E||this.state.chips||[];Array.isArray(S)||(S=(S||"").toString().split(/[,\s]+/).map(C=>C.trim()));const T=o??this.state.inputValue,k=(this.props.value||T).length||T.length,_=typeof l.shrink=="boolean"?l.shrink:c!==null&&(k||this.state.isFocused||S.length),O=S.map((C,w)=>i({value:C,isDisabled:!!v,isReadOnly:m,isFocused:this.state.focusedChip===w,handleClick:()=>this.setState({focusedChip:w}),handleDelete:()=>this.handleDeleteChip(C,w),style:this.styles.chip},w.toString())),$={};g==="outlined"&&($.notched=!!_,$.labelWidth=_&&this.labelNode&&this.labelNode.offsetWidth||0),g!=="standard"?$.startAdornment=O:r.disableUnderline=!0;const A=Rs[g];return M.createElement(N.FormControl,{ref:D,fullWidth:a,className:h,sx:{...this.styles.root,...b==="dense"?this.styles.marginDense:{}},error:u,required:S.length>0?void 0:y,onClick:this.focus,disabled:v,variant:g,component:"div",margin:b},c&&M.createElement(N.InputLabel,{htmlFor:t,sx:{"&.MuiInputLabel-root":this.styles.label,"&.MuiInputLabel-shrink":this.styles.labelShrink},shrink:!!_,focused:this.state.isFocused,variant:g,ref:this.labelRef,required:y,component:"label",...l},c),M.createElement(N.Box,{component:"div",id:"input-chip-container",sx:{...this.styles[g],...this.styles.chipContainer,...this.state.isFocused?this.styles.focused:void 0,...!s&&g==="standard"?this.styles.underline:void 0,...v?this.styles.disabled:void 0,...c?this.styles.labeled:void 0,...u?this.styles.error:void 0}},g==="standard"&&O,M.createElement(A,{ref:this.input,className:`mui-variant-${this.styles[g]} ${c?"mui-chip-with-label":"mui-chip-no-label"}`,sx:{"&.MuiInputBase-input":{...this.styles.input,...this.styles[g]},"&.MuiInputBase-root":{...this.styles.inputRoot}},id:t,value:T,onChange:this.handleUpdateInput,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,inputRef:this.setActualInputRef,disabled:v,fullWidth:p,placeholder:!k&&(_||c===null||c===void 0)||n?f:null,readOnly:m,...r,...$})),e&&M.createElement(N.FormHelperText,{...d,className:d==null?void 0:d.className,style:this.styles.helperText},e))}}class fi extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,h=K.getValue(n,i);if(this.props.schema.delimiter&&typeof h=="string"){const v=h.split(this.props.schema.delimiter).map(s=>s.trim()).filter(s=>s);this.setState({value:v})}else this.setState({value:h||[]})}renderItem(n,i){const{attr:h,schema:v}=this.props,{value:s}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},M.createElement(Ps,{value:s,disabled:!!i,label:this.getText(v.label),error:!!n,onAdd:u=>{const d=JSON.parse(JSON.stringify(s));d.push(u),this.setState({value:d},()=>{let a;this.props.schema.delimiter?a=this.onChange(h,d.join(`${this.props.schema.delimiter} `)):a=this.onChange(h,d),a instanceof Promise&&a.catch(p=>console.error(p))})},theme:this.props.oContext.theme,onDelete:(u,d)=>{const a=JSON.parse(JSON.stringify(s));a.splice(d,1),this.setState({value:a},()=>{let p;this.props.schema.delimiter?p=this.onChange(h,a.join(`${this.props.schema.delimiter} `)):p=this.onChange(h,a),p instanceof Promise&&p.catch(e=>console.error(e))})}}),M.createElement(N.FormHelperText,null,j.I18n.t("ra_Press ENTER Key to add new item")),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Ws extends K{renderColorDialog(){return!!this.state.showColorDialog&&M.createElement(N.Dialog,{onClose:()=>this.setState({showColorDialog:!1}),open:this.state.showColorDialog},M.createElement(qr,{color:this.state.colorDialogValue,onChange:n=>this.setState({colorDialogValue:n.hex},()=>this.onChange(this.props.attr,this.state.colorDialogValue))}))}renderItem(n,i){const h=K.getValue(this.props.data,this.props.attr);let v=j.Utils.isUseBright(h,null);return v===null&&(v=void 0),M.createElement(M.Fragment,null,this.renderColorDialog(),M.createElement(N.TextField,{variant:"standard",disabled:!!i,style:{minWidth:100,width:"calc(100% - 8px)"},label:this.getText(this.props.schema.label),value:h||"",onClick:()=>!this.props.schema.readOnly&&this.setState({showColorDialog:!0,colorDialogValue:h||""}),onChange:s=>{const u=s.target.value,d=this.onChange(this.props.attr,u);d instanceof Promise&&d.catch(a=>console.error(`Cannot set value: ${a}`))},slotProps:{htmlInput:{style:{backgroundColor:h,color:v?"#FFF":"#000"},readOnly:this.props.schema.readOnly||!1},input:{endAdornment:!this.props.schema.readOnly&&h&&!this.props.schema.noClearButton?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:s=>{s.stopPropagation();const u=this.onChange(this.props.attr,"");u instanceof Promise&&u.catch(d=>console.error(`Cannot set value: ${d}`))}},M.createElement(Z.Close,null)):void 0},inputLabel:{shrink:!0}}}))}}const Mn={width:{width:"calc(100% - 85px)"},width50:{width:120,marginRight:5}};class Hs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n});const i={};this.props.schema.useSystemName&&(i.useSystem=!!K.getValue(this.props.data,this.props.schema.useSystemName)),this.props.schema.longitudeName&&this.props.schema.latitudeName?(i.longitude=K.getValue(this.props.data,this.props.schema.longitudeName),i.latitude=K.getValue(this.props.data,this.props.schema.latitudeName),!i.longitude&&!i.latitude&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300)):!K.getValue(this.props.data,this.props.attr)&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300),Object.keys(i).length&&setTimeout(()=>this.setState(i),50)}async getSystemCoordinates(){const n=await this.props.oContext.socket.getCompactSystemConfig();if(n!=null&&n.common&&(n.common.longitude||n.common.latitude))if(window.alert(j.I18n.t("ra_Used system settings")),this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.common.longitude,latitude:n.common.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.common.longitude),await this.onChange(this.props.schema.latitudeName,n.common.latitude)});else{const i=n.common.latitude+(this.props.schema.divider||",")+n.common.longitude;this.setState({value:i},()=>{const h=this.onChange(this.props.attr,i);h instanceof Promise&&h.catch(v=>console.error(`Cannot set value: ${v}`))})}else window.alert(j.I18n.t("ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser"))}getCoordinates(){navigator.geolocation?navigator.geolocation.getCurrentPosition(async n=>{if(n!=null&&n.coords)if(this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.coords.longitude,latitude:n.coords.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.coords.longitude||""),await this.onChange(this.props.schema.latitudeName,n.coords.latitude||"")});else{const i=n.coords.latitude+(this.props.schema.divider||",")+n.coords.longitude;this.setState({value:i},()=>{const h=this.onChange(this.props.attr,i);h instanceof Promise&&h.catch(v=>console.error(`Cannot set value: ${v}`))})}else await this.getSystemCoordinates()},async n=>{console.error(`Cannot determine coordinates from browser: ${n.message}`),await this.getSystemCoordinates()}):this.getSystemCoordinates().catch(n=>{console.error(`Cannot determine coordinates: ${n}`)})}renderItem(n,i){return M.createElement(M.Fragment,null,this.props.schema.useSystemName?M.createElement(N.FormControlLabel,{control:M.createElement(N.Checkbox,{checked:!!this.state.useSystem,onChange:h=>{const v=h.target.checked;v&&this.getSystemCoordinates().catch(s=>console.error(`Cannot determine coordinates: ${s}`)),this.setState({useSystem:v},()=>this.onChange(this.props.schema.useSystemName,v))}}),label:j.I18n.t("ra_Use system settings for position")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.longitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:h=>{const v=h.target.value;this.setState({longitude:v},()=>{const s=this.onChange(this.props.schema.longitudeName,(v||"").trim());s instanceof Promise&&s.catch(u=>console.error(`Cannot set value: ${u}`))})},label:j.I18n.t("ra_Longitude")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.latitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:h=>{const v=h.target.value;this.setState({latitude:v},()=>this.onChange(this.props.schema.latitudeName,(v||"").trim()))},label:j.I18n.t("ra_Latitude")}):null,!this.props.schema.longitudeName||!this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.state.useSystem}},onChange:h=>{const v=h.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,(v||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):null,this.state.useSystem?null:M.createElement(N.Fab,{size:"small",onClick:()=>this.getCoordinates(),title:j.I18n.t("ra_Take browser position"),style:{marginRight:4}},M.createElement(Z.LocationOn,null)),this.state.useSystem?null:M.createElement(N.Fab,{size:"small",onClick:()=>this.getSystemCoordinates(),title:j.I18n.t("ra_Take position from system settings")},M.createElement(Z.GpsFixed,null)))}}Pn.init({name:"iobroker_admin",shared:{"@iobroker/adapter-react-v5":{lib:()=>ts,version:"*"},"@mui/icons-material":{lib:()=>es,version:"*"},"@iobroker/json-config":{lib:()=>os,version:"*"}},remotes:[]});class Ut extends K{static runningLoads={};constructor(n){super(n),Object.assign(this.state,{Component:null,error:""})}async componentDidMount(){if(!this.props.schema.url){console.error("URL is empty. Cannot load custom component!"),this.setState({error:"URL is empty. Cannot load custom component!"});return}let n;this.props.schema.url.startsWith("http:")||this.props.schema.url.startsWith("https:")?n=this.props.schema.url:this.props.schema.url.startsWith("./")?n=`${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\./,"")}`:n=`${window.location.protocol}//${window.location.host}/adapter/${this.props.oContext.adapterName}/${this.props.schema.url}`;const[i,h,...v]=this.props.schema.name.split("/"),s=v.join("/");if(!n){console.error('Cannot find URL for custom component! Please define "url" as "custom/customComponents.js" in the schema');return}if(!i||!h||!s){console.error('Invalid format of "name"! Please define "name" as "ConfigCustomBackItUpSet/Components/AdapterExist" in the schema');return}let u=Ut.runningLoads[`${n}!${h}`];if(!(u instanceof Promise)){let d;if(this.props.schema.i18n===!0){const a=n.lastIndexOf("/");let p;a!==-1?p=n.substring(0,a):p=n;const e=j.I18n.getLanguage(),t=`${p}/i18n/${e}.json`;d=fetch(t).then(r=>r.json()).then(r=>j.I18n.extendTranslations(r,e)).catch(r=>{if(e!=="en"){fetch(`${p}/i18n/en.json`).then(l=>l.json()).then(l=>j.I18n.extendTranslations(l,e)).catch(l=>console.log(`Cannot load i18n "${t}": ${l}`));return}console.log(`Cannot load i18n "${t}": ${r}`)})}else if(this.props.schema.i18n&&typeof this.props.schema.i18n=="object")try{j.I18n.extendTranslations(this.props.schema.i18n)}catch(a){console.error(`Cannot import i18n: ${a}`)}try{console.log(n,i,h,s),Pn.registerRemotes([{name:i,entry:n,type:this.props.schema.bundlerType||void 0}]),u=Pn.loadRemote(`${i}/${h}`),d instanceof Promise&&(u=Promise.all([u,d]).then(a=>a[0])),Ut.runningLoads[`${n}!${h}`]=u}catch(a){console.error(a),this.setState({error:`Cannot import from ${this.props.schema.url}: ${a}`})}}try{const d=(await u).default;if(d!=null&&d[s])this.setState({Component:d[s]});else{const a=Object.keys(d||{});console.error("URL is empty. Cannot load custom component!"),this.setState({error:`Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${a.join(", ")}`})}}catch(d){console.error(d),this.setState({error:`Cannot import from ${this.props.schema.url}: ${d}`})}}render(){const n=this.state.Component,i=this.props.schema||{},h=n?M.createElement(n,{...this.props,socket:this.props.oContext.socket,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,instance:this.props.oContext.instance,adapterName:this.props.oContext.adapterName,systemConfig:this.props.oContext.systemConfig,forceUpdate:this.props.oContext.forceUpdate}):this.state.error?M.createElement("div",null,this.state.error):M.createElement(N.LinearProgress,null);return i.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),h):h}}class zs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){return M.createElement(Wi.DatePicker,{sx:h=>({width:"100%",borderBottom:`1px solid ${h.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${h.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),format:this.props.oContext.systemConfig.dateFormat.toLowerCase().replace("mm","MM"),disabled:!!i,value:this.state.value,onChange:h=>{this.setState({value:h},()=>this.onChange(this.props.attr,this.state.value))},label:this.getText(this.props.schema.label)})}}class js extends K{renderItem(){if(!this.props.schema)return null;if(this.props.oContext.DeviceManager){const i=this.props.oContext.DeviceManager;return M.createElement(i,{uploadImagesToInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,title:this.getText(this.props.schema.label),socket:this.props.oContext.socket,selectedInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,themeName:this.props.themeName,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,isFloatComma:this.props.oContext.isFloatComma,dateFormat:this.props.oContext.dateFormat})}return M.createElement("div",null,"DeviceManager not found")}}const Ke={fullWidth:{width:"100%"},uploadDiv:{position:"relative",width:"100%"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"100%",height:"100%",position:"absolute",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},error:{border:"2px solid red"},deleteButton:{},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Vs=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Us=["mp3","ogg","wav","aac"],Gs=["avi","mp4","mov"],Ks=["txt","log","html","htm"],Js=["json","js","ts"];class mn extends K{dropzoneRef;imagePrefix;objectID;path;constructor(n){super(n),this.dropzoneRef=M.createRef(),this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix}componentDidMount(){super.componentDidMount(),this.objectID=(this.props.schema.objectID||"0_userdata.0").replace("%INSTANCE%",(this.props.oContext.instance||0).toString()),this.path=this.props.schema.upload,this.path&&(this.path==="/"?this.path="":this.path.endsWith("/")||(this.path=`${this.path}/`)),this.updateFiles().then(()=>{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n}),this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(i=>console.error(`Cannot subscribe: ${i}`))})}onFolderChanged=(n,i)=>{this.path&&i.startsWith(this.path)&&this.updateFiles().catch(h=>console.error(`Cannot update files: ${h}`))};componentWillUnmount(){this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(n=>console.error(`Cannot subscribe: ${n}`)),super.componentWillUnmount()}async updateFiles(){const n=await this.readFiles(this.props.schema.pattern);await new Promise(i=>this.setState({files:n},i))}async readFolder(n,i,h){try{const v=await this.props.oContext.socket.readDir(this.objectID,n.replace(/^\//,"")||null);for(let s=0;sconsole.log("file reading was aborted"),h.onerror=()=>console.log("file reading has failed"),h.onload=()=>{if(i.size>v){window.alert(j.I18n.t("File is too big. Max %sk allowed. Try use SVG.",Math.round(v/1024)));return}this.props.oContext.socket.writeFile64(this.objectID,this.path+i.name,h.result).then(()=>this.updateFiles()).then(()=>this.setState({value:this.path+i.name},()=>this.onChange(this.props.attr,this.path+i.name))).catch(s=>window.alert(`Cannot upload file: ${s}`))},h.readAsArrayBuffer(i)}renderDeleteDialog(){return this.state.deleteFile?M.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Are you sure?"),text:j.I18n.t("ra_File will be deleted"),ok:j.I18n.t("ra_Delete"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>{const i=this.state.deleteFile;this.setState({deleteFile:""},()=>{n&&this.props.oContext.socket.deleteFile(this.objectID,i).then(()=>this.updateFiles()).catch(h=>window.alert(`Cannot delete file: ${h}`))})}}):null}static base64ToArrayBuffer(n){const i=window.atob(n),h=i.length,v=new Uint8Array(h);for(let s=0;s{if(typeof AudioContext<"u"){const i=new AudioContext,h=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(h,v=>{const s=i.createBufferSource();s.buffer=v,s.connect(i.destination),s.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getFileIcon(n){return n!=null&&n.extension?Vs.includes(n.extension)?M.createElement("div",{style:{...Ke.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.objectID}/${n.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Us.includes(n.extension)?M.createElement(Z.MusicNote,null):Ks.includes(n.extension)?M.createElement(Z.Article,null):Gs.includes(n.extension)?M.createElement(Z.Videocam,null):Js.includes(n.extension)?M.createElement(Z.Code,null):null:null}renderItem(n,i){if(!this.state.files)return null;const h=[];this.props.schema.withFolder||this.state.files.forEach(e=>{const t=e.name.lastIndexOf("/");if(t===-1)h.includes("/")||h.push("/");else{const r=e.name.substring(0,t+1);h.includes(r)||h.push(r)}});const v=this.state.files.map(e=>({value:e.name,label:!this.props.schema.withFolder&&h.length===1?`${e.name.substring(h[0].length)}`:`${e.name}${this.props.schema.noSize?"":`(${e.size})`}`,extension:e.name.toLowerCase().split(".").pop()}));this.props.schema.noNone||v.unshift({label:j.I18n.t("ra_none"),value:""});const s=v.find(e=>e.value===this.state.value);let u=0;this.props.schema.upload&&u++,this.props.schema.refresh&&u++;const d=this.state.value&&(this.state.value.endsWith(".mp3")||this.state.value.endsWith(".ogg")||this.state.value.endsWith(".wav"));d&&u++;const a=M.createElement("div",{style:Ke.fullWidth},M.createElement(N.FormControl,{variant:"standard",style:{width:`calc(100% - ${u*42}px)`}},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>M.createElement(M.Fragment,null,this.getFileIcon(s),M.createElement("span",null,(s==null?void 0:s.label)||"")),onChange:e=>{this.setState({value:e.target.value==="_"?"":e.target.value},()=>this.onChange(this.props.attr,this.state.value))}},v.map(e=>M.createElement(N.MenuItem,{key:e.value,value:e.value},M.createElement(N.ListItemIcon,null,this.getFileIcon(e)),M.createElement(N.ListItemText,null,e.label),this.props.schema.delete&&s.value?M.createElement(N.IconButton,{style:Ke.deleteButton,size:"small",onClick:()=>this.setState({deleteFile:s.value})},M.createElement(Z.Delete,null)):null))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null),this.props.schema.refresh&&M.createElement(N.IconButton,{onClick:()=>this.updateFiles()},M.createElement(Z.Refresh,null)),this.props.schema.upload&&M.createElement(N.IconButton,{onClick:()=>{var e;return(e=this.dropzoneRef.current)==null?void 0:e.open()}},M.createElement(Z.UploadFile,null)),d&&M.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},M.createElement(Z.PlayArrow,null)));if(!this.props.schema.upload)return M.createElement(M.Fragment,null,a,this.renderDeleteDialog());let p={"*/*":[]};if(this.props.schema.fileTypes==="image"?p={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:this.props.schema.fileTypes==="audio"?p={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:this.props.schema.fileTypes==="text"&&(p={"text/plain":[".txt"]}),this.props.schema.pattern){const e=this.props.schema.pattern.split("/").pop().toLowerCase().replace(/.*\./,"");e==="png"||e==="jpg"||e==="svg"||e==="gif"||e==="apng"||e==="avif"||e==="webp"?p={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:e==="mp3"||e==="ogg"||e==="wav"?p={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:e==="ics"?p={"text/calendar":[".ics"]}:e==="txt"?p={"text/plain":[".txt"]}:e==="pem"?p={"text/plain":[".pem"]}:p={"*/*":[`.${e}`]}}return M.createElement(Pi,{ref:this.dropzoneRef,multiple:!1,accept:p,noKeyboard:!0,noClick:!0,maxSize:this.props.schema.maxSize||2*1024*1024,onDragEnter:()=>{this.setState({uploadFile:"dragging"})},onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(e,t)=>{var r,l,o;this.setState({uploadFile:!1}),e.length?this.onDrop(e):window.alert(((o=(l=(r=t==null?void 0:t[0])==null?void 0:r.errors)==null?void 0:l[0])==null?void 0:o.message)||j.I18n.t("Cannot upload"))}},({getRootProps:e,getInputProps:t})=>M.createElement("div",{style:{...Ke.uploadDiv,...this.state.uploadFile==="dragging"?Ke.uploadDivDragging:void 0,...i?Ke.disabledOpacity:void 0},...e()},M.createElement("input",{...t()}),this.state.uploadFile==="dragging"?M.createElement("div",{style:{...Ke.uploadCenterDiv,...this.state.uploadError?Ke.error:void 0}},M.createElement("div",{style:Ke.uploadCenterTextAndIcon},M.createElement(Z.UploadFile,{style:Ke.uploadCenterIcon}),M.createElement("div",{style:Ke.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog")))):null,a,this.renderDeleteDialog()))}}const sn={fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 69px)",marginRight:4},fullWidthIcon:{width:"calc(100% - 119px)",marginRight:4},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Ys=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Qs=["mp3","ogg","wav","aac"],Xs=["avi","mp4","mov"],Zs=["txt","log","html","htm"],qs=["json","js","ts"];class eo extends K{imagePrefix="../..";componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix,this.setState({value:n??""})}static getDerivedStateFromProps(n,i){const h=K.getValue(n.data,n.attr);return h==null||h.toString().trim()!==(i.value||"").toString().trim()?{value:h??""}:null}loadFile(){const n=this.state.value.indexOf("/");if(n!==-1){const i=this.state.value.substring(0,n),h=this.state.value.substring(n+1);return this.props.oContext.socket.readFile(i,h,!0)}return Promise.resolve(null)}play(){this.loadFile().then(n=>{if(typeof AudioContext<"u"&&(n!=null&&n.file)){const i=new AudioContext,h=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(h,v=>{const s=i.createBufferSource();s.buffer=v,s.connect(i.destination),s.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getIcon(){const n=this.state.value.split(".").pop().toLowerCase();return Ys.includes(n)?M.createElement("div",{style:{...sn.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.state.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Qs.includes(n)?M.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},M.createElement(Z.PlayArrow,null)):Zs.includes(n)?M.createElement(Z.Article,null):Xs.includes(n)?M.createElement(Z.Videocam,null):qs.includes(n)?M.createElement(Z.Code,null):null}renderFileBrowser(){return this.state.showFileBrowser?M.createElement(j.DialogSelectFile,{imagePrefix:this.props.oContext.imagePrefix,socket:this.props.oContext.socket,selected:this.state.value,onClose:()=>this.setState({showFileBrowser:!1}),onOk:n=>{const i=Array.isArray(n)?n[0]:n;this.setState({value:i},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?i:(i||"").trim()))},selectOnlyFolders:this.props.schema.selectOnlyFolders,allowUpload:this.props.schema.allowUpload,allowDownload:this.props.schema.allowDownload,allowCreateFolder:this.props.schema.allowCreateFolder,allowView:this.props.schema.allowView,showToolbar:this.props.schema.showToolbar,limitPath:this.props.schema.limitPath,theme:this.props.oContext.theme}):null}renderItem(n,i){const h=this.getIcon();return M.createElement("div",{style:sn.fullWidth},h,M.createElement(N.TextField,{variant:"standard",style:h?sn.fullWidthIcon:sn.fullWidthOneButton,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:!!this.props.schema.disableEdit}},onChange:v=>{const s=v.target.value;this.setState({value:s},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?s:(s||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),M.createElement(N.Button,{disabled:i,variant:"outlined",onClick:()=>this.setState({showFileBrowser:!0})},"..."),this.renderFileBrowser())}}class to extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("functions").then(i=>{const h=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.functions.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&h.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:h})})}renderItem(n,i){if(!this.state.selectOptions)return null;const h=this.state.selectOptions.find(v=>v.value===this.state.value);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>h?h.obj?M.createElement(j.TextWithIcon,{value:h.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):h.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>M.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?M.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class no extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getHostByIp(this.props.common.host).then(n=>{this.props.schema.listenOnAllPorts||(n=n.filter(i=>i.address!=="0.0.0.0"&&i.address!=="::")),this.props.schema.onlyIp4?n=n.filter(i=>i.family==="ipv4"):this.props.schema.onlyIp6&&(n=n.filter(i=>i.family==="ipv6")),this.props.schema.noInternal&&(n=n.filter(i=>!i.internal)),n.forEach(i=>{i.address==="0.0.0.0"?i.name=`[IPv4] 0.0.0.0 - ${j.I18n.t("ra_Listen on all IPs")}`:i.address==="::"&&(i.name=`[IPv6] :: - ${j.I18n.t("ra_Listen on all IPs")}`)}),this.setState({ips:n})}).catch(n=>console.error(n))}renderItem(n,i){var s,u;const h=K.getValue(this.props.data,this.props.attr),v=(s=this.state.ips)==null?void 0:s.find(d=>d.address===h);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.state.ips&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.ips?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:h,renderValue:d=>(v==null?void 0:v.name)||d,onChange:d=>this.onChange(this.props.attr,d.target.value)},(u=this.state.ips)==null?void 0:u.map((d,a)=>M.createElement(N.MenuItem,{key:a,value:d.address},d.name))):M.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:h,onChange:d=>this.onChange(this.props.attr,d.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class io extends K{initialized=!1;localContext;componentDidMount(){super.componentDidMount(),this.askInstance()}askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);if(i)try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${JSON.stringify(n)}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({image:i||""}))}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const n=this.getContext();(n!==this.localContext||!this.initialized)&&(this.localContext=n,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}return this.state.image===void 0?null:M.createElement("img",{alt:"dynamic content",src:this.state.image,style:{width:this.props.schema.width||"100%",height:this.props.schema.height}})}}class ro extends K{index;constructor(n){super(n),this.index=Date.now()}componentDidMount(){if(super.componentDidMount(),this.props.schema.base64){const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}else this.props.oContext.socket.fileExists(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).then(n=>n&&this.loadImage())}_getUrl(n){n&&(this.index=Date.now());let i=`files/${this.props.oContext.adapterName}.${this.props.oContext.instance}/${this.props.attr}?t=${this.index}`;return window.location.port==="3000"&&(i=`${window.location.protocol}//${window.location.hostname}:8081/${i}`),i}loadImage(){fetch(this._getUrl()).then(n=>n.blob()).then(n=>{const i=new FileReader;i.onload=()=>{this.setState({value:i.result})},i.readAsDataURL(n)}).catch(n=>console.error(n))}renderItem(n,i){return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(j.UploadImage,{error:!!n,disabled:i,accept:this.props.schema.accept,crop:this.props.schema.crop,maxSize:this.props.schema.maxSize||256*1024,icon:this.state.value||void 0,removeIconFunc:()=>this.setState({value:null},()=>{if(this.props.schema.base64){const h=this.onChange(this.props.attr,this.state.value);h instanceof Promise&&h.catch(v=>console.error(`Cannot set value: ${v}`))}else this.props.oContext.socket.deleteFile(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).catch(h=>console.error(h))}),onChange:h=>this.setState({value:h},()=>{if(this.props.schema.base64){const v=this.onChange(this.props.attr,this.state.value);v instanceof Promise&&v.catch(s=>console.error(`Cannot set value: ${s}`))}else h.startsWith("data")&&(h=h.split(",")[1]);this.props.oContext.socket.writeFile64(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr,h).catch(v=>console.error(v))})}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class so extends K{renderItem(){return M.createElement(j.InfoBox,{type:this.props.schema.boxType||"info",closeable:this.props.schema.closeable!==void 0?this.props.schema.closeable:!0,storeId:this.props.schema.closed!==void 0?void 0:`${!!this.props.oContext.adapterName} ${this.props.attr}`,closed:this.props.schema.closed,style:{width:"100%",...this.props.schema.style}},this.props.schema.title?M.createElement(N.Box,{component:"div",sx:{fontWeight:"bold",fontSize:"larger"}},this.getText(this.props.schema.title)):null,this.getText(this.props.schema.text))}}const gi={icon:{width:20,height:20,marginRight:4}};class oo extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);let i=this.props.schema.adapter;i==="_dataSources"&&(i=void 0),this.props.oContext.socket.getAdapterInstances(i,!0).then(async h=>{this.props.schema.adapter==="_dataSources"?h=h.filter(s=>{var u;return(u=s==null?void 0:s.common)==null?void 0:u.getHistory}):this.props.schema.adapter?h=h.filter(s=>s==null?void 0:s._id.startsWith(`system.adapter.${this.props.schema.adapter}.`)):this.props.schema.adapters&&Array.isArray(this.props.schema.adapters)&&(h=h.filter(s=>{var u;return this.props.schema.adapters.includes((u=s==null?void 0:s.common)==null?void 0:u.name)})),this.props.schema.onlyEnabled&&(h=h.filter(s=>{var u;return(u=s==null?void 0:s.common)==null?void 0:u.enabled}));const v=h.map(s=>({value:this.props.schema.long?s._id:this.props.schema.short?s._id.split(".").pop():s._id.replace(/^system\.adapter\./,""),label:`${s.common.name} [${s._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${s.common.name}/${s.common.icon}`}));v.sort((s,u)=>s.value>u.value?1:s.valueconsole.error(`Cannot get instances: ${h}`))}componentWillUnmount(){this.props.oContext.socket.unsubscribeObject("system.adapter.*",this.onInstancesUpdate).then(()=>{}),super.componentWillUnmount()}onInstancesUpdate=(n,i)=>{if(!n.match(/^system\.adapter\.[-_a-z\d]+\.\d+$/))return;const h=this.props.schema.long?n:this.props.schema.short?n.split(".").pop():n.replace(/^system\.adapter\./,""),v=this.state.selectOptions.findIndex(s=>s.value===h);if(i){if(this.props.schema.adapter==="_dataSources"&&(!i.common||!i.common.getHistory))return;if(v===-1){const s=JSON.parse(JSON.stringify(this.state.selectOptions)),u=typeof i.common.name=="object"?i.common.name[j.I18n.getLanguage()]||i.common.name.en:i.common.name;s.push({value:this.props.schema.long?i._id:this.props.schema.short?i._id.split(".").pop():i._id.replace(/^system\.adapter\./,""),label:`${u} [${i._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${u}/${i.common.icon}`}),s.sort((d,a)=>d.label>a.label?1:d.labels.value===this.state.value);return M.createElement(N.FormControl,{fullWidth:!0,key:this.props.attr,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>M.createElement("span",{style:{display:"flex"}},h!=null&&h.icon?M.createElement("img",{src:`./${h.icon}`,alt:h.value,style:gi.icon}):null,this.getText(h==null?void 0:h.label,!0)),onChange:s=>this.setState({value:s.target.value},()=>this.onChange(this.props.attr,this.state.value))},this.state.selectOptions.map(s=>M.createElement(N.MenuItem,{key:s.value,value:s.value,style:s.value===K.NONE_VALUE?{opacity:.5}:{}},s.icon?M.createElement("img",{src:`./${s.icon}`,alt:s.value,style:gi.icon}):null,this.getText(s.label,!0)))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const mi={address:{fontSize:"smaller",opacity:.5,marginLeft:8}};class ao extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getObject(`system.host.${this.props.common.host}`).then(n=>{var h,v;const i=[];if((v=(h=n==null?void 0:n.native)==null?void 0:h.hardware)!=null&&v.networkInterfaces){const s=n.native.hardware.networkInterfaces;Object.keys(s).forEach(u=>{if(this.props.schema.ignoreInternal&&!s[u].find(a=>!a.internal)||this.props.schema.ignoreLoopback&&s[u].find(a=>a.address==="127.0.0.1"||a.address==="::1"))return;let d=s[u].find(a=>a.family==="IPv4");d=d||s[u].find(a=>a.family==="IPv6"),i.push({value:u,address:d.address})})}this.setState({interfaces:i})}).catch(n=>window.alert(`Cannot read interfaces: ${n}`))}renderItem(n,i){var s,u,d;const h=K.getValue(this.props.data,this.props.attr),v=(s=this.state.interfaces)==null?void 0:s.find(a=>a.value===h);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},(u=this.state.interfaces)!=null&&u.length&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,(d=this.state.interfaces)!=null&&d.length?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:h,renderValue:a=>v?M.createElement("span",null,v.value,M.createElement("span",{style:mi.address},v.address)):a,onChange:a=>this.onChange(this.props.attr,a.target.value)},this.state.interfaces.map((a,p)=>M.createElement(N.MenuItem,{key:p,value:a.value},M.createElement("span",null,a.value,M.createElement("span",{style:mi.address},a.address))))):M.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:h,onChange:a=>this.onChange(this.props.attr,a.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const kt={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:{color:"primary.main"}},lo=({toggleTranslation:L,noTranslation:n,title:i,fullWidth:h,help:v,maxWidth:s,progress:u,icon:d,applyDisabled:a,applyButton:p,onClose:e,children:t,titleButtonApply:r,titleButtonClose:l,onApply:o,textInput:c,defaultValue:f,overflowHidden:m})=>{const[y,D]=pt.useState(f);pt.useEffect(()=>{D(f)},[f]);let E=null;return d&&(E=d),M.createElement(N.Dialog,{open:!0,maxWidth:s||"md",fullWidth:!!h,disableEscapeKeyDown:!1,onClose:e,sx:{"& .MuiPaper-root":kt.modalDialog}},i&&M.createElement(N.DialogTitle,null,d?M.createElement(E,{style:kt.titleIcon}):null,i,j.I18n.getLanguage()!=="en"&&L?M.createElement(N.IconButton,{size:"large",style:{...kt.languageButton,...n?kt.languageButtonActive:{}},onClick:()=>L(),title:j.I18n.t("Disable/Enable translation")},M.createElement(Z.Language,null)):null),M.createElement(N.DialogContent,{sx:{...m?kt.overflowHidden:{},...kt.content},style:{paddingTop:8}},c&&M.createElement(N.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:y,onChange:b=>D(b.target.value)}),t,v?M.createElement("div",null,v):null),M.createElement(N.DialogActions,null,p!==!1&&M.createElement(N.Button,{startIcon:M.createElement(Z.Check,null),disabled:u||a&&f===y,onClick:()=>o&&o(c?y:""),variant:"contained",color:"primary"},j.I18n.t(r||"Ok")),M.createElement(N.Button,{color:"grey",onClick:()=>e&&e(),disabled:u,variant:"contained",startIcon:M.createElement(Z.Close,null)},j.I18n.t(l||"Cancel"))))};var It={},Dt={},Vi={exports:{}};(function(L,n){(function(){var i="ace",h=function(){return this}();!h&&typeof window<"u"&&(h=window);var v=function(e,t,r){if(typeof e!="string"){v.original?v.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=t),v.modules[e]||(v.payloads[e]=r,v.modules[e]=null)};v.modules={},v.payloads={};var s=function(e,t,r){if(typeof t=="string"){var l=a(e,t);if(l!=null)return r&&r(),l}else if(Object.prototype.toString.call(t)==="[object Array]"){for(var o=[],c=0,f=t.length;ca.length)&&(d=a.length),d-=u.length;var p=a.indexOf(u,d);return p!==-1&&p===d}),String.prototype.repeat||s(String.prototype,"repeat",function(u){for(var d="",a=this;u>0;)u&1&&(d+=a),(u>>=1)&&(a+=a);return d}),String.prototype.includes||s(String.prototype,"includes",function(u,d){return this.indexOf(u,d)!=-1}),Object.assign||(Object.assign=function(u){if(u==null)throw new TypeError("Cannot convert undefined or null to object");for(var d=Object(u),a=1;a>>0,p=arguments[1],e=p>>0,t=e<0?Math.max(a+e,0):Math.min(e,a),r=arguments[2],l=r===void 0?a:r>>0,o=l<0?Math.max(a+l,0):Math.min(l,a);t0;)a&1&&(p+=d),(a>>=1)&&(d+=d);return p};var s=/^\s\s*/,u=/\s\s*$/;h.stringTrimLeft=function(d){return d.replace(s,"")},h.stringTrimRight=function(d){return d.replace(u,"")},h.copyObject=function(d){var a={};for(var p in d)a[p]=d[p];return a},h.copyArray=function(d){for(var a=[],p=0,e=d.length;p65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(i,h,v){h.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},h.getOS=function(){return h.isMac?h.OS.MAC:h.isLinux?h.OS.LINUX:h.OS.WINDOWS};var s=typeof navigator=="object"?navigator:{},u=(/mac|win|linux/i.exec(s.platform)||["other"])[0].toLowerCase(),d=s.userAgent||"",a=s.appName||"";h.isWin=u=="win",h.isMac=u=="mac",h.isLinux=u=="linux",h.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((d.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((d.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),h.isOldIE=h.isIE&&h.isIE<9,h.isGecko=h.isMozilla=d.match(/ Gecko\/\d+/),h.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",h.isWebKit=parseFloat(d.split("WebKit/")[1])||void 0,h.isChrome=parseFloat(d.split(" Chrome/")[1])||void 0,h.isSafari=parseFloat(d.split(" Safari/")[1])&&!h.isChrome||void 0,h.isEdge=parseFloat(d.split(" Edge/")[1])||void 0,h.isAIR=d.indexOf("AdobeAIR")>=0,h.isAndroid=d.indexOf("Android")>=0,h.isChromeOS=d.indexOf(" CrOS ")>=0,h.isIOS=/iPad|iPhone|iPod/.test(d)&&!window.MSStream,h.isIOS&&(h.isMac=!0),h.isMobile=h.isIOS||h.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(i,h,v){var s=i("./useragent"),u="http://www.w3.org/1999/xhtml";h.buildDom=function r(l,o,c){if(typeof l=="string"&&l){var f=document.createTextNode(l);return o&&o.appendChild(f),f}if(!Array.isArray(l))return l&&l.appendChild&&o&&o.appendChild(l),l;if(typeof l[0]!="string"||!l[0]){for(var m=[],y=0;y"u")){if(a){if(o)p();else if(o===!1)return a.push([r,l])}if(!d){var c=o;!o||!o.getRootNode?c=document:(c=o.getRootNode(),(!c||c==o)&&(c=document));var f=c.ownerDocument||c;if(l&&h.hasCssString(l,c))return null;l&&(r+=` +/*# sourceURL=ace/css/`+l+" */");var m=h.createElement("style");m.appendChild(f.createTextNode(r)),l&&(m.id=l),c==f&&(c=h.getDocumentHead(f)),c.insertBefore(m,c.firstChild)}}}if(h.importCssString=e,h.importCssStylsheet=function(r,l){h.buildDom(["link",{rel:"stylesheet",href:r}],h.getDocumentHead(l))},h.scrollbarWidth=function(r){var l=h.createElement("ace_inner");l.style.width="100%",l.style.minWidth="0px",l.style.height="200px",l.style.display="block";var o=h.createElement("ace_outer"),c=o.style;c.position="absolute",c.left="-10000px",c.overflow="hidden",c.width="200px",c.minWidth="0px",c.height="150px",c.display="block",o.appendChild(l);var f=r&&r.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(o);var m=l.offsetWidth;c.overflow="scroll";var y=l.offsetWidth;return m===y&&(y=o.clientWidth),f.removeChild(o),m-y},h.computedStyle=function(r,l){return window.getComputedStyle(r,"")||{}},h.setStyle=function(r,l,o){r[l]!==o&&(r[l]=o)},h.HAS_CSS_ANIMATION=!1,h.HAS_CSS_TRANSFORMS=!1,h.HI_DPI=s.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,s.isChromeOS&&(h.HI_DPI=!1),typeof document<"u"){var t=document.createElement("div");h.HI_DPI&&t.style.transform!==void 0&&(h.HAS_CSS_TRANSFORMS=!0),!s.isEdge&&typeof t.style.animationName<"u"&&(h.HAS_CSS_ANIMATION=!0),t=null}h.HAS_CSS_TRANSFORMS?h.translate=function(r,l,o){r.style.transform="translate("+Math.round(l)+"px, "+Math.round(o)+"px)"}:h.translate=function(r,l,o){r.style.top=Math.round(o)+"px",r.style.left=Math.round(l)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(i,h,v){/* * based on code from: * * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details -*/var o=i("./dom");u.get=function(h,p){var a=new XMLHttpRequest;a.open("GET",h,!0),a.onreadystatechange=function(){a.readyState===4&&p(a.responseText)},a.send(null)},u.loadScript=function(h,p){var a=o.getDocumentHead(),d=document.createElement("script");d.src=h,a.appendChild(d),d.onload=d.onreadystatechange=function(e,t){(t||!d.readyState||d.readyState=="loaded"||d.readyState=="complete")&&(d=d.onload=d.onreadystatechange=null,t||p())}},u.qualifyURL=function(h){var p=document.createElement("a");return p.href=h,p.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(i,u,v){u.inherits=function(o,h){o.super_=h,o.prototype=Object.create(h.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}})},u.mixin=function(o,h){for(var p in h)o[p]=h[p];return o},u.implement=function(o,h){u.mixin(o,h)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(i,u,v){var o={},h=function(){this.propagationStopped=!0},p=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(a,d){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var e=this._eventRegistry[a]||[],t=this._defaultHandlers[a];if(!(!e.length&&!t)){(typeof d!="object"||!d)&&(d={}),d.type||(d.type=a),d.stopPropagation||(d.stopPropagation=h),d.preventDefault||(d.preventDefault=p),e=e.slice();for(var r=0;r1&&(m=c[c.length-2]);var D=d[s+"Path"];return D==null?D=d.basePath:f=="/"&&(s=f=""),D&&D.slice(-1)!="/"&&(D+="/"),D+s+f+m+this.get("suffix")},u.setModuleUrl=function(l,s){return d.$moduleUrls[l]=s};var e=function(l,s){if(l==="ace/theme/textmate"||l==="./theme/textmate")return s(null,i("./theme/textmate"));if(t)return t(l,s);console.error("loader is not configured")},t;u.setLoader=function(l){t=l},u.dynamicModules=Object.create(null),u.$loading={},u.$loaded={},u.loadModule=function(l,s){var c;if(Array.isArray(l))var f=l[0],m=l[1];else if(typeof l=="string")var m=l;var y=function(D){if(D&&!u.$loading[m])return s&&s(D);if(u.$loading[m]||(u.$loading[m]=[]),u.$loading[m].push(s),!(u.$loading[m].length>1)){var E=function(){e(m,function(b,g){g&&(u.$loaded[m]=g),u._emit("load.module",{name:m,module:g});var S=u.$loading[m];u.$loading[m]=null,S.forEach(function(T){T&&T(g)})})};if(!u.get("packaged"))return E();h.loadScript(u.moduleUrl(m,f),E),r()}};if(u.dynamicModules[m])u.dynamicModules[m]().then(function(D){D.default?y(D.default):y(D)});else{try{c=this.$require(m)}catch{}y(c||u.$loaded[m])}},u.$require=function(l){if(typeof v.require=="function"){var s="require";return v[s](l)}},u.setModuleLoader=function(l,s){u.dynamicModules[l]=s};var r=function(){!d.basePath&&!d.workerPath&&!d.modePath&&!d.themePath&&!Object.keys(d.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),r=function(){})};u.version="1.41.0"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(i,u,v){i("./lib/fixoldbrowsers");var o=i("./config");o.setLoader(function(d,e){i([d],function(t){e(null,t)})});var h=function(){return this||typeof window<"u"&&window}();v.exports=function(d){o.init=p,o.$require=i,d.require=i},p(!0);function p(d){if(!(!h||!h.document)){o.set("packaged",d||i.packaged||v.packaged||h.define&&(void 0).packaged);var e={},t="",r=document.currentScript||document._currentScript,l=r&&r.ownerDocument||document;r&&r.src&&(t=r.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var s=l.getElementsByTagName("script"),c=0;c ["+this.end.row+"/"+this.end.column+"]"},h.prototype.contains=function(p,a){return this.compare(p,a)==0},h.prototype.compareRange=function(p){var a,d=p.end,e=p.start;return a=this.compare(d.row,d.column),a==1?(a=this.compare(e.row,e.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(e.row,e.column),a==-1?-1:a==1?42:0)},h.prototype.comparePoint=function(p){return this.compare(p.row,p.column)},h.prototype.containsRange=function(p){return this.comparePoint(p.start)==0&&this.comparePoint(p.end)==0},h.prototype.intersects=function(p){var a=this.compareRange(p);return a==-1||a==0||a==1},h.prototype.isEnd=function(p,a){return this.end.row==p&&this.end.column==a},h.prototype.isStart=function(p,a){return this.start.row==p&&this.start.column==a},h.prototype.setStart=function(p,a){typeof p=="object"?(this.start.column=p.column,this.start.row=p.row):(this.start.row=p,this.start.column=a)},h.prototype.setEnd=function(p,a){typeof p=="object"?(this.end.column=p.column,this.end.row=p.row):(this.end.row=p,this.end.column=a)},h.prototype.inside=function(p,a){return this.compare(p,a)==0?!(this.isEnd(p,a)||this.isStart(p,a)):!1},h.prototype.insideStart=function(p,a){return this.compare(p,a)==0?!this.isEnd(p,a):!1},h.prototype.insideEnd=function(p,a){return this.compare(p,a)==0?!this.isStart(p,a):!1},h.prototype.compare=function(p,a){return!this.isMultiLine()&&p===this.start.row?athis.end.column?1:0:pthis.end.row?1:this.start.row===p?a>=this.start.column?0:-1:this.end.row===p?a<=this.end.column?0:1:0},h.prototype.compareStart=function(p,a){return this.start.row==p&&this.start.column==a?-1:this.compare(p,a)},h.prototype.compareEnd=function(p,a){return this.end.row==p&&this.end.column==a?1:this.compare(p,a)},h.prototype.compareInside=function(p,a){return this.end.row==p&&this.end.column==a?1:this.start.row==p&&this.start.column==a?-1:this.compare(p,a)},h.prototype.clipRows=function(p,a){if(this.end.row>a)var d={row:a+1,column:0};else if(this.end.rowa)var e={row:a+1,column:0};else if(this.start.row1?(T++,T>4&&(T=1)):T=1,h.isIE){var w=Math.abs(C.clientX-k)>5||Math.abs(C.clientY-_)>5;(!O||w)&&(T=1),O&&clearTimeout(O),O=setTimeout(function(){O=null},E[T-1]||600),T==1&&(k=C.clientX,_=C.clientY)}if(C._clicks=T,b[g]("mousedown",C),T>4)T=0;else if(T>1)return b[g]($[T],C)}Array.isArray(D)||(D=[D]),D.forEach(function(C){l(C,"mousedown",A,S)})};function c(D){return 0|(D.ctrlKey?1:0)|(D.altKey?2:0)|(D.shiftKey?4:0)|(D.metaKey?8:0)}u.getModifierString=function(D){return o.KEY_MODS[c(D)]};function f(D,E,b){var g=c(E);if(!b&&E.code&&(b=o.$codeToKeyCode[E.code]||b),!h.isMac&&p){if(E.getModifierState&&(E.getModifierState("OS")||E.getModifierState("Win"))&&(g|=8),p.altGr)if((3&g)!=3)p.altGr=0;else return;if(b===18||b===17){var S=E.location;if(b===17&&S===1)p[b]==1&&(a=E.timeStamp);else if(b===18&&g===3&&S===2){var T=E.timeStamp-a;T<50&&(p.altGr=!0)}}}if(b in o.MODIFIER_KEYS&&(b=-1),!(!g&&b===13&&E.location===3&&(D(E,g,-b),E.defaultPrevented))){if(h.isChromeOS&&g&8){if(D(E,g,b),E.defaultPrevented)return;g&=-9}return!g&&!(b in o.FUNCTION_KEYS)&&!(b in o.PRINTABLE_KEYS)?!1:D(E,g,b)}}u.addCommandKeyListener=function(D,E,b){var g=null;l(D,"keydown",function(S){p[S.keyCode]=(p[S.keyCode]||0)+1;var T=f(E,S,S.keyCode);return g=S.defaultPrevented,T},b),l(D,"keypress",function(S){g&&(S.ctrlKey||S.altKey||S.shiftKey||S.metaKey)&&(u.stopEvent(S),g=null)},b),l(D,"keyup",function(S){p[S.keyCode]=null},b),p||(m(),l(window,"focus",m))};function m(){p=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!h.isOldIE){var y=1;u.nextTick=function(D,E){E=E||window;var b="zero-timeout-message-"+y++,g=function(S){S.data==b&&(u.stopPropagation(S),s(E,"message",g),D())};l(E,"message",g),E.postMessage(b,"*")}}u.$idleBlocked=!1,u.onIdle=function(D,E){return setTimeout(function b(){u.$idleBlocked?setTimeout(b,100):D()},E)},u.$idleBlockId=null,u.blockIdle=function(D){u.$idleBlockId&&clearTimeout(u.$idleBlockId),u.$idleBlocked=!0,u.$idleBlockId=setTimeout(function(){u.$idleBlocked=!1},D||100)},u.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),u.nextFrame?u.nextFrame=u.nextFrame.bind(window):u.nextFrame=function(D){setTimeout(D,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(i,u,v){var o;v.exports={lineMode:!1,pasteCancelled:function(){return o&&o>Date.now()-50?!0:o=!1},cancel:function(){o=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(i,u,v){var o=i("../lib/event"),h=i("../config").nls,p=i("../lib/useragent"),a=i("../lib/dom"),d=i("../lib/lang"),e=i("../clipboard"),t=p.isChrome<18,r=p.isIE,l=p.isChrome>63,s=400,c=i("../lib/keys"),f=c.KEY_MODS,m=p.isIOS,y=m?/\s/:/\n/,D=p.isMobile,E;E=function(b,g){var S=a.createElement("textarea");S.className="ace_text-input",S.setAttribute("wrap","off"),S.setAttribute("autocorrect","off"),S.setAttribute("autocapitalize","off"),S.setAttribute("spellcheck","false"),S.style.opacity="0",b.insertBefore(S,b.firstChild),this.setHost=function(X){g=X};var T=!1,k=!1,_=!1,O=!1,$="";D||(S.style.fontSize="1px");var A=!1,C=!1,w="",x=0,I=0,F=0,R=Number.MAX_SAFE_INTEGER,B=Number.MIN_SAFE_INTEGER,P=0;try{var V=document.activeElement===S}catch{}this.setNumberOfExtraLines=function(X){if(R=Number.MAX_SAFE_INTEGER,B=Number.MIN_SAFE_INTEGER,X<0){P=0;return}P=X},this.setAriaLabel=function(){var X="";if(g.$textInputAriaLabel&&(X+="".concat(g.$textInputAriaLabel,", ")),g.session){var re=g.session.selection.cursor.row;X+=h("text-input.aria-label","Cursor at row $0",[re+1])}S.setAttribute("aria-label",X)},this.setAriaOptions=function(X){X.activeDescendant?(S.setAttribute("aria-haspopup","true"),S.setAttribute("aria-autocomplete",X.inline?"both":"list"),S.setAttribute("aria-activedescendant",X.activeDescendant)):(S.setAttribute("aria-haspopup","false"),S.setAttribute("aria-autocomplete","both"),S.removeAttribute("aria-activedescendant")),X.role&&S.setAttribute("role",X.role),X.setLabel&&(S.setAttribute("aria-roledescription",h("text-input.aria-roledescription","editor")),this.setAriaLabel())},this.setAriaOptions({role:"textbox"}),o.addListener(S,"blur",function(X){C||(g.onBlur(X),V=!1)},g),o.addListener(S,"focus",function(X){if(!C){if(V=!0,p.isEdge)try{if(!document.hasFocus())return}catch{}g.onFocus(X),p.isEdge?setTimeout(H):H()}},g),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:g.renderer.enableKeyboardAccessibility}),$||l||this.$focusScroll=="browser")return S.focus({preventScroll:!0});var X=S.style.top;S.style.position="fixed",S.style.top="0px";try{var re=S.getBoundingClientRect().top!=0}catch{return}var ae=[];if(re)for(var pe=S.parentElement;pe&&pe.nodeType==1;)ae.push(pe),pe.setAttribute("ace_nocontext","true"),!pe.parentElement&&pe.getRootNode?pe=pe.getRootNode().host:pe=pe.parentElement;S.focus({preventScroll:!0}),re&&ae.forEach(function(ce){ce.removeAttribute("ace_nocontext")}),setTimeout(function(){S.style.position="",S.style.top=="0px"&&(S.style.top=X)},0)},this.blur=function(){S.blur()},this.isFocused=function(){return V},g.on("beforeEndOperation",function(){var X=g.curOp,re=X&&X.command&&X.command.name;if(re!="insertstring"){var ae=re&&(X.docChanged||X.selectionChanged);_&&ae&&(w=S.value="",Ze()),H()}}),g.on("changeSelection",this.setAriaLabel);var W=function(X,re){for(var ae=re,pe=1;pe<=X-R&&pe<2*P+1;pe++)ae+=g.session.getLine(X-pe).length+1;return ae},H=m?function(X){if(!(!V||T&&!X||O)){X||(X="");var re=` +`}),ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(i,h,v){h.isDark=!1,h.cssClass="ace-tm",h.cssText=i("./textmate-css"),h.$id="ace/theme/textmate";var s=i("../lib/dom");s.importCssString(h.cssText,h.cssClass,!1)}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/net","ace/lib/dom","ace/lib/app_config","ace/theme/textmate"],function(i,h,v){"no use strict";var s=i("./lib/lang"),u=i("./lib/net"),d=i("./lib/dom"),a=i("./lib/app_config").AppConfig;v.exports=h=new a;var p={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1,useStrictCSP:null};h.get=function(l){if(!p.hasOwnProperty(l))throw new Error("Unknown config key: "+l);return p[l]},h.set=function(l,o){if(p.hasOwnProperty(l))p[l]=o;else if(this.setDefaultValue("",l,o)==!1)throw new Error("Unknown config key: "+l);l=="useStrictCSP"&&d.useStrictCSP(o)},h.all=function(){return s.copyObject(p)},h.$modes={},h.moduleUrl=function(l,o){if(p.$moduleUrls[l])return p.$moduleUrls[l];var c=l.split("/");o=o||c[c.length-2]||"";var f=o=="snippets"?"/":"-",m=c[c.length-1];if(o=="worker"&&f=="-"){var y=new RegExp("^"+o+"[\\-_]|[\\-_]"+o+"$","g");m=m.replace(y,"")}(!m||m==o)&&c.length>1&&(m=c[c.length-2]);var D=p[o+"Path"];return D==null?D=p.basePath:f=="/"&&(o=f=""),D&&D.slice(-1)!="/"&&(D+="/"),D+o+f+m+this.get("suffix")},h.setModuleUrl=function(l,o){return p.$moduleUrls[l]=o};var e=function(l,o){if(l==="ace/theme/textmate"||l==="./theme/textmate")return o(null,i("./theme/textmate"));if(t)return t(l,o);console.error("loader is not configured")},t;h.setLoader=function(l){t=l},h.dynamicModules=Object.create(null),h.$loading={},h.$loaded={},h.loadModule=function(l,o){var c;if(Array.isArray(l))var f=l[0],m=l[1];else if(typeof l=="string")var m=l;var y=function(D){if(D&&!h.$loading[m])return o&&o(D);if(h.$loading[m]||(h.$loading[m]=[]),h.$loading[m].push(o),!(h.$loading[m].length>1)){var E=function(){e(m,function(b,g){g&&(h.$loaded[m]=g),h._emit("load.module",{name:m,module:g});var S=h.$loading[m];h.$loading[m]=null,S.forEach(function(T){T&&T(g)})})};if(!h.get("packaged"))return E();u.loadScript(h.moduleUrl(m,f),E),r()}};if(h.dynamicModules[m])h.dynamicModules[m]().then(function(D){D.default?y(D.default):y(D)});else{try{c=this.$require(m)}catch{}y(c||h.$loaded[m])}},h.$require=function(l){if(typeof v.require=="function"){var o="require";return v[o](l)}},h.setModuleLoader=function(l,o){h.dynamicModules[l]=o};var r=function(){!p.basePath&&!p.workerPath&&!p.modePath&&!p.themePath&&!Object.keys(p.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),r=function(){})};h.version="1.41.0"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(i,h,v){i("./lib/fixoldbrowsers");var s=i("./config");s.setLoader(function(p,e){i([p],function(t){e(null,t)})});var u=function(){return this||typeof window<"u"&&window}();v.exports=function(p){s.init=d,s.$require=i,p.require=i},d(!0);function d(p){if(!(!u||!u.document)){s.set("packaged",p||i.packaged||v.packaged||u.define&&(void 0).packaged);var e={},t="",r=document.currentScript||document._currentScript,l=r&&r.ownerDocument||document;r&&r.src&&(t=r.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var o=l.getElementsByTagName("script"),c=0;c ["+this.end.row+"/"+this.end.column+"]"},u.prototype.contains=function(d,a){return this.compare(d,a)==0},u.prototype.compareRange=function(d){var a,p=d.end,e=d.start;return a=this.compare(p.row,p.column),a==1?(a=this.compare(e.row,e.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(e.row,e.column),a==-1?-1:a==1?42:0)},u.prototype.comparePoint=function(d){return this.compare(d.row,d.column)},u.prototype.containsRange=function(d){return this.comparePoint(d.start)==0&&this.comparePoint(d.end)==0},u.prototype.intersects=function(d){var a=this.compareRange(d);return a==-1||a==0||a==1},u.prototype.isEnd=function(d,a){return this.end.row==d&&this.end.column==a},u.prototype.isStart=function(d,a){return this.start.row==d&&this.start.column==a},u.prototype.setStart=function(d,a){typeof d=="object"?(this.start.column=d.column,this.start.row=d.row):(this.start.row=d,this.start.column=a)},u.prototype.setEnd=function(d,a){typeof d=="object"?(this.end.column=d.column,this.end.row=d.row):(this.end.row=d,this.end.column=a)},u.prototype.inside=function(d,a){return this.compare(d,a)==0?!(this.isEnd(d,a)||this.isStart(d,a)):!1},u.prototype.insideStart=function(d,a){return this.compare(d,a)==0?!this.isEnd(d,a):!1},u.prototype.insideEnd=function(d,a){return this.compare(d,a)==0?!this.isStart(d,a):!1},u.prototype.compare=function(d,a){return!this.isMultiLine()&&d===this.start.row?athis.end.column?1:0:dthis.end.row?1:this.start.row===d?a>=this.start.column?0:-1:this.end.row===d?a<=this.end.column?0:1:0},u.prototype.compareStart=function(d,a){return this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},u.prototype.compareEnd=function(d,a){return this.end.row==d&&this.end.column==a?1:this.compare(d,a)},u.prototype.compareInside=function(d,a){return this.end.row==d&&this.end.column==a?1:this.start.row==d&&this.start.column==a?-1:this.compare(d,a)},u.prototype.clipRows=function(d,a){if(this.end.row>a)var p={row:a+1,column:0};else if(this.end.rowa)var e={row:a+1,column:0};else if(this.start.row1?(T++,T>4&&(T=1)):T=1,u.isIE){var w=Math.abs(C.clientX-k)>5||Math.abs(C.clientY-_)>5;(!O||w)&&(T=1),O&&clearTimeout(O),O=setTimeout(function(){O=null},E[T-1]||600),T==1&&(k=C.clientX,_=C.clientY)}if(C._clicks=T,b[g]("mousedown",C),T>4)T=0;else if(T>1)return b[g]($[T],C)}Array.isArray(D)||(D=[D]),D.forEach(function(C){l(C,"mousedown",A,S)})};function c(D){return 0|(D.ctrlKey?1:0)|(D.altKey?2:0)|(D.shiftKey?4:0)|(D.metaKey?8:0)}h.getModifierString=function(D){return s.KEY_MODS[c(D)]};function f(D,E,b){var g=c(E);if(!b&&E.code&&(b=s.$codeToKeyCode[E.code]||b),!u.isMac&&d){if(E.getModifierState&&(E.getModifierState("OS")||E.getModifierState("Win"))&&(g|=8),d.altGr)if((3&g)!=3)d.altGr=0;else return;if(b===18||b===17){var S=E.location;if(b===17&&S===1)d[b]==1&&(a=E.timeStamp);else if(b===18&&g===3&&S===2){var T=E.timeStamp-a;T<50&&(d.altGr=!0)}}}if(b in s.MODIFIER_KEYS&&(b=-1),!(!g&&b===13&&E.location===3&&(D(E,g,-b),E.defaultPrevented))){if(u.isChromeOS&&g&8){if(D(E,g,b),E.defaultPrevented)return;g&=-9}return!g&&!(b in s.FUNCTION_KEYS)&&!(b in s.PRINTABLE_KEYS)?!1:D(E,g,b)}}h.addCommandKeyListener=function(D,E,b){var g=null;l(D,"keydown",function(S){d[S.keyCode]=(d[S.keyCode]||0)+1;var T=f(E,S,S.keyCode);return g=S.defaultPrevented,T},b),l(D,"keypress",function(S){g&&(S.ctrlKey||S.altKey||S.shiftKey||S.metaKey)&&(h.stopEvent(S),g=null)},b),l(D,"keyup",function(S){d[S.keyCode]=null},b),d||(m(),l(window,"focus",m))};function m(){d=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!u.isOldIE){var y=1;h.nextTick=function(D,E){E=E||window;var b="zero-timeout-message-"+y++,g=function(S){S.data==b&&(h.stopPropagation(S),o(E,"message",g),D())};l(E,"message",g),E.postMessage(b,"*")}}h.$idleBlocked=!1,h.onIdle=function(D,E){return setTimeout(function b(){h.$idleBlocked?setTimeout(b,100):D()},E)},h.$idleBlockId=null,h.blockIdle=function(D){h.$idleBlockId&&clearTimeout(h.$idleBlockId),h.$idleBlocked=!0,h.$idleBlockId=setTimeout(function(){h.$idleBlocked=!1},D||100)},h.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),h.nextFrame?h.nextFrame=h.nextFrame.bind(window):h.nextFrame=function(D){setTimeout(D,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(i,h,v){var s;v.exports={lineMode:!1,pasteCancelled:function(){return s&&s>Date.now()-50?!0:s=!1},cancel:function(){s=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(i,h,v){var s=i("../lib/event"),u=i("../config").nls,d=i("../lib/useragent"),a=i("../lib/dom"),p=i("../lib/lang"),e=i("../clipboard"),t=d.isChrome<18,r=d.isIE,l=d.isChrome>63,o=400,c=i("../lib/keys"),f=c.KEY_MODS,m=d.isIOS,y=m?/\s/:/\n/,D=d.isMobile,E;E=function(b,g){var S=a.createElement("textarea");S.className="ace_text-input",S.setAttribute("wrap","off"),S.setAttribute("autocorrect","off"),S.setAttribute("autocapitalize","off"),S.setAttribute("spellcheck","false"),S.style.opacity="0",b.insertBefore(S,b.firstChild),this.setHost=function(X){g=X};var T=!1,k=!1,_=!1,O=!1,$="";D||(S.style.fontSize="1px");var A=!1,C=!1,w="",x=0,I=0,F=0,R=Number.MAX_SAFE_INTEGER,B=Number.MIN_SAFE_INTEGER,P=0;try{var V=document.activeElement===S}catch{}this.setNumberOfExtraLines=function(X){if(R=Number.MAX_SAFE_INTEGER,B=Number.MIN_SAFE_INTEGER,X<0){P=0;return}P=X},this.setAriaLabel=function(){var X="";if(g.$textInputAriaLabel&&(X+="".concat(g.$textInputAriaLabel,", ")),g.session){var re=g.session.selection.cursor.row;X+=u("text-input.aria-label","Cursor at row $0",[re+1])}S.setAttribute("aria-label",X)},this.setAriaOptions=function(X){X.activeDescendant?(S.setAttribute("aria-haspopup","true"),S.setAttribute("aria-autocomplete",X.inline?"both":"list"),S.setAttribute("aria-activedescendant",X.activeDescendant)):(S.setAttribute("aria-haspopup","false"),S.setAttribute("aria-autocomplete","both"),S.removeAttribute("aria-activedescendant")),X.role&&S.setAttribute("role",X.role),X.setLabel&&(S.setAttribute("aria-roledescription",u("text-input.aria-roledescription","editor")),this.setAriaLabel())},this.setAriaOptions({role:"textbox"}),s.addListener(S,"blur",function(X){C||(g.onBlur(X),V=!1)},g),s.addListener(S,"focus",function(X){if(!C){if(V=!0,d.isEdge)try{if(!document.hasFocus())return}catch{}g.onFocus(X),d.isEdge?setTimeout(H):H()}},g),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:g.renderer.enableKeyboardAccessibility}),$||l||this.$focusScroll=="browser")return S.focus({preventScroll:!0});var X=S.style.top;S.style.position="fixed",S.style.top="0px";try{var re=S.getBoundingClientRect().top!=0}catch{return}var ae=[];if(re)for(var de=S.parentElement;de&&de.nodeType==1;)ae.push(de),de.setAttribute("ace_nocontext","true"),!de.parentElement&&de.getRootNode?de=de.getRootNode().host:de=de.parentElement;S.focus({preventScroll:!0}),re&&ae.forEach(function(ce){ce.removeAttribute("ace_nocontext")}),setTimeout(function(){S.style.position="",S.style.top=="0px"&&(S.style.top=X)},0)},this.blur=function(){S.blur()},this.isFocused=function(){return V},g.on("beforeEndOperation",function(){var X=g.curOp,re=X&&X.command&&X.command.name;if(re!="insertstring"){var ae=re&&(X.docChanged||X.selectionChanged);_&&ae&&(w=S.value="",Ze()),H()}}),g.on("changeSelection",this.setAriaLabel);var W=function(X,re){for(var ae=re,de=1;de<=X-R&&de<2*P+1;de++)ae+=g.session.getLine(X-de).length+1;return ae},H=m?function(X){if(!(!V||T&&!X||O)){X||(X="");var re=` ab`+X+`cde fg -`;re!=S.value&&(S.value=w=re);var ae=4,pe=4+(X.length||(g.selection.isEmpty()?0:1));(x!=ae||I!=pe)&&S.setSelectionRange(ae,pe),x=ae,I=pe}}:function(){if(!(_||O)&&!(!V&&!Q)){_=!0;var X=0,re=0,ae="";if(g.session){var pe=g.selection,ce=pe.getRange(),Ee=pe.cursor.row;Ee===B+1?(R=B+1,B=R+2*P):Ee===R-1?(B=R-1,R=B-2*P):(EeB+1)&&(R=Ee>P?Ee-P:0,B=Ee>P?Ee+P:2*P);for(var $e=[],xe=R;xe<=B;xe++)$e.push(g.session.getLine(xe));if(ae=$e.join(` +`;re!=S.value&&(S.value=w=re);var ae=4,de=4+(X.length||(g.selection.isEmpty()?0:1));(x!=ae||I!=de)&&S.setSelectionRange(ae,de),x=ae,I=de}}:function(){if(!(_||O)&&!(!V&&!Q)){_=!0;var X=0,re=0,ae="";if(g.session){var de=g.selection,ce=de.getRange(),Ee=de.cursor.row;Ee===B+1?(R=B+1,B=R+2*P):Ee===R-1?(B=R-1,R=B-2*P):(EeB+1)&&(R=Ee>P?Ee-P:0,B=Ee>P?Ee+P:2*P);for(var $e=[],xe=R;xe<=B;xe++)$e.push(g.session.getLine(xe));if(ae=$e.join(` `),X=W(ce.start.row,ce.start.column),re=W(ce.end.row,ce.end.column),ce.start.rowB){var ve=g.session.getLine(B+1);re=ce.end.row>B+1?ve.length:ce.end.column,re+=ae.length+1,ae=ae+` `+ve}else D&&Ee>0&&(ae=` -`+ae,re+=1,X+=1);ae.length>s&&(Xo&&(X=w.length&&X.value===w&&w&&X.selectionEnd!==I},G=function(X){_||(T?T=!1:U(S)?(g.selectAll(),H()):D&&S.selectionStart!=x&&H())},Y=null;this.setInputHandler=function(X){Y=X},this.getInputHandler=function(){return Y};var Q=!1,ee=function(X,re){if(Q&&(Q=!1),k)return H(),X&&g.onPaste(X),k=!1,"";for(var ae=S.selectionStart,pe=S.selectionEnd,ce=x,Ee=w.length-I,$e=X,xe=X.length-ae,we=X.length-pe,ve=0;ce>0&&w[ve]==X[ve];)ve++,ce--;for($e=$e.slice(ve),ve=1;Ee>0&&w.length-ve>x-1&&w[w.length-ve]==X[X.length-ve];)ve++,Ee--;xe-=ve-1,we-=ve-1;var Fe=$e.length-ve+1;if(Fe<0&&(ce=-Fe,Fe=0),$e=$e.slice(0,Fe),!re&&!$e&&!xe&&!ce&&!Ee&&!we)return"";O=!0;var st=!1;return p.isAndroid&&$e==". "&&($e=" ",st=!0),$e&&!ce&&!Ee&&!xe&&!we||A?g.onTextInput($e):g.onTextInput($e,{extendLeft:ce,extendRight:Ee,restoreStart:xe,restoreEnd:we}),O=!1,w=X,x=ae,I=pe,F=we,st?` -`:$e},ne=function(X){if(_)return Xe();if(X&&X.inputType){if(X.inputType=="historyUndo")return g.execCommand("undo");if(X.inputType=="historyRedo")return g.execCommand("redo")}var re=S.value,ae=ee(re,!0);(re.length>s+100||y.test(ae)||D&&x<1&&x==I)&&H()},se=function(X,re,ae){var pe=X.clipboardData||window.clipboardData;if(!(!pe||t)){var ce=r||ae?"Text":"text/plain";try{return re?pe.setData(ce,re)!==!1:pe.getData(ce)}catch(Ee){if(!ae)return se(Ee,re,!0)}}},ge=function(X,re){var ae=g.getCopyText();if(!ae)return o.preventDefault(X);se(X,ae)?(m&&(H(ae),T=ae,setTimeout(function(){T=!1},10)),re?g.onCut():g.onCopy(),o.preventDefault(X)):(T=!0,S.value=ae,S.select(),setTimeout(function(){T=!1,H(),re?g.onCut():g.onCopy()}))},be=function(X){ge(X,!0)},ke=function(X){ge(X,!1)},Ce=function(X){var re=se(X);e.pasteCancelled()||(typeof re=="string"?(re&&g.onPaste(re,X),p.isIE&&setTimeout(H),o.preventDefault(X)):(S.value="",k=!0))};o.addCommandKeyListener(S,function(X,re,ae){if(!_)return g.onCommandKey(X,re,ae)},g),o.addListener(S,"select",G,g),o.addListener(S,"input",ne,g),o.addListener(S,"cut",be,g),o.addListener(S,"copy",ke,g),o.addListener(S,"paste",Ce,g),(!("oncut"in S)||!("oncopy"in S)||!("onpaste"in S))&&o.addListener(b,"keydown",function(X){if(!(p.isMac&&!X.metaKey||!X.ctrlKey))switch(X.keyCode){case 67:ke(X);break;case 86:Ce(X);break;case 88:be(X);break}},g);var Ne=function(X){if(!(_||!g.onCompositionStart||g.$readOnly)&&(_={},!A)){X.data&&(_.useTextareaForIME=!1),setTimeout(Xe,0),g._signal("compositionStart"),g.on("mousedown",Ot);var re=g.getSelectionRange();re.end.row=re.start.row,re.end.column=re.start.column,_.markerRange=re,_.selectionStart=x,g.onCompositionStart(_),_.useTextareaForIME?(w=S.value="",x=0,I=0):(S.msGetInputContext&&(_.context=S.msGetInputContext()),S.getInputContext&&(_.context=S.getInputContext()))}},Xe=function(){if(!(!_||!g.onCompositionUpdate||g.$readOnly)){if(A)return Ot();if(_.useTextareaForIME)g.onCompositionUpdate(S.value);else{var X=S.value;ee(X),_.markerRange&&(_.context&&(_.markerRange.start.column=_.selectionStart=_.context.compositionStartOffset),_.markerRange.end.column=_.markerRange.start.column+I-_.selectionStart+F)}}},Ze=function(X){!g.onCompositionEnd||g.$readOnly||(_=!1,g.onCompositionEnd(),g.off("mousedown",Ot),X&&ne())};function Ot(){C=!0,S.blur(),S.focus(),C=!1}var Jt=d.delayedCall(Xe,50).schedule.bind(null,null);function bn(X){X.keyCode==27&&S.value.lengthI&&w[we]==` +`;Fe!=w&&(S.value=w=Fe,x=I=Fe.length)}if(Q&&(x=S.selectionStart,I=S.selectionEnd),I!=re||x!=X||S.selectionEnd!=I)try{S.setSelectionRange(X,re),x=X,I=re}catch{}_=!1}};this.resetSelection=H,V&&g.onFocus();var U=function(X){return X.selectionStart===0&&X.selectionEnd>=w.length&&X.value===w&&w&&X.selectionEnd!==I},G=function(X){_||(T?T=!1:U(S)?(g.selectAll(),H()):D&&S.selectionStart!=x&&H())},Y=null;this.setInputHandler=function(X){Y=X},this.getInputHandler=function(){return Y};var Q=!1,ee=function(X,re){if(Q&&(Q=!1),k)return H(),X&&g.onPaste(X),k=!1,"";for(var ae=S.selectionStart,de=S.selectionEnd,ce=x,Ee=w.length-I,$e=X,xe=X.length-ae,we=X.length-de,ve=0;ce>0&&w[ve]==X[ve];)ve++,ce--;for($e=$e.slice(ve),ve=1;Ee>0&&w.length-ve>x-1&&w[w.length-ve]==X[X.length-ve];)ve++,Ee--;xe-=ve-1,we-=ve-1;var Fe=$e.length-ve+1;if(Fe<0&&(ce=-Fe,Fe=0),$e=$e.slice(0,Fe),!re&&!$e&&!xe&&!ce&&!Ee&&!we)return"";O=!0;var st=!1;return d.isAndroid&&$e==". "&&($e=" ",st=!0),$e&&!ce&&!Ee&&!xe&&!we||A?g.onTextInput($e):g.onTextInput($e,{extendLeft:ce,extendRight:Ee,restoreStart:xe,restoreEnd:we}),O=!1,w=X,x=ae,I=de,F=we,st?` +`:$e},ne=function(X){if(_)return Xe();if(X&&X.inputType){if(X.inputType=="historyUndo")return g.execCommand("undo");if(X.inputType=="historyRedo")return g.execCommand("redo")}var re=S.value,ae=ee(re,!0);(re.length>o+100||y.test(ae)||D&&x<1&&x==I)&&H()},se=function(X,re,ae){var de=X.clipboardData||window.clipboardData;if(!(!de||t)){var ce=r||ae?"Text":"text/plain";try{return re?de.setData(ce,re)!==!1:de.getData(ce)}catch(Ee){if(!ae)return se(Ee,re,!0)}}},ge=function(X,re){var ae=g.getCopyText();if(!ae)return s.preventDefault(X);se(X,ae)?(m&&(H(ae),T=ae,setTimeout(function(){T=!1},10)),re?g.onCut():g.onCopy(),s.preventDefault(X)):(T=!0,S.value=ae,S.select(),setTimeout(function(){T=!1,H(),re?g.onCut():g.onCopy()}))},be=function(X){ge(X,!0)},ke=function(X){ge(X,!1)},Ce=function(X){var re=se(X);e.pasteCancelled()||(typeof re=="string"?(re&&g.onPaste(re,X),d.isIE&&setTimeout(H),s.preventDefault(X)):(S.value="",k=!0))};s.addCommandKeyListener(S,function(X,re,ae){if(!_)return g.onCommandKey(X,re,ae)},g),s.addListener(S,"select",G,g),s.addListener(S,"input",ne,g),s.addListener(S,"cut",be,g),s.addListener(S,"copy",ke,g),s.addListener(S,"paste",Ce,g),(!("oncut"in S)||!("oncopy"in S)||!("onpaste"in S))&&s.addListener(b,"keydown",function(X){if(!(d.isMac&&!X.metaKey||!X.ctrlKey))switch(X.keyCode){case 67:ke(X);break;case 86:Ce(X);break;case 88:be(X);break}},g);var Ne=function(X){if(!(_||!g.onCompositionStart||g.$readOnly)&&(_={},!A)){X.data&&(_.useTextareaForIME=!1),setTimeout(Xe,0),g._signal("compositionStart"),g.on("mousedown",Ot);var re=g.getSelectionRange();re.end.row=re.start.row,re.end.column=re.start.column,_.markerRange=re,_.selectionStart=x,g.onCompositionStart(_),_.useTextareaForIME?(w=S.value="",x=0,I=0):(S.msGetInputContext&&(_.context=S.msGetInputContext()),S.getInputContext&&(_.context=S.getInputContext()))}},Xe=function(){if(!(!_||!g.onCompositionUpdate||g.$readOnly)){if(A)return Ot();if(_.useTextareaForIME)g.onCompositionUpdate(S.value);else{var X=S.value;ee(X),_.markerRange&&(_.context&&(_.markerRange.start.column=_.selectionStart=_.context.compositionStartOffset),_.markerRange.end.column=_.markerRange.start.column+I-_.selectionStart+F)}}},Ze=function(X){!g.onCompositionEnd||g.$readOnly||(_=!1,g.onCompositionEnd(),g.off("mousedown",Ot),X&&ne())};function Ot(){C=!0,S.blur(),S.focus(),C=!1}var Jt=p.delayedCall(Xe,50).schedule.bind(null,null);function bn(X){X.keyCode==27&&S.value.lengthI&&w[we]==` `?ve=c.end:xeI&&w.slice(0,we).split(` -`).length>2?ve=c.down:we>I&&w[we-1]==" "?(ve=c.right,Fe=f.option):(we>I||we==I&&I!=x&&xe==we)&&(ve=c.right),xe!==we&&(Fe|=f.shift),ve){var st=re.onCommandKey({},Fe,ve);if(!st&&re.commands){ve=c.keyCodeToString(ve);var Yt=re.commands.findKeyCommand(Fe,ve);Yt&&re.execCommand(Yt)}x=xe,I=we,H("")}}};document.addEventListener("selectionchange",Ee),re.on("destroy",function(){document.removeEventListener("selectionchange",Ee)})}this.destroy=function(){S.parentElement&&S.parentElement.removeChild(S)}},u.TextInput=E,u.$setUserAgentForTests=function(b,g){D=b,m=g}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(i,u,v){var o=i("../lib/useragent"),h=0,p=550,a=function(){function t(r){r.$clickSelection=null;var l=r.editor;l.setDefaultHandler("mousedown",this.onMouseDown.bind(r)),l.setDefaultHandler("dblclick",this.onDoubleClick.bind(r)),l.setDefaultHandler("tripleclick",this.onTripleClick.bind(r)),l.setDefaultHandler("quadclick",this.onQuadClick.bind(r)),l.setDefaultHandler("mousewheel",this.onMouseWheel.bind(r));var s=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];s.forEach(function(c){r[c]=this[c]},this),r.selectByLines=this.extendSelectionBy.bind(r,"getLineRange"),r.selectByWords=this.extendSelectionBy.bind(r,"getWordRange")}return t.prototype.onMouseDown=function(r){var l=r.inSelection(),s=r.getDocumentPosition();this.mousedownEvent=r;var c=this.editor,f=r.getButton();if(f!==0){var m=c.getSelectionRange(),y=m.isEmpty();(y||f==1)&&c.selection.moveToPosition(s),f==2&&(c.textInput.onContextMenu(r.domEvent),o.isMozilla||r.preventDefault());return}if(this.mousedownEvent.time=Date.now(),l&&!c.isFocused()&&(c.focus(),this.$focusTimeout&&!this.$clickSelection&&!c.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(r);return}return this.captureMouse(r),this.startSelect(s,r.domEvent._clicks>1),r.preventDefault()},t.prototype.startSelect=function(r,l){r=r||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var s=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?s.selection.selectToPosition(r):l||s.selection.moveToPosition(r),l||this.select(),s.setStyle("ace_selecting"),this.setState("select"))},t.prototype.select=function(){var r,l=this.editor,s=l.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var c=this.$clickSelection.comparePoint(s);if(c==-1)r=this.$clickSelection.end;else if(c==1)r=this.$clickSelection.start;else{var f=e(this.$clickSelection,s);s=f.cursor,r=f.anchor}l.selection.setSelectionAnchor(r.row,r.column)}l.selection.selectToPosition(s),l.renderer.scrollCursorIntoView()},t.prototype.extendSelectionBy=function(r){var l,s=this.editor,c=s.renderer.screenToTextCoordinates(this.x,this.y),f=s.selection[r](c.row,c.column);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(f.start),y=this.$clickSelection.comparePoint(f.end);if(m==-1&&y<=0)l=this.$clickSelection.end,(f.end.row!=c.row||f.end.column!=c.column)&&(c=f.start);else if(y==1&&m>=0)l=this.$clickSelection.start,(f.start.row!=c.row||f.start.column!=c.column)&&(c=f.end);else if(m==-1&&y==1)c=f.end,l=f.start;else{var D=e(this.$clickSelection,c);c=D.cursor,l=D.anchor}s.selection.setSelectionAnchor(l.row,l.column)}s.selection.selectToPosition(c),s.renderer.scrollCursorIntoView()},t.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},t.prototype.focusWait=function(){var r=d(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),l=Date.now();(r>h||l-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},t.prototype.onDoubleClick=function(r){var l=r.getDocumentPosition(),s=this.editor,c=s.session,f=c.getBracketRange(l);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=s.selection.getWordRange(l.row,l.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},t.prototype.onTripleClick=function(r){var l=r.getDocumentPosition(),s=this.editor;this.setState("selectByLines");var c=s.getSelectionRange();c.isMultiLine()&&c.contains(l.row,l.column)?(this.$clickSelection=s.selection.getLineRange(c.start.row),this.$clickSelection.end=s.selection.getLineRange(c.end.row).end):this.$clickSelection=s.selection.getLineRange(l.row),this.select()},t.prototype.onQuadClick=function(r){var l=this.editor;l.selectAll(),this.$clickSelection=l.getSelectionRange(),this.setState("selectAll")},t.prototype.onMouseWheel=function(r){if(!r.getAccelKey()){r.getShiftKey()&&r.wheelY&&!r.wheelX&&(r.wheelX=r.wheelY,r.wheelY=0);var l=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var s=this.$lastScroll,c=r.domEvent.timeStamp,f=c-s.t,m=f?r.wheelX/f:s.vx,y=f?r.wheelY/f:s.vy;f=1&&l.renderer.isScrollableBy(r.wheelX*r.speed,0)&&(E=!0),D<=1&&l.renderer.isScrollableBy(0,r.wheelY*r.speed)&&(E=!0),E)s.allowed=c;else if(c-s.allowedp.clientHeight;a||h.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(i,u,v){var o=this&&this.__extends||function(){var c=function(f,m){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,D){y.__proto__=D}||function(y,D){for(var E in D)Object.prototype.hasOwnProperty.call(D,E)&&(y[E]=D[E])},c(f,m)};return function(f,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");c(f,m);function y(){this.constructor=f}f.prototype=m===null?Object.create(m):(y.prototype=m.prototype,new y)}}(),h=this&&this.__values||function(c){var f=typeof Symbol=="function"&&Symbol.iterator,m=f&&c[f],y=0;if(m)return m.call(c);if(c&&typeof c.length=="number")return{next:function(){return c&&y>=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},p=i("./lib/dom");i("./lib/event");var a=i("./range").Range,d=i("./lib/scroll").preventParentScroll,e="ace_tooltip",t=function(){function c(f){this.isOpen=!1,this.$element=null,this.$parentNode=f}return c.prototype.$init=function(){return this.$element=p.createElement("div"),this.$element.className=e,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},c.prototype.getElement=function(){return this.$element||this.$init()},c.prototype.setText=function(f){this.getElement().textContent=f},c.prototype.setHtml=function(f){this.getElement().innerHTML=f},c.prototype.setPosition=function(f,m){this.getElement().style.left=f+"px",this.getElement().style.top=m+"px"},c.prototype.setClassName=function(f){p.addCssClass(this.getElement(),f)},c.prototype.setTheme=function(f){this.$element.className=e+" "+(f.isDark?"ace_dark ":"")+(f.cssClass||"")},c.prototype.show=function(f,m,y){f!=null&&this.setText(f),m!=null&&y!=null&&this.setPosition(m,y),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},c.prototype.hide=function(f){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=e,this.isOpen=!1)},c.prototype.getHeight=function(){return this.getElement().offsetHeight},c.prototype.getWidth=function(){return this.getElement().offsetWidth},c.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},c}(),r=function(){function c(){this.popups=[]}return c.prototype.addPopup=function(f){this.popups.push(f),this.updatePopups()},c.prototype.removePopup=function(f){var m=this.popups.indexOf(f);m!==-1&&(this.popups.splice(m,1),this.updatePopups())},c.prototype.updatePopups=function(){var f,m,y,D;this.popups.sort(function($,A){return A.priority-$.priority});var E=[];try{for(var b=h(this.popups),g=b.next();!g.done;g=b.next()){var S=g.value,T=!0;try{for(var k=(y=void 0,h(E)),_=k.next();!_.done;_=k.next()){var O=_.value;if(this.doPopupsOverlap(O,S)){T=!1;break}}}catch($){y={error:$}}finally{try{_&&!_.done&&(D=k.return)&&D.call(k)}finally{if(y)throw y.error}}T?E.push(S):S.hide()}}catch($){f={error:$}}finally{try{g&&!g.done&&(m=b.return)&&m.call(b)}finally{if(f)throw f.error}}},c.prototype.doPopupsOverlap=function(f,m){var y=f.getElement().getBoundingClientRect(),D=m.getElement().getBoundingClientRect();return y.leftD.left&&y.topD.top},c}(),l=new r;u.popupManager=l,u.Tooltip=t;var s=function(c){o(f,c);function f(m){m===void 0&&(m=document.body);var y=c.call(this,m)||this;y.timeout=void 0,y.lastT=0,y.idleTime=350,y.lastEvent=void 0,y.onMouseOut=y.onMouseOut.bind(y),y.onMouseMove=y.onMouseMove.bind(y),y.waitForHover=y.waitForHover.bind(y),y.hide=y.hide.bind(y);var D=y.getElement();return D.style.whiteSpace="pre-wrap",D.style.pointerEvents="auto",D.addEventListener("mouseout",y.onMouseOut),D.tabIndex=-1,D.addEventListener("blur",function(){D.contains(document.activeElement)||this.hide()}.bind(y)),D.addEventListener("wheel",d),y}return f.prototype.addToEditor=function(m){m.on("mousemove",this.onMouseMove),m.on("mousedown",this.hide),m.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},f.prototype.removeFromEditor=function(m){m.off("mousemove",this.onMouseMove),m.off("mousedown",this.hide),m.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},f.prototype.onMouseMove=function(m,y){this.lastEvent=m,this.lastT=Date.now();var D=y.$mouseHandler.isMousePressed;if(this.isOpen){var E=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(E.row,E.column)||D||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||D||(this.lastEvent=m,this.timeout=setTimeout(this.waitForHover,this.idleTime))},f.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var m=Date.now()-this.lastT;if(this.idleTime-m>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-m);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},f.prototype.isOutsideOfText=function(m){var y=m.editor,D=m.getDocumentPosition(),E=y.session.getLine(D.row);if(D.column==E.length){var b=y.renderer.pixelToScreenCoordinates(m.clientX,m.clientY),g=y.session.documentToScreenPosition(D.row,D.column);if(g.column!=b.column||g.row!=b.row)return!0}return!1},f.prototype.setDataProvider=function(m){this.$gatherData=m},f.prototype.showForRange=function(m,y,D,E){var b=10;if(!(E&&E!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var g=m.renderer;this.isOpen||(l.addPopup(this),this.$registerCloseEvents(),this.setTheme(g.theme)),this.isOpen=!0,this.addMarker(y,m.session),this.range=a.fromPoints(y.start,y.end);var S=g.textToScreenCoordinates(y.start.row,y.start.column),T=g.scroller.getBoundingClientRect();S.pageX=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},p=i("../lib/dom"),a=i("../lib/event"),d=i("../tooltip").Tooltip,e=i("../config").nls,t=5,r=3;u.GUTTER_TOOLTIP_LEFT_OFFSET=t,u.GUTTER_TOOLTIP_TOP_OFFSET=r;function l(c){var f=c.editor,m=f.renderer.$gutterLayer,y=new s(f,!0);c.editor.setDefaultHandler("guttermousedown",function(T){if(!(!f.isFocused()||T.getButton()!=0)){var k=m.getRegion(T);if(k!="foldWidgets"){var _=T.getDocumentPosition().row,O=f.session.selection;if(T.getShiftKey())O.selectTo(_,0);else{if(T.domEvent.detail==2)return f.selectAll(),T.preventDefault();c.$clickSelection=f.selection.getLineRange(_)}return c.setState("selectByLines"),c.captureMouse(T),T.preventDefault()}}});var D,E;function b(){var T=E.getDocumentPosition().row,k=f.session.getLength();if(T==k){var _=f.renderer.pixelToScreenCoordinates(0,E.y).row,O=E.$pos;if(_>f.session.documentToScreenRow(O.row,O.column))return g()}if(y.showTooltip(T),!!y.isOpen)if(f.on("mousewheel",g),f.on("changeSession",g),window.addEventListener("keydown",g,!0),c.$tooltipFollowsMouse)S(E);else{var $=E.getGutterRow(),A=m.$lines.get($);if(A){var C=A.element.querySelector(".ace_gutter_annotation"),w=C.getBoundingClientRect(),x=y.getElement().style;x.left=w.right-t+"px",x.top=w.bottom-r+"px"}else S(E)}}function g(T){T&&T.type==="keydown"&&(T.ctrlKey||T.metaKey)||T&&T.type==="mouseout"&&(!T.relatedTarget||y.getElement().contains(T.relatedTarget))||(D&&(D=clearTimeout(D)),y.isOpen&&(y.hideTooltip(),f.off("mousewheel",g),f.off("changeSession",g),window.removeEventListener("keydown",g,!0)))}function S(T){y.setPosition(T.x,T.y)}c.editor.setDefaultHandler("guttermousemove",function(T){var k=T.domEvent.target||T.domEvent.srcElement;if(p.hasCssClass(k,"ace_fold-widget")||p.hasCssClass(k,"ace_custom-widget"))return g();y.isOpen&&c.$tooltipFollowsMouse&&S(T),E=T,!D&&(D=setTimeout(function(){D=null,E&&!c.isMousePressed&&b()},50))}),a.addListener(f.renderer.$gutter,"mouseout",function(T){E=null,y.isOpen&&(D=setTimeout(function(){D=null,g(T)},50))},f)}u.GutterHandler=l;var s=function(c){o(f,c);function f(m,y){y===void 0&&(y=!1);var D=c.call(this,m.container)||this;D.editor=m,D.visibleTooltipRow;var E=D.getElement();return E.setAttribute("role","tooltip"),E.style.pointerEvents="auto",y&&(D.onMouseOut=D.onMouseOut.bind(D),E.addEventListener("mouseout",D.onMouseOut)),D}return f.prototype.onMouseOut=function(m){this.isOpen&&(!m.relatedTarget||this.getElement().contains(m.relatedTarget)||m&&m.currentTarget.contains(m.relatedTarget)||this.hideTooltip())},f.prototype.setPosition=function(m,y){var D=window.innerWidth||document.documentElement.clientWidth,E=window.innerHeight||document.documentElement.clientHeight,b=this.getWidth(),g=this.getHeight();m+=15,y+=15,m+b>D&&(m-=m+b-D),y+g>E&&(y-=20+g),d.prototype.setPosition.call(this,m,y)},Object.defineProperty(f,"annotationLabels",{get:function(){return{error:{singular:e("gutter-tooltip.aria-label.error.singular","error"),plural:e("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:e("gutter-tooltip.aria-label.security.singular","security finding"),plural:e("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:e("gutter-tooltip.aria-label.warning.singular","warning"),plural:e("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:e("gutter-tooltip.aria-label.info.singular","information message"),plural:e("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:e("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:e("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),f.prototype.showTooltip=function(m){var y,D=this.editor.renderer.$gutterLayer,E=D.$annotations[m],b;E?b={displayText:Array.from(E.displayText),type:Array.from(E.type)}:b={displayText:[],type:[]};var g=D.session.getFoldLine(m);if(g&&D.$showFoldedAnnotations){for(var S={error:[],security:[],warning:[],info:[],hint:[]},T={error:1,security:2,warning:3,info:4,hint:5},k,_=m+1;_<=g.end.row;_++)if(D.$annotations[_])for(var O=0;Oe?$=null:U-$>=d&&(s.renderer.scrollCursorIntoView(),$=null)}}function w(W,H){var U=Date.now(),G=s.renderer.layerConfig.lineHeight,Y=s.renderer.layerConfig.characterWidth,Q=s.renderer.scroller.getBoundingClientRect(),ee={x:{left:D-Q.left,right:Q.right-D},y:{top:E-Q.top,bottom:Q.bottom-E}},ne=Math.min(ee.x.left,ee.x.right),se=Math.min(ee.y.top,ee.y.bottom),ge={row:W.row,column:W.column};ne/Y<=2&&(ge.column+=ee.x.left=a&&s.renderer.scrollCursorIntoView(ge):O=U:O=null}function x(){var W=S;S=s.renderer.screenToTextCoordinates(D,E),C(S,W),w(S,W)}function I(){g=s.selection.toOrientedRange(),y=s.session.addMarker(g,"ace_selection",s.getSelectionStyle()),s.clearSelection(),s.isFocused()&&s.renderer.$cursorLayer.setBlinking(!1),clearInterval(b),x(),b=setInterval(x,20),T=0,h.addListener(document,"mousemove",B)}function F(){clearInterval(b),s.session.removeMarker(y),y=null,s.selection.fromOrientedRange(g),s.isFocused()&&!_&&s.$resetCursorStyle(),g=null,S=null,T=0,O=null,$=null,h.removeListener(document,"mousemove",B)}var R=null;function B(){R==null&&(R=setTimeout(function(){R!=null&&y&&F()},20))}function P(W){var H=W.types;return!H||Array.prototype.some.call(H,function(U){return U=="text/plain"||U=="Text"})}function V(W){var H=["copy","copymove","all","uninitialized"],U=["move","copymove","linkmove","all","uninitialized"],G=p.isMac?W.altKey:W.ctrlKey,Y="uninitialized";try{Y=W.dataTransfer.effectAllowed.toLowerCase()}catch{}var Q="none";return G&&H.indexOf(Y)>=0?Q="copy":U.indexOf(Y)>=0?Q="move":H.indexOf(Y)>=0&&(Q="copy"),Q}}(function(){this.dragWait=function(){var l=Date.now()-this.mousedownEvent.time;l>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var l=this.editor.container;l.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(l){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var l=this.editor,s=l.container;s.draggable=!0,l.renderer.$cursorLayer.setBlinking(!1),l.setStyle("ace_dragging");var c=p.isWin?"default":"move";l.renderer.setCursorStyle(c),this.setState("dragReady")},this.onMouseDrag=function(l){var s=this.editor.container;if(p.isIE&&this.state=="dragReady"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>3&&s.dragDrop()}if(this.state==="dragWait"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>0&&(s.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(l){if(this.$dragEnabled){this.mousedownEvent=l;var s=this.editor,c=l.inSelection(),f=l.getButton(),m=l.domEvent.detail||1;if(m===1&&f===0&&c){if(l.editor.inMultiSelectMode&&(l.getAccelKey()||l.getShiftKey()))return;this.mousedownEvent.time=Date.now();var y=l.domEvent.target||l.domEvent.srcElement;if("unselectable"in y&&(y.unselectable="on"),s.getDragDelay()){if(p.isWebKit){this.cancelDrag=!0;var D=s.container;D.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(l,this.onMouseDrag.bind(this)),l.defaultPrevented=!0}}}}).call(t.prototype);function r(l,s,c,f){return Math.sqrt(Math.pow(c-l,2)+Math.pow(f-s,2))}u.DragdropHandler=t}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(i,u,v){var o=i("./mouse_event").MouseEvent,h=i("../lib/event"),p=i("../lib/dom");u.addTouchListeners=function(a,d){var e="scroll",t,r,l,s,c,f,m=0,y,D=0,E=0,b=0,g,S;function T(){var C=window.navigator&&window.navigator.clipboard,w=!1,x=function(){var R=d.getCopyText(),B=d.session.getUndoManager().hasUndo();S.replaceChild(p.buildDom(w?["span",!R&&I("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],R&&I("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],R&&I("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],C&&I("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],B&&I("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],I("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],I("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),S.firstChild)},I=function(R){return d.commands.canExecute(R,d)},F=function(R){var B=R.target.getAttribute("action");if(B=="more"||!w)return w=!w,x();B=="paste"?C.readText().then(function(P){d.execCommand(B,P)}):B&&((B=="cut"||B=="copy")&&(C?C.writeText(d.getCopyText()):document.execCommand("copy")),d.execCommand(B)),S.firstChild.style.display="none",w=!1,B!="openCommandPalette"&&d.focus()};S=p.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(R){e="menu",R.stopPropagation(),R.preventDefault(),d.textInput.focus()},ontouchend:function(R){R.stopPropagation(),R.preventDefault(),F(R)},onclick:F},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],d.container)}function k(){if(!d.getOption("enableMobileMenu")){S&&_();return}S||T();var C=d.selection.cursor,w=d.renderer.textToScreenCoordinates(C.row,C.column),x=d.renderer.textToScreenCoordinates(0,0).pageX,I=d.renderer.scrollLeft,F=d.container.getBoundingClientRect();S.style.top=w.pageY-F.top-3+"px",w.pageX-F.left=2?d.selection.getLineRange(y.row):d.session.getBracketRange(y);C&&!C.isEmpty()?d.selection.setRange(C):d.selection.selectWord(),e="wait"}h.addListener(a,"contextmenu",function(C){if(g){var w=d.textInput.getElement();w.focus()}},d),h.addListener(a,"touchstart",function(C){var w=C.touches;if(c||w.length>1){clearTimeout(c),c=null,l=-1,e="zoom";return}g=d.$mouseHandler.isMousePressed=!0;var x=d.renderer.layerConfig.lineHeight,I=d.renderer.layerConfig.lineHeight,F=C.timeStamp;s=F;var R=w[0],B=R.clientX,P=R.clientY;Math.abs(t-B)+Math.abs(r-P)>x&&(l=-1),t=C.clientX=B,r=C.clientY=P,E=b=0;var V=new o(C,d);if(y=V.getDocumentPosition(),F-l<500&&w.length==1&&!m)D++,C.preventDefault(),C.button=0,$();else{D=0;var W=d.selection.cursor,H=d.selection.isEmpty()?W:d.selection.anchor,U=d.renderer.$cursorLayer.getPixelPosition(W,!0),G=d.renderer.$cursorLayer.getPixelPosition(H,!0),Y=d.renderer.scroller.getBoundingClientRect(),Q=d.renderer.layerConfig.offset,ee=d.renderer.scrollLeft,ne=function(be,ke){return be=be/I,ke=ke/x-.75,be*be+ke*ke};if(C.clientXge?"cursor":"anchor"),ge<3.5?e="anchor":se<3.5?e="cursor":e="scroll",c=setTimeout(O,450)}l=F},d),h.addListener(a,"touchend",function(C){g=d.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),e=="zoom"?(e="",m=0):c?(d.selection.moveToPosition(y),m=0,k()):e=="scroll"?(A(),_()):k(),clearTimeout(c),c=null},d),h.addListener(a,"touchmove",function(C){c&&(clearTimeout(c),c=null);var w=C.touches;if(!(w.length>1||e=="zoom")){var x=w[0],I=t-x.clientX,F=r-x.clientY;if(e=="wait")if(I*I+F*F>4)e="cursor";else return C.preventDefault();t=x.clientX,r=x.clientY,C.clientX=x.clientX,C.clientY=x.clientY;var R=C.timeStamp,B=R-s;if(s=R,e=="scroll"){var P=new o(C,d);P.speed=1,P.wheelX=I,P.wheelY=F,10*Math.abs(I)0)if(ge==16){for(Ce=ke;Ce-1){for(Ce=ke;Ce=0&&G[Ze]==g;Ze--)H[Ze]=o}}}function B(W,H,U){if(!(h=W){for(Q=Y+1;Q=W;)Q++;for(ee=Y,ne=Q-1;ee=H.length||(Q=U[G-1])!=f&&Q!=m||(ee=H[G+1])!=f&&ee!=m?y:(p&&(ee=m),ee==Q?ee:y);case T:return Q=G>0?U[G-1]:D,Q==f&&G+10&&U[G-1]==f)return f;if(p)return y;for(se=G+1,ne=H.length;se=1425&&ge<=2303||ge==64286;if(Q=H[se],be&&(Q==c||Q==b))return c}return G<1||(Q=H[G-1])==D?y:U[G-1];case D:return p=!1,a=!0,o;case E:return d=!0,y;case O:case $:case C:case w:case A:p=!1;case x:return y}}function V(W){var H=W.charCodeAt(0),U=H>>8;return U==0?H>191?s:I[H]:U==5?/[\u0591-\u05f4]/.test(W)?c:s:U==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(W)?_:/[\u0660-\u0669\u066b-\u066c]/.test(W)?m:H==1642?k:/[\u06f0-\u06f9]/.test(W)?f:b:U==32&&H<=8287?F[H&255]:U==254&&H>=65136?b:y}u.L=s,u.R=c,u.EN=f,u.ON_R=3,u.AN=4,u.R_H=5,u.B=6,u.RLE=7,u.DOT="·",u.doBidiReorder=function(W,H,U){if(W.length<2)return{};var G=W.split(""),Y=new Array(G.length),Q=new Array(G.length),ee=[];o=U?l:r,R(G,ee,G.length,H);for(var ne=0;neb&&H[ne]0&&G[ne-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(G[ne])&&(ee[ne-1]=ee[ne]=u.R_H,ne++);G[G.length-1]===u.DOT&&(ee[G.length-1]=u.B),G[0]==="‫"&&(ee[0]=u.RLE);for(var ne=0;ne=0&&(e=this.session.$docRowCache[r])}return e},d.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var r,l=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(r=this.session.$getRowCacheIndex(t,this.currentRow-e-1),r===l);)l=r,e++;else e=this.currentRow;return e},d.prototype.updateRowLine=function(e,t){e===void 0&&(e=this.getDocumentRow());var r=e===this.session.getLength()-1,l=r?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var s=this.session.$wrapData[e];s&&(t===void 0&&(t=this.getSplitIndex()),t>0&&s.length?(this.wrapIndent=s.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,l=o.getVisualFromLogicalIdx(r,this.bidiMap),s=this.bidiMap.bidiLevels,c=0;!this.session.getOverwrite()&&e<=t&&s[l]%2!==0&&l++;for(var f=0;ft&&s[l]%2===0&&(c+=this.charWidths[s[l]]),this.wrapIndent&&(c+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(c+=this.rtlLineOffset),c},d.prototype.getSelections=function(e,t){var r=this.bidiMap,l=r.bidiLevels,s,c=[],f=0,m=Math.min(e,t)-this.wrapIndent,y=Math.max(e,t)-this.wrapIndent,D=!1,E=!1,b=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var g,S=0;S=m&&gl+f/2;){if(l+=f,s===c.length-1){f=0;break}f=this.charWidths[c[++s]]}return s>0&&c[s-1]%2!==0&&c[s]%2===0?(r0&&c[s-1]%2===0&&c[s]%2!==0?t=1+(r>l?this.bidiMap.logicalFromVisual[s]:this.bidiMap.logicalFromVisual[s-1]):this.isRtlDir&&s===c.length-1&&f===0&&c[s-1]%2===0||!this.isRtlDir&&s===0&&c[s]%2!==0?t=1+this.bidiMap.logicalFromVisual[s]:(s>0&&c[s-1]%2!==0&&f!==0&&s--,t=this.bidiMap.logicalFromVisual[s]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},d}();u.BidiHandler=a}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(i,u,v){var o=i("./lib/oop"),h=i("./lib/lang"),p=i("./lib/event_emitter").EventEmitter,a=i("./range").Range,d=function(){function e(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var r=this;this.cursor.on("change",function(l){r.$cursorChanged=!0,r.$silent||r._emit("changeCursor"),!r.$isEmpty&&!r.$silent&&r._emit("changeSelection"),!r.$keepDesiredColumnOnChange&&l.old.column!=l.value.column&&(r.$desiredColumn=null)}),this.anchor.on("change",function(){r.$anchorChanged=!0,!r.$isEmpty&&!r.$silent&&r._emit("changeSelection")})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(t,r){this.$isEmpty=!1,this.anchor.setPosition(t,r)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var t=this.anchor,r=this.lead;return t.row>r.row||t.row==r.row&&t.column>r.column},e.prototype.getRange=function(){var t=this.anchor,r=this.lead;return this.$isEmpty?a.fromPoints(r,r):this.isBackwards()?a.fromPoints(r,t):a.fromPoints(t,r)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(t,r){var l=r?t.end:t.start,s=r?t.start:t.end;this.$setSelection(l.row,l.column,s.row,s.column)},e.prototype.$setSelection=function(t,r,l,s){if(!this.$silent){var c=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(t,r),this.cursor.setPosition(l,s),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||c!=this.$isEmpty||f)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(t){var r=this.lead;this.$isEmpty&&this.setSelectionAnchor(r.row,r.column),t.call(this)},e.prototype.selectTo=function(t,r){this.$moveSelection(function(){this.moveCursorTo(t,r)})},e.prototype.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},e.prototype.moveTo=function(t,r){this.clearSelection(),this.moveCursorTo(t,r)},e.prototype.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(t,r){if(typeof r>"u"){var l=t||this.lead;t=l.row,r=l.column}return this.session.getWordRange(t,r)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var t=this.getCursor(),r=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(r)},e.prototype.getLineRange=function(t,r){var l=typeof t=="number"?t:this.lead.row,s,c=this.session.getFoldLine(l);return c?(l=c.start.row,s=c.end.row):s=l,r===!0?new a(l,0,s,this.session.getLine(s).length):new a(l,0,s+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(t,r,l){var s=t.column,c=t.column+r;return l<0&&(s=t.column-r,c=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(s,c).split(" ").length-1==r},e.prototype.moveCursorLeft=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(r.start.row,r.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var l=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,l,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-l):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(r.end.row,r.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(r.column=s)}}this.moveCursorTo(r.row,r.column)},e.prototype.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,r=this.doc.getLine(t).length;this.moveCursorTo(t,r)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),s=l.substring(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var c=this.session.getFoldAt(t,r,1);if(c){this.moveCursorTo(c.end.row,c.end.column);return}if(this.session.nonTokenRe.exec(s)&&(r+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,s=l.substring(r)),r>=l.length){this.moveCursorTo(t,l.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(c)&&(r-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,r)},e.prototype.$shortWordEndIndex=function(t){var r=0,l,s=/\s/,c=this.session.tokenRe;if(c.lastIndex=0,this.session.tokenRe.exec(t))r=this.session.tokenRe.lastIndex;else{for(;(l=t[r])&&s.test(l);)r++;if(r<1){for(c.lastIndex=0;(l=t[r])&&!c.test(l);)if(c.lastIndex=0,r++,s.test(l))if(r>2){r--;break}else{for(;(l=t[r])&&s.test(l);)r++;if(r>2)break}}}return c.lastIndex=0,r},e.prototype.moveCursorShortWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),s=l.substring(r),c=this.session.getFoldAt(t,r,1);if(c)return this.moveCursorTo(c.end.row,c.end.column);if(r==l.length){var f=this.doc.getLength();do t++,s=this.doc.getLine(t);while(t0&&/^\s*$/.test(s));r=s.length,/\s+$/.test(s)||(s="")}var c=h.stringReverse(s),f=this.$shortWordEndIndex(c);return this.moveCursorTo(t,r-f)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(t,r){var l=this.session.documentToScreenPosition(this.lead.row,this.lead.column),s;if(r===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(l.row,this.lead.row)?(s=this.session.$bidiHandler.getPosLeft(l.column),l.column=Math.round(s/this.session.$bidiHandler.charWidths[0])):s=l.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?l.column=this.$desiredColumn:this.$desiredColumn=l.column),t!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var c=this.session.lineWidgets[this.lead.row];t<0?t-=c.rowsAbove||0:t>0&&(t+=c.rowCount-(c.rowsAbove||0))}var f=this.session.screenToDocumentPosition(l.row+t,l.column,s);t!==0&&r===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+r,r===0)},e.prototype.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorTo=function(t,r,l){var s=this.session.getFoldAt(t,r,1);s&&(t=s.start.row,r=s.start.column),this.$keepDesiredColumnOnChange=!0;var c=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(c.charAt(r))&&c.charAt(r-1)&&(this.lead.row==t&&this.lead.column==r+1?r=r-1:r=r+1),this.lead.setPosition(t,r),this.$keepDesiredColumnOnChange=!1,l||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(t,r,l){var s=this.session.screenToDocumentPosition(t,r);this.moveCursorTo(s.row,s.column,l)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(t){var r=this.getRange();return t?(t.start.column=r.start.column,t.start.row=r.start.row,t.end.column=r.end.column,t.end.row=r.end.row):t=r,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},e.prototype.getRangeOfMovements=function(t){var r=this.getCursor();try{t(this);var l=this.getCursor();return a.fromPoints(r,l)}catch{return a.fromPoints(r,r)}finally{this.moveCursorToPosition(r)}},e.prototype.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(r){var l=r.clone();return l.isBackwards=r.cursor==r.start,l});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},e.prototype.fromJSON=function(t){if(t.start==null)if(this.rangeList&&t.length>1){this.toSingleRange(t[0]);for(var r=t.length;r--;){var l=a.fromPoints(t[r].start,t[r].end);t[r].isBackwards&&(l.cursor=l.start),this.addRange(l,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},e.prototype.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var r=this.ranges.length;r--;)if(!this.ranges[r].isEqual(t[r]))return!1;return!0},e}();d.prototype.setSelectionAnchor=d.prototype.setAnchor,d.prototype.getSelectionAnchor=d.prototype.getAnchor,d.prototype.setSelectionRange=d.prototype.setRange,o.implement(d.prototype,p),u.Selection=d}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(i,u,v){var o=i("./lib/report_error").reportError,h=2e3,p=function(){function a(d){this.splitRegex,this.states=d,this.regExps={},this.matchMappings={};for(var e in this.states){for(var t=this.states[e],r=[],l=0,s=this.matchMappings[e]={defaultToken:"text"},c="g",f=[],m=0;m1?y.onMatch=this.$applyToken:y.onMatch=y.token),E>1&&(/\\\d/.test(y.regex)?D=y.regex.replace(/\\([0-9]+)/g,function(b,g){return"\\"+(parseInt(g,10)+l+1)}):(E=1,D=this.removeCapturingGroups(y.regex)),!y.splitRegex&&typeof y.token!="string"&&f.push(y)),s[l]=m,l+=E,r.push(D),y.onMatch||(y.onMatch=null)}}r.length||(s[0]=0,r.push("$")),f.forEach(function(b){b.splitRegex=this.createSplitterRegexp(b.regex,c)},this),this.regExps[e]=new RegExp("("+r.join(")|(")+")|($)",c)}}return a.prototype.$setMaxTokenCount=function(d){h=d|0},a.prototype.$applyToken=function(d){var e=this.splitRegex.exec(d).slice(1),t=this.token.apply(this,e);if(typeof t=="string")return[{type:t,value:d}];for(var r=[],l=0,s=t.length;ly){var k=d.substring(y,T-S.length);E.type==b?E.value+=k:(E.type&&m.push(E),E={type:b,value:k})}for(var _=0;_h){for(D>2*d.length&&this.reportError("infinite loop with in ace tokenizer",{startState:e,line:d});y1&&t[0]!==r&&t.unshift("#tmp",r),{tokens:m,state:t.length?t:r}},a}();p.prototype.reportError=o,u.Tokenizer=p}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(i,u,v){var o=i("../lib/deep_copy").deepCopy,h;h=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(d,e){if(!e){for(var t in d)this.$rules[t]=d[t];return}for(var t in d){for(var r=d[t],l=0;l=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},p.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},p.prototype.getCurrentTokenRow=function(){return this.$row},p.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,d=this.$tokenIndex,e=a[d].start;if(e!==void 0)return e;for(e=0;d>0;)d-=1,e+=a[d].value.length;return e},p.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},p.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],d=this.getCurrentTokenColumn();return new o(this.$row,d,this.$row,d+a.value.length)},p}();u.TokenIterator=h}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(i,u,v){var o=i("../../lib/oop"),h=i("../behaviour").Behaviour,p=i("../../token_iterator").TokenIterator,a=i("../../lib/lang"),d=["text","paren.rparen","rparen","paren","punctuation.operator"],e=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],t,r={},l={'"':'"',"'":"'"},s=function(m){var y=-1;if(m.multiSelect&&(y=m.selection.index,r.rangeCount!=m.multiSelect.rangeCount&&(r={rangeCount:m.multiSelect.rangeCount})),r[y])return t=r[y];t=r[y]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},c=function(m,y,D,E){var b=m.end.row-m.start.row;return{text:D+y+E,selection:[0,m.start.column+1,b,m.end.column+(b?0:1)]}},f;f=function(m){m=m||{},this.add("braces","insertion",function(y,D,E,b,g){var S=E.getCursorPosition(),T=b.doc.getLine(S.row);if(g=="{"){s(E);var k=E.getSelectionRange(),_=b.doc.getTextRange(k),O=b.getTokenAt(S.row,S.column);if(_!==""&&_!=="{"&&E.getWrapBehavioursEnabled())return c(k,_,"{","}");if(O&&/(?:string)\.quasi|\.xml/.test(O.type)){var $=[/tag\-(?:open|name)/,/attribute\-name/];return $.some(function(R){return R.test(O.type)})||/(string)\.quasi/.test(O.type)&&O.value[S.column-O.start-1]!=="$"?void 0:(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(E,b))return/[\]\}\)]/.test(T[S.column])||E.inMultiSelectMode||m.braces?(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(E,b,"{"),{text:"{",selection:[1,1]})}else if(g=="}"){s(E);var A=T.substring(S.column,S.column+1);if(A=="}"){var C=b.$findOpeningBracket("}",{column:S.column+1,row:S.row});if(C!==null&&f.isAutoInsertedClosing(S,T,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(g==` +`).length>2?ve=c.down:we>I&&w[we-1]==" "?(ve=c.right,Fe=f.option):(we>I||we==I&&I!=x&&xe==we)&&(ve=c.right),xe!==we&&(Fe|=f.shift),ve){var st=re.onCommandKey({},Fe,ve);if(!st&&re.commands){ve=c.keyCodeToString(ve);var Yt=re.commands.findKeyCommand(Fe,ve);Yt&&re.execCommand(Yt)}x=xe,I=we,H("")}}};document.addEventListener("selectionchange",Ee),re.on("destroy",function(){document.removeEventListener("selectionchange",Ee)})}this.destroy=function(){S.parentElement&&S.parentElement.removeChild(S)}},h.TextInput=E,h.$setUserAgentForTests=function(b,g){D=b,m=g}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(i,h,v){var s=i("../lib/useragent"),u=0,d=550,a=function(){function t(r){r.$clickSelection=null;var l=r.editor;l.setDefaultHandler("mousedown",this.onMouseDown.bind(r)),l.setDefaultHandler("dblclick",this.onDoubleClick.bind(r)),l.setDefaultHandler("tripleclick",this.onTripleClick.bind(r)),l.setDefaultHandler("quadclick",this.onQuadClick.bind(r)),l.setDefaultHandler("mousewheel",this.onMouseWheel.bind(r));var o=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];o.forEach(function(c){r[c]=this[c]},this),r.selectByLines=this.extendSelectionBy.bind(r,"getLineRange"),r.selectByWords=this.extendSelectionBy.bind(r,"getWordRange")}return t.prototype.onMouseDown=function(r){var l=r.inSelection(),o=r.getDocumentPosition();this.mousedownEvent=r;var c=this.editor,f=r.getButton();if(f!==0){var m=c.getSelectionRange(),y=m.isEmpty();(y||f==1)&&c.selection.moveToPosition(o),f==2&&(c.textInput.onContextMenu(r.domEvent),s.isMozilla||r.preventDefault());return}if(this.mousedownEvent.time=Date.now(),l&&!c.isFocused()&&(c.focus(),this.$focusTimeout&&!this.$clickSelection&&!c.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(r);return}return this.captureMouse(r),this.startSelect(o,r.domEvent._clicks>1),r.preventDefault()},t.prototype.startSelect=function(r,l){r=r||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var o=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?o.selection.selectToPosition(r):l||o.selection.moveToPosition(r),l||this.select(),o.setStyle("ace_selecting"),this.setState("select"))},t.prototype.select=function(){var r,l=this.editor,o=l.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var c=this.$clickSelection.comparePoint(o);if(c==-1)r=this.$clickSelection.end;else if(c==1)r=this.$clickSelection.start;else{var f=e(this.$clickSelection,o);o=f.cursor,r=f.anchor}l.selection.setSelectionAnchor(r.row,r.column)}l.selection.selectToPosition(o),l.renderer.scrollCursorIntoView()},t.prototype.extendSelectionBy=function(r){var l,o=this.editor,c=o.renderer.screenToTextCoordinates(this.x,this.y),f=o.selection[r](c.row,c.column);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(f.start),y=this.$clickSelection.comparePoint(f.end);if(m==-1&&y<=0)l=this.$clickSelection.end,(f.end.row!=c.row||f.end.column!=c.column)&&(c=f.start);else if(y==1&&m>=0)l=this.$clickSelection.start,(f.start.row!=c.row||f.start.column!=c.column)&&(c=f.end);else if(m==-1&&y==1)c=f.end,l=f.start;else{var D=e(this.$clickSelection,c);c=D.cursor,l=D.anchor}o.selection.setSelectionAnchor(l.row,l.column)}o.selection.selectToPosition(c),o.renderer.scrollCursorIntoView()},t.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},t.prototype.focusWait=function(){var r=p(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),l=Date.now();(r>u||l-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},t.prototype.onDoubleClick=function(r){var l=r.getDocumentPosition(),o=this.editor,c=o.session,f=c.getBracketRange(l);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=o.selection.getWordRange(l.row,l.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},t.prototype.onTripleClick=function(r){var l=r.getDocumentPosition(),o=this.editor;this.setState("selectByLines");var c=o.getSelectionRange();c.isMultiLine()&&c.contains(l.row,l.column)?(this.$clickSelection=o.selection.getLineRange(c.start.row),this.$clickSelection.end=o.selection.getLineRange(c.end.row).end):this.$clickSelection=o.selection.getLineRange(l.row),this.select()},t.prototype.onQuadClick=function(r){var l=this.editor;l.selectAll(),this.$clickSelection=l.getSelectionRange(),this.setState("selectAll")},t.prototype.onMouseWheel=function(r){if(!r.getAccelKey()){r.getShiftKey()&&r.wheelY&&!r.wheelX&&(r.wheelX=r.wheelY,r.wheelY=0);var l=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var o=this.$lastScroll,c=r.domEvent.timeStamp,f=c-o.t,m=f?r.wheelX/f:o.vx,y=f?r.wheelY/f:o.vy;f=1&&l.renderer.isScrollableBy(r.wheelX*r.speed,0)&&(E=!0),D<=1&&l.renderer.isScrollableBy(0,r.wheelY*r.speed)&&(E=!0),E)o.allowed=c;else if(c-o.allowedd.clientHeight;a||u.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(i,h,v){var s=this&&this.__extends||function(){var c=function(f,m){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,D){y.__proto__=D}||function(y,D){for(var E in D)Object.prototype.hasOwnProperty.call(D,E)&&(y[E]=D[E])},c(f,m)};return function(f,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");c(f,m);function y(){this.constructor=f}f.prototype=m===null?Object.create(m):(y.prototype=m.prototype,new y)}}(),u=this&&this.__values||function(c){var f=typeof Symbol=="function"&&Symbol.iterator,m=f&&c[f],y=0;if(m)return m.call(c);if(c&&typeof c.length=="number")return{next:function(){return c&&y>=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},d=i("./lib/dom");i("./lib/event");var a=i("./range").Range,p=i("./lib/scroll").preventParentScroll,e="ace_tooltip",t=function(){function c(f){this.isOpen=!1,this.$element=null,this.$parentNode=f}return c.prototype.$init=function(){return this.$element=d.createElement("div"),this.$element.className=e,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},c.prototype.getElement=function(){return this.$element||this.$init()},c.prototype.setText=function(f){this.getElement().textContent=f},c.prototype.setHtml=function(f){this.getElement().innerHTML=f},c.prototype.setPosition=function(f,m){this.getElement().style.left=f+"px",this.getElement().style.top=m+"px"},c.prototype.setClassName=function(f){d.addCssClass(this.getElement(),f)},c.prototype.setTheme=function(f){this.$element.className=e+" "+(f.isDark?"ace_dark ":"")+(f.cssClass||"")},c.prototype.show=function(f,m,y){f!=null&&this.setText(f),m!=null&&y!=null&&this.setPosition(m,y),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},c.prototype.hide=function(f){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=e,this.isOpen=!1)},c.prototype.getHeight=function(){return this.getElement().offsetHeight},c.prototype.getWidth=function(){return this.getElement().offsetWidth},c.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},c}(),r=function(){function c(){this.popups=[]}return c.prototype.addPopup=function(f){this.popups.push(f),this.updatePopups()},c.prototype.removePopup=function(f){var m=this.popups.indexOf(f);m!==-1&&(this.popups.splice(m,1),this.updatePopups())},c.prototype.updatePopups=function(){var f,m,y,D;this.popups.sort(function($,A){return A.priority-$.priority});var E=[];try{for(var b=u(this.popups),g=b.next();!g.done;g=b.next()){var S=g.value,T=!0;try{for(var k=(y=void 0,u(E)),_=k.next();!_.done;_=k.next()){var O=_.value;if(this.doPopupsOverlap(O,S)){T=!1;break}}}catch($){y={error:$}}finally{try{_&&!_.done&&(D=k.return)&&D.call(k)}finally{if(y)throw y.error}}T?E.push(S):S.hide()}}catch($){f={error:$}}finally{try{g&&!g.done&&(m=b.return)&&m.call(b)}finally{if(f)throw f.error}}},c.prototype.doPopupsOverlap=function(f,m){var y=f.getElement().getBoundingClientRect(),D=m.getElement().getBoundingClientRect();return y.leftD.left&&y.topD.top},c}(),l=new r;h.popupManager=l,h.Tooltip=t;var o=function(c){s(f,c);function f(m){m===void 0&&(m=document.body);var y=c.call(this,m)||this;y.timeout=void 0,y.lastT=0,y.idleTime=350,y.lastEvent=void 0,y.onMouseOut=y.onMouseOut.bind(y),y.onMouseMove=y.onMouseMove.bind(y),y.waitForHover=y.waitForHover.bind(y),y.hide=y.hide.bind(y);var D=y.getElement();return D.style.whiteSpace="pre-wrap",D.style.pointerEvents="auto",D.addEventListener("mouseout",y.onMouseOut),D.tabIndex=-1,D.addEventListener("blur",function(){D.contains(document.activeElement)||this.hide()}.bind(y)),D.addEventListener("wheel",p),y}return f.prototype.addToEditor=function(m){m.on("mousemove",this.onMouseMove),m.on("mousedown",this.hide),m.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},f.prototype.removeFromEditor=function(m){m.off("mousemove",this.onMouseMove),m.off("mousedown",this.hide),m.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},f.prototype.onMouseMove=function(m,y){this.lastEvent=m,this.lastT=Date.now();var D=y.$mouseHandler.isMousePressed;if(this.isOpen){var E=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(E.row,E.column)||D||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||D||(this.lastEvent=m,this.timeout=setTimeout(this.waitForHover,this.idleTime))},f.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var m=Date.now()-this.lastT;if(this.idleTime-m>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-m);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},f.prototype.isOutsideOfText=function(m){var y=m.editor,D=m.getDocumentPosition(),E=y.session.getLine(D.row);if(D.column==E.length){var b=y.renderer.pixelToScreenCoordinates(m.clientX,m.clientY),g=y.session.documentToScreenPosition(D.row,D.column);if(g.column!=b.column||g.row!=b.row)return!0}return!1},f.prototype.setDataProvider=function(m){this.$gatherData=m},f.prototype.showForRange=function(m,y,D,E){var b=10;if(!(E&&E!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var g=m.renderer;this.isOpen||(l.addPopup(this),this.$registerCloseEvents(),this.setTheme(g.theme)),this.isOpen=!0,this.addMarker(y,m.session),this.range=a.fromPoints(y.start,y.end);var S=g.textToScreenCoordinates(y.start.row,y.start.column),T=g.scroller.getBoundingClientRect();S.pageX=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},d=i("../lib/dom"),a=i("../lib/event"),p=i("../tooltip").Tooltip,e=i("../config").nls,t=5,r=3;h.GUTTER_TOOLTIP_LEFT_OFFSET=t,h.GUTTER_TOOLTIP_TOP_OFFSET=r;function l(c){var f=c.editor,m=f.renderer.$gutterLayer,y=new o(f,!0);c.editor.setDefaultHandler("guttermousedown",function(T){if(!(!f.isFocused()||T.getButton()!=0)){var k=m.getRegion(T);if(k!="foldWidgets"){var _=T.getDocumentPosition().row,O=f.session.selection;if(T.getShiftKey())O.selectTo(_,0);else{if(T.domEvent.detail==2)return f.selectAll(),T.preventDefault();c.$clickSelection=f.selection.getLineRange(_)}return c.setState("selectByLines"),c.captureMouse(T),T.preventDefault()}}});var D,E;function b(){var T=E.getDocumentPosition().row,k=f.session.getLength();if(T==k){var _=f.renderer.pixelToScreenCoordinates(0,E.y).row,O=E.$pos;if(_>f.session.documentToScreenRow(O.row,O.column))return g()}if(y.showTooltip(T),!!y.isOpen)if(f.on("mousewheel",g),f.on("changeSession",g),window.addEventListener("keydown",g,!0),c.$tooltipFollowsMouse)S(E);else{var $=E.getGutterRow(),A=m.$lines.get($);if(A){var C=A.element.querySelector(".ace_gutter_annotation"),w=C.getBoundingClientRect(),x=y.getElement().style;x.left=w.right-t+"px",x.top=w.bottom-r+"px"}else S(E)}}function g(T){T&&T.type==="keydown"&&(T.ctrlKey||T.metaKey)||T&&T.type==="mouseout"&&(!T.relatedTarget||y.getElement().contains(T.relatedTarget))||(D&&(D=clearTimeout(D)),y.isOpen&&(y.hideTooltip(),f.off("mousewheel",g),f.off("changeSession",g),window.removeEventListener("keydown",g,!0)))}function S(T){y.setPosition(T.x,T.y)}c.editor.setDefaultHandler("guttermousemove",function(T){var k=T.domEvent.target||T.domEvent.srcElement;if(d.hasCssClass(k,"ace_fold-widget")||d.hasCssClass(k,"ace_custom-widget"))return g();y.isOpen&&c.$tooltipFollowsMouse&&S(T),E=T,!D&&(D=setTimeout(function(){D=null,E&&!c.isMousePressed&&b()},50))}),a.addListener(f.renderer.$gutter,"mouseout",function(T){E=null,y.isOpen&&(D=setTimeout(function(){D=null,g(T)},50))},f)}h.GutterHandler=l;var o=function(c){s(f,c);function f(m,y){y===void 0&&(y=!1);var D=c.call(this,m.container)||this;D.editor=m,D.visibleTooltipRow;var E=D.getElement();return E.setAttribute("role","tooltip"),E.style.pointerEvents="auto",y&&(D.onMouseOut=D.onMouseOut.bind(D),E.addEventListener("mouseout",D.onMouseOut)),D}return f.prototype.onMouseOut=function(m){this.isOpen&&(!m.relatedTarget||this.getElement().contains(m.relatedTarget)||m&&m.currentTarget.contains(m.relatedTarget)||this.hideTooltip())},f.prototype.setPosition=function(m,y){var D=window.innerWidth||document.documentElement.clientWidth,E=window.innerHeight||document.documentElement.clientHeight,b=this.getWidth(),g=this.getHeight();m+=15,y+=15,m+b>D&&(m-=m+b-D),y+g>E&&(y-=20+g),p.prototype.setPosition.call(this,m,y)},Object.defineProperty(f,"annotationLabels",{get:function(){return{error:{singular:e("gutter-tooltip.aria-label.error.singular","error"),plural:e("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:e("gutter-tooltip.aria-label.security.singular","security finding"),plural:e("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:e("gutter-tooltip.aria-label.warning.singular","warning"),plural:e("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:e("gutter-tooltip.aria-label.info.singular","information message"),plural:e("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:e("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:e("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),f.prototype.showTooltip=function(m){var y,D=this.editor.renderer.$gutterLayer,E=D.$annotations[m],b;E?b={displayText:Array.from(E.displayText),type:Array.from(E.type)}:b={displayText:[],type:[]};var g=D.session.getFoldLine(m);if(g&&D.$showFoldedAnnotations){for(var S={error:[],security:[],warning:[],info:[],hint:[]},T={error:1,security:2,warning:3,info:4,hint:5},k,_=m+1;_<=g.end.row;_++)if(D.$annotations[_])for(var O=0;Oe?$=null:U-$>=p&&(o.renderer.scrollCursorIntoView(),$=null)}}function w(W,H){var U=Date.now(),G=o.renderer.layerConfig.lineHeight,Y=o.renderer.layerConfig.characterWidth,Q=o.renderer.scroller.getBoundingClientRect(),ee={x:{left:D-Q.left,right:Q.right-D},y:{top:E-Q.top,bottom:Q.bottom-E}},ne=Math.min(ee.x.left,ee.x.right),se=Math.min(ee.y.top,ee.y.bottom),ge={row:W.row,column:W.column};ne/Y<=2&&(ge.column+=ee.x.left=a&&o.renderer.scrollCursorIntoView(ge):O=U:O=null}function x(){var W=S;S=o.renderer.screenToTextCoordinates(D,E),C(S,W),w(S,W)}function I(){g=o.selection.toOrientedRange(),y=o.session.addMarker(g,"ace_selection",o.getSelectionStyle()),o.clearSelection(),o.isFocused()&&o.renderer.$cursorLayer.setBlinking(!1),clearInterval(b),x(),b=setInterval(x,20),T=0,u.addListener(document,"mousemove",B)}function F(){clearInterval(b),o.session.removeMarker(y),y=null,o.selection.fromOrientedRange(g),o.isFocused()&&!_&&o.$resetCursorStyle(),g=null,S=null,T=0,O=null,$=null,u.removeListener(document,"mousemove",B)}var R=null;function B(){R==null&&(R=setTimeout(function(){R!=null&&y&&F()},20))}function P(W){var H=W.types;return!H||Array.prototype.some.call(H,function(U){return U=="text/plain"||U=="Text"})}function V(W){var H=["copy","copymove","all","uninitialized"],U=["move","copymove","linkmove","all","uninitialized"],G=d.isMac?W.altKey:W.ctrlKey,Y="uninitialized";try{Y=W.dataTransfer.effectAllowed.toLowerCase()}catch{}var Q="none";return G&&H.indexOf(Y)>=0?Q="copy":U.indexOf(Y)>=0?Q="move":H.indexOf(Y)>=0&&(Q="copy"),Q}}(function(){this.dragWait=function(){var l=Date.now()-this.mousedownEvent.time;l>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var l=this.editor.container;l.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(l){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var l=this.editor,o=l.container;o.draggable=!0,l.renderer.$cursorLayer.setBlinking(!1),l.setStyle("ace_dragging");var c=d.isWin?"default":"move";l.renderer.setCursorStyle(c),this.setState("dragReady")},this.onMouseDrag=function(l){var o=this.editor.container;if(d.isIE&&this.state=="dragReady"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>3&&o.dragDrop()}if(this.state==="dragWait"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>0&&(o.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(l){if(this.$dragEnabled){this.mousedownEvent=l;var o=this.editor,c=l.inSelection(),f=l.getButton(),m=l.domEvent.detail||1;if(m===1&&f===0&&c){if(l.editor.inMultiSelectMode&&(l.getAccelKey()||l.getShiftKey()))return;this.mousedownEvent.time=Date.now();var y=l.domEvent.target||l.domEvent.srcElement;if("unselectable"in y&&(y.unselectable="on"),o.getDragDelay()){if(d.isWebKit){this.cancelDrag=!0;var D=o.container;D.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(l,this.onMouseDrag.bind(this)),l.defaultPrevented=!0}}}}).call(t.prototype);function r(l,o,c,f){return Math.sqrt(Math.pow(c-l,2)+Math.pow(f-o,2))}h.DragdropHandler=t}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(i,h,v){var s=i("./mouse_event").MouseEvent,u=i("../lib/event"),d=i("../lib/dom");h.addTouchListeners=function(a,p){var e="scroll",t,r,l,o,c,f,m=0,y,D=0,E=0,b=0,g,S;function T(){var C=window.navigator&&window.navigator.clipboard,w=!1,x=function(){var R=p.getCopyText(),B=p.session.getUndoManager().hasUndo();S.replaceChild(d.buildDom(w?["span",!R&&I("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],R&&I("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],R&&I("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],C&&I("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],B&&I("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],I("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],I("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),S.firstChild)},I=function(R){return p.commands.canExecute(R,p)},F=function(R){var B=R.target.getAttribute("action");if(B=="more"||!w)return w=!w,x();B=="paste"?C.readText().then(function(P){p.execCommand(B,P)}):B&&((B=="cut"||B=="copy")&&(C?C.writeText(p.getCopyText()):document.execCommand("copy")),p.execCommand(B)),S.firstChild.style.display="none",w=!1,B!="openCommandPalette"&&p.focus()};S=d.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(R){e="menu",R.stopPropagation(),R.preventDefault(),p.textInput.focus()},ontouchend:function(R){R.stopPropagation(),R.preventDefault(),F(R)},onclick:F},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],p.container)}function k(){if(!p.getOption("enableMobileMenu")){S&&_();return}S||T();var C=p.selection.cursor,w=p.renderer.textToScreenCoordinates(C.row,C.column),x=p.renderer.textToScreenCoordinates(0,0).pageX,I=p.renderer.scrollLeft,F=p.container.getBoundingClientRect();S.style.top=w.pageY-F.top-3+"px",w.pageX-F.left=2?p.selection.getLineRange(y.row):p.session.getBracketRange(y);C&&!C.isEmpty()?p.selection.setRange(C):p.selection.selectWord(),e="wait"}u.addListener(a,"contextmenu",function(C){if(g){var w=p.textInput.getElement();w.focus()}},p),u.addListener(a,"touchstart",function(C){var w=C.touches;if(c||w.length>1){clearTimeout(c),c=null,l=-1,e="zoom";return}g=p.$mouseHandler.isMousePressed=!0;var x=p.renderer.layerConfig.lineHeight,I=p.renderer.layerConfig.lineHeight,F=C.timeStamp;o=F;var R=w[0],B=R.clientX,P=R.clientY;Math.abs(t-B)+Math.abs(r-P)>x&&(l=-1),t=C.clientX=B,r=C.clientY=P,E=b=0;var V=new s(C,p);if(y=V.getDocumentPosition(),F-l<500&&w.length==1&&!m)D++,C.preventDefault(),C.button=0,$();else{D=0;var W=p.selection.cursor,H=p.selection.isEmpty()?W:p.selection.anchor,U=p.renderer.$cursorLayer.getPixelPosition(W,!0),G=p.renderer.$cursorLayer.getPixelPosition(H,!0),Y=p.renderer.scroller.getBoundingClientRect(),Q=p.renderer.layerConfig.offset,ee=p.renderer.scrollLeft,ne=function(be,ke){return be=be/I,ke=ke/x-.75,be*be+ke*ke};if(C.clientXge?"cursor":"anchor"),ge<3.5?e="anchor":se<3.5?e="cursor":e="scroll",c=setTimeout(O,450)}l=F},p),u.addListener(a,"touchend",function(C){g=p.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),e=="zoom"?(e="",m=0):c?(p.selection.moveToPosition(y),m=0,k()):e=="scroll"?(A(),_()):k(),clearTimeout(c),c=null},p),u.addListener(a,"touchmove",function(C){c&&(clearTimeout(c),c=null);var w=C.touches;if(!(w.length>1||e=="zoom")){var x=w[0],I=t-x.clientX,F=r-x.clientY;if(e=="wait")if(I*I+F*F>4)e="cursor";else return C.preventDefault();t=x.clientX,r=x.clientY,C.clientX=x.clientX,C.clientY=x.clientY;var R=C.timeStamp,B=R-o;if(o=R,e=="scroll"){var P=new s(C,p);P.speed=1,P.wheelX=I,P.wheelY=F,10*Math.abs(I)0)if(ge==16){for(Ce=ke;Ce-1){for(Ce=ke;Ce=0&&G[Ze]==g;Ze--)H[Ze]=s}}}function B(W,H,U){if(!(u=W){for(Q=Y+1;Q=W;)Q++;for(ee=Y,ne=Q-1;ee=H.length||(Q=U[G-1])!=f&&Q!=m||(ee=H[G+1])!=f&&ee!=m?y:(d&&(ee=m),ee==Q?ee:y);case T:return Q=G>0?U[G-1]:D,Q==f&&G+10&&U[G-1]==f)return f;if(d)return y;for(se=G+1,ne=H.length;se=1425&&ge<=2303||ge==64286;if(Q=H[se],be&&(Q==c||Q==b))return c}return G<1||(Q=H[G-1])==D?y:U[G-1];case D:return d=!1,a=!0,s;case E:return p=!0,y;case O:case $:case C:case w:case A:d=!1;case x:return y}}function V(W){var H=W.charCodeAt(0),U=H>>8;return U==0?H>191?o:I[H]:U==5?/[\u0591-\u05f4]/.test(W)?c:o:U==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(W)?_:/[\u0660-\u0669\u066b-\u066c]/.test(W)?m:H==1642?k:/[\u06f0-\u06f9]/.test(W)?f:b:U==32&&H<=8287?F[H&255]:U==254&&H>=65136?b:y}h.L=o,h.R=c,h.EN=f,h.ON_R=3,h.AN=4,h.R_H=5,h.B=6,h.RLE=7,h.DOT="·",h.doBidiReorder=function(W,H,U){if(W.length<2)return{};var G=W.split(""),Y=new Array(G.length),Q=new Array(G.length),ee=[];s=U?l:r,R(G,ee,G.length,H);for(var ne=0;neb&&H[ne]0&&G[ne-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(G[ne])&&(ee[ne-1]=ee[ne]=h.R_H,ne++);G[G.length-1]===h.DOT&&(ee[G.length-1]=h.B),G[0]==="‫"&&(ee[0]=h.RLE);for(var ne=0;ne=0&&(e=this.session.$docRowCache[r])}return e},p.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var r,l=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(r=this.session.$getRowCacheIndex(t,this.currentRow-e-1),r===l);)l=r,e++;else e=this.currentRow;return e},p.prototype.updateRowLine=function(e,t){e===void 0&&(e=this.getDocumentRow());var r=e===this.session.getLength()-1,l=r?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var o=this.session.$wrapData[e];o&&(t===void 0&&(t=this.getSplitIndex()),t>0&&o.length?(this.wrapIndent=o.indent,this.wrapOffset=this.wrapIndent*this.charWidths[s.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,l=s.getVisualFromLogicalIdx(r,this.bidiMap),o=this.bidiMap.bidiLevels,c=0;!this.session.getOverwrite()&&e<=t&&o[l]%2!==0&&l++;for(var f=0;ft&&o[l]%2===0&&(c+=this.charWidths[o[l]]),this.wrapIndent&&(c+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(c+=this.rtlLineOffset),c},p.prototype.getSelections=function(e,t){var r=this.bidiMap,l=r.bidiLevels,o,c=[],f=0,m=Math.min(e,t)-this.wrapIndent,y=Math.max(e,t)-this.wrapIndent,D=!1,E=!1,b=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var g,S=0;S=m&&gl+f/2;){if(l+=f,o===c.length-1){f=0;break}f=this.charWidths[c[++o]]}return o>0&&c[o-1]%2!==0&&c[o]%2===0?(r0&&c[o-1]%2===0&&c[o]%2!==0?t=1+(r>l?this.bidiMap.logicalFromVisual[o]:this.bidiMap.logicalFromVisual[o-1]):this.isRtlDir&&o===c.length-1&&f===0&&c[o-1]%2===0||!this.isRtlDir&&o===0&&c[o]%2!==0?t=1+this.bidiMap.logicalFromVisual[o]:(o>0&&c[o-1]%2!==0&&f!==0&&o--,t=this.bidiMap.logicalFromVisual[o]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},p}();h.BidiHandler=a}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(i,h,v){var s=i("./lib/oop"),u=i("./lib/lang"),d=i("./lib/event_emitter").EventEmitter,a=i("./range").Range,p=function(){function e(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var r=this;this.cursor.on("change",function(l){r.$cursorChanged=!0,r.$silent||r._emit("changeCursor"),!r.$isEmpty&&!r.$silent&&r._emit("changeSelection"),!r.$keepDesiredColumnOnChange&&l.old.column!=l.value.column&&(r.$desiredColumn=null)}),this.anchor.on("change",function(){r.$anchorChanged=!0,!r.$isEmpty&&!r.$silent&&r._emit("changeSelection")})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(t,r){this.$isEmpty=!1,this.anchor.setPosition(t,r)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var t=this.anchor,r=this.lead;return t.row>r.row||t.row==r.row&&t.column>r.column},e.prototype.getRange=function(){var t=this.anchor,r=this.lead;return this.$isEmpty?a.fromPoints(r,r):this.isBackwards()?a.fromPoints(r,t):a.fromPoints(t,r)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(t,r){var l=r?t.end:t.start,o=r?t.start:t.end;this.$setSelection(l.row,l.column,o.row,o.column)},e.prototype.$setSelection=function(t,r,l,o){if(!this.$silent){var c=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(t,r),this.cursor.setPosition(l,o),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||c!=this.$isEmpty||f)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(t){var r=this.lead;this.$isEmpty&&this.setSelectionAnchor(r.row,r.column),t.call(this)},e.prototype.selectTo=function(t,r){this.$moveSelection(function(){this.moveCursorTo(t,r)})},e.prototype.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},e.prototype.moveTo=function(t,r){this.clearSelection(),this.moveCursorTo(t,r)},e.prototype.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(t,r){if(typeof r>"u"){var l=t||this.lead;t=l.row,r=l.column}return this.session.getWordRange(t,r)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var t=this.getCursor(),r=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(r)},e.prototype.getLineRange=function(t,r){var l=typeof t=="number"?t:this.lead.row,o,c=this.session.getFoldLine(l);return c?(l=c.start.row,o=c.end.row):o=l,r===!0?new a(l,0,o,this.session.getLine(o).length):new a(l,0,o+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(t,r,l){var o=t.column,c=t.column+r;return l<0&&(o=t.column-r,c=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(o,c).split(" ").length-1==r},e.prototype.moveCursorLeft=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(r.start.row,r.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var l=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,l,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-l):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(r.end.row,r.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(r.column=o)}}this.moveCursorTo(r.row,r.column)},e.prototype.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,r=this.doc.getLine(t).length;this.moveCursorTo(t,r)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),o=l.substring(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var c=this.session.getFoldAt(t,r,1);if(c){this.moveCursorTo(c.end.row,c.end.column);return}if(this.session.nonTokenRe.exec(o)&&(r+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,o=l.substring(r)),r>=l.length){this.moveCursorTo(t,l.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(c)&&(r-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,r)},e.prototype.$shortWordEndIndex=function(t){var r=0,l,o=/\s/,c=this.session.tokenRe;if(c.lastIndex=0,this.session.tokenRe.exec(t))r=this.session.tokenRe.lastIndex;else{for(;(l=t[r])&&o.test(l);)r++;if(r<1){for(c.lastIndex=0;(l=t[r])&&!c.test(l);)if(c.lastIndex=0,r++,o.test(l))if(r>2){r--;break}else{for(;(l=t[r])&&o.test(l);)r++;if(r>2)break}}}return c.lastIndex=0,r},e.prototype.moveCursorShortWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),o=l.substring(r),c=this.session.getFoldAt(t,r,1);if(c)return this.moveCursorTo(c.end.row,c.end.column);if(r==l.length){var f=this.doc.getLength();do t++,o=this.doc.getLine(t);while(t0&&/^\s*$/.test(o));r=o.length,/\s+$/.test(o)||(o="")}var c=u.stringReverse(o),f=this.$shortWordEndIndex(c);return this.moveCursorTo(t,r-f)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(t,r){var l=this.session.documentToScreenPosition(this.lead.row,this.lead.column),o;if(r===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(l.row,this.lead.row)?(o=this.session.$bidiHandler.getPosLeft(l.column),l.column=Math.round(o/this.session.$bidiHandler.charWidths[0])):o=l.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?l.column=this.$desiredColumn:this.$desiredColumn=l.column),t!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var c=this.session.lineWidgets[this.lead.row];t<0?t-=c.rowsAbove||0:t>0&&(t+=c.rowCount-(c.rowsAbove||0))}var f=this.session.screenToDocumentPosition(l.row+t,l.column,o);t!==0&&r===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+r,r===0)},e.prototype.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorTo=function(t,r,l){var o=this.session.getFoldAt(t,r,1);o&&(t=o.start.row,r=o.start.column),this.$keepDesiredColumnOnChange=!0;var c=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(c.charAt(r))&&c.charAt(r-1)&&(this.lead.row==t&&this.lead.column==r+1?r=r-1:r=r+1),this.lead.setPosition(t,r),this.$keepDesiredColumnOnChange=!1,l||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(t,r,l){var o=this.session.screenToDocumentPosition(t,r);this.moveCursorTo(o.row,o.column,l)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(t){var r=this.getRange();return t?(t.start.column=r.start.column,t.start.row=r.start.row,t.end.column=r.end.column,t.end.row=r.end.row):t=r,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},e.prototype.getRangeOfMovements=function(t){var r=this.getCursor();try{t(this);var l=this.getCursor();return a.fromPoints(r,l)}catch{return a.fromPoints(r,r)}finally{this.moveCursorToPosition(r)}},e.prototype.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(r){var l=r.clone();return l.isBackwards=r.cursor==r.start,l});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},e.prototype.fromJSON=function(t){if(t.start==null)if(this.rangeList&&t.length>1){this.toSingleRange(t[0]);for(var r=t.length;r--;){var l=a.fromPoints(t[r].start,t[r].end);t[r].isBackwards&&(l.cursor=l.start),this.addRange(l,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},e.prototype.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var r=this.ranges.length;r--;)if(!this.ranges[r].isEqual(t[r]))return!1;return!0},e}();p.prototype.setSelectionAnchor=p.prototype.setAnchor,p.prototype.getSelectionAnchor=p.prototype.getAnchor,p.prototype.setSelectionRange=p.prototype.setRange,s.implement(p.prototype,d),h.Selection=p}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(i,h,v){var s=i("./lib/report_error").reportError,u=2e3,d=function(){function a(p){this.splitRegex,this.states=p,this.regExps={},this.matchMappings={};for(var e in this.states){for(var t=this.states[e],r=[],l=0,o=this.matchMappings[e]={defaultToken:"text"},c="g",f=[],m=0;m1?y.onMatch=this.$applyToken:y.onMatch=y.token),E>1&&(/\\\d/.test(y.regex)?D=y.regex.replace(/\\([0-9]+)/g,function(b,g){return"\\"+(parseInt(g,10)+l+1)}):(E=1,D=this.removeCapturingGroups(y.regex)),!y.splitRegex&&typeof y.token!="string"&&f.push(y)),o[l]=m,l+=E,r.push(D),y.onMatch||(y.onMatch=null)}}r.length||(o[0]=0,r.push("$")),f.forEach(function(b){b.splitRegex=this.createSplitterRegexp(b.regex,c)},this),this.regExps[e]=new RegExp("("+r.join(")|(")+")|($)",c)}}return a.prototype.$setMaxTokenCount=function(p){u=p|0},a.prototype.$applyToken=function(p){var e=this.splitRegex.exec(p).slice(1),t=this.token.apply(this,e);if(typeof t=="string")return[{type:t,value:p}];for(var r=[],l=0,o=t.length;ly){var k=p.substring(y,T-S.length);E.type==b?E.value+=k:(E.type&&m.push(E),E={type:b,value:k})}for(var _=0;_u){for(D>2*p.length&&this.reportError("infinite loop with in ace tokenizer",{startState:e,line:p});y1&&t[0]!==r&&t.unshift("#tmp",r),{tokens:m,state:t.length?t:r}},a}();d.prototype.reportError=s,h.Tokenizer=d}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(i,h,v){var s=i("../lib/deep_copy").deepCopy,u;u=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(p,e){if(!e){for(var t in p)this.$rules[t]=p[t];return}for(var t in p){for(var r=p[t],l=0;l=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},d.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},d.prototype.getCurrentTokenRow=function(){return this.$row},d.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,p=this.$tokenIndex,e=a[p].start;if(e!==void 0)return e;for(e=0;p>0;)p-=1,e+=a[p].value.length;return e},d.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},d.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],p=this.getCurrentTokenColumn();return new s(this.$row,p,this.$row,p+a.value.length)},d}();h.TokenIterator=u}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(i,h,v){var s=i("../../lib/oop"),u=i("../behaviour").Behaviour,d=i("../../token_iterator").TokenIterator,a=i("../../lib/lang"),p=["text","paren.rparen","rparen","paren","punctuation.operator"],e=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],t,r={},l={'"':'"',"'":"'"},o=function(m){var y=-1;if(m.multiSelect&&(y=m.selection.index,r.rangeCount!=m.multiSelect.rangeCount&&(r={rangeCount:m.multiSelect.rangeCount})),r[y])return t=r[y];t=r[y]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},c=function(m,y,D,E){var b=m.end.row-m.start.row;return{text:D+y+E,selection:[0,m.start.column+1,b,m.end.column+(b?0:1)]}},f;f=function(m){m=m||{},this.add("braces","insertion",function(y,D,E,b,g){var S=E.getCursorPosition(),T=b.doc.getLine(S.row);if(g=="{"){o(E);var k=E.getSelectionRange(),_=b.doc.getTextRange(k),O=b.getTokenAt(S.row,S.column);if(_!==""&&_!=="{"&&E.getWrapBehavioursEnabled())return c(k,_,"{","}");if(O&&/(?:string)\.quasi|\.xml/.test(O.type)){var $=[/tag\-(?:open|name)/,/attribute\-name/];return $.some(function(R){return R.test(O.type)})||/(string)\.quasi/.test(O.type)&&O.value[S.column-O.start-1]!=="$"?void 0:(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(E,b))return/[\]\}\)]/.test(T[S.column])||E.inMultiSelectMode||m.braces?(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(E,b,"{"),{text:"{",selection:[1,1]})}else if(g=="}"){o(E);var A=T.substring(S.column,S.column+1);if(A=="}"){var C=b.$findOpeningBracket("}",{column:S.column+1,row:S.row});if(C!==null&&f.isAutoInsertedClosing(S,T,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(g==` `||g==`\r -`){s(E);var w="";f.isMaybeInsertedClosing(S,T)&&(w=a.stringRepeat("}",t.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var A=T.substring(S.column,S.column+1);if(A==="}"){var x=b.findMatchingBracket({row:S.row,column:S.column+1},"}");if(!x)return null;var I=this.$getIndent(b.getLine(x.row))}else if(w)var I=this.$getIndent(T);else{f.clearMaybeInsertedClosing();return}var F=I+b.getTabString();return{text:` +`){o(E);var w="";f.isMaybeInsertedClosing(S,T)&&(w=a.stringRepeat("}",t.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var A=T.substring(S.column,S.column+1);if(A==="}"){var x=b.findMatchingBracket({row:S.row,column:S.column+1},"}");if(!x)return null;var I=this.$getIndent(b.getLine(x.row))}else if(w)var I=this.$getIndent(T);else{f.clearMaybeInsertedClosing();return}var F=I+b.getTabString();return{text:` `+F+` -`+I+w,selection:[1,F.length,1,F.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="{"){s(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.end.column,g.end.column+1);if(k=="}")return g.end.column++,g;t.maybeInsertedBrackets--}}),this.add("parens","insertion",function(y,D,E,b,g){if(g=="("){s(E);var S=E.getSelectionRange(),T=b.doc.getTextRange(S);if(T!==""&&E.getWrapBehavioursEnabled())return c(S,T,"(",")");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,")"),{text:"()",selection:[1,1]}}else if(g==")"){s(E);var k=E.getCursorPosition(),_=b.doc.getLine(k.row),O=_.substring(k.column,k.column+1);if(O==")"){var $=b.$findOpeningBracket(")",{column:k.column+1,row:k.row});if($!==null&&f.isAutoInsertedClosing(k,_,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="("){s(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.start.column+1,g.start.column+2);if(k==")")return g.end.column++,g}}),this.add("brackets","insertion",function(y,D,E,b,g){if(g=="["){s(E);var S=E.getSelectionRange(),T=b.doc.getTextRange(S);if(T!==""&&E.getWrapBehavioursEnabled())return c(S,T,"[","]");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,"]"),{text:"[]",selection:[1,1]}}else if(g=="]"){s(E);var k=E.getCursorPosition(),_=b.doc.getLine(k.row),O=_.substring(k.column,k.column+1);if(O=="]"){var $=b.$findOpeningBracket("]",{column:k.column+1,row:k.row});if($!==null&&f.isAutoInsertedClosing(k,_,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="["){s(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.start.column+1,g.start.column+2);if(k=="]")return g.end.column++,g}}),this.add("string_dquotes","insertion",function(y,D,E,b,g){var S=b.$mode.$quotes||l;if(g.length==1&&S[g]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(g)!=-1)return;s(E);var T=g,k=E.getSelectionRange(),_=b.doc.getTextRange(k);if(_!==""&&(_.length!=1||!S[_])&&E.getWrapBehavioursEnabled())return c(k,_,T,T);if(!_){var O=E.getCursorPosition(),$=b.doc.getLine(O.row),A=$.substring(O.column-1,O.column),C=$.substring(O.column,O.column+1),w=b.getTokenAt(O.row,O.column),x=b.getTokenAt(O.row,O.column+1);if(A=="\\"&&w&&/escape/.test(w.type))return null;var I=w&&/string|escape/.test(w.type),F=!x||/string|escape/.test(x.type),R;if(C==T)R=I!==F,R&&/string\.end/.test(x.type)&&(R=!1);else{if(I&&!F||I&&F)return null;var B=b.$mode.tokenRe;B.lastIndex=0;var P=B.test(A);B.lastIndex=0;var V=B.test(C),W=b.$mode.$pairQuotesAfter,H=W&&W[T]&&W[T].test(A);if(!H&&P||V||C&&!/[\s;,.})\]\\]/.test(C))return null;var U=$[O.column-2];if(A==T&&(U==T||B.test(U)))return null;R=!0}return{text:R?T+T:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(y,D,E,b,g){var S=b.$mode.$quotes||l,T=b.doc.getTextRange(g);if(!g.isMultiLine()&&S.hasOwnProperty(T)){s(E);var k=b.doc.getLine(g.start.row),_=k.substring(g.start.column+1,g.start.column+2);if(_==T)return g.end.column++,g}}),m.closeDocComment!==!1&&this.add("doc comment end","insertion",function(y,D,E,b,g){if(y==="doc-start"&&(g===` +`+I+w,selection:[1,F.length,1,F.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="{"){o(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.end.column,g.end.column+1);if(k=="}")return g.end.column++,g;t.maybeInsertedBrackets--}}),this.add("parens","insertion",function(y,D,E,b,g){if(g=="("){o(E);var S=E.getSelectionRange(),T=b.doc.getTextRange(S);if(T!==""&&E.getWrapBehavioursEnabled())return c(S,T,"(",")");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,")"),{text:"()",selection:[1,1]}}else if(g==")"){o(E);var k=E.getCursorPosition(),_=b.doc.getLine(k.row),O=_.substring(k.column,k.column+1);if(O==")"){var $=b.$findOpeningBracket(")",{column:k.column+1,row:k.row});if($!==null&&f.isAutoInsertedClosing(k,_,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="("){o(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.start.column+1,g.start.column+2);if(k==")")return g.end.column++,g}}),this.add("brackets","insertion",function(y,D,E,b,g){if(g=="["){o(E);var S=E.getSelectionRange(),T=b.doc.getTextRange(S);if(T!==""&&E.getWrapBehavioursEnabled())return c(S,T,"[","]");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,"]"),{text:"[]",selection:[1,1]}}else if(g=="]"){o(E);var k=E.getCursorPosition(),_=b.doc.getLine(k.row),O=_.substring(k.column,k.column+1);if(O=="]"){var $=b.$findOpeningBracket("]",{column:k.column+1,row:k.row});if($!==null&&f.isAutoInsertedClosing(k,_,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="["){o(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.start.column+1,g.start.column+2);if(k=="]")return g.end.column++,g}}),this.add("string_dquotes","insertion",function(y,D,E,b,g){var S=b.$mode.$quotes||l;if(g.length==1&&S[g]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(g)!=-1)return;o(E);var T=g,k=E.getSelectionRange(),_=b.doc.getTextRange(k);if(_!==""&&(_.length!=1||!S[_])&&E.getWrapBehavioursEnabled())return c(k,_,T,T);if(!_){var O=E.getCursorPosition(),$=b.doc.getLine(O.row),A=$.substring(O.column-1,O.column),C=$.substring(O.column,O.column+1),w=b.getTokenAt(O.row,O.column),x=b.getTokenAt(O.row,O.column+1);if(A=="\\"&&w&&/escape/.test(w.type))return null;var I=w&&/string|escape/.test(w.type),F=!x||/string|escape/.test(x.type),R;if(C==T)R=I!==F,R&&/string\.end/.test(x.type)&&(R=!1);else{if(I&&!F||I&&F)return null;var B=b.$mode.tokenRe;B.lastIndex=0;var P=B.test(A);B.lastIndex=0;var V=B.test(C),W=b.$mode.$pairQuotesAfter,H=W&&W[T]&&W[T].test(A);if(!H&&P||V||C&&!/[\s;,.})\]\\]/.test(C))return null;var U=$[O.column-2];if(A==T&&(U==T||B.test(U)))return null;R=!0}return{text:R?T+T:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(y,D,E,b,g){var S=b.$mode.$quotes||l,T=b.doc.getTextRange(g);if(!g.isMultiLine()&&S.hasOwnProperty(T)){o(E);var k=b.doc.getLine(g.start.row),_=k.substring(g.start.column+1,g.start.column+2);if(_==T)return g.end.column++,g}}),m.closeDocComment!==!1&&this.add("doc comment end","insertion",function(y,D,E,b,g){if(y==="doc-start"&&(g===` `||g===`\r -`)&&E.selection.isEmpty()){var S=E.getCursorPosition();if(S.column===0)return;for(var T=b.doc.getLine(S.row),k=b.doc.getLine(S.row+1),_=b.getTokens(S.row),O=0,$=0;$<_.length;$++){O+=_[$].value.length;var A=_[$];if(O>=S.column){if(O===S.column){if(!/\.doc/.test(A.type))return;if(/\*\//.test(A.value)){var C=_[$+1];if(!C||!/\.doc/.test(C.type))return}}var w=S.column-(O-A.value.length),x=A.value.indexOf("*/"),I=A.value.indexOf("/**",x>-1?x+2:0);if(I!==-1&&w>I&&w=x&&w<=I||!/\.doc/.test(A.type))return;break}}var F=this.$getIndent(T);if(/\s*\*/.test(k))return/^\s*\*/.test(T)?{text:g+F+"* ",selection:[1,2+F.length,1,2+F.length]}:{text:g+F+" * ",selection:[1,3+F.length,1,3+F.length]};if(/\/\*\*/.test(T.substring(0,S.column)))return{text:g+F+" * "+g+" "+F+"*/",selection:[1,4+F.length,1,4+F.length]}}})},f.isSaneInsertion=function(m,y){var D=m.getCursorPosition(),E=new p(y,D.row,D.column);if(!this.$matchTokenType(E.getCurrentToken()||"text",d)){if(/[)}\]]/.test(m.session.getLine(D.row)[D.column]))return!0;var b=new p(y,D.row,D.column+1);if(!this.$matchTokenType(b.getCurrentToken()||"text",d))return!1}return E.stepForward(),E.getCurrentTokenRow()!==D.row||this.$matchTokenType(E.getCurrentToken()||"text",e)},f.$matchTokenType=function(m,y){return y.indexOf(m.type||m)>-1},f.recordAutoInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isAutoInsertedClosing(E,b,t.autoInsertedLineEnd[0])||(t.autoInsertedBrackets=0),t.autoInsertedRow=E.row,t.autoInsertedLineEnd=D+b.substr(E.column),t.autoInsertedBrackets++},f.recordMaybeInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isMaybeInsertedClosing(E,b)||(t.maybeInsertedBrackets=0),t.maybeInsertedRow=E.row,t.maybeInsertedLineStart=b.substr(0,E.column)+D,t.maybeInsertedLineEnd=b.substr(E.column),t.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(m,y,D){return t.autoInsertedBrackets>0&&m.row===t.autoInsertedRow&&D===t.autoInsertedLineEnd[0]&&y.substr(m.column)===t.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(m,y){return t.maybeInsertedBrackets>0&&m.row===t.maybeInsertedRow&&y.substr(m.column)===t.maybeInsertedLineEnd&&y.substr(0,m.column)==t.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){t.autoInsertedLineEnd=t.autoInsertedLineEnd.substr(1),t.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){t&&(t.maybeInsertedBrackets=0,t.maybeInsertedRow=-1)},o.inherits(f,h),u.CstyleBehaviour=f}),ace.define("ace/unicode",["require","exports","module"],function(i,u,v){for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],h=0,p=[],a=0;a2?U%g!=g-1:U%g==0}}else{if(!this.blockComment)return!1;var T=this.blockComment.start,k=this.blockComment.end,_=new RegExp("^(\\s*)(?:"+e.escapeRegExp(T)+")"),O=new RegExp("(?:"+e.escapeRegExp(k)+")\\s*$"),$=function(R,B){C(R,B)||(!D||/\S/.test(R))&&(y.insertInLine({row:B,column:R.length},k),y.insertInLine({row:B,column:b},T))},A=function(R,B){var P;(P=R.match(O))&&y.removeInLine(B,R.length-P[0].length,R.length),(P=R.match(_))&&y.removeInLine(B,P[1].length,P[0].length)},C=function(R,B){if(_.test(R))return!0;for(var P=c.getTokens(B),V=0;VR.length&&(F=R.length)}),b==1/0&&(b=F,D=!1,E=!1),S&&b%g!=0&&(b=Math.floor(b/g)*g),I(E?A:$)},this.toggleBlockComment=function(s,c,f,m){var y=this.blockComment;if(y){!y.start&&y[0]&&(y=y[0]);var D=new t(c,m.row,m.column),E=D.getCurrentToken();c.selection;var b=c.selection.toOrientedRange(),g,S;if(E&&/comment/.test(E.type)){for(var T,k;E&&/comment/.test(E.type);){var _=E.value.indexOf(y.start);if(_!=-1){var O=D.getCurrentTokenRow(),$=D.getCurrentTokenColumn()+_;T=new r(O,$,O,$+y.start.length);break}E=D.stepBackward()}for(var D=new t(c,m.row,m.column),E=D.getCurrentToken();E&&/comment/.test(E.type);){var _=E.value.indexOf(y.end);if(_!=-1){var O=D.getCurrentTokenRow(),$=D.getCurrentTokenColumn()+_;k=new r(O,$,O,$+y.end.length);break}E=D.stepForward()}k&&c.remove(k),T&&(c.remove(T),g=T.start.row,S=-y.start.length)}else S=y.start.length,g=f.start.row,c.insert(f.end,y.end),c.insert(f.start,y.start);b.start.row==g&&(b.start.column+=S),b.end.row==g&&(b.end.column+=S),c.selection.fromOrientedRange(b)}},this.getNextLineIndent=function(s,c,f){return this.$getIndent(c)},this.checkOutdent=function(s,c,f){return!1},this.autoOutdent=function(s,c,f){},this.$getIndent=function(s){return s.match(/^\s*/)[0]},this.createWorker=function(s){return null},this.createModeDelegates=function(s){this.$embeds=[],this.$modes={};for(var c in s)if(s[c]){var f=s[c],m=f.prototype.$id,y=o.$modes[m];y||(o.$modes[m]=y=new f),o.$modes[c]||(o.$modes[c]=y),this.$embeds.push(c),this.$modes[c]=y}for(var D=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],E=function(g){(function(S){var T=D[g],k=S[T];S[D[g]]=function(){return this.$delegator(T,arguments,k)}})(b)},b=this,c=0;cd[e].column&&e++,l.unshift(e,0),d.splice.apply(d,l),this.$updateRows()}}},p.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var d=!0;a.forEach(function(e,t){if(e)for(d=!1,e.row=t;e.$oldWidget;)e.$oldWidget.row=t,e=e.$oldWidget}),d&&(this.session.lineWidgets=null)}},p.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var d=this.session.lineWidgets[a.row];return d&&(a.$oldWidget=d,d.el&&d.el.parentNode&&(d.el.parentNode.removeChild(d.el),d._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},p.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var d=this.editor.renderer;a.html&&!a.el&&(a.el=o.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=o.createElement("div"),a.el.textContent=a.text),a.el&&(o.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&o.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",d.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),a.pixelHeight==null&&(a.pixelHeight=a.el.offsetHeight)),a.rowCount==null&&(a.rowCount=a.pixelHeight/d.layerConfig.lineHeight);var e=this.session.getFoldAt(a.row,0);if(a.$fold=e,e){var t=this.session.lineWidgets;a.row==e.end.row&&!t[e.start.row]?t[e.start.row]=a:a.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,d),this.onWidgetChanged(a),a},p.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var d=this.session.lineWidgets[a.row];if(d==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;d;){if(d.$oldWidget==a){d.$oldWidget=a.$oldWidget;break}d=d.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},p.prototype.getWidgetsAtRow=function(a){for(var d=this.session.lineWidgets,e=d&&d[a],t=[];e;)t.push(e),e=e.$oldWidget;return t},p.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},p.prototype.measureWidgets=function(a,d){var e=this.session._changedWidgets,t=d.layerConfig;if(!(!e||!e.length)){for(var r=1/0,l=0;l0&&!t[r];)r--;this.firstRow=e.firstRow,this.lastRow=e.lastRow,d.$cursorLayer.config=e;for(var s=r;s<=l;s++){var c=t[s];if(!(!c||!c.el)){if(c.hidden){c.el.style.top=-100-(c.pixelHeight||0)+"px";continue}c._inDocument||(c._inDocument=!0,d.container.appendChild(c.el));var f=d.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;c.coverLine||(f+=e.lineHeight*this.session.getRowLineCount(c.row)),c.el.style.top=f-e.offset+"px";var m=c.coverGutter?0:d.gutterWidth;c.fixedWidth||(m-=d.scrollLeft),c.el.style.left=m+"px",c.fullWidth&&c.screenWidth&&(c.el.style.minWidth=e.width+2*e.padding+"px"),c.fixedWidth?c.el.style.right=d.scrollBar.getWidth()+"px":c.el.style.right=""}}}},p}();u.LineWidgets=h}),ace.define("ace/apply_delta",["require","exports","module"],function(i,u,v){u.applyDelta=function(o,h,p){var a=h.start.row,d=h.start.column,e=o[a]||"";switch(h.action){case"insert":var t=h.lines;if(t.length===1)o[a]=e.substring(0,d)+h.lines[0]+e.substring(d);else{var r=[a,1].concat(h.lines);o.splice.apply(o,r),o[a]=e.substring(0,d)+o[a],o[a+h.lines.length-1]+=e.substring(d)}break;case"remove":var l=h.end.column,s=h.end.row;a===s?o[a]=e.substring(0,d)+e.substring(l):o.splice(a,s-a+1,e.substring(0,d)+o[s].substring(l));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(i,u,v){var o=i("./lib/oop"),h=i("./lib/event_emitter").EventEmitter,p=function(){function e(t,r,l){this.$onChange=this.onChange.bind(this),this.attach(t),typeof r!="number"?this.setPosition(r.row,r.column):this.setPosition(r,l)}return e.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},e.prototype.getDocument=function(){return this.document},e.prototype.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var r=d(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(r.row,r.column,!0)}},e.prototype.setPosition=function(t,r,l){var s;if(l?s={row:t,column:r}:s=this.$clipPositionToDocument(t,r),!(this.row==s.row&&this.column==s.column)){var c={row:this.row,column:this.column};this.row=s.row,this.column=s.column,this._signal("change",{old:c,value:s})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(t,r){var l={};return t>=this.document.getLength()?(l.row=Math.max(0,this.document.getLength()-1),l.column=this.document.getLine(l.row).length):t<0?(l.row=0,l.column=0):(l.row=t,l.column=Math.min(this.document.getLine(l.row).length,Math.max(0,r))),r<0&&(l.column=0),l},e}();p.prototype.$insertRight=!1,o.implement(p.prototype,h);function a(e,t,r){var l=r?e.column<=t.column:e.column=S.column){if(O===S.column){if(!/\.doc/.test(A.type))return;if(/\*\//.test(A.value)){var C=_[$+1];if(!C||!/\.doc/.test(C.type))return}}var w=S.column-(O-A.value.length),x=A.value.indexOf("*/"),I=A.value.indexOf("/**",x>-1?x+2:0);if(I!==-1&&w>I&&w=x&&w<=I||!/\.doc/.test(A.type))return;break}}var F=this.$getIndent(T);if(/\s*\*/.test(k))return/^\s*\*/.test(T)?{text:g+F+"* ",selection:[1,2+F.length,1,2+F.length]}:{text:g+F+" * ",selection:[1,3+F.length,1,3+F.length]};if(/\/\*\*/.test(T.substring(0,S.column)))return{text:g+F+" * "+g+" "+F+"*/",selection:[1,4+F.length,1,4+F.length]}}})},f.isSaneInsertion=function(m,y){var D=m.getCursorPosition(),E=new d(y,D.row,D.column);if(!this.$matchTokenType(E.getCurrentToken()||"text",p)){if(/[)}\]]/.test(m.session.getLine(D.row)[D.column]))return!0;var b=new d(y,D.row,D.column+1);if(!this.$matchTokenType(b.getCurrentToken()||"text",p))return!1}return E.stepForward(),E.getCurrentTokenRow()!==D.row||this.$matchTokenType(E.getCurrentToken()||"text",e)},f.$matchTokenType=function(m,y){return y.indexOf(m.type||m)>-1},f.recordAutoInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isAutoInsertedClosing(E,b,t.autoInsertedLineEnd[0])||(t.autoInsertedBrackets=0),t.autoInsertedRow=E.row,t.autoInsertedLineEnd=D+b.substr(E.column),t.autoInsertedBrackets++},f.recordMaybeInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isMaybeInsertedClosing(E,b)||(t.maybeInsertedBrackets=0),t.maybeInsertedRow=E.row,t.maybeInsertedLineStart=b.substr(0,E.column)+D,t.maybeInsertedLineEnd=b.substr(E.column),t.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(m,y,D){return t.autoInsertedBrackets>0&&m.row===t.autoInsertedRow&&D===t.autoInsertedLineEnd[0]&&y.substr(m.column)===t.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(m,y){return t.maybeInsertedBrackets>0&&m.row===t.maybeInsertedRow&&y.substr(m.column)===t.maybeInsertedLineEnd&&y.substr(0,m.column)==t.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){t.autoInsertedLineEnd=t.autoInsertedLineEnd.substr(1),t.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){t&&(t.maybeInsertedBrackets=0,t.maybeInsertedRow=-1)},s.inherits(f,u),h.CstyleBehaviour=f}),ace.define("ace/unicode",["require","exports","module"],function(i,h,v){for(var s=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],u=0,d=[],a=0;a2?U%g!=g-1:U%g==0}}else{if(!this.blockComment)return!1;var T=this.blockComment.start,k=this.blockComment.end,_=new RegExp("^(\\s*)(?:"+e.escapeRegExp(T)+")"),O=new RegExp("(?:"+e.escapeRegExp(k)+")\\s*$"),$=function(R,B){C(R,B)||(!D||/\S/.test(R))&&(y.insertInLine({row:B,column:R.length},k),y.insertInLine({row:B,column:b},T))},A=function(R,B){var P;(P=R.match(O))&&y.removeInLine(B,R.length-P[0].length,R.length),(P=R.match(_))&&y.removeInLine(B,P[1].length,P[0].length)},C=function(R,B){if(_.test(R))return!0;for(var P=c.getTokens(B),V=0;VR.length&&(F=R.length)}),b==1/0&&(b=F,D=!1,E=!1),S&&b%g!=0&&(b=Math.floor(b/g)*g),I(E?A:$)},this.toggleBlockComment=function(o,c,f,m){var y=this.blockComment;if(y){!y.start&&y[0]&&(y=y[0]);var D=new t(c,m.row,m.column),E=D.getCurrentToken();c.selection;var b=c.selection.toOrientedRange(),g,S;if(E&&/comment/.test(E.type)){for(var T,k;E&&/comment/.test(E.type);){var _=E.value.indexOf(y.start);if(_!=-1){var O=D.getCurrentTokenRow(),$=D.getCurrentTokenColumn()+_;T=new r(O,$,O,$+y.start.length);break}E=D.stepBackward()}for(var D=new t(c,m.row,m.column),E=D.getCurrentToken();E&&/comment/.test(E.type);){var _=E.value.indexOf(y.end);if(_!=-1){var O=D.getCurrentTokenRow(),$=D.getCurrentTokenColumn()+_;k=new r(O,$,O,$+y.end.length);break}E=D.stepForward()}k&&c.remove(k),T&&(c.remove(T),g=T.start.row,S=-y.start.length)}else S=y.start.length,g=f.start.row,c.insert(f.end,y.end),c.insert(f.start,y.start);b.start.row==g&&(b.start.column+=S),b.end.row==g&&(b.end.column+=S),c.selection.fromOrientedRange(b)}},this.getNextLineIndent=function(o,c,f){return this.$getIndent(c)},this.checkOutdent=function(o,c,f){return!1},this.autoOutdent=function(o,c,f){},this.$getIndent=function(o){return o.match(/^\s*/)[0]},this.createWorker=function(o){return null},this.createModeDelegates=function(o){this.$embeds=[],this.$modes={};for(var c in o)if(o[c]){var f=o[c],m=f.prototype.$id,y=s.$modes[m];y||(s.$modes[m]=y=new f),s.$modes[c]||(s.$modes[c]=y),this.$embeds.push(c),this.$modes[c]=y}for(var D=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],E=function(g){(function(S){var T=D[g],k=S[T];S[D[g]]=function(){return this.$delegator(T,arguments,k)}})(b)},b=this,c=0;cp[e].column&&e++,l.unshift(e,0),p.splice.apply(p,l),this.$updateRows()}}},d.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var p=!0;a.forEach(function(e,t){if(e)for(p=!1,e.row=t;e.$oldWidget;)e.$oldWidget.row=t,e=e.$oldWidget}),p&&(this.session.lineWidgets=null)}},d.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var p=this.session.lineWidgets[a.row];return p&&(a.$oldWidget=p,p.el&&p.el.parentNode&&(p.el.parentNode.removeChild(p.el),p._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},d.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var p=this.editor.renderer;a.html&&!a.el&&(a.el=s.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=s.createElement("div"),a.el.textContent=a.text),a.el&&(s.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&s.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",p.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),a.pixelHeight==null&&(a.pixelHeight=a.el.offsetHeight)),a.rowCount==null&&(a.rowCount=a.pixelHeight/p.layerConfig.lineHeight);var e=this.session.getFoldAt(a.row,0);if(a.$fold=e,e){var t=this.session.lineWidgets;a.row==e.end.row&&!t[e.start.row]?t[e.start.row]=a:a.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,p),this.onWidgetChanged(a),a},d.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var p=this.session.lineWidgets[a.row];if(p==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;p;){if(p.$oldWidget==a){p.$oldWidget=a.$oldWidget;break}p=p.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},d.prototype.getWidgetsAtRow=function(a){for(var p=this.session.lineWidgets,e=p&&p[a],t=[];e;)t.push(e),e=e.$oldWidget;return t},d.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},d.prototype.measureWidgets=function(a,p){var e=this.session._changedWidgets,t=p.layerConfig;if(!(!e||!e.length)){for(var r=1/0,l=0;l0&&!t[r];)r--;this.firstRow=e.firstRow,this.lastRow=e.lastRow,p.$cursorLayer.config=e;for(var o=r;o<=l;o++){var c=t[o];if(!(!c||!c.el)){if(c.hidden){c.el.style.top=-100-(c.pixelHeight||0)+"px";continue}c._inDocument||(c._inDocument=!0,p.container.appendChild(c.el));var f=p.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;c.coverLine||(f+=e.lineHeight*this.session.getRowLineCount(c.row)),c.el.style.top=f-e.offset+"px";var m=c.coverGutter?0:p.gutterWidth;c.fixedWidth||(m-=p.scrollLeft),c.el.style.left=m+"px",c.fullWidth&&c.screenWidth&&(c.el.style.minWidth=e.width+2*e.padding+"px"),c.fixedWidth?c.el.style.right=p.scrollBar.getWidth()+"px":c.el.style.right=""}}}},d}();h.LineWidgets=u}),ace.define("ace/apply_delta",["require","exports","module"],function(i,h,v){h.applyDelta=function(s,u,d){var a=u.start.row,p=u.start.column,e=s[a]||"";switch(u.action){case"insert":var t=u.lines;if(t.length===1)s[a]=e.substring(0,p)+u.lines[0]+e.substring(p);else{var r=[a,1].concat(u.lines);s.splice.apply(s,r),s[a]=e.substring(0,p)+s[a],s[a+u.lines.length-1]+=e.substring(p)}break;case"remove":var l=u.end.column,o=u.end.row;a===o?s[a]=e.substring(0,p)+e.substring(l):s.splice(a,o-a+1,e.substring(0,p)+s[o].substring(l));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(i,h,v){var s=i("./lib/oop"),u=i("./lib/event_emitter").EventEmitter,d=function(){function e(t,r,l){this.$onChange=this.onChange.bind(this),this.attach(t),typeof r!="number"?this.setPosition(r.row,r.column):this.setPosition(r,l)}return e.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},e.prototype.getDocument=function(){return this.document},e.prototype.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var r=p(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(r.row,r.column,!0)}},e.prototype.setPosition=function(t,r,l){var o;if(l?o={row:t,column:r}:o=this.$clipPositionToDocument(t,r),!(this.row==o.row&&this.column==o.column)){var c={row:this.row,column:this.column};this.row=o.row,this.column=o.column,this._signal("change",{old:c,value:o})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(t,r){var l={};return t>=this.document.getLength()?(l.row=Math.max(0,this.document.getLength()-1),l.column=this.document.getLine(l.row).length):t<0?(l.row=0,l.column=0):(l.row=t,l.column=Math.min(this.document.getLine(l.row).length,Math.max(0,r))),r<0&&(l.column=0),l},e}();d.prototype.$insertRight=!1,s.implement(d.prototype,u);function a(e,t,r){var l=r?e.column<=t.column:e.column=s&&(r=s-1,l=void 0);var c=this.getLine(r);return l==null&&(l=c.length),l=Math.min(Math.max(l,0),c.length),{row:r,column:l}},t.prototype.clonePos=function(r){return{row:r.row,column:r.column}},t.prototype.pos=function(r,l){return{row:r,column:l}},t.prototype.$clipPosition=function(r){var l=this.getLength();return r.row>=l?(r.row=Math.max(0,l-1),r.column=this.getLine(l-1).length):(r.row=Math.max(0,r.row),r.column=Math.min(Math.max(r.column,0),this.getLine(r.row).length)),r},t.prototype.insertFullLines=function(r,l){r=Math.min(Math.max(r,0),this.getLength());var s=0;r0,c=l=0&&this.applyDelta({start:this.pos(r,this.getLine(r).length),end:this.pos(r+1,0),action:"remove",lines:["",""]})},t.prototype.replace=function(r,l){if(r instanceof a||(r=a.fromPoints(r.start,r.end)),l.length===0&&r.isEmpty())return r.start;if(l==this.getTextRange(r))return r.end;this.remove(r);var s;return l?s=this.insert(r.start,l):s=r.start,s},t.prototype.applyDeltas=function(r){for(var l=0;l=0;l--)this.revertDelta(r[l])},t.prototype.applyDelta=function(r,l){var s=r.action=="insert";(s?r.lines.length<=1&&!r.lines[0]:!a.comparePoints(r.start,r.end))||(s&&r.lines.length>2e4?this.$splitAndapplyLargeDelta(r,2e4):(h(this.$lines,r,l),this._signal("change",r)))},t.prototype.$safeApplyDelta=function(r){var l=this.$lines.length;(r.action=="remove"&&r.start.row20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=l,s==-1&&(s=l),f<=s&&t.fireUpdateEvent(f,s)}}}return a.prototype.setTokenizer=function(d){this.tokenizer=d,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(d){this.doc=d,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(d,e){var t={first:d,last:e};this._signal("update",{data:t})},a.prototype.start=function(d){this.currentLine=Math.min(d||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(d){var e=d.start.row,t=d.end.row-e;if(t===0)this.lines[e]=null;else if(d.action=="remove")this.lines.splice(e,t+1,null),this.states.splice(e,t+1,null);else{var r=Array(t+1);r.unshift(e,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(e,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(d){return this.lines[d]||this.$tokenizeRow(d)},a.prototype.getState=function(d){return this.currentLine==d&&this.$tokenizeRow(d),this.states[d]||"start"},a.prototype.$tokenizeRow=function(d){var e=this.doc.getLine(d),t=this.states[d-1],r=this.tokenizer.getLineTokens(e,t,d);return this.states[d]+""!=r.state+""?(this.states[d]=r.state,this.lines[d+1]=null,this.currentLine>d+1&&(this.currentLine=d+1)):this.currentLine==d&&(this.currentLine=d+1),this.lines[d]=r.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();o.implement(p.prototype,h),u.BackgroundTokenizer=p}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(i,u,v){var o=i("./lib/lang"),h=i("./range").Range,p=function(){function a(d,e,t){t===void 0&&(t="text"),this.setRegexp(d),this.clazz=e,this.type=t,this.docLen=0}return a.prototype.setRegexp=function(d){this.regExp+""!=d+""&&(this.regExp=d,this.cache=[])},a.prototype.update=function(d,e,t,r){if(this.regExp){for(var l=r.firstRow,s=r.lastRow,c={},f=t.$editor&&t.$editor.$search,m=f&&f.$isMultilineSearch(t.$editor.getLastSearchOptions()),y=l;y<=s;y++){var D=this.cache[y];if(D==null||t.getValue().length!=this.docLen){if(m){D=[];var E=f.$multiLineForward(t,this.regExp,y,s);if(E){var b=E.endRow<=s?E.endRow-1:s;b>y&&(y=b),D.push(new h(E.startRow,E.startCol,E.endRow,E.endCol))}D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES))}else D=o.getMatchOffsets(t.getLine(y),this.regExp),D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES)),D=D.map(function(k){return new h(y,k.offset,y,k.offset+k.length)});this.cache[y]=D.length?D:""}if(D.length!==0)for(var g=D.length;g--;){var S=D[g].toScreenRange(t),T=S.toString();c[T]||(c[T]=!0,e.drawSingleLineMarker(d,S,this.clazz,r))}}this.docLen=t.getValue().length}},a}();p.prototype.MAX_RANGES=500,u.SearchHighlight=p}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(i,u,v){var o=function(){function b(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return b.prototype.addSession=function(g){this.$session=g},b.prototype.add=function(g,S,T){if(!this.$fromUndo&&g!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),S===!1||!this.lastDeltas){this.lastDeltas=[];var k=this.$undoStack.length;k>this.$undoDepth-1&&this.$undoStack.splice(0,k-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),g.id=this.$rev=++this.$maxRev}(g.action=="remove"||g.action=="insert")&&(this.$lastDelta=g),this.lastDeltas.push(g)}},b.prototype.addSelection=function(g,S){this.selections.push({value:g,rev:S||this.$rev})},b.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},b.prototype.markIgnored=function(g,S){S==null&&(S=this.$rev+1);for(var T=this.$undoStack,k=T.length;k--;){var _=T[k][0];if(_.id<=g)break;_.id0},b.prototype.canRedo=function(){return this.$redoStack.length>0},b.prototype.bookmark=function(g){g==null&&(g=this.$rev),this.mark=g},b.prototype.isAtBookmark=function(){return this.$rev===this.mark},b.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},b.prototype.fromJSON=function(g){this.reset(),this.$undoStack=g.$undoStack,this.$redoStack=g.$redoStack},b.prototype.$prettyPrint=function(g){return g?t(g):t(this.$undoStack)+` +`},t.prototype.getLine=function(r){return this.$lines[r]||""},t.prototype.getLines=function(r,l){return this.$lines.slice(r,l+1)},t.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},t.prototype.getLength=function(){return this.$lines.length},t.prototype.getTextRange=function(r){return this.getLinesForRange(r).join(this.getNewLineCharacter())},t.prototype.getLinesForRange=function(r){var l;if(r.start.row===r.end.row)l=[this.getLine(r.start.row).substring(r.start.column,r.end.column)];else{l=this.getLines(r.start.row,r.end.row),l[0]=(l[0]||"").substring(r.start.column);var o=l.length-1;r.end.row-r.start.row==o&&(l[o]=l[o].substring(0,r.end.column))}return l},t.prototype.insertLines=function(r,l){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(r,l)},t.prototype.removeLines=function(r,l){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(r,l)},t.prototype.insertNewLine=function(r){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(r,["",""])},t.prototype.insert=function(r,l){return this.getLength()<=1&&this.$detectNewLine(l),this.insertMergedLines(r,this.$split(l))},t.prototype.insertInLine=function(r,l){var o=this.clippedPos(r.row,r.column),c=this.pos(r.row,r.column+l.length);return this.applyDelta({start:o,end:c,action:"insert",lines:[l]},!0),this.clonePos(c)},t.prototype.clippedPos=function(r,l){var o=this.getLength();r===void 0?r=o:r<0?r=0:r>=o&&(r=o-1,l=void 0);var c=this.getLine(r);return l==null&&(l=c.length),l=Math.min(Math.max(l,0),c.length),{row:r,column:l}},t.prototype.clonePos=function(r){return{row:r.row,column:r.column}},t.prototype.pos=function(r,l){return{row:r,column:l}},t.prototype.$clipPosition=function(r){var l=this.getLength();return r.row>=l?(r.row=Math.max(0,l-1),r.column=this.getLine(l-1).length):(r.row=Math.max(0,r.row),r.column=Math.min(Math.max(r.column,0),this.getLine(r.row).length)),r},t.prototype.insertFullLines=function(r,l){r=Math.min(Math.max(r,0),this.getLength());var o=0;r0,c=l=0&&this.applyDelta({start:this.pos(r,this.getLine(r).length),end:this.pos(r+1,0),action:"remove",lines:["",""]})},t.prototype.replace=function(r,l){if(r instanceof a||(r=a.fromPoints(r.start,r.end)),l.length===0&&r.isEmpty())return r.start;if(l==this.getTextRange(r))return r.end;this.remove(r);var o;return l?o=this.insert(r.start,l):o=r.start,o},t.prototype.applyDeltas=function(r){for(var l=0;l=0;l--)this.revertDelta(r[l])},t.prototype.applyDelta=function(r,l){var o=r.action=="insert";(o?r.lines.length<=1&&!r.lines[0]:!a.comparePoints(r.start,r.end))||(o&&r.lines.length>2e4?this.$splitAndapplyLargeDelta(r,2e4):(u(this.$lines,r,l),this._signal("change",r)))},t.prototype.$safeApplyDelta=function(r){var l=this.$lines.length;(r.action=="remove"&&r.start.row20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=l,o==-1&&(o=l),f<=o&&t.fireUpdateEvent(f,o)}}}return a.prototype.setTokenizer=function(p){this.tokenizer=p,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(p){this.doc=p,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(p,e){var t={first:p,last:e};this._signal("update",{data:t})},a.prototype.start=function(p){this.currentLine=Math.min(p||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(p){var e=p.start.row,t=p.end.row-e;if(t===0)this.lines[e]=null;else if(p.action=="remove")this.lines.splice(e,t+1,null),this.states.splice(e,t+1,null);else{var r=Array(t+1);r.unshift(e,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(e,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(p){return this.lines[p]||this.$tokenizeRow(p)},a.prototype.getState=function(p){return this.currentLine==p&&this.$tokenizeRow(p),this.states[p]||"start"},a.prototype.$tokenizeRow=function(p){var e=this.doc.getLine(p),t=this.states[p-1],r=this.tokenizer.getLineTokens(e,t,p);return this.states[p]+""!=r.state+""?(this.states[p]=r.state,this.lines[p+1]=null,this.currentLine>p+1&&(this.currentLine=p+1)):this.currentLine==p&&(this.currentLine=p+1),this.lines[p]=r.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();s.implement(d.prototype,u),h.BackgroundTokenizer=d}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(i,h,v){var s=i("./lib/lang"),u=i("./range").Range,d=function(){function a(p,e,t){t===void 0&&(t="text"),this.setRegexp(p),this.clazz=e,this.type=t,this.docLen=0}return a.prototype.setRegexp=function(p){this.regExp+""!=p+""&&(this.regExp=p,this.cache=[])},a.prototype.update=function(p,e,t,r){if(this.regExp){for(var l=r.firstRow,o=r.lastRow,c={},f=t.$editor&&t.$editor.$search,m=f&&f.$isMultilineSearch(t.$editor.getLastSearchOptions()),y=l;y<=o;y++){var D=this.cache[y];if(D==null||t.getValue().length!=this.docLen){if(m){D=[];var E=f.$multiLineForward(t,this.regExp,y,o);if(E){var b=E.endRow<=o?E.endRow-1:o;b>y&&(y=b),D.push(new u(E.startRow,E.startCol,E.endRow,E.endCol))}D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES))}else D=s.getMatchOffsets(t.getLine(y),this.regExp),D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES)),D=D.map(function(k){return new u(y,k.offset,y,k.offset+k.length)});this.cache[y]=D.length?D:""}if(D.length!==0)for(var g=D.length;g--;){var S=D[g].toScreenRange(t),T=S.toString();c[T]||(c[T]=!0,e.drawSingleLineMarker(p,S,this.clazz,r))}}this.docLen=t.getValue().length}},a}();d.prototype.MAX_RANGES=500,h.SearchHighlight=d}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(i,h,v){var s=function(){function b(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return b.prototype.addSession=function(g){this.$session=g},b.prototype.add=function(g,S,T){if(!this.$fromUndo&&g!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),S===!1||!this.lastDeltas){this.lastDeltas=[];var k=this.$undoStack.length;k>this.$undoDepth-1&&this.$undoStack.splice(0,k-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),g.id=this.$rev=++this.$maxRev}(g.action=="remove"||g.action=="insert")&&(this.$lastDelta=g),this.lastDeltas.push(g)}},b.prototype.addSelection=function(g,S){this.selections.push({value:g,rev:S||this.$rev})},b.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},b.prototype.markIgnored=function(g,S){S==null&&(S=this.$rev+1);for(var T=this.$undoStack,k=T.length;k--;){var _=T[k][0];if(_.id<=g)break;_.id0},b.prototype.canRedo=function(){return this.$redoStack.length>0},b.prototype.bookmark=function(g){g==null&&(g=this.$rev),this.mark=g},b.prototype.isAtBookmark=function(){return this.$rev===this.mark},b.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},b.prototype.fromJSON=function(g){this.reset(),this.$undoStack=g.$undoStack,this.$redoStack=g.$redoStack},b.prototype.$prettyPrint=function(g){return g?t(g):t(this.$undoStack)+` --- -`+t(this.$redoStack)},b}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;function h(b,g){for(var S=g;S--;){var T=b[S];if(T&&!T[0].ignore){for(;S"+b.end.row+":"+b.end.column}function l(b,g){var S=b.action=="insert",T=g.action=="insert";if(S&&T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.start,b.start)<=0)f(b,g,1);else return null;else if(S&&!T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.end,b.start)<=0)f(b,g,-1);else return null;else if(!S&&T)if(a(g.start,b.start)>=0)f(g,b,1);else if(a(g.start,b.start)<=0)f(b,g,1);else return null;else if(!S&&!T)if(a(g.start,b.start)>=0)f(g,b,1);else if(a(g.end,b.start)<=0)f(b,g,-1);else return null;return[g,b]}function s(b,g){for(var S=b.length;S--;)for(var T=0;T=0?f(b,g,-1):(a(b.start,g.start)<=0||f(b,p.fromPoints(g.start,b.start),-1),f(g,b,1));else if(!S&&T)a(g.start,b.end)>=0?f(g,b,-1):(a(g.start,b.start)<=0||f(g,p.fromPoints(b.start,g.start),-1),f(b,g,1));else if(!S&&!T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.end,b.start)<=0)f(b,g,-1);else{var k,_;return a(b.start,g.start)<0&&(k=b,b=y(b,g.start)),a(b.end,g.end)>0&&(_=y(b,g.end)),m(g.end,b.start,b.end,-1),_&&!k&&(b.lines=_.lines,b.start=_.start,b.end=_.end,_=b),[g,k,_].filter(Boolean)}return[g,b]}function f(b,g,S){m(b.start,g.start,g.end,S),m(b.end,g.start,g.end,S)}function m(b,g,S,T){b.row==(T==1?g:S).row&&(b.column+=T*(S.column-g.column)),b.row+=T*(S.row-g.row)}function y(b,g){var S=b.lines,T=b.end;b.end=d(g);var k=b.end.row-b.start.row,_=S.splice(k,S.length),O=k?g.column:g.column-b.start.column;S.push(_[0].substring(0,O)),_[0]=_[0].substr(O);var $={start:d(g),end:T,lines:_,action:b.action};return $}function D(b,g){g=e(g);for(var S=b.length;S--;){for(var T=b[S],k=0;kthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(d,e){return-d.range.compareEnd(e.start.row,e.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");a.foldLine=this},p.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},p.prototype.walk=function(a,d,e){var t=0,r=this.folds,l,s,c,f=!0;d==null&&(d=this.end.row,e=this.end.column);for(var m=0;m0)){var f=h(d,s.start);return c===0?e&&f!==0?-l-2:l:f>0||f===0&&!e?l:-l-1}}return-l-1},a.prototype.add=function(d){var e=!d.isEmpty(),t=this.pointIndex(d.start,e);t<0&&(t=-t-1);var r=this.pointIndex(d.end,e,t);return r<0?r=-r-1:r++,this.ranges.splice(t,r-t,d)},a.prototype.addList=function(d){for(var e=[],t=d.length;t--;)e.push.apply(e,this.add(d[t]));return e},a.prototype.substractPoint=function(d){var e=this.pointIndex(d);if(e>=0)return this.ranges.splice(e,1)},a.prototype.merge=function(){var d=[],e=this.ranges;e=e.sort(function(c,f){return h(c.start,f.start)});for(var t=e[0],r,l=1;l=0},a.prototype.containsPoint=function(d){return this.pointIndex(d)>=0},a.prototype.rangeAtPoint=function(d){var e=this.pointIndex(d);if(e>=0)return this.ranges[e]},a.prototype.clipRows=function(d,e){var t=this.ranges;if(t[0].start.row>e||t[t.length-1].start.row=r)break}if(d.action=="insert")for(var y=l-r,D=-e.column+t.column;cr)break;if(m.start.row==r&&m.start.column>=e.column&&(m.start.column==e.column&&this.$bias<=0||(m.start.column+=D,m.start.row+=y)),m.end.row==r&&m.end.column>=e.column){if(m.end.column==e.column&&this.$bias<0)continue;m.end.column==e.column&&D>0&&cm.start.column&&m.end.column==s[c+1].start.column&&(m.end.column-=D),m.end.column+=D,m.end.row+=y}}else for(var y=r-l,D=e.column-t.column;cl)break;m.end.rowe.column)&&(m.end.column=e.column,m.end.row=e.row):(m.end.column+=D,m.end.row+=y):m.end.row>l&&(m.end.row+=y),m.start.rowe.column)&&(m.start.column=e.column,m.start.row=e.row):(m.start.column+=D,m.start.row+=y):m.start.row>l&&(m.start.row+=y)}if(y!=0&&c=t)return c;if(c.end.row>t)return null}return null},this.getNextFoldLine=function(t,r){var l=this.$foldData,s=0;for(r&&(s=l.indexOf(r)),s==-1&&(s=0),s;s=t)return c}return null},this.getFoldedRowCount=function(t,r){for(var l=this.$foldData,s=r-t+1,c=0;c=r){y=t?s-=r-y:s=0);break}else m>=t&&(y>=t?s-=m-y:s-=m-t+1)}return s},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(r,l){return r.start.row-l.start.row}),t},this.addFold=function(t,r){var l=this.$foldData,s=!1,c;t instanceof p?c=t:(c=new p(r,t),c.collapseChildren=r.collapseChildren),this.$clipRangeToDocument(c.range);var f=c.start.row,m=c.start.column,y=c.end.row,D=c.end.column,E=this.getFoldAt(f,m,1),b=this.getFoldAt(y,D,-1);if(E&&b==E)return E.addSubFold(c);E&&!E.range.isStart(f,m)&&this.removeFold(E),b&&!b.range.isEnd(y,D)&&this.removeFold(b);var g=this.getFoldsInRange(c.range);g.length>0&&(this.removeFolds(g),c.collapseChildren||g.forEach(function(_){c.addSubFold(_)}));for(var S=0;S0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(r){this.expandFold(r)},this)},this.unfold=function(t,r){var l,s;if(t==null)l=new o(0,0,this.getLength(),0),r==null&&(r=!0);else if(typeof t=="number")l=new o(t,0,t,this.getLine(t).length);else if("row"in t)l=o.fromPoints(t,t);else{if(Array.isArray(t))return s=[],t.forEach(function(f){s=s.concat(this.unfold(f))},this),s;l=t}s=this.getFoldsInRangeList(l);for(var c=s;s.length==1&&o.comparePoints(s[0].start,l.start)<0&&o.comparePoints(s[0].end,l.end)>0;)this.expandFolds(s),s=this.getFoldsInRangeList(l);if(r!=!1?this.removeFolds(s):this.expandFolds(s),c.length)return c},this.isRowFolded=function(t,r){return!!this.getFoldLine(t,r)},this.getRowFoldEnd=function(t,r){var l=this.getFoldLine(t,r);return l?l.end.row:t},this.getRowFoldStart=function(t,r){var l=this.getFoldLine(t,r);return l?l.start.row:t},this.getFoldDisplayLine=function(t,r,l,s,c){s==null&&(s=t.start.row),c==null&&(c=0),r==null&&(r=t.end.row),l==null&&(l=this.getLine(r).length);var f=this.doc,m="";return t.walk(function(y,D,E,b){if(!(DE)break;while(c&&m.test(c.type));c=s.stepBackward()}else c=s.getCurrentToken();return y.end.row=s.getCurrentTokenRow(),y.end.column=s.getCurrentTokenColumn(),y.start.row==y.end.row&&y.start.column>y.end.column?void 0:y}},this.foldAll=function(t,r,l,s){l==null&&(l=1e5);var c=this.foldWidgets;if(c){r=r||this.getLength(),t=t||0;for(var f=t;f=t&&(f=m.end.row,m.collapseChildren=l,this.addFold("...",m))}}},this.foldToLevel=function(t){for(this.foldAll();t-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var t=this;this.foldAll(null,null,null,function(r){for(var l=t.getTokens(r),s=0;s=0;){var f=l[s];if(f==null&&(f=l[s]=this.getFoldWidget(s)),f=="start"){var m=this.getFoldWidgetRange(s);if(c||(c=m),m&&m.end.row>=t)break}s--}return{range:s!==-1&&m,firstRange:c}},this.onFoldWidgetClick=function(t,r){r instanceof d&&(r=r.domEvent);var l={children:r.shiftKey,all:r.ctrlKey||r.metaKey,siblings:r.altKey},s=this.$toggleFoldWidget(t,l);if(!s){var c=r.target||r.srcElement;c&&/ace_fold-widget/.test(c.className)&&(c.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,r){if(this.getFoldWidget){var l=this.getFoldWidget(t),s=this.getLine(t),c=l==="end"?-1:1,f=this.getFoldAt(t,c===-1?0:s.length,c);if(f)return r.children||r.all?this.removeFold(f):this.expandFold(f),f;var m=this.getFoldWidgetRange(t,!0);if(m&&!m.isMultiLine()&&(f=this.getFoldAt(m.start.row,m.start.column,1),f&&m.isEqual(f.range)))return this.removeFold(f),f;if(r.siblings){var y=this.getParentFoldRangeData(t);if(y.range)var D=y.range.start.row+1,E=y.range.end.row;this.foldAll(D,E,r.all?1e4:0)}else r.children?(E=m?m.end.row:this.getLength(),this.foldAll(t+1,E,r.all?1e4:0)):m&&(r.all&&(m.collapseChildren=1e4),this.addFold("...",m));return m}},this.toggleFoldWidget=function(t){var r=this.selection.getCursor().row;r=this.getRowFoldStart(r);var l=this.$toggleFoldWidget(r,{});if(!l){var s=this.getParentFoldRangeData(r,!0);if(l=s.range||s.firstRange,l){r=l.start.row;var c=this.getFoldAt(r,this.getLine(r).length,1);c?this.removeFold(c):this.addFold("...",l)}}},this.updateFoldWidgets=function(t){var r=t.start.row,l=t.end.row-r;if(l===0)this.foldWidgets[r]=null;else if(t.action=="remove")this.foldWidgets.splice(r,l+1,null);else{var s=Array(l+1);s.unshift(r,1),this.foldWidgets.splice.apply(this.foldWidgets,s)}},this.tokenizerUpdateFoldWidgets=function(t){var r=t.data;r.first!=r.last&&this.foldWidgets.length>r.first&&this.foldWidgets.splice(r.first,this.foldWidgets.length)}}u.Folding=e}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(i,u,v){var o=i("../token_iterator").TokenIterator,h=i("../range").Range;function p(){this.findMatchingBracket=function(a,d){if(a.column==0)return null;var e=d||this.getLine(a.row).charAt(a.column-1);if(e=="")return null;var t=e.match(/([\(\[\{])|([\)\]\}])/);return t?t[1]?this.$findClosingBracket(t[1],a):this.$findOpeningBracket(t[2],a):null},this.getBracketRange=function(a){var d=this.getLine(a.row),e=!0,t,r=d.charAt(a.column-1),l=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(l||(r=d.charAt(a.column),a={row:a.row,column:a.column+1},l=r&&r.match(/([\(\[\{])|([\)\]\}])/),e=!1),!l)return null;if(l[1]){var s=this.$findClosingBracket(l[1],a);if(!s)return null;t=h.fromPoints(a,s),e||(t.end.column++,t.start.column--),t.cursor=t.end}else{var s=this.$findOpeningBracket(l[2],a);if(!s)return null;t=h.fromPoints(s,a),e||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(a,d){var e=this.getLine(a.row),t=/([\(\[\{])|([\)\]\}])/,r=!d&&e.charAt(a.column-1),l=r&&r.match(t);if(l||(r=(d===void 0||d)&&e.charAt(a.column),a={row:a.row,column:a.column+1},l=r&&r.match(t)),!l)return null;var s=new h(a.row,a.column-1,a.row,a.column),c=l[1]?this.$findClosingBracket(l[1],a):this.$findOpeningBracket(l[2],a);if(!c)return[s];var f=new h(c.row,c.column,c.row,c.column+1);return[s,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,d,e){var t=this.$brackets[a],r=1,l=new o(this,d.row,d.column),s=l.getCurrentToken();if(s||(s=l.stepForward()),!!s){e||(e=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var c=d.column-l.getCurrentTokenColumn()-2,f=s.value;;){for(;c>=0;){var m=f.charAt(c);if(m==t){if(r-=1,r==0)return{row:l.getCurrentTokenRow(),column:c+l.getCurrentTokenColumn()}}else m==a&&(r+=1);c-=1}do s=l.stepBackward();while(s&&!e.test(s.type));if(s==null)break;f=s.value,c=f.length-1}return null}},this.$findClosingBracket=function(a,d,e){var t=this.$brackets[a],r=1,l=new o(this,d.row,d.column),s=l.getCurrentToken();if(s||(s=l.stepForward()),!!s){e||(e=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var c=d.column-l.getCurrentTokenColumn();;){for(var f=s.value,m=f.length;c"?t=!0:d.type.indexOf("tag-name")!==-1&&(e=!0));while(d&&!e);return d},this.$findClosingTag=function(a,d){var e,t=d.value,r=d.value,l=0,s=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);d=a.stepForward();var c=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+d.value.length),f=!1;do{if(e=d,e.type.indexOf("tag-close")!==-1&&!f){var m=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(d=a.stepForward(),d){if(d.value===">"&&!f){var m=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(d.type.indexOf("tag-name")!==-1){if(t=d.value,r===t){if(e.value==="<")l++;else if(e.value==="")var E=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(r===t&&d.value==="/>"&&(l--,l<0))var y=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),D=y,E=D,m=new h(c.end.row,c.end.column,c.end.row,c.end.column+1)}}while(d&&l>=0);if(s&&m&&y&&E&&c&&D)return{openTag:new h(s.start.row,s.start.column,m.end.row,m.end.column),closeTag:new h(y.start.row,y.start.column,E.end.row,E.end.column),openTagName:c,closeTagName:D}},this.$findOpeningTag=function(a,d){var e=a.getCurrentToken(),t=d.value,r=0,l=a.getCurrentTokenRow(),s=a.getCurrentTokenColumn(),c=s+2,f=new h(l,s,l,c);a.stepForward();var m=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+d.value.length);if(d.type.indexOf("tag-close")===-1&&(d=a.stepForward()),!(!d||d.value!==">")){var y=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(d=e,l=a.getCurrentTokenRow(),s=a.getCurrentTokenColumn(),c=s+d.value.length,e=a.stepBackward(),d){if(d.type.indexOf("tag-name")!==-1){if(t===d.value)if(e.value==="<"){if(r++,r>0){var D=new h(l,s,l,c),E=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do d=a.stepForward();while(d&&d.value!==">");var b=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else e.value===""){for(var g=0,S=e;S;){if(S.type.indexOf("tag-name")!==-1&&S.value===t){r--;break}else if(S.value==="<")break;S=a.stepBackward(),g++}for(var T=0;Tw&&(this.$docRowCache.splice(w,C),this.$screenRowCache.splice(w,C))},$.prototype.$getRowCacheIndex=function(A,C){for(var w=0,x=A.length-1;w<=x;){var I=w+x>>1,F=A[I];if(C>F)w=I+1;else if(C=C));F++);return x=w[F],x?(x.index=F,x.start=I-x.value.length,x):null},$.prototype.setUndoManager=function(A){if(this.$undoManager=A,this.$informUndoManager&&this.$informUndoManager.cancel(),A){var C=this;A.addSession(this),this.$syncInformUndoManager=function(){C.$informUndoManager.cancel(),C.mergeUndoDeltas=!1},this.$informUndoManager=h.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},$.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},$.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},$.prototype.getTabString=function(){return this.getUseSoftTabs()?h.stringRepeat(" ",this.getTabSize()):" "},$.prototype.setUseSoftTabs=function(A){this.setOption("useSoftTabs",A)},$.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},$.prototype.setTabSize=function(A){this.setOption("tabSize",A)},$.prototype.getTabSize=function(){return this.$tabSize},$.prototype.isTabStop=function(A){return this.$useSoftTabs&&A.column%this.$tabSize===0},$.prototype.setNavigateWithinSoftTabs=function(A){this.setOption("navigateWithinSoftTabs",A)},$.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},$.prototype.setOverwrite=function(A){this.setOption("overwrite",A)},$.prototype.getOverwrite=function(){return this.$overwrite},$.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},$.prototype.addGutterDecoration=function(A,C){this.$decorations[A]||(this.$decorations[A]=""),this.$decorations[A]+=" "+C,this._signal("changeBreakpoint",{})},$.prototype.removeGutterCustomWidget=function(A){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(A)},$.prototype.addGutterCustomWidget=function(A,C){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(A,C)},$.prototype.removeGutterDecoration=function(A,C){this.$decorations[A]=(this.$decorations[A]||"").replace(" "+C,""),this._signal("changeBreakpoint",{})},$.prototype.getBreakpoints=function(){return this.$breakpoints},$.prototype.setBreakpoints=function(A){this.$breakpoints=[];for(var C=0;C0&&(x=!!w.charAt(C-1).match(this.tokenRe)),x||(x=!!w.charAt(C).match(this.tokenRe)),x)var I=this.tokenRe;else if(/^\s+$/.test(w.slice(C-1,C+1)))var I=/\s/;else var I=this.nonTokenRe;var F=C;if(F>0){do F--;while(F>=0&&w.charAt(F).match(I));F++}for(var R=C;RA&&(A=C.screenWidth)}),this.lineWidgetWidth=A},$.prototype.$computeWidth=function(A){if(this.$modified||A){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var C=this.doc.getAllLines(),w=this.$rowLengthCache,x=0,I=0,F=this.$foldData[I],R=F?F.start.row:1/0,B=C.length,P=0;PR){if(P=F.end.row+1,P>=B)break;F=this.$foldData[I++],R=F?F.start.row:1/0}w[P]==null&&(w[P]=this.$getStringScreenWidth(C[P])[0]),w[P]>x&&(x=w[P])}this.screenWidth=x}},$.prototype.getLine=function(A){return this.doc.getLine(A)},$.prototype.getLines=function(A,C){return this.doc.getLines(A,C)},$.prototype.getLength=function(){return this.doc.getLength()},$.prototype.getTextRange=function(A){return this.doc.getTextRange(A||this.selection.getRange())},$.prototype.insert=function(A,C){return this.doc.insert(A,C)},$.prototype.remove=function(A){return this.doc.remove(A)},$.prototype.removeFullLines=function(A,C){return this.doc.removeFullLines(A,C)},$.prototype.undoChanges=function(A,C){if(A.length){this.$fromUndo=!0;for(var w=A.length-1;w!=-1;w--){var x=A[w];x.action=="insert"||x.action=="remove"?this.doc.revertDelta(x):x.folds&&this.addFolds(x.folds)}!C&&this.$undoSelect&&(A.selectionBefore?this.selection.fromJSON(A.selectionBefore):this.selection.setRange(this.$getUndoSelection(A,!0))),this.$fromUndo=!1}},$.prototype.redoChanges=function(A,C){if(A.length){this.$fromUndo=!0;for(var w=0;wA.end.column&&(F.start.column+=B),F.end.row==A.end.row&&F.end.column>A.end.column&&(F.end.column+=B)),R&&F.start.row>=A.end.row&&(F.start.row+=R,F.end.row+=R)}if(F.end=this.insert(F.start,x),I.length){var P=A.start,V=F.start,R=V.row-P.row,B=V.column-P.column;this.addFolds(I.map(function(U){return U=U.clone(),U.start.row==P.row&&(U.start.column+=B),U.end.row==P.row&&(U.end.column+=B),U.start.row+=R,U.end.row+=R,U}))}return F},$.prototype.indentRows=function(A,C,w){w=w.replace(/\t/g,this.getTabString());for(var x=A;x<=C;x++)this.doc.insertInLine({row:x,column:0},w)},$.prototype.outdentRows=function(A){for(var C=A.collapseRows(),w=new r(0,0,0,0),x=this.getTabSize(),I=C.start.row;I<=C.end.row;++I){var F=this.getLine(I);w.start.row=I,w.end.row=I;for(var R=0;R0){var x=this.getRowFoldEnd(C+w);if(x>this.doc.getLength()-1)return 0;var I=x-C}else{A=this.$clipRowToDocument(A),C=this.$clipRowToDocument(C);var I=C-A+1}var F=new r(A,0,C,Number.MAX_VALUE),R=this.getFoldsInRange(F).map(function(P){return P=P.clone(),P.start.row+=I,P.end.row+=I,P}),B=w==0?this.doc.getLines(A,C):this.doc.removeFullLines(A,C);return this.doc.insertFullLines(A+I,B),R.length&&this.addFolds(R),I},$.prototype.moveLinesUp=function(A,C){return this.$moveLines(A,C,-1)},$.prototype.moveLinesDown=function(A,C){return this.$moveLines(A,C,1)},$.prototype.duplicateLines=function(A,C){return this.$moveLines(A,C,0)},$.prototype.$clipRowToDocument=function(A){return Math.max(0,Math.min(A,this.doc.getLength()-1))},$.prototype.$clipColumnToRow=function(A,C){return C<0?0:Math.min(this.doc.getLine(A).length,C)},$.prototype.$clipPositionToDocument=function(A,C){if(C=Math.max(0,C),A<0)A=0,C=0;else{var w=this.doc.getLength();A>=w?(A=w-1,C=this.doc.getLine(w-1).length):C=Math.min(this.doc.getLine(A).length,C)}return{row:A,column:C}},$.prototype.$clipRangeToDocument=function(A){A.start.row<0?(A.start.row=0,A.start.column=0):A.start.column=this.$clipColumnToRow(A.start.row,A.start.column);var C=this.doc.getLength()-1;return A.end.row>C?(A.end.row=C,A.end.column=this.doc.getLine(C).length):A.end.column=this.$clipColumnToRow(A.end.row,A.end.column),A},$.prototype.setUseWrapMode=function(A){if(A!=this.$useWrapMode){if(this.$useWrapMode=A,this.$modified=!0,this.$resetRowCache(0),A){var C=this.getLength();this.$wrapData=Array(C),this.$updateWrapData(0,C-1)}this._signal("changeWrapMode")}},$.prototype.getUseWrapMode=function(){return this.$useWrapMode},$.prototype.setWrapLimitRange=function(A,C){(this.$wrapLimitRange.min!==A||this.$wrapLimitRange.max!==C)&&(this.$wrapLimitRange={min:A,max:C},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},$.prototype.adjustWrapLimit=function(A,C){var w=this.$wrapLimitRange;w.max<0&&(w={min:C,max:C});var x=this.$constrainWrapLimit(A,w.min,w.max);return x!=this.$wrapLimit&&x>1?(this.$wrapLimit=x,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},$.prototype.$constrainWrapLimit=function(A,C,w){return C&&(A=Math.max(C,A)),w&&(A=Math.min(w,A)),A},$.prototype.getWrapLimit=function(){return this.$wrapLimit},$.prototype.setWrapLimit=function(A){this.setWrapLimitRange(A,A)},$.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},$.prototype.$updateInternalDataOnChange=function(A){var C=this.$useWrapMode,w=A.action,x=A.start,I=A.end,F=x.row,R=I.row,B=R-F,P=null;if(this.$updating=!0,B!=0)if(w==="remove"){this[C?"$wrapData":"$rowLengthCache"].splice(F,B);var V=this.$foldData;P=this.getFoldsInRange(A),this.removeFolds(P);var W=this.getFoldLine(I.row),H=0;if(W){W.addRemoveChars(I.row,I.column,x.column-I.column),W.shiftRow(-B);var U=this.getFoldLine(F);U&&U!==W&&(U.merge(W),W=U),H=V.indexOf(W)+1}for(H;H=I.row&&W.shiftRow(-B)}R=F}else{var G=Array(B);G.unshift(F,0);var Y=C?this.$wrapData:this.$rowLengthCache;Y.splice.apply(Y,G);var V=this.$foldData,W=this.getFoldLine(F),H=0;if(W){var Q=W.range.compareInside(x.row,x.column);Q==0?(W=W.split(x.row,x.column),W&&(W.shiftRow(B),W.addRemoveChars(R,0,I.column-x.column))):Q==-1&&(W.addRemoveChars(F,0,I.column-x.column),W.shiftRow(B)),H=V.indexOf(W)+1}for(H;H=F&&W.shiftRow(B)}}else{B=Math.abs(A.start.column-A.end.column),w==="remove"&&(P=this.getFoldsInRange(A),this.removeFolds(P),B=-B);var W=this.getFoldLine(F);W&&W.addRemoveChars(F,x.column,B)}return C&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,C?this.$updateWrapData(F,R):this.$updateRowLengthCache(F,R),P},$.prototype.$updateRowLengthCache=function(A,C){this.$rowLengthCache[A]=null,this.$rowLengthCache[C]=null},$.prototype.$updateWrapData=function(A,C){var w=this.doc.getAllLines(),x=this.getTabSize(),I=this.$wrapData,F=this.$wrapLimit,R,B,P=A;for(C=Math.min(C,w.length-1);P<=C;)B=this.getFoldLine(P,B),B?(R=[],B.walk(function(V,W,H,U){var G;if(V!=null){G=this.$getDisplayTokens(V,R.length),G[0]=b;for(var Y=1;YC-U;){var G=F+C-U;if(A[G-1]>=T&&A[G]>=T){H(G);continue}if(A[G]==b||A[G]==g){for(G;G!=F-1&&A[G]!=b;G--);if(G>F){H(G);continue}for(G=F+C,G;G>2)),F-1);G>Y&&A[G]Y&&A[G]Y&&A[G]==S;)G--}else for(;G>Y&&A[G]Y){H(++G);continue}G=F+C,A[G]==E&&G--,H(G-U)}return x},$.prototype.$getDisplayTokens=function(A,C){var w=[],x;C=C||0;for(var I=0;I39&&F<48||F>57&&F<64?w.push(S):F>=4352&&O(F)?w.push(D,E):w.push(D)}return w},$.prototype.$getStringScreenWidth=function(A,C,w){if(C==0)return[0,0];C==null&&(C=1/0),w=w||0;var x,I;for(I=0;I=4352&&O(x)?w+=2:w+=1,!(w>C));I++);return[w,I]},$.prototype.getRowLength=function(A){var C=1;return this.lineWidgets&&(C+=this.lineWidgets[A]&&this.lineWidgets[A].rowCount||0),!this.$useWrapMode||!this.$wrapData[A]?C:this.$wrapData[A].length+C},$.prototype.getRowLineCount=function(A){return!this.$useWrapMode||!this.$wrapData[A]?1:this.$wrapData[A].length+1},$.prototype.getRowWrapIndent=function(A){if(this.$useWrapMode){var C=this.screenToDocumentPosition(A,Number.MAX_VALUE),w=this.$wrapData[C.row];return w.length&&w[0]=0)var B=V[W],I=this.$docRowCache[W],U=A>V[H-1];else var U=!H;for(var G=this.getLength()-1,Y=this.getNextFoldLine(I),Q=Y?Y.start.row:1/0;B<=A&&(P=this.getRowLength(I),!(B+P>A||I>=G));)B+=P,I++,I>Q&&(I=Y.end.row+1,Y=this.getNextFoldLine(I,Y),Q=Y?Y.start.row:1/0),U&&(this.$docRowCache.push(I),this.$screenRowCache.push(B));if(Y&&Y.start.row<=I)x=this.getFoldDisplayLine(Y),I=Y.start.row;else{if(B+P<=A||I>G)return{row:G,column:this.getLine(G).length};x=this.getLine(I),Y=null}var ee=0,ne=Math.floor(A-B);if(this.$useWrapMode){var se=this.$wrapData[I];se&&(R=se[ne],ne>0&&se.length&&(ee=se.indent,F=se[ne-1]||se[se.length-1],x=x.substring(F)))}return w!==void 0&&this.$bidiHandler.isBidiRow(B+ne,I,ne)&&(C=this.$bidiHandler.offsetToCol(w)),F+=this.$getStringScreenWidth(x,C-ee)[1],this.$useWrapMode&&F>=R&&(F=R-1),Y?Y.idxToPosition(F):{row:I,column:F}},$.prototype.documentToScreenPosition=function(A,C){if(typeof C>"u")var w=this.$clipPositionToDocument(A.row,A.column);else w=this.$clipPositionToDocument(A,C);A=w.row,C=w.column;var x=0,I=null,F=null;F=this.getFoldAt(A,C,1),F&&(A=F.start.row,C=F.start.column);var R,B=0,P=this.$docRowCache,V=this.$getRowCacheIndex(P,A),W=P.length;if(W&&V>=0)var B=P[V],x=this.$screenRowCache[V],H=A>P[W-1];else var H=!W;for(var U=this.getNextFoldLine(B),G=U?U.start.row:1/0;B=G){if(R=U.end.row+1,R>A)break;U=this.getNextFoldLine(R,U),G=U?U.start.row:1/0}else R=B+1;x+=this.getRowLength(B),B=R,H&&(this.$docRowCache.push(B),this.$screenRowCache.push(x))}var Y="";U&&B>=G?(Y=this.getFoldDisplayLine(U,A,C),I=U.start.row):(Y=this.getLine(A).substring(0,C),I=A);var Q=0;if(this.$useWrapMode){var ee=this.$wrapData[I];if(ee){for(var ne=0;Y.length>=ee[ne];)x++,ne++;Y=Y.substring(ee[ne-1]||0,Y.length),Q=ne>0?ee.indent:0}}return this.lineWidgets&&this.lineWidgets[B]&&this.lineWidgets[B].rowsAbove&&(x+=this.lineWidgets[B].rowsAbove),{row:x,column:Q+this.$getStringScreenWidth(Y)[0]}},$.prototype.documentToScreenColumn=function(A,C){return this.documentToScreenPosition(A,C).column},$.prototype.documentToScreenRow=function(A,C){return this.documentToScreenPosition(A,C).row},$.prototype.getScreenLength=function(){var A=0,C=null;if(this.$useWrapMode)for(var I=this.$wrapData.length,F=0,x=0,C=this.$foldData[x++],R=C?C.start.row:1/0;FR&&(F=C.end.row+1,C=this.$foldData[x++],R=C?C.start.row:1/0)}else{A=this.getLength();for(var w=this.$foldData,x=0;xw));F++);return[x,F]})},$.prototype.getPrecedingCharacter=function(){var A=this.selection.getCursor();if(A.column===0)return A.row===0?"":this.doc.getNewLineCharacter();var C=this.getLine(A.row);return C[A.column-1]},$.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},$}();y.$uid=0,y.prototype.$modes=a.$modes,y.prototype.getValue=y.prototype.toString,y.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},y.prototype.$overwrite=!1,y.prototype.$mode=null,y.prototype.$modeId=null,y.prototype.$scrollTop=0,y.prototype.$scrollLeft=0,y.prototype.$wrapLimit=80,y.prototype.$useWrapMode=!1,y.prototype.$wrapLimitRange={min:null,max:null},y.prototype.lineWidgets=null,y.prototype.isFullWidth=O,o.implement(y.prototype,d);var D=1,E=2,b=3,g=4,S=9,T=10,k=11,_=12;function O($){return $<4352?!1:$>=4352&&$<=4447||$>=4515&&$<=4519||$>=4602&&$<=4607||$>=9001&&$<=9002||$>=11904&&$<=11929||$>=11931&&$<=12019||$>=12032&&$<=12245||$>=12272&&$<=12283||$>=12288&&$<=12350||$>=12353&&$<=12438||$>=12441&&$<=12543||$>=12549&&$<=12589||$>=12593&&$<=12686||$>=12688&&$<=12730||$>=12736&&$<=12771||$>=12784&&$<=12830||$>=12832&&$<=12871||$>=12880&&$<=13054||$>=13056&&$<=19903||$>=19968&&$<=42124||$>=42128&&$<=42182||$>=43360&&$<=43388||$>=44032&&$<=55203||$>=55216&&$<=55238||$>=55243&&$<=55291||$>=63744&&$<=64255||$>=65040&&$<=65049||$>=65072&&$<=65106||$>=65108&&$<=65126||$>=65128&&$<=65131||$>=65281&&$<=65376||$>=65504&&$<=65510}i("./edit_session/folding").Folding.call(y.prototype),i("./edit_session/bracket_match").BracketMatch.call(y.prototype),a.defineOptions(y.prototype,"session",{wrap:{set:function($){if(!$||$=="off"?$=!1:$=="free"?$=!0:$=="printMargin"?$=-1:typeof $=="string"&&($=parseInt($,10)||!1),this.$wrap!=$)if(this.$wrap=$,!$)this.setUseWrapMode(!1);else{var A=typeof $=="number"?$:null;this.setWrapLimitRange(A,A),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function($){$=$=="auto"?this.$mode.type!="text":$!="text",$!=this.$wrapAsCode&&(this.$wrapAsCode=$,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function($){this.$useWorker=$,this.$stopWorker(),$&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function($){$=parseInt($),$>0&&this.$tabSize!==$&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=$,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function($){this.setFoldStyle($)},handlesSet:!0},overwrite:{set:function($){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function($){this.doc.setNewLineMode($)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function($){this.setMode($)},get:function(){return this.$modeId},handlesSet:!0}}),u.EditSession=y}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(i,u,v){var o=i("./lib/lang"),h=i("./lib/oop"),p=i("./range").Range,a=function(){function r(){this.$options={}}return r.prototype.set=function(l){return h.mixin(this.$options,l),this},r.prototype.getOptions=function(){return o.copyObject(this.$options)},r.prototype.setOptions=function(l){this.$options=l},r.prototype.find=function(l){var s=this.$options,c=this.$matchIterator(l,s);if(!c)return!1;var f=null;return c.forEach(function(m,y,D,E){return f=new p(m,y,D,E),y==E&&s.start&&s.start.start&&s.skipCurrent!=!1&&f.isEqual(s.start)?(f=null,!1):!0}),f},r.prototype.findAll=function(l){var s=this.$options;if(!s.needle)return[];this.$assembleRegExp(s);var c=s.range,f=c?l.getLines(c.start.row,c.end.row):l.doc.getAllLines(),m=[],y=s.re;if(s.$isMultiLine){var D=y.length,E=f.length-D,b;e:for(var g=y.offset||0;g<=E;g++){for(var S=0;S_||(m.push(b=new p(g,_,g+D-1,O)),D>2&&(g=g+D-2))}}else for(var $,A=0;AA&&(A=w),m.push(new p($.startRow,$.startCol,$.endRow,$.endCol))}}else{$=o.getMatchOffsets(f[A],y);for(var S=0;S<$.length;S++){var x=$[S];m.push(new p(A,x.offset,A,x.offset+x.length))}}if(c){for(var I=c.start.column,F=c.end.column,A=0,S=m.length-1;AF&&m[S].end.row==R;)S--;for(m=m.slice(A,S+1),A=0,S=m.length;A=m){c+="\\";break}var D=l.charCodeAt(f);switch(D){case s.Backslash:c+="\\";break;case s.n:c+=` -`;break;case s.t:c+=" ";break}continue}if(y===s.DollarSign){if(f++,f>=m){c+="$";break}var E=l.charCodeAt(f);if(E===s.DollarSign){c+="$$";continue}if(E===s.Digit0||E===s.Ampersand){c+="$&";continue}if(s.Digit1<=E&&E<=s.Digit9){c+="$"+l[f];continue}}c+=l[f]}return c||l},r.prototype.replace=function(l,s){var c=this.$options,f=this.$assembleRegExp(c);if(c.$isMultiLine)return s;if(f){var m=this.$isMultilineSearch(c);m&&(l=l.replace(/\r\n|\r|\n/g,` -`));var y=f.exec(l);if(!y||!m&&y[0].length!=l.length)return null;if(s=c.regExp?this.parseReplaceString(s):s.replace(/\$/g,"$$$$"),s=l.replace(f,s),c.preserveCase){s=s.split("");for(var D=Math.min(l.length,l.length);D--;){var E=l[D];E&&E.toLowerCase()!=E?s[D]=s[D].toUpperCase():s[D]=s[D].toLowerCase()}s=s.join("")}return s}},r.prototype.$assembleRegExp=function(l,s){if(l.needle instanceof RegExp)return l.re=l.needle;var c=l.needle;if(!l.needle)return l.re=!1;l.regExp||(c=o.escapeRegExp(c));var f=l.caseSensitive?"gm":"gmi";try{new RegExp(c,"u"),l.$supportsUnicodeFlag=!0,f+="u"}catch{l.$supportsUnicodeFlag=!1}if(l.wholeWord&&(c=d(c,l)),l.$isMultiLine=!s&&/[\n\r]/.test(c),l.$isMultiLine)return l.re=this.$assembleMultilineRegExp(c,f);try{var m=new RegExp(c,f)}catch{m=!1}return l.re=m},r.prototype.$assembleMultilineRegExp=function(l,s){for(var c=l.replace(/\r\n|\r|\n/g,`$ +`):g=r(b.value)),b.start&&(g+=r(b)),(b.id||b.rev)&&(g+=" ("+(b.id||b.rev)+")"),g}function r(b){return b.start.row+":"+b.start.column+"=>"+b.end.row+":"+b.end.column}function l(b,g){var S=b.action=="insert",T=g.action=="insert";if(S&&T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.start,b.start)<=0)f(b,g,1);else return null;else if(S&&!T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.end,b.start)<=0)f(b,g,-1);else return null;else if(!S&&T)if(a(g.start,b.start)>=0)f(g,b,1);else if(a(g.start,b.start)<=0)f(b,g,1);else return null;else if(!S&&!T)if(a(g.start,b.start)>=0)f(g,b,1);else if(a(g.end,b.start)<=0)f(b,g,-1);else return null;return[g,b]}function o(b,g){for(var S=b.length;S--;)for(var T=0;T=0?f(b,g,-1):(a(b.start,g.start)<=0||f(b,d.fromPoints(g.start,b.start),-1),f(g,b,1));else if(!S&&T)a(g.start,b.end)>=0?f(g,b,-1):(a(g.start,b.start)<=0||f(g,d.fromPoints(b.start,g.start),-1),f(b,g,1));else if(!S&&!T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.end,b.start)<=0)f(b,g,-1);else{var k,_;return a(b.start,g.start)<0&&(k=b,b=y(b,g.start)),a(b.end,g.end)>0&&(_=y(b,g.end)),m(g.end,b.start,b.end,-1),_&&!k&&(b.lines=_.lines,b.start=_.start,b.end=_.end,_=b),[g,k,_].filter(Boolean)}return[g,b]}function f(b,g,S){m(b.start,g.start,g.end,S),m(b.end,g.start,g.end,S)}function m(b,g,S,T){b.row==(T==1?g:S).row&&(b.column+=T*(S.column-g.column)),b.row+=T*(S.row-g.row)}function y(b,g){var S=b.lines,T=b.end;b.end=p(g);var k=b.end.row-b.start.row,_=S.splice(k,S.length),O=k?g.column:g.column-b.start.column;S.push(_[0].substring(0,O)),_[0]=_[0].substr(O);var $={start:p(g),end:T,lines:_,action:b.action};return $}function D(b,g){g=e(g);for(var S=b.length;S--;){for(var T=b[S],k=0;kthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(p,e){return-p.range.compareEnd(e.start.row,e.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");a.foldLine=this},d.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},d.prototype.walk=function(a,p,e){var t=0,r=this.folds,l,o,c,f=!0;p==null&&(p=this.end.row,e=this.end.column);for(var m=0;m0)){var f=u(p,o.start);return c===0?e&&f!==0?-l-2:l:f>0||f===0&&!e?l:-l-1}}return-l-1},a.prototype.add=function(p){var e=!p.isEmpty(),t=this.pointIndex(p.start,e);t<0&&(t=-t-1);var r=this.pointIndex(p.end,e,t);return r<0?r=-r-1:r++,this.ranges.splice(t,r-t,p)},a.prototype.addList=function(p){for(var e=[],t=p.length;t--;)e.push.apply(e,this.add(p[t]));return e},a.prototype.substractPoint=function(p){var e=this.pointIndex(p);if(e>=0)return this.ranges.splice(e,1)},a.prototype.merge=function(){var p=[],e=this.ranges;e=e.sort(function(c,f){return u(c.start,f.start)});for(var t=e[0],r,l=1;l=0},a.prototype.containsPoint=function(p){return this.pointIndex(p)>=0},a.prototype.rangeAtPoint=function(p){var e=this.pointIndex(p);if(e>=0)return this.ranges[e]},a.prototype.clipRows=function(p,e){var t=this.ranges;if(t[0].start.row>e||t[t.length-1].start.row=r)break}if(p.action=="insert")for(var y=l-r,D=-e.column+t.column;cr)break;if(m.start.row==r&&m.start.column>=e.column&&(m.start.column==e.column&&this.$bias<=0||(m.start.column+=D,m.start.row+=y)),m.end.row==r&&m.end.column>=e.column){if(m.end.column==e.column&&this.$bias<0)continue;m.end.column==e.column&&D>0&&cm.start.column&&m.end.column==o[c+1].start.column&&(m.end.column-=D),m.end.column+=D,m.end.row+=y}}else for(var y=r-l,D=e.column-t.column;cl)break;m.end.rowe.column)&&(m.end.column=e.column,m.end.row=e.row):(m.end.column+=D,m.end.row+=y):m.end.row>l&&(m.end.row+=y),m.start.rowe.column)&&(m.start.column=e.column,m.start.row=e.row):(m.start.column+=D,m.start.row+=y):m.start.row>l&&(m.start.row+=y)}if(y!=0&&c=t)return c;if(c.end.row>t)return null}return null},this.getNextFoldLine=function(t,r){var l=this.$foldData,o=0;for(r&&(o=l.indexOf(r)),o==-1&&(o=0),o;o=t)return c}return null},this.getFoldedRowCount=function(t,r){for(var l=this.$foldData,o=r-t+1,c=0;c=r){y=t?o-=r-y:o=0);break}else m>=t&&(y>=t?o-=m-y:o-=m-t+1)}return o},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(r,l){return r.start.row-l.start.row}),t},this.addFold=function(t,r){var l=this.$foldData,o=!1,c;t instanceof d?c=t:(c=new d(r,t),c.collapseChildren=r.collapseChildren),this.$clipRangeToDocument(c.range);var f=c.start.row,m=c.start.column,y=c.end.row,D=c.end.column,E=this.getFoldAt(f,m,1),b=this.getFoldAt(y,D,-1);if(E&&b==E)return E.addSubFold(c);E&&!E.range.isStart(f,m)&&this.removeFold(E),b&&!b.range.isEnd(y,D)&&this.removeFold(b);var g=this.getFoldsInRange(c.range);g.length>0&&(this.removeFolds(g),c.collapseChildren||g.forEach(function(_){c.addSubFold(_)}));for(var S=0;S0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(r){this.expandFold(r)},this)},this.unfold=function(t,r){var l,o;if(t==null)l=new s(0,0,this.getLength(),0),r==null&&(r=!0);else if(typeof t=="number")l=new s(t,0,t,this.getLine(t).length);else if("row"in t)l=s.fromPoints(t,t);else{if(Array.isArray(t))return o=[],t.forEach(function(f){o=o.concat(this.unfold(f))},this),o;l=t}o=this.getFoldsInRangeList(l);for(var c=o;o.length==1&&s.comparePoints(o[0].start,l.start)<0&&s.comparePoints(o[0].end,l.end)>0;)this.expandFolds(o),o=this.getFoldsInRangeList(l);if(r!=!1?this.removeFolds(o):this.expandFolds(o),c.length)return c},this.isRowFolded=function(t,r){return!!this.getFoldLine(t,r)},this.getRowFoldEnd=function(t,r){var l=this.getFoldLine(t,r);return l?l.end.row:t},this.getRowFoldStart=function(t,r){var l=this.getFoldLine(t,r);return l?l.start.row:t},this.getFoldDisplayLine=function(t,r,l,o,c){o==null&&(o=t.start.row),c==null&&(c=0),r==null&&(r=t.end.row),l==null&&(l=this.getLine(r).length);var f=this.doc,m="";return t.walk(function(y,D,E,b){if(!(DE)break;while(c&&m.test(c.type));c=o.stepBackward()}else c=o.getCurrentToken();return y.end.row=o.getCurrentTokenRow(),y.end.column=o.getCurrentTokenColumn(),y.start.row==y.end.row&&y.start.column>y.end.column?void 0:y}},this.foldAll=function(t,r,l,o){l==null&&(l=1e5);var c=this.foldWidgets;if(c){r=r||this.getLength(),t=t||0;for(var f=t;f=t&&(f=m.end.row,m.collapseChildren=l,this.addFold("...",m))}}},this.foldToLevel=function(t){for(this.foldAll();t-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var t=this;this.foldAll(null,null,null,function(r){for(var l=t.getTokens(r),o=0;o=0;){var f=l[o];if(f==null&&(f=l[o]=this.getFoldWidget(o)),f=="start"){var m=this.getFoldWidgetRange(o);if(c||(c=m),m&&m.end.row>=t)break}o--}return{range:o!==-1&&m,firstRange:c}},this.onFoldWidgetClick=function(t,r){r instanceof p&&(r=r.domEvent);var l={children:r.shiftKey,all:r.ctrlKey||r.metaKey,siblings:r.altKey},o=this.$toggleFoldWidget(t,l);if(!o){var c=r.target||r.srcElement;c&&/ace_fold-widget/.test(c.className)&&(c.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,r){if(this.getFoldWidget){var l=this.getFoldWidget(t),o=this.getLine(t),c=l==="end"?-1:1,f=this.getFoldAt(t,c===-1?0:o.length,c);if(f)return r.children||r.all?this.removeFold(f):this.expandFold(f),f;var m=this.getFoldWidgetRange(t,!0);if(m&&!m.isMultiLine()&&(f=this.getFoldAt(m.start.row,m.start.column,1),f&&m.isEqual(f.range)))return this.removeFold(f),f;if(r.siblings){var y=this.getParentFoldRangeData(t);if(y.range)var D=y.range.start.row+1,E=y.range.end.row;this.foldAll(D,E,r.all?1e4:0)}else r.children?(E=m?m.end.row:this.getLength(),this.foldAll(t+1,E,r.all?1e4:0)):m&&(r.all&&(m.collapseChildren=1e4),this.addFold("...",m));return m}},this.toggleFoldWidget=function(t){var r=this.selection.getCursor().row;r=this.getRowFoldStart(r);var l=this.$toggleFoldWidget(r,{});if(!l){var o=this.getParentFoldRangeData(r,!0);if(l=o.range||o.firstRange,l){r=l.start.row;var c=this.getFoldAt(r,this.getLine(r).length,1);c?this.removeFold(c):this.addFold("...",l)}}},this.updateFoldWidgets=function(t){var r=t.start.row,l=t.end.row-r;if(l===0)this.foldWidgets[r]=null;else if(t.action=="remove")this.foldWidgets.splice(r,l+1,null);else{var o=Array(l+1);o.unshift(r,1),this.foldWidgets.splice.apply(this.foldWidgets,o)}},this.tokenizerUpdateFoldWidgets=function(t){var r=t.data;r.first!=r.last&&this.foldWidgets.length>r.first&&this.foldWidgets.splice(r.first,this.foldWidgets.length)}}h.Folding=e}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(i,h,v){var s=i("../token_iterator").TokenIterator,u=i("../range").Range;function d(){this.findMatchingBracket=function(a,p){if(a.column==0)return null;var e=p||this.getLine(a.row).charAt(a.column-1);if(e=="")return null;var t=e.match(/([\(\[\{])|([\)\]\}])/);return t?t[1]?this.$findClosingBracket(t[1],a):this.$findOpeningBracket(t[2],a):null},this.getBracketRange=function(a){var p=this.getLine(a.row),e=!0,t,r=p.charAt(a.column-1),l=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(l||(r=p.charAt(a.column),a={row:a.row,column:a.column+1},l=r&&r.match(/([\(\[\{])|([\)\]\}])/),e=!1),!l)return null;if(l[1]){var o=this.$findClosingBracket(l[1],a);if(!o)return null;t=u.fromPoints(a,o),e||(t.end.column++,t.start.column--),t.cursor=t.end}else{var o=this.$findOpeningBracket(l[2],a);if(!o)return null;t=u.fromPoints(o,a),e||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(a,p){var e=this.getLine(a.row),t=/([\(\[\{])|([\)\]\}])/,r=!p&&e.charAt(a.column-1),l=r&&r.match(t);if(l||(r=(p===void 0||p)&&e.charAt(a.column),a={row:a.row,column:a.column+1},l=r&&r.match(t)),!l)return null;var o=new u(a.row,a.column-1,a.row,a.column),c=l[1]?this.$findClosingBracket(l[1],a):this.$findOpeningBracket(l[2],a);if(!c)return[o];var f=new u(c.row,c.column,c.row,c.column+1);return[o,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,p,e){var t=this.$brackets[a],r=1,l=new s(this,p.row,p.column),o=l.getCurrentToken();if(o||(o=l.stepForward()),!!o){e||(e=new RegExp("(\\.?"+o.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var c=p.column-l.getCurrentTokenColumn()-2,f=o.value;;){for(;c>=0;){var m=f.charAt(c);if(m==t){if(r-=1,r==0)return{row:l.getCurrentTokenRow(),column:c+l.getCurrentTokenColumn()}}else m==a&&(r+=1);c-=1}do o=l.stepBackward();while(o&&!e.test(o.type));if(o==null)break;f=o.value,c=f.length-1}return null}},this.$findClosingBracket=function(a,p,e){var t=this.$brackets[a],r=1,l=new s(this,p.row,p.column),o=l.getCurrentToken();if(o||(o=l.stepForward()),!!o){e||(e=new RegExp("(\\.?"+o.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var c=p.column-l.getCurrentTokenColumn();;){for(var f=o.value,m=f.length;c"?t=!0:p.type.indexOf("tag-name")!==-1&&(e=!0));while(p&&!e);return p},this.$findClosingTag=function(a,p){var e,t=p.value,r=p.value,l=0,o=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);p=a.stepForward();var c=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+p.value.length),f=!1;do{if(e=p,e.type.indexOf("tag-close")!==-1&&!f){var m=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(p=a.stepForward(),p){if(p.value===">"&&!f){var m=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(p.type.indexOf("tag-name")!==-1){if(t=p.value,r===t){if(e.value==="<")l++;else if(e.value==="")var E=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(r===t&&p.value==="/>"&&(l--,l<0))var y=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),D=y,E=D,m=new u(c.end.row,c.end.column,c.end.row,c.end.column+1)}}while(p&&l>=0);if(o&&m&&y&&E&&c&&D)return{openTag:new u(o.start.row,o.start.column,m.end.row,m.end.column),closeTag:new u(y.start.row,y.start.column,E.end.row,E.end.column),openTagName:c,closeTagName:D}},this.$findOpeningTag=function(a,p){var e=a.getCurrentToken(),t=p.value,r=0,l=a.getCurrentTokenRow(),o=a.getCurrentTokenColumn(),c=o+2,f=new u(l,o,l,c);a.stepForward();var m=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+p.value.length);if(p.type.indexOf("tag-close")===-1&&(p=a.stepForward()),!(!p||p.value!==">")){var y=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(p=e,l=a.getCurrentTokenRow(),o=a.getCurrentTokenColumn(),c=o+p.value.length,e=a.stepBackward(),p){if(p.type.indexOf("tag-name")!==-1){if(t===p.value)if(e.value==="<"){if(r++,r>0){var D=new u(l,o,l,c),E=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do p=a.stepForward();while(p&&p.value!==">");var b=new u(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else e.value===""){for(var g=0,S=e;S;){if(S.type.indexOf("tag-name")!==-1&&S.value===t){r--;break}else if(S.value==="<")break;S=a.stepBackward(),g++}for(var T=0;Tw&&(this.$docRowCache.splice(w,C),this.$screenRowCache.splice(w,C))},$.prototype.$getRowCacheIndex=function(A,C){for(var w=0,x=A.length-1;w<=x;){var I=w+x>>1,F=A[I];if(C>F)w=I+1;else if(C=C));F++);return x=w[F],x?(x.index=F,x.start=I-x.value.length,x):null},$.prototype.setUndoManager=function(A){if(this.$undoManager=A,this.$informUndoManager&&this.$informUndoManager.cancel(),A){var C=this;A.addSession(this),this.$syncInformUndoManager=function(){C.$informUndoManager.cancel(),C.mergeUndoDeltas=!1},this.$informUndoManager=u.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},$.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},$.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},$.prototype.getTabString=function(){return this.getUseSoftTabs()?u.stringRepeat(" ",this.getTabSize()):" "},$.prototype.setUseSoftTabs=function(A){this.setOption("useSoftTabs",A)},$.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},$.prototype.setTabSize=function(A){this.setOption("tabSize",A)},$.prototype.getTabSize=function(){return this.$tabSize},$.prototype.isTabStop=function(A){return this.$useSoftTabs&&A.column%this.$tabSize===0},$.prototype.setNavigateWithinSoftTabs=function(A){this.setOption("navigateWithinSoftTabs",A)},$.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},$.prototype.setOverwrite=function(A){this.setOption("overwrite",A)},$.prototype.getOverwrite=function(){return this.$overwrite},$.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},$.prototype.addGutterDecoration=function(A,C){this.$decorations[A]||(this.$decorations[A]=""),this.$decorations[A]+=" "+C,this._signal("changeBreakpoint",{})},$.prototype.removeGutterCustomWidget=function(A){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(A)},$.prototype.addGutterCustomWidget=function(A,C){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(A,C)},$.prototype.removeGutterDecoration=function(A,C){this.$decorations[A]=(this.$decorations[A]||"").replace(" "+C,""),this._signal("changeBreakpoint",{})},$.prototype.getBreakpoints=function(){return this.$breakpoints},$.prototype.setBreakpoints=function(A){this.$breakpoints=[];for(var C=0;C0&&(x=!!w.charAt(C-1).match(this.tokenRe)),x||(x=!!w.charAt(C).match(this.tokenRe)),x)var I=this.tokenRe;else if(/^\s+$/.test(w.slice(C-1,C+1)))var I=/\s/;else var I=this.nonTokenRe;var F=C;if(F>0){do F--;while(F>=0&&w.charAt(F).match(I));F++}for(var R=C;RA&&(A=C.screenWidth)}),this.lineWidgetWidth=A},$.prototype.$computeWidth=function(A){if(this.$modified||A){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var C=this.doc.getAllLines(),w=this.$rowLengthCache,x=0,I=0,F=this.$foldData[I],R=F?F.start.row:1/0,B=C.length,P=0;PR){if(P=F.end.row+1,P>=B)break;F=this.$foldData[I++],R=F?F.start.row:1/0}w[P]==null&&(w[P]=this.$getStringScreenWidth(C[P])[0]),w[P]>x&&(x=w[P])}this.screenWidth=x}},$.prototype.getLine=function(A){return this.doc.getLine(A)},$.prototype.getLines=function(A,C){return this.doc.getLines(A,C)},$.prototype.getLength=function(){return this.doc.getLength()},$.prototype.getTextRange=function(A){return this.doc.getTextRange(A||this.selection.getRange())},$.prototype.insert=function(A,C){return this.doc.insert(A,C)},$.prototype.remove=function(A){return this.doc.remove(A)},$.prototype.removeFullLines=function(A,C){return this.doc.removeFullLines(A,C)},$.prototype.undoChanges=function(A,C){if(A.length){this.$fromUndo=!0;for(var w=A.length-1;w!=-1;w--){var x=A[w];x.action=="insert"||x.action=="remove"?this.doc.revertDelta(x):x.folds&&this.addFolds(x.folds)}!C&&this.$undoSelect&&(A.selectionBefore?this.selection.fromJSON(A.selectionBefore):this.selection.setRange(this.$getUndoSelection(A,!0))),this.$fromUndo=!1}},$.prototype.redoChanges=function(A,C){if(A.length){this.$fromUndo=!0;for(var w=0;wA.end.column&&(F.start.column+=B),F.end.row==A.end.row&&F.end.column>A.end.column&&(F.end.column+=B)),R&&F.start.row>=A.end.row&&(F.start.row+=R,F.end.row+=R)}if(F.end=this.insert(F.start,x),I.length){var P=A.start,V=F.start,R=V.row-P.row,B=V.column-P.column;this.addFolds(I.map(function(U){return U=U.clone(),U.start.row==P.row&&(U.start.column+=B),U.end.row==P.row&&(U.end.column+=B),U.start.row+=R,U.end.row+=R,U}))}return F},$.prototype.indentRows=function(A,C,w){w=w.replace(/\t/g,this.getTabString());for(var x=A;x<=C;x++)this.doc.insertInLine({row:x,column:0},w)},$.prototype.outdentRows=function(A){for(var C=A.collapseRows(),w=new r(0,0,0,0),x=this.getTabSize(),I=C.start.row;I<=C.end.row;++I){var F=this.getLine(I);w.start.row=I,w.end.row=I;for(var R=0;R0){var x=this.getRowFoldEnd(C+w);if(x>this.doc.getLength()-1)return 0;var I=x-C}else{A=this.$clipRowToDocument(A),C=this.$clipRowToDocument(C);var I=C-A+1}var F=new r(A,0,C,Number.MAX_VALUE),R=this.getFoldsInRange(F).map(function(P){return P=P.clone(),P.start.row+=I,P.end.row+=I,P}),B=w==0?this.doc.getLines(A,C):this.doc.removeFullLines(A,C);return this.doc.insertFullLines(A+I,B),R.length&&this.addFolds(R),I},$.prototype.moveLinesUp=function(A,C){return this.$moveLines(A,C,-1)},$.prototype.moveLinesDown=function(A,C){return this.$moveLines(A,C,1)},$.prototype.duplicateLines=function(A,C){return this.$moveLines(A,C,0)},$.prototype.$clipRowToDocument=function(A){return Math.max(0,Math.min(A,this.doc.getLength()-1))},$.prototype.$clipColumnToRow=function(A,C){return C<0?0:Math.min(this.doc.getLine(A).length,C)},$.prototype.$clipPositionToDocument=function(A,C){if(C=Math.max(0,C),A<0)A=0,C=0;else{var w=this.doc.getLength();A>=w?(A=w-1,C=this.doc.getLine(w-1).length):C=Math.min(this.doc.getLine(A).length,C)}return{row:A,column:C}},$.prototype.$clipRangeToDocument=function(A){A.start.row<0?(A.start.row=0,A.start.column=0):A.start.column=this.$clipColumnToRow(A.start.row,A.start.column);var C=this.doc.getLength()-1;return A.end.row>C?(A.end.row=C,A.end.column=this.doc.getLine(C).length):A.end.column=this.$clipColumnToRow(A.end.row,A.end.column),A},$.prototype.setUseWrapMode=function(A){if(A!=this.$useWrapMode){if(this.$useWrapMode=A,this.$modified=!0,this.$resetRowCache(0),A){var C=this.getLength();this.$wrapData=Array(C),this.$updateWrapData(0,C-1)}this._signal("changeWrapMode")}},$.prototype.getUseWrapMode=function(){return this.$useWrapMode},$.prototype.setWrapLimitRange=function(A,C){(this.$wrapLimitRange.min!==A||this.$wrapLimitRange.max!==C)&&(this.$wrapLimitRange={min:A,max:C},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},$.prototype.adjustWrapLimit=function(A,C){var w=this.$wrapLimitRange;w.max<0&&(w={min:C,max:C});var x=this.$constrainWrapLimit(A,w.min,w.max);return x!=this.$wrapLimit&&x>1?(this.$wrapLimit=x,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},$.prototype.$constrainWrapLimit=function(A,C,w){return C&&(A=Math.max(C,A)),w&&(A=Math.min(w,A)),A},$.prototype.getWrapLimit=function(){return this.$wrapLimit},$.prototype.setWrapLimit=function(A){this.setWrapLimitRange(A,A)},$.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},$.prototype.$updateInternalDataOnChange=function(A){var C=this.$useWrapMode,w=A.action,x=A.start,I=A.end,F=x.row,R=I.row,B=R-F,P=null;if(this.$updating=!0,B!=0)if(w==="remove"){this[C?"$wrapData":"$rowLengthCache"].splice(F,B);var V=this.$foldData;P=this.getFoldsInRange(A),this.removeFolds(P);var W=this.getFoldLine(I.row),H=0;if(W){W.addRemoveChars(I.row,I.column,x.column-I.column),W.shiftRow(-B);var U=this.getFoldLine(F);U&&U!==W&&(U.merge(W),W=U),H=V.indexOf(W)+1}for(H;H=I.row&&W.shiftRow(-B)}R=F}else{var G=Array(B);G.unshift(F,0);var Y=C?this.$wrapData:this.$rowLengthCache;Y.splice.apply(Y,G);var V=this.$foldData,W=this.getFoldLine(F),H=0;if(W){var Q=W.range.compareInside(x.row,x.column);Q==0?(W=W.split(x.row,x.column),W&&(W.shiftRow(B),W.addRemoveChars(R,0,I.column-x.column))):Q==-1&&(W.addRemoveChars(F,0,I.column-x.column),W.shiftRow(B)),H=V.indexOf(W)+1}for(H;H=F&&W.shiftRow(B)}}else{B=Math.abs(A.start.column-A.end.column),w==="remove"&&(P=this.getFoldsInRange(A),this.removeFolds(P),B=-B);var W=this.getFoldLine(F);W&&W.addRemoveChars(F,x.column,B)}return C&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,C?this.$updateWrapData(F,R):this.$updateRowLengthCache(F,R),P},$.prototype.$updateRowLengthCache=function(A,C){this.$rowLengthCache[A]=null,this.$rowLengthCache[C]=null},$.prototype.$updateWrapData=function(A,C){var w=this.doc.getAllLines(),x=this.getTabSize(),I=this.$wrapData,F=this.$wrapLimit,R,B,P=A;for(C=Math.min(C,w.length-1);P<=C;)B=this.getFoldLine(P,B),B?(R=[],B.walk(function(V,W,H,U){var G;if(V!=null){G=this.$getDisplayTokens(V,R.length),G[0]=b;for(var Y=1;YC-U;){var G=F+C-U;if(A[G-1]>=T&&A[G]>=T){H(G);continue}if(A[G]==b||A[G]==g){for(G;G!=F-1&&A[G]!=b;G--);if(G>F){H(G);continue}for(G=F+C,G;G>2)),F-1);G>Y&&A[G]Y&&A[G]Y&&A[G]==S;)G--}else for(;G>Y&&A[G]Y){H(++G);continue}G=F+C,A[G]==E&&G--,H(G-U)}return x},$.prototype.$getDisplayTokens=function(A,C){var w=[],x;C=C||0;for(var I=0;I39&&F<48||F>57&&F<64?w.push(S):F>=4352&&O(F)?w.push(D,E):w.push(D)}return w},$.prototype.$getStringScreenWidth=function(A,C,w){if(C==0)return[0,0];C==null&&(C=1/0),w=w||0;var x,I;for(I=0;I=4352&&O(x)?w+=2:w+=1,!(w>C));I++);return[w,I]},$.prototype.getRowLength=function(A){var C=1;return this.lineWidgets&&(C+=this.lineWidgets[A]&&this.lineWidgets[A].rowCount||0),!this.$useWrapMode||!this.$wrapData[A]?C:this.$wrapData[A].length+C},$.prototype.getRowLineCount=function(A){return!this.$useWrapMode||!this.$wrapData[A]?1:this.$wrapData[A].length+1},$.prototype.getRowWrapIndent=function(A){if(this.$useWrapMode){var C=this.screenToDocumentPosition(A,Number.MAX_VALUE),w=this.$wrapData[C.row];return w.length&&w[0]=0)var B=V[W],I=this.$docRowCache[W],U=A>V[H-1];else var U=!H;for(var G=this.getLength()-1,Y=this.getNextFoldLine(I),Q=Y?Y.start.row:1/0;B<=A&&(P=this.getRowLength(I),!(B+P>A||I>=G));)B+=P,I++,I>Q&&(I=Y.end.row+1,Y=this.getNextFoldLine(I,Y),Q=Y?Y.start.row:1/0),U&&(this.$docRowCache.push(I),this.$screenRowCache.push(B));if(Y&&Y.start.row<=I)x=this.getFoldDisplayLine(Y),I=Y.start.row;else{if(B+P<=A||I>G)return{row:G,column:this.getLine(G).length};x=this.getLine(I),Y=null}var ee=0,ne=Math.floor(A-B);if(this.$useWrapMode){var se=this.$wrapData[I];se&&(R=se[ne],ne>0&&se.length&&(ee=se.indent,F=se[ne-1]||se[se.length-1],x=x.substring(F)))}return w!==void 0&&this.$bidiHandler.isBidiRow(B+ne,I,ne)&&(C=this.$bidiHandler.offsetToCol(w)),F+=this.$getStringScreenWidth(x,C-ee)[1],this.$useWrapMode&&F>=R&&(F=R-1),Y?Y.idxToPosition(F):{row:I,column:F}},$.prototype.documentToScreenPosition=function(A,C){if(typeof C>"u")var w=this.$clipPositionToDocument(A.row,A.column);else w=this.$clipPositionToDocument(A,C);A=w.row,C=w.column;var x=0,I=null,F=null;F=this.getFoldAt(A,C,1),F&&(A=F.start.row,C=F.start.column);var R,B=0,P=this.$docRowCache,V=this.$getRowCacheIndex(P,A),W=P.length;if(W&&V>=0)var B=P[V],x=this.$screenRowCache[V],H=A>P[W-1];else var H=!W;for(var U=this.getNextFoldLine(B),G=U?U.start.row:1/0;B=G){if(R=U.end.row+1,R>A)break;U=this.getNextFoldLine(R,U),G=U?U.start.row:1/0}else R=B+1;x+=this.getRowLength(B),B=R,H&&(this.$docRowCache.push(B),this.$screenRowCache.push(x))}var Y="";U&&B>=G?(Y=this.getFoldDisplayLine(U,A,C),I=U.start.row):(Y=this.getLine(A).substring(0,C),I=A);var Q=0;if(this.$useWrapMode){var ee=this.$wrapData[I];if(ee){for(var ne=0;Y.length>=ee[ne];)x++,ne++;Y=Y.substring(ee[ne-1]||0,Y.length),Q=ne>0?ee.indent:0}}return this.lineWidgets&&this.lineWidgets[B]&&this.lineWidgets[B].rowsAbove&&(x+=this.lineWidgets[B].rowsAbove),{row:x,column:Q+this.$getStringScreenWidth(Y)[0]}},$.prototype.documentToScreenColumn=function(A,C){return this.documentToScreenPosition(A,C).column},$.prototype.documentToScreenRow=function(A,C){return this.documentToScreenPosition(A,C).row},$.prototype.getScreenLength=function(){var A=0,C=null;if(this.$useWrapMode)for(var I=this.$wrapData.length,F=0,x=0,C=this.$foldData[x++],R=C?C.start.row:1/0;FR&&(F=C.end.row+1,C=this.$foldData[x++],R=C?C.start.row:1/0)}else{A=this.getLength();for(var w=this.$foldData,x=0;xw));F++);return[x,F]})},$.prototype.getPrecedingCharacter=function(){var A=this.selection.getCursor();if(A.column===0)return A.row===0?"":this.doc.getNewLineCharacter();var C=this.getLine(A.row);return C[A.column-1]},$.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},$}();y.$uid=0,y.prototype.$modes=a.$modes,y.prototype.getValue=y.prototype.toString,y.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},y.prototype.$overwrite=!1,y.prototype.$mode=null,y.prototype.$modeId=null,y.prototype.$scrollTop=0,y.prototype.$scrollLeft=0,y.prototype.$wrapLimit=80,y.prototype.$useWrapMode=!1,y.prototype.$wrapLimitRange={min:null,max:null},y.prototype.lineWidgets=null,y.prototype.isFullWidth=O,s.implement(y.prototype,p);var D=1,E=2,b=3,g=4,S=9,T=10,k=11,_=12;function O($){return $<4352?!1:$>=4352&&$<=4447||$>=4515&&$<=4519||$>=4602&&$<=4607||$>=9001&&$<=9002||$>=11904&&$<=11929||$>=11931&&$<=12019||$>=12032&&$<=12245||$>=12272&&$<=12283||$>=12288&&$<=12350||$>=12353&&$<=12438||$>=12441&&$<=12543||$>=12549&&$<=12589||$>=12593&&$<=12686||$>=12688&&$<=12730||$>=12736&&$<=12771||$>=12784&&$<=12830||$>=12832&&$<=12871||$>=12880&&$<=13054||$>=13056&&$<=19903||$>=19968&&$<=42124||$>=42128&&$<=42182||$>=43360&&$<=43388||$>=44032&&$<=55203||$>=55216&&$<=55238||$>=55243&&$<=55291||$>=63744&&$<=64255||$>=65040&&$<=65049||$>=65072&&$<=65106||$>=65108&&$<=65126||$>=65128&&$<=65131||$>=65281&&$<=65376||$>=65504&&$<=65510}i("./edit_session/folding").Folding.call(y.prototype),i("./edit_session/bracket_match").BracketMatch.call(y.prototype),a.defineOptions(y.prototype,"session",{wrap:{set:function($){if(!$||$=="off"?$=!1:$=="free"?$=!0:$=="printMargin"?$=-1:typeof $=="string"&&($=parseInt($,10)||!1),this.$wrap!=$)if(this.$wrap=$,!$)this.setUseWrapMode(!1);else{var A=typeof $=="number"?$:null;this.setWrapLimitRange(A,A),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function($){$=$=="auto"?this.$mode.type!="text":$!="text",$!=this.$wrapAsCode&&(this.$wrapAsCode=$,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function($){this.$useWorker=$,this.$stopWorker(),$&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function($){$=parseInt($),$>0&&this.$tabSize!==$&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=$,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function($){this.setFoldStyle($)},handlesSet:!0},overwrite:{set:function($){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function($){this.doc.setNewLineMode($)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function($){this.setMode($)},get:function(){return this.$modeId},handlesSet:!0}}),h.EditSession=y}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(i,h,v){var s=i("./lib/lang"),u=i("./lib/oop"),d=i("./range").Range,a=function(){function r(){this.$options={}}return r.prototype.set=function(l){return u.mixin(this.$options,l),this},r.prototype.getOptions=function(){return s.copyObject(this.$options)},r.prototype.setOptions=function(l){this.$options=l},r.prototype.find=function(l){var o=this.$options,c=this.$matchIterator(l,o);if(!c)return!1;var f=null;return c.forEach(function(m,y,D,E){return f=new d(m,y,D,E),y==E&&o.start&&o.start.start&&o.skipCurrent!=!1&&f.isEqual(o.start)?(f=null,!1):!0}),f},r.prototype.findAll=function(l){var o=this.$options;if(!o.needle)return[];this.$assembleRegExp(o);var c=o.range,f=c?l.getLines(c.start.row,c.end.row):l.doc.getAllLines(),m=[],y=o.re;if(o.$isMultiLine){var D=y.length,E=f.length-D,b;e:for(var g=y.offset||0;g<=E;g++){for(var S=0;S_||(m.push(b=new d(g,_,g+D-1,O)),D>2&&(g=g+D-2))}}else for(var $,A=0;AA&&(A=w),m.push(new d($.startRow,$.startCol,$.endRow,$.endCol))}}else{$=s.getMatchOffsets(f[A],y);for(var S=0;S<$.length;S++){var x=$[S];m.push(new d(A,x.offset,A,x.offset+x.length))}}if(c){for(var I=c.start.column,F=c.end.column,A=0,S=m.length-1;AF&&m[S].end.row==R;)S--;for(m=m.slice(A,S+1),A=0,S=m.length;A=m){c+="\\";break}var D=l.charCodeAt(f);switch(D){case o.Backslash:c+="\\";break;case o.n:c+=` +`;break;case o.t:c+=" ";break}continue}if(y===o.DollarSign){if(f++,f>=m){c+="$";break}var E=l.charCodeAt(f);if(E===o.DollarSign){c+="$$";continue}if(E===o.Digit0||E===o.Ampersand){c+="$&";continue}if(o.Digit1<=E&&E<=o.Digit9){c+="$"+l[f];continue}}c+=l[f]}return c||l},r.prototype.replace=function(l,o){var c=this.$options,f=this.$assembleRegExp(c);if(c.$isMultiLine)return o;if(f){var m=this.$isMultilineSearch(c);m&&(l=l.replace(/\r\n|\r|\n/g,` +`));var y=f.exec(l);if(!y||!m&&y[0].length!=l.length)return null;if(o=c.regExp?this.parseReplaceString(o):o.replace(/\$/g,"$$$$"),o=l.replace(f,o),c.preserveCase){o=o.split("");for(var D=Math.min(l.length,l.length);D--;){var E=l[D];E&&E.toLowerCase()!=E?o[D]=o[D].toUpperCase():o[D]=o[D].toLowerCase()}o=o.join("")}return o}},r.prototype.$assembleRegExp=function(l,o){if(l.needle instanceof RegExp)return l.re=l.needle;var c=l.needle;if(!l.needle)return l.re=!1;l.regExp||(c=s.escapeRegExp(c));var f=l.caseSensitive?"gm":"gmi";try{new RegExp(c,"u"),l.$supportsUnicodeFlag=!0,f+="u"}catch{l.$supportsUnicodeFlag=!1}if(l.wholeWord&&(c=p(c,l)),l.$isMultiLine=!o&&/[\n\r]/.test(c),l.$isMultiLine)return l.re=this.$assembleMultilineRegExp(c,f);try{var m=new RegExp(c,f)}catch{m=!1}return l.re=m},r.prototype.$assembleMultilineRegExp=function(l,o){for(var c=l.replace(/\r\n|\r|\n/g,`$ ^`).split(` -`),f=[],m=0;mf);E++){var b=l.getLine(D++);m=m==null?b:m+` -`+b}var g=s.exec(m);if(s.lastIndex=0,g){var S=m.slice(0,g.index).split(` +`),f=[],m=0;mf);E++){var b=l.getLine(D++);m=m==null?b:m+` +`+b}var g=o.exec(m);if(o.lastIndex=0,g){var S=m.slice(0,g.index).split(` `),T=g[0].split(` -`),k=c+S.length-1,_=S[S.length-1].length,O=k+T.length-1,$=T.length==1?_+T[0].length:T[T.length-1].length;return{startRow:k,startCol:_,endRow:O,endCol:$}}}return null},r.prototype.$multiLineBackward=function(l,s,c,f,m){for(var y,D=t(l,f),E=l.getLine(f).length-c,b=f;b>=m;){for(var g=0;g=m;g++){var S=l.getLine(b--);y=y==null?S:S+` -`+y}var T=e(y,s,E);if(T){var k=y.slice(0,T.index).split(` +`),k=c+S.length-1,_=S[S.length-1].length,O=k+T.length-1,$=T.length==1?_+T[0].length:T[T.length-1].length;return{startRow:k,startCol:_,endRow:O,endCol:$}}}return null},r.prototype.$multiLineBackward=function(l,o,c,f,m){for(var y,D=t(l,f),E=l.getLine(f).length-c,b=f;b>=m;){for(var g=0;g=m;g++){var S=l.getLine(b--);y=y==null?S:S+` +`+y}var T=e(y,o,E);if(T){var k=y.slice(0,T.index).split(` `),_=T[0].split(` -`),O=b+k.length,$=k[k.length-1].length,A=O+_.length-1,C=_.length==1?$+_[0].length:_[_.length-1].length;return{startRow:O,startCol:$,endRow:A,endCol:C}}}return null},r.prototype.$matchIterator=function(l,s){var c=this.$assembleRegExp(s);if(!c)return!1;var f=this.$isMultilineSearch(s),m=this.$multiLineForward,y=this.$multiLineBackward,D=s.backwards==!0,E=s.skipCurrent!=!1,b=c.unicode,g=s.range,S=s.start;S||(S=g?g[D?"end":"start"]:l.selection.getRange()),S.start&&(S=S[E!=D?"end":"start"]);var T=g?g.start.row:0,k=g?g.end.row:l.getLength()-1;if(D)var _=function(A){var C=S.row;if(!$(C,S.column,A)){for(C--;C>=T;C--)if($(C,Number.MAX_VALUE,A))return;if(s.wrap!=!1){for(C=k,T=S.row;C>=T;C--)if($(C,Number.MAX_VALUE,A))return}}};else var _=function(C){var w=S.row;if(!$(w,S.column,C)){for(w=w+1;w<=k;w++)if($(w,0,C))return;if(s.wrap!=!1){for(w=T,k=S.row;w<=k;w++)if($(w,0,C))return}}};if(s.$isMultiLine)var O=c.length,$=function(A,C,w){var x=D?A-O+1:A;if(!(x<0||x+O>l.getLength())){var I=l.getLine(x),F=I.search(c[0]);if(!(!D&&FC)&&w(x,F,x+O-1,B))return!0}}};else if(D)var $=function(C,w,x){if(f){var I=y(l,c,w,C,T);if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else{var F=l.getLine(C),R=[],B,P=0;for(c.lastIndex=0;B=c.exec(F);){var V=B[0].length;if(P=B.index,!V){if(P>=F.length)break;c.lastIndex=P+=o.skipEmptyMatch(F,P,b)}if(B.index+V>w)break;R.push(B.index,V)}for(var W=R.length-1;W>=0;W-=2){var H=R[W-1],V=R[W];if(x(C,H,C,H+V))return!0}}};else var $=function(C,w,x){if(c.lastIndex=w,f){var I=m(l,c,C,k);if(I){var F=I.endRow<=k?I.endRow-1:k;F>C&&(C=F)}if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else for(var R=l.getLine(C),B,P;P=c.exec(R);){var V=P[0].length;if(B=P.index,x(C,B,C,B+V))return!0;if(!V&&(c.lastIndex=B+=o.skipEmptyMatch(R,B,b),B>=R.length))return!1}};return{forEach:_}},r}();function d(r,l){var s=o.supportsLookbehind();function c(D,E){E===void 0&&(E=!0);var b=s&&l.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return b.test(D)||l.regExp?s&&l.$supportsUnicodeFlag?E?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var f=Array.from(r),m=f[0],y=f[f.length-1];return c(m)+r+c(y,!1)}function e(r,l,s){for(var c=null,f=0;f<=r.length;){l.lastIndex=f;var m=l.exec(r);if(!m)break;var y=m.index+m[0].length;if(y>r.length-s)break;(!c||y>c.index+c[0].length)&&(c=m),f=m.index+1}return c}function t(r,l){var s=5e3,c={row:l,column:0},f=r.doc.positionToIndex(c),m=f+s,y=r.doc.indexToPosition(m),D=y.row;return D+1}u.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(i,u,v){var o=this&&this.__extends||function(){var r=function(l,s){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,f){c.__proto__=f}||function(c,f){for(var m in f)Object.prototype.hasOwnProperty.call(f,m)&&(c[m]=f[m])},r(l,s)};return function(l,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");r(l,s);function c(){this.constructor=l}l.prototype=s===null?Object.create(s):(c.prototype=s.prototype,new c)}}(),h=i("../lib/keys"),p=i("../lib/useragent"),a=h.KEY_MODS,d=function(){function r(l,s){this.$init(l,s,!1)}return r.prototype.$init=function(l,s,c){this.platform=s||(p.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(l),this.$singleCommand=c},r.prototype.addCommand=function(l){this.commands[l.name]&&this.removeCommand(l),this.commands[l.name]=l,l.bindKey&&this._buildKeyHash(l)},r.prototype.removeCommand=function(l,s){var c=l&&(typeof l=="string"?l:l.name);l=this.commands[c],s||delete this.commands[c];var f=this.commandKeyBinding;for(var m in f){var y=f[m];if(y==l)delete f[m];else if(Array.isArray(y)){var D=y.indexOf(l);D!=-1&&(y.splice(D,1),y.length==1&&(f[m]=y[0]))}}},r.prototype.bindKey=function(l,s,c){if(typeof l=="object"&&l&&(c==null&&(c=l.position),l=l[this.platform]),!!l){if(typeof s=="function")return this.addCommand({exec:s,bindKey:l,name:s.name||l});l.split("|").forEach(function(f){var m="";if(f.indexOf(" ")!=-1){var y=f.split(/\s+/);f=y.pop(),y.forEach(function(b){var g=this.parseKeys(b),S=a[g.hashId]+g.key;m+=(m?" ":"")+S,this._addCommandToBinding(m,"chainKeys")},this),m+=" "}var D=this.parseKeys(f),E=a[D.hashId]+D.key;this._addCommandToBinding(m+E,s,c)},this)}},r.prototype._addCommandToBinding=function(l,s,c){var f=this.commandKeyBinding,m;if(!s)delete f[l];else if(!f[l]||this.$singleCommand)f[l]=s;else{Array.isArray(f[l])?(m=f[l].indexOf(s))!=-1&&f[l].splice(m,1):f[l]=[f[l]],typeof c!="number"&&(c=e(s));var y=f[l];for(m=0;mc)break}y.splice(m,0,s)}},r.prototype.addCommands=function(l){l&&Object.keys(l).forEach(function(s){var c=l[s];if(c){if(typeof c=="string")return this.bindKey(c,s);typeof c=="function"&&(c={exec:c}),typeof c=="object"&&(c.name||(c.name=s),this.addCommand(c))}},this)},r.prototype.removeCommands=function(l){Object.keys(l).forEach(function(s){this.removeCommand(l[s])},this)},r.prototype.bindKeys=function(l){Object.keys(l).forEach(function(s){this.bindKey(s,l[s])},this)},r.prototype._buildKeyHash=function(l){this.bindKey(l.bindKey,l)},r.prototype.parseKeys=function(l){var s=l.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(E){return E}),c=s.pop(),f=h[c];if(h.FUNCTION_KEYS[f])c=h.FUNCTION_KEYS[f].toLowerCase();else if(s.length){if(s.length==1&&s[0]=="shift")return{key:c.toUpperCase(),hashId:-1}}else return{key:c,hashId:-1};for(var m=0,y=s.length;y--;){var D=h.KEY_MODS[s[y]];if(D==null)return typeof console<"u"&&console.error("invalid modifier "+s[y]+" in "+l),!1;m|=D}return{key:c,hashId:m}},r.prototype.findKeyCommand=function(l,s){var c=a[l]+s;return this.commandKeyBinding[c]},r.prototype.handleKeyboard=function(l,s,c,f){if(!(f<0)){var m=a[s]+c,y=this.commandKeyBinding[m];return l.$keyChain&&(l.$keyChain+=" "+m,y=this.commandKeyBinding[l.$keyChain]||y),y&&(y=="chainKeys"||y[y.length-1]=="chainKeys")?(l.$keyChain=l.$keyChain||m,{command:"null"}):(l.$keyChain&&((!s||s==4)&&c.length==1?l.$keyChain=l.$keyChain.slice(0,-m.length-1):(s==-1||f>0)&&(l.$keyChain="")),{command:y})}},r.prototype.getStatusText=function(l,s){return s.$keyChain||""},r}();function e(r){return typeof r=="object"&&r.bindKey&&r.bindKey.position||(r.isDefault?-100:0)}var t=function(r){o(l,r);function l(s,c){var f=r.call(this,s,c)||this;return f.$singleCommand=!0,f}return l}(d);t.call=function(r,l,s){d.prototype.$init.call(r,l,s,!0)},d.call=function(r,l,s){d.prototype.$init.call(r,l,s,!1)},u.HashHandler=t,u.MultiHashHandler=d}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,s){l.__proto__=s}||function(l,s){for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(l[c]=s[c])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function l(){this.constructor=t}t.prototype=r===null?Object.create(r):(l.prototype=r.prototype,new l)}}(),h=i("../lib/oop"),p=i("../keyboard/hash_handler").MultiHashHandler,a=i("../lib/event_emitter").EventEmitter,d=function(e){o(t,e);function t(r,l){var s=e.call(this,l,r)||this;return s.byName=s.commands,s.setDefaultHandler("exec",function(c){return c.args?c.command.exec(c.editor,c.args,c.event,!1):c.command.exec(c.editor,{},c.event,!0)}),s}return t.prototype.exec=function(r,l,s){if(Array.isArray(r)){for(var c=r.length;c--;)if(this.exec(r[c],l,s))return!0;return!1}typeof r=="string"&&(r=this.commands[r]);var f={editor:l,command:r,args:s};return this.canExecute(r,l)?(f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1):(this._signal("commandUnavailable",f),!1)},t.prototype.canExecute=function(r,l){return typeof r=="string"&&(r=this.commands[r]),!(!r||l&&l.$readOnly&&!r.readOnly||this.$checkCommandState!=!1&&r.isAvailable&&!r.isAvailable(l))},t.prototype.toggleRecording=function(r){if(!this.$inReplay)return r&&r._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(l){this.macro.push([l.command,l.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(r){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(r);try{this.$inReplay=!0,this.macro.forEach(function(l){typeof l=="string"?this.exec(l,r):this.exec(l[0],r,l[1])},this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(r){return r.map(function(l){return typeof l[0]!="string"&&(l[0]=l[0].name),l[1]||(l=l[0]),l})},t}(p);h.implement(d.prototype,a),u.CommandManager=d}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(i,u,v){var o=i("../lib/lang"),h=i("../config"),p=i("../range").Range;function a(e,t){return{win:e,mac:t}}u.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){h.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(e){h.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){h.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){h.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),r=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",r),r.isEmpty()||e.session.remove(r),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){h.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(e){if(e.selection.isEmpty())e.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(e){e.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),r=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),l=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(r.row).length,c=e.session.doc.getTextRange(e.selection.getRange()),f=c.replace(/\n\s*/," ").length,m=e.session.doc.getLine(r.row),y=r.row+1;y<=l.row+1;y++){var D=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(y)));D.length!==0&&(D=" "+D),m+=D}l.row+10?(e.selection.moveCursorTo(r.row,r.column),e.selection.selectTo(r.row,r.column+f)):(s=e.session.doc.getLine(r.row).length>s?s+1:s,e.selection.moveCursorTo(r.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,r=e.session.doc.getLine(t).length,l=e.selection.rangeList.ranges,s=[];l.length<1&&(l=[e.selection.getRange()]);for(var c=0;c=T;C--)if($(C,Number.MAX_VALUE,A))return;if(o.wrap!=!1){for(C=k,T=S.row;C>=T;C--)if($(C,Number.MAX_VALUE,A))return}}};else var _=function(C){var w=S.row;if(!$(w,S.column,C)){for(w=w+1;w<=k;w++)if($(w,0,C))return;if(o.wrap!=!1){for(w=T,k=S.row;w<=k;w++)if($(w,0,C))return}}};if(o.$isMultiLine)var O=c.length,$=function(A,C,w){var x=D?A-O+1:A;if(!(x<0||x+O>l.getLength())){var I=l.getLine(x),F=I.search(c[0]);if(!(!D&&FC)&&w(x,F,x+O-1,B))return!0}}};else if(D)var $=function(C,w,x){if(f){var I=y(l,c,w,C,T);if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else{var F=l.getLine(C),R=[],B,P=0;for(c.lastIndex=0;B=c.exec(F);){var V=B[0].length;if(P=B.index,!V){if(P>=F.length)break;c.lastIndex=P+=s.skipEmptyMatch(F,P,b)}if(B.index+V>w)break;R.push(B.index,V)}for(var W=R.length-1;W>=0;W-=2){var H=R[W-1],V=R[W];if(x(C,H,C,H+V))return!0}}};else var $=function(C,w,x){if(c.lastIndex=w,f){var I=m(l,c,C,k);if(I){var F=I.endRow<=k?I.endRow-1:k;F>C&&(C=F)}if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else for(var R=l.getLine(C),B,P;P=c.exec(R);){var V=P[0].length;if(B=P.index,x(C,B,C,B+V))return!0;if(!V&&(c.lastIndex=B+=s.skipEmptyMatch(R,B,b),B>=R.length))return!1}};return{forEach:_}},r}();function p(r,l){var o=s.supportsLookbehind();function c(D,E){E===void 0&&(E=!0);var b=o&&l.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return b.test(D)||l.regExp?o&&l.$supportsUnicodeFlag?E?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var f=Array.from(r),m=f[0],y=f[f.length-1];return c(m)+r+c(y,!1)}function e(r,l,o){for(var c=null,f=0;f<=r.length;){l.lastIndex=f;var m=l.exec(r);if(!m)break;var y=m.index+m[0].length;if(y>r.length-o)break;(!c||y>c.index+c[0].length)&&(c=m),f=m.index+1}return c}function t(r,l){var o=5e3,c={row:l,column:0},f=r.doc.positionToIndex(c),m=f+o,y=r.doc.indexToPosition(m),D=y.row;return D+1}h.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(i,h,v){var s=this&&this.__extends||function(){var r=function(l,o){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,f){c.__proto__=f}||function(c,f){for(var m in f)Object.prototype.hasOwnProperty.call(f,m)&&(c[m]=f[m])},r(l,o)};return function(l,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");r(l,o);function c(){this.constructor=l}l.prototype=o===null?Object.create(o):(c.prototype=o.prototype,new c)}}(),u=i("../lib/keys"),d=i("../lib/useragent"),a=u.KEY_MODS,p=function(){function r(l,o){this.$init(l,o,!1)}return r.prototype.$init=function(l,o,c){this.platform=o||(d.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(l),this.$singleCommand=c},r.prototype.addCommand=function(l){this.commands[l.name]&&this.removeCommand(l),this.commands[l.name]=l,l.bindKey&&this._buildKeyHash(l)},r.prototype.removeCommand=function(l,o){var c=l&&(typeof l=="string"?l:l.name);l=this.commands[c],o||delete this.commands[c];var f=this.commandKeyBinding;for(var m in f){var y=f[m];if(y==l)delete f[m];else if(Array.isArray(y)){var D=y.indexOf(l);D!=-1&&(y.splice(D,1),y.length==1&&(f[m]=y[0]))}}},r.prototype.bindKey=function(l,o,c){if(typeof l=="object"&&l&&(c==null&&(c=l.position),l=l[this.platform]),!!l){if(typeof o=="function")return this.addCommand({exec:o,bindKey:l,name:o.name||l});l.split("|").forEach(function(f){var m="";if(f.indexOf(" ")!=-1){var y=f.split(/\s+/);f=y.pop(),y.forEach(function(b){var g=this.parseKeys(b),S=a[g.hashId]+g.key;m+=(m?" ":"")+S,this._addCommandToBinding(m,"chainKeys")},this),m+=" "}var D=this.parseKeys(f),E=a[D.hashId]+D.key;this._addCommandToBinding(m+E,o,c)},this)}},r.prototype._addCommandToBinding=function(l,o,c){var f=this.commandKeyBinding,m;if(!o)delete f[l];else if(!f[l]||this.$singleCommand)f[l]=o;else{Array.isArray(f[l])?(m=f[l].indexOf(o))!=-1&&f[l].splice(m,1):f[l]=[f[l]],typeof c!="number"&&(c=e(o));var y=f[l];for(m=0;mc)break}y.splice(m,0,o)}},r.prototype.addCommands=function(l){l&&Object.keys(l).forEach(function(o){var c=l[o];if(c){if(typeof c=="string")return this.bindKey(c,o);typeof c=="function"&&(c={exec:c}),typeof c=="object"&&(c.name||(c.name=o),this.addCommand(c))}},this)},r.prototype.removeCommands=function(l){Object.keys(l).forEach(function(o){this.removeCommand(l[o])},this)},r.prototype.bindKeys=function(l){Object.keys(l).forEach(function(o){this.bindKey(o,l[o])},this)},r.prototype._buildKeyHash=function(l){this.bindKey(l.bindKey,l)},r.prototype.parseKeys=function(l){var o=l.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(E){return E}),c=o.pop(),f=u[c];if(u.FUNCTION_KEYS[f])c=u.FUNCTION_KEYS[f].toLowerCase();else if(o.length){if(o.length==1&&o[0]=="shift")return{key:c.toUpperCase(),hashId:-1}}else return{key:c,hashId:-1};for(var m=0,y=o.length;y--;){var D=u.KEY_MODS[o[y]];if(D==null)return typeof console<"u"&&console.error("invalid modifier "+o[y]+" in "+l),!1;m|=D}return{key:c,hashId:m}},r.prototype.findKeyCommand=function(l,o){var c=a[l]+o;return this.commandKeyBinding[c]},r.prototype.handleKeyboard=function(l,o,c,f){if(!(f<0)){var m=a[o]+c,y=this.commandKeyBinding[m];return l.$keyChain&&(l.$keyChain+=" "+m,y=this.commandKeyBinding[l.$keyChain]||y),y&&(y=="chainKeys"||y[y.length-1]=="chainKeys")?(l.$keyChain=l.$keyChain||m,{command:"null"}):(l.$keyChain&&((!o||o==4)&&c.length==1?l.$keyChain=l.$keyChain.slice(0,-m.length-1):(o==-1||f>0)&&(l.$keyChain="")),{command:y})}},r.prototype.getStatusText=function(l,o){return o.$keyChain||""},r}();function e(r){return typeof r=="object"&&r.bindKey&&r.bindKey.position||(r.isDefault?-100:0)}var t=function(r){s(l,r);function l(o,c){var f=r.call(this,o,c)||this;return f.$singleCommand=!0,f}return l}(p);t.call=function(r,l,o){p.prototype.$init.call(r,l,o,!0)},p.call=function(r,l,o){p.prototype.$init.call(r,l,o,!1)},h.HashHandler=t,h.MultiHashHandler=p}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(i,h,v){var s=this&&this.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,o){l.__proto__=o}||function(l,o){for(var c in o)Object.prototype.hasOwnProperty.call(o,c)&&(l[c]=o[c])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function l(){this.constructor=t}t.prototype=r===null?Object.create(r):(l.prototype=r.prototype,new l)}}(),u=i("../lib/oop"),d=i("../keyboard/hash_handler").MultiHashHandler,a=i("../lib/event_emitter").EventEmitter,p=function(e){s(t,e);function t(r,l){var o=e.call(this,l,r)||this;return o.byName=o.commands,o.setDefaultHandler("exec",function(c){return c.args?c.command.exec(c.editor,c.args,c.event,!1):c.command.exec(c.editor,{},c.event,!0)}),o}return t.prototype.exec=function(r,l,o){if(Array.isArray(r)){for(var c=r.length;c--;)if(this.exec(r[c],l,o))return!0;return!1}typeof r=="string"&&(r=this.commands[r]);var f={editor:l,command:r,args:o};return this.canExecute(r,l)?(f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1):(this._signal("commandUnavailable",f),!1)},t.prototype.canExecute=function(r,l){return typeof r=="string"&&(r=this.commands[r]),!(!r||l&&l.$readOnly&&!r.readOnly||this.$checkCommandState!=!1&&r.isAvailable&&!r.isAvailable(l))},t.prototype.toggleRecording=function(r){if(!this.$inReplay)return r&&r._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(l){this.macro.push([l.command,l.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(r){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(r);try{this.$inReplay=!0,this.macro.forEach(function(l){typeof l=="string"?this.exec(l,r):this.exec(l[0],r,l[1])},this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(r){return r.map(function(l){return typeof l[0]!="string"&&(l[0]=l[0].name),l[1]||(l=l[0]),l})},t}(d);u.implement(p.prototype,a),h.CommandManager=p}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(i,h,v){var s=i("../lib/lang"),u=i("../config"),d=i("../range").Range;function a(e,t){return{win:e,mac:t}}h.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){u.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(e){u.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){u.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){u.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),r=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",r),r.isEmpty()||e.session.remove(r),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){u.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(e){if(e.selection.isEmpty())e.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(s.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(e){e.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),r=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),l=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(r.row).length,c=e.session.doc.getTextRange(e.selection.getRange()),f=c.replace(/\n\s*/," ").length,m=e.session.doc.getLine(r.row),y=r.row+1;y<=l.row+1;y++){var D=s.stringTrimLeft(s.stringTrimRight(e.session.doc.getLine(y)));D.length!==0&&(D=" "+D),m+=D}l.row+10?(e.selection.moveCursorTo(r.row,r.column),e.selection.selectTo(r.row,r.column+f)):(o=e.session.doc.getLine(r.row).length>o?o+1:o,e.selection.moveCursorTo(r.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,r=e.session.doc.getLine(t).length,l=e.selection.rangeList.ranges,o=[];l.length<1&&(l=[e.selection.getRange()]);for(var c=0;c0||e+t=0&&this.$isCustomWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(e+t))return e+t;if(e-t>=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},d.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},d.prototype.$focusFoldWidget=function(e){if(e!=null){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},d.prototype.$focusCustomWidget=function(e){if(e!=null){var t=this.$getCustomWidget(e);t&&(t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus())}},d.prototype.$focusAnnotation=function(e){if(e!=null){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},d.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},d.prototype.$blurCustomWidget=function(e){var t=this.$getCustomWidget(e);t&&(t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur())},d.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},d.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e)||this.$isCustomWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=e,this.$isFoldWidgetVisible(e)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex);return}},d.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}},d.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=C.length&&(C=void 0),{value:C&&C[I++],done:!C}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")},h=i("./lib/oop"),p=i("./lib/dom"),a=i("./lib/lang"),d=i("./lib/useragent"),e=i("./keyboard/textinput").TextInput,t=i("./mouse/mouse_handler").MouseHandler,r=i("./mouse/fold_handler").FoldHandler,l=i("./keyboard/keybinding").KeyBinding,s=i("./edit_session").EditSession,c=i("./search").Search,f=i("./range").Range,m=i("./lib/event_emitter").EventEmitter,y=i("./commands/command_manager").CommandManager,D=i("./commands/default_commands").commands,E=i("./config"),b=i("./token_iterator").TokenIterator,g=i("./keyboard/gutter_handler").GutterKeyboardHandler,S=i("./config").nls,T=i("./clipboard"),k=i("./lib/keys"),_=i("./lib/event"),O=i("./tooltip").HoverTooltip,$=function(){function C(w,x,I){this.id="editor"+ ++C.$uid,this.session,this.$toDestroy=[];var F=w.getContainerElement();this.container=F,this.renderer=w,this.commands=new y(d.isMac?"mac":"win",D),typeof document=="object"&&(this.textInput=new e(w.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new t(this),new r(this)),this.keyBinding=new l(this),this.$search=new c().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(R,B){B._$emitInputEvent.schedule(31)}),this.setSession(x||I&&I.session||new s("")),E.resetOptions(this),I&&this.setOptions(I),E._signal("editor",this)}return C.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},C.prototype.startOperation=function(w){this.session.startOperation(w)},C.prototype.endOperation=function(w){this.session.endOperation(w)},C.prototype.onStartOperation=function(w){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,w||(this.previousCommand=null)},C.prototype.onEndOperation=function(w){if(this.curOp&&this.session){if(w&&w.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var x=this.curOp.command,I=x&&x.scrollIntoView;if(I){switch(I){case"center-animate":I="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var F=this.selection.getRange(),R=this.renderer.layerConfig;(F.start.row>=R.lastRow||F.end.row<=R.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}I=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},C.prototype.$historyTracker=function(w){if(this.$mergeUndoDeltas){var x=this.prevOp,I=this.$mergeableCommands,F=x.command&&w.command.name==x.command.name;if(w.command.name=="insertstring"){var R=w.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),F=F&&this.mergeNextCommand&&(!/\s/.test(R)||/\s/.test(x.args)),this.mergeNextCommand=!0}else F=F&&I.indexOf(w.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(F=!1),F?this.session.mergeUndoDeltas=!0:I.indexOf(w.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},C.prototype.setKeyboardHandler=function(w,x){if(w&&typeof w=="string"&&w!="ace"){this.$keybindingId=w;var I=this;E.loadModule(["keybinding",w],function(F){I.$keybindingId==w&&I.keyBinding.setKeyboardHandler(F&&F.handler),x&&x()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(w),x&&x()},C.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},C.prototype.setSession=function(w){if(this.session!=w){this.curOp&&this.endOperation(),this.curOp={};var x=this.session;if(x){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var I=this.session.getSelection();I.off("changeCursor",this.$onCursorChange),I.off("changeSelection",this.$onSelectionChange)}this.session=w,w?(this.$onDocumentChange=this.onDocumentChange.bind(this),w.on("change",this.$onDocumentChange),this.renderer.setSession(w),this.$onChangeMode=this.onChangeMode.bind(this),w.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),w.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),w.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),w.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),w.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),w.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=w.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(w)),this._signal("changeSession",{session:w,oldSession:x}),this.curOp=null,x&&x._signal("changeEditor",{oldEditor:this}),x&&(x.$editor=null),w&&w._signal("changeEditor",{editor:this}),w&&(w.$editor=this),w&&!w.destroyed&&w.bgTokenizer.scheduleStart()}},C.prototype.getSession=function(){return this.session},C.prototype.setValue=function(w,x){return this.session.doc.setValue(w),x?x==1?this.navigateFileEnd():x==-1&&this.navigateFileStart():this.selectAll(),w},C.prototype.getValue=function(){return this.session.getValue()},C.prototype.getSelection=function(){return this.selection},C.prototype.resize=function(w){this.renderer.onResize(w)},C.prototype.setTheme=function(w,x){this.renderer.setTheme(w,x)},C.prototype.getTheme=function(){return this.renderer.getTheme()},C.prototype.setStyle=function(w,x){this.renderer.setStyle(w,x)},C.prototype.unsetStyle=function(w){this.renderer.unsetStyle(w)},C.prototype.getFontSize=function(){return this.getOption("fontSize")||p.computedStyle(this.container).fontSize},C.prototype.setFontSize=function(w){this.setOption("fontSize",w)},C.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var w=this;this.$highlightPending=!0,setTimeout(function(){w.$highlightPending=!1;var x=w.session;if(!(!x||x.destroyed)){x.$bracketHighlight&&(x.$bracketHighlight.markerIds.forEach(function(U){x.removeMarker(U)}),x.$bracketHighlight=null);var I=w.getCursorPosition(),F=w.getKeyboardHandler(),R=F&&F.$getDirectionForHighlight&&F.$getDirectionForHighlight(w),B=x.getMatchingBracketRanges(I,R);if(!B){var P=new b(x,I.row,I.column),V=P.getCurrentToken();if(V&&/\b(?:tag-open|tag-name)/.test(V.type)){var W=x.getMatchingTags(I);W&&(B=[W.openTagName.isEmpty()?W.openTag:W.openTagName,W.closeTagName.isEmpty()?W.closeTag:W.closeTagName])}}if(!B&&x.$mode.getMatching&&(B=x.$mode.getMatching(w.session)),!B){w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide();return}var H="ace_bracket";Array.isArray(B)?B.length==1&&(H="ace_error_bracket"):B=[B],B.length==2&&(f.comparePoints(B[0].end,B[1].start)==0?B=[f.fromPoints(B[0].start,B[1].end)]:f.comparePoints(B[0].start,B[1].end)==0&&(B=[f.fromPoints(B[1].start,B[0].end)])),x.$bracketHighlight={ranges:B,markerIds:B.map(function(U){return x.addMarker(U,H,"text")})},w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide()}},50)}},C.prototype.focus=function(){this.textInput.focus()},C.prototype.isFocused=function(){return this.textInput.isFocused()},C.prototype.blur=function(){this.textInput.blur()},C.prototype.onFocus=function(w){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",w))},C.prototype.onBlur=function(w){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",w))},C.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},C.prototype.onDocumentChange=function(w){var x=this.session.$useWrapMode,I=w.start.row==w.end.row?w.end.row:1/0;this.renderer.updateLines(w.start.row,I,x),this._signal("change",w),this.$cursorChange()},C.prototype.onTokenizerUpdate=function(w){var x=w.data;this.renderer.updateLines(x.first,x.last)},C.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},C.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},C.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},C.prototype.$updateHighlightActiveLine=function(){var w=this.getSession(),x;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(x=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(x=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(x=!1)),w.$highlightLineMarker&&!x)w.removeMarker(w.$highlightLineMarker.id),w.$highlightLineMarker=null;else if(!w.$highlightLineMarker&&x){var I=new f(x.row,x.column,x.row,1/0);I.id=w.addMarker(I,"ace_active-line","screenLine"),w.$highlightLineMarker=I}else x&&(w.$highlightLineMarker.start.row=x.row,w.$highlightLineMarker.end.row=x.row,w.$highlightLineMarker.start.column=x.column,w._signal("changeBackMarker"))},C.prototype.onSelectionChange=function(w){var x=this.session;if(x.$selectionMarker&&x.removeMarker(x.$selectionMarker),x.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var I=this.selection.getRange(),F=this.getSelectionStyle();x.$selectionMarker=x.addMarker(I,"ace_selection",F)}var R=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(R),this._signal("changeSelection")},C.prototype.$getSelectionHighLightRegexp=function(){var w=this.session,x=this.getSelectionRange();if(!(x.isEmpty()||x.isMultiLine())){var I=x.start.column,F=x.end.column,R=w.getLine(x.start.row),B=R.substring(I,F);if(!(B.length>5e3||!/[\w\d]/.test(B))){var P=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:B}),V=R.substring(I-1,F+1);if(P.test(V))return P}}},C.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},C.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},C.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},C.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},C.prototype.onChangeMode=function(w){this.renderer.updateText(),this._emit("changeMode",w)},C.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},C.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},C.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},C.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},C.prototype.getCopyText=function(){var w=this.getSelectedText(),x=this.session.doc.getNewLineCharacter(),I=!1;if(!w&&this.$copyWithEmptySelection){I=!0;for(var F=this.selection.getAllRanges(),R=0;R0||e+t=0&&this.$isCustomWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(e+t))return e+t;if(e-t>=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},p.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},p.prototype.$focusFoldWidget=function(e){if(e!=null){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},p.prototype.$focusCustomWidget=function(e){if(e!=null){var t=this.$getCustomWidget(e);t&&(t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus())}},p.prototype.$focusAnnotation=function(e){if(e!=null){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},p.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},p.prototype.$blurCustomWidget=function(e){var t=this.$getCustomWidget(e);t&&(t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur())},p.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},p.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e)||this.$isCustomWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=e,this.$isFoldWidgetVisible(e)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex);return}},p.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}},p.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=C.length&&(C=void 0),{value:C&&C[I++],done:!C}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")},u=i("./lib/oop"),d=i("./lib/dom"),a=i("./lib/lang"),p=i("./lib/useragent"),e=i("./keyboard/textinput").TextInput,t=i("./mouse/mouse_handler").MouseHandler,r=i("./mouse/fold_handler").FoldHandler,l=i("./keyboard/keybinding").KeyBinding,o=i("./edit_session").EditSession,c=i("./search").Search,f=i("./range").Range,m=i("./lib/event_emitter").EventEmitter,y=i("./commands/command_manager").CommandManager,D=i("./commands/default_commands").commands,E=i("./config"),b=i("./token_iterator").TokenIterator,g=i("./keyboard/gutter_handler").GutterKeyboardHandler,S=i("./config").nls,T=i("./clipboard"),k=i("./lib/keys"),_=i("./lib/event"),O=i("./tooltip").HoverTooltip,$=function(){function C(w,x,I){this.id="editor"+ ++C.$uid,this.session,this.$toDestroy=[];var F=w.getContainerElement();this.container=F,this.renderer=w,this.commands=new y(p.isMac?"mac":"win",D),typeof document=="object"&&(this.textInput=new e(w.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new t(this),new r(this)),this.keyBinding=new l(this),this.$search=new c().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(R,B){B._$emitInputEvent.schedule(31)}),this.setSession(x||I&&I.session||new o("")),E.resetOptions(this),I&&this.setOptions(I),E._signal("editor",this)}return C.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},C.prototype.startOperation=function(w){this.session.startOperation(w)},C.prototype.endOperation=function(w){this.session.endOperation(w)},C.prototype.onStartOperation=function(w){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,w||(this.previousCommand=null)},C.prototype.onEndOperation=function(w){if(this.curOp&&this.session){if(w&&w.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var x=this.curOp.command,I=x&&x.scrollIntoView;if(I){switch(I){case"center-animate":I="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var F=this.selection.getRange(),R=this.renderer.layerConfig;(F.start.row>=R.lastRow||F.end.row<=R.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}I=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},C.prototype.$historyTracker=function(w){if(this.$mergeUndoDeltas){var x=this.prevOp,I=this.$mergeableCommands,F=x.command&&w.command.name==x.command.name;if(w.command.name=="insertstring"){var R=w.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),F=F&&this.mergeNextCommand&&(!/\s/.test(R)||/\s/.test(x.args)),this.mergeNextCommand=!0}else F=F&&I.indexOf(w.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(F=!1),F?this.session.mergeUndoDeltas=!0:I.indexOf(w.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},C.prototype.setKeyboardHandler=function(w,x){if(w&&typeof w=="string"&&w!="ace"){this.$keybindingId=w;var I=this;E.loadModule(["keybinding",w],function(F){I.$keybindingId==w&&I.keyBinding.setKeyboardHandler(F&&F.handler),x&&x()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(w),x&&x()},C.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},C.prototype.setSession=function(w){if(this.session!=w){this.curOp&&this.endOperation(),this.curOp={};var x=this.session;if(x){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var I=this.session.getSelection();I.off("changeCursor",this.$onCursorChange),I.off("changeSelection",this.$onSelectionChange)}this.session=w,w?(this.$onDocumentChange=this.onDocumentChange.bind(this),w.on("change",this.$onDocumentChange),this.renderer.setSession(w),this.$onChangeMode=this.onChangeMode.bind(this),w.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),w.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),w.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),w.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),w.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),w.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=w.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(w)),this._signal("changeSession",{session:w,oldSession:x}),this.curOp=null,x&&x._signal("changeEditor",{oldEditor:this}),x&&(x.$editor=null),w&&w._signal("changeEditor",{editor:this}),w&&(w.$editor=this),w&&!w.destroyed&&w.bgTokenizer.scheduleStart()}},C.prototype.getSession=function(){return this.session},C.prototype.setValue=function(w,x){return this.session.doc.setValue(w),x?x==1?this.navigateFileEnd():x==-1&&this.navigateFileStart():this.selectAll(),w},C.prototype.getValue=function(){return this.session.getValue()},C.prototype.getSelection=function(){return this.selection},C.prototype.resize=function(w){this.renderer.onResize(w)},C.prototype.setTheme=function(w,x){this.renderer.setTheme(w,x)},C.prototype.getTheme=function(){return this.renderer.getTheme()},C.prototype.setStyle=function(w,x){this.renderer.setStyle(w,x)},C.prototype.unsetStyle=function(w){this.renderer.unsetStyle(w)},C.prototype.getFontSize=function(){return this.getOption("fontSize")||d.computedStyle(this.container).fontSize},C.prototype.setFontSize=function(w){this.setOption("fontSize",w)},C.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var w=this;this.$highlightPending=!0,setTimeout(function(){w.$highlightPending=!1;var x=w.session;if(!(!x||x.destroyed)){x.$bracketHighlight&&(x.$bracketHighlight.markerIds.forEach(function(U){x.removeMarker(U)}),x.$bracketHighlight=null);var I=w.getCursorPosition(),F=w.getKeyboardHandler(),R=F&&F.$getDirectionForHighlight&&F.$getDirectionForHighlight(w),B=x.getMatchingBracketRanges(I,R);if(!B){var P=new b(x,I.row,I.column),V=P.getCurrentToken();if(V&&/\b(?:tag-open|tag-name)/.test(V.type)){var W=x.getMatchingTags(I);W&&(B=[W.openTagName.isEmpty()?W.openTag:W.openTagName,W.closeTagName.isEmpty()?W.closeTag:W.closeTagName])}}if(!B&&x.$mode.getMatching&&(B=x.$mode.getMatching(w.session)),!B){w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide();return}var H="ace_bracket";Array.isArray(B)?B.length==1&&(H="ace_error_bracket"):B=[B],B.length==2&&(f.comparePoints(B[0].end,B[1].start)==0?B=[f.fromPoints(B[0].start,B[1].end)]:f.comparePoints(B[0].start,B[1].end)==0&&(B=[f.fromPoints(B[1].start,B[0].end)])),x.$bracketHighlight={ranges:B,markerIds:B.map(function(U){return x.addMarker(U,H,"text")})},w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide()}},50)}},C.prototype.focus=function(){this.textInput.focus()},C.prototype.isFocused=function(){return this.textInput.isFocused()},C.prototype.blur=function(){this.textInput.blur()},C.prototype.onFocus=function(w){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",w))},C.prototype.onBlur=function(w){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",w))},C.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},C.prototype.onDocumentChange=function(w){var x=this.session.$useWrapMode,I=w.start.row==w.end.row?w.end.row:1/0;this.renderer.updateLines(w.start.row,I,x),this._signal("change",w),this.$cursorChange()},C.prototype.onTokenizerUpdate=function(w){var x=w.data;this.renderer.updateLines(x.first,x.last)},C.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},C.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},C.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},C.prototype.$updateHighlightActiveLine=function(){var w=this.getSession(),x;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(x=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(x=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(x=!1)),w.$highlightLineMarker&&!x)w.removeMarker(w.$highlightLineMarker.id),w.$highlightLineMarker=null;else if(!w.$highlightLineMarker&&x){var I=new f(x.row,x.column,x.row,1/0);I.id=w.addMarker(I,"ace_active-line","screenLine"),w.$highlightLineMarker=I}else x&&(w.$highlightLineMarker.start.row=x.row,w.$highlightLineMarker.end.row=x.row,w.$highlightLineMarker.start.column=x.column,w._signal("changeBackMarker"))},C.prototype.onSelectionChange=function(w){var x=this.session;if(x.$selectionMarker&&x.removeMarker(x.$selectionMarker),x.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var I=this.selection.getRange(),F=this.getSelectionStyle();x.$selectionMarker=x.addMarker(I,"ace_selection",F)}var R=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(R),this._signal("changeSelection")},C.prototype.$getSelectionHighLightRegexp=function(){var w=this.session,x=this.getSelectionRange();if(!(x.isEmpty()||x.isMultiLine())){var I=x.start.column,F=x.end.column,R=w.getLine(x.start.row),B=R.substring(I,F);if(!(B.length>5e3||!/[\w\d]/.test(B))){var P=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:B}),V=R.substring(I-1,F+1);if(P.test(V))return P}}},C.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},C.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},C.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},C.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},C.prototype.onChangeMode=function(w){this.renderer.updateText(),this._emit("changeMode",w)},C.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},C.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},C.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},C.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},C.prototype.getCopyText=function(){var w=this.getSelectedText(),x=this.session.doc.getNewLineCharacter(),I=!1;if(!w&&this.$copyWithEmptySelection){I=!0;for(var F=this.selection.getAllRanges(),R=0;RU.search(/\S|$/)){var V=U.substr(R.column).search(/\S|$/);I.doc.removeInLine(R.row,R.column,R.column+V)}}this.clearSelection();var W=R.column,H=I.getState(R.row),U=I.getLine(R.row),G=F.checkOutdent(H,U,w);if(I.insert(R,w),B&&B.selection&&(B.selection.length==2?this.selection.setSelectionRange(new f(R.row,W+B.selection[0],R.row,W+B.selection[1])):this.selection.setSelectionRange(new f(R.row+B.selection[0],B.selection[1],R.row+B.selection[2],B.selection[3]))),this.$enableAutoIndent){if(I.getDocument().isNewLine(w)){var Y=F.getNextLineIndent(H,U.slice(0,R.column),I.getTabString());I.insert({row:R.row+1,column:0},Y)}G&&F.autoOutdent(H,I,R.row)}},C.prototype.autoIndent=function(){for(var w=this.session,x=w.getMode(),I=this.selection.isEmpty()?[new f(0,0,w.doc.getLength()-1,0)]:this.selection.getAllRanges(),F="",R="",B="",P=w.getTabString(),V=0;V0&&(F=w.getState(U-1),R=w.getLine(U-1),B=x.getNextLineIndent(F,R,P));var G=w.getLine(U),Y=x.$getIndent(G);if(B!==Y){if(Y.length>0){var Q=new f(U,0,U,Y.length);w.remove(Q)}B.length>0&&w.insert({row:U,column:0},B)}x.autoOutdent(F,w,U)}},C.prototype.onTextInput=function(w,x){if(!x)return this.keyBinding.onTextInput(w);this.startOperation({command:{name:"insertstring"}});var I=this.applyComposition.bind(this,w,x);this.selection.rangeCount?this.forEachSelection(I):I(),this.endOperation()},C.prototype.applyComposition=function(w,x){if(x.extendLeft||x.extendRight){var I=this.selection.getRange();I.start.column-=x.extendLeft,I.end.column+=x.extendRight,I.start.column<0&&(I.start.row--,I.start.column+=this.session.getLine(I.start.row).length+1),this.selection.setRange(I),!w&&!I.isEmpty()&&this.remove()}if((w||!this.selection.isEmpty())&&this.insert(w,!0),x.restoreStart||x.restoreEnd){var I=this.selection.getRange();I.start.column-=x.restoreStart,I.end.column-=x.restoreEnd,this.selection.setRange(I)}},C.prototype.onCommandKey=function(w,x,I){return this.keyBinding.onCommandKey(w,x,I)},C.prototype.setOverwrite=function(w){this.session.setOverwrite(w)},C.prototype.getOverwrite=function(){return this.session.getOverwrite()},C.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},C.prototype.setScrollSpeed=function(w){this.setOption("scrollSpeed",w)},C.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},C.prototype.setDragDelay=function(w){this.setOption("dragDelay",w)},C.prototype.getDragDelay=function(){return this.getOption("dragDelay")},C.prototype.setSelectionStyle=function(w){this.setOption("selectionStyle",w)},C.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},C.prototype.setHighlightActiveLine=function(w){this.setOption("highlightActiveLine",w)},C.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},C.prototype.setHighlightGutterLine=function(w){this.setOption("highlightGutterLine",w)},C.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},C.prototype.setHighlightSelectedWord=function(w){this.setOption("highlightSelectedWord",w)},C.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},C.prototype.setAnimatedScroll=function(w){this.renderer.setAnimatedScroll(w)},C.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},C.prototype.setShowInvisibles=function(w){this.renderer.setShowInvisibles(w)},C.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},C.prototype.setDisplayIndentGuides=function(w){this.renderer.setDisplayIndentGuides(w)},C.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},C.prototype.setHighlightIndentGuides=function(w){this.renderer.setHighlightIndentGuides(w)},C.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},C.prototype.setShowPrintMargin=function(w){this.renderer.setShowPrintMargin(w)},C.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},C.prototype.setPrintMarginColumn=function(w){this.renderer.setPrintMarginColumn(w)},C.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},C.prototype.setReadOnly=function(w){this.setOption("readOnly",w)},C.prototype.getReadOnly=function(){return this.getOption("readOnly")},C.prototype.setBehavioursEnabled=function(w){this.setOption("behavioursEnabled",w)},C.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},C.prototype.setWrapBehavioursEnabled=function(w){this.setOption("wrapBehavioursEnabled",w)},C.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},C.prototype.setShowFoldWidgets=function(w){this.setOption("showFoldWidgets",w)},C.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},C.prototype.setFadeFoldWidgets=function(w){this.setOption("fadeFoldWidgets",w)},C.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},C.prototype.remove=function(w){this.selection.isEmpty()&&(w=="left"?this.selection.selectLeft():this.selection.selectRight());var x=this.getSelectionRange();if(this.getBehavioursEnabled()){var I=this.session,F=I.getState(x.start.row),R=I.getMode().transformAction(F,"deletion",this,I,x);if(x.end.column===0){var B=I.getTextRange(x);if(B[B.length-1]==` `){var P=I.getLine(x.end.row);/^\s+$/.test(P)&&(x.end.column=P.length)}}R&&(x=R)}this.session.remove(x),this.clearSelection()},C.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var w=this.getSelectionRange();w.start.column==w.end.column&&w.start.row==w.end.row&&(w.end.column=0,w.end.row++),this.session.remove(w),this.clearSelection()},C.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var w=this.getCursorPosition();this.insert(` -`),this.moveCursorToPosition(w)},C.prototype.setGhostText=function(w,x){this.renderer.setGhostText(w,x)},C.prototype.removeGhostText=function(){this.renderer.removeGhostText()},C.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var w=this.getCursorPosition(),x=w.column;if(x!==0){var I=this.session.getLine(w.row),F,R;xV.toLowerCase()?1:0});for(var R=new f(0,0,0,0),F=w.first;F<=w.last;F++){var B=x.getLine(F);R.start.row=F,R.end.row=F,R.end.column=B.length,x.replace(R,I[F-w.first])}},C.prototype.toggleCommentLines=function(){var w=this.session.getState(this.getCursorPosition().row),x=this.$getSelectedRows();this.session.getMode().toggleCommentLines(w,this.session,x.first,x.last)},C.prototype.toggleBlockComment=function(){var w=this.getCursorPosition(),x=this.session.getState(w.row),I=this.getSelectionRange();this.session.getMode().toggleBlockComment(x,this.session,I,w)},C.prototype.getNumberAt=function(w,x){var I=/[\-]?[0-9]+(?:\.[0-9]+)?/g;I.lastIndex=0;for(var F=this.session.getLine(w);I.lastIndex=x){var B={value:R[0],start:R.index,end:R.index+R[0].length};return B}}return null},C.prototype.modifyNumber=function(w){var x=this.selection.getCursor().row,I=this.selection.getCursor().column,F=new f(x,I-1,x,I),R=this.session.getTextRange(F);if(!isNaN(parseFloat(R))&&isFinite(R)){var B=this.getNumberAt(x,I);if(B){var P=B.value.indexOf(".")>=0?B.start+B.value.indexOf(".")+1:B.end,V=B.start+B.value.length-P,W=parseFloat(B.value);W*=Math.pow(10,V),P!==B.end&&I=P&&B<=V&&(I=ge,W.selection.clearSelection(),W.moveCursorTo(w,P+F),W.selection.selectTo(w,V+F)),P=V});for(var H=this.$toggleWordPairs,U,G=0;G=V&&P<=W&&Y.match(/((?:https?|ftp):\/\/[\S]+)/)){H=Y.replace(/[\s:.,'";}\]]+$/,"");break}V=W}}catch(Q){I={error:Q}}finally{try{G&&!G.done&&(F=U.return)&&F.call(U)}finally{if(I)throw I.error}}return H},C.prototype.openLink=function(){var w=this.selection.getCursor(),x=this.findLinkAt(w.row,w.column);return x&&window.open(x,"_blank"),x!=null},C.prototype.removeLines=function(){var w=this.$getSelectedRows();this.session.removeFullLines(w.first,w.last),this.clearSelection()},C.prototype.duplicateSelection=function(){var w=this.selection,x=this.session,I=w.getRange(),F=w.isBackwards();if(I.isEmpty()){var R=I.start.row;x.duplicateLines(R,R)}else{var B=F?I.start:I.end,P=x.insert(B,x.getTextRange(I));I.start=B,I.end=P,w.setSelectionRange(I,F)}},C.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},C.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},C.prototype.moveText=function(w,x,I){return this.session.moveText(w,x,I)},C.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},C.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},C.prototype.$moveLines=function(w,x){var I,F,R=this.selection;if(!R.inMultiSelectMode||this.inVirtualSelectionMode){var B=R.toOrientedRange();I=this.$getSelectedRows(B),F=this.session.$moveLines(I.first,I.last,x?0:w),x&&w==-1&&(F=0),B.moveBy(F,0),R.fromOrientedRange(B)}else{var P=R.rangeList.ranges;R.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var V=0,W=0,H=P.length,U=0;UQ+1)break;Q=ee.last}for(U--,V=this.session.$moveLines(Y,Q,x?0:w),x&&w==-1&&(G=U+1);G<=U;)P[G].moveBy(V,0),G++;x||(V=0),W+=V}R.fromOrientedRange(R.ranges[0]),R.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},C.prototype.$getSelectedRows=function(w){return w=(w||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(w.start.row),last:this.session.getRowFoldEnd(w.end.row)}},C.prototype.onCompositionStart=function(w){this.renderer.showComposition(w)},C.prototype.onCompositionUpdate=function(w){this.renderer.setCompositionText(w)},C.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},C.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},C.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},C.prototype.isRowVisible=function(w){return w>=this.getFirstVisibleRow()&&w<=this.getLastVisibleRow()},C.prototype.isRowFullyVisible=function(w){return w>=this.renderer.getFirstFullyVisibleRow()&&w<=this.renderer.getLastFullyVisibleRow()},C.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},C.prototype.$moveByPage=function(w,x){var I=this.renderer,F=this.renderer.layerConfig,R=w*Math.floor(F.height/F.lineHeight);x===!0?this.selection.$moveSelection(function(){this.moveCursorBy(R,0)}):x===!1&&(this.selection.moveCursorBy(R,0),this.selection.clearSelection());var B=I.scrollTop;I.scrollBy(0,R*F.lineHeight),x!=null&&I.scrollCursorIntoView(null,.5),I.animateScrolling(B)},C.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},C.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},C.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},C.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},C.prototype.scrollPageDown=function(){this.$moveByPage(1)},C.prototype.scrollPageUp=function(){this.$moveByPage(-1)},C.prototype.scrollToRow=function(w){this.renderer.scrollToRow(w)},C.prototype.scrollToLine=function(w,x,I,F){this.renderer.scrollToLine(w,x,I,F)},C.prototype.centerSelection=function(){var w=this.getSelectionRange(),x={row:Math.floor(w.start.row+(w.end.row-w.start.row)/2),column:Math.floor(w.start.column+(w.end.column-w.start.column)/2)};this.renderer.alignCursor(x,.5)},C.prototype.getCursorPosition=function(){return this.selection.getCursor()},C.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},C.prototype.getSelectionRange=function(){return this.selection.getRange()},C.prototype.selectAll=function(){this.selection.selectAll()},C.prototype.clearSelection=function(){this.selection.clearSelection()},C.prototype.moveCursorTo=function(w,x){this.selection.moveCursorTo(w,x)},C.prototype.moveCursorToPosition=function(w){this.selection.moveCursorToPosition(w)},C.prototype.jumpToMatching=function(w,x){var I=this.getCursorPosition(),F=new b(this.session,I.row,I.column),R=F.getCurrentToken(),B=0;R&&R.type.indexOf("tag-name")!==-1&&(R=F.stepBackward());var P=R||F.stepForward();if(P){var V,W=!1,H={},U=I.column-P.start,G,Y={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(P.value.match(/[{}()\[\]]/g)){for(;U1?H[P.value]++:R.value==="=0;--B)this.$tryReplace(I[B],w)&&F++;return this.selection.setSelectionRange(R),F},C.prototype.$tryReplace=function(w,x){var I=this.session.getTextRange(w);return x=this.$search.replace(I,x),x!==null?(w.end=this.session.replace(w,x),w):null},C.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},C.prototype.find=function(w,x,I){x||(x={}),typeof w=="string"||w instanceof RegExp?x.needle=w:typeof w=="object"&&h.mixin(x,w);var F=this.selection.getRange();x.needle==null&&(w=this.session.getTextRange(F)||this.$search.$options.needle,w||(F=this.session.getWordRange(F.start.row,F.start.column),w=this.session.getTextRange(F)),this.$search.set({needle:w})),this.$search.set(x),x.start||this.$search.set({start:F});var R=this.$search.find(this.session);if(x.preventScroll)return R;if(R)return this.revealRange(R,I),R;x.backwards?F.start=F.end:F.end=F.start,this.selection.setRange(F)},C.prototype.findNext=function(w,x){this.find({skipCurrent:!0,backwards:!1},w,x)},C.prototype.findPrevious=function(w,x){this.find(w,{skipCurrent:!0,backwards:!0},x)},C.prototype.revealRange=function(w,x){this.session.unfold(w),this.selection.setSelectionRange(w);var I=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(w.start,w.end,.5),x!==!1&&this.renderer.animateScrolling(I)},C.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(w){w.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},C.prototype.setAutoScrollEditorIntoView=function(w){if(w){var x,I=this,F=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var R=this.$scrollAnchor;R.style.cssText="position:absolute",this.container.insertBefore(R,this.container.firstChild);var B=this.on("changeSelection",function(){F=!0}),P=this.renderer.on("beforeRender",function(){F&&(x=I.renderer.container.getBoundingClientRect())}),V=this.renderer.on("afterRender",function(){if(F&&x&&(I.isFocused()||I.searchBox&&I.searchBox.isFocused())){var W=I.renderer,H=W.$cursorLayer.$pixelPos,U=W.layerConfig,G=H.top-U.offset;H.top>=0&&G+x.top<0?F=!0:H.topwindow.innerHeight?F=!1:F=null,F!=null&&(R.style.top=G+"px",R.style.left=H.left+"px",R.style.height=U.lineHeight+"px",R.scrollIntoView(F)),F=x=null}});this.setAutoScrollEditorIntoView=function(W){W||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",B),this.renderer.off("afterRender",V),this.renderer.off("beforeRender",P))}}},C.prototype.$resetCursorStyle=function(){var w=this.$cursorStyle||"ace",x=this.renderer.$cursorLayer;x&&(x.setSmoothBlinking(/smooth/.test(w)),x.isBlinking=!this.$readOnly&&w!="wide",p.setCssClass(x.element,"ace_slim-cursors",/slim/.test(w)))},C.prototype.prompt=function(w,x,I){var F=this;E.loadModule("ace/ext/prompt",function(R){R.prompt(F,w,x,I)})},C}();$.$uid=0,$.prototype.curOp=null,$.prototype.prevOp={},$.prototype.$mergeableCommands=["backspace","del","insertstring"],$.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],h.implement($.prototype,m),E.defineOptions($.prototype,"editor",{selectionStyle:{set:function(C){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:C})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(C){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(C){var w=this;this.textInput.setReadOnly(C),this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(I){var F=!1;if(I&&I.type=="keydown"){if(F=I&&I.key&&I.key.length==1&&!I.ctrlKey&&!I.metaKey,!F)return}else I&&I.type!=="exec"&&(F=!0);if(F){w.hoverTooltip||(w.hoverTooltip=new O);var R=p.createElement("div");R.textContent=S("editor.tooltip.disable-editing","Editing is disabled"),w.hoverTooltip.isOpen||w.hoverTooltip.showForRange(w,w.getSelectionRange(),R)}else w.hoverTooltip&&w.hoverTooltip.isOpen&&w.hoverTooltip.hide()});var x=this.textInput.getElement();C?(_.addListener(x,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(_.removeListener(x,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("commandUnavailable",this.$readOnlyCallback),this.hoverTooltip&&(this.hoverTooltip.destroy(),this.hoverTooltip=null))},initialValue:!1},copyWithEmptySelection:{set:function(C){this.textInput.setCopyWithEmptySelection(C)},initialValue:!1},cursorStyle:{set:function(C){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(C){this.setAutoScrollEditorIntoView(C)}},keyboardHandler:{set:function(C){this.setKeyboardHandler(C)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(C){this.session.setValue(C)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(C){this.setSession(C)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(C){this.renderer.$gutterLayer.setShowLineNumbers(C),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),C&&this.$relativeLineNumbers?A.attach(this):A.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(C){this.$showLineNumbers&&C?A.attach(this):A.detach(this)}},placeholder:{set:function(C){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var w=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(w&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),p.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!w&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),p.addCssClass(this.container,"ace_hasPlaceholder");var x=p.createElement("div");x.className="ace_placeholder",x.textContent=this.$placeholder||"",this.renderer.placeholderNode=x,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!w&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(C){var w={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(F){F.blur(),F.renderer.scroller.focus()},readOnly:!0},x=function(F){if(F.target==this.renderer.scroller&&F.keyCode===k.enter){F.preventDefault();var R=this.getCursorPosition().row;this.isRowVisible(R)||this.scrollToLine(R,!0,!0),this.focus()}},I;C?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(d.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",S("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",S("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",x.bind(this)),this.commands.addCommand(w),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",S("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",S("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),I||(I=new g(this)),I.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",x.bind(this)),this.commands.removeCommand(w),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),I&&I.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(C){this.$textInputAriaLabel=C},initialValue:""},enableMobileMenu:{set:function(C){this.$enableMobileMenu=C},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var A={getText:function(C,w){return(Math.abs(C.selection.lead.row-w)||w+1+(w<9?"·":""))+""},getWidth:function(C,w,x){return Math.max(w.toString().length,(x.lastRow+1).toString().length,2)*x.characterWidth},update:function(C,w){w.renderer.$loop.schedule(w.renderer.CHANGE_GUTTER)},attach:function(C){C.renderer.$gutterLayer.$renderer=this,C.on("changeSelection",this.update),this.update(null,C)},detach:function(C){C.renderer.$gutterLayer.$renderer==this&&(C.renderer.$gutterLayer.$renderer=null),C.off("changeSelection",this.update),this.update(null,C)}};u.Editor=$}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(i,u,v){var o=i("../lib/dom"),h=function(){function p(a,d){this.element=a,this.canvasHeight=d||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return p.prototype.moveContainer=function(a){o.translate(this.element,0,-(a.firstRowScreen*a.lineHeight%this.canvasHeight)-a.offset*this.$offsetCoefficient)},p.prototype.pageChanged=function(a,d){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(d.firstRowScreen*d.lineHeight/this.canvasHeight)},p.prototype.computeLineTop=function(a,d,e){var t=d.firstRowScreen*d.lineHeight,r=Math.floor(t/this.canvasHeight),l=e.documentToScreenRow(a,0)*d.lineHeight;return l-r*this.canvasHeight},p.prototype.computeLineHeight=function(a,d,e){return d.lineHeight*e.getRowLineCount(a)},p.prototype.getLength=function(){return this.cells.length},p.prototype.get=function(a){return this.cells[a]},p.prototype.shift=function(){this.$cacheCell(this.cells.shift())},p.prototype.pop=function(){this.$cacheCell(this.cells.pop())},p.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var d=o.createFragment(this.element),e=0;eD&&(g=y.end.row+1,y=c.getNextFoldLine(g,y),D=y?y.start.row:1/0),g>m){for(;this.$lines.getLength()>b+1;)this.$lines.pop();break}E=this.$lines.get(++b),E?E.row=g:(E=this.$lines.createCell(g,s,this.session,r),this.$lines.push(E)),this.$renderCell(E,s,y,g),g++}this._signal("afterRender"),this.$updateGutterWidth(s)},l.prototype.$updateGutterWidth=function(s){var c=this.session,f=c.gutterRenderer||this.$renderer,m=c.$firstLineNumber,y=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||c.$useWrapMode)&&(y=c.getLength()+m-1);var D=f?f.getWidth(c,y,s):y.toString().length*s.characterWidth,E=this.$padding||this.$computePadding();D+=E.left+E.right,D!==this.gutterWidth&&!isNaN(D)&&(this.gutterWidth=D,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",D))},l.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var s=this.session.selection.getCursor();this.$cursorRow!==s.row&&(this.$cursorRow=s.row)}},l.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var s=this.session.selection.cursor.row;if(this.$cursorRow=s,!(this.$cursorCell&&this.$cursorCell.row==s)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var c=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(m.row>this.$cursorRow){var y=this.session.getFoldLine(this.$cursorRow);if(f>0&&y&&y.start.row==c[f-1].row)m=c[f-1];else break}m.element.className="ace_gutter-active-line "+m.element.className,this.$cursorCell=m;break}}}}},l.prototype.scrollLines=function(s){var c=this.config;if(this.config=s,this.$updateCursorRow(),this.$lines.pageChanged(c,s))return this.update(s);this.$lines.moveContainer(s);var f=Math.min(s.lastRow+s.gutterOffset,this.session.getLength()-1),m=this.oldLastRow;if(this.oldLastRow=f,!c||m0;y--)this.$lines.shift();if(m>f)for(var y=this.session.getFoldedRowCount(f+1,m);y>0;y--)this.$lines.pop();s.firstRowm&&this.$lines.push(this.$renderLines(s,m+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(s)},l.prototype.$renderLines=function(s,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,s,this.session,r);this.$renderCell(b,s,D,y),m.push(b),y++}return m},l.prototype.$renderCell=function(s,c,f,m){var y=s.element,D=this.session,E=y.childNodes[0],b=y.childNodes[1],g=y.childNodes[2],S=y.childNodes[3],T=g.firstChild,k=D.$firstLineNumber,_=D.$breakpoints,O=D.$decorations,$=D.gutterRenderer||this.$renderer,A=this.$showFoldWidgets&&D.foldWidgets,C=f?f.start.row:Number.MAX_VALUE,w=c.lineHeight+"px",x=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",F=($?$.getText(D,m):m+k).toString();if(this.$highlightGutterLine&&(m==this.$cursorRow||f&&m=C&&this.$cursorRow<=f.end.row)&&(x+="ace_gutter-active-line ",this.$cursorCell!=s&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=s)),_[m]&&(x+=_[m]),O[m]&&(x+=O[m]),this.$annotations[m]&&m!==C&&(x+=this.$annotations[m].className),A){var R=A[m];R==null&&(R=A[m]=D.getFoldWidget(m))}if(R){var B="ace_fold-widget ace_"+R,P=R=="start"&&m==C&&mf.right-c.right)return"foldWidgets"},l}();t.prototype.$fixedWidth=!1,t.prototype.$highlightGutterLine=!0,t.prototype.$renderer="",t.prototype.$showLineNumbers=!0,t.prototype.$showFoldWidgets=!0,h.implement(t.prototype,a);function r(l){var s=document.createTextNode("");l.appendChild(s);var c=o.createElement("span");l.appendChild(c);var f=o.createElement("span");l.appendChild(f);var m=o.createElement("span");return f.appendChild(m),l}u.Gutter=t}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(i,u,v){var o=i("../range").Range,h=i("../lib/dom"),p=function(){function d(e){this.element=h.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return d.prototype.setPadding=function(e){this.$padding=e},d.prototype.setSession=function(e){this.session=e},d.prototype.setMarkers=function(e){this.markers=e},d.prototype.elt=function(e,t){var r=this.i!=-1&&this.element.childNodes[this.i];r?this.i++:(r=document.createElement("div"),this.element.appendChild(r),this.i=-1),r.style.cssText=t,r.className=e},d.prototype.update=function(e){if(e){this.config=e,this.i=0;var t;for(var r in this.markers){var l=this.markers[r];if(!l.range){l.update(t,this,this.session,e);continue}var s=l.range.clipRows(e.firstRow,e.lastRow);if(!s.isEmpty())if(s=s.toScreenRange(this.session),l.renderer){var c=this.$getTop(s.start.row,e),f=this.$padding+s.start.column*e.characterWidth;l.renderer(t,s,f,c,e)}else l.type=="fullLine"?this.drawFullLineMarker(t,s,l.clazz,e):l.type=="screenLine"?this.drawScreenLineMarker(t,s,l.clazz,e):s.isMultiLine()?l.type=="text"?this.drawTextMarker(t,s,l.clazz,e):this.drawMultiLineMarker(t,s,l.clazz,e):this.drawSingleLineMarker(t,s,l.clazz+" ace_start ace_br15",e)}if(this.i!=-1)for(;this.ib,y==m),l,y==m?0:1,s)},d.prototype.drawMultiLineMarker=function(e,t,r,l,s){var c=this.$padding,f=l.lineHeight,m=this.$getTop(t.start.row,l),y=c+t.start.column*l.characterWidth;if(s=s||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var D=t.clone();D.end.row=D.start.row,D.end.column=this.session.getLine(D.start.row).length,this.drawBidiSingleLineMarker(e,D,r+" ace_br1 ace_start",l,null,s)}else this.elt(r+" ace_br1 ace_start","height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+y+"px;"+(s||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var D=t.clone();D.start.row=D.end.row,D.start.column=0,this.drawBidiSingleLineMarker(e,D,r+" ace_br12",l,null,s)}else{m=this.$getTop(t.end.row,l);var E=t.end.column*l.characterWidth;this.elt(r+" ace_br12","height:"+f+"px;width:"+E+"px;top:"+m+"px;left:"+c+"px;"+(s||""))}if(f=(t.end.row-t.start.row-1)*l.lineHeight,!(f<=0)){m=this.$getTop(t.start.row+1,l);var b=(t.start.column?1:0)|(t.end.column?0:8);this.elt(r+(b?" ace_br"+b:""),"height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+c+"px;"+(s||""))}},d.prototype.drawSingleLineMarker=function(e,t,r,l,s,c){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,r,l,s,c);var f=l.lineHeight,m=(t.end.column+(s||0)-t.start.column)*l.characterWidth,y=this.$getTop(t.start.row,l),D=this.$padding+t.start.column*l.characterWidth;this.elt(r,"height:"+f+"px;width:"+m+"px;top:"+y+"px;left:"+D+"px;"+(c||""))},d.prototype.drawBidiSingleLineMarker=function(e,t,r,l,s,c){var f=l.lineHeight,m=this.$getTop(t.start.row,l),y=this.$padding,D=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);D.forEach(function(E){this.elt(r,"height:"+f+"px;width:"+(E.width+(s||0))+"px;top:"+m+"px;left:"+(y+E.left)+"px;"+(c||""))},this)},d.prototype.drawFullLineMarker=function(e,t,r,l,s){var c=this.$getTop(t.start.row,l),f=l.lineHeight;t.start.row!=t.end.row&&(f+=this.$getTop(t.end.row,l)-c),this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(s||""))},d.prototype.drawScreenLineMarker=function(e,t,r,l,s){var c=this.$getTop(t.start.row,l),f=l.lineHeight;this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(s||""))},d}();p.prototype.$padding=0;function a(d,e,t,r){return(d?1:0)|(e?2:0)|(t?4:0)|(r?8:0)}u.Marker=p}),ace.define("ace/layer/text_util",["require","exports","module"],function(i,u,v){var o=new Set(["text","rparen","lparen"]);u.isTextToken=function(h){return o.has(h)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/dom"),p=i("../lib/lang"),a=i("./lines").Lines,d=i("../lib/event_emitter").EventEmitter,e=i("../config").nls,t=i("./text_util").isTextToken,r=function(){function l(s){this.dom=h,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",s.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return l.prototype.$updateEolChar=function(){var s=this.session.doc,c=s.getNewLineCharacter()==` -`&&s.getNewLineMode()!="windows",f=c?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},l.prototype.setPadding=function(s){this.$padding=s,this.element.style.margin="0 "+s+"px"},l.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},l.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},l.prototype.$setFontMetrics=function(s){this.$fontMetrics=s,this.$fontMetrics.on("changeCharacterSize",function(c){this._signal("changeCharacterSize",c)}.bind(this)),this.$pollSizeChanges()},l.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},l.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},l.prototype.setSession=function(s){this.session=s,s&&this.$computeTabString()},l.prototype.setShowInvisibles=function(s){return this.showInvisibles==s?!1:(this.showInvisibles=s,typeof s=="string"?(this.showSpaces=/tab/i.test(s),this.showTabs=/space/i.test(s),this.showEOL=/eol/i.test(s)):this.showSpaces=this.showTabs=this.showEOL=s,this.$computeTabString(),!0)},l.prototype.setDisplayIndentGuides=function(s){return this.displayIndentGuides==s?!1:(this.displayIndentGuides=s,this.$computeTabString(),!0)},l.prototype.setHighlightIndentGuides=function(s){return this.$highlightIndentGuides===s?!1:(this.$highlightIndentGuides=s,s)},l.prototype.$computeTabString=function(){var s=this.session.getTabSize();this.tabSize=s;for(var c=this.$tabStrings=[0],f=1;fT&&(g=S.end.row+1,S=this.session.getNextFoldLine(g,S),T=S?S.start.row:1/0),!(g>y);){var k=D[E++];if(k){this.dom.removeChildren(k),this.$renderLine(k,g,g==T?S:!1),b&&(k.style.top=this.$lines.computeLineTop(g,s,this.session)+"px");var _=s.lineHeight*this.session.getRowLength(g)+"px";k.style.height!=_&&(b=!0,k.style.height=_)}g++}if(b)for(;E0;y--)this.$lines.shift();if(c.lastRow>s.lastRow)for(var y=this.session.getFoldedRowCount(s.lastRow+1,c.lastRow);y>0;y--)this.$lines.pop();s.firstRowc.lastRow&&this.$lines.push(this.$renderLinesFragment(s,c.lastRow+1,s.lastRow)),this.$highlightIndentGuide()},l.prototype.$renderLinesFragment=function(s,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,s,this.session),g=b.element;this.dom.removeChildren(g),h.setStyle(g.style,"height",this.$lines.computeLineHeight(y,s,this.session)+"px"),h.setStyle(g.style,"top",this.$lines.computeLineTop(y,s,this.session)+"px"),this.$renderLine(g,y,y==E?D:!1),this.$useLineGroups()?g.className="ace_line_group":g.className="ace_line",m.push(b),y++}return m},l.prototype.update=function(s){this.$lines.moveContainer(s),this.config=s;for(var c=s.firstRow,f=s.lastRow,m=this.$lines;m.getLength();)m.pop();m.push(this.$renderLinesFragment(s,c,f))},l.prototype.$renderToken=function(s,c,f,m){for(var y=this,D=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,E=this.dom.createFragment(this.element),b,g=0;b=D.exec(m);){var S=b[1],T=b[2],k=b[3],_=b[4],O=b[5];if(!(!y.showSpaces&&T)){var $=g!=b.index?m.slice(g,b.index):"";if(g=b.index+b[0].length,$&&E.appendChild(this.dom.createTextNode($,this.element)),S){var A=y.session.getScreenTabSize(c+b.index);E.appendChild(y.$tabStrings[A].cloneNode(!0)),c+=A-1}else if(T)if(y.showSpaces){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space",C.textContent=p.stringRepeat(y.SPACE_CHAR,T.length),E.appendChild(C)}else E.appendChild(this.dom.createTextNode(T,this.element));else if(k){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space ace_invalid",C.textContent=p.stringRepeat(y.SPACE_CHAR,k.length),E.appendChild(C)}else if(_){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className=y.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",C.textContent=y.showSpaces?y.SPACE_CHAR:_,E.appendChild(C)}else if(O){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className="ace_cjk",C.textContent=O,E.appendChild(C)}}}if(E.appendChild(this.dom.createTextNode(g?m.slice(g):m,this.element)),t(f.type))s.appendChild(E);else{var w="ace_"+f.type.replace(/\./g," ace_"),C=this.dom.createElement("span");f.type=="fold"&&(C.style.width=f.value.length*this.config.characterWidth+"px",C.setAttribute("title",e("inline-fold.closed.title","Unfold code"))),C.className=w,C.appendChild(E),s.appendChild(C)}return c+m.length},l.prototype.renderIndentGuide=function(s,c,f){var m=c.search(this.$indentGuideRe);if(m<=0||m>=f)return c;if(c[0]==" "){m-=m%this.tabSize;for(var y=m/this.tabSize,D=0;DD[E].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&s[c.row]!==""&&c.column===s[c.row].length){this.$highlightIndentGuideMarker.dir=1;for(var E=c.row+1;E0)m=s.element.childNodes[0];else return;var y=m.childNodes;if(y){var D=y[c-1];D&&D.classList&&D.classList.contains("ace_indent-guide")&&D.classList.add("ace_indent-guide-active")}}},l.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var s=this.$lines.cells;this.$clearActiveIndentGuide();var c=this.$highlightIndentGuideMarker.indentLevel;if(c!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var f=0;f=this.$highlightIndentGuideMarker.start+1){if(m.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(m,c)}}else for(var f=s.length-1;f>=0;f--){var m=s[f];if(this.$highlightIndentGuideMarker.end&&m.row=D;)E=this.$renderToken(b,E,S,T.substring(0,D-m)),T=T.substring(D-m),m=D,b=this.$createLineElement(),s.appendChild(b),b.appendChild(this.dom.createTextNode(p.stringRepeat(" ",f.indent),this.element)),y++,E=0,D=f[y]||Number.MAX_VALUE;T.length!=0&&(m+=T.length,E=this.$renderToken(b,E,S,T))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(b,E,null,"",!0)},l.prototype.$renderSimpleLine=function(s,c){for(var f=0,m=0;mthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(s,f,y,D);f=this.$renderToken(s,f,y,D)}}},l.prototype.$renderOverflowMessage=function(s,c,f,m,y){f&&this.$renderToken(s,c,f,m.slice(0,this.MAX_LINE_LENGTH-c));var D=this.dom.createElement("span");D.className="ace_inline_button ace_keyword ace_toggle_wrap",D.textContent=y?"":"",s.appendChild(D)},l.prototype.$renderLine=function(s,c,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(c)),f)var m=this.$getFoldLineTokens(c,f);else var m=this.session.getTokens(c);var y=s;if(m.length){var D=this.session.getRowSplitData(c);if(D&&D.length){this.$renderWrappedLine(s,m,D);var y=s.lastChild}else{var y=s;this.$useLineGroups()&&(y=this.$createLineElement(),s.appendChild(y)),this.$renderSimpleLine(y,m)}}else this.$useLineGroups()&&(y=this.$createLineElement(),s.appendChild(y));if(this.showEOL&&y){f&&(c=f.end.row);var E=this.dom.createElement("span");E.className="ace_invisible ace_invisible_eol",E.textContent=c==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,y.appendChild(E)}},l.prototype.$getFoldLineTokens=function(s,c){var f=this.session,m=[];function y(E,b,g){for(var S=0,T=0;T+E[S].value.lengthg-b&&(k=k.substring(0,g-b)),m.push({type:E[S].type,value:k}),T=b+k.length,S+=1}for(;Tg?m.push({type:E[S].type,value:k.substring(0,g-T)}):m.push(E[S]),T+=k.length,S+=1}}var D=f.getTokens(s);return c.walk(function(E,b,g,S,T){E!=null?m.push({type:"fold",value:E}):(T&&(D=f.getTokens(b)),D.length&&y(D,S,g))},c.end.row,this.session.getLine(c.end.row).length),m},l.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},l}();r.prototype.EOF_CHAR="¶",r.prototype.EOL_CHAR_LF="¬",r.prototype.EOL_CHAR_CRLF="¤",r.prototype.EOL_CHAR=r.prototype.EOL_CHAR_LF,r.prototype.TAB_CHAR="—",r.prototype.SPACE_CHAR="·",r.prototype.$padding=0,r.prototype.MAX_LINE_LENGTH=1e4,r.prototype.showInvisibles=!1,r.prototype.showSpaces=!1,r.prototype.showTabs=!1,r.prototype.showEOL=!1,r.prototype.displayIndentGuides=!0,r.prototype.$highlightIndentGuides=!0,r.prototype.$tabStrings=[],r.prototype.destroy={},r.prototype.onChangeTabSize=r.prototype.$computeTabString,o.implement(r.prototype,d),u.Text=r}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(i,u,v){var o=i("../lib/dom"),h=function(){function p(a){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return p.prototype.$updateOpacity=function(a){for(var d=this.cursors,e=d.length;e--;)o.setStyle(d[e].style,"opacity",a?"":"0")},p.prototype.$startCssAnimation=function(){for(var a=this.cursors,d=a.length;d--;)a[d].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},p.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},p.prototype.setPadding=function(a){this.$padding=a},p.prototype.setSession=function(a){this.session=a},p.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},p.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},p.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,o.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},p.prototype.addCursor=function(){var a=o.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},p.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},p.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},p.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},p.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var d=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),d()},this.blinkInterval),d()}},p.prototype.getPixelPosition=function(a,d){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var e=this.session.documentToScreenPosition(a),t=this.$padding+(this.session.$bidiHandler.isBidiRow(e.row,a.row)?this.session.$bidiHandler.getPosLeft(e.column):e.column*this.config.characterWidth),r=(e.row-(d?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:t,top:r}},p.prototype.isCursorInView=function(a,d){return a.top>=0&&a.topa.height+a.offset||l.top<0)&&e>1)){var s=this.cursors[t++]||this.addCursor(),c=s.style;this.drawCursor?this.drawCursor(s,l,a,d[e],this.session):this.isCursorInView(l,a)?(o.setStyle(c,"display","block"),o.translate(s,l.left,l.top),o.setStyle(c,"width",Math.round(a.characterWidth)+"px"),o.setStyle(c,"height",a.lineHeight+"px")):o.setStyle(c,"display","none")}}for(;this.cursors.length>t;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=l,this.restartTimer()},p.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},p.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},p}();h.prototype.$padding=0,h.prototype.drawCursor=null,u.Cursor=h}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var s=function(c,f){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,y){m.__proto__=y}||function(m,y){for(var D in y)Object.prototype.hasOwnProperty.call(y,D)&&(m[D]=y[D])},s(c,f)};return function(c,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");s(c,f);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)}}(),h=i("./lib/oop"),p=i("./lib/dom"),a=i("./lib/event"),d=i("./lib/event_emitter").EventEmitter,e=32768,t=function(){function s(c,f){this.element=p.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=p.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),c.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return s.prototype.setVisible=function(c){this.element.style.display=c?"":"none",this.isVisible=c,this.coeff=1},s}();h.implement(t.prototype,d);var r=function(s){o(c,s);function c(f,m){var y=s.call(this,f,"-v")||this;return y.scrollTop=0,y.scrollHeight=0,m.$scrollbarWidth=y.width=p.scrollbarWidth(f.ownerDocument),y.inner.style.width=y.element.style.width=(y.width||15)+5+"px",y.$minWidth=0,y}return c.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},c.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},c.prototype.setHeight=function(f){this.element.style.height=f+"px"},c.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>e?(this.coeff=e/f,f=e):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},c.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},c}(t);r.prototype.setInnerHeight=r.prototype.setScrollHeight;var l=function(s){o(c,s);function c(f,m){var y=s.call(this,f,"-h")||this;return y.scrollLeft=0,y.height=m.$scrollbarWidth,y.inner.style.height=y.element.style.height=(y.height||15)+5+"px",y}return c.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},c.prototype.getHeight=function(){return this.isVisible?this.height:0},c.prototype.setWidth=function(f){this.element.style.width=f+"px"},c.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},c}(t);u.ScrollBar=r,u.ScrollBarV=r,u.ScrollBarH=l,u.VScrollBar=r,u.HScrollBar=l}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var l=function(s,c){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,m){f.__proto__=m}||function(f,m){for(var y in m)Object.prototype.hasOwnProperty.call(m,y)&&(f[y]=m[y])},l(s,c)};return function(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");l(s,c);function f(){this.constructor=s}s.prototype=c===null?Object.create(c):(f.prototype=c.prototype,new f)}}(),h=i("./lib/oop"),p=i("./lib/dom"),a=i("./lib/event"),d=i("./lib/event_emitter").EventEmitter;p.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ +`),this.moveCursorToPosition(w)},C.prototype.setGhostText=function(w,x){this.renderer.setGhostText(w,x)},C.prototype.removeGhostText=function(){this.renderer.removeGhostText()},C.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var w=this.getCursorPosition(),x=w.column;if(x!==0){var I=this.session.getLine(w.row),F,R;xV.toLowerCase()?1:0});for(var R=new f(0,0,0,0),F=w.first;F<=w.last;F++){var B=x.getLine(F);R.start.row=F,R.end.row=F,R.end.column=B.length,x.replace(R,I[F-w.first])}},C.prototype.toggleCommentLines=function(){var w=this.session.getState(this.getCursorPosition().row),x=this.$getSelectedRows();this.session.getMode().toggleCommentLines(w,this.session,x.first,x.last)},C.prototype.toggleBlockComment=function(){var w=this.getCursorPosition(),x=this.session.getState(w.row),I=this.getSelectionRange();this.session.getMode().toggleBlockComment(x,this.session,I,w)},C.prototype.getNumberAt=function(w,x){var I=/[\-]?[0-9]+(?:\.[0-9]+)?/g;I.lastIndex=0;for(var F=this.session.getLine(w);I.lastIndex=x){var B={value:R[0],start:R.index,end:R.index+R[0].length};return B}}return null},C.prototype.modifyNumber=function(w){var x=this.selection.getCursor().row,I=this.selection.getCursor().column,F=new f(x,I-1,x,I),R=this.session.getTextRange(F);if(!isNaN(parseFloat(R))&&isFinite(R)){var B=this.getNumberAt(x,I);if(B){var P=B.value.indexOf(".")>=0?B.start+B.value.indexOf(".")+1:B.end,V=B.start+B.value.length-P,W=parseFloat(B.value);W*=Math.pow(10,V),P!==B.end&&I=P&&B<=V&&(I=ge,W.selection.clearSelection(),W.moveCursorTo(w,P+F),W.selection.selectTo(w,V+F)),P=V});for(var H=this.$toggleWordPairs,U,G=0;G=V&&P<=W&&Y.match(/((?:https?|ftp):\/\/[\S]+)/)){H=Y.replace(/[\s:.,'";}\]]+$/,"");break}V=W}}catch(Q){I={error:Q}}finally{try{G&&!G.done&&(F=U.return)&&F.call(U)}finally{if(I)throw I.error}}return H},C.prototype.openLink=function(){var w=this.selection.getCursor(),x=this.findLinkAt(w.row,w.column);return x&&window.open(x,"_blank"),x!=null},C.prototype.removeLines=function(){var w=this.$getSelectedRows();this.session.removeFullLines(w.first,w.last),this.clearSelection()},C.prototype.duplicateSelection=function(){var w=this.selection,x=this.session,I=w.getRange(),F=w.isBackwards();if(I.isEmpty()){var R=I.start.row;x.duplicateLines(R,R)}else{var B=F?I.start:I.end,P=x.insert(B,x.getTextRange(I));I.start=B,I.end=P,w.setSelectionRange(I,F)}},C.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},C.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},C.prototype.moveText=function(w,x,I){return this.session.moveText(w,x,I)},C.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},C.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},C.prototype.$moveLines=function(w,x){var I,F,R=this.selection;if(!R.inMultiSelectMode||this.inVirtualSelectionMode){var B=R.toOrientedRange();I=this.$getSelectedRows(B),F=this.session.$moveLines(I.first,I.last,x?0:w),x&&w==-1&&(F=0),B.moveBy(F,0),R.fromOrientedRange(B)}else{var P=R.rangeList.ranges;R.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var V=0,W=0,H=P.length,U=0;UQ+1)break;Q=ee.last}for(U--,V=this.session.$moveLines(Y,Q,x?0:w),x&&w==-1&&(G=U+1);G<=U;)P[G].moveBy(V,0),G++;x||(V=0),W+=V}R.fromOrientedRange(R.ranges[0]),R.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},C.prototype.$getSelectedRows=function(w){return w=(w||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(w.start.row),last:this.session.getRowFoldEnd(w.end.row)}},C.prototype.onCompositionStart=function(w){this.renderer.showComposition(w)},C.prototype.onCompositionUpdate=function(w){this.renderer.setCompositionText(w)},C.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},C.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},C.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},C.prototype.isRowVisible=function(w){return w>=this.getFirstVisibleRow()&&w<=this.getLastVisibleRow()},C.prototype.isRowFullyVisible=function(w){return w>=this.renderer.getFirstFullyVisibleRow()&&w<=this.renderer.getLastFullyVisibleRow()},C.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},C.prototype.$moveByPage=function(w,x){var I=this.renderer,F=this.renderer.layerConfig,R=w*Math.floor(F.height/F.lineHeight);x===!0?this.selection.$moveSelection(function(){this.moveCursorBy(R,0)}):x===!1&&(this.selection.moveCursorBy(R,0),this.selection.clearSelection());var B=I.scrollTop;I.scrollBy(0,R*F.lineHeight),x!=null&&I.scrollCursorIntoView(null,.5),I.animateScrolling(B)},C.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},C.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},C.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},C.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},C.prototype.scrollPageDown=function(){this.$moveByPage(1)},C.prototype.scrollPageUp=function(){this.$moveByPage(-1)},C.prototype.scrollToRow=function(w){this.renderer.scrollToRow(w)},C.prototype.scrollToLine=function(w,x,I,F){this.renderer.scrollToLine(w,x,I,F)},C.prototype.centerSelection=function(){var w=this.getSelectionRange(),x={row:Math.floor(w.start.row+(w.end.row-w.start.row)/2),column:Math.floor(w.start.column+(w.end.column-w.start.column)/2)};this.renderer.alignCursor(x,.5)},C.prototype.getCursorPosition=function(){return this.selection.getCursor()},C.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},C.prototype.getSelectionRange=function(){return this.selection.getRange()},C.prototype.selectAll=function(){this.selection.selectAll()},C.prototype.clearSelection=function(){this.selection.clearSelection()},C.prototype.moveCursorTo=function(w,x){this.selection.moveCursorTo(w,x)},C.prototype.moveCursorToPosition=function(w){this.selection.moveCursorToPosition(w)},C.prototype.jumpToMatching=function(w,x){var I=this.getCursorPosition(),F=new b(this.session,I.row,I.column),R=F.getCurrentToken(),B=0;R&&R.type.indexOf("tag-name")!==-1&&(R=F.stepBackward());var P=R||F.stepForward();if(P){var V,W=!1,H={},U=I.column-P.start,G,Y={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(P.value.match(/[{}()\[\]]/g)){for(;U1?H[P.value]++:R.value==="=0;--B)this.$tryReplace(I[B],w)&&F++;return this.selection.setSelectionRange(R),F},C.prototype.$tryReplace=function(w,x){var I=this.session.getTextRange(w);return x=this.$search.replace(I,x),x!==null?(w.end=this.session.replace(w,x),w):null},C.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},C.prototype.find=function(w,x,I){x||(x={}),typeof w=="string"||w instanceof RegExp?x.needle=w:typeof w=="object"&&u.mixin(x,w);var F=this.selection.getRange();x.needle==null&&(w=this.session.getTextRange(F)||this.$search.$options.needle,w||(F=this.session.getWordRange(F.start.row,F.start.column),w=this.session.getTextRange(F)),this.$search.set({needle:w})),this.$search.set(x),x.start||this.$search.set({start:F});var R=this.$search.find(this.session);if(x.preventScroll)return R;if(R)return this.revealRange(R,I),R;x.backwards?F.start=F.end:F.end=F.start,this.selection.setRange(F)},C.prototype.findNext=function(w,x){this.find({skipCurrent:!0,backwards:!1},w,x)},C.prototype.findPrevious=function(w,x){this.find(w,{skipCurrent:!0,backwards:!0},x)},C.prototype.revealRange=function(w,x){this.session.unfold(w),this.selection.setSelectionRange(w);var I=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(w.start,w.end,.5),x!==!1&&this.renderer.animateScrolling(I)},C.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(w){w.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},C.prototype.setAutoScrollEditorIntoView=function(w){if(w){var x,I=this,F=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var R=this.$scrollAnchor;R.style.cssText="position:absolute",this.container.insertBefore(R,this.container.firstChild);var B=this.on("changeSelection",function(){F=!0}),P=this.renderer.on("beforeRender",function(){F&&(x=I.renderer.container.getBoundingClientRect())}),V=this.renderer.on("afterRender",function(){if(F&&x&&(I.isFocused()||I.searchBox&&I.searchBox.isFocused())){var W=I.renderer,H=W.$cursorLayer.$pixelPos,U=W.layerConfig,G=H.top-U.offset;H.top>=0&&G+x.top<0?F=!0:H.topwindow.innerHeight?F=!1:F=null,F!=null&&(R.style.top=G+"px",R.style.left=H.left+"px",R.style.height=U.lineHeight+"px",R.scrollIntoView(F)),F=x=null}});this.setAutoScrollEditorIntoView=function(W){W||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",B),this.renderer.off("afterRender",V),this.renderer.off("beforeRender",P))}}},C.prototype.$resetCursorStyle=function(){var w=this.$cursorStyle||"ace",x=this.renderer.$cursorLayer;x&&(x.setSmoothBlinking(/smooth/.test(w)),x.isBlinking=!this.$readOnly&&w!="wide",d.setCssClass(x.element,"ace_slim-cursors",/slim/.test(w)))},C.prototype.prompt=function(w,x,I){var F=this;E.loadModule("ace/ext/prompt",function(R){R.prompt(F,w,x,I)})},C}();$.$uid=0,$.prototype.curOp=null,$.prototype.prevOp={},$.prototype.$mergeableCommands=["backspace","del","insertstring"],$.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],u.implement($.prototype,m),E.defineOptions($.prototype,"editor",{selectionStyle:{set:function(C){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:C})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(C){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(C){var w=this;this.textInput.setReadOnly(C),this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(I){var F=!1;if(I&&I.type=="keydown"){if(F=I&&I.key&&I.key.length==1&&!I.ctrlKey&&!I.metaKey,!F)return}else I&&I.type!=="exec"&&(F=!0);if(F){w.hoverTooltip||(w.hoverTooltip=new O);var R=d.createElement("div");R.textContent=S("editor.tooltip.disable-editing","Editing is disabled"),w.hoverTooltip.isOpen||w.hoverTooltip.showForRange(w,w.getSelectionRange(),R)}else w.hoverTooltip&&w.hoverTooltip.isOpen&&w.hoverTooltip.hide()});var x=this.textInput.getElement();C?(_.addListener(x,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(_.removeListener(x,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("commandUnavailable",this.$readOnlyCallback),this.hoverTooltip&&(this.hoverTooltip.destroy(),this.hoverTooltip=null))},initialValue:!1},copyWithEmptySelection:{set:function(C){this.textInput.setCopyWithEmptySelection(C)},initialValue:!1},cursorStyle:{set:function(C){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(C){this.setAutoScrollEditorIntoView(C)}},keyboardHandler:{set:function(C){this.setKeyboardHandler(C)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(C){this.session.setValue(C)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(C){this.setSession(C)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(C){this.renderer.$gutterLayer.setShowLineNumbers(C),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),C&&this.$relativeLineNumbers?A.attach(this):A.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(C){this.$showLineNumbers&&C?A.attach(this):A.detach(this)}},placeholder:{set:function(C){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var w=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(w&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),d.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!w&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),d.addCssClass(this.container,"ace_hasPlaceholder");var x=d.createElement("div");x.className="ace_placeholder",x.textContent=this.$placeholder||"",this.renderer.placeholderNode=x,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!w&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(C){var w={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(F){F.blur(),F.renderer.scroller.focus()},readOnly:!0},x=function(F){if(F.target==this.renderer.scroller&&F.keyCode===k.enter){F.preventDefault();var R=this.getCursorPosition().row;this.isRowVisible(R)||this.scrollToLine(R,!0,!0),this.focus()}},I;C?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(p.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",S("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",S("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",x.bind(this)),this.commands.addCommand(w),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",S("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",S("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),I||(I=new g(this)),I.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",x.bind(this)),this.commands.removeCommand(w),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),I&&I.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(C){this.$textInputAriaLabel=C},initialValue:""},enableMobileMenu:{set:function(C){this.$enableMobileMenu=C},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var A={getText:function(C,w){return(Math.abs(C.selection.lead.row-w)||w+1+(w<9?"·":""))+""},getWidth:function(C,w,x){return Math.max(w.toString().length,(x.lastRow+1).toString().length,2)*x.characterWidth},update:function(C,w){w.renderer.$loop.schedule(w.renderer.CHANGE_GUTTER)},attach:function(C){C.renderer.$gutterLayer.$renderer=this,C.on("changeSelection",this.update),this.update(null,C)},detach:function(C){C.renderer.$gutterLayer.$renderer==this&&(C.renderer.$gutterLayer.$renderer=null),C.off("changeSelection",this.update),this.update(null,C)}};h.Editor=$}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(i,h,v){var s=i("../lib/dom"),u=function(){function d(a,p){this.element=a,this.canvasHeight=p||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return d.prototype.moveContainer=function(a){s.translate(this.element,0,-(a.firstRowScreen*a.lineHeight%this.canvasHeight)-a.offset*this.$offsetCoefficient)},d.prototype.pageChanged=function(a,p){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(p.firstRowScreen*p.lineHeight/this.canvasHeight)},d.prototype.computeLineTop=function(a,p,e){var t=p.firstRowScreen*p.lineHeight,r=Math.floor(t/this.canvasHeight),l=e.documentToScreenRow(a,0)*p.lineHeight;return l-r*this.canvasHeight},d.prototype.computeLineHeight=function(a,p,e){return p.lineHeight*e.getRowLineCount(a)},d.prototype.getLength=function(){return this.cells.length},d.prototype.get=function(a){return this.cells[a]},d.prototype.shift=function(){this.$cacheCell(this.cells.shift())},d.prototype.pop=function(){this.$cacheCell(this.cells.pop())},d.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var p=s.createFragment(this.element),e=0;eD&&(g=y.end.row+1,y=c.getNextFoldLine(g,y),D=y?y.start.row:1/0),g>m){for(;this.$lines.getLength()>b+1;)this.$lines.pop();break}E=this.$lines.get(++b),E?E.row=g:(E=this.$lines.createCell(g,o,this.session,r),this.$lines.push(E)),this.$renderCell(E,o,y,g),g++}this._signal("afterRender"),this.$updateGutterWidth(o)},l.prototype.$updateGutterWidth=function(o){var c=this.session,f=c.gutterRenderer||this.$renderer,m=c.$firstLineNumber,y=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||c.$useWrapMode)&&(y=c.getLength()+m-1);var D=f?f.getWidth(c,y,o):y.toString().length*o.characterWidth,E=this.$padding||this.$computePadding();D+=E.left+E.right,D!==this.gutterWidth&&!isNaN(D)&&(this.gutterWidth=D,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",D))},l.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var o=this.session.selection.getCursor();this.$cursorRow!==o.row&&(this.$cursorRow=o.row)}},l.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var o=this.session.selection.cursor.row;if(this.$cursorRow=o,!(this.$cursorCell&&this.$cursorCell.row==o)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var c=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(m.row>this.$cursorRow){var y=this.session.getFoldLine(this.$cursorRow);if(f>0&&y&&y.start.row==c[f-1].row)m=c[f-1];else break}m.element.className="ace_gutter-active-line "+m.element.className,this.$cursorCell=m;break}}}}},l.prototype.scrollLines=function(o){var c=this.config;if(this.config=o,this.$updateCursorRow(),this.$lines.pageChanged(c,o))return this.update(o);this.$lines.moveContainer(o);var f=Math.min(o.lastRow+o.gutterOffset,this.session.getLength()-1),m=this.oldLastRow;if(this.oldLastRow=f,!c||m0;y--)this.$lines.shift();if(m>f)for(var y=this.session.getFoldedRowCount(f+1,m);y>0;y--)this.$lines.pop();o.firstRowm&&this.$lines.push(this.$renderLines(o,m+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(o)},l.prototype.$renderLines=function(o,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,o,this.session,r);this.$renderCell(b,o,D,y),m.push(b),y++}return m},l.prototype.$renderCell=function(o,c,f,m){var y=o.element,D=this.session,E=y.childNodes[0],b=y.childNodes[1],g=y.childNodes[2],S=y.childNodes[3],T=g.firstChild,k=D.$firstLineNumber,_=D.$breakpoints,O=D.$decorations,$=D.gutterRenderer||this.$renderer,A=this.$showFoldWidgets&&D.foldWidgets,C=f?f.start.row:Number.MAX_VALUE,w=c.lineHeight+"px",x=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",F=($?$.getText(D,m):m+k).toString();if(this.$highlightGutterLine&&(m==this.$cursorRow||f&&m=C&&this.$cursorRow<=f.end.row)&&(x+="ace_gutter-active-line ",this.$cursorCell!=o&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=o)),_[m]&&(x+=_[m]),O[m]&&(x+=O[m]),this.$annotations[m]&&m!==C&&(x+=this.$annotations[m].className),A){var R=A[m];R==null&&(R=A[m]=D.getFoldWidget(m))}if(R){var B="ace_fold-widget ace_"+R,P=R=="start"&&m==C&&mf.right-c.right)return"foldWidgets"},l}();t.prototype.$fixedWidth=!1,t.prototype.$highlightGutterLine=!0,t.prototype.$renderer="",t.prototype.$showLineNumbers=!0,t.prototype.$showFoldWidgets=!0,u.implement(t.prototype,a);function r(l){var o=document.createTextNode("");l.appendChild(o);var c=s.createElement("span");l.appendChild(c);var f=s.createElement("span");l.appendChild(f);var m=s.createElement("span");return f.appendChild(m),l}h.Gutter=t}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(i,h,v){var s=i("../range").Range,u=i("../lib/dom"),d=function(){function p(e){this.element=u.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return p.prototype.setPadding=function(e){this.$padding=e},p.prototype.setSession=function(e){this.session=e},p.prototype.setMarkers=function(e){this.markers=e},p.prototype.elt=function(e,t){var r=this.i!=-1&&this.element.childNodes[this.i];r?this.i++:(r=document.createElement("div"),this.element.appendChild(r),this.i=-1),r.style.cssText=t,r.className=e},p.prototype.update=function(e){if(e){this.config=e,this.i=0;var t;for(var r in this.markers){var l=this.markers[r];if(!l.range){l.update(t,this,this.session,e);continue}var o=l.range.clipRows(e.firstRow,e.lastRow);if(!o.isEmpty())if(o=o.toScreenRange(this.session),l.renderer){var c=this.$getTop(o.start.row,e),f=this.$padding+o.start.column*e.characterWidth;l.renderer(t,o,f,c,e)}else l.type=="fullLine"?this.drawFullLineMarker(t,o,l.clazz,e):l.type=="screenLine"?this.drawScreenLineMarker(t,o,l.clazz,e):o.isMultiLine()?l.type=="text"?this.drawTextMarker(t,o,l.clazz,e):this.drawMultiLineMarker(t,o,l.clazz,e):this.drawSingleLineMarker(t,o,l.clazz+" ace_start ace_br15",e)}if(this.i!=-1)for(;this.ib,y==m),l,y==m?0:1,o)},p.prototype.drawMultiLineMarker=function(e,t,r,l,o){var c=this.$padding,f=l.lineHeight,m=this.$getTop(t.start.row,l),y=c+t.start.column*l.characterWidth;if(o=o||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var D=t.clone();D.end.row=D.start.row,D.end.column=this.session.getLine(D.start.row).length,this.drawBidiSingleLineMarker(e,D,r+" ace_br1 ace_start",l,null,o)}else this.elt(r+" ace_br1 ace_start","height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+y+"px;"+(o||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var D=t.clone();D.start.row=D.end.row,D.start.column=0,this.drawBidiSingleLineMarker(e,D,r+" ace_br12",l,null,o)}else{m=this.$getTop(t.end.row,l);var E=t.end.column*l.characterWidth;this.elt(r+" ace_br12","height:"+f+"px;width:"+E+"px;top:"+m+"px;left:"+c+"px;"+(o||""))}if(f=(t.end.row-t.start.row-1)*l.lineHeight,!(f<=0)){m=this.$getTop(t.start.row+1,l);var b=(t.start.column?1:0)|(t.end.column?0:8);this.elt(r+(b?" ace_br"+b:""),"height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+c+"px;"+(o||""))}},p.prototype.drawSingleLineMarker=function(e,t,r,l,o,c){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,r,l,o,c);var f=l.lineHeight,m=(t.end.column+(o||0)-t.start.column)*l.characterWidth,y=this.$getTop(t.start.row,l),D=this.$padding+t.start.column*l.characterWidth;this.elt(r,"height:"+f+"px;width:"+m+"px;top:"+y+"px;left:"+D+"px;"+(c||""))},p.prototype.drawBidiSingleLineMarker=function(e,t,r,l,o,c){var f=l.lineHeight,m=this.$getTop(t.start.row,l),y=this.$padding,D=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);D.forEach(function(E){this.elt(r,"height:"+f+"px;width:"+(E.width+(o||0))+"px;top:"+m+"px;left:"+(y+E.left)+"px;"+(c||""))},this)},p.prototype.drawFullLineMarker=function(e,t,r,l,o){var c=this.$getTop(t.start.row,l),f=l.lineHeight;t.start.row!=t.end.row&&(f+=this.$getTop(t.end.row,l)-c),this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(o||""))},p.prototype.drawScreenLineMarker=function(e,t,r,l,o){var c=this.$getTop(t.start.row,l),f=l.lineHeight;this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(o||""))},p}();d.prototype.$padding=0;function a(p,e,t,r){return(p?1:0)|(e?2:0)|(t?4:0)|(r?8:0)}h.Marker=d}),ace.define("ace/layer/text_util",["require","exports","module"],function(i,h,v){var s=new Set(["text","rparen","lparen"]);h.isTextToken=function(u){return s.has(u)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(i,h,v){var s=i("../lib/oop"),u=i("../lib/dom"),d=i("../lib/lang"),a=i("./lines").Lines,p=i("../lib/event_emitter").EventEmitter,e=i("../config").nls,t=i("./text_util").isTextToken,r=function(){function l(o){this.dom=u,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",o.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return l.prototype.$updateEolChar=function(){var o=this.session.doc,c=o.getNewLineCharacter()==` +`&&o.getNewLineMode()!="windows",f=c?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},l.prototype.setPadding=function(o){this.$padding=o,this.element.style.margin="0 "+o+"px"},l.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},l.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},l.prototype.$setFontMetrics=function(o){this.$fontMetrics=o,this.$fontMetrics.on("changeCharacterSize",function(c){this._signal("changeCharacterSize",c)}.bind(this)),this.$pollSizeChanges()},l.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},l.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},l.prototype.setSession=function(o){this.session=o,o&&this.$computeTabString()},l.prototype.setShowInvisibles=function(o){return this.showInvisibles==o?!1:(this.showInvisibles=o,typeof o=="string"?(this.showSpaces=/tab/i.test(o),this.showTabs=/space/i.test(o),this.showEOL=/eol/i.test(o)):this.showSpaces=this.showTabs=this.showEOL=o,this.$computeTabString(),!0)},l.prototype.setDisplayIndentGuides=function(o){return this.displayIndentGuides==o?!1:(this.displayIndentGuides=o,this.$computeTabString(),!0)},l.prototype.setHighlightIndentGuides=function(o){return this.$highlightIndentGuides===o?!1:(this.$highlightIndentGuides=o,o)},l.prototype.$computeTabString=function(){var o=this.session.getTabSize();this.tabSize=o;for(var c=this.$tabStrings=[0],f=1;fT&&(g=S.end.row+1,S=this.session.getNextFoldLine(g,S),T=S?S.start.row:1/0),!(g>y);){var k=D[E++];if(k){this.dom.removeChildren(k),this.$renderLine(k,g,g==T?S:!1),b&&(k.style.top=this.$lines.computeLineTop(g,o,this.session)+"px");var _=o.lineHeight*this.session.getRowLength(g)+"px";k.style.height!=_&&(b=!0,k.style.height=_)}g++}if(b)for(;E0;y--)this.$lines.shift();if(c.lastRow>o.lastRow)for(var y=this.session.getFoldedRowCount(o.lastRow+1,c.lastRow);y>0;y--)this.$lines.pop();o.firstRowc.lastRow&&this.$lines.push(this.$renderLinesFragment(o,c.lastRow+1,o.lastRow)),this.$highlightIndentGuide()},l.prototype.$renderLinesFragment=function(o,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,o,this.session),g=b.element;this.dom.removeChildren(g),u.setStyle(g.style,"height",this.$lines.computeLineHeight(y,o,this.session)+"px"),u.setStyle(g.style,"top",this.$lines.computeLineTop(y,o,this.session)+"px"),this.$renderLine(g,y,y==E?D:!1),this.$useLineGroups()?g.className="ace_line_group":g.className="ace_line",m.push(b),y++}return m},l.prototype.update=function(o){this.$lines.moveContainer(o),this.config=o;for(var c=o.firstRow,f=o.lastRow,m=this.$lines;m.getLength();)m.pop();m.push(this.$renderLinesFragment(o,c,f))},l.prototype.$renderToken=function(o,c,f,m){for(var y=this,D=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,E=this.dom.createFragment(this.element),b,g=0;b=D.exec(m);){var S=b[1],T=b[2],k=b[3],_=b[4],O=b[5];if(!(!y.showSpaces&&T)){var $=g!=b.index?m.slice(g,b.index):"";if(g=b.index+b[0].length,$&&E.appendChild(this.dom.createTextNode($,this.element)),S){var A=y.session.getScreenTabSize(c+b.index);E.appendChild(y.$tabStrings[A].cloneNode(!0)),c+=A-1}else if(T)if(y.showSpaces){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space",C.textContent=d.stringRepeat(y.SPACE_CHAR,T.length),E.appendChild(C)}else E.appendChild(this.dom.createTextNode(T,this.element));else if(k){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space ace_invalid",C.textContent=d.stringRepeat(y.SPACE_CHAR,k.length),E.appendChild(C)}else if(_){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className=y.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",C.textContent=y.showSpaces?y.SPACE_CHAR:_,E.appendChild(C)}else if(O){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className="ace_cjk",C.textContent=O,E.appendChild(C)}}}if(E.appendChild(this.dom.createTextNode(g?m.slice(g):m,this.element)),t(f.type))o.appendChild(E);else{var w="ace_"+f.type.replace(/\./g," ace_"),C=this.dom.createElement("span");f.type=="fold"&&(C.style.width=f.value.length*this.config.characterWidth+"px",C.setAttribute("title",e("inline-fold.closed.title","Unfold code"))),C.className=w,C.appendChild(E),o.appendChild(C)}return c+m.length},l.prototype.renderIndentGuide=function(o,c,f){var m=c.search(this.$indentGuideRe);if(m<=0||m>=f)return c;if(c[0]==" "){m-=m%this.tabSize;for(var y=m/this.tabSize,D=0;DD[E].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&o[c.row]!==""&&c.column===o[c.row].length){this.$highlightIndentGuideMarker.dir=1;for(var E=c.row+1;E0)m=o.element.childNodes[0];else return;var y=m.childNodes;if(y){var D=y[c-1];D&&D.classList&&D.classList.contains("ace_indent-guide")&&D.classList.add("ace_indent-guide-active")}}},l.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var o=this.$lines.cells;this.$clearActiveIndentGuide();var c=this.$highlightIndentGuideMarker.indentLevel;if(c!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var f=0;f=this.$highlightIndentGuideMarker.start+1){if(m.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(m,c)}}else for(var f=o.length-1;f>=0;f--){var m=o[f];if(this.$highlightIndentGuideMarker.end&&m.row=D;)E=this.$renderToken(b,E,S,T.substring(0,D-m)),T=T.substring(D-m),m=D,b=this.$createLineElement(),o.appendChild(b),b.appendChild(this.dom.createTextNode(d.stringRepeat(" ",f.indent),this.element)),y++,E=0,D=f[y]||Number.MAX_VALUE;T.length!=0&&(m+=T.length,E=this.$renderToken(b,E,S,T))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(b,E,null,"",!0)},l.prototype.$renderSimpleLine=function(o,c){for(var f=0,m=0;mthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(o,f,y,D);f=this.$renderToken(o,f,y,D)}}},l.prototype.$renderOverflowMessage=function(o,c,f,m,y){f&&this.$renderToken(o,c,f,m.slice(0,this.MAX_LINE_LENGTH-c));var D=this.dom.createElement("span");D.className="ace_inline_button ace_keyword ace_toggle_wrap",D.textContent=y?"":"",o.appendChild(D)},l.prototype.$renderLine=function(o,c,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(c)),f)var m=this.$getFoldLineTokens(c,f);else var m=this.session.getTokens(c);var y=o;if(m.length){var D=this.session.getRowSplitData(c);if(D&&D.length){this.$renderWrappedLine(o,m,D);var y=o.lastChild}else{var y=o;this.$useLineGroups()&&(y=this.$createLineElement(),o.appendChild(y)),this.$renderSimpleLine(y,m)}}else this.$useLineGroups()&&(y=this.$createLineElement(),o.appendChild(y));if(this.showEOL&&y){f&&(c=f.end.row);var E=this.dom.createElement("span");E.className="ace_invisible ace_invisible_eol",E.textContent=c==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,y.appendChild(E)}},l.prototype.$getFoldLineTokens=function(o,c){var f=this.session,m=[];function y(E,b,g){for(var S=0,T=0;T+E[S].value.lengthg-b&&(k=k.substring(0,g-b)),m.push({type:E[S].type,value:k}),T=b+k.length,S+=1}for(;Tg?m.push({type:E[S].type,value:k.substring(0,g-T)}):m.push(E[S]),T+=k.length,S+=1}}var D=f.getTokens(o);return c.walk(function(E,b,g,S,T){E!=null?m.push({type:"fold",value:E}):(T&&(D=f.getTokens(b)),D.length&&y(D,S,g))},c.end.row,this.session.getLine(c.end.row).length),m},l.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},l}();r.prototype.EOF_CHAR="¶",r.prototype.EOL_CHAR_LF="¬",r.prototype.EOL_CHAR_CRLF="¤",r.prototype.EOL_CHAR=r.prototype.EOL_CHAR_LF,r.prototype.TAB_CHAR="—",r.prototype.SPACE_CHAR="·",r.prototype.$padding=0,r.prototype.MAX_LINE_LENGTH=1e4,r.prototype.showInvisibles=!1,r.prototype.showSpaces=!1,r.prototype.showTabs=!1,r.prototype.showEOL=!1,r.prototype.displayIndentGuides=!0,r.prototype.$highlightIndentGuides=!0,r.prototype.$tabStrings=[],r.prototype.destroy={},r.prototype.onChangeTabSize=r.prototype.$computeTabString,s.implement(r.prototype,p),h.Text=r}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(i,h,v){var s=i("../lib/dom"),u=function(){function d(a){this.element=s.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),s.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return d.prototype.$updateOpacity=function(a){for(var p=this.cursors,e=p.length;e--;)s.setStyle(p[e].style,"opacity",a?"":"0")},d.prototype.$startCssAnimation=function(){for(var a=this.cursors,p=a.length;p--;)a[p].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&s.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},d.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,s.removeCssClass(this.element,"ace_animate-blinking")},d.prototype.setPadding=function(a){this.$padding=a},d.prototype.setSession=function(a){this.session=a},d.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},d.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},d.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,s.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},d.prototype.addCursor=function(){var a=s.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},d.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},d.prototype.hideCursor=function(){this.isVisible=!1,s.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},d.prototype.showCursor=function(){this.isVisible=!0,s.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},d.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,s.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&s.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),s.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var p=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),p()},this.blinkInterval),p()}},d.prototype.getPixelPosition=function(a,p){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var e=this.session.documentToScreenPosition(a),t=this.$padding+(this.session.$bidiHandler.isBidiRow(e.row,a.row)?this.session.$bidiHandler.getPosLeft(e.column):e.column*this.config.characterWidth),r=(e.row-(p?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:t,top:r}},d.prototype.isCursorInView=function(a,p){return a.top>=0&&a.topa.height+a.offset||l.top<0)&&e>1)){var o=this.cursors[t++]||this.addCursor(),c=o.style;this.drawCursor?this.drawCursor(o,l,a,p[e],this.session):this.isCursorInView(l,a)?(s.setStyle(c,"display","block"),s.translate(o,l.left,l.top),s.setStyle(c,"width",Math.round(a.characterWidth)+"px"),s.setStyle(c,"height",a.lineHeight+"px")):s.setStyle(c,"display","none")}}for(;this.cursors.length>t;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=l,this.restartTimer()},d.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?s.addCssClass(this.element,"ace_overwrite-cursors"):s.removeCssClass(this.element,"ace_overwrite-cursors"))},d.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},d}();u.prototype.$padding=0,u.prototype.drawCursor=null,h.Cursor=u}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,h,v){var s=this&&this.__extends||function(){var o=function(c,f){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,y){m.__proto__=y}||function(m,y){for(var D in y)Object.prototype.hasOwnProperty.call(y,D)&&(m[D]=y[D])},o(c,f)};return function(c,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");o(c,f);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)}}(),u=i("./lib/oop"),d=i("./lib/dom"),a=i("./lib/event"),p=i("./lib/event_emitter").EventEmitter,e=32768,t=function(){function o(c,f){this.element=d.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=d.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),c.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return o.prototype.setVisible=function(c){this.element.style.display=c?"":"none",this.isVisible=c,this.coeff=1},o}();u.implement(t.prototype,p);var r=function(o){s(c,o);function c(f,m){var y=o.call(this,f,"-v")||this;return y.scrollTop=0,y.scrollHeight=0,m.$scrollbarWidth=y.width=d.scrollbarWidth(f.ownerDocument),y.inner.style.width=y.element.style.width=(y.width||15)+5+"px",y.$minWidth=0,y}return c.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},c.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},c.prototype.setHeight=function(f){this.element.style.height=f+"px"},c.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>e?(this.coeff=e/f,f=e):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},c.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},c}(t);r.prototype.setInnerHeight=r.prototype.setScrollHeight;var l=function(o){s(c,o);function c(f,m){var y=o.call(this,f,"-h")||this;return y.scrollLeft=0,y.height=m.$scrollbarWidth,y.inner.style.height=y.element.style.height=(y.height||15)+5+"px",y}return c.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},c.prototype.getHeight=function(){return this.isVisible?this.height:0},c.prototype.setWidth=function(f){this.element.style.width=f+"px"},c.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},c}(t);h.ScrollBar=r,h.ScrollBarV=r,h.ScrollBarH=l,h.VScrollBar=r,h.HScrollBar=l}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,h,v){var s=this&&this.__extends||function(){var l=function(o,c){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,m){f.__proto__=m}||function(f,m){for(var y in m)Object.prototype.hasOwnProperty.call(m,y)&&(f[y]=m[y])},l(o,c)};return function(o,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");l(o,c);function f(){this.constructor=o}o.prototype=c===null?Object.create(c):(f.prototype=c.prototype,new f)}}(),u=i("./lib/oop"),d=i("./lib/dom"),a=i("./lib/event"),p=i("./lib/event_emitter").EventEmitter;d.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ position: absolute; background: rgba(128, 128, 128, 0.6); -moz-box-sizing: border-box; @@ -265,7 +265,7 @@ import{C as dt,R as M}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh .ace_editor>.ace_sb_grabbed { z-index: 8; background: #000; -}`,"ace_scrollbar.css",!1);var e=function(){function l(s,c){this.element=p.createElement("div"),this.element.className="ace_sb"+c,this.inner=p.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,s.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return l.prototype.setVisible=function(s){this.element.style.display=s?"":"none",this.isVisible=s,this.coeff=1},l}();h.implement(e.prototype,d);var t=function(l){o(s,l);function s(c,f){var m=l.call(this,c,"-v")||this;return m.scrollTop=0,m.scrollHeight=0,m.parent=c,m.width=m.VScrollWidth,m.renderer=f,m.inner.style.width=m.element.style.width=(m.width||15)+"px",m.$minWidth=0,m}return s.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientY,D=function(_){y=_.clientY},E=function(){clearInterval(T)},b=f.clientY,g=this.thumbTop,S=function(){if(y!==void 0){var _=m.scrollTopFromThumbTop(g+y-b);_!==m.scrollTop&&m._emit("scroll",{data:_})}};a.capture(this.inner,D,E);var T=setInterval(S,20);return a.preventDefault(f)}var k=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(k)}),a.preventDefault(f)}},s.prototype.getHeight=function(){return this.height},s.prototype.scrollTopFromThumbTop=function(c){var f=c*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},s.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},s.prototype.setHeight=function(c){this.height=Math.max(0,c),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},s.prototype.setScrollHeight=function(c,f){this.pageHeight===c&&!f||(this.pageHeight=c,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},s.prototype.setScrollTop=function(c){this.scrollTop=c,c<0&&(c=0),this.thumbTop=c*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},s}(e);t.prototype.setInnerHeight=t.prototype.setScrollHeight;var r=function(l){o(s,l);function s(c,f){var m=l.call(this,c,"-h")||this;return m.scrollLeft=0,m.scrollWidth=0,m.height=m.HScrollHeight,m.inner.style.height=m.element.style.height=(m.height||12)+"px",m.renderer=f,m}return s.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientX,D=function(_){y=_.clientX},E=function(){clearInterval(T)},b=f.clientX,g=this.thumbLeft,S=function(){if(y!==void 0){var _=m.scrollLeftFromThumbLeft(g+y-b);_!==m.scrollLeft&&m._emit("scroll",{data:_})}};a.capture(this.inner,D,E);var T=setInterval(S,20);return a.preventDefault(f)}var k=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(k)}),a.preventDefault(f)}},s.prototype.getHeight=function(){return this.isVisible?this.height:0},s.prototype.scrollLeftFromThumbLeft=function(c){var f=c*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},s.prototype.setWidth=function(c){this.width=Math.max(0,c),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},s.prototype.setScrollWidth=function(c,f){this.pageWidth===c&&!f||(this.pageWidth=c,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},s.prototype.setScrollLeft=function(c){this.scrollLeft=c,c<0&&(c=0),this.thumbLeft=c*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},s}(e);r.prototype.setInnerWidth=r.prototype.setScrollWidth,u.ScrollBar=t,u.ScrollBarV=t,u.ScrollBarH=r,u.VScrollBar=t,u.HScrollBar=r}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(i,u,v){var o=i("./lib/event"),h=function(){function p(a,d){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=d||window;var e=this;this._flush=function(t){e.pending=!1;var r=e.changes;if(r&&(o.blockIdle(100),e.changes=0,e.onRender(r)),e.changes){if(e.$recursionLimit--<0)return;e.schedule()}else e.$recursionLimit=2}}return p.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},p.prototype.clear=function(a){var d=this.changes;return this.changes=0,d},p}();u.RenderLoop=h}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/dom"),p=i("../lib/lang"),a=i("../lib/event"),d=i("../lib/useragent"),e=i("../lib/event_emitter").EventEmitter,t=512,r=typeof ResizeObserver=="function",l=200,s=function(){function c(f){this.el=h.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=h.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=h.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=p.stringRepeat("X",t),this.$characterSize={width:0,height:0},r?this.$addObserver():this.checkForSizeChanges()}return c.prototype.$setMeasureNodeStyles=function(f,m){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",d.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=m?"hidden":"visible"},c.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var m=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=m&&m.width===f.width&&m.height===f.height,this._emit("changeCharacterSize",{data:f})}},c.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(m){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},c.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=a.onIdle(function m(){f.checkForSizeChanges(),a.onIdle(m,500)},500)},c.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},c.prototype.$measureSizes=function(f){var m={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/t};return m.width===0||m.height===0?null:m},c.prototype.$measureCharWidth=function(f){this.$main.textContent=p.stringRepeat(f,t);var m=this.$main.getBoundingClientRect();return m.width/t},c.prototype.getCharacterWidth=function(f){var m=this.charSizes[f];return m===void 0&&(m=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),m},c.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},c.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},c.prototype.$initTransformMeasureNodes=function(){var f=function(m,y){return["div",{style:"position: absolute;top:"+m+"px;left:"+y+"px;"}]};this.els=h.buildDom([f(0,0),f(l,0),f(0,l),f(l,l)],this.el)},c.prototype.transformCoordinates=function(f,m){if(f){var y=this.$getZoom(this.el);f=g(1/y,f)}function D(B,P,V){var W=B[1]*P[0]-B[0]*P[1];return[(-P[1]*V[0]+P[0]*V[1])/W,(+B[1]*V[0]-B[0]*V[1])/W]}function E(B,P){return[B[0]-P[0],B[1]-P[1]]}function b(B,P){return[B[0]+P[0],B[1]+P[1]]}function g(B,P){return[B*P[0],B*P[1]]}this.els||this.$initTransformMeasureNodes();function S(B){var P=B.getBoundingClientRect();return[P.left,P.top]}var T=S(this.els[0]),k=S(this.els[1]),_=S(this.els[2]),O=S(this.els[3]),$=D(E(O,k),E(O,_),E(b(k,_),b(O,T))),A=g(1+$[0],E(k,T)),C=g(1+$[1],E(_,T));if(m){var w=m,x=$[0]*w[0]/l+$[1]*w[1]/l+1,I=b(g(w[0],A),g(w[1],C));return b(g(1/x/l,I),T)}var F=E(f,T),R=D(E(A,g($[0],F)),E(C,g($[1],F)),F);return g(l,R)},c}();s.prototype.$characterSize={width:0,height:0},o.implement(s.prototype,e),u.FontMetrics=s}),ace.define("ace/css/editor-css",["require","exports","module"],function(i,u,v){v.exports=` +}`,"ace_scrollbar.css",!1);var e=function(){function l(o,c){this.element=d.createElement("div"),this.element.className="ace_sb"+c,this.inner=d.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,o.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return l.prototype.setVisible=function(o){this.element.style.display=o?"":"none",this.isVisible=o,this.coeff=1},l}();u.implement(e.prototype,p);var t=function(l){s(o,l);function o(c,f){var m=l.call(this,c,"-v")||this;return m.scrollTop=0,m.scrollHeight=0,m.parent=c,m.width=m.VScrollWidth,m.renderer=f,m.inner.style.width=m.element.style.width=(m.width||15)+"px",m.$minWidth=0,m}return o.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientY,D=function(_){y=_.clientY},E=function(){clearInterval(T)},b=f.clientY,g=this.thumbTop,S=function(){if(y!==void 0){var _=m.scrollTopFromThumbTop(g+y-b);_!==m.scrollTop&&m._emit("scroll",{data:_})}};a.capture(this.inner,D,E);var T=setInterval(S,20);return a.preventDefault(f)}var k=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(k)}),a.preventDefault(f)}},o.prototype.getHeight=function(){return this.height},o.prototype.scrollTopFromThumbTop=function(c){var f=c*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},o.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},o.prototype.setHeight=function(c){this.height=Math.max(0,c),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},o.prototype.setScrollHeight=function(c,f){this.pageHeight===c&&!f||(this.pageHeight=c,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},o.prototype.setScrollTop=function(c){this.scrollTop=c,c<0&&(c=0),this.thumbTop=c*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},o}(e);t.prototype.setInnerHeight=t.prototype.setScrollHeight;var r=function(l){s(o,l);function o(c,f){var m=l.call(this,c,"-h")||this;return m.scrollLeft=0,m.scrollWidth=0,m.height=m.HScrollHeight,m.inner.style.height=m.element.style.height=(m.height||12)+"px",m.renderer=f,m}return o.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientX,D=function(_){y=_.clientX},E=function(){clearInterval(T)},b=f.clientX,g=this.thumbLeft,S=function(){if(y!==void 0){var _=m.scrollLeftFromThumbLeft(g+y-b);_!==m.scrollLeft&&m._emit("scroll",{data:_})}};a.capture(this.inner,D,E);var T=setInterval(S,20);return a.preventDefault(f)}var k=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(k)}),a.preventDefault(f)}},o.prototype.getHeight=function(){return this.isVisible?this.height:0},o.prototype.scrollLeftFromThumbLeft=function(c){var f=c*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},o.prototype.setWidth=function(c){this.width=Math.max(0,c),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},o.prototype.setScrollWidth=function(c,f){this.pageWidth===c&&!f||(this.pageWidth=c,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},o.prototype.setScrollLeft=function(c){this.scrollLeft=c,c<0&&(c=0),this.thumbLeft=c*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},o}(e);r.prototype.setInnerWidth=r.prototype.setScrollWidth,h.ScrollBar=t,h.ScrollBarV=t,h.ScrollBarH=r,h.VScrollBar=t,h.HScrollBar=r}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(i,h,v){var s=i("./lib/event"),u=function(){function d(a,p){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=p||window;var e=this;this._flush=function(t){e.pending=!1;var r=e.changes;if(r&&(s.blockIdle(100),e.changes=0,e.onRender(r)),e.changes){if(e.$recursionLimit--<0)return;e.schedule()}else e.$recursionLimit=2}}return d.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(s.nextFrame(this._flush),this.pending=!0)},d.prototype.clear=function(a){var p=this.changes;return this.changes=0,p},d}();h.RenderLoop=u}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(i,h,v){var s=i("../lib/oop"),u=i("../lib/dom"),d=i("../lib/lang"),a=i("../lib/event"),p=i("../lib/useragent"),e=i("../lib/event_emitter").EventEmitter,t=512,r=typeof ResizeObserver=="function",l=200,o=function(){function c(f){this.el=u.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=u.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=u.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=d.stringRepeat("X",t),this.$characterSize={width:0,height:0},r?this.$addObserver():this.checkForSizeChanges()}return c.prototype.$setMeasureNodeStyles=function(f,m){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",p.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=m?"hidden":"visible"},c.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var m=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=m&&m.width===f.width&&m.height===f.height,this._emit("changeCharacterSize",{data:f})}},c.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(m){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},c.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=a.onIdle(function m(){f.checkForSizeChanges(),a.onIdle(m,500)},500)},c.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},c.prototype.$measureSizes=function(f){var m={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/t};return m.width===0||m.height===0?null:m},c.prototype.$measureCharWidth=function(f){this.$main.textContent=d.stringRepeat(f,t);var m=this.$main.getBoundingClientRect();return m.width/t},c.prototype.getCharacterWidth=function(f){var m=this.charSizes[f];return m===void 0&&(m=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),m},c.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},c.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},c.prototype.$initTransformMeasureNodes=function(){var f=function(m,y){return["div",{style:"position: absolute;top:"+m+"px;left:"+y+"px;"}]};this.els=u.buildDom([f(0,0),f(l,0),f(0,l),f(l,l)],this.el)},c.prototype.transformCoordinates=function(f,m){if(f){var y=this.$getZoom(this.el);f=g(1/y,f)}function D(B,P,V){var W=B[1]*P[0]-B[0]*P[1];return[(-P[1]*V[0]+P[0]*V[1])/W,(+B[1]*V[0]-B[0]*V[1])/W]}function E(B,P){return[B[0]-P[0],B[1]-P[1]]}function b(B,P){return[B[0]+P[0],B[1]+P[1]]}function g(B,P){return[B*P[0],B*P[1]]}this.els||this.$initTransformMeasureNodes();function S(B){var P=B.getBoundingClientRect();return[P.left,P.top]}var T=S(this.els[0]),k=S(this.els[1]),_=S(this.els[2]),O=S(this.els[3]),$=D(E(O,k),E(O,_),E(b(k,_),b(O,T))),A=g(1+$[0],E(k,T)),C=g(1+$[1],E(_,T));if(m){var w=m,x=$[0]*w[0]/l+$[1]*w[1]/l+1,I=b(g(w[0],A),g(w[1],C));return b(g(1/x/l,I),T)}var F=E(f,T),R=D(E(A,g($[0],F)),E(C,g($[1],F)),F);return g(l,R)},c}();o.prototype.$characterSize={width:0,height:0},s.implement(o.prototype,e),h.FontMetrics=o}),ace.define("ace/css/editor-css",["require","exports","module"],function(i,h,v){v.exports=` .ace_br1 {border-top-left-radius : 3px;} .ace_br2 {border-top-right-radius : 3px;} .ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} @@ -960,9 +960,9 @@ import{C as dt,R as M}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh .ace_hidden_token { display: none; -}`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(i,u,v){var o=i("../lib/dom"),h=i("../lib/oop"),p=i("../lib/event_emitter").EventEmitter,a=function(){function d(e,t){this.parentEl=e,this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setDimensions(),e.element.appendChild(this.canvas)}return d.prototype.$updateDecorators=function(e){var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;this.setDimensions(e);var r=this.canvas.getContext("2d");function l(k,_){return k.priority<_.priority?-1:k.priority>_.priority?1:0}var s=this.renderer.session.$annotations;if(r.clearRect(0,0,this.canvas.width,this.canvas.height),s){var c={info:1,warning:2,error:3};s.forEach(function(k){k.priority=c[k.type]||null}),s=s.sort(l);for(var f=0;fthis.canvasHeight&&(S=this.canvasHeight-this.halfMinDecorationHeight),E=Math.round(S-this.halfMinDecorationHeight),b=Math.round(S+this.halfMinDecorationHeight)}r.fillStyle=t[s[f].type]||null,r.fillRect(0,D,this.canvasWidth,b-E)}}var T=this.renderer.session.selection.getCursor();if(T){var y=this.compensateFoldRows(T.row),D=Math.round((T.row-y)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,D,this.canvasWidth,2)}},d.prototype.compensateFoldRows=function(e){var t=this.renderer.session.$foldData,r=0;if(t&&t.length>0)for(var l=0;lt[l].start.row&&e=t[l].end.row&&(r+=t[l].end.row-t[l].start.row);return r},d.prototype.compensateLineWidgets=function(e){var t=this.renderer.session.widgetManager;if(t){var r=0;return t.lineWidgets.forEach(function(l,s){e>s&&(r+=l.rowCount||0)}),r-1}return 0},d.prototype.setDimensions=function(e){e?(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,this.maxHeight_&&(this.$changedLines.firstRow=_),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},k.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},k.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},k.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},k.prototype.updateFull=function(_){_?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},k.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},k.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},k.prototype.onResize=function(_,O,$,A){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=_?1:0;var C=this.container;A||(A=C.clientHeight||C.scrollHeight),!A&&this.$maxLines&&this.lineHeight>1&&(!C.style.height||C.style.height=="0px")&&(C.style.height="1px",A=C.clientHeight||C.scrollHeight),$||($=C.clientWidth||C.scrollWidth);var w=this.$updateCachedSize(_,O,$,A);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!$&&!A)return this.resizing=0;_&&(this.$gutterLayer.$padding=null),_?this.$renderChanges(w|this.$changes,!0):this.$loop.schedule(w|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},k.prototype.$updateCachedSize=function(_,O,$,A){A-=this.$extraHeight||0;var C=0,w=this.$size,x={width:w.width,height:w.height,scrollerHeight:w.scrollerHeight,scrollerWidth:w.scrollerWidth};if(A&&(_||w.height!=A)&&(w.height=A,C|=this.CHANGE_SIZE,w.scrollerHeight=w.height,this.$horizScroll&&(w.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(w.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",C=C|this.CHANGE_SCROLL),$&&(_||w.width!=$)){C|=this.CHANGE_SIZE,w.width=$,O==null&&(O=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=O,h.setStyle(this.scrollBarH.element.style,"left",O+"px"),h.setStyle(this.scroller.style,"left",O+this.margin.left+"px"),w.scrollerWidth=Math.max(0,$-O-this.scrollBarV.getWidth()-this.margin.h),h.setStyle(this.$gutter.style,"left",this.margin.left+"px");var I=this.scrollBarV.getWidth()+"px";h.setStyle(this.scrollBarH.element.style,"right",I),h.setStyle(this.scroller.style,"right",I),h.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(w.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||_)&&(C|=this.CHANGE_FULL)}return w.$dirty=!$||!A,C&&this._signal("resize",x),C},k.prototype.onGutterResize=function(_){var O=this.$showGutter?_:0;O!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,O,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},k.prototype.adjustWrapLimit=function(){var _=this.$size.scrollerWidth-this.$padding*2,O=Math.floor(_/this.characterWidth);return this.session.adjustWrapLimit(O,this.$showPrintMargin&&this.$printMarginColumn)},k.prototype.setAnimatedScroll=function(_){this.setOption("animatedScroll",_)},k.prototype.getAnimatedScroll=function(){return this.$animatedScroll},k.prototype.setShowInvisibles=function(_){this.setOption("showInvisibles",_),this.session.$bidiHandler.setShowInvisibles(_)},k.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},k.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},k.prototype.setDisplayIndentGuides=function(_){this.setOption("displayIndentGuides",_)},k.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},k.prototype.setHighlightIndentGuides=function(_){this.setOption("highlightIndentGuides",_)},k.prototype.setShowPrintMargin=function(_){this.setOption("showPrintMargin",_)},k.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},k.prototype.setPrintMarginColumn=function(_){this.setOption("printMarginColumn",_)},k.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},k.prototype.getShowGutter=function(){return this.getOption("showGutter")},k.prototype.setShowGutter=function(_){return this.setOption("showGutter",_)},k.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},k.prototype.setFadeFoldWidgets=function(_){this.setOption("fadeFoldWidgets",_)},k.prototype.setHighlightGutterLine=function(_){this.setOption("highlightGutterLine",_)},k.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},k.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var _=h.createElement("div");_.className="ace_layer ace_print-margin-layer",this.$printMarginEl=h.createElement("div"),this.$printMarginEl.className="ace_print-margin",_.appendChild(this.$printMarginEl),this.content.insertBefore(_,this.content.firstChild)}var O=this.$printMarginEl.style;O.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",O.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},k.prototype.getContainerElement=function(){return this.container},k.prototype.getMouseEventTarget=function(){return this.scroller},k.prototype.getTextAreaContainer=function(){return this.container},k.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var _=this.textarea.style,O=this.$composition;if(!this.$keepTextAreaAtCursor&&!O){h.translate(this.textarea,-100,0);return}var $=this.$cursorLayer.$pixelPos;if($){O&&O.markerRange&&($=this.$cursorLayer.getPixelPosition(O.markerRange.start,!0));var A=this.layerConfig,C=$.top,w=$.left;C-=A.offset;var x=O&&O.useTextareaForIME||g.isMobile?this.lineHeight:1;if(C<0||C>A.height-x){h.translate(this.textarea,0,0);return}var I=1,F=this.$size.height-x;if(!O)C+=this.lineHeight;else if(O.useTextareaForIME){var R=this.textarea.value;I=this.characterWidth*this.session.$getStringScreenWidth(R)[0]}else C+=this.lineHeight+2;w-=this.scrollLeft,w>this.$size.scrollerWidth-I&&(w=this.$size.scrollerWidth-I),w+=this.gutterWidth+this.margin.left,h.setStyle(_,"height",x+"px"),h.setStyle(_,"width",I+"px"),h.translate(this.textarea,Math.min(w,this.$size.scrollerWidth-I),Math.min(C,F))}}},k.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},k.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},k.prototype.getLastFullyVisibleRow=function(){var _=this.layerConfig,O=_.lastRow,$=this.session.documentToScreenRow(O,0)*_.lineHeight;return $-this.session.getScrollTop()>_.height-_.lineHeight?O-1:O},k.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},k.prototype.setPadding=function(_){this.$padding=_,this.$textLayer.setPadding(_),this.$cursorLayer.setPadding(_),this.$markerFront.setPadding(_),this.$markerBack.setPadding(_),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},k.prototype.setScrollMargin=function(_,O,$,A){var C=this.scrollMargin;C.top=_|0,C.bottom=O|0,C.right=A|0,C.left=$|0,C.v=C.top+C.bottom,C.h=C.left+C.right,C.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-C.top),this.updateFull()},k.prototype.setMargin=function(_,O,$,A){var C=this.margin;C.top=_|0,C.bottom=O|0,C.right=A|0,C.left=$|0,C.v=C.top+C.bottom,C.h=C.left+C.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},k.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},k.prototype.setHScrollBarAlwaysVisible=function(_){this.setOption("hScrollBarAlwaysVisible",_)},k.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},k.prototype.setVScrollBarAlwaysVisible=function(_){this.setOption("vScrollBarAlwaysVisible",_)},k.prototype.$updateScrollBarV=function(){var _=this.layerConfig.maxHeight,O=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(_-=(O-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>_-O&&(_=this.scrollTop+O,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(_+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},k.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},k.prototype.freeze=function(){this.$frozen=!0},k.prototype.unfreeze=function(){this.$frozen=!1},k.prototype.$renderChanges=function(_,O){if(this.$changes&&(_|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!_&&!O){this.$changes|=_;return}if(this.$size.$dirty)return this.$changes|=_,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",_),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var $=this.layerConfig;if(_&this.CHANGE_FULL||_&this.CHANGE_SIZE||_&this.CHANGE_TEXT||_&this.CHANGE_LINES||_&this.CHANGE_SCROLL||_&this.CHANGE_H_SCROLL){if(_|=this.$computeLayerConfig()|this.$loop.clear(),$.firstRow!=this.layerConfig.firstRow&&$.firstRowScreen==this.layerConfig.firstRowScreen){var A=this.scrollTop+($.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;A>0&&(this.scrollTop=A,_=_|this.CHANGE_SCROLL,_|=this.$computeLayerConfig()|this.$loop.clear())}$=this.layerConfig,this.$updateScrollBarV(),_&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),h.translate(this.content,-this.scrollLeft,-$.offset);var C=$.width+2*this.$padding+"px",w=$.minHeight+"px";h.setStyle(this.content.style,"width",C),h.setStyle(this.content.style,"height",w)}if(_&this.CHANGE_H_SCROLL&&(h.translate(this.content,-this.scrollLeft,-$.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),_&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update($),this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($),this.$markerBack.update($),this.$markerFront.update($),this.$cursorLayer.update($),this.$moveTextAreaToCursor(),this._signal("afterRender",_);return}if(_&this.CHANGE_SCROLL){this.$changedLines=null,_&this.CHANGE_TEXT||_&this.CHANGE_LINES?this.$textLayer.update($):this.$textLayer.scrollLines($),this.$showGutter&&(_&this.CHANGE_GUTTER||_&this.CHANGE_LINES?this.$gutterLayer.update($):this.$gutterLayer.scrollLines($)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($),this.$markerBack.update($),this.$markerFront.update($),this.$cursorLayer.update($),this.$moveTextAreaToCursor(),this._signal("afterRender",_);return}_&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update($),this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_LINES?((this.$updateLines()||_&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_TEXT||_&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)),_&this.CHANGE_CURSOR&&(this.$cursorLayer.update($),this.$moveTextAreaToCursor()),_&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update($),_&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update($),this._signal("afterRender",_)},k.prototype.$autosize=function(){var _=this.session.getScreenLength()*this.lineHeight,O=this.$maxLines*this.lineHeight,$=Math.min(O,Math.max((this.$minLines||1)*this.lineHeight,_))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&($+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&$>this.$maxPixelHeight&&($=this.$maxPixelHeight);var A=$<=2*this.lineHeight,C=!A&&_>O;if($!=this.desiredHeight||this.$size.height!=this.desiredHeight||C!=this.$vScroll){C!=this.$vScroll&&(this.$vScroll=C,this.scrollBarV.setVisible(C));var w=this.container.clientWidth;this.container.style.height=$+"px",this.$updateCachedSize(!0,this.$gutterWidth,w,$),this.desiredHeight=$,this._signal("autosize")}},k.prototype.$computeLayerConfig=function(){var _=this.session,O=this.$size,$=O.height<=2*this.lineHeight,A=this.session.getScreenLength(),C=A*this.lineHeight,w=this.$getLongestLine(),x=!$&&(this.$hScrollBarAlwaysVisible||O.scrollerWidth-w-2*this.$padding<0),I=this.$horizScroll!==x;I&&(this.$horizScroll=x,this.scrollBarH.setVisible(x));var F=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),$=O.height<=2*this.lineHeight);var R=O.scrollerHeight+this.lineHeight,B=!this.$maxLines&&this.$scrollPastEnd?(O.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;C+=B;var P=this.scrollMargin;this.session.setScrollTop(Math.max(-P.top,Math.min(this.scrollTop,C-O.scrollerHeight+P.bottom))),this.session.setScrollLeft(Math.max(-P.left,Math.min(this.scrollLeft,w+2*this.$padding-O.scrollerWidth+P.right)));var V=!$&&(this.$vScrollBarAlwaysVisible||O.scrollerHeight-C+B<0||this.scrollTop>P.top),W=F!==V;W&&(this.$vScroll=V,this.scrollBarV.setVisible(V));var H=this.scrollTop%this.lineHeight,U=Math.ceil(R/this.lineHeight)-1,G=Math.max(0,Math.round((this.scrollTop-H)/this.lineHeight)),Y=G+U,Q,ee,ne=this.lineHeight;G=_.screenToDocumentRow(G,0);var se=_.getFoldLine(G);se&&(G=se.start.row),Q=_.documentToScreenRow(G,0),ee=_.getRowLength(G)*ne,Y=Math.min(_.screenToDocumentRow(Y,0),_.getLength()-1),R=O.scrollerHeight+_.getRowLength(Y)*ne+ee,H=this.scrollTop-Q*ne;var ge=0;return(this.layerConfig.width!=w||I)&&(ge=this.CHANGE_H_SCROLL),(I||W)&&(ge|=this.$updateCachedSize(!0,this.gutterWidth,O.width,O.height),this._signal("scrollbarVisibilityChanged"),W&&(w=this.$getLongestLine())),this.layerConfig={width:w,padding:this.$padding,firstRow:G,firstRowScreen:Q,lastRow:Y,lineHeight:ne,characterWidth:this.characterWidth,minHeight:R,maxHeight:C,offset:H,gutterOffset:ne?Math.max(0,Math.ceil((H+O.height-O.scrollerHeight)/ne)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(w-this.$padding),ge},k.prototype.$updateLines=function(){if(this.$changedLines){var _=this.$changedLines.firstRow,O=this.$changedLines.lastRow;this.$changedLines=null;var $=this.layerConfig;if(!(_>$.lastRow+1)&&!(O<$.firstRow)){if(O===1/0){this.$showGutter&&this.$gutterLayer.update($),this.$textLayer.update($);return}return this.$textLayer.updateLines($,_,O),!0}}},k.prototype.$getLongestLine=function(){var _=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(_+=1),this.$textLayer&&_>this.$textLayer.MAX_LINE_LENGTH&&(_=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(_*this.characterWidth))},k.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},k.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},k.prototype.addGutterDecoration=function(_,O){this.$gutterLayer.addGutterDecoration(_,O)},k.prototype.removeGutterDecoration=function(_,O){this.$gutterLayer.removeGutterDecoration(_,O)},k.prototype.updateBreakpoints=function(_){this._rows=_,this.$loop.schedule(this.CHANGE_GUTTER)},k.prototype.setAnnotations=function(_){this.$gutterLayer.setAnnotations(_),this.$loop.schedule(this.CHANGE_GUTTER)},k.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},k.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},k.prototype.showCursor=function(){this.$cursorLayer.showCursor()},k.prototype.scrollSelectionIntoView=function(_,O,$){this.scrollCursorIntoView(_,$),this.scrollCursorIntoView(O,$)},k.prototype.scrollCursorIntoView=function(_,O,$){if(this.$size.scrollerHeight!==0){var A=this.$cursorLayer.getPixelPosition(_),C=A.left,w=A.top,x=$&&$.top||0,I=$&&$.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var F=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;F+x>w?(O&&F+x>w+this.lineHeight&&(w-=O*this.$size.scrollerHeight),w===0&&(w=-this.scrollMargin.top),this.session.setScrollTop(w)):F+this.$size.scrollerHeight-I=1-this.scrollMargin.top||O>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||_<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||_>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},k.prototype.pixelToScreenCoordinates=function(_,O){var $;if(this.$hasCssTransforms){$={top:0,left:0};var A=this.$fontMetrics.transformCoordinates([_,O]);_=A[1]-this.gutterWidth-this.margin.left,O=A[0]}else $=this.scroller.getBoundingClientRect();var C=_+this.scrollLeft-$.left-this.$padding,w=C/this.characterWidth,x=Math.floor((O+this.scrollTop-$.top)/this.lineHeight),I=this.$blockCursor?Math.floor(w):Math.round(w);return{row:x,column:I,side:w-I>0?1:-1,offsetX:C}},k.prototype.screenToTextCoordinates=function(_,O){var $;if(this.$hasCssTransforms){$={top:0,left:0};var A=this.$fontMetrics.transformCoordinates([_,O]);_=A[1]-this.gutterWidth-this.margin.left,O=A[0]}else $=this.scroller.getBoundingClientRect();var C=_+this.scrollLeft-$.left-this.$padding,w=C/this.characterWidth,x=this.$blockCursor?Math.floor(w):Math.round(w),I=Math.floor((O+this.scrollTop-$.top)/this.lineHeight);return this.session.screenToDocumentPosition(I,Math.max(x,0),C)},k.prototype.textToScreenCoordinates=function(_,O){var $=this.scroller.getBoundingClientRect(),A=this.session.documentToScreenPosition(_,O),C=this.$padding+(this.session.$bidiHandler.isBidiRow(A.row,_)?this.session.$bidiHandler.getPosLeft(A.column):Math.round(A.column*this.characterWidth)),w=A.row*this.lineHeight;return{pageX:$.left+C-this.scrollLeft,pageY:$.top+w-this.scrollTop}},k.prototype.visualizeFocus=function(){h.addCssClass(this.container,"ace_focus")},k.prototype.visualizeBlur=function(){h.removeCssClass(this.container,"ace_focus")},k.prototype.showComposition=function(_){this.$composition=_,_.cssText||(_.cssText=this.textarea.style.cssText),_.useTextareaForIME==null&&(_.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(h.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):_.markerId=this.session.addMarker(_.markerRange,"ace_composition_marker","text")},k.prototype.setCompositionText=function(_){var O=this.session.selection.cursor;this.addToken(_,"composition_placeholder",O.row,O.column),this.$moveTextAreaToCursor()},k.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),h.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var _=this.session.selection.cursor;this.removeExtraToken(_.row,_.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},k.prototype.setGhostText=function(_,O){var $=this.session.selection.cursor,A=O||{row:$.row,column:$.column};this.removeGhostText();var C=this.$calculateWrappedTextChunks(_,A);this.addToken(C[0].text,"ghost_text",A.row,A.column),this.$ghostText={text:_,position:{row:A.row,column:A.column}};var w=h.createElement("div");if(C.length>1){var x=this.hideTokensAfterPosition(A.row,A.column),I;C.slice(1).forEach(function(W){var H=h.createElement("div"),U=h.createElement("span");U.className="ace_ghost_text",W.wrapped&&(H.className="ghost_text_line_wrapped"),W.text.length===0&&(W.text=" "),U.appendChild(h.createTextNode(W.text)),H.appendChild(U),w.appendChild(H),I=H}),x.forEach(function(W){var H=h.createElement("span");S(W.type)||(H.className="ace_"+W.type.replace(/\./g," ace_")),H.appendChild(h.createTextNode(W.value)),I.appendChild(H)}),this.$ghostTextWidget={el:w,row:A.row,column:A.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var F=this.$cursorLayer.getPixelPosition(A,!0),R=this.container,B=R.getBoundingClientRect().height,P=C.length*this.lineHeight,V=P0){var R=0;F.push(C[x].length);for(var B=0;B1||Math.abs(_.$size.height-A)>1?_.$resizeTimer.delay():_.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},k}();T.prototype.CHANGE_CURSOR=1,T.prototype.CHANGE_MARKER=2,T.prototype.CHANGE_GUTTER=4,T.prototype.CHANGE_SCROLL=8,T.prototype.CHANGE_LINES=16,T.prototype.CHANGE_TEXT=32,T.prototype.CHANGE_SIZE=64,T.prototype.CHANGE_MARKER_BACK=128,T.prototype.CHANGE_MARKER_FRONT=256,T.prototype.CHANGE_FULL=512,T.prototype.CHANGE_H_SCROLL=1024,T.prototype.$changes=0,T.prototype.$padding=null,T.prototype.$frozen=!1,T.prototype.STEPS=8,o.implement(T.prototype,D),a.defineOptions(T.prototype,"renderer",{useResizeObserver:{set:function(k){!k&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):k&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(k){this.$textLayer.setShowInvisibles(k)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(k){typeof k=="number"&&(this.$printMarginColumn=k),this.$showPrintMargin=!!k,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(k){this.$gutter.style.display=k?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(k){this.$gutterLayer.$useSvgGutterIcons=k},initialValue:!1},showFoldedAnnotations:{set:function(k){this.$gutterLayer.$showFoldedAnnotations=k},initialValue:!1},fadeFoldWidgets:{set:function(k){h.setCssClass(this.$gutter,"ace_fade-fold-widgets",k)},initialValue:!1},showFoldWidgets:{set:function(k){this.$gutterLayer.setShowFoldWidgets(k),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(k){this.$textLayer.setDisplayIndentGuides(k)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(k){this.$textLayer.setHighlightIndentGuides(k)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(k){this.$gutterLayer.setHighlightGutterLine(k),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(k){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(k){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(k){typeof k=="number"&&(k=k+"px"),this.container.style.fontSize=k,this.updateFontSize()},initialValue:12},fontFamily:{set:function(k){this.container.style.fontFamily=k,this.updateFontSize()}},maxLines:{set:function(k){this.updateFull()}},minLines:{set:function(k){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(k){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(k){k=+k||0,this.$scrollPastEnd!=k&&(this.$scrollPastEnd=k,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(k){this.$gutterLayer.$fixedWidth=!!k,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(k){this.$updateCustomScrollbar(k)},initialValue:!1},theme:{set:function(k){this.setTheme(k)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!g.isMobile&&!g.isIE}}),u.VirtualRenderer=T}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/net"),p=i("../lib/event_emitter").EventEmitter,a=i("../config");function d(l){var s="importScripts('"+h.qualifyURL(l)+"');";try{return new Blob([s],{type:"application/javascript"})}catch{var c=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new c;return f.append(s),f.getBlob("application/javascript")}}function e(l){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var s=d(l),c=window.URL||window.webkitURL,f=c.createObjectURL(s);return new Worker(f)}return new Worker(l)}var t=function(l){l.postMessage||(l=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=l,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,p),this.$createWorkerFromOldConfig=function(l,s,c,f,m){if(i.nameToUrl&&!i.toUrl&&(i.toUrl=i.nameToUrl),a.get("packaged")||!i.toUrl)f=f||a.moduleUrl(s,"worker");else{var y=this.$normalizePath;f=f||y(i.toUrl("ace/worker/worker.js",null,"_"));var D={};l.forEach(function(E){D[E]=y(i.toUrl(E,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=e(f),m&&this.send("importScripts",m),this.$worker.postMessage({init:!0,tlns:D,module:s,classname:c}),this.$worker},this.onMessage=function(l){var s=l.data;switch(s.type){case"event":this._signal(s.name,{data:s.data});break;case"call":var c=this.callbacks[s.id];c&&(c(s.data),delete this.callbacks[s.id]);break;case"error":this.reportError(s.data);break;case"log":window.console&&console.log&&console.log.apply(console,s.data);break}},this.reportError=function(l){window.console&&console.error&&console.error(l)},this.$normalizePath=function(l){return h.qualifyURL(l)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(l){l.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(l,s){this.$worker.postMessage({command:l,args:s})},this.call=function(l,s,c){if(c){var f=this.callbackId++;this.callbacks[f]=c,s.push(f)}this.send(l,s)},this.emit=function(l,s){try{s.data&&s.data.err&&(s.data.err={message:s.data.err.message,stack:s.data.err.stack,code:s.data.err.code}),this.$worker&&this.$worker.postMessage({event:l,data:{data:s.data}})}catch(c){console.error(c.stack)}},this.attachToDocument=function(l){this.$doc&&this.terminate(),this.$doc=l,this.call("setValue",[l.getValue()]),l.on("change",this.changeListener,!0)},this.changeListener=function(l){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),l.action=="insert"?this.deltaQueue.push(l.start,l.lines):this.deltaQueue.push(l.start,l.end)},this.$sendDeltaQueue=function(){var l=this.deltaQueue;l&&(this.deltaQueue=null,l.length>50&&l.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:l}))}}).call(t.prototype);var r=function(l,s,c){var f=null,m=!1,y=Object.create(p),D=[],E=new t({messageBuffer:D,terminate:function(){},postMessage:function(g){D.push(g),f&&(m?setTimeout(b):b())}});E.setEmitSync=function(g){m=g};var b=function(){var g=D.shift();g.command?f[g.command].apply(f,g.args):g.event&&y._signal(g.event,g.data)};return y.postMessage=function(g){E.onMessage({data:g})},y.callback=function(g,S){this.postMessage({type:"call",id:S,data:g})},y.emit=function(g,S){this.postMessage({type:"event",name:g,data:S})},a.loadModule(["worker",s],function(g){for(f=new g[c](y);D.length;)b()}),E};u.UIWorkerClient=r,u.WorkerClient=t,u.createWorker=e}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(i,u,v){var o=i("./range").Range,h=i("./lib/event_emitter").EventEmitter,p=i("./lib/oop"),a=function(){function d(e,t,r,l,s,c){var f=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=s,this.othersClass=c,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=l,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=r;var m=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=m.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return d.prototype.setup=function(){var e=this,t=this.doc,r=this.session;this.selectionBefore=r.selection.toJSON(),r.selection.inMultiSelectMode&&r.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var l=this.pos;l.$insertRight=!0,l.detach(),l.markerId=r.addMarker(new o(l.row,l.column,l.row,l.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(s){var c=t.createAnchor(s.row,s.column);c.$insertRight=!0,c.detach(),e.others.push(c)}),r.setUndoSelect(!1)},d.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(r){r.markerId=e.addMarker(new o(r.row,r.column,r.row,r.column+t.length),t.othersClass,null,!1)})}},d.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;if(this.updateAnchors(e),l&&(this.length+=r),l&&!this.session.$fromUndo){if(e.action==="insert")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+s};this.doc.insertMergedLines(m,e.lines)}else if(e.action==="remove")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+s};this.doc.remove(new o(m.row,m.column,m.row,m.column-r))}}this.$updating=!1,this.updateMarkers()}},d.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},d.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,r=function(s,c){t.removeMarker(s.markerId),s.markerId=t.addMarker(new o(s.row,s.column,s.row,s.column+e.length),c,null,!1)};r(this.pos,this.mainClass);for(var l=this.others.length;l--;)r(this.others[l],this.othersClass)}},d.prototype.onCursorChange=function(e){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},d.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},d.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,r=0;r1?h.multiSelect.joinSelections():h.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(h){h.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(h){h.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(h){h.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],u.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(h){h.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(h){return h&&h.inMultiSelectMode}}];var o=i("../keyboard/hash_handler").HashHandler;u.keyboardHandler=new o(u.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(i,u,v){var o=i("./range_list").RangeList,h=i("./range").Range,p=i("./selection").Selection,a=i("./mouse/multi_select_handler").onMouseDown,d=i("./lib/event"),e=i("./lib/lang"),t=i("./commands/multi_select_commands");u.commands=t.defaultCommands.concat(t.multiSelectCommands);var r=i("./search").Search,l=new r;function s(E,b,g){return l.$options.wrap=!0,l.$options.needle=b,l.$options.backwards=g==-1,l.find(E)}var c=i("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(c.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(E,b){if(E){if(!this.inMultiSelectMode&&this.rangeCount===0){var g=this.toOrientedRange();if(this.rangeList.add(g),this.rangeList.add(E),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),b||this.fromOrientedRange(E);this.rangeList.removeAll(),this.rangeList.add(g),this.$onAddRange(g)}E.cursor||(E.cursor=E.end);var S=this.rangeList.add(E);return this.$onAddRange(E),S.length&&this.$onRemoveRange(S),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(E)}},this.toSingleRange=function(E){E=E||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),E&&this.fromOrientedRange(E)},this.substractPoint=function(E){var b=this.rangeList.substractPoint(E);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var E=this.rangeList.merge();E.length&&this.$onRemoveRange(E)},this.$onAddRange=function(E){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(E),this._signal("addRange",{range:E})},this.$onRemoveRange=function(E){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();E.push(b),this.rangeCount=0}for(var g=E.length;g--;){var S=this.ranges.indexOf(E[g]);this.ranges.splice(S,1)}this._signal("removeRange",{ranges:E}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var E=this.ranges.length?this.ranges:[this.getRange()],b=[],g=0;g1){var E=this.rangeList.ranges,b=E[E.length-1],g=h.fromPoints(E[0].start,b.end);this.toSingleRange(),this.setSelectionRange(g,b.cursor==b.start)}else{var S=this.session.documentToScreenPosition(this.cursor),T=this.session.documentToScreenPosition(this.anchor),k=this.rectangularRangeBlock(S,T);k.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(E,b,g){var S=[],T=E.column0;)R--;if(R>0)for(var B=0;S[B].isEmpty();)B++;for(var P=R;P>=B;P--)S[P].isEmpty()&&S.splice(P,1)}return S}}.call(p.prototype);var f=i("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(E){E.cursor||(E.cursor=E.end);var b=this.getSelectionStyle();return E.marker=this.session.addMarker(E,"ace_selection",b),this.session.$selectionMarkers.push(E),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,E},this.removeSelectionMarker=function(E){if(E.marker){this.session.removeMarker(E.marker);var b=this.session.$selectionMarkers.indexOf(E);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(E){for(var b=this.session.$selectionMarkers,g=E.length;g--;){var S=E[g];if(S.marker){this.session.removeMarker(S.marker);var T=b.indexOf(S);T!=-1&&b.splice(T,1)}}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(E){this.addSelectionMarker(E.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(E){this.removeSelectionMarkers(E.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(E){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(t.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(E){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(t.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(E){var b=E.command,g=E.editor;if(g.multiSelect){if(b.multiSelectAction)b.multiSelectAction=="forEach"?S=g.forEachSelection(b,E.args):b.multiSelectAction=="forEachLine"?S=g.forEachSelection(b,E.args,!0):b.multiSelectAction=="single"?(g.exitMultiSelectMode(),S=b.exec(g,E.args||{})):S=b.multiSelectAction(g,E.args||{});else{var S=b.exec(g,E.args||{});g.multiSelect.addRange(g.multiSelect.toOrientedRange()),g.multiSelect.mergeOverlappingRanges()}return S}},this.forEachSelection=function(E,b,g){if(!this.inVirtualSelectionMode){var S=g&&g.keepOrder,T=g==!0||g&&g.$byLines,k=this.session,_=this.selection,O=_.rangeList,$=(S?_:O).ranges,A;if(!$.length)return E.exec?E.exec(this,b||{}):E(this,b||{});var C=_._eventRegistry;_._eventRegistry={};var w=new p(k);this.inVirtualSelectionMode=!0;for(var x=$.length;x--;){if(T)for(;x>0&&$[x].start.row==$[x-1].end.row;)x--;w.fromOrientedRange($[x]),w.index=x,this.selection=k.selection=w;var I=E.exec?E.exec(this,b||{}):E(this,b||{});!A&&I!==void 0&&(A=I),w.toOrientedRange($[x])}w.detach(),this.selection=k.selection=_,this.inVirtualSelectionMode=!1,_._eventRegistry=C,_.mergeOverlappingRanges(),_.ranges[0]&&_.fromOrientedRange(_.ranges[0]);var F=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),F&&F.from==F.to&&this.renderer.animateScrolling(F.from),A}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var E="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var b=this.multiSelect.rangeList.ranges,g=[],S=0;S0);_<0&&(_=0),O>=A&&(O=A-1)}var w=this.session.removeFullLines(_,O);w=this.$reAlignText(w,$),this.session.insert({row:_,column:0},w.join(` +}`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(i,h,v){var s=i("../lib/dom"),u=i("../lib/oop"),d=i("../lib/event_emitter").EventEmitter,a=function(){function p(e,t){this.parentEl=e,this.canvas=s.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setDimensions(),e.element.appendChild(this.canvas)}return p.prototype.$updateDecorators=function(e){var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;this.setDimensions(e);var r=this.canvas.getContext("2d");function l(k,_){return k.priority<_.priority?-1:k.priority>_.priority?1:0}var o=this.renderer.session.$annotations;if(r.clearRect(0,0,this.canvas.width,this.canvas.height),o){var c={info:1,warning:2,error:3};o.forEach(function(k){k.priority=c[k.type]||null}),o=o.sort(l);for(var f=0;fthis.canvasHeight&&(S=this.canvasHeight-this.halfMinDecorationHeight),E=Math.round(S-this.halfMinDecorationHeight),b=Math.round(S+this.halfMinDecorationHeight)}r.fillStyle=t[o[f].type]||null,r.fillRect(0,D,this.canvasWidth,b-E)}}var T=this.renderer.session.selection.getCursor();if(T){var y=this.compensateFoldRows(T.row),D=Math.round((T.row-y)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,D,this.canvasWidth,2)}},p.prototype.compensateFoldRows=function(e){var t=this.renderer.session.$foldData,r=0;if(t&&t.length>0)for(var l=0;lt[l].start.row&&e=t[l].end.row&&(r+=t[l].end.row-t[l].start.row);return r},p.prototype.compensateLineWidgets=function(e){var t=this.renderer.session.widgetManager;if(t){var r=0;return t.lineWidgets.forEach(function(l,o){e>o&&(r+=l.rowCount||0)}),r-1}return 0},p.prototype.setDimensions=function(e){e?(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,this.maxHeight_&&(this.$changedLines.firstRow=_),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},k.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},k.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},k.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},k.prototype.updateFull=function(_){_?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},k.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},k.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},k.prototype.onResize=function(_,O,$,A){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=_?1:0;var C=this.container;A||(A=C.clientHeight||C.scrollHeight),!A&&this.$maxLines&&this.lineHeight>1&&(!C.style.height||C.style.height=="0px")&&(C.style.height="1px",A=C.clientHeight||C.scrollHeight),$||($=C.clientWidth||C.scrollWidth);var w=this.$updateCachedSize(_,O,$,A);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!$&&!A)return this.resizing=0;_&&(this.$gutterLayer.$padding=null),_?this.$renderChanges(w|this.$changes,!0):this.$loop.schedule(w|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},k.prototype.$updateCachedSize=function(_,O,$,A){A-=this.$extraHeight||0;var C=0,w=this.$size,x={width:w.width,height:w.height,scrollerHeight:w.scrollerHeight,scrollerWidth:w.scrollerWidth};if(A&&(_||w.height!=A)&&(w.height=A,C|=this.CHANGE_SIZE,w.scrollerHeight=w.height,this.$horizScroll&&(w.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(w.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",C=C|this.CHANGE_SCROLL),$&&(_||w.width!=$)){C|=this.CHANGE_SIZE,w.width=$,O==null&&(O=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=O,u.setStyle(this.scrollBarH.element.style,"left",O+"px"),u.setStyle(this.scroller.style,"left",O+this.margin.left+"px"),w.scrollerWidth=Math.max(0,$-O-this.scrollBarV.getWidth()-this.margin.h),u.setStyle(this.$gutter.style,"left",this.margin.left+"px");var I=this.scrollBarV.getWidth()+"px";u.setStyle(this.scrollBarH.element.style,"right",I),u.setStyle(this.scroller.style,"right",I),u.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(w.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||_)&&(C|=this.CHANGE_FULL)}return w.$dirty=!$||!A,C&&this._signal("resize",x),C},k.prototype.onGutterResize=function(_){var O=this.$showGutter?_:0;O!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,O,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},k.prototype.adjustWrapLimit=function(){var _=this.$size.scrollerWidth-this.$padding*2,O=Math.floor(_/this.characterWidth);return this.session.adjustWrapLimit(O,this.$showPrintMargin&&this.$printMarginColumn)},k.prototype.setAnimatedScroll=function(_){this.setOption("animatedScroll",_)},k.prototype.getAnimatedScroll=function(){return this.$animatedScroll},k.prototype.setShowInvisibles=function(_){this.setOption("showInvisibles",_),this.session.$bidiHandler.setShowInvisibles(_)},k.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},k.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},k.prototype.setDisplayIndentGuides=function(_){this.setOption("displayIndentGuides",_)},k.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},k.prototype.setHighlightIndentGuides=function(_){this.setOption("highlightIndentGuides",_)},k.prototype.setShowPrintMargin=function(_){this.setOption("showPrintMargin",_)},k.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},k.prototype.setPrintMarginColumn=function(_){this.setOption("printMarginColumn",_)},k.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},k.prototype.getShowGutter=function(){return this.getOption("showGutter")},k.prototype.setShowGutter=function(_){return this.setOption("showGutter",_)},k.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},k.prototype.setFadeFoldWidgets=function(_){this.setOption("fadeFoldWidgets",_)},k.prototype.setHighlightGutterLine=function(_){this.setOption("highlightGutterLine",_)},k.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},k.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var _=u.createElement("div");_.className="ace_layer ace_print-margin-layer",this.$printMarginEl=u.createElement("div"),this.$printMarginEl.className="ace_print-margin",_.appendChild(this.$printMarginEl),this.content.insertBefore(_,this.content.firstChild)}var O=this.$printMarginEl.style;O.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",O.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},k.prototype.getContainerElement=function(){return this.container},k.prototype.getMouseEventTarget=function(){return this.scroller},k.prototype.getTextAreaContainer=function(){return this.container},k.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var _=this.textarea.style,O=this.$composition;if(!this.$keepTextAreaAtCursor&&!O){u.translate(this.textarea,-100,0);return}var $=this.$cursorLayer.$pixelPos;if($){O&&O.markerRange&&($=this.$cursorLayer.getPixelPosition(O.markerRange.start,!0));var A=this.layerConfig,C=$.top,w=$.left;C-=A.offset;var x=O&&O.useTextareaForIME||g.isMobile?this.lineHeight:1;if(C<0||C>A.height-x){u.translate(this.textarea,0,0);return}var I=1,F=this.$size.height-x;if(!O)C+=this.lineHeight;else if(O.useTextareaForIME){var R=this.textarea.value;I=this.characterWidth*this.session.$getStringScreenWidth(R)[0]}else C+=this.lineHeight+2;w-=this.scrollLeft,w>this.$size.scrollerWidth-I&&(w=this.$size.scrollerWidth-I),w+=this.gutterWidth+this.margin.left,u.setStyle(_,"height",x+"px"),u.setStyle(_,"width",I+"px"),u.translate(this.textarea,Math.min(w,this.$size.scrollerWidth-I),Math.min(C,F))}}},k.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},k.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},k.prototype.getLastFullyVisibleRow=function(){var _=this.layerConfig,O=_.lastRow,$=this.session.documentToScreenRow(O,0)*_.lineHeight;return $-this.session.getScrollTop()>_.height-_.lineHeight?O-1:O},k.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},k.prototype.setPadding=function(_){this.$padding=_,this.$textLayer.setPadding(_),this.$cursorLayer.setPadding(_),this.$markerFront.setPadding(_),this.$markerBack.setPadding(_),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},k.prototype.setScrollMargin=function(_,O,$,A){var C=this.scrollMargin;C.top=_|0,C.bottom=O|0,C.right=A|0,C.left=$|0,C.v=C.top+C.bottom,C.h=C.left+C.right,C.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-C.top),this.updateFull()},k.prototype.setMargin=function(_,O,$,A){var C=this.margin;C.top=_|0,C.bottom=O|0,C.right=A|0,C.left=$|0,C.v=C.top+C.bottom,C.h=C.left+C.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},k.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},k.prototype.setHScrollBarAlwaysVisible=function(_){this.setOption("hScrollBarAlwaysVisible",_)},k.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},k.prototype.setVScrollBarAlwaysVisible=function(_){this.setOption("vScrollBarAlwaysVisible",_)},k.prototype.$updateScrollBarV=function(){var _=this.layerConfig.maxHeight,O=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(_-=(O-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>_-O&&(_=this.scrollTop+O,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(_+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},k.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},k.prototype.freeze=function(){this.$frozen=!0},k.prototype.unfreeze=function(){this.$frozen=!1},k.prototype.$renderChanges=function(_,O){if(this.$changes&&(_|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!_&&!O){this.$changes|=_;return}if(this.$size.$dirty)return this.$changes|=_,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",_),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var $=this.layerConfig;if(_&this.CHANGE_FULL||_&this.CHANGE_SIZE||_&this.CHANGE_TEXT||_&this.CHANGE_LINES||_&this.CHANGE_SCROLL||_&this.CHANGE_H_SCROLL){if(_|=this.$computeLayerConfig()|this.$loop.clear(),$.firstRow!=this.layerConfig.firstRow&&$.firstRowScreen==this.layerConfig.firstRowScreen){var A=this.scrollTop+($.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;A>0&&(this.scrollTop=A,_=_|this.CHANGE_SCROLL,_|=this.$computeLayerConfig()|this.$loop.clear())}$=this.layerConfig,this.$updateScrollBarV(),_&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),u.translate(this.content,-this.scrollLeft,-$.offset);var C=$.width+2*this.$padding+"px",w=$.minHeight+"px";u.setStyle(this.content.style,"width",C),u.setStyle(this.content.style,"height",w)}if(_&this.CHANGE_H_SCROLL&&(u.translate(this.content,-this.scrollLeft,-$.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),_&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update($),this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($),this.$markerBack.update($),this.$markerFront.update($),this.$cursorLayer.update($),this.$moveTextAreaToCursor(),this._signal("afterRender",_);return}if(_&this.CHANGE_SCROLL){this.$changedLines=null,_&this.CHANGE_TEXT||_&this.CHANGE_LINES?this.$textLayer.update($):this.$textLayer.scrollLines($),this.$showGutter&&(_&this.CHANGE_GUTTER||_&this.CHANGE_LINES?this.$gutterLayer.update($):this.$gutterLayer.scrollLines($)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($),this.$markerBack.update($),this.$markerFront.update($),this.$cursorLayer.update($),this.$moveTextAreaToCursor(),this._signal("afterRender",_);return}_&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update($),this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_LINES?((this.$updateLines()||_&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_TEXT||_&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)),_&this.CHANGE_CURSOR&&(this.$cursorLayer.update($),this.$moveTextAreaToCursor()),_&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update($),_&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update($),this._signal("afterRender",_)},k.prototype.$autosize=function(){var _=this.session.getScreenLength()*this.lineHeight,O=this.$maxLines*this.lineHeight,$=Math.min(O,Math.max((this.$minLines||1)*this.lineHeight,_))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&($+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&$>this.$maxPixelHeight&&($=this.$maxPixelHeight);var A=$<=2*this.lineHeight,C=!A&&_>O;if($!=this.desiredHeight||this.$size.height!=this.desiredHeight||C!=this.$vScroll){C!=this.$vScroll&&(this.$vScroll=C,this.scrollBarV.setVisible(C));var w=this.container.clientWidth;this.container.style.height=$+"px",this.$updateCachedSize(!0,this.$gutterWidth,w,$),this.desiredHeight=$,this._signal("autosize")}},k.prototype.$computeLayerConfig=function(){var _=this.session,O=this.$size,$=O.height<=2*this.lineHeight,A=this.session.getScreenLength(),C=A*this.lineHeight,w=this.$getLongestLine(),x=!$&&(this.$hScrollBarAlwaysVisible||O.scrollerWidth-w-2*this.$padding<0),I=this.$horizScroll!==x;I&&(this.$horizScroll=x,this.scrollBarH.setVisible(x));var F=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),$=O.height<=2*this.lineHeight);var R=O.scrollerHeight+this.lineHeight,B=!this.$maxLines&&this.$scrollPastEnd?(O.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;C+=B;var P=this.scrollMargin;this.session.setScrollTop(Math.max(-P.top,Math.min(this.scrollTop,C-O.scrollerHeight+P.bottom))),this.session.setScrollLeft(Math.max(-P.left,Math.min(this.scrollLeft,w+2*this.$padding-O.scrollerWidth+P.right)));var V=!$&&(this.$vScrollBarAlwaysVisible||O.scrollerHeight-C+B<0||this.scrollTop>P.top),W=F!==V;W&&(this.$vScroll=V,this.scrollBarV.setVisible(V));var H=this.scrollTop%this.lineHeight,U=Math.ceil(R/this.lineHeight)-1,G=Math.max(0,Math.round((this.scrollTop-H)/this.lineHeight)),Y=G+U,Q,ee,ne=this.lineHeight;G=_.screenToDocumentRow(G,0);var se=_.getFoldLine(G);se&&(G=se.start.row),Q=_.documentToScreenRow(G,0),ee=_.getRowLength(G)*ne,Y=Math.min(_.screenToDocumentRow(Y,0),_.getLength()-1),R=O.scrollerHeight+_.getRowLength(Y)*ne+ee,H=this.scrollTop-Q*ne;var ge=0;return(this.layerConfig.width!=w||I)&&(ge=this.CHANGE_H_SCROLL),(I||W)&&(ge|=this.$updateCachedSize(!0,this.gutterWidth,O.width,O.height),this._signal("scrollbarVisibilityChanged"),W&&(w=this.$getLongestLine())),this.layerConfig={width:w,padding:this.$padding,firstRow:G,firstRowScreen:Q,lastRow:Y,lineHeight:ne,characterWidth:this.characterWidth,minHeight:R,maxHeight:C,offset:H,gutterOffset:ne?Math.max(0,Math.ceil((H+O.height-O.scrollerHeight)/ne)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(w-this.$padding),ge},k.prototype.$updateLines=function(){if(this.$changedLines){var _=this.$changedLines.firstRow,O=this.$changedLines.lastRow;this.$changedLines=null;var $=this.layerConfig;if(!(_>$.lastRow+1)&&!(O<$.firstRow)){if(O===1/0){this.$showGutter&&this.$gutterLayer.update($),this.$textLayer.update($);return}return this.$textLayer.updateLines($,_,O),!0}}},k.prototype.$getLongestLine=function(){var _=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(_+=1),this.$textLayer&&_>this.$textLayer.MAX_LINE_LENGTH&&(_=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(_*this.characterWidth))},k.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},k.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},k.prototype.addGutterDecoration=function(_,O){this.$gutterLayer.addGutterDecoration(_,O)},k.prototype.removeGutterDecoration=function(_,O){this.$gutterLayer.removeGutterDecoration(_,O)},k.prototype.updateBreakpoints=function(_){this._rows=_,this.$loop.schedule(this.CHANGE_GUTTER)},k.prototype.setAnnotations=function(_){this.$gutterLayer.setAnnotations(_),this.$loop.schedule(this.CHANGE_GUTTER)},k.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},k.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},k.prototype.showCursor=function(){this.$cursorLayer.showCursor()},k.prototype.scrollSelectionIntoView=function(_,O,$){this.scrollCursorIntoView(_,$),this.scrollCursorIntoView(O,$)},k.prototype.scrollCursorIntoView=function(_,O,$){if(this.$size.scrollerHeight!==0){var A=this.$cursorLayer.getPixelPosition(_),C=A.left,w=A.top,x=$&&$.top||0,I=$&&$.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var F=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;F+x>w?(O&&F+x>w+this.lineHeight&&(w-=O*this.$size.scrollerHeight),w===0&&(w=-this.scrollMargin.top),this.session.setScrollTop(w)):F+this.$size.scrollerHeight-I=1-this.scrollMargin.top||O>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||_<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||_>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},k.prototype.pixelToScreenCoordinates=function(_,O){var $;if(this.$hasCssTransforms){$={top:0,left:0};var A=this.$fontMetrics.transformCoordinates([_,O]);_=A[1]-this.gutterWidth-this.margin.left,O=A[0]}else $=this.scroller.getBoundingClientRect();var C=_+this.scrollLeft-$.left-this.$padding,w=C/this.characterWidth,x=Math.floor((O+this.scrollTop-$.top)/this.lineHeight),I=this.$blockCursor?Math.floor(w):Math.round(w);return{row:x,column:I,side:w-I>0?1:-1,offsetX:C}},k.prototype.screenToTextCoordinates=function(_,O){var $;if(this.$hasCssTransforms){$={top:0,left:0};var A=this.$fontMetrics.transformCoordinates([_,O]);_=A[1]-this.gutterWidth-this.margin.left,O=A[0]}else $=this.scroller.getBoundingClientRect();var C=_+this.scrollLeft-$.left-this.$padding,w=C/this.characterWidth,x=this.$blockCursor?Math.floor(w):Math.round(w),I=Math.floor((O+this.scrollTop-$.top)/this.lineHeight);return this.session.screenToDocumentPosition(I,Math.max(x,0),C)},k.prototype.textToScreenCoordinates=function(_,O){var $=this.scroller.getBoundingClientRect(),A=this.session.documentToScreenPosition(_,O),C=this.$padding+(this.session.$bidiHandler.isBidiRow(A.row,_)?this.session.$bidiHandler.getPosLeft(A.column):Math.round(A.column*this.characterWidth)),w=A.row*this.lineHeight;return{pageX:$.left+C-this.scrollLeft,pageY:$.top+w-this.scrollTop}},k.prototype.visualizeFocus=function(){u.addCssClass(this.container,"ace_focus")},k.prototype.visualizeBlur=function(){u.removeCssClass(this.container,"ace_focus")},k.prototype.showComposition=function(_){this.$composition=_,_.cssText||(_.cssText=this.textarea.style.cssText),_.useTextareaForIME==null&&(_.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(u.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):_.markerId=this.session.addMarker(_.markerRange,"ace_composition_marker","text")},k.prototype.setCompositionText=function(_){var O=this.session.selection.cursor;this.addToken(_,"composition_placeholder",O.row,O.column),this.$moveTextAreaToCursor()},k.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),u.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var _=this.session.selection.cursor;this.removeExtraToken(_.row,_.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},k.prototype.setGhostText=function(_,O){var $=this.session.selection.cursor,A=O||{row:$.row,column:$.column};this.removeGhostText();var C=this.$calculateWrappedTextChunks(_,A);this.addToken(C[0].text,"ghost_text",A.row,A.column),this.$ghostText={text:_,position:{row:A.row,column:A.column}};var w=u.createElement("div");if(C.length>1){var x=this.hideTokensAfterPosition(A.row,A.column),I;C.slice(1).forEach(function(W){var H=u.createElement("div"),U=u.createElement("span");U.className="ace_ghost_text",W.wrapped&&(H.className="ghost_text_line_wrapped"),W.text.length===0&&(W.text=" "),U.appendChild(u.createTextNode(W.text)),H.appendChild(U),w.appendChild(H),I=H}),x.forEach(function(W){var H=u.createElement("span");S(W.type)||(H.className="ace_"+W.type.replace(/\./g," ace_")),H.appendChild(u.createTextNode(W.value)),I.appendChild(H)}),this.$ghostTextWidget={el:w,row:A.row,column:A.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var F=this.$cursorLayer.getPixelPosition(A,!0),R=this.container,B=R.getBoundingClientRect().height,P=C.length*this.lineHeight,V=P0){var R=0;F.push(C[x].length);for(var B=0;B1||Math.abs(_.$size.height-A)>1?_.$resizeTimer.delay():_.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},k}();T.prototype.CHANGE_CURSOR=1,T.prototype.CHANGE_MARKER=2,T.prototype.CHANGE_GUTTER=4,T.prototype.CHANGE_SCROLL=8,T.prototype.CHANGE_LINES=16,T.prototype.CHANGE_TEXT=32,T.prototype.CHANGE_SIZE=64,T.prototype.CHANGE_MARKER_BACK=128,T.prototype.CHANGE_MARKER_FRONT=256,T.prototype.CHANGE_FULL=512,T.prototype.CHANGE_H_SCROLL=1024,T.prototype.$changes=0,T.prototype.$padding=null,T.prototype.$frozen=!1,T.prototype.STEPS=8,s.implement(T.prototype,D),a.defineOptions(T.prototype,"renderer",{useResizeObserver:{set:function(k){!k&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):k&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(k){this.$textLayer.setShowInvisibles(k)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(k){typeof k=="number"&&(this.$printMarginColumn=k),this.$showPrintMargin=!!k,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(k){this.$gutter.style.display=k?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(k){this.$gutterLayer.$useSvgGutterIcons=k},initialValue:!1},showFoldedAnnotations:{set:function(k){this.$gutterLayer.$showFoldedAnnotations=k},initialValue:!1},fadeFoldWidgets:{set:function(k){u.setCssClass(this.$gutter,"ace_fade-fold-widgets",k)},initialValue:!1},showFoldWidgets:{set:function(k){this.$gutterLayer.setShowFoldWidgets(k),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(k){this.$textLayer.setDisplayIndentGuides(k)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(k){this.$textLayer.setHighlightIndentGuides(k)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(k){this.$gutterLayer.setHighlightGutterLine(k),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(k){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(k){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(k){typeof k=="number"&&(k=k+"px"),this.container.style.fontSize=k,this.updateFontSize()},initialValue:12},fontFamily:{set:function(k){this.container.style.fontFamily=k,this.updateFontSize()}},maxLines:{set:function(k){this.updateFull()}},minLines:{set:function(k){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(k){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(k){k=+k||0,this.$scrollPastEnd!=k&&(this.$scrollPastEnd=k,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(k){this.$gutterLayer.$fixedWidth=!!k,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(k){this.$updateCustomScrollbar(k)},initialValue:!1},theme:{set:function(k){this.setTheme(k)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!g.isMobile&&!g.isIE}}),h.VirtualRenderer=T}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(i,h,v){var s=i("../lib/oop"),u=i("../lib/net"),d=i("../lib/event_emitter").EventEmitter,a=i("../config");function p(l){var o="importScripts('"+u.qualifyURL(l)+"');";try{return new Blob([o],{type:"application/javascript"})}catch{var c=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new c;return f.append(o),f.getBlob("application/javascript")}}function e(l){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var o=p(l),c=window.URL||window.webkitURL,f=c.createObjectURL(o);return new Worker(f)}return new Worker(l)}var t=function(l){l.postMessage||(l=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=l,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){s.implement(this,d),this.$createWorkerFromOldConfig=function(l,o,c,f,m){if(i.nameToUrl&&!i.toUrl&&(i.toUrl=i.nameToUrl),a.get("packaged")||!i.toUrl)f=f||a.moduleUrl(o,"worker");else{var y=this.$normalizePath;f=f||y(i.toUrl("ace/worker/worker.js",null,"_"));var D={};l.forEach(function(E){D[E]=y(i.toUrl(E,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=e(f),m&&this.send("importScripts",m),this.$worker.postMessage({init:!0,tlns:D,module:o,classname:c}),this.$worker},this.onMessage=function(l){var o=l.data;switch(o.type){case"event":this._signal(o.name,{data:o.data});break;case"call":var c=this.callbacks[o.id];c&&(c(o.data),delete this.callbacks[o.id]);break;case"error":this.reportError(o.data);break;case"log":window.console&&console.log&&console.log.apply(console,o.data);break}},this.reportError=function(l){window.console&&console.error&&console.error(l)},this.$normalizePath=function(l){return u.qualifyURL(l)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(l){l.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(l,o){this.$worker.postMessage({command:l,args:o})},this.call=function(l,o,c){if(c){var f=this.callbackId++;this.callbacks[f]=c,o.push(f)}this.send(l,o)},this.emit=function(l,o){try{o.data&&o.data.err&&(o.data.err={message:o.data.err.message,stack:o.data.err.stack,code:o.data.err.code}),this.$worker&&this.$worker.postMessage({event:l,data:{data:o.data}})}catch(c){console.error(c.stack)}},this.attachToDocument=function(l){this.$doc&&this.terminate(),this.$doc=l,this.call("setValue",[l.getValue()]),l.on("change",this.changeListener,!0)},this.changeListener=function(l){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),l.action=="insert"?this.deltaQueue.push(l.start,l.lines):this.deltaQueue.push(l.start,l.end)},this.$sendDeltaQueue=function(){var l=this.deltaQueue;l&&(this.deltaQueue=null,l.length>50&&l.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:l}))}}).call(t.prototype);var r=function(l,o,c){var f=null,m=!1,y=Object.create(d),D=[],E=new t({messageBuffer:D,terminate:function(){},postMessage:function(g){D.push(g),f&&(m?setTimeout(b):b())}});E.setEmitSync=function(g){m=g};var b=function(){var g=D.shift();g.command?f[g.command].apply(f,g.args):g.event&&y._signal(g.event,g.data)};return y.postMessage=function(g){E.onMessage({data:g})},y.callback=function(g,S){this.postMessage({type:"call",id:S,data:g})},y.emit=function(g,S){this.postMessage({type:"event",name:g,data:S})},a.loadModule(["worker",o],function(g){for(f=new g[c](y);D.length;)b()}),E};h.UIWorkerClient=r,h.WorkerClient=t,h.createWorker=e}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(i,h,v){var s=i("./range").Range,u=i("./lib/event_emitter").EventEmitter,d=i("./lib/oop"),a=function(){function p(e,t,r,l,o,c){var f=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=o,this.othersClass=c,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=l,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=r;var m=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=m.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return p.prototype.setup=function(){var e=this,t=this.doc,r=this.session;this.selectionBefore=r.selection.toJSON(),r.selection.inMultiSelectMode&&r.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var l=this.pos;l.$insertRight=!0,l.detach(),l.markerId=r.addMarker(new s(l.row,l.column,l.row,l.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(o){var c=t.createAnchor(o.row,o.column);c.$insertRight=!0,c.detach(),e.others.push(c)}),r.setUndoSelect(!1)},p.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(r){r.markerId=e.addMarker(new s(r.row,r.column,r.row,r.column+t.length),t.othersClass,null,!1)})}},p.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),l&&(this.length+=r),l&&!this.session.$fromUndo){if(e.action==="insert")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+o};this.doc.insertMergedLines(m,e.lines)}else if(e.action==="remove")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+o};this.doc.remove(new s(m.row,m.column,m.row,m.column-r))}}this.$updating=!1,this.updateMarkers()}},p.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},p.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,r=function(o,c){t.removeMarker(o.markerId),o.markerId=t.addMarker(new s(o.row,o.column,o.row,o.column+e.length),c,null,!1)};r(this.pos,this.mainClass);for(var l=this.others.length;l--;)r(this.others[l],this.othersClass)}},p.prototype.onCursorChange=function(e){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},p.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},p.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,r=0;r1?u.multiSelect.joinSelections():u.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(u){u.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(u){u.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(u){u.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],h.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(u){u.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(u){return u&&u.inMultiSelectMode}}];var s=i("../keyboard/hash_handler").HashHandler;h.keyboardHandler=new s(h.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(i,h,v){var s=i("./range_list").RangeList,u=i("./range").Range,d=i("./selection").Selection,a=i("./mouse/multi_select_handler").onMouseDown,p=i("./lib/event"),e=i("./lib/lang"),t=i("./commands/multi_select_commands");h.commands=t.defaultCommands.concat(t.multiSelectCommands);var r=i("./search").Search,l=new r;function o(E,b,g){return l.$options.wrap=!0,l.$options.needle=b,l.$options.backwards=g==-1,l.find(E)}var c=i("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(c.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(E,b){if(E){if(!this.inMultiSelectMode&&this.rangeCount===0){var g=this.toOrientedRange();if(this.rangeList.add(g),this.rangeList.add(E),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),b||this.fromOrientedRange(E);this.rangeList.removeAll(),this.rangeList.add(g),this.$onAddRange(g)}E.cursor||(E.cursor=E.end);var S=this.rangeList.add(E);return this.$onAddRange(E),S.length&&this.$onRemoveRange(S),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(E)}},this.toSingleRange=function(E){E=E||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),E&&this.fromOrientedRange(E)},this.substractPoint=function(E){var b=this.rangeList.substractPoint(E);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var E=this.rangeList.merge();E.length&&this.$onRemoveRange(E)},this.$onAddRange=function(E){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(E),this._signal("addRange",{range:E})},this.$onRemoveRange=function(E){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();E.push(b),this.rangeCount=0}for(var g=E.length;g--;){var S=this.ranges.indexOf(E[g]);this.ranges.splice(S,1)}this._signal("removeRange",{ranges:E}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new s,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var E=this.ranges.length?this.ranges:[this.getRange()],b=[],g=0;g1){var E=this.rangeList.ranges,b=E[E.length-1],g=u.fromPoints(E[0].start,b.end);this.toSingleRange(),this.setSelectionRange(g,b.cursor==b.start)}else{var S=this.session.documentToScreenPosition(this.cursor),T=this.session.documentToScreenPosition(this.anchor),k=this.rectangularRangeBlock(S,T);k.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(E,b,g){var S=[],T=E.column0;)R--;if(R>0)for(var B=0;S[B].isEmpty();)B++;for(var P=R;P>=B;P--)S[P].isEmpty()&&S.splice(P,1)}return S}}.call(d.prototype);var f=i("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(E){E.cursor||(E.cursor=E.end);var b=this.getSelectionStyle();return E.marker=this.session.addMarker(E,"ace_selection",b),this.session.$selectionMarkers.push(E),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,E},this.removeSelectionMarker=function(E){if(E.marker){this.session.removeMarker(E.marker);var b=this.session.$selectionMarkers.indexOf(E);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(E){for(var b=this.session.$selectionMarkers,g=E.length;g--;){var S=E[g];if(S.marker){this.session.removeMarker(S.marker);var T=b.indexOf(S);T!=-1&&b.splice(T,1)}}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(E){this.addSelectionMarker(E.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(E){this.removeSelectionMarkers(E.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(E){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(t.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(E){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(t.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(E){var b=E.command,g=E.editor;if(g.multiSelect){if(b.multiSelectAction)b.multiSelectAction=="forEach"?S=g.forEachSelection(b,E.args):b.multiSelectAction=="forEachLine"?S=g.forEachSelection(b,E.args,!0):b.multiSelectAction=="single"?(g.exitMultiSelectMode(),S=b.exec(g,E.args||{})):S=b.multiSelectAction(g,E.args||{});else{var S=b.exec(g,E.args||{});g.multiSelect.addRange(g.multiSelect.toOrientedRange()),g.multiSelect.mergeOverlappingRanges()}return S}},this.forEachSelection=function(E,b,g){if(!this.inVirtualSelectionMode){var S=g&&g.keepOrder,T=g==!0||g&&g.$byLines,k=this.session,_=this.selection,O=_.rangeList,$=(S?_:O).ranges,A;if(!$.length)return E.exec?E.exec(this,b||{}):E(this,b||{});var C=_._eventRegistry;_._eventRegistry={};var w=new d(k);this.inVirtualSelectionMode=!0;for(var x=$.length;x--;){if(T)for(;x>0&&$[x].start.row==$[x-1].end.row;)x--;w.fromOrientedRange($[x]),w.index=x,this.selection=k.selection=w;var I=E.exec?E.exec(this,b||{}):E(this,b||{});!A&&I!==void 0&&(A=I),w.toOrientedRange($[x])}w.detach(),this.selection=k.selection=_,this.inVirtualSelectionMode=!1,_._eventRegistry=C,_.mergeOverlappingRanges(),_.ranges[0]&&_.fromOrientedRange(_.ranges[0]);var F=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),F&&F.from==F.to&&this.renderer.animateScrolling(F.from),A}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var E="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var b=this.multiSelect.rangeList.ranges,g=[],S=0;S0);_<0&&(_=0),O>=A&&(O=A-1)}var w=this.session.removeFullLines(_,O);w=this.$reAlignText(w,$),this.session.insert({row:_,column:0},w.join(` `)+` -`),$||(k.start.column=0,k.end.column=w[w.length-1].length),this.selection.setRange(k)}else{T.forEach(function(R){b.substractPoint(R.cursor)});var x=0,I=1/0,F=g.map(function(R){var B=R.cursor,P=E.getLine(B.row),V=P.substr(B.column).search(/\S/g);return V==-1&&(V=0),B.column>x&&(x=B.column),VW?E.insert(P,e.stringRepeat(" ",V-W)):E.remove(new h(P.row,P.column,P.row,P.column-V+W)),R.start.column=R.end.column=x,R.start.row=R.end.row=P.row,R.cursor=R.end}),b.fromOrientedRange(g[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(E,b){var g=!0,S=!0,T,k,_;return E.map(function(w){var x=w.match(/(\s*)(.*?)(\s*)([=:].*)/);return x?T==null?(T=x[1].length,k=x[2].length,_=x[3].length,x):(T+k+_!=x[1].length+x[2].length+x[3].length&&(S=!1),T!=x[1].length&&(g=!1),T>x[1].length&&(T=x[1].length),kx[3].length&&(_=x[3].length),x):[w]}).map(b?$:g?S?A:$:C);function O(w){return e.stringRepeat(" ",w)}function $(w){return w[2]?O(T)+w[2]+O(k-w[2].length+_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function A(w){return w[2]?O(T+k-w[2].length)+w[2]+O(_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function C(w){return w[2]?O(T)+w[2]+O(_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}}}).call(f.prototype);function m(E,b){return E.row==b.row&&E.column==b.column}u.onSessionChange=function(E){var b=E.session;b&&!b.multiSelect&&(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b&&b.multiSelect;var g=E.oldSession;g&&(g.multiSelect.off("addRange",this.$onAddRange),g.multiSelect.off("removeRange",this.$onRemoveRange),g.multiSelect.off("multiSelect",this.$onMultiSelect),g.multiSelect.off("singleSelect",this.$onSingleSelect),g.multiSelect.lead.off("change",this.$checkMultiselectChange),g.multiSelect.anchor.off("change",this.$checkMultiselectChange)),b&&(b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),b.multiSelect.lead.on("change",this.$checkMultiselectChange),b.multiSelect.anchor.on("change",this.$checkMultiselectChange)),b&&this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function y(E){E.$multiselectOnSessionChange||(E.$onAddRange=E.$onAddRange.bind(E),E.$onRemoveRange=E.$onRemoveRange.bind(E),E.$onMultiSelect=E.$onMultiSelect.bind(E),E.$onSingleSelect=E.$onSingleSelect.bind(E),E.$multiselectOnSessionChange=u.onSessionChange.bind(E),E.$checkMultiselectChange=E.$checkMultiselectChange.bind(E),E.$multiselectOnSessionChange(E),E.on("changeSession",E.$multiselectOnSessionChange),E.on("mousedown",a),E.commands.addCommands(t.defaultCommands),D(E))}function D(E){if(!E.textInput)return;var b=E.textInput.getElement(),g=!1;d.addListener(b,"keydown",function(T){var k=T.keyCode==18&&!(T.ctrlKey||T.shiftKey||T.metaKey);E.$blockSelectEnabled&&k?g||(E.renderer.setMouseCursor("crosshair"),g=!0):g&&S()},E),d.addListener(b,"keyup",S,E),d.addListener(b,"blur",S,E);function S(T){g&&(E.renderer.setMouseCursor(""),g=!1)}}u.MultiSelect=y,i("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(E){y(this),E?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(E){this.$blockSelectEnabled=E},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(i,u,v){var o=i("../../range").Range,h=u.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(p,a,d){var e=p.getLine(d);return this.foldingStartMarker.test(e)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(e)?"end":""},this.getFoldWidgetRange=function(p,a,d){return null},this.indentationBlock=function(p,a,d){var e=/\S/,t=p.getLine(a),r=t.search(e);if(r!=-1){for(var l=d||t.length,s=p.getLength(),c=a,f=a;++ac){var D=p.getLine(f).length;return new o(c,l,f,D)}}},this.openingBracketBlock=function(p,a,d,e,t){var r={row:d,column:e+1},l=p.$findClosingBracket(a,r,t);if(l){var s=p.foldWidgets[l.row];return s==null&&(s=p.getFoldWidget(l.row)),s=="start"&&l.row>r.row&&(l.row--,l.column=p.getLine(l.row).length),o.fromPoints(r,l)}},this.closingBracketBlock=function(p,a,d,e,t){var r={row:d,column:e},l=p.$findOpeningBracket(a,r);if(l)return l.column++,r.column--,o.fromPoints(l,r)}}).call(h.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(i,u,v){var o=i("../lib/dom"),h=i("../range").Range,p=i("../config").nls;function a(e,t,r){for(var l=0,s=e.length-1;l<=s;){var c=l+s>>1,f=r(t,e[c]);if(f>0)l=c+1;else if(f<0)s=c-1;else return c}return-(l+1)}function d(e,t,r){var l=e.getAnnotations().sort(h.comparePoints);if(l.length){var s=a(l,{row:t,column:-1},h.comparePoints);s<0&&(s=-s-1),s>=l.length?s=r>0?0:l.length-1:s===0&&r<0&&(s=l.length-1);var c=l[s];if(!(!c||!r)){if(c.row===t){do c=l[s+=r];while(c&&c.row===t);if(!c)return l.slice()}var f=[];t=c.row;do f[r<0?"unshift":"push"](c),c=l[s+=r];while(c&&c.row==t);return f.length&&f}}}u.showErrorMarker=function(e,t){var r=e.session,l=e.getCursorPosition(),s=l.row,c=r.widgetManager.getWidgetsAtRow(s).filter(function(T){return T.type=="errorMarker"})[0];c?c.destroy():s-=t;var f=d(r,s,t),m;if(f){var y=f[0];l.column=(y.pos&&typeof y.column!="number"?y.pos.sc:y.column)||0,l.row=y.row,m=e.renderer.$gutterLayer.$annotations[l.row]}else{if(c)return;m={displayText:[p("error-marker.good-state","Looks good!")],className:"ace_ok"}}e.session.unfold(l.row),e.selection.moveToPosition(l);var D={row:l.row,fixedWidth:!0,coverGutter:!0,el:o.createElement("div"),type:"errorMarker"},E=D.el.appendChild(o.createElement("div")),b=D.el.appendChild(o.createElement("div"));b.className="error_widget_arrow "+m.className;var g=e.renderer.$cursorLayer.getPixelPosition(l).left;b.style.left=g+e.renderer.gutterWidth-5+"px",D.el.className="error_widget_wrapper",E.className="error_widget "+m.className,m.displayText.forEach(function(T,k){E.appendChild(o.createTextNode(T)),kx&&(x=B.column),VW?E.insert(P,e.stringRepeat(" ",V-W)):E.remove(new u(P.row,P.column,P.row,P.column-V+W)),R.start.column=R.end.column=x,R.start.row=R.end.row=P.row,R.cursor=R.end}),b.fromOrientedRange(g[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(E,b){var g=!0,S=!0,T,k,_;return E.map(function(w){var x=w.match(/(\s*)(.*?)(\s*)([=:].*)/);return x?T==null?(T=x[1].length,k=x[2].length,_=x[3].length,x):(T+k+_!=x[1].length+x[2].length+x[3].length&&(S=!1),T!=x[1].length&&(g=!1),T>x[1].length&&(T=x[1].length),kx[3].length&&(_=x[3].length),x):[w]}).map(b?$:g?S?A:$:C);function O(w){return e.stringRepeat(" ",w)}function $(w){return w[2]?O(T)+w[2]+O(k-w[2].length+_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function A(w){return w[2]?O(T+k-w[2].length)+w[2]+O(_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function C(w){return w[2]?O(T)+w[2]+O(_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}}}).call(f.prototype);function m(E,b){return E.row==b.row&&E.column==b.column}h.onSessionChange=function(E){var b=E.session;b&&!b.multiSelect&&(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b&&b.multiSelect;var g=E.oldSession;g&&(g.multiSelect.off("addRange",this.$onAddRange),g.multiSelect.off("removeRange",this.$onRemoveRange),g.multiSelect.off("multiSelect",this.$onMultiSelect),g.multiSelect.off("singleSelect",this.$onSingleSelect),g.multiSelect.lead.off("change",this.$checkMultiselectChange),g.multiSelect.anchor.off("change",this.$checkMultiselectChange)),b&&(b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),b.multiSelect.lead.on("change",this.$checkMultiselectChange),b.multiSelect.anchor.on("change",this.$checkMultiselectChange)),b&&this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function y(E){E.$multiselectOnSessionChange||(E.$onAddRange=E.$onAddRange.bind(E),E.$onRemoveRange=E.$onRemoveRange.bind(E),E.$onMultiSelect=E.$onMultiSelect.bind(E),E.$onSingleSelect=E.$onSingleSelect.bind(E),E.$multiselectOnSessionChange=h.onSessionChange.bind(E),E.$checkMultiselectChange=E.$checkMultiselectChange.bind(E),E.$multiselectOnSessionChange(E),E.on("changeSession",E.$multiselectOnSessionChange),E.on("mousedown",a),E.commands.addCommands(t.defaultCommands),D(E))}function D(E){if(!E.textInput)return;var b=E.textInput.getElement(),g=!1;p.addListener(b,"keydown",function(T){var k=T.keyCode==18&&!(T.ctrlKey||T.shiftKey||T.metaKey);E.$blockSelectEnabled&&k?g||(E.renderer.setMouseCursor("crosshair"),g=!0):g&&S()},E),p.addListener(b,"keyup",S,E),p.addListener(b,"blur",S,E);function S(T){g&&(E.renderer.setMouseCursor(""),g=!1)}}h.MultiSelect=y,i("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(E){y(this),E?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(E){this.$blockSelectEnabled=E},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(i,h,v){var s=i("../../range").Range,u=h.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(d,a,p){var e=d.getLine(p);return this.foldingStartMarker.test(e)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(e)?"end":""},this.getFoldWidgetRange=function(d,a,p){return null},this.indentationBlock=function(d,a,p){var e=/\S/,t=d.getLine(a),r=t.search(e);if(r!=-1){for(var l=p||t.length,o=d.getLength(),c=a,f=a;++ac){var D=d.getLine(f).length;return new s(c,l,f,D)}}},this.openingBracketBlock=function(d,a,p,e,t){var r={row:p,column:e+1},l=d.$findClosingBracket(a,r,t);if(l){var o=d.foldWidgets[l.row];return o==null&&(o=d.getFoldWidget(l.row)),o=="start"&&l.row>r.row&&(l.row--,l.column=d.getLine(l.row).length),s.fromPoints(r,l)}},this.closingBracketBlock=function(d,a,p,e,t){var r={row:p,column:e},l=d.$findOpeningBracket(a,r);if(l)return l.column++,r.column--,s.fromPoints(l,r)}}).call(u.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(i,h,v){var s=i("../lib/dom"),u=i("../range").Range,d=i("../config").nls;function a(e,t,r){for(var l=0,o=e.length-1;l<=o;){var c=l+o>>1,f=r(t,e[c]);if(f>0)l=c+1;else if(f<0)o=c-1;else return c}return-(l+1)}function p(e,t,r){var l=e.getAnnotations().sort(u.comparePoints);if(l.length){var o=a(l,{row:t,column:-1},u.comparePoints);o<0&&(o=-o-1),o>=l.length?o=r>0?0:l.length-1:o===0&&r<0&&(o=l.length-1);var c=l[o];if(!(!c||!r)){if(c.row===t){do c=l[o+=r];while(c&&c.row===t);if(!c)return l.slice()}var f=[];t=c.row;do f[r<0?"unshift":"push"](c),c=l[o+=r];while(c&&c.row==t);return f.length&&f}}}h.showErrorMarker=function(e,t){var r=e.session,l=e.getCursorPosition(),o=l.row,c=r.widgetManager.getWidgetsAtRow(o).filter(function(T){return T.type=="errorMarker"})[0];c?c.destroy():o-=t;var f=p(r,o,t),m;if(f){var y=f[0];l.column=(y.pos&&typeof y.column!="number"?y.pos.sc:y.column)||0,l.row=y.row,m=e.renderer.$gutterLayer.$annotations[l.row]}else{if(c)return;m={displayText:[d("error-marker.good-state","Looks good!")],className:"ace_ok"}}e.session.unfold(l.row),e.selection.moveToPosition(l);var D={row:l.row,fixedWidth:!0,coverGutter:!0,el:s.createElement("div"),type:"errorMarker"},E=D.el.appendChild(s.createElement("div")),b=D.el.appendChild(s.createElement("div"));b.className="error_widget_arrow "+m.className;var g=e.renderer.$cursorLayer.getPixelPosition(l).left;b.style.left=g+e.renderer.gutterWidth-5+"px",D.el.className="error_widget_wrapper",E.className="error_widget "+m.className,m.displayText.forEach(function(T,k){E.appendChild(s.createTextNode(T)),k-1}function vr(z,J){var te=this.__data__,ie=Xt(te,z);return ie<0?(++this.size,te.push([z,J])):te[ie][1]=J,this}qe.prototype.clear=pr,qe.prototype.delete=fr,qe.prototype.get=gr,qe.prototype.has=mr,qe.prototype.set=vr;function vt(z){var J=-1,te=z==null?0:z.length;for(this.clear();++JLe))return!1;var Te=he.get(z);if(Te&&he.get(J))return Te==J;var Pe=-1,Ue=!0,Re=te&o?new Qt:void 0;for(he.set(z,J),he.set(J,z);++Pe-1&&z%1==0&&z-1&&z%1==0&&z<=h}function ai(z){var J=typeof z;return z!=null&&(J=="object"||J=="function")}function Ht(z){return z!=null&&typeof z=="object"}var li=ke?Ot(ke):Fr;function Jr(z){return Gr(z)?kr(z):Or(z)}function Yr(){return[]}function Qr(){return!1}L.exports=Kr})(gn,gn.exports);var Ui=gn.exports,Je={};Object.defineProperty(Je,"__esModule",{value:!0});Je.getAceInstance=Je.debounce=Je.editorEvents=Je.editorOptions=void 0;var lo=["minLines","maxLines","readOnly","highlightActiveLine","tabSize","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets"];Je.editorOptions=lo;var uo=["onChange","onFocus","onInput","onBlur","onCopy","onPaste","onSelectionChange","onCursorChange","onScroll","handleOptions","updateRef"];Je.editorEvents=uo;var ho=function(){var L;return typeof window>"u"?(He.window={},L=fn,delete He.window):window.ace?(L=window.ace,L.acequire=window.ace.require||window.ace.acequire):L=fn,L};Je.getAceInstance=ho;var co=function(L,n){var i=null;return function(){var u=this,v=arguments;clearTimeout(i),i=setTimeout(function(){L.apply(u,v)},n)}};Je.debounce=co;var po=Dt&&Dt.__extends||function(){var L=function(n,i){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,v){u.__proto__=v}||function(u,v){for(var o in v)Object.prototype.hasOwnProperty.call(v,o)&&(u[o]=v[o])},L(n,i)};return function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");L(n,i);function u(){this.constructor=n}n.prototype=i===null?Object.create(i):(u.prototype=i.prototype,new u)}}(),jn=Dt&&Dt.__assign||function(){return jn=Object.assign||function(L){for(var n,i=1,u=arguments.length;i0&&this.handleMarkers(S);var O=this.editor.$options;Lt.editorOptions.forEach(function($){O.hasOwnProperty($)?i.editor.setOption($,i.props[$]):i.props[$]&&console.warn("ReactAce: editor option ".concat($," was activated but not found. Did you need to import a related tool or did you possibly mispell the option?"))}),this.handleOptions(this.props),Array.isArray(b)&&b.forEach(function($){typeof $.exec=="string"?i.editor.commands.bindKey($.bindKey,$.exec):i.editor.commands.addCommand($)}),D&&this.editor.setKeyboardHandler("ace/keyboard/"+D),v&&(this.refEditor.className+=" "+v),E&&E(this.editor),this.editor.resize(),a&&this.editor.focus()},n.prototype.componentDidUpdate=function(i){for(var u=i,v=this.props,o=0;o 0!";if(t!=this.$splits){if(t>this.$splits){for(;this.$splitst;)r=this.$editors[this.$splits-1],this.$container.removeChild(r.container),this.$splits--;this.resize()}},this.getSplits=function(){return this.$splits},this.getEditor=function(t){return this.$editors[t]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(t){this.$editors.forEach(function(r){r.setTheme(t)})},this.setKeyboardHandler=function(t){this.$editors.forEach(function(r){r.setKeyboardHandler(t)})},this.forEach=function(t,r){this.$editors.forEach(t,r)},this.$fontSize="",this.setFontSize=function(t){this.$fontSize=t,this.forEach(function(r){r.setFontSize(t)})},this.$cloneSession=function(t){var r=new d(t.getDocument(),t.getMode()),l=t.getUndoManager();return r.setUndoManager(l),r.setTabSize(t.getTabSize()),r.setUseSoftTabs(t.getUseSoftTabs()),r.setOverwrite(t.getOverwrite()),r.setBreakpoints(t.getBreakpoints()),r.setUseWrapMode(t.getUseWrapMode()),r.setUseWorker(t.getUseWorker()),r.setWrapLimitRange(t.$wrapLimitRange.min,t.$wrapLimitRange.max),r.$foldData=t.$cloneFoldData(),r},this.setSession=function(t,r){var l;r==null?l=this.$cEditor:l=this.$editors[r];var s=this.$editors.some(function(c){return c.session===t});return s&&(t=this.$cloneSession(t)),l.setSession(t),t},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(t){this.$orientation!=t&&(this.$orientation=t,this.resize())},this.resize=function(){var t=this.$container.clientWidth,r=this.$container.clientHeight,l;if(this.$orientation==this.BESIDE)for(var s=t/this.$splits,c=0;c-1}function Go(L,n){var i=this.__data__,u=vn(i,L);return u<0?i.push([L,n]):i[u][1]=n,this}Ft.prototype.clear=zo;Ft.prototype.delete=jo;Ft.prototype.get=Vo;Ft.prototype.has=Uo;Ft.prototype.set=Go;function xt(L){var n=-1,i=L?L.length:0;for(this.clear();++n0&&i.handleMarkers(F,$);for(var C=0;C"u"&&(this.Diff_Timeout<=0?a=Number.MAX_VALUE:a=new Date().getTime()+this.Diff_Timeout*1e3);var d=a;if(o==null||h==null)throw new Error("Null input. (diff_main)");if(o==h)return o?[new n.Diff(v,o)]:[];typeof p>"u"&&(p=!0);var e=p,t=this.diff_commonPrefix(o,h),r=o.substring(0,t);o=o.substring(t),h=h.substring(t),t=this.diff_commonSuffix(o,h);var l=o.substring(o.length-t);o=o.substring(0,o.length-t),h=h.substring(0,h.length-t);var s=this.diff_compute_(o,h,e,d);return r&&s.unshift(new n.Diff(v,r)),l&&s.push(new n.Diff(v,l)),this.diff_cleanupMerge(s),s},n.prototype.diff_compute_=function(o,h,p,a){var d;if(!o)return[new n.Diff(u,h)];if(!h)return[new n.Diff(i,o)];var e=o.length>h.length?o:h,t=o.length>h.length?h:o,r=e.indexOf(t);if(r!=-1)return d=[new n.Diff(u,e.substring(0,r)),new n.Diff(v,t),new n.Diff(u,e.substring(r+t.length))],o.length>h.length&&(d[0][0]=d[2][0]=i),d;if(t.length==1)return[new n.Diff(i,o),new n.Diff(u,h)];var l=this.diff_halfMatch_(o,h);if(l){var s=l[0],c=l[1],f=l[2],m=l[3],y=l[4],D=this.diff_main(s,f,p,a),E=this.diff_main(c,m,p,a);return D.concat([new n.Diff(v,y)],E)}return p&&o.length>100&&h.length>100?this.diff_lineMode_(o,h,a):this.diff_bisect_(o,h,a)},n.prototype.diff_lineMode_=function(o,h,p){var a=this.diff_linesToChars_(o,h);o=a.chars1,h=a.chars2;var d=a.lineArray,e=this.diff_main(o,h,!1,p);this.diff_charsToLines_(e,d),this.diff_cleanupSemantic(e),e.push(new n.Diff(v,""));for(var t=0,r=0,l=0,s="",c="";t=1&&l>=1){e.splice(t-r-l,r+l),t=t-r-l;for(var f=this.diff_main(s,c,!1,p),m=f.length-1;m>=0;m--)e.splice(t,0,f[m]);t=t+f.length}l=0,r=0,s="",c="";break}t++}return e.pop(),e},n.prototype.diff_bisect_=function(o,h,p){for(var a=o.length,d=h.length,e=Math.ceil((a+d)/2),t=e,r=2*e,l=new Array(r),s=new Array(r),c=0;cp);g++){for(var S=-g+y;S<=g-D;S+=2){var T=t+S,k;S==-g||S!=g&&l[T-1]a)D+=2;else if(_>d)y+=2;else if(m){var O=t+f-S;if(O>=0&&O=$)return this.diff_bisectSplit_(o,h,k,_,p)}}}for(var A=-g+E;A<=g-b;A+=2){var O=t+A,$;A==-g||A!=g&&s[O-1]a)b+=2;else if(C>d)E+=2;else if(!m){var T=t+f-A;if(T>=0&&T=$)return this.diff_bisectSplit_(o,h,k,_,p)}}}}return[new n.Diff(i,o),new n.Diff(u,h)]},n.prototype.diff_bisectSplit_=function(o,h,p,a,d){var e=o.substring(0,p),t=h.substring(0,a),r=o.substring(p),l=h.substring(a),s=this.diff_main(e,t,!1,d),c=this.diff_main(r,l,!1,d);return s.concat(c)},n.prototype.diff_linesToChars_=function(o,h){var p=[],a={};p[0]="";function d(l){for(var s="",c=0,f=-1,m=p.length;fa?o=o.substring(p-a):ph.length?o:h,a=o.length>h.length?h:o;if(p.length<4||a.length*2=D.length?[k,_,O,$,T]:null}var t=e(p,a,Math.ceil(p.length/4)),r=e(p,a,Math.ceil(p.length/2)),l;if(!t&&!r)return null;r?t?l=t[4].length>r[4].length?t:r:l=r:l=t;var s,c,f,m;o.length>h.length?(s=l[0],c=l[1],f=l[2],m=l[3]):(f=l[0],m=l[1],s=l[2],c=l[3]);var y=l[4];return[s,c,f,m,y]},n.prototype.diff_cleanupSemantic=function(o){for(var h=!1,p=[],a=0,d=null,e=0,t=0,r=0,l=0,s=0;e0?p[a-1]:-1,t=0,r=0,l=0,s=0,d=null,h=!0)),e++;for(h&&this.diff_cleanupMerge(o),this.diff_cleanupSemanticLossless(o),e=1;e=y?(m>=c.length/2||m>=f.length/2)&&(o.splice(e,0,new n.Diff(v,f.substring(0,m))),o[e-1][1]=c.substring(0,c.length-m),o[e+1][1]=f.substring(m),e++):(y>=c.length/2||y>=f.length/2)&&(o.splice(e,0,new n.Diff(v,c.substring(0,y))),o[e-1][0]=u,o[e-1][1]=f.substring(0,f.length-y),o[e+1][0]=i,o[e+1][1]=c.substring(y),e++),e++}e++}},n.prototype.diff_cleanupSemanticLossless=function(o){function h(y,D){if(!y||!D)return 6;var E=y.charAt(y.length-1),b=D.charAt(0),g=E.match(n.nonAlphaNumericRegex_),S=b.match(n.nonAlphaNumericRegex_),T=g&&E.match(n.whitespaceRegex_),k=S&&b.match(n.whitespaceRegex_),_=T&&E.match(n.linebreakRegex_),O=k&&b.match(n.linebreakRegex_),$=_&&y.match(n.blanklineEndRegex_),A=O&&D.match(n.blanklineStartRegex_);return $||A?5:_||O?4:g&&!T&&k?3:T||k?2:g||S?1:0}for(var p=1;p=f&&(f=m,l=a,s=d,c=e)}o[p-1][1]!=l&&(l?o[p-1][1]=l:(o.splice(p-1,1),p--),o[p][1]=s,c?o[p+1][1]=c:(o.splice(p+1,1),p--))}p++}},n.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,n.whitespaceRegex_=/\s/,n.linebreakRegex_=/[\r\n]/,n.blanklineEndRegex_=/\n\r?\n$/,n.blanklineStartRegex_=/^\r?\n\r?\n/,n.prototype.diff_cleanupEfficiency=function(o){for(var h=!1,p=[],a=0,d=null,e=0,t=!1,r=!1,l=!1,s=!1;e0?p[a-1]:-1,l=s=!1),h=!0)),e++;h&&this.diff_cleanupMerge(o)},n.prototype.diff_cleanupMerge=function(o){o.push(new n.Diff(v,""));for(var h=0,p=0,a=0,d="",e="",t;h1?(p!==0&&a!==0&&(t=this.diff_commonPrefix(e,d),t!==0&&(h-p-a>0&&o[h-p-a-1][0]==v?o[h-p-a-1][1]+=e.substring(0,t):(o.splice(0,0,new n.Diff(v,e.substring(0,t))),h++),e=e.substring(t),d=d.substring(t)),t=this.diff_commonSuffix(e,d),t!==0&&(o[h][1]=e.substring(e.length-t)+o[h][1],e=e.substring(0,e.length-t),d=d.substring(0,d.length-t))),h-=p+a,o.splice(h,p+a),d.length&&(o.splice(h,0,new n.Diff(i,d)),h++),e.length&&(o.splice(h,0,new n.Diff(u,e)),h++),h++):h!==0&&o[h-1][0]==v?(o[h-1][1]+=o[h][1],o.splice(h,1)):h++,a=0,p=0,d="",e="";break}o[o.length-1][1]===""&&o.pop();var r=!1;for(h=1;hh));t++)d=p,e=a;return o.length!=t&&o[t][0]===i?e:e+(h-d)},n.prototype.diff_prettyHtml=function(o){for(var h=[],p=/&/g,a=//g,e=/\n/g,t=0;t");switch(r){case u:h[t]=''+s+"";break;case i:h[t]=''+s+"";break;case v:h[t]=""+s+"";break}}return h.join("")},n.prototype.diff_text1=function(o){for(var h=[],p=0;pthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var a=this.match_alphabet_(h),d=this;function e(k,_){var O=k/h.length,$=Math.abs(p-_);return d.Match_Distance?O+$/d.Match_Distance:$?1:O}var t=this.Match_Threshold,r=o.indexOf(h,p);r!=-1&&(t=Math.min(e(0,r),t),r=o.lastIndexOf(h,p+h.length),r!=-1&&(t=Math.min(e(0,r),t)));var l=1<=D;g--){var S=a[o.charAt(g-1)];if(y===0?b[g]=(b[g+1]<<1|1)&S:b[g]=(b[g+1]<<1|1)&S|((m[g+1]|m[g])<<1|1)|m[g+1],b[g]&l){var T=e(y,g-1);if(T<=t)if(t=T,r=g-1,r>p)D=Math.max(1,2*p-r);else break}}if(e(y+1,p)>t)break;m=b}return r},n.prototype.match_alphabet_=function(o){for(var h={},p=0;p"u")a=o,d=this.diff_main(a,h,!0),d.length>2&&(this.diff_cleanupSemantic(d),this.diff_cleanupEfficiency(d));else if(o&&typeof o=="object"&&typeof h>"u"&&typeof p>"u")d=o,a=this.diff_text1(d);else if(typeof o=="string"&&h&&typeof h=="object"&&typeof p>"u")a=o,d=h;else if(typeof o=="string"&&typeof h=="string"&&p&&typeof p=="object")a=o,d=p;else throw new Error("Unknown call format to patch_make.");if(d.length===0)return[];for(var e=[],t=new n.patch_obj,r=0,l=0,s=0,c=a,f=a,m=0;m=2*this.Patch_Margin&&r&&(this.patch_addContext_(t,c),e.push(t),t=new n.patch_obj,r=0,c=f,l=s);break}y!==u&&(l+=D.length),y!==i&&(s+=D.length)}return r&&(this.patch_addContext_(t,c),e.push(t)),e},n.prototype.patch_deepCopy=function(o){for(var h=[],p=0;pthis.Match_MaxBits?(l=this.match_main(h,r.substring(0,this.Match_MaxBits),t),l!=-1&&(s=this.match_main(h,r.substring(r.length-this.Match_MaxBits),t+r.length-this.Match_MaxBits),(s==-1||l>=s)&&(l=-1))):l=this.match_main(h,r,t),l==-1)d[e]=!1,a-=o[e].length2-o[e].length1;else{d[e]=!0,a=l-t;var c;if(s==-1?c=h.substring(l,l+r.length):c=h.substring(l,s+this.Match_MaxBits),r==c)h=h.substring(0,l)+this.diff_text2(o[e].diffs)+h.substring(l+r.length);else{var f=this.diff_main(r,c,!1);if(r.length>this.Match_MaxBits&&this.diff_levenshtein(f)/r.length>this.Patch_DeleteThreshold)d[e]=!1;else{this.diff_cleanupSemanticLossless(f);for(var m=0,y,D=0;De[0][1].length){var t=h-e[0][1].length;e[0][1]=p.substring(e[0][1].length)+e[0][1],d.start1-=t,d.start2-=t,d.length1+=t,d.length2+=t}if(d=o[o.length-1],e=d.diffs,e.length==0||e[e.length-1][0]!=v)e.push(new n.Diff(v,p)),d.length1+=h,d.length2+=h;else if(h>e[e.length-1][1].length){var t=h-e[e.length-1][1].length;e[e.length-1][1]+=p.substring(0,t),d.length1+=t,d.length2+=t}return p},n.prototype.patch_splitMax=function(o){for(var h=this.Match_MaxBits,p=0;p2*h?(r.length1+=c.length,d+=c.length,l=!1,r.diffs.push(new n.Diff(s,c)),a.diffs.shift()):(c=c.substring(0,h-r.length1-this.Patch_Margin),r.length1+=c.length,d+=c.length,s===v?(r.length2+=c.length,e+=c.length):l=!1,r.diffs.push(new n.Diff(s,c)),c==a.diffs[0][1]?a.diffs.shift():a.diffs[0][1]=a.diffs[0][1].substring(c.length))}t=this.diff_text2(r.diffs),t=t.substring(t.length-this.Patch_Margin);var f=this.diff_text1(a.diffs).substring(0,this.Patch_Margin);f!==""&&(r.length1+=f.length,r.length2+=f.length,r.diffs.length!==0&&r.diffs[r.diffs.length-1][0]===v?r.diffs[r.diffs.length-1][1]+=f:r.diffs.push(new n.Diff(v,f))),l||o.splice(++p,0,r)}}},n.prototype.patch_toText=function(o){for(var h=[],p=0;pm)break;var y=this.getFoldWidgetRange(d,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new h(l,s,c,d.getLine(c).length)},this.getCommentRegionBlock=function(d,e,t){for(var r=e.search(/\s*$/),l=d.getLength(),s=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ts)return new h(s,r,y,e.length)}}.call(a.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(i,u,v){var o=i("../lib/oop"),h=i("./text").Mode,p=i("./json_highlight_rules").JsonHighlightRules,a=i("./matching_brace_outdent").MatchingBraceOutdent,d=i("./folding/cstyle").FoldMode,e=i("../worker/worker_client").WorkerClient,t=function(){this.HighlightRules=p,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new d};o.inherits(t,h),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(r,l,s){var c=this.$getIndent(l);if(r=="start"){var f=l.match(/^.*[\{\(\[]\s*$/);f&&(c+=s)}return c},this.checkOutdent=function(r,l,s){return this.$outdent.checkOutdent(l,s)},this.autoOutdent=function(r,l,s){this.$outdent.autoOutdent(l,s)},this.createWorker=function(r){var l=new e(["ace"],"ace/mode/json_worker","JsonWorker");return l.attachToDocument(r.getDocument()),l.on("annotate",function(s){r.setAnnotations(s.data)}),l.on("terminate",function(){r.clearAnnotations()}),l},this.$id="ace/mode/json"}.call(t.prototype),u.Mode=t}),function(){ace.require(["ace/mode/json"],function(i){L&&(L.exports=i)})}()})($a);var Ta={exports:{}};(function(L,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(i,u,v){var o=i("../lib/oop"),h=i("./text_highlight_rules").TextHighlightRules,p=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(p,h),u.JsonHighlightRules=p}),ace.define("ace/mode/json5_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/json_highlight_rules"],function(i,u,v){var o=i("../lib/oop"),h=i("./json_highlight_rules").JsonHighlightRules,p=function(){h.call(this);var a=[{token:"variable",regex:/[a-zA-Z$_\u00a1-\uffff][\w$\u00a1-\uffff]*\s*(?=:)/},{token:"variable",regex:/['](?:(?:\\.)|(?:[^'\\]))*?[']\s*(?=:)/},{token:"constant.language.boolean",regex:/(?:null)\b/},{token:"string",regex:/'/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/'|$/,next:"start"},{defaultToken:"string"}]},{token:"string",regex:/"(?![^"]*":)/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/"|$/,next:"start"},{defaultToken:"string"}]},{token:"constant.numeric",regex:/[+-]?(?:Infinity|NaN)\b/}];for(var d in this.$rules)this.$rules[d].unshift.apply(this.$rules[d],a);this.normalizeRules()};o.inherits(p,h),u.Json5HighlightRules=p}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(i,u,v){var o=i("../range").Range,h=function(){};(function(){this.checkOutdent=function(p,a){return/^\s+$/.test(p)?/^\s*\}/.test(a):!1},this.autoOutdent=function(p,a){var d=p.getLine(a),e=d.match(/^(\s*\})/);if(!e)return 0;var t=e[1].length,r=p.findMatchingBracket({row:a,column:t});if(!r||r.row==a)return 0;var l=this.$getIndent(p.getLine(r.row));p.replace(new o(a,0,a,t-1),l)},this.$getIndent=function(p){return p.match(/^\s*/)[0]}}).call(h.prototype),u.MatchingBraceOutdent=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(i,u,v){var o=i("../../lib/oop"),h=i("../../range").Range,p=i("./fold_mode").FoldMode,a=u.FoldMode=function(d){d&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+d.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+d.end)))};o.inherits(a,p),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(d,e,t){var r=d.getLine(t);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var l=this._getFoldWidgetBase(d,e,t);return!l&&this.startRegionRe.test(r)?"start":l},this.getFoldWidgetRange=function(d,e,t,r){var l=d.getLine(t);if(this.startRegionRe.test(l))return this.getCommentRegionBlock(d,l,t);var f=l.match(this.foldingStartMarker);if(f){var s=f.index;if(f[1])return this.openingBracketBlock(d,f[1],t,s);var c=d.getCommentFoldRange(t,s+f[0].length,1);return c&&!c.isMultiLine()&&(r?c=this.getSectionRange(d,t):e!="all"&&(c=null)),c}if(e!=="markbegin"){var f=l.match(this.foldingStopMarker);if(f){var s=f.index+f[0].length;return f[1]?this.closingBracketBlock(d,f[1],t,s):d.getCommentFoldRange(t,s,-1)}}},this.getSectionRange=function(d,e){var t=d.getLine(e),r=t.search(/\S/),l=e,s=t.length;e+=1;for(var c=e,f=d.getLength();++em)break;var y=this.getFoldWidgetRange(d,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new h(l,s,c,d.getLine(c).length)},this.getCommentRegionBlock=function(d,e,t){for(var r=e.search(/\s*$/),l=d.getLength(),s=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ts)return new h(s,r,y,e.length)}}.call(a.prototype)}),ace.define("ace/mode/json5",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json5_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(i,u,v){var o=i("../lib/oop"),h=i("./text").Mode,p=i("./json5_highlight_rules").Json5HighlightRules,a=i("./matching_brace_outdent").MatchingBraceOutdent,d=i("./folding/cstyle").FoldMode,e=function(){this.HighlightRules=p,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new d};o.inherits(e,h),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.checkOutdent=function(t,r,l){return this.$outdent.checkOutdent(r,l)},this.autoOutdent=function(t,r,l){this.$outdent.autoOutdent(r,l)},this.$id="ace/mode/json5"}.call(e.prototype),u.Mode=e}),function(){ace.require(["ace/mode/json5"],function(i){L&&(L.exports=i)})}()})(Ta);var _a={};(function(L){function n(v,o){for(var h=v,p="";h;){var a=o[h];if(typeof a=="string")return a+p;if(a)return a.location.replace(/\/*$/,"/")+(p||a.main||a.name);if(a===!1)return"";var d=h.lastIndexOf("/");if(d===-1)break;p=h.substr(d)+p,h=h.slice(0,d)}return v}if(!(typeof L.window<"u"&&L.document)&&!(L.require&&L.define)){L.console||(L.console=function(){var v=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:v})},L.console.error=L.console.warn=L.console.log=L.console.trace=L.console),L.window=L,L.ace=L,L.onerror=function(v,o,h,p,a){postMessage({type:"error",data:{message:v,data:a&&a.data,file:o,line:h,col:p,stack:a&&a.stack}})},L.normalizeModule=function(v,o){if(o.indexOf("!")!==-1){var h=o.split("!");return L.normalizeModule(v,h[0])+"!"+L.normalizeModule(v,h[1])}if(o.charAt(0)=="."){var p=v.split("/").slice(0,-1).join("/");for(o=(p?p+"/":"")+o;o.indexOf(".")!==-1&&a!=o;){var a=o;o=o.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return o},L.require=function(v,o){if(o||(o=v,v=null),!o.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");o=L.normalizeModule(v,o);var h=L.require.modules[o];if(h)return h.initialized||(h.initialized=!0,h.exports=h.factory().exports),h.exports;if(!L.require.tlns)return console.log("unable to load "+o);var p=n(o,L.require.tlns);return p.slice(-3)!=".js"&&(p+=".js"),L.require.id=o,L.require.modules[o]={},importScripts(p),L.require(v,o)},L.require.modules={},L.require.tlns={},L.define=function(v,o,h){if(arguments.length==2?(h=o,typeof v!="string"&&(o=v,v=L.require.id)):arguments.length==1&&(h=v,o=[],v=L.require.id),typeof h!="function"){L.require.modules[v]={exports:h,initialized:!0};return}o.length||(o=["require","exports","module"]);var p=function(a){return L.require(v,a)};L.require.modules[v]={exports:{},factory:function(){var a=this,d=h.apply(this,o.slice(0,h.length).map(function(e){switch(e){case"require":return p;case"exports":return a.exports;case"module":return a;default:return p(e)}}));return d&&(a.exports=d),a}}},L.define.amd={},L.require.tlns={},L.initBaseUrls=function(v){for(var o in v)this.require.tlns[o]=v[o]},L.initSender=function(){var v=L.require("ace/lib/event_emitter").EventEmitter,o=L.require("ace/lib/oop"),h=function(){};return function(){o.implement(this,v),this.callback=function(p,a){postMessage({type:"call",id:a,data:p})},this.emit=function(p,a){postMessage({type:"event",name:p,data:a})}}.call(h.prototype),new h};var i=L.main=null,u=L.sender=null;L.onmessage=function(v){var o=v.data;if(o.event&&u)u._signal(o.event,o.data);else if(o.command)if(i[o.command])i[o.command].apply(i,o.args);else{if(!L[o.command])throw new Error("Unknown command:"+o.command);L[o.command].apply(L,o.args)}else if(o.init){L.initBaseUrls(o.tlns),u=L.sender=L.initSender();var h=this.require(o.module)[o.classname];i=L.main=new h(u)}}}})(_a),ace.define("ace/lib/oop",[],function(L,n,i){n.inherits=function(u,v){u.super_=v,u.prototype=Object.create(v.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}})},n.mixin=function(u,v){for(var o in v)u[o]=v[o];return u},n.implement=function(u,v){n.mixin(u,v)}}),ace.define("ace/apply_delta",[],function(L,n,i){n.applyDelta=function(u,v,o){var h=v.start.row,p=v.start.column,a=u[h]||"";switch(v.action){case"insert":var d=v.lines;if(d.length===1)u[h]=a.substring(0,p)+v.lines[0]+a.substring(p);else{var e=[h,1].concat(v.lines);u.splice.apply(u,e),u[h]=a.substring(0,p)+u[h],u[h+v.lines.length-1]+=a.substring(p)}break;case"remove":var t=v.end.column,r=v.end.row;h===r?u[h]=a.substring(0,p)+a.substring(t):u.splice(h,r-h+1,a.substring(0,p)+u[r].substring(t))}}}),ace.define("ace/lib/event_emitter",[],function(L,n,i){var u={},v=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};u._emit=u._dispatchEvent=function(h,p){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var a=this._eventRegistry[h]||[],d=this._defaultHandlers[h];if(!(!a.length&&!d)){(typeof p!="object"||!p)&&(p={}),p.type||(p.type=h),p.stopPropagation||(p.stopPropagation=v),p.preventDefault||(p.preventDefault=o),a=a.slice();for(var e=0;e ["+this.end.row+"/"+this.end.column+"]"},v.prototype.contains=function(o,h){return this.compare(o,h)==0},v.prototype.compareRange=function(o){var h,p=o.end,a=o.start;return h=this.compare(p.row,p.column),h==1?(h=this.compare(a.row,a.column),h==1?2:h==0?1:0):h==-1?-2:(h=this.compare(a.row,a.column),h==-1?-1:h==1?42:0)},v.prototype.comparePoint=function(o){return this.compare(o.row,o.column)},v.prototype.containsRange=function(o){return this.comparePoint(o.start)==0&&this.comparePoint(o.end)==0},v.prototype.intersects=function(o){var h=this.compareRange(o);return h==-1||h==0||h==1},v.prototype.isEnd=function(o,h){return this.end.row==o&&this.end.column==h},v.prototype.isStart=function(o,h){return this.start.row==o&&this.start.column==h},v.prototype.setStart=function(o,h){typeof o=="object"?(this.start.column=o.column,this.start.row=o.row):(this.start.row=o,this.start.column=h)},v.prototype.setEnd=function(o,h){typeof o=="object"?(this.end.column=o.column,this.end.row=o.row):(this.end.row=o,this.end.column=h)},v.prototype.inside=function(o,h){return this.compare(o,h)==0?!(this.isEnd(o,h)||this.isStart(o,h)):!1},v.prototype.insideStart=function(o,h){return this.compare(o,h)==0?!this.isEnd(o,h):!1},v.prototype.insideEnd=function(o,h){return this.compare(o,h)==0?!this.isStart(o,h):!1},v.prototype.compare=function(o,h){return!this.isMultiLine()&&o===this.start.row?hthis.end.column?1:0:othis.end.row?1:this.start.row===o?h>=this.start.column?0:-1:this.end.row===o?h<=this.end.column?0:1:0},v.prototype.compareStart=function(o,h){return this.start.row==o&&this.start.column==h?-1:this.compare(o,h)},v.prototype.compareEnd=function(o,h){return this.end.row==o&&this.end.column==h?1:this.compare(o,h)},v.prototype.compareInside=function(o,h){return this.end.row==o&&this.end.column==h?1:this.start.row==o&&this.start.column==h?-1:this.compare(o,h)},v.prototype.clipRows=function(o,h){if(this.end.row>h)var p={row:h+1,column:0};else if(this.end.rowh)var a={row:h+1,column:0};else if(this.start.rowthis.row)){var e=v(d,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}},a.prototype.setPosition=function(d,e,t){var r;if(t?r={row:d,column:e}:r=this.$clipPositionToDocument(d,e),!(this.row==r.row&&this.column==r.column)){var l={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:l,value:r})}},a.prototype.detach=function(){this.document.off("change",this.$onChange)},a.prototype.attach=function(d){this.document=d||this.document,this.document.on("change",this.$onChange)},a.prototype.$clipPositionToDocument=function(d,e){var t={};return d>=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):d<0?(t.row=0,t.column=0):(t.row=d,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,e))),e<0&&(t.column=0),t},a}();p.prototype.$insertRight=!1,o.implement(p.prototype,h),n.Anchor=p}),ace.define("ace/document",[],function(L,n,i){var u=L("./lib/oop"),v=L("./apply_delta").applyDelta,o=L("./lib/event_emitter").EventEmitter,h=L("./range").Range,p=L("./anchor").Anchor,a=function(){function d(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return d.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new h(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},d.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},d.prototype.createAnchor=function(e,t){return new p(this,e,t)},d.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:` -`,this._signal("changeNewLineMode")},d.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r +`,"error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(i,h,v){i("./loader_build")(h);var s=i("./lib/dom"),u=i("./range").Range,d=i("./editor").Editor,a=i("./edit_session").EditSession,p=i("./undomanager").UndoManager,e=i("./virtual_renderer").VirtualRenderer;i("./worker/worker_client"),i("./keyboard/hash_handler"),i("./placeholder"),i("./multi_select"),i("./mode/folding/fold_mode"),i("./theme/textmate"),i("./ext/error_marker"),h.config=i("./config"),h.edit=function(r,l){if(typeof r=="string"){var o=r;if(r=document.getElementById(o),!r)throw new Error("ace.edit can't find div #"+o)}if(r&&r.env&&r.env.editor instanceof d)return r.env.editor;var c="";if(r&&/input|textarea/i.test(r.tagName)){var f=r;c=f.value,r=s.createElement("pre"),f.parentNode.replaceChild(r,f)}else r&&(c=r.textContent,r.innerHTML="");var m=h.createEditSession(c),y=new d(new e(r),m,l),D={document:m,editor:y,onResize:y.resize.bind(y,null)};return f&&(D.textarea=f),y.on("destroy",function(){D.editor.container.env=null}),y.container.env=y.env=D,y},h.createEditSession=function(r,l){var o=new a(r,l);return o.setUndoManager(new p),o},h.Range=u,h.Editor=d,h.EditSession=a,h.UndoManager=p,h.VirtualRenderer=e;var t=h.config.version;h.version=t}),function(){ace.require(["ace/ace"],function(i){i&&(i.config.init(!0),i.define=ace.define);var h=function(){return this}();!h&&typeof window<"u"&&(h=window),!h&&typeof self<"u"&&(h=self),h.ace||(h.ace=i);for(var v in i)i.hasOwnProperty(v)&&(h.ace[v]=i[v]);h.ace.default=h.ace,L&&(L.exports=h.ace)})}()})(Vi);var fn=Vi.exports,gn={exports:{}};gn.exports;(function(L,n){var i=200,h="__lodash_hash_undefined__",v=1,s=2,u=9007199254740991,d="[object Arguments]",a="[object Array]",p="[object AsyncFunction]",e="[object Boolean]",t="[object Date]",r="[object Error]",l="[object Function]",o="[object GeneratorFunction]",c="[object Map]",f="[object Number]",m="[object Null]",y="[object Object]",D="[object Promise]",E="[object Proxy]",b="[object RegExp]",g="[object Set]",S="[object String]",T="[object Symbol]",k="[object Undefined]",_="[object WeakMap]",O="[object ArrayBuffer]",$="[object DataView]",A="[object Float32Array]",C="[object Float64Array]",w="[object Int8Array]",x="[object Int16Array]",I="[object Int32Array]",F="[object Uint8Array]",R="[object Uint8ClampedArray]",B="[object Uint16Array]",P="[object Uint32Array]",V=/[\\^$.*+?()[\]{}|]/g,W=/^\[object .+?Constructor\]$/,H=/^(?:0|[1-9]\d*)$/,U={};U[A]=U[C]=U[w]=U[x]=U[I]=U[F]=U[R]=U[B]=U[P]=!0,U[d]=U[a]=U[O]=U[e]=U[$]=U[t]=U[r]=U[l]=U[c]=U[f]=U[y]=U[b]=U[g]=U[S]=U[_]=!1;var G=typeof He=="object"&&He&&He.Object===Object&&He,Y=typeof self=="object"&&self&&self.Object===Object&&self,Q=G||Y||Function("return this")(),ee=n&&!n.nodeType&&n,ne=ee&&!0&&L&&!L.nodeType&&L,se=ne&&ne.exports===ee,ge=se&&G.process,be=function(){try{return ge&&ge.binding&&ge.binding("util")}catch{}}(),ke=be&&be.isTypedArray;function Ce(z,J){for(var te=-1,ie=z==null?0:z.length,Se=0,ue=[];++te-1}function vr(z,J){var te=this.__data__,ie=Xt(te,z);return ie<0?(++this.size,te.push([z,J])):te[ie][1]=J,this}qe.prototype.clear=dr,qe.prototype.delete=fr,qe.prototype.get=gr,qe.prototype.has=mr,qe.prototype.set=vr;function vt(z){var J=-1,te=z==null?0:z.length;for(this.clear();++JLe))return!1;var Te=ue.get(z);if(Te&&ue.get(J))return Te==J;var Pe=-1,Ue=!0,Re=te&s?new Qt:void 0;for(ue.set(z,J),ue.set(J,z);++Pe-1&&z%1==0&&z-1&&z%1==0&&z<=u}function ai(z){var J=typeof z;return z!=null&&(J=="object"||J=="function")}function Ht(z){return z!=null&&typeof z=="object"}var li=ke?Ot(ke):Fr;function Jr(z){return Gr(z)?kr(z):Or(z)}function Yr(){return[]}function Qr(){return!1}L.exports=Kr})(gn,gn.exports);var Ui=gn.exports,Je={};Object.defineProperty(Je,"__esModule",{value:!0});Je.getAceInstance=Je.debounce=Je.editorEvents=Je.editorOptions=void 0;var ho=["minLines","maxLines","readOnly","highlightActiveLine","tabSize","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets"];Je.editorOptions=ho;var uo=["onChange","onFocus","onInput","onBlur","onCopy","onPaste","onSelectionChange","onCursorChange","onScroll","handleOptions","updateRef"];Je.editorEvents=uo;var co=function(){var L;return typeof window>"u"?(He.window={},L=fn,delete He.window):window.ace?(L=window.ace,L.acequire=window.ace.require||window.ace.acequire):L=fn,L};Je.getAceInstance=co;var po=function(L,n){var i=null;return function(){var h=this,v=arguments;clearTimeout(i),i=setTimeout(function(){L.apply(h,v)},n)}};Je.debounce=po;var fo=Dt&&Dt.__extends||function(){var L=function(n,i){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,v){h.__proto__=v}||function(h,v){for(var s in v)Object.prototype.hasOwnProperty.call(v,s)&&(h[s]=v[s])},L(n,i)};return function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");L(n,i);function h(){this.constructor=n}n.prototype=i===null?Object.create(i):(h.prototype=i.prototype,new h)}}(),jn=Dt&&Dt.__assign||function(){return jn=Object.assign||function(L){for(var n,i=1,h=arguments.length;i0&&this.handleMarkers(S);var O=this.editor.$options;Lt.editorOptions.forEach(function($){O.hasOwnProperty($)?i.editor.setOption($,i.props[$]):i.props[$]&&console.warn("ReactAce: editor option ".concat($," was activated but not found. Did you need to import a related tool or did you possibly mispell the option?"))}),this.handleOptions(this.props),Array.isArray(b)&&b.forEach(function($){typeof $.exec=="string"?i.editor.commands.bindKey($.bindKey,$.exec):i.editor.commands.addCommand($)}),D&&this.editor.setKeyboardHandler("ace/keyboard/"+D),v&&(this.refEditor.className+=" "+v),E&&E(this.editor),this.editor.resize(),a&&this.editor.focus()},n.prototype.componentDidUpdate=function(i){for(var h=i,v=this.props,s=0;s 0!";if(t!=this.$splits){if(t>this.$splits){for(;this.$splitst;)r=this.$editors[this.$splits-1],this.$container.removeChild(r.container),this.$splits--;this.resize()}},this.getSplits=function(){return this.$splits},this.getEditor=function(t){return this.$editors[t]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(t){this.$editors.forEach(function(r){r.setTheme(t)})},this.setKeyboardHandler=function(t){this.$editors.forEach(function(r){r.setKeyboardHandler(t)})},this.forEach=function(t,r){this.$editors.forEach(t,r)},this.$fontSize="",this.setFontSize=function(t){this.$fontSize=t,this.forEach(function(r){r.setFontSize(t)})},this.$cloneSession=function(t){var r=new p(t.getDocument(),t.getMode()),l=t.getUndoManager();return r.setUndoManager(l),r.setTabSize(t.getTabSize()),r.setUseSoftTabs(t.getUseSoftTabs()),r.setOverwrite(t.getOverwrite()),r.setBreakpoints(t.getBreakpoints()),r.setUseWrapMode(t.getUseWrapMode()),r.setUseWorker(t.getUseWorker()),r.setWrapLimitRange(t.$wrapLimitRange.min,t.$wrapLimitRange.max),r.$foldData=t.$cloneFoldData(),r},this.setSession=function(t,r){var l;r==null?l=this.$cEditor:l=this.$editors[r];var o=this.$editors.some(function(c){return c.session===t});return o&&(t=this.$cloneSession(t)),l.setSession(t),t},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(t){this.$orientation!=t&&(this.$orientation=t,this.resize())},this.resize=function(){var t=this.$container.clientWidth,r=this.$container.clientHeight,l;if(this.$orientation==this.BESIDE)for(var o=t/this.$splits,c=0;c-1}function Ko(L,n){var i=this.__data__,h=vn(i,L);return h<0?i.push([L,n]):i[h][1]=n,this}Ft.prototype.clear=jo;Ft.prototype.delete=Vo;Ft.prototype.get=Uo;Ft.prototype.has=Go;Ft.prototype.set=Ko;function xt(L){var n=-1,i=L?L.length:0;for(this.clear();++n0&&i.handleMarkers(F,$);for(var C=0;C"u"&&(this.Diff_Timeout<=0?a=Number.MAX_VALUE:a=new Date().getTime()+this.Diff_Timeout*1e3);var p=a;if(s==null||u==null)throw new Error("Null input. (diff_main)");if(s==u)return s?[new n.Diff(v,s)]:[];typeof d>"u"&&(d=!0);var e=d,t=this.diff_commonPrefix(s,u),r=s.substring(0,t);s=s.substring(t),u=u.substring(t),t=this.diff_commonSuffix(s,u);var l=s.substring(s.length-t);s=s.substring(0,s.length-t),u=u.substring(0,u.length-t);var o=this.diff_compute_(s,u,e,p);return r&&o.unshift(new n.Diff(v,r)),l&&o.push(new n.Diff(v,l)),this.diff_cleanupMerge(o),o},n.prototype.diff_compute_=function(s,u,d,a){var p;if(!s)return[new n.Diff(h,u)];if(!u)return[new n.Diff(i,s)];var e=s.length>u.length?s:u,t=s.length>u.length?u:s,r=e.indexOf(t);if(r!=-1)return p=[new n.Diff(h,e.substring(0,r)),new n.Diff(v,t),new n.Diff(h,e.substring(r+t.length))],s.length>u.length&&(p[0][0]=p[2][0]=i),p;if(t.length==1)return[new n.Diff(i,s),new n.Diff(h,u)];var l=this.diff_halfMatch_(s,u);if(l){var o=l[0],c=l[1],f=l[2],m=l[3],y=l[4],D=this.diff_main(o,f,d,a),E=this.diff_main(c,m,d,a);return D.concat([new n.Diff(v,y)],E)}return d&&s.length>100&&u.length>100?this.diff_lineMode_(s,u,a):this.diff_bisect_(s,u,a)},n.prototype.diff_lineMode_=function(s,u,d){var a=this.diff_linesToChars_(s,u);s=a.chars1,u=a.chars2;var p=a.lineArray,e=this.diff_main(s,u,!1,d);this.diff_charsToLines_(e,p),this.diff_cleanupSemantic(e),e.push(new n.Diff(v,""));for(var t=0,r=0,l=0,o="",c="";t=1&&l>=1){e.splice(t-r-l,r+l),t=t-r-l;for(var f=this.diff_main(o,c,!1,d),m=f.length-1;m>=0;m--)e.splice(t,0,f[m]);t=t+f.length}l=0,r=0,o="",c="";break}t++}return e.pop(),e},n.prototype.diff_bisect_=function(s,u,d){for(var a=s.length,p=u.length,e=Math.ceil((a+p)/2),t=e,r=2*e,l=new Array(r),o=new Array(r),c=0;cd);g++){for(var S=-g+y;S<=g-D;S+=2){var T=t+S,k;S==-g||S!=g&&l[T-1]a)D+=2;else if(_>p)y+=2;else if(m){var O=t+f-S;if(O>=0&&O=$)return this.diff_bisectSplit_(s,u,k,_,d)}}}for(var A=-g+E;A<=g-b;A+=2){var O=t+A,$;A==-g||A!=g&&o[O-1]a)b+=2;else if(C>p)E+=2;else if(!m){var T=t+f-A;if(T>=0&&T=$)return this.diff_bisectSplit_(s,u,k,_,d)}}}}return[new n.Diff(i,s),new n.Diff(h,u)]},n.prototype.diff_bisectSplit_=function(s,u,d,a,p){var e=s.substring(0,d),t=u.substring(0,a),r=s.substring(d),l=u.substring(a),o=this.diff_main(e,t,!1,p),c=this.diff_main(r,l,!1,p);return o.concat(c)},n.prototype.diff_linesToChars_=function(s,u){var d=[],a={};d[0]="";function p(l){for(var o="",c=0,f=-1,m=d.length;fa?s=s.substring(d-a):du.length?s:u,a=s.length>u.length?u:s;if(d.length<4||a.length*2=D.length?[k,_,O,$,T]:null}var t=e(d,a,Math.ceil(d.length/4)),r=e(d,a,Math.ceil(d.length/2)),l;if(!t&&!r)return null;r?t?l=t[4].length>r[4].length?t:r:l=r:l=t;var o,c,f,m;s.length>u.length?(o=l[0],c=l[1],f=l[2],m=l[3]):(f=l[0],m=l[1],o=l[2],c=l[3]);var y=l[4];return[o,c,f,m,y]},n.prototype.diff_cleanupSemantic=function(s){for(var u=!1,d=[],a=0,p=null,e=0,t=0,r=0,l=0,o=0;e0?d[a-1]:-1,t=0,r=0,l=0,o=0,p=null,u=!0)),e++;for(u&&this.diff_cleanupMerge(s),this.diff_cleanupSemanticLossless(s),e=1;e=y?(m>=c.length/2||m>=f.length/2)&&(s.splice(e,0,new n.Diff(v,f.substring(0,m))),s[e-1][1]=c.substring(0,c.length-m),s[e+1][1]=f.substring(m),e++):(y>=c.length/2||y>=f.length/2)&&(s.splice(e,0,new n.Diff(v,c.substring(0,y))),s[e-1][0]=h,s[e-1][1]=f.substring(0,f.length-y),s[e+1][0]=i,s[e+1][1]=c.substring(y),e++),e++}e++}},n.prototype.diff_cleanupSemanticLossless=function(s){function u(y,D){if(!y||!D)return 6;var E=y.charAt(y.length-1),b=D.charAt(0),g=E.match(n.nonAlphaNumericRegex_),S=b.match(n.nonAlphaNumericRegex_),T=g&&E.match(n.whitespaceRegex_),k=S&&b.match(n.whitespaceRegex_),_=T&&E.match(n.linebreakRegex_),O=k&&b.match(n.linebreakRegex_),$=_&&y.match(n.blanklineEndRegex_),A=O&&D.match(n.blanklineStartRegex_);return $||A?5:_||O?4:g&&!T&&k?3:T||k?2:g||S?1:0}for(var d=1;d=f&&(f=m,l=a,o=p,c=e)}s[d-1][1]!=l&&(l?s[d-1][1]=l:(s.splice(d-1,1),d--),s[d][1]=o,c?s[d+1][1]=c:(s.splice(d+1,1),d--))}d++}},n.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,n.whitespaceRegex_=/\s/,n.linebreakRegex_=/[\r\n]/,n.blanklineEndRegex_=/\n\r?\n$/,n.blanklineStartRegex_=/^\r?\n\r?\n/,n.prototype.diff_cleanupEfficiency=function(s){for(var u=!1,d=[],a=0,p=null,e=0,t=!1,r=!1,l=!1,o=!1;e0?d[a-1]:-1,l=o=!1),u=!0)),e++;u&&this.diff_cleanupMerge(s)},n.prototype.diff_cleanupMerge=function(s){s.push(new n.Diff(v,""));for(var u=0,d=0,a=0,p="",e="",t;u1?(d!==0&&a!==0&&(t=this.diff_commonPrefix(e,p),t!==0&&(u-d-a>0&&s[u-d-a-1][0]==v?s[u-d-a-1][1]+=e.substring(0,t):(s.splice(0,0,new n.Diff(v,e.substring(0,t))),u++),e=e.substring(t),p=p.substring(t)),t=this.diff_commonSuffix(e,p),t!==0&&(s[u][1]=e.substring(e.length-t)+s[u][1],e=e.substring(0,e.length-t),p=p.substring(0,p.length-t))),u-=d+a,s.splice(u,d+a),p.length&&(s.splice(u,0,new n.Diff(i,p)),u++),e.length&&(s.splice(u,0,new n.Diff(h,e)),u++),u++):u!==0&&s[u-1][0]==v?(s[u-1][1]+=s[u][1],s.splice(u,1)):u++,a=0,d=0,p="",e="";break}s[s.length-1][1]===""&&s.pop();var r=!1;for(u=1;uu));t++)p=d,e=a;return s.length!=t&&s[t][0]===i?e:e+(u-p)},n.prototype.diff_prettyHtml=function(s){for(var u=[],d=/&/g,a=//g,e=/\n/g,t=0;t");switch(r){case h:u[t]=''+o+"";break;case i:u[t]=''+o+"";break;case v:u[t]=""+o+"";break}}return u.join("")},n.prototype.diff_text1=function(s){for(var u=[],d=0;dthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var a=this.match_alphabet_(u),p=this;function e(k,_){var O=k/u.length,$=Math.abs(d-_);return p.Match_Distance?O+$/p.Match_Distance:$?1:O}var t=this.Match_Threshold,r=s.indexOf(u,d);r!=-1&&(t=Math.min(e(0,r),t),r=s.lastIndexOf(u,d+u.length),r!=-1&&(t=Math.min(e(0,r),t)));var l=1<=D;g--){var S=a[s.charAt(g-1)];if(y===0?b[g]=(b[g+1]<<1|1)&S:b[g]=(b[g+1]<<1|1)&S|((m[g+1]|m[g])<<1|1)|m[g+1],b[g]&l){var T=e(y,g-1);if(T<=t)if(t=T,r=g-1,r>d)D=Math.max(1,2*d-r);else break}}if(e(y+1,d)>t)break;m=b}return r},n.prototype.match_alphabet_=function(s){for(var u={},d=0;d"u")a=s,p=this.diff_main(a,u,!0),p.length>2&&(this.diff_cleanupSemantic(p),this.diff_cleanupEfficiency(p));else if(s&&typeof s=="object"&&typeof u>"u"&&typeof d>"u")p=s,a=this.diff_text1(p);else if(typeof s=="string"&&u&&typeof u=="object"&&typeof d>"u")a=s,p=u;else if(typeof s=="string"&&typeof u=="string"&&d&&typeof d=="object")a=s,p=d;else throw new Error("Unknown call format to patch_make.");if(p.length===0)return[];for(var e=[],t=new n.patch_obj,r=0,l=0,o=0,c=a,f=a,m=0;m=2*this.Patch_Margin&&r&&(this.patch_addContext_(t,c),e.push(t),t=new n.patch_obj,r=0,c=f,l=o);break}y!==h&&(l+=D.length),y!==i&&(o+=D.length)}return r&&(this.patch_addContext_(t,c),e.push(t)),e},n.prototype.patch_deepCopy=function(s){for(var u=[],d=0;dthis.Match_MaxBits?(l=this.match_main(u,r.substring(0,this.Match_MaxBits),t),l!=-1&&(o=this.match_main(u,r.substring(r.length-this.Match_MaxBits),t+r.length-this.Match_MaxBits),(o==-1||l>=o)&&(l=-1))):l=this.match_main(u,r,t),l==-1)p[e]=!1,a-=s[e].length2-s[e].length1;else{p[e]=!0,a=l-t;var c;if(o==-1?c=u.substring(l,l+r.length):c=u.substring(l,o+this.Match_MaxBits),r==c)u=u.substring(0,l)+this.diff_text2(s[e].diffs)+u.substring(l+r.length);else{var f=this.diff_main(r,c,!1);if(r.length>this.Match_MaxBits&&this.diff_levenshtein(f)/r.length>this.Patch_DeleteThreshold)p[e]=!1;else{this.diff_cleanupSemanticLossless(f);for(var m=0,y,D=0;De[0][1].length){var t=u-e[0][1].length;e[0][1]=d.substring(e[0][1].length)+e[0][1],p.start1-=t,p.start2-=t,p.length1+=t,p.length2+=t}if(p=s[s.length-1],e=p.diffs,e.length==0||e[e.length-1][0]!=v)e.push(new n.Diff(v,d)),p.length1+=u,p.length2+=u;else if(u>e[e.length-1][1].length){var t=u-e[e.length-1][1].length;e[e.length-1][1]+=d.substring(0,t),p.length1+=t,p.length2+=t}return d},n.prototype.patch_splitMax=function(s){for(var u=this.Match_MaxBits,d=0;d2*u?(r.length1+=c.length,p+=c.length,l=!1,r.diffs.push(new n.Diff(o,c)),a.diffs.shift()):(c=c.substring(0,u-r.length1-this.Patch_Margin),r.length1+=c.length,p+=c.length,o===v?(r.length2+=c.length,e+=c.length):l=!1,r.diffs.push(new n.Diff(o,c)),c==a.diffs[0][1]?a.diffs.shift():a.diffs[0][1]=a.diffs[0][1].substring(c.length))}t=this.diff_text2(r.diffs),t=t.substring(t.length-this.Patch_Margin);var f=this.diff_text1(a.diffs).substring(0,this.Patch_Margin);f!==""&&(r.length1+=f.length,r.length2+=f.length,r.diffs.length!==0&&r.diffs[r.diffs.length-1][0]===v?r.diffs[r.diffs.length-1][1]+=f:r.diffs.push(new n.Diff(v,f))),l||s.splice(++d,0,r)}}},n.prototype.patch_toText=function(s){for(var u=[],d=0;dm)break;var y=this.getFoldWidgetRange(p,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new u(l,o,c,p.getLine(c).length)},this.getCommentRegionBlock=function(p,e,t){for(var r=e.search(/\s*$/),l=p.getLength(),o=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++to)return new u(o,r,y,e.length)}}.call(a.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(i,h,v){var s=i("../lib/oop"),u=i("./text").Mode,d=i("./json_highlight_rules").JsonHighlightRules,a=i("./matching_brace_outdent").MatchingBraceOutdent,p=i("./folding/cstyle").FoldMode,e=i("../worker/worker_client").WorkerClient,t=function(){this.HighlightRules=d,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new p};s.inherits(t,u),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(r,l,o){var c=this.$getIndent(l);if(r=="start"){var f=l.match(/^.*[\{\(\[]\s*$/);f&&(c+=o)}return c},this.checkOutdent=function(r,l,o){return this.$outdent.checkOutdent(l,o)},this.autoOutdent=function(r,l,o){this.$outdent.autoOutdent(l,o)},this.createWorker=function(r){var l=new e(["ace"],"ace/mode/json_worker","JsonWorker");return l.attachToDocument(r.getDocument()),l.on("annotate",function(o){r.setAnnotations(o.data)}),l.on("terminate",function(){r.clearAnnotations()}),l},this.$id="ace/mode/json"}.call(t.prototype),h.Mode=t}),function(){ace.require(["ace/mode/json"],function(i){L&&(L.exports=i)})}()})(Ta);var _a={exports:{}};(function(L,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(i,h,v){var s=i("../lib/oop"),u=i("./text_highlight_rules").TextHighlightRules,d=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};s.inherits(d,u),h.JsonHighlightRules=d}),ace.define("ace/mode/json5_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/json_highlight_rules"],function(i,h,v){var s=i("../lib/oop"),u=i("./json_highlight_rules").JsonHighlightRules,d=function(){u.call(this);var a=[{token:"variable",regex:/[a-zA-Z$_\u00a1-\uffff][\w$\u00a1-\uffff]*\s*(?=:)/},{token:"variable",regex:/['](?:(?:\\.)|(?:[^'\\]))*?[']\s*(?=:)/},{token:"constant.language.boolean",regex:/(?:null)\b/},{token:"string",regex:/'/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/'|$/,next:"start"},{defaultToken:"string"}]},{token:"string",regex:/"(?![^"]*":)/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/"|$/,next:"start"},{defaultToken:"string"}]},{token:"constant.numeric",regex:/[+-]?(?:Infinity|NaN)\b/}];for(var p in this.$rules)this.$rules[p].unshift.apply(this.$rules[p],a);this.normalizeRules()};s.inherits(d,u),h.Json5HighlightRules=d}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(i,h,v){var s=i("../range").Range,u=function(){};(function(){this.checkOutdent=function(d,a){return/^\s+$/.test(d)?/^\s*\}/.test(a):!1},this.autoOutdent=function(d,a){var p=d.getLine(a),e=p.match(/^(\s*\})/);if(!e)return 0;var t=e[1].length,r=d.findMatchingBracket({row:a,column:t});if(!r||r.row==a)return 0;var l=this.$getIndent(d.getLine(r.row));d.replace(new s(a,0,a,t-1),l)},this.$getIndent=function(d){return d.match(/^\s*/)[0]}}).call(u.prototype),h.MatchingBraceOutdent=u}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(i,h,v){var s=i("../../lib/oop"),u=i("../../range").Range,d=i("./fold_mode").FoldMode,a=h.FoldMode=function(p){p&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+p.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+p.end)))};s.inherits(a,d),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(p,e,t){var r=p.getLine(t);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var l=this._getFoldWidgetBase(p,e,t);return!l&&this.startRegionRe.test(r)?"start":l},this.getFoldWidgetRange=function(p,e,t,r){var l=p.getLine(t);if(this.startRegionRe.test(l))return this.getCommentRegionBlock(p,l,t);var f=l.match(this.foldingStartMarker);if(f){var o=f.index;if(f[1])return this.openingBracketBlock(p,f[1],t,o);var c=p.getCommentFoldRange(t,o+f[0].length,1);return c&&!c.isMultiLine()&&(r?c=this.getSectionRange(p,t):e!="all"&&(c=null)),c}if(e!=="markbegin"){var f=l.match(this.foldingStopMarker);if(f){var o=f.index+f[0].length;return f[1]?this.closingBracketBlock(p,f[1],t,o):p.getCommentFoldRange(t,o,-1)}}},this.getSectionRange=function(p,e){var t=p.getLine(e),r=t.search(/\S/),l=e,o=t.length;e+=1;for(var c=e,f=p.getLength();++em)break;var y=this.getFoldWidgetRange(p,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new u(l,o,c,p.getLine(c).length)},this.getCommentRegionBlock=function(p,e,t){for(var r=e.search(/\s*$/),l=p.getLength(),o=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++to)return new u(o,r,y,e.length)}}.call(a.prototype)}),ace.define("ace/mode/json5",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json5_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(i,h,v){var s=i("../lib/oop"),u=i("./text").Mode,d=i("./json5_highlight_rules").Json5HighlightRules,a=i("./matching_brace_outdent").MatchingBraceOutdent,p=i("./folding/cstyle").FoldMode,e=function(){this.HighlightRules=d,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new p};s.inherits(e,u),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.checkOutdent=function(t,r,l){return this.$outdent.checkOutdent(r,l)},this.autoOutdent=function(t,r,l){this.$outdent.autoOutdent(r,l)},this.$id="ace/mode/json5"}.call(e.prototype),h.Mode=e}),function(){ace.require(["ace/mode/json5"],function(i){L&&(L.exports=i)})}()})(_a);var ka={};(function(L){function n(v,s){for(var u=v,d="";u;){var a=s[u];if(typeof a=="string")return a+d;if(a)return a.location.replace(/\/*$/,"/")+(d||a.main||a.name);if(a===!1)return"";var p=u.lastIndexOf("/");if(p===-1)break;d=u.substr(p)+d,u=u.slice(0,p)}return v}if(!(typeof L.window<"u"&&L.document)&&!(L.require&&L.define)){L.console||(L.console=function(){var v=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:v})},L.console.error=L.console.warn=L.console.log=L.console.trace=L.console),L.window=L,L.ace=L,L.onerror=function(v,s,u,d,a){postMessage({type:"error",data:{message:v,data:a&&a.data,file:s,line:u,col:d,stack:a&&a.stack}})},L.normalizeModule=function(v,s){if(s.indexOf("!")!==-1){var u=s.split("!");return L.normalizeModule(v,u[0])+"!"+L.normalizeModule(v,u[1])}if(s.charAt(0)=="."){var d=v.split("/").slice(0,-1).join("/");for(s=(d?d+"/":"")+s;s.indexOf(".")!==-1&&a!=s;){var a=s;s=s.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return s},L.require=function(v,s){if(s||(s=v,v=null),!s.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");s=L.normalizeModule(v,s);var u=L.require.modules[s];if(u)return u.initialized||(u.initialized=!0,u.exports=u.factory().exports),u.exports;if(!L.require.tlns)return console.log("unable to load "+s);var d=n(s,L.require.tlns);return d.slice(-3)!=".js"&&(d+=".js"),L.require.id=s,L.require.modules[s]={},importScripts(d),L.require(v,s)},L.require.modules={},L.require.tlns={},L.define=function(v,s,u){if(arguments.length==2?(u=s,typeof v!="string"&&(s=v,v=L.require.id)):arguments.length==1&&(u=v,s=[],v=L.require.id),typeof u!="function"){L.require.modules[v]={exports:u,initialized:!0};return}s.length||(s=["require","exports","module"]);var d=function(a){return L.require(v,a)};L.require.modules[v]={exports:{},factory:function(){var a=this,p=u.apply(this,s.slice(0,u.length).map(function(e){switch(e){case"require":return d;case"exports":return a.exports;case"module":return a;default:return d(e)}}));return p&&(a.exports=p),a}}},L.define.amd={},L.require.tlns={},L.initBaseUrls=function(v){for(var s in v)this.require.tlns[s]=v[s]},L.initSender=function(){var v=L.require("ace/lib/event_emitter").EventEmitter,s=L.require("ace/lib/oop"),u=function(){};return function(){s.implement(this,v),this.callback=function(d,a){postMessage({type:"call",id:a,data:d})},this.emit=function(d,a){postMessage({type:"event",name:d,data:a})}}.call(u.prototype),new u};var i=L.main=null,h=L.sender=null;L.onmessage=function(v){var s=v.data;if(s.event&&h)h._signal(s.event,s.data);else if(s.command)if(i[s.command])i[s.command].apply(i,s.args);else{if(!L[s.command])throw new Error("Unknown command:"+s.command);L[s.command].apply(L,s.args)}else if(s.init){L.initBaseUrls(s.tlns),h=L.sender=L.initSender();var u=this.require(s.module)[s.classname];i=L.main=new u(h)}}}})(ka),ace.define("ace/lib/oop",[],function(L,n,i){n.inherits=function(h,v){h.super_=v,h.prototype=Object.create(v.prototype,{constructor:{value:h,enumerable:!1,writable:!0,configurable:!0}})},n.mixin=function(h,v){for(var s in v)h[s]=v[s];return h},n.implement=function(h,v){n.mixin(h,v)}}),ace.define("ace/apply_delta",[],function(L,n,i){n.applyDelta=function(h,v,s){var u=v.start.row,d=v.start.column,a=h[u]||"";switch(v.action){case"insert":var p=v.lines;if(p.length===1)h[u]=a.substring(0,d)+v.lines[0]+a.substring(d);else{var e=[u,1].concat(v.lines);h.splice.apply(h,e),h[u]=a.substring(0,d)+h[u],h[u+v.lines.length-1]+=a.substring(d)}break;case"remove":var t=v.end.column,r=v.end.row;u===r?h[u]=a.substring(0,d)+a.substring(t):h.splice(u,r-u+1,a.substring(0,d)+h[r].substring(t))}}}),ace.define("ace/lib/event_emitter",[],function(L,n,i){var h={},v=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};h._emit=h._dispatchEvent=function(u,d){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var a=this._eventRegistry[u]||[],p=this._defaultHandlers[u];if(!(!a.length&&!p)){(typeof d!="object"||!d)&&(d={}),d.type||(d.type=u),d.stopPropagation||(d.stopPropagation=v),d.preventDefault||(d.preventDefault=s),a=a.slice();for(var e=0;e ["+this.end.row+"/"+this.end.column+"]"},v.prototype.contains=function(s,u){return this.compare(s,u)==0},v.prototype.compareRange=function(s){var u,d=s.end,a=s.start;return u=this.compare(d.row,d.column),u==1?(u=this.compare(a.row,a.column),u==1?2:u==0?1:0):u==-1?-2:(u=this.compare(a.row,a.column),u==-1?-1:u==1?42:0)},v.prototype.comparePoint=function(s){return this.compare(s.row,s.column)},v.prototype.containsRange=function(s){return this.comparePoint(s.start)==0&&this.comparePoint(s.end)==0},v.prototype.intersects=function(s){var u=this.compareRange(s);return u==-1||u==0||u==1},v.prototype.isEnd=function(s,u){return this.end.row==s&&this.end.column==u},v.prototype.isStart=function(s,u){return this.start.row==s&&this.start.column==u},v.prototype.setStart=function(s,u){typeof s=="object"?(this.start.column=s.column,this.start.row=s.row):(this.start.row=s,this.start.column=u)},v.prototype.setEnd=function(s,u){typeof s=="object"?(this.end.column=s.column,this.end.row=s.row):(this.end.row=s,this.end.column=u)},v.prototype.inside=function(s,u){return this.compare(s,u)==0?!(this.isEnd(s,u)||this.isStart(s,u)):!1},v.prototype.insideStart=function(s,u){return this.compare(s,u)==0?!this.isEnd(s,u):!1},v.prototype.insideEnd=function(s,u){return this.compare(s,u)==0?!this.isStart(s,u):!1},v.prototype.compare=function(s,u){return!this.isMultiLine()&&s===this.start.row?uthis.end.column?1:0:sthis.end.row?1:this.start.row===s?u>=this.start.column?0:-1:this.end.row===s?u<=this.end.column?0:1:0},v.prototype.compareStart=function(s,u){return this.start.row==s&&this.start.column==u?-1:this.compare(s,u)},v.prototype.compareEnd=function(s,u){return this.end.row==s&&this.end.column==u?1:this.compare(s,u)},v.prototype.compareInside=function(s,u){return this.end.row==s&&this.end.column==u?1:this.start.row==s&&this.start.column==u?-1:this.compare(s,u)},v.prototype.clipRows=function(s,u){if(this.end.row>u)var d={row:u+1,column:0};else if(this.end.rowu)var a={row:u+1,column:0};else if(this.start.rowthis.row)){var e=v(p,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}},a.prototype.setPosition=function(p,e,t){var r;if(t?r={row:p,column:e}:r=this.$clipPositionToDocument(p,e),!(this.row==r.row&&this.column==r.column)){var l={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:l,value:r})}},a.prototype.detach=function(){this.document.off("change",this.$onChange)},a.prototype.attach=function(p){this.document=p||this.document,this.document.on("change",this.$onChange)},a.prototype.$clipPositionToDocument=function(p,e){var t={};return p>=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):p<0?(t.row=0,t.column=0):(t.row=p,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,e))),e<0&&(t.column=0),t},a}();d.prototype.$insertRight=!1,s.implement(d.prototype,u),n.Anchor=d}),ace.define("ace/document",[],function(L,n,i){var h=L("./lib/oop"),v=L("./apply_delta").applyDelta,s=L("./lib/event_emitter").EventEmitter,u=L("./range").Range,d=L("./anchor").Anchor,a=function(){function p(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return p.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new u(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},p.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},p.prototype.createAnchor=function(e,t){return new d(this,e,t)},p.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:` +`,this._signal("changeNewLineMode")},p.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r `;case"unix":return` `;default:return this.$autoNewLine||` -`}},d.prototype.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},d.prototype.getNewLineMode=function(){return this.$newLineMode},d.prototype.isNewLine=function(e){return e==`\r +`}},p.prototype.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},p.prototype.getNewLineMode=function(){return this.$newLineMode},p.prototype.isNewLine=function(e){return e==`\r `||e=="\r"||e==` -`},d.prototype.getLine=function(e){return this.$lines[e]||""},d.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},d.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},d.prototype.getLength=function(){return this.$lines.length},d.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},d.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var r=t.length-1;e.end.row-e.start.row==r&&(t[r]=t[r].substring(0,e.end.column))}return t},d.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},d.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},d.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},d.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},d.prototype.insertInLine=function(e,t){var r=this.clippedPos(e.row,e.column),l=this.pos(e.row,e.column+t.length);return this.applyDelta({start:r,end:l,action:"insert",lines:[t]},!0),this.clonePos(l)},d.prototype.clippedPos=function(e,t){var r=this.getLength();e===void 0?e=r:e<0?e=0:e>=r&&(e=r-1,t=void 0);var l=this.getLine(e);return t==null&&(t=l.length),t=Math.min(Math.max(t,0),l.length),{row:e,column:t}},d.prototype.clonePos=function(e){return{row:e.row,column:e.column}},d.prototype.pos=function(e,t){return{row:e,column:t}},d.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},d.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var r=0;e0,l=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},d.prototype.replace=function(e,t){if(e instanceof h||(e=h.fromPoints(e.start,e.end)),t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var r;return t?r=this.insert(e.start,t):r=e.start,r},d.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},d.prototype.applyDelta=function(e,t){var r=e.action=="insert";(r?e.lines.length<=1&&!e.lines[0]:!h.comparePoints(e.start,e.end))||(r&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(v(this.$lines,e,t),this._signal("change",e)))},d.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row0;)h&1&&(p+=o),(h>>=1)&&(o+=o);return p};var u=/^\s\s*/,v=/\s\s*$/;n.stringTrimLeft=function(o){return o.replace(u,"")},n.stringTrimRight=function(o){return o.replace(v,"")},n.copyObject=function(o){var h={};for(var p in o)h[p]=o[p];return h},n.copyArray=function(o){for(var h=[],p=0,a=o.length;p65535?2:1}}),ace.define("ace/worker/mirror",[],function(L,n,i){var u=L("../document").Document,v=L("../lib/lang"),o=n.Mirror=function(h){this.sender=h;var p=this.doc=new u(""),a=this.deferredUpdate=v.delayedCall(this.onUpdate.bind(this)),d=this;h.on("change",function(e){var t=e.data;if(t[0].start)p.applyDeltas(t);else for(var r=0;r=p.$lines.length)throw s=new Error("Invalid delta"),s.data={path:d.$path,linesLength:p.$lines.length,start:l.start,end:l.end},s;p.applyDelta(l,!0)}if(d.$timeout)return a.schedule(d.$timeout);d.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(h){this.$timeout=h},this.setValue=function(h){this.doc.setValue(h),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(h){this.sender.callback(this.doc.getValue(),h)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define("ace/mode/json/json_parse",[],function(L,n,i){var u,v,o={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "},h,p=function(f){throw{name:"SyntaxError",message:f,at:u,text:h}},a=function(f){return f&&f!==v&&p("Expected '"+f+"' instead of '"+v+"'"),v=h.charAt(u),u+=1,v},d=function(){var f,m="";for(v==="-"&&(m="-",a("-"));v>="0"&&v<="9";)m+=v,a();if(v===".")for(m+=".";a()&&v>="0"&&v<="9";)m+=v;if(v==="e"||v==="E")for(m+=v,a(),(v==="-"||v==="+")&&(m+=v,a());v>="0"&&v<="9";)m+=v,a();if(f=+m,!isNaN(f))return f;p("Bad number")},e=function(){var f,m,y="",D;if(v==='"')for(;a();){if(v==='"')return a(),y;if(v==="\\")if(a(),v==="u"){for(D=0,m=0;m<4&&(f=parseInt(a(),16),!!isFinite(f));m+=1)D=D*16+f;y+=String.fromCharCode(D)}else{if(typeof o[v]!="string")break;y+=o[v]}else{if(v==` -`||v=="\r")break;y+=v}}p("Bad string")},t=function(){for(;v&&v<=" ";)a()},r=function(){switch(v){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}p("Unexpected '"+v+"'")},l,s=function(){var f=[];if(v==="["){if(a("["),t(),v==="]")return a("]"),f;for(;v;){if(f.push(l()),t(),v==="]")return a("]"),f;a(","),t()}}p("Bad array")},c=function(){var f,m={};if(v==="{"){if(a("{"),t(),v==="}")return a("}"),m;for(;v;){if(f=e(),t(),a(":"),Object.hasOwnProperty.call(m,f)&&p('Duplicate key "'+f+'"'),m[f]=l(),t(),v==="}")return a("}"),m;a(","),t()}}p("Bad object")};return l=function(){switch(t(),v){case"{":return c();case"[":return s();case'"':return e();case"-":return d();default:return v>="0"&&v<="9"?d():r()}},function(f,m){var y;return h=f,u=0,v=" ",y=l(),t(),v&&p("Syntax error"),typeof m=="function"?function D(E,b){var g,S,T=E[b];if(T&&typeof T=="object")for(g in T)Object.hasOwnProperty.call(T,g)&&(S=D(T,g),S!==void 0?T[g]=S:delete T[g]);return m.call(E,b,T)}({"":y},""):y}}),ace.define("ace/mode/json_worker",[],function(L,n,i){var u=L("../lib/oop"),v=L("../worker/mirror").Mirror,o=L("./json/json_parse"),h=n.JsonWorker=function(p){v.call(this,p),this.setTimeout(200)};u.inherits(h,v),function(){this.onUpdate=function(){var p=this.doc.getValue(),a=[];try{p&&o(p)}catch(e){var d=this.doc.indexToPosition(e.at-1);a.push({row:d.row,column:d.column,text:e.message,type:"error"})}this.sender.emit("annotate",a)}}.call(h.prototype)});var ka={exports:{}};(function(L,n){ace.define("ace/theme/clouds_midnight-css",["require","exports","module"],function(i,u,v){v.exports=`.ace-clouds-midnight .ace_gutter { +`},p.prototype.getLine=function(e){return this.$lines[e]||""},p.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},p.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},p.prototype.getLength=function(){return this.$lines.length},p.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},p.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var r=t.length-1;e.end.row-e.start.row==r&&(t[r]=t[r].substring(0,e.end.column))}return t},p.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},p.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},p.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},p.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},p.prototype.insertInLine=function(e,t){var r=this.clippedPos(e.row,e.column),l=this.pos(e.row,e.column+t.length);return this.applyDelta({start:r,end:l,action:"insert",lines:[t]},!0),this.clonePos(l)},p.prototype.clippedPos=function(e,t){var r=this.getLength();e===void 0?e=r:e<0?e=0:e>=r&&(e=r-1,t=void 0);var l=this.getLine(e);return t==null&&(t=l.length),t=Math.min(Math.max(t,0),l.length),{row:e,column:t}},p.prototype.clonePos=function(e){return{row:e.row,column:e.column}},p.prototype.pos=function(e,t){return{row:e,column:t}},p.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},p.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var r=0;e0,l=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},p.prototype.replace=function(e,t){if(e instanceof u||(e=u.fromPoints(e.start,e.end)),t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var r;return t?r=this.insert(e.start,t):r=e.start,r},p.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},p.prototype.applyDelta=function(e,t){var r=e.action=="insert";(r?e.lines.length<=1&&!e.lines[0]:!u.comparePoints(e.start,e.end))||(r&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(v(this.$lines,e,t),this._signal("change",e)))},p.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row0;)u&1&&(d+=s),(u>>=1)&&(s+=s);return d};var h=/^\s\s*/,v=/\s\s*$/;n.stringTrimLeft=function(s){return s.replace(h,"")},n.stringTrimRight=function(s){return s.replace(v,"")},n.copyObject=function(s){var u={};for(var d in s)u[d]=s[d];return u},n.copyArray=function(s){for(var u=[],d=0,a=s.length;d65535?2:1}}),ace.define("ace/worker/mirror",[],function(L,n,i){var h=L("../document").Document,v=L("../lib/lang"),s=n.Mirror=function(u){this.sender=u;var d=this.doc=new h(""),a=this.deferredUpdate=v.delayedCall(this.onUpdate.bind(this)),p=this;u.on("change",function(e){var t=e.data;if(t[0].start)d.applyDeltas(t);else for(var r=0;r=d.$lines.length)throw o=new Error("Invalid delta"),o.data={path:p.$path,linesLength:d.$lines.length,start:l.start,end:l.end},o;d.applyDelta(l,!0)}if(p.$timeout)return a.schedule(p.$timeout);p.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(u){this.$timeout=u},this.setValue=function(u){this.doc.setValue(u),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(u){this.sender.callback(this.doc.getValue(),u)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define("ace/mode/json/json_parse",[],function(L,n,i){var h,v,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "},u,d=function(f){throw{name:"SyntaxError",message:f,at:h,text:u}},a=function(f){return f&&f!==v&&d("Expected '"+f+"' instead of '"+v+"'"),v=u.charAt(h),h+=1,v},p=function(){var f,m="";for(v==="-"&&(m="-",a("-"));v>="0"&&v<="9";)m+=v,a();if(v===".")for(m+=".";a()&&v>="0"&&v<="9";)m+=v;if(v==="e"||v==="E")for(m+=v,a(),(v==="-"||v==="+")&&(m+=v,a());v>="0"&&v<="9";)m+=v,a();if(f=+m,!isNaN(f))return f;d("Bad number")},e=function(){var f,m,y="",D;if(v==='"')for(;a();){if(v==='"')return a(),y;if(v==="\\")if(a(),v==="u"){for(D=0,m=0;m<4&&(f=parseInt(a(),16),!!isFinite(f));m+=1)D=D*16+f;y+=String.fromCharCode(D)}else{if(typeof s[v]!="string")break;y+=s[v]}else{if(v==` +`||v=="\r")break;y+=v}}d("Bad string")},t=function(){for(;v&&v<=" ";)a()},r=function(){switch(v){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}d("Unexpected '"+v+"'")},l,o=function(){var f=[];if(v==="["){if(a("["),t(),v==="]")return a("]"),f;for(;v;){if(f.push(l()),t(),v==="]")return a("]"),f;a(","),t()}}d("Bad array")},c=function(){var f,m={};if(v==="{"){if(a("{"),t(),v==="}")return a("}"),m;for(;v;){if(f=e(),t(),a(":"),Object.hasOwnProperty.call(m,f)&&d('Duplicate key "'+f+'"'),m[f]=l(),t(),v==="}")return a("}"),m;a(","),t()}}d("Bad object")};return l=function(){switch(t(),v){case"{":return c();case"[":return o();case'"':return e();case"-":return p();default:return v>="0"&&v<="9"?p():r()}},function(f,m){var y;return u=f,h=0,v=" ",y=l(),t(),v&&d("Syntax error"),typeof m=="function"?function D(E,b){var g,S,T=E[b];if(T&&typeof T=="object")for(g in T)Object.hasOwnProperty.call(T,g)&&(S=D(T,g),S!==void 0?T[g]=S:delete T[g]);return m.call(E,b,T)}({"":y},""):y}}),ace.define("ace/mode/json_worker",[],function(L,n,i){var h=L("../lib/oop"),v=L("../worker/mirror").Mirror,s=L("./json/json_parse"),u=n.JsonWorker=function(d){v.call(this,d),this.setTimeout(200)};h.inherits(u,v),function(){this.onUpdate=function(){var d=this.doc.getValue(),a=[];try{d&&s(d)}catch(e){var p=this.doc.indexToPosition(e.at-1);a.push({row:p.row,column:p.column,text:e.message,type:"error"})}this.sender.emit("annotate",a)}}.call(u.prototype)});var Ma={exports:{}};(function(L,n){ace.define("ace/theme/clouds_midnight-css",["require","exports","module"],function(i,h,v){v.exports=`.ace-clouds-midnight .ace_gutter { background: #232323; color: #929292 } @@ -1128,7 +1128,7 @@ import{C as dt,R as M}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh .ace-clouds-midnight .ace_indent-guide-active { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQIW2PQ1dX9zzBz5sz/ABCcBFFentLlAAAAAElFTkSuQmCC) right repeat-y; } -`}),ace.define("ace/theme/clouds_midnight",["require","exports","module","ace/theme/clouds_midnight-css","ace/lib/dom"],function(i,u,v){u.isDark=!0,u.cssClass="ace-clouds-midnight",u.cssText=i("./clouds_midnight-css");var o=i("../lib/dom");o.importCssString(u.cssText,u.cssClass,!1)}),function(){ace.require(["ace/theme/clouds_midnight"],function(i){L&&(L.exports=i)})}()})(ka);var Ma={exports:{}};(function(L,n){ace.define("ace/theme/chrome-css",["require","exports","module"],function(i,u,v){v.exports=`.ace-chrome .ace_gutter { +`}),ace.define("ace/theme/clouds_midnight",["require","exports","module","ace/theme/clouds_midnight-css","ace/lib/dom"],function(i,h,v){h.isDark=!0,h.cssClass="ace-clouds-midnight",h.cssText=i("./clouds_midnight-css");var s=i("../lib/dom");s.importCssString(h.cssText,h.cssClass,!1)}),function(){ace.require(["ace/theme/clouds_midnight"],function(i){L&&(L.exports=i)})}()})(Ma);var La={exports:{}};(function(L,n){ace.define("ace/theme/chrome-css",["require","exports","module"],function(i,h,v){v.exports=`.ace-chrome .ace_gutter { background: #ebebeb; color: #333; overflow : hidden; @@ -1286,20 +1286,20 @@ import{C as dt,R as M}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh .ace-chrome .ace_indent-guide-active { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y; } -`}),ace.define("ace/theme/chrome",["require","exports","module","ace/theme/chrome-css","ace/lib/dom"],function(i,u,v){u.isDark=!1,u.cssClass="ace-chrome",u.cssText=i("./chrome-css");var o=i("../lib/dom");o.importCssString(u.cssText,u.cssClass,!1)}),function(){ace.require(["ace/theme/chrome"],function(i){L&&(L.exports=i)})}()})(Ma);var La={exports:{}};(function(L,n){ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(i,u,v){function o(g){var S=new Date().toLocaleString("en-us",g);return S.length==1?"0"+S:S}var h=i("./lib/dom"),p=i("./lib/oop"),a=i("./lib/event_emitter").EventEmitter,d=i("./lib/lang"),e=i("./range").Range,t=i("./range_list").RangeList,r=i("./keyboard/hash_handler").HashHandler,l=i("./tokenizer").Tokenizer,s=i("./clipboard"),c={CURRENT_WORD:function(g){return g.session.getTextRange(g.session.getWordRange())},SELECTION:function(g,S,T){var k=g.session.getTextRange();return T?k.replace(/\n\r?([ \t]*\S)/g,` -`+T+"$1"):k},CURRENT_LINE:function(g){return g.session.getLine(g.getCursorPosition().row)},PREV_LINE:function(g){return g.session.getLine(g.getCursorPosition().row-1)},LINE_INDEX:function(g){return g.getCursorPosition().row},LINE_NUMBER:function(g){return g.getCursorPosition().row+1},SOFT_TABS:function(g){return g.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(g){return g.session.getTabSize()},CLIPBOARD:function(g){return s.getText&&s.getText()},FILENAME:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0]},FILENAME_BASE:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(g){return this.FILEPATH(g).replace(/[^/\\]*$/,"")},FILEPATH:function(g){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.start||""},BLOCK_COMMENT_END:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.end||""},LINE_COMMENT:function(g){var S=g.session.$mode||{};return S.lineCommentStart||""},CURRENT_YEAR:o.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:o.bind(null,{year:"2-digit"}),CURRENT_MONTH:o.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:o.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:o.bind(null,{month:"short"}),CURRENT_DATE:o.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:o.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:o.bind(null,{weekday:"short"}),CURRENT_HOUR:o.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:o.bind(null,{minute:"2-digit"}),CURRENT_SECOND:o.bind(null,{second:"2-digit"})};c.SELECTED_TEXT=c.SELECTION;var f=function(){function g(){this.snippetMap={},this.snippetNameMap={},this.variables=c}return g.prototype.getTokenizer=function(){return g.$tokenizer||this.createTokenizer()},g.prototype.createTokenizer=function(){function S(_){return _=_.substr(1),/^\d+$/.test(_)?[{tabstopId:parseInt(_,10)}]:[{text:_}]}function T(_){return"(?:[^\\\\"+_+"]|\\\\.)"}var k={regex:"/("+T("/")+"+)/",onMatch:function(_,O,$){var A=$[0];return A.fmtString=!0,A.guard=_.slice(1,-1),A.flag="",""},next:"formatString"};return g.$tokenizer=new l({start:[{regex:/\\./,onMatch:function(_,O,$){var A=_[1];return(A=="}"&&$.length||"`$\\".indexOf(A)!=-1)&&(_=A),[_]}},{regex:/}/,onMatch:function(_,O,$){return[$.length?$.shift():_]}},{regex:/\$(?:\d+|\w+)/,onMatch:S},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(_,O,$){var A=S(_.substr(1));return $.unshift(A[0]),A},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+T("\\|")+"*\\|",onMatch:function(_,O,$){var A=_.slice(1,-1).replace(/\\[,|\\]|,/g,function(C){return C.length==2?C[1]:"\0"}).split("\0").map(function(C){return{value:C}});return $[0].choices=A,[A[0]]},next:"start"},k,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(_,O,$){return $.length&&$[0].expectElse?($[0].expectElse=!1,$[0].ifEnd={elseEnd:$[0]},[$[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(_,O,$){var A=_[1];return A=="}"&&$.length||"`$\\".indexOf(A)!=-1?_=A:A=="n"?_=` +`}),ace.define("ace/theme/chrome",["require","exports","module","ace/theme/chrome-css","ace/lib/dom"],function(i,h,v){h.isDark=!1,h.cssClass="ace-chrome",h.cssText=i("./chrome-css");var s=i("../lib/dom");s.importCssString(h.cssText,h.cssClass,!1)}),function(){ace.require(["ace/theme/chrome"],function(i){L&&(L.exports=i)})}()})(La);var Ia={exports:{}};(function(L,n){ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(i,h,v){function s(g){var S=new Date().toLocaleString("en-us",g);return S.length==1?"0"+S:S}var u=i("./lib/dom"),d=i("./lib/oop"),a=i("./lib/event_emitter").EventEmitter,p=i("./lib/lang"),e=i("./range").Range,t=i("./range_list").RangeList,r=i("./keyboard/hash_handler").HashHandler,l=i("./tokenizer").Tokenizer,o=i("./clipboard"),c={CURRENT_WORD:function(g){return g.session.getTextRange(g.session.getWordRange())},SELECTION:function(g,S,T){var k=g.session.getTextRange();return T?k.replace(/\n\r?([ \t]*\S)/g,` +`+T+"$1"):k},CURRENT_LINE:function(g){return g.session.getLine(g.getCursorPosition().row)},PREV_LINE:function(g){return g.session.getLine(g.getCursorPosition().row-1)},LINE_INDEX:function(g){return g.getCursorPosition().row},LINE_NUMBER:function(g){return g.getCursorPosition().row+1},SOFT_TABS:function(g){return g.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(g){return g.session.getTabSize()},CLIPBOARD:function(g){return o.getText&&o.getText()},FILENAME:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0]},FILENAME_BASE:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(g){return this.FILEPATH(g).replace(/[^/\\]*$/,"")},FILEPATH:function(g){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.start||""},BLOCK_COMMENT_END:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.end||""},LINE_COMMENT:function(g){var S=g.session.$mode||{};return S.lineCommentStart||""},CURRENT_YEAR:s.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:s.bind(null,{year:"2-digit"}),CURRENT_MONTH:s.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:s.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:s.bind(null,{month:"short"}),CURRENT_DATE:s.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:s.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:s.bind(null,{weekday:"short"}),CURRENT_HOUR:s.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:s.bind(null,{minute:"2-digit"}),CURRENT_SECOND:s.bind(null,{second:"2-digit"})};c.SELECTED_TEXT=c.SELECTION;var f=function(){function g(){this.snippetMap={},this.snippetNameMap={},this.variables=c}return g.prototype.getTokenizer=function(){return g.$tokenizer||this.createTokenizer()},g.prototype.createTokenizer=function(){function S(_){return _=_.substr(1),/^\d+$/.test(_)?[{tabstopId:parseInt(_,10)}]:[{text:_}]}function T(_){return"(?:[^\\\\"+_+"]|\\\\.)"}var k={regex:"/("+T("/")+"+)/",onMatch:function(_,O,$){var A=$[0];return A.fmtString=!0,A.guard=_.slice(1,-1),A.flag="",""},next:"formatString"};return g.$tokenizer=new l({start:[{regex:/\\./,onMatch:function(_,O,$){var A=_[1];return(A=="}"&&$.length||"`$\\".indexOf(A)!=-1)&&(_=A),[_]}},{regex:/}/,onMatch:function(_,O,$){return[$.length?$.shift():_]}},{regex:/\$(?:\d+|\w+)/,onMatch:S},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(_,O,$){var A=S(_.substr(1));return $.unshift(A[0]),A},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+T("\\|")+"*\\|",onMatch:function(_,O,$){var A=_.slice(1,-1).replace(/\\[,|\\]|,/g,function(C){return C.length==2?C[1]:"\0"}).split("\0").map(function(C){return{value:C}});return $[0].choices=A,[A[0]]},next:"start"},k,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(_,O,$){return $.length&&$[0].expectElse?($[0].expectElse=!1,$[0].ifEnd={elseEnd:$[0]},[$[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(_,O,$){var A=_[1];return A=="}"&&$.length||"`$\\".indexOf(A)!=-1?_=A:A=="n"?_=` `:A=="t"?_=" ":"ulULE".indexOf(A)!=-1&&(_={changeCase:A,local:A>"a"}),[_]}},{regex:"/\\w*}",onMatch:function(_,O,$){var A=$.shift();return A&&(A.flag=_.slice(1,-1)),this.next=A&&A.tabstopId?"start":"",[A||_]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(_,O,$){return[{text:_.slice(1)}]}},{regex:/\${\w+/,onMatch:function(_,O,$){var A={text:_.slice(2)};return $.unshift(A),[A]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(_,O,$){var A=$.shift();return this.next=A&&A.tabstopId?"start":"",[A||_]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(_,O,$){var A=$[0];return A.formatFunction=_.slice(2,-1),[$.shift()]},next:"formatString"},k,{regex:/:[\?\-+]?/,onMatch:function(_,O,$){_[1]=="+"&&($[0].ifEnd=$[0]),_[1]=="?"&&($[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),g.$tokenizer},g.prototype.tokenizeTmSnippet=function(S,T){return this.getTokenizer().getLineTokens(S,T).tokens.map(function(k){return k.value||k})},g.prototype.getVariableValue=function(S,T,k){if(/^\d+$/.test(T))return(this.variables.__||{})[T]||"";if(/^[A-Z]\d+$/.test(T))return(this.variables[T[0]+"__"]||{})[T.substr(1)]||"";if(T=T.replace(/^TM_/,""),!this.variables.hasOwnProperty(T))return"";var _=this.variables[T];return typeof _=="function"&&(_=this.variables[T](S,T,k)),_??""},g.prototype.tmStrFormat=function(S,T,k){if(!T.fmt)return S;var _=T.flag||"",O=T.guard;O=new RegExp(O,_.replace(/[^gim]/g,""));var $=typeof T.fmt=="string"?this.tokenizeTmSnippet(T.fmt,"formatString"):T.fmt,A=this,C=S.replace(O,function(){var w=A.variables.__;A.variables.__=[].slice.call(arguments);for(var x=A.resolveVariables($,k),I="E",F=0;F=0&&C.splice(w,1)}}var _=this.snippetMap,O=this.snippetNameMap;S.content?k(S):Array.isArray(S)&&S.forEach(k)},g.prototype.parseSnippetFile=function(S){S=S.replace(/\r/g,"");for(var T=[],k={},_=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,O;O=_.exec(S);){if(O[1])try{k=JSON.parse(O[1]),T.push(k)}catch{}if(O[4])k.content=O[4].replace(/^\t/gm,""),T.push(k),k={};else{var $=O[2],A=O[3];if($=="regex"){var C=/\/((?:[^\/\\]|\\.)*)|$/g;k.guard=C.exec(A)[1],k.trigger=C.exec(A)[1],k.endTrigger=C.exec(A)[1],k.endGuard=C.exec(A)[1]}else $=="snippet"?(k.tabTrigger=A.match(/^\S*/)[0],k.name||(k.name=A)):$&&(k[$]=A)}}return T},g.prototype.getSnippetByName=function(S,T){var k=this.snippetNameMap,_;return this.getActiveScopes(T).some(function(O){var $=k[O];return $&&(_=$[S]),!!_},this),_},g}();p.implement(f.prototype,a);var m=function(g,S,T){function k(G){for(var Y=[],Q=0;Q=0&&C.splice(w,1)}}var _=this.snippetMap,O=this.snippetNameMap;S.content?k(S):Array.isArray(S)&&S.forEach(k)},g.prototype.parseSnippetFile=function(S){S=S.replace(/\r/g,"");for(var T=[],k={},_=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,O;O=_.exec(S);){if(O[1])try{k=JSON.parse(O[1]),T.push(k)}catch{}if(O[4])k.content=O[4].replace(/^\t/gm,""),T.push(k),k={};else{var $=O[2],A=O[3];if($=="regex"){var C=/\/((?:[^\/\\]|\\.)*)|$/g;k.guard=C.exec(A)[1],k.trigger=C.exec(A)[1],k.endTrigger=C.exec(A)[1],k.endGuard=C.exec(A)[1]}else $=="snippet"?(k.tabTrigger=A.match(/^\S*/)[0],k.name||(k.name=A)):$&&(k[$]=A)}}return T},g.prototype.getSnippetByName=function(S,T){var k=this.snippetNameMap,_;return this.getActiveScopes(T).some(function(O){var $=k[O];return $&&(_=$[S]),!!_},this),_},g}();d.implement(f.prototype,a);var m=function(g,S,T){function k(G){for(var Y=[],Q=0;Q1?(H=Y[Y.length-1].length,W+=Y.length-1):H+=G.length,U+=G}else G&&(G.start?G.end={row:W,column:H}:G.start={row:W,column:H})}),{text:U,tabstops:w,tokens:C}},y=function(){function g(S){if(this.index=0,this.ranges=[],this.tabstops=[],S.tabstopManager)return S.tabstopManager;S.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=d.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(S)}return g.prototype.attach=function(S){this.$openTabstops=null,this.selectedTabstop=null,this.editor=S,this.session=S.session,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},g.prototype.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges.length=0,this.tabstops.length=0,this.selectedTabstop=null,this.editor.off("change",this.$onChange),this.editor.off("changeSelection",this.$onChangeSelection),this.editor.off("changeSession",this.$onChangeSession),this.editor.commands.off("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.session=null,this.editor=null},g.prototype.onChange=function(S){for(var T=S.action[0]=="r",k=this.selectedTabstop||{},_=k.parents||{},O=this.tabstops.slice(),$=0;$2&&(this.tabstops.length&&A.push(A.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,A))},g.prototype.addTabstopMarkers=function(S){var T=this.session;S.forEach(function(k){k.markerId||(k.markerId=T.addMarker(k,"ace_snippet-marker","text"))})},g.prototype.removeTabstopMarkers=function(S){var T=this.session;S.forEach(function(k){T.removeMarker(k.markerId),k.markerId=null})},g.prototype.updateTabstopMarkers=function(){if(this.selectedTabstop){var S=this.selectedTabstop.snippetId;this.selectedTabstop.index===0&&S--,this.tabstops.forEach(function(T){T.snippetId===S?this.addTabstopMarkers(T):this.removeTabstopMarkers(T)},this)}},g.prototype.removeRange=function(S){var T=S.tabstop.indexOf(S);T!=-1&&S.tabstop.splice(T,1),T=this.ranges.indexOf(S),T!=-1&&this.ranges.splice(T,1),T=S.tabstop.rangeList.ranges.indexOf(S),T!=-1&&S.tabstop.splice(T,1),this.session.removeMarker(S.markerId),S.tabstop.length||(T=this.tabstops.indexOf(S.tabstop),T!=-1&&this.tabstops.splice(T,1),this.tabstops.length||this.detach())},g}();y.prototype.keyboardHandler=new r,y.prototype.keyboardHandler.bindKeys({Tab:function(g){u.snippetManager&&u.snippetManager.expandWithTab(g)||(g.tabstopManager.tabNext(1),g.renderer.scrollCursorIntoView())},"Shift-Tab":function(g){g.tabstopManager.tabNext(-1),g.renderer.scrollCursorIntoView()},Esc:function(g){g.tabstopManager.detach()}});var D=function(g,S){g.row==0&&(g.column+=S.column),g.row+=S.row},E=function(g,S){g.row==S.row&&(g.column-=S.column),g.row-=S.row};h.importCssString(` +`);Y.length>1?(H=Y[Y.length-1].length,W+=Y.length-1):H+=G.length,U+=G}else G&&(G.start?G.end={row:W,column:H}:G.start={row:W,column:H})}),{text:U,tabstops:w,tokens:C}},y=function(){function g(S){if(this.index=0,this.ranges=[],this.tabstops=[],S.tabstopManager)return S.tabstopManager;S.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=p.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(S)}return g.prototype.attach=function(S){this.$openTabstops=null,this.selectedTabstop=null,this.editor=S,this.session=S.session,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},g.prototype.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges.length=0,this.tabstops.length=0,this.selectedTabstop=null,this.editor.off("change",this.$onChange),this.editor.off("changeSelection",this.$onChangeSelection),this.editor.off("changeSession",this.$onChangeSession),this.editor.commands.off("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.session=null,this.editor=null},g.prototype.onChange=function(S){for(var T=S.action[0]=="r",k=this.selectedTabstop||{},_=k.parents||{},O=this.tabstops.slice(),$=0;$2&&(this.tabstops.length&&A.push(A.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,A))},g.prototype.addTabstopMarkers=function(S){var T=this.session;S.forEach(function(k){k.markerId||(k.markerId=T.addMarker(k,"ace_snippet-marker","text"))})},g.prototype.removeTabstopMarkers=function(S){var T=this.session;S.forEach(function(k){T.removeMarker(k.markerId),k.markerId=null})},g.prototype.updateTabstopMarkers=function(){if(this.selectedTabstop){var S=this.selectedTabstop.snippetId;this.selectedTabstop.index===0&&S--,this.tabstops.forEach(function(T){T.snippetId===S?this.addTabstopMarkers(T):this.removeTabstopMarkers(T)},this)}},g.prototype.removeRange=function(S){var T=S.tabstop.indexOf(S);T!=-1&&S.tabstop.splice(T,1),T=this.ranges.indexOf(S),T!=-1&&this.ranges.splice(T,1),T=S.tabstop.rangeList.ranges.indexOf(S),T!=-1&&S.tabstop.splice(T,1),this.session.removeMarker(S.markerId),S.tabstop.length||(T=this.tabstops.indexOf(S.tabstop),T!=-1&&this.tabstops.splice(T,1),this.tabstops.length||this.detach())},g}();y.prototype.keyboardHandler=new r,y.prototype.keyboardHandler.bindKeys({Tab:function(g){h.snippetManager&&h.snippetManager.expandWithTab(g)||(g.tabstopManager.tabNext(1),g.renderer.scrollCursorIntoView())},"Shift-Tab":function(g){g.tabstopManager.tabNext(-1),g.renderer.scrollCursorIntoView()},Esc:function(g){g.tabstopManager.detach()}});var D=function(g,S){g.row==0&&(g.column+=S.column),g.row+=S.row},E=function(g,S){g.row==S.row&&(g.column-=S.column),g.row-=S.row};u.importCssString(` .ace_snippet-marker { -moz-box-sizing: border-box; box-sizing: border-box; background: rgba(194, 193, 208, 0.09); border: 1px dotted rgba(211, 208, 235, 0.62); position: absolute; -}`,"snippets.css",!1),u.snippetManager=new f;var b=i("./editor").Editor;(function(){this.insertSnippet=function(g,S){return u.snippetManager.insertSnippet(this,g,S)},this.expandSnippet=function(g){return u.snippetManager.expandWithTab(this,g)}}).call(b.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/config","ace/lib/useragent"],function(i,u,v){var o=i("../virtual_renderer").VirtualRenderer,h=i("../editor").Editor,p=i("../range").Range,a=i("../lib/event"),d=i("../lib/lang"),e=i("../lib/dom"),t=i("../config").nls,r=i("./../lib/useragent"),l=function(D){return"suggest-aria-id:".concat(D)},s=r.isSafari?"menu":"listbox",c=r.isSafari?"menuitem":"option",f=r.isSafari?"aria-current":"aria-selected",m=function(D){var E=new o(D);E.$maxLines=4;var b=new h(E);return b.setHighlightActiveLine(!1),b.setShowPrintMargin(!1),b.renderer.setShowGutter(!1),b.renderer.setHighlightGutterLine(!1),b.$mouseHandler.$focusTimeout=0,b.$highlightTagPending=!0,b},y=function(){function D(E){var b=e.createElement("div"),g=m(b);E&&E.appendChild(b),b.style.display="none",g.renderer.content.style.cursor="default",g.renderer.setStyle("ace_autocomplete"),g.renderer.$textLayer.element.setAttribute("role",s),g.renderer.$textLayer.element.setAttribute("aria-roledescription",t("autocomplete.popup.aria-roledescription","Autocomplete suggestions")),g.renderer.$textLayer.element.setAttribute("aria-label",t("autocomplete.popup.aria-label","Autocomplete suggestions")),g.renderer.textarea.setAttribute("aria-hidden","true"),g.setOption("displayIndentGuides",!1),g.setOption("dragDelay",150);var S=function(){};g.focus=S,g.$isFocused=!0,g.renderer.$cursorLayer.restartTimer=S,g.renderer.$cursorLayer.element.style.opacity="0",g.renderer.$maxLines=8,g.renderer.$keepTextAreaAtCursor=!1,g.setHighlightActiveLine(!1),g.session.highlight(""),g.session.$searchHighlight.clazz="ace_highlight-marker",g.on("mousedown",function(C){var w=C.getDocumentPosition();g.selection.moveToPosition(w),_.start.row=_.end.row=w.row,C.stop()});var T,k=new p(-1,0,-1,1/0),_=new p(-1,0,-1,1/0);_.id=g.session.addMarker(_,"ace_active-line","fullLine"),g.setSelectOnHover=function(C){C?k.id&&(g.session.removeMarker(k.id),k.id=null):k.id=g.session.addMarker(k,"ace_line-hover","fullLine")},g.setSelectOnHover(!1),g.on("mousemove",function(C){if(!T){T=C;return}if(!(T.x==C.x&&T.y==C.y)){T=C,T.scrollTop=g.renderer.scrollTop,g.isMouseOver=!0;var w=T.getDocumentPosition().row;k.start.row!=w&&(k.id||g.setRow(w),$(w))}}),g.renderer.on("beforeRender",function(){if(T&&k.start.row!=-1){T.$pos=null;var C=T.getDocumentPosition().row;k.id||g.setRow(C),$(C,!0)}}),g.renderer.on("afterRender",function(){for(var C=g.renderer.$textLayer,w=C.config.firstRow,x=C.config.lastRow;w<=x;w++){var I=C.element.childNodes[w-C.config.firstRow];I.setAttribute("role",c),I.setAttribute("aria-roledescription",t("autocomplete.popup.item.aria-roledescription","item")),I.setAttribute("aria-setsize",g.data.length),I.setAttribute("aria-describedby","doc-tooltip"),I.setAttribute("aria-posinset",w+1);var F=g.getData(w);if(F){var R="".concat(F.caption||F.value).concat(F.meta?", ".concat(F.meta):"");I.setAttribute("aria-label",R)}var B=I.querySelectorAll(".ace_completion-highlight");B.forEach(function(P){P.setAttribute("role","mark")})}}),g.renderer.on("afterRender",function(){var C=g.getRow(),w=g.renderer.$textLayer,x=w.element.childNodes[C-w.config.firstRow],I=document.activeElement;if(x!==g.selectedNode&&g.selectedNode&&(e.removeCssClass(g.selectedNode,"ace_selected"),g.selectedNode.removeAttribute(f),g.selectedNode.removeAttribute("id")),I.removeAttribute("aria-activedescendant"),g.selectedNode=x,x){var F=l(C);e.addCssClass(x,"ace_selected"),x.id=F,w.element.setAttribute("aria-activedescendant",F),I.setAttribute("aria-activedescendant",F),x.setAttribute(f,"true")}});var O=function(){$(-1)},$=function(C,w){C!==k.start.row&&(k.start.row=k.end.row=C,w||g.session._emit("changeBackMarker"),g._emit("changeHoverMarker"))};g.getHoveredRow=function(){return k.start.row},a.addListener(g.container,"mouseout",function(){g.isMouseOver=!1,O()}),g.on("hide",O),g.on("changeSelection",O),g.session.doc.getLength=function(){return g.data.length},g.session.doc.getLine=function(C){var w=g.data[C];return typeof w=="string"?w:w&&w.value||""};var A=g.session.bgTokenizer;return A.$tokenizeRow=function(C){function w(G,Y){G&&I.push({type:(x.className||"")+(Y||""),value:G})}var x=g.data[C],I=[];if(!x)return I;typeof x=="string"&&(x={value:x});for(var F=x.caption||x.value||x.name,R=F.toLowerCase(),B=(g.filterText||"").toLowerCase(),P=0,V=0,W=0;W<=B.length;W++)if(W!=V&&(x.matchMask&1<=W?x="bottom":x="top"),x==="top"?(H.bottom=C.top-this.$borderSize,H.top=H.bottom-W):x==="bottom"&&(H.top=C.top+w+this.$borderSize,H.bottom=H.top+W);var Y=H.top>=0&&H.bottom<=B;if(!I&&!Y)return!1;Y?V.$maxPixelHeight=null:x==="top"?V.$maxPixelHeight=G:V.$maxPixelHeight=U,x==="top"?(F.style.top="",F.style.bottom=B+R-H.bottom+"px",g.isTopdown=!1):(F.style.top=H.top+"px",F.style.bottom="",g.isTopdown=!0),F.style.display="";var Q=C.left;return Q+F.offsetWidth>P&&(Q=P-F.offsetWidth),F.style.left=Q+"px",F.style.right="",g.isOpen||(g.isOpen=!0,this._signal("show"),T=null),g.anchorPos=C,g.anchor=x,!0},g.show=function(C,w,x){this.tryShow(C,w,x?"bottom":void 0,!0)},g.goTo=function(C){var w=this.getRow(),x=this.session.getLength()-1;switch(C){case"up":w=w<=0?x:w-1;break;case"down":w=w>=x?-1:w+1;break;case"start":w=0;break;case"end":w=x}this.setRow(w)},g.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},g.$imageSize=0,g.$borderSize=1,g}return D}();e.importCssString(` .ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; @@ -1392,7 +1392,7 @@ import{C as dt,R as M}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh animation: none; } } -`,"autocompletion.css",!1),u.AcePopup=y,u.$singleLineEditor=m,u.getAriaId=l}),ace.define("ace/autocomplete/inline_screenreader",["require","exports","module"],function(i,u,v){var o=function(){function h(p){this.editor=p,this.screenReaderDiv=document.createElement("div"),this.screenReaderDiv.classList.add("ace_screenreader-only"),this.editor.container.appendChild(this.screenReaderDiv)}return h.prototype.setScreenReaderContent=function(p){for(!this.popup&&this.editor.completer&&this.editor.completer.popup&&(this.popup=this.editor.completer.popup,this.popup.renderer.on("afterRender",function(){var d=this.popup.getRow(),e=this.popup.renderer.$textLayer,t=e.element.childNodes[d-e.config.firstRow];if(t){for(var r="doc-tooltip ",l=0;l=0&&a.test(h[e]);e--)d.push(h[e]);return d.reverse().join("")},u.retrieveFollowingIdentifier=function(h,p,a){a=a||o;for(var d=[],e=p;e0)for(var g=this.popup.getFirstVisibleRow();g<=this.popup.getLastVisibleRow();g++){var S=this.popup.getData(g);S&&(!b||S.hideInlinePreview)&&this.$seen(S)}},E.prototype.$onPopupShow=function(b){this.$onPopupChange(b),this.stickySelection=!1,this.stickySelectionDelay>=0&&this.stickySelectionTimer.schedule(this.stickySelectionDelay)},E.prototype.observeLayoutChanges=function(){if(!(this.$elements||!this.editor)){window.addEventListener("resize",this.onLayoutChange,{passive:!0}),window.addEventListener("wheel",this.mousewheelListener);for(var b=this.editor.container.parentNode,g=[];b;)g.push(b),b.addEventListener("scroll",this.onLayoutChange,{passive:!0}),b=b.parentNode;this.$elements=g}},E.prototype.unObserveLayoutChanges=function(){var b=this;window.removeEventListener("resize",this.onLayoutChange,{passive:!0}),window.removeEventListener("wheel",this.mousewheelListener),this.$elements&&this.$elements.forEach(function(g){g.removeEventListener("scroll",b.onLayoutChange,{passive:!0})}),this.$elements=null},E.prototype.onLayoutChange=function(){if(!this.popup.isOpen)return this.unObserveLayoutChanges();this.$updatePopupPosition(),this.updateDocTooltip()},E.prototype.$updatePopupPosition=function(){var b=this.editor,g=b.renderer,S=g.layerConfig.lineHeight,T=g.$cursorLayer.getPixelPosition(this.base,!0);T.left-=this.popup.getTextLeftOffset();var k=b.container.getBoundingClientRect();T.top+=k.top-g.layerConfig.offset,T.left+=k.left-b.renderer.scrollLeft,T.left+=g.gutterWidth;var _={top:T.top,left:T.left};g.$ghostText&&g.$ghostTextWidget&&this.base.row===g.$ghostText.position.row&&(_.top+=g.$ghostTextWidget.el.offsetHeight);var O=b.container.getBoundingClientRect().bottom-S,$=O<_.top?{top:O,left:_.left}:_;this.popup.tryShow($,S,"bottom")||this.popup.tryShow(T,S,"top")||this.popup.show(T,S)},E.prototype.openPopup=function(b,g,S){this.$firstOpenTimer.cancel(),this.popup||this.$init(),this.inlineEnabled&&!this.inlineRenderer&&this.$initInline(),this.popup.autoSelect=this.autoSelect,this.popup.setSelectOnHover(this.setSelectOnHover);var T=this.popup.getRow(),k=this.popup.data[T];this.popup.setData(this.completions.filtered,this.completions.filterText),this.editor.textInput.setAriaOptions&&this.editor.textInput.setAriaOptions({activeDescendant:a(this.popup.getRow()),inline:this.inlineEnabled}),b.keyBinding.addKeyboardHandler(this.keyboardHandler);var _;this.stickySelection&&(_=this.popup.data.indexOf(k)),(!_||_===-1)&&(_=0),this.popup.setRow(this.autoSelect?_:-1),_===T&&k!==this.completions.filtered[_]&&this.$onPopupChange();var O=this.inlineRenderer&&this.inlineEnabled;if(_===T&&O){var $=this.popup.getData(this.popup.getRow());this.$updateGhostText($)}S||(this.popup.setTheme(b.getTheme()),this.popup.setFontSize(b.getFontSize()),this.$updatePopupPosition(),this.tooltipNode&&this.updateDocTooltip()),this.changeTimer.cancel(),this.observeLayoutChanges()},E.prototype.detach=function(){this.editor&&(this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener)),this.$firstOpenTimer.cancel(),this.changeTimer.cancel(),this.hideDocTooltip(),this.completionProvider&&this.completionProvider.detach(),this.popup&&this.popup.isOpen&&this.popup.hide(),this.popup&&this.popup.renderer&&this.popup.renderer.off("afterRender",this.$onPopupRender),this.base&&this.base.detach(),this.activated=!1,this.completionProvider=this.completions=this.base=null,this.unObserveLayoutChanges()},E.prototype.changeListener=function(b){var g=this.editor.selection.lead;(g.row!=this.base.row||g.columnthis.filterText&&b.lastIndexOf(this.filterText,0)===0)var g=this.filtered;else var g=this.all;this.filterText=b,g=this.filterCompletions(g,this.filterText),g=g.sort(function(T,k){return k.exactMatch-T.exactMatch||k.$score-T.$score||(T.caption||T.value).localeCompare(k.caption||k.value)});var S=null;g=g.filter(function(T){var k=T.snippet||T.caption||T.value;return k===S?!1:(S=k,!0)}),this.filtered=g},E.prototype.filterCompletions=function(b,g){var S=[],T=g.toUpperCase(),k=g.toLowerCase();e:for(var _=0,O;O=b[_];_++){if(O.skipFilter){O.$score=O.score,S.push(O);continue}var $=!this.ignoreCaption&&O.caption||O.value||O.snippet;if($){var A=-1,C=0,w=0,x,I;if(this.exactMatch){if(g!==$.substr(0,g.length))continue e}else{var F=$.toLowerCase().indexOf(k);if(F>-1)w=F;else for(var R=0;R=0&&(P<0||B0&&(A===-1&&(w+=10),w+=I,C|=1<",a.escapeHTML(T.caption),"","
",a.escapeHTML(r(T.snippet))].join(""))},id:"snippetCompleter"},s=[l,e,t];u.setCompleters=function(T){s.length=0,T&&s.push.apply(s,T)},u.addCompleter=function(T){s.push(T)},u.textCompleter=e,u.keyWordCompleter=t,u.snippetCompleter=l;var c={name:"expandSnippet",exec:function(T){return o.expandWithTab(T)},bindKey:"Tab"},f=function(T,k){m(k.session.$mode)},m=function(T){typeof T=="string"&&(T=p.$modes[T]),T&&(o.files||(o.files={}),y(T.$id,T.snippetFileId),T.modes&&T.modes.forEach(m))},y=function(T,k){!k||!T||o.files[T]||(o.files[T]={},p.loadModule(k,function(_){_&&(o.files[T]=_,!_.snippets&&_.snippetText&&(_.snippets=o.parseSnippetFile(_.snippetText)),o.register(_.snippets||[],_.scope),_.includeScopes&&(o.snippetMap[_.scope].includeScopes=_.includeScopes,_.includeScopes.forEach(function(O){m("ace/mode/"+O)})))}))},D=function(T){var k=T.editor,_=k.completer&&k.completer.activated;if(T.command.name==="backspace")_&&!d.getCompletionPrefix(k)&&k.completer.detach();else if(T.command.name==="insertstring"&&!_){E=T;var O=T.editor.$liveAutocompletionDelay;O?b.delay(O):g(T)}},E,b=a.delayedCall(function(){g(E)},0),g=function(T){var k=T.editor,_=d.getCompletionPrefix(k),O=T.args,$=d.triggerAutocomplete(k,O);if(_&&_.length>=k.$liveAutocompletionThreshold||$){var A=h.for(k);A.autoShown=!0,A.showPopup(k)}},S=i("../editor").Editor;i("../config").defineOptions(S.prototype,"editor",{enableBasicAutocompletion:{set:function(T){T?(this.completers||(this.completers=Array.isArray(T)?T:s),this.commands.addCommand(h.startCommand)):this.commands.removeCommand(h.startCommand)},value:!1},enableLiveAutocompletion:{set:function(T){T?(this.completers||(this.completers=Array.isArray(T)?T:s),this.commands.on("afterExec",D)):this.commands.off("afterExec",D)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(T){T?(this.commands.addCommand(c),this.on("changeMode",f),f(null,this)):(this.commands.removeCommand(c),this.off("changeMode",f))},value:!1}})}),function(){ace.require(["ace/ext/language_tools"],function(i){L&&(L.exports=i)})}()})(La);const Ai={jsonError:{border:"1px solid red",minHeight:200},jsonNoError:{border:"1px solid #00000000",minHeight:200}};function Ia(L){return M.createElement(xa,{style:L.error===!0?Ai.jsonError:L.error===!1?Ai.jsonNoError:void 0,mode:L.mode||"json",width:"100%",height:"100%",showPrintMargin:L.editValueMode,showGutter:L.editValueMode,highlightActiveLine:L.editValueMode,defaultValue:L.defaultValue,theme:L.themeType==="dark"?"clouds_midnight":"chrome",value:L.value,readOnly:!L.onChange,onChange:n=>L.onChange(n),name:L.name||"UNIQUE_ID_OF_DIV1",fontSize:L.fontSize||14,setOptions:{enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,enableSnippets:!0,showLineNumbers:L.editValueMode,tabSize:L.editValueMode?2:void 0},editorProps:{$blockScrolling:!0}})}const On={flex:{display:"flex"},button:{height:48,minWidth:48},wrapper:{width:"calc(100vw - 40px)",height:"calc(100vh - 188px)"}};class Fa extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"{}";this.setState({value:u,initialized:!0,jsonError:this.validateJson(u)})}validateJson(n){let i=!1;if(this.props.schema.validateJson!==!1&&(n||!this.props.schema.allowEmpty))try{this.props.schema.json5?ji.parse(n):JSON.parse(n)}catch(u){console.log("Error in JSON",u),i=!0}return i}renderItem(n,i){if(!this.state.initialized)return null;const{schema:u,data:v,attr:o}=this.props,{value:h,showSelectId:p}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},M.createElement("div",{style:On.flex},M.createElement(N.Button,{color:"grey",disabled:i,style:On.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},j.I18n.t("ra_JSON editor"))),p?M.createElement(ao,{title:this.getText(u.label),overflowHidden:!0,applyDisabled:this.state.jsonError&&this.props.schema.doNotApplyWithError,onClose:()=>this.setState({showSelectId:!1,value:K.getValue(v,o)||{}}),onApply:()=>this.setState({showSelectId:!1},()=>this.onChange(o,h))},M.createElement("div",{style:{...On.wrapper,border:this.state.jsonError?"2px solid red":"2px solid transparent"}},M.createElement(Ia,{mode:this.props.schema.json5?"json5":"json",value:typeof h=="object"?JSON.stringify(h):h,onChange:a=>this.setState({value:a,jsonError:this.validateJson(a)}),name:"ConfigJsonEditor",themeType:this.props.oContext.themeType}))):null,u.help||this.state.jsonError?M.createElement(N.FormHelperText,null,this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Oa=[{value:"en",label:"English"},{value:"de",label:"Deutsch"},{value:"ru",label:"русский"},{value:"pt",label:"Portugues"},{value:"nl",label:"Nederlands"},{value:"fr",label:"français"},{value:"it",label:"Italiano"},{value:"es",label:"Espanol"},{value:"pl",label:"Polski"},{value:"uk",label:"Український"},{value:"zh-cn",label:"简体中文"}];class Ra extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=[...Oa];this.props.schema.system?i.unshift({value:"",label:j.I18n.t("ra_System language")}):i.unshift({value:"",label:j.I18n.t("ra_none")}),this.setState({value:this.props.schema.system?n||"":n||j.I18n.getLanguage(),selectOptions:i})}renderItem(n,i){var v,o;if(!this.state.selectOptions)return null;const u=(v=this.state.selectOptions)==null?void 0:v.find(h=>h.value===this.state.value||!h.value&&!this.state.value);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:i,value:this.state.value||"_",renderValue:()=>this.getText(u==null?void 0:u.label,this.props.schema.noTranslation),onChange:h=>{let{value:p}=h.target;p==="_"&&(p=""),this.setState({value:p},()=>{const a=this.onChange(this.props.attr,p);if(a instanceof Promise&&a.catch(d=>console.error(d)),this.props.schema.changeGuiLanguage)if(p){if(p===j.I18n.getLanguage())return;j.I18n.setLanguage(p),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage()}else this.props.oContext.socket.getSystemConfig().then(d=>{d.common.language!==j.I18n.getLanguage()&&d.common.language&&(j.I18n.setLanguage(d.common.language),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage())}).catch(d=>console.error(`Cannot read system config: ${d}`))})}},(o=this.state.selectOptions)==null?void 0:o.map(h=>M.createElement(N.MenuItem,{key:h.value,value:h.value},h.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Na extends K{scrollRef;constructor(n){super(n),this.scrollRef=M.createRef()}scrolledDown(){return this.scrollRef.current?this.scrollRef.current.offsetHeight+this.scrollRef.current.scrollTop>=this.scrollRef.current.scrollHeight:!1}componentDidMount(){super.componentDidMount(),K.getValue(this.props.data,this.props.attr)||(this.props.schema.licenseUrl?(this.setState({showLicenseDialog:!0,loading:!0,scrolledDown:!1}),fetch(this.props.schema.licenseUrl).then(n=>n.text()).then(n=>this.setState({license:n,loading:!1})).catch(n=>this.setState({license:n.toString(),loading:!1,error:!0,scrolledDown:!1}))):this.setState({showLicenseDialog:!0,scrolledDown:!1}),setTimeout(()=>{this.scrollRef.current&&(this.scrolledDown()?this.setState({scrolledDown:!0}):this.scrollRef.current.addEventListener("scroll",()=>{!this.state.scrolledDown&&this.scrolledDown()&&this.setState({scrolledDown:!0})}))},1e3))}renderItem(n,i){return this.state.showLicenseDialog?M.createElement(N.Dialog,{maxWidth:"lg",open:!0,onClose:(u,v)=>{v!=="escapeKeyDown"&&v!=="backdropClick"&&this.setState({showLicenseDialog:!1})}},M.createElement(N.DialogTitle,null,this.props.schema.title?j.I18n.t(this.props.schema.title):j.I18n.t("ra_License agreement")),M.createElement(N.DialogContent,null,this.props.schema.licenseUrl?M.createElement(M.Fragment,null,this.state.loading?M.createElement(N.LinearProgress,null):null,M.createElement("pre",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.state.license)):null,!this.props.schema.licenseUrl&&this.props.schema.texts?M.createElement("div",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.props.schema.texts.map((u,v)=>this.props.schema.noTranslation?M.createElement("p",{key:v},u):M.createElement("p",{key:v},j.I18n.t(u)))):null),M.createElement(N.DialogActions,null,this.props.schema.checkBox?M.createElement(N.FormControlLabel,{control:M.createElement(N.Checkbox,{disabled:i,checked:!!this.state.licenseChecked,onClick:()=>this.setState({licenseChecked:!this.state.licenseChecked})}),label:j.I18n.t(this.props.schema.checkBox)}):null,M.createElement(N.Button,{disabled:i||this.state.loading||this.state.error||this.props.schema.checkBox&&!this.state.licenseChecked||!this.state.scrolledDown,onClick:()=>{this.setState({showLicenseDialog:!1});const u=this.onChange(this.props.attr,!0);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))},color:"primary",variant:"contained",startIcon:M.createElement(Z.Check,null)},this.props.schema.agreeText?j.I18n.t(this.props.schema.agreeText):j.I18n.t("ra_Accept license")),M.createElement(N.Button,{onClick:()=>{this.setState({showLicenseDialog:!1}),setTimeout(()=>this.setState({showLicenseDialog:!0}),2e3)},color:"grey",variant:"contained",startIcon:M.createElement(Z.Close,null)},j.I18n.t("ra_Close")))):null}}const xi={indeterminate:{opacity:.5},control:{flexDirection:"row",width:"100%"}};class Ba extends K{updateTimeout;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(n==null&&(n=""),Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({_value:n,oldValue:n});return}this.setState({_value:n.toString(),oldValue:n.toString()})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const u=K.getValue(n.data,n.attr);return n.oContext.multiEdit&&i._value===K.DIFFERENT_VALUE?{_value:K.DIFFERENT_VALUE}:u==null||i.oldValue===null||i.oldValue===void 0||u.toString()!==parseFloat(i._value).toString()&&u.toString()!==i.oldValue.toString()?{_value:u}:null}checkValue(n){if(n==null)return null;n=n.toString().trim().replace(",",".");const i=n===""?0:parseFloat(n);return n!==""&&Number.isNaN(i)?"ra_Not a number":n!==""&&window.isFinite(i)?this.props.schema.min!==void 0&&ithis.props.schema.max?"ra_Too big":n===""||n==="-"||Number.isNaN(i)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){const u=Array.isArray(this.state._value)||this.state._value===K.DIFFERENT_VALUE;if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0),u){const v=K.getValue(this.props.data,this.props.attr),o=(v==null?void 0:v.filter(h=>h||h===0).map(h=>({label:h.toString(),value:h})))||[];return o.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),M.createElement(N.Autocomplete,{style:xi.indeterminate,fullWidth:!0,freeSolo:!0,value:o[0],getOptionSelected:(h,p)=>h.label===p.label,onChange:(h,p)=>{const a=this.onChange(this.props.attr,p==null?void 0:p.value,()=>{this.setState({_value:p==null?void 0:p.value,oldValue:this.state._value})});a instanceof Promise&&a.catch(d=>console.error(d))},options:o,getOptionLabel:h=>h.label,renderInput:h=>M.createElement(N.TextField,{...h,label:this.getText(this.props.schema.label),variant:"standard",slotProps:{htmlInput:{...h.inputProps,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):void 0}},error:!!n,placeholder:this.getText(this.props.schema.placeholder),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}return!n&&this.state._value!==null&&this.state._value!==void 0&&this.state._value&&(n=this.checkValue(this.state._value),n&&(n=j.I18n.t(n))),M.createElement(N.FormControl,{variant:"standard",style:xi.control},M.createElement(N.TextField,{sx:{"& .up-down":{display:"none"},"&:hover .up-down":{display:"block"}},variant:"standard",type:this.props.schema.min!==void 0&&this.props.schema.min>=0?"number":"text",fullWidth:!0,slotProps:{htmlInput:{min:this.props.schema.min,max:this.props.schema.max,step:this.props.schema.step,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):null}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,onChange:v=>{const o=v.target.value,h=this.checkValue(o);h?this.onError(this.props.attr,j.I18n.t(h)):this.onError(this.props.attr),this.setState({_value:o,oldValue:this.state._value},()=>this.onChange(this.props.attr,parseFloat(o.replace(",","."))))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}))}}class Pa extends K{authWindow;oid;url;constructor(n){super(n),this.state={...this.state,accessTokens:"",success:!1,blocked:!1,running:!1,pressed:!1},this.url=`https://oauth2.iobroker.in/${n.schema.identifier}?redirect=true`,n.schema.scope&&(this.url+=`&scope=${encodeURIComponent(n.schema.scope)}`),this.oid=`${this.props.oContext.adapterName}.${this.props.oContext.instance}.${this.props.schema.saveTokenIn||"oauth2Tokens"}`}async componentDidMount(){super.componentDidMount(),window.addEventListener?window.addEventListener("message",this.onMessage,!1):window.attachEvent("onmessage",this.onMessage,!1),await this.props.oContext.socket.subscribeState(this.oid,this.onTokensUpdated);const n=await this.props.oContext.socket.getState(this.oid);if(n){const i=JSON.parse(n.val);new Date(i.access_token_expires_on).getTime()>Date.now()&&this.setState({accessTokens:n.val})}}onTokensUpdated=(n,i)=>{if(i!=null&&i.val){const u=JSON.parse(i.val);if(new Date(u.access_token_expires_on).getTime()>Date.now()){this.state.accessTokens!==i.val&&this.setState({accessTokens:i.val});return}}this.setState({accessTokens:""})};componentWillUnmount(){super.componentWillUnmount(),window.removeEventListener?window.removeEventListener("message",this.onMessage,!1):window.detachEvent("onmessage",this.onMessage,!1),this.props.oContext.socket.unsubscribeState(this.oid,this.onTokensUpdated)}saveToken(n){try{n&&!n.startsWith("{")&&(n=atob(n));const i=JSON.parse(n);i.access_token&&i.refresh_token&&i.expires_in&&(i.access_token_expires_on||=new Date(Date.now()+i.expires_in*1e3).toISOString(),this.props.oContext.socket.setState(this.oid,JSON.stringify(i),!0).catch(u=>console.log(`Error occurred: ${u.toString()}`)))}catch(i){console.warn(i)}}onMessage=n=>{var i,u,v;if(n.origin==="https://oauth2.iobroker.in"&&(typeof n.data=="string"&&n.data.startsWith(`${this.props.schema.identifier}-authentication:`)||typeof n.message=="string"&&n.message.startsWith(`${this.props.schema.identifier}-authentication:`))){const o=(n.data||n.message).split(":");o[1]==="success"?(this.setState({accessTokens:o[2],success:!0,pressed:!1},()=>this.saveToken(this.state.accessTokens)),(i=this.authWindow)==null||i.postMessage("close",n.origin),this.authWindow=null):(v=(u=this.props).onError)==null||v.call(u,o[2])}};onOpenUrl(){this.authWindow=window.open(this.url,this.props.schema.identifier),!this.authWindow||this.authWindow.closed||typeof this.authWindow.closed>"u"?this.setState({blocked:!0}):this.setState({pressed:!0})}renderItem(){let n="";if(this.state.accessTokens)try{const v=JSON.parse(this.state.accessTokens);n=new Date(v.access_token_expires_on).toLocaleString()}catch{}let i;this.state.accessTokens?i=this.props.schema.refreshLabel?this.getText(this.props.schema.refreshLabel):j.I18n.t("ra_Renew %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1)):i=this.props.schema.label?this.getText(this.props.schema.label):j.I18n.t("ra_Get %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1));const u=this.getIcon();return M.createElement("div",{style:{width:"100%",margin:"0 0 1rem 0"}},M.createElement(N.Button,{disabled:this.state.running,endIcon:u||M.createElement(Z.CloudUpload,null),variant:"contained",onClick:()=>this.onOpenUrl()},i),this.state.blocked?M.createElement("div",{style:{color:"red",fontSize:16,marginTop:20}},j.I18n.t("ra_Please allow popups in your browser for this page!")):null,this.state.accessTokens?M.createElement("div",{style:{color:"green",fontSize:16,marginTop:20}},this.props.alive?j.I18n.t("ra_Successfully authorized. Token valid till %s and will be automatically renewed.",n):j.I18n.t("ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.",n)):null,this.state.pressed?M.createElement(M.Fragment,null,M.createElement("div",{style:{width:"100%",margin:"1rem 0 1rem 0"}},M.createElement("span",{style:{marginRight:4}},`${j.I18n.t("ra_If the button above does not work, you can authorize manually this app by visiting this url")}`,":"),M.createElement("br",null),M.createElement("a",{target:this.props.schema.identifier,href:this.url,rel:"noreferrer"},this.url)),M.createElement(N.TextField,{value:this.state.accessTokens,label:j.I18n.t("ra_Enter the code from that page here"),variant:"standard",onChange:v=>{let o=v.target.value;o&&!o.startsWith("{")&&(o=atob(o));try{const h=JSON.parse(o);h.access_token&&(h.access_token_expires_on=new Date(Date.now()+(h.expires_in-10)*1e3).toISOString(),this.setState({accessTokens:JSON.stringify(h)},()=>this.saveToken(this.state.accessTokens)))}catch{}},fullWidth:!0})):null)}}const $i={flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Wa extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"";this.setState({value:u,initialized:!0})}renderItem(n,i){if(!this.state.initialized)return null;const u=this.props.oContext.socket,{schema:v,attr:o}=this.props,{value:h,showSelectId:p}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},v.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(v.label)):null,M.createElement("div",{style:$i.flex},M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:h,error:!!n,disabled:i,placeholder:this.getText(v.placeholder),label:this.getText(v.label),helperText:this.renderHelp(v.help,v.helpLink,v.noTranslation),onChange:a=>{const d=a.target.value;this.setState({value:d},()=>this.onChange(o,d))}}),M.createElement(N.Button,{color:"grey",disabled:i,style:$i.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},"...")),p?M.createElement(j.DialogSelectID,{imagePrefix:this.props.oContext.imagePrefix===void 0?"../..":this.props.oContext.imagePrefix,dialogName:`admin.${this.props.oContext.adapterName}`,filterFunc:v.filterFunc,themeType:this.props.oContext.themeType,theme:this.props.oContext.theme,types:v.types?Array.isArray(v.types)?v.types:[v.types]:void 0,customFilter:v.customFilter,filters:v.filters,socket:u,selected:h,root:v.root,onClose:()=>this.setState({showSelectId:!1}),onOk:a=>this.setState({showSelectId:!1,value:a},()=>this.onChange(o,a))}):null)}}const Rn={fullWidth:{width:"100%",display:"inline-block"},halfWidth1:{width:"calc(50% - 5px)",display:"inline-block",marginRight:8},halfWidth2:{width:"calc(50% - 5px)",display:"inline-block"}},an="____ppp____";class Ha extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_repeat:n?an:"",_visible:!1,value:n?an:"",_notEqual:!1})}onChangePassword(n,i){n===void 0&&(n=this.state.value),i===void 0&&(i=this.state._repeat);const u=!!this.props.schema.repeat&&i!==n;this.setState({value:n,_repeat:i,_notEqual:u},()=>{if(u)this.onError(this.props.attr,j.I18n.t("ra_Passwords are not equal!"));else{this.onError(this.props.attr);const v=this.onChange(this.props.attr,n);v instanceof Promise&&v.catch(o=>this.onError(this.props.attr,o))}})}renderItem(n,i){if(this.state._notEqual===void 0)return null;const u=M.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state.value!==an?"text":"password",value:this.state.value,error:!!n||this.state._notEqual,disabled:!!i,onChange:v=>this.onChangePassword(v.target.value),label:this.getText(this.props.schema.label),slotProps:{input:{autoComplete:"new-password",endAdornment:this.state.value&&this.state.value!==an&&this.props.schema.visible&&!i&&!this.props.schema.readOnly?M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{size:"large",tabIndex:-1,onClick:v=>{v.preventDefault(),v.stopPropagation(),this.setState({_visible:!this.state._visible})},edge:"end"},this.state._visible?M.createElement(Z.VisibilityOff,null):M.createElement(Z.Visibility,null))):void 0},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});if(this.props.schema.repeat&&!this.props.schema.readOnly){const v=this.state._visible?null:M.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:"password",value:this.state._repeat,error:!!n||this.state._notEqual,disabled:!!i,onChange:o=>this.onChangePassword(void 0,o.target.value),label:`${this.getText(this.props.schema.label)} (${j.I18n.t("ra_repeat")})`,slotProps:{input:{autoComplete:"new-password"},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});return M.createElement("div",{style:Rn.fullWidth},M.createElement("div",{style:Rn.halfWidth1},u),M.createElement("div",{style:Rn.halfWidth2},v))}return u}}class za extends K{renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,disabled:!!i,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.getPattern(this.props.schema.pattern,null,this.props.schema.noTranslation)),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null)):void 0}},value:this.getPattern(this.props.schema.pattern,null,!0),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const ja={warning:{"& .Mui-error":{color:"orange"}}};class Va extends K{updateTimeout;async componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);n==null&&(n=""),this.setState({_value:n.toString(),oldValue:n.toString()});const i=await this.props.oContext.socket.getAdapterInstances(),u=`system.adapter.${this.props.oContext.adapterName}.${this.props.oContext.instance}`,v=await this.props.oContext.socket.getObject(u),o=v==null?void 0:v.common.host,h=[];i.forEach(p=>{var d,e,t,r;if(!p||p._id===u||p.common.host!==o||!((d=p.native)!=null&&d.bind))return;if(p!=null&&p.native&&p.native.secure&&p.native.leEnabled&&p.native.leUpdate){const l=parseInt(p.native.leCheckPort||p.native.lePort,10);l&&h.push({name:`${p._id.replace("system.adapter.","")} (LE)`,port:l,v6bind:p.native.bind.includes(":")?p.native.bind:p.native.v6bind,bind:p.native.bind,enabled:!!((e=p.common)!=null&&e.enabled)})}const a=parseInt((t=p==null?void 0:p.native)==null?void 0:t.port,10);a&&h.push({name:p._id.replace("system.adapter.",""),bind:p.native.bind,v6bind:p.native.bind.includes(":")?p.native.bind:p.native.v6bind,port:a,enabled:!!((r=p.common)!=null&&r.enabled)})}),this.setState({ports:h})}static getDerivedStateFromProps(n,i){const u=K.getValue(n.data,n.attr);return u==null||i.oldValue===null||i.oldValue===void 0||u.toString()!==parseInt(i._value,10).toString()&&u.toString()!==i.oldValue.toString()?{_value:u}:null}checkValue(n){if(n==null)return null;const i=this.props.schema.min===void 0?20:this.props.schema.min,u=this.props.schema.max||65535;n=n.toString().trim();const v=n===""?0:parseInt(n,10);return n!==""&&Number.isNaN(v)?"ra_Not a number":n!==""&&window.isFinite(Number(n))?vu?"ra_Too big":n===""||n==="-"||Number.isNaN(v)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0);const u=this.props.schema.min===void 0?20:this.props.schema.min,v=this.props.schema.max||65535;let o;if(this.state.ports){const h=parseInt(this.state._value,10);if(h){const p=this.state.ports.filter(d=>!this.props.data.bind||this.props.data.bind===d.bind||this.props.data.bind==="0.0.0.0"||d.bind==="0.0.0.0");let a=p.findIndex(d=>d.port===h&&d.enabled);a!==-1?n=j.I18n.t("ra_Port is already used by %s",this.state.ports[a].name):(a=p.findIndex(d=>d.port===h&&!d.enabled),a!==-1&&(o=!0,n=j.I18n.t("ra_Port could be used by %s",this.state.ports[a].name)))}}return!n&&this.state._value!==null&&this.state._value!==void 0&&(n=this.checkValue(this.state._value),typeof n=="string"&&(n=j.I18n.t(n))),M.createElement(N.TextField,{variant:"standard",type:"number",fullWidth:!0,slotProps:{htmlInput:{min:u,max:v,readOnly:this.props.schema.readOnly||!1}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,sx:o?ja.warning:void 0,onChange:h=>{const p=Number(h.target.value.toString().replace(/[^0-9]/g,"")).toString(),a=this.checkValue(p);a?this.onError(this.props.attr,j.I18n.t(a)):this.onError(this.props.attr),this.setState({_value:p,oldValue:this.state._value},()=>{if(p.trim()===parseInt(p,10).toString()){const d=this.onChange(this.props.attr,parseInt(p,10)||0);d instanceof Promise&&d.catch(e=>{console.error(`Cannot set value for ${this.props.attr}: ${e}`)})}})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}class Ua extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("rooms").then(i=>{const u=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.rooms.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})}).catch(i=>console.error(`Cannot get enums: ${i}`))}renderItem(n,i){if(!this.state.selectOptions)return null;const u=this.state.selectOptions.find(v=>v.value===this.state.value);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>u?u.obj?M.createElement(j.TextWithIcon,{value:u.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):u.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>M.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?M.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ga={noMargin:{"&>div":{marginTop:0}}};class Ka extends K{initialValue="";componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[]));const i=[];(this.props.schema.options||[]).forEach(u=>{const v=u;Array.isArray(v.items)?(i.push({label:this.getText(u.label,this.props.schema.noTranslation),value:u.value,group:!0}),v.items.forEach(o=>i.push({label:this.getText(o.label,this.props.schema.noTranslation),value:o.value,hidden:o.hidden}))):i.push({label:this.getText(u.label,this.props.schema.noTranslation),value:u.value,hidden:u.hidden})}),Array.isArray(n)&&!this.props.schema.multiple?(this.initialValue=[...n],i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){if(!this.state.selectOptions)return null;const u=(this.state.selectOptions||[]).filter(h=>h.hidden?this.props.custom?!this.executeCustom(h.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(h.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),v=this._getValue(),o=this.props.schema.multiple?null:u.find(h=>h.value==v);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0,sx:this.props.table!==void 0&&Ga.noMargin,id:`jsonSelect_${this.props.attr}_${this.props.index||this.props.index===0?this.props.index:""}`},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,value:v||"_",renderValue:h=>this.props.schema.multiple?M.createElement(N.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},h.map(p=>{const a=u.find(d=>d.value===p);if(a||this.props.schema.showAllValues!==!1){const d=(a==null?void 0:a.label)||p;return M.createElement(N.Chip,{key:p,label:d})}return null})):(o==null?void 0:o.label)===void 0?h:o.label,onChange:h=>{this.setState({value:h.target.value==="_"?"":h.target.value},()=>{let p;this.state.value===K.DIFFERENT_VALUE?p=this.onChange(this.props.attr,this.initialValue):p=this.onChange(this.props.attr,this.state.value),p instanceof Promise&&p.catch(a=>console.error(a))})}},u.map((h,p)=>h.group?M.createElement(N.ListSubheader,{key:p},h.label):M.createElement(N.MenuItem,{key:p,value:h.value,style:h.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},this.props.schema.multiple?M.createElement(N.Checkbox,{checked:v.includes(h.value),onClick:()=>{const a=JSON.parse(JSON.stringify(this._getValue())),d=v.indexOf(h.value);d!==-1?a.splice(d,1):(a.push(h.value),a.sort()),this.setState({value:a},()=>this.onChange(this.props.attr,a))}}):null,M.createElement(N.ListItemText,{primary:h.label})))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ja={menuPaper:{maxHeight:800}};class Ya extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.setState({running:!0},()=>{this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({list:i,running:!1})).catch(i=>{console.error(`Cannot send command: ${i}`)})})}else{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n,running:!1})}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){var h;if(this.props.alive){const p=this.getContext();(p!==this.localContext||!this.initialized)&&(this.localContext=p,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}const u=this._getValue();if(!this.props.alive||!this.state.running&&!((h=this.state.list)!=null&&h.length))return this.props.schema.multiple||this.props.schema.manual===!1?j.I18n.t("ra_Cannot retrieve options, as instance is offline"):M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:u,error:!!n,disabled:!!i,onChange:p=>{const a=p.target.value;this.setState({value:a},()=>this.onChange(this.props.attr,(a||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),slotProps:{input:{endAdornment:this.state.value&&!this.props.schema.noClearButton?M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({value:""},()=>this.onChange(this.props.attr,""))},M.createElement(Z.Close,null))):null}}});if(this.state.running)return M.createElement(N.CircularProgress,{size:"24"});const v=this.state.list.filter(p=>p.hidden?this.props.custom?!this.executeCustom(p.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(p.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),o=v.find(p=>p.value===u);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,sx:{"&.MuiSelect-paper":this.props.schema.multiple?Ja.menuPaper:void 0},value:u,renderValue:p=>this.props.schema.multiple?M.createElement(N.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},p.map(a=>{const d=v.find(e=>e.value===a);if(d||this.props.schema.showAllValues!==!1){const e=(d==null?void 0:d.label)||a;return M.createElement(N.Chip,{key:a,label:e})}return null})):this.getText((o==null?void 0:o.label)||p,this.props.schema.noTranslation),onChange:p=>{const a=this.onChange(this.props.attr,p.target.value);a instanceof Promise&&a.catch(d=>console.error(`Cannot set value: ${d}`))}},v.map((p,a)=>p.group?M.createElement(N.ListSubheader,{key:a},this.getText(p.label,this.props.schema.noTranslation)):M.createElement(N.MenuItem,{key:a,value:p.value},this.props.schema.multiple?M.createElement(N.Checkbox,{checked:u.includes(p.value),onClick:()=>{const d=JSON.parse(JSON.stringify(this._getValue())),e=u.indexOf(p.value);e!==-1?d.splice(e,1):(d.push(p.value),d.sort()),this.setState({value:d},()=>this.onChange(this.props.attr,d))}}):null,M.createElement(N.ListItemText,{primary:p.label})))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ti={fullWidth:{width:"100%"}};function ut(L){return L.split(".").reduce((n,i)=>(n<<8)+parseInt(i,10),0)>>>0}function Qa(L,n){var v,o;const i=(o=(v=L==null?void 0:L.native)==null?void 0:v.hardware)==null?void 0:o.networkInterfaces;if(!i)return null;let u;return Object.keys(i).forEach(h=>i[h].forEach(p=>{p.internal||n.includes(":")&&p.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&p.family!=="IPv4"||(p.family==="IPv4"&&!p.address.startsWith("172")&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?u=p.address:u||(p.family==="IPv4"&&n.includes(".")&&(ut(n)&ut(p.netmask),ut(p.address)&ut(p.netmask)),u=p.address))})),u||Object.keys(i).forEach(h=>i[h].forEach(p=>{p.internal||n.includes(":")&&p.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&p.family!=="IPv4"||(p.family==="IPv6"&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?u=p.address:u||(p.family==="IPv4"&&n.includes(".")&&(ut(n)&ut(p.netmask),ut(p.address)&ut(p.netmask)),u=p.address))})),u||Object.keys(i).forEach(h=>{i[h].forEach(p=>{p.internal||n.includes(":")&&p.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&p.family!=="IPv4"||(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/),u=p.address)})}),u||Object.keys(i).forEach(h=>{i[h].forEach(p=>{p.internal||(u=p.address)})}),u}class _i extends K{async componentDidMount(){var i;super.componentDidMount();let n=window.location.hostname;if(this.props.schema.openUrl){const u=await this.props.oContext.socket.getCurrentInstance(),v=await this.props.oContext.socket.getObject(`system.adapter.${u}`);if(v){const o=await this.props.oContext.socket.getObject(`system.host.${(i=v==null?void 0:v.common)==null?void 0:i.host}`);if(o){const h=Qa(o,window.location.hostname);if(h)n=`${h}:${window.location.port}`;else{console.warn(`Cannot find suitable IP in host ${v.common.host} for ${v._id}`);return}}}}await new Promise(u=>{this.setState({_error:"",_message:"",hostname:n},u)}),this.props.schema.onLoaded&&this._onClick()}renderErrorDialog(){return this.state._error?M.createElement(j.DialogError,{text:this.state._error,onClose:()=>this.setState({_error:""})}):null}renderMessageDialog(){return this.state._message?M.createElement(j.DialogMessage,{text:this.state._message,onClose:()=>this.setState({_message:""})}):null}_onClick(){this.props.oContext.onCommandRunning(!0),this.setState({running:!0});const n=`${window.location.protocol}//${window.location.host}${window.location.pathname.replace(/\/index\.html$/,"")}`,i=`${window.location.protocol}//${this.state.hostname.split(":").length>3?`[${this.state.hostname}]`:this.state.hostname}${window.location.pathname.replace(/\/index\.html$/,"")}`;let u=this.props.schema.data;if(u===void 0&&this.props.schema.jsonData){const o=this.getPattern(this.props.schema.jsonData,{_origin:n,_originIp:i,...this.props.data},!0);try{u=JSON.parse(o)}catch{console.error(`Cannot parse json data: ${o}`)}}u===void 0&&(u=null),this.props.schema.openUrl&&!u&&(u={_origin:n,_originIp:i});let v;this.props.schema.timeout&&(v=setTimeout(()=>{this.props.oContext.onCommandRunning(!1),this.setState({_error:j.I18n.t("ra_Request timed out"),running:!1})},parseInt(this.props.schema.timeout,10)||1e4)),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",u).then(async o=>{if(v&&(clearTimeout(v),v=void 0),o!=null&&o.error)if(this.props.schema.error&&this.props.schema.error[o.error]){let h=this.getText(this.props.schema.error[o.error]);o.args&&o.args.forEach(p=>h=h.replace("%s",p)),this.setState({_error:h})}else this.setState({_error:o.error?j.I18n.t(o.error):j.I18n.t("ra_Error")});else{if(o!=null&&o.command){this.props.oContext.onBackEndCommand&&this.props.oContext.onBackEndCommand(o.command);return}if(o!=null&&o.reloadBrowser&&this.props.schema.reloadBrowser)window.location.reload();else if(o!=null&&o.openUrl&&this.props.schema.openUrl)window.open(o.openUrl,o.window||this.props.schema.window||"_blank");else if(o!=null&&o.result&&this.props.schema.result&&this.props.schema.result[o.result]){let h=this.getText(this.props.schema.result[o.result]);o.args&&o.args.forEach(p=>h=h.replace("%s",p)),window.alert(h)}if(o!=null&&o.native&&this.props.schema.useNative){for(const[h,p]of Object.entries(o.native))await this.onChangeAsync(h,p);setTimeout(()=>this.props.oContext.forceUpdate(Object.keys(o.native),this.props.data),300)}else o!=null&&o.result?window.alert(typeof o.result=="object"?JSON.stringify(o.result):o.result):window.alert(j.I18n.t("ra_Ok"));o!=null&&o.saveConfig&&this.props.onChange(null,null,null,!0)}}).catch(o=>{this.props.schema.error&&this.props.schema.error[o.toString()]?this.setState({_error:this.getText(this.props.schema.error[o.toString()])}):this.setState({_error:j.I18n.t(o.toString())||j.I18n.t("ra_Error")})}).then(()=>{this.props.oContext.onCommandRunning(!1),this.setState({running:!1})})}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:u=>this.setState({confirmDialog:!1},()=>u&&this._onClick())})}renderItem(n,i){const u=this.getIcon();return M.createElement("div",{style:Ti.fullWidth},M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ti.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i||!this.props.alive,startIcon:u,title:this.props.alive?this.getText(this.props.schema.title)||"":j.I18n.t("ra_Instance is not alive"),onClick:()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):this._onClick()}},this.props.schema.showProcess&&this.state.running?M.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation)),this.renderErrorDialog(),this.renderMessageDialog())}}const Xa={fullWidth:{width:"100%"}};class Za extends K{async _onClick(){var u,v;let n=this.props.schema.val;if(typeof n=="string"&&n.includes("${")){n=this.getPattern(n,null,!0);const o=await this.props.oContext.socket.getObject(this.props.schema.id);((u=o==null?void 0:o.common)==null?void 0:u.type)==="number"?n=parseFloat(n):((v=o==null?void 0:o.common)==null?void 0:v.type)==="boolean"&&(n=n==="true"||n===!0||n==="1"||n===1)}const i=(this.props.schema.id||"").replace(/%INSTANCE%/g,(this.props.oContext.instance||0).toString());try{await this.props.oContext.socket.setState(i,{val:n,ack:!!this.props.schema.ack}),this.props.schema.okText&&window.alert(this.getText(this.props.schema.okText))}catch(o){this.props.schema.error&&this.props.schema.error[o.toString()]?window.alert(this.getText(this.props.schema.error[o.toString()])):window.alert(j.I18n.t(o.toString())||j.I18n.t("ra_Error"))}}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i,onClose:u=>this.setState({confirmDialog:!1},()=>u&&this._onClick())})}renderItem(n,i){const u=this.getIcon();return M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:Xa.fullWidth,disabled:i,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):await this._onClick()},startIcon:u||void 0},this.getText(this.props.schema.label,this.props.schema.noTranslation))}}const ki={fullWidth:{width:"100%"},slider:{marginLeft:10,marginRight:10,width:"calc(100% - 20px)"}};class qa extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_value:n})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const u=K.getValue(n.data,n.attr);return u==null||u.toString()!==parseFloat(i._value).toString()?{_value:u}:null}renderItem(n,i){const u=this.props.schema.min||0,v=this.props.schema.max||100,o=this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):"",h=[{value:u,label:u+o},{value:v,label:v+o}];return M.createElement(N.Box,{style:ki.fullWidth},this.props.schema.label?M.createElement(N.Typography,{gutterBottom:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Slider,{style:ki.slider,value:this.state._value,getAriaValueText:p=>p+o,step:this.props.schema.step||(v-u)/100,valueLabelDisplay:"auto",marks:h,min:u,max:v,disabled:!!i,onChange:p=>{const a=p.target.value;this.setState({_value:a},()=>this.onChange(this.props.attr,a))}}),this.props.schema.help?M.createElement(N.Typography,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}function ht(L,n){return L==="edit"||L==="rename"?M.createElement(Z.Edit,{style:n}):L==="delete"?M.createElement(Z.Delete,{style:n}):L==="refresh"?M.createElement(Z.Refresh,{style:n}):L==="newDevice"||L==="new"||L==="add"?M.createElement(Z.Add,{style:n}):L==="discover"||L==="search"?M.createElement(Z.Search,{style:n}):L==="unpairDevice"||L==="unpair"?M.createElement(Z.LinkOff,{style:n}):L==="pairDevice"||L==="pair"?M.createElement(Z.Link,{style:n}):L==="identify"?M.createElement(Z.NotListedLocation,{style:n}):L==="play"?M.createElement(Z.PlayArrow,{style:n}):L==="stop"?M.createElement(Z.Stop,{style:n}):L==="pause"?M.createElement(Z.Pause,{style:n}):L==="forward"||L==="next"?M.createElement(Z.FastForward,{style:n}):L==="rewind"||L==="previous"?M.createElement(Z.FastRewind,{style:n}):L==="lamp"||L==="light"?M.createElement(Z.Lightbulb,{style:n}):L==="backlight"?M.createElement(Z.Fluorescent,{style:n}):L==="dimmer"?M.createElement(Z.WbIncandescent,{style:n}):L==="socket"?M.createElement(Z.Power,{style:n}):L==="settings"?M.createElement(Z.Settings,{style:n}):L==="users"||L==="group"?M.createElement(Z.Group,{style:n}):L==="user"?M.createElement(Z.Person,{style:n}):L==="qrcode"?M.createElement(Z.QrCode,{style:n}):L==="connection"?M.createElement(Z.Wifi,{style:n}):L==="no-connection"?M.createElement(Z.WifiOff,{style:n}):L==="visible"?M.createElement(Z.Visibility,{style:n}):null}function el(L,n){return typeof n=="string"?{"@keyframes newStateAnimationOnceColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnceColor 2s ease-in-out"}:{"@keyframes newStateAnimationOnce":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnce 2s ease-in-out"}}class tl extends K{controlTimeout=null;delayedUpdate={timer:null,value:null};getObjectID(){let n=this.props.schema.oid;return n.includes("${")&&(n=this.getPattern(n,null,!0)),this.props.schema.foreign?n:`${this.props.schema.system?"system.adapter.":""}${this.props.oContext.adapterName}.${this.props.oContext.instance||0}.${n}`}async componentDidMount(){super.componentDidMount();const n=await this.props.oContext.socket.getObject(this.getObjectID()),i=this.props.schema.control||this.detectType(n);try{const u=await this.props.oContext.socket.getState(this.getObjectID());this.setState({stateValue:u?u.val:null,controlType:i,obj:n},async()=>{await this.props.oContext.socket.subscribeState(this.getObjectID(),this.onStateChanged)})}catch(u){console.error(`Cannot get state ${this.getObjectID()}: ${u}`),this.setState({controlType:i,obj:n})}}componentWillUnmount(){super.componentWillUnmount(),this.props.oContext.socket.unsubscribeState(this.getObjectID(),this.onStateChanged),this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.controlTimeout&&(clearTimeout(this.controlTimeout),this.controlTimeout=null,this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1).catch(n=>console.error(`Cannot control value: ${n.toString()}`)))}onStateChanged=(n,i)=>{let u=i?i.val:null;this.state.controlType==="button"||this.state.controlType==="switch"?(u=!!u,this.state.stateValue!==u&&this.setState({stateValue:u})):u!==null&&(this.state.controlType==="slider"||this.state.controlType==="number")?(u=parseFloat(u),console.log(`${Date.now()} Received new value: ${u}`),u!==this.state.stateValue?(this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.delayedUpdate.value=u,this.delayedUpdate.timer=setTimeout(()=>{this.setState({stateValue:this.delayedUpdate.value})},500)):this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null)):this.state.stateValue.toString()!==u.toString()&&this.setState({stateValue:u})};detectType(n){if(n=n||{},n.common=n.common||{},n.common.type==="boolean"){if(this.props.schema.controlled!==!1){if(n.common.read===!1||this.props.schema.controlled===!0)return"button";if(n.common.write||this.props.schema.controlled===!0)return"switch"}return"text"}return n.common.type==="number"&&this.props.schema.controlled!==!1?n.common.write||this.props.schema.controlled===!0?n.common.max!==void 0?"slider":"input":"text":n.common.write&&this.props.schema.controlled!==!1?"input":"text"}renderItem(n,i){var v,o,h,p,a;if(!this.state.obj)return null;let u;if(this.state.controlType==="button"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read===!1||(v=this.state.obj.common.role)!=null&&v.includes("button"))){let d=null;this.props.schema.falseImage&&(d=ht(this.props.schema.falseImage));const e=this.getText(this.props.schema.falseText||this.props.schema.label,this.props.schema.noTranslation);!e&&d?u=M.createElement(N.IconButton,{style:this.props.schema.falseTextStyle,disabled:!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},d):u=M.createElement(N.Button,{variant:this.props.schema.variant||"contained",startIcon:d,style:this.props.schema.falseTextStyle,disabled:i||!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},e||this.getObjectID().split(".").pop())}else if(this.state.controlType==="input"||!this.state.controlType&&this.state.obj.common.write&&this.state.obj.common.type==="string")u=M.createElement("div",{style:{width:"100%",display:"flex",flexDirection:"row",gap:8,alignItems:"baseline"}},M.createElement(N.TextField,{style:{flex:1},value:this.state.stateValue,variant:"standard",slotProps:{input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0},htmlInput:{readOnly:!!this.props.schema.readOnly}},onKeyUp:d=>{this.props.schema.setOnEnterKey&&d.key==="Enter"&&this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},onChange:d=>{this.setState({stateValue:d.target.value},()=>{this.props.schema.setOnEnterKey||this.props.schema.showEnterButton||(this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null,await this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},this.props.schema.controlDelay||0))})},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),this.props.schema.showEnterButton&&M.createElement(N.Button,{variant:"outlined",onClick:()=>{this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)}},this.getText(typeof this.props.schema.showEnterButton=="string"?this.props.schema.showEnterButton:"Set")));else{let d;this.props.schema.size==="normal"?d=16:this.props.schema.size==="large"?d=20:typeof this.props.schema.size=="number"&&(d=this.props.schema.size);let e=this.getText(this.props.schema.label,this.props.schema.noTranslation);const t={display:"flex",alignItems:"center",fontSize:d||"1rem",gap:8};this.props.schema.narrow||(t.width="100%",t.justifyContent="space-between"),e.trim()&&!e.trim().endsWith(":")&&this.props.schema.addColon&&(e=`${e.trim()}:`);let r;this.props.schema.blinkOnUpdate&&(r=el(this.props.oContext.theme,this.props.schema.blinkOnUpdate));let l;this.props.schema.labelIcon&&(l=M.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let s;if(e&&l?s=M.createElement("div",{style:{whiteSpace:"nowrap"}},l,e):e?s=M.createElement("div",{style:{whiteSpace:"nowrap"}},e):l&&(s=l),this.state.controlType==="switch"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read!==!1||(o=this.state.obj.common.role)!=null&&o.includes("switch"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ht(this.props.schema.trueImage,y?{marginRight:8}:void 0)),u=M.createElement(N.Switch,{checked:!!this.state.stateValue,disabled:!!this.props.schema.readOnly,onChange:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async D=>{D&&await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}),(f||c||y||m)&&(u=M.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:14}},M.createElement("span",{style:this.props.schema.falseTextStyle},f,c),u,M.createElement("span",{style:this.props.schema.trueTextStyle},m,y))),s&&(u=M.createElement("div",{style:t},s,u))}else if(this.state.controlType==="slider"||!this.state.controlType&&this.state.obj.common.type==="number"&&(this.state.obj.common.write&&(this.state.obj.common.max!==void 0||this.state.obj.common.unit==="%")||(h=this.state.obj.common.role)!=null&&h.includes("slider")||(p=this.state.obj.common.role)!=null&&p.includes("dimmer")||(a=this.state.obj.common.role)!=null&&a.includes("blind"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ht(this.props.schema.trueImage,y?{marginRight:8}:void 0));const D=this.props.schema.min===void 0?this.state.obj.common.min||0:this.props.schema.min,E=this.props.schema.max===void 0?this.state.obj.common.max===void 0?100:this.state.obj.common.max:this.props.schema.max,b=this.props.schema.step===void 0?this.state.obj.common.step||1:this.props.schema.step;u=M.createElement(N.Slider,{style:{width:"100%",flexGrow:1},min:D,max:E,disabled:!!this.props.schema.readOnly,step:b,value:this.state.stateValue,valueLabelDisplay:"auto",valueLabelFormat:g=>`${g}${this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||""}`,onChange:(g,S)=>{this.setState({stateValue:S},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{console.log(`${Date.now()} Send new value: ${this.state.stateValue}`),this.controlTimeout=null,await this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},this.props.schema.controlDelay||0)})}}),(f||c||y||m)&&(u=M.createElement("div",{style:{display:"flex",width:"100%",flexGrow:1,alignItems:"center"}},M.createElement("span",{style:{marginRight:16,...this.props.schema.falseTextStyle}},f,c),u,M.createElement("span",{style:{marginLeft:16,...this.props.schema.trueTextStyle}},m,y))),s&&(u=M.createElement("div",{style:t},s,u))}else if(this.state.obj.common.type==="number"&&this.state.obj.common.write){const c=this.props.schema.min===void 0?this.state.obj.common.min===void 0?void 0:this.state.obj.common.min:this.props.schema.min,f=this.props.schema.max===void 0?this.state.obj.common.max===void 0?void 0:this.state.obj.common.max:this.props.schema.max,m=this.props.schema.step===void 0?this.state.obj.common.step===void 0?void 0:this.state.obj.common.step:this.props.schema.step;u=M.createElement(N.TextField,{variant:"standard",style:{width:"100%"},value:this.state.stateValue,type:"number",slotProps:{htmlInput:{min:c,max:f,step:m,readOnly:!!this.props.schema.readOnly},input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0}},onChange:y=>{this.setState({stateValue:y.target.value},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null;const D=parseFloat(this.state.stateValue);await this.props.oContext.socket.setState(this.getObjectID(),D,!1)},this.props.schema.controlDelay||0)})},label:this.getText(this.props.schema.label,this.props.schema.noTranslation),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}else if(this.state.obj.common.type==="boolean"){let c=null,f,m;this.state.stateValue?(f=this.getText(this.props.schema.trueText,this.props.schema.noTranslation),this.props.schema.trueImage&&(c=ht(this.props.schema.falseImage,f?{marginRight:8}:void 0)),m=this.props.schema.trueTextStyle):(f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation),this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0)),m=this.props.schema.falseTextStyle),m=Object.assign(t,m),u=M.createElement("div",{style:m},s,M.createElement(N.Box,{style:{display:"flex",alignItems:"center",gap:8},sx:r,key:this.props.schema.blinkOnUpdate?f:void 0},c,f||(this.state.stateValue?j.I18n.t("ra_true"):j.I18n.t("ra_false"))))}else{const c=this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit;let f,m;this.state.controlType==="html"?(m=(this.state.stateValue||"").toString(),f=M.createElement("span",{dangerouslySetInnerHTML:{__html:this.state.stateValue}})):this.state.stateValue===null?(f="null",m=f):this.state.stateValue===void 0?(f="undefined",m=f):(f=this.state.stateValue.toString(),m=f),u=M.createElement("div",{style:t},s,M.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:4}},M.createElement(N.Box,{sx:r,key:this.props.schema.blinkOnUpdate?m:void 0},f),c?M.createElement("span",{style:{opacity:.7,fontSize:"smaller"}},c):null))}}return u}}const Nn={fullWidth:L=>({width:"100%",backgroundColor:L.palette.mode==="dark"?"#FFF":"#000",borderStyle:"hidden"}),primary:L=>({backgroundColor:L.palette.primary.main}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class nl extends K{renderItem(){return M.createElement(N.Box,{component:"hr",sx:j.Utils.getStyle(this.props.oContext.theme,Nn.fullWidth,this.props.schema.color==="primary"?Nn.primary:this.props.schema.color==="secondary"?Nn.secondary:{backgroundColor:this.props.schema.color||(this.props.oContext.themeType==="dark"?"#333":"#ddd")},{height:this.props.schema.color?this.props.schema.height||2:this.props.schema.height||1})})}}const il={header:L=>({width:"100%",background:L.palette.primary.main,color:L.palette.primary.contrastText,padding:"4px !important",borderRadius:"3px",marginBlockEnd:0,marginBlockStart:0})};class rl extends K{renderItem(){let n="h5";switch((this.props.schema.size||5).toString()){case"1":n="h1";break;case"2":n="h2";break;case"3":n="h3";break;case"4":n="h4";break;case"5":default:n="h5";break}return M.createElement(N.Box,{component:n,sx:il.header},this.getText(this.props.schema.label||this.props.schema.text,this.props.schema.noTranslation))}}class sl extends K{renderItem(){let n=this.props.schema.src;return n&&!n.startsWith(".")&&!n.startsWith("http")&&!n.startsWith(`adapter/${this.props.oContext.adapterName}/`)&&!n.startsWith(`./adapter/${this.props.oContext.adapterName}/`)&&(n=`adapter/${this.props.oContext.adapterName}/${n}`),M.createElement("img",{src:n,style:{cursor:this.props.schema.href?"pointer":void 0,width:"100%",height:"100%"},onClick:this.props.schema.href?()=>this.props.schema.href&&window.open(this.props.schema.href,"_blank"):null,alt:""})}}function Mi(L,n,i){return typeof i=="string"?{"@keyframes newValueAnimationOnceColor":{"0%":{color:n?`${i} !important`:i},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnceColor 2s ease-in-out"}:{"@keyframes newValueAnimationOnce":{"0%":{color:n?"#00f900 !important":"#00f900"},"80%":{color:L.palette.mode==="dark"?n?"#518851 !important":"#518851":n?"#008000 !important":"#008000"},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnce 2s ease-in-out"}}function Li(L,n){return typeof n=="string"?{"@keyframes blinkAnimationColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimationColor 2s ease-in-out infinite"}:{"@keyframes blinkAnimation":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimation 2s ease-in-out infinite"}}const Mt={label:{fontWeight:"bold",whiteSpace:"nowrap"},valueImage:{maxHeight:"100%"},valueAndUnit:{display:"flex",gap:4,alignItems:"baseline"},value:{},unit:{fontSize:"smaller",opacity:.7}};class ol extends K{renderItem(n){let i=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);this.props.schema.addColon&&typeof i=="string"&&!i.trim().endsWith(":")&&(i=`${i.trim()}:`),i&&(i.includes("
")||i.includes(""))&&(i=j.Utils.renderTextWithA(i));let u;this.props.schema.size==="normal"?u=16:this.props.schema.size==="large"?u=20:typeof this.props.schema.size=="number"&&(u=this.props.schema.size);const v={width:"100%",height:"100%",display:"flex",alignItems:"center",position:"relative",fontSize:u};this.props.schema.narrow?v.gap=8:v.justifyContent="space-between";let o,h;this.props.schema.data&&typeof this.props.schema.data=="object"&&this.props.schema.data.en?h=this.getText(this.props.schema.data):typeof this.props.schema.data=="object"||this.props.schema.data===void 0||this.props.schema.data===null?h=JSON.stringify(this.props.schema.data):typeof this.props.schema.data=="number"?(h=this.props.schema.data.toString(),this.props.oContext.isFloatComma&&(h=h.replace(".",","))):(!this.props.schema.booleanAsCheckbox||typeof this.props.schema.data!="boolean")&&(h=this.props.schema.data.toString());let p=!1;if(this.props.schema.booleanAsCheckbox&&typeof this.props.schema.data=="boolean")o=M.createElement(N.Checkbox,{checked:!!o,disabled:!0,size:this.props.schema.size==="small"?"small":this.props.schema.size==="large"?"large":void 0});else if(h.startsWith("data:image/"))o=M.createElement("div",{style:{...Mt.value,...Mt.valueImage,...this.props.schema.styleValue||void 0}},M.createElement(j.Icon,{src:h}));else{const t={...Mt.value,...this.props.schema.styleValue||void 0};this.props.schema.html?o=M.createElement("div",{style:t,dangerouslySetInnerHTML:{__html:h}}):Array.isArray(this.props.schema.data)?(p=!0,o=M.createElement("div",{style:t},this.props.schema.data.map((r,l)=>M.createElement("div",{key:l},typeof r=="object"||r===null||r===void 0?JSON.stringify(r):r)))):h.includes(` -`)?(p=!0,o=M.createElement("div",{style:t},j.Utils.renderTextWithA(h))):o=M.createElement("div",{style:t},h)}if(this.props.schema.blinkOnUpdate&&this.props.schema.blink){const t=Mi(this.props.oContext.theme,!0,this.props.schema.blinkOnUpdate),r=Li(this.props.oContext.theme,this.props.schema.blink);o=M.createElement(N.Box,{key:h,sx:{...t,...r}},o)}else if(this.props.schema.blinkOnUpdate){const t=Mi(this.props.oContext.theme,!1,this.props.schema.blinkOnUpdate);o=M.createElement(N.Box,{key:h,sx:t},o)}else if(this.props.schema.blink){const t=Li(this.props.oContext.theme,this.props.schema.blink);o=M.createElement(N.Box,{sx:t},o)}this.props.schema.unit&&(o=M.createElement("div",{style:Mt.valueAndUnit},o,M.createElement("div",{style:{...Mt.unit,...this.props.schema.styleUnit||void 0}},this.getText(this.props.schema.unit,this.props.schema.noTranslation))));let a;this.props.schema.labelIcon&&(a=M.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let d;this.props.schema.copyToClipboard&&(d=M.createElement(Z.ContentCopy,{className:"staticCopyButton",style:{position:"absolute",top:"calc(50% - 12px)",right:0,cursor:"pointer"},onClick:()=>{j.Utils.copyToClipboard(h),window.alert(j.I18n.t("ra_Copied"))}}));const e={"& .staticCopyButton":{display:"none"},"& .staticCopyButton:action":{transform:"scale(0.9)"},"&:hover .staticCopyButton":{display:"block"}};return this.props.schema.highlight&&(e["&:hover"]={backgroundColor:this.props.oContext.themeType==="dark"?"#51515180":"#b8b8b880"}),p&&(v.alignItems="top"),M.createElement(N.Box,{component:"div",style:v,sx:e},M.createElement("div",{style:{...Mt.label,...this.props.schema.styleLabel||void 0}},a,i),o,d)}}const Ii={fullWidth:{height:"100%",width:"100%"},link:L=>({textDecoration:"underline",color:L.palette.mode==="dark"?"#4dabf5":"#254e72",cursor:"pointer"})};function Fi(L,n,i){let u,v="";L?L.toString().startsWith("#")||L.toString().startsWith("/")?(u=n||"_self",v=L):L.startsWith("http://")||L.startsWith("https://")?(u=n||"_blank",v=L):(v=`#tab-instances/config/${i}/${L}`,u=n||"_self"):(v=`#tab-instances/config/${i}`,u=n||"_self"),u==="_self"?setTimeout(o=>{o.startsWith("#")?window.location.hash=o:o.startsWith("/")?v=`${window.location.protocol}:${window.location.host}${v}`:(o.startsWith("http://")||o.startsWith("https://"))&&(window.location.href=o)},100,v):(v.startsWith("#")?v=`${window.location.protocol}:${window.location.host}${window.location.pathname}${v}`:v.startsWith("/")&&(v=`${window.location.protocol}:${window.location.host}${v}`),window.open(v,u))}class Oi extends K{renderItem(n,i){if(this.props.schema.button){const v=this.getIcon();return M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ii.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i,startIcon:v,onClick:this.props.schema.href?()=>{const o=this.props.schema.href?this.getText(this.props.schema.href,!0):null;o&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:o,target:this.props.schema.target,close:this.props.schema.close}):Fi(o,this.props.schema.target,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation))}let u=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);return u&&(u.includes("")||u.includes(""))&&(u=j.Utils.renderTextWithA(u)),M.createElement(N.Box,{component:"span",style:{...this.props.schema.controlStyle||void 0},sx:this.props.schema.href?Ii.link:void 0,onClick:this.props.schema.href?()=>{const v=this.props.schema.href?this.getText(this.props.schema.href,!0):null;v&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:v,target:this.props.schema.target||"_blank",close:this.props.schema.close}):Fi(v,this.props.schema.target||"_blank",`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},u)}}const Bn=1024*1024,fe={paper:{width:"100%",marginBottom:16,backgroundColor:"rgba(255, 255, 255, 0.1)"},headerText:{width:"100%"},table:{minWidth:750},label:{display:"flex",justifyContent:"space-between"},title:{flex:"1 1 100%"},rootTool:{paddingLeft:16,paddingRight:8},silver:{opacity:.2},flex:{display:"flex",alignItems:"baseline"},filteredOut:{padding:10,display:"flex",textAlign:"center"},buttonEmpty:{width:34,display:"inline-block"},buttonCell:{whiteSpace:"nowrap"},dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},uploadDiv:{position:"relative",width:"100%",minHeight:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",minHeight:300,position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},tooltip:{pointerEvents:"none"}};function al(L,n,i){n=n||"key";const u=[];return Object.keys(L).forEach(v=>{const o={};o[n]=v,i?(o[i]=L[v],u.push(o)):u.push(Object.assign(o,L[v]))}),u}function Ri(L,n,i){n=n||"key";const u={};return L.forEach(v=>{let o=v[n];o==null&&(o=""),delete v[n],i?u[o]=v[i]:u[o]=v}),u}function ll(L,n){let i="";for(let u=0;u{i.filter&&(this.filterRefs[i.attr]=dt.createRef())}),this.refDiv=M.createRef()}async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr)||[];let i;if(this.props.schema.objKeyName?i=al(n,this.props.schema.objKeyName,this.props.schema.objValueName):i=n,Array.isArray(i)||(i=[]),this.props.schema.encryptedAttributes){const u=await this.props.oContext.socket.getCompactSystemConfig();this.secret=(u==null?void 0:u.native.secret)||this.secret,n.forEach(v=>{this.props.schema.encryptedAttributes.forEach(o=>{v[o]&&(v[o]=ul(this.secret,v[o]))})})}this.setState({value:i,visibleValue:null,orderBy:"",order:"asc",iteration:0,filterOn:[],width:0},()=>this.validateUniqueProps())}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),super.componentWillUnmount()}itemTable(n,i,u){var p;const{schema:v}=this.props,o=(p=v.items)==null?void 0:p.find(a=>a.attr===n);if(!o)return null;const h={items:{[n]:o}};return M.createElement($t,{oContext:this.props.oContext,alive:this.props.alive,arrayIndex:u,changed:this.props.changed,common:this.props.common,expertMode:this.props.expertMode,custom:!0,data:i,globalData:this.props.data,index:u+this.state.iteration,onChange:(a,d)=>{const e=JSON.parse(JSON.stringify(this.state.value));e[u][a]=d,this.setState({value:e},()=>{this.validateUniqueProps(),this.onChangeWrapper(e,!0)})},onError:(a,d)=>this.onError(a,d),originalData:this.props.originalData,schema:h,table:!0,themeName:this.props.themeName})}validateUniqueProps(){if(this.props.schema.uniqueColumns)for(const n of this.props.schema.uniqueColumns){const i=[];this.state.value.find(v=>{const o=v[n];return i.includes(o)?(this.onError(n,"is not unique"),this.setState({errorMessage:j.I18n.t('Non-allowed duplicate entry "%s" in column "%s"',o,n)}),!0):(i.push(o),!1)})||(this.onError(n,null),this.setState({errorMessage:""}))}}static descendingComparator(n,i,u){return i[u]n[u]?1:0}static getComparator(n,i){return n==="desc"?(u,v)=>Ve.descendingComparator(u,v,i):(u,v)=>-Ve.descendingComparator(u,v,i)}static getFilterValue(n){var i,u,v;return(v=(u=(i=n==null?void 0:n.current)==null?void 0:i.children[0])==null?void 0:u.children[0])==null?void 0:v.value}static setFilterValue(n,i){return n.current.children[0].children[0].value=i}handleRequestSort=(n,i=!1)=>{const{order:u,orderBy:v}=this.state,h=i?u:v===n&&u==="asc"?"desc":"asc",p=this.stableSort(h,n);JSON.stringify(p)!==JSON.stringify(this.state.value)&&this.setState({value:p,order:h,orderBy:n,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,p))};stableSort=(n,i)=>{const{value:u}=this.state,v=Ve.getComparator(n,i),o=u.map((h,p)=>({el:h,index:p}));return o.sort((h,p)=>{const a=v(h.el,p.el);return a!==0?a:h.index-p.index}),o.map(h=>h.el)};renderShowHideFilter(n){return n.filter?M.createElement(N.IconButton,{title:j.I18n.t("ra_Show/hide filter input"),size:"small",onClick:()=>{const i=[...this.state.filterOn],u=this.state.filterOn.indexOf(n.attr);u===-1?i.push(n.attr):i.splice(u,1),this.setState({filterOn:i},()=>{u&&Ve.getFilterValue(this.filterRefs[n.attr])&&(Ve.setFilterValue(this.filterRefs[n.attr],""),this.applyFilter())})}},this.state.filterOn.includes(n.attr)?M.createElement(Z.FilterAltOff,null):M.createElement(Z.FilterAlt,null)):null}renderImportExportButtons(n){return M.createElement(M.Fragment,null,!n.noDelete&&n.import?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Import data from %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.setState({showImportDialog:!0})},M.createElement(Z.UploadFile,null))):null,n.export?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Export data to %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onExport()},M.createElement(Z.Download,null))):null,n.noDelete?null:M.createElement(N.IconButton,{disabled:!0,size:"small"},M.createElement(Z.Delete,null)))}renderAddButton(n){return M.createElement(N.Tooltip,{title:n?j.I18n.t("ra_Cannot add items with set filter"):j.I18n.t("ra_Add row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",color:"primary",disabled:!!n&&!this.props.schema.allowAddByFilter,onClick:this.onAdd},M.createElement(Z.Add,null))))}enhancedTableHead(n,i){var h;const{schema:u}=this.props,{order:v,orderBy:o}=this.state;return M.createElement(N.TableHead,null,M.createElement(N.TableRow,null,(h=u.items)==null?void 0:h.map((p,a)=>this.renderOneFilter({schema:u,style:{width:p.width},showAddButton:!a&&!u.noDelete,headCell:p,order:v,orderBy:o,index:a,doAnyFilterSet:i})),!u.noDelete&&M.createElement(N.TableCell,{style:{paddingLeft:20,paddingRight:20,width:n,textAlign:"right"},padding:"checkbox"},this.renderImportExportButtons(u))))}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onExport(){const{schema:n}=this.props,{value:i}=this.state,v=[n.items.map(p=>p.attr).join(";")];i.forEach(p=>{const a=[];n.items.forEach(d=>{var e;(e=p[d.attr])!=null&&e.includes(";")?a.push(`"${p[d.attr]}"`):a.push(p[d.attr]===void 0||p[d.attr]===null?"":p[d.attr])}),v.push(a.join(";"))});const o=document.createElement("a");o.setAttribute("href",`data:text/csv;charset=utf-8,${encodeURIComponent(v.join(` -`))}`);const h=new Date;o.setAttribute("download",`${h.getFullYear()}_${(h.getMonth()+1).toString().padStart(2,"0")}_${h.getDate().toString().padStart(2,"0")}_${this.props.oContext.adapterName}.${this.props.oContext.instance}_${this.props.attr}.csv`),o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o)}onImport(n){var h;const i=n.split(` -`).map(p=>p.replace("\r","").trim()),{schema:u}=this.props,v=i.shift().split(";").filter(p=>p&&u.items.find(a=>a.attr===p)),o=[];i.forEach(p=>{const a=p.split(";"),d={};for(let e=0;es.attr===v[e]);l&&l.type==="number"?r=parseFloat(t):r=t}else r=t;d[v[e]]=r}o.push(d)}),o.length?(h=this.state.value)!=null&&h.length?this.setState({showTypeOfImportDialog:o,showImportDialog:!1}):this.setState({value:o,showImportDialog:!1}):window.alert("ra_No data found in file")}onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),u=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof u[this.props.schema.clone]=="string"){let v=1,o=u[this.props.schema.clone];const h=o.match(/(\d+)$/);for(h?(o=o.replace(h[0],""),v=parseInt(h[0],10)+1):o+="_";i.find(p=>p[this.props.schema.clone]===o+v.toString());)v++;u[this.props.schema.clone]=`${u[this.props.schema.clone]}_${v}`}i.splice(n,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onChangeWrapper=(n,i)=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout((u,v)=>{this.typingTimer=null;let o;if(this.props.schema.encryptedAttributes){const h=JSON.parse(JSON.stringify(u));if(h.forEach(p=>{this.props.schema.encryptedAttributes.forEach(a=>{p[a]&&(p[a]=ll(this.secret,p[a]))})}),this.props.schema.objKeyName){const p=Ri(h,this.props.schema.objKeyName,this.props.schema.objValueName);o=this.onChange(this.props.attr,p)}else o=this.onChange(this.props.attr,h)}else if(this.props.schema.objKeyName){const h=Ri(JSON.parse(JSON.stringify(u)),this.props.schema.objKeyName,this.props.schema.objValueName);o=this.onChange(this.props.attr,h)}else o=this.onChange(this.props.attr,u);o instanceof Promise&&o.catch(h=>console.error(`Cannot save: ${h}`)),v&&(this.applyFilter(!1,u),this.handleRequestSort(this.state.orderBy,!0))},300,n,i)};onAdd=()=>{var v;const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),u=(v=n.items)==null?void 0:v.reduce((o,h)=>{let p;return h.defaultFunc?this.props.custom?p=h.defaultFunc?this.executeCustom(h.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:p=h.defaultFunc?this.execute(h.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:p=h.default===void 0?null:h.default,o[h.attr]=p,o},{});i.push(u),this.setState({value:i},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};isAnyFilterSet(){return!!Object.keys(this.filterRefs).find(n=>Ve.getFilterValue(this.filterRefs[n]))}applyFilter=(n,i,u)=>{i=i||this.state.value;let v=i.map((o,h)=>h);if(Object.keys(this.filterRefs).forEach(o=>{let h=Ve.getFilterValue(this.filterRefs[o]);!n&&h?(h=h.toLowerCase(),v=v.filter(p=>i[p]&&i[p][o]&&i[p][o].toLowerCase().includes(h))):this.filterRefs[o].current&&Ve.setFilterValue(this.filterRefs[o],"")}),v.length===i.length&&(v=null),v===null&&this.state.visibleValue===null){u&&u();return}JSON.stringify(v)!==JSON.stringify(this.state.visibleValue)?this.setState({visibleValue:v},()=>u&&u()):u&&u()};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n-1,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n+1,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onDrop(n){const i=n[0],u=new FileReader;u.onabort=()=>console.log("file reading was aborted"),u.onerror=()=>console.log("file reading has failed"),u.onload=()=>{if(i.size>Bn){window.alert(j.I18n.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(Bn/1024)));return}const v=new Uint8Array(u.result).reduce((o,h)=>o+String.fromCharCode(h),"");this.onImport(v)},u.readAsArrayBuffer(i)}showTypeOfImportDialog(){return this.state.showTypeOfImportDialog?M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showTypeOfImportDialog:!1}),maxWidth:"md"},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Append or replace?")),M.createElement(N.DialogContent,null,j.I18n.t("ra_Append %s entries or replace existing?",this.state.showTypeOfImportDialog.length)),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",color:"primary",autoFocus:!0,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.value));this.state.showTypeOfImportDialog.forEach(i=>n.push(i)),this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Append")),M.createElement(N.Button,{variant:"contained",color:"secondary",autoFocus:!0,onClick:()=>{const n=this.state.showTypeOfImportDialog;this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Replace")))):null}showImportDialog(){return this.state.showImportDialog?M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showImportDialog:!1}),sx:{"& .MuiDialog-paper":{minHeight:500}},maxWidth:"md",fullWidth:!0},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Import from %s","CSV")),M.createElement(N.DialogContent,null,M.createElement(Pi,{multiple:!1,accept:{"text/csv":[".csv"]},maxSize:Bn,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(n,i)=>{this.setState({uploadFile:!1}),n.length?this.onDrop(n):window.alert(i&&i[0]&&i[0].errors&&i[0].errors[0]&&i[0].errors[0].message||j.I18n.t("ra_Cannot upload"))}},({getRootProps:n,getInputProps:i})=>M.createElement("div",{style:{...fe.uploadDiv,...this.state.uploadFile==="dragging"?fe.uploadDivDragging:void 0,...fe.dropZone,...this.state.icon?void 0:fe.dropZoneEmpty},...n()},M.createElement("input",{...i()}),M.createElement("div",{style:fe.uploadCenterDiv},M.createElement("div",{style:fe.uploadCenterTextAndIcon},M.createElement(Z.UploadFile,{style:fe.uploadCenterIcon}),M.createElement("div",{style:fe.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog"))))))),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({showImportDialog:!1}),color:"primary",startIcon:M.createElement(Z.Close,null)},j.I18n.t("Cancel")))):null}renderOneFilter(n){return M.createElement(N.TableCell,{key:`${n.headCell.attr}_${n.index}`,style:n.style,align:"left",sortDirection:n.orderBy===n.headCell.attr?n.order:!1},M.createElement("div",{style:{...fe.flex,...n.schema.showFirstAddOnTop?{flexDirection:"column"}:void 0}},n.showAddButton?this.renderAddButton(n.doAnyFilterSet):null,n.headCell.sort&&M.createElement(N.TableSortLabel,{active:!0,style:n.orderBy!==n.headCell.attr?fe.silver:void 0,direction:n.orderBy===n.headCell.attr?n.order:"asc",onClick:()=>this.handleRequestSort(n.headCell.attr)}),n.headCell.filter&&this.state.filterOn.includes(n.headCell.attr)?M.createElement(N.TextField,{variant:"standard",ref:this.filterRefs[n.headCell.attr],onChange:()=>this.applyFilter(),title:j.I18n.t("ra_You can filter entries by entering here some text"),slotProps:{input:{endAdornment:Ve.getFilterValue(this.filterRefs[n.headCell.attr])&&M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{size:"small",tabIndex:-1,onClick:()=>{Ve.setFilterValue(this.filterRefs[n.headCell.attr],""),this.applyFilter()}},M.createElement(Z.Close,null)))}},fullWidth:!0,placeholder:this.getText(n.headCell.title)}):M.createElement("span",{style:fe.headerText},this.getText(n.headCell.title)),this.renderShowHideFilter(n.headCell)))}enhancedFilterCard(){var h;const{schema:n}=this.props,{order:i,orderBy:u}=this.state;let v;this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1});const o=!n.noDelete&&n.import||n.export;return o||n.items.find(p=>p.sort||p.filter)?M.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Accordion,{style:fe.paper},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null)},M.createElement(N.Typography,null,j.I18n.t("ra_Filter and Data Actions"))),M.createElement(N.AccordionDetails,null,M.createElement(N.Table,null,M.createElement(N.TableBody,null,((h=n.items)==null?void 0:h.find(p=>p.sort||p.filter))&&n.items.map((p,a)=>M.createElement(N.TableRow,{key:`${p.attr}_${a}`},this.renderOneFilter({schema:n,style:v,showAddButton:!1,headCell:p,order:i,orderBy:u,index:a,doAnyFilterSet:!1}))),o?M.createElement(N.TableRow,null,M.createElement(N.TableCell,{align:"left",style:v},M.createElement("span",{style:fe.headerText},j.I18n.t("ra_Actions"))),M.createElement(N.TableCell,{style:v},this.renderImportExportButtons(n))):null))))))):null}enhancedBottomCard(){const{schema:n}=this.props;let i;this.props.schema.compact&&(i={paddingTop:1,paddingBottom:1});const u=this.isAnyFilterSet();return M.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Table,null,M.createElement(N.TableBody,null,M.createElement(N.TableRow,null,M.createElement(N.TableCell,{colSpan:n.items.length+1,style:i},this.renderAddButton(u))))))))}renderCards(){const{schema:n}=this.props;let{visibleValue:i}=this.state,u;this.props.schema.compact&&(u={paddingTop:1,paddingBottom:1}),i||=this.state.value.map((o,h)=>h);const v=this.isAnyFilterSet();return M.createElement(N.Grid2,{container:!0},this.showImportDialog(),this.showTypeOfImportDialog(),this.enhancedFilterCard(),i.map((o,h)=>{var p;return M.createElement(N.Grid2,{key:`${o}_${h}`,size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Table,null,M.createElement(N.TableBody,null,(p=n.items)==null?void 0:p.map(a=>M.createElement(N.TableRow,{key:`${a.attr}_${o}`},M.createElement(N.TableCell,{align:"left",style:u},M.createElement("span",{style:fe.headerText},this.getText(a.title))),M.createElement(N.TableCell,{align:"left",style:u},this.itemTable(a.attr,this.state.value[o],o)))),!n.noDelete&&M.createElement(N.TableRow,null,M.createElement(N.TableCell,{align:"left",style:u},M.createElement("span",{style:fe.headerText},this.getText("Actions"))),M.createElement(N.TableCell,{align:"left",style:u},!v&&!this.state.orderBy?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(o),disabled:h===0},M.createElement(Z.ArrowUpward,null)))):null,!v&&!this.state.orderBy?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move down"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveDown(o),disabled:h===i.length-1},M.createElement(Z.ArrowDownward,null)))):null,M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(o)},M.createElement(Z.Delete,null))),this.props.schema.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(o)},M.createElement(Z.ContentCopy,null))):null)))))))}),this.enhancedBottomCard())}renderTable(){const{schema:n}=this.props;let{visibleValue:i}=this.state;i=i||this.state.value.map((o,h)=>h);const u=this.isAnyFilterSet();let v;return this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1}),M.createElement(N.Paper,{style:fe.paper},this.showImportDialog(),this.showTypeOfImportDialog(),n.label?M.createElement("div",{style:fe.label},M.createElement(N.Toolbar,{variant:"dense",style:fe.rootTool},M.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)))):null,M.createElement(N.TableContainer,null,M.createElement(N.Table,{style:fe.table,size:"small"},this.enhancedTableHead(!u&&!this.state.orderBy?120:64,u),M.createElement(N.TableBody,null,i.map((o,h)=>{var p;return M.createElement(N.TableRow,{hover:!0,key:`${o}_${h}`},(p=n.items)==null?void 0:p.map(a=>M.createElement(N.TableCell,{key:`${a.attr}_${o}`,align:"left",style:v},this.itemTable(a.attr,this.state.value[o],o))),!n.noDelete&&M.createElement(N.TableCell,{align:"left",style:{...v,...fe.buttonCell}},!u&&!this.state.orderBy?h?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(o)},M.createElement(Z.ArrowUpward,null))):M.createElement("div",{style:fe.buttonEmpty}):null,!u&&!this.state.orderBy?hthis.onMoveDown(o)},M.createElement(Z.ArrowDownward,null))):M.createElement("div",{style:fe.buttonEmpty}):null,M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(o)},M.createElement(Z.Delete,null))),this.props.schema.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(o)},M.createElement(Z.ContentCopy,null))):null))}),!n.noDelete&&i.length>=(n.showSecondAddAt||5)?M.createElement(N.TableRow,null,M.createElement(N.TableCell,{colSpan:n.items.length+1,style:{...v}},this.renderAddButton(u))):null)),!i.length&&this.state.value.length?M.createElement("div",{style:fe.filteredOut},M.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},j.I18n.t("ra_All items are filtered out"),M.createElement(N.IconButton,{size:"small",onClick:()=>this.applyFilter(!0)},M.createElement(Z.Close,null)))):null),n.help?M.createElement(N.FormHelperText,{style:{paddingLeft:16}},this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null,this.state.errorMessage?M.createElement("div",{style:{display:"flex",padding:"5px"}},M.createElement(Z.Warning,{color:"error"}),M.createElement("span",{style:{color:"red",alignSelf:"center"}},this.state.errorMessage)):null)}componentDidUpdate(){var n;(n=this.refDiv.current)!=null&&n.clientWidth&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}getCurrentBreakpoint(){return this.state.width?this.state.width<600?"xs":this.state.width<900?"sm":this.state.width<1200?"md":this.state.width<1536?"lg":"xl":"md"}renderItem(){const{schema:n}=this.props;if(!this.state.value||!Array.isArray(this.state.value))return null;const i=this.getCurrentBreakpoint();let u;return i&&(n.useCardFor||["xs"]).includes(i)?u=this.renderCards():u=this.renderTable(),M.createElement("div",{ref:this.refDiv,style:{width:"100%"}},u)}}const ln={indeterminate:{opacity:.5},label:{width:"100%",fontSize:14,marginBottom:2},helper:{width:"100%",fontSize:12},error:{width:"100%",fontSize:12,color:"#FF0000"}};class hl extends K{updateTimeout=null;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({value:n,oldValue:n,jsonError:!1});return}this.setState({value:n,oldValue:n,jsonError:this.validateJson(n)})}validateJson(n){let i=!1;if(this.props.schema.validateJson&&(n||!this.props.schema.allowEmpty))try{JSON.parse(n)}catch(u){console.log("Error in JSON",u),i=!0}return i}static getDerivedStateFromProps(n,i){if(n.oContext.multiEdit&&i.value===K.DIFFERENT_VALUE)return{value:K.DIFFERENT_VALUE};let u=K.getValue(n.data,n.attr);return u!=null&&(u=u.toString()),u==null||u!==i.value&&u!==i.oldValue?{value:u}:null}renderItem(n,i){const u=Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE;if(this.props.schema.time){let h="";return typeof this.state.value=="number"?this.state.value&&this.state.value<9466596e5?h=new Date(this.state.value*1e3).toLocaleString():h=new Date(this.state.value).toLocaleString():typeof this.state.value=="string"&&(h=new Date(this.state.value).toLocaleString()),M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:h,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{readOnly:!0}},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=null),u){const h=K.getValue(this.props.data,this.props.attr),p=(h==null?void 0:h.filter(a=>a||a===0).map(a=>({label:a.toString()||"",value:a})))||[];return p.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),M.createElement(N.Autocomplete,{style:ln.indeterminate,fullWidth:!0,value:p[0],onChange:(a,d)=>{const e=d?d.value:"",t=this.onChange(this.props.attr,e,()=>{this.setState({value:e,oldValue:e,jsonError:this.validateJson(d)})});t instanceof Promise&&t.catch(r=>console.error(`Cannot set value: ${r}`))},options:p,getOptionLabel:a=>a.label,renderInput:a=>M.createElement(N.TextField,{variant:"standard",...a,error:!!n,placeholder:this.getText(this.props.schema.placeholder),slotProps:{htmlInput:{...a.inputProps,maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}let v,o;if((this.props.schema.readOnly||i)&&this.props.schema.copyToClipboard?(this.props.schema.minRows>1&&(o={position:"absolute",right:3,top:20,zIndex:1e3}),v=M.createElement(N.IconButton,{tabIndex:-1,style:o,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.value),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null))):!this.props.schema.readOnly&&!i&&this.state.value&&!this.props.schema.noClearButton&&(this.props.schema.minRows>1&&(o={position:"absolute",right:3,top:20,zIndex:1e3}),v=M.createElement(N.IconButton,{style:o,size:"small",tabIndex:-1,onClick:()=>this.setState({value:"",oldValue:this.state.value},()=>this.onChange(this.props.attr,""))},M.createElement(Z.Close,null)),this.props.schema.minRows<=1&&(v=M.createElement(N.InputAdornment,{position:"end"},v))),this.props.schema.minRows>1){const h=this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation);return M.createElement("div",{style:{width:"100%",position:"relative"}},this.props.schema.label?M.createElement("div",{style:ln.label},this.getText(this.props.schema.label)):null,M.createElement(N.TextareaAutosize,{style:{width:"100%",resize:"vertical",backgroundColor:this.props.oContext.themeType==="dark"?"#363636":"#cccccc",color:this.props.oContext.themeType==="dark"?"#fff":"#111"},minRows:this.props.schema.minRows,maxRows:this.props.schema.maxRows,value:this.state.value===null||this.state.value===void 0?"":this.state.value,disabled:!!i,readOnly:this.props.schema.readOnly||!1,onChange:p=>{const a=p.target.value;this.setState({value:a,oldValue:this.state.value,jsonError:this.validateJson(a)},()=>this.onChange(this.props.attr,a||""))},placeholder:this.getText(this.props.schema.placeholder)}),h||n||this.state.jsonError?M.createElement("div",{style:n?ln.error:ln.helper},n||(this.state.jsonError?j.I18n.t("ra_Invalid JSON"):h)):null)}return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:v}},onChange:h=>{const p=h.target.value;this.setState({value:p,oldValue:this.state.value,jsonError:this.validateJson(p)},()=>this.onChange(this.props.attr,p))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const cl={fullWidth:{width:"100%"}};class dl extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>{if(typeof i=="object"){const u=i;this.setState({text:u.text||"",style:u.style,icon:u.icon,iconStyle:u.iconStyle})}else typeof i=="string"&&this.setState({text:i||""})}).catch(i=>console.error(`Cannot send command: ${i}`))}}getLocalContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const i=this.getLocalContext();(i!==this.localContext||!this.initialized)&&(this.localContext=i,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}if(this.state.text===void 0)return null;let n=null;return this.state.icon&&(n=ht(this.state.icon,{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}),n||(n=M.createElement(j.Icon,{src:this.state.icon,style:{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}}))),this.props.schema.container==="text"?M.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.text),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null)):void 0}},value:this.state.text,label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):M.createElement("div",{style:{...cl.fullWidth,...this.state.style||void 0}},n,this.props.schema.container==="html"?M.createElement("span",{dangerouslySetInnerHTML:{__html:this.state.text||""}}):this.state.text)}}class pl extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){const u=this.props.schema.returnFormat!=="HH:mm:ss",v=new Date(Date.parse(`Thu, 01 Jan 1970 ${this.state.value||"00:00:00"}`));return M.createElement(Wi.TimePicker,{sx:o=>({width:"100%",borderBottom:`1px solid ${o.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${o.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),ampm:this.props.oContext.systemConfig.dateFormat.includes("/"),timeSteps:this.props.schema.timeSteps||this.props.schema.timesteps||{hours:1,minutes:5,seconds:5},format:this.props.schema.format||"HH:mm:ss",disabled:!!i,value:v,onChange:o=>{let h;h=o instanceof Date?o.toTimeString().split(" ")[0]:o.toTimeString(),u&&(h=h.split(":").slice(0,2).join(":")),this.setState({value:h},()=>this.onChange(this.props.attr,this.state.value))},views:this.props.schema.views||["hours","minutes","seconds"],label:this.getText(this.props.schema.label)})}}function fl(L,n){let i;return n&&L.substring(0,n.length)===n?i=L.substring(n.length+1):i=L,i=i.replace(/\./g,"/").replace(/_/g," "),i}class gl extends K{componentDidMount(){var i;super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);if(!n&&((i=this.props.customObj)!=null&&i._id)){const u=fl(this.props.customObj._id,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`);this.setState({value:u})}else this.setState({value:n||""})}renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},value:this.state.value,error:!!n,disabled:i,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),onChange:u=>{const v=u.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,v))}})}}class ml extends K{async componentDidMount(){var i;super.componentDidMount();const n=await this.props.oContext.socket.getObject("system.meta.uuid");this.setState({uuid:((i=n==null?void 0:n.native)==null?void 0:i.uuid)||"unknown"})}renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,error:!!n,disabled:!!i,slotProps:{htmlInput:{readOnly:!0},input:{endAdornment:M.createElement(N.IconButton,{tabIndex:-1,onClick:()=>{j.Utils.copyToClipboard(this.state.uuid),window.alert(j.I18n.t("ra_Copied %s",this.state.uuid))}},M.createElement(Z.ContentCopy,null))}},value:this.state.uuid||"",label:this.getText(this.props.schema.label)||j.I18n.t("ra_Serial number (UUID)"),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const Ni={icon:{width:16,height:16,marginRight:8}};class vl extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getUsers().then(n=>{const i={},u=j.I18n.getLanguage();this.props.schema.short?n.forEach(v=>{var o,h;return i[v._id]={color:(o=v.common)==null?void 0:o.color,icon:(h=v.common)==null?void 0:h.icon,name:j.Utils.getObjectNameFromObj(v,u)}}):n.forEach(v=>{var o,h;return i[v._id.replace(/^system\.user\./,"")]={color:(o=v.common)==null?void 0:o.color,icon:(h=v.common)==null?void 0:h.icon,name:j.Utils.getObjectNameFromObj(v,u)}}),this.setState({users:i})}).catch(n=>console.error(`Cannot get users: ${n}`))}renderItem(n,i){var v,o;const u=K.getValue(this.props.data,this.props.attr);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.state.users&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.users?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:h=>{var p,a,d;return M.createElement("span",null,this.state.users&&((p=this.state.users[h])!=null&&p.icon)?M.createElement(j.Icon,{src:this.state.users&&((a=this.state.users[h])==null?void 0:a.icon),style:Ni.icon}):null,this.state.users&&((d=this.state.users[h])==null?void 0:d.name)||h||"")},style:{color:this.state.users&&((v=this.state.users[u])==null?void 0:v.color)||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users&&((o=this.state.users[u])==null?void 0:o.color),this.props.oContext.themeType)},onChange:h=>this.onChange(this.props.attr,h.target.value)},this.state.users&&Object.keys(this.state.users).map(h=>M.createElement(N.MenuItem,{style:{color:this.state.users[h].color||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users[h].color,this.props.oContext.themeType)},key:h,value:h},this.state.users[h].icon?M.createElement(j.Icon,{src:this.state.users[h].icon,style:Ni.icon}):null,this.state.users[h].name))):M.createElement(N.TextField,{variant:"standard",error:!!n,disabled:!!i,value:u,onChange:h=>this.onChange(this.props.attr,h.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class yl extends K{async componentDidMount(){super.componentDidMount();const n=await ss(()=>import("./index-CttBOMyq.js").then(i=>i.i),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url);this.setState({QRCode:n.default})}renderItem(){const n=this.state.QRCode;return n?M.createElement(n,{value:this.props.schema.data,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}):null}}const bl={accordion:$s,alive:Ts,autocomplete:_s,autocompleteSendTo:ks,certCollection:Fs,certificate:Ls,certificates:Is,checkbox:Os,checkLicense:ct,chip:fi,chips:fi,color:Ws,coordinates:Hs,cron:Ms,custom:Ut,datePicker:zs,deviceManager:js,divider:nl,file:eo,fileSelector:mn,func:to,header:rl,image:ro,imageSendTo:io,instance:so,interface:oo,ip:no,jsonEditor:Fa,language:Ra,license:Na,number:Ba,oauth2:Pa,objectId:Wa,password:Ha,pattern:za,port:Va,qrCode:yl,room:Ua,select:Ka,selectSendTo:Ya,sendto:_i,sendTo:_i,setState:Za,slider:qa,state:tl,staticImage:sl,staticInfo:ol,staticLink:Oi,staticText:Oi,table:Ve,text:hl,textSendTo:dl,timePicker:pl,topic:gl,uuid:ml,user:vl},Qe={fullWidth:{width:"100%"},paper:{margin:1,width:"auto !important",overflowY:"auto",paddingBottom:1},paperWithIcons:{height:"calc(100vh - 259px) !important"},paperWithoutIcons:{height:"calc(100vh - 235px) !important"},padding:{padding:"10px"},heading:{},primary:L=>({backgroundColor:L.palette.primary.main,color:L.palette.mode==="dark"?"inherit":"#FFF"}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class $t extends K{componentDidMount(){var n;super.componentDidMount(),(n=this.props.schema)!=null&&n.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(`${this.props.oContext.adapterName}.${this.props.attr}`)==="true"})}renderItems(n,i){return n?Object.keys(n).map(u=>{if(this.props.oContext.multiEdit&&n[u].noMultiEdit)return null;const v=n[u].type||"panel";let o,h="Use this.props.oContext.socket!";return v==="custom"?(n[u].url?o=Ut:this.props.oContext.customs&&this.props.oContext.customs[n[u].component]?o=this.props.oContext.customs[n[u].component]:(console.error(`Cannot find custom component: ${n[u].component}`),o=K),h=this.props.oContext.socket):v==="panel"?o=$t:o=bl[v]||K,M.createElement(o,{socket:h,globalData:this.props.globalData,oContext:this.props.oContext,key:`${u}_${this.props.index===void 0?"":this.props.index}`,index:this.props.index,changed:this.props.changed,arrayIndex:this.props.arrayIndex,expertMode:this.props.expertMode,commandRunning:this.props.commandRunning,style:Qe.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onError:this.props.onError,onChange:this.props.onChange,disabled:i,customObj:this.props.customObj,custom:this.props.custom,schema:n[u],attr:u,table:this.props.table})}):null}render(){const n=this.props.schema;if(!n)return null;const{disabled:i,hidden:u}=this.calculate(n),v=this.props.schema.items,o=this.props.schema.style||{};if(u){if(n.hideOnlyControl){const p=M.createElement(N.Grid2,{size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:j.Utils.getStyle(this.props.oContext.theme,{marginBottom:0,textAlign:"left"},o,this.props.oContext.themeType==="dark"&&n.darkStyle)});return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),p):p}return null}if(this.props.table)return this.renderItems(v,i);if(this.props.custom)return M.createElement(N.Grid2,{key:`${this.props.attr}_${this.props.index}`,container:!0,style:Qe.fullWidth,columnSpacing:2,rowSpacing:1,sx:o},this.renderItems(v,i));let h;if(n.collapsable)h=M.createElement(N.Accordion,{key:`${this.props.attr}_${this.props.index}`,style:Qe.fullWidth,expanded:!!this.state.expanded,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.oContext.adapterName}.${this.props.attr}`,this.state.expanded?"false":"true"),this.setState({expanded:!this.state.expanded})}},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,o,this.props.oContext.themeType&&n.darkStyle,n.color==="primary"?Qe.primary:n.color==="secondary"&&Qe.secondary,{width:"100%"})},M.createElement(N.Typography,{style:Qe.heading},this.getText(n.label))),M.createElement(N.AccordionDetails,null,M.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:{...o,width:"100%",padding:"10px"}},this.renderItems(v,i))));else{const p=j.Utils.getStyle(this.props.oContext.theme,this.props.style,o,{width:"100%"},this.props.isParentTab&&Qe.paper,this.props.isParentTab&&(this.props.withoutSaveButtons?this.props.withIcons?{height:"calc(100% - 88px) !important"}:{height:"calc(100% - 64px) !important"}:this.props.withIcons?Qe.paperWithIcons:Qe.paperWithoutIcons));h=M.createElement(N.Box,{component:"div",key:`${this.props.attr}_${this.props.index}`,className:this.props.className,sx:p},M.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:j.Utils.getStyle(this.props.oContext.theme,{width:"100%"},this.props.isParentTab&&Qe.padding,this.props.schema.innerStyle)},this.renderItems(v,i)))}if(!this.props.isParentTab){const p=M.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:{marginBottom:0,textAlign:"left",...o}},h);return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),p):p}return h}}const un={tabs:{height:"100%",width:"100%"},panel:{width:"100%",display:"block"},panelWithIcons:{height:"calc(100% - 72px)"},panelWithoutIcons:{height:"calc(100% - 48px)"}};class wl extends K{resizeTimeout=null;refDiv;constructor(n){super(n);let i;if(this.props.root){const u=(window.location.hash||"").replace(/^#/,"").split("/");if(u.length>=3&&u[1]==="config"){const v=u[3],o=parseInt(v,10);v&&o.toString()===v?o>=0&&o{const n=(window.location.hash||"").replace(/^#/,"").split("/");if(n.length>3&&n[1]==="config"){const i=n[3],u=parseInt(i,10);let v;u.toString()===i?u>=0&&u{this.setState({initialBreakpoint:n})},50),n}return this.state.initialBreakpoint}componentDidUpdate(){var n;!this.state.initialBreakpoint&&((n=this.refDiv.current)!=null&&n.clientWidth)&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}onMenuChange(n){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.${this.props.oContext.adapterName}`,n),this.setState({tab:n},()=>{if(this.props.root){const i=(window.location.hash||"").split("/");i.length>=3&&i[1]==="config"&&(i[3]=this.state.tab,window.location.hash=i.join("/"))}})}render(){const n=this.props.schema.items;let i=!1;const u=[];Object.keys(n).map(h=>{let p;if(n[h].expertMode&&!this.props.expertMode)return;if(this.props.custom){if(this.executeCustom(n[h].hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData))return;p=this.executeCustom(n[h].disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData)}else{if(this.execute(n[h].hidden,!1,this.props.data,this.props.index,this.props.globalData))return;p=this.execute(n[h].disabled,!1,this.props.data,this.props.index,this.props.globalData)}const a=this.getIcon(n[h].icon);i=i||!!a,u.push({icon:a,disabled:p,label:this.getText(n[h].label),name:h})}),u.find(h=>h.name===this.state.tab)||setTimeout(()=>this.setState({tab:u[0].name}),50);const v=this.getCurrentBreakpoint();let o;return v==="xs"&&u.length>2?o=M.createElement(N.Toolbar,{style:{top:2,backgroundColor:this.props.oContext.themeType==="dark"?"#222":"#DDD"},variant:"dense"},M.createElement(N.IconButton,{onClick:h=>this.setState({openMenu:h.currentTarget})},M.createElement(Z.Menu,null)),this.state.openMenu?M.createElement(N.Menu,{open:!0,anchorEl:this.state.openMenu,onClose:()=>this.setState({openMenu:null})},u.map(h=>M.createElement(N.MenuItem,{disabled:h.disabled,key:h.name,onClick:()=>{this.setState({openMenu:null},()=>this.onMenuChange(h.name))},selected:h.name===this.state.tab},i?M.createElement(N.ListItemIcon,null,h.icon):null,h.label))):null):o=M.createElement(N.Tabs,{variant:"scrollable",scrollButtons:"auto",style:this.props.schema.tabsStyle,value:this.state.tab,onChange:(h,p)=>this.onMenuChange(p)},u.map(h=>M.createElement(N.Tab,{id:h.name,wrapped:!0,disabled:h.disabled,key:h.name,value:h.name,iconPosition:this.props.schema.iconPosition||"start",icon:h.icon,label:h.label}))),M.createElement("div",{style:un.tabs,ref:this.refDiv},o,M.createElement($t,{oContext:this.props.oContext,withoutSaveButtons:this.props.withoutSaveButtons,isParentTab:!0,changed:this.props.changed,key:this.state.tab,expertMode:this.props.expertMode,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,commandRunning:this.props.commandRunning,style:{...un.panel,...i?un.panelWithIcons:un.panelWithoutIcons},common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onChange:this.props.onChange,onError:this.props.onError,customObj:this.props.customObj,custom:this.props.custom,schema:n[this.state.tab],table:this.props.table,withIcons:i}))}}const Cl={root:{width:"100%",height:"100%"}};class cn extends dt.Component{forceUpdateHandlers;errorTimeout=null;errorCached=null;oContext;constructor(n){super(n),this.state={originalData:JSON.stringify(this.props.data),changed:!1,errors:{},updateData:this.props.updateData||0,systemConfig:null,alive:!1,commandRunning:!1,schema:JSON.parse(JSON.stringify(this.props.schema))},this.forceUpdateHandlers={},this.buildDependencies(this.state.schema),this.readData()}static getDerivedStateFromProps(n,i){return n.updateData!==i.updateData?{updateData:n.updateData,originalData:JSON.stringify(n.data),schema:JSON.parse(JSON.stringify(n.schema))}:null}static async loadI18n(n,i,u){if(i===!0||i&&typeof i=="string"){const v=j.I18n.getLanguage(),o=typeof i=="string"?i:"i18n";let h=await n.fileExists(`${u}.admin`,`${o}/${v}.json`),p;if(h?p=`${o}/${v}.json`:(h=await n.fileExists(`${u}.admin`,`${o}/${v}/translations.json`),h?p=`${o}/${v}/translations.json`:v!=="en"&&(h=await n.fileExists(`${u}.admin`,`${o}/en.json`),h?p=`${o}/en.json`:(h=await n.fileExists(`${u}.admin`,`${o}/en/translations.json`),h&&(p=`${o}/en/translations.json`)))),p){const a=await n.readFile(`${u}.admin`,p);let d;a.file!==void 0?d=a.file:d=a;try{const e=JSON.parse(d);j.I18n.extendTranslations(e,v)}catch(e){return console.error(`Cannot parse language file "${u}.admin/${p}: ${e}`),""}return p}return console.warn(`Cannot find i18n for ${u} / ${p}`),""}return i&&typeof i=="object"&&j.I18n.extendTranslations(i),""}onCommandRunning=n=>this.setState({commandRunning:n});readData(){this.props.socket.getCompactSystemConfig().then(n=>this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(i=>this.setState({systemConfig:n.common,alive:!!(i&&i.val)},()=>{this.updateContext(!0),this.props.custom||this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`,this.onAlive)}))).catch(n=>console.error(`Cannot read system config: ${n}`))}onAlive=(n,i)=>{!!(i!=null&&i.val)!==this.state.alive&&this.setState({alive:!!(i!=null&&i.val)})};onChange=(n,i,u,v)=>{if(this.props.onValueChange)this.props.onValueChange(n,i,v),u&&u();else if(n&&this.props.onChange){const o={changed:JSON.stringify(n)!==this.state.originalData};this.setState(o,()=>{this.props.onChange(n,o.changed,v),u&&u()})}else v&&this.props.onChange(null,null,v)};onError=(n,i)=>{this.errorCached=this.errorCached||JSON.parse(JSON.stringify(this.state.errors));const u=this.errorCached;i?u[n]=i:delete u[n],this.errorTimeout&&clearTimeout(this.errorTimeout),JSON.stringify(u)!==JSON.stringify(this.state.errors)?this.errorTimeout=setTimeout(()=>this.setState({errors:this.errorCached},()=>{this.errorTimeout=null,this.errorCached=null,this.props.onError(!!Object.keys(this.state.errors).length)}),50):this.errorCached=null};flatten(n,i){return i=i||{},n.items&&Object.keys(n.items).forEach(u=>{i[u]=n.items[u],this.flatten(n.items[u],i)}),i}buildDependencies(n){const i=this.flatten(n);Object.keys(i).forEach(u=>{var v,o,h,p,a,d,e,t,r,l;(v=i[u].confirm)!=null&&v.alsoDependsOn&&((o=i[u].confirm)==null||o.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].confirmDependsOn=i[s].confirmDependsOn||[];const c={...i[u],attr:u};c.confirm&&(c.confirm.cancel="Undo"),i[s].confirmDependsOn.push(c)}})),(h=i[u].onChange)!=null&&h.alsoDependsOn&&((p=i[u].onChange)==null||p.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].onChangeDependsOn=i[s].onChangeDependsOn||[];const c={...i[u],attr:u};i[s].onChangeDependsOn.push(c)}})),(a=i[u].hidden)!=null&&a.alsoDependsOn&&((d=i[u].hidden)==null||d.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].hiddenDependsOn=i[s].hiddenDependsOn||[];const c={...i[u],attr:u};i[s].hiddenDependsOn.push(c)}})),(e=i[u].label)!=null&&e.alsoDependsOn&&((t=i[u].label)==null||t.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].labelDependsOn=i[s].labelDependsOn||[];const c={...i[u],attr:u};i[s].labelDependsOn.push(c)}})),(r=i[u].help)!=null&&r.alsoDependsOn&&((l=i[u].help)==null||l.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].helpDependsOn=i[s].helpDependsOn||[];const c={...i[u],attr:u};i[s].helpDependsOn.push(c)}}))})}updateContext(n){this.oContext={DeviceManager:this.props.DeviceManager,adapterName:this.props.adapterName,changeLanguage:this.changeLanguage,common:this.props.common,customs:this.props.customs,dateFormat:this.props.dateFormat,embedded:this.props.embedded,forceUpdate:this.forceAttrUpdate,imagePrefix:this.props.imagePrefix,instance:this.props.instance,instanceObj:this.props.instanceObj,isFloatComma:this.props.isFloatComma,multiEdit:this.props.multiEdit,onBackEndCommand:this.props.onBackEndCommand,onCommandRunning:this.onCommandRunning,onValueChange:this.props.onValueChange,registerOnForceUpdate:this.registerOnForceUpdate,socket:this.props.socket,systemConfig:this.state.systemConfig,theme:this.props.theme,themeType:this.props.themeType,_themeName:this.props.themeName,updateData:this.state.updateData},n&&this.forceUpdate()}renderItem(n){return n.type==="tabs"?M.createElement(wl,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,onChange:this.onChange,onError:(i,u)=>this.onError(i,u),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,expertMode:this.props.expertMode,themeName:this.props.themeName}):n.type==="panel"||!n.type?M.createElement($t,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,expertMode:this.props.expertMode,index:1e3,isParentTab:!this.props.embedded&&!this.props.withoutSaveButtons,onChange:this.onChange,onError:(i,u)=>this.onError(i,u),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,themeName:this.props.themeName}):(console.error(`Unknown item type in root: ${JSON.stringify(n)}`),null)}changeLanguage=()=>{this.forceUpdate()};forceAttrUpdate=(n,i)=>{Array.isArray(n)?n.forEach(u=>this.forceUpdateHandlers[u]&&this.forceUpdateHandlers[u](i)):this.forceUpdateHandlers[n]&&this.forceUpdateHandlers[n](i)};registerOnForceUpdate=(n,i)=>{i?this.forceUpdateHandlers[n]=i:this.forceUpdateHandlers[n]&&delete this.forceUpdateHandlers[n]};render(){return!this.state.systemConfig||!this.oContext?M.createElement(N.LinearProgress,null):(this.oContext._themeName!==this.props.themeName&&(this.oContext._themeName=this.props.themeName,setTimeout(()=>this.updateContext(!0),0)),M.createElement("div",{style:{...!this.props.embedded||this.props.withoutSaveButtons?Cl.root:void 0,...this.props.style,...this.state.schema.style}},this.renderItem(this.state.schema)))}}const Et={root:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},scroll:{height:"calc(100% - 48px)",overflowY:"auto"},exportImportButtons:{position:"absolute",top:5,right:0,zIndex:3},button:{marginRight:"5px"},tooltip:{pointerEvents:"none"}};function El(L,n){let i="";for(let u=0;u{const v=document.createElement("script");v.setAttribute("id",n),v.onload=u,v.src=L,document.getElementsByTagName("head")[0].appendChild(v)})}let xl=class extends j.Router{fileSubscribed=[];fileLangSubscribed="";secret;constructor(n){super(n),this.state={updateData:0,changed:!1,confirmDialog:!1,theme:j.Theme(n.themeName),saveConfigDialog:!1,hash:"_"},this.secret=n.secret||"",this.getInstanceObject().then(i=>this.getConfigFile().then(u=>cn.loadI18n(this.props.socket,u==null?void 0:u.i18n,this.props.adapterName).then(v=>{v&&(this.fileLangSubscribed||(this.fileLangSubscribed=v,this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange))),i?this.setState({schema:u,data:i.native,common:i.common,hash:di(JSON.stringify(u)).toString()}):window.alert(`Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`)})))}componentWillUnmount(){super.componentWillUnmount(),this.fileSubscribed.length&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileSubscribed,this.onFileChange),this.fileSubscribed=[]),this.fileLangSubscribed&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange),this.fileLangSubscribed="")}handleFileSelect=n=>{const i=n.target.files[0];if(i){const u=new FileReader;u.onload=v=>{if(!v.target)return;const o=v.target.result;try{const h=JSON.parse(o);this.setState({data:h,changed:JSON.stringify(h)!==JSON.stringify(this.state.originalData)})}catch{window.alert(j.I18n.t("[JsonConfig] Failed to parse JSON file"))}},u.readAsText(i)}else window.alert(j.I18n.t("[JsonConfig] Failed to open JSON File"))};getExportImportButtons(){return M.createElement("div",{style:Et.exportImportButtons},M.createElement(N.Tooltip,{title:this.props.t("Import settings from JSON file"),slotProps:{popper:{sx:Et.tooltip}}},M.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{const n=document.createElement("input");n.setAttribute("type","file"),n.setAttribute("id","files"),n.setAttribute("opacity",0),n.addEventListener("change",i=>this.handleFileSelect(i),!1),n.click()}},M.createElement(Z.Publish,null))),M.createElement(N.Tooltip,{title:this.props.t("Export setting to JSON file"),slotProps:{popper:{sx:Et.tooltip}}},M.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{this.state.data&&j.Utils.generateFile(`${this.props.adapterName}.${this.props.instance}.json`,this.state.data)}},M.createElement(Z.Publish,{style:{transform:"rotate(180deg)"}}))))}onFileChange=async(n,i,u)=>{var v;if(n===`${this.props.adapterName}.admin`&&u){if(i===this.fileLangSubscribed)try{await cn.loadI18n(this.props.socket,(v=this.state.schema)==null?void 0:v.i18n,this.props.adapterName),this.setState({hash:`${this.state.hash}1`})}catch{}else if(this.fileSubscribed.includes(i))try{const o=await this.getConfigFile(this.fileSubscribed[0]);this.setState({schema:o,hash:di(JSON.stringify(o)).toString()})}catch{}}};async getInstanceObject(){var n;try{const i=await this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`);if(Array.isArray(i.encryptedNative)){if(!this.secret){const u=await this.props.socket.getSystemConfig();await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js"),this.secret=u.native.secret}return(n=i.encryptedNative)==null||n.forEach(u=>{i.native[u]&&(i.native[u]=Dl(this.secret,i.native[u]))}),i}return i}catch(i){window.alert(`[JsonConfig] Cannot read instance object: ${i}`)}return null}renderDialogConfirm(){return this.state.confirmDialog?M.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Please confirm"),text:j.I18n.t("ra_Some data are not stored. Discard?"),ok:j.I18n.t("ra_Discard"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>this.setState({confirmDialog:!1},()=>n&&j.Router.doNavigate(null))}):null}async scanForInclude(n,i){if(typeof n["#include"]=="string"){const v=await this._getConfigFile(n["#include"],[...i]);return delete n["#include"],v&&(n={...n,...v}),n}const u=Object.keys(n);for(let v=0;v ${i.join(" => ")}`),null;i.push(n);try{await this.props.socket.fileExists(`${this.props.adapterName}.admin`,n)||(n="jsonConfig.json");const v=await this.props.socket.readFile(`${this.props.adapterName}.admin`,n);let o="",h="";if(v.file!==void 0&&(h=v.file),typeof h=="string")o=h;else if(h.type==="Buffer"){let p="";const a=new Uint8Array(h.data),d=a.byteLength;for(let e=0;ethis.setState({saveConfigDialog:!1},()=>n&&this.onSave(!0))}):null}findAttr(n,i){if(i=i||this.state.schema,i!=null&&i.items){if(n in i.items)return i.items[n];for(const u of Object.values(i.items)){const v=this.findAttr(n,u);if(v)return v}}return null}postProcessing(n,i,u){if(u=u||this.state.schema,!n){console.error(`Data is empty in postProcessing: ${i}, ${JSON.stringify(u)}`);return}const v=n[i];if(u.items)if(u.type==="table"){const o=v;if(!Array.isArray(o))return;for(const h of o)for(const p of u.items)this.postProcessing(h,p.attr,p)}else for(const[o,h]of Object.entries(u.items)){if(h.type==="panel"||h.type==="tabs"||h.type==="accordion")return;this.postProcessing(n,o,h)}else if(i&&typeof v=="string")if(u.type==="text")u.trim!==!1&&(n[i]=v.trim());else if(u.type==="ip")n[i]=v.trim();else if(u.type==="number"){const o=parseFloat(v.toString().replace(",","."));u.min!==void 0&&ou.max?n[i]=u.max:n[i]=o}else if(u.type==="port"){const o=parseInt(v.toString(),10);u.min!==void 0&&ou.max&&(n[i]=u.max),n[i]!==0&&o<20?n[i]=20:o>65535?n[i]=65535:n[i]=o}else u.type==="checkbox"&&(n[i]=n[i]===!0||n[i]==="true"||n[i]==="on"||n[i]===1||n[i]==="1")}async onSave(n,i){if(n){const u=await this.getInstanceObject();if(!u){console.error("Something went wrong: may be no connection?"),window.alert("Something went wrong: may be no connection?");return}if(!this.state.data||!this.state.schema)return;const v={};for(const h of Object.keys(this.state.data)){const p=this.findAttr(h);(!p||!p.doNotSave||p.type==="state")&&!h.startsWith("_")?K.setValue(u.native,h,this.state.data[h]):(K.setValue(u.native,h,null),v[h]=this.state.data[h])}try{const h=JSON.parse(JSON.stringify(u));if(Array.isArray(h.encryptedNative)){await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js");for(const p of h.encryptedNative)h.native[p]&&(h.native[p]=Al(this.secret,h.native[p]))}await this.props.socket.setObject(h._id,h)}catch(h){window.alert(`[JsonConfig] Cannot set object: ${h}`)}const o={...u.native,...v};console.log(o),this.setState({changed:!1,data:o,updateData:this.state.updateData+1,originalData:o},()=>i&&j.Router.doNavigate(null))}else this.state.changed?this.setState({confirmDialog:!0}):j.Router.doNavigate(null)}componentDidUpdate(n,i){i.changed!==this.state.changed&&this.props.configStored(!this.state.changed)}async componentDidMount(){const n=`${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;console.log(`fetch ${n}`),await fetch(n)}render(){return!this.state.data||!this.state.schema?M.createElement(N.LinearProgress,null):M.createElement("div",{style:Et.root},this.renderDialogConfirm(),this.getExportImportButtons(),this.renderSaveConfigDialog(),M.createElement(cn,{key:this.state.hash,style:Et.scroll,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,adapterName:this.props.adapterName,instance:this.props.instance,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,schema:this.state.schema,common:this.state.common,expertMode:this.props.expertMode,data:this.state.data,updateData:this.state.updateData,onError:n=>this.setState({error:n}),onChange:(n,i,u)=>{u&&this.state.error&&(window.alert(j.I18n.t("Cannot save configuration because of error in configuration")),u=!1),u&&!this.state.changed&&!i&&(u=!1),n?this.setState({data:n,changed:i,saveConfigDialog:u}):u!==void 0&&this.setState({saveConfigDialog:u})},DeviceManager:this.props.DeviceManager,theme:this.state.theme}),M.createElement(j.SaveCloseButtons,{isIFrame:!1,dense:!0,paddingLeft:0,newReact:!0,theme:this.state.theme,noTextOnButtons:this.props.width==="xs"||this.props.width==="sm"||this.props.width==="md",changed:!!(this.state.error||this.state.changed),error:!!this.state.error,onSave:n=>this.onSave(!0,n),onClose:()=>this.onSave(!1)}))}};export{K as ConfigGeneric,$t as ConfigPanel,xl as JsonConfig,cn as JsonConfigComponent}; +`,"autocompletion.css",!1),h.AcePopup=y,h.$singleLineEditor=m,h.getAriaId=l}),ace.define("ace/autocomplete/inline_screenreader",["require","exports","module"],function(i,h,v){var s=function(){function u(d){this.editor=d,this.screenReaderDiv=document.createElement("div"),this.screenReaderDiv.classList.add("ace_screenreader-only"),this.editor.container.appendChild(this.screenReaderDiv)}return u.prototype.setScreenReaderContent=function(d){for(!this.popup&&this.editor.completer&&this.editor.completer.popup&&(this.popup=this.editor.completer.popup,this.popup.renderer.on("afterRender",function(){var p=this.popup.getRow(),e=this.popup.renderer.$textLayer,t=e.element.childNodes[p-e.config.firstRow];if(t){for(var r="doc-tooltip ",l=0;l=0&&a.test(u[e]);e--)p.push(u[e]);return p.reverse().join("")},h.retrieveFollowingIdentifier=function(u,d,a){a=a||s;for(var p=[],e=d;e0)for(var g=this.popup.getFirstVisibleRow();g<=this.popup.getLastVisibleRow();g++){var S=this.popup.getData(g);S&&(!b||S.hideInlinePreview)&&this.$seen(S)}},E.prototype.$onPopupShow=function(b){this.$onPopupChange(b),this.stickySelection=!1,this.stickySelectionDelay>=0&&this.stickySelectionTimer.schedule(this.stickySelectionDelay)},E.prototype.observeLayoutChanges=function(){if(!(this.$elements||!this.editor)){window.addEventListener("resize",this.onLayoutChange,{passive:!0}),window.addEventListener("wheel",this.mousewheelListener);for(var b=this.editor.container.parentNode,g=[];b;)g.push(b),b.addEventListener("scroll",this.onLayoutChange,{passive:!0}),b=b.parentNode;this.$elements=g}},E.prototype.unObserveLayoutChanges=function(){var b=this;window.removeEventListener("resize",this.onLayoutChange,{passive:!0}),window.removeEventListener("wheel",this.mousewheelListener),this.$elements&&this.$elements.forEach(function(g){g.removeEventListener("scroll",b.onLayoutChange,{passive:!0})}),this.$elements=null},E.prototype.onLayoutChange=function(){if(!this.popup.isOpen)return this.unObserveLayoutChanges();this.$updatePopupPosition(),this.updateDocTooltip()},E.prototype.$updatePopupPosition=function(){var b=this.editor,g=b.renderer,S=g.layerConfig.lineHeight,T=g.$cursorLayer.getPixelPosition(this.base,!0);T.left-=this.popup.getTextLeftOffset();var k=b.container.getBoundingClientRect();T.top+=k.top-g.layerConfig.offset,T.left+=k.left-b.renderer.scrollLeft,T.left+=g.gutterWidth;var _={top:T.top,left:T.left};g.$ghostText&&g.$ghostTextWidget&&this.base.row===g.$ghostText.position.row&&(_.top+=g.$ghostTextWidget.el.offsetHeight);var O=b.container.getBoundingClientRect().bottom-S,$=O<_.top?{top:O,left:_.left}:_;this.popup.tryShow($,S,"bottom")||this.popup.tryShow(T,S,"top")||this.popup.show(T,S)},E.prototype.openPopup=function(b,g,S){this.$firstOpenTimer.cancel(),this.popup||this.$init(),this.inlineEnabled&&!this.inlineRenderer&&this.$initInline(),this.popup.autoSelect=this.autoSelect,this.popup.setSelectOnHover(this.setSelectOnHover);var T=this.popup.getRow(),k=this.popup.data[T];this.popup.setData(this.completions.filtered,this.completions.filterText),this.editor.textInput.setAriaOptions&&this.editor.textInput.setAriaOptions({activeDescendant:a(this.popup.getRow()),inline:this.inlineEnabled}),b.keyBinding.addKeyboardHandler(this.keyboardHandler);var _;this.stickySelection&&(_=this.popup.data.indexOf(k)),(!_||_===-1)&&(_=0),this.popup.setRow(this.autoSelect?_:-1),_===T&&k!==this.completions.filtered[_]&&this.$onPopupChange();var O=this.inlineRenderer&&this.inlineEnabled;if(_===T&&O){var $=this.popup.getData(this.popup.getRow());this.$updateGhostText($)}S||(this.popup.setTheme(b.getTheme()),this.popup.setFontSize(b.getFontSize()),this.$updatePopupPosition(),this.tooltipNode&&this.updateDocTooltip()),this.changeTimer.cancel(),this.observeLayoutChanges()},E.prototype.detach=function(){this.editor&&(this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener)),this.$firstOpenTimer.cancel(),this.changeTimer.cancel(),this.hideDocTooltip(),this.completionProvider&&this.completionProvider.detach(),this.popup&&this.popup.isOpen&&this.popup.hide(),this.popup&&this.popup.renderer&&this.popup.renderer.off("afterRender",this.$onPopupRender),this.base&&this.base.detach(),this.activated=!1,this.completionProvider=this.completions=this.base=null,this.unObserveLayoutChanges()},E.prototype.changeListener=function(b){var g=this.editor.selection.lead;(g.row!=this.base.row||g.columnthis.filterText&&b.lastIndexOf(this.filterText,0)===0)var g=this.filtered;else var g=this.all;this.filterText=b,g=this.filterCompletions(g,this.filterText),g=g.sort(function(T,k){return k.exactMatch-T.exactMatch||k.$score-T.$score||(T.caption||T.value).localeCompare(k.caption||k.value)});var S=null;g=g.filter(function(T){var k=T.snippet||T.caption||T.value;return k===S?!1:(S=k,!0)}),this.filtered=g},E.prototype.filterCompletions=function(b,g){var S=[],T=g.toUpperCase(),k=g.toLowerCase();e:for(var _=0,O;O=b[_];_++){if(O.skipFilter){O.$score=O.score,S.push(O);continue}var $=!this.ignoreCaption&&O.caption||O.value||O.snippet;if($){var A=-1,C=0,w=0,x,I;if(this.exactMatch){if(g!==$.substr(0,g.length))continue e}else{var F=$.toLowerCase().indexOf(k);if(F>-1)w=F;else for(var R=0;R=0&&(P<0||B0&&(A===-1&&(w+=10),w+=I,C|=1<",a.escapeHTML(T.caption),"
","
",a.escapeHTML(r(T.snippet))].join(""))},id:"snippetCompleter"},o=[l,e,t];h.setCompleters=function(T){o.length=0,T&&o.push.apply(o,T)},h.addCompleter=function(T){o.push(T)},h.textCompleter=e,h.keyWordCompleter=t,h.snippetCompleter=l;var c={name:"expandSnippet",exec:function(T){return s.expandWithTab(T)},bindKey:"Tab"},f=function(T,k){m(k.session.$mode)},m=function(T){typeof T=="string"&&(T=d.$modes[T]),T&&(s.files||(s.files={}),y(T.$id,T.snippetFileId),T.modes&&T.modes.forEach(m))},y=function(T,k){!k||!T||s.files[T]||(s.files[T]={},d.loadModule(k,function(_){_&&(s.files[T]=_,!_.snippets&&_.snippetText&&(_.snippets=s.parseSnippetFile(_.snippetText)),s.register(_.snippets||[],_.scope),_.includeScopes&&(s.snippetMap[_.scope].includeScopes=_.includeScopes,_.includeScopes.forEach(function(O){m("ace/mode/"+O)})))}))},D=function(T){var k=T.editor,_=k.completer&&k.completer.activated;if(T.command.name==="backspace")_&&!p.getCompletionPrefix(k)&&k.completer.detach();else if(T.command.name==="insertstring"&&!_){E=T;var O=T.editor.$liveAutocompletionDelay;O?b.delay(O):g(T)}},E,b=a.delayedCall(function(){g(E)},0),g=function(T){var k=T.editor,_=p.getCompletionPrefix(k),O=T.args,$=p.triggerAutocomplete(k,O);if(_&&_.length>=k.$liveAutocompletionThreshold||$){var A=u.for(k);A.autoShown=!0,A.showPopup(k)}},S=i("../editor").Editor;i("../config").defineOptions(S.prototype,"editor",{enableBasicAutocompletion:{set:function(T){T?(this.completers||(this.completers=Array.isArray(T)?T:o),this.commands.addCommand(u.startCommand)):this.commands.removeCommand(u.startCommand)},value:!1},enableLiveAutocompletion:{set:function(T){T?(this.completers||(this.completers=Array.isArray(T)?T:o),this.commands.on("afterExec",D)):this.commands.off("afterExec",D)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(T){T?(this.commands.addCommand(c),this.on("changeMode",f),f(null,this)):(this.commands.removeCommand(c),this.off("changeMode",f))},value:!1}})}),function(){ace.require(["ace/ext/language_tools"],function(i){L&&(L.exports=i)})}()})(Ia);const Ai={jsonError:{border:"1px solid red",minHeight:200},jsonNoError:{border:"1px solid #00000000",minHeight:200}};function Fa(L){return M.createElement($a,{style:L.error===!0?Ai.jsonError:L.error===!1?Ai.jsonNoError:void 0,mode:L.mode||"json",width:"100%",height:"100%",showPrintMargin:L.editValueMode,showGutter:L.editValueMode,highlightActiveLine:L.editValueMode,defaultValue:L.defaultValue,theme:L.themeType==="dark"?"clouds_midnight":"chrome",value:L.value,readOnly:!L.onChange,onChange:n=>L.onChange(n),name:L.name||"UNIQUE_ID_OF_DIV1",fontSize:L.fontSize||14,setOptions:{enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,enableSnippets:!0,showLineNumbers:L.editValueMode,tabSize:L.editValueMode?2:void 0},editorProps:{$blockScrolling:!0}})}const On={flex:{display:"flex"},button:{height:48,minWidth:48},wrapper:{width:"calc(100vw - 40px)",height:"calc(100vh - 188px)"}};class Oa extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,h=K.getValue(n,i)||"{}";this.setState({value:h,initialized:!0,jsonError:this.validateJson(h)})}validateJson(n){let i=!1;if(this.props.schema.validateJson!==!1&&(n||!this.props.schema.allowEmpty))try{this.props.schema.json5?ji.parse(n):JSON.parse(n)}catch(h){console.log("Error in JSON",h),i=!0}return i}renderItem(n,i){if(!this.state.initialized)return null;const{schema:h,data:v,attr:s}=this.props,{value:u,showSelectId:d}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},M.createElement("div",{style:On.flex},M.createElement(N.Button,{color:"grey",disabled:i,style:On.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},j.I18n.t("ra_JSON editor"))),d?M.createElement(lo,{title:this.getText(h.label),overflowHidden:!0,applyDisabled:this.state.jsonError&&this.props.schema.doNotApplyWithError,onClose:()=>this.setState({showSelectId:!1,value:K.getValue(v,s)||{}}),onApply:()=>this.setState({showSelectId:!1},()=>this.onChange(s,u))},M.createElement("div",{style:{...On.wrapper,border:this.state.jsonError?"2px solid red":"2px solid transparent"}},M.createElement(Fa,{mode:this.props.schema.json5?"json5":"json",value:typeof u=="object"?JSON.stringify(u):u,onChange:a=>this.setState({value:a,jsonError:this.validateJson(a)}),name:"ConfigJsonEditor",themeType:this.props.oContext.themeType}))):null,h.help||this.state.jsonError?M.createElement(N.FormHelperText,null,this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ra=[{value:"en",label:"English"},{value:"de",label:"Deutsch"},{value:"ru",label:"русский"},{value:"pt",label:"Portugues"},{value:"nl",label:"Nederlands"},{value:"fr",label:"français"},{value:"it",label:"Italiano"},{value:"es",label:"Espanol"},{value:"pl",label:"Polski"},{value:"uk",label:"Український"},{value:"zh-cn",label:"简体中文"}];class Na extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=[...Ra];this.props.schema.system?i.unshift({value:"",label:j.I18n.t("ra_System language")}):i.unshift({value:"",label:j.I18n.t("ra_none")}),this.setState({value:this.props.schema.system?n||"":n||j.I18n.getLanguage(),selectOptions:i})}renderItem(n,i){var v,s;if(!this.state.selectOptions)return null;const h=(v=this.state.selectOptions)==null?void 0:v.find(u=>u.value===this.state.value||!u.value&&!this.state.value);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:i,value:this.state.value||"_",renderValue:()=>this.getText(h==null?void 0:h.label,this.props.schema.noTranslation),onChange:u=>{let{value:d}=u.target;d==="_"&&(d=""),this.setState({value:d},()=>{const a=this.onChange(this.props.attr,d);if(a instanceof Promise&&a.catch(p=>console.error(p)),this.props.schema.changeGuiLanguage)if(d){if(d===j.I18n.getLanguage())return;j.I18n.setLanguage(d),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage()}else this.props.oContext.socket.getSystemConfig().then(p=>{p.common.language!==j.I18n.getLanguage()&&p.common.language&&(j.I18n.setLanguage(p.common.language),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage())}).catch(p=>console.error(`Cannot read system config: ${p}`))})}},(s=this.state.selectOptions)==null?void 0:s.map(u=>M.createElement(N.MenuItem,{key:u.value,value:u.value},u.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Ba extends K{scrollRef;constructor(n){super(n),this.scrollRef=M.createRef()}scrolledDown(){return this.scrollRef.current?this.scrollRef.current.offsetHeight+this.scrollRef.current.scrollTop>=this.scrollRef.current.scrollHeight:!1}componentDidMount(){super.componentDidMount(),K.getValue(this.props.data,this.props.attr)||(this.props.schema.licenseUrl?(this.setState({showLicenseDialog:!0,loading:!0,scrolledDown:!1}),fetch(this.props.schema.licenseUrl).then(n=>n.text()).then(n=>this.setState({license:n,loading:!1})).catch(n=>this.setState({license:n.toString(),loading:!1,error:!0,scrolledDown:!1}))):this.setState({showLicenseDialog:!0,scrolledDown:!1}),setTimeout(()=>{this.scrollRef.current&&(this.scrolledDown()?this.setState({scrolledDown:!0}):this.scrollRef.current.addEventListener("scroll",()=>{!this.state.scrolledDown&&this.scrolledDown()&&this.setState({scrolledDown:!0})}))},1e3))}renderItem(n,i){return this.state.showLicenseDialog?M.createElement(N.Dialog,{maxWidth:"lg",open:!0,onClose:(h,v)=>{v!=="escapeKeyDown"&&v!=="backdropClick"&&this.setState({showLicenseDialog:!1})}},M.createElement(N.DialogTitle,null,this.props.schema.title?j.I18n.t(this.props.schema.title):j.I18n.t("ra_License agreement")),M.createElement(N.DialogContent,null,this.props.schema.licenseUrl?M.createElement(M.Fragment,null,this.state.loading?M.createElement(N.LinearProgress,null):null,M.createElement("pre",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.state.license)):null,!this.props.schema.licenseUrl&&this.props.schema.texts?M.createElement("div",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.props.schema.texts.map((h,v)=>this.props.schema.noTranslation?M.createElement("p",{key:v},h):M.createElement("p",{key:v},j.I18n.t(h)))):null),M.createElement(N.DialogActions,null,this.props.schema.checkBox?M.createElement(N.FormControlLabel,{control:M.createElement(N.Checkbox,{disabled:i,checked:!!this.state.licenseChecked,onClick:()=>this.setState({licenseChecked:!this.state.licenseChecked})}),label:j.I18n.t(this.props.schema.checkBox)}):null,M.createElement(N.Button,{disabled:i||this.state.loading||this.state.error||this.props.schema.checkBox&&!this.state.licenseChecked||!this.state.scrolledDown,onClick:()=>{this.setState({showLicenseDialog:!1});const h=this.onChange(this.props.attr,!0);h instanceof Promise&&h.catch(v=>console.error(`Cannot set value: ${v}`))},color:"primary",variant:"contained",startIcon:M.createElement(Z.Check,null)},this.props.schema.agreeText?j.I18n.t(this.props.schema.agreeText):j.I18n.t("ra_Accept license")),M.createElement(N.Button,{onClick:()=>{this.setState({showLicenseDialog:!1}),setTimeout(()=>this.setState({showLicenseDialog:!0}),2e3)},color:"grey",variant:"contained",startIcon:M.createElement(Z.Close,null)},j.I18n.t("ra_Close")))):null}}const xi={indeterminate:{opacity:.5},control:{flexDirection:"row",width:"100%"}};class Pa extends K{updateTimeout;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(n==null&&(n=""),Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({_value:n,oldValue:n});return}this.setState({_value:n.toString(),oldValue:n.toString()})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const h=K.getValue(n.data,n.attr);return n.oContext.multiEdit&&i._value===K.DIFFERENT_VALUE?{_value:K.DIFFERENT_VALUE}:h==null||i.oldValue===null||i.oldValue===void 0||h.toString()!==parseFloat(i._value).toString()&&h.toString()!==i.oldValue.toString()?{_value:h}:null}checkValue(n){if(n==null)return null;n=n.toString().trim().replace(",",".");const i=n===""?0:parseFloat(n);return n!==""&&Number.isNaN(i)?"ra_Not a number":n!==""&&window.isFinite(i)?this.props.schema.min!==void 0&&ithis.props.schema.max?"ra_Too big":n===""||n==="-"||Number.isNaN(i)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){const h=Array.isArray(this.state._value)||this.state._value===K.DIFFERENT_VALUE;if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0),h){const v=K.getValue(this.props.data,this.props.attr),s=(v==null?void 0:v.filter(u=>u||u===0).map(u=>({label:u.toString(),value:u})))||[];return s.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),M.createElement(N.Autocomplete,{style:xi.indeterminate,fullWidth:!0,freeSolo:!0,value:s[0],getOptionSelected:(u,d)=>u.label===d.label,onChange:(u,d)=>{const a=this.onChange(this.props.attr,d==null?void 0:d.value,()=>{this.setState({_value:d==null?void 0:d.value,oldValue:this.state._value})});a instanceof Promise&&a.catch(p=>console.error(p))},options:s,getOptionLabel:u=>u.label,renderInput:u=>M.createElement(N.TextField,{...u,label:this.getText(this.props.schema.label),variant:"standard",slotProps:{htmlInput:{...u.inputProps,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):void 0}},error:!!n,placeholder:this.getText(this.props.schema.placeholder),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}return!n&&this.state._value!==null&&this.state._value!==void 0&&this.state._value&&(n=this.checkValue(this.state._value),n&&(n=j.I18n.t(n))),M.createElement(N.FormControl,{variant:"standard",style:xi.control},M.createElement(N.TextField,{sx:{"& .up-down":{display:"none"},"&:hover .up-down":{display:"block"}},variant:"standard",type:this.props.schema.min!==void 0&&this.props.schema.min>=0?"number":"text",fullWidth:!0,slotProps:{htmlInput:{min:this.props.schema.min,max:this.props.schema.max,step:this.props.schema.step,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):null}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,onChange:v=>{const s=v.target.value,u=this.checkValue(s);u?this.onError(this.props.attr,j.I18n.t(u)):this.onError(this.props.attr),this.setState({_value:s,oldValue:this.state._value},()=>this.onChange(this.props.attr,parseFloat(s.replace(",","."))))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}))}}class Wa extends K{authWindow;oid;url;constructor(n){super(n),this.state={...this.state,accessTokens:"",success:!1,blocked:!1,running:!1,pressed:!1},this.url=`https://oauth2.iobroker.in/${n.schema.identifier}?redirect=true`,n.schema.scope&&(this.url+=`&scope=${encodeURIComponent(n.schema.scope)}`),this.oid=`${this.props.oContext.adapterName}.${this.props.oContext.instance}.${this.props.schema.saveTokenIn||"oauth2Tokens"}`}async componentDidMount(){super.componentDidMount(),window.addEventListener?window.addEventListener("message",this.onMessage,!1):window.attachEvent("onmessage",this.onMessage,!1),await this.props.oContext.socket.subscribeState(this.oid,this.onTokensUpdated);const n=await this.props.oContext.socket.getState(this.oid);if(n){const i=JSON.parse(n.val);new Date(i.access_token_expires_on).getTime()>Date.now()&&this.setState({accessTokens:n.val})}}onTokensUpdated=(n,i)=>{if(i!=null&&i.val){const h=JSON.parse(i.val);if(new Date(h.access_token_expires_on).getTime()>Date.now()){this.state.accessTokens!==i.val&&this.setState({accessTokens:i.val});return}}this.setState({accessTokens:""})};componentWillUnmount(){super.componentWillUnmount(),window.removeEventListener?window.removeEventListener("message",this.onMessage,!1):window.detachEvent("onmessage",this.onMessage,!1),this.props.oContext.socket.unsubscribeState(this.oid,this.onTokensUpdated)}saveToken(n){try{n&&!n.startsWith("{")&&(n=atob(n));const i=JSON.parse(n);i.access_token&&i.refresh_token&&i.expires_in&&(i.access_token_expires_on||=new Date(Date.now()+i.expires_in*1e3).toISOString(),this.props.oContext.socket.setState(this.oid,JSON.stringify(i),!0).catch(h=>console.log(`Error occurred: ${h.toString()}`)))}catch(i){console.warn(i)}}onMessage=n=>{var i,h,v;if(n.origin==="https://oauth2.iobroker.in"&&(typeof n.data=="string"&&n.data.startsWith(`${this.props.schema.identifier}-authentication:`)||typeof n.message=="string"&&n.message.startsWith(`${this.props.schema.identifier}-authentication:`))){const s=(n.data||n.message).split(":");s[1]==="success"?(this.setState({accessTokens:s[2],success:!0,pressed:!1},()=>this.saveToken(this.state.accessTokens)),(i=this.authWindow)==null||i.postMessage("close",n.origin),this.authWindow=null):(v=(h=this.props).onError)==null||v.call(h,s[2])}};onOpenUrl(){this.authWindow=window.open(this.url,this.props.schema.identifier),!this.authWindow||this.authWindow.closed||typeof this.authWindow.closed>"u"?this.setState({blocked:!0}):this.setState({pressed:!0})}renderItem(){let n="";if(this.state.accessTokens)try{const v=JSON.parse(this.state.accessTokens);n=new Date(v.access_token_expires_on).toLocaleString()}catch{}let i;this.state.accessTokens?i=this.props.schema.refreshLabel?this.getText(this.props.schema.refreshLabel):j.I18n.t("ra_Renew %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1)):i=this.props.schema.label?this.getText(this.props.schema.label):j.I18n.t("ra_Get %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1));const h=this.getIcon();return M.createElement("div",{style:{width:"100%",margin:"0 0 1rem 0"}},M.createElement(N.Button,{disabled:this.state.running,endIcon:h||M.createElement(Z.CloudUpload,null),variant:"contained",onClick:()=>this.onOpenUrl()},i),this.state.blocked?M.createElement("div",{style:{color:"red",fontSize:16,marginTop:20}},j.I18n.t("ra_Please allow popups in your browser for this page!")):null,this.state.accessTokens?M.createElement("div",{style:{color:"green",fontSize:16,marginTop:20}},this.props.alive?j.I18n.t("ra_Successfully authorized. Token valid till %s and will be automatically renewed.",n):j.I18n.t("ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.",n)):null,this.state.pressed?M.createElement(M.Fragment,null,M.createElement("div",{style:{width:"100%",margin:"1rem 0 1rem 0"}},M.createElement("span",{style:{marginRight:4}},`${j.I18n.t("ra_If the button above does not work, you can authorize manually this app by visiting this url")}`,":"),M.createElement("br",null),M.createElement("a",{target:this.props.schema.identifier,href:this.url,rel:"noreferrer"},this.url)),M.createElement(N.TextField,{value:this.state.accessTokens,label:j.I18n.t("ra_Enter the code from that page here"),variant:"standard",onChange:v=>{let s=v.target.value;s&&!s.startsWith("{")&&(s=atob(s));try{const u=JSON.parse(s);u.access_token&&(u.access_token_expires_on=new Date(Date.now()+(u.expires_in-10)*1e3).toISOString(),this.setState({accessTokens:JSON.stringify(u)},()=>this.saveToken(this.state.accessTokens)))}catch{}},fullWidth:!0})):null)}}const $i={flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Ha extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,h=K.getValue(n,i)||"";this.setState({value:h,initialized:!0})}renderItem(n,i){if(!this.state.initialized)return null;const h=this.props.oContext.socket,{schema:v,attr:s}=this.props,{value:u,showSelectId:d}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},v.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(v.label)):null,M.createElement("div",{style:$i.flex},M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:u,error:!!n,disabled:i,placeholder:this.getText(v.placeholder),label:this.getText(v.label),helperText:this.renderHelp(v.help,v.helpLink,v.noTranslation),onChange:a=>{const p=a.target.value;this.setState({value:p},()=>this.onChange(s,p))}}),M.createElement(N.Button,{color:"grey",disabled:i,style:$i.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},"...")),d?M.createElement(j.DialogSelectID,{imagePrefix:this.props.oContext.imagePrefix===void 0?"../..":this.props.oContext.imagePrefix,dialogName:`admin.${this.props.oContext.adapterName}`,filterFunc:v.filterFunc,themeType:this.props.oContext.themeType,theme:this.props.oContext.theme,types:v.types?Array.isArray(v.types)?v.types:[v.types]:void 0,customFilter:v.customFilter,filters:v.filters,socket:h,selected:u,root:v.root,onClose:()=>this.setState({showSelectId:!1}),onOk:a=>this.setState({showSelectId:!1,value:a},()=>this.onChange(s,a))}):null)}}const Rn={fullWidth:{width:"100%",display:"inline-block"},halfWidth1:{width:"calc(50% - 5px)",display:"inline-block",marginRight:8},halfWidth2:{width:"calc(50% - 5px)",display:"inline-block"}},an="____ppp____";class za extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_repeat:n?an:"",_visible:!1,value:n?an:"",_notEqual:!1})}onChangePassword(n,i){n===void 0&&(n=this.state.value),i===void 0&&(i=this.state._repeat);const h=!!this.props.schema.repeat&&i!==n;this.setState({value:n,_repeat:i,_notEqual:h},()=>{if(h)this.onError(this.props.attr,j.I18n.t("ra_Passwords are not equal!"));else{this.onError(this.props.attr);const v=this.onChange(this.props.attr,n);v instanceof Promise&&v.catch(s=>this.onError(this.props.attr,s))}})}renderItem(n,i){if(this.state._notEqual===void 0)return null;const h=M.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state.value!==an?"text":"password",value:this.state.value,error:!!n||this.state._notEqual,disabled:!!i,onChange:v=>this.onChangePassword(v.target.value),label:this.getText(this.props.schema.label),slotProps:{input:{autoComplete:"new-password",endAdornment:this.state.value&&this.state.value!==an&&this.props.schema.visible&&!i&&!this.props.schema.readOnly?M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{size:"large",tabIndex:-1,onClick:v=>{v.preventDefault(),v.stopPropagation(),this.setState({_visible:!this.state._visible})},edge:"end"},this.state._visible?M.createElement(Z.VisibilityOff,null):M.createElement(Z.Visibility,null))):void 0},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});if(this.props.schema.repeat&&!this.props.schema.readOnly){const v=this.state._visible?null:M.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:"password",value:this.state._repeat,error:!!n||this.state._notEqual,disabled:!!i,onChange:s=>this.onChangePassword(void 0,s.target.value),label:`${this.getText(this.props.schema.label)} (${j.I18n.t("ra_repeat")})`,slotProps:{input:{autoComplete:"new-password"},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});return M.createElement("div",{style:Rn.fullWidth},M.createElement("div",{style:Rn.halfWidth1},h),M.createElement("div",{style:Rn.halfWidth2},v))}return h}}class ja extends K{renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,disabled:!!i,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.getPattern(this.props.schema.pattern,null,this.props.schema.noTranslation)),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null)):void 0}},value:this.getPattern(this.props.schema.pattern,null,!0),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const Va={warning:{"& .Mui-error":{color:"orange"}}};class Ua extends K{updateTimeout;async componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);n==null&&(n=""),this.setState({_value:n.toString(),oldValue:n.toString()});const i=await this.props.oContext.socket.getAdapterInstances(),h=`system.adapter.${this.props.oContext.adapterName}.${this.props.oContext.instance}`,v=await this.props.oContext.socket.getObject(h),s=v==null?void 0:v.common.host,u=[];i.forEach(d=>{var p,e,t,r;if(!d||d._id===h||d.common.host!==s||!((p=d.native)!=null&&p.bind))return;if(d!=null&&d.native&&d.native.secure&&d.native.leEnabled&&d.native.leUpdate){const l=parseInt(d.native.leCheckPort||d.native.lePort,10);l&&u.push({name:`${d._id.replace("system.adapter.","")} (LE)`,port:l,v6bind:d.native.bind.includes(":")?d.native.bind:d.native.v6bind,bind:d.native.bind,enabled:!!((e=d.common)!=null&&e.enabled)})}const a=parseInt((t=d==null?void 0:d.native)==null?void 0:t.port,10);a&&u.push({name:d._id.replace("system.adapter.",""),bind:d.native.bind,v6bind:d.native.bind.includes(":")?d.native.bind:d.native.v6bind,port:a,enabled:!!((r=d.common)!=null&&r.enabled)})}),this.setState({ports:u})}static getDerivedStateFromProps(n,i){const h=K.getValue(n.data,n.attr);return h==null||i.oldValue===null||i.oldValue===void 0||h.toString()!==parseInt(i._value,10).toString()&&h.toString()!==i.oldValue.toString()?{_value:h}:null}checkValue(n){if(n==null)return null;const i=this.props.schema.min===void 0?20:this.props.schema.min,h=this.props.schema.max||65535;n=n.toString().trim();const v=n===""?0:parseInt(n,10);return n!==""&&Number.isNaN(v)?"ra_Not a number":n!==""&&window.isFinite(Number(n))?vh?"ra_Too big":n===""||n==="-"||Number.isNaN(v)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0);const h=this.props.schema.min===void 0?20:this.props.schema.min,v=this.props.schema.max||65535;let s;if(this.state.ports){const u=parseInt(this.state._value,10);if(u){const d=this.state.ports.filter(p=>!this.props.data.bind||this.props.data.bind===p.bind||this.props.data.bind==="0.0.0.0"||p.bind==="0.0.0.0");let a=d.findIndex(p=>p.port===u&&p.enabled);a!==-1?n=j.I18n.t("ra_Port is already used by %s",this.state.ports[a].name):(a=d.findIndex(p=>p.port===u&&!p.enabled),a!==-1&&(s=!0,n=j.I18n.t("ra_Port could be used by %s",this.state.ports[a].name)))}}return!n&&this.state._value!==null&&this.state._value!==void 0&&(n=this.checkValue(this.state._value),typeof n=="string"&&(n=j.I18n.t(n))),M.createElement(N.TextField,{variant:"standard",type:"number",fullWidth:!0,slotProps:{htmlInput:{min:h,max:v,readOnly:this.props.schema.readOnly||!1}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,sx:s?Va.warning:void 0,onChange:u=>{const d=Number(u.target.value.toString().replace(/[^0-9]/g,"")).toString(),a=this.checkValue(d);a?this.onError(this.props.attr,j.I18n.t(a)):this.onError(this.props.attr),this.setState({_value:d,oldValue:this.state._value},()=>{if(d.trim()===parseInt(d,10).toString()){const p=this.onChange(this.props.attr,parseInt(d,10)||0);p instanceof Promise&&p.catch(e=>{console.error(`Cannot set value for ${this.props.attr}: ${e}`)})}})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}class Ga extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("rooms").then(i=>{const h=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.rooms.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&h.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:h})}).catch(i=>console.error(`Cannot get enums: ${i}`))}renderItem(n,i){if(!this.state.selectOptions)return null;const h=this.state.selectOptions.find(v=>v.value===this.state.value);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>h?h.obj?M.createElement(j.TextWithIcon,{value:h.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):h.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>M.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?M.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ka={noMargin:{"&>div":{marginTop:0}}};class Ja extends K{initialValue="";componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[]));const i=[];(this.props.schema.options||[]).forEach(h=>{const v=h;Array.isArray(v.items)?(i.push({label:this.getText(h.label,this.props.schema.noTranslation),value:h.value,group:!0,color:h.color}),v.items.forEach(s=>i.push({label:this.getText(s.label,this.props.schema.noTranslation),value:s.value,hidden:s.hidden,color:h.color}))):i.push({label:this.getText(h.label,this.props.schema.noTranslation),value:h.value,hidden:h.hidden,color:h.color})}),Array.isArray(n)&&!this.props.schema.multiple?(this.initialValue=[...n],i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){if(!this.state.selectOptions)return null;const h=(this.state.selectOptions||[]).filter(u=>u.hidden?this.props.custom?!this.executeCustom(u.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(u.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),v=this._getValue(),s=this.props.schema.multiple?null:h.find(u=>u.value==v);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0,sx:this.props.table!==void 0&&Ka.noMargin,id:`jsonSelect_${this.props.attr}_${this.props.index||this.props.index===0?this.props.index:""}`},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,value:v||"_",renderValue:u=>this.props.schema.multiple?M.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:.5}},u.map(d=>{const a=h.find(p=>p.value===d);if(a||this.props.schema.showAllValues!==!1){const p=(a==null?void 0:a.label)||d;return M.createElement(N.Chip,{key:d,label:p})}return null})):s!=null&&s.color?M.createElement("div",{style:{color:s.color}},(s==null?void 0:s.label)===void 0?u:s.label):(s==null?void 0:s.label)===void 0?u:s.label,onChange:u=>{this.setState({value:u.target.value==="_"?"":u.target.value},()=>{let d;this.state.value===K.DIFFERENT_VALUE?d=this.onChange(this.props.attr,this.initialValue):d=this.onChange(this.props.attr,this.state.value),d instanceof Promise&&d.catch(a=>console.error(a))})}},h.map((u,d)=>u.group?M.createElement(N.ListSubheader,{key:d,style:{color:u.color}},u.label):M.createElement(N.MenuItem,{key:d,value:u.value,style:u.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},this.props.schema.multiple?M.createElement(N.Checkbox,{checked:v.includes(u.value),onClick:()=>{const a=JSON.parse(JSON.stringify(this._getValue())),p=v.indexOf(u.value);p!==-1?a.splice(p,1):(a.push(u.value),a.sort()),this.setState({value:a},()=>this.onChange(this.props.attr,a))}}):null,M.createElement(N.ListItemText,{primary:u.label,style:{color:u.color}})))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ya={menuPaper:{maxHeight:800}};class Qa extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.setState({running:!0},()=>{this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({list:i,running:!1})).catch(i=>{console.error(`Cannot send command: ${i}`)})})}else{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n,running:!1})}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){var u;if(this.props.alive){const d=this.getContext();(d!==this.localContext||!this.initialized)&&(this.localContext=d,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}const h=this._getValue();if(!this.props.alive||!this.state.running&&!((u=this.state.list)!=null&&u.length))return this.props.schema.multiple||this.props.schema.manual===!1?j.I18n.t("ra_Cannot retrieve options, as instance is offline"):M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:h,error:!!n,disabled:!!i,onChange:d=>{const a=d.target.value;this.setState({value:a},()=>this.onChange(this.props.attr,(a||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),slotProps:{input:{endAdornment:this.state.value&&!this.props.schema.noClearButton?M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({value:""},()=>this.onChange(this.props.attr,""))},M.createElement(Z.Close,null))):null}}});if(this.state.running)return M.createElement(N.CircularProgress,{size:"24"});const v=this.state.list.filter(d=>d.hidden?this.props.custom?!this.executeCustom(d.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(d.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),s=v.find(d=>d.value===h);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,sx:{"&.MuiSelect-paper":this.props.schema.multiple?Ya.menuPaper:void 0},value:h,renderValue:d=>this.props.schema.multiple?M.createElement(N.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},d.map(a=>{const p=v.find(e=>e.value===a);if(p||this.props.schema.showAllValues!==!1){const e=(p==null?void 0:p.label)||a;return M.createElement(N.Chip,{key:a,label:e})}return null})):this.getText((s==null?void 0:s.label)||d,this.props.schema.noTranslation),onChange:d=>{const a=this.onChange(this.props.attr,d.target.value);a instanceof Promise&&a.catch(p=>console.error(`Cannot set value: ${p}`))}},v.map((d,a)=>d.group?M.createElement(N.ListSubheader,{key:a},this.getText(d.label,this.props.schema.noTranslation)):M.createElement(N.MenuItem,{key:a,value:d.value},this.props.schema.multiple?M.createElement(N.Checkbox,{checked:h.includes(d.value),onClick:()=>{const p=JSON.parse(JSON.stringify(this._getValue())),e=h.indexOf(d.value);e!==-1?p.splice(e,1):(p.push(d.value),p.sort()),this.setState({value:p},()=>this.onChange(this.props.attr,p))}}):null,M.createElement(N.ListItemText,{primary:d.label})))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ti={fullWidth:{width:"100%"}};function ht(L){return L.split(".").reduce((n,i)=>(n<<8)+parseInt(i,10),0)>>>0}function Xa(L,n){var v,s;const i=(s=(v=L==null?void 0:L.native)==null?void 0:v.hardware)==null?void 0:s.networkInterfaces;if(!i)return null;let h;return Object.keys(i).forEach(u=>i[u].forEach(d=>{d.internal||n.includes(":")&&d.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&d.family!=="IPv4"||(d.family==="IPv4"&&!d.address.startsWith("172")&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?h=d.address:h||(d.family==="IPv4"&&n.includes(".")&&(ht(n)&ht(d.netmask),ht(d.address)&ht(d.netmask)),h=d.address))})),h||Object.keys(i).forEach(u=>i[u].forEach(d=>{d.internal||n.includes(":")&&d.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&d.family!=="IPv4"||(d.family==="IPv6"&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?h=d.address:h||(d.family==="IPv4"&&n.includes(".")&&(ht(n)&ht(d.netmask),ht(d.address)&ht(d.netmask)),h=d.address))})),h||Object.keys(i).forEach(u=>{i[u].forEach(d=>{d.internal||n.includes(":")&&d.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&d.family!=="IPv4"||(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/),h=d.address)})}),h||Object.keys(i).forEach(u=>{i[u].forEach(d=>{d.internal||(h=d.address)})}),h}class _i extends K{async componentDidMount(){var i;super.componentDidMount();let n=window.location.hostname;if(this.props.schema.openUrl){const h=await this.props.oContext.socket.getCurrentInstance(),v=await this.props.oContext.socket.getObject(`system.adapter.${h}`);if(v){const s=await this.props.oContext.socket.getObject(`system.host.${(i=v==null?void 0:v.common)==null?void 0:i.host}`);if(s){const u=Xa(s,window.location.hostname);if(u)n=`${u}:${window.location.port}`;else{console.warn(`Cannot find suitable IP in host ${v.common.host} for ${v._id}`);return}}}}await new Promise(h=>{this.setState({_error:"",_message:"",hostname:n},h)}),this.props.schema.onLoaded&&this._onClick()}renderErrorDialog(){return this.state._error?M.createElement(j.DialogError,{text:this.state._error,onClose:()=>this.setState({_error:""})}):null}renderMessageDialog(){return this.state._message?M.createElement(j.DialogMessage,{text:this.state._message,onClose:()=>this.setState({_message:""})}):null}_onClick(){this.props.oContext.onCommandRunning(!0),this.setState({running:!0});const n=`${window.location.protocol}//${window.location.host}${window.location.pathname.replace(/\/index\.html$/,"")}`,i=`${window.location.protocol}//${this.state.hostname.split(":").length>3?`[${this.state.hostname}]`:this.state.hostname}${window.location.pathname.replace(/\/index\.html$/,"")}`;let h=this.props.schema.data;if(h===void 0&&this.props.schema.jsonData){const s=this.getPattern(this.props.schema.jsonData,{_origin:n,_originIp:i,...this.props.data},!0);try{h=JSON.parse(s)}catch{console.error(`Cannot parse json data: ${s}`)}}h===void 0&&(h=null),this.props.schema.openUrl&&!h&&(h={_origin:n,_originIp:i});let v;this.props.schema.timeout&&(v=setTimeout(()=>{this.props.oContext.onCommandRunning(!1),this.setState({_error:j.I18n.t("ra_Request timed out"),running:!1})},parseInt(this.props.schema.timeout,10)||1e4)),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",h).then(async s=>{var u,d,a,p,e;if(v&&(clearTimeout(v),v=void 0),s!=null&&s.error)if(this.props.schema.error&&this.props.schema.error[s.error]){let t=this.getText(this.props.schema.error[s.error]);(u=s.args)==null||u.forEach(r=>t=t.replace("%s",r)),this.setState({_error:t})}else this.setState({_error:s.error?typeof s.error=="string"?j.I18n.t(s.error):JSON.stringify(s.error):j.I18n.t("ra_Error")});else{if(s!=null&&s.command){(a=(d=this.props.oContext).onBackEndCommand)==null||a.call(d,s.command);return}if(s!=null&&s.reloadBrowser&&this.props.schema.reloadBrowser)window.location.reload();else if(s!=null&&s.openUrl&&this.props.schema.openUrl)window.open(s.openUrl,s.window||this.props.schema.window||"_blank");else if(s!=null&&s.result&&((p=this.props.schema.result)!=null&&p[s.result])){let t=this.getText(this.props.schema.result[s.result]);(e=s.args)==null||e.forEach(r=>t=t.replace("%s",r)),window.alert(t)}if(s!=null&&s.native&&this.props.schema.useNative){for(const[t,r]of Object.entries(s.native))await this.onChangeAsync(t,r);setTimeout(()=>this.props.oContext.forceUpdate(Object.keys(s.native),this.props.data),300)}else s!=null&&s.result?window.alert(typeof s.result=="object"?JSON.stringify(s.result):s.result):window.alert(j.I18n.t("ra_Ok"));s!=null&&s.saveConfig&&this.props.onChange(null,null,null,!0)}}).catch(s=>{this.props.schema.error&&this.props.schema.error[s.toString()]?this.setState({_error:this.getText(this.props.schema.error[s.toString()])}):this.setState({_error:j.I18n.t(s.toString())||j.I18n.t("ra_Error")})}).then(()=>{this.props.oContext.onCommandRunning(!1),this.setState({running:!1})})}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:h=>this.setState({confirmDialog:!1},()=>h&&this._onClick())})}renderItem(n,i){const h=this.getIcon();return M.createElement("div",{style:Ti.fullWidth},M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ti.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i||!this.props.alive,startIcon:h,title:this.props.alive?this.getText(this.props.schema.title)||"":j.I18n.t("ra_Instance is not alive"),onClick:()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):this._onClick()}},this.props.schema.showProcess&&this.state.running?M.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation)),this.renderErrorDialog(),this.renderMessageDialog())}}const Za={fullWidth:{width:"100%"}};class qa extends K{async _onClick(){var h,v;let n=this.props.schema.val;if(typeof n=="string"&&n.includes("${")){n=this.getPattern(n,null,!0);const s=await this.props.oContext.socket.getObject(this.props.schema.id);((h=s==null?void 0:s.common)==null?void 0:h.type)==="number"?n=parseFloat(n):((v=s==null?void 0:s.common)==null?void 0:v.type)==="boolean"&&(n=n==="true"||n===!0||n==="1"||n===1)}const i=(this.props.schema.id||"").replace(/%INSTANCE%/g,(this.props.oContext.instance||0).toString());try{await this.props.oContext.socket.setState(i,{val:n,ack:!!this.props.schema.ack}),this.props.schema.okText&&window.alert(this.getText(this.props.schema.okText))}catch(s){this.props.schema.error&&this.props.schema.error[s.toString()]?window.alert(this.getText(this.props.schema.error[s.toString()])):window.alert(j.I18n.t(s.toString())||j.I18n.t("ra_Error"))}}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i,onClose:h=>this.setState({confirmDialog:!1},()=>h&&this._onClick())})}renderItem(n,i){const h=this.getIcon();return M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:Za.fullWidth,disabled:i,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):await this._onClick()},startIcon:h||void 0},this.getText(this.props.schema.label,this.props.schema.noTranslation))}}const ki={fullWidth:{width:"100%"},slider:{marginLeft:10,marginRight:10,width:"calc(100% - 20px)"}};class el extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_value:n})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const h=K.getValue(n.data,n.attr);return h==null||h.toString()!==parseFloat(i._value).toString()?{_value:h}:null}renderItem(n,i){const h=this.props.schema.min||0,v=this.props.schema.max||100,s=this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):"",u=[{value:h,label:h+s},{value:v,label:v+s}];return M.createElement(N.Box,{style:ki.fullWidth},this.props.schema.label?M.createElement(N.Typography,{gutterBottom:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Slider,{style:ki.slider,value:this.state._value,getAriaValueText:d=>d+s,step:this.props.schema.step||(v-h)/100,valueLabelDisplay:"auto",marks:u,min:h,max:v,disabled:!!i,onChange:d=>{const a=d.target.value;this.setState({_value:a},()=>this.onChange(this.props.attr,a))}}),this.props.schema.help?M.createElement(N.Typography,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}function ut(L,n){return L==="edit"||L==="rename"?M.createElement(Z.Edit,{style:n}):L==="delete"?M.createElement(Z.Delete,{style:n}):L==="refresh"?M.createElement(Z.Refresh,{style:n}):L==="newDevice"||L==="new"||L==="add"?M.createElement(Z.Add,{style:n}):L==="discover"||L==="search"?M.createElement(Z.Search,{style:n}):L==="unpairDevice"||L==="unpair"?M.createElement(Z.LinkOff,{style:n}):L==="pairDevice"||L==="pair"?M.createElement(Z.Link,{style:n}):L==="identify"?M.createElement(Z.NotListedLocation,{style:n}):L==="play"?M.createElement(Z.PlayArrow,{style:n}):L==="stop"?M.createElement(Z.Stop,{style:n}):L==="pause"?M.createElement(Z.Pause,{style:n}):L==="forward"||L==="next"?M.createElement(Z.FastForward,{style:n}):L==="rewind"||L==="previous"?M.createElement(Z.FastRewind,{style:n}):L==="lamp"||L==="light"?M.createElement(Z.Lightbulb,{style:n}):L==="backlight"?M.createElement(Z.Fluorescent,{style:n}):L==="dimmer"?M.createElement(Z.WbIncandescent,{style:n}):L==="socket"?M.createElement(Z.Power,{style:n}):L==="settings"?M.createElement(Z.Settings,{style:n}):L==="users"||L==="group"?M.createElement(Z.Group,{style:n}):L==="user"?M.createElement(Z.Person,{style:n}):L==="qrcode"?M.createElement(Z.QrCode,{style:n}):L==="connection"?M.createElement(Z.Wifi,{style:n}):L==="no-connection"?M.createElement(Z.WifiOff,{style:n}):L==="visible"?M.createElement(Z.Visibility,{style:n}):null}function tl(L,n){return typeof n=="string"?{"@keyframes newStateAnimationOnceColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnceColor 2s ease-in-out"}:{"@keyframes newStateAnimationOnce":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnce 2s ease-in-out"}}class nl extends K{controlTimeout=null;delayedUpdate={timer:null,value:null};getObjectID(){let n=this.props.schema.oid;return n.includes("${")&&(n=this.getPattern(n,null,!0)),this.props.schema.foreign?n:`${this.props.schema.system?"system.adapter.":""}${this.props.oContext.adapterName}.${this.props.oContext.instance||0}.${n}`}async componentDidMount(){var h,v;super.componentDidMount();const n=await this.props.oContext.socket.getObject(this.getObjectID());if((h=n==null?void 0:n.common)!=null&&h.states&&!this.props.schema.options){if(Array.isArray((v=n==null?void 0:n.common)==null?void 0:v.states)){const s={};n.common.states.forEach((u,d)=>{s[d.toString()]=u}),n.common.states=s}Object.keys(n.common.states).length||(n.common.states=void 0)}const i=this.props.schema.control||this.detectType(n);try{const s=await this.props.oContext.socket.getState(this.getObjectID());this.setState({stateValue:s?s.val:null,controlType:i,obj:n},async()=>{await this.props.oContext.socket.subscribeState(this.getObjectID(),this.onStateChanged)})}catch(s){console.error(`Cannot get state ${this.getObjectID()}: ${s}`),this.setState({controlType:i,obj:n})}}componentWillUnmount(){super.componentWillUnmount(),this.props.oContext.socket.unsubscribeState(this.getObjectID(),this.onStateChanged),this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.controlTimeout&&(clearTimeout(this.controlTimeout),this.controlTimeout=null,this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1).catch(n=>console.error(`Cannot control value: ${n.toString()}`)))}onStateChanged=(n,i)=>{let h=i?i.val:null;this.state.controlType==="button"||this.state.controlType==="switch"?(h=!!h,this.state.stateValue!==h&&this.setState({stateValue:h})):h!==null&&(this.state.controlType==="slider"||this.state.controlType==="number")?(h=parseFloat(h),console.log(`${Date.now()} Received new value: ${h}`),h!==this.state.stateValue?(this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.delayedUpdate.value=h,this.delayedUpdate.timer=setTimeout(()=>{this.setState({stateValue:this.delayedUpdate.value})},500)):this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null)):this.state.stateValue.toString()!==h.toString()&&this.setState({stateValue:h})};detectType(n){if(n||={},n.common||={},n.common.type==="boolean"){if(this.props.schema.controlled!==!1){if(n.common.read===!1||this.props.schema.controlled===!0)return"button";if(n.common.write||this.props.schema.controlled===!0)return"switch"}return"text"}return n.common.type==="number"&&this.props.schema.controlled!==!1?n.common.write||this.props.schema.controlled===!0?n.common.states||this.props.schema.options?"select":n.common.max!==void 0?"slider":"input":"text":n.common.write&&this.props.schema.controlled!==!1?n.common.states||this.props.schema.options?"select":"input":"text"}getNormalizedStates(){let n;return this.props.schema.options?n=this.props.schema.options.map(i=>typeof i=="string"?{value:i,label:this.getText(i,this.props.schema.noTranslation)}:{value:i.value,label:this.getText(i.label,this.props.schema.noTranslation),color:i.color}):this.state.obj.common.states?(n=[],Object.keys(this.state.obj.common.states).forEach(i=>{n.push({value:i,label:this.getText(this.state.obj.common.states[i],this.props.schema.noTranslation)})})):n=[],n}renderItem(n,i){var v,s,u,d,a;if(!this.state.obj)return null;let h;if(this.state.controlType==="select"||!this.state.controlType&&(this.state.obj.common.type==="number"||this.state.obj.common.type==="string")&&this.state.obj.common.write!==!1&&(this.props.schema.options||this.state.obj.common.states)){const p=this.getNormalizedStates(),e=p.find(t=>t.value===this.state.stateValue);h=M.createElement(N.FormControl,{fullWidth:!0},M.createElement(N.InputLabel,null,"$",this.getText(this.props.schema.label)),M.createElement(N.Select,{value:this.state.stateValue,disabled:!!this.props.schema.readOnly||i,onChange:t=>{this.setState({stateValue:t.target.value},()=>{let r=this.state.stateValue;this.state.obj.common.type==="number"&&(r=parseFloat(r.toString().replace(",","."))),this.props.oContext.socket.setState(this.getObjectID(),r,!1)})},renderValue:t=>e!=null&&e.color?M.createElement("div",{style:{color:e.color}},e.label):t},p.map(t=>M.createElement(N.MenuItem,{key:(t.value??"").toString(),value:t.value,style:{color:t.color}},"$",t.label))))}else if(this.state.controlType==="button"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read===!1||(v=this.state.obj.common.role)!=null&&v.includes("button"))){let p=null;this.props.schema.falseImage&&(p=ut(this.props.schema.falseImage));const e=this.getText(this.props.schema.falseText||this.props.schema.label,this.props.schema.noTranslation);!e&&p?h=M.createElement(N.IconButton,{style:this.props.schema.falseTextStyle,disabled:!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},p):h=M.createElement(N.Button,{variant:this.props.schema.variant||"contained",startIcon:p,style:this.props.schema.falseTextStyle,disabled:i||!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},e||this.getObjectID().split(".").pop())}else if(this.state.controlType==="input"||!this.state.controlType&&this.state.obj.common.write&&this.state.obj.common.type==="string")h=M.createElement("div",{style:{width:"100%",display:"flex",flexDirection:"row",gap:8,alignItems:"baseline"}},M.createElement(N.TextField,{style:{flex:1},value:this.state.stateValue,variant:"standard",disabled:!!this.props.schema.readOnly||i,slotProps:{input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0},htmlInput:{readOnly:!!this.props.schema.readOnly}},onKeyUp:p=>{this.props.schema.setOnEnterKey&&p.key==="Enter"&&this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},onChange:p=>{this.setState({stateValue:p.target.value},()=>{this.props.schema.setOnEnterKey||this.props.schema.showEnterButton||(this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null;let e=this.state.stateValue;this.state.obj.common.type==="number"&&(e=parseFloat(e.toString().replace(",","."))),await this.props.oContext.socket.setState(this.getObjectID(),e,!1)},this.props.schema.controlDelay||0))})},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),this.props.schema.showEnterButton&&!this.props.schema.readOnly&&M.createElement(N.Button,{variant:"outlined",disabled:i,onClick:()=>{this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)}},this.getText(typeof this.props.schema.showEnterButton=="string"?this.props.schema.showEnterButton:"Set")));else{let p;this.props.schema.size==="normal"?p=16:this.props.schema.size==="large"?p=20:typeof this.props.schema.size=="number"&&(p=this.props.schema.size);let e=this.getText(this.props.schema.label,this.props.schema.noTranslation);const t={display:"flex",alignItems:"center",fontSize:p||"1rem",gap:8};this.props.schema.narrow||(t.width="100%",t.justifyContent="space-between"),e.trim()&&!e.trim().endsWith(":")&&this.props.schema.addColon&&(e=`${e.trim()}:`);let r;this.props.schema.blinkOnUpdate&&(r=tl(this.props.oContext.theme,this.props.schema.blinkOnUpdate));let l;this.props.schema.labelIcon&&(l=M.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let o;if(e&&l?o=M.createElement("div",{style:{whiteSpace:"nowrap"}},l,e):e?o=M.createElement("div",{style:{whiteSpace:"nowrap"}},e):l&&(o=l),this.state.controlType==="switch"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read!==!1||(s=this.state.obj.common.role)!=null&&s.includes("switch"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ut(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ut(this.props.schema.trueImage,y?{marginRight:8}:void 0)),h=M.createElement(N.Switch,{checked:!!this.state.stateValue,disabled:!!this.props.schema.readOnly||i,onChange:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async D=>{D&&await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}),(f||c||y||m)&&(h=M.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:14}},M.createElement("span",{style:this.props.schema.falseTextStyle},f,c),h,M.createElement("span",{style:this.props.schema.trueTextStyle},m,y))),o&&(h=M.createElement("div",{style:t},o,h))}else if(this.state.controlType==="slider"||!this.state.controlType&&this.state.obj.common.type==="number"&&(this.state.obj.common.write&&(this.state.obj.common.max!==void 0||this.state.obj.common.unit==="%")||(u=this.state.obj.common.role)!=null&&u.includes("slider")||(d=this.state.obj.common.role)!=null&&d.includes("dimmer")||(a=this.state.obj.common.role)!=null&&a.includes("blind"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ut(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ut(this.props.schema.trueImage,y?{marginRight:8}:void 0));const D=this.props.schema.min===void 0?this.state.obj.common.min||0:this.props.schema.min,E=this.props.schema.max===void 0?this.state.obj.common.max===void 0?100:this.state.obj.common.max:this.props.schema.max,b=this.props.schema.step===void 0?this.state.obj.common.step||1:this.props.schema.step;h=M.createElement(N.Slider,{style:{width:"100%",flexGrow:1},min:D,max:E,disabled:!!this.props.schema.readOnly||i,step:b,value:this.state.stateValue,valueLabelDisplay:"auto",valueLabelFormat:g=>`${g}${this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||""}`,onChange:(g,S)=>{this.setState({stateValue:S},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{console.log(`${Date.now()} Send new value: ${this.state.stateValue}`),this.controlTimeout=null,await this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},this.props.schema.controlDelay||0)})}}),(f||c||y||m)&&(h=M.createElement("div",{style:{display:"flex",width:"100%",flexGrow:1,alignItems:"center"}},M.createElement("span",{style:{marginRight:16,...this.props.schema.falseTextStyle}},f,c),h,M.createElement("span",{style:{marginLeft:16,...this.props.schema.trueTextStyle}},m,y))),o&&(h=M.createElement("div",{style:t},o,h))}else if(this.state.obj.common.type==="number"&&this.state.obj.common.write&&!this.state.controlType){const c=this.props.schema.min===void 0?this.state.obj.common.min===void 0?void 0:this.state.obj.common.min:this.props.schema.min,f=this.props.schema.max===void 0?this.state.obj.common.max===void 0?void 0:this.state.obj.common.max:this.props.schema.max,m=this.props.schema.step===void 0?this.state.obj.common.step===void 0?void 0:this.state.obj.common.step:this.props.schema.step;h=M.createElement(N.TextField,{variant:"standard",style:{width:"100%"},value:this.state.stateValue,type:"number",disabled:!!this.props.schema.readOnly||i,slotProps:{htmlInput:{min:c,max:f,step:m,readOnly:!!this.props.schema.readOnly},input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0}},onChange:y=>{this.setState({stateValue:y.target.value},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null;const D=parseFloat(this.state.stateValue);await this.props.oContext.socket.setState(this.getObjectID(),D,!1)},this.props.schema.controlDelay||0)})},label:this.getText(this.props.schema.label,this.props.schema.noTranslation),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}else if(this.state.obj.common.type==="boolean"){let c=null,f,m;this.state.stateValue?(f=this.getText(this.props.schema.trueText,this.props.schema.noTranslation),this.props.schema.trueImage&&(c=ut(this.props.schema.falseImage,f?{marginRight:8}:void 0)),m=this.props.schema.trueTextStyle):(f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation),this.props.schema.falseImage&&(c=ut(this.props.schema.falseImage,f?{marginLeft:8}:void 0)),m=this.props.schema.falseTextStyle),m=Object.assign(t,m),h=M.createElement("div",{style:m},o,M.createElement(N.Box,{style:{display:"flex",alignItems:"center",gap:8},sx:r,key:this.props.schema.blinkOnUpdate?f:void 0},c,f||(this.state.stateValue?j.I18n.t("ra_true"):j.I18n.t("ra_false"))))}else{const c=this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit;let f=this.state.stateValue;if(f!=null&&(this.props.schema.options||this.state.obj.common.states)){const E=this.getNormalizedStates().find(b=>b.value===f);E&&(f=E.label)}let m,y;this.state.controlType==="html"?(y=(f||"").toString(),m=M.createElement("span",{dangerouslySetInnerHTML:{__html:f}})):this.state.stateValue===null?(m="null",y=m):this.state.stateValue===void 0?(m="undefined",y=m):(m=f.toString(),y=m),h=M.createElement("div",{style:t},o,M.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:4}},M.createElement(N.Box,{sx:r,key:this.props.schema.blinkOnUpdate?y:void 0},m),c?M.createElement("span",{style:{opacity:.7,fontSize:"smaller"}},c):null))}}return h}}const Nn={fullWidth:L=>({width:"100%",backgroundColor:L.palette.mode==="dark"?"#FFF":"#000",borderStyle:"hidden"}),primary:L=>({backgroundColor:L.palette.primary.main}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class il extends K{renderItem(){return M.createElement(N.Box,{component:"hr",sx:j.Utils.getStyle(this.props.oContext.theme,Nn.fullWidth,this.props.schema.color==="primary"?Nn.primary:this.props.schema.color==="secondary"?Nn.secondary:{backgroundColor:this.props.schema.color||(this.props.oContext.themeType==="dark"?"#333":"#ddd")},{height:this.props.schema.color?this.props.schema.height||2:this.props.schema.height||1})})}}const rl={header:L=>({width:"100%",background:L.palette.primary.main,color:L.palette.primary.contrastText,padding:"4px !important",borderRadius:"3px",marginBlockEnd:0,marginBlockStart:0})};class sl extends K{renderItem(){let n="h5";switch((this.props.schema.size||5).toString()){case"1":n="h1";break;case"2":n="h2";break;case"3":n="h3";break;case"4":n="h4";break;case"5":default:n="h5";break}return M.createElement(N.Box,{component:n,sx:rl.header},this.getText(this.props.schema.label||this.props.schema.text,this.props.schema.noTranslation))}}class ol extends K{renderItem(){let n=this.props.schema.src;return n&&!n.startsWith(".")&&!n.startsWith("http")&&!n.startsWith(`adapter/${this.props.oContext.adapterName}/`)&&!n.startsWith(`./adapter/${this.props.oContext.adapterName}/`)&&(n=`adapter/${this.props.oContext.adapterName}/${n}`),M.createElement("img",{src:n,style:{cursor:this.props.schema.href?"pointer":void 0,width:"100%",height:"100%"},onClick:this.props.schema.href?()=>this.props.schema.href&&window.open(this.props.schema.href,"_blank"):null,alt:""})}}function Mi(L,n,i){return typeof i=="string"?{"@keyframes newValueAnimationOnceColor":{"0%":{color:n?`${i} !important`:i},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnceColor 2s ease-in-out"}:{"@keyframes newValueAnimationOnce":{"0%":{color:n?"#00f900 !important":"#00f900"},"80%":{color:L.palette.mode==="dark"?n?"#518851 !important":"#518851":n?"#008000 !important":"#008000"},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnce 2s ease-in-out"}}function Li(L,n){return typeof n=="string"?{"@keyframes blinkAnimationColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimationColor 2s ease-in-out infinite"}:{"@keyframes blinkAnimation":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimation 2s ease-in-out infinite"}}const Mt={label:{fontWeight:"bold",whiteSpace:"nowrap"},valueImage:{maxHeight:"100%"},valueAndUnit:{display:"flex",gap:4,alignItems:"baseline"},value:{},unit:{fontSize:"smaller",opacity:.7}};class al extends K{renderItem(n){let i=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);this.props.schema.addColon&&typeof i=="string"&&!i.trim().endsWith(":")&&(i=`${i.trim()}:`),i&&(i.includes("
")||i.includes(""))&&(i=j.Utils.renderTextWithA(i));let h;this.props.schema.size==="normal"?h=16:this.props.schema.size==="large"?h=20:typeof this.props.schema.size=="number"&&(h=this.props.schema.size);const v={width:"100%",height:"100%",display:"flex",alignItems:"center",position:"relative",fontSize:h};this.props.schema.narrow?v.gap=8:v.justifyContent="space-between";let s,u;this.props.schema.data&&typeof this.props.schema.data=="object"&&this.props.schema.data.en?u=this.getText(this.props.schema.data):typeof this.props.schema.data=="object"||this.props.schema.data===void 0||this.props.schema.data===null?u=JSON.stringify(this.props.schema.data):typeof this.props.schema.data=="number"?(u=this.props.schema.data.toString(),this.props.oContext.isFloatComma&&(u=u.replace(".",","))):(!this.props.schema.booleanAsCheckbox||typeof this.props.schema.data!="boolean")&&(u=this.props.schema.data.toString());let d=!1;if(this.props.schema.booleanAsCheckbox&&typeof this.props.schema.data=="boolean")s=M.createElement(N.Checkbox,{checked:!!s,disabled:!0,size:this.props.schema.size==="small"?"small":this.props.schema.size==="large"?"large":void 0});else if(u.startsWith("data:image/"))s=M.createElement("div",{style:{...Mt.value,...Mt.valueImage,...this.props.schema.styleValue||void 0}},M.createElement(j.Icon,{src:u}));else{const t={...Mt.value,...this.props.schema.styleValue||void 0};this.props.schema.html?s=M.createElement("div",{style:t,dangerouslySetInnerHTML:{__html:u}}):Array.isArray(this.props.schema.data)?(d=!0,s=M.createElement("div",{style:t},this.props.schema.data.map((r,l)=>M.createElement("div",{key:l},typeof r=="object"||r===null||r===void 0?JSON.stringify(r):r)))):u.includes(` +`)?(d=!0,s=M.createElement("div",{style:t},j.Utils.renderTextWithA(u))):s=M.createElement("div",{style:t},u)}if(this.props.schema.blinkOnUpdate&&this.props.schema.blink){const t=Mi(this.props.oContext.theme,!0,this.props.schema.blinkOnUpdate),r=Li(this.props.oContext.theme,this.props.schema.blink);s=M.createElement(N.Box,{key:u,sx:{...t,...r}},s)}else if(this.props.schema.blinkOnUpdate){const t=Mi(this.props.oContext.theme,!1,this.props.schema.blinkOnUpdate);s=M.createElement(N.Box,{key:u,sx:t},s)}else if(this.props.schema.blink){const t=Li(this.props.oContext.theme,this.props.schema.blink);s=M.createElement(N.Box,{sx:t},s)}this.props.schema.unit&&(s=M.createElement("div",{style:Mt.valueAndUnit},s,M.createElement("div",{style:{...Mt.unit,...this.props.schema.styleUnit||void 0}},this.getText(this.props.schema.unit,this.props.schema.noTranslation))));let a;this.props.schema.labelIcon&&(a=M.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let p;this.props.schema.copyToClipboard&&(p=M.createElement(Z.ContentCopy,{className:"staticCopyButton",style:{position:"absolute",top:"calc(50% - 12px)",right:0,cursor:"pointer"},onClick:()=>{j.Utils.copyToClipboard(u),window.alert(j.I18n.t("ra_Copied"))}}));const e={"& .staticCopyButton":{display:"none"},"& .staticCopyButton:action":{transform:"scale(0.9)"},"&:hover .staticCopyButton":{display:"block"}};return this.props.schema.highlight&&(e["&:hover"]={backgroundColor:this.props.oContext.themeType==="dark"?"#51515180":"#b8b8b880"}),d&&(v.alignItems="top"),M.createElement(N.Box,{component:"div",style:v,sx:e},M.createElement("div",{style:{...Mt.label,...this.props.schema.styleLabel||void 0}},a,i),s,p)}}const Ii={fullWidth:{height:"100%",width:"100%"},link:L=>({textDecoration:"underline",color:L.palette.mode==="dark"?"#4dabf5":"#254e72",cursor:"pointer"})};function Fi(L,n,i){let h,v="";L?L.toString().startsWith("#")||L.toString().startsWith("/")?(h=n||"_self",v=L):L.startsWith("http://")||L.startsWith("https://")?(h=n||"_blank",v=L):(v=`#tab-instances/config/${i}/${L}`,h=n||"_self"):(v=`#tab-instances/config/${i}`,h=n||"_self"),h==="_self"?setTimeout(s=>{s.startsWith("#")?window.location.hash=s:s.startsWith("/")?v=`${window.location.protocol}:${window.location.host}${v}`:(s.startsWith("http://")||s.startsWith("https://"))&&(window.location.href=s)},100,v):(v.startsWith("#")?v=`${window.location.protocol}:${window.location.host}${window.location.pathname}${v}`:v.startsWith("/")&&(v=`${window.location.protocol}:${window.location.host}${v}`),window.open(v,h))}class Oi extends K{renderItem(n,i){if(this.props.schema.button){const v=this.getIcon();return M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ii.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i,startIcon:v,onClick:this.props.schema.href?()=>{const s=this.props.schema.href?this.getText(this.props.schema.href,!0):null;s&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:s,target:this.props.schema.target,close:this.props.schema.close}):Fi(s,this.props.schema.target,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation))}let h=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);return h&&(h.includes("")||h.includes(""))&&(h=j.Utils.renderTextWithA(h)),M.createElement(N.Box,{component:"span",style:{...this.props.schema.controlStyle||void 0},sx:this.props.schema.href?Ii.link:void 0,onClick:this.props.schema.href?()=>{const v=this.props.schema.href?this.getText(this.props.schema.href,!0):null;v&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:v,target:this.props.schema.target||"_blank",close:this.props.schema.close}):Fi(v,this.props.schema.target||"_blank",`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},h)}}const Bn=1024*1024,fe={paper:{width:"100%",marginBottom:16,backgroundColor:"rgba(255, 255, 255, 0.1)"},headerText:{width:"100%"},table:{minWidth:750},label:{display:"flex",justifyContent:"space-between"},title:{flex:"1 1 100%"},rootTool:{paddingLeft:16,paddingRight:8},silver:{opacity:.2},flex:{display:"flex",alignItems:"baseline"},filteredOut:{padding:10,display:"flex",textAlign:"center"},buttonEmpty:{width:34,display:"inline-block"},buttonCell:{whiteSpace:"nowrap"},dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},uploadDiv:{position:"relative",width:"100%",minHeight:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",minHeight:300,position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},tooltip:{pointerEvents:"none"}};function ll(L,n,i){n=n||"key";const h=[];return Object.keys(L).forEach(v=>{const s={};s[n]=v,i?(s[i]=L[v],h.push(s)):h.push(Object.assign(s,L[v]))}),h}function Ri(L,n,i){n=n||"key";const h={};return L.forEach(v=>{let s=v[n];s==null&&(s=""),delete v[n],i?h[s]=v[i]:h[s]=v}),h}function hl(L,n){let i="";for(let h=0;h{i.filter&&(this.filterRefs[i.attr]=pt.createRef())}),this.refDiv=M.createRef()}async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr)||[];let i;if(this.props.schema.objKeyName?i=ll(n,this.props.schema.objKeyName,this.props.schema.objValueName):i=n,Array.isArray(i)||(i=[]),this.props.schema.encryptedAttributes){const h=await this.props.oContext.socket.getCompactSystemConfig();this.secret=(h==null?void 0:h.native.secret)||this.secret,n.forEach(v=>{this.props.schema.encryptedAttributes.forEach(s=>{v[s]&&(v[s]=ul(this.secret,v[s]))})})}this.setState({value:i,visibleValue:null,orderBy:"",order:"asc",iteration:0,filterOn:[],width:0},()=>this.validateUniqueProps())}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),super.componentWillUnmount()}itemTable(n,i,h){var d;const{schema:v}=this.props,s=(d=v.items)==null?void 0:d.find(a=>a.attr===n);if(!s)return null;const u={items:{[n]:s}};return M.createElement($t,{oContext:this.props.oContext,alive:this.props.alive,arrayIndex:h,changed:this.props.changed,common:this.props.common,expertMode:this.props.expertMode,custom:!0,data:i,globalData:this.props.data,index:h+this.state.iteration,onChange:(a,p)=>{const e=JSON.parse(JSON.stringify(this.state.value));e[h][a]=p,this.setState({value:e},()=>{this.validateUniqueProps(),this.onChangeWrapper(e,!0)})},onError:(a,p)=>this.onError(a,p),originalData:this.props.originalData,schema:u,table:!0,themeName:this.props.themeName})}validateUniqueProps(){if(this.props.schema.uniqueColumns)for(const n of this.props.schema.uniqueColumns){const i=[];this.state.value.find(v=>{const s=v[n];return i.includes(s)?(this.onError(n,"is not unique"),this.setState({errorMessage:j.I18n.t('Non-allowed duplicate entry "%s" in column "%s"',s,n)}),!0):(i.push(s),!1)})||(this.onError(n,null),this.setState({errorMessage:""}))}}static descendingComparator(n,i,h){return i[h]n[h]?1:0}static getComparator(n,i){return n==="desc"?(h,v)=>Ve.descendingComparator(h,v,i):(h,v)=>-Ve.descendingComparator(h,v,i)}static getFilterValue(n){var i,h,v;return(v=(h=(i=n==null?void 0:n.current)==null?void 0:i.children[0])==null?void 0:h.children[0])==null?void 0:v.value}static setFilterValue(n,i){return n.current.children[0].children[0].value=i}handleRequestSort=(n,i=!1)=>{const{order:h,orderBy:v}=this.state,u=i?h:v===n&&h==="asc"?"desc":"asc",d=this.stableSort(u,n);JSON.stringify(d)!==JSON.stringify(this.state.value)&&this.setState({value:d,order:u,orderBy:n,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,d))};stableSort=(n,i)=>{const{value:h}=this.state,v=Ve.getComparator(n,i),s=h.map((u,d)=>({el:u,index:d}));return s.sort((u,d)=>{const a=v(u.el,d.el);return a!==0?a:u.index-d.index}),s.map(u=>u.el)};renderShowHideFilter(n){return n.filter?M.createElement(N.IconButton,{title:j.I18n.t("ra_Show/hide filter input"),size:"small",onClick:()=>{const i=[...this.state.filterOn],h=this.state.filterOn.indexOf(n.attr);h===-1?i.push(n.attr):i.splice(h,1),this.setState({filterOn:i},()=>{h&&Ve.getFilterValue(this.filterRefs[n.attr])&&(Ve.setFilterValue(this.filterRefs[n.attr],""),this.applyFilter())})}},this.state.filterOn.includes(n.attr)?M.createElement(Z.FilterAltOff,null):M.createElement(Z.FilterAlt,null)):null}renderImportExportButtons(n){return M.createElement(M.Fragment,null,!n.noDelete&&n.import?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Import data from %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.setState({showImportDialog:!0})},M.createElement(Z.UploadFile,null))):null,n.export?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Export data to %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onExport()},M.createElement(Z.Download,null))):null,n.noDelete?null:M.createElement(N.IconButton,{disabled:!0,size:"small"},M.createElement(Z.Delete,null)))}renderAddButton(n){return M.createElement(N.Tooltip,{title:n?j.I18n.t("ra_Cannot add items with set filter"):j.I18n.t("ra_Add row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",color:"primary",disabled:!!n&&!this.props.schema.allowAddByFilter,onClick:this.onAdd},M.createElement(Z.Add,null))))}enhancedTableHead(n,i){var u;const{schema:h}=this.props,{order:v,orderBy:s}=this.state;return M.createElement(N.TableHead,null,M.createElement(N.TableRow,null,(u=h.items)==null?void 0:u.map((d,a)=>this.renderOneFilter({schema:h,style:{width:d.width},showAddButton:!a&&!h.noDelete,headCell:d,order:v,orderBy:s,index:a,doAnyFilterSet:i})),!h.noDelete&&M.createElement(N.TableCell,{style:{paddingLeft:20,paddingRight:20,width:n,textAlign:"right"},padding:"checkbox"},this.renderImportExportButtons(h))))}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onExport(){const{schema:n}=this.props,{value:i}=this.state,v=[n.items.map(d=>d.attr).join(";")];i.forEach(d=>{const a=[];n.items.forEach(p=>{var e;(e=d[p.attr])!=null&&e.includes(";")?a.push(`"${d[p.attr]}"`):a.push(d[p.attr]===void 0||d[p.attr]===null?"":d[p.attr])}),v.push(a.join(";"))});const s=document.createElement("a");s.setAttribute("href",`data:text/csv;charset=utf-8,${encodeURIComponent(v.join(` +`))}`);const u=new Date;s.setAttribute("download",`${u.getFullYear()}_${(u.getMonth()+1).toString().padStart(2,"0")}_${u.getDate().toString().padStart(2,"0")}_${this.props.oContext.adapterName}.${this.props.oContext.instance}_${this.props.attr}.csv`),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}onImport(n){var u;const i=n.split(` +`).map(d=>d.replace("\r","").trim()),{schema:h}=this.props,v=i.shift().split(";").filter(d=>d&&h.items.find(a=>a.attr===d)),s=[];i.forEach(d=>{const a=d.split(";"),p={};for(let e=0;eo.attr===v[e]);l&&l.type==="number"?r=parseFloat(t):r=t}else r=t;p[v[e]]=r}s.push(p)}),s.length?(u=this.state.value)!=null&&u.length?this.setState({showTypeOfImportDialog:s,showImportDialog:!1}):this.setState({value:s,showImportDialog:!1}):window.alert("ra_No data found in file")}onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),h=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof h[this.props.schema.clone]=="string"){let v=1,s=h[this.props.schema.clone];const u=s.match(/(\d+)$/);for(u?(s=s.replace(u[0],""),v=parseInt(u[0],10)+1):s+="_";i.find(d=>d[this.props.schema.clone]===s+v.toString());)v++;h[this.props.schema.clone]=`${h[this.props.schema.clone]}_${v}`}i.splice(n,0,h),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onChangeWrapper=(n,i)=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout((h,v)=>{this.typingTimer=null;let s;if(this.props.schema.encryptedAttributes){const u=JSON.parse(JSON.stringify(h));if(u.forEach(d=>{this.props.schema.encryptedAttributes.forEach(a=>{d[a]&&(d[a]=hl(this.secret,d[a]))})}),this.props.schema.objKeyName){const d=Ri(u,this.props.schema.objKeyName,this.props.schema.objValueName);s=this.onChange(this.props.attr,d)}else s=this.onChange(this.props.attr,u)}else if(this.props.schema.objKeyName){const u=Ri(JSON.parse(JSON.stringify(h)),this.props.schema.objKeyName,this.props.schema.objValueName);s=this.onChange(this.props.attr,u)}else s=this.onChange(this.props.attr,h);s instanceof Promise&&s.catch(u=>console.error(`Cannot save: ${u}`)),v&&(this.applyFilter(!1,h),this.handleRequestSort(this.state.orderBy,!0))},300,n,i)};onAdd=()=>{var v;const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),h=(v=n.items)==null?void 0:v.reduce((s,u)=>{let d;return u.defaultFunc?this.props.custom?d=u.defaultFunc?this.executeCustom(u.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:d=u.defaultFunc?this.execute(u.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:d=u.default===void 0?null:u.default,s[u.attr]=d,s},{});i.push(h),this.setState({value:i},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};isAnyFilterSet(){return!!Object.keys(this.filterRefs).find(n=>Ve.getFilterValue(this.filterRefs[n]))}applyFilter=(n,i,h)=>{i=i||this.state.value;let v=i.map((s,u)=>u);if(Object.keys(this.filterRefs).forEach(s=>{let u=Ve.getFilterValue(this.filterRefs[s]);!n&&u?(u=u.toLowerCase(),v=v.filter(d=>i[d]&&i[d][s]&&i[d][s].toLowerCase().includes(u))):this.filterRefs[s].current&&Ve.setFilterValue(this.filterRefs[s],"")}),v.length===i.length&&(v=null),v===null&&this.state.visibleValue===null){h&&h();return}JSON.stringify(v)!==JSON.stringify(this.state.visibleValue)?this.setState({visibleValue:v},()=>h&&h()):h&&h()};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),h=i[n];i.splice(n,1),i.splice(n-1,0,h),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),h=i[n];i.splice(n,1),i.splice(n+1,0,h),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onDrop(n){const i=n[0],h=new FileReader;h.onabort=()=>console.log("file reading was aborted"),h.onerror=()=>console.log("file reading has failed"),h.onload=()=>{if(i.size>Bn){window.alert(j.I18n.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(Bn/1024)));return}const v=new Uint8Array(h.result).reduce((s,u)=>s+String.fromCharCode(u),"");this.onImport(v)},h.readAsArrayBuffer(i)}showTypeOfImportDialog(){return this.state.showTypeOfImportDialog?M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showTypeOfImportDialog:!1}),maxWidth:"md"},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Append or replace?")),M.createElement(N.DialogContent,null,j.I18n.t("ra_Append %s entries or replace existing?",this.state.showTypeOfImportDialog.length)),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",color:"primary",autoFocus:!0,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.value));this.state.showTypeOfImportDialog.forEach(i=>n.push(i)),this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Append")),M.createElement(N.Button,{variant:"contained",color:"secondary",autoFocus:!0,onClick:()=>{const n=this.state.showTypeOfImportDialog;this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Replace")))):null}showImportDialog(){return this.state.showImportDialog?M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showImportDialog:!1}),sx:{"& .MuiDialog-paper":{minHeight:500}},maxWidth:"md",fullWidth:!0},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Import from %s","CSV")),M.createElement(N.DialogContent,null,M.createElement(Pi,{multiple:!1,accept:{"text/csv":[".csv"]},maxSize:Bn,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(n,i)=>{this.setState({uploadFile:!1}),n.length?this.onDrop(n):window.alert(i&&i[0]&&i[0].errors&&i[0].errors[0]&&i[0].errors[0].message||j.I18n.t("ra_Cannot upload"))}},({getRootProps:n,getInputProps:i})=>M.createElement("div",{style:{...fe.uploadDiv,...this.state.uploadFile==="dragging"?fe.uploadDivDragging:void 0,...fe.dropZone,...this.state.icon?void 0:fe.dropZoneEmpty},...n()},M.createElement("input",{...i()}),M.createElement("div",{style:fe.uploadCenterDiv},M.createElement("div",{style:fe.uploadCenterTextAndIcon},M.createElement(Z.UploadFile,{style:fe.uploadCenterIcon}),M.createElement("div",{style:fe.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog"))))))),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({showImportDialog:!1}),color:"primary",startIcon:M.createElement(Z.Close,null)},j.I18n.t("Cancel")))):null}renderOneFilter(n){return M.createElement(N.TableCell,{key:`${n.headCell.attr}_${n.index}`,style:n.style,align:"left",sortDirection:n.orderBy===n.headCell.attr?n.order:!1},M.createElement("div",{style:{...fe.flex,...n.schema.showFirstAddOnTop?{flexDirection:"column"}:void 0}},n.showAddButton?this.renderAddButton(n.doAnyFilterSet):null,n.headCell.sort&&M.createElement(N.TableSortLabel,{active:!0,style:n.orderBy!==n.headCell.attr?fe.silver:void 0,direction:n.orderBy===n.headCell.attr?n.order:"asc",onClick:()=>this.handleRequestSort(n.headCell.attr)}),n.headCell.filter&&this.state.filterOn.includes(n.headCell.attr)?M.createElement(N.TextField,{variant:"standard",ref:this.filterRefs[n.headCell.attr],onChange:()=>this.applyFilter(),title:j.I18n.t("ra_You can filter entries by entering here some text"),slotProps:{input:{endAdornment:Ve.getFilterValue(this.filterRefs[n.headCell.attr])&&M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{size:"small",tabIndex:-1,onClick:()=>{Ve.setFilterValue(this.filterRefs[n.headCell.attr],""),this.applyFilter()}},M.createElement(Z.Close,null)))}},fullWidth:!0,placeholder:this.getText(n.headCell.title)}):M.createElement("span",{style:fe.headerText},this.getText(n.headCell.title)),this.renderShowHideFilter(n.headCell)))}enhancedFilterCard(){var u;const{schema:n}=this.props,{order:i,orderBy:h}=this.state;let v;this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1});const s=!n.noDelete&&n.import||n.export;return s||n.items.find(d=>d.sort||d.filter)?M.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Accordion,{style:fe.paper},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null)},M.createElement(N.Typography,null,j.I18n.t("ra_Filter and Data Actions"))),M.createElement(N.AccordionDetails,null,M.createElement(N.Table,null,M.createElement(N.TableBody,null,((u=n.items)==null?void 0:u.find(d=>d.sort||d.filter))&&n.items.map((d,a)=>M.createElement(N.TableRow,{key:`${d.attr}_${a}`},this.renderOneFilter({schema:n,style:v,showAddButton:!1,headCell:d,order:i,orderBy:h,index:a,doAnyFilterSet:!1}))),s?M.createElement(N.TableRow,null,M.createElement(N.TableCell,{align:"left",style:v},M.createElement("span",{style:fe.headerText},j.I18n.t("ra_Actions"))),M.createElement(N.TableCell,{style:v},this.renderImportExportButtons(n))):null))))))):null}enhancedBottomCard(){const{schema:n}=this.props;let i;this.props.schema.compact&&(i={paddingTop:1,paddingBottom:1});const h=this.isAnyFilterSet();return M.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Table,null,M.createElement(N.TableBody,null,M.createElement(N.TableRow,null,M.createElement(N.TableCell,{colSpan:n.items.length+1,style:i},this.renderAddButton(h))))))))}renderCards(){const{schema:n}=this.props;let{visibleValue:i}=this.state,h;this.props.schema.compact&&(h={paddingTop:1,paddingBottom:1}),i||=this.state.value.map((s,u)=>u);const v=this.isAnyFilterSet();return M.createElement(N.Grid2,{container:!0},this.showImportDialog(),this.showTypeOfImportDialog(),this.enhancedFilterCard(),i.map((s,u)=>{var d;return M.createElement(N.Grid2,{key:`${s}_${u}`,size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Table,null,M.createElement(N.TableBody,null,(d=n.items)==null?void 0:d.map(a=>M.createElement(N.TableRow,{key:`${a.attr}_${s}`},M.createElement(N.TableCell,{align:"left",style:h},M.createElement("span",{style:fe.headerText},this.getText(a.title))),M.createElement(N.TableCell,{align:"left",style:h},this.itemTable(a.attr,this.state.value[s],s)))),!n.noDelete&&M.createElement(N.TableRow,null,M.createElement(N.TableCell,{align:"left",style:h},M.createElement("span",{style:fe.headerText},this.getText("Actions"))),M.createElement(N.TableCell,{align:"left",style:h},!v&&!this.state.orderBy?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(s),disabled:u===0},M.createElement(Z.ArrowUpward,null)))):null,!v&&!this.state.orderBy?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move down"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveDown(s),disabled:u===i.length-1},M.createElement(Z.ArrowDownward,null)))):null,M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(s)},M.createElement(Z.Delete,null))),this.props.schema.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(s)},M.createElement(Z.ContentCopy,null))):null)))))))}),this.enhancedBottomCard())}renderTable(){const{schema:n}=this.props;let{visibleValue:i}=this.state;i=i||this.state.value.map((s,u)=>u);const h=this.isAnyFilterSet();let v;return this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1}),M.createElement(N.Paper,{style:fe.paper},this.showImportDialog(),this.showTypeOfImportDialog(),n.label?M.createElement("div",{style:fe.label},M.createElement(N.Toolbar,{variant:"dense",style:fe.rootTool},M.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)))):null,M.createElement(N.TableContainer,null,M.createElement(N.Table,{style:fe.table,size:"small"},this.enhancedTableHead(!h&&!this.state.orderBy?120:64,h),M.createElement(N.TableBody,null,i.map((s,u)=>{var d;return M.createElement(N.TableRow,{hover:!0,key:`${s}_${u}`},(d=n.items)==null?void 0:d.map(a=>M.createElement(N.TableCell,{key:`${a.attr}_${s}`,align:"left",style:v},this.itemTable(a.attr,this.state.value[s],s))),!n.noDelete&&M.createElement(N.TableCell,{align:"left",style:{...v,...fe.buttonCell}},!h&&!this.state.orderBy?u?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(s)},M.createElement(Z.ArrowUpward,null))):M.createElement("div",{style:fe.buttonEmpty}):null,!h&&!this.state.orderBy?uthis.onMoveDown(s)},M.createElement(Z.ArrowDownward,null))):M.createElement("div",{style:fe.buttonEmpty}):null,M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(s)},M.createElement(Z.Delete,null))),this.props.schema.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(s)},M.createElement(Z.ContentCopy,null))):null))}),!n.noDelete&&i.length>=(n.showSecondAddAt||5)?M.createElement(N.TableRow,null,M.createElement(N.TableCell,{colSpan:n.items.length+1,style:{...v}},this.renderAddButton(h))):null)),!i.length&&this.state.value.length?M.createElement("div",{style:fe.filteredOut},M.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},j.I18n.t("ra_All items are filtered out"),M.createElement(N.IconButton,{size:"small",onClick:()=>this.applyFilter(!0)},M.createElement(Z.Close,null)))):null),n.help?M.createElement(N.FormHelperText,{style:{paddingLeft:16}},this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null,this.state.errorMessage?M.createElement("div",{style:{display:"flex",padding:"5px"}},M.createElement(Z.Warning,{color:"error"}),M.createElement("span",{style:{color:"red",alignSelf:"center"}},this.state.errorMessage)):null)}componentDidUpdate(){var n;(n=this.refDiv.current)!=null&&n.clientWidth&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}getCurrentBreakpoint(){return this.state.width?this.state.width<600?"xs":this.state.width<900?"sm":this.state.width<1200?"md":this.state.width<1536?"lg":"xl":"md"}renderItem(){const{schema:n}=this.props;if(!this.state.value||!Array.isArray(this.state.value))return null;const i=this.getCurrentBreakpoint();let h;return i&&(n.useCardFor||["xs"]).includes(i)?h=this.renderCards():h=this.renderTable(),M.createElement("div",{ref:this.refDiv,style:{width:"100%"}},h)}}const ln={indeterminate:{opacity:.5},label:{width:"100%",fontSize:14,marginBottom:2},helper:{width:"100%",fontSize:12},error:{width:"100%",fontSize:12,color:"#FF0000"}};class cl extends K{updateTimeout=null;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({value:n,oldValue:n,jsonError:!1});return}this.setState({value:n,oldValue:n,jsonError:this.validateJson(n)})}validateJson(n){let i=!1;if(this.props.schema.validateJson&&(n||!this.props.schema.allowEmpty))try{JSON.parse(n)}catch(h){console.log("Error in JSON",h),i=!0}return i}static getDerivedStateFromProps(n,i){if(n.oContext.multiEdit&&i.value===K.DIFFERENT_VALUE)return{value:K.DIFFERENT_VALUE};let h=K.getValue(n.data,n.attr);return h!=null&&(h=h.toString()),h==null||h!==i.value&&h!==i.oldValue?{value:h}:null}renderItem(n,i){const h=Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE;if(this.props.schema.time){let u="";return typeof this.state.value=="number"?this.state.value&&this.state.value<9466596e5?u=new Date(this.state.value*1e3).toLocaleString():u=new Date(this.state.value).toLocaleString():typeof this.state.value=="string"&&(u=new Date(this.state.value).toLocaleString()),M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:u,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{readOnly:!0}},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=null),h){const u=K.getValue(this.props.data,this.props.attr),d=(u==null?void 0:u.filter(a=>a||a===0).map(a=>({label:a.toString()||"",value:a})))||[];return d.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),M.createElement(N.Autocomplete,{style:ln.indeterminate,fullWidth:!0,value:d[0],onChange:(a,p)=>{const e=p?p.value:"",t=this.onChange(this.props.attr,e,()=>{this.setState({value:e,oldValue:e,jsonError:this.validateJson(p)})});t instanceof Promise&&t.catch(r=>console.error(`Cannot set value: ${r}`))},options:d,getOptionLabel:a=>a.label,renderInput:a=>M.createElement(N.TextField,{variant:"standard",...a,error:!!n,placeholder:this.getText(this.props.schema.placeholder),slotProps:{htmlInput:{...a.inputProps,maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}let v,s;if((this.props.schema.readOnly||i)&&this.props.schema.copyToClipboard?(this.props.schema.minRows>1&&(s={position:"absolute",right:3,top:20,zIndex:1e3}),v=M.createElement(N.IconButton,{tabIndex:-1,style:s,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.value),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null))):!this.props.schema.readOnly&&!i&&this.state.value&&!this.props.schema.noClearButton&&(this.props.schema.minRows>1&&(s={position:"absolute",right:3,top:20,zIndex:1e3}),v=M.createElement(N.IconButton,{style:s,size:"small",tabIndex:-1,onClick:()=>this.setState({value:"",oldValue:this.state.value},()=>this.onChange(this.props.attr,""))},M.createElement(Z.Close,null)),this.props.schema.minRows<=1&&(v=M.createElement(N.InputAdornment,{position:"end"},v))),this.props.schema.minRows>1){const u=this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation);return M.createElement("div",{style:{width:"100%",position:"relative"}},this.props.schema.label?M.createElement("div",{style:ln.label},this.getText(this.props.schema.label)):null,M.createElement(N.TextareaAutosize,{style:{width:"100%",resize:"vertical",backgroundColor:this.props.oContext.themeType==="dark"?"#363636":"#cccccc",color:this.props.oContext.themeType==="dark"?"#fff":"#111"},minRows:this.props.schema.minRows,maxRows:this.props.schema.maxRows,value:this.state.value===null||this.state.value===void 0?"":this.state.value,disabled:!!i,readOnly:this.props.schema.readOnly||!1,onChange:d=>{const a=d.target.value;this.setState({value:a,oldValue:this.state.value,jsonError:this.validateJson(a)},()=>this.onChange(this.props.attr,a||""))},placeholder:this.getText(this.props.schema.placeholder)}),u||n||this.state.jsonError?M.createElement("div",{style:n?ln.error:ln.helper},n||(this.state.jsonError?j.I18n.t("ra_Invalid JSON"):u)):null)}return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:v}},onChange:u=>{const d=u.target.value;this.setState({value:d,oldValue:this.state.value,jsonError:this.validateJson(d)},()=>this.onChange(this.props.attr,d))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const pl={fullWidth:{width:"100%"}};class dl extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>{if(typeof i=="object"){const h=i;this.setState({text:h.text||"",style:h.style,icon:h.icon,iconStyle:h.iconStyle})}else typeof i=="string"&&this.setState({text:i||""})}).catch(i=>console.error(`Cannot send command: ${i}`))}}getLocalContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const i=this.getLocalContext();(i!==this.localContext||!this.initialized)&&(this.localContext=i,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}if(this.state.text===void 0)return null;let n=null;return this.state.icon&&(n=ut(this.state.icon,{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}),n||(n=M.createElement(j.Icon,{src:this.state.icon,style:{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}}))),this.props.schema.container==="text"?M.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.text),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null)):void 0}},value:this.state.text,label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):M.createElement("div",{style:{...pl.fullWidth,...this.state.style||void 0}},n,this.props.schema.container==="html"?M.createElement("span",{dangerouslySetInnerHTML:{__html:this.state.text||""}}):this.state.text)}}class fl extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){const h=this.props.schema.returnFormat!=="HH:mm:ss",v=new Date(Date.parse(`Thu, 01 Jan 1970 ${this.state.value||"00:00:00"}`));return M.createElement(Wi.TimePicker,{sx:s=>({width:"100%",borderBottom:`1px solid ${s.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${s.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),ampm:this.props.oContext.systemConfig.dateFormat.includes("/"),timeSteps:this.props.schema.timeSteps||this.props.schema.timesteps||{hours:1,minutes:5,seconds:5},format:this.props.schema.format||"HH:mm:ss",disabled:!!i,value:v,onChange:s=>{let u;u=s instanceof Date?s.toTimeString().split(" ")[0]:s.toTimeString(),h&&(u=u.split(":").slice(0,2).join(":")),this.setState({value:u},()=>this.onChange(this.props.attr,this.state.value))},views:this.props.schema.views||["hours","minutes","seconds"],label:this.getText(this.props.schema.label)})}}function gl(L,n){let i;return n&&L.substring(0,n.length)===n?i=L.substring(n.length+1):i=L,i=i.replace(/\./g,"/").replace(/_/g," "),i}class ml extends K{componentDidMount(){var i;super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);if(!n&&((i=this.props.customObj)!=null&&i._id)){const h=gl(this.props.customObj._id,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`);this.setState({value:h})}else this.setState({value:n||""})}renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},value:this.state.value,error:!!n,disabled:i,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),onChange:h=>{const v=h.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,v))}})}}class vl extends K{async componentDidMount(){var i;super.componentDidMount();const n=await this.props.oContext.socket.getObject("system.meta.uuid");this.setState({uuid:((i=n==null?void 0:n.native)==null?void 0:i.uuid)||"unknown"})}renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,error:!!n,disabled:!!i,slotProps:{htmlInput:{readOnly:!0},input:{endAdornment:M.createElement(N.IconButton,{tabIndex:-1,onClick:()=>{j.Utils.copyToClipboard(this.state.uuid),window.alert(j.I18n.t("ra_Copied %s",this.state.uuid))}},M.createElement(Z.ContentCopy,null))}},value:this.state.uuid||"",label:this.getText(this.props.schema.label)||j.I18n.t("ra_Serial number (UUID)"),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const Ni={icon:{width:16,height:16,marginRight:8}};class yl extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getUsers().then(n=>{const i={},h=j.I18n.getLanguage();this.props.schema.short?n.forEach(v=>{var s,u;return i[v._id]={color:(s=v.common)==null?void 0:s.color,icon:(u=v.common)==null?void 0:u.icon,name:j.Utils.getObjectNameFromObj(v,h)}}):n.forEach(v=>{var s,u;return i[v._id.replace(/^system\.user\./,"")]={color:(s=v.common)==null?void 0:s.color,icon:(u=v.common)==null?void 0:u.icon,name:j.Utils.getObjectNameFromObj(v,h)}}),this.setState({users:i})}).catch(n=>console.error(`Cannot get users: ${n}`))}renderItem(n,i){var v,s;const h=K.getValue(this.props.data,this.props.attr);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.state.users&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.users?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:h,renderValue:u=>{var d,a,p;return M.createElement("span",null,this.state.users&&((d=this.state.users[u])!=null&&d.icon)?M.createElement(j.Icon,{src:this.state.users&&((a=this.state.users[u])==null?void 0:a.icon),style:Ni.icon}):null,this.state.users&&((p=this.state.users[u])==null?void 0:p.name)||u||"")},style:{color:this.state.users&&((v=this.state.users[h])==null?void 0:v.color)||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users&&((s=this.state.users[h])==null?void 0:s.color),this.props.oContext.themeType)},onChange:u=>this.onChange(this.props.attr,u.target.value)},this.state.users&&Object.keys(this.state.users).map(u=>M.createElement(N.MenuItem,{style:{color:this.state.users[u].color||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users[u].color,this.props.oContext.themeType)},key:u,value:u},this.state.users[u].icon?M.createElement(j.Icon,{src:this.state.users[u].icon,style:Ni.icon}):null,this.state.users[u].name))):M.createElement(N.TextField,{variant:"standard",error:!!n,disabled:!!i,value:h,onChange:u=>this.onChange(this.props.attr,u.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class bl extends K{async componentDidMount(){super.componentDidMount();const n=await ss(()=>import("./index-CttBOMyq.js").then(i=>i.i),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url);this.setState({QRCode:n.default})}renderItem(){const n=this.state.QRCode;return n?M.createElement(n,{value:this.props.schema.data,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}):null}}const wl={accordion:$s,alive:Ts,autocomplete:_s,autocompleteSendTo:ks,certCollection:Fs,certificate:Ls,certificates:Is,checkbox:Os,checkLicense:ct,chip:fi,chips:fi,color:Ws,coordinates:Hs,cron:Ms,custom:Ut,datePicker:zs,deviceManager:js,divider:il,file:eo,fileSelector:mn,func:to,header:sl,image:ro,imageSendTo:io,infoBox:so,instance:oo,interface:ao,ip:no,jsonEditor:Oa,language:Na,license:Ba,number:Pa,oauth2:Wa,objectId:Ha,password:za,pattern:ja,port:Ua,qrCode:bl,room:Ga,select:Ja,selectSendTo:Qa,sendto:_i,sendTo:_i,setState:qa,slider:el,state:nl,staticImage:ol,staticInfo:al,staticLink:Oi,staticText:Oi,table:Ve,text:cl,textSendTo:dl,timePicker:fl,topic:ml,uuid:vl,user:yl},Qe={fullWidth:{width:"100%"},paper:{margin:1,width:"auto !important",overflowY:"auto",paddingBottom:1},paperWithIcons:{height:"calc(100vh - 259px) !important"},paperWithoutIcons:{height:"calc(100vh - 235px) !important"},padding:{padding:"10px"},heading:{},primary:L=>({backgroundColor:L.palette.primary.main,color:L.palette.mode==="dark"?"inherit":"#FFF"}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class $t extends K{componentDidMount(){var n;super.componentDidMount(),(n=this.props.schema)!=null&&n.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(`${this.props.oContext.adapterName}.${this.props.attr}`)==="true"})}renderItems(n,i){return n?Object.keys(n).map(h=>{if(this.props.oContext.multiEdit&&n[h].noMultiEdit)return null;const v=n[h].type||"panel";let s,u="Use this.props.oContext.socket!";return v==="custom"?(n[h].url?s=Ut:this.props.oContext.customs&&this.props.oContext.customs[n[h].component]?s=this.props.oContext.customs[n[h].component]:(console.error(`Cannot find custom component: ${n[h].component}`),s=K),u=this.props.oContext.socket):v==="panel"?s=$t:s=wl[v]||K,M.createElement(s,{socket:u,globalData:this.props.globalData,oContext:this.props.oContext,key:`${h}_${this.props.index===void 0?"":this.props.index}`,index:this.props.index,changed:this.props.changed,arrayIndex:this.props.arrayIndex,expertMode:this.props.expertMode,commandRunning:this.props.commandRunning,style:Qe.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onError:this.props.onError,onChange:this.props.onChange,disabled:i,customObj:this.props.customObj,custom:this.props.custom,schema:n[h],attr:h,table:this.props.table})}):null}render(){const n=this.props.schema;if(!n)return null;const{disabled:i,hidden:h}=this.calculate(n),v=this.props.schema.items,s=this.props.schema.style||{};if(h){if(n.hideOnlyControl){const d=M.createElement(N.Grid2,{size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:j.Utils.getStyle(this.props.oContext.theme,{marginBottom:0,textAlign:"left"},s,this.props.oContext.themeType==="dark"&&n.darkStyle)});return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),d):d}return null}if(this.props.table)return this.renderItems(v,i);if(this.props.custom)return M.createElement(N.Grid2,{key:`${this.props.attr}_${this.props.index}`,container:!0,style:Qe.fullWidth,columnSpacing:2,rowSpacing:1,sx:s},this.renderItems(v,i));let u;if(n.collapsable)u=M.createElement(N.Accordion,{key:`${this.props.attr}_${this.props.index}`,style:Qe.fullWidth,expanded:!!this.state.expanded,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.oContext.adapterName}.${this.props.attr}`,this.state.expanded?"false":"true"),this.setState({expanded:!this.state.expanded})}},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,s,this.props.oContext.themeType&&n.darkStyle,n.color==="primary"?Qe.primary:n.color==="secondary"&&Qe.secondary,{width:"100%"})},M.createElement(N.Typography,{style:Qe.heading},this.getText(n.label))),M.createElement(N.AccordionDetails,null,M.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:{...s,width:"100%",padding:"10px"}},this.renderItems(v,i))));else{const d=j.Utils.getStyle(this.props.oContext.theme,this.props.style,s,{width:"100%"},this.props.isParentTab&&Qe.paper,this.props.isParentTab&&(this.props.withoutSaveButtons?this.props.withIcons?{height:"calc(100% - 88px) !important"}:{height:"calc(100% - 64px) !important"}:this.props.withIcons?Qe.paperWithIcons:Qe.paperWithoutIcons));u=M.createElement(N.Box,{component:"div",key:`${this.props.attr}_${this.props.index}`,className:this.props.className,sx:d},M.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:j.Utils.getStyle(this.props.oContext.theme,{width:"100%"},this.props.isParentTab&&Qe.padding,this.props.schema.innerStyle)},this.renderItems(v,i)))}if(!this.props.isParentTab){const d=M.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:{marginBottom:0,textAlign:"left",...s}},u);return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),d):d}return u}}const hn={tabs:{height:"100%",width:"100%"},panel:{width:"100%",display:"block"},panelWithIcons:{height:"calc(100% - 72px)"},panelWithoutIcons:{height:"calc(100% - 48px)"}};class Cl extends K{resizeTimeout=null;refDiv;constructor(n){super(n);let i;if(this.props.root){const h=(window.location.hash||"").replace(/^#/,"").split("/");if(h.length>=3&&h[1]==="config"){const v=h[3],s=parseInt(v,10);v&&s.toString()===v?s>=0&&s{const n=(window.location.hash||"").replace(/^#/,"").split("/");if(n.length>3&&n[1]==="config"){const i=n[3],h=parseInt(i,10);let v;h.toString()===i?h>=0&&h{this.setState({initialBreakpoint:n})},50),n}return this.state.initialBreakpoint}componentDidUpdate(){var n;!this.state.initialBreakpoint&&((n=this.refDiv.current)!=null&&n.clientWidth)&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}onMenuChange(n){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.${this.props.oContext.adapterName}`,n),this.setState({tab:n},()=>{if(this.props.root){const i=(window.location.hash||"").split("/");i.length>=3&&i[1]==="config"&&(i[3]=this.state.tab,window.location.hash=i.join("/"))}})}render(){const n=this.props.schema.items;let i=!1;const h=[];Object.keys(n).map(u=>{let d;if(n[u].expertMode&&!this.props.expertMode)return;if(this.props.custom){if(this.executeCustom(n[u].hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData))return;d=this.executeCustom(n[u].disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData)}else{if(this.execute(n[u].hidden,!1,this.props.data,this.props.index,this.props.globalData))return;d=this.execute(n[u].disabled,!1,this.props.data,this.props.index,this.props.globalData)}const a=this.getIcon(n[u].icon);i=i||!!a,h.push({icon:a,disabled:d,label:this.getText(n[u].label),name:u})}),h.find(u=>u.name===this.state.tab)||setTimeout(()=>this.setState({tab:h[0].name}),50);const v=this.getCurrentBreakpoint();let s;return v==="xs"&&h.length>2?s=M.createElement(N.Toolbar,{style:{top:2,backgroundColor:this.props.oContext.themeType==="dark"?"#222":"#DDD"},variant:"dense"},M.createElement(N.IconButton,{onClick:u=>this.setState({openMenu:u.currentTarget})},M.createElement(Z.Menu,null)),this.state.openMenu?M.createElement(N.Menu,{open:!0,anchorEl:this.state.openMenu,onClose:()=>this.setState({openMenu:null})},h.map(u=>M.createElement(N.MenuItem,{disabled:u.disabled,key:u.name,onClick:()=>{this.setState({openMenu:null},()=>this.onMenuChange(u.name))},selected:u.name===this.state.tab},i?M.createElement(N.ListItemIcon,null,u.icon):null,u.label))):null):s=M.createElement(N.Tabs,{variant:"scrollable",scrollButtons:"auto",style:this.props.schema.tabsStyle,value:this.state.tab,onChange:(u,d)=>this.onMenuChange(d)},h.map(u=>M.createElement(N.Tab,{id:u.name,wrapped:!0,disabled:u.disabled,key:u.name,value:u.name,iconPosition:this.props.schema.iconPosition||"start",icon:u.icon,label:u.label}))),M.createElement("div",{style:hn.tabs,ref:this.refDiv},s,M.createElement($t,{oContext:this.props.oContext,withoutSaveButtons:this.props.withoutSaveButtons,isParentTab:!0,changed:this.props.changed,key:this.state.tab,expertMode:this.props.expertMode,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,commandRunning:this.props.commandRunning,style:{...hn.panel,...i?hn.panelWithIcons:hn.panelWithoutIcons},common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onChange:this.props.onChange,onError:this.props.onError,customObj:this.props.customObj,custom:this.props.custom,schema:n[this.state.tab],table:this.props.table,withIcons:i}))}}const El={root:{width:"100%",height:"100%"}};class cn extends pt.Component{forceUpdateHandlers;errorTimeout=null;errorCached=null;oContext;constructor(n){super(n),this.state={originalData:JSON.stringify(this.props.data),changed:!1,errors:{},updateData:this.props.updateData||0,systemConfig:null,alive:!1,commandRunning:!1,schema:JSON.parse(JSON.stringify(this.props.schema))},this.forceUpdateHandlers={},this.buildDependencies(this.state.schema),this.readData()}static getDerivedStateFromProps(n,i){return n.updateData!==i.updateData?{updateData:n.updateData,originalData:JSON.stringify(n.data),schema:JSON.parse(JSON.stringify(n.schema))}:null}static async loadI18n(n,i,h){if(i===!0||i&&typeof i=="string"){const v=j.I18n.getLanguage(),s=typeof i=="string"?i:"i18n";let u=await n.fileExists(`${h}.admin`,`${s}/${v}.json`),d;if(u?d=`${s}/${v}.json`:(u=await n.fileExists(`${h}.admin`,`${s}/${v}/translations.json`),u?d=`${s}/${v}/translations.json`:v!=="en"&&(u=await n.fileExists(`${h}.admin`,`${s}/en.json`),u?d=`${s}/en.json`:(u=await n.fileExists(`${h}.admin`,`${s}/en/translations.json`),u&&(d=`${s}/en/translations.json`)))),d){const a=await n.readFile(`${h}.admin`,d);let p;a.file!==void 0?p=a.file:p=a;try{const e=JSON.parse(p);j.I18n.extendTranslations(e,v)}catch(e){return console.error(`Cannot parse language file "${h}.admin/${d}: ${e}`),""}return d}return console.warn(`Cannot find i18n for ${h} / ${d}`),""}return i&&typeof i=="object"&&j.I18n.extendTranslations(i),""}onCommandRunning=n=>this.setState({commandRunning:n});readData(){this.props.socket.getCompactSystemConfig().then(n=>this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(i=>this.setState({systemConfig:n.common,alive:!!(i&&i.val)},()=>{this.updateContext(!0),this.props.custom||this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`,this.onAlive)}))).catch(n=>console.error(`Cannot read system config: ${n}`))}onAlive=(n,i)=>{!!(i!=null&&i.val)!==this.state.alive&&this.setState({alive:!!(i!=null&&i.val)})};onChange=(n,i,h,v)=>{if(this.props.onValueChange)this.props.onValueChange(n,i,v),h&&h();else if(n&&this.props.onChange){const s={changed:JSON.stringify(n)!==this.state.originalData};this.setState(s,()=>{this.props.onChange(n,s.changed,v),h&&h()})}else v&&this.props.onChange(null,null,v)};onError=(n,i)=>{this.errorCached=this.errorCached||JSON.parse(JSON.stringify(this.state.errors));const h=this.errorCached;i?h[n]=i:delete h[n],this.errorTimeout&&clearTimeout(this.errorTimeout),JSON.stringify(h)!==JSON.stringify(this.state.errors)?this.errorTimeout=setTimeout(()=>this.setState({errors:this.errorCached},()=>{this.errorTimeout=null,this.errorCached=null,this.props.onError(!!Object.keys(this.state.errors).length)}),50):this.errorCached=null};flatten(n,i){return i=i||{},n.items&&Object.keys(n.items).forEach(h=>{i[h]=n.items[h],this.flatten(n.items[h],i)}),i}buildDependencies(n){const i=this.flatten(n);Object.keys(i).forEach(h=>{var v,s,u,d,a,p,e,t,r,l;(v=i[h].confirm)!=null&&v.alsoDependsOn&&((s=i[h].confirm)==null||s.alsoDependsOn.forEach(o=>{if(!i[o])console.error(`[JsonConfigComponent] Attribute ${o} does not exist!`),o.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${o.replace(/^data\./,"")}" instead of "${o}"`);else{i[o].confirmDependsOn=i[o].confirmDependsOn||[];const c={...i[h],attr:h};c.confirm&&(c.confirm.cancel="Undo"),i[o].confirmDependsOn.push(c)}})),(u=i[h].onChange)!=null&&u.alsoDependsOn&&((d=i[h].onChange)==null||d.alsoDependsOn.forEach(o=>{if(!i[o])console.error(`[JsonConfigComponent] Attribute ${o} does not exist!`),o.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${o.replace(/^data\./,"")}" instead of "${o}"`);else{i[o].onChangeDependsOn=i[o].onChangeDependsOn||[];const c={...i[h],attr:h};i[o].onChangeDependsOn.push(c)}})),(a=i[h].hidden)!=null&&a.alsoDependsOn&&((p=i[h].hidden)==null||p.alsoDependsOn.forEach(o=>{if(!i[o])console.error(`[JsonConfigComponent] Attribute ${o} does not exist!`),o.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${o.replace(/^data\./,"")}" instead of "${o}"`);else{i[o].hiddenDependsOn=i[o].hiddenDependsOn||[];const c={...i[h],attr:h};i[o].hiddenDependsOn.push(c)}})),(e=i[h].label)!=null&&e.alsoDependsOn&&((t=i[h].label)==null||t.alsoDependsOn.forEach(o=>{if(!i[o])console.error(`[JsonConfigComponent] Attribute ${o} does not exist!`),o.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${o.replace(/^data\./,"")}" instead of "${o}"`);else{i[o].labelDependsOn=i[o].labelDependsOn||[];const c={...i[h],attr:h};i[o].labelDependsOn.push(c)}})),(r=i[h].help)!=null&&r.alsoDependsOn&&((l=i[h].help)==null||l.alsoDependsOn.forEach(o=>{if(!i[o])console.error(`[JsonConfigComponent] Attribute ${o} does not exist!`),o.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${o.replace(/^data\./,"")}" instead of "${o}"`);else{i[o].helpDependsOn=i[o].helpDependsOn||[];const c={...i[h],attr:h};i[o].helpDependsOn.push(c)}}))})}updateContext(n){this.oContext={DeviceManager:this.props.DeviceManager,adapterName:this.props.adapterName,changeLanguage:this.changeLanguage,common:this.props.common,customs:this.props.customs,dateFormat:this.props.dateFormat,embedded:this.props.embedded,forceUpdate:this.forceAttrUpdate,imagePrefix:this.props.imagePrefix,instance:this.props.instance,instanceObj:this.props.instanceObj,isFloatComma:this.props.isFloatComma,multiEdit:this.props.multiEdit,onBackEndCommand:this.props.onBackEndCommand,onCommandRunning:this.onCommandRunning,onValueChange:this.props.onValueChange,registerOnForceUpdate:this.registerOnForceUpdate,socket:this.props.socket,systemConfig:this.state.systemConfig,theme:this.props.theme,themeType:this.props.themeType,_themeName:this.props.themeName,updateData:this.state.updateData},n&&this.forceUpdate()}renderItem(n){return n.type==="tabs"?M.createElement(Cl,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,onChange:this.onChange,onError:(i,h)=>this.onError(i,h),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,expertMode:this.props.expertMode,themeName:this.props.themeName}):n.type==="panel"||!n.type?M.createElement($t,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,expertMode:this.props.expertMode,index:1e3,isParentTab:!this.props.embedded&&!this.props.withoutSaveButtons,onChange:this.onChange,onError:(i,h)=>this.onError(i,h),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,themeName:this.props.themeName}):(console.error(`Unknown item type in root: ${JSON.stringify(n)}`),null)}changeLanguage=()=>{this.forceUpdate()};forceAttrUpdate=(n,i)=>{Array.isArray(n)?n.forEach(h=>this.forceUpdateHandlers[h]&&this.forceUpdateHandlers[h](i)):this.forceUpdateHandlers[n]&&this.forceUpdateHandlers[n](i)};registerOnForceUpdate=(n,i)=>{i?this.forceUpdateHandlers[n]=i:this.forceUpdateHandlers[n]&&delete this.forceUpdateHandlers[n]};render(){return!this.state.systemConfig||!this.oContext?M.createElement(N.LinearProgress,null):(this.oContext._themeName!==this.props.themeName&&(this.oContext._themeName=this.props.themeName,setTimeout(()=>this.updateContext(!0),0)),M.createElement("div",{style:{...!this.props.embedded||this.props.withoutSaveButtons?El.root:void 0,...this.props.style,...this.state.schema.style}},this.renderItem(this.state.schema)))}}const Et={root:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},scroll:{height:"calc(100% - 48px)",overflowY:"auto"},exportImportButtons:{position:"absolute",top:5,right:0,zIndex:3},button:{marginRight:"5px"},tooltip:{pointerEvents:"none"}};function Sl(L,n){let i="";for(let h=0;h{const v=document.createElement("script");v.setAttribute("id",n),v.onload=h,v.src=L,document.getElementsByTagName("head")[0].appendChild(v)})}let $l=class extends j.Router{fileSubscribed=[];fileLangSubscribed="";secret;constructor(n){super(n),this.state={updateData:0,changed:!1,confirmDialog:!1,theme:j.Theme(n.themeName),saveConfigDialog:!1,hash:"_"},this.secret=n.secret||"",this.getInstanceObject().then(i=>this.getConfigFile().then(h=>cn.loadI18n(this.props.socket,h==null?void 0:h.i18n,this.props.adapterName).then(v=>{v&&(this.fileLangSubscribed||(this.fileLangSubscribed=v,this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange))),i?this.setState({schema:h,data:i.native,common:i.common,hash:pi(JSON.stringify(h)).toString()}):window.alert(`Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`)})))}componentWillUnmount(){super.componentWillUnmount(),this.fileSubscribed.length&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileSubscribed,this.onFileChange),this.fileSubscribed=[]),this.fileLangSubscribed&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange),this.fileLangSubscribed="")}handleFileSelect=n=>{const i=n.target.files[0];if(i){const h=new FileReader;h.onload=v=>{if(!v.target)return;const s=v.target.result;try{const u=JSON.parse(s);this.setState({data:u,changed:JSON.stringify(u)!==JSON.stringify(this.state.originalData)})}catch{window.alert(j.I18n.t("[JsonConfig] Failed to parse JSON file"))}},h.readAsText(i)}else window.alert(j.I18n.t("[JsonConfig] Failed to open JSON File"))};getExportImportButtons(){return M.createElement("div",{style:Et.exportImportButtons},M.createElement(N.Tooltip,{title:this.props.t("Import settings from JSON file"),slotProps:{popper:{sx:Et.tooltip}}},M.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{const n=document.createElement("input");n.setAttribute("type","file"),n.setAttribute("id","files"),n.setAttribute("opacity",0),n.addEventListener("change",i=>this.handleFileSelect(i),!1),n.click()}},M.createElement(Z.Publish,null))),M.createElement(N.Tooltip,{title:this.props.t("Export setting to JSON file"),slotProps:{popper:{sx:Et.tooltip}}},M.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{this.state.data&&j.Utils.generateFile(`${this.props.adapterName}.${this.props.instance}.json`,this.state.data)}},M.createElement(Z.Publish,{style:{transform:"rotate(180deg)"}}))))}onFileChange=async(n,i,h)=>{var v;if(n===`${this.props.adapterName}.admin`&&h){if(i===this.fileLangSubscribed)try{await cn.loadI18n(this.props.socket,(v=this.state.schema)==null?void 0:v.i18n,this.props.adapterName),this.setState({hash:`${this.state.hash}1`})}catch{}else if(this.fileSubscribed.includes(i))try{const s=await this.getConfigFile(this.fileSubscribed[0]);this.setState({schema:s,hash:pi(JSON.stringify(s)).toString()})}catch{}}};async getInstanceObject(){var n;try{const i=await this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`);if(Array.isArray(i.encryptedNative)){if(!this.secret){const h=await this.props.socket.getSystemConfig();await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js"),this.secret=h.native.secret}return(n=i.encryptedNative)==null||n.forEach(h=>{i.native[h]&&(i.native[h]=Al(this.secret,i.native[h]))}),i}return i}catch(i){window.alert(`[JsonConfig] Cannot read instance object: ${i}`)}return null}renderDialogConfirm(){return this.state.confirmDialog?M.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Please confirm"),text:j.I18n.t("ra_Some data are not stored. Discard?"),ok:j.I18n.t("ra_Discard"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>this.setState({confirmDialog:!1},()=>n&&j.Router.doNavigate(null))}):null}async scanForInclude(n,i){if(typeof n["#include"]=="string"){const v=await this._getConfigFile(n["#include"],[...i]);return delete n["#include"],v&&(n={...n,...v}),n}const h=Object.keys(n);for(let v=0;v ${i.join(" => ")}`),null;i.push(n);try{await this.props.socket.fileExists(`${this.props.adapterName}.admin`,n)||(n="jsonConfig.json");const v=await this.props.socket.readFile(`${this.props.adapterName}.admin`,n);let s="",u="";if(v.file!==void 0&&(u=v.file),typeof u=="string")s=u;else if(u.type==="Buffer"){let d="";const a=new Uint8Array(u.data),p=a.byteLength;for(let e=0;ethis.setState({saveConfigDialog:!1},()=>n&&this.onSave(!0))}):null}findAttr(n,i){if(i=i||this.state.schema,i!=null&&i.items){if(n in i.items)return i.items[n];for(const h of Object.values(i.items)){const v=this.findAttr(n,h);if(v)return v}}return null}postProcessing(n,i,h){if(h=h||this.state.schema,!n){console.error(`Data is empty in postProcessing: ${i}, ${JSON.stringify(h)}`);return}const v=n[i];if(h.items)if(h.type==="table"){const s=v;if(!Array.isArray(s))return;for(const u of s)for(const d of h.items)this.postProcessing(u,d.attr,d)}else for(const[s,u]of Object.entries(h.items)){if(u.type==="panel"||u.type==="tabs"||u.type==="accordion")return;this.postProcessing(n,s,u)}else if(i&&typeof v=="string")if(h.type==="text")h.trim!==!1&&(n[i]=v.trim());else if(h.type==="ip")n[i]=v.trim();else if(h.type==="number"){const s=parseFloat(v.toString().replace(",","."));h.min!==void 0&&sh.max?n[i]=h.max:n[i]=s}else if(h.type==="port"){const s=parseInt(v.toString(),10);h.min!==void 0&&sh.max&&(n[i]=h.max),n[i]!==0&&s<20?n[i]=20:s>65535?n[i]=65535:n[i]=s}else h.type==="checkbox"&&(n[i]=n[i]===!0||n[i]==="true"||n[i]==="on"||n[i]===1||n[i]==="1")}async onSave(n,i){if(n){const h=await this.getInstanceObject();if(!h){console.error("Something went wrong: may be no connection?"),window.alert("Something went wrong: may be no connection?");return}if(!this.state.data||!this.state.schema)return;const v={};for(const u of Object.keys(this.state.data)){const d=this.findAttr(u);(!d||!d.doNotSave||d.type==="state")&&!u.startsWith("_")?K.setValue(h.native,u,this.state.data[u]):(K.setValue(h.native,u,null),v[u]=this.state.data[u])}try{const u=JSON.parse(JSON.stringify(h));if(Array.isArray(u.encryptedNative)){await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js");for(const d of u.encryptedNative)u.native[d]&&(u.native[d]=xl(this.secret,u.native[d]))}await this.props.socket.setObject(u._id,u)}catch(u){window.alert(`[JsonConfig] Cannot set object: ${u}`)}const s={...h.native,...v};console.log(s),this.setState({changed:!1,data:s,updateData:this.state.updateData+1,originalData:s},()=>i&&j.Router.doNavigate(null))}else this.state.changed?this.setState({confirmDialog:!0}):j.Router.doNavigate(null)}componentDidUpdate(n,i){i.changed!==this.state.changed&&this.props.configStored(!this.state.changed)}async componentDidMount(){const n=`${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;console.log(`fetch ${n}`),await fetch(n)}render(){return!this.state.data||!this.state.schema?M.createElement(N.LinearProgress,null):M.createElement("div",{style:Et.root},this.renderDialogConfirm(),this.getExportImportButtons(),this.renderSaveConfigDialog(),M.createElement(cn,{key:this.state.hash,style:Et.scroll,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,adapterName:this.props.adapterName,instance:this.props.instance,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,schema:this.state.schema,common:this.state.common,expertMode:this.props.expertMode,data:this.state.data,updateData:this.state.updateData,onError:n=>this.setState({error:n}),onChange:(n,i,h)=>{h&&this.state.error&&(window.alert(j.I18n.t("Cannot save configuration because of error in configuration")),h=!1),h&&!this.state.changed&&!i&&(h=!1),n?this.setState({data:n,changed:i,saveConfigDialog:h}):h!==void 0&&this.setState({saveConfigDialog:h})},DeviceManager:this.props.DeviceManager,theme:this.state.theme}),M.createElement(j.SaveCloseButtons,{isIFrame:!1,dense:!0,paddingLeft:0,newReact:!0,theme:this.state.theme,noTextOnButtons:this.props.width==="xs"||this.props.width==="sm"||this.props.width==="md",changed:!!(this.state.error||this.state.changed),error:!!this.state.error,onSave:n=>this.onSave(!0,n),onClose:()=>this.onSave(!1)}))}};export{K as ConfigGeneric,$t as ConfigPanel,$l as JsonConfig,cn as JsonConfigComponent}; diff --git a/admin/custom/assets/index-BAaNTm9A.js b/admin/custom/assets/index-CEFrj8jA.js similarity index 66% rename from admin/custom/assets/index-BAaNTm9A.js rename to admin/custom/assets/index-CEFrj8jA.js index 2435ce620..592658e38 100644 --- a/admin/custom/assets/index-BAaNTm9A.js +++ b/admin/custom/assets/index-CEFrj8jA.js @@ -1,25 +1,25 @@ -import{w as _e,u as cr,l as ur,a as Nr}from"./createTheme-BwMO3rTt.js";import{C as b,R as a}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{C as g}from"./ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js";import{C as m,a as tc,D as un,u as sc}from"./index-B8sZ2j0S.js";import{g as ic}from"./_commonjsHelpers-D6-XlEtG.js";import{u as oc}from"./useTheme-CDtRWagv.js";import"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import"./useTheme-MELayQMj.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";import"./defaultTheme-avbtL0lf.js";const Ai=11/23/100;function lr(i){const e={r:0,g:0,b:0};if(i.length===7)e.r=parseInt(i.substring(1,3),16),e.g=parseInt(i.substring(3,5),16),e.b=parseInt(i.substring(5,7),16);else if(i.length===4){const t=i[1],s=i[2],o=i[3];e.r=parseInt(t+t,16),e.g=parseInt(s+s,16),e.b=parseInt(o+o,16)}return e}function rc(i){return`#${Math.round(i.r).toString(16)}${Math.round(i.g).toString(16)}${Math.round(i.b).toString(16)}`}function Mc(i,e,t){const s=lr(i),o=lr(e);return s.r+=o.r*(.05+Ai*(t-1)),s.g+=o.g*(.05+Ai*(t-1)),s.b+=o.b*(.05+Ai*(t-1)),rc(s)}function Lr(i,e){const t={};for(let s=1;s<=24;s++)t[`elevation${s}`]={backgroundColor:Mc(i,e,s)};return t}function nc(i,e){var M,n,u,N,l,c,L,j,T,D,z;let t,s;i==="dark"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#121212","#fff")},t={name:i,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="blue"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="colored"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#151d21","#fff")},t={name:i,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):i==="PT"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):i==="DX"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(s={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(n=(M=t.palette)==null?void 0:M.primary)==null?void 0:n.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:cr[300],dark:cr[400]});const o=ur(t),r=o.palette;return ur(o,{...e||void 0,components:{...s,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(u=r.grey)==null?void 0:u[300],color:r.getContrastText&&((N=r.grey)!=null&&N[300])?r.getContrastText(r.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(l=r.text)==null?void 0:l.primary,borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(c=r.action)==null?void 0:c.disabledBackground}`},"&:hover":{borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:Nr(((L=r.text)==null?void 0:L.primary)||"",((j=r.action)==null?void 0:j.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(T=r.text)==null?void 0:T.primary,"&:hover":{backgroundColor:Nr(((D=r.text)==null?void 0:D.primary)||"",((z=r.action)==null?void 0:z.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function ac(){let i,e;const t=new Promise((s,o)=>{i=s,e=o});return t.resolve=i,t.reject=e,t}function Hi(i){return(i==null?void 0:i.rows.map(e=>e.value).filter(e=>!!e))??[]}function Ke(i){return i!=null&&i.startsWith("system.host.")||(i=`system.host.${i}`),i}function Ms(i){return i!=null&&i.startsWith("system.host.")&&(i=i.substring(12)),i}function jr(i){return new Promise(e=>{setTimeout(e,i)})}function xs(i){i=(i||"").toString();const e=i[0]==="*",t=i[i.length-1]==="*";return i=i.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+i+(t?"":"$")}var Re;(function(i){i[i.CONNECTING=0]="CONNECTING",i[i.CONNECTED=1]="CONNECTED",i[i.OBJECTS_LOADED=2]="OBJECTS_LOADED",i[i.READY=3]="READY"})(Re||(Re={}));var ye;(function(i){i.PERMISSION_ERROR="permissionError",i.NOT_CONNECTED="notConnectedError",i.TIMEOUT="timeout",i.NOT_ADMIN="Allowed only in admin",i.NOT_SUPPORTED="Not supported"})(ye||(ye={}));const t4e=ye.PERMISSION_ERROR;ye.NOT_CONNECTED;const cc=["material","echarts","vis"];class je{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=ac();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let s=1;s<=30;s++){if(window.io||window.iob)return e();await jr(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,s=(this.props.protocol||window.location.protocol).replace(":",""),o=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")o="";else{if(window.socketUrl){const n=new URL(window.socketUrl);e=n.hostname,t=n.port,s=n.protocol.replace(":","")}const M=o.lastIndexOf("/");if(M!==-1&&(o=o.substring(0,M+1)),je.isWeb()){const n=o.split("/");n.length>2&&(n.pop(),n.pop(),cc.includes(n[n.length-1])&&n.pop(),o=n.join("/"),o.endsWith("/")||(o+="/"))}}const r=t?`${s}://${e}:${t}`:`${s}://${e}`;return this._socket=(window.io||window.iob).connect(r,{path:o.endsWith("/")?`${o}socket.io`:`${o}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",M=>{window.addEventListener("storage",this.onAccessTokenUpdated);const n=je.readTokens();if(n&&!n.owner){const u=Date.now();this.saveTokens({access_token:n.access_token,refresh_token:n.refresh_token,expires_in:Math.round((n.expires_in.getTime()-u)/1e3),refresh_token_expires_in:Math.round((n.refresh_token_expires_in.getTime()-u)/1e3),token_type:"Bearer"},n.stayLoggedIn)}this.onReadyDone=!1,M!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(u=>{const[N,l,c]=u.version.split(".");parseInt(N,10)*1e4+parseInt(l,10)*100+parseInt(c,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(j,T)=>this.onPreConnect(j,T))}).catch(u=>this.onError({message:u.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(u,N)=>{this.onPreConnect(u,N)})}),this._socket.on("reconnect",()=>{var M,n;this.onReadyDone=!1,(n=(M=this.props).onProgress)==null||n.call(M,Re.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(u=>u(!0)))}),this._socket.on("disconnect",()=>{var M,n;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(n=(M=this.props).onProgress)==null||n.call(M,Re.CONNECTING),this.onConnectionHandlers.forEach(u=>u(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",M=>{var n,u;(u=(n=this.props).onLog)==null||u.call(n,M),this.onLogHandlers.forEach(N=>N(M))}),this._socket.on("error",M=>{let n;M==null?n="":typeof M.toString=="function"?n=M.toString():(n=JSON.stringify(M),console.error(`Received strange error: ${n}`)),n.includes("User not authorized")?this.authenticate():n.includes("websocket error")?(console.error(`Socket Error => reload: ${M}`),window.location.reload()):console.error(`Socket Error: ${M}`)}),this._socket.on("connect_error",M=>console.error(`Connect error: ${M}`)),this._socket.on("permissionError",M=>this.onError({message:"no permission",operation:M.operation,type:M.type,id:M.id||""})),this._socket.on("objectChange",(M,n)=>{setTimeout(()=>this.objectChange(M,n),0)}),this._socket.on("stateChange",(M,n)=>{setTimeout(()=>this.stateChange(M,n),0)}),this._socket.on("im",(M,n,u)=>{setTimeout(()=>this.instanceMessage(M,n,u),0)}),this._socket.on("fileChange",(M,n,u)=>{setTimeout(()=>this.fileChange(M,n,u),0)}),this._socket.on("cmdStdout",(M,n)=>{var u;(u=this.onCmdStdoutHandler)==null||u.call(this,M,n)}),this._socket.on("cmdStderr",(M,n)=>{var u;(u=this.onCmdStderrHandler)==null||u.call(this,M,n)}),this._socket.on("cmdExit",(M,n)=>{var u;(u=this.onCmdExitHandler)==null||u.call(this,M,n)}),Promise.resolve()}onPreConnect(e,t){var s,o;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(r=>console.error(`Cannot load data: ${r}`)):(o=(s=this.props).onProgress)==null||o.call(s,Re.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(r=>r(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[s,o,r,M,n]=e.split(";"),u=new Date(o);return u.getTime(){if(e.key==="iob_tokens"){const t=je.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,s)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):s?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(s=>{if(s.ok)return s.json();throw new Error("Cannot refresh access token")}).then(s=>{if(s.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${s.access_token}`),this.saveTokens(s,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(s.access_token);else throw new Error("Cannot get access token")}).catch(s=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${s}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(s),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const o=JSON.parse(t);if(e{o?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,s)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,s))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(s,o)=>{s?t(s):e(o||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(s=>console.error(`Cannot load data: ${s}`)),this.loaded)return;await jr(je.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,s,o,r,M,n,u,N;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(l){this.onError(`Cannot read user permissions: ${l}`);return}try{this.props.admin5only&&!je.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(l){this.onError(`Cannot read system config: ${l}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(s=(t=this.props).onLanguage)==null||s.call(t,this.systemLang),this.loaded=!0,(r=(o=this.props).onProgress)==null||r.call(o,Re.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(n=(M=this.props).onProgress)==null||n.call(M,Re.READY),this.onReadyDone||(this.onReadyDone=!0,(N=(u=this.props).onReady)==null||N.call(u,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,s,o;e.length===3?[t,s,o]=e:([t,o]=e,s=!1);let r;if(Array.isArray(t)?r=t:r=[t],typeof o!="function")throw new Error("The state change handler must be a function!");const M=[];for(let n=0;nn.includes("*"))){let n;for(let u=0;uconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const n=await(je.isWeb()?this.getStates(r):this.getForeignStates(r));if(n)for(const[u,N]of Object.entries(n)){const l=o(u,N);l instanceof Promise&&l.catch(c=>console.error(`Cannot call state change handler: ${c}`))}}catch(n){console.error(`Cannot getState "${r.join(", ")}": ${n.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var r;let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let M=0;M{try{const l=N(e,t,s);l instanceof Promise&&l.catch(c=>console.error(`Cannot call object change handler: ${c}`))}catch(l){console.error(`Error by callback of objectChange: ${l}`)}});if(o){const n=(M=(r=this.props).onObjectChange)==null?void 0:M.call(r,e,t);n instanceof Promise&&n.catch(u=>console.error(`Cannot call object change handler: ${u}`))}}stateChange(e,t){for(const s of Object.values(this.statesSubscribes))if(s.reg.test(e))for(const o of s.cbs)try{const r=o(e,t??null);r instanceof Promise&&r.catch(M=>console.error(`Cannot call state change handler: ${M}`))}catch(r){console.error(`Error by callback of stateChanged: ${r}`)}}instanceMessage(e,t,s){var o;(o=this._instanceSubscriptions[t])==null||o.forEach(r=>{if(r.messageType===e){const M=r.callback(s,t,e);M instanceof Promise&&M.catch(n=>console.error(`Cannot call instance message handler: ${n}`))}})}fileChange(e,t,s){for(const o of Object.values(this.filesSubscribes))if(o.regId.test(e)&&o.regFilePattern.test(t))for(const r of o.cbs)try{r(e,t,s)}catch(M){console.error(`Error by callback of fileChange: ${M}`)}}async subscribeFiles(e,t,s){if(typeof s!="function")throw new Error("The state change handler must be a function!");let o;Array.isArray(t)?o=t:o=[t];const r=[];for(let M=0;M{const c={elapsed:!1,clearTimeout:()=>{}};let L;s!==!1&&(L=setTimeout(()=>{c.elapsed=!0,o==null||o(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(ye.TIMEOUT))},s??this.props.cmdTimeout),c.clearTimeout=()=>{clearTimeout(L)});try{await n(N,l,c)}catch(j){e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(j.toString()))}});return e&&(this._promises[e]=u),u}resetCache(e,t){t?Object.keys(this._promises).filter(s=>s.startsWith(e)).forEach(s=>{delete this._promises[s]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getStates",e,(o,r)=>{this.states=r??{},o?s(o):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(o,r)=>{o?s(o):t(r)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getBinaryState",e,(o,r)=>{o?s(o):t(r)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setBinaryState",e,t,r=>{r?o(r):s()})}})}setState(e,t,s){return typeof s=="boolean"&&(t={val:t,ack:s}),this.request({commandTimeout:!1,executor:(o,r)=>{if(e&&e===this.ignoreState){let M;if(typeof s=="boolean"||typeof t=="object"&&t.val!==void 0?M=t:M={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=M,this.statesSubscribes[e])for(const n of this.statesSubscribes[e].cbs)try{const u=n(e,M);u instanceof Promise&&u.catch(N=>console.error(`Cannot call state change handler: ${N}`))}catch(u){console.error(`Error by callback of stateChanged: ${u}`)}o();return}this._socket.emit("setState",e,t,M=>{M?r(M):o()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{if(!e&&this.objects){s(this.objects);return}this._socket.emit(je.isWeb()?"getObjects":"getAllObjects",(r,M)=>{var n,u;t||(u=(n=this.props).onProgress)==null||u.call(n,Re.OBJECTS_LOADED),r?o(r):(this.objects=M??{},s(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjects",e,(o,r)=>{o?s(o):t(r)})}})}_subscribe(e){var t,s;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("subscribeObjects",o),Object.keys(this.objectsSubscribes).forEach(r=>this._socket.emit("subscribeObjects",r)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("subscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,n]=r.split("$%$");this._socket.emit("subscribeFiles",M,n)})}else if(!e&&this.subscribed){this.subscribed=!1,(s=this.props.autoSubscribes)!=null&&s.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("unsubscribeObjects",o),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("unsubscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,n]=r.split("$%$");this._socket.emit("unsubscribeFiles",M,n)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("requireLog",e,o=>{o?s(o):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObject",e,{maintenance:t},r=>{r?o(r):s()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObjects",e,{maintenance:t},r=>{r?o(r):s()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(o,r)=>{o?s(o):t(r)})}})}sendTo(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendTo",e,t,s,r=>{o(r)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("extendObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(r,M)=>{if(r)o(r);else{const n={};if(M)for(let u=0;u{s=s||"",o=o||"香",this._socket.emit("getObjectView",e,t,{startkey:s,endkey:o},(n,u)=>{if(n)M(n);else{const N={};if(u&&u.rows)for(let l=0;l{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(s,o)=>{var r;s?t(s):e((r=o.rows)==null?void 0:r.map(M=>M.value).filter(M=>!!M))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("readDir",e,t,(r,M)=>{r?o(r):s(M)})}})}readFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit(s?"readFile64":"readFile",e,t,(M,n,u)=>{M?r(M):o({file:n,mimeType:u})})}})}writeFile64(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{if(typeof s=="string")this._socket.emit("writeFile",e,t,s,M=>{M?r(M):o()});else{const M=btoa(new Uint8Array(s).reduce((n,u)=>n+String.fromCharCode(u),""));this._socket.emit("writeFile64",e,t,M,n=>{n?r(n):o()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r?o(r):s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r?o(r):s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M?r(M):o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M?r(M):o()})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,n)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{n.elapsed||(n.clearTimeout(),u?M(u):r())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let s=await this.getObject("system.config");s??={},s.common??={},s.native??={},t(s)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,s)=>{this._socket.emit("getCompactSystemConfig",(o,r)=>{o?s(o):(r??={},r.common??={},r.native??={},t(r))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getForeignStates",e||"*",(o,r)=>{o?s(o):t(r??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getForeignObjects",e||"*",t,(r,M)=>{r?o(r):s(M)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M)=>{r?o(r):s(M)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M,n,u)=>{r?o(r):s({values:M,sessionId:u,step:n})})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getVersion",(o,r,M)=>{o&&!r&&typeof o=="string"&&o.match(/\d+\.\d+\.\d+/)?t({version:o,serverName:"socketio"}):o?s(o):t({version:r,serverName:M})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(s,o)=>{s?t(s):e(o)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("fileExists",e,t,(r,M)=>{r?o(r):s(!!M)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,s)=>{e(s)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var s;const t=await this.getObject("system.meta.uuid");e((s=t==null?void 0:t.native)==null?void 0:s.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("checkFeatureSupported",e,(r,M)=>{r?o(r):s(M)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=e?`system.adapter.${e}.`:"system.adapter.",r=`${o}香`,M=await this.getObjectViewSystem("instance",o,r),n=Object.values(M);s(e?n.filter(u=>u.common.name===e):n)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),r=Object.values(o);s(e?r.filter(M=>M.common.name===e):r)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",s=>{s?t(s):e(null)})}})}subscribeOnInstance(e,t,s,o){return this.request({commandTimeout:!1,executor:(r,M)=>{this._socket.emit("clientSubscribe",e,t,s,(n,u)=>{n?M(n):u&&(u.error?M(u.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(N=>N.messageType===t&&N.callback===o)||this._instanceSubscriptions[e].push({messageType:t,callback:o}),r(u)))})}})}unsubscribeFromInstance(e,t,s){var M;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let o;const r=[];do{o=!1;const n=(M=this._instanceSubscriptions[e])==null?void 0:M.findIndex(u=>(!t||u.messageType===t)&&(!s||u.callback===s));if(n!=null&&n!==-1){o=!0;const u=this._instanceSubscriptions[e][n].messageType;this._instanceSubscriptions[e].splice(n,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(l=>l.messageType===u)||r.push(this.request({commandTimeout:!1,executor:(l,c)=>{this._socket.emit("clientUnsubscribe",e,t,(L,j)=>L?c(L):l(j))}}))}}while(o&&(!s||!t));return r.length?Promise.all(r).then(n=>!!n.find(u=>u)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:s=>(this._socket.emit("log",e,t),s(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function uc(i,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(i.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(i.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(i.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(o=>o.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:i,type:t}}function Nc(i){var s,o,r,M;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((o=(s=i.native)==null?void 0:s.hardware)!=null&&o.networkInterfaces){const n=(M=(r=i.native)==null?void 0:r.hardware)==null?void 0:M.networkInterfaces;Object.keys(n).forEach(u=>{n[u].forEach(N=>{N.family!=="IPv6"?e.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv4"}):t.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class s4e extends je{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var o;const s=await this.getObject("system.certificates");(o=s==null?void 0:s.native)!=null&&o.certificates?t(Object.entries(s.native.certificates).map(([r,M])=>uc(r,M)).filter(r=>!!r)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"getLogs",t||200,o=>{s(o)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,o=>{s(o)})}})}upgradeController(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:s},M=>{const n=M;n.error?r(n.error):o(n.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("updateLicenses",e,t,(r,M)=>{r?o(r):s(M)})}})}upgradeOsPackages(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!s},r=>{o(r)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("readLogs",e,(o,r)=>{o&&s(o),t(r)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("sendToHost",e,"delLogs",null,o=>{o&&s(o),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r&&o(r),s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r&&o(r),s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M&&r(M),o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M&&r(M),o()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}renameGroup(e,t,s){return this.request({commandTimeout:!1,executor:async o=>{const r=await this.getGroups(!0),M=r.filter(u=>u._id.startsWith(`${e}.`));for(const u of M){const N=u._id,l=t+u._id.substring(e.length);u._id=l,await this.setObject(l,u),await this.delObject(N)}const n=r.find(u=>u._id===e);if(n){const u=n._id;n._id=t,s!==void 0&&(n.common??={},n.common.name=s),await this.setObject(t,n),await this.delObject(u)}o()}})}getHostInfo(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getHostInfo"'):n?o(n):r('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getHostInfoShort"'):n?o(n):r('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,s,o){return this.request({cacheKey:`repository_${e}`,forceUpdate:s,commandTimeout:o,executor:(r,M,n)=>{this._socket.emit("sendToHost",e,"getRepository",t,u=>{n.elapsed||(n.clearTimeout(),u===ye.PERMISSION_ERROR?M('May not read "getRepository"'):u?r(u):M('Cannot read "getRepository"'))})}})}getInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getInstalled",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getInstalled"'):n?o(n):r('Cannot read "getInstalled"'))})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,n)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{n.elapsed||(n.clearTimeout(),u&&M(u),r())})}})}readBaseSettings(e){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,r=>{o.elapsed||(o.clearTimeout(),r===ye.PERMISSION_ERROR?s('May not read "BaseSettings"'):r?r.error?s(new Error(r.error)):t(r):s('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,M=>{r.elapsed||(r.clearTimeout(),M===ye.PERMISSION_ERROR?o('May not write "BaseSettings"'):M?s(M):o('Cannot write "BaseSettings"'))})}})}restartController(e){return e=Ms(e),this.request({executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{o.elapsed||(o.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=Ms(e),this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getDiagData",t,M=>{r.elapsed||(r.clearTimeout(),s(M||null))})}})}changePassword(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("changePassword",e,t,M=>{r.elapsed||(r.clearTimeout(),M&&o(M),s())})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getHostByIp(e,t){return e=Ms(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(s,o,r)=>{this._socket.emit("getHostByIp",e,(M,n)=>{if(r.elapsed)return;r.clearTimeout();const{IPs4:u,IPs6:N}=Nc(n);s([...u,...N])})}})}encrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("encrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}decrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("decrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}chmodFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chmodFile",e,t,s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}chownFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chownFile",e,t,s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}clearNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,s)=>{this._socket.emit("getIsEasyModeStrict",(o,r)=>{s.elapsed||(s.clearTimeout(),o&&t(o),e(!!r))})}})}getEasyMode(){return this.request({executor:(e,t,s)=>{this._socket.emit("getEasyMode",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(new Error(o)):e(r))})}})}getRatings(e){return this.request({executor:(t,s,o)=>{this._socket.emit("getRatings",!!e,(r,M)=>{o.elapsed||(o.clearTimeout(),r?s(new Error(r)):t(M))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(s,o,r)=>{try{const M=await fetch("./session",{signal:t.signal});if(r.elapsed)return;r.clearTimeout();const n=await M.json();s(n)}catch(M){o(`getCurrentSession: ${M}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,s)=>{this._socket.emit("getCurrentInstance",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(o):e(r))})}})}getAdapterInstances(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`instances_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapterInstances",s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getAdapters(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`adapter_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapters",s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactAdapters",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactInstances",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactInstalled",e,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getCompactInstalled"'):n?o(n):r('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,s){return e=Ke(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactRepository",e,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getCompactRepository"'):n?o(n):r('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactHosts",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactSystemRepositories",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}}const Z=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ot="9.24.0",te=globalThis;function Ni(){return li(te),te}function li(i){const e=i.__SENTRY__=i.__SENTRY__||{};return e.version=e.version||Ot,e[Ot]=e[Ot]||{}}function Li(i,e,t=te){const s=t.__SENTRY__=t.__SENTRY__||{},o=s[Ot]=s[Ot]||{};return o[i]||(o[i]=e())}const Nn=Object.prototype.toString;function ko(i){switch(Nn.call(i)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Tt(i,Error)}}function es(i,e){return Nn.call(i)===`[object ${e}]`}function ln(i){return es(i,"ErrorEvent")}function gr(i){return es(i,"DOMError")}function lc(i){return es(i,"DOMException")}function tt(i){return es(i,"String")}function Yo(i){return typeof i=="object"&&i!==null&&"__sentry_template_string__"in i&&"__sentry_template_values__"in i}function Qo(i){return i===null||Yo(i)||typeof i!="object"&&typeof i!="function"}function ds(i){return es(i,"Object")}function ji(i){return typeof Event<"u"&&Tt(i,Event)}function Lc(i){return typeof Element<"u"&&Tt(i,Element)}function jc(i){return es(i,"RegExp")}function gi(i){return!!(i!=null&&i.then&&typeof i.then=="function")}function gc(i){return ds(i)&&"nativeEvent"in i&&"preventDefault"in i&&"stopPropagation"in i}function Tt(i,e){try{return i instanceof e}catch{return!1}}function Ln(i){return!!(typeof i=="object"&&i!==null&&(i.__isVue||i._isVue))}function Tc(i){return typeof Request<"u"&&Tt(i,Request)}const Uo=te,yc=80;function jn(i,e={}){if(!i)return"";try{let t=i;const s=5,o=[];let r=0,M=0;const n=" > ",u=n.length;let N;const l=Array.isArray(e)?e:e.keyAttrs,c=!Array.isArray(e)&&e.maxStringLength||yc;for(;t&&r++1&&M+o.length*u+N.length>=c));)o.push(N),M+=N.length,t=t.parentNode;return o.reverse().join(n)}catch{return""}}function Dc(i,e){const t=i,s=[];if(!(t!=null&&t.tagName))return"";if(Uo.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}s.push(t.tagName.toLowerCase());const o=e!=null&&e.length?e.filter(M=>t.getAttribute(M)).map(M=>[M,t.getAttribute(M)]):null;if(o!=null&&o.length)o.forEach(M=>{s.push(`[${M[0]}="${M[1]}"]`)});else{t.id&&s.push(`#${t.id}`);const M=t.className;if(M&&tt(M)){const n=M.split(/\s+/);for(const u of n)s.push(`.${u}`)}}const r=["aria-label","type","name","title","alt"];for(const M of r){const n=t.getAttribute(M);n&&s.push(`[${M}="${n}"]`)}return s.join("")}function vo(){try{return Uo.document.location.href}catch{return""}}function dc(i){if(!Uo.HTMLElement)return null;let e=i;const t=5;for(let s=0;s{const r=ti[o];t[o]=e[o],e[o]=r});try{return i()}finally{s.forEach(o=>{e[o]=t[o]})}}function Ic(){let i=!1;const e={enable:()=>{i=!0},disable:()=>{i=!1},isEnabled:()=>i};return Z?Vi.forEach(t=>{e[t]=(...s)=>{i&&ts(()=>{te.console[t](`${zc}[${t}]:`,...s)})}}):Vi.forEach(t=>{e[t]=()=>{}}),e}const B=Li("logger",Ic);function si(i,e=0){return typeof i!="string"||e===0||i.length<=e?i:`${i.slice(0,e)}...`}function Tr(i,e){if(!Array.isArray(i))return"";const t=[];for(let s=0;swc(i,s,t))}function Ee(i,e,t){if(!(e in i))return;const s=i[e];if(typeof s!="function")return;const o=t(s);typeof o=="function"&&gn(o,s);try{i[e]=o}catch{Z&&B.log(`Failed to replace method "${e}" in object`,i)}}function Et(i,e,t){try{Object.defineProperty(i,e,{value:t,writable:!0,configurable:!0})}catch{Z&&B.log(`Failed to add non-enumerable property "${e}" to object`,i)}}function gn(i,e){try{const t=e.prototype||{};i.prototype=e.prototype=t,Et(i,"__sentry_original__",e)}catch{}}function bo(i){return i.__sentry_original__}function Tn(i){if(ko(i))return{message:i.message,name:i.name,stack:i.stack,...Dr(i)};if(ji(i)){const e={type:i.type,target:yr(i.target),currentTarget:yr(i.currentTarget),...Dr(i)};return typeof CustomEvent<"u"&&Tt(i,CustomEvent)&&(e.detail=i.detail),e}else return i}function yr(i){try{return Lc(i)?jn(i):Object.prototype.toString.call(i)}catch{return""}}function Dr(i){if(typeof i=="object"&&i!==null){const e={};for(const t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t]);return e}else return{}}function Cc(i,e=40){const t=Object.keys(Tn(i));t.sort();const s=t[0];if(!s)return"[object has no keys]";if(s.length>=e)return si(s,e);for(let o=t.length;o>0;o--){const r=t.slice(0,o).join(", ");if(!(r.length>e))return o===t.length?r:si(r,e)}return""}function hc(){const i=te;return i.crypto||i.msCrypto}function fe(i=hc()){let e=()=>Math.random()*16;try{if(i!=null&&i.randomUUID)return i.randomUUID().replace(/-/g,"");i!=null&&i.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return i.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function yn(i){var e,t;return(t=(e=i.exception)==null?void 0:e.values)==null?void 0:t[0]}function pt(i){const{message:e,event_id:t}=i;if(e)return e;const s=yn(i);return s?s.type&&s.value?`${s.type}: ${s.value}`:s.type||s.value||t||"":t||""}function Zi(i,e,t){const s=i.exception=i.exception||{},o=s.values=s.values||[],r=o[0]=o[0]||{};r.value||(r.value=e||""),r.type||(r.type="Error")}function Zt(i,e){const t=yn(i);if(!t)return;const s={type:"generic",handled:!0},o=t.mechanism;if(t.mechanism={...s,...o,...e},e&&"data"in e){const r={...o==null?void 0:o.data,...e.data};t.mechanism.data=r}}function dr(i){if(Ac(i))return!0;try{Et(i,"__sentry_captured__",!0)}catch{}return!1}function Ac(i){try{return i.__sentry_captured__}catch{}}const Dn=1e3;function ps(){return Date.now()/Dn}function pc(){const{performance:i}=te;if(!(i!=null&&i.now))return ps;const e=Date.now()-i.now(),t=i.timeOrigin==null?e:i.timeOrigin;return()=>(t+i.now())/Dn}const st=pc();function mc(i){const e=st(),t={sid:fe(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>Ec(t)};return i&&Xt(t,i),t}function Xt(i,e={}){if(e.user&&(!i.ipAddress&&e.user.ip_address&&(i.ipAddress=e.user.ip_address),!i.did&&!e.did&&(i.did=e.user.id||e.user.email||e.user.username)),i.timestamp=e.timestamp||st(),e.abnormal_mechanism&&(i.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(i.ignoreDuration=e.ignoreDuration),e.sid&&(i.sid=e.sid.length===32?e.sid:fe()),e.init!==void 0&&(i.init=e.init),!i.did&&e.did&&(i.did=`${e.did}`),typeof e.started=="number"&&(i.started=e.started),i.ignoreDuration)i.duration=void 0;else if(typeof e.duration=="number")i.duration=e.duration;else{const t=i.timestamp-i.started;i.duration=t>=0?t:0}e.release&&(i.release=e.release),e.environment&&(i.environment=e.environment),!i.ipAddress&&e.ipAddress&&(i.ipAddress=e.ipAddress),!i.userAgent&&e.userAgent&&(i.userAgent=e.userAgent),typeof e.errors=="number"&&(i.errors=e.errors),e.status&&(i.status=e.status)}function Oc(i,e){let t={};i.status==="ok"&&(t={status:"exited"}),Xt(i,t)}function Ec(i){return{sid:`${i.sid}`,init:i.init,started:new Date(i.started*1e3).toISOString(),timestamp:new Date(i.timestamp*1e3).toISOString(),status:i.status,errors:i.errors,did:typeof i.did=="number"||typeof i.did=="string"?`${i.did}`:void 0,duration:i.duration,abnormal_mechanism:i.abnormal_mechanism,attrs:{release:i.release,environment:i.environment,ip_address:i.ipAddress,user_agent:i.userAgent}}}function ms(i,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(i&&Object.keys(e).length===0)return i;const s={...i};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=ms(s[o],e[o],t-1));return s}const Xi="_sentrySpan";function zr(i,e){e?Et(i,Xi,e):delete i[Xi]}function Ir(i){return i[Xi]}function wr(){return fe()}function dn(){return fe().substring(16)}const _c=100;class it{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:wr(),sampleRand:Math.random()}}clone(){const e=new it;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,zr(e,Ir(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Xt(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,s=t instanceof it?t.getScopeData():ds(t)?e:void 0,{tags:o,extra:r,user:M,contexts:n,level:u,fingerprint:N=[],propagationContext:l}=s||{};return this._tags={...this._tags,...o},this._extra={...this._extra,...r},this._contexts={...this._contexts,...n},M&&Object.keys(M).length&&(this._user=M),u&&(this._level=u),N.length&&(this._fingerprint=N),l&&(this._propagationContext=l),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,zr(this,void 0),this._attachments=[],this.setPropagationContext({traceId:wr(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var r;const s=typeof t=="number"?t:_c;if(s<=0)return this;const o={timestamp:ps(),...e,message:e.message?si(e.message,2048):e.message};return this._breadcrumbs.push(o),this._breadcrumbs.length>s&&(this._breadcrumbs=this._breadcrumbs.slice(-s),(r=this._client)==null||r.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Ir(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=ms(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const s=(t==null?void 0:t.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture exception!"),s;const o=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:o,...t,event_id:s},this),s}captureMessage(e,t,s){const o=(s==null?void 0:s.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture message!"),o;const r=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:r,...s,event_id:o},this),o}captureEvent(e,t){const s=(t==null?void 0:t.event_id)||fe();return this._client?(this._client.captureEvent(e,{...t,event_id:s},this),s):(B.warn("No client configured on scope - will not capture event!"),s)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function Sc(){return Li("defaultCurrentScope",()=>new it)}function xc(){return Li("defaultIsolationScope",()=>new it)}class fc{constructor(e,t){let s;e?s=e:s=new it;let o;t?o=t:o=new it,this._stack=[{scope:s}],this._isolationScope=o}withScope(e){const t=this._pushScope();let s;try{s=e(t)}catch(o){throw this._popScope(),o}return gi(s)?s.then(o=>(this._popScope(),o),o=>{throw this._popScope(),o}):(this._popScope(),s)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Kt(){const i=Ni(),e=li(i);return e.stack=e.stack||new fc(Sc(),xc())}function kc(i){return Kt().withScope(i)}function Yc(i,e){const t=Kt();return t.withScope(()=>(t.getStackTop().scope=i,e(i)))}function Cr(i){return Kt().withScope(()=>i(Kt().getIsolationScope()))}function Qc(){return{withIsolationScope:Cr,withScope:kc,withSetScope:Yc,withSetIsolationScope:(i,e)=>Cr(e),getCurrentScope:()=>Kt().getScope(),getIsolationScope:()=>Kt().getIsolationScope()}}function $o(i){const e=li(i);return e.acs?e.acs:Qc()}function ot(){const i=Ni();return $o(i).getCurrentScope()}function Os(){const i=Ni();return $o(i).getIsolationScope()}function Uc(){return Li("globalScope",()=>new it)}function vc(...i){const e=Ni(),t=$o(e);if(i.length===2){const[s,o]=i;return s?t.withSetScope(s,o):t.withScope(o)}return t.withScope(i[0])}function we(){return ot().getClient()}function bc(i){const e=i.getPropagationContext(),{traceId:t,parentSpanId:s,propagationSpanId:o}=e,r={trace_id:t,span_id:o||dn()};return s&&(r.parent_span_id=s),r}const $c="sentry.source",Pc="sentry.sample_rate",Wc="sentry.previous_trace_sample_rate",Rc="sentry.op",Jc="sentry.origin",zn="sentry.profile_id",In="sentry.exclusive_time",Bc=0,Fc=1,Gc="_sentryScope",Hc="_sentryIsolationScope";function wn(i){return{scope:i[Gc],isolationScope:i[Hc]}}function Vc(i){if(typeof i=="boolean")return Number(i);const e=typeof i=="string"?parseFloat(i):i;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Zc="sentry-",Xc=/^sentry-/;function Kc(i){const e=qc(i);if(!e)return;const t=Object.entries(e).reduce((s,[o,r])=>{if(o.match(Xc)){const M=o.slice(Zc.length);s[M]=r}return s},{});if(Object.keys(t).length>0)return t}function qc(i){if(!(!i||!tt(i)&&!Array.isArray(i)))return Array.isArray(i)?i.reduce((e,t)=>{const s=hr(t);return Object.entries(s).forEach(([o,r])=>{e[o]=r}),e},{}):hr(i)}function hr(i){return i.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,s])=>(t&&s&&(e[t]=s),e),{})}const Cn=1;let Ar=!1;function eu(i){const{spanId:e,traceId:t,isRemote:s}=i.spanContext(),o=s?e:Po(i).parent_span_id,r=wn(i).scope,M=s?(r==null?void 0:r.getPropagationContext().propagationSpanId)||dn():e;return{parent_span_id:o,span_id:M,trace_id:t}}function tu(i){if(i&&i.length>0)return i.map(({context:{spanId:e,traceId:t,traceFlags:s,...o},attributes:r})=>({span_id:e,trace_id:t,sampled:s===Cn,attributes:r,...o}))}function pr(i){return typeof i=="number"?mr(i):Array.isArray(i)?i[0]+i[1]/1e9:i instanceof Date?mr(i.getTime()):st()}function mr(i){return i>9999999999?i/1e3:i}function Po(i){var s;if(iu(i))return i.getSpanJSON();const{spanId:e,traceId:t}=i.spanContext();if(su(i)){const{attributes:o,startTime:r,name:M,endTime:n,status:u,links:N}=i,l="parentSpanId"in i?i.parentSpanId:"parentSpanContext"in i?(s=i.parentSpanContext)==null?void 0:s.spanId:void 0;return{span_id:e,trace_id:t,data:o,description:M,parent_span_id:l,start_timestamp:pr(r),timestamp:pr(n)||void 0,status:ru(u),op:o[Rc],origin:o[Jc],links:tu(N)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function su(i){const e=i;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function iu(i){return typeof i.getSpanJSON=="function"}function ou(i){const{traceFlags:e}=i.spanContext();return e===Cn}function ru(i){if(!(!i||i.code===Bc))return i.code===Fc?"ok":i.message||"unknown_error"}const Mu="_sentryRootSpan";function hn(i){return i[Mu]||i}function Or(){Ar||(ts(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),Ar=!0)}const An=50,_t="?",Er=/\(error: (.*)\)/,_r=/captureMessage|captureException/;function pn(...i){const e=i.sort((t,s)=>t[0]-s[0]).map(t=>t[1]);return(t,s=0,o=0)=>{const r=[],M=t.split(` -`);for(let n=s;n1024)continue;const N=Er.test(u)?u.replace(Er,"$1"):u;if(!N.match(/\S*Error: /)){for(const l of e){const c=l(N);if(c){r.push(c);break}}if(r.length>=An+o)break}}return au(r.slice(o))}}function nu(i){return Array.isArray(i)?pn(...i):i}function au(i){if(!i.length)return[];const e=Array.from(i);return/sentryWrapped/.test(fs(e).function||"")&&e.pop(),e.reverse(),_r.test(fs(e).function||"")&&(e.pop(),_r.test(fs(e).function||"")&&e.pop()),e.slice(0,An).map(t=>({...t,filename:t.filename||fs(e).filename,function:t.function||_t}))}function fs(i){return i[i.length-1]||{}}const pi="";function yt(i){try{return!i||typeof i!="function"?pi:i.name||pi}catch{return pi}}function Sr(i){const e=i.exception;if(e){const t=[];try{return e.values.forEach(s=>{s.stacktrace.frames&&t.push(...s.stacktrace.frames)}),t}catch{return}}}const Vs={},xr={};function kt(i,e){Vs[i]=Vs[i]||[],Vs[i].push(e)}function Yt(i,e){if(!xr[i]){xr[i]=!0;try{e()}catch(t){Z&&B.error(`Error while instrumenting ${i}`,t)}}}function ve(i,e){const t=i&&Vs[i];if(t)for(const s of t)try{s(e)}catch(o){Z&&B.error(`Error while triggering instrumentation handler. +import{w as _e,u as cr,l as ur,a as Nr}from"./createTheme-BwMO3rTt.js";import{C as b,R as n}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{C as g}from"./ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js";import{C as m,a as ic,D as ln,u as oc}from"./index-B8sZ2j0S.js";import{g as rc}from"./_commonjsHelpers-D6-XlEtG.js";import{u as Mc}from"./useTheme-CDtRWagv.js";import"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import"./useTheme-MELayQMj.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";import"./defaultTheme-avbtL0lf.js";const Ai=11/23/100;function lr(i){const e={r:0,g:0,b:0};if(i.length===7)e.r=parseInt(i.substring(1,3),16),e.g=parseInt(i.substring(3,5),16),e.b=parseInt(i.substring(5,7),16);else if(i.length===4){const t=i[1],s=i[2],o=i[3];e.r=parseInt(t+t,16),e.g=parseInt(s+s,16),e.b=parseInt(o+o,16)}return e}function nc(i){return`#${Math.round(i.r).toString(16)}${Math.round(i.g).toString(16)}${Math.round(i.b).toString(16)}`}function ac(i,e,t){const s=lr(i),o=lr(e);return s.r+=o.r*(.05+Ai*(t-1)),s.g+=o.g*(.05+Ai*(t-1)),s.b+=o.b*(.05+Ai*(t-1)),nc(s)}function Lr(i,e){const t={};for(let s=1;s<=24;s++)t[`elevation${s}`]={backgroundColor:ac(i,e,s)};return t}function cc(i,e){var M,a,u,N,l,c,L,j,T,D,I;let t,s;i==="dark"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#121212","#fff")},t={name:i,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="blue"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="colored"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#151d21","#fff")},t={name:i,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):i==="PT"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):i==="DX"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(s={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(a=(M=t.palette)==null?void 0:M.primary)==null?void 0:a.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:cr[300],dark:cr[400]});const o=ur(t),r=o.palette;return ur(o,{...e||void 0,components:{...s,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(u=r.grey)==null?void 0:u[300],color:r.getContrastText&&((N=r.grey)!=null&&N[300])?r.getContrastText(r.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(l=r.text)==null?void 0:l.primary,borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(c=r.action)==null?void 0:c.disabledBackground}`},"&:hover":{borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:Nr(((L=r.text)==null?void 0:L.primary)||"",((j=r.action)==null?void 0:j.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(T=r.text)==null?void 0:T.primary,"&:hover":{backgroundColor:Nr(((D=r.text)==null?void 0:D.primary)||"",((I=r.action)==null?void 0:I.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function uc(){let i,e;const t=new Promise((s,o)=>{i=s,e=o});return t.resolve=i,t.reject=e,t}function Hi(i){return(i==null?void 0:i.rows.map(e=>e.value).filter(e=>!!e))??[]}function Ke(i){return i!=null&&i.startsWith("system.host.")||(i=`system.host.${i}`),i}function Ms(i){return i!=null&&i.startsWith("system.host.")&&(i=i.substring(12)),i}function jr(i){return new Promise(e=>{setTimeout(e,i)})}function xs(i){i=(i||"").toString();const e=i[0]==="*",t=i[i.length-1]==="*";return i=i.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+i+(t?"":"$")}var Re;(function(i){i[i.CONNECTING=0]="CONNECTING",i[i.CONNECTED=1]="CONNECTED",i[i.OBJECTS_LOADED=2]="OBJECTS_LOADED",i[i.READY=3]="READY"})(Re||(Re={}));var ye;(function(i){i.PERMISSION_ERROR="permissionError",i.NOT_CONNECTED="notConnectedError",i.TIMEOUT="timeout",i.NOT_ADMIN="Allowed only in admin",i.NOT_SUPPORTED="Not supported"})(ye||(ye={}));const i4e=ye.PERMISSION_ERROR;ye.NOT_CONNECTED;const Nc=["material","echarts","vis"];class je{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=uc();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let s=1;s<=30;s++){if(window.io||window.iob)return e();await jr(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,s=(this.props.protocol||window.location.protocol).replace(":",""),o=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")o="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,s=a.protocol.replace(":","")}const M=o.lastIndexOf("/");if(M!==-1&&(o=o.substring(0,M+1)),je.isWeb()){const a=o.split("/");a.length>2&&(a.pop(),a.pop(),Nc.includes(a[a.length-1])&&a.pop(),o=a.join("/"),o.endsWith("/")||(o+="/"))}}const r=t?`${s}://${e}:${t}`:`${s}://${e}`;return this._socket=(window.io||window.iob).connect(r,{path:o.endsWith("/")?`${o}socket.io`:`${o}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",M=>{window.addEventListener("storage",this.onAccessTokenUpdated);const a=je.readTokens();if(a&&!a.owner){const u=Date.now();this.saveTokens({access_token:a.access_token,refresh_token:a.refresh_token,expires_in:Math.round((a.expires_in.getTime()-u)/1e3),refresh_token_expires_in:Math.round((a.refresh_token_expires_in.getTime()-u)/1e3),token_type:"Bearer"},a.stayLoggedIn)}this.onReadyDone=!1,M!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(u=>{const[N,l,c]=u.version.split(".");parseInt(N,10)*1e4+parseInt(l,10)*100+parseInt(c,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(j,T)=>this.onPreConnect(j,T))}).catch(u=>this.onError({message:u.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(u,N)=>{this.onPreConnect(u,N)})}),this._socket.on("reconnect",()=>{var M,a;this.onReadyDone=!1,(a=(M=this.props).onProgress)==null||a.call(M,Re.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(u=>u(!0)))}),this._socket.on("disconnect",()=>{var M,a;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(a=(M=this.props).onProgress)==null||a.call(M,Re.CONNECTING),this.onConnectionHandlers.forEach(u=>u(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",M=>{var a,u;(u=(a=this.props).onLog)==null||u.call(a,M),this.onLogHandlers.forEach(N=>N(M))}),this._socket.on("error",M=>{let a;M==null?a="":typeof M.toString=="function"?a=M.toString():(a=JSON.stringify(M),console.error(`Received strange error: ${a}`)),a.includes("User not authorized")?this.authenticate():a.includes("websocket error")?(console.error(`Socket Error => reload: ${M}`),window.location.reload()):console.error(`Socket Error: ${M}`)}),this._socket.on("connect_error",M=>console.error(`Connect error: ${M}`)),this._socket.on("permissionError",M=>this.onError({message:"no permission",operation:M.operation,type:M.type,id:M.id||""})),this._socket.on("objectChange",(M,a)=>{setTimeout(()=>this.objectChange(M,a),0)}),this._socket.on("stateChange",(M,a)=>{setTimeout(()=>this.stateChange(M,a),0)}),this._socket.on("im",(M,a,u)=>{setTimeout(()=>this.instanceMessage(M,a,u),0)}),this._socket.on("fileChange",(M,a,u)=>{setTimeout(()=>this.fileChange(M,a,u),0)}),this._socket.on("cmdStdout",(M,a)=>{var u;(u=this.onCmdStdoutHandler)==null||u.call(this,M,a)}),this._socket.on("cmdStderr",(M,a)=>{var u;(u=this.onCmdStderrHandler)==null||u.call(this,M,a)}),this._socket.on("cmdExit",(M,a)=>{var u;(u=this.onCmdExitHandler)==null||u.call(this,M,a)}),Promise.resolve()}onPreConnect(e,t){var s,o;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(r=>console.error(`Cannot load data: ${r}`)):(o=(s=this.props).onProgress)==null||o.call(s,Re.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(r=>r(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[s,o,r,M,a]=e.split(";"),u=new Date(o);return u.getTime(){if(e.key==="iob_tokens"){const t=je.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,s)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):s?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(s=>{if(s.ok)return s.json();throw new Error("Cannot refresh access token")}).then(s=>{if(s.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${s.access_token}`),this.saveTokens(s,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(s.access_token);else throw new Error("Cannot get access token")}).catch(s=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${s}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(s),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const o=JSON.parse(t);if(e{o?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,s)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,s))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(s,o)=>{s?t(s):e(o||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(s=>console.error(`Cannot load data: ${s}`)),this.loaded)return;await jr(je.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,s,o,r,M,a,u,N;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(l){this.onError(`Cannot read user permissions: ${l}`);return}try{this.props.admin5only&&!je.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(l){this.onError(`Cannot read system config: ${l}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(s=(t=this.props).onLanguage)==null||s.call(t,this.systemLang),this.loaded=!0,(r=(o=this.props).onProgress)==null||r.call(o,Re.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(a=(M=this.props).onProgress)==null||a.call(M,Re.READY),this.onReadyDone||(this.onReadyDone=!0,(N=(u=this.props).onReady)==null||N.call(u,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,s,o;e.length===3?[t,s,o]=e:([t,o]=e,s=!1);let r;if(Array.isArray(t)?r=t:r=[t],typeof o!="function")throw new Error("The state change handler must be a function!");const M=[];for(let a=0;aa.includes("*"))){let a;for(let u=0;uconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const a=await(je.isWeb()?this.getStates(r):this.getForeignStates(r));if(a)for(const[u,N]of Object.entries(a)){const l=o(u,N);l instanceof Promise&&l.catch(c=>console.error(`Cannot call state change handler: ${c}`))}}catch(a){console.error(`Cannot getState "${r.join(", ")}": ${a.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var r;let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let M=0;M{try{const l=N(e,t,s);l instanceof Promise&&l.catch(c=>console.error(`Cannot call object change handler: ${c}`))}catch(l){console.error(`Error by callback of objectChange: ${l}`)}});if(o){const a=(M=(r=this.props).onObjectChange)==null?void 0:M.call(r,e,t);a instanceof Promise&&a.catch(u=>console.error(`Cannot call object change handler: ${u}`))}}stateChange(e,t){for(const s of Object.values(this.statesSubscribes))if(s.reg.test(e))for(const o of s.cbs)try{const r=o(e,t??null);r instanceof Promise&&r.catch(M=>console.error(`Cannot call state change handler: ${M}`))}catch(r){console.error(`Error by callback of stateChanged: ${r}`)}}instanceMessage(e,t,s){var o;(o=this._instanceSubscriptions[t])==null||o.forEach(r=>{if(r.messageType===e){const M=r.callback(s,t,e);M instanceof Promise&&M.catch(a=>console.error(`Cannot call instance message handler: ${a}`))}})}fileChange(e,t,s){for(const o of Object.values(this.filesSubscribes))if(o.regId.test(e)&&o.regFilePattern.test(t))for(const r of o.cbs)try{r(e,t,s)}catch(M){console.error(`Error by callback of fileChange: ${M}`)}}async subscribeFiles(e,t,s){if(typeof s!="function")throw new Error("The state change handler must be a function!");let o;Array.isArray(t)?o=t:o=[t];const r=[];for(let M=0;M{const c={elapsed:!1,clearTimeout:()=>{}};let L;s!==!1&&(L=setTimeout(()=>{c.elapsed=!0,o==null||o(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(ye.TIMEOUT))},s??this.props.cmdTimeout),c.clearTimeout=()=>{clearTimeout(L)});try{await a(N,l,c)}catch(j){e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(j.toString()))}});return e&&(this._promises[e]=u),u}resetCache(e,t){t?Object.keys(this._promises).filter(s=>s.startsWith(e)).forEach(s=>{delete this._promises[s]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getStates",e,(o,r)=>{this.states=r??{},o?s(o):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(o,r)=>{o?s(o):t(r)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getBinaryState",e,(o,r)=>{o?s(o):t(r)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setBinaryState",e,t,r=>{r?o(r):s()})}})}setState(e,t,s){return typeof s=="boolean"&&(t={val:t,ack:s}),this.request({commandTimeout:!1,executor:(o,r)=>{if(e&&e===this.ignoreState){let M;if(typeof s=="boolean"||typeof t=="object"&&t.val!==void 0?M=t:M={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=M,this.statesSubscribes[e])for(const a of this.statesSubscribes[e].cbs)try{const u=a(e,M);u instanceof Promise&&u.catch(N=>console.error(`Cannot call state change handler: ${N}`))}catch(u){console.error(`Error by callback of stateChanged: ${u}`)}o();return}this._socket.emit("setState",e,t,M=>{M?r(M):o()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{if(!e&&this.objects){s(this.objects);return}this._socket.emit(je.isWeb()?"getObjects":"getAllObjects",(r,M)=>{var a,u;t||(u=(a=this.props).onProgress)==null||u.call(a,Re.OBJECTS_LOADED),r?o(r):(this.objects=M??{},s(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjects",e,(o,r)=>{o?s(o):t(r)})}})}_subscribe(e){var t,s;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("subscribeObjects",o),Object.keys(this.objectsSubscribes).forEach(r=>this._socket.emit("subscribeObjects",r)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("subscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,a]=r.split("$%$");this._socket.emit("subscribeFiles",M,a)})}else if(!e&&this.subscribed){this.subscribed=!1,(s=this.props.autoSubscribes)!=null&&s.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("unsubscribeObjects",o),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("unsubscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,a]=r.split("$%$");this._socket.emit("unsubscribeFiles",M,a)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("requireLog",e,o=>{o?s(o):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObject",e,{maintenance:t},r=>{r?o(r):s()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObjects",e,{maintenance:t},r=>{r?o(r):s()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(o,r)=>{o?s(o):t(r)})}})}sendTo(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendTo",e,t,s,r=>{o(r)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("extendObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(r,M)=>{if(r)o(r);else{const a={};if(M)for(let u=0;u{s=s||"",o=o||"香",this._socket.emit("getObjectView",e,t,{startkey:s,endkey:o},(a,u)=>{if(a)M(a);else{const N={};if(u&&u.rows)for(let l=0;l{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(s,o)=>{var r;s?t(s):e((r=o.rows)==null?void 0:r.map(M=>M.value).filter(M=>!!M))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("readDir",e,t,(r,M)=>{r?o(r):s(M)})}})}readFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit(s?"readFile64":"readFile",e,t,(M,a,u)=>{M?r(M):o({file:a,mimeType:u})})}})}writeFile64(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{if(typeof s=="string")this._socket.emit("writeFile",e,t,s,M=>{M?r(M):o()});else{const M=btoa(new Uint8Array(s).reduce((a,u)=>a+String.fromCharCode(u),""));this._socket.emit("writeFile64",e,t,M,a=>{a?r(a):o()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r?o(r):s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r?o(r):s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M?r(M):o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M?r(M):o()})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,a)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{a.elapsed||(a.clearTimeout(),u?M(u):r())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let s=await this.getObject("system.config");s??={},s.common??={},s.native??={},t(s)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,s)=>{this._socket.emit("getCompactSystemConfig",(o,r)=>{o?s(o):(r??={},r.common??={},r.native??={},t(r))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getForeignStates",e||"*",(o,r)=>{o?s(o):t(r??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getForeignObjects",e||"*",t,(r,M)=>{r?o(r):s(M)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M)=>{r?o(r):s(M)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M,a,u)=>{r?o(r):s({values:M,sessionId:u,step:a})})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getVersion",(o,r,M)=>{o&&!r&&typeof o=="string"&&o.match(/\d+\.\d+\.\d+/)?t({version:o,serverName:"socketio"}):o?s(o):t({version:r,serverName:M})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(s,o)=>{s?t(s):e(o)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("fileExists",e,t,(r,M)=>{r?o(r):s(!!M)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,s)=>{e(s)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var s;const t=await this.getObject("system.meta.uuid");e((s=t==null?void 0:t.native)==null?void 0:s.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("checkFeatureSupported",e,(r,M)=>{r?o(r):s(M)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=e?`system.adapter.${e}.`:"system.adapter.",r=`${o}香`,M=await this.getObjectViewSystem("instance",o,r),a=Object.values(M);s(e?a.filter(u=>u.common.name===e):a)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),r=Object.values(o);s(e?r.filter(M=>M.common.name===e):r)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",s=>{s?t(s):e(null)})}})}subscribeOnInstance(e,t,s,o){return this.request({commandTimeout:!1,executor:(r,M)=>{this._socket.emit("clientSubscribe",e,t,s,(a,u)=>{a?M(a):u&&(u.error?M(u.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(N=>N.messageType===t&&N.callback===o)||this._instanceSubscriptions[e].push({messageType:t,callback:o}),r(u)))})}})}unsubscribeFromInstance(e,t,s){var M;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let o;const r=[];do{o=!1;const a=(M=this._instanceSubscriptions[e])==null?void 0:M.findIndex(u=>(!t||u.messageType===t)&&(!s||u.callback===s));if(a!=null&&a!==-1){o=!0;const u=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(l=>l.messageType===u)||r.push(this.request({commandTimeout:!1,executor:(l,c)=>{this._socket.emit("clientUnsubscribe",e,t,(L,j)=>L?c(L):l(j))}}))}}while(o&&(!s||!t));return r.length?Promise.all(r).then(a=>!!a.find(u=>u)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:s=>(this._socket.emit("log",e,t),s(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function lc(i,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(i.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(i.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(i.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(o=>o.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:i,type:t}}function Lc(i){var s,o,r,M;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((o=(s=i.native)==null?void 0:s.hardware)!=null&&o.networkInterfaces){const a=(M=(r=i.native)==null?void 0:r.hardware)==null?void 0:M.networkInterfaces;Object.keys(a).forEach(u=>{a[u].forEach(N=>{N.family!=="IPv6"?e.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv4"}):t.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class o4e extends je{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var o;const s=await this.getObject("system.certificates");(o=s==null?void 0:s.native)!=null&&o.certificates?t(Object.entries(s.native.certificates).map(([r,M])=>lc(r,M)).filter(r=>!!r)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"getLogs",t||200,o=>{s(o)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,o=>{s(o)})}})}upgradeController(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:s},M=>{const a=M;a.error?r(a.error):o(a.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("updateLicenses",e,t,(r,M)=>{r?o(r):s(M)})}})}upgradeOsPackages(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!s},r=>{o(r)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("readLogs",e,(o,r)=>{o&&s(o),t(r)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("sendToHost",e,"delLogs",null,o=>{o&&s(o),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r&&o(r),s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r&&o(r),s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M&&r(M),o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M&&r(M),o()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}renameGroup(e,t,s){return this.request({commandTimeout:!1,executor:async o=>{const r=await this.getGroups(!0),M=r.filter(u=>u._id.startsWith(`${e}.`));for(const u of M){const N=u._id,l=t+u._id.substring(e.length);u._id=l,await this.setObject(l,u),await this.delObject(N)}const a=r.find(u=>u._id===e);if(a){const u=a._id;a._id=t,s!==void 0&&(a.common??={},a.common.name=s),await this.setObject(t,a),await this.delObject(u)}o()}})}getHostInfo(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{M.elapsed||(M.clearTimeout(),a===ye.PERMISSION_ERROR?r('May not read "getHostInfo"'):a?o(a):r('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{M.elapsed||(M.clearTimeout(),a===ye.PERMISSION_ERROR?r('May not read "getHostInfoShort"'):a?o(a):r('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,s,o){return this.request({cacheKey:`repository_${e}`,forceUpdate:s,commandTimeout:o,executor:(r,M,a)=>{this._socket.emit("sendToHost",e,"getRepository",t,u=>{a.elapsed||(a.clearTimeout(),u===ye.PERMISSION_ERROR?M('May not read "getRepository"'):u?r(u):M('Cannot read "getRepository"'))})}})}getInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getInstalled",null,a=>{M.elapsed||(M.clearTimeout(),a===ye.PERMISSION_ERROR?r('May not read "getInstalled"'):a?o(a):r('Cannot read "getInstalled"'))})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,a)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{a.elapsed||(a.clearTimeout(),u&&M(u),r())})}})}readBaseSettings(e){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,r=>{o.elapsed||(o.clearTimeout(),r===ye.PERMISSION_ERROR?s('May not read "BaseSettings"'):r?r.error?s(new Error(r.error)):t(r):s('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,M=>{r.elapsed||(r.clearTimeout(),M===ye.PERMISSION_ERROR?o('May not write "BaseSettings"'):M?s(M):o('Cannot write "BaseSettings"'))})}})}restartController(e){return e=Ms(e),this.request({executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{o.elapsed||(o.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=Ms(e),this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getDiagData",t,M=>{r.elapsed||(r.clearTimeout(),s(M||null))})}})}changePassword(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("changePassword",e,t,M=>{r.elapsed||(r.clearTimeout(),M&&o(M),s())})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getHostByIp(e,t){return e=Ms(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(s,o,r)=>{this._socket.emit("getHostByIp",e,(M,a)=>{if(r.elapsed)return;r.clearTimeout();const{IPs4:u,IPs6:N}=Lc(a);s([...u,...N])})}})}encrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("encrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}decrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("decrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}chmodFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chmodFile",e,t,s,(a,u)=>{M.elapsed||(M.clearTimeout(),a&&r(a),o(u))})}})}chownFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chownFile",e,t,s,(a,u)=>{M.elapsed||(M.clearTimeout(),a&&r(a),o(u))})}})}getNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}clearNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,s)=>{this._socket.emit("getIsEasyModeStrict",(o,r)=>{s.elapsed||(s.clearTimeout(),o&&t(o),e(!!r))})}})}getEasyMode(){return this.request({executor:(e,t,s)=>{this._socket.emit("getEasyMode",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(new Error(o)):e(r))})}})}getRatings(e){return this.request({executor:(t,s,o)=>{this._socket.emit("getRatings",!!e,(r,M)=>{o.elapsed||(o.clearTimeout(),r?s(new Error(r)):t(M))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(s,o,r)=>{try{const M=await fetch("./session",{signal:t.signal});if(r.elapsed)return;r.clearTimeout();const a=await M.json();s(a)}catch(M){o(`getCurrentSession: ${M}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,s)=>{this._socket.emit("getCurrentInstance",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(o):e(r))})}})}getAdapterInstances(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`instances_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapterInstances",s,(a,u)=>{M.elapsed||(M.clearTimeout(),a&&r(a),o(u))})}})}getAdapters(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`adapter_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapters",s,(a,u)=>{M.elapsed||(M.clearTimeout(),a&&r(a),o(u))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactAdapters",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactInstances",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactInstalled",e,a=>{M.elapsed||(M.clearTimeout(),a===ye.PERMISSION_ERROR?r('May not read "getCompactInstalled"'):a?o(a):r('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,s){return e=Ke(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactRepository",e,a=>{M.elapsed||(M.clearTimeout(),a===ye.PERMISSION_ERROR?r('May not read "getCompactRepository"'):a?o(a):r('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactHosts",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactSystemRepositories",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}}const Z=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ot="9.30.0",te=globalThis;function Ni(){return li(te),te}function li(i){const e=i.__SENTRY__=i.__SENTRY__||{};return e.version=e.version||Ot,e[Ot]=e[Ot]||{}}function Li(i,e,t=te){const s=t.__SENTRY__=t.__SENTRY__||{},o=s[Ot]=s[Ot]||{};return o[i]||(o[i]=e())}const Ln=Object.prototype.toString;function ko(i){switch(Ln.call(i)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Tt(i,Error)}}function es(i,e){return Ln.call(i)===`[object ${e}]`}function jn(i){return es(i,"ErrorEvent")}function gr(i){return es(i,"DOMError")}function jc(i){return es(i,"DOMException")}function tt(i){return es(i,"String")}function Yo(i){return typeof i=="object"&&i!==null&&"__sentry_template_string__"in i&&"__sentry_template_values__"in i}function Qo(i){return i===null||Yo(i)||typeof i!="object"&&typeof i!="function"}function ds(i){return es(i,"Object")}function ji(i){return typeof Event<"u"&&Tt(i,Event)}function gc(i){return typeof Element<"u"&&Tt(i,Element)}function Tc(i){return es(i,"RegExp")}function gi(i){return!!(i!=null&&i.then&&typeof i.then=="function")}function yc(i){return ds(i)&&"nativeEvent"in i&&"preventDefault"in i&&"stopPropagation"in i}function Tt(i,e){try{return i instanceof e}catch{return!1}}function gn(i){return!!(typeof i=="object"&&i!==null&&(i.__isVue||i._isVue))}function Dc(i){return typeof Request<"u"&&Tt(i,Request)}const Uo=te,dc=80;function Tn(i,e={}){if(!i)return"";try{let t=i;const s=5,o=[];let r=0,M=0;const a=" > ",u=a.length;let N;const l=Array.isArray(e)?e:e.keyAttrs,c=!Array.isArray(e)&&e.maxStringLength||dc;for(;t&&r++1&&M+o.length*u+N.length>=c));)o.push(N),M+=N.length,t=t.parentNode;return o.reverse().join(a)}catch{return""}}function zc(i,e){const t=i,s=[];if(!(t!=null&&t.tagName))return"";if(Uo.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}s.push(t.tagName.toLowerCase());const o=e!=null&&e.length?e.filter(M=>t.getAttribute(M)).map(M=>[M,t.getAttribute(M)]):null;if(o!=null&&o.length)o.forEach(M=>{s.push(`[${M[0]}="${M[1]}"]`)});else{t.id&&s.push(`#${t.id}`);const M=t.className;if(M&&tt(M)){const a=M.split(/\s+/);for(const u of a)s.push(`.${u}`)}}const r=["aria-label","type","name","title","alt"];for(const M of r){const a=t.getAttribute(M);a&&s.push(`[${M}="${a}"]`)}return s.join("")}function vo(){try{return Uo.document.location.href}catch{return""}}function Ic(i){if(!Uo.HTMLElement)return null;let e=i;const t=5;for(let s=0;s{const r=ti[o];t[o]=e[o],e[o]=r});try{return i()}finally{s.forEach(o=>{e[o]=t[o]})}}function Cc(){let i=!1;const e={enable:()=>{i=!0},disable:()=>{i=!1},isEnabled:()=>i};return Z?Vi.forEach(t=>{e[t]=(...s)=>{i&&ts(()=>{te.console[t](`${wc}[${t}]:`,...s)})}}):Vi.forEach(t=>{e[t]=()=>{}}),e}const B=Li("logger",Cc);function si(i,e=0){return typeof i!="string"||e===0||i.length<=e?i:`${i.slice(0,e)}...`}function Tr(i,e){if(!Array.isArray(i))return"";const t=[];for(let s=0;shc(i,s,t))}function Ee(i,e,t){if(!(e in i))return;const s=i[e];if(typeof s!="function")return;const o=t(s);typeof o=="function"&&yn(o,s);try{i[e]=o}catch{Z&&B.log(`Failed to replace method "${e}" in object`,i)}}function Et(i,e,t){try{Object.defineProperty(i,e,{value:t,writable:!0,configurable:!0})}catch{Z&&B.log(`Failed to add non-enumerable property "${e}" to object`,i)}}function yn(i,e){try{const t=e.prototype||{};i.prototype=e.prototype=t,Et(i,"__sentry_original__",e)}catch{}}function bo(i){return i.__sentry_original__}function Dn(i){if(ko(i))return{message:i.message,name:i.name,stack:i.stack,...Dr(i)};if(ji(i)){const e={type:i.type,target:yr(i.target),currentTarget:yr(i.currentTarget),...Dr(i)};return typeof CustomEvent<"u"&&Tt(i,CustomEvent)&&(e.detail=i.detail),e}else return i}function yr(i){try{return gc(i)?Tn(i):Object.prototype.toString.call(i)}catch{return""}}function Dr(i){if(typeof i=="object"&&i!==null){const e={};for(const t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t]);return e}else return{}}function Ac(i,e=40){const t=Object.keys(Dn(i));t.sort();const s=t[0];if(!s)return"[object has no keys]";if(s.length>=e)return si(s,e);for(let o=t.length;o>0;o--){const r=t.slice(0,o).join(", ");if(!(r.length>e))return o===t.length?r:si(r,e)}return""}function pc(){const i=te;return i.crypto||i.msCrypto}function fe(i=pc()){let e=()=>Math.random()*16;try{if(i!=null&&i.randomUUID)return i.randomUUID().replace(/-/g,"");i!=null&&i.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return i.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function dn(i){var e,t;return(t=(e=i.exception)==null?void 0:e.values)==null?void 0:t[0]}function pt(i){const{message:e,event_id:t}=i;if(e)return e;const s=dn(i);return s?s.type&&s.value?`${s.type}: ${s.value}`:s.type||s.value||t||"":t||""}function Zi(i,e,t){const s=i.exception=i.exception||{},o=s.values=s.values||[],r=o[0]=o[0]||{};r.value||(r.value=e||""),r.type||(r.type="Error")}function Zt(i,e){const t=dn(i);if(!t)return;const s={type:"generic",handled:!0},o=t.mechanism;if(t.mechanism={...s,...o,...e},e&&"data"in e){const r={...o==null?void 0:o.data,...e.data};t.mechanism.data=r}}function dr(i){if(mc(i))return!0;try{Et(i,"__sentry_captured__",!0)}catch{}return!1}function mc(i){try{return i.__sentry_captured__}catch{}}const zn=1e3;function ps(){return Date.now()/zn}function Oc(){const{performance:i}=te;if(!(i!=null&&i.now))return ps;const e=Date.now()-i.now(),t=i.timeOrigin==null?e:i.timeOrigin;return()=>(t+i.now())/zn}const st=Oc();function Ec(i){const e=st(),t={sid:fe(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>Sc(t)};return i&&Xt(t,i),t}function Xt(i,e={}){if(e.user&&(!i.ipAddress&&e.user.ip_address&&(i.ipAddress=e.user.ip_address),!i.did&&!e.did&&(i.did=e.user.id||e.user.email||e.user.username)),i.timestamp=e.timestamp||st(),e.abnormal_mechanism&&(i.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(i.ignoreDuration=e.ignoreDuration),e.sid&&(i.sid=e.sid.length===32?e.sid:fe()),e.init!==void 0&&(i.init=e.init),!i.did&&e.did&&(i.did=`${e.did}`),typeof e.started=="number"&&(i.started=e.started),i.ignoreDuration)i.duration=void 0;else if(typeof e.duration=="number")i.duration=e.duration;else{const t=i.timestamp-i.started;i.duration=t>=0?t:0}e.release&&(i.release=e.release),e.environment&&(i.environment=e.environment),!i.ipAddress&&e.ipAddress&&(i.ipAddress=e.ipAddress),!i.userAgent&&e.userAgent&&(i.userAgent=e.userAgent),typeof e.errors=="number"&&(i.errors=e.errors),e.status&&(i.status=e.status)}function _c(i,e){let t={};i.status==="ok"&&(t={status:"exited"}),Xt(i,t)}function Sc(i){return{sid:`${i.sid}`,init:i.init,started:new Date(i.started*1e3).toISOString(),timestamp:new Date(i.timestamp*1e3).toISOString(),status:i.status,errors:i.errors,did:typeof i.did=="number"||typeof i.did=="string"?`${i.did}`:void 0,duration:i.duration,abnormal_mechanism:i.abnormal_mechanism,attrs:{release:i.release,environment:i.environment,ip_address:i.ipAddress,user_agent:i.userAgent}}}function ms(i,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(i&&Object.keys(e).length===0)return i;const s={...i};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=ms(s[o],e[o],t-1));return s}const Xi="_sentrySpan";function zr(i,e){e?Et(i,Xi,e):delete i[Xi]}function Ir(i){return i[Xi]}function wr(){return fe()}function In(){return fe().substring(16)}const xc=100;class it{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:wr(),sampleRand:Math.random()}}clone(){const e=new it;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,zr(e,Ir(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Xt(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,s=t instanceof it?t.getScopeData():ds(t)?e:void 0,{tags:o,extra:r,user:M,contexts:a,level:u,fingerprint:N=[],propagationContext:l}=s||{};return this._tags={...this._tags,...o},this._extra={...this._extra,...r},this._contexts={...this._contexts,...a},M&&Object.keys(M).length&&(this._user=M),u&&(this._level=u),N.length&&(this._fingerprint=N),l&&(this._propagationContext=l),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,zr(this,void 0),this._attachments=[],this.setPropagationContext({traceId:wr(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var r;const s=typeof t=="number"?t:xc;if(s<=0)return this;const o={timestamp:ps(),...e,message:e.message?si(e.message,2048):e.message};return this._breadcrumbs.push(o),this._breadcrumbs.length>s&&(this._breadcrumbs=this._breadcrumbs.slice(-s),(r=this._client)==null||r.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Ir(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=ms(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const s=(t==null?void 0:t.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture exception!"),s;const o=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:o,...t,event_id:s},this),s}captureMessage(e,t,s){const o=(s==null?void 0:s.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture message!"),o;const r=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:r,...s,event_id:o},this),o}captureEvent(e,t){const s=(t==null?void 0:t.event_id)||fe();return this._client?(this._client.captureEvent(e,{...t,event_id:s},this),s):(B.warn("No client configured on scope - will not capture event!"),s)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function fc(){return Li("defaultCurrentScope",()=>new it)}function kc(){return Li("defaultIsolationScope",()=>new it)}class Yc{constructor(e,t){let s;e?s=e:s=new it;let o;t?o=t:o=new it,this._stack=[{scope:s}],this._isolationScope=o}withScope(e){const t=this._pushScope();let s;try{s=e(t)}catch(o){throw this._popScope(),o}return gi(s)?s.then(o=>(this._popScope(),o),o=>{throw this._popScope(),o}):(this._popScope(),s)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Kt(){const i=Ni(),e=li(i);return e.stack=e.stack||new Yc(fc(),kc())}function Qc(i){return Kt().withScope(i)}function Uc(i,e){const t=Kt();return t.withScope(()=>(t.getStackTop().scope=i,e(i)))}function Cr(i){return Kt().withScope(()=>i(Kt().getIsolationScope()))}function vc(){return{withIsolationScope:Cr,withScope:Qc,withSetScope:Uc,withSetIsolationScope:(i,e)=>Cr(e),getCurrentScope:()=>Kt().getScope(),getIsolationScope:()=>Kt().getIsolationScope()}}function $o(i){const e=li(i);return e.acs?e.acs:vc()}function ot(){const i=Ni();return $o(i).getCurrentScope()}function Os(){const i=Ni();return $o(i).getIsolationScope()}function bc(){return Li("globalScope",()=>new it)}function $c(...i){const e=Ni(),t=$o(e);if(i.length===2){const[s,o]=i;return s?t.withSetScope(s,o):t.withScope(o)}return t.withScope(i[0])}function we(){return ot().getClient()}function Pc(i){const e=i.getPropagationContext(),{traceId:t,parentSpanId:s,propagationSpanId:o}=e,r={trace_id:t,span_id:o||In()};return s&&(r.parent_span_id=s),r}const Wc="sentry.source",Rc="sentry.sample_rate",Jc="sentry.previous_trace_sample_rate",Bc="sentry.op",Fc="sentry.origin",wn="sentry.profile_id",Cn="sentry.exclusive_time",Gc=0,Hc=1,Vc="_sentryScope",Zc="_sentryIsolationScope";function hn(i){return{scope:i[Vc],isolationScope:i[Zc]}}function Xc(i){if(typeof i=="boolean")return Number(i);const e=typeof i=="string"?parseFloat(i):i;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Kc="sentry-",qc=/^sentry-/;function eu(i){const e=tu(i);if(!e)return;const t=Object.entries(e).reduce((s,[o,r])=>{if(o.match(qc)){const M=o.slice(Kc.length);s[M]=r}return s},{});if(Object.keys(t).length>0)return t}function tu(i){if(!(!i||!tt(i)&&!Array.isArray(i)))return Array.isArray(i)?i.reduce((e,t)=>{const s=hr(t);return Object.entries(s).forEach(([o,r])=>{e[o]=r}),e},{}):hr(i)}function hr(i){return i.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,s])=>(t&&s&&(e[t]=s),e),{})}const An=1;let Ar=!1;function su(i){const{spanId:e,traceId:t,isRemote:s}=i.spanContext(),o=s?e:Po(i).parent_span_id,r=hn(i).scope,M=s?(r==null?void 0:r.getPropagationContext().propagationSpanId)||In():e;return{parent_span_id:o,span_id:M,trace_id:t}}function iu(i){if(i&&i.length>0)return i.map(({context:{spanId:e,traceId:t,traceFlags:s,...o},attributes:r})=>({span_id:e,trace_id:t,sampled:s===An,attributes:r,...o}))}function pr(i){return typeof i=="number"?mr(i):Array.isArray(i)?i[0]+i[1]/1e9:i instanceof Date?mr(i.getTime()):st()}function mr(i){return i>9999999999?i/1e3:i}function Po(i){var s;if(ru(i))return i.getSpanJSON();const{spanId:e,traceId:t}=i.spanContext();if(ou(i)){const{attributes:o,startTime:r,name:M,endTime:a,status:u,links:N}=i,l="parentSpanId"in i?i.parentSpanId:"parentSpanContext"in i?(s=i.parentSpanContext)==null?void 0:s.spanId:void 0;return{span_id:e,trace_id:t,data:o,description:M,parent_span_id:l,start_timestamp:pr(r),timestamp:pr(a)||void 0,status:nu(u),op:o[Bc],origin:o[Fc],links:iu(N)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function ou(i){const e=i;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function ru(i){return typeof i.getSpanJSON=="function"}function Mu(i){const{traceFlags:e}=i.spanContext();return e===An}function nu(i){if(!(!i||i.code===Gc))return i.code===Hc?"ok":i.message||"unknown_error"}const au="_sentryRootSpan";function pn(i){return i[au]||i}function Or(){Ar||(ts(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),Ar=!0)}const mn=50,_t="?",Er=/\(error: (.*)\)/,_r=/captureMessage|captureException/;function On(...i){const e=i.sort((t,s)=>t[0]-s[0]).map(t=>t[1]);return(t,s=0,o=0)=>{const r=[],M=t.split(` +`);for(let a=s;a1024)continue;const N=Er.test(u)?u.replace(Er,"$1"):u;if(!N.match(/\S*Error: /)){for(const l of e){const c=l(N);if(c){r.push(c);break}}if(r.length>=mn+o)break}}return uu(r.slice(o))}}function cu(i){return Array.isArray(i)?On(...i):i}function uu(i){if(!i.length)return[];const e=Array.from(i);return/sentryWrapped/.test(fs(e).function||"")&&e.pop(),e.reverse(),_r.test(fs(e).function||"")&&(e.pop(),_r.test(fs(e).function||"")&&e.pop()),e.slice(0,mn).map(t=>({...t,filename:t.filename||fs(e).filename,function:t.function||_t}))}function fs(i){return i[i.length-1]||{}}const pi="";function yt(i){try{return!i||typeof i!="function"?pi:i.name||pi}catch{return pi}}function Sr(i){const e=i.exception;if(e){const t=[];try{return e.values.forEach(s=>{s.stacktrace.frames&&t.push(...s.stacktrace.frames)}),t}catch{return}}}const Vs={},xr={};function kt(i,e){Vs[i]=Vs[i]||[],Vs[i].push(e)}function Yt(i,e){if(!xr[i]){xr[i]=!0;try{e()}catch(t){Z&&B.error(`Error while instrumenting ${i}`,t)}}}function ve(i,e){const t=i&&Vs[i];if(t)for(const s of t)try{s(e)}catch(o){Z&&B.error(`Error while triggering instrumentation handler. Type: ${i} Name: ${yt(s)} -Error:`,o)}}let mi=null;function cu(i){const e="error";kt(e,i),Yt(e,uu)}function uu(){mi=te.onerror,te.onerror=function(i,e,t,s,o){return ve("error",{column:s,error:o,line:t,msg:i,url:e}),mi?mi.apply(this,arguments):!1},te.onerror.__SENTRY_INSTRUMENTED__=!0}let Oi=null;function Nu(i){const e="unhandledrejection";kt(e,i),Yt(e,lu)}function lu(){Oi=te.onunhandledrejection,te.onunhandledrejection=function(i){return ve("unhandledrejection",i),Oi?Oi.apply(this,arguments):!0},te.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Lu(i){var t;if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;const e=i||((t=we())==null?void 0:t.getOptions());return!!e&&(e.tracesSampleRate!=null||!!e.tracesSampler)}const Wo="production",ju=/^o(\d+)\./,gu=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Tu(i){return i==="http"||i==="https"}function yi(i,e=!1){const{host:t,path:s,pass:o,port:r,projectId:M,protocol:n,publicKey:u}=i;return`${n}://${u}${e&&o?`:${o}`:""}@${t}${r?`:${r}`:""}/${s&&`${s}/`}${M}`}function yu(i){const e=gu.exec(i);if(!e){ts(()=>{console.error(`Invalid Sentry Dsn: ${i}`)});return}const[t,s,o="",r="",M="",n=""]=e.slice(1);let u="",N=n;const l=N.split("/");if(l.length>1&&(u=l.slice(0,-1).join("/"),N=l.pop()),N){const c=N.match(/^\d+/);c&&(N=c[0])}return mn({host:r,pass:o,path:u,projectId:N,port:M,protocol:t,publicKey:s})}function mn(i){return{protocol:i.protocol,publicKey:i.publicKey||"",pass:i.pass||"",host:i.host,port:i.port||"",path:i.path||"",projectId:i.projectId}}function Du(i){if(!Z)return!0;const{port:e,projectId:t,protocol:s}=i;return["protocol","publicKey","host","projectId"].find(M=>i[M]?!1:(B.error(`Invalid Sentry Dsn: ${M} missing`),!0))?!1:t.match(/^\d+$/)?Tu(s)?e&&isNaN(parseInt(e,10))?(B.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(B.error(`Invalid Sentry Dsn: Invalid protocol ${s}`),!1):(B.error(`Invalid Sentry Dsn: Invalid projectId ${t}`),!1)}function du(i){const e=i.match(ju);return e==null?void 0:e[1]}function zu(i){const e=typeof i=="string"?yu(i):mn(i);if(!(!e||!Du(e)))return e}const Iu="_frozenDsc";function On(i,e){const t=e.getOptions(),{publicKey:s,host:o}=e.getDsn()||{};let r;t.orgId?r=String(t.orgId):o&&(r=du(o));const M={environment:t.environment||Wo,release:t.release,public_key:s,trace_id:i,org_id:r};return e.emit("createDsc",M),M}function wu(i,e){const t=e.getPropagationContext();return t.dsc||On(t.traceId,i)}function Cu(i){var T;const e=we();if(!e)return{};const t=hn(i),s=Po(t),o=s.data,r=t.spanContext().traceState,M=(r==null?void 0:r.get("sentry.sample_rate"))??o[Pc]??o[Wc];function n(D){return(typeof M=="number"||typeof M=="string")&&(D.sample_rate=`${M}`),D}const u=t[Iu];if(u)return n(u);const N=r==null?void 0:r.get("sentry.dsc"),l=N&&Kc(N);if(l)return n(l);const c=On(i.spanContext().traceId,e),L=o[$c],j=s.description;return L!=="url"&&j&&(c.transaction=j),Lu()&&(c.sampled=String(ou(t)),c.sample_rand=(r==null?void 0:r.get("sentry.sample_rand"))??((T=wn(t).scope)==null?void 0:T.getPropagationContext().sampleRand.toString())),n(c),e.emit("createDsc",c,t),c}function qe(i,e=100,t=1/0){try{return Ki("",i,e,t)}catch(s){return{ERROR:`**non-serializable** (${s})`}}}function En(i,e=3,t=100*1024){const s=qe(i,e);return mu(s)>t?En(i,e-1,t):s}function Ki(i,e,t=1/0,s=1/0,o=Ou()){const[r,M]=o;if(e==null||["boolean","string"].includes(typeof e)||typeof e=="number"&&Number.isFinite(e))return e;const n=hu(i,e);if(!n.startsWith("[object "))return n;if(e.__sentry_skip_normalization__)return e;const u=typeof e.__sentry_override_normalization_depth__=="number"?e.__sentry_override_normalization_depth__:t;if(u===0)return n.replace("object ","");if(r(e))return"[Circular ~]";const N=e;if(N&&typeof N.toJSON=="function")try{const j=N.toJSON();return Ki("",j,u-1,s,o)}catch{}const l=Array.isArray(e)?[]:{};let c=0;const L=Tn(e);for(const j in L){if(!Object.prototype.hasOwnProperty.call(L,j))continue;if(c>=s){l[j]="[MaxProperties ~]";break}const T=L[j];l[j]=Ki(j,T,u-1,s,o),c++}return M(e),l}function hu(i,e){try{if(i==="domain"&&e&&typeof e=="object"&&e._events)return"[Domain]";if(i==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&e===global)return"[Global]";if(typeof window<"u"&&e===window)return"[Window]";if(typeof document<"u"&&e===document)return"[Document]";if(Ln(e))return"[VueViewModel]";if(gc(e))return"[SyntheticEvent]";if(typeof e=="number"&&!Number.isFinite(e))return`[${e}]`;if(typeof e=="function")return`[Function: ${yt(e)}]`;if(typeof e=="symbol")return`[${String(e)}]`;if(typeof e=="bigint")return`[BigInt: ${String(e)}]`;const t=Au(e);return/^HTML(\w*)Element$/.test(t)?`[HTMLElement: ${t}]`:`[object ${t}]`}catch(t){return`**non-serializable** (${t})`}}function Au(i){const e=Object.getPrototypeOf(i);return e!=null&&e.constructor?e.constructor.name:"null prototype"}function pu(i){return~-encodeURI(i).split(/%..|./).length}function mu(i){return pu(JSON.stringify(i))}function Ou(){const i=new WeakSet;function e(s){return i.has(s)?!0:(i.add(s),!1)}function t(s){i.delete(s)}return[e,t]}function Es(i,e=[]){return[i,e]}function Eu(i,e){const[t,s]=i;return[t,[...s,e]]}function fr(i,e){const t=i[1];for(const s of t){const o=s[0].type;if(e(s,o))return!0}return!1}function qi(i){const e=li(te);return e.encodePolyfill?e.encodePolyfill(i):new TextEncoder().encode(i)}function _u(i){const[e,t]=i;let s=JSON.stringify(e);function o(r){typeof s=="string"?s=typeof r=="string"?s+r:[qi(s),r]:s.push(typeof r=="string"?qi(r):r)}for(const r of t){const[M,n]=r;if(o(` +Error:`,o)}}let mi=null;function Nu(i){const e="error";kt(e,i),Yt(e,lu)}function lu(){mi=te.onerror,te.onerror=function(i,e,t,s,o){return ve("error",{column:s,error:o,line:t,msg:i,url:e}),mi?mi.apply(this,arguments):!1},te.onerror.__SENTRY_INSTRUMENTED__=!0}let Oi=null;function Lu(i){const e="unhandledrejection";kt(e,i),Yt(e,ju)}function ju(){Oi=te.onunhandledrejection,te.onunhandledrejection=function(i){return ve("unhandledrejection",i),Oi?Oi.apply(this,arguments):!0},te.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function gu(i){var t;if(typeof __SENTRY_TRACING__=="boolean"&&!__SENTRY_TRACING__)return!1;const e=i||((t=we())==null?void 0:t.getOptions());return!!e&&(e.tracesSampleRate!=null||!!e.tracesSampler)}const Wo="production",Tu=/^o(\d+)\./,yu=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Du(i){return i==="http"||i==="https"}function yi(i,e=!1){const{host:t,path:s,pass:o,port:r,projectId:M,protocol:a,publicKey:u}=i;return`${a}://${u}${e&&o?`:${o}`:""}@${t}${r?`:${r}`:""}/${s&&`${s}/`}${M}`}function du(i){const e=yu.exec(i);if(!e){ts(()=>{console.error(`Invalid Sentry Dsn: ${i}`)});return}const[t,s,o="",r="",M="",a=""]=e.slice(1);let u="",N=a;const l=N.split("/");if(l.length>1&&(u=l.slice(0,-1).join("/"),N=l.pop()),N){const c=N.match(/^\d+/);c&&(N=c[0])}return En({host:r,pass:o,path:u,projectId:N,port:M,protocol:t,publicKey:s})}function En(i){return{protocol:i.protocol,publicKey:i.publicKey||"",pass:i.pass||"",host:i.host,port:i.port||"",path:i.path||"",projectId:i.projectId}}function zu(i){if(!Z)return!0;const{port:e,projectId:t,protocol:s}=i;return["protocol","publicKey","host","projectId"].find(M=>i[M]?!1:(B.error(`Invalid Sentry Dsn: ${M} missing`),!0))?!1:t.match(/^\d+$/)?Du(s)?e&&isNaN(parseInt(e,10))?(B.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(B.error(`Invalid Sentry Dsn: Invalid protocol ${s}`),!1):(B.error(`Invalid Sentry Dsn: Invalid projectId ${t}`),!1)}function Iu(i){const e=i.match(Tu);return e==null?void 0:e[1]}function wu(i){const e=typeof i=="string"?du(i):En(i);if(!(!e||!zu(e)))return e}const Cu="_frozenDsc";function _n(i,e){const t=e.getOptions(),{publicKey:s,host:o}=e.getDsn()||{};let r;t.orgId?r=String(t.orgId):o&&(r=Iu(o));const M={environment:t.environment||Wo,release:t.release,public_key:s,trace_id:i,org_id:r};return e.emit("createDsc",M),M}function hu(i,e){const t=e.getPropagationContext();return t.dsc||_n(t.traceId,i)}function Au(i){var T;const e=we();if(!e)return{};const t=pn(i),s=Po(t),o=s.data,r=t.spanContext().traceState,M=(r==null?void 0:r.get("sentry.sample_rate"))??o[Rc]??o[Jc];function a(D){return(typeof M=="number"||typeof M=="string")&&(D.sample_rate=`${M}`),D}const u=t[Cu];if(u)return a(u);const N=r==null?void 0:r.get("sentry.dsc"),l=N&&eu(N);if(l)return a(l);const c=_n(i.spanContext().traceId,e),L=o[Wc],j=s.description;return L!=="url"&&j&&(c.transaction=j),gu()&&(c.sampled=String(Mu(t)),c.sample_rand=(r==null?void 0:r.get("sentry.sample_rand"))??((T=hn(t).scope)==null?void 0:T.getPropagationContext().sampleRand.toString())),a(c),e.emit("createDsc",c,t),c}function qe(i,e=100,t=1/0){try{return Ki("",i,e,t)}catch(s){return{ERROR:`**non-serializable** (${s})`}}}function Sn(i,e=3,t=100*1024){const s=qe(i,e);return Eu(s)>t?Sn(i,e-1,t):s}function Ki(i,e,t=1/0,s=1/0,o=_u()){const[r,M]=o;if(e==null||["boolean","string"].includes(typeof e)||typeof e=="number"&&Number.isFinite(e))return e;const a=pu(i,e);if(!a.startsWith("[object "))return a;if(e.__sentry_skip_normalization__)return e;const u=typeof e.__sentry_override_normalization_depth__=="number"?e.__sentry_override_normalization_depth__:t;if(u===0)return a.replace("object ","");if(r(e))return"[Circular ~]";const N=e;if(N&&typeof N.toJSON=="function")try{const j=N.toJSON();return Ki("",j,u-1,s,o)}catch{}const l=Array.isArray(e)?[]:{};let c=0;const L=Dn(e);for(const j in L){if(!Object.prototype.hasOwnProperty.call(L,j))continue;if(c>=s){l[j]="[MaxProperties ~]";break}const T=L[j];l[j]=Ki(j,T,u-1,s,o),c++}return M(e),l}function pu(i,e){try{if(i==="domain"&&e&&typeof e=="object"&&e._events)return"[Domain]";if(i==="domainEmitter")return"[DomainEmitter]";if(typeof global<"u"&&e===global)return"[Global]";if(typeof window<"u"&&e===window)return"[Window]";if(typeof document<"u"&&e===document)return"[Document]";if(gn(e))return"[VueViewModel]";if(yc(e))return"[SyntheticEvent]";if(typeof e=="number"&&!Number.isFinite(e))return`[${e}]`;if(typeof e=="function")return`[Function: ${yt(e)}]`;if(typeof e=="symbol")return`[${String(e)}]`;if(typeof e=="bigint")return`[BigInt: ${String(e)}]`;const t=mu(e);return/^HTML(\w*)Element$/.test(t)?`[HTMLElement: ${t}]`:`[object ${t}]`}catch(t){return`**non-serializable** (${t})`}}function mu(i){const e=Object.getPrototypeOf(i);return e!=null&&e.constructor?e.constructor.name:"null prototype"}function Ou(i){return~-encodeURI(i).split(/%..|./).length}function Eu(i){return Ou(JSON.stringify(i))}function _u(){const i=new WeakSet;function e(s){return i.has(s)?!0:(i.add(s),!1)}function t(s){i.delete(s)}return[e,t]}function Es(i,e=[]){return[i,e]}function Su(i,e){const[t,s]=i;return[t,[...s,e]]}function fr(i,e){const t=i[1];for(const s of t){const o=s[0].type;if(e(s,o))return!0}return!1}function qi(i){const e=li(te);return e.encodePolyfill?e.encodePolyfill(i):new TextEncoder().encode(i)}function xu(i){const[e,t]=i;let s=JSON.stringify(e);function o(r){typeof s=="string"?s=typeof r=="string"?s+r:[qi(s),r]:s.push(typeof r=="string"?qi(r):r)}for(const r of t){const[M,a]=r;if(o(` ${JSON.stringify(M)} -`),typeof n=="string"||n instanceof Uint8Array)o(n);else{let u;try{u=JSON.stringify(n)}catch{u=JSON.stringify(qe(n))}o(u)}}return typeof s=="string"?s:Su(s)}function Su(i){const e=i.reduce((o,r)=>o+r.length,0),t=new Uint8Array(e);let s=0;for(const o of i)t.set(o,s),s+=o.length;return t}function xu(i){const e=typeof i.data=="string"?qi(i.data):i.data;return[{type:"attachment",length:e.length,filename:i.filename,content_type:i.contentType,attachment_type:i.attachmentType},e]}const fu={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item"};function kr(i){return fu[i]}function _n(i){if(!(i!=null&&i.sdk))return;const{name:e,version:t}=i.sdk;return{name:e,version:t}}function ku(i,e,t,s){var r;const o=(r=i.sdkProcessingMetadata)==null?void 0:r.dynamicSamplingContext;return{event_id:i.event_id,sent_at:new Date().toISOString(),...e&&{sdk:e},...!!t&&s&&{dsn:yi(s)},...o&&{trace:o}}}function Yu(i,e){return e&&(i.sdk=i.sdk||{},i.sdk.name=i.sdk.name||e.name,i.sdk.version=i.sdk.version||e.version,i.sdk.integrations=[...i.sdk.integrations||[],...e.integrations||[]],i.sdk.packages=[...i.sdk.packages||[],...e.packages||[]]),i}function Qu(i,e,t,s){const o=_n(t),r={sent_at:new Date().toISOString(),...o&&{sdk:o},...!!s&&e&&{dsn:yi(e)}},M="aggregates"in i?[{type:"sessions"},i]:[{type:"session"},i.toJSON()];return Es(r,[M])}function Uu(i,e,t,s){const o=_n(t),r=i.type&&i.type!=="replay_event"?i.type:"event";Yu(i,t==null?void 0:t.sdk);const M=ku(i,o,s,e);return delete i.sdkProcessingMetadata,Es(M,[[{type:r},i]])}var et;(function(i){i[i.PENDING=0]="PENDING";const t=1;i[i.RESOLVED=t]="RESOLVED";const s=2;i[i.REJECTED=s]="REJECTED"})(et||(et={}));function St(i){return new Dt(e=>{e(i)})}function ii(i){return new Dt((e,t)=>{t(i)})}class Dt{constructor(e){this._state=et.PENDING,this._handlers=[],this._runExecutor(e)}then(e,t){return new Dt((s,o)=>{this._handlers.push([!1,r=>{if(!e)s(r);else try{s(e(r))}catch(M){o(M)}},r=>{if(!t)o(r);else try{s(t(r))}catch(M){o(M)}}]),this._executeHandlers()})}catch(e){return this.then(t=>t,e)}finally(e){return new Dt((t,s)=>{let o,r;return this.then(M=>{r=!1,o=M,e&&e()},M=>{r=!0,o=M,e&&e()}).then(()=>{if(r){s(o);return}t(o)})})}_executeHandlers(){if(this._state===et.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach(t=>{t[0]||(this._state===et.RESOLVED&&t[1](this._value),this._state===et.REJECTED&&t[2](this._value),t[0]=!0)})}_runExecutor(e){const t=(r,M)=>{if(this._state===et.PENDING){if(gi(M)){M.then(s,o);return}this._state=r,this._value=M,this._executeHandlers()}},s=r=>{t(et.RESOLVED,r)},o=r=>{t(et.REJECTED,r)};try{e(s,o)}catch(r){o(r)}}}function eo(i,e,t,s=0){return new Dt((o,r)=>{const M=i[s];if(e===null||typeof M!="function")o(e);else{const n=M({...e},t);Z&&M.id&&n===null&&B.log(`Event processor "${M.id}" dropped event`),gi(n)?n.then(u=>eo(i,u,t,s+1).then(o)).then(null,r):eo(i,n,t,s+1).then(o).then(null,r)}})}let ks,Yr,Ys;function vu(i){const e=te._sentryDebugIds;if(!e)return{};const t=Object.keys(e);return Ys&&t.length===Yr||(Yr=t.length,Ys=t.reduce((s,o)=>{ks||(ks={});const r=ks[o];if(r)s[r[0]]=r[1];else{const M=i(o);for(let n=M.length-1;n>=0;n--){const u=M[n],N=u==null?void 0:u.filename,l=e[o];if(N&&l){s[N]=l,ks[o]=[N,l];break}}}return s},{})),Ys}function bu(i,e){const{fingerprint:t,span:s,breadcrumbs:o,sdkProcessingMetadata:r}=e;$u(i,e),s&&Ru(i,s),Ju(i,t),Pu(i,o),Wu(i,r)}function Qr(i,e){const{extra:t,tags:s,user:o,contexts:r,level:M,sdkProcessingMetadata:n,breadcrumbs:u,fingerprint:N,eventProcessors:l,attachments:c,propagationContext:L,transactionName:j,span:T}=e;Qs(i,"extra",t),Qs(i,"tags",s),Qs(i,"user",o),Qs(i,"contexts",r),i.sdkProcessingMetadata=ms(i.sdkProcessingMetadata,n,2),M&&(i.level=M),j&&(i.transactionName=j),T&&(i.span=T),u.length&&(i.breadcrumbs=[...i.breadcrumbs,...u]),N.length&&(i.fingerprint=[...i.fingerprint,...N]),l.length&&(i.eventProcessors=[...i.eventProcessors,...l]),c.length&&(i.attachments=[...i.attachments,...c]),i.propagationContext={...i.propagationContext,...L}}function Qs(i,e,t){i[e]=ms(i[e],t,1)}function $u(i,e){const{extra:t,tags:s,user:o,contexts:r,level:M,transactionName:n}=e;Object.keys(t).length&&(i.extra={...t,...i.extra}),Object.keys(s).length&&(i.tags={...s,...i.tags}),Object.keys(o).length&&(i.user={...o,...i.user}),Object.keys(r).length&&(i.contexts={...r,...i.contexts}),M&&(i.level=M),n&&i.type!=="transaction"&&(i.transaction=n)}function Pu(i,e){const t=[...i.breadcrumbs||[],...e];i.breadcrumbs=t.length?t:void 0}function Wu(i,e){i.sdkProcessingMetadata={...i.sdkProcessingMetadata,...e}}function Ru(i,e){i.contexts={trace:eu(e),...i.contexts},i.sdkProcessingMetadata={dynamicSamplingContext:Cu(e),...i.sdkProcessingMetadata};const t=hn(e),s=Po(t).description;s&&!i.transaction&&i.type==="transaction"&&(i.transaction=s)}function Ju(i,e){i.fingerprint=i.fingerprint?Array.isArray(i.fingerprint)?i.fingerprint:[i.fingerprint]:[],e&&(i.fingerprint=i.fingerprint.concat(e)),i.fingerprint.length||delete i.fingerprint}function Bu(i,e,t,s,o,r){const{normalizeDepth:M=3,normalizeMaxBreadth:n=1e3}=i,u={...e,event_id:e.event_id||t.event_id||fe(),timestamp:e.timestamp||ps()},N=t.integrations||i.integrations.map(z=>z.name);Fu(u,i),Vu(u,N),o&&o.emit("applyFrameMetadata",e),e.type===void 0&&Gu(u,i.stackParser);const l=Xu(s,t.captureContext);t.mechanism&&Zt(u,t.mechanism);const c=o?o.getEventProcessors():[],L=Uc().getScopeData();if(r){const z=r.getScopeData();Qr(L,z)}if(l){const z=l.getScopeData();Qr(L,z)}const j=[...t.attachments||[],...L.attachments];j.length&&(t.attachments=j),bu(u,L);const T=[...c,...L.eventProcessors];return eo(T,u,t).then(z=>(z&&Hu(z),typeof M=="number"&&M>0?Zu(z,M,n):z))}function Fu(i,e){const{environment:t,release:s,dist:o,maxValueLength:r=250}=e;i.environment=i.environment||t||Wo,!i.release&&s&&(i.release=s),!i.dist&&o&&(i.dist=o);const M=i.request;M!=null&&M.url&&(M.url=si(M.url,r))}function Gu(i,e){var s,o;const t=vu(e);(o=(s=i.exception)==null?void 0:s.values)==null||o.forEach(r=>{var M,n;(n=(M=r.stacktrace)==null?void 0:M.frames)==null||n.forEach(u=>{u.filename&&(u.debug_id=t[u.filename])})})}function Hu(i){var s,o;const e={};if((o=(s=i.exception)==null?void 0:s.values)==null||o.forEach(r=>{var M,n;(n=(M=r.stacktrace)==null?void 0:M.frames)==null||n.forEach(u=>{u.debug_id&&(u.abs_path?e[u.abs_path]=u.debug_id:u.filename&&(e[u.filename]=u.debug_id),delete u.debug_id)})}),Object.keys(e).length===0)return;i.debug_meta=i.debug_meta||{},i.debug_meta.images=i.debug_meta.images||[];const t=i.debug_meta.images;Object.entries(e).forEach(([r,M])=>{t.push({type:"sourcemap",code_file:r,debug_id:M})})}function Vu(i,e){e.length>0&&(i.sdk=i.sdk||{},i.sdk.integrations=[...i.sdk.integrations||[],...e])}function Zu(i,e,t){var o,r;if(!i)return null;const s={...i,...i.breadcrumbs&&{breadcrumbs:i.breadcrumbs.map(M=>({...M,...M.data&&{data:qe(M.data,e,t)}}))},...i.user&&{user:qe(i.user,e,t)},...i.contexts&&{contexts:qe(i.contexts,e,t)},...i.extra&&{extra:qe(i.extra,e,t)}};return(o=i.contexts)!=null&&o.trace&&s.contexts&&(s.contexts.trace=i.contexts.trace,i.contexts.trace.data&&(s.contexts.trace.data=qe(i.contexts.trace.data,e,t))),i.spans&&(s.spans=i.spans.map(M=>({...M,...M.data&&{data:qe(M.data,e,t)}}))),(r=i.contexts)!=null&&r.flags&&s.contexts&&(s.contexts.flags=qe(i.contexts.flags,3,t)),s}function Xu(i,e){if(!e)return i;const t=i?i.clone():new it;return t.update(e),t}function Ku(i,e){return ot().captureException(i,void 0)}function Sn(i,e){return ot().captureEvent(i,e)}function Ur(i){const e=Os(),t=ot(),{userAgent:s}=te.navigator||{},o=mc({user:t.getUser()||e.getUser(),...s&&{userAgent:s},...i}),r=e.getSession();return(r==null?void 0:r.status)==="ok"&&Xt(r,{status:"exited"}),xn(),e.setSession(o),o}function xn(){const i=Os(),t=ot().getSession()||i.getSession();t&&Oc(t),fn(),i.setSession()}function fn(){const i=Os(),e=we(),t=i.getSession();t&&e&&e.captureSession(t)}function vr(i=!1){if(i){xn();return}fn()}const qu="7";function eN(i){const e=i.protocol?`${i.protocol}:`:"",t=i.port?`:${i.port}`:"";return`${e}//${i.host}${t}${i.path?`/${i.path}`:""}/api/`}function tN(i){return`${eN(i)}${i.projectId}/envelope/`}function sN(i,e){const t={sentry_version:qu};return i.publicKey&&(t.sentry_key=i.publicKey),e&&(t.sentry_client=`${e.name}/${e.version}`),new URLSearchParams(t).toString()}function iN(i,e,t){return e||`${tN(i)}?${sN(i,t)}`}const br=[];function oN(i){const e={};return i.forEach(t=>{const{name:s}=t,o=e[s];o&&!o.isDefaultInstance&&t.isDefaultInstance||(e[s]=t)}),Object.values(e)}function rN(i){const e=i.defaultIntegrations||[],t=i.integrations;e.forEach(o=>{o.isDefaultInstance=!0});let s;if(Array.isArray(t))s=[...e,...t];else if(typeof t=="function"){const o=t(e);s=Array.isArray(o)?o:[o]}else s=e;return oN(s)}function MN(i,e){const t={};return e.forEach(s=>{s&&kn(i,s,t)}),t}function $r(i,e){for(const t of e)t!=null&&t.afterAllSetup&&t.afterAllSetup(i)}function kn(i,e,t){if(t[e.name]){Z&&B.log(`Integration skipped because it was already installed: ${e.name}`);return}if(t[e.name]=e,br.indexOf(e.name)===-1&&typeof e.setupOnce=="function"&&(e.setupOnce(),br.push(e.name)),e.setup&&typeof e.setup=="function"&&e.setup(i),typeof e.preprocessEvent=="function"){const s=e.preprocessEvent.bind(e);i.on("preprocessEvent",(o,r)=>s(o,r,i))}if(typeof e.processEvent=="function"){const s=e.processEvent.bind(e),o=Object.assign((r,M)=>s(r,M,i),{id:e.name});i.addEventProcessor(o)}Z&&B.log(`Integration installed: ${e.name}`)}function Yn(i){const e=[];i.message&&e.push(i.message);try{const t=i.exception.values[i.exception.values.length-1];t!=null&&t.value&&(e.push(t.value),t.type&&e.push(`${t.type}: ${t.value}`))}catch{}return e}function nN(i){var u;const{trace_id:e,parent_span_id:t,span_id:s,status:o,origin:r,data:M,op:n}=((u=i.contexts)==null?void 0:u.trace)??{};return{data:M??{},description:i.transaction,op:n,parent_span_id:t,span_id:s??"",start_timestamp:i.start_timestamp??0,status:o,timestamp:i.timestamp,trace_id:e??"",origin:r,profile_id:M==null?void 0:M[zn],exclusive_time:M==null?void 0:M[In],measurements:i.measurements,is_segment:!0}}function aN(i){return{type:"transaction",timestamp:i.timestamp,start_timestamp:i.start_timestamp,transaction:i.description,contexts:{trace:{trace_id:i.trace_id,span_id:i.span_id,parent_span_id:i.parent_span_id,op:i.op,status:i.status,origin:i.origin,data:{...i.data,...i.profile_id&&{[zn]:i.profile_id},...i.exclusive_time&&{[In]:i.exclusive_time}}}},measurements:i.measurements}}function cN(i,e,t){const s=[{type:"client_report"},{timestamp:ps(),discarded_events:i}];return Es(e?{dsn:e}:{},[s])}const Pr="Not capturing exception because it's already been captured.",Wr="Discarded session because of missing or non-string release",Qn=Symbol.for("SentryInternalError"),Un=Symbol.for("SentryDoNotSendEventError");function Zs(i){return{message:i,[Qn]:!0}}function Ei(i){return{message:i,[Un]:!0}}function Rr(i){return!!i&&typeof i=="object"&&Qn in i}function Jr(i){return!!i&&typeof i=="object"&&Un in i}class uN{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=zu(e.dsn):Z&&B.warn("No DSN provided, client will not send events."),this._dsn){const t=iN(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,s){const o=fe();if(dr(e))return Z&&B.log(Pr),o;const r={event_id:o,...t};return this._process(this.eventFromException(e,r).then(M=>this._captureEvent(M,r,s))),r.event_id}captureMessage(e,t,s,o){const r={event_id:fe(),...s},M=Yo(e)?e:String(e),n=Qo(e)?this.eventFromMessage(M,t,r):this.eventFromException(e,r);return this._process(n.then(u=>this._captureEvent(u,r,o))),r.event_id}captureEvent(e,t,s){const o=fe();if(t!=null&&t.originalException&&dr(t.originalException))return Z&&B.log(Pr),o;const r={event_id:o,...t},M=e.sdkProcessingMetadata||{},n=M.capturedSpanScope,u=M.capturedSpanIsolationScope;return this._process(this._captureEvent(e,r,n||s,u)),r.event_id}captureSession(e){this.sendSession(e),Xt(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit("flush"),this._isClientDoneProcessing(e).then(s=>t.flush(e).then(o=>s&&o))):St(!0)}close(e){return this.flush(e).then(t=>(this.getOptions().enabled=!1,this.emit("close"),t))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];kn(this,e,this._integrations),t||$r(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let s=Uu(e,this._dsn,this._options._metadata,this._options.tunnel);for(const r of t.attachments||[])s=Eu(s,xu(r));const o=this.sendEnvelope(s);o&&o.then(r=>this.emit("afterSendEvent",e,r),null)}sendSession(e){const{release:t,environment:s=Wo}=this._options;if("aggregates"in e){const r=e.attrs||{};if(!r.release&&!t){Z&&B.warn(Wr);return}r.release=r.release||t,r.environment=r.environment||s,e.attrs=r}else{if(!e.release&&!t){Z&&B.warn(Wr);return}e.release=e.release||t,e.environment=e.environment||s}this.emit("beforeSendSession",e);const o=Qu(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(o)}recordDroppedEvent(e,t,s=1){if(this._options.sendClientReports){const o=`${e}:${t}`;Z&&B.log(`Recording outcome: "${o}"${s>1?` (${s} times)`:""}`),this._outcomes[o]=(this._outcomes[o]||0)+s}}on(e,t){const s=this._hooks[e]=this._hooks[e]||[];return s.push(t),()=>{const o=s.indexOf(t);o>-1&&s.splice(o,1)}}emit(e,...t){const s=this._hooks[e];s&&s.forEach(o=>o(...t))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,t=>(Z&&B.error("Error while sending envelope:",t),t)):(Z&&B.error("Transport disabled"),St({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=MN(this,e),$r(this,e)}_updateSessionFromEvent(e,t){var u;let s=t.level==="fatal",o=!1;const r=(u=t.exception)==null?void 0:u.values;if(r){o=!0;for(const N of r){const l=N.mechanism;if((l==null?void 0:l.handled)===!1){s=!0;break}}}const M=e.status==="ok";(M&&e.errors===0||M&&s)&&(Xt(e,{...s&&{status:"crashed"},errors:e.errors||Number(o||s)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Dt(t=>{let s=0;const o=1,r=setInterval(()=>{this._numProcessing==0?(clearInterval(r),t(!0)):(s+=o,e&&s>=e&&(clearInterval(r),t(!1)))},o)})}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,s,o){const r=this.getOptions(),M=Object.keys(this._integrations);return!t.integrations&&(M!=null&&M.length)&&(t.integrations=M),this.emit("preprocessEvent",e,t),e.type||o.setLastEventId(e.event_id||t.event_id),Bu(r,e,t,s,this,o).then(n=>{if(n===null)return n;this.emit("postprocessEvent",n,t),n.contexts={trace:bc(s),...n.contexts};const u=wu(this,s);return n.sdkProcessingMetadata={dynamicSamplingContext:u,...n.sdkProcessingMetadata},n})}_captureEvent(e,t={},s=ot(),o=Os()){return Z&&to(e)&&B.log(`Captured error event \`${Yn(e)[0]||""}\``),this._processEvent(e,t,s,o).then(r=>r.event_id,r=>{Z&&(Jr(r)?B.log(r.message):Rr(r)?B.warn(r.message):B.warn(r))})}_processEvent(e,t,s,o){const r=this.getOptions(),{sampleRate:M}=r,n=vn(e),u=to(e),N=e.type||"error",l=`before send for type \`${N}\``,c=typeof M>"u"?void 0:Vc(M);if(u&&typeof c=="number"&&Math.random()>c)return this.recordDroppedEvent("sample_rate","error"),ii(Ei(`Discarding event because it's not included in the random sample (sampling rate = ${M})`));const L=N==="replay_event"?"replay":N;return this._prepareEvent(e,t,s,o).then(j=>{if(j===null)throw this.recordDroppedEvent("event_processor",L),Ei("An event processor returned `null`, will not send event.");if(t.data&&t.data.__sentry__===!0)return j;const D=lN(this,r,j,t);return NN(D,l)}).then(j=>{var z;if(j===null){if(this.recordDroppedEvent("before_send",L),n){const O=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",O)}throw Ei(`${l} returned \`null\`, will not send event.`)}const T=s.getSession()||o.getSession();if(u&&T&&this._updateSessionFromEvent(T,j),n){const h=((z=j.sdkProcessingMetadata)==null?void 0:z.spanCountBeforeProcessing)||0,O=j.spans?j.spans.length:0,p=h-O;p>0&&this.recordDroppedEvent("before_send","span",p)}const D=j.transaction_info;if(n&&D&&j.transaction!==e.transaction){const h="custom";j.transaction_info={...D,source:h}}return this.sendEvent(j,t),j}).then(null,j=>{throw Jr(j)||Rr(j)?j:(this.captureException(j,{data:{__sentry__:!0},originalException:j}),Zs(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. -Reason: ${j}`))})}_process(e){this._numProcessing++,e.then(t=>(this._numProcessing--,t),t=>(this._numProcessing--,t))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([t,s])=>{const[o,r]=t.split(":");return{reason:o,category:r,quantity:s}})}_flushOutcomes(){Z&&B.log("Flushing outcomes...");const e=this._clearOutcomes();if(e.length===0){Z&&B.log("No outcomes to send");return}if(!this._dsn){Z&&B.log("No dsn provided, will not send outcomes");return}Z&&B.log("Sending outcomes:",e);const t=cN(e,this._options.tunnel&&yi(this._dsn));this.sendEnvelope(t)}}function NN(i,e){const t=`${e} must return \`null\` or a valid event.`;if(gi(i))return i.then(s=>{if(!ds(s)&&s!==null)throw Zs(t);return s},s=>{throw Zs(`${e} rejected with ${s}`)});if(!ds(i)&&i!==null)throw Zs(t);return i}function lN(i,e,t,s){const{beforeSend:o,beforeSendTransaction:r,beforeSendSpan:M}=e;let n=t;if(to(n)&&o)return o(n,s);if(vn(n)){if(M){const u=M(nN(n));if(u?n=ms(t,aN(u)):Or(),n.spans){const N=[];for(const l of n.spans){const c=M(l);c?N.push(c):(Or(),N.push(l))}n.spans=N}}if(r){if(n.spans){const u=n.spans.length;n.sdkProcessingMetadata={...t.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return r(n,s)}}return n}function to(i){return i.type===void 0}function vn(i){return i.type==="transaction"}function LN(i){return[{type:"log",item_count:i.length,content_type:"application/vnd.sentry.items.log+json"},{items:i}]}function jN(i,e,t,s){const o={};return e!=null&&e.sdk&&(o.sdk={name:e.sdk.name,version:e.sdk.version}),t&&s&&(o.dsn=yi(s)),Es(o,[LN(i)])}te._sentryClientToLogBufferMap=new WeakMap;function _i(i,e){var r;const t=gN(i)??[];if(t.length===0)return;const s=i.getOptions(),o=jN(t,s._metadata,s.tunnel,i.getDsn());(r=te._sentryClientToLogBufferMap)==null||r.set(i,[]),i.emit("flushLogs"),i.sendEnvelope(o)}function gN(i){var e;return(e=te._sentryClientToLogBufferMap)==null?void 0:e.get(i)}function TN(i,e){e.debug===!0&&(Z?B.enable():ts(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),ot().update(e.initialScope);const s=new i(e);return yN(s),s.init(),s}function yN(i){ot().setClient(i)}const bn=Symbol.for("SentryBufferFullError");function DN(i){const e=[];function t(){return i===void 0||e.lengths(n)).then(null,()=>s(n).then(null,()=>{})),n}function r(M){return new Dt((n,u)=>{let N=e.length;if(!N)return n(!0);const l=setTimeout(()=>{M&&M>0&&n(!1)},M);e.forEach(c=>{St(c).then(()=>{--N||(clearTimeout(l),n(!0))},u)})})}return{$:e,add:o,drain:r}}const dN=60*1e3;function zN(i,e=Date.now()){const t=parseInt(`${i}`,10);if(!isNaN(t))return t*1e3;const s=Date.parse(`${i}`);return isNaN(s)?dN:s-e}function IN(i,e){return i[e]||i.all||0}function wN(i,e,t=Date.now()){return IN(i,e)>t}function CN(i,{statusCode:e,headers:t},s=Date.now()){const o={...i},r=t==null?void 0:t["x-sentry-rate-limits"],M=t==null?void 0:t["retry-after"];if(r)for(const n of r.trim().split(",")){const[u,N,,,l]=n.split(":",5),c=parseInt(u,10),L=(isNaN(c)?60:c)*1e3;if(!N)o.all=s+L;else for(const j of N.split(";"))j==="metric_bucket"?(!l||l.split(";").includes("custom"))&&(o[j]=s+L):o[j]=s+L}else M?o.all=s+zN(M,s):e===429&&(o.all=s+60*1e3);return o}const hN=64;function AN(i,e,t=DN(i.bufferSize||hN)){let s={};const o=M=>t.drain(M);function r(M){const n=[];if(fr(M,(c,L)=>{const j=kr(L);wN(s,j)?i.recordDroppedEvent("ratelimit_backoff",j):n.push(c)}),n.length===0)return St({});const u=Es(M[0],n),N=c=>{fr(u,(L,j)=>{i.recordDroppedEvent(c,kr(j))})},l=()=>e({body:_u(u)}).then(c=>(c.statusCode!==void 0&&(c.statusCode<200||c.statusCode>=300)&&Z&&B.warn(`Sentry responded with status code ${c.statusCode} to sent event.`),s=CN(s,c),c),c=>{throw N("network_error"),Z&&B.error("Encountered error running transport request:",c),c});return t.add(l).then(c=>c,c=>{if(c===bn)return Z&&B.error("Skipped sending event because buffer is full."),N("queue_overflow"),St({});throw c})}return{send:r,flush:o}}function pN(i){var e;((e=i.user)==null?void 0:e.ip_address)===void 0&&(i.user={...i.user,ip_address:"{{auto}}"})}function mN(i){var e;"aggregates"in i?((e=i.attrs)==null?void 0:e.ip_address)===void 0&&(i.attrs={...i.attrs,ip_address:"{{auto}}"}):i.ipAddress===void 0&&(i.ipAddress="{{auto}}")}function ON(i,e,t=[e],s="npm"){const o=i._metadata||{};o.sdk||(o.sdk={name:`sentry.javascript.${e}`,packages:t.map(r=>({name:`${s}:@sentry/${r}`,version:Ot})),version:Ot}),i._metadata=o}const EN=100;function xt(i,e){const t=we(),s=Os();if(!t)return;const{beforeBreadcrumb:o=null,maxBreadcrumbs:r=EN}=t.getOptions();if(r<=0)return;const n={timestamp:ps(),...i},u=o?ts(()=>o(n,e)):n;u!==null&&(t.emit&&t.emit("beforeAddBreadcrumb",u,e),s.addBreadcrumb(u,r))}let Br;const _N="FunctionToString",Fr=new WeakMap,SN=()=>({name:_N,setupOnce(){Br=Function.prototype.toString;try{Function.prototype.toString=function(...i){const e=bo(this),t=Fr.has(we())&&e!==void 0?e:this;return Br.apply(t,i)}}catch{}},setup(i){Fr.set(i,!0)}}),xN=SN,fN=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],kN="EventFilters",YN=(i={})=>{let e;return{name:kN,setup(t){const s=t.getOptions();e=Gr(i,s)},processEvent(t,s,o){if(!e){const r=o.getOptions();e=Gr(i,r)}return UN(t,e)?null:t}}},QN=(i={})=>({...YN(i),name:"InboundFilters"});function Gr(i={},e={}){return{allowUrls:[...i.allowUrls||[],...e.allowUrls||[]],denyUrls:[...i.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...i.ignoreErrors||[],...e.ignoreErrors||[],...i.disableErrorDefaults?[]:fN],ignoreTransactions:[...i.ignoreTransactions||[],...e.ignoreTransactions||[]]}}function UN(i,e){if(i.type){if(i.type==="transaction"&&bN(i,e.ignoreTransactions))return Z&&B.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. -Event: ${pt(i)}`),!0}else{if(vN(i,e.ignoreErrors))return Z&&B.warn(`Event dropped due to being matched by \`ignoreErrors\` option. -Event: ${pt(i)}`),!0;if(RN(i))return Z&&B.warn(`Event dropped due to not having an error message, error type or stacktrace. -Event: ${pt(i)}`),!0;if($N(i,e.denyUrls))return Z&&B.warn(`Event dropped due to being matched by \`denyUrls\` option. +`),typeof a=="string"||a instanceof Uint8Array)o(a);else{let u;try{u=JSON.stringify(a)}catch{u=JSON.stringify(qe(a))}o(u)}}return typeof s=="string"?s:fu(s)}function fu(i){const e=i.reduce((o,r)=>o+r.length,0),t=new Uint8Array(e);let s=0;for(const o of i)t.set(o,s),s+=o.length;return t}function ku(i){const e=typeof i.data=="string"?qi(i.data):i.data;return[{type:"attachment",length:e.length,filename:i.filename,content_type:i.contentType,attachment_type:i.attachmentType},e]}const Yu={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item"};function kr(i){return Yu[i]}function xn(i){if(!(i!=null&&i.sdk))return;const{name:e,version:t}=i.sdk;return{name:e,version:t}}function Qu(i,e,t,s){var r;const o=(r=i.sdkProcessingMetadata)==null?void 0:r.dynamicSamplingContext;return{event_id:i.event_id,sent_at:new Date().toISOString(),...e&&{sdk:e},...!!t&&s&&{dsn:yi(s)},...o&&{trace:o}}}function Uu(i,e){return e&&(i.sdk=i.sdk||{},i.sdk.name=i.sdk.name||e.name,i.sdk.version=i.sdk.version||e.version,i.sdk.integrations=[...i.sdk.integrations||[],...e.integrations||[]],i.sdk.packages=[...i.sdk.packages||[],...e.packages||[]]),i}function vu(i,e,t,s){const o=xn(t),r={sent_at:new Date().toISOString(),...o&&{sdk:o},...!!s&&e&&{dsn:yi(e)}},M="aggregates"in i?[{type:"sessions"},i]:[{type:"session"},i.toJSON()];return Es(r,[M])}function bu(i,e,t,s){const o=xn(t),r=i.type&&i.type!=="replay_event"?i.type:"event";Uu(i,t==null?void 0:t.sdk);const M=Qu(i,o,s,e);return delete i.sdkProcessingMetadata,Es(M,[[{type:r},i]])}var et;(function(i){i[i.PENDING=0]="PENDING";const t=1;i[i.RESOLVED=t]="RESOLVED";const s=2;i[i.REJECTED=s]="REJECTED"})(et||(et={}));function St(i){return new Dt(e=>{e(i)})}function ii(i){return new Dt((e,t)=>{t(i)})}class Dt{constructor(e){this._state=et.PENDING,this._handlers=[],this._runExecutor(e)}then(e,t){return new Dt((s,o)=>{this._handlers.push([!1,r=>{if(!e)s(r);else try{s(e(r))}catch(M){o(M)}},r=>{if(!t)o(r);else try{s(t(r))}catch(M){o(M)}}]),this._executeHandlers()})}catch(e){return this.then(t=>t,e)}finally(e){return new Dt((t,s)=>{let o,r;return this.then(M=>{r=!1,o=M,e&&e()},M=>{r=!0,o=M,e&&e()}).then(()=>{if(r){s(o);return}t(o)})})}_executeHandlers(){if(this._state===et.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach(t=>{t[0]||(this._state===et.RESOLVED&&t[1](this._value),this._state===et.REJECTED&&t[2](this._value),t[0]=!0)})}_runExecutor(e){const t=(r,M)=>{if(this._state===et.PENDING){if(gi(M)){M.then(s,o);return}this._state=r,this._value=M,this._executeHandlers()}},s=r=>{t(et.RESOLVED,r)},o=r=>{t(et.REJECTED,r)};try{e(s,o)}catch(r){o(r)}}}function eo(i,e,t,s=0){return new Dt((o,r)=>{const M=i[s];if(e===null||typeof M!="function")o(e);else{const a=M({...e},t);Z&&M.id&&a===null&&B.log(`Event processor "${M.id}" dropped event`),gi(a)?a.then(u=>eo(i,u,t,s+1).then(o)).then(null,r):eo(i,a,t,s+1).then(o).then(null,r)}})}let ks,Yr,Ys;function $u(i){const e=te._sentryDebugIds;if(!e)return{};const t=Object.keys(e);return Ys&&t.length===Yr||(Yr=t.length,Ys=t.reduce((s,o)=>{ks||(ks={});const r=ks[o];if(r)s[r[0]]=r[1];else{const M=i(o);for(let a=M.length-1;a>=0;a--){const u=M[a],N=u==null?void 0:u.filename,l=e[o];if(N&&l){s[N]=l,ks[o]=[N,l];break}}}return s},{})),Ys}function Pu(i,e){const{fingerprint:t,span:s,breadcrumbs:o,sdkProcessingMetadata:r}=e;Wu(i,e),s&&Bu(i,s),Fu(i,t),Ru(i,o),Ju(i,r)}function Qr(i,e){const{extra:t,tags:s,user:o,contexts:r,level:M,sdkProcessingMetadata:a,breadcrumbs:u,fingerprint:N,eventProcessors:l,attachments:c,propagationContext:L,transactionName:j,span:T}=e;Qs(i,"extra",t),Qs(i,"tags",s),Qs(i,"user",o),Qs(i,"contexts",r),i.sdkProcessingMetadata=ms(i.sdkProcessingMetadata,a,2),M&&(i.level=M),j&&(i.transactionName=j),T&&(i.span=T),u.length&&(i.breadcrumbs=[...i.breadcrumbs,...u]),N.length&&(i.fingerprint=[...i.fingerprint,...N]),l.length&&(i.eventProcessors=[...i.eventProcessors,...l]),c.length&&(i.attachments=[...i.attachments,...c]),i.propagationContext={...i.propagationContext,...L}}function Qs(i,e,t){i[e]=ms(i[e],t,1)}function Wu(i,e){const{extra:t,tags:s,user:o,contexts:r,level:M,transactionName:a}=e;Object.keys(t).length&&(i.extra={...t,...i.extra}),Object.keys(s).length&&(i.tags={...s,...i.tags}),Object.keys(o).length&&(i.user={...o,...i.user}),Object.keys(r).length&&(i.contexts={...r,...i.contexts}),M&&(i.level=M),a&&i.type!=="transaction"&&(i.transaction=a)}function Ru(i,e){const t=[...i.breadcrumbs||[],...e];i.breadcrumbs=t.length?t:void 0}function Ju(i,e){i.sdkProcessingMetadata={...i.sdkProcessingMetadata,...e}}function Bu(i,e){i.contexts={trace:su(e),...i.contexts},i.sdkProcessingMetadata={dynamicSamplingContext:Au(e),...i.sdkProcessingMetadata};const t=pn(e),s=Po(t).description;s&&!i.transaction&&i.type==="transaction"&&(i.transaction=s)}function Fu(i,e){i.fingerprint=i.fingerprint?Array.isArray(i.fingerprint)?i.fingerprint:[i.fingerprint]:[],e&&(i.fingerprint=i.fingerprint.concat(e)),i.fingerprint.length||delete i.fingerprint}function Gu(i,e,t,s,o,r){const{normalizeDepth:M=3,normalizeMaxBreadth:a=1e3}=i,u={...e,event_id:e.event_id||t.event_id||fe(),timestamp:e.timestamp||ps()},N=t.integrations||i.integrations.map(I=>I.name);Hu(u,i),Xu(u,N),o&&o.emit("applyFrameMetadata",e),e.type===void 0&&Vu(u,i.stackParser);const l=qu(s,t.captureContext);t.mechanism&&Zt(u,t.mechanism);const c=o?o.getEventProcessors():[],L=bc().getScopeData();if(r){const I=r.getScopeData();Qr(L,I)}if(l){const I=l.getScopeData();Qr(L,I)}const j=[...t.attachments||[],...L.attachments];j.length&&(t.attachments=j),Pu(u,L);const T=[...c,...L.eventProcessors];return eo(T,u,t).then(I=>(I&&Zu(I),typeof M=="number"&&M>0?Ku(I,M,a):I))}function Hu(i,e){const{environment:t,release:s,dist:o,maxValueLength:r=250}=e;i.environment=i.environment||t||Wo,!i.release&&s&&(i.release=s),!i.dist&&o&&(i.dist=o);const M=i.request;M!=null&&M.url&&(M.url=si(M.url,r))}function Vu(i,e){var s,o;const t=$u(e);(o=(s=i.exception)==null?void 0:s.values)==null||o.forEach(r=>{var M,a;(a=(M=r.stacktrace)==null?void 0:M.frames)==null||a.forEach(u=>{u.filename&&(u.debug_id=t[u.filename])})})}function Zu(i){var s,o;const e={};if((o=(s=i.exception)==null?void 0:s.values)==null||o.forEach(r=>{var M,a;(a=(M=r.stacktrace)==null?void 0:M.frames)==null||a.forEach(u=>{u.debug_id&&(u.abs_path?e[u.abs_path]=u.debug_id:u.filename&&(e[u.filename]=u.debug_id),delete u.debug_id)})}),Object.keys(e).length===0)return;i.debug_meta=i.debug_meta||{},i.debug_meta.images=i.debug_meta.images||[];const t=i.debug_meta.images;Object.entries(e).forEach(([r,M])=>{t.push({type:"sourcemap",code_file:r,debug_id:M})})}function Xu(i,e){e.length>0&&(i.sdk=i.sdk||{},i.sdk.integrations=[...i.sdk.integrations||[],...e])}function Ku(i,e,t){var o,r;if(!i)return null;const s={...i,...i.breadcrumbs&&{breadcrumbs:i.breadcrumbs.map(M=>({...M,...M.data&&{data:qe(M.data,e,t)}}))},...i.user&&{user:qe(i.user,e,t)},...i.contexts&&{contexts:qe(i.contexts,e,t)},...i.extra&&{extra:qe(i.extra,e,t)}};return(o=i.contexts)!=null&&o.trace&&s.contexts&&(s.contexts.trace=i.contexts.trace,i.contexts.trace.data&&(s.contexts.trace.data=qe(i.contexts.trace.data,e,t))),i.spans&&(s.spans=i.spans.map(M=>({...M,...M.data&&{data:qe(M.data,e,t)}}))),(r=i.contexts)!=null&&r.flags&&s.contexts&&(s.contexts.flags=qe(i.contexts.flags,3,t)),s}function qu(i,e){if(!e)return i;const t=i?i.clone():new it;return t.update(e),t}function eN(i,e){return ot().captureException(i,void 0)}function fn(i,e){return ot().captureEvent(i,e)}function Ur(i){const e=Os(),t=ot(),{userAgent:s}=te.navigator||{},o=Ec({user:t.getUser()||e.getUser(),...s&&{userAgent:s},...i}),r=e.getSession();return(r==null?void 0:r.status)==="ok"&&Xt(r,{status:"exited"}),kn(),e.setSession(o),o}function kn(){const i=Os(),t=ot().getSession()||i.getSession();t&&_c(t),Yn(),i.setSession()}function Yn(){const i=Os(),e=we(),t=i.getSession();t&&e&&e.captureSession(t)}function vr(i=!1){if(i){kn();return}Yn()}const tN="7";function sN(i){const e=i.protocol?`${i.protocol}:`:"",t=i.port?`:${i.port}`:"";return`${e}//${i.host}${t}${i.path?`/${i.path}`:""}/api/`}function iN(i){return`${sN(i)}${i.projectId}/envelope/`}function oN(i,e){const t={sentry_version:tN};return i.publicKey&&(t.sentry_key=i.publicKey),e&&(t.sentry_client=`${e.name}/${e.version}`),new URLSearchParams(t).toString()}function rN(i,e,t){return e||`${iN(i)}?${oN(i,t)}`}const br=[];function MN(i){const e={};return i.forEach(t=>{const{name:s}=t,o=e[s];o&&!o.isDefaultInstance&&t.isDefaultInstance||(e[s]=t)}),Object.values(e)}function nN(i){const e=i.defaultIntegrations||[],t=i.integrations;e.forEach(o=>{o.isDefaultInstance=!0});let s;if(Array.isArray(t))s=[...e,...t];else if(typeof t=="function"){const o=t(e);s=Array.isArray(o)?o:[o]}else s=e;return MN(s)}function aN(i,e){const t={};return e.forEach(s=>{s&&Qn(i,s,t)}),t}function $r(i,e){for(const t of e)t!=null&&t.afterAllSetup&&t.afterAllSetup(i)}function Qn(i,e,t){if(t[e.name]){Z&&B.log(`Integration skipped because it was already installed: ${e.name}`);return}if(t[e.name]=e,br.indexOf(e.name)===-1&&typeof e.setupOnce=="function"&&(e.setupOnce(),br.push(e.name)),e.setup&&typeof e.setup=="function"&&e.setup(i),typeof e.preprocessEvent=="function"){const s=e.preprocessEvent.bind(e);i.on("preprocessEvent",(o,r)=>s(o,r,i))}if(typeof e.processEvent=="function"){const s=e.processEvent.bind(e),o=Object.assign((r,M)=>s(r,M,i),{id:e.name});i.addEventProcessor(o)}Z&&B.log(`Integration installed: ${e.name}`)}function Un(i){const e=[];i.message&&e.push(i.message);try{const t=i.exception.values[i.exception.values.length-1];t!=null&&t.value&&(e.push(t.value),t.type&&e.push(`${t.type}: ${t.value}`))}catch{}return e}function cN(i){var u;const{trace_id:e,parent_span_id:t,span_id:s,status:o,origin:r,data:M,op:a}=((u=i.contexts)==null?void 0:u.trace)??{};return{data:M??{},description:i.transaction,op:a,parent_span_id:t,span_id:s??"",start_timestamp:i.start_timestamp??0,status:o,timestamp:i.timestamp,trace_id:e??"",origin:r,profile_id:M==null?void 0:M[wn],exclusive_time:M==null?void 0:M[Cn],measurements:i.measurements,is_segment:!0}}function uN(i){return{type:"transaction",timestamp:i.timestamp,start_timestamp:i.start_timestamp,transaction:i.description,contexts:{trace:{trace_id:i.trace_id,span_id:i.span_id,parent_span_id:i.parent_span_id,op:i.op,status:i.status,origin:i.origin,data:{...i.data,...i.profile_id&&{[wn]:i.profile_id},...i.exclusive_time&&{[Cn]:i.exclusive_time}}}},measurements:i.measurements}}function NN(i,e,t){const s=[{type:"client_report"},{timestamp:ps(),discarded_events:i}];return Es(e?{dsn:e}:{},[s])}const Pr="Not capturing exception because it's already been captured.",Wr="Discarded session because of missing or non-string release",vn=Symbol.for("SentryInternalError"),bn=Symbol.for("SentryDoNotSendEventError");function Zs(i){return{message:i,[vn]:!0}}function Ei(i){return{message:i,[bn]:!0}}function Rr(i){return!!i&&typeof i=="object"&&vn in i}function Jr(i){return!!i&&typeof i=="object"&&bn in i}class lN{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=wu(e.dsn):Z&&B.warn("No DSN provided, client will not send events."),this._dsn){const t=rN(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,s){const o=fe();if(dr(e))return Z&&B.log(Pr),o;const r={event_id:o,...t};return this._process(this.eventFromException(e,r).then(M=>this._captureEvent(M,r,s))),r.event_id}captureMessage(e,t,s,o){const r={event_id:fe(),...s},M=Yo(e)?e:String(e),a=Qo(e)?this.eventFromMessage(M,t,r):this.eventFromException(e,r);return this._process(a.then(u=>this._captureEvent(u,r,o))),r.event_id}captureEvent(e,t,s){const o=fe();if(t!=null&&t.originalException&&dr(t.originalException))return Z&&B.log(Pr),o;const r={event_id:o,...t},M=e.sdkProcessingMetadata||{},a=M.capturedSpanScope,u=M.capturedSpanIsolationScope;return this._process(this._captureEvent(e,r,a||s,u)),r.event_id}captureSession(e){this.sendSession(e),Xt(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit("flush"),this._isClientDoneProcessing(e).then(s=>t.flush(e).then(o=>s&&o))):St(!0)}close(e){return this.flush(e).then(t=>(this.getOptions().enabled=!1,this.emit("close"),t))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];Qn(this,e,this._integrations),t||$r(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let s=bu(e,this._dsn,this._options._metadata,this._options.tunnel);for(const r of t.attachments||[])s=Su(s,ku(r));const o=this.sendEnvelope(s);o&&o.then(r=>this.emit("afterSendEvent",e,r),null)}sendSession(e){const{release:t,environment:s=Wo}=this._options;if("aggregates"in e){const r=e.attrs||{};if(!r.release&&!t){Z&&B.warn(Wr);return}r.release=r.release||t,r.environment=r.environment||s,e.attrs=r}else{if(!e.release&&!t){Z&&B.warn(Wr);return}e.release=e.release||t,e.environment=e.environment||s}this.emit("beforeSendSession",e);const o=vu(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(o)}recordDroppedEvent(e,t,s=1){if(this._options.sendClientReports){const o=`${e}:${t}`;Z&&B.log(`Recording outcome: "${o}"${s>1?` (${s} times)`:""}`),this._outcomes[o]=(this._outcomes[o]||0)+s}}on(e,t){const s=this._hooks[e]=this._hooks[e]||[];return s.push(t),()=>{const o=s.indexOf(t);o>-1&&s.splice(o,1)}}emit(e,...t){const s=this._hooks[e];s&&s.forEach(o=>o(...t))}sendEnvelope(e){return this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,t=>(Z&&B.error("Error while sending envelope:",t),t)):(Z&&B.error("Transport disabled"),St({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=aN(this,e),$r(this,e)}_updateSessionFromEvent(e,t){var u;let s=t.level==="fatal",o=!1;const r=(u=t.exception)==null?void 0:u.values;if(r){o=!0;for(const N of r){const l=N.mechanism;if((l==null?void 0:l.handled)===!1){s=!0;break}}}const M=e.status==="ok";(M&&e.errors===0||M&&s)&&(Xt(e,{...s&&{status:"crashed"},errors:e.errors||Number(o||s)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Dt(t=>{let s=0;const o=1,r=setInterval(()=>{this._numProcessing==0?(clearInterval(r),t(!0)):(s+=o,e&&s>=e&&(clearInterval(r),t(!1)))},o)})}_isEnabled(){return this.getOptions().enabled!==!1&&this._transport!==void 0}_prepareEvent(e,t,s,o){const r=this.getOptions(),M=Object.keys(this._integrations);return!t.integrations&&(M!=null&&M.length)&&(t.integrations=M),this.emit("preprocessEvent",e,t),e.type||o.setLastEventId(e.event_id||t.event_id),Gu(r,e,t,s,this,o).then(a=>{if(a===null)return a;this.emit("postprocessEvent",a,t),a.contexts={trace:Pc(s),...a.contexts};const u=hu(this,s);return a.sdkProcessingMetadata={dynamicSamplingContext:u,...a.sdkProcessingMetadata},a})}_captureEvent(e,t={},s=ot(),o=Os()){return Z&&to(e)&&B.log(`Captured error event \`${Un(e)[0]||""}\``),this._processEvent(e,t,s,o).then(r=>r.event_id,r=>{Z&&(Jr(r)?B.log(r.message):Rr(r)?B.warn(r.message):B.warn(r))})}_processEvent(e,t,s,o){const r=this.getOptions(),{sampleRate:M}=r,a=$n(e),u=to(e),N=e.type||"error",l=`before send for type \`${N}\``,c=typeof M>"u"?void 0:Xc(M);if(u&&typeof c=="number"&&Math.random()>c)return this.recordDroppedEvent("sample_rate","error"),ii(Ei(`Discarding event because it's not included in the random sample (sampling rate = ${M})`));const L=N==="replay_event"?"replay":N;return this._prepareEvent(e,t,s,o).then(j=>{if(j===null)throw this.recordDroppedEvent("event_processor",L),Ei("An event processor returned `null`, will not send event.");if(t.data&&t.data.__sentry__===!0)return j;const D=jN(this,r,j,t);return LN(D,l)}).then(j=>{var I;if(j===null){if(this.recordDroppedEvent("before_send",L),a){const E=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",E)}throw Ei(`${l} returned \`null\`, will not send event.`)}const T=s.getSession()||o.getSession();if(u&&T&&this._updateSessionFromEvent(T,j),a){const C=((I=j.sdkProcessingMetadata)==null?void 0:I.spanCountBeforeProcessing)||0,E=j.spans?j.spans.length:0,A=C-E;A>0&&this.recordDroppedEvent("before_send","span",A)}const D=j.transaction_info;if(a&&D&&j.transaction!==e.transaction){const C="custom";j.transaction_info={...D,source:C}}return this.sendEvent(j,t),j}).then(null,j=>{throw Jr(j)||Rr(j)?j:(this.captureException(j,{data:{__sentry__:!0},originalException:j}),Zs(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event. +Reason: ${j}`))})}_process(e){this._numProcessing++,e.then(t=>(this._numProcessing--,t),t=>(this._numProcessing--,t))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([t,s])=>{const[o,r]=t.split(":");return{reason:o,category:r,quantity:s}})}_flushOutcomes(){Z&&B.log("Flushing outcomes...");const e=this._clearOutcomes();if(e.length===0){Z&&B.log("No outcomes to send");return}if(!this._dsn){Z&&B.log("No dsn provided, will not send outcomes");return}Z&&B.log("Sending outcomes:",e);const t=NN(e,this._options.tunnel&&yi(this._dsn));this.sendEnvelope(t)}}function LN(i,e){const t=`${e} must return \`null\` or a valid event.`;if(gi(i))return i.then(s=>{if(!ds(s)&&s!==null)throw Zs(t);return s},s=>{throw Zs(`${e} rejected with ${s}`)});if(!ds(i)&&i!==null)throw Zs(t);return i}function jN(i,e,t,s){const{beforeSend:o,beforeSendTransaction:r,beforeSendSpan:M}=e;let a=t;if(to(a)&&o)return o(a,s);if($n(a)){if(M){const u=M(cN(a));if(u?a=ms(t,uN(u)):Or(),a.spans){const N=[];for(const l of a.spans){const c=M(l);c?N.push(c):(Or(),N.push(l))}a.spans=N}}if(r){if(a.spans){const u=a.spans.length;a.sdkProcessingMetadata={...t.sdkProcessingMetadata,spanCountBeforeProcessing:u}}return r(a,s)}}return a}function to(i){return i.type===void 0}function $n(i){return i.type==="transaction"}function gN(i){return[{type:"log",item_count:i.length,content_type:"application/vnd.sentry.items.log+json"},{items:i}]}function TN(i,e,t,s){const o={};return e!=null&&e.sdk&&(o.sdk={name:e.sdk.name,version:e.sdk.version}),t&&s&&(o.dsn=yi(s)),Es(o,[gN(i)])}te._sentryClientToLogBufferMap=new WeakMap;function _i(i,e){var r;const t=yN(i)??[];if(t.length===0)return;const s=i.getOptions(),o=TN(t,s._metadata,s.tunnel,i.getDsn());(r=te._sentryClientToLogBufferMap)==null||r.set(i,[]),i.emit("flushLogs"),i.sendEnvelope(o)}function yN(i){var e;return(e=te._sentryClientToLogBufferMap)==null?void 0:e.get(i)}function DN(i,e){e.debug===!0&&(Z?B.enable():ts(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),ot().update(e.initialScope);const s=new i(e);return dN(s),s.init(),s}function dN(i){ot().setClient(i)}const Pn=Symbol.for("SentryBufferFullError");function zN(i){const e=[];function t(){return i===void 0||e.lengths(a)).then(null,()=>s(a).then(null,()=>{})),a}function r(M){return new Dt((a,u)=>{let N=e.length;if(!N)return a(!0);const l=setTimeout(()=>{M&&M>0&&a(!1)},M);e.forEach(c=>{St(c).then(()=>{--N||(clearTimeout(l),a(!0))},u)})})}return{$:e,add:o,drain:r}}const IN=60*1e3;function wN(i,e=Date.now()){const t=parseInt(`${i}`,10);if(!isNaN(t))return t*1e3;const s=Date.parse(`${i}`);return isNaN(s)?IN:s-e}function CN(i,e){return i[e]||i.all||0}function hN(i,e,t=Date.now()){return CN(i,e)>t}function AN(i,{statusCode:e,headers:t},s=Date.now()){const o={...i},r=t==null?void 0:t["x-sentry-rate-limits"],M=t==null?void 0:t["retry-after"];if(r)for(const a of r.trim().split(",")){const[u,N,,,l]=a.split(":",5),c=parseInt(u,10),L=(isNaN(c)?60:c)*1e3;if(!N)o.all=s+L;else for(const j of N.split(";"))j==="metric_bucket"?(!l||l.split(";").includes("custom"))&&(o[j]=s+L):o[j]=s+L}else M?o.all=s+wN(M,s):e===429&&(o.all=s+60*1e3);return o}const pN=64;function mN(i,e,t=zN(i.bufferSize||pN)){let s={};const o=M=>t.drain(M);function r(M){const a=[];if(fr(M,(c,L)=>{const j=kr(L);hN(s,j)?i.recordDroppedEvent("ratelimit_backoff",j):a.push(c)}),a.length===0)return St({});const u=Es(M[0],a),N=c=>{fr(u,(L,j)=>{i.recordDroppedEvent(c,kr(j))})},l=()=>e({body:xu(u)}).then(c=>(c.statusCode!==void 0&&(c.statusCode<200||c.statusCode>=300)&&Z&&B.warn(`Sentry responded with status code ${c.statusCode} to sent event.`),s=AN(s,c),c),c=>{throw N("network_error"),Z&&B.error("Encountered error running transport request:",c),c});return t.add(l).then(c=>c,c=>{if(c===Pn)return Z&&B.error("Skipped sending event because buffer is full."),N("queue_overflow"),St({});throw c})}return{send:r,flush:o}}function ON(i){var e;((e=i.user)==null?void 0:e.ip_address)===void 0&&(i.user={...i.user,ip_address:"{{auto}}"})}function EN(i){var e;"aggregates"in i?((e=i.attrs)==null?void 0:e.ip_address)===void 0&&(i.attrs={...i.attrs,ip_address:"{{auto}}"}):i.ipAddress===void 0&&(i.ipAddress="{{auto}}")}function _N(i,e,t=[e],s="npm"){const o=i._metadata||{};o.sdk||(o.sdk={name:`sentry.javascript.${e}`,packages:t.map(r=>({name:`${s}:@sentry/${r}`,version:Ot})),version:Ot}),i._metadata=o}const SN=100;function xt(i,e){const t=we(),s=Os();if(!t)return;const{beforeBreadcrumb:o=null,maxBreadcrumbs:r=SN}=t.getOptions();if(r<=0)return;const a={timestamp:ps(),...i},u=o?ts(()=>o(a,e)):a;u!==null&&(t.emit&&t.emit("beforeAddBreadcrumb",u,e),s.addBreadcrumb(u,r))}let Br;const xN="FunctionToString",Fr=new WeakMap,fN=()=>({name:xN,setupOnce(){Br=Function.prototype.toString;try{Function.prototype.toString=function(...i){const e=bo(this),t=Fr.has(we())&&e!==void 0?e:this;return Br.apply(t,i)}}catch{}},setup(i){Fr.set(i,!0)}}),kN=fN,YN=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,`can't redefine non-configurable property "solana"`,"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],QN="EventFilters",UN=(i={})=>{let e;return{name:QN,setup(t){const s=t.getOptions();e=Gr(i,s)},processEvent(t,s,o){if(!e){const r=o.getOptions();e=Gr(i,r)}return bN(t,e)?null:t}}},vN=(i={})=>({...UN(i),name:"InboundFilters"});function Gr(i={},e={}){return{allowUrls:[...i.allowUrls||[],...e.allowUrls||[]],denyUrls:[...i.denyUrls||[],...e.denyUrls||[]],ignoreErrors:[...i.ignoreErrors||[],...e.ignoreErrors||[],...i.disableErrorDefaults?[]:YN],ignoreTransactions:[...i.ignoreTransactions||[],...e.ignoreTransactions||[]]}}function bN(i,e){if(i.type){if(i.type==="transaction"&&PN(i,e.ignoreTransactions))return Z&&B.warn(`Event dropped due to being matched by \`ignoreTransactions\` option. +Event: ${pt(i)}`),!0}else{if($N(i,e.ignoreErrors))return Z&&B.warn(`Event dropped due to being matched by \`ignoreErrors\` option. +Event: ${pt(i)}`),!0;if(BN(i))return Z&&B.warn(`Event dropped due to not having an error message, error type or stacktrace. +Event: ${pt(i)}`),!0;if(WN(i,e.denyUrls))return Z&&B.warn(`Event dropped due to being matched by \`denyUrls\` option. Event: ${pt(i)}. -Url: ${oi(i)}`),!0;if(!PN(i,e.allowUrls))return Z&&B.warn(`Event dropped due to not being matched by \`allowUrls\` option. +Url: ${oi(i)}`),!0;if(!RN(i,e.allowUrls))return Z&&B.warn(`Event dropped due to not being matched by \`allowUrls\` option. Event: ${pt(i)}. -Url: ${oi(i)}`),!0}return!1}function vN(i,e){return e!=null&&e.length?Yn(i).some(t=>Ti(t,e)):!1}function bN(i,e){if(!(e!=null&&e.length))return!1;const t=i.transaction;return t?Ti(t,e):!1}function $N(i,e){if(!(e!=null&&e.length))return!1;const t=oi(i);return t?Ti(t,e):!1}function PN(i,e){if(!(e!=null&&e.length))return!0;const t=oi(i);return t?Ti(t,e):!0}function WN(i=[]){for(let e=i.length-1;e>=0;e--){const t=i[e];if(t&&t.filename!==""&&t.filename!=="[native code]")return t.filename||null}return null}function oi(i){var e,t;try{const s=[...((e=i.exception)==null?void 0:e.values)??[]].reverse().find(r=>{var M,n,u;return((M=r.mechanism)==null?void 0:M.parent_id)===void 0&&((u=(n=r.stacktrace)==null?void 0:n.frames)==null?void 0:u.length)}),o=(t=s==null?void 0:s.stacktrace)==null?void 0:t.frames;return o?WN(o):null}catch{return Z&&B.error(`Cannot extract url for event ${pt(i)}`),null}}function RN(i){var e,t;return(t=(e=i.exception)==null?void 0:e.values)!=null&&t.length?!i.message&&!i.exception.values.some(s=>s.stacktrace||s.type&&s.type!=="Error"||s.value):!1}function JN(i,e,t,s,o,r){var n;if(!((n=o.exception)!=null&&n.values)||!r||!Tt(r.originalException,Error))return;const M=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;M&&(o.exception.values=so(i,e,s,r.originalException,t,o.exception.values,M,0))}function so(i,e,t,s,o,r,M,n){if(r.length>=t+1)return r;let u=[...r];if(Tt(s[o],Error)){Hr(M,n);const N=i(e,s[o]),l=u.length;Vr(N,o,l,n),u=so(i,e,t,s[o],o,[N,...u],N,l)}return Array.isArray(s.errors)&&s.errors.forEach((N,l)=>{if(Tt(N,Error)){Hr(M,n);const c=i(e,N),L=u.length;Vr(c,`errors[${l}]`,L,n),u=so(i,e,t,N,o,[c,...u],c,L)}}),u}function Hr(i,e){i.mechanism=i.mechanism||{type:"generic",handled:!0},i.mechanism={...i.mechanism,...i.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function Vr(i,e,t,s){i.mechanism=i.mechanism||{type:"generic",handled:!0},i.mechanism={...i.mechanism,type:"chained",source:e,exception_id:t,parent_id:s}}function BN(i){const e="console";kt(e,i),Yt(e,FN)}function FN(){"console"in te&&Vi.forEach(function(i){i in te.console&&Ee(te.console,i,function(e){return ti[i]=e,function(...t){ve("console",{args:t,level:i});const o=ti[i];o==null||o.apply(te.console,t)}})})}function GN(i){return i==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(i)?i:"log"}const HN="Dedupe",VN=()=>{let i;return{name:HN,processEvent(e){if(e.type)return e;try{if(ZN(e,i))return Z&&B.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return i=e}}},$n=VN;function ZN(i,e){return e?!!(XN(i,e)||KN(i,e)):!1}function XN(i,e){const t=i.message,s=e.message;return!(!t&&!s||t&&!s||!t&&s||t!==s||!Wn(i,e)||!Pn(i,e))}function KN(i,e){const t=Zr(e),s=Zr(i);return!(!t||!s||t.type!==s.type||t.value!==s.value||!Wn(i,e)||!Pn(i,e))}function Pn(i,e){let t=Sr(i),s=Sr(e);if(!t&&!s)return!0;if(t&&!s||!t&&s||(t=t,s=s,s.length!==t.length))return!1;for(let o=0;o=400&&i<500?"warning":i>=500?"error":void 0}const zs=te;function qN(){return"history"in zs&&!!zs.history}function el(){if(!("fetch"in zs))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function io(i){return i&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(i.toString())}function tl(){var t;if(typeof EdgeRuntime=="string")return!0;if(!el())return!1;if(io(zs.fetch))return!0;let i=!1;const e=zs.document;if(e&&typeof e.createElement=="function")try{const s=e.createElement("iframe");s.hidden=!0,e.head.appendChild(s),(t=s.contentWindow)!=null&&t.fetch&&(i=io(s.contentWindow.fetch)),e.head.removeChild(s)}catch(s){Z&&B.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",s)}return i}function sl(i,e){const t="fetch";kt(t,i),Yt(t,()=>il(void 0,e))}function il(i,e=!1){e&&!tl()||Ee(te,"fetch",function(t){return function(...s){const o=new Error,{method:r,url:M}=ol(s),n={args:s,fetchData:{method:r,url:M},startTimestamp:st()*1e3,virtualError:o,headers:rl(s)};return ve("fetch",{...n}),t.apply(te,s).then(async u=>(ve("fetch",{...n,endTimestamp:st()*1e3,response:u}),u),u=>{if(ve("fetch",{...n,endTimestamp:st()*1e3,error:u}),ko(u)&&u.stack===void 0&&(u.stack=o.stack,Et(u,"framesToPop",1)),u instanceof TypeError&&(u.message==="Failed to fetch"||u.message==="Load failed"||u.message==="NetworkError when attempting to fetch resource."))try{const N=new URL(n.fetchData.url);u.message=`${u.message} (${N.host})`}catch{}throw u})}})}function oo(i,e){return!!i&&typeof i=="object"&&!!i[e]}function Xr(i){return typeof i=="string"?i:i?oo(i,"url")?i.url:i.toString?i.toString():"":""}function ol(i){if(i.length===0)return{method:"GET",url:""};if(i.length===2){const[t,s]=i;return{url:Xr(t),method:oo(s,"method")?String(s.method).toUpperCase():"GET"}}const e=i[0];return{url:Xr(e),method:oo(e,"method")?String(e.method).toUpperCase():"GET"}}function rl(i){const[e,t]=i;try{if(typeof t=="object"&&t!==null&&"headers"in t&&t.headers)return new Headers(t.headers);if(Tc(e))return new Headers(e.headers)}catch{}}function Ml(){return"npm"}const Me=te;let ro=0;function Jn(){return ro>0}function nl(){ro++,setTimeout(()=>{ro--})}function qt(i,e={}){function t(o){return typeof o=="function"}if(!t(i))return i;try{const o=i.__sentry_wrapped__;if(o)return typeof o=="function"?o:i;if(bo(i))return i}catch{return i}const s=function(...o){try{const r=o.map(M=>qt(M,e));return i.apply(this,r)}catch(r){throw nl(),vc(M=>{M.addEventProcessor(n=>(e.mechanism&&(Zi(n,void 0),Zt(n,e.mechanism)),n.extra={...n.extra,arguments:o},n)),Ku(r)}),r}};try{for(const o in i)Object.prototype.hasOwnProperty.call(i,o)&&(s[o]=i[o])}catch{}gn(s,i),Et(i,"__sentry_wrapped__",s);try{Object.getOwnPropertyDescriptor(s,"name").configurable&&Object.defineProperty(s,"name",{get(){return i.name}})}catch{}return s}function al(){const i=vo(),{referrer:e}=Me.document||{},{userAgent:t}=Me.navigator||{},s={...e&&{Referer:e},...t&&{"User-Agent":t}};return{url:i,headers:s}}function Ro(i,e){const t=Jo(i,e),s={type:Ll(e),value:jl(e)};return t.length&&(s.stacktrace={frames:t}),s.type===void 0&&s.value===""&&(s.value="Unrecoverable error caught"),s}function cl(i,e,t,s){const o=we(),r=o==null?void 0:o.getOptions().normalizeDepth,M=dl(e),n={__serialized__:En(e,r)};if(M)return{exception:{values:[Ro(i,M)]},extra:n};const u={exception:{values:[{type:ji(e)?e.constructor.name:s?"UnhandledRejection":"Error",value:yl(e,{isUnhandledRejection:s})}]},extra:n};if(t){const N=Jo(i,t);N.length&&(u.exception.values[0].stacktrace={frames:N})}return u}function xi(i,e){return{exception:{values:[Ro(i,e)]}}}function Jo(i,e){const t=e.stacktrace||e.stack||"",s=Nl(e),o=ll(e);try{return i(t,s,o)}catch{}return[]}const ul=/Minified React error #\d+;/i;function Nl(i){return i&&ul.test(i.message)?1:0}function ll(i){return typeof i.framesToPop=="number"?i.framesToPop:0}function Bn(i){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?i instanceof WebAssembly.Exception:!1}function Ll(i){const e=i==null?void 0:i.name;return!e&&Bn(i)?i.message&&Array.isArray(i.message)&&i.message.length==2?i.message[0]:"WebAssembly.Exception":e}function jl(i){const e=i==null?void 0:i.message;return Bn(i)?Array.isArray(i.message)&&i.message.length==2?i.message[1]:"wasm exception":e?e.error&&typeof e.error.message=="string"?e.error.message:e:"No error message"}function gl(i,e,t,s){const o=(t==null?void 0:t.syntheticException)||void 0,r=Bo(i,e,o,s);return Zt(r),r.level="error",t!=null&&t.event_id&&(r.event_id=t.event_id),St(r)}function Tl(i,e,t="info",s,o){const r=(s==null?void 0:s.syntheticException)||void 0,M=Mo(i,e,r,o);return M.level=t,s!=null&&s.event_id&&(M.event_id=s.event_id),St(M)}function Bo(i,e,t,s,o){let r;if(ln(e)&&e.error)return xi(i,e.error);if(gr(e)||lc(e)){const M=e;if("stack"in e)r=xi(i,e);else{const n=M.name||(gr(M)?"DOMError":"DOMException"),u=M.message?`${n}: ${M.message}`:n;r=Mo(i,u,t,s),Zi(r,u)}return"code"in M&&(r.tags={...r.tags,"DOMException.code":`${M.code}`}),r}return ko(e)?xi(i,e):ds(e)||ji(e)?(r=cl(i,e,t,o),Zt(r,{synthetic:!0}),r):(r=Mo(i,e,t,s),Zi(r,`${e}`),Zt(r,{synthetic:!0}),r)}function Mo(i,e,t,s){const o={};if(s&&t){const r=Jo(i,t);r.length&&(o.exception={values:[{value:e,stacktrace:{frames:r}}]}),Zt(o,{synthetic:!0})}if(Yo(e)){const{__sentry_template_string__:r,__sentry_template_values__:M}=e;return o.logentry={message:r,params:M},o}return o.message=e,o}function yl(i,{isUnhandledRejection:e}){const t=Cc(i),s=e?"promise rejection":"exception";return ln(i)?`Event \`ErrorEvent\` captured as ${s} with message \`${i.message}\``:ji(i)?`Event \`${Dl(i)}\` (type=${i.type}) captured as ${s}`:`Object captured as ${s} with keys: ${t}`}function Dl(i){try{const e=Object.getPrototypeOf(i);return e?e.constructor.name:void 0}catch{}}function dl(i){for(const e in i)if(Object.prototype.hasOwnProperty.call(i,e)){const t=i[e];if(t instanceof Error)return t}}const zl=5e3;class Il extends uN{constructor(e){const t=wl(e),s=Me.SENTRY_SDK_SOURCE||Ml();ON(t,"browser",["browser"],s),super(t);const{sendDefaultPii:o,sendClientReports:r,_experiments:M}=this._options,n=M==null?void 0:M.enableLogs;Me.document&&(r||n)&&Me.document.addEventListener("visibilitychange",()=>{Me.document.visibilityState==="hidden"&&(r&&this._flushOutcomes(),n&&_i(this))}),n&&(this.on("flush",()=>{_i(this)}),this.on("afterCaptureLog",()=>{this._logFlushIdleTimeout&&clearTimeout(this._logFlushIdleTimeout),this._logFlushIdleTimeout=setTimeout(()=>{_i(this)},zl)})),o&&(this.on("postprocessEvent",pN),this.on("beforeSendSession",mN))}eventFromException(e,t){return gl(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",s){return Tl(this._options.stackParser,e,t,s,this._options.attachStacktrace)}_prepareEvent(e,t,s,o){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,s,o)}}function wl(i){var e;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(e=Me.SENTRY_RELEASE)==null?void 0:e.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...i}}const Cl=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,ze=te,hl=1e3;let Kr,no,ao;function Al(i){const e="dom";kt(e,i),Yt(e,pl)}function pl(){if(!ze.document)return;const i=ve.bind(null,"dom"),e=qr(i,!0);ze.document.addEventListener("click",e,!1),ze.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach(t=>{var r,M;const o=(r=ze[t])==null?void 0:r.prototype;(M=o==null?void 0:o.hasOwnProperty)!=null&&M.call(o,"addEventListener")&&(Ee(o,"addEventListener",function(n){return function(u,N,l){if(u==="click"||u=="keypress")try{const c=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},L=c[u]=c[u]||{refCount:0};if(!L.handler){const j=qr(i);L.handler=j,n.call(this,u,j,l)}L.refCount++}catch{}return n.call(this,u,N,l)}}),Ee(o,"removeEventListener",function(n){return function(u,N,l){if(u==="click"||u=="keypress")try{const c=this.__sentry_instrumentation_handlers__||{},L=c[u];L&&(L.refCount--,L.refCount<=0&&(n.call(this,u,L.handler,l),L.handler=void 0,delete c[u]),Object.keys(c).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return n.call(this,u,N,l)}}))})}function ml(i){if(i.type!==no)return!1;try{if(!i.target||i.target._sentryId!==ao)return!1}catch{}return!0}function Ol(i,e){return i!=="keypress"?!1:e!=null&&e.tagName?!(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable):!0}function qr(i,e=!1){return t=>{if(!t||t._sentryCaptured)return;const s=El(t);if(Ol(t.type,s))return;Et(t,"_sentryCaptured",!0),s&&!s._sentryId&&Et(s,"_sentryId",fe());const o=t.type==="keypress"?"input":t.type;ml(t)||(i({event:t,name:o,global:e}),no=t.type,ao=s?s._sentryId:void 0),clearTimeout(Kr),Kr=ze.setTimeout(()=>{ao=void 0,no=void 0},hl)}}function El(i){try{return i.target}catch{return null}}let Us;function Fn(i){const e="history";kt(e,i),Yt(e,_l)}function _l(){if(ze.addEventListener("popstate",()=>{const e=ze.location.href,t=Us;if(Us=e,t===e)return;ve("history",{from:t,to:e})}),!qN())return;function i(e){return function(...t){const s=t.length>2?t[2]:void 0;if(s){const o=Us,r=Sl(String(s));if(Us=r,o===r)return e.apply(this,t);ve("history",{from:o,to:r})}return e.apply(this,t)}}Ee(ze.history,"pushState",i),Ee(ze.history,"replaceState",i)}function Sl(i){try{return new URL(i,ze.location.origin).toString()}catch{return i}}const Xs={};function xl(i){const e=Xs[i];if(e)return e;let t=ze[i];if(io(t))return Xs[i]=t.bind(ze);const s=ze.document;if(s&&typeof s.createElement=="function")try{const o=s.createElement("iframe");o.hidden=!0,s.head.appendChild(o);const r=o.contentWindow;r!=null&&r[i]&&(t=r[i]),s.head.removeChild(o)}catch(o){Cl&&B.warn(`Could not create sandbox iframe for ${i} check, bailing to window.${i}: `,o)}return t&&(Xs[i]=t.bind(ze))}function eM(i){Xs[i]=void 0}const ls="__sentry_xhr_v3__";function fl(i){const e="xhr";kt(e,i),Yt(e,kl)}function kl(){if(!ze.XMLHttpRequest)return;const i=XMLHttpRequest.prototype;i.open=new Proxy(i.open,{apply(e,t,s){const o=new Error,r=st()*1e3,M=tt(s[0])?s[0].toUpperCase():void 0,n=Yl(s[1]);if(!M||!n)return e.apply(t,s);t[ls]={method:M,url:n,request_headers:{}},M==="POST"&&n.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const u=()=>{const N=t[ls];if(N&&t.readyState===4){try{N.status_code=t.status}catch{}const l={endTimestamp:st()*1e3,startTimestamp:r,xhr:t,virtualError:o};ve("xhr",l)}};return"onreadystatechange"in t&&typeof t.onreadystatechange=="function"?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply(N,l,c){return u(),N.apply(l,c)}}):t.addEventListener("readystatechange",u),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(N,l,c){const[L,j]=c,T=l[ls];return T&&tt(L)&&tt(j)&&(T.request_headers[L.toLowerCase()]=j),N.apply(l,c)}}),e.apply(t,s)}}),i.send=new Proxy(i.send,{apply(e,t,s){const o=t[ls];if(!o)return e.apply(t,s);s[0]!==void 0&&(o.body=s[0]);const r={startTimestamp:st()*1e3,xhr:t};return ve("xhr",r),e.apply(t,s)}})}function Yl(i){if(tt(i))return i;try{return i.toString()}catch{}}function Ql(i,e=xl("fetch")){let t=0,s=0;function o(r){const M=r.body.length;t+=M,s++;const n={body:r.body,method:"POST",referrerPolicy:"strict-origin",headers:i.headers,keepalive:t<=6e4&&s<15,...i.fetchOptions};if(!e)return eM("fetch"),ii("No fetch implementation available");try{return e(i.url,n).then(u=>(t-=M,s--,{statusCode:u.status,headers:{"x-sentry-rate-limits":u.headers.get("X-Sentry-Rate-Limits"),"retry-after":u.headers.get("Retry-After")}}))}catch(u){return eM("fetch"),t-=M,s--,ii(u)}}return AN(i,o)}const Ul=30,vl=50;function co(i,e,t,s){const o={filename:i,function:e===""?_t:e,in_app:!0};return t!==void 0&&(o.lineno=t),s!==void 0&&(o.colno=s),o}const bl=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,$l=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Pl=/\((\S*)(?::(\d+))(?::(\d+))\)/,Wl=i=>{const e=bl.exec(i);if(e){const[,s,o,r]=e;return co(s,_t,+o,+r)}const t=$l.exec(i);if(t){if(t[2]&&t[2].indexOf("eval")===0){const M=Pl.exec(t[2]);M&&(t[2]=M[1],t[3]=M[2],t[4]=M[3])}const[o,r]=Gn(t[1]||_t,t[2]);return co(r,o,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}},Rl=[Ul,Wl],Jl=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Bl=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Fl=i=>{const e=Jl.exec(i);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const r=Bl.exec(e[3]);r&&(e[1]=e[1]||"eval",e[3]=r[1],e[4]=r[2],e[5]="")}let s=e[3],o=e[1]||_t;return[o,s]=Gn(o,s),co(s,o,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}},Gl=[vl,Fl],Hl=[Rl,Gl],Vl=pn(...Hl),Gn=(i,e)=>{const t=i.indexOf("safari-extension")!==-1,s=i.indexOf("safari-web-extension")!==-1;return t||s?[i.indexOf("@")!==-1?i.split("@")[0]:_t,t?`safari-extension:${e}`:`safari-web-extension:${e}`]:[i,e]},Di=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,vs=1024,Zl="Breadcrumbs",Xl=(i={})=>{const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...i};return{name:Zl,setup(t){e.console&&BN(t4(t)),e.dom&&Al(e4(t,e.dom)),e.xhr&&fl(s4(t)),e.fetch&&sl(i4(t)),e.history&&Fn(o4(t)),e.sentry&&t.on("beforeSendEvent",ql(t))}}},Kl=Xl;function ql(i){return function(t){we()===i&&xt({category:`sentry.${t.type==="transaction"?"transaction":"event"}`,event_id:t.event_id,level:t.level,message:pt(t)},{event:t})}}function e4(i,e){return function(s){if(we()!==i)return;let o,r,M=typeof e=="object"?e.serializeAttribute:void 0,n=typeof e=="object"&&typeof e.maxStringLength=="number"?e.maxStringLength:void 0;n&&n>vs&&(Di&&B.warn(`\`dom.maxStringLength\` cannot exceed ${vs}, but a value of ${n} was configured. Sentry will use ${vs} instead.`),n=vs),typeof M=="string"&&(M=[M]);try{const N=s.event,l=r4(N)?N.target:N;o=jn(l,{keyAttrs:M,maxStringLength:n}),r=dc(l)}catch{o=""}if(o.length===0)return;const u={category:`ui.${s.name}`,message:o};r&&(u.data={"ui.component_name":r}),xt(u,{event:s.event,name:s.name,global:s.global})}}function t4(i){return function(t){if(we()!==i)return;const s={category:"console",data:{arguments:t.args,logger:"console"},level:GN(t.level),message:Tr(t.args," ")};if(t.level==="assert")if(t.args[0]===!1)s.message=`Assertion failed: ${Tr(t.args.slice(1)," ")||"console.assert"}`,s.data.arguments=t.args.slice(1);else return;xt(s,{input:t.args,level:t.level})}}function s4(i){return function(t){if(we()!==i)return;const{startTimestamp:s,endTimestamp:o}=t,r=t.xhr[ls];if(!s||!o||!r)return;const{method:M,url:n,status_code:u,body:N}=r,l={method:M,url:n,status_code:u},c={xhr:t.xhr,input:N,startTimestamp:s,endTimestamp:o},L={category:"xhr",data:l,type:"http",level:Rn(u)};i.emit("beforeOutgoingRequestBreadcrumb",L,c),xt(L,c)}}function i4(i){return function(t){if(we()!==i)return;const{startTimestamp:s,endTimestamp:o}=t;if(o&&!(t.fetchData.url.match(/sentry_key/)&&t.fetchData.method==="POST"))if(t.fetchData.method,t.fetchData.url,t.error){const r=t.fetchData,M={data:t.error,input:t.args,startTimestamp:s,endTimestamp:o},n={category:"fetch",data:r,level:"error",type:"http"};i.emit("beforeOutgoingRequestBreadcrumb",n,M),xt(n,M)}else{const r=t.response,M={...t.fetchData,status_code:r==null?void 0:r.status};t.fetchData.request_body_size,t.fetchData.response_body_size,r==null||r.status;const n={input:t.args,response:r,startTimestamp:s,endTimestamp:o},u={category:"fetch",data:M,type:"http",level:Rn(M.status_code)};i.emit("beforeOutgoingRequestBreadcrumb",u,n),xt(u,n)}}}function o4(i){return function(t){if(we()!==i)return;let s=t.from,o=t.to;const r=Si(Me.location.href);let M=s?Si(s):void 0;const n=Si(o);M!=null&&M.path||(M=r),r.protocol===n.protocol&&r.host===n.host&&(o=n.relative),r.protocol===M.protocol&&r.host===M.host&&(s=M.relative),xt({category:"navigation",data:{from:s,to:o}})}}function r4(i){return!!i&&!!i.target}const M4=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],n4="BrowserApiErrors",a4=(i={})=>{const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...i};return{name:n4,setupOnce(){e.setTimeout&&Ee(Me,"setTimeout",tM),e.setInterval&&Ee(Me,"setInterval",tM),e.requestAnimationFrame&&Ee(Me,"requestAnimationFrame",u4),e.XMLHttpRequest&&"XMLHttpRequest"in Me&&Ee(XMLHttpRequest.prototype,"send",N4);const t=e.eventTarget;t&&(Array.isArray(t)?t:M4).forEach(o=>l4(o,e))}}},c4=a4;function tM(i){return function(...e){const t=e[0];return e[0]=qt(t,{mechanism:{data:{function:yt(i)},handled:!1,type:"instrument"}}),i.apply(this,e)}}function u4(i){return function(e){return i.apply(this,[qt(e,{mechanism:{data:{function:"requestAnimationFrame",handler:yt(i)},handled:!1,type:"instrument"}})])}}function N4(i){return function(...e){const t=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(o=>{o in t&&typeof t[o]=="function"&&Ee(t,o,function(r){const M={mechanism:{data:{function:o,handler:yt(r)},handled:!1,type:"instrument"}},n=bo(r);return n&&(M.mechanism.data.handler=yt(n)),qt(r,M)})}),i.apply(this,e)}}function l4(i,e){var o,r;const s=(o=Me[i])==null?void 0:o.prototype;(r=s==null?void 0:s.hasOwnProperty)!=null&&r.call(s,"addEventListener")&&(Ee(s,"addEventListener",function(M){return function(n,u,N){try{L4(u)&&(u.handleEvent=qt(u.handleEvent,{mechanism:{data:{function:"handleEvent",handler:yt(u),target:i},handled:!1,type:"instrument"}}))}catch{}return e.unregisterOriginalCallbacks&&j4(this,n,u),M.apply(this,[n,qt(u,{mechanism:{data:{function:"addEventListener",handler:yt(u),target:i},handled:!1,type:"instrument"}}),N])}}),Ee(s,"removeEventListener",function(M){return function(n,u,N){try{const l=u.__sentry_wrapped__;l&&M.call(this,n,l,N)}catch{}return M.call(this,n,u,N)}}))}function L4(i){return typeof i.handleEvent=="function"}function j4(i,e,t){i&&typeof i=="object"&&"removeEventListener"in i&&typeof i.removeEventListener=="function"&&i.removeEventListener(e,t)}const g4=()=>({name:"BrowserSession",setupOnce(){if(typeof Me.document>"u"){Di&&B.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}Ur({ignoreDuration:!0}),vr(),Fn(({from:i,to:e})=>{i!==void 0&&i!==e&&(Ur({ignoreDuration:!0}),vr())})}}),T4="GlobalHandlers",y4=(i={})=>{const e={onerror:!0,onunhandledrejection:!0,...i};return{name:T4,setupOnce(){Error.stackTraceLimit=50},setup(t){e.onerror&&(d4(t),sM("onerror")),e.onunhandledrejection&&(z4(t),sM("onunhandledrejection"))}}},D4=y4;function d4(i){cu(e=>{const{stackParser:t,attachStacktrace:s}=Hn();if(we()!==i||Jn())return;const{msg:o,url:r,line:M,column:n,error:u}=e,N=C4(Bo(t,u||o,void 0,s,!1),r,M,n);N.level="error",Sn(N,{originalException:u,mechanism:{handled:!1,type:"onerror"}})})}function z4(i){Nu(e=>{const{stackParser:t,attachStacktrace:s}=Hn();if(we()!==i||Jn())return;const o=I4(e),r=Qo(o)?w4(o):Bo(t,o,void 0,s,!0);r.level="error",Sn(r,{originalException:o,mechanism:{handled:!1,type:"onunhandledrejection"}})})}function I4(i){if(Qo(i))return i;try{if("reason"in i)return i.reason;if("detail"in i&&"reason"in i.detail)return i.detail.reason}catch{}return i}function w4(i){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}}function C4(i,e,t,s){const o=i.exception=i.exception||{},r=o.values=o.values||[],M=r[0]=r[0]||{},n=M.stacktrace=M.stacktrace||{},u=n.frames=n.frames||[],N=s,l=t,c=tt(e)&&e.length>0?e:vo();return u.length===0&&u.push({colno:N,filename:c,function:_t,in_app:!0,lineno:l}),i}function sM(i){Di&&B.log(`Global Handler attached: ${i}`)}function Hn(){const i=we();return(i==null?void 0:i.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}const h4=()=>({name:"HttpContext",preprocessEvent(i){var s;if(!Me.navigator&&!Me.location&&!Me.document)return;const e=al(),t={...e.headers,...(s=i.request)==null?void 0:s.headers};i.request={...e,...i.request,headers:t}}}),A4="cause",p4=5,m4="LinkedErrors",O4=(i={})=>{const e=i.limit||p4,t=i.key||A4;return{name:m4,preprocessEvent(s,o,r){const M=r.getOptions();JN(Ro,M.stackParser,t,e,s,o)}}},E4=O4;function _4(){return S4()?(Di&&ts(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function S4(){var r;if(typeof Me.window>"u")return!1;const i=Me;if(i.nw)return!1;const e=i.chrome||i.browser;if(!((r=e==null?void 0:e.runtime)!=null&&r.id))return!1;const t=vo(),s=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(Me===Me.top&&s.some(M=>t.startsWith(`${M}://`)))}function x4(i){return[QN(),xN(),c4(),Kl(),D4(),E4(),$n(),h4(),g4()]}function f4(i={}){const e=!i.skipBrowserExtensionCheck&&_4(),t={...i,enabled:e?!1:i.enabled,stackParser:nu(i.stackParser||Vl),integrations:rN({integrations:i.integrations,defaultIntegrations:i.defaultIntegrations==null?x4():i.defaultIntegrations}),transport:i.transport||Ql};return TN(Il,t)}function k4(){console.log(` +Url: ${oi(i)}`),!0}return!1}function $N(i,e){return e!=null&&e.length?Un(i).some(t=>Ti(t,e)):!1}function PN(i,e){if(!(e!=null&&e.length))return!1;const t=i.transaction;return t?Ti(t,e):!1}function WN(i,e){if(!(e!=null&&e.length))return!1;const t=oi(i);return t?Ti(t,e):!1}function RN(i,e){if(!(e!=null&&e.length))return!0;const t=oi(i);return t?Ti(t,e):!0}function JN(i=[]){for(let e=i.length-1;e>=0;e--){const t=i[e];if(t&&t.filename!==""&&t.filename!=="[native code]")return t.filename||null}return null}function oi(i){var e,t;try{const s=[...((e=i.exception)==null?void 0:e.values)??[]].reverse().find(r=>{var M,a,u;return((M=r.mechanism)==null?void 0:M.parent_id)===void 0&&((u=(a=r.stacktrace)==null?void 0:a.frames)==null?void 0:u.length)}),o=(t=s==null?void 0:s.stacktrace)==null?void 0:t.frames;return o?JN(o):null}catch{return Z&&B.error(`Cannot extract url for event ${pt(i)}`),null}}function BN(i){var e,t;return(t=(e=i.exception)==null?void 0:e.values)!=null&&t.length?!i.message&&!i.exception.values.some(s=>s.stacktrace||s.type&&s.type!=="Error"||s.value):!1}function FN(i,e,t,s,o,r){var a;if(!((a=o.exception)!=null&&a.values)||!r||!Tt(r.originalException,Error))return;const M=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;M&&(o.exception.values=so(i,e,s,r.originalException,t,o.exception.values,M,0))}function so(i,e,t,s,o,r,M,a){if(r.length>=t+1)return r;let u=[...r];if(Tt(s[o],Error)){Hr(M,a);const N=i(e,s[o]),l=u.length;Vr(N,o,l,a),u=so(i,e,t,s[o],o,[N,...u],N,l)}return Array.isArray(s.errors)&&s.errors.forEach((N,l)=>{if(Tt(N,Error)){Hr(M,a);const c=i(e,N),L=u.length;Vr(c,`errors[${l}]`,L,a),u=so(i,e,t,N,o,[c,...u],c,L)}}),u}function Hr(i,e){i.mechanism=i.mechanism||{type:"generic",handled:!0},i.mechanism={...i.mechanism,...i.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function Vr(i,e,t,s){i.mechanism=i.mechanism||{type:"generic",handled:!0},i.mechanism={...i.mechanism,type:"chained",source:e,exception_id:t,parent_id:s}}function GN(i){const e="console";kt(e,i),Yt(e,HN)}function HN(){"console"in te&&Vi.forEach(function(i){i in te.console&&Ee(te.console,i,function(e){return ti[i]=e,function(...t){ve("console",{args:t,level:i});const o=ti[i];o==null||o.apply(te.console,t)}})})}function VN(i){return i==="warn"?"warning":["fatal","error","warning","log","info","debug"].includes(i)?i:"log"}const ZN="Dedupe",XN=()=>{let i;return{name:ZN,processEvent(e){if(e.type)return e;try{if(KN(e,i))return Z&&B.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return i=e}}},Wn=XN;function KN(i,e){return e?!!(qN(i,e)||el(i,e)):!1}function qN(i,e){const t=i.message,s=e.message;return!(!t&&!s||t&&!s||!t&&s||t!==s||!Jn(i,e)||!Rn(i,e))}function el(i,e){const t=Zr(e),s=Zr(i);return!(!t||!s||t.type!==s.type||t.value!==s.value||!Jn(i,e)||!Rn(i,e))}function Rn(i,e){let t=Sr(i),s=Sr(e);if(!t&&!s)return!0;if(t&&!s||!t&&s||(t=t,s=s,s.length!==t.length))return!1;for(let o=0;o=400&&i<500?"warning":i>=500?"error":void 0}const zs=te;function tl(){return"history"in zs&&!!zs.history}function sl(){if(!("fetch"in zs))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function io(i){return i&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(i.toString())}function il(){var t;if(typeof EdgeRuntime=="string")return!0;if(!sl())return!1;if(io(zs.fetch))return!0;let i=!1;const e=zs.document;if(e&&typeof e.createElement=="function")try{const s=e.createElement("iframe");s.hidden=!0,e.head.appendChild(s),(t=s.contentWindow)!=null&&t.fetch&&(i=io(s.contentWindow.fetch)),e.head.removeChild(s)}catch(s){Z&&B.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",s)}return i}function ol(i,e){const t="fetch";kt(t,i),Yt(t,()=>rl(void 0,e))}function rl(i,e=!1){e&&!il()||Ee(te,"fetch",function(t){return function(...s){const o=new Error,{method:r,url:M}=Ml(s),a={args:s,fetchData:{method:r,url:M},startTimestamp:st()*1e3,virtualError:o,headers:nl(s)};return ve("fetch",{...a}),t.apply(te,s).then(async u=>(ve("fetch",{...a,endTimestamp:st()*1e3,response:u}),u),u=>{if(ve("fetch",{...a,endTimestamp:st()*1e3,error:u}),ko(u)&&u.stack===void 0&&(u.stack=o.stack,Et(u,"framesToPop",1)),u instanceof TypeError&&(u.message==="Failed to fetch"||u.message==="Load failed"||u.message==="NetworkError when attempting to fetch resource."))try{const N=new URL(a.fetchData.url);u.message=`${u.message} (${N.host})`}catch{}throw u})}})}function oo(i,e){return!!i&&typeof i=="object"&&!!i[e]}function Xr(i){return typeof i=="string"?i:i?oo(i,"url")?i.url:i.toString?i.toString():"":""}function Ml(i){if(i.length===0)return{method:"GET",url:""};if(i.length===2){const[t,s]=i;return{url:Xr(t),method:oo(s,"method")?String(s.method).toUpperCase():"GET"}}const e=i[0];return{url:Xr(e),method:oo(e,"method")?String(e.method).toUpperCase():"GET"}}function nl(i){const[e,t]=i;try{if(typeof t=="object"&&t!==null&&"headers"in t&&t.headers)return new Headers(t.headers);if(Dc(e))return new Headers(e.headers)}catch{}}function al(){return"npm"}const Me=te;let ro=0;function Fn(){return ro>0}function cl(){ro++,setTimeout(()=>{ro--})}function qt(i,e={}){function t(o){return typeof o=="function"}if(!t(i))return i;try{const o=i.__sentry_wrapped__;if(o)return typeof o=="function"?o:i;if(bo(i))return i}catch{return i}const s=function(...o){try{const r=o.map(M=>qt(M,e));return i.apply(this,r)}catch(r){throw cl(),$c(M=>{M.addEventProcessor(a=>(e.mechanism&&(Zi(a,void 0),Zt(a,e.mechanism)),a.extra={...a.extra,arguments:o},a)),eN(r)}),r}};try{for(const o in i)Object.prototype.hasOwnProperty.call(i,o)&&(s[o]=i[o])}catch{}yn(s,i),Et(i,"__sentry_wrapped__",s);try{Object.getOwnPropertyDescriptor(s,"name").configurable&&Object.defineProperty(s,"name",{get(){return i.name}})}catch{}return s}function ul(){const i=vo(),{referrer:e}=Me.document||{},{userAgent:t}=Me.navigator||{},s={...e&&{Referer:e},...t&&{"User-Agent":t}};return{url:i,headers:s}}function Ro(i,e){const t=Jo(i,e),s={type:gl(e),value:Tl(e)};return t.length&&(s.stacktrace={frames:t}),s.type===void 0&&s.value===""&&(s.value="Unrecoverable error caught"),s}function Nl(i,e,t,s){const o=we(),r=o==null?void 0:o.getOptions().normalizeDepth,M=Il(e),a={__serialized__:Sn(e,r)};if(M)return{exception:{values:[Ro(i,M)]},extra:a};const u={exception:{values:[{type:ji(e)?e.constructor.name:s?"UnhandledRejection":"Error",value:dl(e,{isUnhandledRejection:s})}]},extra:a};if(t){const N=Jo(i,t);N.length&&(u.exception.values[0].stacktrace={frames:N})}return u}function xi(i,e){return{exception:{values:[Ro(i,e)]}}}function Jo(i,e){const t=e.stacktrace||e.stack||"",s=Ll(e),o=jl(e);try{return i(t,s,o)}catch{}return[]}const ll=/Minified React error #\d+;/i;function Ll(i){return i&&ll.test(i.message)?1:0}function jl(i){return typeof i.framesToPop=="number"?i.framesToPop:0}function Gn(i){return typeof WebAssembly<"u"&&typeof WebAssembly.Exception<"u"?i instanceof WebAssembly.Exception:!1}function gl(i){const e=i==null?void 0:i.name;return!e&&Gn(i)?i.message&&Array.isArray(i.message)&&i.message.length==2?i.message[0]:"WebAssembly.Exception":e}function Tl(i){const e=i==null?void 0:i.message;return Gn(i)?Array.isArray(i.message)&&i.message.length==2?i.message[1]:"wasm exception":e?e.error&&typeof e.error.message=="string"?e.error.message:e:"No error message"}function yl(i,e,t,s){const o=(t==null?void 0:t.syntheticException)||void 0,r=Bo(i,e,o,s);return Zt(r),r.level="error",t!=null&&t.event_id&&(r.event_id=t.event_id),St(r)}function Dl(i,e,t="info",s,o){const r=(s==null?void 0:s.syntheticException)||void 0,M=Mo(i,e,r,o);return M.level=t,s!=null&&s.event_id&&(M.event_id=s.event_id),St(M)}function Bo(i,e,t,s,o){let r;if(jn(e)&&e.error)return xi(i,e.error);if(gr(e)||jc(e)){const M=e;if("stack"in e)r=xi(i,e);else{const a=M.name||(gr(M)?"DOMError":"DOMException"),u=M.message?`${a}: ${M.message}`:a;r=Mo(i,u,t,s),Zi(r,u)}return"code"in M&&(r.tags={...r.tags,"DOMException.code":`${M.code}`}),r}return ko(e)?xi(i,e):ds(e)||ji(e)?(r=Nl(i,e,t,o),Zt(r,{synthetic:!0}),r):(r=Mo(i,e,t,s),Zi(r,`${e}`),Zt(r,{synthetic:!0}),r)}function Mo(i,e,t,s){const o={};if(s&&t){const r=Jo(i,t);r.length&&(o.exception={values:[{value:e,stacktrace:{frames:r}}]}),Zt(o,{synthetic:!0})}if(Yo(e)){const{__sentry_template_string__:r,__sentry_template_values__:M}=e;return o.logentry={message:r,params:M},o}return o.message=e,o}function dl(i,{isUnhandledRejection:e}){const t=Ac(i),s=e?"promise rejection":"exception";return jn(i)?`Event \`ErrorEvent\` captured as ${s} with message \`${i.message}\``:ji(i)?`Event \`${zl(i)}\` (type=${i.type}) captured as ${s}`:`Object captured as ${s} with keys: ${t}`}function zl(i){try{const e=Object.getPrototypeOf(i);return e?e.constructor.name:void 0}catch{}}function Il(i){for(const e in i)if(Object.prototype.hasOwnProperty.call(i,e)){const t=i[e];if(t instanceof Error)return t}}const wl=5e3;class Cl extends lN{constructor(e){const t=hl(e),s=Me.SENTRY_SDK_SOURCE||al();_N(t,"browser",["browser"],s),super(t);const{sendDefaultPii:o,sendClientReports:r,_experiments:M}=this._options,a=M==null?void 0:M.enableLogs;Me.document&&(r||a)&&Me.document.addEventListener("visibilitychange",()=>{Me.document.visibilityState==="hidden"&&(r&&this._flushOutcomes(),a&&_i(this))}),a&&(this.on("flush",()=>{_i(this)}),this.on("afterCaptureLog",()=>{this._logFlushIdleTimeout&&clearTimeout(this._logFlushIdleTimeout),this._logFlushIdleTimeout=setTimeout(()=>{_i(this)},wl)})),o&&(this.on("postprocessEvent",ON),this.on("beforeSendSession",EN))}eventFromException(e,t){return yl(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",s){return Dl(this._options.stackParser,e,t,s,this._options.attachStacktrace)}_prepareEvent(e,t,s,o){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,s,o)}}function hl(i){var e;return{release:typeof __SENTRY_RELEASE__=="string"?__SENTRY_RELEASE__:(e=Me.SENTRY_RELEASE)==null?void 0:e.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...i}}const Al=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,ze=te,pl=1e3;let Kr,no,ao;function ml(i){const e="dom";kt(e,i),Yt(e,Ol)}function Ol(){if(!ze.document)return;const i=ve.bind(null,"dom"),e=qr(i,!0);ze.document.addEventListener("click",e,!1),ze.document.addEventListener("keypress",e,!1),["EventTarget","Node"].forEach(t=>{var r,M;const o=(r=ze[t])==null?void 0:r.prototype;(M=o==null?void 0:o.hasOwnProperty)!=null&&M.call(o,"addEventListener")&&(Ee(o,"addEventListener",function(a){return function(u,N,l){if(u==="click"||u=="keypress")try{const c=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},L=c[u]=c[u]||{refCount:0};if(!L.handler){const j=qr(i);L.handler=j,a.call(this,u,j,l)}L.refCount++}catch{}return a.call(this,u,N,l)}}),Ee(o,"removeEventListener",function(a){return function(u,N,l){if(u==="click"||u=="keypress")try{const c=this.__sentry_instrumentation_handlers__||{},L=c[u];L&&(L.refCount--,L.refCount<=0&&(a.call(this,u,L.handler,l),L.handler=void 0,delete c[u]),Object.keys(c).length===0&&delete this.__sentry_instrumentation_handlers__)}catch{}return a.call(this,u,N,l)}}))})}function El(i){if(i.type!==no)return!1;try{if(!i.target||i.target._sentryId!==ao)return!1}catch{}return!0}function _l(i,e){return i!=="keypress"?!1:e!=null&&e.tagName?!(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable):!0}function qr(i,e=!1){return t=>{if(!t||t._sentryCaptured)return;const s=Sl(t);if(_l(t.type,s))return;Et(t,"_sentryCaptured",!0),s&&!s._sentryId&&Et(s,"_sentryId",fe());const o=t.type==="keypress"?"input":t.type;El(t)||(i({event:t,name:o,global:e}),no=t.type,ao=s?s._sentryId:void 0),clearTimeout(Kr),Kr=ze.setTimeout(()=>{ao=void 0,no=void 0},pl)}}function Sl(i){try{return i.target}catch{return null}}let Us;function Hn(i){const e="history";kt(e,i),Yt(e,xl)}function xl(){if(ze.addEventListener("popstate",()=>{const e=ze.location.href,t=Us;if(Us=e,t===e)return;ve("history",{from:t,to:e})}),!tl())return;function i(e){return function(...t){const s=t.length>2?t[2]:void 0;if(s){const o=Us,r=fl(String(s));if(Us=r,o===r)return e.apply(this,t);ve("history",{from:o,to:r})}return e.apply(this,t)}}Ee(ze.history,"pushState",i),Ee(ze.history,"replaceState",i)}function fl(i){try{return new URL(i,ze.location.origin).toString()}catch{return i}}const Xs={};function kl(i){const e=Xs[i];if(e)return e;let t=ze[i];if(io(t))return Xs[i]=t.bind(ze);const s=ze.document;if(s&&typeof s.createElement=="function")try{const o=s.createElement("iframe");o.hidden=!0,s.head.appendChild(o);const r=o.contentWindow;r!=null&&r[i]&&(t=r[i]),s.head.removeChild(o)}catch(o){Al&&B.warn(`Could not create sandbox iframe for ${i} check, bailing to window.${i}: `,o)}return t&&(Xs[i]=t.bind(ze))}function eM(i){Xs[i]=void 0}const ls="__sentry_xhr_v3__";function Yl(i){const e="xhr";kt(e,i),Yt(e,Ql)}function Ql(){if(!ze.XMLHttpRequest)return;const i=XMLHttpRequest.prototype;i.open=new Proxy(i.open,{apply(e,t,s){const o=new Error,r=st()*1e3,M=tt(s[0])?s[0].toUpperCase():void 0,a=Ul(s[1]);if(!M||!a)return e.apply(t,s);t[ls]={method:M,url:a,request_headers:{}},M==="POST"&&a.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const u=()=>{const N=t[ls];if(N&&t.readyState===4){try{N.status_code=t.status}catch{}const l={endTimestamp:st()*1e3,startTimestamp:r,xhr:t,virtualError:o};ve("xhr",l)}};return"onreadystatechange"in t&&typeof t.onreadystatechange=="function"?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply(N,l,c){return u(),N.apply(l,c)}}):t.addEventListener("readystatechange",u),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(N,l,c){const[L,j]=c,T=l[ls];return T&&tt(L)&&tt(j)&&(T.request_headers[L.toLowerCase()]=j),N.apply(l,c)}}),e.apply(t,s)}}),i.send=new Proxy(i.send,{apply(e,t,s){const o=t[ls];if(!o)return e.apply(t,s);s[0]!==void 0&&(o.body=s[0]);const r={startTimestamp:st()*1e3,xhr:t};return ve("xhr",r),e.apply(t,s)}})}function Ul(i){if(tt(i))return i;try{return i.toString()}catch{}}function vl(i,e=kl("fetch")){let t=0,s=0;function o(r){const M=r.body.length;t+=M,s++;const a={body:r.body,method:"POST",referrerPolicy:"strict-origin",headers:i.headers,keepalive:t<=6e4&&s<15,...i.fetchOptions};if(!e)return eM("fetch"),ii("No fetch implementation available");try{return e(i.url,a).then(u=>(t-=M,s--,{statusCode:u.status,headers:{"x-sentry-rate-limits":u.headers.get("X-Sentry-Rate-Limits"),"retry-after":u.headers.get("Retry-After")}}))}catch(u){return eM("fetch"),t-=M,s--,ii(u)}}return mN(i,o)}const bl=30,$l=50;function co(i,e,t,s){const o={filename:i,function:e===""?_t:e,in_app:!0};return t!==void 0&&(o.lineno=t),s!==void 0&&(o.colno=s),o}const Pl=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,Wl=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Rl=/\((\S*)(?::(\d+))(?::(\d+))\)/,Jl=i=>{const e=Pl.exec(i);if(e){const[,s,o,r]=e;return co(s,_t,+o,+r)}const t=Wl.exec(i);if(t){if(t[2]&&t[2].indexOf("eval")===0){const M=Rl.exec(t[2]);M&&(t[2]=M[1],t[3]=M[2],t[4]=M[3])}const[o,r]=Vn(t[1]||_t,t[2]);return co(r,o,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}},Bl=[bl,Jl],Fl=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Gl=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Hl=i=>{const e=Fl.exec(i);if(e){if(e[3]&&e[3].indexOf(" > eval")>-1){const r=Gl.exec(e[3]);r&&(e[1]=e[1]||"eval",e[3]=r[1],e[4]=r[2],e[5]="")}let s=e[3],o=e[1]||_t;return[o,s]=Vn(o,s),co(s,o,e[4]?+e[4]:void 0,e[5]?+e[5]:void 0)}},Vl=[$l,Hl],Zl=[Bl,Vl],Xl=On(...Zl),Vn=(i,e)=>{const t=i.indexOf("safari-extension")!==-1,s=i.indexOf("safari-web-extension")!==-1;return t||s?[i.indexOf("@")!==-1?i.split("@")[0]:_t,t?`safari-extension:${e}`:`safari-web-extension:${e}`]:[i,e]},Di=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,vs=1024,Kl="Breadcrumbs",ql=(i={})=>{const e={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...i};return{name:Kl,setup(t){e.console&&GN(i4(t)),e.dom&&ml(s4(t,e.dom)),e.xhr&&Yl(o4(t)),e.fetch&&ol(r4(t)),e.history&&Hn(M4(t)),e.sentry&&t.on("beforeSendEvent",t4(t))}}},e4=ql;function t4(i){return function(t){we()===i&&xt({category:`sentry.${t.type==="transaction"?"transaction":"event"}`,event_id:t.event_id,level:t.level,message:pt(t)},{event:t})}}function s4(i,e){return function(s){if(we()!==i)return;let o,r,M=typeof e=="object"?e.serializeAttribute:void 0,a=typeof e=="object"&&typeof e.maxStringLength=="number"?e.maxStringLength:void 0;a&&a>vs&&(Di&&B.warn(`\`dom.maxStringLength\` cannot exceed ${vs}, but a value of ${a} was configured. Sentry will use ${vs} instead.`),a=vs),typeof M=="string"&&(M=[M]);try{const N=s.event,l=n4(N)?N.target:N;o=Tn(l,{keyAttrs:M,maxStringLength:a}),r=Ic(l)}catch{o=""}if(o.length===0)return;const u={category:`ui.${s.name}`,message:o};r&&(u.data={"ui.component_name":r}),xt(u,{event:s.event,name:s.name,global:s.global})}}function i4(i){return function(t){if(we()!==i)return;const s={category:"console",data:{arguments:t.args,logger:"console"},level:VN(t.level),message:Tr(t.args," ")};if(t.level==="assert")if(t.args[0]===!1)s.message=`Assertion failed: ${Tr(t.args.slice(1)," ")||"console.assert"}`,s.data.arguments=t.args.slice(1);else return;xt(s,{input:t.args,level:t.level})}}function o4(i){return function(t){if(we()!==i)return;const{startTimestamp:s,endTimestamp:o}=t,r=t.xhr[ls];if(!s||!o||!r)return;const{method:M,url:a,status_code:u,body:N}=r,l={method:M,url:a,status_code:u},c={xhr:t.xhr,input:N,startTimestamp:s,endTimestamp:o},L={category:"xhr",data:l,type:"http",level:Bn(u)};i.emit("beforeOutgoingRequestBreadcrumb",L,c),xt(L,c)}}function r4(i){return function(t){if(we()!==i)return;const{startTimestamp:s,endTimestamp:o}=t;if(o&&!(t.fetchData.url.match(/sentry_key/)&&t.fetchData.method==="POST"))if(t.fetchData.method,t.fetchData.url,t.error){const r=t.fetchData,M={data:t.error,input:t.args,startTimestamp:s,endTimestamp:o},a={category:"fetch",data:r,level:"error",type:"http"};i.emit("beforeOutgoingRequestBreadcrumb",a,M),xt(a,M)}else{const r=t.response,M={...t.fetchData,status_code:r==null?void 0:r.status};t.fetchData.request_body_size,t.fetchData.response_body_size,r==null||r.status;const a={input:t.args,response:r,startTimestamp:s,endTimestamp:o},u={category:"fetch",data:M,type:"http",level:Bn(M.status_code)};i.emit("beforeOutgoingRequestBreadcrumb",u,a),xt(u,a)}}}function M4(i){return function(t){if(we()!==i)return;let s=t.from,o=t.to;const r=Si(Me.location.href);let M=s?Si(s):void 0;const a=Si(o);M!=null&&M.path||(M=r),r.protocol===a.protocol&&r.host===a.host&&(o=a.relative),r.protocol===M.protocol&&r.host===M.host&&(s=M.relative),xt({category:"navigation",data:{from:s,to:o}})}}function n4(i){return!!i&&!!i.target}const a4=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],c4="BrowserApiErrors",u4=(i={})=>{const e={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...i};return{name:c4,setupOnce(){e.setTimeout&&Ee(Me,"setTimeout",tM),e.setInterval&&Ee(Me,"setInterval",tM),e.requestAnimationFrame&&Ee(Me,"requestAnimationFrame",l4),e.XMLHttpRequest&&"XMLHttpRequest"in Me&&Ee(XMLHttpRequest.prototype,"send",L4);const t=e.eventTarget;t&&(Array.isArray(t)?t:a4).forEach(o=>j4(o,e))}}},N4=u4;function tM(i){return function(...e){const t=e[0];return e[0]=qt(t,{mechanism:{data:{function:yt(i)},handled:!1,type:"instrument"}}),i.apply(this,e)}}function l4(i){return function(e){return i.apply(this,[qt(e,{mechanism:{data:{function:"requestAnimationFrame",handler:yt(i)},handled:!1,type:"instrument"}})])}}function L4(i){return function(...e){const t=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(o=>{o in t&&typeof t[o]=="function"&&Ee(t,o,function(r){const M={mechanism:{data:{function:o,handler:yt(r)},handled:!1,type:"instrument"}},a=bo(r);return a&&(M.mechanism.data.handler=yt(a)),qt(r,M)})}),i.apply(this,e)}}function j4(i,e){var o,r;const s=(o=Me[i])==null?void 0:o.prototype;(r=s==null?void 0:s.hasOwnProperty)!=null&&r.call(s,"addEventListener")&&(Ee(s,"addEventListener",function(M){return function(a,u,N){try{g4(u)&&(u.handleEvent=qt(u.handleEvent,{mechanism:{data:{function:"handleEvent",handler:yt(u),target:i},handled:!1,type:"instrument"}}))}catch{}return e.unregisterOriginalCallbacks&&T4(this,a,u),M.apply(this,[a,qt(u,{mechanism:{data:{function:"addEventListener",handler:yt(u),target:i},handled:!1,type:"instrument"}}),N])}}),Ee(s,"removeEventListener",function(M){return function(a,u,N){try{const l=u.__sentry_wrapped__;l&&M.call(this,a,l,N)}catch{}return M.call(this,a,u,N)}}))}function g4(i){return typeof i.handleEvent=="function"}function T4(i,e,t){i&&typeof i=="object"&&"removeEventListener"in i&&typeof i.removeEventListener=="function"&&i.removeEventListener(e,t)}const y4=()=>({name:"BrowserSession",setupOnce(){if(typeof Me.document>"u"){Di&&B.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}Ur({ignoreDuration:!0}),vr(),Hn(({from:i,to:e})=>{i!==void 0&&i!==e&&(Ur({ignoreDuration:!0}),vr())})}}),D4="GlobalHandlers",d4=(i={})=>{const e={onerror:!0,onunhandledrejection:!0,...i};return{name:D4,setupOnce(){Error.stackTraceLimit=50},setup(t){e.onerror&&(I4(t),sM("onerror")),e.onunhandledrejection&&(w4(t),sM("onunhandledrejection"))}}},z4=d4;function I4(i){Nu(e=>{const{stackParser:t,attachStacktrace:s}=Zn();if(we()!==i||Fn())return;const{msg:o,url:r,line:M,column:a,error:u}=e,N=A4(Bo(t,u||o,void 0,s,!1),r,M,a);N.level="error",fn(N,{originalException:u,mechanism:{handled:!1,type:"onerror"}})})}function w4(i){Lu(e=>{const{stackParser:t,attachStacktrace:s}=Zn();if(we()!==i||Fn())return;const o=C4(e),r=Qo(o)?h4(o):Bo(t,o,void 0,s,!0);r.level="error",fn(r,{originalException:o,mechanism:{handled:!1,type:"onunhandledrejection"}})})}function C4(i){if(Qo(i))return i;try{if("reason"in i)return i.reason;if("detail"in i&&"reason"in i.detail)return i.detail.reason}catch{}return i}function h4(i){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}}function A4(i,e,t,s){const o=i.exception=i.exception||{},r=o.values=o.values||[],M=r[0]=r[0]||{},a=M.stacktrace=M.stacktrace||{},u=a.frames=a.frames||[],N=s,l=t,c=tt(e)&&e.length>0?e:vo();return u.length===0&&u.push({colno:N,filename:c,function:_t,in_app:!0,lineno:l}),i}function sM(i){Di&&B.log(`Global Handler attached: ${i}`)}function Zn(){const i=we();return(i==null?void 0:i.getOptions())||{stackParser:()=>[],attachStacktrace:!1}}const p4=()=>({name:"HttpContext",preprocessEvent(i){var s;if(!Me.navigator&&!Me.location&&!Me.document)return;const e=ul(),t={...e.headers,...(s=i.request)==null?void 0:s.headers};i.request={...e,...i.request,headers:t}}}),m4="cause",O4=5,E4="LinkedErrors",_4=(i={})=>{const e=i.limit||O4,t=i.key||m4;return{name:E4,preprocessEvent(s,o,r){const M=r.getOptions();FN(Ro,M.stackParser,t,e,s,o)}}},S4=_4;function x4(){return f4()?(Di&&ts(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0):!1}function f4(){var r;if(typeof Me.window>"u")return!1;const i=Me;if(i.nw)return!1;const e=i.chrome||i.browser;if(!((r=e==null?void 0:e.runtime)!=null&&r.id))return!1;const t=vo(),s=["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"];return!(Me===Me.top&&s.some(M=>t.startsWith(`${M}://`)))}function k4(i){return[vN(),kN(),N4(),e4(),z4(),S4(),Wn(),p4(),y4()]}function Y4(i={}){const e=!i.skipBrowserExtensionCheck&&x4(),t={...i,enabled:e?!1:i.enabled,stackParser:cu(i.stackParser||Xl),integrations:nN({integrations:i.integrations,defaultIntegrations:i.defaultIntegrations==null?k4():i.defaultIntegrations}),transport:i.transport||vl};return DN(Cl,t)}function Q4(){console.log(` ██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ ██║██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██╔╝██╔════╝██╔══██╗ ██║██║ ██║██████╔╝██████╔╝██║ ██║█████╔╝ █████╗ ██████╔╝ ██║██║ ██║██╔══██╗██╔══██╗██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗ ██║╚██████╔╝██████╔╝██║ ██║╚██████╔╝██║ ██╗███████╗██║ ██║ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ -`),console.log("Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters"),console.log("Help us to create open source project with reactJS!"),console.log("See you :)")}const Y4=` +`),console.log("Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters"),console.log("Help us to create open source project with reactJS!"),console.log("See you :)")}const U4=` /** * Copyright 2018-2024 Denis Haev (bluefox) * @@ -242,10 +242,10 @@ Url: ${oi(i)}`),!0}return!1}function vN(i,e){return e!=null&&e.length?Yn(i).some .logo-animate-color-outside-blue { animation: logo-color-outside-blue 1.5s; } -`;function Q4(i){b.useEffect(()=>{if(!window.document.getElementById("loader-iobroker-component")){const s=window.document.createElement("style");s.setAttribute("id","loader-iobroker-component"),s.innerHTML=Y4,window.document.head.appendChild(s)}},[]);const e=i.size||234,t=i.themeName||i.theme||i.themeType||"light";return a.createElement("div",{className:`logo-back logo-background-${t}`,style:{backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:void 0,backgroundSize:"cover"}},window.loadingHideLogo==="true"?null:a.createElement(a.Fragment,null,a.createElement("div",{className:"logo-div",style:{width:e,height:e}},a.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"37%"}}),a.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"57%"}}),a.createElement("div",{className:`logo-border logo-background-${t} logo-animate-wait`,style:{borderWidth:e*.132}}),a.createElement("div",{className:`logo-i logo-animate-color-inside-${t}`}),a.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{top:"18%"}}),a.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{bottom:"18%"}})),a.createElement("div",{className:`logo-animate-grow logo-animate-grow-${t}`,style:{width:e+11,height:e+11}})))}class Ts extends b.Component{onHashChangedBound;constructor(e){super(e),this.onHashChangedBound=this.onHashChanged.bind(this)}componentDidMount(){window.addEventListener("hashchange",this.onHashChangedBound)}componentWillUnmount(){window.removeEventListener("hashchange",this.onHashChangedBound)}onHashChanged(){}static getLocation(){let e=window.location.hash;e=e.replace(/^#/,"");const t=e.split("/").map(s=>{try{return s?decodeURIComponent(s):""}catch{return console.error(`Router: Cannot decode ${s}`),s}});return{tab:t[0]||"",dialog:t[1]||"",id:t[2]||"",arg:t[3]||""}}static doNavigate(e,t,s,o){let r="";const M=Ts.getLocation();o!==void 0&&!s&&(s=M.id),s&&!t&&(t=M.dialog),(t&&!e||e===null)&&(e=M.tab),e&&(r=`#${e}`,t&&(r+=`/${t}`,s&&(r+=`/${s}`,o!==void 0&&(r+=`/${o}`)))),window.location.hash!==r&&(window.location.hash=r)}}function U4(){const i=document.getSelection();if(!(i!=null&&i.rangeCount))return()=>{};let e=document.activeElement;const t=[];for(let s=0;s{i.type==="Caret"&&i.removeAllRanges(),i.rangeCount||t.forEach(s=>i.addRange(s)),e&&e.focus()}}const iM={"text/plain":"Text","text/html":"Url",default:"Text"},v4="Copy to clipboard: #{key}, Enter";function b4(i){const e=`${/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl"}+C`;return i.replace(/#{\s*key\s*}/g,e)}function Vn(i,e){let t,s,o,r,M=!1;e=e||{};const n=e.debug||!1;try{if(t=U4(),s=document.createRange(),o=document.getSelection(),r=document.createElement("span"),r.textContent=i,r.ariaHidden="true",r.style.all="unset",r.style.position="fixed",r.style.top="0px",r.style.clip="rect(0, 0, 0, 0)",r.style.whiteSpace="pre",r.style.userSelect="text",r.addEventListener("copy",N=>{var l,c,L,j;if(N.stopPropagation(),e!=null&&e.format)if(N.preventDefault(),typeof N.clipboardData>"u"){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),(l=window.clipboardData)==null||l.clearData();const T=iM[e.format]||iM.default;(c=window.clipboardData)==null||c.setData(T,i)}else(L=N.clipboardData)==null||L.clearData(),(j=N.clipboardData)==null||j.setData(e.format,i)}),document.body.appendChild(r),s.selectNodeContents(r),o==null||o.addRange(s),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");M=!0}catch(u){n&&console.error("unable to copy using execCommand: ",u),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",i),M=!0}catch(N){n&&console.error("unable to copy using clipboardData: ",N),n&&console.error("falling back to prompt");const l=b4("message"in e?e.message||"":v4);window.prompt(l,i)}}finally{o&&(s&&typeof o.removeRange=="function"?o.removeRange(s):o.removeAllRanges()),r&&document.body.removeChild(r),t&&t()}return M}class d{static translations={};static unknownTranslations=[];static lang=window.sysLang||"en";static _disableWarning=!1;static setLanguage(e){e&&(d.lang=e)}static extendTranslations(e,t){if(e.prefix){const s=e;if(typeof s.prefix=="string"){const o=s.prefix;delete s.prefix,Object.keys(s).forEach(r=>{const M=r,n={},u=s[M];Object.keys(u).forEach(N=>{N&&u&&(N.startsWith(o)?n[N]=u[N]:n[`${o}${N}`]=u[N])}),e[M]=n})}else console.warn("Found prefix in translations, but it is not a string")}try{if(!t)e.en&&e.de&&e.ru?Object.keys(e).forEach(s=>{const o=s;d.translations[o]=d.translations[o]||{};const r=d.translations[o];Object.assign(r,e[o])}):Object.keys(e).forEach(s=>{const o=e[s];Object.keys(o).forEach(r=>{const M=r,n=d.translations[M];n?n[s]?n[s]!==o[M]&&console.warn(`Translation for word "${s}" in "${M}" was ignored: existing = "${n[s]}", new = ${o[M]}`):n[s]=o[M]:console.warn(`Used unknown language: ${M}`)})});else{d.translations[t]||console.warn(`Used unknown language: ${t}`),d.translations[t]=d.translations[t]||{};const s=d.translations[t];s&&Object.keys(e).forEach(o=>{s[o]?s[o]!==e[o]&&console.warn(`Translation for word "${o}" in "${t}" was ignored: existing = "${s[o]}", new = ${e[o]}`):s[o]=e[o]})}}catch(s){console.error(`Cannot apply translations: ${s}`)}}static setTranslations(e){e&&(d.translations=e)}static getLanguage(){return d.lang}static t(e,...t){const s=d.translations[d.lang];if(s){const o=s[e];if(o)e=o;else if(d.unknownTranslations.includes(e)||(d.unknownTranslations.push(e),!d._disableWarning&&console.log(`Translate: ${e}`)),d.lang!=="en"&&d.translations.en){const r=d.translations.en[e];r&&(e=r)}}for(const o of t)e=e.replace("%s",o);return e}static i18nShow(e){const t={};e?typeof e=="string"?(d.unknownTranslations.forEach(s=>{s.startsWith(e)&&(t[s]=s.replace(e,""))}),console.log(JSON.stringify(t,null,2))):typeof e=="object"&&(d.unknownTranslations.forEach(s=>{e.test(s)&&(t[s]=s)}),console.log(JSON.stringify(t,null,2))):(d.unknownTranslations.forEach(s=>t[s]=s),console.log(JSON.stringify(t,null,2)))}static disableWarning(e){d._disableWarning=!!e}}window.i18nShow=d.i18nShow;window.i18nDisableWarning=d.disableWarning;const $e="material",$4=["Su","Mo","Tu","We","Th","Fr","Sa"],P4=["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fi={0:"0x00 - good",1:"0x01 - general problem",2:"0x02 - no connection problem",16:"0x10 - substitute value from controller",32:"0x20 - substitute initial value",64:"0x40 - substitute value from device or instance",128:"0x80 - substitute value from sensor",17:"0x11 - general problem by instance",65:"0x41 - general problem by device",129:"0x81 - general problem by sensor",18:"0x12 - instance not connected",66:"0x42 - device not connected",130:"0x82 - sensor not connected",68:"0x44 - device reports error",132:"0x84 - sensor reports error"},oM={JVBERi0:"pdf",R0lGODdh:"gif",R0lGODlh:"gif",iVBORw0KGgo:"png","/9j/":"jpg",PHN2Zw:"svg",Qk1:"bmp",AAABAA:"ico"};class S{static namespace=$e;static INSTANCES="instances";static dateFormat=["DD","MM"];static FORBIDDEN_CHARS=/[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;static CapitalWords(e){return(e||"").split(/[\s_]/).filter(t=>t).map(t=>t?t[0].toUpperCase()+t.substring(1).toLowerCase():"").join(" ")}static formatSeconds(e){const t=Math.floor(e/86400);e%=3600*24;const s=Math.floor(e/3600).toString().padStart(2,"0");e%=3600;const o=Math.floor(e/60).toString().padStart(2,"0");e%=60;const r=Math.floor(e).toString().padStart(2,"0");let M="";return t&&(M+=`${t} ${d.t("ra_daysShortText")} `),M+=`${s}:${o}:${r}`,M}static getObjectName(e,t,s,o,r){var u;const M=e[t];let n;if(typeof s=="string"&&!o&&(o={language:s},s=null),o=o||{},o.language||(o.language=e["system.config"]&&e["system.config"].common&&e["system.config"].common.language||window.sysLang||"en"),s!=null&&s.name){const N=s.name;typeof N=="object"?n=o.language&&N[o.language]||N.en:n=N}else if(r&&((u=M==null?void 0:M.common)!=null&&u.desc)){const N=M.common.desc;typeof N=="object"?n=o.language&&N[o.language]||N.en||N.de||N.ru||"":n=N,n=(n||"").toString().replace(/[_.]/g," "),n===n.toUpperCase()&&(n=n[0]+n.substring(1).toLowerCase())}else if(!r&&(M!=null&&M.common)){const N=M.common.name||M.common.desc;N&&typeof N=="object"?n=o.language&&N[o.language]||N.en||N.de||N.ru||"":n=N,n=(n||"").toString().replace(/[_.]/g," "),n===n.toUpperCase()&&(n=n[0]+n.substring(1).toLowerCase())}else{const N=t.lastIndexOf(".");n=t.substring(N+1).replace(/[_.]/g," "),n=S.CapitalWords(n)}return(n==null?void 0:n.trim())||""}static getObjectNameFromObj(e,t,s,o,r){var u,N;const M=e;let n=(e==null?void 0:e._id)||"";if(typeof t=="string"&&!s&&(s={language:t},t=null),s=s||{},t!=null&&t.name){const l=t.name;typeof l=="object"?n=s.language&&l[s.language]||l.en:n=l}else if(o&&((u=M==null?void 0:M.common)!=null&&u.desc)){const l=M.common.desc;typeof l=="object"?n=s.language&&l[s.language]||l.en:n=l,n=(n||"").toString().replace(/[_.]/g," "),n===n.toUpperCase()&&(n=n[0]+n.substring(1).toLowerCase())}else if(!o&&((N=M==null?void 0:M.common)!=null&&N.name)){let l=M.common.name;!l&&M.common.desc&&(l=M.common.desc),typeof l=="object"?n=s.language&&l[s.language]||l.en:n=l,n=(n||"").toString().replace(/[_.]/g," "),n===n.toUpperCase()&&(n=n[0]+n.substring(1).toLowerCase())}return r?n:n.trim()}static getSettingsOrder(e,t,s){let o;e&&Object.prototype.hasOwnProperty.call(e,"common")?o=e.common:o=e;let r;if(o!=null&&o.custom){r=o.custom[$e];const M=s.user||"admin";if(r&&r[M]){if(t){if(r[M].subOrder&&r[M].subOrder[t])return JSON.parse(JSON.stringify(r[M].subOrder[t]))}else if(r[M].order)return JSON.parse(JSON.stringify(r[M].order))}}return null}static getSettingsCustomURLs(e,t,s){let o;e&&Object.prototype.hasOwnProperty.call(e,"common")?o=e.common:o=e;let r;if(o!=null&&o.custom){r=o.custom[$e];const M=s.user||"admin";if(r&&r[M]){if(t){if(r[M].subURLs&&r[M].subURLs[t])return JSON.parse(JSON.stringify(r[M].subURLs[t]))}else if(r[M].URLs)return JSON.parse(JSON.stringify(r[M].URLs))}}return null}static reorder(e,t,s){const o=Array.from(e),[r]=o.splice(t,1);return o.splice(s,0,r),o}static getSettings(e,t,s){let o;const r=(e==null?void 0:e._id)||(t==null?void 0:t.id);let M;if(e&&Object.prototype.hasOwnProperty.call(e,"common")?M=e.common:M=e,M!=null&&M.custom?(o=M.custom,o=o[$e]&&o[$e][t.user||"admin"]?JSON.parse(JSON.stringify(o[$e][t.user||"admin"])):{enabled:!0}):o={enabled:s===void 0?!0:s,useCustom:!1},Object.prototype.hasOwnProperty.call(o,"enabled")||(o.enabled=s===void 0?!0:s),t&&(!o.name&&t.name&&(o.name=t.name),!o.icon&&t.icon&&(o.icon=t.icon),!o.color&&t.color&&(o.color=t.color)),M&&(!o.color&&M.color&&(o.color=M.color),!o.icon&&M.icon&&(o.icon=M.icon),!o.name&&M.name&&(o.name=M.name)),typeof o.name=="object"&&(o.name=t.language&&o.name[t.language]||o.name.en,o.name=(o.name||"").toString().replace(/_/g," "),o.name===o.name.toUpperCase()&&(o.name=o.name[0]+o.name.substring(1).toLowerCase())),!o.name&&r){const n=r.lastIndexOf(".");o.name=r.substring(n+1).replace(/[_.]/g," "),o.name=(o.name||"").toString().replace(/_/g," "),o.name=S.CapitalWords(o.name)}return o}static setSettings(e,t,s){if(e){e.common=e.common||{},e.common.custom=e.common.custom||{},e.common.custom[$e]=e.common.custom[$e]||{},e.common.custom[$e][s.user||"admin"]=t;const o=e.common.custom[$e][s.user||"admin"];return o.useCommon&&(o.color!==void 0&&(e.common.color=o.color,delete o.color),o.icon!==void 0&&(e.common.icon=o.icon,delete o.icon),o.name!==void 0&&(typeof e.common.name!="object"&&s.language?e.common.name={[s.language]:o.name}:typeof e.common.name=="object"&&s.language&&(e.common.name[s.language]=o.name),delete o.name)),!0}return!1}static getIcon(e,t){return e!=null&&e.icon?e.icon.length<=2?a.createElement("span",{style:t||{}},e.icon):e.icon.startsWith("data:image")?a.createElement("img",{alt:e.name,src:e.icon,style:t||{}}):a.createElement("img",{alt:e.name,src:(e.prefix||"")+e.icon,style:t}):null}static getObjectIcon(e,t){var s;if(typeof e=="object"&&(t=e,e=t==null?void 0:t._id),(s=t==null?void 0:t.common)!=null&&s.icon){let o=t.common.icon;if(typeof o=="string"&&o.length<=2||o.startsWith("data:image"))return o;const r=e.split(".");return r[0]==="system"?o=`adapter/${r[2]}${o.startsWith("/")?"":"/"}${o}`:o=`adapter/${r[0]}${o.startsWith("/")?"":"/"}${o}`,window.location.pathname.match(/adapter\/[^/]+\/[^/]+\.html/)?o=`../../${o}`:window.location.pathname.match(/material\/[.\d]+/)?o=`../../${o}`:window.location.pathname.match(/material\//)&&(o=`../${o}`),o}return null}static splitCamelCase(e){return e?S.CapitalWords(e):""}static isUseBright(e,t){if(!e)return t===void 0?!0:t;e=e.toString(),e.startsWith("#")&&(e=e.slice(1));let s,o,r;const M=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(M&&M.length===4)s=parseInt(M[1],10),o=parseInt(M[2],10),r=parseInt(M[3],10);else{if(e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8)e=e.substring(0,6);else if(e.length!==6)return!1;s=parseInt(e.slice(0,2),16),o=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16)}return s*.299+o*.587+r*.114<=186}static getTimeString(e){if(e=parseFloat(e),Number.isNaN(e))return"--:--";const t=Math.floor(e/3600),s=Math.floor(e%3600/60).toString().padStart(2,"0"),o=(e%60).toString().padStart(2,"0");return t?`${t}:${s}:${o}`:`${s}:${o}`}static getWindDirection(e){return e>=0&&e<11.25?"N":e>=11.25&&e<33.75?"NNE":e>=33.75&&e<56.25?"NE":e>=56.25&&e<78.75?"ENE":e>=78.75&&e<101.25?"E":e>=101.25&&e<123.75?"ESE":e>=123.75&&e<146.25?"SE":e>=146.25&&e<168.75?"SSE":e>=168.75&&e<191.25?"S":e>=191.25&&e<213.75?"SSW":e>=213.75&&e<236.25?"SW":e>=236.25&&e<258.75?"WSW":e>=258.75&&e<281.25?"W":e>=281.25&&e<303.75?"WNW":e>=303.75&&e<326.25?"NW":e>=326.25&&e<348.75?"NNW":"N"}static padding(e){return typeof e=="string"?e.length<2?`0${e}`:e:e<10?`0${e}`:e.toString()}static setDataFormat(e){e&&(S.dateFormat=e.toUpperCase().split(/[.-/]/),S.dateFormat.splice(S.dateFormat.indexOf("YYYY"),1))}static date2string(e){if(typeof e=="string"){if(e=e.trim(),!e)return"";if(e.match(/^[\w\s]+$/))return e;const s=e.match(/(\d{1,4})[-./](\d{1,2})[-./](\d{1,4})/);if(s){const o=[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10)],r=o.find(M=>M>31);if(r!==void 0){o.splice(o.indexOf(r),1);const M=o.find(n=>n>12);M?(o.splice(o.indexOf(M),1),e=new Date(r,o[0]-1,M)):S.dateFormat[0][0]==="M"&&S.dateFormat[1][0]==="D"?(e=new Date(r,o[0]-1,o[1]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(r,o[1]-1,o[0]))):S.dateFormat[0][0]==="D"&&S.dateFormat[1][0]==="M"?(e=new Date(r,o[1]-1,o[0]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(r,o[0]-1,o[1]))):e=new Date(e)}else e=new Date(e)}else e=new Date(e)}else e=new Date(e);let t=d.t(`ra_dow_${$4[e.getDay()]}`).replace("ra_dow_","");return t+=`. ${e.getDate()} ${d.t(`ra_month_${P4[e.getMonth()]}`).replace("ra_month_","")}`,t}static renderTextWithA(e){let t=e.match(/||[^<]+<\/b>|[^<]+<\/i>/);if(t){const s=[];let o=1;do{const r=e.substring(0,t.index);if(e=e.substring((t.index||0)+t[0].length),r&&s.push(a.createElement("span",{key:`a${o++}`},r)),t[0].startsWith(""))s.push(a.createElement("b",{key:`a${o++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith(""))s.push(a.createElement("i",{key:`a${o++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith("([^<]*)||[^<]+<\/b>|[^<]+<\/i>/):null,!t&&e&&s.push(a.createElement("span",{key:`a${o++}`},e))}while(t);return s}return e}static getSmartName(e,t,s,o){var M,n;if(!t){if(!o)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const u=e;return(M=u==null?void 0:u.common)!=null&&M.custom&&u.common.custom[s]?u.common.custom[s].smartName:void 0}if(!o)return e[t].common.smartName;const r=e[t];return(n=r==null?void 0:r.common)!=null&&n.custom&&r.common.custom[s]&&r.common.custom[s].smartName||null}static getSmartNameFromObj(e,t,s){var r,M;if(!s)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const o=(M=(r=e==null?void 0:e.common)==null?void 0:r.custom)==null?void 0:M[t];return o?o.smartName:void 0}static enableSmartName(e,t,s){s?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName={}):e.common.smartName={}}static removeSmartName(e,t,s){s?e.common&&e.common.custom&&e.common.custom[t]&&(e.common.custom[t]=null):e.common.smartName=null}static updateSmartName(e,t,s,o,r,M){const n=d.getLanguage();if(typeof e.common.smartName=="string"){const u=e.common.smartName;e.common.smartName={},e.common.smartName[n]=u}if(e.native&&e.native.byON){delete e.native.byON;let u=e.common.smartName;u&&typeof u!="object"&&(u={en:u,[n]:u}),e.common.smartName=u}if(o!==void 0&&(M?(e.common.custom=e.common.custom||{},e.common.custom[r]=e.common.custom[r]||{},e.common.custom[r].smartName=e.common.custom[r].smartName||{},o?e.common.custom[r].smartName.smartType=o:delete e.common.custom[r].smartName.smartType):(e.common.smartName=e.common.smartName||{},o?e.common.smartName.smartType=o:delete e.common.smartName.smartType)),s!==void 0&&(M?(e.common.custom=e.common.custom||{},e.common.custom[r]=e.common.custom[r]||{},e.common.custom[r].smartName=e.common.custom[r].smartName||{},e.common.custom[r].smartName.byON=s):(e.common.smartName=e.common.smartName||{},e.common.smartName.byON=s)),t!==void 0){let u;if(M?(e.common.custom=e.common.custom||{},e.common.custom[r]=e.common.custom[r]||{},e.common.custom[r].smartName=e.common.custom[r].smartName||{},u=e.common.custom[r].smartName):(e.common.smartName=e.common.smartName||{},u=e.common.smartName),u[n]=t,u&&(!u[n]||u[n]===e.common.name&&(!e.common.role||e.common.role.includes("button")))){delete u[n];let N=!0;for(const l in u)if(Object.prototype.hasOwnProperty.call(u,l)){N=!1;break}if(N)if(M&&e.common.custom&&e.common.custom[r])e.common.custom[r].smartName.byON===void 0?delete e.common.custom[r]:(delete e.common.custom[r].en,delete e.common.custom[r].de,delete e.common.custom[r].ru,delete e.common.custom[r].nl,delete e.common.custom[r].pl,delete e.common.custom[r].it,delete e.common.custom[r].fr,delete e.common.custom[r].pt,delete e.common.custom[r].es,delete e.common.custom[r].uk,delete e.common.custom[r]["zh-cn"]);else if(e.common.smartName&&e.common.smartName.byON!==void 0){const l=e.common.smartName;delete l.en,delete l.de,delete l.ru,delete l.nl,delete l.pl,delete l.it,delete l.fr,delete l.pt,delete l.es,delete l.uk,delete l["zh-cn"]}else e.common.smartName=null}}}static disableSmartName(e,t,s){s?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName=!1):e.common.smartName=!1}static copyToClipboard(e,t){return t&&(t.stopPropagation(),t.preventDefault()),Vn(e)}static getFileExtension(e){const t=(e||"").lastIndexOf(".");return t!==-1?e.substring(t+1).toLowerCase():null}static formatBytes(e){if(Math.abs(e)<1024)return`${e} B`;const t=["KB","MB","GB"];let s=-1;do e/=1024,++s;while(Math.abs(e)>=1024&&s186?`#000000${s||""}`:`#FFFFFF${s||""}`;const n=(255-o).toString(16),u=(255-r).toString(16),N=(255-M).toString(16);return`#${n.padStart(2,"0")}${u.padStart(2,"0")}${N.padStart(2,"0")}${s||""}`}static color2rgb(e){if(e==null||e===""||typeof e!="string")return!1;if(e.startsWith("rgba")){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else if(e.startsWith("rgb")){const t=e.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else e.startsWith("#")&&(e=e.slice(1));return e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length!==6&&e.length!==8?(console.warn(`Cannot invert color: ${e}`),!1):[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}static rgb2lab(e){let t=e[0]/255,s=e[1]/255,o=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let r=(t*.4124+s*.3576+o*.1805)/.95047,M=t*.2126+s*.7152+o*.0722,n=(t*.0193+s*.1192+o*.9505)/1.08883;return r=r>.008856?r**.33333333:7.787*r+.137931,M=M>.008856?M**.33333333:7.787*M+.137931,n=n>.008856?n**.33333333:7.787*n+.137931,[116*M-16,500*(r-M),200*(M-n)]}static colorDistance(e,t){const s=S.color2rgb(e),o=S.color2rgb(t);if(!s||!o)return 0;const r=S.rgb2lab(s),M=S.rgb2lab(o),n=r[0]-M[0],u=r[1]-M[1],N=r[2]-M[2],l=Math.sqrt(r[1]*r[1]+r[2]*r[2]),c=Math.sqrt(M[1]*M[1]+M[2]*M[2]),L=l-c;let j=u*u+N*N-L*L;j=j<0?0:Math.sqrt(j);const T=1+.045*l,D=1+.015*l,z=n,h=L/T,O=j/D,p=z*z+h*h+O*O;return p<0?0:p}static _toVal(e){let t,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e))for(let o=0;o{if(s=s.trim(),s){const o=s.split("="),r=decodeURIComponent(o[0]).trim();if(o.length>1){const M=decodeURIComponent(o[1]);if(M==="true")t[r]=!0;else if(M==="false")t[r]=!1;else{const n=parseFloat(M);n.toString()===M?t[r]=n:t[r]=M}}else t[r]=!0}}),t}static getParentId(e){const t=(e||"").toString().split(".");return t.length>1?(t.pop(),t.join(".")):null}static formatDate(e,t){if(!e)return"";let s;const o=(e.getMonth()+1).toString().padStart(2,"0"),r=e.getDate().toString().padStart(2,"0");return t==="MM/DD/YYYY"?s=`${o}/${r}/${e.getFullYear()}`:s=`${e.getFullYear()}-${o}-${r}`,s+=` ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`,s}static formatTime(e){if(e){e=Math.round(e);const t=Math.floor(e/(3600*24)),s=Math.floor(e%(3600*24)/3600),o=Math.floor(e%3600/60),r=e%60;return t?`${t}.${s.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`:s?`${s}:${o.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`:`0:${o.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`}return"0:00:00"}static MDtext2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static MDgetTitle(e){var r;const t=S.MDextractHeader(e),s=t.header;let o=t.body;if(!s.title){o=o.replace(/{[^}]*}/g,""),o=o.trim();const M=o.replace(/\r/g,"").split(` -`);for(let n=0;n{if(!window.document.getElementById("loader-iobroker-component")){const s=window.document.createElement("style");s.setAttribute("id","loader-iobroker-component"),s.innerHTML=U4,window.document.head.appendChild(s)}},[]);const e=i.size||234,t=i.themeName||i.theme||i.themeType||"light";return n.createElement("div",{className:`logo-back logo-background-${t}`,style:{backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:void 0,backgroundSize:"cover"}},window.loadingHideLogo==="true"?null:n.createElement(n.Fragment,null,n.createElement("div",{className:"logo-div",style:{width:e,height:e}},n.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"37%"}}),n.createElement("div",{className:`logo-top logo-background-${t}`,style:{left:"57%"}}),n.createElement("div",{className:`logo-border logo-background-${t} logo-animate-wait`,style:{borderWidth:e*.132}}),n.createElement("div",{className:`logo-i logo-animate-color-inside-${t}`}),n.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{top:"18%"}}),n.createElement("div",{className:`logo-i-top logo-animate-color-inside-${t}`,style:{bottom:"18%"}})),n.createElement("div",{className:`logo-animate-grow logo-animate-grow-${t}`,style:{width:e+11,height:e+11}})))}class Ts extends b.Component{onHashChangedBound;constructor(e){super(e),this.onHashChangedBound=this.onHashChanged.bind(this)}componentDidMount(){window.addEventListener("hashchange",this.onHashChangedBound)}componentWillUnmount(){window.removeEventListener("hashchange",this.onHashChangedBound)}onHashChanged(){}static getLocation(){let e=window.location.hash;e=e.replace(/^#/,"");const t=e.split("/").map(s=>{try{return s?decodeURIComponent(s):""}catch{return console.error(`Router: Cannot decode ${s}`),s}});return{tab:t[0]||"",dialog:t[1]||"",id:t[2]||"",arg:t[3]||""}}static doNavigate(e,t,s,o){let r="";const M=Ts.getLocation();o!==void 0&&!s&&(s=M.id),s&&!t&&(t=M.dialog),(t&&!e||e===null)&&(e=M.tab),e&&(r=`#${e}`,t&&(r+=`/${t}`,s&&(r+=`/${s}`,o!==void 0&&(r+=`/${o}`)))),window.location.hash!==r&&(window.location.hash=r)}}function b4(){const i=document.getSelection();if(!(i!=null&&i.rangeCount))return()=>{};let e=document.activeElement;const t=[];for(let s=0;s{i.type==="Caret"&&i.removeAllRanges(),i.rangeCount||t.forEach(s=>i.addRange(s)),e&&e.focus()}}const iM={"text/plain":"Text","text/html":"Url",default:"Text"},$4="Copy to clipboard: #{key}, Enter";function P4(i){const e=`${/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl"}+C`;return i.replace(/#{\s*key\s*}/g,e)}function Xn(i,e){let t,s,o,r,M=!1;e=e||{};const a=e.debug||!1;try{if(t=b4(),s=document.createRange(),o=document.getSelection(),r=document.createElement("span"),r.textContent=i,r.ariaHidden="true",r.style.all="unset",r.style.position="fixed",r.style.top="0px",r.style.clip="rect(0, 0, 0, 0)",r.style.whiteSpace="pre",r.style.userSelect="text",r.addEventListener("copy",N=>{var l,c,L,j;if(N.stopPropagation(),e!=null&&e.format)if(N.preventDefault(),typeof N.clipboardData>"u"){a&&console.warn("unable to use e.clipboardData"),a&&console.warn("trying IE specific stuff"),(l=window.clipboardData)==null||l.clearData();const T=iM[e.format]||iM.default;(c=window.clipboardData)==null||c.setData(T,i)}else(L=N.clipboardData)==null||L.clearData(),(j=N.clipboardData)==null||j.setData(e.format,i)}),document.body.appendChild(r),s.selectNodeContents(r),o==null||o.addRange(s),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");M=!0}catch(u){a&&console.error("unable to copy using execCommand: ",u),a&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(e.format||"text",i),M=!0}catch(N){a&&console.error("unable to copy using clipboardData: ",N),a&&console.error("falling back to prompt");const l=P4("message"in e?e.message||"":$4);window.prompt(l,i)}}finally{o&&(s&&typeof o.removeRange=="function"?o.removeRange(s):o.removeAllRanges()),r&&document.body.removeChild(r),t&&t()}return M}class d{static translations={};static unknownTranslations=[];static lang=window.sysLang||"en";static _disableWarning=!1;static setLanguage(e){e&&(d.lang=e)}static extendTranslations(e,t){if(e.prefix){const s=e;if(typeof s.prefix=="string"){const o=s.prefix;delete s.prefix,Object.keys(s).forEach(r=>{const M=r,a={},u=s[M];Object.keys(u).forEach(N=>{N&&u&&(N.startsWith(o)?a[N]=u[N]:a[`${o}${N}`]=u[N])}),e[M]=a})}else console.warn("Found prefix in translations, but it is not a string")}try{if(!t)e.en&&e.de&&e.ru?Object.keys(e).forEach(s=>{const o=s;d.translations[o]=d.translations[o]||{};const r=d.translations[o];Object.assign(r,e[o])}):Object.keys(e).forEach(s=>{const o=e[s];Object.keys(o).forEach(r=>{const M=r,a=d.translations[M];a?a[s]?a[s]!==o[M]&&console.warn(`Translation for word "${s}" in "${M}" was ignored: existing = "${a[s]}", new = ${o[M]}`):a[s]=o[M]:console.warn(`Used unknown language: ${M}`)})});else{d.translations[t]||console.warn(`Used unknown language: ${t}`),d.translations[t]=d.translations[t]||{};const s=d.translations[t];s&&Object.keys(e).forEach(o=>{s[o]?s[o]!==e[o]&&console.warn(`Translation for word "${o}" in "${t}" was ignored: existing = "${s[o]}", new = ${e[o]}`):s[o]=e[o]})}}catch(s){console.error(`Cannot apply translations: ${s}`)}}static setTranslations(e){e&&(d.translations=e)}static getLanguage(){return d.lang}static t(e,...t){const s=d.translations[d.lang];if(s){const o=s[e];if(o)e=o;else if(d.unknownTranslations.includes(e)||(d.unknownTranslations.push(e),!d._disableWarning&&console.log(`Translate: ${e}`)),d.lang!=="en"&&d.translations.en){const r=d.translations.en[e];r&&(e=r)}}for(const o of t)e=e.replace("%s",o);return e}static i18nShow(e){const t={};e?typeof e=="string"?(d.unknownTranslations.forEach(s=>{s.startsWith(e)&&(t[s]=s.replace(e,""))}),console.log(JSON.stringify(t,null,2))):typeof e=="object"&&(d.unknownTranslations.forEach(s=>{e.test(s)&&(t[s]=s)}),console.log(JSON.stringify(t,null,2))):(d.unknownTranslations.forEach(s=>t[s]=s),console.log(JSON.stringify(t,null,2)))}static disableWarning(e){d._disableWarning=!!e}}window.i18nShow=d.i18nShow;window.i18nDisableWarning=d.disableWarning;const $e="material",W4=["Su","Mo","Tu","We","Th","Fr","Sa"],R4=["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],fi={0:"0x00 - good",1:"0x01 - general problem",2:"0x02 - no connection problem",16:"0x10 - substitute value from controller",32:"0x20 - substitute initial value",64:"0x40 - substitute value from device or instance",128:"0x80 - substitute value from sensor",17:"0x11 - general problem by instance",65:"0x41 - general problem by device",129:"0x81 - general problem by sensor",18:"0x12 - instance not connected",66:"0x42 - device not connected",130:"0x82 - sensor not connected",68:"0x44 - device reports error",132:"0x84 - sensor reports error"},oM={JVBERi0:"pdf",R0lGODdh:"gif",R0lGODlh:"gif",iVBORw0KGgo:"png","/9j/":"jpg",PHN2Zw:"svg",Qk1:"bmp",AAABAA:"ico"};class S{static namespace=$e;static INSTANCES="instances";static dateFormat=["DD","MM"];static FORBIDDEN_CHARS=/[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;static CapitalWords(e){return(e||"").split(/[\s_]/).filter(t=>t).map(t=>t?t[0].toUpperCase()+t.substring(1).toLowerCase():"").join(" ")}static formatSeconds(e){const t=Math.floor(e/86400);e%=3600*24;const s=Math.floor(e/3600).toString().padStart(2,"0");e%=3600;const o=Math.floor(e/60).toString().padStart(2,"0");e%=60;const r=Math.floor(e).toString().padStart(2,"0");let M="";return t&&(M+=`${t} ${d.t("ra_daysShortText")} `),M+=`${s}:${o}:${r}`,M}static getObjectName(e,t,s,o,r){var u;const M=e[t];let a;if(typeof s=="string"&&!o&&(o={language:s},s=null),o=o||{},o.language||(o.language=e["system.config"]&&e["system.config"].common&&e["system.config"].common.language||window.sysLang||"en"),s!=null&&s.name){const N=s.name;typeof N=="object"?a=o.language&&N[o.language]||N.en:a=N}else if(r&&((u=M==null?void 0:M.common)!=null&&u.desc)){const N=M.common.desc;typeof N=="object"?a=o.language&&N[o.language]||N.en||N.de||N.ru||"":a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!r&&(M!=null&&M.common)){const N=M.common.name||M.common.desc;N&&typeof N=="object"?a=o.language&&N[o.language]||N.en||N.de||N.ru||"":a=N,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else{const N=t.lastIndexOf(".");a=t.substring(N+1).replace(/[_.]/g," "),a=S.CapitalWords(a)}return(a==null?void 0:a.trim())||""}static getObjectNameFromObj(e,t,s,o,r){var u,N;const M=e;let a=(e==null?void 0:e._id)||"";if(typeof t=="string"&&!s&&(s={language:t},t=null),s=s||{},t!=null&&t.name){const l=t.name;typeof l=="object"?a=s.language&&l[s.language]||l.en:a=l}else if(o&&((u=M==null?void 0:M.common)!=null&&u.desc)){const l=M.common.desc;typeof l=="object"?a=s.language&&l[s.language]||l.en:a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}else if(!o&&((N=M==null?void 0:M.common)!=null&&N.name)){let l=M.common.name;!l&&M.common.desc&&(l=M.common.desc),typeof l=="object"?a=s.language&&l[s.language]||l.en:a=l,a=(a||"").toString().replace(/[_.]/g," "),a===a.toUpperCase()&&(a=a[0]+a.substring(1).toLowerCase())}return r?a:a.trim()}static getSettingsOrder(e,t,s){let o;e&&Object.prototype.hasOwnProperty.call(e,"common")?o=e.common:o=e;let r;if(o!=null&&o.custom){r=o.custom[$e];const M=s.user||"admin";if(r&&r[M]){if(t){if(r[M].subOrder&&r[M].subOrder[t])return JSON.parse(JSON.stringify(r[M].subOrder[t]))}else if(r[M].order)return JSON.parse(JSON.stringify(r[M].order))}}return null}static getSettingsCustomURLs(e,t,s){let o;e&&Object.prototype.hasOwnProperty.call(e,"common")?o=e.common:o=e;let r;if(o!=null&&o.custom){r=o.custom[$e];const M=s.user||"admin";if(r&&r[M]){if(t){if(r[M].subURLs&&r[M].subURLs[t])return JSON.parse(JSON.stringify(r[M].subURLs[t]))}else if(r[M].URLs)return JSON.parse(JSON.stringify(r[M].URLs))}}return null}static reorder(e,t,s){const o=Array.from(e),[r]=o.splice(t,1);return o.splice(s,0,r),o}static getSettings(e,t,s){let o;const r=(e==null?void 0:e._id)||(t==null?void 0:t.id);let M;if(e&&Object.prototype.hasOwnProperty.call(e,"common")?M=e.common:M=e,M!=null&&M.custom?(o=M.custom,o=o[$e]&&o[$e][t.user||"admin"]?JSON.parse(JSON.stringify(o[$e][t.user||"admin"])):{enabled:!0}):o={enabled:s===void 0?!0:s,useCustom:!1},Object.prototype.hasOwnProperty.call(o,"enabled")||(o.enabled=s===void 0?!0:s),t&&(!o.name&&t.name&&(o.name=t.name),!o.icon&&t.icon&&(o.icon=t.icon),!o.color&&t.color&&(o.color=t.color)),M&&(!o.color&&M.color&&(o.color=M.color),!o.icon&&M.icon&&(o.icon=M.icon),!o.name&&M.name&&(o.name=M.name)),typeof o.name=="object"&&(o.name=t.language&&o.name[t.language]||o.name.en,o.name=(o.name||"").toString().replace(/_/g," "),o.name===o.name.toUpperCase()&&(o.name=o.name[0]+o.name.substring(1).toLowerCase())),!o.name&&r){const a=r.lastIndexOf(".");o.name=r.substring(a+1).replace(/[_.]/g," "),o.name=(o.name||"").toString().replace(/_/g," "),o.name=S.CapitalWords(o.name)}return o}static setSettings(e,t,s){if(e){e.common=e.common||{},e.common.custom=e.common.custom||{},e.common.custom[$e]=e.common.custom[$e]||{},e.common.custom[$e][s.user||"admin"]=t;const o=e.common.custom[$e][s.user||"admin"];return o.useCommon&&(o.color!==void 0&&(e.common.color=o.color,delete o.color),o.icon!==void 0&&(e.common.icon=o.icon,delete o.icon),o.name!==void 0&&(typeof e.common.name!="object"&&s.language?e.common.name={[s.language]:o.name}:typeof e.common.name=="object"&&s.language&&(e.common.name[s.language]=o.name),delete o.name)),!0}return!1}static getIcon(e,t){return e!=null&&e.icon?e.icon.length<=2?n.createElement("span",{style:t||{}},e.icon):e.icon.startsWith("data:image")?n.createElement("img",{alt:e.name,src:e.icon,style:t||{}}):n.createElement("img",{alt:e.name,src:(e.prefix||"")+e.icon,style:t}):null}static getObjectIcon(e,t){var s;if(typeof e=="object"&&(t=e,e=t==null?void 0:t._id),(s=t==null?void 0:t.common)!=null&&s.icon){let o=t.common.icon;if(typeof o=="string"&&o.length<=2||o.startsWith("data:image"))return o;const r=e.split(".");return r[0]==="system"?o=`adapter/${r[2]}${o.startsWith("/")?"":"/"}${o}`:o=`adapter/${r[0]}${o.startsWith("/")?"":"/"}${o}`,window.location.pathname.match(/adapter\/[^/]+\/[^/]+\.html/)?o=`../../${o}`:window.location.pathname.match(/material\/[.\d]+/)?o=`../../${o}`:window.location.pathname.match(/material\//)&&(o=`../${o}`),o}return null}static splitCamelCase(e){return e?S.CapitalWords(e):""}static isUseBright(e,t){if(!e)return t===void 0?!0:t;e=e.toString(),e.startsWith("#")&&(e=e.slice(1));let s,o,r;const M=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(M&&M.length===4)s=parseInt(M[1],10),o=parseInt(M[2],10),r=parseInt(M[3],10);else{if(e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length===8)e=e.substring(0,6);else if(e.length!==6)return!1;s=parseInt(e.slice(0,2),16),o=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16)}return s*.299+o*.587+r*.114<=186}static getTimeString(e){if(e=parseFloat(e),Number.isNaN(e))return"--:--";const t=Math.floor(e/3600),s=Math.floor(e%3600/60).toString().padStart(2,"0"),o=(e%60).toString().padStart(2,"0");return t?`${t}:${s}:${o}`:`${s}:${o}`}static getWindDirection(e){return e>=0&&e<11.25?"N":e>=11.25&&e<33.75?"NNE":e>=33.75&&e<56.25?"NE":e>=56.25&&e<78.75?"ENE":e>=78.75&&e<101.25?"E":e>=101.25&&e<123.75?"ESE":e>=123.75&&e<146.25?"SE":e>=146.25&&e<168.75?"SSE":e>=168.75&&e<191.25?"S":e>=191.25&&e<213.75?"SSW":e>=213.75&&e<236.25?"SW":e>=236.25&&e<258.75?"WSW":e>=258.75&&e<281.25?"W":e>=281.25&&e<303.75?"WNW":e>=303.75&&e<326.25?"NW":e>=326.25&&e<348.75?"NNW":"N"}static padding(e){return typeof e=="string"?e.length<2?`0${e}`:e:e<10?`0${e}`:e.toString()}static setDataFormat(e){e&&(S.dateFormat=e.toUpperCase().split(/[.-/]/),S.dateFormat.splice(S.dateFormat.indexOf("YYYY"),1))}static date2string(e){if(typeof e=="string"){if(e=e.trim(),!e)return"";if(e.match(/^[\w\s]+$/))return e;const s=e.match(/(\d{1,4})[-./](\d{1,2})[-./](\d{1,4})/);if(s){const o=[parseInt(s[1],10),parseInt(s[2],10),parseInt(s[3],10)],r=o.find(M=>M>31);if(r!==void 0){o.splice(o.indexOf(r),1);const M=o.find(a=>a>12);M?(o.splice(o.indexOf(M),1),e=new Date(r,o[0]-1,M)):S.dateFormat[0][0]==="M"&&S.dateFormat[1][0]==="D"?(e=new Date(r,o[0]-1,o[1]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(r,o[1]-1,o[0]))):S.dateFormat[0][0]==="D"&&S.dateFormat[1][0]==="M"?(e=new Date(r,o[1]-1,o[0]),Math.abs(e.getTime()-Date.now())>36e5*24*10&&(e=new Date(r,o[0]-1,o[1]))):e=new Date(e)}else e=new Date(e)}else e=new Date(e)}else e=new Date(e);let t=d.t(`ra_dow_${W4[e.getDay()]}`).replace("ra_dow_","");return t+=`. ${e.getDate()} ${d.t(`ra_month_${R4[e.getMonth()]}`).replace("ra_month_","")}`,t}static renderTextWithA(e){let t=e.match(/||[^<]+<\/b>|[^<]+<\/i>/);if(t){const s=[];let o=1;do{const r=e.substring(0,t.index);if(e=e.substring((t.index||0)+t[0].length),r&&s.push(n.createElement("span",{key:`a${o++}`},r)),t[0].startsWith(""))s.push(n.createElement("b",{key:`a${o++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith(""))s.push(n.createElement("i",{key:`a${o++}`},t[0].substring(3,t[0].length-4)));else if(t[0].startsWith("([^<]*)||[^<]+<\/b>|[^<]+<\/i>/):null,!t&&e&&s.push(n.createElement("span",{key:`a${o++}`},e))}while(t);return s}return e}static getSmartName(e,t,s,o){var M,a;if(!t){if(!o)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const u=e;return(M=u==null?void 0:u.common)!=null&&M.custom&&u.common.custom[s]?u.common.custom[s].smartName:void 0}if(!o)return e[t].common.smartName;const r=e[t];return(a=r==null?void 0:r.common)!=null&&a.custom&&r.common.custom[s]&&r.common.custom[s].smartName||null}static getSmartNameFromObj(e,t,s){var r,M;if(!s)return!e.common||e&&!e.common?e.smartName:e.common.smartName;if(e&&!e.common)return e.smartName;const o=(M=(r=e==null?void 0:e.common)==null?void 0:r.custom)==null?void 0:M[t];return o?o.smartName:void 0}static enableSmartName(e,t,s){s?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName={}):e.common.smartName={}}static removeSmartName(e,t,s){s?e.common&&e.common.custom&&e.common.custom[t]&&(e.common.custom[t]=null):e.common.smartName=null}static updateSmartName(e,t,s,o,r,M){const a=d.getLanguage();if(typeof e.common.smartName=="string"){const u=e.common.smartName;e.common.smartName={},e.common.smartName[a]=u}if(e.native&&e.native.byON){delete e.native.byON;let u=e.common.smartName;u&&typeof u!="object"&&(u={en:u,[a]:u}),e.common.smartName=u}if(o!==void 0&&(M?(e.common.custom=e.common.custom||{},e.common.custom[r]=e.common.custom[r]||{},e.common.custom[r].smartName=e.common.custom[r].smartName||{},o?e.common.custom[r].smartName.smartType=o:delete e.common.custom[r].smartName.smartType):(e.common.smartName=e.common.smartName||{},o?e.common.smartName.smartType=o:delete e.common.smartName.smartType)),s!==void 0&&(M?(e.common.custom=e.common.custom||{},e.common.custom[r]=e.common.custom[r]||{},e.common.custom[r].smartName=e.common.custom[r].smartName||{},e.common.custom[r].smartName.byON=s):(e.common.smartName=e.common.smartName||{},e.common.smartName.byON=s)),t!==void 0){let u;if(M?(e.common.custom=e.common.custom||{},e.common.custom[r]=e.common.custom[r]||{},e.common.custom[r].smartName=e.common.custom[r].smartName||{},u=e.common.custom[r].smartName):(e.common.smartName=e.common.smartName||{},u=e.common.smartName),u[a]=t,u&&(!u[a]||u[a]===e.common.name&&(!e.common.role||e.common.role.includes("button")))){delete u[a];let N=!0;for(const l in u)if(Object.prototype.hasOwnProperty.call(u,l)){N=!1;break}if(N)if(M&&e.common.custom&&e.common.custom[r])e.common.custom[r].smartName.byON===void 0?delete e.common.custom[r]:(delete e.common.custom[r].en,delete e.common.custom[r].de,delete e.common.custom[r].ru,delete e.common.custom[r].nl,delete e.common.custom[r].pl,delete e.common.custom[r].it,delete e.common.custom[r].fr,delete e.common.custom[r].pt,delete e.common.custom[r].es,delete e.common.custom[r].uk,delete e.common.custom[r]["zh-cn"]);else if(e.common.smartName&&e.common.smartName.byON!==void 0){const l=e.common.smartName;delete l.en,delete l.de,delete l.ru,delete l.nl,delete l.pl,delete l.it,delete l.fr,delete l.pt,delete l.es,delete l.uk,delete l["zh-cn"]}else e.common.smartName=null}}}static disableSmartName(e,t,s){s?(e.common.custom=e.common.custom||{},e.common.custom[t]=e.common.custom[t]||{},e.common.custom[t].smartName=!1):e.common.smartName=!1}static copyToClipboard(e,t){return t&&(t.stopPropagation(),t.preventDefault()),Xn(e)}static getFileExtension(e){const t=(e||"").lastIndexOf(".");return t!==-1?e.substring(t+1).toLowerCase():null}static formatBytes(e){if(Math.abs(e)<1024)return`${e} B`;const t=["KB","MB","GB"];let s=-1;do e/=1024,++s;while(Math.abs(e)>=1024&&s186?`#000000${s||""}`:`#FFFFFF${s||""}`;const a=(255-o).toString(16),u=(255-r).toString(16),N=(255-M).toString(16);return`#${a.padStart(2,"0")}${u.padStart(2,"0")}${N.padStart(2,"0")}${s||""}`}static color2rgb(e){if(e==null||e===""||typeof e!="string")return!1;if(e.startsWith("rgba")){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else if(e.startsWith("rgb")){const t=e.match(/rgb?\((\d+),\s*(\d+),\s*(\d+)\)/);t&&(e=parseInt(t[1],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0")+parseInt(t[2],10).toString(16).padStart(2,"0"))}else e.startsWith("#")&&(e=e.slice(1));return e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e.length!==6&&e.length!==8?(console.warn(`Cannot invert color: ${e}`),!1):[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}static rgb2lab(e){let t=e[0]/255,s=e[1]/255,o=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let r=(t*.4124+s*.3576+o*.1805)/.95047,M=t*.2126+s*.7152+o*.0722,a=(t*.0193+s*.1192+o*.9505)/1.08883;return r=r>.008856?r**.33333333:7.787*r+.137931,M=M>.008856?M**.33333333:7.787*M+.137931,a=a>.008856?a**.33333333:7.787*a+.137931,[116*M-16,500*(r-M),200*(M-a)]}static colorDistance(e,t){const s=S.color2rgb(e),o=S.color2rgb(t);if(!s||!o)return 0;const r=S.rgb2lab(s),M=S.rgb2lab(o),a=r[0]-M[0],u=r[1]-M[1],N=r[2]-M[2],l=Math.sqrt(r[1]*r[1]+r[2]*r[2]),c=Math.sqrt(M[1]*M[1]+M[2]*M[2]),L=l-c;let j=u*u+N*N-L*L;j=j<0?0:Math.sqrt(j);const T=1+.045*l,D=1+.015*l,I=a,C=L/T,E=j/D,A=I*I+C*C+E*E;return A<0?0:A}static _toVal(e){let t,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e))for(let o=0;o{if(s=s.trim(),s){const o=s.split("="),r=decodeURIComponent(o[0]).trim();if(o.length>1){const M=decodeURIComponent(o[1]);if(M==="true")t[r]=!0;else if(M==="false")t[r]=!1;else{const a=parseFloat(M);a.toString()===M?t[r]=a:t[r]=M}}else t[r]=!0}}),t}static getParentId(e){const t=(e||"").toString().split(".");return t.length>1?(t.pop(),t.join(".")):null}static formatDate(e,t){if(!e)return"";let s;const o=(e.getMonth()+1).toString().padStart(2,"0"),r=e.getDate().toString().padStart(2,"0");return t==="MM/DD/YYYY"?s=`${o}/${r}/${e.getFullYear()}`:s=`${e.getFullYear()}-${o}-${r}`,s+=` ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`,s}static formatTime(e){if(e){e=Math.round(e);const t=Math.floor(e/(3600*24)),s=Math.floor(e%(3600*24)/3600),o=Math.floor(e%3600/60),r=e%60;return t?`${t}.${s.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`:s?`${s}:${o.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`:`0:${o.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`}return"0:00:00"}static MDtext2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static MDgetTitle(e){var r;const t=S.MDextractHeader(e),s=t.header;let o=t.body;if(!s.title){o=o.replace(/{[^}]*}/g,""),o=o.trim();const M=o.replace(/\r/g,"").split(` +`);for(let a=0;a{if(!M.trim())return;const n=M.indexOf(":");if(n!==-1){const u=M.substring(0,n).trim();let N=M.substring(n+1).trim();N=N.replace(/^['"]|['"]$/g,""),N==="true"?t[u]=!0:N==="false"?t[u]=!1:parseFloat(N).toString()===t[u]?t[u]=parseFloat(N):t[u]=N}else t[M.trim()]=!0}),e=e.substring(s+7))}return{header:t,body:e}}static MDremoveDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(s=>e=e.replace(s,"")),e}static generateFile(e,t){const s=document.createElement("a");s.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),s.setAttribute("download",e),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}static quality2text(e){const t=e&4294901760,s=fi[e];let o;return s?o=[s]:e&1?o=[fi[1],`0x${(e&65534).toString(16)}`]:e&2?o=[fi[2],`0x${(e&65533).toString(16)}`]:o=[`0x${e.toString(16)}`],t&&o.push(`0x${(t>>16).toString(16).toUpperCase()}`),o}static clone(e){return JSON.parse(JSON.stringify(e))}static getStates(e){var o;const t=(o=e==null?void 0:e.common)==null?void 0:o.states;let s;if(t)if(typeof t=="string"&&t[0]==="{")try{s=JSON.parse(t)}catch{console.error(`Cannot parse states: ${t}`),s=null}else if(typeof t=="string"){const r=t.split(";");s={};for(let M=0;Ms[M]=r):(e==null?void 0:e.common.type)==="string"?t.forEach(r=>s[r]=r):(e==null?void 0:e.common.type)==="boolean"&&(s.false=t[0],s.true=t[1])):typeof t=="object"&&(s=t);return s||null}static async getSvg(e){const s=await(await fetch(e)).blob();return new Promise(o=>{const r=new FileReader;r.onload=()=>{var M;return o(((M=r.result)==null?void 0:M.toString())||"")},r.readAsDataURL(s)})}static detectMimeType(e){const t=Object.keys(oM).find(s=>e.startsWith(s));return t?oM[t]:null}static isStableRepository(e){return!!(typeof e=="string"&&e.toLowerCase().startsWith("stable")||e&&typeof e!="string"&&e.find(t=>t.toLowerCase().startsWith("stable")))}static isStringInteger(e){return typeof e=="number"?Math.round(e)===e:parseInt(e,10).toString()===e}static isValidDate(e){return e instanceof Date&&!isNaN(e)}static getStyle(e,...t){const s={};for(let o=0;o{if(typeof t[o][r]=="function")s[r]=t[o][r](e);else if(typeof t[o][r]=="object"){const M=t[o][r];s[r]={},Object.keys(M).forEach(n=>{typeof M[n]=="function"?s[r][n]=M(e):(M[n]||M[n]===0)&&(s[r][n]=M[n])})}else(t[o][r]||t[o][r]===0)&&(s[r]=t[o][r])});return s}}const ki={buttonIcon:{marginRight:8}};class W4 extends a.Component{isIFrame;constructor(e){super(e);const t=e.newReact===void 0?!0:e.newReact;if(e.isIFrame!==void 0)this.isIFrame=e.isIFrame;else try{this.isIFrame=!t&&window.self!==window.top}catch{this.isIFrame=!t}}render(){const e=this.props.noTextOnButtons,t={borderRadius:this.props.theme.saveToolbar.button.borderRadius||3,height:this.props.theme.saveToolbar.button.height||32},s={bottom:this.isIFrame?38:0,left:this.props.paddingLeft||0,right:0,position:"absolute",background:this.props.theme.saveToolbar.background};return this.props.dense&&(s.minHeight=48),this.props.error&&(t.border="1px solid red"),a.createElement(g.Toolbar,{style:s},a.createElement(g.Fab,{variant:"extended","aria-label":"Save",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!1),style:t},a.createElement(m.Save,{style:e?void 0:ki.buttonIcon}),!e&&d.t("ra_Save")),a.createElement(g.Fab,{variant:"extended","aria-label":"Save and close",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!0),style:{...t,marginLeft:10}},a.createElement(m.Save,{style:e?void 0:ki.buttonIcon}),e?"+":d.t("ra_Save and close"),e&&a.createElement(m.Close,null)),a.createElement("div",{style:{flexGrow:1}}),a.createElement(g.Fab,{variant:"extended","aria-label":"Close",onClick:()=>this.props.onClose(),style:t},a.createElement(m.Close,{style:e?void 0:ki.buttonIcon}),!e&&d.t("ra_Close")))}}const rM={suppress:{fontSize:12},suppressRoot:{marginTop:"16px"}};class Zn extends b.Component{constructor(e){if(super(e),!this.props.dialogName&&this.props.suppressQuestionMinutes)throw new Error("dialogName required if suppressQuestionMinutes used");let t=!1;this.props.suppressQuestionMinutes&&(t=parseInt((window._localStorage||window.localStorage).getItem(this.props.dialogName),10)||0,t?Date.now()>t&&((window._localStorage||window.localStorage).removeItem(this.props.dialogName),t=!1):t=!1),this.state={suppress:t}}handleOk(){this.state.suppress&&(window._localStorage||window.localStorage).setItem(this.props.dialogName,Date.now()+(this.props.suppressQuestionMinutes||2)*6e4),this.props.onClose&&this.props.onClose(!0)}handleCancel(){this.props.onClose&&this.props.onClose(!1)}render(){return typeof this.state.suppress=="number"?(setTimeout(()=>this.props.onClose&&this.props.onClose(!0),100),null):a.createElement(g.Dialog,{open:!0,maxWidth:"md",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:(e,t)=>{t!=="backdropClick"&&t!=="escapeKeyDown"&&this.handleCancel()},"aria-labelledby":"ar_confirmation_dialog_title","aria-describedby":"ar_confirmation_dialog_description"},a.createElement(g.DialogTitle,{id:"ar_confirmation_dialog_title"},this.props.title||d.t("ra_Are you sure?")),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,{id:"ar_confirmation_dialog_description"},this.props.icon||null,this.props.text,this.props.suppressQuestionMinutes?a.createElement("br",null):null,this.props.suppressQuestionMinutes?a.createElement(g.FormControlLabel,{sx:{"& .FormControlLabel-label":rM.suppress,"&.FormControlLabel-root":rM.suppressRoot},control:a.createElement(g.Checkbox,{id:`ar_dialog_confirm_suppress_${this.props.dialogName||""}`,checked:!!this.state.suppress,onChange:()=>this.setState({suppress:!this.state.suppress})}),label:this.props.suppressText||d.t("ra_Suppress question for next %s minutes",(this.props.suppressQuestionMinutes||2).toString())}):null)),a.createElement(g.DialogActions,null,a.createElement(g.Button,{id:`ar_dialog_confirm_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:a.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),a.createElement(g.Button,{id:`ar_dialog_confirm_cancel_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:a.createElement(m.Close,null)},this.props.cancel||d.t("ra_Cancel"))))}}class Xn extends b.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return a.createElement(g.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},a.createElement(g.DialogTitle,{id:"ar_alert_dialog_title"},this.props.title||d.t("ra_Error")),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,{id:"ar_alert_dialog_description"},this.props.text||d.t("ra_Unknown error!"))),a.createElement(g.DialogActions,null,a.createElement(g.Button,{id:"ar_dialog_error_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:a.createElement(m.Check,null)},d.t("ra_Ok"))))}}const R4="Actions",J4="Append",B4="Cancel",F4="Categories",G4="Checked",H4="Delete",V4="Close",Z4="Commercial",X4="Configure",K4="Connected",q4="Continue",eL="Copied",tL="Create",sL="Crop",iL="Delete",oL="Delete",rL="Discard",ML="Disconnected",nL="Error",aL="Filter",cL="Friday",uL="Latitude",NL="Logout",lL="Longitude",LL="Message",jL="Monday",gL="Name",TL="Objects",yL="Ok",DL="Product",dL="Rename/Move/Copy",zL="Repeat",IL="Replace",wL="Root",CL="Saturday",hL="Save",AL="Selected",pL="States",mL="Sunday",OL="Thursday",EL="Timestamp",_L="Tuesday",SL="Update",xL="Valid till",fL="Value",kL="Version",YL="Wednesday",QL="Width",UL="Yes",vL="different",bL="Everyone can read object",$L="Everyone can read state",PL="Everyone can write object",WL="Everyone can write state",RL="Group can read object",JL="Group can read state",BL="Group can write object",FL="Group can write state",GL="Owner can read object",HL="Owner can read state",VL="Owner can write object",ZL="Owner can write state",XL="Buttons",KL="Changed from",qL="close",e0="Create boolean state",t0="Create channel",s0="Create device",i0="Create number state",o0="Create state",r0="Create string state",M0="days",n0="Fr",a0="Mo",c0="Sa",u0="Su",N0="Th",l0="Tu",L0="We",j0="Expert mode",g0="FALSE",T0="All files",y0="Audio",D0="Code/JSON",d0="Images",z0="Text",I0="Video",w0="Settings",C0="without",h0="Function",A0="ID",p0="Name",m0="Role",O0="Room",E0="Type",_0="Invalid settings",S0="Last change",x0="locally",f0="Apr",k0="Aug",Y0="Dec",Q0="Feb",U0="Jan",v0="Jul",b0="Jun",$0="Mai",P0="Mar",W0="Nov",R0="Oct",J0="Sep",B0="Apr",F0="Aug",G0="Dec",H0="Feb",V0="Jan",Z0="Jul",X0="Jun",K0="Mai",q0="Mar",ej="Nov",tj="Oct",sj="Sep",ij="none",oj="Object changed by",rj="Object last changed at",Mj="Settings from other adapter %s",nj="Quality code",aj="repeat",cj='To select folder, just hold the key "shift" by clicking the folder.',uj="Show all",Nj="State changed by",lj="Object changed from",Lj="Timestamp",jj="Acknowledged",gj="Comment",Tj="Copy the state value",yj="Hold Cltr/⌘ key to open the link",Dj="Custom settings",dj="Delete object",zj="Edit object",Ij="Edit the state value",wj="Expires in",Cj="From",hj="Last changed",Aj="Quality",pj="Time stamp",mj="User",Oj="Value",Ej="TRUE",_j="Value",Sj="Warning: The CRON job will run every minute during the specified period!",xj="Warning: The CRON job will run every second during the specified period!",fj="CRON",kj="Date",Yj="Dates",Qj="Day",Uj="Day of week",vj="Every",bj="every N days",$j="every Nth day of the week",Pj="every N day of week",Wj="every N hours",Rj="every N minutes",Jj="every N months",Bj="every N seconds",Fj="every day",Gj="every day of the week",Hj="every day of the week",Vj="every hour",Zj="every minute",Xj="every month",Kj="every second",qj="From",eg="Hours",tg="Interval",sg="Interval between",ig="Invalid CRON",og="Minutes",rg="months",Mg="Once",ng="Period",ag="Seconds",cg="Simple",ug="Specific time",Ng="specific dates",lg="specific day(s) of the week",Lg="specific day of weeks",jg="specific hours",gg="specific minutes",Tg="specific months",yg="specific seconds",Dg="Time",dg="To",zg="Wizard",Ig="all",wg="Astro day",Cg="Astro night",hg="Dawn",Ag="Dusk",pg="Golden hour",mg="Golden hour end",Og="Nadir",Eg="Nautical dawn",_g="Nautical dusk",Sg="Night",xg="Night end",fg="Solar noon",kg="Sunrise",Yg="Sunrise end",Qg="Sunset",Ug="Sunset start",vg="at",bg="at %s",$g="every day",Pg="every hour",Wg="every minute",Rg="every month",Jg="every %s day",Bg="every %s hours",Fg="every %s minutes",Gg="every %s months",Hg="every %s weeks",Vg="every %s years",Zg="every week",Xg="every year",Kg="from %s to %s",qg="never",eT="on %s of %s",tT="on %s and %s of",sT="on every date of",iT="%s",oT="%s and %s",rT="on %s",MT="on %s and %s",nT="on weekends",aT="on working days",cT="will ne be not executed any more, because start is in the past",uT="on %s",NT="from %s",lT="Execute from to",LT="to %s",jT="every",gT="Specific time",TT="from",yT="From-to",DT="Interval time",dT="invert",zT="none",IT="on",wT="Period",CT="Daily",hT="Dates",AT="Day",pT="Every",mT="Every day",OT="Every month",ET="Every week",_T="Every year",ST="Hours",xT="Minutes",fT="month",kT="Monthly",YT="Once",QT="Specific months",UT="Week",vT="Weekdays",bT="Weekend",$T="Weekly",PT="Workdays",WT="Year",RT="Yearly",JT="Specific time",BT="Time",FT="to",GT="Valid",HT="from",VT="to",ZT="Whole day",XT="every month",KT={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license",ra_Actions:R4,"ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:J4,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:B4,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:F4,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:G4,ra_Clear:H4,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:V4,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:Z4,ra_Configure:X4,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:K4,ra_Continue:q4,ra_Copied:eL,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:tL,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:sL,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:iL,ra_Delete:oL,"ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:rL,ra_Disconnected:ML,"ra_Do not ask for next 2 hours in this session":"Do not ask for next 2 hours in this session","ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit full path":"Edit full path","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value","ra_Enter the code from that page here":"Enter the code from that page here",ra_Error:nL,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:aL,"ra_Filter and Data Actions":"Filter and Data Actions","ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:cL,"ra_Get %s access":"Get %s access","ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_If the button above does not work, you can authorize manually this app by visiting this url":"If the button above does not work, you can authorize manually this app by visiting this url","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:uL,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist","ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Logout:NL,ra_Longitude:lL,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:LL,ra_Monday:jL,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:gL,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:TL,ra_Ok:yL,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please allow popups in your browser for this page!":"Please allow popups in your browser for this page!","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Press ENTER Key to add new item":"Press ENTER Key to add new item","ra_Private certificate":"Private certificate",ra_Product:DL,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Rename_Move_Copy:dL,"ra_Renew %s access":"Renew %s access",ra_Repeat:zL,ra_Replace:IL,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:wL,ra_Saturday:CL,ra_Save:hL,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:AL,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Session will expire in %s seconds. Continue?":"Session will expire in %s seconds. Continue?","ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:pL,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Successfully authorized. Token valid till %s and will be automatically renewed.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Successfully authorized. Token valid till %s but it can expire as the instance is not running.","ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:mL,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:OL,ra_Timestamp:EL,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:_L,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:SL,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:xL,ra_Value:fL,ra_Version:kL,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:YL,ra_Width:QL,ra_Yes:UL,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text",ra___different__:vL,ra_aclEveryone_read_object:bL,ra_aclEveryone_read_state:$L,ra_aclEveryone_write_object:PL,ra_aclEveryone_write_state:WL,ra_aclGroup_read_object:RL,ra_aclGroup_read_state:JL,ra_aclGroup_write_object:BL,ra_aclGroup_write_state:FL,ra_aclOwner_read_object:GL,ra_aclOwner_read_state:HL,ra_aclOwner_write_object:VL,ra_aclOwner_write_state:ZL,ra_buttons:XL,ra_changedFrom:KL,ra_close:qL,ra_create_boolean_state:e0,ra_create_channel:t0,ra_create_device:s0,ra_create_number_state:i0,ra_create_state:o0,ra_create_string_state:r0,ra_daysShortText:M0,ra_dow_Fr:n0,ra_dow_Mo:a0,ra_dow_Sa:c0,ra_dow_Su:u0,ra_dow_Th:N0,ra_dow_Tu:l0,ra_dow_We:L0,ra_expertMode:j0,ra_false:g0,ra_fileType_all:T0,ra_fileType_audio:y0,ra_fileType_code:D0,ra_fileType_images:d0,ra_fileType_txt:z0,ra_fileType_video:I0,"ra_fileType_video,":"Video",ra_filter_customs:w0,ra_filter_customs_without:C0,ra_filter_func:h0,ra_filter_id:A0,ra_filter_name:p0,ra_filter_role:m0,ra_filter_room:O0,ra_filter_type:E0,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:_0,ra_lastChange:S0,ra_locally:x0,ra_month_Apr:f0,ra_month_Aug:k0,ra_month_Dec:Y0,ra_month_Feb:Q0,ra_month_Jan:U0,ra_month_Jul:v0,ra_month_Jun:b0,ra_month_Mai:$0,ra_month_Mar:P0,ra_month_Nov:W0,ra_month_Oct:R0,ra_month_Sep:J0,ra_months_Apr:B0,ra_months_Aug:F0,ra_months_Dec:G0,ra_months_Feb:H0,ra_months_Jan:V0,ra_months_Jul:Z0,ra_months_Jun:X0,ra_months_Mai:K0,ra_months_Mar:q0,ra_months_Nov:ej,ra_months_Oct:tj,ra_months_Sep:sj,"ra_no confirm for 5 mins":"no confirm for 5 mins",ra_none:ij,ra_object_changed_by:oj,ra_object_changed_by_user:rj,ra_otherConfig:Mj,ra_qualityCode:nj,ra_repeat:aj,ra_select_folder_hint:cj,ra_show_all:uj,ra_state_changed_by:Nj,ra_state_changed_from:lj,ra_timestamp:Lj,ra_tooltip_ack:jj,ra_tooltip_comment:gj,ra_tooltip_copyState:Tj,ra_tooltip_ctrlForLink:yj,ra_tooltip_customConfig:Dj,ra_tooltip_deleteObject:dj,ra_tooltip_editObject:zj,ra_tooltip_editState:Ij,ra_tooltip_expire:wj,ra_tooltip_from:Cj,ra_tooltip_lc:hj,ra_tooltip_quality:Aj,ra_tooltip_ts:pj,ra_tooltip_user:mj,ra_tooltip_value:Oj,ra_true:Ej,"ra_use seconds":"use seconds",ra_val:_j,"ra_via internet":"via internet",ra_warning_every_minute:Sj,ra_warning_every_second:xj,sc_cron:fj,sc_date:kj,sc_dates:Yj,sc_dow:Qj,sc_dows:Uj,sc_every:vj,sc_everyN_dates:bj,sc_everyN_dow:$j,sc_everyN_dows:Pj,sc_everyN_hours:Wj,sc_everyN_minutes:Rj,sc_everyN_months:Jj,sc_everyN_seconds:Bj,sc_every_dates:Fj,sc_every_dow:Gj,sc_every_dows:Hj,sc_every_hours:Vj,sc_every_minutes:Zj,sc_every_months:Xj,sc_every_seconds:Kj,sc_from:qj,sc_hours:eg,sc_interval:tg,sc_intervalBetween:sg,sc_invalid_cron:ig,sc_minutes:og,sc_months:rg,sc_once:Mg,sc_period:ng,sc_seconds:ag,sc_simple:cg,sc_specific:ug,sc_specific_dates:Ng,sc_specific_dow:lg,sc_specific_dows:Lg,sc_specific_hours:jg,sc_specific_minutes:gg,sc_specific_months:Tg,sc_specific_seconds:yg,sc_time:Dg,sc_to:dg,sc_wizard:zg,sch_all:Ig,sch_astroDay:wg,sch_astroNight:Cg,sch_astro_dawn:hg,sch_astro_dusk:Ag,sch_astro_goldenHour:pg,sch_astro_goldenHourEnd:mg,sch_astro_nadir:Og,sch_astro_nauticalDawn:Eg,sch_astro_nauticalDusk:_g,sch_astro_night:Sg,sch_astro_nightEnd:xg,sch_astro_solarNoon:fg,sch_astro_sunrise:kg,sch_astro_sunriseEnd:Yg,sch_astro_sunset:Qg,sch_astro_sunsetStart:Ug,sch_at:vg,sch_desc_atTime:bg,sch_desc_everyDay:$g,sch_desc_everyHour:Pg,sch_desc_everyMinute:Wg,sch_desc_everyMonth:Rg,sch_desc_everyNDay:Jg,sch_desc_everyNHours:Bg,sch_desc_everyNMinutes:Fg,sch_desc_everyNMonths:Gg,sch_desc_everyNWeeks:Hg,sch_desc_everyNYears:Vg,sch_desc_everyWeek:Zg,sch_desc_everyYear:Xg,sch_desc_intervalFromTo:Kg,sch_desc_never:qg,sch_desc_onDate:eT,sch_desc_onDates:tT,sch_desc_onEveryDate:sT,sch_desc_onMonth:iT,sch_desc_onMonths:oT,sch_desc_onWeekday:rT,sch_desc_onWeekdays:MT,sch_desc_onWeekends:nT,sch_desc_onWorkdays:aT,sch_desc_onceInPast:cT,sch_desc_once_on:uT,sch_desc_validFrom:NT,sch_desc_validFromTo:lT,sch_desc_validTo:LT,sch_every:jT,sch_exactTime:gT,sch_from:TT,sch_fromTo:yT,sch_intervalTime:DT,sch_invert:dT,sch_no_one:zT,sch_on:IT,sch_period:wT,sch_periodDaily:CT,sch_periodDates:hT,sch_periodDay:AT,sch_periodEvery:pT,sch_periodEveryDay:mT,sch_periodEveryMonth:OT,sch_periodEveryWeek:ET,sch_periodEveryYear:_T,sch_periodHours:ST,sch_periodMinutes:xT,sch_periodMonth:fT,sch_periodMonthly:kT,sch_periodOnce:YT,sch_periodSpecificMonths:QT,sch_periodWeek:UT,sch_periodWeekdays:vT,sch_periodWeekend:bT,sch_periodWeekly:$T,sch_periodWorkdays:PT,sch_periodYear:WT,sch_periodYearly:RT,sch_specificTime:JT,sch_time:BT,sch_to:FT,sch_valid:GT,sch_validFrom:HT,sch_validTo:VT,sch_wholeDay:ZT,sch_yearEveryMonth:XT},qT="Aktionen",ey="Anhängen",ty="Abbrechen",sy="Kategorien",iy="Geprüft",oy="Löschen",ry="Schließen",My="Kommerziell",ny="Konfigurieren",ay="Verbunden",cy="Weitermachen",uy="Kopiert",Ny="Erstellen",ly="Ernte",Ly="Entf",jy="Löschen",gy="Verwerfen",Ty="Getrennt",yy="Fehler",Dy="Filter",dy="Freitag",zy="Breite",Iy="Ausloggen",wy="Längengrad",Cy="Meldung",hy="Montag",Ay="Name",py="Objekte",my="OK",Oy="Produkt",Ey="Umbenennen/Verschieben/Kopieren",_y="Wiederholen",Sy="Ersetzen",xy="Anfang",fy="Samstag",ky="Speichern",Yy="Ausgewählt",Qy="Zustände",Uy="Sonntag",vy="Donnerstag",by="Zeitstempel",$y="Dienstag",Py="Aktualisieren",Wy="Gültig bis",Ry="Wert",Jy="Ausführung",By="Mittwoch",Fy="Breite",Gy="Ja",Hy="unterschiedlich",Vy="Jeder kann Objekt lesen",Zy="Jeder kann Zustand lesen",Xy="Jeder kann ein Objekt schreiben",Ky="Jeder kann Zustand schreiben",qy="Gruppe kann Objekt lesen",eD="Gruppe kann Status lesen",tD="Gruppe kann Objekt schreiben",sD="Gruppe kann Status schreiben",iD="Besitzer kann Objekt lesen",oD="Besitzer kann Zustand lesen",rD="Besitzer kann Objekt schreiben",MD="Besitzer kann Zustand schreiben",nD="Tasten",aD="Geändert von",cD="Schließen",uD="Booleschen Zustand erstellen",ND="Kanal erstellen",lD="Gerät erstellen",LD="Nummern-Zustand erstellen",jD="Zustand erstellen",gD="String-Zustand erstellen",TD="T.",yD="Fr",DD="Mo",dD="Sa",zD="So",ID="Do",wD="Di",CD="Mi",hD="Expertenmodus",AD="FALSCH",pD="Alle Dateien",mD="Audio",OD="Code/JSON",ED="Bilder",_D="Text",SD="Video",xD="Einstellungen",fD="ohne",kD="Funktion",YD="ID",QD="Name",UD="Rolle",vD="Raum",bD="Typ",$D="Ungültige Einstellungen",PD="Letzte Änderung",WD="örtlich",RD="Apr",JD="Aug",BD="Dez",FD="Feb",GD="Jan",HD="Jul",VD="Jun",ZD="Mai",XD="Mär",KD="Nov",qD="Okt",ed="Sep",td="Apr",sd="Aug",id="Dez",od="Feb",rd="Jan",Md="Jul",nd="Jun",ad="Mai",cd="Mär",ud="Nov",Nd="Okt",ld="Sep",Ld="kein",jd="Objekt geändert von",gd="Objekt zuletzt geändert um",Td="Einstellungen von anderen Adaptern %s",yd="Qualitätscode",Dd="wiederholen",dd='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',zd="Alle anzeigen",Id="Zustand geändert durch",wd="Objekt geändert von",Cd="Zeitstempel",hd="Bestätigt",Ad="Kommentar",pd="Statuswert kopieren",md="Strg/⌘-Taste gedrückt halten, um den Link zu öffnen",Od="Benutzerdefinierte Einstellungen",Ed="Objekt löschen",_d="Objekt bearbeiten",Sd="Statuswert bearbeiten",xd="Läuft ab in",fd="Von",kd="Zuletzt geändert",Yd="Qualität",Qd="Zeitstempel",Ud="Benutzer",vd="Wert",bd="WAHR",$d="Wert",Pd="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",Wd="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",Rd="CRON",Jd="Datum",Bd="Tage",Fd="Tag",Gd="Wochentage",Hd="Jeden",Vd="alle N Tage",Zd="jeden x-ten Tag der Woche",Xd="alle N Wochentage",Kd="alle N Stunden",qd="alle N Minuten",ez="alle N Monate",tz="alle N Sekunden",sz="jeden Tag",iz="jeden Tag der Woche",oz="jeden Tag der Woche",rz="jede Stunde",Mz="jede Minute",nz="jeden Monat",az="jede Sekunde",cz="Von",uz="Stunden",Nz="Intervall",lz="Intervall zwischen",Lz="Ungültiger CRON",jz="Minuten",gz="Monate",Tz="Einmal",yz="Zeitraum",Dz="Sekunden",dz="Einfach",zz="Bestimmte Zeit",Iz="bestimmte Tage",wz="bestimmte(r) Tag(e) der Woche",Cz="bestimmten Wochentag",hz="bestimmte Stunden",Az="bestimmte Minuten",pz="bestimmte Monate",mz="bestimmte Sekunden",Oz="Zeit",Ez="Bis",_z="Wizard",Sz="alle",xz="Astronomischer Tag",fz="Astronomische Nacht",kz="Morgendämmerung",Yz="Abenddämmerung",Qz="Goldene Stunde",Uz="Goldene Stundenende",vz="Nadir",bz="Nautische Morgendämmerung",$z="Nautische Abenddämmerung",Pz="Nacht",Wz="Nachtende",Rz="Sonnenmittag",Jz="Sonnenaufgang",Bz="Sonnenaufgangende",Fz="Sonnenuntergang",Gz="Sonnenuntergangstart",Hz="am",Vz="um %s",Zz="jeden Tag",Xz="jede Stunde",Kz="jede Minute",qz="jeden Monat",eI="jeden %s Tag",tI="alle %s Stunden",sI="alle %s Minuten",iI="alle %s Monate",oI="alle %s Wochen",rI="alle %s Jahre",MI="jede Woche",nI="jedes Jahr",aI="von %s bis %s",cI="noch nie",uI="am %s von %s",NI="am %s und %s von",lI="an jedem Datum von",LI="%s",jI="%s und %s",gI="auf %s",TI="auf %s und %s",yI="an Wochenenden",DI="an Werktagen",dI="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",zI="auf %s",II="von %s",wI="Ausführen von bis",CI="bis %s",hI="jeden",AI="Bestimmte Zeit",pI="von",mI="Von bis",OI="Zeitintervall",EI="umkehren",_I="keiner",SI="am",xI="Zeitraum",fI="Täglich",kI="Daten",YI="Tag",QI="Jeden",UI="Jeden Tag",vI="Jeden Monat",bI="Jede Woche",$I="Jedes Jahr",PI="Stunden",WI="Minuten",RI="Monat",JI="Monatlich",BI="Einmal",FI="Bestimmte Monate",GI="Woche",HI="Wochentage",VI="Wochenende",ZI="Wöchentlich",XI="Arbeitstage",KI="Jahr",qI="Jährlich",ew="Bestimmte Zeit",tw="Zeit",sw="zu",iw="Gültigkeit",ow="von",rw="bis",Mw="Ganzer Tag",nw="jeden Monat",aw={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren",ra_Actions:qT,"ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:ey,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:ty,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:sy,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:iy,ra_Clear:oy,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:ry,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:My,ra_Configure:ny,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:ay,ra_Continue:cy,ra_Copied:uy,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:Ny,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:ly,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:Ly,ra_Delete:jy,"ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:gy,ra_Disconnected:Ty,"ra_Do not ask for next 2 hours in this session":"Fragen Sie nicht nach den nächsten 2 Stunden in dieser Sitzung","ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit full path":"Vollständigen Pfad bearbeiten","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten","ra_Enter the code from that page here":"Geben Sie den Code von dieser Seite hier ein",ra_Error:yy,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:Dy,"ra_Filter and Data Actions":"Filter- und Datenaktionen","ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:dy,"ra_Get %s access":"%s Zugriff erhalten","ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:zy,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Logout:Iy,ra_Longitude:wy,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:Cy,ra_Monday:hy,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:Ay,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:py,ra_Ok:my,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please allow popups in your browser for this page!":"Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Press ENTER Key to add new item":"Die Eingabetaste drücken, um ein neues Element hinzuzufügen","ra_Private certificate":"Privates Zertifikat",ra_Product:Oy,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Rename_Move_Copy:Ey,"ra_Renew %s access":"%s Zugriff erneuern",ra_Repeat:_y,ra_Replace:Sy,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:xy,ra_Saturday:fy,ra_Save:ky,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:Yy,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Session will expire in %s seconds. Continue?":"Die Sitzung läuft in %s Sekunden ab. Fortfahren?","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:Qy,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.","ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:Uy,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:vy,ra_Timestamp:by,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:$y,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:Py,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:Wy,ra_Value:Ry,ra_Version:Jy,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:By,ra_Width:Fy,ra_Yes:Gy,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben",ra___different__:Hy,ra_aclEveryone_read_object:Vy,ra_aclEveryone_read_state:Zy,ra_aclEveryone_write_object:Xy,ra_aclEveryone_write_state:Ky,ra_aclGroup_read_object:qy,ra_aclGroup_read_state:eD,ra_aclGroup_write_object:tD,ra_aclGroup_write_state:sD,ra_aclOwner_read_object:iD,ra_aclOwner_read_state:oD,ra_aclOwner_write_object:rD,ra_aclOwner_write_state:MD,ra_buttons:nD,ra_changedFrom:aD,ra_close:cD,ra_create_boolean_state:uD,ra_create_channel:ND,ra_create_device:lD,ra_create_number_state:LD,ra_create_state:jD,ra_create_string_state:gD,ra_daysShortText:TD,ra_dow_Fr:yD,ra_dow_Mo:DD,ra_dow_Sa:dD,ra_dow_Su:zD,ra_dow_Th:ID,ra_dow_Tu:wD,ra_dow_We:CD,ra_expertMode:hD,ra_false:AD,ra_fileType_all:pD,ra_fileType_audio:mD,ra_fileType_code:OD,ra_fileType_images:ED,ra_fileType_txt:_D,ra_fileType_video:SD,"ra_fileType_video,":"Video",ra_filter_customs:xD,ra_filter_customs_without:fD,ra_filter_func:kD,ra_filter_id:YD,ra_filter_name:QD,ra_filter_role:UD,ra_filter_room:vD,ra_filter_type:bD,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:$D,ra_lastChange:PD,ra_locally:WD,ra_month_Apr:RD,ra_month_Aug:JD,ra_month_Dec:BD,ra_month_Feb:FD,ra_month_Jan:GD,ra_month_Jul:HD,ra_month_Jun:VD,ra_month_Mai:ZD,ra_month_Mar:XD,ra_month_Nov:KD,ra_month_Oct:qD,ra_month_Sep:ed,ra_months_Apr:td,ra_months_Aug:sd,ra_months_Dec:id,ra_months_Feb:od,ra_months_Jan:rd,ra_months_Jul:Md,ra_months_Jun:nd,ra_months_Mai:ad,ra_months_Mar:cd,ra_months_Nov:ud,ra_months_Oct:Nd,ra_months_Sep:ld,"ra_no confirm for 5 mins":"5 Minuten lang keine Bestätigung",ra_none:Ld,ra_object_changed_by:jd,ra_object_changed_by_user:gd,ra_otherConfig:Td,ra_qualityCode:yd,ra_repeat:Dd,ra_select_folder_hint:dd,ra_show_all:zd,ra_state_changed_by:Id,ra_state_changed_from:wd,ra_timestamp:Cd,ra_tooltip_ack:hd,ra_tooltip_comment:Ad,ra_tooltip_copyState:pd,ra_tooltip_ctrlForLink:md,ra_tooltip_customConfig:Od,ra_tooltip_deleteObject:Ed,ra_tooltip_editObject:_d,ra_tooltip_editState:Sd,ra_tooltip_expire:xd,ra_tooltip_from:fd,ra_tooltip_lc:kd,ra_tooltip_quality:Yd,ra_tooltip_ts:Qd,ra_tooltip_user:Ud,ra_tooltip_value:vd,ra_true:bd,"ra_use seconds":"Sekunden benutzen",ra_val:$d,"ra_via internet":"übers Internet",ra_warning_every_minute:Pd,ra_warning_every_second:Wd,sc_cron:Rd,sc_date:Jd,sc_dates:Bd,sc_dow:Fd,sc_dows:Gd,sc_every:Hd,sc_everyN_dates:Vd,sc_everyN_dow:Zd,sc_everyN_dows:Xd,sc_everyN_hours:Kd,sc_everyN_minutes:qd,sc_everyN_months:ez,sc_everyN_seconds:tz,sc_every_dates:sz,sc_every_dow:iz,sc_every_dows:oz,sc_every_hours:rz,sc_every_minutes:Mz,sc_every_months:nz,sc_every_seconds:az,sc_from:cz,sc_hours:uz,sc_interval:Nz,sc_intervalBetween:lz,sc_invalid_cron:Lz,sc_minutes:jz,sc_months:gz,sc_once:Tz,sc_period:yz,sc_seconds:Dz,sc_simple:dz,sc_specific:zz,sc_specific_dates:Iz,sc_specific_dow:wz,sc_specific_dows:Cz,sc_specific_hours:hz,sc_specific_minutes:Az,sc_specific_months:pz,sc_specific_seconds:mz,sc_time:Oz,sc_to:Ez,sc_wizard:_z,sch_all:Sz,sch_astroDay:xz,sch_astroNight:fz,sch_astro_dawn:kz,sch_astro_dusk:Yz,sch_astro_goldenHour:Qz,sch_astro_goldenHourEnd:Uz,sch_astro_nadir:vz,sch_astro_nauticalDawn:bz,sch_astro_nauticalDusk:$z,sch_astro_night:Pz,sch_astro_nightEnd:Wz,sch_astro_solarNoon:Rz,sch_astro_sunrise:Jz,sch_astro_sunriseEnd:Bz,sch_astro_sunset:Fz,sch_astro_sunsetStart:Gz,sch_at:Hz,sch_desc_atTime:Vz,sch_desc_everyDay:Zz,sch_desc_everyHour:Xz,sch_desc_everyMinute:Kz,sch_desc_everyMonth:qz,sch_desc_everyNDay:eI,sch_desc_everyNHours:tI,sch_desc_everyNMinutes:sI,sch_desc_everyNMonths:iI,sch_desc_everyNWeeks:oI,sch_desc_everyNYears:rI,sch_desc_everyWeek:MI,sch_desc_everyYear:nI,sch_desc_intervalFromTo:aI,sch_desc_never:cI,sch_desc_onDate:uI,sch_desc_onDates:NI,sch_desc_onEveryDate:lI,sch_desc_onMonth:LI,sch_desc_onMonths:jI,sch_desc_onWeekday:gI,sch_desc_onWeekdays:TI,sch_desc_onWeekends:yI,sch_desc_onWorkdays:DI,sch_desc_onceInPast:dI,sch_desc_once_on:zI,sch_desc_validFrom:II,sch_desc_validFromTo:wI,sch_desc_validTo:CI,sch_every:hI,sch_exactTime:AI,sch_from:pI,sch_fromTo:mI,sch_intervalTime:OI,sch_invert:EI,sch_no_one:_I,sch_on:SI,sch_period:xI,sch_periodDaily:fI,sch_periodDates:kI,sch_periodDay:YI,sch_periodEvery:QI,sch_periodEveryDay:UI,sch_periodEveryMonth:vI,sch_periodEveryWeek:bI,sch_periodEveryYear:$I,sch_periodHours:PI,sch_periodMinutes:WI,sch_periodMonth:RI,sch_periodMonthly:JI,sch_periodOnce:BI,sch_periodSpecificMonths:FI,sch_periodWeek:GI,sch_periodWeekdays:HI,sch_periodWeekend:VI,sch_periodWeekly:ZI,sch_periodWorkdays:XI,sch_periodYear:KI,sch_periodYearly:qI,sch_specificTime:ew,sch_time:tw,sch_to:sw,sch_valid:iw,sch_validFrom:ow,sch_validTo:rw,sch_wholeDay:Mw,sch_yearEveryMonth:nw},cw="Действия",uw="Добавить",Nw="Отмена",lw="Категории",Lw="Проверено",jw="Удалить",gw="Закрыть",Tw="Коммерческая",yw="Настроить",Dw="Соединение установлено",dw="Продолжать",zw="скопировано",Iw="Создать",ww="Обрезать",Cw="Delete",hw="Удалить",Aw="Отказаться",pw="Отключено",mw="Ошибка",Ow="Фильтр",Ew="Пятница",_w="Широта",Sw="Выйти",xw="Долгота",fw="Сообщение",kw="Понедельник",Yw="Имя",Qw="Объекты",Uw="Ok",vw="Продукт",bw="Переименовать/Переместить/Копировать",$w="Повторение",Pw="Заменять",Ww="Начало",Rw="Суббота",Jw="Сохранить",Bw="выбранный",Fw="Состояния",Gw="Воскресенье",Hw="Четверг",Vw="Времени",Zw="Вторник",Xw="Обновить",Kw="Годен до",qw="Значение",eC="Версия",tC="Среда",sC="Ширина",iC="Да",oC="разное",rC="Каждый может читать объект",MC="Каждый может читать состояние",nC="Каждый может написать объект",aC="Каждый может написать состояние",cC="Группа может читать объект",uC="Группа может читать состояние",NC="Группа может писать объект",lC="Группа может записывать состояние",LC="Владелец может читать объект",jC="Владелец может читать состояние",gC="Владелец может писать объект",TC="Владелец может писать состояние",yC="Кнопки",DC="Изменено с",dC="Закрыть",zC="Создать логическое состояние",IC="Создать канал",wC="Создать устройство",CC="Создать состояние номера",hC="Создать состояние",AC="Создать состояние строки",pC="д.",mC="Пт",OC="Пн",EC="Сб",_C="Вс",SC="Чт",xC="Вт",fC="Ср",kC="Экспертный режим",YC="ЛОЖЬ",QC="Все файлы",UC="Аудио",vC="Код/JSON",bC="Картинки",$C="Текст",PC="видео",WC="настройки",RC="без",JC="функция",BC="ID",FC="Имя",GC="роль",HC="комната",VC="Тип",ZC="Неверные настройки",XC="Последнее изменение",KC="локально",qC="Апр",eh="Авг",th="Дек",sh="Фев",ih="Янв",oh="Июл",rh="Июн",Mh="Май",nh="Мрт",ah="Ноя",ch="Окт",uh="Сен",Nh="Апр",lh="Авг",Lh="Дек",jh="Фев",gh="Янв",Th="Июнь",yh="Июль",Dh="Май",dh="Март",zh="Ноя",Ih="Окт",wh="Сен",Ch="ничего",hh="Объект изменен",Ah="Последний раз объект изменен в",ph="Настройки из другого адаптера %s",mh="Код качества",Oh="повтор",Eh="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",_h="Показать все",Sh="Состояние изменено",xh="Объект изменен с",fh="Отметка времени",kh="Подтверждено",Yh="Комментарий",Qh="Скопируйте значение состояния",Uh="Удерживайте клавишу Cltr/⌘, чтобы открыть ссылку",vh="Пользовательские настройки",bh="Удалить объект",$h="Редактировать объект",Ph="Изменить значение состояния",Wh="Истекает через",Rh="От",Jh="Последнее изменение",Bh="Качество",Fh="Отметка времени",Gh="пользователь",Hh="Значение",Vh="истинный",Zh="Значение",Xh="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",Kh="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",qh="CRON",e1="Дата",t1="Даты",s1="День",i1="День недели",o1="каждый(ую/ые)",r1="каждый N день",M1="каждый N-й день недели",n1="каждый N день недели",a1="каждые N часов",c1="каждые N минут",u1="каждые N месяцев",N1="каждые N секунд",l1="каждый день",L1="Каждый день недели",j1="каждый день недели",g1="каждый час",T1="каждую минуту",y1="каждый месяц",D1="каждую секунду",d1="От",z1="часы",I1="Интервал",w1="Интервал между",C1="Неверный CRON",h1="минуты",A1="Месяцы",p1="один раз",m1="Период",O1="секунды",E1="Просто",_1="Конкретное время",S1="конкретные даты",x1="конкретный день(а) недели",f1="конкретный день недели",k1="конкретные часы",Y1="конкретные минуты",Q1="конкретные месяцы",U1="конкретные секунды",v1="Время",b1="До",$1="Форма",P1="все",W1="днём",R1="ночью",J1="Рассвет",B1="Сумерки",F1="Золотой час",G1="Конец золотого часа",H1="Надир",V1="Морской рассвет",Z1="Морские сумерки",X1="Ночь",K1="Конец ночи",q1="Солнечный полдень",eA="Восход",tA="Восход солнца",sA="Заход солнца",iA="Начало заката",oA="дата",rA="в %s",MA="каждый день",nA="каждый час",aA="каждую минуту",cA="каждый месяц",uA="каждый %s день",NA="каждый %s часов",lA="каждые %s минут",LA="каждые %s месяцев",jA="каждые %s недель",gA="каждые %s лет",TA="каждую неделю",yA="каждый год",DA="от %s до %s",dA="никогда",zA="%s %s",IA="%s и %s",wA="в каждый день",CA="%s",hA="%s и %s",AA="%s",pA="%s и %s",mA="на выходных",OA="в рабочие дни",EA="не будет больше выполняться, потому что начало в прошлом",_A="%s",SA="%s",xA="Выполнить с",fA="%s",kA="каждый",YA="Конкретное время",QA="от",UA="От и до",vA="Интервал времени",bA="инвертировать",$A="никакой",PA="на",WA="период",RA="Ежедневно",JA="Даты",BA="День",FA="каждый",GA="Каждый день",HA="Каждый месяц",VA="Каждую неделю",ZA="Каждый год",XA="часов",KA="минут",qA="месяц",ep="ежемесячно",tp="однажды",sp="Конкретные месяцы",ip="Неделю",op="Будние дни",rp="выходные",Mp="еженедельно",np="Рабочие дни",ap="Год",cp="каждый год",up="Конкретное время",Np="Время",lp="в",Lp="действительный",jp="от",gp="в",Tp="Весь день",yp="каждый месяц",Dp={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию",ra_Actions:cw,"ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:uw,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:Nw,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:lw,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:Lw,ra_Clear:jw,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:gw,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:Tw,ra_Configure:yw,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:Dw,ra_Continue:dw,ra_Copied:zw,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:Iw,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:ww,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:Cw,ra_Delete:hw,"ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:Aw,ra_Disconnected:pw,"ra_Do not ask for next 2 hours in this session":"Не спрашивайте о следующих 2 часах в этом сеансе","ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit full path":"Изменить полный путь","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение","ra_Enter the code from that page here":"Введите код с этой страницы здесь",ra_Error:mw,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:Ow,"ra_Filter and Data Actions":"Фильтрация и действия с данными","ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:Ew,"ra_Get %s access":"Получить %s доступ","ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:_w,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Logout:Sw,ra_Longitude:xw,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:fw,ra_Monday:kw,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:Yw,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:Qw,ra_Ok:Uw,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please allow popups in your browser for this page!":"Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Press ENTER Key to add new item":"Нажмите клавишу ENTER, чтобы добавить новый элемент.","ra_Private certificate":"Частный сертификат",ra_Product:vw,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Rename_Move_Copy:bw,"ra_Renew %s access":"Продлить доступ %s",ra_Repeat:$w,ra_Replace:Pw,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:Ww,ra_Saturday:Rw,ra_Save:Jw,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:Bw,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Session will expire in %s seconds. Continue?":"Сессия истечет через %s секунд. Продолжить?","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:Fw,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.","ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:Gw,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:Hw,ra_Timestamp:Vw,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:Zw,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:Xw,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:Kw,ra_Value:qw,ra_Version:eC,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:tC,ra_Width:sC,ra_Yes:iC,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст",ra___different__:oC,ra_aclEveryone_read_object:rC,ra_aclEveryone_read_state:MC,ra_aclEveryone_write_object:nC,ra_aclEveryone_write_state:aC,ra_aclGroup_read_object:cC,ra_aclGroup_read_state:uC,ra_aclGroup_write_object:NC,ra_aclGroup_write_state:lC,ra_aclOwner_read_object:LC,ra_aclOwner_read_state:jC,ra_aclOwner_write_object:gC,ra_aclOwner_write_state:TC,ra_buttons:yC,ra_changedFrom:DC,ra_close:dC,ra_create_boolean_state:zC,ra_create_channel:IC,ra_create_device:wC,ra_create_number_state:CC,ra_create_state:hC,ra_create_string_state:AC,ra_daysShortText:pC,ra_dow_Fr:mC,ra_dow_Mo:OC,ra_dow_Sa:EC,ra_dow_Su:_C,ra_dow_Th:SC,ra_dow_Tu:xC,ra_dow_We:fC,ra_expertMode:kC,ra_false:YC,ra_fileType_all:QC,ra_fileType_audio:UC,ra_fileType_code:vC,ra_fileType_images:bC,ra_fileType_txt:$C,ra_fileType_video:PC,"ra_fileType_video,":"видео",ra_filter_customs:WC,ra_filter_customs_without:RC,ra_filter_func:JC,ra_filter_id:BC,ra_filter_name:FC,ra_filter_role:GC,ra_filter_room:HC,ra_filter_type:VC,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:ZC,ra_lastChange:XC,ra_locally:KC,ra_month_Apr:qC,ra_month_Aug:eh,ra_month_Dec:th,ra_month_Feb:sh,ra_month_Jan:ih,ra_month_Jul:oh,ra_month_Jun:rh,ra_month_Mai:Mh,ra_month_Mar:nh,ra_month_Nov:ah,ra_month_Oct:ch,ra_month_Sep:uh,ra_months_Apr:Nh,ra_months_Aug:lh,ra_months_Dec:Lh,ra_months_Feb:jh,ra_months_Jan:gh,ra_months_Jul:Th,ra_months_Jun:yh,ra_months_Mai:Dh,ra_months_Mar:dh,ra_months_Nov:zh,ra_months_Oct:Ih,ra_months_Sep:wh,"ra_no confirm for 5 mins":"не спрашивать подтверждения в течение 5 минут",ra_none:Ch,ra_object_changed_by:hh,ra_object_changed_by_user:Ah,ra_otherConfig:ph,ra_qualityCode:mh,ra_repeat:Oh,ra_select_folder_hint:Eh,ra_show_all:_h,ra_state_changed_by:Sh,ra_state_changed_from:xh,ra_timestamp:fh,ra_tooltip_ack:kh,ra_tooltip_comment:Yh,ra_tooltip_copyState:Qh,ra_tooltip_ctrlForLink:Uh,ra_tooltip_customConfig:vh,ra_tooltip_deleteObject:bh,ra_tooltip_editObject:$h,ra_tooltip_editState:Ph,ra_tooltip_expire:Wh,ra_tooltip_from:Rh,ra_tooltip_lc:Jh,ra_tooltip_quality:Bh,ra_tooltip_ts:Fh,ra_tooltip_user:Gh,ra_tooltip_value:Hh,ra_true:Vh,"ra_use seconds":"секунды",ra_val:Zh,"ra_via internet":"через интернет",ra_warning_every_minute:Xh,ra_warning_every_second:Kh,sc_cron:qh,sc_date:e1,sc_dates:t1,sc_dow:s1,sc_dows:i1,sc_every:o1,sc_everyN_dates:r1,sc_everyN_dow:M1,sc_everyN_dows:n1,sc_everyN_hours:a1,sc_everyN_minutes:c1,sc_everyN_months:u1,sc_everyN_seconds:N1,sc_every_dates:l1,sc_every_dow:L1,sc_every_dows:j1,sc_every_hours:g1,sc_every_minutes:T1,sc_every_months:y1,sc_every_seconds:D1,sc_from:d1,sc_hours:z1,sc_interval:I1,sc_intervalBetween:w1,sc_invalid_cron:C1,sc_minutes:h1,sc_months:A1,sc_once:p1,sc_period:m1,sc_seconds:O1,sc_simple:E1,sc_specific:_1,sc_specific_dates:S1,sc_specific_dow:x1,sc_specific_dows:f1,sc_specific_hours:k1,sc_specific_minutes:Y1,sc_specific_months:Q1,sc_specific_seconds:U1,sc_time:v1,sc_to:b1,sc_wizard:$1,sch_all:P1,sch_astroDay:W1,sch_astroNight:R1,sch_astro_dawn:J1,sch_astro_dusk:B1,sch_astro_goldenHour:F1,sch_astro_goldenHourEnd:G1,sch_astro_nadir:H1,sch_astro_nauticalDawn:V1,sch_astro_nauticalDusk:Z1,sch_astro_night:X1,sch_astro_nightEnd:K1,sch_astro_solarNoon:q1,sch_astro_sunrise:eA,sch_astro_sunriseEnd:tA,sch_astro_sunset:sA,sch_astro_sunsetStart:iA,sch_at:oA,sch_desc_atTime:rA,sch_desc_everyDay:MA,sch_desc_everyHour:nA,sch_desc_everyMinute:aA,sch_desc_everyMonth:cA,sch_desc_everyNDay:uA,sch_desc_everyNHours:NA,sch_desc_everyNMinutes:lA,sch_desc_everyNMonths:LA,sch_desc_everyNWeeks:jA,sch_desc_everyNYears:gA,sch_desc_everyWeek:TA,sch_desc_everyYear:yA,sch_desc_intervalFromTo:DA,sch_desc_never:dA,sch_desc_onDate:zA,sch_desc_onDates:IA,sch_desc_onEveryDate:wA,sch_desc_onMonth:CA,sch_desc_onMonths:hA,sch_desc_onWeekday:AA,sch_desc_onWeekdays:pA,sch_desc_onWeekends:mA,sch_desc_onWorkdays:OA,sch_desc_onceInPast:EA,sch_desc_once_on:_A,sch_desc_validFrom:SA,sch_desc_validFromTo:xA,sch_desc_validTo:fA,sch_every:kA,sch_exactTime:YA,sch_from:QA,sch_fromTo:UA,sch_intervalTime:vA,sch_invert:bA,sch_no_one:$A,sch_on:PA,sch_period:WA,sch_periodDaily:RA,sch_periodDates:JA,sch_periodDay:BA,sch_periodEvery:FA,sch_periodEveryDay:GA,sch_periodEveryMonth:HA,sch_periodEveryWeek:VA,sch_periodEveryYear:ZA,sch_periodHours:XA,sch_periodMinutes:KA,sch_periodMonth:qA,sch_periodMonthly:ep,sch_periodOnce:tp,sch_periodSpecificMonths:sp,sch_periodWeek:ip,sch_periodWeekdays:op,sch_periodWeekend:rp,sch_periodWeekly:Mp,sch_periodWorkdays:np,sch_periodYear:ap,sch_periodYearly:cp,sch_specificTime:up,sch_time:Np,sch_to:lp,sch_valid:Lp,sch_validFrom:jp,sch_validTo:gp,sch_wholeDay:Tp,sch_yearEveryMonth:yp},dp="Ações",zp="Acrescentar",Ip="Cancelar",wp="Categorias",Cp="Verificado",hp="Excluir",Ap="Perto",pp="Comercial",mp="Configurar",Op="Conectado",Ep="Continuar",_p="Copiado",Sp="Crio",xp="Colheita",fp="Delete",kp="Excluir",Yp="Descartar",Qp="Desconectado",Up="Erro",vp="Filtro",bp="Sexta-feira",$p="Latitude",Pp="Sair",Wp="Longitude",Rp="mensagem",Jp="Segunda-feira",Bp="Nome",Fp="Objetos",Gp="Está bem",Hp="produtos",Vp="Renomear/Mover/Copiar",Zp="Repita",Xp="Substituir",Kp="Raiz",qp="Sábado",e2="Salve ",t2="Selecionado",s2="Estados",i2="Domingo",o2="Quinta-feira",r2="Timestamp",M2="Terça-feira",n2="Atualizar",a2="Válida até",c2="Valor",u2="Versão",N2="Quarta-feira",l2="Largura",L2="Sim",j2="diferente",g2="Todos podem ler objetos",T2="Todos podem ler o estado",y2="Todos podem escrever objetos",D2="Todos podem escrever o estado",d2="O grupo pode ler o objeto",z2="O grupo pode ler o estado",I2="O grupo pode escrever o objeto",w2="O grupo pode escrever o estado",C2="O proprietário pode ler o objeto",h2="O proprietário pode ler o estado",A2="O proprietário pode escrever o objeto",p2="O proprietário pode escrever o estado",m2="Botões",O2="Mudou de",E2="fechar",_2="Criar estado booleano",S2="Criar canal",x2="Criar dispositivo",f2="Criar estado numérico",k2="Criar estado",Y2="Criar estado de string",Q2="d.",U2="Fr",v2="Mo",b2="Sa",$2="Su",P2="º",W2="Tu",R2="Nós",J2="Modo especialista",B2="FALSO",F2="Todos os arquivos",G2="áudio",H2="Código/JSON",V2="Imagens",Z2="Texto",X2="Vídeo",K2="Configurações",q2="sem",em="Função",tm="ID",sm="Nome",im="Papel (Função)",om="Quarto",rm="Tipo",Mm="Configurações inválidas",nm="Última mudança",am="localmente",cm="abril",um="agosto",Nm="dezembro",lm="fevereiro",Lm="janeiro",jm="julho",gm="junho",Tm="Mai",ym="março",Dm="novembro",dm="outubro",zm="setembro",Im="abril",wm="agosto",Cm="dezembro",hm="fevereiro",Am="janeiro",pm="julho",mm="junho",Om="Mai",Em="março",_m="novembro",Sm="outubro",xm="setembro",fm="Nenhum",km="Objeto alterado por",Ym="Objeto alterado pela última vez em",Qm="Configurações de outro adaptador %s",Um="Código de qualidade",vm="repetir",bm='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',$m="Mostrar tudo",Pm="Estado alterado por",Wm="Objeto alterado de",Rm="Timestamp",Jm="Confirmado",Bm="Comente",Fm="Copie o valor do estado",Gm="Segure a tecla Ctrl/⌘ para abrir o link",Hm="Opções customizadas",Vm="Excluir objeto",Zm="Editar objeto",Xm="Edite o valor do estado",Km="Expira em",qm="De",eO="Última alteração",tO="Qualidade",sO="Timestamp",iO="Usuário",oO="Valor",rO="verdadeiro",MO="Valor",nO="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",aO="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",cO="CRON",uO="Data",NO="Dias",lO="Dia",LO="Dia da semana",jO="todos",gO="a cada N dias",TO="todo enésimo dia da semana",yO="todos os N dias da semana",DO="a cada N horas",dO="a cada N minutos",zO="a cada N meses",IO="a cada N segundos",wO="todo dia",CO="todos os dias da semana",hO="todos os dias da semana",AO="toda hora",pO="todo minuto",mO="todo mês",OO="todo segundo",EO="de",_O="horas",SO="intervalo",xO="intervalo entre",fO="CRON inválido",kO="minutos",YO="meses",QO="uma vez",UO="período",vO="segundos",bO="simples",$O="tempo específico",PO="datas específicas",WO="dia(s) específico(s) da semana",RO="dia específico de semanas",JO="horas específicas",BO="minutos específicos",FO="meses específicos",GO="segundos específicos",HO="tempo",VO="para",ZO="assistente",XO="tudo",KO="dia astral",qO="noite astral",eE="amanhecer",tE="anoitecer",sE="hora dourada",iE="Fim da hora dourada",oE="nadir",rE="Amanhecer náutico",ME="Anoitecer náutico",nE="noite",aE="fim da noite",cE="meio-dia solar",uE="nascer do sol",NE="fim do nascer do sol",lE="pôr do sol",LE="início do pôr do sol",jE="às",gE="em %s",TE="todo dia",yE="toda hora",DE="todo minuto",dE="todo mês",zE="a cada %s dias",IE="a cada %s horas",wE="a cada %s minutos",CE="a cada %s meses",hE="a cada %s semanas",AE="a cada %s anos",pE="toda semana",mE="todo ano",OE="de %s para %s",EE="nunca",_E="em %s de %s",SE="em %s e %s de",xE="em toda data de",fE="%s",kE="%s e %s",YE="em %s",QE="em %s e %s",UE="nos fins de semana",vE="em dias úteis",bE="não será mais executado, porque o começo está no passado",$E="em %s",PE="de %s",WE="Executar de até",RE="até %s",JE="cada",BE="tempo específico",FE="de",GE="de a´t",HE="tempo de intervalo",VE="invertido",ZE="nenhum",XE="em",KE="período",qE="diariamente",e_="datas",t_="dia",s_="todos",i_="todo dia",o_="todo mês",r_="toda semana",M_="todo ano",n_="horas",a_="minutos",c_="mês",u_="por mês",N_="uma vez",l_="meses específicos",L_="semana",j_="dias úteis",g_="final de semana",T_="semanal",y_="dias úteis",D_="ano",d_="anual",z_="tempo específico",I_="tempo",w_="para",C_="válido",h_="de",A_="para",p_="dia inteiro",m_="todo mês",O_={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença",ra_Actions:dp,"ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:zp,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:Ip,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:wp,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:Cp,ra_Clear:hp,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:Ap,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:pp,ra_Configure:mp,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:Op,ra_Continue:Ep,ra_Copied:_p,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:Sp,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:xp,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:fp,ra_Delete:kp,"ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:Yp,ra_Disconnected:Qp,"ra_Do not ask for next 2 hours in this session":"Não peça as próximas 2 horas nesta sessão","ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit full path":"Editar caminho completo","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Digite o código dessa página aqui",ra_Error:Up,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:vp,"ra_Filter and Data Actions":"Ações de filtro e dados","ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:bp,"ra_Get %s access":"Obtenha acesso %s","ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:$p,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Logout:Pp,ra_Longitude:Wp,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:Rp,ra_Monday:Jp,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:Bp,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:Fp,ra_Ok:Gp,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please allow popups in your browser for this page!":"Por favor, permita pop-ups no seu navegador para esta página!","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Press ENTER Key to add new item":"Pressione a tecla ENTER para adicionar um novo item","ra_Private certificate":"certificado privado",ra_Product:Hp,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Rename_Move_Copy:Vp,"ra_Renew %s access":"Renovar acesso %s",ra_Repeat:Zp,ra_Replace:Xp,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:Kp,ra_Saturday:qp,ra_Save:e2,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:t2,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"A sessão irá expirar em %s segundos. Continuar?","ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:s2,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado com sucesso. Token válido até %s e será renovado automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.","ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:i2,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:o2,ra_Timestamp:r2,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:M2,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:n2,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:a2,ra_Value:c2,ra_Version:u2,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:N2,ra_Width:l2,ra_Yes:L2,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto",ra___different__:j2,ra_aclEveryone_read_object:g2,ra_aclEveryone_read_state:T2,ra_aclEveryone_write_object:y2,ra_aclEveryone_write_state:D2,ra_aclGroup_read_object:d2,ra_aclGroup_read_state:z2,ra_aclGroup_write_object:I2,ra_aclGroup_write_state:w2,ra_aclOwner_read_object:C2,ra_aclOwner_read_state:h2,ra_aclOwner_write_object:A2,ra_aclOwner_write_state:p2,ra_buttons:m2,ra_changedFrom:O2,ra_close:E2,ra_create_boolean_state:_2,ra_create_channel:S2,ra_create_device:x2,ra_create_number_state:f2,ra_create_state:k2,ra_create_string_state:Y2,ra_daysShortText:Q2,ra_dow_Fr:U2,ra_dow_Mo:v2,ra_dow_Sa:b2,ra_dow_Su:$2,ra_dow_Th:P2,ra_dow_Tu:W2,ra_dow_We:R2,ra_expertMode:J2,ra_false:B2,ra_fileType_all:F2,ra_fileType_audio:G2,ra_fileType_code:H2,ra_fileType_images:V2,ra_fileType_txt:Z2,ra_fileType_video:X2,"ra_fileType_video,":"Vídeo",ra_filter_customs:K2,ra_filter_customs_without:q2,ra_filter_func:em,ra_filter_id:tm,ra_filter_name:sm,ra_filter_role:im,ra_filter_room:om,ra_filter_type:rm,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:Mm,ra_lastChange:nm,ra_locally:am,ra_month_Apr:cm,ra_month_Aug:um,ra_month_Dec:Nm,ra_month_Feb:lm,ra_month_Jan:Lm,ra_month_Jul:jm,ra_month_Jun:gm,ra_month_Mai:Tm,ra_month_Mar:ym,ra_month_Nov:Dm,ra_month_Oct:dm,ra_month_Sep:zm,ra_months_Apr:Im,ra_months_Aug:wm,ra_months_Dec:Cm,ra_months_Feb:hm,ra_months_Jan:Am,ra_months_Jul:pm,ra_months_Jun:mm,ra_months_Mai:Om,ra_months_Mar:Em,ra_months_Nov:_m,ra_months_Oct:Sm,ra_months_Sep:xm,"ra_no confirm for 5 mins":"sem confirmação por 5 minutos",ra_none:fm,ra_object_changed_by:km,ra_object_changed_by_user:Ym,ra_otherConfig:Qm,ra_qualityCode:Um,ra_repeat:vm,ra_select_folder_hint:bm,ra_show_all:$m,ra_state_changed_by:Pm,ra_state_changed_from:Wm,ra_timestamp:Rm,ra_tooltip_ack:Jm,ra_tooltip_comment:Bm,ra_tooltip_copyState:Fm,ra_tooltip_ctrlForLink:Gm,ra_tooltip_customConfig:Hm,ra_tooltip_deleteObject:Vm,ra_tooltip_editObject:Zm,ra_tooltip_editState:Xm,ra_tooltip_expire:Km,ra_tooltip_from:qm,ra_tooltip_lc:eO,ra_tooltip_quality:tO,ra_tooltip_ts:sO,ra_tooltip_user:iO,ra_tooltip_value:oO,ra_true:rO,"ra_use seconds":"use segundos",ra_val:MO,"ra_via internet":"via internet",ra_warning_every_minute:nO,ra_warning_every_second:aO,sc_cron:cO,sc_date:uO,sc_dates:NO,sc_dow:lO,sc_dows:LO,sc_every:jO,sc_everyN_dates:gO,sc_everyN_dow:TO,sc_everyN_dows:yO,sc_everyN_hours:DO,sc_everyN_minutes:dO,sc_everyN_months:zO,sc_everyN_seconds:IO,sc_every_dates:wO,sc_every_dow:CO,sc_every_dows:hO,sc_every_hours:AO,sc_every_minutes:pO,sc_every_months:mO,sc_every_seconds:OO,sc_from:EO,sc_hours:_O,sc_interval:SO,sc_intervalBetween:xO,sc_invalid_cron:fO,sc_minutes:kO,sc_months:YO,sc_once:QO,sc_period:UO,sc_seconds:vO,sc_simple:bO,sc_specific:$O,sc_specific_dates:PO,sc_specific_dow:WO,sc_specific_dows:RO,sc_specific_hours:JO,sc_specific_minutes:BO,sc_specific_months:FO,sc_specific_seconds:GO,sc_time:HO,sc_to:VO,sc_wizard:ZO,sch_all:XO,sch_astroDay:KO,sch_astroNight:qO,sch_astro_dawn:eE,sch_astro_dusk:tE,sch_astro_goldenHour:sE,sch_astro_goldenHourEnd:iE,sch_astro_nadir:oE,sch_astro_nauticalDawn:rE,sch_astro_nauticalDusk:ME,sch_astro_night:nE,sch_astro_nightEnd:aE,sch_astro_solarNoon:cE,sch_astro_sunrise:uE,sch_astro_sunriseEnd:NE,sch_astro_sunset:lE,sch_astro_sunsetStart:LE,sch_at:jE,sch_desc_atTime:gE,sch_desc_everyDay:TE,sch_desc_everyHour:yE,sch_desc_everyMinute:DE,sch_desc_everyMonth:dE,sch_desc_everyNDay:zE,sch_desc_everyNHours:IE,sch_desc_everyNMinutes:wE,sch_desc_everyNMonths:CE,sch_desc_everyNWeeks:hE,sch_desc_everyNYears:AE,sch_desc_everyWeek:pE,sch_desc_everyYear:mE,sch_desc_intervalFromTo:OE,sch_desc_never:EE,sch_desc_onDate:_E,sch_desc_onDates:SE,sch_desc_onEveryDate:xE,sch_desc_onMonth:fE,sch_desc_onMonths:kE,sch_desc_onWeekday:YE,sch_desc_onWeekdays:QE,sch_desc_onWeekends:UE,sch_desc_onWorkdays:vE,sch_desc_onceInPast:bE,sch_desc_once_on:$E,sch_desc_validFrom:PE,sch_desc_validFromTo:WE,sch_desc_validTo:RE,sch_every:JE,sch_exactTime:BE,sch_from:FE,sch_fromTo:GE,sch_intervalTime:HE,sch_invert:VE,sch_no_one:ZE,sch_on:XE,sch_period:KE,sch_periodDaily:qE,sch_periodDates:e_,sch_periodDay:t_,sch_periodEvery:s_,sch_periodEveryDay:i_,sch_periodEveryMonth:o_,sch_periodEveryWeek:r_,sch_periodEveryYear:M_,sch_periodHours:n_,sch_periodMinutes:a_,sch_periodMonth:c_,sch_periodMonthly:u_,sch_periodOnce:N_,sch_periodSpecificMonths:l_,sch_periodWeek:L_,sch_periodWeekdays:j_,sch_periodWeekend:g_,sch_periodWeekly:T_,sch_periodWorkdays:y_,sch_periodYear:D_,sch_periodYearly:d_,sch_specificTime:z_,sch_time:I_,sch_to:w_,sch_valid:C_,sch_validFrom:h_,sch_validTo:A_,sch_wholeDay:p_,sch_yearEveryMonth:m_},E_="Acties",__="toevoegen",S_="Annuleer",x_="Categorieën",f_="Gecontroleerd",k_="Verwijderen",Y_="Dichtbij",Q_="Reclame",U_="Configureren",v_="Verbonden",b_="Doorgaan",$_="Gekopieerd",P_="Creëer",W_="Bijsnijden",R_="Delete",J_="Verwijderen",B_="Weggooien",F_="Verbinding verbroken",G_="Fout",H_="Filter",V_="Vrijdag",Z_="Breedtegraad",X_="Uitloggen",K_="Lengtegraad",q_="Bericht",eS="Maandag",tS="Naam",sS="Voorwerpen",iS="OK",oS="Product",rS="Hernoemen/Verplaatsen/Kopiëren",MS="Herhaling",nS="Vervangen",aS="Wortel",cS="Zaterdag",uS="Sparen",NS="Geselecteerd",lS="Staten",LS="Zondag",jS="Donderdag",gS="Tijdstempel",TS="Dinsdag",yS="Bijwerken",DS="Geldig tot",dS="Waarde",zS="Versie",IS="Woensdag",wS="Breedte",CS="Ja",hS="verschillend",AS="Iedereen kan object lezen",pS="Iedereen kan staat lezen",mS="Iedereen kan object schrijven",OS="Iedereen kan staat schrijven",ES="Groep kan object lezen",_S="Groep kan status lezen",SS="Groep kan object schrijven",xS="Groep kan staat schrijven",fS="Eigenaar kan object lezen",kS="Eigenaar kan staat lezen",YS="Eigenaar kan object schrijven",QS="Eigenaar kan staat schrijven",US="Toetsen",vS="Veranderd van",bS="dichtbij",$S="Creëer een Booleaanse status",PS="Kanaal maken",WS="Apparaat maken",RS="Nummerstatus maken",JS="Staat creëren",BS="Tekenreeksstatus maken",FS="d.",GS="Fr",HS="Mo",VS="Za",ZS="Zo",XS="Th",KS="Tu",qS="Wij",e3="Expert modus",t3="ONWAAR",s3="Alle bestanden",i3="Audio",o3="Code/JSON",r3="Afbeeldingen",M3="Tekst",n3="Video",a3="Instellingen",c3="zonder",u3="Functie",N3="ID",l3="Naam",L3="Rol",j3="Kamer",g3="Type",T3="Ongeldige instellingen",y3="Laatste wijziging",D3="plaatselijk",d3="april",z3="aug",I3="dec",w3="februari",C3="jan",h3="jul",A3="juni",p3="Mei",m3="mrt",O3="nov",E3="Okt",_3="sept",S3="april",x3="aug",f3="dec",k3="februari",Y3="jan",Q3="jul",U3="juni",v3="Mei",b3="mrt",$3="nov",P3="Okt",W3="sept",R3="geen",J3="Object veranderd door",B3="Object voor het laatst gewijzigd om",F3="Instellingen van andere adapter %s",G3="Kwaliteitscode",H3="herhalen",V3='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',Z3="Alles weergeven",X3="Staat veranderd door",K3="Object veranderd van",q3="Tijdstempel",ex="Erkende vlag",tx="Opmerking",sx="Kopieer de statuswaarde",ix="Houd de Cltr/⌘-toets ingedrukt om de link te openen",ox="Aangepaste instellingen",rx="Object verwijderen",Mx="Object bewerken",nx="Bewerk de statuswaarde",ax="Verloopt over",cx="Van",ux="Laatst gewijzigd",Nx="Kwaliteit",lx="Tijdstempel",Lx="Gebruiker",jx="Waarde",gx="WAAR",Tx="Waarde",yx="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",Dx="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",dx="CRON",zx="Datum",Ix="data",wx="Dag",Cx="Dag van de week",hx="elk",Ax="elke N dagen",px="elke N-de dag van de week",mx="elke N dag van de week",Ox="elke N uur",Ex="elke N minuten",_x="elke N maanden",Sx="elke N seconden",xx="elke dag",fx="elke dag van de week",kx="elke dag van de week",Yx="elk uur",Qx="elke minuut",Ux="elke maand",vx="elke seconde",bx="Van",$x="uren",Px="Interval",Wx="Interval tussen",Rx="Ongeldige CRON",Jx="Notulen",Bx="maanden",Fx="Een keer",Gx="Periode",Hx="seconden",Vx="Gemakkelijk",Zx="Specifieke tijd",Xx="specifieke data",Kx="specifieke dag(en) van de week",qx="specifieke dag van weken",ef="specifieke uren",tf="specifieke minuten",sf="specifieke maanden",of="specifieke seconden",rf="Tijd",Mf="Naar",nf="tovenaar",af="allemaal",cf="Astro-dag",uf="Astro-nacht",Nf="Dageraad",lf="Schemer",Lf="gouden uur",jf="Gouden uur einde",gf="Nadir",Tf="Nautische dageraad",yf="Nautische schemering",Df="Nacht",df="Nacht einde",zf="Zonne middag",If="zonsopkomst",wf="Sunrise einde",Cf="Zonsondergang",hf="Zonsondergang start",Af="Bij",pf="op %s",mf="elke dag",Of="elk uur",Ef="elke minuut",_f="elke maand",Sf="elke %s dag",xf="elke %s uur",ff="elke %s minuten",kf="elke %s maanden",Yf="elke %s weken",Qf="elke %s jaar",Uf="elke week",vf="elk jaar",bf="van %s tot %s",$f="nooit",Pf="op %s van %s",Wf="op %s en %s van",Rf="op elke datum van",Jf="%s",Bf="%s en %s",Ff="op %s",Gf="op %s en %s",Hf="in het weekend",Vf="op werkdagen",Zf="zal niet meer worden uitgevoerd, omdat start verleden tijd is",Xf="op %s",Kf="van %s",qf="Uitvoeren van tot",e5="tot %s",t5="elk",s5="Specifieke tijd",i5="van",o5="Van naar",r5="Interval tijd",M5="omkeren",n5="geen",a5="Aan",c5="Periode",u5="Dagelijks",N5="data",l5="Dag",L5="elk",j5="Elke dag",g5="Elke maand",T5="Elke week",y5="Elk jaar",D5="uren",d5="Notulen",z5="maand",I5="Maandelijks",w5="Een keer",C5="Specifieke maanden",h5="Week",A5="Doordeweekse dagen",p5="Weekend",m5="Wekelijks",O5="werkdagen",E5="Jaar",_5="jaar-",S5="Specifieke tijd",x5="Tijd",f5="naar",k5="Geldig",Y5="van",Q5="naar",U5="Hele dag",v5="elke maand",b5={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie",ra_Actions:E_,"ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:__,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:S_,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:x_,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:f_,ra_Clear:k_,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:Y_,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:Q_,ra_Configure:U_,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:v_,ra_Continue:b_,ra_Copied:$_,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:P_,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:W_,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:R_,ra_Delete:J_,"ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:B_,ra_Disconnected:F_,"ra_Do not ask for next 2 hours in this session":"Vraag niet om de volgende 2 uur in deze sessie","ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit full path":"Volledig pad bewerken","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken","ra_Enter the code from that page here":"Voer hier de code van die pagina in",ra_Error:G_,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:H_,"ra_Filter and Data Actions":"Filter- en gegevensacties","ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:V_,"ra_Get %s access":"Krijg %s toegang","ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:Z_,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Logout:X_,ra_Longitude:K_,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:q_,ra_Monday:eS,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:tS,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:sS,ra_Ok:iS,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please allow popups in your browser for this page!":"Sta pop-ups toe in uw browser voor deze pagina!","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Press ENTER Key to add new item":"Druk op de ENTER-toets om een nieuw item toe te voegen","ra_Private certificate":"Privé certificaat",ra_Product:oS,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Rename_Move_Copy:rS,"ra_Renew %s access":"%s toegang verlengen",ra_Repeat:MS,ra_Replace:nS,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:aS,ra_Saturday:cS,ra_Save:uS,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:NS,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Session will expire in %s seconds. Continue?":"Sessie verloopt over %s seconden. Doorgaan?","ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:lS,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.","ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:LS,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:jS,ra_Timestamp:gS,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:TS,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:yS,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:DS,ra_Value:dS,ra_Version:zS,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:IS,ra_Width:wS,ra_Yes:CS,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren",ra___different__:hS,ra_aclEveryone_read_object:AS,ra_aclEveryone_read_state:pS,ra_aclEveryone_write_object:mS,ra_aclEveryone_write_state:OS,ra_aclGroup_read_object:ES,ra_aclGroup_read_state:_S,ra_aclGroup_write_object:SS,ra_aclGroup_write_state:xS,ra_aclOwner_read_object:fS,ra_aclOwner_read_state:kS,ra_aclOwner_write_object:YS,ra_aclOwner_write_state:QS,ra_buttons:US,ra_changedFrom:vS,ra_close:bS,ra_create_boolean_state:$S,ra_create_channel:PS,ra_create_device:WS,ra_create_number_state:RS,ra_create_state:JS,ra_create_string_state:BS,ra_daysShortText:FS,ra_dow_Fr:GS,ra_dow_Mo:HS,ra_dow_Sa:VS,ra_dow_Su:ZS,ra_dow_Th:XS,ra_dow_Tu:KS,ra_dow_We:qS,ra_expertMode:e3,ra_false:t3,ra_fileType_all:s3,ra_fileType_audio:i3,ra_fileType_code:o3,ra_fileType_images:r3,ra_fileType_txt:M3,ra_fileType_video:n3,"ra_fileType_video,":"Video",ra_filter_customs:a3,ra_filter_customs_without:c3,ra_filter_func:u3,ra_filter_id:N3,ra_filter_name:l3,ra_filter_role:L3,ra_filter_room:j3,ra_filter_type:g3,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:T3,ra_lastChange:y3,ra_locally:D3,ra_month_Apr:d3,ra_month_Aug:z3,ra_month_Dec:I3,ra_month_Feb:w3,ra_month_Jan:C3,ra_month_Jul:h3,ra_month_Jun:A3,ra_month_Mai:p3,ra_month_Mar:m3,ra_month_Nov:O3,ra_month_Oct:E3,ra_month_Sep:_3,ra_months_Apr:S3,ra_months_Aug:x3,ra_months_Dec:f3,ra_months_Feb:k3,ra_months_Jan:Y3,ra_months_Jul:Q3,ra_months_Jun:U3,ra_months_Mai:v3,ra_months_Mar:b3,ra_months_Nov:$3,ra_months_Oct:P3,ra_months_Sep:W3,"ra_no confirm for 5 mins":"geen bevestiging gedurende 5 minuten",ra_none:R3,ra_object_changed_by:J3,ra_object_changed_by_user:B3,ra_otherConfig:F3,ra_qualityCode:G3,ra_repeat:H3,ra_select_folder_hint:V3,ra_show_all:Z3,ra_state_changed_by:X3,ra_state_changed_from:K3,ra_timestamp:q3,ra_tooltip_ack:ex,ra_tooltip_comment:tx,ra_tooltip_copyState:sx,ra_tooltip_ctrlForLink:ix,ra_tooltip_customConfig:ox,ra_tooltip_deleteObject:rx,ra_tooltip_editObject:Mx,ra_tooltip_editState:nx,ra_tooltip_expire:ax,ra_tooltip_from:cx,ra_tooltip_lc:ux,ra_tooltip_quality:Nx,ra_tooltip_ts:lx,ra_tooltip_user:Lx,ra_tooltip_value:jx,ra_true:gx,"ra_use seconds":"gebruik seconden",ra_val:Tx,"ra_via internet":"via internet",ra_warning_every_minute:yx,ra_warning_every_second:Dx,sc_cron:dx,sc_date:zx,sc_dates:Ix,sc_dow:wx,sc_dows:Cx,sc_every:hx,sc_everyN_dates:Ax,sc_everyN_dow:px,sc_everyN_dows:mx,sc_everyN_hours:Ox,sc_everyN_minutes:Ex,sc_everyN_months:_x,sc_everyN_seconds:Sx,sc_every_dates:xx,sc_every_dow:fx,sc_every_dows:kx,sc_every_hours:Yx,sc_every_minutes:Qx,sc_every_months:Ux,sc_every_seconds:vx,sc_from:bx,sc_hours:$x,sc_interval:Px,sc_intervalBetween:Wx,sc_invalid_cron:Rx,sc_minutes:Jx,sc_months:Bx,sc_once:Fx,sc_period:Gx,sc_seconds:Hx,sc_simple:Vx,sc_specific:Zx,sc_specific_dates:Xx,sc_specific_dow:Kx,sc_specific_dows:qx,sc_specific_hours:ef,sc_specific_minutes:tf,sc_specific_months:sf,sc_specific_seconds:of,sc_time:rf,sc_to:Mf,sc_wizard:nf,sch_all:af,sch_astroDay:cf,sch_astroNight:uf,sch_astro_dawn:Nf,sch_astro_dusk:lf,sch_astro_goldenHour:Lf,sch_astro_goldenHourEnd:jf,sch_astro_nadir:gf,sch_astro_nauticalDawn:Tf,sch_astro_nauticalDusk:yf,sch_astro_night:Df,sch_astro_nightEnd:df,sch_astro_solarNoon:zf,sch_astro_sunrise:If,sch_astro_sunriseEnd:wf,sch_astro_sunset:Cf,sch_astro_sunsetStart:hf,sch_at:Af,sch_desc_atTime:pf,sch_desc_everyDay:mf,sch_desc_everyHour:Of,sch_desc_everyMinute:Ef,sch_desc_everyMonth:_f,sch_desc_everyNDay:Sf,sch_desc_everyNHours:xf,sch_desc_everyNMinutes:ff,sch_desc_everyNMonths:kf,sch_desc_everyNWeeks:Yf,sch_desc_everyNYears:Qf,sch_desc_everyWeek:Uf,sch_desc_everyYear:vf,sch_desc_intervalFromTo:bf,sch_desc_never:$f,sch_desc_onDate:Pf,sch_desc_onDates:Wf,sch_desc_onEveryDate:Rf,sch_desc_onMonth:Jf,sch_desc_onMonths:Bf,sch_desc_onWeekday:Ff,sch_desc_onWeekdays:Gf,sch_desc_onWeekends:Hf,sch_desc_onWorkdays:Vf,sch_desc_onceInPast:Zf,sch_desc_once_on:Xf,sch_desc_validFrom:Kf,sch_desc_validFromTo:qf,sch_desc_validTo:e5,sch_every:t5,sch_exactTime:s5,sch_from:i5,sch_fromTo:o5,sch_intervalTime:r5,sch_invert:M5,sch_no_one:n5,sch_on:a5,sch_period:c5,sch_periodDaily:u5,sch_periodDates:N5,sch_periodDay:l5,sch_periodEvery:L5,sch_periodEveryDay:j5,sch_periodEveryMonth:g5,sch_periodEveryWeek:T5,sch_periodEveryYear:y5,sch_periodHours:D5,sch_periodMinutes:d5,sch_periodMonth:z5,sch_periodMonthly:I5,sch_periodOnce:w5,sch_periodSpecificMonths:C5,sch_periodWeek:h5,sch_periodWeekdays:A5,sch_periodWeekend:p5,sch_periodWeekly:m5,sch_periodWorkdays:O5,sch_periodYear:E5,sch_periodYearly:_5,sch_specificTime:S5,sch_time:x5,sch_to:f5,sch_valid:k5,sch_validFrom:Y5,sch_validTo:Q5,sch_wholeDay:U5,sch_yearEveryMonth:v5},$5="Actes",P5="Ajouter",W5="Annuler",R5="Catégories",J5="Vérifié",B5="Effacer",F5="Fermer",G5="Commercial",H5="Configurer",V5="Lié",Z5="Continuer",X5="Copié",K5="Créer",q5="Recadrer",ek="Delete",tk="Supprimer",sk="Jeter",ik="Débranché",ok="Erreur",rk="Filtre",Mk="Vendredi",nk="Latitude",ak="Déconnexion",ck="Longitude",uk="Message",Nk="Lundi",lk="Nom",Lk="Objets",jk="D'accord",gk="Produit",Tk="Renommer/Déplacer/Copier",yk="Répéter",Dk="Remplacer",dk="Racine",zk="Samedi",Ik="sauver",wk="Choisi",Ck="États",hk="Dimanche",Ak="Jeudi",pk="Horodatage",mk="Mardi",Ok="Mise à jour",Ek="Valable jusqu'au",_k="Valeur",Sk="Version",xk="Mercredi",fk="Largeur",kk="Oui",Yk="différent",Qk="Tout le monde peut lire un objet",Uk="Tout le monde peut lire l'état",vk="Tout le monde peut écrire un objet",bk="Tout le monde peut écrire l'état",$k="Le groupe peut lire l'objet",Pk="Le groupe peut lire l'état",Wk="Le groupe peut écrire un objet",Rk="Le groupe peut écrire l'état",Jk="Le propriétaire peut lire l'objet",Bk="Le propriétaire peut lire l'état",Fk="Le propriétaire peut écrire un objet",Gk="Le propriétaire peut écrire l'état",Hk="Boutons",Vk="Changé de",Zk="Fermer",Xk="Créer un état booléen",Kk="Créer une chaîne",qk="Créer un appareil",eY="Créer un état de numéro",tY="Créer un état",sY="Créer un état de chaîne",iY="j.",oY="Fr",rY="Mo",MY="Sa",nY="Su",aY="Th",cY="Tu",uY="Nous",NY="Mode expert",lY="FAUX",LY="Tous les fichiers",jY="l'audio",gY="Code/JSON",TY="Images",yY="Texte",DY="Vidéo",dY="Paramètres",zY="sans",IY="Une fonction",wY="ID",CY="Prénom",hY="Rôle",AY="Pièce",pY="Type",mY="Paramètres invalides",OY="Dernier changement",EY="localement",_Y="Avr",SY="Août",xY="Déc",fY="Fév",kY="Jan",YY="Juil",QY="Juin",UY="Mai",vY="Mar",bY="Nov",$Y="Oct",PY="Sep",WY="Avr",RY="Août",JY="Déc",BY="Fév",FY="Jan",GY="Juil",HY="Juin",VY="Mai",ZY="Mar",XY="Nov",KY="Oct",qY="Sep",eQ="rien",tQ="Objet modifié par",sQ="Objet modifié pour la dernière fois à",iQ="Paramètres d'un autre adaptateur %s",oQ="Code de qualité",rQ="répéter",MQ='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',nQ="Tout afficher",aQ="État modifié par",cQ="Objet changé de",uQ="Horodatage",NQ="Drapeau reconnu",lQ="Commentaire",LQ="Copiez la valeur d'état",jQ="Maintenez la touche Cltr/⌘ enfoncée pour ouvrir le lien",gQ="Paramètres personnalisés",TQ="Supprimer un objet",yQ="Modifier l'objet",DQ="Modifier la valeur d'état",dQ="Expire dans",zQ="De",IQ="Dernière modification",wQ="Qualité",CQ="Horodatage",hQ="Utilisateur",AQ="Valeur",pQ="VRAI",mQ="Valeur",OQ="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",EQ="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",_Q="CRON",SQ="Date",xQ="Rendez-vous",fQ="Jour",kQ="Jour de la semaine",YQ="Chaque",QQ="tous les N jours",UQ="chaque Nième jour de la semaine",vQ="tous les N jours de la semaine",bQ="toutes les N heures",$Q="toutes les N minutes",PQ="tous les N mois",WQ="toutes les N secondes",RQ="tous les jours",JQ="Chaque jour de la semaine",BQ="Chaque jour de la semaine",FQ="Toutes les heures",GQ="chaque minute",HQ="chaque mois",VQ="chaque seconde",ZQ="De",XQ="Heures",KQ="Intervalle",qQ="Intervalle entre",eU="CRON non valide",tU="Minutes",sU="mois",iU="Une fois que",oU="Période",rU="Secondes",MU="Facile",nU="Temps spécifique",aU="dates spécifiques",cU="jour(s) spécifique(s) de la semaine",uU="jour spécifique de semaines",NU="heures spécifiques",lU="minutes spécifiques",LU="mois spécifiques",jU="secondes spécifiques",gU="Temps",TU="À",yU="sorcier",DU="tout",dU="Journée astronomique",zU="Nuit astronomique",IU="Aube",wU="Crépuscule",CU="Heure d'or",hU="Fin de l'heure d'or",AU="Nadir",pU="Aube nautique",mU="Crépuscule nautique",OU="Nuit",EU="Fin de nuit",_U="Midi solaire",SU="lever du soleil",xU="Fin du lever du soleil",fU="Le coucher du soleil",kU="Coucher du soleil",YU="à",QU="à %s",UU="tous les jours",vU="Toutes les heures",bU="chaque minute",$U="chaque mois",PU="chaque %s jour",WU="chaque %s heures",RU="toutes les %s minutes",JU="tous les %s mois",BU="chaque %s semaines",FU="tous les %s ans",GU="toutes les semaines",HU="chaque année",VU="de %s à %s",ZU="jamais",XU="sur %s de %s",KU="sur %s et %s de",qU="à chaque date de",ev="%s",tv="%s et %s",sv="sur %s",iv="sur %s et %s",ov="les weekends",rv="les jours ouvrables",Mv="ne sera plus exécuté, car start est dans le passé",nv="sur %s",av="de %s",cv="Exécuter de à",uv="à %s",Nv="chaque",lv="Temps spécifique",Lv="de",jv="De à",gv="Temps d'interval",Tv="inverser",yv="aucun",Dv="sur",dv="Période",zv="du quotidien",Iv="Rendez-vous",wv="journée",Cv="Chaque",hv="Tous les jours",Av="Chaque mois",pv="Toutes les semaines",mv="Chaque année",Ov="Heures",Ev="Minutes",_v="mois",Sv="Mensuel",xv="Une fois que",fv="Mois spécifiques",kv="La semaine",Yv="Jours de la semaine",Qv="Weekend",Uv="Hebdomadaire",vv="Jours ouvrables",bv="Année",$v="Annuel",Pv="Temps spécifique",Wv="Temps",Rv="à",Jv="Valide",Bv="de",Fv="à",Gv="Toute la journée",Hv="chaque mois",Vv={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence",ra_Actions:$5,"ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:P5,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:W5,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:R5,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:J5,ra_Clear:B5,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:F5,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:G5,ra_Configure:H5,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:V5,ra_Continue:Z5,ra_Copied:X5,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:K5,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:q5,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:ek,ra_Delete:tk,"ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:sk,ra_Disconnected:ik,"ra_Do not ask for next 2 hours in this session":"Ne demandez pas les 2 prochaines heures de cette session","ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit full path":"Modifier le chemin complet","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur","ra_Enter the code from that page here":"Entrez le code de cette page ici",ra_Error:ok,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:rk,"ra_Filter and Data Actions":"Actions sur les filtres et les données","ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:Mk,"ra_Get %s access":"Obtenir l'accès %s","ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:nk,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Logout:ak,ra_Longitude:ck,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:uk,ra_Monday:Nk,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:lk,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:Lk,ra_Ok:jk,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please allow popups in your browser for this page!":"Veuillez autoriser les popups dans votre navigateur pour cette page !","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Press ENTER Key to add new item":"Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément","ra_Private certificate":"Certificat privé",ra_Product:gk,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Rename_Move_Copy:Tk,"ra_Renew %s access":"Renouveler l'accès %s",ra_Repeat:yk,ra_Replace:Dk,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:dk,ra_Saturday:zk,ra_Save:Ik,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:wk,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Session will expire in %s seconds. Continue?":"La session expirera dans %s secondes. Continuer ?","ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:Ck,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.","ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:hk,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:Ak,ra_Timestamp:pk,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:mk,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:Ok,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:Ek,ra_Value:_k,ra_Version:Sk,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:xk,ra_Width:fk,ra_Yes:kk,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte",ra___different__:Yk,ra_aclEveryone_read_object:Qk,ra_aclEveryone_read_state:Uk,ra_aclEveryone_write_object:vk,ra_aclEveryone_write_state:bk,ra_aclGroup_read_object:$k,ra_aclGroup_read_state:Pk,ra_aclGroup_write_object:Wk,ra_aclGroup_write_state:Rk,ra_aclOwner_read_object:Jk,ra_aclOwner_read_state:Bk,ra_aclOwner_write_object:Fk,ra_aclOwner_write_state:Gk,ra_buttons:Hk,ra_changedFrom:Vk,ra_close:Zk,ra_create_boolean_state:Xk,ra_create_channel:Kk,ra_create_device:qk,ra_create_number_state:eY,ra_create_state:tY,ra_create_string_state:sY,ra_daysShortText:iY,ra_dow_Fr:oY,ra_dow_Mo:rY,ra_dow_Sa:MY,ra_dow_Su:nY,ra_dow_Th:aY,ra_dow_Tu:cY,ra_dow_We:uY,ra_expertMode:NY,ra_false:lY,ra_fileType_all:LY,ra_fileType_audio:jY,ra_fileType_code:gY,ra_fileType_images:TY,ra_fileType_txt:yY,ra_fileType_video:DY,"ra_fileType_video,":"Vidéo",ra_filter_customs:dY,ra_filter_customs_without:zY,ra_filter_func:IY,ra_filter_id:wY,ra_filter_name:CY,ra_filter_role:hY,ra_filter_room:AY,ra_filter_type:pY,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:mY,ra_lastChange:OY,ra_locally:EY,ra_month_Apr:_Y,ra_month_Aug:SY,ra_month_Dec:xY,ra_month_Feb:fY,ra_month_Jan:kY,ra_month_Jul:YY,ra_month_Jun:QY,ra_month_Mai:UY,ra_month_Mar:vY,ra_month_Nov:bY,ra_month_Oct:$Y,ra_month_Sep:PY,ra_months_Apr:WY,ra_months_Aug:RY,ra_months_Dec:JY,ra_months_Feb:BY,ra_months_Jan:FY,ra_months_Jul:GY,ra_months_Jun:HY,ra_months_Mai:VY,ra_months_Mar:ZY,ra_months_Nov:XY,ra_months_Oct:KY,ra_months_Sep:qY,"ra_no confirm for 5 mins":"pas de confirmation pendant 5 minutes",ra_none:eQ,ra_object_changed_by:tQ,ra_object_changed_by_user:sQ,ra_otherConfig:iQ,ra_qualityCode:oQ,ra_repeat:rQ,ra_select_folder_hint:MQ,ra_show_all:nQ,ra_state_changed_by:aQ,ra_state_changed_from:cQ,ra_timestamp:uQ,ra_tooltip_ack:NQ,ra_tooltip_comment:lQ,ra_tooltip_copyState:LQ,ra_tooltip_ctrlForLink:jQ,ra_tooltip_customConfig:gQ,ra_tooltip_deleteObject:TQ,ra_tooltip_editObject:yQ,ra_tooltip_editState:DQ,ra_tooltip_expire:dQ,ra_tooltip_from:zQ,ra_tooltip_lc:IQ,ra_tooltip_quality:wQ,ra_tooltip_ts:CQ,ra_tooltip_user:hQ,ra_tooltip_value:AQ,ra_true:pQ,"ra_use seconds":"utiliser les secondes",ra_val:mQ,"ra_via internet":"par Internet",ra_warning_every_minute:OQ,ra_warning_every_second:EQ,sc_cron:_Q,sc_date:SQ,sc_dates:xQ,sc_dow:fQ,sc_dows:kQ,sc_every:YQ,sc_everyN_dates:QQ,sc_everyN_dow:UQ,sc_everyN_dows:vQ,sc_everyN_hours:bQ,sc_everyN_minutes:$Q,sc_everyN_months:PQ,sc_everyN_seconds:WQ,sc_every_dates:RQ,sc_every_dow:JQ,sc_every_dows:BQ,sc_every_hours:FQ,sc_every_minutes:GQ,sc_every_months:HQ,sc_every_seconds:VQ,sc_from:ZQ,sc_hours:XQ,sc_interval:KQ,sc_intervalBetween:qQ,sc_invalid_cron:eU,sc_minutes:tU,sc_months:sU,sc_once:iU,sc_period:oU,sc_seconds:rU,sc_simple:MU,sc_specific:nU,sc_specific_dates:aU,sc_specific_dow:cU,sc_specific_dows:uU,sc_specific_hours:NU,sc_specific_minutes:lU,sc_specific_months:LU,sc_specific_seconds:jU,sc_time:gU,sc_to:TU,sc_wizard:yU,sch_all:DU,sch_astroDay:dU,sch_astroNight:zU,sch_astro_dawn:IU,sch_astro_dusk:wU,sch_astro_goldenHour:CU,sch_astro_goldenHourEnd:hU,sch_astro_nadir:AU,sch_astro_nauticalDawn:pU,sch_astro_nauticalDusk:mU,sch_astro_night:OU,sch_astro_nightEnd:EU,sch_astro_solarNoon:_U,sch_astro_sunrise:SU,sch_astro_sunriseEnd:xU,sch_astro_sunset:fU,sch_astro_sunsetStart:kU,sch_at:YU,sch_desc_atTime:QU,sch_desc_everyDay:UU,sch_desc_everyHour:vU,sch_desc_everyMinute:bU,sch_desc_everyMonth:$U,sch_desc_everyNDay:PU,sch_desc_everyNHours:WU,sch_desc_everyNMinutes:RU,sch_desc_everyNMonths:JU,sch_desc_everyNWeeks:BU,sch_desc_everyNYears:FU,sch_desc_everyWeek:GU,sch_desc_everyYear:HU,sch_desc_intervalFromTo:VU,sch_desc_never:ZU,sch_desc_onDate:XU,sch_desc_onDates:KU,sch_desc_onEveryDate:qU,sch_desc_onMonth:ev,sch_desc_onMonths:tv,sch_desc_onWeekday:sv,sch_desc_onWeekdays:iv,sch_desc_onWeekends:ov,sch_desc_onWorkdays:rv,sch_desc_onceInPast:Mv,sch_desc_once_on:nv,sch_desc_validFrom:av,sch_desc_validFromTo:cv,sch_desc_validTo:uv,sch_every:Nv,sch_exactTime:lv,sch_from:Lv,sch_fromTo:jv,sch_intervalTime:gv,sch_invert:Tv,sch_no_one:yv,sch_on:Dv,sch_period:dv,sch_periodDaily:zv,sch_periodDates:Iv,sch_periodDay:wv,sch_periodEvery:Cv,sch_periodEveryDay:hv,sch_periodEveryMonth:Av,sch_periodEveryWeek:pv,sch_periodEveryYear:mv,sch_periodHours:Ov,sch_periodMinutes:Ev,sch_periodMonth:_v,sch_periodMonthly:Sv,sch_periodOnce:xv,sch_periodSpecificMonths:fv,sch_periodWeek:kv,sch_periodWeekdays:Yv,sch_periodWeekend:Qv,sch_periodWeekly:Uv,sch_periodWorkdays:vv,sch_periodYear:bv,sch_periodYearly:$v,sch_specificTime:Pv,sch_time:Wv,sch_to:Rv,sch_valid:Jv,sch_validFrom:Bv,sch_validTo:Fv,sch_wholeDay:Gv,sch_yearEveryMonth:Hv},Zv="Azioni",Xv="Aggiungere",Kv="Annulla",qv="Categorie",eb="Controllato",tb="Elimina",sb="Vicino",ib="Commerciale",ob="Configura",rb="Collegato",Mb="Continuare",nb="Copiato",ab="Creare",cb="Raccolto",ub="Delete",Nb="Elimina",lb="Scartare",Lb="Disconnesso",jb="Errore",gb="Filtro",Tb="Venerdì",yb="Latitudine",Db="Esci",db="Longitudine",zb="Messaggio",Ib="Lunedi",wb="Nome",Cb="Oggetti",hb="Ok",Ab="Prodotto",pb="Rinomina/Sposta/Copia",mb="Ripetere",Ob="Sostituire",Eb="Radice",_b="Sabato",Sb="Salva",xb="Selezionato",fb="stati",kb="Domenica",Yb="Giovedì",Qb="Timestamp",Ub="Martedì",vb="Aggiornare",bb="Valido fino a",$b="Valore",Pb="Versione",Wb="Mercoledì",Rb="Larghezza",Jb="SÌ",Bb="diverso",Fb="Tutti possono leggere gli oggetti",Gb="Tutti possono leggere lo stato",Hb="Tutti possono scrivere oggetti",Vb="Tutti possono scrivere stato",Zb="Il gruppo può leggere l'oggetto",Xb="Il gruppo può leggere lo stato",Kb="Il gruppo può scrivere l'oggetto",qb="Il gruppo può scrivere lo stato",e8="Il proprietario può leggere l'oggetto",t8="Il proprietario può leggere lo stato",s8="Il proprietario può scrivere l'oggetto",i8="Il proprietario può scrivere lo stato",o8="Bottoni",r8="Cambiato da",M8="vicino",n8="Crea uno stato booleano",a8="Crea canale",c8="Crea dispositivo",u8="Crea lo stato del numero",N8="Crea stato",l8="Crea lo stato della stringa",L8="g.",j8="fr",g8="momento",T8="Sa",y8="su",D8="th",d8="Tu",z8="Noi",I8="Modalità esperto",w8="FALSO",C8="Tutti i files",h8="Audio",A8="Codice/JSON",p8="immagini",m8="Testo",O8="video",E8="impostazioni",_8="senza",S8="Funzione",x8="ID",f8="Nome",k8="Ruolo",Y8="Camera",Q8="genere",U8="Impostazioni non valide",v8="Ultima modifica",b8="localmente",$8="apr",P8="agosto",W8="Dic",R8="febbraio",J8="gen",B8="lug",F8="giu",G8="Mai",H8="marzo",V8="nov",Z8="ottobre",X8="Sett",K8="apr",q8="agosto",e6="Dic",t6="febbraio",s6="gen",i6="lug",o6="giu",r6="Mai",M6="marzo",n6="nov",a6="ottobre",c6="Sett",u6="nessuna",N6="Oggetto modificato da",l6="L'oggetto è stato modificato l'ultima volta alle",L6="Impostazioni dall'altro adattatore %s",j6="Codice di qualità",g6="ripetere",T6='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',y6="Mostra tutto",D6="Stato cambiato da",d6="Oggetto cambiato da",z6="Timestamp",I6="Bandiera riconosciuta",w6="Commento",C6="Copia il valore dello stato",h6="Tieni premuto il tasto Cltr/⌘ per aprire il collegamento",A6="Impostazioni personalizzate",p6="Elimina oggetto",m6="Modifica oggetto",O6="Modifica il valore dello stato",E6="Scade tra",_6="A partire dal",S6="Ultima modifica",x6="Qualità",f6="Data e ora",k6="Utente",Y6="Valore",Q6="VERO",U6="Valore",v6="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",b6="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",$6="CRON",P6="Data",W6="Date",R6="Giorno",J6="Giorno della settimana",B6="Ogni",F6="ogni N giorni",G6="ogni Nesimo giorno della settimana",H6="ogni N giorno della settimana",V6="ogni N ore",Z6="ogni N minuti",X6="ogni N mesi",K6="ogni N secondi",q6="ogni giorno",e9="Tutti i giorni della settimana",t9="Tutti i giorni della settimana",s9="ogni ora",i9="ogni minuto",o9="ogni mese",r9="ogni secondo",M9="A partire dal",n9="Ore",a9="Intervallo",c9="Intervallo tra",u9="CRON non valido",N9="Minuti",l9="mesi",L9="Una volta",j9="Periodo",g9="secondi",T9="Semplice",y9="Orario preciso",D9="date specifiche",d9="giorno/i specifico/i della settimana",z9="giorno specifico delle settimane",I9="orari specifici",w9="minuti specifici",C9="mesi specifici",h9="secondi specifici",A9="Tempo",p9="Per",m9="procedura guidata",O9="tutti",E9="Astro day",_9="Astro night",S9="Alba",x9="Crepuscolo",f9="Ora d'oro",k9="Fine dell'ora d'oro",Y9="Nadir",Q9="Alba nautica",U9="Crepuscolo nautico",v9="Notte",b9="Fine della notte",$9="Mezzogiorno solare",P9="Alba",W9="Fine dell'alba",R9="Tramonto",J9="Inizio del tramonto",B9="a",F9="a %s",G9="ogni giorno",H9="ogni ora",V9="ogni minuto",Z9="ogni mese",X9="ogni %s giorno",K9="ogni %s ore",q9="ogni %s minuti",e7="ogni %s mesi",t7="ogni %s settimane",s7="ogni %s anni",i7="ogni settimana",o7="ogni anno",r7="da %s a %s",M7="mai",n7="su %s di %s",a7="su %s e %s di",c7="in ogni data di",u7="%s",N7="%s e %s",l7="su %s",L7="su %s e %s",j7="nei finesettimana",g7="nei giorni lavorativi",T7="non verrà più eseguito, perché start è nel passato",y7="su %s",D7="da %s",d7="Eseguire da a",z7="a %s",I7="ogni",w7="Orario preciso",C7="a partire dal",h7="Da A",A7="Intervallo di tempo",p7="invertire",m7="nessuna",O7="sopra",E7="Periodo",_7="Quotidiano",S7="Date",x7="Giorno",f7="Ogni",k7="Ogni giorno",Y7="Ogni mese",Q7="Ogni settimana",U7="Ogni anno",v7="Ore",b7="Minuti",$7="mese",P7="Mensile",W7="Una volta",R7="Mesi specifici",J7="Settimana",B7="Giorni della settimana",F7="Fine settimana",G7="settimanalmente",H7="giorni feriali",V7="Anno",Z7="Annuale",X7="Orario preciso",K7="Tempo",q7="per",e$="Valido",t$="a partire dal",s$="per",i$="Giorno intero",o$="ogni mese",r$={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza",ra_Actions:Zv,"ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:Xv,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:Kv,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:qv,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:eb,ra_Clear:tb,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:sb,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:ib,ra_Configure:ob,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:rb,ra_Continue:Mb,ra_Copied:nb,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:ab,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:cb,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:ub,ra_Delete:Nb,"ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:lb,ra_Disconnected:Lb,"ra_Do not ask for next 2 hours in this session":"Non chiedere per le prossime 2 ore in questa sessione","ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit full path":"Modifica percorso completo","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore","ra_Enter the code from that page here":"Inserisci qui il codice da quella pagina",ra_Error:jb,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:gb,"ra_Filter and Data Actions":"Azioni sui filtri e sui dati","ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:Tb,"ra_Get %s access":"Ottieni l'accesso %s","ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:yb,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Logout:Db,ra_Longitude:db,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:zb,ra_Monday:Ib,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:wb,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:Cb,ra_Ok:hb,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please allow popups in your browser for this page!":"Si prega di abilitare i popup nel browser per questa pagina!","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Press ENTER Key to add new item":"Premere il tasto INVIO per aggiungere un nuovo elemento","ra_Private certificate":"Certificato privato",ra_Product:Ab,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Rename_Move_Copy:pb,"ra_Renew %s access":"Rinnova l'accesso %s",ra_Repeat:mb,ra_Replace:Ob,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:Eb,ra_Saturday:_b,ra_Save:Sb,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:xb,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sessione scadrà tra %s secondi. Continuare?","ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:fb,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.","ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:kb,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:Yb,ra_Timestamp:Qb,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:Ub,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:vb,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:bb,ra_Value:$b,ra_Version:Pb,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:Wb,ra_Width:Rb,ra_Yes:Jb,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo",ra___different__:Bb,ra_aclEveryone_read_object:Fb,ra_aclEveryone_read_state:Gb,ra_aclEveryone_write_object:Hb,ra_aclEveryone_write_state:Vb,ra_aclGroup_read_object:Zb,ra_aclGroup_read_state:Xb,ra_aclGroup_write_object:Kb,ra_aclGroup_write_state:qb,ra_aclOwner_read_object:e8,ra_aclOwner_read_state:t8,ra_aclOwner_write_object:s8,ra_aclOwner_write_state:i8,ra_buttons:o8,ra_changedFrom:r8,ra_close:M8,ra_create_boolean_state:n8,ra_create_channel:a8,ra_create_device:c8,ra_create_number_state:u8,ra_create_state:N8,ra_create_string_state:l8,ra_daysShortText:L8,ra_dow_Fr:j8,ra_dow_Mo:g8,ra_dow_Sa:T8,ra_dow_Su:y8,ra_dow_Th:D8,ra_dow_Tu:d8,ra_dow_We:z8,ra_expertMode:I8,ra_false:w8,ra_fileType_all:C8,ra_fileType_audio:h8,ra_fileType_code:A8,ra_fileType_images:p8,ra_fileType_txt:m8,ra_fileType_video:O8,"ra_fileType_video,":"video",ra_filter_customs:E8,ra_filter_customs_without:_8,ra_filter_func:S8,ra_filter_id:x8,ra_filter_name:f8,ra_filter_role:k8,ra_filter_room:Y8,ra_filter_type:Q8,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:U8,ra_lastChange:v8,ra_locally:b8,ra_month_Apr:$8,ra_month_Aug:P8,ra_month_Dec:W8,ra_month_Feb:R8,ra_month_Jan:J8,ra_month_Jul:B8,ra_month_Jun:F8,ra_month_Mai:G8,ra_month_Mar:H8,ra_month_Nov:V8,ra_month_Oct:Z8,ra_month_Sep:X8,ra_months_Apr:K8,ra_months_Aug:q8,ra_months_Dec:e6,ra_months_Feb:t6,ra_months_Jan:s6,ra_months_Jul:i6,ra_months_Jun:o6,ra_months_Mai:r6,ra_months_Mar:M6,ra_months_Nov:n6,ra_months_Oct:a6,ra_months_Sep:c6,"ra_no confirm for 5 mins":"nessuna conferma per 5 minuti",ra_none:u6,ra_object_changed_by:N6,ra_object_changed_by_user:l6,ra_otherConfig:L6,ra_qualityCode:j6,ra_repeat:g6,ra_select_folder_hint:T6,ra_show_all:y6,ra_state_changed_by:D6,ra_state_changed_from:d6,ra_timestamp:z6,ra_tooltip_ack:I6,ra_tooltip_comment:w6,ra_tooltip_copyState:C6,ra_tooltip_ctrlForLink:h6,ra_tooltip_customConfig:A6,ra_tooltip_deleteObject:p6,ra_tooltip_editObject:m6,ra_tooltip_editState:O6,ra_tooltip_expire:E6,ra_tooltip_from:_6,ra_tooltip_lc:S6,ra_tooltip_quality:x6,ra_tooltip_ts:f6,ra_tooltip_user:k6,ra_tooltip_value:Y6,ra_true:Q6,"ra_use seconds":"usa i secondi",ra_val:U6,"ra_via internet":"attraverso internet",ra_warning_every_minute:v6,ra_warning_every_second:b6,sc_cron:$6,sc_date:P6,sc_dates:W6,sc_dow:R6,sc_dows:J6,sc_every:B6,sc_everyN_dates:F6,sc_everyN_dow:G6,sc_everyN_dows:H6,sc_everyN_hours:V6,sc_everyN_minutes:Z6,sc_everyN_months:X6,sc_everyN_seconds:K6,sc_every_dates:q6,sc_every_dow:e9,sc_every_dows:t9,sc_every_hours:s9,sc_every_minutes:i9,sc_every_months:o9,sc_every_seconds:r9,sc_from:M9,sc_hours:n9,sc_interval:a9,sc_intervalBetween:c9,sc_invalid_cron:u9,sc_minutes:N9,sc_months:l9,sc_once:L9,sc_period:j9,sc_seconds:g9,sc_simple:T9,sc_specific:y9,sc_specific_dates:D9,sc_specific_dow:d9,sc_specific_dows:z9,sc_specific_hours:I9,sc_specific_minutes:w9,sc_specific_months:C9,sc_specific_seconds:h9,sc_time:A9,sc_to:p9,sc_wizard:m9,sch_all:O9,sch_astroDay:E9,sch_astroNight:_9,sch_astro_dawn:S9,sch_astro_dusk:x9,sch_astro_goldenHour:f9,sch_astro_goldenHourEnd:k9,sch_astro_nadir:Y9,sch_astro_nauticalDawn:Q9,sch_astro_nauticalDusk:U9,sch_astro_night:v9,sch_astro_nightEnd:b9,sch_astro_solarNoon:$9,sch_astro_sunrise:P9,sch_astro_sunriseEnd:W9,sch_astro_sunset:R9,sch_astro_sunsetStart:J9,sch_at:B9,sch_desc_atTime:F9,sch_desc_everyDay:G9,sch_desc_everyHour:H9,sch_desc_everyMinute:V9,sch_desc_everyMonth:Z9,sch_desc_everyNDay:X9,sch_desc_everyNHours:K9,sch_desc_everyNMinutes:q9,sch_desc_everyNMonths:e7,sch_desc_everyNWeeks:t7,sch_desc_everyNYears:s7,sch_desc_everyWeek:i7,sch_desc_everyYear:o7,sch_desc_intervalFromTo:r7,sch_desc_never:M7,sch_desc_onDate:n7,sch_desc_onDates:a7,sch_desc_onEveryDate:c7,sch_desc_onMonth:u7,sch_desc_onMonths:N7,sch_desc_onWeekday:l7,sch_desc_onWeekdays:L7,sch_desc_onWeekends:j7,sch_desc_onWorkdays:g7,sch_desc_onceInPast:T7,sch_desc_once_on:y7,sch_desc_validFrom:D7,sch_desc_validFromTo:d7,sch_desc_validTo:z7,sch_every:I7,sch_exactTime:w7,sch_from:C7,sch_fromTo:h7,sch_intervalTime:A7,sch_invert:p7,sch_no_one:m7,sch_on:O7,sch_period:E7,sch_periodDaily:_7,sch_periodDates:S7,sch_periodDay:x7,sch_periodEvery:f7,sch_periodEveryDay:k7,sch_periodEveryMonth:Y7,sch_periodEveryWeek:Q7,sch_periodEveryYear:U7,sch_periodHours:v7,sch_periodMinutes:b7,sch_periodMonth:$7,sch_periodMonthly:P7,sch_periodOnce:W7,sch_periodSpecificMonths:R7,sch_periodWeek:J7,sch_periodWeekdays:B7,sch_periodWeekend:F7,sch_periodWeekly:G7,sch_periodWorkdays:H7,sch_periodYear:V7,sch_periodYearly:Z7,sch_specificTime:X7,sch_time:K7,sch_to:q7,sch_valid:e$,sch_validFrom:t$,sch_validTo:s$,sch_wholeDay:i$,sch_yearEveryMonth:o$},M$="Comportamiento",n$="Adjuntar",a$="Cancelar",c$="Categorías",u$="Comprobado",N$="Borrar",l$="Cerca",L$="Comercial",j$="Configurar",g$="Conectado",T$="Continuar",y$="Copiado",D$="Crear",d$="Cultivo",z$="Delete",I$="Eliminar",w$="Desechar",C$="Desconectado",h$="Error",A$="Filtrar",p$="Viernes",m$="Latitud",O$="Cerrar sesión",E$="Longitud",_$="Mensaje",S$="Lunes",x$="Nombre",f$="Objetos",k$="Okay",Y$="Producto",Q$="Cambiar nombre/Mover/Copiar",U$="Repetir",v$="Reemplazar",b$="Raíz",$$="Sábado",P$="Salvar",W$="Seleccionado",R$="Estados",J$="Domingo",B$="Jueves",F$="Marca de tiempo",G$="Martes",H$="Actualizar",V$="Válida hasta",Z$="Valor",X$="Versión",K$="Miércoles",q$="Anchura",eP="Sí",tP="diferente",sP="Todo el mundo puede leer el objeto",iP="Todos pueden leer el estado",oP="Todos pueden escribir objetos",rP="Todos pueden escribir el estado",MP="El grupo puede leer el objeto",nP="El grupo puede leer el estado",aP="El grupo puede escribir un objeto",cP="El grupo puede escribir el estado",uP="El propietario puede leer el objeto",NP="El propietario puede leer el estado",lP="El propietario puede escribir el objeto",LP="El propietario puede escribir el estado",jP="Botones",gP="Cambiaron desde",TP="cerrar",yP="Crear estado booleano",DP="Crear canal",dP="Crear dispositivo",zP="Crear estado numérico",IP="Crear estado",wP="Crear estado de cadena",CP="d.",hP="Fr",AP="Mes",pP="Sa",mP="Su",OP="Th",EP="Tu",_P="Nosotros",SP="Modo experto",xP="FALSO",fP="Todos los archivos",kP="Audio",YP="Código/JSON",QP="Imágenes",UP="Texto",vP="Video",bP="Configuraciones",$P="sin",PP="Función",WP="ID",RP="Nombre",JP="Papel",BP="Habitación",FP="Tipo",GP="Configuraciones inválidas",HP="Ultimo cambio",VP="en la zona",ZP="Abr",XP="Ago",KP="Dic",qP="Feb",eW="Ene",tW="Jul",sW="Jun",iW="Mai",oW="Mar",rW="Nov",MW="Oct",nW="Sep",aW="Abr",cW="Ago",uW="Dic",NW="Feb",lW="Ene",LW="Jul",jW="Jun",gW="Mai",TW="Mar",yW="Nov",DW="Oct",dW="Sep",zW="ninguno",IW="Objeto cambiado por",wW="Objeto cambiado por última vez a las",CW="Configuraciones de otro adaptador %s",hW="Código de calidad",AW="repetir",pW='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',mW="Mostrar todo",OW="Estado cambiado por",EW="Objeto cambiado de",_W="Marca de tiempo",SW="Bandera reconocida",xW="Comentario",fW="Copie el valor del estado",kW="Mantenga presionada la tecla Cltr/⌘ para abrir el enlace",YW="Ajustes personalizados",QW="Eliminar objeto",UW="Editar objeto",vW="Edite el valor del estado",bW="Caduca en",$W="Desde",PW="Último cambio",WW="Calidad",RW="Sello de tiempo",JW="Usuario",BW="Valor",FW="VERDADERO",GW="Valor",HW="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",VW="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",ZW="CRON",XW="Fecha",KW="fechas",qW="Día",eR="Día de la semana",tR="Cada",sR="cada N días",iR="cada enésimo día de la semana",oR="cada N día de la semana",rR="cada N horas",MR="cada N minutos",nR="cada N meses",aR="cada N segundos",cR="cada día",uR="Cada día de la semana",NR="Cada día de la semana",lR="cada hora",LR="cada minuto",jR="cada mes",gR="cada segundo",TR="De",yR="Horas",DR="Intervalo",dR="Intervalo entre",zR="CRON no válido",IR="Minutos",wR="meses",CR="Una vez",hR="Período",AR="Segundos",pR="Sencillo",mR="Tiempo específico",OR="fechas especificas",ER="día(s) específico(s) de la semana",_R="día específico de semanas",SR="horas específicas",xR="minutos específicos",fR="meses específicos",kR="segundos específicos",YR="Hora",QR="A",UR="Mago",vR="todas",bR="Día astro",$R="Noche astro",PR="Amanecer",WR="Oscuridad",RR="hora dorada",JR="Fin de la hora dorada",BR="Nadir",FR="Amanecer náutico",GR="Anochecer náutico",HR="Noche",VR="Fin de la noche",ZR="Mediodía solar",XR="amanecer",KR="Fin del amanecer",qR="Puesta de sol",eJ="Puesta de sol",tJ="a",sJ="en %s",iJ="cada día",oJ="cada hora",rJ="cada minuto",MJ="cada mes",nJ="cada %s días",aJ="cada %s horas",cJ="cada %s minutos",uJ="cada %s meses",NJ="cada %s semanas",lJ="cada %s años",LJ="cada semana",jJ="todos los años",gJ="de %s a %s",TJ="Nunca",yJ="en %s de %s",DJ="en %s y %s de",dJ="en cada fecha de",zJ="%s",IJ="%s y %s",wJ="en %s",CJ="en %s y %s",hJ="en los fines de semana",AJ="en días laborables",pJ="ya no se ejecutará más, porque el inicio está en el pasado",mJ="en %s",OJ="de %s",EJ="Ejecutar desde hasta",_J="a %s",SJ="cada",xJ="Tiempo específico",fJ="de",kJ="De-a",YJ="Tiempo de intervalo",QJ="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",UJ="ninguna",vJ="en",bJ="Período",$J="Diario",PJ="fechas",WJ="Día",RJ="Cada",JJ="Cada día",BJ="Cada mes",FJ="Cada semana",GJ="Todos los años",HJ="Horas",VJ="Minutos",ZJ="mes",XJ="Mensual",KJ="Una vez",qJ="Meses específicos",eB="Semana",tB="Días laborables",sB="Fin de semana",iB="Semanal",oB="Días laborables",rB="Año",MB="Anual",nB="Tiempo específico",aB="Hora",cB="a",uB="Válido",NB="de",lB="a",LB="Todo el dia",jB="cada mes",gB={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia",ra_Actions:M$,"ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:n$,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:a$,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:c$,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:u$,ra_Clear:N$,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:l$,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:L$,ra_Configure:j$,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:g$,ra_Continue:T$,ra_Copied:y$,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:D$,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:d$,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:z$,ra_Delete:I$,"ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:w$,ra_Disconnected:C$,"ra_Do not ask for next 2 hours in this session":"No preguntes por las siguientes 2 horas en esta sesión.","ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit full path":"Editar ruta completa","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Introduzca el código de esa página aquí",ra_Error:h$,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:A$,"ra_Filter and Data Actions":"Acciones de filtrado y datos","ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:p$,"ra_Get %s access":"Obtener %s acceso","ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:m$,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Logout:O$,ra_Longitude:E$,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:_$,ra_Monday:S$,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:x$,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:f$,ra_Ok:k$,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please allow popups in your browser for this page!":"¡Permita ventanas emergentes en su navegador para esta página!","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Press ENTER Key to add new item":"Presione la tecla ENTER para agregar un nuevo elemento","ra_Private certificate":"certificado privado",ra_Product:Y$,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Rename_Move_Copy:Q$,"ra_Renew %s access":"Renovar el acceso a %s",ra_Repeat:U$,ra_Replace:v$,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:b$,ra_Saturday:$$,ra_Save:P$,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:W$,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sesión expirará en %s segundos. ¿Continuar?","ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:R$,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.","ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:J$,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:B$,ra_Timestamp:F$,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:G$,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:H$,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:V$,ra_Value:Z$,ra_Version:X$,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:K$,ra_Width:q$,ra_Yes:eP,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto",ra___different__:tP,ra_aclEveryone_read_object:sP,ra_aclEveryone_read_state:iP,ra_aclEveryone_write_object:oP,ra_aclEveryone_write_state:rP,ra_aclGroup_read_object:MP,ra_aclGroup_read_state:nP,ra_aclGroup_write_object:aP,ra_aclGroup_write_state:cP,ra_aclOwner_read_object:uP,ra_aclOwner_read_state:NP,ra_aclOwner_write_object:lP,ra_aclOwner_write_state:LP,ra_buttons:jP,ra_changedFrom:gP,ra_close:TP,ra_create_boolean_state:yP,ra_create_channel:DP,ra_create_device:dP,ra_create_number_state:zP,ra_create_state:IP,ra_create_string_state:wP,ra_daysShortText:CP,ra_dow_Fr:hP,ra_dow_Mo:AP,ra_dow_Sa:pP,ra_dow_Su:mP,ra_dow_Th:OP,ra_dow_Tu:EP,ra_dow_We:_P,ra_expertMode:SP,ra_false:xP,ra_fileType_all:fP,ra_fileType_audio:kP,ra_fileType_code:YP,ra_fileType_images:QP,ra_fileType_txt:UP,ra_fileType_video:vP,"ra_fileType_video,":"Video",ra_filter_customs:bP,ra_filter_customs_without:$P,ra_filter_func:PP,ra_filter_id:WP,ra_filter_name:RP,ra_filter_role:JP,ra_filter_room:BP,ra_filter_type:FP,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:GP,ra_lastChange:HP,ra_locally:VP,ra_month_Apr:ZP,ra_month_Aug:XP,ra_month_Dec:KP,ra_month_Feb:qP,ra_month_Jan:eW,ra_month_Jul:tW,ra_month_Jun:sW,ra_month_Mai:iW,ra_month_Mar:oW,ra_month_Nov:rW,ra_month_Oct:MW,ra_month_Sep:nW,ra_months_Apr:aW,ra_months_Aug:cW,ra_months_Dec:uW,ra_months_Feb:NW,ra_months_Jan:lW,ra_months_Jul:LW,ra_months_Jun:jW,ra_months_Mai:gW,ra_months_Mar:TW,ra_months_Nov:yW,ra_months_Oct:DW,ra_months_Sep:dW,"ra_no confirm for 5 mins":"Sin confirmación durante 5 minutos",ra_none:zW,ra_object_changed_by:IW,ra_object_changed_by_user:wW,ra_otherConfig:CW,ra_qualityCode:hW,ra_repeat:AW,ra_select_folder_hint:pW,ra_show_all:mW,ra_state_changed_by:OW,ra_state_changed_from:EW,ra_timestamp:_W,ra_tooltip_ack:SW,ra_tooltip_comment:xW,ra_tooltip_copyState:fW,ra_tooltip_ctrlForLink:kW,ra_tooltip_customConfig:YW,ra_tooltip_deleteObject:QW,ra_tooltip_editObject:UW,ra_tooltip_editState:vW,ra_tooltip_expire:bW,ra_tooltip_from:$W,ra_tooltip_lc:PW,ra_tooltip_quality:WW,ra_tooltip_ts:RW,ra_tooltip_user:JW,ra_tooltip_value:BW,ra_true:FW,"ra_use seconds":"usar segundos",ra_val:GW,"ra_via internet":"vía Internet",ra_warning_every_minute:HW,ra_warning_every_second:VW,sc_cron:ZW,sc_date:XW,sc_dates:KW,sc_dow:qW,sc_dows:eR,sc_every:tR,sc_everyN_dates:sR,sc_everyN_dow:iR,sc_everyN_dows:oR,sc_everyN_hours:rR,sc_everyN_minutes:MR,sc_everyN_months:nR,sc_everyN_seconds:aR,sc_every_dates:cR,sc_every_dow:uR,sc_every_dows:NR,sc_every_hours:lR,sc_every_minutes:LR,sc_every_months:jR,sc_every_seconds:gR,sc_from:TR,sc_hours:yR,sc_interval:DR,sc_intervalBetween:dR,sc_invalid_cron:zR,sc_minutes:IR,sc_months:wR,sc_once:CR,sc_period:hR,sc_seconds:AR,sc_simple:pR,sc_specific:mR,sc_specific_dates:OR,sc_specific_dow:ER,sc_specific_dows:_R,sc_specific_hours:SR,sc_specific_minutes:xR,sc_specific_months:fR,sc_specific_seconds:kR,sc_time:YR,sc_to:QR,sc_wizard:UR,sch_all:vR,sch_astroDay:bR,sch_astroNight:$R,sch_astro_dawn:PR,sch_astro_dusk:WR,sch_astro_goldenHour:RR,sch_astro_goldenHourEnd:JR,sch_astro_nadir:BR,sch_astro_nauticalDawn:FR,sch_astro_nauticalDusk:GR,sch_astro_night:HR,sch_astro_nightEnd:VR,sch_astro_solarNoon:ZR,sch_astro_sunrise:XR,sch_astro_sunriseEnd:KR,sch_astro_sunset:qR,sch_astro_sunsetStart:eJ,sch_at:tJ,sch_desc_atTime:sJ,sch_desc_everyDay:iJ,sch_desc_everyHour:oJ,sch_desc_everyMinute:rJ,sch_desc_everyMonth:MJ,sch_desc_everyNDay:nJ,sch_desc_everyNHours:aJ,sch_desc_everyNMinutes:cJ,sch_desc_everyNMonths:uJ,sch_desc_everyNWeeks:NJ,sch_desc_everyNYears:lJ,sch_desc_everyWeek:LJ,sch_desc_everyYear:jJ,sch_desc_intervalFromTo:gJ,sch_desc_never:TJ,sch_desc_onDate:yJ,sch_desc_onDates:DJ,sch_desc_onEveryDate:dJ,sch_desc_onMonth:zJ,sch_desc_onMonths:IJ,sch_desc_onWeekday:wJ,sch_desc_onWeekdays:CJ,sch_desc_onWeekends:hJ,sch_desc_onWorkdays:AJ,sch_desc_onceInPast:pJ,sch_desc_once_on:mJ,sch_desc_validFrom:OJ,sch_desc_validFromTo:EJ,sch_desc_validTo:_J,sch_every:SJ,sch_exactTime:xJ,sch_from:fJ,sch_fromTo:kJ,sch_intervalTime:YJ,sch_invert:QJ,sch_no_one:UJ,sch_on:vJ,sch_period:bJ,sch_periodDaily:$J,sch_periodDates:PJ,sch_periodDay:WJ,sch_periodEvery:RJ,sch_periodEveryDay:JJ,sch_periodEveryMonth:BJ,sch_periodEveryWeek:FJ,sch_periodEveryYear:GJ,sch_periodHours:HJ,sch_periodMinutes:VJ,sch_periodMonth:ZJ,sch_periodMonthly:XJ,sch_periodOnce:KJ,sch_periodSpecificMonths:qJ,sch_periodWeek:eB,sch_periodWeekdays:tB,sch_periodWeekend:sB,sch_periodWeekly:iB,sch_periodWorkdays:oB,sch_periodYear:rB,sch_periodYearly:MB,sch_specificTime:nB,sch_time:aB,sch_to:cB,sch_valid:uB,sch_validFrom:NB,sch_validTo:lB,sch_wholeDay:LB,sch_yearEveryMonth:jB},TB="Akcje",yB="Dodać",DB="Anuluj",dB="Kategorie",zB="Sprawdzony",IB="Kasować",wB="Blisko",CB="Handlowy",hB="Konfiguruj",AB="Połączony",pB="Kontynuować",mB="Skopiowano",OB="Stwórz",EB="Przyciąć",_B="Delete",SB="Usunąć",xB="Wyrzucać",fB="Niepowiązany",kB="Błąd",YB="Filtr",QB="Piątek",UB="Szerokość",vB="Wyloguj",bB="Długość geograficzna",$B="Wiadomość",PB="Poniedziałek",WB="Nazwa",RB="Obiekty",JB="Dobrze",BB="Produkt",FB="Zmień nazwę/Przenieś/Kopiuj",GB="Powtarzać",HB="Zastępować",VB="Korzeń",ZB="Sobota",XB="Zapisać",KB="Wybrany",qB="Stany",eF="Niedziela",tF="Czwartek",sF="Znak czasu",iF="Wtorek",oF="Aktualizacja",rF="Obowiązuje do",MF="Wartość",nF="Wersja",aF="Środa",cF="Szerokość",uF="Tak",NF="różne",lF="Każdy może czytać obiekt",LF="Każdy może czytać stan",jF="Każdy może pisać przedmiot",gF="Każdy może pisać stan",TF="Grupa może odczytać obiekt",yF="Grupa może odczytać stan",DF="Grupa może pisać obiekt",dF="Grupa może pisać stan",zF="Właściciel może czytać obiekt",IF="Właściciel może odczytać stan",wF="Właściciel może napisać obiekt",CF="Właściciel może pisać stan",hF="guziki",AF="Zmieniony z",pF="blisko",mF="Utwórz stan logiczny",OF="Utwórz kanał",EF="Utwórz urządzenie",_F="Utwórz stan liczbowy",SF="Utwórz stan",xF="Utwórz stan ciągu",fF="d.",kF="Ks",YF="Mo",QF="Sa",UF="Su",vF="Th",bF="Tu",$F="My",PF="Tryb ekspercki",WF="FAŁSZ",RF="Wszystkie pliki",JF="Audio",BF="Kod/JSON",FF="Obrazy",GF="Tekst",HF="Wideo",VF="Ustawienia",ZF="bez",XF="Funkcjonować",KF="ID",qF="Imię",eG="Rola",tG="Sala",sG="Rodzaj",iG="Nieprawidłowe ustawienia",oG="Ostatnia zmiana",rG="lokalnie",MG="kwiecień",nG="sierpień",aG="grudzień",cG="luty",uG="styczeń",NG="lipiec",lG="czerwiec",LG="Mai",jG="Zniszczyć",gG="listopad",TG="październik",yG="wrzesień",DG="kwiecień",dG="sierpień",zG="grudzień",IG="luty",wG="styczeń",CG="lipiec",hG="czerwiec",AG="Mai",pG="Zniszczyć",mG="listopad",OG="październik",EG="wrzesień",_G="Żaden",SG="Obiekt zmieniony przez",xG="Obiekt ostatnio zmieniony o godz",fG="Ustawienia z innego adaptera %s",kG="Kod jakości",YG="powtarzać",QG="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",UG="Pokaż wszystko",vG="Stan zmieniony przez",bG="Obiekt zmieniony z",$G="Znak czasu",PG="Potwierdzon",WG="Komentarz",RG="Skopiuj wartość stanu",JG="Przytrzymaj klawisz CTRL/⌘, aby otworzyć link",BG="Własne ustawienia",FG="Usuń obiekt",GG="Edytuj obiekt",HG="Edytuj wartość stanu",VG="Wygasa za",ZG="Z",XG="Ostatnia zmiana",KG="Jakość",qG="Znak czasu",eH="Użytkownik",tH="Wartość",sH="PRAWDA",iH="Wartość",oH="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",rH="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",MH="CRON",nH="Data",aH="Daktyle",cH="Dzień",uH="Dzień tygodnia",NH="Każdy",lH="co N dni",LH="w każdy N-ty dzień tygodnia",jH="co N dnia tygodnia",gH="co N godzin",TH="co N minut",yH="co N miesięcy",DH="co N sekund",dH="codziennie",zH="każdy dzień tygodnia",IH="każdy dzień tygodnia",wH="co godzinę",CH="każda minuta",hH="każdego miesiąca",AH="każda sekunda",pH="Od",mH="godziny",OH="Interwał",EH="Interwał między",_H="Nieprawidłowy CRON",SH="Minuty",xH="miesięcy",fH="Pewnego razu",kH="Kropka",YH="sekundy",QH="Prosty",UH="Określony czas",vH="konkretne daty",bH="określone dni tygodnia",$H="określony dzień tygodni",PH="określone godziny",WH="określone minuty",RH="określone miesiące",JH="określone sekundy",BH="Czas",FH="Do",GH="Czarodziej",HH="wszystko",VH="Dzień Astro",ZH="Noc Astro",XH="Świt",KH="Zmierzch",qH="złota godzina",eV="Koniec złotej godziny",tV="Nadir",sV="Morski świt",iV="Morski zmierzch",oV="Noc",rV="Koniec nocy",MV="Południe słoneczne",nV="wschód słońca",aV="Koniec wschodu słońca",cV="Zachód słońca",uV="Początek zachodu słońca",NV="w",lV="na %s",LV="codziennie",jV="co godzinę",gV="każda minuta",TV="każdego miesiąca",yV="każdego dnia %s",DV="co %s godzin",dV="co %s minut",zV="co %s miesięcy",IV="co %s tygodni",wV="co %s lat",CV="co tydzień",hV="każdego roku",AV="od %s do %s",pV="nigdy",mV="na %s z %s",OV="na %s i %s z",EV="w każdą datę",_V="%s",SV="%s i %s",xV="na %s",fV="na %s i %s",kV="w weekendy",YV="w dni robocze",QV="nie będzie już wykonywany, ponieważ start jest w przeszłości",UV="na %s",vV="z %s",bV="Wykonaj od do",$V="do %s",PV="każdy",WV="Określony czas",RV="od",JV="Od-do",BV="Czas przerwy",FV="odwracać",GV="Żaden",HV="na",VV="Kropka",ZV="Codziennie",XV="Daktyle",KV="Dzień",qV="Każdy",eZ="Codziennie",tZ="Każdego miesiąca",sZ="Co tydzień",iZ="Każdego roku",oZ="godziny",rZ="Minuty",MZ="miesiąc",nZ="Miesięczny",aZ="Pewnego razu",cZ="Określone miesiące",uZ="Tydzień",NZ="Dni powszednie",lZ="Weekend",LZ="Co tydzień",jZ="Dni robocze",gZ="Rok",TZ="Rocznie",yZ="Określony czas",DZ="Czas",dZ="do",zZ="Ważny",IZ="od",wZ="do",CZ="Cały dzień",hZ="każdego miesiąca",AZ={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję",ra_Actions:TB,"ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:yB,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:DB,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:dB,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:zB,ra_Clear:IB,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:wB,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:CB,ra_Configure:hB,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:AB,ra_Continue:pB,ra_Copied:mB,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:OB,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:EB,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:_B,ra_Delete:SB,"ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:xB,ra_Disconnected:fB,"ra_Do not ask for next 2 hours in this session":"Nie proś o kolejne 2 godziny w tej sesji","ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit full path":"Edytuj pełną ścieżkę","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość","ra_Enter the code from that page here":"Wpisz kod z tej strony tutaj",ra_Error:kB,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:YB,"ra_Filter and Data Actions":"Akcje filtrów i danych","ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:QB,"ra_Get %s access":"Uzyskaj dostęp %s","ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:UB,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Logout:vB,ra_Longitude:bB,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:$B,ra_Monday:PB,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:WB,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:RB,ra_Ok:JB,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please allow popups in your browser for this page!":"Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Press ENTER Key to add new item":"Naciśnij klawisz ENTER, aby dodać nowy element","ra_Private certificate":"Prywatny certyfikat",ra_Product:BB,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Rename_Move_Copy:FB,"ra_Renew %s access":"Odnów dostęp %s",ra_Repeat:GB,ra_Replace:HB,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:VB,ra_Saturday:ZB,ra_Save:XB,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:KB,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Session will expire in %s seconds. Continue?":"Sesja wygaśnie za %s sekund. Kontynuować?","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:qB,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.","ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:eF,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:tF,ra_Timestamp:sF,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:iF,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:oF,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:rF,ra_Value:MF,ra_Version:nF,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:aF,ra_Width:cF,ra_Yes:uF,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst",ra___different__:NF,ra_aclEveryone_read_object:lF,ra_aclEveryone_read_state:LF,ra_aclEveryone_write_object:jF,ra_aclEveryone_write_state:gF,ra_aclGroup_read_object:TF,ra_aclGroup_read_state:yF,ra_aclGroup_write_object:DF,ra_aclGroup_write_state:dF,ra_aclOwner_read_object:zF,ra_aclOwner_read_state:IF,ra_aclOwner_write_object:wF,ra_aclOwner_write_state:CF,ra_buttons:hF,ra_changedFrom:AF,ra_close:pF,ra_create_boolean_state:mF,ra_create_channel:OF,ra_create_device:EF,ra_create_number_state:_F,ra_create_state:SF,ra_create_string_state:xF,ra_daysShortText:fF,ra_dow_Fr:kF,ra_dow_Mo:YF,ra_dow_Sa:QF,ra_dow_Su:UF,ra_dow_Th:vF,ra_dow_Tu:bF,ra_dow_We:$F,ra_expertMode:PF,ra_false:WF,ra_fileType_all:RF,ra_fileType_audio:JF,ra_fileType_code:BF,ra_fileType_images:FF,ra_fileType_txt:GF,ra_fileType_video:HF,"ra_fileType_video,":"Wideo",ra_filter_customs:VF,ra_filter_customs_without:ZF,ra_filter_func:XF,ra_filter_id:KF,ra_filter_name:qF,ra_filter_role:eG,ra_filter_room:tG,ra_filter_type:sG,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:iG,ra_lastChange:oG,ra_locally:rG,ra_month_Apr:MG,ra_month_Aug:nG,ra_month_Dec:aG,ra_month_Feb:cG,ra_month_Jan:uG,ra_month_Jul:NG,ra_month_Jun:lG,ra_month_Mai:LG,ra_month_Mar:jG,ra_month_Nov:gG,ra_month_Oct:TG,ra_month_Sep:yG,ra_months_Apr:DG,ra_months_Aug:dG,ra_months_Dec:zG,ra_months_Feb:IG,ra_months_Jan:wG,ra_months_Jul:CG,ra_months_Jun:hG,ra_months_Mai:AG,ra_months_Mar:pG,ra_months_Nov:mG,ra_months_Oct:OG,ra_months_Sep:EG,"ra_no confirm for 5 mins":"brak potwierdzenia przez 5 minut",ra_none:_G,ra_object_changed_by:SG,ra_object_changed_by_user:xG,ra_otherConfig:fG,ra_qualityCode:kG,ra_repeat:YG,ra_select_folder_hint:QG,ra_show_all:UG,ra_state_changed_by:vG,ra_state_changed_from:bG,ra_timestamp:$G,ra_tooltip_ack:PG,ra_tooltip_comment:WG,ra_tooltip_copyState:RG,ra_tooltip_ctrlForLink:JG,ra_tooltip_customConfig:BG,ra_tooltip_deleteObject:FG,ra_tooltip_editObject:GG,ra_tooltip_editState:HG,ra_tooltip_expire:VG,ra_tooltip_from:ZG,ra_tooltip_lc:XG,ra_tooltip_quality:KG,ra_tooltip_ts:qG,ra_tooltip_user:eH,ra_tooltip_value:tH,ra_true:sH,"ra_use seconds":"użyj sekund",ra_val:iH,"ra_via internet":"przez internet",ra_warning_every_minute:oH,ra_warning_every_second:rH,sc_cron:MH,sc_date:nH,sc_dates:aH,sc_dow:cH,sc_dows:uH,sc_every:NH,sc_everyN_dates:lH,sc_everyN_dow:LH,sc_everyN_dows:jH,sc_everyN_hours:gH,sc_everyN_minutes:TH,sc_everyN_months:yH,sc_everyN_seconds:DH,sc_every_dates:dH,sc_every_dow:zH,sc_every_dows:IH,sc_every_hours:wH,sc_every_minutes:CH,sc_every_months:hH,sc_every_seconds:AH,sc_from:pH,sc_hours:mH,sc_interval:OH,sc_intervalBetween:EH,sc_invalid_cron:_H,sc_minutes:SH,sc_months:xH,sc_once:fH,sc_period:kH,sc_seconds:YH,sc_simple:QH,sc_specific:UH,sc_specific_dates:vH,sc_specific_dow:bH,sc_specific_dows:$H,sc_specific_hours:PH,sc_specific_minutes:WH,sc_specific_months:RH,sc_specific_seconds:JH,sc_time:BH,sc_to:FH,sc_wizard:GH,sch_all:HH,sch_astroDay:VH,sch_astroNight:ZH,sch_astro_dawn:XH,sch_astro_dusk:KH,sch_astro_goldenHour:qH,sch_astro_goldenHourEnd:eV,sch_astro_nadir:tV,sch_astro_nauticalDawn:sV,sch_astro_nauticalDusk:iV,sch_astro_night:oV,sch_astro_nightEnd:rV,sch_astro_solarNoon:MV,sch_astro_sunrise:nV,sch_astro_sunriseEnd:aV,sch_astro_sunset:cV,sch_astro_sunsetStart:uV,sch_at:NV,sch_desc_atTime:lV,sch_desc_everyDay:LV,sch_desc_everyHour:jV,sch_desc_everyMinute:gV,sch_desc_everyMonth:TV,sch_desc_everyNDay:yV,sch_desc_everyNHours:DV,sch_desc_everyNMinutes:dV,sch_desc_everyNMonths:zV,sch_desc_everyNWeeks:IV,sch_desc_everyNYears:wV,sch_desc_everyWeek:CV,sch_desc_everyYear:hV,sch_desc_intervalFromTo:AV,sch_desc_never:pV,sch_desc_onDate:mV,sch_desc_onDates:OV,sch_desc_onEveryDate:EV,sch_desc_onMonth:_V,sch_desc_onMonths:SV,sch_desc_onWeekday:xV,sch_desc_onWeekdays:fV,sch_desc_onWeekends:kV,sch_desc_onWorkdays:YV,sch_desc_onceInPast:QV,sch_desc_once_on:UV,sch_desc_validFrom:vV,sch_desc_validFromTo:bV,sch_desc_validTo:$V,sch_every:PV,sch_exactTime:WV,sch_from:RV,sch_fromTo:JV,sch_intervalTime:BV,sch_invert:FV,sch_no_one:GV,sch_on:HV,sch_period:VV,sch_periodDaily:ZV,sch_periodDates:XV,sch_periodDay:KV,sch_periodEvery:qV,sch_periodEveryDay:eZ,sch_periodEveryMonth:tZ,sch_periodEveryWeek:sZ,sch_periodEveryYear:iZ,sch_periodHours:oZ,sch_periodMinutes:rZ,sch_periodMonth:MZ,sch_periodMonthly:nZ,sch_periodOnce:aZ,sch_periodSpecificMonths:cZ,sch_periodWeek:uZ,sch_periodWeekdays:NZ,sch_periodWeekend:lZ,sch_periodWeekly:LZ,sch_periodWorkdays:jZ,sch_periodYear:gZ,sch_periodYearly:TZ,sch_specificTime:yZ,sch_time:DZ,sch_to:dZ,sch_valid:zZ,sch_validFrom:IZ,sch_validTo:wZ,sch_wholeDay:CZ,sch_yearEveryMonth:hZ},pZ="Дії",mZ="Додайте",OZ="Скасувати",EZ="Категорії",_Z="Перевірено",SZ="Видалити",xZ="Закрити",fZ="Комерційний",kZ="Налаштувати",YZ="Підключено",QZ="Продовжити",UZ="Скопійовано",vZ="Створити",bZ="Урожай",$Z="Delete",PZ="Видалити",WZ="Відкинути",RZ="Відключено",JZ="Помилка",BZ="фільтр",FZ="П'ятниця",GZ="Широта",HZ="Вийти",VZ="Довгота",ZZ="повідомлення",XZ="понеділок",KZ="Ім'я",qZ="Об'єкти",eX="В порядку",tX="Продукт",sX="Перейменувати/Перемістити/Копіювати",iX="Повторіть",oX="Замінити",rX="Корінь",MX="Субота",nX="зберегти",aX="Вибране",cX="держави",uX="неділя",NX="четвер",lX="Мітка часу",LX="вівторок",jX="оновлення",gX="Дійсний до",TX="Значення",yX="Версія",DX="Середа",dX="Ширина",zX="Так",IX="інший",wX="Кожен може читати об'єкт",CX="Кожен може читати стан",hX="Кожен може написати об'єкт",AX="Кожен може написати стан",pX="Група може читати об'єкт",mX="Група може читати стан",OX="Група може писати об'єкт",EX="Група може писати стан",_X="Власник може читати об'єкт",SX="Власник може читати стан",xX="Власник може написати об'єкт",fX="Власник може написати стан",kX="кнопки",YX="Змінено з",QX="закрити",UX="Створіть логічний стан",vX="Створити канал",bX="Створити пристрій",$X="Створити номерний стан",PX="Створити состояние",WX="Створити рядковий стан",RX="днів",JX="О",BX="пн",FX="Sa",GX="Нд",HX="чт",VX="вт",ZX="ми",XX="Експертний режим",KX="НЕПРАВДА",qX="Всі файли",eK="Аудіо",tK="Код/JSON",sK="Зображення",iK="текст",oK="відео",rK="Налаштування",MK="без",nK="функція",aK="ID",cK="Ім'я",uK="Роль",NK="Кімната",lK="Тип",LK="Недійсні налаштування",jK="Остання зміна",gK="локально",TK="квіт",yK="серп",DK="груд",dK="лютий",zK="січня",IK="лип",wK="черв",CK="травень",hK="березень",AK="Листопад",pK="жовт",mK="вер",OK="квіт",EK="серп",_K="груд",SK="лютий",xK="січня",fK="лип",kK="черв",YK="травень",QK="березень",UK="Листопад",vK="жовт",bK="вер",$K="немає",PK="Об'єкт змінено",WK="Об'єкт востаннє змінено о",RK="Налаштування з іншого адаптера %s",JK="Код якості",BK="повторити",FK="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",GK="Показати все",HK="Стан змінено на",VK="Об'єкт змінено з",ZK="Мітка часу",XK="Визнано",KK="коментар",qK="Скопіюйте значення стану",eq="Утримуйте клавішу Cltr/⌘, щоб відкрити посилання",tq="Спеціальні налаштування",sq="Видалити об'єкт",iq="Редагувати об'єкт",oq="Відредагуйте значення стану",rq="Термін дії закінчується через",Mq="Від",nq="Востаннє змінено",aq="якість",cq="Позначка часу",uq="Користувач",Nq="Значення",lq="ПРАВДА",Lq="Значення",jq="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",gq="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Tq="CRON",yq="Дата",Dq="дати",dq="День",zq="День тижня",Iq="кожен",wq="кожні N днів",Cq="кожен N-й день тижня",hq="кожні N днів тижня",Aq="кожні N годин",pq="кожні N хвилин",mq="кожні N місяців",Oq="кожні N секунд",Eq="кожен день",_q="кожен день тижня",Sq="кожен день тижня",xq="щогодини",fq="кожну хвилину",kq="щомісяця",Yq="кожна секунда",Qq="Від",Uq="години",vq="Інтервал",bq="Інтервал між",$q="Недійсний CRON",Pq="хвилин",Wq="місяців",Rq="Один раз",Jq="Крапка",Bq="секунд",Fq="просто",Gq="Конкретний час",Hq="конкретні дати",Vq="конкретний день (дні) тижня",Zq="конкретний день тижня",Xq="конкретні години",Kq="конкретні хвилини",qq="конкретні місяці",eee="конкретні секунди",tee="час",see="до",iee="майстер",oee="все",ree="Астродень",Mee="Астро ніч",nee="Світанок",aee="Сутінки",cee="Золота година",uee="Кінець золотої години",Nee="Надір",lee="Морський світанок",Lee="Морські сутінки",jee="ніч",gee="Кінець ночі",Tee="Сонячний полудень",yee="Схід сонця",Dee="Кінець сходу сонця",dee="Захід сонця",zee="Початок заходу сонця",Iee="в",wee="в %s",Cee="кожен день",hee="щогодини",Aee="кожну хвилину",pee="щомісяця",mee="кожен %s день",Oee="кожні %s годин",Eee="кожні %s хвилин",_ee="кожні %s місяців",See="кожні %s тижнів",xee="кожні %s років",fee="щотижня",kee="щороку",Yee="від %s до %s",Qee="ніколи",Uee="на %s з %s",vee="на %s і %s з",bee="на кожну дату",$ee="%s",Pee="%s і %s",Wee="на %s",Ree="на %s і %s",Jee="на вихідних",Bee="в робочі дні",Fee="більше не виконуватиметься, оскільки запуск у минулому",Gee="на %s",Hee="від %s",Vee="Виконати від до",Zee="до %s",Xee="кожен",Kee="Конкретний час",qee="від",ete="Від до",tte="Час інтервалу",ste="інвертувати",ite="немає",ote="на",rte="Крапка",Mte="Щодня",nte="дати",ate="День",cte="кожен",ute="Кожен день",Nte="Щомісяця",lte="Щотижня",Lte="Щороку",jte="години",gte="хвилин",Tte="місяць",yte="Щомісяця",Dte="Один раз",dte="Конкретні місяці",zte="тиждень",Ite="будні",wte="Вихідні",Cte="Щотижня",hte="робочі дні",Ate="рік",pte="щорічно",mte="Конкретний час",Ote="час",Ete="до",_te="Дійсний",Ste="від",xte="до",fte="Цілий день",kte="щомісяця",Yte={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію",ra_Actions:pZ,"ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:mZ,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:OZ,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:EZ,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:_Z,ra_Clear:SZ,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:xZ,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:fZ,ra_Configure:kZ,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:YZ,ra_Continue:QZ,ra_Copied:UZ,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:vZ,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:bZ,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:$Z,ra_Delete:PZ,"ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:WZ,ra_Disconnected:RZ,"ra_Do not ask for next 2 hours in this session":"Не запитуйте про наступні 2 години цього сеансу","ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit full path":"Редагувати повний шлях","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення","ra_Enter the code from that page here":"Введіть тут код з цієї сторінки",ra_Error:JZ,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:BZ,"ra_Filter and Data Actions":"Фільтр і дії з даними","ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:FZ,"ra_Get %s access":"Отримайте доступ %s","ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:GZ,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Logout:HZ,ra_Longitude:VZ,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:ZZ,ra_Monday:XZ,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:KZ,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:qZ,ra_Ok:eX,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please allow popups in your browser for this page!":"Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Press ENTER Key to add new item":"Натисніть клавішу ENTER, щоб додати новий елемент","ra_Private certificate":"Приватний сертифікат",ra_Product:tX,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Rename_Move_Copy:sX,"ra_Renew %s access":"Поновити доступ %s",ra_Repeat:iX,ra_Replace:oX,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:rX,ra_Saturday:MX,ra_Save:nX,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:aX,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Session will expire in %s seconds. Continue?":"Сеанс закінчиться через %s секунд. Продовжити?","ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:cX,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.","ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:uX,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:NX,ra_Timestamp:lX,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:LX,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:jX,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:gX,ra_Value:TX,ra_Version:yX,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:DX,ra_Width:dX,ra_Yes:zX,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст",ra___different__:IX,ra_aclEveryone_read_object:wX,ra_aclEveryone_read_state:CX,ra_aclEveryone_write_object:hX,ra_aclEveryone_write_state:AX,ra_aclGroup_read_object:pX,ra_aclGroup_read_state:mX,ra_aclGroup_write_object:OX,ra_aclGroup_write_state:EX,ra_aclOwner_read_object:_X,ra_aclOwner_read_state:SX,ra_aclOwner_write_object:xX,ra_aclOwner_write_state:fX,ra_buttons:kX,ra_changedFrom:YX,ra_close:QX,ra_create_boolean_state:UX,ra_create_channel:vX,ra_create_device:bX,ra_create_number_state:$X,ra_create_state:PX,ra_create_string_state:WX,ra_daysShortText:RX,ra_dow_Fr:JX,ra_dow_Mo:BX,ra_dow_Sa:FX,ra_dow_Su:GX,ra_dow_Th:HX,ra_dow_Tu:VX,ra_dow_We:ZX,ra_expertMode:XX,ra_false:KX,ra_fileType_all:qX,ra_fileType_audio:eK,ra_fileType_code:tK,ra_fileType_images:sK,ra_fileType_txt:iK,ra_fileType_video:oK,"ra_fileType_video,":"відео",ra_filter_customs:rK,ra_filter_customs_without:MK,ra_filter_func:nK,ra_filter_id:aK,ra_filter_name:cK,ra_filter_role:uK,ra_filter_room:NK,ra_filter_type:lK,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:LK,ra_lastChange:jK,ra_locally:gK,ra_month_Apr:TK,ra_month_Aug:yK,ra_month_Dec:DK,ra_month_Feb:dK,ra_month_Jan:zK,ra_month_Jul:IK,ra_month_Jun:wK,ra_month_Mai:CK,ra_month_Mar:hK,ra_month_Nov:AK,ra_month_Oct:pK,ra_month_Sep:mK,ra_months_Apr:OK,ra_months_Aug:EK,ra_months_Dec:_K,ra_months_Feb:SK,ra_months_Jan:xK,ra_months_Jul:fK,ra_months_Jun:kK,ra_months_Mai:YK,ra_months_Mar:QK,ra_months_Nov:UK,ra_months_Oct:vK,ra_months_Sep:bK,"ra_no confirm for 5 mins":"без підтвердження протягом 5 хв",ra_none:$K,ra_object_changed_by:PK,ra_object_changed_by_user:WK,ra_otherConfig:RK,ra_qualityCode:JK,ra_repeat:BK,ra_select_folder_hint:FK,ra_show_all:GK,ra_state_changed_by:HK,ra_state_changed_from:VK,ra_timestamp:ZK,ra_tooltip_ack:XK,ra_tooltip_comment:KK,ra_tooltip_copyState:qK,ra_tooltip_ctrlForLink:eq,ra_tooltip_customConfig:tq,ra_tooltip_deleteObject:sq,ra_tooltip_editObject:iq,ra_tooltip_editState:oq,ra_tooltip_expire:rq,ra_tooltip_from:Mq,ra_tooltip_lc:nq,ra_tooltip_quality:aq,ra_tooltip_ts:cq,ra_tooltip_user:uq,ra_tooltip_value:Nq,ra_true:lq,"ra_use seconds":"використовуйте секунди",ra_val:Lq,"ra_via internet":"через інтернет",ra_warning_every_minute:jq,ra_warning_every_second:gq,sc_cron:Tq,sc_date:yq,sc_dates:Dq,sc_dow:dq,sc_dows:zq,sc_every:Iq,sc_everyN_dates:wq,sc_everyN_dow:Cq,sc_everyN_dows:hq,sc_everyN_hours:Aq,sc_everyN_minutes:pq,sc_everyN_months:mq,sc_everyN_seconds:Oq,sc_every_dates:Eq,sc_every_dow:_q,sc_every_dows:Sq,sc_every_hours:xq,sc_every_minutes:fq,sc_every_months:kq,sc_every_seconds:Yq,sc_from:Qq,sc_hours:Uq,sc_interval:vq,sc_intervalBetween:bq,sc_invalid_cron:$q,sc_minutes:Pq,sc_months:Wq,sc_once:Rq,sc_period:Jq,sc_seconds:Bq,sc_simple:Fq,sc_specific:Gq,sc_specific_dates:Hq,sc_specific_dow:Vq,sc_specific_dows:Zq,sc_specific_hours:Xq,sc_specific_minutes:Kq,sc_specific_months:qq,sc_specific_seconds:eee,sc_time:tee,sc_to:see,sc_wizard:iee,sch_all:oee,sch_astroDay:ree,sch_astroNight:Mee,sch_astro_dawn:nee,sch_astro_dusk:aee,sch_astro_goldenHour:cee,sch_astro_goldenHourEnd:uee,sch_astro_nadir:Nee,sch_astro_nauticalDawn:lee,sch_astro_nauticalDusk:Lee,sch_astro_night:jee,sch_astro_nightEnd:gee,sch_astro_solarNoon:Tee,sch_astro_sunrise:yee,sch_astro_sunriseEnd:Dee,sch_astro_sunset:dee,sch_astro_sunsetStart:zee,sch_at:Iee,sch_desc_atTime:wee,sch_desc_everyDay:Cee,sch_desc_everyHour:hee,sch_desc_everyMinute:Aee,sch_desc_everyMonth:pee,sch_desc_everyNDay:mee,sch_desc_everyNHours:Oee,sch_desc_everyNMinutes:Eee,sch_desc_everyNMonths:_ee,sch_desc_everyNWeeks:See,sch_desc_everyNYears:xee,sch_desc_everyWeek:fee,sch_desc_everyYear:kee,sch_desc_intervalFromTo:Yee,sch_desc_never:Qee,sch_desc_onDate:Uee,sch_desc_onDates:vee,sch_desc_onEveryDate:bee,sch_desc_onMonth:$ee,sch_desc_onMonths:Pee,sch_desc_onWeekday:Wee,sch_desc_onWeekdays:Ree,sch_desc_onWeekends:Jee,sch_desc_onWorkdays:Bee,sch_desc_onceInPast:Fee,sch_desc_once_on:Gee,sch_desc_validFrom:Hee,sch_desc_validFromTo:Vee,sch_desc_validTo:Zee,sch_every:Xee,sch_exactTime:Kee,sch_from:qee,sch_fromTo:ete,sch_intervalTime:tte,sch_invert:ste,sch_no_one:ite,sch_on:ote,sch_period:rte,sch_periodDaily:Mte,sch_periodDates:nte,sch_periodDay:ate,sch_periodEvery:cte,sch_periodEveryDay:ute,sch_periodEveryMonth:Nte,sch_periodEveryWeek:lte,sch_periodEveryYear:Lte,sch_periodHours:jte,sch_periodMinutes:gte,sch_periodMonth:Tte,sch_periodMonthly:yte,sch_periodOnce:Dte,sch_periodSpecificMonths:dte,sch_periodWeek:zte,sch_periodWeekdays:Ite,sch_periodWeekend:wte,sch_periodWeekly:Cte,sch_periodWorkdays:hte,sch_periodYear:Ate,sch_periodYearly:pte,sch_specificTime:mte,sch_time:Ote,sch_to:Ete,sch_valid:_te,sch_validFrom:Ste,sch_validTo:xte,sch_wholeDay:fte,sch_yearEveryMonth:kte},Qte="操作",Ute="附加",vte="取消",bte="类别",$te="勾选",Pte="删除",Wte="关",Rte="商业的",Jte="配置",Bte="连接的",Fte="继续",Gte="复制的",Hte="创建",Vte="庄稼",Zte="Delete",Xte="删除",Kte="丢弃",qte="断开连接",ese="错误",tse="筛选",sse="星期五",ise="纬度",ose="登出",rse="经度",Mse="信息",nse="周一",ase="姓名",cse="对象",use="好",Nse="产品",lse="重命名/移动/复制",Lse="重复",jse="代替",gse="根",Tse="周六",yse="保存",Dse="已选",dse="状态",zse="星期日",Ise="周四",wse="时间戳记",Cse="周二",hse="更新资料",Ase="有效期至",pse="值",mse="版本",Ose="周三",Ese="宽度",_se="是的",Sse="不同的",xse="每个人都可以阅读对象",fse="每个人都可以阅读状态",kse="每个人都可以写对象",Yse="每个人都可以写状态",Qse="组可以读取对象",Use="群组可以读取状态",vse="组可以写对象",bse="组可以写状态",$se="所有者可以读取对象",Pse="所有者可以读取状态",Wse="所有者可以写对象",Rse="所有者可以写状态",Jse="纽扣",Bse="更改为",Fse="关闭",Gse="创建布尔状态",Hse="创建频道",Vse="创建设备",Zse="创建号码状态",Xse="创建状态",Kse="创建字符串状态",qse="天",eie="r",tie="莫",sie="萨",iie="苏",oie="Th",rie="Tu",Mie="我们",nie="专家模式",aie="错误的",cie="所有文件",uie="声音的",Nie="代码/JSON",lie="图片",Lie="文本",jie="视频",gie="设定值",Tie="没有",yie="功能",Die="ID",die="名称",zie="角色",Iie="房间",wie="类型",Cie="无效的设定",hie="最后一次变更",Aie="本地",pie="4月",mie="八月",Oie="十二月",Eie="二月",_ie="简",Sie="七月",xie="君",fie="迈",kie="三月",Yie="十一月",Qie="十月",Uie="九月",vie="4月",bie="八月",$ie="十二月",Pie="二月",Wie="简",Rie="七月",Jie="君",Bie="迈",Fie="三月",Gie="十一月",Hie="十月",Vie="九月",Zie="没有任何",Xie="物件变更者",Kie="对象上次更改时间为",qie="来自其他适配器%s的设置",eoe="质量代码",toe="重复",soe="要选择文件夹,只需按住“shift”键单击文件夹即可。",ioe="显示全部",ooe="状态由",roe="对象已从更改",Moe="时间戳记",noe="致谢国旗",aoe="评论",coe="复制状态值",uoe="按住 Cltr/⌘ 键打开链接",Noe="自定义设置",loe="删除物件",Loe="编辑物件",joe="编辑状态值",goe="有效期:",Toe="从",yoe="最后改变了",Doe="质量",doe="时间戳",zoe="用户",Ioe="值",woe="真的",Coe="值",hoe="警告:CRON 作业将在指定期间内每分钟运行一次!",Aoe="警告:CRON 作业将在指定期间内每秒运行一次!",poe="周期任务",moe="日期",Ooe="日",Eoe="天",_oe="星期",Soe="每",xoe="每N天",foe="每周的第 N 天",koe="每周N天",Yoe="每N小时一次",Qoe="每N分钟",Uoe="每N个月",voe="每N秒",boe="每天",$oe="一周的每一天",Poe="一周的每一天",Woe="每小时",Roe="每分钟",Joe="每月",Boe="每秒",Foe="从",Goe="小时",Hoe="间隔",Voe="间隔时间",Zoe="无效的 CRON",Xoe="分钟",Koe="月",qoe="一次",ere="周期",tre="秒",sre="简单模式",ire="特定的时间",ore="特定的日子",rre="一周中的特定日子",Mre="特定的一周",nre="特定的小时",are="特定的分钟",cre="特定的月份",ure="特定的描述",Nre="时间",lre="至",Lre="向导模式",jre="全选",gre="天文白天",Tre="天文夜晚",yre="黎明",Dre="黄昏",dre="黄金时段",zre="黄金时段结束",Ire="天底",wre="航海黎明",Cre="航海黄昏",hre="夜晚",Are="夜晚结束",pre="正午",mre="日出",Ore="日出结束",Ere="日落",_re="日落开始",Sre="在",xre="的%s",fre="每天",kre="每小时",Yre="每分钟",Qre="每月",Ure="每%s天",vre="每%s小时",bre="每%s分钟",$re="每%s月",Pre="每%s周",Wre="每%s年",Rre="每周",Jre="每年",Bre="从%s到%s",Fre="决不",Gre="在%s的%s上",Hre="在%s和%s上",Vre="在每天",Zre="%s",Xre="%s和%s",Kre="在%s上",qre="在%s和%s上",eMe="在周末",tMe="在工作日",sMe="将不再执行,因为起始时间已经是过去的时间了。",iMe="在%s上",oMe="来自%s",rMe="从执行到",MMe="到%s",nMe="每",aMe="特定的时间",cMe="从",uMe="从到",NMe="间隔时间",lMe="倒置",LMe="取消全选",jMe="的",gMe="周期",TMe="每天",yMe="日期",DMe="天",dMe="每",zMe="每天",IMe="每月",wMe="每周",CMe="每年",hMe="小时",AMe="分钟",pMe="月",mMe="每月一次",OMe="一次",EMe="特定的月份",_Me="周",SMe="工作日",xMe="周末",fMe="每周",kMe="工作日",YMe="年",QMe="每年",UMe="特定的时间",vMe="时间",bMe="至",$Me="生效",PMe="从",WMe="至",RMe="一整天",JMe="每月",BMe={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可",ra_Actions:Qte,"ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:Ute,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:vte,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:bte,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:$te,ra_Clear:Pte,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:Wte,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Rte,ra_Configure:Jte,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:Bte,ra_Continue:Fte,ra_Copied:Gte,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:Hte,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:Vte,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:Zte,ra_Delete:Xte,"ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:Kte,ra_Disconnected:qte,"ra_Do not ask for next 2 hours in this session":"本次会话中不要询问接下来的 2 个小时","ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit full path":"编辑完整路径","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值","ra_Enter the code from that page here":"在此处输入该页面的代码",ra_Error:ese,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:tse,"ra_Filter and Data Actions":"过滤和数据操作","ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:sse,"ra_Get %s access":"获取 %s 访问权限","ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_If the button above does not work, you can authorize manually this app by visiting this url":"如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:ise,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Logout:ose,ra_Longitude:rse,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:Mse,ra_Monday:nse,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:ase,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:cse,ra_Ok:use,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please allow popups in your browser for this page!":"请允许浏览器弹出此页面!","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Press ENTER Key to add new item":"按 ENTER 键添加新项目","ra_Private certificate":"私有证书",ra_Product:Nse,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Rename_Move_Copy:lse,"ra_Renew %s access":"续订 %s 访问权限",ra_Repeat:Lse,ra_Replace:jse,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:gse,ra_Saturday:Tse,ra_Save:yse,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:Dse,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Session will expire in %s seconds. Continue?":"会话将在 %s 秒后过期。是否继续?","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:dse,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"授权成功。令牌有效期至 %s,并将自动续订。","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。","ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:zse,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Ise,ra_Timestamp:wse,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Cse,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:hse,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:Ase,ra_Value:pse,ra_Version:mse,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:Ose,ra_Width:Ese,ra_Yes:_se,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目",ra___different__:Sse,ra_aclEveryone_read_object:xse,ra_aclEveryone_read_state:fse,ra_aclEveryone_write_object:kse,ra_aclEveryone_write_state:Yse,ra_aclGroup_read_object:Qse,ra_aclGroup_read_state:Use,ra_aclGroup_write_object:vse,ra_aclGroup_write_state:bse,ra_aclOwner_read_object:$se,ra_aclOwner_read_state:Pse,ra_aclOwner_write_object:Wse,ra_aclOwner_write_state:Rse,ra_buttons:Jse,ra_changedFrom:Bse,ra_close:Fse,ra_create_boolean_state:Gse,ra_create_channel:Hse,ra_create_device:Vse,ra_create_number_state:Zse,ra_create_state:Xse,ra_create_string_state:Kse,ra_daysShortText:qse,ra_dow_Fr:eie,ra_dow_Mo:tie,ra_dow_Sa:sie,ra_dow_Su:iie,ra_dow_Th:oie,ra_dow_Tu:rie,ra_dow_We:Mie,ra_expertMode:nie,ra_false:aie,ra_fileType_all:cie,ra_fileType_audio:uie,ra_fileType_code:Nie,ra_fileType_images:lie,ra_fileType_txt:Lie,ra_fileType_video:jie,"ra_fileType_video,":"视频",ra_filter_customs:gie,ra_filter_customs_without:Tie,ra_filter_func:yie,ra_filter_id:Die,ra_filter_name:die,ra_filter_role:zie,ra_filter_room:Iie,ra_filter_type:wie,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:Cie,ra_lastChange:hie,ra_locally:Aie,ra_month_Apr:pie,ra_month_Aug:mie,ra_month_Dec:Oie,ra_month_Feb:Eie,ra_month_Jan:_ie,ra_month_Jul:Sie,ra_month_Jun:xie,ra_month_Mai:fie,ra_month_Mar:kie,ra_month_Nov:Yie,ra_month_Oct:Qie,ra_month_Sep:Uie,ra_months_Apr:vie,ra_months_Aug:bie,ra_months_Dec:$ie,ra_months_Feb:Pie,ra_months_Jan:Wie,ra_months_Jul:Rie,ra_months_Jun:Jie,ra_months_Mai:Bie,ra_months_Mar:Fie,ra_months_Nov:Gie,ra_months_Oct:Hie,ra_months_Sep:Vie,"ra_no confirm for 5 mins":"5分钟内无需确认",ra_none:Zie,ra_object_changed_by:Xie,ra_object_changed_by_user:Kie,ra_otherConfig:qie,ra_qualityCode:eoe,ra_repeat:toe,ra_select_folder_hint:soe,ra_show_all:ioe,ra_state_changed_by:ooe,ra_state_changed_from:roe,ra_timestamp:Moe,ra_tooltip_ack:noe,ra_tooltip_comment:aoe,ra_tooltip_copyState:coe,ra_tooltip_ctrlForLink:uoe,ra_tooltip_customConfig:Noe,ra_tooltip_deleteObject:loe,ra_tooltip_editObject:Loe,ra_tooltip_editState:joe,ra_tooltip_expire:goe,ra_tooltip_from:Toe,ra_tooltip_lc:yoe,ra_tooltip_quality:Doe,ra_tooltip_ts:doe,ra_tooltip_user:zoe,ra_tooltip_value:Ioe,ra_true:woe,"ra_use seconds":"用秒",ra_val:Coe,"ra_via internet":"通过互联网",ra_warning_every_minute:hoe,ra_warning_every_second:Aoe,sc_cron:poe,sc_date:moe,sc_dates:Ooe,sc_dow:Eoe,sc_dows:_oe,sc_every:Soe,sc_everyN_dates:xoe,sc_everyN_dow:foe,sc_everyN_dows:koe,sc_everyN_hours:Yoe,sc_everyN_minutes:Qoe,sc_everyN_months:Uoe,sc_everyN_seconds:voe,sc_every_dates:boe,sc_every_dow:$oe,sc_every_dows:Poe,sc_every_hours:Woe,sc_every_minutes:Roe,sc_every_months:Joe,sc_every_seconds:Boe,sc_from:Foe,sc_hours:Goe,sc_interval:Hoe,sc_intervalBetween:Voe,sc_invalid_cron:Zoe,sc_minutes:Xoe,sc_months:Koe,sc_once:qoe,sc_period:ere,sc_seconds:tre,sc_simple:sre,sc_specific:ire,sc_specific_dates:ore,sc_specific_dow:rre,sc_specific_dows:Mre,sc_specific_hours:nre,sc_specific_minutes:are,sc_specific_months:cre,sc_specific_seconds:ure,sc_time:Nre,sc_to:lre,sc_wizard:Lre,sch_all:jre,sch_astroDay:gre,sch_astroNight:Tre,sch_astro_dawn:yre,sch_astro_dusk:Dre,sch_astro_goldenHour:dre,sch_astro_goldenHourEnd:zre,sch_astro_nadir:Ire,sch_astro_nauticalDawn:wre,sch_astro_nauticalDusk:Cre,sch_astro_night:hre,sch_astro_nightEnd:Are,sch_astro_solarNoon:pre,sch_astro_sunrise:mre,sch_astro_sunriseEnd:Ore,sch_astro_sunset:Ere,sch_astro_sunsetStart:_re,sch_at:Sre,sch_desc_atTime:xre,sch_desc_everyDay:fre,sch_desc_everyHour:kre,sch_desc_everyMinute:Yre,sch_desc_everyMonth:Qre,sch_desc_everyNDay:Ure,sch_desc_everyNHours:vre,sch_desc_everyNMinutes:bre,sch_desc_everyNMonths:$re,sch_desc_everyNWeeks:Pre,sch_desc_everyNYears:Wre,sch_desc_everyWeek:Rre,sch_desc_everyYear:Jre,sch_desc_intervalFromTo:Bre,sch_desc_never:Fre,sch_desc_onDate:Gre,sch_desc_onDates:Hre,sch_desc_onEveryDate:Vre,sch_desc_onMonth:Zre,sch_desc_onMonths:Xre,sch_desc_onWeekday:Kre,sch_desc_onWeekdays:qre,sch_desc_onWeekends:eMe,sch_desc_onWorkdays:tMe,sch_desc_onceInPast:sMe,sch_desc_once_on:iMe,sch_desc_validFrom:oMe,sch_desc_validFromTo:rMe,sch_desc_validTo:MMe,sch_every:nMe,sch_exactTime:aMe,sch_from:cMe,sch_fromTo:uMe,sch_intervalTime:NMe,sch_invert:lMe,sch_no_one:LMe,sch_on:jMe,sch_period:gMe,sch_periodDaily:TMe,sch_periodDates:yMe,sch_periodDay:DMe,sch_periodEvery:dMe,sch_periodEveryDay:zMe,sch_periodEveryMonth:IMe,sch_periodEveryWeek:wMe,sch_periodEveryYear:CMe,sch_periodHours:hMe,sch_periodMinutes:AMe,sch_periodMonth:pMe,sch_periodMonthly:mMe,sch_periodOnce:OMe,sch_periodSpecificMonths:EMe,sch_periodWeek:_Me,sch_periodWeekdays:SMe,sch_periodWeekend:xMe,sch_periodWeekly:fMe,sch_periodWorkdays:kMe,sch_periodYear:YMe,sch_periodYearly:QMe,sch_specificTime:UMe,sch_time:vMe,sch_to:bMe,sch_valid:$Me,sch_validFrom:PMe,sch_validTo:WMe,sch_wholeDay:RMe,sch_yearEveryMonth:JMe},FMe={en:KT,de:aw,ru:Dp,pt:O_,nl:b5,fr:Vv,it:r$,es:gB,pl:AZ,uk:Yte,"zh-cn":BMe},GMe=` +`).forEach(M=>{if(!M.trim())return;const a=M.indexOf(":");if(a!==-1){const u=M.substring(0,a).trim();let N=M.substring(a+1).trim();N=N.replace(/^['"]|['"]$/g,""),N==="true"?t[u]=!0:N==="false"?t[u]=!1:parseFloat(N).toString()===t[u]?t[u]=parseFloat(N):t[u]=N}else t[M.trim()]=!0}),e=e.substring(s+7))}return{header:t,body:e}}static MDremoveDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(s=>e=e.replace(s,"")),e}static generateFile(e,t){const s=document.createElement("a");s.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),s.setAttribute("download",e),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}static quality2text(e){const t=e&4294901760,s=fi[e];let o;return s?o=[s]:e&1?o=[fi[1],`0x${(e&65534).toString(16)}`]:e&2?o=[fi[2],`0x${(e&65533).toString(16)}`]:o=[`0x${e.toString(16)}`],t&&o.push(`0x${(t>>16).toString(16).toUpperCase()}`),o}static clone(e){return JSON.parse(JSON.stringify(e))}static getStates(e){var o;const t=(o=e==null?void 0:e.common)==null?void 0:o.states;let s;if(t)if(typeof t=="string"&&t[0]==="{")try{s=JSON.parse(t)}catch{console.error(`Cannot parse states: ${t}`),s=null}else if(typeof t=="string"){const r=t.split(";");s={};for(let M=0;Ms[M]=r):(e==null?void 0:e.common.type)==="string"?t.forEach(r=>s[r]=r):(e==null?void 0:e.common.type)==="boolean"&&(s.false=t[0],s.true=t[1])):typeof t=="object"&&(s=t);return s||null}static async getSvg(e){const s=await(await fetch(e)).blob();return new Promise(o=>{const r=new FileReader;r.onload=()=>{var M;return o(((M=r.result)==null?void 0:M.toString())||"")},r.readAsDataURL(s)})}static detectMimeType(e){const t=Object.keys(oM).find(s=>e.startsWith(s));return t?oM[t]:null}static isStableRepository(e){return!!(typeof e=="string"&&e.toLowerCase().startsWith("stable")||e&&typeof e!="string"&&e.find(t=>t.toLowerCase().startsWith("stable")))}static isStringInteger(e){return typeof e=="number"?Math.round(e)===e:parseInt(e,10).toString()===e}static isValidDate(e){return e instanceof Date&&!isNaN(e)}static getStyle(e,...t){const s={};for(let o=0;o{if(typeof t[o][r]=="function")s[r]=t[o][r](e);else if(typeof t[o][r]=="object"){const M=t[o][r];s[r]={},Object.keys(M).forEach(a=>{typeof M[a]=="function"?s[r][a]=M(e):(M[a]||M[a]===0)&&(s[r][a]=M[a])})}else(t[o][r]||t[o][r]===0)&&(s[r]=t[o][r])});return s}}const ki={buttonIcon:{marginRight:8}};class J4 extends n.Component{isIFrame;constructor(e){super(e);const t=e.newReact===void 0?!0:e.newReact;if(e.isIFrame!==void 0)this.isIFrame=e.isIFrame;else try{this.isIFrame=!t&&window.self!==window.top}catch{this.isIFrame=!t}}render(){const e=this.props.noTextOnButtons,t={borderRadius:this.props.theme.saveToolbar.button.borderRadius||3,height:this.props.theme.saveToolbar.button.height||32},s={bottom:this.isIFrame?38:0,left:this.props.paddingLeft||0,right:0,position:"absolute",background:this.props.theme.saveToolbar.background};return this.props.dense&&(s.minHeight=48),this.props.error&&(t.border="1px solid red"),n.createElement(g.Toolbar,{style:s},n.createElement(g.Fab,{variant:"extended","aria-label":"Save",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!1),style:t},n.createElement(m.Save,{style:e?void 0:ki.buttonIcon}),!e&&d.t("ra_Save")),n.createElement(g.Fab,{variant:"extended","aria-label":"Save and close",disabled:!this.props.changed||this.props.error,onClick:()=>this.props.onSave(!0),style:{...t,marginLeft:10}},n.createElement(m.Save,{style:e?void 0:ki.buttonIcon}),e?"+":d.t("ra_Save and close"),e&&n.createElement(m.Close,null)),n.createElement("div",{style:{flexGrow:1}}),n.createElement(g.Fab,{variant:"extended","aria-label":"Close",onClick:()=>this.props.onClose(),style:t},n.createElement(m.Close,{style:e?void 0:ki.buttonIcon}),!e&&d.t("ra_Close")))}}const rM={suppress:{fontSize:12},suppressRoot:{marginTop:"16px"}};class Kn extends b.Component{constructor(e){if(super(e),!this.props.dialogName&&this.props.suppressQuestionMinutes)throw new Error("dialogName required if suppressQuestionMinutes used");let t=!1;this.props.suppressQuestionMinutes&&(t=parseInt((window._localStorage||window.localStorage).getItem(this.props.dialogName),10)||0,t?Date.now()>t&&((window._localStorage||window.localStorage).removeItem(this.props.dialogName),t=!1):t=!1),this.state={suppress:t}}handleOk(){this.state.suppress&&(window._localStorage||window.localStorage).setItem(this.props.dialogName,Date.now()+(this.props.suppressQuestionMinutes||2)*6e4),this.props.onClose&&this.props.onClose(!0)}handleCancel(){this.props.onClose&&this.props.onClose(!1)}render(){return typeof this.state.suppress=="number"?(setTimeout(()=>this.props.onClose&&this.props.onClose(!0),100),null):n.createElement(g.Dialog,{open:!0,maxWidth:"md",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:(e,t)=>{t!=="backdropClick"&&t!=="escapeKeyDown"&&this.handleCancel()},"aria-labelledby":"ar_confirmation_dialog_title","aria-describedby":"ar_confirmation_dialog_description"},n.createElement(g.DialogTitle,{id:"ar_confirmation_dialog_title"},this.props.title||d.t("ra_Are you sure?")),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,{id:"ar_confirmation_dialog_description"},this.props.icon||null,this.props.text,this.props.suppressQuestionMinutes?n.createElement("br",null):null,this.props.suppressQuestionMinutes?n.createElement(g.FormControlLabel,{sx:{"& .FormControlLabel-label":rM.suppress,"&.FormControlLabel-root":rM.suppressRoot},control:n.createElement(g.Checkbox,{id:`ar_dialog_confirm_suppress_${this.props.dialogName||""}`,checked:!!this.state.suppress,onChange:()=>this.setState({suppress:!this.state.suppress})}),label:this.props.suppressText||d.t("ra_Suppress question for next %s minutes",(this.props.suppressQuestionMinutes||2).toString())}):null)),n.createElement(g.DialogActions,null,n.createElement(g.Button,{id:`ar_dialog_confirm_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:n.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),n.createElement(g.Button,{id:`ar_dialog_confirm_cancel_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:n.createElement(m.Close,null)},this.props.cancel||d.t("ra_Cancel"))))}}class qn extends b.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return n.createElement(g.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},n.createElement(g.DialogTitle,{id:"ar_alert_dialog_title"},this.props.title||d.t("ra_Error")),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,{id:"ar_alert_dialog_description"},this.props.text||d.t("ra_Unknown error!"))),n.createElement(g.DialogActions,null,n.createElement(g.Button,{id:"ar_dialog_error_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:n.createElement(m.Check,null)},d.t("ra_Ok"))))}}const B4="Actions",F4="Append",G4="Cancel",H4="Categories",V4="Checked",Z4="Delete",X4="Close",K4="Commercial",q4="Configure",eL="Connected",tL="Continue",sL="Copied",iL="Create",oL="Crop",rL="Delete",ML="Delete",nL="Discard",aL="Disconnected",cL="Error",uL="Filter",NL="Friday",lL="Latitude",LL="Logout",jL="Longitude",gL="Message",TL="Monday",yL="Name",DL="Objects",dL="Ok",zL="Product",IL="Rename/Move/Copy",wL="Repeat",CL="Replace",hL="Root",AL="Saturday",pL="Save",mL="Selected",OL="States",EL="Sunday",_L="Thursday",SL="Timestamp",xL="Tuesday",fL="Update",kL="Valid till",YL="Value",QL="Version",UL="Wednesday",vL="Width",bL="Yes",$L="different",PL="Everyone can read object",WL="Everyone can read state",RL="Everyone can write object",JL="Everyone can write state",BL="Group can read object",FL="Group can read state",GL="Group can write object",HL="Group can write state",VL="Owner can read object",ZL="Owner can read state",XL="Owner can write object",KL="Owner can write state",qL="Buttons",e0="Changed from",t0="close",s0="Create boolean state",i0="Create channel",o0="Create device",r0="Create number state",M0="Create state",n0="Create string state",a0="days",c0="Fr",u0="Mo",N0="Sa",l0="Su",L0="Th",j0="Tu",g0="We",T0="Expert mode",y0="FALSE",D0="All files",d0="Audio",z0="Code/JSON",I0="Images",w0="Text",C0="Video",h0="Settings",A0="without",p0="Function",m0="ID",O0="Name",E0="Role",_0="Room",S0="Type",x0="Invalid settings",f0="Last change",k0="locally",Y0="Apr",Q0="Aug",U0="Dec",v0="Feb",b0="Jan",$0="Jul",P0="Jun",W0="Mai",R0="Mar",J0="Nov",B0="Oct",F0="Sep",G0="Apr",H0="Aug",V0="Dec",Z0="Feb",X0="Jan",K0="Jul",q0="Jun",ej="Mai",tj="Mar",sj="Nov",ij="Oct",oj="Sep",rj="none",Mj="Object changed by",nj="Object last changed at",aj="Settings from other adapter %s",cj="Quality code",uj="repeat",Nj='To select folder, just hold the key "shift" by clicking the folder.',lj="Show all",Lj="State changed by",jj="Object changed from",gj="Timestamp",Tj="Acknowledged",yj="Comment",Dj="Copy the state value",dj="Hold Cltr/⌘ key to open the link",zj="Custom settings",Ij="Delete object",wj="Edit object",Cj="Edit the state value",hj="Expires in",Aj="From",pj="Last changed",mj="Quality",Oj="Time stamp",Ej="User",_j="Value",Sj="TRUE",xj="Value",fj="Warning: The CRON job will run every minute during the specified period!",kj="Warning: The CRON job will run every second during the specified period!",Yj="CRON",Qj="Date",Uj="Dates",vj="Day",bj="Day of week",$j="Every",Pj="every N days",Wj="every Nth day of the week",Rj="every N day of week",Jj="every N hours",Bj="every N minutes",Fj="every N months",Gj="every N seconds",Hj="every day",Vj="every day of the week",Zj="every day of the week",Xj="every hour",Kj="every minute",qj="every month",eg="every second",tg="From",sg="Hours",ig="Interval",og="Interval between",rg="Invalid CRON",Mg="Minutes",ng="months",ag="Once",cg="Period",ug="Seconds",Ng="Simple",lg="Specific time",Lg="specific dates",jg="specific day(s) of the week",gg="specific day of weeks",Tg="specific hours",yg="specific minutes",Dg="specific months",dg="specific seconds",zg="Time",Ig="To",wg="Wizard",Cg="all",hg="Astro day",Ag="Astro night",pg="Dawn",mg="Dusk",Og="Golden hour",Eg="Golden hour end",_g="Nadir",Sg="Nautical dawn",xg="Nautical dusk",fg="Night",kg="Night end",Yg="Solar noon",Qg="Sunrise",Ug="Sunrise end",vg="Sunset",bg="Sunset start",$g="at",Pg="at %s",Wg="every day",Rg="every hour",Jg="every minute",Bg="every month",Fg="every %s day",Gg="every %s hours",Hg="every %s minutes",Vg="every %s months",Zg="every %s weeks",Xg="every %s years",Kg="every week",qg="every year",eT="from %s to %s",tT="never",sT="on %s of %s",iT="on %s and %s of",oT="on every date of",rT="%s",MT="%s and %s",nT="on %s",aT="on %s and %s",cT="on weekends",uT="on working days",NT="will ne be not executed any more, because start is in the past",lT="on %s",LT="from %s",jT="Execute from to",gT="to %s",TT="every",yT="Specific time",DT="from",dT="From-to",zT="Interval time",IT="invert",wT="none",CT="on",hT="Period",AT="Daily",pT="Dates",mT="Day",OT="Every",ET="Every day",_T="Every month",ST="Every week",xT="Every year",fT="Hours",kT="Minutes",YT="month",QT="Monthly",UT="Once",vT="Specific months",bT="Week",$T="Weekdays",PT="Weekend",WT="Weekly",RT="Workdays",JT="Year",BT="Yearly",FT="Specific time",GT="Time",HT="to",VT="Valid",ZT="from",XT="to",KT="Whole day",qT="every month",ey={"ra_%s links from aliases":"%s links from aliases","ra_%s object(s) processed":"%s object(s) processed","ra_%s was imported":"%s was imported","ra_Accept license":"Accept license",ra_Actions:B4,"ra_Add new child object to selected parent":"Add new child object to selected parent","ra_Add objects tree from JSON file":"Add objects tree from JSON file","ra_Add row":"Add row","ra_Advanced options":"Advanced options","ra_All items are filtered out":"All items are filtered out","ra_All objects":"All objects",ra_Append:F4,"ra_Append %s entries or replace existing?":"Append %s entries or replace existing?","ra_Append or replace?":"Append or replace?","ra_Are you sure?":"Are you sure?","ra_Auto (no custom columns)":"Auto (no custom columns)","ra_Back to %s":"Back to %s","ra_Background image":"Background image",ra_Cancel:G4,"ra_Cannot add items with set filter":"Cannot add items with set filter","ra_Cannot decode license":"Cannot decode license","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Cannot determine position: System settings are empty and GPS detection is disabled in browser",'ra_Cannot find "%s"':'Cannot find "%s"','ra_Cannot read "%s"':'Cannot read "%s"',"ra_Cannot read licenses: %s":"Cannot read licenses: %s","ra_Cannot retrieve options, as instance is offline":"Cannot retrieve options, as instance is offline","ra_Cannot update attribute, because not found in the object":"Cannot update attribute, because not found in the object","ra_Cannot upload":"Cannot upload",ra_Categories:H4,"ra_Chained certificate":"Chained certificate","ra_Change color theme":"Change color theme","ra_Changed from":"Changed from","ra_Channel → State":"Channel → State","ra_Check license":"Check license",ra_Checked:V4,ra_Clear:Z4,"ra_Clear filter":"Clear filter","ra_Clear icon":"Clear icon","ra_Clone current row":"Clone current row",ra_Close:X4,"ra_Collapse all nodes":"Collapse all nodes","ra_Collapse one step node":"Collapse one level",ra_Commercial:K4,ra_Configure:q4,"ra_Configure visible columns":"Configure visible columns","ra_Confirm deletion of %s":"Confirm deletion of %s",ra_Connected:eL,ra_Continue:tL,ra_Copied:sL,"ra_Copied %s":'Copied "%s"',"ra_Copy content":"Copy content",ra_Create:iL,"ra_Create alias":"Create alias","ra_Create folder":"Create folder","ra_Create new folder in %s":"Create new folder in %s",ra_Crop:oL,"ra_Define CRON...":"Define CRON...","ra_Define functions":"Define functions","ra_Define rooms":"Define rooms","ra_Define schedule":"Define schedule","ra_Define schedule...":"Define schedule...",ra_Del:rL,ra_Delete:ML,"ra_Delete current row":"Delete current row","ra_Deselect all":"Unselect all","ra_Device → Channel → State":"Device → Channel → State",ra_Discard:nL,ra_Disconnected:aL,"ra_Do not ask for next 2 hours in this session":"Do not ask for next 2 hours in this session","ra_Do not export values of states":"Do not export values of states","ra_Do not use let's encrypt":"Do not use let's encrypt","ra_Double click to reset table layout":"Double click to reset table layout","ra_Drag 'n' drop some files here, or click to select files":"Drag 'n' drop some files here, or click to select files","ra_Drop file here":"Drop file here","ra_Drop the files here...":"Drop the file here...","ra_Duplicate name":"Duplicate name","ra_Edit ACL":"Edit ACL","ra_Edit alias":"Edit alias","ra_Edit custom config":"Edit custom config","ra_Edit full path":"Edit full path","ra_Edit function":"Edit function","ra_Edit object field":"Edit object field","ra_Edit role":"Edit role","ra_Edit room":"Edit room","ra_Edit value":"Edit value","ra_Enter the code from that page here":"Enter the code from that page here",ra_Error:cL,"ra_Expand all nodes":"Expand all nodes","ra_Expand one step node":"Expand one level","ra_Export data to %s file":"Export data to %s file","ra_Failed to open JSON File":"Failed to open JSON File","ra_Fallback custom certificates":"Fallback custom certificates","ra_File is too big. Max %sk allowed. Try use SVG.":"File is too big. Max %sk allowed. Try use SVG.",ra_Filter:uL,"ra_Filter and Data Actions":"Filter and Data Actions","ra_Filter files":"Filter files","ra_Folder name":"Folder name","ra_Folder → Channel → State":"Folder → Channel → State","ra_Folder → Device → Channel → State":"Folder → Device → Channel → State","ra_Folder → State":"Folder → State","ra_Folders always first":"Folders always first",ra_Friday:NL,"ra_Get %s access":"Get %s access","ra_Good luck":"Good luck","ra_Hide empty folders":"Hide empty folders","ra_If no file will be created in the folder, it will disappear after the browser closed":"If no file will be created in the folder, it will disappear after the browser closed","ra_If the button above does not work, you can authorize manually this app by visiting this url":"If the button above does not work, you can authorize manually this app by visiting this url","ra_Import data from %s file":"Import data from %s file","ra_Import from %s":"Import from %s","ra_Instance %s is alive":"Instance %s is alive","ra_Instance %s is not alive":"Instance %s is not alive","ra_Instance is not alive":"Instance is not alive","ra_Invalid CRON":"Invalid CRON","ra_Invalid JSON":"Invalid JSON","ra_Invalid answer from server":"Invalid answer from server","ra_Invalid parent folder!":"Invalid parent folder!","ra_Invalid structure":"Invalid structure","ra_JSON editor":"JSON editor","ra_Last change":"Last change",ra_Latitude:lL,"ra_License %s":"License %s","ra_License agreement":"License agreement","ra_License does not exist":"License does not exist","ra_License expired on %s":"License expired on %s",'ra_License for other product "%s"':'License for other product "%s"',"ra_License is for version %s, but required version is %s.":"License is for version %s, but required version is %s.","ra_License must be converted":"License must be converted to newer version. You can do it in your iobroker.net profile.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"License not found in the license manager. Do you want to update licenses from iobroker.net?","ra_Listen on all IPs":"Listen on all IPs","ra_Load configuration from file":"Load configuration from file",ra_Logout:LL,ra_Longitude:jL,'ra_May not trigger "updateLicenses"':'May not trigger "updateLicenses"',ra_Message:gL,ra_Monday:TL,"ra_Move down":"Move down","ra_Move up":"Move up",ra_Name:yL,"ra_No data found in file":"No data found in file","ra_No one license found in license manager":"No one license found in license manager","ra_No response from the backend":"No response from the backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Non-experts may create new objects only in "0_userdata.0" or "alias.0".',"ra_Not a number":"Not a number",ra_Objects:DL,ra_Ok:dL,"ra_On weekdays":"On weekdays","ra_Only following structures of objects are available:":"Only following structures of objects are available:","ra_Only selected":"Only selected","ra_Owner group":"Owner group","ra_Owner user":"Owner user","ra_Passwords are not equal!":"Passwords are not equal!","ra_Place your files here or click here to open the browse dialog":"Place your files here or click here to open the browse dialog","ra_Please allow popups in your browser for this page!":"Please allow popups in your browser for this page!","ra_Please confirm":"Please confirm","ra_Please create license":"Please create license","ra_Please enter the license":"Please enter the license","ra_Please select file...":"Please select file...","ra_Please select object ID...":"Please select object ID...","ra_Port could be used by %s":"Port could be used by %s","ra_Port is already used by %s":"Port is already used by %s","ra_Press ENTER Key to add new item":"Press ENTER Key to add new item","ra_Private certificate":"Private certificate",ra_Product:zL,"ra_Public certificate":"Public certificate","ra_Quality code":"Quality","ra_Refresh tree":"Refresh tree","ra_Reload files":"Reload files",ra_Rename_Move_Copy:IL,"ra_Renew %s access":"Renew %s access",ra_Repeat:wL,ra_Replace:CL,"ra_Request timed out":"Request timed out","ra_Restrict to folder":"Restrict to folder",ra_Root:hL,ra_Saturday:AL,ra_Save:pL,"ra_Save and close":"Save and close","ra_Save configuration to file":"Save configuration to file","ra_Save objects tree as JSON file":"Save objects tree as JSON file","ra_Select all":"Select all","ra_Select color":"Select color","ra_Select predefined icon":"Select predefined icon","ra_Select type of export":"Select type of export",ra_Selected:mL,"ra_Selected %s object(s)":"Selected %s object(s)","ra_Serial number (UUID)":"Serial number (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serial number (UUID) "%s" in license is for other device.',"ra_Session will expire in %s seconds. Continue?":"Session will expire in %s seconds. Continue?","ra_Show all folders":"Show all folders","ra_Show lines between rows":"Show lines between rows","ra_Show/Hide object descriptions":"Show/Hide object descriptions","ra_Show/hide filter input":"Show/hide filter input","ra_Some data are not stored. Discard?":"Some data are not stored. Discard?",ra_States:OL,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Successfully authorized. Token valid till %s and will be automatically renewed.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Successfully authorized. Token valid till %s but it can expire as the instance is not running.","ra_Suitable license not found in license manager":"Suitable license not found in license manager",ra_Sunday:EL,"ra_Suppress question for next %s minutes":"Suppress question for next %s minutes","ra_System language":"System language","ra_Take browser position":"Take position from browser","ra_Take position from system settings":"Take position from system settings",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").',"ra_The page you are looking for was not found":"The page you are looking for was not found","ra_The schedule will be executed every minute. Are you sure?":"The schedule will be executed every minute. Are you sure?","ra_The schedule will be executed every second. Are you sure?":"The schedule will be executed every second. Are you sure?",ra_Thursday:_L,ra_Timestamp:SL,"ra_Toggle expert mode":"Toggle expert mode","ra_Toggle the states view":"Toggle the states view","ra_Toggle view mode":"Toggle view mode","ra_Too big":"Too big","ra_Too small":"Too small","ra_Transparent dialog":"Transparent dialog",ra_Tuesday:xL,"ra_Unknown error":"Unknown error","ra_Unknown error!":"Unknown error!",ra_Update:fL,"ra_Upload file":"Upload file","ra_Use all available let's encrypt certificates":"Use all available let's encrypt certificates","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use iobroker.acme adapter for letsencrypt certificates","ra_Use system settings for position":"Use system settings for position","ra_Used system settings":"Used system settings","ra_User files":"User files",ra_ValidTill:kL,ra_Value:YL,ra_Version:QL,"ra_View file":"View file","ra_View: %s":"View: %s",ra_Wednesday:UL,ra_Width:vL,ra_Yes:bL,"ra_You can export all objects or just the selected branch.":"You can export all objects or just the selected branch.","ra_You can filter entries by entering here some text":"You can filter entries by entering here some text","ra_You can use * as wildcard":"You can use * as wildcard",ra___different__:$L,ra_aclEveryone_read_object:PL,ra_aclEveryone_read_state:WL,ra_aclEveryone_write_object:RL,ra_aclEveryone_write_state:JL,ra_aclGroup_read_object:BL,ra_aclGroup_read_state:FL,ra_aclGroup_write_object:GL,ra_aclGroup_write_state:HL,ra_aclOwner_read_object:VL,ra_aclOwner_read_state:ZL,ra_aclOwner_write_object:XL,ra_aclOwner_write_state:KL,ra_buttons:qL,ra_changedFrom:e0,ra_close:t0,ra_create_boolean_state:s0,ra_create_channel:i0,ra_create_device:o0,ra_create_number_state:r0,ra_create_state:M0,ra_create_string_state:n0,ra_daysShortText:a0,ra_dow_Fr:c0,ra_dow_Mo:u0,ra_dow_Sa:N0,ra_dow_Su:l0,ra_dow_Th:L0,ra_dow_Tu:j0,ra_dow_We:g0,ra_expertMode:T0,ra_false:y0,ra_fileType_all:D0,ra_fileType_audio:d0,ra_fileType_code:z0,ra_fileType_images:I0,ra_fileType_txt:w0,ra_fileType_video:C0,"ra_fileType_video,":"Video",ra_filter_customs:h0,ra_filter_customs_without:A0,ra_filter_func:p0,ra_filter_id:m0,ra_filter_name:O0,ra_filter_role:E0,ra_filter_room:_0,ra_filter_type:S0,"ra_import data from %s file":"Import data from %s file",ra_invalidConfig:x0,ra_lastChange:f0,ra_locally:k0,ra_month_Apr:Y0,ra_month_Aug:Q0,ra_month_Dec:U0,ra_month_Feb:v0,ra_month_Jan:b0,ra_month_Jul:$0,ra_month_Jun:P0,ra_month_Mai:W0,ra_month_Mar:R0,ra_month_Nov:J0,ra_month_Oct:B0,ra_month_Sep:F0,ra_months_Apr:G0,ra_months_Aug:H0,ra_months_Dec:V0,ra_months_Feb:Z0,ra_months_Jan:X0,ra_months_Jul:K0,ra_months_Jun:q0,ra_months_Mai:ej,ra_months_Mar:tj,ra_months_Nov:sj,ra_months_Oct:ij,ra_months_Sep:oj,"ra_no confirm for 5 mins":"no confirm for 5 mins",ra_none:rj,ra_object_changed_by:Mj,ra_object_changed_by_user:nj,ra_otherConfig:aj,ra_qualityCode:cj,ra_repeat:uj,ra_select_folder_hint:Nj,ra_show_all:lj,ra_state_changed_by:Lj,ra_state_changed_from:jj,ra_timestamp:gj,ra_tooltip_ack:Tj,ra_tooltip_comment:yj,ra_tooltip_copyState:Dj,ra_tooltip_ctrlForLink:dj,ra_tooltip_customConfig:zj,ra_tooltip_deleteObject:Ij,ra_tooltip_editObject:wj,ra_tooltip_editState:Cj,ra_tooltip_expire:hj,ra_tooltip_from:Aj,ra_tooltip_lc:pj,ra_tooltip_quality:mj,ra_tooltip_ts:Oj,ra_tooltip_user:Ej,ra_tooltip_value:_j,ra_true:Sj,"ra_use seconds":"use seconds",ra_val:xj,"ra_via internet":"via internet",ra_warning_every_minute:fj,ra_warning_every_second:kj,sc_cron:Yj,sc_date:Qj,sc_dates:Uj,sc_dow:vj,sc_dows:bj,sc_every:$j,sc_everyN_dates:Pj,sc_everyN_dow:Wj,sc_everyN_dows:Rj,sc_everyN_hours:Jj,sc_everyN_minutes:Bj,sc_everyN_months:Fj,sc_everyN_seconds:Gj,sc_every_dates:Hj,sc_every_dow:Vj,sc_every_dows:Zj,sc_every_hours:Xj,sc_every_minutes:Kj,sc_every_months:qj,sc_every_seconds:eg,sc_from:tg,sc_hours:sg,sc_interval:ig,sc_intervalBetween:og,sc_invalid_cron:rg,sc_minutes:Mg,sc_months:ng,sc_once:ag,sc_period:cg,sc_seconds:ug,sc_simple:Ng,sc_specific:lg,sc_specific_dates:Lg,sc_specific_dow:jg,sc_specific_dows:gg,sc_specific_hours:Tg,sc_specific_minutes:yg,sc_specific_months:Dg,sc_specific_seconds:dg,sc_time:zg,sc_to:Ig,sc_wizard:wg,sch_all:Cg,sch_astroDay:hg,sch_astroNight:Ag,sch_astro_dawn:pg,sch_astro_dusk:mg,sch_astro_goldenHour:Og,sch_astro_goldenHourEnd:Eg,sch_astro_nadir:_g,sch_astro_nauticalDawn:Sg,sch_astro_nauticalDusk:xg,sch_astro_night:fg,sch_astro_nightEnd:kg,sch_astro_solarNoon:Yg,sch_astro_sunrise:Qg,sch_astro_sunriseEnd:Ug,sch_astro_sunset:vg,sch_astro_sunsetStart:bg,sch_at:$g,sch_desc_atTime:Pg,sch_desc_everyDay:Wg,sch_desc_everyHour:Rg,sch_desc_everyMinute:Jg,sch_desc_everyMonth:Bg,sch_desc_everyNDay:Fg,sch_desc_everyNHours:Gg,sch_desc_everyNMinutes:Hg,sch_desc_everyNMonths:Vg,sch_desc_everyNWeeks:Zg,sch_desc_everyNYears:Xg,sch_desc_everyWeek:Kg,sch_desc_everyYear:qg,sch_desc_intervalFromTo:eT,sch_desc_never:tT,sch_desc_onDate:sT,sch_desc_onDates:iT,sch_desc_onEveryDate:oT,sch_desc_onMonth:rT,sch_desc_onMonths:MT,sch_desc_onWeekday:nT,sch_desc_onWeekdays:aT,sch_desc_onWeekends:cT,sch_desc_onWorkdays:uT,sch_desc_onceInPast:NT,sch_desc_once_on:lT,sch_desc_validFrom:LT,sch_desc_validFromTo:jT,sch_desc_validTo:gT,sch_every:TT,sch_exactTime:yT,sch_from:DT,sch_fromTo:dT,sch_intervalTime:zT,sch_invert:IT,sch_no_one:wT,sch_on:CT,sch_period:hT,sch_periodDaily:AT,sch_periodDates:pT,sch_periodDay:mT,sch_periodEvery:OT,sch_periodEveryDay:ET,sch_periodEveryMonth:_T,sch_periodEveryWeek:ST,sch_periodEveryYear:xT,sch_periodHours:fT,sch_periodMinutes:kT,sch_periodMonth:YT,sch_periodMonthly:QT,sch_periodOnce:UT,sch_periodSpecificMonths:vT,sch_periodWeek:bT,sch_periodWeekdays:$T,sch_periodWeekend:PT,sch_periodWeekly:WT,sch_periodWorkdays:RT,sch_periodYear:JT,sch_periodYearly:BT,sch_specificTime:FT,sch_time:GT,sch_to:HT,sch_valid:VT,sch_validFrom:ZT,sch_validTo:XT,sch_wholeDay:KT,sch_yearEveryMonth:qT},ty="Aktionen",sy="Anhängen",iy="Abbrechen",oy="Kategorien",ry="Geprüft",My="Löschen",ny="Schließen",ay="Kommerziell",cy="Konfigurieren",uy="Verbunden",Ny="Weitermachen",ly="Kopiert",Ly="Erstellen",jy="Ernte",gy="Entf",Ty="Löschen",yy="Verwerfen",Dy="Getrennt",dy="Fehler",zy="Filter",Iy="Freitag",wy="Breite",Cy="Ausloggen",hy="Längengrad",Ay="Meldung",py="Montag",my="Name",Oy="Objekte",Ey="OK",_y="Produkt",Sy="Umbenennen/Verschieben/Kopieren",xy="Wiederholen",fy="Ersetzen",ky="Anfang",Yy="Samstag",Qy="Speichern",Uy="Ausgewählt",vy="Zustände",by="Sonntag",$y="Donnerstag",Py="Zeitstempel",Wy="Dienstag",Ry="Aktualisieren",Jy="Gültig bis",By="Wert",Fy="Ausführung",Gy="Mittwoch",Hy="Breite",Vy="Ja",Zy="unterschiedlich",Xy="Jeder kann Objekt lesen",Ky="Jeder kann Zustand lesen",qy="Jeder kann ein Objekt schreiben",eD="Jeder kann Zustand schreiben",tD="Gruppe kann Objekt lesen",sD="Gruppe kann Status lesen",iD="Gruppe kann Objekt schreiben",oD="Gruppe kann Status schreiben",rD="Besitzer kann Objekt lesen",MD="Besitzer kann Zustand lesen",nD="Besitzer kann Objekt schreiben",aD="Besitzer kann Zustand schreiben",cD="Tasten",uD="Geändert von",ND="Schließen",lD="Booleschen Zustand erstellen",LD="Kanal erstellen",jD="Gerät erstellen",gD="Nummern-Zustand erstellen",TD="Zustand erstellen",yD="String-Zustand erstellen",DD="T.",dD="Fr",zD="Mo",ID="Sa",wD="So",CD="Do",hD="Di",AD="Mi",pD="Expertenmodus",mD="FALSCH",OD="Alle Dateien",ED="Audio",_D="Code/JSON",SD="Bilder",xD="Text",fD="Video",kD="Einstellungen",YD="ohne",QD="Funktion",UD="ID",vD="Name",bD="Rolle",$D="Raum",PD="Typ",WD="Ungültige Einstellungen",RD="Letzte Änderung",JD="örtlich",BD="Apr",FD="Aug",GD="Dez",HD="Feb",VD="Jan",ZD="Jul",XD="Jun",KD="Mai",qD="Mär",ed="Nov",td="Okt",sd="Sep",id="Apr",od="Aug",rd="Dez",Md="Feb",nd="Jan",ad="Jul",cd="Jun",ud="Mai",Nd="Mär",ld="Nov",Ld="Okt",jd="Sep",gd="kein",Td="Objekt geändert von",yd="Objekt zuletzt geändert um",Dd="Einstellungen von anderen Adaptern %s",dd="Qualitätscode",zd="wiederholen",Id='Um einen Ordner auszuwählen, halten Sie einfach die Taste "Shift" gedrückt, indem Sie auf den Ordner klicken.',wd="Alle anzeigen",Cd="Zustand geändert durch",hd="Objekt geändert von",Ad="Zeitstempel",pd="Bestätigt",md="Kommentar",Od="Statuswert kopieren",Ed="Strg/⌘-Taste gedrückt halten, um den Link zu öffnen",_d="Benutzerdefinierte Einstellungen",Sd="Objekt löschen",xd="Objekt bearbeiten",fd="Statuswert bearbeiten",kd="Läuft ab in",Yd="Von",Qd="Zuletzt geändert",Ud="Qualität",vd="Zeitstempel",bd="Benutzer",$d="Wert",Pd="WAHR",Wd="Wert",Rd="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Minute ausgeführt!",Jd="Achtung: Der CRON-Job wird im angegebenen Zeitraum jede Sekunde ausgeführt!",Bd="CRON",Fd="Datum",Gd="Tage",Hd="Tag",Vd="Wochentage",Zd="Jeden",Xd="alle N Tage",Kd="jeden x-ten Tag der Woche",qd="alle N Wochentage",ez="alle N Stunden",tz="alle N Minuten",sz="alle N Monate",iz="alle N Sekunden",oz="jeden Tag",rz="jeden Tag der Woche",Mz="jeden Tag der Woche",nz="jede Stunde",az="jede Minute",cz="jeden Monat",uz="jede Sekunde",Nz="Von",lz="Stunden",Lz="Intervall",jz="Intervall zwischen",gz="Ungültiger CRON",Tz="Minuten",yz="Monate",Dz="Einmal",dz="Zeitraum",zz="Sekunden",Iz="Einfach",wz="Bestimmte Zeit",Cz="bestimmte Tage",hz="bestimmte(r) Tag(e) der Woche",Az="bestimmten Wochentag",pz="bestimmte Stunden",mz="bestimmte Minuten",Oz="bestimmte Monate",Ez="bestimmte Sekunden",_z="Zeit",Sz="Bis",xz="Wizard",fz="alle",kz="Astronomischer Tag",Yz="Astronomische Nacht",Qz="Morgendämmerung",Uz="Abenddämmerung",vz="Goldene Stunde",bz="Goldene Stundenende",$z="Nadir",Pz="Nautische Morgendämmerung",Wz="Nautische Abenddämmerung",Rz="Nacht",Jz="Nachtende",Bz="Sonnenmittag",Fz="Sonnenaufgang",Gz="Sonnenaufgangende",Hz="Sonnenuntergang",Vz="Sonnenuntergangstart",Zz="am",Xz="um %s",Kz="jeden Tag",qz="jede Stunde",eI="jede Minute",tI="jeden Monat",sI="jeden %s Tag",iI="alle %s Stunden",oI="alle %s Minuten",rI="alle %s Monate",MI="alle %s Wochen",nI="alle %s Jahre",aI="jede Woche",cI="jedes Jahr",uI="von %s bis %s",NI="noch nie",lI="am %s von %s",LI="am %s und %s von",jI="an jedem Datum von",gI="%s",TI="%s und %s",yI="auf %s",DI="auf %s und %s",dI="an Wochenenden",zI="an Werktagen",II="wird nicht mehr ausgeführt, weil der Start in der Vergangenheit ist",wI="auf %s",CI="von %s",hI="Ausführen von bis",AI="bis %s",pI="jeden",mI="Bestimmte Zeit",OI="von",EI="Von bis",_I="Zeitintervall",SI="umkehren",xI="keiner",fI="am",kI="Zeitraum",YI="Täglich",QI="Daten",UI="Tag",vI="Jeden",bI="Jeden Tag",$I="Jeden Monat",PI="Jede Woche",WI="Jedes Jahr",RI="Stunden",JI="Minuten",BI="Monat",FI="Monatlich",GI="Einmal",HI="Bestimmte Monate",VI="Woche",ZI="Wochentage",XI="Wochenende",KI="Wöchentlich",qI="Arbeitstage",ew="Jahr",tw="Jährlich",sw="Bestimmte Zeit",iw="Zeit",ow="zu",rw="Gültigkeit",Mw="von",nw="bis",aw="Ganzer Tag",cw="jeden Monat",uw={"ra_%s links from aliases":"%s Links von Aliasen","ra_%s object(s) processed":"%s Objekt(e) verarbeitet","ra_%s was imported":"%s wurde importiert","ra_Accept license":"Lizenz akzeptieren",ra_Actions:ty,"ra_Add new child object to selected parent":"Dem ausgewählten übergeordneten Objekt ein neues untergeordnetes Objekt hinzufügen","ra_Add objects tree from JSON file":"Objektbaum aus JSON-Datei hinzufügen","ra_Add row":"Zeile hinzufügen","ra_Advanced options":"Erweiterte Optionen","ra_All items are filtered out":"Alle Elemente sind herausgefiltert","ra_All objects":"Alle Objekte",ra_Append:sy,"ra_Append %s entries or replace existing?":"%s Einträge anhängen oder vorhandene ersetzen?","ra_Append or replace?":"Anhängen oder ersetzen?","ra_Are you sure?":"Bist du sicher?","ra_Auto (no custom columns)":"Auto (keine benutzerdefinierten Spalten)","ra_Back to %s":"Zurück zu %s","ra_Background image":"Hintergrundbild",ra_Cancel:iy,"ra_Cannot add items with set filter":"Elemente mit festgelegtem Filter können nicht hinzugefügt werden","ra_Cannot decode license":"Lizenz kann nicht entschlüsselt werden","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert",'ra_Cannot find "%s"':'Kann "%s" nicht finden','ra_Cannot read "%s"':'"%s" kann nicht gelesen werden',"ra_Cannot read licenses: %s":"Lizenzen können nicht gelesen werden: %s","ra_Cannot retrieve options, as instance is offline":"Optionen können nicht abgerufen werden, da die Instanz offline ist","ra_Cannot update attribute, because not found in the object":"Attribut kann nicht aktualisiert werden, da es nicht im Objekt gefunden wurde","ra_Cannot upload":"Kann nicht hochladen",ra_Categories:oy,"ra_Chained certificate":"Chained Zertifikat","ra_Change color theme":"Farbthema ändern","ra_Changed from":"Geändert von","ra_Channel → State":"Kanal → Zustand","ra_Check license":"Lizenz prüfen",ra_Checked:ry,ra_Clear:My,"ra_Clear filter":"Filter löschen","ra_Clear icon":"Symbol löschen","ra_Clone current row":"Aktuelle Zeile klonen",ra_Close:ny,"ra_Collapse all nodes":"Alle Knoten zuklappen","ra_Collapse one step node":"Eine Ebene zuklappen",ra_Commercial:ay,ra_Configure:cy,"ra_Configure visible columns":"Spalten Konfigurieren","ra_Confirm deletion of %s":"Das Löschen von %s bestätigen",ra_Connected:uy,ra_Continue:Ny,ra_Copied:ly,"ra_Copied %s":'"%s" kopiert',"ra_Copy content":"Inhalte kopieren",ra_Create:Ly,"ra_Create alias":"Alias erstellen","ra_Create folder":"Ordner erstellen","ra_Create new folder in %s":'Neuen Ordner in "%s" erstellen',ra_Crop:jy,"ra_Define CRON...":"Definieren Sie CRON ...","ra_Define functions":"Funktionen definieren","ra_Define rooms":"Räume definieren","ra_Define schedule":"Zeitplan definieren","ra_Define schedule...":"Zeitplan definieren ...",ra_Del:gy,ra_Delete:Ty,"ra_Delete current row":"Aktuelle Zeile löschen","ra_Deselect all":"Alles abwählen","ra_Device → Channel → State":"Gerät → Kanal → Zustand",ra_Discard:yy,ra_Disconnected:Dy,"ra_Do not ask for next 2 hours in this session":"Fragen Sie nicht nach den nächsten 2 Stunden in dieser Sitzung","ra_Do not export values of states":"Keine Zustandswerte exportieren","ra_Do not use let's encrypt":"Let's encrypt nicht verwenden","ra_Double click to reset table layout":"Doppelklicken, um das Tabellenlayout zurückzusetzen","ra_Drag 'n' drop some files here, or click to select files":"Die Datei hierher ziehen und ablegen, oder klicken, um die Datei auszuwählen","ra_Drop file here":"Datei hier ablegen","ra_Drop the files here...":"Datei hier ablegen...","ra_Duplicate name":"Doppelter Name","ra_Edit ACL":"ACL bearbeiten","ra_Edit alias":"Alias bearbeiten","ra_Edit custom config":"Bearbeite Benutzerdefinierte Konfiguration","ra_Edit full path":"Vollständigen Pfad bearbeiten","ra_Edit function":"Funktion bearbeiten","ra_Edit object field":"Objektfeld bearbeiten","ra_Edit role":"Rolle bearbeiten","ra_Edit room":"Raum bearbeiten","ra_Edit value":"Wert bearbeiten","ra_Enter the code from that page here":"Geben Sie den Code von dieser Seite hier ein",ra_Error:dy,"ra_Expand all nodes":"Alle Knoten aufklappen","ra_Expand one step node":"Eine Ebene aufklappen","ra_Export data to %s file":"Daten in %s-Datei exportieren","ra_Failed to open JSON File":"Fehler beim Öffnen der JSON-Datei","ra_Fallback custom certificates":"Benutzerdefinierte Fallback-Zertifikate","ra_File is too big. Max %sk allowed. Try use SVG.":"Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.",ra_Filter:zy,"ra_Filter and Data Actions":"Filter- und Datenaktionen","ra_Filter files":"Dateien filtern","ra_Folder name":"Ordnernamen","ra_Folder → Channel → State":"Ordner → Kanal → Zustand","ra_Folder → Device → Channel → State":"Ordner → Gerät → Kanal → Zustand","ra_Folder → State":"Ordner → Zustand","ra_Folders always first":"Ordner immer zuerst",ra_Friday:Iy,"ra_Get %s access":"%s Zugriff erhalten","ra_Good luck":"Viel Glück","ra_Hide empty folders":"Leere Ordner ausblenden","ra_If no file will be created in the folder, it will disappear after the browser closed":"Wenn im Ordner keine Datei erstellt wird, verschwindet dieser nach dem Schließen des Browsers","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen","ra_Import data from %s file":"Daten aus %s-Datei importieren","ra_Import from %s":"Von %s importieren","ra_Instance %s is alive":"Instanz %s ist aktiv","ra_Instance %s is not alive":"Instanz %s ist nicht aktiv","ra_Instance is not alive":"Instanz ist nicht am Leben","ra_Invalid CRON":"Ungültiger CRON","ra_Invalid JSON":"Ungültiges JSON","ra_Invalid answer from server":"Ungültige Antwort vom Server","ra_Invalid parent folder!":"Ungültiger übergeordneter Ordner!","ra_Invalid structure":"Ungültige Struktur","ra_JSON editor":"JSON-Editor","ra_Last change":"Letzte Änderung",ra_Latitude:wy,"ra_License %s":"Lizenz %s","ra_License agreement":"Lizenzvereinbarung","ra_License does not exist":"Lizenz existiert nicht","ra_License expired on %s":"Lizenz am %s abgelaufen",'ra_License for other product "%s"':"Lizenz für anderes Produkt „%s“","ra_License is for version %s, but required version is %s.":"Lizenz ist für Version %s, aber erforderliche Version ist %s.","ra_License must be converted":"Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?","ra_Listen on all IPs":"Zugriff von allen IPs zulassen","ra_Load configuration from file":"Konfiguration aus Datei laden",ra_Logout:Cy,ra_Longitude:hy,'ra_May not trigger "updateLicenses"':"Löst möglicherweise nicht „updateLicenses“ aus",ra_Message:Ay,ra_Monday:py,"ra_Move down":"Nach unten","ra_Move up":"Nach oben",ra_Name:my,"ra_No data found in file":"Keine Daten in der Datei gefunden","ra_No one license found in license manager":"Im Lizenzmanager wurde keine Lizenz gefunden","ra_No response from the backend":"Keine Antwort vom Backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Nicht-Experten dürfen neue Objekte nur in "0_userdata.0" oder "alias.0" erstellen.',"ra_Not a number":"Keine Nummer",ra_Objects:Oy,ra_Ok:Ey,"ra_On weekdays":"An Wochentagen","ra_Only following structures of objects are available:":"Es stehen nur folgende Objektstrukturen zur Verfügung:","ra_Only selected":"Nur ausgewählt","ra_Owner group":"Besitzergruppe","ra_Owner user":"Besitzer Benutzer","ra_Passwords are not equal!":"Passwörter sind nicht gleich!","ra_Place your files here or click here to open the browse dialog":"Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen","ra_Please allow popups in your browser for this page!":"Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!","ra_Please confirm":"Bitte bestätigen","ra_Please create license":"Bitte erstellen Sie eine Lizenz","ra_Please enter the license":"Bitte die Lizenz eingeben","ra_Please select file...":"Bitte Datei auswählen...","ra_Please select object ID...":"Bitte Objekt-ID auswählen...","ra_Port could be used by %s":"Port könnte von %s verwendet werden","ra_Port is already used by %s":"Port wird bereits von %s verwendet","ra_Press ENTER Key to add new item":"Die Eingabetaste drücken, um ein neues Element hinzuzufügen","ra_Private certificate":"Privates Zertifikat",ra_Product:_y,"ra_Public certificate":"Öffentliches Zertifikat","ra_Quality code":"Qualität","ra_Refresh tree":"Baum aktualisieren","ra_Reload files":"Dateien neu laden",ra_Rename_Move_Copy:Sy,"ra_Renew %s access":"%s Zugriff erneuern",ra_Repeat:xy,ra_Replace:fy,"ra_Request timed out":"Zeitüberschreitung der Anforderung","ra_Restrict to folder":"Auf Ordner beschränken",ra_Root:ky,ra_Saturday:Yy,ra_Save:Qy,"ra_Save and close":"Speichern und schließen","ra_Save configuration to file":"Konfiguration in Datei speichern","ra_Save objects tree as JSON file":"Objektbaum als JSON-Datei speichern","ra_Select all":"Alle auswählen","ra_Select color":"Wähle Farbe","ra_Select predefined icon":"Vordefiniertes Symbol auswählen","ra_Select type of export":"Die Art des Exports auswählen ",ra_Selected:Uy,"ra_Selected %s object(s)":"Ausgewählt %s Objekt(en)","ra_Serial number (UUID)":"Seriennummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.","ra_Session will expire in %s seconds. Continue?":"Die Sitzung läuft in %s Sekunden ab. Fortfahren?","ra_Show all folders":"Alle Ordner anzeigen","ra_Show lines between rows":"Linien zwischen Zeilen anzeigen","ra_Show/Hide object descriptions":"Objektbeschreibungen ein-/ausblenden","ra_Show/hide filter input":"Filtereingabe ein-/ausblenden","ra_Some data are not stored. Discard?":"Einige Daten werden nicht gespeichert. Verwerfen?",ra_States:vy,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.","ra_Suitable license not found in license manager":"Passende Lizenz im Lizenzmanager nicht gefunden",ra_Sunday:by,"ra_Suppress question for next %s minutes":"Frage für die nächsten %s Minuten unterdrücken","ra_System language":"Systemsprache","ra_Take browser position":"Position vom Browser einnehmen","ra_Take position from system settings":"Position aus den Systemeinstellungen übernehmen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Die Experten können Objekte überall erstellen, außer auf der zweiten Ebene (z. B. "vis.0" oder "javascript.0").',"ra_The page you are looking for was not found":"Die gesuchte Seite wurde nicht gefunden","ra_The schedule will be executed every minute. Are you sure?":"Der Zeitplan wird jede Minute ausgeführt. Sind Sie sicher?","ra_The schedule will be executed every second. Are you sure?":"Der Zeitplan wird jede Sekunde ausgeführt. Sind Sie sicher?",ra_Thursday:$y,ra_Timestamp:Py,"ra_Toggle expert mode":"Expertenmodus umschalten","ra_Toggle the states view":"Statusansicht umschalten","ra_Toggle view mode":"Ansichtsmodus umschalten","ra_Too big":"Zu groß","ra_Too small":"Zu klein","ra_Transparent dialog":"Transparenter Dialog",ra_Tuesday:Wy,"ra_Unknown error":"Unbekannter Fehler","ra_Unknown error!":"Unbekannter Fehler!",ra_Update:Ry,"ra_Upload file":"Datei hochladen","ra_Use all available let's encrypt certificates":"Alle verfügbaren Zertifikate von Let's encrypt benutzen","ra_Use iobroker.acme adapter for letsencrypt certificates":"ioBroker.acme-Adapter für letsencrypt-Zertifikate verwenden","ra_Use system settings for position":"Systemeinstellungen für die Position verwenden","ra_Used system settings":"Systemeinstellungen","ra_User files":"Benutzerdaten",ra_ValidTill:Jy,ra_Value:By,ra_Version:Fy,"ra_View file":"Datei ansehen","ra_View: %s":"Anschauen: %s",ra_Wednesday:Gy,ra_Width:Hy,ra_Yes:Vy,"ra_You can export all objects or just the selected branch.":"Sie können alle Objekte oder nur den ausgewählten Zweig exportieren.","ra_You can filter entries by entering here some text":"Sie können Einträge filtern, indem Sie hier Text eingeben","ra_You can use * as wildcard":"Sie können * als Platzhalter verwenden",ra___different__:Zy,ra_aclEveryone_read_object:Xy,ra_aclEveryone_read_state:Ky,ra_aclEveryone_write_object:qy,ra_aclEveryone_write_state:eD,ra_aclGroup_read_object:tD,ra_aclGroup_read_state:sD,ra_aclGroup_write_object:iD,ra_aclGroup_write_state:oD,ra_aclOwner_read_object:rD,ra_aclOwner_read_state:MD,ra_aclOwner_write_object:nD,ra_aclOwner_write_state:aD,ra_buttons:cD,ra_changedFrom:uD,ra_close:ND,ra_create_boolean_state:lD,ra_create_channel:LD,ra_create_device:jD,ra_create_number_state:gD,ra_create_state:TD,ra_create_string_state:yD,ra_daysShortText:DD,ra_dow_Fr:dD,ra_dow_Mo:zD,ra_dow_Sa:ID,ra_dow_Su:wD,ra_dow_Th:CD,ra_dow_Tu:hD,ra_dow_We:AD,ra_expertMode:pD,ra_false:mD,ra_fileType_all:OD,ra_fileType_audio:ED,ra_fileType_code:_D,ra_fileType_images:SD,ra_fileType_txt:xD,ra_fileType_video:fD,"ra_fileType_video,":"Video",ra_filter_customs:kD,ra_filter_customs_without:YD,ra_filter_func:QD,ra_filter_id:UD,ra_filter_name:vD,ra_filter_role:bD,ra_filter_room:$D,ra_filter_type:PD,"ra_import data from %s file":"Daten aus %s-Datei importieren",ra_invalidConfig:WD,ra_lastChange:RD,ra_locally:JD,ra_month_Apr:BD,ra_month_Aug:FD,ra_month_Dec:GD,ra_month_Feb:HD,ra_month_Jan:VD,ra_month_Jul:ZD,ra_month_Jun:XD,ra_month_Mai:KD,ra_month_Mar:qD,ra_month_Nov:ed,ra_month_Oct:td,ra_month_Sep:sd,ra_months_Apr:id,ra_months_Aug:od,ra_months_Dec:rd,ra_months_Feb:Md,ra_months_Jan:nd,ra_months_Jul:ad,ra_months_Jun:cd,ra_months_Mai:ud,ra_months_Mar:Nd,ra_months_Nov:ld,ra_months_Oct:Ld,ra_months_Sep:jd,"ra_no confirm for 5 mins":"5 Minuten lang keine Bestätigung",ra_none:gd,ra_object_changed_by:Td,ra_object_changed_by_user:yd,ra_otherConfig:Dd,ra_qualityCode:dd,ra_repeat:zd,ra_select_folder_hint:Id,ra_show_all:wd,ra_state_changed_by:Cd,ra_state_changed_from:hd,ra_timestamp:Ad,ra_tooltip_ack:pd,ra_tooltip_comment:md,ra_tooltip_copyState:Od,ra_tooltip_ctrlForLink:Ed,ra_tooltip_customConfig:_d,ra_tooltip_deleteObject:Sd,ra_tooltip_editObject:xd,ra_tooltip_editState:fd,ra_tooltip_expire:kd,ra_tooltip_from:Yd,ra_tooltip_lc:Qd,ra_tooltip_quality:Ud,ra_tooltip_ts:vd,ra_tooltip_user:bd,ra_tooltip_value:$d,ra_true:Pd,"ra_use seconds":"Sekunden benutzen",ra_val:Wd,"ra_via internet":"übers Internet",ra_warning_every_minute:Rd,ra_warning_every_second:Jd,sc_cron:Bd,sc_date:Fd,sc_dates:Gd,sc_dow:Hd,sc_dows:Vd,sc_every:Zd,sc_everyN_dates:Xd,sc_everyN_dow:Kd,sc_everyN_dows:qd,sc_everyN_hours:ez,sc_everyN_minutes:tz,sc_everyN_months:sz,sc_everyN_seconds:iz,sc_every_dates:oz,sc_every_dow:rz,sc_every_dows:Mz,sc_every_hours:nz,sc_every_minutes:az,sc_every_months:cz,sc_every_seconds:uz,sc_from:Nz,sc_hours:lz,sc_interval:Lz,sc_intervalBetween:jz,sc_invalid_cron:gz,sc_minutes:Tz,sc_months:yz,sc_once:Dz,sc_period:dz,sc_seconds:zz,sc_simple:Iz,sc_specific:wz,sc_specific_dates:Cz,sc_specific_dow:hz,sc_specific_dows:Az,sc_specific_hours:pz,sc_specific_minutes:mz,sc_specific_months:Oz,sc_specific_seconds:Ez,sc_time:_z,sc_to:Sz,sc_wizard:xz,sch_all:fz,sch_astroDay:kz,sch_astroNight:Yz,sch_astro_dawn:Qz,sch_astro_dusk:Uz,sch_astro_goldenHour:vz,sch_astro_goldenHourEnd:bz,sch_astro_nadir:$z,sch_astro_nauticalDawn:Pz,sch_astro_nauticalDusk:Wz,sch_astro_night:Rz,sch_astro_nightEnd:Jz,sch_astro_solarNoon:Bz,sch_astro_sunrise:Fz,sch_astro_sunriseEnd:Gz,sch_astro_sunset:Hz,sch_astro_sunsetStart:Vz,sch_at:Zz,sch_desc_atTime:Xz,sch_desc_everyDay:Kz,sch_desc_everyHour:qz,sch_desc_everyMinute:eI,sch_desc_everyMonth:tI,sch_desc_everyNDay:sI,sch_desc_everyNHours:iI,sch_desc_everyNMinutes:oI,sch_desc_everyNMonths:rI,sch_desc_everyNWeeks:MI,sch_desc_everyNYears:nI,sch_desc_everyWeek:aI,sch_desc_everyYear:cI,sch_desc_intervalFromTo:uI,sch_desc_never:NI,sch_desc_onDate:lI,sch_desc_onDates:LI,sch_desc_onEveryDate:jI,sch_desc_onMonth:gI,sch_desc_onMonths:TI,sch_desc_onWeekday:yI,sch_desc_onWeekdays:DI,sch_desc_onWeekends:dI,sch_desc_onWorkdays:zI,sch_desc_onceInPast:II,sch_desc_once_on:wI,sch_desc_validFrom:CI,sch_desc_validFromTo:hI,sch_desc_validTo:AI,sch_every:pI,sch_exactTime:mI,sch_from:OI,sch_fromTo:EI,sch_intervalTime:_I,sch_invert:SI,sch_no_one:xI,sch_on:fI,sch_period:kI,sch_periodDaily:YI,sch_periodDates:QI,sch_periodDay:UI,sch_periodEvery:vI,sch_periodEveryDay:bI,sch_periodEveryMonth:$I,sch_periodEveryWeek:PI,sch_periodEveryYear:WI,sch_periodHours:RI,sch_periodMinutes:JI,sch_periodMonth:BI,sch_periodMonthly:FI,sch_periodOnce:GI,sch_periodSpecificMonths:HI,sch_periodWeek:VI,sch_periodWeekdays:ZI,sch_periodWeekend:XI,sch_periodWeekly:KI,sch_periodWorkdays:qI,sch_periodYear:ew,sch_periodYearly:tw,sch_specificTime:sw,sch_time:iw,sch_to:ow,sch_valid:rw,sch_validFrom:Mw,sch_validTo:nw,sch_wholeDay:aw,sch_yearEveryMonth:cw},Nw="Действия",lw="Добавить",Lw="Отмена",jw="Категории",gw="Проверено",Tw="Удалить",yw="Закрыть",Dw="Коммерческая",dw="Настроить",zw="Соединение установлено",Iw="Продолжать",ww="скопировано",Cw="Создать",hw="Обрезать",Aw="Delete",pw="Удалить",mw="Отказаться",Ow="Отключено",Ew="Ошибка",_w="Фильтр",Sw="Пятница",xw="Широта",fw="Выйти",kw="Долгота",Yw="Сообщение",Qw="Понедельник",Uw="Имя",vw="Объекты",bw="Ok",$w="Продукт",Pw="Переименовать/Переместить/Копировать",Ww="Повторение",Rw="Заменять",Jw="Начало",Bw="Суббота",Fw="Сохранить",Gw="выбранный",Hw="Состояния",Vw="Воскресенье",Zw="Четверг",Xw="Времени",Kw="Вторник",qw="Обновить",eC="Годен до",tC="Значение",sC="Версия",iC="Среда",oC="Ширина",rC="Да",MC="разное",nC="Каждый может читать объект",aC="Каждый может читать состояние",cC="Каждый может написать объект",uC="Каждый может написать состояние",NC="Группа может читать объект",lC="Группа может читать состояние",LC="Группа может писать объект",jC="Группа может записывать состояние",gC="Владелец может читать объект",TC="Владелец может читать состояние",yC="Владелец может писать объект",DC="Владелец может писать состояние",dC="Кнопки",zC="Изменено с",IC="Закрыть",wC="Создать логическое состояние",CC="Создать канал",hC="Создать устройство",AC="Создать состояние номера",pC="Создать состояние",mC="Создать состояние строки",OC="д.",EC="Пт",_C="Пн",SC="Сб",xC="Вс",fC="Чт",kC="Вт",YC="Ср",QC="Экспертный режим",UC="ЛОЖЬ",vC="Все файлы",bC="Аудио",$C="Код/JSON",PC="Картинки",WC="Текст",RC="видео",JC="настройки",BC="без",FC="функция",GC="ID",HC="Имя",VC="роль",ZC="комната",XC="Тип",KC="Неверные настройки",qC="Последнее изменение",eh="локально",th="Апр",sh="Авг",ih="Дек",oh="Фев",rh="Янв",Mh="Июл",nh="Июн",ah="Май",ch="Мрт",uh="Ноя",Nh="Окт",lh="Сен",Lh="Апр",jh="Авг",gh="Дек",Th="Фев",yh="Янв",Dh="Июнь",dh="Июль",zh="Май",Ih="Март",wh="Ноя",Ch="Окт",hh="Сен",Ah="ничего",ph="Объект изменен",mh="Последний раз объект изменен в",Oh="Настройки из другого адаптера %s",Eh="Код качества",_h="повтор",Sh="Чтобы выбрать папку, просто удерживайте клавишу «Shift», щелкнув папку.",xh="Показать все",fh="Состояние изменено",kh="Объект изменен с",Yh="Отметка времени",Qh="Подтверждено",Uh="Комментарий",vh="Скопируйте значение состояния",bh="Удерживайте клавишу Cltr/⌘, чтобы открыть ссылку",$h="Пользовательские настройки",Ph="Удалить объект",Wh="Редактировать объект",Rh="Изменить значение состояния",Jh="Истекает через",Bh="От",Fh="Последнее изменение",Gh="Качество",Hh="Отметка времени",Vh="пользователь",Zh="Значение",Xh="истинный",Kh="Значение",qh="Внимание: задание CRON будет запускаться каждую минуту в течение указанного периода!",e1="Внимание: задание CRON будет выполняться каждую секунду в течение указанного периода!",t1="CRON",s1="Дата",i1="Даты",o1="День",r1="День недели",M1="каждый(ую/ые)",n1="каждый N день",a1="каждый N-й день недели",c1="каждый N день недели",u1="каждые N часов",N1="каждые N минут",l1="каждые N месяцев",L1="каждые N секунд",j1="каждый день",g1="Каждый день недели",T1="каждый день недели",y1="каждый час",D1="каждую минуту",d1="каждый месяц",z1="каждую секунду",I1="От",w1="часы",C1="Интервал",h1="Интервал между",A1="Неверный CRON",p1="минуты",m1="Месяцы",O1="один раз",E1="Период",_1="секунды",S1="Просто",x1="Конкретное время",f1="конкретные даты",k1="конкретный день(а) недели",Y1="конкретный день недели",Q1="конкретные часы",U1="конкретные минуты",v1="конкретные месяцы",b1="конкретные секунды",$1="Время",P1="До",W1="Форма",R1="все",J1="днём",B1="ночью",F1="Рассвет",G1="Сумерки",H1="Золотой час",V1="Конец золотого часа",Z1="Надир",X1="Морской рассвет",K1="Морские сумерки",q1="Ночь",eA="Конец ночи",tA="Солнечный полдень",sA="Восход",iA="Восход солнца",oA="Заход солнца",rA="Начало заката",MA="дата",nA="в %s",aA="каждый день",cA="каждый час",uA="каждую минуту",NA="каждый месяц",lA="каждый %s день",LA="каждый %s часов",jA="каждые %s минут",gA="каждые %s месяцев",TA="каждые %s недель",yA="каждые %s лет",DA="каждую неделю",dA="каждый год",zA="от %s до %s",IA="никогда",wA="%s %s",CA="%s и %s",hA="в каждый день",AA="%s",pA="%s и %s",mA="%s",OA="%s и %s",EA="на выходных",_A="в рабочие дни",SA="не будет больше выполняться, потому что начало в прошлом",xA="%s",fA="%s",kA="Выполнить с",YA="%s",QA="каждый",UA="Конкретное время",vA="от",bA="От и до",$A="Интервал времени",PA="инвертировать",WA="никакой",RA="на",JA="период",BA="Ежедневно",FA="Даты",GA="День",HA="каждый",VA="Каждый день",ZA="Каждый месяц",XA="Каждую неделю",KA="Каждый год",qA="часов",ep="минут",tp="месяц",sp="ежемесячно",ip="однажды",op="Конкретные месяцы",rp="Неделю",Mp="Будние дни",np="выходные",ap="еженедельно",cp="Рабочие дни",up="Год",Np="каждый год",lp="Конкретное время",Lp="Время",jp="в",gp="действительный",Tp="от",yp="в",Dp="Весь день",dp="каждый месяц",zp={"ra_%s links from aliases":"%s ссылок из псевдонимов","ra_%s object(s) processed":"Объектов обработано: %s","ra_%s was imported":"%s был импортирован","ra_Accept license":"Принять лицензию",ra_Actions:Nw,"ra_Add new child object to selected parent":"Добавить новый дочерний объект к выбранному родительскому объекту","ra_Add objects tree from JSON file":"Добавить дерево объектов из файла JSON","ra_Add row":"Добавить ряд","ra_Advanced options":"Расширенные настройки","ra_All items are filtered out":"Все элементы отфильтрованы","ra_All objects":"Все объекты",ra_Append:lw,"ra_Append %s entries or replace existing?":"Добавить записи %s или заменить существующие?","ra_Append or replace?":"Дополнить или заменить?","ra_Are you sure?":"Вы уверены?","ra_Auto (no custom columns)":"Авто (без настраиваемых столбцов)","ra_Back to %s":"Вернуться к %s","ra_Background image":"Фоновая картинка",ra_Cancel:Lw,"ra_Cannot add items with set filter":"Невозможно добавить элементы с установленным фильтром","ra_Cannot decode license":"Не могу декодировать лицензию","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.",'ra_Cannot find "%s"':'Не могу найти "%s"','ra_Cannot read "%s"':'Не могу прочитать "%s"',"ra_Cannot read licenses: %s":"Невозможно прочитать лицензии: %s","ra_Cannot retrieve options, as instance is offline":"Невозможно получить параметры, так как экземпляр находится в автономном режиме.","ra_Cannot update attribute, because not found in the object":"Невозможно обновить атрибут, потому что он не найден в объекте","ra_Cannot upload":"Невозможно загрузить",ra_Categories:jw,"ra_Chained certificate":"Chained сертификат","ra_Change color theme":"Изменить цветовую тему","ra_Changed from":"Изменено","ra_Channel → State":"Канал → Состояние","ra_Check license":"Проверить лицензию",ra_Checked:gw,ra_Clear:Tw,"ra_Clear filter":"Очистить фильтр","ra_Clear icon":"Очистить значок","ra_Clone current row":"Клонировать текущую строку",ra_Close:yw,"ra_Collapse all nodes":"Свернуть все узлы","ra_Collapse one step node":"Свернуть один уровень",ra_Commercial:Dw,ra_Configure:dw,"ra_Configure visible columns":"Настроить видимые столбцы","ra_Confirm deletion of %s":"Подтвердите удаление %s",ra_Connected:zw,ra_Continue:Iw,ra_Copied:ww,"ra_Copied %s":'Скопировано "%s"',"ra_Copy content":"Копировать содержимое",ra_Create:Cw,"ra_Create alias":"Создать псевдоним","ra_Create folder":"Создать папку","ra_Create new folder in %s":"Создать новую папку в %s",ra_Crop:hw,"ra_Define CRON...":"Определите CRON...","ra_Define functions":"Задать функции","ra_Define rooms":"Задать комнаты","ra_Define schedule":"Задать расписание","ra_Define schedule...":"Определить расписание ...",ra_Del:Aw,ra_Delete:pw,"ra_Delete current row":"Удалить текущую строку","ra_Deselect all":"Убрать выбор везде","ra_Device → Channel → State":"Устройство → Канал → Состояние",ra_Discard:mw,ra_Disconnected:Ow,"ra_Do not ask for next 2 hours in this session":"Не спрашивайте о следующих 2 часах в этом сеансе","ra_Do not export values of states":"Не экспортировать значения состояний","ra_Do not use let's encrypt":"Не использовать Let’s Encrypt","ra_Double click to reset table layout":"Дважды щелкните, чтобы сбросить макет таблицы","ra_Drag 'n' drop some files here, or click to select files":"Перетащите сюда несколько файлов или щелкните, чтобы выбрать файлы","ra_Drop file here":"Перетащите файл сюда","ra_Drop the files here...":"Перетащите файл сюда ...","ra_Duplicate name":"Повторяющееся имя","ra_Edit ACL":"Изменить ACL-список","ra_Edit alias":"Изменить псевдоним","ra_Edit custom config":"Редактировать настраиваемую конфигурацию","ra_Edit full path":"Изменить полный путь","ra_Edit function":"Изменить функцию","ra_Edit object field":"Поле редактирования объекта","ra_Edit role":"Изменить роль","ra_Edit room":"Редактировать комнату","ra_Edit value":"Изменить значение","ra_Enter the code from that page here":"Введите код с этой страницы здесь",ra_Error:Ew,"ra_Expand all nodes":"Развернуть все узлы","ra_Expand one step node":"Открыть один уровень","ra_Export data to %s file":"Экспорт данных в файл %s","ra_Failed to open JSON File":"Не удалось открыть файл JSON","ra_Fallback custom certificates":"Резервные пользовательские сертификаты","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.",ra_Filter:_w,"ra_Filter and Data Actions":"Фильтрация и действия с данными","ra_Filter files":"Фильтровать файлы","ra_Folder name":"Имя папки","ra_Folder → Channel → State":"Папка → Канал → Состояние","ra_Folder → Device → Channel → State":"Папка → Устройство → Канал → Состояние","ra_Folder → State":"Папка → Состояние","ra_Folders always first":"Папки всегда на первом месте",ra_Friday:Sw,"ra_Get %s access":"Получить %s доступ","ra_Good luck":"Удачи","ra_Hide empty folders":"Скрыть пустые папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Если в папке не будет создан файл, он исчезнет после закрытия браузера.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.","ra_Import data from %s file":"Импорт данных из файла %s","ra_Import from %s":"Импорт из %s","ra_Instance %s is alive":"Экземпляр %s работает","ra_Instance %s is not alive":"Экземпляр %s не работает","ra_Instance is not alive":"Экземпляр не живой","ra_Invalid CRON":"Неверный CRON","ra_Invalid JSON":"Неверный JSON","ra_Invalid answer from server":"Неверный ответ от сервера","ra_Invalid parent folder!":"Неверная родительская папка!","ra_Invalid structure":"Неверная структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Последнее изменение",ra_Latitude:xw,"ra_License %s":"Лицензия %s","ra_License agreement":"Лицензионное соглашение","ra_License does not exist":"Лицензия не существует","ra_License expired on %s":"Срок действия лицензии истек %s",'ra_License for other product "%s"':'Лицензия на другой продукт "%s"',"ra_License is for version %s, but required version is %s.":"Лицензия предназначена для версии %s, но необходима версия %s.","ra_License must be converted":"Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?","ra_Listen on all IPs":"Слушать на всех IP","ra_Load configuration from file":"Загрузить конфигурацию из файла",ra_Logout:fw,ra_Longitude:kw,'ra_May not trigger "updateLicenses"':"Не может запускать «updateLicenses»",ra_Message:Yw,ra_Monday:Qw,"ra_Move down":"Вниз","ra_Move up":"Вверх",ra_Name:Uw,"ra_No data found in file":"Данные в файле не найдены","ra_No one license found in license manager":"В менеджере лицензий не найдена ни одна лицензия","ra_No response from the backend":"Нет ответа от бэкэнда",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Не-эксперты могут создавать новые объекты только в «0_userdata.0» или «alias.0».","ra_Not a number":"Не число",ra_Objects:vw,ra_Ok:bw,"ra_On weekdays":"На выходных","ra_Only following structures of objects are available:":"Доступны только следующие структуры объектов:","ra_Only selected":"Только выбранные","ra_Owner group":"Группа владельцев","ra_Owner user":"Пользователь-владелец","ra_Passwords are not equal!":"Пароли не равны!","ra_Place your files here or click here to open the browse dialog":"Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора","ra_Please allow popups in your browser for this page!":"Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!","ra_Please confirm":"Пожалуйста подтвердите","ra_Please create license":"Пожалуйста, создайте лицензию","ra_Please enter the license":"Пожалуйста, введите лицензию","ra_Please select file...":"Пожалуйста, выберите файл...","ra_Please select object ID...":"Пожалуйста, выберите идентификатор объекта ...","ra_Port could be used by %s":"Порт может использоваться %s","ra_Port is already used by %s":"Порт уже используется %s","ra_Press ENTER Key to add new item":"Нажмите клавишу ENTER, чтобы добавить новый элемент.","ra_Private certificate":"Частный сертификат",ra_Product:$w,"ra_Public certificate":"Публичный сертификат","ra_Quality code":"Валидность","ra_Refresh tree":"Обновить дерево","ra_Reload files":"Обновить",ra_Rename_Move_Copy:Pw,"ra_Renew %s access":"Продлить доступ %s",ra_Repeat:Ww,ra_Replace:Rw,"ra_Request timed out":"Истекло время запроса","ra_Restrict to folder":"Ограничить папкой",ra_Root:Jw,ra_Saturday:Bw,ra_Save:Fw,"ra_Save and close":"Сохранить и закрыть","ra_Save configuration to file":"Сохранить конфигурацию в файл","ra_Save objects tree as JSON file":"Сохранить дерево объектов как файл JSON","ra_Select all":"Выбрать все","ra_Select color":"Выберите цвет","ra_Select predefined icon":"Выберите предопределенный значок","ra_Select type of export":"Выберите тип экспорта",ra_Selected:Gw,"ra_Selected %s object(s)":"Объектов: %s","ra_Serial number (UUID)":"Серийный номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.","ra_Session will expire in %s seconds. Continue?":"Сессия истечет через %s секунд. Продолжить?","ra_Show all folders":"Показать все папки","ra_Show lines between rows":"Показать линии между строками","ra_Show/Hide object descriptions":"Показать/скрыть описания объектов","ra_Show/hide filter input":"Показать/скрыть ввод фильтра","ra_Some data are not stored. Discard?":"Некоторые данные не сохранились. Отказаться?",ra_States:Hw,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.","ra_Suitable license not found in license manager":"Подходящая лицензия не найдена в менеджере лицензий",ra_Sunday:Vw,"ra_Suppress question for next %s minutes":"Скрыть вопрос на следующие %s минут(ы)","ra_System language":"Язык системы","ra_Take browser position":"Взять позицию из браузера","ra_Take position from system settings":"Занять позицию из системных настроек",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Эксперты могут создавать объекты везде, кроме второго уровня (например, «vis.0» или «javascript.0»).","ra_The page you are looking for was not found":"Страница, которую вы ищете, не найдена","ra_The schedule will be executed every minute. Are you sure?":"Расписание будет выполняться каждую минуту. Вы уверены?","ra_The schedule will be executed every second. Are you sure?":"Расписание будет выполняться каждую секунду. Вы уверены?",ra_Thursday:Zw,ra_Timestamp:Xw,"ra_Toggle expert mode":"Переключить экспертный режим","ra_Toggle the states view":"Переключить режим просмотра состояний","ra_Toggle view mode":"Переключить режим просмотра","ra_Too big":"Слишком большое","ra_Too small":"Слишком маленькое","ra_Transparent dialog":"Прозрачный диалог",ra_Tuesday:Kw,"ra_Unknown error":"Неизвестная ошибка","ra_Unknown error!":"Неизвестная ошибка!",ra_Update:qw,"ra_Upload file":"Загрузить файл","ra_Use all available let's encrypt certificates":"Использовать все доступные сертификаты Let’s encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Используйте адаптер iobroker.acme для сертификатов letsencrypt","ra_Use system settings for position":"Использовать системные настройки для позиции","ra_Used system settings":"Системные настройки","ra_User files":"Файлы пользователя",ra_ValidTill:eC,ra_Value:tC,ra_Version:sC,"ra_View file":"Посмотреть файл","ra_View: %s":"Просмотр: %s",ra_Wednesday:iC,ra_Width:oC,ra_Yes:rC,"ra_You can export all objects or just the selected branch.":"Вы можете экспортировать все объекты или только выбранную ветвь.","ra_You can filter entries by entering here some text":"Вы можете отфильтровать записи, введя здесь текст","ra_You can use * as wildcard":"Вы можете использовать * в качестве подстановочного знака",ra___different__:MC,ra_aclEveryone_read_object:nC,ra_aclEveryone_read_state:aC,ra_aclEveryone_write_object:cC,ra_aclEveryone_write_state:uC,ra_aclGroup_read_object:NC,ra_aclGroup_read_state:lC,ra_aclGroup_write_object:LC,ra_aclGroup_write_state:jC,ra_aclOwner_read_object:gC,ra_aclOwner_read_state:TC,ra_aclOwner_write_object:yC,ra_aclOwner_write_state:DC,ra_buttons:dC,ra_changedFrom:zC,ra_close:IC,ra_create_boolean_state:wC,ra_create_channel:CC,ra_create_device:hC,ra_create_number_state:AC,ra_create_state:pC,ra_create_string_state:mC,ra_daysShortText:OC,ra_dow_Fr:EC,ra_dow_Mo:_C,ra_dow_Sa:SC,ra_dow_Su:xC,ra_dow_Th:fC,ra_dow_Tu:kC,ra_dow_We:YC,ra_expertMode:QC,ra_false:UC,ra_fileType_all:vC,ra_fileType_audio:bC,ra_fileType_code:$C,ra_fileType_images:PC,ra_fileType_txt:WC,ra_fileType_video:RC,"ra_fileType_video,":"видео",ra_filter_customs:JC,ra_filter_customs_without:BC,ra_filter_func:FC,ra_filter_id:GC,ra_filter_name:HC,ra_filter_role:VC,ra_filter_room:ZC,ra_filter_type:XC,"ra_import data from %s file":"Импортировать данные из файла %s",ra_invalidConfig:KC,ra_lastChange:qC,ra_locally:eh,ra_month_Apr:th,ra_month_Aug:sh,ra_month_Dec:ih,ra_month_Feb:oh,ra_month_Jan:rh,ra_month_Jul:Mh,ra_month_Jun:nh,ra_month_Mai:ah,ra_month_Mar:ch,ra_month_Nov:uh,ra_month_Oct:Nh,ra_month_Sep:lh,ra_months_Apr:Lh,ra_months_Aug:jh,ra_months_Dec:gh,ra_months_Feb:Th,ra_months_Jan:yh,ra_months_Jul:Dh,ra_months_Jun:dh,ra_months_Mai:zh,ra_months_Mar:Ih,ra_months_Nov:wh,ra_months_Oct:Ch,ra_months_Sep:hh,"ra_no confirm for 5 mins":"не спрашивать подтверждения в течение 5 минут",ra_none:Ah,ra_object_changed_by:ph,ra_object_changed_by_user:mh,ra_otherConfig:Oh,ra_qualityCode:Eh,ra_repeat:_h,ra_select_folder_hint:Sh,ra_show_all:xh,ra_state_changed_by:fh,ra_state_changed_from:kh,ra_timestamp:Yh,ra_tooltip_ack:Qh,ra_tooltip_comment:Uh,ra_tooltip_copyState:vh,ra_tooltip_ctrlForLink:bh,ra_tooltip_customConfig:$h,ra_tooltip_deleteObject:Ph,ra_tooltip_editObject:Wh,ra_tooltip_editState:Rh,ra_tooltip_expire:Jh,ra_tooltip_from:Bh,ra_tooltip_lc:Fh,ra_tooltip_quality:Gh,ra_tooltip_ts:Hh,ra_tooltip_user:Vh,ra_tooltip_value:Zh,ra_true:Xh,"ra_use seconds":"секунды",ra_val:Kh,"ra_via internet":"через интернет",ra_warning_every_minute:qh,ra_warning_every_second:e1,sc_cron:t1,sc_date:s1,sc_dates:i1,sc_dow:o1,sc_dows:r1,sc_every:M1,sc_everyN_dates:n1,sc_everyN_dow:a1,sc_everyN_dows:c1,sc_everyN_hours:u1,sc_everyN_minutes:N1,sc_everyN_months:l1,sc_everyN_seconds:L1,sc_every_dates:j1,sc_every_dow:g1,sc_every_dows:T1,sc_every_hours:y1,sc_every_minutes:D1,sc_every_months:d1,sc_every_seconds:z1,sc_from:I1,sc_hours:w1,sc_interval:C1,sc_intervalBetween:h1,sc_invalid_cron:A1,sc_minutes:p1,sc_months:m1,sc_once:O1,sc_period:E1,sc_seconds:_1,sc_simple:S1,sc_specific:x1,sc_specific_dates:f1,sc_specific_dow:k1,sc_specific_dows:Y1,sc_specific_hours:Q1,sc_specific_minutes:U1,sc_specific_months:v1,sc_specific_seconds:b1,sc_time:$1,sc_to:P1,sc_wizard:W1,sch_all:R1,sch_astroDay:J1,sch_astroNight:B1,sch_astro_dawn:F1,sch_astro_dusk:G1,sch_astro_goldenHour:H1,sch_astro_goldenHourEnd:V1,sch_astro_nadir:Z1,sch_astro_nauticalDawn:X1,sch_astro_nauticalDusk:K1,sch_astro_night:q1,sch_astro_nightEnd:eA,sch_astro_solarNoon:tA,sch_astro_sunrise:sA,sch_astro_sunriseEnd:iA,sch_astro_sunset:oA,sch_astro_sunsetStart:rA,sch_at:MA,sch_desc_atTime:nA,sch_desc_everyDay:aA,sch_desc_everyHour:cA,sch_desc_everyMinute:uA,sch_desc_everyMonth:NA,sch_desc_everyNDay:lA,sch_desc_everyNHours:LA,sch_desc_everyNMinutes:jA,sch_desc_everyNMonths:gA,sch_desc_everyNWeeks:TA,sch_desc_everyNYears:yA,sch_desc_everyWeek:DA,sch_desc_everyYear:dA,sch_desc_intervalFromTo:zA,sch_desc_never:IA,sch_desc_onDate:wA,sch_desc_onDates:CA,sch_desc_onEveryDate:hA,sch_desc_onMonth:AA,sch_desc_onMonths:pA,sch_desc_onWeekday:mA,sch_desc_onWeekdays:OA,sch_desc_onWeekends:EA,sch_desc_onWorkdays:_A,sch_desc_onceInPast:SA,sch_desc_once_on:xA,sch_desc_validFrom:fA,sch_desc_validFromTo:kA,sch_desc_validTo:YA,sch_every:QA,sch_exactTime:UA,sch_from:vA,sch_fromTo:bA,sch_intervalTime:$A,sch_invert:PA,sch_no_one:WA,sch_on:RA,sch_period:JA,sch_periodDaily:BA,sch_periodDates:FA,sch_periodDay:GA,sch_periodEvery:HA,sch_periodEveryDay:VA,sch_periodEveryMonth:ZA,sch_periodEveryWeek:XA,sch_periodEveryYear:KA,sch_periodHours:qA,sch_periodMinutes:ep,sch_periodMonth:tp,sch_periodMonthly:sp,sch_periodOnce:ip,sch_periodSpecificMonths:op,sch_periodWeek:rp,sch_periodWeekdays:Mp,sch_periodWeekend:np,sch_periodWeekly:ap,sch_periodWorkdays:cp,sch_periodYear:up,sch_periodYearly:Np,sch_specificTime:lp,sch_time:Lp,sch_to:jp,sch_valid:gp,sch_validFrom:Tp,sch_validTo:yp,sch_wholeDay:Dp,sch_yearEveryMonth:dp},Ip="Ações",wp="Acrescentar",Cp="Cancelar",hp="Categorias",Ap="Verificado",pp="Excluir",mp="Perto",Op="Comercial",Ep="Configurar",_p="Conectado",Sp="Continuar",xp="Copiado",fp="Crio",kp="Colheita",Yp="Delete",Qp="Excluir",Up="Descartar",vp="Desconectado",bp="Erro",$p="Filtro",Pp="Sexta-feira",Wp="Latitude",Rp="Sair",Jp="Longitude",Bp="mensagem",Fp="Segunda-feira",Gp="Nome",Hp="Objetos",Vp="Está bem",Zp="produtos",Xp="Renomear/Mover/Copiar",Kp="Repita",qp="Substituir",e2="Raiz",t2="Sábado",s2="Salve ",i2="Selecionado",o2="Estados",r2="Domingo",M2="Quinta-feira",n2="Timestamp",a2="Terça-feira",c2="Atualizar",u2="Válida até",N2="Valor",l2="Versão",L2="Quarta-feira",j2="Largura",g2="Sim",T2="diferente",y2="Todos podem ler objetos",D2="Todos podem ler o estado",d2="Todos podem escrever objetos",z2="Todos podem escrever o estado",I2="O grupo pode ler o objeto",w2="O grupo pode ler o estado",C2="O grupo pode escrever o objeto",h2="O grupo pode escrever o estado",A2="O proprietário pode ler o objeto",p2="O proprietário pode ler o estado",m2="O proprietário pode escrever o objeto",O2="O proprietário pode escrever o estado",E2="Botões",_2="Mudou de",S2="fechar",x2="Criar estado booleano",f2="Criar canal",k2="Criar dispositivo",Y2="Criar estado numérico",Q2="Criar estado",U2="Criar estado de string",v2="d.",b2="Fr",$2="Mo",P2="Sa",W2="Su",R2="º",J2="Tu",B2="Nós",F2="Modo especialista",G2="FALSO",H2="Todos os arquivos",V2="áudio",Z2="Código/JSON",X2="Imagens",K2="Texto",q2="Vídeo",em="Configurações",tm="sem",sm="Função",im="ID",om="Nome",rm="Papel (Função)",Mm="Quarto",nm="Tipo",am="Configurações inválidas",cm="Última mudança",um="localmente",Nm="abril",lm="agosto",Lm="dezembro",jm="fevereiro",gm="janeiro",Tm="julho",ym="junho",Dm="Mai",dm="março",zm="novembro",Im="outubro",wm="setembro",Cm="abril",hm="agosto",Am="dezembro",pm="fevereiro",mm="janeiro",Om="julho",Em="junho",_m="Mai",Sm="março",xm="novembro",fm="outubro",km="setembro",Ym="Nenhum",Qm="Objeto alterado por",Um="Objeto alterado pela última vez em",vm="Configurações de outro adaptador %s",bm="Código de qualidade",$m="repetir",Pm='Para selecionar a pasta, basta segurar a tecla "shift" clicando na pasta.',Wm="Mostrar tudo",Rm="Estado alterado por",Jm="Objeto alterado de",Bm="Timestamp",Fm="Confirmado",Gm="Comente",Hm="Copie o valor do estado",Vm="Segure a tecla Ctrl/⌘ para abrir o link",Zm="Opções customizadas",Xm="Excluir objeto",Km="Editar objeto",qm="Edite o valor do estado",eO="Expira em",tO="De",sO="Última alteração",iO="Qualidade",oO="Timestamp",rO="Usuário",MO="Valor",nO="verdadeiro",aO="Valor",cO="Aviso: O trabalho CRON será executado a cada minuto durante o período especificado!",uO="Aviso: O trabalho CRON será executado a cada segundo durante o período especificado!",NO="CRON",lO="Data",LO="Dias",jO="Dia",gO="Dia da semana",TO="todos",yO="a cada N dias",DO="todo enésimo dia da semana",dO="todos os N dias da semana",zO="a cada N horas",IO="a cada N minutos",wO="a cada N meses",CO="a cada N segundos",hO="todo dia",AO="todos os dias da semana",pO="todos os dias da semana",mO="toda hora",OO="todo minuto",EO="todo mês",_O="todo segundo",SO="de",xO="horas",fO="intervalo",kO="intervalo entre",YO="CRON inválido",QO="minutos",UO="meses",vO="uma vez",bO="período",$O="segundos",PO="simples",WO="tempo específico",RO="datas específicas",JO="dia(s) específico(s) da semana",BO="dia específico de semanas",FO="horas específicas",GO="minutos específicos",HO="meses específicos",VO="segundos específicos",ZO="tempo",XO="para",KO="assistente",qO="tudo",eE="dia astral",tE="noite astral",sE="amanhecer",iE="anoitecer",oE="hora dourada",rE="Fim da hora dourada",ME="nadir",nE="Amanhecer náutico",aE="Anoitecer náutico",cE="noite",uE="fim da noite",NE="meio-dia solar",lE="nascer do sol",LE="fim do nascer do sol",jE="pôr do sol",gE="início do pôr do sol",TE="às",yE="em %s",DE="todo dia",dE="toda hora",zE="todo minuto",IE="todo mês",wE="a cada %s dias",CE="a cada %s horas",hE="a cada %s minutos",AE="a cada %s meses",pE="a cada %s semanas",mE="a cada %s anos",OE="toda semana",EE="todo ano",_E="de %s para %s",SE="nunca",xE="em %s de %s",fE="em %s e %s de",kE="em toda data de",YE="%s",QE="%s e %s",UE="em %s",vE="em %s e %s",bE="nos fins de semana",$E="em dias úteis",PE="não será mais executado, porque o começo está no passado",WE="em %s",RE="de %s",JE="Executar de até",BE="até %s",FE="cada",GE="tempo específico",HE="de",VE="de a´t",ZE="tempo de intervalo",XE="invertido",KE="nenhum",qE="em",e_="período",t_="diariamente",s_="datas",i_="dia",o_="todos",r_="todo dia",M_="todo mês",n_="toda semana",a_="todo ano",c_="horas",u_="minutos",N_="mês",l_="por mês",L_="uma vez",j_="meses específicos",g_="semana",T_="dias úteis",y_="final de semana",D_="semanal",d_="dias úteis",z_="ano",I_="anual",w_="tempo específico",C_="tempo",h_="para",A_="válido",p_="de",m_="para",O_="dia inteiro",E_="todo mês",__={"ra_%s links from aliases":"%s links de aliases","ra_%s object(s) processed":"%s objeto(s) processado(s)","ra_%s was imported":"%s foi importado","ra_Accept license":"Aceitar licença",ra_Actions:Ip,"ra_Add new child object to selected parent":"Adicionar novo objeto filho ao pai selecionado","ra_Add objects tree from JSON file":"Adicionar árvore de objetos do arquivo JSON","ra_Add row":"Adicionar linha","ra_Advanced options":"Opções avançadas","ra_All items are filtered out":"Todos os itens são filtrados","ra_All objects":"Todos os objetos",ra_Append:wp,"ra_Append %s entries or replace existing?":"Acrescentar %s entradas ou substituir as existentes?","ra_Append or replace?":"Acrescentar ou substituir?","ra_Are you sure?":"Você tem certeza?","ra_Auto (no custom columns)":"Auto (sem colunas personalizadas)","ra_Back to %s":"Voltar para %s","ra_Background image":"Imagem de fundo",ra_Cancel:Cp,"ra_Cannot add items with set filter":"Não é possível adicionar itens com filtro definido","ra_Cannot decode license":"Não é possível decodificar a licença","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador",'ra_Cannot find "%s"':'Não foi possível encontrar "%s"','ra_Cannot read "%s"':'Não é possível ler "%s"',"ra_Cannot read licenses: %s":"Não é possível ler licenças: %s","ra_Cannot retrieve options, as instance is offline":"Não é possível recuperar opções, pois a instância está off-line","ra_Cannot update attribute, because not found in the object":"Não é possível atualizar o atributo, porque não foi encontrado no objeto","ra_Cannot upload":"Não é possível fazer upload",ra_Categories:hp,"ra_Chained certificate":"certificado encadeado","ra_Change color theme":"Alterar tema de cores","ra_Changed from":"Mudou de","ra_Channel → State":"Canal → Estado","ra_Check license":"Verifique a licença",ra_Checked:Ap,ra_Clear:pp,"ra_Clear filter":"Filtro limpo","ra_Clear icon":"Ícone de limpeza","ra_Clone current row":"Clonar linha atual",ra_Close:mp,"ra_Collapse all nodes":"Recolher todos os nós","ra_Collapse one step node":"Recolher um nível",ra_Commercial:Op,ra_Configure:Ep,"ra_Configure visible columns":"Configurar colunas visíveis","ra_Confirm deletion of %s":"Confirme a exclusão de %s",ra_Connected:_p,ra_Continue:Sp,ra_Copied:xp,"ra_Copied %s":'"%s" copiado',"ra_Copy content":"Copiar conteúdo",ra_Create:fp,"ra_Create alias":"Criar alias","ra_Create folder":"Criar pasta","ra_Create new folder in %s":"Crie uma nova pasta em %s",ra_Crop:kp,"ra_Define CRON...":"Defina CRON...","ra_Define functions":"Definir funções","ra_Define rooms":"Definir quartos","ra_Define schedule":"Definir cronograma","ra_Define schedule...":"Definir programação ...",ra_Del:Yp,ra_Delete:Qp,"ra_Delete current row":"Excluir linha atual","ra_Deselect all":"Desmarque todos","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:Up,ra_Disconnected:vp,"ra_Do not ask for next 2 hours in this session":"Não peça as próximas 2 horas nesta sessão","ra_Do not export values of states":"Não exporte valores de estados","ra_Do not use let's encrypt":"Não use vamos criptografar","ra_Double click to reset table layout":"Clique duas vezes para redefinir o layout da tabela","ra_Drag 'n' drop some files here, or click to select files":"Arraste e solte alguns arquivos aqui ou clique para selecionar arquivos","ra_Drop file here":"Solte o arquivo aqui","ra_Drop the files here...":"Solte o arquivo aqui ...","ra_Duplicate name":"Nome duplicado","ra_Edit ACL":"Editar ACL","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuração personalizada","ra_Edit full path":"Editar caminho completo","ra_Edit function":"Função de edição","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar papel","ra_Edit room":"Sala de edição","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Digite o código dessa página aqui",ra_Error:bp,"ra_Expand all nodes":"Expanda todos os nós","ra_Expand one step node":"Expanda um nível","ra_Export data to %s file":"Exportar dados para o arquivo %s","ra_Failed to open JSON File":"Falha ao abrir arquivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"O arquivo é muito grande. Max %sk permitido. Tente usar SVG.",ra_Filter:$p,"ra_Filter and Data Actions":"Ações de filtro e dados","ra_Filter files":"Filtrar arquivos","ra_Folder name":"Nome da pasta","ra_Folder → Channel → State":"Pasta → Canal → Estado","ra_Folder → Device → Channel → State":"Pasta → Dispositivo → Canal → Estado","ra_Folder → State":"Pasta → Estado","ra_Folders always first":"Pastas sempre primeiro",ra_Friday:Pp,"ra_Get %s access":"Obtenha acesso %s","ra_Good luck":"Boa sorte","ra_Hide empty folders":"Esconder pastas vazias","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nenhum arquivo for criado na pasta, ele desaparecerá depois que o navegador for fechado","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url","ra_Import data from %s file":"Importar dados do arquivo %s","ra_Import from %s":"Importar de %s","ra_Instance %s is alive":"O %s da instância está ativo","ra_Instance %s is not alive":"O %s da instância não está ativo","ra_Instance is not alive":"A instância não está ativa","ra_Invalid CRON":"CRON inválido","ra_Invalid JSON":"JSON inválido","ra_Invalid answer from server":"Resposta inválida do servidor","ra_Invalid parent folder!":"Pasta pai inválida!","ra_Invalid structure":"Estrutura inválida","ra_JSON editor":"Editor JSON","ra_Last change":"Última mudança",ra_Latitude:Wp,"ra_License %s":"Licença %s","ra_License agreement":"Contrato de licença","ra_License does not exist":"A licença não existe","ra_License expired on %s":"A licença expirou em %s",'ra_License for other product "%s"':'Licença para outro produto "%s"',"ra_License is for version %s, but required version is %s.":"A licença é para a versão %s, mas a versão necessária é %s.","ra_License must be converted":"A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?","ra_Listen on all IPs":"Ouça em todos os IPs","ra_Load configuration from file":"Carregar configuração do arquivo",ra_Logout:Rp,ra_Longitude:Jp,'ra_May not trigger "updateLicenses"':'Pode não acionar "updateLicenses"',ra_Message:Bp,ra_Monday:Fp,"ra_Move down":"Mover para baixo","ra_Move up":"Subir",ra_Name:Gp,"ra_No data found in file":"Nenhum dado encontrado no arquivo","ra_No one license found in license manager":"Nenhuma licença encontrada no gerenciador de licenças","ra_No response from the backend":"Nenhuma resposta do backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Os não especialistas podem criar novos objetos apenas em "0_userdata.0" ou "alias.0".',"ra_Not a number":"Não é um número",ra_Objects:Hp,ra_Ok:Vp,"ra_On weekdays":"Nos dias úteis","ra_Only following structures of objects are available:":"Apenas as seguintes estruturas de objetos estão disponíveis:","ra_Only selected":"Apenas selecionado","ra_Owner group":"Grupo proprietário","ra_Owner user":"Usuário proprietário","ra_Passwords are not equal!":"As senhas não são iguais!","ra_Place your files here or click here to open the browse dialog":"Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação","ra_Please allow popups in your browser for this page!":"Por favor, permita pop-ups no seu navegador para esta página!","ra_Please confirm":"Por favor confirme","ra_Please create license":"Crie uma licença","ra_Please enter the license":"Por favor, insira a licença","ra_Please select file...":"Selecione o arquivo...","ra_Please select object ID...":"Selecione o ID do objeto ...","ra_Port could be used by %s":"A porta pode ser usada por %s","ra_Port is already used by %s":"A porta já está sendo usada por %s","ra_Press ENTER Key to add new item":"Pressione a tecla ENTER para adicionar um novo item","ra_Private certificate":"certificado privado",ra_Product:Zp,"ra_Public certificate":"certificado público","ra_Quality code":"Qualidade","ra_Refresh tree":"Atualizar árvore","ra_Reload files":"Recarregar arquivos",ra_Rename_Move_Copy:Xp,"ra_Renew %s access":"Renovar acesso %s",ra_Repeat:Kp,ra_Replace:qp,"ra_Request timed out":"Solicitação expirou","ra_Restrict to folder":"Restringir à pasta",ra_Root:e2,ra_Saturday:t2,ra_Save:s2,"ra_Save and close":"Salvar e fechar","ra_Save configuration to file":"Salvar configuração em arquivo","ra_Save objects tree as JSON file":"Salvar árvore de objetos como arquivo JSON","ra_Select all":"Selecionar tudo","ra_Select color":"Selecione a cor","ra_Select predefined icon":"Selecione o ícone predefinido","ra_Select type of export":"Selecione o tipo de exportação",ra_Selected:i2,"ra_Selected %s object(s)":"%s objeto(s) selecionado(s)","ra_Serial number (UUID)":"Número de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'O número de série (UUID) "%s" na licença é para outro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"A sessão irá expirar em %s segundos. Continuar?","ra_Show all folders":"Mostrar todas as pastas","ra_Show lines between rows":"Mostrar linhas entre as linhas","ra_Show/Hide object descriptions":"Mostrar/ocultar descrições de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Alguns dados não são armazenados. Descartar?",ra_States:o2,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado com sucesso. Token válido até %s e será renovado automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.","ra_Suitable license not found in license manager":"Licença adequada não encontrada no gerenciador de licenças",ra_Sunday:r2,"ra_Suppress question for next %s minutes":"Suprimir pergunta nos próximos %s minutos","ra_System language":"Idioma do sistema","ra_Take browser position":"Tomar posição do navegador","ra_Take position from system settings":"Tomar posição a partir das configurações do sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Os especialistas podem criar objetos em qualquer lugar, exceto no segundo nível (por exemplo, "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"A página que você está procurando não foi encontrada","ra_The schedule will be executed every minute. Are you sure?":"O agendamento será executado a cada minuto. Tem certeza?","ra_The schedule will be executed every second. Are you sure?":"O agendamento será executado a cada segundo. Tem certeza?",ra_Thursday:M2,ra_Timestamp:n2,"ra_Toggle expert mode":"Alternar modo especialista","ra_Toggle the states view":"Alternar a visualização dos estados","ra_Toggle view mode":"Alternar modo de visualização","ra_Too big":"Muito grande","ra_Too small":"Muito pequeno","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:a2,"ra_Unknown error":"Erro desconhecido","ra_Unknown error!":"Erro desconhecido!",ra_Update:c2,"ra_Upload file":"Subir arquivo","ra_Use all available let's encrypt certificates":"Use todos os certificados disponíveis vamos criptografar","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use o adaptador iobroker.acme para certificados letsencrypt","ra_Use system settings for position":"Use as configurações do sistema para a posição","ra_Used system settings":"Configurações do sistema usadas","ra_User files":"Arquivos do usuário",ra_ValidTill:u2,ra_Value:N2,ra_Version:l2,"ra_View file":"Visualizar arquivo","ra_View: %s":"Visualizar: %s",ra_Wednesday:L2,ra_Width:j2,ra_Yes:g2,"ra_You can export all objects or just the selected branch.":"Você pode exportar todos os objetos ou apenas a ramificação selecionada.","ra_You can filter entries by entering here some text":"Você pode filtrar as entradas digitando aqui algum texto","ra_You can use * as wildcard":"Você pode usar * como curinga",ra___different__:T2,ra_aclEveryone_read_object:y2,ra_aclEveryone_read_state:D2,ra_aclEveryone_write_object:d2,ra_aclEveryone_write_state:z2,ra_aclGroup_read_object:I2,ra_aclGroup_read_state:w2,ra_aclGroup_write_object:C2,ra_aclGroup_write_state:h2,ra_aclOwner_read_object:A2,ra_aclOwner_read_state:p2,ra_aclOwner_write_object:m2,ra_aclOwner_write_state:O2,ra_buttons:E2,ra_changedFrom:_2,ra_close:S2,ra_create_boolean_state:x2,ra_create_channel:f2,ra_create_device:k2,ra_create_number_state:Y2,ra_create_state:Q2,ra_create_string_state:U2,ra_daysShortText:v2,ra_dow_Fr:b2,ra_dow_Mo:$2,ra_dow_Sa:P2,ra_dow_Su:W2,ra_dow_Th:R2,ra_dow_Tu:J2,ra_dow_We:B2,ra_expertMode:F2,ra_false:G2,ra_fileType_all:H2,ra_fileType_audio:V2,ra_fileType_code:Z2,ra_fileType_images:X2,ra_fileType_txt:K2,ra_fileType_video:q2,"ra_fileType_video,":"Vídeo",ra_filter_customs:em,ra_filter_customs_without:tm,ra_filter_func:sm,ra_filter_id:im,ra_filter_name:om,ra_filter_role:rm,ra_filter_room:Mm,ra_filter_type:nm,"ra_import data from %s file":"Importar dados do arquivo %s",ra_invalidConfig:am,ra_lastChange:cm,ra_locally:um,ra_month_Apr:Nm,ra_month_Aug:lm,ra_month_Dec:Lm,ra_month_Feb:jm,ra_month_Jan:gm,ra_month_Jul:Tm,ra_month_Jun:ym,ra_month_Mai:Dm,ra_month_Mar:dm,ra_month_Nov:zm,ra_month_Oct:Im,ra_month_Sep:wm,ra_months_Apr:Cm,ra_months_Aug:hm,ra_months_Dec:Am,ra_months_Feb:pm,ra_months_Jan:mm,ra_months_Jul:Om,ra_months_Jun:Em,ra_months_Mai:_m,ra_months_Mar:Sm,ra_months_Nov:xm,ra_months_Oct:fm,ra_months_Sep:km,"ra_no confirm for 5 mins":"sem confirmação por 5 minutos",ra_none:Ym,ra_object_changed_by:Qm,ra_object_changed_by_user:Um,ra_otherConfig:vm,ra_qualityCode:bm,ra_repeat:$m,ra_select_folder_hint:Pm,ra_show_all:Wm,ra_state_changed_by:Rm,ra_state_changed_from:Jm,ra_timestamp:Bm,ra_tooltip_ack:Fm,ra_tooltip_comment:Gm,ra_tooltip_copyState:Hm,ra_tooltip_ctrlForLink:Vm,ra_tooltip_customConfig:Zm,ra_tooltip_deleteObject:Xm,ra_tooltip_editObject:Km,ra_tooltip_editState:qm,ra_tooltip_expire:eO,ra_tooltip_from:tO,ra_tooltip_lc:sO,ra_tooltip_quality:iO,ra_tooltip_ts:oO,ra_tooltip_user:rO,ra_tooltip_value:MO,ra_true:nO,"ra_use seconds":"use segundos",ra_val:aO,"ra_via internet":"via internet",ra_warning_every_minute:cO,ra_warning_every_second:uO,sc_cron:NO,sc_date:lO,sc_dates:LO,sc_dow:jO,sc_dows:gO,sc_every:TO,sc_everyN_dates:yO,sc_everyN_dow:DO,sc_everyN_dows:dO,sc_everyN_hours:zO,sc_everyN_minutes:IO,sc_everyN_months:wO,sc_everyN_seconds:CO,sc_every_dates:hO,sc_every_dow:AO,sc_every_dows:pO,sc_every_hours:mO,sc_every_minutes:OO,sc_every_months:EO,sc_every_seconds:_O,sc_from:SO,sc_hours:xO,sc_interval:fO,sc_intervalBetween:kO,sc_invalid_cron:YO,sc_minutes:QO,sc_months:UO,sc_once:vO,sc_period:bO,sc_seconds:$O,sc_simple:PO,sc_specific:WO,sc_specific_dates:RO,sc_specific_dow:JO,sc_specific_dows:BO,sc_specific_hours:FO,sc_specific_minutes:GO,sc_specific_months:HO,sc_specific_seconds:VO,sc_time:ZO,sc_to:XO,sc_wizard:KO,sch_all:qO,sch_astroDay:eE,sch_astroNight:tE,sch_astro_dawn:sE,sch_astro_dusk:iE,sch_astro_goldenHour:oE,sch_astro_goldenHourEnd:rE,sch_astro_nadir:ME,sch_astro_nauticalDawn:nE,sch_astro_nauticalDusk:aE,sch_astro_night:cE,sch_astro_nightEnd:uE,sch_astro_solarNoon:NE,sch_astro_sunrise:lE,sch_astro_sunriseEnd:LE,sch_astro_sunset:jE,sch_astro_sunsetStart:gE,sch_at:TE,sch_desc_atTime:yE,sch_desc_everyDay:DE,sch_desc_everyHour:dE,sch_desc_everyMinute:zE,sch_desc_everyMonth:IE,sch_desc_everyNDay:wE,sch_desc_everyNHours:CE,sch_desc_everyNMinutes:hE,sch_desc_everyNMonths:AE,sch_desc_everyNWeeks:pE,sch_desc_everyNYears:mE,sch_desc_everyWeek:OE,sch_desc_everyYear:EE,sch_desc_intervalFromTo:_E,sch_desc_never:SE,sch_desc_onDate:xE,sch_desc_onDates:fE,sch_desc_onEveryDate:kE,sch_desc_onMonth:YE,sch_desc_onMonths:QE,sch_desc_onWeekday:UE,sch_desc_onWeekdays:vE,sch_desc_onWeekends:bE,sch_desc_onWorkdays:$E,sch_desc_onceInPast:PE,sch_desc_once_on:WE,sch_desc_validFrom:RE,sch_desc_validFromTo:JE,sch_desc_validTo:BE,sch_every:FE,sch_exactTime:GE,sch_from:HE,sch_fromTo:VE,sch_intervalTime:ZE,sch_invert:XE,sch_no_one:KE,sch_on:qE,sch_period:e_,sch_periodDaily:t_,sch_periodDates:s_,sch_periodDay:i_,sch_periodEvery:o_,sch_periodEveryDay:r_,sch_periodEveryMonth:M_,sch_periodEveryWeek:n_,sch_periodEveryYear:a_,sch_periodHours:c_,sch_periodMinutes:u_,sch_periodMonth:N_,sch_periodMonthly:l_,sch_periodOnce:L_,sch_periodSpecificMonths:j_,sch_periodWeek:g_,sch_periodWeekdays:T_,sch_periodWeekend:y_,sch_periodWeekly:D_,sch_periodWorkdays:d_,sch_periodYear:z_,sch_periodYearly:I_,sch_specificTime:w_,sch_time:C_,sch_to:h_,sch_valid:A_,sch_validFrom:p_,sch_validTo:m_,sch_wholeDay:O_,sch_yearEveryMonth:E_},S_="Acties",x_="toevoegen",f_="Annuleer",k_="Categorieën",Y_="Gecontroleerd",Q_="Verwijderen",U_="Dichtbij",v_="Reclame",b_="Configureren",$_="Verbonden",P_="Doorgaan",W_="Gekopieerd",R_="Creëer",J_="Bijsnijden",B_="Delete",F_="Verwijderen",G_="Weggooien",H_="Verbinding verbroken",V_="Fout",Z_="Filter",X_="Vrijdag",K_="Breedtegraad",q_="Uitloggen",eS="Lengtegraad",tS="Bericht",sS="Maandag",iS="Naam",oS="Voorwerpen",rS="OK",MS="Product",nS="Hernoemen/Verplaatsen/Kopiëren",aS="Herhaling",cS="Vervangen",uS="Wortel",NS="Zaterdag",lS="Sparen",LS="Geselecteerd",jS="Staten",gS="Zondag",TS="Donderdag",yS="Tijdstempel",DS="Dinsdag",dS="Bijwerken",zS="Geldig tot",IS="Waarde",wS="Versie",CS="Woensdag",hS="Breedte",AS="Ja",pS="verschillend",mS="Iedereen kan object lezen",OS="Iedereen kan staat lezen",ES="Iedereen kan object schrijven",_S="Iedereen kan staat schrijven",SS="Groep kan object lezen",xS="Groep kan status lezen",fS="Groep kan object schrijven",kS="Groep kan staat schrijven",YS="Eigenaar kan object lezen",QS="Eigenaar kan staat lezen",US="Eigenaar kan object schrijven",vS="Eigenaar kan staat schrijven",bS="Toetsen",$S="Veranderd van",PS="dichtbij",WS="Creëer een Booleaanse status",RS="Kanaal maken",JS="Apparaat maken",BS="Nummerstatus maken",FS="Staat creëren",GS="Tekenreeksstatus maken",HS="d.",VS="Fr",ZS="Mo",XS="Za",KS="Zo",qS="Th",e3="Tu",t3="Wij",s3="Expert modus",i3="ONWAAR",o3="Alle bestanden",r3="Audio",M3="Code/JSON",n3="Afbeeldingen",a3="Tekst",c3="Video",u3="Instellingen",N3="zonder",l3="Functie",L3="ID",j3="Naam",g3="Rol",T3="Kamer",y3="Type",D3="Ongeldige instellingen",d3="Laatste wijziging",z3="plaatselijk",I3="april",w3="aug",C3="dec",h3="februari",A3="jan",p3="jul",m3="juni",O3="Mei",E3="mrt",_3="nov",S3="Okt",x3="sept",f3="april",k3="aug",Y3="dec",Q3="februari",U3="jan",v3="jul",b3="juni",$3="Mei",P3="mrt",W3="nov",R3="Okt",J3="sept",B3="geen",F3="Object veranderd door",G3="Object voor het laatst gewijzigd om",H3="Instellingen van andere adapter %s",V3="Kwaliteitscode",Z3="herhalen",X3='Om een map te selecteren, houdt u gewoon de toets "shift" ingedrukt door op de map te klikken.',K3="Alles weergeven",q3="Staat veranderd door",ex="Object veranderd van",tx="Tijdstempel",sx="Erkende vlag",ix="Opmerking",ox="Kopieer de statuswaarde",rx="Houd de Cltr/⌘-toets ingedrukt om de link te openen",Mx="Aangepaste instellingen",nx="Object verwijderen",ax="Object bewerken",cx="Bewerk de statuswaarde",ux="Verloopt over",Nx="Van",lx="Laatst gewijzigd",Lx="Kwaliteit",jx="Tijdstempel",gx="Gebruiker",Tx="Waarde",yx="WAAR",Dx="Waarde",dx="Waarschuwing: De CRON-taak wordt elke minuut uitgevoerd gedurende de opgegeven periode!",zx="Waarschuwing: De CRON-taak wordt elke seconde uitgevoerd gedurende de opgegeven periode!",Ix="CRON",wx="Datum",Cx="data",hx="Dag",Ax="Dag van de week",px="elk",mx="elke N dagen",Ox="elke N-de dag van de week",Ex="elke N dag van de week",_x="elke N uur",Sx="elke N minuten",xx="elke N maanden",fx="elke N seconden",kx="elke dag",Yx="elke dag van de week",Qx="elke dag van de week",Ux="elk uur",vx="elke minuut",bx="elke maand",$x="elke seconde",Px="Van",Wx="uren",Rx="Interval",Jx="Interval tussen",Bx="Ongeldige CRON",Fx="Notulen",Gx="maanden",Hx="Een keer",Vx="Periode",Zx="seconden",Xx="Gemakkelijk",Kx="Specifieke tijd",qx="specifieke data",ef="specifieke dag(en) van de week",tf="specifieke dag van weken",sf="specifieke uren",of="specifieke minuten",rf="specifieke maanden",Mf="specifieke seconden",nf="Tijd",af="Naar",cf="tovenaar",uf="allemaal",Nf="Astro-dag",lf="Astro-nacht",Lf="Dageraad",jf="Schemer",gf="gouden uur",Tf="Gouden uur einde",yf="Nadir",Df="Nautische dageraad",df="Nautische schemering",zf="Nacht",If="Nacht einde",wf="Zonne middag",Cf="zonsopkomst",hf="Sunrise einde",Af="Zonsondergang",pf="Zonsondergang start",mf="Bij",Of="op %s",Ef="elke dag",_f="elk uur",Sf="elke minuut",xf="elke maand",ff="elke %s dag",kf="elke %s uur",Yf="elke %s minuten",Qf="elke %s maanden",Uf="elke %s weken",vf="elke %s jaar",bf="elke week",$f="elk jaar",Pf="van %s tot %s",Wf="nooit",Rf="op %s van %s",Jf="op %s en %s van",Bf="op elke datum van",Ff="%s",Gf="%s en %s",Hf="op %s",Vf="op %s en %s",Zf="in het weekend",Xf="op werkdagen",Kf="zal niet meer worden uitgevoerd, omdat start verleden tijd is",qf="op %s",e5="van %s",t5="Uitvoeren van tot",s5="tot %s",i5="elk",o5="Specifieke tijd",r5="van",M5="Van naar",n5="Interval tijd",a5="omkeren",c5="geen",u5="Aan",N5="Periode",l5="Dagelijks",L5="data",j5="Dag",g5="elk",T5="Elke dag",y5="Elke maand",D5="Elke week",d5="Elk jaar",z5="uren",I5="Notulen",w5="maand",C5="Maandelijks",h5="Een keer",A5="Specifieke maanden",p5="Week",m5="Doordeweekse dagen",O5="Weekend",E5="Wekelijks",_5="werkdagen",S5="Jaar",x5="jaar-",f5="Specifieke tijd",k5="Tijd",Y5="naar",Q5="Geldig",U5="van",v5="naar",b5="Hele dag",$5="elke maand",P5={"ra_%s links from aliases":"%s links van aliassen","ra_%s object(s) processed":"%s object(en) verwerkt","ra_%s was imported":"%s is geïmporteerd","ra_Accept license":"Accepteer licentie",ra_Actions:S_,"ra_Add new child object to selected parent":"Voeg een nieuw kindobject toe aan het geselecteerde bovenliggende object","ra_Add objects tree from JSON file":"Objectenboom toevoegen vanuit JSON-bestand","ra_Add row":"Voeg een rij toe","ra_Advanced options":"Geavanceerde mogelijkheden","ra_All items are filtered out":"Alle items zijn uitgefilterd","ra_All objects":"Alle objecten",ra_Append:x_,"ra_Append %s entries or replace existing?":"%s ingangen toevoegen of bestaande vervangen?","ra_Append or replace?":"Toevoegen of vervangen?","ra_Are you sure?":"Weet je het zeker?","ra_Auto (no custom columns)":"Auto (geen aangepaste kolommen)","ra_Back to %s":"Terug naar %s","ra_Background image":"Achtergrond afbeelding",ra_Cancel:f_,"ra_Cannot add items with set filter":"Kan geen items toevoegen met ingestelde filter","ra_Cannot decode license":"Kan licentie niet decoderen","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser",'ra_Cannot find "%s"':'Kan "%s" niet vinden','ra_Cannot read "%s"':'Kan "%s" niet lezen',"ra_Cannot read licenses: %s":"Kan licenties niet lezen: %s","ra_Cannot retrieve options, as instance is offline":"Kan opties niet ophalen, omdat instantie offline is","ra_Cannot update attribute, because not found in the object":"Kan kenmerk niet bijwerken, omdat het niet in het object is gevonden","ra_Cannot upload":"Kan niet uploaden",ra_Categories:k_,"ra_Chained certificate":"Geketend certificaat","ra_Change color theme":"Kleurthema wijzigen","ra_Changed from":"Veranderd van","ra_Channel → State":"Kanaal → Staat","ra_Check license":"Licentie controleren",ra_Checked:Y_,ra_Clear:Q_,"ra_Clear filter":"Filter wissen","ra_Clear icon":"Pictogram wissen","ra_Clone current row":"Kloon de huidige rij",ra_Close:U_,"ra_Collapse all nodes":"Vouw alle knooppunten samen","ra_Collapse one step node":"Eén niveau samenvouwen",ra_Commercial:v_,ra_Configure:b_,"ra_Configure visible columns":"Configureer zichtbare kolommen","ra_Confirm deletion of %s":"Bevestig het verwijderen van %s",ra_Connected:$_,ra_Continue:P_,ra_Copied:W_,"ra_Copied %s":'"%s" gekopieerd',"ra_Copy content":"Inhoud kopiëren",ra_Create:R_,"ra_Create alias":"Alias maken","ra_Create folder":"Map aanmaken","ra_Create new folder in %s":"Maak een nieuwe map in %s",ra_Crop:J_,"ra_Define CRON...":"Definieer CRON...","ra_Define functions":"Definieer functies","ra_Define rooms":"Definieer kamers","ra_Define schedule":"Definieer schema","ra_Define schedule...":"Schema definiëren ...",ra_Del:B_,ra_Delete:F_,"ra_Delete current row":"Huidige rij verwijderen","ra_Deselect all":"Deselecteer alles","ra_Device → Channel → State":"Apparaat → Kanaal → Staat",ra_Discard:G_,ra_Disconnected:H_,"ra_Do not ask for next 2 hours in this session":"Vraag niet om de volgende 2 uur in deze sessie","ra_Do not export values of states":"Exporteer geen waarden van staten","ra_Do not use let's encrypt":"Gebruik geen let's encrypt","ra_Double click to reset table layout":"Dubbelklik om de tafelindeling te resetten","ra_Drag 'n' drop some files here, or click to select files":"Sleep enkele bestanden hierheen, of klik om bestanden te selecteren","ra_Drop file here":"Zet het bestand hier neer","ra_Drop the files here...":"Zet het bestand hier neer...","ra_Duplicate name":"Dubbele naam","ra_Edit ACL":"ACL bewerken","ra_Edit alias":"Alias bewerken","ra_Edit custom config":"Bewerk aangepaste config","ra_Edit full path":"Volledig pad bewerken","ra_Edit function":"Bewerkingsfunctie","ra_Edit object field":"Bewerk objectveld","ra_Edit role":"Rol bewerken","ra_Edit room":"Kamer bewerken","ra_Edit value":"Waarde bewerken","ra_Enter the code from that page here":"Voer hier de code van die pagina in",ra_Error:V_,"ra_Expand all nodes":"Vouw alle knooppunten uit","ra_Expand one step node":"Vouw een niveau uit","ra_Export data to %s file":"Exporteer gegevens naar %s bestand","ra_Failed to open JSON File":"JSON-bestand kan niet worden geopend","ra_Fallback custom certificates":"Fallback aangepaste certificaten","ra_File is too big. Max %sk allowed. Try use SVG.":"Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.",ra_Filter:Z_,"ra_Filter and Data Actions":"Filter- en gegevensacties","ra_Filter files":"Bestanden filteren","ra_Folder name":"Naam van de map","ra_Folder → Channel → State":"Map → Kanaal → Staat","ra_Folder → Device → Channel → State":"Map → Apparaat → Kanaal → Staat","ra_Folder → State":"Map → Staat","ra_Folders always first":"Mappen altijd eerst",ra_Friday:X_,"ra_Get %s access":"Krijg %s toegang","ra_Good luck":"Veel geluk","ra_Hide empty folders":"Verberg lege mappen","ra_If no file will be created in the folder, it will disappear after the browser closed":"Als er geen bestand in de map wordt gemaakt, verdwijnt het nadat de browser is gesloten","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken","ra_Import data from %s file":"Importeer gegevens uit %s bestand","ra_Import from %s":"Importeren uit %s","ra_Instance %s is alive":"Instantie %s leeft","ra_Instance %s is not alive":"Instantie %s is niet actief","ra_Instance is not alive":"Instantie leeft niet","ra_Invalid CRON":"Ongeldige CRON","ra_Invalid JSON":"Ongeldige JSON","ra_Invalid answer from server":"Ongeldig antwoord van de server","ra_Invalid parent folder!":"Ongeldige bovenliggende map!","ra_Invalid structure":"Ongeldige structuur","ra_JSON editor":"JSON-editor","ra_Last change":"Laatste wijziging",ra_Latitude:K_,"ra_License %s":"Licentie %s","ra_License agreement":"Licentieovereenkomst","ra_License does not exist":"Licentie bestaat niet","ra_License expired on %s":"Licentie verlopen op %s",'ra_License for other product "%s"':'Licentie voor ander product "%s"',"ra_License is for version %s, but required version is %s.":"Licentie is voor versie %s, maar vereiste versie is %s.","ra_License must be converted":"Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?","ra_Listen on all IPs":"Luister op alle IP's","ra_Load configuration from file":"Laad configuratie uit bestand",ra_Logout:q_,ra_Longitude:eS,'ra_May not trigger "updateLicenses"':'Activeert mogelijk niet "updateLicenses"',ra_Message:tS,ra_Monday:sS,"ra_Move down":"Naar beneden verplaatsen","ra_Move up":"Omhoog gaan",ra_Name:iS,"ra_No data found in file":"Geen gegevens gevonden in bestand","ra_No one license found in license manager":"Geen enkele licentie gevonden in licentiebeheer","ra_No response from the backend":"Geen reactie van de backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Niet-experts mogen alleen nieuwe objecten maken in "0_userdata.0" of "alias.0".',"ra_Not a number":"Geen nummer",ra_Objects:oS,ra_Ok:rS,"ra_On weekdays":"Op weekdagen","ra_Only following structures of objects are available:":"Alleen de volgende structuren van objecten zijn beschikbaar:","ra_Only selected":"Alleen geselecteerd","ra_Owner group":"Eigenaarsgroep","ra_Owner user":"Eigenaar gebruiker","ra_Passwords are not equal!":"Wachtwoorden zijn niet gelijk!","ra_Place your files here or click here to open the browse dialog":"Plaats uw bestanden hier of klik hier om het bladervenster te openen","ra_Please allow popups in your browser for this page!":"Sta pop-ups toe in uw browser voor deze pagina!","ra_Please confirm":"Bevestig alstublieft","ra_Please create license":"Maak een licentie aan","ra_Please enter the license":"Voer de licentie in","ra_Please select file...":"Selecteer bestand...","ra_Please select object ID...":"Selecteer object-ID ...","ra_Port could be used by %s":"Poort kan worden gebruikt door %s","ra_Port is already used by %s":"Poort wordt al gebruikt door %s","ra_Press ENTER Key to add new item":"Druk op de ENTER-toets om een nieuw item toe te voegen","ra_Private certificate":"Privé certificaat",ra_Product:MS,"ra_Public certificate":"Openbaar certificaat","ra_Quality code":"Kwaliteit","ra_Refresh tree":"Vernieuw de boom","ra_Reload files":"Laad bestanden opnieuw",ra_Rename_Move_Copy:nS,"ra_Renew %s access":"%s toegang verlengen",ra_Repeat:aS,ra_Replace:cS,"ra_Request timed out":"Verzoek verlopen","ra_Restrict to folder":"Beperken tot map",ra_Root:uS,ra_Saturday:NS,ra_Save:lS,"ra_Save and close":"Opslaan en afsluiten","ra_Save configuration to file":"Sla de configuratie op in een bestand","ra_Save objects tree as JSON file":"Sla de objectenboom op als JSON-bestand","ra_Select all":"Selecteer alles","ra_Select color":"Selecteer kleur","ra_Select predefined icon":"Selecteer voorgedefinieerd pictogram","ra_Select type of export":"Selecteer het type export",ra_Selected:LS,"ra_Selected %s object(s)":"Geselecteerde %s object(en)","ra_Serial number (UUID)":"Serienummer (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Serienummer (UUID) "%s" in licentie is voor ander apparaat.',"ra_Session will expire in %s seconds. Continue?":"Sessie verloopt over %s seconden. Doorgaan?","ra_Show all folders":"Toon alle mappen","ra_Show lines between rows":"Toon lijnen tussen rijen","ra_Show/Hide object descriptions":"Toon/verberg objectbeschrijvingen","ra_Show/hide filter input":"Filterinvoer weergeven/verbergen","ra_Some data are not stored. Discard?":"Sommige gegevens worden niet opgeslagen. Weggooien?",ra_States:jS,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.","ra_Suitable license not found in license manager":"Geschikte licentie niet gevonden in licentiebeheer",ra_Sunday:gS,"ra_Suppress question for next %s minutes":"Vraag de volgende %s minuten onderdrukken","ra_System language":"Systeemtaal","ra_Take browser position":"Positie innemen vanuit de browser","ra_Take position from system settings":"Neem positie over van systeeminstellingen",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'De experts kunnen overal objecten maken, behalve vanaf het tweede niveau (bijv. "Vis.0" of "javascript.0").',"ra_The page you are looking for was not found":"De pagina die u zoekt is niet gevonden","ra_The schedule will be executed every minute. Are you sure?":"Het schema wordt elke minuut uitgevoerd. Weet u het zeker?","ra_The schedule will be executed every second. Are you sure?":"Het schema wordt elke seconde uitgevoerd. Weet je het zeker?",ra_Thursday:TS,ra_Timestamp:yS,"ra_Toggle expert mode":"Schakel tussen expertmodus","ra_Toggle the states view":"Schakel de statusweergave in of uit","ra_Toggle view mode":"Schakelen tussen weergavemodus","ra_Too big":"Te groot","ra_Too small":"Te klein","ra_Transparent dialog":"Transparant dialoogvenster",ra_Tuesday:DS,"ra_Unknown error":"Onbekende fout","ra_Unknown error!":"Onbekende fout!",ra_Update:dS,"ra_Upload file":"Upload bestand","ra_Use all available let's encrypt certificates":"Gebruik alle beschikbare Let's Encrypt-certificaten","ra_Use iobroker.acme adapter for letsencrypt certificates":"Gebruik de iobroker.acme-adapter voor letsencrypt-certificaten","ra_Use system settings for position":"Gebruik systeeminstellingen voor positie","ra_Used system settings":"Gebruikte systeeminstellingen","ra_User files":"Gebruikersbestanden",ra_ValidTill:zS,ra_Value:IS,ra_Version:wS,"ra_View file":"Bestand bekijken","ra_View: %s":"Bekijk: %s",ra_Wednesday:CS,ra_Width:hS,ra_Yes:AS,"ra_You can export all objects or just the selected branch.":"U kunt alle objecten of alleen de geselecteerde tak exporteren.","ra_You can filter entries by entering here some text":"U kunt items filteren door hier wat tekst in te voeren","ra_You can use * as wildcard":"U kunt * als joker gebruiken",ra___different__:pS,ra_aclEveryone_read_object:mS,ra_aclEveryone_read_state:OS,ra_aclEveryone_write_object:ES,ra_aclEveryone_write_state:_S,ra_aclGroup_read_object:SS,ra_aclGroup_read_state:xS,ra_aclGroup_write_object:fS,ra_aclGroup_write_state:kS,ra_aclOwner_read_object:YS,ra_aclOwner_read_state:QS,ra_aclOwner_write_object:US,ra_aclOwner_write_state:vS,ra_buttons:bS,ra_changedFrom:$S,ra_close:PS,ra_create_boolean_state:WS,ra_create_channel:RS,ra_create_device:JS,ra_create_number_state:BS,ra_create_state:FS,ra_create_string_state:GS,ra_daysShortText:HS,ra_dow_Fr:VS,ra_dow_Mo:ZS,ra_dow_Sa:XS,ra_dow_Su:KS,ra_dow_Th:qS,ra_dow_Tu:e3,ra_dow_We:t3,ra_expertMode:s3,ra_false:i3,ra_fileType_all:o3,ra_fileType_audio:r3,ra_fileType_code:M3,ra_fileType_images:n3,ra_fileType_txt:a3,ra_fileType_video:c3,"ra_fileType_video,":"Video",ra_filter_customs:u3,ra_filter_customs_without:N3,ra_filter_func:l3,ra_filter_id:L3,ra_filter_name:j3,ra_filter_role:g3,ra_filter_room:T3,ra_filter_type:y3,"ra_import data from %s file":"Importeer gegevens uit %s bestand",ra_invalidConfig:D3,ra_lastChange:d3,ra_locally:z3,ra_month_Apr:I3,ra_month_Aug:w3,ra_month_Dec:C3,ra_month_Feb:h3,ra_month_Jan:A3,ra_month_Jul:p3,ra_month_Jun:m3,ra_month_Mai:O3,ra_month_Mar:E3,ra_month_Nov:_3,ra_month_Oct:S3,ra_month_Sep:x3,ra_months_Apr:f3,ra_months_Aug:k3,ra_months_Dec:Y3,ra_months_Feb:Q3,ra_months_Jan:U3,ra_months_Jul:v3,ra_months_Jun:b3,ra_months_Mai:$3,ra_months_Mar:P3,ra_months_Nov:W3,ra_months_Oct:R3,ra_months_Sep:J3,"ra_no confirm for 5 mins":"geen bevestiging gedurende 5 minuten",ra_none:B3,ra_object_changed_by:F3,ra_object_changed_by_user:G3,ra_otherConfig:H3,ra_qualityCode:V3,ra_repeat:Z3,ra_select_folder_hint:X3,ra_show_all:K3,ra_state_changed_by:q3,ra_state_changed_from:ex,ra_timestamp:tx,ra_tooltip_ack:sx,ra_tooltip_comment:ix,ra_tooltip_copyState:ox,ra_tooltip_ctrlForLink:rx,ra_tooltip_customConfig:Mx,ra_tooltip_deleteObject:nx,ra_tooltip_editObject:ax,ra_tooltip_editState:cx,ra_tooltip_expire:ux,ra_tooltip_from:Nx,ra_tooltip_lc:lx,ra_tooltip_quality:Lx,ra_tooltip_ts:jx,ra_tooltip_user:gx,ra_tooltip_value:Tx,ra_true:yx,"ra_use seconds":"gebruik seconden",ra_val:Dx,"ra_via internet":"via internet",ra_warning_every_minute:dx,ra_warning_every_second:zx,sc_cron:Ix,sc_date:wx,sc_dates:Cx,sc_dow:hx,sc_dows:Ax,sc_every:px,sc_everyN_dates:mx,sc_everyN_dow:Ox,sc_everyN_dows:Ex,sc_everyN_hours:_x,sc_everyN_minutes:Sx,sc_everyN_months:xx,sc_everyN_seconds:fx,sc_every_dates:kx,sc_every_dow:Yx,sc_every_dows:Qx,sc_every_hours:Ux,sc_every_minutes:vx,sc_every_months:bx,sc_every_seconds:$x,sc_from:Px,sc_hours:Wx,sc_interval:Rx,sc_intervalBetween:Jx,sc_invalid_cron:Bx,sc_minutes:Fx,sc_months:Gx,sc_once:Hx,sc_period:Vx,sc_seconds:Zx,sc_simple:Xx,sc_specific:Kx,sc_specific_dates:qx,sc_specific_dow:ef,sc_specific_dows:tf,sc_specific_hours:sf,sc_specific_minutes:of,sc_specific_months:rf,sc_specific_seconds:Mf,sc_time:nf,sc_to:af,sc_wizard:cf,sch_all:uf,sch_astroDay:Nf,sch_astroNight:lf,sch_astro_dawn:Lf,sch_astro_dusk:jf,sch_astro_goldenHour:gf,sch_astro_goldenHourEnd:Tf,sch_astro_nadir:yf,sch_astro_nauticalDawn:Df,sch_astro_nauticalDusk:df,sch_astro_night:zf,sch_astro_nightEnd:If,sch_astro_solarNoon:wf,sch_astro_sunrise:Cf,sch_astro_sunriseEnd:hf,sch_astro_sunset:Af,sch_astro_sunsetStart:pf,sch_at:mf,sch_desc_atTime:Of,sch_desc_everyDay:Ef,sch_desc_everyHour:_f,sch_desc_everyMinute:Sf,sch_desc_everyMonth:xf,sch_desc_everyNDay:ff,sch_desc_everyNHours:kf,sch_desc_everyNMinutes:Yf,sch_desc_everyNMonths:Qf,sch_desc_everyNWeeks:Uf,sch_desc_everyNYears:vf,sch_desc_everyWeek:bf,sch_desc_everyYear:$f,sch_desc_intervalFromTo:Pf,sch_desc_never:Wf,sch_desc_onDate:Rf,sch_desc_onDates:Jf,sch_desc_onEveryDate:Bf,sch_desc_onMonth:Ff,sch_desc_onMonths:Gf,sch_desc_onWeekday:Hf,sch_desc_onWeekdays:Vf,sch_desc_onWeekends:Zf,sch_desc_onWorkdays:Xf,sch_desc_onceInPast:Kf,sch_desc_once_on:qf,sch_desc_validFrom:e5,sch_desc_validFromTo:t5,sch_desc_validTo:s5,sch_every:i5,sch_exactTime:o5,sch_from:r5,sch_fromTo:M5,sch_intervalTime:n5,sch_invert:a5,sch_no_one:c5,sch_on:u5,sch_period:N5,sch_periodDaily:l5,sch_periodDates:L5,sch_periodDay:j5,sch_periodEvery:g5,sch_periodEveryDay:T5,sch_periodEveryMonth:y5,sch_periodEveryWeek:D5,sch_periodEveryYear:d5,sch_periodHours:z5,sch_periodMinutes:I5,sch_periodMonth:w5,sch_periodMonthly:C5,sch_periodOnce:h5,sch_periodSpecificMonths:A5,sch_periodWeek:p5,sch_periodWeekdays:m5,sch_periodWeekend:O5,sch_periodWeekly:E5,sch_periodWorkdays:_5,sch_periodYear:S5,sch_periodYearly:x5,sch_specificTime:f5,sch_time:k5,sch_to:Y5,sch_valid:Q5,sch_validFrom:U5,sch_validTo:v5,sch_wholeDay:b5,sch_yearEveryMonth:$5},W5="Actes",R5="Ajouter",J5="Annuler",B5="Catégories",F5="Vérifié",G5="Effacer",H5="Fermer",V5="Commercial",Z5="Configurer",X5="Lié",K5="Continuer",q5="Copié",ek="Créer",tk="Recadrer",sk="Delete",ik="Supprimer",ok="Jeter",rk="Débranché",Mk="Erreur",nk="Filtre",ak="Vendredi",ck="Latitude",uk="Déconnexion",Nk="Longitude",lk="Message",Lk="Lundi",jk="Nom",gk="Objets",Tk="D'accord",yk="Produit",Dk="Renommer/Déplacer/Copier",dk="Répéter",zk="Remplacer",Ik="Racine",wk="Samedi",Ck="sauver",hk="Choisi",Ak="États",pk="Dimanche",mk="Jeudi",Ok="Horodatage",Ek="Mardi",_k="Mise à jour",Sk="Valable jusqu'au",xk="Valeur",fk="Version",kk="Mercredi",Yk="Largeur",Qk="Oui",Uk="différent",vk="Tout le monde peut lire un objet",bk="Tout le monde peut lire l'état",$k="Tout le monde peut écrire un objet",Pk="Tout le monde peut écrire l'état",Wk="Le groupe peut lire l'objet",Rk="Le groupe peut lire l'état",Jk="Le groupe peut écrire un objet",Bk="Le groupe peut écrire l'état",Fk="Le propriétaire peut lire l'objet",Gk="Le propriétaire peut lire l'état",Hk="Le propriétaire peut écrire un objet",Vk="Le propriétaire peut écrire l'état",Zk="Boutons",Xk="Changé de",Kk="Fermer",qk="Créer un état booléen",eY="Créer une chaîne",tY="Créer un appareil",sY="Créer un état de numéro",iY="Créer un état",oY="Créer un état de chaîne",rY="j.",MY="Fr",nY="Mo",aY="Sa",cY="Su",uY="Th",NY="Tu",lY="Nous",LY="Mode expert",jY="FAUX",gY="Tous les fichiers",TY="l'audio",yY="Code/JSON",DY="Images",dY="Texte",zY="Vidéo",IY="Paramètres",wY="sans",CY="Une fonction",hY="ID",AY="Prénom",pY="Rôle",mY="Pièce",OY="Type",EY="Paramètres invalides",_Y="Dernier changement",SY="localement",xY="Avr",fY="Août",kY="Déc",YY="Fév",QY="Jan",UY="Juil",vY="Juin",bY="Mai",$Y="Mar",PY="Nov",WY="Oct",RY="Sep",JY="Avr",BY="Août",FY="Déc",GY="Fév",HY="Jan",VY="Juil",ZY="Juin",XY="Mai",KY="Mar",qY="Nov",eQ="Oct",tQ="Sep",sQ="rien",iQ="Objet modifié par",oQ="Objet modifié pour la dernière fois à",rQ="Paramètres d'un autre adaptateur %s",MQ="Code de qualité",nQ="répéter",aQ='Pour sélectionner un dossier, maintenez simplement la touche "shift" enfoncée en cliquant sur le dossier.',cQ="Tout afficher",uQ="État modifié par",NQ="Objet changé de",lQ="Horodatage",LQ="Drapeau reconnu",jQ="Commentaire",gQ="Copiez la valeur d'état",TQ="Maintenez la touche Cltr/⌘ enfoncée pour ouvrir le lien",yQ="Paramètres personnalisés",DQ="Supprimer un objet",dQ="Modifier l'objet",zQ="Modifier la valeur d'état",IQ="Expire dans",wQ="De",CQ="Dernière modification",hQ="Qualité",AQ="Horodatage",pQ="Utilisateur",mQ="Valeur",OQ="VRAI",EQ="Valeur",_Q="Attention : la tâche CRON s’exécutera toutes les minutes pendant la période spécifiée !",SQ="Attention : la tâche CRON s’exécutera toutes les secondes pendant la période spécifiée !",xQ="CRON",fQ="Date",kQ="Rendez-vous",YQ="Jour",QQ="Jour de la semaine",UQ="Chaque",vQ="tous les N jours",bQ="chaque Nième jour de la semaine",$Q="tous les N jours de la semaine",PQ="toutes les N heures",WQ="toutes les N minutes",RQ="tous les N mois",JQ="toutes les N secondes",BQ="tous les jours",FQ="Chaque jour de la semaine",GQ="Chaque jour de la semaine",HQ="Toutes les heures",VQ="chaque minute",ZQ="chaque mois",XQ="chaque seconde",KQ="De",qQ="Heures",eU="Intervalle",tU="Intervalle entre",sU="CRON non valide",iU="Minutes",oU="mois",rU="Une fois que",MU="Période",nU="Secondes",aU="Facile",cU="Temps spécifique",uU="dates spécifiques",NU="jour(s) spécifique(s) de la semaine",lU="jour spécifique de semaines",LU="heures spécifiques",jU="minutes spécifiques",gU="mois spécifiques",TU="secondes spécifiques",yU="Temps",DU="À",dU="sorcier",zU="tout",IU="Journée astronomique",wU="Nuit astronomique",CU="Aube",hU="Crépuscule",AU="Heure d'or",pU="Fin de l'heure d'or",mU="Nadir",OU="Aube nautique",EU="Crépuscule nautique",_U="Nuit",SU="Fin de nuit",xU="Midi solaire",fU="lever du soleil",kU="Fin du lever du soleil",YU="Le coucher du soleil",QU="Coucher du soleil",UU="à",vU="à %s",bU="tous les jours",$U="Toutes les heures",PU="chaque minute",WU="chaque mois",RU="chaque %s jour",JU="chaque %s heures",BU="toutes les %s minutes",FU="tous les %s mois",GU="chaque %s semaines",HU="tous les %s ans",VU="toutes les semaines",ZU="chaque année",XU="de %s à %s",KU="jamais",qU="sur %s de %s",ev="sur %s et %s de",tv="à chaque date de",sv="%s",iv="%s et %s",ov="sur %s",rv="sur %s et %s",Mv="les weekends",nv="les jours ouvrables",av="ne sera plus exécuté, car start est dans le passé",cv="sur %s",uv="de %s",Nv="Exécuter de à",lv="à %s",Lv="chaque",jv="Temps spécifique",gv="de",Tv="De à",yv="Temps d'interval",Dv="inverser",dv="aucun",zv="sur",Iv="Période",wv="du quotidien",Cv="Rendez-vous",hv="journée",Av="Chaque",pv="Tous les jours",mv="Chaque mois",Ov="Toutes les semaines",Ev="Chaque année",_v="Heures",Sv="Minutes",xv="mois",fv="Mensuel",kv="Une fois que",Yv="Mois spécifiques",Qv="La semaine",Uv="Jours de la semaine",vv="Weekend",bv="Hebdomadaire",$v="Jours ouvrables",Pv="Année",Wv="Annuel",Rv="Temps spécifique",Jv="Temps",Bv="à",Fv="Valide",Gv="de",Hv="à",Vv="Toute la journée",Zv="chaque mois",Xv={"ra_%s links from aliases":"%s liens provenant d'alias","ra_%s object(s) processed":"%s objet(s) traité(s)","ra_%s was imported":"%s a été importé","ra_Accept license":"Accepter la licence",ra_Actions:W5,"ra_Add new child object to selected parent":"Ajouter un nouvel objet enfant au parent sélectionné","ra_Add objects tree from JSON file":"Ajouter une arborescence d'objets à partir d'un fichier JSON","ra_Add row":"Ajouter une rangée","ra_Advanced options":"Options avancées","ra_All items are filtered out":"Tous les éléments sont filtrés","ra_All objects":"Tous les objets",ra_Append:R5,"ra_Append %s entries or replace existing?":"Ajouter %s entrées ou remplacer l'existant ?","ra_Append or replace?":"Ajouter ou remplacer ?","ra_Are you sure?":"Êtes-vous sûr?","ra_Auto (no custom columns)":"Auto (pas de colonnes personnalisées)","ra_Back to %s":"Retour à %s","ra_Background image":"Image de fond",ra_Cancel:J5,"ra_Cannot add items with set filter":"Impossible d'ajouter des éléments avec le filtre défini","ra_Cannot decode license":"Impossible de décoder la licence","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossible de déterminer la position : les paramètres système sont vides et la détection GPS est désactivée dans le navigateur",'ra_Cannot find "%s"':'Impossible de trouver "%s"','ra_Cannot read "%s"':'Impossible de lire "%s"',"ra_Cannot read licenses: %s":"Impossible de lire les licences : %s","ra_Cannot retrieve options, as instance is offline":"Impossible de récupérer les options, car l'instance est hors ligne","ra_Cannot update attribute, because not found in the object":"Impossible de mettre à jour l'attribut, car il est introuvable dans l'objet","ra_Cannot upload":"Impossible de télécharger",ra_Categories:B5,"ra_Chained certificate":"Certificat chaîné","ra_Change color theme":"Changer le thème de couleur","ra_Changed from":"Changé de","ra_Channel → State":"Canal → État","ra_Check license":"Vérifier la licence",ra_Checked:F5,ra_Clear:G5,"ra_Clear filter":"Effacer le filtre","ra_Clear icon":"Effacer l'icône","ra_Clone current row":"Cloner la ligne actuelle",ra_Close:H5,"ra_Collapse all nodes":"Réduire tous les nœuds","ra_Collapse one step node":"Réduire d'un niveau",ra_Commercial:V5,ra_Configure:Z5,"ra_Configure visible columns":"Configurer les colonnes visibles","ra_Confirm deletion of %s":"Confirmer la suppression de %s",ra_Connected:X5,ra_Continue:K5,ra_Copied:q5,"ra_Copied %s":'"%s" copié',"ra_Copy content":"Copier le contenu",ra_Create:ek,"ra_Create alias":"Créer un alias","ra_Create folder":"Créer le dossier","ra_Create new folder in %s":"Créer un nouveau dossier dans %s",ra_Crop:tk,"ra_Define CRON...":"Définir CRON...","ra_Define functions":"Définir des fonctions","ra_Define rooms":"Définir des pièces","ra_Define schedule":"Définir le calendrier","ra_Define schedule...":"Définir le calendrier ...",ra_Del:sk,ra_Delete:ik,"ra_Delete current row":"Supprimer la ligne actuelle","ra_Deselect all":"Tout déselectionner","ra_Device → Channel → State":"Appareil → Canal → État",ra_Discard:ok,ra_Disconnected:rk,"ra_Do not ask for next 2 hours in this session":"Ne demandez pas les 2 prochaines heures de cette session","ra_Do not export values of states":"Ne pas exporter les valeurs des états","ra_Do not use let's encrypt":"Ne pas utiliser let's encrypt","ra_Double click to reset table layout":"Double-cliquez pour réinitialiser la disposition du tableau","ra_Drag 'n' drop some files here, or click to select files":"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers","ra_Drop file here":"Déposer le fichier ici","ra_Drop the files here...":"Déposez le fichier ici...","ra_Duplicate name":"Nom en double","ra_Edit ACL":"Modifier la LCA","ra_Edit alias":"Modifier l'alias","ra_Edit custom config":"Modifier la configuration personnalisée","ra_Edit full path":"Modifier le chemin complet","ra_Edit function":"Fonction d'édition","ra_Edit object field":"Modifier le champ d'objet","ra_Edit role":"Modifier le rôle","ra_Edit room":"Modifier la salle","ra_Edit value":"Modifier la valeur","ra_Enter the code from that page here":"Entrez le code de cette page ici",ra_Error:Mk,"ra_Expand all nodes":"Développer tous les nœuds","ra_Expand one step node":"Développer un niveau","ra_Export data to %s file":"Exporter les données vers le fichier %s","ra_Failed to open JSON File":"Échec de l'ouverture du fichier JSON","ra_Fallback custom certificates":"Certificats personnalisés de secours","ra_File is too big. Max %sk allowed. Try use SVG.":"Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.",ra_Filter:nk,"ra_Filter and Data Actions":"Actions sur les filtres et les données","ra_Filter files":"Filtrer les fichiers","ra_Folder name":"Nom de dossier","ra_Folder → Channel → State":"Dossier → Chaîne → État","ra_Folder → Device → Channel → State":"Dossier → Appareil → Canal → État","ra_Folder → State":"Dossier → État","ra_Folders always first":"Les dossiers toujours en premier",ra_Friday:ak,"ra_Get %s access":"Obtenir l'accès %s","ra_Good luck":"Bonne chance","ra_Hide empty folders":"Masquer les dossiers vides","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si aucun fichier ne sera créé dans le dossier, il disparaîtra après la fermeture du navigateur","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL","ra_Import data from %s file":"Importer des données à partir du fichier %s","ra_Import from %s":"Importer depuis %s","ra_Instance %s is alive":"L'instance %s est active","ra_Instance %s is not alive":"L'instance %s n'est pas active","ra_Instance is not alive":"L'instance n'est pas active","ra_Invalid CRON":"CRON invalide","ra_Invalid JSON":"JSON invalide","ra_Invalid answer from server":"Réponse invalide du serveur","ra_Invalid parent folder!":"Dossier parent non valide!","ra_Invalid structure":"Structure invalide","ra_JSON editor":"Éditeur JSON","ra_Last change":"Dernier changement",ra_Latitude:ck,"ra_License %s":"Licence %s","ra_License agreement":"Accord de licence","ra_License does not exist":"La licence n'existe pas","ra_License expired on %s":"Licence expirée le %s",'ra_License for other product "%s"':'Licence pour un autre produit "%s"',"ra_License is for version %s, but required version is %s.":"La licence est pour la version %s, mais la version requise est %s.","ra_License must be converted":"La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net ?","ra_Listen on all IPs":"Écoutez sur toutes les adresses IP","ra_Load configuration from file":"Charger la configuration à partir du fichier",ra_Logout:uk,ra_Longitude:Nk,'ra_May not trigger "updateLicenses"':'Peut ne pas déclencher "updateLicences"',ra_Message:lk,ra_Monday:Lk,"ra_Move down":"Descendre","ra_Move up":"Déplacer vers le haut",ra_Name:jk,"ra_No data found in file":"Aucune donnée trouvée dans le fichier","ra_No one license found in license manager":"Aucune licence trouvée dans le gestionnaire de licences","ra_No response from the backend":"Aucune réponse du backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Les non-experts ne peuvent créer de nouveaux objets que dans "0_userdata.0" ou "alias.0".',"ra_Not a number":"Pas un numéro",ra_Objects:gk,ra_Ok:Tk,"ra_On weekdays":"En semaine","ra_Only following structures of objects are available:":"Seules les structures d'objets suivantes sont disponibles:","ra_Only selected":"Uniquement sélectionné","ra_Owner group":"Groupe propriétaire","ra_Owner user":"Utilisateur propriétaire","ra_Passwords are not equal!":"Les mots de passe ne sont pas égaux !","ra_Place your files here or click here to open the browse dialog":"Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation","ra_Please allow popups in your browser for this page!":"Veuillez autoriser les popups dans votre navigateur pour cette page !","ra_Please confirm":"Veuillez confirmer","ra_Please create license":"Veuillez créer une licence","ra_Please enter the license":"Veuillez entrer la licence","ra_Please select file...":"Veuillez sélectionner le fichier...","ra_Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","ra_Port could be used by %s":"Le port pourrait être utilisé par %s","ra_Port is already used by %s":"Le port est déjà utilisé par %s","ra_Press ENTER Key to add new item":"Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément","ra_Private certificate":"Certificat privé",ra_Product:yk,"ra_Public certificate":"Certificat public","ra_Quality code":"Qualité","ra_Refresh tree":"Rafraîchir l'arborescence","ra_Reload files":"Recharger les fichiers",ra_Rename_Move_Copy:Dk,"ra_Renew %s access":"Renouveler l'accès %s",ra_Repeat:dk,ra_Replace:zk,"ra_Request timed out":"La demande a expiré","ra_Restrict to folder":"Restreindre au dossier",ra_Root:Ik,ra_Saturday:wk,ra_Save:Ck,"ra_Save and close":"Sauver et fermer","ra_Save configuration to file":"Enregistrer la configuration dans un fichier","ra_Save objects tree as JSON file":"Enregistrer l'arborescence des objets en tant que fichier JSON","ra_Select all":"Tout sélectionner","ra_Select color":"Choisissez la couleur","ra_Select predefined icon":"Sélectionnez l'icône prédéfinie","ra_Select type of export":"Sélectionnez le type d'exportation",ra_Selected:hk,"ra_Selected %s object(s)":"Objet(s) %s sélectionné(s)","ra_Serial number (UUID)":"Numéro de série (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.',"ra_Session will expire in %s seconds. Continue?":"La session expirera dans %s secondes. Continuer ?","ra_Show all folders":"Afficher tous les dossiers","ra_Show lines between rows":"Afficher les lignes entre les lignes","ra_Show/Hide object descriptions":"Afficher/Masquer les descriptions d'objets","ra_Show/hide filter input":"Afficher/masquer l'entrée de filtre","ra_Some data are not stored. Discard?":"Certaines données ne sont pas stockées. Jeter?",ra_States:Ak,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.","ra_Suitable license not found in license manager":"Licence appropriée introuvable dans le gestionnaire de licences",ra_Sunday:pk,"ra_Suppress question for next %s minutes":"Supprimer la question pour les %s prochaines minutes","ra_System language":"Langue du système","ra_Take browser position":"Prendre position depuis le navigateur","ra_Take position from system settings":"Prendre position à partir des paramètres système",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Les experts peuvent créer des objets partout mais à partir du deuxième niveau (par exemple "vis.0" ou "javascript.0").',"ra_The page you are looking for was not found":"La page que vous recherchez n'a pas été trouvée","ra_The schedule will be executed every minute. Are you sure?":"Le planning sera exécuté toutes les minutes. Êtes-vous sûr ?","ra_The schedule will be executed every second. Are you sure?":"Le planning sera exécuté toutes les secondes. Êtes-vous sûr ?",ra_Thursday:mk,ra_Timestamp:Ok,"ra_Toggle expert mode":"Basculer en mode expert","ra_Toggle the states view":"Basculer la vue des états","ra_Toggle view mode":"Basculer le mode d'affichage","ra_Too big":"Trop grand","ra_Too small":"Trop petit","ra_Transparent dialog":"Dialogue transparent",ra_Tuesday:Ek,"ra_Unknown error":"Erreur inconnue","ra_Unknown error!":"Erreur inconnue!",ra_Update:_k,"ra_Upload file":"Téléverser un fichier","ra_Use all available let's encrypt certificates":"Utilisez tous les certificats let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utiliser l'adaptateur iobroker.acme pour les certificats Letsencrypt","ra_Use system settings for position":"Utiliser les paramètres système pour la position","ra_Used system settings":"Paramètres système utilisés","ra_User files":"Fichiers utilisateurs",ra_ValidTill:Sk,ra_Value:xk,ra_Version:fk,"ra_View file":"Voir la fiche","ra_View: %s":"Affichage : %s",ra_Wednesday:kk,ra_Width:Yk,ra_Yes:Qk,"ra_You can export all objects or just the selected branch.":"Vous pouvez exporter tous les objets ou uniquement la branche sélectionnée.","ra_You can filter entries by entering here some text":"Vous pouvez filtrer les entrées en saisissant ici du texte","ra_You can use * as wildcard":"Vous pouvez utiliser * comme caractère générique",ra___different__:Uk,ra_aclEveryone_read_object:vk,ra_aclEveryone_read_state:bk,ra_aclEveryone_write_object:$k,ra_aclEveryone_write_state:Pk,ra_aclGroup_read_object:Wk,ra_aclGroup_read_state:Rk,ra_aclGroup_write_object:Jk,ra_aclGroup_write_state:Bk,ra_aclOwner_read_object:Fk,ra_aclOwner_read_state:Gk,ra_aclOwner_write_object:Hk,ra_aclOwner_write_state:Vk,ra_buttons:Zk,ra_changedFrom:Xk,ra_close:Kk,ra_create_boolean_state:qk,ra_create_channel:eY,ra_create_device:tY,ra_create_number_state:sY,ra_create_state:iY,ra_create_string_state:oY,ra_daysShortText:rY,ra_dow_Fr:MY,ra_dow_Mo:nY,ra_dow_Sa:aY,ra_dow_Su:cY,ra_dow_Th:uY,ra_dow_Tu:NY,ra_dow_We:lY,ra_expertMode:LY,ra_false:jY,ra_fileType_all:gY,ra_fileType_audio:TY,ra_fileType_code:yY,ra_fileType_images:DY,ra_fileType_txt:dY,ra_fileType_video:zY,"ra_fileType_video,":"Vidéo",ra_filter_customs:IY,ra_filter_customs_without:wY,ra_filter_func:CY,ra_filter_id:hY,ra_filter_name:AY,ra_filter_role:pY,ra_filter_room:mY,ra_filter_type:OY,"ra_import data from %s file":"Importer des données à partir du fichier %s",ra_invalidConfig:EY,ra_lastChange:_Y,ra_locally:SY,ra_month_Apr:xY,ra_month_Aug:fY,ra_month_Dec:kY,ra_month_Feb:YY,ra_month_Jan:QY,ra_month_Jul:UY,ra_month_Jun:vY,ra_month_Mai:bY,ra_month_Mar:$Y,ra_month_Nov:PY,ra_month_Oct:WY,ra_month_Sep:RY,ra_months_Apr:JY,ra_months_Aug:BY,ra_months_Dec:FY,ra_months_Feb:GY,ra_months_Jan:HY,ra_months_Jul:VY,ra_months_Jun:ZY,ra_months_Mai:XY,ra_months_Mar:KY,ra_months_Nov:qY,ra_months_Oct:eQ,ra_months_Sep:tQ,"ra_no confirm for 5 mins":"pas de confirmation pendant 5 minutes",ra_none:sQ,ra_object_changed_by:iQ,ra_object_changed_by_user:oQ,ra_otherConfig:rQ,ra_qualityCode:MQ,ra_repeat:nQ,ra_select_folder_hint:aQ,ra_show_all:cQ,ra_state_changed_by:uQ,ra_state_changed_from:NQ,ra_timestamp:lQ,ra_tooltip_ack:LQ,ra_tooltip_comment:jQ,ra_tooltip_copyState:gQ,ra_tooltip_ctrlForLink:TQ,ra_tooltip_customConfig:yQ,ra_tooltip_deleteObject:DQ,ra_tooltip_editObject:dQ,ra_tooltip_editState:zQ,ra_tooltip_expire:IQ,ra_tooltip_from:wQ,ra_tooltip_lc:CQ,ra_tooltip_quality:hQ,ra_tooltip_ts:AQ,ra_tooltip_user:pQ,ra_tooltip_value:mQ,ra_true:OQ,"ra_use seconds":"utiliser les secondes",ra_val:EQ,"ra_via internet":"par Internet",ra_warning_every_minute:_Q,ra_warning_every_second:SQ,sc_cron:xQ,sc_date:fQ,sc_dates:kQ,sc_dow:YQ,sc_dows:QQ,sc_every:UQ,sc_everyN_dates:vQ,sc_everyN_dow:bQ,sc_everyN_dows:$Q,sc_everyN_hours:PQ,sc_everyN_minutes:WQ,sc_everyN_months:RQ,sc_everyN_seconds:JQ,sc_every_dates:BQ,sc_every_dow:FQ,sc_every_dows:GQ,sc_every_hours:HQ,sc_every_minutes:VQ,sc_every_months:ZQ,sc_every_seconds:XQ,sc_from:KQ,sc_hours:qQ,sc_interval:eU,sc_intervalBetween:tU,sc_invalid_cron:sU,sc_minutes:iU,sc_months:oU,sc_once:rU,sc_period:MU,sc_seconds:nU,sc_simple:aU,sc_specific:cU,sc_specific_dates:uU,sc_specific_dow:NU,sc_specific_dows:lU,sc_specific_hours:LU,sc_specific_minutes:jU,sc_specific_months:gU,sc_specific_seconds:TU,sc_time:yU,sc_to:DU,sc_wizard:dU,sch_all:zU,sch_astroDay:IU,sch_astroNight:wU,sch_astro_dawn:CU,sch_astro_dusk:hU,sch_astro_goldenHour:AU,sch_astro_goldenHourEnd:pU,sch_astro_nadir:mU,sch_astro_nauticalDawn:OU,sch_astro_nauticalDusk:EU,sch_astro_night:_U,sch_astro_nightEnd:SU,sch_astro_solarNoon:xU,sch_astro_sunrise:fU,sch_astro_sunriseEnd:kU,sch_astro_sunset:YU,sch_astro_sunsetStart:QU,sch_at:UU,sch_desc_atTime:vU,sch_desc_everyDay:bU,sch_desc_everyHour:$U,sch_desc_everyMinute:PU,sch_desc_everyMonth:WU,sch_desc_everyNDay:RU,sch_desc_everyNHours:JU,sch_desc_everyNMinutes:BU,sch_desc_everyNMonths:FU,sch_desc_everyNWeeks:GU,sch_desc_everyNYears:HU,sch_desc_everyWeek:VU,sch_desc_everyYear:ZU,sch_desc_intervalFromTo:XU,sch_desc_never:KU,sch_desc_onDate:qU,sch_desc_onDates:ev,sch_desc_onEveryDate:tv,sch_desc_onMonth:sv,sch_desc_onMonths:iv,sch_desc_onWeekday:ov,sch_desc_onWeekdays:rv,sch_desc_onWeekends:Mv,sch_desc_onWorkdays:nv,sch_desc_onceInPast:av,sch_desc_once_on:cv,sch_desc_validFrom:uv,sch_desc_validFromTo:Nv,sch_desc_validTo:lv,sch_every:Lv,sch_exactTime:jv,sch_from:gv,sch_fromTo:Tv,sch_intervalTime:yv,sch_invert:Dv,sch_no_one:dv,sch_on:zv,sch_period:Iv,sch_periodDaily:wv,sch_periodDates:Cv,sch_periodDay:hv,sch_periodEvery:Av,sch_periodEveryDay:pv,sch_periodEveryMonth:mv,sch_periodEveryWeek:Ov,sch_periodEveryYear:Ev,sch_periodHours:_v,sch_periodMinutes:Sv,sch_periodMonth:xv,sch_periodMonthly:fv,sch_periodOnce:kv,sch_periodSpecificMonths:Yv,sch_periodWeek:Qv,sch_periodWeekdays:Uv,sch_periodWeekend:vv,sch_periodWeekly:bv,sch_periodWorkdays:$v,sch_periodYear:Pv,sch_periodYearly:Wv,sch_specificTime:Rv,sch_time:Jv,sch_to:Bv,sch_valid:Fv,sch_validFrom:Gv,sch_validTo:Hv,sch_wholeDay:Vv,sch_yearEveryMonth:Zv},Kv="Azioni",qv="Aggiungere",eb="Annulla",tb="Categorie",sb="Controllato",ib="Elimina",ob="Vicino",rb="Commerciale",Mb="Configura",nb="Collegato",ab="Continuare",cb="Copiato",ub="Creare",Nb="Raccolto",lb="Delete",Lb="Elimina",jb="Scartare",gb="Disconnesso",Tb="Errore",yb="Filtro",Db="Venerdì",db="Latitudine",zb="Esci",Ib="Longitudine",wb="Messaggio",Cb="Lunedi",hb="Nome",Ab="Oggetti",pb="Ok",mb="Prodotto",Ob="Rinomina/Sposta/Copia",Eb="Ripetere",_b="Sostituire",Sb="Radice",xb="Sabato",fb="Salva",kb="Selezionato",Yb="stati",Qb="Domenica",Ub="Giovedì",vb="Timestamp",bb="Martedì",$b="Aggiornare",Pb="Valido fino a",Wb="Valore",Rb="Versione",Jb="Mercoledì",Bb="Larghezza",Fb="SÌ",Gb="diverso",Hb="Tutti possono leggere gli oggetti",Vb="Tutti possono leggere lo stato",Zb="Tutti possono scrivere oggetti",Xb="Tutti possono scrivere stato",Kb="Il gruppo può leggere l'oggetto",qb="Il gruppo può leggere lo stato",e8="Il gruppo può scrivere l'oggetto",t8="Il gruppo può scrivere lo stato",s8="Il proprietario può leggere l'oggetto",i8="Il proprietario può leggere lo stato",o8="Il proprietario può scrivere l'oggetto",r8="Il proprietario può scrivere lo stato",M8="Bottoni",n8="Cambiato da",a8="vicino",c8="Crea uno stato booleano",u8="Crea canale",N8="Crea dispositivo",l8="Crea lo stato del numero",L8="Crea stato",j8="Crea lo stato della stringa",g8="g.",T8="fr",y8="momento",D8="Sa",d8="su",z8="th",I8="Tu",w8="Noi",C8="Modalità esperto",h8="FALSO",A8="Tutti i files",p8="Audio",m8="Codice/JSON",O8="immagini",E8="Testo",_8="video",S8="impostazioni",x8="senza",f8="Funzione",k8="ID",Y8="Nome",Q8="Ruolo",U8="Camera",v8="genere",b8="Impostazioni non valide",$8="Ultima modifica",P8="localmente",W8="apr",R8="agosto",J8="Dic",B8="febbraio",F8="gen",G8="lug",H8="giu",V8="Mai",Z8="marzo",X8="nov",K8="ottobre",q8="Sett",e6="apr",t6="agosto",s6="Dic",i6="febbraio",o6="gen",r6="lug",M6="giu",n6="Mai",a6="marzo",c6="nov",u6="ottobre",N6="Sett",l6="nessuna",L6="Oggetto modificato da",j6="L'oggetto è stato modificato l'ultima volta alle",g6="Impostazioni dall'altro adattatore %s",T6="Codice di qualità",y6="ripetere",D6='Per selezionare la cartella, basta tenere premuto il tasto "shift" facendo clic sulla cartella.',d6="Mostra tutto",z6="Stato cambiato da",I6="Oggetto cambiato da",w6="Timestamp",C6="Bandiera riconosciuta",h6="Commento",A6="Copia il valore dello stato",p6="Tieni premuto il tasto Cltr/⌘ per aprire il collegamento",m6="Impostazioni personalizzate",O6="Elimina oggetto",E6="Modifica oggetto",_6="Modifica il valore dello stato",S6="Scade tra",x6="A partire dal",f6="Ultima modifica",k6="Qualità",Y6="Data e ora",Q6="Utente",U6="Valore",v6="VERO",b6="Valore",$6="Attenzione: il processo CRON verrà eseguito ogni minuto durante il periodo specificato!",P6="Attenzione: il processo CRON verrà eseguito ogni secondo durante il periodo specificato!",W6="CRON",R6="Data",J6="Date",B6="Giorno",F6="Giorno della settimana",G6="Ogni",H6="ogni N giorni",V6="ogni Nesimo giorno della settimana",Z6="ogni N giorno della settimana",X6="ogni N ore",K6="ogni N minuti",q6="ogni N mesi",e9="ogni N secondi",t9="ogni giorno",s9="Tutti i giorni della settimana",i9="Tutti i giorni della settimana",o9="ogni ora",r9="ogni minuto",M9="ogni mese",n9="ogni secondo",a9="A partire dal",c9="Ore",u9="Intervallo",N9="Intervallo tra",l9="CRON non valido",L9="Minuti",j9="mesi",g9="Una volta",T9="Periodo",y9="secondi",D9="Semplice",d9="Orario preciso",z9="date specifiche",I9="giorno/i specifico/i della settimana",w9="giorno specifico delle settimane",C9="orari specifici",h9="minuti specifici",A9="mesi specifici",p9="secondi specifici",m9="Tempo",O9="Per",E9="procedura guidata",_9="tutti",S9="Astro day",x9="Astro night",f9="Alba",k9="Crepuscolo",Y9="Ora d'oro",Q9="Fine dell'ora d'oro",U9="Nadir",v9="Alba nautica",b9="Crepuscolo nautico",$9="Notte",P9="Fine della notte",W9="Mezzogiorno solare",R9="Alba",J9="Fine dell'alba",B9="Tramonto",F9="Inizio del tramonto",G9="a",H9="a %s",V9="ogni giorno",Z9="ogni ora",X9="ogni minuto",K9="ogni mese",q9="ogni %s giorno",e7="ogni %s ore",t7="ogni %s minuti",s7="ogni %s mesi",i7="ogni %s settimane",o7="ogni %s anni",r7="ogni settimana",M7="ogni anno",n7="da %s a %s",a7="mai",c7="su %s di %s",u7="su %s e %s di",N7="in ogni data di",l7="%s",L7="%s e %s",j7="su %s",g7="su %s e %s",T7="nei finesettimana",y7="nei giorni lavorativi",D7="non verrà più eseguito, perché start è nel passato",d7="su %s",z7="da %s",I7="Eseguire da a",w7="a %s",C7="ogni",h7="Orario preciso",A7="a partire dal",p7="Da A",m7="Intervallo di tempo",O7="invertire",E7="nessuna",_7="sopra",S7="Periodo",x7="Quotidiano",f7="Date",k7="Giorno",Y7="Ogni",Q7="Ogni giorno",U7="Ogni mese",v7="Ogni settimana",b7="Ogni anno",$7="Ore",P7="Minuti",W7="mese",R7="Mensile",J7="Una volta",B7="Mesi specifici",F7="Settimana",G7="Giorni della settimana",H7="Fine settimana",V7="settimanalmente",Z7="giorni feriali",X7="Anno",K7="Annuale",q7="Orario preciso",e$="Tempo",t$="per",s$="Valido",i$="a partire dal",o$="per",r$="Giorno intero",M$="ogni mese",n$={"ra_%s links from aliases":"%s link da alias","ra_%s object(s) processed":"%s oggetti elaborati","ra_%s was imported":"%s è stato importato","ra_Accept license":"Accetta licenza",ra_Actions:Kv,"ra_Add new child object to selected parent":"Aggiungi un nuovo oggetto figlio al genitore selezionato","ra_Add objects tree from JSON file":"Aggiungi l'albero degli oggetti dal file JSON","ra_Add row":"Aggiungi riga","ra_Advanced options":"Opzioni avanzate","ra_All items are filtered out":"Tutti gli elementi vengono filtrati","ra_All objects":"Tutti gli oggetti",ra_Append:qv,"ra_Append %s entries or replace existing?":"Aggiungi %s voci o sostituisci quelle esistenti?","ra_Append or replace?":"Aggiungere o sostituire?","ra_Are you sure?":"Sei sicuro?","ra_Auto (no custom columns)":"Auto (nessuna colonna personalizzata)","ra_Back to %s":"Torna a %s","ra_Background image":"Immagine di sfondo",ra_Cancel:eb,"ra_Cannot add items with set filter":"Impossibile aggiungere elementi con il filtro impostato","ra_Cannot decode license":"Impossibile decodificare la licenza","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser",'ra_Cannot find "%s"':'Impossibile trovare "%s"','ra_Cannot read "%s"':'Impossibile leggere "%s"',"ra_Cannot read licenses: %s":"Impossibile leggere le licenze: %s","ra_Cannot retrieve options, as instance is offline":"Impossibile recuperare le opzioni, poiché l'istanza è offline","ra_Cannot update attribute, because not found in the object":"Impossibile aggiornare l'attributo, perché non trovato nell'oggetto","ra_Cannot upload":"Impossibile caricare",ra_Categories:tb,"ra_Chained certificate":"Certificato incatenato","ra_Change color theme":"Cambia tema colore","ra_Changed from":"Cambiato da","ra_Channel → State":"Canale → Stato","ra_Check license":"Controlla la licenza",ra_Checked:sb,ra_Clear:ib,"ra_Clear filter":"Filtro pulito","ra_Clear icon":"Cancella icona","ra_Clone current row":"Clona riga corrente",ra_Close:ob,"ra_Collapse all nodes":"Comprimi tutti i nodi","ra_Collapse one step node":"Comprimi un livello",ra_Commercial:rb,ra_Configure:Mb,"ra_Configure visible columns":"Configura colonne visibili","ra_Confirm deletion of %s":"Conferma l'eliminazione di %s",ra_Connected:nb,ra_Continue:ab,ra_Copied:cb,"ra_Copied %s":'"%s" copiato',"ra_Copy content":"Copia contenuto",ra_Create:ub,"ra_Create alias":"Crea alias","ra_Create folder":"Creare una cartella","ra_Create new folder in %s":"Crea nuova cartella in %s",ra_Crop:Nb,"ra_Define CRON...":"Definisci CRON...","ra_Define functions":"Definire le funzioni","ra_Define rooms":"Definisci le stanze","ra_Define schedule":"Definisci programma","ra_Define schedule...":"Definisci pianificazione ...",ra_Del:lb,ra_Delete:Lb,"ra_Delete current row":"Elimina la riga corrente","ra_Deselect all":"Deseleziona tutto","ra_Device → Channel → State":"Dispositivo → Canale → Stato",ra_Discard:jb,ra_Disconnected:gb,"ra_Do not ask for next 2 hours in this session":"Non chiedere per le prossime 2 ore in questa sessione","ra_Do not export values of states":"Non esportare i valori degli stati","ra_Do not use let's encrypt":"Non utilizzare crittografiamo","ra_Double click to reset table layout":"Fare doppio clic per ripristinare il layout della tabella","ra_Drag 'n' drop some files here, or click to select files":"Trascina e rilascia alcuni file qui o fai clic per selezionare i file","ra_Drop file here":"Trascina il file qui","ra_Drop the files here...":"Trascina qui il file...","ra_Duplicate name":"Nome duplicato","ra_Edit ACL":"Modifica ACL","ra_Edit alias":"Modifica alias","ra_Edit custom config":"Modifica configurazione personalizzata","ra_Edit full path":"Modifica percorso completo","ra_Edit function":"Funzione di modifica","ra_Edit object field":"Modifica campo oggetto","ra_Edit role":"Modifica ruolo","ra_Edit room":"Modifica stanza","ra_Edit value":"Modifica valore","ra_Enter the code from that page here":"Inserisci qui il codice da quella pagina",ra_Error:Tb,"ra_Expand all nodes":"Espandi tutti i nodi","ra_Expand one step node":"Espandi un livello","ra_Export data to %s file":"Esporta i dati nel file %s","ra_Failed to open JSON File":"Impossibile aprire il file JSON","ra_Fallback custom certificates":"Certificati personalizzati di fallback","ra_File is too big. Max %sk allowed. Try use SVG.":"Il file è troppo grande. Max %sk consentito. Prova a usare SVG.",ra_Filter:yb,"ra_Filter and Data Actions":"Azioni sui filtri e sui dati","ra_Filter files":"Filtra i file","ra_Folder name":"Nome della cartella","ra_Folder → Channel → State":"Cartella → Canale → Stato","ra_Folder → Device → Channel → State":"Cartella → Dispositivo → Canale → Stato","ra_Folder → State":"Cartella → Stato","ra_Folders always first":"Le cartelle sono sempre al primo posto",ra_Friday:Db,"ra_Get %s access":"Ottieni l'accesso %s","ra_Good luck":"Buona fortuna","ra_Hide empty folders":"Nascondi cartelle vuote","ra_If no file will be created in the folder, it will disappear after the browser closed":"Se nessun file verrà creato nella cartella, scomparirà dopo la chiusura del browser","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL","ra_Import data from %s file":"Importa i dati dal file %s","ra_Import from %s":"Importa da %s","ra_Instance %s is alive":"Il %s dell'istanza è vivo","ra_Instance %s is not alive":"Il TESTO dell'istanza non è vivo","ra_Instance is not alive":"L'istanza non è viva","ra_Invalid CRON":"CRON non valido","ra_Invalid JSON":"JSON non valido","ra_Invalid answer from server":"Risposta non valida dal server","ra_Invalid parent folder!":"Cartella principale non valida!","ra_Invalid structure":"Struttura non valida","ra_JSON editor":"Editor JSON","ra_Last change":"Ultima modifica",ra_Latitude:db,"ra_License %s":"Licenza %s","ra_License agreement":"Contratto di licenza","ra_License does not exist":"La licenza non esiste","ra_License expired on %s":"Licenza scaduta il %s",'ra_License for other product "%s"':'Licenza per altro prodotto "%s"',"ra_License is for version %s, but required version is %s.":"La licenza è per la versione %s, ma la versione richiesta è %s.","ra_License must be converted":"La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?","ra_Listen on all IPs":"Ascolta su tutti gli IP","ra_Load configuration from file":"Carica la configurazione dal file",ra_Logout:zb,ra_Longitude:Ib,'ra_May not trigger "updateLicenses"':'Potrebbe non attivare "updateLicenses"',ra_Message:wb,ra_Monday:Cb,"ra_Move down":"Abbassati","ra_Move up":"Andare avanti",ra_Name:hb,"ra_No data found in file":"Nessun dato trovato nel file","ra_No one license found in license manager":"Nessuna licenza trovata nel gestore delle licenze","ra_No response from the backend":"Nessuna risposta dal backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'I non esperti possono creare nuovi oggetti solo in "0_userdata.0" o "alias.0".',"ra_Not a number":"Non un numero",ra_Objects:Ab,ra_Ok:pb,"ra_On weekdays":"Nei giorni della settimana","ra_Only following structures of objects are available:":"Sono disponibili solo le seguenti strutture di oggetti:","ra_Only selected":"Solo selezionato","ra_Owner group":"Gruppo di proprietari","ra_Owner user":"Utente proprietario","ra_Passwords are not equal!":"Le password non sono uguali!","ra_Place your files here or click here to open the browse dialog":"Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia","ra_Please allow popups in your browser for this page!":"Si prega di abilitare i popup nel browser per questa pagina!","ra_Please confirm":"Si prega di confermare","ra_Please create license":"Si prega di creare la licenza","ra_Please enter the license":"Inserisci la licenza","ra_Please select file...":"Si prega di selezionare il file...","ra_Please select object ID...":"Seleziona l'ID oggetto ...","ra_Port could be used by %s":"La porta potrebbe essere utilizzata da %s","ra_Port is already used by %s":"La porta è già utilizzata da %s","ra_Press ENTER Key to add new item":"Premere il tasto INVIO per aggiungere un nuovo elemento","ra_Private certificate":"Certificato privato",ra_Product:mb,"ra_Public certificate":"Certificato pubblico","ra_Quality code":"Qualità","ra_Refresh tree":"Aggiorna l'albero","ra_Reload files":"Ricarica i file",ra_Rename_Move_Copy:Ob,"ra_Renew %s access":"Rinnova l'accesso %s",ra_Repeat:Eb,ra_Replace:_b,"ra_Request timed out":"Tempo scaduto per la richiesta","ra_Restrict to folder":"Limita alla cartella",ra_Root:Sb,ra_Saturday:xb,ra_Save:fb,"ra_Save and close":"Salva e chiudi","ra_Save configuration to file":"Salva la configurazione su file","ra_Save objects tree as JSON file":"Salva l'albero degli oggetti come file JSON","ra_Select all":"Seleziona tutto","ra_Select color":"Seleziona il colore","ra_Select predefined icon":"Seleziona l'icona predefinita","ra_Select type of export":"Seleziona il tipo di esportazione",ra_Selected:kb,"ra_Selected %s object(s)":"%s oggetto/i selezionato/i","ra_Serial number (UUID)":"Numero di serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sessione scadrà tra %s secondi. Continuare?","ra_Show all folders":"Mostra tutte le cartelle","ra_Show lines between rows":"Mostra linee tra le righe","ra_Show/Hide object descriptions":"Mostra/Nascondi le descrizioni degli oggetti","ra_Show/hide filter input":"Mostra/nascondi input filtro","ra_Some data are not stored. Discard?":"Alcuni dati non vengono memorizzati. Scartare?",ra_States:Yb,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.","ra_Suitable license not found in license manager":"Licenza adatta non trovata nel gestore delle licenze",ra_Sunday:Qb,"ra_Suppress question for next %s minutes":"Sopprimi la domanda per i prossimi %s minuti","ra_System language":"Linguaggio di sistema","ra_Take browser position":"Prendi posizione dal browser","ra_Take position from system settings":"Prendi posizione dalle impostazioni di sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Gli esperti possono creare oggetti ovunque ma dal secondo livello (es. "Vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"La pagina che stai cercando non è stata trovata","ra_The schedule will be executed every minute. Are you sure?":"La pianificazione verrà eseguita ogni minuto. Sei sicuro?","ra_The schedule will be executed every second. Are you sure?":"La pianificazione verrà eseguita ogni secondo. Sei sicuro?",ra_Thursday:Ub,ra_Timestamp:vb,"ra_Toggle expert mode":"Attiva / disattiva la modalità esperto","ra_Toggle the states view":"Attiva o disattiva la visualizzazione degli stati","ra_Toggle view mode":"Attiva / disattiva la modalità di visualizzazione","ra_Too big":"Troppo grande","ra_Too small":"Troppo piccolo","ra_Transparent dialog":"Finestra di dialogo trasparente",ra_Tuesday:bb,"ra_Unknown error":"Errore sconosciuto","ra_Unknown error!":"Errore sconosciuto!",ra_Update:$b,"ra_Upload file":"Caricare un file","ra_Use all available let's encrypt certificates":"Usa tutti i certificati Let's Encrypt disponibili","ra_Use iobroker.acme adapter for letsencrypt certificates":"Utilizzare l'adattatore iobroker.acme per i certificati letsencrypt","ra_Use system settings for position":"Usa le impostazioni di sistema per la posizione","ra_Used system settings":"Impostazioni di sistema utilizzate","ra_User files":"File utente",ra_ValidTill:Pb,ra_Value:Wb,ra_Version:Rb,"ra_View file":"Vedi il file","ra_View: %s":"Visualizza: %s",ra_Wednesday:Jb,ra_Width:Bb,ra_Yes:Fb,"ra_You can export all objects or just the selected branch.":"Puoi esportare tutti gli oggetti o solo il ramo selezionato.","ra_You can filter entries by entering here some text":"Puoi filtrare le voci inserendo qui del testo","ra_You can use * as wildcard":"Puoi usare * come carattere jolly",ra___different__:Gb,ra_aclEveryone_read_object:Hb,ra_aclEveryone_read_state:Vb,ra_aclEveryone_write_object:Zb,ra_aclEveryone_write_state:Xb,ra_aclGroup_read_object:Kb,ra_aclGroup_read_state:qb,ra_aclGroup_write_object:e8,ra_aclGroup_write_state:t8,ra_aclOwner_read_object:s8,ra_aclOwner_read_state:i8,ra_aclOwner_write_object:o8,ra_aclOwner_write_state:r8,ra_buttons:M8,ra_changedFrom:n8,ra_close:a8,ra_create_boolean_state:c8,ra_create_channel:u8,ra_create_device:N8,ra_create_number_state:l8,ra_create_state:L8,ra_create_string_state:j8,ra_daysShortText:g8,ra_dow_Fr:T8,ra_dow_Mo:y8,ra_dow_Sa:D8,ra_dow_Su:d8,ra_dow_Th:z8,ra_dow_Tu:I8,ra_dow_We:w8,ra_expertMode:C8,ra_false:h8,ra_fileType_all:A8,ra_fileType_audio:p8,ra_fileType_code:m8,ra_fileType_images:O8,ra_fileType_txt:E8,ra_fileType_video:_8,"ra_fileType_video,":"video",ra_filter_customs:S8,ra_filter_customs_without:x8,ra_filter_func:f8,ra_filter_id:k8,ra_filter_name:Y8,ra_filter_role:Q8,ra_filter_room:U8,ra_filter_type:v8,"ra_import data from %s file":"Importa dati dal file %s",ra_invalidConfig:b8,ra_lastChange:$8,ra_locally:P8,ra_month_Apr:W8,ra_month_Aug:R8,ra_month_Dec:J8,ra_month_Feb:B8,ra_month_Jan:F8,ra_month_Jul:G8,ra_month_Jun:H8,ra_month_Mai:V8,ra_month_Mar:Z8,ra_month_Nov:X8,ra_month_Oct:K8,ra_month_Sep:q8,ra_months_Apr:e6,ra_months_Aug:t6,ra_months_Dec:s6,ra_months_Feb:i6,ra_months_Jan:o6,ra_months_Jul:r6,ra_months_Jun:M6,ra_months_Mai:n6,ra_months_Mar:a6,ra_months_Nov:c6,ra_months_Oct:u6,ra_months_Sep:N6,"ra_no confirm for 5 mins":"nessuna conferma per 5 minuti",ra_none:l6,ra_object_changed_by:L6,ra_object_changed_by_user:j6,ra_otherConfig:g6,ra_qualityCode:T6,ra_repeat:y6,ra_select_folder_hint:D6,ra_show_all:d6,ra_state_changed_by:z6,ra_state_changed_from:I6,ra_timestamp:w6,ra_tooltip_ack:C6,ra_tooltip_comment:h6,ra_tooltip_copyState:A6,ra_tooltip_ctrlForLink:p6,ra_tooltip_customConfig:m6,ra_tooltip_deleteObject:O6,ra_tooltip_editObject:E6,ra_tooltip_editState:_6,ra_tooltip_expire:S6,ra_tooltip_from:x6,ra_tooltip_lc:f6,ra_tooltip_quality:k6,ra_tooltip_ts:Y6,ra_tooltip_user:Q6,ra_tooltip_value:U6,ra_true:v6,"ra_use seconds":"usa i secondi",ra_val:b6,"ra_via internet":"attraverso internet",ra_warning_every_minute:$6,ra_warning_every_second:P6,sc_cron:W6,sc_date:R6,sc_dates:J6,sc_dow:B6,sc_dows:F6,sc_every:G6,sc_everyN_dates:H6,sc_everyN_dow:V6,sc_everyN_dows:Z6,sc_everyN_hours:X6,sc_everyN_minutes:K6,sc_everyN_months:q6,sc_everyN_seconds:e9,sc_every_dates:t9,sc_every_dow:s9,sc_every_dows:i9,sc_every_hours:o9,sc_every_minutes:r9,sc_every_months:M9,sc_every_seconds:n9,sc_from:a9,sc_hours:c9,sc_interval:u9,sc_intervalBetween:N9,sc_invalid_cron:l9,sc_minutes:L9,sc_months:j9,sc_once:g9,sc_period:T9,sc_seconds:y9,sc_simple:D9,sc_specific:d9,sc_specific_dates:z9,sc_specific_dow:I9,sc_specific_dows:w9,sc_specific_hours:C9,sc_specific_minutes:h9,sc_specific_months:A9,sc_specific_seconds:p9,sc_time:m9,sc_to:O9,sc_wizard:E9,sch_all:_9,sch_astroDay:S9,sch_astroNight:x9,sch_astro_dawn:f9,sch_astro_dusk:k9,sch_astro_goldenHour:Y9,sch_astro_goldenHourEnd:Q9,sch_astro_nadir:U9,sch_astro_nauticalDawn:v9,sch_astro_nauticalDusk:b9,sch_astro_night:$9,sch_astro_nightEnd:P9,sch_astro_solarNoon:W9,sch_astro_sunrise:R9,sch_astro_sunriseEnd:J9,sch_astro_sunset:B9,sch_astro_sunsetStart:F9,sch_at:G9,sch_desc_atTime:H9,sch_desc_everyDay:V9,sch_desc_everyHour:Z9,sch_desc_everyMinute:X9,sch_desc_everyMonth:K9,sch_desc_everyNDay:q9,sch_desc_everyNHours:e7,sch_desc_everyNMinutes:t7,sch_desc_everyNMonths:s7,sch_desc_everyNWeeks:i7,sch_desc_everyNYears:o7,sch_desc_everyWeek:r7,sch_desc_everyYear:M7,sch_desc_intervalFromTo:n7,sch_desc_never:a7,sch_desc_onDate:c7,sch_desc_onDates:u7,sch_desc_onEveryDate:N7,sch_desc_onMonth:l7,sch_desc_onMonths:L7,sch_desc_onWeekday:j7,sch_desc_onWeekdays:g7,sch_desc_onWeekends:T7,sch_desc_onWorkdays:y7,sch_desc_onceInPast:D7,sch_desc_once_on:d7,sch_desc_validFrom:z7,sch_desc_validFromTo:I7,sch_desc_validTo:w7,sch_every:C7,sch_exactTime:h7,sch_from:A7,sch_fromTo:p7,sch_intervalTime:m7,sch_invert:O7,sch_no_one:E7,sch_on:_7,sch_period:S7,sch_periodDaily:x7,sch_periodDates:f7,sch_periodDay:k7,sch_periodEvery:Y7,sch_periodEveryDay:Q7,sch_periodEveryMonth:U7,sch_periodEveryWeek:v7,sch_periodEveryYear:b7,sch_periodHours:$7,sch_periodMinutes:P7,sch_periodMonth:W7,sch_periodMonthly:R7,sch_periodOnce:J7,sch_periodSpecificMonths:B7,sch_periodWeek:F7,sch_periodWeekdays:G7,sch_periodWeekend:H7,sch_periodWeekly:V7,sch_periodWorkdays:Z7,sch_periodYear:X7,sch_periodYearly:K7,sch_specificTime:q7,sch_time:e$,sch_to:t$,sch_valid:s$,sch_validFrom:i$,sch_validTo:o$,sch_wholeDay:r$,sch_yearEveryMonth:M$},a$="Comportamiento",c$="Adjuntar",u$="Cancelar",N$="Categorías",l$="Comprobado",L$="Borrar",j$="Cerca",g$="Comercial",T$="Configurar",y$="Conectado",D$="Continuar",d$="Copiado",z$="Crear",I$="Cultivo",w$="Delete",C$="Eliminar",h$="Desechar",A$="Desconectado",p$="Error",m$="Filtrar",O$="Viernes",E$="Latitud",_$="Cerrar sesión",S$="Longitud",x$="Mensaje",f$="Lunes",k$="Nombre",Y$="Objetos",Q$="Okay",U$="Producto",v$="Cambiar nombre/Mover/Copiar",b$="Repetir",$$="Reemplazar",P$="Raíz",W$="Sábado",R$="Salvar",J$="Seleccionado",B$="Estados",F$="Domingo",G$="Jueves",H$="Marca de tiempo",V$="Martes",Z$="Actualizar",X$="Válida hasta",K$="Valor",q$="Versión",eP="Miércoles",tP="Anchura",sP="Sí",iP="diferente",oP="Todo el mundo puede leer el objeto",rP="Todos pueden leer el estado",MP="Todos pueden escribir objetos",nP="Todos pueden escribir el estado",aP="El grupo puede leer el objeto",cP="El grupo puede leer el estado",uP="El grupo puede escribir un objeto",NP="El grupo puede escribir el estado",lP="El propietario puede leer el objeto",LP="El propietario puede leer el estado",jP="El propietario puede escribir el objeto",gP="El propietario puede escribir el estado",TP="Botones",yP="Cambiaron desde",DP="cerrar",dP="Crear estado booleano",zP="Crear canal",IP="Crear dispositivo",wP="Crear estado numérico",CP="Crear estado",hP="Crear estado de cadena",AP="d.",pP="Fr",mP="Mes",OP="Sa",EP="Su",_P="Th",SP="Tu",xP="Nosotros",fP="Modo experto",kP="FALSO",YP="Todos los archivos",QP="Audio",UP="Código/JSON",vP="Imágenes",bP="Texto",$P="Video",PP="Configuraciones",WP="sin",RP="Función",JP="ID",BP="Nombre",FP="Papel",GP="Habitación",HP="Tipo",VP="Configuraciones inválidas",ZP="Ultimo cambio",XP="en la zona",KP="Abr",qP="Ago",eW="Dic",tW="Feb",sW="Ene",iW="Jul",oW="Jun",rW="Mai",MW="Mar",nW="Nov",aW="Oct",cW="Sep",uW="Abr",NW="Ago",lW="Dic",LW="Feb",jW="Ene",gW="Jul",TW="Jun",yW="Mai",DW="Mar",dW="Nov",zW="Oct",IW="Sep",wW="ninguno",CW="Objeto cambiado por",hW="Objeto cambiado por última vez a las",AW="Configuraciones de otro adaptador %s",pW="Código de calidad",mW="repetir",OW='Para seleccionar la carpeta, simplemente mantenga presionada la tecla "shift" haciendo clic en la carpeta.',EW="Mostrar todo",_W="Estado cambiado por",SW="Objeto cambiado de",xW="Marca de tiempo",fW="Bandera reconocida",kW="Comentario",YW="Copie el valor del estado",QW="Mantenga presionada la tecla Cltr/⌘ para abrir el enlace",UW="Ajustes personalizados",vW="Eliminar objeto",bW="Editar objeto",$W="Edite el valor del estado",PW="Caduca en",WW="Desde",RW="Último cambio",JW="Calidad",BW="Sello de tiempo",FW="Usuario",GW="Valor",HW="VERDADERO",VW="Valor",ZW="Advertencia: ¡El trabajo CRON se ejecutará cada minuto durante el período especificado!",XW="Advertencia: ¡El trabajo CRON se ejecutará cada segundo durante el período especificado!",KW="CRON",qW="Fecha",eR="fechas",tR="Día",sR="Día de la semana",iR="Cada",oR="cada N días",rR="cada enésimo día de la semana",MR="cada N día de la semana",nR="cada N horas",aR="cada N minutos",cR="cada N meses",uR="cada N segundos",NR="cada día",lR="Cada día de la semana",LR="Cada día de la semana",jR="cada hora",gR="cada minuto",TR="cada mes",yR="cada segundo",DR="De",dR="Horas",zR="Intervalo",IR="Intervalo entre",wR="CRON no válido",CR="Minutos",hR="meses",AR="Una vez",pR="Período",mR="Segundos",OR="Sencillo",ER="Tiempo específico",_R="fechas especificas",SR="día(s) específico(s) de la semana",xR="día específico de semanas",fR="horas específicas",kR="minutos específicos",YR="meses específicos",QR="segundos específicos",UR="Hora",vR="A",bR="Mago",$R="todas",PR="Día astro",WR="Noche astro",RR="Amanecer",JR="Oscuridad",BR="hora dorada",FR="Fin de la hora dorada",GR="Nadir",HR="Amanecer náutico",VR="Anochecer náutico",ZR="Noche",XR="Fin de la noche",KR="Mediodía solar",qR="amanecer",eJ="Fin del amanecer",tJ="Puesta de sol",sJ="Puesta de sol",iJ="a",oJ="en %s",rJ="cada día",MJ="cada hora",nJ="cada minuto",aJ="cada mes",cJ="cada %s días",uJ="cada %s horas",NJ="cada %s minutos",lJ="cada %s meses",LJ="cada %s semanas",jJ="cada %s años",gJ="cada semana",TJ="todos los años",yJ="de %s a %s",DJ="Nunca",dJ="en %s de %s",zJ="en %s y %s de",IJ="en cada fecha de",wJ="%s",CJ="%s y %s",hJ="en %s",AJ="en %s y %s",pJ="en los fines de semana",mJ="en días laborables",OJ="ya no se ejecutará más, porque el inicio está en el pasado",EJ="en %s",_J="de %s",SJ="Ejecutar desde hasta",xJ="a %s",fJ="cada",kJ="Tiempo específico",YJ="de",QJ="De-a",UJ="Tiempo de intervalo",vJ="invertir; poner boca abajo o en la posición opuesta, orden o arreglo; Boca abajo",bJ="ninguna",$J="en",PJ="Período",WJ="Diario",RJ="fechas",JJ="Día",BJ="Cada",FJ="Cada día",GJ="Cada mes",HJ="Cada semana",VJ="Todos los años",ZJ="Horas",XJ="Minutos",KJ="mes",qJ="Mensual",eB="Una vez",tB="Meses específicos",sB="Semana",iB="Días laborables",oB="Fin de semana",rB="Semanal",MB="Días laborables",nB="Año",aB="Anual",cB="Tiempo específico",uB="Hora",NB="a",lB="Válido",LB="de",jB="a",gB="Todo el dia",TB="cada mes",yB={"ra_%s links from aliases":"%s enlaces de alias","ra_%s object(s) processed":"%s objeto(s) procesados","ra_%s was imported":"%s fue importado","ra_Accept license":"Aceptar licencia",ra_Actions:a$,"ra_Add new child object to selected parent":"Agregar nuevo objeto hijo al padre seleccionado","ra_Add objects tree from JSON file":"Agregar árbol de objetos desde el archivo JSON","ra_Add row":"Añadir fila","ra_Advanced options":"Opciones avanzadas","ra_All items are filtered out":"Todos los elementos se filtran","ra_All objects":"Todos los objetos",ra_Append:c$,"ra_Append %s entries or replace existing?":"¿Agregar %s entradas o reemplazar las existentes?","ra_Append or replace?":"¿Agregar o reemplazar?","ra_Are you sure?":"¿Estás seguro?","ra_Auto (no custom columns)":"Automático (sin columnas personalizadas)","ra_Back to %s":"Volver a %s","ra_Background image":"Imagen de fondo",ra_Cancel:u$,"ra_Cannot add items with set filter":"No se pueden agregar elementos con el filtro establecido","ra_Cannot decode license":"No se puede decodificar la licencia","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador",'ra_Cannot find "%s"':'No se puede encontrar "%s"','ra_Cannot read "%s"':'No se puede leer "%s"',"ra_Cannot read licenses: %s":"No se pueden leer licencias: %s","ra_Cannot retrieve options, as instance is offline":"No se pueden recuperar las opciones, ya que la instancia está fuera de línea","ra_Cannot update attribute, because not found in the object":"No se puede actualizar el atributo porque no se encuentra en el objeto","ra_Cannot upload":"no se puede cargar",ra_Categories:N$,"ra_Chained certificate":"certificado encadenado","ra_Change color theme":"Cambiar tema de color","ra_Changed from":"Cambiaron desde","ra_Channel → State":"Canal → Estado","ra_Check license":"Verificar licencia",ra_Checked:l$,ra_Clear:L$,"ra_Clear filter":"Filtro claro","ra_Clear icon":"Icono claro","ra_Clone current row":"Clonar fila actual",ra_Close:j$,"ra_Collapse all nodes":"Contraer todos los nodos","ra_Collapse one step node":"Contraer un nivel",ra_Commercial:g$,ra_Configure:T$,"ra_Configure visible columns":"Configurar columnas visibles","ra_Confirm deletion of %s":"Confirmar la eliminación de %s",ra_Connected:y$,ra_Continue:D$,ra_Copied:d$,"ra_Copied %s":'Copiado "%s"',"ra_Copy content":"Copiar contenido",ra_Create:z$,"ra_Create alias":"Crear alias","ra_Create folder":"Crear carpeta","ra_Create new folder in %s":"Crear nueva carpeta en %s",ra_Crop:I$,"ra_Define CRON...":"Definir CRON...","ra_Define functions":"Definir funciones","ra_Define rooms":"Definir habitaciones","ra_Define schedule":"Definir horario","ra_Define schedule...":"Definir horario ...",ra_Del:w$,ra_Delete:C$,"ra_Delete current row":"Eliminar fila actual","ra_Deselect all":"Deselecciona todo","ra_Device → Channel → State":"Dispositivo → Canal → Estado",ra_Discard:h$,ra_Disconnected:A$,"ra_Do not ask for next 2 hours in this session":"No preguntes por las siguientes 2 horas en esta sesión.","ra_Do not export values of states":"No exportar valores de estados.","ra_Do not use let's encrypt":"No use vamos a cifrar","ra_Double click to reset table layout":"Haga doble clic para restablecer el diseño de la tabla","ra_Drag 'n' drop some files here, or click to select files":"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar archivos","ra_Drop file here":"Suelta el archivo aquí","ra_Drop the files here...":"Suelta el archivo aquí ...","ra_Duplicate name":"Nombre duplicado","ra_Edit ACL":"Editar LCA","ra_Edit alias":"Editar alias","ra_Edit custom config":"Editar configuración personalizada","ra_Edit full path":"Editar ruta completa","ra_Edit function":"Función de edición","ra_Edit object field":"Editar campo de objeto","ra_Edit role":"Editar rol","ra_Edit room":"Cuarto de edición","ra_Edit value":"Editar valor","ra_Enter the code from that page here":"Introduzca el código de esa página aquí",ra_Error:p$,"ra_Expand all nodes":"Expandir todos los nodos","ra_Expand one step node":"Expandir un nivel","ra_Export data to %s file":"Exportar datos al archivo %s","ra_Failed to open JSON File":"No se pudo abrir el archivo JSON","ra_Fallback custom certificates":"Certificados personalizados alternativos","ra_File is too big. Max %sk allowed. Try use SVG.":"El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.",ra_Filter:m$,"ra_Filter and Data Actions":"Acciones de filtrado y datos","ra_Filter files":"Filtrar archivos","ra_Folder name":"Nombre de la carpeta","ra_Folder → Channel → State":"Carpeta → Canal → Estado","ra_Folder → Device → Channel → State":"Carpeta → Dispositivo → Canal → Estado","ra_Folder → State":"Carpeta → Estado","ra_Folders always first":"Carpetas siempre primero",ra_Friday:O$,"ra_Get %s access":"Obtener %s acceso","ra_Good luck":"Buena suerte","ra_Hide empty folders":"Ocultar carpetas vacías","ra_If no file will be created in the folder, it will disappear after the browser closed":"Si no se creará ningún archivo en la carpeta, desaparecerá después de que se cierre el navegador.","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL","ra_Import data from %s file":"Importar datos del archivo %s","ra_Import from %s":"Importar desde %s","ra_Instance %s is alive":"Instancia %s está vivo","ra_Instance %s is not alive":"Instancia %s no está vivo","ra_Instance is not alive":"La instancia no está viva","ra_Invalid CRON":"CRON no válido","ra_Invalid JSON":"JSON no válido","ra_Invalid answer from server":"Respuesta inválida del servidor","ra_Invalid parent folder!":"Carpeta principal no válida.","ra_Invalid structure":"Estructura inválida","ra_JSON editor":"editor JSON","ra_Last change":"Ultimo cambio",ra_Latitude:E$,"ra_License %s":"Licencia %s","ra_License agreement":"Acuerdo de licencia","ra_License does not exist":"La licencia no existe","ra_License expired on %s":"La licencia venció el %s",'ra_License for other product "%s"':'Licencia para otro producto "%s"',"ra_License is for version %s, but required version is %s.":"La licencia es para la versión %s, pero la versión requerida es %s.","ra_License must be converted":"La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?","ra_Listen on all IPs":"Escuche en todas las IP","ra_Load configuration from file":"Cargar configuración desde archivo",ra_Logout:_$,ra_Longitude:S$,'ra_May not trigger "updateLicenses"':'No puede activar "updateLicenses"',ra_Message:x$,ra_Monday:f$,"ra_Move down":"Mover hacia abajo","ra_Move up":"Ascender",ra_Name:k$,"ra_No data found in file":"No se encontraron datos en el archivo","ra_No one license found in license manager":"No se encontró ninguna licencia en el administrador de licencias","ra_No response from the backend":"No hay respuesta del backend",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':'Los no expertos pueden crear nuevos objetos solo en "0_userdata.0" o "alias.0".',"ra_Not a number":"No un número",ra_Objects:Y$,ra_Ok:Q$,"ra_On weekdays":"De lunes a viernes","ra_Only following structures of objects are available:":"Solo están disponibles las siguientes estructuras de objetos:","ra_Only selected":"Solo seleccionados","ra_Owner group":"Grupo propietario","ra_Owner user":"Usuario propietario","ra_Passwords are not equal!":"¡Las contraseñas no son iguales!","ra_Place your files here or click here to open the browse dialog":"Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración","ra_Please allow popups in your browser for this page!":"¡Permita ventanas emergentes en su navegador para esta página!","ra_Please confirm":"Por favor confirmar","ra_Please create license":"Por favor cree una licencia","ra_Please enter the license":"Por favor ingrese la licencia","ra_Please select file...":"Seleccione el archivo...","ra_Please select object ID...":"Por favor seleccione ID de objeto ...","ra_Port could be used by %s":"El puerto podría ser utilizado por %s","ra_Port is already used by %s":"El puerto ya está en uso por %s","ra_Press ENTER Key to add new item":"Presione la tecla ENTER para agregar un nuevo elemento","ra_Private certificate":"certificado privado",ra_Product:U$,"ra_Public certificate":"Certificado público","ra_Quality code":"Calidad","ra_Refresh tree":"Actualizar árbol","ra_Reload files":"Recargar archivos",ra_Rename_Move_Copy:v$,"ra_Renew %s access":"Renovar el acceso a %s",ra_Repeat:b$,ra_Replace:$$,"ra_Request timed out":"Tiempo de espera agotado","ra_Restrict to folder":"Restringir a carpeta",ra_Root:P$,ra_Saturday:W$,ra_Save:R$,"ra_Save and close":"Guardar y cerrar","ra_Save configuration to file":"Guardar configuración en archivo","ra_Save objects tree as JSON file":"Guardar el árbol de objetos como archivo JSON","ra_Select all":"Seleccionar todo","ra_Select color":"Seleccionar el color","ra_Select predefined icon":"Seleccionar icono predefinido","ra_Select type of export":"Seleccione tipo de exportación",ra_Selected:J$,"ra_Selected %s object(s)":"%s objetos seleccionados","ra_Serial number (UUID)":"Número de serie (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'El número de serie (UUID) "%s" en la licencia es para otro dispositivo.',"ra_Session will expire in %s seconds. Continue?":"La sesión expirará en %s segundos. ¿Continuar?","ra_Show all folders":"Mostrar todas las carpetas","ra_Show lines between rows":"Mostrar líneas entre filas","ra_Show/Hide object descriptions":"Mostrar/ocultar descripciones de objetos","ra_Show/hide filter input":"Mostrar/ocultar entrada de filtro","ra_Some data are not stored. Discard?":"Algunos datos no se almacenan. ¿Desechar?",ra_States:B$,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.","ra_Suitable license not found in license manager":"Licencia adecuada no encontrada en el administrador de licencias",ra_Sunday:F$,"ra_Suppress question for next %s minutes":"Suprimir pregunta durante los próximos %s minutos","ra_System language":"Lenguaje del sistema","ra_Take browser position":"Tomar posición desde el navegador","ra_Take position from system settings":"Tomar posición desde la configuración del sistema",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':'Los expertos pueden crear objetos en todas partes excepto desde el segundo nivel (por ejemplo, "vis.0" o "javascript.0").',"ra_The page you are looking for was not found":"No se encontró la página que busca","ra_The schedule will be executed every minute. Are you sure?":"El cronograma se ejecutará cada minuto. ¿Estás seguro?","ra_The schedule will be executed every second. Are you sure?":"El cronograma se ejecutará cada segundo. ¿Estás seguro?",ra_Thursday:G$,ra_Timestamp:H$,"ra_Toggle expert mode":"Alternar modo experto","ra_Toggle the states view":"Alternar la vista de estados","ra_Toggle view mode":"Alternar modo de vista","ra_Too big":"Demasiado grande","ra_Too small":"Demasiado pequeña","ra_Transparent dialog":"Diálogo transparente",ra_Tuesday:V$,"ra_Unknown error":"Error desconocido","ra_Unknown error!":"¡Error desconocido!",ra_Update:Z$,"ra_Upload file":"Subir archivo","ra_Use all available let's encrypt certificates":"Utilice todos los certificados let's encrypt disponibles","ra_Use iobroker.acme adapter for letsencrypt certificates":"Use el adaptador iobroker.acme para los certificados de letsencrypt","ra_Use system settings for position":"Usar la configuración del sistema para la posición","ra_Used system settings":"Configuraciones del sistema usadas","ra_User files":"Archivos de usuario",ra_ValidTill:X$,ra_Value:K$,ra_Version:q$,"ra_View file":"Ver archivo","ra_View: %s":"Ver: %s",ra_Wednesday:eP,ra_Width:tP,ra_Yes:sP,"ra_You can export all objects or just the selected branch.":"Puede exportar todos los objetos o solo la rama seleccionada.","ra_You can filter entries by entering here some text":"Puede filtrar las entradas ingresando aquí algún texto","ra_You can use * as wildcard":"Puedes utilizar * como comodín",ra___different__:iP,ra_aclEveryone_read_object:oP,ra_aclEveryone_read_state:rP,ra_aclEveryone_write_object:MP,ra_aclEveryone_write_state:nP,ra_aclGroup_read_object:aP,ra_aclGroup_read_state:cP,ra_aclGroup_write_object:uP,ra_aclGroup_write_state:NP,ra_aclOwner_read_object:lP,ra_aclOwner_read_state:LP,ra_aclOwner_write_object:jP,ra_aclOwner_write_state:gP,ra_buttons:TP,ra_changedFrom:yP,ra_close:DP,ra_create_boolean_state:dP,ra_create_channel:zP,ra_create_device:IP,ra_create_number_state:wP,ra_create_state:CP,ra_create_string_state:hP,ra_daysShortText:AP,ra_dow_Fr:pP,ra_dow_Mo:mP,ra_dow_Sa:OP,ra_dow_Su:EP,ra_dow_Th:_P,ra_dow_Tu:SP,ra_dow_We:xP,ra_expertMode:fP,ra_false:kP,ra_fileType_all:YP,ra_fileType_audio:QP,ra_fileType_code:UP,ra_fileType_images:vP,ra_fileType_txt:bP,ra_fileType_video:$P,"ra_fileType_video,":"Video",ra_filter_customs:PP,ra_filter_customs_without:WP,ra_filter_func:RP,ra_filter_id:JP,ra_filter_name:BP,ra_filter_role:FP,ra_filter_room:GP,ra_filter_type:HP,"ra_import data from %s file":"Importar datos del archivo %s",ra_invalidConfig:VP,ra_lastChange:ZP,ra_locally:XP,ra_month_Apr:KP,ra_month_Aug:qP,ra_month_Dec:eW,ra_month_Feb:tW,ra_month_Jan:sW,ra_month_Jul:iW,ra_month_Jun:oW,ra_month_Mai:rW,ra_month_Mar:MW,ra_month_Nov:nW,ra_month_Oct:aW,ra_month_Sep:cW,ra_months_Apr:uW,ra_months_Aug:NW,ra_months_Dec:lW,ra_months_Feb:LW,ra_months_Jan:jW,ra_months_Jul:gW,ra_months_Jun:TW,ra_months_Mai:yW,ra_months_Mar:DW,ra_months_Nov:dW,ra_months_Oct:zW,ra_months_Sep:IW,"ra_no confirm for 5 mins":"Sin confirmación durante 5 minutos",ra_none:wW,ra_object_changed_by:CW,ra_object_changed_by_user:hW,ra_otherConfig:AW,ra_qualityCode:pW,ra_repeat:mW,ra_select_folder_hint:OW,ra_show_all:EW,ra_state_changed_by:_W,ra_state_changed_from:SW,ra_timestamp:xW,ra_tooltip_ack:fW,ra_tooltip_comment:kW,ra_tooltip_copyState:YW,ra_tooltip_ctrlForLink:QW,ra_tooltip_customConfig:UW,ra_tooltip_deleteObject:vW,ra_tooltip_editObject:bW,ra_tooltip_editState:$W,ra_tooltip_expire:PW,ra_tooltip_from:WW,ra_tooltip_lc:RW,ra_tooltip_quality:JW,ra_tooltip_ts:BW,ra_tooltip_user:FW,ra_tooltip_value:GW,ra_true:HW,"ra_use seconds":"usar segundos",ra_val:VW,"ra_via internet":"vía Internet",ra_warning_every_minute:ZW,ra_warning_every_second:XW,sc_cron:KW,sc_date:qW,sc_dates:eR,sc_dow:tR,sc_dows:sR,sc_every:iR,sc_everyN_dates:oR,sc_everyN_dow:rR,sc_everyN_dows:MR,sc_everyN_hours:nR,sc_everyN_minutes:aR,sc_everyN_months:cR,sc_everyN_seconds:uR,sc_every_dates:NR,sc_every_dow:lR,sc_every_dows:LR,sc_every_hours:jR,sc_every_minutes:gR,sc_every_months:TR,sc_every_seconds:yR,sc_from:DR,sc_hours:dR,sc_interval:zR,sc_intervalBetween:IR,sc_invalid_cron:wR,sc_minutes:CR,sc_months:hR,sc_once:AR,sc_period:pR,sc_seconds:mR,sc_simple:OR,sc_specific:ER,sc_specific_dates:_R,sc_specific_dow:SR,sc_specific_dows:xR,sc_specific_hours:fR,sc_specific_minutes:kR,sc_specific_months:YR,sc_specific_seconds:QR,sc_time:UR,sc_to:vR,sc_wizard:bR,sch_all:$R,sch_astroDay:PR,sch_astroNight:WR,sch_astro_dawn:RR,sch_astro_dusk:JR,sch_astro_goldenHour:BR,sch_astro_goldenHourEnd:FR,sch_astro_nadir:GR,sch_astro_nauticalDawn:HR,sch_astro_nauticalDusk:VR,sch_astro_night:ZR,sch_astro_nightEnd:XR,sch_astro_solarNoon:KR,sch_astro_sunrise:qR,sch_astro_sunriseEnd:eJ,sch_astro_sunset:tJ,sch_astro_sunsetStart:sJ,sch_at:iJ,sch_desc_atTime:oJ,sch_desc_everyDay:rJ,sch_desc_everyHour:MJ,sch_desc_everyMinute:nJ,sch_desc_everyMonth:aJ,sch_desc_everyNDay:cJ,sch_desc_everyNHours:uJ,sch_desc_everyNMinutes:NJ,sch_desc_everyNMonths:lJ,sch_desc_everyNWeeks:LJ,sch_desc_everyNYears:jJ,sch_desc_everyWeek:gJ,sch_desc_everyYear:TJ,sch_desc_intervalFromTo:yJ,sch_desc_never:DJ,sch_desc_onDate:dJ,sch_desc_onDates:zJ,sch_desc_onEveryDate:IJ,sch_desc_onMonth:wJ,sch_desc_onMonths:CJ,sch_desc_onWeekday:hJ,sch_desc_onWeekdays:AJ,sch_desc_onWeekends:pJ,sch_desc_onWorkdays:mJ,sch_desc_onceInPast:OJ,sch_desc_once_on:EJ,sch_desc_validFrom:_J,sch_desc_validFromTo:SJ,sch_desc_validTo:xJ,sch_every:fJ,sch_exactTime:kJ,sch_from:YJ,sch_fromTo:QJ,sch_intervalTime:UJ,sch_invert:vJ,sch_no_one:bJ,sch_on:$J,sch_period:PJ,sch_periodDaily:WJ,sch_periodDates:RJ,sch_periodDay:JJ,sch_periodEvery:BJ,sch_periodEveryDay:FJ,sch_periodEveryMonth:GJ,sch_periodEveryWeek:HJ,sch_periodEveryYear:VJ,sch_periodHours:ZJ,sch_periodMinutes:XJ,sch_periodMonth:KJ,sch_periodMonthly:qJ,sch_periodOnce:eB,sch_periodSpecificMonths:tB,sch_periodWeek:sB,sch_periodWeekdays:iB,sch_periodWeekend:oB,sch_periodWeekly:rB,sch_periodWorkdays:MB,sch_periodYear:nB,sch_periodYearly:aB,sch_specificTime:cB,sch_time:uB,sch_to:NB,sch_valid:lB,sch_validFrom:LB,sch_validTo:jB,sch_wholeDay:gB,sch_yearEveryMonth:TB},DB="Akcje",dB="Dodać",zB="Anuluj",IB="Kategorie",wB="Sprawdzony",CB="Kasować",hB="Blisko",AB="Handlowy",pB="Konfiguruj",mB="Połączony",OB="Kontynuować",EB="Skopiowano",_B="Stwórz",SB="Przyciąć",xB="Delete",fB="Usunąć",kB="Wyrzucać",YB="Niepowiązany",QB="Błąd",UB="Filtr",vB="Piątek",bB="Szerokość",$B="Wyloguj",PB="Długość geograficzna",WB="Wiadomość",RB="Poniedziałek",JB="Nazwa",BB="Obiekty",FB="Dobrze",GB="Produkt",HB="Zmień nazwę/Przenieś/Kopiuj",VB="Powtarzać",ZB="Zastępować",XB="Korzeń",KB="Sobota",qB="Zapisać",eF="Wybrany",tF="Stany",sF="Niedziela",iF="Czwartek",oF="Znak czasu",rF="Wtorek",MF="Aktualizacja",nF="Obowiązuje do",aF="Wartość",cF="Wersja",uF="Środa",NF="Szerokość",lF="Tak",LF="różne",jF="Każdy może czytać obiekt",gF="Każdy może czytać stan",TF="Każdy może pisać przedmiot",yF="Każdy może pisać stan",DF="Grupa może odczytać obiekt",dF="Grupa może odczytać stan",zF="Grupa może pisać obiekt",IF="Grupa może pisać stan",wF="Właściciel może czytać obiekt",CF="Właściciel może odczytać stan",hF="Właściciel może napisać obiekt",AF="Właściciel może pisać stan",pF="guziki",mF="Zmieniony z",OF="blisko",EF="Utwórz stan logiczny",_F="Utwórz kanał",SF="Utwórz urządzenie",xF="Utwórz stan liczbowy",fF="Utwórz stan",kF="Utwórz stan ciągu",YF="d.",QF="Ks",UF="Mo",vF="Sa",bF="Su",$F="Th",PF="Tu",WF="My",RF="Tryb ekspercki",JF="FAŁSZ",BF="Wszystkie pliki",FF="Audio",GF="Kod/JSON",HF="Obrazy",VF="Tekst",ZF="Wideo",XF="Ustawienia",KF="bez",qF="Funkcjonować",eG="ID",tG="Imię",sG="Rola",iG="Sala",oG="Rodzaj",rG="Nieprawidłowe ustawienia",MG="Ostatnia zmiana",nG="lokalnie",aG="kwiecień",cG="sierpień",uG="grudzień",NG="luty",lG="styczeń",LG="lipiec",jG="czerwiec",gG="Mai",TG="Zniszczyć",yG="listopad",DG="październik",dG="wrzesień",zG="kwiecień",IG="sierpień",wG="grudzień",CG="luty",hG="styczeń",AG="lipiec",pG="czerwiec",mG="Mai",OG="Zniszczyć",EG="listopad",_G="październik",SG="wrzesień",xG="Żaden",fG="Obiekt zmieniony przez",kG="Obiekt ostatnio zmieniony o godz",YG="Ustawienia z innego adaptera %s",QG="Kod jakości",UG="powtarzać",vG="Aby wybrać folder, wystarczy przytrzymać klawisz „shift”, klikając folder.",bG="Pokaż wszystko",$G="Stan zmieniony przez",PG="Obiekt zmieniony z",WG="Znak czasu",RG="Potwierdzon",JG="Komentarz",BG="Skopiuj wartość stanu",FG="Przytrzymaj klawisz CTRL/⌘, aby otworzyć link",GG="Własne ustawienia",HG="Usuń obiekt",VG="Edytuj obiekt",ZG="Edytuj wartość stanu",XG="Wygasa za",KG="Z",qG="Ostatnia zmiana",eH="Jakość",tH="Znak czasu",sH="Użytkownik",iH="Wartość",oH="PRAWDA",rH="Wartość",MH="Ostrzeżenie: Zadanie CRON będzie uruchamiane co minutę w określonym przedziale czasowym!",nH="Ostrzeżenie: Zadanie CRON będzie uruchamiane co sekundę w określonym przedziale czasowym!",aH="CRON",cH="Data",uH="Daktyle",NH="Dzień",lH="Dzień tygodnia",LH="Każdy",jH="co N dni",gH="w każdy N-ty dzień tygodnia",TH="co N dnia tygodnia",yH="co N godzin",DH="co N minut",dH="co N miesięcy",zH="co N sekund",IH="codziennie",wH="każdy dzień tygodnia",CH="każdy dzień tygodnia",hH="co godzinę",AH="każda minuta",pH="każdego miesiąca",mH="każda sekunda",OH="Od",EH="godziny",_H="Interwał",SH="Interwał między",xH="Nieprawidłowy CRON",fH="Minuty",kH="miesięcy",YH="Pewnego razu",QH="Kropka",UH="sekundy",vH="Prosty",bH="Określony czas",$H="konkretne daty",PH="określone dni tygodnia",WH="określony dzień tygodni",RH="określone godziny",JH="określone minuty",BH="określone miesiące",FH="określone sekundy",GH="Czas",HH="Do",VH="Czarodziej",ZH="wszystko",XH="Dzień Astro",KH="Noc Astro",qH="Świt",eV="Zmierzch",tV="złota godzina",sV="Koniec złotej godziny",iV="Nadir",oV="Morski świt",rV="Morski zmierzch",MV="Noc",nV="Koniec nocy",aV="Południe słoneczne",cV="wschód słońca",uV="Koniec wschodu słońca",NV="Zachód słońca",lV="Początek zachodu słońca",LV="w",jV="na %s",gV="codziennie",TV="co godzinę",yV="każda minuta",DV="każdego miesiąca",dV="każdego dnia %s",zV="co %s godzin",IV="co %s minut",wV="co %s miesięcy",CV="co %s tygodni",hV="co %s lat",AV="co tydzień",pV="każdego roku",mV="od %s do %s",OV="nigdy",EV="na %s z %s",_V="na %s i %s z",SV="w każdą datę",xV="%s",fV="%s i %s",kV="na %s",YV="na %s i %s",QV="w weekendy",UV="w dni robocze",vV="nie będzie już wykonywany, ponieważ start jest w przeszłości",bV="na %s",$V="z %s",PV="Wykonaj od do",WV="do %s",RV="każdy",JV="Określony czas",BV="od",FV="Od-do",GV="Czas przerwy",HV="odwracać",VV="Żaden",ZV="na",XV="Kropka",KV="Codziennie",qV="Daktyle",eZ="Dzień",tZ="Każdy",sZ="Codziennie",iZ="Każdego miesiąca",oZ="Co tydzień",rZ="Każdego roku",MZ="godziny",nZ="Minuty",aZ="miesiąc",cZ="Miesięczny",uZ="Pewnego razu",NZ="Określone miesiące",lZ="Tydzień",LZ="Dni powszednie",jZ="Weekend",gZ="Co tydzień",TZ="Dni robocze",yZ="Rok",DZ="Rocznie",dZ="Określony czas",zZ="Czas",IZ="do",wZ="Ważny",CZ="od",hZ="do",AZ="Cały dzień",pZ="każdego miesiąca",mZ={"ra_%s links from aliases":"%s linków z aliasów","ra_%s object(s) processed":"Przetworzono %s obiektów","ra_%s was imported":"%s został zaimportowany","ra_Accept license":"Zaakceptuj licencję",ra_Actions:DB,"ra_Add new child object to selected parent":"Dodaj nowy obiekt potomny do wybranego rodzica","ra_Add objects tree from JSON file":"Dodaj drzewo obiektów z pliku JSON","ra_Add row":"Dodaj wiersz","ra_Advanced options":"Zaawansowane opcje","ra_All items are filtered out":"Wszystkie pozycje są odfiltrowane","ra_All objects":"Wszystkie obiekty",ra_Append:dB,"ra_Append %s entries or replace existing?":"Dołączyć wpisy %s czy zastąpić istniejące?","ra_Append or replace?":"Dołączyć czy zastąpić?","ra_Are you sure?":"Jesteś pewny?","ra_Auto (no custom columns)":"Auto (bez kolumn niestandardowych)","ra_Back to %s":"Powrót do %s","ra_Background image":"Zdjęcie w tle",ra_Cancel:zB,"ra_Cannot add items with set filter":"Nie można dodać elementów z ustawionym filtrem","ra_Cannot decode license":"Nie można zdekodować licencji","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce",'ra_Cannot find "%s"':"Nie można znaleźć „%s”",'ra_Cannot read "%s"':"Nie można odczytać „%s”","ra_Cannot read licenses: %s":"Nie można odczytać licencji: %s","ra_Cannot retrieve options, as instance is offline":"Nie można pobrać opcji, ponieważ instancja jest w trybie offline","ra_Cannot update attribute, because not found in the object":"Nie można zaktualizować atrybutu, ponieważ nie znaleziono go w obiekcie","ra_Cannot upload":"Nie można przesłać",ra_Categories:IB,"ra_Chained certificate":"Certyfikat łańcuchowy","ra_Change color theme":"Zmień motyw kolorystyczny","ra_Changed from":"Zmieniony z","ra_Channel → State":"Kanał → Stan","ra_Check license":"Sprawdź licencję",ra_Checked:wB,ra_Clear:CB,"ra_Clear filter":"Czysty filtr","ra_Clear icon":"Wyczyść ikonę","ra_Clone current row":"Sklonuj bieżący wiersz",ra_Close:hB,"ra_Collapse all nodes":"Zwiń wszystkie węzły","ra_Collapse one step node":"Zwiń o jeden poziom",ra_Commercial:AB,ra_Configure:pB,"ra_Configure visible columns":"Skonfiguruj widoczne kolumny","ra_Confirm deletion of %s":"Potwierdź usunięcie %s",ra_Connected:mB,ra_Continue:OB,ra_Copied:EB,"ra_Copied %s":'Skopiowano "%s"',"ra_Copy content":"Kopiuj zawartość",ra_Create:_B,"ra_Create alias":"Utwórz alias","ra_Create folder":"Utwórz folder","ra_Create new folder in %s":"Utwórz nowy folder w %s",ra_Crop:SB,"ra_Define CRON...":"Zdefiniuj CRON...","ra_Define functions":"Zdefiniuj funkcje","ra_Define rooms":"Zdefiniuj pokoje","ra_Define schedule":"Zdefiniuj harmonogram","ra_Define schedule...":"Zdefiniuj harmonogram ...",ra_Del:xB,ra_Delete:fB,"ra_Delete current row":"Usuń bieżący wiersz","ra_Deselect all":"Odznacz wszystko","ra_Device → Channel → State":"Urządzenie → Kanał → Stan",ra_Discard:kB,ra_Disconnected:YB,"ra_Do not ask for next 2 hours in this session":"Nie proś o kolejne 2 godziny w tej sesji","ra_Do not export values of states":"Nie eksportuj wartości stanów","ra_Do not use let's encrypt":"Nie używaj zaszyfrujmy","ra_Double click to reset table layout":"Kliknij dwukrotnie, aby zresetować układ tabeli","ra_Drag 'n' drop some files here, or click to select files":"Przeciągnij i upuść kilka plików tutaj lub kliknij, aby wybrać pliki","ra_Drop file here":"Upuść plik tutaj","ra_Drop the files here...":"Upuść plik tutaj...","ra_Duplicate name":"Zduplikowana nazwa","ra_Edit ACL":"Edytuj listy ACL","ra_Edit alias":"Edytuj alias","ra_Edit custom config":"Edytuj konfigurację niestandardową","ra_Edit full path":"Edytuj pełną ścieżkę","ra_Edit function":"Funkcja edycji","ra_Edit object field":"Edytuj pole obiektu","ra_Edit role":"Edytuj rolę","ra_Edit room":"Edytuj pokój","ra_Edit value":"Edytuj wartość","ra_Enter the code from that page here":"Wpisz kod z tej strony tutaj",ra_Error:QB,"ra_Expand all nodes":"Rozwiń wszystkie węzły","ra_Expand one step node":"Rozwiń o jeden poziom","ra_Export data to %s file":"Eksportuj dane do pliku %s","ra_Failed to open JSON File":"Nie udało się otworzyć pliku JSON","ra_Fallback custom certificates":"Niestandardowe certyfikaty zastępcze","ra_File is too big. Max %sk allowed. Try use SVG.":"Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.",ra_Filter:UB,"ra_Filter and Data Actions":"Akcje filtrów i danych","ra_Filter files":"Filtruj pliki","ra_Folder name":"Nazwa folderu","ra_Folder → Channel → State":"Folder → Kanał → Stan","ra_Folder → Device → Channel → State":"Folder → Urządzenie → Kanał → Stan","ra_Folder → State":"Folder → Stan","ra_Folders always first":"Foldery zawsze na pierwszym miejscu",ra_Friday:vB,"ra_Get %s access":"Uzyskaj dostęp %s","ra_Good luck":"Powodzenia","ra_Hide empty folders":"Ukryj puste foldery","ra_If no file will be created in the folder, it will disappear after the browser closed":"Jeśli w folderze nie zostanie utworzony żaden plik, zniknie on po zamknięciu przeglądarki","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL","ra_Import data from %s file":"Importuj dane z pliku %s","ra_Import from %s":"Importuj z %s","ra_Instance %s is alive":"Instancja %s jest aktywna","ra_Instance %s is not alive":"Instancja TEKST nie jest aktywna","ra_Instance is not alive":"Instancja nie jest aktywna","ra_Invalid CRON":"Nieprawidłowy CRON","ra_Invalid JSON":"Nieprawidłowy JSON","ra_Invalid answer from server":"Nieprawidłowa odpowiedź z serwera","ra_Invalid parent folder!":"Nieprawidłowy folder nadrzędny!","ra_Invalid structure":"Nieprawidłowa struktura","ra_JSON editor":"Edytor JSON","ra_Last change":"Ostatnia zmiana",ra_Latitude:bB,"ra_License %s":"Licencja %s","ra_License agreement":"Umowa licencyjna","ra_License does not exist":"Licencja nie istnieje","ra_License expired on %s":"Licencja wygasła w dniu %s",'ra_License for other product "%s"':"Licencja na inny produkt „%s”","ra_License is for version %s, but required version is %s.":"Licencja dotyczy wersji %s, ale wymagana wersja to %s.","ra_License must be converted":"Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?","ra_Listen on all IPs":"Słuchaj na wszystkich adresach IP","ra_Load configuration from file":"Załaduj konfigurację z pliku",ra_Logout:$B,ra_Longitude:PB,'ra_May not trigger "updateLicenses"':"Może nie uruchamiać „updateLicenses”",ra_Message:WB,ra_Monday:RB,"ra_Move down":"Padnij","ra_Move up":"Podnieść",ra_Name:JB,"ra_No data found in file":"Nie znaleziono danych w pliku","ra_No one license found in license manager":"Nie znaleziono licencji w menedżerze licencji","ra_No response from the backend":"Brak odpowiedzi z zaplecza",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Osoby nie będące ekspertami mogą tworzyć nowe obiekty tylko w „0_userdata.0” lub „alias.0”.","ra_Not a number":"Nie numer",ra_Objects:BB,ra_Ok:FB,"ra_On weekdays":"W dni powszednie","ra_Only following structures of objects are available:":"Dostępne są tylko następujące struktury obiektów:","ra_Only selected":"Tylko wybrane","ra_Owner group":"Grupa właścicieli","ra_Owner user":"Właściciel użytkownika","ra_Passwords are not equal!":"Hasła nie są równe!","ra_Place your files here or click here to open the browse dialog":"Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania","ra_Please allow popups in your browser for this page!":"Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!","ra_Please confirm":"Proszę potwierdzić","ra_Please create license":"Utwórz licencję","ra_Please enter the license":"Proszę wprowadzić licencję","ra_Please select file...":"Wybierz plik...","ra_Please select object ID...":"Wybierz identyfikator obiektu ...","ra_Port could be used by %s":"Port może być używany przez %s","ra_Port is already used by %s":"Port jest już używany przez %s","ra_Press ENTER Key to add new item":"Naciśnij klawisz ENTER, aby dodać nowy element","ra_Private certificate":"Prywatny certyfikat",ra_Product:GB,"ra_Public certificate":"Certyfikat publiczny","ra_Quality code":"Jakości","ra_Refresh tree":"Odśwież drzewo","ra_Reload files":"Załaduj ponownie pliki",ra_Rename_Move_Copy:HB,"ra_Renew %s access":"Odnów dostęp %s",ra_Repeat:VB,ra_Replace:ZB,"ra_Request timed out":"Upłynął limit czasu żądania","ra_Restrict to folder":"Ogranicz do folderu",ra_Root:XB,ra_Saturday:KB,ra_Save:qB,"ra_Save and close":"Zapisz i zamknij","ra_Save configuration to file":"Zapisz konfigurację do pliku","ra_Save objects tree as JSON file":"Zapisz drzewo obiektów jako plik JSON","ra_Select all":"Zaznacz wszystko","ra_Select color":"Wybierz kolor","ra_Select predefined icon":"Wybierz predefiniowaną ikonę","ra_Select type of export":"Wybierz rodzaj eksportu",ra_Selected:eF,"ra_Selected %s object(s)":"Wybrane obiekty %s","ra_Serial number (UUID)":"Numer seryjny (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.","ra_Session will expire in %s seconds. Continue?":"Sesja wygaśnie za %s sekund. Kontynuować?","ra_Show all folders":"Pokaż wszystkie foldery","ra_Show lines between rows":"Pokaż linie między rzędami","ra_Show/Hide object descriptions":"Pokaż/ukryj opisy obiektów","ra_Show/hide filter input":"Pokaż/ukryj wejście filtra","ra_Some data are not stored. Discard?":"Niektóre dane nie są przechowywane. Wyrzucać?",ra_States:tF,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.","ra_Suitable license not found in license manager":"Nie znaleziono odpowiedniej licencji w menedżerze licencji",ra_Sunday:sF,"ra_Suppress question for next %s minutes":"Ukryj pytanie przez następne %s minut","ra_System language":"Język systemu","ra_Take browser position":"Zajmij pozycję z przeglądarki","ra_Take position from system settings":"Zajmij pozycję z ustawień systemowych",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Eksperci mogą tworzyć obiekty wszędzie poza drugim poziomem (np. „Vis.0” lub „javascript.0”).","ra_The page you are looking for was not found":"Strona, której szukasz nie została znaleziona","ra_The schedule will be executed every minute. Are you sure?":"Harmonogram będzie wykonywany co minutę. Czy jesteś pewien?","ra_The schedule will be executed every second. Are you sure?":"Harmonogram będzie wykonywany co sekundę. Czy jesteś pewien?",ra_Thursday:iF,ra_Timestamp:oF,"ra_Toggle expert mode":"Przełącz tryb eksperta","ra_Toggle the states view":"Przełącz widok stanów","ra_Toggle view mode":"Przełącz tryb widoku","ra_Too big":"Za duży","ra_Too small":"Za mały","ra_Transparent dialog":"Przejrzyste okno dialogowe",ra_Tuesday:rF,"ra_Unknown error":"Nieznany błąd","ra_Unknown error!":"Nieznany błąd!",ra_Update:MF,"ra_Upload file":"Przesyłanie pliku","ra_Use all available let's encrypt certificates":"Użyj wszystkich dostępnych certyfikatów Let's Encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Użyj adaptera iobroker.acme dla certyfikatów letsencrypt","ra_Use system settings for position":"Użyj ustawień systemowych dla pozycji","ra_Used system settings":"Używane ustawienia systemowe","ra_User files":"Pliki użytkownika",ra_ValidTill:nF,ra_Value:aF,ra_Version:cF,"ra_View file":"Zobaczyć plik","ra_View: %s":"Widok: %s",ra_Wednesday:uF,ra_Width:NF,ra_Yes:lF,"ra_You can export all objects or just the selected branch.":"Możesz wyeksportować wszystkie obiekty lub tylko wybraną gałąź.","ra_You can filter entries by entering here some text":"Możesz filtrować wpisy, wpisując tutaj jakiś tekst","ra_You can use * as wildcard":"Możesz użyć * jako symbolu wieloznacznego",ra___different__:LF,ra_aclEveryone_read_object:jF,ra_aclEveryone_read_state:gF,ra_aclEveryone_write_object:TF,ra_aclEveryone_write_state:yF,ra_aclGroup_read_object:DF,ra_aclGroup_read_state:dF,ra_aclGroup_write_object:zF,ra_aclGroup_write_state:IF,ra_aclOwner_read_object:wF,ra_aclOwner_read_state:CF,ra_aclOwner_write_object:hF,ra_aclOwner_write_state:AF,ra_buttons:pF,ra_changedFrom:mF,ra_close:OF,ra_create_boolean_state:EF,ra_create_channel:_F,ra_create_device:SF,ra_create_number_state:xF,ra_create_state:fF,ra_create_string_state:kF,ra_daysShortText:YF,ra_dow_Fr:QF,ra_dow_Mo:UF,ra_dow_Sa:vF,ra_dow_Su:bF,ra_dow_Th:$F,ra_dow_Tu:PF,ra_dow_We:WF,ra_expertMode:RF,ra_false:JF,ra_fileType_all:BF,ra_fileType_audio:FF,ra_fileType_code:GF,ra_fileType_images:HF,ra_fileType_txt:VF,ra_fileType_video:ZF,"ra_fileType_video,":"Wideo",ra_filter_customs:XF,ra_filter_customs_without:KF,ra_filter_func:qF,ra_filter_id:eG,ra_filter_name:tG,ra_filter_role:sG,ra_filter_room:iG,ra_filter_type:oG,"ra_import data from %s file":"Importuj dane z pliku %s",ra_invalidConfig:rG,ra_lastChange:MG,ra_locally:nG,ra_month_Apr:aG,ra_month_Aug:cG,ra_month_Dec:uG,ra_month_Feb:NG,ra_month_Jan:lG,ra_month_Jul:LG,ra_month_Jun:jG,ra_month_Mai:gG,ra_month_Mar:TG,ra_month_Nov:yG,ra_month_Oct:DG,ra_month_Sep:dG,ra_months_Apr:zG,ra_months_Aug:IG,ra_months_Dec:wG,ra_months_Feb:CG,ra_months_Jan:hG,ra_months_Jul:AG,ra_months_Jun:pG,ra_months_Mai:mG,ra_months_Mar:OG,ra_months_Nov:EG,ra_months_Oct:_G,ra_months_Sep:SG,"ra_no confirm for 5 mins":"brak potwierdzenia przez 5 minut",ra_none:xG,ra_object_changed_by:fG,ra_object_changed_by_user:kG,ra_otherConfig:YG,ra_qualityCode:QG,ra_repeat:UG,ra_select_folder_hint:vG,ra_show_all:bG,ra_state_changed_by:$G,ra_state_changed_from:PG,ra_timestamp:WG,ra_tooltip_ack:RG,ra_tooltip_comment:JG,ra_tooltip_copyState:BG,ra_tooltip_ctrlForLink:FG,ra_tooltip_customConfig:GG,ra_tooltip_deleteObject:HG,ra_tooltip_editObject:VG,ra_tooltip_editState:ZG,ra_tooltip_expire:XG,ra_tooltip_from:KG,ra_tooltip_lc:qG,ra_tooltip_quality:eH,ra_tooltip_ts:tH,ra_tooltip_user:sH,ra_tooltip_value:iH,ra_true:oH,"ra_use seconds":"użyj sekund",ra_val:rH,"ra_via internet":"przez internet",ra_warning_every_minute:MH,ra_warning_every_second:nH,sc_cron:aH,sc_date:cH,sc_dates:uH,sc_dow:NH,sc_dows:lH,sc_every:LH,sc_everyN_dates:jH,sc_everyN_dow:gH,sc_everyN_dows:TH,sc_everyN_hours:yH,sc_everyN_minutes:DH,sc_everyN_months:dH,sc_everyN_seconds:zH,sc_every_dates:IH,sc_every_dow:wH,sc_every_dows:CH,sc_every_hours:hH,sc_every_minutes:AH,sc_every_months:pH,sc_every_seconds:mH,sc_from:OH,sc_hours:EH,sc_interval:_H,sc_intervalBetween:SH,sc_invalid_cron:xH,sc_minutes:fH,sc_months:kH,sc_once:YH,sc_period:QH,sc_seconds:UH,sc_simple:vH,sc_specific:bH,sc_specific_dates:$H,sc_specific_dow:PH,sc_specific_dows:WH,sc_specific_hours:RH,sc_specific_minutes:JH,sc_specific_months:BH,sc_specific_seconds:FH,sc_time:GH,sc_to:HH,sc_wizard:VH,sch_all:ZH,sch_astroDay:XH,sch_astroNight:KH,sch_astro_dawn:qH,sch_astro_dusk:eV,sch_astro_goldenHour:tV,sch_astro_goldenHourEnd:sV,sch_astro_nadir:iV,sch_astro_nauticalDawn:oV,sch_astro_nauticalDusk:rV,sch_astro_night:MV,sch_astro_nightEnd:nV,sch_astro_solarNoon:aV,sch_astro_sunrise:cV,sch_astro_sunriseEnd:uV,sch_astro_sunset:NV,sch_astro_sunsetStart:lV,sch_at:LV,sch_desc_atTime:jV,sch_desc_everyDay:gV,sch_desc_everyHour:TV,sch_desc_everyMinute:yV,sch_desc_everyMonth:DV,sch_desc_everyNDay:dV,sch_desc_everyNHours:zV,sch_desc_everyNMinutes:IV,sch_desc_everyNMonths:wV,sch_desc_everyNWeeks:CV,sch_desc_everyNYears:hV,sch_desc_everyWeek:AV,sch_desc_everyYear:pV,sch_desc_intervalFromTo:mV,sch_desc_never:OV,sch_desc_onDate:EV,sch_desc_onDates:_V,sch_desc_onEveryDate:SV,sch_desc_onMonth:xV,sch_desc_onMonths:fV,sch_desc_onWeekday:kV,sch_desc_onWeekdays:YV,sch_desc_onWeekends:QV,sch_desc_onWorkdays:UV,sch_desc_onceInPast:vV,sch_desc_once_on:bV,sch_desc_validFrom:$V,sch_desc_validFromTo:PV,sch_desc_validTo:WV,sch_every:RV,sch_exactTime:JV,sch_from:BV,sch_fromTo:FV,sch_intervalTime:GV,sch_invert:HV,sch_no_one:VV,sch_on:ZV,sch_period:XV,sch_periodDaily:KV,sch_periodDates:qV,sch_periodDay:eZ,sch_periodEvery:tZ,sch_periodEveryDay:sZ,sch_periodEveryMonth:iZ,sch_periodEveryWeek:oZ,sch_periodEveryYear:rZ,sch_periodHours:MZ,sch_periodMinutes:nZ,sch_periodMonth:aZ,sch_periodMonthly:cZ,sch_periodOnce:uZ,sch_periodSpecificMonths:NZ,sch_periodWeek:lZ,sch_periodWeekdays:LZ,sch_periodWeekend:jZ,sch_periodWeekly:gZ,sch_periodWorkdays:TZ,sch_periodYear:yZ,sch_periodYearly:DZ,sch_specificTime:dZ,sch_time:zZ,sch_to:IZ,sch_valid:wZ,sch_validFrom:CZ,sch_validTo:hZ,sch_wholeDay:AZ,sch_yearEveryMonth:pZ},OZ="Дії",EZ="Додайте",_Z="Скасувати",SZ="Категорії",xZ="Перевірено",fZ="Видалити",kZ="Закрити",YZ="Комерційний",QZ="Налаштувати",UZ="Підключено",vZ="Продовжити",bZ="Скопійовано",$Z="Створити",PZ="Урожай",WZ="Delete",RZ="Видалити",JZ="Відкинути",BZ="Відключено",FZ="Помилка",GZ="фільтр",HZ="П'ятниця",VZ="Широта",ZZ="Вийти",XZ="Довгота",KZ="повідомлення",qZ="понеділок",eX="Ім'я",tX="Об'єкти",sX="В порядку",iX="Продукт",oX="Перейменувати/Перемістити/Копіювати",rX="Повторіть",MX="Замінити",nX="Корінь",aX="Субота",cX="зберегти",uX="Вибране",NX="держави",lX="неділя",LX="четвер",jX="Мітка часу",gX="вівторок",TX="оновлення",yX="Дійсний до",DX="Значення",dX="Версія",zX="Середа",IX="Ширина",wX="Так",CX="інший",hX="Кожен може читати об'єкт",AX="Кожен може читати стан",pX="Кожен може написати об'єкт",mX="Кожен може написати стан",OX="Група може читати об'єкт",EX="Група може читати стан",_X="Група може писати об'єкт",SX="Група може писати стан",xX="Власник може читати об'єкт",fX="Власник може читати стан",kX="Власник може написати об'єкт",YX="Власник може написати стан",QX="кнопки",UX="Змінено з",vX="закрити",bX="Створіть логічний стан",$X="Створити канал",PX="Створити пристрій",WX="Створити номерний стан",RX="Створити состояние",JX="Створити рядковий стан",BX="днів",FX="О",GX="пн",HX="Sa",VX="Нд",ZX="чт",XX="вт",KX="ми",qX="Експертний режим",eK="НЕПРАВДА",tK="Всі файли",sK="Аудіо",iK="Код/JSON",oK="Зображення",rK="текст",MK="відео",nK="Налаштування",aK="без",cK="функція",uK="ID",NK="Ім'я",lK="Роль",LK="Кімната",jK="Тип",gK="Недійсні налаштування",TK="Остання зміна",yK="локально",DK="квіт",dK="серп",zK="груд",IK="лютий",wK="січня",CK="лип",hK="черв",AK="травень",pK="березень",mK="Листопад",OK="жовт",EK="вер",_K="квіт",SK="серп",xK="груд",fK="лютий",kK="січня",YK="лип",QK="черв",UK="травень",vK="березень",bK="Листопад",$K="жовт",PK="вер",WK="немає",RK="Об'єкт змінено",JK="Об'єкт востаннє змінено о",BK="Налаштування з іншого адаптера %s",FK="Код якості",GK="повторити",HK="Щоб вибрати папку, просто клацніть папку, утримуючи клавішу «Shift».",VK="Показати все",ZK="Стан змінено на",XK="Об'єкт змінено з",KK="Мітка часу",qK="Визнано",eq="коментар",tq="Скопіюйте значення стану",sq="Утримуйте клавішу Cltr/⌘, щоб відкрити посилання",iq="Спеціальні налаштування",oq="Видалити об'єкт",rq="Редагувати об'єкт",Mq="Відредагуйте значення стану",nq="Термін дії закінчується через",aq="Від",cq="Востаннє змінено",uq="якість",Nq="Позначка часу",lq="Користувач",Lq="Значення",jq="ПРАВДА",gq="Значення",Tq="Попередження: завдання CRON виконуватиметься щохвилини протягом зазначеного періоду!",yq="Попередження: завдання CRON виконуватиметься кожну секунду протягом зазначеного періоду!",Dq="CRON",dq="Дата",zq="дати",Iq="День",wq="День тижня",Cq="кожен",hq="кожні N днів",Aq="кожен N-й день тижня",pq="кожні N днів тижня",mq="кожні N годин",Oq="кожні N хвилин",Eq="кожні N місяців",_q="кожні N секунд",Sq="кожен день",xq="кожен день тижня",fq="кожен день тижня",kq="щогодини",Yq="кожну хвилину",Qq="щомісяця",Uq="кожна секунда",vq="Від",bq="години",$q="Інтервал",Pq="Інтервал між",Wq="Недійсний CRON",Rq="хвилин",Jq="місяців",Bq="Один раз",Fq="Крапка",Gq="секунд",Hq="просто",Vq="Конкретний час",Zq="конкретні дати",Xq="конкретний день (дні) тижня",Kq="конкретний день тижня",qq="конкретні години",eee="конкретні хвилини",tee="конкретні місяці",see="конкретні секунди",iee="час",oee="до",ree="майстер",Mee="все",nee="Астродень",aee="Астро ніч",cee="Світанок",uee="Сутінки",Nee="Золота година",lee="Кінець золотої години",Lee="Надір",jee="Морський світанок",gee="Морські сутінки",Tee="ніч",yee="Кінець ночі",Dee="Сонячний полудень",dee="Схід сонця",zee="Кінець сходу сонця",Iee="Захід сонця",wee="Початок заходу сонця",Cee="в",hee="в %s",Aee="кожен день",pee="щогодини",mee="кожну хвилину",Oee="щомісяця",Eee="кожен %s день",_ee="кожні %s годин",See="кожні %s хвилин",xee="кожні %s місяців",fee="кожні %s тижнів",kee="кожні %s років",Yee="щотижня",Qee="щороку",Uee="від %s до %s",vee="ніколи",bee="на %s з %s",$ee="на %s і %s з",Pee="на кожну дату",Wee="%s",Ree="%s і %s",Jee="на %s",Bee="на %s і %s",Fee="на вихідних",Gee="в робочі дні",Hee="більше не виконуватиметься, оскільки запуск у минулому",Vee="на %s",Zee="від %s",Xee="Виконати від до",Kee="до %s",qee="кожен",ete="Конкретний час",tte="від",ste="Від до",ite="Час інтервалу",ote="інвертувати",rte="немає",Mte="на",nte="Крапка",ate="Щодня",cte="дати",ute="День",Nte="кожен",lte="Кожен день",Lte="Щомісяця",jte="Щотижня",gte="Щороку",Tte="години",yte="хвилин",Dte="місяць",dte="Щомісяця",zte="Один раз",Ite="Конкретні місяці",wte="тиждень",Cte="будні",hte="Вихідні",Ate="Щотижня",pte="робочі дні",mte="рік",Ote="щорічно",Ete="Конкретний час",_te="час",Ste="до",xte="Дійсний",fte="від",kte="до",Yte="Цілий день",Qte="щомісяця",Ute={"ra_%s links from aliases":"%s посилань із псевдонімів","ra_%s object(s) processed":"Оброблено %s об’єктів","ra_%s was imported":"%s було імпортовано","ra_Accept license":"Прийняти ліцензію",ra_Actions:OZ,"ra_Add new child object to selected parent":"Додати новий дочірній об’єкт до вибраного батьківського","ra_Add objects tree from JSON file":"Додайте дерево об’єктів із файлу JSON","ra_Add row":"Додати рядок","ra_Advanced options":"Розширені опції","ra_All items are filtered out":"Усі елементи відфільтровано","ra_All objects":"Всі об'єкти",ra_Append:EZ,"ra_Append %s entries or replace existing?":"Додати %s записів чи замінити наявні?","ra_Append or replace?":"Додати чи замінити?","ra_Are you sure?":"Ти впевнений?","ra_Auto (no custom columns)":"Автоматично (без спеціальних стовпців)","ra_Back to %s":"Назад до %s","ra_Background image":"Фонове зображення",ra_Cancel:_Z,"ra_Cannot add items with set filter":"Неможливо додати елементи зі встановленим фільтром","ra_Cannot decode license":"Неможливо розшифрувати ліцензію","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері",'ra_Cannot find "%s"':'Не вдається знайти "%s"','ra_Cannot read "%s"':'Неможливо прочитати "%s"',"ra_Cannot read licenses: %s":"Неможливо прочитати ліцензії: %s","ra_Cannot retrieve options, as instance is offline":"Неможливо отримати параметри, оскільки екземпляр офлайн","ra_Cannot update attribute, because not found in the object":"Неможливо оновити атрибут, оскільки його не знайдено в об’єкті","ra_Cannot upload":"Неможливо завантажити",ra_Categories:SZ,"ra_Chained certificate":"Прикутий сертифікат","ra_Change color theme":"Змінити кольорову тему","ra_Changed from":"Змінено з","ra_Channel → State":"Канал → Стан","ra_Check license":"Перевірити ліцензію",ra_Checked:xZ,ra_Clear:fZ,"ra_Clear filter":"Очистити фільтр","ra_Clear icon":"Очистити значок","ra_Clone current row":"Клонувати поточний рядок",ra_Close:kZ,"ra_Collapse all nodes":"Згорнути всі вузли","ra_Collapse one step node":"Згорнути на один рівень",ra_Commercial:YZ,ra_Configure:QZ,"ra_Configure visible columns":"Налаштувати видимі стовпці","ra_Confirm deletion of %s":"Підтвердити видалення %s",ra_Connected:UZ,ra_Continue:vZ,ra_Copied:bZ,"ra_Copied %s":'Скопійовано "%s"',"ra_Copy content":"Скопіюйте вміст",ra_Create:$Z,"ra_Create alias":"Створити псевдонім","ra_Create folder":"Створити папку","ra_Create new folder in %s":"Створіть нову папку в %s",ra_Crop:PZ,"ra_Define CRON...":"Визначити CRON...","ra_Define functions":"Визначити функції","ra_Define rooms":"Визначте кімнати","ra_Define schedule":"Визначити розклад","ra_Define schedule...":"Визначити розклад...",ra_Del:WZ,ra_Delete:RZ,"ra_Delete current row":"Видалити поточний рядок","ra_Deselect all":"Скасувати вибір усіх","ra_Device → Channel → State":"Пристрій → Канал → Стан",ra_Discard:JZ,ra_Disconnected:BZ,"ra_Do not ask for next 2 hours in this session":"Не запитуйте про наступні 2 години цього сеансу","ra_Do not export values of states":"Не експортуйте значення станів","ra_Do not use let's encrypt":"Не використовуйте let's encrypt","ra_Double click to reset table layout":"Двічі клацніть, щоб скинути макет таблиці","ra_Drag 'n' drop some files here, or click to select files":"Перетягніть деякі файли сюди або натисніть, щоб вибрати файли","ra_Drop file here":"Перетягніть файл сюди","ra_Drop the files here...":"Перетягніть файл сюди...","ra_Duplicate name":"Повторюване ім'я","ra_Edit ACL":"Редагувати ACL","ra_Edit alias":"Редагувати псевдонім","ra_Edit custom config":"Редагувати спеціальну конфігурацію","ra_Edit full path":"Редагувати повний шлях","ra_Edit function":"функція редагування","ra_Edit object field":"Поле редагування об'єкта","ra_Edit role":"Редагувати роль","ra_Edit room":"Редагувати кімнату","ra_Edit value":"Редагувати значення","ra_Enter the code from that page here":"Введіть тут код з цієї сторінки",ra_Error:FZ,"ra_Expand all nodes":"Розгорнути всі вузли","ra_Expand one step node":"Розгорніть один рівень","ra_Export data to %s file":"Експортувати дані у файл %s","ra_Failed to open JSON File":"Не вдалося відкрити файл JSON","ra_Fallback custom certificates":"Запасні спеціальні сертифікати","ra_File is too big. Max %sk allowed. Try use SVG.":"Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.",ra_Filter:GZ,"ra_Filter and Data Actions":"Фільтр і дії з даними","ra_Filter files":"Фільтр файлів","ra_Folder name":"Назва папки","ra_Folder → Channel → State":"Папка → Канал → Стан","ra_Folder → Device → Channel → State":"Папка → Пристрій → Канал → Стан","ra_Folder → State":"Папка → Стан","ra_Folders always first":"Папки завжди першими",ra_Friday:HZ,"ra_Get %s access":"Отримайте доступ %s","ra_Good luck":"Удачі","ra_Hide empty folders":"Приховати порожні папки","ra_If no file will be created in the folder, it will disappear after the browser closed":"Якщо в папці не буде створено файл, він зникне після закриття браузера","ra_If the button above does not work, you can authorize manually this app by visiting this url":"Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням","ra_Import data from %s file":"Імпортувати дані з файлу %s","ra_Import from %s":"Імпортувати з %s","ra_Instance %s is alive":"Примірник %s живий","ra_Instance %s is not alive":"Примірник %s не живий","ra_Instance is not alive":"Примірник не живий","ra_Invalid CRON":"Недійсний CRON","ra_Invalid JSON":"Недійсний JSON","ra_Invalid answer from server":"Недійсна відповідь від сервера","ra_Invalid parent folder!":"Недійсна батьківська папка!","ra_Invalid structure":"Недійсна структура","ra_JSON editor":"Редактор JSON","ra_Last change":"Остання зміна",ra_Latitude:VZ,"ra_License %s":"Ліцензія %s","ra_License agreement":"Ліцензійна угода","ra_License does not exist":"Ліцензії не існує","ra_License expired on %s":"Термін дії ліцензії закінчився %s",'ra_License for other product "%s"':'Ліцензія на інший продукт "%s"',"ra_License is for version %s, but required version is %s.":"Ліцензія для версії %s, але потрібна версія %s.","ra_License must be converted":"Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?","ra_Listen on all IPs":"Прослуховування на всіх IP","ra_Load configuration from file":"Завантажити конфігурацію з файлу",ra_Logout:ZZ,ra_Longitude:XZ,'ra_May not trigger "updateLicenses"':'Може не запускати "updateLicenses"',ra_Message:KZ,ra_Monday:qZ,"ra_Move down":"Рухатися вниз","ra_Move up":"Рухатися вгору",ra_Name:eX,"ra_No data found in file":"Немає даних у файлі","ra_No one license found in license manager":"У менеджері ліцензій не знайдено жодної ліцензії","ra_No response from the backend":"Немає відповіді від сервера",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"Неексперти можуть створювати нові об’єкти лише в «0_userdata.0» або «alias.0».","ra_Not a number":"Не номер",ra_Objects:tX,ra_Ok:sX,"ra_On weekdays":"В будні дні","ra_Only following structures of objects are available:":"Доступні тільки такі структури об'єктів:","ra_Only selected":"Тільки обрані","ra_Owner group":"Група власників","ra_Owner user":"Користувач-власник","ra_Passwords are not equal!":"Паролі не бувають рівними!","ra_Place your files here or click here to open the browse dialog":"Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду","ra_Please allow popups in your browser for this page!":"Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!","ra_Please confirm":"Будь-ласка підтвердіть","ra_Please create license":"Будь ласка, створіть ліцензію","ra_Please enter the license":"Будь ласка, введіть ліцензію","ra_Please select file...":"Виберіть файл...","ra_Please select object ID...":"Виберіть ідентифікатор об'єкта...","ra_Port could be used by %s":"Порт може використовуватися %s","ra_Port is already used by %s":"Порт уже використовується %s","ra_Press ENTER Key to add new item":"Натисніть клавішу ENTER, щоб додати новий елемент","ra_Private certificate":"Приватний сертифікат",ra_Product:iX,"ra_Public certificate":"Публічний сертифікат","ra_Quality code":"якість","ra_Refresh tree":"Оновити дерево","ra_Reload files":"Перезавантажте файли",ra_Rename_Move_Copy:oX,"ra_Renew %s access":"Поновити доступ %s",ra_Repeat:rX,ra_Replace:MX,"ra_Request timed out":"Час запиту вичерпано","ra_Restrict to folder":"Обмежити папкою",ra_Root:nX,ra_Saturday:aX,ra_Save:cX,"ra_Save and close":"Зберегти та закрити","ra_Save configuration to file":"Зберегти конфігурацію у файл","ra_Save objects tree as JSON file":"Зберегти дерево об’єктів як файл JSON","ra_Select all":"Вибрати все","ra_Select color":"Виберіть колір","ra_Select predefined icon":"Виберіть попередньо визначений значок","ra_Select type of export":"Виберіть тип експорту",ra_Selected:uX,"ra_Selected %s object(s)":"Вибрані об’єкти %s","ra_Serial number (UUID)":"Серійний номер (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':'Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.',"ra_Session will expire in %s seconds. Continue?":"Сеанс закінчиться через %s секунд. Продовжити?","ra_Show all folders":"Показати всі папки","ra_Show lines between rows":"Показувати лінії між рядками","ra_Show/Hide object descriptions":"Показати/Сховати описи об’єктів","ra_Show/hide filter input":"Показати/сховати введення фільтра","ra_Some data are not stored. Discard?":"Деякі дані не зберігаються. Відкинути?",ra_States:NX,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.","ra_Suitable license not found in license manager":"Відповідна ліцензія не знайдена в менеджері ліцензій",ra_Sunday:lX,"ra_Suppress question for next %s minutes":"Приховати запитання на наступні %s хвилин","ra_System language":"Системна мова","ra_Take browser position":"Займіть позицію з браузера","ra_Take position from system settings":"Займіть позицію в налаштуваннях системи",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"Експерти можуть створювати об’єкти всюди, крім другого рівня (наприклад, «vis.0» або «javascript.0»).","ra_The page you are looking for was not found":"Сторінка, яку ви шукаєте, не знайдена","ra_The schedule will be executed every minute. Are you sure?":"Розклад буде виконуватися щохвилини. Ви впевнені?","ra_The schedule will be executed every second. Are you sure?":"Розклад буде виконуватися щосекунди. Ви впевнені?",ra_Thursday:LX,ra_Timestamp:jX,"ra_Toggle expert mode":"Перемкнути експертний режим","ra_Toggle the states view":"Перемкнути перегляд штатів","ra_Toggle view mode":"Перемкнути режим перегляду","ra_Too big":"Занадто великий","ra_Too small":"Занадто малий","ra_Transparent dialog":"Прозорий діалог",ra_Tuesday:gX,"ra_Unknown error":"Невідома помилка","ra_Unknown error!":"Невідома помилка!",ra_Update:TX,"ra_Upload file":"Завантажити файл","ra_Use all available let's encrypt certificates":"Використовуйте всі доступні сертифікати let's encrypt","ra_Use iobroker.acme adapter for letsencrypt certificates":"Використовуйте адаптер iobroker.acme для сертифікатів letsencrypt","ra_Use system settings for position":"Використовуйте системні налаштування для позиції","ra_Used system settings":"Використані системні налаштування","ra_User files":"Файли користувача",ra_ValidTill:yX,ra_Value:DX,ra_Version:dX,"ra_View file":"Переглянути файл","ra_View: %s":"Перегляд: %s",ra_Wednesday:zX,ra_Width:IX,ra_Yes:wX,"ra_You can export all objects or just the selected branch.":"Ви можете експортувати всі об’єкти або лише вибрану гілку.","ra_You can filter entries by entering here some text":"Ви можете фільтрувати записи, ввівши тут певний текст","ra_You can use * as wildcard":"Ви можете використовувати * як символ підстановки",ra___different__:CX,ra_aclEveryone_read_object:hX,ra_aclEveryone_read_state:AX,ra_aclEveryone_write_object:pX,ra_aclEveryone_write_state:mX,ra_aclGroup_read_object:OX,ra_aclGroup_read_state:EX,ra_aclGroup_write_object:_X,ra_aclGroup_write_state:SX,ra_aclOwner_read_object:xX,ra_aclOwner_read_state:fX,ra_aclOwner_write_object:kX,ra_aclOwner_write_state:YX,ra_buttons:QX,ra_changedFrom:UX,ra_close:vX,ra_create_boolean_state:bX,ra_create_channel:$X,ra_create_device:PX,ra_create_number_state:WX,ra_create_state:RX,ra_create_string_state:JX,ra_daysShortText:BX,ra_dow_Fr:FX,ra_dow_Mo:GX,ra_dow_Sa:HX,ra_dow_Su:VX,ra_dow_Th:ZX,ra_dow_Tu:XX,ra_dow_We:KX,ra_expertMode:qX,ra_false:eK,ra_fileType_all:tK,ra_fileType_audio:sK,ra_fileType_code:iK,ra_fileType_images:oK,ra_fileType_txt:rK,ra_fileType_video:MK,"ra_fileType_video,":"відео",ra_filter_customs:nK,ra_filter_customs_without:aK,ra_filter_func:cK,ra_filter_id:uK,ra_filter_name:NK,ra_filter_role:lK,ra_filter_room:LK,ra_filter_type:jK,"ra_import data from %s file":"Імпортувати дані з файлу %s",ra_invalidConfig:gK,ra_lastChange:TK,ra_locally:yK,ra_month_Apr:DK,ra_month_Aug:dK,ra_month_Dec:zK,ra_month_Feb:IK,ra_month_Jan:wK,ra_month_Jul:CK,ra_month_Jun:hK,ra_month_Mai:AK,ra_month_Mar:pK,ra_month_Nov:mK,ra_month_Oct:OK,ra_month_Sep:EK,ra_months_Apr:_K,ra_months_Aug:SK,ra_months_Dec:xK,ra_months_Feb:fK,ra_months_Jan:kK,ra_months_Jul:YK,ra_months_Jun:QK,ra_months_Mai:UK,ra_months_Mar:vK,ra_months_Nov:bK,ra_months_Oct:$K,ra_months_Sep:PK,"ra_no confirm for 5 mins":"без підтвердження протягом 5 хв",ra_none:WK,ra_object_changed_by:RK,ra_object_changed_by_user:JK,ra_otherConfig:BK,ra_qualityCode:FK,ra_repeat:GK,ra_select_folder_hint:HK,ra_show_all:VK,ra_state_changed_by:ZK,ra_state_changed_from:XK,ra_timestamp:KK,ra_tooltip_ack:qK,ra_tooltip_comment:eq,ra_tooltip_copyState:tq,ra_tooltip_ctrlForLink:sq,ra_tooltip_customConfig:iq,ra_tooltip_deleteObject:oq,ra_tooltip_editObject:rq,ra_tooltip_editState:Mq,ra_tooltip_expire:nq,ra_tooltip_from:aq,ra_tooltip_lc:cq,ra_tooltip_quality:uq,ra_tooltip_ts:Nq,ra_tooltip_user:lq,ra_tooltip_value:Lq,ra_true:jq,"ra_use seconds":"використовуйте секунди",ra_val:gq,"ra_via internet":"через інтернет",ra_warning_every_minute:Tq,ra_warning_every_second:yq,sc_cron:Dq,sc_date:dq,sc_dates:zq,sc_dow:Iq,sc_dows:wq,sc_every:Cq,sc_everyN_dates:hq,sc_everyN_dow:Aq,sc_everyN_dows:pq,sc_everyN_hours:mq,sc_everyN_minutes:Oq,sc_everyN_months:Eq,sc_everyN_seconds:_q,sc_every_dates:Sq,sc_every_dow:xq,sc_every_dows:fq,sc_every_hours:kq,sc_every_minutes:Yq,sc_every_months:Qq,sc_every_seconds:Uq,sc_from:vq,sc_hours:bq,sc_interval:$q,sc_intervalBetween:Pq,sc_invalid_cron:Wq,sc_minutes:Rq,sc_months:Jq,sc_once:Bq,sc_period:Fq,sc_seconds:Gq,sc_simple:Hq,sc_specific:Vq,sc_specific_dates:Zq,sc_specific_dow:Xq,sc_specific_dows:Kq,sc_specific_hours:qq,sc_specific_minutes:eee,sc_specific_months:tee,sc_specific_seconds:see,sc_time:iee,sc_to:oee,sc_wizard:ree,sch_all:Mee,sch_astroDay:nee,sch_astroNight:aee,sch_astro_dawn:cee,sch_astro_dusk:uee,sch_astro_goldenHour:Nee,sch_astro_goldenHourEnd:lee,sch_astro_nadir:Lee,sch_astro_nauticalDawn:jee,sch_astro_nauticalDusk:gee,sch_astro_night:Tee,sch_astro_nightEnd:yee,sch_astro_solarNoon:Dee,sch_astro_sunrise:dee,sch_astro_sunriseEnd:zee,sch_astro_sunset:Iee,sch_astro_sunsetStart:wee,sch_at:Cee,sch_desc_atTime:hee,sch_desc_everyDay:Aee,sch_desc_everyHour:pee,sch_desc_everyMinute:mee,sch_desc_everyMonth:Oee,sch_desc_everyNDay:Eee,sch_desc_everyNHours:_ee,sch_desc_everyNMinutes:See,sch_desc_everyNMonths:xee,sch_desc_everyNWeeks:fee,sch_desc_everyNYears:kee,sch_desc_everyWeek:Yee,sch_desc_everyYear:Qee,sch_desc_intervalFromTo:Uee,sch_desc_never:vee,sch_desc_onDate:bee,sch_desc_onDates:$ee,sch_desc_onEveryDate:Pee,sch_desc_onMonth:Wee,sch_desc_onMonths:Ree,sch_desc_onWeekday:Jee,sch_desc_onWeekdays:Bee,sch_desc_onWeekends:Fee,sch_desc_onWorkdays:Gee,sch_desc_onceInPast:Hee,sch_desc_once_on:Vee,sch_desc_validFrom:Zee,sch_desc_validFromTo:Xee,sch_desc_validTo:Kee,sch_every:qee,sch_exactTime:ete,sch_from:tte,sch_fromTo:ste,sch_intervalTime:ite,sch_invert:ote,sch_no_one:rte,sch_on:Mte,sch_period:nte,sch_periodDaily:ate,sch_periodDates:cte,sch_periodDay:ute,sch_periodEvery:Nte,sch_periodEveryDay:lte,sch_periodEveryMonth:Lte,sch_periodEveryWeek:jte,sch_periodEveryYear:gte,sch_periodHours:Tte,sch_periodMinutes:yte,sch_periodMonth:Dte,sch_periodMonthly:dte,sch_periodOnce:zte,sch_periodSpecificMonths:Ite,sch_periodWeek:wte,sch_periodWeekdays:Cte,sch_periodWeekend:hte,sch_periodWeekly:Ate,sch_periodWorkdays:pte,sch_periodYear:mte,sch_periodYearly:Ote,sch_specificTime:Ete,sch_time:_te,sch_to:Ste,sch_valid:xte,sch_validFrom:fte,sch_validTo:kte,sch_wholeDay:Yte,sch_yearEveryMonth:Qte},vte="操作",bte="附加",$te="取消",Pte="类别",Wte="勾选",Rte="删除",Jte="关",Bte="商业的",Fte="配置",Gte="连接的",Hte="继续",Vte="复制的",Zte="创建",Xte="庄稼",Kte="Delete",qte="删除",ese="丢弃",tse="断开连接",sse="错误",ise="筛选",ose="星期五",rse="纬度",Mse="登出",nse="经度",ase="信息",cse="周一",use="姓名",Nse="对象",lse="好",Lse="产品",jse="重命名/移动/复制",gse="重复",Tse="代替",yse="根",Dse="周六",dse="保存",zse="已选",Ise="状态",wse="星期日",Cse="周四",hse="时间戳记",Ase="周二",pse="更新资料",mse="有效期至",Ose="值",Ese="版本",_se="周三",Sse="宽度",xse="是的",fse="不同的",kse="每个人都可以阅读对象",Yse="每个人都可以阅读状态",Qse="每个人都可以写对象",Use="每个人都可以写状态",vse="组可以读取对象",bse="群组可以读取状态",$se="组可以写对象",Pse="组可以写状态",Wse="所有者可以读取对象",Rse="所有者可以读取状态",Jse="所有者可以写对象",Bse="所有者可以写状态",Fse="纽扣",Gse="更改为",Hse="关闭",Vse="创建布尔状态",Zse="创建频道",Xse="创建设备",Kse="创建号码状态",qse="创建状态",eie="创建字符串状态",tie="天",sie="r",iie="莫",oie="萨",rie="苏",Mie="Th",nie="Tu",aie="我们",cie="专家模式",uie="错误的",Nie="所有文件",lie="声音的",Lie="代码/JSON",jie="图片",gie="文本",Tie="视频",yie="设定值",Die="没有",die="功能",zie="ID",Iie="名称",wie="角色",Cie="房间",hie="类型",Aie="无效的设定",pie="最后一次变更",mie="本地",Oie="4月",Eie="八月",_ie="十二月",Sie="二月",xie="简",fie="七月",kie="君",Yie="迈",Qie="三月",Uie="十一月",vie="十月",bie="九月",$ie="4月",Pie="八月",Wie="十二月",Rie="二月",Jie="简",Bie="七月",Fie="君",Gie="迈",Hie="三月",Vie="十一月",Zie="十月",Xie="九月",Kie="没有任何",qie="物件变更者",eoe="对象上次更改时间为",toe="来自其他适配器%s的设置",soe="质量代码",ioe="重复",ooe="要选择文件夹,只需按住“shift”键单击文件夹即可。",roe="显示全部",Moe="状态由",noe="对象已从更改",aoe="时间戳记",coe="致谢国旗",uoe="评论",Noe="复制状态值",loe="按住 Cltr/⌘ 键打开链接",Loe="自定义设置",joe="删除物件",goe="编辑物件",Toe="编辑状态值",yoe="有效期:",Doe="从",doe="最后改变了",zoe="质量",Ioe="时间戳",woe="用户",Coe="值",hoe="真的",Aoe="值",poe="警告:CRON 作业将在指定期间内每分钟运行一次!",moe="警告:CRON 作业将在指定期间内每秒运行一次!",Ooe="周期任务",Eoe="日期",_oe="日",Soe="天",xoe="星期",foe="每",koe="每N天",Yoe="每周的第 N 天",Qoe="每周N天",Uoe="每N小时一次",voe="每N分钟",boe="每N个月",$oe="每N秒",Poe="每天",Woe="一周的每一天",Roe="一周的每一天",Joe="每小时",Boe="每分钟",Foe="每月",Goe="每秒",Hoe="从",Voe="小时",Zoe="间隔",Xoe="间隔时间",Koe="无效的 CRON",qoe="分钟",ere="月",tre="一次",sre="周期",ire="秒",ore="简单模式",rre="特定的时间",Mre="特定的日子",nre="一周中的特定日子",are="特定的一周",cre="特定的小时",ure="特定的分钟",Nre="特定的月份",lre="特定的描述",Lre="时间",jre="至",gre="向导模式",Tre="全选",yre="天文白天",Dre="天文夜晚",dre="黎明",zre="黄昏",Ire="黄金时段",wre="黄金时段结束",Cre="天底",hre="航海黎明",Are="航海黄昏",pre="夜晚",mre="夜晚结束",Ore="正午",Ere="日出",_re="日出结束",Sre="日落",xre="日落开始",fre="在",kre="的%s",Yre="每天",Qre="每小时",Ure="每分钟",vre="每月",bre="每%s天",$re="每%s小时",Pre="每%s分钟",Wre="每%s月",Rre="每%s周",Jre="每%s年",Bre="每周",Fre="每年",Gre="从%s到%s",Hre="决不",Vre="在%s的%s上",Zre="在%s和%s上",Xre="在每天",Kre="%s",qre="%s和%s",eMe="在%s上",tMe="在%s和%s上",sMe="在周末",iMe="在工作日",oMe="将不再执行,因为起始时间已经是过去的时间了。",rMe="在%s上",MMe="来自%s",nMe="从执行到",aMe="到%s",cMe="每",uMe="特定的时间",NMe="从",lMe="从到",LMe="间隔时间",jMe="倒置",gMe="取消全选",TMe="的",yMe="周期",DMe="每天",dMe="日期",zMe="天",IMe="每",wMe="每天",CMe="每月",hMe="每周",AMe="每年",pMe="小时",mMe="分钟",OMe="月",EMe="每月一次",_Me="一次",SMe="特定的月份",xMe="周",fMe="工作日",kMe="周末",YMe="每周",QMe="工作日",UMe="年",vMe="每年",bMe="特定的时间",$Me="时间",PMe="至",WMe="生效",RMe="从",JMe="至",BMe="一整天",FMe="每月",GMe={"ra_%s links from aliases":"来自别名的 %s 个链接","ra_%s object(s) processed":"已处理%s个对象","ra_%s was imported":"对象已导入","ra_Accept license":"接受许可",ra_Actions:vte,"ra_Add new child object to selected parent":"将新的子对象添加到选定的父对象","ra_Add objects tree from JSON file":"从JSON文件添加对象树","ra_Add row":"添加行","ra_Advanced options":"高级选项","ra_All items are filtered out":"所有项目都被过滤掉","ra_All objects":"所有对象",ra_Append:bte,"ra_Append %s entries or replace existing?":"追加 %s 条目还是替换现有条目?","ra_Append or replace?":"追加还是替换?","ra_Are you sure?":"你确定吗?","ra_Auto (no custom columns)":"自动(无自定义列)","ra_Back to %s":"返回“%s”","ra_Background image":"背景图像",ra_Cancel:$te,"ra_Cannot add items with set filter":"无法使用设置过滤器添加项目","ra_Cannot decode license":"无法解码许可证","ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser":"无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测",'ra_Cannot find "%s"':"找不到“%s”",'ra_Cannot read "%s"':"无法阅读“%s”","ra_Cannot read licenses: %s":"无法读取许可证:%s","ra_Cannot retrieve options, as instance is offline":"无法检索选项,因为实例处于脱机状态","ra_Cannot update attribute, because not found in the object":"无法更新属性,因为在对象中找不到","ra_Cannot upload":"无法上传",ra_Categories:Pte,"ra_Chained certificate":"链式证书","ra_Change color theme":"更改颜色主题","ra_Changed from":"更改为","ra_Channel → State":"频道→状态","ra_Check license":"检查许可证",ra_Checked:Wte,ra_Clear:Rte,"ra_Clear filter":"清除筛选","ra_Clear icon":"清除图标","ra_Clone current row":"克隆当前行",ra_Close:Jte,"ra_Collapse all nodes":"收合所有节点","ra_Collapse one step node":"折叠一级",ra_Commercial:Bte,ra_Configure:Fte,"ra_Configure visible columns":"配置可见列","ra_Confirm deletion of %s":"确认删除%s",ra_Connected:Gte,ra_Continue:Hte,ra_Copied:Vte,"ra_Copied %s":'复制的"%s"',"ra_Copy content":"复制内容",ra_Create:Zte,"ra_Create alias":"创建别名","ra_Create folder":"创建文件夹","ra_Create new folder in %s":"在%s中创建新文件夹",ra_Crop:Xte,"ra_Define CRON...":"定义 CRON...","ra_Define functions":"定义功能","ra_Define rooms":"定义房间","ra_Define schedule":"定义时间表","ra_Define schedule...":"定义时间表...",ra_Del:Kte,ra_Delete:qte,"ra_Delete current row":"删除当前行","ra_Deselect all":"全部取消选择","ra_Device → Channel → State":"设备→频道→状态",ra_Discard:ese,ra_Disconnected:tse,"ra_Do not ask for next 2 hours in this session":"本次会话中不要询问接下来的 2 个小时","ra_Do not export values of states":"不导出状态值","ra_Do not use let's encrypt":"不要使用让我们加密","ra_Double click to reset table layout":"双击重置表格布局","ra_Drag 'n' drop some files here, or click to select files":"将一些文件拖放到此处,或单击以选择文件","ra_Drop file here":"将档案放在这里","ra_Drop the files here...":"把文件放在这里...","ra_Duplicate name":"名称重复","ra_Edit ACL":"编辑访问控制列表","ra_Edit alias":"编辑别名","ra_Edit custom config":"编辑自定义配置","ra_Edit full path":"编辑完整路径","ra_Edit function":"编辑功能","ra_Edit object field":"编辑对象字段","ra_Edit role":"编辑角色","ra_Edit room":"编辑室","ra_Edit value":"编辑值","ra_Enter the code from that page here":"在此处输入该页面的代码",ra_Error:sse,"ra_Expand all nodes":"展开所有节点","ra_Expand one step node":"扩大一级","ra_Export data to %s file":"将数据导出到 %s 文件","ra_Failed to open JSON File":"无法打开JSON文件","ra_Fallback custom certificates":"后备自定义证书","ra_File is too big. Max %sk allowed. Try use SVG.":"文件太大。允许的最大字节%s数。尝试使用 SVG。",ra_Filter:ise,"ra_Filter and Data Actions":"过滤和数据操作","ra_Filter files":"过滤文件","ra_Folder name":"文件夹名称","ra_Folder → Channel → State":"文件夹→频道→状态","ra_Folder → Device → Channel → State":"文件夹→设备→频道→状态","ra_Folder → State":"文件夹→状态","ra_Folders always first":"资料夹永远优先",ra_Friday:ose,"ra_Get %s access":"获取 %s 访问权限","ra_Good luck":"祝你好运","ra_Hide empty folders":"隐藏空文件夹","ra_If no file will be created in the folder, it will disappear after the browser closed":"如果在该文件夹中未创建任何文件,则该文件将在浏览器关闭后消失","ra_If the button above does not work, you can authorize manually this app by visiting this url":"如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用","ra_Import data from %s file":"从 %s 文件导入数据","ra_Import from %s":"从 %s 导入","ra_Instance %s is alive":"实例 %s 是活动的","ra_Instance %s is not alive":"实例 %s 不存在","ra_Instance is not alive":"实例不存在","ra_Invalid CRON":"无效的 CRON","ra_Invalid JSON":"JSON 无效","ra_Invalid answer from server":"来自服务器的无效答案","ra_Invalid parent folder!":"父文件夹无效!","ra_Invalid structure":"结构无效","ra_JSON editor":"JSON 编辑器","ra_Last change":"最后一次变更",ra_Latitude:rse,"ra_License %s":"许可证 %s","ra_License agreement":"许可协议","ra_License does not exist":"许可证不存在","ra_License expired on %s":"许可证已于 %s 过期",'ra_License for other product "%s"':"其他产品“%s”的许可证","ra_License is for version %s, but required version is %s.":"许可证适用于版本 %s,但所需版本为 %s。","ra_License must be converted":"许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。","ra_License not found in license manager. Do you want to read licenses from iobroker.net?":"在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?","ra_Listen on all IPs":"监听所有IP","ra_Load configuration from file":"从文件加载配置",ra_Logout:Mse,ra_Longitude:nse,'ra_May not trigger "updateLicenses"':"可能不会触发“updateLicenses”",ra_Message:ase,ra_Monday:cse,"ra_Move down":"下移","ra_Move up":"提升",ra_Name:use,"ra_No data found in file":"文件中未找到数据","ra_No one license found in license manager":"许可证管理器中未找到任何许可证","ra_No response from the backend":"后端无响应",'ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".':"非专家只能在“ 0_userdata.0”或“ alias.0”中创建新对象。","ra_Not a number":"不是数字",ra_Objects:Nse,ra_Ok:lse,"ra_On weekdays":"在工作日","ra_Only following structures of objects are available:":"仅以下对象结构可用:","ra_Only selected":"只选择","ra_Owner group":"所有者组","ra_Owner user":"所有者用户","ra_Passwords are not equal!":"密码不相等!","ra_Place your files here or click here to open the browse dialog":"将文件放在此处或单击此处打开浏览对话框","ra_Please allow popups in your browser for this page!":"请允许浏览器弹出此页面!","ra_Please confirm":"请确认","ra_Please create license":"请创建许可证","ra_Please enter the license":"请输入许可证","ra_Please select file...":"请选择文件...","ra_Please select object ID...":"请选择对象ID ...","ra_Port could be used by %s":"%s 可以使用端口","ra_Port is already used by %s":"端口已被 %s 使用","ra_Press ENTER Key to add new item":"按 ENTER 键添加新项目","ra_Private certificate":"私有证书",ra_Product:Lse,"ra_Public certificate":"公共证书","ra_Quality code":"质量代码","ra_Refresh tree":"刷新树","ra_Reload files":"重新载入文件",ra_Rename_Move_Copy:jse,"ra_Renew %s access":"续订 %s 访问权限",ra_Repeat:gse,ra_Replace:Tse,"ra_Request timed out":"请求超时","ra_Restrict to folder":"限制到文件夹",ra_Root:yse,ra_Saturday:Dse,ra_Save:dse,"ra_Save and close":"保存并关闭","ra_Save configuration to file":"将配置保存到文件","ra_Save objects tree as JSON file":"将对象树另存为JSON文件","ra_Select all":"全选","ra_Select color":"选择颜色","ra_Select predefined icon":"选择预定义图标","ra_Select type of export":"选择导出类型",ra_Selected:zse,"ra_Selected %s object(s)":"选定的 %s 个对象","ra_Serial number (UUID)":"序列号 (UUID)",'ra_Serial number (UUID) "%s" in license is for other device.':"许可证中的序列号 (UUID)“%s”用于其他设备。","ra_Session will expire in %s seconds. Continue?":"会话将在 %s 秒后过期。是否继续?","ra_Show all folders":"显示所有文件夹","ra_Show lines between rows":"显示行之间的线","ra_Show/Hide object descriptions":"显示/隐藏对象描述","ra_Show/hide filter input":"显示/隐藏过滤器输入","ra_Some data are not stored. Discard?":"部分数据未存储。丢弃?",ra_States:Ise,"ra_Successfully authorized. Token valid till %s and will be automatically renewed.":"授权成功。令牌有效期至 %s,并将自动续订。","ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":"授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。","ra_Suitable license not found in license manager":"在许可证管理器中找不到合适的许可证",ra_Sunday:wse,"ra_Suppress question for next %s minutes":"在接下来的%s分钟内取消提问","ra_System language":"系统语言","ra_Take browser position":"从浏览器获取位置","ra_Take position from system settings":"从系统设置中获取位置",'ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").':"专家可以在任何地方创建对象,但要从第二层开始(例如“ vis.0”或“ javascript.0”)。","ra_The page you are looking for was not found":"未找到您要查找的页面","ra_The schedule will be executed every minute. Are you sure?":"该计划将每分钟执行一次。您确定吗?","ra_The schedule will be executed every second. Are you sure?":"该计划将每秒执行一次。你确定吗?",ra_Thursday:Cse,ra_Timestamp:hse,"ra_Toggle expert mode":"切换专家模式","ra_Toggle the states view":"切换状态视图","ra_Toggle view mode":"切换检视模式","ra_Too big":"太大","ra_Too small":"太小","ra_Transparent dialog":"透明对话框",ra_Tuesday:Ase,"ra_Unknown error":"未知错误","ra_Unknown error!":"未知错误!",ra_Update:pse,"ra_Upload file":"上传文件","ra_Use all available let's encrypt certificates":"使用所有可用的让我们加密证书","ra_Use iobroker.acme adapter for letsencrypt certificates":"使用 iobroker.acme 适配器获取 letsencrypt 证书","ra_Use system settings for position":"使用系统设置定位","ra_Used system settings":"使用的系统设置","ra_User files":"用户档案",ra_ValidTill:mse,ra_Value:Ose,ra_Version:Ese,"ra_View file":"查看文件","ra_View: %s":"查看:%s",ra_Wednesday:_se,ra_Width:Sse,ra_Yes:xse,"ra_You can export all objects or just the selected branch.":"您可以导出所有对象或仅导出选定的分支。","ra_You can filter entries by entering here some text":"您可以通过在此处输入一些文本来过滤条目","ra_You can use * as wildcard":"您可以使用 * 作为通配符",ra___different__:fse,ra_aclEveryone_read_object:kse,ra_aclEveryone_read_state:Yse,ra_aclEveryone_write_object:Qse,ra_aclEveryone_write_state:Use,ra_aclGroup_read_object:vse,ra_aclGroup_read_state:bse,ra_aclGroup_write_object:$se,ra_aclGroup_write_state:Pse,ra_aclOwner_read_object:Wse,ra_aclOwner_read_state:Rse,ra_aclOwner_write_object:Jse,ra_aclOwner_write_state:Bse,ra_buttons:Fse,ra_changedFrom:Gse,ra_close:Hse,ra_create_boolean_state:Vse,ra_create_channel:Zse,ra_create_device:Xse,ra_create_number_state:Kse,ra_create_state:qse,ra_create_string_state:eie,ra_daysShortText:tie,ra_dow_Fr:sie,ra_dow_Mo:iie,ra_dow_Sa:oie,ra_dow_Su:rie,ra_dow_Th:Mie,ra_dow_Tu:nie,ra_dow_We:aie,ra_expertMode:cie,ra_false:uie,ra_fileType_all:Nie,ra_fileType_audio:lie,ra_fileType_code:Lie,ra_fileType_images:jie,ra_fileType_txt:gie,ra_fileType_video:Tie,"ra_fileType_video,":"视频",ra_filter_customs:yie,ra_filter_customs_without:Die,ra_filter_func:die,ra_filter_id:zie,ra_filter_name:Iie,ra_filter_role:wie,ra_filter_room:Cie,ra_filter_type:hie,"ra_import data from %s file":"从 %s 文件导入数据",ra_invalidConfig:Aie,ra_lastChange:pie,ra_locally:mie,ra_month_Apr:Oie,ra_month_Aug:Eie,ra_month_Dec:_ie,ra_month_Feb:Sie,ra_month_Jan:xie,ra_month_Jul:fie,ra_month_Jun:kie,ra_month_Mai:Yie,ra_month_Mar:Qie,ra_month_Nov:Uie,ra_month_Oct:vie,ra_month_Sep:bie,ra_months_Apr:$ie,ra_months_Aug:Pie,ra_months_Dec:Wie,ra_months_Feb:Rie,ra_months_Jan:Jie,ra_months_Jul:Bie,ra_months_Jun:Fie,ra_months_Mai:Gie,ra_months_Mar:Hie,ra_months_Nov:Vie,ra_months_Oct:Zie,ra_months_Sep:Xie,"ra_no confirm for 5 mins":"5分钟内无需确认",ra_none:Kie,ra_object_changed_by:qie,ra_object_changed_by_user:eoe,ra_otherConfig:toe,ra_qualityCode:soe,ra_repeat:ioe,ra_select_folder_hint:ooe,ra_show_all:roe,ra_state_changed_by:Moe,ra_state_changed_from:noe,ra_timestamp:aoe,ra_tooltip_ack:coe,ra_tooltip_comment:uoe,ra_tooltip_copyState:Noe,ra_tooltip_ctrlForLink:loe,ra_tooltip_customConfig:Loe,ra_tooltip_deleteObject:joe,ra_tooltip_editObject:goe,ra_tooltip_editState:Toe,ra_tooltip_expire:yoe,ra_tooltip_from:Doe,ra_tooltip_lc:doe,ra_tooltip_quality:zoe,ra_tooltip_ts:Ioe,ra_tooltip_user:woe,ra_tooltip_value:Coe,ra_true:hoe,"ra_use seconds":"用秒",ra_val:Aoe,"ra_via internet":"通过互联网",ra_warning_every_minute:poe,ra_warning_every_second:moe,sc_cron:Ooe,sc_date:Eoe,sc_dates:_oe,sc_dow:Soe,sc_dows:xoe,sc_every:foe,sc_everyN_dates:koe,sc_everyN_dow:Yoe,sc_everyN_dows:Qoe,sc_everyN_hours:Uoe,sc_everyN_minutes:voe,sc_everyN_months:boe,sc_everyN_seconds:$oe,sc_every_dates:Poe,sc_every_dow:Woe,sc_every_dows:Roe,sc_every_hours:Joe,sc_every_minutes:Boe,sc_every_months:Foe,sc_every_seconds:Goe,sc_from:Hoe,sc_hours:Voe,sc_interval:Zoe,sc_intervalBetween:Xoe,sc_invalid_cron:Koe,sc_minutes:qoe,sc_months:ere,sc_once:tre,sc_period:sre,sc_seconds:ire,sc_simple:ore,sc_specific:rre,sc_specific_dates:Mre,sc_specific_dow:nre,sc_specific_dows:are,sc_specific_hours:cre,sc_specific_minutes:ure,sc_specific_months:Nre,sc_specific_seconds:lre,sc_time:Lre,sc_to:jre,sc_wizard:gre,sch_all:Tre,sch_astroDay:yre,sch_astroNight:Dre,sch_astro_dawn:dre,sch_astro_dusk:zre,sch_astro_goldenHour:Ire,sch_astro_goldenHourEnd:wre,sch_astro_nadir:Cre,sch_astro_nauticalDawn:hre,sch_astro_nauticalDusk:Are,sch_astro_night:pre,sch_astro_nightEnd:mre,sch_astro_solarNoon:Ore,sch_astro_sunrise:Ere,sch_astro_sunriseEnd:_re,sch_astro_sunset:Sre,sch_astro_sunsetStart:xre,sch_at:fre,sch_desc_atTime:kre,sch_desc_everyDay:Yre,sch_desc_everyHour:Qre,sch_desc_everyMinute:Ure,sch_desc_everyMonth:vre,sch_desc_everyNDay:bre,sch_desc_everyNHours:$re,sch_desc_everyNMinutes:Pre,sch_desc_everyNMonths:Wre,sch_desc_everyNWeeks:Rre,sch_desc_everyNYears:Jre,sch_desc_everyWeek:Bre,sch_desc_everyYear:Fre,sch_desc_intervalFromTo:Gre,sch_desc_never:Hre,sch_desc_onDate:Vre,sch_desc_onDates:Zre,sch_desc_onEveryDate:Xre,sch_desc_onMonth:Kre,sch_desc_onMonths:qre,sch_desc_onWeekday:eMe,sch_desc_onWeekdays:tMe,sch_desc_onWeekends:sMe,sch_desc_onWorkdays:iMe,sch_desc_onceInPast:oMe,sch_desc_once_on:rMe,sch_desc_validFrom:MMe,sch_desc_validFromTo:nMe,sch_desc_validTo:aMe,sch_every:cMe,sch_exactTime:uMe,sch_from:NMe,sch_fromTo:lMe,sch_intervalTime:LMe,sch_invert:jMe,sch_no_one:gMe,sch_on:TMe,sch_period:yMe,sch_periodDaily:DMe,sch_periodDates:dMe,sch_periodDay:zMe,sch_periodEvery:IMe,sch_periodEveryDay:wMe,sch_periodEveryMonth:CMe,sch_periodEveryWeek:hMe,sch_periodEveryYear:AMe,sch_periodHours:pMe,sch_periodMinutes:mMe,sch_periodMonth:OMe,sch_periodMonthly:EMe,sch_periodOnce:_Me,sch_periodSpecificMonths:SMe,sch_periodWeek:xMe,sch_periodWeekdays:fMe,sch_periodWeekend:kMe,sch_periodWeekly:YMe,sch_periodWorkdays:QMe,sch_periodYear:UMe,sch_periodYearly:vMe,sch_specificTime:bMe,sch_time:$Me,sch_to:PMe,sch_valid:WMe,sch_validFrom:RMe,sch_validTo:JMe,sch_wholeDay:BMe,sch_yearEveryMonth:FMe},HMe={en:ey,de:uw,ru:zp,pt:__,nl:P5,fr:Xv,it:n$,es:yB,pl:mZ,uk:Ute,"zh-cn":GMe},VMe=` html { height: 100%; } @@ -294,7 +294,7 @@ body { background-color: #58c458; } } -`;function HMe(){try{return window.self!==window.top}catch{return!0}}class At extends Ts{socket;isIFrame=HMe();instance;adapterName;instanceId;newReact;encryptedFields;sentryDSN;alertDialogRendered;_secret;_systemConfig;savedNative;common=null;sentryStarted=!1;sentryInited=!1;resizeTimer=null;constructor(e,t){const s=e.Connection||(t==null?void 0:t.Connection)||je;if(!window.document.getElementById("generic-app-iobroker-component")){const l=window.document.createElement("style");l.setAttribute("id","generic-app-iobroker-component"),l.innerHTML=GMe,window.document.head.appendChild(l)}if(!At.isWeb()&&window.io&&window.location.port==="3000")try{const l=new window.SocketClient;delete window.io,window.io=l}catch{}super(e),k4();const o=(window.location.search||"").replace(/^\?/,"").replace(/#.*$/,""),r={};o.trim().split("&").filter(l=>l.trim()).forEach(l=>{const c=l.split("=");r[c[0]]=c.length===2?c[1]:!0,r[c[0]]==="true"?r[c[0]]=!0:r[c[0]]==="false"&&(r[c[0]]=!1)}),this.instance=(t==null?void 0:t.instance)??e.instance??(r.instance!==void 0?parseInt(r.instance,10)||0:parseInt(window.location.search.slice(1),10)||0);const M=window.location.pathname.split("/");this.adapterName=(t==null?void 0:t.adapterName)||e.adapterName||window.adapterName||M[M.length-2]||"iot",this.instanceId=`system.adapter.${this.adapterName}.${this.instance}`,this.newReact=r.newReact===!0;const n=Ts.getLocation();n.tab=n.tab||(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"";const u=this.createTheme();this.state=Object.assign(this.state||{},{selectedTab:(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"",selectedTabNum:-1,native:{},errorText:"",changed:!1,connected:!1,loaded:!1,isConfigurationError:"",expertMode:!1,toast:"",theme:u,themeName:this.getThemeName(u),themeType:this.getThemeType(u),bottomButtons:(t&&t.bottomButtons)===!1?!1:(e==null?void 0:e.bottomButtons)!==!1,width:At.getWidth(),confirmClose:!1,_alert:!1,_alertType:"info",_alertMessage:""});const N=FMe;t!=null&&t.translations?Object.keys(t.translations).forEach(l=>{t.translations&&(N[l]=Object.assign(N[l],t.translations[l]||{}))}):e.translations&&Object.keys(e.translations).forEach(l=>{e.translations&&(N[l]=Object.assign(N[l],e.translations[l]||{}))}),d.setTranslations(N),this.savedNative={},this.encryptedFields=e.encryptedFields||(t==null?void 0:t.encryptedFields)||[],this.sentryDSN=t&&t.sentryDSN||e.sentryDSN,window.socketUrl&&(window.socketUrl.startsWith(":")?window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`:!window.socketUrl.startsWith("http://")&&!window.socketUrl.startsWith("https://")&&(window.socketUrl=`${window.location.protocol}//${window.socketUrl}`)),this.alertDialogRendered=!1,window.iobOldAlert||(window.iobOldAlert=window.alert),window.alert=l=>{if(!this.alertDialogRendered){window.iobOldAlert(l);return}l!=null&&l.toString().toLowerCase().includes("error")?(console.error(l),this.showAlert(l.toString(),"error")):(console.log(l),this.showAlert(l.toString(),"info"))},this.socket=new s({...(e==null?void 0:e.socket)||(t==null?void 0:t.socket),name:this.adapterName,doNotLoadAllObjects:t==null?void 0:t.doNotLoadAllObjects,onProgress:l=>{l===Re.CONNECTING?this.setState({connected:!1}):l===Re.READY?this.setState({connected:!0}):this.setState({connected:!0})},onReady:()=>{d.setLanguage(this.socket.systemLang),this.socket.subscribeObject("system.config",this.onSystemConfigChanged).then(()=>this.getSystemConfig()).then(l=>(this._secret=typeof l<"u"&&l.native&&l.native.secret||"Zgfr56gFe87jJOM",this._systemConfig=(l==null?void 0:l.common)||{},this.socket.getObject(this.instanceId))).then(async l=>{var D,z;let c;const L=l,T=((D=await this.socket.getState(`${this.instanceId}.plugins.sentry.enabled`))==null?void 0:D.val)!==!1&&((z=this._systemConfig)==null?void 0:z.diag)!=="none"&&(L==null?void 0:L.common)&&L.common.name&&L.common.version&&!L.common.disableDataReporting&&window.location.host!=="localhost:3000";!this.sentryStarted&&this.sentryDSN&&T&&(this.sentryStarted=!0,f4({dsn:this.sentryDSN,release:`iobroker.${L.common.name}@${L.common.version}`,integrations:[$n()]}),console.log("Sentry initialized")),!this.sentryInited&&T&&(this.sentryInited=!0,c=this.socket.getObject("system.meta.uuid").then(h=>{h&&h.native&&h.native.uuid&&ot().setUser({id:h.native.uuid})})),c=c instanceof Promise?c:Promise.resolve(),c.then(()=>{L?(this.common=L==null?void 0:L.common,this.onPrepareLoad(L.native,L.encryptedNative),this.savedNative=JSON.parse(JSON.stringify(L.native)),this.setState({native:L.native,loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady())):(console.warn("Cannot load instance settings"),this.setState({native:{},loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady()))})}).catch(l=>window.alert(`Cannot settings: ${l}`))},onError:l=>{console.error(l),this.showError(l)}})}static isWeb(){return window.socketUrl!==void 0}showAlert(e,t){t!=="error"&&t!=="warning"&&t!=="info"&&t!=="success"&&(t="info"),this.setState({_alert:!0,_alertType:t,_alertMessage:e})}renderAlertSnackbar(){return this.alertDialogRendered=!0,a.createElement(g.Snackbar,{style:this.state._alertType==="error"?{backgroundColor:"#f44336"}:this.state._alertType==="success"?{backgroundColor:"#4caf50"}:void 0,open:this.state._alert,autoHideDuration:6e3,onClose:(e,t)=>t!=="clickaway"&&this.setState({_alert:!1}),message:this.state._alertMessage})}onSystemConfigChanged=(e,t)=>{var s,o;t&&e==="system.config"&&(this.socket.systemLang!==(t==null?void 0:t.common.language)&&(this.socket.systemLang=(t==null?void 0:t.common.language)||"en",d.setLanguage(this.socket.systemLang)),((s=this._systemConfig)==null?void 0:s.expertMode)!==!!((o=t==null?void 0:t.common)!=null&&o.expertMode)?(this._systemConfig=(t==null?void 0:t.common)||{},this.setState({expertMode:this.getExpertMode()})):this._systemConfig=(t==null?void 0:t.common)||{})};componentDidMount(){window.addEventListener("resize",this.onResize,!0),window.addEventListener("message",this.onReceiveMessage,!1),super.componentDidMount()}componentWillUnmount(){window.removeEventListener("resize",this.onResize,!0),window.removeEventListener("message",this.onReceiveMessage,!1),window.iobOldAlert&&(window.alert=window.iobOldAlert,delete window.iobOldAlert),super.componentWillUnmount()}onReceiveMessage=e=>{if(e!=null&&e.data)if(e.data==="updateTheme"){const t=S.getThemeName();S.setThemeName(S.getThemeName());const s=this.createTheme(t);this.setState({theme:s,themeName:this.getThemeName(s),themeType:this.getThemeType(s)},()=>{this.props.onThemeChange&&this.props.onThemeChange(t),this.onThemeChanged&&this.onThemeChanged(t)})}else e.data==="updateExpertMode"?this.onToggleExpertMode&&this.onToggleExpertMode(this.getExpertMode()):e.data!=="chartReady"&&console.debug(`Received unknown message: "${JSON.stringify(e.data)}". May be it will be processed later`)};onResize=()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{this.resizeTimer=null,this.setState({width:At.getWidth()})},200)};static getWidth(){const e={xs:0,sm:600,md:960,lg:1280,xl:1920},t=window.innerWidth;return Object.keys(e).reverse().find(r=>t>=e[r])||"xs"}createTheme(e){return nc(S.getThemeName(e))}getThemeName(e){return e.name}getThemeType(e){return e.palette.mode}onThemeChanged(e){}onToggleExpertMode(e){}toggleTheme(e){const t=this.state.themeName;if(e=e||(t==="dark"||t==="blue"||t==="colored"?"light":"dark"),e!==t){S.setThemeName(e);const s=this.createTheme(e);this.setState({theme:s,themeName:this.getThemeName(s),themeType:this.getThemeType(s)},()=>{this.props.onThemeChange&&this.props.onThemeChange(e||"light"),this.onThemeChanged&&this.onThemeChanged(e||"light")})}}getSystemConfig(){return this.socket.getSystemConfig()}getExpertMode(){var e;return window.sessionStorage.getItem("App.expertMode")==="true"||!!((e=this._systemConfig)!=null&&e.expertMode)}onConnectionReady(){}encrypt(e){let t="";if(this._secret)for(let s=0;s{e[s]&&(e[s]=this.encrypt(e[s]))}),!0}onPrepareLoad(e,t){var s;(s=this.encryptedFields)==null||s.forEach(o=>{e[o]&&(e[o]=this.decrypt(e[o]))}),t==null||t.forEach(o=>{this.encryptedFields=this.encryptedFields||[],!this.encryptedFields.includes(o)&&this.encryptedFields.push(o),e[o]&&(e[o]=this.decrypt(e[o]))})}async getExtendableInstances(){try{const e=await this.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香");return Object.values(e).filter(t=>{var s;return!!((s=t==null?void 0:t.common)!=null&&s.webExtendable)})}catch{return[]}}async getIpAddresses(e){var r;const t=await this.socket.getHostByIp(e||((r=this.common)==null?void 0:r.host)||""),s=t.find(M=>M.address==="0.0.0.0");s&&(s.name=`[IPv4] 0.0.0.0 - ${d.t("ra_Listen on all IPs")}`);const o=t.find(M=>M.address==="::");return o&&(o.name=`[IPv4] :: - ${d.t("ra_Listen on all IPs")}`),t}onSave(e){let t;if(this.state.isConfigurationError){this.setState({errorText:this.state.isConfigurationError});return}this.socket.getObject(this.instanceId).then(s=>{t=s||{};for(const o in this.state.native)Object.prototype.hasOwnProperty.call(this.state.native,o)&&(this.state.native[o]===null?t.native[o]=null:this.state.native[o]!==void 0?t.native[o]=JSON.parse(JSON.stringify(this.state.native[o])):delete t.native[o]);if(this.state.common)for(const o in this.state.common)this.state.common[o]===null?t.common[o]=null:this.state.common[o]!==void 0?t.common[o]=JSON.parse(JSON.stringify(this.state.common[o])):delete t.common[o];return this.onPrepareSave(t.native)!==!1?this.socket.setObject(this.instanceId,t):Promise.reject(new Error("Invalid configuration"))}).then(()=>{this.savedNative=t.native,globalThis.changed=!1;try{window.parent.postMessage("nochange","*")}catch{}this.setState({changed:!1},()=>{e&&At.onClose()})}).catch(s=>console.error(`Cannot save configuration: ${s}`))}renderToast(){return this.state.toast?a.createElement(g.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:a.createElement("span",{id:"message-id"},this.state.toast),action:[a.createElement(g.IconButton,{key:"close","aria-label":"Close",color:"inherit",onClick:()=>this.setState({toast:""}),size:"large"},a.createElement(m.Close,null))]}):null}static onClose(){if(typeof window.parent<"u"&&window.parent)try{window.parent.$iframeDialog&&typeof window.parent.$iframeDialog.close=="function"?window.parent.$iframeDialog.close():window.parent.postMessage("close","*")}catch{window.parent.postMessage("close","*")}}renderError(){return this.state.errorText?a.createElement(Xn,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}getIsChanged(e){e=e||this.state.native;const t=JSON.stringify(e)!==JSON.stringify(this.savedNative);return globalThis.changed=t,t}onLoadConfig(e){JSON.stringify(e)!==JSON.stringify(this.state.native)&&this.setState({native:e,changed:this.getIsChanged(e)})}setConfigurationError(e){this.state.isConfigurationError!==e&&this.setState({isConfigurationError:e})}renderSaveCloseButtons(){return!this.state.confirmClose&&!this.state.bottomButtons?null:a.createElement(a.Fragment,null,this.state.bottomButtons?a.createElement(W4,{theme:this.state.theme,newReact:this.newReact,noTextOnButtons:this.state.width==="xs"||this.state.width==="sm"||this.state.width==="md",changed:this.state.changed,onSave:e=>this.onSave(e),onClose:()=>{this.state.changed?this.setState({confirmClose:!0}):At.onClose()},error:!!this.state.isConfigurationError}):null,this.state.confirmClose?a.createElement(Zn,{title:d.t("ra_Please confirm"),text:d.t("ra_Some data are not stored. Discard?"),ok:d.t("ra_Discard"),cancel:d.t("ra_Cancel"),onClose:e=>this.setState({confirmClose:!1},()=>e&&At.onClose())}):null)}_updateNativeValue(e,t,s){typeof t!="object"&&(t=t.split("."));const o=t.shift()||"";if(!t.length)return s&&typeof s=="object"?JSON.stringify(e[o])!==JSON.stringify(s)?(e[o]=s,!0):!1:e[o]!==s?(e[o]=s,!0):!1;if(e[o]=e[o]||{},typeof e[o]!="object")throw new Error(`attribute ${o} is no object, but ${typeof e[o]}`);return this._updateNativeValue(e[o],t,s)}updateNativeValue(e,t,s){const o=JSON.parse(JSON.stringify(this.state.native));if(this._updateNativeValue(o,e,t)){const r=this.getIsChanged(o);if(r!==this.state.changed)try{window.parent.postMessage(r?"change":"nochange","*")}catch{}this.setState({native:o,changed:r},s)}}showError(e){this.setState({errorText:e})}showToast(e){this.setState({toast:e})}renderHelperDialogs(){return a.createElement(a.Fragment,null,this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar())}render(){return this.state.loaded?a.createElement("div",{className:"App"},this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar()):a.createElement(Q4,{themeType:this.state.themeType})}}const Qe={color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{mt:"16px",p:"5px",backgroundColor:"background.paper",borderRadius:"1px",boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{"& .MuiPaper-root":{textAlign:"right",backgroundColor:"#00000000",boxShadow:"none"}},popoverList:{padding:0},closeButton:i=>({backgroundColor:`${i.palette.background.paper} !important`,borderRadius:"0 0 25% 25%","&:hover":{backgroundColor:`${i.palette.secondary.main} !important`}}),textDense:{mt:0,mb:0},iconButton:{width:16,height:16},button:{width:32,height:32,minWidth:32,minHeight:32}};class Ls extends b.Component{constructor(e){super(e),this.state={displayColorPicker:!1,color:this.props.value||this.props.color||"",anchorEl:null}}handleClick=e=>{this.setState({displayColorPicker:!this.state.displayColorPicker,anchorEl:this.state.displayColorPicker?null:e.currentTarget})};handleClose=()=>{this.setState({displayColorPicker:!1,anchorEl:null})};static getColor(e,t){if(e&&typeof e=="object"){const s=e;if(s.rgb)return t?`#${s.rgb.r.toString(16).padStart(2,"0")}${s.rgb.g.toString(16).padStart(2,"0")}${s.rgb.b.toString(16).padStart(2,"0")}`:`rgba(${s.rgb.r},${s.rgb.g},${s.rgb.b},${s.rgb.a})`;const o=e;return t?`#${o.r.toString(16).padStart(2,"0")}${o.g.toString(16).padStart(2,"0")}${o.b.toString(16).padStart(2,"0")}`:`rgba(${o.r},${o.g},${o.b},${o.a})`}return typeof e=="string"?t?Ls.rgb2hex(e||""):e||"":""}static rgb2hex(e){const t=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(t){const s=parseInt(t[1],10).toString(16).padStart(2,"0"),o=parseInt(t[2],10).toString(16).padStart(2,"0"),r=parseInt(t[3],10).toString(16).padStart(2,"0");return(t==null?void 0:t.length)===4?`#${s}${o}${r}`:e}return e}handleChange=e=>{this.setState({color:e},()=>this.props.onChange&&this.props.onChange(Ls.getColor(e)))};componentDidUpdate(e,t){const s=Ls.getColor(this.props.color||this.props.value||"");s!==t.color&&this.setState({color:s})}renderCustomPalette(){return this.props.customPalette?a.createElement("div",{style:{width:"100%",display:"flex",flexWrap:"wrap"}},this.props.customPalette.map(e=>a.createElement(g.Button,{style:Qe.button,key:e,onClick:()=>{this.handleChange(e),setTimeout(()=>this.handleClose(),300)}},a.createElement("div",{style:{...Qe.iconButton,background:e}})))):null}render(){var s;const e={...this.props.style||{}};e.position="relative";const{color:t}=this.state;return a.createElement(g.Box,{component:"div",style:e,sx:this.props.sx||void 0,className:this.props.className||""},this.props.noInputField?null:a.createElement(g.TextField,{disabled:this.props.disabled,variant:"standard",id:"ar_color_picker_name",label:this.props.label||this.props.name,value:t||"",margin:"dense",sx:{"&.MuiFormControl-root":Qe.textDense,width:t?"calc(100% - 80px)":"calc(100% - 56px)",mr:t?void 0:1},onChange:o=>this.handleChange(o.target.value)}),!this.props.noInputField&&t?a.createElement(g.IconButton,{disabled:this.props.disabled,onClick:()=>this.handleChange(""),size:"small",style:this.props.label||this.props.name?Qe.delButton:void 0},a.createElement(m.Delete,null)):null,a.createElement(g.Box,{component:"div",onClick:o=>!this.props.disabled&&this.handleClick(o),title:d.t("ra_Select color"),sx:{...Qe.swatch,...this.props.disabled?Qe.swatchDisabled:void 0,background:t?void 0:"transparent",border:t?void 0:"1px dashed #ccc",boxSizing:"border-box",marginTop:this.props.noInputField||!(this.props.label||this.props.name)?0:void 0}},a.createElement("div",{style:{...Qe.color,background:Ls.getColor(t),width:this.props.noInputField?this.props.barWidth||16:this.props.barWidth||36}})),this.state.displayColorPicker&&!this.props.disabled?a.createElement(g.Menu,{sx:{...Qe.popover,"&. MuiMenu-list":Qe.popoverList},anchorEl:this.state.anchorEl,open:!0,onClose:()=>this.handleClose()},a.createElement(tc,{color:this.state.color||void 0,onChangeComplete:o=>this.handleChange(o.rgb),styles:{default:{picker:{backgroundColor:((s=this.props.theme)==null?void 0:s.palette.background.paper)||"#888"}}}}),t&&this.props.noInputField?a.createElement(g.IconButton,{sx:Qe.closeButton,onClick:()=>this.handleChange("")},a.createElement(m.Delete,null)):null,a.createElement(g.IconButton,{sx:Qe.closeButton,onClick:()=>this.handleClose()},a.createElement(m.Close,null)),this.renderCustomPalette()):null)}}var Kn={exports:{}};(function(i,e){(function(s,o){i.exports=o()})(globalThis,()=>(()=>{var t={949:(M,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.CronParser=void 0;var N=u(515),l=function(){function c(L,j,T){j===void 0&&(j=!0),T===void 0&&(T=!1),this.expression=L,this.dayOfWeekStartIndexZero=j,this.monthStartIndexZero=T}return c.prototype.parse=function(){var L,j,T=(L=this.expression)!==null&&L!==void 0?L:"";if(T==="@reboot")return j=["@reboot","","","","","",""],j;if(T.startsWith("@")){var D=this.parseSpecial(this.expression);j=this.extractParts(D)}else j=this.extractParts(this.expression);return this.normalize(j),this.validate(j),j},c.prototype.parseSpecial=function(L){var j={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *","@reboot":"@reboot"},T=j[L];if(!T)throw new Error("Unknown special expression.");return T},c.prototype.extractParts=function(L){if(!this.expression)throw new Error("cron expression is empty");for(var j=L.trim().split(/[ ]+/),T=0;T7)throw new Error("Expression has ".concat(j.length," parts; too many!"));return j},c.prototype.normalize=function(L){var j=this;if(L[3]=L[3].replace("?","*"),L[5]=L[5].replace("?","*"),L[2]=L[2].replace("?","*"),L[0].indexOf("0/")==0&&(L[0]=L[0].replace("0/","*/")),L[1].indexOf("0/")==0&&(L[1]=L[1].replace("0/","*/")),L[2].indexOf("0/")==0&&(L[2]=L[2].replace("0/","*/")),L[3].indexOf("1/")==0&&(L[3]=L[3].replace("1/","*/")),L[4].indexOf("1/")==0&&(L[4]=L[4].replace("1/","*/")),L[6].indexOf("1/")==0&&(L[6]=L[6].replace("1/","*/")),L[5]=L[5].replace(/(^\d)|([^#/\s]\d)/g,function(C){var I=C.replace(/\D/,""),_=I;return j.dayOfWeekStartIndexZero?I=="7"&&(_="0"):_=(parseInt(I)-1).toString(),C.replace(I,_)}),L[5]=="L"&&(L[5]="6"),L[3]=="?"&&(L[3]="*"),L[3].indexOf("W")>-1&&(L[3].indexOf(",")>-1||L[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var T={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var D in T)L[5]=L[5].replace(new RegExp(D,"gi"),T[D].toString());L[4]=L[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(C){var I=C.replace(/\D/,""),_=I;return j.monthStartIndexZero&&(_=(parseInt(I)+1).toString()),C.replace(I,_)});var z={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var h in z)L[4]=L[4].replace(new RegExp(h,"gi"),z[h].toString());L[0]=="0"&&(L[0]=""),!/\*|\-|\,|\//.test(L[2])&&(/\*|\//.test(L[1])||/\*|\//.test(L[0]))&&(L[2]+="-".concat(L[2]));for(var O=0;O-1&&!/^\*|\-|\,/.test(L[O])){var p=null;switch(O){case 4:p="12";break;case 5:p="6";break;case 6:p="9999";break;default:p=null;break}if(p!==null){var E=L[O].split("/");L[O]="".concat(E[0],"-").concat(p,"/").concat(E[1])}}},c.prototype.validate=function(L){var j="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(L[0],j),this.validateOnlyExpectedCharactersFound(L[1],j),this.validateOnlyExpectedCharactersFound(L[2],j),this.validateOnlyExpectedCharactersFound(L[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(L[4],j),this.validateOnlyExpectedCharactersFound(L[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(L[6],j),this.validateAnyRanges(L)},c.prototype.validateAnyRanges=function(L){N.default.secondRange(L[0]),N.default.minuteRange(L[1]),N.default.hourRange(L[2]),N.default.dayOfMonthRange(L[3]),N.default.monthRange(L[4],this.monthStartIndexZero),N.default.dayOfWeekRange(L[5],this.dayOfWeekStartIndexZero)},c.prototype.validateOnlyExpectedCharactersFound=function(L,j){var T=L.match(new RegExp("[^".concat(j,"]+"),"gi"));if(T&&T.length)throw new Error("Expression contains invalid values: '".concat(T.toString(),"'"))},c}();n.CronParser=l},333:(M,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ExpressionDescriptor=void 0;var N=u(823),l=u(949),c=function(){function L(j,T){if(this.expression=j,this.options=T,this.expressionParts=new Array(5),!this.options.locale&&L.defaultLocale&&(this.options.locale=L.defaultLocale),!L.locales[this.options.locale]){var D=Object.keys(L.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(D,"'.")),this.options.locale=D}this.i18n=L.locales[this.options.locale],T.use24HourTimeFormat===void 0&&(T.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return L.toString=function(j,T){var D=T===void 0?{}:T,z=D.throwExceptionOnParseError,h=z===void 0?!0:z,O=D.verbose,p=O===void 0?!1:O,E=D.dayOfWeekStartIndexZero,C=E===void 0?!0:E,I=D.monthStartIndexZero,_=I===void 0?!1:I,k=D.use24HourTimeFormat,f=D.locale,P=f===void 0?null:f,Y={throwExceptionOnParseError:h,verbose:p,dayOfWeekStartIndexZero:C,monthStartIndexZero:_,use24HourTimeFormat:k,locale:P};Y.tzOffset&&console.warn("'tzOffset' option has been deprecated and is no longer supported.");var V=new L(j,Y);return V.getFullDescription()},L.initialize=function(j,T){T===void 0&&(T="en"),L.specialCharacters=["/","-",",","*"],L.defaultLocale=T,j.load(L.locales)},L.prototype.getFullDescription=function(){var j,T,D="";try{var z=new l.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);if(this.expressionParts=z.parse(),this.expressionParts[0]==="@reboot")return((T=(j=this.i18n).atReboot)===null||T===void 0?void 0:T.call(j))||"Run once, at startup";var h=this.getTimeOfDayDescription(),O=this.getDayOfMonthDescription(),p=this.getMonthDescription(),E=this.getDayOfWeekDescription(),C=this.getYearDescription();D+=h+O+E+p+C,D=this.transformVerbosity(D,!!this.options.verbose),D=D.charAt(0).toLocaleUpperCase()+D.substr(1)}catch(I){if(!this.options.throwExceptionOnParseError)D=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(I)}return D},L.prototype.getTimeOfDayDescription=function(){var j=this.expressionParts[0],T=this.expressionParts[1],D=this.expressionParts[2],z="";if(!N.StringUtilities.containsAny(T,L.specialCharacters)&&!N.StringUtilities.containsAny(D,L.specialCharacters)&&!N.StringUtilities.containsAny(j,L.specialCharacters))z+=this.i18n.atSpace()+this.formatTime(D,T,j);else if(!j&&T.indexOf("-")>-1&&!(T.indexOf(",")>-1)&&!(T.indexOf("/")>-1)&&!N.StringUtilities.containsAny(D,L.specialCharacters)){var h=T.split("-");z+=N.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(D,h[0],""),this.formatTime(D,h[1],""))}else if(!j&&D.indexOf(",")>-1&&D.indexOf("-")==-1&&D.indexOf("/")==-1&&!N.StringUtilities.containsAny(T,L.specialCharacters)){var O=D.split(",");z+=this.i18n.at();for(var p=0;p-1?O=z.substring(0,z.indexOf("#")):z.indexOf("L")>-1&&(O=O.replace("L",""));var p=parseInt(O),E=j.i18n.daysOfTheWeekInCase?j.i18n.daysOfTheWeekInCase(h)[p]:T[p];if(z.indexOf("#")>-1){var C=null,I=z.substring(z.indexOf("#")+1),_=z.substring(0,z.indexOf("#"));switch(I){case"1":C=j.i18n.first(_);break;case"2":C=j.i18n.second(_);break;case"3":C=j.i18n.third(_);break;case"4":C=j.i18n.fourth(_);break;case"5":C=j.i18n.fifth(_);break}E=C+" "+E}return E},function(z){return parseInt(z)==1?"":N.StringUtilities.format(j.i18n.commaEveryX0DaysOfTheWeek(z),z)},function(z){var h=z.substring(0,z.indexOf("-")),O=j.expressionParts[3]!="*";return O?j.i18n.commaAndX0ThroughX1(h):j.i18n.commaX0ThroughX1(h)},function(z){var h=null;if(z.indexOf("#")>-1){var O=z.substring(z.indexOf("#")+1),p=z.substring(0,z.indexOf("#"));h=j.i18n.commaOnThe(O,p).trim()+j.i18n.spaceX0OfTheMonth()}else if(z.indexOf("L")>-1)h=j.i18n.commaOnTheLastX0OfTheMonth(z.replace("L",""));else{var E=j.expressionParts[3]!="*";h=E?j.i18n.commaAndOnX0():j.i18n.commaOnlyOnX0(z)}return h}),D},L.prototype.getMonthDescription=function(){var j=this,T=this.i18n.monthsOfTheYear(),D=this.getSegmentDescription(this.expressionParts[4],"",function(z,h){return h&&j.i18n.monthsOfTheYearInCase?j.i18n.monthsOfTheYearInCase(h)[parseInt(z)-1]:T[parseInt(z)-1]},function(z){return parseInt(z)==1?"":N.StringUtilities.format(j.i18n.commaEveryX0Months(z),z)},function(z){return j.i18n.commaMonthX0ThroughMonthX1()||j.i18n.commaX0ThroughX1()},function(z){return j.i18n.commaOnlyInMonthX0?j.i18n.commaOnlyInMonthX0():j.i18n.commaOnlyInX0()});return D},L.prototype.getDayOfMonthDescription=function(){var j=this,T=null,D=this.expressionParts[3];switch(D){case"L":T=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":T=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var z=D.match(/(\d{1,2}W)|(W\d{1,2})/);if(z){var h=parseInt(z[0].replace("W","")),O=h==1?this.i18n.firstWeekday():N.StringUtilities.format(this.i18n.weekdayNearestDayX0(),h.toString());T=N.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),O);break}else{var p=D.match(/L-(\d{1,2})/);if(p){var E=p[1];T=N.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(E),E);break}else{if(D=="*"&&this.expressionParts[5]!="*")return"";T=this.getSegmentDescription(D,this.i18n.commaEveryDay(),function(C){return C=="L"?j.i18n.lastDay():j.i18n.dayX0?N.StringUtilities.format(j.i18n.dayX0(),C):C},function(C){return C=="1"?j.i18n.commaEveryDay():j.i18n.commaEveryX0Days(C)},function(C){return j.i18n.commaBetweenDayX0AndX1OfTheMonth(C)},function(C){return j.i18n.commaOnDayX0OfTheMonth(C)})}break}}return T},L.prototype.getYearDescription=function(){var j=this,T=this.getSegmentDescription(this.expressionParts[6],"",function(D){return/^\d+$/.test(D)?new Date(parseInt(D),1).getFullYear().toString():D},function(D){return N.StringUtilities.format(j.i18n.commaEveryX0Years(D),D)},function(D){return j.i18n.commaYearX0ThroughYearX1()||j.i18n.commaX0ThroughX1()},function(D){return j.i18n.commaOnlyInYearX0?j.i18n.commaOnlyInYearX0():j.i18n.commaOnlyInX0()});return T},L.prototype.getSegmentDescription=function(j,T,D,z,h,O){var p=null,E=j.indexOf("/")>-1,C=j.indexOf("-")>-1,I=j.indexOf(",")>-1;if(!j)p="";else if(j==="*")p=T;else if(!E&&!C&&!I)p=N.StringUtilities.format(O(j),D(j));else if(I){for(var _=j.split(","),k="",f=0;f<_.length;f++)if(f>0&&_.length>2&&(k+=",",f<_.length-1&&(k+=" ")),f>0&&_.length>1&&(f==_.length-1||_.length==2)&&(k+="".concat(this.i18n.spaceAnd()," ")),_[f].indexOf("/")>-1||_[f].indexOf("-")>-1){var P=_[f].indexOf("-")>-1&&_[f].indexOf("/")==-1,Y=this.getSegmentDescription(_[f],T,D,z,P?this.i18n.commaX0ThroughX1:h,O);P&&(Y=Y.replace(", ","")),k+=Y}else E?k+=this.getSegmentDescription(_[f],T,D,z,h,O):k+=D(_[f]);E?p=k:p=N.StringUtilities.format(O(j),k)}else if(E){var _=j.split("/");if(p=N.StringUtilities.format(z(_[1]),_[1]),_[0].indexOf("-")>-1){var V=this.generateRangeSegmentDescription(_[0],h,D);V.indexOf(", ")!=0&&(p+=", "),p+=V}else if(_[0].indexOf("*")==-1){var oe=N.StringUtilities.format(O(_[0]),D(_[0]));oe=oe.replace(", ",""),p+=N.StringUtilities.format(this.i18n.commaStartingX0(),oe)}}else C&&(p=this.generateRangeSegmentDescription(j,h,D));return p},L.prototype.generateRangeSegmentDescription=function(j,T,D){var z="",h=j.split("-"),O=D(h[0],1),p=D(h[1],2),E=T(j);return z+=N.StringUtilities.format(E,O,p),z},L.prototype.formatTime=function(j,T,D){var z=0,h=0,O=parseInt(j)+z,p=parseInt(T)+h;p>=60?(p-=60,O+=1):p<0&&(p+=60,O-=1),O>=24?O=O-24:O<0&&(O=24+O);var E="",C=!1;this.options.use24HourTimeFormat||(C=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),E=C?"".concat(this.getPeriod(O)," "):" ".concat(this.getPeriod(O)),O>12&&(O-=12),O===0&&(O=12));var I="";return D&&(I=":".concat(("00"+D).substring(D.length))),"".concat(C?E:"").concat(("00"+O.toString()).substring(O.toString().length),":").concat(("00"+p.toString()).substring(p.toString().length)).concat(I).concat(C?"":E)},L.prototype.transformVerbosity=function(j,T){if(!T&&(j=j.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),j=j.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),j=j.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),j=j.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var D=0,z=Object.entries(this.i18n.conciseVerbosityReplacements());D=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},L.locales={},L}();n.ExpressionDescriptor=c},747:(M,n,u)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.enLocaleLoader=void 0;var N=u(486),l=function(){function c(){}return c.prototype.load=function(L){L.en=new N.en},c}();n.enLocaleLoader=l},486:(M,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.en=void 0;var u=function(){function N(){}return N.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},N.prototype.atX0MinutesPastTheHourGt20=function(){return null},N.prototype.commaMonthX0ThroughMonthX1=function(){return null},N.prototype.commaYearX0ThroughYearX1=function(){return null},N.prototype.use24HourTimeFormatByDefault=function(){return!1},N.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},N.prototype.everyMinute=function(){return"every minute"},N.prototype.everyHour=function(){return"every hour"},N.prototype.atSpace=function(){return"At "},N.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},N.prototype.at=function(){return"At"},N.prototype.spaceAnd=function(){return" and"},N.prototype.everySecond=function(){return"every second"},N.prototype.everyX0Seconds=function(){return"every %s seconds"},N.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},N.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},N.prototype.everyX0Minutes=function(){return"every %s minutes"},N.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},N.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},N.prototype.everyX0Hours=function(){return"every %s hours"},N.prototype.betweenX0AndX1=function(){return"between %s and %s"},N.prototype.atX0=function(){return"at %s"},N.prototype.commaEveryDay=function(){return", every day"},N.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},N.prototype.commaX0ThroughX1=function(){return", %s through %s"},N.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},N.prototype.first=function(){return"first"},N.prototype.second=function(){return"second"},N.prototype.third=function(){return"third"},N.prototype.fourth=function(){return"fourth"},N.prototype.fifth=function(){return"fifth"},N.prototype.commaOnThe=function(){return", on the "},N.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},N.prototype.lastDay=function(){return"the last day"},N.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},N.prototype.commaOnlyOnX0=function(){return", only on %s"},N.prototype.commaAndOnX0=function(){return", and on %s"},N.prototype.commaEveryX0Months=function(){return", every %s months"},N.prototype.commaOnlyInX0=function(){return", only in %s"},N.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},N.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},N.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},N.prototype.firstWeekday=function(){return"first weekday"},N.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},N.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},N.prototype.commaEveryX0Days=function(){return", every %s days"},N.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},N.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},N.prototype.commaEveryHour=function(){return", every hour"},N.prototype.commaEveryX0Years=function(){return", every %s years"},N.prototype.commaStartingX0=function(){return", starting %s"},N.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},N.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},N.prototype.atReboot=function(){return"Run once, at startup"},N}();n.en=u},515:(M,n)=>{Object.defineProperty(n,"__esModule",{value:!0});function u(l,c){if(!l)throw new Error(c)}var N=function(){function l(){}return l.secondRange=function(c){for(var L=c.split(","),j=0;j=0&&T<=59,"seconds part must be >= 0 and <= 59")}},l.minuteRange=function(c){for(var L=c.split(","),j=0;j=0&&T<=59,"minutes part must be >= 0 and <= 59")}},l.hourRange=function(c){for(var L=c.split(","),j=0;j=0&&T<=23,"hours part must be >= 0 and <= 23")}},l.dayOfMonthRange=function(c){for(var L=c.split(","),j=0;j=1&&T<=31,"DOM part must be >= 1 and <= 31")}},l.monthRange=function(c,L){for(var j=c.split(","),T=0;T=1&&D<=12,L?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},l.dayOfWeekRange=function(c,L){for(var j=c.split(","),T=0;T=0&&D<=6,L?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},l}();n.default=N},823:(M,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.StringUtilities=void 0;var u=function(){function N(){}return N.format=function(l){for(var c=[],L=1;L-1})},N}();n.StringUtilities=u}},s={};function o(M){var n=s[M];if(n!==void 0)return n.exports;var u=s[M]={exports:{}};return t[M](u,u.exports,o),u.exports}var r={};return(()=>{var M=r;Object.defineProperty(M,"__esModule",{value:!0}),M.toString=void 0;var n=o(333),u=o(747);n.ExpressionDescriptor.initialize(new u.enLocaleLoader),M.default=n.ExpressionDescriptor;var N=n.ExpressionDescriptor.toString;M.toString=N})(),r})())})(Kn);var Ge=Kn.exports;const VMe=ic(Ge);var ZMe={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.fr=void 0;var l=function(){function c(){}return c.prototype.conciseVerbosityReplacements=function(){return{"de le":"du"}},c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe."},c.prototype.everyMinute=function(){return"toutes les minutes"},c.prototype.everyHour=function(){return"toutes les heures"},c.prototype.atSpace=function(){return"À "},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Toutes les minutes entre %s et %s"},c.prototype.at=function(){return"À"},c.prototype.spaceAnd=function(){return" et"},c.prototype.everySecond=function(){return"toutes les secondes"},c.prototype.everyX0Seconds=function(){return"toutes les %s secondes"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"les secondes entre %s et %s après la minute"},c.prototype.atX0SecondsPastTheMinute=function(){return"%s secondes après la minute"},c.prototype.everyX0Minutes=function(){return"toutes les %s minutes"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"les minutes entre %s et %s après l'heure"},c.prototype.atX0MinutesPastTheHour=function(){return"%s minutes après l'heure"},c.prototype.everyX0Hours=function(){return"toutes les %s heures"},c.prototype.betweenX0AndX1=function(){return"de %s à %s"},c.prototype.atX0=function(){return"%s"},c.prototype.commaEveryDay=function(){return", tous les jours"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", tous les %s jours de la semaine"},c.prototype.commaX0ThroughX1=function(){return", de %s à %s"},c.prototype.commaAndX0ThroughX1=function(){return", et de %s à %s"},c.prototype.first=function(){return"premier"},c.prototype.second=function(){return"second"},c.prototype.third=function(){return"troisième"},c.prototype.fourth=function(){return"quatrième"},c.prototype.fifth=function(){return"cinquième"},c.prototype.commaOnThe=function(){return", le "},c.prototype.spaceX0OfTheMonth=function(){return" %s du mois"},c.prototype.lastDay=function(){return"le dernier jour"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", le dernier %s du mois"},c.prototype.commaOnlyOnX0=function(){return", uniquement le %s"},c.prototype.commaAndOnX0=function(){return", et %s"},c.prototype.commaEveryX0Months=function(){return", tous les %s mois"},c.prototype.commaOnlyInX0=function(){return", uniquement en %s"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", le dernier jour du mois"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", le dernier jour ouvrable du mois"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s jours avant le dernier jour du mois"},c.prototype.firstWeekday=function(){return"premier jour ouvrable"},c.prototype.weekdayNearestDayX0=function(){return"jour ouvrable le plus proche du %s"},c.prototype.commaOnTheX0OfTheMonth=function(){return", le %s du mois"},c.prototype.commaEveryX0Days=function(){return", tous les %s jours"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", du %s au %s du mois"},c.prototype.commaOnDayX0OfTheMonth=function(){return", le %s du mois"},c.prototype.commaEveryHour=function(){return", chaque heure"},c.prototype.commaEveryX0Years=function(){return", tous les %s ans"},c.prototype.commaDaysX0ThroughX1=function(){return", du %s au %s"},c.prototype.commaStartingX0=function(){return", à partir de %s"},c.prototype.daysOfTheWeek=function(){return["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},c.prototype.monthsOfTheYear=function(){return["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},c}();return N.fr=l,u().locales.fr=new l,M})())})(ZMe);var XMe={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.es=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocurrió un error mientras se generaba la descripción de la expresión. Revise la sintaxis de la expresión de cron."},c.prototype.at=function(){return"A las"},c.prototype.atSpace=function(){return"A las "},c.prototype.atX0=function(){return"a las %s"},c.prototype.atX0MinutesPastTheHour=function(){return"a los %s minutos de la hora"},c.prototype.atX0SecondsPastTheMinute=function(){return"a los %s segundos del minuto"},c.prototype.betweenX0AndX1=function(){return"entre las %s y las %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre los días %s y %s del mes"},c.prototype.commaEveryDay=function(){return", cada día"},c.prototype.commaEveryX0Days=function(){return", cada %s días"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s días de la semana"},c.prototype.commaEveryX0Months=function(){return", cada %s meses"},c.prototype.commaOnDayX0OfTheMonth=function(){return", el día %s del mes"},c.prototype.commaOnlyInX0=function(){return", sólo en %s"},c.prototype.commaOnlyOnX0=function(){return", sólo el %s"},c.prototype.commaAndOnX0=function(){return", y el %s"},c.prototype.commaOnThe=function(){return", en el "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", en el último día del mes"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en el último día de la semana del mes"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s días antes del último día del mes"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", en el último %s del mes"},c.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},c.prototype.commaX0ThroughX1=function(){return", de %s a %s"},c.prototype.commaAndX0ThroughX1=function(){return", y de %s a %s"},c.prototype.everyHour=function(){return"cada hora"},c.prototype.everyMinute=function(){return"cada minuto"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minuto entre las %s y las %s"},c.prototype.everySecond=function(){return"cada segundo"},c.prototype.everyX0Hours=function(){return"cada %s horas"},c.prototype.everyX0Minutes=function(){return"cada %s minutos"},c.prototype.everyX0Seconds=function(){return"cada %s segundos"},c.prototype.fifth=function(){return"quinto"},c.prototype.first=function(){return"primero"},c.prototype.firstWeekday=function(){return"primer día de la semana"},c.prototype.fourth=function(){return"cuarto"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minuto %s al %s pasada la hora"},c.prototype.second=function(){return"segundo"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En los segundos %s al %s de cada minuto"},c.prototype.spaceAnd=function(){return" y"},c.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},c.prototype.lastDay=function(){return"el último día"},c.prototype.third=function(){return"tercer"},c.prototype.weekdayNearestDayX0=function(){return"día de la semana más próximo al %s"},c.prototype.commaEveryX0Years=function(){return", cada %s años"},c.prototype.commaStartingX0=function(){return", comenzando %s"},c.prototype.daysOfTheWeek=function(){return["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},c.prototype.monthsOfTheYear=function(){return["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},c}();return N.es=l,u().locales.es=new l,M})())})(XMe);var KMe={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.de=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.everyMinute=function(){return"jede Minute"},c.prototype.everyHour=function(){return"jede Stunde"},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Beim Generieren der Ausdrucksbeschreibung ist ein Fehler aufgetreten. Überprüfen Sie die Syntax des Cron-Ausdrucks."},c.prototype.atSpace=function(){return"Um "},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Jede Minute zwischen %s und %s"},c.prototype.at=function(){return"Um"},c.prototype.spaceAnd=function(){return" und"},c.prototype.everySecond=function(){return"Jede Sekunde"},c.prototype.everyX0Seconds=function(){return"alle %s Sekunden"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"Sekunden %s bis %s"},c.prototype.atX0SecondsPastTheMinute=function(){return"bei Sekunde %s"},c.prototype.everyX0Minutes=function(){return"alle %s Minuten"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"Minuten %s bis %s"},c.prototype.atX0MinutesPastTheHour=function(){return"bei Minute %s"},c.prototype.everyX0Hours=function(){return"alle %s Stunden"},c.prototype.betweenX0AndX1=function(){return"zwischen %s und %s"},c.prototype.atX0=function(){return"um %s"},c.prototype.commaEveryDay=function(){return", jeden Tag"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", alle %s Tage der Woche"},c.prototype.commaX0ThroughX1=function(){return", %s bis %s"},c.prototype.commaAndX0ThroughX1=function(){return", und %s bis %s"},c.prototype.first=function(){return"ersten"},c.prototype.second=function(){return"zweiten"},c.prototype.third=function(){return"dritten"},c.prototype.fourth=function(){return"vierten"},c.prototype.fifth=function(){return"fünften"},c.prototype.commaOnThe=function(){return", am "},c.prototype.spaceX0OfTheMonth=function(){return" %s des Monats"},c.prototype.lastDay=function(){return"der letzte Tag"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", am letzten %s des Monats"},c.prototype.commaOnlyOnX0=function(){return", nur jeden %s"},c.prototype.commaAndOnX0=function(){return", und jeden %s"},c.prototype.commaEveryX0Months=function(){return", alle %s Monate"},c.prototype.commaOnlyInX0=function(){return", nur im %s"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", am letzten Tag des Monats"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", am letzten Werktag des Monats"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s tage vor dem letzten Tag des Monats"},c.prototype.firstWeekday=function(){return"ersten Werktag"},c.prototype.weekdayNearestDayX0=function(){return"Werktag am nächsten zum %s Tag"},c.prototype.commaOnTheX0OfTheMonth=function(){return", am %s des Monats"},c.prototype.commaEveryX0Days=function(){return", alle %s Tage"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", zwischen Tag %s und %s des Monats"},c.prototype.commaOnDayX0OfTheMonth=function(){return", an Tag %s des Monats"},c.prototype.commaEveryX0Years=function(){return", alle %s Jahre"},c.prototype.commaStartingX0=function(){return", beginnend %s"},c.prototype.daysOfTheWeek=function(){return["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},c.prototype.monthsOfTheYear=function(){return["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},c}();return N.de=l,u().locales.de=new l,M})())})(KMe);var qMe={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.it=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"È verificato un errore durante la generazione la descrizione espressione. Controllare la sintassi delle espressioni cron."},c.prototype.at=function(){return"Alle"},c.prototype.atSpace=function(){return"Alle "},c.prototype.atX0=function(){return"alle %s"},c.prototype.atX0MinutesPastTheHour=function(){return"al %s minuto passata l'ora"},c.prototype.atX0SecondsPastTheMinute=function(){return"al %s secondo passato il minuto"},c.prototype.betweenX0AndX1=function(){return"tra le %s e le %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tra il giorno %s e %s del mese"},c.prototype.commaEveryDay=function(){return", ogni giorno"},c.prototype.commaEveryX0Days=function(){return", ogni %s giorni"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", ogni %s giorni della settimana"},c.prototype.commaEveryX0Months=function(){return", ogni %s mesi"},c.prototype.commaEveryX0Years=function(){return", ogni %s anni"},c.prototype.commaOnDayX0OfTheMonth=function(){return", il giorno %s del mese"},c.prototype.commaOnlyInX0=function(){return", solo in %s"},c.prototype.commaOnlyOnX0=function(){return", solo il %s"},c.prototype.commaAndOnX0=function(){return", e il %s"},c.prototype.commaOnThe=function(){return", il "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", l'ultimo giorno del mese"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", nell'ultima settimana del mese"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s giorni prima dell'ultimo giorno del mese"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", l'ultimo %s del mese"},c.prototype.commaOnTheX0OfTheMonth=function(){return", il %s del mese"},c.prototype.commaX0ThroughX1=function(){return", %s al %s"},c.prototype.commaAndX0ThroughX1=function(){return", e %s al %s"},c.prototype.everyHour=function(){return"ogni ora"},c.prototype.everyMinute=function(){return"ogni minuto"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Ogni minuto tra le %s e le %s"},c.prototype.everySecond=function(){return"ogni secondo"},c.prototype.everyX0Hours=function(){return"ogni %s ore"},c.prototype.everyX0Minutes=function(){return"ogni %s minuti"},c.prototype.everyX0Seconds=function(){return"ogni %s secondi"},c.prototype.fifth=function(){return"quinto"},c.prototype.first=function(){return"primo"},c.prototype.firstWeekday=function(){return"primo giorno della settimana"},c.prototype.fourth=function(){return"quarto"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuti %s al %s dopo l'ora"},c.prototype.second=function(){return"secondo"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"secondi %s al %s oltre il minuto"},c.prototype.spaceAnd=function(){return" e"},c.prototype.spaceX0OfTheMonth=function(){return" %s del mese"},c.prototype.lastDay=function(){return"l'ultimo giorno"},c.prototype.third=function(){return"terzo"},c.prototype.weekdayNearestDayX0=function(){return"giorno della settimana più vicino al %s"},c.prototype.commaStartingX0=function(){return", a partire %s"},c.prototype.daysOfTheWeek=function(){return["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},c.prototype.monthsOfTheYear=function(){return["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},c}();return N.it=l,u().locales.it=new l,M})())})(qMe);var ene={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:j=>{j.exports=t}},o={};function r(j){var T=o[j];if(T!==void 0)return T.exports;var D=o[j]={exports:{}};return s[j](D,D.exports,r),D.exports}r.n=j=>{var T=j&&j.__esModule?()=>j.default:()=>j;return r.d(T,{a:T}),T},r.d=(j,T)=>{for(var D in T)r.o(T,D)&&!r.o(j,D)&&Object.defineProperty(j,D,{enumerable:!0,get:T[D]})},r.o=(j,T)=>Object.prototype.hasOwnProperty.call(j,T),r.r=j=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(j,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.ru=void 0;var l=function(j,T){var D=Number(j);return D!==void 0?T[D%100>4&&D%100<20?2:[2,0,1,1,1,2][D%10<5?Math.abs(D)%10:5]]:T[2]},c=function(j,T){var D=Number(j);return D!==void 0?T[D===0?0:D===1||D===2||D===4?1:2]:T[1]},L=function(){function j(){}return j.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},j.prototype.atX0MinutesPastTheHourGt20=function(){return null},j.prototype.commaMonthX0ThroughMonthX1=function(){return null},j.prototype.commaYearX0ThroughYearX1=function(){return null},j.prototype.use24HourTimeFormatByDefault=function(){return!0},j.prototype.everyMinute=function(){return"каждую минуту"},j.prototype.everyHour=function(){return"каждый час"},j.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Произошла ошибка во время генерации описания выражения. Проверьте синтаксис крон-выражения."},j.prototype.atSpace=function(){return"В "},j.prototype.everyMinuteBetweenX0AndX1=function(){return"Каждую минуту с %s по %s"},j.prototype.at=function(){return"В"},j.prototype.spaceAnd=function(){return" и"},j.prototype.everySecond=function(){return"каждую секунду"},j.prototype.everyX0Seconds=function(T){return l(T,["каждую %s секунду","каждые %s секунды","каждые %s секунд"])},j.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды с %s по %s"},j.prototype.atX0SecondsPastTheMinute=function(T){return l(T,["в %s секунду","в %s секунды","в %s секунд"])},j.prototype.everyX0Minutes=function(T){return l(T,["каждую %s минуту","каждые %s минуты","каждые %s минут"])},j.prototype.minutesX0ThroughX1PastTheHour=function(){return"минуты с %s по %s"},j.prototype.atX0MinutesPastTheHour=function(T){return l(T,["в %s минуту","в %s минуты","в %s минут"])},j.prototype.everyX0Hours=function(T){return l(T,["каждый %s час","каждые %s часа","каждые %s часов"])},j.prototype.betweenX0AndX1=function(){return"с %s по %s"},j.prototype.atX0=function(){return"в %s"},j.prototype.commaEveryDay=function(){return", каждый день"},j.prototype.commaEveryX0DaysOfTheWeek=function(T){return l(T,["",", каждые %s дня недели",", каждые %s дней недели"])},j.prototype.commaX0ThroughX1=function(T){return T&&(T[0]=="2"||T[0]=="3")?", со %s по %s":", с %s по %s"},j.prototype.commaAndX0ThroughX1=function(T){return T&&(T[0]=="2"||T[0]=="3")?" и со %s по %s":" и с %s по %s"},j.prototype.first=function(T){return c(T,["первое","первый","первую"])},j.prototype.second=function(T){return c(T,["второе","второй","вторую"])},j.prototype.third=function(T){return c(T,["третье","третий","третью"])},j.prototype.fourth=function(T){return c(T,["четвертое","четвертый","четвертую"])},j.prototype.fifth=function(T){return c(T,["пятое","пятый","пятую"])},j.prototype.commaOnThe=function(T){return T==="2"?", во ":", в "},j.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},j.prototype.lastDay=function(){return"последний день"},j.prototype.commaOnTheLastX0OfTheMonth=function(T){return c(T,[", в последнее %s месяца",", в последний %s месяца",", в последнюю %s месяца"])},j.prototype.commaOnlyOnX0=function(T){return T&&T[0]==="2"?", только во %s":", только в %s"},j.prototype.commaAndOnX0=function(){return", и %s"},j.prototype.commaEveryX0Months=function(T){return l(T,[""," каждые %s месяца"," каждые %s месяцев"])},j.prototype.commaOnlyInMonthX0=function(){return", только %s"},j.prototype.commaOnlyInX0=function(){return", только в %s"},j.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последний день месяца"},j.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последний будний день месяца"},j.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(T){return l(T,[", за %s день до конца месяца",", за %s дня до конца месяца",", за %s дней до конца месяца"])},j.prototype.firstWeekday=function(){return"первый будний день"},j.prototype.weekdayNearestDayX0=function(){return"ближайший будний день к %s числу"},j.prototype.commaOnTheX0OfTheMonth=function(){return", в %s месяца"},j.prototype.commaEveryX0Days=function(T){return l(T,[", каждый %s день",", каждые %s дня",", каждые %s дней"])},j.prototype.commaBetweenDayX0AndX1OfTheMonth=function(T){return T&&T.substring(0,T.indexOf("-"))=="2"?", со %s по %s число месяца":", с %s по %s число месяца"},j.prototype.commaOnDayX0OfTheMonth=function(T){return T&&T[0]=="2"?", во %s число месяца":", в %s число месяца"},j.prototype.commaEveryX0Years=function(T){return l(T,[", каждый %s год",", каждые %s года",", каждые %s лет"])},j.prototype.commaStartingX0=function(){return", начало %s"},j.prototype.daysOfTheWeek=function(){return["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},j.prototype.daysOfTheWeekInCase=function(T){return T===void 0&&(T=2),T==1?["воскресенья","понедельника","вторника","среды","четверга","пятницы","субботы"]:["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"]},j.prototype.monthsOfTheYear=function(){return["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},j.prototype.monthsOfTheYearInCase=function(T){return T==1?["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]:this.monthsOfTheYear()},j}();return N.ru=L,u().locales.ru=new L,M})())})(ene);var tne={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.zh_CN=void 0;var l=function(){function c(){}return c.prototype.setPeriodBeforeTime=function(){return!0},c.prototype.pm=function(){return"下午"},c.prototype.am=function(){return"上午"},c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return", 从%s年至%s年"},c.prototype.use24HourTimeFormatByDefault=function(){return!1},c.prototype.everyMinute=function(){return"每分钟"},c.prototype.everyHour=function(){return"每小时"},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"生成表达式描述时发生了错误,请检查cron表达式语法。"},c.prototype.atSpace=function(){return"在"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 至 %s 之间的每分钟"},c.prototype.at=function(){return"在"},c.prototype.spaceAnd=function(){return" 和"},c.prototype.everySecond=function(){return"每秒"},c.prototype.everyX0Seconds=function(){return"每隔 %s 秒"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分钟后的第 %s 到 %s 秒"},c.prototype.atX0SecondsPastTheMinute=function(){return"在一分钟后的第 %s 秒"},c.prototype.everyX0Minutes=function(){return"每隔 %s 分钟"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整点后的第 %s 到 %s 分钟"},c.prototype.atX0MinutesPastTheHour=function(){return"在整点后的第 %s 分钟"},c.prototype.everyX0Hours=function(){return"每隔 %s 小时"},c.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之间"},c.prototype.atX0=function(){return"在%s"},c.prototype.commaEveryDay=function(){return", 每天"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每周的每 %s 天"},c.prototype.commaX0ThroughX1=function(){return", %s至%s"},c.prototype.commaAndX0ThroughX1=function(){return", 和%s至%s"},c.prototype.first=function(){return"第一个"},c.prototype.second=function(){return"第二个"},c.prototype.third=function(){return"第三个"},c.prototype.fourth=function(){return"第四个"},c.prototype.fifth=function(){return"第五个"},c.prototype.commaOnThe=function(){return", 限每月的"},c.prototype.spaceX0OfTheMonth=function(){return"%s"},c.prototype.lastDay=function(){return"本月最后一天"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", 限每月的最后一个%s"},c.prototype.commaOnlyOnX0=function(){return", 仅%s"},c.prototype.commaAndOnX0=function(){return", 或者为%s"},c.prototype.commaEveryX0Months=function(){return", 每隔 %s 个月"},c.prototype.commaOnlyInX0=function(){return", 仅限%s"},c.prototype.commaOnlyInMonthX0=function(){return", 仅于%s份"},c.prototype.commaOnlyInYearX0=function(){return", 仅于 %s 年"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", 限每月的最后一天"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 限每月的最后一个工作日"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 限每月最后%s天"},c.prototype.firstWeekday=function(){return"第一个工作日"},c.prototype.weekdayNearestDayX0=function(){return"最接近 %s 号的工作日"},c.prototype.commaOnTheX0OfTheMonth=function(){return", 限每月的%s"},c.prototype.commaEveryX0Days=function(){return", 每隔 %s 天"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 限每月的 %s 至 %s 之间"},c.prototype.commaOnDayX0OfTheMonth=function(){return", 限每月%s"},c.prototype.commaEveryX0Years=function(){return", 每隔 %s 年"},c.prototype.commaStartingX0=function(){return", %s开始"},c.prototype.dayX0=function(){return" %s 号"},c.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},c.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},c}();return N.zh_CN=l,u().locales.zh_CN=new l,M})())})(tne);var sne={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.uk=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.everyMinute=function(){return"щохвилини"},c.prototype.everyHour=function(){return"щогодини"},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"ВІдбулася помилка підчас генерації опису. Перевірта правильність написання cron виразу."},c.prototype.atSpace=function(){return"О "},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Щохвилини між %s та %s"},c.prototype.at=function(){return"О"},c.prototype.spaceAnd=function(){return" та"},c.prototype.everySecond=function(){return"Щосекунди"},c.prototype.everyX0Seconds=function(){return"кожні %s секунд"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"з %s по %s секунду"},c.prototype.atX0SecondsPastTheMinute=function(){return"о %s секунді"},c.prototype.everyX0Minutes=function(){return"кожні %s хвилин"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"з %s по %s хвилину"},c.prototype.atX0MinutesPastTheHour=function(){return"о %s хвилині"},c.prototype.everyX0Hours=function(){return"кожні %s годин"},c.prototype.betweenX0AndX1=function(){return"між %s та %s"},c.prototype.atX0=function(){return"о %s"},c.prototype.commaEveryDay=function(){return", щоденно"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожен %s день тижня"},c.prototype.commaX0ThroughX1=function(){return", %s по %s"},c.prototype.commaAndX0ThroughX1=function(){return", та %s по %s"},c.prototype.first=function(){return"перший"},c.prototype.second=function(){return"другий"},c.prototype.third=function(){return"третій"},c.prototype.fourth=function(){return"четвертий"},c.prototype.fifth=function(){return"п'ятий"},c.prototype.commaOnThe=function(){return", в "},c.prototype.spaceX0OfTheMonth=function(){return" %s місяця"},c.prototype.lastDay=function(){return"останній день"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", в останній %s місяця"},c.prototype.commaOnlyOnX0=function(){return", тільки в %s"},c.prototype.commaAndOnX0=function(){return", і в %s"},c.prototype.commaEveryX0Months=function(){return", кожен %s місяць"},c.prototype.commaOnlyInX0=function(){return", тільки в %s"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", в останній день місяця"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в останній будень місяця"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s днів до останнього дня місяця"},c.prototype.firstWeekday=function(){return"перший будень"},c.prototype.weekdayNearestDayX0=function(){return"будень найближчий до %s дня"},c.prototype.commaOnTheX0OfTheMonth=function(){return", в %s місяця"},c.prototype.commaEveryX0Days=function(){return", кожен %s день"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", між %s та %s днями місяця"},c.prototype.commaOnDayX0OfTheMonth=function(){return", на %s день місяця"},c.prototype.commaEveryX0Years=function(){return", кожні %s роки"},c.prototype.commaStartingX0=function(){return", початок %s"},c.prototype.daysOfTheWeek=function(){return["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"]},c.prototype.monthsOfTheYear=function(){return["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},c}();return N.uk=l,u().locales.uk=new l,M})())})(sne);var ine={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.pt_BR=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},c.prototype.at=function(){return"às"},c.prototype.atSpace=function(){return"às "},c.prototype.atX0=function(){return"Às %s"},c.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},c.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},c.prototype.betweenX0AndX1=function(){return"entre %s e %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},c.prototype.commaEveryDay=function(){return", a cada dia"},c.prototype.commaEveryX0Days=function(){return", a cada %s dias"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},c.prototype.commaEveryX0Months=function(){return", a cada %s meses"},c.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},c.prototype.commaOnlyInX0=function(L){return L&&L.length>1&&L[1]==="-"?"somente %s":", somente em %s"},c.prototype.commaOnlyOnX0=function(L){return L&&L.length>1&&L[1]==="-"?", somente %s":", somente de %s"},c.prototype.commaAndOnX0=function(){return", e de %s"},c.prototype.commaOnThe=function(L,j){return j==="6"||j==="0"?", no":", na "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},c.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},c.prototype.commaX0ThroughX1=function(){return", de %s a %s"},c.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},c.prototype.everyHour=function(){return"a cada hora"},c.prototype.everyMinute=function(){return"a cada minuto"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},c.prototype.everySecond=function(){return"a cada segundo"},c.prototype.everyX0Hours=function(){return"a cada %s horas"},c.prototype.everyX0Minutes=function(){return"a cada %s minutos"},c.prototype.everyX0Seconds=function(){return"a cada %s segundos"},c.prototype.fifth=function(L){return L==="6"||L==="0"?"quinto":"quinta"},c.prototype.first=function(L){return L==="6"||L==="0"?"primeiro":"primeira"},c.prototype.firstWeekday=function(){return"primeiro dia da semana"},c.prototype.fourth=function(L){return L==="6"||L==="0"?"quarto":"quarta"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},c.prototype.second=function(L){return L==="6"||L==="0"?"segundo":"segunda"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},c.prototype.spaceAnd=function(){return" e"},c.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},c.prototype.lastDay=function(){return"o último dia"},c.prototype.third=function(L){return L==="6"||L==="0"?"terceiro":"terceira"},c.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},c.prototype.commaEveryX0Years=function(){return", a cada %s anos"},c.prototype.commaStartingX0=function(){return", iniciando %s"},c.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},c.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},c}();return N.pt_BR=l,u().locales.pt_BR=new l,M})())})(ine);var one={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var n=r(93),u=r.n(n),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.pl=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Wystąpił błąd podczas generowania opisu wyrażenia cron. Sprawdź składnię wyrażenia cron."},c.prototype.at=function(){return"O"},c.prototype.atSpace=function(){return"O "},c.prototype.atX0=function(){return"o %s"},c.prototype.atX0MinutesPastTheHour=function(){return"w %s minucie"},c.prototype.atX0SecondsPastTheMinute=function(){return"w %s sekundzie"},c.prototype.betweenX0AndX1=function(){return"od %s do %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s-ego do %s-ego dnia miesiąca"},c.prototype.commaEveryDay=function(){return", co dzień"},c.prototype.commaEveryX0Days=function(){return", co %s dni"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", co %s dni tygodnia"},c.prototype.commaEveryX0Months=function(){return", co %s miesięcy"},c.prototype.commaEveryX0Years=function(){return", co %s lat"},c.prototype.commaOnDayX0OfTheMonth=function(){return", %s-ego dnia miesiąca"},c.prototype.commaOnlyInX0=function(){return", tylko %s"},c.prototype.commaOnlyOnX0=function(){return", tylko %s"},c.prototype.commaAndOnX0=function(){return", i %s"},c.prototype.commaOnThe=function(){return", "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", ostatni dzień miesiąca"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ostatni dzień roboczy miesiąca"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni przed ostatnim dniem miesiąca"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", ostatni %s miesiąca"},c.prototype.commaOnTheX0OfTheMonth=function(){return", %s miesiąca"},c.prototype.commaX0ThroughX1=function(){return", od %s do %s"},c.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},c.prototype.everyHour=function(){return"co godzinę"},c.prototype.everyMinute=function(){return"co minutę"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Co minutę od %s do %s"},c.prototype.everySecond=function(){return"co sekundę"},c.prototype.everyX0Hours=function(){return"co %s godzin"},c.prototype.everyX0Minutes=function(){return"co %s minut"},c.prototype.everyX0Seconds=function(){return"co %s sekund"},c.prototype.fifth=function(){return"piąty"},c.prototype.first=function(){return"pierwszy"},c.prototype.firstWeekday=function(){return"pierwszy dzień roboczy"},c.prototype.fourth=function(){return"czwarty"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},c.prototype.second=function(){return"drugi"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},c.prototype.spaceAnd=function(){return" i"},c.prototype.spaceX0OfTheMonth=function(){return" %s miesiąca"},c.prototype.lastDay=function(){return"ostatni dzień"},c.prototype.third=function(){return"trzeci"},c.prototype.weekdayNearestDayX0=function(){return"dzień roboczy najbliższy %s-ego dnia"},c.prototype.commaStartingX0=function(){return", startowy %s"},c.prototype.daysOfTheWeek=function(){return["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},c.prototype.monthsOfTheYear=function(){return["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},c}();return N.pl=l,u().locales.pl=new l,M})())})(one);function qn(i,e){return VMe.toString(i,{locale:e})}const he={mainDiv:{width:"100%",height:"100%"},periodSelect:{display:"block",width:250},tabContent:{padding:20,height:"calc(100% - 240px)",overflow:"auto"},numberButton:{padding:4,minWidth:40,margin:5},appBar:{color:"white"},warning:{marginLeft:16,color:"red",fontSize:12}},rne=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Mne=["January","February","March","April","May","June","July","August","September","October","November","December"];function MM(i,e){const t=[];if(i==="*"){if(e===24||e===60||e===7)for(let o=0;o1){const M=parseInt(r[1],10);for(let n=parseInt(r[0],10);n<=M;n++)t.push(n)}else t.push(parseInt(s[o],10))}t.sort();for(let o=t.length-1;o>=0;o--)t[o]===t[o+1]&&t.splice(o+1,1);return t}function nM(i,e){if(typeof i!="object"&&(i=[i]),i.length===e)return"*";const t=[];if(!i.length)return"-";i=i.map(r=>parseInt(r,10)),i.sort((r,M)=>r-M);let s=i[0],o=i[0];for(let r=1;rthis.props.onChange&&this.props.onChange(this.state.cron),100)}static cron2state(e){e=e.replace(/['"]/g,"").trim();const t=e.split(" ").map(o=>o.trim());let s;return t.length===6?s={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",dates:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:s={seconds:!1,minutes:t[0]||"*",hours:t[1]||"*",dates:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},s}static state2cron(e){let t=`${e.minutes} ${e.hours} ${e.dates} ${e.months} ${e.dow}`;return e.seconds!==!1&&(t=`${e.seconds} ${t}`),t}recalcCron(){const e=Lt.state2cron(this.state);e!==this.state.cron&&this.setState({cron:e},()=>this.props.onChange&&this.props.onChange(this.state.cron))}onToggle(e,t,s){if(e===!0)this.setCronAttr(t,"*");else if(e===!1)s===60||s===24?this.setCronAttr(t,"0"):this.setCronAttr(t,"1");else{const o=MM(this.state[t],s),r=o.indexOf(e);r!==-1?o.splice(r,1):(o.push(e),o.sort()),this.setCronAttr(t,nM(o,s))}}getDigitsSelector(e,t){let s=[];if(t===7)s=[1,2,3,4,5,6,0];else if(t===60||t===24)for(let r=0;rthis.onToggle(!1,e,t)},d.t("ra_Deselect all")),a.createElement(g.Button,{key:"addall",variant:"contained",style:he.numberButton,color:"secondary",onClick:()=>this.onToggle(!0,e,t)},d.t("ra_Select all")),a.createElement("div",{key:"all"},s.map(r=>[t===7&&r===4||t===12&&r===7||t===31&&!((r-1)%10)||t===60&&r&&!(r%10)||t===24&&r&&!(r%6)?a.createElement("div",{key:`allInner${r}`,style:{width:"100%"}}):null,a.createElement(g.Button,{key:`_${r}`,variant:o.indexOf(r)!==-1?"contained":"outlined",style:he.numberButton,color:o.indexOf(r)!==-1?"secondary":"primary",onClick:()=>this.onToggle(r,e,t)},t===7?d.t(rne[r]):t===12?Mne[r-1]:r)]))]}getPeriodsTab(e,t){const s=this.state[e];let o=s==="*",r=s==null?!1:s.toString().includes("/"),M;if(this.state.modes[e]===null){M=o?"every":r?"everyN":"specific";const u=JSON.parse(JSON.stringify(this.state.modes));return u[e]=M,setTimeout(()=>this.setState({modes:u},()=>this.recalcCron()),100),null}o=this.state.modes[e]==="every",r=this.state.modes[e]==="everyN",M=this.state.modes[e];let n=1;return r&&s&&(n=parseInt(s.replace("*/",""),10)||1),a.createElement("div",null,a.createElement(g.Select,{variant:"standard",style:{...he.periodSelect,verticalAlign:"bottom"},value:M,onChange:u=>{const N=JSON.parse(JSON.stringify(this.state.modes));if(N[e]=u.target.value,u.target.value==="every")this.setCronAttr(e,"*",N);else if(u.target.value==="everyN"){const l=parseInt((this.state[e]||"").toString().replace("*/",""),10)||1;this.setCronAttr(e,`*/${l}`,N)}else if(u.target.value==="specific"){let l=parseInt((this.state[e]||"").toString().split(",")[0],10)||0;!l&&(e==="months"||e==="dates")&&(l=1),this.setCronAttr(e,nM(l,t),N)}}},a.createElement(g.MenuItem,{key:"every",value:"every"},d.t(`sc_every_${e}`)),a.createElement(g.MenuItem,{key:"everyN",value:"everyN"},d.t(`sc_everyN_${e}`)),a.createElement(g.MenuItem,{key:"specific",value:"specific"},d.t(`sc_specific_${e}`))),r&&a.createElement(g.TextField,{variant:"standard",key:"interval",label:d.t(`sc_${e}`),value:n,slotProps:{htmlInput:{min:1,max:t},inputLabel:{shrink:!0}},onChange:u=>{this.setState({[e]:`*/${u.target.value}`},()=>this.recalcCron())},type:"number",margin:"normal"}),!o&&!r&&this.getDigitsSelector(e,t))}static convertCronToText(e,t){return e.split(" ").includes("-")?d.t("ra_Invalid CRON"):qn(e,t)}setCronAttr(e,t,s){s?e==="seconds"?this.setState({seconds:t,modes:s},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t,modes:s},()=>this.recalcCron()):e==="hours"?this.setState({hours:t,modes:s},()=>this.recalcCron()):e==="dates"?this.setState({dates:t,modes:s},()=>this.recalcCron()):e==="months"?this.setState({months:t,modes:s},()=>this.recalcCron()):e==="dow"?this.setState({dow:t,modes:s},()=>this.recalcCron()):this.setState({modes:s},()=>this.recalcCron()):e==="seconds"?this.setState({seconds:t},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t},()=>this.recalcCron()):e==="hours"?this.setState({hours:t},()=>this.recalcCron()):e==="dates"?this.setState({dates:t},()=>this.recalcCron()):e==="months"?this.setState({months:t},()=>this.recalcCron()):e==="dow"&&this.setState({dow:t},()=>this.recalcCron())}render(){const e=this.state.seconds!==!1?this.state.tab:this.state.tab+1,t=this.state.minutes==="*"||this.state.minutes==="*/1",s=this.state.seconds==="*"||this.state.seconds==="*/1";return a.createElement("div",{style:he.mainDiv},a.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)"}},a.createElement(g.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0})),a.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)",height:60}},Lt.convertCronToText(this.state.cron,this.props.language||"en"),a.createElement("span",{style:he.warning},s?d.t("ra_warning_every_second"):t?d.t("ra_warning_every_minute"):"")),a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{checked:!!this.state.seconds,onChange:o=>this.setState({seconds:o.target.checked?"*":!1},()=>this.recalcCron())}),label:d.t("ra_use seconds")}),a.createElement(g.AppBar,{position:"static",sx:{"&.MuiAppBar-root":he.appBar},color:"secondary"},a.createElement(g.Tabs,{value:this.state.tab,style:he.appBar,color:"secondary",onChange:(o,r)=>this.setState({tab:r})},this.state.seconds!==!1&&a.createElement(g.Tab,{id:"sc_seconds",label:d.t("sc_seconds")}),a.createElement(g.Tab,{id:"minutes",label:d.t("sc_minutes")}),a.createElement(g.Tab,{id:"hours",label:d.t("sc_hours")}),a.createElement(g.Tab,{id:"dates",label:d.t("sc_dates")}),a.createElement(g.Tab,{id:"months",label:d.t("sc_months")}),a.createElement(g.Tab,{id:"dow",label:d.t("sc_dows")}))),e===0&&a.createElement("div",{style:he.tabContent},this.getPeriodsTab("seconds",60)),e===1&&a.createElement("div",{style:he.tabContent},this.getPeriodsTab("minutes",60)),e===2&&a.createElement("div",{style:he.tabContent},this.getPeriodsTab("hours",24)),e===3&&a.createElement("div",{style:he.tabContent},this.getPeriodsTab("dates",31)),e===4&&a.createElement("div",{style:he.tabContent},this.getPeriodsTab("months",12)),e===5&&a.createElement("div",{style:he.tabContent},this.getPeriodsTab("dow",7)))}}const Ut={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:i=>({color:i.palette.primary.main})};function i4e(i){const{open:e,toggleTranslation:t,noTranslation:s,title:o,fullWidth:r,help:M,maxWidth:n,progress:u,icon:N,applyDisabled:l,applyButton:c,onClose:L,children:j,titleButtonApply:T,titleButtonClose:D,onApply:z,textInput:h,defaultValue:O,overflowHidden:p}=i,[E,C]=b.useState(O||"");b.useEffect(()=>{C(O||"")},[O]);let I=null;return N&&(I=N),a.createElement(g.Dialog,{open:e,maxWidth:n||"md",fullWidth:!!r,disableEscapeKeyDown:!1,onClose:L,sx:{"& .MuiDialog-paper":Ut.modalDialog}},o&&a.createElement(g.DialogTitle,null,N?a.createElement(I,{style:Ut.titleIcon}):null,o,d.getLanguage()!=="en"&&t?a.createElement(g.IconButton,{size:"large",sx:S.getStyle(i.theme,Ut.languageButton,s&&Ut.languageButtonActive),onClick:()=>t(),title:d.t("Disable/Enable translation")},a.createElement(m.Language,null)):null),a.createElement(g.DialogContent,{style:{...Ut.content,...p?Ut.overflowHidden:void 0,paddingTop:8}},h&&a.createElement(g.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:E,onChange:_=>C(_.target.value)}),j,M?a.createElement("div",null,M):null),a.createElement(g.DialogActions,null,c!==!1&&a.createElement(g.Button,{startIcon:a.createElement(m.Check,null),disabled:u||l&&O===E,onClick:()=>z(h?E:""),variant:"contained",color:"primary"},d.t(T||"ra_Ok")),a.createElement(g.Button,{color:"grey",onClick:L,disabled:u,variant:"contained",startIcon:a.createElement(m.Close,null)},d.t(D||"ra_Cancel"))))}function nne(){const i=oc();return[...i.breakpoints.keys].reverse().reduce((t,s)=>{const o=g.useMediaQuery(i.breakpoints.up(s));return!t&&o?s:t},null)||"xs"}function di(){return i=>function(t){const s=nne();return a.createElement(i,{...t,width:s})}}function ane(i){const[e,t]=a.useState(i.input||i.value||""),[s,o]=a.useState("");return a.createElement(g.Dialog,{open:!0,onClose:()=>i.onClose(null),"aria-labelledby":"form-dialog-title",fullWidth:i.fullWidth!==void 0?i.fullWidth:!1},a.createElement(g.DialogTitle,{id:"form-dialog-title"},i.titleText),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,null,i.promptText),a.createElement(g.TextField,{variant:"standard",autoFocus:!0,margin:"dense",error:!!s,helperText:s===!0||!s?"":s,value:e,label:i.labelText||"",type:i.type||"text",onKeyUp:r=>r.code==="Enter"&&e&&i.onClose(e),onChange:r=>{let M="";i.verify&&(M=!i.verify(r.target.value)),i.rule?t(i.rule(r.target.value)):t(r.target.value),o(M)},fullWidth:!0})),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",disabled:!e||!!s,onClick:()=>i.onClose(e),color:"primary",startIcon:a.createElement(m.Check,null)},i.applyText||d.t("ra_Ok")),a.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>i.onClose(null),startIcon:a.createElement(m.Close,null)},i.cancelText||d.t("ra_Cancel"))))}const cne=di()(ane);function uo(i){return a.createElement("svg",{onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 486 486",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),xmlns:"http://www.w3.org/2000/svg",className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"m414.928297,149.715165 c-2.639376,-57.222555 -35.669446,-106.505345 -83.345894,-132.039151 c-3.758948,-2.049842 -7.636885,-3.932022 -11.590542,-5.641125 c-19.303146,-8.394083 -40.607459,-13.050853 -63.004303,-13.050853 c-84.113909,0 -152.791790,65.703174 -157.718988,148.605566 l0.043268,-0.010816 v0.281245 c0,3.061243 -0.146031,16.750306 -0.146031,16.750306 l-2.352723,5.224668 h15.744315 c5.916964,-19.384275 24.078904,-32.635245 45.513024,-32.635245 c26.231510,0 47.573684,21.915481 47.573684,48.146991 c0,26.226103 -21.342174,47.146409 -47.573684,47.146409 c-25.111939,0 -45.734774,-19.735831 -47.443879,-44.658471 h-18.789334 c-0.400232,0 -0.778832,0.638209 -1.162839,0.584122 l-19.762875,55.199753 c-2.774590,7.696379 2.926030,16.214860 11.103771,16.214860 h17.020735 l-0.129805,87.899899 c0,17.356066 14.073071,31.174935 31.429136,31.174935 h56.205745 v82.648189 c0,12.877778 12.937273,22.580734 25.815051,22.580734 h144.597825 c12.877778,0 23.429877,-9.702955 23.429877,-22.580734 v-166.037352 c0,-22.645636 5.976457,-44.761234 16.561008,-64.789128 c11.055093,-20.925714 17.523731,-44.620611 18.129489,-69.792045 c0.027042,-1.260193 0.037858,-2.552839 0.037858,-3.845485 c0,-2.466302 -0.070310,-4.938014 -0.183890,-7.377273 zm-155.393308,-11.731165 h-13.456494 v13.559257 c0,4.732489 -4.267352,8.567157 -8.999842,8.567157 c-4.727079,0 -8.999842,-3.834667 -8.999842,-8.567157 v-13.559257 h-12.185483 c-4.732489,0 -8.567157,-4.267352 -8.567157,-8.999842 c0,-4.727079 3.834667,-8.999842 8.567157,-8.999842 h12.185483 v-12.077311 c0,-4.732489 4.272762,-8.567157 8.999842,-8.567157 c4.732489,0 8.999842,3.834667 8.999842,8.567157 v12.077311 h13.456494 c4.727079,0 8.567157,4.272762 8.567157,8.999842 c0,4.732489 -3.840077,8.999842 -8.567157,8.999842 zm0,0"}),a.createElement("path",{fill:"currentColor",d:"m187.695312 285.875c3.9375-3.980469 6.414063-9.449219 6.414063-15.523438 0-12.128906-9.855469-21.980468-21.984375-21.980468-6.007812 0-11.472656 2.410156-15.457031 6.347656-4.023438 4.003906-6.523438 9.539062-6.523438 15.636719 0 12.125 9.855469 21.980469 21.980469 21.980469 6.078125 0 11.585938-2.476563 15.570312-6.460938zm0 0"}))}function Gt(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 650 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"m524,128l-192,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,288c0,26.51 21.49,48 48,48l416,0c26.51,0 48,-21.49 48,-48l0,-224c0,-26.51 -21.49,-48 -48,-48z"}))}function Ks(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 650 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"m631.75617,292.093l-72.424,124.155a63.997,63.997 0 0 1 -55.281,31.752l-399.964,0c-18.523,0 -30.064,-20.093 -20.731,-36.093l72.424,-124.155a64,64 0 0 1 55.282,-31.752l399.964,0c18.523,0 30.064,20.093 20.73,36.093zm-420.694,-68.093l328,0l0,-48c0,-26.51 -21.49,-48 -48,-48l-160,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,278.046l69.077,-118.418c17.137,-29.378 48.912,-47.628 82.923,-47.628z"}))}function Fo(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))}var une=i=>typeof i!="string"?{}:i.split(/ ?; ?/).reduce((e,t)=>{const[s,o]=t.split(/ ?: ?/).map((r,M)=>M===0?r.replace(/\s+/g,""):r.trim());if(s&&o){const r=s.replace(/(\w)-(\w)/g,(n,u,N)=>`${u}${N.toUpperCase()}`);let M=o.trim();Number.isNaN(Number(o))||(M=Number(o)),e[s.startsWith("-")?s:r]=M}return e},{});function Nne(i=6){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let s=i;s>0;--s)t+=e[Math.round(Math.random()*(e.length-1))];return t}var lne=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],aM={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function Lne(i,e){var r;const{key:t,level:s,...o}=e;switch(i.nodeType){case 1:return b.createElement(gne(i.nodeName),jne(i,t),cM(i.childNodes,s,o));case 3:{const M=((r=i.nodeValue)==null?void 0:r.toString())??"";if(!o.allowWhiteSpaces&&/^\s+$/.test(M)&&!/[\u00A0\u202F]/.test(M))return null;if(!i.parentNode)return M;const n=i.parentNode.nodeName.toLowerCase();return lne.includes(n)?(/\S/.test(M)&&console.warn(`A textNode is not allowed inside '${n}'. Your text "${M}" will be ignored`),null):M}case 8:return null;case 11:return cM(i.childNodes,s,e);default:return null}}function jne(i,e){const t={key:e};if(i instanceof Element){const s=i.getAttribute("class");s&&(t.className=s),[...i.attributes].forEach(o=>{switch(o.name){case"class":break;case"style":t[o.name]=une(o.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":t[aM[o.name]||o.name]=!0;break;default:t[aM[o.name]||o.name]=o.value}})}return t}function cM(i,e,t){const s=[...i].map((o,r)=>ri(o,{...t,index:r,level:e+1})).filter(Boolean);return s.length?s:null}function gne(i){return/[a-z]+[A-Z]+[a-z]+/.test(i)?i:i.toLowerCase()}function ea(i,e={}){return typeof i=="string"?Tne(i,e):i instanceof Node?ri(i,e):null}function ri(i,e={}){if(!i||!(i instanceof Node))return null;const{actions:t=[],index:s=0,level:o=0,randomKey:r}=e;let M=i,n=`${o}-${s}`;const u=[];return r&&o===0&&(n=`${Nne()}-${n}`),Array.isArray(t)&&t.forEach(N=>{N.condition(M,n,o)&&(typeof N.pre=="function"&&(M=N.pre(M,n,o),M instanceof Node||(M=i)),typeof N.post=="function"&&u.push(N.post(M,n,o)))}),u.length?u:Lne(M,{key:n,level:o,...e})}function Tne(i,e={}){if(!i||typeof i!="string")return null;const{includeAllNodes:t=!1,nodeOnly:s=!1,selector:o="body > *",type:r="text/html"}=e;try{const n=new DOMParser().parseFromString(i,r);if(t){const{childNodes:N}=n.body;return s?N:[...N].map(l=>ri(l,e))}const u=n.querySelector(o)||n.body.childNodes[0];if(!(u instanceof Node))throw new TypeError("Error parsing input");return s?u:ri(u,e)}catch{}return null}var yne=Object.defineProperty,Dne=(i,e,t)=>e in i?yne(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,bs=(i,e,t)=>Dne(i,typeof e!="symbol"?e+"":e,t),uM="react-inlinesvg",dne=10,ee={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function zne(i){return i[Math.floor(Math.random()*i.length)]}function js(){var i;return!!(typeof window<"u"&&((i=window.document)!=null&&i.createElement))}function Ine(){return Ane()&&typeof window<"u"&&window!==null}function wne(i,...e){const t={};for(const s in i)({}).hasOwnProperty.call(i,s)&&(e.includes(s)||(t[s]=i[s]));return t}function Cne(i){const e="abcdefghijklmnopqrstuvwxyz",s=`${e}${e.toUpperCase()}1234567890`;let o="";for(let r=0;r299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(r=>o.includes(r)))throw new Error(`Content type isn't valid: ${o}`);return t.text()}function hne(i=1){return new Promise(e=>{setTimeout(e,i*1e3)})}function Ane(){if(!document)return!1;const i=document.createElement("div");i.innerHTML="";const e=i.firstChild;return!!e&&e.namespaceURI==="http://www.w3.org/2000/svg"}var pne=class{constructor(){bs(this,"cacheApi"),bs(this,"cacheStore"),bs(this,"subscribers",[]),bs(this,"isReady",!1),this.cacheStore=new Map;let i=uM,e=!1;js()&&(i=window.REACT_INLINESVG_CACHE_NAME??uM,e=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),e?caches.open(i).then(t=>{this.cacheApi=t}).catch(t=>{console.error(`Failed to open cache: ${t.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const t=[...this.subscribers];this.subscribers.length=0,t.forEach(s=>{try{s()}catch(o){console.error(`Error in CacheStore subscriber callback: ${o.message}`)}})}):this.isReady=!0}onReady(i){this.isReady?i():this.subscribers.push(i)}async get(i,e){var t;return await(this.cacheApi?this.fetchAndAddToPersistentCache(i,e):this.fetchAndAddToInternalCache(i,e)),((t=this.cacheStore.get(i))==null?void 0:t.content)??""}set(i,e){this.cacheStore.set(i,e)}isCached(i){var e;return((e=this.cacheStore.get(i))==null?void 0:e.status)===ee.LOADED}async fetchAndAddToInternalCache(i,e){const t=this.cacheStore.get(i);if((t==null?void 0:t.status)===ee.LOADING){await this.handleLoading(i,async()=>{this.cacheStore.set(i,{content:"",status:ee.IDLE}),await this.fetchAndAddToInternalCache(i,e)});return}if(!(t!=null&&t.content)){this.cacheStore.set(i,{content:"",status:ee.LOADING});try{const s=await ta(i,e);this.cacheStore.set(i,{content:s,status:ee.LOADED})}catch(s){throw this.cacheStore.set(i,{content:"",status:ee.FAILED}),s}}}async fetchAndAddToPersistentCache(i,e){var o,r,M;const t=this.cacheStore.get(i);if((t==null?void 0:t.status)===ee.LOADED)return;if((t==null?void 0:t.status)===ee.LOADING){await this.handleLoading(i,async()=>{this.cacheStore.set(i,{content:"",status:ee.IDLE}),await this.fetchAndAddToPersistentCache(i,e)});return}this.cacheStore.set(i,{content:"",status:ee.LOADING});const s=await((o=this.cacheApi)==null?void 0:o.match(i));if(s){const n=await s.text();this.cacheStore.set(i,{content:n,status:ee.LOADED});return}try{await((r=this.cacheApi)==null?void 0:r.add(new Request(i,e)));const n=await((M=this.cacheApi)==null?void 0:M.match(i)),u=await(n==null?void 0:n.text())??"";this.cacheStore.set(i,{content:u,status:ee.LOADED})}catch(n){throw this.cacheStore.set(i,{content:"",status:ee.FAILED}),n}}async handleLoading(i,e){var t;for(let s=0;s({[i]:e}))}async delete(i){this.cacheApi&&await this.cacheApi.delete(i),this.cacheStore.delete(i)}async clear(){if(this.cacheApi){const i=await this.cacheApi.keys();await Promise.allSettled(i.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function NM(i){const e=b.useRef(void 0);return b.useEffect(()=>{e.current=i}),e.current}function mne(i){const{baseURL:e,content:t,description:s,handleError:o,hash:r,preProcessor:M,title:n,uniquifyIDs:u=!1}=i;try{const N=One(t,M),l=ea(N,{nodeOnly:!0});if(!l||!(l instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const c=sa(l,{baseURL:e,hash:r,uniquifyIDs:u});if(s){const L=c.querySelector("desc");L!=null&&L.parentNode&&L.parentNode.removeChild(L);const j=document.createElementNS("http://www.w3.org/2000/svg","desc");j.innerHTML=s,c.prepend(j)}if(typeof n<"u"){const L=c.querySelector("title");if(L!=null&&L.parentNode&&L.parentNode.removeChild(L),n){const j=document.createElementNS("http://www.w3.org/2000/svg","title");j.innerHTML=n,c.prepend(j)}}return c}catch(N){return o(N)}}function One(i,e){return e?e(i):i}function sa(i,e){const{baseURL:t="",hash:s,uniquifyIDs:o}=e,r=["id","href","xlink:href","xlink:role","xlink:arcrole"],M=["href","xlink:href"],n=(u,N)=>M.includes(u)&&(N?!N.includes("#"):!1);return o&&[...i.children].forEach(u=>{var N;if((N=u.attributes)!=null&&N.length){const l=Object.values(u.attributes).map(c=>{const L=c,j=/url\((.*?)\)/.exec(c.value);return j!=null&&j[1]&&(L.value=c.value.replace(j[0],`url(${t}${j[1]}__${s})`)),L});r.forEach(c=>{const L=l.find(j=>j.name===c);L&&!n(c,L.value)&&(L.value=`${L.value}__${s}`)})}return u.children.length?sa(u,e):u}),i}var Jt;function Ene(i){const{cacheRequests:e=!0,children:t=null,description:s,fetchOptions:o,innerRef:r,loader:M=null,onError:n,onLoad:u,src:N,title:l,uniqueHash:c}=i,[L,j]=b.useReducer((F,G)=>({...F,...G}),{content:"",element:null,isCached:e&&Jt.isCached(i.src),status:ee.IDLE}),{content:T,element:D,isCached:z,status:h}=L,O=NM(i),p=NM(L),E=b.useRef(c??Cne(8)),C=b.useRef(!1),I=b.useRef(!1),_=b.useCallback(F=>{C.current&&(j({status:F.message==="Browser does not support SVG"?ee.UNSUPPORTED:ee.FAILED}),n==null||n(F))},[n]),k=b.useCallback((F,G=!1)=>{C.current&&j({content:F,isCached:G,status:ee.LOADED})},[]),f=b.useCallback(async()=>{const F=await ta(N,o);k(F)},[o,k,N]),P=b.useCallback(()=>{try{const F=mne({...i,handleError:_,hash:E.current,content:T}),G=ea(F);if(!G||!b.isValidElement(G))throw new Error("Could not convert the src to a React element");j({element:G,status:ee.READY})}catch(F){_(F)}},[T,_,i]),Y=b.useCallback(async()=>{const F=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(N);let G;if(F?G=F[1]?window.atob(F[2]):decodeURIComponent(F[2]):N.includes("{C.current&&j({content:"",element:null,isCached:!1,status:ee.LOADING})},[]);b.useEffect(()=>{if(C.current=!0,!(!js()||I.current)){try{if(h===ee.IDLE){if(!Ine())throw new Error("Browser does not support SVG");if(!N)throw new Error("Missing src");V()}}catch(F){_(F)}return I.current=!0,()=>{C.current=!1}}},[]),b.useEffect(()=>{if(!(!js()||!O)&&O.src!==N){if(!N){_(new Error("Missing src"));return}V()}},[_,V,O,N]),b.useEffect(()=>{h===ee.LOADED&&P()},[h,P]),b.useEffect(()=>{!js()||!O||O.src!==N||(O.title!==l||O.description!==s)&&P()},[s,P,O,N,l]),b.useEffect(()=>{if(p)switch(h){case ee.LOADING:{p.status!==ee.LOADING&&Y();break}case ee.LOADED:{p.status!==ee.LOADED&&P();break}case ee.READY:{p.status!==ee.READY&&(u==null||u(N,z));break}}},[Y,P,z,u,p,N,h]);const oe=wne(i,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return js()?D?b.cloneElement(D,{ref:r,...oe}):[ee.UNSUPPORTED,ee.FAILED].includes(h)?t:M:M}function No(i){Jt||(Jt=new pne);const{loader:e}=i,[t,s]=b.useState(Jt.isReady);return b.useEffect(()=>{t||Jt.onReady(()=>{s(!0)})},[t]),t?a.createElement(Ene,{...i}):e}function _ne(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"}))}function o4e(i){let e;const t=i==null?void 0:i._id;return t?(t.startsWith("_design/")||t==="system"?e=a.createElement(m.SettingsApplications,{className:"iconOwn"}):t==="0_userdata"||t==="0_userdata.0"?e=a.createElement(m.Photo,{className:"iconOwn"}):t==="alias"||t==="alias.0"?e=a.createElement(_ne,{className:"iconOwn"}):t==="system.adapter"?e=a.createElement(m.SettingsApplications,{className:"iconOwn"}):t==="system.group"?e=a.createElement(m.SupervisedUserCircle,{className:"iconOwn"}):t==="system.user"?e=a.createElement(m.PersonOutlined,{className:"iconOwn"}):t==="system.host"?e=a.createElement(m.Router,{className:"iconOwn"}):t.endsWith(".connection")||t.endsWith(".connected")?e=a.createElement(m.Wifi,{className:"iconOwn"}):t.endsWith(".info")?e=a.createElement(m.Info,{className:"iconOwn"}):(i==null?void 0:i.type)==="meta"&&(e=a.createElement(m.Description,{className:"iconOwn"})),e||null):null}function r4e(i,e){e=e||".";let t="";const s=i==null?void 0:i.common;if(s){const o=s.icon;if(o)if(o.startsWith("data:image/"))t=o;else if(o.includes(".")){let r;i.type==="instance"||i.type==="adapter"?t=`${e}/adapter/${s.name}/${o}`:i._id&&i._id.startsWith("system.adapter.")?(r=i._id.split(".",3),o[0]==="/"?r[2]+=o:r[2]+=`/${o}`,t=`${e}/adapter/${r[2]}`):(r=i._id.split(".",2),o[0]==="/"?r[0]+=o:r[0]+=`/${o}`,t=`${e}/adapter/${r[0]}`)}else return null}return t||null}const Sne=window.location.hostname.endsWith("iobroker.in"),lM=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);function Ie(i){var e,t,s;if(i.src){if(typeof i.src=="string"){if(i.src.length<3)return i.sx?a.createElement(g.Box,{component:"span",sx:i.sx,title:i.title||void 0,style:{height:27,marginTop:-8,...i.styleUTF8||i.style},className:S.clsx(i.className,"iconOwn")},i.src):a.createElement("span",{title:i.title||void 0,style:{height:27,marginTop:-8,...i.styleUTF8||i.style},className:S.clsx(i.className,"iconOwn")},i.src);if(i.src.startsWith("data:image/svg"))return a.createElement(No,{title:i.title||void 0,src:i.src,className:S.clsx(i.className,"iconOwn"),width:((e=i.style)==null?void 0:e.width)||28,height:((t=i.style)==null?void 0:t.height)||((s=i.style)==null?void 0:s.width)||28,style:i.style||void 0});if(Sne&&!i.src.startsWith("http://")&&!i.src.startsWith("https://")){let o=i.src;return o.startsWith("./")?o=lM+o.substring(2):o.startsWith("/")||(o=lM+o),i.sx?a.createElement(g.Box,{component:"img",sx:i.sx,title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:`https://remote-files.iobroker.in${o}`,alt:i.alt||void 0,ref:i.ref,onError:r=>i.onError&&i.onError(r)}):a.createElement("img",{title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:`https://remote-files.iobroker.in${o}`,alt:i.alt||void 0,ref:i.ref,onError:r=>i.onError&&i.onError(r)})}return i.sx?a.createElement(g.Box,{component:"img",sx:i.sx,title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:i.src,alt:i.alt||void 0,ref:i.ref,onError:i.onError}):a.createElement("img",{title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:i.src,alt:i.alt||void 0,ref:i.ref,onError:i.onError})}return i.src}return null}const zt={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}},ge={images:["png","jpg","svg","jpeg","bmp","gif","apng","avif","webp","ico"],code:["js","json","json5","md"],txt:["log","txt","html","css","xml","ics"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};function LM(i,e){let t="";const s=new Uint8Array((i==null?void 0:i.data)||i),o=s.byteLength;for(let r=0;r{let r="";o.file!==void 0&&(r=o.file);const M={copyPossible:this.state.copyPossible,ext:this.state.ext};if(r.type==="Buffer")if(s.toLowerCase().endsWith(".json5")){M.ext="json5",M.copyPossible=!0;try{r=atob(LM(r,!0))}catch{console.error("Cannot convert base64 to string"),r=""}}else{const n=S.detectMimeType(LM(r));n&&(M.ext=n,M.copyPossible=ge.code.includes(n)||ge.txt.includes(n))}M.copyPossible&&(M.ext&&ge.txt.includes(M.ext)?(M.text=r,M.editingValue=r):M.ext&&ge.code.includes(M.ext)&&(M.code=r,M.editingValue=r)),this.setState(M)}).catch(o=>window.alert(`Cannot read file: ${o}`))}}componentDidMount(){this.readFile();const e=this.props.href.split("/");e.splice(0,2);const t=e[0],s=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,s,this.onFileChanged).catch(o=>window.alert(`Cannot subscribe on file: ${o}`))}componentWillUnmount(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);const e=this.props.href.split("/");e.splice(0,2);const t=e[0],s=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,s,this.onFileChanged).catch(o=>window.alert(`Cannot subscribe on file: ${o}`))}onFileChanged=(e,t,s)=>{this.state.changed||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.timeout=null,s===null?window.alert("Show file was deleted!"):this.state.text!==null||this.state.code!==null?this.readFile():this.setState({forceUpdate:Date.now()})},300))};getEditorOrViewer(){return a.createElement(g.TextField,{variant:"standard",style:zt.textarea,multiline:!0,value:this.state.editingValue||this.state.code||this.state.text,slotProps:{htmlInput:{readOnly:!this.state.editing}}})}getContent(){return this.state.ext&&ge.images.includes(this.state.ext)?this.state.imgError?a.createElement(Fo,{style:{...zt.img,...this.props.getStyleBackgroundImage()}}):a.createElement(Ie,{onError:e=>{e.target.onerror=null,this.setState({imgError:!0})},style:{...zt.img,...this.props.getStyleBackgroundImage()},src:`${this.props.href}?ts=${this.state.forceUpdate}`,alt:this.props.href}):this.state.ext&&ge.audio.includes(this.state.ext)?a.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},a.createElement("audio",{style:{width:"100%"},src:this.props.href,controls:!0})):this.state.ext&&ge.video.includes(this.state.ext)?a.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},a.createElement("video",{style:{width:"100%",height:"100%"},controls:!0},a.createElement("source",{src:this.props.href,type:`video/${this.state.ext}}`}))):this.state.code!==null||this.state.text!==null||this.state.editing?this.getEditorOrViewer():null}onSave(){}render(){return a.createElement(g.Dialog,{sx:{"&.MuiDialog-scrollPaper":zt.dialog,"& .MuiDialog-paper":zt.paper},scroll:"paper",open:!!this.props.href,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"ar_dialog_file_view_title"},a.createElement("div",{style:zt.dialogTitle},a.createElement(g.DialogTitle,{id:"ar_dialog_file_view_title"},`${this.props.t(this.state.editing?"Edit":"View")}: ${this.props.href}`),this.state.ext&&ge.images.includes(this.state.ext)&&a.createElement("div",null,a.createElement(g.IconButton,{size:"large",color:"inherit",onClick:this.props.setStateBackgroundImage},a.createElement(m.Brightness6,null)))),a.createElement(g.DialogContent,{style:zt.content},this.getContent()),a.createElement(g.DialogActions,null,this.state.copyPossible?a.createElement(g.Button,{color:"grey",onClick:e=>{e.stopPropagation(),e.preventDefault(),S.copyToClipboard(this.state.text||this.state.code||"")},startIcon:a.createElement(m.ContentCopy,null)},this.props.t("Copy content")):null,this.state.editing?a.createElement(g.Button,{color:"grey",disabled:this.state.editingValue===this.state.code||this.state.editingValue===this.state.text,variant:"contained",onClick:()=>this.onSave(),startIcon:a.createElement(m.Save,null)},this.props.t("Save")):null,a.createElement(g.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"primary",startIcon:a.createElement(m.Close,null)},this.props.t("Close"))))}}const fne=di()(xne),vt=32,He=32,$s=120,jM=64,gM="Not found",Ps={all:m.InsertDriveFile,images:m.Image,code:m.Code,txt:m.FontDownload,audio:m.AudioFile,video:m.Videocam},U={root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - 8px)",overflowX:"hidden",overflowY:"auto",padding:8},filesDivHint:{position:"absolute",bottom:0,left:20,opacity:.7,fontStyle:"italic",fontSize:12},filesDivTable:{height:"calc(100% - 56px)"},filesDivTile:{height:`calc(100% - ${48*2+8}px)`,display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:`0 0 ${jM}px`},itemTile:i=>({position:"relative",userSelect:"none",cursor:"pointer",height:$s,width:jM,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:"4px",borderRadius:"4px","&:hover":{background:i.palette.secondary.light,color:S.invertColor(i.palette.secondary.main,!0)}}),itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:i=>({width:"100%",height:$s-32-16-8,display:"block",pl:1,color:i.palette.secondary.main||"#fbff7d"}),itemFolderIconBack:i=>({position:"absolute",top:22,left:18,zIndex:1,color:(i.palette.mode==="dark","#FFF")}),itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:$s-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:$s-32-16-8,display:"block",objectFit:"contain"},itemSelected:i=>({background:i.palette.primary.main,color:S.invertColor(i.palette.primary.main,!0)}),itemTable:i=>({userSelect:"none",cursor:"pointer",height:vt,display:"inline-flex",lineHeight:`${vt}px`,"&:hover":{background:i.palette.secondary.light,color:S.invertColor(i.palette.secondary.main,!0)}}),itemNameTable:{display:"inline-block",pl:"10px",fontSize:"1rem",verticalAlign:"top",flexGrow:1,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden","@media screen and (max-width: 500px)":{textAlign:"end",direction:"rtl"}},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right",whiteSpace:"nowrap"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemNoImageTable:{marginTop:6},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:i=>({marginTop:"1px",marginLeft:"8px",display:"inline-block",width:30,height:30,color:i.palette.secondary.main||"#fbff7d"}),itemDownloadButtonTable:i=>({display:"inline-block",width:He,height:vt,minWidth:He,verticalAlign:"middle",textAlign:"center",padding:0,borderRadius:`${He/2}px`,"&:hover":{backgroundColor:i.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"},"& span":{pt:"9px"},"& svg":{width:14,height:14,fontSize:"1rem",mt:"-3px",verticalAlign:"middle",color:i.palette.mode==="dark"?"#EEE":"#111"}}),itemDownloadEmptyTable:{display:"inline-block",width:He,height:vt,minWidth:He,padding:0},itemAclButtonTable:{width:He,height:vt,minWidth:He,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:He,height:vt,minWidth:He,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:i=>({m:"20px",border:"3px dashed grey",borderRadius:"30px",width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:i.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"}),uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",height:"30%",width:"100%",margin:"auto",opacity:.3},menuButtonExpertActive:{color:"#c00000"},menuButtonRestrictActive:{color:"#c05000"},pathDiv:i=>({display:"flex",width:"calc(100% - 16px)",ml:1,mr:1,textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap",backgroundColor:i.palette.secondary.main,color:i.palette.secondary.contrastText,borderRadius:"4px 4px 0 0"}),pathDivInput:{width:"100%"},pathDivBreadcrumbDir:i=>({pl:"2px",pr:"2px",cursor:"pointer",color:"white","&:hover":{backgroundColor:i.palette.primary.main,color:i.palette.primary.contrastText}}),pathDivBreadcrumbSelected:{color:"#FFF"},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},specialFolder:i=>({color:i.palette.mode==="dark"?"#229b0f":"#5dd300"}),tooltip:{pointerEvents:"none"}},rt="0_userdata.0";function bt(i){const e=(i||"").split("/");return e.length&&e.pop(),e.join("/")}function Yi(i){const e=S.getFileExtension(i);return!!(e!=null&&e.toLowerCase().match(/[a-z]+/)&&e.length<5)}const q="Table",Qi="Tile";function TM(i,e){return i.folder&&e.folder?i.name>e.name?1:i.namee.name?1:i.name{var N;return u.startsWith(`${this.limitToPath}/`)||u===this.limitToPath||((N=this.limitToPath)==null?void 0:N.startsWith(`${u}/`))}))}catch{s=[]}let o;this.props.showViewTypeButton?o=this.localStorage.getItem("files.viewType")||q:o=q;let r=this.props.selected||this.localStorage.getItem("files.selected")||rt,M;if(e.restrictToFolder){r=e.restrictToFolder,M=e.restrictToFolder;const u=e.restrictToFolder.split("/");s=[];let N="";for(let l=0;l{if(this.state.viewType===q&&!this.findItem(this.state.selected)){const t=this.state.selected.split("/");for(;t.length&&!this.findItem(t.join("/"));)t.pop();let s;t.length?s=t.join("/"):s=rt,this.setState({selected:s,path:s,pathFocus:!1},()=>this.scrollToSelected())}else this.scrollToSelected();this.initialReadFinished=!0})}scrollToSelected(){if(this.mounted){const e=document.getElementById(this.state.selected);e==null||e.scrollIntoView()}}async componentDidMount(){this.mounted=!0,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`)),this.supportSubscribes=await this.props.socket.checkFeatureSupported("BINARY_STATE_EVENT"),this.supportSubscribes&&await this.props.socket.subscribeFiles("*","*",this.onFileChange)}componentWillUnmount(){this.supportSubscribes&&this.props.socket.unsubscribeFiles("*","*",this.onFileChange),this.mounted=!1,this.browseList=null,this.browseListRunning=!1,Object.values(this._tempTimeout).forEach(e=>e&&clearTimeout(e)),this._tempTimeout={}}browseFoldersCb(e,t,s){if(!(e!=null&&e.length))s(t);else{const o=e.shift();o?this.browseFolder(o,t).catch(r=>console.error(`Cannot read folder ${o}: ${r.message}`)).then(()=>{setTimeout(()=>this.browseFoldersCb(e,t,s),0)}):setTimeout(()=>this.browseFoldersCb(e,t,s),0)}}browseFolders(e,t){let s;return t?s=t:(s={},Object.keys(this.state.folders).forEach(o=>s[o]=this.state.folders[o])),e!=null&&e.length?new Promise(o=>{this.browseFoldersCb(e,s,o)}):Promise.resolve(s)}readDirSerial(e,t){return new Promise((s,o)=>{this.browseList&&(this.browseList.push({resolve:s,reject:o,adapter:e,relPath:t}),this.browseListRunning||this.processBrowseList())})}processBrowseList(e=0){!this.browseListRunning&&this.browseList&&this.browseList.length&&(this.browseListRunning=!0,this.browseList.length>10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(t=>{if(this.browseList){const s=this.browseList.shift();if(s){const o=s.resolve;s.resolve=null,s.reject=null,s.adapter=null,s.relPath=null,o&&o(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}).catch(t=>{if(this.browseList){const s=this.browseList.shift();if(s){const o=s.reject;s.resolve=null,s.reject=null,s.adapter=null,s.relPath=null,o&&o(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}))}async browseFolder(e,t,s,o){let r;if(t?r=t:(r={},Object.keys(this.state.folders).forEach(c=>{r[c]=this.state.folders[c]})),r[e]&&!o)return s?Promise.resolve(r):new Promise((c,L)=>{Promise.all(r[e].filter(j=>j.folder).map(j=>this.browseFolder(j.id,r,!0).catch(()=>{}))).then(()=>c(r)).catch(j=>L(new Error(j)))});if(!e||e==="/"){try{let c=await this.props.socket.readMetaItems();const L=[];let j=null;if(this.state.restrictToFolder){const D=this.state.restrictToFolder.split("/")[0];c=c.filter(z=>z._id===D)}else this.state.expertMode||(c=c.filter(D=>!D._id.endsWith(".admin")));const T=c.findIndex(D=>D._id==="system.meta.uuid");if(T!==-1&&c.splice(T,1),c.forEach(D=>{if(this.limitToObjectID&&this.limitToObjectID!==D._id)return;const z={id:D._id,name:D._id,title:D.common&&D.common.name||D._id,meta:!0,from:D.from,ts:D.ts,color:D.common&&D.common.color,icon:D.common&&D.common.icon,folder:!0,acl:D.acl,level:0};z.id===rt?j=z:L.push(z)}),L.sort((D,z)=>D.id>z.id?1:D.idD.folder).map(D=>this.browseFolder(D.id,r,!0).catch(()=>{}))).then(()=>r)}catch(c){const L=c;this.initialReadFinished&&window.alert(`Cannot read meta items: ${L.message}`),r[e||"/"]=[]}return r}const M=e.split("/"),n=M.length,u=M.shift(),N=M.join("/");let l;try{l=await this.readDirSerial(u||"",N)}catch(c){if(c==="Not exists"&&u==="0_userdata.0")l=[];else throw c}try{const c=[];if(l.forEach(L=>{var T;const j={id:`${e}/${L.file}`,ext:S.getFileExtension(L.file),folder:L.isDir,name:L.file,size:(T=L.stats)==null?void 0:T.size,modified:L.modifiedAt,acl:L.acl,level:n};this.state.restrictToFolder?(j.folder&&(j.id.startsWith(`${this.state.restrictToFolder}/`)||j.id===this.state.restrictToFolder||this.state.restrictToFolder.startsWith(`${j.id}/`))||j.id.startsWith(`${this.state.restrictToFolder}/`))&&c.push(j):this.limitToPath?(j.folder&&(j.id.startsWith(`${this.limitToPath}/`)||j.id===this.limitToPath||this.limitToPath.startsWith(`${j.id}/`))||j.id.startsWith(`${this.limitToPath}/`))&&c.push(j):c.push(j)}),c.sort(TM),r[e]=c,!s)return Promise.all(c.filter(L=>L.folder).map(L=>this.browseFolder(L.id,r,!0))).then(()=>r)}catch(c){const L=c;this.initialReadFinished&&window.alert(`Cannot read ${u}${N?`/${N}`:""}: ${L==null?void 0:L.message}`),r[e]=[]}return r}toggleFolder(e,t){t==null||t.stopPropagation();const s=[...this.state.expanded],o=s.indexOf(e.id);o===-1?(s.push(e.id),s.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(s)),e.temp?this.setState({expanded:s}):this.browseFolder(e.id).then(r=>this.setState({expanded:s,folders:r})).catch(r=>window.alert(r===gM?this.props.t('ra_Cannot find "%s"',e.id):this.props.t('ra_Cannot read "%s"',e.id)))):(s.splice(o,1),this.localStorage.setItem("files.expanded",JSON.stringify(s)),this.setState({expanded:s}))}onFileChange=(e,t,s)=>{const o=`${e}/${t}`,r=o.lastIndexOf("/"),M=o.substring(0,r);console.log(`File changed ${o}[${s}]`),this.state.folders[M]&&(this._tempTimeout[M]&&clearTimeout(this._tempTimeout[M]),this._tempTimeout[M]=setTimeout(()=>{delete this._tempTimeout[M],this.browseFolder(M,null,!1,!0).then(n=>this.setState({folders:n})).catch(n=>console.error(`Cannot read folder: ${n.message}`))},300))};changeFolder(e,t){var o;e==null||e.stopPropagation(),this.lastSelect=Date.now();let s=t||bt(this.state.currentDir);if(s==="/"&&(s=""),this.state.viewType==="Tile"&&((o=this.refFileDiv.current)!=null&&o.scrollTop)&&(this.scrollPositions[this.state.currentDir]=this.refFileDiv.current.scrollTop),this.localStorage.setItem("files.currentDir",s),t&&e&&(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)){this.setState({selected:s});return}if(s&&!this.state.folders[s]){this.browseFolder(s).then(r=>this.setState({folders:r,path:s,currentDir:s,selected:s,pathFocus:!1},()=>this.props.onSelect&&this.props.onSelect(""))).catch(r=>console.error(`Cannot read folder: ${r.message}`));return}this.setState({currentDir:s,selected:s,path:s,pathFocus:!1},()=>{if(this.props.onSelect&&this.props.onSelect(""),this.state.viewType==="Tile"&&this.scrollPositions[this.state.currentDir]){const r=this.scrollPositions[this.state.currentDir];delete this.scrollPositions[this.state.currentDir],this.refFileDiv.current&&(this.refFileDiv.current.scrollTop=r)}})}select(e,t,s){t&&t.stopPropagation(),this.lastSelect=Date.now(),this.localStorage.setItem("files.selected",e),this.setState({selected:e,path:e,pathFocus:!1},()=>{if(this.props.onSelect){const o=S.getFileExtension(e);(!this.props.filterFiles||o&&this.props.filterFiles.includes(o))&&(!this.state.filterByType||o&&ge[this.state.filterByType].includes(o))?this.props.onSelect(e,!1,!!this.state.folders[e]):this.props.onSelect("")}s&&s()})}getText(e){if(e)return typeof e=="object"?e[this.props.lang]||e.en||void 0:e}renderFolder(e,t){var u;if(this.state.filterEmpty&&!((u=this.state.folders[e.id])!=null&&u.length)&&e.id!==rt&&!e.temp)return null;const s=t?Ks:Gt,o=this.state.viewType===q?e.level*this.levelPadding:0,r=e.name===rt,M=r||e.name==="vis.0"||e.name==="vis-2.0",n=S.getStyle(this.props.theme,U[`itemFolderIcon${this.state.viewType}`],M&&U.specialFolder);return a.createElement(g.Box,{component:"div",key:e.id,id:e.id,style:this.state.viewType===q?{marginLeft:o,width:`calc(100% - ${o}px`}:void 0,onClick:N=>this.state.viewType===q?this.select(e.id,N):this.changeFolder(N,e.id),onDoubleClick:N=>this.state.viewType===q&&this.toggleFolder(e,N),title:this.getText(e.title),className:"browserItem",sx:S.getStyle(this.props.theme,U[`item${this.state.viewType}`],U[`itemFolder${this.state.viewType}`],this.state.selected===e.id?U.itemSelected:{},e.temp?U.itemFolderTemp:{})},a.createElement(s,{style:n,onClick:this.state.viewType===q?N=>this.toggleFolder(e,N):void 0}),a.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,U[`itemName${this.state.viewType}`],U[`itemNameFolder${this.state.viewType}`])},r?this.props.t("ra_User files"):e.name),a.createElement(g.Box,{component:"div",style:U[`itemSize${this.state.viewType}`],sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.state.folders[e.id]?this.state.folders[e.id].length:""),a.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.props.expertMode?this.formatAcl(e.acl):null),this.state.viewType===q&&this.props.expertMode?a.createElement(g.Box,{component:"div",sx:{...U.itemDeleteButtonTable,display:{md:"inline-block",sm:"none"}}}):null,this.state.viewType===q&&this.props.allowDownload?a.createElement("div",{style:U[`itemDownloadEmpty${this.state.viewType}`]}):null,this.state.viewType===q&&this.props.allowDelete&&this.state.folders[e.id]&&this.state.folders[e.id].length?a.createElement(g.IconButton,{"aria-label":"delete",onClick:N=>{N.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:U[`itemDeleteButton${this.state.viewType}`],size:"large"},a.createElement(m.Delete,{fontSize:"small"})):this.state.viewType===q&&this.props.allowDelete?a.createElement(g.Box,{component:"div",sx:U[`itemDeleteButton${this.state.viewType}`]}):null)}renderBackFolder(){return a.createElement(g.Box,{component:"div",key:this.state.currentDir,id:this.state.currentDir,onClick:e=>this.changeFolder(e),title:this.props.t("ra_Back to %s",bt(this.state.currentDir)),className:"browserItem",sx:S.getStyle(this.props.theme,U[`item${this.state.viewType}`],U[`itemFolder${this.state.viewType}`])},a.createElement(Gt,{style:S.getStyle(this.props.theme,U[`itemFolderIcon${this.state.viewType}`])}),a.createElement(m.ArrowBack,{sx:U.itemFolderIconBack}),a.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,U[`itemName${this.state.viewType}`],U[`itemNameFolder${this.state.viewType}`])},".."))}formatSize(e){return a.createElement("div",{style:U[`itemSize${this.state.viewType}`]},e||e===0?S.formatBytes(e):"")}formatAcl(e){const t=e?e.permissions||e.file:0;let s;return t?s=t.toString(16).padStart(3,"0"):s="",a.createElement("div",{style:U[`itemAccess${this.state.viewType}`]},this.props.modalEditOfAccessControl?a.createElement(g.IconButton,{size:"large",onClick:()=>this.setState({modalEditOfAccess:!0}),sx:U[`itemAclButton${this.state.viewType}`]},s||"---"):s||"---")}getFileIcon(e){switch(e){case"json":case"json5":return a.createElement(m.Bookmark,{style:U[`itemIcon${this.state.viewType}`]});case"css":return a.createElement(m.BookmarkBorder,{style:U[`itemIcon${this.state.viewType}`]});case"js":case"ts":return a.createElement(m.Code,{style:U[`itemIcon${this.state.viewType}`]});case"html":case"md":return a.createElement(m.Description,{style:U[`itemIcon${this.state.viewType}`]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return a.createElement(m.MusicNote,{style:U[`itemIcon${this.state.viewType}`]});default:return a.createElement(m.InsertDriveFile,{style:U[`itemIcon${this.state.viewType}`]})}}static getEditFile(e){switch(e){case"json":case"json5":case"js":case"html":case"txt":case"css":case"log":return!0;default:return!1}}setStateBackgroundImage=()=>{const e=["light","dark","colored","delete"];this.setState(({backgroundImage:t})=>t&&e.indexOf(t)!==-1&&e.length-1!==e.indexOf(t)?(this.localStorage.setItem("files.backgroundImage",e[e.indexOf(t)+1]),{backgroundImage:e[e.indexOf(t)+1]}):(this.localStorage.setItem("files.backgroundImage",e[0]),{backgroundImage:e[0]}))};getStyleBackgroundImage=()=>{switch(this.state.backgroundImage){case"light":return U.backgroundImageLight;case"dark":return U.backgroundImageDark;case"colored":return U.backgroundImageColored;case"delete":return null;default:return null}};renderFile(e){const t=this.state.viewType===q?e.level*this.levelPadding:0,s=S.getFileExtension(e.name);return a.createElement(g.Box,{component:"div",key:e.id,id:e.id,onDoubleClick:o=>{o.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&ge[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:s})},onClick:o=>this.select(e.id,o),style:this.state.viewType===q?{marginLeft:t,width:`calc(100% - ${t}px)`}:void 0,className:"browserItem",sx:S.getStyle(this.props.theme,U[`item${this.state.viewType}`],U[`itemFile${this.state.viewType}`],this.state.selected===e.id?U.itemSelected:void 0)},s&&ge.images.includes(s)?this.state.fileErrors.includes(e.id)?a.createElement(Fo,{style:{...U[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage(),...U[`itemNoImage${this.state.viewType}`]}}):a.createElement(Ie,{onError:o=>{o.target.onerror=null;const r=[...this.state.fileErrors];r.includes(e.id)||(r.push(e.id),this.setState({fileErrors:r}))},style:{...U[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage()},src:this.imagePrefix+e.id,alt:e.name}):this.getFileIcon(s),a.createElement(g.Box,{component:"div",sx:U[`itemName${this.state.viewType}`]},e.name),a.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.formatSize(e.size)),a.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.props.expertMode?this.formatAcl(e.acl):null),a.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.props.expertMode&&Go.getEditFile(s)?a.createElement(g.IconButton,{"aria-label":"edit",onClick:o=>{o.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&ge[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:s})},sx:U.itemDeleteButtonTable,size:"large"},a.createElement(m.Edit,{fontSize:"small"})):a.createElement(g.Box,{component:"div",sx:U[`itemDeleteButton${this.state.viewType}`]})),this.state.viewType===q&&this.props.allowDownload?a.createElement(g.Box,{component:"a",className:"MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeLarge",sx:U.itemDownloadButtonTable,tabIndex:0,download:e.id,href:this.imagePrefix+e.id,onClick:o=>o.stopPropagation()},a.createElement(m.SaveAlt,null)):null,this.state.viewType===q&&this.props.allowDelete&&e.id!=="vis.0/"&&e.id!=="vis-2.0/"&&e.id!==rt?a.createElement(g.IconButton,{"aria-label":"delete",onClick:o=>{o.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:U[`itemDeleteButton${this.state.viewType}`],size:"large"},a.createElement(m.Delete,{fontSize:"small"})):this.state.viewType===q&&this.props.allowDelete?a.createElement(g.Box,{component:"div",sx:U[`itemDeleteButton${this.state.viewType}`]}):null)}renderItems(e){var t;if((t=this.state.folders)!=null&&t[e]){if(this.state.viewType===Qi){const o=[];return e&&e!=="/"&&o.push(this.renderBackFolder()),this.state.folders[e].forEach(r=>{r.folder?o.push(this.renderFolder(r)):(!this.props.filterFiles||r.ext&&this.props.filterFiles.includes(r.ext))&&(!this.state.filterByType||r.ext&&ge[this.state.filterByType].includes(r.ext))&&o.push(this.renderFile(r))}),o}const s=[];return this.state.folders[e].forEach(o=>{if(o.folder){const r=this.state.expanded.includes(o.id),M=this.renderFolder(o,r);if(Array.isArray(M)?M.forEach(n=>s.push(n)):s.push(M),this.state.folders[o.id]&&r){const n=this.renderItems(o.id);Array.isArray(n)?n.forEach(u=>s.push(u)):s.push(n)}}else(!this.props.filterFiles||o.ext&&this.props.filterFiles.includes(o.ext))&&(!this.state.filterByType||o.ext&&ge[this.state.filterByType].includes(o.ext))&&s.push(this.renderFile(o))}),s}return a.createElement("div",{style:{position:"relative"}},a.createElement(g.CircularProgress,{key:e,color:"secondary",size:24}),a.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}renderToolbar(){const e=this.props.showTypeSelector?Ps[this.state.filterByType||"all"]||Ps.all:null,t=this.findFirstFolder(this.state.selected);return a.createElement(g.Toolbar,{key:"toolbar",variant:"dense"},this.props.allowNonRestricted&&this.props.restrictToFolder?a.createElement(g.IconButton,{edge:"start",title:this.state.restrictToFolder?this.props.t("ra_Show all folders"):this.props.t("ra_Restrict to folder"),style:{...U.menuButton,...this.state.restrictToFolder?U.menuButtonRestrictActive:void 0},"aria-label":"restricted to folder",onClick:()=>this.setState({restrictToFolder:(this.state.restrictToFolder?"":this.props.restrictToFolder)||"",loadAllFolders:!0}),size:"small"},a.createElement(m.FolderSpecial,{fontSize:"small"})):null,this.props.showExpertButton?a.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Toggle expert mode"),style:{...U.menuButton,...this.state.expertMode?U.menuButtonExpertActive:void 0},"aria-label":"expert mode",onClick:()=>this.setState({expertMode:!this.state.expertMode}),size:"small"},a.createElement(uo,null)):null,this.props.showViewTypeButton?a.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Toggle view mode"),style:U.menuButton,"aria-label":"view mode",onClick:()=>{const s=this.state.viewType===q?Qi:q;this.localStorage.setItem("files.viewType",s);let o=this.state.selected;Yi(o)&&(o=bt(o)),this.setState({viewType:s,currentDir:o},()=>{this.state.viewType===q&&this.scrollToSelected()})},size:"small"},this.state.viewType!==q?a.createElement(m.List,{fontSize:"small"}):a.createElement(m.ViewModule,{fontSize:"small"})):null,a.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Hide empty folders"),style:U.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:()=>{this.localStorage.setItem("file.empty",this.state.filterEmpty?"false":"true"),this.setState({filterEmpty:!this.state.filterEmpty})},size:"small"},a.createElement(m.FolderOpen,{fontSize:"small"})),a.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Reload files"),style:U.menuButton,color:"inherit","aria-label":"reload files",onClick:()=>this.setState({folders:{}},()=>this.loadFolders()),size:"small"},a.createElement(m.Refresh,{fontSize:"small"})),this.props.allowCreateFolder?a.createElement(g.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),style:U.menuButton,color:"inherit","aria-label":"add folder",onClick:()=>this.setState({addFolder:!0}),size:"small"},a.createElement(m.CreateNewFolder,{fontSize:"small"})):null,this.props.allowUpload?a.createElement(g.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),style:U.menuButton,color:"inherit","aria-label":"upload file",onClick:()=>this.setState({uploadFile:!0}),size:"small"},a.createElement(m.Publish,{fontSize:"small"})):null,this.props.showTypeSelector&&e?a.createElement(g.Tooltip,{title:this.props.t("ra_Filter files"),slotProps:{popper:{sx:U.tooltip}}},a.createElement(g.IconButton,{size:"small",onClick:s=>this.setState({showTypesMenu:s.target})},a.createElement(e,{fontSize:"small"}))):null,this.state.showTypesMenu?a.createElement(g.Menu,{open:!0,anchorEl:this.state.showTypesMenu,onClose:()=>this.setState({showTypesMenu:null})},Object.keys(Ps).map(s=>{const o=Ps[s];return a.createElement(g.MenuItem,{key:s,selected:this.state.filterByType===s,onClick:()=>{s==="all"?(this.localStorage.removeItem("files.filterByType"),this.setState({filterByType:"",showTypesMenu:null})):(this.localStorage.setItem("files.filterByType",s),this.setState({filterByType:s,showTypesMenu:null}))}},a.createElement(g.ListItemIcon,null,a.createElement(o,{fontSize:"small"})),a.createElement(g.ListItemText,null,this.props.t(`ra_fileType_${s}`)))})):null,a.createElement(g.Tooltip,{title:this.props.t("ra_Background image"),slotProps:{popper:{sx:U.tooltip}}},a.createElement(g.IconButton,{color:"inherit",edge:"start",style:U.menuButton,onClick:this.setStateBackgroundImage,size:"small"},a.createElement(m.Brightness6,{fontSize:"small"}))),this.state.viewType!==q&&this.props.allowDelete?a.createElement(g.Tooltip,{title:this.props.t("ra_Delete"),slotProps:{popper:{sx:U.tooltip}}},a.createElement("span",null,a.createElement(g.IconButton,{"aria-label":"delete",disabled:!this.state.selected||this.state.selected==="vis.0/"||this.state.selected==="vis-2.0/"||this.state.selected===rt,color:"inherit",edge:"start",style:U.menuButton,onClick:s=>{s.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(this.state.selected):this.setState({deleteItem:this.state.selected})},size:"small"},a.createElement(m.Delete,{fontSize:"small"})))):null)}findItem(e,t){if(t=t||this.state.folders,!t)return null;const s=e.split("/");s.pop();const o=s.join("/")||"/";return t[o]&&t[o].find(r=>r.id===e)||null}renderInputDialog(){if(this.state.addFolder){const e=this.findFirstFolder(this.state.selected);return e?a.createElement(cne,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:t=>this.state.folders[e].find(s=>s.name===t)?"":this.props.t("ra_Duplicate name"),onClose:t=>{if(t){const s={};Object.keys(this.state.folders).forEach(n=>s[n]=this.state.folders[n]);const o=this.findItem(e),r=`${e}/${t}`;s[e].push({id:r,level:((o==null?void 0:o.level)||0)+1,name:t,folder:!0,temp:!0}),s[e].sort(TM),s[r]=[];const M=[...this.state.expanded];M.includes(e)||(M.push(e),M.sort()),this.localStorage.setItem("files.expanded",JSON.stringify(M)),this.setState({addFolder:!1,folders:s,expanded:M},()=>this.select(r))}else this.setState({addFolder:!1})},replace:t=>t.replace(/[^-_\w]/,"_")}):(window.alert(this.props.t("ra_Invalid parent folder!")),null)}return null}componentDidUpdate(){this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(()=>{this.setOpacityTimer=null;const e=window.document.getElementsByClassName("browserItem");for(let t=0;tthis.setState({uploadFile:!1})},a.createElement(m.Close,null)),a.createElement(un,{key:"dropzone",onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:e=>{let t=e.length;e.forEach(s=>{const o=new FileReader;o.onabort=()=>console.log("file reading was aborted"),o.onerror=()=>console.log("file reading has failed"),o.onload=()=>{const r=this.findFirstFolder(this.state.selected);if(!r)window.alert(this.props.t("ra_Invalid parent folder!"));else{const M=`${r}/${s.name}`;this.uploadFile(M,o.result).then(()=>{--t||this.setState({uploadFile:!1},()=>{if(this.supportSubscribes){const n=[...this.state.expanded];n.includes(r)||(n.push(r),n.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(n))),this.setState({expanded:n},()=>this.select(M))}else setTimeout(()=>this.browseFolder(r,null,!1,!0).then(n=>{const u=[...this.state.expanded];u.includes(r)||(u.push(r),u.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(u))),this.setState({folders:n,expanded:u},()=>this.select(M))}),500)})})}},o.readAsArrayBuffer(s)})}},({getRootProps:e,getInputProps:t})=>a.createElement("div",{style:{...U.uploadDiv,...this.state.uploadFile==="dragging"?U.uploadDivDragging:void 0},...e()},a.createElement("input",{...t()}),a.createElement(g.Box,{component:"div",sx:U.uploadCenterDiv},a.createElement("div",{style:U.uploadCenterTextAndIcon},a.createElement(m.Publish,{style:U.uploadCenterIcon}),a.createElement("div",{style:U.uploadCenterText},this.state.uploadFile==="dragging"?this.props.t("ra_Drop file here"):this.props.t("ra_Place your files here or click here to open the browse dialog"))))))]:null}deleteRecursive(e){const t=this.findItem(e);if(t!=null&&t.folder)return(this.state.folders[e]?Promise.all(this.state.folders[e].map(r=>this.deleteRecursive(r.id))):Promise.resolve()).then(()=>{if(t.level>=1){const r=e.split("/"),M=r.shift();this.props.socket.deleteFolder(M||"",r.join("/")).then(()=>{const n=JSON.parse(JSON.stringify(this.state.folders));delete n[t.id];const u=bt(t.id),N=n[u];if(N){const l=N.findIndex(c=>c.id===t.id);l!==-1&&N.splice(l,1),this.select(u,null,()=>this.setState({folders:n}))}})}});const s=e.split("/"),o=s.shift();return s.length?this.props.socket.deleteFile(o||"",s.join("/")).catch(r=>window.alert(`Cannot delete file: ${r}`)):Promise.resolve()}deleteItem(e){e=e||this.state.deleteItem,this.state.suppressDeleteConfirm&&(this.suppressDeleteConfirm=Date.now()+6e4*5),this.setState({deleteItem:"",suppressDeleteConfirm:!1},()=>this.deleteRecursive(e).then(()=>{const t={},s=this.state.expanded.indexOf(e);if(s!==-1){const o=[...this.state.expanded];o.splice(s,1),this.localStorage.setItem("files.expanded",JSON.stringify(o)),t.expanded=o}if(this.state.selected===e){const o=this.state.selected.split("/");o.pop(),t.selected=o.join("/")}if(this.supportSubscribes)this.setState(t);else{const o=this.findFirstFolder(e),r={};Object.keys(this.state.folders).forEach(M=>{M!==o&&!M.startsWith(`${o}/`)&&(r[M]=this.state.folders[M])}),t.folders=r,this.setState(t,()=>setTimeout(()=>{this.browseFolders([...this.state.expanded],r).then(M=>this.setState({folders:M})).catch(M=>console.error(M))},200))}}))}renderDeleteDialog(){return this.state.deleteItem?a.createElement(g.Dialog,{key:"deleteDialog",open:!0,onClose:()=>this.setState({deleteItem:""}),"aria-labelledby":"ar_dialog_file_delete_title"},a.createElement(g.DialogTitle,{id:"ar_dialog_file_delete_title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,null,this.props.t("ra_Are you sure?")),a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{checked:this.state.suppressDeleteConfirm,onChange:()=>{this.setState({suppressDeleteConfirm:!this.state.suppressDeleteConfirm})}}),label:this.props.t("ra_no confirm for 5 mins")})),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",onClick:()=>this.deleteItem(""),color:"primary",autoFocus:!0},this.props.t("ra_Delete")),a.createElement(g.Button,{variant:"contained",onClick:()=>this.setState({deleteItem:""}),color:"grey"},this.props.t("ra_Cancel")))):null}renderViewDialog(){const e=this.props.FileViewer||fne;return this.state.viewer?a.createElement(e,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeType:this.props.themeType,setStateBackgroundImage:this.setStateBackgroundImage,getStyleBackgroundImage:this.getStyleBackgroundImage,t:this.props.t,socket:this.props.socket,onClose:()=>this.setState({viewer:"",formatEditFile:""})}):null}renderError(){return this.state.errorText?a.createElement(Xn,{key:"errorDialog",text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}updateItemsAcl(e){this.cacheFolders||=JSON.parse(JSON.stringify(this.state.folders));let t;e.forEach(s=>{const o=this.findItem(s.id,this.cacheFolders);o&&JSON.stringify(o.acl)!==JSON.stringify(s.acl)&&(o.acl=s.acl,t=!0)}),t&&(this.cacheFoldersTimeout&&clearTimeout(this.cacheFoldersTimeout),this.cacheFoldersTimeout=setTimeout(()=>{this.cacheFoldersTimeout=null;const s=this.cacheFolders||{};this.cacheFolders=null,this.setState({folders:s})},200))}changeToPath(){setTimeout(()=>{if(this.state.path!==this.state.selected&&(!this.lastSelect||Date.now()-this.lastSelect>100)){let e=this.state.path;Yi(this.state.path)&&(e=bt(this.state.path)),new Promise(t=>{this.state.folders[e]?t(!0):this.browseFolder(e).then(s=>this.setState({folders:s},()=>t(!0))).catch(s=>this.setState({errorText:s===gM?this.props.t('ra_Cannot find "%s"',e):this.props.t('ra_Cannot read "%s"',e)}))}).then(t=>t&&this.setState({selected:this.state.path,currentDir:e,pathFocus:!1})).catch(t=>console.error(t))}else(!this.lastSelect||Date.now()-this.lastSelect>100)&&this.setState({pathFocus:!1})},100)}renderBreadcrumb(){const e=this.state.currentDir.startsWith("/")?this.state.currentDir.split("/"):`/${this.state.currentDir}`.split("/"),t=[];return a.createElement(g.Breadcrumbs,{style:{paddingLeft:8,color:"#FFF"}},e.map((s,o)=>{s&&t.push(s);const r=t.join("/");return othis.changeFolder(M,r||"/")},s||this.props.t("ra_Root")):a.createElement("div",{style:U.pathDivBreadcrumbSelected,key:`${this.state.selected}_${o}`,onClick:()=>this.setState({pathFocus:!0})},s)}))}renderPath(){return a.createElement(g.Box,{component:"div",key:"path",sx:U.pathDiv},this.state.pathFocus?a.createElement(g.Input,{value:this.state.path,onKeyDown:e=>{e.key==="Enter"?this.changeToPath():e.key==="Escape"&&this.setState({pathFocus:!1})},endAdornment:a.createElement(g.IconButton,{size:"small",onClick:()=>this.changeToPath()},a.createElement(m.KeyboardReturn,null)),onBlur:()=>this.changeToPath(),onChange:e=>this.setState({path:e.target.value}),style:U.pathDivInput}):this.renderBreadcrumb())}render(){return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(()=>{this.setState({loadAllFolders:!1,folders:{}},()=>{this.foldersLoading=!1,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`))})},300)),a.createElement("div",{style:{...U.root,...this.props.style},className:this.props.className},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===Qi?this.renderPath():null,a.createElement("div",{style:{...U.filesDiv,...U[`filesDiv${this.state.viewType}`]},onClick:e=>{this.state.viewType!==q&&(this.state.selected!==(this.state.currentDir||"/")?this.changeFolder(e,this.state.currentDir||"/"):e.stopPropagation())},id:"dev",ref:this.refFileDiv},this.state.viewType===q?this.renderItems("/"):this.renderItems(this.state.currentDir||"/"),this.state.viewType!==q?a.createElement("div",{style:U.filesDivHint},this.props.t("ra_select_folder_hint")):null),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl?this.props.modalEditOfAccessControl(this):null,this.renderError())):a.createElement(g.LinearProgress,null)}}const kne=di()(Go),Yne="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIC0xMjAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDBoLTQ2NGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgzMnYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDI4OHYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTE5MmMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMzkyIDIyNGgtMjR2LTE2aDI0em0zNDQgMGgtMjR2LTE2aDI0em00MC0zMmgtNDQ4di0xNzZoNDQ4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2IDE3NmMzNS4zNDc2NTYgMCA2NC0yOC42NTIzNDQgNjQtNjRzLTI4LjY1MjM0NC02NC02NC02NC02NCAyOC42NTIzNDQtNjQgNjRjLjAzOTA2MiAzNS4zMjgxMjUgMjguNjcxODc1IDYzLjk2MDkzOCA2NCA2NHptLTgtMTExLjI4MTI1djE1LjI4MTI1aDE2di0xNS4yODEyNWMyNC42MDU0NjkgNC4xNjAxNTYgNDEuOTE3OTY5IDI2LjQ3NjU2MiAzOS44MzIwMzEgNTEuMzQzNzUtMi4wODU5MzcgMjQuODY3MTg4LTIyLjg3ODkwNiA0My45ODQzNzUtNDcuODMyMDMxIDQzLjk4NDM3NXMtNDUuNzQ2MDk0LTE5LjExNzE4Ny00Ny44MzIwMzEtNDMuOTg0Mzc1Yy0yLjA4NTkzOC0yNC44NjcxODggMTUuMjI2NTYyLTQ3LjE4MzU5NCAzOS44MzIwMzEtNTEuMzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjAgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYwIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzY4IDE3NmMxNi4wOTM3NS4wMTk1MzEgMjkuNjg3NS0xMS45Mzc1IDMxLjcxODc1LTI3LjkwNjI1IDIuMDM1MTU2LTE1Ljk2NDg0NC04LjEzMjgxMi0zMC45NDUzMTItMjMuNzE4NzUtMzQuOTU3MDMxdi0xNy4xMzY3MTloLTE2djE3LjEzNjcxOWMtMTUuNTg1OTM4IDQuMDExNzE5LTI1Ljc1MzkwNiAxOC45OTIxODctMjMuNzE4NzUgMzQuOTU3MDMxIDIuMDMxMjUgMTUuOTY4NzUgMTUuNjI1IDI3LjkyNTc4MSAzMS43MTg3NSAyNy45MDYyNXptMC00OGM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2cy03LjE2NDA2MiAxNi0xNiAxNi0xNi03LjE2NDA2Mi0xNi0xNiA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im02NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggMTEyaDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTMyYy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDh6bTgtNjRoMTZ2MTZoLTE2em0wIDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMiAxMzZjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MzIgMTY4YzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Qne="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy41NDYgMTA1LjEyNWMwLTEuMDQ0LS4yMDUtMi4wOTEtLjY0Ny0zLjA3MmwtNDMuOTMtOTcuNjNjLTEuMjEtMi42OTItMy44ODgtNC40MjMtNi44MzktNC40MjNoLTE4Mi42M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMy44MTJ2ODIuNjNoLTgyLjYyNXYtODIuNjNoMjMuODEzYzQuMTQzIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xODIuNjNjLTIuOTUxIDAtNS42MjkgMS43MzEtNi44NCA0LjQyM2wtNDMuOTMgOTcuNjNjLS40NDEuOTgxLS42NDYgMi4wMjgtLjY0NyAzLjA3MmgtLjAxNXYxMi4yMDNjMCAyOS41MTQgMjIuODI3IDUzLjc4IDUxLjc1MSA1Ni4xMTJsMzEuODY1IDU4LjQxOWgtNC4wMDdjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjMzYy4wMDUgMCAuMDEuMDAxLjAxNS4wMDFzLjAxMS0uMDAxLjAxNi0uMDAxaDE2LjYxOGM0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTIuMTg5bC0zMi40NTYtNTkuNTAzYzE1Ljc1LTMuNDEzIDI5LjA1Ny0xMy40MzMgMzYuODc5LTI3LjAwMyA5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM3LjgyMiAxMy41NzEgMjEuMTI5IDIzLjU5MSAzNi44NzkgMjcuMDAzbC0zMi40NTYgNTkuNTAzaC0xMi4xODhjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjE4Yy4wMDUgMCAuMDExLjAwMS4wMTYuMDAxcy4wMS0uMDAxLjAxNS0uMDAxaDE2LjYzM2M0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNC4wMDdsMzEuODY1LTU4LjQxOWMyOC45MjQtMi4zMzIgNTEuNzUxLTI2LjU5OCA1MS43NTEtNTYuMTEydi0xMi4yMDN6bS0xOS4wODUtNy40OTVoLTc4LjUyM3YtODIuNjNoNDEuMzQzem0tOTMuNTIzLTgyLjYzdjgyLjYzaC04Mi42MjV2LTgyLjYzem0tMTk1LjI1IDgyLjYzaC04Mi42MjV2LTgyLjYzaDgyLjYyNXptLTEzOC45NjgtODIuNjNoNDEuMzQzdjgyLjYzaC03OC41MjR6bS4wMzQgMTQzLjY0MWMtLjAxMSAwLS4wMjEtLjAwMS0uMDMyLS4wMDEtMjIuNzY3LS4wMTUtNDEuMjg1LTE4LjU0Mi00MS4yODUtNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTMxIDQxLjMxLTQxLjMwOCA0MS4zMTN6bTk3LjYyMSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMwIDIyLjc3OC0xOC41MzQgNDEuMzEyLTQxLjMxMyA0MS4zMTJ6bTk3LjYyNSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMtLjAwMSAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42MjUgMGMtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42NDgtLjAwMWMtLjAwNSAwLS4wMDkgMC0uMDE0IDAtLjAwMyAwLS4wMDYgMC0uMDA5IDAtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjLS4wMDEgMjIuNzcyLTE4LjUyMSA0MS4zLTQxLjI5IDQxLjMxMnoiLz4KICAgIDwvZz4KPC9zdmc+",Une="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOC41MzYgNTA4LjUzNiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ5OC41MzYgMzQ0LjMyMWgtMTcuMjk4Yy40MzQtMTcuNjcyLTEwLjI2Ny0zNC4yMTItMjkuNTQ3LTM0LjIxMnMtMjkuOTgyIDE2LjU0LTI5LjU0NyAzNC4yMTJoLTE3LjI5OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OTdjMCAyNC42MDEgMTUuNzEyIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5M3YtNjYuNjRjMzYuMDg4IDEuMjY2IDU3Ljg0Ni0yMi4zOSA4MS4xNDktNDUuNjk0IDI4LjUxNy0zLjAyNCA1MC44MDktMjcuMjE2IDUwLjgwOS01Ni41MjJ2LTI1LjY5OGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwaC0xNy4yOThjLjQzNC0xNy42NzEtMTAuMjY3LTM0LjIxMi0yOS41NDctMzQuMjEycy0yOS45ODIgMTYuNTQtMjkuNTQ3IDM0LjIxMmgtMTcuM2MtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OThjMCAyNC42MDEgMTUuNzExIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5NCAwLTI1Ljg5NSAwLTUxLjc5MSAwLTc3LjY4NmgyMi43MTZjMTIuMjg1IDAgMTguNzI2IDE1LjUzIDEwLjAzMyAyNC4yMjEtOS4xMjIgOS4xMjEgNS4wMiAyMy4yNjQgMTQuMTQyIDE0LjE0MyA2LjQ1OC02LjQ1NyAxMC4wMTQtMTUuMDQyIDEwLjAxNC0yNC4xNzUgMC0xOC44NTItMTUuMzM3LTM0LjE4OC0zNC4xODktMzQuMTg4aC0yMi43MTZ2LTE4LjgyNGMyNi4yNTctNS4wNDMgNDYuMTYxLTI4LjE3NSA0Ni4xNjEtNTUuODgxdi0yMC44NTFjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMzYuOTE0di0yNC4yMzZoMzYuOTE0YzEyLjg0IDAgMTIuODU5LTIwIDAtMjBoLTkzLjgyOGMtMTIuODQgMC0xMi44NTkgMjAgMCAyMGgzNi45MTR2MjQuMjM1aC0zNi45MTRjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjAuODUxYzAgMjguMjMzIDIwLjY2OSA1MS43MTkgNDcuNjY3IDU2LjE1MXYxOC41NTVoLTIyLjcxNmMtMTguODUyIDAtMzQuMTg5IDE1LjMzNy0zNC4xODkgMzQuMTg4IDAgOS4xMzIgMy41NTYgMTcuNzE3IDEwLjAxNCAyNC4xNzUgOS4xMjEgOS4xMjEgMjMuMjYzLTUuMDIxIDE0LjE0My0xNC4xNDMtOC42ODUtOC42ODQtMi4yNjQtMjQuMjIxIDEwLjAzMy0yNC4yMjFoMjIuNzE2djc3LjY4NmMwIDMyLjM2NC0yNi4zMyA1OC42OTQtNTguNjk0IDU4LjY5NC0xNS42NzcgMC0zMC40MTctNi4xMDUtNDEuNTAyLTE3LjE5MWwtMTEuMjE4LTExLjIxOGMyMi41LTcuNTc1IDM4Ljc1Ni0yOC44NTYgMzguNzU2LTUzLjg3N3YtMjUuNjk4YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5OGMuNDM0LTE3LjY3MS0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4zYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwdjI1LjY5OGMwIDI4LjcwNyAyMS4zOTQgNTIuNDk4IDQ5LjA3MyA1Ni4zbDIyLjkzNyAyMi45MzdjMTUuMTY0IDE1LjE2MyAzNi4wMSAyMy40ODYgNTcuNDMzIDIzLjAwM3Y2Ni42MTRjMCAzMi4zNjQtMjYuMzMgNTguNjkzLTU4LjY5MyA1OC42OTMtMTUuNjc3IDAtMzAuNDE3LTYuMTA1LTQxLjUwMi0xNy4xOTFsLTExLjYwMi0xMS42MDJjMjEuOTE0LTcuODk4IDM3LjYyNS0yOC44OTIgMzcuNjI1LTUzLjQ5NHYtMjUuNjk3YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5N2MuNDM0LTE3LjY3Mi0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4yOTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjUuNjk3YzAgMjkuMzA1IDIyLjI5MiA1My40OTcgNTAuODA4IDU2LjUyMWwyMi43MTcgMjIuNzE2YzE0Ljg2MyAxNC44NjMgMzQuNjI1IDIzLjA0OCA1NS42NDUgMjMuMDQ4IDQzLjM5MiAwIDc4LjY5My0zNS4zMDIgNzguNjkzLTc4LjY5M3YtNjkuNjU3YzE0LjQyNi00LjE2NCAyNy4xNjEtMTIuMzQyIDM2LjkwNS0yMy4yNTd2MjAuNTIyYzAgMTIuODQgMjAgMTIuODU5IDIwIDB2LTIwLjUyMmM5LjUyIDEwLjY2MyAyMS44ODkgMTguNzIzIDM1LjkwNSAyMi45NzJ2NjkuOTQ2YzAgNDMuMzkyIDM1LjMwMiA3OC42OTMgNzguNjkzIDc4LjY5MyAyMS4wMiAwIDQwLjc4MS04LjE4NiA1NS42NDUtMjMuMDQ4bDIyLjcxNi0yMi43MTZjMjguNTE2LTMuMDI1IDUwLjgwOC0yNy4yMTYgNTAuODA4LTU2LjUyMXYtMjUuNjk3Yy4wMDEtNS41MjQtNC40NzYtMTAuMDAxLTkuOTk5LTEwLjAwMXptLTExMi4yOTgtMTQ5LjkyN2MwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0zMjYuOTE0LTI0LjY2NGMwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0xMDQuODEyIDEyMC41OTljMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTIgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjgtMzYuODQ1LTM2Ljg0NXYtMTUuNjk3em0xMjMuNDExLTI3OC4zNjR2LTEwLjg1MWg3My44Mjh2MTAuODUxYzAgNDcuNTk2LTczLjgyOCA0Ny41OTYtNzMuODI4IDB6bTIyNS4wNDIgMjUzLjdjMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTMgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjktMzYuODQ1LTM2Ljg0NXYtMTUuNjk3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yODEuMjA2IDQ0MS44NDctMTYuNDM4LTkuNDl2LTIxLjY0NWMwLTEyLjg0LTIwLTEyLjg1OS0yMCAwdjIxLjYxOWwtMTYuNDgzIDkuNTE2Yy0zLjA5NCAxLjc4Ni01IDUuMDg3LTUgOC42NnYyNC43OGMwIDMuNTczIDEuOTA2IDYuODc0IDUgOC42NmwyMS40NiAxMi4zOWMzLjA2NyAxLjc3MSA2LjkzMyAxLjc3MSAxMCAwbDIxLjQ2LTEyLjM5YzMuMDk0LTEuNzg2IDUtNS4wODcgNS04LjY2di0yNC43OGMuMDAxLTMuNTczLTEuOTA1LTYuODc0LTQuOTk5LTguNjZ6bS0xNSAyNy42NjctMTEuNDYgNi42MTctMTEuNDYtNi42MTd2LTEzLjIzM2wxMS40Ni02LjYxNyAxMS40NiA2LjYxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ1LjUzNSAzNzQuMTgzYzEuNjM1IDMuOTI0IDUuNzE2IDYuNDY2IDkuOTY4IDYuMTM4IDQuMTY5LS4zMjIgNy43NzgtMy4yNzIgOC44OTctNy4zMDMgMi4zNjQtOC41MTMtNy4xOTEtMTUuNzU5LTE0Ljc3My0xMS4yMzUtNC4yMTQgMi41MTQtNS45NDUgNy44OC00LjA5MiAxMi40eiIvPgogICAgPC9nPgo8L3N2Zz4=",vne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtOSAxN2M0LjQxMSAwIDgtMy41ODkgOC04IDAtMS4yNTYtLjI5OS0yLjQ0MS0uODE4LTMuNTAxIDEuMTAzLTEuNTQ4IDIuODk4LTIuNDk5IDQuODE4LTIuNDk5IDIuODQgMCA1LjI3OCAyLjA2NCA1Ljc5OSA0LjgzMS0uMTkuMTA1LS4zNzUuMjE4LS41NTQuMzQyLTEuMjI0LS43NDctMi42MzYtMS4xNzMtNC4wNzQtMS4xNzNoLS4xNzF2MmguMTcxYy44OTYgMCAxLjc4LjIyMSAyLjU4LjYxNS0uMDgzLjEwOS0uMTcxLjIxMS0uMjQ4LjMyNmwtLjMzNi41MDQgMS42NjQgMS4xMDkuMzM2LS41MDRjLjg1Ny0xLjI4MyAyLjI5LTIuMDUgMy44MzMtMi4wNSAxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTdjLTEuMTAzIDAtMi0uODk3LTItMmgtMmMwIDIuMjA2IDEuNzk0IDQgNCA0aDI1YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00Yy0uNDczIDAtLjkzNS4wNi0xLjM4Ny4xNTctMS4xNTktMy42MjMtNC41NDItNi4xNTctOC40My02LjE1Ny0zLjU0OSAwLTYuNzQ2IDIuMTA3LTguMTQ0IDUuMzY5bC0uMjc3LjY0NmMtLjM1Ni4wMTMtLjcwNi4wNTUtMS4wNS4xMjMtLjgyLTMuNTQyLTQuMDIzLTYuMTM4LTcuNzEyLTYuMTM4LTIuMzEyIDAtNC40ODggMS4wMzQtNS45NzggMi43NTEtMS40NjctMS42ODItMy42Mi0yLjc1MS02LjAyMi0yLjc1MS00LjQxMSAwLTggMy41ODktOCA4czMuNTg5IDggOCA4em0yOS4xODMtMTRjMy4wNDcgMCA1LjY3NiAyLjAxNyA2LjU0MSA0Ljg3Ny0uMTYzLjA5My0uMzI1LjE4OC0uNDc5LjI5NS0xLjIyNS0uNzQ2LTIuNjM2LTEuMTcyLTQuMDc0LTEuMTcyaC0uMTcxdjJoLjE3MWMuODk1IDAgMS43OC4yMjEgMi41OC42MTUtLjA4My4xMDktLjE3MS4yMTEtLjI0OC4zMjZsLS4zMzYuNTA0IDEuNjY0IDEuMTA5LjMzNi0uNTA0Yy44NTctMS4yODMgMi4yOS0yLjA1IDMuODMzLTIuMDUgMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC0xNC41NTZjLjM0NC0uNTkxLjU1Ni0xLjI2OC41NTYtMiAwLTEuNTcxLS45MTgtMi45MTktMi4yMzgtMy41NzNsLjExNi0uMjdjMS4wODItMi41MjUgMy41NTctNC4xNTcgNi4zMDUtNC4xNTd6bS0yOS4xODMgMGMzLjMwOSAwIDYgMi42OTEgNiA2cy0yLjY5MSA2LTYgNi02LTIuNjkxLTYtNiAyLjY5MS02IDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMzd2LTQuNWw0LTN2LTIuNWgtMnYxLjVsLTIgMS41di01aC0ydjdsLTItMS41di0xLjVoLTJ2Mi41bDQgM3YyLjVoLTEwdi02LjVsNC0zdi0yLjVoLTJ2MS41bC0yIDEuNXYtNC41ODZsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny40MTRsLTItMS41di0xLjVoLTJ2Mi41bDQgM3Y0LjVoLTE0di0xLjI3OWwuNDk2LS4xNjVjMy4yOTItMS4wOTggNS41MDQtNC4xNjYgNS41MDQtNy42MzYgMC0yLjE0OS0uODM3LTQuMTcxLTIuMzU3LTUuNjkxbC00LjY0My00LjY0My0zLjgyNSAzLjgyNWMtLjM5LS44MDItLjg5Ni0xLjU0Ni0xLjUzMi0yLjE4M2wtNC42NDMtNC42NDItNC42NDMgNC42NDNjLTEuNTIgMS41Mi0yLjM1NyAzLjU0Mi0yLjM1NyA1LjY5MSAwIDMuNDcgMi4yMTIgNi41MzggNS41MDMgNy42MzVsLjQ5Ny4xNjV2NC4yOGgtMTYuMjgxbC40OSAxLjk1OWMzLjUzOSAxNC4xNTUgMTYuMjAxIDI0LjA0MSAzMC43OTEgMjQuMDQxczI3LjI1Mi05Ljg4NiAzMC43OTEtMjQuMDQxbC40OS0xLjk1OXptLTI3LjM2NCA2LjI1OCAxLjE0NSAxLjcxN2MuMTQzLjIxNC4yMTkuNDY0LjIxOS43MjIgMCAuNzE5LS41ODQgMS4zMDMtMS4zMDMgMS4zMDNoLTE1LjM5NGMtLjcxOSAwLTEuMzAzLS41ODQtMS4zMDMtMS4zMDMgMC0uMjU4LjA3Ni0uNTA4LjIxOS0uNzIzbDEuMTQ2LTEuNzE4Yy40MTUtLjYyNC42MzUtMS4zNTEuNjM1LTIuMTAxIDAtLjc3LS4yNDYtMS41MjUtLjY4MS0yLjE1NWgxNS4zNjJjLS40MzUuNjMxLS42ODEgMS4zODUtLjY4MSAyLjE1NSAwIC43NS4yMiAxLjQ3Ny42MzYgMi4xMDN6bS0xLjYzNi0yMi44NDQgMy4yMjkgMy4yMjljMS4xNDIgMS4xNDIgMS43NzEgMi42NjIgMS43NzEgNC4yNzcgMCAyLjU1Ny0xLjYwNCA0LjgxNy00IDUuNjgxdi0xLjE4NmwyLjcwNy0yLjcwNy0xLjQxNC0xLjQxNC0xLjI5MyAxLjI5MnYtMi4xNzJsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny4wMTRjLTIuMzk2LS44NjMtNC0zLjEyMi00LTUuNjggMC0xLjYxNS42MjktMy4xMzUgMS43NzEtNC4yNzd6bS0xNSA0LjUwNmMwLTEuNjE1LjYyOS0zLjEzNSAxLjc3MS00LjI3N2wzLjIyOS0zLjIyOSAzLjIyOSAzLjIyOWMuNjY2LjY2NiAxLjE1MyAxLjQ4MSAxLjQ0OSAyLjM3MS0xLjA4NCAxLjQtMS42NzggMy4xMDYtMS42NzggNC45MDYgMCAuNDY0LjA0Ni45MTguMTIyIDEuMzY0LS42MDkuNTgxLTEuMzI5IDEuMDM0LTIuMTIyIDEuMzE5di02LjNsMS44MzItMi43NDgtMS42NjQtMS4xMDktMS4zMjMgMS45ODUtMS4xMzgtMS4xMzgtMS40MTQgMS40MTQgMS43MDcgMS43MDd2Mi4xNzJsLTEuMjkzLTEuMjkzLTEuNDE0IDEuNDE0IDIuNzA3IDIuNzA3djEuMTg2Yy0yLjM5Ni0uODYzLTQtMy4xMjItNC01LjY4em02IDcuODAxLjQ5Ni0uMTY1Yy44MjUtLjI3NSAxLjU4OS0uNjk2IDIuMjgxLTEuMjE2LjkxNiAxLjk0OCAyLjU4NiAzLjUwMiA0LjcyNiA0LjIxNWwuNDk3LjE2NXYxLjI4aC04em0tNy40MTQgNi4yNzkuODkuODljLjMzMy4zMzMuNTI0Ljc5NS41MjQgMS4yNjUgMCAuMzU0LS4xMDQuNjk4LS4zLjk5M2wtMS4xNDUgMS43MTdjLS4zNjMuNTQ0LS41NTUgMS4xNzgtLjU1NSAxLjgzMiAwIDEuODIyIDEuNDgxIDMuMzAzIDMuMzAzIDMuMzAzaDE1LjM5NWMxLjgyMSAwIDMuMzAyLTEuNDgxIDMuMzAyLTMuMzAzIDAtLjY1NC0uMTkyLTEuMjg4LS41NTUtMS44MzJsLTEuMTQ1LTEuNzE2Yy0uMTk2LS4yOTUtLjMtLjYzOS0uMy0uOTk0IDAtLjQ3MS4xOTEtLjkzMy41MjQtMS4yNjZsLjg5LS44OWg2LjgzNmMtLjE2LjM4NS0uMjUuODA2LS4yNSAxLjI0NyAwIDEuNDkyIDEuMDExIDIuNzg4IDIuNDU5IDMuMTQ5bDQuMjIgMS4wNTVjLjc3OC4xOTYgMS4zMjEuODkxIDEuMzIxIDEuNjkzIDAgLjcxNy0uNDMgMS4zNTMtMS4wOTYgMS42MThsLTYuMjc1IDIuNTExYy0xLjU5Ny42MzktMi42MjkgMi4xNjMtMi42MjkgMy44ODIgMCAxLjQ5Ni44MDcgMi44ODggMi4xMDcgMy42M2wyLjcxNSAxLjU1MWMtMy4wMDQgMS4wNDktNi4yMTUgMS42MjEtOS41MzcgMS42NTNsLTUuMDg2LTMuMzkxYy0uMTI0LS4wODItLjE5OS0uMjIxLS4xOTktLjM3MSAwLS4yMTkuMTU3LS40MDQuMzc0LS40NGwzLjQzNS0uNTcyYzEuMjY5LS4yMTMgMi4xOTEtMS4zMDIgMi4xOTEtMi41OSAwLTEuNDQ3LTEuMTc3LTIuNjI0LTIuNjI0LTIuNjI0aC0yMC42MDVjLTIuOTg5LTMuMzY3LTUuMjU2LTcuNDMtNi40ODYtMTJ6bTE0LjUwMyAyMC4yNjIgMi4yMyAxLjQ4N2MtNi4zMjktLjc4NC0xMi4xMDUtMy41NDgtMTYuNjA3LTcuNzQ5aDE4LjY2NGMuMzQ0IDAgLjYyNC4yOC42MjQuNjI0IDAgLjMwNy0uMjE5LjU2NS0uNTIxLjYxNmwtMy40MzQuNTcyYy0xLjE4NS4xOTgtMi4wNDUgMS4yMTItMi4wNDUgMi40MTQgMCAuODE5LjQwNyAxLjU4MSAxLjA4OSAyLjAzNnptMTguMTAzLS44NzUtNC4wOTMtMi4zMzljLS42NzgtLjM4OC0xLjA5OS0xLjExMy0xLjA5OS0xLjg5NCAwLS44OTcuNTM5LTEuNjkyIDEuMzcyLTIuMDI1bDYuMjc1LTIuNTExYzEuNDI5LS41NzEgMi4zNTMtMS45MzUgMi4zNTMtMy40NzUgMC0xLjcyMS0xLjE2Ni0zLjIxNC0yLjgzNS0zLjYzMmwtNC4yMi0xLjA1NWMtLjU1Ny0uMTQtLjk0NS0uNjM3LS45NDUtMS4yMSAwLS42ODcuNTU5LTEuMjQ2IDEuMjQ2LTEuMjQ2aDE4LjQ2OGMtMi4zNzYgOC44MjgtOC41NjUgMTUuODE0LTE2LjUyMiAxOS4zODd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDE3aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgMjFoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MyAxN2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDE5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgMjNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSAxN2gydjJoLTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",bne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik01MTEuOTc2LDQxNi4wNjNjLTAuMDA1LTAuMDc1LTAuMDA0LTAuMTQ5LTAuMDExLTAuMjI0Yy0wLjAyNy0wLjI5Ny0wLjA3LTAuNTg4LTAuMTMxLTAuODczCgkJYy0wLjAwNi0wLjAyOC0wLjAxNS0wLjA1Ni0wLjAyMi0wLjA4NGMtMC4wNTktMC4yNjItMC4xMzItMC41MTgtMC4yMTgtMC43NjhjLTAuMDIzLTAuMDY3LTAuMDQ4LTAuMTMyLTAuMDczLTAuMTk4CgkJYy0wLjA4NC0wLjIyNy0wLjE3OS0wLjQ0OC0wLjI4NC0wLjY2M2MtMC4wMTgtMC4wMzgtMC4wMy0wLjA3Ny0wLjA0OS0wLjExNWwtNDAuMTEyLTc5LjExOFY3My43MgoJCWMwLTguMDA2LTYuNTEzLTE0LjUxOS0xNC41MTktMTQuNTE5SDU1LjQ0MWMtOC4wMDYsMC0xNC41MTksNi41MTMtMTQuNTE5LDE0LjUxOXYyNjAuMjk4TDAuODExLDQxMy4xMzcKCQljLTAuMDE5LDAuMDM4LTAuMDMxLDAuMDc3LTAuMDQ5LDAuMTE1Yy0wLjEwNSwwLjIxNS0wLjE5OSwwLjQzNi0wLjI4NCwwLjY2MmMtMC4wMjUsMC4wNjYtMC4wNSwwLjEzMi0wLjA3MywwLjE5OQoJCWMtMC4wODUsMC4yNTEtMC4xNTksMC41MDgtMC4yMTgsMC43N2MtMC4wMDYsMC4wMjctMC4wMTUsMC4wNTQtMC4wMjEsMC4wODFjLTAuMDYxLDAuMjg2LTAuMTA0LDAuNTc3LTAuMTMxLDAuODc0CgkJYy0wLjAwNywwLjA3NC0wLjAwNywwLjE0OS0wLjAxMSwwLjIyM0MwLjAxNCw0MTYuMjE3LDAsNDE2LjM3MSwwLDQxNi41Mjl2MTkuMDI2YzAsOS41MDksNy43MzUsMTcuMjQ0LDE3LjI0NCwxNy4yNDRoNDc3LjUxMgoJCWM5LjUwOSwwLDE3LjI0NC03LjczNSwxNy4yNDQtMTcuMjQ0di0xOS4wMjZDNTEyLDQxNi4zNzEsNTExLjk4Niw0MTYuMjE3LDUxMS45NzYsNDE2LjA2M3ogTTU1LjkyMyw3NC4yMDNoNDAwLjE1NHYyNTQuMTA5CgkJSDU1LjkyM1Y3NC4yMDN6IE01My4wMjksMzQzLjMxMUg0NTguOTdsMzMuMzE4LDY1LjcxN2gtMTY0Ljc4bC04LjI3MS0yOS45ODljLTEuNjg0LTYuMTA1LTcuMjgyLTEwLjM2OS0xMy42MTUtMTAuMzY5aC05OS4yNDYKCQljLTYuMzMzLDAtMTEuOTMyLDQuMjY0LTEzLjYxNSwxMC4zNjhsLTguMjcxLDI5Ljk5SDE5LjcxMUw1My4wMjksMzQzLjMxMXogTTMxMS45NDgsNDA5LjAyOUgyMDAuMDUybDYuOTkzLTI1LjM1OGg5Ny45MQoJCUwzMTEuOTQ4LDQwOS4wMjl6IE00OTcsNDM1LjU1NGMwLDEuMjM3LTEuMDA3LDIuMjQ0LTIuMjQ0LDIuMjQ0SDE3LjI0NGMtMS4yMzcsMC0yLjI0NC0xLjAwNy0yLjI0NC0yLjI0NHYtMTEuNTI2aDQ4MlY0MzUuNTU0eiIKCQkvPgoJPHBhdGggZD0iTTQzMi41NzcsMjEzLjc1NmMtNC4xNDMsMC03LjUsMy4zNTctNy41LDcuNXY3Ni4wNTVIODYuOTIzdi03Ni4wNTVjMC00LjE0My0zLjM1Ny03LjUtNy41LTcuNQoJCQljLTQuMTQzLDAtNy41LDMuMzU3LTcuNSw3LjV2NzkuMjk0YzAsNi40ODUsNS4yNzUsMTEuNzYxLDExLjc2MSwxMS43NjFoMzQ0LjYzM2M2LjQ4NSwwLDExLjc2MS01LjI3NSwxMS43NjEtMTEuNzYxdi03OS4yOTQKCQkJQzQ0MC4wNzcsMjE3LjExNSw0MzYuNzIsMjEzLjc1Niw0MzIuNTc3LDIxMy43NTZ6Ii8+Cgk8cGF0aCBkPSJNNDI4LjMxNiw5MC4yMDNIODMuNjg0Yy02LjQ4NSwwLTExLjc2MSw1LjI3NS0xMS43NjEsMTEuNzYxdjc5LjI5NGMwLDQuMTQzLDMuMzU3LDcuNSw3LjUsNy41YzQuMTQzLDAsNy41LTMuMzU3LDcuNS03LjUKCQkJdi03Ni4wNTVoMzM4LjE1NHY3Ni4wNTVjMCw0LjE0MywzLjM1Nyw3LjUsNy41LDcuNXM3LjUtMy4zNTcsNy41LTcuNXYtNzkuMjk0QzQ0MC4wNzcsOTUuNDc3LDQzNC44MDIsOTAuMjAzLDQyOC4zMTYsOTAuMjAzeiIvPgo8L2c+Cjwvc3ZnPgo=",$ne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE2NC4zOTkgMjA1Ljg3MmM0LjA5OS42NjQgOC4yMDYtMS4yNzMgMTAuMjg0LTQuOTFsNjAtMTA1YzEuNzY5LTMuMDk1IDEuNzU2LTYuODk3LS4wMzMtOS45OHMtNS4wODUtNC45ODEtOC42NDktNC45ODFoLTM2LjY4MmwtMTMuNDg2LTcyLjgyMWMtLjc3Mi00LjE2OS00LjA4OS03LjM5OC04LjI3Ny04LjA1OC00LjE4NS0uNjYtOC4zMzcgMS4zOTQtMTAuMzUzIDUuMTIzbC02MCAxMTFjLTEuNjc1IDMuMDk5LTEuNTk3IDYuODUxLjIwOCA5Ljg3NiAxLjgwNCAzLjAyNSA1LjA2NiA0Ljg3OSA4LjU4OSA0Ljg3OWgzNi44MDJsMTMuMzkzIDY2Ljk2MWMuODE3IDQuMDkgNC4wODggNy4yNDIgOC4yMDQgNy45MTF6bS0xMy4zOTktOTQuODcxaC0yOC4yMjhsMzguNTU0LTcxLjMyMyA5Ljg0MSA1My4xNDRjLjg3OCA0Ljc0IDUuMDEzIDguMTc5IDkuODMzIDguMTc5aDI3Ljc2OWwtMzguMiA2Ni44NS05Ljc2My00OC44MTFjLS45MzUtNC42NzQtNS4wMzktOC4wMzktOS44MDYtOC4wMzl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwIDQ1OS4wMDFjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoMjZjNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBoLTU2di02OGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHY2OGgtNDB2LTIyM2g0MHY2NWMwIDUuNTIzIDQuNDc4IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi03NWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHYyMzNoLTQwdi0xNzNjMC01LjUyMy00LjQ3OC0xMC0xMC0xMGgtNjBjLTUuNTIyIDAtMTAgNC40NzctMTAgMTB2MTczaC00MHYtMTEzYzAtNS41MjMtNC40NzgtMTAtMTAtMTBoLTYwYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwdjExM2gtNzN2LTQ0OWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHYyNmgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDN6bTI1Ni0xNjNoNDB2MTYzaC00MHptLTEyMCA2MGg0MHYxMDNoLTQweiIvPgogICAgICAgIDxwYXRoIGQ9Im00MzYgMTQ2LjAwMWM1LjUyMiAwIDEwLTQuNDc3IDEwLTEwdi02MGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgzNS44NTdsLTEwMCAxMDBoLTU1Ljg1N2MtMi42NTIgMC01LjE5NSAxLjA1NC03LjA3MSAyLjkyOWwtOTAgOTBjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAzLjkwNyAzLjkwNSAxMC4yMzYgMy45MDQgMTQuMTQzIDBsODcuMDcxLTg3LjA3MWg1NS44NTdjMi42NTIgMCA1LjE5NS0xLjA1NCA3LjA3MS0yLjkyOWwxMDIuOTI5LTEwMi45M3YzNS44NTdjMCA1LjUyNCA0LjQ3OCAxMC4wMDEgMTAgMTAuMDAxeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjQzNiIgY3k9IjM0Ni4wMDEiIHI9IjEwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Pne="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHJlY3QgeD0iMjE2IiB5PSI4OC40ODkiIHdpZHRoPSI4MCIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjIxNiIgeT0iNjIuNDg5IiB3aWR0aD0iODAiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cGF0aCBkPSJNMzAsNTIuNDk0djkuMjg1Yy0yLjM0Ny0wLjgzMi00Ljg3Mi0xLjI4NS03LjUtMS4yODVjLTEyLjQwNiwwLTIyLjUsMTAuMDkzLTIyLjUsMjIuNWMwLDEyLjQwNywxMC4wOTQsMjIuNSwyMi41LDIyLjUKCQkJYzIuNjI4LDAsNS4xNTMtMC40NTMsNy41LTEuMjg1djM1NS4yOThoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NWMyLjg5OS0xLjc1NSw0LjgxNC0yLjkxNSw5LjMyNS0yLjkxNQoJCQljNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1YzguNjk4LDAsMTMuMzU0LTIuODE5LDE3LjA5NC01LjA4NQoJCQljMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1YzMuNzQsMi4yNjYsOC4zOTUsNS4wODUsMTcuMDkzLDUuMDg1CgkJCXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1YzQuNTEsMCw2LjQyNSwxLjE2LDkuMzIyLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTN2LTQwN0gzMHogTTIyLjUsOTAuNDk0Yy00LjEzNiwwLTcuNS0zLjM2NC03LjUtNy41YzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjUKCQkJczcuNSwzLjM2NCw3LjUsNy41QzMwLDg3LjEzLDI2LjYzNiw5MC40OTQsMjIuNSw5MC40OTR6IE0xODguNSw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTIxNi43OWgtMTV2MjIyLjk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFoNDYuMjVWNDQyLjY2NHoiLz4KICAgICAgICA8cmVjdCB4PSIxNTcuMjUiIHk9IjEzNi45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjE1Ny4yNSIgeT0iMTExLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTU3LjI1IiB5PSI4Ni45OTQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9Ijk3LjI1IiB5PSIxMzAuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iNjYiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iMTA1Ljk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iNDM1Ljc1IiB5PSIxMTMuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI0MzUuNzUiIHk9IjEzOC45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjQzNS43NSIgeT0iODguOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjE1NS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjEwNS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iMTMwLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4OS41LDYwLjQ5NGMtMi42MjgsMC01LjE1MywwLjQ1My03LjUsMS4yODV2LTkuMjg1SDMwOC41djQwNy4wMTNoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NQoJCQljMi44OTktMS43NTUsNC44MTQtMi45MTUsOS4zMjUtMi45MTVjNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1CgkJCWM4LjY5OCwwLDEzLjM1NC0yLjgxOSwxNy4wOTQtNS4wODVjMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk1LDUuMDg1LDE3LjA5Myw1LjA4NXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1CgkJCWM0LjUxLDAsNi40MjUsMS4xNiw5LjMyMiwyLjkxNWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTNWMTA0LjIwOGMyLjM0NywwLjgzMiw0Ljg3MiwxLjI4NSw3LjUsMS4yODUKCQkJYzEyLjQwNiwwLDIyLjUtMTAuMDkzLDIyLjUtMjIuNUM1MTIsNzAuNTg1LDUwMS45MDYsNjAuNDk0LDQ4OS41LDYwLjQ5NHogTTQ2Nyw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTI1MC43OWgtMTV2MjU2Ljk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFINDY3VjQ0Mi42NjR6IE00ODkuNSw5MC40OTRjLTQuMTM2LDAtNy41LTMuMzY0LTcuNS03LjUKCQkJYzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjVzNy41LDMuMzY0LDcuNSw3LjVDNDk3LDg3LjEzLDQ5My42MzYsOTAuNDk0LDQ4OS41LDkwLjQ5NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Wne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDIgMTJjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTItNGMwIDEuMTAzLS44OTcgMi0yIDJzLTItLjg5Ny0yLTJjMC0uMTc4LjAzMS0uMzQ3LjA3NS0uNTExbDEuMjE4IDEuMjE4IDEuNDE0LTEuNDE0LTEuMjE4LTEuMjE4Yy4xNjQtLjA0NC4zMzMtLjA3NS41MTEtLjA3NSAxLjEwMyAwIDIgLjg5NyAyIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTQtMS43OTQtNC00LTR6bTAgNmMtMS4xMDMgMC0yLS44OTctMi0ycy44OTctMiAyLTJjLjE3OCAwIC4zNDcuMDMxLjUxMS4wNzVsLTEuMjE4IDEuMjE4IDEuNDE0IDEuNDE0IDEuMjE4LTEuMjE4Yy4wNDQuMTY0LjA3NS4zMzMuMDc1LjUxMSAwIDEuMTAzLS44OTcgMi0yIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUxIDEyaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTNoLTJjLTEuNjU0IDAtMyAxLjM0Ni0zIDNzMS4zNDYgMyAzIDN6bTAtNGgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxaC0yYy0uNTUxIDAtMS0uNDQ5LTEtMXMuNDQ5LTEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMyA2aC0yYy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTN6bTAgNGgtMmMtLjU1MSAwLTEtLjQ0OS0xLTFzLjQ0OS0xIDEtMWgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im02Mi45OTcgNThjMC0uMTYzLS4wMzctLjMyNi0uMTE3LS40NzRsLTIuODgtNS4zNDl2LTM4LjE3Ny0xMGMwLTEuNjU0LTEuMzQ2LTMtMy0zaC01MGMtMS42NTQgMC0zIDEuMzQ2LTMgM3YxMCAzOC4xNzdsLTIuODggNS4zNDljLS4wOC4xNDgtLjExNy4zMTEtLjExNy40NzRoLS4wMDN2MmMwIDEuNjU0IDEuMzQ2IDMgMyAzaDU2YzEuNjU0IDAgMy0xLjM0NiAzLTN2LTJ6bS02Ljk5Ny0xMy4yNTF2LTI5Ljc0OWgydjMzLjQ2M3ptLTQxLjkzMS0yLjc0OWMuMTg5IDEuNTAyLjc5MiAyLjg3NSAxLjY5NSA0aC0yLjc2NHYtNHptMzYuOTMxIDB2NGgtMi43NjVjLjkwNC0xLjEyNSAxLjUwNy0yLjQ5OCAxLjY5NS00em0tNS42OSA0aC0uMzF2LTIuMzgyYy40MDItLjQ2LjctMS4wMDkuODU4LTEuNjE4aDIuMDUyYy0uMjgyIDEuNjY2LTEuMjQ2IDMuMTAxLTIuNiA0em0tOC4zMS0xLjY5di0yLjMxaDEuMTQyYy40NDcgMS43MjEgMiAzIDMuODU4IDMgLjM0NyAwIC42NzgtLjA1OCAxLS4xNDJ2MS4xNDJoLTQuMzFjLS42Ny0uNDQ1LTEuMjQ1LTEuMDItMS42OS0xLjY5em0zLjI3OC00LjMxYy4zNDctLjU5NS45ODUtMSAxLjcyMi0xczEuMzc1LjQwNSAxLjcyMiAxem0yLjcyMiAydi43MjJjLS4yOTUuMTcyLS42MzQuMjc4LTEgLjI3OC0uNzM3IDAtMS4zNzUtLjQwNS0xLjcyMi0xem0yLjg1OC0yYy0uNDQ3LTEuNzIxLTItMy0zLjg1OC0zcy0zLjQxMSAxLjI3OS0zLjg1OCAzaC0yLjA1MmMuNDc4LTIuODMzIDIuOTQyLTUgNS45MS01czUuNDMxIDIuMTY3IDUuOTEgNXptLTExLjcyNS03LjA4NGMuNTEzLTIuNzkyIDIuOTU5LTQuOTE2IDUuODk3LTQuOTE2IDEuNjEgMCAzLjA2NS42MzEgNC4xNDMgMS42Ni0uOTczLS40MjMtMi4wNDYtLjY2LTMuMTczLS42Ni0yLjkxOCAwLTUuNDY5IDEuNTc2LTYuODY3IDMuOTE2em0uODY3IDQuMDg0YzAtMy4zMDkgMi42OTEtNiA2LTYgMi4zMzUgMCA0LjM1NyAxLjM0MyA1LjM0OCAzLjI5NC0xLjI1My0uODE1LTIuNzQ1LTEuMjk0LTQuMzQ4LTEuMjk0LTMuMDA0IDAtNS42MjQgMS42NjctNi45OTIgNC4xMjItLjAwMS0uMDQxLS4wMDgtLjA4MS0uMDA4LS4xMjJ6bS0uOTMxIDVjLjEyOSAxLjAyNy40NDkgMS45OTYuOTMxIDIuODY0djEuMTM2aC02di0xLjEzNmMuNDgyLS44NjkuODAyLTEuODM3LjkzMS0yLjg2NHptLTEzLjA2OSA0di0xLjE0MmMuMzIyLjA4NC42NTMuMTQyIDEgLjE0MiAxLjg1OCAwIDMuNDExLTEuMjc5IDMuODU4LTNoMS4xNDJ2Mi4zMWMtLjQ0NS42Ny0xLjAyIDEuMjQ1LTEuNjkgMS42OXptMC00aDIuNzIyYy0uMzQ3LjU5NS0uOTg1IDEtMS43MjIgMS0uMzY2IDAtLjcwNS0uMTA2LTEtLjI3OHptLS43MjItMmMuMzQ3LS41OTUuOTg1LTEgMS43MjItMXMxLjM3NS40MDUgMS43MjIgMXptOC43MTQtMi44NzhjLTEuMzY4LTIuNDU1LTMuOTg4LTQuMTIyLTYuOTkyLTQuMTIyLTEuNjAzIDAtMy4wOTUuNDc5LTQuMzQ4IDEuMjk0Ljk5MS0xLjk1MSAzLjAxMy0zLjI5NCA1LjM0OC0zLjI5NCAzLjMwOSAwIDYgMi42OTEgNiA2IDAgLjA0MS0uMDA3LjA4MS0uMDA4LjEyMnptLTUuOTkyLTguMTIyYy0xLjEwNiAwLTIuMTYuMjI2LTMuMTE5LjYzNCAxLjA3Ni0xLjAxNSAyLjUyMi0xLjYzNCA0LjExOS0xLjYzNCAyLjk2MSAwIDUuNDIyIDIuMTU4IDUuOTA3IDQuOTgzLTEuMzg4LTIuMzc4LTMuOTYxLTMuOTgzLTYuOTA3LTMuOTgzem0tMSA2YzIuOTY3IDAgNS40MzEgMi4xNjcgNS45MSA1aC0yLjA1MmMtLjQ0Ny0xLjcyMS0yLTMtMy44NTgtM3MtMy40MTEgMS4yNzktMy44NTggM2gtMi4wNTJjLjQ3OS0yLjgzMyAyLjk0My01IDUuOTEtNXptLTMuODU4IDdjLjE1OC42MDkuNDU2IDEuMTU3Ljg1OCAxLjYxOHYyLjM4MmgtLjMxYy0xLjM1NC0uODk5LTIuMzE5LTIuMzM0LTIuNi00em0tNS4xNDIgNmg1LjEzNmMuMjc4LjE1NC41NjcuMjkuODY0LjQxMXYzLjU4OWgtNnptOCAuOTMxYy4zMjguMDQxLjY2MS4wNjkgMSAuMDY5IDEuNDAxIDAgMi43MTgtLjM2NCAzLjg2NC0xaDEuMTM2djRoLTZ6bTgtLjkzMWg2djRoLTZ6bTggMGgxLjEzNmMxLjE0Ny42MzYgMi40NjMgMSAzLjg2NCAxIC4zMzkgMCAuNjcyLS4wMjggMS0uMDY5djMuMDY5aC02em04IC40MTFjLjI5Ny0uMTIxLjU4Ni0uMjU3Ljg2NC0uNDExaDUuMTM2djRoLTZ6bTcuOTY4LTcuNTcyLjAxOS0uMDAzLTIuNzc0LTE2LjY0M2MtLjIxMi0xLjI3MS0xLjMwMS0yLjE5My0yLjU4OS0yLjE5My0xLjQ0NyAwLTIuNjI0IDEuMTc3LTIuNjI0IDIuNjI0djEuMzc2aDJ2LTEuMzc2YzAtLjM0NC4yOC0uNjI0LjYyNC0uNjI0LjMwNyAwIC41NjUuMjE5LjYxNi41MjFsMi41OCAxNS40NzloLS44ODljLS4xMjktMS4wMy0uNDUxLTItLjkzNC0yLjg3IDAtLjA0NC4wMDMtLjA4Ni4wMDMtLjEzIDAtMS40Mi0uMzc2LTIuNzUxLTEuMDI3LTMuOTA4LS40NTctNC4wNTQtMy44NDEtNy4wOTItNy45NDMtNy4wOTItNC40MTEgMC04IDMuNTg5LTggOCAwIDEuMzczLjM2NCAyLjcxMyAxLjAzMSAzLjkwNC4wODIuNzIxLjI2MSAxLjQyNS41MzIgMi4wOTZoLTMuMTg3Yy4yNjMtLjY1LjQ0Mi0xLjMzLjUyNy0yLjAyOC42OTItMS4yMDggMS4wNjctMi41NzQgMS4wNjctMy45NzIgMC00LjQxMS0zLjU4OS04LTgtOC00LjA4IDAtNy40NDggMy4wMDYtNy45MzQgNy4wMjctLjY3NCAxLjE3Mi0xLjA2NiAyLjUyNi0xLjA2NiAzLjk3MyAwIC4wNDQuMDAzLjA4Ni4wMDQuMTMtLjQ4NC44Ny0uODA1IDEuODQtLjkzNSAyLjg3aC0uODg5bDIuNTgtMTUuNDc5Yy4wNTEtLjMwMi4zMDktLjUyMS42MTYtLjUyMS4zNDQgMCAuNjI0LjI4LjYyNC42MjR2MS4zNzZoMnYtMS4zNzZjMC0xLjQ0Ny0xLjE3Ny0yLjYyNC0yLjYyNC0yLjYyNC0xLjI4OCAwLTIuMzc3LjkyMi0yLjU4OCAyLjE5MmwtMi43NzQgMTYuNjQ0LjAxOS4wMDNjLS4wMS4wNTQtLjAzMy4xMDQtLjAzMy4xNjF2M2gtMXYtMjNoNDR2MjNoLTF2LTNjMC0uMDU3LS4wMjMtLjEwNy0uMDMyLS4xNjF6bTEuMDMyLTI1LjgzOXY0aC00NHYtNHptLTIwLTJoLTR2LTRjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptLTI4LTljMC0uNTUxLjQ0OS0xIDEtMWg1MGMuNTUxIDAgMSAuNDQ5IDEgMXY5aC0yMnYtNGMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY0aC0yMnptMCAxMWgydjI5Ljc0OWwtMiAzLjcxNHptMy41OTcgMzFoMS40MDN2N2MwIC41NTMuNDQ4IDEgMSAxaDQwYy41NTIgMCAxLS40NDcgMS0xdi03aDEuNDAzbDUuOTIzIDExaC01Ni42NTJ6bTUwLjQwMyAxNWgtNTZjLS41NTEgMC0xLS40NDgtMS0xdi0xaDU4djFjMCAuNTUyLS40NDkgMS0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDE2aDR2MmgtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTZoNHYyaC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMSA5aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Rne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMTMuMjA2IDEwNi4yNjVoLTEzLjYyM3YtODYuMjhhMS43NDkgMS43NDkgMCAwIDAgLTEuNTU0LTEuNzM4bC00Ni01LjE5MmExLjc1IDEuNzUgMCAwIDAgLTEuOTQ2IDEuNzM5djMuNDQxaC0xOS45MTZhMS43NSAxLjc1IDAgMCAwIC0xLjc1IDEuNzV2ODYuMjhoLTEzLjYyM2ExLjc1IDEuNzUgMCAxIDAgMCAzLjVoMzUuMjg5djMuNDQxYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzUgMS42MSAxLjYxIDAgMCAwIC4yLS4wMTFsNDUuOS01LjE4aDE1LjI3NmExLjc1IDEuNzUgMCAwIDAgMC0zLjV6bS04MS4yODktODQuNTNoMTguMTY2djQuNWgtMTEuOTE3YTEuNzUgMS43NSAwIDAgMCAtMS43NSAxLjc1djc4LjI4aC00LjV6bTggODQuNTN2LTc2LjUzaDEwLjE2NnY3Ni41M3ptMTMuNjY2LTg5LjUxMyA0Mi41IDQuOHY4NC45bC00Mi41IDQuOHoiLz4KICAgICAgICA8cGF0aCBkPSJtNjEuMTI1IDU4Ljc5MmE1LjIwOCA1LjIwOCAwIDEgMCA1LjIwOCA1LjIwOCA1LjIxNCA1LjIxNCAwIDAgMCAtNS4yMDgtNS4yMDh6bTAgNi45MTZhMS43MDggMS43MDggMCAxIDEgMS43MDgtMS43MDggMS43MSAxLjcxIDAgMCAxIC0xLjcwOCAxLjcwOHoiLz4KICAgIDwvZz4KPC9zdmc+",Jne="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQwMS4wNjcsMEgxMTAuOTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2NDk0LjkzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDI5MC4xMzMKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1Y4LjUzM0M0MDkuNiwzLjgxNCw0MDUuNzc3LDAsNDAxLjA2NywweiBNMzkyLjUzMyw0OTQuOTMzSDExOS40NjdWMTcuMDY3aDI3My4wNjdWNDk0LjkzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzY2LjkzMywzNC4xMzNIMTQ1LjA2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjQ2MC44YzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjIxLjg2NwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzdi00NjAuOEMzNzUuNDY3LDM3Ljk0OCwzNzEuNjQ0LDM0LjEzMywzNjYuOTMzLDM0LjEzM3ogTTM1OC40LDQ5NC45MzNIMTUzLjZWNTEuMmgyMDQuOFY0OTQuOTMzegoJCQkiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNDcuMDUzLDAtODUuMzMzLDM4LjI4MS04NS4zMzMsODUuMzMzdjguNTMzYzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTUzLjYKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxNTMuNkMzNDEuMzMzLDEwNi41NDcsMzAzLjA1Myw2OC4yNjcsMjU2LDY4LjI2N3ogTTE4Ny43MzMsMTUzLjYKCQkJYzAtMzcuNjQxLDMwLjYyNi02OC4yNjcsNjguMjY3LTY4LjI2N2MzNy42NDEsMCw2OC4yNjcsMzAuNjI2LDY4LjI2Nyw2OC4yNjdIMTg3LjczM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywxODcuNzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjE5Ni4yNjdDMjQ3LjQ2NywxOTEuNTQ4LDI0My42NDQsMTg3LjczMywyMzguOTMzLDE4Ny43MzN6IE0yMzAuNCwzMDcuMmgtNDIuNjY3VjIwNC44SDIzMC40CgkJCVYzMDcuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMTg3LjczM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMTk2LjI2N0MzNDEuMzMzLDE5MS41NDgsMzM3LjUxLDE4Ny43MzMsMzMyLjgsMTg3LjczM3ogTTMyNC4yNjcsMzA3LjJIMjgxLjZWMjA0LjhoNDIuNjY3VjMwNy4yCgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNDEuMzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjM0OS44NjdDMjQ3LjQ2NywzNDUuMTQ4LDI0My42NDQsMzQxLjMzMywyMzguOTMzLDM0MS4zMzN6IE0yMzAuNCw0NjAuOGgtNDIuNjY3VjM1OC40SDIzMC40CgkJCVY0NjAuOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMzQxLjMzM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMzQ5Ljg2N0MzNDEuMzMzLDM0NS4xNDgsMzM3LjUxLDM0MS4zMzMsMzMyLjgsMzQxLjMzM3ogTTMyNC4yNjcsNDYwLjhIMjgxLjZWMzU4LjRoNDIuNjY3VjQ2MC44CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjg1LjMzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODE0LDguNTMzLTguNTMzVjc2LjgKCQkJQzI2NC41MzMsNzIuMDgxLDI2MC43MSw2OC4yNjcsMjU2LDY4LjI2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzIwLjQzNSw5Ny42OThjLTMuMzI4LTMuMzM2LTguNzMtMy4zMzYtMTIuMDY2LDBMMjQ5Ljk2NywxNTYuMWMtMy4zMzcsMy4zMzctMy4zMzcsOC43MywwLDEyLjA2NgoJCQljMS42NjQsMS42NjQsMy44NDksMi41LDYuMDMzLDIuNWMyLjE4NSwwLDQuMzY5LTAuODM2LDYuMDMzLTIuNWw1OC40MDItNTguNDAyQzMyMy43NzIsMTA2LjQyOCwzMjMuNzcyLDEwMS4wMzUsMzIwLjQzNSw5Ny42OTh6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTI2Mi4wMzMsMTU2LjFMMjAzLjYzMSw5Ny42OWMtMy4zMjgtMy4zMzctOC43My0zLjMzNy0xMi4wNjYsMGMtMy4zMzcsMy4zMzYtMy4zMzcsOC43MywwLDEyLjA2Nmw1OC40MDIsNTguNDExCgkJCWMxLjY2NCwxLjY2NCwzLjg0OSwyLjUsNi4wMzMsMi41YzIuMTg1LDAsNC4zNjktMC44MzYsNi4wMzMtMi41QzI2NS4zNywxNjQuODMsMjY1LjM3LDE1OS40MzcsMjYyLjAzMywxNTYuMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNTkuNzMzLDQ5NC45MzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM0MwLDUwOC4xODYsMy44MjMsNTEyLDguNTMzLDUxMmg1MS4yCgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNjguMjY3LDQ5OC43NDgsNjQuNDQ0LDQ5NC45MzMsNTkuNzMzLDQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsNDk0LjkzM2gtMTAyLjRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDEwMi40CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNTEyLDQ5OC43NDgsNTA4LjE3Nyw0OTQuOTMzLDUwMy40NjcsNDk0LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Bne="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjBhOTYgOTYgMCAxIDAgOTYgOTYgOTYuMTA4IDk2LjEwOCAwIDAgMCAtOTYtOTZ6bTAgMTc2YTgwIDgwIDAgMSAxIDgwLTgwIDgwLjA5MSA4MC4wOTEgMCAwIDEgLTgwIDgweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYgMTI4YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjguMTQ1IDEyOC4xNDUgMCAwIDAgLTEyOC0xMjh6bTAgMjQwYTExMiAxMTIgMCAxIDEgMTEyLTExMiAxMTIuMTI3IDExMi4xMjcgMCAwIDEgLTExMiAxMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMiA0ODh2LTQ2NGE4IDggMCAwIDAgLTgtOGgtMzM2YTggOCAwIDAgMCAtOCA4djQ2NGE4IDggMCAwIDAgOCA4aDMzNmE4IDggMCAwIDAgOC04em0tMzM2LTM3NmgzMjB2MzA0aC0zMjB6bTk2LTgwaDE0NHY0MGE4IDggMCAwIDAgOCA4aDcydjE2aC0yMjR6bTIyNCAzMmgtNjR2LTMyaDY0em0tMjQwLTMydjY0aC04MHYtNjR6bS04MCA0NDh2LTQ4aDMyMHY0OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDQwYTI0IDI0IDAgMSAwIDI0IDI0IDI0LjAyNyAyNC4wMjcgMCAwIDAgLTI0LTI0em0wIDMyYTggOCAwIDEgMSA4LTggOC4wMDkgOC4wMDkgMCAwIDEgLTggOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTEyIDU2aDQ4djE2aC00OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDQwaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDcyaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjcyIDIwMGE4IDggMCAwIDAgLTE2IDBjMCA2LjM3My0yLjQxNyA5LjE5MS02LjA3NCAxMy40NTgtNC40MjYgNS4xNTktOS45MjYgMTEuNTgtOS45MjYgMjMuODcyczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTMtNi4wNzQgMTMuNDYxYy00LjQyNiA1LjE1OS05LjkyNiAxMS41ODEtOS45MjYgMjMuODc0YTggOCAwIDAgMCAxNiAwYzAtNi4zNzUgMi40MTctOS4xOTQgNi4wNzQtMTMuNDYyIDQuNDIzLTUuMTU5IDkuOTI2LTExLjU4IDkuOTI2LTIzLjg3M3MtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXMyLjQxNy05LjE5MSA2LjA3NC0xMy40NThjNC40MjYtNS4xNTkgOS45MjYtMTEuNTggOS45MjYtMjMuODcyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTYgMjM3LjMzYzAtNi4zNzMgMi40MTctOS4xOTIgNi4wNzUtMTMuNDYuODEyLS45NDcgMS42MjMtMS45IDIuNDA3LTIuODc4YTggOCAwIDAgMCAtMTIuNS05Ljk4NGMtLjY2OC44MzYtMS4zNjEgMS42NDEtMi4wNTMgMi40NDktNC40MjkgNS4xNTktOS45MjkgMTEuNTgxLTkuOTI5IDIzLjg3M3M1LjUgMTguNzE0IDkuOTI2IDIzLjg3M2MzLjY1NyA0LjI2OCA2LjA3NCA3LjA4NyA2LjA3NCAxMy40NjJzLTIuNDE3IDkuMTk0LTYuMDc1IDEzLjQ2MmMtLjgxMy45NDktMS42MjUgMS45LTIuNDA5IDIuODgxYTggOCAwIDAgMCAxMi41IDkuOTg0Yy42NjgtLjgzNyAxLjM2Mi0xLjY0NCAyLjA1NC0yLjQ1MiA0LjQzLTUuMTYgOS45My0xMS41ODIgOS45My0yMy44NzVzLTUuNS0xOC43MTUtOS45MjYtMjMuODc0Yy0zLjY1Ny00LjI2OC02LjA3NC03LjA5MS02LjA3NC0xMy40NjF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxNiAyMzcuMzNjMC02LjM3MyAyLjQxNy05LjE5MiA2LjA3NS0xMy40Ni44MTItLjk0NyAxLjYyMy0xLjkgMi40MDctMi44NzhhOCA4IDAgMCAwIC0xMi41LTkuOTg0Yy0uNjY4LjgzNi0xLjM2MSAxLjY0MS0yLjA1MyAyLjQ0OS00LjQyOSA1LjE1OS05LjkyOSAxMS41ODEtOS45MjkgMjMuODczczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTQtNi4wNzUgMTMuNDYyYy0uODEzLjk0OS0xLjYyNSAxLjktMi40MDkgMi44ODFhOCA4IDAgMCAwIDEyLjUgOS45ODRjLjY2OC0uODM3IDEuMzYyLTEuNjQ0IDIuMDU0LTIuNDUyIDQuNDMtNS4xNiA5LjkzLTExLjU4MiA5LjkzLTIzLjg3NXMtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXoiLz4KICAgIDwvZz4KPC9zdmc+",Fne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3Ni4wNjUgNDc2LjA2NSI+CjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+Cgk8cGF0aCBkPSJNNDMyLjU1OCwxNzIuMDJDNDE5LjMwMyw2NC41ODcsMzIxLjQ2Ni0xMS43NiwyMTQuMDMzLDEuNDk1UzMwLjI1MywxMTIuNTg3LDQzLjUwOCwyMjAuMDIKCQljMTEuMDA4LDg5LjIyMiw4MS4zMDMsMTU5LjUxNywxNzAuNTI1LDE3MC41MjV2MzcuNTJoLTU2Yy0xMy4yNTUsMC0yNCwxMC43NDUtMjQsMjR2MjRoMjA4di0yNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTU2CgkJdi0zNy41MkMzNjkuNDY2LDM3Ny4yOSw0NDUuODEzLDI3OS40NTMsNDMyLjU1OCwxNzIuMDJ6IE0zMTguMDMzLDQ0NC4wNjVjNC40MTgsMCw4LDMuNTgyLDgsOHY4aC0xNzZ2LThjMC00LjQxOCwzLjU4Mi04LDgtOAoJCUgzMTguMDMzeiBNMjMwLjAzMyw0MjguMDY1di0zMmgxNnYzMkgyMzAuMDMzeiBNMjM4LjAzMywzNzYuMDY1Yy05OS40MTEsMC0xODAtODAuNTg5LTE4MC0xODAKCQljMC4xMTUtOTkuMzY0LDgwLjYzNi0xNzkuODg1LDE4MC0xODBjOTkuNDExLDAsMTgwLDgwLjU4OSwxODAsMTgwUzMzNy40NDQsMzc2LjA2NSwyMzguMDMzLDM3Ni4wNjV6Ii8+Cgk8cGF0aCBkPSJNNDA2LjAzMywyMTIuMDY1di0xNmMwLTQuNDE4LTMuNTgyLTgtOC04aC05My41MzZjMzkuOC0yNy44MzIsNDkuNTAyLTgyLjY1OCwyMS42Ny0xMjIuNDU4CgkJYy0xNi40NjctMjMuNTQ4LTQzLjQtMzcuNTY1LTcyLjEzNC0zNy41NDJoLTE2Yy00LjQxOCwwLTgsMy41ODItOCw4djkzLjUzNmMtMjcuODMyLTM5LjgtODIuNjU4LTQ5LjUwMi0xMjIuNDU4LTIxLjY3CgkJYy0yMy41NDgsMTYuNDY3LTM3LjU2NSw0My40LTM3LjU0Miw3Mi4xMzR2MTZjMCw0LjQxOCwzLjU4Miw4LDgsOGg5My41MzZjLTIzLjQ2NSwxNi40NzgtMzcuNDYzLDQzLjMyOC0zNy41MzYsNzIKCQljMC4wNTcsNDguNTc3LDM5LjQyMyw4Ny45NDMsODgsODhoMTZjNC40MTgsMCw4LTMuNTgyLDgtOHYtOTMuNTM2YzI3LjgzMiwzOS44LDgyLjY1OCw0OS41MDIsMTIyLjQ1OCwyMS42NwoJCUMzOTIuMDM4LDI2Ny43MzMsNDA2LjA1NiwyNDAuOCw0MDYuMDMzLDIxMi4wNjV6IE0yNDYuMDMzLDQ0LjA2NWg4YzM5Ljc2NCwwLjA1NSw3MS45NTUsMzIuMzM2LDcxLjksNzIuMQoJCWMtMC4wNDMsMzEuMTctMjAuMTM4LDU4Ljc3Mi00OS43ODgsNjguMzg4Yy00LjIwMi0xNC4wNTItMTUuNzU4LTI0LjY3Ny0zMC4xMTItMjcuNjg4VjQ0LjA2NXogTTg2LjAzMywxODguMDY1di04CgkJYzAuMDczLTM5Ljc2NCwzMi4zNjgtNzEuOTQsNzIuMTMzLTcxLjg2N2MzMS4xNDgsMC4wNTcsNTguNzI3LDIwLjEzOCw2OC4zNDcsNDkuNzYzYy0xNC4wNDcsNC4yMDMtMjQuNjY4LDE1Ljc1NS0yNy42OCwzMC4xMDQKCQlIODYuMDMzeiBNMjMwLjAzMywzNDguMDY1aC04Yy0zOS43NjQtMC4wNTUtNzEuOTU1LTMyLjMzNi03MS45LTcyLjFjMC4wNDMtMzEuMTcsMjAuMTM4LTU4Ljc3Miw0OS43ODgtNjguMzg4CgkJYzQuMjAyLDE0LjA1MiwxNS43NTgsMjQuNjc3LDMwLjExMiwyNy42ODhWMzQ4LjA2NXogTTIzOC4wMzMsMjIwLjA2NWMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNAoJCXMyNCwxMC43NDUsMjQsMjRTMjUxLjI4NywyMjAuMDY1LDIzOC4wMzMsMjIwLjA2NXogTTMxNy45LDI4My45MzJjLTMxLjE0OC0wLjA1Ny01OC43MjctMjAuMTM4LTY4LjM0Ny00OS43NjMKCQljMTQuMDQ3LTQuMjAzLDI0LjY2OC0xNS43NTUsMjcuNjgtMzAuMTA0aDExMi44djhDMzg5Ljk1OSwyNTEuODMsMzU3LjY2NCwyODQuMDA2LDMxNy45LDI4My45MzJ6Ii8+CjwvZz4KPC9zdmc+Cg==",Gne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk5LDEyNi4wMDFoLTAuMDI3YzYuMjkyLTguMzYyLDEwLjAyNy0xOC43NTIsMTAuMDI3LTMwYzAtMjcuNTctMjIuNDMtNTAuMDAxLTUwLTUwLjAwMQoJCXMtNTAuMDAxLDIyLjQzLTUwLjAwMSw1MC4wMDFjMCwxMS4yNDgsMy43MzYsMjEuNjM4LDEwLjAyNywzMGgtMC4wMjdjLTUuNTIyLDAtMTAsNC40NzctMTAsMTB2MzUuNTQ1CgkJYy0xMS4zMjgtNy4yMzMtMjMuMTI4LTEzLjY1OC0zNS4zMzQtMTkuMjQxdi0xNi4zMDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAsNC40NzctMTAsMTB2OC4wMzcKCQljLTMuMzY5LTEuMjQ3LTYuNzY0LTIuNDM4LTEwLjE4Ni0zLjU2MmMtOC4yOTEtMi43MjMtMTYuNjgzLTUuMDUyLTI1LjE0Ni03LjAxMXYtMjAuODMzYzAtNS41MjMtNC40NzgtMTAtMTAtMTAKCQljLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTYuOTMyYy0xMS42OC0xLjg0OS0yMy40NzQtMi45NzQtMzUuMzMyLTMuMzgxVjk2LjAwMWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJdjMwLjE4M2MtMTEuODU5LDAuNDA3LTIzLjY1MywxLjUzMi0zNS4zMzMsMy4zODF2LTE2LjkzMmMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjIwLjgzMwoJCWMtOC40NjIsMS45NTktMTYuODUyLDQuMjg3LTI1LjE0Miw3LjAwOWMtMy40MjQsMS4xMjQtNi44MTksMi4zMTYtMTAuMTkxLDMuNTYzdi04LjAzN2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwCgkJYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjE2LjMwNGMtMTIuMjA1LDUuNTgzLTI0LjAwNCwxMi4wMDctMzUuMzM0LDE5LjI0di0zNS41NDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMC4wMjcKCQljNi4yOTMtOC4zNjIsMTAuMDI3LTE4Ljc1MiwxMC4wMjctMzBjMC0yNy41Ny0yMi40My01MC01MC01MHMtNTAsMjIuNDMtNTAsNTBjMCwxMS4yNDgsMy43MzQsMjEuNjM4LDEwLjAyNywzMEgxMAoJCWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYzMTkuOTk5YzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDBoNDBoMzEuMDMzYzUuNTIyLDAsMTAtNC40NzcsMTAtMTBjMC01LjUyMi00LjQ3OC0xMC0xMC0xMEgxMDAKCQl2LTIwLjAwMWgzMTEuOTk4djIwLjAwMWgtMjEuMDMzYy01LjUyMywwLTEwLDQuNDc4LTEwLDEwYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoMzEuMDMzaDQwLjAwMWg0MGM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwCgkJVjEzNi4wMDFDNTExLjk5OSwxMzAuNDc3LDUwNy41MjEsMTI2LjAwMSw1MDEuOTk5LDEyNi4wMDF6IE04MCw0NDUuOTk5SDUwSDIwVjE0Ni4wMDFoMjB2NDEuODk4YzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQlzMTAtNC40NzcsMTAtMTB2LTQxLjg5OGgyMFY0NDUuOTk5eiBNNTAsMTI2LjAwMWMtMTYuNTQzLDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1Ny0zMCwzMC0zMGMxNi41NDMsMCwzMCwxMy40NTgsMzAsMzAKCQlTNjYuNTQzLDEyNi4wMDEsNTAsMTI2LjAwMXogTTEzNS4zMzQsNDA1Ljk5OEgxMDBWMTk1LjYyOWMxMS4zMTgtOC4wMiwyMy4xMjYtMTUuMDk1LDM1LjMzNC0yMS4yMThWNDA1Ljk5OHogTTE5MC42NjcsNDA2CgkJaC0zNS4zMzNWMTY1LjM4NGMxMS41LTQuNjMsMjMuMjk4LTguNDQ5LDM1LjMzMy0xMS40MzdWNDA2eiBNMjQ2LDQwNmgtMzUuMzMzVjE0OS43ODdjMTEuNjE0LTEuOTU4LDIzLjQwOS0zLjE2OCwzNS4zMzMtMy41OTkKCQlWNDA2eiBNMzAxLjMzMiw0MDUuOTk4SDI2NnYtMjU5LjgxYzExLjkyNCwwLjQzMSwyMy43MTcsMS42NDEsMzUuMzMyLDMuNTk5VjQwNS45OTh6IE0zNTYuNjY0LDQwNS45OTloLTM1LjMzMlYxNTMuOTQ4CgkJYzEyLjAzNSwyLjk4OCwyMy44MzIsNi44MDcsMzUuMzMyLDExLjQzOFY0MDUuOTk5eiBNNDExLjk5OCw0MDUuOTk4aC0zNS4zMzRWMTc0LjQxMmMxMi4yMDksNi4xMjMsMjQuMDE3LDEzLjIsMzUuMzM0LDIxLjIyCgkJVjQwNS45OTh6IE00OTEuOTk5LDQ0NS45OTloLTMwaC0zMC4wMDFWMTQ2LjAwMWgyMC4wMDF2NDEuODk4YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtNDEuODk4aDIwCgkJVjQ0NS45OTl6IE00NjEuOTk5LDEyNi4wMDFjLTE2LjU0MiwwLTMwLjAwMS0xMy40NTgtMzAuMDAxLTMwYzAtMTYuNTQzLDEzLjQ1OS0zMC4wMDEsMzAuMDAxLTMwLjAwMQoJCWMxNi41NDIsMCwzMCwxMy40NTgsMzAsMzAuMDAxQzQ5MS45OTksMTEyLjU0Miw0NzguNTQxLDEyNi4wMDEsNDYxLjk5OSwxMjYuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTAsNDQ1Ljk5OWgtMC4yMzZjLTUuNTIzLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMEgxNTBjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCUMxNjAsNDUwLjQ3NywxNTUuNTIzLDQ0NS45OTksMTUwLDQ0NS45OTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Mi4yMzQsNDQ1Ljk5OWgtMC4yMzdjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3OCwxMCwxMCwxMGgwLjIzN2M1LjUyMywwLDEwLTQuNDc3LDEwLTEwCgkJQzM3Mi4yMzQsNDUwLjQ3NywzNjcuNzU4LDQ0NS45OTksMzYyLjIzNCw0NDUuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MCwyMDYuNjMxYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzcsMTAsMTAsMTBzMTAtNC40NzcsMTAtMTB2LTAuMjM1CgkJQzYwLDIxMS4xMDgsNTUuNTIzLDIwNi42MzEsNTAsMjA2LjYzMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjk5OSwyMDYuNjMxYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtMC4yMzUKCQlDNDcxLjk5OSwyMTEuMTA4LDQ2Ny41MjEsMjA2LjYzMSw0NjEuOTk5LDIwNi42MzF6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Hne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuMDA1LDEwOC4wMDNjLTEzLjI1NSwwLTI0LDEwLjc0NS0yNCwyNGMwLDQuNDE4LDMuNTgyLDgsOCw4czgtMy41ODIsOC04czMuNTgyLTgsOC04czgtMy41ODIsOC04CgkJCVMxMDguNDIzLDEwOC4wMDMsMTA0LjAwNSwxMDguMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zODUuMzU3LDc2LjExNWwtMjgwLTQ4Yy0wLjQ0Ny0wLjA3My0wLjg5OS0wLjExMS0xLjM1Mi0wLjExMkM0Ni42MTIsMjcuOTU2LDAuMDQ3LDc0LjQ0NCwwLDEzMS44MzcKCQkJYy0wLjAyNiwzMS4wNTksMTMuODQzLDYwLjUwMSwzNy44MDUsODAuMjYxbDU4LjQ0LDIzMy44NDhjMC44OTIsMy41NTksNC4wOTEsNi4wNTYsNy43Niw2LjA1Nmg2NAoJCQljNC40MTgsMC4wMDgsOC4wMDctMy41NjYsOC4wMTUtNy45ODVjMC0wLjE3MS0wLjAwNS0wLjM0MS0wLjAxNS0wLjUxMWwtMTMuNi0yMTcuNGwyMjIuOTItMzguMjE2CgkJCWMzLjg1NC0wLjY0NSw2LjY3OS0zLjk4LDYuNjgtNy44ODh2LTk2QzM5Mi4wMDcsODAuMTA1LDM4OS4xOTksNzYuNzczLDM4NS4zNTcsNzYuMTE1eiBNMTEwLjI1Myw0MzYuMDAzTDU3LjYwNSwyMjUuMTcxCgkJCWMwLjUwNCwwLjI0OCwxLjA0LDAuNDE2LDEuNTQ0LDAuNjY0YzIuNTc2LDEuMjMyLDUuMTg5LDIuMzUyLDcuODQsMy4zNmMwLjc0NCwwLjI4LDEuNDY0LDAuNiwyLjIwOCwwLjg2NAoJCQljMy4zMTksMS4xNzQsNi42OTcsMi4xNzUsMTAuMTIsM2MwLjgsMC4xOTIsMS42LDAuMzI4LDIuNCwwLjUwNGMyLjc2OCwwLjU5Miw1LjU2NSwxLjA3Nyw4LjM5MiwxLjQ1NgoJCQljMS4wMDgsMC4xMjgsMi4wMTYsMC4yNjQsMy4wMjQsMC4zNjhjMy42MTEsMC4zOSw3LjI0LDAuNTk2LDEwLjg3MiwwLjYxNmMwLjQ1My0wLjAwMSwwLjkwNS0wLjAzOSwxLjM1Mi0wLjExMmw0MS4yMTYtNy4wODgKCQkJbDEyLjkyLDIwNy4ySDExMC4yNTN6IE0zNDQuMDA1LDE3OC43MzlsLTIzOC4wODgsNDAuOGwtMi41NzYsMC40NjRjLTQ4LjM2Ny0wLjMwNC04Ny4zOTktMzkuNjMyLTg3LjMzNi04OAoJCQljMC4wNTUtNDguMzIsMzkuMDE4LTg3LjU3OSw4Ny4zMzYtODhsMjQwLjY2NCw0MS4yNjRWMTc4LjczOXogTTM3Ni4wMDUsMTczLjI1OWwtMTYsMi43NDR2LTg4bDE2LDIuNzQ0VjE3My4yNTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNC4wMDUsNzYuMDAzYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMxNjAuMDA1LDEwMS4wNzUsMTM0LjkzMyw3Ni4wMDMsMTA0LjAwNSw3Ni4wMDN6IE0xMDQuMDA1LDE3Mi4wMDNjLTIyLjA5MSwwLTQwLTE3LjkwOS00MC00MGMwLjAyNi0yMi4wOCwxNy45Mi0zOS45NzQsNDAtNDAKCQkJYzIyLjA5MSwwLDQwLDE3LjkwOSw0MCw0MFMxMjYuMDk3LDE3Mi4wMDMsMTA0LjAwNSwxNzIuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDEuOTMzLDQxMS41MjNsLTkuNjY0LTE1NS4wMjRjLTAuMjc2LTQuNDE4LTQuMDgyLTcuNzc2LTguNS03LjVjLTQuNDE4LDAuMjc2LTcuNzc2LDQuMDgyLTcuNSw4LjVsOS42NjQsMTU1CgkJCWMwLjI2Myw0LjIyNywzLjc3Myw3LjUxNiw4LjAwOCw3LjUwNGMwLjE2OCwwLDAuMzM2LDAsMC41MDQsMEMxMzguODU0LDQxOS43MjgsMTQyLjIwNyw0MTUuOTMyLDE0MS45MzMsNDExLjUyM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDcyLjAwNSwxMjQuMDAzaC00OGMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGg0OGM0LjQxOCwwLDgtMy41ODIsOC04UzQ3Ni40MjMsMTI0LjAwMyw0NzIuMDA1LDEyNC4wMDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ3Mi4wMDUsMTU2LjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDE1Ni4wMDMsNDcyLjAwNSwxNTYuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzIuMDA1LDkyLjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDkyLjAwMyw0NzIuMDA1LDkyLjAwM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Vne="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OC40NTcsNzcuMjI3YTguMDYzLDguMDYzLDAsMCwwLTEwLjQsMTIuMzI1djYuOTI3YTUuMjczLDUuMjczLDAsMCwwLDEwLjU0NSwwVjg5LjU1M2E4LjA2Myw4LjA2MywwLDAsMC0uMTQ2LTEyLjMyNlpNNDUuODc0LDg3LjI0YTEuNzUsMS43NSwwLDAsMC0uNzcxLDEuNDUxdjcuNzg3YTEuNzczLDEuNzczLDAsMCwxLTMuNTQ1LDBWODguNjkxYTEuNzQ3LDEuNzQ3LDAsMCwwLS43NzMtMS40NTFBNC41NjYsNC41NjYsMCwwLDEsNDIuNCw3OC45NzhhNC44NzYsNC44NzYsMCwwLDEsLjk0LS4wOTIsNC41LDQuNSwwLDAsMSwyLjg5MywxLjA0MSw0LjU2Miw0LjU2MiwwLDAsMS0uMzU2LDcuMzEzWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDUuMjI4LDQ0LjY2Myw2NS41OCw0My4zNlYxOS41MTRhNS4zNyw1LjM3LDAsMCwwLTUuMzYzLTUuMzY0SDI2LjQ0M2E1LjM3LDUuMzcsMCwwLDAtNS4zNjMsNS4zNjR2ODguOTcyYTUuMzcsNS4zNywwLDAsMCw1LjM2Myw1LjM2NEg2MC4yMTdhNS4zNyw1LjM3LDAsMCwwLDUuMzYzLTUuMzY0VjU5LjhsMzkuNjQ4LTEuM2ExLjc1LDEuNzUsMCwwLDAsMS42OTItMS43NDlWNDYuNDEyQTEuNzUsMS43NSwwLDAsMCwxMDUuMjI4LDQ0LjY2M1pNNjIuMDgsMTA4LjQ4NmExLjg2NiwxLjg2NiwwLDAsMS0xLjg2MywxLjg2NEgyNi40NDNhMS44NjYsMS44NjYsMCwwLDEtMS44NjMtMS44NjRWMTkuNTE0YTEuODY2LDEuODY2LDAsMCwxLDEuODYzLTEuODY0SDYwLjIxN2ExLjg2NiwxLjg2NiwwLDAsMSwxLjg2MywxLjg2NFY0My4yNDVsLTYuMjY3LS4yMDZhMTUuMTI3LDE1LjEyNywwLDEsMCwwLDE3LjA4Nmw2LjI2NC0uMjA2Wk00NC4zOSw2MC41aDBMNTEsNjAuMjg0YTExLjYxMiwxMS42MTIsMCwxLDEsLjA0LTE3LjRsLTYuNjQ5LS4yMTloLS4wNThBOC45Miw4LjkyLDAsMSwwLDQ0LjM5LDYwLjVabTU5LjAzLTUuNDQyLTM5LjU4NywxLjNoLS4wMDhMNDQuMzM0LDU3YTUuNDIsNS40MiwwLDAsMS0uMDI3LTEwLjg0bDU5LjExMywxLjk0M1oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Zne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuMzQsMTE3LjMzNmMtNS45MDYsMC0xMC42ODgsNC43NzMtMTAuNjg4LDEwLjY2NHY4NS4zMzVINDY5LjM0di0yMS4zMzZjMC0yMy41MjMtMTkuMTU2LTQyLjY2My00Mi42ODgtNDIuNjYzCgkJYy0xMi43MTgsMC0yNC4xNTUsNS42MDktMzEuOTk5LDE0LjQ5MWMtNy44MTItOC44ODItMTkuMjUtMTQuNDkxLTMyLTE0LjQ5MWMtMTIuNzE4LDAtMjQuMTU1LDUuNjA5LTMxLjk5OSwxNC40OTEKCQljLTcuODEyLTguODgyLTE5LjI1LTE0LjQ5MS0zMi0xNC40OTFjLTEyLjcxOSwwLTI0LjE1Niw1LjYwOS0zMS45OTIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxCgkJYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxCgkJYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xOS44MzUsMC0zNi41NywxMy42MTYtNDEuMzIsMzEuOTk5SDMyYy01Ljg5MSwwLTEwLjY2NCw0Ljc3My0xMC42NjQsMTAuNjY0djIxLjMzNkgxMC42NjQKCQlDNC43NzMsMjEzLjMzNSwwLDIxOC4xMDgsMCwyMjMuOTk5czQuNzczLDEwLjY2NCwxMC42NjQsMTAuNjY0aDEwLjY3MnYyMS4zMzZjMCw1Ljg5MSw0Ljc3MywxMC42NjQsMTAuNjY0LDEwLjY2NGgzMnYyMDIuNjc4CgkJYzAsMjMuNTE2LDE5LjE0MSw0Mi42NTYsNDIuNjY0LDQyLjY1NmMxMi43NDIsMCwyNC4xOC01LjYyNSwzMi0xNC41YzcuODI4LDguODc1LDE5LjI3MywxNC41LDMyLDE0LjUKCQljMTIuNzQyLDAsMjQuMTgtNS42MjUsMzItMTQuNWM3LjgyOCw4Ljg3NSwxOS4yNzMsMTQuNSwzMiwxNC41YzEyLjc0MiwwLDI0LjE4LTUuNjI1LDMyLTE0LjUKCQljNy44MzYsOC44NzUsMTkuMjczLDE0LjUsMzEuOTkyLDE0LjVjMTIuNzUsMCwyNC4xODgtNS42MjUsMzItMTQuNWM3Ljg0NCw4Ljg3NSwxOS4yODEsMTQuNSwzMS45OTksMTQuNQoJCWMxMi43NSwwLDI0LjE4OC01LjYyNSwzMi0xNC41YzcuODQ0LDguODc1LDE5LjI4MSwxNC41LDMxLjk5OSwxNC41YzIzLjUzMSwwLDQyLjY4OC0xOS4xNDEsNDIuNjg4LTQyLjY1NlYyMzQuNjYzaDMyCgkJYzUuODc1LDAsMTAuNjU2LTQuNzczLDEwLjY1Ni0xMC42NjRWMTI4QzUxMS45OTYsMTIyLjEwOSw1MDcuMjE1LDExNy4zMzYsNTAxLjM0LDExNy4zMzZ6IE02NCwyNDUuMzM1SDQyLjY2NHYtNDIuNjcySDY0VjI0NS4zMzUKCQl6IE0xMjcuOTk5LDQ2OS4zNDFjMCwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMjU1Ljk5OXYtNjQKCQljMC0xMS43NTgsOS41Ny0yMS4zMzYsMjEuMzI4LTIxLjMzNmMxMS43NzMsMCwyMS4zMzYsOS41NzgsMjEuMzM2LDIxLjMzNlY0NjkuMzQxeiBNMTkxLjk5OSw0NjkuMzQxCgkJYy0wLjAwMSwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2CgkJYzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6IE0yNTUuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzM2LDIxLjMxMgoJCWMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2YzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6CgkJIE0zMTkuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzUsMC0yMS4zMTItOS41NjItMjEuMzEyLTIxLjMxMlYxOTEuOTk5CgkJYzAtMTEuNzU4LDkuNTYyLTIxLjMzNiwyMS4zMTItMjEuMzM2YzExLjc4MSwwLDIxLjM0NCw5LjU3OCwyMS4zNDQsMjEuMzM2VjQ2OS4zNDF6IE0zODMuOTk3LDQ2OS4zNDEKCQljMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzQ5LDAtMjEuMzEyLTkuNTYyLTIxLjMxMi0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU2Mi0yMS4zMzYsMjEuMzEyLTIxLjMzNgoJCWMxMS43ODEsMCwyMS4zNDQsOS41NzgsMjEuMzQ0LDIxLjMzNlY0NjkuMzQxeiBNNDQ3Ljk5Niw0NjkuMzQxYzAsMTEuNzUtOS41NjIsMjEuMzEyLTIxLjM0NCwyMS4zMTIKCQljLTExLjc0OSwwLTIxLjMxMi05LjU2Mi0yMS4zMTItMjEuMzEyVjE5MS45OTljMC0xMS43NTgsOS41NjItMjEuMzM2LDIxLjMxMi0yMS4zMzZjMTEuNzgxLDAsMjEuMzQ0LDkuNTc4LDIxLjM0NCwyMS4zMzZWNDY5LjM0MQoJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU2Ljg3MSwxMDMuNjcyYy0xLjMxMi00LjUzOS0wLjUtNy44NDQsMi42ODgtMTEuMDU1YzguNjU2LTguNjk1LDExLjUzMS0xOS45ODQsOC4wNjItMzEuODEyCgkJCWMtMi4zMTItNy45MzgtNi44MTItMTMuNTQ3LTcuMzc1LTE0LjI1Yy0wLjAzMSwwLTAuMDMxLTAuMDA4LTAuMDMxLTAuMDA4di0wLjAxNWMtMS45NjktMi4zNTktNC45MDYtMy44NjctOC4yMTktMy44NjcKCQkJYy01Ljg5LDAtMTAuNjU1LDQuNzgxLTEwLjY1NSwxMC42NzJjMCwyLjU4NiwwLjkwNiw0Ljk2MSwyLjQzOCw2LjgwNWMwLjAzMSwwLjAyMywyLjI4MSwyLjkzOCwzLjM3NSw2LjY1NgoJCQljMS4yNjYsNC4zNjcsMC40NjksNy41ODYtMi43MTksMTAuNzY2Yy04LjYyNSw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc4LDMxLjk5OGMyLjMyOCw4LjEwMiw2LjgyOCwxMy44MzYsNy4zMjgsMTQuNDY5di0wLjAwOAoJCQljMS45NjksMi40MjIsNC45NTMsMy45NzcsOC4zMTIsMy45NzdjNS44OTEsMCwxMC42NTYtNC43NzMsMTAuNjU2LTEwLjY2NGMwLTIuNTM5LTAuODc1LTQuODY3LTIuMzQ0LTYuNjk1CgkJCUMzNjAuMjc4LDExMC42MSwzNTcuOTY1LDEwNy41NTUsMzU2Ljg3MSwxMDMuNjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNjguNjU2LDk2LjYxYy0yLjQ2MS05LjgzNi0wLjQ5Mi0xOC4xOTUsNi0yNS41NDdjMTEuNDA2LTEyLjg5MSwxNS4wMzEtMjguNjk1LDEwLjUtNDUuNzI2CgkJCWMtMy4xODgtMTEuOTM4LTkuMzEyLTIwLjIyNy0xMC0yMS4xMzNWNC4yMmMtMS45NjktMi41NTUtNS4wMjMtNC4yMTktOC40OTItNC4yMTljLTUuODkzLDAtMTAuNjY2LDQuNzczLTEwLjY2NiwxMC42NjQKCQkJYzAsMi40MTQsMC44MDUsNC42MzMsMi4xNTYsNi40MTRoLTAuMDE2YzAuMDQ3LDAuMDYyLDQuNDkyLDYuMTA5LDYuNTQ3LDE0LjMyYzIuNDUzLDkuODI3LDAuNDg0LDE4LjE4Ny02LjAxNiwyNS41MzgKCQkJYy0xMS4zOSwxMi44OTEtMTUuMDE1LDI4LjY5Ni0xMC40ODMsNDUuNzI3YzMuMTcyLDExLjkzOCw5LjMwNSwyMC4yMjcsOS45ODQsMjEuMTMzbDAuMDE2LTAuMDE2CgkJCWMxLjk0NSwyLjU3LDUuMDE2LDQuMjE5LDguNDc3LDQuMjE5YzUuODk4LDAsMTAuNjgtNC43NzMsMTAuNjgtMTAuNjY0YzAtMi40MTQtMC44MTItNC42MzMtMi4xNTYtNi40MTQKCQkJQzI3NS4xNCwxMTAuODYsMjcwLjY5NSwxMDQuODEzLDI2OC42NTYsOTYuNjF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE4OS42NCwxMTAuNjQxYy0wLjAyMy0wLjAzMS0yLjMyOC0zLjA4Ni0zLjQ0NS02Ljk2OWMtMS4zMDUtNC41MzktMC41LTcuODQ0LDIuNjk1LTExLjA1NQoJCQljOC42NjQtOC42OTUsMTEuNTIzLTE5Ljk4NCw4LjA2Mi0zMS44MTJjLTIuMzItNy45MzgtNi43ODktMTMuNTMxLTcuMzkxLTE0LjI1YzAsMCwwLTAuMDA4LTAuMDA4LTAuMDA4bC0wLjAwOC0wLjAyM3YwLjAwOAoJCQljLTEuOTYxLTIuMzU5LTQuOTA2LTMuODY3LTguMjExLTMuODY3Yy01Ljg5MSwwLTEwLjY3Miw0Ljc4MS0xMC42NzIsMTAuNjcyYzAsMi41ODYsMC45MjIsNC45NjEsMi40NTMsNi44MDUKCQkJYzAuMDIzLDAuMDIzLDIuMjczLDIuOTM4LDMuMzU5LDYuNjU2YzEuMjgxLDQuMzY3LDAuNDY5LDcuNTg2LTIuNzAzLDEwLjc2NmMtOC42NCw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc3LDMxLjk5OAoJCQljMi4zMjgsOC4xMDIsNi44MjgsMTMuODM2LDcuMzM2LDE0LjQ2OXYtMC4wMDhjMS45NjEsMi40MjIsNC45NDUsMy45NzcsOC4zMDUsMy45NzdjNS44OTEsMCwxMC42NjQtNC43NzMsMTAuNjY0LTEwLjY2NAoJCQljMC0yLjUzOS0wLjg5MS00Ljg2Ny0yLjM2Ny02LjY5NUgxODkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Xne="PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIC0xIDQ5NiA0OTUiIHdpZHRoPSI0OTZwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ4OCAzMjAuNWgtNDB2LTMyYzAtMi4xMjg5MDYtLjgzOTg0NC00LjE2MDE1Ni0yLjM0Mzc1LTUuNjU2MjVsLTEyMC0xMjBjLTEuNDk2MDk0LTEuNTAzOTA2LTMuNTI3MzQ0LTIuMzQzNzUtNS42NTYyNS0yLjM0Mzc1aC0xNnYtMTUyYzAtNC40MjU3ODEtMy41NzQyMTktOC04LThoLTk2Yy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djE1MmgtMjRjLTIuMTI4OTA2IDAtNC4xNjAxNTYuODM5ODQ0LTUuNjU2MjUgMi4zNDM3NWwtMTIwIDEyMGMtMS41MDM5MDYgMS40OTYwOTQtMi4zNDM3NSAzLjUyNzM0NC0yLjM0Mzc1IDUuNjU2MjV2MzJoLTMyYy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djQ4YzAgNC40MjU3ODEgMy41NzQyMTkgOCA4IDhoNDgwYzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQ4YzAtNC40MjU3ODEtMy41NzQyMTktOC04LTh6bS0yODAtMzA0aDgwdjE5MmgtODB6bS0xNTIgMjc1LjMxMjUgMTE1LjMxMjUtMTE1LjMxMjVoMjAuNjg3NXY0MGMwIDQuNDI1NzgxIDMuNTc0MjE5IDggOCA4aDk2YzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQwaDEyLjY4NzVsMTE1LjMxMjUgMTE1LjMxMjV2MjguNjg3NWgtMzc2em00MjQgNzYuNjg3NWgtNDY0di0zMmg0NjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNzkuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjI3LjMxMjUgNDQwLjVjLTIuMTM2NzE5LTIuMTQ0NTMxLTMuMzEyNS00Ljk3NjU2Mi0zLjMxMjUtOHMxLjE3NTc4MS01Ljg1NTQ2OSAzLjMxMjUtOGwxMC4zNDM3NS0xMC4zNDM3NS0xMS4zMTI1LTExLjMxMjUtMTAuMzQzNzUgMTAuMzQzNzVjLTUuMTYwMTU2IDUuMTYwMTU2LTggMTIuMDE1NjI1LTggMTkuMzEyNXMyLjgzOTg0NCAxNC4xNjAxNTYgOCAxOS4zMTI1bDQuNjg3NSA0LjY4NzVjMi4xMzY3MTkgMi4xNDQ1MzEgMy4zMTI1IDQuOTc2NTYyIDMuMzEyNSA4cy0xLjE3NTc4MSA1Ljg1NTQ2OS0zLjMxMjUgOGwtMTAuMzQzNzUgMTAuMzQzNzUgMTEuMzEyNSAxMS4zMTI1IDEwLjM0Mzc1LTEwLjM0Mzc1YzUuMTYwMTU2LTUuMTYwMTU2IDgtMTIuMDE1NjI1IDgtMTkuMzEyNXMtMi44Mzk4NDQtMTQuMTYwMTU2LTgtMTkuMzEyNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3NS4zMTI1IDQ0MC41Yy0yLjEzNjcxOS0yLjE0NDUzMS0zLjMxMjUtNC45NzY1NjItMy4zMTI1LThzMS4xNzU3ODEtNS44NTU0NjkgMy4zMTI1LThsMTAuMzQzNzUtMTAuMzQzNzUtMTEuMzEyNS0xMS4zMTI1LTEwLjM0Mzc1IDEwLjM0Mzc1Yy01LjE2MDE1NiA1LjE2MDE1Ni04IDEyLjAxNTYyNS04IDE5LjMxMjVzMi44Mzk4NDQgMTQuMTYwMTU2IDggMTkuMzEyNWw0LjY4NzUgNC42ODc1YzIuMTM2NzE5IDIuMTQ0NTMxIDMuMzEyNSA0Ljk3NjU2MiAzLjMxMjUgOHMtMS4xNzU3ODEgNS44NTU0NjktMy4zMTI1IDhsLTEwLjM0Mzc1IDEwLjM0Mzc1IDExLjMxMjUgMTEuMzEyNSAxMC4zNDM3NS0xMC4zNDM3NWM1LjE2MDE1Ni01LjE2MDE1NiA4LTEyLjAxNTYyNSA4LTE5LjMxMjVzLTIuODM5ODQ0LTE0LjE2MDE1Ni04LTE5LjMxMjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjMuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI4OC41aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAyODguNWgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAgMjg4LjVoMTZ2MTZoLTE2em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Kne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDUgNTEyLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0zMjcuMTU5LDIuNzY2Yy00LjA2My0zLjY4OC0xMC4yNS0zLjY4OC0xNC4zMTMsMGMtNC42NDIsNC4xODYtMTEwLjg4OSwxMDEuMjkyLTE2MC4yMjgsMjEzLjgzOQoJCQkJYy01LjMxOC0xLjg2Ny0xMS40NC0zLjI2Ni0xOS4zNTUtMy4yNjZjLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWMxMiwwLDE3LjU2MywzLjg2NSwyNC42MDQsOC43NgoJCQkJYzguMDUyLDUuNjA0LDE4LjA4MywxMi41NzMsMzYuNzcxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N2MtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzMKCQkJCWMtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTExLjIwOCwwLTE2LjgyMy0zLjQxOS0yMy4yNDItNy44NTRjNDAuMTIxLTkyLjY2MSwxMjMuNjYxLTE3Ny40NjYsMTQ4LjYwNy0yMDEuNDkKCQkJCWMzMy4yMTksMzIuMDEsMTcwLjY2NywxNzEuODY1LDE3MC42NjcsMjk0LjY3N2MwLDk0LjEwNC03Ni41NjMsMTcwLjY2Ny0xNzAuNjY3LDE3MC42NjdjLTQyLjQ3NywwLTgyLjY2OS0xNS44MjItMTEzLjc4LTQzLjc1OAoJCQkJYzExLjU0Mi0yLjEzOCwxOC45OTQtNy4xNzcsMjUuMTg2LTExLjQ4MmM3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NmM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzYKCQkJCWMtMTIsMC0xNy41NjMtMy44NjUtMjQuNTk0LTguNzZjLTguMDYzLTUuNjA0LTE4LjA5NC0xMi41NzMtMzYuNzgxLTEyLjU3M2MtMTguNjc3LDAtMjguNjk4LDYuOTY5LTM2Ljc1LDEyLjU3MwoJCQkJYy03LjAzMSw0Ljg5Ni0xMi41ODMsOC43Ni0yNC41NzMsOC43NmMtMTEuOTY5LDAtMTcuNTIxLTMuODY1LTI0LjU0Mi04Ljc1Yy04LjA0Mi01LjYwNC0xOC4wNjMtMTIuNTgzLTM2LjcyOS0xMi41ODMKCQkJCWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzUKCQkJCWM4LjA0Miw1LjYwNCwxOC4wNjMsMTIuNTgzLDM2LjcyOSwxMi41ODNjMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NQoJCQkJYzEyLDAsMTcuNTYzLDMuODY1LDI0LjYwNCw4Ljc2YzQuMzQ1LDMuMDIzLDkuNDE0LDYuMzU1LDE1Ljk2MSw4Ljg2NWMzNi42LDQyLjk5Niw4OS42NTUsNjcuNzA4LDE0Ni4xNzQsNjcuNzA4CgkJCQljMTA1Ljg2NSwwLDE5Mi04Ni4xMzUsMTkyLTE5MkM1MTIuMDAzLDE3MS42NDEsMzM0LjcwMSw5LjU4OSwzMjcuMTU5LDIuNzY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMC42NjksMzYyLjY3MmMxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzUKCQkJCWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzQuNzczLDM2Mi42NzIsMTAuNjY5LDM2Mi42NzJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzMy4yNjMsMzQxLjMzOWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMiwwLDE3LjU2MywzLjg2NSwyNC41OTQsOC43NgoJCQkJYzguMDYzLDUuNjA0LDE4LjA5NCwxMi41NzMsMzYuNzgxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzEyLjE5OCwwLDE4LjQwNiwzLjk2OSwyNi4yNSw4Ljk5YzkuMDUyLDUuNzgxLDE5LjMxMywxMi4zNDQsMzcuNzUsMTIuMzQ0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjcKCQkJCWMwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMi4xOTgsMC0xOC40MDYtMy45NjktMjYuMjUtOC45OWMtOS4wNTItNS43ODEtMTkuMzEzLTEyLjM0NC0zNy43NS0xMi4zNDQKCQkJCWMtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU5NCw4Ljc2LTI0LjU4Myw4Ljc2Yy0xMiwwLTE3LjU2My0zLjg2NS0yNC42MDQtOC43NgoJCQkJQzE2MS45ODIsMzQ4LjMwNywxNTEuOTUxLDM0MS4zMzksMTMzLjI2MywzNDEuMzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzMuMjYzLDI3Ny4zMzljLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlDMTQzLjkzLDI4Mi4xMDksMTM5LjE1OSwyNzcuMzM5LDEzMy4yNjMsMjc3LjMzOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjMxLjQwOSwzMDcuNDMyYzcuMDMxLTQuODk2LDEyLjU5NC04Ljc2LDI0LjU5NC04Ljc2YzExLjk2OSwwLDE3LjUyMSwzLjg2NSwyNC41NDIsOC43NQoJCQkJYzguMDQyLDUuNjA0LDE4LjA2MywxMi41ODMsMzYuNzI5LDEyLjU4M2MxOC42NzcsMCwyOC43MDgtNi45NzksMzYuNzYtMTIuNTgzYzcuMDMxLTQuODg1LDEyLjU4My04Ljc1LDI0LjU2My04Ljc1CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42NzcsMC0yOC42OTgsNi45NjktMzYuNzUsMTIuNTczCgkJCQljLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzVjLTguMDQyLTUuNjA0LTE4LjA2My0xMi41ODMtMzYuNzI5LTEyLjU4MwoJCQkJYy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjcKCQkJCXM0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N0MyMTMuMzE1LDMyMC4wMDUsMjIzLjM0NiwzMTMuMDM2LDIzMS40MDksMzA3LjQzMnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",qne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTIgMTYzLjg3YzAtMTMuOS01LjQxMi0yNi45NjEtMTUuMjMzLTM2Ljc3LTkuODE1LTkuODI4LTIyLjg3Ni0xNS4yNC0zNi43NzYtMTUuMjRoLTgwLjk3Yy0yNi43MDUgMC00OC40My0yMS43MjYtNDguNDMtNDguNDMgMC0xMi45MzggNS4wMzctMjUuMTAxIDE0LjE4NC0zNC4yNDcgOS4xNDQtOS4xNDYgMjEuMzA3LTE0LjE4MyAzNC4yNDUtMTQuMTgzaDEyNS40OGM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMTI1LjQ4Yy0xNi45NDUgMC0zMi44NzQgNi41OTctNDQuODUzIDE4LjU3Ny0xMS45NzkgMTEuOTc5LTE4LjU3NyAyNy45MDgtMTguNTc3IDQ0Ljg1MyAwIDM0Ljk3NSAyOC40NTUgNjMuNDMgNjMuNDMgNjMuNDNoODAuOTdjOS44OSAwIDE5LjE4MiAzLjg1IDI2LjE2OSAxMC44NDcgNi45OTEgNi45ODIgMTAuODQxIDE2LjI3MyAxMC44NDEgMjYuMTYzIDAgOC42MzctMy4wMzggMTcuMDQ0LTguNTU3IDIzLjY3NGwtMjIuMzA1IDI2LjgyMmMtNy44ODQtMi43MjUtMTYuOTg5LS45NzItMjMuMjgyIDUuMzExbC05LjA1OCA5LjA1OGMtMjAuMzItLjQyLTQzLjA5OCAzLjk0LTYyLjgyMSA3LjQyNy00LjA3OS43MjEtNi44MDEgNC42MTMtNi4wNzkgOC42OTEuNzIxIDQuMDc5IDQuNjEzIDYuNzk5IDguNjkxIDYuMDc5IDE4Ljk0Mi0zLjM1IDM4LjM5Mi01Ljc2OCA1Ny44MDktNy4xODUgNy42ODEtLjU2NiAxNC44MzMgNC4zOTMgMTYuOTg1IDExLjc4IDEuODI3IDYuMjcgNDcuMDI3IDE2MC4xNjcgNDguNTMzIDE2Ni41NzUuNDk4IDIuMTE5LS43MzggMy42Ni0yLjkxMiAzLjY2LTIyLjc4NiAwLTQxLjA0MiAxNS42Ni00OC40NjQgMzYuNDg4aC0zMjAuMzcxYy00LjE0MiAwLTcuNSAzLjM1Ny03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDMyNy43ODdjNS40NDUgMCA5Ljg3NSA0LjQzIDkuODc1IDkuODc1cy00LjQzMSA5Ljg3NS05Ljg3NiA5Ljg3NWgtNDM2LjkwNmMzLjI2NS0xMS4zOTEgMTMuNzc1LTE5Ljc1IDI2LjItMTkuNzVoNTIuOTE5YzQuMTQyIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC00NC45NDRjNjIuNDYyLTExMS41OTggMTcxLjkwMy0xNzcuMDI3IDI5NC43NzgtMjA1LjQ4NiA0LjAzNS0uOTM1IDYuNTQ5LTQuOTYzIDUuNjE0LTguOTk5LS45MzQtNC4wMzUtNC45NjQtNi41NDktOC45OTktNS42MTQtNzEuNjMyIDE2LjU5OS0xNDMuNTkzIDQ3LjA1MS0yMDEuNDczIDkyLjYwNmwtMTAuMDcxLTEwLjA3Yy04LjYzNS04Ljc1Mi0yMy4xNTktOC42NzgtMzEuODI2LS4wMS04LjYzMSA4LjYzMi04LjcyOCAyMy4xNjYgMCAzMS44MDdsOC4wNTEgOC4wNTFjLTI5LjQ2NyAyOC45NTktNTQuMTAyIDYyLjMyLTc0LjA0MiA5OC45Mi0xOC40ODcgNC41MDItMzIuMjU2IDIxLjE5MS0zMi4yNTYgNDEuMDQ1IDAgNC4xNDMgMy4zNTggNy41IDcuNSA3LjVoNDQ1LjQ1NWMxMy43MTYgMCAyNC44NzUtMTEuMTU5IDI0Ljg3NS0yNC44NzUgMC0xMC43NS02Ljg1NS0xOS45MjctMTYuNDI0LTIzLjM5NSA1LjI2My0xMy41NzMgMTcuOTAzLTIyLjk2OSAzMi41OTgtMjIuOTY5IDExLjQ4MyAwIDIwLjMwMi0xMS40MDEgMTcuNDExLTIyLjUxLS4wMTgtLjA3MS0uMDM4LS4xNDItLjA1OC0uMjExbC00NS44NTctMTU3LjM5MSA5LjE2My05LjE1NmM3LjM1OS03LjMwMyA4LjY0NC0xOS4wOTMgMy4xOTctMjcuNzYybDIyLjExNS0yNi41OTNjNy43NTQtOS4zMTggMTIuMDI1LTIxLjEzMiAxMi4wMjUtMzMuMjY4em0tNDAzLjE0NiAxNzEuNDEzYzEuNDItMS40MjEgMy4zMDUtMi4yMDMgNS4zMDctMi4yMDMgMS45OTkgMCAzLjg3Ny43NzkgNS4yOTYgMi4yMDRsOS4wMTQgOS4wMTRjLTMuODI1IDMuMjQzLTcuNTgyIDYuNTUxLTExLjI3NCA5LjkyMmwtOC4zNDQtOC4zNDRjLTIuOTItMi45Mi0yLjkyLTcuNjcyLjAwMS0xMC41OTN6bTM1NS4yMDUtOTQuMzk4LTMuOTg2IDMuOTgzYy0yLjQ5Ni00LjQ2MS02LjAzNy04LjIwMy0xMC4yMzMtMTAuOTYxbDMuNjE5LTMuNjE5YzIuOTI2LTIuOTIgNy42OC0yLjkyMiAxMC41OTgtLjAwNCAxLjQyMSAxLjQyMSAyLjIwMyAzLjMwMiAyLjIwMyA1LjI5NyAwIDItLjc4MiAzLjg4NS0yLjIwMSA1LjMwNHptLTIxNS43NjUgOTQuNzY0Yy0xMy44MjQgNy42NTMtMjIuNDEyIDIyLjIzNS0yMi40MTIgMzguMDU2IDAgMTEuOTg3IDUuMDE5IDIzLjU2MyAxMy43NzEgMzEuNzU4IDguMDY2IDcuNTUzIDE4Ljc4OCAxMS43NTYgMjkuNzg2IDExLjc1NS45NCAwIDE1MS4wOC05LjgzOCAxNTEuMDgtOS44MzggNi45MTEtLjQ1NCAxMy4yMjUtMy45MTYgMTcuMzIyLTkuNDk4IDQuMDk2LTUuNTc5IDUuNTA3LTEyLjYzNyAzLjg3Mi0xOS4zNjJsLTE5LjUzOC04MC4zMjNjLTMuMDE3LTEyLjQwNC0xNS4xODMtMjAuMDEzLTI3LjY5My0xNy4zMjktMzAuMDk0IDYuNDY2LTU5Ljc4NyAxNS41OTQtODguMjU2IDI3LjEzLTE5Ljc2OCA4LjAxLTM5LjI1OSAxNy4zMTMtNTcuOTMyIDI3LjY1MXptMTA3LjI2NiA2MC45NjktNjcuNDMgNC40MzN2LTE3LjY4MWMwLS4yMzguMjAyLS40NC40NC0uNDRoNjYuNTVjLjI0MyAwIC40NC4xOTcuNDQuNDR6bTQyLjA3MS0xMDEuMDg1Yy42MTMtLjEzMiAxLjIyMy0uMTk1IDEuODIzLS4xOTUgMy44MTQgMCA3LjIxIDIuNTU5IDguMTQ1IDYuNDAzbDE5LjUzOCA4MC4zMjNjLjU5NSAyLjQ0Ni4xMDIgNC45MTEtMS4zODggNi45NC0xLjQ5MiAyLjAzMi0zLjY5OSAzLjI0Mi02LjIxNSAzLjQwOGwtNDguOTc0IDMuMjE5di0xMi4yNjFjMC04LjUxNC02LjkyNi0xNS40NC0xNS40NC0xNS40NGgtNjYuNTVjLTguNTE0IDAtMTUuNDQgNi45MjctMTUuNDQgMTUuNDR2MTguNjY3bC0xLjg1LjEyMmMtNy45NTcuNTE4LTE1LjU1Mi0yLjE5Mi0yMS4zNzUtNy42NDUtNS44MTktNS40NDktOS4wMjQtMTIuODM5LTkuMDI0LTIwLjgwOSAwLTEwLjM2NyA1LjYyNC0xOS45MjEgMTQuNjc3LTI0LjkzMyAxOC4xNDgtMTAuMDQ3IDM3LjA5LTE5LjA4OCA1Ni4zMDEtMjYuODczIDI3LjY2Ni0xMS4yMTEgNTYuNTI1LTIwLjA4MyA4NS43NzItMjYuMzY2eiIvPgogICAgPC9nPgo8L3N2Zz4=",eae="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQzNS4yIDMyNC4yNjdoLTEwLjkwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY3Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTIzMi43NzJjLTE0LjEzOCAwLTI1LjYtMTEuNDYyLTI1LjYtMjUuNnMxMS40NjItMjUuNiAyNS42LTI1LjZoMzYuNTA2YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2g2Mi4xMDZjMTQuMTM4IDAgMjUuNi0xMS40NjIgMjUuNi0yNS42cy0xMS40NjItMjUuNi0yNS42LTI1LjZoLTYyLjEwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY2Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTM2LjUwNmMtNDIuNDE1IDAtNzYuOCAzNC4zODUtNzYuOCA3Ni44czM0LjM4NSA3Ni44IDc2LjggNzYuOGgyMzIuNzcyYzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gxMC45MDdjMTQuMTM4IDAgMjUuNiAxMS40NjIgMjUuNiAyNS42cy0xMS40NjIgMjUuNi0yNS42IDI1LjZoLTMwOS41NzJjLTMuMDI0LTUuMjYzLTguNjI0LTguNTE1LTE0LjY5NC04LjUzM3YtMTcuMDY3YzAtOS40MjYtNy42NDEtMTcuMDY3LTE3LjA2Ny0xNy4wNjdoLTE3LjA2N2MtOS40MjYgMC0xNy4wNjcgNy42NDEtMTcuMDY3IDE3LjA2N3YxNy4wNjdjLTYuMDcuMDE4LTExLjY3IDMuMjctMTQuNjk0IDguNTMzaC0xOS40MzljLTE0LjEzOCAwLTI1LjYgMTEuNDYyLTI1LjYgMjUuNnMxMS40NjIgMjUuNiAyNS42IDI1LjZoMTkuNDM5YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gzMDkuNTczYzQyLjQxNSAwIDc2LjgtMzQuMzg1IDc2LjgtNzYuOHMtMzQuMzg1LTc2LjgtNzYuOC03Ni44em0tNTkuNzMzLTI1LjZoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNzYuOC01MS4yYzAgNC43MTMtMy44MjEgOC41MzMtOC41MzMgOC41MzNoLTU5LjczNHYtMTcuMDY3aDU5LjczM2M0LjcxMyAwIDguNTM0IDMuODIxIDguNTM0IDguNTM0em0tMTE5LjQ2Ny01MS4yaDE3LjA2N3YxNy4wNjdoLTE3LjA2N3ptLTguNTMzIDM0LjEzM2g0Mi42Njd2MzQuMTMzaC01MS4ydi0zNC4xMzN6bS0xMTkuNDY3IDY4LjI2N2MuMDM4LTMyLjk3NCAyNi43NTktNTkuNjk2IDU5LjczMy01OS43MzNoMzQuMTMzdjE3LjA2NmgtMzQuMTMzYy0yMy41NjQgMC00Mi42NjcgMTkuMTAzLTQyLjY2NyA0Mi42NjdzMTkuMTAzIDQyLjY2NyA0Mi42NjcgNDIuNjY3aDIzMC40djE3LjA2NmgtMjMwLjRjLTMyLjk3NC0uMDM4LTU5LjY5NS0yNi43NTktNTkuNzMzLTU5LjczM3ptMzA3LjIgNjguMjY2di0zNC4xMzNoNTEuMnYzNC4xMzN6bS0yODEuNiAzNC4xMzRoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNTkuNzMzIDUxLjJjMC00LjcxMyAzLjgyMS04LjUzMyA4LjUzMy04LjUzM2gxNy4wNjd2MTcuMDY2aC0xNy4wNjdjLTQuNzEzIDAtOC41MzMtMy44Mi04LjUzMy04LjUzM3ptNDIuNjY2IDE3LjA2NnYtMzQuMTMzaDUxLjJ2MzQuMTMzem0zNzUuNDY3LTguNTMzaC0zMDcuMnYtMTcuMDY3aDMwNy4yYzIzLjU2NCAwIDQyLjY2Ny0xOS4xMDMgNDIuNjY3LTQyLjY2N3MtMTkuMTAzLTQyLjY2Ny00Mi42NjctNDIuNjY3aC04LjUzM3YtMTcuMDY3aDguNTMzYzMyLjk5IDAgNTkuNzMzIDI2Ljc0NCA1OS43MzMgNTkuNzMzcy0yNi43NDMgNTkuNzM1LTU5LjczMyA1OS43MzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4Ny43MzMgMTYyLjEzM2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyMS04LjUzMy04LjUzMy04LjUzMy00LjcxMyAwLTguNTMzIDMuODIxLTguNTMzIDguNTMzdjE3LjA2N2MwIDQuNzEzIDMuODIxIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xODcuNzMzIDExMC45MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTg3LjczMyA1OS43MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTU0Ljc0MyAxNTcuODY3YzEuNTEzIDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxMy0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjkuMTQzIDExMy40OTNjMS41MTMgMi42NjIgNC4zMzcgNC4zMDkgNy4zOTkgNC4zMTZzNS44OTMtMS42MjggNy40MTgtNC4yODMgMS41MTEtNS45MjQtLjAzOC04LjU2NmwtOC41MzMtMTQuNzhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMy41NDMgNjkuMTg4YzIuMzcyIDQuMDQ3IDcuNTY2IDUuNDIgMTEuNjI4IDMuMDc0IDQuMDYyLTIuMzQ1IDUuNDctNy41MyAzLjE1MS0xMS42MDhsLTguNTMzLTE0Ljc4OGMtMS41MTMtMi42NjItNC4zMzctNC4zMDktNy4zOTktNC4zMTZzLTUuODkzIDEuNjI4LTcuNDE4IDQuMjgzLTEuNTExIDUuOTI0LjAzOCA4LjU2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjA5LjA2NyAxNjAuOTljNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzhjMS41NDktMi42NDIgMS41NjMtNS45MTEuMDM4LTguNTY2cy00LjM1Ni00LjI5LTcuNDE4LTQuMjgzLTUuODg2IDEuNjU0LTcuMzk5IDQuMzE2bC04LjUzMyAxNC43OGMtMi4zNTggNC4wODEtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0LjY2NyAxMTYuNjUxYzQuMDgxIDIuMzU2IDkuMy45NTggMTEuNjU3LTMuMTIzbDguNTMzLTE0Ljc4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzhjLTIuMzU4IDQuMDgtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjYwLjI2NyA3Mi4zMTFjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzg4Yy0yLjM1OCA0LjA4MS0uOTYgOS4zIDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI3My4wNjdjNC43MTMgMCA4LjUzMy0zLjgyIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMjIxLjg2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMTcwLjY2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNTEuMDEgMjY4LjhjMi4zNzIgNC4wNDcgNy41NjYgNS40MiAxMS42MjggMy4wNzQgNC4wNjItMi4zNDUgNS40Ny03LjUzIDMuMTUxLTExLjYwOGwtOC41MzMtMTQuNzhjLTEuNTE0LTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyNS40MSAyMjQuNDI3YzEuNTE0IDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxNC0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTkuODEgMTgwLjEyMmMyLjM3MiA0LjA0NyA3LjU2NiA1LjQyIDExLjYyOCAzLjA3NCA0LjA2Mi0yLjM0NSA1LjQ3LTcuNTMgMy4xNTEtMTEuNjA4bC04LjUzMy0xNC43ODhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNS4zMzMgMjcxLjkyM2M0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4LTQuMDYyLTIuMzQ1LTkuMjU2LS45NzItMTEuNjI4IDMuMDc0bC04LjUzMyAxNC43OGMtMi4zNTcgNC4wODItLjk1OSA5LjMwMSAzLjEyMiAxMS42NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMC45MzMgMjI3LjU4NGM0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4cy05LjI1Ni0uOTcyLTExLjYyOCAzLjA3NGwtOC41MzMgMTQuNzhjLTIuMzU3IDQuMDgyLS45NTkgOS4zMDEgMy4xMjIgMTEuNjU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NTYuNTMzIDE4My4yNDVjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzIuMzE4LTQuMDc4LjkxMS05LjI2Mi0zLjE1MS0xMS42MDgtNC4wNjItMi4zNDUtOS4yNTYtLjk3Mi0xMS42MjggMy4wNzRsLTguNTMzIDE0Ljc4OGMtMi4zNTcgNC4wODItLjk1OSA5LjMgMy4xMjIgMTEuNjU3eiIvPgogICAgPC9nPgo8L3N2Zz4=",tae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDIgNTEyLjAwMiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM5OC41ODkgMjQ2LjM0MmMtNjQuNjY2LTE3LjMyOC0xMTUuNjAxLTY4LjI2NC0xMzIuOTI5LTEzMi45MjktMS4xNzEtNC4zNzItNS4xMzMtNy40MTItOS42NTktNy40MTJzLTguNDg4IDMuMDQtOS42NTkgNy40MTJjLTE3LjMyOCA2NC42NjYtNjguMjYzIDExNS42MDEtMTMyLjkyOSAxMzIuOTI5LTQuMzcyIDEuMTcxLTcuNDEyIDUuMTMzLTcuNDEyIDkuNjU5czMuMDQgOC40ODggNy40MTIgOS42NTljNjQuNjY2IDE3LjMyOSAxMTUuNjAxIDY4LjI2NCAxMzIuOTI5IDEzMi45MjkgMS4xNzEgNC4zNzIgNS4xMzMgNy40MTIgOS42NTkgNy40MTJzOC40ODgtMy4wNCA5LjY1OS03LjQxMmMxNy4zMjgtNjQuNjY1IDY4LjI2NC0xMTUuNjAxIDEzMi45MjktMTMyLjkyOSA0LjM3Mi0xLjE3MSA3LjQxMi01LjEzMyA3LjQxMi05LjY1OXMtMy4wNC04LjQ4OC03LjQxMi05LjY1OXptLTE0Mi41ODggMTE5LjE3NmMtMjEuMDM5LTQ5LjA5Ni02MC40Mi04OC40NzgtMTA5LjUxNi0xMDkuNTE3IDQ5LjA5Ni0yMS4wMzkgODguNDc4LTYwLjQyIDEwOS41MTYtMTA5LjUxNyAyMS4wMzkgNDkuMDk3IDYwLjQyIDg4LjQ3OCAxMDkuNTE3IDEwOS41MTctNDkuMDk3IDIxLjAzOS04OC40NzggNjAuNDItMTA5LjUxNyAxMDkuNTE3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuMDM2IDIwMC40NThjLTEuODg2LTIuNTQ1LTQuODY3LTQuMDQ3LTguMDM1LTQuMDQ3cy02LjE0OSAxLjUwMS04LjAzNSA0LjA0N2MtMTMuNDE2IDE4LjEwNy0yOS40IDM0LjA5MS00Ny41MDggNDcuNTA4LTIuNTQ1IDEuODg2LTQuMDQ3IDQuODY3LTQuMDQ3IDguMDM1czEuNTAxIDYuMTQ5IDQuMDQ3IDguMDM1YzE4LjEwOCAxMy40MTYgMzQuMDkyIDI5LjQgNDcuNTA4IDQ3LjUwOCAxLjg4NiAyLjU0NSA0Ljg2NyA0LjA0NyA4LjAzNSA0LjA0N3M2LjE0OS0xLjUwMSA4LjAzNS00LjA0N2MxMy40MTYtMTguMTA4IDI5LjQtMzQuMDkyIDQ3LjUwOC00Ny41MDggMi41NDUtMS44ODYgNC4wNDctNC44NjcgNC4wNDctOC4wMzVzLTEuNTAxLTYuMTQ5LTQuMDQ3LTguMDM1Yy0xOC4xMDgtMTMuNDE3LTM0LjA5Mi0yOS40MDEtNDcuNTA4LTQ3LjUwOHptLTguMDM1IDg4LjkwOWMtMTAuMDQtMTIuMTYyLTIxLjIwNC0yMy4zMjYtMzMuMzY2LTMzLjM2NiAxMi4xNjMtMTAuMDQgMjMuMzI2LTIxLjIwNCAzMy4zNjYtMzMuMzY2IDEwLjA0IDEyLjE2MyAyMS4yMDQgMjMuMzI2IDMzLjM2NiAzMy4zNjYtMTIuMTYyIDEwLjA0LTIzLjMyNiAyMS4yMDQtMzMuMzY2IDMzLjM2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2LjAwMSA3NS45OTljNS41MjMgMCAxMC00LjQ3NyAxMC0xMHYtNTUuOTk5YzAtNS41MjMtNC40NzctMTAtMTAtMTBzLTEwIDQuNDc3LTEwIDEwdjU1Ljk5OWMwIDUuNTIzIDQuNDc3IDEwIDEwIDEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTQuNTc5IDEyOC43MjFjMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWMzLjkwNS0zLjkwNSAzLjkwNS0xMC4yMzcgMC0xNC4xNDNsLTM5LjU5Ny0zOS41OThjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDMgMHMtMy45MDUgMTAuMjM3IDAgMTQuMTQzeiIvPgogICAgICAgIDxwYXRoIGQ9Im03NiAyNTYuMDAxYzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTU2Yy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwczQuNDc3IDEwIDEwIDEwaDU2YzUuNTIyIDAgMTAtNC40NzcgMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNC41NzkgMzgzLjI4MS0zOS41OTggMzkuNTk4Yy0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDMgMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWwzOS41OTgtMzkuNTk4YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3MtMTAuMjM3LTMuOTA2LTE0LjE0MiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMDAxIDQzNi4wMDNjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2NTUuOTk5YzAgNS41MjMgNC40NzcgMTAgMTAgMTBzMTAtNC40NzcgMTAtMTB2LTU1Ljk5OWMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTcuNDI0IDM4My4yODFjLTMuOTA1LTMuOTA0LTEwLjIzNi0zLjkwNC0xNC4xNDMgMC0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDNsMzkuNTk3IDM5LjU5OGMxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MSAyLjkyOXM1LjExOS0uOTc3IDcuMDcxLTIuOTI5YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3oiLz4KICAgICAgICA8cGF0aCBkPSJtNTAyLjAwMiAyNDYuMDAxaC01NS45OTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoNTUuOTk5YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTAuMzUzIDEzMS42NDljMi41NTkgMCA1LjExOS0uOTc2IDcuMDcxLTIuOTI5bDM5LjU5Ny0zOS41OThjMy45MDUtMy45MDUgMy45MDUtMTAuMjM3IDAtMTQuMTQzcy0xMC4yMzctMy45MDUtMTQuMTQzIDBsLTM5LjU5NyAzOS41OThjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MiAyLjkyOXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYxLjg2OCAzOC43MzVjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMSA1LjA3Ny0yLjE3NSA3LjQyOC04LjA1NCA1LjI1Mi0xMy4xM2wtLjAwMy0uMDA3Yy0yLjE3NS01LjA3Ni04LjA1MS03LjQyMy0xMy4xMjktNS4yNDktNS4wNzYgMi4xNzUtNy40MjYgOC4wNTgtNS4yNSAxMy4xMzQgMS42MjUgMy43OTIgNS4zMTYgNi4wNjMgOS4xOTYgNi4wNjN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2OS44NDQgNzQuMTMxIDEzLjA1NCAzMS41MTRjMS41OTUgMy44NTEgNS4zMTggNi4xNzUgOS4yNDMgNi4xNzUgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjQgNS4xMDItMi4xMTQgNy41MjUtNy45NjMgNS40MTItMTMuMDY2bC0xMy4wNTQtMzEuNTE0Yy0yLjExNC01LjEwMy03Ljk2My03LjUyNy0xMy4wNjYtNS40MTJzLTcuNTI2IDcuOTY0LTUuNDEyIDEzLjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQuNTQyIDE3MC45NDNjMS4zNTcuNjI2IDIuNzgyLjkyMyA0LjE4NC45MjMgMy43OCAwIDcuMzk4LTIuMTU0IDkuMDg2LTUuODEyIDIuMzE0LTUuMDE0LjEyNS0xMC45NTYtNC44ODktMTMuMjdsLS4wMDYtLjAwM2MtNS4wMTMtMi4zMTUtMTAuOTUyLS4xMjUtMTMuMjY3IDQuODkxLTIuMzE2IDUuMDE0LS4xMjMgMTAuOTU2IDQuODkyIDEzLjI3MXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjYuNDc3IDE4OC4zMjEgMzEuNTE1IDEzLjA1NGMxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2IDIuMTE0LTUuMTAzLS4zMS0xMC45NTItNS40MTItMTMuMDY1bC0zMS41MTYtMTMuMDU0Yy01LjEwMS0yLjExMy0xMC45NTIuMzEtMTMuMDY1IDUuNDEyLTIuMTE0IDUuMTAyLjMxIDEwLjk1MiA1LjQxMiAxMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwNS42NDUgMzI5LjEwNGM1LjEwMy0yLjExMyA3LjUyNi03Ljk2MyA1LjQxMi0xMy4wNjUtMi4xMTMtNS4xMDMtNy45NjQtNy41MjctMTMuMDY1LTUuNDEybC0zMS41MTQgMTMuMDU0Yy01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjUgMS41OTUgMy44NTIgNS4zMTggNi4xNzYgOS4yNDMgNi4xNzYgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI0Ljc5MyAzNDAuOTQ3LS4wMDcuMDAzYy01LjA3NiAyLjE3NS03LjQyNCA4LjA1My01LjI0OSAxMy4xMjkgMS42MjUgMy43OTIgNS4zMTcgNi4wNjIgOS4xOTggNi4wNjIgMS4zMTUgMCAyLjY1Mi0uMjYxIDMuOTM2LS44MTIgNS4wNzctMi4xNzUgNy40MjgtOC4wNTQgNS4yNTItMTMuMTMxLTIuMTc0LTUuMDc1LTguMDUzLTcuNDI2LTEzLjEzLTUuMjUxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjYuMDU0IDQ3NC4xOWMtNS4wMTUtMi4zMTUtMTAuOTU2LS4xMjUtMTMuMjcgNC44ODlsLS4wMDMuMDA2Yy0yLjMxNCA1LjAxNC0uMTI0IDEwLjk1MyA0Ljg5MSAxMy4yNjcgMS4zNTYuNjI2IDIuNzguOTIyIDQuMTgyLjkyMiAzLjc4MSAwIDcuNDAxLTIuMTU2IDkuMDg5LTUuODE0IDIuMzE0LTUuMDE0LjEyNS0xMC45NTUtNC44ODktMTMuMjd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NS45NjMgNDAwLjk0NWMtNS4xMDEtMi4xMTQtMTAuOTUyLjMxLTEzLjA2NSA1LjQxMmwtMTMuMDU0IDMxLjUxNWMtMi4xMTQgNS4xMDMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NSAxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2bDEzLjA1NC0zMS41MTVjMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDYuMTk5IDQ3NC4wNzhjLTUuMDc2IDIuMTc1LTcuNDI4IDguMDU0LTUuMjUyIDEzLjEzbC4wMDMuMDA3YzEuNjI1IDMuNzkxIDUuMzE0IDYuMDYgOS4xOTIgNi4wNiAxLjMxNSAwIDIuNjUxLS4yNjEgMy45MzctLjgxMiA1LjA3Ni0yLjE3NSA3LjQyNi04LjA1OCA1LjI1LTEzLjEzNC0yLjE3NC01LjA3Ni04LjA1MS03LjQyNi0xMy4xMy01LjI1MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjE1OCA0MzcuODcxLTEzLjA1NC0zMS41MTRjLTIuMTE0LTUuMTAzLTcuOTY1LTcuNTI3LTEzLjA2NS01LjQxMi01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjVsMTMuMDU0IDMxLjUxNGMxLjU5NSAzLjg1MiA1LjMxOCA2LjE3NiA5LjI0MyA2LjE3NiAxLjI3NSAwIDIuNTcyLS4yNDUgMy44MjMtLjc2NCA1LjEwMi0yLjExMiA3LjUyNS03Ljk2MiA1LjQxMS0xMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4Ny4yMDggMzQwLjk0N2MtNS4wNzYtMi4xNzctMTAuOTU1LjE3Ny0xMy4xMyA1LjI1Mi0yLjE3NiA1LjA3Ny4xNzYgMTAuOTU2IDUuMjUyIDEzLjEzMWwuMDA2LjAwM2MxLjI4NS41NSAyLjYxOS44MTEgMy45MzMuODExIDMuODc5IDAgNy41NjktMi4yNzIgOS4xOTQtNi4wNjQgMi4xNzctNS4wNzctLjE3OC0xMC45NTctNS4yNTUtMTMuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NDUuNTI1IDMyMy42ODEtMzEuNTE0LTEzLjA1NGMtNS4xMDItMi4xMTMtMTAuOTUxLjMxLTEzLjA2NSA1LjQxMnMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NWwzMS41MTQgMTMuMDU0YzEuMjUyLjUxOSAyLjU0OC43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzYgMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00ODMuMjc0IDE3MS44NjZjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMWwuMDA3LS4wMDNjNS4wNzYtMi4xNzUgNy40MjQtOC4wNTMgNS4yNDktMTMuMTI5cy04LjA2LTcuNDI3LTEzLjEzNC01LjI1Yy01LjA3NyAyLjE3NS03LjQyOCA4LjA1NC01LjI1MiAxMy4xMzEgMS42MjUgMy43OTEgNS4zMTYgNi4wNjIgOS4xOTYgNi4wNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNi4zNTcgMTgyLjg5N2MtNS4xMDMgMi4xMTMtNy41MjYgNy45NjMtNS40MTIgMTMuMDY1IDEuNTk1IDMuODUyIDUuMzE4IDYuMTc2IDkuMjQzIDYuMTc2IDEuMjc1IDAgMi41NzItLjI0NSAzLjgyMy0uNzY0bDMxLjUxNC0xMy4wNTRjNS4xMDMtMi4xMTMgNy41MjYtNy45NjMgNS40MTItMTMuMDY1LTIuMTE0LTUuMTAzLTcuOTYzLTcuNTI3LTEzLjA2Ni01LjQxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ2LjE5OSAzNy45MjNjMS4yODUuNTUxIDIuNjIxLjgxMSAzLjkzNS44MTEgMy44OCAwIDcuNTcxLTIuMjcxIDkuMTk2LTYuMDYzbC4wMDMtLjAwN2MyLjE3Ni01LjA3Ni0uMTc3LTEwLjk1Mi01LjI1My0xMy4xMjctNS4wNzQtMi4xNzYtMTAuOTU3LjE3OS0xMy4xMzIgNS4yNTYtMi4xNzcgNS4wNzYuMTc1IDEwLjk1NSA1LjI1MSAxMy4xM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMzE2LjAzOSAxMTEuMDU3YzEuMjUxLjUxOSAyLjU0Ny43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzZsMTMuMDU0LTMxLjUxNGMyLjExNC01LjEwMy0uMzEtMTAuOTUzLTUuNDEyLTEzLjA2Ni01LjEwMS0yLjExNC0xMC45NTEuMzEtMTMuMDY1IDUuNDEybC0xMy4wNTQgMzEuNTE0Yy0yLjExNSA1LjEwMi4zMDkgMTAuOTUyIDUuNDExIDEzLjA2NnoiLz4KICAgIDwvZz4KPC9zdmc+",sae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAuMDAzLDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04cy04LDMuNTgyLTgsOHYzMkMyMzIuMDAzLDQ0LjQxOCwyMzUuNTg0LDQ4LDI0MC4wMDMsNDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0MS4wNzUsMzYuNjU2bDE2LDI3LjcwNGMyLjE4NCwzLjg0MSw3LjA2OCw1LjE4NCwxMC45MDksM3M1LjE4NC03LjA2OCwzLTEwLjkwOWMtMC4wMTctMC4wMzEtMC4wMzUtMC4wNjEtMC4wNTMtMC4wOTIKCQkJCWwtMTYtMjcuNzA0Yy0yLjE4NC0zLjg0MS03LjA2OC01LjE4NC0xMC45MDktM2MtMy44NDEsMi4xODQtNS4xODQsNy4wNjgtMywxMC45MDlDMTQxLjAzOSwzNi41OTUsMTQxLjA1NywzNi42MjYsMTQxLjA3NSwzNi42NTYKCQkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuNTY3LDEwNi44NzVjMC4wMywwLjAxOCwwLjA2MSwwLjAzNSwwLjA5MiwwLjA1M2wyNy43MDQsMTZjMy44MTIsMi4yMzQsOC43MTMsMC45NTYsMTAuOTQ3LTIuODU2CgkJCQljMi4yMzQtMy44MTIsMC45NTYtOC43MTMtMi44NTYtMTAuOTQ3Yy0wLjAzLTAuMDE4LTAuMDYxLTAuMDM1LTAuMDkyLTAuMDUzbC0yNy43MDQtMTZjLTMuODEyLTIuMjM0LTguNzEzLTAuOTU2LTEwLjk0NywyLjg1NgoJCQkJQzcxLjQ3Nyw5OS43MzksNzIuNzU1LDEwNC42NDEsNzYuNTY3LDEwNi44NzV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTk2LjAwMywxOTJjMC00LjQxOC0zLjU4Mi04LTgtOGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJDOTIuNDIxLDIwMCw5Ni4wMDMsMTk2LjQxOCw5Ni4wMDMsMTkyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuNDU2LDI2MS4wMThjLTAuMDMxLDAuMDE4LTAuMDYyLDAuMDM2LTAuMDkzLDAuMDU0bC0yNy43MDQsMTZjLTMuODQxLDIuMTgzLTUuMTg1LDcuMDY3LTMuMDAyLDEwLjkwOAoJCQkJYzIuMTgzLDMuODQxLDcuMDY3LDUuMTg1LDEwLjkwOCwzLjAwMmMwLjAzMS0wLjAxOCwwLjA2Mi0wLjAzNiwwLjA5My0wLjA1NGwyNy43MDQtMTZjMy44NDEtMi4xODMsNS4xODUtNy4wNjcsMy4wMDItMTAuOTA4CgkJCQlDMTEzLjE4MSwyNjAuMTc5LDEwOC4yOTcsMjU4LjgzNSwxMDQuNDU2LDI2MS4wMTh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQwMy40NCwyNzcuMTI2Yy0wLjAzMS0wLjAxOC0wLjA2Mi0wLjAzNi0wLjA5My0wLjA1NGwtMjcuNzA0LTE2Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMi4yMzUsMy44MTEtMC45NTcsOC43MTMsMi44NTQsMTAuOTQ4YzAuMDMxLDAuMDE4LDAuMDYyLDAuMDM2LDAuMDkzLDAuMDU0bDI3LjcwNCwxNmMzLjgxMSwyLjIzNSw4LjcxMywwLjk1NywxMC45NDgtMi44NTQKCQkJCUM0MDguNTI5LDI4NC4yNjIsNDA3LjI1MSwyNzkuMzYxLDQwMy40NCwyNzcuMTI2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjQuMDAzLDE4NGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJjNC40MTgsMCw4LTMuNTgyLDgtOFM0MjguNDIxLDE4NCw0MjQuMDAzLDE4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzcxLjY1MSwxMjRjMS40MDQsMCwyLjc4NC0wLjM3LDQtMS4wNzJsMjcuNzA0LTE2YzMuODQxLTIuMTg0LDUuMTg0LTcuMDY4LDMtMTAuOTA5cy03LjA2OC01LjE4NC0xMC45MDktMwoJCQkJYy0wLjAzMSwwLjAxNy0wLjA2MSwwLjAzNS0wLjA5MiwwLjA1M2wtMjcuNzA0LDE2Yy0zLjgyNiwyLjIwOS01LjEzNyw3LjEwMi0yLjkyOCwxMC45MjgKCQkJCUMzNjYuMTUyLDEyMi40NzUsMzY4Ljc5MywxMjQsMzcxLjY1MSwxMjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMxMS45OTMsNjcuMjkxYzAuMDAzLDAuMDAyLDAuMDA2LDAuMDA0LDAuMDA5LDAuMDA1YzMuODI3LDIuMjA3LDguNzIsMC44OTQsMTAuOTI3LTIuOTM0CgkJCQljMC0wLjAwMSwwLjAwMS0wLjAwMiwwLjAwMS0wLjAwMmwxNi0yNy43MDRjMi4yMzUtMy44MTEsMC45NTctOC43MTMtMi44NTQtMTAuOTQ4Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMC4wMTgsMC4wMzEtMC4wMzYsMC4wNjItMC4wNTQsMC4wOTNsLTE2LDI3LjcwNEMzMDYuODYyLDYwLjE4NCwzMDguMTY5LDY1LjA3OCwzMTEuOTkzLDY3LjI5MXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LjAwMywzMjBjNC40MTgsMCw4LTMuNTgyLDgtOHYtODhoMTZjMTcuNjczLDAsMzItMTQuMzI3LDMyLTMycy0xNC4zMjctMzItMzItMzJjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMnYxNmgtMTYKCQkJCXYtMTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiwxNC4zMjctMzIsMzJzMTQuMzI3LDMyLDMyLDMyaDE2djg4YzAsNC40MTgsMy41ODIsOCw4LDhzOC0zLjU4Miw4LTh2LTg4aDE2djg4CgkJCQlDMjQ4LjAwMywzMTYuNDE4LDI1MS41ODQsMzIwLDI1Ni4wMDMsMzIweiBNMjY0LjAwMywxOTJjMC04LjgzNyw3LjE2My0xNiwxNi0xNnMxNiw3LjE2MywxNiwxNnMtNy4xNjMsMTYtMTYsMTZoLTE2VjE5MnoKCQkJCSBNMjE2LjAwMywyMDhoLTE2Yy04LjgzNywwLTE2LTcuMTYzLTE2LTE2czcuMTYzLTE2LDE2LTE2czE2LDcuMTYzLDE2LDE2VjIwOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQ2LjIxOSw2NC4xNTJjLTcwLjYxMS0zLjM5Mi0xMzAuNjAzLDUxLjA5OS0xMzMuOTk1LDEyMS43MWMtMS45NDMsNDAuNDMyLDE1LjM1NCw3OS40LDQ2LjY0MywxMDUuMDgyCgkJCQljNS42MzksNC40MTcsOC45OTQsMTEuMTM1LDkuMTM2LDE4LjI5NlYzMjhjMC4wNDIsMTAuMTM0LDYuNDQ1LDE5LjE1LDE2LDIyLjUyOFYzNjBjMC4wMjEsNS45MjMsMi4yNDUsMTEuNjI3LDYuMjQsMTYKCQkJCWMtOC4zMiw5LjA0NC04LjMyLDIyLjk1NiwwLDMyYy04Ljg5NCw5Ljc1LTguMiwyNC44NjQsMS41NSwzMy43NThjNC40MjksNC4wNCwxMC4yMTUsNi4yNjgsMTYuMjEsNi4yNDIKCQkJCWM0LjMwNiwwLjExMyw3Ljg4OS0zLjI4Nyw4LjAwMS03LjU5M2MwLjA0NC0xLjY4LTAuNDU2LTMuMzMtMS40MjUtNC43MDNjLTAuMjUzLTAuNDg5LTAuNTUzLTAuOTUzLTAuODk2LTEuMzg0CgkJCQljLTAuNjU4LTAuNjAyLTEuNDA5LTEuMDk0LTIuMjI0LTEuNDU2Yy0wLjIzMi0wLjEyLTAuNDY0LTAuMjE2LTAuNzA0LTAuMzEyYy0wLjgxLTAuMjk1LTEuNjU5LTAuNDY1LTIuNTItMC41MDQKCQkJCWMtMC4wOCwwLTAuMTUyLTAuMDQ4LTAuMjMyLTAuMDQ4Yy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMgoJCQkJYy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMmMtNC40MTgsMC04LTMuNTgyLTgtOHYtOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04CgkJCQlzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LTMuNTgyLTgtOHYtMTguNzZjLTAuMTMxLTExLjk2Mi01LjY0LTIzLjIzLTE1LTMwLjY4Yy00Ny43ODgtMzkuMjc0LTU0LjY4OS0xMDkuODUyLTE1LjQxNS0xNTcuNjQKCQkJCWMyMi40NjYtMjcuMzM2LDU2LjUyOC00Mi40NDgsOTEuODcxLTQwLjc2YzU5LjEwNywzLjUxNiwxMDUuNTM2LDUxLjk1NywxMDYuNTQ0LDExMS4xNmMwLjI4NywzNC4wNTItMTUuMDI0LDY2LjM2My00MS41Niw4Ny43MDQKCQkJCWMtOS4yOSw3LjY1Mi0xNC42MDIsMTkuMTA5LTE0LjQ0LDMxLjE0NFYzMjhjMCw0LjQxOC0zLjU4Miw4LTgsOGgtMjRjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMTZ2OAoJCQkJYzAsNC40MTgtMy41ODIsOC04LDhoLThjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoOGM0LjQxOCwwLDgsMy41ODIsOCw4cy0zLjU4Miw4LTgsOGgtOGMtNC40MTgsMC04LDMuNTgyLTgsOAoJCQkJczMuNTgyLDgsOCw4aDhjNC40MTgsMCw4LDMuNTgyLDgsOHMtMy41ODIsOC04LDhoLTQwYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMwLjYzMgoJCQkJYy00LjQxNywxMi40OTctMTguMTI5LDE5LjA0Ny0zMC42MjYsMTQuNjNjLTMuODI2LTEuMzUyLTcuMjQ2LTMuNjUzLTkuOTQyLTYuNjg2Yy0yLjkzOC0zLjMtNy45OTYtMy41OTQtMTEuMjk2LTAuNjU2CgkJCQljLTMuMywyLjkzOC0zLjU5NCw3Ljk5Ni0wLjY1NiwxMS4yOTZjMTQuNjMxLDE2LjQ4NywzOS44NTcsMTcuOTkyLDU2LjM0NCwzLjM2MmM2LjgxLTYuMDQzLDExLjM0OS0xNC4yMzIsMTIuODY0LTIzLjIxCgkJCQljMTIuNTI5LTMuOTE2LDE5LjUxMS0xNy4yNDcsMTUuNTk2LTI5Ljc3NmMtMS4wNC0zLjMyOS0yLjgwMS02LjM4OC01LjE1Ni04Ljk2YzguMzItOS4wNDQsOC4zMi0yMi45NTYsMC0zMgoJCQkJYzMuOTk1LTQuMzczLDYuMjE5LTEwLjA3Nyw2LjI0LTE2di05LjQ3MmM5LjU1NS0zLjM3OCwxNS45NTgtMTIuMzk0LDE2LTIyLjUyOHYtMTcuODMyYy0wLjEwNy03LjE4NywzLjAwNy0xNC4wNDYsOC40ODgtMTguNjk2CgkJCQljMzAuMzQ0LTI0LjM5NSw0Ny44NS02MS4zMzksNDcuNTEyLTEwMC4yNzJDMzY2Ljg0NywxMjMuNTMyLDMxMy43NzcsNjguMTY5LDI0Ni4yMTksNjQuMTUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",iae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjU1Ljk5OSwwYy03OS4wNDQsMC0xNDMuMzUyLDY0LjMwOC0xNDMuMzUyLDE0My4zNTN2NzAuMTkzYzAsNC43OCwzLjg3OSw4LjY1Niw4LjY1OSw4LjY1Nmg0OC4wNTcKCQkJYzQuNzgsMCw4LjY1Ni0zLjg3Niw4LjY1Ni04LjY1NnYtNzAuMTkzYzAtNDIuOTk4LDM0Ljk4MS03Ny45OCw3Ny45NzktNzcuOThzNzcuOTc5LDM0Ljk4Miw3Ny45NzksNzcuOTh2NzAuMTkzCgkJCWMwLDQuNzgsMy44OCw4LjY1Niw4LjY2MSw4LjY1Nmg0OC4wNTdjNC43OCwwLDguNjU2LTMuODc2LDguNjU2LTguNjU2di03MC4xOTNDMzk5LjM1Miw2NC4zMDgsMzM1LjA0NCwwLDI1NS45OTksMHoKCQkJIE0zODIuMDQsMjA0Ljg5aC0zMC43NDh2LTYxLjUzN2MwLTUyLjU0NC00Mi43NDgtOTUuMjkyLTk1LjI5MS05NS4yOTJzLTk1LjI5MSw0Mi43NDgtOTUuMjkxLDk1LjI5MnY2MS41MzdoLTMwLjc0OHYtNjEuNTM3CgkJCWMwLTY5LjQ5OSw1Ni41NC0xMjYuMDQsMTI2LjAzOC0xMjYuMDRjNjkuNDk5LDAsMTI2LjA0LDU2LjU0MSwxMjYuMDQsMTI2LjA0VjIwNC44OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDEwLjYzLDIwNC44OUgxMDEuMzcxYy0yMC41MDUsMC0zNy4xODgsMTYuNjgzLTM3LjE4OCwzNy4xODh2MjMyLjczNGMwLDIwLjUwNSwxNi42ODMsMzcuMTg4LDM3LjE4OCwzNy4xODhINDEwLjYzCgkJCWMyMC41MDUsMCwzNy4xODctMTYuNjgzLDM3LjE4Ny0zNy4xODlWMjQyLjA3OEM0NDcuODE3LDIyMS41NzMsNDMxLjEzNSwyMDQuODksNDEwLjYzLDIwNC44OXogTTQzMC41MDUsNDc0LjgxMQoJCQljMCwxMC45Ni04LjkxNiwxOS44NzYtMTkuODc1LDE5Ljg3NkgxMDEuMzcxYy0xMC45NiwwLTE5Ljg3Ni04LjkxNi0xOS44NzYtMTkuODc2VjI0Mi4wNzhjMC0xMC45Niw4LjkxNi0xOS44NzYsMTkuODc2LTE5Ljg3NgoJCQlINDEwLjYzYzEwLjk1OSwwLDE5Ljg3NSw4LjkxNiwxOS44NzUsMTkuODc2VjQ3NC44MTF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI4NS4xMSwzNjkuNzgxYzEwLjExMy04LjUyMSwxNS45OTgtMjAuOTc4LDE1Ljk5OC0zNC4zNjVjMC0yNC44NzMtMjAuMjM2LTQ1LjEwOS00NS4xMDktNDUuMTA5CgkJCWMtMjQuODc0LDAtNDUuMTEsMjAuMjM2LTQ1LjExLDQ1LjEwOWMwLDEzLjM4Nyw1Ljg4NSwyNS44NDQsMTYsMzQuMzY3bC05LjczMSw0Ni4zNjJjLTAuNTM1LDIuNTU0LDAuMTA4LDUuMjExLDEuNzUyLDcuMjM2CgkJCWMxLjY0NSwyLjAyMyw0LjExMywzLjIsNi43MiwzLjJoNjAuNzM4YzIuNjA4LDAsNS4wNzYtMS4xNzYsNi43MTktMy4yYzEuNjQzLTIuMDI2LDIuMjg2LTQuNjgzLDEuNzUxLTcuMjM0TDI4NS4xMSwzNjkuNzgxegoJCQkgTTI3MC44NTEsMzU4LjgyYy0zLjA0LDEuOTM2LTQuNTY1LDUuNTUzLTMuODI0LDkuMDgxbDguNjgsNDEuMzY2aC0zOS40MTVsOC42ODItNDEuMzYzYzAuNzQtMy41MjktMC43ODItNy4xNDYtMy44MjQtOS4wODEKCQkJYy04LjEwOC01LjE2LTEyLjk0OC0xMy45MTEtMTIuOTQ4LTIzLjQwNmMwLTE1LjMyNywxMi40NjktMjcuNzk2LDI3Ljc5Ny0yNy43OTZjMTUuMzI3LDAsMjcuNzk2LDEyLjQ2OSwyNy43OTYsMjcuNzk2CgkJCUMyODMuNzk3LDM0NC45MTQsMjc4Ljk1NywzNTMuNjYzLDI3MC44NTEsMzU4LjgyeiIvPgogICAgPC9nPgo8L3N2Zz4K",oae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk0LjkzMzU5NCAwaC00NzcuODY3MTg4Yy05LjQyMTg3NS4wMDc4MTI1LTE3LjA1ODU5MzUgNy42NDQ1MzEtMTcuMDY2NDA2IDE3LjA2NjQwNnY1OS43MzQzNzVjLjAwNzgxMjUgOS40MjE4NzUgNy42NDQ1MzEgMTcuMDU0Njg4IDE3LjA2NjQwNiAxNy4wNjY0MDdoMTAuODk0NTMybC0yNi44MzU5MzggNDYuOTY0ODQzYy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE5NTMxIDEuNTI3MzQ0IDIuNjI4OTA3IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45NjQ4NDRjLTEuNTA3ODEyIDIuNjQwNjI1LTEuNSA1Ljg4NjcxOS4wMjczNDQgOC41MTU2MjUgMS41MjczNDQgMi42MzI4MTMgNC4zMzk4NDQgNC4yNSA3LjM4MjgxMiA0LjI1aDE5LjQyNTc4MmwtMjYuODM1OTM4IDQ2Ljk2ODc1Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODI4MTMuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjI4OTA2IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNyA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEyIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNTM5MDZoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEzIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNiA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoNDk0LjkyOTY4OGMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDk0IDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MTcxODcgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYyODkwNiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45NjQ4NDRoMTkuNDI1NzgyYzMuMDQyOTY4LS4wMDM5MDYgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNTM5MDYgMS41MjczNDQtMi42Mjg5MDYgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY0ODQ0aDE5LjQyNTc4MmMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDkzIDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYzMjgxMiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45Njg3NWgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYxNzE4NyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjI4OTA2IDEuNTM1MTU2LTUuODc1LjAyNzM0NC04LjUxNTYyNWwtMjYuODM1OTM4LTQ2Ljk2NDg0NGgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYyMTA5MyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjMyODEyIDEuNTM1MTU2LTUuODc4OTA2LjAyNzM0NC04LjUxOTUzMWwtMjYuODM1OTM4LTQ2Ljk2NDg0M2gxMC44OTQ1MzJjOS40MjE4NzUtLjAxMTcxOSAxNy4wNTQ2ODctNy42NDQ1MzIgMTcuMDY2NDA2LTE3LjA2NjQwN3YtNTkuNzM0Mzc1Yy0uMDExNzE5LTkuNDIxODc1LTcuNjQ0NTMxLTE3LjA1NDY4NzItMTcuMDY2NDA2LTE3LjA2NjQwNnptLTQ0Ny4zMTY0MDYgOTMuODY3MTg4aDQ2LjI1djQyLjY2Nzk2OGgtNzAuNjI4OTA3em0zMTkuMzE2NDA2IDB2NDIuNjY3OTY4aC0yMjEuODY3MTg4di00Mi42Njc5Njh6bTY4LjI2NTYyNSAwdjQyLjY2Nzk2OGgtMTcuMDY2NDA3di00Mi42Njc5Njh6bS0yOTAuMTMyODEzIDM0MS4zMzIwMzF2LTQyLjY2NDA2M2gyMjEuODY3MTg4djQyLjY2NDA2M3ptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY3OTY5aC0yMjEuODY3MTg4di00Mi42Njc5Njl6bTAtMjU2aC0yMjEuODY3MTg4di00Mi42NjQwNjNoMjIxLjg2NzE4OHptMTcuMDY2NDA2LTQyLjY2NDA2M2gxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bS0yMzguOTMzNTk0IDE2Mi4xMzI4MTN2LTQyLjY2Nzk2OWgyMjEuODY3MTg4djQyLjY2Nzk2OXptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY0MDYzaC0yMjEuODY3MTg4di00Mi42NjQwNjN6bS0yMjEuODY3MTg4LTc2LjgwMDc4MXYtNDIuNjY3OTY5aDIyMS44NjcxODh2NDIuNjY3OTY5em0tMTcuMDY2NDA2LTU5LjczNDM3NWgtMTcuMDY2NDA2di00Mi42NjQwNjNoMTcuMDY2NDA2em0wIDE3LjA2NjQwNnY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0yNTYgMGgxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bTAtMTcuMDcwMzEydi00Mi42NjQwNjNoMTcuMDY2NDA2djQyLjY2NDA2M3ptMC01OS43MzA0Njl2LTQyLjY2Nzk2OWgxNy4wNjY0MDZ2NDIuNjY3OTY5em0wLTU5LjczNDM3NXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTM0LjEzMjgxMi00Mi42Njc5NjloMTcuMDY2NDA3djQyLjY2Nzk2OWgtMTcuMDY2NDA3em0wLTE3LjA2NjQwNnYtNDIuNjY0MDYzaDE3LjA2NjQwN3Y0Mi42NjQwNjN6bS0xNy4wNjY0MDYtNTkuNzMwNDY5aC0xNy4wNjY0MDZ2LTQyLjY2Nzk2OGgxNy4wNjY0MDZ6bS0yNzMuMDY2NDA2IDBoLTE3LjA2NjQwNnYtNDIuNjY3OTY4aDE3LjA2NjQwNnptLTgwLjM4MjgxMiAxNy4wNjY0MDZoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzMwNDY5aDQ2LjI1djQyLjY2Nzk2OWgtNzAuNjI4OTA3em0wIDU5LjczNDM3NWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptMCA1OS43MzQzNzVoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzM0Mzc1aDQ2LjI1djQyLjY2NDA2M2gtNzAuNjI4OTA3em0wIDU5LjczMDQ2OWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptNjMuMzE2NDA2IDQyLjY2Nzk2OXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTI3My4wNjY0MDYgMHYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTEwNC43NTc4MTIgMGgtNzAuNjI1di00Mi42Njc5NjloNDYuMjV6bTAtNTkuNzM0Mzc1aC03MC42MjV2LTQyLjY2NDA2M2g0Ni4yNXptMC01OS43MzQzNzVoLTcwLjYyNXYtNDIuNjY0MDYzaDQ2LjI1em0wLTU5LjczMDQ2OWgtNzAuNjI1di00Mi42Njc5NjloMTcuMDY2NDA3djE3LjA2NjQwNmMwIDQuNzE0ODQ0IDMuODIwMzEyIDguNTM1MTU3IDguNTM1MTU2IDguNTM1MTU3IDQuNzEwOTM3IDAgOC41MzEyNS0zLjgyMDMxMyA4LjUzMTI1LTguNTM1MTU3di0xNy4wNjY0MDZoMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42Njc5NjloMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42NjQwNjNoMTIuMTE3MTg3em0wLTU5LjczMDQ2OWgtMzYuNDkyMTg3di00Mi42Njc5NjhoMTIuMTE3MTg3em0tMTkuNDI1NzgxLTU5LjczNDM3NWgtNDUyLjI2NTYyNXYtNTkuNzM0Mzc1aDQ3Ny44NjcxODhsLjAwNzgxMiA1OS43MzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01OS43MzQzNzUgNDIuNjY3OTY5aC0xNy4wNjY0MDZjLTQuNzE0ODQ0IDAtOC41MzUxNTcgMy44MjAzMTItOC41MzUxNTcgOC41MzEyNSAwIDQuNzE0ODQzIDMuODIwMzEzIDguNTM1MTU2IDguNTM1MTU3IDguNTM1MTU2aDE3LjA2NjQwNmM0LjcxMDkzNyAwIDguNTMxMjUtMy44MjAzMTMgOC41MzEyNS04LjUzNTE1NiAwLTQuNzEwOTM4LTMuODIwMzEzLTguNTMxMjUtOC41MzEyNS04LjUzMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ1LjA2NjQwNiA0Mi42Njc5NjloLTUxLjE5OTIxOGMtNC43MTQ4NDQgMC04LjUzNTE1NyAzLjgyMDMxMi04LjUzNTE1NyA4LjUzMTI1IDAgNC43MTQ4NDMgMy44MjAzMTMgOC41MzUxNTYgOC41MzUxNTcgOC41MzUxNTZoNTEuMTk5MjE4YzQuNzE0ODQ0IDAgOC41MzUxNTYtMy44MjAzMTMgOC41MzUxNTYtOC41MzUxNTYgMC00LjcxMDkzOC0zLjgyMDMxMi04LjUzMTI1LTguNTM1MTU2LTguNTMxMjV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",rae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMjQzLjc4M2MtLjk1MSAwLTEuODY4LjE0MS0yLjczOS4zODlsLS4wMDItLjAwNy0yOC43MjIgOC4xODdjLTUuMzExIDEuNTE0LTguMzkgNy4wNDctNi44NzYgMTIuMzU4IDEuMjUzIDQuMzk2IDUuMjU4IDcuMjYxIDkuNjEyIDcuMjYxLjkwNyAwIDEuODMtLjEyNSAyLjc0Ni0uMzg1bDE1Ljk4MS00LjU1NHYzNS40MmwtMTI0IDM1LjM0NXYtMzUuNDJsMjEuNDY0LTYuMTE4YzUuMzExLTEuNTE0IDguMzktNy4wNDcgNi44NzYtMTIuMzU4cy03LjA0NS04LjM4Ny0xMi4zNTgtNi44NzZsLTI4LjcyMyA4LjE4Ny4wMDEuMDA3Yy00LjE4OSAxLjE5My03LjI2IDUuMDM5LTcuMjYgOS42MXYxMjcuMTk5Yy04LjM2My02LjI5My0xOC43NTItMTAuMDI4LTMwLTEwLjAyOC0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDA2bDEyNC0zNS4zNDV2NTcuNzMzYy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xNjcuMTcyYzAtNS41MjMtNC40NzctMTAtMTAtMTB6bS0xODQgMjQ4LjIxN2MtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xNDQtNDEuMDQ1Yy0xNi41NDIgMC0zMC0xMy40NTgtMzAtMzBzMTMuNDU4LTMwIDMwLTMwIDMwIDEzLjQ1OCAzMCAzMC0xMy40NTggMzAtMzAgMzB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUwOC4wMTMgMi4wMWMtMi41MTEtMS44ODktNS43NjMtMi40ODctOC43ODItMS42MTlsLTEwNC40MDggMzAuMDg5Yy00LjI4MiAxLjIzNC03LjIzMSA1LjE1Mi03LjIzMSA5LjYwOXYxMjcuMTk5Yy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDNsOTcuMTc3LTI4LjAwNWM0LjI4Mi0xLjIzNCA3LjIzMS01LjE1MiA3LjIzMS05LjYwOXYtNTYuMjE3YzAtMy4xNDItMS40NzctNi4xMDEtMy45ODctNy45OXptLTE1MC40MjEgMjM1LjI1MWMtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xMzQuNDA4LTE3OC41NjktODQuNDA4IDI0LjMyNXYtMzUuNDAzbDg0LjQwOC0yNC4zMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MS41OTEgMzQ4Ljc2Mi00OC4yODgtNy4wMTctMjEuNTk1LTQzLjc1NmMtMS42ODUtMy40MTMtNS4xNjEtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0yMS41OTUgNDMuNzU2LTQ4LjI4OCA3LjAxN2MtMy43NjcuNTQ3LTYuODk2IDMuMTg2LTguMDczIDYuODA2cy0uMTk1IDcuNTk0IDIuNTMxIDEwLjI1MWwzNC45NDEgMzQuMDYtOC4yNDkgNDguMDkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNiA3LjE2MiAyLjUzMiAxMC41MzEuNzYxbDQzLjE5LTIyLjcwNyA0My4xOSAyMi43MDZjMS40NjMuNzcgMy4wNjEgMS4xNDkgNC42NTIgMS4xNDkgMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzNyA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtOC4yNDktNDguMDkzIDM0Ljk0MS0zNC4wNmMyLjcyNi0yLjY1NyAzLjcwNy02LjYzMSAyLjUzMS0xMC4yNTFzLTQuMzA0LTYuMjU4LTguMDcxLTYuODA1em0tNDcuMTI0IDQwLjQ2NGMtMi4zNTcgMi4yOTctMy40MzMgNS42MDctMi44NzYgOC44NTFsNS43MTIgMzMuMzA0LTI5LjkwOS0xNS43MjRjLTIuOTEzLTEuNTMyLTYuMzkzLTEuNTMyLTkuMzA3IDBsLTI5LjkwOSAxNS43MjQgNS43MTItMzMuMzA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MWwtMjQuMTk2LTIzLjU4NiAzMy40MzktNC44NTljMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDE0Ljk1NS0zMC4zMDEgMTQuOTU0IDMwLjMwMWMxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDMzLjQzOSA0Ljg1OXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjIgOTAuNzA2LTYuNjIgMzguNTkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNyA3LjE2MyAyLjUzMyAxMC41MzEuNzYxbDM0LjY1OC0xOC4yMjEgMzQuNjU5IDE4LjIyMWMxLjQ2My43NjkgMy4wNjEgMS4xNDggNC42NTIgMS4xNDggMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzOCA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtNi42Mi0zOC41OTMgMjguMDQtMjcuMzMxYzIuNzI2LTIuNjU3IDMuNzA3LTYuNjMxIDIuNTMxLTEwLjI1MXMtNC4zMDYtNi4yNTgtOC4wNzMtNi44MDZsLTM4Ljc1LTUuNjMxLTE3LjMyOC0zNS4xMTJjLTEuNjg0LTMuNDEzLTUuMTYtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0xNy4zMjkgMzUuMTEzLTM4Ljc1IDUuNjMxYy0zLjc2Ny41NDctNi44OTYgMy4xODYtOC4wNzMgNi44MDZzLS4xOTUgNy41OTQgMi41MzEgMTAuMjUxem0yNC4zMy0zMC45ODNjMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDEwLjY4OC0yMS42NTcgMTAuNjg4IDIxLjY1N2MxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDIzLjkgMy40NzMtMTcuMjkyIDE2Ljg1OGMtMi4zNTcgMi4yOTgtMy40MzMgNS42MDgtMi44NzYgOC44NTJsNC4wODMgMjMuODA0LTIxLjM3Ny0xMS4yMzhjLTEuNDU3LS43NjYtMy4wNTUtMS4xNDktNC42NTMtMS4xNDktMS41OTkgMC0zLjE5Ny4zODMtNC42NTMgMS4xNDlsLTIxLjM3NyAxMS4yMzggNC4wODMtMjMuODA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MmwtMTcuMjk2LTE2Ljg1OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0IDg2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMTU2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzQgMTI2LjMwNmgtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoMTBjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NCAxNDYuMzA2aDEwYzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwaC0xMGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3NyAxMCAxMCAxMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYyIDI4NC4zMWMyLjYzIDAgNS4yMS0xLjA3IDcuMDctMi45M3MyLjkzLTQuNDQgMi45My03LjA3YzAtMi42NC0xLjA3LTUuMjEtMi45My03LjA4LTEuODYtMS44Ni00LjQ0LTIuOTItNy4wNy0yLjkycy01LjIxIDEuMDYtNy4wNyAyLjkyYy0xLjg2IDEuODctMi45MyA0LjQ0LTIuOTMgNy4wOCAwIDIuNjMgMS4wNyA1LjIxIDIuOTMgNy4wN3M0LjQ0IDIuOTMgNy4wNyAyLjkzeiIvPgogICAgPC9nPgo8L3N2Zz4=",Mae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwNS40IDUwNS40Ij4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzNy4xLDIzMy40NWMxNC44LTEwLjQsMjQuNi0yNy43LDI0LjYtNDcuMmMwLTMxLjktMjUuOC01Ny43LTU3LjctNTcuN2MtMzEuOSwwLTU3LjcsMjUuOC01Ny43LDU3LjcKCQkJYzAsMTkuNSw5LjcsMzYuOCwyNC42LDQ3LjJjLTEyLjcsNC40LTI0LjMsMTEuMi0zNC4xLDIwYy0xMy41LTExLjUtMjkuNC0yMC4zLTQ2LjgtMjUuNWMyMS4xLTEyLjgsMzUuMy0zNi4xLDM1LjMtNjIuNgoJCQljMC00MC40LTMyLjctNzMuMS03My4xLTczLjFjLTQwLjQsMC03My4xLDMyLjgtNzMuMSw3My4xYzAsMjYuNSwxNC4xLDQ5LjgsMzUuMyw2Mi42Yy0xNy4yLDUuMi0zMi45LDEzLjktNDYuMywyNS4yCgkJCWMtOS44LTguNi0yMS4yLTE1LjMtMzMuNy0xOS42YzE0LjgtMTAuNCwyNC42LTI3LjcsMjQuNi00Ny4yYzAtMzEuOS0yNS44LTU3LjctNTcuNy01Ny43cy01Ny43LDI1LjgtNTcuNyw1Ny43CgkJCWMwLDE5LjUsOS43LDM2LjgsMjQuNiw0Ny4yQzI4LjUsMjQ3LjI1LDAsMjg0Ljk1LDAsMzI5LjI1djYuNmMwLDAuMiwwLjIsMC40LDAuNCwwLjRoMTIyLjNjLTAuNyw1LjUtMS4xLDExLjItMS4xLDE2Ljl2Ni44CgkJCWMwLDI5LjQsMjMuOCw1My4yLDUzLjIsNTMuMmgxNTVjMjkuNCwwLDUzLjItMjMuOCw1My4yLTUzLjJ2LTYuOGMwLTUuNy0wLjQtMTEuNC0xLjEtMTYuOUg1MDVjMC4yLDAsMC40LTAuMiwwLjQtMC40di02LjYKCQkJQzUwNS4yLDI4NC44NSw0NzYuOCwyNDcuMTUsNDM3LjEsMjMzLjQ1eiBNMzYyLjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43CgkJCWMwLDIyLjctMTguMyw0MS4yLTQwLjksNDEuN2MtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzM4MC41LDIyNy40NSwzNjIuMywyMDguOTUsMzYyLjMsMTg2LjE1eiBNMTk0LjksMTY1LjM1CgkJCWMwLTMxLjUsMjUuNi01Ny4xLDU3LjEtNTcuMXM1Ny4xLDI1LjYsNTcuMSw1Ny4xYzAsMzAuNC0yMy45LDU1LjMtNTMuOCw1N2MtMS4xLDAtMi4yLDAtMy4zLDBjLTEuMSwwLTIuMiwwLTMuMywwCgkJCUMyMTguOCwyMjAuNjUsMTk0LjksMTk1Ljc1LDE5NC45LDE2NS4zNXogTTU5LjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43YzAsMjIuNy0xOC4zLDQxLjItNDAuOSw0MS43CgkJCWMtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzc3LjYsMjI3LjQ1LDU5LjMsMjA4Ljk1LDU5LjMsMTg2LjE1eiBNMTI1LjUsMzIwLjE1SDE2LjJjNC41LTQyLjYsNDAuNS03Niw4NC4yLTc2LjMKCQkJYzAuMiwwLDAuNCwwLDAuNiwwczAuNCwwLDAuNiwwYzIwLjgsMC4xLDM5LjgsNy44LDU0LjUsMjAuM0MxNDEuNywyNzkuNzUsMTMxLDI5OC45NSwxMjUuNSwzMjAuMTV6IE0zNjYuOCwzNTkuOTUKCQkJYzAsMjAuNS0xNi43LDM3LjItMzcuMiwzNy4yaC0xNTVjLTIwLjUsMC0zNy4yLTE2LjctMzcuMi0zNy4ydi02LjhjMC02Mi4xLDQ5LjYtMTEyLjksMTExLjMtMTE0LjdjMS4xLDAuMSwyLjMsMC4xLDMuNCwwLjEKCQkJczIuMywwLDMuNC0wLjFjNjEuNywxLjgsMTExLjMsNTIuNiwxMTEuMywxMTQuN1YzNTkuOTV6IE0zNzguNywzMjAuMTVjLTUuNS0yMS4xLTE2LTQwLTMwLjMtNTUuNmMxNC44LTEyLjgsMzQtMjAuNSw1NS0yMC43CgkJCWMwLjIsMCwwLjQsMCwwLjYsMHMwLjQsMCwwLjYsMGM0My43LDAuMyw3OS43LDMzLjcsODQuMiw3Ni4zSDM3OC43eiIvPgogICAgPC9nPgo8L3N2Zz4K",nae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",aae="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAxNjBoLTMydi04MGMwLTguODIyLTcuMTc4LTE2LTE2LTE2aC0zMnYtNDBjMC0xMy4yMzMtMTAuNzY3LTI0LTI0LTI0aC0yMjRjLTEzLjIzMyAwLTI0IDEwLjc2Ny0yNCAyNHY0MGgtMzJjLTguODIyIDAtMTYgNy4xNzgtMTYgMTZ2ODBoLTMyYy0yMi4wNTYgMC00MCAxNy45NDQtNDAgNDB2MTc2YzAgMjIuMDU2IDE3Ljk0NCA0MCA0MCA0MGg4MHY3MmMwIDEzLjIzMyAxMC43NjcgMjQgMjQgMjRoMjI0YzEzLjIzMyAwIDI0LTEwLjc2NyAyNC0yNHYtNzJoODBjMjIuMDU2IDAgNDAtMTcuOTQ0IDQwLTQwdi0xNzZjMC0yMi4wNTYtMTcuOTQ0LTQwLTQwLTQwem0tNDgtODB2ODBoLTMydi04MHptLTI4OC01NmMwLTQuNDExIDMuNTg5LTggOC04aDIyNGM0LjQxMSAwIDggMy41ODkgOCA4djEzNmgtMjQwYzAtMS42MzUgMC0xMzAuMjExIDAtMTM2em0tNDggNTZoMzJ2ODBoLTMyem0yODggNDA4YzAgNC40MTEtMy41ODkgOC04IDhoLTIyNGMtNC40MTEgMC04LTMuNTg5LTgtOHYtMTM2aDI0MHptMTIwLTExMmMwIDEzLjIzMy0xMC43NjcgMjQtMjQgMjRoLTgwdi00OGgxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOGMtMjguNjU3IDAtMjkwLjg4MyAwLTMwNCAwLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDhoMTZ2NDhoLTgwYy0xMy4yMzMgMC0yNC0xMC43NjctMjQtMjR2LTE3NmMwLTEzLjIzMyAxMC43NjctMjQgMjQtMjRoNDMyYzEzLjIzMyAwIDI0IDEwLjc2NyAyNCAyNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDU2IDE5MmMtMTMuMjMzIDAtMjQgMTAuNzY3LTI0IDI0czEwLjc2NyAyNCAyNCAyNCAyNC0xMC43NjcgMjQtMjQtMTAuNzY3LTI0LTI0LTI0em0wIDMyYy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTIgMTkyYy0xMy4yMzMgMC0yNCAxMC43NjctMjQgMjRzMTAuNzY3IDI0IDI0IDI0IDI0LTEwLjc2NyAyNC0yNC0xMC43NjctMjQtMjQtMjR6bTAgMzJjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCAzNzZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0MTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0NTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",cae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NzMuNTc0IDI1Mi40MzJoLTczLjE4NHYtNDMuNzYxYzAtMTEuNDczLTkuMzM0LTIwLjgwNy0yMC44MDctMjAuODA3LTkuODg2IDAtMzQuMjk1IDAtNDQuMzAyIDB2LTE3Ljg0MWMwLTEyLjM5OS0xMC4wODctMjIuNDg2LTIyLjQ4Ni0yMi40ODZoLTE3LjU5NWwxNC43MjQtNDcuNTM1YzE2Ljc1OS42OTIgMzAuNTM5LTEyLjc1IDMwLjUzOS0yOS4yODQgMC0xNi4xNjQtMTMuMTUxLTI5LjMxNS0yOS4zMTUtMjkuMzE1LTI5LjI2OCAwLTQwLjQ1NSAzOC41MS0xNS41NDEgNTQuMTU0bC0xNi4xMDEgNTEuOTc5aC0zMC4xMzNjLTEwLjU3NiAwLTE5LjgzMSA3LjUxNC0yMi4wMDYgMTcuODY2LS4xMDYuNTA3LS4xNiAxLjAyNC0uMTYgMS41NDJ2MjAuOTE5aC0zOC4xNDZ2LTE4LjgwMWMwLTguNjczLTcuMDU3LTE1LjczLTE1LjczLTE1LjczaC0xLjM3OXYtMTkuNTcyYzkuNDY5LS4yMDMgMTcuMTEzLTcuOTUzIDE3LjExMy0xNy40N3YtMTUuNjE2YzAtOS41MTctNy42NDQtMTcuMjY3LTE3LjExMy0xNy40N3YtNDMuNjk5YzAtMjEuNjk1LTE3LjY1LTM5LjM0Ni0zOS4zNDYtMzkuMzQ2aC01MS42NzdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NXMzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg1MS42NzhjMTMuNDI5IDAgMjQuMzU1IDEwLjkyNiAyNC4zNTUgMjQuMzU1djQzLjY4MmgtMzcuOTU3di0yMi41ODRjMC00LjE0LTMuMzU2LTcuNDk1LTcuNDk1LTcuNDk1aC05Ni4ydi0zNy45NTdoMzUuNjM4YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTUtNy40OTUtNy40OTUtNy40OTVoLTQzLjEzM2MtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djUyLjk0N2MwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoOTYuMnYxNS4xMDljLTkuNDY4LjIwMy0xNy4xMTIgNy45NTQtMTcuMTEyIDE3LjQ3djE1LjYxNmMwIDkuNTE2IDcuNjQ0IDE3LjI2NyAxNy4xMTIgMTcuNDd2MTkuNTcyaC0xLjM3OWMtOC42NzMgMC0xNS43MyA3LjA1Ny0xNS43MyAxNS43M3YxOC44MDFoLTIyLjU1NWMtMTEuNDczIDAtMjAuODA3IDkuMzM0LTIwLjgwNyAyMC44MDd2Mi40ODlsLTMzLjQwMiA3LjU4OWMtMy40MTMuNzc1LTUuODM1IDMuODA5LTUuODM1IDcuMzA5djEwNy4yNDNjMCAzLjQ5OSAyLjQyMSA2LjUzMyA1LjgzMyA3LjMwOGwzMy40MDQgNy41OTh2Mi40ODdjMCAxMS40NzMgOS4zMzQgMjAuODA3IDIwLjgwNyAyMC44MDdoNi40MjR2MjcuNzk5aC0xNS4xMjdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NSAwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoMzMzLjg0OWMxLjM3OCAwIDIuNDk4IDEuMTIxIDIuNDk4IDIuNDk4djI1LjUyYy0xNS44MzYtMi44My0zMi40MTguMTAzLTQ2LjcwNyA4LjgxMS0xNi43NTQgMTAuMjExLTM3LjU3IDEwLjIxMi01NC4zMjQgMC0yMS41NjctMTMuMTQ0LTQ4LjM2MS0xMy4xNDUtNjkuOTI4IDAtMTYuNzU0IDEwLjIxMS0zNy41NyAxMC4yMTItNTQuMzI0IDAtMjEuNTY3LTEzLjE0NC00OC4zNjEtMTMuMTQ1LTY5LjkyOCAwLTE2Ljc1NCAxMC4yMTItMzcuNTcgMTAuMjEyLTU0LjMyNCAwbC0yNy40NjktMTYuNzQydi0yMC4wODdoMTAuNjc2YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTYtNy40OTUtNy40OTUtNy40OTVoLTE4LjE3MmMtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djk3LjU0OWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDQ5Ny4wMDljNC4xNCAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1IDAtODguNTA2IDAtMTE4LjAwOSAwLTIxMy40ODcuMDAxLTIxLjE4OC0xNy4yMzctMzguNDI2LTM4LjQyNS0zOC40MjZ6bS0xNjIuNDI1LTE5Ni4wMzdjNy44OTggMCAxNC4zMjUgNi40MjYgMTQuMzI1IDE0LjMyNHMtNi40MjYgMTQuMzI1LTE0LjMyNSAxNC4zMjVjLTcuODk4IDAtMTQuMzI0LTYuNDI2LTE0LjMyNC0xNC4zMjVzNi40MjYtMTQuMzI0IDE0LjMyNC0xNC4zMjR6bS0yNjcuNjA0IDI3Ni40NC0yNC4yNDctNS41MTV2LTk1LjI3N2wyNC4yNDctNS41MDl6bTE5OC42NTMtMTY0Ljk3NGMuOTQ3LTMuMTI1IDMuODY3LTUuMzMzIDcuMTc2LTUuMzMzaDYzLjQyYzQuMTMzIDAgNy40OTUgMy4zNjIgNy40OTUgNy40OTV2MTcuODQxaC03OC4wOTF6bS0xNDAuMzA1LTUxLjU2OXYtMTUuNjE2YzAtMS4zNzggMS4xMjEtMi40OTggMi40OTgtMi40OThoNjcuMTg1YzEuMzc4IDAgMi40OTggMS4xMjEgMi40OTggMi40OTh2MTUuNjE2YzAgMS4zNzgtMS4xMjEgMi40OTgtMi40OTggMi40OThoLTY3LjE4NWMtMS4zNzcuMDAxLTIuNDk4LTEuMTItMi40OTgtMi40OTh6bTU1LjA2OSAxNy40ODl2MTkuNTUzaC0zNy45NTd2LTE5LjU1M3ptLTU1LjA2NiAzNS4yODNjMC0uNDA3LjMzMi0uNzM5LjczOS0uNzM5aDcwLjY5NmMuNDA3IDAgLjczOS4zMzIuNzM5LjczOXYxOC44MDFoLTcyLjE3NXYtMTguODAxem0tLjAwMyAzMy43OTFoMjQwLjE0OHYxNTMuNjU2aC0yNDAuMTQ4em0tMzcuNTQyIDE1My42NTZjLTMuMjA3IDAtNS44MTYtMi42MDktNS44MTYtNS44MTZ2LTE0Mi4wMjNjMC0zLjIwNyAyLjYwOS01LjgxNiA1LjgxNi01LjgxNmgyMi41NTF2MTUzLjY1NmMtNS4yMTEtLjAwMS0xNy40ODgtLjAwMS0yMi41NTEtLjAwMXptMjk5LjM3MiA0Mi43OWgtMjc3Ljk1N3YtMjcuNzk5aDI3Ny45NTZ2MjcuNzk5em03LjQ5NS00Mi43OTRjLS4wMjkgMC0uMDU4LjAwNC0uMDg3LjAwNGgtMTQuMDk5di0xNTMuNjU2aDIyLjU1MWMzLjIwNyAwIDUuODE2IDIuNjA5IDUuODE2IDUuODE2djE0Mi4wMjRjMCAzLjIwNy0yLjYwOSA1LjgxNi01LjgxNiA1LjgxNmgtOC4yNzhjLS4wMjkgMC0uMDU4LS4wMDQtLjA4Ny0uMDA0em0xMjUuNzkxIDE0MC4zNDNjLTkuMzc5IDAtNDcxLjEwNyAwLTQ4Mi4wMTkgMHYtNDQuOTE2bDE5LjY2NyAxMS45ODdjMjEuNTY3IDEzLjE0NSA0OC4zNjEgMTMuMTQ1IDY5LjkyOCAwIDE2Ljc1NC0xMC4yMTEgMzcuNTctMTAuMjEyIDU0LjMyNCAwIDIxLjU2OCAxMy4xNDUgNDguMzYxIDEzLjE0NSA2OS45MjggMCAxNi43NTQtMTAuMjExIDM3LjU3LTEwLjIxMiA1NC4zMjQgMCAyMS41NjggMTMuMTQ1IDQ4LjM2MSAxMy4xNDUgNjkuOTI4IDAgMTcuMDk3LTEwLjQyMSAzNy45NDEtOS45ODYgNTQuMzI0IDAgMjEuNTY3IDEzLjE0NCA0OC4zNjIgMTMuMTQ0IDY5LjkyOCAwbDE5LjY2Ny0xMS45ODdjLjAwMSAxMC41NTYuMDAxIDIyLjM4LjAwMSA0NC45MTZ6bTAtNjIuNDcyYy0yOS43ODkgMTguMTU2LTMwLjM1MyAxOC44MzYtMzYuNTI3IDIxLjEzMnYtNDQuMjU3YzAtNC4xMzktMy4zNTYtNy40OTUtNy40OTUtNy40OTVzLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djQ3LjQyN2MtMTkuNDcyIDEuMTcyLTI4Ljk4NC03LjY4OC0zOC41MDYtMTEuODM2di0zMC4wNTRjMC05LjY0My03Ljg0Ni0xNy40ODktMTcuNDg5LTE3LjQ4OWgtMTAuNzgzdi0yNy43OTljMTMuMzQyIDAgMjEuNjc2LTEwLjA0OSAyMS42NzYtMjAuODA3di0zMS43NTVoNDUuMTAydjYyLjMzMWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1czcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1di02OS44MjZjMC00LjEzOS0zLjM1Ni03LjQ5NS03LjQ5NS03LjQ5NWgtNTIuNTk3di0zNi41MjdoNzMuMTg0YzEyLjkyMyAwIDIzLjQzNiAxMC41MTMgMjMuNDM2IDIzLjQzNXYxNDMuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxMS4wMjQgMjI3LjE1M2gtNzkuNzI2Yy00LjE0IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTV2OTAuMDdjMCA0LjE0IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDc5LjcyNmM0LjE0IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTV2LTkwLjA3Yy4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6bS03LjQ5NSA5MC4wN2gtNjQuNzM1di03NS4wNzloNjQuNzM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTIuNjM1IDI0MC45N2gtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1IDAgNC4xNCAzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg2NC41MDVjNC4xMzkgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NS4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMi42MzUgMjcyLjE4OGgtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1czMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDY0LjUwNWM0LjEzOSAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1cy0zLjM1NS03LjQ5NS03LjQ5NS03LjQ5NXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzEyLjYzNSAzMDMuNDA2aC02NC41MDVjLTQuMTM5IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTVzMy4zNTYgNy40OTUgNy40OTUgNy40OTVoNjQuNTA1YzQuMTM5IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTVzLTMuMzU1LTcuNDk1LTcuNDk1LTcuNDk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjEuODk5IDI4Ny4xNzloNy41NDhsLTIuOTA0IDcuNDMyYy0xLjUwNyAzLjg1NS4zOTcgOC4yMDIgNC4yNTMgOS43MDkuODk2LjM1IDEuODE5LjUxNiAyLjcyNi41MTYgMi45OTcgMCA1LjgyNi0xLjgwOSA2Ljk4My00Ljc2OWw2LjktMTcuNjU1Yy45MDItMi4zMDcuNjA2LTQuOTEtLjc5MS02Ljk1NXMtMy43MTMtMy4yNjgtNi4xOS0zLjI2OGgtNy41NDhsMi45MDQtNy40MzJjMS41MDctMy44NTUtLjM5Ny04LjIwMi00LjI1My05LjcwOS0zLjg1NS0xLjUwOS04LjIwMy4zOTYtOS43MDkgNC4yNTNsLTYuOSAxNy42NTVjLS45MDIgMi4zMDctLjYwNiA0LjkxLjc5MSA2Ljk1NSAxLjM5NiAyLjA0NCAzLjcxMyAzLjI2OCA2LjE5IDMuMjY4eiIvPgogICAgPC9nPgo8L3N2Zz4=",uae="PHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTk0LjcyNyA3My43MDhhNi43NSA2Ljc1IDAgMSAwIDYuNzUgNi43NSA2Ljc1NiA2Ljc1NiAwIDAgMCAtNi43NS02Ljc1em0wIDEwYTMuMjUgMy4yNSAwIDEgMSAzLjI1LTMuMjUgMy4yNTQgMy4yNTQgMCAwIDEgLTMuMjUgMy4yNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuMDgxIDczLjcwOGE2Ljc1IDYuNzUgMCAxIDAgNi43NSA2Ljc1IDYuNzU3IDYuNzU3IDAgMCAwIC02Ljc1LTYuNzV6bTAgMTBhMy4yNSAzLjI1IDAgMSAxIDMuMjUtMy4yNSAzLjI1NCAzLjI1NCAwIDAgMSAtMy4yNSAzLjI1eiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjY0Ljk2NiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9Ijc3LjU5MSIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjkwLjIxNiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjEwMi44NDEiIGN5PSI0OC4wMjEiIHI9IjMiLz4KICAgICAgICA8cGF0aCBkPSJtMTIxLjUgMzMuNWgtMTE1YTEuNzUxIDEuNzUxIDAgMCAwIC0xLjc1IDEuNzV2NTcuNWExLjc1MSAxLjc1MSAwIDAgMCAxLjc1IDEuNzVoMTUuOTQydjguMjVhMS43NTEgMS43NTEgMCAwIDAgMS43NSAxLjc1aDEwYTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoNTYuMTE2djguMjVhMS43NSAxLjc1IDAgMCAwIDEuNzUgMS43NWgxMGExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoMTUuOTQyYTEuNzUxIDEuNzUxIDAgMCAwIDEuNzUtMS43NXYtNTcuNWExLjc1MSAxLjc1MSAwIDAgMCAtMS43NS0xLjc1em0tODkuMDU4IDY3LjVoLTYuNXYtNi41aDYuNXptNjkuNjE2IDBoLTYuNXYtNi41aDYuNXptMTcuNjkyLTEwaC0xMTEuNXYtNTRoMTExLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyLjY5MiA3NC4yNWExMC4yNSAxMC4yNSAwIDEgMCAtMTAuMjUtMTAuMjUgMTAuMjYxIDEwLjI2MSAwIDAgMCAxMC4yNSAxMC4yNXptLTEuNzUtMTYuNzYydjQuMDEyYTEuNzUgMS43NSAwIDAgMCAzLjUgMHYtNC4wMTJhNi43NSA2Ljc1IDAgMSAxIC0zLjUgMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjkyIDQ5Ljk1OGExLjc0OSAxLjc0OSAwIDAgMCAxLjc1LTEuNzV2LTNhMS43NSAxLjc1IDAgMCAwIC0zLjUgMHYzYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4Ljc5MiA1MS4zNTNhMS43NSAxLjc1IDAgMCAwIDIuMzM3LS44MTZsMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyLTEuNTJsLTEuMyAyLjdhMS43NSAxLjc1IDAgMCAwIC44MTUgMi4zMzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1LjA1MiA1NS45MTlhMS43NDggMS43NDggMCAwIDAgMS4wODgtLjM4bDIuMzQ4LTEuODY4YTEuNzUgMS43NSAwIDAgMCAtMi4xNzktMi43MzlsLTIuMzQ4IDEuODY4YTEuNzUgMS43NSAwIDAgMCAxLjA5MSAzLjEyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNC4yNTYgNTAuNTM3YTEuNzUgMS43NSAwIDEgMCAzLjE1Mi0xLjUyMWwtMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyIDEuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2LjkgNTMuNjcxIDIuMzQ5IDEuODY4YTEuNzUgMS43NSAwIDAgMCAyLjE3OC0yLjc0bC0yLjM0OC0xLjg2N2ExLjc1IDEuNzUgMCAxIDAgLTIuMTc5IDIuNzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Im01OC44MDggNzAuMjkyaDUwLjE5MmExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTEwYTEuNzUgMS43NSAwIDAgMCAtMS43NS0xLjc1aC01MC4xOTJhMS43NDkgMS43NDkgMCAwIDAgLTEuNzUgMS43NXYxMGExLjc1IDEuNzUgMCAwIDAgMS43NSAxLjc1em0xLjc1LTEwaDQ2LjY5MnY2LjVoLTQ2LjY5MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYuMTM1IDg3LjIwOGgzMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAtMy41aC0zMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAgMy41eiIvPgogICAgPC9nPgo8L3N2Zz4=",Nae="PHN2ZyBoZWlnaHQ9IjYwMHB0IiB2aWV3Qm94PSItNDUgLTE5IDYwMCA2MDAuMDAxIiB3aWR0aD0iNjAwcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTguMjE0ODQ0IDBoLTUwLjk3NjU2M2MtMTguMTk1MzEyLjAyNzM0MzgtMzIuOTMzNTkzIDE0Ljc2OTUzMS0zMi45NjQ4NDMgMzIuOTY0ODQ0djI0Ljg3MTA5NGgtMTQ0LjgyNDIxOWMtNjEuNDM3NS4wOTM3NS0xMTIuMjUzOTA3IDQ3Ljg3MTA5My0xMTYuMTMyODEzIDEwOS4xODc1aC0zOS4wNjY0MDZjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40Njg3NS05Ljk4ODI4MSA5Ljk4ODI4MXYzMC41MTE3MTloLTEwLjI4NTE1N2MtMy43MDcwMzEgMC03LjEwNTQ2OCAyLjA0Njg3NC04LjgzNTkzNyA1LjMyODEyNGwtODUuNzY5NTMxIDE2Mi41NTQ2ODhjLTEuNjM2NzE5IDMuMDk3NjU2LTEuNTMxMjUgNi44MjQyMTkuMjc3MzQ0IDkuODI0MjE5IDEuODA4NTkzIDMgNS4wNTA3ODEgNC44MjgxMjUgOC41NTQ2ODcgNC44MjgxMjVoMTA4LjEyMTA5NGMuMTc1NzgxIDMuOTU3MDMxLjY3NTc4MSA3Ljg4NjcxOCAxLjQ5NjA5MyAxMS43NjE3MTggNy41NzAzMTMgMzUuMDU0Njg4IDM4LjU1ODU5NCA2MC4wOTM3NSA3NC40MjU3ODIgNjAuMTI1IDM1Ljg3MTA5NC4wMzUxNTcgNjYuOTAyMzQ0LTI0Ljk0OTIxOCA3NC41MzUxNTYtNTkuOTk2MDkzLjg0Mzc1LTMuOTEwMTU3IDEuMzY3MTg4LTcuODkwNjI1IDEuNTUwNzgxLTExLjg5NDUzMWgxMDguMTM2NzE5YzMuNSAwIDYuNzUtMS44MzIwMzIgOC41NTQ2ODgtNC44MzIwMzIgMS44MDg1OTMtMyAxLjkxNzk2OC02LjcyNjU2Mi4yNzczNDMtOS44MjAzMTJsLTg1Ljc2OTUzMS0xNjIuNTQ2ODc1Yy0xLjczMDQ2OS0zLjI4OTA2My01LjE0NDUzMS01LjMzOTg0NC04Ljg1OTM3NS01LjMzMjAzMWgtMTAuMjYxNzE5di0zMC41MTE3MTljMC01LjUxOTUzMS00LjQ3MjY1Ni05Ljk4ODI4MS05Ljk4ODI4MS05Ljk4ODI4MWgtNDQuNTM1MTU2YzIuMTQwNjI1LTIyLjQ3MjY1NyAyMC45ODgyODEtMzkuNjQ0NTMyIDQzLjU2MjUtMzkuNjk5MjE5aDE0NC44MDQ2ODd2MjguMTYwMTU2Yy4wMzUxNTYgMTguMTkxNDA2IDE0Ljc3NzM0NCAzMi45MzM1OTQgMzIuOTY4NzUgMzIuOTYwOTM3aDUwLjk4MDQ2OWM1LjUxNTYyNSAwIDkuOTg4MjgxLTQuNDY0ODQzIDkuOTg4MjgxLTkuOTg4Mjgxdi0xNjguNDY4NzVjMC01LjUxMTcxOS00LjQ2NDg0NC05Ljk4MDQ2ODUtOS45NzY1NjItOS45ODgyODF6bS0yNTAuOTE3OTY5IDM5Ny42MzI4MTJjLTUuNTY2NDA2IDI1LjkzMzU5NC0yOC41MDc4MTMgNDQuNDUzMTI2LTU1LjAzMTI1IDQ0LjQyMTg3Ni0yNi41MzEyNS0uMDI3MzQ0LTQ5LjQyNTc4MS0xOC41OTc2NTctNTQuOTMzNTk0LTQ0LjU0Njg3Ni0uNTU0Njg3LTIuNDUzMTI0LS45MjU3ODEtNC45NDkyMTgtMS4xMjEwOTMtNy40NTMxMjRoMTEyLjIzNDM3NGMtLjE5OTIxOCAyLjU1MDc4MS0uNTg1OTM3IDUuMDgyMDMxLTEuMTQ4NDM3IDcuNTc4MTI0em0xMTIuNjA1NDY5LTI3LjU3NDIxOGgtMTAxLjM5NDUzMmMtLjA2NjQwNiAwLS4xMzY3MTggMC0uMjAzMTI0IDBoLTEzMS45NjA5MzhjLS4wNzAzMTIgMC0uMTM2NzE5IDAtLjIwNzAzMSAwaC0xMDEuMzk0NTMxbDc1LjI1MzkwNi0xNDIuNTU0Njg4aDE4NC42ODM1OTR6bS05OS40NzI2NTYtMTYyLjUzNTE1NmgtMTM2LjE5MTQwN3YtMjAuNTE5NTMyaDEzNi4xOTE0MDd6bTguOTk2MDkzLTEwMC4xODM1OTRjLTMzLjUzNTE1Ni4yNzM0MzctNjEuMjQ2MDkzIDI2LjIzODI4MS02My42OTUzMTIgNTkuNjgzNTk0aC0zMi40MzM1OTRjMy44NDc2NTYtNTAuMjczNDM4IDQ1LjczMDQ2OS04OS4xMjUgOTYuMTUyMzQ0LTg5LjE4NzVoMTQ0LjgwNDY4N3YyOS41MDM5MDZ6bTIxOC43Njk1MzEgNjEuMTQwNjI1aC00MC45ODQzNzRjLTcuMTY3OTY5LS4wMTk1MzEtMTIuOTcyNjU3LTUuODI0MjE5LTEyLjk5MjE4OC0xMi45ODgyODF2LTEyMi41MDc4MTNjLjAxOTUzMS03LjE2MDE1NiA1LjgyNDIxOS0xMi45NjQ4NDQgMTIuOTkyMTg4LTEyLjk4NDM3NWg0MC45ODQzNzR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im05MC41MTU2MjUgNDE1Ljk5MjE4OGMwLTUuNTE1NjI2LTQuNDcyNjU2LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4MjgyaC02MS4zOTg0MzhjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40NzI2NTYtOS45ODgyODEgOS45ODgyODIgMCA1LjUxOTUzMSA0LjQ3MjY1NiA5Ljk5MjE4NyA5Ljk4ODI4MSA5Ljk5MjE4N2g2MS4zOTg0MzhjNS41MTU2MjUgMCA5Ljk4ODI4MS00LjQ3MjY1NiA5Ljk4ODI4MS05Ljk5MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNy41MzkwNjIgNDcyLjY3MTg3NS00MC4wNzAzMTIgMzcuNzQ2MDk0Yy0yLjY0MDYyNSAyLjQzMzU5My0zLjc3MzQzOCA2LjEwMTU2Mi0yLjk1NzAzMSA5LjU5NzY1Ni44MTI1IDMuNTAzOTA2IDMuNDQxNDA2IDYuMjk2ODc1IDYuODg2NzE5IDcuMzE2NDA2IDMuNDQ1MzEyIDEuMDIzNDM4IDcuMTc1NzgxLjExNzE4OCA5Ljc2NTYyNC0yLjM3NWw0MC4wNzAzMTMtMzcuNzM4MjgxYzIuNjQwNjI1LTIuNDMzNTk0IDMuNzY5NTMxLTYuMTAxNTYyIDIuOTU3MDMxLTkuNjA1NDY5LS44MTY0MDYtMy40OTYwOTMtMy40NDUzMTItNi4yOTI5NjktNi44ODY3MTgtNy4zMTY0MDYtMy40NDkyMTktMS4wMTk1MzEtNy4xNzU3ODItLjExMzI4MS05Ljc2NTYyNiAyLjM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM2NS41NDY4NzUgNDA2LjAwMzkwNmgtNjEuMzkwNjI1Yy01LjUxOTUzMSAwLTkuOTkyMTg4IDQuNDcyNjU2LTkuOTkyMTg4IDkuOTg4MjgyIDAgNS41MTk1MzEgNC40NzI2NTcgOS45OTIxODcgOS45OTIxODggOS45OTIxODdoNjEuMzkwNjI1YzUuNTE5NTMxIDAgOS45ODgyODEtNC40NzI2NTYgOS45ODgyODEtOS45OTIxODcgMC01LjUxNTYyNi00LjQ2ODc1LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4Mjgyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY3LjA0Njg3NSA0NzIuNjcxODc1Yy0yLjU4OTg0NC0yLjQ4ODI4MS02LjMxNjQwNi0zLjM5NDUzMS05Ljc2NTYyNS0yLjM3NS0zLjQ0NTMxMiAxLjAyMzQzNy02LjA3NDIxOSAzLjgyMDMxMy02Ljg4NjcxOSA3LjMxNjQwNi0uODE2NDA2IDMuNTAzOTA3LjMxNjQwNyA3LjE3MTg3NSAyLjk1MzEyNSA5LjYwNTQ2OWw0MC4wNjI1IDM3LjcyMjY1NmMyLjU4OTg0NCAyLjQ5MjE4OCA2LjMxNjQwNiAzLjQwMjM0NCA5Ljc2NTYyNSAyLjM3NSAzLjQ0MTQwNy0xLjAxOTUzMSA2LjA3MDMxMy0zLjgxMjUgNi44ODY3MTktNy4zMTY0MDYuODEyNS0zLjQ5NjA5NC0uMzE2NDA2LTcuMTY0MDYyLTIuOTU3MDMxLTkuNjAxNTYyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyLjI3MzQzOCA0OTAuOTMzNTk0Yy01LjUxNTYyNiAwLTkuOTg4MjgyIDQuNDcyNjU2LTkuOTg4MjgyIDkuOTkyMTg3djUwLjg0NzY1N2MwIC4yNDYwOTMtLjAyMzQzNy41MDM5MDYtLjAyMzQzNy43MzgyODEgMCA1LjUxNTYyNSA0LjQ3MjY1NiA5Ljk4ODI4MSA5Ljk4ODI4MSA5Ljk4ODI4MS40MjU3ODEtLjAwMzkwNi44NTU0NjktLjAyNzM0NCAxLjI3NzM0NC0uMDg1OTM4IDQuOTkyMTg3LS42Mjg5MDYgOC43MzgyODEtNC44Nzg5MDYgOC43MzgyODEtOS45MDYyNXYtNTEuNTgyMDMxYzAtNS41MTk1MzEtNC40NzI2NTYtOS45OTIxODctOS45OTIxODctOS45OTIxODd6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",lae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzguNTExLDg4LjYyMkM0MDMuNjk0LDY5LjIyMywzMjguNDM3LDM5LjAxNywyNjAuODc4LDEuMjY5Yy0zLjAzLTEuNjkyLTYuNzIzLTEuNjkzLTkuNzU1LDAKCQkJQzE4MS42MjEsNDAuMDk5LDExMC40MzIsNjguNjcyLDMzLjQ4OSw4OC42MjNjLTQuNDEsMS4xNDQtNy40OSw1LjEyNC03LjQ5LDkuNjh2MTEwLjM5NGMwLDExMy41MzUsNTUuMjkyLDE4OC42MzksMTAxLjY3OCwyMzEuNjUKCQkJYzQ5Ljc1Nyw0Ni4xMzgsMTA3LjQ2LDcxLjY1NSwxMjguMzI0LDcxLjY1NWMyMC44NjQsMCw3OC41NjctMjUuNTE3LDEyOC4zMjQtNzEuNjU1CgkJCWM0Ni4zODQtNDMuMDExLDEwMS42NzgtMTE4LjExNCwxMDEuNjc4LTIzMS42NVY5OC4zMDJDNDg2LjAwMiw5My43NDYsNDgyLjkyMiw4OS43NjYsNDc4LjUxMSw4OC42MjJ6IE0zNzAuNzI2LDQyNS42NzgKCQkJYy0yNy41NTcsMjUuNTUzLTU0LjMzNiw0MS42ODUtNzEuOTUsNTAuNzE4Yy0yMi4zMTksMTEuNDQ3LTM3LjgxLDE1LjYwMy00Mi43NzYsMTUuNjAzYy00Ljk2NiwwLTIwLjQ1Ni00LjE1NS00Mi43NzYtMTUuNjAzCgkJCWMtMTcuNjEyLTkuMDMzLTQ0LjM5Mi0yNS4xNjUtNzEuOTUtNTAuNzE4Yy00My40NjQtNDAuMzAzLTk1LjI3Ni0xMTAuNjYzLTk1LjI3Ni0yMTYuOTgzVjEwNi4wMDgKCQkJYzczLjk2NC0xOS44LDE0Mi44MDEtNDcuNTIzLDIxMC4wMDMtODQuNTc0YzY1LjQ5OCwzNi4wNTksMTM3LjgyNyw2NS4xODUsMjEwLDg0LjU3MXYxMDIuNjloMC4wMDEKCQkJQzQ2Ni4wMDEsMzE1LjAxNSw0MTQuMTksMzg1LjM3NSwzNzAuNzI2LDQyNS42Nzh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ0My43OTMsMTE1LjM2OGMtNjMuMzM2LTE4LjQxMy0xMjQuOTM2LTQzLjQyNC0xODMuMDg3LTc0LjMzN2MtMi45MzgtMS41NjMtNi40NjEtMS41Ni05LjM5NywwLjAwNgoJCQlDMTkzLjA2OSw3Mi4wNzksMTMxLjQ3LDk3LjA5NCw2OC4yMiwxMTUuMzg3Yy00LjI3NywxLjIzNy03LjIyMiw1LjE1My03LjIyMiw5LjYwNnY4My43MDJjMCwzOS4wNzcsNy40MDUsNzYuMTYxLDIyLjAwOCwxMTAuMjIyCgkJCWMxNC41MywzMy44OTEsMzYuMjAxLDY0LjgyLDY0LjQwOSw5MS45MzNjMjAuMTc1LDE5LjM5LDQzLjQ2OSwzNi40NzcsNjcuMzY3LDQ5LjQxM2M0LjI4MiwyLjMxOCwyNi4zMDUsMTQuMDAzLDM5LjQwMiwxNi40MjEKCQkJYzAuNiwwLjExLDEuMjA3LDAuMTY2LDEuODE1LDAuMTY2YzAuNjA4LDAsMS4yMTUtMC4wNTYsMS44MTUtMC4xNjZjMTMuMDk3LTIuNDE4LDM1LjEyLTE0LjEwMywzOS40MDItMTYuNDIxCgkJCWMyMy44OTUtMTIuOTM2LDQ3LjE5LTMwLjAyMyw2Ny4zNjctNDkuNDEzYzI4LjIwOC0yNy4xMTEsNDkuODc4LTU4LjA0MSw2NC40MDktOTEuOTMzYzE0LjYwMy0zNC4wNiwyMi4wMDgtNzEuMTQ0LDIyLjAwOC0xMTAuMjIyCgkJCXYtODMuNzI0QzQ1MS4wMDEsMTIwLjUyNCw0NDguMDYzLDExNi42MTEsNDQzLjc5MywxMTUuMzY4eiBNNDMxLjAwMSwyMDguNjk1YzAsNzMuMzc2LTI3LjAwOCwxMzYuNTM4LTgwLjI3NiwxODcuNzM0CgkJCWMtMTguODk4LDE4LjE2Mi00MC42OTMsMzQuMTUzLTYzLjAyOSw0Ni4yNDVjLTEwLjE2Nyw1LjUwMy0yMy44OTIsMTEuOTE5LTMxLjY5NywxMy45MzRjLTcuODA1LTIuMDE1LTIxLjUzLTguNDMxLTMxLjY5Ni0xMy45MzQKCQkJYy0yMi4zMzctMTIuMDkzLTQ0LjEzMi0yOC4wODQtNjMuMDI5LTQ2LjI0NWMtNTMuMjY3LTUxLjE5NS04MC4yNzYtMTE0LjM1OS04MC4yNzYtMTg3LjczNFYxMzIuNDgKCQkJYzYwLjM1NC0xNy45NjksMTE5LjE3Mi00MS45MzEsMTc1LjAxOS03MS4zMDZjNTUuNzU3LDI5LjI1MSwxMTQuNTY5LDUzLjIwNCwxNzQuOTgzLDcxLjI3NFYyMDguNjk1eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuMDI3LDM1OC4zMDVsLTAuMi0wLjIxNWMtMy43MDEtNC4wNTUtOS45ODctNC4zNjctMTQuMDczLTAuNjg5Yy00LjEwNSwzLjY5NC00LjQzOCwxMC4wMTctMC43NDQsMTQuMTIybDAuMiwwLjIxNQoJCQljMS45NzEsMi4xNTgsNC42NzMsMy4yNTYsNy4zODcsMy4yNTZjMi4zODMsMCw0Ljc3NS0wLjg0OCw2LjY4Ni0yLjU2N0MxNzYuMzg4LDM2OC43MzMsMTc2LjcyMSwzNjIuNDA5LDE3My4wMjcsMzU4LjMwNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjI2Ljk2Myw0MDMuNjk1Yy0xMi4wNDYtNy42MDItMjMuNjQ1LTE2LjM2NC0zNC40NzMtMjYuMDQ0Yy00LjExNy0zLjY4Mi0xMC40MzktMy4zMjctMTQuMTIsMC43OQoJCQljLTMuNjgsNC4xMTgtMy4zMjYsMTAuNDM5LDAuNzkyLDE0LjEyYzExLjY1MywxMC40MTgsMjQuMTQ1LDE5Ljg1NCwzNy4xMjksMjguMDQ4YzEuNjU3LDEuMDQ1LDMuNTAyLDEuNTQ0LDUuMzI3LDEuNTQ0CgkJCWMzLjMxOCwwLDYuNTY0LTEuNjUsOC40NjYtNC42NjRDMjMzLjAzMiw0MTIuODE4LDIzMS42MzUsNDA2LjY0MiwyMjYuOTYzLDQwMy42OTV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMwOC44OTgsMjA5LjA3N3YtMzIuOTIxYzAtMjkuMTY4LTIzLjczLTUyLjg5OC01Mi45LTUyLjg5OGMtMjkuMTY4LDAtNTIuODk4LDIzLjczLTUyLjg5OCw1Mi44OTh2MzIuOTIxCgkJCWMtMTEuODk4LDAuNDI5LTIxLjQ0NywxMC4yMzUtMjEuNDQ3LDIyLjIzNnY3Ni43NjljLTAuMDAxLDEyLjI3Myw5Ljk4NCwyMi4yNTcsMjIuMjU3LDIyLjI1N0gzMDguMDkKCQkJYzEyLjI3MywwLDIyLjI1OC05Ljk4NCwyMi4yNTgtMjIuMjU3di03Ni43NjlDMzMwLjM0OCwyMTkuMzExLDMyMC43OTgsMjA5LjUwNCwzMDguODk4LDIwOS4wNzd6IE0yMjMuMDk5LDE3Ni4xNTYKCQkJYzAtMTguMTQsMTQuNzU5LTMyLjg5OCwzMi45LTMyLjg5OGMxOC4xNCwwLDMyLjg5OCwxNC43NTgsMzIuODk4LDMyLjg5OHYzMi45aC02NS43OTlWMTc2LjE1NnogTTMxMC4zNDcsMzA4LjA4MwoJCQljMCwxLjIyNC0xLjAzNCwyLjI1Ny0yLjI1OCwyLjI1N0gyMDMuOTA4Yy0xLjIyNCwwLTIuMjU4LTEuMDMzLTIuMjU4LTIuMjU3di03Ni43NjloMC4wMDFjMC0xLjIyNCwxLjAzNC0yLjI1NywyLjI1OC0yLjI1N2g5LjE4OQoJCQloODUuNzk5aDkuMTkyYzEuMjI0LDAsMi4yNTgsMS4wMzMsMi4yNTgsMi4yNTdWMzA4LjA4M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI0OS42NGMtNy43MDEsMC0xMy45ODIsNi4yODEtMTMuOTgyLDEzLjk4MmMwLDMuNzg2LDEuNTIzLDcuMjI1LDMuOTgyLDkuNzQ2djkuNzg3YzAsNS41MjIsNC40NzcsMTAsMTAsMTAKCQkJYzUuNTIzLDAsMTAtNC40NzgsMTAtMTB2LTkuNzg3YzIuNDU5LTIuNTIyLDMuOTgyLTUuOTYsMy45ODItOS43NDZDMjY5Ljk4MiwyNTUuOTIxLDI2My43MDEsMjQ5LjY0LDI1NiwyNDkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Lae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk2Ljg4MjgxMiAwaC00ODEuNzY1NjI0Yy04LjM0NzY1NyAwLTE1LjExNzE4OCA2Ljc2OTUzMS0xNS4xMTcxODggMTUuMTE3MTg4djQ4MS43NjU2MjRjMCA4LjM0NzY1NyA2Ljc2OTUzMSAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGg0ODEuNzY1NjI0YzguMzQ3NjU3IDAgMTUuMTE3MTg4LTYuNzY5NTMxIDE1LjExNzE4OC0xNS4xMTcxODh2LTQ4MS43NjU2MjRjMC04LjM0NzY1Ny02Ljc2OTUzMS0xNS4xMTcxODgtMTUuMTE3MTg4LTE1LjExNzE4OHptLTQwNi4xNzU3ODEgNDIxLjI5Mjk2OXYtODguNjk1MzEzaDExOS4wNzQyMTl2ODguNjk1MzEzem0tNjAuNDcyNjU2LTM5MS4wNTg1OTRoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTM1Mi44Mzk4NDQtNTguNDUzMTI1djI4LjIxODc1aC0yNTQuMTQ4NDM4di0yOC4yMTg3NXptLTI1NC4xNDg0MzggMjM5Ljg3MTA5NGgyNTQuMTUyMzQ0djMwLjIzODI4MWgtMjU0LjE1MjM0NHptMC0zMC4yMzQzNzV2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTZ2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTd2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptLTk4LjY5MTQwNiAzMC4yMzQzNzZoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTAgNjAuNDcyNjU2aDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptMzgzLjA3ODEyNSAwaDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptNjguNDUzMTI1LTMwLjIzNDM3NWgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1N2gtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0tMjQxLjc1IDI3Mi4xMjVoMzAuMjM4Mjgxdjg4LjY5NTMxM2gtMzAuMjM4Mjgxem02MC40NzY1NjMgMGgxMjAuODAwNzgxdjg4LjY5NTMxM2gtMTIwLjgwMDc4MXptLTI3MC4yNTc4MTMgMTQ5LjE2Nzk2OXYtMTQ5LjE2Nzk2OWgzMC4yMzgyODF2MTAzLjgxMjVjMCA4LjM0NzY1NiA2Ljc2OTUzMiAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGgzNjAuODIwMzEyYzguMzQ3NjU2IDAgMTUuMTE3MTg4LTYuNzY5NTMyIDE1LjExNzE4OC0xNS4xMTcxODh2LTEwMy44MTI1aDMwLjIzODI4MXYxNDkuMTY3OTY5em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",jae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0yIDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM0OC4yNDYwOTQgMzc2Ljc4NTE1NmMtMy4yNS0yLjYwNTQ2OC03Ljk5MjE4OC0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTI4Ljk0OTIxOSAzNi4wOTM3NWMtMy45ODQzNzUgNC45Njg3NS0uMzY3MTg4IDEyLjI1NzgxMiA1Ljg3NSAxMi4yNTc4MTIgMi4yMTA5MzcgMCA0LjM5ODQzNy0uOTY4NzUgNS44ODY3MTktMi44MjQyMTlsMjguOTQ5MjE4LTM2LjA5Mzc1YzIuNjA1NDY5LTMuMjUgMi4wODU5MzgtNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzkwLjM1OTM3NSAzNTguNzM4MjgxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg3LTIuMDgyMDMxLTEwLjU5NzY1NiAxLjE2NDA2M2wtMjguOTQ5MjE5IDM2LjA5Mzc1Yy0zLjk4NDM3NSA0Ljk2ODc1LS4zNjcxODggMTIuMjU3ODEyIDUuODc1IDEyLjI1NzgxMiAyLjIxMDkzOCAwIDQuMzk4NDM4LS45Njg3NSA1Ljg4NjcxOS0yLjgyNDIxOGwyOC45NDkyMTktMzYuMDkzNzVjMi42MDU0NjgtMy4yNDYwOTQgMi4wODU5MzctNy45OTIxODgtMS4xNjQwNjMtMTAuNTk3NjU3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTExLjc1IDQyMi4wNTA3ODFjMi4xMDkzNzUgMCA0LjIwNzAzMS0uODc4OTA2IDUuNjk5MjE5LTIuNTk3NjU2bDM5LjYxMzI4MS00NS42NDQ1MzFjMi43MzA0NjktMy4xNDQ1MzIgMi4zOTQ1MzEtNy45MDYyNS0uNzUtMTAuNjMyODEzLTMuMTQ0NTMxLTIuNzMwNDY5LTcuOTEwMTU2LTIuMzk0NTMxLTEwLjYzNjcxOS43NWwtMzkuNjE3MTg3IDQ1LjY0NDUzMWMtNC4yNTM5MDYgNC45MDIzNDQtLjY5NTMxMyAxMi40ODA0NjkgNS42OTE0MDYgMTIuNDgwNDY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk2LjYyMTA5NCAzNzYuNzg1MTU2Yy0zLjI1LTIuNjA1NDY4LTcuOTk2MDk0LTIuMDgyMDMxLTEwLjYwMTU2MyAxLjE2NDA2M2wtMTQuNDcyNjU2IDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5NjA5NCAxLjE2NDA2MyAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjUgOC4wMTE3MTggMi4wNjI1IDEwLjU5NzY1Ni0xLjE2NDA2MmwxNC40NzY1NjItMTguMDQ2ODc2YzIuNjA1NDY5LTMuMjUgMi4wODIwMzItNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDM3Ljk5MjE4OCAzOTQuODMyMDMxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg4LTIuMDgyMDMxLTEwLjU5NzY1NyAxLjE2NDA2M2wtMTQuNDc2NTYyIDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5MjE4NyAxLjE2NDA2MiAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjEwOTQgOC4wMTE3MTkgMi4wNjI1IDEwLjYwMTU2My0xLjE2NDA2M2wxNC40NzI2NTYtMTguMDQ2ODc0YzIuNjA1NDY5LTMuMjQ2MDk0IDIuMDgyMDMxLTcuOTkyMTg4LTEuMTY0MDYyLTEwLjU5NzY1N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNi40NzI2NTYgMzYyLjk4NDM3NWMtMy4yNS0yLjYwNTQ2OS03Ljk5MjE4Ny0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTE0LjQ3NjU2MiAxOC4wNTA3ODFjLTIuNjA1NDY5IDMuMjQ2MDkzLTIuMDgyMDMyIDcuOTkyMTg3IDEuMTY0MDYyIDEwLjU5NzY1NiAzLjI2OTUzMSAyLjYyMTA5NCA4LjAxMTcxOSAyLjA2MjUgMTAuNTk3NjU2LTEuMTY0MDYzbDE0LjQ3MjY1Ni0xOC4wNDY4NzRjMi42MDkzNzYtMy4yNSAyLjA4NTkzOC03Ljk5NjA5NC0xLjE2MDE1Ni0xMC42MDE1NjN6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01MDQuNDYwOTM4IDBjLTE3LjI1MzkwNyAwLTQ2Ni41OTM3NSAwLTQ5Ni45MjE4NzYgMC00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzY3MTg4LTcuNTM5MDYyIDcuNTM5MDYydjQ5My44NjcxODhjMCA0LjE3MTg3NSAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MiA3LjUzOTA2Mmg0MjIuMjEwOTM4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC00LjE2NDA2Mi0zLjM3ODkwNi03LjU0Mjk2OS03LjUzOTA2Mi03LjU0Mjk2OWgtNDE0LjY3MTg3NXYtMTQzLjg4MjgxMmgxNC4zNjcxODd2OTAuOTU3MDMxYzAgNC4xNjQwNjIgMy4zNzUgNy41MzkwNjIgNy41MzkwNjMgNy41MzkwNjJoMTI2LjQwMjM0NGM0LjE2MDE1NiAwIDcuNTM5MDYyLTMuMzc1IDcuNTM5MDYyLTcuNTM5MDYyIDAtNC4xNjAxNTYtMy4zNzg5MDYtNy41MzkwNjItNy41MzkwNjItNy41MzkwNjJoLTExOC44NjMyODF2LTgzLjQxNzk2OWgxNC41MzkwNjJ2MjYuMTIxMDkzYzAgNC4xNjQwNjMgMy4zNzUgNy41MzkwNjMgNy41MzkwNjIgNy41MzkwNjMgNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM3NSA3LjUzOTA2My03LjUzOTA2M3YtMjYuMTIxMDkzaDE1My43MTA5Mzd2ODMuNDE3OTY5aC0zNC4zMDg1OTNjLTQuMTYwMTU3IDAtNy41MzkwNjMgMy4zNzg5MDYtNy41MzkwNjMgNy41MzkwNjIgMCA0LjE2NDA2MiAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MyA3LjUzOTA2MmgyODEuNDcyNjU2YzQuMTY0MDYzIDAgNy41MzkwNjMtMy4zNzUgNy41MzkwNjMtNy41MzkwNjJ2LTkwLjk1NzAzMWgxNC4zNjcxODd2MTQzLjg4MjgxMmgtMzcuMDE1NjI1Yy00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzc4OTA3LTcuNTM5MDYyIDcuNTQyOTY5IDAgNC4xNzE4NzUgMy4zNzg5MDYgNy41MzkwNjIgNy41MzkwNjIgNy41MzkwNjJoNDQuNTU0Njg4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC01My44NjMyODEgMC00MzcuNDk2MDk0IDAtNDkzLjg2NzE4OCAwLTQuMTcxODc0LTMuMzc4OTA2LTcuNTM5MDYyLTcuNTM5MDYyLTcuNTM5MDYyem0tNDQ1LjM5ODQzOCAzMzQuOTAyMzQ0Yy0xMy43MTQ4NDQgMC0zMC4wNTg1OTQgMC00My45ODQzNzUgMCAwLTkuNTUwNzgyIDAtMTYuMjU3ODEzIDAtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2Mmg0My45ODQzNzV6bTAtNDEuODcxMDk0aC00My45ODQzNzV2LTI2Ljc3NzM0M2g0My45ODQzNzV6bTAtNDEuODU5Mzc0Yy05LjcwMzEyNSAwLTMzLjkxNzk2OSAwLTQzLjk4NDM3NSAwdi0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMTUuMDc4MTI1LTI2Ljc4MTI1aDM2My43MTg3NXYyNi43ODEyNWgtMzYzLjcxODc1em0wIDgzLjcxODc1aDI4OS4zMDA3ODFjNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM2NzE4NyA3LjUzOTA2My03LjUzOTA2MyAwLTQuMTYwMTU2LTMuMzc1LTcuNTM5MDYyLTcuNTM5MDYzLTcuNTM5MDYyLTEuMjM0Mzc1IDAtMjgyLjk0MTQwNiAwLTI4OS4zMDA3ODEgMHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1aC00NC4yNTc4MTNjLTQuMTY0MDYyIDAtNy41MzkwNjIgMy4zNzg5MDYtNy41MzkwNjIgNy41MzkwNjIgMCA0LjE3MTg3NiAzLjM3NSA3LjUzOTA2MyA3LjUzOTA2MiA3LjUzOTA2M2g0NC4yNTc4MTN2MjYuNzg5MDYzYy0xMS42MjUgMC0zNTQuNDkyMTg3IDAtMzYzLjcxODc1IDB6bTAgNDEuODcxMDk0aDM2My43MTg3NXYyNi43NzczNDNoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2MmgtMzYzLjcxODc1em0wIDQxLjg2NzE4N2gzNjMuNzE4NzV2MjYuNzgxMjVoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2M2gtMzYzLjcxODc1em0wIDY4LjY0ODQzOHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1Yy0zNS42MTcxODcgMC0zMjYuOTUzMTI1IDAtMzYzLjcxODc1IDB6bTM5My4zMzU5MzcgOTguNDk2MDk0aC0xODMuMzI4MTI0di00MC42Njc5NjljMC00LjE2NDA2My0zLjM3NS03LjUzOTA2My03LjUzOTA2My03LjUzOTA2M3MtNy41MzkwNjMgMy4zNzUtNy41MzkwNjMgNy41MzkwNjN2NDAuNjY3OTY5aC0yNi4xNDA2MjR2LTgzLjQxNDA2M2gyNi4xNDA2MjR2MTIuNTg1OTM3YzAgNC4xNjc5NjkgMy4zNzUgNy41MzkwNjMgNy41MzkwNjMgNy41MzkwNjNzNy41MzkwNjMtMy4zNzEwOTQgNy41MzkwNjMtNy41MzkwNjN2LTEyLjU4OTg0M2gxNTMuNzEwOTM3djI2LjEyMTA5M2MwIDQuMTY0MDYzIDMuMzc1IDcuNTM5MDYzIDcuNTM5MDYzIDcuNTM5MDYzIDQuMTY0MDYyIDAgNy41MzkwNjItMy4zNzUgNy41MzkwNjItNy41MzkwNjN2LTI2LjEyMTA5M2gxNC41MzkwNjJ6bTI5LjQ0NTMxMy05OC40OTYwOTRjLTEzLjc4OTA2MyAwLTI5Ljg2NzE4NyAwLTQzLjk4NDM3NSAwdi0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2M2g0My45ODQzNzV6bTAtNDEuODY3MTg4aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMC00MS44NTkzNzVoLTQzLjk4NDM3NXYtMjYuNzg5MDYyaDQzLjk4NDM3NXptMC00MS44NzEwOTRoLTQzLjk4NDM3NXYtMjYuNzc3MzQzaDQzLjk4NDM3NXptMC00MS44NTkzNzRoLTQzLjk4NDM3NXYtMjYuNzg5MDYzaDQzLjk4NDM3NXptMC00MS44NjcxODhoLTQzLjk4NDM3NXYtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",gae="PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01Ni44MzggMWgtNDkuNjc2Yy0zLjM5OCAwLTYuMTYyIDIuNzY0LTYuMTYyIDYuMTYyIDAgLjY2NS4xMDYgMS4zMi4zMTYgMS45NDlsLjU1OCAxLjY3NmMuODQxIDIuNTIgMy4xOSA0LjIxMyA1Ljg0NyA0LjIxM2g0LjM4NGwxLjUwNiAxMy41NTJjLjI4MiAyLjUzNiAyLjQxOCA0LjQ0OCA0Ljk2OSA0LjQ0OGgyNi44NGMyLjU1MSAwIDQuNjg4LTEuOTEyIDQuOTY5LTQuNDQ4bDEuNTA2LTEzLjU1Mmg0LjM4NGMyLjY1NyAwIDUuMDA2LTEuNjkzIDUuODQ2LTQuMjE0bC41NTgtMS42NzRjLjIxMS0uNjMuMzE3LTEuMjg1LjMxNy0xLjk1IDAtMy4zOTgtMi43NjQtNi4xNjItNi4xNjItNi4xNjJ6bS0zMi44MzggMzBoLTR2LThjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptMTAgMGgtNHYtOGMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyem0xMCAwaC00di04YzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTQuNDAyLTIuNjY4Yy0uMTQ3IDEuMzI0LTEuMTM4IDIuMzYzLTIuNDAyIDIuNjExdi03Ljk0M2MwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY4aC0ydi04YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0djhoLTJ2LThjMC0yLjIwNi0xLjc5NC00LTQtNHMtNCAxLjc5NC00IDR2Ny45NDJjLTEuMjY0LS4yNDgtMi4yNTQtMS4yODctMi40MDItMi42MTFsLTEuNDgxLTEzLjMzMWgzNS43NjZ6bTEyLjM4NC0xOS44NTMtLjU1OCAxLjY3NWMtLjU2NyAxLjcwMi0yLjE1NCAyLjg0Ni0zLjk0OSAyLjg0NmgtNDguNTU4Yy0xLjc5NCAwLTMuMzgxLTEuMTQ0LTMuOTQ5LTIuODQ2bC0uNTU4LTEuNjc2Yy0uMTQyLS40MjQtLjIxNC0uODY3LS4yMTQtMS4zMTYgMC0yLjI5NSAxLjg2Ny00LjE2MiA0LjE2Mi00LjE2Mmg0OS42NzZjMi4yOTUgMCA0LjE2MiAxLjg2NyA0LjE2MiA0LjE2MiAwIC40NDktLjA3Mi44OTItLjIxNCAxLjMxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTUgNWgtNmMtMS4xMDMgMC0yIC44OTctMiAydjJjMCAxLjEwMy44OTcgMiAyIDJoNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTJjMC0xLjEwMy0uODk3LTItMi0yem0tNiA0di0yaDZsLjAwMSAyeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDcgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgOWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDloMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NCA0MHYtMWgtMWMtLjExOSAwLTEuNzk5LjA0Mi0zLjE3OSAyLjAzNS0uMDQ2LS4wNjMtLjA5Mi0uMTMxLS4xMzgtLjE5My0uOTAzLTEuMjMtMS42ODMtMi4yOTMtMS42ODMtNC44NDJ2LTFoLTFjLS4xMzkgMC0yLjg5My4wNTctNC42MjQgMy4yNzgtMi4wNTMtMy4yMjMtNS4zMjgtMy4yNzgtNS4zNzYtMy4yNzhoLTF2MWMwIDIuNTU5LS43ODQgMy42MzMtMS42OTIgNC44NzctLjA0LjA1NS0uMDguMTE0LS4xMi4xNjktMS4zODMtMi4wMDQtMy4wNjktMi4wNDYtMy4xODgtMi4wNDZoLTF2MWMwIDIuNTQzLS45OTUgMy44MzMtMi4xNDcgNS4zMjctMS4zMzcgMS43MzMtMi44NTMgMy42OTctMi44NTMgNy42NzMgMCA2LjA3NSAzLjkyNSAxMCAxMCAxMGgxNGM2LjA3NSAwIDEwLTMuOTI1IDEwLTEwIDAtMy45NzYtMS41MTYtNS45NC0yLjg1My03LjY3My0xLjE1Mi0xLjQ5NC0yLjE0Ny0yLjc4NC0yLjE0Ny01LjMyN3ptLTE5IDE3YzAtMi4zOTYgMS4zNTgtMy43MTkgMi42NzItNSAuODUxLS44MyAxLjcyNC0xLjY4IDIuMTE1LTIuNzczLjU2LjMxIDEuMjEzIDEuMDQzIDEuMjEzIDIuNzczdjNoMnYtMWMwLTEuOTg2IDEuMjM5LTIuNjYgMi4xNDctMi44ODcuMzU1IDEuMzA0IDEuMjk1IDIuMjQ0IDIuMTQ2IDMuMDk0LjkxNi45MTYgMS43MDcgMS43MDcgMS43MDcgMi43OTMgMCAxLjM4My0xLjQ2MyA0LTcgNHMtNy0yLjYxNy03LTR6bTE0IDRoLS4xMDJjMS41NjItMS4yOCAyLjEwMi0yLjg5OSAyLjEwMi00IDAtMS45MTQtMS4yMTgtMy4xMzItMi4yOTMtNC4yMDctLjkxNi0uOTE2LTEuNzA3LTEuNzA3LTEuNzA3LTIuNzkzdi0xaC0xYy0uODkyIDAtMi4xOTMuMjc4LTMuMjQ1IDEuMDg5LS42ODItMi4zOTUtMi42MjgtMy4wODktMy43NTUtMy4wODloLTF2MWMwIC44NDUtLjY1NSAxLjUyNi0xLjcyNCAyLjU2OC0xLjQ2IDEuNDIzLTMuMjc2IDMuMTkzLTMuMjc2IDYuNDMyIDAgMS4xMDEuNTQgMi43MiAyLjEwMiA0aC0uMTAyYy0zLjg2OCAwLTgtMi4xMDItOC04IDAtMy4yOTQgMS4xODMtNC44MjggMi40MzYtNi40NTIgMS4wNTUtMS4zNjcgMi4xMzktMi43NzIgMi40NjUtNS4wODQuODkxLjczOSAyLjA5OSAyLjY0MiAyLjA5OSA3LjUzNmgyYzAtMi41Ni0uMzIzLTQuNDYxLS44MDMtNS44NzguMjI4LS4zNjYuNDY5LS43MTMuNzI2LTEuMDY2Ljg0Ni0xLjE1OSAxLjc5MS0yLjQ1MyAyLjAyMy00Ljg3OSAxLjQ1Ni40NTMgNC4wNTQgMi4wNjkgNC4wNTQgNy44MjNoMmMwLTEuNjMtLjE5MS0yLjk5LS41MDYtNC4xMzIuNjM3LTIuMjczIDEuNzYxLTMuMjE4IDIuNTY3LTMuNjAxLjIzOCAyLjM0NiAxLjEzNyAzLjU3IDIuMDEgNC43NTkuMjYyLjM1Ny41MDcuNzA4LjczOCAxLjA4LS40ODMgMS40MTgtLjgwOSAzLjMyNC0uODA5IDUuODk0aDJjMC00LjkwNiAxLjIxNC02LjgwNyAyLjA5OC03LjU0Mi4zMjUgMi4zMTUgMS40MTEgMy43MjIgMi40NjYgNS4wOSAxLjI1MyAxLjYyNCAyLjQzNiAzLjE1OCAyLjQzNiA2LjQ1MiAwIDUuODk4LTQuMTMyIDgtOCA4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Tae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQ2NywwSDQ1QzIwLjE4NywwLDAsMjAuMTg3LDAsNDV2NDIyYzAsMjQuODEzLDIwLjE4Nyw0NSw0NSw0NWg0MjJjMjQuODEzLDAsNDUtMjAuMTg3LDQ1LTQ1VjQ1CgkJCUM1MTIsMjAuMTg3LDQ5MS44MTMsMCw0NjcsMHogTTQ4Miw0NjdjMCw4LjI3MS02LjcyOSwxNS0xNSwxNUg0NWMtOC4yNzEsMC0xNS02LjcyOS0xNS0xNVY0NWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1aDQyMgoJCQljOC4yNzEsMCwxNSw2LjcyOSwxNSwxNVY0Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI1Niw4MWMtOTYuNDk1LDAtMTc1LDc4LjUwNS0xNzUsMTc1czc4LjUwNSwxNzUsMTc1LDE3NXMxNzUtNzguNTA1LDE3NS0xNzVTMzUyLjQ5NSw4MSwyNTYsODF6IE0yNTYsNDAxCgkJCWMtNzkuOTUzLDAtMTQ1LTY1LjA0Ny0xNDUtMTQ1czY1LjA0Ny0xNDUsMTQ1LTE0NXMxNDUsNjUuMDQ3LDE0NSwxNDVTMzM1Ljk1Myw0MDEsMjU2LDQwMXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTg3LDIxNmMtMjIuMDU2LDAtNDAsMTcuOTQ0LTQwLDQwYzAsMjIuMDU2LDE3Ljk0NCw0MCw0MCw0MGMyMi4wNTYsMCw0MC0xNy45NDQsNDAtNDBDMjI3LDIzMy45NDQsMjA5LjA1NiwyMTYsMTg3LDIxNnoKCQkJIE0xODcsMjY2Yy01LjUxNCwwLTEwLTQuNDg2LTEwLTEwYzAtNS41MTQsNC40ODYtMTAsMTAtMTBjNS41MTQsMCwxMCw0LjQ4NiwxMCwxMEMxOTcsMjYxLjUxNCwxOTIuNTE0LDI2NiwxODcsMjY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMjUsMjE2Yy0yMi4wNTYsMC00MCwxNy45NDQtNDAsNDBjMCwyMi4wNTYsMTcuOTQ0LDQwLDQwLDQwYzIyLjA1NiwwLDQwLTE3Ljk0NCw0MC00MEMzNjUsMjMzLjk0NCwzNDcuMDU2LDIxNiwzMjUsMjE2egoJCQkgTTMyNSwyNjZjLTUuNTE0LDAtMTAtNC40ODYtMTAtMTBjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwQzMzNSwyNjEuNTE0LDMzMC41MTQsMjY2LDMyNSwyNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",yae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMzYwLDBIMTIwQzk3LjkyLDAuMDI2LDgwLjAyNiwxNy45Miw4MCw0MHYzNjhjMC4wMjQsMTkuMDAxLDEzLjM4OSwzNS4zNzMsMzIsMzkuMlY0ODBoNDh2LTMyaDE2MHYzMmg0OHYtMzIuOAoJCQljMTguNjExLTMuODI3LDMxLjk3Ni0yMC4xOTksMzItMzkuMlY0MEMzOTkuOTc0LDE3LjkyLDM4Mi4wOCwwLjAyNiwzNjAsMHogTTE0NCw0NjRoLTE2di0xNmgxNlY0NjR6IE0zNTIsNDY0aC0xNnYtMTZoMTZWNDY0egoJCQkgTTM4NCw0MDhjMCwxMy4yNTUtMTAuNzQ1LDI0LTI0LDI0SDEyMGMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0VjQwYzAtMTMuMjU1LDEwLjc0NS0yNCwyNC0yNGgyNDBjMTMuMjU1LDAsMjQsMTAuNzQ1LDI0LDI0VjQwOAoJCQl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwxNjBjLTcwLjY5MiwwLTEyOCw1Ny4zMDgtMTI4LDEyOGMwLjA4NCw3MC42NTgsNTcuMzQyLDEyNy45MTYsMTI4LDEyOGM3MC42OTIsMCwxMjgtNTcuMzA4LDEyOC0xMjgKCQkJUzMxMC42OTIsMTYwLDI0MCwxNjB6IE0yNDAsNDAwYy02MS44NTYsMC0xMTItNTAuMTQ0LTExMi0xMTJjMC4wNjYtNjEuODI4LDUwLjE3Mi0xMTEuOTM0LDExMi0xMTJjNjEuODU2LDAsMTEyLDUwLjE0NCwxMTIsMTEyCgkJCVMzMDEuODU2LDQwMCwyNDAsNDAweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAsMTkyYy01My4wMTksMC05Niw0Mi45ODEtOTYsOTZjMC4wNTcsNTIuOTk2LDQzLjAwNCw5NS45NDMsOTYsOTZjNTMuMDE5LDAsOTYtNDIuOTgxLDk2LTk2UzI5My4wMTksMTkyLDI0MCwxOTJ6CgkJCSBNMjQwLDM2OGMtNDQuMTgzLDAtODAtMzUuODE3LTgwLTgwYzAuMDQ5LTQ0LjE2MywzNS44MzctNzkuOTUyLDgwLTgwYzQ0LjE4MywwLDgwLDM1LjgxNyw4MCw4MEMzMjAsMzMyLjE4MywyODQuMTgzLDM2OCwyNDAsMzY4CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQwLDMyYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMyOTYsNTcuMDcyLDI3MC45MjgsMzIsMjQwLDMyeiBNMjQwLDEyOGMtMjIuMDkxLDAtNDAtMTcuOTA5LTQwLTQwYzAuMDI2LTIyLjA4LDE3LjkyLTM5Ljk3NCw0MC00MGMyMi4wOTEsMCw0MCwxNy45MDksNDAsNDAKCQkJUzI2Mi4wOTEsMTI4LDI0MCwxMjh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCw2NGMtMTMuMjU1LDAtMjQsMTAuNzQ1LTI0LDI0czEwLjc0NSwyNCwyNCwyNHMyNC0xMC43NDUsMjQtMjRTMjUzLjI1NSw2NCwyNDAsNjR6IE0yNDAsOTZjLTQuNDE4LDAtOC0zLjU4Mi04LTgKCQkJczMuNTgyLTgsOC04czgsMy41ODIsOCw4UzI0NC40MTgsOTYsMjQwLDk2eiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjM1MiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iNDAwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz4KICAgICAgICA8cmVjdCB4PSIzNTIiIHk9IjQwMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwyNDhjLTIyLjA5MSwwLTQwLDE3LjkwOS00MCw0MGMwLjAyNiwyMi4wOCwxNy45MiwzOS45NzQsNDAsNDBjMjIuMDkxLDAsNDAtMTcuOTA5LDQwLTQwCgkJCUMyODAsMjY1LjkwOSwyNjIuMDkxLDI0OCwyNDAsMjQ4eiBNMjQwLDMxMmMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNHMyNCwxMC43NDUsMjQsMjRTMjUzLjI1NSwzMTIsMjQwLDMxMnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDgsMjgwSDE2Yy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThTNTIuNDE4LDI4MCw0OCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjY1NiwyMjYuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNjktOC4yNDMtMi45ODEtMTEuMzEyLDAuMTk3Yy0yLjk5NCwzLjEtMi45OTQsOC4wMTUsMCwxMS4xMTVsMjQsMjQKCQkJYzMuMTc4LDMuMDY5LDguMjQzLDIuOTgxLDExLjMxMi0wLjE5N0M1Ni42NSwyMzQuMzU5LDU2LjY1LDIyOS40NDQsNTMuNjU2LDIyNi4zNDR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjQ2LDMzOC4zNDRjLTMuMS0yLjk5NS04LjAxNi0yLjk5NS0xMS4xMTYsMGwtMjQsMjRjLTMuMTc4LDMuMDctMy4yNjYsOC4xMzQtMC4xOTYsMTEuMzEyczguMTM0LDMuMjY2LDExLjMxMiwwLjE5NgoJCQljMC4wNjctMC4wNjQsMC4xMzItMC4xMywwLjE5Ni0wLjE5NmwyNC0yNEM1Ni43MjYsMzQ2LjQ3OCw1Ni42MzgsMzQxLjQxNCw1My40NiwzMzguMzQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjQsMjgwaC0zMmMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGgzMmM0LjQxOCwwLDgtMy41ODIsOC04UzQ2OC40MTgsMjgwLDQ2NCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2MS40NiwyMDIuMzQ0Yy0zLjEtMi45OTQtOC4wMTUtMi45OTQtMTEuMTE2LDBsLTI0LDI0Yy0zLjEyNCwzLjEyNS0zLjEyMyw4LjE5LDAuMDAyLDExLjMxNAoJCQljMS41LDEuNDk5LDMuNTM0LDIuMzQyLDUuNjU0LDIuMzQyYzIuMTIyLDAsNC4xNTYtMC44NDQsNS42NTYtMi4zNDRsMjQtMjRDNDY0LjcyNiwyMTAuNDc4LDQ2NC42MzgsMjA1LjQxNCw0NjEuNDYsMjAyLjM0NHoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjY1NiwzNjIuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNy04LjI0Mi0yLjk4Mi0xMS4zMTIsMC4xOTZjLTIuOTk1LDMuMS0yLjk5NSw4LjAxNiwwLDExLjExNmwyNCwyNAoJCQljMy4xNzgsMy4wNyw4LjI0MiwyLjk4MiwxMS4zMTItMC4xOTZDNDY0LjY1MSwzNzAuMzYsNDY0LjY1MSwzNjUuNDQ0LDQ2MS42NTYsMzYyLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Dae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTEyIDU2LjE2NDA2MmMwLTEyLjc5Njg3NC0xMC40MDYyNS0yMy4yMDMxMjQtMjMuMjAzMTI1LTIzLjIwMzEyNGgtNDkuOTY4NzV2LTE1LjA0Njg3NmMwLTkuODc4OTA2LTguMDM1MTU2LTE3LjkxNDA2Mi0xNy45MTQwNjMtMTcuOTE0MDYyaC0xMDMuMDg5ODQzYy05Ljg3ODkwNyAwLTE3LjkxNDA2MyA4LjAzOTA2Mi0xNy45MTQwNjMgMTcuOTE0MDYydjE1LjA0Njg3NmgtODcuODE2NDA2di0xNS4wNDY4NzZjMC05Ljg3ODkwNi04LjAzOTA2Mi0xNy45MTQwNjItMTcuOTE3OTY5LTE3LjkxNDA2MmgtMTAzLjA4OTg0M2MtOS44Nzg5MDcgMC0xNy45MTQwNjMgOC4wMzkwNjItMTcuOTE0MDYzIDE3LjkxNDA2MnYxNS4wNDY4NzZoLTQ5Ljk2ODc1Yy0xMi43OTY4NzUgMC0yMy4yMDMxMjUgMTAuNDA2MjUtMjMuMjAzMTI1IDIzLjIwMzEyNHY0OS41YzAgNi4wNTA3ODIgMi4zMjgxMjUgMTEuNTYyNSA2LjEzNjcxOSAxNS42OTkyMTktMy44MDg1OTQgNC4xMzI4MTMtNi4xMzY3MTkgOS42NDg0MzgtNi4xMzY3MTkgMTUuNjk5MjE5djMwNS44MDg1OTRjMCAxMi43OTI5NjggMTAuNDA2MjUgMjMuMjAzMTI1IDIzLjIwMzEyNSAyMy4yMDMxMjVoMi4zNzg5MDZ2MjIuNDUzMTI1YzAgMTIuNzgxMjUgMTAuMzk4NDM4IDIzLjE3NTc4MSAyMy4xNzk2ODggMjMuMTc1NzgxaDIzMi42MTcxODdjNC4xNDQ1MzIgMCA3LjUwMzkwNi0zLjM1OTM3NSA3LjUwMzkwNi03LjUgMC00LjE0NDUzMS0zLjM1OTM3NC03LjUwMzkwNi03LjUwMzkwNi03LjUwMzkwNmgtMjMyLjYxNzE4N2MtNC41MDc4MTMgMC04LjE3MTg3NS0zLjY2Nzk2OS04LjE3MTg3NS04LjE3MTg3NXYtMjIuNDUzMTI1aDQzMC44MjAzMTJ2MjIuNDUzMTI1YzAgNC41MDc4MTItMy42NjQwNjIgOC4xNzE4NzUtOC4xNzE4NzUgOC4xNzE4NzVoLTE0Ny4xMjVjLTQuMTQ4NDM3IDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41MDM5MDYgMCA0LjE0MDYyNSAzLjM1NTQ2OSA3LjUgNy41MDM5MDYgNy41aDE0Ny4xMjVjMTIuNzgxMjUgMCAyMy4xNzk2ODgtMTAuMzk0NTMxIDIzLjE3OTY4OC0yMy4xNzU3ODF2LTIyLjQ1MzEyNWgyLjM3ODkwNmMxMi43OTI5NjkgMCAyMy4yMDMxMjUtMTAuNDEwMTU3IDIzLjIwMzEyNS0yMy4yMDMxMjV2LTMwNS44MDg1OTRjMC02LjA1MDc4MS0yLjMzMjAzMS0xMS41NjY0MDYtNi4xMzY3MTktMTUuNjk5MjE5IDMuODA0Njg4LTQuMTM2NzE5IDYuMTM2NzE5LTkuNjQ4NDM3IDYuMTM2NzE5LTE1LjY5OTIxOXptLTE5Ny4wODU5MzgtMzguMjVjMC0xLjYwNTQ2OCAxLjMwNDY4OC0yLjkwNjI1IDIuOTEwMTU3LTIuOTA2MjVoMTAzLjA4OTg0M2MxLjYwNTQ2OSAwIDIuOTEwMTU3IDEuMzA0Njg4IDIuOTEwMTU3IDIuOTA2MjV2MTUuMDQ2ODc2aC0xMDguOTEwMTU3em0tMjI2LjczODI4MSAwYzAtMS42MDU0NjggMS4zMDQ2ODgtMi45MDYyNSAyLjkxMDE1Ny0yLjkwNjI1aDEwMy4wODk4NDNjMS42MDU0NjkgMCAyLjkxMDE1NyAxLjMwNDY4OCAyLjkxMDE1NyAyLjkwNjI1djE1LjA0Njg3NmgtMTA4LjkxMDE1N3ptNDA4LjgxNjQwNyA0MjQuOTU3MDMyYzAgNC41MTk1MzEtMy42NzU3ODIgOC4xOTkyMTgtOC4xOTUzMTMgOC4xOTkyMThoLTQ2NS41OTM3NWMtNC41MTk1MzEgMC04LjE5NTMxMy0zLjY3OTY4Ny04LjE5NTMxMy04LjE5OTIxOHYtMzA1LjgwODU5NGMwLTQuNTE5NTMxIDMuNjc1NzgyLTguMTk5MjE5IDguMTk1MzEzLTguMTk5MjE5aDQ2NS41OTM3NWM0LjUyMzQzNyAwIDguMTk1MzEzIDMuNjc5Njg4IDguMTk1MzEzIDguMTk5MjE5em0wLTMzNy4yMDcwMzJjMCA0LjUxOTUzMi0zLjY3NTc4MiA4LjE5NTMxMy04LjE5NTMxMyA4LjE5NTMxM2gtNDY1LjU5Mzc1Yy00LjUxOTUzMSAwLTguMTk1MzEzLTMuNjc1NzgxLTguMTk1MzEzLTguMTk1MzEzdi00OS41YzAtNC41MjM0MzcgMy42NzU3ODItOC4xOTkyMTggOC4xOTUzMTMtOC4xOTkyMThoNDY1LjU5Mzc1YzQuNTE5NTMxIDAgOC4xOTUzMTMgMy42NzU3ODEgOC4xOTUzMTMgOC4xOTkyMTh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMDk3NjU2IDU1LjE1MjM0NGMtMTQuMjA3MDMxIDAtMjUuNzYxNzE4IDExLjU1NDY4Ny0yNS43NjE3MTggMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1NDY4NyAyNS43NjE3MTkgMjUuNzYxNzE4IDI1Ljc2MTcxOSAxNC4yMDMxMjUgMCAyNS43NjE3MTktMTEuNTU0Njg3IDI1Ljc2MTcxOS0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU4NTk0LTI1Ljc1NzgxMi0yNS43NjE3MTktMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODcgMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE5LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg4IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOCAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3OS4xNjc5NjkgNTUuMTUyMzQ0Yy0xNC4yMDcwMzEgMC0yNS43NjE3MTkgMTEuNTU0Njg3LTI1Ljc2MTcxOSAyNS43NTc4MTIgMCAxNC4yMDcwMzIgMTEuNTU0Njg4IDI1Ljc2MTcxOSAyNS43NjE3MTkgMjUuNzYxNzE5IDE0LjIwMzEyNSAwIDI1Ljc1NzgxMi0xMS41NTQ2ODcgMjUuNzU3ODEyLTI1Ljc2MTcxOSAwLTE0LjIwMzEyNS0xMS41NTQ2ODctMjUuNzU3ODEyLTI1Ljc1NzgxMi0yNS43NTc4MTJ6bTAgMzYuNTE1NjI1Yy01LjkzMzU5NCAwLTEwLjc1NzgxMy00LjgyNDIxOS0xMC43NTc4MTMtMTAuNzUzOTA3IDAtNS45Mjk2ODcgNC44MjQyMTktMTAuNzU3ODEyIDEwLjc1NzgxMy0xMC43NTc4MTIgNS45Mjk2ODcgMCAxMC43NTM5MDYgNC44MjgxMjUgMTAuNzUzOTA2IDEwLjc1NzgxMiAwIDUuOTI5Njg4LTQuODI0MjE5IDEwLjc1MzkwNy0xMC43NTM5MDYgMTAuNzUzOTA3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzMyLjgzMjAzMSA1NS4xNTIzNDRjLTE0LjIwMzEyNSAwLTI1Ljc1NzgxMiAxMS41NTQ2ODctMjUuNzU3ODEyIDI1Ljc1NzgxMiAwIDE0LjIwNzAzMiAxMS41NTQ2ODcgMjUuNzYxNzE5IDI1Ljc1NzgxMiAyNS43NjE3MTkgMTQuMjA3MDMxIDAgMjUuNzYxNzE5LTExLjU1NDY4NyAyNS43NjE3MTktMjUuNzYxNzE5IDAtMTQuMjAzMTI1LTExLjU1NDY4OC0yNS43NTc4MTItMjUuNzYxNzE5LTI1Ljc1NzgxMnptMCAzNi41MTU2MjVjLTUuOTI5Njg3IDAtMTAuNzUzOTA2LTQuODI0MjE5LTEwLjc1MzkwNi0xMC43NTM5MDcgMC01LjkyOTY4NyA0LjgyNDIxOS0xMC43NTc4MTIgMTAuNzUzOTA2LTEwLjc1NzgxMiA1LjkzMzU5NCAwIDEwLjc1NzgxMyA0LjgyODEyNSAxMC43NTc4MTMgMTAuNzU3ODEyIDAgNS45Mjk2ODgtNC44MjQyMTkgMTAuNzUzOTA3LTEwLjc1NzgxMyAxMC43NTM5MDd6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDUuOTAyMzQ0IDU1LjE1MjM0NGMtMTQuMjAzMTI1IDAtMjUuNzYxNzE5IDExLjU1NDY4Ny0yNS43NjE3MTkgMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1ODU5NCAyNS43NjE3MTkgMjUuNzYxNzE5IDI1Ljc2MTcxOSAxNC4yMDcwMzEgMCAyNS43NjE3MTgtMTEuNTU0Njg3IDI1Ljc2MTcxOC0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU0Njg3LTI1Ljc1NzgxMi0yNS43NjE3MTgtMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODggMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE4LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg3IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOSAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzNC43NDIxODggMTcxLjkzNzVoLTIxOC4xNDg0MzhjLTQuMTQ0NTMxIDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41IDAgNC4xNDQ1MzEgMy4zNTkzNzUgNy41MDM5MDYgNy41MDM5MDYgNy41MDM5MDZoMjE4LjE0ODQzOGMxLjQzNzUgMCAyLjYwNTQ2OCAxLjE3MTg3NSAyLjYwNTQ2OCAyLjYwOTM3NXYxOS44NTE1NjNjMCAxLjQzNzUtMS4xNjc5NjggMi42MDkzNzUtMi42MDU0NjggMi42MDkzNzVoLTM1Ny40ODQzNzZjLTEuNDM3NSAwLTIuNjA1NDY4LTEuMTcxODc1LTIuNjA1NDY4LTIuNjA5Mzc1di0xOS44NTE1NjNjMC0xLjQzNzUgMS4xNjc5NjgtMi42MDkzNzUgMi42MDU0NjgtMi42MDkzNzVoMTA0LjI2OTUzMmM0LjE0NDUzMSAwIDcuNTAzOTA2LTMuMzU5Mzc1IDcuNTAzOTA2LTcuNTAzOTA2IDAtNC4xNDA2MjUtMy4zNTkzNzUtNy41LTcuNTAzOTA2LTcuNWgtMTA0LjI2OTUzMmMtOS43MTA5MzcgMC0xNy42MDkzNzQgNy44OTg0MzgtMTcuNjA5Mzc0IDE3LjYxMzI4MXYxOS44NTE1NjNjMCA5LjcxMDkzNyA3Ljg5ODQzNyAxNy42MTMyODEgMTcuNjA5Mzc0IDE3LjYxMzI4MWgxMC4wMzUxNTd2MTY2LjQ2NDg0NGMwIDE0LjI3NzM0MyAxMS42MTcxODcgMjUuODk0NTMxIDI1Ljg5NDUzMSAyNS44OTQ1MzFoMjg1LjYyNWMxNC4yNzczNDQgMCAyNS44OTQ1MzEtMTEuNjE3MTg4IDI1Ljg5NDUzMS0yNS44OTQ1MzF2LTE2Ni40NjQ4NDRoMTAuMDM1MTU3YzkuNzEwOTM3IDAgMTcuNjEzMjgxLTcuODk4NDM3IDE3LjYxMzI4MS0xNy42MTMyODF2LTE5Ljg1MTU2M2MwLTkuNzEwOTM3LTcuOTAyMzQ0LTE3LjYxMzI4MS0xNy42MTMyODEtMTcuNjEzMjgxem0tMjUuMDQyOTY5IDIyMS41NDI5NjljMCA2LjAwMzkwNi00Ljg4MjgxMyAxMC44ODY3MTktMTAuODg2NzE5IDEwLjg4NjcxOWgtMjg1LjYyNWMtNi4wMDM5MDYgMC0xMC44OTA2MjUtNC44ODI4MTMtMTAuODkwNjI1LTEwLjg4NjcxOXYtMTY2LjQ2NDg0NGgzMDcuNDAyMzQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyLjU0Mjk2OSAyOTQuODU5Mzc1YzIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNiA1LjUyMzQzNy0yLjQyMTg3NWwyMy4wMTE3MTktMjUuMDE1NjI1YzIuODA4NTk0LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDYtMTAuNjAxNTYzLTMuMDUwNzgxLTIuODA0Njg3LTcuNzkyOTY5LTIuNjA5Mzc0LTEwLjYwMTU2My40NDE0MDdsLTIzLjAxMTcxOCAyNS4wMTU2MjVjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA5Mzc2IDcuNzkyOTY4LjQ0MTQwNiAxMC42MDE1NjIgMS40NDE0MDYgMS4zMjQyMTkgMy4yNjE3MTggMS45ODA0NjkgNS4wNzgxMjUgMS45ODA0Njl6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTQuMTg3NSAzMjQuMTM2NzE5YzEuNDQxNDA2IDEuMzI4MTI1IDMuMjYxNzE5IDEuOTgwNDY5IDUuMDc4MTI1IDEuOTgwNDY5IDIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNyA1LjUyMzQzNy0yLjQyMTg3Nmw0Ny4zMTY0MDctNTEuNDI5Njg3YzIuODA0Njg3LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDctMTAuNjA1NDY5LTMuMDUwNzgxLTIuODA0Njg3LTcuNzk2ODc0LTIuNjA1NDY4LTEwLjYwMTU2Mi40NDE0MDZsLTQ3LjMxNjQwNiA1MS40MzM1OTRjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA1NDY5IDcuNzk2ODc1LjQ0MTQwNiAxMC42MDE1NjN6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",dae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMjIuMjUgMTcuMjY2aC0xMTYuNWE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NSA1Ljc1djY3Ljk5NGE1Ljc1NyA1Ljc1NyAwIDAgMCA1Ljc1IDUuNzVoOS44ODNsLTMuMDY4IDQuNDRhNi4wNzkgNi4wNzkgMCAwIDAgMTAgNi45MTJsNy44NDctMTEuMzUyaDY3LjE3Nmw3Ljg0NCAxMS4zNTFhNi4wNzkgNi4wNzkgMCAwIDAgMTAtNi45MTJsLTMuMDY4LTQuNDM5aDkuODgzYTUuNzU3IDUuNzU3IDAgMCAwIDUuNzUzLTUuNzV2LTY3Ljk5NGE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NS01Ljc1em0tMTAyLjU2MSA4OC44NTZhMi41ODIgMi41ODIgMCAwIDEgLTIuMTIyIDEuMTEyIDIuNTggMi41OCAwIDAgMSAtMi4xMjMtNC4wNDZsNC40NDMtNi40MjhoNi4yNzF6bTkyLjg2Ny0yLjkzNGEyLjU4IDIuNTggMCAwIDEgLTIuMTIzIDQuMDQ2IDIuNTg1IDIuNTg1IDAgMCAxIC0yLjEyMy0xLjExMmwtNi40NjgtOS4zNjJoNi4yNzF6bTExLjk0NC0xMi4xNzhhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUgMi4yNWgtMTE2LjVhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUtMi4yNXYtNjcuOTk0YTIuMjUzIDIuMjUzIDAgMCAxIDIuMjUtMi4yNWgxMTYuNWEyLjI1MyAyLjI1MyAwIDAgMSAyLjI1IDIuMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExOC4yNSAyNS4yNjZoLTEwOC41YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1IDEuNzV2NTkuOTk0YTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzVoMTA4LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNTkuOTk0YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1LTEuNzV6bS0xLjc1IDU5Ljk5NGgtMTA1di01Ni40OTRoMTA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4zNzUgNDcuOTIyaDcuM3YxOS45MzJhMS43NSAxLjc1IDAgMCAwIDMuNSAwdi0xOS45MzJoNy4zYTEuNzUgMS43NSAwIDAgMCAwLTMuNWgtMTguMWExLjc1IDEuNzUgMCAwIDAgMCAzLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTc1Ljk2MyA2OC41MjdhMS43NDkgMS43NDkgMCAwIDAgMy4yMyAwbDkuMDQ3LTIxLjY4MWExLjc1IDEuNzUgMCAxIDAgLTMuMjMtMS4zNDZsLTcuNDMyIDE3LjgwOS03LjQzMi0xNy44MDlhMS43NSAxLjc1IDAgMSAwIC0zLjIzIDEuMzQ4eiIvPgogICAgPC9nPgo8L3N2Zz4=",zae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTksMkg1QTMsMywwLDAsMCwyLDVWNTlhMywzLDAsMCwwLDMsM0g1OWEzLDMsMCwwLDAsMy0zVjVBMywzLDAsMCwwLDU5LDJabTEsNTdhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWNUExLDEsMCwwLDEsNSw0SDU5YTEsMSwwLDAsMSwxLDFaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDZBMjYsMjYsMCwxLDAsNTgsMzIsMjYuMDI5LDI2LjAyOSwwLDAsMCwzMiw2Wm0wLDUwQTI0LDI0LDAsMSwxLDU2LDMyLDI0LjAyOCwyNC4wMjgsMCwwLDEsMzIsNTZaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDEwQTIyLDIyLDAsMSwwLDU0LDMyLDIyLjAyNSwyMi4wMjUsMCwwLDAsMzIsMTBabTEwLjE3NSw0LjgxM2MyLjQ2OSw5LjU1LTMuNjEzLDEyLjktNi40MjgsMTMuOTExYTUsNSwwLDAsMC0xLjY1LTEuMjQ3LDExLjM3NCwxMS4zNzQsMCwwLDAsMy4zMTEtNi43OTRjLjI0OS0yLjg0NS0uNzktNS43MDYtMy4wNS04LjUzMUExOS44MjQsMTkuODI0LDAsMCwxLDQyLjE3NSwxNC44MTNaTTM1LDMyYTMsMywwLDEsMS0zLTNBMywzLDAsMCwxLDM1LDMyWk0zMS41ODYsMTIuMDIxYzIuNzY3LDIuODczLDQuMDY2LDUuNzIyLDMuODMxLDguNDdhMTAuMSwxMC4xLDAsMCwxLTMuNzg0LDYuNTMsMTkuNjUyLDE5LjY1MiwwLDAsMC05LjU4NS0xMi4zNDRBMTkuODM4LDE5LjgzOCwwLDAsMSwzMS41ODYsMTIuMDIxWk0yMC4xMiwxNS45NDhhMTcuNjU3LDE3LjY1NywwLDAsMSw5LjU5MiwxMS42MzMsNC45NTEsNC45NTEsMCwwLDAtLjk1Ny42NDcsMTguODg2LDE4Ljg4NiwwLDAsMC0xNC4zMzgtNS43NTJBMjAuMTI2LDIwLjEyNiwwLDAsMSwyMC4xMiwxNS45NDhaTTEyLDMyYTE5Ljg3LDE5Ljg3LDAsMCwxLDEuNDQyLTcuNDE2QTE2LjM4NSwxNi4zODUsMCwwLDEsMjUuODE2LDI4LjI2YTEzLjc5LDEzLjc5LDAsMCwwLTguMDY0LDEuMjkxQTEyLjY0NCwxMi42NDQsMCwwLDAsMTIuMzExLDM1LjQsMTkuOTEzLDE5LjkxMywwLDAsMSwxMiwzMlptMS4xNjQsNi42NmMxLjEzLTMuNTI5LDIuOTgyLTYsNS41Mi03LjM0YTEyLjY0MywxMi42NDMsMCwwLDEsOC41NjEtLjc4N0E0LjkxOSw0LjkxOSwwLDAsMCwyNywzMmMwLC4xMDkuMDI1LjIxMS4wMzIuMzE4LTIuMDA4LjkxNS03Ljk2MSw0LjQyLTguOSwxNC4wNjNBMjAuMDM0LDIwLjAzNCwwLDAsMSwxMy4xNjQsMzguNjZabTYuODc4LDkuMzMzYy4zNjQtOS4yNzksNS41NjMtMTIuNzQzLDcuNTMxLTEzLjcxOWE1LDUsMCwwLDAsMS4wNjUsMS40Yy0uOTU4LDIuNjA5LTIuODUzLDkuNzkxLDIuMTA4LDE2LjI2MUExOS44NTYsMTkuODU2LDAsMCwxLDIwLjA0Miw0Ny45OTNaTTMzLjM4MSw1MS45M2MtNS40LTUuNzMzLTMuOTItMTIuNDk1LTIuOTg4LTE1LjIxOUE0LjkyOSw0LjkyOSwwLDAsMCwzMiwzN2MuMDgxLDAsLjE1Ni0uMDIuMjM1LS4wMjQuNiwzLjA0OSwyLjgyOSw5LjIyMywxMS4xMTEsMTEuNDc1QTE5Ljg1NiwxOS44NTYsMCwwLDEsMzMuMzgxLDUxLjkzWm0xMS45NjYtNS4wNzhjLTguNDQxLTEuNjE3LTEwLjYyMy03LjI5Mi0xMS4xNzQtMTAuMzdhNS4wMDYsNS4wMDYsMCwwLDAsMS4wODQtLjcxOWMxLjg2OCwxLjksNi4yMTUsNS42MzMsMTEuNTIyLDUuNjMzYTExLjIwOCwxMS4yMDgsMCwwLDAsMy4wODUtLjQ1NUEyMC4wNjksMjAuMDY5LDAsMCwxLDQ1LjM0Nyw0Ni44NTJaTTUyLDMyYTE5LjksMTkuOSwwLDAsMS0xLjA3NCw2LjQxNGMtNi41MDcsMy4xMi0xMi40NjItMi4xODQtMTQuNDM4LTQuMjUxYTQuOTI3LDQuOTI3LDAsMCwwLC4zNjktMS4wMjUsMTYuNiwxNi42LDAsMCwwLDEuNzg5LjA5NCwxOC4zMjgsMTguMzI4LDAsMCwwLDEyLjkyNi01LjMzOUEyMCwyMCwwLDAsMSw1MiwzMlptLTE1LjA4OC0uODY4YTQuNzQ1LDQuNzQ1LDAsMCwwLS4xNzMtLjY1YzIuOTI2LTEuMTU1LDkuMjM0LTQuNzY2LDcuODE3LTE0LjAyOGEyMC4wNTcsMjAuMDU3LDAsMCwxLDYuMzk0LDkuMkExNi4zNDQsMTYuMzQ0LDAsMCwxLDM2LjkxMiwzMS4xMzJaIi8+CiAgICAgICAgPHBhdGggZD0iTTksMTJBMywzLDAsMSwwLDYsOSwzLDMsMCwwLDAsOSwxMlpNOSw4QTEsMSwwLDEsMSw4LDksMSwxLDAsMCwxLDksOFoiLz4KICAgICAgICA8cGF0aCBkPSJNNTUsNmEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCw1NSw2Wm0wLDRhMSwxLDAsMSwxLDEtMUExLDEsMCwwLDEsNTUsMTBaIi8+CiAgICAgICAgPHBhdGggZD0iTTEyLDU1YTMsMywwLDAsMC0zLTMsMi45NjYsMi45NjYsMCwwLDAtMSwuMTg0VjQ1SDZWNTVhMywzLDAsMCwwLDMsM2g2VjU2SDExLjgxNkEyLjk2NiwyLjk2NiwwLDAsMCwxMiw1NVpNOSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw5LDU2WiIvPgogICAgICAgIDxwYXRoIGQ9Ik01Niw1Mi4xODRBMi45NjYsMi45NjYsMCwwLDAsNTUsNTJhMywzLDAsMCwwLTMsMywyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDV2Mkg1NWEzLDMsMCwwLDAsMy0zVjQ5SDU2Wk01NSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw1NSw1NloiLz4KICAgICAgICA8cmVjdCB4PSIxNyIgeT0iNTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Iae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyOC42MDcgNDI4LjYwNyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00MjMuNzczLDM0My44NzFMNDIzLjc3MywzNDMuODcxYy02LjYxNy00LjU5OS0xMi40NC0xMC4yNDYtMTcuMjQxLTE2LjcxOGMtMTEuNDk0LTEzLjA2MS0yNi4xMjItMjkuMjU3LTUzLjI5LTI5LjI1NwoJCQkJYy0yNy4xNjcsMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtMTAuOTcxLTEyLjUzOS0yNS42LTI5Ljc4LTUzLjI5LTI5Ljc4Yy0yNy42OSwwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1CgkJCQlzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1Yy03LjQ1OC05Ljg1LTE2Ljg4OS0xOC4wMzUtMjcuNjktMjQuMDMzYy01LjE5NC0yLjU5Ny0xMS41MDktMC40OTItMTQuMTA2LDQuNzAyCgkJCQljLTIuNTk3LDUuMTk0LTAuNDkyLDExLjUwOSw0LjcwMiwxNC4xMDZjOC4yMDMsNC45NDQsMTUuNDU3LDExLjMxNCwyMS40MiwxOC44MDhjMTIuMDE2LDE0LjEwNiwyNi4xMjIsMjkuNzgsNTMuMjksMjkuNzgKCQkJCXM0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4YzEyLjAxNi0xNC4xMDYsMTkuODUzLTIyLjQ2NSwzNy42MTYtMjIuNDY1czI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1CgkJCQljMTAuOTcxLDEyLjUzOSwyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4YzI3LjY5LDAsNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NQoJCQkJYzE3Ljc2MywwLDI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1YzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDM1My41OTQsNDI4LjY3OSwzNDcuMDQ1LDQyMy43NzMsMzQzLjg3MXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDIzLjc3MywyNjUuNTAzTDQyMy43NzMsMjY1LjUwM2MtNi42MTctNC41OTktMTIuNDQtMTAuMjQ2LTE3LjI0MS0xNi43MThjLTExLjQ5NC0xMy4wNjEtMjYuMTIyLTI5LjI1Ny01My4yOS0yOS4yNTcKCQkJCWMtMjcuMTY3LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjVzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1CgkJCQljLTEwLjk3MS0xMi41MzktMjUuNi0yOS43OC01My4yOS0yOS43OGMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NQoJCQkJcy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJcy0wLjQ5MiwxMS41MDksNC43MDIsMTQuMTA2YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NWM0LjkwNSwzLjE3NCwxMS40NTUsMS43NzEsMTQuNjI5LTMuMTM1CgkJCQlDNDMwLjA4MiwyNzUuMjI3LDQyOC42NzksMjY4LjY3Nyw0MjMuNzczLDI2NS41MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyMy43NzMsMTgxLjkxMUw0MjMuNzczLDE4MS45MTFjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhzLTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjVzLTI1LjYtMjkuNzgtNTMuMjktMjkuNzgKCQkJCWMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMmMtMi41OTcsNS4xOTQtMC40OTIsMTEuNTA5LDQuNzAyLDE0LjEwNgoJCQkJYzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4czQxLjI3My0xNS42NzMsNTMuMjktMjkuNzgKCQkJCWMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NXMyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQljMjcuNjksMCw0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4czE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDE5MS42MzUsNDI4LjY3OSwxODUuMDg1LDQyMy43NzMsMTgxLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNS44MTQsODIuMTI0YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NmM0LjkwNSwzLjE3NCwxMS40NTUsMS43NywxNC42MjktMy4xMzUKCQkJCWMzLjE3NC00LjkwNSwxLjc3MS0xMS40NTUtMy4xMzUtMTQuNjI5aDBjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1cy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NQoJCQkJYy0xMC45NzEtMTIuNTM5LTI1LjYtMjkuNzgtNTMuMjktMjkuNzhjLTI3LjY5LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjUKCQkJCVM1My44OCw5OS44ODcsNDIuOTA4LDg3LjM0OGMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJUzAuNjIxLDc5LjUyNyw1LjgxNCw4Mi4xMjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",wae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwOCA1MDgiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxMzkuMyIgd2lkdGg9IjE2LjQiIGhlaWdodD0iMzguMiIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTA0LjEsMjEuNCA4OC45LDI3LjcgOTgsNDkuOCAxMTMuMiw0My41IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNy41LDg5LjQgMjEuMywxMDQuNiA0My4zLDExMy43IDQ5LjUsOTguNSAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkwLjksMjEuNCAxODEuOCw0My41IDE5Ni45LDQ5LjggMjA2LDI3LjcgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQzLjMsMTgyLjcgMjEuMywxOTEuOCAyNy41LDIwNyA0OS41LDE5Ny45IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNjcuNCw4OS40IDI0NS40LDk4LjUgMjUxLjcsMTEzLjcgMjczLjcsMTA0LjYgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI0NiwzNy42IDIxOS4xLDY0LjYgMjMwLjcsNzYuMyAyNTcuNiw0OS4yIAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2NC4zLDIyMC4xIDM3LjQsMjQ3LjEgNDksMjU4LjggNzUuOSwyMzEuNyAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQuMywxNDAgMCwxNDAgMCwxNTYuNCAxNC4zLDE1Ni40IDM4LjEsMTU2LjQgMzguMSwxNDAgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU5LjEsNDcuNyA0OSwzNy42IDM3LjQsNDkuMiA2NC4zLDc2LjMgNzUuOSw2NC42IAkJIi8+CiAgICAgICAgPHBhdGggZD0iTTMxOS41LDE3Mi45djE2LjVjNDkuNywwLDkwLjEsNDAuNiw5MC4xLDkwLjZINDI2QzQyNi4xLDIyMC45LDM3OC4zLDE3Mi45LDMxOS41LDE3Mi45eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjYuMSwyOTUuNWMwLjYtNS42LDAuOS0xMC42LDAuOS0xNS42YzAtODEuNy02Ni4yLTE0OC4yLTE0Ny41LTE0OC4yYy0yOC40LDAtNTUuNSw4LjItNzguNywyM2MwLjItMi4yLDAuNS00LjMsMC41LTYuNQoJCQljMC01Mi00Mi4xLTk0LjMtOTMuOC05NC4zcy05My44LDQyLjMtOTMuOCw5NC4zYzAsMzAuNiwxNC45LDU5LjEsMzkuNSw3Ni43Yy0xNS40LDE3LjItMjUuNSwzOS4zLTI3LjMsNjMuNwoJCQljLTM3LDQtNjUuOCwzNS41LTY1LjgsNzMuN2MwLDQwLjksMzMuMSw3NC4xLDczLjcsNzQuMWgzNjAuNWM0MC43LDAsNzMuNy0zMy4yLDczLjctNzQuMUM1MDgsMzMzLjcsNDkxLjQsMzA3LjcsNDY2LjEsMjk1LjV6CgkJCSBNNzAsMTQ4LjJjMC00Mi45LDM0LjctNzcuOCw3Ny40LTc3LjhjNDIuNywwLDc3LjQsMzQuOSw3Ny40LDc3LjhjMCw2LjktMC45LDEzLjktMi43LDIwLjZjLTguMyw3LjQtMTUuNywxNS41LTIyLjEsMjQuNAoJCQljLTMzLjEtOS4xLTY4LjctMS4zLTk0LjksMjAuMUM4My4zLDE5OSw3MCwxNzQuNSw3MCwxNDguMnogTTQzNC4zLDQxOS45SDczLjdjLTMxLjYsMC01Ny40LTI1LjktNTcuNC01Ny42CgkJCWMwLTMxLjgsMjUuNy01Ny42LDU3LjQtNTcuNmg4LjJ2LTguMmMwLTQ5LjksNDAuNC05MC42LDkwLjEtOTAuNmMxNC40LDAsMzQuNyw2LjgsMzQuNyw2LjhzMzguNy02NC40LDExMi44LTY0LjQKCQkJYzcyLjMsMCwxMzEuMSw1OS4xLDEzMS4xLDEzMS43YzAsMTMuOS0yLjYsMjYuMS0yLjYsMjYuMWw2LjIsMi4zYzIyLjMsOC40LDM3LjMsMzAuMSwzNy4zLDUzLjkKCQkJQzQ5MS42LDM5NCw0NjUuOSw0MTkuOSw0MzQuMyw0MTkuOXoiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg4LjQsNDU1LjIgNDcuNSw0OTYuNCA1OS4xLDUwOCAxMDAsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE3OC42LDQ1NS4yIDEzNy42LDQ5Ni40IDE0OS4yLDUwOCAxOTAuMSw0NjYuOCAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjY4LjcsNDU1LjIgMjI3LjcsNDk2LjQgMjM5LjMsNTA4IDI4MC4zLDQ2Ni44IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzNTguOCw0NTUuMiAzMTcuOSw0OTYuNCAzMjkuNCw1MDggMzcwLjQsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ0OC45LDQ1NS4yIDQwOCw0OTYuNCA0MTkuNiw1MDggNDYwLjUsNDY2LjggCQkiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Cae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgNTVoLTV2LTQ0YTMuMDA5IDMuMDA5IDAgMCAwIDMtM3YtNWExIDEgMCAwIDAgLTEtMWgtNTJhMSAxIDAgMCAwIC0xIDF2NWEzLjAwOSAzLjAwOSAwIDAgMCAzIDN2NDRoLTVhMSAxIDAgMCAwIC0xIDF2NWExIDEgMCAwIDAgMSAxaDU4YTEgMSAwIDAgMCAxLTF2LTVhMSAxIDAgMCAwIC0xLTF6bS01NC00N3YtNGg1MHY0YTEgMSAwIDAgMSAtMSAxaC00OGExIDEgMCAwIDEgLTEtMXptNDcgM3Y0NGgtNDR2LTQ0em02IDQ5aC01NnYtM2g1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMTJoLTQwYTEgMSAwIDAgMCAtMSAxdjQwYTEgMSAwIDAgMCAxIDFoNDBhMSAxIDAgMCAwIDEtMXYtNDBhMSAxIDAgMCAwIC0xLTF6bS0yMSA0MGgtMTh2LTE5aDE4em0wLTIxaC0xOHYtMTdoMTh6bTIwIDIxaC0xOHYtMTloMTh6bTAtMjFoLTE4di0xN2gxOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTUuMTcyIDE4aDUuNjU3djJoLTUuNjU3eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcwNyAtLjcwNyAuNzA3IC43MDcgLTguMTYzIDE4LjI5MykiLz4KICAgICAgICA8cGF0aCBkPSJtMTQuMTM2IDIwLjVoMTIuNzI4djJoLTEyLjcyOHoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC05LjE5OCAyMC43OTMpIi8+CiAgICA8L2c+Cjwvc3ZnPg==",hae={"Alarm Systems":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSItMzEgMCA1MTEgNTExLjk5OTk4IiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzUuMzI4MTI1IDExOS4xNjc5NjljMjAuODM5ODQ0IDguMDU4NTkzIDM1LjY0NDUzMSAyMS4xNDg0MzcgNDQuNjMyODEzIDQxLjUwMzkwNiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzEuNjg3NSAxMjguNTg1OTM4YzE4Ljk4MDQ2OSA3LjMzOTg0MyAzMS4zODI4MTIgMTguODMyMDMxIDM5LjAzNTE1NiAzNi4xNjQwNjIgMS42Njc5NjkgMy43NzM0MzggNS4zNjMyODIgNi4wMjM0MzggOS4yNDIxODggNi4wMjM0MzggMS4zNjMyODEgMCAyLjc0NjA5NC0uMjc3MzQ0IDQuMDcwMzEyLS44NjMyODIgNS4xMDU0NjktMi4yNTM5MDYgNy40MTQwNjMtOC4yMTQ4NDQgNS4xNjAxNTYtMTMuMzE2NDA2LTkuODIwMzEyLTIyLjI1LTI2LjI1LTM3LjU3NDIxOS01MC4yMjY1NjItNDYuODQzNzUtNS4xOTkyMTktMi4wMTE3MTktMTEuMDQ2ODc1LjU3NDIxOS0xMy4wNTg1OTQgNS43NzczNDQtMi4wMTE3MTggNS4yMDMxMjUuNTc4MTI1IDExLjA0Njg3NSA1Ljc3NzM0NCAxMy4wNTg1OTR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDcuMTA1NDY5IDIzNy44MTI1YzIwLjA4OTg0MyAwIDM2LjQzNzUtMTYuMzQzNzUgMzYuNDM3NS0zNi40MzM1OTQgMC0yMC4wOTM3NS0xNi4zNDc2NTctMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDM3NSAxNi4zNDM3NS0zNi40Mzc1IDM2LjQzNzUgMCAyMC4wODk4NDQgMTYuMzQ3NjU2IDM2LjQzMzU5NCAzNi40Mzc1IDM2LjQzMzU5NHptMC01Mi42NzU3ODFjOC45NTMxMjUgMCAxNi4yNDIxODcgNy4yODUxNTYgMTYuMjQyMTg3IDE2LjI0MjE4NyAwIDguOTUzMTI1LTcuMjg5MDYyIDE2LjIzODI4Mi0xNi4yNDIxODcgMTYuMjM4MjgyLTguOTU3MDMxIDAtMTYuMjQyMTg4LTcuMjg1MTU3LTE2LjI0MjE4OC0xNi4yMzgyODIgMC04Ljk1NzAzMSA3LjI4NTE1Ny0xNi4yNDIxODcgMTYuMjQyMTg4LTE2LjI0MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM5MC4xNzk2ODggMTQ3LjAxNTYyNWMzLjc2NTYyNCAwIDcuMzk4NDM3LS41NzQyMTkgMTAuODIwMzEyLTEuNjM2NzE5bDcuMzM5ODQ0IDkuODcxMDk0YzEzLjk0MTQwNiAxOC43NSAyMS42MjEwOTQgNDEuOTQ1MzEyIDIxLjYyMTA5NCA2NS4zMTI1djU5LjE1MjM0NGMwIDUuNTc4MTI1IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2IDUuNTc0MjE4IDAgMTAuMDk3NjU2LTQuNTE5NTMxIDEwLjA5NzY1Ni0xMC4wOTc2NTZ2LTU5LjE1MjM0NGMwLTI3LjY3NTc4MS05LjA5Mzc1LTU1LjE1MjM0NC0yNS42MDkzNzUtNzcuMzU5Mzc1bC02LjY3NTc4MS04Ljk4MDQ2OWM1LjQ0OTIxOC02LjM2NzE4NyA4Ljc0NjA5NC0xNC42MjUgOC43NDYwOTQtMjMuNjQwNjI1IDAtMjAuMDkzNzUtMTYuMzQzNzUtMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDMzNTk0IDE2LjM0Mzc1LTM2LjQzMzU5NCAzNi40Mzc1IDAgMjAuMDg5ODQ0IDE2LjM0Mzc1IDM2LjQzMzU5NCAzNi40MzM1OTQgMzYuNDMzNTk0em0wLTUyLjY3NTc4MWM4Ljk1NzAzMSAwIDE2LjI0MjE4NyA3LjI4NTE1NiAxNi4yNDIxODcgMTYuMjQyMTg3IDAgOC45NTMxMjUtNy4yODUxNTYgMTYuMjQyMTg4LTE2LjI0MjE4NyAxNi4yNDIxODgtOC45NTMxMjYgMC0xNi4yNDIxODgtNy4yODkwNjMtMTYuMjQyMTg4LTE2LjI0MjE4OCAwLTguOTU3MDMxIDcuMjg5MDYyLTE2LjI0MjE4NyAxNi4yNDIxODgtMTYuMjQyMTg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjA1ODU5NCAzNDkuMDUwNzgxYy01LjU3ODEyNSAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU3djYzLjMyMDMxMmMwIDE0LjIzMDQ2OS0xMS41NzgxMjYgMjUuODA4NTk0LTI1LjgwODU5NCAyNS44MDg1OTRoLTQ0LjU5NzY1NnYtMzMuNDI5Njg4YzAtNS41NzgxMjUtNC41MTk1MzItMTAuMDk3NjU2LTEwLjA5Mzc1LTEwLjA5NzY1NmgtNDIuMjY1NjI2di0xMTIuNDUzMTI1YzIxLjg1NTQ2OS0yNC4wMzUxNTYgMzUuMTkxNDA3LTU1Ljk0OTIxOSAzNS4xOTE0MDctOTAuOTE3OTY5IDAtNzQuNTk3NjU2LTYwLjY4NzUtMTM1LjI4NTE1Ni0xMzUuMjgxMjUtMTM1LjI4NTE1NnMtMTM1LjI4MTI1IDYwLjY4NzUtMTM1LjI4MTI1IDEzNS4yODUxNTZjMCAzMy4xMDU0NjkgMTEuOTU3MDMxIDYzLjQ2NDg0NCAzMS43NzczNDMgODcuMDAzOTA2djIxMy41MTk1MzJjMCA1LjU3ODEyNSA0LjUyMzQzOCAxMC4wOTc2NTYgMTAuMDk3NjU3IDEwLjA5NzY1NmgyMzUuNzYxNzE5YzUuNTc0MjE4IDAgMTAuMDkzNzUtNC41MTk1MzEgMTAuMDkzNzUtMTAuMDk3NjU2di0zMy40Mjk2ODhoNDQuNTk3NjU2YzI1LjM2NzE4NyAwIDQ2LjAwMzkwNi0yMC42MzY3MTggNDYuMDAzOTA2LTQ2LjAwMzkwNnYtNjMuMzIwMzEyYzAtNS41NzgxMjYtNC41MjM0MzgtMTAuMDk3NjU3LTEwLjA5NzY1Ni0xMC4wOTc2NTd6bS0yMzIuOTUzMTI1LTI2Mi43NjE3MTljNjMuNDU3MDMxIDAgMTE1LjA4NTkzNyA1MS42Mjg5MDcgMTE1LjA4NTkzNyAxMTUuMDg5ODQ0IDAgNjMuNDU3MDMyLTUxLjYyODkwNiAxMTUuMDg1OTM4LTExNS4wODU5MzcgMTE1LjA4NTkzOC02My40NjA5MzggMC0xMTUuMDg1OTM4LTUxLjYyODkwNi0xMTUuMDg1OTM4LTExNS4wODU5MzggMC02My40NjA5MzcgNTEuNjI1LTExNS4wODk4NDQgMTE1LjA4NTkzOC0xMTUuMDg5ODQ0em0tODMuMzA4NTk0IDIyMS42MDE1NjNjMjIuOTgwNDY5IDE4LjAxNTYyNSA1MS45MTAxNTYgMjguNzY5NTMxIDgzLjMwODU5NCAyOC43Njk1MzEgMjkuODYzMjgxIDAgNTcuNDkyMTg3LTkuNzM0Mzc1IDc5Ljg5NDUzMS0yNi4xODc1djE4MS4zMzIwMzJoLTE2My4yMDMxMjV6bTIxNS41NjY0MDYgMTgzLjkxNDA2M2gtMzIuMTY3OTY5di02Ni44NTkzNzZoMzIuMTY3OTY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ4LjE2MDE1NiAzNzcuNzg5MDYyaDE3LjkyNTc4MmM1LjU3NDIxOCAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzgtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyNTc4MmMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk4LjE0NDUzMSAzNzcuNzg5MDYyaDE3LjkyMTg3NWM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyMTg3NWMtNS41NzgxMjUgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTE5NTMxIDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY2LjA0Njg3NSAzNTcuNTkzNzVoLTE3LjkyMTg3NWMtNS41NzQyMTkgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDE3LjkyMTg3NWM1LjU3ODEyNSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDguMTYwMTU2IDQyMC42NzU3ODFoNjcuOTA2MjVjNS41NzQyMTkgMCAxMC4wOTc2NTYtNC41MTk1MzEgMTAuMDk3NjU2LTEwLjA5NzY1NnMtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTY3LjkwNjI1Yy01LjU3NDIxOCAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU2czQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4LjEyNSA0NDMuMTU2MjVoLTk5Ljk2NDg0NGMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDk5Ljk2NDg0NGM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMzU1NDY5IDQwLjEzNjcxOWMxLjg0Mzc1IDMuMzIwMzEyIDUuMjg1MTU2IDUuMTkxNDA2IDguODMyMDMxIDUuMTkxNDA2IDEuNjYwMTU2IDAgMy4zNDM3NS0uNDE0MDYzIDQuODk4NDM4LTEuMjc3MzQ0IDQuODc1LTIuNzEwOTM3IDYuNjI1LTguODU5Mzc1IDMuOTE0MDYyLTEzLjczNDM3NWwtMTMuOTg0Mzc1LTI1LjEyODkwNmMtMi43MTA5MzctNC44NzEwOTQtOC44NTkzNzUtNi42MjUtMTMuNzM0Mzc1LTMuOTEwMTU2LTQuODcxMDk0IDIuNzEwOTM3LTYuNjI1IDguODU5Mzc1LTMuOTE0MDYyIDEzLjczNDM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTYzLjE0NDUzMSA4My4wMTU2MjUtMjYuMDU0Njg3LTE1LjAzOTA2M2MtNC44MzIwMzItMi43ODkwNjItMTEuMDAzOTA2LTEuMTMyODEyLTEzLjc5Mjk2OSAzLjY5NTMxM3MtMS4xMzI4MTMgMTEuMDAzOTA2IDMuNjk1MzEzIDEzLjc5Mjk2OWwyNi4wNTQ2ODcgMTUuMDQyOTY4YzEuNTg5ODQ0LjkxNzk2OSAzLjMyODEyNSAxLjM1MTU2MyA1LjAzOTA2MyAxLjM1MTU2MyAzLjQ4ODI4MSAwIDYuODgyODEyLTEuODA4NTk0IDguNzUzOTA2LTUuMDQ2ODc1IDIuNzg5MDYyLTQuODMyMDMxIDEuMTMyODEyLTExLjAwNzgxMi0zLjY5NTMxMy0xMy43OTY4NzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4xMTMyODEgMTQ2LjIxMDkzOC0zMC4wODU5MzctMS4yODEyNWMtNS41ODIwMzItLjI1LTEwLjI4MTI1IDQuMDg5ODQzLTEwLjUxOTUzMiA5LjY2MDE1Ni0uMjM0Mzc0IDUuNTcwMzEyIDQuMDg5ODQ0IDEwLjI4MTI1IDkuNjYwMTU3IDEwLjUxNTYyNWwzMC4wODU5MzcgMS4yODEyNWMuMTQ0NTMyLjAwNzgxMi4yOTI5NjkuMDA3ODEyLjQzNzUuMDA3ODEyIDUuMzc4OTA2IDAgOS44NTE1NjMtNC4yNDIxODcgMTAuMDc4MTI1LTkuNjY3OTY5LjIzODI4MS01LjU3MDMxMi00LjA4NTkzNy0xMC4yNzczNDMtOS42NTYyNS0xMC41MTU2MjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODMuNjQwNjI1IDE5OC42MjUuMTIxMDk0LjI5Njg3NWMxLjU4OTg0MyAzLjkyNTc4MSA1LjM2NzE4NyA2LjMwNDY4NyA5LjM1OTM3NSA2LjMwNDY4NyAxLjI2MTcxOCAwIDIuNTQ2ODc1LS4yMzgyODEgMy43ODkwNjItLjc0MjE4NyA1LjE2Nzk2OS0yLjA5Mzc1IDcuNjYwMTU2LTcuOTgwNDY5IDUuNTY2NDA2LTEzLjE0ODQzN2wtLjEyMTA5My0uMjk2ODc2Yy0yLjA5Mzc1LTUuMTY3OTY4LTcuOTgwNDY5LTcuNjU2MjUtMTMuMTQ4NDM4LTUuNTYyNXMtNy42NjAxNTYgNy45ODA0NjktNS41NjY0MDYgMTMuMTQ4NDM4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ5LjM2NzE4OCAzMTUuNjY3OTY5Yy0yLjA3ODEyNi01LjE3MTg3NS03Ljk2NDg0NC03LjY3OTY4OC0xMy4xMzY3MTktNS42MDE1NjMtNS4xNzE4NzUgMi4wODIwMzItNy42Nzk2ODggNy45NjA5MzgtNS42MDE1NjMgMTMuMTM2NzE5bC4xMTcxODguMjkyOTY5YzEuNTg1OTM3IDMuOTQxNDA2IDUuMzcxMDk0IDYuMzM1OTM3IDkuMzc1IDYuMzM1OTM3IDEuMjUzOTA2IDAgMi41MjczNDQtLjIzNDM3NSAzLjc2MTcxOC0uNzM0Mzc1IDUuMTc1NzgyLTIuMDc4MTI1IDcuNjgzNTk0LTcuOTYwOTM3IDUuNjAxNTYzLTEzLjEzMjgxMnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Amplifier:Yne,Awnings:Qne,"Battery Status":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zOTQuMDYzIDM5MS45OTZjLTkuMTk4LTUuMjktMTguMzczLTEwLjYyMy0yNy41NTgtMTUuOTM3IDUuMDAyLTExLjc2OSAxMC4xOTQtMjMuOTAyIDE0LjkwMy0zNi4wNTMgMS44MDktNC42NjcgMS4xODktOS45MTEtMS42NTUtMTQuMDI4LTUuNzc2LTguMzYxLTE2Ljg2My04Ljg1NS0yNC4zNDQtMS43NC0xOS42NjEgMTguNy0zOS4wODUgMzctNTguNjUyIDU1LjUzNy0zLjc3NSAzLjU3Ny01LjYzOSA4LjQzNC01LjExIDEzLjMyNy41MjMgNC44NDYgMy4zMzkgOS4xNDQgNy43MjUgMTEuNzkyIDkuMzQ1IDUuNjQxIDE4Ljc2MSAxMC45NTUgMjguMDk4IDE2LjI5MS00LjY0NCAxMC45NTEtMTAuMzcyIDI0LjI0Ni0xNC45MiAzNi4wMDItMi44ODcgNy40NjIuNDIxIDE1Ljc0NCA3LjY5MyAxOS4yNjQgNS43MTQgMi43NjYgMTIuMjggMi4yMTEgMTguMjk5LTMuNDgzIDE5LjM0NC0xOC4zIDM5LjM0My0zNy4yMTQgNTguNjctNTUuNTQ3IDMuODE4LTMuNjIyIDUuNjc0LTguNTEyIDUuMDktMTMuNDE2LS41OTEtNC45NjItMy41OTQtOS4zMzgtOC4yMzktMTIuMDA5em0tNy4xNzQgMTQuNTRjLTE1LjYzNCAxNC44MzItNTguOTQ5IDU2Ljk3My02MC4xMDkgNTYuNDEyLS4xMTgtLjA1Ny0uMzA2LS4xNzgtLjI0LS4zNDkgNS4xNzktMTMuNTI2IDExLjYzNS0yOC4yNzIgMTYuOTE4LTQwLjczMiAxLjQ5My0zLjUyMi45MDctOC4yOC0zLjc2OC0xMC45Ny0xMC44NC02LjIzNy0yMS43OTEtMTIuMzU0LTMyLjU2NC0xOC44NDUtLjgwMi0uNDgzLS43NjctLjcxLS4wNTEtMS4zODggMjAuODc0LTE5Ljc3OSA1Ny45NTktNTUuMzExIDU5LjgwMy01Ni40NTkuMzk2LjA4NC41NDQuMjk5LjU0NS4zODQtNS4zMDcgMTMuNjg0LTExLjIxMyAyNy4zMDUtMTYuOSA0MC43MzktMS43OTQgNC4yMzctLjI5MyA4LjY0OSAzLjczOSAxMC45OCA0LjM5OSAyLjU0IDguNzk2IDUuMDg3IDEzLjE5MSA3LjYzNCA2LjM3NCAzLjY5MyAxMi43NDggNy4zODcgMTkuMTM0IDExLjA1OSAxLjEwNi42MzUgMS4xMzYuNzQ0LjMwMiAxLjUzNXptLTgxLjc4NC0yMDguNGgtMjAxLjQ2Yy0xMC4yNzMgMC0xOC42MzEgOC4zMy0xOC42MzEgMTguNTY5djQ0LjI3NmMwIDEwLjIzOSA4LjM1NyAxOC41NjkgMTguNjMxIDE4LjU2OWgyMDEuNDYxYzEwLjI3MyAwIDE4LjYzMS04LjMzIDE4LjYzMS0xOC41Njl2LTQ0LjI3NmMtLjAwMS0xMC4yMzktOC4zNTgtMTguNTY5LTE4LjYzMi0xOC41Njl6bTMuNjMxIDYyLjg0NWMwIDEuOTY4LTEuNjI5IDMuNTY5LTMuNjMxIDMuNTY5aC0yMDEuNDZjLTIuMDAyIDAtMy42MzEtMS42MDEtMy42MzEtMy41Njl2LTQ0LjI3NmMwLTEuOTY4IDEuNjI5LTMuNTY5IDMuNjMxLTMuNTY5aDIwMS40NjFjMi4wMDIgMCAzLjYzMSAxLjYwMSAzLjYzMSAzLjU2OXY0NC4yNzZ6bTE1LTE0My44OThjMC0xMC4yMzktOC4zNTctMTguNTY5LTE4LjYzMS0xOC41NjloLTIwMS40NmMtMTAuMjczIDAtMTguNjMxIDguMzMtMTguNjMxIDE4LjU2OXY0NC4yNzZjMCAxMC4yMzkgOC4zNTcgMTguNTY5IDE4LjYzMSAxOC41NjloMjAxLjQ2MWMxMC4yNzMgMCAxOC42MzEtOC4zMyAxOC42MzEtMTguNTY5di00NC4yNzZ6bS0xNSA0NC4yNzdjMCAxLjk2OC0xLjYyOSAzLjU2OS0zLjYzMSAzLjU2OWgtMjAxLjQ2Yy0yLjAwMiAwLTMuNjMxLTEuNjAxLTMuNjMxLTMuNTY5di00NC4yNzZjMC0xLjk2OCAxLjYyOS0zLjU2OSAzLjYzMS0zLjU2OWgyMDEuNDYxYzIuMDAyIDAgMy42MzEgMS42MDEgMy42MzEgMy41Njl2NDQuMjc2em0zOC4yNDcgMTIzLjg1N2MtMTguNjUzIDAtMzYuMjY2IDQuNTI5LTUxLjgwMyAxMi41NDJoLTE5MS41MzVjLTEwLjI3MiAwLTE4LjYzIDguMzMxLTE4LjYzIDE4LjU3djQ0LjI3YzAgMTAuMjM5IDguMzU3IDE4LjU3IDE4LjYzIDE4LjU3aDEzMS42MjFjLTEuMDk2IDYuMzE4LTEuNjczIDEyLjgxMi0xLjY3MyAxOS40MzggMCAyNC4yNDMgNy42NTEgNDYuNzI5IDIwLjY2IDY1LjE4MmgtMTUwLjYwOGMtMi4wMDIgMC0zLjYzLTEuNjAyLTMuNjMtMy41N3YtNDQuMjdjMC0xLjk2OSAxLjYyOC0zLjU3IDMuNjMtMy41N2gxMDcuNjQxYzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMDcuNjQxYy0xMC4yNzIgMC0xOC42MyA4LjMzMS0xOC42MyAxOC41N3Y0NC4yN2MwIDEwLjIzOSA4LjM1NyAxOC41NyAxOC42MyAxOC41N2gxNjMuMjM3YzcuMDcgNy4wNjMgMTUuMDY1IDEzLjE5OSAyMy43ODUgMTguMjFoLTE5OC4yNDJjLTE0LjIyNyAwLTI1LjgtMTEuNTc0LTI1LjgtMjUuOHYtMzY1LjA4OWMwLTE0LjIyNiAxMS41NzMtMjUuOCAyNS44LTI1LjhoMjIzLjljMTQuMjI3IDAgMjUuOCAxMS41NzQgMjUuOCAyNS44djE1Ni42NGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xNTYuNjRjMC0yMi40OTctMTguMzAzLTQwLjgtNDAuOC00MC44aC00MC4wNjd2LTM1LjYxMWMwLTE2LjM3Ni0xMy4zMjMtMjkuNjk5LTI5LjY5OS0yOS42OTloLTg0LjM2N2MtMTYuMzc2IDAtMjkuNjk5IDEzLjMyMy0yOS42OTkgMjkuNjk5djM1LjYxMWgtNDAuMDY4Yy0yMi40OTcgMC00MC44IDE4LjMwMy00MC44IDQwLjh2MzY1LjA5YzAgMjIuNDk3IDE4LjMwMyA0MC44IDQwLjggNDAuOGgyMjMuOWMzLjg5MiAwIDcuNzMxLS41NTMgMTEuNDQyLTEuNjM2IDYuMjQ4IDEuMDcxIDEyLjY2NyAxLjYzNiAxOS4yMTYgMS42MzYgNjIuNTI0IDAgMTEzLjM5Mi01MC44NjcgMTEzLjM5Mi0xMTMuMzkyIDAtNjIuNTI0LTUwLjg2Ny0xMTMuMzkxLTExMy4zOTItMTEzLjM5MXptLTE5OS40OTEtMjU1LjUxOGMwLTguMTA1IDYuNTk0LTE0LjY5OSAxNC42OTktMTQuNjk5aDg0LjM2N2M4LjEwNSAwIDE0LjY5OSA2LjU5NCAxNC42OTkgMTQuNjk5djM1LjYxMWgtMTEzLjc2NXptLTQzLjg0NyAzMzQuNDcxYy0yLjAwMiAwLTMuNjMtMS42MDItMy42My0zLjU3di00NC4yN2MwLTEuOTY5IDEuNjI4LTMuNTcgMy42My0zLjU3aDE2OS4zNDFjLTE1LjY2NiAxMy41MjEtMjcuNiAzMS4yNS0zNC4wNDEgNTEuNDF6bTI0My4zMzggMTMyLjgzYy01NC4yNTMgMC05OC4zOTItNDQuMTM4LTk4LjM5Mi05OC4zOTIgMC01NC4yNTMgNDQuMTM5LTk4LjM5MSA5OC4zOTItOTguMzkxczk4LjM5MiA0NC4xMzggOTguMzkyIDk4LjM5MWMwIDU0LjI1NC00NC4xMzkgOTguMzkyLTk4LjM5MiA5OC4zOTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Ceiling Spotlights":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDc0IDc0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDYuNDQgNGgtMi45N2ExIDEgMCAwIDEgMC0yaDIuOTdhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNjguNjQgMTAuMzhoLTYzLjI4YTEgMSAwIDAgMSAtMS0xdi02LjM4YTEgMSAwIDAgMSAxLTFoMjEuMmExIDEgMCAwIDEgMCAyaC0yMC4ydjQuMzhoNjEuMjh2LTQuMzhoLTE0LjJhMSAxIDAgMCAxIDAtMmgxNS4yYTEgMSAwIDAgMSAxIDF2Ni4zOGExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYuNDcgNGgtMi45MWExIDEgMCAwIDEgMC0yaDIuOTFhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgNTEuMjA3YTEgMSAwIDAgMSAtMS0xdi00MC44MjhhMSAxIDAgMSAxIDIgMHY0MC44MjhhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ljc3MSA2Ny4wN2gtMTkuNTQyYTEgMSAwIDAgMSAtLjk3Ny0xLjIxNWwzLjQ5LTE1Ljg1NWExIDEgMCAwIDEgLjk3Ny0uNzg1aDEyLjU2MmExIDEgMCAwIDEgLjk3Ny43ODVsMy40OSAxNS44NmExIDEgMCAwIDEgLS45NzcgMS4yMTV6bS0xOC4zLTJoMTcuMDU2bC0zLjA0OS0xMy44NmgtMTAuOTU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyA3MmE1LjkzNiA1LjkzNiAwIDAgMSAtNS45My01LjkzIDEgMSAwIDAgMSAyIDAgMy45MyAzLjkzIDAgMCAwIDcuODYgMCAxIDEgMCAwIDEgMiAwIDUuOTM2IDUuOTM2IDAgMCAxIC01LjkzIDUuOTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiAzNS4xMTRhMSAxIDAgMCAxIC0xLTF2LTI0LjczNWExIDEgMCAwIDEgMiAwdjI0LjczNWExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjkuNiA1MC4wMjZoLTE4LjM3YTEgMSAwIDAgMSAtLjk3Ni0xLjIxNWwzLjI4LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgwOWExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgybC0yLjgzOS0xMi45MDloLTEwLjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiA1NC42NmE1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQtNS42MzQgMSAxIDAgMSAxIDIgMCAzLjYzNCAzLjYzNCAwIDEgMCA3LjI2OCAwIDEgMSAwIDEgMSAyIDAgNS42NDEgNS42NDEgMCAwIDEgLTUuNjM0IDUuNjM0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMy41ODQgMzUuMTE0YTEgMSAwIDAgMSAtMS0xdi0yNC43MzVhMSAxIDAgMCAxIDIgMHYyNC43MzVhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyLjc3IDUwLjAyNmgtMTguMzdhMSAxIDAgMCAxIC0uOTc2LTEuMjE1bDMuMjc2LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgxMmExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgxbC0yLjgzOS0xMi45MDloLTEwLjIwM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTMuNTg0IDU0LjY2YTUuNjQxIDUuNjQxIDAgMCAxIC01LjYzNC01LjYzNCAxIDEgMCAwIDEgMiAwIDMuNjM0IDMuNjM0IDAgMCAwIDcuMjY4IDAgMSAxIDAgMCAxIDIgMCA1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQgNS42MzR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Chandelier:Une,Climate:vne,"Coffee Makers":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NjYgMTExLjk5NmgtNDkuNzE5bC0xMDkuMjE1LTQ2LjM2MSA0Ljg4OS01NC43NDZjLjI1LTIuNzk2LS42ODctNS41NjgtMi41ODItNy42MzktMS44OTQtMi4wNy00LjU3Mi0zLjI1LTcuMzc4LTMuMjVoLTYwYy0yLjgwNyAwLTUuNDg0IDEuMTgtNy4zNzkgMy4yNS0xLjg5NSAyLjA3MS0yLjgzMSA0Ljg0My0yLjU4MiA3LjYzOWw0Ljg5OCA1NC44NTQtMTA0Ljc5NSA0Ni4yNTNoLTI2LjEzN2MtMzguNTk4IDAtNzAgMzEuNDAyLTcwIDcwdjY5Ljk5N2MwIDE2LjU0MiAxMy40NTggMzAgMzAgMzBzMzAtMTMuNDU4IDMwLTMwdi02OS45OTdjMC01LjQyIDQuNTgtMTAgMTAtMTBoMjYuOTE1bDIxLjQ4MyAxMjEuNzM4YzEuOTI3IDEwLjkyMyA5LjkwNCAxOC4yNjMgMTkuODQ4IDE4LjI2M3Y0MC4wMDNjLTkuNjUyIDAtMTcuMjE3IDYuODAyLTE5Ljc0NCAxNy43NTFsLTMwLjAwMSAxMzBjLS42ODUgMi45NjkuMDIxIDYuMDg5IDEuOTE4IDguNDc0czQuNzc4IDMuNzc0IDcuODI2IDMuNzc0aDI4MGMzLjA0NyAwIDUuOTI5LTEuMzkgNy44MjYtMy43NzQgMS44OTctMi4zODUgMi42MDQtNS41MDUgMS45MTgtOC40NzRsLTMwLjAwMS0xMzBjLTIuNTI1LTEwLjk0OS0xMC4wOTEtMTcuNzUxLTE5Ljc0My0xNy43NTF2LTQwLjAwMmM5Ljk0NCAwIDE3LjkyLTcuMzM5IDE5Ljg0Ny0xOC4yNjJsMTQuMzgxLTgxLjQ5MiA2NC4wNTYtNTUuMjM2YzIuMjAzLTEuODk5IDMuNDctNC42NjUgMy40Ny03LjU3M3YtMjcuNDM4Yy4wMDEtNS41MjQtNC40NzctMTAuMDAxLTkuOTk5LTEwLjAwMXptLTE3NC45MzgtOTEuOTk2LTMuNzUgNDEuOTk2aC0zMC42MzRsLTMuNzUxLTQxLjk5NnptLTQxLjQyMyA2MS45OTZoNDQuNzg1bDcwLjY3MiAzMGgtMTgzLjQyOHptLTE0My42MzkgNzAuMDAxYy0xNi41NDIgMC0zMCAxMy40NTgtMzAgMzB2NjkuOTk3YzAgNS41MTQtNC40ODYgMTAtMTAgMTBzLTEwLTQuNDg2LTEwLTEwdi02OS45OTdjMC0yNy41NyAyMi40My01MCA1MC01MGgxOS44NTZsMy41MyAyMHptNjguMDk0IDEzOC4yNjMtMjcuOTI5LTE1OC4yNjRoNjIuNzYybDIuNTI4IDM1LjgxN2MuMzcyIDUuMjcgNC43NjIgOS4yOTYgOS45NjUgOS4yOTYuMjM2IDAgLjQ3NS0uMDA4LjcxNC0uMDI1IDUuNTA5LS4zODkgOS42Ni01LjE3IDkuMjcxLTEwLjY3OWwtMi40MjktMzQuNDA5aDkwLjUzOWwtMTEuMjk1IDE2MC4wMDJoLTY3Ljk0OWwtMi41MjktMzUuODE3Yy0uMzg5LTUuNTA5LTUuMTY2LTkuNjYxLTEwLjY3OS05LjI3MS01LjUwOS4zODktOS42NiA1LjE3LTkuMjcxIDEwLjY3OWwyLjQyOSAzNC40MDloLTQ1LjUxOGMtLjE5OS0uMzIxLS40NjMtLjkxNC0uNjA5LTEuNzM4em0tLjEwMyA4My45ODhjLjI1OS0xLjEyNS42MS0xLjg1Ny44NTMtMi4yNDloNDUuMzZsLTExLjA3NyAxMjBoLTYyLjMxem0xMzQuMjEyLTIuMjQ4IDExLjA3NyAxMjBoLTkwLjA2OWwxMS4wNzctMTIwem02Ni4yOTcgMi4yNDggMjcuMTc1IDExNy43NTJoLTYyLjMxbC0xMS4wNzctMTIwaDQ1LjM2Yy4yNDMuMzkxLjU5MyAxLjEyMy44NTIgMi4yNDh6bS0yMC4yNTUtMjIuMjQ4aC0xNTkuOTk4di00MC4wMDJoMTU5Ljk5OHptMjAuMTUxLTYxLjc0Yy0uMTQ2LjgyNC0uNDA5IDEuNDE3LS42MDggMS43MzdoLTQ1LjUxOGwxMS4yOTUtMTYwLjAwMWg2Mi43NjJsLTEyLjkzNyA3My4zMDljMCAuMDAxIDAgLjAwMi0uMDAxLjAwM3ptODEuNjA0LTE0NS40MDctNDIuMDI5IDM2LjI0MiA4LjY2NS00OS4wOTloMzMuMzY0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjQuNTk5IDIyMS45OTdjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTBoLS4wMDdjLTUuNTIzIDAtOS45OTYgNC40NzctOS45OTYgMTBzNC40OCAxMCAxMC4wMDMgMTB6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Cold Water":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3NSA0NzUiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik00MzguNDEzLDM0My4xODhDNDI4LjA1OSwzMzUuMDg1LDQxNS4xNzQsMzI1LDM5MC44MzUsMzI1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3NywxOC4xODgKCQlDMzM0LjQ5NiwzNTAuMDQ1LDMyOC4xNjUsMzU1LDMxNC4xNywzNTVjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzQzI3NC43MjksMzM1LjA4NSwyNjEuODQ0LDMyNSwyMzcuNTA2LDMyNQoJCWMtMjQuMzM5LDAtMzcuMjI0LDEwLjA4NS00Ny41NzgsMTguMTg4QzE4MS4xNjYsMzUwLjA0NSwxNzQuODM0LDM1NSwxNjAuODQsMzU1Yy0xMy45OTYsMC0yMC4zMjctNC45NTUtMjkuMDktMTEuODEzCgkJQzEyMS4zOTUsMzM1LjA4NCwxMDguNTA5LDMyNSw4NC4xNywzMjVjLTI0LjMzOSwwLTM3LjIyNSwxMC4wODQtNDcuNTc5LDE4LjE4OEMyNy44MjgsMzUwLjA0NSwyMS40OTYsMzU1LDcuNSwzNTV2MzAKCQljMjQuMzM5LDAsMzcuMjI1LTEwLjA4NCw0Ny41NzktMTguMTg4QzYzLjg0MiwzNTkuOTU1LDcwLjE3NCwzNTUsODQuMTcsMzU1YzEzLjk5NiwwLDIwLjMyNyw0Ljk1NSwyOS4wOTEsMTEuODEzCgkJQzEyMy42MTUsMzc0LjkxNiwxMzYuNSwzODUsMTYwLjg0LDM4NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg0LDQ3LjU3OC0xOC4xODhDMjE3LjE4LDM1OS45NTUsMjIzLjUxMSwzNTUsMjM3LjUwNiwzNTUKCQljMTMuOTk0LDAsMjAuMzI1LDQuOTU1LDI5LjA4NywxMS44MTNDMjc2Ljk0NywzNzQuOTE1LDI4OS44MzMsMzg1LDMxNC4xNywzODVjMjQuMzM4LDAsMzcuMjI0LTEwLjA4NSw0Ny41NzctMTguMTg4CgkJQzM3MC41MSwzNTkuOTU1LDM3Ni44NDEsMzU1LDM5MC44MzUsMzU1YzEzLjk5NSwwLDIwLjMyNSw0Ljk1NSwyOS4wODgsMTEuODEzQzQzMC4yNzcsMzc0LjkxNSw0NDMuMTYyLDM4NSw0NjcuNSwzODV2LTMwCgkJQzQ1My41MDYsMzU1LDQ0Ny4xNzUsMzUwLjA0NSw0MzguNDEzLDM0My4xODh6Ii8+Cgk8cGF0aCBkPSJNMzkwLjgzNSw0MTVjLTI0LjMzOCwwLTM3LjIyNCwxMC4wODUtNDcuNTc3LDE4LjE4OEMzMzQuNDk2LDQ0MC4wNDUsMzI4LjE2NSw0NDUsMzE0LjE3LDQ0NQoJCWMtMTMuOTk0LDAtMjAuMzI1LTQuOTU1LTI5LjA4Ny0xMS44MTNDMjc0LjcyOSw0MjUuMDg1LDI2MS44NDQsNDE1LDIzNy41MDYsNDE1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3OCwxOC4xODgKCQlDMTgxLjE2Niw0NDAuMDQ1LDE3NC44MzQsNDQ1LDE2MC44NCw0NDVjLTEzLjk5NiwwLTIwLjMyNy00Ljk1NS0yOS4wOS0xMS44MTNDMTIxLjM5NSw0MjUuMDg0LDEwOC41MDksNDE1LDg0LjE3LDQxNQoJCWMtMjQuMzM5LDAtMzcuMjI1LDEwLjA4NC00Ny41NzksMTguMTg4QzI3LjgyOCw0NDAuMDQ1LDIxLjQ5Niw0NDUsNy41LDQ0NXYzMGMyNC4zMzksMCwzNy4yMjUtMTAuMDg0LDQ3LjU3OS0xOC4xODgKCQlDNjMuODQyLDQ0OS45NTUsNzAuMTc0LDQ0NSw4NC4xNyw0NDVjMTMuOTk2LDAsMjAuMzI3LDQuOTU1LDI5LjA5MSwxMS44MTNDMTIzLjYxNSw0NjQuOTE2LDEzNi41LDQ3NSwxNjAuODQsNDc1CgkJYzI0LjMzOCwwLDM3LjIyNC0xMC4wODQsNDcuNTc4LTE4LjE4OEMyMTcuMTgsNDQ5Ljk1NSwyMjMuNTExLDQ0NSwyMzcuNTA2LDQ0NWMxMy45OTQsMCwyMC4zMjUsNC45NTUsMjkuMDg3LDExLjgxMwoJCUMyNzYuOTQ3LDQ2NC45MTUsMjg5LjgzMyw0NzUsMzE0LjE3LDQ3NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg1LDQ3LjU3Ny0xOC4xODhDMzcwLjUxLDQ0OS45NTUsMzc2Ljg0MSw0NDUsMzkwLjgzNSw0NDUKCQljMTMuOTk1LDAsMjAuMzI1LDQuOTU1LDI5LjA4OCwxMS44MTNDNDMwLjI3Nyw0NjQuOTE1LDQ0My4xNjIsNDc1LDQ2Ny41LDQ3NXYtMzBjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzCgkJQzQyOC4wNTksNDI1LjA4NSw0MTUuMTc0LDQxNSwzOTAuODM1LDQxNXoiLz4KCTxwb2x5Z29uIHBvaW50cz0iMTg0LjM3OCwyNTguMzIzIDIyMi41LDIzNi4zMTMgMjIyLjUsMjgwLjMzMyAyNTIuNSwyODAuMzMzIDI1Mi41LDIzNi4zMTMgMjkwLjYyMiwyNTguMzIzIDMwNS42MjIsMjMyLjM0MwoJCTI2Ny41LDIxMC4zMzMgMzA1LjYyMiwxODguMzIzIDI5MC42MjIsMTYyLjM0MyAyNTIuNSwxODQuMzUzIDI1Mi41LDE0MC4zMzMgMjIyLjUsMTQwLjMzMyAyMjIuNSwxODQuMzUzIDE4NC4zNzgsMTYyLjM0MwoJCTE2OS4zNzgsMTg4LjMyMyAyMDcuNSwyMTAuMzMzIDE2OS4zNzgsMjMyLjM0MyAJCQkiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjQuMDk1LDExNy45OSA2Mi4yMTYsOTUuOTggNjIuMjE2LDE0MCA5Mi4yMTYsMTQwIDkyLjIxNiw5NS45OCAxMzAuMzM4LDExNy45OSAxNDUuMzM4LDkyLjAxIDEwNy4yMTYsNzAKCQkxNDUuMzM4LDQ3Ljk5IDEzMC4zMzgsMjIuMDEgOTIuMjE2LDQ0LjAyIDkyLjIxNiwwIDYyLjIxNiwwIDYyLjIxNiw0NC4wMiAyNC4wOTUsMjIuMDEgOS4wOTUsNDcuOTkgNDcuMjE3LDcwIDkuMDk1LDkyLjAxCgkJIi8+Cgk8cG9seWdvbiBwb2ludHM9IjM0NC42NjIsMTE3Ljk5IDM4Mi43ODQsOTUuOTggMzgyLjc4NCwxNDAgNDEyLjc4NCwxNDAgNDEyLjc4NCw5NS45OCA0NTAuOTA1LDExNy45OSA0NjUuOTA1LDkyLjAxIDQyNy43ODMsNzAKCQk0NjUuOTA1LDQ3Ljk5IDQ1MC45MDUsMjIuMDEgNDEyLjc4NCw0NC4wMiA0MTIuNzg0LDAgMzgyLjc4NCwwIDM4Mi43ODQsNDQuMDIgMzQ0LjY2MiwyMi4wMSAzMjkuNjYyLDQ3Ljk5IDM2Ny43ODQsNzAKCQkzMjkuNjYyLDkyLjAxIAkJCSIvPgo8L2c+Cjwvc3ZnPgo=",Computer:bne,Consumption:$ne,Curtains:Pne,Dishwashers:Wne,Doors:Rne,Doorstep:Jne,Dryer:Bne,Fan:Fne,"Floor Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNzcuMDE4IDEwNC40LTU0Ljg2MS05My40MTZjLTMuOTgtNi43NzUtMTEuMzM0LTEwLjk4NC0xOS4xOTEtMTAuOTg0aC05MS42NTVjLTcuNjk3IDAtMTQuOTczIDQuMDc5LTE4Ljk4NyAxMC42NDRsLTU3LjEzNSA5My40MTRjLTkuMDU1IDE0LjgwMyAxLjYyNiAzMy44NyAxOC45ODcgMzMuODdoMjguMTgyYzIuMjIyIDMzLjQ1MiAyNi44MDggNjAuODg0IDU4LjkxNiA2Ny40MS0uMjc0IDEuODI2LS4xODQtMTMuNTEtLjE4NCAyMTcuMTk1aC0zNy40ODRjLTExLjg5OCAwLTIxLjU3OSA5LjY4LTIxLjU3OSAyMS41Nzl2NDYuMzFjMCAxMS44OTggOS42OCAyMS41NzkgMjEuNTc5IDIxLjU3OWgxMDQuNzljMTEuODk5IDAgMjEuNTc5LTkuNjggMjEuNTc5LTIxLjU3OXYtNDYuMzFjMC0xMS44OTgtOS42OC0yMS41NzktMjEuNTc5LTIxLjU3OWgtMzcuNDg0YzAtMjMwLjc2Ni4wOS0yMTUuMzctLjE4NC0yMTcuMTk1IDIyLjAyNS00LjQ3NiA0MC41MDUtMTguNzk1IDUwLjY2Ni0zOC4xNDF2MzcuNjMxYzAgOC4yMzUgNi42NzYgMTQuOTExIDE0LjkxMSAxNC45MTFzMTQuOTExLTYuNjc2IDE0LjkxMS0xNC45MTF2LTY2LjloNi42MWMxNy4xNjYgMCAyNy44OTMtMTguNzA4IDE5LjE5Mi0zMy41Mjh6bS03Ni44NjYgMzc3Ljc3OGgtODguMzAydi0yOS44MjJoODguMzAyem0tODQuNTk5LTQ1Mi4zNTZoODMuMDgzbDQ1Ljk3NCA3OC4yODRjLTcuMDYxIDAtMTY5LjkwMyAwLTE3Ni45MzggMHptNDAuNDQ3IDE0Ny4xNzJjLTIyLjU5NSAwLTQxLjI2Ny0xNy4xMTctNDMuNzI5LTM5LjA2Nmg4Ny40NThjLTIuNDYyIDIxLjk0OS0yMS4xMzQgMzkuMDY2LTQzLjcyOSAzOS4wNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Garage Doors":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDY0YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04SDhDMy41ODIsMCwwLDMuNTgyLDAsOHY0OGMwLDQuNDE4LDMuNTgyLDgsOCw4aDE2djQwMEg4CgkJYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDQ2NGM0LjQxOCwwLDgtMy41ODIsOC04cy0zLjU4Mi04LTgtOGgtMTZWNjRINDcyeiBNNDA4LDQ2NEg3MnYtNDhoMzM2VjQ2NHogTTQwOCw0MDBINzJ2LTQ4CgkJaDMzNlY0MDB6IE00MDgsMzM2SDcydi00OGgzMzZWMzM2eiBNNDA4LDI3Mkg3MnYtNDhoMzM2VjI3MnogTTQwOCwyMDhINzJ2LTQ4aDMzNlYyMDh6IE00MDgsMTQ0SDcyVjk2aDMzNlYxNDR6IE00NDAsNDY0aC0xNlY4OAoJCWMwLTQuNDE4LTMuNTgyLTgtOC04SDY0Yy00LjQxOCwwLTgsMy41ODItOCw4djM3Nkg0MFY2NGg0MDBWNDY0eiBNMTYsNDhWMTZoNDQ4djMySDE2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTYsNDU2aDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LDMuNTgyLTgsOFMyMTEuNTgyLDQ1NiwyMTYsNDU2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Gates:Gne,Hairdryer:Hne,Handle:Vne,"Hanging Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05My41MjUgMzU5Ljc3MWgxMDcuODg1djQuMTI5YTUzLjA3MiA1My4wNzIgMCAxIDAgMTA2LjE0NCAwdi00LjEyNGgxMTAuOTIxYTYgNiAwIDAgMCA2LTZjMC04Mi4wMTUtNTguOTEzLTE1MC41MTgtMTM2LjY0LTE2NS40NDR2LTIwLjMxOWEzMS44ODMgMzEuODgzIDAgMCAwIC0yNS44MzUtMzEuMjZ2LTEyMC43NTNhNiA2IDAgMCAwIC0xMiAwdjEyMC43NTNhMzEuODgzIDMxLjg4MyAwIDAgMCAtMjUuODM1IDMxLjI2djIwLjMxNGMtNzcuNzI3IDE0LjkyNi0xMzYuNjQgODMuNDI5LTEzNi42NCAxNjUuNDQ0YTYgNiAwIDAgMCA2IDZ6bTIwMi4wMjkgNC4xMjlhNDEuMDcyIDQxLjA3MiAwIDEgMSAtODIuMTQ0IDB2LTQuMTI0aDgyLjE0NHptLTM5LjU1NC0yMTUuNzIyYTE5Ljg1MSAxOS44NTEgMCAwIDEgMTkuMTggMTQuODY4aC0zOC4zNmExOS44NTEgMTkuODUxIDAgMCAxIDE5LjE4LTE0Ljg2OHptLTE5LjgzNSAyNi44NjhoMzkuNjd2MTEuNDI0YTE2OC4yODggMTY4LjI4OCAwIDAgMCAtMzkuNjcgMHptMTkuODM1IDIyLjI1NGM4NC4yNzQgMCAxNTMuMiA2Ni45NiAxNTYuMzYxIDE1MC40NzRoLTMxMi43MjJjMy4xNjEtODMuNTE3IDcyLjA4Ny0xNTAuNDc0IDE1Ni4zNjEtMTUwLjQ3NHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUwIDQ1NS41MDh2NDAuNDkyYTYgNiAwIDAgMCAxMiAwdi00MC40OTJhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDMuNDIyIDQzMS40ODhhNiA2IDAgMCAwIC0uMDc1IDguNDg1bDI4LjM0NCAyOC44NTFhNiA2IDAgMCAwIDguNTYxLTguNDFsLTI4LjM0NC0yOC44NTFhNiA2IDAgMCAwIC04LjQ4Ni0uMDc1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuMDkyIDQzMS41NjMtMjguMzQ0IDI4Ljg1MWE2IDYgMCAwIDAgOC41NjEgOC40MWwyOC4zNDQtMjguODUxYTYgNiAwIDAgMCAtOC41NjEtOC40MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTg2Ljc1IDIzNi44MWExNjguNzMxIDE2OC43MzEgMCAwIDAgLTQ1LjkyNyA0OC4xNDMgNiA2IDAgMSAwIDEwLjE0MSA2LjQxNyAxNTYuNzgxIDE1Ni43ODEgMCAwIDEgNDIuNjc3LTQ0LjczNiA2IDYgMCAwIDAgLTYuODkxLTkuODI0eiIvPgogICAgPC9nPgo8L3N2Zz4=",Heater:Zne,Hoods:Xne,"Hot Water":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMCA1MTAiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTUgMjQxLjkwMmMtMTguMjIzIDAtMzMuMzU4LTUuOTM3LTQ1LjA5Mi0xNy42MnYtMTQ5LjM1NGMwLTQxLjMxNS0zMy42MTMtNzQuOTI4LTc0LjkyOS03NC45MjhzLTc0LjkyOCAzMy42MTMtNzQuOTI4IDc0LjkyOHYxNDkuMzk1Yy0yNC4yNTQgMjQuMTA3LTY5LjQ3NiAyNC40MTUtOTMuNjYzLTMuODAzLTUuOTgxLTYuOTc4LTE2Ljc5My02Ljk4Mi0yMi43NzcgMC0yNC41ODYgMjguNjg1LTcyLjUzOCAyOC43OTgtOTcuMjIzIDAtNi4zMjItNy4zNzgtMTcuODY3LTYuODY3LTIzLjUzNy45NjMtLjE0OC4yMDQtMTUuNjg4IDIwLjQxOC00Ny44NTIgMjAuNDE4LTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTVjMjguNjMyIDAgNDguNDg5LTExLjI4IDYwLjAyNy0yMC42MjQgMzMuNDQ3IDI3LjYxNSA4Ni41MTIgMjcuNjI1IDExOS45NzMtLjAyMiAzMC4xOTEgMjQuOTQ0IDc0LjM2MiAyNi4xNzkgMTA1LjA1MiA5Ljk1N3Y0MC40NzFjLTI3Ljk4NCAyMy4xMzEtNDMuODExIDU3Ljg3OC00Mi42NTggOTQuNDUzIDEuOTc0IDYyLjcyOCA1My43NDMgMTEzLjg2NCAxMTcuNTg2IDExMy44NjQgNjQuODcxIDAgMTE3LjY0Ny01Mi43NzYgMTE3LjY0Ny0xMTcuNjQ2IDAtMzUuMDctMTUuODM3LTY4LjQwNi00Mi43MTktOTAuNjY2di00MC40OTdjMTMuMzI1IDcuMDUyIDI4LjUxNyAxMC43MSA0NS4wOTIgMTAuNzEgOC4yODQgMCAxNS02LjcxNiAxNS0xNXMtNi43MTUtMTQuOTk5LTE0Ljk5OS0xNC45OTl6bS0xMjAuMDItMjExLjkwMmMyNC43NzMgMCA0NC45MjggMjAuMTU1IDQ0LjkyOCA0NC45Mjh2MTQ5LjUzN2MtOC4zMTQgOC4yMTEtMTguMzI3IDEzLjU1MS0yOS45MjkgMTUuOTUzdi0xNDMuOTU3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVzLTE1IDYuNzE2LTE1IDE1djE0My45NDdjLTExLjYwMy0yLjQwOS0yMS42MTUtNy43NTktMjkuOTI4LTE1Ljk4M3YtMTQ5LjQ5N2MuMDAxLTI0Ljc3MyAyMC4xNTYtNDQuOTI4IDQ0LjkyOS00NC45Mjh6bS0uMDAxIDM0My41MDRjMTAuNTMyIDAgMTkuMTAxIDguNTY4IDE5LjEwMSAxOS4xcy04LjU2OCAxOS4xLTE5LjEwMSAxOS4xYy0xMC41MzEgMC0xOS4xLTguNTY4LTE5LjEtMTkuMXM4LjU2OS0xOS4xIDE5LjEtMTkuMXptODcuNjQ4IDE4Ljg1YzAgNDguMzI5LTM5LjMxOCA4Ny42NDYtODcuNjQ3IDg3LjY0Ni00Ni44MzEgMC04Ni4xMjktMzguMDQ0LTg3LjYwMi04NC44MDgtLjkyLTI5LjIxOCAxMi43MDQtNTYuODc1IDM2LjQ0My03My45ODEgMy45MTItMi44MTkgNi4yMy03LjM0NyA2LjIzLTEyLjE2OXYtNDcuNzc0YzkuMTQ4IDQuODIgMTkuMTc3IDguMDMzIDI5LjkyOCA5LjU2OHY3NS4wMmMtMTkuNzU4IDYuMzU1LTM0LjEgMjQuOTA1LTM0LjEgNDYuNzQ4IDAgMjcuMDc0IDIyLjAyNiA0OS4xIDQ5LjEgNDkuMXM0OS4xMDEtMjIuMDI2IDQ5LjEwMS00OS4xYzAtMjEuODQzLTE0LjM0Mi00MC4zOTMtMzQuMTAxLTQ2Ljc0OHYtNzUuMDE0YzEwLjc1LTEuNTMxIDIwLjc4LTQuNzM4IDI5LjkyOS05LjU1MnY0Ny43NTNjMCA0LjgyMiAyLjMxOCA5LjM1MSA2LjIzIDEyLjE2OSAyMi44NDggMTYuNDYzIDM2LjQ4OSA0My4wNTkgMzYuNDg5IDcxLjE0MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc4LjE5IDMwOC4zMzJjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuODU3IDM3OS4xMTdjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjQuODYzIDE1NC4xNDNjLTUuODU4IDUuODU4LTUuODU4IDE1LjM1NSAwIDIxLjIxMyA1Ljg1NyA1Ljg1NyAxNS4zNTUgNS44NTggMjEuMjEzIDAgMjEuMDQ2LTIxLjA0NiAyMS4wNDYtNTUuMjkxIDAtNzYuMzM4LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ny01Ljg1OC0xNS4zNTUtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzQ5IDkuMzQ5IDkuMzQ5IDI0LjU2MSAwIDMzLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTQyLjI1MSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcxIDkuMzcxIDkuMzczIDI0LjUzOSAwIDMzLjkxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjE5LjYzOSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcgOS4zNzEgOS4zNzMgMjQuNTM5IDAgMzMuOTEyeiIvPgogICAgPC9nPgo8L3N2Zz4=",Humidity:Kne,Iron:qne,Irrigation:eae,"Led Strip":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTYgMThhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDI2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiA0MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgNTBhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDU4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiAzNGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTIgNjJoOGExIDEgMCAwIDAgMS0xdi00OWg2djQxYTEgMSAwIDAgMCAuMjkzLjcwN2w4IDhhMSAxIDAgMCAwIC43MDcuMjkzaDhhMSAxIDAgMCAwIC43MDctLjI5M2w4LThhMSAxIDAgMCAwIC4yOTMtLjcwN3YtNTBhMSAxIDAgMCAwIC0xLTFoLThhMSAxIDAgMCAwIC0xIDF2NDloLTZ2LTQ5YTEgMSAwIDAgMCAtMS0xaC0xNmExIDEgMCAwIDAgLS43MDcuMjkzbC04IDhhMSAxIDAgMCAwIC0uMjkzLjcwN3Y1MGExIDEgMCAwIDAgMSAxem0zMy0xM3YtNDVoNnY0OC41ODZsLTYgNnptLTggNWg2djZoLTZ6bS04LTV2LTQ1aDZ2NTQuNTg2bC02LTZ6bS04LTQ1aDZ2NmgtNnptLTggNTF2LTQzLjU4Nmw2LTZ2NTQuNTg2aC02eiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMyA2aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgNTZoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00IDMxaDV2MmgtNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNiAyNWgydjVoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNiAtLjggLjggLjYgLTE5LjIgMTYuNikiLz4KICAgICAgICA8cGF0aCBkPSJtNC41IDM1LjVoNXYyaC01eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjggLS42IC42IC44IC0yMC41MDUgMTEuNTA1KSIvPgogICAgICAgIDxwYXRoIGQ9Im01NSAzMWg1djJoLTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU0LjUgMjYuNWg1djJoLTV6IiB0cmFuc2Zvcm09Im1hdHJpeCguOCAtLjYgLjYgLjggLTUuMDk4IDM5LjcxMikiLz4KICAgICAgICA8cGF0aCBkPSJtNTYgMzRoMnY1aC0yeiIgdHJhbnNmb3JtPSJtYXRyaXgoLjYgLS44IC44IC42IC02LjQgNjAuMikiLz4KICAgIDwvZz4KPC9zdmc+",Light:tae,Lightings:sae,Lock:iae,Louvre:oae,"Mowing Machine":"PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NyA1NGM1LjUxNCAwIDEwLTQuNDg2IDEwLTEwcy00LjQ4Ni0xMC0xMC0xMC0xMCA0LjQ4Ni0xMCAxMCA0LjQ4NiAxMCAxMCAxMHptLTcuOTMxLTExYy4xODMtMS40NTguNzU5LTIuNzkyIDEuNjE5LTMuODk4bDEuMzYyIDEuMzYzIDEuNDE0LTEuNDE0LTEuMzYyLTEuMzYyYzEuMTA2LS44NiAyLjQ0LTEuNDM2IDMuODk4LTEuNjE5djEuOTNoMnYtMS45MzFjMS40NTguMTgzIDIuNzkyLjc1OSAzLjg5OCAxLjYxOWwtMS4zNjIgMS4zNjIgMS40MTQgMS40MTQgMS4zNjItMS4zNjNjLjg2IDEuMTA2IDEuNDM2IDIuNDQgMS42MTkgMy44OThoLTEuOTMxdjJoMS45MzFjLS4xODMgMS40NTgtLjc1OSAyLjc5Mi0xLjYxOSAzLjg5OGwtMS4zNjItMS4zNjMtMS40MTQgMS40MTQgMS4zNjIgMS4zNjJjLTEuMTA2Ljg2LTIuNDQgMS40MzYtMy44OTggMS42MTl2LTEuOTI5aC0ydjEuOTMxYy0xLjQ1OC0uMTgzLTIuNzkyLS43NTktMy44OTgtMS42MTlsMS4zNjItMS4zNjItMS40MTQtMS40MTQtMS4zNjIgMS4zNjNjLS44Ni0xLjEwNi0xLjQzNi0yLjQ0LTEuNjE5LTMuODk4aDEuOTMxdi0yaC0xLjkzMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMjFoLTI0Ljk4Yy0xLjUxMSAwLTIuOTg0LjQyNi00LjI2MiAxLjIyOWwtMjIuMDIxIDEzLjg2NmMtMi4zNCAxLjQ3My0zLjczNyA0LjAwNS0zLjczNyA2Ljc2OXY2LjEzNmMwIC41NTMuNDQ4IDEgMSAxaDMzLjA4OGMuMzQxIDAgLjY1OC0uMTc0Ljg0Mi0uNDYuMTg0LS4yODcuMjA5LS42NDcuMDY3LS45NTctLjc1LTEuNjM1LTEuMDgtMy4zODctLjk3OS01LjIwOC4zMDktNS41OTEgNC45MzYtMTAuMTQ1IDEwLjUzNS0xMC4zNjYgMy4wMjgtLjExNiA1Ljg5Mi45NjcgOC4wNjkgMy4wNiAyLjE3OCAyLjA5MyAzLjM3OCA0LjkxIDMuMzc4IDcuOTMxIDAgLjU1My40NDggMSAxIDFoM2MuNTUyIDAgMS0uNDQ3IDEtMXYtMTdjMC0zLjMwOS0yLjY5MS02LTYtNnptLTI4LjE3NyAyLjkyM2MuOTU5LS42MDQgMi4wNjQtLjkyMyAzLjE5Ny0uOTIzaDEwLjM3bC04LjM5MSA1LjAzNXYtLjAzNWgtMTEuNjUxem0tMjIuMDIgMTMuODY0IDEyLjM2OC03Ljc4N2gxMS41NTJsLTE4LjIzMyAxMC45NGMtMS4xNTcuNjk0LTIuNDggMS4wNi0zLjgyNyAxLjA2aC00LjU5NmMuMjQ4LTEuNzI4IDEuMjI5LTMuMjYzIDIuNzM2LTQuMjEzem01NC4xOTcgNS4yMTNoLTEuMDM4Yy0uMjM5LTMuMTg4LTEuNjIzLTYuMTMyLTMuOTU1LTguMzc0LTIuNTczLTIuNDczLTUuOTYzLTMuNzUtOS41MzQtMy42MTUtNi4xOS4yNDUtMTEuMzc0IDQuOTctMTIuMzE3IDEwLjk4OWgtMTcuMTU2djJoMTcuMDEzYy4wMDIgMS4zNjEuMjAyIDIuNzE1LjYxNSA0aC0zMC42Mjh2LTRoNC42NjNjMS43MDkgMCAzLjM4OS0uNDY1IDQuODU2LTEuMzQ1bDMyLjc1OC0xOS42NTVoMTAuNzIzYzIuMjA2IDAgNCAxLjc5NCA0IDR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDQ4YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNi42NTEgMTUuNjM1Yy0xLjc1NyAyLjEyNS0xLjQ1OCA1LjI4Mi42NjcgNy4wNGw0LjYyNCAzLjgyM2MuMTg3LjE1NC40MTIuMjI5LjYzNy4yMjkuMjg4IDAgLjU3My0uMTI0Ljc3MS0uMzYyIDEuNzU3LTIuMTI1IDEuNDU4LTUuMjgyLS42NjctNy4wNGwtNC42MjQtMy44MjNjLS40MjYtLjM1Mi0xLjA1Ni0uMjkyLTEuNDA4LjEzM3ptNS42NjIgOC41NzYtMy43MjEtMy4wNzdjLTEuMDA0LS44MzEtMS4zMjktMi4xODUtLjkwNS0zLjM0NWwzLjcyMSAzLjA3N2MxLjAwNS44MzEgMS4zMjkgMi4xODUuOTA1IDMuMzQ1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMS40NDUgOS4yMjktNC42MjQgMy44MjNjLTIuMTI1IDEuNzU4LTIuNDI0IDQuOTE2LS42NjcgNy4wNC4xOTguMjM5LjQ4My4zNjIuNzcxLjM2Mi4yMjUgMCAuNDUtLjA3NS42MzctLjIyOWw0LjYyNC0zLjgyM2MyLjEyNS0xLjc1NyAyLjQyNC00LjkxNS42NjctNy4wNC0uMzUyLS40MjQtLjk4My0uNDg0LTEuNDA4LS4xMzN6bS0uNTMzIDUuNjMyLTMuNzIyIDMuMDc4Yy0uMTUyLS40MTUtLjIxMS0uODYzLS4xNjgtMS4zMTYuMDc2LS43OTguNDU4LTEuNTE5IDEuMDc1LTIuMDI5bDMuNzIxLTMuMDc3Yy40MjMgMS4xNi4wOTkgMi41MTMtLjkwNiAzLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+",Music:rae,"Outdoor Blinds":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NTcgMGgtNDAyYy0zMC4zMjcgMC01NSAyNC42NzMtNTUgNTV2NDU3aDQzMnYtNDA4LjAzNWM3LjUwNyAzLjg0OCAxNiA2LjAzNSAyNSA2LjAzNSAzMC4zMjcgMCA1NS0yNC42NzMgNTUtNTVzLTI0LjY3My01NS01NS01NXptLTQwMiAzMGgzNTMuMDM1Yy0zLjg0OCA3LjUwNy02LjAzNSAxNi02LjAzNSAyNXY3aC0zNzJ2LTdjMC0xMy43ODUgMTEuMjE1LTI1IDI1LTI1em0tMjUgMjcydi0zMGgzNzJ2MzB6bTM3MiAzMHYzMGgtMzcydi0zMHptLTM3Mi05MHYtMzBoMzcydjMwem0wLTYwdi0zMGgzNzJ2MzB6bTAtNjB2LTMwaDM3MnYzMHptMCAzNjB2LTkwaDM3MnY5MHptNDI3LTQwMmMtMTMuNzg1IDAtMjUtMTEuMjE1LTI1LTI1czExLjIxNS0yNSAyNS0yNSAyNSAxMS4yMTUgMjUgMjUtMTEuMjE1IDI1LTI1IDI1eiIvPgogICAgICAgIDxwYXRoIGQ9Im02MCA0MjJoMzB2MzBoLTMweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDIgNDIyaDMwdjMwaC0zMHoiLz4KICAgIDwvZz4KPC9zdmc+",People:Mae,Pool:nae,"Power Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTIgM2MtLjI3NiAwLS41LS4yMjQtLjUtLjV2LTJjMC0uMjc2LjIyNC0uNS41LS41cy41LjIyNC41LjV2MmMwIC4yNzYtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4LjcxOCA1Ljc4MmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDYtLjE5NS0uMTk1LS4xOTUtLjUxMiAwLS43MDdsMS40MTQtMS40MTRjLjE5NS0uMTk1LjUxMi0uMTk1LjcwNyAwcy4xOTUuNTEyIDAgLjcwN2wtMS40MTQgMS40MTRjLS4wOTcuMDk3LS4yMjUuMTQ2LS4zNTMuMTQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMy41IDEyLjVoLTJjLS4yNzYgMC0uNS0uMjI0LS41LS41cy4yMjQtLjUuNS0uNWgyYy4yNzYgMCAuNS4yMjQuNS41cy0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjAuMTMyIDIwLjYzMmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDZsLTEuNDE0LTEuNDE0Yy0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN3MuNTEyLS4xOTUuNzA3IDBsMS40MTQgMS40MTRjLjE5NS4xOTUuMTk1LjUxMiAwIC43MDctLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDI0Yy0uMjc2IDAtLjUtLjIyNC0uNS0uNXYtMmMwLS4yNzYuMjI0LS41LjUtLjVzLjUuMjI0LjUuNXYyYzAgLjI3Ni0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMy44NjggMjAuNjMyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0Ni0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN2wxLjQxNC0xLjQxNGMuMTk1LS4xOTUuNTEyLS4xOTUuNzA3IDBzLjE5NS41MTIgMCAuNzA3bC0xLjQxNCAxLjQxNGMtLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIuNSAxMi41aC0yYy0uMjc2IDAtLjUtLjIyNC0uNS0uNXMuMjI0LS41LjUtLjVoMmMuMjc2IDAgLjUuMjI0LjUuNXMtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUuMjgyIDUuNzgyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0NmwtMS40MTMtMS40MTRjLS4xOTUtLjE5NS0uMTk1LS41MTIgMC0uNzA3cy41MTItLjE5NS43MDcgMGwxLjQxNCAxLjQxNGMuMTk1LjE5NS4xOTUuNTEyIDAgLjcwNy0uMDk4LjA5Ny0uMjI2LjE0Ni0uMzU0LjE0NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAuNTczIDIwYy0uMDU5IDAtLjExNy0uMDEtLjE3NS0uMDMxLS4yMTktLjA4Mi0uMzUyLS4zMDQtLjMyMS0uNTM0bC44NTMtNi40MzVoLTMuNDNjLS4xODkgMC0uMzYyLS4xMDctLjQ0Ny0uMjc2cy0uMDY3LS4zNzIuMDQ3LS41MjRsNi04Yy4xMzktLjE4Ni4zODYtLjI1Mi41OTctLjE2LjIxMi4wOTEuMzM1LjMxNC4yOTcuNTQybC0uOTA0IDUuNDE4aDMuNDFjLjE4NCAwIC4zNTMuMTAxLjQ0LjI2M3MuMDc4LjM1OC0uMDIyLjUxM2wtNS45MjcgOWMtLjA5NS4xNDMtLjI1NC4yMjQtLjQxOC4yMjR6bS0yLjA3My04aDNjLjE0NSAwIC4yODEuMDYzLjM3Ni4xNzEuMDk1LjEwNy4xMzkuMjUyLjEyLjM5NWwtLjY0MSA0LjgzOCA0LjIxNy02LjQwNGgtMy4wNzJjLS4xNDcgMC0uMjg2LS4wNjQtLjM4Mi0uMTc3LS4wOTUtLjExMi0uMTM2LS4yNjEtLjExMS0uNDA1bC42NjMtMy45Nzh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Printer:aae,Pump:cae,Receiver:uae,Sconces:Nae,Security:lae,Shading:Lae,Shutters:jae,SmokeDetector:gae,Sockets:Tae,Speaker:yae,Stove:Dae,"Table Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05Ny41IDIyMC4zNjEtMTUuOTE0IDE1LjkxNGE2IDYgMCAxIDAgOC40ODQgOC40ODZsMTUuOTE1LTE1LjkxNWE2IDYgMCAxIDAgLTguNDg0LTguNDg1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS41MSAxMTdhNiA2IDAgMCAwIDQuMjQzLTEwLjI0MmwtMTUuOTE0LTE1LjkxNWE2IDYgMCAwIDAgLTguNDg2IDguNDg2bDE1LjkxNCAxNS45MTRhNS45NzggNS45NzggMCAwIDAgNC4yNDMgMS43NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzNS41IDI0Mi41MDgtMTUuOTEtMTUuOTE0YTYgNiAwIDAgMCAtOC40ODYgOC40ODVsMTUuOTE0IDE1LjkxNWE2IDYgMCAwIDAgOC40ODYtOC40ODZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTg2LjgyNiAxNzFhNiA2IDAgMCAwIC02LTZoLTI0LjgzN2E2IDYgMCAwIDAgMCAxMmgyNC44MzdhNiA2IDAgMCAwIDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTU1IDIzOS41MjFhNiA2IDAgMCAwIC02IDZ2MjQuODM2YTYgNiAwIDAgMCAxMiAwdi0yNC44MzZhNiA2IDAgMCAwIC02LTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzOC44NTIgNDUxLjk2OWE0MS44MzcgNDEuODM3IDAgMCAwIC00MS4xNjYtMzUuOTY5aC0yOC42ODZ2LTMyNi42ODRhNjkuMzA5IDY5LjMwOSAwIDAgMCAtMTIxLjctNDUuMzgyIDU2LjAyMiA1Ni4wMjIgMCAwIDAgLTQ4LjcwOSA2LjM0OWwtODEuNTE5IDU0LjA2OGE2IDYgMCAwIDAgLS45MjUgOS4yNDJsMjMuNDIyIDIzLjQyMy0xLjQ0MiAxLjQ0MmEzNS4xODggMzUuMTg4IDAgMCAwIDQ5Ljc2MyA0OS43NjNsMS40NDItMS40NDIgMjMuNDIyIDIzLjQyMWE2IDYgMCAwIDAgNC4yNDYgMS43NTljLjIgMCAuNC0uMDEuNi0uMDNhNiA2IDAgMCAwIDQuNC0yLjY1NGw1NC4wNjctODEuNTE5YTU2LjA4OCA1Ni4wODggMCAwIDAgMy40ODgtNTUuNjU2IDI2LjM4NiAyNi4zODYgMCAwIDEgNDYuNDQ1IDE3LjIxNnYzMjYuNjg0aC0yOS4xODJhNDIgNDIgMCAwIDAgLTQxLjM0MyAzNi4wNzYgMjYuNCAyNi40IDAgMCAwIC0yMi40NzUgMjUuOTU2djcuOTY4YTYuMjgyIDYuMjgyIDAgMCAwIDYuMzE5IDZoMjE2LjY5MmE1Ljk5MiA1Ljk5MiAwIDAgMCA1Ljk4OS02di03Ljk2OGEyNi4yNDcgMjYuMjQ3IDAgMCAwIC0yMy4xNDgtMjYuMDYzem0tMjU5LjQ1Mi0yNzIuMjM0YTIzLjE4OCAyMy4xODggMCAwIDEgLTMyLjc5My0zMi43OTJsMS40NDMtMS40NDMgMzIuNzkzIDMyLjc5M3ptMzYuNjQ4IDE2Ljc5NC04Ni4yMy04Ni4yMjkgMTguMDkzLTEyIDgwLjE0IDgwLjE0em01MC4wMTItNzUuNC0zMS4yNDYgNDcuMTEtNzYuNy03Ni43MDUgNDcuMTEtMzEuMjQ2YTQzLjg5NCA0My44OTQgMCAwIDEgNjAuODQgNjAuODQxem0zMy41MjgtNzAuMjcyYTM4LjI1MiAzOC4yNTIgMCAwIDAgLTI2LjY4OCAxMC44MjMgNTQuNjIgNTQuNjIgMCAwIDAgLTE0LjE4Ni0xMi40MzUgNTcuMzEgNTcuMzEgMCAwIDEgOTguMjg2IDQwLjA3MXYzMjYuNjg0aC0xOXYtMzI2LjY4NGEzOC40NjEgMzguNDYxIDAgMCAwIC0zOC40MDktMzguNDY0em0tMi43NyAzNzcuMTQzaDEwMC44NjhjMTQuMjU5IDAgMjYuMTk1IDExIDI4Ljk3NiAyNGgtMTU4LjgxOWMyLjc4MS0xMyAxNC43MTYtMjQgMjguOTc1LTI0em0xNTMuMTgyIDUyaC0yMDV2LTEuOTY4YTE0LjMyIDE0LjMyIDAgMCAxIDE0LjMxOS0xNC4wMzJoMTc2LjY5MmExNC4wMzQgMTQuMDM0IDAgMCAxIDEzLjk4OSAxNC4wMzJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwNSAzODEuMDMxYTYgNiAwIDAgMCAxMiAwdi03NS44MDZhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTEgMjkwLjg0NGE2IDYgMCAwIDAgNi02di00LjgzNGE2IDYgMCAwIDAgLTEyIDB2NC44MzRhNiA2IDAgMCAwIDYgNnoiLz4KICAgIDwvZz4KPC9zdmc+","Temperature Sensors":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTM1MiwzODUuNDA2VjUzLjMzM0MzNTIsMjMuOTI3LDMyOC4wNzMsMCwyOTguNjY3LDBzLTUzLjMzMywyMy45MjctNTMuMzMzLDUzLjMzM3YzMzIuMDczCgkJCQlDMjMxLjcxOSwzOTkuMzY1LDIyNCw0MTguMDMxLDIyNCw0MzcuMzMzQzIyNCw0NzguNSwyNTcuNSw1MTIsMjk4LjY2Nyw1MTJjNDEuMTY3LDAsNzQuNjY3LTMzLjUsNzQuNjY3LTc0LjY2NwoJCQkJQzM3My4zMzMsNDE4LjAzMSwzNjUuNjE1LDM5OS4zNjUsMzUyLDM4NS40MDZ6IE0yOTguNjY3LDQ5MC42NjdjLTI5LjQwNiwwLTUzLjMzMy0yMy45MjctNTMuMzMzLTUzLjMzMwoJCQkJYzAtMTUuMTA0LDYuMzIzLTI5LjEyNSwxNy44MTMtMzkuNDY5YzIuMjQtMi4wMzEsMy41MjEtNC45MDYsMy41MjEtNy45MjdWNTMuMzMzYzAtMTcuNjQ2LDE0LjM1NC0zMiwzMi0zMgoJCQkJYzE3LjY0NiwwLDMyLDE0LjM1NCwzMiwzMnYzMzYuNjA0YzAsMy4wMjEsMS4yODEsNS44OTYsMy41MjEsNy45MjdDMzQ1LjY3Nyw0MDguMjA4LDM1Miw0MjIuMjI5LDM1Miw0MzcuMzMzCgkJCQlDMzUyLDQ2Ni43NCwzMjguMDczLDQ5MC42NjcsMjk4LjY2Nyw0OTAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDkuMzMzLDQwNy4yOThWMjI0YzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42Njd2MTgzLjI5OAoJCQkJYy0xMi4zODksNC40MTgtMjEuMzMzLDE2LjE0Ny0yMS4zMzMsMzAuMDM1YzAsMTcuNjQ2LDE0LjM1NCwzMiwzMiwzMmMxNy42NDYsMCwzMi0xNC4zNTQsMzItMzIKCQkJCUMzMzAuNjY3LDQyMy40NDUsMzIxLjcyMyw0MTEuNzE2LDMwOS4zMzMsNDA3LjI5OHogTTI5OC42NjcsNDQ4Yy01Ljg4NSwwLTEwLjY2Ny00Ljc4MS0xMC42NjctMTAuNjY3CgkJCQljMC01Ljg4NSw0Ljc4MS0xMC42NjcsMTAuNjY3LTEwLjY2N2M1Ljg4NSwwLDEwLjY2Nyw0Ljc4MSwxMC42NjcsMTAuNjY3QzMwOS4zMzMsNDQzLjIxOSwzMDQuNTUyLDQ0OCwyOTguNjY3LDQ0OHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjEzLjMzMywzNDEuMzMzaC02NGMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDY0CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzQ2LjEwNCwyMTkuMjI5LDM0MS4zMzMsMjEzLjMzMywzNDEuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI5OC42NjdIMTkyYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3YzAsNS44OTYsNC43NzEsMTAuNjY3LDEwLjY2NywxMC42NjdoMjEuMzMzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzAzLjQzOCwyMTkuMjI5LDI5OC42NjcsMjEzLjMzMywyOTguNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI1NkgxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwyNjAuNzcxLDIxOS4yMjksMjU2LDIxMy4zMzMsMjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDkuMzMzLDIzNC42NjdoNjRjNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N3MtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdoLTY0CgkJCQljLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdTMTQzLjQzOCwyMzQuNjY3LDE0OS4zMzMsMjM0LjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTQ5LjMzMywxMDYuNjY3aDY0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3aC02NAoJCQkJYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzE0My40MzgsMTA2LjY2NywxNDkuMzMzLDEwNi42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTcwLjY2N0gxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwxNzUuNDM4LDIxOS4yMjksMTcwLjY2NywyMTMuMzMzLDE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTI4SDE5MmMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDIxLjMzMwoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdDMjI0LDEzMi43NzEsMjE5LjIyOSwxMjgsMjEzLjMzMywxMjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Tv:dae,"Vacuum Cleaner":"PHN2ZyB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ0MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOC0uMDI3MzQ0LTIyLjA4MjAzMS0xNy45MTc5NjktMzkuOTcyNjU2LTQwLTQwLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzMy41ODIwMzEtOCA4LThjMzAuOTE0MDYyLjAzNTE1NiA1NS45NjQ4NDQgMjUuMDg1OTM4IDU2IDU2IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzLTMuNTgyMDMxLTgtOC04LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04YzEzLjI1MzkwNiAwIDI0IDEwLjc0NjA5NCAyNCAyNCAwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04LS4wNDY4NzUtMzkuNzQ2MDk0LTMyLjI1MzkwNi03MS45NTMxMjUtNzItNzItNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOHMzLjU4MjAzMS04IDgtOGM0OC41NzgxMjUuMDU4NTkzOCA4Ny45NDE0MDYgMzkuNDIxODc1IDg4IDg4IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOCAuMDM1MTU2LTMwLjkxNDA2MiAyNS4wODU5MzgtNTUuOTY0ODQ0IDU2LTU2IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0yMi4wODIwMzEuMDI3MzQ0LTM5Ljk3MjY1NiAxNy45MTc5NjktNDAgNDAgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04IDAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNCA0LjQxNzk2OSAwIDggMy41ODIwMzEgOCA4cy0zLjU4MjAzMSA4LTggOC04IDMuNTgyMDMxLTggOC0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LTggLjA1ODU5MzgtNDguNTc4MTI1IDM5LjQyMTg3NS04Ny45NDE0MDYyIDg4LTg4IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0zOS43NDYwOTQuMDQ2ODc1LTcxLjk1MzEyNSAzMi4yNTM5MDYtNzIgNzIgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0MTZjMjYuNTA3ODEyIDAgNDgtMjEuNDkyMTg4IDQ4LTQ4cy0yMS40OTIxODgtNDgtNDgtNDgtNDggMjEuNDkyMTg4LTQ4IDQ4Yy4wMjczNDQgMjYuNSAyMS41IDQ3Ljk3MjY1NiA0OCA0OHptMC04MGMxNy42NzE4NzUgMCAzMiAxNC4zMjgxMjUgMzIgMzJzLTE0LjMyODEyNSAzMi0zMiAzMi0zMi0xNC4zMjgxMjUtMzItMzIgMTQuMzI4MTI1LTMyIDMyLTMyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQwIDE4NGMxMy4yNTM5MDYgMCAyNC0xMC43NDYwOTQgMjQtMjRzLTEwLjc0NjA5NC0yNC0yNC0yNC0yNCAxMC43NDYwOTQtMjQgMjQgMTAuNzQ2MDk0IDI0IDI0IDI0em0wLTMyYzQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzE3Ljk0NTMxMiAxNTJ2LjA0Njg3NWguMDU0Njg4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE1Mmg0OHYxNmgtNDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODAgMTUyaDQ4djE2aC00OHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0OGMtMTAxLjI2NTYyNS0uMDExNzE5LTE4OC45NDUzMTIgNzAuMzMyMDMxLTIxMC44OTA2MjUgMTY5LjE4NzUtMjEuOTQ1MzEzIDk4Ljg1OTM3NSAyNy43MzQzNzUgMTk5LjY5MTQwNiAxMTkuNDkyMTg3IDI0Mi41MzEyNSA1Ny45MjU3ODIgMjcuMDM1MTU2IDEyNC44NTE1NjMgMjcuMDM1MTU2IDE4Mi43ODEyNSAwIDkxLjc1NzgxMy00Mi44MzU5MzggMTQxLjQzMzU5NC0xNDMuNjY0MDYyIDExOS40OTIxODgtMjQyLjUyMzQzOC0yMS45NDE0MDYtOTguODU1NDY4LTEwOS42MTMyODEtMTY5LjE5OTIxOC0yMTAuODc1LTE2OS4xOTUzMTJ6bTAgMTZjMTA3LjI4NTE1Ni4xMzI4MTIgMTk1LjM5ODQzOCA4NC44MDQ2ODggMTk5LjgwMDc4MSAxOTJoLTE2Yy00LjU4MjAzMS05OC4xNzk2ODgtODUuNTE1NjI1LTE3NS40MjE4NzUtMTgzLjgwMDc4MS0xNzUuNDIxODc1cy0xNzkuMjE4NzUgNzcuMjQyMTg3LTE4My44MDA3ODEgMTc1LjQyMTg3NWgtMTZjNC40MDIzNDMtMTA3LjE5NTMxMiA5Mi41MTU2MjUtMTkxLjg2NzE4OCAxOTkuODAwNzgxLTE5MnptMjkuMTEzMjgxIDI0NS40OTYwOTRjMzAuNjgzNTk0IDExLjk4ODI4MSA1MC44ODI4MTMgNDEuNTU4NTk0IDUwLjg4NjcxOSA3NC41MDM5MDZ2MjcuNjQwNjI1Yy00OS44Nzg5MDYgMjcuMTQ0NTMxLTExMC4xMjEwOTQgMjcuMTQ0NTMxLTE2MCAwdi0yNy42NDA2MjVjLjAwMzkwNi0yNi40Mjk2ODggMTMuMDYyNS01MS4xNTIzNDQgMzQuODg2NzE5LTY2LjA1NDY4OCAyMS44MjgxMjUtMTQuOTA2MjUgNDkuNjA5Mzc1LTE4LjA2NjQwNiA3NC4yMjY1NjItOC40NDkyMTh6bTY2Ljg4NjcxOSA3NC41MDM5MDZjMC01My4wMTk1MzEtNDIuOTgwNDY5LTk2LTk2LTk2cy05NiA0Mi45ODA0NjktOTYgOTZ2MTcuNzM0Mzc1Yy0zOC44NjMyODEtMjYuOTgwNDY5LTY0LjUwNzgxMi02OS4xMzI4MTMtNzAuNjAxNTYyLTExNi4wNDY4NzUtNi4wOTc2NTctNDYuOTE3OTY5IDcuOTI1NzgxLTk0LjIyMjY1NiAzOC42MDE1NjItMTMwLjIzODI4MXYzNi41NTA3ODFjLjAyNzM0NCAyMi4wODIwMzEgMTcuOTE3OTY5IDM5Ljk3MjY1NiA0MCA0MGgxNzZjMjIuMDgyMDMxLS4wMjczNDQgMzkuOTcyNjU2LTE3LjkxNzk2OSA0MC00MHYtMzYuNTUwNzgxYzMwLjY3NTc4MSAzNi4wMTU2MjUgNDQuNjk5MjE5IDgzLjMyMDMxMiAzOC42MDE1NjIgMTMwLjIzODI4MS02LjA5Mzc1IDQ2LjkxNDA2Mi0zMS43MzgyODEgODkuMDY2NDA2LTcwLjYwMTU2MiAxMTYuMDQ2ODc1em0tMjA4LTI0NC44NjMyODFjNjMuNTg5ODQ0LTU3LjUxNTYyNSAxNjAuNDEwMTU2LTU3LjUxNTYyNSAyMjQgMHY1Mi44NjMyODFjMCAxMy4yNTM5MDYtMTAuNzQ2MDk0IDI0LTI0IDI0aC0xNzZjLTEzLjI1MzkwNiAwLTI0LTEwLjc0NjA5NC0yNC0yNHptLTg3LjcxMDkzOCAxMzIuODYzMjgxaDE2YzIuODM1OTM4IDYxLjAzOTA2MiAzNS42NzE4NzYgMTE2LjcyMjY1NiA4Ny43MTA5MzggMTQ4Ljc1MzkwNnYxOC42NDQ1MzJjLTYxLjQzNzUtMzMuODUxNTYzLTEwMC43NTM5MDYtOTcuMzEyNS0xMDMuNzEwOTM4LTE2Ny4zOTg0Mzh6bTExOS43MTA5MzggMTc1LjI0NjA5NHYtMTcuNjQ0NTMyYzUwLjUwMzkwNiAyNC41NjI1IDEwOS40OTYwOTQgMjQuNTYyNSAxNjAgMHYxNy42NzE4NzZjLTUwLjk5NjA5NCAyMi4zMzU5MzctMTA5LjAwMzkwNiAyMi4zMzU5MzctMTYwIDB6bTE3Ni03Ljg0NzY1NnYtMTguNjQ0NTMyYzUyLjA0Mjk2OS0zMi4wMjczNDQgODQuODg2NzE5LTg3LjcxMDkzNyA4Ny43MjY1NjItMTQ4Ljc1MzkwNmgxNmMtMi45NjA5MzcgNzAuMDg5ODQ0LTQyLjI4NTE1NiAxMzMuNTUwNzgxLTEwMy43MjY1NjIgMTY3LjM5ODQzOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ventilation:zae,"Washing Machines":"PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIDAgNDk2IDQ5NiIgd2lkdGg9IjQ5NnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDg4IDBoLTQwMGMtNC40MjU3ODEgMC04IDMuNTg1OTM4LTggOHYyOTYuODMyMDMxYy0yLjYwMTU2Mi0uNTI3MzQzLTUuMjczNDM4LS44MzIwMzEtOC0uODMyMDMxLTIyLjA1NDY4OCAwLTQwIDE3Ljk0NTMxMi00MCA0MHYuMTY3OTY5Yy03LjgyNDIxOSA1Ljg4NjcxOS0xMy4xNTIzNDQgMTQuMzk4NDM3LTE1LjEyMTA5NCAyMy44MzIwMzFoLTguODc4OTA2Yy00LjQyNTc4MSAwLTggMy41ODU5MzgtOCA4djMyYzAgNC40MTQwNjIgMy41NzQyMTkgOCA4IDhoOHYyNGMwIDMwLjg3ODkwNiAyNS4xMjg5MDYgNTYgNTYgNTZoNDE2YzQuNDI1NzgxIDAgOC0zLjU4NTkzOCA4LTh2LTQ4MGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04em0tOCAxNnY4MGgtMzg0di04MHptLTQzNS42NTYyNSAzMzkuMTc1NzgxYzIuODM5ODQ0LTEuNjAxNTYyIDQuNDMzNTk0LTQuNzYxNzE5IDQuMDE1NjI1LThsLS4xMjg5MDYtLjkyOTY4N2MtLjEwMTU2My0uNzM0Mzc1LS4yMzA0NjktMS40Njg3NS0uMjMwNDY5LTIuMjQ2MDk0IDAtMTMuMjMwNDY5IDEwLjc2OTUzMS0yNCAyNC0yNCA4LjQ0OTIxOSAwIDE2LjEyMTA5NCA0LjQwNjI1IDIwLjUyNzM0NCAxMS44MDA3ODEgMS4xOTkyMTggMi4wMTU2MjUgMy4yMzQzNzUgMy40MDYyNSA1LjU1MDc4MSAzLjc5Mjk2OSAyLjMyODEyNS4zOTg0MzggNC42OTkyMTktLjI2NTYyNSA2LjQ5NjA5NC0xLjc5Mjk2OSAzLjEyMTA5My0yLjY0ODQzNyA4LjMyMDMxMi01LjgwMDc4MSAxNS40MjU3ODEtNS44MDA3ODEgOC41NTg1OTQgMCAxNi41MzUxNTYgNC43MjY1NjIgMjAuODE2NDA2IDEyLjMzNTkzOCAxLjY2NDA2MyAyLjk3NjU2MiA1LjA1NDY4OCA0LjU1ODU5MyA4LjM4MjgxMyAzLjk2MDkzNyA4LjM1MTU2Mi0xLjQ4ODI4MSAxNi45MDYyNSA0LjI0NjA5NCAxOC40OTYwOTMgMTIuNzQyMTg3LjU3MDMxMyAzLjAzOTA2MyAyLjgzOTg0NCA1LjQ4ODI4MiA1LjgzOTg0NCA2LjI3MzQzOCAzLjAxNTYyNS44MDA3ODEgNi4xNjc5NjktLjIzNDM3NSA4LjE2Nzk2OS0yLjYwOTM3NSA0LjYxNzE4Ny01LjUyNzM0NCAxMS4yODkwNjMtOC43MDMxMjUgMTguMjk2ODc1LTguNzAzMTI1IDEwLjQxNDA2MiAwIDE5LjIxNDg0NCA2LjcxMDkzOCAyMi41MjczNDQgMTZoLTE4OC45MjU3ODJjMS45NDE0MDctNS4yOTY4NzUgNS42MDU0NjktOS45Mzc1IDEwLjc0MjE4OC0xMi44MjQyMTl6bTEwNy42NTYyNS03NS4xNzU3ODFjMC03NC45OTIxODggNjEuMDA3ODEyLTEzNiAxMzYtMTM2czEzNiA2MS4wMDc4MTIgMTM2IDEzNi02MS4wMDc4MTIgMTM2LTEzNiAxMzZjLTExLjI4OTA2MiAwLTIyLjMyODEyNS0xLjUxOTUzMS0zMy4wNzgxMjUtNC4yMTQ4NDQuNjI4OTA2LTEuMTQ0NTMxIDEuMDc4MTI1LTIuMzk0NTMxIDEuMDc4MTI1LTMuNzg1MTU2di0xMi4zMzU5MzhjMTAuMzY3MTg4IDIuODYzMjgyIDIxLjA3ODEyNSA0LjMzNTkzOCAzMiA0LjMzNTkzOCA2Ni4xNjc5NjkgMCAxMjAtNTMuODMyMDMxIDEyMC0xMjBzLTUzLjgzMjAzMS0xMjAtMTIwLTEyMC0xMjAgNTMuODMyMDMxLTEyMCAxMjBjMCAyMS4wODk4NDQgNS40ODA0NjkgNDEuNDMzNTk0IDE1LjgyNDIxOSA1OS41MDM5MDYtMS43OTI5NjkuODA4NTk0LTMuNTM1MTU3IDEuNzI2NTYzLTUuMTkxNDA3IDIuODAwNzgyLTQuMDU4NTkzLTYuMTEzMjgyLTEwLjE1MjM0My0xMC42MzI4MTMtMTcuMjA3MDMxLTEyLjgyNDIxOS02LjE2Nzk2OS0xNS43NjE3MTktOS40MjU3ODEtMzIuMzU5Mzc1LTkuNDI1NzgxLTQ5LjQ4MDQ2OXptNDguNDY0ODQ0IDU2LjA0Njg3NWMtNi4zNjcxODgtOS45MTAxNTYtMTEtMjAuNzAzMTI1LTEzLjY3OTY4OC0zMi4wNDY4NzVoNS4yMTQ4NDRjNy4yODkwNjIgMCAxNC4xNTIzNDQtMi44Mzk4NDQgMTkuMzEyNS04bDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGM1LjE2Nzk2OSA1LjE2MDE1NiAxMi4wMjM0MzggOCAxOS4zMTI1IDhoNS4wOTc2NTZjLTEwLjg4MjgxMiA0NS43OTI5NjktNTIuMDI3MzQ0IDgwLTEwMS4wOTc2NTYgODAtMTAuOTc2NTYyIDAtMjEuNjk1MzEyLTEuNzkyOTY5LTMyLTUuMTI4OTA2di0yLjg3MTA5NGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04aC04LjgwODU5NGMtMy42ODc1LTE4LjA4OTg0NC0xOS42MjUtMzEuNzI2NTYyLTM4LjcyNjU2Mi0zMS45NTMxMjV6bS0xNi40NjQ4NDQtNTYuMDQ2ODc1YzAtNTcuMzQzNzUgNDYuNjU2MjUtMTA0IDEwNC0xMDRzMTA0IDQ2LjY1NjI1IDEwNCAxMDRjMCAyLjcwMzEyNS0uMTk5MjE5IDUuMzUxNTYyLS40MDYyNSA4aC03LjU5Mzc1Yy0zLjAyMzQzOCAwLTUuODU1NDY5LTEuMTc1NzgxLTgtMy4zMTI1bC00LjY4NzUtNC42ODc1Yy0xMC4zMjgxMjUtMTAuMzEyNS0yOC4yOTY4NzUtMTAuMzIwMzEyLTM4LjYyNSAwbC00LjY4NzUgNC42Nzk2ODhjLTQuMjgxMjUgNC4yODEyNS0xMS43MTg3NSA0LjI4MTI1LTE2IDBsLTQuNjg3NS00LjY3OTY4OGMtMTAuMzI4MTI1LTEwLjMxMjUtMjguMjk2ODc1LTEwLjMyMDMxMi0zOC42MjUgMGwtNC42ODc1IDQuNjc5Njg4Yy00LjI4MTI1IDQuMjgxMjUtMTEuNzE4NzUgNC4yODEyNS0xNiAwbC00LjY4NzUtNC42Nzk2ODhjLTEwLjMyODEyNS0xMC4zMTI1LTI4LjI5Njg3NS0xMC4zMjAzMTItMzguNjI1IDBsLTQuNjg3NSA0LjY3OTY4OGMtMi4xNDQ1MzEgMi4xNDQ1MzEtNC45NzY1NjIgMy4zMjAzMTItOCAzLjMyMDMxMmgtNy42OTUzMTJjLS4xOTkyMTktMi42NDg0MzgtLjMwNDY4OC01LjMyMDMxMi0uMzA0Njg4LTh6bS0xNjggMTA0aDIyNHYxNmgtMjI0em0xNjAgOTZoLTEwNGMtMjIuMDU0Njg4IDAtNDAtMTcuOTQ1MzEyLTQwLTQwdi0yNGgxOTJ2MjRjMCAyMi4wNTQ2ODgtMTcuOTQ1MzEyIDQwLTQwIDQwem00Ny4xMTMyODEgMGMxMC40MDYyNS0xMC4xNzU3ODEgMTYuODg2NzE5LTI0LjMzNTkzOCAxNi44ODY3MTktNDB2LTE1Ljg3MTA5NGMxNS40MjU3ODEgNS4xNDQ1MzIgMzEuNTAzOTA2IDcuODcxMDk0IDQ4IDcuODcxMDk0IDgzLjgxNjQwNiAwIDE1Mi02OC4xODM1OTQgMTUyLTE1MnMtNjguMTgzNTk0LTE1Mi0xNTItMTUyLTE1MiA2OC4xODM1OTQtMTUyIDE1MmMwIDEzLjAxNTYyNSAxLjgwMDc4MSAyNS43MzQzNzUgNS4wMDc4MTIgMzguMTEzMjgxLTYuMjIyNjU2LTMuOTA2MjUtMTMuNDY0ODQzLTYuMTEzMjgxLTIxLjAwNzgxMi02LjExMzI4MS02LjUzNTE1NiAwLTEzIDEuNjcxODc1LTE4Ljc4NTE1NiA0LjgxNjQwNi0xLjU4OTg0NC0xLjcyNjU2Mi0zLjM3NS0zLjIxNDg0NC01LjIxNDg0NC00LjYyNXYtMjAwLjE5MTQwNmgzODR2MzY4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjAwIDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY0IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ4IDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ0OCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDE2IDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM4NCA2NGgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=","Water Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNjguOTkgMTg3LjQ5OWMtNS43NTEtOS45NTktMjAuMTk2LTEwLjAxNi0yNS45NzkgMC0yMS44MSA0MC42MTEtMzIuMDExIDQ4LjA2MS0zMi4wMTEgNjcuNTAxIDAgMjQuODEzIDIwLjE4NyA0NSA0NSA0NXM0NS0yMC4xODcgNDUtNDVjMC0xOS40NTgtMTAuNDg2LTI3LjQyMS0zMi4wMS02Ny41MDF6bS0xMi45OSA4Mi41MDFjLTguMjcxIDAtMTUtNi43MjktMTUtMTUgMC02LjY4NyAzLjA0Mi04LjIxNSAxNS0zMC4wMDUgMTEuOTc0IDIxLjgxOCAxNSAyMy4zMTggMTUgMzAuMDA1IDAgOC4yNzEtNi43MjkgMTUtMTUgMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNiAwaC0zMDBjLTguNzY5IDAtMTUuNjc2IDcuNTAyLTE0Ljk0OCAxNi4yNDZsMzAgMzYwYy42NDggNy43NzQgNy4xNDcgMTMuNzU0IDE0Ljk0OCAxMy43NTRoNzV2MzJoLTE1Yy0xMy4zMTggMC0yMC4wNDggMTYuMTY1LTEwLjYwNiAyNS42MDZsNjAgNjBjNS44NTcgNS44NTggMTUuMzU1IDUuODU5IDIxLjIxMyAwbDYwLTYwYzkuNDE3LTkuNDE3IDIuNzQ1LTI1LjYwNi0xMC42MDctMjUuNjA2aC0xNXYtMzJoNzVjNy44MDEgMCAxNC4zLTUuOTggMTQuOTQ4LTEzLjc1NGwzMC0zNjBjLjcyOC04LjczOS02LjE3NC0xNi4yNDYtMTQuOTQ4LTE2LjI0NnptLTE2LjMwMiAzMC01LjM0NiA2NC4xNDdjLTIxLjc2OCA4LjM0My0zNS44NzEgMjUuODUzLTUzLjM1MiAyNS44NTMtMjIuNzE3IDAtNDAuNDIzLTMwLTc1LTMwLTM0LjcyNyAwLTUyLjE3NiAzMC03NSAzMC0xNy40ODUgMC0zMS41NTYtMTcuNDk5LTUzLjM1Mi0yNS44NTNsLTUuMzQ2LTY0LjE0N3ptLTI3LjUgMzMwaC03Ni4xOThjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2NjJjMCA2LjQzMiA0LjA0OCAxMS45MTkgOS43MzYgMTQuMDVsLTI0LjczNiAyNC43MzctMjQuNzM2LTI0LjczNmM1LjY4OC0yLjEzMSA5LjczNi03LjYxOCA5LjczNi0xNC4wNXYtNjJjMC04LjI4NC02LjcxNi0xNS0xNS0xNWgtNzYuMTk4bC0xOS4yMDgtMjMwLjUwMmMxNC4zMTUgOS4xNTMgMjkuMDc2IDIwLjUwMSA1MC40MDYgMjAuNTAxIDM0LjcyNyAwIDUyLjE3Ni0zMCA3NS0zMCAyMi43MTcgMCA0MC40MjMgMzAgNzUgMzAgMjEuMDE5IDAgMzUuNDQ5LTEwLjkzNyA1MC40MDYtMjAuNTAyeiIvPgogICAgPC9nPgo8L3N2Zz4=","Water Heater":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTY3LDE4NS4zMjV2MjgxYTM1LjU0MSwzNS41NDEsMCwwLDAsMzUuNDY5LDM1LjYzMUwzMTkuMDYsNTAyaC4wMDZBMzUuODkxLDM1Ljg5MSwwLDAsMCwzNTUsNDY2LjM2OVY0NjRoNjAuNjJjMzQuODM3LDAsNjMuMzgtMjcuODcsNjMuMzgtNjIuNzE1VjE4OS43M2MwLTM0Ljg0NC0yOC41NDMtNjIuNzMtNjMuMzgtNjIuNzNIMzU1di05LjY4OWMwLS4wNzQtLjE2LS4xNDYtLjE2Mi0uMjE5cy0uMDY1LS4xMTQtLjA2NS0uMTg3QTYyLjA0NCw2Mi4wNDQsMCwwLDAsMjkyLjc2Myw1NUgyMTlWNDRoMTcuODI4QzI0NS42NSw0NCwyNTMsMzcuMiwyNTMsMjguMzc0VjI2YTE2LjE2NywxNi4xNjcsMCwwLDAtMTYuMTcyLTE2SDE4OS43MDZBMTUuNzcsMTUuNzcsMCwwLDAsMTc0LDI2djIuMzc0QTE1LjQ1NCwxNS40NTQsMCwwLDAsMTg5LjcwNiw0NEgyMDdWNTVIMTMzLjc3MUMxMDEuNSw1NSw3NC45MjQsODAsNzIuMSwxMTFIMzkuMmE2LjA1Niw2LjA1NiwwLDAsMC01LjIsOC45MjlaTTM1NSwxNjFoNjAuNjJBMjguNTgxLDI4LjU4MSwwLDAsMSw0NDQsMTg5LjczVjQwMS4yODVBMjguNTY4LDI4LjU2OCwwLDAsMSw0MTUuNjIsNDMwSDM1NVptMCwyODFoNjAuNjJBNDAuNTgxLDQwLjU4MSwwLDAsMCw0NTYsNDAxLjI4NVYxODkuNzNBNDAuNTk0LDQwLjU5NCwwLDAsMCw0MTUuNjIsMTQ5SDM1NVYxMzloNjAuNjJjMjguMjIxLDAsNTEuMzgsMjIuNSw1MS4zOCw1MC43M1Y0MDEuMjg1QzQ2Nyw0MjkuNTEzLDQ0My44NDEsNDUyLDQxNS42Miw0NTJIMzU1Wm0tMTIsMjQuMzY5QTIzLjg5MSwyMy44OTEsMCwwLDEsMzE5LjA2Niw0OTBoMGwtMjE2LjU5MS0uMDQxQTIzLjUyNywyMy41MjcsMCwwLDEsNzksNDY2LjMyOFY0NTIuNTdsMjY0LC4wNDlaTTE5MCwzMmE0LDQsMCwwLDEtNC00VjI2YTQsNCwwLDAsMSw0LTRoNDdhNCw0LDAsMCwxLDQsNHYyYTQsNCwwLDAsMS00LDRaTTEzMy43NzEsNjdIMjkyLjc2M2E0OS44MjksNDkuODI5LDAsMCwxLDQ5LjU3Niw0NEg4NC4yQTQ5LjgzLDQ5LjgzLDAsMCwxLDEzMy43NzEsNjdaTTM0MywxMjNWNDQwLjYxOUw3OSw0NDAuNTdWMTgzLjlhNi44NTMsNi44NTMsMCwwLDAtLjgtMi44NTFMNDguOTM0LDEyM1oiLz4KICAgICAgICA8cGF0aCBkPSJNMjAzLDM4OC40NDNBMzUuMDE3LDM1LjAxNywwLDAsMCwyMzgsMzUzLjZWMjM2Ljg0NGEzNSwzNSwwLDAsMC03MCwwVjM1My42QTM1LjAxNywzNS4wMTcsMCwwLDAsMjAzLDM4OC40NDNabS0yMy0xNTEuNmEyMywyMywwLDAsMSw0NiwwVjI4OUgxODBaTTE4MCwzMDFoNDZ2NTIuNmEyMywyMywwLDAsMS00NiwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik05OSwzMTQuOTEzYTYsNiwwLDAsMCw2LTZWMjMzLjEwNmE2LDYsMCwwLDAtMTIsMHY3NS44MDdBNiw2LDAsMCwwLDk5LDMxNC45MTNaIi8+CiAgICAgICAgPHBhdGggZD0iTTk5LDIxOC43MjZhNiw2LDAsMCwwLDYtNnYtNC44MzRhNiw2LDAsMCwwLTEyLDB2NC44MzRBNiw2LDAsMCwwLDk5LDIxOC43MjZaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Water:Iae,Weather:wae,Window:Cae},Aae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",pae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM2Mi43ODcgMzYyLjc4NyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNjAuOTQ1LDE0NC45NzljLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTlsLTQ3LjQ4NCw4MS4zMzNjLTEuMzU0LDIuMzE5LTEuMzY1LDUuMTg2LTAuMDI3LDcuNTE2CgkJYzEuMzM3LDIuMzI5LDMuODE4LDMuNzY2LDYuNTA0LDMuNzY2aDk0Ljk2OGMyLjY4NiwwLDUuMTY3LTEuNDM3LDYuNTA0LTMuNzY2YzEuMzM4LTIuMzMsMS4zMjctNS4xOTYtMC4wMjctNy41MTZsLTQ3LjQ4My04MS4zMzMKCQlDMjY2LjA3OCwxNDYuMzk1LDI2My42MTIsMTQ0Ljk3OSwyNjAuOTQ1LDE0NC45Nzl6IE0yMjYuNTI0LDIyNi4zMTJsMzQuNDIxLTU4Ljk1OGwzNC40Miw1OC45NThIMjI2LjUyNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU1LjI4NywyNTQuNjloLTE3NS42Mmw4MS4yNzgtMTM5LjIxOGw2Mi45MjYsMTA3Ljc4M2MyLjA4OCwzLjU3OCw2LjY4Myw0Ljc4NCwxMC4yNTgsMi42OTYKCQljMy41NzctMi4wODgsNC43ODQtNi42ODEsMi42OTUtMTAuMjU4TDI2Ny40MjIsOTYuODE1Yy0wLjAyMS0wLjAzNi0wLjA0OC0wLjA2Ny0wLjA2OS0wLjEwM2MtMC4xMjYtMC4yMDgtMC4yNjItMC40MDgtMC40MDctMC42MDMKCQljLTAuMDQ0LTAuMDU5LTAuMDg2LTAuMTE4LTAuMTMxLTAuMTc2Yy0wLjE4My0wLjIzLTAuMzc2LTAuNDUxLTAuNTg0LTAuNjU4Yy0wLjAyNC0wLjAyNC0wLjA1MS0wLjA0NS0wLjA3Ni0wLjA2OQoJCWMtMC4xODYtMC4xOC0wLjM4My0wLjM0OS0wLjU4Ny0wLjUwOWMtMC4wNjUtMC4wNTEtMC4xMzItMC4xLTAuMTk5LTAuMTQ4Yy0wLjE4Ny0wLjEzNy0wLjM3OS0wLjI2NC0wLjU3OC0wLjM4NAoJCWMtMC4wNTUtMC4wMzMtMC4xMDgtMC4wNjgtMC4xNjQtMC4xYy0wLjI2MS0wLjE0Ny0wLjUzLTAuMjgyLTAuODA5LTAuMzk3Yy0wLjAxMS0wLjAwNC0wLjAyMi0wLjAwOC0wLjAzMy0wLjAxMgoJCWMtMC4yNi0wLjEwNi0wLjUyOC0wLjE5Ni0wLjgwMi0wLjI3M2MtMC4wNzMtMC4wMjEtMC4xNDYtMC4wMzgtMC4yMi0wLjA1NmMtMC4yMjItMC4wNTUtMC40NDctMC4xLTAuNjc3LTAuMTM1CgkJYy0wLjA3OS0wLjAxMi0wLjE1Ny0wLjAyNi0wLjIzNi0wLjAzNmMtMC4yOTctMC4wMzYtMC41OTgtMC4wNi0wLjkwNi0wLjA2SDEwMS44NDJjLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTkKCQlMMS4wMjMsMjU4LjQwOGMtMS4zNTQsMi4zMTktMS4zNjUsNS4xODYtMC4wMjcsNy41MTZjMS4zMzcsMi4zMjksMy44MTgsMy43NjYsNi41MDQsMy43NjZoODYuNTM4YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDEKCQlzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzUuODg5YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDFzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzYuNTg2aDE4OC42ODQKCQljNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNVMzNTkuNDMsMjU0LjY5LDM1NS4yODcsMjU0LjY5eiBNMTYyLjI5OCwyNTQuNjloLTE5LjI2M2w2OS40My0xMTkuNDcKCQljMi4wODEtMy41ODIsMC44NjUtOC4xNzItMi43MTYtMTAuMjUzYy0zLjU4LTIuMDgzLTguMTczLTAuODY2LTEwLjI1MywyLjcxNmwtNzMuODEsMTI3LjAwN0gxMDcuMWw4NS4xOTItMTQ2LjU5NGg1NS41OQoJCUwxNjIuMjk4LDI1NC42OXogTTEwNi4xNDcsMTA4LjA5NmgzNC4wOTFMNzQuNzg5LDIyMC43MTdjLTIuMDgxLDMuNTgyLTAuODY1LDguMTcyLDIuNzE2LDEwLjI1MwoJCWMxLjE4NiwwLjY4OSwyLjQ4MiwxLjAxNywzLjc2MiwxLjAxN2MyLjU4NCwwLDUuMS0xLjMzNyw2LjQ5MS0zLjczM2w2OS44My0xMjAuMTU4aDE3LjM1Nkw4OS43NTEsMjU0LjY5SDIwLjU2M0wxMDYuMTQ3LDEwOC4wOTZ6IgogICAgICAgIC8+CiAgICA8L2c+Cjwvc3ZnPgo=",mae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTYuNzA0IDI3Mi4wODZoLTgxLjcwNHYtODguMDczYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djg4LjA3M2gtMTV2LTE5My43MWMwLTguMjQ5LTYuNzExLTE0Ljk1OS0xNC45NTktMTQuOTU5aC05MS41ODJjLTguMjQ4IDAtMTQuOTU5IDYuNzEtMTQuOTU5IDE0Ljk1OXYxOTMuNzFoLTE1di0xOTMuNzFjMC04LjI0OS02LjcxMS0xNC45NTktMTQuOTU5LTE0Ljk1OWgtOTEuNTgyYy04LjI0OCAwLTE0Ljk1OSA2LjcxLTE0Ljk1OSAxNC45NTl2MTkzLjcxaC0xNXYtMjIzLjY2OWgyODh2MTAwLjU5NmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xMDAuNTk2aDMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODgzIDE1LjI5Ni0xNS4zNDR2LTE3LjczYzAtOC40Ni02Ljg2MS0xNS4zNDMtMTUuMjk2LTE1LjM0M2gtMzI0LjQwOGMtOC40MzUgMC0xNS4yOTYgNi44ODMtMTUuMjk2IDE1LjM0NHYxNy43M2MwIDguNDYgNi44NjEgMTUuMzQ0IDE1LjI5NiAxNS4zNDRoMy4yMDR2MjIzLjY2OWgtODEuNzA0Yy04LjQzNS0uMDAxLTE1LjI5NiA2Ljg2MS0xNS4yOTYgMTUuMjk1djE3LjYyMmMwIDguNDM1IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aC41djE0My40ODZoLS41Yy04LjQzNSAwLTE1LjI5NiA2Ljg2Mi0xNS4yOTYgMTUuMjk2djE3LjYyMmMwIDguNDM0IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aDIyMy4yMDRjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTIyMy4yMDRjLS4xNjMgMC0uMjk2LS4xMzMtLjI5Ni0uMjk2di0xNy42MjJjMC0uMTYzLjEzMy0uMjk2LjI5Ni0uMjk2aDQ4MS40MDhjLjE2MyAwIC4yOTYuMTMzLjI5Ni4yOTZ2MTcuNjIyYzAgLjE2My0uMTMzLjI5Ni0uMjk2LjI5NmgtMjIzLjIwNGMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMjMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODYyIDE1LjI5Ni0xNS4yOTZ2LTE3LjYyMmMwLTguNDM0LTYuODYxLTE1LjI5Ni0xNS4yOTYtMTUuMjk2aC0uNXYtMTQzLjQ4NmguNWM4LjQzNSAwIDE1LjI5Ni02Ljg2MiAxNS4yOTYtMTUuMjk2di0xNy42MjJjMC04LjQzNC02Ljg2MS0xNS4yOTYtMTUuMjk2LTE1LjI5NnptLTQwMy4yMDQtMjM5LjAxMnYtMTcuNzNjMC0uMjEyLjE1My0uMzQ0LjI5Ni0uMzQ0aDMyNC40MDhjLjE0MyAwIC4yOTYuMTMxLjI5Ni4zNDR2MTcuNzNjMCAuMjEyLS4xNTMuMzQ0LS4yOTYuMzQ0LTE1LjM2NyAwLTMwOS4wNTEgMC0zMjQuNDA4IDAtLjE0My0uMDAxLS4yOTYtLjEzMi0uMjk2LS4zNDR6bTE4NC45NTkgNDUuMzQzIDkxLjU0MS0uMDQxdjE5My43MWgtOTEuNTAyem0tMTM2LjUgMCA5MS41NDEtLjA0MXYxOTMuNzFoLTkxLjUwMnptMzM5LjI0NSAzODQuODE3aC00NTAuNDA4di0xNDIuOTM0aDQ1MC40MDh6bTE1Ljc5Ni0xNTguMjNjMCAuMTY0LS4xMzMuMjk2LS4yOTYuMjk2LTIuODI0IDAtNDcxLjE1MyAwLTQ4MS40MDggMC0uMTYzIDAtLjI5Ni0uMTMzLS4yOTYtLjI5NnYtMTcuNjIyYzAtLjE2My4xMzMtLjI5Ni4yOTYtLjI5Nmg0ODEuNDA4Yy4xNjMgMCAuMjk2LjEzMy4yOTYuMjk2eiIvPgogICAgICAgIDxwYXRoIGQ9Im02Ny42NTUgNDQyLjcwNGgxOC45OWM4Ljc2OCAwIDE1LjktNy4xMzMgMTUuOS0xNS45MDF2LTY5LjUyYzAtOC43NjgtNy4xMzMtMTUuOTAxLTE1LjktMTUuOTAxaC0xOC45OWMtOC43NjggMC0xNS45IDcuMTMzLTE1LjkgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkgMTUuOTAxem0tLjktODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45LS45MDFoMTguOTljLjQ5NiAwIC45LjQwNC45LjkwMXY2OS41MmMwIC40OTctLjQwNC45MDEtLjkuOTAxaC0xOC45OWMtLjQ5NiAwLS45LS40MDQtLjktLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM5LjQwNiA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMTAuNzk2IDQ0Mi43MDRoMTguOTljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTljLTguNzY4IDAtMTUuOSA3LjEzMy0xNS45IDE1LjkwMXY2OS41MmMwIDguNzY4IDcuMTMyIDE1LjkwMSAxNS45IDE1LjkwMXptLS45LTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOS0uOTAxaDE4Ljk5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTljLS40OTYgMC0uOS0uNDA0LS45LS45MDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI4Mi41NDcgNDQyLjcwNGgxOC45ODljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTg5Yy04Ljc2OCAwLTE1LjkwMSA3LjEzMy0xNS45MDEgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAxLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzU0LjEzMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjLS4wMDEgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAyLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDI1LjUyMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTYuNDExIDEwNy4yNjhjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDIzLjUxMiAyMy41MTJjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjYwNCA5Mi44MzJjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDExLjc1NiAxMS43NTZjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgIDwvZz4KPC9zdmc+",Oae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00MTMuOTA3IDBjLTU0LjEwNCAwLTk4LjEyMiA0NC4wMDUtOTguMTIyIDk4LjA5NnY0My41ODJzLTY5LjgzMS0zNi45MTItNzEuMDY1LTM3LjU5M2MtOS41NDQtNS4yNjYtMTIuMTg1LTUuMjY3LTIxLjczMSAwLTEuMjM0LjY4MS0xMzYuMTQxIDcxLjk1OC0xMzYuMTQxIDcxLjk1OC0xMS40MzcgNi4wMTctMTMuMDQ1IDcuNzQ1LTE3Ljg3OCAxNS43ODMtLjc4OCAxLjMxMS02NS42OTggMTA0LjIzLTY1LjY5OCAxMDQuMjMtMy4xNzUgNS4wMjMtNC4wNzcgMTAuOTYyLTIuNTM5IDE2LjcyMiAxLjYxNyA2LjA1NiA1Ljg0IDExLjI2OSAxMS41NzcgMTQuMjk1IDMuNjQ2IDEuOTMgNy41ODIgMi44NSAxMS40NjUgMi44NSA2LjIwMiAwIDEyLjI1NS0yLjM1OCAxNi43NDUtNi42ODh2NjUuMDQ0YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTg3LjU0MXM0OS4xMzQtNzcuODU1IDQ5LjY1Mi03OC42ODJjMi4zMzQtMy43MjkgMy4zMjgtNS4yODMgNC40OTYtNi4zMTggMS4zMzMtMS4xODEgMy42NjUtMi40NjQgOC42NjUtNS4xMDdsMTEzLjAwMi01OS42NDljLjgwMS0uNDI1IDEuNDktLjgwMyAyLjA5My0xLjEzMy4xNDEtLjA3Ny4yODUtLjE1Ni40MjgtLjIzNC4xNDMuMDc4LjI4Ny4xNTcuNDI4LjIzNC42MDMuMzMxIDEuMjkyLjcwOCAyLjEwOSAxLjE0MiAwIDAgMTE4LjE5MyA2Mi40MTMgMTE5LjY0MiA2My4zMS44NjkuNTM4IDEuNTA5Ljk5NSAyLjAwOSAxLjQzOCAxLjE2NyAxLjAzNSAyLjE2MiAyLjU4OSA0LjQ5NiA2LjMxOC41MTguODI3IDQ5LjY1MSA3OC42ODEgNDkuNjUxIDc4LjY4MXYxNjAuNzE2aC04NC45MjF2LTEwNC4zNGgxMi42MjVjNy42NTIgMCAxMy44NzgtNi4yMjYgMTMuODc4LTEzLjg3OHYtMjEuNDNjMC03LjY1Mi02LjIyNi0xMy44NzgtMTMuODc4LTEzLjg3OGgtODUuMTIyYy00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDg0djE5LjE4NmgtMjA5Ljgxdi0xOS4xODZoOTEuMmM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtOTIuMzIyYy03LjY1MiAwLTEzLjg3OCA2LjIyNi0xMy44NzggMTMuODc4djIxLjQzYzAgNy42NTIgNi4yMjYgMTMuODc4IDEzLjg3OCAxMy44NzhoMTIuNjI1djEwNC4zMzloLTg0Ljk0N3YtMzguNTYzYzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc2LjUzNmMwIDYuOTM0IDUuNjQxIDEyLjU3NCAxMi41NzQgMTIuNTc0aDQ0NS45MDdjNy4xNjcgMCAxMi45OTktNS44MzIgMTIuOTk5LTEyLjk5OXYtNDAwLjkwNWMuMDAxLTU0LjA5MS00NC4wMDQtOTguMDk2LTk4LjA5Mi05OC4wOTZ6bS0yNzMuNDQgNDk3aC04NC45NDh2LTIwLjU0Nmg4NC45NDd2MjAuNTQ2em0xNTkuNzgzLTEzOS44ODYtNjYuMzgyIDU5Ljg0NS02Ni4zODItNTkuODQ1em0tMTQ0Ljc4MyA5LjM1OSA2Ny4yMDEgNjAuNTg0LTY3LjIwMSA2MC41ODR6bTEyLjAyIDEzMC41MjcgNjYuMzgyLTU5Ljg0NSA2Ni4zODEgNTkuODQ1em0xNDQuNzgzLTkuMzU5LTY3LjIwMS02MC41ODQgNjcuMjAxLTYwLjU4NHptOTkuOTE5IDkuMzU5aC04NC45MTl2LTIwLjU0Nmg4NC45MTl6bTUzLjQ0NS0xOTguODIzYy0uMzQ3LS43Mi0uNzMzLTEuNDI3LTEuMTY2LTIuMTE3bC01MS45NDUtODIuMjY2aDg0LjQ3N3Y4NC4zODN6bS0xMzQuODQ4LTIwMC4wODFjMC00NS44MTkgMzcuMjg4LTgzLjA5NiA4My4xMjItODMuMDk2IDQ1LjgxNiAwIDgzLjA5MiAzNy4yNzYgODMuMDkyIDgzLjA5NnYxLjI4N2gtMTY2LjIxNHptMCAxNi4yODdoMTY2LjIxNHY4NC40MTJoLTkzLjk0OXMtMy41MjMtNS42NTYtNC4zMTItNi45NjZjLTQuODMxLTguMDM2LTYuNDQtOS43NjYtMTcuODY4LTE1Ljc3OGwtNTAuMDg2LTI2LjQ1di0zNS4yMTh6bTk1LjI0NiAxODAuMTc3cy01MC4yNzUtNzkuNjU2LTUwLjc4LTgwLjQ2M2MtNC43OTktNy42NjUtNi41MTQtOS44MjUtMTMuMjgxLTEzLjY5Mi0uNTIxLS4yOTctMTE5LjkyOS02My40MDgtMTIwLjQ4Mi02My43MTEtNS4xMDEtMi43OTUtNy44NDctMy4zMi0xMi4wNjctMS41NzItLjAzNy4wMTUtLjA3Ni4wMzQtLjExMy4wNS0uNjE2LjI1OS0xMTcuOTg1IDYyLjE5Ny0xMTcuOTg1IDYyLjE5Ny0xMS43MjcgNi4yLTEyLjk2MSA3LjI5NS0xOC44NjggMTYuNzI5LS41MDUuODA3LTUwLjc4IDgwLjQ2My01MC43OCA4MC40NjMtLjAxLjAxNi0uMDE2LjAzMy0uMDI2LjA0OWwtMTAuMjk0IDE2LjMxYy0yLjM3NSAzLjc2Ny03Ljg4NSA1LjA5Ni0xMi4wMzkgMi44OTQtMi4wNi0xLjA4Ni0zLjU1Mi0yLjg3My00LjA5My00LjkwMS0uMzE2LTEuMTg0LS40NDYtMi45ODQuNzI5LTQuODQzIDAgMCA2NS4wMzctMTAzLjEyNCA2NS44NzItMTA0LjUxMiAzLjQ0OC01LjczNCAzLjQ0OC01LjczNCAxMi4wMTctMTAuMjQzIDAgMCAxMzkuMTkzLTczLjYzOSAxNDAuMDEyLTc0LjAxMy44Mi4zNzQgMTQwLjAxMiA3NC4wMTMgMTQwLjAxMiA3NC4wMTMuMDAzLjAwMi4wMDcuMDA0LjAxMS4wMDYgOC41NTkgNC41MDIgOC41NTkgNC41MDIgMTIuMDA3IDEwLjIzOC44MzQgMS4zODggMS44MTYgMy4wMiAzLjA1OCA0Ljk4N2w2Mi44MzMgOTkuNTA5YzEuMTY4IDEuODYgMS4wMzQgMy42NjkuNzE2IDQuODU5LS41NDQgMi4wMzItMi4wMzIgMy44Mi00LjA3MiA0Ljg5OS00LjIyNiAyLjIzMS05LjY0NS45MjQtMTIuMDY5LTIuODk2bC0xMC4yOTItMTYuMzA3Yy0uMDEtLjAxNy0uMDE2LS4wMzUtLjAyNi0uMDV6bTcwLjk2OCAyMDIuNDRoLTY5LjgxMXYtODQuNDExaDY5LjgxMXptLTY5LjgxMS05OS40MTF2LTc0LjM4OWM3LjMxMyA3LjA0MiAxOC43NjMgOC44NzQgMjguMjM4IDMuODc1IDUuNi0yLjk2NSA5Ljc0Ni04LjAxNiAxMS40MzgtMTMuODk3aDMwLjEzNXY4NC40MTJoLTY5LjgxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg1LjI2MiAyMzcuODczYzAtMjguMzQ3LTIzLjA2Mi01MS40MDktNTEuNDA4LTUxLjQwOS0yOC4zMzEgMC01MS4zNzkgMjMuMDYyLTUxLjM3OSA1MS40MDlzMjMuMDQ5IDUxLjQwOSA1MS4zNzkgNTEuNDA5YzI4LjM0Ny0uMDAxIDUxLjQwOC0yMy4wNjMgNTEuNDA4LTUxLjQwOXptLTg3Ljc4NyAwYzAtMjAuMDc2IDE2LjMyLTM2LjQwOSAzNi4zNzktMzYuNDA5IDIwLjA3NSAwIDM2LjQwOCAxNi4zMzMgMzYuNDA4IDM2LjQwOXMtMTYuMzMzIDM2LjQwOS0zNi40MDggMzYuNDA5Yy0yMC4wNTktLjAwMS0zNi4zNzktMTYuMzM0LTM2LjM3OS0zNi40MDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Eae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTIuOTk1IDE2Ni40ODktMzEuOTk1LTIzLjk5NnYtMTEyLjQ5M2M4LjI4NCAwIDE1LTYuNzE2IDE1LTE1cy02LjcxNi0xNS0xNS0xNWgtOTBjLTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTV2NDQuOTkybC04OC4wMDktNjYuMDA2Yy0xNS44OTMtMTEuOTA0LTM4LjA5LTExLjkwNS01My45ODkuMDA1bC0yMDkuOTk5IDE1Ny41Yy0xOS44NTMgMTQuODkzLTIzLjg5MSA0My4xNTUtOS4wMDEgNjMuMDA0IDcuMjIgOS42MiAxNy43NTIgMTUuODUzIDI5LjY1NyAxNy41NSAyLjE1Ny4zMDggNC4zMS40NiA2LjQ1LjQ1OSA1LjEwOSAwIDEwLjEzLS44NzYgMTQuODkxLTIuNTY0djI1Mi4wNmMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDM2MGM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di0yNTIuMDY4YzQuNzYzIDEuNjg1IDkuODAzIDIuNTYgMTQuOTc4IDIuNTYgMTQuMSAwIDI3LjU2NS02LjcyOSAzNi4wMjItMTggMTQuODg4LTE5Ljg0NiAxMC44NDktNDguMTA4LTkuMDA1LTYzLjAwM3ptLTkxLjk5NS0xMzYuNDg5aDMwdjg5Ljk5MmwtMzAtMjIuNXptLTEyMCAyNzJoLTUwdi05Mmg1MHptMzAgMHYtMTA3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTgwYy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djEwN2gtMTA5Ljk5OXYtNzcuMDA0bDE2NC45OTktMTIzLjc1MiAxNjUgMTIzLjc1M3Y3Ny4wMDN6bS0yMTkuOTk5IDMwaDIwOS45OTl2MzBoLTQ1Yy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djQ1aC00NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY0NWgtOTB6bTExOS45OTkgMTUwdi0zMGg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg5MHYxNTB6bTI2Ny4wMDItMjcwLjUxMWMtMi44NjMgMy44MTUtNy4yNDUgNi4wMDQtMTIuMDI0IDYuMDA0LTMuMjYgMC02LjM2NS0xLjAzNi04Ljk3OS0yLjk5NmwtMTkxLjk5OS0xNDQuMDAzYy01LjMzMy00LTEyLjY2Ny00LTE4IDBsLTE5Mi4wMDggMTQ0LjAwOWMtMy4xOTMgMi4zOTctNy4xMzYgMy40MDgtMTEuMDk4IDIuODQyLTMuOTczLS41NjYtNy40ODgtMi42NDctOS44OTYtNS44NTYtNC45NjEtNi42MTQtMy42MTItMTYuMDM1IDMuMDA2LTIxbDIwOS45OTEtMTU3LjQ5MmMyLjY1Mi0xLjk4NyA1LjgzLTIuOTc5IDkuMDA3LTIuOTc5IDMuMTc1IDAgNi4zNDkuOTkyIDguOTk2IDIuOTc0bDIwOS45OTYgMTU3LjQ5N2M2LjYyIDQuOTY2IDcuOTY5IDE0LjM4NiAzLjAwOCAyMXoiLz4KICAgIDwvZz4KPC9zdmc+",_ae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDg1LjQsMjcyLjA2N2gtOC41MzN2LTE3OS4yYzAtNDIuNjY3LTM0LjEzMy03Ni44LTc2LjgtNzYuOGMtMzcuNzcsMC02NC45MzUsMjguMDA2LTY3Ljk3NCw2OS4wNDEKCQkJCWMtMTkuODI5LDMuNzQ4LTM0LjQyNiwyMC44MjYtMzQuNDI2LDQxLjg5MmMwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNoNjguMjY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzMwoJCQkJYzAtMjAuODMzLTE0LjI3NC0zNy43NjktMzMuNzY3LTQxLjc2N2MyLjU1LTI3LjExNiwxOC44MzYtNTIuMSw1MC44MzQtNTIuMWMzMy4yOCwwLDU5LjczMywyNi40NTMsNTkuNzMzLDU5LjczM3YxNzkuMkgyMDIuOTc1CgkJCQljLTMuODYtMTkuNjgxLTIwLjg3OC0zNC4xMzMtNDEuODQxLTM0LjEzM2MtOC41MzMtMTAuMjQtMjAuNDgtMTcuMDY3LTM0LjEzMy0xNy4wNjdjLTE2LjIxMywwLTMwLjcyLDkuMzg3LTM3LjU0NywyMy4wNAoJCQkJYy02LjgyNy0zLjQxMy0xNC41MDctNS45NzMtMjIuMTg3LTUuOTczYy0yMC45NjMsMC0zNy45ODEsMTQuNDUyLTQxLjg0MSwzNC4xMzNIMjQuNmMtMTQuNTA3LDAtMjUuNiwxMS4wOTMtMjUuNiwyNS42CgkJCQljMCwxNC41MDcsMTEuMDkzLDI1LjYsMjUuNiwyNS42aDEwLjI1NWwyMy4wMjUsOTEuMzA3YzYuODI3LDI2LjQ1MywzMC43Miw0NS4yMjcsNTguMDI3LDQ1LjIyN2g2LjgyN2wtMTEuMDkzLDIyLjE4NwoJCQkJYy0yLjU2LDQuMjY3LTAuODUzLDkuMzg3LDMuNDEzLDExLjA5M2MwLjg1MywwLjg1MywyLjU2LDAuODUzLDMuNDEzLDAuODUzYzMuNDEzLDAsNS45NzMtMS43MDcsNy42OC00LjI2N0wxNDEuMDgsNDU5LjhoMjM2LjgKCQkJCWwxNC41MDcsMjkuMDEzYzEuNzA3LDMuNDEzLDQuMjY3LDUuMTIsNy42OCw1LjEyYzEuNzA3LDAsMi41NiwwLDMuNDEzLTEuNzA3YzMuNDEzLTEuNzA3LDUuMTItNi44MjcsMy40MTMtMTEuMDkzCgkJCQlsLTEwLjY4OS0yMS4zNzljMjYuNDE5LTAuOTM4LDQ5LjI2Ni0xOS4zOSw1NS45MTYtNDQuMzI4bDIzLjI0LTkyLjE2aDEwLjA0YzE0LjUwNywwLDI1LjYtMTEuMDkzLDI1LjYtMjUuNgoJCQkJQzUxMSwyODMuMTYsNDk5LjkwNywyNzIuMDY3LDQ4NS40LDI3Mi4wNjd6IE0zNjUuMDgsMTE4LjQ2N2gtNDguNjRjMy40MTMtMTAuMjQsMTMuNjUzLTE3LjA2NywyNC43NDctMTcuMDY3CgkJCQlTMzYxLjY2NywxMDguMjI3LDM2NS4wOCwxMTguNDY3eiBNNjcuMjY3LDI1NWM3LjY4LDAsMTQuNTA3LDMuNDEzLDIwLjQ4LDkuMzg3YzEuNzA3LDIuNTYsNS4xMiwzLjQxMyw4LjUzMywyLjU2CgkJCQlzNS4xMi0zLjQxMyw1Ljk3My02LjgyN2MyLjU2LTEyLjgsMTIuOC0yMi4xODcsMjUuNi0yMi4xODdjOS4zODcsMCwxNy45Miw0LjI2NywyMi4xODcsMTIuOGMxLjcwNywzLjQxMyw1Ljk3Myw1LjEyLDkuMzg3LDQuMjY3CgkJCQljMC44NTMsMCwxLjcwNywwLDIuNTYsMGMxMS4wOTMsMCwyMC40OCw2LjgyNywyMy44OTMsMTcuMDY3SDQzLjM3M0M0Ni43ODcsMjYxLjgyNyw1Ni4xNzMsMjU1LDY3LjI2NywyNTV6IE00MzYuNzYsNDEwLjMwNwoJCQkJYy01LjEyLDE4Ljc3My0yMi4xODcsMzIuNDI3LTQxLjgxMywzMi40MjdIMTE2Ljc2Yy0xOS42MjcsMC0zNi42OTMtMTMuNjUzLTQxLjgxMy0zMi40MjdsLTIyLjE4Ny04Ny4wNGg0MDQuNDhMNDM2Ljc2LDQxMC4zMDd6CgkJCQkgTTQ4NS40LDMwNi4yaC0xNy4wNjdINDEuNjY3SDI0LjZjLTUuMTIsMC04LjUzMy0zLjQxMy04LjUzMy04LjUzM3MzLjQxMy04LjUzMyw4LjUzMy04LjUzM2g4LjUzM2gxNjIuMTMzSDQ4NS40CgkJCQljNS4xMiwwLDguNTMzLDMuNDEzLDguNTMzLDguNTMzUzQ5MC41MiwzMDYuMiw0ODUuNCwzMDYuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzA2LjIsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMyOTcuNjY3LDE3MC41MiwzMDEuMDgsMTczLjkzMywzMDYuMiwxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyMTMuMTg3YzUuMTIsMCw4LjUzMy00LjI2Nyw4LjUzMy04LjUzM3YtOS4zODdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y5LjM4NwoJCQkJQzI5Ny42NjcsMjA5Ljc3MywzMDEuMDgsMjEzLjE4NywzMDYuMiwyMTMuMTg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyNDYuNDY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzM3YtNC4yNjdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y0LjI2NwoJCQkJQzI5Ny42NjcsMjQzLjA1MywzMDEuMDgsMjQ2LjQ2NywzMDYuMiwyNDYuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDAuMzMzLDE3My45MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzdjQuMjY3QzMzMS44LDE3MC41MiwzMzUuMjEzLDE3My45MzMsMzQwLjMzMywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMzEuOCwyMDQuNjUzYzAsNS4xMiwzLjQxMyw4LjUzMyw4LjUzMyw4LjUzM2M1LjEyLDAsOC41MzMtNC4yNjcsOC41MzMtOC41MzN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJYy01LjEyLDAtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjA0LjY1M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzMxLjgsMjM3LjkzM2MwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzVjIzNy45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM3NC40NjcsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMzNjUuOTMzLDE3MC41MiwzNjkuMzQ3LDE3My45MzMsMzc0LjQ2NywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIwNC42NTNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzUzM4MywyMDguOTIsMzgzLDIwNC42NTN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM1YyMDQuNjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIzNy45MzNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCXMtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjM3LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Sae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OTYsMzQ0aC04VjI4MGEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMyVjExMmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDg4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJWMjQ4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJ2NjRIMTZhOCw4LDAsMCwwLTgsOHYzMmE4LDgsMCwwLDAsOCw4aDh2MzJhOCw4LDAsMCwwLDgsOEg1NmE3Ljk5LDcuOTksMCwwLDAsNy44NC02LjQzTDcwLjU2LDM5Mkg0NDEuNDRsNi43MiwzMy41N0E3Ljk5LDcuOTksMCwwLDAsNDU2LDQzMmgyNGE4LDgsMCwwLDAsOC04VjM5Mmg4YTgsOCwwLDAsMCw4LThWMzUyQTgsOCwwLDAsMCw0OTYsMzQ0Wk03MiwxMTJBMTYuMDIxLDE2LjAyMSwwLDAsMSw4OCw5Nkg0MjRhMTYuMDIxLDE2LjAyMSwwLDAsMSwxNiwxNlYyNDhINDI0VjIxNmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDI5NmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLDMydjMySDI0OFYyMTZhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMi0zMkgxMjBhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMiwzMnYzMkg3MlpNNDA4LDIxNnYzMkgyODBWMjE2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZoOTZBMTYuMDIxLDE2LjAyMSwwLDAsMSw0MDgsMjE2Wm0tMTc2LDB2MzJIMTA0VjIxNmExNi4wMjEsMTYuMDIxLDAsMCwxLDE2LTE2aDk2QTE2LjAyMSwxNi4wMjEsMCwwLDEsMjMyLDIxNlpNNDAsMjgwYTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZINDU2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYsMTZ2NjRINDBabTkuNDQsMTM2SDQwVjM5Mkg1NC4yNFpNNDcyLDQxNmgtOS40NGwtNC44LTI0SDQ3MlptMTYtNDBIMjRWMzYwSDQ4OFoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",xae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NS4zOTMgNDUuMzkzIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzLjUxOCwxMi43MDlMMjUuMTc4LDAuNzI4Yy0xLjUxMS0wLjk3OC0zLjQ1OC0wLjk2OC00Ljk2LDAuMDIxTDEuODU5LDEyLjcxOWMtMS4xNCwwLjc1MS0xLjQ1NSwyLjI4NC0wLjcwNSwzLjQyNAoJCQljMC43NTEsMS4xNCwyLjI4MywxLjQ1NiwzLjQyNCwwLjcwNEwyMi43MTUsNS4wMjFMNDAuODMsMTYuODU3YzAuNDE2LDAuMjY5LDAuODgxLDAuMzk2LDEuMzQxLDAuMzk2CgkJCWMwLjgxMiwwLDEuNjA0LTAuMzk3LDIuMDc3LTEuMTI3QzQ0Ljk5LDE0Ljk4LDQ0LjY2MiwxMy40NTIsNDMuNTE4LDEyLjcwOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzguODc5LDI3LjYxNmMtMC4xNTEtMC44NjUtMC45MDMtMS41MDUtMS43OC0xLjUwNWgtMS4wMDhsLTAuMzgzLTMuOTg3Yy0wLjQwOS00LjI2NC0zLjk0OC03LjQ5LTguMjMyLTcuNDlIMTcuOTIKCQkJYy00LjI4NSwwLTcuODIzLDMuMjI3LTguMjMzLDcuNDlsLTAuMzgyLDMuOTg3SDguMjk2Yy0wLjg3OCwwLTEuNjI5LDAuNjQtMS43ODIsMS41MDVsLTEuNSw4LjUwNAoJCQljLTAuMTg2LDEuMDU0LDAuMTEyLDIuMTM5LDAuOCwyLjk1N2MwLjY2MiwwLjc4OCwxLjYzNywxLjI1OCwyLjY1NywxLjI5M3YxLjQxMmMwLDEuOTk5LDEuNjAyLDMuNjEsMy42MDMsMy42MWgxLjEzOAoJCQljMS45OTksMCwzLjYyNS0xLjYxMSwzLjYyNS0zLjYxdi0xLjM4OWgxMS43MzJ2MS4zODZjMCwyLDEuNjEzLDMuNjEzLDMuNjEyLDMuNjEzaDEuMTM5YzEuOTk5LDAsMy42MTQtMS42MTMsMy42MTQtMy42MTNWNDAuMzcKCQkJYzEuMDItMC4wMzUsMS45ODktMC41MDEsMi42NDktMS4yODhjMC42ODgtMC44MiwwLjk4Mi0xLjg5OSwwLjc5OC0yLjk1NUwzOC44NzksMjcuNjE2eiBNMTEuNjQyLDM3LjExMwoJCQljLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1N2MxLjY4OCwwLDMuMDU3LDEuMzY3LDMuMDU3LDMuMDU3CgkJCUMxNC42OTksMzUuNzQ2LDEzLjMzLDM3LjExMywxMS42NDIsMzcuMTEzeiBNMTIuNDA0LDI2LjExMWwwLjM1My0zLjY3OGMwLjI1Ny0yLjY3NCwyLjQ3Ni00LjY4OCw1LjE2My00LjY4OGgwLjU1MXYxLjE1NgoJCQljMCwxLjAwMywwLjc5NywxLjgwMiwxLjc5OSwxLjgwMmg0Ljg1NmMxLjAwMiwwLDEuODEzLTAuNzk5LDEuODEzLTEuODAydi0xLjE1NWgwLjUzN2MyLjY4NywwLDQuOTA2LDIuMDE0LDUuMTYyLDQuNjg4CgkJCWwwLjM1NCwzLjY3OEwxMi40MDQsMjYuMTExTDEyLjQwNCwyNi4xMTF6IE0zMy43NSwzNy4xMTNjLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1NwoJCQljMS42ODgsMCwzLjA1NywxLjM2NywzLjA1NywzLjA1N0MzNi44MDcsMzUuNzQ2LDM1LjQzOCwzNy4xMTMsMzMuNzUsMzcuMTEzeiIvPgogICAgPC9nPgo8L3N2Zz4K",fae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDk0LjU5NCwzOTQuMjM3aC0xOS40NjFjMTIuOTU0LTE5LjU0MywyMC41MTItNDIuOTU4LDIwLjUxMi02OC4xMDljMC02OC4xNTctNTUuNDQ5LTEyMy42MDYtMTIzLjYwNi0xMjMuNjA2CgkJCWMtNy4xNzEsMC0xNC4yLDAuNjIyLTIxLjA0LDEuNzk5YzE3Ljg1My0yMS40MzUsMjguNjA4LTQ4Ljk3OSwyOC42MDgtNzguOTlDMzc5LjYwNiw1Ny4xNzQsMzI0LjE1NywxLjcyNCwyNTYsMS43MjQKCQkJYy02OC4xNTcsMC0xMjMuNjA2LDU1LjQ0OS0xMjMuNjA2LDEyMy42MDZjMCwzMC4wMTIsMTAuNzU1LDU3LjU1NSwyOC42MDgsNzguOTljLTYuODQtMS4xNzgtMTMuODY5LTEuNzk5LTIxLjA0LTEuNzk5CgkJCWMtNjguMTU3LDAtMTIzLjYwNiw1NS40NDktMTIzLjYwNiwxMjMuNjA2YzAsMjUuMTUxLDcuNTU4LDQ4LjU2NywyMC41MTIsNjguMTA5SDE3LjQwNkwwLDUxMC4yNzZoOTMuMjk0bDE1LjEzNS0yMC4xODFoNjMuMDY0CgkJCWwxNS4xMzUsMjAuMTgxaDEzOC43NDJsMTUuMTM1LTIwLjE4MWg2My4wNjRsMTUuMTM1LDIwLjE4MUg1MTJMNDk0LjU5NCwzOTQuMjM3eiBNNDY5LjUxOSwzNzMuNjdsLTEzLjE0Mi03LjU4OAoJCQljNC43MzYtOS45NTgsNy43Ni0yMC44ODEsOC42ODgtMzIuMzg3aDE1LjE3NUM0NzkuMjU0LDM0Ny45NDgsNDc1LjUwMywzNjEuNDUsNDY5LjUxOSwzNzMuNjd6IE00MDkuODc3LDM5NC41MzN2LTEzNi44MQoJCQljMjQuMDQ1LDEzLjM1NCw0MC4zNjEsMzkuMDA1LDQwLjM2MSw2OC40MDVTNDMzLjkyMiwzODEuMTc4LDQwOS44NzcsMzk0LjUzM3ogTTQxOS41ODEsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMNDE5LjU4MSw0MjMuNjA4eiBNNDQ4Ljc4NywzNzkuMTc2CgkJCWwxMy4xNDgsNy41OTFjLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzQzNC4zMzYsMzk2LjQ2NCw0NDIuMzc1LDM4OC40MjUsNDQ4Ljc4NywzNzkuMTc2egoJCQkgTTQ4MC4yNDEsMzE4LjU2aC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEM0NzUuNTAzLDI5MC44MDUsNDc5LjI1NCwzMDQuMzA3LDQ4MC4yNDEsMzE4LjU2egoJCQkgTTQzMi42NzgsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTkKCQkJTDQzMi42NzgsMjM2LjIzMXogTTQxMS45OTQsMjQxLjc4OWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4di0xNS4xNzZjMTQuMjUyLDAuOTg3LDI3Ljc1NCw0LjczOCwzOS45NzQsMTAuNzIyCgkJCUw0MTEuOTk0LDI0MS43ODl6IE0zOTQuNzQyLDI1MS4zdjE0OS42NTVjLTcuMTg5LDIuMTg2LTE0LjgxLDMuMzcyLTIyLjcwMywzLjM3MmMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zCgkJCWM3LjE4OS0yLjE4NiwxNC44MS0zLjM3MiwyMi43MDMtMy4zNzJDMzc5LjkzMiwyNDcuOTI4LDM4Ny41NTIsMjQ5LjExNCwzOTQuNzQyLDI1MS4zeiBNMTc3LjgsMzk0LjUzM3YtMTM2LjgxCgkJCWMyNC4wNDUsMTMuMzU0LDQwLjM2MSwzOS4wMDUsNDAuMzYxLDY4LjQwNVMyMDEuODQ1LDM4MS4xNzgsMTc3LjgsMzk0LjUzM3ogTTE4Ny41MDQsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMMTg3LjUwNCw0MjMuNjA4eiBNMjgyLjE0MiwyNjUuNDg4CgkJCWM3Ljc5NC0xMS41MTcsMTcuNzQtMjEuNDYzLDI5LjI1Ni0yOS4yNTZsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OUwyODIuMTQyLDI2NS40ODh6IE0yODcuNywyODYuMTczCgkJCWMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3aC0xNS4xNzVjMC45ODctMTQuMjUzLDQuNzM3LTI3Ljc1NCwxMC43MjItMzkuOTc1TDI4Ny43LDI4Ni4xNzN6IE0zMTYuNjQsMjE1LjIyNwoJCQlsLTcuNTkxLTEzLjE0OGM5LjI0OS02LjQxMiwxNy4yODctMTQuNDUsMjMuNjk5LTIzLjY5OWwxMy4xNDgsNy41OTFDMzM4LjEwMywxOTcuNDg3LDMyOC4xNTcsMjA3LjQzMywzMTYuNjQsMjE1LjIyN3oKCQkJIE0yOTMuODM5LDE5My43MzZWNTYuOTI1QzMxNy44ODQsNzAuMjgsMzM0LjIsOTUuOTMsMzM0LjIsMTI1LjMzMVMzMTcuODg0LDE4MC4zODEsMjkzLjgzOSwxOTMuNzM2eiBNMjk1Ljk1NSwyMDkuNjY5CgkJCWw3LjU4NywxMy4xNDJjLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVDMjc1LjA3NCwyMTcuNDMsMjg1Ljk5NiwyMTQuNDA3LDI5NS45NTUsMjA5LjY2OXogTTI3Ny4wNCwyNDcuMTM4CgkJCWMtOC45NTEsMTAuNzQ3LTE2LjExOSwyMy4wMjgtMjEuMDQsMzYuMzg5Yy00LjkyMS0xMy4zNjEtMTIuMDg5LTI1LjY0MS0yMS4wNC0zNi4zODljNi44NCwxLjE3OCwxMy44NjksMS43OTksMjEuMDQsMS43OTkKCQkJQzI2My4xNzEsMjQ4LjkzNywyNzAuMiwyNDguMzE1LDI3Ny4wNCwyNDcuMTM4eiBNMjQ4LjE2NCwzMTguNTZoLTE1LjE3NWMtMC45MjctMTEuNTA2LTMuOTUxLTIyLjQyOS04LjY4OC0zMi4zODdsMTMuMTQyLTcuNTg4CgkJCUMyNDMuNDI2LDI5MC44MDUsMjQ3LjE3NywzMDQuMzA3LDI0OC4xNjQsMzE4LjU2eiBNMjQ4LjQzMSwyMzMuNTMzYy0xNC4yNTItMC45ODctMjcuNzU0LTQuNzM4LTM5Ljk3NC0xMC43MjJsNy41ODctMTMuMTQyCgkJCWM5Ljk1OCw0LjczNiwyMC44ODEsNy43NiwzMi4zODcsOC42ODhWMjMzLjUzM3ogTTIxOC4xNjEsMTkzLjczNmMtMjQuMDQ1LTEzLjM1NC00MC4zNjEtMzkuMDA1LTQwLjM2MS02OC40MDUKCQkJYzAtMjkuNCwxNi4zMTYtNTUuMDUxLDQwLjM2MS02OC40MDVWMTkzLjczNnogTTE3OS4yNTEsMTc4LjM3OWM2LjQxMiw5LjI0OSwxNC40NSwxNy4yODcsMjMuNjk5LDIzLjY5OWwtNy41OTEsMTMuMTQ4CgkJCWMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDE3OS4yNTEsMTc4LjM3OXogTTIwMC42MDEsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTYKCQkJbC0xMy4xNDgsNy41OTFjLTYuNDEyLTkuMjQ5LTE0LjQ1LTE3LjI4Ny0yMy42OTktMjMuNjk5TDIwMC42MDEsMjM2LjIzMXogTTIxNi43MSwzNzkuMTc2bDEzLjE0OCw3LjU5MQoJCQljLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzIwMi4yNTksMzk2LjQ2NCwyMTAuMjk4LDM4OC40MjUsMjE2LjcxLDM3OS4xNzZ6IE0yMjQuMywzNjYuMDgyCgkJCWM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1Yy0wLjk4NywxNC4yNTMtNC43MzcsMjcuNzU0LTEwLjcyMiwzOS45NzVMMjI0LjMsMzY2LjA4MnogTTI1NiwzNjguNzI5CgkJCWMzLjMzMiw5LjA0NSw3LjY5NywxNy41OTMsMTIuOTQ0LDI1LjUwOGgtMjUuODg4QzI0OC4zMDMsMzg2LjMyMSwyNTIuNjY4LDM3Ny43NzQsMjU2LDM2OC43Mjl6IE0yNjMuODM2LDMzMy42OTVoMTUuMTc1CgkJCWMwLjkyNywxMS41MDYsMy45NTEsMjIuNDI5LDguNjg4LDMyLjM4N2wtMTMuMTQyLDcuNTg4QzI2OC41NzQsMzYxLjQ1LDI2NC44MjMsMzQ3Ljk0OCwyNjMuODM2LDMzMy42OTV6IE0yOTUuMjksMzc5LjE3NgoJCQljNi40MTIsOS4yNDksMTQuNDUsMTcuMjg3LDIzLjY5OSwyMy42OTlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDI5NS4yOSwzNzkuMTc2egoJCQkgTTI5My44MzksMzI2LjEyOGMwLTI5LjQsMTYuMzE2LTU1LjA1MSw0MC4zNjEtNjguNDA1djEzNi44MUMzMTAuMTU1LDM4MS4xNzgsMjkzLjgzOSwzNTUuNTI4LDI5My44MzksMzI2LjEyOHogTTMzMi4wODQsNDEwLjQ2NgoJCQljOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDMzMi4wODQsNDEwLjQ2NnogTTM2NC40NzEsMjE3LjkyNVYyMzMuMQoJCQljLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMzM2LjcxNiwyMjIuNjYzLDM1MC4yMTgsMjE4LjkxMiwzNjQuNDcxLDIxNy45MjV6IE0zNTMuNDgsMTcyLjg3MwoJCQlsLTEzLjE0Mi03LjU4OGM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1QzM2My4yMTYsMTQ3LjE1MSwzNTkuNDY1LDE2MC42NTMsMzUzLjQ4LDE3Mi44NzN6IE0zNjQuMjAyLDExNy43NjMKCQkJaC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEMzNTkuNDY1LDkwLjAwOCwzNjMuMjE2LDEwMy41MSwzNjQuMjAyLDExNy43NjN6IE0zMTYuNjQsMzUuNDM0CgkJCWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTlMMzE2LjY0LDM1LjQzNHogTTI5NS45NTYsNDAuOTkyCgkJCWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4VjE3LjEyOGMxNC4yNTIsMC45ODcsMjcuNzU0LDQuNzM4LDM5Ljk3NCwxMC43MjJMMjk1Ljk1Niw0MC45OTJ6IE0yNzguNzAzLDUwLjUwM3YxNDkuNjU1CgkJCWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyYy03Ljg5NCwwLTE1LjUxNC0xLjE4Ny0yMi43MDMtMy4zNzJWNTAuNTAzYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MgoJCQlDMjYzLjg5NCw0Ny4xMzEsMjcxLjUxNCw0OC4zMTcsMjc4LjcwMyw1MC41MDN6IE0yNDguNDMyLDE3LjEyOHYxNS4xNzVjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDIKCQkJQzIyMC42NzgsMjEuODY2LDIzNC4xOCwxOC4xMTUsMjQ4LjQzMiwxNy4xMjh6IE0xOTUuMzYsMzUuNDM0bDcuNTkxLDEzLjE0OGMtOS4yNDksNi40MTItMTcuMjg3LDE0LjQ1LTIzLjY5OSwyMy42OTkKCQkJbC0xMy4xNDgtNy41OTFDMTczLjg5Nyw1My4xNzQsMTgzLjg0Myw0My4yMjgsMTk1LjM2LDM1LjQzNHogTTE1OC41Miw3Ny43ODhsMTMuMTQyLDcuNTg4Yy00LjczNiw5Ljk1OC03Ljc2LDIwLjg4MS04LjY4OCwzMi4zODcKCQkJaC0xNS4xNzVDMTQ4Ljc4NSwxMDMuNTEsMTUyLjUzNSw5MC4wMDgsMTU4LjUyLDc3Ljc4OHogTTE1OC41MiwxNzIuODczYy01Ljk4NC0xMi4yMi05LjczNS0yNS43MjItMTAuNzIyLTM5Ljk3NWgxNS4xNzUKCQkJYzAuOTI3LDExLjUwNiwzLjk1MSwyMi40MjksOC42ODgsMzIuMzg3TDE1OC41MiwxNzIuODczeiBNMTg3LjUwNCwyMjguNjQ3bC03LjU4NywxMy4xNDJjLTkuOTU4LTQuNzM2LTIwLjg4MS03Ljc2LTMyLjM4Ny04LjY4OAoJCQl2LTE1LjE3NkMxNjEuNzgyLDIxOC45MTIsMTc1LjI4NCwyMjIuNjY0LDE4Ny41MDQsMjI4LjY0N3ogTTE2Mi42NjUsMjUxLjN2MTQ5LjY1NWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyCgkJCWMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MkMxNDcuODU1LDI0Ny45MjgsMTU1LjQ3NSwyNDkuMTE0LDE2Mi42NjUsMjUxLjN6CgkJCSBNNjEuNzYyLDMyNi4xMjhjMC0yOS40LDE2LjMxNi01NS4wNTEsNDAuMzYxLTY4LjQwNXYxMzYuODFDNzguMDc4LDM4MS4xNzgsNjEuNzYyLDM1NS41MjgsNjEuNzYyLDMyNi4xMjh6IE04Ni45MTMsNDAyLjg3NgoJCQlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2bDEzLjE0OC03LjU5MUM2OS42MjUsMzg4LjQyNSw3Ny42NjQsMzk2LjQ2NCw4Ni45MTMsNDAyLjg3NnoKCQkJIE0xMDAuMDA3LDQxMC40NjZjOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDEwMC4wMDcsNDEwLjQ2NnoKCQkJIE0xMzIuMzk0LDIxNy45MjVWMjMzLjFjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMTA0LjYzOSwyMjIuNjYzLDExOC4xNDEsMjE4LjkxMiwxMzIuMzk0LDIxNy45MjUKCQkJeiBNNzkuMzIyLDIzNi4yMzFsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OWwtMTMuMTQ4LTcuNTkxCgkJCUM1Ny44NTksMjUzLjk3MSw2Ny44MDUsMjQ0LjAyNSw3OS4zMjIsMjM2LjIzMXogTTQyLjQ4MSwyNzguNTg1bDEzLjE0Miw3LjU4OGMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3SDMxLjc1OQoJCQlDMzIuNzQ2LDMwNC4zMDcsMzYuNDk3LDI5MC44MDUsNDIuNDgxLDI3OC41ODV6IE0zMS43NTksMzMzLjY5NWgxNS4xNzVjMC45MjcsMTEuNTA2LDMuOTUxLDIyLjQyOSw4LjY4OCwzMi4zODdMNDIuNDgsMzczLjY3CgkJCUMzNi40OTcsMzYxLjQ1LDMyLjc0NiwzNDcuOTQ4LDMxLjc1OSwzMzMuNjk1eiBNNDI2LjI3NCw0OTUuMTRsLTE1LjEzNS0yMC4xODFoLTc4LjJsLTE1LjEzNSwyMC4xODFIMTk0LjE5N2wtMTUuMTM1LTIwLjE4MQoJCQloLTc4LjJMODUuNzI2LDQ5NS4xNEgxNy41NzVsMTIuODY1LTg1Ljc2OGgxOC4yM2MyMi42MiwyNC43ODYsNTUuMTcxLDQwLjM2MSw5MS4yOTEsNDAuMzYxczY4LjY3MS0xNS41NzUsOTEuMjkxLTQwLjM2MWg0OS40OTQKCQkJYzIyLjYyLDI0Ljc4Niw1NS4xNzEsNDAuMzYxLDkxLjI5MSw0MC4zNjFzNjguNjcxLTE1LjU3NSw5MS4yOTEtNDAuMzYxaDE4LjIzbDEyLjg2NSw4NS43NjhINDI2LjI3NHoiLz4KICAgICAgICA8cmVjdCB4PSIzMDUuOTQ4IiB5PSIxMTYuNzU1IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjE5MC45MTkiIHk9IjExNi43NTUiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTExLjIwNSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyNDguNDMzIiB5PSI2NS43OTkiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMzAuMjcxIi8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTcxLjc0NyIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSI0MjEuOTg2IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjMwNi45NTciIHk9IjMxNy41NTIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzY0LjQ3MiIgeT0iMzEyLjAwMiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIzNjQuNDcyIiB5PSIyNjYuNTk2IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjMwLjI3MSIvPgogICAgICAgIDxyZWN0IHg9IjM2NC40NzIiIHk9IjM3Mi41NDQiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTg5LjkxIiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9Ijc0Ljg4IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjEzMi4zOTUiIHk9IjMxMi4wMDIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTMyLjM5NSIgeT0iMjY2LjU5NiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIzMC4yNzEiLz4KICAgICAgICA8cmVjdCB4PSIxMzIuMzk1IiB5PSIzNzIuNTQ0IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ2MS4zODciIHk9IjQ3MC44ODEiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTg4OSAtMC4xNDgzIDAuMTQ4MyAwLjk4ODkgLTY1Ljc3MiA3NC44NDExKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ1Ni4yMSIgeT0iNDMxLjkzNSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODg5IC0wLjE0ODMgMC4xNDgzIDAuOTg4OSAtNjAuNzE5OSA3My42OTAzKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjI0LjE0NSIvPgogICAgICAgIDxyZWN0IHg9IjI0OC40MzMiIHk9IjQ2NC44NyIgd2lkdGg9IjQ1LjQwNiIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMTguMTYyIiB5PSI0NjQuODciIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjYzLjU2OSIgeT0iNDI0LjUwOSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMzMuMjk4IiB5PSI0MjQuNTA5IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjM2LjEyNyIgeT0iNDM2LjQ2MSIgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNDgzIC0wLjk4ODkgMC45ODg5IDAuMTQ4MyAtMzk4LjA2NzUgNDI1Ljg0MjcpIgogICAgICAgICAgICAgIHdpZHRoPSIyNC4xNDUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzUuNDY4IiB5PSI0NzAuODYiIHRyYW5zZm9ybT0ibWF0cml4KDAuMTQ4MyAtMC45ODg5IDAuOTg4OSAwLjE0ODMgLTQzNi40ODM4IDQ1MC4wMzI1KSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgPC9nPgo8L3N2Zz4K",kae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik02MSwyMUgzYTEsMSwwLDAsMCwwLDJINjFhMSwxLDAsMCwwLDAtMloiLz4KICAgICAgICA8cGF0aCBkPSJNNjEsMkg0OWExLDEsMCwwLDAtMSwxVjE3SDQ2di0uNzY0YTEwLjUzMywxMC41MzMsMCwwLDAtMS4xLTQuNjgzQTguNTIyLDguNTIyLDAsMCwxLDQ0LDcuNzY0VjNhMSwxLDAsMCwwLTEtMUgzOWExLDEsMCwwLDAtMSwxVjcuNzY0YTguNTIyLDguNTIyLDAsMCwxLS45LDMuNzg5Yy0uMDM5LjA4LS4wNjcuMTY1LS4xLjI0Ni0uMDM4LS4wODEtLjA2Ni0uMTY2LS4xLS4yNDZBOC41MjIsOC41MjIsMCwwLDEsMzYsNy43NjRWM2ExLDEsMCwwLDAtMS0xSDMxYTEsMSwwLDAsMC0xLDFWNy43NjRhOC41MjIsOC41MjIsMCwwLDEtLjg5NSwzLjc4OUExMC41MzMsMTAuNTMzLDAsMCwwLDI4LDE2LjIzNlYxN0gxOFYxMC40MTRhMi4zOTQsMi4zOTQsMCwwLDEsLjcwNy0xLjcwNkE0LjM4NSw0LjM4NSwwLDAsMCwyMCw1LjU4NlY0aDJWNS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMjQsMTAuNDE0VjE0YTEsMSwwLDAsMCwyLDBWMTAuNDE0YTQuMzg1LDQuMzg1LDAsMCwwLTEuMjkzLTMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDI0LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxOWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC41MTUsNC41MTUsMCwwLDAsMTcsNy42NDlhNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDE2LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxMWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC4zODUsNC4zODUsMCwwLDAsOCwxMC40MTRWMTdIM2ExLDEsMCwwLDAsMCwySDYxYTEsMSwwLDAsMCwwLTJINTBWMTRINjBhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw2MSwyWk00Miw0VjdINDBWNFpNMTAuNzA3LDguNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDEyLDUuNTg2VjRoMlY1LjU4NmE0LjM4NSw0LjM4NSwwLDAsMCwxLjI5MywzLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwxNiwxMC40MTRWMTJIMTBWMTAuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDEwLjcwNyw4LjcwOFpNMTAsMTRoNnYzSDEwWm0yMCwyLjIzNmE4LjUyMiw4LjUyMiwwLDAsMSwuODk1LTMuNzg5QTEwLjUzMywxMC41MzMsMCwwLDAsMzIsNy43NjRWNGgyVjcuNzY0YTEwLjUzMywxMC41MzMsMCwwLDAsMS4xLDQuNjgzLDguNTIyLDguNTIyLDAsMCwxLC45LDMuNzg5VjE3SDMwWk0zOCwxN3YtLjc2NGE4LjUyMiw4LjUyMiwwLDAsMSwuOS0zLjc4OUExMC41NDEsMTAuNTQxLDAsMCwwLDM5LjkyNCw5aDIuMTUyYTEwLjU0MSwxMC41NDEsMCwwLDAsMS4wMjksMy40NDcsOC41MjIsOC41MjIsMCwwLDEsLjksMy43ODlWMTdaTTYwLDRWNkg1MFY0Wk01MCwxMlY4SDYwdjRaIi8+CiAgICAgICAgPHBhdGggZD0iTTYxLDQ0SDNhMSwxLDAsMCwwLDAsMkg2MFY2MEg0NlY0OWExLDEsMCwwLDAtMiwwVjYwSDQyVjUzYTEsMSwwLDAsMC0xLTFIMjZhMSwxLDAsMCwwLTEsMXY3SDIyVjQ5YTEsMSwwLDAsMC0xLTFINWExLDEsMCwwLDAtMSwxVjYwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsMS0xVjQ1QTEsMSwwLDAsMCw2MSw0NFpNNDAsNTZIMzdWNTRoM1ptLTUsMEgzMlY1NGgzWm0tNS0ydjJIMjdWNTRaTTIwLDUyLjM4MmEzLjk0NywzLjk0NywwLDAsMC02LDBWNTBoNlpNMTksNTVhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTksNTVaTTYsNTRoNnYySDZabTYtNHYySDZWNTBaTTYsNThoNnYySDZabTgsMlY1Ny42MThhMy45NDcsMy45NDcsMCwwLDAsNiwwVjYwWm0xMy0yaDN2MkgyN1ptNSwwaDN2MkgzMlptNSwyVjU4aDN2MloiLz4KICAgICAgICA8cGF0aCBkPSJNNTcsNTZhMSwxLDAsMCwwLDEtMVY1MWExLDEsMCwwLDAtMS0xSDQ5YTEsMSwwLDAsMC0xLDF2NGExLDEsMCwwLDAsMSwxWm0tNy00aDZ2Mkg1MFoiLz4KICAgICAgICA8cGF0aCBkPSJNNjAsMjkuMTg0VjI2YTEsMSwwLDAsMC0xLTFINTVhMSwxLDAsMCwwLTEsMXYzLjE4NEEzLDMsMCwwLDAsNTIsMzJ2N2EyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDlWMzRhMSwxLDAsMCwwLDAtMkg0MWExLDEsMCwwLDAsMCwydjZIMzhWMzFhMSwxLDAsMCwwLTEtMUgyNWExLDEsMCwwLDAtMSwxdjlIMjJWMzlhMSwxLDAsMCwwLTIsMHYxSDE0VjMzLjQxNGEyLjM5NCwyLjM5NCwwLDAsMSwuNzA3LTEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDE2LDI4LjU4NlYyN2gydjEuNTg2YTQuMzg1LDQuMzg1LDAsMCwwLDEuMjkzLDMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDIwLDMzLjQxNFYzNWExLDEsMCwwLDAsMiwwVjMzLjQxNGE0LjM4NSw0LjM4NSwwLDAsMC0xLjI5My0zLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwyMCwyOC41ODZWMjZhMSwxLDAsMCwwLTEtMUgxNWExLDEsMCwwLDAtMSwxdjIuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDYsNC41MTUsNC41MTUsMCwwLDAtLjI5My4zNTcsNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDEyLDI4LjU4NlYyNmExLDEsMCwwLDAtMS0xSDdhMSwxLDAsMCwwLTEsMXYyLjU4NmEyLjM5NCwyLjM5NCwwLDAsMS0uNzA3LDEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDQsMzMuNDE0VjQwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsLjctMS43MTNBMi45NjQsMi45NjQsMCwwLDAsNjIsMzlWMzJBMywzLDAsMCwwLDYwLDI5LjE4NFpNNi43MDcsMzEuNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDgsMjguNTg2VjI3aDJ2MS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMTIsMzMuNDE0VjM1SDZWMzMuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDYuNzA3LDMxLjcwOFpNNiwzN2g2djNINlpNNTYsMjdoMnYySDU2Wm0tMSw0aDRhMSwxLDAsMCwxLDEsMXYzSDU0VjMyQTEsMSwwLDAsMSw1NSwzMVpNMzYsMzZIMzJWMzJoNFptLTYtNHYySDI2VjMyWm0tNCw0aDR2NEgyNlptNiw0VjM4aDR2MlptMTEsMFYzNGg0djZabTEyLDBhMSwxLDAsMCwxLTEtMVYzN2g2djJhMSwxLDAsMCwxLTEsMVoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Yae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Qae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Uae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4yNzMgNTEyLjI3MyIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy44OTEgMjM4LjM5OWMtNi43MjMtMzUuODgxLTIxLjg1My02Ni45MDUtNDMuNzU1LTg5LjcxOC05Ljg0NS0xMC4yNTMtMjEuNDU2LTE5Ljc1LTM0LjUxNC0yOC4yMjctMTQuOTQtOS42OTktMzIuMTkyLTE4LjQzOC01NC4yOTMtMjcuNTAzLTkuNjg0LTMuOTcyLTE5LjM3NS03LjYzNy0yOC40MDYtMTEuMDA1LTE0LjY0Mi01LjQ2LTMwLjA2NC0xMC45NTgtNDUuODQzLTE2LjMzNy01LjQyNy0xLjg1MS0xMC45MjEtMy42MDYtMTYuMjM0LTUuMzAzLTguNTA1LTIuNzE3LTE3LjMtNS41MjctMjUuNzcxLTguNzIxLTUuMjI0LTEuOTctNy40MjYtMy40NjQtOC4zMjEtNC4yNTguMDQ2LS4wNTYuMDk2LS4xMTUuMTUxLS4xNzcgNC4wNDgtNC42MTUgMjcuNjAzLTIzLjEwNSA0MS41MDEtMzMuNjc3IDIuNTYyLTEuOTQ5IDMuNTk1LTUuMzE1IDIuNTY2LTguMzY1cy0zLjg4OS01LjEwNC03LjEwNy01LjEwNGwtMTU0LjA1Mi0uMDA0Yy0xLjMyMSAwLTIuNjE5LjM0OS0zLjc2MiAxLjAxMi0xNy4yODIgMTAuMDIxLTMxLjYyMyAyNS43OS0zOS4zNDYgNDMuMjYyLTguOTQ2IDIwLjI0LTkuMDE2IDQxLjQyNS0uMjAyIDYxLjI2MyAxMi4wNyAyNy4xNjcgMzcuNTY3IDQyLjIzNyA2MC4wNjMgNTUuNTMzIDUuODcgMy40NjkgMTEuNDE0IDYuNzQ2IDE2LjY1NSAxMC4xNjcgMy4wOTUgMi4wMiA2LjI3MyA0LjAwMyA5LjM0NyA1LjkyMiAxMS41NDUgNy4yMDggMjIuNDUgMTQuMDE2IDMxLjE2NyAyMy42MDQgOC45ODEgOS44NzcgMTEuNjkzIDIyLjUwMSA3Ljg0MiAzNi41MDctOC45NDggMzIuNTQ0LTM1LjU0NCA2MS43ODEtNTkuMDA5IDg3LjU3Ni00LjM0MiA0Ljc3My04LjQ0MiA5LjI4MS0xMi40MDkgMTMuNzc2LTExLjEwNyAxMi41ODctMjcuMzkzIDMwLjg5LTQ0LjYzNCA1MC4yNjctNTYuODY5IDYzLjkxNC05NC40MTUgMTA2LjIyOS05OCAxMTEuODQ2LTEuNDc0IDIuMzA5LTEuNTcxIDUuMjM4LS4yNTQgNy42NCAxLjMxNiAyLjQwMiAzLjgzOCAzLjg5NSA2LjU3NyAzLjg5NWw0NDYuMzE2LjAwM2guMDAxYzMuMjUxIDAgNi4xMzItMi4wOTQgNy4xMzUtNS4xODcgMTEuNjU5LTM1Ljk2IDIyLjIxMi03Mi4yMzIgMzUuMjgzLTEyMS4yODMgMTUuNTkxLTU4LjUxNSAxOS4xODUtMTA1LjM1NCAxMS4zMDgtMTQ3LjQwNHptLTI1LjgwMyAxNDMuNTQzYy0xMi4zNyA0Ni40Mi0yMi40NjQgODEuMzA1LTMzLjM4NSAxMTUuMzMxbC0yNi45NC0uMDAyYzEuMjg4LTMuOTQ4IDIuNTczLTcuOTAzIDMuODYxLTExLjg0MiAxMS41OC0zNS40MSAyMi44NzctNzAuOTI1IDMyLjUwNC0xMDYuODg4IDEuNTM1LTUuNzQgMy4xMjItMTEuNjc0IDQuNjctMTcuNjQ1IDEuMDQtNC4wMDktMS4zNjgtOC4xMDMtNS4zNzgtOS4xNDItNC4wMDktMS4wMzgtOC4xMDIgMS4zNjktOS4xNDIgNS4zNzgtMS41MzMgNS45MTQtMy4xMTMgMTEuODItNC42NDEgMTcuNTMxLTkuNDM5IDM1LjI3NS0yMC43OTcgNzEuMDI1LTMyLjI3IDEwNi4xMDQtMS43OTcgNS40OTMtMy41OTUgMTAuOTkyLTUuMzg5IDE2LjUwNGgtMTU3Ljk3OGMtLjQzMi0xLjg1OC0xLjU2Ny0zLjU1My0zLjMwOS00LjY0OS0zLjUwNC0yLjIwNi04LjEzNi0xLjE1Mi0xMC4zNDIgMi4zNTMtLjQ5NS43ODYtLjk3MyAxLjU0Mi0xLjQ0OSAyLjI5NmgtMTU2LjIzNGMyNC40NzMtMzAuNTUxIDkxLjg5Ny0xMTIuMDczIDEyNC4yMzgtMTQ4LjcyNCAxNy4yNC0xOS41MzcgMzEuMzY4LTM4LjcyNiA0MS45OTQtNTcuMDMzIDE3LjU5OC0zMC4zMTkgMjQuNTY3LTU2Ljc2NSAyMC43MTYtNzguNjAxLTguMjczLTQ2LjkwOS00NS4xMjctNjUuNzY0LTc3LjY0My04Mi4zOTgtMy40MzktMS43NTktNi45OTUtMy41NzktMTAuNDA3LTUuMzc1bC0uNjA5LS4zMjFjLTMuNjYzLTEuOTMzLTguMi0uNTMtMTAuMTMzIDMuMTMzcy0uNTMgOC4yIDMuMTMzIDEwLjEzM2wuNjE2LjMyNWMzLjQ5NiAxLjg0IDcuMDkxIDMuNjggMTAuNTY4IDUuNDU4IDMyLjI1NyAxNi41MDIgNjIuNzI2IDMyLjA5IDY5LjcwMyA3MS42NSAzLjIyIDE4LjI1Ni0zLjE0NSA0MS4yOTEtMTguOTE3IDY4LjQ2Ni05Ljk4OSAxNy4yMS0yMy45MTQgMzYuMTA0LTQwLjI2OCA1NC42MzgtMzUuMjg2IDM5Ljk4OC0xMTYuMDk4IDEzNy44MzgtMTMyLjA1NiAxNTguNjQ4aC0zMy44NWMxNy44ODItMjAuNzUzIDU2Ljc0NC02NC40MjggODYuOTgxLTk4LjQxMSAxNy4yNTItMTkuMzg5IDMzLjU0Ny0zNy43MDIgNDQuNjc1LTUwLjMxMyAzLjg5Mi00LjQxIDcuOTU2LTguODc4IDEyLjI1OC0xMy42MDcgMjQuNTk3LTI3LjA0IDUyLjQ3Ni01Ny42ODggNjIuMzc1LTkzLjY5MyA1LjIwNy0xOC45MzkgMS4yMjctMzYuOS0xMS4yMDctNTAuNTc1LTE2LjQyMy0xOC4wNjItMzkuODYzLTMwLjIzNy02MC42MzUtNDIuNTE0LTIxLjU2NS0xMi43NDYtNDMuODY0LTI1LjkyNi01My45ODctNDguNzEtMTUuMDIzLTMzLjgxNSA0LjM2Ni02Ny43MTggMzEuNjY3LTg0LjQ0N2gxMy42MzljLTIwLjU1NyAxNS4wNzQtMzIuNTY4IDMwLjMwNS0zNi40OTQgNDYuMTk1LTMuMTgzIDEyLjg4Mi0uODEzIDI1Ljc1NiA3LjA0NSAzOC4yNjUgNC4zMjQgNi44ODMgOS45MDQgMTMuMTEyIDE3LjA1OCAxOS4wNDIgMy4xODggMi42NDMgNy45MTYgMi4yMDEgMTAuNTYxLS45ODggMi42NDMtMy4xODkgMi4yMDEtNy45MTctLjk4OC0xMC41NjEtNS45MDktNC44OTgtMTAuNDY1LTkuOTU5LTEzLjkyOS0xNS40NzItNS42ODgtOS4wNTYtNy4zODQtMTcuNzg2LTUuMTg1LTI2LjY4OCAzLjk3OS0xNi4xMDMgMjAuNTY4LTMyLjg1MSA0OS4zMTQtNDkuNzkzaDUwLjcxNWMtMTMuMzA2IDEwLjQ3OS0yOC4xMDUgMjQuNzc1LTI0LjA5NSA0Mi4zNTMgMy45NzkgMTcuNDQxIDI0LjE3NyAyNy4xNzkgMzkuMTc4IDMzLjQ3MiAxOS41NTggOC4yMDUgMzkuODM1IDE0LjcyIDU5LjQ0NSAyMS4wMjEgMzIuMDg4IDEwLjMxIDY1LjI2OSAyMC45NzEgOTUuMDAzIDM5LjEzNyAzMy45MzQgMjAuNzMxIDU1LjUxOCA1MS4xNTggNjIuNDIgODcuOTg5IDQuNDc4IDIzLjg5NiAzLjQyNiA1MC42MzQtMy4zMTEgODQuMTUybC0uMTA3LjUzNmMtLjgxNCA0LjA2MiAxLjgxOCA4LjAxNCA1Ljg4IDguODI4LjQ5OC4xLjk5My4xNDcgMS40ODEuMTQ3IDMuNTAxIDAgNi42MzItMi40NjQgNy4zNDYtNi4wMjhsLjEwNi0uNTMyYzcuMTI4LTM1LjQ2MiA4LjE5MS02NC4wMTggMy4zNDktODkuODY3LTcuNzA3LTQxLjEyMy0zMS42ODYtNzUuMDItNjkuMzQ0LTk4LjAyNi0zMS4yNjItMTkuMDk5LTY1LjMwOS0zMC4wMzktOTguMjM0LTQwLjYxOC0xOS4zMDctNi4yMDMtMzkuMjcxLTEyLjYxOC01OC4yMy0yMC41NzItNS43ODctMi40MjktMTAuNzEyLTQuOTEyLTE1LjA1Ny03LjU5LTUuNDY0LTMuMzY4LTEzLjcyMS04LjQ1Ny0xNS4zMDItMTUuMzg4LTIuNTc5LTExLjMwOSAxNC4zMy0yMy45OTggMjUuNTItMzIuMzk1IDMuMjE2LTIuNDE0IDYuMTA2LTQuNTg1IDguNDczLTYuNjE3IDAgMCAxMy43ODkgMCAxMy43ODcuMDAyLTkuODkyIDcuNzg2LTM0LjE1NiAxOS43MzMtMzAuMTc0IDM1LjY1MyAxLjk5OCA3Ljk4NiAxMC42ODggMTIuMTkxIDE4LjAzNSAxNC45NjIgMTMuOTgxIDUuMjcyIDI4LjMyNCA5LjM2NyA0Mi40NTYgMTQuMTg2IDE1LjY0NCA1LjMzNSAzMC45MzMgMTAuNzgzIDQ1LjQ0MiAxNi4xOTUgOC45MTMgMy4zMjUgMTguNDcgNi45MzggMjcuOTU3IDEwLjgyOSAyMS4yMTQgOC43MDEgMzcuNjc5IDE3LjAyOCA1MS44MTYgMjYuMjA2IDEyLjA5NCA3Ljg1MiAyMi44MTMgMTYuNjExIDMxLjg2MSAyNi4wMzUgMTkuODc1IDIwLjcwMSAzMy42NDggNDkuMDg4IDM5LjgzMSA4Mi4wOTEgNy40NTEgMzkuNzcxIDMuOTM3IDg0LjUwNS0xMS4wNTggMTQwLjc4MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ0LjM2NSAxOTkuNDA3YzEuNDYxIDIuMDczIDMuNzggMy4xOCA2LjEzOCAzLjE4IDEuNDkyIDAgMy0uNDQ0IDQuMzEzLTEuMzcgMy4zODYtMi4zODYgNC4xOTYtNy4wNjUgMS44MTEtMTAuNDUxLTQuMTA5LTUuODMxLTguODExLTExLjI5My0xMy45NzMtMTYuMjMzLTIuOTkzLTIuODY1LTcuNzQxLTIuNzYtMTAuNjA0LjIzMi0yLjg2NCAyLjk5My0yLjc2MSA3Ljc0LjIzMiAxMC42MDQgNC40NjUgNC4yNzQgOC41MzEgOC45OTcgMTIuMDgzIDE0LjAzOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU1LjA4MyAxMjIuNTE4LS40NzMtLjI0NmMtNS43NzYtMi45OTMtMTEuNTQ1LTUuOTgzLTE3LjMzNC04Ljk0NS0zLjY4NC0xLjg4My04LjIwNi0uNDI2LTEwLjA5MyAzLjI2Mi0xLjg4NiAzLjY4OC0uNDI2IDguMjA2IDMuMjYyIDEwLjA5MyA1Ljc2NSAyLjk0OSAxMS41MTEgNS45MjcgMTcuMjYzIDguOTA4bC40NzMuMjQ1YzEuMTA0LjU3MiAyLjI4My44NDMgMy40NDUuODQzIDIuNzEyIDAgNS4zMzEtMS40NzYgNi42NjUtNC4wNSAxLjkwNi0zLjY3OC40Ny04LjIwNC0zLjIwOC0xMC4xMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc5LjY4MyA1Ny41ODRjMS43NDQtNS41MSA0LjcxOS0xMC4xOTYgOC4xNjMtMTIuODU2IDMuMjc4LTIuNTMyIDMuODgyLTcuMjQyIDEuMzUxLTEwLjUyLTIuNTM0LTMuMjc5LTcuMjQ0LTMuODgyLTEwLjUyMS0xLjM1MS01Ljg4OSA0LjU0OS0xMC42MSAxMS43MjQtMTMuMjkzIDIwLjIwMS0xLjI1IDMuOTQ5LjkzOCA4LjE2NCA0Ljg4NyA5LjQxNC43NTMuMjM4IDEuNTE1LjM1MiAyLjI2NS4zNTIgMy4xODItLjAwMSA2LjEzNi0yLjA0MyA3LjE0OC01LjI0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDEuMTM2IDk1LjkwM2MtNi43NTEtMy4zMTQtMTEuNDI0LTYuMjY4LTE1LjE1Mi05LjU3Ni0zLjA5OC0yLjc1LTcuODM4LTIuNDY2LTEwLjU4OC42MzEtMi43NSAzLjA5OC0yLjQ2NyA3LjgzOC42MzEgMTAuNTg4IDQuNzc5IDQuMjQyIDEwLjQ4NCA3Ljg4OCAxOC40OTkgMTEuODIyIDEuMDYzLjUyMiAyLjE5Ljc2OSAzLjMuNzY5IDIuNzcgMCA1LjQzNS0xLjU0MiA2LjczOC00LjE5NiAxLjgyNS0zLjcxOC4yOS04LjIxMi0zLjQyOC0xMC4wMzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3NS44NTUgNDQxLjI3NmMtMy41NTMtMi4xMjYtOC4xNTktLjk3Mi0xMC4yODcgMi41ODMtMy40OTQgNS44MzUtNi45NDkgMTEuNTc2LTEwLjMwNiAxNy4xMjItMi4xNDUgMy41NDMtMS4wMTEgOC4xNTUgMi41MzMgMTAuMjk5IDEuMjE1LjczNSAyLjU1NCAxLjA4NSAzLjg3NyAxLjA4NSAyLjUzNyAwIDUuMDE0LTEuMjg4IDYuNDIzLTMuNjE4IDMuMzY4LTUuNTY1IDYuODM3LTExLjMyNyAxMC4zNDMtMTcuMTgzIDIuMTI3LTMuNTU0Ljk3MS04LjE2LTIuNTgzLTEwLjI4OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzY0Ljg2NCAyMjQuMTUyYy00LjA2Ny43ODYtNi43MjcgNC43Mi01Ljk0IDguNzg3LjkxIDQuNzEzIDEuMzcyIDkuNDY4IDEuMzcyIDE0LjEzMiAwIC4zNTgtLjAwMy43MTYtLjAwOSAxLjA5LS4wMTUuOTc2LS4wNDQgMS45NDctLjA4NyAyLjkxNS0uMTg3IDQuMTM4IDMuMDE4IDcuNjQzIDcuMTU1IDcuODI5LjExNS4wMDUuMjI5LjAwOC4zNDMuMDA4IDMuOTg2IDAgNy4zMDYtMy4xNCA3LjQ4Ni03LjE2My4wNTEtMS4xMTcuMDg0LTIuMjM5LjEwMS0zLjM1LjAwOC0uNDQzLjAxMS0uODg3LjAxMS0xLjMzIDAtNS42MTctLjU1NC0xMS4zMy0xLjY0NS0xNi45NzgtLjc4Ny00LjA2Ny00LjcyOC02LjcyNS04Ljc4Ny01Ljk0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDYuMjU0IDM4OS40ODFjLTMuNTgyLTIuMDczLTguMTcyLS44NTMtMTAuMjQ5IDIuNzMxLTMuMjMyIDUuNTgyLTYuNjA2IDExLjM3LTEwLjA2MiAxNy4yNjEtMi4wOTYgMy41NzMtLjg5NyA4LjE2OCAyLjY3NiAxMC4yNjQgMS4xOTIuNjk5IDIuNDk4IDEuMDMxIDMuNzg3IDEuMDMxIDIuNTc0IDAgNS4wOC0xLjMyNiA2LjQ3Ny0zLjcwNyAzLjQ2OS01LjkxNSA2Ljg1Ni0xMS43MjggMTAuMTAzLTE3LjMzMiAyLjA3Ni0zLjU4My44NTItOC4xNzEtMi43MzItMTAuMjQ4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjEuOTI5IDI4My4zMTRjLTMuODgzLTEuNDQ2LTguMjAxLjUzLTkuNjQ2IDQuNDEzLTIuMDkxIDUuNjE5LTQuNTkyIDExLjQwNC03LjY0NiAxNy42ODYtMS44MTEgMy43MjUtLjI1OSA4LjIxMyAzLjQ2NiAxMC4wMjQgMS4wNTcuNTE0IDIuMTc0Ljc1NiAzLjI3My43NTYgMi43ODEgMCA1LjQ1NC0xLjU1MyA2Ljc1MS00LjIyMyAzLjI2Ni02LjcxOCA1Ljk1Mi0xMi45MzcgOC4yMTQtMTkuMDExIDEuNDQ1LTMuODgyLS41My04LjItNC40MTItOS42NDV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzNS45MiAzMzcuMjc1Yy0zLjU4NS0yLjA3NS04LjE3My0uODUyLTEwLjI0OSAyLjczMy0zLjEwOSA1LjM3Mi02LjYzNCAxMS40Ni05Ljk3NSAxNy41MTctMiAzLjYyNy0uNjgyIDguMTg5IDIuOTQ1IDEwLjE5IDEuMTQ4LjYzMyAyLjM5MS45MzQgMy42MTUuOTM0IDIuNjQ0IDAgNS4yMDctMS40MDEgNi41NzQtMy44NzkgMy4yNjYtNS45MiA2Ljc0OS0xMS45MzggOS44MjItMTcuMjQ3IDIuMDc3LTMuNTg1Ljg1Mi04LjE3Mi0yLjczMi0xMC4yNDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwOC4wMDEgMTUxLjQwMmMtMy4yMTgtMS44MzgtNi40NzQtMy43NjMtOS42MjEtNS42MjQtMi41MzEtMS40OTYtNS4wNTktMi45OS03LjYtNC40NjEtMy41ODYtMi4wNzUtOC4xNzQtLjg1Mi0xMC4yNDggMi43MzMtMi4wNzYgMy41ODQtLjg1MyA4LjE3MyAyLjczMiAxMC4yNDkgMi41MDEgMS40NDggNC45OSAyLjkxOSA3LjQ4MiA0LjM5MyAzLjE5NCAxLjg4OCA2LjQ5OCAzLjg0MSA5LjgxMyA1LjczNSAxLjE3NC42NyAyLjQ1Mi45ODkgMy43MTQuOTg5IDIuNjA0IDAgNS4xMzUtMS4zNTggNi41MTktMy43ODEgMi4wNTYtMy41OTcuODA2LTguMTc4LTIuNzkxLTEwLjIzM3oiLz4KICAgIDwvZz4KPC9zdmc+",vae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxODguNjMyIiB5PSIyNTYiIHdpZHRoPSIzNS45MyIgaGVpZ2h0PSIxNy45NjUiLz4KICAgICAgICA8cGF0aCBkPSJNNDQxLjkxNyw0NzEuNTc5bDE2LjAzOS04OC4yMTljMC40ODItMi42MjMtMC4yMjgtNS4zMTYtMS45MzktNy4zNmMtMS43MDItMi4wNDQtNC4yMjgtMy4yMjgtNi44OTUtMy4yMjhoLTg5LjgyNQoJCQljLTIuNjY3LDAtNS4xOTMsMS4xODQtNi44OTUsMy4yMjhjLTEuNzExLDIuMDQ0LTIuNDIxLDQuNzM3LTEuOTM5LDcuMzZsMTYuMDM5LDg4LjIxOUgyNjAuNDkxVjMxLjQzOQoJCQljMC00Ljk2NS00LjAxOC04Ljk4Mi04Ljk4Mi04Ljk4Mkg1My44OTVjLTQuOTY1LDAtOC45ODIsNC4wMTgtOC45ODIsOC45ODJ2NDQwLjE0SDB2MTcuOTY1aDUzLjg5NWgxOTcuNjE0aDEyNS43NTRoNTMuODk1SDUxMgoJCQl2LTE3Ljk2NUg0NDEuOTE3eiBNMjQyLjUyNiw0NzEuNTc5SDYyLjg3N1Y0MC40MjFoMTc5LjY0OVY0NzEuNTc5eiBNNDIzLjY1OCw0NzEuNTc5aC0zOC44OTVsLTE0LjcwMi04MC44NDJoNjguMjk4CgkJCUw0MjMuNjU4LDQ3MS41Nzl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OC4xMDUsNzYuMzUxYy0yNy40NTYsMC00NC40ODksMTIuNDk2LTUzLjg5NSwyNS4xOTVjLTkuNDA4LTEyLjY5OS0yNi40MzktMjUuMTk1LTUzLjg5NS0yNS4xOTUKCQkJYy00Ljk2NSwwLTguOTgyLDQuMDE4LTguOTgyLDguOTgyYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJjMzMuNzU0LDAsNDMuMjcyLDIzLjMwNyw0NC45MTIsMjguMjQ2djIzMi4yNDYKCQkJYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJzOC45ODItNC4wMTgsOC45ODItOC45ODJWMTIyLjU3MmMxLjU0NC00LjY4LDEwLjk4Ny0yOC4yNTcsNDQuOTEyLTI4LjI1NwoJCQljNC45NjUsMCw4Ljk4Mi00LjAxOCw4Ljk4Mi04Ljk4MkM0NjcuMDg4LDgwLjM2OCw0NjMuMDcsNzYuMzUxLDQ1OC4xMDUsNzYuMzUxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDExOS4yNjNjLTE1LjU1My0xNS41NTMtMzYuODQyLTIyLjM3Ny01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwxNTYuMTU4LDM4MS4zOTUsMTM0LjgzMywzNjUuODMzLDExOS4yNjN6IE0zNjcuMDA5LDE2NC45MDMKCQkJYy0xMS4xNTgsMC40MzktMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NzksMjMuNTg4LDQuNTM1LDMyLjkzOSwxMy44NzcKCQkJQzM2Mi40NzQsMTQxLjMxNiwzNjcuNTcsMTUzLjcwMiwzNjcuMDA5LDE2NC45MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2NS44MzMsMjAwLjEwNWMtMTUuNTUzLTE1LjU1My0zNi44NDItMjIuMzY5LTU1LjY2Ny0xNy43OThjLTMuMjU0LDAuNzk4LTUuNzk4LDMuMzQyLTYuNTk2LDYuNTk2CgkJCWMtNC41NzksMTguNzcyLDIuMjM3LDQwLjA5NywxNy43OTgsNTUuNjY3YzEyLjM2LDEyLjM2LDI4LjM2LDE5LjIwMiw0My44MTYsMTkuMjAyYzQuMDA5LDAsNy45ODItMC40NjUsMTEuODUxLTEuNDA0CgkJCWMzLjI1NS0wLjc5OCw1Ljc5OC0zLjM0Miw2LjU5Ni02LjU5NkMzODguMjExLDIzNywzODEuMzk1LDIxNS42NzYsMzY1LjgzMywyMDAuMTA1eiBNMzY3LjAwOSwyNDUuNzQ2CgkJCWMtMTEuMTU4LDAuNDkxLTIzLjU5Ni00LjU0NC0zMi45MzktMTMuODc3Yy05LjM0Mi05LjM1MS0xNC40MzktMjEuNzM3LTEzLjg3Ny0zMi45MzljMTEuMTIzLTAuNTM1LDIzLjU4OCw0LjUzNSwzMi45MzksMTMuODc3CgkJCUMzNjIuNDc0LDIyMi4xNTgsMzY3LjU3LDIzNC41NDQsMzY3LjAwOSwyNDUuNzQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDI4MC45NDdjLTE1LjU1My0xNS41NjEtMzYuODQyLTIyLjM2OS01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwzMTcuODQyLDM4MS4zOTUsMjk2LjUxOCwzNjUuODMzLDI4MC45NDd6IE0zNjcuMDA5LDMyNi41ODgKCQkJYy0xMS4xNTgsMC40NDctMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NywyMy41ODgsNC41MzUsMzIuOTM5LDEzLjg3NwoJCQlDMzYyLjQ3NCwzMDMsMzY3LjU3LDMxNS4zODYsMzY3LjAwOSwzMjYuNTg4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDkuMzg2LDEwOC4wNjFjLTAuNzk4LTMuMjU0LTMuMzQyLTUuNzk4LTYuNTk2LTYuNTk2Yy0xOC43ODktNC41Ny00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjgsMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDE0OC4xNTgsNTEzLjk2NSwxMjYuODMzLDUwOS4zODYsMTA4LjA2MXogTTQ3OC44ODYsMTUxLjAyNgoJCQljLTkuMzUxLDkuMzQyLTIxLjg3NywxNC4zMjUtMzIuOTM5LDEzLjg3N2MtMC41NjEtMTEuMjAyLDQuNTM1LTIzLjU4OCwxMy44NzctMzIuOTM5YzkuMzUxLTkuMzQyLDIxLjc5OC0xNC40NDcsMzIuOTM5LTEzLjg3NwoJCQlDNDkzLjMyNSwxMjkuMjg5LDQ4OC4yMjgsMTQxLjY3NSw0NzguODg2LDE1MS4wMjZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwOS4zODYsMTg4LjkwM2MtMC43OTgtMy4yNTQtMy4zNDItNS43OTgtNi41OTYtNi41OTZjLTE4Ljc4OS00LjU3OS00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjksMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDIyOSw1MTMuOTY1LDIwNy42NzYsNTA5LjM4NiwxODguOTAzeiBNNDc4Ljg4NiwyMzEuODY4CgkJCWMtOS4zNTEsOS4zMzMtMjEuODc3LDE0LjM2OC0zMi45MzksMTMuODc3Yy0wLjU2MS0xMS4yMDIsNC41MzUtMjMuNTg4LDEzLjg3Ny0zMi45MzljOS4zNTEtOS4zNDIsMjEuNzk4LTE0LjQwMywzMi45MzktMTMuODc3CgkJCUM0OTMuMzI1LDIxMC4xMzIsNDg4LjIyOCwyMjIuNTE3LDQ3OC44ODYsMjMxLjg2OHoiLz4KICAgICAgICA8cGF0aCBkPSJNNTA5LjM4NiwyNjkuNzQ2Yy0wLjc5OC0zLjI1NC0zLjM0Mi01Ljc5OC02LjU5Ni02LjU5NmMtMTguNzg5LTQuNTc5LTQwLjEwNSwyLjIzNy01NS42NjcsMTcuNzk4CgkJCWMtMTUuNTYxLDE1LjU3LTIyLjM3NywzNi44OTUtMTcuNzk4LDU1LjY2N2MwLjc5OCwzLjI1NSwzLjM0Miw1Ljc5OCw2LjU5Niw2LjU5NmMzLjg2OSwwLjkzOSw3LjgzMywxLjQwNCwxMS44NDIsMS40MDQKCQkJYzE1LjQ2NSwwLDMxLjQ2NS02Ljg0Miw0My44MjUtMTkuMjAyQzUwNy4xNDksMzA5Ljg0Miw1MTMuOTY1LDI4OC41MTgsNTA5LjM4NiwyNjkuNzQ2eiBNNDc4Ljg4NiwzMTIuNzEKCQkJYy05LjM1MSw5LjM0Mi0yMS44NzcsMTQuMzMzLTMyLjkzOSwxMy44NzdjLTAuNTYxLTExLjIwMiw0LjUzNS0yMy41ODgsMTMuODc3LTMyLjkzOWM5LjM1MS05LjM0MiwyMS43OTgtMTQuNDQ3LDMyLjkzOS0xMy44NzcKCQkJQzQ5My4zMjUsMjkwLjk3NCw0ODguMjI4LDMwMy4zNiw0NzguODg2LDMxMi43MXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",bae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDIzMC41NjZoMjMyLjEzNWMyMi40MDUgMCA0MC42MzQtMTguMjI4IDQwLjYzNC00MC42MzN2LTE0OS4zYy0uMDAxLTIyLjQwNS0xOC4yMjktNDAuNjMzLTQwLjYzNS00MC42MzNoLTIzMi4xMzRjLTIyLjQwNSAwLTQwLjYzNCAxOC4yMjgtNDAuNjM0IDQwLjYzM3YxNDkuMjk5YzAgMjIuNDA2IDE4LjIyOCA0MC42MzQgNDAuNjM0IDQwLjYzNHptLTI1LjYzNC0xODkuOTMzYzAtMTQuMTM0IDExLjQ5OS0yNS42MzMgMjUuNjM0LTI1LjYzM2gyMzIuMTM1YzE0LjEzNSAwIDI1LjYzNCAxMS40OTkgMjUuNjM0IDI1LjYzM3YxNDkuMjk5YzAgMTQuMTM0LTExLjQ5OSAyNS42MzMtMjUuNjM0IDI1LjYzM2gtMjMyLjEzNWMtMTQuMTM1IDAtMjUuNjM0LTExLjQ5OS0yNS42MzQtMjUuNjMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDUuMTEgMTY0LjgxM2MxMC40MjMgMi4wODEgMTguODUgMTAuMTggMjAuOTcgMjAuMTU3IDEuNTM2IDcuMjIyIDguMDIyIDEyLjQ2MyAxNS40MjIgMTIuNDYzaDE0OC45NDdjNy40OCAwIDEzLjk4LTUuMzEgMTUuNDU1LTEyLjYyNCAyLjExNS0xMC40ODIgMTAuNTc2LTE4LjkzNiAyMS4wNTItMjEuMDM4IDcuMzA4LTEuNDY2IDEyLjYxMS03Ljk2NSAxMi42MTEtMTUuNDU0di02Ni4wNjdjMC03LjQ4NC01LjMxMS0xMy45ODUtMTIuNjI3LTE1LjQ1Ny0xMC40NzItMi4xMDctMTguOTI1LTEwLjU2My0yMS4wMzYtMjEuMDQxLTEuNDc1LTcuMzEyLTcuOTY3LTEyLjYxOC0xNS40MzktMTIuNjE4aC0xNDguOTcxYy03LjM5NSAwLTEzLjg3OCA1LjI0Mi0xNS40MTQgMTIuNDY1LTIuMTE4IDkuOTY5LTEwLjU0IDE4LjA2Ny0yMC45NTUgMjAuMTUzLTcuMzU1IDEuNDcyLTEyLjY5MiA3Ljk3OS0xMi42OTIgMTUuNDd2NjguMTI1YzAgNy40OTQgNS4zMzEgMTMuOTk5IDEyLjY3NyAxNS40NjZ6bTIuMzIzLTgzLjU5MmMwLS4zNzQuMjYyLS42ODcuNjM4LS43NjIgMTYuMjAzLTMuMjQ0IDI5LjMzNy0xNiAzMi42ODItMzEuNzQxLjA3My0uMzQ0LjM3OC0uNTg1Ljc0Mi0uNTg1aDE0OC45NzJjLjM1NyAwIC42NjYuMjQ1LjczMy41ODMgMy4yOSAxNi4zMjUgMTYuNDY0IDI5LjQ5OSAzMi43ODIgMzIuNzgyLjM0LjA2OC41ODYuMzg1LjU4Ni43NTJ2NjYuMDY3YzAgLjM2MS0uMjQxLjY4My0uNTYxLjc0Ny0xNi4zMjYgMy4yNzQtMjkuNTEgMTYuNDQ3LTMyLjgwNiAzMi43NzgtLjA2OS4zNDItLjM4Ni41OTEtLjc1Mi41OTFoLTE0OC45NDdjLS4zNjIgMC0uNjc4LS4yNDYtLjc1LS41ODItMy4zNDctMTUuNzUyLTE2LjQ5LTI4LjUxMS0zMi43MDUtMzEuNzQ4LS4zNTctLjA3MS0uNjE0LS4zODktLjYxNC0uNzU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNzIuMDY3IDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU4IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDE5OS41MDNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXYtNC4xNDJjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2NC4xNDJjMCA0LjE0MyAzLjM1NyA3LjUgNy41IDcuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcyLjA2NyAxODAuMzYyYy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQuMTQyYzAgNC4xNDIgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQuMTQyYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4OS43MzMgMTY0LjFoNDkuN2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNS42MzNoMTcuMzVjMi42IDAgNS4wMTQtMS4zNDYgNi4zOC0zLjU1N3MxLjQ5MS00Ljk3Mi4zMjgtNy4yOTdsLTI0Ljg1LTQ5LjdjLTEuMjcxLTIuNTQxLTMuODY3LTQuMTQ2LTYuNzA4LTQuMTQ2cy01LjQzOCAxLjYwNS02LjcwOCA0LjE0NmwtMTQuNDkzIDI4Ljk4N2gtMjguNDk4Yy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQ5LjdjLS4wMDEgNC4xNDIgMy4zNTcgNy41IDcuNDk5IDcuNXptNDkuNzAxLTczLjU2MyAxMi43MTUgMjUuNDNoLTI1LjQzem0tNDIuMjAxIDIzLjg2M2gxMy40OThsLTIuODU2IDUuNzEzYy0xLjE2MyAyLjMyNS0xLjAzOCA1LjA4Ni4zMjggNy4yOTdzMy43OCAzLjU1NyA2LjM4IDMuNTU3aDE3LjM1MXYxOC4xMzNoLTM0Ljd2LTM0Ljd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMy45ODMgMTQ3LjUzM2MxNy44MzggMCAzMi4zNS0xNC41MTIgMzIuMzUtMzIuMzUgMC0xNy44MzctMTQuNTEyLTMyLjM1LTMyLjM1LTMyLjM1cy0zMi4zNTEgMTQuNTEyLTMyLjM1MSAzMi4zNWMuMDAxIDE3LjgzOCAxNC41MTQgMzIuMzUgMzIuMzUxIDMyLjM1em0wLTQ5LjY5OWM5LjU2NiAwIDE3LjM1IDcuNzgzIDE3LjM1IDE3LjM1cy03Ljc4MyAxNy4zNS0xNy4zNSAxNy4zNS0xNy4zNTEtNy43ODMtMTcuMzUxLTE3LjM1Yy4wMDEtOS41NjcgNy43ODQtMTcuMzUgMTcuMzUxLTE3LjM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzAuODY3IDI0OC41Yy04LjU0NyAwLTE1LjUgNi45NTMtMTUuNSAxNS41djE3LjEzM2MwIDguNTQ3IDYuOTUzIDE1LjUgMTUuNSAxNS41aDUwLjI2NmM4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptNTAuNzY2IDE1LjV2MTcuMTMzYzAgLjI3Ni0uMjI1LjUtLjUuNWgtNTAuMjY2Yy0uMjc1IDAtLjUtLjIyNC0uNS0uNXYtMTcuMTMzYzAtLjI3Ni4yMjUtLjUuNS0uNWg1MC4yNjZjLjI3NSAwIC41LjIyNC41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ5Ni41IDQ2My44NjdoLTE3LjY3MmMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtMTM2LjUwNWM5LjYwOC0zLjE2IDE2LjU2Ny0xMi4yMTIgMTYuNTY3LTIyLjg2NHYtOC4yODRjMC04LjcwMy03LjA4MS0xNS43ODMtMTUuNzg0LTE1Ljc4M2gtMi41NjJjMS4xNDMtMi44IDEuNzc5LTUuODYgMS43NzktOS4wNjcgMC0xMy4yNy0xMC43OTYtMjQuMDY2LTI0LjA2Ni0yNC4wNjZzLTI0LjA2NiAxMC43OTYtMjQuMDY2IDI0LjA2NmMwIDMuMjA3LjYzNSA2LjI2NiAxLjc3OSA5LjA2N2gtMi41NjNjLTguNzAzIDAtMTUuNzgzIDcuMDgxLTE1Ljc4MyAxNS43ODN2OC4yODRjMCAxMC41MTggNi43ODYgMTkuNDc2IDE2LjIwNyAyMi43NDEtMTguNjE2IDE4LjQzOC00MC4wMzcgMzMuMzUxLTYzLjczNCA0NC4zMzctMy43NTggMS43NDItNS4zOTMgNi4yMDEtMy42NSA5Ljk1OCAxLjI3IDIuNzM3IDMuOTc4IDQuMzQ4IDYuODEgNC4zNDggMS4wNTYgMCAyLjEyOS0uMjI0IDMuMTQ5LS42OTggMjEuMDU4LTkuNzYyIDQwLjQyNy0yMi40MzIgNTcuNzg2LTM3Ljc1NHYyMy43MTJjLTQ1LjQxIDM1LjQ5NS0xMDAuMDE0IDU0LjI0Ny0xNTguMTY3IDU0LjI0Ny01OC4xNDggMC0xMTIuNzU2LTE4Ljc1My0xNTguMTY3LTU0LjI0OXYtMjMuNjljNDMuNzY0IDM4LjY5IDk5LjI4IDU5LjgwNSAxNTguMTY3IDU5LjgwNSAyMy41OTIgMCA0Ni45MTMtMy40NDEgNjkuMzE0LTEwLjIyOCAzLjk2NC0xLjIwMSA2LjIwNC01LjM4OCA1LjAwMy05LjM1My0xLjIwMS0zLjk2NC01LjM4OS02LjIwNy05LjM1My01LjAwMy0yMC45ODkgNi4zNTktNDIuODQ3IDkuNTgzLTY0Ljk2NCA5LjU4My01OS41NzIgMC0xMTUuNDYyLTIzLjA3LTE1Ny44MDItNjUuMDE4IDkuNDE5LTMuMjY3IDE2LjIwMi0xMi4yMjQgMTYuMjAyLTIyLjc0di04LjI4NGMwLTguNzAzLTcuMDgtMTUuNzgzLTE1Ljc4My0xNS43ODNoLTIuNTYzYzEuMTQzLTIuOCAxLjc3OS01Ljg2IDEuNzc5LTkuMDY3IDAtMTMuMjctMTAuNzk2LTI0LjA2Ni0yNC4wNjYtMjQuMDY2cy0yNC4wNyAxMC43OTgtMjQuMDcgMjQuMDY4YzAgMy4yMDcuNjM2IDYuMjY2IDEuNzc5IDkuMDY3aC0yLjU2MmMtOC43MDMgMC0xNS43ODQgNy4wODEtMTUuNzg0IDE1Ljc4M3Y4LjI4NGMwIDEwLjY1MiA2Ljk1OSAxOS43MDQgMTYuNTY3IDIyLjg2NHYxMzYuNTA2Yy05LjYwOCAzLjE2LTE2LjU2NyAxMi4yMTItMTYuNTY3IDIyLjg2NHY4LjI4NGMwIC4yNjQuMDI3LjUyMi4wNC43ODNoLTE3LjY3M2MtOC41NDcgMC0xNS41IDYuOTUzLTE1LjUgMTUuNXYxNy4xMzJjMCA4LjU0NyA2Ljk1MyAxNS41IDE1LjUgMTUuNWg1OS44MzNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTU5LjgzM2MtLjI3NSAwLS41LS4yMjQtLjUtLjV2LTE3LjEzM2MwLS4yNzYuMjI1LS41LjUtLjVoNDgxYy4yNzUgMCAuNS4yMjQuNS41djE3LjEzM2MwIC4yNzYtLjIyNS41LS41LjVoLTM5MS4xNjdjLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMzkxLjE2N2M4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptLTY3LjMzMy0xNjQuNTc3Yy4xNjEtLjg3OC4xNTgtMS43NzguMDA1LTIuNjU2aDE4LjEyOHYxOC4xMzNoLTE4LjEzM3ptMCA0My45MDRjLjAxMi0uMjM5LjAxMi0uNDc5IDAtLjcxOXYtMTIuNzA5aDE4LjEzM3YxMDAuOTY3aC0xOC4xMzN6bTAtMTAzLjc2MWMwLTQuOTk5IDQuMDY3LTkuMDY2IDkuMDY2LTkuMDY2czkuMDY2IDQuMDY3IDkuMDY2IDkuMDY2LTQuMDY3IDkuMDY3LTkuMDY2IDkuMDY3LTkuMDY2LTQuMDY3LTkuMDY2LTkuMDY3em0tMTYuNTY3IDI0Ljg1YzAtLjQzMi4zNTItLjc4My43ODMtLjc4M2g0OS43Yy40MzMgMCAuNzg0LjM1Mi43ODQuNzgzdjguMjg0YzAgNC45OTktNC4wNjcgOS4wNjYtOS4wNjcgOS4wNjZoLTMzLjEzM2MtNSAwLTkuMDY3LTQuMDY3LTkuMDY3LTkuMDY2em0tMTU2LjYgMTQ0LjE3NmM1Ny42NDggMCAxMTIuMDA3LTE3LjQyMiAxNTguMTY3LTUwLjUxNHY3My45OTFjLTkuNjA4IDMuMTYtMTYuNTY3IDEyLjIxMi0xNi41NjcgMjIuODY0djguMjg0YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMjgzLjI3OWMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtNzMuOTkyYzQ2LjE2MSAzMy4wOTIgMTAwLjUyMyA1MC41MTUgMTU4LjE2NiA1MC41MTV6bS0xNzMuMTY3LTExMC43ODljLS4wMTIuMjQ3LS4wMTIuNDk1IDAgLjc0MnYxNi4zNTVoLTE4LjEzM3YtMTguMTMzaDE4LjEzM3ptLTE4LjEzMyAzMi4wOTdoMTguMTMzdjEwMC45NjdoLTE4LjEzM3ptMC05MC4zMzRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ni05LjA2NnM5LjA2NiA0LjA2NyA5LjA2NiA5LjA2Ni00LjA2NyA5LjA2Ny05LjA2NiA5LjA2Ny05LjA2Ni00LjA2Ny05LjA2Ni05LjA2N3ptLTE2LjU2NyAyNC44NWMwLS40MzIuMzUyLS43ODMuNzg0LS43ODNoNDkuN2MuNDMyIDAgLjc4My4zNTIuNzgzLjc4M3Y4LjI4NGMwIDQuOTk5LTQuMDY3IDkuMDY2LTkuMDY3IDkuMDY2aC0zMy4xMzNjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2NnptLjc4NCAxOTkuNTg0Yy0uNDMzIDAtLjc4NC0uMzUyLS43ODQtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzgzLjc4M3ptMzY0LjQ2NiAwYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzg0Ljc4M3oiLz4KICAgIDwvZz4KPC9zdmc+",$ae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDc0LjYwOCw4MC40MzlsLTIzMi04MGMtMS42OS0wLjU4My0zLjUyNi0wLjU4My01LjIxNiwwbC0yMzIsODBDMi4xNjYsODEuNTUxLDAuMDAxLDg0LjU4NywwLDg3Ljk5OXYzODQKCQkJYzAsNC40MTgsMy41ODIsOCw4LDhoNDBjNC40MTgsMCw4LTMuNTgyLDgtOHYtMjQ4aDM2OHYyNDhjMCw0LjQxOCwzLjU4Miw4LDgsOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04di0zODQKCQkJQzQ3OS45OTksODQuNTg3LDQ3Ny44MzQsODEuNTUxLDQ3NC42MDgsODAuNDM5eiBNNDAsMjE1Ljk5OXYyNDhIMTZ2LTMwNGgyNFYyMTUuOTk5eiBNNDI0LDIwNy45OTlINTZ2LTE2aDM2OFYyMDcuOTk5egoJCQkgTTQyNCwxNzUuOTk5SDU2di0xNmgzNjhWMTc1Ljk5OXogTTQ2NCw0NjMuOTk5aC0yNHYtMzA0aDI0VjQ2My45OTl6IE00NjQsMTQzLjk5OUgxNlY5My43MDNsMjI0LTc3LjI0bDIyNCw3Ny4yNFYxNDMuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zOTUuNTc2LDM0NC43OTlsLTI5LjYtMTQuOGwtMjYuNC01Mi44Yy00LjA2MS04LjEyNS0xMi4zODEtMTMuMjQyLTIxLjQ2NC0xMy4ySDE2MS44ODgKCQkJYy05LjA5OC0wLjAzLTE3LjQyMSw1LjExNC0yMS40NjQsMTMuMjY0bC0yNi40LDUyLjhsLTI5LjYsMTQuOGMtMi43MDUsMS4zNTItNC40MTYsNC4xMTItNC40MjQsNy4xMzZ2MTEyYzAsOC44MzcsNy4xNjMsMTYsMTYsMTYKCQkJaDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTI0aDE5MnYyNGMwLDguODM3LDcuMTYzLDE2LDE2LDE2aDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTExMgoJCQlDNDAwLjAxNywzNDguOTUyLDM5OC4zMDEsMzQ2LjE2LDM5NS41NzYsMzQ0Ljc5OXogTTE1NC43MzYsMjg0LjQyM2MxLjM0NS0yLjcxOCw0LjExOS00LjQzNCw3LjE1Mi00LjQyNGgxNTYuMjI0CgkJCWMzLjAzMy0wLjAxLDUuODA3LDEuNzA2LDcuMTUyLDQuNDI0bDIxLjc5Miw0My41NzZIMTMyLjk0NEwxNTQuNzM2LDI4NC40MjN6IE0xMjgsNDYzLjk5OUg5NnYtMjRoMzJWNDYzLjk5OXogTTM4NCw0NjMuOTk5aC0zMgoJCQl2LTI0aDMyVjQ2My45OTl6IE0zODQsNDIzLjk5OUgxMzZIOTZ2LTY3LjA1NmwyNS44ODgtMTIuOTQ0aDIzNi4yMjRMMzg0LDM1Ni45NDNWNDIzLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzE2OCwzNjcuMTYyLDE2MC44MzcsMzU5Ljk5OSwxNTIsMzU5Ljk5OXogTTE1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzM2OCwzNjcuMTYyLDM2MC44MzcsMzU5Ljk5OSwzNTIsMzU5Ljk5OXogTTM1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjgwLDM1OS45OTloLTgwYy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoODBjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzI5NiwzNjcuMTYyLDI4OC44MzcsMzU5Ljk5OSwyODAsMzU5Ljk5OXogTTI4MCwzOTEuOTk5aC04MHYtMTZoODBWMzkxLjk5OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Pae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMS45NzggNTExLjk3OCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjIzLjI0OGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0xNi42OTZjMC0xMi41NTcgMTAuMjE2LTIyLjc3MyAyMi43NzItMjIuNzczaDE1LjM5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTUuMzkyYy0yMC44MjggMC0zNy43NzIgMTYuOTQ1LTM3Ljc3MiAzNy43NzN2MTYuNjk2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjgxLjE4N2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNC43NDZjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2MjQuNzQ2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE1Ny44NTYgMjA4Ljg2djM2LjMzOWMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0zNi4zMzljMC0zLjI5NCAyLjc5Ni02LjA3OCA2LjEwNS02LjA3OGgxMy4yMzdjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTEzLjIzN2MtMTEuNjM3IDAtMjEuMTA1IDkuNDU1LTIxLjEwNSAyMS4wNzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyOC4xODEgMjExLjQzYzIuOTQyIDEuOTY0IDYuMzgyIDIuOTYzIDkuODg5IDIuOTYzIDIuNDQyIDAgNC45MTktLjQ4NSA3LjI4Mi0xLjQ2N2wyNC43Ni0xMC4yNTUgNjMuNTk1IDQuOTA2IDQuNjYxIDE2LjEyMWMxLjYxOSA1LjYwMSA1LjU5NiAxMC4wNzQgMTEuMTk3IDEyLjU5NSAzLjE0OCAxLjQxNyA2LjU5MSAyLjEyNCAxMC4wNDEgMi4xMjQgMy42NTMgMCA3LjMxNi0uNzkzIDEwLjY0NC0yLjM3NGwxMTcuMjkxLTU1LjcyOWM2LjQ2OS0zLjA3NCAxMS40MjUtOS4wMSAxMy4yNTgtMTUuODggMS41ODItNS45MzIuNjI5LTExLjgzNS0yLjY4NC0xNi42MTlsLTIzLjYzOS0zNC4xNjRjMTcuNzYzLTIwLjQ2MiAyMS45NDEtNDkuNTk1IDEwLjEyNy03NC40NjEtMTYuMjcyLTM0LjIwMS01Ny4zMzItNDguNzk3LTkxLjUxLTMyLjU1LTI2LjE4MSAxMi40MzUtNDEuNTkyIDQwLjAwOC0zOC45MSA2OC40NThsLTMzLjc2NiAxNi4wNDJjLS4wMDEgMC0uMDAxIDAtLjAwMSAwLTEwLjcyNSA1LjA5Ni0xNS4zOTEgMTcuMjgxLTExLjYxMSAzMC4zMTVsOC43NDUgMzAuMjQyaC00Ny4xNTdsLTI1LjA1NS0xMC4zNzdjLTUuNzYzLTIuMzcxLTEyLjE3OS0xLjc5My0xNy4xNjcgMS41NDYtNC43MTMgMy4xNTctNy40MTYgOC4yMjEtNy40MTYgMTMuODkzdjQwLjc2MWMtLjAwMiA1LjY5MSAyLjcwNiAxMC43NiA3LjQyNiAxMy45MXptMjU3LjYtNTUuMDc3Yy43OSAxLjE0Ljk2NiAyLjU1OC41MjQgNC4yMTQtLjY5MiAyLjU5My0yLjczNCA1LjAyNi01LjIwMiA2LjE5OWwtMTE3LjI5MSA1NS43MjhjLTIuNDcgMS4xNzMtNS42NDYgMS4yMjEtOC4wOTEuMTItMS41NjUtLjcwNC0yLjU1Ni0xLjc0MS0yLjk0My0zLjA4M2wtMjIuMzc2LTc3LjM4NSAxMDkuNTQyLTUyLjA0em0tODYuMjUyLTEzNi4xNjJjLjAwMSAwIC4wMDItLjAwMS4wMDMtLjAwMSAyNi43MTYtMTIuNzAzIDU4LjgwNi0xLjI4OCA3MS41MjQgMjUuNDQyIDguNjY0IDE4LjIzNyA2LjMzIDM5LjQxNy01LjQ2MyA1NS4xNzNsLS4wMjQtLjAyNi0yOC4wMDItNDAuNDdjLTcuNzI5LTExLjE2LTIwLjEzNS0xNS4yNDEtMzAuODY4LTEwLjE1N2wtMzcuODAzIDE3Ljk1OC0uMDEyLjAwM2MuMjE3LTIwLjE5IDExLjg5OS0zOS4wMTkgMzAuNjQ1LTQ3LjkyMnptLTcyLjY3NiA4NC40OTggODYuMjczLTQwLjk4NGM0Ljc1LTIuMjUxIDkuNDkyIDEuMzY2IDEyLjEwNyA1LjE0M2w2LjA2MiA4Ljc2LTEwNS4xMTUgNDkuOTM3LTIuOTY3LTEwLjI2MmMtMS4yNzgtNC40MDQtMS4wOS0xMC4zNDYgMy42NC0xMi41OTR6bS01MC40NTMgNjIuMDA5aDQ1LjQ3OGw3LjM2NSAyNS40OS01Mi44NDMtNC4wNzd6bS00MC42NDctOS45MzhjMC0uMzk1LjA3OS0uOTcyLjc2NS0xLjQzMS4yMDQtLjEzNy43NzEtLjQ1NSAxLjYxMy0uNDU1LjQyNyAwIC45MjQuMDgyIDEuNDguMzExbDIxLjc4OCA5LjAyNHYyNS44MzRsLTIxLjc5NyA5LjAyN2MtMS42NjUuNjk0LTIuNzkyLjA4NS0zLjA5Ni0uMTE4LS42NjgtLjQ0Ni0uNzU0LS45OTktLjc1NC0xLjQzMXYtNDAuNzYxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTcuOTYgNDY0LjQ3OWMtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOC03LjY3OC0yLjkyOC0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xOTAuOTIgNDY4LjI3N2MtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyNy03LjY3OC0yLjkyNy0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDcuOTU3IDQ2NC40NzljLTIuOTI5IDIuOTI5LTIuOTI5IDcuNjc4IDAgMTAuNjA2bC4wMjguMDI4YzEuNDYyIDEuNDYxIDMuMzcxIDIuMTkgNS4yODMgMi4xOSAxLjkyIDAgMy44NDItLjczNiA1LjMxLTIuMjA0IDIuOTI5LTIuOTI5IDIuOTE1LTcuNjkyLS4wMTQtMTAuNjIxLTIuOTMtMi45MjgtNy42NzgtMi45MjgtMTAuNjA3LjAwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjIyMiA0ODEuMTAyYzEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOS03LjY3OC0yLjkyOS0xMC42MDcgMHMtMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjIgMy4zNzEgMi4xOTEgNS4yODMgMi4xOTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MC43ODQgNDA5LjM4NWMyMi43MTMtMi4yNzggNDEuMTkxLTIyLjc5MiA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcwOS0xLjU0OS03LjIzNC00LjI0OC05LjY3MS0yLjY5Mi0yLjQzMS02LjM1Mi0zLjYwOS0xMC4wMS0zLjIzM2wtMjguODEgMi44OTJjLTkuOTIzIDEuMDEtMTkuMDM3IDUuNTAyLTI2LjE1MSAxMi4xNTJsLjA2My01LjE1NGMwLTIyLjkwMy0xOC4zMzctNDMuMjY2LTQxLjA1NC00NS41NzhsLTI4Ljc4My0yLjg5Yy0zLjY4Ny0uMzc5LTcuMzM0LjgwMi0xMC4wMjUgMy4yMzItMi42OTkgMi40MzgtNC4yNDggNS45NjItNC4yNDggOS42NzF2MjguNzQzYzAgMjIuOTAzIDE4LjQ3MyA0My40MTcgNDEuMTg1IDQ1LjcyOWwyNy44NjMgMi44MTR2NTMuOTk2aC01NC41MTljLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTE5LjMwNGMyLjQ0NCAwIDQuNDM0IDEuOTc2IDQuNDM0IDQuNDA1djQ1LjUyM2MwIDIuNDAzLTIuMDMgNC40MzQtNC40MzQgNC40MzRoLTQ3My4xMzRjLTIuMzg4IDAtNC40MDUtMi4wMy00LjQwNS00LjQzNHYtNDUuNTIzYzAtMi4zODggMi4wMTgtNC40MDUgNC40MDUtNC40MDVoMzE5LjE5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNzUuMTI2di0xNS4zOTdsMjguMDU3LTIuODMzYzIyLjcxMy0yLjI3OCA0MS4xOS0yMi43OTIgNDEuMTktNDUuNzI5di0yOC43NDNjMC0zLjcwNS0xLjU1Mi03LjIyOS00LjI1Ny05LjY2OS0yLjctMi40MzUtNi4zNTktMy42MTItMTAuMDAxLTMuMjM1bC0yOC44MSAyLjg5MmMtOS45MzQgMS4wMTEtMTkuMDU4IDUuNTA3LTI2LjE4IDEyLjE2MyAwIDAgLjE5OS00LjQyOS4xOTktNS4wMTMgMC0yMi45MDctMTguNDc0LTQzLjQyLTQxLjE5LTQ1LjcyOWwtMjguNzc2LTIuODljLTMuNjY2LS4zNzUtNy4zMDguNzk2LTkuOTk3IDMuMjIyLTIuNzA0IDIuNDM5LTQuMjU1IDUuOTY3LTQuMjU1IDkuNjgxdjI4Ljc0M2MwIDIyLjkwMyAxOC40NzQgNDMuNDE3IDQxLjE4NiA0NS43MjlsMjcuODM0IDIuODEzdjUzLjk5NmgtMTY0LjI1M3YtMTUuMzk4bDI4LjAyNi0yLjgzMmMyMi43MTMtMi4yNzQgNDEuMTkxLTIyLjc4OSA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcxMy0xLjU1MS03LjI0Mi00LjI1NS05LjY4MS0yLjY4OS0yLjQyNi02LjMzMy0zLjYwNC05Ljk3NS0zLjIyNGwtMjguODEgMi44OTJjLTkuOTM0IDEuMDExLTE5LjA1OCA1LjUwNy0yNi4xNzkgMTIuMTYyIDAgMCAuMTk4LTQuNDMuMTk4LTUuMDEyIDAtMjIuOTAzLTE4LjQ3NC00My40MTctNDEuMTktNDUuNzI5bC0yOC43NzYtMi44OWMtMy42Ni0uMzc0LTcuMzA2Ljc5NS05Ljk5NyAzLjIyMi0yLjcwNCAyLjQzOS00LjI1NSA1Ljk2OC00LjI1NSA5LjY4MXYyOC43NDNjMCAyMi45MDMgMTguNDc0IDQzLjQxNyA0MS4xODYgNDUuNzI5bDI3LjgzNSAyLjgxM3YzMS43OTUgMjIuMjAxaC00OS44MTJjLTEwLjcgMC0xOS40MDUgOC43MDUtMTkuNDA1IDE5LjQwNXY0NS41MjNjMCAxMC43MTYgOC43MDUgMTkuNDM0IDE5LjQwNSAxOS40MzRoNDczLjEzNGMxMC43MTYgMCAxOS40MzQtOC43MTggMTkuNDM0LTE5LjQzNHYtNDUuNTIzYzAtMTAuNy04LjcxOC0xOS40MDUtMTkuNDM0LTE5LjQwNWgtNDkuNzg1di0xNS4zOTh6bS0yOC4wMjgtMzguNzU2YzAtMTUuMTcxIDEyLjY3Mi0yOS4yNzkgMjcuNjYtMzAuODA1bDI2LjU1OS0yLjY2NnYyNi40OThjMCAxNS4xOTItMTIuNjggMjkuMjk5LTI3LjY5MyAzMC44MDVsLTE1LjQxNSAxLjU1OCAxOS4wNjktMjEuMDk3YzIuNzc3LTMuMDczIDIuNTM3LTcuODE2LS41MzUtMTAuNTkzLTMuMDcyLTIuNzc1LTcuODE0LTIuNTM5LTEwLjU5NC41MzVsLTE5LjA1MSAyMS4wNzd6bS0xNS0yMy40NTctMTguODgtMjAuODg4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M2wxOS4wNjcgMjEuMDk2LTE1LjQwOC0xLjU1NmMtMTUuMDE0LTEuNTI4LTI3LjY5OC0xNS42MzUtMjcuNjk4LTMwLjgwNXYtMjYuNDk3bDI2LjU0OCAyLjY2NmMxNS4wMTUgMS41MjggMjcuNSAxNS42MzUgMjcuNSAzMC44MDV6bS0xNjQuMjgyIDIzLjQ1N2MwLTE1LjE3IDEyLjY4NS0yOS4yNzcgMjcuNjg4LTMwLjgwNWwyNi41NTktMi42NjZ2MjYuNDk4YzAgMTUuMTkyLTEyLjY3OSAyOS4yOTktMjcuNjkyIDMwLjgwNWwtMTUuNDE0IDEuNTU3IDE5LjA2OC0yMS4wOTZjMi43NzctMy4wNzMgMi41MzctNy44MTYtLjUzNS0xMC41OTMtMy4wNzItMi43NzUtNy44MTQtMi41MzktMTAuNTk0LjUzNWwtMTkuMDc5IDIxLjEwOHYtMTUuMzQzem0tNDQuOTgtMzQuMjg2IDE5LjA2OSAyMS4wOTctMTUuNDA5LTEuNTU3Yy0xNS4wMTUtMS41MjgtMjcuNjk5LTE1LjYzNS0yNy42OTktMzAuODA1di0yNi40OTVsMjYuNTIxIDIuNjYzYzE1LjAxNSAxLjUyNiAyNy40OTkgMTUuNjMzIDI3LjQ5OSAzMC44MDV2MTUuMDkxbC0xOC44NTItMjAuODU3Yy0yLjc3OC0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M3ptLTEzNC4yNzMgMzQuMjg2YzAtMTUuMTcgMTIuNjg1LTI5LjI3NyAyNy42ODgtMzAuODA1bDI2LjUzLTIuNjYzdjI2LjQ5NWMwIDE1LjE5NS0xMi42NzkgMjkuMzAxLTI3LjY5MiAzMC44MDVsLTE1LjQwNSAxLjU1NyAxOS4wODMtMjEuMDk0YzIuNzc5LTMuMDcyIDIuNTQyLTcuODE0LS41My0xMC41OTMtMy4wNjgtMi43NzgtNy44MTMtMi41NDItMTAuNTkzLjUzbC0xOS4wODEgMjEuMDkxem0tNDQuOTgxLTM0LjI4NiAxOS4wNjkgMjEuMDk3LTE1LjQwOS0xLjU1OGMtMTUuMDE1LTEuNTI4LTI3LjY5OS0xNS42MzUtMjcuNjk5LTMwLjgwNXYtMjYuNDk1bDI2LjUyIDIuNjYzYzE1LjAxNSAxLjUyOCAyNy41MDEgMTUuNjM1IDI3LjUwMSAzMC44MDV2MTUuMDkybC0xOC44NTMtMjAuODU4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41MjEtLjUzNSAxMC41OTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Wae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNi42MjIgMTUxLjc0MWgxMC44djM1LjY4MWMwIDExLjEyNSA5LjA1MSAyMC4xNzUgMjAuMTc1IDIwLjE3NWgxNC44MTRjNC43OTkgMCA5LjIwOC0xLjY5MSAxMi42NzUtNC41IDMuNDY3IDIuODA5IDcuODc1IDQuNSAxMi42NzUgNC41aDE0LjgxNGMxMS4xMjQgMCAyMC4xNzUtOS4wNSAyMC4xNzUtMjAuMTc1di0zOS45NGgyMC4xMzl2MTg1LjExNWgtMjMuNDU3Yy0xMC45MzggMC0xOS44MzcgOC44OTgtMTkuODM3IDE5LjgzNnYzNy4zMjRjMCA5Ljk2OCA3LjM5OCAxOC4yMTkgMTYuOTg4IDE5LjYwOHY4Ny41NzZjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzVjOC4zMDQgMCAxNS4wNTktNi43NTUgMTUuMDU5LTE1LjA1OXYtNTMuODQ0aDUxLjQ2NGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWMtOS43NjUgMC04NS43ODUgMC05Ni45MTcgMHYtMTguNTAzaDIyOC44MzR2MTguNTAzYy0xMS4xMzcgMC04Ny4yMTcgMC05Ni45MTcgMC00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU3IDcuNSA3LjUgNy41aDUxLjQ2NXY1My44NDRjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzRjOC4zMDQgMCAxNS4wNi02Ljc1NSAxNS4wNi0xNS4wNTkgMC0xMC4xNTQgMC03Ny4wMzYgMC04Ny41NzYgOS41OS0xLjM4OSAxNi45ODgtOS42NCAxNi45ODgtMTkuNjA4di0zNy4zMjRjMC0xMC45MzgtOC44OTgtMTkuODM2LTE5LjgzNy0xOS44MzZoLTIzLjQ1N3YtNzUuMDU4YzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc1LjA1OGgtMjUuMTY0YzAtMjEuNzEzIDAtMTYyLjkxMiAwLTE4NS4xMTVoMjUuMTY0djc1LjA1OGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di03NS4wNThoMjAuMTM5djM5Ljk0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1aDE0LjgxNGM0Ljc5OSAwIDkuMjA4LTEuNjkxIDEyLjY3NS00LjUgMy40NjcgMi44MDkgNy44NzUgNC41IDEyLjY3NCA0LjVoMTQuODE1YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTM1LjY4MWgxMC44YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTE0LjgxNGMwLTExLjEyNS05LjA1MS0yMC4xNzUtMjAuMTc1LTIwLjE3NWgtMTAuOHYtMzUuNjgxYzAtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTVjLTQuNzk5IDAtOS4yMDcgMS42OTEtMTIuNjc0IDQuNS0zLjQ2Ny0yLjgwOS03Ljg3NS00LjUtMTIuNjc1LTQuNWgtMTQuODE0Yy0xMS4xMjQgMC0yMC4xNzUgOS4wNS0yMC4xNzUgMjAuMTc0djM5Ljk0MWgtMjAuMTM5di04MC42NjNjLS4wMDEtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTRjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzR2NTAuNTM0aC05NS44OTZ2LTUwLjUzNGMwLTExLjEyNC05LjA1LTIwLjE3NC0yMC4xNzQtMjAuMTc0aC0xNC44MTVjLTExLjEyNCAwLTIwLjE3NCA5LjA1LTIwLjE3NCAyMC4xNzR2ODAuNjYzaC0yMC4xMzl2LTM5Ljk0MWMwLTExLjEyNC05LjA1MS0yMC4xNzQtMjAuMTc1LTIwLjE3NGgtMTQuODE0Yy00Ljc5OSAwLTkuMjA4IDEuNjkxLTEyLjY3NSA0LjUtMy40NjctMi44MDktNy44NzUtNC41LTEyLjY3NS00LjVoLTE0LjgxNGMtMTEuMTI0IDAtMjAuMTc1IDkuMDUtMjAuMTc1IDIwLjE3NHYzNS42ODFoLTEwLjhjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzV2MTQuODE0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1em0xNDEuMjY3LTQuMjZoMjUuMTYzdjE4NS4xMTVoLTI1LjE2M3ptNDAuMTYzIDY4LjcxMmg5NS44OTZ2NzYuOTAxaC05NS44OTZ6bTk1Ljg5NS0xNWgtOTUuODk2di0yMy41ODNoOTUuODk2em0tMTMxLjkxOSAyNDEuOTA0LS4wNTEgNTMuOTAzLTMwLjM5My0uMDM5YzAtLjAwMS0uMDAxLS4wMDgtLjAwMS0uMDJ2LTUzLjg0NHptMTk4LjMyOSA1My45MDMtMzAuMzkzLS4wNTl2LTUzLjg0NGgzMC40NDV6bTEyLjIxMS0xNDkuNDAzYzIuNjY3IDAgNC44MzcgMi4xNjkgNC44MzcgNC44MzZ2MzcuMzI0YzAgMi42NjctMi4xNyA0LjgzNi00LjgzNyA0LjgzNi0xMy4yMDIgMC0yNDEuMjU2IDAtMjUzLjEzNyAwLTIuNjY3IDAtNC44MzctMi4xNjktNC44MzctNC44MzZ2LTM3LjMyNGMwLTIuNjY3IDIuMTctNC44MzYgNC44MzctNC44MzZ6bS0xNzQuNTE2LTE1di0yNC41MDNoOTUuODk2djI0LjUwM3ptOTUuODk1LTE2OS45ODdoLTk1Ljg5NnYtMTUuMTI4aDk1Ljg5NnptLTExNS45NzctMzAuMTI5di0xNi42NDVoMTM2LjA2djE2LjY0NWMtNC42NTMgMC0xMzAuNDExIDAtMTM2LjA2IDB6bTI5Ny40MDgtMjAuOTA0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NXYxNC44MTRjMCAyLjgwNS0yLjM3IDUuMTc1LTUuMTc1IDUuMTc1aC0xMC44di0yNS4xNjR6bS00NS43OS01NS44NTVoMTQuODE1YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE1Yy0yLjgwNSAwLTUuMTc0LTIuMzctNS4xNzQtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM2OS01LjE3NCA1LjE3NC01LjE3NHptLTQ1LjMzOCA1LjE3NGMwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtMi45MDQgMC0xMjIuNjAyIDAtMTI2LjUyNnptLTE1IDcxLjU4NWMtMTMuNDYzIDAtMjUuMTg2IDAtNDAuMjIxIDB2LTE2LjY0NWg0MC4yMjF6bS02MC4zMDMtMTEyLjMwN2MwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODU0IDAgNS4xNzUgMi4zMjEgNS4xNzUgNS4xNzR2ODAuNjYzYy05LjEwNiAwLTE2LjA1OCAwLTI1LjE2NCAwIDAtOS4zNzMgMC03MC44ODUgMC04MC42NjN6bS0xNSA2NS41MzR2MTUuMTI4aC05NS44OTZ2LTE1LjEyOHptLTEzNi4wNTgtNjUuNTM0YzAtMi44MDUgMi4zNjktNS4xNzQgNS4xNzQtNS4xNzRoMTQuODE1YzIuODA1IDAgNS4xNzQgMi4zNyA1LjE3NCA1LjE3NHY4MC42NjNjLTkuMTA0IDAtMTYuMDM5IDAtMjUuMTYzIDB6bTUuMDgxIDk1LjY2M3YxNi42NDVjLTE1LjI3MyAwLTI2LjQ2IDAtNDAuMjIgMHYtMTYuNjQ1em0tNzUuMjA5LTYwLjExNWgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjgwNSAwLTUuMTc1LTIuMzctNS4xNzUtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM3LTUuMTc0IDUuMTc1LTUuMTc0em0tNDUuMzM5IDUuMTc0YzAtMi44MDUgMi4zNy01LjE3NCA1LjE3NS01LjE3NGgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtNS42NzkgMC0xMjAuODI3IDAtMTI2LjUyNnptLTMwLjk3NSA1NS44NTZjMC0yLjg1NCAyLjMyMS01LjE3NSA1LjE3NS01LjE3NWgxMC44djI1LjE2NGgtMTAuOGMtMi44NTQgMC01LjE3NS0yLjMyMS01LjE3NS01LjE3NXoiLz4KICAgIDwvZz4KPC9zdmc+",Rae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDI4MGgtMTZWMTY2LjRjMC0xMi05LjYtMjIuNC0yMi40LTIyLjRoLTRjLTEyLDAtMjIuNCw5LjYtMjIuNCwyMi40VjI4MGgtMjR2LTE2YzAtMTMuNi0xMC40LTI0LTI0LTI0SDEyMAoJCQljLTEzLjYsMC0yNCwxMC40LTI0LDI0djE2SDcyVjE2Ni40YzAtMTItOS42LTIyLjQtMjIuNC0yMi40aC0zLjJjLTEyLjgsMC0yMi40LDkuNi0yMi40LDIyLjRWMjgwSDhjLTQuOCwwLTgsMy4yLTgsOHMzLjIsOCw4LDhoOAoJCQl2MTQ0YzAsNC44LDMuMiw4LDgsOGg4djhjMCw0LjgsMy4yLDgsOCw4czgtMy4yLDgtOHYtOGgzODR2OGMwLDQuOCwzLjIsOCw4LDhzOC0zLjIsOC04di04aDhjNC44LDAsOC0zLjIsOC04VjI5Nmg4CgkJCWM0LjgsMCw4LTMuMiw4LThTNDc2LjgsMjgwLDQ3MiwyODB6IE00MzAuNCwxNjBoNGMzLjIsMCw2LjQsMi40LDYuNCw2LjRWMjgwaC0xNlYxNjYuNEg0MjRDNDI0LDE2My4yLDQyNi40LDE2MCw0MzAuNCwxNjB6CgkJCSBNMTEyLDI2NGMwLTQuOCwzLjItOCw4LThoMjQwYzQuOCwwLDgsMy4yLDgsOHYxNkgxMTJWMjY0eiBNNDAsMTY2LjRjMC00LDIuNC02LjQsNi40LTYuNGg0YzMuMiwwLDUuNiwyLjQsNS42LDYuNFYyODBINDBWMTY2LjR6CgkJCSBNMjMyLDQzMkgzMnYtNjRoMjAwVjQzMnogTTQ0OCw0MzJIMjQ4di02NGgyMDBWNDMyeiBNNDQ4LDM1MkgzMnYtNTZoNDE2VjM1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjA4LDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzIxNiwzODcuMiwyMTIuOCwzODQsMjA4LDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjcyLDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzI4MCwzODcuMiwyNzYuOCwzODQsMjcyLDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzg0LDE2SDk2Yy00LjgsMC04LDMuMi04LDh2MTYwYzAsNC44LDMuMiw4LDgsOGgyODhjNC44LDAsOC0zLjIsOC04VjI0QzM5MiwxOS4yLDM4OC44LDE2LDM4NCwxNnogTTM3NiwxNzZIMTA0VjMyaDI3MgoJCQlWMTc2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTIsMTQ0aC04Yy00LjgsMC04LDMuMi04LDhzMy4yLDgsOCw4aDhjNC44LDAsOC0zLjIsOC04UzM1Ni44LDE0NCwzNTIsMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTcuNiw1MC40Yy0zLjItMy4yLTgtMy4yLTExLjIsMGwtMjQsMjRjLTMuMiwzLjItMy4yLDgsMCwxMS4yYzMuMiwzLjIsOCwzLjIsMTEuMiwwbDI0LTI0CgkJCUMxNjAuOCw1OC40LDE2MC44LDUzLjYsMTU3LjYsNTAuNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMTk3LjYsNTAuNGMtMy4yLTMuMi04LTMuMi0xMS4yLDBsLTU2LDU2Yy0zLjIsMy4yLTMuMiw4LDAsMTEuMmMzLjIsMy4yLDgsMy4yLDExLjIsMGw1Ni01NgoJCQlDMjAwLjgsNTguNCwyMDAuOCw1My42LDE5Ny42LDUwLjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Jae="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2aC0xNDRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTg0aC0xNzZ2LTI0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0djE2aDE2djE2aC0zMnYtMzJoLTE2djMyaC0zMnYtMTZoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYyNGgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTc2YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoNDY0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTM2OGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMTM2IDE2aDEyOHY5NmgtMTI4em0tMTYgMjI0aC0xNDR2LTMyaDE0NHptLTMwNC0zMmgxNDR2MzJoLTE0NHptMCA0OGgxNDR2MTEyaC0xNDR6bTE2MCAwaDY0djExMmgtNjR6bTgwIDBoNjR2MTEyaC02NHptODAgMTEydi0yNDBoMTI4djI0MHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAxNDRoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDI1NmgxNnYzMmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im04MCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTIgMzIwYzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ0IDMyMGMwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4cy04LTMuNTgyMDMxLTgtOCAzLjU4MjAzMS04IDgtOCA4IDMuNTgyMDMxIDggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggMTUyaDE2MGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGMwLTIuMTIxMDk0LS44NDM3NS00LjE1NjI1LTIuMzQzNzUtNS42NTYyNWwtMzItMzJjLTEuNS0xLjUtMy41MzUxNTYtMi4zNDM3NS01LjY1NjI1LTIuMzQzNzVoLTh2LTcyYzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTY0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djcyaC04Yy0yLjEyMTA5NCAwLTQuMTU2MjUuODQzNzUtNS42NTYyNSAyLjM0Mzc1bC0zMiAzMmMtMS41IDEuNS0yLjM0Mzc1IDMuNTM1MTU2LTIuMzQzNzUgNS42NTYyNXYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em01Ni0xMzZoNDh2NjRoLTQ4em0tNDggMTA3LjMxMjUgMjcuMzEyNS0yNy4zMTI1aDg5LjM3NWwyNy4zMTI1IDI3LjMxMjV2MTIuNjg3NWgtMTQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDM2OGgtOTZjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg5NmM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di02NGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tOCA2NGgtODB2LTQ4aDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjMyIDMxMmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDggMzkyaDE2djMyaC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3MiAzOTJoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyIDIwMGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi0xNTMuMTM2NzE5aC0xNnYxNTMuMTM2NzE5Yy0xNC4wODU5MzggMy42MzY3MTktMjMuOTQ1MzEyIDE2LjMxNjQwNi0yNCAzMC44NjMyODF2OGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em0yNC0zMmM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2aC0zMmMwLTguODM1OTM4IDcuMTY0MDYyLTE2IDE2LTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDEzNmg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi04OS4xMzY3MTloLTE2djg5LjEzNjcxOWMtMTQuMDg1OTM4IDMuNjM2NzE5LTIzLjk0NTMxMiAxNi4zMTY0MDYtMjQgMzAuODYzMjgxdjhjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOHptMjQtMzJjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNmgtMzJjMC04LjgzNTkzOCA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Bae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTAuNDE3IDIzMy4yMjUtNTguNjQ0LTExNy4yNzljLTE1LjkzOS0zMS44NzctNDcuOTc4LTUxLjY4LTgzLjYyLTUxLjY4LTguNTg2IDAtMTYuOTg0IDEuMTg4LTI1LjAzMiAzLjQzNy4xMDUtMS40ODkuMTc4LTIuOTg4LjE3OC00LjUwMyAwLTM0Ljg0OS0yOC4zNTEtNjMuMi02My4yLTYzLjJzLTYzLjIgMjguMzUyLTYzLjIgNjMuMmMwIDMwLjk5MyAyMi40MzIgNTYuODI4IDUxLjkwOSA2Mi4xNjlsLTYxLjM2NiA2MS40N2MtNi44NzUgNi44ODYtMjEuODcxIDI3LjgyLTEwLjMzMyA1NC40Ni0xLjcwNS0uMTkxLTMuNDIxLS4yOTktNS4xNDQtLjI5OS0yMy4wODcgMC00Mi4zMzYgMTYuNjktNDYuMzUxIDM4LjYzNS03Ljc0LTQuMTQ0LTE2LjU3My02LjUwMS0yNS45NDktNi41MDEtMzAuNDE5IDAtNTUuMTY3IDI0Ljc0OC01NS4xNjcgNTUuMTY3IDAgOS4wNjMgMi4yMTEgMTcuNjE1IDYuMSAyNS4xNjdoLTQwLjU5OHYtMzM4LjQ2OGMwLTguMjg0LTYuNzE2LTE1LTE1LTE1cy0xNSA2LjcxNi0xNSAxNXY0ODJjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNXMxNS02LjcxNiAxNS0xNXYtNDkuMjY3aDMwNi41NjNjOC4yODQgMCAxNS02LjcxNiAxNS0xNXYtNjQuMjY3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTM2LjQxMmMzLjI3NC04LjM5NSAzLjIxNC0xNS4yNjMgMy4yMTQtMTguMiAyOC40NjkgMCA0OC4yLTIyLjA5OCA0OC4yLTQ3LjEzMyAwLTI1Ljk4OS0yMS4xNDQtNDcuMTMzLTQ3LjEzMy00Ny4xMzNoLTEyLjMwNGw1NS45MDQtNTYuMDg2IDUzLjczNiAxMDYuNzc3LS4xMDMgMjA1LjMwMWMtLjAwMiAzLjk3OSAxLjU3OCA3Ljc5NiA0LjM5MSAxMC42MTEgMi44MTMgMi44MTQgNi42MyA0LjM5NiAxMC42MDkgNC4zOTZoODAuMzM1YzguMjg0IDAgMTUtNi43MTYgMTUtMTV2LTI1Ny4wNjZjMC0yLjMyOS0uNTQyLTQuNjI1LTEuNTgzLTYuNzA4em0tMjYzLjUxNy0xNzAuMDI1YzAtMTguMzA3IDE0Ljg5NC0zMy4yIDMzLjItMzMuMnMzMy4yIDE0Ljg5NCAzMy4yIDMzLjItMTQuODk0IDMzLjItMzMuMiAzMy4yYy0xOC4zMDcgMC0zMy4yLTE0Ljg5My0zMy4yLTMzLjJ6bS0xMjcuMjMzIDIzOS45MzNjMTMuODc3IDAgMjUuMTY3IDExLjI5IDI1LjE2NyAyNS4xNjdzLTExLjI5IDI1LjE2Ny0yNS4xNjcgMjUuMTY3LTI1LjE2Ny0xMS4yOS0yNS4xNjctMjUuMTY3IDExLjI5LTI1LjE2NyAyNS4xNjctMjUuMTY3em0yMDEuODk2IDgwLjMzNHYzNC4yNjdoLTI5MS41NjN2LTM0LjI2N3ptLTE3LjEzLTExMi40NjdjOS40NDcgMCAxNy4xMzMgNy42ODYgMTcuMTMzIDE3LjEzMyAwIDkuNTgzLTcuODE0IDE3LjEzMy0xNy4xMzMgMTcuMTMzaC0xNi4wNjdjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2MTYuMDY3YzAgOS41ODMtNy44MTQgMTcuMTMzLTE3LjEzMyAxNy4xMzNoLTY0LjI2N2MtOS40NDcgMC0xNy4xMzMtNy42ODYtMTcuMTMzLTE3LjEzM3YtNDguMmMwLTkuNDQ3IDcuNjg2LTE3LjEzMyAxNy4xMzMtMTcuMTMzIDkuMjk3IDAgMTcuMTMzIDcuNTI2IDE3LjEzMyAxNy4xMzN2MTYuMDY3YzAgOC4yODQgNi43MTYgMTUgMTUgMTVzMTUtNi43MTYgMTUtMTV2LTE2LjA2N2MwLTkuNDI5IDcuNjE2LTE3LjEzMyAxNy4xMzMtMTcuMTMzem0xNzcuNTY3IDIxMWgtNTAuMzI2bC4wOTctMTkzLjg1OWMuMDAxLTIuMzQ0LS41NDctNC42NTYtMS42MDEtNi43NWwtNjQuNjg1LTEyOC41MzNjLTIuMTY3LTQuMzA1LTYuMjY5LTcuMzA2LTExLjAyNy04LjA2OC00Ljc2MS0uNzYyLTkuNTk0LjgxLTEyLjk5NSA0LjIyMmwtODYuNDU4IDg2LjczOWMtNy4yNjMgNy4yOTEtMTkuMTE1IDYuODA3LTI2LjMwOC0uMzg2LTcuMzgxLTcuMzgxLTcuNzI4LTE5LjYxMS0uMDIyLTI3LjMyOWw5NS4yNy05NS40MzFjMTEuNzk5LTExLjgyNSAyNy41LTE4LjMzNyA0NC4yMTctMTguMzM3IDI0LjE5OSAwIDQ1Ljk1NSAxMy40NDggNTYuNzc5IDM1LjA5N2w1Ny4wNTkgMTE0LjEwOXoiLz4KICAgIDwvZz4KPC9zdmc+",Fae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTkyLjU0NSwxODUuMDljNTEuMDI5LDAsOTIuNTQ1LTQxLjUxNiw5Mi41NDUtOTIuNTQ1UzE0My41NzQsMCw5Mi41NDUsMFMwLDQxLjUxNiwwLDkyLjU0NSAgICBTNDEuNTE2LDE4NS4wOSw5Mi41NDUsMTg1LjA5eiBNOTIuNTQ1LDIwYzQwLjAwMSwwLDcyLjU0NSwzMi41NDQsNzIuNTQ1LDcyLjU0NXMtMzIuNTQ0LDcyLjU0NS03Mi41NDUsNzIuNTQ1ICAgIFMyMCwxMzIuNTQ2LDIwLDkyLjU0NVM1Mi41NDQsMjAsOTIuNTQ1LDIweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDAuNTAxLDExNC41MjZjMS45NTIsMS45NDUsNC41MDYsMi45MTcsNy4wNiwyLjkxN2MyLjU2NCwwLDUuMTMtMC45OCw3LjA4My0yLjk0ICAgIGMzLjg5OC0zLjkxMiwzLjg4OC0xMC4yNDQtMC4wMjMtMTQuMTQzbC0xMi4wMDgtMTEuOTY4VjQ0YzAtNS41MjItNC40NzgtMTAtMTAtMTBzLTEwLDQuNDc4LTEwLDEwdjQ4LjU0NSAgICBjMCwyLjY1OCwxLjA1OSw1LjIwNywyLjk0LDcuMDgzTDEwMC41MDEsMTE0LjUyNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNTAyLDMzMmgtNjEuNTQ3Yy04LjQ2LTEyLjAzNC0yMS4xNzItMjAuNTU4LTM1LjY3MS0yMy43MjhsLTQzLjk2NC05LjYxMyAgICBjMTcuOTkxLTEyLjEzNCwyOS44NDctMzIuNzAyLDI5Ljg0Ny01NS45ODh2LTI0LjQxN3YtMTEuMjk3di0yLjU0MmMwLTM3LjIxMi0zMC4yNzQtNjcuNDg2LTY3LjQ4Ni02Ny40ODYgICAgcy02Ny40ODYsMzAuMjc0LTY3LjQ4Niw2Ny40ODZ2Mi41NDJ2MTEuMjk3djI0LjQxN2MwLDIzLjI1NiwxMS44MjUsNDMuODAzLDI5Ljc3OCw1NS45NDNsLTQzLjkzNiw5LjYzOSAgICBjLTEuODc3LDAuNDEyLTMuNzIyLDAuOTE3LTUuNTM1LDEuNTAyVjIyN2MwLTUuNTIyLTQuNDc4LTEwLTEwLTEwaC02OGMtNS41MjIsMC0xMCw0LjQ3OC0xMCwxMHM0LjQ3OCwxMCwxMCwxMGg1OHYxNDBoLTY4di01MCAgICBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwcy0zMCwxMy40NTgtMzAsMzB2NTBIMjBWMjM3aDU4YzUuNTIyLDAsMTAtNC40NzgsMTAtMTBzLTQuNDc4LTEwLTEwLTEwSDEwYy01LjUyMiwwLTEwLDQuNDc4LTEwLDEwdjE2MCAgICBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg3OHYxOWgtMWMtMTcuMDk0LDAtMzEsMTMuOTA2LTMxLDMxdjVIMTBjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg0OTIgICAgYzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTQwdi00MHYtNDB2LTQwQzUxMiwzMzYuNDc4LDUwNy41MjIsMzMyLDUwMiwzMzJ6IE00NDEuMTc5LDQ1MkgzODR2LTIwaDEwOHYyMEg0NDEuMTc5eiBNNDkyLDQxMkgzODQgICAgdi0yMGgxMDhWNDEyeiBNNDkyLDM3MkgzODR2LTIwaDUwLjg3NGMwLjAzLDAsMC4wNiwwLjAwNiwwLjA4OSwwLjAwNmMwLjAzMSwwLDAuMDYzLTAuMDA2LDAuMDk0LTAuMDA2SDQ5MlYzNzJ6IE0yNzUuNjkyLDIwNC40MTYgICAgYzAtMjYuMTg0LDIxLjMwMy00Ny40ODYsNDcuNDg2LTQ3LjQ4NmMyNC45MzMsMCw0NS40MzksMTkuMzE0LDQ3LjM0Miw0My43NjdsLTIzLjI0Ni0xMy42NTcgICAgYy00LjIxMS0yLjQ3NS05LjU5My0xLjU0NC0xMi43MywyLjE5OWMtMTAuMTI2LDEyLjA4NS0yNC45NzcsMTkuMDE3LTQwLjc0NCwxOS4wMTdoLTE4LjEwN3YtMS4yOTdWMjA0LjQxNnogTTI3NS42OTIsMjI4LjI1NSAgICBIMjkzLjhjMTguODI1LDAsMzYuNy03LjE3OSw1MC4yMDUtMTkuOTRsMjYuNjYsMTUuNjYzdjE4LjY5NGMwLDI2LjE4NC0yMS4zMDMsNDcuNDg2LTQ3LjQ4Niw0Ny40ODZzLTQ3LjQ4Ni0yMS4zMDMtNDcuNDg2LTQ3LjQ4NiAgICBWMjI4LjI1NXogTTMzOC44NDQsMzA4LjMwM2wtMTUuODE1LDQyLjI5NGwtMTUuODQ0LTQyLjM3YzUuMTMsMS4yNTIsMTAuNDgzLDEuOTMxLDE1Ljk5MywxLjkzMSAgICBDMzI4LjU3MiwzMTAuMTU4LDMzMy44MTMsMzA5LjUwNCwzMzguODQ0LDMwOC4zMDN6IE0yMjYsMzk3YzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTU1LjYyM2MzLjA4NS0xLjYyNiw2LjM3NC0yLjgzMiw5LjgyLTMuNTg4ICAgIGw0My43NC05LjU5NmwyNC4xMDMsNjQuNDU3YzEuNDYxLDMuOTA3LDUuMTk0LDYuNDk3LDkuMzY2LDYuNDk3czcuOTA1LTIuNTksOS4zNjYtNi40OThsMjQuMTA0LTY0LjQ2MWw0NC4wMTEsOS42MjMgICAgYzMuODYzLDAuODQ0LDcuNTI5LDIuMjc0LDEwLjkwMiw0LjE4OEgzNzRjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDB2NDB2MzBIMjE1LjE3OXYtNTVIMjI2eiBNMTk1LjE3OSwzOTd2NTVIMTgwdi01ICAgIGMwLTE3LjA5NC0xMy45MDYtMzEtMzEtMzFoLTF2LTE5SDE5NS4xNzl6IE0xMDgsMzI3YzAtNS41MTQsNC40ODYtMTAsMTAtMTBzMTAsNC40ODYsMTAsMTB2ODloLTIwVjMyN3ogTTc2LDQ0NyAgICBjMC02LjA2NSw0LjkzNS0xMSwxMS0xMWgxMWg0MGgxMWM2LjA2NSwwLDExLDQuOTM1LDExLDExdjVINzZWNDQ3eiBNNDkyLDQ5MkgyMHYtMjBoNDcyVjQ5MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzLDIxOS45M2MtMS44NiwxLjg2LTIuOTMsNC40NC0yLjkzLDcuMDdzMS4wNjksNS4yMSwyLjkzLDcuMDY5YzEuODYsMS44Niw0LjQ0LDIuOTMxLDcuMDcsMi45MzEgICAgczUuMjEtMS4wNyw3LjA2OS0yLjkzMUMxMjYuOTMsMjMyLjIxLDEyOCwyMjkuNjMsMTI4LDIyN3MtMS4wNy01LjIxLTIuOTMxLTcuMDdjLTEuODU5LTEuODYtNC40MzktMi45My03LjA2OS0yLjkzICAgIFMxMTIuNzksMjE4LjA2OSwxMTAuOTMsMjE5LjkzeiIvPgogICAgPC9nPgo8L3N2Zz4K",Gae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTUsMzUuOTM1YzQuNDkzLS41NTUsOC00LjgsOC05LjkzNSwwLTQuODg1LTMuNTM1LTE5LTktMTlzLTksMTQuMTE1LTksMTljMCw1LjEzOCwzLjUwNyw5LjM4LDgsOS45MzVWNDJINDkuOTQ5YTkuOTc4LDkuOTc4LDAsMCwwLTE0LjQ0MS03LjkyMmwtMS42LTIuNTEzTDMyLjM4OCwyN0gzNi41YTEuNSwxLjUsMCwwLDEsMCwzSDM2djJoLjVhMy41LDMuNSwwLDAsMCwwLTdIMzFhMSwxLDAsMCwwLS45NDgsMS4zMTZMMzEuNjEzLDMxSDIwVjI5aDNhMSwxLDAsMCwwLDEtMSw1LDUsMCwwLDAtMTAsMCwxLDEsMCwwLDAsMSwxaDN2Mi42NzVsLTEuOTY0LDIuN2E5Ljk5MSw5Ljk5MSwwLDEsMCw0LjUxLDExLjYwNiwzLjk4NSwzLjk4NSwwLDEsMCw2LjQyNS00LjYzNGw1LjUyMS04LjI4MywxLjMyOSwyLjA4OUE5Ljk5NSw5Ljk5NSwwLDEsMCw0OS45NDksNDRINjNWNDJINTVaTTQ3LDI2YzAtNS4wNjcsMy42NjEtMTcsNy0xN3M3LDExLjkzMyw3LDE3YzAsNC4wMjItMi42MTQsNy4zNTEtNiw3LjkwOVYxOC41MzVsMi41NTUtMS43LTEuMTEtMS42NjQtMywyQTEsMSwwLDAsMCw1MywxOHY3bC0yLjQtMS44LTEuMiwxLjZMNTMsMjcuNXY2LjQwOUM0OS42MTQsMzMuMzUxLDQ3LDMwLjAyMiw0NywyNlpNMTksMjVhMy4wMDYsMy4wMDYsMCwwLDEsMi44MjksMkgxNi4xNzFBMy4wMDYsMy4wMDYsMCwwLDEsMTksMjVabTUsMTVhMy44MzYsMy44MzYsMCwwLDAtLjU2LjA1N0wyMC41LDMzaDkuNjMybC00LjgyNSw3LjIzN0EzLjk2OCwzLjk2OCwwLDAsMCwyNCw0MFpNMTEsNTFhOCw4LDAsMSwxLDMuODU3LTE1bC0zLjAxMSw0LjE0QTIuOTYsMi45NiwwLDAsMCwxMSw0MGEzLDMsMCwxLDAsMi43MzgsNC4yMTRsNS4xLjM5MkE4LjAxNCw4LjAxNCwwLDAsMSwxMSw1MVptNy45OC04LjM4OS01LjEtLjM5MmEzLjAwNSwzLjAwNSwwLDAsMC0uNDE0LS45MTZsMy00LjEyNUE3Ljk2OSw3Ljk2OSwwLDAsMSwxOC45OCw0Mi42MTFaTTEyLDQzYTEsMSwwLDEsMS0xLTFBMSwxLDAsMCwxLDEyLDQzWm04Ljg3OS0xLjQ3MmE5Ljk2OCw5Ljk2OCwwLDAsMC0zLjIyOC01Ljk3NGwxLjExMS0xLjUyNywyLjgzMiw2LjhBNC4wMzIsNC4wMzIsMCwwLDAsMjAuODc5LDQxLjUyOFpNMjQsNDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjQsNDZabTE2LDVhOCw4LDAsMCwxLTUuMS0xNC4xNTZsMi43NDgsNC4zMTlBMi45NjYsMi45NjYsMCwwLDAsMzcsNDNhMywzLDAsMSwwLDMtMywyLjk2MywyLjk2MywwLDAsMC0uNjcxLjA4MmwtMi43NDEtNC4zMDdBOCw4LDAsMSwxLDQwLDUxWm0wLTlhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsNDAsNDJaIi8+CiAgICAgICAgPHBhdGggZD0iTTcsMThhNCw0LDAsMCwwLDIuNzg4LTEuMTM5LDUuNjMzLDUuNjMzLDAsMCwwLDMuOTYxLS41NDVBMy45NTQsMy45NTQsMCwwLDAsMTcsMThhNCw0LDAsMSwwLS4wODMtOCw2LDYsMCwwLDAtMTEuOS41MzhBMy45OTIsMy45OTIsMCwwLDAsNywxOFptLS42NTMtNS44NzdhMSwxLDAsMCwwLC42Ny0uOTc3QS42LjYsMCwwLDAsNywxMWE0LDQsMCwwLDEsOC0uMDQxYzAsLjAzMy0uMDE4LjE1Mi0uMDIuMTg1YTEsMSwwLDAsMCwxLjMzOS45ODZBMS45NywxLjk3LDAsMCwxLDE3LDEyYTIsMiwwLDEsMS0xLjksMi41NzMsMSwxLDAsMCwwLTEuNTg5LS40ODcsMy44LDMuOCwwLDAsMS0zLjc1MS42OTMsMSwxLDAsMCwwLTEuMTI5LjM3MiwxLjk5NCwxLjk5NCwwLDEsMS0yLjI4Mi0zLjAyOFoiLz4KICAgICAgICA8cmVjdCB4PSIxIiB5PSI1NSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Hae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xNjguOTkyIDI3Ny41OTFjMC0yNi41NTEtMjEuNjAxLTQ4LjE1MS00OC4xNTEtNDguMTUxcy00OC4xNTEgMjEuNjAxLTQ4LjE1MSA0OC4xNTEgMjEuNjAxIDQ4LjE1IDQ4LjE1MSA0OC4xNSA0OC4xNTEtMjEuNiA0OC4xNTEtNDguMTV6bS04MS4zMDMgMGMwLTE4LjI3OSAxNC44NzItMzMuMTUxIDMzLjE1MS0zMy4xNTFzMzMuMTUxIDE0Ljg3MiAzMy4xNTEgMzMuMTUxLTE0Ljg3MiAzMy4xNS0zMy4xNTEgMzMuMTUtMzMuMTUxLTE0Ljg3MS0zMy4xNTEtMzMuMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3OS4yNzIgNDYyaC0zNC4wNjJsLTM5LjE1OC0zNi42NjdjLTMuMDIzLTIuODMxLTcuNzctMi42NzUtMTAuNjAxLjM0OXMtMi42NzUgNy43Ny4zNDkgMTAuNjAxbDQxLjMyMSAzOC42OTJjMS4zOSAxLjMwMiAzLjIyMiAyLjAyNSA1LjEyNiAyLjAyNWgzNy4wMjRjOS43NzUgMCAxNy43MjggNy45NTMgMTcuNzI4IDE3LjcyOXYyLjI3MWgtNjAuODQ0Yy0yLjE0OCAwLTQuMjYxLS43MDMtNS45ODEtMS45ODZsLTE4OC40OTItMTc4LjkxNHYtMjQuMTMybDEzMi4yMDcgMTIzLjc5NmMzLjAyMyAyLjgzMSA3Ljc3IDIuNjc1IDEwLjYwMS0uMzQ5czIuNjc1LTcuNzctLjM0OS0xMC42MDFsLTE0Mi40NTktMTMzLjM5NnYtMi40NThjMC04LjI4NC02Ljc0LTE1LjAyNC0xNS4wMjUtMTUuMDI0aC0xMi41NDh2LTQyLjc4NmgxMS40MzhjNi41MzYgMCAxMi4zOC0zLjkwMSAxNC44ODYtOS45MzggMi41MDctNi4wMzcgMS4xNDUtMTIuOTMtMy40NzEtMTcuNTZsLTEwNC43MDYtMTA1LjAzNmMtMS4xNjgtMS4xNzItMi40ODctMi4xMzgtMy45MS0yLjg4OXYtMTAuODY5aDUwLjE0OGM4Ljk1OSAwIDE2LjI0OC03LjI4OSAxNi4yNDgtMTYuMjQ4di0yNS4yMTNjMC04Ljk1OS03LjI4OS0xNi4yNDgtMTYuMjQ4LTE2LjI0OGgtNTAuMTY2Yy0uMTg0LTMuOTc4LTMuNDU4LTcuMTQ5LTcuNDgyLTcuMTQ5LTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjV2NjguMjIzYy0xLjQyNy43NTEtMi43NDkgMS43MTktMy45MiAyLjg5NGwtNDAuMDE1IDQwLjE0Yy0yLjkyNSAyLjkzNC0yLjkxNyA3LjY4Mi4wMTcgMTAuNjA2IDIuOTMzIDIuOTIzIDcuNjgxIDIuOTE3IDEwLjYwNi0uMDE3bDQwLjAxNi00MC4xNDFjLjI3MS0uMjcxLjU3OS0uMzI4Ljc5MS0uMzI4LjIxMSAwIC41MjEuMDU3Ljc5Mi4zMjlsMTA0LjcwNSAxMDUuMDM1Yy4xNTcuMTU4LjUyNy41MjkuMjQgMS4yMTktLjI4Ni42ODktLjgwOS42ODktMS4wMzIuNjg5aC0yMDkuNDFjLS4yMjQgMC0uNzQ3IDAtMS4wMzMtLjY4OXMuMDg0LTEuMDYxLjI0MS0xLjIxOWw0My41MjEtNDMuNjU4YzIuOTI1LTIuOTM0IDIuOTE3LTcuNjgzLS4wMTctMTAuNjA2LTIuOTM0LTIuOTI1LTcuNjgzLTIuOTE4LTEwLjYwNi4wMTdsLTQzLjUyMSA0My42NTdjLTQuNjE1IDQuNjMtNS45NzggMTEuNTIyLTMuNDcyIDE3LjU2MSAyLjUwNyA2LjAzNyA4LjM1IDkuOTM4IDE0Ljg4NyA5LjkzOGgxMS40Mzh2NjkuNDQ0YzAgNC4xNDMgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU3IDcuNS03LjV2LTY5LjQ0NGgxNTYuNTM1djEzMi44ODJoLTE1Ni41MzZ2LTMzLjQ1MmMwLTQuMTQzLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTctNy41IDcuNXYxODYuNDJoLTIwLjA3M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWg0OTdjNC4xNDMgMCA3LjUtMy4zNTcgNy41LTcuNXYtOS43NzFjMC0xOC4wNDctMTQuNjgyLTMyLjcyOS0zMi43MjgtMzIuNzI5em0tMjk5LjUzLTQzOC42MDN2MjUuMjEzYzAgLjY4OC0uNTYgMS4yNDgtMS4yNDggMS4yNDhoLTUwLjE0OHYtMjcuNzA5aDUwLjE0OGMuNjg5IDAgMS4yNDguNTYgMS4yNDggMS4yNDh6bTE2Ny4xOTYgNDEzLjI5MSA2My41NDEgNjAuMzEyaC02My41NDF6bS0xNSA2MC4zMTJoLTYwLjgxMXYtMTMyLjI3bDYwLjgxMSA1Ny43MnptLTc1LjgxLTE0Ni41MDh2MTQ2LjUwOGgtNDIuMDJ2LTE1Ni45NDJoMTIuNTQ4YzQuOTM5IDAgOS4zMTYtMi40MDYgMTIuMDU2LTYuMDk2em0tMjkuNDQ2LTgxLjUzMi0uMDEyIDU2LjA5N3MtLjAwNC4wMDEtLjAxNC4wMDFoLTEyLjU0OHYtNTYuMTEzem0tMjcuNTc0IDIyOC4wNGgtMzcuMTV2LTEzNy45NjloMzcuMTV6bS0xMDQuMzg0LTYxLjQ4NGg1Mi4yMzR2MjEuNDM2aC01Mi4yMzR6bTUyLjIzNC0xNWgtNTIuMjM0di0yMS40MzZoNTIuMjM0em0tNTIuMjM0IDUxLjQzNWg1Mi4yMzR2MjUuMDQ5aC01Mi4yMzR6bTUyLjIzNC0xMTIuOTJ2MjUuMDQ5aC01Mi4yMzR2LTI1LjA0OXptLTEwNC4zODUgMGgzNy4xNXYxMzcuOTY5aC0zNy4xNXoiLz4KICAgIDwvZz4KPC9zdmc+",Vae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Zae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjE2LDI1MkgxMTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzIyMS41MSwyNTIsMjE2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1MmMtNS41MSwwLTEwLDQuNDktMTAsMTBzNC40OSwxMCwxMCwxMHMxMC00LjQ5LDEwLTEwUzI2MS41MSwyNTIsMjU2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzk2LDI1MkgyOTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzQwMS41MSwyNTIsMzk2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjg2LDEwN2gtNjBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NjBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg2MGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi02MAoJCQlDMjk2LDExMS40NzcsMjkxLjUyMywxMDcsMjg2LDEwN3ogTTI3NiwxNjdoLTQwdi00MGg0MFYxNjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMiw0OTJoLTEzVjIzM2MwLTYyLjIzNy0yNC4yMzYtMTIwLjc0OC02OC4yNDQtMTY0Ljc1NkMzNzYuNzQ4LDI0LjIzNiwzMTguMjM3LDAsMjU2LDBTMTM1LjI1MiwyNC4yMzYsOTEuMjQ0LDY4LjI0NAoJCQlTMjMsMTcwLjc2MywyMywyMzN2MjU5SDEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwczQuNDc3LDEwLDEwLDEwaDQ5MmM1LjUyMywwLDEwLTQuNDc3LDEwLTEwUzUwNy41MjMsNDkyLDUwMiw0OTJ6IE0zODYsNDkySDEyNgoJCQl2LTIwaDI2MFY0OTJ6IE0zODYsNDUySDEyNnYtMjBoMjYwVjQ1MnogTTM4Niw0MTJIMTI2di0yMGgyNjBWNDEyeiBNMzg2LDM3MkgxMjZ2LTIwaDI2MFYzNzJ6IE0zODYsMzMySDEyNnYtMjBoMjYwVjMzMnoKCQkJIE00MjksNDkyaC0yM1YzMDJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMEgxMTZjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTkwSDgzVjIzM2MwLTk1LjY2OCw3Ny4zODMtMTczLjUsMTcyLjUtMTczLjUKCQkJQzM1MS4xNjgsNTkuNSw0MjksMTM3LjMzMiw0MjksMjMzVjQ5MnogTTQ2OSw0OTJoLTIwVjIzM2MwLTEwNi42OTYtODYuODA0LTE5My41LTE5My41LTE5My41CgkJCWMtNTEuNjM5LDAtMTAwLjA2MywyMC4xMzctMTM2LjM1Miw1Ni43MDJDODIuOTQsMTMyLjY4NCw2MywxODEuMjY3LDYzLDIzM3YyNTlINDNWMjMzYzAtMTE3LjQ0OSw5NS41NTEtMjEzLDIxMy0yMTMKCQkJczIxMyw5NS41NTEsMjEzLDIxM1Y0OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Xae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MDguNTQxIDIxOC4zODQtMTYyLjUwNy0yMDMuMTM0Yy03Ljc1My05LjY5Mi0xOS4zMTgtMTUuMjUtMzEuNzI5LTE1LjI1aC04My4xNTVjLTguNzAzIDAtMTUuNzgzIDcuMDgtMTUuNzgzIDE1Ljc4M3YxNi41NjdjMCA4LjcwMyA3LjA4IDE1Ljc4MyAxNS43ODMgMTUuNzgzaDMzLjkxN3YxMTcuNTMzaC0zMC42MzJsLTEyMC4zMzQtMTUwLjQxNmMtNy43NTMtOS42OTEtMTkuMzE4LTE1LjI1LTMxLjcyOS0xNS4yNWgtNjYuNTg5Yy04LjcwMyAwLTE1Ljc4MyA3LjA4LTE1Ljc4MyAxNS43ODN2MTYuNTY3YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2gxNy4zNXYxMTcuNTMzaC0xNy4zNWMtOC43MDMuMDAxLTE1Ljc4MyA3LjA4MS0xNS43ODMgMTUuNzg0djMwNi40ODNjMCAxMy4yNzEgMTAuNzk2IDI0LjA2NyAyNC4wNjcgMjQuMDY3aDQ3Mi4xNWM4LjcwMyAwIDE1Ljc4My03LjA4IDE1Ljc4My0xNS43ODN2LTc0LjU1LTE0My4yODktNTAuMTM0YzAtMy41NzEtMS4yMjgtNy4wNzMtMy40NTktOS44NnptLTYyLjAyNCAxOTUuNzgzYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtNzQuNTUtMTIxLjkwOGwxOC4xMzQgMjIuNjY3djE3NC41NzR6bS0yMzEuOTM0IDBjLS40MzIgMC0uNzg0LS4zNTItLjc4NC0uNzgzdi02Ny4wNWgxOC4xMzN2NjcuODMzem0tNjYuMjY2LTgyLjgzNGMtLjQzMiAwLS43ODQtLjM1Mi0uNzg0LS43ODR2LTY3LjA0OWgxOC4xMzN2NjcuODMzem0tNjYuMjY3LTgyLjgzM2MtLjQzMiAwLS43ODMtLjM1Mi0uNzgzLS43ODN2LTY3LjA1aDE4LjEzM3Y2Ny44MzN6bTgzLjYxNi05MS43NDF2OC45MDhoLTE4LjEzM3YtMzEuNTc0em02Ni4yNjcgODIuODMzdjguOTA4aC0xOC4xMzN2LTMxLjU3NHptODEuMjY3IDguMTI1di0xOTYuNDI4Yy4wNzIuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zODl2MTc0LjU3NWgtMTcuMzVjLS40MzEgMC0uNzgzLS4zNTItLjc4My0uNzgzem0xMTcuNTMzIDUwLjQ4M2gtMTguMTMzdi0xMjIuNjkxbDE4LjEzNCAyMi42Njd2MTAwLjAyNHptLTE4LjEzMyAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bS0xNSAxOC4xMzNoLTE3LjM1Yy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4NHYtNzQuNTQ5LTEyMS45MDhsMTguMTMzIDIyLjY2NnptLTMzLjEzMy0xMTUuOTY2aC0xOC4xMzR2LTEyMi42OTFsMTguMTM0IDIyLjY2N3ptLTE4LjEzNCAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzN2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzg0aC04NC40NHYtNTIuOTU1LTE0Ljg3OXptLTk5LjQwMSAxNy41MDl2MTAwLjAyNGgtMTguMTMzdi0xMjIuNjkxbDUuMDg2IDYuMzU3em0tMTUwLjY2Ni0xODguMzMzIDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzMgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptMzMuMTMzLTUuMTU4IDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzQgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptLTExNC40LTk3LjgzM2gtMTguMTMzdi0xMTQuMzc4Yy4wNzMuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zOXptMTUgNjQuN2gxOC4xMzN2MTguMTMzaC0xOC4xMzN6bTY2LjI2NiA4Mi44MzNoMTguMTM0djE4LjEzM2gtMTguMTMzdi0xOC4xMzN6bTY2LjI2NyA4Mi44MzNoMTguMTMzdjE4LjEzM2gtMTguMTMzem0zMy4xMzMtNDkuN2gxNTAuNjY3djY3LjA1YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMTUwLjcwN3ptMjA3LjMxNi03Ny4zNDYgOS42MTggMTIuMDIydjEwMC4wMjRoLTE4LjEzM3YtMTIyLjY5em0tOC41MTUgMTI3LjA0NmgxOC4xMzN2MTguMTMzaC0xOC4xMzN6bS0yNDguNS0zNjMuNjgzdi0xNi41NjdjMC0uNDMyLjM1Mi0uNzgzLjc4My0uNzgzaDgzLjE1NWM3LjgzIDAgMTUuMTI1IDMuNTA2IDIwLjAxNyA5LjYybDE2Mi41MDcgMjAzLjEzNGMwIC4wMDEuMDAxLjAwMS4wMDIuMDAyLjEwOS4xMzcuMTcuMzExLjE3LjQ4OHYyOC43NTNsLTE3MS44NjYtMjE0LjgzMWMtNC41OTMtNS43NC0xMS40NDItOS4wMzItMTguNzkzLTkuMDMyaC0uNjQyLTc0LjU1Yy0uNDMyLS4wMDEtLjc4My0uMzUyLS43ODMtLjc4NHptNjcuODMzIDE1Ljc4M3Y4NC40aC0xOC4xMzR2LTg0LjR6bS0xOC4xMzQgOTkuNGgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzR2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzgzaC0xOC4xNzR2LTIwLjI1NmMwLTMuNTctMS4yMjgtNy4wNzItMy40NTgtOS44NTkgMC0uMDAxIDAtLjAwMSAwLS4wMDFsLTMwLjE3NC0zNy43MThoNTEuNzY2em0tMjgzLjItMTQ4LjMxN3YtMTYuNTY3YzAtLjQzMS4zNTItLjc4My43ODMtLjc4M2g2Ni41ODhjNy44MyAwIDE1LjEyNSAzLjUwNiAyMC4wMTYgOS42MmwxNjIuNTA4IDIwMy4xMzRjLjExLjEzOC4xNzEuMzEzLjE3MS40OXYyOC43NTRsLTE3MS44NjUtMjE0LjgzMmMtNC41OTItNS43NC0xMS40NDItOS4wMzMtMTguNzkzLTkuMDMzaC0uNjQyLTU3Ljk4M2MtLjQzMSAwLS43ODMtLjM1MS0uNzgzLS43ODN6bTUxLjI2NyAxNS43ODN2ODQuNGgtMTguMTM0di04NC40em0tMTguMTM0IDk5LjRoMTguMTMzdjE4LjEzM2gtMTguMTMzem0tMjQuMDY2IDM0OS40NjdjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2N3YtMzA2LjQ4M2MwLS40MzIuMzUyLS43ODQuNzgzLS43ODRoNTAuNDgzdjY3LjA1YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2g1MC40ODN2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODQgMTUuNzg0IDE1Ljc4NGg1MC40ODR2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODMgMTUuNzg0IDE1Ljc4M2g1MC40ODN2NjcuMDVjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yNDAuMjE3em00NzIuOTMzLS43ODNjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yMTYuMTljLjAxMy0uMjYxLjA0LS41MTkuMDQtLjc4M3YtNjcuMDVoMjE2LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+",Kae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk4LDMwLjU5OGgtMTUyYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjQwLjAwM2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDIwLjAwMXY3NC43OTRoLTE5MAoJCQkJYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjQwLjAwMmMwLDUuNTIzLDQuNDc4LDEwLDEwLDEwSDIwMHY3NC43OTZIMTBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NDAuMDAxYzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQkJCWgxMy45OTZWNDcxLjRjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGgxODEuNzZjMi4yNTYsMCw0LjQ0NS0wLjc2Myw2LjIxMy0yLjE2NWwyODYuMjQzLTIyNi45NzIKCQkJCWMyLjM5Mi0xLjg5NiwzLjc4Ni00Ljc4MiwzLjc4Ni03LjgzNVY4MC42MDFWNDAuNTk4QzUxMS45OTgsMzUuMDc1LDUwNy41MjIsMzAuNTk4LDUwMS45OTgsMzAuNTk4eiBNMTg5Ljk5OSwyMDUuMzk3di0yMC4wMDIKCQkJCWgxODB2MjAuMDAySDE4OS45OTl6IE0yMCwzNDAuMTk0di0yMC4wMDFoMTgwdjIwLjAwMUgyMHogTTQ5MS45OTgsMTA5Ljg3OWgtNDEuMDM1Yy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJCQljMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg0MS4wMzV2MTA5LjcxNUwyMTIuMjcxLDQ2MS40SDQzLjk5NnYtNjIuMjUzaDQxLjAzNmM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMEg0My45OTYKCQkJCXYtMTguOTUzSDIxMGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi00MC4wMDF2LTg0Ljc5NmgxNTkuOTk5YzUuNTIzLDAsMTAtNC40NzcsMTAtMTB2LTQwLjAwMlY5MC42MDFoMTAxLjk5OVYxMDkuODc5egoJCQkJIE00OTEuOTk4LDcwLjYwMWgtMTMyVjUwLjU5OGgxMzJWNzAuNjAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTQsMzc5LjE0NGgtMC4yMzZjLTUuNTI0LDAtMTAsNC40NzctMTAsMTBzNC40NzYsMTAsMTAsMTBIMTE0YzUuNTIyLDAsMTAtNC40NzcsMTAtMTBTMTE5LjUyMiwzNzkuMTQ0LDExNCwzNzkuMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjEuOTk4LDEyOS44OGgwLjIzNWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMGgtMC4yMzVjLTUuNTIzLDAtMTAsNC40NzctMTAsMTAKCQkJCVM0MTYuNDc1LDEyOS44OCw0MjEuOTk4LDEyOS44OHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",qae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNS41MTggNjRoMi45ODZjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDIxaDQ0Ljk5MnYyLjAyMWMwIC41NTMuNDQ3IDEgMSAxaDNjLjU1MyAwIDEtLjQ0NyAxLTF2LTYwLjVjMC0xLjM3OC0xLjEyMS0yLjUtMi41LTIuNXMtMi41IDEuMTIyLTIuNSAyLjV2MTUuNTA0aC0yLjk5OHYtMTMuOTk2YzAtLjU1Mi0uNDQ3LTEtMS0xaC0xNS45OTZjLS41NTMgMC0xIC40NDgtMSAxdjEzLjk5NWgtMy4wMDJ2LTEzLjk5NWMwLS41NTItLjQ0Ny0xLTEtMWgtMTUuOTk2Yy0uNTUzIDAtMSAuNDQ4LTEgMXYxMy45OTVoLTN2LTE1LjUwM2MwLTEuMzc4LTEuMTIxLTIuNS0yLjUtMi41cy0yLjUgMS4xMjItMi41IDIuNWwuMDE0IDYwLjVjMCAuNTUzLjQ0NyAxIDEgMXptNTAuOTc4LTYxLjVjMC0uMjc2LjIyNS0uNS41LS41cy41LjIyNC41LjV2NTkuNWgtMXptLTE0Ljk5OCAyLjUwOGgyLjAwMnYxLjAwOGgtMi4wMDJ6bS01Ljk5NiAwaDMuOTk2djIuMDA4YzAgLjU1Mi40NDcgMSAxIDFoNC4wMDJjLjU1MyAwIDEtLjQ0OCAxLTF2LTIuMDA4aDMuOTk4djEyLjk5NWgtMTMuOTk2em0tMTUuMDAyIDBoMnYxLjAwOGgtMnptLTUuOTk2IDBoMy45OTZ2Mi4wMDhjMCAuNTUyLjQ0NyAxIDEgMWg0Yy41NTMgMCAxLS40NDggMS0xdi0yLjAwOGg0djEyLjk5NWgtMTMuOTk2em0tNSAxNC45OTVoNCAxNS45OTYgNS4wMDIgMTUuOTk2IDMuOTk4djFoLTQ0Ljk5MnptMCAzaDQ0Ljk5MnYxMy45NzFoLTIuOTk2di0xMC45OWMwLS41NTItLjQ0Ny0xLTEtMWgtMzdjLS41NTMgMC0xIC40NDgtMSAxdjEwLjk5MWgtMi45OTZ6bTE5Ljk5NiA2Ljk4MWg1Yy41NTMgMCAxLS40NDggMS0xdi0yaDE0djkuOTkxaC0zNXYtOS45OTFoMTR2MmMwIC41NTIuNDQ3IDEgMSAxem0xLTJ2LTFoM3Yxem0tMjAuOTk2IDEwLjk5MWgzLjk5NiAzNyAzLjk5NnYxLjAwMmgtNDQuOTkyem0wIDMuMDAyaDQ0Ljk5MnYxNGgtMi45OTR2LTExLjk5YzAtLjU1My0uNDQ3LTEtMS0xaC0xNC4wMDJjLS41NTMgMC0xIC40NDctMSAxdjExLjk5aC0yLjk5NHYtOC45ODhjMC0uNTUzLS40NDctMS0xLTFoLTYuOTk0Yy0uMDA0IDAtLjAwNi0uMDAyLS4wMS0uMDAycy0uMDA2LjAwMi0uMDEuMDAyaC0zLjk4MmMtLjAwNCAwLS4wMDYtLjAwMi0uMDEtLjAwMnMtLjAwNi4wMDItLjAxLjAwMmgtNi45ODZjLS41NTMgMC0xIC40NDctMSAxdjguOTg4aC0zem0zMS45OTYgNi4wMTdoNC4wMDJjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDA4aDN2MTAuOTloLTEyLjAwMnYtMTAuOTloM3YyLjAwOGMwIC41NTMuNDQ3IDEgMSAxem0xLTJ2LTEuMDA4aDIuMDAydjEuMDA4em0tMjIgNWg0LjAwMmMuNTUzIDAgMS0uNDQ3IDEtMXYtMi4wMDZoNS4wMDR2Ny45ODhoLTE2LjAwMnYtNy45ODhoNC45OTZ2Mi4wMDZjMCAuNTUzLjQ0NyAxIDEgMXptMS0ydi0xLjAwNmgyLjAwMnYxLjAwNnptLTExLjk5NiA4Ljk4M2g0IDE4LjAwMiA0Ljk5NCAxNC4wMDIgMy45OTR2MS4wMDJoLTQ0Ljk5MnptLTIuNS01NS45NzdjLjI3NSAwIC41LjIyNC41LjV2NTkuNWgtLjk4NmwtLjAxNC01OS41YzAtLjI3Ni4yMjUtLjUuNS0uNXoiLz4KICAgIDwvZz4KPC9zdmc+",ece="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMgM3YtMmgtMzFjLS41NTMgMC0xIC40NDctMSAxdjhjMCAuNTUzLjQ0NyAxIDEgMWgxdjUwaC0zMnYyaDMzIDQgOCA0IDEzdi0yaC0xMnYtNWgxMnYtMmgtMTMtNC0zdi0yaDIwdi0yaC0yMWMtLjU1MyAwLTEgLjQ0Ny0xIDF2NGMwIC41NTMuNDQ3IDEgMSAxaDN2NWgtNnYtNTBoMjR2LTJoLTI1LTQtMXYtNnptLTE2IDUzaDJ2NWgtMnptLTEwLTQ1djUwaC0ydi01MHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjEgMzJjMC0yLjExOC0uNTAxLTQuMjM4LTEuNDQ3LTYuMTMxbC0uNjU4LTEuMzE2Yy0uMzQtLjY3OC0xLjQ0OS0uNjc4LTEuNzg5IDBsLS42NTggMS4zMTZjLS45NDcgMS44OTMtMS40NDggNC4wMTMtMS40NDggNi4xMzEgMCAuMjQxLjAyOS40ODEuMDQyLjcyMi0uNjQ2LS40ODMtMS4zODMtLjgzNy0yLjE3Mi0xLjAzNGwtMi42MjgtLjY1N2MtLjMzOC0uMDg3LS43MDEuMDE1LS45NDkuMjYzcy0uMzQ5LjYwOC0uMjYzLjk0OWwuNjU3IDIuNjI5Yy4yNjkgMS4wNzMuODIzIDIuMDU1IDEuNjA1IDIuODM2Ljc4MS43ODIgMS43NjMgMS4zMzcgMi44MzYgMS42MDVoLjAwMWwuNjcyLjE2OC0xLjI1LjYyNS44OTUgMS43ODkgMi41NTQtMS4yNzd2Mi4zODJoLTdjLS41NTMgMC0xIC40NDctMSAxdjRjMCAuNTUzLjQ0NyAxIDEgMWgxLjA5NWwuOTEgOS4xYy4wNTEuNTEuNDgxLjkuOTk1LjloMTBjLjUxNCAwIC45NDQtLjM5Ljk5NS0uOWwuOTEtOS4xaDEuMDk1Yy41NTMgMCAxLS40NDcgMS0xdi00YzAtLjU1My0uNDQ3LTEtMS0xaC03di0yLjM4MmwyLjU1MyAxLjI3Ni44OTUtMS43ODktMS4yNS0uNjI1LjY3Mi0uMTY4aC4wMDFjMS4wNzMtLjI2OSAyLjA1NS0uODIzIDIuODM2LTEuNjA1Ljc4Mi0uNzgxIDEuMzM3LTEuNzYzIDEuNjA1LTIuODM3bC42NTctMi42MjhjLjA4Ni0uMzQxLS4wMTUtLjcwMS0uMjYzLS45NDlzLS42MDktLjM1LS45NDktLjI2M2wtMi42MjkuNjU3Yy0uNzg4LjE5Ny0xLjUyNS41NTEtMi4xNzEgMS4wMzQuMDE0LS4yNC4wNDMtLjQ4LjA0My0uNzIxem0xLjA5NSAyNWgtOC4xODlsLS44LThoOS43OXptMi45MDUtMTBoLTE0di0yaDE0em0tNy0xOS43MzRjLjY1NSAxLjQ4NSAxIDMuMTEgMSA0LjczNHMtLjM0NSAzLjI0OS0xIDQuNzM0Yy0uNjU1LTEuNDg1LTEtMy4xMS0xLTQuNzM0cy4zNDUtMy4yNDkgMS00LjczNHptLTUuMjkzIDkuMDI3Yy0uNTI1LS41MjUtLjg5OC0xLjE4Ni0xLjA4LTEuOTA3bC0uMjUyLTEuMDExIDEuMDEuMjUyYy43MjMuMTgyIDEuMzgzLjU1NSAxLjkwOCAxLjA4cy44OTggMS4xODYgMS4wOCAxLjkwN2wuMjUyIDEuMDExLTEuMDEtLjI1MmMtLjcyMi0uMTgyLTEuMzgzLS41NTUtMS45MDgtMS4wOHptMTAuOTA3LTIuNjY2IDEuMDExLS4yNTItLjI1MiAxLjAxYy0uMTgyLjcyMy0uNTU1IDEuMzgzLTEuMDggMS45MDhzLTEuMTg2Ljg5OC0xLjkwOCAxLjA4bC0xLjAxLjI1Mi4yNTItMS4wMWMuMTgyLS43MjMuNTU1LTEuMzgzIDEuMDgtMS45MDhzMS4xODYtLjg5OCAxLjkwNy0xLjA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im01IDE1aDEzYzIuNzU3IDAgNS0yLjI0MyA1LTVzLTIuMjQzLTUtNS01Yy0uNDM4IDAtLjg3Ny4wNjEtMS4zMDMuMTgtLjc2Ni0yLjQ1NS0zLjAyMy00LjE4LTUuNjk3LTQuMTgtMy4zMDkgMC02IDIuNjkxLTYgNi0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0em0wLTZjLjI3IDAgLjUzMy4wNTQuNzgzLjE2LjM1Mi4xNDcuNzU2LjA4NSAxLjA0My0uMTYzLjI4OC0uMjQ4LjQxMS0uNjM5LjMxNy0xLjAwNy0uMDk4LS4zNzctLjE0My0uNjkyLS4xNDMtLjk5IDAtMi4yMDYgMS43OTQtNCA0LTQgMi4wODEgMCAzLjc4NCAxLjU3NCAzLjk2MSAzLjY2Mi4wMjguMzQ1LjIzMy42NDguNTQuODA2LjMwOC4xNTguNjc1LjE0NS45Ny0uMDMyLjQ4My0uMjkuOTk3LS40MzYgMS41MjktLjQzNiAxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM2gtMTNjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yeiIvPgogICAgPC9nPgo8L3N2Zz4=",tce="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",sce="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOSA1MDkiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNTkuMiAwdjg5LjhoLTg5LjgwMXY4OS44aC04OS44djg5LjhoLTg5Ljc5OXY4OS44aC04OS44djE0OS44aDUwOXYtNTA5em0xMTkuOCA0NzloLTQ0OXYtODkuOGg4OS44di04OS44aDg5Ljh2LTg5LjhoODkuOHYtODkuOGg4OS44di04OS44aDg5Ljh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTY4LjQ0OCAxNzYuOTU2IDk0LjA0MS05NC4wNC0zLjYyOSA0My4wNjYgMjkuODk1IDIuNTE5IDguNTYyLTEwMS42MjYtMTAxLjYyNyA4LjU2MiAyLjUxOCAyOS44OTQgNDMuMDY4LTMuNjI4LTk0LjA0MSA5NC4wNHoiLz4KICAgIDwvZz4KPC9zdmc+",ice="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y0Mi42NjcKCQkJQzI0Ny40NjcsMzcuOTU2LDI0My42NDQsMzQuMTMzLDIzOC45MzMsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzcuODY3LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjc2LjhjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzUzQ4Ni40LDgxLjUxLDQ4Ni40LDc2LjhWNDIuNjY3CgkJCUM0ODYuNCwzNy45NTYsNDgyLjU3NywzNC4xMzMsNDc3Ljg2NywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE3OS4yLDBIOC41MzNDMy44MjMsMCwwLDMuODIzLDAsOC41MzN2NDk0LjkzM0MwLDUwOC4xNzcsMy44MjMsNTEyLDguNTMzLDUxMkgxNzkuMmM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzMKCQkJVjguNTMzQzE4Ny43MzMsMy44MjMsMTgzLjkxLDAsMTc5LjIsMHogTTE3MC42NjcsNDk0LjkzM2gtMTUzLjZWMTcuMDY3aDE1My42VjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMzU4LjRIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxMzYuNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gzMjQuMjY3CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzY2LjkzM0M1MTIsMzYyLjIyMyw1MDguMTc3LDM1OC40LDUwMy40NjcsMzU4LjR6IE00OTQuOTMzLDQ5NC45MzNoLTMwNy4yVjM3NS40NjdoMzA3LjIKCQkJVjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMEgxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjguNTMzQzUxMiwzLjgyMyw1MDguMTc3LDAsNTAzLjQ2NywweiBNNDk0LjkzMywzNC4xMzNoLTMwNy4yVjE3LjA2N2gzMDcuMlYzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzNi41MzMsMjQ3LjQ2N2gtMjUuNmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDI1LjZjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMxNDEuMjQ0LDI0Ny40NjcsMTM2LjUzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTAuOTMzLDI0Ny40NjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YyNS42YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YyNTYKCQkJQzExOS40NjcsMjUxLjI5LDExNS42NDQsMjQ3LjQ2NywxMTAuOTMzLDI0Ny40Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Ni45MzMsNDE4LjEzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDUxLjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMzNzEuNjQ0LDQxOC4xMzMsMzY2LjkzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDEuMzMzLDQxOC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxNy4wNjdjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCXYtMTcuMDY3QzM0OS44NjcsNDIxLjk1NiwzNDYuMDQ0LDQxOC4xMzMsMzQxLjMzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yOTAuMTMzLDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMyOTguNjY3LDM3Ljk1NiwyOTQuODQ0LDM0LjEzMywyOTAuMTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywxMTkuNDY3Yy00NS45MzUsMC03Ni44LDE3LjE0My03Ni44LDQyLjY2N1YxNzkuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTcuMDY3djc2LjgKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM0gzMzIuOGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhIMzU4LjRjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzM2Ni45MzMsMTM2LjYxLDMzNi4wNjgsMTE5LjQ2NywyOTAuMTMzLDExOS40Njd6IE0zNDkuODY3LDE3MC42NjdIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZIMjU2di03Ni44CgkJCWMwLTQuNzEtMy44MjMtOC41MzMtOC41MzMtOC41MzNIMjMwLjR2LTguNTMzYzAtMTIuNDA3LDIwLjkzMi0yNS42LDU5LjczMy0yNS42czU5LjczMywxMy4xOTMsNTkuNzMzLDI1LjZWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQ5Ljg2NywxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDI2LjY2NywxMzYuNjEsMzk1LjgwMiwxMTkuNDY3LDM0OS44NjcsMTE5LjQ2N3ogTTQwOS42LDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJSDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3YzAtOS44MTMtNC43MzYtMTguNTc3LTEzLjM4LTI1LjU1N2MzNi40MzcsMC44MDIsNTYuMDQ3LDEzLjU0Miw1Ni4wNDcsMjUuNTU3CgkJCVYxNzAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDkuNiwxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjg1LjMzMwoJCQljMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczM2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhoMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUM0ODYuNCwxMzYuNjEsNDU1LjUzNSwxMTkuNDY3LDQwOS42LDExOS40Njd6IE00NjkuMzMzLDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJaDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTMzA0LjI0Nyw4NS4zMzMsMjkwLjEzMyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMzNjYuOTMzLDM3Ljk1NiwzNjMuMTEsMzQuMTMzLDM1OC40LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzU4LjQsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzM3Mi41MTQsODUuMzMzLDM1OC40LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDNDM1LjIsMzcuOTU2LDQzMS4zNzcsMzQuMTMzLDQyNi42NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjYuNjY3LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVM0NDAuNzgxLDg1LjMzMyw0MjYuNjY3LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDg2LjQsMzI0LjI2N0gxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzA3LjIKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YzMzIuOEM0OTQuOTMzLDMyOC4wOSw0OTEuMTEsMzI0LjI2Nyw0ODYuNCwzMjQuMjY3eiBNNDc3Ljg2NywzNTguNEgxODcuNzMzdi0xNy4wNjdoMjkwLjEzMwoJCQlWMzU4LjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2OS4zMzMsMzkyLjUzM2gtMjU2Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NjguMjY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNTYKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNjguMjY3QzQ3Ny44NjcsMzk2LjM1Niw0NzQuMDQ0LDM5Mi41MzMsNDY5LjMzMywzOTIuNTMzeiBNNDYwLjgsNDYwLjhIMjIxLjg2N3YtNTEuMkg0NjAuOAoJCQlWNDYwLjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",oce="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTUuNzU4IDYxLTEuNTY5LTUuNTdjNC4wNTMtMi4yMDQgNi44MTEtNi41MDEgNi44MTEtMTEuNDN2LTFjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMnYtMTBjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMmgtMjZjLTEuMTAzIDAtMiAuODk3LTIgMnYyYzAgMS4xMDMuODk3IDIgMiAydjEwYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MmMwIDEuMTAzLjg5NyAyIDIgMnYxYzAgNC45MjkgMi43NTggOS4yMjYgNi44MTEgMTEuNDNsLTEuNTY5IDUuNTdoLTEzLjM0M2MtLjQ2NS0yLjI3OS0yLjQ4NC00LTQuODk5LTRoLTF2LTkuMDAzYzQuNjkzLTEuOTYzIDgtNi42IDgtMTEuOTk3di03aC0xOHYtNGg0djJoMnYtMmMwLTEuMTAzLS44OTctMi0yLTJoLTYtMS0xYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NGgtMnY3YzAgNS4zOTcgMy4zMDcgMTAuMDM0IDggMTEuOTk3djkuMDAzaC0xYy0yLjQxNCAwLTQuNDM0IDEuNzIxLTQuODk5IDRoLTUuMTAxdjJoNjR2LTJ6bS0yMC43NTktMzhoMjYuMDAxdjJoLTI2em0yLjAwMSA4aDR2LTJoLTR2LTJoMjJ2MTBoLTIyem0tMi4wMDEgOGgyNi4wMDF2MmgtMjZ6bTIuMDAxIDV2LTFoMjJ2MWMwIDYuMDY1LTQuOTM1IDExLTExIDExcy0xMS00LjkzNS0xMS0xMXptNi42NjEgMTIuMjRjMS4zNi40ODMgMi44MTYuNzYgNC4zMzkuNzZzMi45NzktLjI3NyA0LjMzOS0uNzZsMS4zNCA0Ljc2aC0xMS4zNTh6bS0zNi42NjEtMzEuMjRoMSAxdjRoLTJ6bTIwIDZ2MmgtMjJ2LTJ6bS0yMiA1di0xaDIydjFjMCA2LjA2NS00LjkzNSAxMS0xMSAxMXMtMTEtNC45MzUtMTEtMTF6bTggMTIuNjM3Yy45NjUuMjI5IDEuOTY2LjM2MyAzIC4zNjNzMi4wMzUtLjEzNCAzLS4zNjN2OC4zNjNoLTZ6bS0zIDEwLjM2M2gxMmMxLjMwMiAwIDIuNDAyLjgzOSAyLjgxNiAyaC0xNy42MzJjLjQxNC0xLjE2MSAxLjUxNC0yIDIuODE2LTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQgMjFoMjRjMS42NTQgMCAzLTEuMzQ2IDMtM3YtMTRjMC0xLjY1NC0xLjM0Ni0zLTMtM2gtMjRjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2MTRjMCAxLjY1NCAxLjM0NiAzIDMgM3ptLTEtMTdjMC0uNTUxLjQ0OC0xIDEtMWgyNGMuNTUyIDAgMSAuNDQ5IDEgMXYxNGMwIC41NTEtLjQ0OCAxLTEgMWgtMjRjLS41NTIgMC0xLS40NDktMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyLjUxNWgydjE2Ljk3MWgtMnoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC00LjU1NiAxMSkiLz4KICAgICAgICA8cGF0aCBkPSJtMjAgMi41MTVoMnYxNi45NzFoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzA3IC0uNzA3IC43MDcgLjcwNyAtMS42MjcgMTguMDcxKSIvPgogICAgICAgIDxwYXRoIGQ9Im0zNSA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzUgMTNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxMWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDExaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgM2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDMgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDEzaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTUgMTdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01NyAxNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUzIDE1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",rce="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",Mce="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTIzOC45MzMsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWNzYuOGMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWNDIuNjY3CgkJCUMyNDcuNDY3LDM3Ljk1NiwyNDMuNjQ0LDM0LjEzMywyMzguOTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDc3Ljg2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1M0ODYuNCw4MS41MSw0ODYuNCw3Ni44VjQyLjY2NwoJCQlDNDg2LjQsMzcuOTU2LDQ4Mi41NzcsMzQuMTMzLDQ3Ny44NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzkuMiwwSDguNTMzQzMuODIzLDAsMCwzLjgyMywwLDguNTMzdjQ5NC45MzNDMCw1MDguMTc3LDMuODIzLDUxMiw4LjUzMyw1MTJIMTc5LjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVY4LjUzM0MxODcuNzMzLDMuODIzLDE4My45MSwwLDE3OS4yLDB6IE0xNzAuNjY3LDQ5NC45MzNoLTE1My42VjE3LjA2N2gxNTMuNlY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDM1OC40SDE3OS4yYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjM2Ni45MzNDNTEyLDM2Mi4yMjMsNTA4LjE3NywzNTguNCw1MDMuNDY3LDM1OC40eiBNNDk0LjkzMyw0OTQuOTMzaC0zMDcuMlYzNzUuNDY3aDMwNy4yCgkJCVY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDBIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMyNC4yNjcKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y4LjUzM0M1MTIsMy44MjMsNTA4LjE3NywwLDUwMy40NjcsMHogTTQ5NC45MzMsMzQuMTMzaC0zMDcuMlYxNy4wNjdoMzA3LjJWMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzYuNTMzLDI0Ny40NjdoLTI1LjZjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNS42YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMTQxLjI0NCwyNDcuNDY3LDEzNi41MzMsMjQ3LjQ2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzMywyNDcuNDY3Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MjUuNmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWMjU2CgkJCUMxMTkuNDY3LDI1MS4yOSwxMTUuNjQ0LDI0Ny40NjcsMTEwLjkzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjYuOTMzLDQxOC4xMzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1MS4yYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMzcxLjY0NCw0MTguMTMzLDM2Ni45MzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQxLjMzMyw0MTguMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTcuMDY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQl2LTE3LjA2N0MzNDkuODY3LDQyMS45NTYsMzQ2LjA0NCw0MTguMTMzLDM0MS4zMzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMjk4LjY2NywzNy45NTYsMjk0Ljg0NCwzNC4xMzMsMjkwLjEzMywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsMTE5LjQ2N2MtNDUuOTM1LDAtNzYuOCwxNy4xNDMtNzYuOCw0Mi42NjdWMTc5LjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDE3LjA2N3Y3Ni44CgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNIMzMyLjhjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44SDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUMzNjYuOTMzLDEzNi42MSwzMzYuMDY4LDExOS40NjcsMjkwLjEzMywxMTkuNDY3eiBNMzQ5Ljg2NywxNzAuNjY3SDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWMjU2SDI1NnYtNzYuOAoJCQljMC00LjcxLTMuODIzLTguNTMzLTguNTMzLTguNTMzSDIzMC40di04LjUzM2MwLTEyLjQwNywyMC45MzItMjUuNiw1OS43MzMtMjUuNnM1OS43MzMsMTMuMTkzLDU5LjczMywyNS42VjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM0OS44NjcsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzSDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2ODUuMzMzCgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoNTkuNzMzYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNzYuOGgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzQyNi42NjcsMTM2LjYxLDM5NS44MDIsMTE5LjQ2NywzNDkuODY3LDExOS40Njd6IE00MDkuNiwxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCUgzNTguNGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjYsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzaC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDg2LjQsMTM2LjYxLDQ1NS41MzUsMTE5LjQ2Nyw0MDkuNiwxMTkuNDY3eiBNNDY5LjMzMywxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCWgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjdjMC05LjgxMy00LjczNi0xOC41NzctMTMuMzgtMjUuNTU3YzM2LjQzNywwLjgwMiw1Ni4wNDcsMTMuNTQyLDU2LjA0NywyNS41NTcKCQkJVjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzMwNC4yNDcsODUuMzMzLDI5MC4xMzMsODUuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTguNCwzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMzY2LjkzMywzNy45NTYsMzYzLjExLDM0LjEzMywzNTguNCwzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVMzNzIuNTE0LDg1LjMzMywzNTguNCw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyNi42NjcsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NTEuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTUxLjIKCQkJQzQzNS4yLDM3Ljk1Niw0MzEuMzc3LDM0LjEzMyw0MjYuNjY3LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2Nyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTNDQwLjc4MSw4NS4zMzMsNDI2LjY2Nyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4Ni40LDMyNC4yNjdIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMwNy4yCgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzMyLjhDNDk0LjkzMywzMjguMDksNDkxLjExLDMyNC4yNjcsNDg2LjQsMzI0LjI2N3ogTTQ3Ny44NjcsMzU4LjRIMTg3LjczM3YtMTcuMDY3aDI5MC4xMzMKCQkJVjM1OC40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjkuMzMzLDM5Mi41MzNoLTI1NmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjY4LjI2N2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjU2CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTY4LjI2N0M0NzcuODY3LDM5Ni4zNTYsNDc0LjA0NCwzOTIuNTMzLDQ2OS4zMzMsMzkyLjUzM3ogTTQ2MC44LDQ2MC44SDIyMS44Njd2LTUxLjJINDYwLjgKCQkJVjQ2MC44eiIvPgogICAgPC9nPgo8L3N2Zz4K",nce="PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE5NC44MzYgNThoLTExOS4zMjhjLTI0LjQ0NSAwLTQ0LjMzNiAxOS44ODktNDQuMzM2IDQ0LjMzNnYxMTkuMzI4YzAgMjQuNDQ3IDE5Ljg5MSA0NC4zMzYgNDQuMzM2IDQ0LjMzNmgxMTkuMzI4YzI0LjQ0NSAwIDQ0LjMzNi0xOS44ODkgNDQuMzM2LTQ0LjMzNnYtMTE5LjMyOGMwLTI0LjQ0Ny0xOS44OTEtNDQuMzM2LTQ0LjMzNi00NC4zMzZ6bTM2LjMzNiAxNjMuNjY0YzAgMjAuMDM1LTE2LjMwMSAzNi4zMzYtMzYuMzM2IDM2LjMzNmgtMTE5LjMyOGMtMjAuMDM1IDAtMzYuMzM2LTE2LjMwMS0zNi4zMzYtMzYuMzM2di0xMTkuMzI4YzAtMjAuMDM1IDE2LjMwMS0zNi4zMzYgMzYuMzM2LTM2LjMzNmgxMTkuMzI4YzIwLjAzNSAwIDM2LjMzNiAxNi4zMDEgMzYuMzM2IDM2LjMzNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM1LjE3MiA3NGMtNDkuNjI1IDAtOTAgNDAuMzczLTkwIDkwczQwLjM3NSA5MCA5MCA5MCA5MC00MC4zNzMgOTAtOTAtNDAuMzc1LTkwLTkwLTkwem0wIDE3MmMtNDUuMjE1IDAtODItMzYuNzg1LTgyLTgyczM2Ljc4NS04MiA4Mi04MiA4MiAzNi43ODUgODIgODItMzYuNzg1IDgyLTgyIDgyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzUuMTcyIDkwYy00MC44MDUgMC03NCAzMy4xOTUtNzQgNzRzMzMuMTk1IDc0IDc0IDc0IDc0LTMzLjE5NSA3NC03NC0zMy4xOTUtNzQtNzQtNzR6bTAgMTQwYy0zNi4zOTEgMC02Ni0yOS42MDctNjYtNjZzMjkuNjA5LTY2IDY2LTY2IDY2IDI5LjYwNyA2NiA2Ni0yOS42MSA2Ni02NiA2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNzkuMTcyIDEzOHYzMmMwIDIuMjA5IDEuNzg5IDQgNCA0aDEwNGMyLjIxMSAwIDQtMS43OTEgNC00di0zMmMwLTIuMjA5LTEuNzg5LTQtNC00aC0xMDRjLTIuMjExIDAtNCAxLjc5MS00IDR6bTggNGg5NnYyNGgtOTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNy4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyOS4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE0NS4xNzIgMTUxLjQ3Yy0yLjUwMiAwLTQuNTMgMi4wMjgtNC41MyA0LjUzIDAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTMgMi41MDEgMCA0LjUzLTIuMDI4IDQuNTMtNC41My0uMDAxLTIuNTAyLTIuMDI5LTQuNTMtNC41My00LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDEuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTMuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjE5OS4xNzIiIGN5PSIzOCIgcj0iNCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzkuMTcyIDQ2Yy02LjYxNyAwLTEyIDUuMzgzLTEyIDEyczUuMzgzIDEyIDEyIDEyIDEyLTUuMzgzIDEyLTEyLTUuMzgzLTEyLTEyLTEyem0wIDE2Yy0yLjIwNyAwLTQtMS43OTUtNC00czEuNzkzLTQgNC00IDQgMS43OTUgNCA0LTEuNzkzIDQtNCA0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuODI4IDExMCAyLjgyOC0yLjgyOGMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2cy00LjA5NC0xLjU2Mi01LjY1NiAwbC0yLjgyOCAyLjgyOC0yLjgyOC0yLjgyOGMtMS41NjItMS41NjItNC4wOTQtMS41NjItNS42NTYgMHMtMS41NjIgNC4wOTQgMCA1LjY1NmwyLjgyOCAyLjgyOC0yLjgyOCAyLjgyOGMtMS41NjIgMS41NjItMS41NjIgNC4wOTQgMCA1LjY1Ni43ODEuNzgxIDEuODA1IDEuMTcyIDIuODI4IDEuMTcyczIuMDQ3LS4zOTEgMi44MjgtMS4xNzJsMi44MjgtMi44MjggMi44MjggMi44MjhjLjc4MS43ODEgMS44MDUgMS4xNzIgMi44MjggMS4xNzJzMi4wNDctLjM5MSAyLjgyOC0xLjE3MmMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuMTcyIDE5NGgtNC45MzRsNS44NTktOS43NjhjMS4xMzctMS44OTUuNTIzLTQuMzUyLTEuMzcxLTUuNDg4LTEuODk4LTEuMTM3LTQuMzUyLS41MjEtNS40ODggMS4zNzFsLTkuNDk2IDE1LjgyNmMtLjc0MiAxLjIzNi0uNzYyIDIuNzc1LS4wNTEgNC4wMjlzMi4wMzkgMi4wMjkgMy40OCAyLjAyOWg1LjUyN2wtNS4xMDUgMTAuMjExYy0uOTg4IDEuOTc3LS4xODggNC4zNzkgMS43ODkgNS4zNjcuNTc0LjI4NyAxLjE4NC40MjIgMS43ODUuNDIyIDEuNDY5IDAgMi44NzktLjgwOSAzLjU4Mi0yLjIxMWw4LTE2Yy42MjEtMS4yNC41NTUtMi43MTMtLjE3Ni0zLjg5My0uNzI5LTEuMTc2LTIuMDE0LTEuODk1LTMuNDAxLTEuODk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDcuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTE5LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjMuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc1LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",ace="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMi41IDUxMi41IiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsNDE4LjVjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjV2NzguNWMwLDkuNjczLDE1LDkuNjczLDE1LDBWNDI2QzUxMi4yNSw0MjEuODU4LDUwOC44OTMsNDE4LjUsNTA0Ljc1LDQxOC41eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsMjQ5LjM1NWgtNTguODk0di0yNy4wNDNoMTguMDExYzEwLjk2NCwwLDE5Ljg4My04LjkxOSwxOS44ODMtMTkuODgzVjE5Ljg4NEM0ODMuNzUsOC45Miw0NzQuODMxLDAsNDYzLjg2NywwICAgSDE4NC4wNTljLTEwLjk2NCwwLTE5Ljg4Myw4LjkyLTE5Ljg4MywxOS44ODR2MjYuOTI5YzAsOS42NzMsMTUsOS42NzMsMTUsMFYxOS44ODRjMC0yLjY5MywyLjE5LTQuODg0LDQuODgzLTQuODg0aDI3OS44MDkgICBjMi42OTIsMCw0Ljg4MywyLjE5MSw0Ljg4Myw0Ljg4NHYxNDUuNDI5aC0yMi44OTRWODUuNDA2YzAtMi40NzUtMS4yMjEtNC43OS0zLjI2My02LjE4OGMtMi4wNDEtMS4zOTgtNC42NDEtMS42OTktNi45NDktMC44MDUgICBjLTEuOTYyLDAuNzYxLTQzLjM0LDE3LjY1OS01Mi4xNDYsODYuODk5SDE3OS4xNzZ2LTc5LjVjMC05LjY3My0xNS05LjY3My0xNSwwdjExNi42MTdjMCwxMC45NjQsOC45MTksMTkuODgzLDE5Ljg4MywxOS44ODMgICBoMTAwLjc0NnYyNy4wNDNIMTE0LjUxNmMxNi42MTItMTYuNTk0LDE4LjIzNC00Mi44NzEsMTguMjM0LTY0Ljk0OWMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41aC00MC41di0xNC4xNTkgICBjMjQuMDYsNS4xMTQsNTAuMjg4LTE0LjYxNiw0OS45NjctMzkuNjQ1Yy0wLjA0My0zLjM1Mi0wLjQ1OS02Ljc1OC0zLjU1Ni04LjgwM2MtMTQuMjQ2LTkuNDAzLTMzLjg2Ni01LjQ4NS00Ni40MTEsNC43ODN2LTEzLjUyOSAgIGMyMS40MzMtMTQuNzkzLDIzLjAyNS00OS42MjksMi40MjktNjUuODg5Yy0yLjA3NS0xLjYzOC00LjM3MS0zLjE5Ny02LjgzNC00LjIwMWMtMTAuNTcxLTQuMzE2LTIyLjE5MSwxNC41MTMtMjQuNzEsMjEuNzgxICAgYy01Ljk1MSwxNy4xNzQtMC41NjgsMzYuOTI2LDE0LjExNCw0Ny44MjR2MTMuOTMxYy05LjYyNy03LjgzMy0yMi4yLTExLjY5Ni0zNC40ODMtOS4yMzZjLTUuMDc2LDEuMDE3LTEzLjk3MSwzLjMxNC0xNS4wNzgsOS40NjcgICBjLTQuNzU4LDI2LjQ3NiwyNS4yMzUsNDguNjQzLDQ5LjU2Miw0My41Mzl2MTQuMTM3aC00My41Yy00LjE0MywwLTcuNSwzLjM1OC03LjUsNy41YzAsMjIuMDQ3LDEuMTk2LDQ4LjM1NywxNy44MDYsNjQuOTQ5SDcuNzUgICBjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjVWNTA0LjVjMCw5LjY3MywxNSw5LjY3MywxNSwwdi0zNWgxMzUuNXYzNWMwLDkuNjczLDE1LDkuNjczLDE1LDB2LTE5MWgyNjUuMjE1ICAgYzAuMDM5LDIuNjEzLDAuMjg5LDE2LjY4OCwwLjMyLDIwLjkwNkgzMDQuMzU2Yy0yOS42NTEsMC01MS42Miw3LjcxOC02NS4yOTgsMjIuOTM5Yy0xNi40MjIsMTguMjc0LTE0LjI2LDQwLjQyNi0xNC4xNTksNDEuMzU5ICAgYzAuNDA4LDMuODExLDMuNjI0LDYuNzAxLDcuNDU3LDYuNzAxaDk2Ljg5NHYxMy41aC0yOS41Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMjkuNVY0OTdoLTk2Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMTAwLjgyNSAgIGMwLjgzMiwwLjMxOCwxLjczMSwwLjUsMi42NzUsMC41czEuODQzLTAuMTgyLDIuNjc1LTAuNUg0NDAuMjVjOS42NzMsMCw5LjY3My0xNSwwLTE1aC05NnYtOTEuNTk0aDUwLjEwNiAgIGMxNy4yMTgsMCwyOS42NjQtNC4xNTEsMzguMDUyLTEyLjY5YzE0LjY5OS0xNC45NjUsMTQuMjUxLTQwLjAyMiwxMy42ODQtNzEuNzQ3Yy0wLjA0NC0yLjQ1NC0wLjA4Ny00Ljk1LTAuMTI1LTcuNDdoNTEuMjgzVjM4NCAgIGMwLDkuNjczLDE1LDkuNjczLDE1LDBWMjU2Ljg1NUM1MTIuMjUsMjUyLjcxMyw1MDguODkzLDI0OS4zNTUsNTA0Ljc1LDI0OS4zNTV6IE05Ny4yNzYsMTI4LjQ5NiAgIGM5LjY1Mi02LjEyNCwxOC4wNDktNC42ODEsMjIuNDIxLTMuMTM3Yy0xLjMyLDE1LjU0Ny0yMC4yMjEsMjYuODYtMzQuNjY4LDIxLjk2M0M4NS42MzUsMTQyLjUxMSw4OC4wNzcsMTM0LjMzMiw5Ny4yNzYsMTI4LjQ5NnogICAgTTQ3LjQyNCwxNDQuMDk3Yy02LjM3Mi00LjA0My0xMS43OTItMTEuMDA1LTEyLjQ5My0xOC43NDJjMTUuMDItNS4yOCwzMi42ODMsNi40MTgsMzQuNjQsMjEuOTY3ICAgQzYyLjI4NiwxNDkuNzkyLDUzLjgxLDE0OC4xNDgsNDcuNDI0LDE0NC4wOTd6IE03Ny42MzcsNTEuMTY5YzEyLjU2LDkuNTU0LDExLjk5NywzMS4zNTktMC4wNDQsNDEuMDU0ICAgYy0zLjcxNS0zLjA1NS05LjMxOS05LjQ4MS05LjMxOS0yMC40NDFDNjguMjczLDYwLjM1Miw3My45OTEsNTQuMDM1LDc3LjYzNyw1MS4xNjl6IE0zMy44NTYsMTkxLjkwNmg4My43ODEgICBjLTEuMjcsNDAuNTE1LTEzLjM2Miw1Ni41LTQxLjg4OCw1Ni41QzQ2LjgzMiwyNDguNDA3LDM1LjA3MiwyMzIuOTM2LDMzLjg1NiwxOTEuOTA2eiBNNDIxLjcwNywzODIuMjA1ICAgYy01LjQyMSw1LjUxOS0xNC4zNjcsOC4yMDEtMjcuMzUxLDguMjAxSDI0MC4wMTNjMC42OTQtNS45ODgsMy4wMDYtMTUuMDI2LDEwLjIwMy0yMy4wMzUgICBjMTAuNzEyLTExLjkyMSwyOC45MjctMTcuOTY1LDU0LjE0MS0xNy45NjVoMTI2LjczNkM0MzAuNDczLDM2NC4xMDUsNDI4LjI1MSwzNzUuNTQzLDQyMS43MDcsMzgyLjIwNXogTTQ2OC43NSwxODAuMzEzdjIyLjExNyAgIGMwLDIuNjkzLTIuMTksNC44ODMtNC44ODMsNC44ODNoLTE4LjAxMXYtMjdINDY4Ljc1eiBNNDE5LjEyNiwxMTEuMzU4YzQuMDg0LTUuMzk1LDguMTktOS40MSwxMS43My0xMi4zMjJ2MTg3Ljg2MyAgIGMtMy41MjgtMy4wMjMtNy42MDQtNy4xNDYtMTEuNjU5LTEyLjYyMmMtMTQuNjE1LTE5LjczOS0yMi4zNDEtNDguMDQ5LTIyLjM0MS04MS44NzIgICBDMzk2Ljg1NiwxNTguNjMyLDQwNC41NTgsMTMwLjYwNiw0MTkuMTI2LDExMS4zNTh6IE0zODMuODczLDIyMi4zMTNjMS40MzIsMTAuMDk1LDMuNTUzLDE5LjA3Nyw2LjEzOCwyNy4wNDNoLTI2Ljg5di0yNy4wNDMgICBIMzgzLjg3M3ogTTE3OS4xNzYsMjAyLjQyOXYtMjIuMTE3aDIwMi45OTNjLTAuNDY5LDguOTkyLTAuNDE1LDE4LjAxNSwwLjE2OSwyN0gxODQuMDU5ICAgQzE4MS4zNjYsMjA3LjMxMywxNzkuMTc2LDIwNS4xMjIsMTc5LjE3NiwyMDIuNDI5eiBNMjk5LjgwNSwyMjIuMzEzaDQ4LjMxNnYyNy4wNDNoLTQ4LjMxNlYyMjIuMzEzeiBNMzk1LjkwMSwyNjQuMzU1ICAgYzcuODE1LDE2LjcsMTcuNTE2LDI3LjQ4OCwyNS4zNjUsMzQuMTQ1SDE1LjI1di0zNC4xNDVIMzk1LjkwMXogTTE1LjI1LDQ1NC41di02M2gxMzUuNXY2M0gxNS4yNXogTTE1MC43NSwzNzYuNUgxNS4yNXYtNjNoMTM1LjUgICBWMzc2LjV6IE00NDUuODU2LDI5OC41di0zNC4xNDVoNTEuMzk0VjI5OC41SDQ0NS44NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTU0Ljc1LDM1Mi41aDU3YzkuNjczLDAsOS42NzMtMTUsMC0xNWgtNTdDNDUuMDc3LDMzNy41LDQ1LjA3NywzNTIuNSw1NC43NSwzNTIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTExLjc1LDQxNS41aC01N2MtOS42NzMsMC05LjY3MywxNSwwLDE1aDU3QzEyMS40MjMsNDMwLjUsMTIxLjQyMyw0MTUuNSwxMTEuNzUsNDE1LjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",cce={Anteroom:Aae,Attic:pae,Balcony:mae,Barn:Oae,Basement:Eae,Bathroom:_ae,Bedroom:Sae,"Boiler Room":"PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSItMyAwIDQ4MCA0ODAiIHdpZHRoPSI0ODBwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTIzNC45Njg3NSA2NGMtMTMuMjUzOTA2IDAtMjQgMTAuNzQ2MDk0LTI0IDI0czEwLjc0NjA5NCAyNCAyNCAyNCAyNC0xMC43NDYwOTQgMjQtMjQtMTAuNzQ2MDk0LTI0LTI0LTI0em0wIDMyYy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04czMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzA2Ljk2ODc1IDE2MGgtMTQ0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoMTQ0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LTh6bS04IDY0aC0xMjh2LTQ4aDEyOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE4Ni45Njg3NSAxOTJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjE4Ljk2ODc1IDE5MmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjYuOTY4NzUgMTkyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEzOC45Njg3NSA3MnYzMmgxNnYtMjRoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ni45Njg3NSAwaC0zMmMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOGgtNTZ2LTU2aDI0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTQ4YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0di0xNmMtLjAyNzM0NC0yMi4wODIwMzEtMTcuOTIxODc1LTM5Ljk3MjY1Ni00MC00MGgtMTZ2LTE2aC0xNnYxNmgtMTcuNzYxNzE5bC02LjQ4MDQ2OS0yNS45Mzc1Yy0uODg2NzE4LTMuNTYyNS00LjA4NTkzNy02LjA2MjUtNy43NTc4MTItNi4wNjI1aC00OGMtMy42NzE4NzUgMC02Ljg3MTA5NCAyLjUtNy43NjE3MTkgNi4wNjI1bC02LjQ4MDQ2OSAyNS45Mzc1aC0xNy43NTc4MTJ2LTE2aC0xNnYxNmgtMTZjLTIyLjA4MjAzMS4wMjczNDQtMzkuOTcyNjU2IDE3LjkxNzk2OS00MCA0MHY1NmgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgyNHYyMjRoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTQxLjcxMDkzOGMxMi4zNzEwOTQgNi4zNzUgMjYuMDgyMDMxIDkuNzAzMTI2IDQwIDkuNzEwOTM4aDh2MjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGg4YzEzLjkxNDA2Mi0uMDA3ODEyIDI3LjYyODkwNi0zLjMzNTkzOCA0MC05LjcxMDkzOHY0MS43MTA5MzhoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTE3Nmg1NmMzMC45MTAxNTYtLjAzOTA2MiA1NS45NjA5MzgtMjUuMDg5ODQ0IDU2LTU2di0xOTJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOHptLTg4IDEwNHYzMmgtMTZ2LTMyem0tMTYxLjc1MzkwNi04OGgzNS41MDM5MDZsNCAxNmgtNDMuNTAzOTA2em0tOTQuMjQ2MDk0IDU2YzAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNGgxNzZjMTMuMjUzOTA2IDAgMjQgMTAuNzQ2MDk0IDI0IDI0djU2aC0yMjR6bS0zMiAxMjB2LTQ4aDE2djQ4em04MCAyNzJoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNjkuNTU4NTk0YzQuNTM1MTU2IDYuNDg0Mzc1IDkuOTE0MDYyIDEyLjMzMjAzMiAxNiAxNy4zOTA2MjV6bTExMi0xNmgtMzJ2LTE2aDMyem0xMjggNDhoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNTIuMTY3OTY5YzYuMDgyMDMxLTUuMDU4NTkzIDExLjQ2NDg0NC0xMC45MDYyNSAxNi0xNy4zOTA2MjV6bTAtMTIwYy0uMDQyOTY5IDM5Ljc0NjA5NC0zMi4yNTM5MDYgNzEuOTU3MDMxLTcyIDcyaC04MGMtMzkuNzQ2MDk0LS4wNDI5NjktNzEuOTU3MDMxLTMyLjI1MzkwNi03Mi03MnYtMTY4aDIyNHptMTEyLTExMmMtLjAyNzM0NCAyMi4wODIwMzEtMTcuOTIxODc1IDM5Ljk3MjY1Ni00MCA0MGgtNTZ2LTE2aDU2YzEzLjI1MzkwNiAwIDI0LTEwLjc0NjA5NCAyNC0yNHYtMTg0aDE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNTYuNjI1IDUzLjY1NjI1IDEwLjM0Mzc1LTEwLjM0Mzc1IDE4LjM0Mzc1IDE4LjM0Mzc1IDExLjMxMjUtMTEuMzEyNS0yNC0yNGMtMy4xMjUtMy4xMjEwOTQtOC4xODc1LTMuMTIxMDk0LTExLjMxMjUgMGwtMTAuOTM3NSAxMC45Mzc1LTM0LjM5ODQzOC0yNy41MjczNDQtMTAuMDA3ODEyIDEyLjQ5MjE4OCA0MCAzMmMzLjE4MzU5NCAyLjU1MDc4MSA3Ljc3MzQzOCAyLjI5Mjk2OCAxMC42NTYyNS0uNTg5ODQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMCA4Ny40MzM1OTQgNDAgMTZjMi45NzI2NTYgMS4xODM1OTQgNi4zNjMyODEuNDg0Mzc1IDguNjI1LTEuNzc3MzQ0bDExLjkxNzk2OS0xMS45MjE4NzUgMjYuODQ3NjU2IDEzLjQ2NDg0NCA3LjE1MjM0NC0xNC4zMjAzMTMtMzItMTZjLTMuMDc4MTI1LTEuNTM1MTU2LTYuNzk2ODc1LS45Mjk2ODctOS4yMzA0NjkgMS41MDM5MDZsLTEyLjI3MzQzOCAxMi4yMjY1NjMtMzUuMTAxNTYyLTE0LjA0Mjk2OXptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Carport:xae,Cellar:fae,Chamber:kae,Corridor:Yae,"Dining Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K","Dining Room":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dining:Qae,"Dressing Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTcuMDA0IDI3Ni4xNjljMC00LjEzOSAzLjM3NC03LjUxMiA3LjUxMi03LjUxMnM3LjQ4MyAzLjM3MyA3LjQ4MyA3LjUxMnYxMzcuMzQgMzkuOTk3YzAgNC4xMzktMy4zNDUgNy40ODMtNy40ODMgNy40ODNoLTQ5Ny4wMDRjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODMgMC0xMjQuNzU0IDAtMjQ5LjUzNiAwLTM3NC4yOTEgMC03Ljc2NyAzLjE3NS0xNC44MjUgOC4yNzctMTkuOTI4IDUuMTAzLTUuMTAzIDEyLjE2MS04LjI3NyAxOS45MjgtOC4yNzdoMTI0LjI0NGM3LjkwOSAwIDE1LjM2NCAzLjMxNiAyMC43MjIgOS4wOTkgNS4zNTctNS43ODMgMTIuODEyLTkuMDk5IDIwLjcyMi05LjA5OWgxMjQuMjQzYzcuODgxIDAgMTUuMzY0IDMuMzE2IDIwLjY5MyA5LjA5OSA1LjM1OC01Ljc4MyAxMi44MTMtOS4wOTkgMjAuNzIyLTkuMDk5aDEyNC4yNDRjNy43NjcgMCAxNC44MjYgMy4xNzUgMTkuOTI4IDguMjc3IDUuMTAyIDUuMTAzIDguMjc3IDEyLjE2MSA4LjI3NyAxOS45Mjh2MjUuNjI1IDEzNy4zNGMwIDQuMTM5LTMuMzQ1IDcuNTEyLTcuNDgzIDcuNTEyLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTEyOS44NTVoLTY3LjgzNXYxMi45MjZsNDYuODMgMjMuODM5YzQuMTk1IDIuMTI2IDcuMTE1IDUuNzU1IDguNDQ3IDkuODk0IDEuMzYgNC4xMzkgMS4xMzQgOC43ODctLjk5MiAxMi45NTQtMS40NDYgMi44MzUtMy42NTcgNS4xNTktNi4yOTMgNi43NzUtMi42NjQgMS42NDQtNS43MjYgMi41MjMtOC44NzIgMi41MjNoLTMuMzQ1djk1LjYxM2MwIDQuMTM5LTMuMzQ1IDcuNDg0LTcuNDg0IDcuNDg0aC03MS4xNWMtNC4xMzkgMC03LjQ4My0zLjM0NS03LjQ4My03LjQ4NHYtMzQuNTU0YzAtNC4xNjcgMy4zNDUtNy41MTIgNy40ODMtNy41MTIgNC4xMzkgMCA3LjUxMiAzLjM0NSA3LjUxMiA3LjUxMnYyNy4wNDNoNTYuMTI3di04OC4xMDJoLTU2LjEyN3YyNy4wNzFjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy40ODMtMy4zNzMtNy40ODMtNy41MTJ2LTI3LjA3MWgtMy4zNDVjLTQuNzA2IDAtOC45NTctMS44OTktMTIuMDE5LTQuOTg5LTMuMDktMy4wNjEtNC45ODktNy4zMTMtNC45ODktMTIuMDE5IDAtMy4zNDUuOTkyLTYuNTIgMi42OTMtOS4xNTYgMS43MjktMi42NjQgNC4xMzktNC44MTkgNi45NzQtNi4xOGw0Ni4wMzUtMjMuNDQzdi0xMy4xMjRoLTY3LjgzNHYyOTMuNzAxaDE1MC42NjN2LTEyOS44NTd6bS03My44NDMtMTM3LjE5OWMtLjgyMi0uNTEtMS42NzItLjUxLTIuNDk1IDBsLTQ1LjcyMyAyMy4zMDFjLS45MDcuMzQtMS40NzQuOTM2LTEuNDc0IDEuOTU2IDAgMS4xMDUuOTA3IDIuMDEzIDIuMDEzIDIuMDEzaDkyLjgwN2MuNzkzIDAgMS40NDYtLjM5NyAxLjc4Ni0xLjEwNS41MS0uOTkyLjE0Mi0yLjE4My0uODc4LTIuNjkzbC0xNS4zMzYtNy44MjNjLTkuMDQzLTQuNTkzLTE4LjA1Ny05LjE1OC0zMC43LTE1LjY0OXptLTE2NS44LS4wODVjLS43MDktLjQyNS0xLjQ3NC0uNDI1LTIuMjQgMGwtNDUuODY1IDIzLjM4NmMtLjg3OS4zNC0xLjQ0Ni45MzYtMS40NDYgMS45NTYgMCAxLjEwNS45MDcgMi4wMTMgMi4wMTMgMi4wMTNoOTIuODA3Yy43OTQgMCAxLjQ0Ni0uMzk3IDEuNzg2LTEuMTA1LjUxLS45OTIuMTQyLTIuMTgzLS44NzktMi42OTMtMTUuMzkyLTcuODI0LTMwLjgxMi0xNS42NDgtNDYuMTc2LTIzLjU1N3ptLTIxMS42NjYtMjYuNTZjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODRzMy4zNzMtNy41MTIgNy41MTItNy41MTJoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNzQgNy41MTIgNy41MTIgMCA0LjEzOS0zLjM3MyA3LjQ4NC03LjUxMiA3LjQ4NHptMCAxMDEuOTM0Yy00LjEzOSAwLTcuNTEyLTMuMzczLTcuNTEyLTcuNTEyczMuMzczLTcuNDgzIDcuNTEyLTcuNDgzaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzQ1IDcuNTEyIDcuNDgzIDAgNC4xMzktMy4zNzMgNy41MTItNy41MTIgNy41MTJ6bTAtMzMuOTg4Yy00LjEzOSAwLTcuNTEyLTMuMzQ1LTcuNTEyLTcuNDgzczMuMzczLTcuNTEyIDcuNTEyLTcuNTEyaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzczIDcuNTEyIDcuNTEycy0zLjM3MyA3LjQ4My03LjUxMiA3LjQ4M3ptMC0zMy45NTljLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJzMy4zNzMtNy40ODMgNy41MTItNy40ODNoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNDUgNy41MTIgNy40ODMgMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnptMjAyLjgyMi0yMC44NjN2LTEzLjEyNGgtNjcuODM0djEyOS44NTdjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTE2Mi45NjdjMC0zLjYyOC0xLjQ3NC02LjkxNy0zLjg4My05LjMyNi0yLjM4MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNi0zLjg4NGgtMTI0LjI0NGMtMy42MjggMC02LjkxNyAxLjUwMi05LjMyNyAzLjg4NC0yLjM4MSAyLjQwOS0zLjg4MyA1LjY5Ny0zLjg4MyA5LjMyNnYxOTIuMzYxaDE1LjMwOGM2LjA5NCAwIDExLjU5NCAyLjQ2NiAxNS41OSA2LjQ2NCAzLjk5NyAzLjk5NyA2LjQ5MiA5LjUyNSA2LjQ5MiAxNS41OXYyMy4zMDFjMCA2LjA2Ny0yLjQ5NSAxMS41OTQtNi40OTIgMTUuNTkxcy05LjQ5NiA2LjQ2My0xNS41OSA2LjQ2M2gtMTUuMzA4djEwNy4wMDloMTUwLjY2M3YtMTY5LjgyNWMwLTQuMTM5IDMuMzc0LTcuNTEyIDcuNTEyLTcuNTEyczcuNTEyIDMuMzczIDcuNTEyIDcuNTEydjEyOS44NTZoMTUwLjY2M3YtMjkzLjdoLTY3LjgzNHYxMi45MjZsNDYuNjMgMjMuNzI2YzQuMTY3IDIuMTI2IDcuMiA1LjUyOCA4LjY0NiAxMC4wMDcgMi40NjYgNy41NjgtLjUzOSAxNS41OS03LjI4NSAxOS43MjktMi42NjQgMS42NDQtNS43NTQgMi41MjMtOC44NzIgMi41MjNoLTkyLjgwN2MtNC43MDYgMC04Ljk1OC0xLjg5OS0xMi4wNDctNC45ODktMy4wNjEtMy4wNjEtNC45Ni03LjMxMy00Ljk2LTEyLjAxOSAwLTMuMzQ1Ljk5Mi02LjUyIDIuNjkzLTkuMTU2IDEuNzAxLTIuNjY0IDQuMTEtNC44MTkgNi45NzMtNi4xOHptLTIzMy41MjEgMTcyLjMyaDYuMDk0YzQuMTM5IDAgNy41MTIgMy4zNzMgNy41MTIgNy41MTJzLTMuMzczIDcuNTEyLTcuNTEyIDcuNTEyaC02LjA5NHYxMS4xOThoMTUuMzA4YzEuOTU2IDAgMy43MTMtLjc5NCA0Ljk4OS0yLjA2OSAxLjI3Ni0xLjMwNSAyLjA5OC0zLjA2MSAyLjA5OC00Ljk5di0yMy4zMDJjMC0xLjkyOC0uODIyLTMuNjg1LTIuMDk4LTQuOTg5LTEuMjc1LTEuMjc2LTMuMDMzLTIuMDY5LTQuOTg5LTIuMDY5aC0xNS4zMDh6bTMzMS4zNDUtMjE4LjU1NHYxOC4xMTNoMTUwLjY2M3YtMTguMTEzYzAtMy42MjgtMS40NzQtNi45MTctMy44ODMtOS4zMjYtMi40MDktMi4zODEtNS42OTgtMy44ODQtOS4zMjctMy44ODRoLTEyNC4yNDNjLTMuNjI4IDAtNi45MTcgMS41MDItOS4zMjYgMy44ODQtMi40MSAyLjQxLTMuODg0IDUuNjk4LTMuODg0IDkuMzI2em0tMTY1LjY1OCAxOC4xMTRoMTUwLjY2M3YtMTguMTE0YzAtMy42MjgtMS41MDItNi45MTctMy44ODMtOS4zMjYtMi40MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNy0zLjg4NGgtMTI0LjI0M2MtMy42MjkgMC02Ljk0NSAxLjUwMi05LjMyNyAzLjg4NC0yLjQxIDIuNDA5LTMuODgzIDUuNjk3LTMuODgzIDkuMzI2em0zMTYuMzIxIDMyMy42OTJoLTMxNi4zMjF2MjQuOTczaDMxNi4zMjJ2LTI0Ljk3M3oiLz4KICAgIDwvZz4KPC9zdmc+",Driveway:Uae,Entrance:vae,"Equipment Room":"PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC00IDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTMwMy4wOTM3NSAxNzQuMjVjMy4zOTQ1MzEgMi4zNzg5MDYgOC4wNzAzMTIgMS41NTA3ODEgMTAuNDQ1MzEyLTEuODM5ODQ0bDE1Ljk1MzEyNi0yMi43ODkwNjJjMi4zNzg5MDYtMy4zOTQ1MzIgMS41NTQ2ODctOC4wNzAzMTMtMS44Mzk4NDQtMTAuNDQ1MzEzLTMuMzk0NTMyLTIuMzc1LTguMDcwMzEzLTEuNTUwNzgxLTEwLjQ0NTMxMyAxLjg0Mzc1bC0xNS45NTcwMzEgMjIuNzg1MTU3Yy0yLjM3NSAzLjM5NDUzMS0xLjU1MDc4MSA4LjA3MDMxMiAxLjg0Mzc1IDEwLjQ0NTMxMnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM0MS42NzE4NzUgMTU1Ljk4NDM3NS01LjQxNzk2OSAyNy4yODUxNTZjLS45MTc5NjggNC42NDA2MjUgMi42MzI4MTMgOC45NjA5MzggNy4zNjcxODggOC45NjA5MzggMy41MDc4MTIgMCA2LjY0MDYyNS0yLjQ3MjY1NyA3LjM0NzY1Ni02LjAzOTA2M2w1LjQxNDA2Mi0yNy4yODkwNjJjLjgwODU5NC00LjA2MjUtMS44MzIwMzEtOC4wMTE3MTktNS44OTQ1MzEtOC44MTY0MDYtNC4wNjY0MDYtLjgwNDY4OC04LjAxMTcxOSAxLjgzMjAzMS04LjgxNjQwNiA1Ljg5ODQzN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTMwOS41ODk4NDQgMTIxLjQ0OTIxOWMtMi4xNDQ1MzItMy41NDI5NjktNi43NTc4MTMtNC42NzE4NzUtMTAuMzAwNzgyLTIuNTI3MzQ0bC0yMy43ODkwNjIgMTQuNDIxODc1Yy0zLjU0Mjk2OSAyLjE0ODQzOC00LjY3MTg3NSA2Ljc2MTcxOS0yLjUyNzM0NCAxMC4zMDQ2ODggMi4xNTIzNDQgMy41NDI5NjggNi43NjU2MjUgNC42Njc5NjggMTAuMzA0Njg4IDIuNTIzNDM3bDIzLjc4OTA2Mi0xNC40MTc5NjljMy41NDI5NjktMi4xNDg0MzcgNC42NzE4NzUtNi43NjE3MTggMi41MjM0MzgtMTAuMzA0Njg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtODMuNjUyMzQ0IDE1Mi4xNzk2ODhjMi43NTc4MTIgMS4zNTkzNzQgNi4xMTMyODEgMS40MDYyNSA4Ljk2ODc1IDAgNy0zLjQ1MzEyNiAyOS44MzU5MzctMTYuNTA3ODEzIDI5LjgzNTkzNy0zOS40NjQ4NDQgMC0xOC4yMDMxMjUtMjEuMjE0ODQzLTI3LjA2NjQwNi0zNC4zMTI1LTE2LjA3NDIxOS01LjA2MjUtNC4yNjE3MTktMTEuOTQxNDA2LTUuODkwNjI1LTE4Ljc1MzkwNi00LjA4OTg0NC05LjMxNjQwNiAyLjQ1NzAzMS0xNS41NzAzMTMgMTAuNTYyNS0xNS41NzAzMTMgMjAuMTY0MDYzIDAgMjMuMDE1NjI1IDIyLjg0Mzc1IDM2LjAzMTI1IDI5LjgzMjAzMiAzOS40NjQ4NDR6bS0zLjc3NzM0NC00Mi4zNjcxODhjMS4zOTg0MzggMi40Njg3NSA0LjQ2ODc1IDQuNjI1IDguMDIzNDM4IDQuNzEwOTM4IDMuNTgyMDMxLjExMzI4MSA2Ljk3MjY1Ni0yLjA0Njg3NiA4LjQ2MDkzNy00LjY1MjM0NCAzLjA1NDY4Ny01LjM1NTQ2OSAxMS4wOTc2NTYtMy4xNDQ1MzIgMTEuMDk3NjU2IDIuODQ3NjU2IDAgMTIuNjkxNDA2LTEzLjM5NDUzMSAyMS41NjY0MDYtMTkuMzI0MjE5IDI0Ljg3NS01LjkyOTY4Ny0zLjI5Mjk2OS0xOS4zMTI1LTEyLjE0NDUzMS0xOS4zMTI1LTI0Ljg3NSAwLTYuMDQyOTY5IDguMDg1OTM4LTguMTMyODEyIDExLjA1NDY4OC0yLjkwNjI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMDMuNjE3MTg4aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDA2MjYtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTkzNzQtNy41IDcuNSAwIDQuMTQ0NTMxIDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMzAuMDI3MzQ0aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDQ1MzItMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjgtNy41IDcuNSAwIDQuMTQwNjI1IDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxNTYuNDM3NWgyOS42MzY3MTljNC4xNDQ1MzEgMCA3LjUtMy4zNTU0NjkgNy41LTcuNXMtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjktNy41IDcuNXMzLjM1NTQ2OSA3LjUgNy41IDcuNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NS43Njk1MzEgMTUuMDA3ODEyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY4IDcuNS03LjUgMC00LjE0NDUzMS0zLjM1NTQ2OS03LjQ5OTk5OTUtNy41LTcuNDk5OTk5NWgtNzMuNzEwOTM3Yy0uMTE3MTg4IDAtLjIzMDQ2OS4wMTE3MTg3LS4zNDc2NTYuMDE1NjI1LTIuNDk2MDk0LS4xMjg5MDY1LTUgLjk4NDM3NDUtNi41MzkwNjMgMy4xODM1OTM1bC0yNS44OTA2MjUgMzYuOTcyNjU3LTMyLjgzOTg0NC0yMi45OTYwOTRjLTE3LjM3MTA5NC0xMi4xNjQwNjMtMzguOTAyMzQ0LTE2LjI4OTA2My01OS41OTM3NS0xMS41MzkwNjNsLTIuNTk3NjU2LTEuODIwMzEyYy05LjU4OTg0NC02LjcxMDkzOC0yMi44MTY0MDYtNC4zNDc2NTctMjkuNSA1LjE5OTIxOWwtNS45Njg3NSA4LjUyMzQzN2MtNi42OTUzMTIgOS41NjI1LTQuMzYzMjgxIDIyLjgwMDc4MSA1LjIwMzEyNSAyOS40OTYwOTRsMi4wNDY4NzUgMS40MzM1OTNjLTYuODU5Mzc1IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDgyMDMyIDUzLjE3OTY4OCAzNy4yMzgyODJsNC4xOTE0MDYgMi45MzM1OTRjLTYuODUxNTYzIDMwLjU3MDMxMiAyNi44MDQ2ODcgNTQuMTE3MTg3IDUzLjE3NTc4MSAzNy4yMzgyODFsNC4xOTUzMTMgMi45MzM1OTNjLTYuODU5Mzc2IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDc4MTI2IDUzLjE3NTc4MSAzNy4yMzQzNzZsMi4wNTQ2ODcgMS40NDE0MDZjOS41NjY0MDYgNi42OTUzMTIgMjIuODAwNzgyIDQuMzYzMjgxIDI5LjQ5NjA5NC01LjIwMzEyNWw1Ljk2ODc1LTguNTIzNDM4YzYuNjk1MzEyLTkuNTYyNSA0LjM2MzI4MS0yMi44MDA3ODEtNS4xOTkyMTktMjkuNDk2MDkzbC0zLjI3MzQzNy0yLjI5Mjk2OWMtMi42MTMyODItMjEuMDY2NDA3LTEzLjg1NTQ2OS0zOS44ODY3MTktMzEuMjI2NTYzLTUyLjA1NDY4OGwtMzAuMTk5MjE5LTIxLjE0MDYyNSAyMy42NTIzNDQtMzMuNzc3MzQ0em0tMjE1LjQ1NzAzMSA0My40NzI2NTcgMjQuNjIxMDk0IDE3LjI0MjE4N2MtMTEuNzk2ODc1IDIuNzkyOTY5LTIzLjIyMjY1Ni01LjIzNDM3NS0yNC42MjEwOTQtMTcuMjQyMTg3em01Ny4zNjcxODggNDAuMTY3OTY5IDI0LjYyNSAxNy4yNDIxODdjLTExLjc2OTUzMiAyLjc5Njg3NS0yMy4yMjI2NTctNS4yMDcwMzEtMjQuNjI1LTE3LjI0MjE4N3ptNTcuMzcxMDkzIDQwLjE3MTg3NGMxNC45MTc5NjkgMTAuNDQ1MzEzIDkuNzc3MzQ0IDYuODQzNzUgMjQuNjI1IDE3LjI0MjE4OC0xMS43NzM0MzcgMi43OTY4NzUtMjMuMjIyNjU2LTUuMjE0ODQ0LTI0LjYyNS0xNy4yNDIxODh6bTY0LjEyODkwNyA2LjM0Mzc1LTUuOTY4NzUgOC41MjM0MzhjLTEuOTUzMTI2IDIuNzg5MDYyLTUuODEyNSAzLjQ3MjY1Ni04LjYwNTQ2OSAxLjUxOTUzMS0yLjQxMDE1Ny0xLjY4NzUtMTY5Ljg1OTM3NS0xMTguOTQxNDA2LTE3Mi4wMTk1MzEtMTIwLjQ0OTIxOS0yLjc2OTUzMi0xLjk0MTQwNi0zLjQ1NzAzMi01LjgzMjAzMS0xLjUxNTYyNi04LjYwNTQ2OGw1Ljk2ODc1LTguNTIzNDM4YzEuOTQ5MjE5LTIuNzgxMjUgNS44NDM3NS0zLjQ0OTIxOCA4LjYwNTQ2OS0xLjUxNTYyNWwxNzIuMDE5NTMxIDEyMC40NDUzMTNjMi43NzM0MzggMS45NDE0MDYgMy40NTcwMzIgNS44MzU5MzcgMS41MTU2MjYgOC42MDU0Njh6bS0xNC45MDIzNDQtMzYuMjg5MDYyYy03Ljg5NDUzMi01LjUzMTI1LTEyNS4wNDY4NzUtODcuNTU4NTk0LTEyOC43MTA5MzgtOTAuMTI1IDExLjQ3MjY1Ni4zNTE1NjIgMjIuNjcxODc1IDQgMzIuMjczNDM4IDEwLjcyMjY1Nmw3NS4zMjQyMTggNTIuNzQyMTg4YzkuNTk3NjU3IDYuNzIyNjU2IDE2Ljg1OTM3NiAxNiAyMS4xMTMyODIgMjYuNjYwMTU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDkwLjgyMDMxMiAzMTAuNTE1NjI1aC0yMTcuMzIwMzEyYy00LjE0NDUzMSAwLTcuNSAzLjM1OTM3NS03LjUgNy41IDAgNC4xNDQ1MzEgMy4zNTU0NjkgNy41MDM5MDYgNy41IDcuNTAzOTA2aDIxNy4zMjAzMTJjMy40MDYyNSAwIDYuMTc5Njg4IDIuNzY5NTMxIDYuMTc5Njg4IDYuMTc1NzgxdjEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzggNi4xNzk2ODgtNi4xNzk2ODggNi4xNzk2ODgtMy40NDUzMTIgMC00NjMuNjA5Mzc0IDAtNDY5LjY0MDYyNCAwLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc2OTUzMi02LjE3OTY4OC02LjE3OTY4OHYtMTMuNjc5Njg4YzAtMy40MDYyNSAyLjc3MzQzOC02LjE3NTc4MSA2LjE3OTY4OC02LjE3NTc4MWgyMTcuMzIwMzEyYzQuMTQ0NTMxIDAgNy41LTMuMzU5Mzc1IDcuNS03LjUwMzkwNiAwLTQuMTQwNjI1LTMuMzU1NDY5LTcuNS03LjUtNy41aC04NS4zNTU0NjljLjU5NzY1Ny0xLjk1MzEyNS45MjU3ODEtNC4wMjczNDQuOTI1NzgxLTYuMTc1Nzgxdi0xMy42Nzk2ODhjMC0xMS42Nzk2ODctOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODctMjEuMTc5Njg3aC0xMTEuNzEwOTM3Yy0xMS42Nzk2ODggMC0yMS4xNzk2ODggOS41LTIxLjE3OTY4OCAyMS4xNzk2ODd2MTMuNjc5Njg4YzAgNS4yMTQ4NDQgMS45MDIzNDQgOS45ODQzNzUgNS4wMzkwNjIgMTMuNjc5Njg3LTMuMTM2NzE4IDMuNjkxNDA3LTUuMDM5MDYyIDguNDY0ODQ0LTUuMDM5MDYyIDEzLjY3NTc4MXYxMy42Nzk2ODhjMCAxMS4zMjgxMjUgOC45NDUzMTIgMjAuNTc4MTI1IDIwLjEzNjcxOSAyMS4xMjg5MDZ2Ni42MDkzNzVjMCAxMS42Nzk2ODggOS41MDM5MDYgMjEuMTc5Njg4IDIxLjE3OTY4NyAyMS4xNzk2ODhoMjAuNzE0ODQ0djk1LjE0MDYyNWMwIDcuODc4OTA2IDYuNDEwMTU2IDE0LjI4OTA2MiAxNC4yOTI5NjkgMTQuMjg5MDYyaDE0LjE1MjM0M2M3Ljg3ODkwNyAwIDE0LjI5Mjk2OS02LjQxMDE1NiAxNC4yOTI5NjktMTQuMjg5MDYydi05NS4xNDA2MjVoMzAyLjQ2MDkzOHY5NS4xNDA2MjVjMCA3Ljg3ODkwNiA2LjQxMDE1NiAxNC4yODkwNjIgMTQuMjkyOTY5IDE0LjI4OTA2MmgxNC4xNTIzNDNjNy44ODI4MTMgMCAxNC4yOTI5NjktNi40MTAxNTYgMTQuMjkyOTY5LTE0LjI4OTA2MnYtOTUuMTQwNjI1aDIwLjcxMDkzOGMxMS42Nzk2ODcgMCAyMS4xNzk2ODctOS41IDIxLjE3OTY4Ny0yMS4xNzk2ODh2LTYuNjA5Mzc1YzExLjE5NTMxMy0uNTUwNzgxIDIwLjE0MDYyNS05LjgwMDc4MSAyMC4xNDA2MjUtMjEuMTI4OTA2di0xMy42Nzk2ODhjMC0xMS42NzU3ODEtOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODgtMjEuMTc5Njg3em0tNDc1LjgyMDMxMi0xOS44NTU0NjljMC0zLjQwNjI1IDIuNzczNDM4LTYuMTc5Njg3IDYuMTc5Njg4LTYuMTc5Njg3aDExMS43MTA5MzdjMy40MDYyNSAwIDYuMTc5Njg3IDIuNzczNDM3IDYuMTc5Njg3IDYuMTc5Njg3djEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzcgNi4xNzk2ODctNi4xNzk2ODcgNi4xNzk2ODdoLTExMS43MTA5MzdjLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc3MzQzNy02LjE3OTY4OC02LjE3OTY4N3ptNzQuNzY1NjI1IDE5OC4wNjI1aC0xMi43MzQzNzV2LTk0LjQyOTY4N2gxMi43MzQzNzV6bTM0NS4yMDMxMjUgMGgtMTIuNzM4Mjgxdi05NC40Mjk2ODdoMTIuNzM4Mjgxem00MS44OTA2MjUtMTE1LjYwOTM3NWMwIDMuNDA2MjUtMi43Njk1MzEgNi4xNzk2ODgtNi4xNzk2ODcgNi4xNzk2ODgtMTMuNzE0ODQ0IDAtNDE1LjAzNTE1NyAwLTQyOS4zNjMyODIgMC0zLjQwNjI1IDAtNi4xNzk2ODctMi43NzM0MzgtNi4xNzk2ODctNi4xNzk2ODh2LTYuNTU4NTkzaDQ0MS43MjI2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjguOTYwOTM4IDExMi41MjczNDRjNC4xNDQ1MzEgMCA3LjUtMy4zNTkzNzUgNy41LTcuNXYtNDEuMTM2NzE5YzAtMTYuMzE2NDA2LTEzLjI3MzQzOC0yOS41OTM3NS0yOS41ODk4NDQtMjkuNTkzNzVoLTE3Ny4yODEyNWMtMTYuMzE2NDA2IDAtMjkuNTg5ODQ0IDEzLjI3MzQzNy0yOS41ODk4NDQgMjkuNTkzNzV2MTE3LjI3NzM0NGMwIDE2LjMxNjQwNiAxMy4yNzM0MzggMjkuNTg5ODQzIDI5LjU4OTg0NCAyOS41ODk4NDNoMTc3LjI4MTI1YzE2LjMxNjQwNiAwIDI5LjU5Mzc1LTEzLjI3MzQzNyAyOS41OTM3NS0yOS41ODk4NDN2LTQxLjE0MDYyNWMwLTQuMTQwNjI1LTMuMzU5Mzc1LTcuNS03LjUwMzkwNi03LjUtNC4xNDA2MjYgMC03LjUgMy4zNTkzNzUtNy41IDcuNXY0MS4xNDA2MjVjMCA4LjA0Mjk2OS02LjU0Njg3NiAxNC41ODk4NDMtMTQuNTg5ODQ0IDE0LjU4OTg0M2gtMTc3LjI4MTI1Yy04LjA0Mjk2OSAwLTE0LjU4OTg0NC02LjU0Njg3NC0xNC41ODk4NDQtMTQuNTg5ODQzdi0xMTcuMjc3MzQ0YzAtOC4wNDY4NzUgNi41NDY4NzUtMTQuNTkzNzUgMTQuNTg5ODQ0LTE0LjU5Mzc1aDE3Ny4yODEyNWM4LjA0Mjk2OCAwIDE0LjU4OTg0NCA2LjU0Njg3NSAxNC41ODk4NDQgMTQuNTkzNzV2NDEuMTM2NzE5YzAgNC4xNDA2MjUgMy4zNTkzNzQgNy41IDcuNSA3LjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNC43NzM0MzggNjEuNTcwMzEyYy00LjE0NDUzMiAwLTcuNSAzLjM1OTM3Ni03LjUgNy41djEwNi45MTQwNjNjMCA0LjE0NDUzMSAzLjM1NTQ2OCA3LjUgNy41IDcuNWgxNjYuOTE0MDYyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY5IDcuNS03LjV2LTEwNi45MTQwNjNjMC00LjE0MDYyNC0zLjM1NTQ2OS03LjUtNy41LTcuNXptMTU5LjQxNDA2MiAxMDYuOTE0MDYzaC0xNTEuOTE0MDYydi05MS45MTQwNjNoMTUxLjkxNDA2MnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==","Front Yard":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMTI2LjQ5LDM2Ljk0N2MtMzEuNTc5LDAtNTcuMjcsMjUuNjkxLTU3LjI3LDU3LjI3YzAsMzEuNTc5LDI1LjY5MSw1Ny4yNyw1Ny4yNyw1Ny4yN2MzMS41NzgsMCw1Ny4yNy0yNS42OTEsNTcuMjctNTcuMjcKCQkJQzE4My43NjEsNjIuNjM4LDE1OC4wNywzNi45NDcsMTI2LjQ5LDM2Ljk0N3ogTTEyNi40OSwxMzEuNDg3Yy0yMC41NTEsMC0zNy4yNy0xNi43MTktMzcuMjctMzcuMjcKCQkJYzAtMjAuNTUxLDE2LjcxOS0zNy4yNywzNy4yNy0zNy4yN2MyMC41NSwwLDM3LjI3LDE2LjcxOSwzNy4yNywzNy4yN0MxNjMuNzYxLDExNC43NjgsMTQ3LjA0MiwxMzEuNDg3LDEyNi40OSwxMzEuNDg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMFYxMEMxMzYuNDksNC40NzcsMTMyLjAxNCwwLDEyNi40OSwweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMTU2LjA5N2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMHYtMTIuMzM4CgkJCUMxMzYuNDksMTYwLjU3NCwxMzIuMDE0LDE1Ni4wOTcsMTI2LjQ5LDE1Ni4wOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMC43MDgsODQuMjE3SDE5OC4zN2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzhjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCQlTMjE2LjIzLDg0LjIxNywyMTAuNzA4LDg0LjIxN3oiLz4KICAgICAgICA8cGF0aCBkPSJNNTQuNjEsODQuMjE3SDQyLjI3MmMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzljNS41MjMsMCwxMC00LjQ3Nyw5Ljk5OS0xMAoJCQlDNjQuNjEsODguNjk0LDYwLjEzNCw4NC4yMTcsNTQuNjEsODQuMjE3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMDAuOTc3LDE5LjcyOWMtMy45MDUtMy45MDUtMTAuMjM3LTMuOTA1LTE0LjE0MiwwbC05Ljg3Nyw5Ljg3N2MtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzCgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOWMyLjU1OSwwLDUuMTE5LTAuOTc2LDcuMDcxLTIuOTI5bDkuODc3LTkuODc3QzIwNC44ODMsMjkuOTY2LDIwNC44ODMsMjMuNjM0LDIwMC45NzcsMTkuNzI5CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIzLDE0NC42ODVjLTMuOTA2LTMuOTA1LTEwLjIzOC0zLjkwNS0xNC4xNDMsMGwtOS44NzcsOS44NzdjLTMuOTA1LDMuOTA2LTMuOTA1LDEwLjIzOCwwLDE0LjE0MwoJCQljMS45NTIsMS45NTMsNC41MTIsMi45MjksNy4wNzEsMi45MjlzNS4xMTktMC45NzYsNy4wNzItMi45MjlsOS44NzctOS44NzdDNzkuOTI4LDE1NC45MjIsNzkuOTI4LDE0OC41OSw3Ni4wMjMsMTQ0LjY4NXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIxLDI5LjYwNmwtOS44NzctOS44NzdjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDIsMGMtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzbDkuODc3LDkuODc3CgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOXM1LjExOS0wLjk3Niw3LjA3MS0yLjkyOUM3OS45MjcsMzkuODQzLDc5LjkyNywzMy41MTEsNzYuMDIxLDI5LjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDU5LjU0LDQ2OC4zODljLTAuMTI5LTAuNjQtMC4zMi0xLjI3LTAuNTctMS44N2MtMC4yNS0wLjYtMC41Ni0xLjE4LTAuOTItMS43MmMtMC4zNi0wLjU1LTAuNzgtMS4wNi0xLjI0LTEuNTMKCQkJYy0wLjQ2LTAuNDYtMC45Ny0wLjg3LTEuNTItMS4yNGMtMC41NC0wLjM2LTEuMTItMC42Ny0xLjczLTAuOTJjLTAuNTk5LTAuMjUtMS4yMjktMC40NC0xLjg3LTAuNTdjLTEuMjktMC4yNi0yLjYyLTAuMjYtMy45MDksMAoJCQljLTAuNjMxLDAuMTMtMS4yNjEsMC4zMi0xLjg3LDAuNTdjLTAuNjAxLDAuMjUtMS4xODEsMC41Ni0xLjcyMSwwLjkyYy0wLjU1LDAuMzctMS4wNiwwLjc4LTEuNTIsMS4yNAoJCQljLTAuNDYsMC40Ny0wLjg4LDAuOTgtMS4yNSwxLjUzYy0wLjM2LDAuNTQtMC42NywxLjEyLTAuOTIsMS43MmMtMC4yNSwwLjYtMC40NCwxLjIzLTAuNTcsMS44NwoJCQljLTAuMTMsMC42NTEtMC4xOSwxLjMwMS0wLjE5LDEuOTYxYzAsMC42NSwwLjA2LDEuMzEsMC4xOSwxLjk1YzAuMTMsMC42NCwwLjMyLDEuMjcsMC41NywxLjg3YzAuMjUsMC42LDAuNTYsMS4xOCwwLjkyLDEuNzMKCQkJYzAuMzcsMC41NCwwLjc5LDEuMDYsMS4yNSwxLjUyYzAuNDYsMC40NiwwLjk3LDAuODgsMS41MiwxLjI0YzAuNTQsMC4zNiwxLjEyLDAuNjcsMS43MjEsMC45MmMwLjYwOSwwLjI1LDEuMjM5LDAuNDQsMS44NywwLjU3CgkJCWMwLjY1LDAuMTMsMS4zMSwwLjIsMS45NiwwLjJjMC42NSwwLDEuMzEtMC4wNywxLjk0OS0wLjJjMC42NDEtMC4xMywxLjI3LTAuMzIsMS44Ny0wLjU3YzAuNjEtMC4yNSwxLjE5LTAuNTYsMS43My0wLjkyCgkJCWMwLjU1LTAuMzYsMS4wNi0wLjc4LDEuNTItMS4yNGMwLjQ2LTAuNDYsMC44OC0wLjk4LDEuMjQtMS41MmMwLjM2MS0wLjU1LDAuNjctMS4xMywwLjkyLTEuNzNjMC4yNS0wLjYsMC40NC0xLjIzLDAuNTctMS44NwoJCQlzMC4yLTEuMywwLjItMS45NUM0NTkuNzQsNDY5LjY4OSw0NTkuNjcsNDY5LjAzOSw0NTkuNTQsNDY4LjM4OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjczOSw0NjAuMzQ2SDYyLjEzOGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgzNDcuNmM1LjUyMywwLDEwLTQuNDc3LDEwLjAwMS0xMAoJCQlDNDE5LjczOSw0NjQuODIzLDQxNS4yNjEsNDYwLjM0Niw0MDkuNzM5LDQ2MC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMS41NjMsNDI3LjkzMWgtNi44MDljLTMuODA2LTIxLjMxMi0yMi40NzYtMzcuNTQtNDQuODY0LTM3LjU0Yy0zLjMsMC02LjU5MSwwLjM2Mi05LjgwMywxLjA2N1YyOTMuMjkKCQkJYzM2LjQ4Mi00LjkwMiw2NC43MDQtMzYuMjM2LDY0LjcwNC03NC4wMzdjMC0xOS43MDktNy43ODEtMzguNTMxLTIxLjUyNC01Mi40NjRjMC4xODYtMS44MTQsMC4yNzgtMy42NDEsMC4yNzgtNS40NjgKCQkJYzAtMjkuNDc3LTIzLjk4MS01My40NTgtNTMuNDU4LTUzLjQ1OGMtMjkuNDc3LDAtNTMuNDU4LDIzLjk4Mi01My40NTgsNTMuNDU4YzAsMS44MjcsMC4wOTMsMy42NTMsMC4yNzcsNS40NjcKCQkJYy0xMy43NDEsMTMuOTM0LTIxLjUyMywzMi43NTYtMjEuNTIzLDUyLjQ2NWMwLDM3LjgwMiwyOC4yMjMsNjkuMTM2LDY0LjcwNCw3NC4wMzd2ODkuNjJjLTQuNjg1LTEuNjMyLTkuNzE2LTIuNTItMTQuOTUxLTIuNTIKCQkJYy0yNS4xMjksMC00NS41NzMsMjAuNDQ0LTQ1LjU3Myw0NS41NzR2MS45NjhoLTguNTA2di0zNS4xM2gwLjAwMWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi00M2MwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC0wLjAwMQoJCQl2LTQ3LjMyOWMwLTIuODQ0LTEuMjExLTUuNTUzLTMuMzMtNy40NUwzMTYuMjcsMjQ2Ljg2Yy0zLjc5Ny0zLjM5OS05LjU0My0zLjM5OS0xMy4zNCwwbC0yNC43ODcsMjIuMTkxbC0yNC43ODgtMjIuMTkxCgkJCWMtMy43OTctMy4zOTgtOS41NDMtMy4zOTgtMTMuMzQsMGwtMjQuNzg4LDIyLjE5MWwtMjQuNzg4LTIyLjE5MWMtMy43OTctMy4zOTktOS41NDMtMy4zOTktMTMuMzQsMC4wMDFsLTI0Ljc4NywyMi4xOTEKCQkJbC0yNC43ODgtMjIuMTkxYy0zLjc5Ny0zLjM5OC05LjU0My0zLjM5OC0xMy4zNCwwTDg5LjM5OCwyNjkuMDVMNjQuNjEsMjQ2Ljg1OWMtMy43OTYtMy4zOTktOS41NDMtMy4zOTktMTMuMzQtMC4wMDEKCQkJbC0zMS40NTgsMjguMTYzYy0yLjExOSwxLjg5Ny0zLjMzLDQuNjA2LTMuMzMsNy40NTF2NDcuMzI5aC0wLjAwMWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHY0M2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDAuMDAxCgkJCXYzNS4xM2gtNi4wNDRjLTUuNTIzLDAtMTAsNC40NzctMTAsMTBWNTAyYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDkxLjEyM2M1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi02NC4wNjkKCQkJQzUxMS41NjMsNDMyLjQwOCw1MDcuMDg1LDQyNy45MzEsNTAxLjU2Myw0MjcuOTMxeiBNNDQ5Ljg5LDQxMC4zOTFjMTEuMjk2LDAsMjAuOTA1LDcuMzYyLDI0LjI4MSwxNy41NGgtMjMuNDYydi0xLjk2OAoJCQljMC01LjQ0MS0wLjk1OS0xMC42NjItMi43MTYtMTUuNTA0QzQ0OC42Miw0MTAuNDE0LDQ0OS4yNTMsNDEwLjM5MSw0NDkuODksNDEwLjM5MXogTTQyMC4wODcsMTg1LjU3NHYzMy4xMThsLTEwLjQwNy0xMC40MDcKCQkJYy0zLjkwNi0zLjkwNC0xMC4yMzYtMy45MDQtMTQuMTQzLDBjLTMuOTA1LDMuOTA1LTMuOTA1LDEwLjIzNywwLDE0LjE0M2wyMy4yNTcsMjMuMjU3YzAuNDA3LDAuNDA2LDAuODM5LDAuNzcsMS4yOTMsMS4wOTEKCQkJdjI2LjI2NWMtMjUuNDA1LTQuNzEyLTQ0LjcwNC0yNy4wMzktNDQuNzA0LTUzLjc4OWMwLTE1LjgxNiw2Ljg0NS0zMC44NTQsMTguNzc4LTQxLjI1NmMyLjc0LTIuMzg4LDMuOTY5LTYuMDc1LDMuMjA5LTkuNjI5CgkJCWMtMC40OTItMi4yOTktMC43NDEtNC42Ny0wLjc0MS03LjA0N2MwLTE4LjQ0OSwxNS4wMDktMzMuNDU4LDMzLjQ1OC0zMy40NThjMTguNDQ5LDAsMzMuNDU4LDE1LjAwOSwzMy40NTgsMzMuNDU4CgkJCWMwLDIuMzc4LTAuMjQ5LDQuNzQ4LTAuNzQxLDcuMDQ1Yy0wLjc2MiwzLjU1NSwwLjQ2Nyw3LjI0MywzLjIwOCw5LjYzMmMxMS45MzUsMTAuNDAzLDE4Ljc3OSwyNS40NCwxOC43NzksNDEuMjU2CgkJCWMwLDI2Ljc1LTE5LjI5OSw0OS4wNzYtNDQuNzA0LDUzLjc4OHYtMjYuMjY1YzAuNDUzLTAuMzIyLDAuODg3LTAuNjg1LDEuMjkzLTEuMDkxbDIzLjI1Ny0yMy4yNTcKCQkJYzMuOTA1LTMuOTA1LDMuOTA1LTEwLjIzNywwLTE0LjE0M2MtMy45MDYtMy45MDQtMTAuMjM2LTMuOTA0LTE0LjE0MywwbC0xMC40MDcsMTAuNDA3di0zMy4xMThjMC01LjUyMy00LjQ3OC0xMC0xMC0xMAoJCQlDNDI0LjU2NCwxNzUuNTc0LDQyMC4wODcsMTgwLjA1MSw0MjAuMDg3LDE4NS41NzR6IE0zNzkuNTYzLDQyNS45NjNjMC0xNC4xMDIsMTEuNDcyLTI1LjU3NCwyNS41NzMtMjUuNTc0CgkJCWMxNC4xMDIsMCwyNS41NzMsMTEuNDcyLDI1LjU3MywyNS41NzR2MS45NjhoLTUxLjE0NlY0MjUuOTYzeiBNMjg4LjE0MywyODYuOTQxbDIxLjQ1Ny0xOS4yMWwyMS40NTcsMTkuMjFWMzI5LjhoLTQyLjkxNFYyODYuOTQxCgkJCXogTTIyNS4yMjcsMjg2Ljk0MWwyMS40NTgtMTkuMjFsMjEuNDU3LDE5LjIxVjMyOS44aC00Mi45MTVWMjg2Ljk0MXogTTE2Mi4zMTMsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44aC00Mi45MTUKCQkJVjI4Ni45NDF6IE05OS4zOTgsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44SDk5LjM5OFYyODYuOTQxeiBNMzYuNDgzLDI4Ni45NDFsMjEuNDU3LTE5LjIxbDIxLjQ1NywxOS4yMVYzMjkuOAoJCQlIMzYuNDgzVjI4Ni45NDF6IE0yNi40ODIsMzQ5LjgwMWgzMTQuNTc1djIzSDI2LjQ4MlYzNDkuODAxeiBNMzMxLjA1NywzOTIuODAxdjM1LjEzaC00Mi45MTR2LTM1LjEzSDMzMS4wNTd6IE0yNjguMTQzLDM5Mi44MDEKCQkJdjM1LjEzaC00Mi45MTV2LTM1LjEzSDI2OC4xNDN6IE0yMDUuMjI3LDM5Mi44MDF2MzUuMTNoLTQyLjkxNXYtMzUuMTNIMjA1LjIyN3ogTTE0Mi4zMTMsMzkyLjgwMXYzNS4xM0g5OS4zOTh2LTM1LjEzSDE0Mi4zMTN6CgkJCSBNNzkuMzk4LDM5Mi44MDF2MzUuMTNIMzYuNDgzdi0zNS4xM0g3OS4zOTh6IE0yMC40MzgsNDkydi00NC4wNjloNDcxLjEyM1Y0OTJIMjAuNDM4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzguNDg3LDEyNy44NDNjLTAuNTU2LDAtMS4xMTIsMC4wMTEtMS42NjgsMC4wMzNjLTcuNTQzLTE0LjQyLTIyLjUxOS0yMy45MjMtMzguODk0LTIzLjkyMwoJCQljLTIwLjU4NywwLTM4LjA0NywxNC42ODMtNDIuNzczLDM0LjM0NmMtMTkuNzgzLDEuOTMtMzUuMzA5LDE5LjAwMS0zNS4zMDksMzkuNzA3YzAsMjEuOTk0LDE3LjUxNywzOS44ODcsMzkuMDQ4LDM5Ljg4N2g3OS41OTYKCQkJYzI0LjI4NSwwLDQ0LjA0MS0yMC4xOTgsNDQuMDQxLTQ1LjAyNUMzMjIuNTI3LDE0OC4wNDEsMzAyLjc3MSwxMjcuODQzLDI3OC40ODcsMTI3Ljg0M3ogTTI3OC40ODcsMTk3Ljg5M2gtNzkuNTk2CgkJCWMtMTAuNTAzLDAtMTkuMDQ4LTguOTIxLTE5LjA0OC0xOS44ODdjMC0xMC45NjcsOC41NDUtMTkuODg4LDE5LjA0OC0xOS44ODhjMS4wNTYsMCwyLjE0OCwwLjA5OSwzLjI0NCwwLjI5NgoJCQljMi44OTMsMC41MTYsNS44Ny0wLjI2Nyw4LjEzNS0yLjE0MWMyLjI2NS0xLjg3NSwzLjU5LTQuNjUyLDMuNjIzLTcuNTkyYzAuMTUzLTEzLjYzNSwxMC45MzMtMjQuNzI4LDI0LjAzMi0yNC43MjgKCQkJYzEwLjYzOCwwLDE5Ljg3Nyw3LjEwOCwyMi45ODgsMTcuNjg5YzEuNTExLDUuMTM1LDYuNzk0LDguMTczLDExLjk5NCw2Ljg4NmMxLjgzOC0wLjQ1NCwzLjcxNS0wLjY4NCw1LjU4LTAuNjg0CgkJCWMxMy4yNTYsMCwyNC4wNDEsMTEuMjI2LDI0LjA0MSwyNS4wMjVDMzAyLjUyNywxODYuNjY3LDI5MS43NDMsMTk3Ljg5MywyNzguNDg3LDE5Ny44OTN6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gallery:bae,Garage:$ae,Garden:Pae,"Ground Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgIGQ9Ik0yOTkuNjY4LDIzMS41NzJoLTMuMzM4di02NS43NDZjMC01LjcyNC00LjY1Ny0xMC4zOC0xMC4zOC0xMC4zOGgtNTkuMzU1Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAuMDAxLDQuMDI0LDMuMjYzLDcuMjg3LDcuMjg3LDcuMjg3aDg2Ljc5MWM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMzMDYuOTU1LDIzNC44MzUsMzAzLjY5MywyMzEuNTcyLDI5OS42NjgsMjMxLjU3MnogTTI4MS43NTgsMjMxLjU3M2gtNTAuOTd2LTYxLjU1NGg1MC45N1YyMzEuNTczeiIvPgogICAgICAgIDxwYXRoIG9wYWNpdHk9IjAuMjUiICBkPSJNNDEyLjU3MiwyMzEuNTcyaC0zLjMzOHYtNjUuNzQ2YzAtNS43MjQtNC42NTctMTAuMzgtMTAuMzc5LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g4Ni43OTFjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDE5Ljg1OSwyMzQuODM1LDQxNi41OTcsMjMxLjU3Miw0MTIuNTcyLDIzMS41NzJ6IE0zOTQuNjYxLDIzMS41NzNoLTUwLjk3di02MS41NTRoNTAuOTdWMjMxLjU3M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTgyLjgxMyw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTUsNC41MjktMTAuMDk1LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0aDU5LjUwNGg3LjgxNGM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMxOTAuMSw0MTcuMDk1LDE4Ni44MzgsNDEzLjgzMywxODIuODEzLDQxMy44MzN6IE0xNjcuNzEyLDQxMy44MzNoLTQ0LjkzMXYtNTUuNTY3aDQ0LjkzMVY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDQuMzE0LDQxMy44MzNoLTAuNTI4di02MC4wNDVjMC01LjU2Ni00LjUyOS0xMC4wOTUtMTAuMDk1LTEwLjA5NWgtNTMuODg2Yy01LjU2NiwwLTEwLjA5Niw0LjUyOS0xMC4wOTYsMTAuMDk1djYwLjA0NQoJCQloLTAuNTI4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjUsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoNy44MTRIMzk2LjVoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDExLjYwMSw0MTcuMDk1LDQwOC4zMzksNDEzLjgzMyw0MDQuMzE0LDQxMy44MzN6IE0zODkuMjEzLDQxMy44MzNoLTQ0LjkzMnYtNTUuNTY3aDQ0LjkzMlY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzYuNTQ1LDQwNS4wODljLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MTIuNjNjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4NwoJCQljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtMTIuNjNDMjgzLjgzMiw0MDguMzUyLDI4MC41Nyw0MDUuMDg5LDI3Ni41NDUsNDA1LjA4OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==","Guest Bathroom":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMuNjE4IDYyLTIuNzE4LTUuNDQ3YTEgMSAwIDAgMCAtLjktLjU1M2gtMXYtMzBoM3YtMmgtM3YtMTlhNS4wMDYgNS4wMDYgMCAwIDAgLTUtNWgtMTRhNS4wMDYgNS4wMDYgMCAwIDAgLTUgNXYxYTMgMyAwIDAgMCAtMyAzdjFoLTVhMyAzIDAgMCAwIC0zIDN2MmExIDEgMCAwIDAgMSAxaDE1di0yaC0xNHYtMWExIDEgMCAwIDEgMS0xaDE4YTEgMSAwIDAgMSAxIDF2MWgtNHYyaDVhMSAxIDAgMCAwIDEtMXYtMmEzIDMgMCAwIDAgLTMtM2gtNXYtMWEzIDMgMCAwIDAgLTMtM3YtMWEzIDMgMCAwIDEgMy0zaDE0YTMgMyAwIDAgMSAzIDN2MTloLTV2Mmg1djE0aC0zdi0yaC0ydjZoMnYtMmgzdjE0aC0xYTEgMSAwIDAgMCAtLjkuNTUzbC0yLjcxOCA1LjQ0N2gtNTIuMzgydjJoNjR2LTJ6bS0yNS42MTgtNTN2MWgtNHYtMWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXptMTguNjE4IDQ5aDIuNzY0bDIgNGgtNi43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI5IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDM0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMyAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDEgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDI0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAyOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDE4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMThoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI1IDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAxOGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIgMzcuOTg3djE5LjAxM2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTE5LjFsMi0uMDEzdjIuMTEzaDJ2LTZoLTJ2MS44ODJsLTE4LjAwNi4xMTguMDEyIDJ6bTIgMTIuMDEzaDEwdjFoLTEwem0wIDZ2LTNoMTB2M3ptMTAtOGgtMTB2LTEwLjAyNmwxMC0uMDY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyOWM0LjQ4NiAwIDgtNS4yNzEgOC0xMnMtMy41MTQtMTItOC0xMi04IDUuMjcxLTggMTIgMy41MTQgMTIgOCAxMnptMC0yMmMzLjI1MiAwIDYgNC41NzkgNiAxMHMtMi43NDggMTAtNiAxMC02LTQuNTc5LTYtMTAgMi43NDgtMTAgNi0xMHoiLz4KICAgICAgICA8cGF0aCBkPSJtNS4wOTUgMTMuNWg3LjgxdjJoLTcuODF6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzY4IC0uNjQgLjY0IC43NjggLTcuMTk3IDkuMTIyKSIvPgogICAgICAgIDxwYXRoIGQ9Im03LjA5NSAxOC41aDcuODF2MmgtNy44MXoiIHRyYW5zZm9ybT0ibWF0cml4KC43NjggLS42NCAuNjQgLjc2OCAtOS45MzQgMTEuNTYyKSIvPgogICAgPC9nPgo8L3N2Zz4=","Guest Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NTYsMzI4YTQwLjAzNyw0MC4wMzcsMCwwLDAtOCwuODA0OTNWMTQ0YTcuOTc1MjIsNy45NzUyMiwwLDAsMC0yLjM0MzgxLTUuNjU3NDcsMTQuNjQ1MzUsMTQuNjQ1MzUsMCwwLDEsMC0yMC42ODUwNkE3Ljk3NTIyLDcuOTc1MjIsMCwwLDAsNDQ4LDExMlY4OGg0MGE3Ljk5OTQ2LDcuOTk5NDYsMCwwLDAsNi45NDU4LTExLjk2ODc1bC0zMi01NkE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAsNDU2LDE2SDM4NGE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAtNi45NDU4LDQuMDMxMjVsLTMyLDU2QTcuOTk5NDYsNy45OTk0NiwwLDAsMCwzNTIsODhoNDB2MjRhNy45NzUyMiw3Ljk3NTIyLDAsMCwwLDIuMzQzODEsNS42NTc0NywxNC42NDUzNSwxNC42NDUzNSwwLDAsMSwwLDIwLjY4NTA2QTcuOTc1MjIsNy45NzUyMiwwLDAsMCwzOTIsMTQ0VjMyMEgzMTJWMjg4aDI0YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMjQ4YTguMDAwMDgsOC4wMDAwOCwwLDAsMC04LThIMzEyVjIxNmg0OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAsOC04VjExMmE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDIwOGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djk2YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhoNDh2MjRIMjA1LjQxNjA4bC0xMy42MDU1My0zNC4wMTQ2NS00Ljk3NDEyLTM5Ljc5M0E1Ni41MzE0OCw1Ni41MzE0OCwwLDAsMCwxODQsMTU0LjI2VjgwQTY0LDY0LDAsMCwwLDU2LDgwdjUyLjgyODYxQTU2LjA0MTkzLDU2LjA0MTkzLDAsMCwwLDMzLjU5NDI0LDE2MS45MTlsLTE3LjE4MzYsNTEuNTUwNzhhNy45OTgsNy45OTgsMCwwLDAtLjE3MTg3LDQuNDcwN2w1LjU5MTM3LDIyLjM2NTQ4QTcuOTk3NDUsNy45OTc0NSwwLDAsMCwxNiwyNDhWNDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhINDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMzY4QTQwLjA0NTUyLDQwLjA0NTUyLDAsMCwwLDQ1NiwzMjhabTI0LDQwdjU2SDQzMlYzNjhhMjQsMjQsMCwwLDEsNDgsMFpNMjY0LDQyNFY0MDBhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgtOEg0MDhhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgsOHYyNFpNOTYsNDI0VjQwMGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOC04SDI0MGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOCw4djI0Wm0zMjAtODB2MzMuMzc2MjJBMjMuODgyMTIsMjMuODgyMTIsMCwwLDAsNDA4LDM3NkgyNzJhMjMuOTAxMTEsMjMuOTAxMTEsMCwwLDAtMTYsNi4xMzA4NkEyMy45MDExMSwyMy45MDExMSwwLDAsMCwyNDAsMzc2SDEwNGEyMy44ODIxMiwyMy44ODIxMiwwLDAsMC04LDEuMzc2MjJWMzQ0YTguMDA5MTcsOC4wMDkxNywwLDAsMSw4LThINDA4QTguMDA5MTcsOC4wMDkxNywwLDAsMSw0MTYsMzQ0Wm0xMC40NTE3Mi0yMDhINDEzLjU0ODI4YTMwLjg0MzUxLDMwLjg0MzUxLDAsMCwwLDAtMTZoMTIuOTAzNDRBMzAuODQzNTEsMzAuODQzNTEsMCwwLDAsNDI2LjQ1MTcyLDEzNlpNMzg4LjY0MjU4LDMyaDYyLjcxNDg0bDIyLjg1Njk0LDQwSDM2NS43ODU2NFpNNDMyLDg4djE2SDQwOFY4OFptLTI0LDY0aDI0VjMzNi4wMjJjLS4zNjYzMy4yNzU2NC0uNzI0MTguNTYyLTEuMDgwNjkuODQ5NjFBMjQuMDQzNjksMjQuMDQzNjksMCwwLDAsNDA4LDMyMFpNMjk2LDMyMEgxMDRhMjQuMDQzNjksMjQuMDQzNjksMCwwLDAtMjIuOTE5MzEsMTYuODcxNThBMzkuOSwzOS45LDAsMCwwLDMyLDMzNi4wMjJWMjg4SDI5NlptMzItNDhIMzJWMjU2SDMyOFpNNzIsMjQwSDY0VjIyNS41NDFsNy4zMTY4OS0xOC4yOTJMNzIsMjA5LjI5Nzg1Wm04OC0uMDAwMjQuMDAwMjQuMDAwMjRIMTYwWk0yMTYsMjAwVjEyMEgzNTJ2ODBIMzEyVjE2OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDI2NGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djMyWm01Ni0yNGgyNHY2NEgyNzJaTTEyMCwzMmE0OC4wNTQsNDguMDU0LDAsMCwxLDQ4LDQ4djUwLjg1MzUyYTU2LjcyNTYyLDU2LjcyNTYyLDAsMCwwLTcuOTE5OTItNS43MzUzNmwtMTEuNDQxNjUtNi44NjVBMzEuNzk0MDUsMzEuNzk0MDUsMCwwLDAsMTUyLDEwNFY4MGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04aC02LjExMTMzYTIwLjgzMDUzLDIwLjgzMDUzLDAsMCwxLTE4LjczMzQtMTEuNTc4MTIsOC4wMDA2NCw4LjAwMDY0LDAsMCwwLTEyLjgxMi0yLjA3OTExbC0xNiwxNkE4LjAwMDc2LDguMDAwNzYsMCwwLDAsODgsODB2MjRhMzEuODAxODgsMzEuODAxODgsMCwwLDAsMi43NTc1MSwxMi45NzExOUw3MiwxMjUuMDFWODBBNDguMDU0LDQ4LjA1NCwwLDAsMSwxMjAsMzJabTE2LDcyYTE2LDE2LDAsMCwxLTMyLDBWODMuMzEzNDhsNi45NDY3OC02Ljk0NjI5QTM2LjY5ODE2LDM2LjY5ODE2LDAsMCwwLDEzNiw4Ny45NTMxMlptLTM0Ljc3MTkxLDI1Ljg5MjA5YTMxLjkxNjEzLDMxLjkxNjEzLDAsMCwwLDM2LjcwNDQ3LjU5NzE3bDEuMjM3MTguNzQyNDNMMTIwLDE1NS4xOTMzNmwtMTkuODY2MjctMjQuODMyMjhaTTQ4Ljc3MywxNjYuOTc5NDlBNDAuMDM1MzgsNDAuMDM1MzgsMCwwLDEsNzAuOTYzODcsMTQyLjg2MjNsMTMuOTExNjItNS45NjE5MSwyOC44Nzc0NCwzNi4wOTY2OGE3Ljk5OTQzLDcuOTk5NDMsMCwwLDAsMTIuNDk0MTQsMEwxNTIuOTksMTM5LjU2ODM2YTM5LjcyNzc5LDM5LjcyNzc5LDAsMCwxLDE3Ljk2OTQ4LDI4LjYwODRsNS4xMDI1NCw0MC44MTU0M2E3Ljk4MjgxLDcuOTgyODEsMCwwLDAsLjUxMDI2LDEuOTc4NTFMMTg4LjE4MzU5LDI0MEgxODBsLTIwLTI2LjY2N1YyMDEuODA2NjRhNTAuODIzMzgsNTAuODIzMzgsMCwwLDAsMS45MzI2Mi0zNy4zMDc2MmwtMi4zNDMyNi03LjAyOTI5LTE1LjE3ODcyLDUuMDYwNTQsMi4zNDMyNyw3LjAyOTNhMzQuOTU1MTMsMzQuOTU1MTMsMCwwLDEtMS45MDkxOCwyNi44NjIzMUE3Ljk5OTM0LDcuOTk5MzQsMCwwLDAsMTQ0LDIwMHY0MEg4OFYyMDhhOC4wMDY0Myw4LjAwNjQzLDAsMCwwLS40MTA2NC0yLjUzMDI3bC04LTI0YTguMDAwMDksOC4wMDAwOSwwLDAsMC0xNS4wMTcwOS0uNDQwNDNsLTE2LDQwQTcuOTk3MjMsNy45OTcyMywwLDAsMCw0OCwyMjR2MTZIMzguMjQ2MDlsLTUuOTE5OTItMjMuNjgwNjZaTTMyLDM2OGEyNCwyNCwwLDAsMSw0OCwwdjU2SDMyWk00ODAsNDgwSDMyVjQ0MEg0ODBaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gym:Wae,Hall:Rae,"Home Theater":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSIxIC00NCA1MTEuOTk4OTkgNTExIiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggZD0ibTI4Mi41MTk1MzEgMzMzLjk4ODI4MWMtNC4xNzE4NzUgMC03LjU0Njg3NSAzLjM3ODkwNy03LjU0Njg3NSA3LjU0Njg3NSAwIDQuMTY3OTY5IDMuMzc1IDcuNTQ2ODc1IDcuNTQ2ODc1IDcuNTQ2ODc1aDExNC4zMzk4NDRjNy4wODIwMzEgMCAxMi44NDM3NS01Ljc2MTcxOSAxMi44NDM3NS0xMi44NDc2NTZ2LTE5MS45Mjk2ODdjMC03LjA4MjAzMi01Ljc2MTcxOS0xMi44NDc2NTctMTIuODQzNzUtMTIuODQ3NjU3aC0yODEuNzE4NzVjLTcuMDgyMDMxIDAtMTIuODQzNzUgNS43NjU2MjUtMTIuODQzNzUgMTIuODQ3NjU3djE5MS45Mjk2ODdjMCA3LjA4NTkzNyA1Ljc2MTcxOSAxMi44NDc2NTYgMTIuODQzNzUgMTIuODQ3NjU2aDEzNy4xOTE0MDZjNC4xNjc5NjkgMCA3LjU0Njg3NS0zLjM3ODkwNiA3LjU0Njg3NS03LjU0Njg3NSAwLTQuMTY3OTY4LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc1LTcuNTQ2ODc1aC0xMzQuOTQ1MzEydi0xODcuNDM3NWgyNzcuMjI2NTYydjE4Ny40Mzc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00OS4yNjE3MTkgODIuNzQyMTg4YzE1LjU4MjAzMSAwIDI4LjI2MTcxOS0xMi42Nzk2ODggMjguMjYxNzE5LTI4LjI1MzkwNyAwLTE1LjU4NTkzNy0xMi42Nzk2ODgtMjguMjYxNzE5LTI4LjI2MTcxOS0yOC4yNjE3MTktMTUuNTc4MTI1IDAtMjguMjUzOTA3IDEyLjY3NTc4Mi0yOC4yNTM5MDcgMjguMjYxNzE5IDAgMTUuNTc0MjE5IDEyLjY3NTc4MiAyOC4yNTM5MDcgMjguMjUzOTA3IDI4LjI1MzkwN3ptMC00MS40MjU3ODJjNy4yNjE3MTkgMCAxMy4xNjc5NjkgNS45MDYyNSAxMy4xNjc5NjkgMTMuMTcxODc1IDAgNy4yNTM5MDctNS45MDYyNSAxMy4xNjAxNTctMTMuMTY3OTY5IDEzLjE2MDE1Ny03LjI1MzkwNyAwLTEzLjE2MDE1Ny01LjkwNjI1LTEzLjE2MDE1Ny0xMy4xNjAxNTcgMC03LjI2NTYyNSA1LjkwNjI1LTEzLjE3MTg3NSAxMy4xNjAxNTctMTMuMTcxODc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxLjVjLTI3LjE2NDA2MiAwLTQ5LjI2OTUzMSAyMi4xMDU0NjktNDkuMjY5NTMxIDQ5LjI2OTUzMXY1Ni4zMDQ2ODhjLTUuNjUyMzQ0LTEuMzY3MTg4LTYuMDQyOTY5LS41MzUxNTctNTQuMzMyMDMxLS43NzczNDQtNC4xNjQwNjMgMC03LjU0Mjk2OSAzLjM4MjgxMy03LjU0Mjk2OSA3LjU0Njg3NXMzLjM3ODkwNiA3LjU0Njg3NSA3LjU0Mjk2OSA3LjU0Njg3NWg0Ny43MjI2NTZjNy43MzA0NjkgMCAxMy45MTQwNjMgNi4zMDQ2ODcgMTMuOTE0MDYzIDEzLjkxNDA2M3YyMTEuOTMzNTkzYzAgNy42NjQwNjMtNi4yNDYwOTQgMTMuOTE0MDYzLTEzLjkxNDA2MyAxMy45MTQwNjMtNTkuNDE3OTY5IDAtMjMxLjU1NDY4NyAwLTMwMS43MTg3NSAwLTcuNjY3OTY5IDAtMTMuOTE0MDYzLTYuMjUtMTMuOTE0MDYzLTEzLjkxNDA2MyAwLTEwLjc0NjA5MyAwLTIwNC41ODk4NDMgMC0yMTEuOTMzNTkzIDAtNS4yNzM0MzggMi45NTcwMzItOS44Nzg5MDcgNy4zMDQ2ODgtMTIuMjQ2MDk0IDUuODQzNzUtMy4xNzU3ODItNC4yNDIxODgtMS4wNDY4NzUgMjMwLjQyMTg3NS0xLjY2Nzk2OSA0LjE3NTc4MSAwIDcuNTQ2ODc1LTMuMzgyODEzIDcuNTQ2ODc1LTcuNTQ2ODc1cy0zLjM3MTA5NC03LjU0Njg3NS03LjU0Njg3NS03LjU0Njg3NWMtMjM2LjM1MTU2My4yNzM0MzctMjI0LjU1MDc4MS0uNjQ0NTMxLTIzMC40MjE4NzUuNzc3MzQ0di01Ni4zMDQ2ODhjMC0yNy4xNjQwNjItMjIuMTA1NDY5LTQ5LjI2OTUzMS00OS4yNjk1MzEtNDkuMjY5NTMxLTIyLjc2OTUzMSAwLTQyLjQ0OTIxOSAxNS40MzM1OTQtNDcuODYzMjgxIDM3LjUyNzM0NC0uOTg0Mzc2IDQuMDU0Njg3IDEuNSA4LjE0MDYyNSA1LjU0Mjk2OCA5LjEyNSA0LjA0Njg3NS45ODgyODEgOC4xMjg5MDYtMS40ODgyODIgOS4xMjUtNS41MzEyNSAzLjc0NjA5NC0xNS4zMjQyMTkgMTcuMzk4NDM4LTI2LjAzMTI1IDMzLjE5NTMxMy0yNi4wMzEyNSAxOC44NDM3NSAwIDM0LjE3NTc4MSAxNS4zMzU5MzcgMzQuMTc1NzgxIDM0LjE3OTY4N3Y2NS4zMTY0MDdjLTMuMTEzMjgxIDMuNTExNzE4LTUuMzkwNjI1IDcuNzczNDM3LTYuNTExNzE5IDEyLjQ4MDQ2OC0yLjY3MTg3NS0xMi44MjQyMTgtMTQuMDU4NTkzLTIyLjQ4ODI4MS0yNy42NjQwNjItMjIuNDg4MjgxLTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42Nzk2ODctMjguMjUzOTA3IDI4LjI1NzgxMyAwIDE1LjU3ODEyNCAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIxMDkzOCAyNi44NzEwOTMtMTkuNTMxMjV2NjEuMzk4NDM4Yy0zLjY4MzU5My0xMS4zMjAzMTMtMTQuMzM1OTM3LTE5LjUyNzM0NC0yNi44NzEwOTMtMTkuNTI3MzQ0LTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42NzU3ODEtMjguMjUzOTA3IDI4LjI1MzkwNiAwIDE1LjU4MjAzMSAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIwNzAzMSAyNi44NzEwOTMtMTkuNTMxMjV2NjEuNDAyMzQ0Yy0zLjY4MzU5My0xMS4zMjQyMTgtMTQuMzM1OTM3LTE5LjUzMTI1LTI2Ljg3MTA5My0xOS41MzEyNS0xNS41NzgxMjUgMC0yOC4yNTM5MDcgMTIuNjc1NzgyLTI4LjI1MzkwNyAyOC4yNTM5MDYgMCAxNS41ODIwMzIgMTIuNjc1NzgyIDI4LjI1NzgxMyAyOC4yNTM5MDcgMjguMjU3ODEzIDEyLjUzNTE1NiAwIDIzLjE4NzUtOC4yMDcwMzEgMjYuODcxMDkzLTE5LjUzMTI1djE3LjA4OTg0NGMtMjAuMTA1NDY4IDI1LjUzMTI1LTYxLjAzOTA2MiAxMS4xMjUtNjEuMDM5MDYyLTIxLjA5NzY1N3YtMjI1Ljg0Mzc1YzAtNC4xNzU3ODEtMy4zODI4MTItNy41NDY4NzQtNy41NDY4NzUtNy41NDY4NzQtNC4xNzU3ODEgMC03LjU0Njg3NSAzLjM3MTA5My03LjU0Njg3NSA3LjU0Njg3NHYyMjUuODQzNzVjMCAyNC42MDE1NjMgMTguMTIxMDk0IDQ1LjA1MDc4MiA0MS43MTg3NSA0OC42OTUzMTN2NjIuNTI3MzQ0aC0xOC45NjQ4NDRjLTQuMTY3OTY4IDAtNy41NDY4NzUgMy4zNzg5MDYtNy41NDY4NzUgNy41NDY4NzUgMCA0LjE2Nzk2OCAzLjM3ODkwNyA3LjU0Njg3NSA3LjU0Njg3NSA3LjU0Njg3NWg1My4wMTk1MzJjNC4xNjc5NjggMCA3LjU0Njg3NC0zLjM3ODkwNyA3LjU0Njg3NC03LjU0Njg3NSAwLTQuMTY3OTY5LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc0LTcuNTQ2ODc1aC0xOC45NjQ4NDR2LTYyLjUzMTI1YzcuMDQyOTY4LTEuMDg1OTM4IDEzLjU5NzY1Ni0zLjY2Nzk2OSAxOS4zMjQyMTgtNy40MTAxNTd2OS4xOTkyMTljMCAxNS45ODQzNzUgMTMuMDE5NTMyIDI5LjAwMzkwNyAyOS4wMDc4MTMgMjkuMDAzOTA3aDQ1LjgyMDMxM3YzNS44OTg0MzdjMCA2LjI4OTA2MyA1LjEwOTM3NCAxMS40MTAxNTYgMTEuMzk4NDM3IDExLjQxMDE1NmgyMS4xMjg5MDZjNi4yODkwNjMgMCAxMS4zOTg0MzgtNS4xMjEwOTMgMTEuMzk4NDM4LTExLjQxMDE1NnYtMzUuODk4NDM3aDEyMi4yMjY1NjJ2MzUuODk4NDM3YzAgNi4yODkwNjMgNS4xMDkzNzUgMTEuNDEwMTU2IDExLjM5ODQzOCAxMS40MTAxNTZoMjEuMTI4OTA2YzYuMjg5MDYzIDAgMTEuMzk4NDM3LTUuMTIxMDkzIDExLjM5ODQzNy0xMS40MTAxNTZ2LTM1Ljg5ODQzN2g0NS44MjAzMTNjMTUuOTg4MjgxIDAgMjkuMDA3ODEzLTEzLjAxOTUzMiAyOS4wMDc4MTMtMjkuMDAzOTA3di05LjE5OTIxOWM1LjcyNjU2MiAzLjc0MjE4OCAxMi4yODEyNSA2LjMyNDIxOSAxOS4zMjQyMTggNy40MTAxNTd2NjIuNTMxMjVoLTE4Ljk2NDg0NGMtNC4xNjc5NjggMC03LjU0Njg3NCAzLjM3ODkwNi03LjU0Njg3NCA3LjU0Njg3NSAwIDQuMTY3OTY4IDMuMzc4OTA2IDcuNTQ2ODc1IDcuNTQ2ODc0IDcuNTQ2ODc1aDUzLjAxOTUzMmM0LjE2Nzk2OCAwIDcuNTQ2ODc1LTMuMzc4OTA3IDcuNTQ2ODc1LTcuNTQ2ODc1IDAtNC4xNjc5NjktMy4zNzg5MDctNy41NDY4NzUtNy41NDY4NzUtNy41NDY4NzVoLTE4Ljk2NDg0NHYtNjIuNTI3MzQ0YzIzLjU5NzY1Ni0zLjY0NDUzMSA0MS43MTg3NS0yNC4wOTM3NSA0MS43MTg3NS00OC42OTUzMTN2LTI0NS45ODgyODFjMC0yNy4xNjQwNjItMjIuMDkzNzUtNDkuMjY5NTMxLTQ5LjI2MTcxOS00OS4yNjk1MzF6bS00MTMuNDc2NTYyIDE0NmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY0MDYyIDAtNy4yNTc4MTMgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY0MDYzLTEzLjE2NDA2MyA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjMgMCA3LjI1NzgxMi01LjkwNjI1IDEzLjE2NDA2Mi0xMy4xNjQwNjIgMTMuMTY0MDYyem0wIDc4Ljg1NTQ2OWMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0wIDc4Ljg1MTU2MmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0xMzAuNTM1MTU2IDEwMy4yNTM5MDdoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNjYuMTUyMzQ0IDBoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNTAuOTU3MDMxLTExMS43MDMxMjZjMCAzMi4yMzgyODItNDAuOTQxNDA2IDQ2LjYyMTA5NC02MS4wMzkwNjIgMjEuMDk3NjU3di0xNy4wODU5MzhjMy42ODM1OTMgMTEuMzIwMzEzIDE0LjMzNTkzNyAxOS41MjczNDQgMjYuODcxMDkzIDE5LjUyNzM0NCAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTMgMC0xNS41NzgxMjQtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMi0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTQ1MzFjMy42ODM1OTMgMTEuMzIwMzEyIDE0LjMzNTkzNyAxOS41MjczNDMgMjYuODcxMDkzIDE5LjUyNzM0MyAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTIgMC0xNS41NzgxMjUtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMS0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTg0MzhjMy42ODM1OTMgMTEuMzI0MjE5IDE0LjMzNTkzNyAxOS41MzEyNSAyNi44NzEwOTMgMTkuNTMxMjUgMTUuNTc4MTI1IDAgMjguMjUzOTA3LTEyLjY3NTc4MSAyOC4yNTM5MDctMjguMjU3ODEyIDAtMTUuNTc4MTI2LTEyLjY3NTc4Mi0yOC4yNTM5MDctMjguMjUzOTA3LTI4LjI1MzkwNy0xMy42MDU0NjkgMC0yNC45OTIxODcgOS42NjAxNTctMjcuNjY0MDYyIDIyLjQ4NDM3NS0xLjEyMTA5NC00LjcwNzAzMS0zLjM5ODQzOC04Ljk2ODc1LTYuNTExNzE5LTEyLjQ3NjU2MnYtNjUuMzIwMzEzYzAtMTguODQzNzUgMTUuMzMyMDMxLTM0LjE3OTY4NyAzNC4xNzk2ODgtMzQuMTc5Njg3IDE4Ljg0Mzc1IDAgMzQuMTY3OTY4IDE1LjMzNTkzNyAzNC4xNjc5NjggMzQuMTc5Njg3djI0NS45ODgyODF6bS00Ny4zMzIwMzEtNC43MTg3NWMwLTcuMjU3ODEyIDUuOTA2MjUtMTMuMTY0MDYyIDEzLjE2NDA2Mi0xMy4xNjQwNjIgNy4yNTc4MTMgMCAxMy4xNjQwNjMgNS45MDYyNSAxMy4xNjQwNjMgMTMuMTY0MDYyIDAgNy4yNjE3MTktNS45MDYyNSAxMy4xNjc5NjktMTMuMTY0MDYzIDEzLjE2Nzk2OS03LjI1NzgxMiAwLTEzLjE2NDA2Mi01LjkwNjI1LTEzLjE2NDA2Mi0xMy4xNjc5Njl6bTAtNzguODUxNTYyYzAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYyLTEzLjE2NDA2MiA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwNjI1IDEzLjE2NDA2MyAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjMgMTMuMTY3OTY5LTcuMjU3ODEyIDAtMTMuMTY0MDYyLTUuOTA2MjUtMTMuMTY0MDYyLTEzLjE2Nzk2OXptMC03OC44NTE1NjJjMC03LjI1NzgxMyA1LjkwNjI1LTEzLjE2NDA2MyAxMy4xNjQwNjItMTMuMTY0MDYzIDcuMjU3ODEzIDAgMTMuMTY0MDYzIDUuOTA2MjUgMTMuMTY0MDYzIDEzLjE2NDA2MyAwIDcuMjU3ODEyLTUuOTA2MjUgMTMuMTY0MDYyLTEzLjE2NDA2MyAxMy4xNjQwNjItNy4yNTc4MTIgMC0xMy4xNjQwNjItNS45MDYyNS0xMy4xNjQwNjItMTMuMTY0MDYyem0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxIDI2LjIyNjU2MmMtMTUuNTgyMDMxIDAtMjguMjU3ODEyIDEyLjY3NTc4Mi0yOC4yNTc4MTIgMjguMjU3ODEzIDAgMTUuNTc4MTI1IDEyLjY3NTc4MSAyOC4yNTM5MDYgMjguMjU3ODEyIDI4LjI1MzkwNiAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTM5MDYgMC0xNS41ODIwMzEtMTIuNjc1NzgyLTI4LjI1NzgxMy0yOC4yNTM5MDctMjguMjU3ODEzem0wIDQxLjQyMTg3NmMtNy4yNjE3MTkgMC0xMy4xNjc5NjktNS45MDYyNS0xMy4xNjc5NjktMTMuMTY0MDYzIDAtNy4yNjE3MTkgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY3OTY5LTEzLjE2NDA2MyA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwMjM0NCAxMy4xNjQwNjMgMTMuMTY0MDYzIDAgNy4yNTc4MTMtNS45MDYyNSAxMy4xNjQwNjMtMTMuMTY0MDYzIDEzLjE2NDA2M3ptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Kitchen:Jae,"Laundry Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgMmgtNThjLS41NTIgMC0xIC40NDgtMSAxdjU4YzAgLjU1Mi40NDggMSAxIDFoNThjLjU1MiAwIDEtLjQ0OCAxLTF2LTU4YzAtLjU1Mi0uNDQ4LTEtMS0xem0tMSA2aC00di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC02Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyaC0zYy0uNTUyIDAtMSAuNDQ4LTEgMXY5aC0ydi0xNGgxOHptLTEyLjE0MiAzMS0xLjY5Mi0xMWg5LjY2OWwtMS42OTIgMTF6bTEuMTQyLTEzYzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTguNzU5LjM0OWMtLjE5LS4yMjItLjQ2Ny0uMzQ5LS43NTktLjM0OWgtMmMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNGgtMmMtLjI5MiAwLS41NjkuMTI3LS43NTkuMzQ5cy0uMjc0LjUxNS0uMjI5LjgwM2wxLjgyMyAxMS44NDhoLTMuODM1di0xOWgxOHYxOWgtMy44MzVsMS44MjMtMTEuODQ4Yy4wNDUtLjI4OC0uMDM5LS41ODItLjIyOS0uODAzem0tNy43NTktMTcuMzQ5di0yaDR2MTFoLTR6bS0yIDloLTJ2LThoMnptOCAwdi04aDR2OHptLTE2LTE0djE0aC0ydi0xMGMwLS41NTItLjQ0OC0xLTEtMWgtNmMtLjU1MiAwLTEgLjQ0OC0xIDF2MTBoLTJ2LTdjMC0uMjY1LS4xMDUtLjUyLS4yOTMtLjcwN2wtMS43MDctMS43MDd2LTIuNTg2YzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyLjU4NmwtMS43MDcgMS43MDdjLS4xODguMTg3LS4yOTMuNDQyLS4yOTMuNzA3djdoLTJ2LTEwYzAtLjU1Mi0uNDQ4LTEtMS0xaC04Yy0uNTUyIDAtMSAuNDQ4LTEgMXYxMGgtMnYtMTR6bS00IDE0aC00di05aDR6bS0xMS43MDctOC4yOTMgMS43MDcgMS43MDd2Ni41ODZoLTZ2LTYuNTg2bDEuNzA3LTEuNzA3Yy4xODgtLjE4Ny4yOTMtLjQ0Mi4yOTMtLjcwN3YtMmgydjJjMCAuMjY1LjEwNS41Mi4yOTMuNzA3em0tMTAuMjkzIDguMjkzaC02di05aDZ6bS0xMCAyaDM2djQwaC0zNnptNDUgMjhoLTJ2LTFoMnptLTMgMmg0LjY0OWw0LjM1MSAzLjQ4djYuNTJoLTl6bTExIDEwdi03YzAtLjMwNC0uMTM4LS41OTEtLjM3NS0uNzgxbC01LTRjLS4xNzgtLjE0Mi0uMzk4LS4yMTktLjYyNS0uMjE5di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyYy0uNTUyIDAtMSAuNDQ4LTEgMXYxMWgtMnYtMTloMTh2MTl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDIyaC0zMGMtLjU1MiAwLTEgLjQ0OC0xIDF2MzRjMCAuNTUyLjQ0OCAxIDEgMWgzMGMuNTUyIDAgMS0uNDQ4IDEtMXYtMzRjMC0uNTUyLS40NDgtMS0xLTF6bS0xIDJ2NWgtMjh2LTV6bS0yOCAzMnYtMjVoMjh2MjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDMzYy02LjA2NSAwLTExIDQuOTM1LTExIDExczQuOTM1IDExIDExIDExIDExLTQuOTM1IDExLTExLTQuOTM1LTExLTExLTExem0wIDIwYy00Ljk2MiAwLTktNC4wMzgtOS05czQuMDM4LTkgOS05IDkgNC4wMzggOSA5LTQuMDM4IDktOSA5eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNi4xOTkgNDguMjg2IDEuMzk5IDEuNDI5Yy42NzctLjY2MyAxLjIyNi0xLjQzMiAxLjYzMS0yLjI4NmwtMS44MDctLjg1N2MtLjMwMy42MzktLjcxNCAxLjIxNi0xLjIyMyAxLjcxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjIgMzZ2MmMzLjMwOSAwIDYgMi42OTEgNiA2aDJjMC00LjQxMS0zLjU4OS04LTgtOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAgMjVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNCAyNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+","Living Area":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTQuNSAyNzcuNjY3aC01LjV2LTM2LjVjMC0xNS4xNjQtMTIuMzM2LTI3LjUtMjcuNS0yNy41aC0xMTBjLTcuODc1IDAtMTQuOTgyIDMuMzMyLTIwIDguNjU1LTUuMDE4LTUuMzIyLTEyLjEyNS04LjY1NS0yMC04LjY1NWgtMTEwYy03Ljg3NSAwLTE0Ljk4MiAzLjMzMi0yMCA4LjY1NS01LjAxOC01LjMyMi0xMi4xMjUtOC42NTUtMjAtOC42NTVoLTQwLjVjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoNDAuNWM2Ljg5MyAwIDEyLjUgNS42MDcgMTIuNSAxMi41djc3LjAxOGMtMy43NTMtMS45MjQtOC0zLjAxOC0xMi41LTMuMDE4aC0xMDEuNXYtMjBjMC05LjY0OS03Ljg1MS0xNy41LTE3LjUtMTcuNWgtMy41di0zNi41YzAtNi44OTMgNS42MDctMTIuNSAxMi41LTEyLjVoMzQuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMzQuNWMtMTUuMTY0IDAtMjcuNSAxMi4zMzYtMjcuNSAyNy41djM2LjVoLTYuNWMtOS42NDkgMC0xNy41IDcuODUxLTE3LjUgMTcuNXY0Mi41YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQyLjVjMC0xLjM3OCAxLjEyMi0yLjUgMi41LTIuNWgyNWMxLjM3OCAwIDIuNSAxLjEyMiAyLjUgMi41djE0MC41aC0yNy41Yy0xLjM3OCAwLTIuNS0xLjEyMi0yLjUtMi41di02MC41YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djYwLjVjMCA5LjY0OSA3Ljg1MSAxNy41IDE3LjUgMTcuNWgyNy41djE0LjY2N2MwIDYuODkzIDUuNjA3IDEyLjUgMTIuNSAxMi41aDI1YzYuODkzIDAgMTIuNS01LjYwNyAxMi41LTEyLjV2LTE0LjY2N2gzMjJ2MTQuNjY3YzAgNi44OTMgNS42MDcgMTIuNSAxMi41IDEyLjVoMjVjNi44OTMgMCAxMi41LTUuNjA3IDEyLjUtMTIuNXYtMTQuNjY3aDI3LjVjOS42NDkgMCAxNy41LTcuODUxIDE3LjUtMTcuNXYtMTM4YzAtOS42NS03Ljg1MS0xNy41LTE3LjUtMTcuNXptLTE0My00OWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXYzNi41aC00LjVjLTkuNjQ5IDAtMTcuNSA3Ljg1MS0xNy41IDE3LjV2MjBoLTEwMC41Yy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTI5MS41IDIwN3YtMTVoMzI2YzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC0zMjZ2LTE1LjVoMTAxLjVjNy44NzUgMCAxNC45ODItMy4zMzIgMjAtOC42NTUgNS4wMTggNS4zMjIgMTIuMTI1IDguNjU1IDIwIDguNjU1aDExMGM3Ljg3NSAwIDE0Ljk4Mi0zLjMzMiAyMC04LjY1NSA1LjAxOCA1LjMyMiAxMi4xMjUgOC42NTUgMjAgOC42NTVoMTAwLjV2MTUuNWgtMzFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoMzF2MTV6bTM5Mi02MC41aC0xMDAuNWMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMDAuNXptLTEyOC0xMi41YzAgNi44OTMtNS42MDcgMTIuNS0xMi41IDEyLjVoLTExMGMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXptLTEyMi41LTEzNGgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXY3Ny4wMThjLTMuNzUzLTEuOTI0LTgtMy4wMTgtMTIuNS0zLjAxOGgtMTEwYy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTQwIDEwMS41YzYuODkzIDAgMTIuNSA1LjYwNyAxMi41IDEyLjV2MjBjMCA2Ljg5My01LjYwNyAxMi41LTEyLjUgMTIuNWgtMTAxLjV2LTQ1em0tODEuNSAxMzIuNjY2aC0yMHYtMTIuMTY3aDIwem0zNTIgMHYtMTIuMTY3aDIwdjEyLjE2N3ptNjUtMjkuNjY2YzAgMS4zNzgtMS4xMjIgMi41LTIuNSAyLjVoLTI3LjV2LTE0MC41YzAtMS4zNzggMS4xMjItMi41IDIuNS0yLjVoMjVjMS4zNzggMCAyLjUgMS4xMjIgMi41IDIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuNDkgMTMwLjE2N2gxMTIuMDJjNi44ODcgMCAxMi40OS01LjYwMyAxMi40OS0xMi40OXYtMTYuNTQ5YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djE0LjAzOWgtMTA3di02NmgxMDd2MTYuOTYxYzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTE5LjQ3MmMwLTYuODg3LTUuNjAzLTEyLjQ5LTEyLjQ5LTEyLjQ5aC0xMTIuMDJjLTYuODg3IDAtMTIuNDkgNS42MDMtMTIuNDkgMTIuNDl2NzEuMDIxYzAgNi44ODYgNS42MDMgMTIuNDkgMTIuNDkgMTIuNDl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzMS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4MS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMC4yMzIgMjQ3LjIxNWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjhjNy4zNDkgNC44MjggMTMuNTIyIDExLjAwMiAxOC4zNTEgMTguMzUxIDEuMzg3IDIuMTEgMy43NDMgMy4zODEgNi4yNjggMy4zODFzNC44ODEtMS4yNzEgNi4yNjgtMy4zODFjNC44MjgtNy4zNDkgMTEuMDAyLTEzLjUyMiAxOC4zNTEtMTguMzUxIDIuMTEtMS4zODcgMy4zODEtMy43NDMgMy4zODEtNi4yNjhzLTEuMjcxLTQuODgxLTMuMzgxLTYuMjY4Yy03LjM0OS00LjgyOC0xMy41MjItMTEuMDAyLTE4LjM1MS0xOC4zNTEtMS4zODctMi4xMS0zLjc0My0zLjM4MS02LjI2OC0zLjM4MXMtNC44ODEgMS4yNy02LjI2OCAzLjM4MXptMTQuMzQ0IDI0LjYxOGMtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTQgNS41ODMtNS4xODkgOC4wNzYtOC4wNzYgMi40OTQgMi44ODggNS4xODkgNS41ODMgOC4wNzYgOC4wNzZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Living Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzMsMzMxLjkxNlYyNzMuNjQ4QTM5LjcxLDM5LjcxLDAsMCwwLDQzMy4zMjgsMjM0SDM3NlYxNzBoNDQuMDA5YTYuMjg5LDYuMjg5LDAsMCwwLDUuNzQ3LTguMDJMNDA0LjgzMSw5Mi4yNDhBNS45NzYsNS45NzYsMCwwLDAsMzk5LjA4NCw4OEgzNDAuOTE2YTUuOTMyLDUuOTMyLDAsMCwwLTUuNzQ3LDQuMkwzMTQuMjQ0LDE2MS45MmE2LjM3Miw2LjM3MiwwLDAsMCwuOTM0LDUuNDgzLDYuMTc2LDYuMTc2LDAsMCwwLDQuODEzLDIuNkgzNjR2NjRIODguNjc1QTM5LjcxMywzOS43MTMsMCwwLDAsNDksMjczLjY0OHY1OC4yNjhhMzkuNDE3LDM5LjQxNywwLDAsMC0zNywzOS41NTZWNDYzLjFhNS45MTUsNS45MTUsMCwwLDAsNiw1LjlIMzV2MzBhNi4yNDYsNi4yNDYsMCwwLDAsNi4yOCw2aDY3Ljg2N0E1Ljg3Nyw1Ljg3NywwLDAsMCwxMTUsNDk5VjQ2OUg0MDd2MzBhNS44NzksNS44NzksMCwwLDAsNS44NTUsNmg2Ny44NjlBNi4yNDMsNi4yNDMsMCwwLDAsNDg3LDQ5OVY0NjloMTdhNS45MTMsNS45MTMsMCwwLDAsNi01LjlWMzcxLjQ3MkEzOS40MTcsMzkuNDE3LDAsMCwwLDQ3MywzMzEuOTE2Wk0zNDUuMzgxLDEwMGg0OS4yMzhsMTcuMzI2LDU4aC04My44OVpNODguNjc1LDI0Nkg0MzMuMzI4QTI3LjcsMjcuNywwLDAsMSw0NjEsMjczLjY0OHY1OS4zYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAsMzguNTI2VjM5MEg5MVYzNzEuNDcyYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAtMzguNTI2di01OS4zQTI3LjcsMjcuNywwLDAsMSw4OC42NzUsMjQ2Wk0xMDMsNDkzSDQ3VjQ2OWg1NlptMzcyLDBINDE5VjQ2OWg1NlptMjMtMzZIMjRWMzcxLjQ3MmEyNy41LDI3LjUsMCwxLDEsNTUsMFYzOTUuOGE2LjQ0OCw2LjQ0OCwwLDAsMCw2LjMxLDYuMkg0MzYuNjkzQTYuNDQ1LDYuNDQ1LDAsMCwwLDQ0MywzOTUuOFYzNzEuNDcyYTI3LjUsMjcuNSwwLDEsMSw1NSwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTQsMjAzLjIzOFY1Ni42MjZBNS42NCw1LjY0LDAsMCwwLDIwOC4wNjIsNTFoLTUzLjkyTDExMi4yNzIsOC45NDRhNS43MzcsNS43MzcsMCwwLDAtOC40ODQuMDQ3TDYxLjkxOSw1MUg4YTUuNjkzLDUuNjkzLDAsMCwwLTYsNS42MjZWMjAzLjIzOEE1LjgsNS44LDAsMCwwLDgsMjA5SDIwOC4wNjJBNS43NDksNS43NDksMCwwLDAsMjE0LDIwMy4yMzhaTTE3NCwxMzEuOGwtNDIuMjMsMTkuNjg2TDgwLjM2NSwxMTYuNDQzYTYuMjQ1LDYuMjQ1LDAsMCwwLTcuMTMxLjE2M0w0MSwxNDAuNjg2Vjg3SDE3NFpNNDEsMTU1LjY4OWwzNi4wNjItMjYuOTExLDUwLjg4NSwzNC41NDJhNi4xNyw2LjE3LDAsMCwwLDMuNDI3LDEuMDM5LDUuMTY5LDUuMTY5LDAsMCwwLDIuMzMyLS41NTdMMTc0LDE0NS4wMjVWMTczSDQxWk0xNzguMTU1LDc1SDM3LjY4OUwyMy4yNDMsNjNIMTkyLjVaTTI5LDg0LjA5MVYxNzYuMkwxNCwxODkuOTI4VjcwLjQ3M1pNMzcuNywxODVIMTc4LjE0bDEzLjc2NywxMkgyMy44MzVaTTE4NiwxNzYuMjFWODQuMDc4bDE2LTEzLjlWMTkwLjIyNlpNMTA4LjAzLDIxLjg1OSwxMzcuMTcyLDUxSDc4Ljg4OVoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4LjM3NCwxMzMuMmEyMC4yMTQsMjAuMjE0LDAsMSwwLTIwLjIxNC0yMC4yMTRBMjAuMjM2LDIwLjIzNiwwLDAsMCwxMjguMzc0LDEzMy4yWm0wLTI4LjQyN2E4LjIxNCw4LjIxNCwwLDEsMS04LjIxNCw4LjIxM0E4LjIyMyw4LjIyMywwLDAsMSwxMjguMzc0LDEwNC43NjhaIi8+CiAgICAgICAgPHBhdGggZD0iTTM0OC43ODcsMzA4LjQ0YTIyLjA4NywyMi4wODcsMCwwLDAsMCwyMS42NjJsLTguNDc5LDguNDc5YTYsNiwwLDEsMCw4LjQ4NCw4LjQ4NWw4LjQ3OS04LjQ4YTIyLjA5LDIyLjA5LDAsMCwwLDIxLjY2MiwwbDguNDc4LDguNDc5YTYsNiwwLDAsMCw4LjQ4Ni04LjQ4NWwtOC40ODctOC40ODhhMjIuMjExLDIyLjIxMSwwLDAsMCwwLTIxLjY0NGw4LjQ4Ny04LjQ4OGE2LDYsMCwwLDAtOC40ODYtOC40ODVsLTguNDc4LDguNDc5YTIyLjA5MiwyMi4wOTIsMCwwLDAtMjEuNjYxLDBsLTguNDgtOC40NzlhNiw2LDAsMSwwLTguNDg0LDguNDg1Wm0xOS4zMTYuNjc4YTEwLjE1NiwxMC4xNTYsMCwxLDEtNy4xNzksMi45NzRBMTAuMDgzLDEwLjA4MywwLDAsMSwzNjguMSwzMDkuMTE4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMzguNzg3LDMwOC40NGEyMi4wODcsMjIuMDg3LDAsMCwwLDAsMjEuNjYybC04LjQ3OSw4LjQ3OWE2LDYsMCwxLDAsOC40ODQsOC40ODVsOC40NzktOC40OGEyMi4wOSwyMi4wOSwwLDAsMCwyMS42NjIsMGw4LjQ3OCw4LjQ3OWE2LDYsMCwwLDAsOC40ODYtOC40ODVsLTguNDg3LTguNDg4YTIyLjIxMSwyMi4yMTEsMCwwLDAsMC0yMS42NDRsOC40ODctOC40ODhhNiw2LDAsMCwwLTguNDg2LTguNDg1bC04LjQ3OCw4LjQ3OWEyMi4wOTIsMjIuMDkyLDAsMCwwLTIxLjY2MSwwbC04LjQ4LTguNDc5YTYsNiwwLDEsMC04LjQ4NCw4LjQ4NVptMTkuMzE2LjY3OGExMC4xNTYsMTAuMTU2LDAsMSwxLTcuMTc5LDIuOTc0QTEwLjA4MywxMC4wODMsMCwwLDEsMjU4LjEsMzA5LjExOFoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4Ljc4NywzMDguNDRhMjIuMDg3LDIyLjA4NywwLDAsMCwwLDIxLjY2MmwtOC40NzksOC40NzlhNiw2LDAsMSwwLDguNDg0LDguNDg1bDguNDc5LTguNDhhMjIuMDksMjIuMDksMCwwLDAsMjEuNjYyLDBsOC40NzgsOC40NzlhNiw2LDAsMCwwLDguNDg2LTguNDg1bC04LjQ4Ny04LjQ4OGEyMi4yMTEsMjIuMjExLDAsMCwwLDAtMjEuNjQ0bDguNDg3LTguNDg4YTYsNiwwLDAsMC04LjQ4Ni04LjQ4NWwtOC40NzgsOC40NzlhMjIuMDkyLDIyLjA5MiwwLDAsMC0yMS42NjEsMGwtOC40OC04LjQ3OWE2LDYsMCwxLDAtOC40ODQsOC40ODVabTE5LjMxNi42NzhhMTAuMTU2LDEwLjE1NiwwLDEsMS03LjE3OSwyLjk3NEExMC4wODMsMTAuMDgzLDAsMCwxLDE0OC4xLDMwOS4xMThaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=","Locker Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDYwIDYwIiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMjMgNGgtMTVjLTIuMjA5MTM5IDAtNCAxLjc5MDg2MS00IDR2MzRjMCAyLjIwOTEzOSAxLjc5MDg2MSA0IDQgNGg2Yy41NTIyODQ3IDAgMS0uNDQ3NzE1MyAxLTFzLS40NDc3MTUzLTEtMS0xaC02Yy0xLjEwNDU2OTUgMC0yLS44OTU0MzA1LTItMnYtMzRjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYxMi4wNWMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyLjA1YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDEyaDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDE2aDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxIDE5YzAtLjU1MjI4NDctLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDFoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im05IDM1Yy0uNTUyMjg0NzUgMC0xIC40NDc3MTUzLTEgMXY1YzAgLjU1MjI4NDcuNDQ3NzE1MjUgMSAxIDFoM2MuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtMnYtNGMwLS41NTIyODQ3LS40NDc3MTUyNS0xLTEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMGgtMTVjLTIuOTEyMjE0Mi4wMDE4MDY5MS01LjU5MzQwMDggMS41ODYwMDUxOC03IDQuMTM2LTEuNDA2NTk5Mi0yLjU0OTk5NDgyLTQuMDg3Nzg1OC00LjEzNDE5MzA5LTctNC4xMzZoLTE1Yy00LjQxNjIyMTkyLjAwNDk1OTg4LTcuOTk1MDQwMTIgMy41ODM3NzgwOC04IDh2MzRjLjAwNDk1OTg4IDQuNDE2MjIxOSAzLjU4Mzc3ODA4IDcuOTk1MDQwMSA4IDhoNmMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtNmMtMy4zMTIzMzc1Ny0uMDAzMzA3NC01Ljk5NjY5MjYyLTIuNjg3NjYyNC02LTZ2LTM0Yy4wMDMzMDczOC0zLjMxMjMzNzU3IDIuNjg3NjYyNDMtNS45OTY2OTI2MiA2LTZoMTVjMy4zMTIzMzc2LjAwMzMwNzM4IDUuOTk2NjkyNiAyLjY4NzY2MjQzIDYgNnYxMmMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyYy4wMDMzMDc0LTMuMzEyMzM3NTcgMi42ODc2NjI0LTUuOTk2NjkyNjIgNi02aDE1YzMuMzEyMzM3Ni4wMDMzMDczOCA1Ljk5NjY5MjYgMi42ODc2NjI0MyA2IDZ2MzRjLS4wMDMzMDc0IDMuMzEyMzM3Ni0yLjY4NzY2MjQgNS45OTY2OTI2LTYgNmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMWg2YzQuNDE2MjIxOS0uMDA0OTU5OSA3Ljk5NTA0MDEtMy41ODM3NzgxIDgtOHYtMzRjLS4wMDQ5NTk5LTQuNDE2MjIxOTItMy41ODM3NzgxLTcuOTk1MDQwMTItOC04eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NiA0Nmg2YzIuMjA5MTM5IDAgNC0xLjc5MDg2MSA0LTR2LTM0YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTRoLTE1Yy0yLjIwOTEzOSAwLTQgMS43OTA4NjEtNCA0djEyLjA1YzAgLjU1MjI4NDcuNDQ3NzE1MyAxIDEgMXMxLS40NDc3MTUzIDEtMXYtMTIuMDVjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYzNGMwIDEuMTA0NTY5NS0uODk1NDMwNSAyLTIgMmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTJoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTZoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMjBoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDkgMjd2M2MwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTNjMC0uNTUyMjg0Ny0uNDQ3NzE1My0xLTEtMXMtMSAuNDQ3NzE1My0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3IDIzYy0zLjg2NDE2NTcuMDA0NDA4Ni02Ljk5NTU5MTQgMy4xMzU4MzQzLTcgN3Y2Yy0xLjY1Njg1NDIgMC0zIDEuMzQzMTQ1OC0zIDN2MThjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzaDIwYzEuNjU2ODU0MiAwIDMtMS4zNDMxNDU4IDMtM3YtMThjMC0xLjY1Njg1NDItMS4zNDMxNDU4LTMtMy0zdi02Yy0uMDA0NDA4Ni0zLjg2NDE2NTctMy4xMzU4MzQzLTYuOTk1NTkxNC03LTd6bTE0IDE2djE4YzAgLjU1MjI4NDctLjQ0NzcxNTMgMS0xIDFoLTIwYy0uNTUyMjg0NyAwLTEtLjQ0NzcxNTMtMS0xdi0xOGMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoMjBjLjU1MjI4NDcgMCAxIC40NDc3MTUzIDEgMXptLTctM2gtOHYtNmMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoNmMuNTUyMjg0NyAwIDEgLjQ0NzcxNTMgMSAxem00LTZ2NmgtMnYtNmMwLTEuNjU2ODU0Mi0xLjM0MzE0NTgtMy0zLTNoLTZjLTEuNjU2ODU0MiAwLTMgMS4zNDMxNDU4LTMgM3Y2aC0ydi02Yy4wMDMzMDYxLTIuNzYwMDUzMiAyLjIzOTk0NjgtNC45OTY2OTM5IDUtNWg2YzIuNzYwMDUzMi4wMDMzMDYxIDQuOTk2NjkzOSAyLjIzOTk0NjggNSA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMS4yMTMgNDEuMTQ0Yy0xLjUwNDE3Mi0uMzY5MzcyNy0zLjA5NDY0MjYtLjAyNTYwNjgtNC4zMTIuOTMyLTEuMjE3ODgzNC45NjE4MTM0LTEuOTIwMTI3NSAyLjQzNDYwODktMS45MDA3NDAzIDMuOTg2MzY1Ny4wMTkzODcxIDEuNTUxNzU2OC43NTgyMDc2IDMuMDA2NTQ4MSAxLjk5OTc0MDMgMy45Mzc2MzQzdjNjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzczMtMS4zNDMxNDU4IDMtM3YtM2MxLjU0NDUxMDctMS4xNTY5NTQ0IDIuMjg1MzQ5Mi0zLjA5OTQ1NTcgMS45MDM1MTkxLTQuOTkxMDg1Mi0uMzgxODMwMS0xLjg5MTYyOTYtMS44MTgxNTg3LTMuMzk0NjY0My0zLjY5MDUxOTEtMy44NjE5MTQ4em0uNTg3IDcuMjU2Yy0uNDk3MTQ3OS4zNTc2MDY2LS43OTQyNDAxLjkzMDYyMzItLjggMS41NDN2My4wNTdjMCAuNTUyMjg0Ny0uNDQ3NzE1MyAxLTEgMXMtMS0uNDQ3NzE1My0xLTF2LTMuMDgxYy0uMDA1NzA4Mi0uNjAyMDUyMi0uMjk5NDI1OS0xLjE2NDk0OTItLjc5LTEuNTE0LTEuMDM1MDU1My0uNzcxNzg3Mi0xLjQ2MDIxNjQtMi4xMTkyNTA3LTEuMDU1NTM2NC0zLjM0NTMxMzFzMS41NDg0MjEtMi4wNTU2ODY3IDIuODM5NTM2NC0yLjA1OTY4NjljLjI1NTAzMDkuMDAwNTA4NS41MDkxMTQ0LjAzMTA1MjIuNzU3LjA5MSAxLjA1NTg2OC4yNjMyNDYxIDEuODgyOTA3IDEuMDgzMzc3MiAyLjE1NSAyLjEzNy4zMTMzNzQ2IDEuMTgzOTY5NS0uMTI0NDE2NSAyLjQzOTU1MTItMS4xMDYgMy4xNzJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nursery:Bae,Office:Fae,Outdoors:Gae,Playroom:Hae,Pool:Vae,"Rear Wall":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTAzLjQ2Nyw4LjUzM0gzODRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM3YxMTkuNDY3VjI1NnY1MS4yaC02OS43MzVjMC45NDgtMi42NzEsMS40NjgtNS41NDIsMS40NjgtOC41MzMKCQkJCWMwLTE0LjExNC0xMS40ODYtMjUuNi0yNS42LTI1LjZoLTE3LjA2N1YyNTZoODUuMzMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxMTAuOTMzYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzMKCQkJCUgxNjIuMTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDg1LjMzM3YxNy4wNjdIMjMwLjQKCQkJCWMtMTQuMTE0LDAtMjUuNiwxMS40ODYtMjUuNiwyNS42YzAsMi45OTEsMC41MjEsNS44NjIsMS40NjgsOC41MzNoLTY5LjczNVYyNTZWMTM2LjUzM1YxNy4wNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzMwoJCQkJSDguNTMzQzMuODIzLDguNTMzLDAsMTIuMzQ4LDAsMTcuMDY3djExOS40NjdWMjU2djExOS40Njd2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDEyOGgyNTZoMTE5LjQ2NwoJCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YzNzUuNDY3VjI1NlYxMzYuNTMzVjE3LjA2N0M1MTIsMTIuMzQ4LDUwOC4xNzcsOC41MzMsNTAzLjQ2Nyw4LjUzM3ogTTE3MC42NjcsMTUzLjZoMTcwLjY2NwoJCQkJdjUxLjJIMTcwLjY2N1YxNTMuNnogTTM0MS4zMzMsMTE5LjQ2N3YxNy4wNjdIMTcwLjY2N3YtMTcuMDY3SDM0MS4zMzN6IE0xNzAuNjY3LDIyMS44NjdoMTcwLjY2N3YxNy4wNjdIMTcwLjY2N1YyMjEuODY3egoJCQkJIE0zNzUuNDY3LDQ4Ni40SDI2NC41MzN2LTkzLjg2N2g1MS4yaDU5LjczM1Y0ODYuNHogTTMwNy4yLDM3NS40NjdIMjA0LjhWMzU4LjRoMTAyLjRWMzc1LjQ2N3ogTTQ5NC45MzMsMjQ3LjQ2N2gtMTcuMDY3VjE3OS4yCgkJCQljMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtMjUuNmgtMjUuNmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjY4LjI2N2gtMTcuMDY3di0xMDIuNGgxMDIuNFYyNDcuNDY3egoJCQkJIE00MjYuNjY3LDI0Ny40Njd2LTU5LjczM2g4LjUzM3Y1OS43MzNINDI2LjY2N3ogTTQ1Mi4yNjcsMTg3LjczM2g4LjUzM3Y1OS43MzNoLTguNTMzVjE4Ny43MzN6IE0zOTIuNTMzLDMxNS43MzN2LTUxLjJoMjUuNgoJCQkJaDI1LjZoMjUuNmgyNS42djEwMi40aC0xMDIuNFYzMTUuNzMzeiBNMzkyLjUzMywyNS42aDEwMi40VjEyOGgtMTAyLjRWMjUuNnogTTIyMS44NjcsMjk4LjY2N2MwLTQuNzEsMy44MzEtOC41MzMsOC41MzMtOC41MzMKCQkJCWg1MS4yYzQuNzAyLDAsOC41MzMsMy44MjMsOC41MzMsOC41MzNzLTMuODMxLDguNTMzLTguNTMzLDguNTMzaC01MS4yQzIyNS42OTgsMzA3LjIsMjIxLjg2NywzMDMuMzc3LDIyMS44NjcsMjk4LjY2N3oKCQkJCSBNMjMwLjQsMzI0LjI2N2g1MS4yaDkzLjg2N3Y1MS4yaC01MS4yVjM1OC40YzAtOS40MTItNy42NTQtMTcuMDY3LTE3LjA2Ny0xNy4wNjdIMjA0LjhjLTkuNDEyLDAtMTcuMDY3LDcuNjU0LTE3LjA2NywxNy4wNjcKCQkJCXYxNy4wNjdoLTUxLjJ2LTUxLjJIMjMwLjR6IE01MS4yLDMzMi44aDM0LjEzM3Y4LjUzM0g1MS4yVjMzMi44eiBNODUuMzMzLDMxNS43MzNINTEuMlYzMDcuMmgzNC4xMzNWMzE1LjczM3ogTTUxLjIsMzU4LjQKCQkJCWgzNC4xMzN2OC41MzNINTEuMlYzNTguNHogTTEwMi40LDM0OS44Njd2LTI1LjZ2LTI1LjZjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzCgkJCQl2MjUuNnYyNS42djE3LjA2N0gxNy4wNjd2LTEwMi40aDEwMi40djUxLjJ2NTEuMkgxMDIuNFYzNDkuODY3eiBNNTkuNzMzLDExMC45MzNINzYuOFYxMjhINTkuNzMzVjExMC45MzN6IE01MS4yLDE0NS4wNjdoMzQuMTMzCgkJCQloMzQuMTMzdjEwMi40aC0xMDIuNHYtMTAyLjRINTEuMnogTTE3LjA2NywyNS42aDEwMi40VjEyOGgtMjUuNnYtMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzNoLTguNTMzSDUxLjJoLTguNTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1YxMjgKCQkJCWgtMjUuNlYyNS42eiBNMTcuMDY3LDM4NGgyNS42aDUxLjJoMjUuNnYxMDIuNGgtMTAyLjRWMzg0eiBNMTM2LjUzMywzOTIuNTMzaDU5LjczM2g1MS4yVjQ4Ni40SDEzNi41MzNWMzkyLjUzM3ogTTQ5NC45MzMsNDg2LjQKCQkJCWgtMTcuMDY3di02OC4yNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDg2LjRoLTguNTMzdi02OC4yNjcKCQkJCWMwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjgxNC04LjUzMyw4LjUzM1Y0ODYuNGgtOC41MzN2LTY4LjI2N2MwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzCgkJCQlzLTguNTMzLDMuODE0LTguNTMzLDguNTMzVjQ4Ni40aC0xNy4wNjdWMzg0aDEwMi40VjQ4Ni40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjEuODY3LDQwOS42SDIwNC44Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNoOC41MzN2OC41MzMKCQkJCWMwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM3YtMTcuMDY3QzIzMC40LDQxMy40MTQsMjI2LjU3Nyw0MDkuNiwyMjEuODY3LDQwOS42eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDcuMiw0MDkuNmgtMTcuMDY3Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDM1LjJjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJdi04LjUzM2g4LjUzM2M0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNTMzExLjkxLDQwOS42LDMwNy4yLDQwOS42eiIvPgogICAgPC9nPgo8L3N2Zz4K","Second Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5OS42NjgsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTVjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzMwNi45NTUsMjM0LjgzNSwzMDMuNjkzLDIzMS41NzIsMjk5LjY2OCwyMzEuNTcyeiBNMjgxLjc1OCwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQxMi41NzIsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM3OS0xMC4zOGgtNTkuMzU2Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxOS44NTksMjM0LjgzNSw0MTYuNTk3LDIzMS41NzIsNDEyLjU3MiwyMzEuNTcyeiBNMzk0LjY2MSwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgZD0iTTE4Mi44MTMsNDEzLjgzM2gtMC41Mjh2LTYwLjA0NWMwLTUuNTY2LTQuNTI5LTEwLjA5NS0xMC4wOTUtMTAuMDk1aC01My44ODZjLTUuNTY2LDAtMTAuMDk1LDQuNTI5LTEwLjA5NSwxMC4wOTV2NjAuMDQ1CgkJCWgtMC41MjhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNSwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g3LjgxNGg1OS41MDRoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkwLjEsNDE3LjA5NSwxODYuODM4LDQxMy44MzMsMTgyLjgxMyw0MTMuODMzeiBNMTY3LjcxMiw0MTMuODMzaC00NC45MzF2LTU1LjU2N2g0NC45MzFWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNNDA0LjMxNCw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTYsNC41MjktMTAuMDk2LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0SDM5Ni41aDcuODE0YzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxMS42MDEsNDE3LjA5NSw0MDguMzM5LDQxMy44MzMsNDA0LjMxNCw0MTMuODMzeiBNMzg5LjIxMyw0MTMuODMzaC00NC45MzJ2LTU1LjU2N2g0NC45MzJWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNMjc2LjU0NSw0MDUuMDg5Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3djEyLjYzYzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODcKCQkJYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODd2LTEyLjYzQzI4My44MzIsNDA4LjM1MiwyODAuNTcsNDA1LjA4OSwyNzYuNTQ1LDQwNS4wODl6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Shed:Zae,"Sleeping Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDU2LDIyNGMtMTQuMTMzLDAtMjQsNi4zMDEtMjQsMTUuMzJ2MjcuNTA1QzQxOS4zMzMsMjQxLjc5MywzOTkuODUsMjI0LDM3NiwyMjRIMTUyYy00LjQxNy0wLjAwMS03Ljk5OSwzLjU3OS04LDcuOTk2CgkJCWMwLDAuMDAxLDAsMC4wMDMsMCwwLjAwNHY0OC4wNjdjMC4wNDUtMTMuMDUyLTUuMjAxLTI2LjA3NS0xNS41ODYtMzUuNTgzYy0xOS41NTItMTcuOTAyLTQ5LjkxNS0xNi41NjQtNjcuODE2LDIuOTg5CgkJCWMtMTYuNzY0LDE4LjMwOS0xNi44MDEsNDYuMzgtMC4wODYsNjQuNzM0Yy00LjYxMiwwLjUwOC04Ljk2OCwyLjM4LTEyLjUxMiw1LjM3NVYxMTUuMTk5QzQ4LDEwNC40MzQsMzcuNDYxLDk2LDI0LDk2CgkJCXMtMjQsOC40MzQtMjQsMTkuMTk5djM0NS42MDJDMCw0NzEuNTY2LDEwLjUzOSw0ODAsMjQsNDgwczI0LTguNDM0LDI0LTE5LjE5OVY0MDhoMzg0djU2LjY4YzAsOS4wMTksOS44NjcsMTUuMzIsMjQsMTUuMzIKCQkJczI0LTYuMzAxLDI0LTE1LjMyVjIzOS4zMkM0ODAsMjMwLjMwMSw0NzAuMTMzLDIyNCw0NTYsMjI0eiBNMzIsNDYwLjgwMWMtMC4wODYsMC42NTYtMi43NzMsMy4xOTktOCwzLjE5OQoJCQljLTUuMjUsMC03LjkyMi0yLjU0My04LTMuMTk5VjExNS4xOTljMC4wNzgtMC42NTYsMi43NS0zLjE5OSw4LTMuMTk5YzUuMjI3LDAsNy45MTQsMi41NDMsOCwzLjE5OVY0NjAuODAxeiBNMTYwLDI0MGgyMTYKCQkJYzMwLjE3MiwwLDUzLjE3Miw0NC45MjYsNTUuNzU4LDg4SDE2MFYyNDB6IE0xNDQsMjgwLjA4M3YzOC41NmMtMy40NTItMy4zNTMtNy44NDgtNS41NjYtMTIuNTk3LTYuMzQyCgkJCUMxMzkuNzkzLDMwMy4xMzcsMTQzLjk1NiwyOTEuNiwxNDQsMjgwLjA4M3ogTTk2LDI0OGMxNy42NzMsMCwzMiwxNC4zMjcsMzIsMzJjMCwxNy42NzMtMTQuMzI3LDMyLTMyLDMycy0zMi0xNC4zMjctMzItMzIKCQkJQzY0LjAxOSwyNjIuMzM1LDc4LjMzNSwyNDguMDE5LDk2LDI0OHogTTQzMiwzOTJINDh2LTQ4LjAyM2M0LjE2My0wLjMyOCw3LjM3NC0zLjgwMSw3LjM3NS03Ljk3NwoJCQljLTAuMDc3LTQuMzMxLDMuMzY0LTcuOTA5LDcuNjk1LThoNjQuNjFjNC4zMzEsMC4wOTEsNy43NzIsMy42NjksNy42OTUsOGMtMC4wMDEsNC40MTcsMy41NzksNy45OTksNy45OTYsOAoJCQljMC4wMDEsMCwwLjAwMywwLDAuMDA0LDBINDMyVjM5MnogTTQ2NCw0NjIuNTk0Yy01LjE2OSwxLjg3NS0xMC44MzEsMS44NzUtMTYsMFYyNDEuNDA2YzUuMTY5LTEuODc1LDEwLjgzMS0xLjg3NSwxNiwwVjQ2Mi41OTR6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTEzNy4wNzgsMTc2bDI5LjA3LTM0Ljg3OWMxLjk4Ni0yLjM4NiwyLjQxMy01LjcwNSwxLjA5NC04LjUxNmMtMS4zMTYtMi44MS00LjEzOS00LjYwNS03LjI0Mi00LjYwNWgtNDh2MTZoMzAuOTIyCgkJCWwtMjkuMDcsMzQuODc5Yy0yLjgyNywzLjM5OC0yLjM2NCw4LjQ0NCwxLjAzNCwxMS4yN2MxLjQzNywxLjE5NSwzLjI0NiwxLjg1LDUuMTE0LDEuODUxaDQ4di0xNkgxMzcuMDc4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjQuMzU5LDEzNmw0NS45NTMtNTkuMDljMS44NzctMi40MTEsMi4yMTctNS42ODEsMC44NzUtOC40MjZjLTEuMzQ0LTIuNzQzLTQuMTMyLTQuNDgzLTcuMTg4LTQuNDg0aC02NHYxNmg0Ny42NDEKCQkJbC00NS45NTMsNTkuMDljLTIuNzE0LDMuNDg0LTIuMDg5LDguNTA5LDEuMzk2LDExLjIyM2MxLjQwNSwxLjA5NCwzLjEzNiwxLjY4OCw0LjkxNywxLjY4OGg2NHYtMTZIMjI0LjM1OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzI4LDk2bDYyLjM5OC04My4xOTljMi42NTItMy41MzMsMS45MzktOC41NDYtMS41OTQtMTEuMTk5QzM4Ny40MTksMC41NjIsMzg1LjczMywwLDM4NCwwaC03MnYxNmg1NmwtNjIuMzk4LDgzLjE5OQoJCQljLTEuODE4LDIuNDI0LTIuMTEyLDUuNjY4LTAuNzU4LDguMzc5QzMwNi4yLDExMC4yODgsMzA4Ljk3LDExMiwzMTIsMTEyaDgwVjk2SDMyOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Stairway:Xae,Stairwell:Kae,Storeroom:qae,"Summer House":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuODMyLDIyNS4yNjNoLTQzLjAzOWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY2MC4xMzRjMCw0LjE0MiwzLjM1Nyw3LjUsNy41LDcuNWg0My4wMzljNC4xNDIsMCw3LjUtMy4zNTgsNy41LTcuNQoJCQl2LTYwLjEzNEMxODEuMzMyLDIyOC42MjIsMTc3Ljk3NCwyMjUuMjYzLDE3My44MzIsMjI1LjI2M3ogTTE2Ni4zMzEsMjg1LjM5N2gtMjguMDM4di00NS4xMzNoMjguMDM4VjI4NS4zOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OS4xMjcsMjAxLjE5M2MzLjMxNCwyLjI3OCw4LjA5MSwxLjQ3MSwxMC40My0xLjkzMmMwLDAsMjMuMDA5LTMzLjQ2OSwyMy4wMjktMzMuNDk4CgkJCWMyLjMxNS0zLjM2OCwxLjQyOC04LjEyMS0xLjkzMi0xMC40MzFMMjcxLjc2Myw0Ljg2MWMtOS40MjktNi40OC0yMi4wOTctNi40ODEtMzEuNTI2LDBjMCwwLTEzOS43NjIsOTYuMDc3LTE0MC4yNzMsOTYuNDI4CgkJCWMtNy45MTEsNS40MzgsMC40MjksMTcuOTEsOC40OTcsMTIuMzYzbDE0MC4yNzQtOTYuNDI5YzQuMzQ3LTIuOTg3LDEwLjE4Ny0yLjk4NywxNC41MzEtMC4wMDFsMjEyLjcwOSwxNDYuMjI0bC0xNC41MzEsMjEuMTM3CgkJCWMwLDAtMjAxLjE0My0xMzguMjcyLTIwMS4xOTUtMTM4LjMwOGMtMi40OTUtMS43MTUtNS45OTktMS43MTgtOC40OTgtMC4wMDFMNTAuNTU3LDE4NC41ODNsLTE0LjUzLTIxLjEzNwoJCQljMCwwLDQ3LjExNy0zMi4zOSw0Ny4yODktMzIuNTA5YzcuODA3LTUuMzY2LTAuNDE2LTE3LjkxNy04LjQ5OC0xMi4zNjJjMCwwLTUzLjMwMSwzNi42NC01My40NzEsMzYuNzU3CgkJCWMtMy4zNzQsMi4zMi00LjI0MSw3LjA3MS0xLjkzMywxMC40MzFsMjEuNzA5LDMxLjU3OXYzMDcuMTU2YzAsNC4xNDIsMy4zNTgsNy41LDcuNSw3LjVIMjU2YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjVWMzk1Ljk3MQoJCQlINDAyLjY0djEwOC41MjhjMCw0LjE0MiwzLjM1OCw3LjUsNy41MDEsNy41aDMwLjQ4OGM0LjE0MiwwLDcuNS0zLjM1OCw3LjUtNy41VjM5NS45NzFoMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4NwoJCQljMC00LjE0My0zLjM1OC03LjUtNy41LTcuNWgtMjMuNzY5di01Ny4yNTloMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4OGMwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC0yMy43Njl2LTU0LjEwMwoJCQlMNDU5LjEyNywyMDEuMTkzeiBNNDE3LjY0MSwxODYuODc2aDE1LjQ4N3Y2MC44NThoLTE1LjQ4N1YxODYuODc2eiBNMjU2LDYxLjU1NmwzOS4wNzUsMjYuODYxaC03OC4xNDlMMjU2LDYxLjU1NnoKCQkJIE01Ni4xMjUsMjcwLjMzMmgzOC4zOTl2NTMuMDU1YzAsNC4xNDEsMy4zNTgsNy41LDcuNSw3LjVIMjAyLjZjNC4xNDIsMCw3LjUwMS0zLjM1OCw3LjUwMS03LjV2LTUzLjA1NWgzOC4zOTh2NjguNDU2SDU2LjEyNQoJCQlWMjcwLjMzMnogTTEwOS41MjUsMzE1Ljg4NlYyMDkuNzc3aDg1LjU3NXYxMDYuMTA5SDEwOS41MjV6IE05NC41MjQsNDk2Ljk5OEg1Ni4xMjV2LTU5Ljc1NGgzOC4zOTlWNDk2Ljk5OHogTTE2Ni4zMzEsNDk2Ljk5NwoJCQloLTI4LjAzOHYtODUuNzgzaDI4LjAzOFY0OTYuOTk3eiBNMTk1LjA5OSw0OTYuOTk3aC0xMy43Njd2LTkzLjI4M2MwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC00My4wMzkKCQkJYy00LjE0MiwwLTcuNTAxLDMuMzU4LTcuNTAxLDcuNXY5My4yODNoLTEzLjc2OFYzODAuNzI3aDg1LjU3NVY0OTYuOTk3eiBNMjQ4LjQ5OSw0OTYuOTk4SDIxMC4xdi01OS43NTRoMzguMzk4VjQ5Ni45OTh6CgkJCSBNMjQ4LjUsNDIyLjI0NGgtMzguMzk5di00OS4wMThjLTAuMDAxLTQuMTQyLTMuMzU5LTcuNS03LjUwMi03LjVIMTAyLjAyNGMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNTAxdjQ5LjAxOEg1Ni4xMjV2LTY4LjQ1NgoJCQlIMjQ4LjVWNDIyLjI0NHogTTI0OC41LDI1NS4yMjVjMCwwLjAwMywwLDAuMDA2LDAsMC4wMXYwLjA5NmgtMzguMzk5di01My4wNTVjMC00LjE0Mi0zLjM1OC03LjUtNy41LTcuNUgxMDIuMDI0CgkJCWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY1My4wNTVINTYuMTI1di01Ni4zNzNsMTcuNjYzLTEyLjE0M2MwLjI5NywwLjAzNiwwLjU5NywwLjA2LDAuOTA0LDAuMDZIMjQ4LjVWMjU1LjIyNXoKCQkJIE05NS41MjMsMTcxLjg3NWw5OS41ODEtNjguNDU2aDEyMS43OTNsOTkuNTgxLDY4LjQ1NmgtNi4zMzZIOTUuNTIzeiBNNDAyLjY0LDE4Ni44NzZ2NjAuODU4SDI2My41MDF2LTYwLjg1OEg0MDIuNjR6CgkJCSBNMjYzLjUwMSwyOTMuMjIzaDE1LjQ4NnY1Ny4yNTloLTE1LjQ4NlYyOTMuMjIzeiBNNDMzLjEyOCw0OTYuOTk4aC0xNS40ODdWMzk1Ljk3MWgxNS40ODdWNDk2Ljk5OHogTTQ2NC4zOTcsMzY1LjQ4NHYxNS40ODYKCQkJSDI2My41MDF2LTE1LjQ4Nkg0NjQuMzk3eiBNMjkzLjk4OCwzNTAuNDgydi01Ny4yNTloMTUuNDg3djU3LjI1OUgyOTMuOTg4eiBNMzI0LjQ3NiwzNTAuNDgydi01Ny4yNTloMTYuMzM3djU3LjI1OUgzMjQuNDc2egoJCQkgTTM1NS44MTQsMzUwLjQ4MnYtNTcuMjU5aDE1LjQ4N3Y1Ny4yNTlIMzU1LjgxNHogTTM4Ni4zMDIsMzUwLjQ4MnYtNTcuMjU5aDE2LjMzN3Y1Ny4yNTlIMzg2LjMwMnogTTQxNy42NDEsMzUwLjQ4MnYtNTcuMjU5CgkJCWgxNS40ODd2NTcuMjU5SDQxNy42NDF6IE00NjQuMzk3LDI2Mi43MzV2MTUuNDg3SDI2My41MDF2LTE1LjQ4N0g0NjQuMzk3eiIvPgogICAgPC9nPgo8L3N2Zz4K","Swimming Pool":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4Ny43MzMgMTg3LjczMyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xODcuNTk5LDE1MS40NThMMTUzLjQ2NSwzMy4xODZjLTAuNDIyLTEuNDYxLTEuNzU4LTIuNDY2LTMuMjc5LTIuNDY2SDM3LjU0N2MtMS41MjEsMC0yLjg1NywxLjAwNS0zLjI3OSwyLjQ2NgoJCQlMMC4xMzUsMTUxLjQ1OEMwLjA0NCwxNTEuNzY1LDAsMTUyLjA4NSwwLDE1Mi40MDV2MjUuMDg4YzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNIMTg0LjMyCgkJCWMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzdi0yNS4wODhDMTg3LjczMywxNTIuMDg1LDE4Ny42ODcsMTUxLjc2NSwxODcuNTk5LDE1MS40NTh6IE0xODAuOTA3LDE3NC4wOEg2LjgyN3YtMjEuMTkyCgkJCUw0MC4xMTUsMzcuNTQ3SDE0Ny42MmwzMy4yODcsMTE1LjM0MlYxNzQuMDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTc4LjUwNyw2LjgyN2MtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3Y1MS4yYzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNzMy40MTMtMS41MjksMy40MTMtMy40MTN2LTUxLjIKCQkJQzgxLjkyLDguMzU2LDgwLjM5MSw2LjgyNyw3OC41MDcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsNi44MjdjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTN2NTEuMmMwLDEuODg0LDEuNTI5LDMuNDEzLDMuNDEzLDMuNDEzYzEuODg0LDAsMy40MTMtMS41MjksMy40MTMtMy40MTMKCQkJdi01MS4yQzExMi42NCw4LjM1NiwxMTEuMTExLDYuODI3LDEwOS4yMjcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsMTcuMDY3aC0zMC43MmMtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3MxLjUyOSwzLjQxMywzLjQxMywzLjQxM2gzMC43MmMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzCgkJCVMxMTEuMTExLDE3LjA2NywxMDkuMjI3LDE3LjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTA5LjIyNywzMC43MmgtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSwzMC43MiwxMDkuMjI3LDMwLjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDkuMjI3LDQ0LjM3M2gtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSw0NC4zNzMsMTA5LjIyNyw0NC4zNzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE2My43ODksMTQ2LjE3OWwtMTcuNTE2LTk4Ljk4N2MtMC4yODgtMS42My0xLjcwNS0yLjgxOC0zLjM2LTIuODE4SDQ4LjMyOGMtMS42MTMsMC0zLjAwNSwxLjEyNi0zLjM0LDIuNzAzCgkJCWwtMjEuMDE5LDk4Ljk4N2MtMC4yMTMsMS4wMDcsMC4wMzgsMi4wNTcsMC42ODYsMi44NTdjMC42NDksMC44LDEuNjIxLDEuMjY1LDIuNjUyLDEuMjY1aDEzMy4xMmMxLjAwOSwwLDEuOTY2LTAuNDQ3LDIuNjE2LTEuMjE5CgkJCUMxNjMuNjkxLDE0OC4xOTUsMTYzLjk2NSwxNDcuMTc0LDE2My43ODksMTQ2LjE3OXogTTMxLjUyLDE0My4zNkw1MS4wODksNTEuMmg4OC45NThsMTYuMzA5LDkyLjE2SDMxLjUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Terrace:ece,Toilet:tce,Upstairs:sce,Wardrobe:ice,Washroom:oce,Wc:rce,Windscreen:Mce,Workshop:nce,Workspace:ace},uce=[{_id:"hood",name:{en:"Hood",ru:"Вытяжка",de:"Abzugshaube",fr:"Capot",it:"Cappe",nl:"Hood",pl:"Okapy",pt:"Hood",es:"Campana","zh-cn":"抽油烟机"},icon:"Hoods.svg"},{_id:"alarm_system",name:{en:"Alarm System",ru:"Сигнализация",de:"Alarmanlage",fr:"Systèmes D'Alarme",it:"Sistemi Di Allarme",nl:"Alarm Systems",pl:"Systemy Alarmowe",pt:"Sistemas De Alarme",es:"Sistemas De Alarma","zh-cn":"报警系统"},icon:"Alarm Systems.svg"},{_id:"battery_status",name:{en:"Battery Status",ru:"Заряд батареи",de:"Batteriestatus",fr:"État De La Batterie",it:"Stato Della Batteria",nl:"Batterij Status",pl:"Stan Baterii",pt:"Estado Da Bateria",es:"Estado De La Batería","zh-cn":"电池状态"},icon:"Battery Status.svg"},{_id:"lighting",name:{en:"Lighting",ru:"Светильник",de:"Beleuchtung",fr:"Éclairages",it:"Illuminazione",nl:"Verlichting",pl:"Oprawy Oświetleniowe",pt:"Iluminações",es:"Iluminaciones","zh-cn":"照明"},icon:"Lightings.svg"},{_id:"shading",name:{en:"Shading",ru:"Затенение",de:"Beschattungen",fr:"Ombres",it:"Ombreggiatura",nl:"Shading",pl:"Zacienienie",pt:"Shading",es:"Sombreado","zh-cn":"底纹"},icon:"Shading.svg"},{_id:"irrigation",name:{en:"Irrigation",ru:"Орошение",de:"Bewässerung",fr:"Irrigation",it:"Irrigazione",nl:"Irrigatie",pl:"Nawadnianie",pt:"Irrigação",es:"Irrigación","zh-cn":"灌溉"},icon:"Irrigation.svg"},{_id:"iron",name:{en:"Iron",ru:"Утюг",de:"Bügeleisen",fr:"Le Fer",it:"Ferro",nl:"Ijzer",pl:"Żelazo",pt:"Ferro",es:"Hierro","zh-cn":"铁"},icon:"Iron.svg"},{_id:"computer",name:{en:"Computer",ru:"Компьютер",de:"Rechner",fr:"L'Ordinateur",it:"Computer",nl:"Computer",pl:"Komputer",pt:"Computador",es:"Ordenador","zh-cn":"电脑"},icon:"Computer.svg"},{_id:"ceiling_spotlight",name:{en:"Ceiling Spotlight",ru:"Потолочный прожектор",de:"Deckenspot",fr:"Plafond Spotlight",it:"Faretti A Soffitto",nl:"Plafond Spotlight",pl:"Reflektory Sufitowe",pt:"Tecto Foco",es:"Focos De Techo","zh-cn":"天花射灯"},icon:"Ceiling Spotlights.svg"},{_id:"printer",name:{en:"Printer",de:"Drucker",ru:"Принтер",pt:"Impressora",nl:"Printer",fr:"Imprimante",it:"Stampante",es:"Impresora",pl:"Drukarka","zh-cn":"打印机"},icon:"Printer.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"window",name:{en:"Window",ru:"Окно",de:"Fenster",fr:"La Fenêtre",it:"Finestra",nl:"Venster",pl:"Okno",pt:"Janela",es:"Ventana","zh-cn":"窗户"},icon:"Window.svg"},{_id:"garage_door",name:{en:"Garage Door",ru:"Гаражные Ворота",de:"Garagentor",fr:"Portes De Garage",it:"Garage Door",nl:"Garage Door",pl:"Bramy Garażowe",pt:"Portas De Garagem",es:"Las Puertas De Garaje","zh-cn":"车库门"},icon:"Garage Doors.svg"},{_id:"hairdryer",name:{en:"Hairdryer",ru:"Фен",de:"Haartrockner",fr:"Sèche-Cheveux",it:"Asciugacapelli",nl:"Haardroger",pl:"Suszarka Do Włosów",pt:"Secador De Cabelo",es:"Secador De Pelo","zh-cn":"电吹风"},icon:"Hairdryer.svg"},{_id:"hanging_lamp",name:{en:"Hanging Lamp",ru:"Подвесной светильник",de:"Hängelampe",fr:"Lampes Suspendues",it:"Lampade A Sospensione",nl:"Opknoping Lampen",pl:"Lampy Wiszące",pt:"Lâmpadas De Suspensão",es:"Lámparas Colgantes","zh-cn":"挂灯"},icon:"Hanging Lamps.svg"},{_id:"doorstep",name:{en:"Enterance",ru:"Входная дверь",de:"Haustür",fr:"Seuil De Porte",it:"Gradino Della Porta",nl:"Drempel",pl:"Próg",pt:"Porta",es:"Peldaño","zh-cn":"门阶"},icon:"Doorstep.svg"},{_id:"hot_water",name:{en:"Hot Water",ru:"Горячая вода",de:"Heißwasser",fr:"Eau Chaude",it:"Acqua Calda",nl:"Heet Water",pl:"Gorąca Woda",pt:"Água Quente",es:"Agua Caliente","zh-cn":"热水"},icon:"Hot Water.svg"},{_id:"heating",name:{en:"Heating",ru:"Отопление",de:"Heizung",fr:"Chauffe-Eau",it:"Riscaldatore",nl:"Verwarmer",pl:"Podgrzewacz",pt:"Aquecedor",es:"Calentador","zh-cn":"加热器"},icon:"Heater.svg"},{_id:"stove",name:{en:"Stove",ru:"Печь",de:"Herd",fr:"Le Fourneau",it:"Stufa",nl:"Fornuis",pl:"Kuchenka",pt:"Forno",es:"Cocina","zh-cn":"火炉"},icon:"Stove.svg"},{_id:"louvre",name:{en:"Louvre",ru:"Жалюзи",de:"Jalousie",fr:"Persienne",it:"Persiana Di Ventilazione",nl:"Louvre",pl:"Żaluzja",pt:"Trapeira",es:"Lumbrera","zh-cn":"卢浮宫"},icon:"Louvre.svg"},{_id:"coffee_maker",name:{en:"Coffee Maker",ru:"Кофеварка",de:"Kaffemaschine",fr:"Cafetière",it:"Macchine Da Caffè",nl:"Koffie Maker",pl:"Ekspresy Do Kawy",pt:"Cafeteira",es:"Cafetera","zh-cn":"咖啡壶"},icon:"Coffee Makers.svg"},{_id:"cold_water",name:{en:"Cold Water",ru:"Холодная вода",de:"Kaltwasser",fr:"Eau Froide",it:"Acqua Fredda",nl:"Koud Water",pl:"Zimna Woda",pt:"Água Fria",es:"Agua Fría","zh-cn":"冷水"},icon:"Cold Water.svg"},{_id:"climate",name:{en:"Climate",ru:"Климат",de:"Klima",fr:"Climat",it:"Clima",nl:"Klimaat",pl:"Klimat",pt:"Clima",es:"Clima","zh-cn":"气候"},icon:"Climate.svg"},{_id:"speaker",name:{en:"Speaker",ru:"Звуковая система",de:"Lautsprecher",fr:"Orateur",it:"Altoparlante",nl:"Spreker",pl:"Głośnik",pt:"Palestrante",es:"Altavoz","zh-cn":"扬声器"},icon:"Speaker.svg"},{_id:"led_strip",name:{en:"Led Strip",ru:"Светодиодная лента",de:"LED Leiste",fr:"Led Strip",it:"Led Strip",nl:"Loden Strip",pl:"Pasek Ledowy",pt:"Led Faixa",es:"Tira Llevada","zh-cn":"灯带"},icon:"Led Strip.svg"},{_id:"light",name:{en:"Light",ru:"Свет",de:"Licht",fr:"Lumière",it:"Leggero",nl:"Licht",pl:"Lekki",pt:"Luz",es:"Luz","zh-cn":"光"},icon:"Light.svg"},{_id:"fan",name:{en:"Fan",ru:"Вентилятор",de:"Lüfter",fr:"Ventilateur",it:"Fan",nl:"Ventilator",pl:"Wentylator",pt:"Ventilador",es:"Ventilador","zh-cn":"扇子"},icon:"Fan.svg"},{_id:"humidity",name:{en:"Humidity",ru:"Влажность",de:"Luftfeuchtigkeit",fr:"Humidité",it:"Umidità",nl:"Vochtigheid",pl:"Wilgotność",pt:"Umidade",es:"Humedad","zh-cn":"湿度"},icon:"Humidity.svg"},{_id:"ventilation",name:{en:"Ventilation",ru:"Вентиляция",de:"Lüftung",fr:"Ventilation",it:"Ventilazione",nl:"Ventilatie",pl:"Wentylacja",pt:"Ventilação",es:"Ventilación","zh-cn":"通风"},icon:"Ventilation.svg"},{_id:"chandelier",name:{en:"Chandelier",ru:"Люстра",de:"Kronleuchter",fr:"Lustre",it:"Lampadario",nl:"Kroonluchter",pl:"Żyrandol",pt:"Lustre",es:"Candelabro","zh-cn":"枝形吊灯"},icon:"Chandelier.svg"},{_id:"awning",name:{en:"Awning",ru:"Маркиза",de:"Markise",fr:"Auvents",it:"Tende",nl:"Luifels",pl:"Okrycia",pt:"Toldos",es:"Toldos","zh-cn":"遮阳篷"},icon:"Awnings.svg"},{_id:"music",name:{en:"Music",ru:"Музыка",de:"Musik",fr:"Musique",it:"Musica",nl:"Muziek",pl:"Muzyka",pt:"Música",es:"Música","zh-cn":"音乐"},icon:"Music.svg"},{_id:"people",name:{en:"People",ru:"Люди",de:"Personen",fr:"Gens",it:"Persone",nl:"Mensen",pl:"Ludzie",pt:"Pessoas",es:"Personas","zh-cn":"人们"},icon:"People.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"pump",name:{en:"Pump",ru:"Насос",de:"Pumpe",fr:"Pompe",it:"Pompa",nl:"Pomp",pl:"Pompa",pt:"Bombear",es:"Bomba","zh-cn":"泵"},icon:"Pump.svg"},{_id:"outdoor_blinds",name:{en:"Outdoor Blinds",ru:"Внещгте жалюзи",de:"Raffstore",fr:"Volets",it:"Tende Da Esterni",nl:"Outdoor Blinds",pl:"Rolety Zewnętrzne",pt:"Estores Exteriores",es:"Persianas Exteriores","zh-cn":"室外百叶窗"},icon:"Outdoor Blinds.svg"},{_id:"mowing_machine",name:{en:"Mowing Machine",ru:"Газонокосилка",de:"Rasenmäher",fr:"Machine De Fauchage",it:"Macchina Di Falciatura",nl:"Maaimachine",pl:"Kosiarka",pt:"Roçada Máquina",es:"Segadora","zh-cn":"割草机"},icon:"Mowing Machine.svg"},{_id:"receiver",name:{en:"Receiver",ru:"Приставка",de:"Receiver",fr:"Destinataire",it:"Ricevitore",nl:"Ontvanger",pl:"Odbiorca",pt:"Recebedor",es:"Receptor","zh-cn":"接收者"},icon:"Receiver.svg"},{_id:"shutters",name:{en:"Shutters",ru:"Ставни",de:"Rollladen",fr:"Volets",it:"Persiane",nl:"Shutters",pl:"Żaluzje",pt:"Persianas",es:"Persianas","zh-cn":"百叶窗"},icon:"Shutters.svg"},{_id:"smoke_detector",name:{en:"Smoke detector",de:"Rauchmelder",ru:"Детектор дыма",pt:"Detector de fumaça",nl:"Rookdetector",fr:"Détecteur de fumée",it:"Rilevatore di fumo",es:"Detector de humo",pl:"Wykrywacz dymu","zh-cn":"烟雾探测器"},icon:"SmokeDetector.svg"},{_id:"lock",name:{en:"Lock",ru:"Замок",de:"Schloß",fr:"Fermer À Clé",it:"Serratura",nl:"Slot",pl:"Zamek",pt:"Trancar",es:"Cerrar Con Llave","zh-cn":"锁"},icon:"Lock.svg"},{_id:"security",name:{en:"Security",ru:"Безопасность",de:"Sicherheit",fr:"Sécurité",it:"Sicurezza",nl:"Veiligheid",pl:"Bezpieczeństwo",pt:"Segurança",es:"Seguridad","zh-cn":"安全"},icon:"Security.svg"},{_id:"dishwasher",name:{en:"Dishwasher",ru:"Посудомоечная машина",de:"Spülmaschine",fr:"Lave-Vaisselles",it:"Lavastoviglie",nl:"Vaatwassers",pl:"Zmywarki",pt:"Máquinas De Lavar Louça",es:"Lavaplatos","zh-cn":"洗碗机"},icon:"Dishwashers.svg"},{_id:"vacuum_cleaner",name:{en:"Vacuum Cleaner",ru:"Пылесос",de:"Staubsauger",fr:"Aspirateur",it:"Aspirapolvere",nl:"Stofzuiger",pl:"Odkurzacz",pt:"Aspirador De Pó",es:"Aspiradora","zh-cn":"吸尘器"},icon:"Vacuum Cleaner.svg"},{_id:"socket",name:{en:"Socket",ru:"Розетка",de:"Steckdose",fr:"Prise",it:"Socket",nl:"Socket",pl:"Gniazdka",pt:"Tomada",es:"Zócalo","zh-cn":"套接字"},icon:"Sockets.svg"},{_id:"floor_lamp",name:{en:"Floor Lamp",ru:"Торшер",de:"Stehlampe",fr:"Lampes Pour Plancher",it:"Lampade A Stelo",nl:"Vloerlampen",pl:"Lampy Podłogowe",pt:"Lâmpadas Chão",es:"Lámparas De Pie","zh-cn":"落地灯"},icon:"Floor Lamps.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"temperature_sensor",name:{en:"Temperature Sensor",ru:"Температурный датчик",de:"Temperatur-Sensor",fr:"Capteur De Température",it:"Sensori Di Temperatura",nl:"Temperatuursensor",pl:"Czujniki Temperatury",pt:"Sensores De Temperatura",es:"Sensores De Temperatura","zh-cn":"温度传感器"},icon:"Temperature Sensors.svg"},{_id:"table_lamp",name:{en:"Table Lamp",ru:"Настольная лампа",de:"Tischlampe",fr:"Lampe De Chevet",it:"Lampade Da Tavolo",nl:"Tafellampen",pl:"Lampy Stołowe",pt:"Lâmpadas De Mesa",es:"Lámparas De Mesa","zh-cn":"台灯"},icon:"Table Lamps.svg"},{_id:"gate",name:{en:"Gate",ru:"Ворота",de:"Tor",fr:"Porte",it:"Gate",nl:"Gate",pl:"Bramy",pt:"Portões",es:"Puertas","zh-cn":"盖茨"},icon:"Gates.svg"},{_id:"dryer",name:{en:"Dryer",ru:"Сушилка",de:"Trockner",fr:"Séchoir",it:"Asciugatrice",nl:"Droger",pl:"Suszarka",pt:"Secador",es:"Secadora","zh-cn":"烘干机"},icon:"Dryer.svg"},{_id:"door",name:{en:"Door",ru:"Дверь",de:"Tür",fr:"Des Portes",it:"Porte",nl:"Deuren",pl:"Drzwi",pt:"Portas",es:"Puertas","zh-cn":"门"},icon:"Doors.svg"},{_id:"tv",name:{en:"Tv",ru:"Телевизор",de:"TV",fr:"La Télé",it:"Tv",nl:"Tv",pl:"Telewizja",pt:"Televisão",es:"Televisor","zh-cn":"电视"},icon:"Tv.svg"},{_id:"consumption",name:{en:"Consumption",ru:"Потребление",de:"Verbrauch",fr:"Consommation",it:"Consumo",nl:"Consumptie",pl:"Konsumpcja",pt:"Consumo",es:"Consumo","zh-cn":"消费"},icon:"Consumption.svg"},{_id:"amplifier",name:{en:"Amplifier",ru:"Усилитель звука",de:"Verstärker",fr:"Amplificateur",it:"Amplificatore",nl:"Versterker",pl:"Wzmacniacz",pt:"Amplificador",es:"Amplificador","zh-cn":"放大器"},icon:"Amplifier.svg"},{_id:"curtains",name:{en:"Curtains",ru:"Шторы",de:"Vorhänge",fr:"Des Rideaux",it:"Le Tende",nl:"Gordijnen",pl:"Zasłony",pt:"Cortinas",es:"Cortinas","zh-cn":"窗帘"},icon:"Curtains.svg"},{_id:"sconce",name:{en:"Sconce",ru:"Настенный светильник",de:"Wandlampe",fr:"Sconce",it:"Sconce",nl:"Sconce",pl:"Kinkiety",pt:"Arandelas",es:"Los Apliques","zh-cn":"壁灯"},icon:"Sconces.svg"},{_id:"washing_machine",name:{en:"Washing Machine",ru:"Стиральная машина",de:"Waschmaschine",fr:"Machines À Laver",it:"Lavatrici",nl:"Wasmachines",pl:"Pralki",pt:"Máquinas De Lavar Roupas",es:"Lavadoras","zh-cn":"洗衣机"},icon:"Washing Machines.svg"},{_id:"water",name:{en:"Water",ru:"Вода",de:"Wasser",fr:"L'Eau",it:"Acqua",nl:"Water",pl:"Woda",pt:"Água",es:"Agua","zh-cn":"水"},icon:"Water.svg"},{_id:"water_heater",name:{en:"Water Heater",ru:"Нагреватель воды",de:"Wasserkocher",fr:"Chauffe-Eau",it:"Scaldabagno",nl:"Waterkoker",pl:"Podgrzewacz Wody",pt:"Aquecedor De Água",es:"Calentador De Agua","zh-cn":"热水器"},icon:"Water Heater.svg"},{_id:"water_consumption",name:{en:"Water Consumption",ru:"Потребление воды",de:"Wasserverbrauch",fr:"Consommation D'Eau",it:"Consumo D'Acqua",nl:"Waterverbruik",pl:"Konsumpcja Wody",pt:"Consumo De Água",es:"Consumo De Agua","zh-cn":"耗水量"},icon:"Water Consumption.svg"},{_id:"weather",name:{en:"Weather",ru:"Погода",de:"Wetter",fr:"La Météo",it:"Tempo Metereologico",nl:"Weer",pl:"Pogoda",pt:"Clima",es:"Tiempo","zh-cn":"天气"},icon:"Weather.svg"}],Nce=[{_id:"storeroom",name:{en:"Storeroom",ru:"Кладовая",de:"Abstellraum",fr:"Débarras",it:"Dispensa",nl:"Bergplaats",pl:"Magazyn",pt:"Despensa",es:"Trastero","zh-cn":"库房"},icon:"Storeroom.svg"},{_id:"second_floor",name:{en:"Second floor",ru:"Второй этаж",de:"Erster OG",pt:"Primeiro andar",nl:"Eerste verdieping",fr:"Premier étage",it:"Primo piano",es:"Primer piso",pl:"Pierwsze piętro","zh-cn":"第一层"},icon:"Second Floor.svg"},{_id:"dressing_room",name:{en:"Dressing Room",ru:"Гардеробная",de:"Ankleide",fr:"Vestiaire",it:"Camerino",nl:"Kleedkamer",pl:"Przebieralnia",pt:"Provador",es:"Vestidor","zh-cn":"更衣室"},icon:"Dressing Room.svg"},{_id:"workspace",name:{en:"Workspace",ru:"Рабочая Среда",de:"Arbeitszimmer",fr:"Espace De Travail",it:"Area Di Lavoro",nl:"Workspace",pl:"Workspace",pt:"Área De Trabalho",es:"Espacio De Trabajo","zh-cn":"工作区"},icon:"Workspace.svg"},{_id:"driveway",name:{en:"Driveway",ru:"Дорога",de:"Auffahrt",fr:"Allée",it:"Viale",nl:"Pad",pl:"Podjazd",pt:"Entrada Da Garagem",es:"Entrada De Coches","zh-cn":"车道"},icon:"Driveway.svg"},{_id:"outdoors",name:{en:"Outdoors",ru:"На Улице",de:"Außenbereich",fr:"En Plein Air",it:"All'Aperto",nl:"Buitenshuis",pl:"Na Dworze",pt:"Ao Ar Livre",es:"Al Aire Libre","zh-cn":"户外"},icon:"Outdoors.svg"},{_id:"bathroom",name:{en:"Bathroom",ru:"Ванная Комната",de:"Badezimmer",fr:"Salle De Bains",it:"Bagno",nl:"Badkamer",pl:"Łazienka",pt:"Banheiro",es:"Baño","zh-cn":"浴室"},icon:"Bathroom.svg"},{_id:"balcony",name:{en:"Balcony",ru:"Балкон",de:"Balkon",fr:"Balcon",it:"Balcone",nl:"Balkon",pl:"Balkon",pt:"Sacada",es:"Balcón","zh-cn":"阳台"},icon:"Balcony.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"carport",name:{en:"Carport",ru:"Навес",de:"Carport",fr:"Carport",it:"Posto Auto Coperto",nl:"Carport",pl:"Wiata",pt:"Telheiro",es:"Cochera","zh-cn":"车棚"},icon:"Carport.svg"},{_id:"attic",name:{en:"Attic",ru:"Чердак",de:"Dachgeschoss",fr:"Grenier",it:"Attico",nl:"Zolder",pl:"Poddasze",pt:"Sótão",es:"Ático","zh-cn":"阁楼"},icon:"Attic.svg"},{_id:"hall",name:{en:"Hall",ru:"Зал",de:"Diele",fr:"Salle",it:"Sala",nl:"Hal",pl:"Sala",pt:"Corredor",es:"Sala","zh-cn":"大厅"},icon:"Hall.svg"},{_id:"entrance",name:{en:"Entrance",ru:"Вход",de:"Eingang",fr:"Entrée",it:"Ingresso",nl:"Ingang",pl:"Wejście",pt:"Entrada",es:"Entrada","zh-cn":"入口"},icon:"Entrance.svg"},{_id:"ground_floor",name:{en:"Ground Floor",ru:"Первый Этаж",de:"Erdgeschoss",fr:"Rez-De-Chaussée",it:"Piano Terra",nl:"Begane Grond",pl:"Parter",pt:"Térreo",es:"Planta Baja","zh-cn":"一楼"},icon:"Ground Floor.svg"},{_id:"dining_area",name:{en:"Dining Area",ru:"Столовая",de:"Essbereich",fr:"Salle À Manger",it:"Zona Pranzo",nl:"Eethoek",pl:"Jadalnia",pt:"Área De Refeições",es:"Comedor","zh-cn":"用餐区"},icon:"Dining Area.svg"},{_id:"dining_room",name:{en:"Dining Room",ru:"Столовая",de:"Esszimmer",fr:"Salle À Manger",it:"Sala Da Pranzo",nl:"Eetkamer",pl:"Jadalnia",pt:"Sala De Jantar",es:"Comedor","zh-cn":"饭厅"},icon:"Dining Room.svg"},{_id:"gym",name:{en:"Gym",ru:"Спортзал",de:"Fitnessraum",fr:"Gym",it:"Palestra",nl:"Sportschool",pl:"Siłownia",pt:"Ginásio",es:"Gimnasio","zh-cn":"健身房"},icon:"Gym.svg"},{_id:"gallery",name:{en:"Gallery",ru:"Галерея",de:"Galerie",fr:"Galerie",it:"Galleria",nl:"Galerij",pl:"Galeria",pt:"Galeria",es:"Galería","zh-cn":"画廊"},icon:"Gallery.svg"},{_id:"garage",name:{en:"Garage",ru:"Гараж",de:"Garage",fr:"Garage",it:"Box Auto",nl:"Garage",pl:"Garaż",pt:"Garagem",es:"Garaje","zh-cn":"车库"},icon:"Garage.svg"},{_id:"wardrobe",name:{en:"Wardrobe",ru:"Гардероб",de:"Garderobe",fr:"Penderie",it:"Armadio",nl:"Garderobe",pl:"Szafa",pt:"Guarda Roupa",es:"Armario","zh-cn":"衣柜"},icon:"Wardrobe.svg"},{_id:"garden",name:{en:"Garden",ru:"Сад",de:"Garten",fr:"Jardin",it:"Giardino",nl:"Tuin",pl:"Ogród",pt:"Jardim",es:"Jardín","zh-cn":"花园"},icon:"Garden.svg"},{_id:"summer_house",name:{en:"Summer House",ru:"Дача",de:"Gartenhaus",fr:"Maison D'Été",it:"Casa Estiva",nl:"Zomerhuis",pl:"Domek Letniskowy",pt:"Summer House",es:"Casa De Verano","zh-cn":"凉亭"},icon:"Summer House.svg"},{_id:"guest_bathroom",name:{en:"Guest Bathroom",ru:"Гостевая Комната",de:"Gäste-WC",fr:"Salle De Bains Invité",it:"Guest Bathroom",nl:"Gastenbadkamer",pl:"Łazienka Gościnna",pt:"Banheiro De Hóspedes",es:"Baño De Visitas","zh-cn":"客用浴室"},icon:"Guest Bathroom.svg"},{_id:"guest_room",name:{en:"Guest Room",ru:"Гостевая Комната",de:"Gästezimmer",fr:"Chambre D'Amis",it:"Stanza Degli Ospiti",nl:"Guest Room",pl:"Pokój Gościnny",pt:"Quarto De Hóspedes",es:"Habitación De Huéspedes","zh-cn":"客房"},icon:"Guest Room.svg"},{_id:"laundry_room",name:{en:"Laundry Room",ru:"Прачечная",de:"Hauswirtschaftsraum",fr:"Buanderie",it:"Lavanderia",nl:"Wasruimte",pl:"Pralnia",pt:"Lavandaria",es:"Cuarto De Lavado","zh-cn":"洗衣房"},icon:"Laundry Room.svg"},{_id:"home_theater",name:{en:"Home Theater",ru:"Домашний Театр",de:"Heimkino",fr:"Cinéma Maison",it:"Home Theater",nl:"Thuisbioscoop",pl:"Kino Domowe",pt:"Cinema Em Casa",es:"Cine En Casa","zh-cn":"家庭电影院"},icon:"Home Theater.svg"},{_id:"boiler_room",name:{en:"Boiler Room",ru:"Бойлерная",de:"Heizungsraum",fr:"Chaufferie",it:"Locale Caldaia",nl:"Boiler Room",pl:"Kotłownia",pt:"Sala Da Caldeira",es:"Sala De Calderas","zh-cn":"锅炉房"},icon:"Boiler Room.svg"},{_id:"chamber",name:{en:"Chamber",ru:"Камера",de:"Kammer",fr:"Chambre",it:"Camera",nl:"Kamer",pl:"Izba",pt:"Câmara",es:"Cámara","zh-cn":"商会"},icon:"Chamber.svg"},{_id:"basement,_cellar",name:{en:"Basement, Cellar",ru:"Подвал, Погреб",de:"Keller",fr:"Sous-Sol, Cave",it:"Taverna, Cantina",nl:"Kelder, Kelder",pl:"Piwnica, Piwnica",pt:"Porão, Adega",es:"Sótano, Bodega","zh-cn":"地下室,地窖"},icon:"Basement.svg"},{_id:"nursery",name:{en:"Nursery",ru:"Питомник",de:"Kinderzimmer",fr:"Garderie",it:"Asilo",nl:"Kinderkamer",pl:"Żłobek",pt:"Berçário",es:"Guardería","zh-cn":"苗圃"},icon:"Nursery.svg"},{_id:"corridor",name:{en:"Corridor",ru:"Коридор",de:"Korridor",fr:"Couloir",it:"Corridoio",nl:"Gang",pl:"Korytarz",pt:"Corredor",es:"Corredor","zh-cn":"走廊"},icon:"Corridor.svg"},{_id:"kitchen",name:{en:"Kitchen",ru:"Кухня",de:"Küche",fr:"Cuisine",it:"Cucina",nl:"Keuken",pl:"Kuchnia",pt:"Cozinha",es:"Cocina","zh-cn":"厨房"},icon:"Kitchen.svg"},{_id:"upstairs",name:{en:"Upstairs",ru:"Вверх По Лестнице",de:"Obergeschoss",fr:"En Haut",it:"Di Sopra",nl:"Boven",pl:"Na Górę",pt:"Andar De Cima",es:"Piso Superior","zh-cn":"楼上"},icon:"Upstairs.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"rear_wall",name:{en:"Rear Wall",ru:"Задняя Стенка",de:"Rückwand",fr:"Paroi Arrière",it:"Parete Posteriore",nl:"Achterwand",pl:"Tylna Ściana",pt:"Parede Traseira",es:"Pared Posterior","zh-cn":"后墙"},icon:"Rear Wall.svg"},{_id:"barn",name:{en:"Barn",ru:"Амбар",de:"Scheune",fr:"Grange",it:"Fienile",nl:"Schuur",pl:"Stodoła",pt:"Celeiro",es:"Granero","zh-cn":"谷仓"},icon:"Barn.svg"},{_id:"sleeping_area",name:{en:"Sleeping Area",ru:"Спальное Место",de:"Schlafbereich",fr:"Coin Montagne",it:"Area Sleeping",nl:"Sleeping Area",pl:"Powierzchnia Spania",pt:"Sleeping Area",es:"Área De Dormir","zh-cn":"睡眠区"},icon:"Sleeping Area.svg"},{_id:"bedroom",name:{en:"Bedroom",ru:"Спальная Комната",de:"Schlafzimmer",fr:"Chambre",it:"Camera Da Letto",nl:"Slaapkamer",pl:"Sypialnia",pt:"Quarto",es:"Cuarto","zh-cn":"卧室"},icon:"Bedroom.svg"},{_id:"shed",name:{en:"Shed",ru:"Сбрасывать",de:"Schuppen",fr:"Hangar",it:"Capannone",nl:"Schuur",pl:"Budka",pt:"Cabana",es:"Cobertizo","zh-cn":"棚"},icon:"Shed.svg"},{_id:"swimming_pool",name:{en:"Swimming Pool",ru:"Плавательный Бассейн",de:"Schwimmbad",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"游泳池"},icon:"Swimming Pool.svg"},{_id:"dining",name:{en:"Dining",ru:"Обеденный",de:"Speis",fr:"À Manger",it:"Cenare",nl:"Dining",pl:"Jadalnia",pt:"Jantar",es:"Comida","zh-cn":"用餐"},icon:"Dining.svg"},{_id:"playroom",name:{en:"Playroom",ru:"Игровая Комната",de:"Spielzimmer",fr:"Salle De Jeux",it:"Stanza Dei Giochi",nl:"Speelkamer",pl:"Pokój Zabaw",pt:"Sala De Jogos",es:"Cuarto De Jugar","zh-cn":"游戏室"},icon:"Playroom.svg"},{_id:"stairway",name:{en:"Stairway",ru:"Лестница",de:"Treppe",fr:"Escalier",it:"Scala",nl:"Trap",pl:"Klatka Schodowa",pt:"Escada",es:"Escalera","zh-cn":"楼梯"},icon:"Stairway.svg"},{_id:"equipment_room",name:{en:"Equipment Room",ru:"Оборудование Номера",de:"Technikraum",fr:"Salle D'Équipement",it:"Stanza Degli Attrezzi",nl:"Technische Ruimte",pl:"Wyposażenie Pokoi",pt:"Sala De Equipamentos",es:"Cuarto De Equipos","zh-cn":"机房"},icon:"Equipment Room.svg"},{_id:"terrace",name:{en:"Terrace",ru:"Терраса",de:"Terrasse",fr:"Terrasse",it:"Terrazza",nl:"Terras",pl:"Taras",pt:"Terraço",es:"Terraza","zh-cn":"阳台"},icon:"Terrace.svg"},{_id:"toilet",name:{en:"Toilet",ru:"Туалет",de:"Toilette",fr:"Toilette",it:"Gabinetto",nl:"Toilet",pl:"Toaleta",pt:"Banheiro",es:"Inodoro","zh-cn":"洗手间"},icon:"Toilet.svg"},{_id:"stairwell",name:{en:"Stairwell",ru:"Лестничная клетка",de:"Treppenhaus",fr:"Cage D'Escalier",it:"Tromba Delle Scale",nl:"Trappenhuis",pl:"Klatka Schodowa",pt:"Caixa De Escada",es:"Hueco De Escalera","zh-cn":"楼梯间"},icon:"Stairwell.svg"},{_id:"locker_room",name:{en:"Locker Room",ru:"Камера Хранения",de:"Umkleideraum",fr:"Vestiaire",it:"Spogliatoio",nl:"Kleedkamer",pl:"Szatnia",pt:"Vestiário",es:"Vestuario","zh-cn":"更衣室"},icon:"Locker Room.svg"},{_id:"basement",name:{en:"Basement",ru:"Подвал",de:"Untergeschoss",fr:"Sous-Sol",it:"Seminterrato",nl:"Kelder",pl:"Piwnica",pt:"Porão",es:"Sótano","zh-cn":"地下室"},icon:"Basement.svg"},{_id:"front_yard",name:{en:"Front Yard",ru:"Передний Двор",de:"Vorgarten",fr:"Front Yard",it:"Cortile",nl:"Voortuin",pl:"Podwórko",pt:"Jardim Da Frente",es:"Patio Delantero","zh-cn":"前院"},icon:"Front Yard.svg"},{_id:"anteroom",name:{en:"Anteroom",ru:"Передняя",de:"Vorraum",fr:"Antichambre",it:"Anticamera",nl:"Voorkamer",pl:"Przedpokój",pt:"Ante-Sala",es:"Antesala","zh-cn":"接待室"},icon:"Anteroom.svg"},{_id:"washroom",name:{en:"Washroom",ru:"Уборная",de:"Waschraum",fr:"Toilettes",it:"Bagno",nl:"Waskamer",pl:"Umywalnia",pt:"Banheiro",es:"Baño","zh-cn":"卫生间"},icon:"Washroom.svg"},{_id:"wc",name:{en:"Wc",ru:"Туалет",de:"WC",fr:"Toilettes",it:"Bagno",nl:"Wc",pl:"Toaleta",pt:"Banheiro",es:"Wc","zh-cn":"厕所"},icon:"Wc.svg"},{_id:"workshop",name:{en:"Workshop",ru:"Мастерская",de:"Werkstatt",fr:"Atelier",it:"Laboratorio",nl:"Werkplaats",pl:"Warsztat",pt:"Oficina",es:"Taller","zh-cn":"作坊"},icon:"Workshop.svg"},{_id:"windscreen",name:{en:"Windscreen",ru:"Ветровое Стекло",de:"Windfang",fr:"Pare-Brise",it:"Parabrezza",nl:"Voorruit",pl:"Szyba Przednia",pt:"Pára-Brisas",es:"Parabrisas","zh-cn":"风档"},icon:"Windscreen.svg"},{_id:"living_area",name:{en:"Living Area",ru:"Жилая Площадь",de:"Wohnbereich",fr:"Salon",it:"Zona Giorno",nl:"Living Area",pl:"Powierzchnia Mieszkalna",pt:"Sala-De-Estar",es:"Sala De Estar","zh-cn":"生活区域"},icon:"Living Area.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"}];class lce extends b.Component{constructor(e){super(e),this.state={opened:!1,names:[],filter:"",icons:null,loading:!1,isAnyName:!1}}loadAllIcons(){this.state.loading||this.state.icons||this.setState({loading:!0},()=>{const e=[],t=[];if(this.props.icons){const s=this.props.icons.map((o,r)=>{let M;if(typeof o=="object"){if(M=o.icon||o.src||o.href||"",t[r]=typeof o.name=="object"?o.name[this.props.lang]||o.name.en||o._id||"":o.name||"",!t[r]){const n=M.split(".");n.pop(),t[r]=n[n.length-1]}}else M=o;return M?M.startsWith("data:")?(e[r]=M,Promise.resolve()):S.getSvg(M).then(n=>e[r]=n):Promise.resolve()});Promise.all(s).catch(o=>console.error(o)).then(()=>this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(o=>o)}))}else{let s=this.props.onlyRooms||!this.props.onlyRooms&&!this.props.onlyDevices?Nce:null;if(s&&(s.forEach(o=>{o.name&&typeof o.name=="object"&&(o.name=o.name[this.props.lang]||o.name.en||o._id),o.name=o.name||o._id}),s=s.filter((o,r)=>!(s!=null&&s.find((M,n)=>r!==n&&M.icon===o.icon&&M.name===o.name))),s.forEach((o,r)=>{t[r]=o.name,e[r]=`data:image/svg+xml;base64,${cce[o.icon.replace(/\.svg$/,"")]}`})),s=this.props.onlyDevices||!this.props.onlyRooms&&!this.props.onlyDevices?uce:null,s){const o=e.length;s&&s.forEach(r=>{r.name&&typeof r.name=="object"&&(r.name=r.name[this.props.lang]||r.name.en||r._id),r.name=r.name||r._id}),s=s.filter((r,M)=>!(s!=null&&s.find((n,u)=>M!==u&&n.icon===r.icon&&n.name===r.name))),s.forEach((r,M)=>{t[M+o]=r.name,e[M+o]=`data:image/svg+xml;base64,${hae[r.icon.replace(/\.svg$/,"")]}`})}this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(o=>o)})}})}render(){return this.state.loading?a.createElement(g.CircularProgress,null):a.createElement(a.Fragment,null,a.createElement(g.Button,{color:"grey",variant:"outlined",title:this.props.t("ra_Select predefined icon"),onClick:()=>this.setState({opened:!0},()=>this.loadAllIcons()),style:{minWidth:40,marginRight:8}},"..."),this.state.opened?a.createElement(g.Dialog,{onClose:()=>this.setState({opened:!1}),open:!0},a.createElement(g.DialogTitle,null,this.props.t("ra_Select predefined icon"),this.state.isAnyName?a.createElement(g.TextField,{variant:"standard",margin:"dense",style:{marginLeft:20},value:this.state.filter,onChange:e=>this.setState({filter:e.target.value.toLowerCase()}),placeholder:this.props.t("ra_Filter"),slotProps:{input:{endAdornment:this.state.filter?a.createElement(g.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({filter:""})},a.createElement(m.Clear,null)):void 0}}}):null),a.createElement(g.DialogContent,null,a.createElement("div",{style:{width:"100%",textAlign:"center"}},this.state.icons&&this.state.icons.map((e,t)=>!this.state.filter||this.state.names[t]&&this.state.names[t].toLowerCase().includes(this.state.filter)?a.createElement(g.Tooltip,{title:this.state.names[t]||"",key:t,slotProps:{popper:{sx:{pointerEvents:"none"}}}},a.createElement(g.IconButton,{onClick:()=>this.setState({opened:!1},()=>{const s=this.props.onSelect||this.props.onChange;s&&s(e)}),size:"large"},a.createElement(Ie,{src:e,alt:t.toString(),style:{width:32,height:32,borderRadius:5}}))):null))),a.createElement(g.DialogActions,null,a.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({opened:!1}),startIcon:a.createElement(m.Close,null)},this.props.t("ra_Close")))):null)}}const Mt={formContainer:{display:"flex",justifyContent:"left",alignItems:"center"},formControl:{display:"flex",padding:24,flexGrow:1e3},divContainer:{width:64,height:32,whiteSpace:"nowrap",lineHeight:"32px",marginRight:8},dragField:{textAlign:"center",display:"table",minHeight:90,width:"calc(100% - 60px)",border:"2px dashed #777",borderRadius:10,padding:4},formIcon:{margin:10,opacity:.6},text:{display:"table-cell",verticalAlign:"middle"}};function M4e(i){var n,u,N,l;const e=i.icon,t=i.onChange,s=b.useCallback(c=>{const L=new FileReader;L.addEventListener("load",()=>t(L.result),!1),c[0]&&L.readAsDataURL(c[0])},[t]),{getRootProps:o,getInputProps:r,isDragActive:M}=sc({onDrop:s});return a.createElement("div",{style:Mt.formContainer},e?a.createElement(e,{style:Mt.formIcon}):null,a.createElement(g.FormControl,{variant:"standard",style:{...Mt.formControl,padding:3}},a.createElement(g.InputLabel,{shrink:!0,sx:(n=i.customStyles)!=null&&n.label?{"&.MuiInputLabel-root":i.customStyles.label}:void 0,classes:{root:(u=i.customClasses)==null?void 0:u.label}},i.label),a.createElement("div",{style:Mt.formContainer},i.value?a.createElement("div",{style:Mt.divContainer},a.createElement(Ie,{style:{...i.previewStyle,...((N=i.customStyles)==null?void 0:N.icon)||void 0},src:i.value,className:S.clsx(i.previewClassName,(l=i.customClasses)==null?void 0:l.icon)}),!i.disabled&&a.createElement(g.IconButton,{style:{verticalAlign:"top"},title:d.t("ra_Clear icon"),size:"small",onClick:()=>i.onChange("")},a.createElement(m.Clear,null))):!i.disabled&&a.createElement(lce,{icons:i.icons,onlyRooms:i.onlyRooms,onlyDevices:i.onlyDevices,onSelect:c=>i.onChange(c),t:d.t,lang:d.getLanguage()}),!i.disabled&&a.createElement("div",{...o(),style:{...Mt.dragField,...M?{backgroundColor:"rgba(0, 255, 0, 0.1)"}:{cursor:"pointer"}}},a.createElement("input",{...r()}),M?a.createElement("span",{style:Mt.text},d.t("ra_Drop the files here...")):a.createElement("span",{style:Mt.text},d.t("ra_Drag 'n' drop some files here, or click to select files"))))))}function Lce(i){const e=document.createElement("div");e.innerHTML=i;const t=e.firstElementChild;return t!=null&&t.remove?t.remove():t&&e.removeChild(t),e.remove(),t}function jce(i){const e={};if(!i)return e;for(let t,s=0;sr[1].toUpperCase()),e[t]=i[s].value}return e}class qs extends b.Component{svg;static REMOTE_SERVER=window.location.hostname.includes("iobroker.in");static REMOTE_PREFIX=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);constructor(e){var t;super(e),this.state={svg:!!((t=this.props.src)!=null&&t.startsWith("data:")),created:!0,color:this.props.color||"",src:this.props.src||"",imgError:!1,showError:!!this.props.showError},this.svg=this.state.svg&&this.state.src?this.getSvgFromData(this.state.src):null}static getDerivedStateFromProps(e,t){var r;const s={};let o=!1;return e&&t&&e.src!==t.src&&(s.src=e.src,s.svg=(r=e.src)==null?void 0:r.startsWith("data:"),s.created=!1,o=!0),e&&t&&e.color!==t.color&&(s.color=e.color,s.created=!1,o=!0),e&&t&&e.showError!==t.showError&&(s.showError=e.showError,o=!0),o?s:null}getSvgFromData(e){const t="data:image/svg+xml;base64,";if(!e.startsWith(t))return null;e=e.substring(t.length);try{e=atob(e);const s=Lce(e),o=s.innerHTML,r=jce(s.attributes);return s.remove(),a.createElement(g.Box,{component:"svg",sx:this.props.sx,className:this.props.className,style:this.state.color?{color:this.state.color}:void 0,...r,dangerouslySetInnerHTML:{__html:o}})}catch{}return null}render(){if(this.state.svg)return this.state.created||setTimeout(()=>{this.svg=this.state.src?this.getSvgFromData(this.state.src):null,this.setState({created:!0})},50),this.svg;if(this.state.src){if(this.state.imgError||!this.state.src)return a.createElement(Fo,{className:this.props.className});if(qs.REMOTE_SERVER&&!this.state.src.startsWith("http://")&&!this.state.src.startsWith("https://")){let e=(this.props.imagePrefix||"")+this.state.src;return e.startsWith("./")?e=qs.REMOTE_PREFIX+e.substring(2):e.startsWith("/")||(e=qs.REMOTE_PREFIX+e),a.createElement(g.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:`https://remote-files.iobroker.in${e}`,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return a.createElement(g.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:(this.props.imagePrefix||"")+this.state.src,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return null}}var R={},zi={},dt={};Object.defineProperty(dt,"__esModule",{value:!0});dt.StateType=dt.Types=void 0;var yM;(function(i){i.unknown="unknown",i.airCondition="airCondition",i.blind="blind",i.blindButtons="blindButtons",i.button="button",i.buttonSensor="buttonSensor",i.camera="camera",i.chart="chart",i.cie="cie",i.ct="ct",i.dimmer="dimmer",i.door="door",i.fireAlarm="fireAlarm",i.floodAlarm="floodAlarm",i.gate="gate",i.hue="hue",i.humidity="humidity",i.illuminance="illuminance",i.image="image",i.info="info",i.instance="instance",i.light="light",i.location="location",i.locationOne="locationOne",i.lock="lock",i.media="media",i.motion="motion",i.rgb="rgb",i.rgbSingle="rgbSingle",i.rgbwSingle="rgbwSingle",i.slider="slider",i.socket="socket",i.temperature="temperature",i.thermostat="thermostat",i.vacuumCleaner="vacuumCleaner",i.volume="volume",i.volumeGroup="volumeGroup",i.warning="warning",i.weatherCurrent="weatherCurrent",i.weatherForecast="weatherForecast",i.window="window",i.windowTilt="windowTilt"})(yM||(dt.Types=yM={}));var DM;(function(i){i.Number="number",i.String="string",i.Boolean="boolean"})(DM||(dt.StateType=DM={}));var De={};Object.defineProperty(De,"__esModule",{value:!0});De.checkEnum=ia;De.roleOrEnum=ss;De.roleOrEnumLight=gce;De.roleOrEnumBlind=Tce;De.roleOrEnumGate=yce;De.roleOrEnumWindow=Dce;De.roleOrEnumDoor=dce;De.getEnums=zce;De.getAllStatesInChannel=Ice;De.getAllStatesInDevice=wce;De.getObjectsBelowId=la;De.getFunctionEnums=Cce;De.getParentId=hce;function ia(i,e){let t=!1;return i&&i.forEach(s=>{const o=s.lastIndexOf(".");o!==-1&&(s=s.substring(o+1));for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&e[r].find(M=>M.test(s)))return t=!0,!1}),t}function ss(i,e,t,s){return i.common.role&&(t!=null&&t.includes(i.common.role))?!0:ia(e,s)}const oa={en:[/lights?/i,/lamps?/i,/ceilings?/i],de:[/licht(er)?/i,/lampen?/i,/beleuchtung(en)?/i],ru:[/свет/i,/ламп[аы]/i,/торшеры?/,/подсветк[аи]/i,/лампочк[аи]/i,/светильники?/i]},ra=["switch.light","dimmer","value.dimmer","level.dimmer","sensor.light","state.light"];function gce(i,e){return ss(i,e,ra,oa)}const Mi={en:[/blinds?/i,/windows?/i,/shutters?/i],de:[/rollladen?/i,/fenstern?/i,/beschattung(en)?/i,/jalousien?/i],ru:[/ставни/i,/рольставни/i,/окна|окно/,/жалюзи/i]},Ma=["blind","level.blind","value.blind","action.stop","button.stop","button.stop.blind","button.open.blind","button.close.blind","level.tilt","value.tilt","button.tilt.open","button.tilt.close","button.tilt.stop"];function Tce(i,e){return ss(i,e,Ma,Mi)}const na={en:[/gates?/i],de:[/^toren$/i,/^tor$/i],ru:[/ворота/i]},aa=["gate","value.gate","switch.gate","action.stop","button.stop"];function yce(i,e){return ss(i,e,aa,na)}const ca=["window","state.window","sensor.window","value.window"];function Dce(i,e){return ss(i,e,ca,Mi)}const ua={en:[/doors?/i,/gates?/i,/wickets?/i,/entry|entries/i],de:[/^türe?/i,/^tuere?/i,/^tore?$/i,/einfahrt(en)?/i,/pforten?/i],ru:[/двери|дверь/i,/ворота/i,/калитка|калитки/,/въезды?/i,/входы?/i]},Na=["door","state.door","sensor.door"];function dce(i,e){return ss(i,e,Na,ua)}function zce(){return{door:{roles:Na,words:ua},window:{roles:ca,words:Mi},blind:{roles:Ma,words:Mi},gate:{roles:aa,words:na},light:{roles:ra,words:oa}}}function Ice(i,e){const t=[],s=new RegExp(`^${e.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+$`);return i.forEach(o=>s.test(o)&&t.push(o)),t}function wce(i,e){const t=[],s=new RegExp(`^${e.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+\\.[^.]+$`);return i.forEach(o=>s.test(o)&&t.push(o)),t}function la(i,e){const t=[];e+=".";let s=0,o=i.length-1,r=-1;for(;s<=o;){const M=Math.floor((s+o)/2);i[M]=i.length)return t;for(let M=r;M{e[M].common.members.includes(t)&&r.push(M)}),!r.length&&((o=e[t])===null||o===void 0?void 0:o.type)==="state"){const M=(0,Nt.getParentId)(t);e[M]&&(e[M].type==="channel"||e[M].type==="device")&&this.enums.forEach(n=>{e[n].common.members.includes(M)&&r.push(n)})}return r.length?r:null}static copyState(e,t){const s=t||JSON.parse(JSON.stringify(e));return s.original=e.original||e,"enums"in e&&e.enums&&(s.enums=e.enums),"role"in e&&e.role&&(s.role=e.role),"channelRole"in e&&e.channelRole&&(s.channelRole=e.channelRole),s}_testOneState(e){var t,s,o,r,M,n;const u=e.objects,N=e.pattern,l=e.state,c=e.channelStates,L=e.usedIds,j=e.usedInCurrentDevice,T=e.ignoreIndicators,D=e.ignoreEnums,z=e.sortedKeys;let h=e.result,O=!1;for(const p of c)if(!(l.name==="COVER"&&(h!=null&&h.states.find(E=>E.id&&E.name==="COVER")))){if(l.indicator&&T){const C=p.split(".").pop()||"";if(C&&T.includes(C))continue}if((l.indicator||!j.includes(p)&&(l.notSingle||!L.includes(p)))&&this._applyPattern(u,p,l,D,z)){if(h||(h=JSON.parse(JSON.stringify(nt.patterns[N])),e.result=h,h==null||h.states.forEach((E,C)=>xe.copyState(nt.patterns[N].states[C],E))),h.states.find(({id:E})=>E===p))O=!0;else for(const E of h.states)if(E.name===l.name){if(E.id){let C;e.favorId&&(p===e.favorId?C=!0:E.id===e.favorId&&(C=!1));const I=(o=(s=(t=u[E.id])===null||t===void 0?void 0:t.common)===null||s===void 0?void 0:s.role)!==null&&o!==void 0?o:"",_=(n=(M=(r=u[p])===null||r===void 0?void 0:r.common)===null||M===void 0?void 0:M.role)!==null&&n!==void 0?n:"",k=E.defaultRole;if(k&&C===void 0&&(_===k?C=!0:I===k&&(C=!1)),C===void 0){const f=_.split("."),P=f.length,Y=I.split("."),V=Y.length;_===""||f[0]==="state"&&Y[0]!=="state"?C=!1:f[0]!=="state"&&Y[0]==="state"||P>V?C=!0:P1)){for(const E of c)if(E!==p&&(l.indicator||!j.includes(E)&&(l.notSingle||!L.includes(E)))&&this._applyPattern(u,E,l,D,z))if(l.indicator||j.push(E),Array.isArray(l)){const C=xe.copyState(l[0]);C.id=E,h.states.push(C)}else{const C=xe.copyState(l);C.id=E,h.states.push(C)}}}}return O}static findParentChannelOrDevice(e,t){if(!e[t])return;const s=t.split("."),o=t;if(e[t].type==="state"&&(s.pop(),t=s.join(".")),s.length<=2)return t;const r=e[t];if((r==null?void 0:r.type)==="device")return t;s.pop();const M=s.join("."),n=e[M];if(!n)return r?t:o;if(n.type==="device"||s.length<=2)return M;if(r.type==="channel")return t;s.pop();const u=s.join("."),N=e[u];return!N||N.type!=="device"&&N.type!=="channel"?M:u}static getChannelOrDeviceStates(e,t,s,o=!1){var r;const M=(r=e[t])===null||r===void 0?void 0:r.type;switch(M){case void 0:return[...(0,Nt.getObjectsBelowId)(s,t)];case"state":case"channel":case"device":case"folder":if(o&&M!=="device"){const n=xe.findParentChannelOrDevice(e,t);return n?[...(0,Nt.getObjectsBelowId)(s,n)]:[t]}return M!=="state"?[...(0,Nt.getObjectsBelowId)(s,t)]:[t];default:return[t]}}static patternIsAllowed(e,t,s){if(!e)return!1;if(Array.isArray(e.type)){for(let o=0;o{const r=e.indexOf(s),M=e.indexOf(o);if(r===-1||M===-1)return;const n=e.splice(r,1);e.splice(M,0,...n)}),e}_detectNext(e){var t,s,o,r;const{objects:M,id:n,_usedIdsOptional:u=[],ignoreIndicators:N,prioritizedTypes:l,detectParent:c,allowedTypes:L,excludedTypes:j,_keysOptional:T}=e;let{_patternList:D}=e;e._usedIdsOptional=u;const z=xe.getChannelOrDeviceStates(M,n,T||[],c);if(!(!((t=M[n])===null||t===void 0)&&t.common)&&!z.length)return null;if(e._checkedPatterns=(s=e._checkedPatterns)!==null&&s!==void 0?s:[],!D){const p=Object.keys(nt.patterns).filter(E=>xe.patternIsAllowed(nt.patterns[E],L,j));D=l?this.sortTypes(p,l):p,e._patternList=D}const h={objects:M,channelStates:z,usedIds:u,ignoreIndicators:N||[],pattern:It.Types.unknown,usedInCurrentDevice:[],state:{},ignoreEnums:!!e.ignoreEnums,sortedKeys:T,favorId:e.detectParent?void 0:n},O=(o=M[n])===null||o===void 0?void 0:o.type;for(const p of D){if(e._checkedPatterns.includes(p))continue;e._checkedPatterns.push(p),delete h.result,h.pattern=p,h.usedInCurrentDevice=[];for(const C of nt.patterns[p].states){let I=!1;if(h.state=C,this._testOneState(h)&&(I=!0),C.required&&!I){delete h.result;break}}if(!xe.allRequiredStatesFound(h))continue;h.usedInCurrentDevice.forEach(C=>u.push(C));let E;if(O!=="device"){const C=(r=xe.findParentChannelOrDevice(M,n))!==null&&r!==void 0?r:n;if(M[C]&&(M[C].type==="channel"||M[C].type==="device")){E=(0,Nt.getObjectsBelowId)(T,C);for(const I of E)h.result.states.forEach((_,k)=>{!_.id&&(_.indicator||_.searchInParent)&&!_.noDeviceDetection&&this._applyPattern(M,I,_.original,!!e.ignoreEnums,h.sortedKeys)&&h.result&&(h.result.states[k].id=I)})}}if(h.result.states.forEach(C=>xe.cleanState(C,h.objects)),e.limitTypesToOneOf){for(const C of e.limitTypesToOneOf)if(C.includes(p))for(const I of C)I===p||e._checkedPatterns.includes(I)||e._checkedPatterns.push(I)}return h.result}return null}detect(e){var t;const{objects:s,id:o,ignoreCache:r,detectAllPossibleDevices:M}=e;let{_keysOptional:n,_usedIdsOptional:u}=e;if(!r&&this.cache[o]){const{allowedTypes:c=[],excludedTypes:L=[]}=e;if(!c.length&&!L.length)return this.cache[o];const j=this.cache[o].filter(({type:T})=>c.includes(T)&&!L.includes(T));if(j.length)return j}n?e._keysOptionalSorted||n.sort():(n=Object.keys(s),n.sort(),e._keysOptional=n),u&&!e.detectParent&&(u=[],e._usedIdsOptional=u),e.ignoreEnums===void 0&&((t=e.allowedTypes)===null||t===void 0?void 0:t.length)===1&&(e.ignoreEnums=!0),M&&(e.excludedTypes||(e.excludedTypes=[]),e.excludedTypes.includes(It.Types.info)||e.excludedTypes.push(It.Types.info)),e._checkedPatterns=[];const N=[];let l;for(;l=this._detectNext(e);)N.push(l),e.detectAllPossibleDevices&&(e._usedIdsOptional=[]);return this.cache[o]=N.length?N:null,this.cache[o]}static getPatterns(){const e={};return Object.keys(nt.patterns).forEach(t=>{const s=JSON.parse(JSON.stringify(nt.patterns[t]));s.states.forEach((o,r)=>{const M=nt.patterns[t].states[r];M.role&&(s.states[r].role=M.role.toString()),M.enums&&(s.states[r].enums=!0)}),e[t]=s}),e}}zi.ChannelDetector=xe;xe.getEnums=Nt.getEnums;(function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.StateType=i.Types=void 0;const e=zi;i.default=e.ChannelDetector;var t=dt;Object.defineProperty(i,"Types",{enumerable:!0,get:function(){return t.Types}}),Object.defineProperty(i,"StateType",{enumerable:!0,get:function(){return t.StateType}})})(R);var La={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},dM=a.createContext&&a.createContext(La),Ace=["attr","size","title"];function pce(i,e){if(i==null)return{};var t=mce(i,e),s,o;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(i);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(i,s)&&(t[s]=i[s])}return t}function mce(i,e){if(i==null)return{};var t={};for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){if(e.indexOf(s)>=0)continue;t[s]=i[s]}return t}function ni(){return ni=Object.assign?Object.assign.bind():function(i){for(var e=1;ea.createElement(e.tag,ai({key:t},e.attr),ja(e.child)))}function v(i){return e=>a.createElement(Sce,ni({attr:ai({},i.attr)},e),ja(i.child))}function Sce(i){var e=t=>{var{attr:s,size:o,title:r}=i,M=pce(i,Ace),n=o||t.size||"1em",u;return t.className&&(u=t.className),i.className&&(u=(u?u+" ":"")+i.className),a.createElement("svg",ni({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,s,M,{className:u,style:ai(ai({color:i.color||t.color},t.style),i.style),height:n,width:n,xmlns:"http://www.w3.org/2000/svg"}),r&&a.createElement("title",null,r),i.children)};return dM!==void 0?a.createElement(dM.Consumer,null,t=>e(t)):e(La)}function xce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"},child:[]}]})(i)}function fce(i){return v({attr:{t:"1569683928793",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H212V212h200v200zM864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H612V212h200v200zM864 544H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z m-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"},child:[]}]})(i)}function kce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"},child:[]}]})(i)}function Yce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z"},child:[]}]})(i)}function Qce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z"},child:[]}]})(i)}function Uce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z"},child:[]}]})(i)}function vce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"},child:[]}]})(i)}function bce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"},child:[]}]})(i)}function $ce(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M24 5.25v13a.75.75 0 0 1-1.136.643L16.5 15.075v2.175A1.75 1.75 0 0 1 14.75 19h-13A1.75 1.75 0 0 1 0 17.25v-11C0 5.284.784 4.5 1.75 4.5h13c.966 0 1.75.784 1.75 1.75v2.175l6.364-3.818A.75.75 0 0 1 24 5.25Zm-9 1a.25.25 0 0 0-.25-.25h-13a.25.25 0 0 0-.25.25v11c0 .138.112.25.25.25h13a.25.25 0 0 0 .25-.25v-11Zm1.5 7.075 6 3.6V6.575l-6 3.6Z"},child:[]}]})(i)}function Pce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"},child:[]}]})(i)}function Wce(i){return v({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"},child:[]}]})(i)}function Rce(i){return v({attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"},child:[]}]})(i)}function Jce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"},child:[]}]})(i)}function Bce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"},child:[]}]})(i)}function Fce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"},child:[]}]})(i)}function Gce(i){return v({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"},child:[]}]})(i)}function Hce(i){return v({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"},child:[]}]})(i)}function Vce(i){return v({attr:{viewBox:"0 0 416 512"},child:[{tag:"path",attr:{d:"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"},child:[]}]})(i)}function Zce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"},child:[]}]})(i)}function Xce(i){return v({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"},child:[]}]})(i)}function Kce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"},child:[]}]})(i)}function qce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"},child:[]}]})(i)}function IM(i){return v({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"},child:[]}]})(i)}function eue(i){return v({attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"},child:[]}]})(i)}function tue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"},child:[]}]})(i)}function sue(i){return v({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"},child:[]}]})(i)}function iue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"},child:[]}]})(i)}function oue(i){return v({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"},child:[]}]})(i)}function wM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"},child:[]}]})(i)}function rue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15zM14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"},child:[]}]})(i)}function CM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"},child:[]}]})(i)}function Mue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},child:[]}]})(i)}function hM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"},child:[]}]})(i)}function nue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.54 5.54 13.77 7.3 12 5.54 10.23 7.3 8.46 5.54 12 2zm2.92 10-1.76-1.77L18.46 12l-1.76-1.77 1.76-1.77L22 12zm-10 2.92 1.77-1.76L12 18.46l1.77-1.76 1.77 1.76L12 22zm-2.92-10 1.76 1.77L5.54 12l1.76 1.77-1.76 1.77L2 12z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]}]})(i)}function aue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M8.4 18.2c.38.5.6 1.12.6 1.8 0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3c.44 0 .85.09 1.23.26l1.41-1.77a4.504 4.504 0 0 1-1.09-3.69l-2.03-.68A2.997 2.997 0 0 1 0 9.5c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .07 0 .14-.01.21l2.03.68a4.468 4.468 0 0 1 3.22-2.32V5.91A3.018 3.018 0 0 1 9 3c0-1.66 1.34-3 3-3s3 1.34 3 3c0 1.4-.96 2.57-2.25 2.91v2.16c1.4.23 2.58 1.11 3.22 2.32L18 9.71V9.5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-1.06 0-1.98-.55-2.52-1.37l-2.03.68a4.49 4.49 0 0 1-1.09 3.69l1.41 1.77c.38-.18.79-.27 1.23-.27 1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.68.22-1.3.6-1.8l-1.41-1.77c-1.35.75-3.01.76-4.37 0L8.4 18.2z"},child:[]}]})(i)}function AM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z"},child:[]}]})(i)}function cue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17 6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z"},child:[]}]})(i)}function uue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(i)}function pM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.56 8.94 7.62 0 6.21 1.41l2.38 2.38-5.15 5.15a1.49 1.49 0 0 0 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10 10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5zM2 20h20v4H2v-4z"},child:[]}]})(i)}function Nue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15 16v1.26l-6-3v-3.17L11.7 8H16V2h-6v4.9L7.3 10H3v6h5l7 3.5V22h6v-6z"},child:[]}]})(i)}function lue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m17 16-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z"},child:[]}]})(i)}function Lue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z"},child:[]}]})(i)}function jue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"19",r:"2"},child:[]},{tag:"path",attr:{d:"M10 3h4v12h-4z"},child:[]}]})(i)}function gue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(i)}function mM(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M3.89,17.6c0-0.99,0.31-1.88,0.93-2.65s1.41-1.27,2.38-1.49c0.26-1.17,0.85-2.14,1.78-2.88c0.93-0.75,2-1.12,3.22-1.12 +`;function ZMe(){try{return window.self!==window.top}catch{return!0}}class At extends Ts{socket;isIFrame=ZMe();instance;adapterName;instanceId;newReact;encryptedFields;sentryDSN;alertDialogRendered;_secret;_systemConfig;savedNative;common=null;sentryStarted=!1;sentryInited=!1;resizeTimer=null;constructor(e,t){const s=e.Connection||(t==null?void 0:t.Connection)||je;if(!window.document.getElementById("generic-app-iobroker-component")){const l=window.document.createElement("style");l.setAttribute("id","generic-app-iobroker-component"),l.innerHTML=VMe,window.document.head.appendChild(l)}if(!At.isWeb()&&window.io&&window.location.port==="3000")try{const l=new window.SocketClient;delete window.io,window.io=l}catch{}super(e),Q4();const o=(window.location.search||"").replace(/^\?/,"").replace(/#.*$/,""),r={};o.trim().split("&").filter(l=>l.trim()).forEach(l=>{const c=l.split("=");r[c[0]]=c.length===2?c[1]:!0,r[c[0]]==="true"?r[c[0]]=!0:r[c[0]]==="false"&&(r[c[0]]=!1)}),this.instance=(t==null?void 0:t.instance)??e.instance??(r.instance!==void 0?parseInt(r.instance,10)||0:parseInt(window.location.search.slice(1),10)||0);const M=window.location.pathname.split("/");this.adapterName=(t==null?void 0:t.adapterName)||e.adapterName||window.adapterName||M[M.length-2]||"iot",this.instanceId=`system.adapter.${this.adapterName}.${this.instance}`,this.newReact=r.newReact===!0;const a=Ts.getLocation();a.tab=a.tab||(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"";const u=this.createTheme();this.state=Object.assign(this.state||{},{selectedTab:(window._localStorage||window.localStorage).getItem(`${this.adapterName}-adapter`)||"",selectedTabNum:-1,native:{},errorText:"",changed:!1,connected:!1,loaded:!1,isConfigurationError:"",expertMode:!1,toast:"",theme:u,themeName:this.getThemeName(u),themeType:this.getThemeType(u),bottomButtons:(t&&t.bottomButtons)===!1?!1:(e==null?void 0:e.bottomButtons)!==!1,width:At.getWidth(),confirmClose:!1,_alert:!1,_alertType:"info",_alertMessage:""});const N=HMe;t!=null&&t.translations?Object.keys(t.translations).forEach(l=>{t.translations&&(N[l]=Object.assign(N[l],t.translations[l]||{}))}):e.translations&&Object.keys(e.translations).forEach(l=>{e.translations&&(N[l]=Object.assign(N[l],e.translations[l]||{}))}),d.setTranslations(N),this.savedNative={},this.encryptedFields=e.encryptedFields||(t==null?void 0:t.encryptedFields)||[],this.sentryDSN=t&&t.sentryDSN||e.sentryDSN,window.socketUrl&&(window.socketUrl.startsWith(":")?window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`:!window.socketUrl.startsWith("http://")&&!window.socketUrl.startsWith("https://")&&(window.socketUrl=`${window.location.protocol}//${window.socketUrl}`)),this.alertDialogRendered=!1,window.iobOldAlert||(window.iobOldAlert=window.alert),window.alert=l=>{if(!this.alertDialogRendered){window.iobOldAlert(l);return}l!=null&&l.toString().toLowerCase().includes("error")?(console.error(l),this.showAlert(l.toString(),"error")):(console.log(l),this.showAlert(l.toString(),"info"))},this.socket=new s({...(e==null?void 0:e.socket)||(t==null?void 0:t.socket),name:this.adapterName,doNotLoadAllObjects:t==null?void 0:t.doNotLoadAllObjects,onProgress:l=>{l===Re.CONNECTING?this.setState({connected:!1}):l===Re.READY?this.setState({connected:!0}):this.setState({connected:!0})},onReady:()=>{d.setLanguage(this.socket.systemLang),this.socket.subscribeObject("system.config",this.onSystemConfigChanged).then(()=>this.getSystemConfig()).then(l=>(this._secret=typeof l<"u"&&l.native&&l.native.secret||"Zgfr56gFe87jJOM",this._systemConfig=(l==null?void 0:l.common)||{},this.socket.getObject(this.instanceId))).then(async l=>{var D,I;let c;const L=l,T=((D=await this.socket.getState(`${this.instanceId}.plugins.sentry.enabled`))==null?void 0:D.val)!==!1&&((I=this._systemConfig)==null?void 0:I.diag)!=="none"&&(L==null?void 0:L.common)&&L.common.name&&L.common.version&&!L.common.disableDataReporting&&window.location.host!=="localhost:3000";!this.sentryStarted&&this.sentryDSN&&T&&(this.sentryStarted=!0,Y4({dsn:this.sentryDSN,release:`iobroker.${L.common.name}@${L.common.version}`,integrations:[Wn()]}),console.log("Sentry initialized")),!this.sentryInited&&T&&(this.sentryInited=!0,c=this.socket.getObject("system.meta.uuid").then(C=>{C&&C.native&&C.native.uuid&&ot().setUser({id:C.native.uuid})})),c=c instanceof Promise?c:Promise.resolve(),c.then(()=>{L?(this.common=L==null?void 0:L.common,this.onPrepareLoad(L.native,L.encryptedNative),this.savedNative=JSON.parse(JSON.stringify(L.native)),this.setState({native:L.native,loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady())):(console.warn("Cannot load instance settings"),this.setState({native:{},loaded:!0,expertMode:this.getExpertMode()},()=>this.onConnectionReady&&this.onConnectionReady()))})}).catch(l=>window.alert(`Cannot settings: ${l}`))},onError:l=>{console.error(l),this.showError(l)}})}static isWeb(){return window.socketUrl!==void 0}showAlert(e,t){t!=="error"&&t!=="warning"&&t!=="info"&&t!=="success"&&(t="info"),this.setState({_alert:!0,_alertType:t,_alertMessage:e})}renderAlertSnackbar(){return this.alertDialogRendered=!0,n.createElement(g.Snackbar,{style:this.state._alertType==="error"?{backgroundColor:"#f44336"}:this.state._alertType==="success"?{backgroundColor:"#4caf50"}:void 0,open:this.state._alert,autoHideDuration:6e3,onClose:(e,t)=>t!=="clickaway"&&this.setState({_alert:!1}),message:this.state._alertMessage})}onSystemConfigChanged=(e,t)=>{var s,o;t&&e==="system.config"&&(this.socket.systemLang!==(t==null?void 0:t.common.language)&&(this.socket.systemLang=(t==null?void 0:t.common.language)||"en",d.setLanguage(this.socket.systemLang)),((s=this._systemConfig)==null?void 0:s.expertMode)!==!!((o=t==null?void 0:t.common)!=null&&o.expertMode)?(this._systemConfig=(t==null?void 0:t.common)||{},this.setState({expertMode:this.getExpertMode()})):this._systemConfig=(t==null?void 0:t.common)||{})};componentDidMount(){window.addEventListener("resize",this.onResize,!0),window.addEventListener("message",this.onReceiveMessage,!1),super.componentDidMount()}componentWillUnmount(){window.removeEventListener("resize",this.onResize,!0),window.removeEventListener("message",this.onReceiveMessage,!1),window.iobOldAlert&&(window.alert=window.iobOldAlert,delete window.iobOldAlert),super.componentWillUnmount()}onReceiveMessage=e=>{if(e!=null&&e.data)if(e.data==="updateTheme"){const t=S.getThemeName();S.setThemeName(S.getThemeName());const s=this.createTheme(t);this.setState({theme:s,themeName:this.getThemeName(s),themeType:this.getThemeType(s)},()=>{this.props.onThemeChange&&this.props.onThemeChange(t),this.onThemeChanged&&this.onThemeChanged(t)})}else e.data==="updateExpertMode"?this.onToggleExpertMode&&this.onToggleExpertMode(this.getExpertMode()):e.data!=="chartReady"&&console.debug(`Received unknown message: "${JSON.stringify(e.data)}". May be it will be processed later`)};onResize=()=>{this.resizeTimer&&clearTimeout(this.resizeTimer),this.resizeTimer=setTimeout(()=>{this.resizeTimer=null,this.setState({width:At.getWidth()})},200)};static getWidth(){const e={xs:0,sm:600,md:960,lg:1280,xl:1920},t=window.innerWidth;return Object.keys(e).reverse().find(r=>t>=e[r])||"xs"}createTheme(e){return cc(S.getThemeName(e))}getThemeName(e){return e.name}getThemeType(e){return e.palette.mode}onThemeChanged(e){}onToggleExpertMode(e){}toggleTheme(e){const t=this.state.themeName;if(e=e||(t==="dark"||t==="blue"||t==="colored"?"light":"dark"),e!==t){S.setThemeName(e);const s=this.createTheme(e);this.setState({theme:s,themeName:this.getThemeName(s),themeType:this.getThemeType(s)},()=>{this.props.onThemeChange&&this.props.onThemeChange(e||"light"),this.onThemeChanged&&this.onThemeChanged(e||"light")})}}getSystemConfig(){return this.socket.getSystemConfig()}getExpertMode(){var e;return window.sessionStorage.getItem("App.expertMode")==="true"||!!((e=this._systemConfig)!=null&&e.expertMode)}onConnectionReady(){}encrypt(e){let t="";if(this._secret)for(let s=0;s{e[s]&&(e[s]=this.encrypt(e[s]))}),!0}onPrepareLoad(e,t){var s;(s=this.encryptedFields)==null||s.forEach(o=>{e[o]&&(e[o]=this.decrypt(e[o]))}),t==null||t.forEach(o=>{this.encryptedFields=this.encryptedFields||[],!this.encryptedFields.includes(o)&&this.encryptedFields.push(o),e[o]&&(e[o]=this.decrypt(e[o]))})}async getExtendableInstances(){try{const e=await this.socket.getObjectViewSystem("instance","system.adapter.","system.adapter.香");return Object.values(e).filter(t=>{var s;return!!((s=t==null?void 0:t.common)!=null&&s.webExtendable)})}catch{return[]}}async getIpAddresses(e){var r;const t=await this.socket.getHostByIp(e||((r=this.common)==null?void 0:r.host)||""),s=t.find(M=>M.address==="0.0.0.0");s&&(s.name=`[IPv4] 0.0.0.0 - ${d.t("ra_Listen on all IPs")}`);const o=t.find(M=>M.address==="::");return o&&(o.name=`[IPv4] :: - ${d.t("ra_Listen on all IPs")}`),t}onSave(e){let t;if(this.state.isConfigurationError){this.setState({errorText:this.state.isConfigurationError});return}this.socket.getObject(this.instanceId).then(s=>{t=s||{};for(const o in this.state.native)Object.prototype.hasOwnProperty.call(this.state.native,o)&&(this.state.native[o]===null?t.native[o]=null:this.state.native[o]!==void 0?t.native[o]=JSON.parse(JSON.stringify(this.state.native[o])):delete t.native[o]);if(this.state.common)for(const o in this.state.common)this.state.common[o]===null?t.common[o]=null:this.state.common[o]!==void 0?t.common[o]=JSON.parse(JSON.stringify(this.state.common[o])):delete t.common[o];return this.onPrepareSave(t.native)!==!1?this.socket.setObject(this.instanceId,t):Promise.reject(new Error("Invalid configuration"))}).then(()=>{this.savedNative=t.native,globalThis.changed=!1;try{window.parent.postMessage("nochange","*")}catch{}this.setState({changed:!1},()=>{e&&At.onClose()})}).catch(s=>console.error(`Cannot save configuration: ${s}`))}renderToast(){return this.state.toast?n.createElement(g.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:n.createElement("span",{id:"message-id"},this.state.toast),action:[n.createElement(g.IconButton,{key:"close","aria-label":"Close",color:"inherit",onClick:()=>this.setState({toast:""}),size:"large"},n.createElement(m.Close,null))]}):null}static onClose(){if(typeof window.parent<"u"&&window.parent)try{window.parent.$iframeDialog&&typeof window.parent.$iframeDialog.close=="function"?window.parent.$iframeDialog.close():window.parent.postMessage("close","*")}catch{window.parent.postMessage("close","*")}}renderError(){return this.state.errorText?n.createElement(qn,{text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}getIsChanged(e){e=e||this.state.native;const t=JSON.stringify(e)!==JSON.stringify(this.savedNative);return globalThis.changed=t,t}onLoadConfig(e){JSON.stringify(e)!==JSON.stringify(this.state.native)&&this.setState({native:e,changed:this.getIsChanged(e)})}setConfigurationError(e){this.state.isConfigurationError!==e&&this.setState({isConfigurationError:e})}renderSaveCloseButtons(){return!this.state.confirmClose&&!this.state.bottomButtons?null:n.createElement(n.Fragment,null,this.state.bottomButtons?n.createElement(J4,{theme:this.state.theme,newReact:this.newReact,noTextOnButtons:this.state.width==="xs"||this.state.width==="sm"||this.state.width==="md",changed:this.state.changed,onSave:e=>this.onSave(e),onClose:()=>{this.state.changed?this.setState({confirmClose:!0}):At.onClose()},error:!!this.state.isConfigurationError}):null,this.state.confirmClose?n.createElement(Kn,{title:d.t("ra_Please confirm"),text:d.t("ra_Some data are not stored. Discard?"),ok:d.t("ra_Discard"),cancel:d.t("ra_Cancel"),onClose:e=>this.setState({confirmClose:!1},()=>e&&At.onClose())}):null)}_updateNativeValue(e,t,s){typeof t!="object"&&(t=t.split("."));const o=t.shift()||"";if(!t.length)return s&&typeof s=="object"?JSON.stringify(e[o])!==JSON.stringify(s)?(e[o]=s,!0):!1:e[o]!==s?(e[o]=s,!0):!1;if(e[o]=e[o]||{},typeof e[o]!="object")throw new Error(`attribute ${o} is no object, but ${typeof e[o]}`);return this._updateNativeValue(e[o],t,s)}updateNativeValue(e,t,s){const o=JSON.parse(JSON.stringify(this.state.native));if(this._updateNativeValue(o,e,t)){const r=this.getIsChanged(o);if(r!==this.state.changed)try{window.parent.postMessage(r?"change":"nochange","*")}catch{}this.setState({native:o,changed:r},s)}}showError(e){this.setState({errorText:e})}showToast(e){this.setState({toast:e})}renderHelperDialogs(){return n.createElement(n.Fragment,null,this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar())}render(){return this.state.loaded?n.createElement("div",{className:"App"},this.renderError(),this.renderToast(),this.renderSaveCloseButtons(),this.renderAlertSnackbar()):n.createElement(v4,{themeType:this.state.themeType})}}const Qe={color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{mt:"16px",p:"5px",backgroundColor:"background.paper",borderRadius:"1px",boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{"& .MuiPaper-root":{textAlign:"right",backgroundColor:"#00000000",boxShadow:"none"}},popoverList:{padding:0},closeButton:i=>({backgroundColor:`${i.palette.background.paper} !important`,borderRadius:"0 0 25% 25%","&:hover":{backgroundColor:`${i.palette.secondary.main} !important`}}),textDense:{mt:0,mb:0},iconButton:{width:16,height:16},button:{width:32,height:32,minWidth:32,minHeight:32}};class Ls extends b.Component{constructor(e){super(e),this.state={displayColorPicker:!1,color:this.props.value||this.props.color||"",anchorEl:null}}handleClick=e=>{this.setState({displayColorPicker:!this.state.displayColorPicker,anchorEl:this.state.displayColorPicker?null:e.currentTarget})};handleClose=()=>{this.setState({displayColorPicker:!1,anchorEl:null})};static getColor(e,t){if(e&&typeof e=="object"){const s=e;if(s.rgb)return t?`#${s.rgb.r.toString(16).padStart(2,"0")}${s.rgb.g.toString(16).padStart(2,"0")}${s.rgb.b.toString(16).padStart(2,"0")}`:`rgba(${s.rgb.r},${s.rgb.g},${s.rgb.b},${s.rgb.a})`;const o=e;return t?`#${o.r.toString(16).padStart(2,"0")}${o.g.toString(16).padStart(2,"0")}${o.b.toString(16).padStart(2,"0")}`:`rgba(${o.r},${o.g},${o.b},${o.a})`}return typeof e=="string"?t?Ls.rgb2hex(e||""):e||"":""}static rgb2hex(e){const t=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);if(t){const s=parseInt(t[1],10).toString(16).padStart(2,"0"),o=parseInt(t[2],10).toString(16).padStart(2,"0"),r=parseInt(t[3],10).toString(16).padStart(2,"0");return(t==null?void 0:t.length)===4?`#${s}${o}${r}`:e}return e}handleChange=e=>{this.setState({color:e},()=>this.props.onChange&&this.props.onChange(Ls.getColor(e)))};componentDidUpdate(e,t){const s=Ls.getColor(this.props.color||this.props.value||"");s!==t.color&&this.setState({color:s})}renderCustomPalette(){return this.props.customPalette?n.createElement("div",{style:{width:"100%",display:"flex",flexWrap:"wrap"}},this.props.customPalette.map(e=>n.createElement(g.Button,{style:Qe.button,key:e,onClick:()=>{this.handleChange(e),setTimeout(()=>this.handleClose(),300)}},n.createElement("div",{style:{...Qe.iconButton,background:e}})))):null}render(){var s;const e={...this.props.style||{}};e.position="relative";const{color:t}=this.state;return n.createElement(g.Box,{component:"div",style:e,sx:this.props.sx||void 0,className:this.props.className||""},this.props.noInputField?null:n.createElement(g.TextField,{disabled:this.props.disabled,variant:"standard",id:"ar_color_picker_name",label:this.props.label||this.props.name,value:t||"",margin:"dense",sx:{"&.MuiFormControl-root":Qe.textDense,width:t?"calc(100% - 80px)":"calc(100% - 56px)",mr:t?void 0:1},onChange:o=>this.handleChange(o.target.value)}),!this.props.noInputField&&t?n.createElement(g.IconButton,{disabled:this.props.disabled,onClick:()=>this.handleChange(""),size:"small",style:this.props.label||this.props.name?Qe.delButton:void 0},n.createElement(m.Delete,null)):null,n.createElement(g.Box,{component:"div",onClick:o=>!this.props.disabled&&this.handleClick(o),title:d.t("ra_Select color"),sx:{...Qe.swatch,...this.props.disabled?Qe.swatchDisabled:void 0,background:t?void 0:"transparent",border:t?void 0:"1px dashed #ccc",boxSizing:"border-box",marginTop:this.props.noInputField||!(this.props.label||this.props.name)?0:void 0}},n.createElement("div",{style:{...Qe.color,background:Ls.getColor(t),width:this.props.noInputField?this.props.barWidth||16:this.props.barWidth||36}})),this.state.displayColorPicker&&!this.props.disabled?n.createElement(g.Menu,{sx:{...Qe.popover,"&. MuiMenu-list":Qe.popoverList},anchorEl:this.state.anchorEl,open:!0,onClose:()=>this.handleClose()},n.createElement(ic,{color:this.state.color||void 0,onChangeComplete:o=>this.handleChange(o.rgb),styles:{default:{picker:{backgroundColor:((s=this.props.theme)==null?void 0:s.palette.background.paper)||"#888"}}}}),t&&this.props.noInputField?n.createElement(g.IconButton,{sx:Qe.closeButton,onClick:()=>this.handleChange("")},n.createElement(m.Delete,null)):null,n.createElement(g.IconButton,{sx:Qe.closeButton,onClick:()=>this.handleClose()},n.createElement(m.Close,null)),this.renderCustomPalette()):null)}}var ea={exports:{}};(function(i,e){(function(s,o){i.exports=o()})(globalThis,()=>(()=>{var t={949:(M,a,u)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.CronParser=void 0;var N=u(515),l=function(){function c(L,j,T){j===void 0&&(j=!0),T===void 0&&(T=!1),this.expression=L,this.dayOfWeekStartIndexZero=j,this.monthStartIndexZero=T}return c.prototype.parse=function(){var L,j,T=(L=this.expression)!==null&&L!==void 0?L:"";if(T==="@reboot")return j=["@reboot","","","","","",""],j;if(T.startsWith("@")){var D=this.parseSpecial(this.expression);j=this.extractParts(D)}else j=this.extractParts(this.expression);return this.normalize(j),this.validate(j),j},c.prototype.parseSpecial=function(L){var j={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *","@reboot":"@reboot"},T=j[L];if(!T)throw new Error("Unknown special expression.");return T},c.prototype.extractParts=function(L){if(!this.expression)throw new Error("cron expression is empty");for(var j=L.trim().split(/[ ]+/),T=0;T7)throw new Error("Expression has ".concat(j.length," parts; too many!"));return j},c.prototype.normalize=function(L){var j=this;if(L[3]=L[3].replace("?","*"),L[5]=L[5].replace("?","*"),L[2]=L[2].replace("?","*"),L[0].indexOf("0/")==0&&(L[0]=L[0].replace("0/","*/")),L[1].indexOf("0/")==0&&(L[1]=L[1].replace("0/","*/")),L[2].indexOf("0/")==0&&(L[2]=L[2].replace("0/","*/")),L[3].indexOf("1/")==0&&(L[3]=L[3].replace("1/","*/")),L[4].indexOf("1/")==0&&(L[4]=L[4].replace("1/","*/")),L[6].indexOf("1/")==0&&(L[6]=L[6].replace("1/","*/")),L[5]=L[5].replace(/(^\d)|([^#/\s]\d)/g,function(p){var z=p.replace(/\D/,""),O=z;return j.dayOfWeekStartIndexZero?z=="7"&&(O="0"):O=(parseInt(z)-1).toString(),p.replace(z,O)}),L[5]=="L"&&(L[5]="6"),L[3]=="?"&&(L[3]="*"),L[3].indexOf("W")>-1&&(L[3].indexOf(",")>-1||L[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var T={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var D in T)L[5]=L[5].replace(new RegExp(D,"gi"),T[D].toString());L[4]=L[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(p){var z=p.replace(/\D/,""),O=z;return j.monthStartIndexZero&&(O=(parseInt(z)+1).toString()),p.replace(z,O)});var I={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var C in I)L[4]=L[4].replace(new RegExp(C,"gi"),I[C].toString());L[0]=="0"&&(L[0]=""),!/\*|\-|\,|\//.test(L[2])&&(/\*|\//.test(L[1])||/\*|\//.test(L[0]))&&(L[2]+="-".concat(L[2]));for(var E=0;E-1&&!/^\*|\-|\,/.test(L[E])){var A=null;switch(E){case 4:A="12";break;case 5:A="6";break;case 6:A="9999";break;default:A=null;break}if(A!==null){var _=L[E].split("/");L[E]="".concat(_[0],"-").concat(A,"/").concat(_[1])}}},c.prototype.validate=function(L){var j="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(L[0],j),this.validateOnlyExpectedCharactersFound(L[1],j),this.validateOnlyExpectedCharactersFound(L[2],j),this.validateOnlyExpectedCharactersFound(L[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(L[4],j),this.validateOnlyExpectedCharactersFound(L[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(L[6],j),this.validateAnyRanges(L)},c.prototype.validateAnyRanges=function(L){N.default.secondRange(L[0]),N.default.minuteRange(L[1]),N.default.hourRange(L[2]),N.default.dayOfMonthRange(L[3]),N.default.monthRange(L[4],this.monthStartIndexZero),N.default.dayOfWeekRange(L[5],this.dayOfWeekStartIndexZero)},c.prototype.validateOnlyExpectedCharactersFound=function(L,j){var T=L.match(new RegExp("[^".concat(j,"]+"),"gi"));if(T&&T.length)throw new Error("Expression contains invalid values: '".concat(T.toString(),"'"))},c}();a.CronParser=l},333:(M,a,u)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.ExpressionDescriptor=void 0;var N=u(823),l=u(949),c=function(){function L(j,T){if(this.expression=j,this.options=T,this.expressionParts=new Array(5),!this.options.locale&&L.defaultLocale&&(this.options.locale=L.defaultLocale),!L.locales[this.options.locale]){var D=Object.keys(L.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(D,"'.")),this.options.locale=D}this.i18n=L.locales[this.options.locale],T.use24HourTimeFormat===void 0&&(T.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return L.toString=function(j,T){var D=T===void 0?{}:T,I=D.throwExceptionOnParseError,C=I===void 0?!0:I,E=D.verbose,A=E===void 0?!1:E,_=D.dayOfWeekStartIndexZero,p=_===void 0?!0:_,z=D.monthStartIndexZero,O=z===void 0?!1:z,k=D.use24HourTimeFormat,f=D.locale,P=f===void 0?null:f,Y={throwExceptionOnParseError:C,verbose:A,dayOfWeekStartIndexZero:p,monthStartIndexZero:O,use24HourTimeFormat:k,locale:P};Y.tzOffset&&console.warn("'tzOffset' option has been deprecated and is no longer supported.");var V=new L(j,Y);return V.getFullDescription()},L.initialize=function(j,T){T===void 0&&(T="en"),L.specialCharacters=["/","-",",","*"],L.defaultLocale=T,j.load(L.locales)},L.prototype.getFullDescription=function(){var j,T,D="";try{var I=new l.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);if(this.expressionParts=I.parse(),this.expressionParts[0]==="@reboot")return((T=(j=this.i18n).atReboot)===null||T===void 0?void 0:T.call(j))||"Run once, at startup";var C=this.getTimeOfDayDescription(),E=this.getDayOfMonthDescription(),A=this.getMonthDescription(),_=this.getDayOfWeekDescription(),p=this.getYearDescription();D+=C+E+_+A+p,D=this.transformVerbosity(D,!!this.options.verbose),D=D.charAt(0).toLocaleUpperCase()+D.substr(1)}catch(z){if(!this.options.throwExceptionOnParseError)D=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(z)}return D},L.prototype.getTimeOfDayDescription=function(){var j=this.expressionParts[0],T=this.expressionParts[1],D=this.expressionParts[2],I="";if(!N.StringUtilities.containsAny(T,L.specialCharacters)&&!N.StringUtilities.containsAny(D,L.specialCharacters)&&!N.StringUtilities.containsAny(j,L.specialCharacters))I+=this.i18n.atSpace()+this.formatTime(D,T,j);else if(!j&&T.indexOf("-")>-1&&!(T.indexOf(",")>-1)&&!(T.indexOf("/")>-1)&&!N.StringUtilities.containsAny(D,L.specialCharacters)){var C=T.split("-");I+=N.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(D,C[0],""),this.formatTime(D,C[1],""))}else if(!j&&D.indexOf(",")>-1&&D.indexOf("-")==-1&&D.indexOf("/")==-1&&!N.StringUtilities.containsAny(T,L.specialCharacters)){var E=D.split(",");I+=this.i18n.at();for(var A=0;A-1?E=I.substring(0,I.indexOf("#")):I.indexOf("L")>-1&&(E=E.replace("L",""));var A=parseInt(E),_=j.i18n.daysOfTheWeekInCase?j.i18n.daysOfTheWeekInCase(C)[A]:T[A];if(I.indexOf("#")>-1){var p=null,z=I.substring(I.indexOf("#")+1),O=I.substring(0,I.indexOf("#"));switch(z){case"1":p=j.i18n.first(O);break;case"2":p=j.i18n.second(O);break;case"3":p=j.i18n.third(O);break;case"4":p=j.i18n.fourth(O);break;case"5":p=j.i18n.fifth(O);break}_=p+" "+_}return _},function(I){return parseInt(I)==1?"":N.StringUtilities.format(j.i18n.commaEveryX0DaysOfTheWeek(I),I)},function(I){var C=I.substring(0,I.indexOf("-")),E=j.expressionParts[3]!="*";return E?j.i18n.commaAndX0ThroughX1(C):j.i18n.commaX0ThroughX1(C)},function(I){var C=null;if(I.indexOf("#")>-1){var E=I.substring(I.indexOf("#")+1),A=I.substring(0,I.indexOf("#"));C=j.i18n.commaOnThe(E,A).trim()+j.i18n.spaceX0OfTheMonth()}else if(I.indexOf("L")>-1)C=j.i18n.commaOnTheLastX0OfTheMonth(I.replace("L",""));else{var _=j.expressionParts[3]!="*";C=_?j.i18n.commaAndOnX0():j.i18n.commaOnlyOnX0(I)}return C}),D},L.prototype.getMonthDescription=function(){var j=this,T=this.i18n.monthsOfTheYear(),D=this.getSegmentDescription(this.expressionParts[4],"",function(I,C){return C&&j.i18n.monthsOfTheYearInCase?j.i18n.monthsOfTheYearInCase(C)[parseInt(I)-1]:T[parseInt(I)-1]},function(I){return parseInt(I)==1?"":N.StringUtilities.format(j.i18n.commaEveryX0Months(I),I)},function(I){return j.i18n.commaMonthX0ThroughMonthX1()||j.i18n.commaX0ThroughX1()},function(I){return j.i18n.commaOnlyInMonthX0?j.i18n.commaOnlyInMonthX0():j.i18n.commaOnlyInX0()});return D},L.prototype.getDayOfMonthDescription=function(){var j=this,T=null,D=this.expressionParts[3];switch(D){case"L":T=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":T=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var I=D.match(/(\d{1,2}W)|(W\d{1,2})/);if(I){var C=parseInt(I[0].replace("W","")),E=C==1?this.i18n.firstWeekday():N.StringUtilities.format(this.i18n.weekdayNearestDayX0(),C.toString());T=N.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),E);break}else{var A=D.match(/L-(\d{1,2})/);if(A){var _=A[1];T=N.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(_),_);break}else{if(D=="*"&&this.expressionParts[5]!="*")return"";T=this.getSegmentDescription(D,this.i18n.commaEveryDay(),function(p){return p=="L"?j.i18n.lastDay():j.i18n.dayX0?N.StringUtilities.format(j.i18n.dayX0(),p):p},function(p){return p=="1"?j.i18n.commaEveryDay():j.i18n.commaEveryX0Days(p)},function(p){return j.i18n.commaBetweenDayX0AndX1OfTheMonth(p)},function(p){return j.i18n.commaOnDayX0OfTheMonth(p)})}break}}return T},L.prototype.getYearDescription=function(){var j=this,T=this.getSegmentDescription(this.expressionParts[6],"",function(D){return/^\d+$/.test(D)?new Date(parseInt(D),1).getFullYear().toString():D},function(D){return N.StringUtilities.format(j.i18n.commaEveryX0Years(D),D)},function(D){return j.i18n.commaYearX0ThroughYearX1()||j.i18n.commaX0ThroughX1()},function(D){return j.i18n.commaOnlyInYearX0?j.i18n.commaOnlyInYearX0():j.i18n.commaOnlyInX0()});return T},L.prototype.getSegmentDescription=function(j,T,D,I,C,E){var A=null,_=j.indexOf("/")>-1,p=j.indexOf("-")>-1,z=j.indexOf(",")>-1;if(!j)A="";else if(j==="*")A=T;else if(!_&&!p&&!z)A=N.StringUtilities.format(E(j),D(j));else if(z){for(var O=j.split(","),k="",f=0;f0&&O.length>2&&(k+=",",f0&&O.length>1&&(f==O.length-1||O.length==2)&&(k+="".concat(this.i18n.spaceAnd()," ")),O[f].indexOf("/")>-1||O[f].indexOf("-")>-1){var P=O[f].indexOf("-")>-1&&O[f].indexOf("/")==-1,Y=this.getSegmentDescription(O[f],T,D,I,P?this.i18n.commaX0ThroughX1:C,E);P&&(Y=Y.replace(", ","")),k+=Y}else _?k+=this.getSegmentDescription(O[f],T,D,I,C,E):k+=D(O[f]);_?A=k:A=N.StringUtilities.format(E(j),k)}else if(_){var O=j.split("/");if(A=N.StringUtilities.format(I(O[1]),O[1]),O[0].indexOf("-")>-1){var V=this.generateRangeSegmentDescription(O[0],C,D);V.indexOf(", ")!=0&&(A+=", "),A+=V}else if(O[0].indexOf("*")==-1){var oe=N.StringUtilities.format(E(O[0]),D(O[0]));oe=oe.replace(", ",""),A+=N.StringUtilities.format(this.i18n.commaStartingX0(),oe)}}else p&&(A=this.generateRangeSegmentDescription(j,C,D));return A},L.prototype.generateRangeSegmentDescription=function(j,T,D){var I="",C=j.split("-"),E=D(C[0],1),A=D(C[1],2),_=T(j);return I+=N.StringUtilities.format(_,E,A),I},L.prototype.formatTime=function(j,T,D){var I=0,C=0,E=parseInt(j)+I,A=parseInt(T)+C;A>=60?(A-=60,E+=1):A<0&&(A+=60,E-=1),E>=24?E=E-24:E<0&&(E=24+E);var _="",p=!1;this.options.use24HourTimeFormat||(p=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),_=p?"".concat(this.getPeriod(E)," "):" ".concat(this.getPeriod(E)),E>12&&(E-=12),E===0&&(E=12));var z="";return D&&(z=":".concat(("00"+D).substring(D.length))),"".concat(p?_:"").concat(("00"+E.toString()).substring(E.toString().length),":").concat(("00"+A.toString()).substring(A.toString().length)).concat(z).concat(p?"":_)},L.prototype.transformVerbosity=function(j,T){if(!T&&(j=j.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),j=j.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),j=j.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),j=j.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var D=0,I=Object.entries(this.i18n.conciseVerbosityReplacements());D=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},L.locales={},L}();a.ExpressionDescriptor=c},747:(M,a,u)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.enLocaleLoader=void 0;var N=u(486),l=function(){function c(){}return c.prototype.load=function(L){L.en=new N.en},c}();a.enLocaleLoader=l},486:(M,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.en=void 0;var u=function(){function N(){}return N.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},N.prototype.atX0MinutesPastTheHourGt20=function(){return null},N.prototype.commaMonthX0ThroughMonthX1=function(){return null},N.prototype.commaYearX0ThroughYearX1=function(){return null},N.prototype.use24HourTimeFormatByDefault=function(){return!1},N.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},N.prototype.everyMinute=function(){return"every minute"},N.prototype.everyHour=function(){return"every hour"},N.prototype.atSpace=function(){return"At "},N.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},N.prototype.at=function(){return"At"},N.prototype.spaceAnd=function(){return" and"},N.prototype.everySecond=function(){return"every second"},N.prototype.everyX0Seconds=function(){return"every %s seconds"},N.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},N.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},N.prototype.everyX0Minutes=function(){return"every %s minutes"},N.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},N.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},N.prototype.everyX0Hours=function(){return"every %s hours"},N.prototype.betweenX0AndX1=function(){return"between %s and %s"},N.prototype.atX0=function(){return"at %s"},N.prototype.commaEveryDay=function(){return", every day"},N.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},N.prototype.commaX0ThroughX1=function(){return", %s through %s"},N.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},N.prototype.first=function(){return"first"},N.prototype.second=function(){return"second"},N.prototype.third=function(){return"third"},N.prototype.fourth=function(){return"fourth"},N.prototype.fifth=function(){return"fifth"},N.prototype.commaOnThe=function(){return", on the "},N.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},N.prototype.lastDay=function(){return"the last day"},N.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},N.prototype.commaOnlyOnX0=function(){return", only on %s"},N.prototype.commaAndOnX0=function(){return", and on %s"},N.prototype.commaEveryX0Months=function(){return", every %s months"},N.prototype.commaOnlyInX0=function(){return", only in %s"},N.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},N.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},N.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},N.prototype.firstWeekday=function(){return"first weekday"},N.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},N.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},N.prototype.commaEveryX0Days=function(){return", every %s days"},N.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},N.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},N.prototype.commaEveryHour=function(){return", every hour"},N.prototype.commaEveryX0Years=function(){return", every %s years"},N.prototype.commaStartingX0=function(){return", starting %s"},N.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},N.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},N.prototype.atReboot=function(){return"Run once, at startup"},N}();a.en=u},515:(M,a)=>{Object.defineProperty(a,"__esModule",{value:!0});function u(l,c){if(!l)throw new Error(c)}var N=function(){function l(){}return l.secondRange=function(c){for(var L=c.split(","),j=0;j=0&&T<=59,"seconds part must be >= 0 and <= 59")}},l.minuteRange=function(c){for(var L=c.split(","),j=0;j=0&&T<=59,"minutes part must be >= 0 and <= 59")}},l.hourRange=function(c){for(var L=c.split(","),j=0;j=0&&T<=23,"hours part must be >= 0 and <= 23")}},l.dayOfMonthRange=function(c){for(var L=c.split(","),j=0;j=1&&T<=31,"DOM part must be >= 1 and <= 31")}},l.monthRange=function(c,L){for(var j=c.split(","),T=0;T=1&&D<=12,L?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},l.dayOfWeekRange=function(c,L){for(var j=c.split(","),T=0;T=0&&D<=6,L?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},l}();a.default=N},823:(M,a)=>{Object.defineProperty(a,"__esModule",{value:!0}),a.StringUtilities=void 0;var u=function(){function N(){}return N.format=function(l){for(var c=[],L=1;L-1})},N}();a.StringUtilities=u}},s={};function o(M){var a=s[M];if(a!==void 0)return a.exports;var u=s[M]={exports:{}};return t[M](u,u.exports,o),u.exports}var r={};return(()=>{var M=r;Object.defineProperty(M,"__esModule",{value:!0}),M.toString=void 0;var a=o(333),u=o(747);a.ExpressionDescriptor.initialize(new u.enLocaleLoader),M.default=a.ExpressionDescriptor;var N=a.ExpressionDescriptor.toString;M.toString=N})(),r})())})(ea);var Ge=ea.exports;const XMe=rc(Ge);var KMe={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.fr=void 0;var l=function(){function c(){}return c.prototype.conciseVerbosityReplacements=function(){return{"de le":"du"}},c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe."},c.prototype.everyMinute=function(){return"toutes les minutes"},c.prototype.everyHour=function(){return"toutes les heures"},c.prototype.atSpace=function(){return"À "},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Toutes les minutes entre %s et %s"},c.prototype.at=function(){return"À"},c.prototype.spaceAnd=function(){return" et"},c.prototype.everySecond=function(){return"toutes les secondes"},c.prototype.everyX0Seconds=function(){return"toutes les %s secondes"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"les secondes entre %s et %s après la minute"},c.prototype.atX0SecondsPastTheMinute=function(){return"%s secondes après la minute"},c.prototype.everyX0Minutes=function(){return"toutes les %s minutes"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"les minutes entre %s et %s après l'heure"},c.prototype.atX0MinutesPastTheHour=function(){return"%s minutes après l'heure"},c.prototype.everyX0Hours=function(){return"toutes les %s heures"},c.prototype.betweenX0AndX1=function(){return"de %s à %s"},c.prototype.atX0=function(){return"%s"},c.prototype.commaEveryDay=function(){return", tous les jours"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", tous les %s jours de la semaine"},c.prototype.commaX0ThroughX1=function(){return", de %s à %s"},c.prototype.commaAndX0ThroughX1=function(){return", et de %s à %s"},c.prototype.first=function(){return"premier"},c.prototype.second=function(){return"second"},c.prototype.third=function(){return"troisième"},c.prototype.fourth=function(){return"quatrième"},c.prototype.fifth=function(){return"cinquième"},c.prototype.commaOnThe=function(){return", le "},c.prototype.spaceX0OfTheMonth=function(){return" %s du mois"},c.prototype.lastDay=function(){return"le dernier jour"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", le dernier %s du mois"},c.prototype.commaOnlyOnX0=function(){return", uniquement le %s"},c.prototype.commaAndOnX0=function(){return", et %s"},c.prototype.commaEveryX0Months=function(){return", tous les %s mois"},c.prototype.commaOnlyInX0=function(){return", uniquement en %s"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", le dernier jour du mois"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", le dernier jour ouvrable du mois"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s jours avant le dernier jour du mois"},c.prototype.firstWeekday=function(){return"premier jour ouvrable"},c.prototype.weekdayNearestDayX0=function(){return"jour ouvrable le plus proche du %s"},c.prototype.commaOnTheX0OfTheMonth=function(){return", le %s du mois"},c.prototype.commaEveryX0Days=function(){return", tous les %s jours"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", du %s au %s du mois"},c.prototype.commaOnDayX0OfTheMonth=function(){return", le %s du mois"},c.prototype.commaEveryHour=function(){return", chaque heure"},c.prototype.commaEveryX0Years=function(){return", tous les %s ans"},c.prototype.commaDaysX0ThroughX1=function(){return", du %s au %s"},c.prototype.commaStartingX0=function(){return", à partir de %s"},c.prototype.daysOfTheWeek=function(){return["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},c.prototype.monthsOfTheYear=function(){return["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},c}();return N.fr=l,u().locales.fr=new l,M})())})(KMe);var qMe={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.es=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocurrió un error mientras se generaba la descripción de la expresión. Revise la sintaxis de la expresión de cron."},c.prototype.at=function(){return"A las"},c.prototype.atSpace=function(){return"A las "},c.prototype.atX0=function(){return"a las %s"},c.prototype.atX0MinutesPastTheHour=function(){return"a los %s minutos de la hora"},c.prototype.atX0SecondsPastTheMinute=function(){return"a los %s segundos del minuto"},c.prototype.betweenX0AndX1=function(){return"entre las %s y las %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre los días %s y %s del mes"},c.prototype.commaEveryDay=function(){return", cada día"},c.prototype.commaEveryX0Days=function(){return", cada %s días"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s días de la semana"},c.prototype.commaEveryX0Months=function(){return", cada %s meses"},c.prototype.commaOnDayX0OfTheMonth=function(){return", el día %s del mes"},c.prototype.commaOnlyInX0=function(){return", sólo en %s"},c.prototype.commaOnlyOnX0=function(){return", sólo el %s"},c.prototype.commaAndOnX0=function(){return", y el %s"},c.prototype.commaOnThe=function(){return", en el "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", en el último día del mes"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en el último día de la semana del mes"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s días antes del último día del mes"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", en el último %s del mes"},c.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},c.prototype.commaX0ThroughX1=function(){return", de %s a %s"},c.prototype.commaAndX0ThroughX1=function(){return", y de %s a %s"},c.prototype.everyHour=function(){return"cada hora"},c.prototype.everyMinute=function(){return"cada minuto"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minuto entre las %s y las %s"},c.prototype.everySecond=function(){return"cada segundo"},c.prototype.everyX0Hours=function(){return"cada %s horas"},c.prototype.everyX0Minutes=function(){return"cada %s minutos"},c.prototype.everyX0Seconds=function(){return"cada %s segundos"},c.prototype.fifth=function(){return"quinto"},c.prototype.first=function(){return"primero"},c.prototype.firstWeekday=function(){return"primer día de la semana"},c.prototype.fourth=function(){return"cuarto"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minuto %s al %s pasada la hora"},c.prototype.second=function(){return"segundo"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En los segundos %s al %s de cada minuto"},c.prototype.spaceAnd=function(){return" y"},c.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},c.prototype.lastDay=function(){return"el último día"},c.prototype.third=function(){return"tercer"},c.prototype.weekdayNearestDayX0=function(){return"día de la semana más próximo al %s"},c.prototype.commaEveryX0Years=function(){return", cada %s años"},c.prototype.commaStartingX0=function(){return", comenzando %s"},c.prototype.daysOfTheWeek=function(){return["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},c.prototype.monthsOfTheYear=function(){return["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},c}();return N.es=l,u().locales.es=new l,M})())})(qMe);var ene={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.de=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.everyMinute=function(){return"jede Minute"},c.prototype.everyHour=function(){return"jede Stunde"},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Beim Generieren der Ausdrucksbeschreibung ist ein Fehler aufgetreten. Überprüfen Sie die Syntax des Cron-Ausdrucks."},c.prototype.atSpace=function(){return"Um "},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Jede Minute zwischen %s und %s"},c.prototype.at=function(){return"Um"},c.prototype.spaceAnd=function(){return" und"},c.prototype.everySecond=function(){return"Jede Sekunde"},c.prototype.everyX0Seconds=function(){return"alle %s Sekunden"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"Sekunden %s bis %s"},c.prototype.atX0SecondsPastTheMinute=function(){return"bei Sekunde %s"},c.prototype.everyX0Minutes=function(){return"alle %s Minuten"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"Minuten %s bis %s"},c.prototype.atX0MinutesPastTheHour=function(){return"bei Minute %s"},c.prototype.everyX0Hours=function(){return"alle %s Stunden"},c.prototype.betweenX0AndX1=function(){return"zwischen %s und %s"},c.prototype.atX0=function(){return"um %s"},c.prototype.commaEveryDay=function(){return", jeden Tag"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", alle %s Tage der Woche"},c.prototype.commaX0ThroughX1=function(){return", %s bis %s"},c.prototype.commaAndX0ThroughX1=function(){return", und %s bis %s"},c.prototype.first=function(){return"ersten"},c.prototype.second=function(){return"zweiten"},c.prototype.third=function(){return"dritten"},c.prototype.fourth=function(){return"vierten"},c.prototype.fifth=function(){return"fünften"},c.prototype.commaOnThe=function(){return", am "},c.prototype.spaceX0OfTheMonth=function(){return" %s des Monats"},c.prototype.lastDay=function(){return"der letzte Tag"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", am letzten %s des Monats"},c.prototype.commaOnlyOnX0=function(){return", nur jeden %s"},c.prototype.commaAndOnX0=function(){return", und jeden %s"},c.prototype.commaEveryX0Months=function(){return", alle %s Monate"},c.prototype.commaOnlyInX0=function(){return", nur im %s"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", am letzten Tag des Monats"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", am letzten Werktag des Monats"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s tage vor dem letzten Tag des Monats"},c.prototype.firstWeekday=function(){return"ersten Werktag"},c.prototype.weekdayNearestDayX0=function(){return"Werktag am nächsten zum %s Tag"},c.prototype.commaOnTheX0OfTheMonth=function(){return", am %s des Monats"},c.prototype.commaEveryX0Days=function(){return", alle %s Tage"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", zwischen Tag %s und %s des Monats"},c.prototype.commaOnDayX0OfTheMonth=function(){return", an Tag %s des Monats"},c.prototype.commaEveryX0Years=function(){return", alle %s Jahre"},c.prototype.commaStartingX0=function(){return", beginnend %s"},c.prototype.daysOfTheWeek=function(){return["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},c.prototype.monthsOfTheYear=function(){return["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},c}();return N.de=l,u().locales.de=new l,M})())})(ene);var tne={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.it=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"È verificato un errore durante la generazione la descrizione espressione. Controllare la sintassi delle espressioni cron."},c.prototype.at=function(){return"Alle"},c.prototype.atSpace=function(){return"Alle "},c.prototype.atX0=function(){return"alle %s"},c.prototype.atX0MinutesPastTheHour=function(){return"al %s minuto passata l'ora"},c.prototype.atX0SecondsPastTheMinute=function(){return"al %s secondo passato il minuto"},c.prototype.betweenX0AndX1=function(){return"tra le %s e le %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tra il giorno %s e %s del mese"},c.prototype.commaEveryDay=function(){return", ogni giorno"},c.prototype.commaEveryX0Days=function(){return", ogni %s giorni"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", ogni %s giorni della settimana"},c.prototype.commaEveryX0Months=function(){return", ogni %s mesi"},c.prototype.commaEveryX0Years=function(){return", ogni %s anni"},c.prototype.commaOnDayX0OfTheMonth=function(){return", il giorno %s del mese"},c.prototype.commaOnlyInX0=function(){return", solo in %s"},c.prototype.commaOnlyOnX0=function(){return", solo il %s"},c.prototype.commaAndOnX0=function(){return", e il %s"},c.prototype.commaOnThe=function(){return", il "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", l'ultimo giorno del mese"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", nell'ultima settimana del mese"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s giorni prima dell'ultimo giorno del mese"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", l'ultimo %s del mese"},c.prototype.commaOnTheX0OfTheMonth=function(){return", il %s del mese"},c.prototype.commaX0ThroughX1=function(){return", %s al %s"},c.prototype.commaAndX0ThroughX1=function(){return", e %s al %s"},c.prototype.everyHour=function(){return"ogni ora"},c.prototype.everyMinute=function(){return"ogni minuto"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Ogni minuto tra le %s e le %s"},c.prototype.everySecond=function(){return"ogni secondo"},c.prototype.everyX0Hours=function(){return"ogni %s ore"},c.prototype.everyX0Minutes=function(){return"ogni %s minuti"},c.prototype.everyX0Seconds=function(){return"ogni %s secondi"},c.prototype.fifth=function(){return"quinto"},c.prototype.first=function(){return"primo"},c.prototype.firstWeekday=function(){return"primo giorno della settimana"},c.prototype.fourth=function(){return"quarto"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuti %s al %s dopo l'ora"},c.prototype.second=function(){return"secondo"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"secondi %s al %s oltre il minuto"},c.prototype.spaceAnd=function(){return" e"},c.prototype.spaceX0OfTheMonth=function(){return" %s del mese"},c.prototype.lastDay=function(){return"l'ultimo giorno"},c.prototype.third=function(){return"terzo"},c.prototype.weekdayNearestDayX0=function(){return"giorno della settimana più vicino al %s"},c.prototype.commaStartingX0=function(){return", a partire %s"},c.prototype.daysOfTheWeek=function(){return["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},c.prototype.monthsOfTheYear=function(){return["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},c}();return N.it=l,u().locales.it=new l,M})())})(tne);var sne={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:j=>{j.exports=t}},o={};function r(j){var T=o[j];if(T!==void 0)return T.exports;var D=o[j]={exports:{}};return s[j](D,D.exports,r),D.exports}r.n=j=>{var T=j&&j.__esModule?()=>j.default:()=>j;return r.d(T,{a:T}),T},r.d=(j,T)=>{for(var D in T)r.o(T,D)&&!r.o(j,D)&&Object.defineProperty(j,D,{enumerable:!0,get:T[D]})},r.o=(j,T)=>Object.prototype.hasOwnProperty.call(j,T),r.r=j=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(j,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(j,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.ru=void 0;var l=function(j,T){var D=Number(j);return D!==void 0?T[D%100>4&&D%100<20?2:[2,0,1,1,1,2][D%10<5?Math.abs(D)%10:5]]:T[2]},c=function(j,T){var D=Number(j);return D!==void 0?T[D===0?0:D===1||D===2||D===4?1:2]:T[1]},L=function(){function j(){}return j.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},j.prototype.atX0MinutesPastTheHourGt20=function(){return null},j.prototype.commaMonthX0ThroughMonthX1=function(){return null},j.prototype.commaYearX0ThroughYearX1=function(){return null},j.prototype.use24HourTimeFormatByDefault=function(){return!0},j.prototype.everyMinute=function(){return"каждую минуту"},j.prototype.everyHour=function(){return"каждый час"},j.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Произошла ошибка во время генерации описания выражения. Проверьте синтаксис крон-выражения."},j.prototype.atSpace=function(){return"В "},j.prototype.everyMinuteBetweenX0AndX1=function(){return"Каждую минуту с %s по %s"},j.prototype.at=function(){return"В"},j.prototype.spaceAnd=function(){return" и"},j.prototype.everySecond=function(){return"каждую секунду"},j.prototype.everyX0Seconds=function(T){return l(T,["каждую %s секунду","каждые %s секунды","каждые %s секунд"])},j.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды с %s по %s"},j.prototype.atX0SecondsPastTheMinute=function(T){return l(T,["в %s секунду","в %s секунды","в %s секунд"])},j.prototype.everyX0Minutes=function(T){return l(T,["каждую %s минуту","каждые %s минуты","каждые %s минут"])},j.prototype.minutesX0ThroughX1PastTheHour=function(){return"минуты с %s по %s"},j.prototype.atX0MinutesPastTheHour=function(T){return l(T,["в %s минуту","в %s минуты","в %s минут"])},j.prototype.everyX0Hours=function(T){return l(T,["каждый %s час","каждые %s часа","каждые %s часов"])},j.prototype.betweenX0AndX1=function(){return"с %s по %s"},j.prototype.atX0=function(){return"в %s"},j.prototype.commaEveryDay=function(){return", каждый день"},j.prototype.commaEveryX0DaysOfTheWeek=function(T){return l(T,["",", каждые %s дня недели",", каждые %s дней недели"])},j.prototype.commaX0ThroughX1=function(T){return T&&(T[0]=="2"||T[0]=="3")?", со %s по %s":", с %s по %s"},j.prototype.commaAndX0ThroughX1=function(T){return T&&(T[0]=="2"||T[0]=="3")?" и со %s по %s":" и с %s по %s"},j.prototype.first=function(T){return c(T,["первое","первый","первую"])},j.prototype.second=function(T){return c(T,["второе","второй","вторую"])},j.prototype.third=function(T){return c(T,["третье","третий","третью"])},j.prototype.fourth=function(T){return c(T,["четвертое","четвертый","четвертую"])},j.prototype.fifth=function(T){return c(T,["пятое","пятый","пятую"])},j.prototype.commaOnThe=function(T){return T==="2"?", во ":", в "},j.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},j.prototype.lastDay=function(){return"последний день"},j.prototype.commaOnTheLastX0OfTheMonth=function(T){return c(T,[", в последнее %s месяца",", в последний %s месяца",", в последнюю %s месяца"])},j.prototype.commaOnlyOnX0=function(T){return T&&T[0]==="2"?", только во %s":", только в %s"},j.prototype.commaAndOnX0=function(){return", и %s"},j.prototype.commaEveryX0Months=function(T){return l(T,[""," каждые %s месяца"," каждые %s месяцев"])},j.prototype.commaOnlyInMonthX0=function(){return", только %s"},j.prototype.commaOnlyInX0=function(){return", только в %s"},j.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последний день месяца"},j.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последний будний день месяца"},j.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(T){return l(T,[", за %s день до конца месяца",", за %s дня до конца месяца",", за %s дней до конца месяца"])},j.prototype.firstWeekday=function(){return"первый будний день"},j.prototype.weekdayNearestDayX0=function(){return"ближайший будний день к %s числу"},j.prototype.commaOnTheX0OfTheMonth=function(){return", в %s месяца"},j.prototype.commaEveryX0Days=function(T){return l(T,[", каждый %s день",", каждые %s дня",", каждые %s дней"])},j.prototype.commaBetweenDayX0AndX1OfTheMonth=function(T){return T&&T.substring(0,T.indexOf("-"))=="2"?", со %s по %s число месяца":", с %s по %s число месяца"},j.prototype.commaOnDayX0OfTheMonth=function(T){return T&&T[0]=="2"?", во %s число месяца":", в %s число месяца"},j.prototype.commaEveryX0Years=function(T){return l(T,[", каждый %s год",", каждые %s года",", каждые %s лет"])},j.prototype.commaStartingX0=function(){return", начало %s"},j.prototype.daysOfTheWeek=function(){return["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},j.prototype.daysOfTheWeekInCase=function(T){return T===void 0&&(T=2),T==1?["воскресенья","понедельника","вторника","среды","четверга","пятницы","субботы"]:["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"]},j.prototype.monthsOfTheYear=function(){return["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},j.prototype.monthsOfTheYearInCase=function(T){return T==1?["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]:this.monthsOfTheYear()},j}();return N.ru=L,u().locales.ru=new L,M})())})(sne);var ine={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.zh_CN=void 0;var l=function(){function c(){}return c.prototype.setPeriodBeforeTime=function(){return!0},c.prototype.pm=function(){return"下午"},c.prototype.am=function(){return"上午"},c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return", 从%s年至%s年"},c.prototype.use24HourTimeFormatByDefault=function(){return!1},c.prototype.everyMinute=function(){return"每分钟"},c.prototype.everyHour=function(){return"每小时"},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"生成表达式描述时发生了错误,请检查cron表达式语法。"},c.prototype.atSpace=function(){return"在"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 至 %s 之间的每分钟"},c.prototype.at=function(){return"在"},c.prototype.spaceAnd=function(){return" 和"},c.prototype.everySecond=function(){return"每秒"},c.prototype.everyX0Seconds=function(){return"每隔 %s 秒"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分钟后的第 %s 到 %s 秒"},c.prototype.atX0SecondsPastTheMinute=function(){return"在一分钟后的第 %s 秒"},c.prototype.everyX0Minutes=function(){return"每隔 %s 分钟"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整点后的第 %s 到 %s 分钟"},c.prototype.atX0MinutesPastTheHour=function(){return"在整点后的第 %s 分钟"},c.prototype.everyX0Hours=function(){return"每隔 %s 小时"},c.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之间"},c.prototype.atX0=function(){return"在%s"},c.prototype.commaEveryDay=function(){return", 每天"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每周的每 %s 天"},c.prototype.commaX0ThroughX1=function(){return", %s至%s"},c.prototype.commaAndX0ThroughX1=function(){return", 和%s至%s"},c.prototype.first=function(){return"第一个"},c.prototype.second=function(){return"第二个"},c.prototype.third=function(){return"第三个"},c.prototype.fourth=function(){return"第四个"},c.prototype.fifth=function(){return"第五个"},c.prototype.commaOnThe=function(){return", 限每月的"},c.prototype.spaceX0OfTheMonth=function(){return"%s"},c.prototype.lastDay=function(){return"本月最后一天"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", 限每月的最后一个%s"},c.prototype.commaOnlyOnX0=function(){return", 仅%s"},c.prototype.commaAndOnX0=function(){return", 或者为%s"},c.prototype.commaEveryX0Months=function(){return", 每隔 %s 个月"},c.prototype.commaOnlyInX0=function(){return", 仅限%s"},c.prototype.commaOnlyInMonthX0=function(){return", 仅于%s份"},c.prototype.commaOnlyInYearX0=function(){return", 仅于 %s 年"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", 限每月的最后一天"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 限每月的最后一个工作日"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 限每月最后%s天"},c.prototype.firstWeekday=function(){return"第一个工作日"},c.prototype.weekdayNearestDayX0=function(){return"最接近 %s 号的工作日"},c.prototype.commaOnTheX0OfTheMonth=function(){return", 限每月的%s"},c.prototype.commaEveryX0Days=function(){return", 每隔 %s 天"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 限每月的 %s 至 %s 之间"},c.prototype.commaOnDayX0OfTheMonth=function(){return", 限每月%s"},c.prototype.commaEveryX0Years=function(){return", 每隔 %s 年"},c.prototype.commaStartingX0=function(){return", %s开始"},c.prototype.dayX0=function(){return" %s 号"},c.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},c.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},c}();return N.zh_CN=l,u().locales.zh_CN=new l,M})())})(ine);var one={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.uk=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.everyMinute=function(){return"щохвилини"},c.prototype.everyHour=function(){return"щогодини"},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"ВІдбулася помилка підчас генерації опису. Перевірта правильність написання cron виразу."},c.prototype.atSpace=function(){return"О "},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Щохвилини між %s та %s"},c.prototype.at=function(){return"О"},c.prototype.spaceAnd=function(){return" та"},c.prototype.everySecond=function(){return"Щосекунди"},c.prototype.everyX0Seconds=function(){return"кожні %s секунд"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"з %s по %s секунду"},c.prototype.atX0SecondsPastTheMinute=function(){return"о %s секунді"},c.prototype.everyX0Minutes=function(){return"кожні %s хвилин"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"з %s по %s хвилину"},c.prototype.atX0MinutesPastTheHour=function(){return"о %s хвилині"},c.prototype.everyX0Hours=function(){return"кожні %s годин"},c.prototype.betweenX0AndX1=function(){return"між %s та %s"},c.prototype.atX0=function(){return"о %s"},c.prototype.commaEveryDay=function(){return", щоденно"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожен %s день тижня"},c.prototype.commaX0ThroughX1=function(){return", %s по %s"},c.prototype.commaAndX0ThroughX1=function(){return", та %s по %s"},c.prototype.first=function(){return"перший"},c.prototype.second=function(){return"другий"},c.prototype.third=function(){return"третій"},c.prototype.fourth=function(){return"четвертий"},c.prototype.fifth=function(){return"п'ятий"},c.prototype.commaOnThe=function(){return", в "},c.prototype.spaceX0OfTheMonth=function(){return" %s місяця"},c.prototype.lastDay=function(){return"останній день"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", в останній %s місяця"},c.prototype.commaOnlyOnX0=function(){return", тільки в %s"},c.prototype.commaAndOnX0=function(){return", і в %s"},c.prototype.commaEveryX0Months=function(){return", кожен %s місяць"},c.prototype.commaOnlyInX0=function(){return", тільки в %s"},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", в останній день місяця"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в останній будень місяця"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s днів до останнього дня місяця"},c.prototype.firstWeekday=function(){return"перший будень"},c.prototype.weekdayNearestDayX0=function(){return"будень найближчий до %s дня"},c.prototype.commaOnTheX0OfTheMonth=function(){return", в %s місяця"},c.prototype.commaEveryX0Days=function(){return", кожен %s день"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", між %s та %s днями місяця"},c.prototype.commaOnDayX0OfTheMonth=function(){return", на %s день місяця"},c.prototype.commaEveryX0Years=function(){return", кожні %s роки"},c.prototype.commaStartingX0=function(){return", початок %s"},c.prototype.daysOfTheWeek=function(){return["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"]},c.prototype.monthsOfTheYear=function(){return["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},c}();return N.uk=l,u().locales.uk=new l,M})())})(one);var rne={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.pt_BR=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},c.prototype.at=function(){return"às"},c.prototype.atSpace=function(){return"às "},c.prototype.atX0=function(){return"Às %s"},c.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},c.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},c.prototype.betweenX0AndX1=function(){return"entre %s e %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},c.prototype.commaEveryDay=function(){return", a cada dia"},c.prototype.commaEveryX0Days=function(){return", a cada %s dias"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},c.prototype.commaEveryX0Months=function(){return", a cada %s meses"},c.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},c.prototype.commaOnlyInX0=function(L){return L&&L.length>1&&L[1]==="-"?"somente %s":", somente em %s"},c.prototype.commaOnlyOnX0=function(L){return L&&L.length>1&&L[1]==="-"?", somente %s":", somente de %s"},c.prototype.commaAndOnX0=function(){return", e de %s"},c.prototype.commaOnThe=function(L,j){return j==="6"||j==="0"?", no":", na "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},c.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},c.prototype.commaX0ThroughX1=function(){return", de %s a %s"},c.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},c.prototype.everyHour=function(){return"a cada hora"},c.prototype.everyMinute=function(){return"a cada minuto"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},c.prototype.everySecond=function(){return"a cada segundo"},c.prototype.everyX0Hours=function(){return"a cada %s horas"},c.prototype.everyX0Minutes=function(){return"a cada %s minutos"},c.prototype.everyX0Seconds=function(){return"a cada %s segundos"},c.prototype.fifth=function(L){return L==="6"||L==="0"?"quinto":"quinta"},c.prototype.first=function(L){return L==="6"||L==="0"?"primeiro":"primeira"},c.prototype.firstWeekday=function(){return"primeiro dia da semana"},c.prototype.fourth=function(L){return L==="6"||L==="0"?"quarto":"quarta"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},c.prototype.second=function(L){return L==="6"||L==="0"?"segundo":"segunda"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},c.prototype.spaceAnd=function(){return" e"},c.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},c.prototype.lastDay=function(){return"o último dia"},c.prototype.third=function(L){return L==="6"||L==="0"?"terceiro":"terceira"},c.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},c.prototype.commaEveryX0Years=function(){return", a cada %s anos"},c.prototype.commaStartingX0=function(){return", iniciando %s"},c.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},c.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},c}();return N.pt_BR=l,u().locales.pt_BR=new l,M})())})(rne);var Mne={exports:{}};(function(i,e){(function(s,o){i.exports=o(Ge)})(globalThis,t=>(()=>{var s={93:c=>{c.exports=t}},o={};function r(c){var L=o[c];if(L!==void 0)return L.exports;var j=o[c]={exports:{}};return s[c](j,j.exports,r),j.exports}r.n=c=>{var L=c&&c.__esModule?()=>c.default:()=>c;return r.d(L,{a:L}),L},r.d=(c,L)=>{for(var j in L)r.o(L,j)&&!r.o(c,j)&&Object.defineProperty(c,j,{enumerable:!0,get:L[j]})},r.o=(c,L)=>Object.prototype.hasOwnProperty.call(c,L),r.r=c=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})};var M={};r.r(M);var a=r(93),u=r.n(a),N=M;Object.defineProperty(N,"__esModule",{value:!0}),N.pl=void 0;var l=function(){function c(){}return c.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},c.prototype.atX0MinutesPastTheHourGt20=function(){return null},c.prototype.commaMonthX0ThroughMonthX1=function(){return null},c.prototype.commaYearX0ThroughYearX1=function(){return null},c.prototype.use24HourTimeFormatByDefault=function(){return!0},c.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Wystąpił błąd podczas generowania opisu wyrażenia cron. Sprawdź składnię wyrażenia cron."},c.prototype.at=function(){return"O"},c.prototype.atSpace=function(){return"O "},c.prototype.atX0=function(){return"o %s"},c.prototype.atX0MinutesPastTheHour=function(){return"w %s minucie"},c.prototype.atX0SecondsPastTheMinute=function(){return"w %s sekundzie"},c.prototype.betweenX0AndX1=function(){return"od %s do %s"},c.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s-ego do %s-ego dnia miesiąca"},c.prototype.commaEveryDay=function(){return", co dzień"},c.prototype.commaEveryX0Days=function(){return", co %s dni"},c.prototype.commaEveryX0DaysOfTheWeek=function(){return", co %s dni tygodnia"},c.prototype.commaEveryX0Months=function(){return", co %s miesięcy"},c.prototype.commaEveryX0Years=function(){return", co %s lat"},c.prototype.commaOnDayX0OfTheMonth=function(){return", %s-ego dnia miesiąca"},c.prototype.commaOnlyInX0=function(){return", tylko %s"},c.prototype.commaOnlyOnX0=function(){return", tylko %s"},c.prototype.commaAndOnX0=function(){return", i %s"},c.prototype.commaOnThe=function(){return", "},c.prototype.commaOnTheLastDayOfTheMonth=function(){return", ostatni dzień miesiąca"},c.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ostatni dzień roboczy miesiąca"},c.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni przed ostatnim dniem miesiąca"},c.prototype.commaOnTheLastX0OfTheMonth=function(){return", ostatni %s miesiąca"},c.prototype.commaOnTheX0OfTheMonth=function(){return", %s miesiąca"},c.prototype.commaX0ThroughX1=function(){return", od %s do %s"},c.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},c.prototype.everyHour=function(){return"co godzinę"},c.prototype.everyMinute=function(){return"co minutę"},c.prototype.everyMinuteBetweenX0AndX1=function(){return"Co minutę od %s do %s"},c.prototype.everySecond=function(){return"co sekundę"},c.prototype.everyX0Hours=function(){return"co %s godzin"},c.prototype.everyX0Minutes=function(){return"co %s minut"},c.prototype.everyX0Seconds=function(){return"co %s sekund"},c.prototype.fifth=function(){return"piąty"},c.prototype.first=function(){return"pierwszy"},c.prototype.firstWeekday=function(){return"pierwszy dzień roboczy"},c.prototype.fourth=function(){return"czwarty"},c.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},c.prototype.second=function(){return"drugi"},c.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},c.prototype.spaceAnd=function(){return" i"},c.prototype.spaceX0OfTheMonth=function(){return" %s miesiąca"},c.prototype.lastDay=function(){return"ostatni dzień"},c.prototype.third=function(){return"trzeci"},c.prototype.weekdayNearestDayX0=function(){return"dzień roboczy najbliższy %s-ego dnia"},c.prototype.commaStartingX0=function(){return", startowy %s"},c.prototype.daysOfTheWeek=function(){return["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},c.prototype.monthsOfTheYear=function(){return["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},c}();return N.pl=l,u().locales.pl=new l,M})())})(Mne);function ta(i,e){return XMe.toString(i,{locale:e})}const he={mainDiv:{width:"100%",height:"100%"},periodSelect:{display:"block",width:250},tabContent:{padding:20,height:"calc(100% - 240px)",overflow:"auto"},numberButton:{padding:4,minWidth:40,margin:5},appBar:{color:"white"},warning:{marginLeft:16,color:"red",fontSize:12}},nne=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],ane=["January","February","March","April","May","June","July","August","September","October","November","December"];function MM(i,e){const t=[];if(i==="*"){if(e===24||e===60||e===7)for(let o=0;o1){const M=parseInt(r[1],10);for(let a=parseInt(r[0],10);a<=M;a++)t.push(a)}else t.push(parseInt(s[o],10))}t.sort();for(let o=t.length-1;o>=0;o--)t[o]===t[o+1]&&t.splice(o+1,1);return t}function nM(i,e){if(typeof i!="object"&&(i=[i]),i.length===e)return"*";const t=[];if(!i.length)return"-";i=i.map(r=>parseInt(r,10)),i.sort((r,M)=>r-M);let s=i[0],o=i[0];for(let r=1;rthis.props.onChange&&this.props.onChange(this.state.cron),100)}static cron2state(e){e=e.replace(/['"]/g,"").trim();const t=e.split(" ").map(o=>o.trim());let s;return t.length===6?s={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",dates:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:s={seconds:!1,minutes:t[0]||"*",hours:t[1]||"*",dates:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},s}static state2cron(e){let t=`${e.minutes} ${e.hours} ${e.dates} ${e.months} ${e.dow}`;return e.seconds!==!1&&(t=`${e.seconds} ${t}`),t}recalcCron(){const e=Lt.state2cron(this.state);e!==this.state.cron&&this.setState({cron:e},()=>this.props.onChange&&this.props.onChange(this.state.cron))}onToggle(e,t,s){if(e===!0)this.setCronAttr(t,"*");else if(e===!1)s===60||s===24?this.setCronAttr(t,"0"):this.setCronAttr(t,"1");else{const o=MM(this.state[t],s),r=o.indexOf(e);r!==-1?o.splice(r,1):(o.push(e),o.sort()),this.setCronAttr(t,nM(o,s))}}getDigitsSelector(e,t){let s=[];if(t===7)s=[1,2,3,4,5,6,0];else if(t===60||t===24)for(let r=0;rthis.onToggle(!1,e,t)},d.t("ra_Deselect all")),n.createElement(g.Button,{key:"addall",variant:"contained",style:he.numberButton,color:"secondary",onClick:()=>this.onToggle(!0,e,t)},d.t("ra_Select all")),n.createElement("div",{key:"all"},s.map(r=>[t===7&&r===4||t===12&&r===7||t===31&&!((r-1)%10)||t===60&&r&&!(r%10)||t===24&&r&&!(r%6)?n.createElement("div",{key:`allInner${r}`,style:{width:"100%"}}):null,n.createElement(g.Button,{key:`_${r}`,variant:o.indexOf(r)!==-1?"contained":"outlined",style:he.numberButton,color:o.indexOf(r)!==-1?"secondary":"primary",onClick:()=>this.onToggle(r,e,t)},t===7?d.t(nne[r]):t===12?ane[r-1]:r)]))]}getPeriodsTab(e,t){const s=this.state[e];let o=s==="*",r=s==null?!1:s.toString().includes("/"),M;if(this.state.modes[e]===null){M=o?"every":r?"everyN":"specific";const u=JSON.parse(JSON.stringify(this.state.modes));return u[e]=M,setTimeout(()=>this.setState({modes:u},()=>this.recalcCron()),100),null}o=this.state.modes[e]==="every",r=this.state.modes[e]==="everyN",M=this.state.modes[e];let a=1;return r&&s&&(a=parseInt(s.replace("*/",""),10)||1),n.createElement("div",null,n.createElement(g.Select,{variant:"standard",style:{...he.periodSelect,verticalAlign:"bottom"},value:M,onChange:u=>{const N=JSON.parse(JSON.stringify(this.state.modes));if(N[e]=u.target.value,u.target.value==="every")this.setCronAttr(e,"*",N);else if(u.target.value==="everyN"){const l=parseInt((this.state[e]||"").toString().replace("*/",""),10)||1;this.setCronAttr(e,`*/${l}`,N)}else if(u.target.value==="specific"){let l=parseInt((this.state[e]||"").toString().split(",")[0],10)||0;!l&&(e==="months"||e==="dates")&&(l=1),this.setCronAttr(e,nM(l,t),N)}}},n.createElement(g.MenuItem,{key:"every",value:"every"},d.t(`sc_every_${e}`)),n.createElement(g.MenuItem,{key:"everyN",value:"everyN"},d.t(`sc_everyN_${e}`)),n.createElement(g.MenuItem,{key:"specific",value:"specific"},d.t(`sc_specific_${e}`))),r&&n.createElement(g.TextField,{variant:"standard",key:"interval",label:d.t(`sc_${e}`),value:a,slotProps:{htmlInput:{min:1,max:t},inputLabel:{shrink:!0}},onChange:u=>{this.setState({[e]:`*/${u.target.value}`},()=>this.recalcCron())},type:"number",margin:"normal"}),!o&&!r&&this.getDigitsSelector(e,t))}static convertCronToText(e,t){return e.split(" ").includes("-")?d.t("ra_Invalid CRON"):ta(e,t)}setCronAttr(e,t,s){s?e==="seconds"?this.setState({seconds:t,modes:s},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t,modes:s},()=>this.recalcCron()):e==="hours"?this.setState({hours:t,modes:s},()=>this.recalcCron()):e==="dates"?this.setState({dates:t,modes:s},()=>this.recalcCron()):e==="months"?this.setState({months:t,modes:s},()=>this.recalcCron()):e==="dow"?this.setState({dow:t,modes:s},()=>this.recalcCron()):this.setState({modes:s},()=>this.recalcCron()):e==="seconds"?this.setState({seconds:t},()=>this.recalcCron()):e==="minutes"?this.setState({minutes:t},()=>this.recalcCron()):e==="hours"?this.setState({hours:t},()=>this.recalcCron()):e==="dates"?this.setState({dates:t},()=>this.recalcCron()):e==="months"?this.setState({months:t},()=>this.recalcCron()):e==="dow"&&this.setState({dow:t},()=>this.recalcCron())}render(){const e=this.state.seconds!==!1?this.state.tab:this.state.tab+1,t=this.state.minutes==="*"||this.state.minutes==="*/1",s=this.state.seconds==="*"||this.state.seconds==="*/1";return n.createElement("div",{style:he.mainDiv},n.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)"}},n.createElement(g.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0})),n.createElement("div",{style:{paddingLeft:8,width:"calc(100% - px)",height:60}},Lt.convertCronToText(this.state.cron,this.props.language||"en"),n.createElement("span",{style:he.warning},s?d.t("ra_warning_every_second"):t?d.t("ra_warning_every_minute"):"")),n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{checked:!!this.state.seconds,onChange:o=>this.setState({seconds:o.target.checked?"*":!1},()=>this.recalcCron())}),label:d.t("ra_use seconds")}),n.createElement(g.AppBar,{position:"static",sx:{"&.MuiAppBar-root":he.appBar},color:"secondary"},n.createElement(g.Tabs,{value:this.state.tab,style:he.appBar,color:"secondary",onChange:(o,r)=>this.setState({tab:r})},this.state.seconds!==!1&&n.createElement(g.Tab,{id:"sc_seconds",label:d.t("sc_seconds")}),n.createElement(g.Tab,{id:"minutes",label:d.t("sc_minutes")}),n.createElement(g.Tab,{id:"hours",label:d.t("sc_hours")}),n.createElement(g.Tab,{id:"dates",label:d.t("sc_dates")}),n.createElement(g.Tab,{id:"months",label:d.t("sc_months")}),n.createElement(g.Tab,{id:"dow",label:d.t("sc_dows")}))),e===0&&n.createElement("div",{style:he.tabContent},this.getPeriodsTab("seconds",60)),e===1&&n.createElement("div",{style:he.tabContent},this.getPeriodsTab("minutes",60)),e===2&&n.createElement("div",{style:he.tabContent},this.getPeriodsTab("hours",24)),e===3&&n.createElement("div",{style:he.tabContent},this.getPeriodsTab("dates",31)),e===4&&n.createElement("div",{style:he.tabContent},this.getPeriodsTab("months",12)),e===5&&n.createElement("div",{style:he.tabContent},this.getPeriodsTab("dow",7)))}}const Ut={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:i=>({color:i.palette.primary.main})};function r4e(i){const{open:e,toggleTranslation:t,noTranslation:s,title:o,fullWidth:r,help:M,maxWidth:a,progress:u,icon:N,applyDisabled:l,applyButton:c,onClose:L,children:j,titleButtonApply:T,titleButtonClose:D,onApply:I,textInput:C,defaultValue:E,overflowHidden:A}=i,[_,p]=b.useState(E||"");b.useEffect(()=>{p(E||"")},[E]);let z=null;return N&&(z=N),n.createElement(g.Dialog,{open:e,maxWidth:a||"md",fullWidth:!!r,disableEscapeKeyDown:!1,onClose:L,sx:{"& .MuiDialog-paper":Ut.modalDialog}},o&&n.createElement(g.DialogTitle,null,N?n.createElement(z,{style:Ut.titleIcon}):null,o,d.getLanguage()!=="en"&&t?n.createElement(g.IconButton,{size:"large",sx:S.getStyle(i.theme,Ut.languageButton,s&&Ut.languageButtonActive),onClick:()=>t(),title:d.t("Disable/Enable translation")},n.createElement(m.Language,null)):null),n.createElement(g.DialogContent,{style:{...Ut.content,...A?Ut.overflowHidden:void 0,paddingTop:8}},C&&n.createElement(g.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:_,onChange:O=>p(O.target.value)}),j,M?n.createElement("div",null,M):null),n.createElement(g.DialogActions,null,c!==!1&&n.createElement(g.Button,{startIcon:n.createElement(m.Check,null),disabled:u||l&&E===_,onClick:()=>I(C?_:""),variant:"contained",color:"primary"},d.t(T||"ra_Ok")),n.createElement(g.Button,{color:"grey",onClick:L,disabled:u,variant:"contained",startIcon:n.createElement(m.Close,null)},d.t(D||"ra_Cancel"))))}function cne(){const i=Mc();return[...i.breakpoints.keys].reverse().reduce((t,s)=>{const o=g.useMediaQuery(i.breakpoints.up(s));return!t&&o?s:t},null)||"xs"}function di(){return i=>function(t){const s=cne();return n.createElement(i,{...t,width:s})}}function une(i){const[e,t]=n.useState(i.input||i.value||""),[s,o]=n.useState("");return n.createElement(g.Dialog,{open:!0,onClose:()=>i.onClose(null),"aria-labelledby":"form-dialog-title",fullWidth:i.fullWidth!==void 0?i.fullWidth:!1},n.createElement(g.DialogTitle,{id:"form-dialog-title"},i.titleText),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,null,i.promptText),n.createElement(g.TextField,{variant:"standard",autoFocus:!0,margin:"dense",error:!!s,helperText:s===!0||!s?"":s,value:e,label:i.labelText||"",type:i.type||"text",onKeyUp:r=>r.code==="Enter"&&e&&i.onClose(e),onChange:r=>{let M="";i.verify&&(M=!i.verify(r.target.value)),i.rule?t(i.rule(r.target.value)):t(r.target.value),o(M)},fullWidth:!0})),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",disabled:!e||!!s,onClick:()=>i.onClose(e),color:"primary",startIcon:n.createElement(m.Check,null)},i.applyText||d.t("ra_Ok")),n.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>i.onClose(null),startIcon:n.createElement(m.Close,null)},i.cancelText||d.t("ra_Cancel"))))}const Nne=di()(une);function uo(i){return n.createElement("svg",{onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 486 486",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),xmlns:"http://www.w3.org/2000/svg",className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"m414.928297,149.715165 c-2.639376,-57.222555 -35.669446,-106.505345 -83.345894,-132.039151 c-3.758948,-2.049842 -7.636885,-3.932022 -11.590542,-5.641125 c-19.303146,-8.394083 -40.607459,-13.050853 -63.004303,-13.050853 c-84.113909,0 -152.791790,65.703174 -157.718988,148.605566 l0.043268,-0.010816 v0.281245 c0,3.061243 -0.146031,16.750306 -0.146031,16.750306 l-2.352723,5.224668 h15.744315 c5.916964,-19.384275 24.078904,-32.635245 45.513024,-32.635245 c26.231510,0 47.573684,21.915481 47.573684,48.146991 c0,26.226103 -21.342174,47.146409 -47.573684,47.146409 c-25.111939,0 -45.734774,-19.735831 -47.443879,-44.658471 h-18.789334 c-0.400232,0 -0.778832,0.638209 -1.162839,0.584122 l-19.762875,55.199753 c-2.774590,7.696379 2.926030,16.214860 11.103771,16.214860 h17.020735 l-0.129805,87.899899 c0,17.356066 14.073071,31.174935 31.429136,31.174935 h56.205745 v82.648189 c0,12.877778 12.937273,22.580734 25.815051,22.580734 h144.597825 c12.877778,0 23.429877,-9.702955 23.429877,-22.580734 v-166.037352 c0,-22.645636 5.976457,-44.761234 16.561008,-64.789128 c11.055093,-20.925714 17.523731,-44.620611 18.129489,-69.792045 c0.027042,-1.260193 0.037858,-2.552839 0.037858,-3.845485 c0,-2.466302 -0.070310,-4.938014 -0.183890,-7.377273 zm-155.393308,-11.731165 h-13.456494 v13.559257 c0,4.732489 -4.267352,8.567157 -8.999842,8.567157 c-4.727079,0 -8.999842,-3.834667 -8.999842,-8.567157 v-13.559257 h-12.185483 c-4.732489,0 -8.567157,-4.267352 -8.567157,-8.999842 c0,-4.727079 3.834667,-8.999842 8.567157,-8.999842 h12.185483 v-12.077311 c0,-4.732489 4.272762,-8.567157 8.999842,-8.567157 c4.732489,0 8.999842,3.834667 8.999842,8.567157 v12.077311 h13.456494 c4.727079,0 8.567157,4.272762 8.567157,8.999842 c0,4.732489 -3.840077,8.999842 -8.567157,8.999842 zm0,0"}),n.createElement("path",{fill:"currentColor",d:"m187.695312 285.875c3.9375-3.980469 6.414063-9.449219 6.414063-15.523438 0-12.128906-9.855469-21.980468-21.984375-21.980468-6.007812 0-11.472656 2.410156-15.457031 6.347656-4.023438 4.003906-6.523438 9.539062-6.523438 15.636719 0 12.125 9.855469 21.980469 21.980469 21.980469 6.078125 0 11.585938-2.476563 15.570312-6.460938zm0 0"}))}function Gt(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 650 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"m524,128l-192,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,288c0,26.51 21.49,48 48,48l416,0c26.51,0 48,-21.49 48,-48l0,-224c0,-26.51 -21.49,-48 -48,-48z"}))}function Ks(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 650 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"m631.75617,292.093l-72.424,124.155a63.997,63.997 0 0 1 -55.281,31.752l-399.964,0c-18.523,0 -30.064,-20.093 -20.731,-36.093l72.424,-124.155a64,64 0 0 1 55.282,-31.752l399.964,0c18.523,0 30.064,20.093 20.73,36.093zm-420.694,-68.093l328,0l0,-48c0,-26.51 -21.49,-48 -48,-48l-160,0l-64,-64l-160,0c-26.51,0 -48,21.49 -48,48l0,278.046l69.077,-118.418c17.137,-29.378 48.912,-47.628 82.923,-47.628z"}))}function Fo(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))}var lne=i=>typeof i!="string"?{}:i.split(/ ?; ?/).reduce((e,t)=>{const[s,o]=t.split(/ ?: ?/).map((r,M)=>M===0?r.replace(/\s+/g,""):r.trim());if(s&&o){const r=s.replace(/(\w)-(\w)/g,(a,u,N)=>`${u}${N.toUpperCase()}`);let M=o.trim();Number.isNaN(Number(o))||(M=Number(o)),e[s.startsWith("-")?s:r]=M}return e},{});function Lne(i=6){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let s=i;s>0;--s)t+=e[Math.round(Math.random()*(e.length-1))];return t}var jne=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],aM={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"};function gne(i,e){var r;const{key:t,level:s,...o}=e;switch(i.nodeType){case 1:return b.createElement(yne(i.nodeName),Tne(i,t),cM(i.childNodes,s,o));case 3:{const M=((r=i.nodeValue)==null?void 0:r.toString())??"";if(!o.allowWhiteSpaces&&/^\s+$/.test(M)&&!/[\u00A0\u202F]/.test(M))return null;if(!i.parentNode)return M;const a=i.parentNode.nodeName.toLowerCase();return jne.includes(a)?(/\S/.test(M)&&console.warn(`A textNode is not allowed inside '${a}'. Your text "${M}" will be ignored`),null):M}case 8:return null;case 11:return cM(i.childNodes,s,e);default:return null}}function Tne(i,e){const t={key:e};if(i instanceof Element){const s=i.getAttribute("class");s&&(t.className=s),[...i.attributes].forEach(o=>{switch(o.name){case"class":break;case"style":t[o.name]=lne(o.value);break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":t[aM[o.name]||o.name]=!0;break;default:t[aM[o.name]||o.name]=o.value}})}return t}function cM(i,e,t){const s=[...i].map((o,r)=>ri(o,{...t,index:r,level:e+1})).filter(Boolean);return s.length?s:null}function yne(i){return/[a-z]+[A-Z]+[a-z]+/.test(i)?i:i.toLowerCase()}function sa(i,e={}){return typeof i=="string"?Dne(i,e):i instanceof Node?ri(i,e):null}function ri(i,e={}){if(!i||!(i instanceof Node))return null;const{actions:t=[],index:s=0,level:o=0,randomKey:r}=e;let M=i,a=`${o}-${s}`;const u=[];return r&&o===0&&(a=`${Lne()}-${a}`),Array.isArray(t)&&t.forEach(N=>{N.condition(M,a,o)&&(typeof N.pre=="function"&&(M=N.pre(M,a,o),M instanceof Node||(M=i)),typeof N.post=="function"&&u.push(N.post(M,a,o)))}),u.length?u:gne(M,{key:a,level:o,...e})}function Dne(i,e={}){if(!i||typeof i!="string")return null;const{includeAllNodes:t=!1,nodeOnly:s=!1,selector:o="body > *",type:r="text/html"}=e;try{const a=new DOMParser().parseFromString(i,r);if(t){const{childNodes:N}=a.body;return s?N:[...N].map(l=>ri(l,e))}const u=a.querySelector(o)||a.body.childNodes[0];if(!(u instanceof Node))throw new TypeError("Error parsing input");return s?u:ri(u,e)}catch{}return null}var dne=Object.defineProperty,zne=(i,e,t)=>e in i?dne(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,bs=(i,e,t)=>zne(i,typeof e!="symbol"?e+"":e,t),uM="react-inlinesvg",Ine=10,ee={IDLE:"idle",LOADING:"loading",LOADED:"loaded",FAILED:"failed",READY:"ready",UNSUPPORTED:"unsupported"};function wne(i){return i[Math.floor(Math.random()*i.length)]}function js(){var i;return!!(typeof window<"u"&&((i=window.document)!=null&&i.createElement))}function Cne(){return mne()&&typeof window<"u"&&window!==null}function hne(i,...e){const t={};for(const s in i)({}).hasOwnProperty.call(i,s)&&(e.includes(s)||(t[s]=i[s]));return t}function Ane(i){const e="abcdefghijklmnopqrstuvwxyz",s=`${e}${e.toUpperCase()}1234567890`;let o="";for(let r=0;r299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(r=>o.includes(r)))throw new Error(`Content type isn't valid: ${o}`);return t.text()}function pne(i=1){return new Promise(e=>{setTimeout(e,i*1e3)})}function mne(){if(!document)return!1;const i=document.createElement("div");i.innerHTML="";const e=i.firstChild;return!!e&&e.namespaceURI==="http://www.w3.org/2000/svg"}var One=class{constructor(){bs(this,"cacheApi"),bs(this,"cacheStore"),bs(this,"subscribers",[]),bs(this,"isReady",!1),this.cacheStore=new Map;let i=uM,e=!1;js()&&(i=window.REACT_INLINESVG_CACHE_NAME??uM,e=!!window.REACT_INLINESVG_PERSISTENT_CACHE&&"caches"in window),e?caches.open(i).then(t=>{this.cacheApi=t}).catch(t=>{console.error(`Failed to open cache: ${t.message}`),this.cacheApi=void 0}).finally(()=>{this.isReady=!0;const t=[...this.subscribers];this.subscribers.length=0,t.forEach(s=>{try{s()}catch(o){console.error(`Error in CacheStore subscriber callback: ${o.message}`)}})}):this.isReady=!0}onReady(i){this.isReady?i():this.subscribers.push(i)}async get(i,e){var t;return await(this.cacheApi?this.fetchAndAddToPersistentCache(i,e):this.fetchAndAddToInternalCache(i,e)),((t=this.cacheStore.get(i))==null?void 0:t.content)??""}set(i,e){this.cacheStore.set(i,e)}isCached(i){var e;return((e=this.cacheStore.get(i))==null?void 0:e.status)===ee.LOADED}async fetchAndAddToInternalCache(i,e){const t=this.cacheStore.get(i);if((t==null?void 0:t.status)===ee.LOADING){await this.handleLoading(i,async()=>{this.cacheStore.set(i,{content:"",status:ee.IDLE}),await this.fetchAndAddToInternalCache(i,e)});return}if(!(t!=null&&t.content)){this.cacheStore.set(i,{content:"",status:ee.LOADING});try{const s=await ia(i,e);this.cacheStore.set(i,{content:s,status:ee.LOADED})}catch(s){throw this.cacheStore.set(i,{content:"",status:ee.FAILED}),s}}}async fetchAndAddToPersistentCache(i,e){var o,r,M;const t=this.cacheStore.get(i);if((t==null?void 0:t.status)===ee.LOADED)return;if((t==null?void 0:t.status)===ee.LOADING){await this.handleLoading(i,async()=>{this.cacheStore.set(i,{content:"",status:ee.IDLE}),await this.fetchAndAddToPersistentCache(i,e)});return}this.cacheStore.set(i,{content:"",status:ee.LOADING});const s=await((o=this.cacheApi)==null?void 0:o.match(i));if(s){const a=await s.text();this.cacheStore.set(i,{content:a,status:ee.LOADED});return}try{await((r=this.cacheApi)==null?void 0:r.add(new Request(i,e)));const a=await((M=this.cacheApi)==null?void 0:M.match(i)),u=await(a==null?void 0:a.text())??"";this.cacheStore.set(i,{content:u,status:ee.LOADED})}catch(a){throw this.cacheStore.set(i,{content:"",status:ee.FAILED}),a}}async handleLoading(i,e){var t;for(let s=0;s({[i]:e}))}async delete(i){this.cacheApi&&await this.cacheApi.delete(i),this.cacheStore.delete(i)}async clear(){if(this.cacheApi){const i=await this.cacheApi.keys();await Promise.allSettled(i.map(e=>this.cacheApi.delete(e)))}this.cacheStore.clear()}};function NM(i){const e=b.useRef(void 0);return b.useEffect(()=>{e.current=i}),e.current}function Ene(i){const{baseURL:e,content:t,description:s,handleError:o,hash:r,preProcessor:M,title:a,uniquifyIDs:u=!1}=i;try{const N=_ne(t,M),l=sa(N,{nodeOnly:!0});if(!l||!(l instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");const c=oa(l,{baseURL:e,hash:r,uniquifyIDs:u});if(s){const L=c.querySelector("desc");L!=null&&L.parentNode&&L.parentNode.removeChild(L);const j=document.createElementNS("http://www.w3.org/2000/svg","desc");j.innerHTML=s,c.prepend(j)}if(typeof a<"u"){const L=c.querySelector("title");if(L!=null&&L.parentNode&&L.parentNode.removeChild(L),a){const j=document.createElementNS("http://www.w3.org/2000/svg","title");j.innerHTML=a,c.prepend(j)}}return c}catch(N){return o(N)}}function _ne(i,e){return e?e(i):i}function oa(i,e){const{baseURL:t="",hash:s,uniquifyIDs:o}=e,r=["id","href","xlink:href","xlink:role","xlink:arcrole"],M=["href","xlink:href"],a=(u,N)=>M.includes(u)&&(N?!N.includes("#"):!1);return o&&[...i.children].forEach(u=>{var N;if((N=u.attributes)!=null&&N.length){const l=Object.values(u.attributes).map(c=>{const L=c,j=/url\((.*?)\)/.exec(c.value);return j!=null&&j[1]&&(L.value=c.value.replace(j[0],`url(${t}${j[1]}__${s})`)),L});r.forEach(c=>{const L=l.find(j=>j.name===c);L&&!a(c,L.value)&&(L.value=`${L.value}__${s}`)})}return u.children.length?oa(u,e):u}),i}var Jt;function Sne(i){const{cacheRequests:e=!0,children:t=null,description:s,fetchOptions:o,innerRef:r,loader:M=null,onError:a,onLoad:u,src:N,title:l,uniqueHash:c}=i,[L,j]=b.useReducer((F,G)=>({...F,...G}),{content:"",element:null,isCached:e&&Jt.isCached(i.src),status:ee.IDLE}),{content:T,element:D,isCached:I,status:C}=L,E=NM(i),A=NM(L),_=b.useRef(c??Ane(8)),p=b.useRef(!1),z=b.useRef(!1),O=b.useCallback(F=>{p.current&&(j({status:F.message==="Browser does not support SVG"?ee.UNSUPPORTED:ee.FAILED}),a==null||a(F))},[a]),k=b.useCallback((F,G=!1)=>{p.current&&j({content:F,isCached:G,status:ee.LOADED})},[]),f=b.useCallback(async()=>{const F=await ia(N,o);k(F)},[o,k,N]),P=b.useCallback(()=>{try{const F=Ene({...i,handleError:O,hash:_.current,content:T}),G=sa(F);if(!G||!b.isValidElement(G))throw new Error("Could not convert the src to a React element");j({element:G,status:ee.READY})}catch(F){O(F)}},[T,O,i]),Y=b.useCallback(async()=>{const F=/^data:image\/svg[^,]*?(;base64)?,(.*)/u.exec(N);let G;if(F?G=F[1]?window.atob(F[2]):decodeURIComponent(F[2]):N.includes("{p.current&&j({content:"",element:null,isCached:!1,status:ee.LOADING})},[]);b.useEffect(()=>{if(p.current=!0,!(!js()||z.current)){try{if(C===ee.IDLE){if(!Cne())throw new Error("Browser does not support SVG");if(!N)throw new Error("Missing src");V()}}catch(F){O(F)}return z.current=!0,()=>{p.current=!1}}},[]),b.useEffect(()=>{if(!(!js()||!E)&&E.src!==N){if(!N){O(new Error("Missing src"));return}V()}},[O,V,E,N]),b.useEffect(()=>{C===ee.LOADED&&P()},[C,P]),b.useEffect(()=>{!js()||!E||E.src!==N||(E.title!==l||E.description!==s)&&P()},[s,P,E,N,l]),b.useEffect(()=>{if(A)switch(C){case ee.LOADING:{A.status!==ee.LOADING&&Y();break}case ee.LOADED:{A.status!==ee.LOADED&&P();break}case ee.READY:{A.status!==ee.READY&&(u==null||u(N,I));break}}},[Y,P,I,u,A,N,C]);const oe=hne(i,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return js()?D?b.cloneElement(D,{ref:r,...oe}):[ee.UNSUPPORTED,ee.FAILED].includes(C)?t:M:M}function No(i){Jt||(Jt=new One);const{loader:e}=i,[t,s]=b.useState(Jt.isReady);return b.useEffect(()=>{t||Jt.onReady(()=>{s(!0)})},[t]),t?n.createElement(Sne,{...i}):e}function xne(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"}))}function M4e(i){let e;const t=i==null?void 0:i._id;return t?(t.startsWith("_design/")||t==="system"?e=n.createElement(m.SettingsApplications,{className:"iconOwn"}):t==="0_userdata"||t==="0_userdata.0"?e=n.createElement(m.Photo,{className:"iconOwn"}):t==="alias"||t==="alias.0"?e=n.createElement(xne,{className:"iconOwn"}):t==="system.adapter"?e=n.createElement(m.SettingsApplications,{className:"iconOwn"}):t==="system.group"?e=n.createElement(m.SupervisedUserCircle,{className:"iconOwn"}):t==="system.user"?e=n.createElement(m.PersonOutlined,{className:"iconOwn"}):t==="system.host"?e=n.createElement(m.Router,{className:"iconOwn"}):t.endsWith(".connection")||t.endsWith(".connected")?e=n.createElement(m.Wifi,{className:"iconOwn"}):t.endsWith(".info")?e=n.createElement(m.Info,{className:"iconOwn"}):(i==null?void 0:i.type)==="meta"&&(e=n.createElement(m.Description,{className:"iconOwn"})),e||null):null}function n4e(i,e){e=e||".";let t="";const s=i==null?void 0:i.common;if(s){const o=s.icon;if(o)if(o.startsWith("data:image/"))t=o;else if(o.includes(".")){let r;i.type==="instance"||i.type==="adapter"?t=`${e}/adapter/${s.name}/${o}`:i._id&&i._id.startsWith("system.adapter.")?(r=i._id.split(".",3),o[0]==="/"?r[2]+=o:r[2]+=`/${o}`,t=`${e}/adapter/${r[2]}`):(r=i._id.split(".",2),o[0]==="/"?r[0]+=o:r[0]+=`/${o}`,t=`${e}/adapter/${r[0]}`)}else return null}return t||null}const fne=window.location.hostname.endsWith("iobroker.in"),lM=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);function Ie(i){var e,t,s;if(i.src){if(typeof i.src=="string"){if(i.src.length<3)return i.sx?n.createElement(g.Box,{component:"span",sx:i.sx,title:i.title||void 0,style:{height:27,marginTop:-8,...i.styleUTF8||i.style},className:S.clsx(i.className,"iconOwn")},i.src):n.createElement("span",{title:i.title||void 0,style:{height:27,marginTop:-8,...i.styleUTF8||i.style},className:S.clsx(i.className,"iconOwn")},i.src);if(i.src.startsWith("data:image/svg"))return n.createElement(No,{title:i.title||void 0,src:i.src,className:S.clsx(i.className,"iconOwn"),width:((e=i.style)==null?void 0:e.width)||28,height:((t=i.style)==null?void 0:t.height)||((s=i.style)==null?void 0:s.width)||28,style:i.style||void 0});if(fne&&!i.src.startsWith("http://")&&!i.src.startsWith("https://")){let o=i.src;return o.startsWith("./")?o=lM+o.substring(2):o.startsWith("/")||(o=lM+o),i.sx?n.createElement(g.Box,{component:"img",sx:i.sx,title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:`https://remote-files.iobroker.in${o}`,alt:i.alt||void 0,ref:i.ref,onError:r=>i.onError&&i.onError(r)}):n.createElement("img",{title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:`https://remote-files.iobroker.in${o}`,alt:i.alt||void 0,ref:i.ref,onError:r=>i.onError&&i.onError(r)})}return i.sx?n.createElement(g.Box,{component:"img",sx:i.sx,title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:i.src,alt:i.alt||void 0,ref:i.ref,onError:i.onError}):n.createElement("img",{title:i.title||void 0,style:i.style||void 0,className:S.clsx(i.className,"iconOwn"),src:i.src,alt:i.alt||void 0,ref:i.ref,onError:i.onError})}return i.src}return null}const zt={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}},ge={images:["png","jpg","svg","jpeg","bmp","gif","apng","avif","webp","ico"],code:["js","json","json5","md"],txt:["log","txt","html","css","xml","ics"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};function LM(i,e){let t="";const s=new Uint8Array((i==null?void 0:i.data)||i),o=s.byteLength;for(let r=0;r{let r="";o.file!==void 0&&(r=o.file);const M={copyPossible:this.state.copyPossible,ext:this.state.ext};if(r.type==="Buffer")if(s.toLowerCase().endsWith(".json5")){M.ext="json5",M.copyPossible=!0;try{r=atob(LM(r,!0))}catch{console.error("Cannot convert base64 to string"),r=""}}else{const a=S.detectMimeType(LM(r));a&&(M.ext=a,M.copyPossible=ge.code.includes(a)||ge.txt.includes(a))}M.copyPossible&&(M.ext&&ge.txt.includes(M.ext)?(M.text=r,M.editingValue=r):M.ext&&ge.code.includes(M.ext)&&(M.code=r,M.editingValue=r)),this.setState(M)}).catch(o=>window.alert(`Cannot read file: ${o}`))}}componentDidMount(){this.readFile();const e=this.props.href.split("/");e.splice(0,2);const t=e[0],s=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,s,this.onFileChanged).catch(o=>window.alert(`Cannot subscribe on file: ${o}`))}componentWillUnmount(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);const e=this.props.href.split("/");e.splice(0,2);const t=e[0],s=e.splice(1).join("/");this.props.supportSubscribes&&this.props.socket.subscribeFiles(t,s,this.onFileChanged).catch(o=>window.alert(`Cannot subscribe on file: ${o}`))}onFileChanged=(e,t,s)=>{this.state.changed||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.timeout=null,s===null?window.alert("Show file was deleted!"):this.state.text!==null||this.state.code!==null?this.readFile():this.setState({forceUpdate:Date.now()})},300))};getEditorOrViewer(){return n.createElement(g.TextField,{variant:"standard",style:zt.textarea,multiline:!0,value:this.state.editingValue||this.state.code||this.state.text,slotProps:{htmlInput:{readOnly:!this.state.editing}}})}getContent(){return this.state.ext&&ge.images.includes(this.state.ext)?this.state.imgError?n.createElement(Fo,{style:{...zt.img,...this.props.getStyleBackgroundImage()}}):n.createElement(Ie,{onError:e=>{e.target.onerror=null,this.setState({imgError:!0})},style:{...zt.img,...this.props.getStyleBackgroundImage()},src:`${this.props.href}?ts=${this.state.forceUpdate}`,alt:this.props.href}):this.state.ext&&ge.audio.includes(this.state.ext)?n.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},n.createElement("audio",{style:{width:"100%"},src:this.props.href,controls:!0})):this.state.ext&&ge.video.includes(this.state.ext)?n.createElement("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},n.createElement("video",{style:{width:"100%",height:"100%"},controls:!0},n.createElement("source",{src:this.props.href,type:`video/${this.state.ext}}`}))):this.state.code!==null||this.state.text!==null||this.state.editing?this.getEditorOrViewer():null}onSave(){}render(){return n.createElement(g.Dialog,{sx:{"&.MuiDialog-scrollPaper":zt.dialog,"& .MuiDialog-paper":zt.paper},scroll:"paper",open:!!this.props.href,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"ar_dialog_file_view_title"},n.createElement("div",{style:zt.dialogTitle},n.createElement(g.DialogTitle,{id:"ar_dialog_file_view_title"},`${this.props.t(this.state.editing?"Edit":"View")}: ${this.props.href}`),this.state.ext&&ge.images.includes(this.state.ext)&&n.createElement("div",null,n.createElement(g.IconButton,{size:"large",color:"inherit",onClick:this.props.setStateBackgroundImage},n.createElement(m.Brightness6,null)))),n.createElement(g.DialogContent,{style:zt.content},this.getContent()),n.createElement(g.DialogActions,null,this.state.copyPossible?n.createElement(g.Button,{color:"grey",onClick:e=>{e.stopPropagation(),e.preventDefault(),S.copyToClipboard(this.state.text||this.state.code||"")},startIcon:n.createElement(m.ContentCopy,null)},this.props.t("Copy content")):null,this.state.editing?n.createElement(g.Button,{color:"grey",disabled:this.state.editingValue===this.state.code||this.state.editingValue===this.state.text,variant:"contained",onClick:()=>this.onSave(),startIcon:n.createElement(m.Save,null)},this.props.t("Save")):null,n.createElement(g.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"primary",startIcon:n.createElement(m.Close,null)},this.props.t("Close"))))}}const Yne=di()(kne),vt=32,He=32,$s=120,jM=64,gM="Not found",Ps={all:m.InsertDriveFile,images:m.Image,code:m.Code,txt:m.FontDownload,audio:m.AudioFile,video:m.Videocam},U={root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - 8px)",overflowX:"hidden",overflowY:"auto",padding:8},filesDivHint:{position:"absolute",bottom:0,left:20,opacity:.7,fontStyle:"italic",fontSize:12},filesDivTable:{height:"calc(100% - 56px)"},filesDivTile:{height:`calc(100% - ${48*2+8}px)`,display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:`0 0 ${jM}px`},itemTile:i=>({position:"relative",userSelect:"none",cursor:"pointer",height:$s,width:jM,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:"4px",borderRadius:"4px","&:hover":{background:i.palette.secondary.light,color:S.invertColor(i.palette.secondary.main,!0)}}),itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:i=>({width:"100%",height:$s-32-16-8,display:"block",pl:1,color:i.palette.secondary.main||"#fbff7d"}),itemFolderIconBack:i=>({position:"absolute",top:22,left:18,zIndex:1,color:(i.palette.mode==="dark","#FFF")}),itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:$s-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:$s-32-16-8,display:"block",objectFit:"contain"},itemSelected:i=>({background:i.palette.primary.main,color:S.invertColor(i.palette.primary.main,!0)}),itemTable:i=>({userSelect:"none",cursor:"pointer",height:vt,display:"inline-flex",lineHeight:`${vt}px`,"&:hover":{background:i.palette.secondary.light,color:S.invertColor(i.palette.secondary.main,!0)}}),itemNameTable:{display:"inline-block",pl:"10px",fontSize:"1rem",verticalAlign:"top",flexGrow:1,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden","@media screen and (max-width: 500px)":{textAlign:"end",direction:"rtl"}},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right",whiteSpace:"nowrap"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemNoImageTable:{marginTop:6},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:i=>({marginTop:"1px",marginLeft:"8px",display:"inline-block",width:30,height:30,color:i.palette.secondary.main||"#fbff7d"}),itemDownloadButtonTable:i=>({display:"inline-block",width:He,height:vt,minWidth:He,verticalAlign:"middle",textAlign:"center",padding:0,borderRadius:`${He/2}px`,"&:hover":{backgroundColor:i.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"},"& span":{pt:"9px"},"& svg":{width:14,height:14,fontSize:"1rem",mt:"-3px",verticalAlign:"middle",color:i.palette.mode==="dark"?"#EEE":"#111"}}),itemDownloadEmptyTable:{display:"inline-block",width:He,height:vt,minWidth:He,padding:0},itemAclButtonTable:{width:He,height:vt,minWidth:He,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:He,height:vt,minWidth:He,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:i=>({m:"20px",border:"3px dashed grey",borderRadius:"30px",width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:i.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"}),uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",height:"30%",width:"100%",margin:"auto",opacity:.3},menuButtonExpertActive:{color:"#c00000"},menuButtonRestrictActive:{color:"#c05000"},pathDiv:i=>({display:"flex",width:"calc(100% - 16px)",ml:1,mr:1,textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap",backgroundColor:i.palette.secondary.main,color:i.palette.secondary.contrastText,borderRadius:"4px 4px 0 0"}),pathDivInput:{width:"100%"},pathDivBreadcrumbDir:i=>({pl:"2px",pr:"2px",cursor:"pointer",color:"white","&:hover":{backgroundColor:i.palette.primary.main,color:i.palette.primary.contrastText}}),pathDivBreadcrumbSelected:{color:"#FFF"},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},specialFolder:i=>({color:i.palette.mode==="dark"?"#229b0f":"#5dd300"}),tooltip:{pointerEvents:"none"}},rt="0_userdata.0";function bt(i){const e=(i||"").split("/");return e.length&&e.pop(),e.join("/")}function Yi(i){const e=S.getFileExtension(i);return!!(e!=null&&e.toLowerCase().match(/[a-z]+/)&&e.length<5)}const q="Table",Qi="Tile";function TM(i,e){return i.folder&&e.folder?i.name>e.name?1:i.namee.name?1:i.name{var N;return u.startsWith(`${this.limitToPath}/`)||u===this.limitToPath||((N=this.limitToPath)==null?void 0:N.startsWith(`${u}/`))}))}catch{s=[]}let o;this.props.showViewTypeButton?o=this.localStorage.getItem("files.viewType")||q:o=q;let r=this.props.selected||this.localStorage.getItem("files.selected")||rt,M;if(e.restrictToFolder){r=e.restrictToFolder,M=e.restrictToFolder;const u=e.restrictToFolder.split("/");s=[];let N="";for(let l=0;l{if(this.state.viewType===q&&!this.findItem(this.state.selected)){const t=this.state.selected.split("/");for(;t.length&&!this.findItem(t.join("/"));)t.pop();let s;t.length?s=t.join("/"):s=rt,this.setState({selected:s,path:s,pathFocus:!1},()=>this.scrollToSelected())}else this.scrollToSelected();this.initialReadFinished=!0})}scrollToSelected(){if(this.mounted){const e=document.getElementById(this.state.selected);e==null||e.scrollIntoView()}}async componentDidMount(){this.mounted=!0,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`)),this.supportSubscribes=await this.props.socket.checkFeatureSupported("BINARY_STATE_EVENT"),this.supportSubscribes&&await this.props.socket.subscribeFiles("*","*",this.onFileChange)}componentWillUnmount(){this.supportSubscribes&&this.props.socket.unsubscribeFiles("*","*",this.onFileChange),this.mounted=!1,this.browseList=null,this.browseListRunning=!1,Object.values(this._tempTimeout).forEach(e=>e&&clearTimeout(e)),this._tempTimeout={}}browseFoldersCb(e,t,s){if(!(e!=null&&e.length))s(t);else{const o=e.shift();o?this.browseFolder(o,t).catch(r=>console.error(`Cannot read folder ${o}: ${r.message}`)).then(()=>{setTimeout(()=>this.browseFoldersCb(e,t,s),0)}):setTimeout(()=>this.browseFoldersCb(e,t,s),0)}}browseFolders(e,t){let s;return t?s=t:(s={},Object.keys(this.state.folders).forEach(o=>s[o]=this.state.folders[o])),e!=null&&e.length?new Promise(o=>{this.browseFoldersCb(e,s,o)}):Promise.resolve(s)}readDirSerial(e,t){return new Promise((s,o)=>{this.browseList&&(this.browseList.push({resolve:s,reject:o,adapter:e,relPath:t}),this.browseListRunning||this.processBrowseList())})}processBrowseList(e=0){!this.browseListRunning&&this.browseList&&this.browseList.length&&(this.browseListRunning=!0,this.browseList.length>10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(t=>{if(this.browseList){const s=this.browseList.shift();if(s){const o=s.resolve;s.resolve=null,s.reject=null,s.adapter=null,s.relPath=null,o&&o(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}).catch(t=>{if(this.browseList){const s=this.browseList.shift();if(s){const o=s.reject;s.resolve=null,s.reject=null,s.adapter=null,s.relPath=null,o&&o(t),this.browseListRunning=!1,this.browseList.length?e<5?this.processBrowseList(e+1):setTimeout(()=>this.processBrowseList(0),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}}))}async browseFolder(e,t,s,o){let r;if(t?r=t:(r={},Object.keys(this.state.folders).forEach(c=>{r[c]=this.state.folders[c]})),r[e]&&!o)return s?Promise.resolve(r):new Promise((c,L)=>{Promise.all(r[e].filter(j=>j.folder).map(j=>this.browseFolder(j.id,r,!0).catch(()=>{}))).then(()=>c(r)).catch(j=>L(new Error(j)))});if(!e||e==="/"){try{let c=await this.props.socket.readMetaItems();const L=[];let j=null;if(this.state.restrictToFolder){const D=this.state.restrictToFolder.split("/")[0];c=c.filter(I=>I._id===D)}else this.state.expertMode||(c=c.filter(D=>!D._id.endsWith(".admin")));const T=c.findIndex(D=>D._id==="system.meta.uuid");if(T!==-1&&c.splice(T,1),c.forEach(D=>{if(this.limitToObjectID&&this.limitToObjectID!==D._id)return;const I={id:D._id,name:D._id,title:D.common&&D.common.name||D._id,meta:!0,from:D.from,ts:D.ts,color:D.common&&D.common.color,icon:D.common&&D.common.icon,folder:!0,acl:D.acl,level:0};I.id===rt?j=I:L.push(I)}),L.sort((D,I)=>D.id>I.id?1:D.idD.folder).map(D=>this.browseFolder(D.id,r,!0).catch(()=>{}))).then(()=>r)}catch(c){const L=c;this.initialReadFinished&&window.alert(`Cannot read meta items: ${L.message}`),r[e||"/"]=[]}return r}const M=e.split("/"),a=M.length,u=M.shift(),N=M.join("/");let l;try{l=await this.readDirSerial(u||"",N)}catch(c){if(c==="Not exists"&&u==="0_userdata.0")l=[];else throw c}try{const c=[];if(l.forEach(L=>{var T;const j={id:`${e}/${L.file}`,ext:S.getFileExtension(L.file),folder:L.isDir,name:L.file,size:(T=L.stats)==null?void 0:T.size,modified:L.modifiedAt,acl:L.acl,level:a};this.state.restrictToFolder?(j.folder&&(j.id.startsWith(`${this.state.restrictToFolder}/`)||j.id===this.state.restrictToFolder||this.state.restrictToFolder.startsWith(`${j.id}/`))||j.id.startsWith(`${this.state.restrictToFolder}/`))&&c.push(j):this.limitToPath?(j.folder&&(j.id.startsWith(`${this.limitToPath}/`)||j.id===this.limitToPath||this.limitToPath.startsWith(`${j.id}/`))||j.id.startsWith(`${this.limitToPath}/`))&&c.push(j):c.push(j)}),c.sort(TM),r[e]=c,!s)return Promise.all(c.filter(L=>L.folder).map(L=>this.browseFolder(L.id,r,!0))).then(()=>r)}catch(c){const L=c;this.initialReadFinished&&window.alert(`Cannot read ${u}${N?`/${N}`:""}: ${L==null?void 0:L.message}`),r[e]=[]}return r}toggleFolder(e,t){t==null||t.stopPropagation();const s=[...this.state.expanded],o=s.indexOf(e.id);o===-1?(s.push(e.id),s.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(s)),e.temp?this.setState({expanded:s}):this.browseFolder(e.id).then(r=>this.setState({expanded:s,folders:r})).catch(r=>window.alert(r===gM?this.props.t('ra_Cannot find "%s"',e.id):this.props.t('ra_Cannot read "%s"',e.id)))):(s.splice(o,1),this.localStorage.setItem("files.expanded",JSON.stringify(s)),this.setState({expanded:s}))}onFileChange=(e,t,s)=>{const o=`${e}/${t}`,r=o.lastIndexOf("/"),M=o.substring(0,r);console.log(`File changed ${o}[${s}]`),this.state.folders[M]&&(this._tempTimeout[M]&&clearTimeout(this._tempTimeout[M]),this._tempTimeout[M]=setTimeout(()=>{delete this._tempTimeout[M],this.browseFolder(M,null,!1,!0).then(a=>this.setState({folders:a})).catch(a=>console.error(`Cannot read folder: ${a.message}`))},300))};changeFolder(e,t){var o;e==null||e.stopPropagation(),this.lastSelect=Date.now();let s=t||bt(this.state.currentDir);if(s==="/"&&(s=""),this.state.viewType==="Tile"&&((o=this.refFileDiv.current)!=null&&o.scrollTop)&&(this.scrollPositions[this.state.currentDir]=this.refFileDiv.current.scrollTop),this.localStorage.setItem("files.currentDir",s),t&&e&&(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)){this.setState({selected:s});return}if(s&&!this.state.folders[s]){this.browseFolder(s).then(r=>this.setState({folders:r,path:s,currentDir:s,selected:s,pathFocus:!1},()=>this.props.onSelect&&this.props.onSelect(""))).catch(r=>console.error(`Cannot read folder: ${r.message}`));return}this.setState({currentDir:s,selected:s,path:s,pathFocus:!1},()=>{if(this.props.onSelect&&this.props.onSelect(""),this.state.viewType==="Tile"&&this.scrollPositions[this.state.currentDir]){const r=this.scrollPositions[this.state.currentDir];delete this.scrollPositions[this.state.currentDir],this.refFileDiv.current&&(this.refFileDiv.current.scrollTop=r)}})}select(e,t,s){t&&t.stopPropagation(),this.lastSelect=Date.now(),this.localStorage.setItem("files.selected",e),this.setState({selected:e,path:e,pathFocus:!1},()=>{if(this.props.onSelect){const o=S.getFileExtension(e);(!this.props.filterFiles||o&&this.props.filterFiles.includes(o))&&(!this.state.filterByType||o&&ge[this.state.filterByType].includes(o))?this.props.onSelect(e,!1,!!this.state.folders[e]):this.props.onSelect("")}s&&s()})}getText(e){if(e)return typeof e=="object"?e[this.props.lang]||e.en||void 0:e}renderFolder(e,t){var u;if(this.state.filterEmpty&&!((u=this.state.folders[e.id])!=null&&u.length)&&e.id!==rt&&!e.temp)return null;const s=t?Ks:Gt,o=this.state.viewType===q?e.level*this.levelPadding:0,r=e.name===rt,M=r||e.name==="vis.0"||e.name==="vis-2.0",a=S.getStyle(this.props.theme,U[`itemFolderIcon${this.state.viewType}`],M&&U.specialFolder);return n.createElement(g.Box,{component:"div",key:e.id,id:e.id,style:this.state.viewType===q?{marginLeft:o,width:`calc(100% - ${o}px`}:void 0,onClick:N=>this.state.viewType===q?this.select(e.id,N):this.changeFolder(N,e.id),onDoubleClick:N=>this.state.viewType===q&&this.toggleFolder(e,N),title:this.getText(e.title),className:"browserItem",sx:S.getStyle(this.props.theme,U[`item${this.state.viewType}`],U[`itemFolder${this.state.viewType}`],this.state.selected===e.id?U.itemSelected:{},e.temp?U.itemFolderTemp:{})},n.createElement(s,{style:a,onClick:this.state.viewType===q?N=>this.toggleFolder(e,N):void 0}),n.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,U[`itemName${this.state.viewType}`],U[`itemNameFolder${this.state.viewType}`])},r?this.props.t("ra_User files"):e.name),n.createElement(g.Box,{component:"div",style:U[`itemSize${this.state.viewType}`],sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.state.folders[e.id]?this.state.folders[e.id].length:""),n.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.props.expertMode?this.formatAcl(e.acl):null),this.state.viewType===q&&this.props.expertMode?n.createElement(g.Box,{component:"div",sx:{...U.itemDeleteButtonTable,display:{md:"inline-block",sm:"none"}}}):null,this.state.viewType===q&&this.props.allowDownload?n.createElement("div",{style:U[`itemDownloadEmpty${this.state.viewType}`]}):null,this.state.viewType===q&&this.props.allowDelete&&this.state.folders[e.id]&&this.state.folders[e.id].length?n.createElement(g.IconButton,{"aria-label":"delete",onClick:N=>{N.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:U[`itemDeleteButton${this.state.viewType}`],size:"large"},n.createElement(m.Delete,{fontSize:"small"})):this.state.viewType===q&&this.props.allowDelete?n.createElement(g.Box,{component:"div",sx:U[`itemDeleteButton${this.state.viewType}`]}):null)}renderBackFolder(){return n.createElement(g.Box,{component:"div",key:this.state.currentDir,id:this.state.currentDir,onClick:e=>this.changeFolder(e),title:this.props.t("ra_Back to %s",bt(this.state.currentDir)),className:"browserItem",sx:S.getStyle(this.props.theme,U[`item${this.state.viewType}`],U[`itemFolder${this.state.viewType}`])},n.createElement(Gt,{style:S.getStyle(this.props.theme,U[`itemFolderIcon${this.state.viewType}`])}),n.createElement(m.ArrowBack,{sx:U.itemFolderIconBack}),n.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,U[`itemName${this.state.viewType}`],U[`itemNameFolder${this.state.viewType}`])},".."))}formatSize(e){return n.createElement("div",{style:U[`itemSize${this.state.viewType}`]},e||e===0?S.formatBytes(e):"")}formatAcl(e){const t=e?e.permissions||e.file:0;let s;return t?s=t.toString(16).padStart(3,"0"):s="",n.createElement("div",{style:U[`itemAccess${this.state.viewType}`]},this.props.modalEditOfAccessControl?n.createElement(g.IconButton,{size:"large",onClick:()=>this.setState({modalEditOfAccess:!0}),sx:U[`itemAclButton${this.state.viewType}`]},s||"---"):s||"---")}getFileIcon(e){switch(e){case"json":case"json5":return n.createElement(m.Bookmark,{style:U[`itemIcon${this.state.viewType}`]});case"css":return n.createElement(m.BookmarkBorder,{style:U[`itemIcon${this.state.viewType}`]});case"js":case"ts":return n.createElement(m.Code,{style:U[`itemIcon${this.state.viewType}`]});case"html":case"md":return n.createElement(m.Description,{style:U[`itemIcon${this.state.viewType}`]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return n.createElement(m.MusicNote,{style:U[`itemIcon${this.state.viewType}`]});default:return n.createElement(m.InsertDriveFile,{style:U[`itemIcon${this.state.viewType}`]})}}static getEditFile(e){switch(e){case"json":case"json5":case"js":case"html":case"txt":case"css":case"log":return!0;default:return!1}}setStateBackgroundImage=()=>{const e=["light","dark","colored","delete"];this.setState(({backgroundImage:t})=>t&&e.indexOf(t)!==-1&&e.length-1!==e.indexOf(t)?(this.localStorage.setItem("files.backgroundImage",e[e.indexOf(t)+1]),{backgroundImage:e[e.indexOf(t)+1]}):(this.localStorage.setItem("files.backgroundImage",e[0]),{backgroundImage:e[0]}))};getStyleBackgroundImage=()=>{switch(this.state.backgroundImage){case"light":return U.backgroundImageLight;case"dark":return U.backgroundImageDark;case"colored":return U.backgroundImageColored;case"delete":return null;default:return null}};renderFile(e){const t=this.state.viewType===q?e.level*this.levelPadding:0,s=S.getFileExtension(e.name);return n.createElement(g.Box,{component:"div",key:e.id,id:e.id,onDoubleClick:o=>{o.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&ge[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:s})},onClick:o=>this.select(e.id,o),style:this.state.viewType===q?{marginLeft:t,width:`calc(100% - ${t}px)`}:void 0,className:"browserItem",sx:S.getStyle(this.props.theme,U[`item${this.state.viewType}`],U[`itemFile${this.state.viewType}`],this.state.selected===e.id?U.itemSelected:void 0)},s&&ge.images.includes(s)?this.state.fileErrors.includes(e.id)?n.createElement(Fo,{style:{...U[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage(),...U[`itemNoImage${this.state.viewType}`]}}):n.createElement(Ie,{onError:o=>{o.target.onerror=null;const r=[...this.state.fileErrors];r.includes(e.id)||(r.push(e.id),this.setState({fileErrors:r}))},style:{...U[`itemImage${this.state.viewType}`],...this.getStyleBackgroundImage()},src:this.imagePrefix+e.id,alt:e.name}):this.getFileIcon(s),n.createElement(g.Box,{component:"div",sx:U[`itemName${this.state.viewType}`]},e.name),n.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.formatSize(e.size)),n.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.props.expertMode?this.formatAcl(e.acl):null),n.createElement(g.Box,{component:"div",sx:{display:{md:"inline-block",sm:"none"}}},this.state.viewType===q&&this.props.expertMode&&Go.getEditFile(s)?n.createElement(g.IconButton,{"aria-label":"edit",onClick:o=>{o.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||e.ext&&this.props.filterFiles.includes(e.ext))&&(!this.state.filterByType||e.ext&&ge[this.state.filterByType].includes(e.ext))&&this.props.onSelect(e.id,!0,!!this.state.folders[e.id]):this.setState({viewer:this.imagePrefix+e.id,formatEditFile:s})},sx:U.itemDeleteButtonTable,size:"large"},n.createElement(m.Edit,{fontSize:"small"})):n.createElement(g.Box,{component:"div",sx:U[`itemDeleteButton${this.state.viewType}`]})),this.state.viewType===q&&this.props.allowDownload?n.createElement(g.Box,{component:"a",className:"MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeLarge",sx:U.itemDownloadButtonTable,tabIndex:0,download:e.id,href:this.imagePrefix+e.id,onClick:o=>o.stopPropagation()},n.createElement(m.SaveAlt,null)):null,this.state.viewType===q&&this.props.allowDelete&&e.id!=="vis.0/"&&e.id!=="vis-2.0/"&&e.id!==rt?n.createElement(g.IconButton,{"aria-label":"delete",onClick:o=>{o.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(e.id):this.setState({deleteItem:e.id})},sx:U[`itemDeleteButton${this.state.viewType}`],size:"large"},n.createElement(m.Delete,{fontSize:"small"})):this.state.viewType===q&&this.props.allowDelete?n.createElement(g.Box,{component:"div",sx:U[`itemDeleteButton${this.state.viewType}`]}):null)}renderItems(e){var t;if((t=this.state.folders)!=null&&t[e]){if(this.state.viewType===Qi){const o=[];return e&&e!=="/"&&o.push(this.renderBackFolder()),this.state.folders[e].forEach(r=>{r.folder?o.push(this.renderFolder(r)):(!this.props.filterFiles||r.ext&&this.props.filterFiles.includes(r.ext))&&(!this.state.filterByType||r.ext&&ge[this.state.filterByType].includes(r.ext))&&o.push(this.renderFile(r))}),o}const s=[];return this.state.folders[e].forEach(o=>{if(o.folder){const r=this.state.expanded.includes(o.id),M=this.renderFolder(o,r);if(Array.isArray(M)?M.forEach(a=>s.push(a)):s.push(M),this.state.folders[o.id]&&r){const a=this.renderItems(o.id);Array.isArray(a)?a.forEach(u=>s.push(u)):s.push(a)}}else(!this.props.filterFiles||o.ext&&this.props.filterFiles.includes(o.ext))&&(!this.state.filterByType||o.ext&&ge[this.state.filterByType].includes(o.ext))&&s.push(this.renderFile(o))}),s}return n.createElement("div",{style:{position:"relative"}},n.createElement(g.CircularProgress,{key:e,color:"secondary",size:24}),n.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}renderToolbar(){const e=this.props.showTypeSelector?Ps[this.state.filterByType||"all"]||Ps.all:null,t=this.findFirstFolder(this.state.selected);return n.createElement(g.Toolbar,{key:"toolbar",variant:"dense"},this.props.allowNonRestricted&&this.props.restrictToFolder?n.createElement(g.IconButton,{edge:"start",title:this.state.restrictToFolder?this.props.t("ra_Show all folders"):this.props.t("ra_Restrict to folder"),style:{...U.menuButton,...this.state.restrictToFolder?U.menuButtonRestrictActive:void 0},"aria-label":"restricted to folder",onClick:()=>this.setState({restrictToFolder:(this.state.restrictToFolder?"":this.props.restrictToFolder)||"",loadAllFolders:!0}),size:"small"},n.createElement(m.FolderSpecial,{fontSize:"small"})):null,this.props.showExpertButton?n.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Toggle expert mode"),style:{...U.menuButton,...this.state.expertMode?U.menuButtonExpertActive:void 0},"aria-label":"expert mode",onClick:()=>this.setState({expertMode:!this.state.expertMode}),size:"small"},n.createElement(uo,null)):null,this.props.showViewTypeButton?n.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Toggle view mode"),style:U.menuButton,"aria-label":"view mode",onClick:()=>{const s=this.state.viewType===q?Qi:q;this.localStorage.setItem("files.viewType",s);let o=this.state.selected;Yi(o)&&(o=bt(o)),this.setState({viewType:s,currentDir:o},()=>{this.state.viewType===q&&this.scrollToSelected()})},size:"small"},this.state.viewType!==q?n.createElement(m.List,{fontSize:"small"}):n.createElement(m.ViewModule,{fontSize:"small"})):null,n.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Hide empty folders"),style:U.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:()=>{this.localStorage.setItem("file.empty",this.state.filterEmpty?"false":"true"),this.setState({filterEmpty:!this.state.filterEmpty})},size:"small"},n.createElement(m.FolderOpen,{fontSize:"small"})),n.createElement(g.IconButton,{edge:"start",title:this.props.t("ra_Reload files"),style:U.menuButton,color:"inherit","aria-label":"reload files",onClick:()=>this.setState({folders:{}},()=>this.loadFolders()),size:"small"},n.createElement(m.Refresh,{fontSize:"small"})),this.props.allowCreateFolder?n.createElement(g.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),style:U.menuButton,color:"inherit","aria-label":"add folder",onClick:()=>this.setState({addFolder:!0}),size:"small"},n.createElement(m.CreateNewFolder,{fontSize:"small"})):null,this.props.allowUpload?n.createElement(g.IconButton,{edge:"start",disabled:!this.state.selected||!t||!!this.limitToPath&&!this.state.selected.startsWith(`${this.limitToPath}/`)&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),style:U.menuButton,color:"inherit","aria-label":"upload file",onClick:()=>this.setState({uploadFile:!0}),size:"small"},n.createElement(m.Publish,{fontSize:"small"})):null,this.props.showTypeSelector&&e?n.createElement(g.Tooltip,{title:this.props.t("ra_Filter files"),slotProps:{popper:{sx:U.tooltip}}},n.createElement(g.IconButton,{size:"small",onClick:s=>this.setState({showTypesMenu:s.target})},n.createElement(e,{fontSize:"small"}))):null,this.state.showTypesMenu?n.createElement(g.Menu,{open:!0,anchorEl:this.state.showTypesMenu,onClose:()=>this.setState({showTypesMenu:null})},Object.keys(Ps).map(s=>{const o=Ps[s];return n.createElement(g.MenuItem,{key:s,selected:this.state.filterByType===s,onClick:()=>{s==="all"?(this.localStorage.removeItem("files.filterByType"),this.setState({filterByType:"",showTypesMenu:null})):(this.localStorage.setItem("files.filterByType",s),this.setState({filterByType:s,showTypesMenu:null}))}},n.createElement(g.ListItemIcon,null,n.createElement(o,{fontSize:"small"})),n.createElement(g.ListItemText,null,this.props.t(`ra_fileType_${s}`)))})):null,n.createElement(g.Tooltip,{title:this.props.t("ra_Background image"),slotProps:{popper:{sx:U.tooltip}}},n.createElement(g.IconButton,{color:"inherit",edge:"start",style:U.menuButton,onClick:this.setStateBackgroundImage,size:"small"},n.createElement(m.Brightness6,{fontSize:"small"}))),this.state.viewType!==q&&this.props.allowDelete?n.createElement(g.Tooltip,{title:this.props.t("ra_Delete"),slotProps:{popper:{sx:U.tooltip}}},n.createElement("span",null,n.createElement(g.IconButton,{"aria-label":"delete",disabled:!this.state.selected||this.state.selected==="vis.0/"||this.state.selected==="vis-2.0/"||this.state.selected===rt,color:"inherit",edge:"start",style:U.menuButton,onClick:s=>{s.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(this.state.selected):this.setState({deleteItem:this.state.selected})},size:"small"},n.createElement(m.Delete,{fontSize:"small"})))):null)}findItem(e,t){if(t=t||this.state.folders,!t)return null;const s=e.split("/");s.pop();const o=s.join("/")||"/";return t[o]&&t[o].find(r=>r.id===e)||null}renderInputDialog(){if(this.state.addFolder){const e=this.findFirstFolder(this.state.selected);return e?n.createElement(Nne,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:t=>this.state.folders[e].find(s=>s.name===t)?"":this.props.t("ra_Duplicate name"),onClose:t=>{if(t){const s={};Object.keys(this.state.folders).forEach(a=>s[a]=this.state.folders[a]);const o=this.findItem(e),r=`${e}/${t}`;s[e].push({id:r,level:((o==null?void 0:o.level)||0)+1,name:t,folder:!0,temp:!0}),s[e].sort(TM),s[r]=[];const M=[...this.state.expanded];M.includes(e)||(M.push(e),M.sort()),this.localStorage.setItem("files.expanded",JSON.stringify(M)),this.setState({addFolder:!1,folders:s,expanded:M},()=>this.select(r))}else this.setState({addFolder:!1})},replace:t=>t.replace(/[^-_\w]/,"_")}):(window.alert(this.props.t("ra_Invalid parent folder!")),null)}return null}componentDidUpdate(){this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(()=>{this.setOpacityTimer=null;const e=window.document.getElementsByClassName("browserItem");for(let t=0;tthis.setState({uploadFile:!1})},n.createElement(m.Close,null)),n.createElement(ln,{key:"dropzone",onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:e=>{let t=e.length;e.forEach(s=>{const o=new FileReader;o.onabort=()=>console.log("file reading was aborted"),o.onerror=()=>console.log("file reading has failed"),o.onload=()=>{const r=this.findFirstFolder(this.state.selected);if(!r)window.alert(this.props.t("ra_Invalid parent folder!"));else{const M=`${r}/${s.name}`;this.uploadFile(M,o.result).then(()=>{--t||this.setState({uploadFile:!1},()=>{if(this.supportSubscribes){const a=[...this.state.expanded];a.includes(r)||(a.push(r),a.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(a))),this.setState({expanded:a},()=>this.select(M))}else setTimeout(()=>this.browseFolder(r,null,!1,!0).then(a=>{const u=[...this.state.expanded];u.includes(r)||(u.push(r),u.sort(),this.localStorage.setItem("files.expanded",JSON.stringify(u))),this.setState({folders:a,expanded:u},()=>this.select(M))}),500)})})}},o.readAsArrayBuffer(s)})}},({getRootProps:e,getInputProps:t})=>n.createElement("div",{style:{...U.uploadDiv,...this.state.uploadFile==="dragging"?U.uploadDivDragging:void 0},...e()},n.createElement("input",{...t()}),n.createElement(g.Box,{component:"div",sx:U.uploadCenterDiv},n.createElement("div",{style:U.uploadCenterTextAndIcon},n.createElement(m.Publish,{style:U.uploadCenterIcon}),n.createElement("div",{style:U.uploadCenterText},this.state.uploadFile==="dragging"?this.props.t("ra_Drop file here"):this.props.t("ra_Place your files here or click here to open the browse dialog"))))))]:null}deleteRecursive(e){const t=this.findItem(e);if(t!=null&&t.folder)return(this.state.folders[e]?Promise.all(this.state.folders[e].map(r=>this.deleteRecursive(r.id))):Promise.resolve()).then(()=>{if(t.level>=1){const r=e.split("/"),M=r.shift();this.props.socket.deleteFolder(M||"",r.join("/")).then(()=>{const a=JSON.parse(JSON.stringify(this.state.folders));delete a[t.id];const u=bt(t.id),N=a[u];if(N){const l=N.findIndex(c=>c.id===t.id);l!==-1&&N.splice(l,1),this.select(u,null,()=>this.setState({folders:a}))}})}});const s=e.split("/"),o=s.shift();return s.length?this.props.socket.deleteFile(o||"",s.join("/")).catch(r=>window.alert(`Cannot delete file: ${r}`)):Promise.resolve()}deleteItem(e){e=e||this.state.deleteItem,this.state.suppressDeleteConfirm&&(this.suppressDeleteConfirm=Date.now()+6e4*5),this.setState({deleteItem:"",suppressDeleteConfirm:!1},()=>this.deleteRecursive(e).then(()=>{const t={},s=this.state.expanded.indexOf(e);if(s!==-1){const o=[...this.state.expanded];o.splice(s,1),this.localStorage.setItem("files.expanded",JSON.stringify(o)),t.expanded=o}if(this.state.selected===e){const o=this.state.selected.split("/");o.pop(),t.selected=o.join("/")}if(this.supportSubscribes)this.setState(t);else{const o=this.findFirstFolder(e),r={};Object.keys(this.state.folders).forEach(M=>{M!==o&&!M.startsWith(`${o}/`)&&(r[M]=this.state.folders[M])}),t.folders=r,this.setState(t,()=>setTimeout(()=>{this.browseFolders([...this.state.expanded],r).then(M=>this.setState({folders:M})).catch(M=>console.error(M))},200))}}))}renderDeleteDialog(){return this.state.deleteItem?n.createElement(g.Dialog,{key:"deleteDialog",open:!0,onClose:()=>this.setState({deleteItem:""}),"aria-labelledby":"ar_dialog_file_delete_title"},n.createElement(g.DialogTitle,{id:"ar_dialog_file_delete_title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,null,this.props.t("ra_Are you sure?")),n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{checked:this.state.suppressDeleteConfirm,onChange:()=>{this.setState({suppressDeleteConfirm:!this.state.suppressDeleteConfirm})}}),label:this.props.t("ra_no confirm for 5 mins")})),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",onClick:()=>this.deleteItem(""),color:"primary",autoFocus:!0},this.props.t("ra_Delete")),n.createElement(g.Button,{variant:"contained",onClick:()=>this.setState({deleteItem:""}),color:"grey"},this.props.t("ra_Cancel")))):null}renderViewDialog(){const e=this.props.FileViewer||Yne;return this.state.viewer?n.createElement(e,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeType:this.props.themeType,setStateBackgroundImage:this.setStateBackgroundImage,getStyleBackgroundImage:this.getStyleBackgroundImage,t:this.props.t,socket:this.props.socket,onClose:()=>this.setState({viewer:"",formatEditFile:""})}):null}renderError(){return this.state.errorText?n.createElement(qn,{key:"errorDialog",text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}updateItemsAcl(e){this.cacheFolders||=JSON.parse(JSON.stringify(this.state.folders));let t;e.forEach(s=>{const o=this.findItem(s.id,this.cacheFolders);o&&JSON.stringify(o.acl)!==JSON.stringify(s.acl)&&(o.acl=s.acl,t=!0)}),t&&(this.cacheFoldersTimeout&&clearTimeout(this.cacheFoldersTimeout),this.cacheFoldersTimeout=setTimeout(()=>{this.cacheFoldersTimeout=null;const s=this.cacheFolders||{};this.cacheFolders=null,this.setState({folders:s})},200))}changeToPath(){setTimeout(()=>{if(this.state.path!==this.state.selected&&(!this.lastSelect||Date.now()-this.lastSelect>100)){let e=this.state.path;Yi(this.state.path)&&(e=bt(this.state.path)),new Promise(t=>{this.state.folders[e]?t(!0):this.browseFolder(e).then(s=>this.setState({folders:s},()=>t(!0))).catch(s=>this.setState({errorText:s===gM?this.props.t('ra_Cannot find "%s"',e):this.props.t('ra_Cannot read "%s"',e)}))}).then(t=>t&&this.setState({selected:this.state.path,currentDir:e,pathFocus:!1})).catch(t=>console.error(t))}else(!this.lastSelect||Date.now()-this.lastSelect>100)&&this.setState({pathFocus:!1})},100)}renderBreadcrumb(){const e=this.state.currentDir.startsWith("/")?this.state.currentDir.split("/"):`/${this.state.currentDir}`.split("/"),t=[];return n.createElement(g.Breadcrumbs,{style:{paddingLeft:8,color:"#FFF"}},e.map((s,o)=>{s&&t.push(s);const r=t.join("/");return othis.changeFolder(M,r||"/")},s||this.props.t("ra_Root")):n.createElement("div",{style:U.pathDivBreadcrumbSelected,key:`${this.state.selected}_${o}`,onClick:()=>this.setState({pathFocus:!0})},s)}))}renderPath(){return n.createElement(g.Box,{component:"div",key:"path",sx:U.pathDiv},this.state.pathFocus?n.createElement(g.Input,{value:this.state.path,onKeyDown:e=>{e.key==="Enter"?this.changeToPath():e.key==="Escape"&&this.setState({pathFocus:!1})},endAdornment:n.createElement(g.IconButton,{size:"small",onClick:()=>this.changeToPath()},n.createElement(m.KeyboardReturn,null)),onBlur:()=>this.changeToPath(),onChange:e=>this.setState({path:e.target.value}),style:U.pathDivInput}):this.renderBreadcrumb())}render(){return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(()=>{this.setState({loadAllFolders:!1,folders:{}},()=>{this.foldersLoading=!1,this.loadFolders().catch(e=>console.error(`Cannot load folders: ${e}`))})},300)),n.createElement("div",{style:{...U.root,...this.props.style},className:this.props.className},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===Qi?this.renderPath():null,n.createElement("div",{style:{...U.filesDiv,...U[`filesDiv${this.state.viewType}`]},onClick:e=>{this.state.viewType!==q&&(this.state.selected!==(this.state.currentDir||"/")?this.changeFolder(e,this.state.currentDir||"/"):e.stopPropagation())},id:"dev",ref:this.refFileDiv},this.state.viewType===q?this.renderItems("/"):this.renderItems(this.state.currentDir||"/"),this.state.viewType!==q?n.createElement("div",{style:U.filesDivHint},this.props.t("ra_select_folder_hint")):null),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl?this.props.modalEditOfAccessControl(this):null,this.renderError())):n.createElement(g.LinearProgress,null)}}const Qne=di()(Go),Une="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIC0xMjAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDBoLTQ2NGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgzMnYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDI4OHYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4aDQwYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTI0aDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTE5MmMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMzkyIDIyNGgtMjR2LTE2aDI0em0zNDQgMGgtMjR2LTE2aDI0em00MC0zMmgtNDQ4di0xNzZoNDQ4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2IDE3NmMzNS4zNDc2NTYgMCA2NC0yOC42NTIzNDQgNjQtNjRzLTI4LjY1MjM0NC02NC02NC02NC02NCAyOC42NTIzNDQtNjQgNjRjLjAzOTA2MiAzNS4zMjgxMjUgMjguNjcxODc1IDYzLjk2MDkzOCA2NCA2NHptLTgtMTExLjI4MTI1djE1LjI4MTI1aDE2di0xNS4yODEyNWMyNC42MDU0NjkgNC4xNjAxNTYgNDEuOTE3OTY5IDI2LjQ3NjU2MiAzOS44MzIwMzEgNTEuMzQzNzUtMi4wODU5MzcgMjQuODY3MTg4LTIyLjg3ODkwNiA0My45ODQzNzUtNDcuODMyMDMxIDQzLjk4NDM3NXMtNDUuNzQ2MDk0LTE5LjExNzE4Ny00Ny44MzIwMzEtNDMuOTg0Mzc1Yy0yLjA4NTkzOC0yNC44NjcxODggMTUuMjI2NTYyLTQ3LjE4MzU5NCAzOS44MzIwMzEtNTEuMzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjAgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYwIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNjQgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzY4IDE3NmMxNi4wOTM3NS4wMTk1MzEgMjkuNjg3NS0xMS45Mzc1IDMxLjcxODc1LTI3LjkwNjI1IDIuMDM1MTU2LTE1Ljk2NDg0NC04LjEzMjgxMi0zMC45NDUzMTItMjMuNzE4NzUtMzQuOTU3MDMxdi0xNy4xMzY3MTloLTE2djE3LjEzNjcxOWMtMTUuNTg1OTM4IDQuMDExNzE5LTI1Ljc1MzkwNiAxOC45OTIxODctMjMuNzE4NzUgMzQuOTU3MDMxIDIuMDMxMjUgMTUuOTY4NzUgMTUuNjI1IDI3LjkyNTc4MSAzMS43MTg3NSAyNy45MDYyNXptMC00OGM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2cy03LjE2NDA2MiAxNi0xNiAxNi0xNi03LjE2NDA2Mi0xNi0xNiA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im02NCAxNzZjMTYuMDkzNzUuMDE5NTMxIDI5LjY4NzUtMTEuOTM3NSAzMS43MTg3NS0yNy45MDYyNSAyLjAzNTE1Ni0xNS45NjQ4NDQtOC4xMzI4MTItMzAuOTQ1MzEyLTIzLjcxODc1LTM0Ljk1NzAzMXYtMTcuMTM2NzE5aC0xNnYxNy4xMzY3MTljLTE1LjU4NTkzOCA0LjAxMTcxOS0yNS43NTM5MDYgMTguOTkyMTg3LTIzLjcxODc1IDM0Ljk1NzAzMSAyLjAzMTI1IDE1Ljk2ODc1IDE1LjYyNSAyNy45MjU3ODEgMzEuNzE4NzUgMjcuOTA2MjV6bTAtNDhjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNnMtNy4xNjQwNjIgMTYtMTYgMTYtMTYtNy4xNjQwNjItMTYtMTYgNy4xNjQwNjItMTYgMTYtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggMTEyaDMyYzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTMyYy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDh6bTgtNjRoMTZ2MTZoLTE2em0wIDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMiAxMzZjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MzIgMTY4YzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",vne="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy41NDYgMTA1LjEyNWMwLTEuMDQ0LS4yMDUtMi4wOTEtLjY0Ny0zLjA3MmwtNDMuOTMtOTcuNjNjLTEuMjEtMi42OTItMy44ODgtNC40MjMtNi44MzktNC40MjNoLTE4Mi42M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMy44MTJ2ODIuNjNoLTgyLjYyNXYtODIuNjNoMjMuODEzYzQuMTQzIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xODIuNjNjLTIuOTUxIDAtNS42MjkgMS43MzEtNi44NCA0LjQyM2wtNDMuOTMgOTcuNjNjLS40NDEuOTgxLS42NDYgMi4wMjgtLjY0NyAzLjA3MmgtLjAxNXYxMi4yMDNjMCAyOS41MTQgMjIuODI3IDUzLjc4IDUxLjc1MSA1Ni4xMTJsMzEuODY1IDU4LjQxOWgtNC4wMDdjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjMzYy4wMDUgMCAuMDEuMDAxLjAxNS4wMDFzLjAxMS0uMDAxLjAxNi0uMDAxaDE2LjYxOGM0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTIuMTg5bC0zMi40NTYtNTkuNTAzYzE1Ljc1LTMuNDEzIDI5LjA1Ny0xMy40MzMgMzYuODc5LTI3LjAwMyA5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM5LjczMyAxNi44ODcgMjcuOTYxIDI4LjI4OCA0OC44MTIgMjguMjg4czM5LjA3OS0xMS40MDEgNDguODEyLTI4LjI4OGM3LjgyMiAxMy41NzEgMjEuMTI5IDIzLjU5MSAzNi44NzkgMjcuMDAzbC0zMi40NTYgNTkuNTAzaC0xMi4xODhjLTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTYuNjE4Yy4wMDUgMCAuMDExLjAwMS4wMTYuMDAxcy4wMS0uMDAxLjAxNS0uMDAxaDE2LjYzM2M0LjE0MyAwIDcuNS0zLjM1NyA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNC4wMDdsMzEuODY1LTU4LjQxOWMyOC45MjQtMi4zMzIgNTEuNzUxLTI2LjU5OCA1MS43NTEtNTYuMTEydi0xMi4yMDN6bS0xOS4wODUtNy40OTVoLTc4LjUyM3YtODIuNjNoNDEuMzQzem0tOTMuNTIzLTgyLjYzdjgyLjYzaC04Mi42MjV2LTgyLjYzem0tMTk1LjI1IDgyLjYzaC04Mi42MjV2LTgyLjYzaDgyLjYyNXptLTEzOC45NjgtODIuNjNoNDEuMzQzdjgyLjYzaC03OC41MjR6bS4wMzQgMTQzLjY0MWMtLjAxMSAwLS4wMjEtLjAwMS0uMDMyLS4wMDEtMjIuNzY3LS4wMTUtNDEuMjg1LTE4LjU0Mi00MS4yODUtNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTMxIDQxLjMxLTQxLjMwOCA0MS4zMTN6bTk3LjYyMSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMwIDIyLjc3OC0xOC41MzQgNDEuMzEyLTQxLjMxMyA0MS4zMTJ6bTk3LjYyNSAwYy0yMi43NzkgMC00MS4zMTItMTguNTMzLTQxLjMxMi00MS4zMTJ2LTQuNjk4aDgyLjYyNXY0LjY5OGMtLjAwMSAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42MjUgMGMtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjMCAyMi43NzgtMTguNTM0IDQxLjMxMi00MS4zMTMgNDEuMzEyem05Ny42NDgtLjAwMWMtLjAwNSAwLS4wMDkgMC0uMDE0IDAtLjAwMyAwLS4wMDYgMC0uMDA5IDAtMjIuNzc5IDAtNDEuMzEyLTE4LjUzMy00MS4zMTItNDEuMzEydi00LjY5OGg4Mi42MjV2NC42OThjLS4wMDEgMjIuNzcyLTE4LjUyMSA0MS4zLTQxLjI5IDQxLjMxMnoiLz4KICAgIDwvZz4KPC9zdmc+",bne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOC41MzYgNTA4LjUzNiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ5OC41MzYgMzQ0LjMyMWgtMTcuMjk4Yy40MzQtMTcuNjcyLTEwLjI2Ny0zNC4yMTItMjkuNTQ3LTM0LjIxMnMtMjkuOTgyIDE2LjU0LTI5LjU0NyAzNC4yMTJoLTE3LjI5OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OTdjMCAyNC42MDEgMTUuNzEyIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5M3YtNjYuNjRjMzYuMDg4IDEuMjY2IDU3Ljg0Ni0yMi4zOSA4MS4xNDktNDUuNjk0IDI4LjUxNy0zLjAyNCA1MC44MDktMjcuMjE2IDUwLjgwOS01Ni41MjJ2LTI1LjY5OGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwaC0xNy4yOThjLjQzNC0xNy42NzEtMTAuMjY3LTM0LjIxMi0yOS41NDctMzQuMjEycy0yOS45ODIgMTYuNTQtMjkuNTQ3IDM0LjIxMmgtMTcuM2MtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYyNS42OThjMCAyNC42MDEgMTUuNzExIDQ1LjU5NiAzNy42MjUgNTMuNDk0bC0xMS42MDEgMTEuNjAxYy0xMS4wODYgMTEuMDg2LTI1LjgyNiAxNy4xOTEtNDEuNTAzIDE3LjE5MS0zMi4zNjQgMC01OC42OTMtMjYuMzMtNTguNjkzLTU4LjY5NCAwLTI1Ljg5NSAwLTUxLjc5MSAwLTc3LjY4NmgyMi43MTZjMTIuMjg1IDAgMTguNzI2IDE1LjUzIDEwLjAzMyAyNC4yMjEtOS4xMjIgOS4xMjEgNS4wMiAyMy4yNjQgMTQuMTQyIDE0LjE0MyA2LjQ1OC02LjQ1NyAxMC4wMTQtMTUuMDQyIDEwLjAxNC0yNC4xNzUgMC0xOC44NTItMTUuMzM3LTM0LjE4OC0zNC4xODktMzQuMTg4aC0yMi43MTZ2LTE4LjgyNGMyNi4yNTctNS4wNDMgNDYuMTYxLTI4LjE3NSA0Ni4xNjEtNTUuODgxdi0yMC44NTFjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMzYuOTE0di0yNC4yMzZoMzYuOTE0YzEyLjg0IDAgMTIuODU5LTIwIDAtMjBoLTkzLjgyOGMtMTIuODQgMC0xMi44NTkgMjAgMCAyMGgzNi45MTR2MjQuMjM1aC0zNi45MTRjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjAuODUxYzAgMjguMjMzIDIwLjY2OSA1MS43MTkgNDcuNjY3IDU2LjE1MXYxOC41NTVoLTIyLjcxNmMtMTguODUyIDAtMzQuMTg5IDE1LjMzNy0zNC4xODkgMzQuMTg4IDAgOS4xMzIgMy41NTYgMTcuNzE3IDEwLjAxNCAyNC4xNzUgOS4xMjEgOS4xMjEgMjMuMjYzLTUuMDIxIDE0LjE0My0xNC4xNDMtOC42ODUtOC42ODQtMi4yNjQtMjQuMjIxIDEwLjAzMy0yNC4yMjFoMjIuNzE2djc3LjY4NmMwIDMyLjM2NC0yNi4zMyA1OC42OTQtNTguNjk0IDU4LjY5NC0xNS42NzcgMC0zMC40MTctNi4xMDUtNDEuNTAyLTE3LjE5MWwtMTEuMjE4LTExLjIxOGMyMi41LTcuNTc1IDM4Ljc1Ni0yOC44NTYgMzguNzU2LTUzLjg3N3YtMjUuNjk4YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5OGMuNDM0LTE3LjY3MS0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4zYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwdjI1LjY5OGMwIDI4LjcwNyAyMS4zOTQgNTIuNDk4IDQ5LjA3MyA1Ni4zbDIyLjkzNyAyMi45MzdjMTUuMTY0IDE1LjE2MyAzNi4wMSAyMy40ODYgNTcuNDMzIDIzLjAwM3Y2Ni42MTRjMCAzMi4zNjQtMjYuMzMgNTguNjkzLTU4LjY5MyA1OC42OTMtMTUuNjc3IDAtMzAuNDE3LTYuMTA1LTQxLjUwMi0xNy4xOTFsLTExLjYwMi0xMS42MDJjMjEuOTE0LTcuODk4IDM3LjYyNS0yOC44OTIgMzcuNjI1LTUzLjQ5NHYtMjUuNjk3YzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTE3LjI5N2MuNDM0LTE3LjY3Mi0xMC4yNjctMzQuMjEyLTI5LjU0Ny0zNC4yMTJzLTI5Ljk4MiAxNi41NC0yOS41NDcgMzQuMjEyaC0xNy4yOTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2MjUuNjk3YzAgMjkuMzA1IDIyLjI5MiA1My40OTcgNTAuODA4IDU2LjUyMWwyMi43MTcgMjIuNzE2YzE0Ljg2MyAxNC44NjMgMzQuNjI1IDIzLjA0OCA1NS42NDUgMjMuMDQ4IDQzLjM5MiAwIDc4LjY5My0zNS4zMDIgNzguNjkzLTc4LjY5M3YtNjkuNjU3YzE0LjQyNi00LjE2NCAyNy4xNjEtMTIuMzQyIDM2LjkwNS0yMy4yNTd2MjAuNTIyYzAgMTIuODQgMjAgMTIuODU5IDIwIDB2LTIwLjUyMmM5LjUyIDEwLjY2MyAyMS44ODkgMTguNzIzIDM1LjkwNSAyMi45NzJ2NjkuOTQ2YzAgNDMuMzkyIDM1LjMwMiA3OC42OTMgNzguNjkzIDc4LjY5MyAyMS4wMiAwIDQwLjc4MS04LjE4NiA1NS42NDUtMjMuMDQ4bDIyLjcxNi0yMi43MTZjMjguNTE2LTMuMDI1IDUwLjgwOC0yNy4yMTYgNTAuODA4LTU2LjUyMXYtMjUuNjk3Yy4wMDEtNS41MjQtNC40NzYtMTAuMDAxLTkuOTk5LTEwLjAwMXptLTExMi4yOTgtMTQ5LjkyN2MwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0zMjYuOTE0LTI0LjY2NGMwLTEyLjMxMyAxOS4wOTUtMTIuMzEzIDE5LjA5NSAwdjQuNjY0aC0xOS4wOTV6bTQ2LjM5MyAyNC42NjR2MTUuNjk4YzAgMjAuMzE2LTE2LjUyOSAzNi44NDUtMzYuODQ1IDM2Ljg0NXMtMzYuODQ1LTE2LjUyOS0zNi44NDUtMzYuODQ1di0xNS42OTh6bS0xMDQuODEyIDEyMC41OTljMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTIgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjgtMzYuODQ1LTM2Ljg0NXYtMTUuNjk3em0xMjMuNDExLTI3OC4zNjR2LTEwLjg1MWg3My44Mjh2MTAuODUxYzAgNDcuNTk2LTczLjgyOCA0Ny41OTYtNzMuODI4IDB6bTIyNS4wNDIgMjUzLjdjMC0xMi4zMTMgMTkuMDk1LTEyLjMxMyAxOS4wOTUgMHY0LjY2NWgtMTkuMDk1em00Ni4zOTMgMjQuNjY0djE1LjY5N2MwIDIwLjMxNi0xNi41MjkgMzYuODQ1LTM2Ljg0NSAzNi44NDVzLTM2Ljg0NS0xNi41MjktMzYuODQ1LTM2Ljg0NXYtMTUuNjk3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yODEuMjA2IDQ0MS44NDctMTYuNDM4LTkuNDl2LTIxLjY0NWMwLTEyLjg0LTIwLTEyLjg1OS0yMCAwdjIxLjYxOWwtMTYuNDgzIDkuNTE2Yy0zLjA5NCAxLjc4Ni01IDUuMDg3LTUgOC42NnYyNC43OGMwIDMuNTczIDEuOTA2IDYuODc0IDUgOC42NmwyMS40NiAxMi4zOWMzLjA2NyAxLjc3MSA2LjkzMyAxLjc3MSAxMCAwbDIxLjQ2LTEyLjM5YzMuMDk0LTEuNzg2IDUtNS4wODcgNS04LjY2di0yNC43OGMuMDAxLTMuNTczLTEuOTA1LTYuODc0LTQuOTk5LTguNjZ6bS0xNSAyNy42NjctMTEuNDYgNi42MTctMTEuNDYtNi42MTd2LTEzLjIzM2wxMS40Ni02LjYxNyAxMS40NiA2LjYxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ1LjUzNSAzNzQuMTgzYzEuNjM1IDMuOTI0IDUuNzE2IDYuNDY2IDkuOTY4IDYuMTM4IDQuMTY5LS4zMjIgNy43NzgtMy4yNzIgOC44OTctNy4zMDMgMi4zNjQtOC41MTMtNy4xOTEtMTUuNzU5LTE0Ljc3My0xMS4yMzUtNC4yMTQgMi41MTQtNS45NDUgNy44OC00LjA5MiAxMi40eiIvPgogICAgPC9nPgo8L3N2Zz4=",$ne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtOSAxN2M0LjQxMSAwIDgtMy41ODkgOC04IDAtMS4yNTYtLjI5OS0yLjQ0MS0uODE4LTMuNTAxIDEuMTAzLTEuNTQ4IDIuODk4LTIuNDk5IDQuODE4LTIuNDk5IDIuODQgMCA1LjI3OCAyLjA2NCA1Ljc5OSA0LjgzMS0uMTkuMTA1LS4zNzUuMjE4LS41NTQuMzQyLTEuMjI0LS43NDctMi42MzYtMS4xNzMtNC4wNzQtMS4xNzNoLS4xNzF2MmguMTcxYy44OTYgMCAxLjc4LjIyMSAyLjU4LjYxNS0uMDgzLjEwOS0uMTcxLjIxMS0uMjQ4LjMyNmwtLjMzNi41MDQgMS42NjQgMS4xMDkuMzM2LS41MDRjLjg1Ny0xLjI4MyAyLjI5LTIuMDUgMy44MzMtMi4wNSAxLjEwMyAwIDIgLjg5NyAyIDJzLS44OTcgMi0yIDJoLTdjLTEuMTAzIDAtMi0uODk3LTItMmgtMmMwIDIuMjA2IDEuNzk0IDQgNCA0aDI1YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00Yy0uNDczIDAtLjkzNS4wNi0xLjM4Ny4xNTctMS4xNTktMy42MjMtNC41NDItNi4xNTctOC40My02LjE1Ny0zLjU0OSAwLTYuNzQ2IDIuMTA3LTguMTQ0IDUuMzY5bC0uMjc3LjY0NmMtLjM1Ni4wMTMtLjcwNi4wNTUtMS4wNS4xMjMtLjgyLTMuNTQyLTQuMDIzLTYuMTM4LTcuNzEyLTYuMTM4LTIuMzEyIDAtNC40ODggMS4wMzQtNS45NzggMi43NTEtMS40NjctMS42ODItMy42Mi0yLjc1MS02LjAyMi0yLjc1MS00LjQxMSAwLTggMy41ODktOCA4czMuNTg5IDggOCA4em0yOS4xODMtMTRjMy4wNDcgMCA1LjY3NiAyLjAxNyA2LjU0MSA0Ljg3Ny0uMTYzLjA5My0uMzI1LjE4OC0uNDc5LjI5NS0xLjIyNS0uNzQ2LTIuNjM2LTEuMTcyLTQuMDc0LTEuMTcyaC0uMTcxdjJoLjE3MWMuODk1IDAgMS43OC4yMjEgMi41OC42MTUtLjA4My4xMDktLjE3MS4yMTEtLjI0OC4zMjZsLS4zMzYuNTA0IDEuNjY0IDEuMTA5LjMzNi0uNTA0Yy44NTctMS4yODMgMi4yOS0yLjA1IDMuODMzLTIuMDUgMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyaC0xNC41NTZjLjM0NC0uNTkxLjU1Ni0xLjI2OC41NTYtMiAwLTEuNTcxLS45MTgtMi45MTktMi4yMzgtMy41NzNsLjExNi0uMjdjMS4wODItMi41MjUgMy41NTctNC4xNTcgNi4zMDUtNC4xNTd6bS0yOS4xODMgMGMzLjMwOSAwIDYgMi42OTEgNiA2cy0yLjY5MSA2LTYgNi02LTIuNjkxLTYtNiAyLjY5MS02IDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMzd2LTQuNWw0LTN2LTIuNWgtMnYxLjVsLTIgMS41di01aC0ydjdsLTItMS41di0xLjVoLTJ2Mi41bDQgM3YyLjVoLTEwdi02LjVsNC0zdi0yLjVoLTJ2MS41bC0yIDEuNXYtNC41ODZsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny40MTRsLTItMS41di0xLjVoLTJ2Mi41bDQgM3Y0LjVoLTE0di0xLjI3OWwuNDk2LS4xNjVjMy4yOTItMS4wOTggNS41MDQtNC4xNjYgNS41MDQtNy42MzYgMC0yLjE0OS0uODM3LTQuMTcxLTIuMzU3LTUuNjkxbC00LjY0My00LjY0My0zLjgyNSAzLjgyNWMtLjM5LS44MDItLjg5Ni0xLjU0Ni0xLjUzMi0yLjE4M2wtNC42NDMtNC42NDItNC42NDMgNC42NDNjLTEuNTIgMS41Mi0yLjM1NyAzLjU0Mi0yLjM1NyA1LjY5MSAwIDMuNDcgMi4yMTIgNi41MzggNS41MDMgNy42MzVsLjQ5Ny4xNjV2NC4yOGgtMTYuMjgxbC40OSAxLjk1OWMzLjUzOSAxNC4xNTUgMTYuMjAxIDI0LjA0MSAzMC43OTEgMjQuMDQxczI3LjI1Mi05Ljg4NiAzMC43OTEtMjQuMDQxbC40OS0xLjk1OXptLTI3LjM2NCA2LjI1OCAxLjE0NSAxLjcxN2MuMTQzLjIxNC4yMTkuNDY0LjIxOS43MjIgMCAuNzE5LS41ODQgMS4zMDMtMS4zMDMgMS4zMDNoLTE1LjM5NGMtLjcxOSAwLTEuMzAzLS41ODQtMS4zMDMtMS4zMDMgMC0uMjU4LjA3Ni0uNTA4LjIxOS0uNzIzbDEuMTQ2LTEuNzE4Yy40MTUtLjYyNC42MzUtMS4zNTEuNjM1LTIuMTAxIDAtLjc3LS4yNDYtMS41MjUtLjY4MS0yLjE1NWgxNS4zNjJjLS40MzUuNjMxLS42ODEgMS4zODUtLjY4MSAyLjE1NSAwIC43NS4yMiAxLjQ3Ny42MzYgMi4xMDN6bS0xLjYzNi0yMi44NDQgMy4yMjkgMy4yMjljMS4xNDIgMS4xNDIgMS43NzEgMi42NjIgMS43NzEgNC4yNzcgMCAyLjU1Ny0xLjYwNCA0LjgxNy00IDUuNjgxdi0xLjE4NmwyLjcwNy0yLjcwNy0xLjQxNC0xLjQxNC0xLjI5MyAxLjI5MnYtMi4xNzJsMS43MDctMS43MDctMS40MTQtMS40MTQtMi4yOTMgMi4yOTN2Ny4wMTRjLTIuMzk2LS44NjMtNC0zLjEyMi00LTUuNjggMC0xLjYxNS42MjktMy4xMzUgMS43NzEtNC4yNzd6bS0xNSA0LjUwNmMwLTEuNjE1LjYyOS0zLjEzNSAxLjc3MS00LjI3N2wzLjIyOS0zLjIyOSAzLjIyOSAzLjIyOWMuNjY2LjY2NiAxLjE1MyAxLjQ4MSAxLjQ0OSAyLjM3MS0xLjA4NCAxLjQtMS42NzggMy4xMDYtMS42NzggNC45MDYgMCAuNDY0LjA0Ni45MTguMTIyIDEuMzY0LS42MDkuNTgxLTEuMzI5IDEuMDM0LTIuMTIyIDEuMzE5di02LjNsMS44MzItMi43NDgtMS42NjQtMS4xMDktMS4zMjMgMS45ODUtMS4xMzgtMS4xMzgtMS40MTQgMS40MTQgMS43MDcgMS43MDd2Mi4xNzJsLTEuMjkzLTEuMjkzLTEuNDE0IDEuNDE0IDIuNzA3IDIuNzA3djEuMTg2Yy0yLjM5Ni0uODYzLTQtMy4xMjItNC01LjY4em02IDcuODAxLjQ5Ni0uMTY1Yy44MjUtLjI3NSAxLjU4OS0uNjk2IDIuMjgxLTEuMjE2LjkxNiAxLjk0OCAyLjU4NiAzLjUwMiA0LjcyNiA0LjIxNWwuNDk3LjE2NXYxLjI4aC04em0tNy40MTQgNi4yNzkuODkuODljLjMzMy4zMzMuNTI0Ljc5NS41MjQgMS4yNjUgMCAuMzU0LS4xMDQuNjk4LS4zLjk5M2wtMS4xNDUgMS43MTdjLS4zNjMuNTQ0LS41NTUgMS4xNzgtLjU1NSAxLjgzMiAwIDEuODIyIDEuNDgxIDMuMzAzIDMuMzAzIDMuMzAzaDE1LjM5NWMxLjgyMSAwIDMuMzAyLTEuNDgxIDMuMzAyLTMuMzAzIDAtLjY1NC0uMTkyLTEuMjg4LS41NTUtMS44MzJsLTEuMTQ1LTEuNzE2Yy0uMTk2LS4yOTUtLjMtLjYzOS0uMy0uOTk0IDAtLjQ3MS4xOTEtLjkzMy41MjQtMS4yNjZsLjg5LS44OWg2LjgzNmMtLjE2LjM4NS0uMjUuODA2LS4yNSAxLjI0NyAwIDEuNDkyIDEuMDExIDIuNzg4IDIuNDU5IDMuMTQ5bDQuMjIgMS4wNTVjLjc3OC4xOTYgMS4zMjEuODkxIDEuMzIxIDEuNjkzIDAgLjcxNy0uNDMgMS4zNTMtMS4wOTYgMS42MThsLTYuMjc1IDIuNTExYy0xLjU5Ny42MzktMi42MjkgMi4xNjMtMi42MjkgMy44ODIgMCAxLjQ5Ni44MDcgMi44ODggMi4xMDcgMy42M2wyLjcxNSAxLjU1MWMtMy4wMDQgMS4wNDktNi4yMTUgMS42MjEtOS41MzcgMS42NTNsLTUuMDg2LTMuMzkxYy0uMTI0LS4wODItLjE5OS0uMjIxLS4xOTktLjM3MSAwLS4yMTkuMTU3LS40MDQuMzc0LS40NGwzLjQzNS0uNTcyYzEuMjY5LS4yMTMgMi4xOTEtMS4zMDIgMi4xOTEtMi41OSAwLTEuNDQ3LTEuMTc3LTIuNjI0LTIuNjI0LTIuNjI0aC0yMC42MDVjLTIuOTg5LTMuMzY3LTUuMjU2LTcuNDMtNi40ODYtMTJ6bTE0LjUwMyAyMC4yNjIgMi4yMyAxLjQ4N2MtNi4zMjktLjc4NC0xMi4xMDUtMy41NDgtMTYuNjA3LTcuNzQ5aDE4LjY2NGMuMzQ0IDAgLjYyNC4yOC42MjQuNjI0IDAgLjMwNy0uMjE5LjU2NS0uNTIxLjYxNmwtMy40MzQuNTcyYy0xLjE4NS4xOTgtMi4wNDUgMS4yMTItMi4wNDUgMi40MTQgMCAuODE5LjQwNyAxLjU4MSAxLjA4OSAyLjAzNnptMTguMTAzLS44NzUtNC4wOTMtMi4zMzljLS42NzgtLjM4OC0xLjA5OS0xLjExMy0xLjA5OS0xLjg5NCAwLS44OTcuNTM5LTEuNjkyIDEuMzcyLTIuMDI1bDYuMjc1LTIuNTExYzEuNDI5LS41NzEgMi4zNTMtMS45MzUgMi4zNTMtMy40NzUgMC0xLjcyMS0xLjE2Ni0zLjIxNC0yLjgzNS0zLjYzMmwtNC4yMi0xLjA1NWMtLjU1Ny0uMTQtLjk0NS0uNjM3LS45NDUtMS4yMSAwLS42ODcuNTU5LTEuMjQ2IDEuMjQ2LTEuMjQ2aDE4LjQ2OGMtMi4zNzYgOC44MjgtOC41NjUgMTUuODE0LTE2LjUyMiAxOS4zODd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDE3aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgMjFoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MyAxN2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDE5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgMjNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSAxN2gydjJoLTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Pne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik01MTEuOTc2LDQxNi4wNjNjLTAuMDA1LTAuMDc1LTAuMDA0LTAuMTQ5LTAuMDExLTAuMjI0Yy0wLjAyNy0wLjI5Ny0wLjA3LTAuNTg4LTAuMTMxLTAuODczCgkJYy0wLjAwNi0wLjAyOC0wLjAxNS0wLjA1Ni0wLjAyMi0wLjA4NGMtMC4wNTktMC4yNjItMC4xMzItMC41MTgtMC4yMTgtMC43NjhjLTAuMDIzLTAuMDY3LTAuMDQ4LTAuMTMyLTAuMDczLTAuMTk4CgkJYy0wLjA4NC0wLjIyNy0wLjE3OS0wLjQ0OC0wLjI4NC0wLjY2M2MtMC4wMTgtMC4wMzgtMC4wMy0wLjA3Ny0wLjA0OS0wLjExNWwtNDAuMTEyLTc5LjExOFY3My43MgoJCWMwLTguMDA2LTYuNTEzLTE0LjUxOS0xNC41MTktMTQuNTE5SDU1LjQ0MWMtOC4wMDYsMC0xNC41MTksNi41MTMtMTQuNTE5LDE0LjUxOXYyNjAuMjk4TDAuODExLDQxMy4xMzcKCQljLTAuMDE5LDAuMDM4LTAuMDMxLDAuMDc3LTAuMDQ5LDAuMTE1Yy0wLjEwNSwwLjIxNS0wLjE5OSwwLjQzNi0wLjI4NCwwLjY2MmMtMC4wMjUsMC4wNjYtMC4wNSwwLjEzMi0wLjA3MywwLjE5OQoJCWMtMC4wODUsMC4yNTEtMC4xNTksMC41MDgtMC4yMTgsMC43N2MtMC4wMDYsMC4wMjctMC4wMTUsMC4wNTQtMC4wMjEsMC4wODFjLTAuMDYxLDAuMjg2LTAuMTA0LDAuNTc3LTAuMTMxLDAuODc0CgkJYy0wLjAwNywwLjA3NC0wLjAwNywwLjE0OS0wLjAxMSwwLjIyM0MwLjAxNCw0MTYuMjE3LDAsNDE2LjM3MSwwLDQxNi41Mjl2MTkuMDI2YzAsOS41MDksNy43MzUsMTcuMjQ0LDE3LjI0NCwxNy4yNDRoNDc3LjUxMgoJCWM5LjUwOSwwLDE3LjI0NC03LjczNSwxNy4yNDQtMTcuMjQ0di0xOS4wMjZDNTEyLDQxNi4zNzEsNTExLjk4Niw0MTYuMjE3LDUxMS45NzYsNDE2LjA2M3ogTTU1LjkyMyw3NC4yMDNoNDAwLjE1NHYyNTQuMTA5CgkJSDU1LjkyM1Y3NC4yMDN6IE01My4wMjksMzQzLjMxMUg0NTguOTdsMzMuMzE4LDY1LjcxN2gtMTY0Ljc4bC04LjI3MS0yOS45ODljLTEuNjg0LTYuMTA1LTcuMjgyLTEwLjM2OS0xMy42MTUtMTAuMzY5aC05OS4yNDYKCQljLTYuMzMzLDAtMTEuOTMyLDQuMjY0LTEzLjYxNSwxMC4zNjhsLTguMjcxLDI5Ljk5SDE5LjcxMUw1My4wMjksMzQzLjMxMXogTTMxMS45NDgsNDA5LjAyOUgyMDAuMDUybDYuOTkzLTI1LjM1OGg5Ny45MQoJCUwzMTEuOTQ4LDQwOS4wMjl6IE00OTcsNDM1LjU1NGMwLDEuMjM3LTEuMDA3LDIuMjQ0LTIuMjQ0LDIuMjQ0SDE3LjI0NGMtMS4yMzcsMC0yLjI0NC0xLjAwNy0yLjI0NC0yLjI0NHYtMTEuNTI2aDQ4MlY0MzUuNTU0eiIKCQkvPgoJPHBhdGggZD0iTTQzMi41NzcsMjEzLjc1NmMtNC4xNDMsMC03LjUsMy4zNTctNy41LDcuNXY3Ni4wNTVIODYuOTIzdi03Ni4wNTVjMC00LjE0My0zLjM1Ny03LjUtNy41LTcuNQoJCQljLTQuMTQzLDAtNy41LDMuMzU3LTcuNSw3LjV2NzkuMjk0YzAsNi40ODUsNS4yNzUsMTEuNzYxLDExLjc2MSwxMS43NjFoMzQ0LjYzM2M2LjQ4NSwwLDExLjc2MS01LjI3NSwxMS43NjEtMTEuNzYxdi03OS4yOTQKCQkJQzQ0MC4wNzcsMjE3LjExNSw0MzYuNzIsMjEzLjc1Niw0MzIuNTc3LDIxMy43NTZ6Ii8+Cgk8cGF0aCBkPSJNNDI4LjMxNiw5MC4yMDNIODMuNjg0Yy02LjQ4NSwwLTExLjc2MSw1LjI3NS0xMS43NjEsMTEuNzYxdjc5LjI5NGMwLDQuMTQzLDMuMzU3LDcuNSw3LjUsNy41YzQuMTQzLDAsNy41LTMuMzU3LDcuNS03LjUKCQkJdi03Ni4wNTVoMzM4LjE1NHY3Ni4wNTVjMCw0LjE0MywzLjM1Nyw3LjUsNy41LDcuNXM3LjUtMy4zNTcsNy41LTcuNXYtNzkuMjk0QzQ0MC4wNzcsOTUuNDc3LDQzNC44MDIsOTAuMjAzLDQyOC4zMTYsOTAuMjAzeiIvPgo8L2c+Cjwvc3ZnPgo=",Wne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE2NC4zOTkgMjA1Ljg3MmM0LjA5OS42NjQgOC4yMDYtMS4yNzMgMTAuMjg0LTQuOTFsNjAtMTA1YzEuNzY5LTMuMDk1IDEuNzU2LTYuODk3LS4wMzMtOS45OHMtNS4wODUtNC45ODEtOC42NDktNC45ODFoLTM2LjY4MmwtMTMuNDg2LTcyLjgyMWMtLjc3Mi00LjE2OS00LjA4OS03LjM5OC04LjI3Ny04LjA1OC00LjE4NS0uNjYtOC4zMzcgMS4zOTQtMTAuMzUzIDUuMTIzbC02MCAxMTFjLTEuNjc1IDMuMDk5LTEuNTk3IDYuODUxLjIwOCA5Ljg3NiAxLjgwNCAzLjAyNSA1LjA2NiA0Ljg3OSA4LjU4OSA0Ljg3OWgzNi44MDJsMTMuMzkzIDY2Ljk2MWMuODE3IDQuMDkgNC4wODggNy4yNDIgOC4yMDQgNy45MTF6bS0xMy4zOTktOTQuODcxaC0yOC4yMjhsMzguNTU0LTcxLjMyMyA5Ljg0MSA1My4xNDRjLjg3OCA0Ljc0IDUuMDEzIDguMTc5IDkuODMzIDguMTc5aDI3Ljc2OWwtMzguMiA2Ni44NS05Ljc2My00OC44MTFjLS45MzUtNC42NzQtNS4wMzktOC4wMzktOS44MDYtOC4wMzl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwIDQ1OS4wMDFjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDN2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoNDB2MjNjMCA1LjUyMiA0LjQ3OCAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMHYtMjNoMjZjNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBoLTU2di02OGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHY2OGgtNDB2LTIyM2g0MHY2NWMwIDUuNTIzIDQuNDc4IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi03NWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHYyMzNoLTQwdi0xNzNjMC01LjUyMy00LjQ3OC0xMC0xMC0xMGgtNjBjLTUuNTIyIDAtMTAgNC40NzctMTAgMTB2MTczaC00MHYtMTEzYzAtNS41MjMtNC40NzgtMTAtMTAtMTBoLTYwYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwdjExM2gtNzN2LTQ0OWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMHYyNmgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDBoLTIzYy01LjUyMiAwLTEwIDQuNDc3LTEwIDEwczQuNDc4IDEwIDEwIDEwaDIzdjQwaC0yM2MtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgyM3Y0MGgtMjNjLTUuNTIyIDAtMTAgNC40NzctMTAgMTBzNC40NzggMTAgMTAgMTBoMjN2NDN6bTI1Ni0xNjNoNDB2MTYzaC00MHptLTEyMCA2MGg0MHYxMDNoLTQweiIvPgogICAgICAgIDxwYXRoIGQ9Im00MzYgMTQ2LjAwMWM1LjUyMiAwIDEwLTQuNDc3IDEwLTEwdi02MGMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC02MGMtNS41MjIgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3OCAxMCAxMCAxMGgzNS44NTdsLTEwMCAxMDBoLTU1Ljg1N2MtMi42NTIgMC01LjE5NSAxLjA1NC03LjA3MSAyLjkyOWwtOTAgOTBjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAzLjkwNyAzLjkwNSAxMC4yMzYgMy45MDQgMTQuMTQzIDBsODcuMDcxLTg3LjA3MWg1NS44NTdjMi42NTIgMCA1LjE5NS0xLjA1NCA3LjA3MS0yLjkyOWwxMDIuOTI5LTEwMi45M3YzNS44NTdjMCA1LjUyNCA0LjQ3OCAxMC4wMDEgMTAgMTAuMDAxeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjQzNiIgY3k9IjM0Ni4wMDEiIHI9IjEwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Rne="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHJlY3QgeD0iMjE2IiB5PSI4OC40ODkiIHdpZHRoPSI4MCIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjIxNiIgeT0iNjIuNDg5IiB3aWR0aD0iODAiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cGF0aCBkPSJNMzAsNTIuNDk0djkuMjg1Yy0yLjM0Ny0wLjgzMi00Ljg3Mi0xLjI4NS03LjUtMS4yODVjLTEyLjQwNiwwLTIyLjUsMTAuMDkzLTIyLjUsMjIuNWMwLDEyLjQwNywxMC4wOTQsMjIuNSwyMi41LDIyLjUKCQkJYzIuNjI4LDAsNS4xNTMtMC40NTMsNy41LTEuMjg1djM1NS4yOThoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NWMyLjg5OS0xLjc1NSw0LjgxNC0yLjkxNSw5LjMyNS0yLjkxNQoJCQljNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1YzguNjk4LDAsMTMuMzU0LTIuODE5LDE3LjA5NC01LjA4NQoJCQljMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1YzMuNzQsMi4yNjYsOC4zOTUsNS4wODUsMTcuMDkzLDUuMDg1CgkJCXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1YzQuNTEsMCw2LjQyNSwxLjE2LDkuMzIyLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTN2LTQwN0gzMHogTTIyLjUsOTAuNDk0Yy00LjEzNiwwLTcuNS0zLjM2NC03LjUtNy41YzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjUKCQkJczcuNSwzLjM2NCw3LjUsNy41QzMwLDg3LjEzLDI2LjYzNiw5MC40OTQsMjIuNSw5MC40OTR6IE0xODguNSw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTIxNi43OWgtMTV2MjIyLjk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFoNDYuMjVWNDQyLjY2NHoiLz4KICAgICAgICA8cmVjdCB4PSIxNTcuMjUiIHk9IjEzNi45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjE1Ny4yNSIgeT0iMTExLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTU3LjI1IiB5PSI4Ni45OTQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9Ijk3LjI1IiB5PSIxMzAuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iNjYiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI5Ny4yNSIgeT0iMTA1Ljk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHJlY3QgeD0iNDM1Ljc1IiB5PSIxMTMuOTg5IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSI0MzUuNzUiIHk9IjEzOC45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSI2NiIvPgogICAgICAgIDxyZWN0IHg9IjQzNS43NSIgeT0iODguOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjE1NS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iODAuOTk0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiLz4KICAgICAgICA8cmVjdCB4PSIzNzUuNzUiIHk9IjEwNS45ODkiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIvPgogICAgICAgIDxyZWN0IHg9IjM3NS43NSIgeT0iMTMwLjk4OSIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4OS41LDYwLjQ5NGMtMi42MjgsMC01LjE1MywwLjQ1My03LjUsMS4yODV2LTkuMjg1SDMwOC41djQwNy4wMTNoNy41YzguNjk5LDAsMTMuMzU0LTIuODE5LDE3LjA5NS01LjA4NQoJCQljMi44OTktMS43NTUsNC44MTQtMi45MTUsOS4zMjUtMi45MTVjNC41MTEsMCw2LjQyNiwxLjE2LDkuMzI1LDIuOTE1YzMuNzQsMi4yNjYsOC4zOTYsNS4wODUsMTcuMDk1LDUuMDg1CgkJCWM4LjY5OCwwLDEzLjM1NC0yLjgxOSwxNy4wOTQtNS4wODVjMi44OTctMS43NTUsNC44MTMtMi45MTUsOS4zMjItMi45MTVjNC41MDksMCw2LjQyNCwxLjE2LDkuMzIxLDIuOTE1CgkJCWMzLjc0LDIuMjY2LDguMzk1LDUuMDg1LDE3LjA5Myw1LjA4NXMxMy4zNTQtMi44MTksMTcuMDk0LTUuMDg1YzIuODk3LTEuNzU1LDQuODEzLTIuOTE1LDkuMzIxLTIuOTE1CgkJCWM0LjUxLDAsNi40MjUsMS4xNiw5LjMyMiwyLjkxNWMzLjc0LDIuMjY2LDguMzk2LDUuMDg1LDE3LjA5Myw1LjA4NWw3LjUtMC4wMTNWMTA0LjIwOGMyLjM0NywwLjgzMiw0Ljg3MiwxLjI4NSw3LjUsMS4yODUKCQkJYzEyLjQwNiwwLDIyLjUtMTAuMDkzLDIyLjUtMjIuNUM1MTIsNzAuNTg1LDUwMS45MDYsNjAuNDk0LDQ4OS41LDYwLjQ5NHogTTQ2Nyw0NDIuNjY0Yy0wLjU4NS0wLjMyNS0xLjE3OS0wLjY4NS0xLjgyMS0xLjA3NAoJCQljLTMuMzM5LTIuMDIyLTcuNDA3LTQuNDg2LTE0LjQyOS00Ljk5MVYyMjYuNTU1aC0xNXYyMTIuNDMxYy0xLjgyNCwwLjgyNy0zLjM1NSwxLjc1NS00Ljc1OCwyLjYwNAoJCQljLTIuODk3LDEuNzU1LTQuODEzLDIuOTE1LTkuMzIyLDIuOTE1Yy0xLjY0OCwwLTIuOTUtMC4xNTUtNC4wNzktMC40MzhoMy4xNTlWMTQxLjk5NGgtMTV2Mjk2LjIzOAoJCQljLTIuNzM0LTEuMDA1LTYuMDk3LTEuNzI2LTEwLjQ5NC0xLjcyNmMtMS42MzgsMC0zLjEzMywwLjEtNC41MDYsMC4yNzh2LTI1MC43OWgtMTV2MjU2Ljk4OGMtMS44NDksMC45NTEtMy43MzgsMS41MjUtNi45MSwxLjUyNQoJCQljLTMuODQzLDAtNS44MDItMC44NDItOC4wOS0yLjE3NlYxNDEuOTk0aC0xNXYyOTQuNjYxYy0xLjA0MS0wLjA5Ni0yLjE0OC0wLjE0OC0zLjMzLTAuMTQ4Yy04LjY5OSwwLTEzLjM1NCwyLjgxOS0xNy4wOTUsNS4wODUKCQkJYy0wLjY0NCwwLjM5LTEuMjM5LDAuNzUtMS44MjUsMS4wNzVWNjcuNDk0aDIyLjI1djQxaDE1di00MWg0NXY0MWgxNXYtNDFINDY3VjQ0Mi42NjR6IE00ODkuNSw5MC40OTRjLTQuMTM2LDAtNy41LTMuMzY0LTcuNS03LjUKCQkJYzAtNC4xMzYsMy4zNjQtNy41LDcuNS03LjVzNy41LDMuMzY0LDcuNSw3LjVDNDk3LDg3LjEzLDQ5My42MzYsOTAuNDk0LDQ4OS41LDkwLjQ5NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Jne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDIgMTJjMi4yMDYgMCA0LTEuNzk0IDQtNHMtMS43OTQtNC00LTQtNCAxLjc5NC00IDQgMS43OTQgNCA0IDR6bTItNGMwIDEuMTAzLS44OTcgMi0yIDJzLTItLjg5Ny0yLTJjMC0uMTc4LjAzMS0uMzQ3LjA3NS0uNTExbDEuMjE4IDEuMjE4IDEuNDE0LTEuNDE0LTEuMjE4LTEuMjE4Yy4xNjQtLjA0NC4zMzMtLjA3NS41MTEtLjA3NSAxLjEwMyAwIDIgLjg5NyAyIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDRjLTIuMjA2IDAtNCAxLjc5NC00IDRzMS43OTQgNCA0IDQgNC0xLjc5NCA0LTQtMS43OTQtNC00LTR6bTAgNmMtMS4xMDMgMC0yLS44OTctMi0ycy44OTctMiAyLTJjLjE3OCAwIC4zNDcuMDMxLjUxMS4wNzVsLTEuMjE4IDEuMjE4IDEuNDE0IDEuNDE0IDEuMjE4LTEuMjE4Yy4wNDQuMTY0LjA3NS4zMzMuMDc1LjUxMSAwIDEuMTAzLS44OTcgMi0yIDJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUxIDEyaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTNoLTJjLTEuNjU0IDAtMyAxLjM0Ni0zIDNzMS4zNDYgMyAzIDN6bTAtNGgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxaC0yYy0uNTUxIDAtMS0uNDQ5LTEtMXMuNDQ5LTEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMyA2aC0yYy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzaDJjMS42NTQgMCAzLTEuMzQ2IDMtM3MtMS4zNDYtMy0zLTN6bTAgNGgtMmMtLjU1MSAwLTEtLjQ0OS0xLTFzLjQ0OS0xIDEtMWgyYy41NTEgMCAxIC40NDkgMSAxcy0uNDQ5IDEtMSAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im02Mi45OTcgNThjMC0uMTYzLS4wMzctLjMyNi0uMTE3LS40NzRsLTIuODgtNS4zNDl2LTM4LjE3Ny0xMGMwLTEuNjU0LTEuMzQ2LTMtMy0zaC01MGMtMS42NTQgMC0zIDEuMzQ2LTMgM3YxMCAzOC4xNzdsLTIuODggNS4zNDljLS4wOC4xNDgtLjExNy4zMTEtLjExNy40NzRoLS4wMDN2MmMwIDEuNjU0IDEuMzQ2IDMgMyAzaDU2YzEuNjU0IDAgMy0xLjM0NiAzLTN2LTJ6bS02Ljk5Ny0xMy4yNTF2LTI5Ljc0OWgydjMzLjQ2M3ptLTQxLjkzMS0yLjc0OWMuMTg5IDEuNTAyLjc5MiAyLjg3NSAxLjY5NSA0aC0yLjc2NHYtNHptMzYuOTMxIDB2NGgtMi43NjVjLjkwNC0xLjEyNSAxLjUwNy0yLjQ5OCAxLjY5NS00em0tNS42OSA0aC0uMzF2LTIuMzgyYy40MDItLjQ2LjctMS4wMDkuODU4LTEuNjE4aDIuMDUyYy0uMjgyIDEuNjY2LTEuMjQ2IDMuMTAxLTIuNiA0em0tOC4zMS0xLjY5di0yLjMxaDEuMTQyYy40NDcgMS43MjEgMiAzIDMuODU4IDMgLjM0NyAwIC42NzgtLjA1OCAxLS4xNDJ2MS4xNDJoLTQuMzFjLS42Ny0uNDQ1LTEuMjQ1LTEuMDItMS42OS0xLjY5em0zLjI3OC00LjMxYy4zNDctLjU5NS45ODUtMSAxLjcyMi0xczEuMzc1LjQwNSAxLjcyMiAxem0yLjcyMiAydi43MjJjLS4yOTUuMTcyLS42MzQuMjc4LTEgLjI3OC0uNzM3IDAtMS4zNzUtLjQwNS0xLjcyMi0xem0yLjg1OC0yYy0uNDQ3LTEuNzIxLTItMy0zLjg1OC0zcy0zLjQxMSAxLjI3OS0zLjg1OCAzaC0yLjA1MmMuNDc4LTIuODMzIDIuOTQyLTUgNS45MS01czUuNDMxIDIuMTY3IDUuOTEgNXptLTExLjcyNS03LjA4NGMuNTEzLTIuNzkyIDIuOTU5LTQuOTE2IDUuODk3LTQuOTE2IDEuNjEgMCAzLjA2NS42MzEgNC4xNDMgMS42Ni0uOTczLS40MjMtMi4wNDYtLjY2LTMuMTczLS42Ni0yLjkxOCAwLTUuNDY5IDEuNTc2LTYuODY3IDMuOTE2em0uODY3IDQuMDg0YzAtMy4zMDkgMi42OTEtNiA2LTYgMi4zMzUgMCA0LjM1NyAxLjM0MyA1LjM0OCAzLjI5NC0xLjI1My0uODE1LTIuNzQ1LTEuMjk0LTQuMzQ4LTEuMjk0LTMuMDA0IDAtNS42MjQgMS42NjctNi45OTIgNC4xMjItLjAwMS0uMDQxLS4wMDgtLjA4MS0uMDA4LS4xMjJ6bS0uOTMxIDVjLjEyOSAxLjAyNy40NDkgMS45OTYuOTMxIDIuODY0djEuMTM2aC02di0xLjEzNmMuNDgyLS44NjkuODAyLTEuODM3LjkzMS0yLjg2NHptLTEzLjA2OSA0di0xLjE0MmMuMzIyLjA4NC42NTMuMTQyIDEgLjE0MiAxLjg1OCAwIDMuNDExLTEuMjc5IDMuODU4LTNoMS4xNDJ2Mi4zMWMtLjQ0NS42Ny0xLjAyIDEuMjQ1LTEuNjkgMS42OXptMC00aDIuNzIyYy0uMzQ3LjU5NS0uOTg1IDEtMS43MjIgMS0uMzY2IDAtLjcwNS0uMTA2LTEtLjI3OHptLS43MjItMmMuMzQ3LS41OTUuOTg1LTEgMS43MjItMXMxLjM3NS40MDUgMS43MjIgMXptOC43MTQtMi44NzhjLTEuMzY4LTIuNDU1LTMuOTg4LTQuMTIyLTYuOTkyLTQuMTIyLTEuNjAzIDAtMy4wOTUuNDc5LTQuMzQ4IDEuMjk0Ljk5MS0xLjk1MSAzLjAxMy0zLjI5NCA1LjM0OC0zLjI5NCAzLjMwOSAwIDYgMi42OTEgNiA2IDAgLjA0MS0uMDA3LjA4MS0uMDA4LjEyMnptLTUuOTkyLTguMTIyYy0xLjEwNiAwLTIuMTYuMjI2LTMuMTE5LjYzNCAxLjA3Ni0xLjAxNSAyLjUyMi0xLjYzNCA0LjExOS0xLjYzNCAyLjk2MSAwIDUuNDIyIDIuMTU4IDUuOTA3IDQuOTgzLTEuMzg4LTIuMzc4LTMuOTYxLTMuOTgzLTYuOTA3LTMuOTgzem0tMSA2YzIuOTY3IDAgNS40MzEgMi4xNjcgNS45MSA1aC0yLjA1MmMtLjQ0Ny0xLjcyMS0yLTMtMy44NTgtM3MtMy40MTEgMS4yNzktMy44NTggM2gtMi4wNTJjLjQ3OS0yLjgzMyAyLjk0My01IDUuOTEtNXptLTMuODU4IDdjLjE1OC42MDkuNDU2IDEuMTU3Ljg1OCAxLjYxOHYyLjM4MmgtLjMxYy0xLjM1NC0uODk5LTIuMzE5LTIuMzM0LTIuNi00em0tNS4xNDIgNmg1LjEzNmMuMjc4LjE1NC41NjcuMjkuODY0LjQxMXYzLjU4OWgtNnptOCAuOTMxYy4zMjguMDQxLjY2MS4wNjkgMSAuMDY5IDEuNDAxIDAgMi43MTgtLjM2NCAzLjg2NC0xaDEuMTM2djRoLTZ6bTgtLjkzMWg2djRoLTZ6bTggMGgxLjEzNmMxLjE0Ny42MzYgMi40NjMgMSAzLjg2NCAxIC4zMzkgMCAuNjcyLS4wMjggMS0uMDY5djMuMDY5aC02em04IC40MTFjLjI5Ny0uMTIxLjU4Ni0uMjU3Ljg2NC0uNDExaDUuMTM2djRoLTZ6bTcuOTY4LTcuNTcyLjAxOS0uMDAzLTIuNzc0LTE2LjY0M2MtLjIxMi0xLjI3MS0xLjMwMS0yLjE5My0yLjU4OS0yLjE5My0xLjQ0NyAwLTIuNjI0IDEuMTc3LTIuNjI0IDIuNjI0djEuMzc2aDJ2LTEuMzc2YzAtLjM0NC4yOC0uNjI0LjYyNC0uNjI0LjMwNyAwIC41NjUuMjE5LjYxNi41MjFsMi41OCAxNS40NzloLS44ODljLS4xMjktMS4wMy0uNDUxLTItLjkzNC0yLjg3IDAtLjA0NC4wMDMtLjA4Ni4wMDMtLjEzIDAtMS40Mi0uMzc2LTIuNzUxLTEuMDI3LTMuOTA4LS40NTctNC4wNTQtMy44NDEtNy4wOTItNy45NDMtNy4wOTItNC40MTEgMC04IDMuNTg5LTggOCAwIDEuMzczLjM2NCAyLjcxMyAxLjAzMSAzLjkwNC4wODIuNzIxLjI2MSAxLjQyNS41MzIgMi4wOTZoLTMuMTg3Yy4yNjMtLjY1LjQ0Mi0xLjMzLjUyNy0yLjAyOC42OTItMS4yMDggMS4wNjctMi41NzQgMS4wNjctMy45NzIgMC00LjQxMS0zLjU4OS04LTgtOC00LjA4IDAtNy40NDggMy4wMDYtNy45MzQgNy4wMjctLjY3NCAxLjE3Mi0xLjA2NiAyLjUyNi0xLjA2NiAzLjk3MyAwIC4wNDQuMDAzLjA4Ni4wMDQuMTMtLjQ4NC44Ny0uODA1IDEuODQtLjkzNSAyLjg3aC0uODg5bDIuNTgtMTUuNDc5Yy4wNTEtLjMwMi4zMDktLjUyMS42MTYtLjUyMS4zNDQgMCAuNjI0LjI4LjYyNC42MjR2MS4zNzZoMnYtMS4zNzZjMC0xLjQ0Ny0xLjE3Ny0yLjYyNC0yLjYyNC0yLjYyNC0xLjI4OCAwLTIuMzc3LjkyMi0yLjU4OCAyLjE5MmwtMi43NzQgMTYuNjQ0LjAxOS4wMDNjLS4wMS4wNTQtLjAzMy4xMDQtLjAzMy4xNjF2M2gtMXYtMjNoNDR2MjNoLTF2LTNjMC0uMDU3LS4wMjMtLjEwNy0uMDMyLS4xNjF6bTEuMDMyLTI1LjgzOXY0aC00NHYtNHptLTIwLTJoLTR2LTRjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptLTI4LTljMC0uNTUxLjQ0OS0xIDEtMWg1MGMuNTUxIDAgMSAuNDQ5IDEgMXY5aC0yMnYtNGMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY0aC0yMnptMCAxMWgydjI5Ljc0OWwtMiAzLjcxNHptMy41OTcgMzFoMS40MDN2N2MwIC41NTMuNDQ4IDEgMSAxaDQwYy41NTIgMCAxLS40NDcgMS0xdi03aDEuNDAzbDUuOTIzIDExaC01Ni42NTJ6bTUwLjQwMyAxNWgtNTZjLS41NTEgMC0xLS40NDgtMS0xdi0xaDU4djFjMCAuNTUyLS40NDkgMS0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDE2aDR2MmgtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTZoNHYyaC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMSA5aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",Bne="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMTMuMjA2IDEwNi4yNjVoLTEzLjYyM3YtODYuMjhhMS43NDkgMS43NDkgMCAwIDAgLTEuNTU0LTEuNzM4bC00Ni01LjE5MmExLjc1IDEuNzUgMCAwIDAgLTEuOTQ2IDEuNzM5djMuNDQxaC0xOS45MTZhMS43NSAxLjc1IDAgMCAwIC0xLjc1IDEuNzV2ODYuMjhoLTEzLjYyM2ExLjc1IDEuNzUgMCAxIDAgMCAzLjVoMzUuMjg5djMuNDQxYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzUgMS42MSAxLjYxIDAgMCAwIC4yLS4wMTFsNDUuOS01LjE4aDE1LjI3NmExLjc1IDEuNzUgMCAwIDAgMC0zLjV6bS04MS4yODktODQuNTNoMTguMTY2djQuNWgtMTEuOTE3YTEuNzUgMS43NSAwIDAgMCAtMS43NSAxLjc1djc4LjI4aC00LjV6bTggODQuNTN2LTc2LjUzaDEwLjE2NnY3Ni41M3ptMTMuNjY2LTg5LjUxMyA0Mi41IDQuOHY4NC45bC00Mi41IDQuOHoiLz4KICAgICAgICA8cGF0aCBkPSJtNjEuMTI1IDU4Ljc5MmE1LjIwOCA1LjIwOCAwIDEgMCA1LjIwOCA1LjIwOCA1LjIxNCA1LjIxNCAwIDAgMCAtNS4yMDgtNS4yMDh6bTAgNi45MTZhMS43MDggMS43MDggMCAxIDEgMS43MDgtMS43MDggMS43MSAxLjcxIDAgMCAxIC0xLjcwOCAxLjcwOHoiLz4KICAgIDwvZz4KPC9zdmc+",Fne="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQwMS4wNjcsMEgxMTAuOTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2NDk0LjkzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDI5MC4xMzMKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1Y4LjUzM0M0MDkuNiwzLjgxNCw0MDUuNzc3LDAsNDAxLjA2NywweiBNMzkyLjUzMyw0OTQuOTMzSDExOS40NjdWMTcuMDY3aDI3My4wNjdWNDk0LjkzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzY2LjkzMywzNC4xMzNIMTQ1LjA2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjQ2MC44YzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjIxLjg2NwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzdi00NjAuOEMzNzUuNDY3LDM3Ljk0OCwzNzEuNjQ0LDM0LjEzMywzNjYuOTMzLDM0LjEzM3ogTTM1OC40LDQ5NC45MzNIMTUzLjZWNTEuMmgyMDQuOFY0OTQuOTMzegoJCQkiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNDcuMDUzLDAtODUuMzMzLDM4LjI4MS04NS4zMzMsODUuMzMzdjguNTMzYzAsNC43MTksMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTUzLjYKCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxNTMuNkMzNDEuMzMzLDEwNi41NDcsMzAzLjA1Myw2OC4yNjcsMjU2LDY4LjI2N3ogTTE4Ny43MzMsMTUzLjYKCQkJYzAtMzcuNjQxLDMwLjYyNi02OC4yNjcsNjguMjY3LTY4LjI2N2MzNy42NDEsMCw2OC4yNjcsMzAuNjI2LDY4LjI2Nyw2OC4yNjdIMTg3LjczM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywxODcuNzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjE5Ni4yNjdDMjQ3LjQ2NywxOTEuNTQ4LDI0My42NDQsMTg3LjczMywyMzguOTMzLDE4Ny43MzN6IE0yMzAuNCwzMDcuMmgtNDIuNjY3VjIwNC44SDIzMC40CgkJCVYzMDcuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMTg3LjczM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMTk2LjI2N0MzNDEuMzMzLDE5MS41NDgsMzM3LjUxLDE4Ny43MzMsMzMyLjgsMTg3LjczM3ogTTMyNC4yNjcsMzA3LjJIMjgxLjZWMjA0LjhoNDIuNjY3VjMwNy4yCgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNDEuMzMzSDE3OS4yYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczMwoJCQljNC43MSwwLDguNTMzLTMuODE0LDguNTMzLTguNTMzVjM0OS44NjdDMjQ3LjQ2NywzNDUuMTQ4LDI0My42NDQsMzQxLjMzMywyMzguOTMzLDM0MS4zMzN6IE0yMzAuNCw0NjAuOGgtNDIuNjY3VjM1OC40SDIzMC40CgkJCVY0NjAuOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzMyLjgsMzQxLjMzM2gtNTkuNzMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDMzMi44CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNWMzQ5Ljg2N0MzNDEuMzMzLDM0NS4xNDgsMzM3LjUxLDM0MS4zMzMsMzMyLjgsMzQxLjMzM3ogTTMyNC4yNjcsNDYwLjhIMjgxLjZWMzU4LjRoNDIuNjY3VjQ2MC44CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDY4LjI2N2MtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjg1LjMzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODE0LDguNTMzLTguNTMzVjc2LjgKCQkJQzI2NC41MzMsNzIuMDgxLDI2MC43MSw2OC4yNjcsMjU2LDY4LjI2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzIwLjQzNSw5Ny42OThjLTMuMzI4LTMuMzM2LTguNzMtMy4zMzYtMTIuMDY2LDBMMjQ5Ljk2NywxNTYuMWMtMy4zMzcsMy4zMzctMy4zMzcsOC43MywwLDEyLjA2NgoJCQljMS42NjQsMS42NjQsMy44NDksMi41LDYuMDMzLDIuNWMyLjE4NSwwLDQuMzY5LTAuODM2LDYuMDMzLTIuNWw1OC40MDItNTguNDAyQzMyMy43NzIsMTA2LjQyOCwzMjMuNzcyLDEwMS4wMzUsMzIwLjQzNSw5Ny42OTh6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTI2Mi4wMzMsMTU2LjFMMjAzLjYzMSw5Ny42OWMtMy4zMjgtMy4zMzctOC43My0zLjMzNy0xMi4wNjYsMGMtMy4zMzcsMy4zMzYtMy4zMzcsOC43MywwLDEyLjA2Nmw1OC40MDIsNTguNDExCgkJCWMxLjY2NCwxLjY2NCwzLjg0OSwyLjUsNi4wMzMsMi41YzIuMTg1LDAsNC4zNjktMC44MzYsNi4wMzMtMi41QzI2NS4zNywxNjQuODMsMjY1LjM3LDE1OS40MzcsMjYyLjAzMywxNTYuMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNTkuNzMzLDQ5NC45MzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM0MwLDUwOC4xODYsMy44MjMsNTEyLDguNTMzLDUxMmg1MS4yCgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNjguMjY3LDQ5OC43NDgsNjQuNDQ0LDQ5NC45MzMsNTkuNzMzLDQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsNDk0LjkzM2gtMTAyLjRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDEwMi40CgkJCWM0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNDNTEyLDQ5OC43NDgsNTA4LjE3Nyw0OTQuOTMzLDUwMy40NjcsNDk0LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Gne="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjBhOTYgOTYgMCAxIDAgOTYgOTYgOTYuMTA4IDk2LjEwOCAwIDAgMCAtOTYtOTZ6bTAgMTc2YTgwIDgwIDAgMSAxIDgwLTgwIDgwLjA5MSA4MC4wOTEgMCAwIDEgLTgwIDgweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYgMTI4YTEyOCAxMjggMCAxIDAgMTI4IDEyOCAxMjguMTQ1IDEyOC4xNDUgMCAwIDAgLTEyOC0xMjh6bTAgMjQwYTExMiAxMTIgMCAxIDEgMTEyLTExMiAxMTIuMTI3IDExMi4xMjcgMCAwIDEgLTExMiAxMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMiA0ODh2LTQ2NGE4IDggMCAwIDAgLTgtOGgtMzM2YTggOCAwIDAgMCAtOCA4djQ2NGE4IDggMCAwIDAgOCA4aDMzNmE4IDggMCAwIDAgOC04em0tMzM2LTM3NmgzMjB2MzA0aC0zMjB6bTk2LTgwaDE0NHY0MGE4IDggMCAwIDAgOCA4aDcydjE2aC0yMjR6bTIyNCAzMmgtNjR2LTMyaDY0em0tMjQwLTMydjY0aC04MHYtNjR6bS04MCA0NDh2LTQ4aDMyMHY0OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDQwYTI0IDI0IDAgMSAwIDI0IDI0IDI0LjAyNyAyNC4wMjcgMCAwIDAgLTI0LTI0em0wIDMyYTggOCAwIDEgMSA4LTggOC4wMDkgOC4wMDkgMCAwIDEgLTggOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTEyIDU2aDQ4djE2aC00OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDQwaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg4IDcyaDMydjE2aC0zMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjcyIDIwMGE4IDggMCAwIDAgLTE2IDBjMCA2LjM3My0yLjQxNyA5LjE5MS02LjA3NCAxMy40NTgtNC40MjYgNS4xNTktOS45MjYgMTEuNTgtOS45MjYgMjMuODcyczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTMtNi4wNzQgMTMuNDYxYy00LjQyNiA1LjE1OS05LjkyNiAxMS41ODEtOS45MjYgMjMuODc0YTggOCAwIDAgMCAxNiAwYzAtNi4zNzUgMi40MTctOS4xOTQgNi4wNzQtMTMuNDYyIDQuNDIzLTUuMTU5IDkuOTI2LTExLjU4IDkuOTI2LTIzLjg3M3MtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXMyLjQxNy05LjE5MSA2LjA3NC0xMy40NThjNC40MjYtNS4xNTkgOS45MjYtMTEuNTggOS45MjYtMjMuODcyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTYgMjM3LjMzYzAtNi4zNzMgMi40MTctOS4xOTIgNi4wNzUtMTMuNDYuODEyLS45NDcgMS42MjMtMS45IDIuNDA3LTIuODc4YTggOCAwIDAgMCAtMTIuNS05Ljk4NGMtLjY2OC44MzYtMS4zNjEgMS42NDEtMi4wNTMgMi40NDktNC40MjkgNS4xNTktOS45MjkgMTEuNTgxLTkuOTI5IDIzLjg3M3M1LjUgMTguNzE0IDkuOTI2IDIzLjg3M2MzLjY1NyA0LjI2OCA2LjA3NCA3LjA4NyA2LjA3NCAxMy40NjJzLTIuNDE3IDkuMTk0LTYuMDc1IDEzLjQ2MmMtLjgxMy45NDktMS42MjUgMS45LTIuNDA5IDIuODgxYTggOCAwIDAgMCAxMi41IDkuOTg0Yy42NjgtLjgzNyAxLjM2Mi0xLjY0NCAyLjA1NC0yLjQ1MiA0LjQzLTUuMTYgOS45My0xMS41ODIgOS45My0yMy44NzVzLTUuNS0xOC43MTUtOS45MjYtMjMuODc0Yy0zLjY1Ny00LjI2OC02LjA3NC03LjA5MS02LjA3NC0xMy40NjF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxNiAyMzcuMzNjMC02LjM3MyAyLjQxNy05LjE5MiA2LjA3NS0xMy40Ni44MTItLjk0NyAxLjYyMy0xLjkgMi40MDctMi44NzhhOCA4IDAgMCAwIC0xMi41LTkuOTg0Yy0uNjY4LjgzNi0xLjM2MSAxLjY0MS0yLjA1MyAyLjQ0OS00LjQyOSA1LjE1OS05LjkyOSAxMS41ODEtOS45MjkgMjMuODczczUuNSAxOC43MTQgOS45MjYgMjMuODczYzMuNjU3IDQuMjY4IDYuMDc0IDcuMDg3IDYuMDc0IDEzLjQ2MnMtMi40MTcgOS4xOTQtNi4wNzUgMTMuNDYyYy0uODEzLjk0OS0xLjYyNSAxLjktMi40MDkgMi44ODFhOCA4IDAgMCAwIDEyLjUgOS45ODRjLjY2OC0uODM3IDEuMzYyLTEuNjQ0IDIuMDU0LTIuNDUyIDQuNDMtNS4xNiA5LjkzLTExLjU4MiA5LjkzLTIzLjg3NXMtNS41LTE4LjcxNS05LjkyNi0yMy44NzRjLTMuNjU3LTQuMjY4LTYuMDc0LTcuMDkxLTYuMDc0LTEzLjQ2MXoiLz4KICAgIDwvZz4KPC9zdmc+",Hne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3Ni4wNjUgNDc2LjA2NSI+CjxnIGZpbGw9ImN1cnJlbnRDb2xvciI+Cgk8cGF0aCBkPSJNNDMyLjU1OCwxNzIuMDJDNDE5LjMwMyw2NC41ODcsMzIxLjQ2Ni0xMS43NiwyMTQuMDMzLDEuNDk1UzMwLjI1MywxMTIuNTg3LDQzLjUwOCwyMjAuMDIKCQljMTEuMDA4LDg5LjIyMiw4MS4zMDMsMTU5LjUxNywxNzAuNTI1LDE3MC41MjV2MzcuNTJoLTU2Yy0xMy4yNTUsMC0yNCwxMC43NDUtMjQsMjR2MjRoMjA4di0yNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTU2CgkJdi0zNy41MkMzNjkuNDY2LDM3Ny4yOSw0NDUuODEzLDI3OS40NTMsNDMyLjU1OCwxNzIuMDJ6IE0zMTguMDMzLDQ0NC4wNjVjNC40MTgsMCw4LDMuNTgyLDgsOHY4aC0xNzZ2LThjMC00LjQxOCwzLjU4Mi04LDgtOAoJCUgzMTguMDMzeiBNMjMwLjAzMyw0MjguMDY1di0zMmgxNnYzMkgyMzAuMDMzeiBNMjM4LjAzMywzNzYuMDY1Yy05OS40MTEsMC0xODAtODAuNTg5LTE4MC0xODAKCQljMC4xMTUtOTkuMzY0LDgwLjYzNi0xNzkuODg1LDE4MC0xODBjOTkuNDExLDAsMTgwLDgwLjU4OSwxODAsMTgwUzMzNy40NDQsMzc2LjA2NSwyMzguMDMzLDM3Ni4wNjV6Ii8+Cgk8cGF0aCBkPSJNNDA2LjAzMywyMTIuMDY1di0xNmMwLTQuNDE4LTMuNTgyLTgtOC04aC05My41MzZjMzkuOC0yNy44MzIsNDkuNTAyLTgyLjY1OCwyMS42Ny0xMjIuNDU4CgkJYy0xNi40NjctMjMuNTQ4LTQzLjQtMzcuNTY1LTcyLjEzNC0zNy41NDJoLTE2Yy00LjQxOCwwLTgsMy41ODItOCw4djkzLjUzNmMtMjcuODMyLTM5LjgtODIuNjU4LTQ5LjUwMi0xMjIuNDU4LTIxLjY3CgkJYy0yMy41NDgsMTYuNDY3LTM3LjU2NSw0My40LTM3LjU0Miw3Mi4xMzR2MTZjMCw0LjQxOCwzLjU4Miw4LDgsOGg5My41MzZjLTIzLjQ2NSwxNi40NzgtMzcuNDYzLDQzLjMyOC0zNy41MzYsNzIKCQljMC4wNTcsNDguNTc3LDM5LjQyMyw4Ny45NDMsODgsODhoMTZjNC40MTgsMCw4LTMuNTgyLDgtOHYtOTMuNTM2YzI3LjgzMiwzOS44LDgyLjY1OCw0OS41MDIsMTIyLjQ1OCwyMS42NwoJCUMzOTIuMDM4LDI2Ny43MzMsNDA2LjA1NiwyNDAuOCw0MDYuMDMzLDIxMi4wNjV6IE0yNDYuMDMzLDQ0LjA2NWg4YzM5Ljc2NCwwLjA1NSw3MS45NTUsMzIuMzM2LDcxLjksNzIuMQoJCWMtMC4wNDMsMzEuMTctMjAuMTM4LDU4Ljc3Mi00OS43ODgsNjguMzg4Yy00LjIwMi0xNC4wNTItMTUuNzU4LTI0LjY3Ny0zMC4xMTItMjcuNjg4VjQ0LjA2NXogTTg2LjAzMywxODguMDY1di04CgkJYzAuMDczLTM5Ljc2NCwzMi4zNjgtNzEuOTQsNzIuMTMzLTcxLjg2N2MzMS4xNDgsMC4wNTcsNTguNzI3LDIwLjEzOCw2OC4zNDcsNDkuNzYzYy0xNC4wNDcsNC4yMDMtMjQuNjY4LDE1Ljc1NS0yNy42OCwzMC4xMDQKCQlIODYuMDMzeiBNMjMwLjAzMywzNDguMDY1aC04Yy0zOS43NjQtMC4wNTUtNzEuOTU1LTMyLjMzNi03MS45LTcyLjFjMC4wNDMtMzEuMTcsMjAuMTM4LTU4Ljc3Miw0OS43ODgtNjguMzg4CgkJYzQuMjAyLDE0LjA1MiwxNS43NTgsMjQuNjc3LDMwLjExMiwyNy42ODhWMzQ4LjA2NXogTTIzOC4wMzMsMjIwLjA2NWMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNAoJCXMyNCwxMC43NDUsMjQsMjRTMjUxLjI4NywyMjAuMDY1LDIzOC4wMzMsMjIwLjA2NXogTTMxNy45LDI4My45MzJjLTMxLjE0OC0wLjA1Ny01OC43MjctMjAuMTM4LTY4LjM0Ny00OS43NjMKCQljMTQuMDQ3LTQuMjAzLDI0LjY2OC0xNS43NTUsMjcuNjgtMzAuMTA0aDExMi44djhDMzg5Ljk1OSwyNTEuODMsMzU3LjY2NCwyODQuMDA2LDMxNy45LDI4My45MzJ6Ii8+CjwvZz4KPC9zdmc+Cg==",Vne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk5LDEyNi4wMDFoLTAuMDI3YzYuMjkyLTguMzYyLDEwLjAyNy0xOC43NTIsMTAuMDI3LTMwYzAtMjcuNTctMjIuNDMtNTAuMDAxLTUwLTUwLjAwMQoJCXMtNTAuMDAxLDIyLjQzLTUwLjAwMSw1MC4wMDFjMCwxMS4yNDgsMy43MzYsMjEuNjM4LDEwLjAyNywzMGgtMC4wMjdjLTUuNTIyLDAtMTAsNC40NzctMTAsMTB2MzUuNTQ1CgkJYy0xMS4zMjgtNy4yMzMtMjMuMTI4LTEzLjY1OC0zNS4zMzQtMTkuMjQxdi0xNi4zMDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAsNC40NzctMTAsMTB2OC4wMzcKCQljLTMuMzY5LTEuMjQ3LTYuNzY0LTIuNDM4LTEwLjE4Ni0zLjU2MmMtOC4yOTEtMi43MjMtMTYuNjgzLTUuMDUyLTI1LjE0Ni03LjAxMXYtMjAuODMzYzAtNS41MjMtNC40NzgtMTAtMTAtMTAKCQljLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTYuOTMyYy0xMS42OC0xLjg0OS0yMy40NzQtMi45NzQtMzUuMzMyLTMuMzgxVjk2LjAwMWMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJdjMwLjE4M2MtMTEuODU5LDAuNDA3LTIzLjY1MywxLjUzMi0zNS4zMzMsMy4zODF2LTE2LjkzMmMwLTUuNTIzLTQuNDc4LTEwLTEwLTEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjIwLjgzMwoJCWMtOC40NjIsMS45NTktMTYuODUyLDQuMjg3LTI1LjE0Miw3LjAwOWMtMy40MjQsMS4xMjQtNi44MTksMi4zMTYtMTAuMTkxLDMuNTYzdi04LjAzN2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwCgkJYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjE2LjMwNGMtMTIuMjA1LDUuNTgzLTI0LjAwNCwxMi4wMDctMzUuMzM0LDE5LjI0di0zNS41NDRjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMGgtMC4wMjcKCQljNi4yOTMtOC4zNjIsMTAuMDI3LTE4Ljc1MiwxMC4wMjctMzBjMC0yNy41Ny0yMi40My01MC01MC01MHMtNTAsMjIuNDMtNTAsNTBjMCwxMS4yNDgsMy43MzQsMjEuNjM4LDEwLjAyNywzMEgxMAoJCWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYzMTkuOTk5YzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDBoNDBoMzEuMDMzYzUuNTIyLDAsMTAtNC40NzcsMTAtMTBjMC01LjUyMi00LjQ3OC0xMC0xMC0xMEgxMDAKCQl2LTIwLjAwMWgzMTEuOTk4djIwLjAwMWgtMjEuMDMzYy01LjUyMywwLTEwLDQuNDc4LTEwLDEwYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoMzEuMDMzaDQwLjAwMWg0MGM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwCgkJVjEzNi4wMDFDNTExLjk5OSwxMzAuNDc3LDUwNy41MjEsMTI2LjAwMSw1MDEuOTk5LDEyNi4wMDF6IE04MCw0NDUuOTk5SDUwSDIwVjE0Ni4wMDFoMjB2NDEuODk4YzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQlzMTAtNC40NzcsMTAtMTB2LTQxLjg5OGgyMFY0NDUuOTk5eiBNNTAsMTI2LjAwMWMtMTYuNTQzLDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1Ny0zMCwzMC0zMGMxNi41NDMsMCwzMCwxMy40NTgsMzAsMzAKCQlTNjYuNTQzLDEyNi4wMDEsNTAsMTI2LjAwMXogTTEzNS4zMzQsNDA1Ljk5OEgxMDBWMTk1LjYyOWMxMS4zMTgtOC4wMiwyMy4xMjYtMTUuMDk1LDM1LjMzNC0yMS4yMThWNDA1Ljk5OHogTTE5MC42NjcsNDA2CgkJaC0zNS4zMzNWMTY1LjM4NGMxMS41LTQuNjMsMjMuMjk4LTguNDQ5LDM1LjMzMy0xMS40MzdWNDA2eiBNMjQ2LDQwNmgtMzUuMzMzVjE0OS43ODdjMTEuNjE0LTEuOTU4LDIzLjQwOS0zLjE2OCwzNS4zMzMtMy41OTkKCQlWNDA2eiBNMzAxLjMzMiw0MDUuOTk4SDI2NnYtMjU5LjgxYzExLjkyNCwwLjQzMSwyMy43MTcsMS42NDEsMzUuMzMyLDMuNTk5VjQwNS45OTh6IE0zNTYuNjY0LDQwNS45OTloLTM1LjMzMlYxNTMuOTQ4CgkJYzEyLjAzNSwyLjk4OCwyMy44MzIsNi44MDcsMzUuMzMyLDExLjQzOFY0MDUuOTk5eiBNNDExLjk5OCw0MDUuOTk4aC0zNS4zMzRWMTc0LjQxMmMxMi4yMDksNi4xMjMsMjQuMDE3LDEzLjIsMzUuMzM0LDIxLjIyCgkJVjQwNS45OTh6IE00OTEuOTk5LDQ0NS45OTloLTMwaC0zMC4wMDFWMTQ2LjAwMWgyMC4wMDF2NDEuODk4YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtNDEuODk4aDIwCgkJVjQ0NS45OTl6IE00NjEuOTk5LDEyNi4wMDFjLTE2LjU0MiwwLTMwLjAwMS0xMy40NTgtMzAuMDAxLTMwYzAtMTYuNTQzLDEzLjQ1OS0zMC4wMDEsMzAuMDAxLTMwLjAwMQoJCWMxNi41NDIsMCwzMCwxMy40NTgsMzAsMzAuMDAxQzQ5MS45OTksMTEyLjU0Miw0NzguNTQxLDEyNi4wMDEsNDYxLjk5OSwxMjYuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTAsNDQ1Ljk5OWgtMC4yMzZjLTUuNTIzLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMEgxNTBjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCUMxNjAsNDUwLjQ3NywxNTUuNTIzLDQ0NS45OTksMTUwLDQ0NS45OTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Mi4yMzQsNDQ1Ljk5OWgtMC4yMzdjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTBjMCw1LjUyMyw0LjQ3OCwxMCwxMCwxMGgwLjIzN2M1LjUyMywwLDEwLTQuNDc3LDEwLTEwCgkJQzM3Mi4yMzQsNDUwLjQ3NywzNjcuNzU4LDQ0NS45OTksMzYyLjIzNCw0NDUuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MCwyMDYuNjMxYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzcsMTAsMTAsMTBzMTAtNC40NzcsMTAtMTB2LTAuMjM1CgkJQzYwLDIxMS4xMDgsNTUuNTIzLDIwNi42MzEsNTAsMjA2LjYzMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjk5OSwyMDYuNjMxYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjAuMjM1YzAsNS41MjMsNC40NzgsMTAsMTAsMTBjNS41MjIsMCwxMC00LjQ3NywxMC0xMHYtMC4yMzUKCQlDNDcxLjk5OSwyMTEuMTA4LDQ2Ny41MjEsMjA2LjYzMSw0NjEuOTk5LDIwNi42MzF6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Zne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuMDA1LDEwOC4wMDNjLTEzLjI1NSwwLTI0LDEwLjc0NS0yNCwyNGMwLDQuNDE4LDMuNTgyLDgsOCw4czgtMy41ODIsOC04czMuNTgyLTgsOC04czgtMy41ODIsOC04CgkJCVMxMDguNDIzLDEwOC4wMDMsMTA0LjAwNSwxMDguMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zODUuMzU3LDc2LjExNWwtMjgwLTQ4Yy0wLjQ0Ny0wLjA3My0wLjg5OS0wLjExMS0xLjM1Mi0wLjExMkM0Ni42MTIsMjcuOTU2LDAuMDQ3LDc0LjQ0NCwwLDEzMS44MzcKCQkJYy0wLjAyNiwzMS4wNTksMTMuODQzLDYwLjUwMSwzNy44MDUsODAuMjYxbDU4LjQ0LDIzMy44NDhjMC44OTIsMy41NTksNC4wOTEsNi4wNTYsNy43Niw2LjA1Nmg2NAoJCQljNC40MTgsMC4wMDgsOC4wMDctMy41NjYsOC4wMTUtNy45ODVjMC0wLjE3MS0wLjAwNS0wLjM0MS0wLjAxNS0wLjUxMWwtMTMuNi0yMTcuNGwyMjIuOTItMzguMjE2CgkJCWMzLjg1NC0wLjY0NSw2LjY3OS0zLjk4LDYuNjgtNy44ODh2LTk2QzM5Mi4wMDcsODAuMTA1LDM4OS4xOTksNzYuNzczLDM4NS4zNTcsNzYuMTE1eiBNMTEwLjI1Myw0MzYuMDAzTDU3LjYwNSwyMjUuMTcxCgkJCWMwLjUwNCwwLjI0OCwxLjA0LDAuNDE2LDEuNTQ0LDAuNjY0YzIuNTc2LDEuMjMyLDUuMTg5LDIuMzUyLDcuODQsMy4zNmMwLjc0NCwwLjI4LDEuNDY0LDAuNiwyLjIwOCwwLjg2NAoJCQljMy4zMTksMS4xNzQsNi42OTcsMi4xNzUsMTAuMTIsM2MwLjgsMC4xOTIsMS42LDAuMzI4LDIuNCwwLjUwNGMyLjc2OCwwLjU5Miw1LjU2NSwxLjA3Nyw4LjM5MiwxLjQ1NgoJCQljMS4wMDgsMC4xMjgsMi4wMTYsMC4yNjQsMy4wMjQsMC4zNjhjMy42MTEsMC4zOSw3LjI0LDAuNTk2LDEwLjg3MiwwLjYxNmMwLjQ1My0wLjAwMSwwLjkwNS0wLjAzOSwxLjM1Mi0wLjExMmw0MS4yMTYtNy4wODgKCQkJbDEyLjkyLDIwNy4ySDExMC4yNTN6IE0zNDQuMDA1LDE3OC43MzlsLTIzOC4wODgsNDAuOGwtMi41NzYsMC40NjRjLTQ4LjM2Ny0wLjMwNC04Ny4zOTktMzkuNjMyLTg3LjMzNi04OAoJCQljMC4wNTUtNDguMzIsMzkuMDE4LTg3LjU3OSw4Ny4zMzYtODhsMjQwLjY2NCw0MS4yNjRWMTc4LjczOXogTTM3Ni4wMDUsMTczLjI1OWwtMTYsMi43NDR2LTg4bDE2LDIuNzQ0VjE3My4yNTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNC4wMDUsNzYuMDAzYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMxNjAuMDA1LDEwMS4wNzUsMTM0LjkzMyw3Ni4wMDMsMTA0LjAwNSw3Ni4wMDN6IE0xMDQuMDA1LDE3Mi4wMDNjLTIyLjA5MSwwLTQwLTE3LjkwOS00MC00MGMwLjAyNi0yMi4wOCwxNy45Mi0zOS45NzQsNDAtNDAKCQkJYzIyLjA5MSwwLDQwLDE3LjkwOSw0MCw0MFMxMjYuMDk3LDE3Mi4wMDMsMTA0LjAwNSwxNzIuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDEuOTMzLDQxMS41MjNsLTkuNjY0LTE1NS4wMjRjLTAuMjc2LTQuNDE4LTQuMDgyLTcuNzc2LTguNS03LjVjLTQuNDE4LDAuMjc2LTcuNzc2LDQuMDgyLTcuNSw4LjVsOS42NjQsMTU1CgkJCWMwLjI2Myw0LjIyNywzLjc3Myw3LjUxNiw4LjAwOCw3LjUwNGMwLjE2OCwwLDAuMzM2LDAsMC41MDQsMEMxMzguODU0LDQxOS43MjgsMTQyLjIwNyw0MTUuOTMyLDE0MS45MzMsNDExLjUyM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDcyLjAwNSwxMjQuMDAzaC00OGMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGg0OGM0LjQxOCwwLDgtMy41ODIsOC04UzQ3Ni40MjMsMTI0LjAwMyw0NzIuMDA1LDEyNC4wMDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ3Mi4wMDUsMTU2LjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDE1Ni4wMDMsNDcyLjAwNSwxNTYuMDAzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzIuMDA1LDkyLjAwM2gtNDhjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoNDhjNC40MTgsMCw4LTMuNTgyLDgtOFM0NzYuNDIzLDkyLjAwMyw0NzIuMDA1LDkyLjAwM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Xne="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OC40NTcsNzcuMjI3YTguMDYzLDguMDYzLDAsMCwwLTEwLjQsMTIuMzI1djYuOTI3YTUuMjczLDUuMjczLDAsMCwwLDEwLjU0NSwwVjg5LjU1M2E4LjA2Myw4LjA2MywwLDAsMC0uMTQ2LTEyLjMyNlpNNDUuODc0LDg3LjI0YTEuNzUsMS43NSwwLDAsMC0uNzcxLDEuNDUxdjcuNzg3YTEuNzczLDEuNzczLDAsMCwxLTMuNTQ1LDBWODguNjkxYTEuNzQ3LDEuNzQ3LDAsMCwwLS43NzMtMS40NTFBNC41NjYsNC41NjYsMCwwLDEsNDIuNCw3OC45NzhhNC44NzYsNC44NzYsMCwwLDEsLjk0LS4wOTIsNC41LDQuNSwwLDAsMSwyLjg5MywxLjA0MSw0LjU2Miw0LjU2MiwwLDAsMS0uMzU2LDcuMzEzWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDUuMjI4LDQ0LjY2Myw2NS41OCw0My4zNlYxOS41MTRhNS4zNyw1LjM3LDAsMCwwLTUuMzYzLTUuMzY0SDI2LjQ0M2E1LjM3LDUuMzcsMCwwLDAtNS4zNjMsNS4zNjR2ODguOTcyYTUuMzcsNS4zNywwLDAsMCw1LjM2Myw1LjM2NEg2MC4yMTdhNS4zNyw1LjM3LDAsMCwwLDUuMzYzLTUuMzY0VjU5LjhsMzkuNjQ4LTEuM2ExLjc1LDEuNzUsMCwwLDAsMS42OTItMS43NDlWNDYuNDEyQTEuNzUsMS43NSwwLDAsMCwxMDUuMjI4LDQ0LjY2M1pNNjIuMDgsMTA4LjQ4NmExLjg2NiwxLjg2NiwwLDAsMS0xLjg2MywxLjg2NEgyNi40NDNhMS44NjYsMS44NjYsMCwwLDEtMS44NjMtMS44NjRWMTkuNTE0YTEuODY2LDEuODY2LDAsMCwxLDEuODYzLTEuODY0SDYwLjIxN2ExLjg2NiwxLjg2NiwwLDAsMSwxLjg2MywxLjg2NFY0My4yNDVsLTYuMjY3LS4yMDZhMTUuMTI3LDE1LjEyNywwLDEsMCwwLDE3LjA4Nmw2LjI2NC0uMjA2Wk00NC4zOSw2MC41aDBMNTEsNjAuMjg0YTExLjYxMiwxMS42MTIsMCwxLDEsLjA0LTE3LjRsLTYuNjQ5LS4yMTloLS4wNThBOC45Miw4LjkyLDAsMSwwLDQ0LjM5LDYwLjVabTU5LjAzLTUuNDQyLTM5LjU4NywxLjNoLS4wMDhMNDQuMzM0LDU3YTUuNDIsNS40MiwwLDAsMS0uMDI3LTEwLjg0bDU5LjExMywxLjk0M1oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Kne="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuMzQsMTE3LjMzNmMtNS45MDYsMC0xMC42ODgsNC43NzMtMTAuNjg4LDEwLjY2NHY4NS4zMzVINDY5LjM0di0yMS4zMzZjMC0yMy41MjMtMTkuMTU2LTQyLjY2My00Mi42ODgtNDIuNjYzCgkJYy0xMi43MTgsMC0yNC4xNTUsNS42MDktMzEuOTk5LDE0LjQ5MWMtNy44MTItOC44ODItMTkuMjUtMTQuNDkxLTMyLTE0LjQ5MWMtMTIuNzE4LDAtMjQuMTU1LDUuNjA5LTMxLjk5OSwxNC40OTEKCQljLTcuODEyLTguODgyLTE5LjI1LTE0LjQ5MS0zMi0xNC40OTFjLTEyLjcxOSwwLTI0LjE1Niw1LjYwOS0zMS45OTIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxCgkJYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xMi43MjYsMC0yNC4xNzEsNS42MDktMzIsMTQuNDkxCgkJYy03LjgyLTguODgyLTE5LjI1OC0xNC40OTEtMzItMTQuNDkxYy0xOS44MzUsMC0zNi41NywxMy42MTYtNDEuMzIsMzEuOTk5SDMyYy01Ljg5MSwwLTEwLjY2NCw0Ljc3My0xMC42NjQsMTAuNjY0djIxLjMzNkgxMC42NjQKCQlDNC43NzMsMjEzLjMzNSwwLDIxOC4xMDgsMCwyMjMuOTk5czQuNzczLDEwLjY2NCwxMC42NjQsMTAuNjY0aDEwLjY3MnYyMS4zMzZjMCw1Ljg5MSw0Ljc3MywxMC42NjQsMTAuNjY0LDEwLjY2NGgzMnYyMDIuNjc4CgkJYzAsMjMuNTE2LDE5LjE0MSw0Mi42NTYsNDIuNjY0LDQyLjY1NmMxMi43NDIsMCwyNC4xOC01LjYyNSwzMi0xNC41YzcuODI4LDguODc1LDE5LjI3MywxNC41LDMyLDE0LjUKCQljMTIuNzQyLDAsMjQuMTgtNS42MjUsMzItMTQuNWM3LjgyOCw4Ljg3NSwxOS4yNzMsMTQuNSwzMiwxNC41YzEyLjc0MiwwLDI0LjE4LTUuNjI1LDMyLTE0LjUKCQljNy44MzYsOC44NzUsMTkuMjczLDE0LjUsMzEuOTkyLDE0LjVjMTIuNzUsMCwyNC4xODgtNS42MjUsMzItMTQuNWM3Ljg0NCw4Ljg3NSwxOS4yODEsMTQuNSwzMS45OTksMTQuNQoJCWMxMi43NSwwLDI0LjE4OC01LjYyNSwzMi0xNC41YzcuODQ0LDguODc1LDE5LjI4MSwxNC41LDMxLjk5OSwxNC41YzIzLjUzMSwwLDQyLjY4OC0xOS4xNDEsNDIuNjg4LTQyLjY1NlYyMzQuNjYzaDMyCgkJYzUuODc1LDAsMTAuNjU2LTQuNzczLDEwLjY1Ni0xMC42NjRWMTI4QzUxMS45OTYsMTIyLjEwOSw1MDcuMjE1LDExNy4zMzYsNTAxLjM0LDExNy4zMzZ6IE02NCwyNDUuMzM1SDQyLjY2NHYtNDIuNjcySDY0VjI0NS4zMzUKCQl6IE0xMjcuOTk5LDQ2OS4zNDFjMCwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMjU1Ljk5OXYtNjQKCQljMC0xMS43NTgsOS41Ny0yMS4zMzYsMjEuMzI4LTIxLjMzNmMxMS43NzMsMCwyMS4zMzYsOS41NzgsMjEuMzM2LDIxLjMzNlY0NjkuMzQxeiBNMTkxLjk5OSw0NjkuMzQxCgkJYy0wLjAwMSwxMS43NS05LjU2MywyMS4zMTItMjEuMzM2LDIxLjMxMmMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2CgkJYzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6IE0yNTUuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzM2LDIxLjMxMgoJCWMtMTEuNzU3LDAtMjEuMzI4LTkuNTYyLTIxLjMyOC0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU3LTIxLjMzNiwyMS4zMjgtMjEuMzM2YzExLjc3MywwLDIxLjMzNiw5LjU3OCwyMS4zMzYsMjEuMzM2VjQ2OS4zNDF6CgkJIE0zMTkuOTk4LDQ2OS4zNDFjMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzUsMC0yMS4zMTItOS41NjItMjEuMzEyLTIxLjMxMlYxOTEuOTk5CgkJYzAtMTEuNzU4LDkuNTYyLTIxLjMzNiwyMS4zMTItMjEuMzM2YzExLjc4MSwwLDIxLjM0NCw5LjU3OCwyMS4zNDQsMjEuMzM2VjQ2OS4zNDF6IE0zODMuOTk3LDQ2OS4zNDEKCQljMCwxMS43NS05LjU2MiwyMS4zMTItMjEuMzQ0LDIxLjMxMmMtMTEuNzQ5LDAtMjEuMzEyLTkuNTYyLTIxLjMxMi0yMS4zMTJWMTkxLjk5OWMwLTExLjc1OCw5LjU2Mi0yMS4zMzYsMjEuMzEyLTIxLjMzNgoJCWMxMS43ODEsMCwyMS4zNDQsOS41NzgsMjEuMzQ0LDIxLjMzNlY0NjkuMzQxeiBNNDQ3Ljk5Niw0NjkuMzQxYzAsMTEuNzUtOS41NjIsMjEuMzEyLTIxLjM0NCwyMS4zMTIKCQljLTExLjc0OSwwLTIxLjMxMi05LjU2Mi0yMS4zMTItMjEuMzEyVjE5MS45OTljMC0xMS43NTgsOS41NjItMjEuMzM2LDIxLjMxMi0yMS4zMzZjMTEuNzgxLDAsMjEuMzQ0LDkuNTc4LDIxLjM0NCwyMS4zMzZWNDY5LjM0MQoJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU2Ljg3MSwxMDMuNjcyYy0xLjMxMi00LjUzOS0wLjUtNy44NDQsMi42ODgtMTEuMDU1YzguNjU2LTguNjk1LDExLjUzMS0xOS45ODQsOC4wNjItMzEuODEyCgkJCWMtMi4zMTItNy45MzgtNi44MTItMTMuNTQ3LTcuMzc1LTE0LjI1Yy0wLjAzMSwwLTAuMDMxLTAuMDA4LTAuMDMxLTAuMDA4di0wLjAxNWMtMS45NjktMi4zNTktNC45MDYtMy44NjctOC4yMTktMy44NjcKCQkJYy01Ljg5LDAtMTAuNjU1LDQuNzgxLTEwLjY1NSwxMC42NzJjMCwyLjU4NiwwLjkwNiw0Ljk2MSwyLjQzOCw2LjgwNWMwLjAzMSwwLjAyMywyLjI4MSwyLjkzOCwzLjM3NSw2LjY1NgoJCQljMS4yNjYsNC4zNjcsMC40NjksNy41ODYtMi43MTksMTAuNzY2Yy04LjYyNSw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc4LDMxLjk5OGMyLjMyOCw4LjEwMiw2LjgyOCwxMy44MzYsNy4zMjgsMTQuNDY5di0wLjAwOAoJCQljMS45NjksMi40MjIsNC45NTMsMy45NzcsOC4zMTIsMy45NzdjNS44OTEsMCwxMC42NTYtNC43NzMsMTAuNjU2LTEwLjY2NGMwLTIuNTM5LTAuODc1LTQuODY3LTIuMzQ0LTYuNjk1CgkJCUMzNjAuMjc4LDExMC42MSwzNTcuOTY1LDEwNy41NTUsMzU2Ljg3MSwxMDMuNjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNjguNjU2LDk2LjYxYy0yLjQ2MS05LjgzNi0wLjQ5Mi0xOC4xOTUsNi0yNS41NDdjMTEuNDA2LTEyLjg5MSwxNS4wMzEtMjguNjk1LDEwLjUtNDUuNzI2CgkJCWMtMy4xODgtMTEuOTM4LTkuMzEyLTIwLjIyNy0xMC0yMS4xMzNWNC4yMmMtMS45NjktMi41NTUtNS4wMjMtNC4yMTktOC40OTItNC4yMTljLTUuODkzLDAtMTAuNjY2LDQuNzczLTEwLjY2NiwxMC42NjQKCQkJYzAsMi40MTQsMC44MDUsNC42MzMsMi4xNTYsNi40MTRoLTAuMDE2YzAuMDQ3LDAuMDYyLDQuNDkyLDYuMTA5LDYuNTQ3LDE0LjMyYzIuNDUzLDkuODI3LDAuNDg0LDE4LjE4Ny02LjAxNiwyNS41MzgKCQkJYy0xMS4zOSwxMi44OTEtMTUuMDE1LDI4LjY5Ni0xMC40ODMsNDUuNzI3YzMuMTcyLDExLjkzOCw5LjMwNSwyMC4yMjcsOS45ODQsMjEuMTMzbDAuMDE2LTAuMDE2CgkJCWMxLjk0NSwyLjU3LDUuMDE2LDQuMjE5LDguNDc3LDQuMjE5YzUuODk4LDAsMTAuNjgtNC43NzMsMTAuNjgtMTAuNjY0YzAtMi40MTQtMC44MTItNC42MzMtMi4xNTYtNi40MTQKCQkJQzI3NS4xNCwxMTAuODYsMjcwLjY5NSwxMDQuODEzLDI2OC42NTYsOTYuNjF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE4OS42NCwxMTAuNjQxYy0wLjAyMy0wLjAzMS0yLjMyOC0zLjA4Ni0zLjQ0NS02Ljk2OWMtMS4zMDUtNC41MzktMC41LTcuODQ0LDIuNjk1LTExLjA1NQoJCQljOC42NjQtOC42OTUsMTEuNTIzLTE5Ljk4NCw4LjA2Mi0zMS44MTJjLTIuMzItNy45MzgtNi43ODktMTMuNTMxLTcuMzkxLTE0LjI1YzAsMCwwLTAuMDA4LTAuMDA4LTAuMDA4bC0wLjAwOC0wLjAyM3YwLjAwOAoJCQljLTEuOTYxLTIuMzU5LTQuOTA2LTMuODY3LTguMjExLTMuODY3Yy01Ljg5MSwwLTEwLjY3Miw0Ljc4MS0xMC42NzIsMTAuNjcyYzAsMi41ODYsMC45MjIsNC45NjEsMi40NTMsNi44MDUKCQkJYzAuMDIzLDAuMDIzLDIuMjczLDIuOTM4LDMuMzU5LDYuNjU2YzEuMjgxLDQuMzY3LDAuNDY5LDcuNTg2LTIuNzAzLDEwLjc2NmMtOC42NCw4LjY3OC0xMS41MTUsMjAuMDQ1LTguMDc3LDMxLjk5OAoJCQljMi4zMjgsOC4xMDIsNi44MjgsMTMuODM2LDcuMzM2LDE0LjQ2OXYtMC4wMDhjMS45NjEsMi40MjIsNC45NDUsMy45NzcsOC4zMDUsMy45NzdjNS44OTEsMCwxMC42NjQtNC43NzMsMTAuNjY0LTEwLjY2NAoJCQljMC0yLjUzOS0wLjg5MS00Ljg2Ny0yLjM2Ny02LjY5NUgxODkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",qne="PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIC0xIDQ5NiA0OTUiIHdpZHRoPSI0OTZwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ4OCAzMjAuNWgtNDB2LTMyYzAtMi4xMjg5MDYtLjgzOTg0NC00LjE2MDE1Ni0yLjM0Mzc1LTUuNjU2MjVsLTEyMC0xMjBjLTEuNDk2MDk0LTEuNTAzOTA2LTMuNTI3MzQ0LTIuMzQzNzUtNS42NTYyNS0yLjM0Mzc1aC0xNnYtMTUyYzAtNC40MjU3ODEtMy41NzQyMTktOC04LThoLTk2Yy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djE1MmgtMjRjLTIuMTI4OTA2IDAtNC4xNjAxNTYuODM5ODQ0LTUuNjU2MjUgMi4zNDM3NWwtMTIwIDEyMGMtMS41MDM5MDYgMS40OTYwOTQtMi4zNDM3NSAzLjUyNzM0NC0yLjM0Mzc1IDUuNjU2MjV2MzJoLTMyYy00LjQyNTc4MSAwLTggMy41NzQyMTktOCA4djQ4YzAgNC40MjU3ODEgMy41NzQyMTkgOCA4IDhoNDgwYzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQ4YzAtNC40MjU3ODEtMy41NzQyMTktOC04LTh6bS0yODAtMzA0aDgwdjE5MmgtODB6bS0xNTIgMjc1LjMxMjUgMTE1LjMxMjUtMTE1LjMxMjVoMjAuNjg3NXY0MGMwIDQuNDI1NzgxIDMuNTc0MjE5IDggOCA4aDk2YzQuNDI1NzgxIDAgOC0zLjU3NDIxOSA4LTh2LTQwaDEyLjY4NzVsMTE1LjMxMjUgMTE1LjMxMjV2MjguNjg3NWgtMzc2em00MjQgNzYuNjg3NWgtNDY0di0zMmg0NjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNzkuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjI3LjMxMjUgNDQwLjVjLTIuMTM2NzE5LTIuMTQ0NTMxLTMuMzEyNS00Ljk3NjU2Mi0zLjMxMjUtOHMxLjE3NTc4MS01Ljg1NTQ2OSAzLjMxMjUtOGwxMC4zNDM3NS0xMC4zNDM3NS0xMS4zMTI1LTExLjMxMjUtMTAuMzQzNzUgMTAuMzQzNzVjLTUuMTYwMTU2IDUuMTYwMTU2LTggMTIuMDE1NjI1LTggMTkuMzEyNXMyLjgzOTg0NCAxNC4xNjAxNTYgOCAxOS4zMTI1bDQuNjg3NSA0LjY4NzVjMi4xMzY3MTkgMi4xNDQ1MzEgMy4zMTI1IDQuOTc2NTYyIDMuMzEyNSA4cy0xLjE3NTc4MSA1Ljg1NTQ2OS0zLjMxMjUgOGwtMTAuMzQzNzUgMTAuMzQzNzUgMTEuMzEyNSAxMS4zMTI1IDEwLjM0Mzc1LTEwLjM0Mzc1YzUuMTYwMTU2LTUuMTYwMTU2IDgtMTIuMDE1NjI1IDgtMTkuMzEyNXMtMi44Mzk4NDQtMTQuMTYwMTU2LTgtMTkuMzEyNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3NS4zMTI1IDQ0MC41Yy0yLjEzNjcxOS0yLjE0NDUzMS0zLjMxMjUtNC45NzY1NjItMy4zMTI1LThzMS4xNzU3ODEtNS44NTU0NjkgMy4zMTI1LThsMTAuMzQzNzUtMTAuMzQzNzUtMTEuMzEyNS0xMS4zMTI1LTEwLjM0Mzc1IDEwLjM0Mzc1Yy01LjE2MDE1NiA1LjE2MDE1Ni04IDEyLjAxNTYyNS04IDE5LjMxMjVzMi44Mzk4NDQgMTQuMTYwMTU2IDggMTkuMzEyNWw0LjY4NzUgNC42ODc1YzIuMTM2NzE5IDIuMTQ0NTMxIDMuMzEyNSA0Ljk3NjU2MiAzLjMxMjUgOHMtMS4xNzU3ODEgNS44NTU0NjktMy4zMTI1IDhsLTEwLjM0Mzc1IDEwLjM0Mzc1IDExLjMxMjUgMTEuMzEyNSAxMC4zNDM3NS0xMC4zNDM3NWM1LjE2MDE1Ni01LjE2MDE1NiA4LTEyLjAxNTYyNSA4LTE5LjMxMjVzLTIuODM5ODQ0LTE0LjE2MDE1Ni04LTE5LjMxMjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjMuMzEyNSA0NDAuNWMtMi4xMzY3MTktMi4xNDQ1MzEtMy4zMTI1LTQuOTc2NTYyLTMuMzEyNS04czEuMTc1NzgxLTUuODU1NDY5IDMuMzEyNS04bDEwLjM0Mzc1LTEwLjM0Mzc1LTExLjMxMjUtMTEuMzEyNS0xMC4zNDM3NSAxMC4zNDM3NWMtNS4xNjAxNTYgNS4xNjAxNTYtOCAxMi4wMTU2MjUtOCAxOS4zMTI1czIuODM5ODQ0IDE0LjE2MDE1NiA4IDE5LjMxMjVsNC42ODc1IDQuNjg3NWMyLjEzNjcxOSAyLjE0NDUzMSAzLjMxMjUgNC45NzY1NjIgMy4zMTI1IDhzLTEuMTc1NzgxIDUuODU1NDY5LTMuMzEyNSA4bC0xMC4zNDM3NSAxMC4zNDM3NSAxMS4zMTI1IDExLjMxMjUgMTAuMzQzNzUtMTAuMzQzNzVjNS4xNjAxNTYtNS4xNjAxNTYgOC0xMi4wMTU2MjUgOC0xOS4zMTI1cy0yLjgzOTg0NC0xNC4xNjAxNTYtOC0xOS4zMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI4OC41aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAyODguNWgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAgMjg4LjVoMTZ2MTZoLTE2em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",eae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDUgNTEyLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0zMjcuMTU5LDIuNzY2Yy00LjA2My0zLjY4OC0xMC4yNS0zLjY4OC0xNC4zMTMsMGMtNC42NDIsNC4xODYtMTEwLjg4OSwxMDEuMjkyLTE2MC4yMjgsMjEzLjgzOQoJCQkJYy01LjMxOC0xLjg2Ny0xMS40NC0zLjI2Ni0xOS4zNTUtMy4yNjZjLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWMxMiwwLDE3LjU2MywzLjg2NSwyNC42MDQsOC43NgoJCQkJYzguMDUyLDUuNjA0LDE4LjA4MywxMi41NzMsMzYuNzcxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdjMC01Ljg5Ni00Ljc3MS0xMC42NjctMTAuNjY3LTEwLjY2N2MtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzMKCQkJCWMtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTExLjIwOCwwLTE2LjgyMy0zLjQxOS0yMy4yNDItNy44NTRjNDAuMTIxLTkyLjY2MSwxMjMuNjYxLTE3Ny40NjYsMTQ4LjYwNy0yMDEuNDkKCQkJCWMzMy4yMTksMzIuMDEsMTcwLjY2NywxNzEuODY1LDE3MC42NjcsMjk0LjY3N2MwLDk0LjEwNC03Ni41NjMsMTcwLjY2Ny0xNzAuNjY3LDE3MC42NjdjLTQyLjQ3NywwLTgyLjY2OS0xNS44MjItMTEzLjc4LTQzLjc1OAoJCQkJYzExLjU0Mi0yLjEzOCwxOC45OTQtNy4xNzcsMjUuMTg2LTExLjQ4MmM3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NmM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzYKCQkJCWMtMTIsMC0xNy41NjMtMy44NjUtMjQuNTk0LTguNzZjLTguMDYzLTUuNjA0LTE4LjA5NC0xMi41NzMtMzYuNzgxLTEyLjU3M2MtMTguNjc3LDAtMjguNjk4LDYuOTY5LTM2Ljc1LDEyLjU3MwoJCQkJYy03LjAzMSw0Ljg5Ni0xMi41ODMsOC43Ni0yNC41NzMsOC43NmMtMTEuOTY5LDAtMTcuNTIxLTMuODY1LTI0LjU0Mi04Ljc1Yy04LjA0Mi01LjYwNC0xOC4wNjMtMTIuNTgzLTM2LjcyOS0xMi41ODMKCQkJCWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzUKCQkJCWM4LjA0Miw1LjYwNCwxOC4wNjMsMTIuNTgzLDM2LjcyOSwxMi41ODNjMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NQoJCQkJYzEyLDAsMTcuNTYzLDMuODY1LDI0LjYwNCw4Ljc2YzQuMzQ1LDMuMDIzLDkuNDE0LDYuMzU1LDE1Ljk2MSw4Ljg2NWMzNi42LDQyLjk5Niw4OS42NTUsNjcuNzA4LDE0Ni4xNzQsNjcuNzA4CgkJCQljMTA1Ljg2NSwwLDE5Mi04Ni4xMzUsMTkyLTE5MkM1MTIuMDAzLDE3MS42NDEsMzM0LjcwMSw5LjU4OSwzMjcuMTU5LDIuNzY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMC42NjksMzYyLjY3MmMxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzUKCQkJCWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzQuNzczLDM2Mi42NzIsMTAuNjY5LDM2Mi42NzJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzMy4yNjMsMzQxLjMzOWMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N3M0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMiwwLDE3LjU2MywzLjg2NSwyNC41OTQsOC43NgoJCQkJYzguMDYzLDUuNjA0LDE4LjA5NCwxMi41NzMsMzYuNzgxLDEyLjU3M2MxOC42NzcsMCwyOC43MDgtNi45NjksMzYuNzcxLTEyLjU3M2M3LjAzMS00Ljg5NiwxMi41OTQtOC43NiwyNC41OTQtOC43NgoJCQkJYzEyLjE5OCwwLDE4LjQwNiwzLjk2OSwyNi4yNSw4Ljk5YzkuMDUyLDUuNzgxLDE5LjMxMywxMi4zNDQsMzcuNzUsMTIuMzQ0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjcKCQkJCWMwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xMi4xOTgsMC0xOC40MDYtMy45NjktMjYuMjUtOC45OWMtOS4wNTItNS43ODEtMTkuMzEzLTEyLjM0NC0zNy43NS0xMi4zNDQKCQkJCWMtMTguNjg3LDAtMjguNzE5LDYuOTY5LTM2Ljc4MSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU5NCw4Ljc2LTI0LjU4Myw4Ljc2Yy0xMiwwLTE3LjU2My0zLjg2NS0yNC42MDQtOC43NgoJCQkJQzE2MS45ODIsMzQ4LjMwNywxNTEuOTUxLDM0MS4zMzksMTMzLjI2MywzNDEuMzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzMuMjYzLDI3Ny4zMzljLTE4LjY3NywwLTI4LjY5OCw2Ljk2OS0zNi43NSwxMi41NzNjLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2CgkJCQljLTExLjk2OSwwLTE3LjUyMS0zLjg2NS0yNC41NDItOC43NWMtOC4wNDItNS42MDQtMTguMDYzLTEyLjU4My0zNi43MjktMTIuNTgzYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3CgkJCQljMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2MxMS45NjksMCwxNy41MjEsMy44NjUsMjQuNTQyLDguNzVjOC4wNDIsNS42MDQsMTguMDYzLDEyLjU4MywzNi43MjksMTIuNTgzCgkJCQljMTguNjc3LDAsMjguNzA4LTYuOTc5LDM2Ljc2LTEyLjU4M2M3LjAzMS00Ljg4NSwxMi41ODMtOC43NSwyNC41NjMtOC43NWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3CgkJCQlDMTQzLjkzLDI4Mi4xMDksMTM5LjE1OSwyNzcuMzM5LDEzMy4yNjMsMjc3LjMzOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjMxLjQwOSwzMDcuNDMyYzcuMDMxLTQuODk2LDEyLjU5NC04Ljc2LDI0LjU5NC04Ljc2YzExLjk2OSwwLDE3LjUyMSwzLjg2NSwyNC41NDIsOC43NQoJCQkJYzguMDQyLDUuNjA0LDE4LjA2MywxMi41ODMsMzYuNzI5LDEyLjU4M2MxOC42NzcsMCwyOC43MDgtNi45NzksMzYuNzYtMTIuNTgzYzcuMDMxLTQuODg1LDEyLjU4My04Ljc1LDI0LjU2My04Ljc1CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N2MwLTUuODk2LTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3Yy0xOC42NzcsMC0yOC42OTgsNi45NjktMzYuNzUsMTIuNTczCgkJCQljLTcuMDMxLDQuODk2LTEyLjU4Myw4Ljc2LTI0LjU3Myw4Ljc2Yy0xMS45NjksMC0xNy41MjEtMy44NjUtMjQuNTQyLTguNzVjLTguMDQyLTUuNjA0LTE4LjA2My0xMi41ODMtMzYuNzI5LTEyLjU4MwoJCQkJYy0xOC42ODcsMC0yOC43MTksNi45NjktMzYuNzgxLDEyLjU3M2MtNy4wMzEsNC44OTYtMTIuNTk0LDguNzYtMjQuNTgzLDguNzZjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjcKCQkJCXM0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N0MyMTMuMzE1LDMyMC4wMDUsMjIzLjM0NiwzMTMuMDM2LDIzMS40MDksMzA3LjQzMnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",tae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTIgMTYzLjg3YzAtMTMuOS01LjQxMi0yNi45NjEtMTUuMjMzLTM2Ljc3LTkuODE1LTkuODI4LTIyLjg3Ni0xNS4yNC0zNi43NzYtMTUuMjRoLTgwLjk3Yy0yNi43MDUgMC00OC40My0yMS43MjYtNDguNDMtNDguNDMgMC0xMi45MzggNS4wMzctMjUuMTAxIDE0LjE4NC0zNC4yNDcgOS4xNDQtOS4xNDYgMjEuMzA3LTE0LjE4MyAzNC4yNDUtMTQuMTgzaDEyNS40OGM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMTI1LjQ4Yy0xNi45NDUgMC0zMi44NzQgNi41OTctNDQuODUzIDE4LjU3Ny0xMS45NzkgMTEuOTc5LTE4LjU3NyAyNy45MDgtMTguNTc3IDQ0Ljg1MyAwIDM0Ljk3NSAyOC40NTUgNjMuNDMgNjMuNDMgNjMuNDNoODAuOTdjOS44OSAwIDE5LjE4MiAzLjg1IDI2LjE2OSAxMC44NDcgNi45OTEgNi45ODIgMTAuODQxIDE2LjI3MyAxMC44NDEgMjYuMTYzIDAgOC42MzctMy4wMzggMTcuMDQ0LTguNTU3IDIzLjY3NGwtMjIuMzA1IDI2LjgyMmMtNy44ODQtMi43MjUtMTYuOTg5LS45NzItMjMuMjgyIDUuMzExbC05LjA1OCA5LjA1OGMtMjAuMzItLjQyLTQzLjA5OCAzLjk0LTYyLjgyMSA3LjQyNy00LjA3OS43MjEtNi44MDEgNC42MTMtNi4wNzkgOC42OTEuNzIxIDQuMDc5IDQuNjEzIDYuNzk5IDguNjkxIDYuMDc5IDE4Ljk0Mi0zLjM1IDM4LjM5Mi01Ljc2OCA1Ny44MDktNy4xODUgNy42ODEtLjU2NiAxNC44MzMgNC4zOTMgMTYuOTg1IDExLjc4IDEuODI3IDYuMjcgNDcuMDI3IDE2MC4xNjcgNDguNTMzIDE2Ni41NzUuNDk4IDIuMTE5LS43MzggMy42Ni0yLjkxMiAzLjY2LTIyLjc4NiAwLTQxLjA0MiAxNS42Ni00OC40NjQgMzYuNDg4aC0zMjAuMzcxYy00LjE0MiAwLTcuNSAzLjM1Ny03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDMyNy43ODdjNS40NDUgMCA5Ljg3NSA0LjQzIDkuODc1IDkuODc1cy00LjQzMSA5Ljg3NS05Ljg3NiA5Ljg3NWgtNDM2LjkwNmMzLjI2NS0xMS4zOTEgMTMuNzc1LTE5Ljc1IDI2LjItMTkuNzVoNTIuOTE5YzQuMTQyIDAgNy41LTMuMzU3IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC00NC45NDRjNjIuNDYyLTExMS41OTggMTcxLjkwMy0xNzcuMDI3IDI5NC43NzgtMjA1LjQ4NiA0LjAzNS0uOTM1IDYuNTQ5LTQuOTYzIDUuNjE0LTguOTk5LS45MzQtNC4wMzUtNC45NjQtNi41NDktOC45OTktNS42MTQtNzEuNjMyIDE2LjU5OS0xNDMuNTkzIDQ3LjA1MS0yMDEuNDczIDkyLjYwNmwtMTAuMDcxLTEwLjA3Yy04LjYzNS04Ljc1Mi0yMy4xNTktOC42NzgtMzEuODI2LS4wMS04LjYzMSA4LjYzMi04LjcyOCAyMy4xNjYgMCAzMS44MDdsOC4wNTEgOC4wNTFjLTI5LjQ2NyAyOC45NTktNTQuMTAyIDYyLjMyLTc0LjA0MiA5OC45Mi0xOC40ODcgNC41MDItMzIuMjU2IDIxLjE5MS0zMi4yNTYgNDEuMDQ1IDAgNC4xNDMgMy4zNTggNy41IDcuNSA3LjVoNDQ1LjQ1NWMxMy43MTYgMCAyNC44NzUtMTEuMTU5IDI0Ljg3NS0yNC44NzUgMC0xMC43NS02Ljg1NS0xOS45MjctMTYuNDI0LTIzLjM5NSA1LjI2My0xMy41NzMgMTcuOTAzLTIyLjk2OSAzMi41OTgtMjIuOTY5IDExLjQ4MyAwIDIwLjMwMi0xMS40MDEgMTcuNDExLTIyLjUxLS4wMTgtLjA3MS0uMDM4LS4xNDItLjA1OC0uMjExbC00NS44NTctMTU3LjM5MSA5LjE2My05LjE1NmM3LjM1OS03LjMwMyA4LjY0NC0xOS4wOTMgMy4xOTctMjcuNzYybDIyLjExNS0yNi41OTNjNy43NTQtOS4zMTggMTIuMDI1LTIxLjEzMiAxMi4wMjUtMzMuMjY4em0tNDAzLjE0NiAxNzEuNDEzYzEuNDItMS40MjEgMy4zMDUtMi4yMDMgNS4zMDctMi4yMDMgMS45OTkgMCAzLjg3Ny43NzkgNS4yOTYgMi4yMDRsOS4wMTQgOS4wMTRjLTMuODI1IDMuMjQzLTcuNTgyIDYuNTUxLTExLjI3NCA5LjkyMmwtOC4zNDQtOC4zNDRjLTIuOTItMi45Mi0yLjkyLTcuNjcyLjAwMS0xMC41OTN6bTM1NS4yMDUtOTQuMzk4LTMuOTg2IDMuOTgzYy0yLjQ5Ni00LjQ2MS02LjAzNy04LjIwMy0xMC4yMzMtMTAuOTYxbDMuNjE5LTMuNjE5YzIuOTI2LTIuOTIgNy42OC0yLjkyMiAxMC41OTgtLjAwNCAxLjQyMSAxLjQyMSAyLjIwMyAzLjMwMiAyLjIwMyA1LjI5NyAwIDItLjc4MiAzLjg4NS0yLjIwMSA1LjMwNHptLTIxNS43NjUgOTQuNzY0Yy0xMy44MjQgNy42NTMtMjIuNDEyIDIyLjIzNS0yMi40MTIgMzguMDU2IDAgMTEuOTg3IDUuMDE5IDIzLjU2MyAxMy43NzEgMzEuNzU4IDguMDY2IDcuNTUzIDE4Ljc4OCAxMS43NTYgMjkuNzg2IDExLjc1NS45NCAwIDE1MS4wOC05LjgzOCAxNTEuMDgtOS44MzggNi45MTEtLjQ1NCAxMy4yMjUtMy45MTYgMTcuMzIyLTkuNDk4IDQuMDk2LTUuNTc5IDUuNTA3LTEyLjYzNyAzLjg3Mi0xOS4zNjJsLTE5LjUzOC04MC4zMjNjLTMuMDE3LTEyLjQwNC0xNS4xODMtMjAuMDEzLTI3LjY5My0xNy4zMjktMzAuMDk0IDYuNDY2LTU5Ljc4NyAxNS41OTQtODguMjU2IDI3LjEzLTE5Ljc2OCA4LjAxLTM5LjI1OSAxNy4zMTMtNTcuOTMyIDI3LjY1MXptMTA3LjI2NiA2MC45NjktNjcuNDMgNC40MzN2LTE3LjY4MWMwLS4yMzguMjAyLS40NC40NC0uNDRoNjYuNTVjLjI0MyAwIC40NC4xOTcuNDQuNDR6bTQyLjA3MS0xMDEuMDg1Yy42MTMtLjEzMiAxLjIyMy0uMTk1IDEuODIzLS4xOTUgMy44MTQgMCA3LjIxIDIuNTU5IDguMTQ1IDYuNDAzbDE5LjUzOCA4MC4zMjNjLjU5NSAyLjQ0Ni4xMDIgNC45MTEtMS4zODggNi45NC0xLjQ5MiAyLjAzMi0zLjY5OSAzLjI0Mi02LjIxNSAzLjQwOGwtNDguOTc0IDMuMjE5di0xMi4yNjFjMC04LjUxNC02LjkyNi0xNS40NC0xNS40NC0xNS40NGgtNjYuNTVjLTguNTE0IDAtMTUuNDQgNi45MjctMTUuNDQgMTUuNDR2MTguNjY3bC0xLjg1LjEyMmMtNy45NTcuNTE4LTE1LjU1Mi0yLjE5Mi0yMS4zNzUtNy42NDUtNS44MTktNS40NDktOS4wMjQtMTIuODM5LTkuMDI0LTIwLjgwOSAwLTEwLjM2NyA1LjYyNC0xOS45MjEgMTQuNjc3LTI0LjkzMyAxOC4xNDgtMTAuMDQ3IDM3LjA5LTE5LjA4OCA1Ni4zMDEtMjYuODczIDI3LjY2Ni0xMS4yMTEgNTYuNTI1LTIwLjA4MyA4NS43NzItMjYuMzY2eiIvPgogICAgPC9nPgo8L3N2Zz4=",sae="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQzNS4yIDMyNC4yNjdoLTEwLjkwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY3Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTIzMi43NzJjLTE0LjEzOCAwLTI1LjYtMTEuNDYyLTI1LjYtMjUuNnMxMS40NjItMjUuNiAyNS42LTI1LjZoMzYuNTA2YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2g2Mi4xMDZjMTQuMTM4IDAgMjUuNi0xMS40NjIgMjUuNi0yNS42cy0xMS40NjItMjUuNi0yNS42LTI1LjZoLTYyLjEwNmMtMy4wMjQtNS4yNjMtOC42MjQtOC41MTUtMTQuNjk0LTguNTMzdi0xNy4wNjdjMC05LjQyNi03LjY0MS0xNy4wNjctMTcuMDY3LTE3LjA2N2gtMTcuMDY2Yy05LjQyNiAwLTE3LjA2NyA3LjY0MS0xNy4wNjcgMTcuMDY3djE3LjA2N2MtNi4wNy4wMTgtMTEuNjcgMy4yNy0xNC42OTQgOC41MzNoLTM2LjUwNmMtNDIuNDE1IDAtNzYuOCAzNC4zODUtNzYuOCA3Ni44czM0LjM4NSA3Ni44IDc2LjggNzYuOGgyMzIuNzcyYzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gxMC45MDdjMTQuMTM4IDAgMjUuNiAxMS40NjIgMjUuNiAyNS42cy0xMS40NjIgMjUuNi0yNS42IDI1LjZoLTMwOS41NzJjLTMuMDI0LTUuMjYzLTguNjI0LTguNTE1LTE0LjY5NC04LjUzM3YtMTcuMDY3YzAtOS40MjYtNy42NDEtMTcuMDY3LTE3LjA2Ny0xNy4wNjdoLTE3LjA2N2MtOS40MjYgMC0xNy4wNjcgNy42NDEtMTcuMDY3IDE3LjA2N3YxNy4wNjdjLTYuMDcuMDE4LTExLjY3IDMuMjctMTQuNjk0IDguNTMzaC0xOS40MzljLTE0LjEzOCAwLTI1LjYgMTEuNDYyLTI1LjYgMjUuNnMxMS40NjIgMjUuNiAyNS42IDI1LjZoMTkuNDM5YzMuMDI0IDUuMjYzIDguNjI0IDguNTE1IDE0LjY5NCA4LjUzM2g1MS4yYzYuMDctLjAxOCAxMS42Ny0zLjI3IDE0LjY5NC04LjUzM2gzMDkuNTczYzQyLjQxNSAwIDc2LjgtMzQuMzg1IDc2LjgtNzYuOHMtMzQuMzg1LTc2LjgtNzYuOC03Ni44em0tNTkuNzMzLTI1LjZoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNzYuOC01MS4yYzAgNC43MTMtMy44MjEgOC41MzMtOC41MzMgOC41MzNoLTU5LjczNHYtMTcuMDY3aDU5LjczM2M0LjcxMyAwIDguNTM0IDMuODIxIDguNTM0IDguNTM0em0tMTE5LjQ2Ny01MS4yaDE3LjA2N3YxNy4wNjdoLTE3LjA2N3ptLTguNTMzIDM0LjEzM2g0Mi42Njd2MzQuMTMzaC01MS4ydi0zNC4xMzN6bS0xMTkuNDY3IDY4LjI2N2MuMDM4LTMyLjk3NCAyNi43NTktNTkuNjk2IDU5LjczMy01OS43MzNoMzQuMTMzdjE3LjA2NmgtMzQuMTMzYy0yMy41NjQgMC00Mi42NjcgMTkuMTAzLTQyLjY2NyA0Mi42NjdzMTkuMTAzIDQyLjY2NyA0Mi42NjcgNDIuNjY3aDIzMC40djE3LjA2NmgtMjMwLjRjLTMyLjk3NC0uMDM4LTU5LjY5NS0yNi43NTktNTkuNzMzLTU5LjczM3ptMzA3LjIgNjguMjY2di0zNC4xMzNoNTEuMnYzNC4xMzN6bS0yODEuNiAzNC4xMzRoMTcuMDY3djE3LjA2N2gtMTcuMDY3em0tNTkuNzMzIDUxLjJjMC00LjcxMyAzLjgyMS04LjUzMyA4LjUzMy04LjUzM2gxNy4wNjd2MTcuMDY2aC0xNy4wNjdjLTQuNzEzIDAtOC41MzMtMy44Mi04LjUzMy04LjUzM3ptNDIuNjY2IDE3LjA2NnYtMzQuMTMzaDUxLjJ2MzQuMTMzem0zNzUuNDY3LTguNTMzaC0zMDcuMnYtMTcuMDY3aDMwNy4yYzIzLjU2NCAwIDQyLjY2Ny0xOS4xMDMgNDIuNjY3LTQyLjY2N3MtMTkuMTAzLTQyLjY2Ny00Mi42NjctNDIuNjY3aC04LjUzM3YtMTcuMDY3aDguNTMzYzMyLjk5IDAgNTkuNzMzIDI2Ljc0NCA1OS43MzMgNTkuNzMzcy0yNi43NDMgNTkuNzM1LTU5LjczMyA1OS43MzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4Ny43MzMgMTYyLjEzM2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyMS04LjUzMy04LjUzMy04LjUzMy00LjcxMyAwLTguNTMzIDMuODIxLTguNTMzIDguNTMzdjE3LjA2N2MwIDQuNzEzIDMuODIxIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xODcuNzMzIDExMC45MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTg3LjczMyA1OS43MzNjNC43MTMgMCA4LjUzMy0zLjgyMSA4LjUzMy04LjUzM3YtMTcuMDY3YzAtNC43MTMtMy44MjEtOC41MzMtOC41MzMtOC41MzMtNC43MTMgMC04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMyAzLjgyMSA4LjUzMyA4LjUzMyA4LjUzM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTU0Ljc0MyAxNTcuODY3YzEuNTEzIDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxMy0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjkuMTQzIDExMy40OTNjMS41MTMgMi42NjIgNC4zMzcgNC4zMDkgNy4zOTkgNC4zMTZzNS44OTMtMS42MjggNy40MTgtNC4yODMgMS41MTEtNS45MjQtLjAzOC04LjU2NmwtOC41MzMtMTQuNzhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMy41NDMgNjkuMTg4YzIuMzcyIDQuMDQ3IDcuNTY2IDUuNDIgMTEuNjI4IDMuMDc0IDQuMDYyLTIuMzQ1IDUuNDctNy41MyAzLjE1MS0xMS42MDhsLTguNTMzLTE0Ljc4OGMtMS41MTMtMi42NjItNC4zMzctNC4zMDktNy4zOTktNC4zMTZzLTUuODkzIDEuNjI4LTcuNDE4IDQuMjgzLTEuNTExIDUuOTI0LjAzOCA4LjU2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjA5LjA2NyAxNjAuOTljNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzhjMS41NDktMi42NDIgMS41NjMtNS45MTEuMDM4LTguNTY2cy00LjM1Ni00LjI5LTcuNDE4LTQuMjgzLTUuODg2IDEuNjU0LTcuMzk5IDQuMzE2bC04LjUzMyAxNC43OGMtMi4zNTggNC4wODEtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0LjY2NyAxMTYuNjUxYzQuMDgxIDIuMzU2IDkuMy45NTggMTEuNjU3LTMuMTIzbDguNTMzLTE0Ljc4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzhjLTIuMzU4IDQuMDgtLjk2IDkuMjk5IDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjYwLjI2NyA3Mi4zMTFjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzEuNTQ5LTIuNjQyIDEuNTYzLTUuOTExLjAzOC04LjU2NnMtNC4zNTYtNC4yOS03LjQxOC00LjI4My01Ljg4NiAxLjY1NC03LjM5OSA0LjMxNmwtOC41MzMgMTQuNzg4Yy0yLjM1OCA0LjA4MS0uOTYgOS4zIDMuMTIyIDExLjY1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzg0IDI3My4wNjdjNC43MTMgMCA4LjUzMy0zLjgyIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMjIxLjg2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMTcwLjY2N2M0LjcxMyAwIDguNTMzLTMuODIxIDguNTMzLTguNTMzdi0xNy4wNjdjMC00LjcxMy0zLjgyLTguNTMzLTguNTMzLTguNTMzcy04LjUzMyAzLjgyMS04LjUzMyA4LjUzM3YxNy4wNjdjMCA0LjcxMiAzLjgyIDguNTMzIDguNTMzIDguNTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNTEuMDEgMjY4LjhjMi4zNzIgNC4wNDcgNy41NjYgNS40MiAxMS42MjggMy4wNzQgNC4wNjItMi4zNDUgNS40Ny03LjUzIDMuMTUxLTExLjYwOGwtOC41MzMtMTQuNzhjLTEuNTE0LTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyNS40MSAyMjQuNDI3YzEuNTE0IDIuNjYyIDQuMzM3IDQuMzA5IDcuMzk5IDQuMzE2czUuODkzLTEuNjI4IDcuNDE4LTQuMjgzIDEuNTExLTUuOTI0LS4wMzgtOC41NjZsLTguNTMzLTE0Ljc4Yy0xLjUxNC0yLjY2Mi00LjMzNy00LjMwOS03LjM5OS00LjMxNnMtNS44OTMgMS42MjgtNy40MTggNC4yODMtMS41MTEgNS45MjQuMDM4IDguNTY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOTkuODEgMTgwLjEyMmMyLjM3MiA0LjA0NyA3LjU2NiA1LjQyIDExLjYyOCAzLjA3NCA0LjA2Mi0yLjM0NSA1LjQ3LTcuNTMgMy4xNTEtMTEuNjA4bC04LjUzMy0xNC43ODhjLTEuNTEzLTIuNjYyLTQuMzM3LTQuMzA5LTcuMzk5LTQuMzE2cy01Ljg5MyAxLjYyOC03LjQxOCA0LjI4My0xLjUxMSA1LjkyNC4wMzggOC41NjZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNS4zMzMgMjcxLjkyM2M0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4LTQuMDYyLTIuMzQ1LTkuMjU2LS45NzItMTEuNjI4IDMuMDc0bC04LjUzMyAxNC43OGMtMi4zNTcgNC4wODItLjk1OSA5LjMwMSAzLjEyMiAxMS42NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzMC45MzMgMjI3LjU4NGM0LjA4MSAyLjM1NiA5LjMuOTU4IDExLjY1Ny0zLjEyM2w4LjUzMy0xNC43OGMyLjMxOC00LjA3OC45MTEtOS4yNjItMy4xNTEtMTEuNjA4cy05LjI1Ni0uOTcyLTExLjYyOCAzLjA3NGwtOC41MzMgMTQuNzhjLTIuMzU3IDQuMDgyLS45NTkgOS4zMDEgMy4xMjIgMTEuNjU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NTYuNTMzIDE4My4yNDVjNC4wODEgMi4zNTYgOS4zLjk1OCAxMS42NTctMy4xMjNsOC41MzMtMTQuNzg4YzIuMzE4LTQuMDc4LjkxMS05LjI2Mi0zLjE1MS0xMS42MDgtNC4wNjItMi4zNDUtOS4yNTYtLjk3Mi0xMS42MjggMy4wNzRsLTguNTMzIDE0Ljc4OGMtMi4zNTcgNC4wODItLjk1OSA5LjMgMy4xMjIgMTEuNjU3eiIvPgogICAgPC9nPgo8L3N2Zz4=",iae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4wMDIgNTEyLjAwMiIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM5OC41ODkgMjQ2LjM0MmMtNjQuNjY2LTE3LjMyOC0xMTUuNjAxLTY4LjI2NC0xMzIuOTI5LTEzMi45MjktMS4xNzEtNC4zNzItNS4xMzMtNy40MTItOS42NTktNy40MTJzLTguNDg4IDMuMDQtOS42NTkgNy40MTJjLTE3LjMyOCA2NC42NjYtNjguMjYzIDExNS42MDEtMTMyLjkyOSAxMzIuOTI5LTQuMzcyIDEuMTcxLTcuNDEyIDUuMTMzLTcuNDEyIDkuNjU5czMuMDQgOC40ODggNy40MTIgOS42NTljNjQuNjY2IDE3LjMyOSAxMTUuNjAxIDY4LjI2NCAxMzIuOTI5IDEzMi45MjkgMS4xNzEgNC4zNzIgNS4xMzMgNy40MTIgOS42NTkgNy40MTJzOC40ODgtMy4wNCA5LjY1OS03LjQxMmMxNy4zMjgtNjQuNjY1IDY4LjI2NC0xMTUuNjAxIDEzMi45MjktMTMyLjkyOSA0LjM3Mi0xLjE3MSA3LjQxMi01LjEzMyA3LjQxMi05LjY1OXMtMy4wNC04LjQ4OC03LjQxMi05LjY1OXptLTE0Mi41ODggMTE5LjE3NmMtMjEuMDM5LTQ5LjA5Ni02MC40Mi04OC40NzgtMTA5LjUxNi0xMDkuNTE3IDQ5LjA5Ni0yMS4wMzkgODguNDc4LTYwLjQyIDEwOS41MTYtMTA5LjUxNyAyMS4wMzkgNDkuMDk3IDYwLjQyIDg4LjQ3OCAxMDkuNTE3IDEwOS41MTctNDkuMDk3IDIxLjAzOS04OC40NzggNjAuNDItMTA5LjUxNyAxMDkuNTE3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuMDM2IDIwMC40NThjLTEuODg2LTIuNTQ1LTQuODY3LTQuMDQ3LTguMDM1LTQuMDQ3cy02LjE0OSAxLjUwMS04LjAzNSA0LjA0N2MtMTMuNDE2IDE4LjEwNy0yOS40IDM0LjA5MS00Ny41MDggNDcuNTA4LTIuNTQ1IDEuODg2LTQuMDQ3IDQuODY3LTQuMDQ3IDguMDM1czEuNTAxIDYuMTQ5IDQuMDQ3IDguMDM1YzE4LjEwOCAxMy40MTYgMzQuMDkyIDI5LjQgNDcuNTA4IDQ3LjUwOCAxLjg4NiAyLjU0NSA0Ljg2NyA0LjA0NyA4LjAzNSA0LjA0N3M2LjE0OS0xLjUwMSA4LjAzNS00LjA0N2MxMy40MTYtMTguMTA4IDI5LjQtMzQuMDkyIDQ3LjUwOC00Ny41MDggMi41NDUtMS44ODYgNC4wNDctNC44NjcgNC4wNDctOC4wMzVzLTEuNTAxLTYuMTQ5LTQuMDQ3LTguMDM1Yy0xOC4xMDgtMTMuNDE3LTM0LjA5Mi0yOS40MDEtNDcuNTA4LTQ3LjUwOHptLTguMDM1IDg4LjkwOWMtMTAuMDQtMTIuMTYyLTIxLjIwNC0yMy4zMjYtMzMuMzY2LTMzLjM2NiAxMi4xNjMtMTAuMDQgMjMuMzI2LTIxLjIwNCAzMy4zNjYtMzMuMzY2IDEwLjA0IDEyLjE2MyAyMS4yMDQgMjMuMzI2IDMzLjM2NiAzMy4zNjYtMTIuMTYyIDEwLjA0LTIzLjMyNiAyMS4yMDQtMzMuMzY2IDMzLjM2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU2LjAwMSA3NS45OTljNS41MjMgMCAxMC00LjQ3NyAxMC0xMHYtNTUuOTk5YzAtNS41MjMtNC40NzctMTAtMTAtMTBzLTEwIDQuNDc3LTEwIDEwdjU1Ljk5OWMwIDUuNTIzIDQuNDc3IDEwIDEwIDEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTQuNTc5IDEyOC43MjFjMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWMzLjkwNS0zLjkwNSAzLjkwNS0xMC4yMzcgMC0xNC4xNDNsLTM5LjU5Ny0zOS41OThjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDMgMHMtMy45MDUgMTAuMjM3IDAgMTQuMTQzeiIvPgogICAgICAgIDxwYXRoIGQ9Im03NiAyNTYuMDAxYzAtNS41MjMtNC40NzctMTAtMTAtMTBoLTU2Yy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwczQuNDc3IDEwIDEwIDEwaDU2YzUuNTIyIDAgMTAtNC40NzcgMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNC41NzkgMzgzLjI4MS0zOS41OTggMzkuNTk4Yy0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDMgMS45NTMgMS45NTMgNC41MTIgMi45MjkgNy4wNzEgMi45MjlzNS4xMTktLjk3NiA3LjA3MS0yLjkyOWwzOS41OTgtMzkuNTk4YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3MtMTAuMjM3LTMuOTA2LTE0LjE0MiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMDAxIDQzNi4wMDNjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB2NTUuOTk5YzAgNS41MjMgNC40NzcgMTAgMTAgMTBzMTAtNC40NzcgMTAtMTB2LTU1Ljk5OWMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTcuNDI0IDM4My4yODFjLTMuOTA1LTMuOTA0LTEwLjIzNi0zLjkwNC0xNC4xNDMgMC0zLjkwNSAzLjkwNS0zLjkwNSAxMC4yMzcgMCAxNC4xNDNsMzkuNTk3IDM5LjU5OGMxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MSAyLjkyOXM1LjExOS0uOTc3IDcuMDcxLTIuOTI5YzMuOTA1LTMuOTA1IDMuOTA1LTEwLjIzNyAwLTE0LjE0M3oiLz4KICAgICAgICA8cGF0aCBkPSJtNTAyLjAwMiAyNDYuMDAxaC01NS45OTljLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoNTUuOTk5YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTAuMzUzIDEzMS42NDljMi41NTkgMCA1LjExOS0uOTc2IDcuMDcxLTIuOTI5bDM5LjU5Ny0zOS41OThjMy45MDUtMy45MDUgMy45MDUtMTAuMjM3IDAtMTQuMTQzcy0xMC4yMzctMy45MDUtMTQuMTQzIDBsLTM5LjU5NyAzOS41OThjLTMuOTA1IDMuOTA1LTMuOTA1IDEwLjIzNyAwIDE0LjE0MyAxLjk1MyAxLjk1MyA0LjUxMiAyLjkyOSA3LjA3MiAyLjkyOXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYxLjg2OCAzOC43MzVjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMSA1LjA3Ny0yLjE3NSA3LjQyOC04LjA1NCA1LjI1Mi0xMy4xM2wtLjAwMy0uMDA3Yy0yLjE3NS01LjA3Ni04LjA1MS03LjQyMy0xMy4xMjktNS4yNDktNS4wNzYgMi4xNzUtNy40MjYgOC4wNTgtNS4yNSAxMy4xMzQgMS42MjUgMy43OTIgNS4zMTYgNi4wNjMgOS4xOTYgNi4wNjN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2OS44NDQgNzQuMTMxIDEzLjA1NCAzMS41MTRjMS41OTUgMy44NTEgNS4zMTggNi4xNzUgOS4yNDMgNi4xNzUgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjQgNS4xMDItMi4xMTQgNy41MjUtNy45NjMgNS40MTItMTMuMDY2bC0xMy4wNTQtMzEuNTE0Yy0yLjExNC01LjEwMy03Ljk2My03LjUyNy0xMy4wNjYtNS40MTJzLTcuNTI2IDcuOTY0LTUuNDEyIDEzLjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJtMjQuNTQyIDE3MC45NDNjMS4zNTcuNjI2IDIuNzgyLjkyMyA0LjE4NC45MjMgMy43OCAwIDcuMzk4LTIuMTU0IDkuMDg2LTUuODEyIDIuMzE0LTUuMDE0LjEyNS0xMC45NTYtNC44ODktMTMuMjdsLS4wMDYtLjAwM2MtNS4wMTMtMi4zMTUtMTAuOTUyLS4xMjUtMTMuMjY3IDQuODkxLTIuMzE2IDUuMDE0LS4xMjMgMTAuOTU2IDQuODkyIDEzLjI3MXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjYuNDc3IDE4OC4zMjEgMzEuNTE1IDEzLjA1NGMxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2IDIuMTE0LTUuMTAzLS4zMS0xMC45NTItNS40MTItMTMuMDY1bC0zMS41MTYtMTMuMDU0Yy01LjEwMS0yLjExMy0xMC45NTIuMzEtMTMuMDY1IDUuNDEyLTIuMTE0IDUuMTAyLjMxIDEwLjk1MiA1LjQxMiAxMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwNS42NDUgMzI5LjEwNGM1LjEwMy0yLjExMyA3LjUyNi03Ljk2MyA1LjQxMi0xMy4wNjUtMi4xMTMtNS4xMDMtNy45NjQtNy41MjctMTMuMDY1LTUuNDEybC0zMS41MTQgMTMuMDU0Yy01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjUgMS41OTUgMy44NTIgNS4zMTggNi4xNzYgOS4yNDMgNi4xNzYgMS4yNzUgMCAyLjU3Mi0uMjQ1IDMuODIzLS43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI0Ljc5MyAzNDAuOTQ3LS4wMDcuMDAzYy01LjA3NiAyLjE3NS03LjQyNCA4LjA1My01LjI0OSAxMy4xMjkgMS42MjUgMy43OTIgNS4zMTcgNi4wNjIgOS4xOTggNi4wNjIgMS4zMTUgMCAyLjY1Mi0uMjYxIDMuOTM2LS44MTIgNS4wNzctMi4xNzUgNy40MjgtOC4wNTQgNS4yNTItMTMuMTMxLTIuMTc0LTUuMDc1LTguMDUzLTcuNDI2LTEzLjEzLTUuMjUxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjYuMDU0IDQ3NC4xOWMtNS4wMTUtMi4zMTUtMTAuOTU2LS4xMjUtMTMuMjcgNC44ODlsLS4wMDMuMDA2Yy0yLjMxNCA1LjAxNC0uMTI0IDEwLjk1MyA0Ljg5MSAxMy4yNjcgMS4zNTYuNjI2IDIuNzguOTIyIDQuMTgyLjkyMiAzLjc4MSAwIDcuNDAxLTIuMTU2IDkuMDg5LTUuODE0IDIuMzE0LTUuMDE0LjEyNS0xMC45NTUtNC44ODktMTMuMjd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NS45NjMgNDAwLjk0NWMtNS4xMDEtMi4xMTQtMTAuOTUyLjMxLTEzLjA2NSA1LjQxMmwtMTMuMDU0IDMxLjUxNWMtMi4xMTQgNS4xMDMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NSAxLjI1MS41MTkgMi41NDcuNzY0IDMuODIzLjc2NCAzLjkyNCAwIDcuNjQ3LTIuMzI1IDkuMjQzLTYuMTc2bDEzLjA1NC0zMS41MTVjMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDYuMTk5IDQ3NC4wNzhjLTUuMDc2IDIuMTc1LTcuNDI4IDguMDU0LTUuMjUyIDEzLjEzbC4wMDMuMDA3YzEuNjI1IDMuNzkxIDUuMzE0IDYuMDYgOS4xOTIgNi4wNiAxLjMxNSAwIDIuNjUxLS4yNjEgMy45MzctLjgxMiA1LjA3Ni0yLjE3NSA3LjQyNi04LjA1OCA1LjI1LTEzLjEzNC0yLjE3NC01LjA3Ni04LjA1MS03LjQyNi0xMy4xMy01LjI1MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjE1OCA0MzcuODcxLTEzLjA1NC0zMS41MTRjLTIuMTE0LTUuMTAzLTcuOTY1LTcuNTI3LTEzLjA2NS01LjQxMi01LjEwMyAyLjExMy03LjUyNiA3Ljk2My01LjQxMiAxMy4wNjVsMTMuMDU0IDMxLjUxNGMxLjU5NSAzLjg1MiA1LjMxOCA2LjE3NiA5LjI0MyA2LjE3NiAxLjI3NSAwIDIuNTcyLS4yNDUgMy44MjMtLjc2NCA1LjEwMi0yLjExMiA3LjUyNS03Ljk2MiA1LjQxMS0xMy4wNjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4Ny4yMDggMzQwLjk0N2MtNS4wNzYtMi4xNzctMTAuOTU1LjE3Ny0xMy4xMyA1LjI1Mi0yLjE3NiA1LjA3Ny4xNzYgMTAuOTU2IDUuMjUyIDEzLjEzMWwuMDA2LjAwM2MxLjI4NS41NSAyLjYxOS44MTEgMy45MzMuODExIDMuODc5IDAgNy41NjktMi4yNzIgOS4xOTQtNi4wNjQgMi4xNzctNS4wNzctLjE3OC0xMC45NTctNS4yNTUtMTMuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NDUuNTI1IDMyMy42ODEtMzEuNTE0LTEzLjA1NGMtNS4xMDItMi4xMTMtMTAuOTUxLjMxLTEzLjA2NSA1LjQxMnMuMzEgMTAuOTUyIDUuNDEyIDEzLjA2NWwzMS41MTQgMTMuMDU0YzEuMjUyLjUxOSAyLjU0OC43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzYgMi4xMTMtNS4xMDItLjMxMS0xMC45NTItNS40MTMtMTMuMDY1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00ODMuMjc0IDE3MS44NjZjMS4zMTQgMCAyLjY1LS4yNjEgMy45MzQtLjgxMWwuMDA3LS4wMDNjNS4wNzYtMi4xNzUgNy40MjQtOC4wNTMgNS4yNDktMTMuMTI5cy04LjA2LTcuNDI3LTEzLjEzNC01LjI1Yy01LjA3NyAyLjE3NS03LjQyOCA4LjA1NC01LjI1MiAxMy4xMzEgMS42MjUgMy43OTEgNS4zMTYgNi4wNjIgOS4xOTYgNi4wNjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNi4zNTcgMTgyLjg5N2MtNS4xMDMgMi4xMTMtNy41MjYgNy45NjMtNS40MTIgMTMuMDY1IDEuNTk1IDMuODUyIDUuMzE4IDYuMTc2IDkuMjQzIDYuMTc2IDEuMjc1IDAgMi41NzItLjI0NSAzLjgyMy0uNzY0bDMxLjUxNC0xMy4wNTRjNS4xMDMtMi4xMTMgNy41MjYtNy45NjMgNS40MTItMTMuMDY1LTIuMTE0LTUuMTAzLTcuOTYzLTcuNTI3LTEzLjA2Ni01LjQxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ2LjE5OSAzNy45MjNjMS4yODUuNTUxIDIuNjIxLjgxMSAzLjkzNS44MTEgMy44OCAwIDcuNTcxLTIuMjcxIDkuMTk2LTYuMDYzbC4wMDMtLjAwN2MyLjE3Ni01LjA3Ni0uMTc3LTEwLjk1Mi01LjI1My0xMy4xMjctNS4wNzQtMi4xNzYtMTAuOTU3LjE3OS0xMy4xMzIgNS4yNTYtMi4xNzcgNS4wNzYuMTc1IDEwLjk1NSA1LjI1MSAxMy4xM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMzE2LjAzOSAxMTEuMDU3YzEuMjUxLjUxOSAyLjU0Ny43NjQgMy44MjMuNzY0IDMuOTI0IDAgNy42NDctMi4zMjUgOS4yNDMtNi4xNzZsMTMuMDU0LTMxLjUxNGMyLjExNC01LjEwMy0uMzEtMTAuOTUzLTUuNDEyLTEzLjA2Ni01LjEwMS0yLjExNC0xMC45NTEuMzEtMTMuMDY1IDUuNDEybC0xMy4wNTQgMzEuNTE0Yy0yLjExNSA1LjEwMi4zMDkgMTAuOTUyIDUuNDExIDEzLjA2NnoiLz4KICAgIDwvZz4KPC9zdmc+",oae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MC4wMDUgNDgwLjAwNSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAuMDAzLDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04cy04LDMuNTgyLTgsOHYzMkMyMzIuMDAzLDQ0LjQxOCwyMzUuNTg0LDQ4LDI0MC4wMDMsNDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0MS4wNzUsMzYuNjU2bDE2LDI3LjcwNGMyLjE4NCwzLjg0MSw3LjA2OCw1LjE4NCwxMC45MDksM3M1LjE4NC03LjA2OCwzLTEwLjkwOWMtMC4wMTctMC4wMzEtMC4wMzUtMC4wNjEtMC4wNTMtMC4wOTIKCQkJCWwtMTYtMjcuNzA0Yy0yLjE4NC0zLjg0MS03LjA2OC01LjE4NC0xMC45MDktM2MtMy44NDEsMi4xODQtNS4xODQsNy4wNjgtMywxMC45MDlDMTQxLjAzOSwzNi41OTUsMTQxLjA1NywzNi42MjYsMTQxLjA3NSwzNi42NTYKCQkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuNTY3LDEwNi44NzVjMC4wMywwLjAxOCwwLjA2MSwwLjAzNSwwLjA5MiwwLjA1M2wyNy43MDQsMTZjMy44MTIsMi4yMzQsOC43MTMsMC45NTYsMTAuOTQ3LTIuODU2CgkJCQljMi4yMzQtMy44MTIsMC45NTYtOC43MTMtMi44NTYtMTAuOTQ3Yy0wLjAzLTAuMDE4LTAuMDYxLTAuMDM1LTAuMDkyLTAuMDUzbC0yNy43MDQtMTZjLTMuODEyLTIuMjM0LTguNzEzLTAuOTU2LTEwLjk0NywyLjg1NgoJCQkJQzcxLjQ3Nyw5OS43MzksNzIuNzU1LDEwNC42NDEsNzYuNTY3LDEwNi44NzV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTk2LjAwMywxOTJjMC00LjQxOC0zLjU4Mi04LTgtOGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJDOTIuNDIxLDIwMCw5Ni4wMDMsMTk2LjQxOCw5Ni4wMDMsMTkyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDQuNDU2LDI2MS4wMThjLTAuMDMxLDAuMDE4LTAuMDYyLDAuMDM2LTAuMDkzLDAuMDU0bC0yNy43MDQsMTZjLTMuODQxLDIuMTgzLTUuMTg1LDcuMDY3LTMuMDAyLDEwLjkwOAoJCQkJYzIuMTgzLDMuODQxLDcuMDY3LDUuMTg1LDEwLjkwOCwzLjAwMmMwLjAzMS0wLjAxOCwwLjA2Mi0wLjAzNiwwLjA5My0wLjA1NGwyNy43MDQtMTZjMy44NDEtMi4xODMsNS4xODUtNy4wNjcsMy4wMDItMTAuOTA4CgkJCQlDMTEzLjE4MSwyNjAuMTc5LDEwOC4yOTcsMjU4LjgzNSwxMDQuNDU2LDI2MS4wMTh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQwMy40NCwyNzcuMTI2Yy0wLjAzMS0wLjAxOC0wLjA2Mi0wLjAzNi0wLjA5My0wLjA1NGwtMjcuNzA0LTE2Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMi4yMzUsMy44MTEtMC45NTcsOC43MTMsMi44NTQsMTAuOTQ4YzAuMDMxLDAuMDE4LDAuMDYyLDAuMDM2LDAuMDkzLDAuMDU0bDI3LjcwNCwxNmMzLjgxMSwyLjIzNSw4LjcxMywwLjk1NywxMC45NDgtMi44NTQKCQkJCUM0MDguNTI5LDI4NC4yNjIsNDA3LjI1MSwyNzkuMzYxLDQwMy40NCwyNzcuMTI2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjQuMDAzLDE4NGgtMzJjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMzJjNC40MTgsMCw4LTMuNTgyLDgtOFM0MjguNDIxLDE4NCw0MjQuMDAzLDE4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzcxLjY1MSwxMjRjMS40MDQsMCwyLjc4NC0wLjM3LDQtMS4wNzJsMjcuNzA0LTE2YzMuODQxLTIuMTg0LDUuMTg0LTcuMDY4LDMtMTAuOTA5cy03LjA2OC01LjE4NC0xMC45MDktMwoJCQkJYy0wLjAzMSwwLjAxNy0wLjA2MSwwLjAzNS0wLjA5MiwwLjA1M2wtMjcuNzA0LDE2Yy0zLjgyNiwyLjIwOS01LjEzNyw3LjEwMi0yLjkyOCwxMC45MjgKCQkJCUMzNjYuMTUyLDEyMi40NzUsMzY4Ljc5MywxMjQsMzcxLjY1MSwxMjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMxMS45OTMsNjcuMjkxYzAuMDAzLDAuMDAyLDAuMDA2LDAuMDA0LDAuMDA5LDAuMDA1YzMuODI3LDIuMjA3LDguNzIsMC44OTQsMTAuOTI3LTIuOTM0CgkJCQljMC0wLjAwMSwwLjAwMS0wLjAwMiwwLjAwMS0wLjAwMmwxNi0yNy43MDRjMi4yMzUtMy44MTEsMC45NTctOC43MTMtMi44NTQtMTAuOTQ4Yy0zLjgxMS0yLjIzNS04LjcxMy0wLjk1Ny0xMC45NDgsMi44NTQKCQkJCWMtMC4wMTgsMC4wMzEtMC4wMzYsMC4wNjItMC4wNTQsMC4wOTNsLTE2LDI3LjcwNEMzMDYuODYyLDYwLjE4NCwzMDguMTY5LDY1LjA3OCwzMTEuOTkzLDY3LjI5MXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LjAwMywzMjBjNC40MTgsMCw4LTMuNTgyLDgtOHYtODhoMTZjMTcuNjczLDAsMzItMTQuMzI3LDMyLTMycy0xNC4zMjctMzItMzItMzJjLTE3LjY3MywwLTMyLDE0LjMyNy0zMiwzMnYxNmgtMTYKCQkJCXYtMTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMycy0zMiwxNC4zMjctMzIsMzJzMTQuMzI3LDMyLDMyLDMyaDE2djg4YzAsNC40MTgsMy41ODIsOCw4LDhzOC0zLjU4Miw4LTh2LTg4aDE2djg4CgkJCQlDMjQ4LjAwMywzMTYuNDE4LDI1MS41ODQsMzIwLDI1Ni4wMDMsMzIweiBNMjY0LjAwMywxOTJjMC04LjgzNyw3LjE2My0xNiwxNi0xNnMxNiw3LjE2MywxNiwxNnMtNy4xNjMsMTYtMTYsMTZoLTE2VjE5MnoKCQkJCSBNMjE2LjAwMywyMDhoLTE2Yy04LjgzNywwLTE2LTcuMTYzLTE2LTE2czcuMTYzLTE2LDE2LTE2czE2LDcuMTYzLDE2LDE2VjIwOHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQ2LjIxOSw2NC4xNTJjLTcwLjYxMS0zLjM5Mi0xMzAuNjAzLDUxLjA5OS0xMzMuOTk1LDEyMS43MWMtMS45NDMsNDAuNDMyLDE1LjM1NCw3OS40LDQ2LjY0MywxMDUuMDgyCgkJCQljNS42MzksNC40MTcsOC45OTQsMTEuMTM1LDkuMTM2LDE4LjI5NlYzMjhjMC4wNDIsMTAuMTM0LDYuNDQ1LDE5LjE1LDE2LDIyLjUyOFYzNjBjMC4wMjEsNS45MjMsMi4yNDUsMTEuNjI3LDYuMjQsMTYKCQkJCWMtOC4zMiw5LjA0NC04LjMyLDIyLjk1NiwwLDMyYy04Ljg5NCw5Ljc1LTguMiwyNC44NjQsMS41NSwzMy43NThjNC40MjksNC4wNCwxMC4yMTUsNi4yNjgsMTYuMjEsNi4yNDIKCQkJCWM0LjMwNiwwLjExMyw3Ljg4OS0zLjI4Nyw4LjAwMS03LjU5M2MwLjA0NC0xLjY4LTAuNDU2LTMuMzMtMS40MjUtNC43MDNjLTAuMjUzLTAuNDg5LTAuNTUzLTAuOTUzLTAuODk2LTEuMzg0CgkJCQljLTAuNjU4LTAuNjAyLTEuNDA5LTEuMDk0LTIuMjI0LTEuNDU2Yy0wLjIzMi0wLjEyLTAuNDY0LTAuMjE2LTAuNzA0LTAuMzEyYy0wLjgxLTAuMjk1LTEuNjU5LTAuNDY1LTIuNTItMC41MDQKCQkJCWMtMC4wOCwwLTAuMTUyLTAuMDQ4LTAuMjMyLTAuMDQ4Yy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMgoJCQkJYy00LjQxOCwwLTgtMy41ODItOC04czMuNTgyLTgsOC04aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC0zMmMtNC40MTgsMC04LTMuNTgyLTgtOHYtOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04CgkJCQlzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LTMuNTgyLTgtOHYtMTguNzZjLTAuMTMxLTExLjk2Mi01LjY0LTIzLjIzLTE1LTMwLjY4Yy00Ny43ODgtMzkuMjc0LTU0LjY4OS0xMDkuODUyLTE1LjQxNS0xNTcuNjQKCQkJCWMyMi40NjYtMjcuMzM2LDU2LjUyOC00Mi40NDgsOTEuODcxLTQwLjc2YzU5LjEwNywzLjUxNiwxMDUuNTM2LDUxLjk1NywxMDYuNTQ0LDExMS4xNmMwLjI4NywzNC4wNTItMTUuMDI0LDY2LjM2My00MS41Niw4Ny43MDQKCQkJCWMtOS4yOSw3LjY1Mi0xNC42MDIsMTkuMTA5LTE0LjQ0LDMxLjE0NFYzMjhjMCw0LjQxOC0zLjU4Miw4LTgsOGgtMjRjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoMTZ2OAoJCQkJYzAsNC40MTgtMy41ODIsOC04LDhoLThjLTQuNDE4LDAtOCwzLjU4Mi04LDhzMy41ODIsOCw4LDhoOGM0LjQxOCwwLDgsMy41ODIsOCw4cy0zLjU4Miw4LTgsOGgtOGMtNC40MTgsMC04LDMuNTgyLTgsOAoJCQkJczMuNTgyLDgsOCw4aDhjNC40MTgsMCw4LDMuNTgyLDgsOHMtMy41ODIsOC04LDhoLTQwYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMwLjYzMgoJCQkJYy00LjQxNywxMi40OTctMTguMTI5LDE5LjA0Ny0zMC42MjYsMTQuNjNjLTMuODI2LTEuMzUyLTcuMjQ2LTMuNjUzLTkuOTQyLTYuNjg2Yy0yLjkzOC0zLjMtNy45OTYtMy41OTQtMTEuMjk2LTAuNjU2CgkJCQljLTMuMywyLjkzOC0zLjU5NCw3Ljk5Ni0wLjY1NiwxMS4yOTZjMTQuNjMxLDE2LjQ4NywzOS44NTcsMTcuOTkyLDU2LjM0NCwzLjM2MmM2LjgxLTYuMDQzLDExLjM0OS0xNC4yMzIsMTIuODY0LTIzLjIxCgkJCQljMTIuNTI5LTMuOTE2LDE5LjUxMS0xNy4yNDcsMTUuNTk2LTI5Ljc3NmMtMS4wNC0zLjMyOS0yLjgwMS02LjM4OC01LjE1Ni04Ljk2YzguMzItOS4wNDQsOC4zMi0yMi45NTYsMC0zMgoJCQkJYzMuOTk1LTQuMzczLDYuMjE5LTEwLjA3Nyw2LjI0LTE2di05LjQ3MmM5LjU1NS0zLjM3OCwxNS45NTgtMTIuMzk0LDE2LTIyLjUyOHYtMTcuODMyYy0wLjEwNy03LjE4NywzLjAwNy0xNC4wNDYsOC40ODgtMTguNjk2CgkJCQljMzAuMzQ0LTI0LjM5NSw0Ny44NS02MS4zMzksNDcuNTEyLTEwMC4yNzJDMzY2Ljg0NywxMjMuNTMyLDMxMy43NzcsNjguMTY5LDI0Ni4yMTksNjQuMTUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",rae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjU1Ljk5OSwwYy03OS4wNDQsMC0xNDMuMzUyLDY0LjMwOC0xNDMuMzUyLDE0My4zNTN2NzAuMTkzYzAsNC43OCwzLjg3OSw4LjY1Niw4LjY1OSw4LjY1Nmg0OC4wNTcKCQkJYzQuNzgsMCw4LjY1Ni0zLjg3Niw4LjY1Ni04LjY1NnYtNzAuMTkzYzAtNDIuOTk4LDM0Ljk4MS03Ny45OCw3Ny45NzktNzcuOThzNzcuOTc5LDM0Ljk4Miw3Ny45NzksNzcuOTh2NzAuMTkzCgkJCWMwLDQuNzgsMy44OCw4LjY1Niw4LjY2MSw4LjY1Nmg0OC4wNTdjNC43OCwwLDguNjU2LTMuODc2LDguNjU2LTguNjU2di03MC4xOTNDMzk5LjM1Miw2NC4zMDgsMzM1LjA0NCwwLDI1NS45OTksMHoKCQkJIE0zODIuMDQsMjA0Ljg5aC0zMC43NDh2LTYxLjUzN2MwLTUyLjU0NC00Mi43NDgtOTUuMjkyLTk1LjI5MS05NS4yOTJzLTk1LjI5MSw0Mi43NDgtOTUuMjkxLDk1LjI5MnY2MS41MzdoLTMwLjc0OHYtNjEuNTM3CgkJCWMwLTY5LjQ5OSw1Ni41NC0xMjYuMDQsMTI2LjAzOC0xMjYuMDRjNjkuNDk5LDAsMTI2LjA0LDU2LjU0MSwxMjYuMDQsMTI2LjA0VjIwNC44OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDEwLjYzLDIwNC44OUgxMDEuMzcxYy0yMC41MDUsMC0zNy4xODgsMTYuNjgzLTM3LjE4OCwzNy4xODh2MjMyLjczNGMwLDIwLjUwNSwxNi42ODMsMzcuMTg4LDM3LjE4OCwzNy4xODhINDEwLjYzCgkJCWMyMC41MDUsMCwzNy4xODctMTYuNjgzLDM3LjE4Ny0zNy4xODlWMjQyLjA3OEM0NDcuODE3LDIyMS41NzMsNDMxLjEzNSwyMDQuODksNDEwLjYzLDIwNC44OXogTTQzMC41MDUsNDc0LjgxMQoJCQljMCwxMC45Ni04LjkxNiwxOS44NzYtMTkuODc1LDE5Ljg3NkgxMDEuMzcxYy0xMC45NiwwLTE5Ljg3Ni04LjkxNi0xOS44NzYtMTkuODc2VjI0Mi4wNzhjMC0xMC45Niw4LjkxNi0xOS44NzYsMTkuODc2LTE5Ljg3NgoJCQlINDEwLjYzYzEwLjk1OSwwLDE5Ljg3NSw4LjkxNiwxOS44NzUsMTkuODc2VjQ3NC44MTF6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI4NS4xMSwzNjkuNzgxYzEwLjExMy04LjUyMSwxNS45OTgtMjAuOTc4LDE1Ljk5OC0zNC4zNjVjMC0yNC44NzMtMjAuMjM2LTQ1LjEwOS00NS4xMDktNDUuMTA5CgkJCWMtMjQuODc0LDAtNDUuMTEsMjAuMjM2LTQ1LjExLDQ1LjEwOWMwLDEzLjM4Nyw1Ljg4NSwyNS44NDQsMTYsMzQuMzY3bC05LjczMSw0Ni4zNjJjLTAuNTM1LDIuNTU0LDAuMTA4LDUuMjExLDEuNzUyLDcuMjM2CgkJCWMxLjY0NSwyLjAyMyw0LjExMywzLjIsNi43MiwzLjJoNjAuNzM4YzIuNjA4LDAsNS4wNzYtMS4xNzYsNi43MTktMy4yYzEuNjQzLTIuMDI2LDIuMjg2LTQuNjgzLDEuNzUxLTcuMjM0TDI4NS4xMSwzNjkuNzgxegoJCQkgTTI3MC44NTEsMzU4LjgyYy0zLjA0LDEuOTM2LTQuNTY1LDUuNTUzLTMuODI0LDkuMDgxbDguNjgsNDEuMzY2aC0zOS40MTVsOC42ODItNDEuMzYzYzAuNzQtMy41MjktMC43ODItNy4xNDYtMy44MjQtOS4wODEKCQkJYy04LjEwOC01LjE2LTEyLjk0OC0xMy45MTEtMTIuOTQ4LTIzLjQwNmMwLTE1LjMyNywxMi40NjktMjcuNzk2LDI3Ljc5Ny0yNy43OTZjMTUuMzI3LDAsMjcuNzk2LDEyLjQ2OSwyNy43OTYsMjcuNzk2CgkJCUMyODMuNzk3LDM0NC45MTQsMjc4Ljk1NywzNTMuNjYzLDI3MC44NTEsMzU4LjgyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Mae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk0LjkzMzU5NCAwaC00NzcuODY3MTg4Yy05LjQyMTg3NS4wMDc4MTI1LTE3LjA1ODU5MzUgNy42NDQ1MzEtMTcuMDY2NDA2IDE3LjA2NjQwNnY1OS43MzQzNzVjLjAwNzgxMjUgOS40MjE4NzUgNy42NDQ1MzEgMTcuMDU0Njg4IDE3LjA2NjQwNiAxNy4wNjY0MDdoMTAuODk0NTMybC0yNi44MzU5MzggNDYuOTY0ODQzYy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE5NTMxIDEuNTI3MzQ0IDIuNjI4OTA3IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45NjQ4NDRjLTEuNTA3ODEyIDIuNjQwNjI1LTEuNSA1Ljg4NjcxOS4wMjczNDQgOC41MTU2MjUgMS41MjczNDQgMi42MzI4MTMgNC4zMzk4NDQgNC4yNSA3LjM4MjgxMiA0LjI1aDE5LjQyNTc4MmwtMjYuODM1OTM4IDQ2Ljk2ODc1Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODI4MTMuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjI4OTA2IDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNyA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEyIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNTM5MDZoMTkuNDI1NzgybC0yNi44MzU5MzggNDYuOTY0ODQ0Yy0xLjUwNzgxMiAyLjY0MDYyNS0xLjUgNS44ODY3MTkuMDI3MzQ0IDguNTE1NjI1IDEuNTI3MzQ0IDIuNjMyODEzIDQuMzM5ODQ0IDQuMjUgNy4zODI4MTIgNC4yNWgxOS40MjU3ODJsLTI2LjgzNTkzOCA0Ni45Njg3NWMtMS41MDc4MTIgMi42NDA2MjUtMS41IDUuODgyODEzLjAyNzM0NCA4LjUxNTYyNSAxLjUyNzM0NCAyLjYyODkwNiA0LjMzOTg0NCA0LjI1IDcuMzgyODEyIDQuMjVoNDk0LjkyOTY4OGMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDk0IDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MTcxODcgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYyODkwNiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45NjQ4NDRoMTkuNDI1NzgyYzMuMDQyOTY4LS4wMDM5MDYgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNTM5MDYgMS41MjczNDQtMi42Mjg5MDYgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY0ODQ0aDE5LjQyNTc4MmMzLjA0Mjk2OCAwIDUuODU1NDY4LTEuNjIxMDkzIDcuMzgyODEyLTQuMjUgMS41MjczNDQtMi42MzI4MTIgMS41MzUxNTYtNS44NzUuMDI3MzQ0LTguNTE1NjI1bC0yNi44MzU5MzgtNDYuOTY4NzVoMTkuNDI1NzgyYzMuMDQyOTY4IDAgNS44NTU0NjgtMS42MjEwOTQgNy4zODI4MTItNC4yNSAxLjUyNzM0NC0yLjYzMjgxMiAxLjUzNTE1Ni01Ljg3NS4wMjczNDQtOC41MTU2MjVsLTI2LjgzNTkzOC00Ni45Njg3NWgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYxNzE4NyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjI4OTA2IDEuNTM1MTU2LTUuODc1LjAyNzM0NC04LjUxNTYyNWwtMjYuODM1OTM4LTQ2Ljk2NDg0NGgxOS40MjU3ODJjMy4wNDI5NjggMCA1Ljg1NTQ2OC0xLjYyMTA5MyA3LjM4MjgxMi00LjI1IDEuNTI3MzQ0LTIuNjMyODEyIDEuNTM1MTU2LTUuODc4OTA2LjAyNzM0NC04LjUxOTUzMWwtMjYuODM1OTM4LTQ2Ljk2NDg0M2gxMC44OTQ1MzJjOS40MjE4NzUtLjAxMTcxOSAxNy4wNTQ2ODctNy42NDQ1MzIgMTcuMDY2NDA2LTE3LjA2NjQwN3YtNTkuNzM0Mzc1Yy0uMDExNzE5LTkuNDIxODc1LTcuNjQ0NTMxLTE3LjA1NDY4NzItMTcuMDY2NDA2LTE3LjA2NjQwNnptLTQ0Ny4zMTY0MDYgOTMuODY3MTg4aDQ2LjI1djQyLjY2Nzk2OGgtNzAuNjI4OTA3em0zMTkuMzE2NDA2IDB2NDIuNjY3OTY4aC0yMjEuODY3MTg4di00Mi42Njc5Njh6bTY4LjI2NTYyNSAwdjQyLjY2Nzk2OGgtMTcuMDY2NDA3di00Mi42Njc5Njh6bS0yOTAuMTMyODEzIDM0MS4zMzIwMzF2LTQyLjY2NDA2M2gyMjEuODY3MTg4djQyLjY2NDA2M3ptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY3OTY5aC0yMjEuODY3MTg4di00Mi42Njc5Njl6bTAtMjU2aC0yMjEuODY3MTg4di00Mi42NjQwNjNoMjIxLjg2NzE4OHptMTcuMDY2NDA2LTQyLjY2NDA2M2gxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bS0yMzguOTMzNTk0IDE2Mi4xMzI4MTN2LTQyLjY2Nzk2OWgyMjEuODY3MTg4djQyLjY2Nzk2OXptMjIxLjg2NzE4OCAxNy4wNjY0MDZ2NDIuNjY0MDYzaC0yMjEuODY3MTg4di00Mi42NjQwNjN6bS0yMjEuODY3MTg4LTc2LjgwMDc4MXYtNDIuNjY3OTY5aDIyMS44NjcxODh2NDIuNjY3OTY5em0tMTcuMDY2NDA2LTU5LjczNDM3NWgtMTcuMDY2NDA2di00Mi42NjQwNjNoMTcuMDY2NDA2em0wIDE3LjA2NjQwNnY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42Njc5NjloLTE3LjA2NjQwNnYtNDIuNjY3OTY5em0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0wIDU5LjczNDM3NXY0Mi42NjQwNjNoLTE3LjA2NjQwNnYtNDIuNjY0MDYzem0yNTYgMGgxNy4wNjY0MDZ2NDIuNjY0MDYzaC0xNy4wNjY0MDZ6bTAtMTcuMDcwMzEydi00Mi42NjQwNjNoMTcuMDY2NDA2djQyLjY2NDA2M3ptMC01OS43MzA0Njl2LTQyLjY2Nzk2OWgxNy4wNjY0MDZ2NDIuNjY3OTY5em0wLTU5LjczNDM3NXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTM0LjEzMjgxMi00Mi42Njc5NjloMTcuMDY2NDA3djQyLjY2Nzk2OWgtMTcuMDY2NDA3em0wLTE3LjA2NjQwNnYtNDIuNjY0MDYzaDE3LjA2NjQwN3Y0Mi42NjQwNjN6bS0xNy4wNjY0MDYtNTkuNzMwNDY5aC0xNy4wNjY0MDZ2LTQyLjY2Nzk2OGgxNy4wNjY0MDZ6bS0yNzMuMDY2NDA2IDBoLTE3LjA2NjQwNnYtNDIuNjY3OTY4aDE3LjA2NjQwNnptLTgwLjM4MjgxMiAxNy4wNjY0MDZoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzMwNDY5aDQ2LjI1djQyLjY2Nzk2OWgtNzAuNjI4OTA3em0wIDU5LjczNDM3NWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptMCA1OS43MzQzNzVoNDYuMjV2NDIuNjY0MDYzaC03MC42Mjg5MDd6bTAgNTkuNzM0Mzc1aDQ2LjI1djQyLjY2NDA2M2gtNzAuNjI4OTA3em0wIDU5LjczMDQ2OWg0Ni4yNXY0Mi42Njc5NjloLTcwLjYyODkwN3ptNjMuMzE2NDA2IDQyLjY2Nzk2OXYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTI3My4wNjY0MDYgMHYtNDIuNjY3OTY5aDE3LjA2NjQwNnY0Mi42Njc5Njl6bTEwNC43NTc4MTIgMGgtNzAuNjI1di00Mi42Njc5NjloNDYuMjV6bTAtNTkuNzM0Mzc1aC03MC42MjV2LTQyLjY2NDA2M2g0Ni4yNXptMC01OS43MzQzNzVoLTcwLjYyNXYtNDIuNjY0MDYzaDQ2LjI1em0wLTU5LjczMDQ2OWgtNzAuNjI1di00Mi42Njc5NjloMTcuMDY2NDA3djE3LjA2NjQwNmMwIDQuNzE0ODQ0IDMuODIwMzEyIDguNTM1MTU3IDguNTM1MTU2IDguNTM1MTU3IDQuNzEwOTM3IDAgOC41MzEyNS0zLjgyMDMxMyA4LjUzMTI1LTguNTM1MTU3di0xNy4wNjY0MDZoMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42Njc5NjloMTIuMTE3MTg3em0wLTU5LjczNDM3NWgtMzYuNDkyMTg3di00Mi42NjQwNjNoMTIuMTE3MTg3em0wLTU5LjczMDQ2OWgtMzYuNDkyMTg3di00Mi42Njc5NjhoMTIuMTE3MTg3em0tMTkuNDI1NzgxLTU5LjczNDM3NWgtNDUyLjI2NTYyNXYtNTkuNzM0Mzc1aDQ3Ny44NjcxODhsLjAwNzgxMiA1OS43MzQzNzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01OS43MzQzNzUgNDIuNjY3OTY5aC0xNy4wNjY0MDZjLTQuNzE0ODQ0IDAtOC41MzUxNTcgMy44MjAzMTItOC41MzUxNTcgOC41MzEyNSAwIDQuNzE0ODQzIDMuODIwMzEzIDguNTM1MTU2IDguNTM1MTU3IDguNTM1MTU2aDE3LjA2NjQwNmM0LjcxMDkzNyAwIDguNTMxMjUtMy44MjAzMTMgOC41MzEyNS04LjUzNTE1NiAwLTQuNzEwOTM4LTMuODIwMzEzLTguNTMxMjUtOC41MzEyNS04LjUzMTI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ1LjA2NjQwNiA0Mi42Njc5NjloLTUxLjE5OTIxOGMtNC43MTQ4NDQgMC04LjUzNTE1NyAzLjgyMDMxMi04LjUzNTE1NyA4LjUzMTI1IDAgNC43MTQ4NDMgMy44MjAzMTMgOC41MzUxNTYgOC41MzUxNTcgOC41MzUxNTZoNTEuMTk5MjE4YzQuNzE0ODQ0IDAgOC41MzUxNTYtMy44MjAzMTMgOC41MzUxNTYtOC41MzUxNTYgMC00LjcxMDkzOC0zLjgyMDMxMi04LjUzMTI1LTguNTM1MTU2LTguNTMxMjV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",nae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMjQzLjc4M2MtLjk1MSAwLTEuODY4LjE0MS0yLjczOS4zODlsLS4wMDItLjAwNy0yOC43MjIgOC4xODdjLTUuMzExIDEuNTE0LTguMzkgNy4wNDctNi44NzYgMTIuMzU4IDEuMjUzIDQuMzk2IDUuMjU4IDcuMjYxIDkuNjEyIDcuMjYxLjkwNyAwIDEuODMtLjEyNSAyLjc0Ni0uMzg1bDE1Ljk4MS00LjU1NHYzNS40MmwtMTI0IDM1LjM0NXYtMzUuNDJsMjEuNDY0LTYuMTE4YzUuMzExLTEuNTE0IDguMzktNy4wNDcgNi44NzYtMTIuMzU4cy03LjA0NS04LjM4Ny0xMi4zNTgtNi44NzZsLTI4LjcyMyA4LjE4Ny4wMDEuMDA3Yy00LjE4OSAxLjE5My03LjI2IDUuMDM5LTcuMjYgOS42MXYxMjcuMTk5Yy04LjM2My02LjI5My0xOC43NTItMTAuMDI4LTMwLTEwLjAyOC0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDA2bDEyNC0zNS4zNDV2NTcuNzMzYy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xNjcuMTcyYzAtNS41MjMtNC40NzctMTAtMTAtMTB6bS0xODQgMjQ4LjIxN2MtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xNDQtNDEuMDQ1Yy0xNi41NDIgMC0zMC0xMy40NTgtMzAtMzBzMTMuNDU4LTMwIDMwLTMwIDMwIDEzLjQ1OCAzMCAzMC0xMy40NTggMzAtMzAgMzB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUwOC4wMTMgMi4wMWMtMi41MTEtMS44ODktNS43NjMtMi40ODctOC43ODItMS42MTlsLTEwNC40MDggMzAuMDg5Yy00LjI4MiAxLjIzNC03LjIzMSA1LjE1Mi03LjIzMSA5LjYwOXYxMjcuMTk5Yy04LjM2My02LjI5Mi0xOC43NTItMTAuMDI3LTMwLTEwLjAyNy0yNy41NyAwLTUwIDIyLjQzLTUwIDUwczIyLjQzIDUwIDUwIDUwIDUwLTIyLjQzIDUwLTUwdi0xMDMuNDNsOTcuMTc3LTI4LjAwNWM0LjI4Mi0xLjIzNCA3LjIzMS01LjE1MiA3LjIzMS05LjYwOXYtNTYuMjE3YzAtMy4xNDItMS40NzctNi4xMDEtMy45ODctNy45OXptLTE1MC40MjEgMjM1LjI1MWMtMTYuNTQyIDAtMzAtMTMuNDU4LTMwLTMwczEzLjQ1OC0zMCAzMC0zMCAzMCAxMy40NTggMzAgMzAtMTMuNDU4IDMwLTMwIDMwem0xMzQuNDA4LTE3OC41NjktODQuNDA4IDI0LjMyNXYtMzUuNDAzbDg0LjQwOC0yNC4zMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MS41OTEgMzQ4Ljc2Mi00OC4yODgtNy4wMTctMjEuNTk1LTQzLjc1NmMtMS42ODUtMy40MTMtNS4xNjEtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0yMS41OTUgNDMuNzU2LTQ4LjI4OCA3LjAxN2MtMy43NjcuNTQ3LTYuODk2IDMuMTg2LTguMDczIDYuODA2cy0uMTk1IDcuNTk0IDIuNTMxIDEwLjI1MWwzNC45NDEgMzQuMDYtOC4yNDkgNDguMDkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNiA3LjE2MiAyLjUzMiAxMC41MzEuNzYxbDQzLjE5LTIyLjcwNyA0My4xOSAyMi43MDZjMS40NjMuNzcgMy4wNjEgMS4xNDkgNC42NTIgMS4xNDkgMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzNyA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtOC4yNDktNDguMDkzIDM0Ljk0MS0zNC4wNmMyLjcyNi0yLjY1NyAzLjcwNy02LjYzMSAyLjUzMS0xMC4yNTFzLTQuMzA0LTYuMjU4LTguMDcxLTYuODA1em0tNDcuMTI0IDQwLjQ2NGMtMi4zNTcgMi4yOTctMy40MzMgNS42MDctMi44NzYgOC44NTFsNS43MTIgMzMuMzA0LTI5LjkwOS0xNS43MjRjLTIuOTEzLTEuNTMyLTYuMzkzLTEuNTMyLTkuMzA3IDBsLTI5LjkwOSAxNS43MjQgNS43MTItMzMuMzA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MWwtMjQuMTk2LTIzLjU4NiAzMy40MzktNC44NTljMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDE0Ljk1NS0zMC4zMDEgMTQuOTU0IDMwLjMwMWMxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDMzLjQzOSA0Ljg1OXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjIgOTAuNzA2LTYuNjIgMzguNTkzYy0uNjQ0IDMuNzUxLjg5OCA3LjU0MyAzLjk3OCA5Ljc4MSAzLjA3OSAyLjIzNyA3LjE2MyAyLjUzMyAxMC41MzEuNzYxbDM0LjY1OC0xOC4yMjEgMzQuNjU5IDE4LjIyMWMxLjQ2My43NjkgMy4wNjEgMS4xNDggNC42NTIgMS4xNDggMi4wNzMgMCA0LjEzNy0uNjQ0IDUuODc5LTEuOTEgMy4wOC0yLjIzOCA0LjYyMi02LjAyOSAzLjk3OC05Ljc4MWwtNi42Mi0zOC41OTMgMjguMDQtMjcuMzMxYzIuNzI2LTIuNjU3IDMuNzA3LTYuNjMxIDIuNTMxLTEwLjI1MXMtNC4zMDYtNi4yNTgtOC4wNzMtNi44MDZsLTM4Ljc1LTUuNjMxLTE3LjMyOC0zNS4xMTJjLTEuNjg0LTMuNDEzLTUuMTYtNS41NzQtOC45NjctNS41NzRzLTcuMjgzIDIuMTYxLTguOTY3IDUuNTc0bC0xNy4zMjkgMzUuMTEzLTM4Ljc1IDUuNjMxYy0zLjc2Ny41NDctNi44OTYgMy4xODYtOC4wNzMgNi44MDZzLS4xOTUgNy41OTQgMi41MzEgMTAuMjUxem0yNC4zMy0zMC45ODNjMy4yNTctLjQ3MyA2LjA3My0yLjUxOSA3LjUyOS01LjQ3bDEwLjY4OC0yMS42NTcgMTAuNjg4IDIxLjY1N2MxLjQ1NyAyLjk1MSA0LjI3MiA0Ljk5NyA3LjUyOSA1LjQ3bDIzLjkgMy40NzMtMTcuMjkyIDE2Ljg1OGMtMi4zNTcgMi4yOTgtMy40MzMgNS42MDgtMi44NzYgOC44NTJsNC4wODMgMjMuODA0LTIxLjM3Ny0xMS4yMzhjLTEuNDU3LS43NjYtMy4wNTUtMS4xNDktNC42NTMtMS4xNDktMS41OTkgMC0zLjE5Ny4zODMtNC42NTMgMS4xNDlsLTIxLjM3NyAxMS4yMzggNC4wODMtMjMuODA0Yy41NTctMy4yNDQtLjUxOS02LjU1NC0yLjg3Ni04Ljg1MmwtMTcuMjk2LTE2Ljg1OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjM0IDg2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzQgMTU2LjMwNmMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHYxMGMwIDUuNTIzIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc3IDEwLTEwdi0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEweiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzQgMTI2LjMwNmgtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTBzNC40NzcgMTAgMTAgMTBoMTBjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTB6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE5NCAxNDYuMzA2aDEwYzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwaC0xMGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHM0LjQ3NyAxMCAxMCAxMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYyIDI4NC4zMWMyLjYzIDAgNS4yMS0xLjA3IDcuMDctMi45M3MyLjkzLTQuNDQgMi45My03LjA3YzAtMi42NC0xLjA3LTUuMjEtMi45My03LjA4LTEuODYtMS44Ni00LjQ0LTIuOTItNy4wNy0yLjkycy01LjIxIDEuMDYtNy4wNyAyLjkyYy0xLjg2IDEuODctMi45MyA0LjQ0LTIuOTMgNy4wOCAwIDIuNjMgMS4wNyA1LjIxIDIuOTMgNy4wN3M0LjQ0IDIuOTMgNy4wNyAyLjkzeiIvPgogICAgPC9nPgo8L3N2Zz4=",aae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwNS40IDUwNS40Ij4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzNy4xLDIzMy40NWMxNC44LTEwLjQsMjQuNi0yNy43LDI0LjYtNDcuMmMwLTMxLjktMjUuOC01Ny43LTU3LjctNTcuN2MtMzEuOSwwLTU3LjcsMjUuOC01Ny43LDU3LjcKCQkJYzAsMTkuNSw5LjcsMzYuOCwyNC42LDQ3LjJjLTEyLjcsNC40LTI0LjMsMTEuMi0zNC4xLDIwYy0xMy41LTExLjUtMjkuNC0yMC4zLTQ2LjgtMjUuNWMyMS4xLTEyLjgsMzUuMy0zNi4xLDM1LjMtNjIuNgoJCQljMC00MC40LTMyLjctNzMuMS03My4xLTczLjFjLTQwLjQsMC03My4xLDMyLjgtNzMuMSw3My4xYzAsMjYuNSwxNC4xLDQ5LjgsMzUuMyw2Mi42Yy0xNy4yLDUuMi0zMi45LDEzLjktNDYuMywyNS4yCgkJCWMtOS44LTguNi0yMS4yLTE1LjMtMzMuNy0xOS42YzE0LjgtMTAuNCwyNC42LTI3LjcsMjQuNi00Ny4yYzAtMzEuOS0yNS44LTU3LjctNTcuNy01Ny43cy01Ny43LDI1LjgtNTcuNyw1Ny43CgkJCWMwLDE5LjUsOS43LDM2LjgsMjQuNiw0Ny4yQzI4LjUsMjQ3LjI1LDAsMjg0Ljk1LDAsMzI5LjI1djYuNmMwLDAuMiwwLjIsMC40LDAuNCwwLjRoMTIyLjNjLTAuNyw1LjUtMS4xLDExLjItMS4xLDE2Ljl2Ni44CgkJCWMwLDI5LjQsMjMuOCw1My4yLDUzLjIsNTMuMmgxNTVjMjkuNCwwLDUzLjItMjMuOCw1My4yLTUzLjJ2LTYuOGMwLTUuNy0wLjQtMTEuNC0xLjEtMTYuOUg1MDVjMC4yLDAsMC40LTAuMiwwLjQtMC40di02LjYKCQkJQzUwNS4yLDI4NC44NSw0NzYuOCwyNDcuMTUsNDM3LjEsMjMzLjQ1eiBNMzYyLjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43CgkJCWMwLDIyLjctMTguMyw0MS4yLTQwLjksNDEuN2MtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzM4MC41LDIyNy40NSwzNjIuMywyMDguOTUsMzYyLjMsMTg2LjE1eiBNMTk0LjksMTY1LjM1CgkJCWMwLTMxLjUsMjUuNi01Ny4xLDU3LjEtNTcuMXM1Ny4xLDI1LjYsNTcuMSw1Ny4xYzAsMzAuNC0yMy45LDU1LjMtNTMuOCw1N2MtMS4xLDAtMi4yLDAtMy4zLDBjLTEuMSwwLTIuMiwwLTMuMywwCgkJCUMyMTguOCwyMjAuNjUsMTk0LjksMTk1Ljc1LDE5NC45LDE2NS4zNXogTTU5LjMsMTg2LjE1YzAtMjMsMTguNy00MS43LDQxLjctNDEuN3M0MS43LDE4LjcsNDEuNyw0MS43YzAsMjIuNy0xOC4zLDQxLjItNDAuOSw0MS43CgkJCWMtMC4zLDAtMC41LDAtMC44LDBzLTAuNSwwLTAuOCwwQzc3LjYsMjI3LjQ1LDU5LjMsMjA4Ljk1LDU5LjMsMTg2LjE1eiBNMTI1LjUsMzIwLjE1SDE2LjJjNC41LTQyLjYsNDAuNS03Niw4NC4yLTc2LjMKCQkJYzAuMiwwLDAuNCwwLDAuNiwwczAuNCwwLDAuNiwwYzIwLjgsMC4xLDM5LjgsNy44LDU0LjUsMjAuM0MxNDEuNywyNzkuNzUsMTMxLDI5OC45NSwxMjUuNSwzMjAuMTV6IE0zNjYuOCwzNTkuOTUKCQkJYzAsMjAuNS0xNi43LDM3LjItMzcuMiwzNy4yaC0xNTVjLTIwLjUsMC0zNy4yLTE2LjctMzcuMi0zNy4ydi02LjhjMC02Mi4xLDQ5LjYtMTEyLjksMTExLjMtMTE0LjdjMS4xLDAuMSwyLjMsMC4xLDMuNCwwLjEKCQkJczIuMywwLDMuNC0wLjFjNjEuNywxLjgsMTExLjMsNTIuNiwxMTEuMywxMTQuN1YzNTkuOTV6IE0zNzguNywzMjAuMTVjLTUuNS0yMS4xLTE2LTQwLTMwLjMtNTUuNmMxNC44LTEyLjgsMzQtMjAuNSw1NS0yMC43CgkJCWMwLjIsMCwwLjQsMCwwLjYsMHMwLjQsMCwwLjYsMGM0My43LDAuMyw3OS43LDMzLjcsODQuMiw3Ni4zSDM3OC43eiIvPgogICAgPC9nPgo8L3N2Zz4K",cae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",uae="PHN2ZyB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAxNjBoLTMydi04MGMwLTguODIyLTcuMTc4LTE2LTE2LTE2aC0zMnYtNDBjMC0xMy4yMzMtMTAuNzY3LTI0LTI0LTI0aC0yMjRjLTEzLjIzMyAwLTI0IDEwLjc2Ny0yNCAyNHY0MGgtMzJjLTguODIyIDAtMTYgNy4xNzgtMTYgMTZ2ODBoLTMyYy0yMi4wNTYgMC00MCAxNy45NDQtNDAgNDB2MTc2YzAgMjIuMDU2IDE3Ljk0NCA0MCA0MCA0MGg4MHY3MmMwIDEzLjIzMyAxMC43NjcgMjQgMjQgMjRoMjI0YzEzLjIzMyAwIDI0LTEwLjc2NyAyNC0yNHYtNzJoODBjMjIuMDU2IDAgNDAtMTcuOTQ0IDQwLTQwdi0xNzZjMC0yMi4wNTYtMTcuOTQ0LTQwLTQwLTQwem0tNDgtODB2ODBoLTMydi04MHptLTI4OC01NmMwLTQuNDExIDMuNTg5LTggOC04aDIyNGM0LjQxMSAwIDggMy41ODkgOCA4djEzNmgtMjQwYzAtMS42MzUgMC0xMzAuMjExIDAtMTM2em0tNDggNTZoMzJ2ODBoLTMyem0yODggNDA4YzAgNC40MTEtMy41ODkgOC04IDhoLTIyNGMtNC40MTEgMC04LTMuNTg5LTgtOHYtMTM2aDI0MHptMTIwLTExMmMwIDEzLjIzMy0xMC43NjcgMjQtMjQgMjRoLTgwdi00OGgxNmM0LjQxOCAwIDgtMy41ODIgOC04cy0zLjU4Mi04LTgtOGMtMjguNjU3IDAtMjkwLjg4MyAwLTMwNCAwLTQuNDE4IDAtOCAzLjU4Mi04IDhzMy41ODIgOCA4IDhoMTZ2NDhoLTgwYy0xMy4yMzMgMC0yNC0xMC43NjctMjQtMjR2LTE3NmMwLTEzLjIzMyAxMC43NjctMjQgMjQtMjRoNDMyYzEzLjIzMyAwIDI0IDEwLjc2NyAyNCAyNHoiLz4KICAgICAgICA8cGF0aCBkPSJtNDU2IDE5MmMtMTMuMjMzIDAtMjQgMTAuNzY3LTI0IDI0czEwLjc2NyAyNCAyNCAyNCAyNC0xMC43NjcgMjQtMjQtMTAuNzY3LTI0LTI0LTI0em0wIDMyYy00LjQxMSAwLTgtMy41ODktOC04czMuNTg5LTggOC04IDggMy41ODkgOCA4LTMuNTg5IDgtOCA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zOTIgMTkyYy0xMy4yMzMgMC0yNCAxMC43NjctMjQgMjRzMTAuNzY3IDI0IDI0IDI0IDI0LTEwLjc2NyAyNC0yNC0xMC43NjctMjQtMjQtMjR6bTAgMzJjLTQuNDExIDAtOC0zLjU4OS04LThzMy41ODktOCA4LTggOCAzLjU4OSA4IDgtMy41ODkgOC04IDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCAzNzZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0MTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0NCA0NTZoLTE2OGMtNC40MTggMC04IDMuNTgyLTggOHMzLjU4MiA4IDggOGgxNjhjNC40MTggMCA4LTMuNTgyIDgtOHMtMy41ODItOC04LTh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NzMuNTc0IDI1Mi40MzJoLTczLjE4NHYtNDMuNzYxYzAtMTEuNDczLTkuMzM0LTIwLjgwNy0yMC44MDctMjAuODA3LTkuODg2IDAtMzQuMjk1IDAtNDQuMzAyIDB2LTE3Ljg0MWMwLTEyLjM5OS0xMC4wODctMjIuNDg2LTIyLjQ4Ni0yMi40ODZoLTE3LjU5NWwxNC43MjQtNDcuNTM1YzE2Ljc1OS42OTIgMzAuNTM5LTEyLjc1IDMwLjUzOS0yOS4yODQgMC0xNi4xNjQtMTMuMTUxLTI5LjMxNS0yOS4zMTUtMjkuMzE1LTI5LjI2OCAwLTQwLjQ1NSAzOC41MS0xNS41NDEgNTQuMTU0bC0xNi4xMDEgNTEuOTc5aC0zMC4xMzNjLTEwLjU3NiAwLTE5LjgzMSA3LjUxNC0yMi4wMDYgMTcuODY2LS4xMDYuNTA3LS4xNiAxLjAyNC0uMTYgMS41NDJ2MjAuOTE5aC0zOC4xNDZ2LTE4LjgwMWMwLTguNjczLTcuMDU3LTE1LjczLTE1LjczLTE1LjczaC0xLjM3OXYtMTkuNTcyYzkuNDY5LS4yMDMgMTcuMTEzLTcuOTUzIDE3LjExMy0xNy40N3YtMTUuNjE2YzAtOS41MTctNy42NDQtMTcuMjY3LTE3LjExMy0xNy40N3YtNDMuNjk5YzAtMjEuNjk1LTE3LjY1LTM5LjM0Ni0zOS4zNDYtMzkuMzQ2aC01MS42NzdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NXMzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg1MS42NzhjMTMuNDI5IDAgMjQuMzU1IDEwLjkyNiAyNC4zNTUgMjQuMzU1djQzLjY4MmgtMzcuOTU3di0yMi41ODRjMC00LjE0LTMuMzU2LTcuNDk1LTcuNDk1LTcuNDk1aC05Ni4ydi0zNy45NTdoMzUuNjM4YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTUtNy40OTUtNy40OTUtNy40OTVoLTQzLjEzM2MtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djUyLjk0N2MwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoOTYuMnYxNS4xMDljLTkuNDY4LjIwMy0xNy4xMTIgNy45NTQtMTcuMTEyIDE3LjQ3djE1LjYxNmMwIDkuNTE2IDcuNjQ0IDE3LjI2NyAxNy4xMTIgMTcuNDd2MTkuNTcyaC0xLjM3OWMtOC42NzMgMC0xNS43MyA3LjA1Ny0xNS43MyAxNS43M3YxOC44MDFoLTIyLjU1NWMtMTEuNDczIDAtMjAuODA3IDkuMzM0LTIwLjgwNyAyMC44MDd2Mi40ODlsLTMzLjQwMiA3LjU4OWMtMy40MTMuNzc1LTUuODM1IDMuODA5LTUuODM1IDcuMzA5djEwNy4yNDNjMCAzLjQ5OSAyLjQyMSA2LjUzMyA1LjgzMyA3LjMwOGwzMy40MDQgNy41OTh2Mi40ODdjMCAxMS40NzMgOS4zMzQgMjAuODA3IDIwLjgwNyAyMC44MDdoNi40MjR2MjcuNzk5aC0xNS4xMjdjLTQuMTQgMC03LjQ5NSAzLjM1Ni03LjQ5NSA3LjQ5NSAwIDQuMTQgMy4zNTYgNy40OTUgNy40OTUgNy40OTVoMzMzLjg0OWMxLjM3OCAwIDIuNDk4IDEuMTIxIDIuNDk4IDIuNDk4djI1LjUyYy0xNS44MzYtMi44My0zMi40MTguMTAzLTQ2LjcwNyA4LjgxMS0xNi43NTQgMTAuMjExLTM3LjU3IDEwLjIxMi01NC4zMjQgMC0yMS41NjctMTMuMTQ0LTQ4LjM2MS0xMy4xNDUtNjkuOTI4IDAtMTYuNzU0IDEwLjIxMS0zNy41NyAxMC4yMTItNTQuMzI0IDAtMjEuNTY3LTEzLjE0NC00OC4zNjEtMTMuMTQ1LTY5LjkyOCAwLTE2Ljc1NCAxMC4yMTItMzcuNTcgMTAuMjEyLTU0LjMyNCAwbC0yNy40NjktMTYuNzQydi0yMC4wODdoMTAuNjc2YzQuMTQgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NXMtMy4zNTYtNy40OTUtNy40OTUtNy40OTVoLTE4LjE3MmMtNC4xNCAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djk3LjU0OWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDQ5Ny4wMDljNC4xNCAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1IDAtODguNTA2IDAtMTE4LjAwOSAwLTIxMy40ODcuMDAxLTIxLjE4OC0xNy4yMzctMzguNDI2LTM4LjQyNS0zOC40MjZ6bS0xNjIuNDI1LTE5Ni4wMzdjNy44OTggMCAxNC4zMjUgNi40MjYgMTQuMzI1IDE0LjMyNHMtNi40MjYgMTQuMzI1LTE0LjMyNSAxNC4zMjVjLTcuODk4IDAtMTQuMzI0LTYuNDI2LTE0LjMyNC0xNC4zMjVzNi40MjYtMTQuMzI0IDE0LjMyNC0xNC4zMjR6bS0yNjcuNjA0IDI3Ni40NC0yNC4yNDctNS41MTV2LTk1LjI3N2wyNC4yNDctNS41MDl6bTE5OC42NTMtMTY0Ljk3NGMuOTQ3LTMuMTI1IDMuODY3LTUuMzMzIDcuMTc2LTUuMzMzaDYzLjQyYzQuMTMzIDAgNy40OTUgMy4zNjIgNy40OTUgNy40OTV2MTcuODQxaC03OC4wOTF6bS0xNDAuMzA1LTUxLjU2OXYtMTUuNjE2YzAtMS4zNzggMS4xMjEtMi40OTggMi40OTgtMi40OThoNjcuMTg1YzEuMzc4IDAgMi40OTggMS4xMjEgMi40OTggMi40OTh2MTUuNjE2YzAgMS4zNzgtMS4xMjEgMi40OTgtMi40OTggMi40OThoLTY3LjE4NWMtMS4zNzcuMDAxLTIuNDk4LTEuMTItMi40OTgtMi40OTh6bTU1LjA2OSAxNy40ODl2MTkuNTUzaC0zNy45NTd2LTE5LjU1M3ptLTU1LjA2NiAzNS4yODNjMC0uNDA3LjMzMi0uNzM5LjczOS0uNzM5aDcwLjY5NmMuNDA3IDAgLjczOS4zMzIuNzM5LjczOXYxOC44MDFoLTcyLjE3NXYtMTguODAxem0tLjAwMyAzMy43OTFoMjQwLjE0OHYxNTMuNjU2aC0yNDAuMTQ4em0tMzcuNTQyIDE1My42NTZjLTMuMjA3IDAtNS44MTYtMi42MDktNS44MTYtNS44MTZ2LTE0Mi4wMjNjMC0zLjIwNyAyLjYwOS01LjgxNiA1LjgxNi01LjgxNmgyMi41NTF2MTUzLjY1NmMtNS4yMTEtLjAwMS0xNy40ODgtLjAwMS0yMi41NTEtLjAwMXptMjk5LjM3MiA0Mi43OWgtMjc3Ljk1N3YtMjcuNzk5aDI3Ny45NTZ2MjcuNzk5em03LjQ5NS00Mi43OTRjLS4wMjkgMC0uMDU4LjAwNC0uMDg3LjAwNGgtMTQuMDk5di0xNTMuNjU2aDIyLjU1MWMzLjIwNyAwIDUuODE2IDIuNjA5IDUuODE2IDUuODE2djE0Mi4wMjRjMCAzLjIwNy0yLjYwOSA1LjgxNi01LjgxNiA1LjgxNmgtOC4yNzhjLS4wMjkgMC0uMDU4LS4wMDQtLjA4Ny0uMDA0em0xMjUuNzkxIDE0MC4zNDNjLTkuMzc5IDAtNDcxLjEwNyAwLTQ4Mi4wMTkgMHYtNDQuOTE2bDE5LjY2NyAxMS45ODdjMjEuNTY3IDEzLjE0NSA0OC4zNjEgMTMuMTQ1IDY5LjkyOCAwIDE2Ljc1NC0xMC4yMTEgMzcuNTctMTAuMjEyIDU0LjMyNCAwIDIxLjU2OCAxMy4xNDUgNDguMzYxIDEzLjE0NSA2OS45MjggMCAxNi43NTQtMTAuMjExIDM3LjU3LTEwLjIxMiA1NC4zMjQgMCAyMS41NjggMTMuMTQ1IDQ4LjM2MSAxMy4xNDUgNjkuOTI4IDAgMTcuMDk3LTEwLjQyMSAzNy45NDEtOS45ODYgNTQuMzI0IDAgMjEuNTY3IDEzLjE0NCA0OC4zNjIgMTMuMTQ0IDY5LjkyOCAwbDE5LjY2Ny0xMS45ODdjLjAwMSAxMC41NTYuMDAxIDIyLjM4LjAwMSA0NC45MTZ6bTAtNjIuNDcyYy0yOS43ODkgMTguMTU2LTMwLjM1MyAxOC44MzYtMzYuNTI3IDIxLjEzMnYtNDQuMjU3YzAtNC4xMzktMy4zNTYtNy40OTUtNy40OTUtNy40OTVzLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1djQ3LjQyN2MtMTkuNDcyIDEuMTcyLTI4Ljk4NC03LjY4OC0zOC41MDYtMTEuODM2di0zMC4wNTRjMC05LjY0My03Ljg0Ni0xNy40ODktMTcuNDg5LTE3LjQ4OWgtMTAuNzgzdi0yNy43OTljMTMuMzQyIDAgMjEuNjc2LTEwLjA0OSAyMS42NzYtMjAuODA3di0zMS43NTVoNDUuMTAydjYyLjMzMWMwIDQuMTM5IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1czcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1di02OS44MjZjMC00LjEzOS0zLjM1Ni03LjQ5NS03LjQ5NS03LjQ5NWgtNTIuNTk3di0zNi41MjdoNzMuMTg0YzEyLjkyMyAwIDIzLjQzNiAxMC41MTMgMjMuNDM2IDIzLjQzNXYxNDMuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxMS4wMjQgMjI3LjE1M2gtNzkuNzI2Yy00LjE0IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTV2OTAuMDdjMCA0LjE0IDMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDc5LjcyNmM0LjE0IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTV2LTkwLjA3Yy4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6bS03LjQ5NSA5MC4wN2gtNjQuNzM1di03NS4wNzloNjQuNzM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTIuNjM1IDI0MC45N2gtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1IDAgNC4xNCAzLjM1NiA3LjQ5NSA3LjQ5NSA3LjQ5NWg2NC41MDVjNC4xMzkgMCA3LjQ5NS0zLjM1NiA3LjQ5NS03LjQ5NS4wMDEtNC4xMzktMy4zNTUtNy40OTUtNy40OTUtNy40OTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMi42MzUgMjcyLjE4OGgtNjQuNTA1Yy00LjEzOSAwLTcuNDk1IDMuMzU2LTcuNDk1IDcuNDk1czMuMzU2IDcuNDk1IDcuNDk1IDcuNDk1aDY0LjUwNWM0LjEzOSAwIDcuNDk1LTMuMzU2IDcuNDk1LTcuNDk1cy0zLjM1NS03LjQ5NS03LjQ5NS03LjQ5NXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzEyLjYzNSAzMDMuNDA2aC02NC41MDVjLTQuMTM5IDAtNy40OTUgMy4zNTYtNy40OTUgNy40OTVzMy4zNTYgNy40OTUgNy40OTUgNy40OTVoNjQuNTA1YzQuMTM5IDAgNy40OTUtMy4zNTYgNy40OTUtNy40OTVzLTMuMzU1LTcuNDk1LTcuNDk1LTcuNDk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjEuODk5IDI4Ny4xNzloNy41NDhsLTIuOTA0IDcuNDMyYy0xLjUwNyAzLjg1NS4zOTcgOC4yMDIgNC4yNTMgOS43MDkuODk2LjM1IDEuODE5LjUxNiAyLjcyNi41MTYgMi45OTcgMCA1LjgyNi0xLjgwOSA2Ljk4My00Ljc2OWw2LjktMTcuNjU1Yy45MDItMi4zMDcuNjA2LTQuOTEtLjc5MS02Ljk1NXMtMy43MTMtMy4yNjgtNi4xOS0zLjI2OGgtNy41NDhsMi45MDQtNy40MzJjMS41MDctMy44NTUtLjM5Ny04LjIwMi00LjI1My05LjcwOS0zLjg1NS0xLjUwOS04LjIwMy4zOTYtOS43MDkgNC4yNTNsLTYuOSAxNy42NTVjLS45MDIgMi4zMDctLjYwNiA0LjkxLjc5MSA2Ljk1NSAxLjM5NiAyLjA0NCAzLjcxMyAzLjI2OCA2LjE5IDMuMjY4eiIvPgogICAgPC9nPgo8L3N2Zz4=",lae="PHN2ZyB2aWV3Qm94PSIwIDAgMTI4IDEyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTk0LjcyNyA3My43MDhhNi43NSA2Ljc1IDAgMSAwIDYuNzUgNi43NSA2Ljc1NiA2Ljc1NiAwIDAgMCAtNi43NS02Ljc1em0wIDEwYTMuMjUgMy4yNSAwIDEgMSAzLjI1LTMuMjUgMy4yNTQgMy4yNTQgMCAwIDEgLTMuMjUgMy4yNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuMDgxIDczLjcwOGE2Ljc1IDYuNzUgMCAxIDAgNi43NSA2Ljc1IDYuNzU3IDYuNzU3IDAgMCAwIC02Ljc1LTYuNzV6bTAgMTBhMy4yNSAzLjI1IDAgMSAxIDMuMjUtMy4yNSAzLjI1NCAzLjI1NCAwIDAgMSAtMy4yNSAzLjI1eiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjY0Ljk2NiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9Ijc3LjU5MSIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjkwLjIxNiIgY3k9IjQ4LjAyMSIgcj0iMyIvPgogICAgICAgIDxjaXJjbGUgY3g9IjEwMi44NDEiIGN5PSI0OC4wMjEiIHI9IjMiLz4KICAgICAgICA8cGF0aCBkPSJtMTIxLjUgMzMuNWgtMTE1YTEuNzUxIDEuNzUxIDAgMCAwIC0xLjc1IDEuNzV2NTcuNWExLjc1MSAxLjc1MSAwIDAgMCAxLjc1IDEuNzVoMTUuOTQydjguMjVhMS43NTEgMS43NTEgMCAwIDAgMS43NSAxLjc1aDEwYTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoNTYuMTE2djguMjVhMS43NSAxLjc1IDAgMCAwIDEuNzUgMS43NWgxMGExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTguMjVoMTUuOTQyYTEuNzUxIDEuNzUxIDAgMCAwIDEuNzUtMS43NXYtNTcuNWExLjc1MSAxLjc1MSAwIDAgMCAtMS43NS0xLjc1em0tODkuMDU4IDY3LjVoLTYuNXYtNi41aDYuNXptNjkuNjE2IDBoLTYuNXYtNi41aDYuNXptMTcuNjkyLTEwaC0xMTEuNXYtNTRoMTExLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyLjY5MiA3NC4yNWExMC4yNSAxMC4yNSAwIDEgMCAtMTAuMjUtMTAuMjUgMTAuMjYxIDEwLjI2MSAwIDAgMCAxMC4yNSAxMC4yNXptLTEuNzUtMTYuNzYydjQuMDEyYTEuNzUgMS43NSAwIDAgMCAzLjUgMHYtNC4wMTJhNi43NSA2Ljc1IDAgMSAxIC0zLjUgMHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIuNjkyIDQ5Ljk1OGExLjc0OSAxLjc0OSAwIDAgMCAxLjc1LTEuNzV2LTNhMS43NSAxLjc1IDAgMCAwIC0zLjUgMHYzYTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4Ljc5MiA1MS4zNTNhMS43NSAxLjc1IDAgMCAwIDIuMzM3LS44MTZsMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyLTEuNTJsLTEuMyAyLjdhMS43NSAxLjc1IDAgMCAwIC44MTUgMi4zMzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1LjA1MiA1NS45MTlhMS43NDggMS43NDggMCAwIDAgMS4wODgtLjM4bDIuMzQ4LTEuODY4YTEuNzUgMS43NSAwIDAgMCAtMi4xNzktMi43MzlsLTIuMzQ4IDEuODY4YTEuNzUgMS43NSAwIDAgMCAxLjA5MSAzLjEyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNC4yNTYgNTAuNTM3YTEuNzUgMS43NSAwIDEgMCAzLjE1Mi0xLjUyMWwtMS4zLTIuN2ExLjc1IDEuNzUgMCAwIDAgLTMuMTUyIDEuNTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2LjkgNTMuNjcxIDIuMzQ5IDEuODY4YTEuNzUgMS43NSAwIDAgMCAyLjE3OC0yLjc0bC0yLjM0OC0xLjg2N2ExLjc1IDEuNzUgMCAxIDAgLTIuMTc5IDIuNzM5eiIvPgogICAgICAgIDxwYXRoIGQ9Im01OC44MDggNzAuMjkyaDUwLjE5MmExLjc1MSAxLjc1MSAwIDAgMCAxLjc1LTEuNzV2LTEwYTEuNzUgMS43NSAwIDAgMCAtMS43NS0xLjc1aC01MC4xOTJhMS43NDkgMS43NDkgMCAwIDAgLTEuNzUgMS43NXYxMGExLjc1IDEuNzUgMCAwIDAgMS43NSAxLjc1em0xLjc1LTEwaDQ2LjY5MnY2LjVoLTQ2LjY5MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYuMTM1IDg3LjIwOGgzMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAtMy41aC0zMy4xMTVhMS43NSAxLjc1IDAgMCAwIDAgMy41eiIvPgogICAgPC9nPgo8L3N2Zz4=",Lae="PHN2ZyBoZWlnaHQ9IjYwMHB0IiB2aWV3Qm94PSItNDUgLTE5IDYwMCA2MDAuMDAxIiB3aWR0aD0iNjAwcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTguMjE0ODQ0IDBoLTUwLjk3NjU2M2MtMTguMTk1MzEyLjAyNzM0MzgtMzIuOTMzNTkzIDE0Ljc2OTUzMS0zMi45NjQ4NDMgMzIuOTY0ODQ0djI0Ljg3MTA5NGgtMTQ0LjgyNDIxOWMtNjEuNDM3NS4wOTM3NS0xMTIuMjUzOTA3IDQ3Ljg3MTA5My0xMTYuMTMyODEzIDEwOS4xODc1aC0zOS4wNjY0MDZjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40Njg3NS05Ljk4ODI4MSA5Ljk4ODI4MXYzMC41MTE3MTloLTEwLjI4NTE1N2MtMy43MDcwMzEgMC03LjEwNTQ2OCAyLjA0Njg3NC04LjgzNTkzNyA1LjMyODEyNGwtODUuNzY5NTMxIDE2Mi41NTQ2ODhjLTEuNjM2NzE5IDMuMDk3NjU2LTEuNTMxMjUgNi44MjQyMTkuMjc3MzQ0IDkuODI0MjE5IDEuODA4NTkzIDMgNS4wNTA3ODEgNC44MjgxMjUgOC41NTQ2ODcgNC44MjgxMjVoMTA4LjEyMTA5NGMuMTc1NzgxIDMuOTU3MDMxLjY3NTc4MSA3Ljg4NjcxOCAxLjQ5NjA5MyAxMS43NjE3MTggNy41NzAzMTMgMzUuMDU0Njg4IDM4LjU1ODU5NCA2MC4wOTM3NSA3NC40MjU3ODIgNjAuMTI1IDM1Ljg3MTA5NC4wMzUxNTcgNjYuOTAyMzQ0LTI0Ljk0OTIxOCA3NC41MzUxNTYtNTkuOTk2MDkzLjg0Mzc1LTMuOTEwMTU3IDEuMzY3MTg4LTcuODkwNjI1IDEuNTUwNzgxLTExLjg5NDUzMWgxMDguMTM2NzE5YzMuNSAwIDYuNzUtMS44MzIwMzIgOC41NTQ2ODgtNC44MzIwMzIgMS44MDg1OTMtMyAxLjkxNzk2OC02LjcyNjU2Mi4yNzczNDMtOS44MjAzMTJsLTg1Ljc2OTUzMS0xNjIuNTQ2ODc1Yy0xLjczMDQ2OS0zLjI4OTA2My01LjE0NDUzMS01LjMzOTg0NC04Ljg1OTM3NS01LjMzMjAzMWgtMTAuMjYxNzE5di0zMC41MTE3MTljMC01LjUxOTUzMS00LjQ3MjY1Ni05Ljk4ODI4MS05Ljk4ODI4MS05Ljk4ODI4MWgtNDQuNTM1MTU2YzIuMTQwNjI1LTIyLjQ3MjY1NyAyMC45ODgyODEtMzkuNjQ0NTMyIDQzLjU2MjUtMzkuNjk5MjE5aDE0NC44MDQ2ODd2MjguMTYwMTU2Yy4wMzUxNTYgMTguMTkxNDA2IDE0Ljc3NzM0NCAzMi45MzM1OTQgMzIuOTY4NzUgMzIuOTYwOTM3aDUwLjk4MDQ2OWM1LjUxNTYyNSAwIDkuOTg4MjgxLTQuNDY0ODQzIDkuOTg4MjgxLTkuOTg4Mjgxdi0xNjguNDY4NzVjMC01LjUxMTcxOS00LjQ2NDg0NC05Ljk4MDQ2ODUtOS45NzY1NjItOS45ODgyODF6bS0yNTAuOTE3OTY5IDM5Ny42MzI4MTJjLTUuNTY2NDA2IDI1LjkzMzU5NC0yOC41MDc4MTMgNDQuNDUzMTI2LTU1LjAzMTI1IDQ0LjQyMTg3Ni0yNi41MzEyNS0uMDI3MzQ0LTQ5LjQyNTc4MS0xOC41OTc2NTctNTQuOTMzNTk0LTQ0LjU0Njg3Ni0uNTU0Njg3LTIuNDUzMTI0LS45MjU3ODEtNC45NDkyMTgtMS4xMjEwOTMtNy40NTMxMjRoMTEyLjIzNDM3NGMtLjE5OTIxOCAyLjU1MDc4MS0uNTg1OTM3IDUuMDgyMDMxLTEuMTQ4NDM3IDcuNTc4MTI0em0xMTIuNjA1NDY5LTI3LjU3NDIxOGgtMTAxLjM5NDUzMmMtLjA2NjQwNiAwLS4xMzY3MTggMC0uMjAzMTI0IDBoLTEzMS45NjA5MzhjLS4wNzAzMTIgMC0uMTM2NzE5IDAtLjIwNzAzMSAwaC0xMDEuMzk0NTMxbDc1LjI1MzkwNi0xNDIuNTU0Njg4aDE4NC42ODM1OTR6bS05OS40NzI2NTYtMTYyLjUzNTE1NmgtMTM2LjE5MTQwN3YtMjAuNTE5NTMyaDEzNi4xOTE0MDd6bTguOTk2MDkzLTEwMC4xODM1OTRjLTMzLjUzNTE1Ni4yNzM0MzctNjEuMjQ2MDkzIDI2LjIzODI4MS02My42OTUzMTIgNTkuNjgzNTk0aC0zMi40MzM1OTRjMy44NDc2NTYtNTAuMjczNDM4IDQ1LjczMDQ2OS04OS4xMjUgOTYuMTUyMzQ0LTg5LjE4NzVoMTQ0LjgwNDY4N3YyOS41MDM5MDZ6bTIxOC43Njk1MzEgNjEuMTQwNjI1aC00MC45ODQzNzRjLTcuMTY3OTY5LS4wMTk1MzEtMTIuOTcyNjU3LTUuODI0MjE5LTEyLjk5MjE4OC0xMi45ODgyODF2LTEyMi41MDc4MTNjLjAxOTUzMS03LjE2MDE1NiA1LjgyNDIxOS0xMi45NjQ4NDQgMTIuOTkyMTg4LTEyLjk4NDM3NWg0MC45ODQzNzR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im05MC41MTU2MjUgNDE1Ljk5MjE4OGMwLTUuNTE1NjI2LTQuNDcyNjU2LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4MjgyaC02MS4zOTg0MzhjLTUuNTE1NjI1IDAtOS45ODgyODEgNC40NzI2NTYtOS45ODgyODEgOS45ODgyODIgMCA1LjUxOTUzMSA0LjQ3MjY1NiA5Ljk5MjE4NyA5Ljk4ODI4MSA5Ljk5MjE4N2g2MS4zOTg0MzhjNS41MTU2MjUgMCA5Ljk4ODI4MS00LjQ3MjY1NiA5Ljk4ODI4MS05Ljk5MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNy41MzkwNjIgNDcyLjY3MTg3NS00MC4wNzAzMTIgMzcuNzQ2MDk0Yy0yLjY0MDYyNSAyLjQzMzU5My0zLjc3MzQzOCA2LjEwMTU2Mi0yLjk1NzAzMSA5LjU5NzY1Ni44MTI1IDMuNTAzOTA2IDMuNDQxNDA2IDYuMjk2ODc1IDYuODg2NzE5IDcuMzE2NDA2IDMuNDQ1MzEyIDEuMDIzNDM4IDcuMTc1NzgxLjExNzE4OCA5Ljc2NTYyNC0yLjM3NWw0MC4wNzAzMTMtMzcuNzM4MjgxYzIuNjQwNjI1LTIuNDMzNTk0IDMuNzY5NTMxLTYuMTAxNTYyIDIuOTU3MDMxLTkuNjA1NDY5LS44MTY0MDYtMy40OTYwOTMtMy40NDUzMTItNi4yOTI5NjktNi44ODY3MTgtNy4zMTY0MDYtMy40NDkyMTktMS4wMTk1MzEtNy4xNzU3ODItLjExMzI4MS05Ljc2NTYyNiAyLjM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM2NS41NDY4NzUgNDA2LjAwMzkwNmgtNjEuMzkwNjI1Yy01LjUxOTUzMSAwLTkuOTkyMTg4IDQuNDcyNjU2LTkuOTkyMTg4IDkuOTg4MjgyIDAgNS41MTk1MzEgNC40NzI2NTcgOS45OTIxODcgOS45OTIxODggOS45OTIxODdoNjEuMzkwNjI1YzUuNTE5NTMxIDAgOS45ODgyODEtNC40NzI2NTYgOS45ODgyODEtOS45OTIxODcgMC01LjUxNTYyNi00LjQ2ODc1LTkuOTg4MjgyLTkuOTg4MjgxLTkuOTg4Mjgyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY3LjA0Njg3NSA0NzIuNjcxODc1Yy0yLjU4OTg0NC0yLjQ4ODI4MS02LjMxNjQwNi0zLjM5NDUzMS05Ljc2NTYyNS0yLjM3NS0zLjQ0NTMxMiAxLjAyMzQzNy02LjA3NDIxOSAzLjgyMDMxMy02Ljg4NjcxOSA3LjMxNjQwNi0uODE2NDA2IDMuNTAzOTA3LjMxNjQwNyA3LjE3MTg3NSAyLjk1MzEyNSA5LjYwNTQ2OWw0MC4wNjI1IDM3LjcyMjY1NmMyLjU4OTg0NCAyLjQ5MjE4OCA2LjMxNjQwNiAzLjQwMjM0NCA5Ljc2NTYyNSAyLjM3NSAzLjQ0MTQwNy0xLjAxOTUzMSA2LjA3MDMxMy0zLjgxMjUgNi44ODY3MTktNy4zMTY0MDYuODEyNS0zLjQ5NjA5NC0uMzE2NDA2LTcuMTY0MDYyLTIuOTU3MDMxLTkuNjAxNTYyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyLjI3MzQzOCA0OTAuOTMzNTk0Yy01LjUxNTYyNiAwLTkuOTg4MjgyIDQuNDcyNjU2LTkuOTg4MjgyIDkuOTkyMTg3djUwLjg0NzY1N2MwIC4yNDYwOTMtLjAyMzQzNy41MDM5MDYtLjAyMzQzNy43MzgyODEgMCA1LjUxNTYyNSA0LjQ3MjY1NiA5Ljk4ODI4MSA5Ljk4ODI4MSA5Ljk4ODI4MS40MjU3ODEtLjAwMzkwNi44NTU0NjktLjAyNzM0NCAxLjI3NzM0NC0uMDg1OTM4IDQuOTkyMTg3LS42Mjg5MDYgOC43MzgyODEtNC44Nzg5MDYgOC43MzgyODEtOS45MDYyNXYtNTEuNTgyMDMxYzAtNS41MTk1MzEtNC40NzI2NTYtOS45OTIxODctOS45OTIxODctOS45OTIxODd6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",jae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzguNTExLDg4LjYyMkM0MDMuNjk0LDY5LjIyMywzMjguNDM3LDM5LjAxNywyNjAuODc4LDEuMjY5Yy0zLjAzLTEuNjkyLTYuNzIzLTEuNjkzLTkuNzU1LDAKCQkJQzE4MS42MjEsNDAuMDk5LDExMC40MzIsNjguNjcyLDMzLjQ4OSw4OC42MjNjLTQuNDEsMS4xNDQtNy40OSw1LjEyNC03LjQ5LDkuNjh2MTEwLjM5NGMwLDExMy41MzUsNTUuMjkyLDE4OC42MzksMTAxLjY3OCwyMzEuNjUKCQkJYzQ5Ljc1Nyw0Ni4xMzgsMTA3LjQ2LDcxLjY1NSwxMjguMzI0LDcxLjY1NWMyMC44NjQsMCw3OC41NjctMjUuNTE3LDEyOC4zMjQtNzEuNjU1CgkJCWM0Ni4zODQtNDMuMDExLDEwMS42NzgtMTE4LjExNCwxMDEuNjc4LTIzMS42NVY5OC4zMDJDNDg2LjAwMiw5My43NDYsNDgyLjkyMiw4OS43NjYsNDc4LjUxMSw4OC42MjJ6IE0zNzAuNzI2LDQyNS42NzgKCQkJYy0yNy41NTcsMjUuNTUzLTU0LjMzNiw0MS42ODUtNzEuOTUsNTAuNzE4Yy0yMi4zMTksMTEuNDQ3LTM3LjgxLDE1LjYwMy00Mi43NzYsMTUuNjAzYy00Ljk2NiwwLTIwLjQ1Ni00LjE1NS00Mi43NzYtMTUuNjAzCgkJCWMtMTcuNjEyLTkuMDMzLTQ0LjM5Mi0yNS4xNjUtNzEuOTUtNTAuNzE4Yy00My40NjQtNDAuMzAzLTk1LjI3Ni0xMTAuNjYzLTk1LjI3Ni0yMTYuOTgzVjEwNi4wMDgKCQkJYzczLjk2NC0xOS44LDE0Mi44MDEtNDcuNTIzLDIxMC4wMDMtODQuNTc0YzY1LjQ5OCwzNi4wNTksMTM3LjgyNyw2NS4xODUsMjEwLDg0LjU3MXYxMDIuNjloMC4wMDEKCQkJQzQ2Ni4wMDEsMzE1LjAxNSw0MTQuMTksMzg1LjM3NSwzNzAuNzI2LDQyNS42Nzh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ0My43OTMsMTE1LjM2OGMtNjMuMzM2LTE4LjQxMy0xMjQuOTM2LTQzLjQyNC0xODMuMDg3LTc0LjMzN2MtMi45MzgtMS41NjMtNi40NjEtMS41Ni05LjM5NywwLjAwNgoJCQlDMTkzLjA2OSw3Mi4wNzksMTMxLjQ3LDk3LjA5NCw2OC4yMiwxMTUuMzg3Yy00LjI3NywxLjIzNy03LjIyMiw1LjE1My03LjIyMiw5LjYwNnY4My43MDJjMCwzOS4wNzcsNy40MDUsNzYuMTYxLDIyLjAwOCwxMTAuMjIyCgkJCWMxNC41MywzMy44OTEsMzYuMjAxLDY0LjgyLDY0LjQwOSw5MS45MzNjMjAuMTc1LDE5LjM5LDQzLjQ2OSwzNi40NzcsNjcuMzY3LDQ5LjQxM2M0LjI4MiwyLjMxOCwyNi4zMDUsMTQuMDAzLDM5LjQwMiwxNi40MjEKCQkJYzAuNiwwLjExLDEuMjA3LDAuMTY2LDEuODE1LDAuMTY2YzAuNjA4LDAsMS4yMTUtMC4wNTYsMS44MTUtMC4xNjZjMTMuMDk3LTIuNDE4LDM1LjEyLTE0LjEwMywzOS40MDItMTYuNDIxCgkJCWMyMy44OTUtMTIuOTM2LDQ3LjE5LTMwLjAyMyw2Ny4zNjctNDkuNDEzYzI4LjIwOC0yNy4xMTEsNDkuODc4LTU4LjA0MSw2NC40MDktOTEuOTMzYzE0LjYwMy0zNC4wNiwyMi4wMDgtNzEuMTQ0LDIyLjAwOC0xMTAuMjIyCgkJCXYtODMuNzI0QzQ1MS4wMDEsMTIwLjUyNCw0NDguMDYzLDExNi42MTEsNDQzLjc5MywxMTUuMzY4eiBNNDMxLjAwMSwyMDguNjk1YzAsNzMuMzc2LTI3LjAwOCwxMzYuNTM4LTgwLjI3NiwxODcuNzM0CgkJCWMtMTguODk4LDE4LjE2Mi00MC42OTMsMzQuMTUzLTYzLjAyOSw0Ni4yNDVjLTEwLjE2Nyw1LjUwMy0yMy44OTIsMTEuOTE5LTMxLjY5NywxMy45MzRjLTcuODA1LTIuMDE1LTIxLjUzLTguNDMxLTMxLjY5Ni0xMy45MzQKCQkJYy0yMi4zMzctMTIuMDkzLTQ0LjEzMi0yOC4wODQtNjMuMDI5LTQ2LjI0NWMtNTMuMjY3LTUxLjE5NS04MC4yNzYtMTE0LjM1OS04MC4yNzYtMTg3LjczNFYxMzIuNDgKCQkJYzYwLjM1NC0xNy45NjksMTE5LjE3Mi00MS45MzEsMTc1LjAxOS03MS4zMDZjNTUuNzU3LDI5LjI1MSwxMTQuNTY5LDUzLjIwNCwxNzQuOTgzLDcxLjI3NFYyMDguNjk1eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuMDI3LDM1OC4zMDVsLTAuMi0wLjIxNWMtMy43MDEtNC4wNTUtOS45ODctNC4zNjctMTQuMDczLTAuNjg5Yy00LjEwNSwzLjY5NC00LjQzOCwxMC4wMTctMC43NDQsMTQuMTIybDAuMiwwLjIxNQoJCQljMS45NzEsMi4xNTgsNC42NzMsMy4yNTYsNy4zODcsMy4yNTZjMi4zODMsMCw0Ljc3NS0wLjg0OCw2LjY4Ni0yLjU2N0MxNzYuMzg4LDM2OC43MzMsMTc2LjcyMSwzNjIuNDA5LDE3My4wMjcsMzU4LjMwNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjI2Ljk2Myw0MDMuNjk1Yy0xMi4wNDYtNy42MDItMjMuNjQ1LTE2LjM2NC0zNC40NzMtMjYuMDQ0Yy00LjExNy0zLjY4Mi0xMC40MzktMy4zMjctMTQuMTIsMC43OQoJCQljLTMuNjgsNC4xMTgtMy4zMjYsMTAuNDM5LDAuNzkyLDE0LjEyYzExLjY1MywxMC40MTgsMjQuMTQ1LDE5Ljg1NCwzNy4xMjksMjguMDQ4YzEuNjU3LDEuMDQ1LDMuNTAyLDEuNTQ0LDUuMzI3LDEuNTQ0CgkJCWMzLjMxOCwwLDYuNTY0LTEuNjUsOC40NjYtNC42NjRDMjMzLjAzMiw0MTIuODE4LDIzMS42MzUsNDA2LjY0MiwyMjYuOTYzLDQwMy42OTV6Ii8+CiAgICAgICAgPHBhdGggZD0iTTMwOC44OTgsMjA5LjA3N3YtMzIuOTIxYzAtMjkuMTY4LTIzLjczLTUyLjg5OC01Mi45LTUyLjg5OGMtMjkuMTY4LDAtNTIuODk4LDIzLjczLTUyLjg5OCw1Mi44OTh2MzIuOTIxCgkJCWMtMTEuODk4LDAuNDI5LTIxLjQ0NywxMC4yMzUtMjEuNDQ3LDIyLjIzNnY3Ni43NjljLTAuMDAxLDEyLjI3Myw5Ljk4NCwyMi4yNTcsMjIuMjU3LDIyLjI1N0gzMDguMDkKCQkJYzEyLjI3MywwLDIyLjI1OC05Ljk4NCwyMi4yNTgtMjIuMjU3di03Ni43NjlDMzMwLjM0OCwyMTkuMzExLDMyMC43OTgsMjA5LjUwNCwzMDguODk4LDIwOS4wNzd6IE0yMjMuMDk5LDE3Ni4xNTYKCQkJYzAtMTguMTQsMTQuNzU5LTMyLjg5OCwzMi45LTMyLjg5OGMxOC4xNCwwLDMyLjg5OCwxNC43NTgsMzIuODk4LDMyLjg5OHYzMi45aC02NS43OTlWMTc2LjE1NnogTTMxMC4zNDcsMzA4LjA4MwoJCQljMCwxLjIyNC0xLjAzNCwyLjI1Ny0yLjI1OCwyLjI1N0gyMDMuOTA4Yy0xLjIyNCwwLTIuMjU4LTEuMDMzLTIuMjU4LTIuMjU3di03Ni43NjloMC4wMDFjMC0xLjIyNCwxLjAzNC0yLjI1NywyLjI1OC0yLjI1N2g5LjE4OQoJCQloODUuNzk5aDkuMTkyYzEuMjI0LDAsMi4yNTgsMS4wMzMsMi4yNTgsMi4yNTdWMzA4LjA4M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI0OS42NGMtNy43MDEsMC0xMy45ODIsNi4yODEtMTMuOTgyLDEzLjk4MmMwLDMuNzg2LDEuNTIzLDcuMjI1LDMuOTgyLDkuNzQ2djkuNzg3YzAsNS41MjIsNC40NzcsMTAsMTAsMTAKCQkJYzUuNTIzLDAsMTAtNC40NzgsMTAtMTB2LTkuNzg3YzIuNDU5LTIuNTIyLDMuOTgyLTUuOTYsMy45ODItOS43NDZDMjY5Ljk4MiwyNTUuOTIxLDI2My43MDEsMjQ5LjY0LDI1NiwyNDkuNjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",gae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDk2Ljg4MjgxMiAwaC00ODEuNzY1NjI0Yy04LjM0NzY1NyAwLTE1LjExNzE4OCA2Ljc2OTUzMS0xNS4xMTcxODggMTUuMTE3MTg4djQ4MS43NjU2MjRjMCA4LjM0NzY1NyA2Ljc2OTUzMSAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGg0ODEuNzY1NjI0YzguMzQ3NjU3IDAgMTUuMTE3MTg4LTYuNzY5NTMxIDE1LjExNzE4OC0xNS4xMTcxODh2LTQ4MS43NjU2MjRjMC04LjM0NzY1Ny02Ljc2OTUzMS0xNS4xMTcxODgtMTUuMTE3MTg4LTE1LjExNzE4OHptLTQwNi4xNzU3ODEgNDIxLjI5Mjk2OXYtODguNjk1MzEzaDExOS4wNzQyMTl2ODguNjk1MzEzem0tNjAuNDcyNjU2LTM5MS4wNTg1OTRoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTM1Mi44Mzk4NDQtNTguNDUzMTI1djI4LjIxODc1aC0yNTQuMTQ4NDM4di0yOC4yMTg3NXptLTI1NC4xNDg0MzggMjM5Ljg3MTA5NGgyNTQuMTUyMzQ0djMwLjIzODI4MWgtMjU0LjE1MjM0NHptMC0zMC4yMzQzNzV2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTZ2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptMC02MC40NzI2NTd2LTMwLjIzODI4MWgyNTQuMTUyMzQ0djMwLjIzODI4MXptLTk4LjY5MTQwNiAzMC4yMzQzNzZoNjguNDUzMTI1djMwLjIzODI4MWgtNjguNDUzMTI1em0wIDYwLjQ3MjY1Nmg2OC40NTMxMjV2MzAuMjM4MjgxaC02OC40NTMxMjV6bTAgNjAuNDcyNjU2aDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptMzgzLjA3ODEyNSAwaDY4LjQ1MzEyNXYzMC4yMzgyODFoLTY4LjQ1MzEyNXptNjguNDUzMTI1LTMwLjIzNDM3NWgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1N2gtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0wLTYwLjQ3MjY1NmgtNjguNDUzMTI1di0zMC4yMzgyODFoNjguNDUzMTI1em0tMjQxLjc1IDI3Mi4xMjVoMzAuMjM4Mjgxdjg4LjY5NTMxM2gtMzAuMjM4Mjgxem02MC40NzY1NjMgMGgxMjAuODAwNzgxdjg4LjY5NTMxM2gtMTIwLjgwMDc4MXptLTI3MC4yNTc4MTMgMTQ5LjE2Nzk2OXYtMTQ5LjE2Nzk2OWgzMC4yMzgyODF2MTAzLjgxMjVjMCA4LjM0NzY1NiA2Ljc2OTUzMiAxNS4xMTcxODggMTUuMTE3MTg4IDE1LjExNzE4OGgzNjAuODIwMzEyYzguMzQ3NjU2IDAgMTUuMTE3MTg4LTYuNzY5NTMyIDE1LjExNzE4OC0xNS4xMTcxODh2LTEwMy44MTI1aDMwLjIzODI4MXYxNDkuMTY3OTY5em0wIDAiLz4KICAgIDwvZz4KPC9zdmc+",Tae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0yIDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTM0OC4yNDYwOTQgMzc2Ljc4NTE1NmMtMy4yNS0yLjYwNTQ2OC03Ljk5MjE4OC0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTI4Ljk0OTIxOSAzNi4wOTM3NWMtMy45ODQzNzUgNC45Njg3NS0uMzY3MTg4IDEyLjI1NzgxMiA1Ljg3NSAxMi4yNTc4MTIgMi4yMTA5MzcgMCA0LjM5ODQzNy0uOTY4NzUgNS44ODY3MTktMi44MjQyMTlsMjguOTQ5MjE4LTM2LjA5Mzc1YzIuNjA1NDY5LTMuMjUgMi4wODU5MzgtNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzkwLjM1OTM3NSAzNTguNzM4MjgxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg3LTIuMDgyMDMxLTEwLjU5NzY1NiAxLjE2NDA2M2wtMjguOTQ5MjE5IDM2LjA5Mzc1Yy0zLjk4NDM3NSA0Ljk2ODc1LS4zNjcxODggMTIuMjU3ODEyIDUuODc1IDEyLjI1NzgxMiAyLjIxMDkzOCAwIDQuMzk4NDM4LS45Njg3NSA1Ljg4NjcxOS0yLjgyNDIxOGwyOC45NDkyMTktMzYuMDkzNzVjMi42MDU0NjgtMy4yNDYwOTQgMi4wODU5MzctNy45OTIxODgtMS4xNjQwNjMtMTAuNTk3NjU3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTExLjc1IDQyMi4wNTA3ODFjMi4xMDkzNzUgMCA0LjIwNzAzMS0uODc4OTA2IDUuNjk5MjE5LTIuNTk3NjU2bDM5LjYxMzI4MS00NS42NDQ1MzFjMi43MzA0NjktMy4xNDQ1MzIgMi4zOTQ1MzEtNy45MDYyNS0uNzUtMTAuNjMyODEzLTMuMTQ0NTMxLTIuNzMwNDY5LTcuOTEwMTU2LTIuMzk0NTMxLTEwLjYzNjcxOS43NWwtMzkuNjE3MTg3IDQ1LjY0NDUzMWMtNC4yNTM5MDYgNC45MDIzNDQtLjY5NTMxMyAxMi40ODA0NjkgNS42OTE0MDYgMTIuNDgwNDY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk2LjYyMTA5NCAzNzYuNzg1MTU2Yy0zLjI1LTIuNjA1NDY4LTcuOTk2MDk0LTIuMDgyMDMxLTEwLjYwMTU2MyAxLjE2NDA2M2wtMTQuNDcyNjU2IDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5NjA5NCAxLjE2NDA2MyAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjUgOC4wMTE3MTggMi4wNjI1IDEwLjU5NzY1Ni0xLjE2NDA2MmwxNC40NzY1NjItMTguMDQ2ODc2YzIuNjA1NDY5LTMuMjUgMi4wODIwMzItNy45OTIxODctMS4xNjQwNjItMTAuNTk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDM3Ljk5MjE4OCAzOTQuODMyMDMxYy0zLjI1LTIuNjA1NDY5LTcuOTkyMTg4LTIuMDgyMDMxLTEwLjU5NzY1NyAxLjE2NDA2M2wtMTQuNDc2NTYyIDE4LjA0Njg3NWMtMi42MDU0NjkgMy4yNS0yLjA4MjAzMSA3Ljk5MjE4NyAxLjE2NDA2MiAxMC41OTc2NTYgMy4yNjk1MzEgMi42MjEwOTQgOC4wMTE3MTkgMi4wNjI1IDEwLjYwMTU2My0xLjE2NDA2M2wxNC40NzI2NTYtMTguMDQ2ODc0YzIuNjA1NDY5LTMuMjQ2MDk0IDIuMDgyMDMxLTcuOTkyMTg4LTEuMTY0MDYyLTEwLjU5NzY1N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTExNi40NzI2NTYgMzYyLjk4NDM3NWMtMy4yNS0yLjYwNTQ2OS03Ljk5MjE4Ny0yLjA4MjAzMS0xMC41OTc2NTYgMS4xNjQwNjNsLTE0LjQ3NjU2MiAxOC4wNTA3ODFjLTIuNjA1NDY5IDMuMjQ2MDkzLTIuMDgyMDMyIDcuOTkyMTg3IDEuMTY0MDYyIDEwLjU5NzY1NiAzLjI2OTUzMSAyLjYyMTA5NCA4LjAxMTcxOSAyLjA2MjUgMTAuNTk3NjU2LTEuMTY0MDYzbDE0LjQ3MjY1Ni0xOC4wNDY4NzRjMi42MDkzNzYtMy4yNSAyLjA4NTkzOC03Ljk5NjA5NC0xLjE2MDE1Ni0xMC42MDE1NjN6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im01MDQuNDYwOTM4IDBjLTE3LjI1MzkwNyAwLTQ2Ni41OTM3NSAwLTQ5Ni45MjE4NzYgMC00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzY3MTg4LTcuNTM5MDYyIDcuNTM5MDYydjQ5My44NjcxODhjMCA0LjE3MTg3NSAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MiA3LjUzOTA2Mmg0MjIuMjEwOTM4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC00LjE2NDA2Mi0zLjM3ODkwNi03LjU0Mjk2OS03LjUzOTA2Mi03LjU0Mjk2OWgtNDE0LjY3MTg3NXYtMTQzLjg4MjgxMmgxNC4zNjcxODd2OTAuOTU3MDMxYzAgNC4xNjQwNjIgMy4zNzUgNy41MzkwNjIgNy41MzkwNjMgNy41MzkwNjJoMTI2LjQwMjM0NGM0LjE2MDE1NiAwIDcuNTM5MDYyLTMuMzc1IDcuNTM5MDYyLTcuNTM5MDYyIDAtNC4xNjAxNTYtMy4zNzg5MDYtNy41MzkwNjItNy41MzkwNjItNy41MzkwNjJoLTExOC44NjMyODF2LTgzLjQxNzk2OWgxNC41MzkwNjJ2MjYuMTIxMDkzYzAgNC4xNjQwNjMgMy4zNzUgNy41MzkwNjMgNy41MzkwNjIgNy41MzkwNjMgNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM3NSA3LjUzOTA2My03LjUzOTA2M3YtMjYuMTIxMDkzaDE1My43MTA5Mzd2ODMuNDE3OTY5aC0zNC4zMDg1OTNjLTQuMTYwMTU3IDAtNy41MzkwNjMgMy4zNzg5MDYtNy41MzkwNjMgNy41MzkwNjIgMCA0LjE2NDA2MiAzLjM3ODkwNiA3LjUzOTA2MiA3LjUzOTA2MyA3LjUzOTA2MmgyODEuNDcyNjU2YzQuMTY0MDYzIDAgNy41MzkwNjMtMy4zNzUgNy41MzkwNjMtNy41MzkwNjJ2LTkwLjk1NzAzMWgxNC4zNjcxODd2MTQzLjg4MjgxMmgtMzcuMDE1NjI1Yy00LjE2MDE1NiAwLTcuNTM5MDYyIDMuMzc4OTA3LTcuNTM5MDYyIDcuNTQyOTY5IDAgNC4xNzE4NzUgMy4zNzg5MDYgNy41MzkwNjIgNy41MzkwNjIgNy41MzkwNjJoNDQuNTU0Njg4YzQuMTYwMTU2IDAgNy41MzkwNjItMy4zNjcxODcgNy41MzkwNjItNy41MzkwNjIgMC01My44NjMyODEgMC00MzcuNDk2MDk0IDAtNDkzLjg2NzE4OCAwLTQuMTcxODc0LTMuMzc4OTA2LTcuNTM5MDYyLTcuNTM5MDYyLTcuNTM5MDYyem0tNDQ1LjM5ODQzOCAzMzQuOTAyMzQ0Yy0xMy43MTQ4NDQgMC0zMC4wNTg1OTQgMC00My45ODQzNzUgMCAwLTkuNTUwNzgyIDAtMTYuMjU3ODEzIDAtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2Mmg0My45ODQzNzV6bTAtNDEuODcxMDk0aC00My45ODQzNzV2LTI2Ljc3NzM0M2g0My45ODQzNzV6bTAtNDEuODU5Mzc0Yy05LjcwMzEyNSAwLTMzLjkxNzk2OSAwLTQzLjk4NDM3NSAwdi0yNi43ODkwNjNoNDMuOTg0Mzc1em0wLTQxLjg2NzE4OGgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMTUuMDc4MTI1LTI2Ljc4MTI1aDM2My43MTg3NXYyNi43ODEyNWgtMzYzLjcxODc1em0wIDgzLjcxODc1aDI4OS4zMDA3ODFjNC4xNjQwNjMgMCA3LjUzOTA2My0zLjM2NzE4NyA3LjUzOTA2My03LjUzOTA2MyAwLTQuMTYwMTU2LTMuMzc1LTcuNTM5MDYyLTcuNTM5MDYzLTcuNTM5MDYyLTEuMjM0Mzc1IDAtMjgyLjk0MTQwNiAwLTI4OS4zMDA3ODEgMHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1aC00NC4yNTc4MTNjLTQuMTY0MDYyIDAtNy41MzkwNjIgMy4zNzg5MDYtNy41MzkwNjIgNy41MzkwNjIgMCA0LjE3MTg3NiAzLjM3NSA3LjUzOTA2MyA3LjUzOTA2MiA3LjUzOTA2M2g0NC4yNTc4MTN2MjYuNzg5MDYzYy0xMS42MjUgMC0zNTQuNDkyMTg3IDAtMzYzLjcxODc1IDB6bTAgNDEuODcxMDk0aDM2My43MTg3NXYyNi43NzczNDNoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2MmgtMzYzLjcxODc1em0wIDQxLjg2NzE4N2gzNjMuNzE4NzV2MjYuNzgxMjVoLTM2My43MTg3NXptMCA0MS44NTkzNzVoMzYzLjcxODc1djI2Ljc4OTA2M2gtMzYzLjcxODc1em0wIDY4LjY0ODQzOHYtMjYuNzgxMjVoMzYzLjcxODc1djI2Ljc4MTI1Yy0zNS42MTcxODcgMC0zMjYuOTUzMTI1IDAtMzYzLjcxODc1IDB6bTM5My4zMzU5MzcgOTguNDk2MDk0aC0xODMuMzI4MTI0di00MC42Njc5NjljMC00LjE2NDA2My0zLjM3NS03LjUzOTA2My03LjUzOTA2My03LjUzOTA2M3MtNy41MzkwNjMgMy4zNzUtNy41MzkwNjMgNy41MzkwNjN2NDAuNjY3OTY5aC0yNi4xNDA2MjR2LTgzLjQxNDA2M2gyNi4xNDA2MjR2MTIuNTg1OTM3YzAgNC4xNjc5NjkgMy4zNzUgNy41MzkwNjMgNy41MzkwNjMgNy41MzkwNjNzNy41MzkwNjMtMy4zNzEwOTQgNy41MzkwNjMtNy41MzkwNjN2LTEyLjU4OTg0M2gxNTMuNzEwOTM3djI2LjEyMTA5M2MwIDQuMTY0MDYzIDMuMzc1IDcuNTM5MDYzIDcuNTM5MDYzIDcuNTM5MDYzIDQuMTY0MDYyIDAgNy41MzkwNjItMy4zNzUgNy41MzkwNjItNy41MzkwNjN2LTI2LjEyMTA5M2gxNC41MzkwNjJ6bTI5LjQ0NTMxMy05OC40OTYwOTRjLTEzLjc4OTA2MyAwLTI5Ljg2NzE4NyAwLTQzLjk4NDM3NSAwdi0yNi43ODEyNWg0My45ODQzNzV6bTAtNDEuODU5Mzc1aC00My45ODQzNzV2LTI2Ljc4OTA2M2g0My45ODQzNzV6bTAtNDEuODY3MTg4aC00My45ODQzNzV2LTI2Ljc4MTI1aDQzLjk4NDM3NXptMC00MS44NTkzNzVoLTQzLjk4NDM3NXYtMjYuNzg5MDYyaDQzLjk4NDM3NXptMC00MS44NzEwOTRoLTQzLjk4NDM3NXYtMjYuNzc3MzQzaDQzLjk4NDM3NXptMC00MS44NTkzNzRoLTQzLjk4NDM3NXYtMjYuNzg5MDYzaDQzLjk4NDM3NXptMC00MS44NjcxODhoLTQzLjk4NDM3NXYtMjYuNzgxMjVoNDMuOTg0Mzc1em0wLTQxLjg1OTM3NWgtNDMuOTg0Mzc1di0yNi43ODEyNWg0My45ODQzNzV6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",yae="PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01Ni44MzggMWgtNDkuNjc2Yy0zLjM5OCAwLTYuMTYyIDIuNzY0LTYuMTYyIDYuMTYyIDAgLjY2NS4xMDYgMS4zMi4zMTYgMS45NDlsLjU1OCAxLjY3NmMuODQxIDIuNTIgMy4xOSA0LjIxMyA1Ljg0NyA0LjIxM2g0LjM4NGwxLjUwNiAxMy41NTJjLjI4MiAyLjUzNiAyLjQxOCA0LjQ0OCA0Ljk2OSA0LjQ0OGgyNi44NGMyLjU1MSAwIDQuNjg4LTEuOTEyIDQuOTY5LTQuNDQ4bDEuNTA2LTEzLjU1Mmg0LjM4NGMyLjY1NyAwIDUuMDA2LTEuNjkzIDUuODQ2LTQuMjE0bC41NTgtMS42NzRjLjIxMS0uNjMuMzE3LTEuMjg1LjMxNy0xLjk1IDAtMy4zOTgtMi43NjQtNi4xNjItNi4xNjItNi4xNjJ6bS0zMi44MzggMzBoLTR2LThjMC0xLjEwMy44OTctMiAyLTJzMiAuODk3IDIgMnptMTAgMGgtNHYtOGMwLTEuMTAzLjg5Ny0yIDItMnMyIC44OTcgMiAyem0xMCAwaC00di04YzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTQuNDAyLTIuNjY4Yy0uMTQ3IDEuMzI0LTEuMTM4IDIuMzYzLTIuNDAyIDIuNjExdi03Ljk0M2MwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNHY4aC0ydi04YzAtMi4yMDYtMS43OTQtNC00LTRzLTQgMS43OTQtNCA0djhoLTJ2LThjMC0yLjIwNi0xLjc5NC00LTQtNHMtNCAxLjc5NC00IDR2Ny45NDJjLTEuMjY0LS4yNDgtMi4yNTQtMS4yODctMi40MDItMi42MTFsLTEuNDgxLTEzLjMzMWgzNS43NjZ6bTEyLjM4NC0xOS44NTMtLjU1OCAxLjY3NWMtLjU2NyAxLjcwMi0yLjE1NCAyLjg0Ni0zLjk0OSAyLjg0NmgtNDguNTU4Yy0xLjc5NCAwLTMuMzgxLTEuMTQ0LTMuOTQ5LTIuODQ2bC0uNTU4LTEuNjc2Yy0uMTQyLS40MjQtLjIxNC0uODY3LS4yMTQtMS4zMTYgMC0yLjI5NSAxLjg2Ny00LjE2MiA0LjE2Mi00LjE2Mmg0OS42NzZjMi4yOTUgMCA0LjE2MiAxLjg2NyA0LjE2MiA0LjE2MiAwIC40NDktLjA3Mi44OTItLjIxNCAxLjMxN3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTUgNWgtNmMtMS4xMDMgMC0yIC44OTctMiAydjJjMCAxLjEwMy44OTcgMiAyIDJoNmMxLjEwMyAwIDItLjg5NyAyLTJ2LTJjMC0xLjEwMy0uODk3LTItMi0yem0tNiA0di0yaDZsLjAwMSAyeiIvPgogICAgICAgIDxwYXRoIGQ9Im01MSA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDcgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTEgOWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDloMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NCA0MHYtMWgtMWMtLjExOSAwLTEuNzk5LjA0Mi0zLjE3OSAyLjAzNS0uMDQ2LS4wNjMtLjA5Mi0uMTMxLS4xMzgtLjE5My0uOTAzLTEuMjMtMS42ODMtMi4yOTMtMS42ODMtNC44NDJ2LTFoLTFjLS4xMzkgMC0yLjg5My4wNTctNC42MjQgMy4yNzgtMi4wNTMtMy4yMjMtNS4zMjgtMy4yNzgtNS4zNzYtMy4yNzhoLTF2MWMwIDIuNTU5LS43ODQgMy42MzMtMS42OTIgNC44NzctLjA0LjA1NS0uMDguMTE0LS4xMi4xNjktMS4zODMtMi4wMDQtMy4wNjktMi4wNDYtMy4xODgtMi4wNDZoLTF2MWMwIDIuNTQzLS45OTUgMy44MzMtMi4xNDcgNS4zMjctMS4zMzcgMS43MzMtMi44NTMgMy42OTctMi44NTMgNy42NzMgMCA2LjA3NSAzLjkyNSAxMCAxMCAxMGgxNGM2LjA3NSAwIDEwLTMuOTI1IDEwLTEwIDAtMy45NzYtMS41MTYtNS45NC0yLjg1My03LjY3My0xLjE1Mi0xLjQ5NC0yLjE0Ny0yLjc4NC0yLjE0Ny01LjMyN3ptLTE5IDE3YzAtMi4zOTYgMS4zNTgtMy43MTkgMi42NzItNSAuODUxLS44MyAxLjcyNC0xLjY4IDIuMTE1LTIuNzczLjU2LjMxIDEuMjEzIDEuMDQzIDEuMjEzIDIuNzczdjNoMnYtMWMwLTEuOTg2IDEuMjM5LTIuNjYgMi4xNDctMi44ODcuMzU1IDEuMzA0IDEuMjk1IDIuMjQ0IDIuMTQ2IDMuMDk0LjkxNi45MTYgMS43MDcgMS43MDcgMS43MDcgMi43OTMgMCAxLjM4My0xLjQ2MyA0LTcgNHMtNy0yLjYxNy03LTR6bTE0IDRoLS4xMDJjMS41NjItMS4yOCAyLjEwMi0yLjg5OSAyLjEwMi00IDAtMS45MTQtMS4yMTgtMy4xMzItMi4yOTMtNC4yMDctLjkxNi0uOTE2LTEuNzA3LTEuNzA3LTEuNzA3LTIuNzkzdi0xaC0xYy0uODkyIDAtMi4xOTMuMjc4LTMuMjQ1IDEuMDg5LS42ODItMi4zOTUtMi42MjgtMy4wODktMy43NTUtMy4wODloLTF2MWMwIC44NDUtLjY1NSAxLjUyNi0xLjcyNCAyLjU2OC0xLjQ2IDEuNDIzLTMuMjc2IDMuMTkzLTMuMjc2IDYuNDMyIDAgMS4xMDEuNTQgMi43MiAyLjEwMiA0aC0uMTAyYy0zLjg2OCAwLTgtMi4xMDItOC04IDAtMy4yOTQgMS4xODMtNC44MjggMi40MzYtNi40NTIgMS4wNTUtMS4zNjcgMi4xMzktMi43NzIgMi40NjUtNS4wODQuODkxLjczOSAyLjA5OSAyLjY0MiAyLjA5OSA3LjUzNmgyYzAtMi41Ni0uMzIzLTQuNDYxLS44MDMtNS44NzguMjI4LS4zNjYuNDY5LS43MTMuNzI2LTEuMDY2Ljg0Ni0xLjE1OSAxLjc5MS0yLjQ1MyAyLjAyMy00Ljg3OSAxLjQ1Ni40NTMgNC4wNTQgMi4wNjkgNC4wNTQgNy44MjNoMmMwLTEuNjMtLjE5MS0yLjk5LS41MDYtNC4xMzIuNjM3LTIuMjczIDEuNzYxLTMuMjE4IDIuNTY3LTMuNjAxLjIzOCAyLjM0NiAxLjEzNyAzLjU3IDIuMDEgNC43NTkuMjYyLjM1Ny41MDcuNzA4LjczOCAxLjA4LS40ODMgMS40MTgtLjgwOSAzLjMyNC0uODA5IDUuODk0aDJjMC00LjkwNiAxLjIxNC02LjgwNyAyLjA5OC03LjU0Mi4zMjUgMi4zMTUgMS40MTEgMy43MjIgMi40NjYgNS4wOSAxLjI1MyAxLjYyNCAyLjQzNiAzLjE1OCAyLjQzNiA2LjQ1MiAwIDUuODk4LTQuMTMyIDgtOCA4eiIvPgogICAgPC9nPgo8L3N2Zz4=",Dae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQ2NywwSDQ1QzIwLjE4NywwLDAsMjAuMTg3LDAsNDV2NDIyYzAsMjQuODEzLDIwLjE4Nyw0NSw0NSw0NWg0MjJjMjQuODEzLDAsNDUtMjAuMTg3LDQ1LTQ1VjQ1CgkJCUM1MTIsMjAuMTg3LDQ5MS44MTMsMCw0NjcsMHogTTQ4Miw0NjdjMCw4LjI3MS02LjcyOSwxNS0xNSwxNUg0NWMtOC4yNzEsMC0xNS02LjcyOS0xNS0xNVY0NWMwLTguMjcxLDYuNzI5LTE1LDE1LTE1aDQyMgoJCQljOC4yNzEsMCwxNSw2LjcyOSwxNSwxNVY0Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI1Niw4MWMtOTYuNDk1LDAtMTc1LDc4LjUwNS0xNzUsMTc1czc4LjUwNSwxNzUsMTc1LDE3NXMxNzUtNzguNTA1LDE3NS0xNzVTMzUyLjQ5NSw4MSwyNTYsODF6IE0yNTYsNDAxCgkJCWMtNzkuOTUzLDAtMTQ1LTY1LjA0Ny0xNDUtMTQ1czY1LjA0Ny0xNDUsMTQ1LTE0NXMxNDUsNjUuMDQ3LDE0NSwxNDVTMzM1Ljk1Myw0MDEsMjU2LDQwMXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTg3LDIxNmMtMjIuMDU2LDAtNDAsMTcuOTQ0LTQwLDQwYzAsMjIuMDU2LDE3Ljk0NCw0MCw0MCw0MGMyMi4wNTYsMCw0MC0xNy45NDQsNDAtNDBDMjI3LDIzMy45NDQsMjA5LjA1NiwyMTYsMTg3LDIxNnoKCQkJIE0xODcsMjY2Yy01LjUxNCwwLTEwLTQuNDg2LTEwLTEwYzAtNS41MTQsNC40ODYtMTAsMTAtMTBjNS41MTQsMCwxMCw0LjQ4NiwxMCwxMEMxOTcsMjYxLjUxNCwxOTIuNTE0LDI2NiwxODcsMjY2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMjUsMjE2Yy0yMi4wNTYsMC00MCwxNy45NDQtNDAsNDBjMCwyMi4wNTYsMTcuOTQ0LDQwLDQwLDQwYzIyLjA1NiwwLDQwLTE3Ljk0NCw0MC00MEMzNjUsMjMzLjk0NCwzNDcuMDU2LDIxNiwzMjUsMjE2egoJCQkgTTMyNSwyNjZjLTUuNTE0LDAtMTAtNC40ODYtMTAtMTBjMC01LjUxNCw0LjQ4Ni0xMCwxMC0xMGM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwQzMzNSwyNjEuNTE0LDMzMC41MTQsMjY2LDMyNSwyNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",dae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMzYwLDBIMTIwQzk3LjkyLDAuMDI2LDgwLjAyNiwxNy45Miw4MCw0MHYzNjhjMC4wMjQsMTkuMDAxLDEzLjM4OSwzNS4zNzMsMzIsMzkuMlY0ODBoNDh2LTMyaDE2MHYzMmg0OHYtMzIuOAoJCQljMTguNjExLTMuODI3LDMxLjk3Ni0yMC4xOTksMzItMzkuMlY0MEMzOTkuOTc0LDE3LjkyLDM4Mi4wOCwwLjAyNiwzNjAsMHogTTE0NCw0NjRoLTE2di0xNmgxNlY0NjR6IE0zNTIsNDY0aC0xNnYtMTZoMTZWNDY0egoJCQkgTTM4NCw0MDhjMCwxMy4yNTUtMTAuNzQ1LDI0LTI0LDI0SDEyMGMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0VjQwYzAtMTMuMjU1LDEwLjc0NS0yNCwyNC0yNGgyNDBjMTMuMjU1LDAsMjQsMTAuNzQ1LDI0LDI0VjQwOAoJCQl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwxNjBjLTcwLjY5MiwwLTEyOCw1Ny4zMDgtMTI4LDEyOGMwLjA4NCw3MC42NTgsNTcuMzQyLDEyNy45MTYsMTI4LDEyOGM3MC42OTIsMCwxMjgtNTcuMzA4LDEyOC0xMjgKCQkJUzMxMC42OTIsMTYwLDI0MCwxNjB6IE0yNDAsNDAwYy02MS44NTYsMC0xMTItNTAuMTQ0LTExMi0xMTJjMC4wNjYtNjEuODI4LDUwLjE3Mi0xMTEuOTM0LDExMi0xMTJjNjEuODU2LDAsMTEyLDUwLjE0NCwxMTIsMTEyCgkJCVMzMDEuODU2LDQwMCwyNDAsNDAweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNDAsMTkyYy01My4wMTksMC05Niw0Mi45ODEtOTYsOTZjMC4wNTcsNTIuOTk2LDQzLjAwNCw5NS45NDMsOTYsOTZjNTMuMDE5LDAsOTYtNDIuOTgxLDk2LTk2UzI5My4wMTksMTkyLDI0MCwxOTJ6CgkJCSBNMjQwLDM2OGMtNDQuMTgzLDAtODAtMzUuODE3LTgwLTgwYzAuMDQ5LTQ0LjE2MywzNS44MzctNzkuOTUyLDgwLTgwYzQ0LjE4MywwLDgwLDM1LjgxNyw4MCw4MEMzMjAsMzMyLjE4MywyODQuMTgzLDM2OCwyNDAsMzY4CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjQwLDMyYy0zMC45MjgsMC01NiwyNS4wNzItNTYsNTZjMC4wMzUsMzAuOTEzLDI1LjA4Nyw1NS45NjUsNTYsNTZjMzAuOTI4LDAsNTYtMjUuMDcyLDU2LTU2CgkJCUMyOTYsNTcuMDcyLDI3MC45MjgsMzIsMjQwLDMyeiBNMjQwLDEyOGMtMjIuMDkxLDAtNDAtMTcuOTA5LTQwLTQwYzAuMDI2LTIyLjA4LDE3LjkyLTM5Ljk3NCw0MC00MGMyMi4wOTEsMCw0MCwxNy45MDksNDAsNDAKCQkJUzI2Mi4wOTEsMTI4LDI0MCwxMjh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCw2NGMtMTMuMjU1LDAtMjQsMTAuNzQ1LTI0LDI0czEwLjc0NSwyNCwyNCwyNHMyNC0xMC43NDUsMjQtMjRTMjUzLjI1NSw2NCwyNDAsNjR6IE0yNDAsOTZjLTQuNDE4LDAtOC0zLjU4Mi04LTgKCQkJczMuNTgyLTgsOC04czgsMy41ODIsOCw4UzI0NC40MTgsOTYsMjQwLDk2eiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjM1MiIgeT0iMzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIvPgogICAgICAgIDxyZWN0IHg9IjExMiIgeT0iNDAwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz4KICAgICAgICA8cmVjdCB4PSIzNTIiIHk9IjQwMCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgICAgICAgPHBhdGggZD0iTTI0MCwyNDhjLTIyLjA5MSwwLTQwLDE3LjkwOS00MCw0MGMwLjAyNiwyMi4wOCwxNy45MiwzOS45NzQsNDAsNDBjMjIuMDkxLDAsNDAtMTcuOTA5LDQwLTQwCgkJCUMyODAsMjY1LjkwOSwyNjIuMDkxLDI0OCwyNDAsMjQ4eiBNMjQwLDMxMmMtMTMuMjU1LDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCwyNC0yNHMyNCwxMC43NDUsMjQsMjRTMjUzLjI1NSwzMTIsMjQwLDMxMnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDgsMjgwSDE2Yy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDMyYzQuNDE4LDAsOC0zLjU4Miw4LThTNTIuNDE4LDI4MCw0OCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjY1NiwyMjYuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNjktOC4yNDMtMi45ODEtMTEuMzEyLDAuMTk3Yy0yLjk5NCwzLjEtMi45OTQsOC4wMTUsMCwxMS4xMTVsMjQsMjQKCQkJYzMuMTc4LDMuMDY5LDguMjQzLDIuOTgxLDExLjMxMi0wLjE5N0M1Ni42NSwyMzQuMzU5LDU2LjY1LDIyOS40NDQsNTMuNjU2LDIyNi4zNDR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUzLjQ2LDMzOC4zNDRjLTMuMS0yLjk5NS04LjAxNi0yLjk5NS0xMS4xMTYsMGwtMjQsMjRjLTMuMTc4LDMuMDctMy4yNjYsOC4xMzQtMC4xOTYsMTEuMzEyczguMTM0LDMuMjY2LDExLjMxMiwwLjE5NgoJCQljMC4wNjctMC4wNjQsMC4xMzItMC4xMywwLjE5Ni0wLjE5NmwyNC0yNEM1Ni43MjYsMzQ2LjQ3OCw1Ni42MzgsMzQxLjQxNCw1My40NiwzMzguMzQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjQsMjgwaC0zMmMtNC40MTgsMC04LDMuNTgyLTgsOHMzLjU4Miw4LDgsOGgzMmM0LjQxOCwwLDgtMy41ODIsOC04UzQ2OC40MTgsMjgwLDQ2NCwyODB6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2MS40NiwyMDIuMzQ0Yy0zLjEtMi45OTQtOC4wMTUtMi45OTQtMTEuMTE2LDBsLTI0LDI0Yy0zLjEyNCwzLjEyNS0zLjEyMyw4LjE5LDAuMDAyLDExLjMxNAoJCQljMS41LDEuNDk5LDMuNTM0LDIuMzQyLDUuNjU0LDIuMzQyYzIuMTIyLDAsNC4xNTYtMC44NDQsNS42NTYtMi4zNDRsMjQtMjRDNDY0LjcyNiwyMTAuNDc4LDQ2NC42MzgsMjA1LjQxNCw0NjEuNDYsMjAyLjM0NHoiLz4KICAgICAgICA8cGF0aCBkPSJNNDYxLjY1NiwzNjIuMzQ0bC0yNC0yNGMtMy4xNzgtMy4wNy04LjI0Mi0yLjk4Mi0xMS4zMTIsMC4xOTZjLTIuOTk1LDMuMS0yLjk5NSw4LjAxNiwwLDExLjExNmwyNCwyNAoJCQljMy4xNzgsMy4wNyw4LjI0MiwyLjk4MiwxMS4zMTItMC4xOTZDNDY0LjY1MSwzNzAuMzYsNDY0LjY1MSwzNjUuNDQ0LDQ2MS42NTYsMzYyLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",zae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTEyIDU2LjE2NDA2MmMwLTEyLjc5Njg3NC0xMC40MDYyNS0yMy4yMDMxMjQtMjMuMjAzMTI1LTIzLjIwMzEyNGgtNDkuOTY4NzV2LTE1LjA0Njg3NmMwLTkuODc4OTA2LTguMDM1MTU2LTE3LjkxNDA2Mi0xNy45MTQwNjMtMTcuOTE0MDYyaC0xMDMuMDg5ODQzYy05Ljg3ODkwNyAwLTE3LjkxNDA2MyA4LjAzOTA2Mi0xNy45MTQwNjMgMTcuOTE0MDYydjE1LjA0Njg3NmgtODcuODE2NDA2di0xNS4wNDY4NzZjMC05Ljg3ODkwNi04LjAzOTA2Mi0xNy45MTQwNjItMTcuOTE3OTY5LTE3LjkxNDA2MmgtMTAzLjA4OTg0M2MtOS44Nzg5MDcgMC0xNy45MTQwNjMgOC4wMzkwNjItMTcuOTE0MDYzIDE3LjkxNDA2MnYxNS4wNDY4NzZoLTQ5Ljk2ODc1Yy0xMi43OTY4NzUgMC0yMy4yMDMxMjUgMTAuNDA2MjUtMjMuMjAzMTI1IDIzLjIwMzEyNHY0OS41YzAgNi4wNTA3ODIgMi4zMjgxMjUgMTEuNTYyNSA2LjEzNjcxOSAxNS42OTkyMTktMy44MDg1OTQgNC4xMzI4MTMtNi4xMzY3MTkgOS42NDg0MzgtNi4xMzY3MTkgMTUuNjk5MjE5djMwNS44MDg1OTRjMCAxMi43OTI5NjggMTAuNDA2MjUgMjMuMjAzMTI1IDIzLjIwMzEyNSAyMy4yMDMxMjVoMi4zNzg5MDZ2MjIuNDUzMTI1YzAgMTIuNzgxMjUgMTAuMzk4NDM4IDIzLjE3NTc4MSAyMy4xNzk2ODggMjMuMTc1NzgxaDIzMi42MTcxODdjNC4xNDQ1MzIgMCA3LjUwMzkwNi0zLjM1OTM3NSA3LjUwMzkwNi03LjUgMC00LjE0NDUzMS0zLjM1OTM3NC03LjUwMzkwNi03LjUwMzkwNi03LjUwMzkwNmgtMjMyLjYxNzE4N2MtNC41MDc4MTMgMC04LjE3MTg3NS0zLjY2Nzk2OS04LjE3MTg3NS04LjE3MTg3NXYtMjIuNDUzMTI1aDQzMC44MjAzMTJ2MjIuNDUzMTI1YzAgNC41MDc4MTItMy42NjQwNjIgOC4xNzE4NzUtOC4xNzE4NzUgOC4xNzE4NzVoLTE0Ny4xMjVjLTQuMTQ4NDM3IDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41MDM5MDYgMCA0LjE0MDYyNSAzLjM1NTQ2OSA3LjUgNy41MDM5MDYgNy41aDE0Ny4xMjVjMTIuNzgxMjUgMCAyMy4xNzk2ODgtMTAuMzk0NTMxIDIzLjE3OTY4OC0yMy4xNzU3ODF2LTIyLjQ1MzEyNWgyLjM3ODkwNmMxMi43OTI5NjkgMCAyMy4yMDMxMjUtMTAuNDEwMTU3IDIzLjIwMzEyNS0yMy4yMDMxMjV2LTMwNS44MDg1OTRjMC02LjA1MDc4MS0yLjMzMjAzMS0xMS41NjY0MDYtNi4xMzY3MTktMTUuNjk5MjE5IDMuODA0Njg4LTQuMTM2NzE5IDYuMTM2NzE5LTkuNjQ4NDM3IDYuMTM2NzE5LTE1LjY5OTIxOXptLTE5Ny4wODU5MzgtMzguMjVjMC0xLjYwNTQ2OCAxLjMwNDY4OC0yLjkwNjI1IDIuOTEwMTU3LTIuOTA2MjVoMTAzLjA4OTg0M2MxLjYwNTQ2OSAwIDIuOTEwMTU3IDEuMzA0Njg4IDIuOTEwMTU3IDIuOTA2MjV2MTUuMDQ2ODc2aC0xMDguOTEwMTU3em0tMjI2LjczODI4MSAwYzAtMS42MDU0NjggMS4zMDQ2ODgtMi45MDYyNSAyLjkxMDE1Ny0yLjkwNjI1aDEwMy4wODk4NDNjMS42MDU0NjkgMCAyLjkxMDE1NyAxLjMwNDY4OCAyLjkxMDE1NyAyLjkwNjI1djE1LjA0Njg3NmgtMTA4LjkxMDE1N3ptNDA4LjgxNjQwNyA0MjQuOTU3MDMyYzAgNC41MTk1MzEtMy42NzU3ODIgOC4xOTkyMTgtOC4xOTUzMTMgOC4xOTkyMThoLTQ2NS41OTM3NWMtNC41MTk1MzEgMC04LjE5NTMxMy0zLjY3OTY4Ny04LjE5NTMxMy04LjE5OTIxOHYtMzA1LjgwODU5NGMwLTQuNTE5NTMxIDMuNjc1NzgyLTguMTk5MjE5IDguMTk1MzEzLTguMTk5MjE5aDQ2NS41OTM3NWM0LjUyMzQzNyAwIDguMTk1MzEzIDMuNjc5Njg4IDguMTk1MzEzIDguMTk5MjE5em0wLTMzNy4yMDcwMzJjMCA0LjUxOTUzMi0zLjY3NTc4MiA4LjE5NTMxMy04LjE5NTMxMyA4LjE5NTMxM2gtNDY1LjU5Mzc1Yy00LjUxOTUzMSAwLTguMTk1MzEzLTMuNjc1NzgxLTguMTk1MzEzLTguMTk1MzEzdi00OS41YzAtNC41MjM0MzcgMy42NzU3ODItOC4xOTkyMTggOC4xOTUzMTMtOC4xOTkyMThoNDY1LjU5Mzc1YzQuNTE5NTMxIDAgOC4xOTUzMTMgMy42NzU3ODEgOC4xOTUzMTMgOC4xOTkyMTh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMDk3NjU2IDU1LjE1MjM0NGMtMTQuMjA3MDMxIDAtMjUuNzYxNzE4IDExLjU1NDY4Ny0yNS43NjE3MTggMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1NDY4NyAyNS43NjE3MTkgMjUuNzYxNzE4IDI1Ljc2MTcxOSAxNC4yMDMxMjUgMCAyNS43NjE3MTktMTEuNTU0Njg3IDI1Ljc2MTcxOS0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU4NTk0LTI1Ljc1NzgxMi0yNS43NjE3MTktMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODcgMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE5LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg4IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOCAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3OS4xNjc5NjkgNTUuMTUyMzQ0Yy0xNC4yMDcwMzEgMC0yNS43NjE3MTkgMTEuNTU0Njg3LTI1Ljc2MTcxOSAyNS43NTc4MTIgMCAxNC4yMDcwMzIgMTEuNTU0Njg4IDI1Ljc2MTcxOSAyNS43NjE3MTkgMjUuNzYxNzE5IDE0LjIwMzEyNSAwIDI1Ljc1NzgxMi0xMS41NTQ2ODcgMjUuNzU3ODEyLTI1Ljc2MTcxOSAwLTE0LjIwMzEyNS0xMS41NTQ2ODctMjUuNzU3ODEyLTI1Ljc1NzgxMi0yNS43NTc4MTJ6bTAgMzYuNTE1NjI1Yy01LjkzMzU5NCAwLTEwLjc1NzgxMy00LjgyNDIxOS0xMC43NTc4MTMtMTAuNzUzOTA3IDAtNS45Mjk2ODcgNC44MjQyMTktMTAuNzU3ODEyIDEwLjc1NzgxMy0xMC43NTc4MTIgNS45Mjk2ODcgMCAxMC43NTM5MDYgNC44MjgxMjUgMTAuNzUzOTA2IDEwLjc1NzgxMiAwIDUuOTI5Njg4LTQuODI0MjE5IDEwLjc1MzkwNy0xMC43NTM5MDYgMTAuNzUzOTA3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzMyLjgzMjAzMSA1NS4xNTIzNDRjLTE0LjIwMzEyNSAwLTI1Ljc1NzgxMiAxMS41NTQ2ODctMjUuNzU3ODEyIDI1Ljc1NzgxMiAwIDE0LjIwNzAzMiAxMS41NTQ2ODcgMjUuNzYxNzE5IDI1Ljc1NzgxMiAyNS43NjE3MTkgMTQuMjA3MDMxIDAgMjUuNzYxNzE5LTExLjU1NDY4NyAyNS43NjE3MTktMjUuNzYxNzE5IDAtMTQuMjAzMTI1LTExLjU1NDY4OC0yNS43NTc4MTItMjUuNzYxNzE5LTI1Ljc1NzgxMnptMCAzNi41MTU2MjVjLTUuOTI5Njg3IDAtMTAuNzUzOTA2LTQuODI0MjE5LTEwLjc1MzkwNi0xMC43NTM5MDcgMC01LjkyOTY4NyA0LjgyNDIxOS0xMC43NTc4MTIgMTAuNzUzOTA2LTEwLjc1NzgxMiA1LjkzMzU5NCAwIDEwLjc1NzgxMyA0LjgyODEyNSAxMC43NTc4MTMgMTAuNzU3ODEyIDAgNS45Mjk2ODgtNC44MjQyMTkgMTAuNzUzOTA3LTEwLjc1NzgxMyAxMC43NTM5MDd6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDUuOTAyMzQ0IDU1LjE1MjM0NGMtMTQuMjAzMTI1IDAtMjUuNzYxNzE5IDExLjU1NDY4Ny0yNS43NjE3MTkgMjUuNzU3ODEyIDAgMTQuMjA3MDMyIDExLjU1ODU5NCAyNS43NjE3MTkgMjUuNzYxNzE5IDI1Ljc2MTcxOSAxNC4yMDcwMzEgMCAyNS43NjE3MTgtMTEuNTU0Njg3IDI1Ljc2MTcxOC0yNS43NjE3MTkgMC0xNC4yMDMxMjUtMTEuNTU0Njg3LTI1Ljc1NzgxMi0yNS43NjE3MTgtMjUuNzU3ODEyem0wIDM2LjUxNTYyNWMtNS45Mjk2ODggMC0xMC43NTM5MDYtNC44MjQyMTktMTAuNzUzOTA2LTEwLjc1MzkwNyAwLTUuOTI5Njg3IDQuODI0MjE4LTEwLjc1NzgxMiAxMC43NTM5MDYtMTAuNzU3ODEyIDUuOTI5Njg3IDAgMTAuNzUzOTA2IDQuODI4MTI1IDEwLjc1MzkwNiAxMC43NTc4MTIgMCA1LjkyOTY4OC00LjgyNDIxOSAxMC43NTM5MDctMTAuNzUzOTA2IDEwLjc1MzkwN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzNC43NDIxODggMTcxLjkzNzVoLTIxOC4xNDg0MzhjLTQuMTQ0NTMxIDAtNy41MDM5MDYgMy4zNTkzNzUtNy41MDM5MDYgNy41IDAgNC4xNDQ1MzEgMy4zNTkzNzUgNy41MDM5MDYgNy41MDM5MDYgNy41MDM5MDZoMjE4LjE0ODQzOGMxLjQzNzUgMCAyLjYwNTQ2OCAxLjE3MTg3NSAyLjYwNTQ2OCAyLjYwOTM3NXYxOS44NTE1NjNjMCAxLjQzNzUtMS4xNjc5NjggMi42MDkzNzUtMi42MDU0NjggMi42MDkzNzVoLTM1Ny40ODQzNzZjLTEuNDM3NSAwLTIuNjA1NDY4LTEuMTcxODc1LTIuNjA1NDY4LTIuNjA5Mzc1di0xOS44NTE1NjNjMC0xLjQzNzUgMS4xNjc5NjgtMi42MDkzNzUgMi42MDU0NjgtMi42MDkzNzVoMTA0LjI2OTUzMmM0LjE0NDUzMSAwIDcuNTAzOTA2LTMuMzU5Mzc1IDcuNTAzOTA2LTcuNTAzOTA2IDAtNC4xNDA2MjUtMy4zNTkzNzUtNy41LTcuNTAzOTA2LTcuNWgtMTA0LjI2OTUzMmMtOS43MTA5MzcgMC0xNy42MDkzNzQgNy44OTg0MzgtMTcuNjA5Mzc0IDE3LjYxMzI4MXYxOS44NTE1NjNjMCA5LjcxMDkzNyA3Ljg5ODQzNyAxNy42MTMyODEgMTcuNjA5Mzc0IDE3LjYxMzI4MWgxMC4wMzUxNTd2MTY2LjQ2NDg0NGMwIDE0LjI3NzM0MyAxMS42MTcxODcgMjUuODk0NTMxIDI1Ljg5NDUzMSAyNS44OTQ1MzFoMjg1LjYyNWMxNC4yNzczNDQgMCAyNS44OTQ1MzEtMTEuNjE3MTg4IDI1Ljg5NDUzMS0yNS44OTQ1MzF2LTE2Ni40NjQ4NDRoMTAuMDM1MTU3YzkuNzEwOTM3IDAgMTcuNjEzMjgxLTcuODk4NDM3IDE3LjYxMzI4MS0xNy42MTMyODF2LTE5Ljg1MTU2M2MwLTkuNzEwOTM3LTcuOTAyMzQ0LTE3LjYxMzI4MS0xNy42MTMyODEtMTcuNjEzMjgxem0tMjUuMDQyOTY5IDIyMS41NDI5NjljMCA2LjAwMzkwNi00Ljg4MjgxMyAxMC44ODY3MTktMTAuODg2NzE5IDEwLjg4NjcxOWgtMjg1LjYyNWMtNi4wMDM5MDYgMC0xMC44OTA2MjUtNC44ODI4MTMtMTAuODkwNjI1LTEwLjg4NjcxOXYtMTY2LjQ2NDg0NGgzMDcuNDAyMzQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyLjU0Mjk2OSAyOTQuODU5Mzc1YzIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNiA1LjUyMzQzNy0yLjQyMTg3NWwyMy4wMTE3MTktMjUuMDE1NjI1YzIuODA4NTk0LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDYtMTAuNjAxNTYzLTMuMDUwNzgxLTIuODA0Njg3LTcuNzkyOTY5LTIuNjA5Mzc0LTEwLjYwMTU2My40NDE0MDdsLTIzLjAxMTcxOCAyNS4wMTU2MjVjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA5Mzc2IDcuNzkyOTY4LjQ0MTQwNiAxMC42MDE1NjIgMS40NDE0MDYgMS4zMjQyMTkgMy4yNjE3MTggMS45ODA0NjkgNS4wNzgxMjUgMS45ODA0Njl6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTQuMTg3NSAzMjQuMTM2NzE5YzEuNDQxNDA2IDEuMzI4MTI1IDMuMjYxNzE5IDEuOTgwNDY5IDUuMDc4MTI1IDEuOTgwNDY5IDIuMDIzNDM3IDAgNC4wNDI5NjktLjgxNjQwNyA1LjUyMzQzNy0yLjQyMTg3Nmw0Ny4zMTY0MDctNTEuNDI5Njg3YzIuODA0Njg3LTMuMDUwNzgxIDIuNjA5Mzc1LTcuNzk2ODc1LS40NDE0MDctMTAuNjA1NDY5LTMuMDUwNzgxLTIuODA0Njg3LTcuNzk2ODc0LTIuNjA1NDY4LTEwLjYwMTU2Mi40NDE0MDZsLTQ3LjMxNjQwNiA1MS40MzM1OTRjLTIuODA0Njg4IDMuMDQ2ODc1LTIuNjA1NDY5IDcuNzk2ODc1LjQ0MTQwNiAxMC42MDE1NjN6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=",Iae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDEyOCAxMjgiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMjIuMjUgMTcuMjY2aC0xMTYuNWE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NSA1Ljc1djY3Ljk5NGE1Ljc1NyA1Ljc1NyAwIDAgMCA1Ljc1IDUuNzVoOS44ODNsLTMuMDY4IDQuNDRhNi4wNzkgNi4wNzkgMCAwIDAgMTAgNi45MTJsNy44NDctMTEuMzUyaDY3LjE3Nmw3Ljg0NCAxMS4zNTFhNi4wNzkgNi4wNzkgMCAwIDAgMTAtNi45MTJsLTMuMDY4LTQuNDM5aDkuODgzYTUuNzU3IDUuNzU3IDAgMCAwIDUuNzUzLTUuNzV2LTY3Ljk5NGE1Ljc1NiA1Ljc1NiAwIDAgMCAtNS43NS01Ljc1em0tMTAyLjU2MSA4OC44NTZhMi41ODIgMi41ODIgMCAwIDEgLTIuMTIyIDEuMTEyIDIuNTggMi41OCAwIDAgMSAtMi4xMjMtNC4wNDZsNC40NDMtNi40MjhoNi4yNzF6bTkyLjg2Ny0yLjkzNGEyLjU4IDIuNTggMCAwIDEgLTIuMTIzIDQuMDQ2IDIuNTg1IDIuNTg1IDAgMCAxIC0yLjEyMy0xLjExMmwtNi40NjgtOS4zNjJoNi4yNzF6bTExLjk0NC0xMi4xNzhhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUgMi4yNWgtMTE2LjVhMi4yNTMgMi4yNTMgMCAwIDEgLTIuMjUtMi4yNXYtNjcuOTk0YTIuMjUzIDIuMjUzIDAgMCAxIDIuMjUtMi4yNWgxMTYuNWEyLjI1MyAyLjI1MyAwIDAgMSAyLjI1IDIuMjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExOC4yNSAyNS4yNjZoLTEwOC41YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1IDEuNzV2NTkuOTk0YTEuNzUgMS43NSAwIDAgMCAxLjc1IDEuNzVoMTA4LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNTkuOTk0YTEuNzQ5IDEuNzQ5IDAgMCAwIC0xLjc1LTEuNzV6bS0xLjc1IDU5Ljk5NGgtMTA1di01Ni40OTRoMTA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4zNzUgNDcuOTIyaDcuM3YxOS45MzJhMS43NSAxLjc1IDAgMCAwIDMuNSAwdi0xOS45MzJoNy4zYTEuNzUgMS43NSAwIDAgMCAwLTMuNWgtMTguMWExLjc1IDEuNzUgMCAwIDAgMCAzLjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTc1Ljk2MyA2OC41MjdhMS43NDkgMS43NDkgMCAwIDAgMy4yMyAwbDkuMDQ3LTIxLjY4MWExLjc1IDEuNzUgMCAxIDAgLTMuMjMtMS4zNDZsLTcuNDMyIDE3LjgwOS03LjQzMi0xNy44MDlhMS43NSAxLjc1IDAgMSAwIC0zLjIzIDEuMzQ4eiIvPgogICAgPC9nPgo8L3N2Zz4=",wae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTksMkg1QTMsMywwLDAsMCwyLDVWNTlhMywzLDAsMCwwLDMsM0g1OWEzLDMsMCwwLDAsMy0zVjVBMywzLDAsMCwwLDU5LDJabTEsNTdhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWNUExLDEsMCwwLDEsNSw0SDU5YTEsMSwwLDAsMSwxLDFaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDZBMjYsMjYsMCwxLDAsNTgsMzIsMjYuMDI5LDI2LjAyOSwwLDAsMCwzMiw2Wm0wLDUwQTI0LDI0LDAsMSwxLDU2LDMyLDI0LjAyOCwyNC4wMjgsMCwwLDEsMzIsNTZaIi8+CiAgICAgICAgPHBhdGggZD0iTTMyLDEwQTIyLDIyLDAsMSwwLDU0LDMyLDIyLjAyNSwyMi4wMjUsMCwwLDAsMzIsMTBabTEwLjE3NSw0LjgxM2MyLjQ2OSw5LjU1LTMuNjEzLDEyLjktNi40MjgsMTMuOTExYTUsNSwwLDAsMC0xLjY1LTEuMjQ3LDExLjM3NCwxMS4zNzQsMCwwLDAsMy4zMTEtNi43OTRjLjI0OS0yLjg0NS0uNzktNS43MDYtMy4wNS04LjUzMUExOS44MjQsMTkuODI0LDAsMCwxLDQyLjE3NSwxNC44MTNaTTM1LDMyYTMsMywwLDEsMS0zLTNBMywzLDAsMCwxLDM1LDMyWk0zMS41ODYsMTIuMDIxYzIuNzY3LDIuODczLDQuMDY2LDUuNzIyLDMuODMxLDguNDdhMTAuMSwxMC4xLDAsMCwxLTMuNzg0LDYuNTMsMTkuNjUyLDE5LjY1MiwwLDAsMC05LjU4NS0xMi4zNDRBMTkuODM4LDE5LjgzOCwwLDAsMSwzMS41ODYsMTIuMDIxWk0yMC4xMiwxNS45NDhhMTcuNjU3LDE3LjY1NywwLDAsMSw5LjU5MiwxMS42MzMsNC45NTEsNC45NTEsMCwwLDAtLjk1Ny42NDcsMTguODg2LDE4Ljg4NiwwLDAsMC0xNC4zMzgtNS43NTJBMjAuMTI2LDIwLjEyNiwwLDAsMSwyMC4xMiwxNS45NDhaTTEyLDMyYTE5Ljg3LDE5Ljg3LDAsMCwxLDEuNDQyLTcuNDE2QTE2LjM4NSwxNi4zODUsMCwwLDEsMjUuODE2LDI4LjI2YTEzLjc5LDEzLjc5LDAsMCwwLTguMDY0LDEuMjkxQTEyLjY0NCwxMi42NDQsMCwwLDAsMTIuMzExLDM1LjQsMTkuOTEzLDE5LjkxMywwLDAsMSwxMiwzMlptMS4xNjQsNi42NmMxLjEzLTMuNTI5LDIuOTgyLTYsNS41Mi03LjM0YTEyLjY0MywxMi42NDMsMCwwLDEsOC41NjEtLjc4N0E0LjkxOSw0LjkxOSwwLDAsMCwyNywzMmMwLC4xMDkuMDI1LjIxMS4wMzIuMzE4LTIuMDA4LjkxNS03Ljk2MSw0LjQyLTguOSwxNC4wNjNBMjAuMDM0LDIwLjAzNCwwLDAsMSwxMy4xNjQsMzguNjZabTYuODc4LDkuMzMzYy4zNjQtOS4yNzksNS41NjMtMTIuNzQzLDcuNTMxLTEzLjcxOWE1LDUsMCwwLDAsMS4wNjUsMS40Yy0uOTU4LDIuNjA5LTIuODUzLDkuNzkxLDIuMTA4LDE2LjI2MUExOS44NTYsMTkuODU2LDAsMCwxLDIwLjA0Miw0Ny45OTNaTTMzLjM4MSw1MS45M2MtNS40LTUuNzMzLTMuOTItMTIuNDk1LTIuOTg4LTE1LjIxOUE0LjkyOSw0LjkyOSwwLDAsMCwzMiwzN2MuMDgxLDAsLjE1Ni0uMDIuMjM1LS4wMjQuNiwzLjA0OSwyLjgyOSw5LjIyMywxMS4xMTEsMTEuNDc1QTE5Ljg1NiwxOS44NTYsMCwwLDEsMzMuMzgxLDUxLjkzWm0xMS45NjYtNS4wNzhjLTguNDQxLTEuNjE3LTEwLjYyMy03LjI5Mi0xMS4xNzQtMTAuMzdhNS4wMDYsNS4wMDYsMCwwLDAsMS4wODQtLjcxOWMxLjg2OCwxLjksNi4yMTUsNS42MzMsMTEuNTIyLDUuNjMzYTExLjIwOCwxMS4yMDgsMCwwLDAsMy4wODUtLjQ1NUEyMC4wNjksMjAuMDY5LDAsMCwxLDQ1LjM0Nyw0Ni44NTJaTTUyLDMyYTE5LjksMTkuOSwwLDAsMS0xLjA3NCw2LjQxNGMtNi41MDcsMy4xMi0xMi40NjItMi4xODQtMTQuNDM4LTQuMjUxYTQuOTI3LDQuOTI3LDAsMCwwLC4zNjktMS4wMjUsMTYuNiwxNi42LDAsMCwwLDEuNzg5LjA5NCwxOC4zMjgsMTguMzI4LDAsMCwwLDEyLjkyNi01LjMzOUEyMCwyMCwwLDAsMSw1MiwzMlptLTE1LjA4OC0uODY4YTQuNzQ1LDQuNzQ1LDAsMCwwLS4xNzMtLjY1YzIuOTI2LTEuMTU1LDkuMjM0LTQuNzY2LDcuODE3LTE0LjAyOGEyMC4wNTcsMjAuMDU3LDAsMCwxLDYuMzk0LDkuMkExNi4zNDQsMTYuMzQ0LDAsMCwxLDM2LjkxMiwzMS4xMzJaIi8+CiAgICAgICAgPHBhdGggZD0iTTksMTJBMywzLDAsMSwwLDYsOSwzLDMsMCwwLDAsOSwxMlpNOSw4QTEsMSwwLDEsMSw4LDksMSwxLDAsMCwxLDksOFoiLz4KICAgICAgICA8cGF0aCBkPSJNNTUsNmEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCw1NSw2Wm0wLDRhMSwxLDAsMSwxLDEtMUExLDEsMCwwLDEsNTUsMTBaIi8+CiAgICAgICAgPHBhdGggZD0iTTEyLDU1YTMsMywwLDAsMC0zLTMsMi45NjYsMi45NjYsMCwwLDAtMSwuMTg0VjQ1SDZWNTVhMywzLDAsMCwwLDMsM2g2VjU2SDExLjgxNkEyLjk2NiwyLjk2NiwwLDAsMCwxMiw1NVpNOSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw5LDU2WiIvPgogICAgICAgIDxwYXRoIGQ9Ik01Niw1Mi4xODRBMi45NjYsMi45NjYsMCwwLDAsNTUsNTJhMywzLDAsMCwwLTMsMywyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDV2Mkg1NWEzLDMsMCwwLDAsMy0zVjQ5SDU2Wk01NSw1NmExLDEsMCwxLDEsMS0xQTEsMSwwLDAsMSw1NSw1NloiLz4KICAgICAgICA8cmVjdCB4PSIxNyIgeT0iNTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Cae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyOC42MDcgNDI4LjYwNyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00MjMuNzczLDM0My44NzFMNDIzLjc3MywzNDMuODcxYy02LjYxNy00LjU5OS0xMi40NC0xMC4yNDYtMTcuMjQxLTE2LjcxOGMtMTEuNDk0LTEzLjA2MS0yNi4xMjItMjkuMjU3LTUzLjI5LTI5LjI1NwoJCQkJYy0yNy4xNjcsMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtMTAuOTcxLTEyLjUzOS0yNS42LTI5Ljc4LTUzLjI5LTI5Ljc4Yy0yNy42OSwwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1CgkJCQlzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1Yy03LjQ1OC05Ljg1LTE2Ljg4OS0xOC4wMzUtMjcuNjktMjQuMDMzYy01LjE5NC0yLjU5Ny0xMS41MDktMC40OTItMTQuMTA2LDQuNzAyCgkJCQljLTIuNTk3LDUuMTk0LTAuNDkyLDExLjUwOSw0LjcwMiwxNC4xMDZjOC4yMDMsNC45NDQsMTUuNDU3LDExLjMxNCwyMS40MiwxOC44MDhjMTIuMDE2LDE0LjEwNiwyNi4xMjIsMjkuNzgsNTMuMjksMjkuNzgKCQkJCXM0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4YzEyLjAxNi0xNC4xMDYsMTkuODUzLTIyLjQ2NSwzNy42MTYtMjIuNDY1czI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1CgkJCQljMTAuOTcxLDEyLjUzOSwyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4YzI3LjY5LDAsNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NQoJCQkJYzE3Ljc2MywwLDI2LjY0NSw5LjkyNywzNy42MTYsMjIuNDY1YzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDM1My41OTQsNDI4LjY3OSwzNDcuMDQ1LDQyMy43NzMsMzQzLjg3MXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDIzLjc3MywyNjUuNTAzTDQyMy43NzMsMjY1LjUwM2MtNi42MTctNC41OTktMTIuNDQtMTAuMjQ2LTE3LjI0MS0xNi43MThjLTExLjQ5NC0xMy4wNjEtMjYuMTIyLTI5LjI1Ny01My4yOS0yOS4yNTcKCQkJCWMtMjcuMTY3LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjVzLTI2LjY0NS05LjkyNy0zNy42MTYtMjIuNDY1CgkJCQljLTEwLjk3MS0xMi41MzktMjUuNi0yOS43OC01My4yOS0yOS43OGMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NQoJCQkJcy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJcy0wLjQ5MiwxMS41MDksNC43MDIsMTQuMTA2YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NWM0LjkwNSwzLjE3NCwxMS40NTUsMS43NzEsMTQuNjI5LTMuMTM1CgkJCQlDNDMwLjA4MiwyNzUuMjI3LDQyOC42NzksMjY4LjY3Nyw0MjMuNzczLDI2NS41MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyMy43NzMsMTgxLjkxMUw0MjMuNzczLDE4MS45MTFjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhzLTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjVzLTI1LjYtMjkuNzgtNTMuMjktMjkuNzgKCQkJCWMtMjcuNjksMC00MS4yNzMsMTUuNjczLTUzLjI5LDI5Ljc4Yy0xMi4wMTYsMTQuMTA2LTE5Ljg1MywyMi40NjUtMzcuNjE2LDIyLjQ2NXMtMjYuNjQ1LTkuOTI3LTM3LjYxNi0yMi40NjUKCQkJCWMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMmMtMi41OTcsNS4xOTQtMC40OTIsMTEuNTA5LDQuNzAyLDE0LjEwNgoJCQkJYzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4czQxLjI3My0xNS42NzMsNTMuMjktMjkuNzgKCQkJCWMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NXMyNS42LDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQljMjcuNjksMCw0MS4yNzMtMTUuNjczLDUzLjI5LTI5Ljc4czE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzYuMDg5LDcuODE4LDEzLjMwOCwxNC42ODUsMjEuNDIsMjAuMzc1YzQuOTA1LDMuMTc0LDExLjQ1NSwxLjc3MSwxNC42MjktMy4xMzUKCQkJCUM0MzAuMDgyLDE5MS42MzUsNDI4LjY3OSwxODUuMDg1LDQyMy43NzMsMTgxLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJNNS44MTQsODIuMTI0YzguMjAzLDQuOTQ0LDE1LjQ1NywxMS4zMTQsMjEuNDIsMTguODA4YzEyLjAxNiwxNC4xMDYsMjYuMTIyLDI5Ljc4LDUzLjI5LDI5Ljc4CgkJCQlzNDEuMjczLTE1LjY3Myw1My4yOS0yOS43OGMxMi4wMTYtMTQuMTA2LDE5Ljg1My0yMi40NjUsMzcuNjE2LTIyLjQ2NXMyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NQoJCQkJYzEwLjk3MSwxMi41MzksMjUuNiwyOS43OCw1My4yOSwyOS43OGMyNy42OSwwLDQxLjI3My0xNS42NzMsNTMuMjktMjkuNzhjMTIuMDE2LTE0LjEwNiwxOS44NTMtMjIuNDY1LDM3LjYxNi0yMi40NjUKCQkJCWMxNy43NjMsMCwyNi42NDUsOS45MjcsMzcuNjE2LDIyLjQ2NWM2LjA4OSw3LjgxOCwxMy4zMDgsMTQuNjg1LDIxLjQyLDIwLjM3NmM0LjkwNSwzLjE3NCwxMS40NTUsMS43NywxNC42MjktMy4xMzUKCQkJCWMzLjE3NC00LjkwNSwxLjc3MS0xMS40NTUtMy4xMzUtMTQuNjI5aDBjLTYuNjE3LTQuNTk5LTEyLjQ0LTEwLjI0Ni0xNy4yNDEtMTYuNzE4Yy0xMS40OTQtMTMuMDYxLTI2LjEyMi0yOS4yNTctNTMuMjktMjkuMjU3CgkJCQljLTI3LjE2NywwLTQxLjI3MywxNS42NzMtNTMuMjksMjkuNzhjLTEyLjAxNiwxNC4xMDYtMTkuODUzLDIyLjQ2NS0zNy42MTYsMjIuNDY1cy0yNi42NDUtOS45MjctMzcuNjE2LTIyLjQ2NQoJCQkJYy0xMC45NzEtMTIuNTM5LTI1LjYtMjkuNzgtNTMuMjktMjkuNzhjLTI3LjY5LDAtNDEuMjczLDE1LjY3My01My4yOSwyOS43OGMtMTIuMDE2LDE0LjEwNi0xOS44NTMsMjIuNDY1LTM3LjYxNiwyMi40NjUKCQkJCVM1My44OCw5OS44ODcsNDIuOTA4LDg3LjM0OGMtNy40NTgtOS44NS0xNi44ODktMTguMDM1LTI3LjY5LTI0LjAzM2MtNS4xOTQtMi41OTctMTEuNTA5LTAuNDkyLTE0LjEwNiw0LjcwMgoJCQkJUzAuNjIxLDc5LjUyNyw1LjgxNCw4Mi4xMjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",hae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUwOCA1MDgiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxMzkuMyIgd2lkdGg9IjE2LjQiIGhlaWdodD0iMzguMiIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTA0LjEsMjEuNCA4OC45LDI3LjcgOTgsNDkuOCAxMTMuMiw0My41IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNy41LDg5LjQgMjEuMywxMDQuNiA0My4zLDExMy43IDQ5LjUsOTguNSAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkwLjksMjEuNCAxODEuOCw0My41IDE5Ni45LDQ5LjggMjA2LDI3LjcgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQzLjMsMTgyLjcgMjEuMywxOTEuOCAyNy41LDIwNyA0OS41LDE5Ny45IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyNjcuNCw4OS40IDI0NS40LDk4LjUgMjUxLjcsMTEzLjcgMjczLjcsMTA0LjYgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI0NiwzNy42IDIxOS4xLDY0LjYgMjMwLjcsNzYuMyAyNTcuNiw0OS4yIAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI2NC4zLDIyMC4xIDM3LjQsMjQ3LjEgNDksMjU4LjggNzUuOSwyMzEuNyAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQuMywxNDAgMCwxNDAgMCwxNTYuNCAxNC4zLDE1Ni40IDM4LjEsMTU2LjQgMzguMSwxNDAgCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjU5LjEsNDcuNyA0OSwzNy42IDM3LjQsNDkuMiA2NC4zLDc2LjMgNzUuOSw2NC42IAkJIi8+CiAgICAgICAgPHBhdGggZD0iTTMxOS41LDE3Mi45djE2LjVjNDkuNywwLDkwLjEsNDAuNiw5MC4xLDkwLjZINDI2QzQyNi4xLDIyMC45LDM3OC4zLDE3Mi45LDMxOS41LDE3Mi45eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjYuMSwyOTUuNWMwLjYtNS42LDAuOS0xMC42LDAuOS0xNS42YzAtODEuNy02Ni4yLTE0OC4yLTE0Ny41LTE0OC4yYy0yOC40LDAtNTUuNSw4LjItNzguNywyM2MwLjItMi4yLDAuNS00LjMsMC41LTYuNQoJCQljMC01Mi00Mi4xLTk0LjMtOTMuOC05NC4zcy05My44LDQyLjMtOTMuOCw5NC4zYzAsMzAuNiwxNC45LDU5LjEsMzkuNSw3Ni43Yy0xNS40LDE3LjItMjUuNSwzOS4zLTI3LjMsNjMuNwoJCQljLTM3LDQtNjUuOCwzNS41LTY1LjgsNzMuN2MwLDQwLjksMzMuMSw3NC4xLDczLjcsNzQuMWgzNjAuNWM0MC43LDAsNzMuNy0zMy4yLDczLjctNzQuMUM1MDgsMzMzLjcsNDkxLjQsMzA3LjcsNDY2LjEsMjk1LjV6CgkJCSBNNzAsMTQ4LjJjMC00Mi45LDM0LjctNzcuOCw3Ny40LTc3LjhjNDIuNywwLDc3LjQsMzQuOSw3Ny40LDc3LjhjMCw2LjktMC45LDEzLjktMi43LDIwLjZjLTguMyw3LjQtMTUuNywxNS41LTIyLjEsMjQuNAoJCQljLTMzLjEtOS4xLTY4LjctMS4zLTk0LjksMjAuMUM4My4zLDE5OSw3MCwxNzQuNSw3MCwxNDguMnogTTQzNC4zLDQxOS45SDczLjdjLTMxLjYsMC01Ny40LTI1LjktNTcuNC01Ny42CgkJCWMwLTMxLjgsMjUuNy01Ny42LDU3LjQtNTcuNmg4LjJ2LTguMmMwLTQ5LjksNDAuNC05MC42LDkwLjEtOTAuNmMxNC40LDAsMzQuNyw2LjgsMzQuNyw2LjhzMzguNy02NC40LDExMi44LTY0LjQKCQkJYzcyLjMsMCwxMzEuMSw1OS4xLDEzMS4xLDEzMS43YzAsMTMuOS0yLjYsMjYuMS0yLjYsMjYuMWw2LjIsMi4zYzIyLjMsOC40LDM3LjMsMzAuMSwzNy4zLDUzLjkKCQkJQzQ5MS42LDM5NCw0NjUuOSw0MTkuOSw0MzQuMyw0MTkuOXoiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9Ijg4LjQsNDU1LjIgNDcuNSw0OTYuNCA1OS4xLDUwOCAxMDAsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE3OC42LDQ1NS4yIDEzNy42LDQ5Ni40IDE0OS4yLDUwOCAxOTAuMSw0NjYuOCAJCSIvPgogICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjY4LjcsNDU1LjIgMjI3LjcsNDk2LjQgMjM5LjMsNTA4IDI4MC4zLDQ2Ni44IAkJIi8+CiAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzNTguOCw0NTUuMiAzMTcuOSw0OTYuNCAzMjkuNCw1MDggMzcwLjQsNDY2LjggCQkiLz4KICAgICAgICA8cG9seWdvbiBwb2ludHM9IjQ0OC45LDQ1NS4yIDQwOCw0OTYuNCA0MTkuNiw1MDggNDYwLjUsNDY2LjggCQkiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Aae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgNTVoLTV2LTQ0YTMuMDA5IDMuMDA5IDAgMCAwIDMtM3YtNWExIDEgMCAwIDAgLTEtMWgtNTJhMSAxIDAgMCAwIC0xIDF2NWEzLjAwOSAzLjAwOSAwIDAgMCAzIDN2NDRoLTVhMSAxIDAgMCAwIC0xIDF2NWExIDEgMCAwIDAgMSAxaDU4YTEgMSAwIDAgMCAxLTF2LTVhMSAxIDAgMCAwIC0xLTF6bS01NC00N3YtNGg1MHY0YTEgMSAwIDAgMSAtMSAxaC00OGExIDEgMCAwIDEgLTEtMXptNDcgM3Y0NGgtNDR2LTQ0em02IDQ5aC01NnYtM2g1NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMTJoLTQwYTEgMSAwIDAgMCAtMSAxdjQwYTEgMSAwIDAgMCAxIDFoNDBhMSAxIDAgMCAwIDEtMXYtNDBhMSAxIDAgMCAwIC0xLTF6bS0yMSA0MGgtMTh2LTE5aDE4em0wLTIxaC0xOHYtMTdoMTh6bTIwIDIxaC0xOHYtMTloMTh6bTAtMjFoLTE4di0xN2gxOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTUuMTcyIDE4aDUuNjU3djJoLTUuNjU3eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcwNyAtLjcwNyAuNzA3IC43MDcgLTguMTYzIDE4LjI5MykiLz4KICAgICAgICA8cGF0aCBkPSJtMTQuMTM2IDIwLjVoMTIuNzI4djJoLTEyLjcyOHoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC05LjE5OCAyMC43OTMpIi8+CiAgICA8L2c+Cjwvc3ZnPg==",pae={"Alarm Systems":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSItMzEgMCA1MTEgNTExLjk5OTk4IiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yMzUuMzI4MTI1IDExOS4xNjc5NjljMjAuODM5ODQ0IDguMDU4NTkzIDM1LjY0NDUzMSAyMS4xNDg0MzcgNDQuNjMyODEzIDQxLjUwMzkwNiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzEuNjg3NSAxMjguNTg1OTM4YzE4Ljk4MDQ2OSA3LjMzOTg0MyAzMS4zODI4MTIgMTguODMyMDMxIDM5LjAzNTE1NiAzNi4xNjQwNjIgMS42Njc5NjkgMy43NzM0MzggNS4zNjMyODIgNi4wMjM0MzggOS4yNDIxODggNi4wMjM0MzggMS4zNjMyODEgMCAyLjc0NjA5NC0uMjc3MzQ0IDQuMDcwMzEyLS44NjMyODIgNS4xMDU0NjktMi4yNTM5MDYgNy40MTQwNjMtOC4yMTQ4NDQgNS4xNjAxNTYtMTMuMzE2NDA2LTkuODIwMzEyLTIyLjI1LTI2LjI1LTM3LjU3NDIxOS01MC4yMjY1NjItNDYuODQzNzUtNS4xOTkyMTktMi4wMTE3MTktMTEuMDQ2ODc1LjU3NDIxOS0xMy4wNTg1OTQgNS43NzczNDQtMi4wMTE3MTggNS4yMDMxMjUuNTc4MTI1IDExLjA0Njg3NSA1Ljc3NzM0NCAxMy4wNTg1OTR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDcuMTA1NDY5IDIzNy44MTI1YzIwLjA4OTg0MyAwIDM2LjQzNzUtMTYuMzQzNzUgMzYuNDM3NS0zNi40MzM1OTQgMC0yMC4wOTM3NS0xNi4zNDc2NTctMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDM3NSAxNi4zNDM3NS0zNi40Mzc1IDM2LjQzNzUgMCAyMC4wODk4NDQgMTYuMzQ3NjU2IDM2LjQzMzU5NCAzNi40Mzc1IDM2LjQzMzU5NHptMC01Mi42NzU3ODFjOC45NTMxMjUgMCAxNi4yNDIxODcgNy4yODUxNTYgMTYuMjQyMTg3IDE2LjI0MjE4NyAwIDguOTUzMTI1LTcuMjg5MDYyIDE2LjIzODI4Mi0xNi4yNDIxODcgMTYuMjM4MjgyLTguOTU3MDMxIDAtMTYuMjQyMTg4LTcuMjg1MTU3LTE2LjI0MjE4OC0xNi4yMzgyODIgMC04Ljk1NzAzMSA3LjI4NTE1Ny0xNi4yNDIxODcgMTYuMjQyMTg4LTE2LjI0MjE4N3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM5MC4xNzk2ODggMTQ3LjAxNTYyNWMzLjc2NTYyNCAwIDcuMzk4NDM3LS41NzQyMTkgMTAuODIwMzEyLTEuNjM2NzE5bDcuMzM5ODQ0IDkuODcxMDk0YzEzLjk0MTQwNiAxOC43NSAyMS42MjEwOTQgNDEuOTQ1MzEyIDIxLjYyMTA5NCA2NS4zMTI1djU5LjE1MjM0NGMwIDUuNTc4MTI1IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2IDUuNTc0MjE4IDAgMTAuMDk3NjU2LTQuNTE5NTMxIDEwLjA5NzY1Ni0xMC4wOTc2NTZ2LTU5LjE1MjM0NGMwLTI3LjY3NTc4MS05LjA5Mzc1LTU1LjE1MjM0NC0yNS42MDkzNzUtNzcuMzU5Mzc1bC02LjY3NTc4MS04Ljk4MDQ2OWM1LjQ0OTIxOC02LjM2NzE4NyA4Ljc0NjA5NC0xNC42MjUgOC43NDYwOTQtMjMuNjQwNjI1IDAtMjAuMDkzNzUtMTYuMzQzNzUtMzYuNDM3NS0zNi40Mzc1LTM2LjQzNzUtMjAuMDg5ODQ0IDAtMzYuNDMzNTk0IDE2LjM0Mzc1LTM2LjQzMzU5NCAzNi40Mzc1IDAgMjAuMDg5ODQ0IDE2LjM0Mzc1IDM2LjQzMzU5NCAzNi40MzM1OTQgMzYuNDMzNTk0em0wLTUyLjY3NTc4MWM4Ljk1NzAzMSAwIDE2LjI0MjE4NyA3LjI4NTE1NiAxNi4yNDIxODcgMTYuMjQyMTg3IDAgOC45NTMxMjUtNy4yODUxNTYgMTYuMjQyMTg4LTE2LjI0MjE4NyAxNi4yNDIxODgtOC45NTMxMjYgMC0xNi4yNDIxODgtNy4yODkwNjMtMTYuMjQyMTg4LTE2LjI0MjE4OCAwLTguOTU3MDMxIDcuMjg5MDYyLTE2LjI0MjE4NyAxNi4yNDIxODgtMTYuMjQyMTg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjA1ODU5NCAzNDkuMDUwNzgxYy01LjU3ODEyNSAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU3djYzLjMyMDMxMmMwIDE0LjIzMDQ2OS0xMS41NzgxMjYgMjUuODA4NTk0LTI1LjgwODU5NCAyNS44MDg1OTRoLTQ0LjU5NzY1NnYtMzMuNDI5Njg4YzAtNS41NzgxMjUtNC41MTk1MzItMTAuMDk3NjU2LTEwLjA5Mzc1LTEwLjA5NzY1NmgtNDIuMjY1NjI2di0xMTIuNDUzMTI1YzIxLjg1NTQ2OS0yNC4wMzUxNTYgMzUuMTkxNDA3LTU1Ljk0OTIxOSAzNS4xOTE0MDctOTAuOTE3OTY5IDAtNzQuNTk3NjU2LTYwLjY4NzUtMTM1LjI4NTE1Ni0xMzUuMjgxMjUtMTM1LjI4NTE1NnMtMTM1LjI4MTI1IDYwLjY4NzUtMTM1LjI4MTI1IDEzNS4yODUxNTZjMCAzMy4xMDU0NjkgMTEuOTU3MDMxIDYzLjQ2NDg0NCAzMS43NzczNDMgODcuMDAzOTA2djIxMy41MTk1MzJjMCA1LjU3ODEyNSA0LjUyMzQzOCAxMC4wOTc2NTYgMTAuMDk3NjU3IDEwLjA5NzY1NmgyMzUuNzYxNzE5YzUuNTc0MjE4IDAgMTAuMDkzNzUtNC41MTk1MzEgMTAuMDkzNzUtMTAuMDk3NjU2di0zMy40Mjk2ODhoNDQuNTk3NjU2YzI1LjM2NzE4NyAwIDQ2LjAwMzkwNi0yMC42MzY3MTggNDYuMDAzOTA2LTQ2LjAwMzkwNnYtNjMuMzIwMzEyYzAtNS41NzgxMjYtNC41MjM0MzgtMTAuMDk3NjU3LTEwLjA5NzY1Ni0xMC4wOTc2NTd6bS0yMzIuOTUzMTI1LTI2Mi43NjE3MTljNjMuNDU3MDMxIDAgMTE1LjA4NTkzNyA1MS42Mjg5MDcgMTE1LjA4NTkzNyAxMTUuMDg5ODQ0IDAgNjMuNDU3MDMyLTUxLjYyODkwNiAxMTUuMDg1OTM4LTExNS4wODU5MzcgMTE1LjA4NTkzOC02My40NjA5MzggMC0xMTUuMDg1OTM4LTUxLjYyODkwNi0xMTUuMDg1OTM4LTExNS4wODU5MzggMC02My40NjA5MzcgNTEuNjI1LTExNS4wODk4NDQgMTE1LjA4NTkzOC0xMTUuMDg5ODQ0em0tODMuMzA4NTk0IDIyMS42MDE1NjNjMjIuOTgwNDY5IDE4LjAxNTYyNSA1MS45MTAxNTYgMjguNzY5NTMxIDgzLjMwODU5NCAyOC43Njk1MzEgMjkuODYzMjgxIDAgNTcuNDkyMTg3LTkuNzM0Mzc1IDc5Ljg5NDUzMS0yNi4xODc1djE4MS4zMzIwMzJoLTE2My4yMDMxMjV6bTIxNS41NjY0MDYgMTgzLjkxNDA2M2gtMzIuMTY3OTY5di02Ni44NTkzNzZoMzIuMTY3OTY5em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ4LjE2MDE1NiAzNzcuNzg5MDYyaDE3LjkyNTc4MmM1LjU3NDIxOCAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzgtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyNTc4MmMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTk4LjE0NDUzMSAzNzcuNzg5MDYyaDE3LjkyMTg3NWM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTE3LjkyMTg3NWMtNS41NzgxMjUgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTE5NTMxIDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY2LjA0Njg3NSAzNTcuNTkzNzVoLTE3LjkyMTg3NWMtNS41NzQyMTkgMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM3IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDE3LjkyMTg3NWM1LjU3ODEyNSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDguMTYwMTU2IDQyMC42NzU3ODFoNjcuOTA2MjVjNS41NzQyMTkgMCAxMC4wOTc2NTYtNC41MTk1MzEgMTAuMDk3NjU2LTEwLjA5NzY1NnMtNC41MjM0MzctMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZoLTY3LjkwNjI1Yy01LjU3NDIxOCAwLTEwLjA5NzY1NiA0LjUxOTUzMS0xMC4wOTc2NTYgMTAuMDk3NjU2czQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4LjEyNSA0NDMuMTU2MjVoLTk5Ljk2NDg0NGMtNS41NzQyMTggMC0xMC4wOTc2NTYgNC41MTk1MzEtMTAuMDk3NjU2IDEwLjA5NzY1NiAwIDUuNTc0MjE5IDQuNTIzNDM4IDEwLjA5NzY1NiAxMC4wOTc2NTYgMTAuMDk3NjU2aDk5Ljk2NDg0NGM1LjU3NDIxOSAwIDEwLjA5NzY1Ni00LjUyMzQzNyAxMC4wOTc2NTYtMTAuMDk3NjU2IDAtNS41NzgxMjUtNC41MTk1MzEtMTAuMDk3NjU2LTEwLjA5NzY1Ni0xMC4wOTc2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDYuMzU1NDY5IDQwLjEzNjcxOWMxLjg0Mzc1IDMuMzIwMzEyIDUuMjg1MTU2IDUuMTkxNDA2IDguODMyMDMxIDUuMTkxNDA2IDEuNjYwMTU2IDAgMy4zNDM3NS0uNDE0MDYzIDQuODk4NDM4LTEuMjc3MzQ0IDQuODc1LTIuNzEwOTM3IDYuNjI1LTguODU5Mzc1IDMuOTE0MDYyLTEzLjczNDM3NWwtMTMuOTg0Mzc1LTI1LjEyODkwNmMtMi43MTA5MzctNC44NzEwOTQtOC44NTkzNzUtNi42MjUtMTMuNzM0Mzc1LTMuOTEwMTU2LTQuODcxMDk0IDIuNzEwOTM3LTYuNjI1IDguODU5Mzc1LTMuOTE0MDYyIDEzLjczNDM3NXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTYzLjE0NDUzMSA4My4wMTU2MjUtMjYuMDU0Njg3LTE1LjAzOTA2M2MtNC44MzIwMzItMi43ODkwNjItMTEuMDAzOTA2LTEuMTMyODEyLTEzLjc5Mjk2OSAzLjY5NTMxM3MtMS4xMzI4MTMgMTEuMDAzOTA2IDMuNjk1MzEzIDEzLjc5Mjk2OWwyNi4wNTQ2ODcgMTUuMDQyOTY4YzEuNTg5ODQ0LjkxNzk2OSAzLjMyODEyNSAxLjM1MTU2MyA1LjAzOTA2MyAxLjM1MTU2MyAzLjQ4ODI4MSAwIDYuODgyODEyLTEuODA4NTk0IDguNzUzOTA2LTUuMDQ2ODc1IDIuNzg5MDYyLTQuODMyMDMxIDEuMTMyODEyLTExLjAwNzgxMi0zLjY5NTMxMy0xMy43OTY4NzV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MS4xMTMyODEgMTQ2LjIxMDkzOC0zMC4wODU5MzctMS4yODEyNWMtNS41ODIwMzItLjI1LTEwLjI4MTI1IDQuMDg5ODQzLTEwLjUxOTUzMiA5LjY2MDE1Ni0uMjM0Mzc0IDUuNTcwMzEyIDQuMDg5ODQ0IDEwLjI4MTI1IDkuNjYwMTU3IDEwLjUxNTYyNWwzMC4wODU5MzcgMS4yODEyNWMuMTQ0NTMyLjAwNzgxMi4yOTI5NjkuMDA3ODEyLjQzNzUuMDA3ODEyIDUuMzc4OTA2IDAgOS44NTE1NjMtNC4yNDIxODcgMTAuMDc4MTI1LTkuNjY3OTY5LjIzODI4MS01LjU3MDMxMi00LjA4NTkzNy0xMC4yNzczNDMtOS42NTYyNS0xMC41MTU2MjR6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODMuNjQwNjI1IDE5OC42MjUuMTIxMDk0LjI5Njg3NWMxLjU4OTg0MyAzLjkyNTc4MSA1LjM2NzE4NyA2LjMwNDY4NyA5LjM1OTM3NSA2LjMwNDY4NyAxLjI2MTcxOCAwIDIuNTQ2ODc1LS4yMzgyODEgMy43ODkwNjItLjc0MjE4NyA1LjE2Nzk2OS0yLjA5Mzc1IDcuNjYwMTU2LTcuOTgwNDY5IDUuNTY2NDA2LTEzLjE0ODQzN2wtLjEyMTA5My0uMjk2ODc2Yy0yLjA5Mzc1LTUuMTY3OTY4LTcuOTgwNDY5LTcuNjU2MjUtMTMuMTQ4NDM4LTUuNTYyNXMtNy42NjAxNTYgNy45ODA0NjktNS41NjY0MDYgMTMuMTQ4NDM4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ5LjM2NzE4OCAzMTUuNjY3OTY5Yy0yLjA3ODEyNi01LjE3MTg3NS03Ljk2NDg0NC03LjY3OTY4OC0xMy4xMzY3MTktNS42MDE1NjMtNS4xNzE4NzUgMi4wODIwMzItNy42Nzk2ODggNy45NjA5MzgtNS42MDE1NjMgMTMuMTM2NzE5bC4xMTcxODguMjkyOTY5YzEuNTg1OTM3IDMuOTQxNDA2IDUuMzcxMDk0IDYuMzM1OTM3IDkuMzc1IDYuMzM1OTM3IDEuMjUzOTA2IDAgMi41MjczNDQtLjIzNDM3NSAzLjc2MTcxOC0uNzM0Mzc1IDUuMTc1NzgyLTIuMDc4MTI1IDcuNjgzNTk0LTcuOTYwOTM3IDUuNjAxNTYzLTEzLjEzMjgxMnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Amplifier:Une,Awnings:vne,"Battery Status":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zOTQuMDYzIDM5MS45OTZjLTkuMTk4LTUuMjktMTguMzczLTEwLjYyMy0yNy41NTgtMTUuOTM3IDUuMDAyLTExLjc2OSAxMC4xOTQtMjMuOTAyIDE0LjkwMy0zNi4wNTMgMS44MDktNC42NjcgMS4xODktOS45MTEtMS42NTUtMTQuMDI4LTUuNzc2LTguMzYxLTE2Ljg2My04Ljg1NS0yNC4zNDQtMS43NC0xOS42NjEgMTguNy0zOS4wODUgMzctNTguNjUyIDU1LjUzNy0zLjc3NSAzLjU3Ny01LjYzOSA4LjQzNC01LjExIDEzLjMyNy41MjMgNC44NDYgMy4zMzkgOS4xNDQgNy43MjUgMTEuNzkyIDkuMzQ1IDUuNjQxIDE4Ljc2MSAxMC45NTUgMjguMDk4IDE2LjI5MS00LjY0NCAxMC45NTEtMTAuMzcyIDI0LjI0Ni0xNC45MiAzNi4wMDItMi44ODcgNy40NjIuNDIxIDE1Ljc0NCA3LjY5MyAxOS4yNjQgNS43MTQgMi43NjYgMTIuMjggMi4yMTEgMTguMjk5LTMuNDgzIDE5LjM0NC0xOC4zIDM5LjM0My0zNy4yMTQgNTguNjctNTUuNTQ3IDMuODE4LTMuNjIyIDUuNjc0LTguNTEyIDUuMDktMTMuNDE2LS41OTEtNC45NjItMy41OTQtOS4zMzgtOC4yMzktMTIuMDA5em0tNy4xNzQgMTQuNTRjLTE1LjYzNCAxNC44MzItNTguOTQ5IDU2Ljk3My02MC4xMDkgNTYuNDEyLS4xMTgtLjA1Ny0uMzA2LS4xNzgtLjI0LS4zNDkgNS4xNzktMTMuNTI2IDExLjYzNS0yOC4yNzIgMTYuOTE4LTQwLjczMiAxLjQ5My0zLjUyMi45MDctOC4yOC0zLjc2OC0xMC45Ny0xMC44NC02LjIzNy0yMS43OTEtMTIuMzU0LTMyLjU2NC0xOC44NDUtLjgwMi0uNDgzLS43NjctLjcxLS4wNTEtMS4zODggMjAuODc0LTE5Ljc3OSA1Ny45NTktNTUuMzExIDU5LjgwMy01Ni40NTkuMzk2LjA4NC41NDQuMjk5LjU0NS4zODQtNS4zMDcgMTMuNjg0LTExLjIxMyAyNy4zMDUtMTYuOSA0MC43MzktMS43OTQgNC4yMzctLjI5MyA4LjY0OSAzLjczOSAxMC45OCA0LjM5OSAyLjU0IDguNzk2IDUuMDg3IDEzLjE5MSA3LjYzNCA2LjM3NCAzLjY5MyAxMi43NDggNy4zODcgMTkuMTM0IDExLjA1OSAxLjEwNi42MzUgMS4xMzYuNzQ0LjMwMiAxLjUzNXptLTgxLjc4NC0yMDguNGgtMjAxLjQ2Yy0xMC4yNzMgMC0xOC42MzEgOC4zMy0xOC42MzEgMTguNTY5djQ0LjI3NmMwIDEwLjIzOSA4LjM1NyAxOC41NjkgMTguNjMxIDE4LjU2OWgyMDEuNDYxYzEwLjI3MyAwIDE4LjYzMS04LjMzIDE4LjYzMS0xOC41Njl2LTQ0LjI3NmMtLjAwMS0xMC4yMzktOC4zNTgtMTguNTY5LTE4LjYzMi0xOC41Njl6bTMuNjMxIDYyLjg0NWMwIDEuOTY4LTEuNjI5IDMuNTY5LTMuNjMxIDMuNTY5aC0yMDEuNDZjLTIuMDAyIDAtMy42MzEtMS42MDEtMy42MzEtMy41Njl2LTQ0LjI3NmMwLTEuOTY4IDEuNjI5LTMuNTY5IDMuNjMxLTMuNTY5aDIwMS40NjFjMi4wMDIgMCAzLjYzMSAxLjYwMSAzLjYzMSAzLjU2OXY0NC4yNzZ6bTE1LTE0My44OThjMC0xMC4yMzktOC4zNTctMTguNTY5LTE4LjYzMS0xOC41NjloLTIwMS40NmMtMTAuMjczIDAtMTguNjMxIDguMzMtMTguNjMxIDE4LjU2OXY0NC4yNzZjMCAxMC4yMzkgOC4zNTcgMTguNTY5IDE4LjYzMSAxOC41NjloMjAxLjQ2MWMxMC4yNzMgMCAxOC42MzEtOC4zMyAxOC42MzEtMTguNTY5di00NC4yNzZ6bS0xNSA0NC4yNzdjMCAxLjk2OC0xLjYyOSAzLjU2OS0zLjYzMSAzLjU2OWgtMjAxLjQ2Yy0yLjAwMiAwLTMuNjMxLTEuNjAxLTMuNjMxLTMuNTY5di00NC4yNzZjMC0xLjk2OCAxLjYyOS0zLjU2OSAzLjYzMS0zLjU2OWgyMDEuNDYxYzIuMDAyIDAgMy42MzEgMS42MDEgMy42MzEgMy41Njl2NDQuMjc2em0zOC4yNDcgMTIzLjg1N2MtMTguNjUzIDAtMzYuMjY2IDQuNTI5LTUxLjgwMyAxMi41NDJoLTE5MS41MzVjLTEwLjI3MiAwLTE4LjYzIDguMzMxLTE4LjYzIDE4LjU3djQ0LjI3YzAgMTAuMjM5IDguMzU3IDE4LjU3IDE4LjYzIDE4LjU3aDEzMS42MjFjLTEuMDk2IDYuMzE4LTEuNjczIDEyLjgxMi0xLjY3MyAxOS40MzggMCAyNC4yNDMgNy42NTEgNDYuNzI5IDIwLjY2IDY1LjE4MmgtMTUwLjYwOGMtMi4wMDIgMC0zLjYzLTEuNjAyLTMuNjMtMy41N3YtNDQuMjdjMC0xLjk2OSAxLjYyOC0zLjU3IDMuNjMtMy41N2gxMDcuNjQxYzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMDcuNjQxYy0xMC4yNzIgMC0xOC42MyA4LjMzMS0xOC42MyAxOC41N3Y0NC4yN2MwIDEwLjIzOSA4LjM1NyAxOC41NyAxOC42MyAxOC41N2gxNjMuMjM3YzcuMDcgNy4wNjMgMTUuMDY1IDEzLjE5OSAyMy43ODUgMTguMjFoLTE5OC4yNDJjLTE0LjIyNyAwLTI1LjgtMTEuNTc0LTI1LjgtMjUuOHYtMzY1LjA4OWMwLTE0LjIyNiAxMS41NzMtMjUuOCAyNS44LTI1LjhoMjIzLjljMTQuMjI3IDAgMjUuOCAxMS41NzQgMjUuOCAyNS44djE1Ni42NGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xNTYuNjRjMC0yMi40OTctMTguMzAzLTQwLjgtNDAuOC00MC44aC00MC4wNjd2LTM1LjYxMWMwLTE2LjM3Ni0xMy4zMjMtMjkuNjk5LTI5LjY5OS0yOS42OTloLTg0LjM2N2MtMTYuMzc2IDAtMjkuNjk5IDEzLjMyMy0yOS42OTkgMjkuNjk5djM1LjYxMWgtNDAuMDY4Yy0yMi40OTcgMC00MC44IDE4LjMwMy00MC44IDQwLjh2MzY1LjA5YzAgMjIuNDk3IDE4LjMwMyA0MC44IDQwLjggNDAuOGgyMjMuOWMzLjg5MiAwIDcuNzMxLS41NTMgMTEuNDQyLTEuNjM2IDYuMjQ4IDEuMDcxIDEyLjY2NyAxLjYzNiAxOS4yMTYgMS42MzYgNjIuNTI0IDAgMTEzLjM5Mi01MC44NjcgMTEzLjM5Mi0xMTMuMzkyIDAtNjIuNTI0LTUwLjg2Ny0xMTMuMzkxLTExMy4zOTItMTEzLjM5MXptLTE5OS40OTEtMjU1LjUxOGMwLTguMTA1IDYuNTk0LTE0LjY5OSAxNC42OTktMTQuNjk5aDg0LjM2N2M4LjEwNSAwIDE0LjY5OSA2LjU5NCAxNC42OTkgMTQuNjk5djM1LjYxMWgtMTEzLjc2NXptLTQzLjg0NyAzMzQuNDcxYy0yLjAwMiAwLTMuNjMtMS42MDItMy42My0zLjU3di00NC4yN2MwLTEuOTY5IDEuNjI4LTMuNTcgMy42My0zLjU3aDE2OS4zNDFjLTE1LjY2NiAxMy41MjEtMjcuNiAzMS4yNS0zNC4wNDEgNTEuNDF6bTI0My4zMzggMTMyLjgzYy01NC4yNTMgMC05OC4zOTItNDQuMTM4LTk4LjM5Mi05OC4zOTIgMC01NC4yNTMgNDQuMTM5LTk4LjM5MSA5OC4zOTItOTguMzkxczk4LjM5MiA0NC4xMzggOTguMzkyIDk4LjM5MWMwIDU0LjI1NC00NC4xMzkgOTguMzkyLTk4LjM5MiA5OC4zOTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Ceiling Spotlights":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDc0IDc0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDYuNDQgNGgtMi45N2ExIDEgMCAwIDEgMC0yaDIuOTdhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNjguNjQgMTAuMzhoLTYzLjI4YTEgMSAwIDAgMSAtMS0xdi02LjM4YTEgMSAwIDAgMSAxLTFoMjEuMmExIDEgMCAwIDEgMCAyaC0yMC4ydjQuMzhoNjEuMjh2LTQuMzhoLTE0LjJhMSAxIDAgMCAxIDAtMmgxNS4yYTEgMSAwIDAgMSAxIDF2Ni4zOGExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYuNDcgNGgtMi45MWExIDEgMCAwIDEgMC0yaDIuOTFhMSAxIDAgMCAxIDAgMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgNTEuMjA3YTEgMSAwIDAgMSAtMS0xdi00MC44MjhhMSAxIDAgMSAxIDIgMHY0MC44MjhhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ljc3MSA2Ny4wN2gtMTkuNTQyYTEgMSAwIDAgMSAtLjk3Ny0xLjIxNWwzLjQ5LTE1Ljg1NWExIDEgMCAwIDEgLjk3Ny0uNzg1aDEyLjU2MmExIDEgMCAwIDEgLjk3Ny43ODVsMy40OSAxNS44NmExIDEgMCAwIDEgLS45NzcgMS4yMTV6bS0xOC4zLTJoMTcuMDU2bC0zLjA0OS0xMy44NmgtMTAuOTU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyA3MmE1LjkzNiA1LjkzNiAwIDAgMSAtNS45My01LjkzIDEgMSAwIDAgMSAyIDAgMy45MyAzLjkzIDAgMCAwIDcuODYgMCAxIDEgMCAwIDEgMiAwIDUuOTM2IDUuOTM2IDAgMCAxIC01LjkzIDUuOTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiAzNS4xMTRhMSAxIDAgMCAxIC0xLTF2LTI0LjczNWExIDEgMCAwIDEgMiAwdjI0LjczNWExIDEgMCAwIDEgLTEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjkuNiA1MC4wMjZoLTE4LjM3YTEgMSAwIDAgMSAtLjk3Ni0xLjIxNWwzLjI4LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgwOWExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgybC0yLjgzOS0xMi45MDloLTEwLjJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTYwLjQxNiA1NC42NmE1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQtNS42MzQgMSAxIDAgMSAxIDIgMCAzLjYzNCAzLjYzNCAwIDEgMCA3LjI2OCAwIDEgMSAwIDEgMSAyIDAgNS42NDEgNS42NDEgMCAwIDEgLTUuNjM0IDUuNjM0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMy41ODQgMzUuMTE0YTEgMSAwIDAgMSAtMS0xdi0yNC43MzVhMSAxIDAgMCAxIDIgMHYyNC43MzVhMSAxIDAgMCAxIC0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyLjc3IDUwLjAyNmgtMTguMzdhMSAxIDAgMCAxIC0uOTc2LTEuMjE1bDMuMjc2LTE0LjkxMWExIDEgMCAwIDEgLjk3Ny0uNzg1aDExLjgxMmExIDEgMCAwIDEgLjk3Ny43ODVsMy4yOCAxNC45MDlhMSAxIDAgMCAxIC0uOTc2IDEuMjE1em0tMTcuMTI2LTJoMTUuODgxbC0yLjgzOS0xMi45MDloLTEwLjIwM3oiLz4KICAgICAgICA8cGF0aCBkPSJtMTMuNTg0IDU0LjY2YTUuNjQxIDUuNjQxIDAgMCAxIC01LjYzNC01LjYzNCAxIDEgMCAwIDEgMiAwIDMuNjM0IDMuNjM0IDAgMCAwIDcuMjY4IDAgMSAxIDAgMCAxIDIgMCA1LjY0MSA1LjY0MSAwIDAgMSAtNS42MzQgNS42MzR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Chandelier:bne,Climate:$ne,"Coffee Makers":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NjYgMTExLjk5NmgtNDkuNzE5bC0xMDkuMjE1LTQ2LjM2MSA0Ljg4OS01NC43NDZjLjI1LTIuNzk2LS42ODctNS41NjgtMi41ODItNy42MzktMS44OTQtMi4wNy00LjU3Mi0zLjI1LTcuMzc4LTMuMjVoLTYwYy0yLjgwNyAwLTUuNDg0IDEuMTgtNy4zNzkgMy4yNS0xLjg5NSAyLjA3MS0yLjgzMSA0Ljg0My0yLjU4MiA3LjYzOWw0Ljg5OCA1NC44NTQtMTA0Ljc5NSA0Ni4yNTNoLTI2LjEzN2MtMzguNTk4IDAtNzAgMzEuNDAyLTcwIDcwdjY5Ljk5N2MwIDE2LjU0MiAxMy40NTggMzAgMzAgMzBzMzAtMTMuNDU4IDMwLTMwdi02OS45OTdjMC01LjQyIDQuNTgtMTAgMTAtMTBoMjYuOTE1bDIxLjQ4MyAxMjEuNzM4YzEuOTI3IDEwLjkyMyA5LjkwNCAxOC4yNjMgMTkuODQ4IDE4LjI2M3Y0MC4wMDNjLTkuNjUyIDAtMTcuMjE3IDYuODAyLTE5Ljc0NCAxNy43NTFsLTMwLjAwMSAxMzBjLS42ODUgMi45NjkuMDIxIDYuMDg5IDEuOTE4IDguNDc0czQuNzc4IDMuNzc0IDcuODI2IDMuNzc0aDI4MGMzLjA0NyAwIDUuOTI5LTEuMzkgNy44MjYtMy43NzQgMS44OTctMi4zODUgMi42MDQtNS41MDUgMS45MTgtOC40NzRsLTMwLjAwMS0xMzBjLTIuNTI1LTEwLjk0OS0xMC4wOTEtMTcuNzUxLTE5Ljc0My0xNy43NTF2LTQwLjAwMmM5Ljk0NCAwIDE3LjkyLTcuMzM5IDE5Ljg0Ny0xOC4yNjJsMTQuMzgxLTgxLjQ5MiA2NC4wNTYtNTUuMjM2YzIuMjAzLTEuODk5IDMuNDctNC42NjUgMy40Ny03LjU3M3YtMjcuNDM4Yy4wMDEtNS41MjQtNC40NzctMTAuMDAxLTkuOTk5LTEwLjAwMXptLTE3NC45MzgtOTEuOTk2LTMuNzUgNDEuOTk2aC0zMC42MzRsLTMuNzUxLTQxLjk5NnptLTQxLjQyMyA2MS45OTZoNDQuNzg1bDcwLjY3MiAzMGgtMTgzLjQyOHptLTE0My42MzkgNzAuMDAxYy0xNi41NDIgMC0zMCAxMy40NTgtMzAgMzB2NjkuOTk3YzAgNS41MTQtNC40ODYgMTAtMTAgMTBzLTEwLTQuNDg2LTEwLTEwdi02OS45OTdjMC0yNy41NyAyMi40My01MCA1MC01MGgxOS44NTZsMy41MyAyMHptNjguMDk0IDEzOC4yNjMtMjcuOTI5LTE1OC4yNjRoNjIuNzYybDIuNTI4IDM1LjgxN2MuMzcyIDUuMjcgNC43NjIgOS4yOTYgOS45NjUgOS4yOTYuMjM2IDAgLjQ3NS0uMDA4LjcxNC0uMDI1IDUuNTA5LS4zODkgOS42Ni01LjE3IDkuMjcxLTEwLjY3OWwtMi40MjktMzQuNDA5aDkwLjUzOWwtMTEuMjk1IDE2MC4wMDJoLTY3Ljk0OWwtMi41MjktMzUuODE3Yy0uMzg5LTUuNTA5LTUuMTY2LTkuNjYxLTEwLjY3OS05LjI3MS01LjUwOS4zODktOS42NiA1LjE3LTkuMjcxIDEwLjY3OWwyLjQyOSAzNC40MDloLTQ1LjUxOGMtLjE5OS0uMzIxLS40NjMtLjkxNC0uNjA5LTEuNzM4em0tLjEwMyA4My45ODhjLjI1OS0xLjEyNS42MS0xLjg1Ny44NTMtMi4yNDloNDUuMzZsLTExLjA3NyAxMjBoLTYyLjMxem0xMzQuMjEyLTIuMjQ4IDExLjA3NyAxMjBoLTkwLjA2OWwxMS4wNzctMTIwem02Ni4yOTcgMi4yNDggMjcuMTc1IDExNy43NTJoLTYyLjMxbC0xMS4wNzctMTIwaDQ1LjM2Yy4yNDMuMzkxLjU5MyAxLjEyMy44NTIgMi4yNDh6bS0yMC4yNTUtMjIuMjQ4aC0xNTkuOTk4di00MC4wMDJoMTU5Ljk5OHptMjAuMTUxLTYxLjc0Yy0uMTQ2LjgyNC0uNDA5IDEuNDE3LS42MDggMS43MzdoLTQ1LjUxOGwxMS4yOTUtMTYwLjAwMWg2Mi43NjJsLTEyLjkzNyA3My4zMDljMCAuMDAxIDAgLjAwMi0uMDAxLjAwM3ptODEuNjA0LTE0NS40MDctNDIuMDI5IDM2LjI0MiA4LjY2NS00OS4wOTloMzMuMzY0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjQuNTk5IDIyMS45OTdjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTBoLS4wMDdjLTUuNTIzIDAtOS45OTYgNC40NzctOS45OTYgMTBzNC40OCAxMCAxMC4wMDMgMTB6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Cold Water":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ3NSA0NzUiID4KPGcgZmlsbD0iY3VycmVudENvbG9yIj4KCTxwYXRoIGQ9Ik00MzguNDEzLDM0My4xODhDNDI4LjA1OSwzMzUuMDg1LDQxNS4xNzQsMzI1LDM5MC44MzUsMzI1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3NywxOC4xODgKCQlDMzM0LjQ5NiwzNTAuMDQ1LDMyOC4xNjUsMzU1LDMxNC4xNywzNTVjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzQzI3NC43MjksMzM1LjA4NSwyNjEuODQ0LDMyNSwyMzcuNTA2LDMyNQoJCWMtMjQuMzM5LDAtMzcuMjI0LDEwLjA4NS00Ny41NzgsMTguMTg4QzE4MS4xNjYsMzUwLjA0NSwxNzQuODM0LDM1NSwxNjAuODQsMzU1Yy0xMy45OTYsMC0yMC4zMjctNC45NTUtMjkuMDktMTEuODEzCgkJQzEyMS4zOTUsMzM1LjA4NCwxMDguNTA5LDMyNSw4NC4xNywzMjVjLTI0LjMzOSwwLTM3LjIyNSwxMC4wODQtNDcuNTc5LDE4LjE4OEMyNy44MjgsMzUwLjA0NSwyMS40OTYsMzU1LDcuNSwzNTV2MzAKCQljMjQuMzM5LDAsMzcuMjI1LTEwLjA4NCw0Ny41NzktMTguMTg4QzYzLjg0MiwzNTkuOTU1LDcwLjE3NCwzNTUsODQuMTcsMzU1YzEzLjk5NiwwLDIwLjMyNyw0Ljk1NSwyOS4wOTEsMTEuODEzCgkJQzEyMy42MTUsMzc0LjkxNiwxMzYuNSwzODUsMTYwLjg0LDM4NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg0LDQ3LjU3OC0xOC4xODhDMjE3LjE4LDM1OS45NTUsMjIzLjUxMSwzNTUsMjM3LjUwNiwzNTUKCQljMTMuOTk0LDAsMjAuMzI1LDQuOTU1LDI5LjA4NywxMS44MTNDMjc2Ljk0NywzNzQuOTE1LDI4OS44MzMsMzg1LDMxNC4xNywzODVjMjQuMzM4LDAsMzcuMjI0LTEwLjA4NSw0Ny41NzctMTguMTg4CgkJQzM3MC41MSwzNTkuOTU1LDM3Ni44NDEsMzU1LDM5MC44MzUsMzU1YzEzLjk5NSwwLDIwLjMyNSw0Ljk1NSwyOS4wODgsMTEuODEzQzQzMC4yNzcsMzc0LjkxNSw0NDMuMTYyLDM4NSw0NjcuNSwzODV2LTMwCgkJQzQ1My41MDYsMzU1LDQ0Ny4xNzUsMzUwLjA0NSw0MzguNDEzLDM0My4xODh6Ii8+Cgk8cGF0aCBkPSJNMzkwLjgzNSw0MTVjLTI0LjMzOCwwLTM3LjIyNCwxMC4wODUtNDcuNTc3LDE4LjE4OEMzMzQuNDk2LDQ0MC4wNDUsMzI4LjE2NSw0NDUsMzE0LjE3LDQ0NQoJCWMtMTMuOTk0LDAtMjAuMzI1LTQuOTU1LTI5LjA4Ny0xMS44MTNDMjc0LjcyOSw0MjUuMDg1LDI2MS44NDQsNDE1LDIzNy41MDYsNDE1Yy0yNC4zMzksMC0zNy4yMjQsMTAuMDg1LTQ3LjU3OCwxOC4xODgKCQlDMTgxLjE2Niw0NDAuMDQ1LDE3NC44MzQsNDQ1LDE2MC44NCw0NDVjLTEzLjk5NiwwLTIwLjMyNy00Ljk1NS0yOS4wOS0xMS44MTNDMTIxLjM5NSw0MjUuMDg0LDEwOC41MDksNDE1LDg0LjE3LDQxNQoJCWMtMjQuMzM5LDAtMzcuMjI1LDEwLjA4NC00Ny41NzksMTguMTg4QzI3LjgyOCw0NDAuMDQ1LDIxLjQ5Niw0NDUsNy41LDQ0NXYzMGMyNC4zMzksMCwzNy4yMjUtMTAuMDg0LDQ3LjU3OS0xOC4xODgKCQlDNjMuODQyLDQ0OS45NTUsNzAuMTc0LDQ0NSw4NC4xNyw0NDVjMTMuOTk2LDAsMjAuMzI3LDQuOTU1LDI5LjA5MSwxMS44MTNDMTIzLjYxNSw0NjQuOTE2LDEzNi41LDQ3NSwxNjAuODQsNDc1CgkJYzI0LjMzOCwwLDM3LjIyNC0xMC4wODQsNDcuNTc4LTE4LjE4OEMyMTcuMTgsNDQ5Ljk1NSwyMjMuNTExLDQ0NSwyMzcuNTA2LDQ0NWMxMy45OTQsMCwyMC4zMjUsNC45NTUsMjkuMDg3LDExLjgxMwoJCUMyNzYuOTQ3LDQ2NC45MTUsMjg5LjgzMyw0NzUsMzE0LjE3LDQ3NWMyNC4zMzgsMCwzNy4yMjQtMTAuMDg1LDQ3LjU3Ny0xOC4xODhDMzcwLjUxLDQ0OS45NTUsMzc2Ljg0MSw0NDUsMzkwLjgzNSw0NDUKCQljMTMuOTk1LDAsMjAuMzI1LDQuOTU1LDI5LjA4OCwxMS44MTNDNDMwLjI3Nyw0NjQuOTE1LDQ0My4xNjIsNDc1LDQ2Ny41LDQ3NXYtMzBjLTEzLjk5NCwwLTIwLjMyNS00Ljk1NS0yOS4wODctMTEuODEzCgkJQzQyOC4wNTksNDI1LjA4NSw0MTUuMTc0LDQxNSwzOTAuODM1LDQxNXoiLz4KCTxwb2x5Z29uIHBvaW50cz0iMTg0LjM3OCwyNTguMzIzIDIyMi41LDIzNi4zMTMgMjIyLjUsMjgwLjMzMyAyNTIuNSwyODAuMzMzIDI1Mi41LDIzNi4zMTMgMjkwLjYyMiwyNTguMzIzIDMwNS42MjIsMjMyLjM0MwoJCTI2Ny41LDIxMC4zMzMgMzA1LjYyMiwxODguMzIzIDI5MC42MjIsMTYyLjM0MyAyNTIuNSwxODQuMzUzIDI1Mi41LDE0MC4zMzMgMjIyLjUsMTQwLjMzMyAyMjIuNSwxODQuMzUzIDE4NC4zNzgsMTYyLjM0MwoJCTE2OS4zNzgsMTg4LjMyMyAyMDcuNSwyMTAuMzMzIDE2OS4zNzgsMjMyLjM0MyAJCQkiLz4KCTxwb2x5Z29uIHBvaW50cz0iMjQuMDk1LDExNy45OSA2Mi4yMTYsOTUuOTggNjIuMjE2LDE0MCA5Mi4yMTYsMTQwIDkyLjIxNiw5NS45OCAxMzAuMzM4LDExNy45OSAxNDUuMzM4LDkyLjAxIDEwNy4yMTYsNzAKCQkxNDUuMzM4LDQ3Ljk5IDEzMC4zMzgsMjIuMDEgOTIuMjE2LDQ0LjAyIDkyLjIxNiwwIDYyLjIxNiwwIDYyLjIxNiw0NC4wMiAyNC4wOTUsMjIuMDEgOS4wOTUsNDcuOTkgNDcuMjE3LDcwIDkuMDk1LDkyLjAxCgkJIi8+Cgk8cG9seWdvbiBwb2ludHM9IjM0NC42NjIsMTE3Ljk5IDM4Mi43ODQsOTUuOTggMzgyLjc4NCwxNDAgNDEyLjc4NCwxNDAgNDEyLjc4NCw5NS45OCA0NTAuOTA1LDExNy45OSA0NjUuOTA1LDkyLjAxIDQyNy43ODMsNzAKCQk0NjUuOTA1LDQ3Ljk5IDQ1MC45MDUsMjIuMDEgNDEyLjc4NCw0NC4wMiA0MTIuNzg0LDAgMzgyLjc4NCwwIDM4Mi43ODQsNDQuMDIgMzQ0LjY2MiwyMi4wMSAzMjkuNjYyLDQ3Ljk5IDM2Ny43ODQsNzAKCQkzMjkuNjYyLDkyLjAxIAkJCSIvPgo8L2c+Cjwvc3ZnPgo=",Computer:Pne,Consumption:Wne,Curtains:Rne,Dishwashers:Jne,Doors:Bne,Doorstep:Fne,Dryer:Gne,Fan:Hne,"Floor Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNzcuMDE4IDEwNC40LTU0Ljg2MS05My40MTZjLTMuOTgtNi43NzUtMTEuMzM0LTEwLjk4NC0xOS4xOTEtMTAuOTg0aC05MS42NTVjLTcuNjk3IDAtMTQuOTczIDQuMDc5LTE4Ljk4NyAxMC42NDRsLTU3LjEzNSA5My40MTRjLTkuMDU1IDE0LjgwMyAxLjYyNiAzMy44NyAxOC45ODcgMzMuODdoMjguMTgyYzIuMjIyIDMzLjQ1MiAyNi44MDggNjAuODg0IDU4LjkxNiA2Ny40MS0uMjc0IDEuODI2LS4xODQtMTMuNTEtLjE4NCAyMTcuMTk1aC0zNy40ODRjLTExLjg5OCAwLTIxLjU3OSA5LjY4LTIxLjU3OSAyMS41Nzl2NDYuMzFjMCAxMS44OTggOS42OCAyMS41NzkgMjEuNTc5IDIxLjU3OWgxMDQuNzljMTEuODk5IDAgMjEuNTc5LTkuNjggMjEuNTc5LTIxLjU3OXYtNDYuMzFjMC0xMS44OTgtOS42OC0yMS41NzktMjEuNTc5LTIxLjU3OWgtMzcuNDg0YzAtMjMwLjc2Ni4wOS0yMTUuMzctLjE4NC0yMTcuMTk1IDIyLjAyNS00LjQ3NiA0MC41MDUtMTguNzk1IDUwLjY2Ni0zOC4xNDF2MzcuNjMxYzAgOC4yMzUgNi42NzYgMTQuOTExIDE0LjkxMSAxNC45MTFzMTQuOTExLTYuNjc2IDE0LjkxMS0xNC45MTF2LTY2LjloNi42MWMxNy4xNjYgMCAyNy44OTMtMTguNzA4IDE5LjE5Mi0zMy41Mjh6bS03Ni44NjYgMzc3Ljc3OGgtODguMzAydi0yOS44MjJoODguMzAyem0tODQuNTk5LTQ1Mi4zNTZoODMuMDgzbDQ1Ljk3NCA3OC4yODRjLTcuMDYxIDAtMTY5LjkwMyAwLTE3Ni45MzggMHptNDAuNDQ3IDE0Ny4xNzJjLTIyLjU5NSAwLTQxLjI2Ny0xNy4xMTctNDMuNzI5LTM5LjA2Nmg4Ny40NThjLTIuNDYyIDIxLjk0OS0yMS4xMzQgMzkuMDY2LTQzLjcyOSAzOS4wNjZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Garage Doors":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDY0YzQuNDE4LDAsOC0zLjU4Miw4LThWOGMwLTQuNDE4LTMuNTgyLTgtOC04SDhDMy41ODIsMCwwLDMuNTgyLDAsOHY0OGMwLDQuNDE4LDMuNTgyLDgsOCw4aDE2djQwMEg4CgkJYy00LjQxOCwwLTgsMy41ODItOCw4czMuNTgyLDgsOCw4aDQ2NGM0LjQxOCwwLDgtMy41ODIsOC04cy0zLjU4Mi04LTgtOGgtMTZWNjRINDcyeiBNNDA4LDQ2NEg3MnYtNDhoMzM2VjQ2NHogTTQwOCw0MDBINzJ2LTQ4CgkJaDMzNlY0MDB6IE00MDgsMzM2SDcydi00OGgzMzZWMzM2eiBNNDA4LDI3Mkg3MnYtNDhoMzM2VjI3MnogTTQwOCwyMDhINzJ2LTQ4aDMzNlYyMDh6IE00MDgsMTQ0SDcyVjk2aDMzNlYxNDR6IE00NDAsNDY0aC0xNlY4OAoJCWMwLTQuNDE4LTMuNTgyLTgtOC04SDY0Yy00LjQxOCwwLTgsMy41ODItOCw4djM3Nkg0MFY2NGg0MDBWNDY0eiBNMTYsNDhWMTZoNDQ4djMySDE2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTYsNDU2aDQ4YzQuNDE4LDAsOC0zLjU4Miw4LThzLTMuNTgyLTgtOC04aC00OGMtNC40MTgsMC04LDMuNTgyLTgsOFMyMTEuNTgyLDQ1NiwyMTYsNDU2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Gates:Vne,Hairdryer:Zne,Handle:Xne,"Hanging Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05My41MjUgMzU5Ljc3MWgxMDcuODg1djQuMTI5YTUzLjA3MiA1My4wNzIgMCAxIDAgMTA2LjE0NCAwdi00LjEyNGgxMTAuOTIxYTYgNiAwIDAgMCA2LTZjMC04Mi4wMTUtNTguOTEzLTE1MC41MTgtMTM2LjY0LTE2NS40NDR2LTIwLjMxOWEzMS44ODMgMzEuODgzIDAgMCAwIC0yNS44MzUtMzEuMjZ2LTEyMC43NTNhNiA2IDAgMCAwIC0xMiAwdjEyMC43NTNhMzEuODgzIDMxLjg4MyAwIDAgMCAtMjUuODM1IDMxLjI2djIwLjMxNGMtNzcuNzI3IDE0LjkyNi0xMzYuNjQgODMuNDI5LTEzNi42NCAxNjUuNDQ0YTYgNiAwIDAgMCA2IDZ6bTIwMi4wMjkgNC4xMjlhNDEuMDcyIDQxLjA3MiAwIDEgMSAtODIuMTQ0IDB2LTQuMTI0aDgyLjE0NHptLTM5LjU1NC0yMTUuNzIyYTE5Ljg1MSAxOS44NTEgMCAwIDEgMTkuMTggMTQuODY4aC0zOC4zNmExOS44NTEgMTkuODUxIDAgMCAxIDE5LjE4LTE0Ljg2OHptLTE5LjgzNSAyNi44NjhoMzkuNjd2MTEuNDI0YTE2OC4yODggMTY4LjI4OCAwIDAgMCAtMzkuNjcgMHptMTkuODM1IDIyLjI1NGM4NC4yNzQgMCAxNTMuMiA2Ni45NiAxNTYuMzYxIDE1MC40NzRoLTMxMi43MjJjMy4xNjEtODMuNTE3IDcyLjA4Ny0xNTAuNDc0IDE1Ni4zNjEtMTUwLjQ3NHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUwIDQ1NS41MDh2NDAuNDkyYTYgNiAwIDAgMCAxMiAwdi00MC40OTJhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDMuNDIyIDQzMS40ODhhNiA2IDAgMCAwIC0uMDc1IDguNDg1bDI4LjM0NCAyOC44NTFhNiA2IDAgMCAwIDguNTYxLTguNDFsLTI4LjM0NC0yOC44NTFhNiA2IDAgMCAwIC04LjQ4Ni0uMDc1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuMDkyIDQzMS41NjMtMjguMzQ0IDI4Ljg1MWE2IDYgMCAwIDAgOC41NjEgOC40MWwyOC4zNDQtMjguODUxYTYgNiAwIDAgMCAtOC41NjEtOC40MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTg2Ljc1IDIzNi44MWExNjguNzMxIDE2OC43MzEgMCAwIDAgLTQ1LjkyNyA0OC4xNDMgNiA2IDAgMSAwIDEwLjE0MSA2LjQxNyAxNTYuNzgxIDE1Ni43ODEgMCAwIDEgNDIuNjc3LTQ0LjczNiA2IDYgMCAwIDAgLTYuODkxLTkuODI0eiIvPgogICAgPC9nPgo8L3N2Zz4=",Heater:Kne,Hoods:qne,"Hot Water":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMCA1MTAiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTUgMjQxLjkwMmMtMTguMjIzIDAtMzMuMzU4LTUuOTM3LTQ1LjA5Mi0xNy42MnYtMTQ5LjM1NGMwLTQxLjMxNS0zMy42MTMtNzQuOTI4LTc0LjkyOS03NC45MjhzLTc0LjkyOCAzMy42MTMtNzQuOTI4IDc0LjkyOHYxNDkuMzk1Yy0yNC4yNTQgMjQuMTA3LTY5LjQ3NiAyNC40MTUtOTMuNjYzLTMuODAzLTUuOTgxLTYuOTc4LTE2Ljc5My02Ljk4Mi0yMi43NzcgMC0yNC41ODYgMjguNjg1LTcyLjUzOCAyOC43OTgtOTcuMjIzIDAtNi4zMjItNy4zNzgtMTcuODY3LTYuODY3LTIzLjUzNy45NjMtLjE0OC4yMDQtMTUuNjg4IDIwLjQxOC00Ny44NTIgMjAuNDE4LTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTVjMjguNjMyIDAgNDguNDg5LTExLjI4IDYwLjAyNy0yMC42MjQgMzMuNDQ3IDI3LjYxNSA4Ni41MTIgMjcuNjI1IDExOS45NzMtLjAyMiAzMC4xOTEgMjQuOTQ0IDc0LjM2MiAyNi4xNzkgMTA1LjA1MiA5Ljk1N3Y0MC40NzFjLTI3Ljk4NCAyMy4xMzEtNDMuODExIDU3Ljg3OC00Mi42NTggOTQuNDUzIDEuOTc0IDYyLjcyOCA1My43NDMgMTEzLjg2NCAxMTcuNTg2IDExMy44NjQgNjQuODcxIDAgMTE3LjY0Ny01Mi43NzYgMTE3LjY0Ny0xMTcuNjQ2IDAtMzUuMDctMTUuODM3LTY4LjQwNi00Mi43MTktOTAuNjY2di00MC40OTdjMTMuMzI1IDcuMDUyIDI4LjUxNyAxMC43MSA0NS4wOTIgMTAuNzEgOC4yODQgMCAxNS02LjcxNiAxNS0xNXMtNi43MTUtMTQuOTk5LTE0Ljk5OS0xNC45OTl6bS0xMjAuMDItMjExLjkwMmMyNC43NzMgMCA0NC45MjggMjAuMTU1IDQ0LjkyOCA0NC45Mjh2MTQ5LjUzN2MtOC4zMTQgOC4yMTEtMTguMzI3IDEzLjU1MS0yOS45MjkgMTUuOTUzdi0xNDMuOTU3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVzLTE1IDYuNzE2LTE1IDE1djE0My45NDdjLTExLjYwMy0yLjQwOS0yMS42MTUtNy43NTktMjkuOTI4LTE1Ljk4M3YtMTQ5LjQ5N2MuMDAxLTI0Ljc3MyAyMC4xNTYtNDQuOTI4IDQ0LjkyOS00NC45Mjh6bS0uMDAxIDM0My41MDRjMTAuNTMyIDAgMTkuMTAxIDguNTY4IDE5LjEwMSAxOS4xcy04LjU2OCAxOS4xLTE5LjEwMSAxOS4xYy0xMC41MzEgMC0xOS4xLTguNTY4LTE5LjEtMTkuMXM4LjU2OS0xOS4xIDE5LjEtMTkuMXptODcuNjQ4IDE4Ljg1YzAgNDguMzI5LTM5LjMxOCA4Ny42NDYtODcuNjQ3IDg3LjY0Ni00Ni44MzEgMC04Ni4xMjktMzguMDQ0LTg3LjYwMi04NC44MDgtLjkyLTI5LjIxOCAxMi43MDQtNTYuODc1IDM2LjQ0My03My45ODEgMy45MTItMi44MTkgNi4yMy03LjM0NyA2LjIzLTEyLjE2OXYtNDcuNzc0YzkuMTQ4IDQuODIgMTkuMTc3IDguMDMzIDI5LjkyOCA5LjU2OHY3NS4wMmMtMTkuNzU4IDYuMzU1LTM0LjEgMjQuOTA1LTM0LjEgNDYuNzQ4IDAgMjcuMDc0IDIyLjAyNiA0OS4xIDQ5LjEgNDkuMXM0OS4xMDEtMjIuMDI2IDQ5LjEwMS00OS4xYzAtMjEuODQzLTE0LjM0Mi00MC4zOTMtMzQuMTAxLTQ2Ljc0OHYtNzUuMDE0YzEwLjc1LTEuNTMxIDIwLjc4LTQuNzM4IDI5LjkyOS05LjU1MnY0Ny43NTNjMCA0LjgyMiAyLjMxOCA5LjM1MSA2LjIzIDEyLjE2OSAyMi44NDggMTYuNDYzIDM2LjQ4OSA0My4wNTkgMzYuNDg5IDcxLjE0MnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc4LjE5IDMwOC4zMzJjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNzMuODU3IDM3OS4xMTdjLTI0LjgxMyAwLTQ1IDIwLjE4Ny00NSA0NXMyMC4xODcgNDUgNDUgNDUgNDUtMjAuMTg3IDQ1LTQ1LTIwLjE4Ni00NS00NS00NXptMCA2MGMtOC4yNzEgMC0xNS02LjcyOS0xNS0xNXM2LjcyOS0xNSAxNS0xNSAxNSA2LjcyOSAxNSAxNS02LjcyOCAxNS0xNSAxNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjQuODYzIDE1NC4xNDNjLTUuODU4IDUuODU4LTUuODU4IDE1LjM1NSAwIDIxLjIxMyA1Ljg1NyA1Ljg1NyAxNS4zNTUgNS44NTggMjEuMjEzIDAgMjEuMDQ2LTIxLjA0NiAyMS4wNDYtNTUuMjkxIDAtNzYuMzM4LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ny01Ljg1OC0xNS4zNTUtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzQ5IDkuMzQ5IDkuMzQ5IDI0LjU2MSAwIDMzLjkxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTQyLjI1MSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcxIDkuMzcxIDkuMzczIDI0LjUzOSAwIDMzLjkxMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjE5LjYzOSAxNTQuMTQzYy01Ljg1OCA1Ljg1OC01Ljg1OCAxNS4zNTUgMCAyMS4yMTMgNS44NTcgNS44NTggMTUuMzU0IDUuODU4IDIxLjIxMyAwIDIxLjA5Ny0yMS4wOTcgMjEuMDk4LTU1LjI0IDAtNzYuMzM5LTkuMzcxLTkuMzctOS4zNzMtMjQuNTM5IDAtMzMuOTExIDUuODU4LTUuODU4IDUuODU4LTE1LjM1NSAwLTIxLjIxMy01Ljg1Ni01Ljg1OC0xNS4zNTQtNS44NTctMjEuMjEzIDAtMjEuMDk2IDIxLjA5Ni0yMS4wOTggNTUuMjQxIDAgNzYuMzM4IDkuMzcgOS4zNzEgOS4zNzMgMjQuNTM5IDAgMzMuOTEyeiIvPgogICAgPC9nPgo8L3N2Zz4=",Humidity:eae,Iron:tae,Irrigation:sae,"Led Strip":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTYgMThhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDI2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiA0MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgNTBhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE2IDU4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNiAzNGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTIgNjJoOGExIDEgMCAwIDAgMS0xdi00OWg2djQxYTEgMSAwIDAgMCAuMjkzLjcwN2w4IDhhMSAxIDAgMCAwIC43MDcuMjkzaDhhMSAxIDAgMCAwIC43MDctLjI5M2w4LThhMSAxIDAgMCAwIC4yOTMtLjcwN3YtNTBhMSAxIDAgMCAwIC0xLTFoLThhMSAxIDAgMCAwIC0xIDF2NDloLTZ2LTQ5YTEgMSAwIDAgMCAtMS0xaC0xNmExIDEgMCAwIDAgLS43MDcuMjkzbC04IDhhMSAxIDAgMCAwIC0uMjkzLjcwN3Y1MGExIDEgMCAwIDAgMSAxem0zMy0xM3YtNDVoNnY0OC41ODZsLTYgNnptLTggNWg2djZoLTZ6bS04LTV2LTQ1aDZ2NTQuNTg2bC02LTZ6bS04LTQ1aDZ2NmgtNnptLTggNTF2LTQzLjU4Nmw2LTZ2NTQuNTg2aC02eiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDggMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ4IDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiA1MmEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgNDRhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI4YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMiAyMGEzIDMgMCAxIDAgLTMtMyAzIDMgMCAwIDAgMyAzem0wLTRhMSAxIDAgMSAxIC0xIDEgMSAxIDAgMCAxIDEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzIgMTJhMyAzIDAgMSAwIC0zLTMgMyAzIDAgMCAwIDMgM3ptMC00YTEgMSAwIDEgMSAtMSAxIDEgMSAwIDAgMSAxLTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDM2YTMgMyAwIDEgMCAtMy0zIDMgMyAwIDAgMCAzIDN6bTAtNGExIDEgMCAxIDEgLTEgMSAxIDEgMCAwIDEgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMyA2aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzkgNTZoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00IDMxaDV2MmgtNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNiAyNWgydjVoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNiAtLjggLjggLjYgLTE5LjIgMTYuNikiLz4KICAgICAgICA8cGF0aCBkPSJtNC41IDM1LjVoNXYyaC01eiIgdHJhbnNmb3JtPSJtYXRyaXgoLjggLS42IC42IC44IC0yMC41MDUgMTEuNTA1KSIvPgogICAgICAgIDxwYXRoIGQ9Im01NSAzMWg1djJoLTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU0LjUgMjYuNWg1djJoLTV6IiB0cmFuc2Zvcm09Im1hdHJpeCguOCAtLjYgLjYgLjggLTUuMDk4IDM5LjcxMikiLz4KICAgICAgICA8cGF0aCBkPSJtNTYgMzRoMnY1aC0yeiIgdHJhbnNmb3JtPSJtYXRyaXgoLjYgLS44IC44IC42IC02LjQgNjAuMikiLz4KICAgIDwvZz4KPC9zdmc+",Light:iae,Lightings:oae,Lock:rae,Louvre:Mae,"Mowing Machine":"PHN2ZyB2aWV3Qm94PSIwIDAgNjQgNjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NyA1NGM1LjUxNCAwIDEwLTQuNDg2IDEwLTEwcy00LjQ4Ni0xMC0xMC0xMC0xMCA0LjQ4Ni0xMCAxMCA0LjQ4NiAxMCAxMCAxMHptLTcuOTMxLTExYy4xODMtMS40NTguNzU5LTIuNzkyIDEuNjE5LTMuODk4bDEuMzYyIDEuMzYzIDEuNDE0LTEuNDE0LTEuMzYyLTEuMzYyYzEuMTA2LS44NiAyLjQ0LTEuNDM2IDMuODk4LTEuNjE5djEuOTNoMnYtMS45MzFjMS40NTguMTgzIDIuNzkyLjc1OSAzLjg5OCAxLjYxOWwtMS4zNjIgMS4zNjIgMS40MTQgMS40MTQgMS4zNjItMS4zNjNjLjg2IDEuMTA2IDEuNDM2IDIuNDQgMS42MTkgMy44OThoLTEuOTMxdjJoMS45MzFjLS4xODMgMS40NTgtLjc1OSAyLjc5Mi0xLjYxOSAzLjg5OGwtMS4zNjItMS4zNjMtMS40MTQgMS40MTQgMS4zNjIgMS4zNjJjLTEuMTA2Ljg2LTIuNDQgMS40MzYtMy44OTggMS42MTl2LTEuOTI5aC0ydjEuOTMxYy0xLjQ1OC0uMTgzLTIuNzkyLS43NTktMy44OTgtMS42MTlsMS4zNjItMS4zNjItMS40MTQtMS40MTQtMS4zNjIgMS4zNjNjLS44Ni0xLjEwNi0xLjQzNi0yLjQ0LTEuNjE5LTMuODk4aDEuOTMxdi0yaC0xLjkzMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTcgMjFoLTI0Ljk4Yy0xLjUxMSAwLTIuOTg0LjQyNi00LjI2MiAxLjIyOWwtMjIuMDIxIDEzLjg2NmMtMi4zNCAxLjQ3My0zLjczNyA0LjAwNS0zLjczNyA2Ljc2OXY2LjEzNmMwIC41NTMuNDQ4IDEgMSAxaDMzLjA4OGMuMzQxIDAgLjY1OC0uMTc0Ljg0Mi0uNDYuMTg0LS4yODcuMjA5LS42NDcuMDY3LS45NTctLjc1LTEuNjM1LTEuMDgtMy4zODctLjk3OS01LjIwOC4zMDktNS41OTEgNC45MzYtMTAuMTQ1IDEwLjUzNS0xMC4zNjYgMy4wMjgtLjExNiA1Ljg5Mi45NjcgOC4wNjkgMy4wNiAyLjE3OCAyLjA5MyAzLjM3OCA0LjkxIDMuMzc4IDcuOTMxIDAgLjU1My40NDggMSAxIDFoM2MuNTUyIDAgMS0uNDQ3IDEtMXYtMTdjMC0zLjMwOS0yLjY5MS02LTYtNnptLTI4LjE3NyAyLjkyM2MuOTU5LS42MDQgMi4wNjQtLjkyMyAzLjE5Ny0uOTIzaDEwLjM3bC04LjM5MSA1LjAzNXYtLjAzNWgtMTEuNjUxem0tMjIuMDIgMTMuODY0IDEyLjM2OC03Ljc4N2gxMS41NTJsLTE4LjIzMyAxMC45NGMtMS4xNTcuNjk0LTIuNDggMS4wNi0zLjgyNyAxLjA2aC00LjU5NmMuMjQ4LTEuNzI4IDEuMjI5LTMuMjYzIDIuNzM2LTQuMjEzem01NC4xOTcgNS4yMTNoLTEuMDM4Yy0uMjM5LTMuMTg4LTEuNjIzLTYuMTMyLTMuOTU1LTguMzc0LTIuNTczLTIuNDczLTUuOTYzLTMuNzUtOS41MzQtMy42MTUtNi4xOS4yNDUtMTEuMzc0IDQuOTctMTIuMzE3IDEwLjk4OWgtMTcuMTU2djJoMTcuMDEzYy4wMDIgMS4zNjEuMjAyIDIuNzE1LjYxNSA0aC0zMC42Mjh2LTRoNC42NjNjMS43MDkgMCAzLjM4OS0uNDY1IDQuODU2LTEuMzQ1bDMyLjc1OC0xOS42NTVoMTAuNzIzYzIuMjA2IDAgNCAxLjc5NCA0IDR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3IDQ4YzIuMjA2IDAgNC0xLjc5NCA0LTRzLTEuNzk0LTQtNC00LTQgMS43OTQtNCA0IDEuNzk0IDQgNCA0em0wLTZjMS4xMDMgMCAyIC44OTcgMiAycy0uODk3IDItMiAyLTItLjg5Ny0yLTIgLjg5Ny0yIDItMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNi42NTEgMTUuNjM1Yy0xLjc1NyAyLjEyNS0xLjQ1OCA1LjI4Mi42NjcgNy4wNGw0LjYyNCAzLjgyM2MuMTg3LjE1NC40MTIuMjI5LjYzNy4yMjkuMjg4IDAgLjU3My0uMTI0Ljc3MS0uMzYyIDEuNzU3LTIuMTI1IDEuNDU4LTUuMjgyLS42NjctNy4wNGwtNC42MjQtMy44MjNjLS40MjYtLjM1Mi0xLjA1Ni0uMjkyLTEuNDA4LjEzM3ptNS42NjIgOC41NzYtMy43MjEtMy4wNzdjLTEuMDA0LS44MzEtMS4zMjktMi4xODUtLjkwNS0zLjM0NWwzLjcyMSAzLjA3N2MxLjAwNS44MzEgMS4zMjkgMi4xODUuOTA1IDMuMzQ1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMS40NDUgOS4yMjktNC42MjQgMy44MjNjLTIuMTI1IDEuNzU4LTIuNDI0IDQuOTE2LS42NjcgNy4wNC4xOTguMjM5LjQ4My4zNjIuNzcxLjM2Mi4yMjUgMCAuNDUtLjA3NS42MzctLjIyOWw0LjYyNC0zLjgyM2MyLjEyNS0xLjc1NyAyLjQyNC00LjkxNS42NjctNy4wNC0uMzUyLS40MjQtLjk4My0uNDg0LTEuNDA4LS4xMzN6bS0uNTMzIDUuNjMyLTMuNzIyIDMuMDc4Yy0uMTUyLS40MTUtLjIxMS0uODYzLS4xNjgtMS4zMTYuMDc2LS43OTguNDU4LTEuNTE5IDEuMDc1LTIuMDI5bDMuNzIxLTMuMDc3Yy40MjMgMS4xNi4wOTkgMi41MTMtLjkwNiAzLjM0NHoiLz4KICAgIDwvZz4KPC9zdmc+",Music:nae,"Outdoor Blinds":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00NTcgMGgtNDAyYy0zMC4zMjcgMC01NSAyNC42NzMtNTUgNTV2NDU3aDQzMnYtNDA4LjAzNWM3LjUwNyAzLjg0OCAxNiA2LjAzNSAyNSA2LjAzNSAzMC4zMjcgMCA1NS0yNC42NzMgNTUtNTVzLTI0LjY3My01NS01NS01NXptLTQwMiAzMGgzNTMuMDM1Yy0zLjg0OCA3LjUwNy02LjAzNSAxNi02LjAzNSAyNXY3aC0zNzJ2LTdjMC0xMy43ODUgMTEuMjE1LTI1IDI1LTI1em0tMjUgMjcydi0zMGgzNzJ2MzB6bTM3MiAzMHYzMGgtMzcydi0zMHptLTM3Mi05MHYtMzBoMzcydjMwem0wLTYwdi0zMGgzNzJ2MzB6bTAtNjB2LTMwaDM3MnYzMHptMCAzNjB2LTkwaDM3MnY5MHptNDI3LTQwMmMtMTMuNzg1IDAtMjUtMTEuMjE1LTI1LTI1czExLjIxNS0yNSAyNS0yNSAyNSAxMS4yMTUgMjUgMjUtMTEuMjE1IDI1LTI1IDI1eiIvPgogICAgICAgIDxwYXRoIGQ9Im02MCA0MjJoMzB2MzBoLTMweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNDIgNDIyaDMwdjMwaC0zMHoiLz4KICAgIDwvZz4KPC9zdmc+",People:aae,Pool:cae,"Power Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMTIgM2MtLjI3NiAwLS41LS4yMjQtLjUtLjV2LTJjMC0uMjc2LjIyNC0uNS41LS41cy41LjIyNC41LjV2MmMwIC4yNzYtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4LjcxOCA1Ljc4MmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDYtLjE5NS0uMTk1LS4xOTUtLjUxMiAwLS43MDdsMS40MTQtMS40MTRjLjE5NS0uMTk1LjUxMi0uMTk1LjcwNyAwcy4xOTUuNTEyIDAgLjcwN2wtMS40MTQgMS40MTRjLS4wOTcuMDk3LS4yMjUuMTQ2LS4zNTMuMTQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMy41IDEyLjVoLTJjLS4yNzYgMC0uNS0uMjI0LS41LS41cy4yMjQtLjUuNS0uNWgyYy4yNzYgMCAuNS4yMjQuNS41cy0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjAuMTMyIDIwLjYzMmMtLjEyOCAwLS4yNTYtLjA0OS0uMzU0LS4xNDZsLTEuNDE0LTEuNDE0Yy0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN3MuNTEyLS4xOTUuNzA3IDBsMS40MTQgMS40MTRjLjE5NS4xOTUuMTk1LjUxMiAwIC43MDctLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyIDI0Yy0uMjc2IDAtLjUtLjIyNC0uNS0uNXYtMmMwLS4yNzYuMjI0LS41LjUtLjVzLjUuMjI0LjUuNXYyYzAgLjI3Ni0uMjI0LjUtLjUuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMy44NjggMjAuNjMyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0Ni0uMTk1LS4xOTUtLjE5NS0uNTEyIDAtLjcwN2wxLjQxNC0xLjQxNGMuMTk1LS4xOTUuNTEyLS4xOTUuNzA3IDBzLjE5NS41MTIgMCAuNzA3bC0xLjQxNCAxLjQxNGMtLjA5Ny4wOTctLjIyNS4xNDYtLjM1My4xNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIuNSAxMi41aC0yYy0uMjc2IDAtLjUtLjIyNC0uNS0uNXMuMjI0LS41LjUtLjVoMmMuMjc2IDAgLjUuMjI0LjUuNXMtLjIyNC41LS41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUuMjgyIDUuNzgyYy0uMTI4IDAtLjI1Ni0uMDQ5LS4zNTQtLjE0NmwtMS40MTMtMS40MTRjLS4xOTUtLjE5NS0uMTk1LS41MTIgMC0uNzA3cy41MTItLjE5NS43MDcgMGwxLjQxNCAxLjQxNGMuMTk1LjE5NS4xOTUuNTEyIDAgLjcwNy0uMDk4LjA5Ny0uMjI2LjE0Ni0uMzU0LjE0NnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAuNTczIDIwYy0uMDU5IDAtLjExNy0uMDEtLjE3NS0uMDMxLS4yMTktLjA4Mi0uMzUyLS4zMDQtLjMyMS0uNTM0bC44NTMtNi40MzVoLTMuNDNjLS4xODkgMC0uMzYyLS4xMDctLjQ0Ny0uMjc2cy0uMDY3LS4zNzIuMDQ3LS41MjRsNi04Yy4xMzktLjE4Ni4zODYtLjI1Mi41OTctLjE2LjIxMi4wOTEuMzM1LjMxNC4yOTcuNTQybC0uOTA0IDUuNDE4aDMuNDFjLjE4NCAwIC4zNTMuMTAxLjQ0LjI2M3MuMDc4LjM1OC0uMDIyLjUxM2wtNS45MjcgOWMtLjA5NS4xNDMtLjI1NC4yMjQtLjQxOC4yMjR6bS0yLjA3My04aDNjLjE0NSAwIC4yODEuMDYzLjM3Ni4xNzEuMDk1LjEwNy4xMzkuMjUyLjEyLjM5NWwtLjY0MSA0LjgzOCA0LjIxNy02LjQwNGgtMy4wNzJjLS4xNDcgMC0uMjg2LS4wNjQtLjM4Mi0uMTc3LS4wOTUtLjExMi0uMTM2LS4yNjEtLjExMS0uNDA1bC42NjMtMy45Nzh6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Printer:uae,Pump:Nae,Receiver:lae,Sconces:Lae,Security:jae,Shading:gae,Shutters:Tae,SmokeDetector:yae,Sockets:Dae,Speaker:dae,Stove:zae,"Table Lamps":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im05Ny41IDIyMC4zNjEtMTUuOTE0IDE1LjkxNGE2IDYgMCAxIDAgOC40ODQgOC40ODZsMTUuOTE1LTE1LjkxNWE2IDYgMCAxIDAgLTguNDg0LTguNDg1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS41MSAxMTdhNiA2IDAgMCAwIDQuMjQzLTEwLjI0MmwtMTUuOTE0LTE1LjkxNWE2IDYgMCAwIDAgLTguNDg2IDguNDg2bDE1LjkxNCAxNS45MTRhNS45NzggNS45NzggMCAwIDAgNC4yNDMgMS43NTd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzNS41IDI0Mi41MDgtMTUuOTEtMTUuOTE0YTYgNiAwIDAgMCAtOC40ODYgOC40ODVsMTUuOTE0IDE1LjkxNWE2IDYgMCAwIDAgOC40ODYtOC40ODZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTg2LjgyNiAxNzFhNiA2IDAgMCAwIC02LTZoLTI0LjgzN2E2IDYgMCAwIDAgMCAxMmgyNC44MzdhNiA2IDAgMCAwIDYtNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTU1IDIzOS41MjFhNiA2IDAgMCAwIC02IDZ2MjQuODM2YTYgNiAwIDAgMCAxMiAwdi0yNC44MzZhNiA2IDAgMCAwIC02LTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQzOC44NTIgNDUxLjk2OWE0MS44MzcgNDEuODM3IDAgMCAwIC00MS4xNjYtMzUuOTY5aC0yOC42ODZ2LTMyNi42ODRhNjkuMzA5IDY5LjMwOSAwIDAgMCAtMTIxLjctNDUuMzgyIDU2LjAyMiA1Ni4wMjIgMCAwIDAgLTQ4LjcwOSA2LjM0OWwtODEuNTE5IDU0LjA2OGE2IDYgMCAwIDAgLS45MjUgOS4yNDJsMjMuNDIyIDIzLjQyMy0xLjQ0MiAxLjQ0MmEzNS4xODggMzUuMTg4IDAgMCAwIDQ5Ljc2MyA0OS43NjNsMS40NDItMS40NDIgMjMuNDIyIDIzLjQyMWE2IDYgMCAwIDAgNC4yNDYgMS43NTljLjIgMCAuNC0uMDEuNi0uMDNhNiA2IDAgMCAwIDQuNC0yLjY1NGw1NC4wNjctODEuNTE5YTU2LjA4OCA1Ni4wODggMCAwIDAgMy40ODgtNTUuNjU2IDI2LjM4NiAyNi4zODYgMCAwIDEgNDYuNDQ1IDE3LjIxNnYzMjYuNjg0aC0yOS4xODJhNDIgNDIgMCAwIDAgLTQxLjM0MyAzNi4wNzYgMjYuNCAyNi40IDAgMCAwIC0yMi40NzUgMjUuOTU2djcuOTY4YTYuMjgyIDYuMjgyIDAgMCAwIDYuMzE5IDZoMjE2LjY5MmE1Ljk5MiA1Ljk5MiAwIDAgMCA1Ljk4OS02di03Ljk2OGEyNi4yNDcgMjYuMjQ3IDAgMCAwIC0yMy4xNDgtMjYuMDYzem0tMjU5LjQ1Mi0yNzIuMjM0YTIzLjE4OCAyMy4xODggMCAwIDEgLTMyLjc5My0zMi43OTJsMS40NDMtMS40NDMgMzIuNzkzIDMyLjc5M3ptMzYuNjQ4IDE2Ljc5NC04Ni4yMy04Ni4yMjkgMTguMDkzLTEyIDgwLjE0IDgwLjE0em01MC4wMTItNzUuNC0zMS4yNDYgNDcuMTEtNzYuNy03Ni43MDUgNDcuMTEtMzEuMjQ2YTQzLjg5NCA0My44OTQgMCAwIDEgNjAuODQgNjAuODQxem0zMy41MjgtNzAuMjcyYTM4LjI1MiAzOC4yNTIgMCAwIDAgLTI2LjY4OCAxMC44MjMgNTQuNjIgNTQuNjIgMCAwIDAgLTE0LjE4Ni0xMi40MzUgNTcuMzEgNTcuMzEgMCAwIDEgOTguMjg2IDQwLjA3MXYzMjYuNjg0aC0xOXYtMzI2LjY4NGEzOC40NjEgMzguNDYxIDAgMCAwIC0zOC40MDktMzguNDY0em0tMi43NyAzNzcuMTQzaDEwMC44NjhjMTQuMjU5IDAgMjYuMTk1IDExIDI4Ljk3NiAyNGgtMTU4LjgxOWMyLjc4MS0xMyAxNC43MTYtMjQgMjguOTc1LTI0em0xNTMuMTgyIDUyaC0yMDV2LTEuOTY4YTE0LjMyIDE0LjMyIDAgMCAxIDE0LjMxOS0xNC4wMzJoMTc2LjY5MmExNC4wMzQgMTQuMDM0IDAgMCAxIDEzLjk4OSAxNC4wMzJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwNSAzODEuMDMxYTYgNiAwIDAgMCAxMiAwdi03NS44MDZhNiA2IDAgMCAwIC0xMiAweiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTEgMjkwLjg0NGE2IDYgMCAwIDAgNi02di00LjgzNGE2IDYgMCAwIDAgLTEyIDB2NC44MzRhNiA2IDAgMCAwIDYgNnoiLz4KICAgIDwvZz4KPC9zdmc+","Temperature Sensors":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTM1MiwzODUuNDA2VjUzLjMzM0MzNTIsMjMuOTI3LDMyOC4wNzMsMCwyOTguNjY3LDBzLTUzLjMzMywyMy45MjctNTMuMzMzLDUzLjMzM3YzMzIuMDczCgkJCQlDMjMxLjcxOSwzOTkuMzY1LDIyNCw0MTguMDMxLDIyNCw0MzcuMzMzQzIyNCw0NzguNSwyNTcuNSw1MTIsMjk4LjY2Nyw1MTJjNDEuMTY3LDAsNzQuNjY3LTMzLjUsNzQuNjY3LTc0LjY2NwoJCQkJQzM3My4zMzMsNDE4LjAzMSwzNjUuNjE1LDM5OS4zNjUsMzUyLDM4NS40MDZ6IE0yOTguNjY3LDQ5MC42NjdjLTI5LjQwNiwwLTUzLjMzMy0yMy45MjctNTMuMzMzLTUzLjMzMwoJCQkJYzAtMTUuMTA0LDYuMzIzLTI5LjEyNSwxNy44MTMtMzkuNDY5YzIuMjQtMi4wMzEsMy41MjEtNC45MDYsMy41MjEtNy45MjdWNTMuMzMzYzAtMTcuNjQ2LDE0LjM1NC0zMiwzMi0zMgoJCQkJYzE3LjY0NiwwLDMyLDE0LjM1NCwzMiwzMnYzMzYuNjA0YzAsMy4wMjEsMS4yODEsNS44OTYsMy41MjEsNy45MjdDMzQ1LjY3Nyw0MDguMjA4LDM1Miw0MjIuMjI5LDM1Miw0MzcuMzMzCgkJCQlDMzUyLDQ2Ni43NCwzMjguMDczLDQ5MC42NjcsMjk4LjY2Nyw0OTAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDkuMzMzLDQwNy4yOThWMjI0YzAtNS44OTYtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42Njd2MTgzLjI5OAoJCQkJYy0xMi4zODksNC40MTgtMjEuMzMzLDE2LjE0Ny0yMS4zMzMsMzAuMDM1YzAsMTcuNjQ2LDE0LjM1NCwzMiwzMiwzMmMxNy42NDYsMCwzMi0xNC4zNTQsMzItMzIKCQkJCUMzMzAuNjY3LDQyMy40NDUsMzIxLjcyMyw0MTEuNzE2LDMwOS4zMzMsNDA3LjI5OHogTTI5OC42NjcsNDQ4Yy01Ljg4NSwwLTEwLjY2Ny00Ljc4MS0xMC42NjctMTAuNjY3CgkJCQljMC01Ljg4NSw0Ljc4MS0xMC42NjcsMTAuNjY3LTEwLjY2N2M1Ljg4NSwwLDEwLjY2Nyw0Ljc4MSwxMC42NjcsMTAuNjY3QzMwOS4zMzMsNDQzLjIxOSwzMDQuNTUyLDQ0OCwyOTguNjY3LDQ0OHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjEzLjMzMywzNDEuMzMzaC02NGMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDY0CgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzQ2LjEwNCwyMTkuMjI5LDM0MS4zMzMsMjEzLjMzMywzNDEuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI5OC42NjdIMTkyYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3YzAsNS44OTYsNC43NzEsMTAuNjY3LDEwLjY2NywxMC42NjdoMjEuMzMzCgkJCQljNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N0MyMjQsMzAzLjQzOCwyMTkuMjI5LDI5OC42NjcsMjEzLjMzMywyOTguNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTMuMzMzLDI1NkgxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwyNjAuNzcxLDIxOS4yMjksMjU2LDIxMy4zMzMsMjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNDkuMzMzLDIzNC42NjdoNjRjNS44OTYsMCwxMC42NjctNC43NzEsMTAuNjY3LTEwLjY2N3MtNC43NzEtMTAuNjY3LTEwLjY2Ny0xMC42NjdoLTY0CgkJCQljLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdTMTQzLjQzOCwyMzQuNjY3LDE0OS4zMzMsMjM0LjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTQ5LjMzMywxMDYuNjY3aDY0YzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdzLTQuNzcxLTEwLjY2Ny0xMC42NjctMTAuNjY3aC02NAoJCQkJYy01Ljg5NiwwLTEwLjY2Nyw0Ljc3MS0xMC42NjcsMTAuNjY3UzE0My40MzgsMTA2LjY2NywxNDkuMzMzLDEwNi42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTcwLjY2N0gxOTJjLTUuODk2LDAtMTAuNjY3LDQuNzcxLTEwLjY2NywxMC42NjdjMCw1Ljg5Niw0Ljc3MSwxMC42NjcsMTAuNjY3LDEwLjY2N2gyMS4zMzMKCQkJCWM1Ljg5NiwwLDEwLjY2Ny00Ljc3MSwxMC42NjctMTAuNjY3QzIyNCwxNzUuNDM4LDIxOS4yMjksMTcwLjY2NywyMTMuMzMzLDE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMy4zMzMsMTI4SDE5MmMtNS44OTYsMC0xMC42NjcsNC43NzEtMTAuNjY3LDEwLjY2N2MwLDUuODk2LDQuNzcxLDEwLjY2NywxMC42NjcsMTAuNjY3aDIxLjMzMwoJCQkJYzUuODk2LDAsMTAuNjY3LTQuNzcxLDEwLjY2Ny0xMC42NjdDMjI0LDEzMi43NzEsMjE5LjIyOSwxMjgsMjEzLjMzMywxMjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Tv:Iae,"Vacuum Cleaner":"PHN2ZyB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTQ0MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOC0uMDI3MzQ0LTIyLjA4MjAzMS0xNy45MTc5NjktMzkuOTcyNjU2LTQwLTQwLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzMy41ODIwMzEtOCA4LThjMzAuOTE0MDYyLjAzNTE1NiA1NS45NjQ4NDQgMjUuMDg1OTM4IDU2IDU2IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MDggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LThzLTMuNTgyMDMxLTgtOC04LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04YzEzLjI1MzkwNiAwIDI0IDEwLjc0NjA5NCAyNCAyNCAwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04LS4wNDY4NzUtMzkuNzQ2MDk0LTMyLjI1MzkwNi03MS45NTMxMjUtNzItNzItNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOHMzLjU4MjAzMS04IDgtOGM0OC41NzgxMjUuMDU4NTkzOCA4Ny45NDE0MDYgMzkuNDIxODc1IDg4IDg4IDAgNC40MTc5NjktMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCA5NmMtNC40MTc5NjkgMC04LTMuNTgyMDMxLTgtOCAuMDM1MTU2LTMwLjkxNDA2MiAyNS4wODU5MzgtNTUuOTY0ODQ0IDU2LTU2IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0yMi4wODIwMzEuMDI3MzQ0LTM5Ljk3MjY1NiAxNy45MTc5NjktNDAgNDAgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcyIDk2Yy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04IDAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNCA0LjQxNzk2OSAwIDggMy41ODIwMzEgOCA4cy0zLjU4MjAzMSA4LTggOC04IDMuNTgyMDMxLTggOC0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggOTZjLTQuNDE3OTY5IDAtOC0zLjU4MjAzMS04LTggLjA1ODU5MzgtNDguNTc4MTI1IDM5LjQyMTg3NS04Ny45NDE0MDYyIDg4LTg4IDQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4Yy0zOS43NDYwOTQuMDQ2ODc1LTcxLjk1MzEyNSAzMi4yNTM5MDYtNzIgNzIgMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0MTZjMjYuNTA3ODEyIDAgNDgtMjEuNDkyMTg4IDQ4LTQ4cy0yMS40OTIxODgtNDgtNDgtNDgtNDggMjEuNDkyMTg4LTQ4IDQ4Yy4wMjczNDQgMjYuNSAyMS41IDQ3Ljk3MjY1NiA0OCA0OHptMC04MGMxNy42NzE4NzUgMCAzMiAxNC4zMjgxMjUgMzIgMzJzLTE0LjMyODEyNSAzMi0zMiAzMi0zMi0xNC4zMjgxMjUtMzItMzIgMTQuMzI4MTI1LTMyIDMyLTMyem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQwIDE4NGMxMy4yNTM5MDYgMCAyNC0xMC43NDYwOTQgMjQtMjRzLTEwLjc0NjA5NC0yNC0yNC0yNC0yNCAxMC43NDYwOTQtMjQgMjQgMTAuNzQ2MDk0IDI0IDI0IDI0em0wLTMyYzQuNDE3OTY5IDAgOCAzLjU4MjAzMSA4IDhzLTMuNTgyMDMxIDgtOCA4LTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzE3Ljk0NTMxMiAxNTJ2LjA0Njg3NWguMDU0Njg4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE1Mmg0OHYxNmgtNDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yODAgMTUyaDQ4djE2aC00OHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0MCA0OGMtMTAxLjI2NTYyNS0uMDExNzE5LTE4OC45NDUzMTIgNzAuMzMyMDMxLTIxMC44OTA2MjUgMTY5LjE4NzUtMjEuOTQ1MzEzIDk4Ljg1OTM3NSAyNy43MzQzNzUgMTk5LjY5MTQwNiAxMTkuNDkyMTg3IDI0Mi41MzEyNSA1Ny45MjU3ODIgMjcuMDM1MTU2IDEyNC44NTE1NjMgMjcuMDM1MTU2IDE4Mi43ODEyNSAwIDkxLjc1NzgxMy00Mi44MzU5MzggMTQxLjQzMzU5NC0xNDMuNjY0MDYyIDExOS40OTIxODgtMjQyLjUyMzQzOC0yMS45NDE0MDYtOTguODU1NDY4LTEwOS42MTMyODEtMTY5LjE5OTIxOC0yMTAuODc1LTE2OS4xOTUzMTJ6bTAgMTZjMTA3LjI4NTE1Ni4xMzI4MTIgMTk1LjM5ODQzOCA4NC44MDQ2ODggMTk5LjgwMDc4MSAxOTJoLTE2Yy00LjU4MjAzMS05OC4xNzk2ODgtODUuNTE1NjI1LTE3NS40MjE4NzUtMTgzLjgwMDc4MS0xNzUuNDIxODc1cy0xNzkuMjE4NzUgNzcuMjQyMTg3LTE4My44MDA3ODEgMTc1LjQyMTg3NWgtMTZjNC40MDIzNDMtMTA3LjE5NTMxMiA5Mi41MTU2MjUtMTkxLjg2NzE4OCAxOTkuODAwNzgxLTE5MnptMjkuMTEzMjgxIDI0NS40OTYwOTRjMzAuNjgzNTk0IDExLjk4ODI4MSA1MC44ODI4MTMgNDEuNTU4NTk0IDUwLjg4NjcxOSA3NC41MDM5MDZ2MjcuNjQwNjI1Yy00OS44Nzg5MDYgMjcuMTQ0NTMxLTExMC4xMjEwOTQgMjcuMTQ0NTMxLTE2MCAwdi0yNy42NDA2MjVjLjAwMzkwNi0yNi40Mjk2ODggMTMuMDYyNS01MS4xNTIzNDQgMzQuODg2NzE5LTY2LjA1NDY4OCAyMS44MjgxMjUtMTQuOTA2MjUgNDkuNjA5Mzc1LTE4LjA2NjQwNiA3NC4yMjY1NjItOC40NDkyMTh6bTY2Ljg4NjcxOSA3NC41MDM5MDZjMC01My4wMTk1MzEtNDIuOTgwNDY5LTk2LTk2LTk2cy05NiA0Mi45ODA0NjktOTYgOTZ2MTcuNzM0Mzc1Yy0zOC44NjMyODEtMjYuOTgwNDY5LTY0LjUwNzgxMi02OS4xMzI4MTMtNzAuNjAxNTYyLTExNi4wNDY4NzUtNi4wOTc2NTctNDYuOTE3OTY5IDcuOTI1NzgxLTk0LjIyMjY1NiAzOC42MDE1NjItMTMwLjIzODI4MXYzNi41NTA3ODFjLjAyNzM0NCAyMi4wODIwMzEgMTcuOTE3OTY5IDM5Ljk3MjY1NiA0MCA0MGgxNzZjMjIuMDgyMDMxLS4wMjczNDQgMzkuOTcyNjU2LTE3LjkxNzk2OSA0MC00MHYtMzYuNTUwNzgxYzMwLjY3NTc4MSAzNi4wMTU2MjUgNDQuNjk5MjE5IDgzLjMyMDMxMiAzOC42MDE1NjIgMTMwLjIzODI4MS02LjA5Mzc1IDQ2LjkxNDA2Mi0zMS43MzgyODEgODkuMDY2NDA2LTcwLjYwMTU2MiAxMTYuMDQ2ODc1em0tMjA4LTI0NC44NjMyODFjNjMuNTg5ODQ0LTU3LjUxNTYyNSAxNjAuNDEwMTU2LTU3LjUxNTYyNSAyMjQgMHY1Mi44NjMyODFjMCAxMy4yNTM5MDYtMTAuNzQ2MDk0IDI0LTI0IDI0aC0xNzZjLTEzLjI1MzkwNiAwLTI0LTEwLjc0NjA5NC0yNC0yNHptLTg3LjcxMDkzOCAxMzIuODYzMjgxaDE2YzIuODM1OTM4IDYxLjAzOTA2MiAzNS42NzE4NzYgMTE2LjcyMjY1NiA4Ny43MTA5MzggMTQ4Ljc1MzkwNnYxOC42NDQ1MzJjLTYxLjQzNzUtMzMuODUxNTYzLTEwMC43NTM5MDYtOTcuMzEyNS0xMDMuNzEwOTM4LTE2Ny4zOTg0Mzh6bTExOS43MTA5MzggMTc1LjI0NjA5NHYtMTcuNjQ0NTMyYzUwLjUwMzkwNiAyNC41NjI1IDEwOS40OTYwOTQgMjQuNTYyNSAxNjAgMHYxNy42NzE4NzZjLTUwLjk5NjA5NCAyMi4zMzU5MzctMTA5LjAwMzkwNiAyMi4zMzU5MzctMTYwIDB6bTE3Ni03Ljg0NzY1NnYtMTguNjQ0NTMyYzUyLjA0Mjk2OS0zMi4wMjczNDQgODQuODg2NzE5LTg3LjcxMDkzNyA4Ny43MjY1NjItMTQ4Ljc1MzkwNmgxNmMtMi45NjA5MzcgNzAuMDg5ODQ0LTQyLjI4NTE1NiAxMzMuNTUwNzgxLTEwMy43MjY1NjIgMTY3LjM5ODQzOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Ventilation:wae,"Washing Machines":"PHN2ZyBoZWlnaHQ9IjQ5NnB0IiB2aWV3Qm94PSIwIDAgNDk2IDQ5NiIgd2lkdGg9IjQ5NnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDg4IDBoLTQwMGMtNC40MjU3ODEgMC04IDMuNTg1OTM4LTggOHYyOTYuODMyMDMxYy0yLjYwMTU2Mi0uNTI3MzQzLTUuMjczNDM4LS44MzIwMzEtOC0uODMyMDMxLTIyLjA1NDY4OCAwLTQwIDE3Ljk0NTMxMi00MCA0MHYuMTY3OTY5Yy03LjgyNDIxOSA1Ljg4NjcxOS0xMy4xNTIzNDQgMTQuMzk4NDM3LTE1LjEyMTA5NCAyMy44MzIwMzFoLTguODc4OTA2Yy00LjQyNTc4MSAwLTggMy41ODU5MzgtOCA4djMyYzAgNC40MTQwNjIgMy41NzQyMTkgOCA4IDhoOHYyNGMwIDMwLjg3ODkwNiAyNS4xMjg5MDYgNTYgNTYgNTZoNDE2YzQuNDI1NzgxIDAgOC0zLjU4NTkzOCA4LTh2LTQ4MGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04em0tOCAxNnY4MGgtMzg0di04MHptLTQzNS42NTYyNSAzMzkuMTc1NzgxYzIuODM5ODQ0LTEuNjAxNTYyIDQuNDMzNTk0LTQuNzYxNzE5IDQuMDE1NjI1LThsLS4xMjg5MDYtLjkyOTY4N2MtLjEwMTU2My0uNzM0Mzc1LS4yMzA0NjktMS40Njg3NS0uMjMwNDY5LTIuMjQ2MDk0IDAtMTMuMjMwNDY5IDEwLjc2OTUzMS0yNCAyNC0yNCA4LjQ0OTIxOSAwIDE2LjEyMTA5NCA0LjQwNjI1IDIwLjUyNzM0NCAxMS44MDA3ODEgMS4xOTkyMTggMi4wMTU2MjUgMy4yMzQzNzUgMy40MDYyNSA1LjU1MDc4MSAzLjc5Mjk2OSAyLjMyODEyNS4zOTg0MzggNC42OTkyMTktLjI2NTYyNSA2LjQ5NjA5NC0xLjc5Mjk2OSAzLjEyMTA5My0yLjY0ODQzNyA4LjMyMDMxMi01LjgwMDc4MSAxNS40MjU3ODEtNS44MDA3ODEgOC41NTg1OTQgMCAxNi41MzUxNTYgNC43MjY1NjIgMjAuODE2NDA2IDEyLjMzNTkzOCAxLjY2NDA2MyAyLjk3NjU2MiA1LjA1NDY4OCA0LjU1ODU5MyA4LjM4MjgxMyAzLjk2MDkzNyA4LjM1MTU2Mi0xLjQ4ODI4MSAxNi45MDYyNSA0LjI0NjA5NCAxOC40OTYwOTMgMTIuNzQyMTg3LjU3MDMxMyAzLjAzOTA2MyAyLjgzOTg0NCA1LjQ4ODI4MiA1LjgzOTg0NCA2LjI3MzQzOCAzLjAxNTYyNS44MDA3ODEgNi4xNjc5NjktLjIzNDM3NSA4LjE2Nzk2OS0yLjYwOTM3NSA0LjYxNzE4Ny01LjUyNzM0NCAxMS4yODkwNjMtOC43MDMxMjUgMTguMjk2ODc1LTguNzAzMTI1IDEwLjQxNDA2MiAwIDE5LjIxNDg0NCA2LjcxMDkzOCAyMi41MjczNDQgMTZoLTE4OC45MjU3ODJjMS45NDE0MDctNS4yOTY4NzUgNS42MDU0NjktOS45Mzc1IDEwLjc0MjE4OC0xMi44MjQyMTl6bTEwNy42NTYyNS03NS4xNzU3ODFjMC03NC45OTIxODggNjEuMDA3ODEyLTEzNiAxMzYtMTM2czEzNiA2MS4wMDc4MTIgMTM2IDEzNi02MS4wMDc4MTIgMTM2LTEzNiAxMzZjLTExLjI4OTA2MiAwLTIyLjMyODEyNS0xLjUxOTUzMS0zMy4wNzgxMjUtNC4yMTQ4NDQuNjI4OTA2LTEuMTQ0NTMxIDEuMDc4MTI1LTIuMzk0NTMxIDEuMDc4MTI1LTMuNzg1MTU2di0xMi4zMzU5MzhjMTAuMzY3MTg4IDIuODYzMjgyIDIxLjA3ODEyNSA0LjMzNTkzOCAzMiA0LjMzNTkzOCA2Ni4xNjc5NjkgMCAxMjAtNTMuODMyMDMxIDEyMC0xMjBzLTUzLjgzMjAzMS0xMjAtMTIwLTEyMC0xMjAgNTMuODMyMDMxLTEyMCAxMjBjMCAyMS4wODk4NDQgNS40ODA0NjkgNDEuNDMzNTk0IDE1LjgyNDIxOSA1OS41MDM5MDYtMS43OTI5NjkuODA4NTk0LTMuNTM1MTU3IDEuNzI2NTYzLTUuMTkxNDA3IDIuODAwNzgyLTQuMDU4NTkzLTYuMTEzMjgyLTEwLjE1MjM0My0xMC42MzI4MTMtMTcuMjA3MDMxLTEyLjgyNDIxOS02LjE2Nzk2OS0xNS43NjE3MTktOS40MjU3ODEtMzIuMzU5Mzc1LTkuNDI1NzgxLTQ5LjQ4MDQ2OXptNDguNDY0ODQ0IDU2LjA0Njg3NWMtNi4zNjcxODgtOS45MTAxNTYtMTEtMjAuNzAzMTI1LTEzLjY3OTY4OC0zMi4wNDY4NzVoNS4yMTQ4NDRjNy4yODkwNjIgMCAxNC4xNTIzNDQtMi44Mzk4NDQgMTkuMzEyNS04bDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGMxMC4zMjgxMjUgMTAuMzEyNSAyOC4yOTY4NzUgMTAuMzIwMzEyIDM4LjYyNSAwbDQuNjg3NS00LjY3OTY4OGM0LjI4MTI1LTQuMjgxMjUgMTEuNzE4NzUtNC4yODEyNSAxNiAwbDQuNjg3NSA0LjY3OTY4OGM1LjE2Nzk2OSA1LjE2MDE1NiAxMi4wMjM0MzggOCAxOS4zMTI1IDhoNS4wOTc2NTZjLTEwLjg4MjgxMiA0NS43OTI5NjktNTIuMDI3MzQ0IDgwLTEwMS4wOTc2NTYgODAtMTAuOTc2NTYyIDAtMjEuNjk1MzEyLTEuNzkyOTY5LTMyLTUuMTI4OTA2di0yLjg3MTA5NGMwLTQuNDE0MDYyLTMuNTc0MjE5LTgtOC04aC04LjgwODU5NGMtMy42ODc1LTE4LjA4OTg0NC0xOS42MjUtMzEuNzI2NTYyLTM4LjcyNjU2Mi0zMS45NTMxMjV6bS0xNi40NjQ4NDQtNTYuMDQ2ODc1YzAtNTcuMzQzNzUgNDYuNjU2MjUtMTA0IDEwNC0xMDRzMTA0IDQ2LjY1NjI1IDEwNCAxMDRjMCAyLjcwMzEyNS0uMTk5MjE5IDUuMzUxNTYyLS40MDYyNSA4aC03LjU5Mzc1Yy0zLjAyMzQzOCAwLTUuODU1NDY5LTEuMTc1NzgxLTgtMy4zMTI1bC00LjY4NzUtNC42ODc1Yy0xMC4zMjgxMjUtMTAuMzEyNS0yOC4yOTY4NzUtMTAuMzIwMzEyLTM4LjYyNSAwbC00LjY4NzUgNC42Nzk2ODhjLTQuMjgxMjUgNC4yODEyNS0xMS43MTg3NSA0LjI4MTI1LTE2IDBsLTQuNjg3NS00LjY3OTY4OGMtMTAuMzI4MTI1LTEwLjMxMjUtMjguMjk2ODc1LTEwLjMyMDMxMi0zOC42MjUgMGwtNC42ODc1IDQuNjc5Njg4Yy00LjI4MTI1IDQuMjgxMjUtMTEuNzE4NzUgNC4yODEyNS0xNiAwbC00LjY4NzUtNC42Nzk2ODhjLTEwLjMyODEyNS0xMC4zMTI1LTI4LjI5Njg3NS0xMC4zMjAzMTItMzguNjI1IDBsLTQuNjg3NSA0LjY3OTY4OGMtMi4xNDQ1MzEgMi4xNDQ1MzEtNC45NzY1NjIgMy4zMjAzMTItOCAzLjMyMDMxMmgtNy42OTUzMTJjLS4xOTkyMTktMi42NDg0MzgtLjMwNDY4OC01LjMyMDMxMi0uMzA0Njg4LTh6bS0xNjggMTA0aDIyNHYxNmgtMjI0em0xNjAgOTZoLTEwNGMtMjIuMDU0Njg4IDAtNDAtMTcuOTQ1MzEyLTQwLTQwdi0yNGgxOTJ2MjRjMCAyMi4wNTQ2ODgtMTcuOTQ1MzEyIDQwLTQwIDQwem00Ny4xMTMyODEgMGMxMC40MDYyNS0xMC4xNzU3ODEgMTYuODg2NzE5LTI0LjMzNTkzOCAxNi44ODY3MTktNDB2LTE1Ljg3MTA5NGMxNS40MjU3ODEgNS4xNDQ1MzIgMzEuNTAzOTA2IDcuODcxMDk0IDQ4IDcuODcxMDk0IDgzLjgxNjQwNiAwIDE1Mi02OC4xODM1OTQgMTUyLTE1MnMtNjguMTgzNTk0LTE1Mi0xNTItMTUyLTE1MiA2OC4xODM1OTQtMTUyIDE1MmMwIDEzLjAxNTYyNSAxLjgwMDc4MSAyNS43MzQzNzUgNS4wMDc4MTIgMzguMTEzMjgxLTYuMjIyNjU2LTMuOTA2MjUtMTMuNDY0ODQzLTYuMTEzMjgxLTIxLjAwNzgxMi02LjExMzI4MS02LjUzNTE1NiAwLTEzIDEuNjcxODc1LTE4Ljc4NTE1NiA0LjgxNjQwNi0xLjU4OTg0NC0xLjcyNjU2Mi0zLjM3NS0zLjIxNDg0NC01LjIxNDg0NC00LjYyNXYtMjAwLjE5MTQwNmgzODR2MzY4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjAwIDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjY0IDgwYzEzLjIzMDQ2OSAwIDI0LTEwLjc2OTUzMSAyNC0yNHMtMTAuNzY5NTMxLTI0LTI0LTI0LTI0IDEwLjc2OTUzMS0yNCAyNCAxMC43Njk1MzEgMjQgMjQgMjR6bTAtMzJjNC40MTQwNjIgMCA4IDMuNTkzNzUgOCA4cy0zLjU4NTkzOCA4LTggOC04LTMuNTkzNzUtOC04IDMuNTg1OTM4LTggOC04em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQ4IDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ0OCAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MTYgNjRoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDE2IDMyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM4NCA2NGgxNnYxNmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zODQgMzJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDY0aDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAzMmgxNnYxNmgtMTZ6bTAgMCIvPgogICAgPC9nPgo8L3N2Zz4=","Water Consumption":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNjguOTkgMTg3LjQ5OWMtNS43NTEtOS45NTktMjAuMTk2LTEwLjAxNi0yNS45NzkgMC0yMS44MSA0MC42MTEtMzIuMDExIDQ4LjA2MS0zMi4wMTEgNjcuNTAxIDAgMjQuODEzIDIwLjE4NyA0NSA0NSA0NXM0NS0yMC4xODcgNDUtNDVjMC0xOS40NTgtMTAuNDg2LTI3LjQyMS0zMi4wMS02Ny41MDF6bS0xMi45OSA4Mi41MDFjLTguMjcxIDAtMTUtNi43MjktMTUtMTUgMC02LjY4NyAzLjA0Mi04LjIxNSAxNS0zMC4wMDUgMTEuOTc0IDIxLjgxOCAxNSAyMy4zMTggMTUgMzAuMDA1IDAgOC4yNzEtNi43MjkgMTUtMTUgMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQwNiAwaC0zMDBjLTguNzY5IDAtMTUuNjc2IDcuNTAyLTE0Ljk0OCAxNi4yNDZsMzAgMzYwYy42NDggNy43NzQgNy4xNDcgMTMuNzU0IDE0Ljk0OCAxMy43NTRoNzV2MzJoLTE1Yy0xMy4zMTggMC0yMC4wNDggMTYuMTY1LTEwLjYwNiAyNS42MDZsNjAgNjBjNS44NTcgNS44NTggMTUuMzU1IDUuODU5IDIxLjIxMyAwbDYwLTYwYzkuNDE3LTkuNDE3IDIuNzQ1LTI1LjYwNi0xMC42MDctMjUuNjA2aC0xNXYtMzJoNzVjNy44MDEgMCAxNC4zLTUuOTggMTQuOTQ4LTEzLjc1NGwzMC0zNjBjLjcyOC04LjczOS02LjE3NC0xNi4yNDYtMTQuOTQ4LTE2LjI0NnptLTE2LjMwMiAzMC01LjM0NiA2NC4xNDdjLTIxLjc2OCA4LjM0My0zNS44NzEgMjUuODUzLTUzLjM1MiAyNS44NTMtMjIuNzE3IDAtNDAuNDIzLTMwLTc1LTMwLTM0LjcyNyAwLTUyLjE3NiAzMC03NSAzMC0xNy40ODUgMC0zMS41NTYtMTcuNDk5LTUzLjM1Mi0yNS44NTNsLTUuMzQ2LTY0LjE0N3ptLTI3LjUgMzMwaC03Ni4xOThjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2NjJjMCA2LjQzMiA0LjA0OCAxMS45MTkgOS43MzYgMTQuMDVsLTI0LjczNiAyNC43MzctMjQuNzM2LTI0LjczNmM1LjY4OC0yLjEzMSA5LjczNi03LjYxOCA5LjczNi0xNC4wNXYtNjJjMC04LjI4NC02LjcxNi0xNS0xNS0xNWgtNzYuMTk4bC0xOS4yMDgtMjMwLjUwMmMxNC4zMTUgOS4xNTMgMjkuMDc2IDIwLjUwMSA1MC40MDYgMjAuNTAxIDM0LjcyNyAwIDUyLjE3Ni0zMCA3NS0zMCAyMi43MTcgMCA0MC40MjMgMzAgNzUgMzAgMjEuMDE5IDAgMzUuNDQ5LTEwLjkzNyA1MC40MDYtMjAuNTAyeiIvPgogICAgPC9nPgo8L3N2Zz4=","Water Heater":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTY3LDE4NS4zMjV2MjgxYTM1LjU0MSwzNS41NDEsMCwwLDAsMzUuNDY5LDM1LjYzMUwzMTkuMDYsNTAyaC4wMDZBMzUuODkxLDM1Ljg5MSwwLDAsMCwzNTUsNDY2LjM2OVY0NjRoNjAuNjJjMzQuODM3LDAsNjMuMzgtMjcuODcsNjMuMzgtNjIuNzE1VjE4OS43M2MwLTM0Ljg0NC0yOC41NDMtNjIuNzMtNjMuMzgtNjIuNzNIMzU1di05LjY4OWMwLS4wNzQtLjE2LS4xNDYtLjE2Mi0uMjE5cy0uMDY1LS4xMTQtLjA2NS0uMTg3QTYyLjA0NCw2Mi4wNDQsMCwwLDAsMjkyLjc2Myw1NUgyMTlWNDRoMTcuODI4QzI0NS42NSw0NCwyNTMsMzcuMiwyNTMsMjguMzc0VjI2YTE2LjE2NywxNi4xNjcsMCwwLDAtMTYuMTcyLTE2SDE4OS43MDZBMTUuNzcsMTUuNzcsMCwwLDAsMTc0LDI2djIuMzc0QTE1LjQ1NCwxNS40NTQsMCwwLDAsMTg5LjcwNiw0NEgyMDdWNTVIMTMzLjc3MUMxMDEuNSw1NSw3NC45MjQsODAsNzIuMSwxMTFIMzkuMmE2LjA1Niw2LjA1NiwwLDAsMC01LjIsOC45MjlaTTM1NSwxNjFoNjAuNjJBMjguNTgxLDI4LjU4MSwwLDAsMSw0NDQsMTg5LjczVjQwMS4yODVBMjguNTY4LDI4LjU2OCwwLDAsMSw0MTUuNjIsNDMwSDM1NVptMCwyODFoNjAuNjJBNDAuNTgxLDQwLjU4MSwwLDAsMCw0NTYsNDAxLjI4NVYxODkuNzNBNDAuNTk0LDQwLjU5NCwwLDAsMCw0MTUuNjIsMTQ5SDM1NVYxMzloNjAuNjJjMjguMjIxLDAsNTEuMzgsMjIuNSw1MS4zOCw1MC43M1Y0MDEuMjg1QzQ2Nyw0MjkuNTEzLDQ0My44NDEsNDUyLDQxNS42Miw0NTJIMzU1Wm0tMTIsMjQuMzY5QTIzLjg5MSwyMy44OTEsMCwwLDEsMzE5LjA2Niw0OTBoMGwtMjE2LjU5MS0uMDQxQTIzLjUyNywyMy41MjcsMCwwLDEsNzksNDY2LjMyOFY0NTIuNTdsMjY0LC4wNDlaTTE5MCwzMmE0LDQsMCwwLDEtNC00VjI2YTQsNCwwLDAsMSw0LTRoNDdhNCw0LDAsMCwxLDQsNHYyYTQsNCwwLDAsMS00LDRaTTEzMy43NzEsNjdIMjkyLjc2M2E0OS44MjksNDkuODI5LDAsMCwxLDQ5LjU3Niw0NEg4NC4yQTQ5LjgzLDQ5LjgzLDAsMCwxLDEzMy43NzEsNjdaTTM0MywxMjNWNDQwLjYxOUw3OSw0NDAuNTdWMTgzLjlhNi44NTMsNi44NTMsMCwwLDAtLjgtMi44NTFMNDguOTM0LDEyM1oiLz4KICAgICAgICA8cGF0aCBkPSJNMjAzLDM4OC40NDNBMzUuMDE3LDM1LjAxNywwLDAsMCwyMzgsMzUzLjZWMjM2Ljg0NGEzNSwzNSwwLDAsMC03MCwwVjM1My42QTM1LjAxNywzNS4wMTcsMCwwLDAsMjAzLDM4OC40NDNabS0yMy0xNTEuNmEyMywyMywwLDAsMSw0NiwwVjI4OUgxODBaTTE4MCwzMDFoNDZ2NTIuNmEyMywyMywwLDAsMS00NiwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik05OSwzMTQuOTEzYTYsNiwwLDAsMCw2LTZWMjMzLjEwNmE2LDYsMCwwLDAtMTIsMHY3NS44MDdBNiw2LDAsMCwwLDk5LDMxNC45MTNaIi8+CiAgICAgICAgPHBhdGggZD0iTTk5LDIxOC43MjZhNiw2LDAsMCwwLDYtNnYtNC44MzRhNiw2LDAsMCwwLTEyLDB2NC44MzRBNiw2LDAsMCwwLDk5LDIxOC43MjZaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Water:Cae,Weather:hae,Window:Aae},mae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Oae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM2Mi43ODcgMzYyLjc4NyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0yNjAuOTQ1LDE0NC45NzljLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTlsLTQ3LjQ4NCw4MS4zMzNjLTEuMzU0LDIuMzE5LTEuMzY1LDUuMTg2LTAuMDI3LDcuNTE2CgkJYzEuMzM3LDIuMzI5LDMuODE4LDMuNzY2LDYuNTA0LDMuNzY2aDk0Ljk2OGMyLjY4NiwwLDUuMTY3LTEuNDM3LDYuNTA0LTMuNzY2YzEuMzM4LTIuMzMsMS4zMjctNS4xOTYtMC4wMjctNy41MTZsLTQ3LjQ4My04MS4zMzMKCQlDMjY2LjA3OCwxNDYuMzk1LDI2My42MTIsMTQ0Ljk3OSwyNjAuOTQ1LDE0NC45Nzl6IE0yMjYuNTI0LDIyNi4zMTJsMzQuNDIxLTU4Ljk1OGwzNC40Miw1OC45NThIMjI2LjUyNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzU1LjI4NywyNTQuNjloLTE3NS42Mmw4MS4yNzgtMTM5LjIxOGw2Mi45MjYsMTA3Ljc4M2MyLjA4OCwzLjU3OCw2LjY4Myw0Ljc4NCwxMC4yNTgsMi42OTYKCQljMy41NzctMi4wODgsNC43ODQtNi42ODEsMi42OTUtMTAuMjU4TDI2Ny40MjIsOTYuODE1Yy0wLjAyMS0wLjAzNi0wLjA0OC0wLjA2Ny0wLjA2OS0wLjEwM2MtMC4xMjYtMC4yMDgtMC4yNjItMC40MDgtMC40MDctMC42MDMKCQljLTAuMDQ0LTAuMDU5LTAuMDg2LTAuMTE4LTAuMTMxLTAuMTc2Yy0wLjE4My0wLjIzLTAuMzc2LTAuNDUxLTAuNTg0LTAuNjU4Yy0wLjAyNC0wLjAyNC0wLjA1MS0wLjA0NS0wLjA3Ni0wLjA2OQoJCWMtMC4xODYtMC4xOC0wLjM4My0wLjM0OS0wLjU4Ny0wLjUwOWMtMC4wNjUtMC4wNTEtMC4xMzItMC4xLTAuMTk5LTAuMTQ4Yy0wLjE4Ny0wLjEzNy0wLjM3OS0wLjI2NC0wLjU3OC0wLjM4NAoJCWMtMC4wNTUtMC4wMzMtMC4xMDgtMC4wNjgtMC4xNjQtMC4xYy0wLjI2MS0wLjE0Ny0wLjUzLTAuMjgyLTAuODA5LTAuMzk3Yy0wLjAxMS0wLjAwNC0wLjAyMi0wLjAwOC0wLjAzMy0wLjAxMgoJCWMtMC4yNi0wLjEwNi0wLjUyOC0wLjE5Ni0wLjgwMi0wLjI3M2MtMC4wNzMtMC4wMjEtMC4xNDYtMC4wMzgtMC4yMi0wLjA1NmMtMC4yMjItMC4wNTUtMC40NDctMC4xLTAuNjc3LTAuMTM1CgkJYy0wLjA3OS0wLjAxMi0wLjE1Ny0wLjAyNi0wLjIzNi0wLjAzNmMtMC4yOTctMC4wMzYtMC41OTgtMC4wNi0wLjkwNi0wLjA2SDEwMS44NDJjLTIuNjY3LDAtNS4xMzMsMS40MTYtNi40NzcsMy43MTkKCQlMMS4wMjMsMjU4LjQwOGMtMS4zNTQsMi4zMTktMS4zNjUsNS4xODYtMC4wMjcsNy41MTZjMS4zMzcsMi4zMjksMy44MTgsMy43NjYsNi41MDQsMy43NjZoODYuNTM4YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDEKCQlzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzUuODg5YzAuMDA4LDAsMC4wMTUsMC4wMDEsMC4wMjMsMC4wMDFzMC4wMTUtMC4wMDEsMC4wMjMtMC4wMDFoMzYuNTg2aDE4OC42ODQKCQljNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNVMzNTkuNDMsMjU0LjY5LDM1NS4yODcsMjU0LjY5eiBNMTYyLjI5OCwyNTQuNjloLTE5LjI2M2w2OS40My0xMTkuNDcKCQljMi4wODEtMy41ODIsMC44NjUtOC4xNzItMi43MTYtMTAuMjUzYy0zLjU4LTIuMDgzLTguMTczLTAuODY2LTEwLjI1MywyLjcxNmwtNzMuODEsMTI3LjAwN0gxMDcuMWw4NS4xOTItMTQ2LjU5NGg1NS41OQoJCUwxNjIuMjk4LDI1NC42OXogTTEwNi4xNDcsMTA4LjA5NmgzNC4wOTFMNzQuNzg5LDIyMC43MTdjLTIuMDgxLDMuNTgyLTAuODY1LDguMTcyLDIuNzE2LDEwLjI1MwoJCWMxLjE4NiwwLjY4OSwyLjQ4MiwxLjAxNywzLjc2MiwxLjAxN2MyLjU4NCwwLDUuMS0xLjMzNyw2LjQ5MS0zLjczM2w2OS44My0xMjAuMTU4aDE3LjM1Nkw4OS43NTEsMjU0LjY5SDIwLjU2M0wxMDYuMTQ3LDEwOC4wOTZ6IgogICAgICAgIC8+CiAgICA8L2c+Cjwvc3ZnPgo=",Eae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTYuNzA0IDI3Mi4wODZoLTgxLjcwNHYtODguMDczYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djg4LjA3M2gtMTV2LTE5My43MWMwLTguMjQ5LTYuNzExLTE0Ljk1OS0xNC45NTktMTQuOTU5aC05MS41ODJjLTguMjQ4IDAtMTQuOTU5IDYuNzEtMTQuOTU5IDE0Ljk1OXYxOTMuNzFoLTE1di0xOTMuNzFjMC04LjI0OS02LjcxMS0xNC45NTktMTQuOTU5LTE0Ljk1OWgtOTEuNTgyYy04LjI0OCAwLTE0Ljk1OSA2LjcxLTE0Ljk1OSAxNC45NTl2MTkzLjcxaC0xNXYtMjIzLjY2OWgyODh2MTAwLjU5NmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0xMDAuNTk2aDMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODgzIDE1LjI5Ni0xNS4zNDR2LTE3LjczYzAtOC40Ni02Ljg2MS0xNS4zNDMtMTUuMjk2LTE1LjM0M2gtMzI0LjQwOGMtOC40MzUgMC0xNS4yOTYgNi44ODMtMTUuMjk2IDE1LjM0NHYxNy43M2MwIDguNDYgNi44NjEgMTUuMzQ0IDE1LjI5NiAxNS4zNDRoMy4yMDR2MjIzLjY2OWgtODEuNzA0Yy04LjQzNS0uMDAxLTE1LjI5NiA2Ljg2MS0xNS4yOTYgMTUuMjk1djE3LjYyMmMwIDguNDM1IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aC41djE0My40ODZoLS41Yy04LjQzNSAwLTE1LjI5NiA2Ljg2Mi0xNS4yOTYgMTUuMjk2djE3LjYyMmMwIDguNDM0IDYuODYxIDE1LjI5NiAxNS4yOTYgMTUuMjk2aDIyMy4yMDRjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTIyMy4yMDRjLS4xNjMgMC0uMjk2LS4xMzMtLjI5Ni0uMjk2di0xNy42MjJjMC0uMTYzLjEzMy0uMjk2LjI5Ni0uMjk2aDQ4MS40MDhjLjE2MyAwIC4yOTYuMTMzLjI5Ni4yOTZ2MTcuNjIyYzAgLjE2My0uMTMzLjI5Ni0uMjk2LjI5NmgtMjIzLjIwNGMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgyMjMuMjA0YzguNDM1IDAgMTUuMjk2LTYuODYyIDE1LjI5Ni0xNS4yOTZ2LTE3LjYyMmMwLTguNDM0LTYuODYxLTE1LjI5Ni0xNS4yOTYtMTUuMjk2aC0uNXYtMTQzLjQ4NmguNWM4LjQzNSAwIDE1LjI5Ni02Ljg2MiAxNS4yOTYtMTUuMjk2di0xNy42MjJjMC04LjQzNC02Ljg2MS0xNS4yOTYtMTUuMjk2LTE1LjI5NnptLTQwMy4yMDQtMjM5LjAxMnYtMTcuNzNjMC0uMjEyLjE1My0uMzQ0LjI5Ni0uMzQ0aDMyNC40MDhjLjE0MyAwIC4yOTYuMTMxLjI5Ni4zNDR2MTcuNzNjMCAuMjEyLS4xNTMuMzQ0LS4yOTYuMzQ0LTE1LjM2NyAwLTMwOS4wNTEgMC0zMjQuNDA4IDAtLjE0My0uMDAxLS4yOTYtLjEzMi0uMjk2LS4zNDR6bTE4NC45NTkgNDUuMzQzIDkxLjU0MS0uMDQxdjE5My43MWgtOTEuNTAyem0tMTM2LjUgMCA5MS41NDEtLjA0MXYxOTMuNzFoLTkxLjUwMnptMzM5LjI0NSAzODQuODE3aC00NTAuNDA4di0xNDIuOTM0aDQ1MC40MDh6bTE1Ljc5Ni0xNTguMjNjMCAuMTY0LS4xMzMuMjk2LS4yOTYuMjk2LTIuODI0IDAtNDcxLjE1MyAwLTQ4MS40MDggMC0uMTYzIDAtLjI5Ni0uMTMzLS4yOTYtLjI5NnYtMTcuNjIyYzAtLjE2My4xMzMtLjI5Ni4yOTYtLjI5Nmg0ODEuNDA4Yy4xNjMgMCAuMjk2LjEzMy4yOTYuMjk2eiIvPgogICAgICAgIDxwYXRoIGQ9Im02Ny42NTUgNDQyLjcwNGgxOC45OWM4Ljc2OCAwIDE1LjktNy4xMzMgMTUuOS0xNS45MDF2LTY5LjUyYzAtOC43NjgtNy4xMzMtMTUuOTAxLTE1LjktMTUuOTAxaC0xOC45OWMtOC43NjggMC0xNS45IDcuMTMzLTE1LjkgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkgMTUuOTAxem0tLjktODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45LS45MDFoMTguOTljLjQ5NiAwIC45LjQwNC45LjkwMXY2OS41MmMwIC40OTctLjQwNC45MDEtLjkuOTAxaC0xOC45OWMtLjQ5NiAwLS45LS40MDQtLjktLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM5LjQwNiA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMTAuNzk2IDQ0Mi43MDRoMTguOTljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTljLTguNzY4IDAtMTUuOSA3LjEzMy0xNS45IDE1LjkwMXY2OS41MmMwIDguNzY4IDcuMTMyIDE1LjkwMSAxNS45IDE1LjkwMXptLS45LTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOS0uOTAxaDE4Ljk5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTljLS40OTYgMC0uOS0uNDA0LS45LS45MDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI4Mi41NDcgNDQyLjcwNGgxOC45ODljOC43NjggMCAxNS45MDEtNy4xMzMgMTUuOTAxLTE1LjkwMXYtNjkuNTJjMC04Ljc2OC03LjEzNC0xNS45MDEtMTUuOTAxLTE1LjkwMWgtMTguOTg5Yy04Ljc2OCAwLTE1LjkwMSA3LjEzMy0xNS45MDEgMTUuOTAxdjY5LjUyYzAgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAxLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzU0LjEzMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjLS4wMDEgOC43NjggNy4xMzMgMTUuOTAxIDE1LjkwMSAxNS45MDF6bS0uOTAyLTg1LjQyMWMwLS40OTcuNDA0LS45MDEuOTAxLS45MDFoMTguOTg5Yy40OTcgMCAuOTAxLjQwNC45MDEuOTAxdjY5LjUyYzAgLjQ5Ny0uNDA0LjkwMS0uOTAxLjkwMWgtMTguOTg5Yy0uNDk3IDAtLjkwMS0uNDA0LS45MDEtLjkwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDI1LjUyMSA0NDIuNzA0aDE4Ljk4OWM4Ljc2OCAwIDE1LjkwMS03LjEzMyAxNS45MDEtMTUuOTAxdi02OS41MmMwLTguNzY4LTcuMTM0LTE1LjkwMS0xNS45MDEtMTUuOTAxaC0xOC45ODljLTguNzY4IDAtMTUuOTAxIDcuMTMzLTE1LjkwMSAxNS45MDF2NjkuNTJjMCA4Ljc2OCA3LjEzNCAxNS45MDEgMTUuOTAxIDE1LjkwMXptLS45MDEtODUuNDIxYzAtLjQ5Ny40MDQtLjkwMS45MDEtLjkwMWgxOC45ODljLjQ5NyAwIC45MDEuNDA0LjkwMS45MDF2NjkuNTJjMCAuNDk3LS40MDQuOTAxLS45MDEuOTAxaC0xOC45ODljLS40OTcgMC0uOTAxLS40MDQtLjkwMS0uOTAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMTYuNDExIDEwNy4yNjhjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDIzLjUxMiAyMy41MTJjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQyLjYwNCA5Mi44MzJjLTIuOTMtMi45MjktNy42NzgtMi45MjktMTAuNjA3IDBzLTIuOTI5IDcuNjc4IDAgMTAuNjA2bDExLjc1NiAxMS43NTZjMi45MyAyLjkyOSA3LjY3OCAyLjkyOSAxMC42MDcgMHMyLjkyOS03LjY3OCAwLTEwLjYwNnoiLz4KICAgIDwvZz4KPC9zdmc+",_ae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00MTMuOTA3IDBjLTU0LjEwNCAwLTk4LjEyMiA0NC4wMDUtOTguMTIyIDk4LjA5NnY0My41ODJzLTY5LjgzMS0zNi45MTItNzEuMDY1LTM3LjU5M2MtOS41NDQtNS4yNjYtMTIuMTg1LTUuMjY3LTIxLjczMSAwLTEuMjM0LjY4MS0xMzYuMTQxIDcxLjk1OC0xMzYuMTQxIDcxLjk1OC0xMS40MzcgNi4wMTctMTMuMDQ1IDcuNzQ1LTE3Ljg3OCAxNS43ODMtLjc4OCAxLjMxMS02NS42OTggMTA0LjIzLTY1LjY5OCAxMDQuMjMtMy4xNzUgNS4wMjMtNC4wNzcgMTAuOTYyLTIuNTM5IDE2LjcyMiAxLjYxNyA2LjA1NiA1Ljg0IDExLjI2OSAxMS41NzcgMTQuMjk1IDMuNjQ2IDEuOTMgNy41ODIgMi44NSAxMS40NjUgMi44NSA2LjIwMiAwIDEyLjI1NS0yLjM1OCAxNi43NDUtNi42ODh2NjUuMDQ0YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTg3LjU0MXM0OS4xMzQtNzcuODU1IDQ5LjY1Mi03OC42ODJjMi4zMzQtMy43MjkgMy4zMjgtNS4yODMgNC40OTYtNi4zMTggMS4zMzMtMS4xODEgMy42NjUtMi40NjQgOC42NjUtNS4xMDdsMTEzLjAwMi01OS42NDljLjgwMS0uNDI1IDEuNDktLjgwMyAyLjA5My0xLjEzMy4xNDEtLjA3Ny4yODUtLjE1Ni40MjgtLjIzNC4xNDMuMDc4LjI4Ny4xNTcuNDI4LjIzNC42MDMuMzMxIDEuMjkyLjcwOCAyLjEwOSAxLjE0MiAwIDAgMTE4LjE5MyA2Mi40MTMgMTE5LjY0MiA2My4zMS44NjkuNTM4IDEuNTA5Ljk5NSAyLjAwOSAxLjQzOCAxLjE2NyAxLjAzNSAyLjE2MiAyLjU4OSA0LjQ5NiA2LjMxOC41MTguODI3IDQ5LjY1MSA3OC42ODEgNDkuNjUxIDc4LjY4MXYxNjAuNzE2aC04NC45MjF2LTEwNC4zNGgxMi42MjVjNy42NTIgMCAxMy44NzgtNi4yMjYgMTMuODc4LTEzLjg3OHYtMjEuNDNjMC03LjY1Mi02LjIyNi0xMy44NzgtMTMuODc4LTEzLjg3OGgtODUuMTIyYy00LjE0MiAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU4IDcuNSA3LjUgNy41aDg0djE5LjE4NmgtMjA5Ljgxdi0xOS4xODZoOTEuMmM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtOTIuMzIyYy03LjY1MiAwLTEzLjg3OCA2LjIyNi0xMy44NzggMTMuODc4djIxLjQzYzAgNy42NTIgNi4yMjYgMTMuODc4IDEzLjg3OCAxMy44NzhoMTIuNjI1djEwNC4zMzloLTg0Ljk0N3YtMzguNTYzYzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc2LjUzNmMwIDYuOTM0IDUuNjQxIDEyLjU3NCAxMi41NzQgMTIuNTc0aDQ0NS45MDdjNy4xNjcgMCAxMi45OTktNS44MzIgMTIuOTk5LTEyLjk5OXYtNDAwLjkwNWMuMDAxLTU0LjA5MS00NC4wMDQtOTguMDk2LTk4LjA5Mi05OC4wOTZ6bS0yNzMuNDQgNDk3aC04NC45NDh2LTIwLjU0Nmg4NC45NDd2MjAuNTQ2em0xNTkuNzgzLTEzOS44ODYtNjYuMzgyIDU5Ljg0NS02Ni4zODItNTkuODQ1em0tMTQ0Ljc4MyA5LjM1OSA2Ny4yMDEgNjAuNTg0LTY3LjIwMSA2MC41ODR6bTEyLjAyIDEzMC41MjcgNjYuMzgyLTU5Ljg0NSA2Ni4zODEgNTkuODQ1em0xNDQuNzgzLTkuMzU5LTY3LjIwMS02MC41ODQgNjcuMjAxLTYwLjU4NHptOTkuOTE5IDkuMzU5aC04NC45MTl2LTIwLjU0Nmg4NC45MTl6bTUzLjQ0NS0xOTguODIzYy0uMzQ3LS43Mi0uNzMzLTEuNDI3LTEuMTY2LTIuMTE3bC01MS45NDUtODIuMjY2aDg0LjQ3N3Y4NC4zODN6bS0xMzQuODQ4LTIwMC4wODFjMC00NS44MTkgMzcuMjg4LTgzLjA5NiA4My4xMjItODMuMDk2IDQ1LjgxNiAwIDgzLjA5MiAzNy4yNzYgODMuMDkyIDgzLjA5NnYxLjI4N2gtMTY2LjIxNHptMCAxNi4yODdoMTY2LjIxNHY4NC40MTJoLTkzLjk0OXMtMy41MjMtNS42NTYtNC4zMTItNi45NjZjLTQuODMxLTguMDM2LTYuNDQtOS43NjYtMTcuODY4LTE1Ljc3OGwtNTAuMDg2LTI2LjQ1di0zNS4yMTh6bTk1LjI0NiAxODAuMTc3cy01MC4yNzUtNzkuNjU2LTUwLjc4LTgwLjQ2M2MtNC43OTktNy42NjUtNi41MTQtOS44MjUtMTMuMjgxLTEzLjY5Mi0uNTIxLS4yOTctMTE5LjkyOS02My40MDgtMTIwLjQ4Mi02My43MTEtNS4xMDEtMi43OTUtNy44NDctMy4zMi0xMi4wNjctMS41NzItLjAzNy4wMTUtLjA3Ni4wMzQtLjExMy4wNS0uNjE2LjI1OS0xMTcuOTg1IDYyLjE5Ny0xMTcuOTg1IDYyLjE5Ny0xMS43MjcgNi4yLTEyLjk2MSA3LjI5NS0xOC44NjggMTYuNzI5LS41MDUuODA3LTUwLjc4IDgwLjQ2My01MC43OCA4MC40NjMtLjAxLjAxNi0uMDE2LjAzMy0uMDI2LjA0OWwtMTAuMjk0IDE2LjMxYy0yLjM3NSAzLjc2Ny03Ljg4NSA1LjA5Ni0xMi4wMzkgMi44OTQtMi4wNi0xLjA4Ni0zLjU1Mi0yLjg3My00LjA5My00LjkwMS0uMzE2LTEuMTg0LS40NDYtMi45ODQuNzI5LTQuODQzIDAgMCA2NS4wMzctMTAzLjEyNCA2NS44NzItMTA0LjUxMiAzLjQ0OC01LjczNCAzLjQ0OC01LjczNCAxMi4wMTctMTAuMjQzIDAgMCAxMzkuMTkzLTczLjYzOSAxNDAuMDEyLTc0LjAxMy44Mi4zNzQgMTQwLjAxMiA3NC4wMTMgMTQwLjAxMiA3NC4wMTMuMDAzLjAwMi4wMDcuMDA0LjAxMS4wMDYgOC41NTkgNC41MDIgOC41NTkgNC41MDIgMTIuMDA3IDEwLjIzOC44MzQgMS4zODggMS44MTYgMy4wMiAzLjA1OCA0Ljk4N2w2Mi44MzMgOTkuNTA5YzEuMTY4IDEuODYgMS4wMzQgMy42NjkuNzE2IDQuODU5LS41NDQgMi4wMzItMi4wMzIgMy44Mi00LjA3MiA0Ljg5OS00LjIyNiAyLjIzMS05LjY0NS45MjQtMTIuMDY5LTIuODk2bC0xMC4yOTItMTYuMzA3Yy0uMDEtLjAxNy0uMDE2LS4wMzUtLjAyNi0uMDV6bTcwLjk2OCAyMDIuNDRoLTY5LjgxMXYtODQuNDExaDY5LjgxMXptLTY5LjgxMS05OS40MTF2LTc0LjM4OWM3LjMxMyA3LjA0MiAxOC43NjMgOC44NzQgMjguMjM4IDMuODc1IDUuNi0yLjk2NSA5Ljc0Ni04LjAxNiAxMS40MzgtMTMuODk3aDMwLjEzNXY4NC40MTJoLTY5LjgxMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMjg1LjI2MiAyMzcuODczYzAtMjguMzQ3LTIzLjA2Mi01MS40MDktNTEuNDA4LTUxLjQwOS0yOC4zMzEgMC01MS4zNzkgMjMuMDYyLTUxLjM3OSA1MS40MDlzMjMuMDQ5IDUxLjQwOSA1MS4zNzkgNTEuNDA5YzI4LjM0Ny0uMDAxIDUxLjQwOC0yMy4wNjMgNTEuNDA4LTUxLjQwOXptLTg3Ljc4NyAwYzAtMjAuMDc2IDE2LjMyLTM2LjQwOSAzNi4zNzktMzYuNDA5IDIwLjA3NSAwIDM2LjQwOCAxNi4zMzMgMzYuNDA4IDM2LjQwOXMtMTYuMzMzIDM2LjQwOS0zNi40MDggMzYuNDA5Yy0yMC4wNTktLjAwMS0zNi4zNzktMTYuMzM0LTM2LjM3OS0zNi40MDl6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Sae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTIuOTk1IDE2Ni40ODktMzEuOTk1LTIzLjk5NnYtMTEyLjQ5M2M4LjI4NCAwIDE1LTYuNzE2IDE1LTE1cy02LjcxNi0xNS0xNS0xNWgtOTBjLTguMjg0IDAtMTUgNi43MTYtMTUgMTVzNi43MTYgMTUgMTUgMTV2NDQuOTkybC04OC4wMDktNjYuMDA2Yy0xNS44OTMtMTEuOTA0LTM4LjA5LTExLjkwNS01My45ODkuMDA1bC0yMDkuOTk5IDE1Ny41Yy0xOS44NTMgMTQuODkzLTIzLjg5MSA0My4xNTUtOS4wMDEgNjMuMDA0IDcuMjIgOS42MiAxNy43NTIgMTUuODUzIDI5LjY1NyAxNy41NSAyLjE1Ny4zMDggNC4zMS40NiA2LjQ1LjQ1OSA1LjEwOSAwIDEwLjEzLS44NzYgMTQuODkxLTIuNTY0djI1Mi4wNmMwIDguMjg0IDYuNzE2IDE1IDE1IDE1aDM2MGM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di0yNTIuMDY4YzQuNzYzIDEuNjg1IDkuODAzIDIuNTYgMTQuOTc4IDIuNTYgMTQuMSAwIDI3LjU2NS02LjcyOSAzNi4wMjItMTggMTQuODg4LTE5Ljg0NiAxMC44NDktNDguMTA4LTkuMDA1LTYzLjAwM3ptLTkxLjk5NS0xMzYuNDg5aDMwdjg5Ljk5MmwtMzAtMjIuNXptLTEyMCAyNzJoLTUwdi05Mmg1MHptMzAgMHYtMTA3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTgwYy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djEwN2gtMTA5Ljk5OXYtNzcuMDA0bDE2NC45OTktMTIzLjc1MiAxNjUgMTIzLjc1M3Y3Ny4wMDN6bS0yMTkuOTk5IDMwaDIwOS45OTl2MzBoLTQ1Yy04LjI4NCAwLTE1IDYuNzE2LTE1IDE1djQ1aC00NWMtOC4yODQgMC0xNSA2LjcxNi0xNSAxNXY0NWgtOTB6bTExOS45OTkgMTUwdi0zMGg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg0NWM4LjI4NCAwIDE1LTYuNzE2IDE1LTE1di00NWg5MHYxNTB6bTI2Ny4wMDItMjcwLjUxMWMtMi44NjMgMy44MTUtNy4yNDUgNi4wMDQtMTIuMDI0IDYuMDA0LTMuMjYgMC02LjM2NS0xLjAzNi04Ljk3OS0yLjk5NmwtMTkxLjk5OS0xNDQuMDAzYy01LjMzMy00LTEyLjY2Ny00LTE4IDBsLTE5Mi4wMDggMTQ0LjAwOWMtMy4xOTMgMi4zOTctNy4xMzYgMy40MDgtMTEuMDk4IDIuODQyLTMuOTczLS41NjYtNy40ODgtMi42NDctOS44OTYtNS44NTYtNC45NjEtNi42MTQtMy42MTItMTYuMDM1IDMuMDA2LTIxbDIwOS45OTEtMTU3LjQ5MmMyLjY1Mi0xLjk4NyA1LjgzLTIuOTc5IDkuMDA3LTIuOTc5IDMuMTc1IDAgNi4zNDkuOTkyIDguOTk2IDIuOTc0bDIwOS45OTYgMTU3LjQ5N2M2LjYyIDQuOTY2IDcuOTY5IDE0LjM4NiAzLjAwOCAyMXoiLz4KICAgIDwvZz4KPC9zdmc+",xae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDg1LjQsMjcyLjA2N2gtOC41MzN2LTE3OS4yYzAtNDIuNjY3LTM0LjEzMy03Ni44LTc2LjgtNzYuOGMtMzcuNzcsMC02NC45MzUsMjguMDA2LTY3Ljk3NCw2OS4wNDEKCQkJCWMtMTkuODI5LDMuNzQ4LTM0LjQyNiwyMC44MjYtMzQuNDI2LDQxLjg5MmMwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNoNjguMjY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzMwoJCQkJYzAtMjAuODMzLTE0LjI3NC0zNy43NjktMzMuNzY3LTQxLjc2N2MyLjU1LTI3LjExNiwxOC44MzYtNTIuMSw1MC44MzQtNTIuMWMzMy4yOCwwLDU5LjczMywyNi40NTMsNTkuNzMzLDU5LjczM3YxNzkuMkgyMDIuOTc1CgkJCQljLTMuODYtMTkuNjgxLTIwLjg3OC0zNC4xMzMtNDEuODQxLTM0LjEzM2MtOC41MzMtMTAuMjQtMjAuNDgtMTcuMDY3LTM0LjEzMy0xNy4wNjdjLTE2LjIxMywwLTMwLjcyLDkuMzg3LTM3LjU0NywyMy4wNAoJCQkJYy02LjgyNy0zLjQxMy0xNC41MDctNS45NzMtMjIuMTg3LTUuOTczYy0yMC45NjMsMC0zNy45ODEsMTQuNDUyLTQxLjg0MSwzNC4xMzNIMjQuNmMtMTQuNTA3LDAtMjUuNiwxMS4wOTMtMjUuNiwyNS42CgkJCQljMCwxNC41MDcsMTEuMDkzLDI1LjYsMjUuNiwyNS42aDEwLjI1NWwyMy4wMjUsOTEuMzA3YzYuODI3LDI2LjQ1MywzMC43Miw0NS4yMjcsNTguMDI3LDQ1LjIyN2g2LjgyN2wtMTEuMDkzLDIyLjE4NwoJCQkJYy0yLjU2LDQuMjY3LTAuODUzLDkuMzg3LDMuNDEzLDExLjA5M2MwLjg1MywwLjg1MywyLjU2LDAuODUzLDMuNDEzLDAuODUzYzMuNDEzLDAsNS45NzMtMS43MDcsNy42OC00LjI2N0wxNDEuMDgsNDU5LjhoMjM2LjgKCQkJCWwxNC41MDcsMjkuMDEzYzEuNzA3LDMuNDEzLDQuMjY3LDUuMTIsNy42OCw1LjEyYzEuNzA3LDAsMi41NiwwLDMuNDEzLTEuNzA3YzMuNDEzLTEuNzA3LDUuMTItNi44MjcsMy40MTMtMTEuMDkzCgkJCQlsLTEwLjY4OS0yMS4zNzljMjYuNDE5LTAuOTM4LDQ5LjI2Ni0xOS4zOSw1NS45MTYtNDQuMzI4bDIzLjI0LTkyLjE2aDEwLjA0YzE0LjUwNywwLDI1LjYtMTEuMDkzLDI1LjYtMjUuNgoJCQkJQzUxMSwyODMuMTYsNDk5LjkwNywyNzIuMDY3LDQ4NS40LDI3Mi4wNjd6IE0zNjUuMDgsMTE4LjQ2N2gtNDguNjRjMy40MTMtMTAuMjQsMTMuNjUzLTE3LjA2NywyNC43NDctMTcuMDY3CgkJCQlTMzYxLjY2NywxMDguMjI3LDM2NS4wOCwxMTguNDY3eiBNNjcuMjY3LDI1NWM3LjY4LDAsMTQuNTA3LDMuNDEzLDIwLjQ4LDkuMzg3YzEuNzA3LDIuNTYsNS4xMiwzLjQxMyw4LjUzMywyLjU2CgkJCQlzNS4xMi0zLjQxMyw1Ljk3My02LjgyN2MyLjU2LTEyLjgsMTIuOC0yMi4xODcsMjUuNi0yMi4xODdjOS4zODcsMCwxNy45Miw0LjI2NywyMi4xODcsMTIuOGMxLjcwNywzLjQxMyw1Ljk3Myw1LjEyLDkuMzg3LDQuMjY3CgkJCQljMC44NTMsMCwxLjcwNywwLDIuNTYsMGMxMS4wOTMsMCwyMC40OCw2LjgyNywyMy44OTMsMTcuMDY3SDQzLjM3M0M0Ni43ODcsMjYxLjgyNyw1Ni4xNzMsMjU1LDY3LjI2NywyNTV6IE00MzYuNzYsNDEwLjMwNwoJCQkJYy01LjEyLDE4Ljc3My0yMi4xODcsMzIuNDI3LTQxLjgxMywzMi40MjdIMTE2Ljc2Yy0xOS42MjcsMC0zNi42OTMtMTMuNjUzLTQxLjgxMy0zMi40MjdsLTIyLjE4Ny04Ny4wNGg0MDQuNDhMNDM2Ljc2LDQxMC4zMDd6CgkJCQkgTTQ4NS40LDMwNi4yaC0xNy4wNjdINDEuNjY3SDI0LjZjLTUuMTIsMC04LjUzMy0zLjQxMy04LjUzMy04LjUzM3MzLjQxMy04LjUzMyw4LjUzMy04LjUzM2g4LjUzM2gxNjIuMTMzSDQ4NS40CgkJCQljNS4xMiwwLDguNTMzLDMuNDEzLDguNTMzLDguNTMzUzQ5MC41MiwzMDYuMiw0ODUuNCwzMDYuMnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzA2LjIsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMyOTcuNjY3LDE3MC41MiwzMDEuMDgsMTczLjkzMywzMDYuMiwxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyMTMuMTg3YzUuMTIsMCw4LjUzMy00LjI2Nyw4LjUzMy04LjUzM3YtOS4zODdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y5LjM4NwoJCQkJQzI5Ny42NjcsMjA5Ljc3MywzMDEuMDgsMjEzLjE4NywzMDYuMiwyMTMuMTg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDYuMiwyNDYuNDY3YzUuMTIsMCw4LjUzMy0zLjQxMyw4LjUzMy04LjUzM3YtNC4yNjdjMC01LjEyLTMuNDEzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM3Y0LjI2NwoJCQkJQzI5Ny42NjcsMjQzLjA1MywzMDEuMDgsMjQ2LjQ2NywzMDYuMiwyNDYuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDAuMzMzLDE3My45MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzdjQuMjY3QzMzMS44LDE3MC41MiwzMzUuMjEzLDE3My45MzMsMzQwLjMzMywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMzEuOCwyMDQuNjUzYzAsNS4xMiwzLjQxMyw4LjUzMyw4LjUzMyw4LjUzM2M1LjEyLDAsOC41MzMtNC4yNjcsOC41MzMtOC41MzN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJYy01LjEyLDAtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjA0LjY1M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzMxLjgsMjM3LjkzM2MwLDUuMTIsMy40MTMsOC41MzMsOC41MzMsOC41MzNjNS4xMiwwLDguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCWMtNS4xMiwwLTguNTMzLDMuNDEzLTguNTMzLDguNTMzVjIzNy45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM3NC40NjcsMTczLjkzM2M1LjEyLDAsOC41MzMtMy40MTMsOC41MzMtOC41MzN2LTQuMjY3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy40MTMtOC41MzMsOC41MzN2NC4yNjcKCQkJCUMzNjUuOTMzLDE3MC41MiwzNjkuMzQ3LDE3My45MzMsMzc0LjQ2NywxNzMuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIwNC42NTNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzUzM4MywyMDguOTIsMzgzLDIwNC42NTN2LTkuMzg3YzAtNS4xMi0zLjQxMy04LjUzMy04LjUzMy04LjUzMwoJCQkJcy04LjUzMywzLjQxMy04LjUzMyw4LjUzM1YyMDQuNjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuOTMzLDIzNy45MzNjMCw1LjEyLDMuNDEzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuNDEzLDguNTMzLTguNTMzdi00LjI2N2MwLTUuMTItMy40MTMtOC41MzMtOC41MzMtOC41MzMKCQkJCXMtOC41MzMsMy40MTMtOC41MzMsOC41MzNWMjM3LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+Cg==",fae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00OTYsMzQ0aC04VjI4MGEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMyVjExMmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDg4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJWMjQ4YTMyLjA0MiwzMi4wNDIsMCwwLDAtMzIsMzJ2NjRIMTZhOCw4LDAsMCwwLTgsOHYzMmE4LDgsMCwwLDAsOCw4aDh2MzJhOCw4LDAsMCwwLDgsOEg1NmE3Ljk5LDcuOTksMCwwLDAsNy44NC02LjQzTDcwLjU2LDM5Mkg0NDEuNDRsNi43MiwzMy41N0E3Ljk5LDcuOTksMCwwLDAsNDU2LDQzMmgyNGE4LDgsMCwwLDAsOC04VjM5Mmg4YTgsOCwwLDAsMCw4LThWMzUyQTgsOCwwLDAsMCw0OTYsMzQ0Wk03MiwxMTJBMTYuMDIxLDE2LjAyMSwwLDAsMSw4OCw5Nkg0MjRhMTYuMDIxLDE2LjAyMSwwLDAsMSwxNiwxNlYyNDhINDI0VjIxNmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLTMySDI5NmEzMi4wNDIsMzIuMDQyLDAsMCwwLTMyLDMydjMySDI0OFYyMTZhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMi0zMkgxMjBhMzIuMDQyLDMyLjA0MiwwLDAsMC0zMiwzMnYzMkg3MlpNNDA4LDIxNnYzMkgyODBWMjE2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZoOTZBMTYuMDIxLDE2LjAyMSwwLDAsMSw0MDgsMjE2Wm0tMTc2LDB2MzJIMTA0VjIxNmExNi4wMjEsMTYuMDIxLDAsMCwxLDE2LTE2aDk2QTE2LjAyMSwxNi4wMjEsMCwwLDEsMjMyLDIxNlpNNDAsMjgwYTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYtMTZINDU2YTE2LjAyMSwxNi4wMjEsMCwwLDEsMTYsMTZ2NjRINDBabTkuNDQsMTM2SDQwVjM5Mkg1NC4yNFpNNDcyLDQxNmgtOS40NGwtNC44LTI0SDQ3MlptMTYtNDBIMjRWMzYwSDQ4OFoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",kae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NS4zOTMgNDUuMzkzIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTQzLjUxOCwxMi43MDlMMjUuMTc4LDAuNzI4Yy0xLjUxMS0wLjk3OC0zLjQ1OC0wLjk2OC00Ljk2LDAuMDIxTDEuODU5LDEyLjcxOWMtMS4xNCwwLjc1MS0xLjQ1NSwyLjI4NC0wLjcwNSwzLjQyNAoJCQljMC43NTEsMS4xNCwyLjI4MywxLjQ1NiwzLjQyNCwwLjcwNEwyMi43MTUsNS4wMjFMNDAuODMsMTYuODU3YzAuNDE2LDAuMjY5LDAuODgxLDAuMzk2LDEuMzQxLDAuMzk2CgkJCWMwLjgxMiwwLDEuNjA0LTAuMzk3LDIuMDc3LTEuMTI3QzQ0Ljk5LDE0Ljk4LDQ0LjY2MiwxMy40NTIsNDMuNTE4LDEyLjcwOXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzguODc5LDI3LjYxNmMtMC4xNTEtMC44NjUtMC45MDMtMS41MDUtMS43OC0xLjUwNWgtMS4wMDhsLTAuMzgzLTMuOTg3Yy0wLjQwOS00LjI2NC0zLjk0OC03LjQ5LTguMjMyLTcuNDlIMTcuOTIKCQkJYy00LjI4NSwwLTcuODIzLDMuMjI3LTguMjMzLDcuNDlsLTAuMzgyLDMuOTg3SDguMjk2Yy0wLjg3OCwwLTEuNjI5LDAuNjQtMS43ODIsMS41MDVsLTEuNSw4LjUwNAoJCQljLTAuMTg2LDEuMDU0LDAuMTEyLDIuMTM5LDAuOCwyLjk1N2MwLjY2MiwwLjc4OCwxLjYzNywxLjI1OCwyLjY1NywxLjI5M3YxLjQxMmMwLDEuOTk5LDEuNjAyLDMuNjEsMy42MDMsMy42MWgxLjEzOAoJCQljMS45OTksMCwzLjYyNS0xLjYxMSwzLjYyNS0zLjYxdi0xLjM4OWgxMS43MzJ2MS4zODZjMCwyLDEuNjEzLDMuNjEzLDMuNjEyLDMuNjEzaDEuMTM5YzEuOTk5LDAsMy42MTQtMS42MTMsMy42MTQtMy42MTNWNDAuMzcKCQkJYzEuMDItMC4wMzUsMS45ODktMC41MDEsMi42NDktMS4yODhjMC42ODgtMC44MiwwLjk4Mi0xLjg5OSwwLjc5OC0yLjk1NUwzOC44NzksMjcuNjE2eiBNMTEuNjQyLDM3LjExMwoJCQljLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1N2MxLjY4OCwwLDMuMDU3LDEuMzY3LDMuMDU3LDMuMDU3CgkJCUMxNC42OTksMzUuNzQ2LDEzLjMzLDM3LjExMywxMS42NDIsMzcuMTEzeiBNMTIuNDA0LDI2LjExMWwwLjM1My0zLjY3OGMwLjI1Ny0yLjY3NCwyLjQ3Ni00LjY4OCw1LjE2My00LjY4OGgwLjU1MXYxLjE1NgoJCQljMCwxLjAwMywwLjc5NywxLjgwMiwxLjc5OSwxLjgwMmg0Ljg1NmMxLjAwMiwwLDEuODEzLTAuNzk5LDEuODEzLTEuODAydi0xLjE1NWgwLjUzN2MyLjY4NywwLDQuOTA2LDIuMDE0LDUuMTYyLDQuNjg4CgkJCWwwLjM1NCwzLjY3OEwxMi40MDQsMjYuMTExTDEyLjQwNCwyNi4xMTF6IE0zMy43NSwzNy4xMTNjLTEuNjg3LDAtMy4wNTUtMS4zNjctMy4wNTUtMy4wNTZjMC0xLjY4OSwxLjM2OC0zLjA1NywzLjA1NS0zLjA1NwoJCQljMS42ODgsMCwzLjA1NywxLjM2NywzLjA1NywzLjA1N0MzNi44MDcsMzUuNzQ2LDM1LjQzOCwzNy4xMTMsMzMuNzUsMzcuMTEzeiIvPgogICAgPC9nPgo8L3N2Zz4K",Yae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDk0LjU5NCwzOTQuMjM3aC0xOS40NjFjMTIuOTU0LTE5LjU0MywyMC41MTItNDIuOTU4LDIwLjUxMi02OC4xMDljMC02OC4xNTctNTUuNDQ5LTEyMy42MDYtMTIzLjYwNi0xMjMuNjA2CgkJCWMtNy4xNzEsMC0xNC4yLDAuNjIyLTIxLjA0LDEuNzk5YzE3Ljg1My0yMS40MzUsMjguNjA4LTQ4Ljk3OSwyOC42MDgtNzguOTlDMzc5LjYwNiw1Ny4xNzQsMzI0LjE1NywxLjcyNCwyNTYsMS43MjQKCQkJYy02OC4xNTcsMC0xMjMuNjA2LDU1LjQ0OS0xMjMuNjA2LDEyMy42MDZjMCwzMC4wMTIsMTAuNzU1LDU3LjU1NSwyOC42MDgsNzguOTljLTYuODQtMS4xNzgtMTMuODY5LTEuNzk5LTIxLjA0LTEuNzk5CgkJCWMtNjguMTU3LDAtMTIzLjYwNiw1NS40NDktMTIzLjYwNiwxMjMuNjA2YzAsMjUuMTUxLDcuNTU4LDQ4LjU2NywyMC41MTIsNjguMTA5SDE3LjQwNkwwLDUxMC4yNzZoOTMuMjk0bDE1LjEzNS0yMC4xODFoNjMuMDY0CgkJCWwxNS4xMzUsMjAuMTgxaDEzOC43NDJsMTUuMTM1LTIwLjE4MWg2My4wNjRsMTUuMTM1LDIwLjE4MUg1MTJMNDk0LjU5NCwzOTQuMjM3eiBNNDY5LjUxOSwzNzMuNjdsLTEzLjE0Mi03LjU4OAoJCQljNC43MzYtOS45NTgsNy43Ni0yMC44ODEsOC42ODgtMzIuMzg3aDE1LjE3NUM0NzkuMjU0LDM0Ny45NDgsNDc1LjUwMywzNjEuNDUsNDY5LjUxOSwzNzMuNjd6IE00MDkuODc3LDM5NC41MzN2LTEzNi44MQoJCQljMjQuMDQ1LDEzLjM1NCw0MC4zNjEsMzkuMDA1LDQwLjM2MSw2OC40MDVTNDMzLjkyMiwzODEuMTc4LDQwOS44NzcsMzk0LjUzM3ogTTQxOS41ODEsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMNDE5LjU4MSw0MjMuNjA4eiBNNDQ4Ljc4NywzNzkuMTc2CgkJCWwxMy4xNDgsNy41OTFjLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzQzNC4zMzYsMzk2LjQ2NCw0NDIuMzc1LDM4OC40MjUsNDQ4Ljc4NywzNzkuMTc2egoJCQkgTTQ4MC4yNDEsMzE4LjU2aC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEM0NzUuNTAzLDI5MC44MDUsNDc5LjI1NCwzMDQuMzA3LDQ4MC4yNDEsMzE4LjU2egoJCQkgTTQzMi42NzgsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTkKCQkJTDQzMi42NzgsMjM2LjIzMXogTTQxMS45OTQsMjQxLjc4OWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4di0xNS4xNzZjMTQuMjUyLDAuOTg3LDI3Ljc1NCw0LjczOCwzOS45NzQsMTAuNzIyCgkJCUw0MTEuOTk0LDI0MS43ODl6IE0zOTQuNzQyLDI1MS4zdjE0OS42NTVjLTcuMTg5LDIuMTg2LTE0LjgxLDMuMzcyLTIyLjcwMywzLjM3MmMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zCgkJCWM3LjE4OS0yLjE4NiwxNC44MS0zLjM3MiwyMi43MDMtMy4zNzJDMzc5LjkzMiwyNDcuOTI4LDM4Ny41NTIsMjQ5LjExNCwzOTQuNzQyLDI1MS4zeiBNMTc3LjgsMzk0LjUzM3YtMTM2LjgxCgkJCWMyNC4wNDUsMTMuMzU0LDQwLjM2MSwzOS4wMDUsNDAuMzYxLDY4LjQwNVMyMDEuODQ1LDM4MS4xNzgsMTc3LjgsMzk0LjUzM3ogTTE4Ny41MDQsNDIzLjYwOAoJCQljLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVjMTEuNTA2LTAuOTI3LDIyLjQyOS0zLjk1MSwzMi4zODctOC42ODhMMTg3LjUwNCw0MjMuNjA4eiBNMjgyLjE0MiwyNjUuNDg4CgkJCWM3Ljc5NC0xMS41MTcsMTcuNzQtMjEuNDYzLDI5LjI1Ni0yOS4yNTZsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OUwyODIuMTQyLDI2NS40ODh6IE0yODcuNywyODYuMTczCgkJCWMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3aC0xNS4xNzVjMC45ODctMTQuMjUzLDQuNzM3LTI3Ljc1NCwxMC43MjItMzkuOTc1TDI4Ny43LDI4Ni4xNzN6IE0zMTYuNjQsMjE1LjIyNwoJCQlsLTcuNTkxLTEzLjE0OGM5LjI0OS02LjQxMiwxNy4yODctMTQuNDUsMjMuNjk5LTIzLjY5OWwxMy4xNDgsNy41OTFDMzM4LjEwMywxOTcuNDg3LDMyOC4xNTcsMjA3LjQzMywzMTYuNjQsMjE1LjIyN3oKCQkJIE0yOTMuODM5LDE5My43MzZWNTYuOTI1QzMxNy44ODQsNzAuMjgsMzM0LjIsOTUuOTMsMzM0LjIsMTI1LjMzMVMzMTcuODg0LDE4MC4zODEsMjkzLjgzOSwxOTMuNzM2eiBNMjk1Ljk1NSwyMDkuNjY5CgkJCWw3LjU4NywxMy4xNDJjLTEyLjIyLDUuOTg0LTI1LjcyMiw5LjczNC0zOS45NzUsMTAuNzIydi0xNS4xNzVDMjc1LjA3NCwyMTcuNDMsMjg1Ljk5NiwyMTQuNDA3LDI5NS45NTUsMjA5LjY2OXogTTI3Ny4wNCwyNDcuMTM4CgkJCWMtOC45NTEsMTAuNzQ3LTE2LjExOSwyMy4wMjgtMjEuMDQsMzYuMzg5Yy00LjkyMS0xMy4zNjEtMTIuMDg5LTI1LjY0MS0yMS4wNC0zNi4zODljNi44NCwxLjE3OCwxMy44NjksMS43OTksMjEuMDQsMS43OTkKCQkJQzI2My4xNzEsMjQ4LjkzNywyNzAuMiwyNDguMzE1LDI3Ny4wNCwyNDcuMTM4eiBNMjQ4LjE2NCwzMTguNTZoLTE1LjE3NWMtMC45MjctMTEuNTA2LTMuOTUxLTIyLjQyOS04LjY4OC0zMi4zODdsMTMuMTQyLTcuNTg4CgkJCUMyNDMuNDI2LDI5MC44MDUsMjQ3LjE3NywzMDQuMzA3LDI0OC4xNjQsMzE4LjU2eiBNMjQ4LjQzMSwyMzMuNTMzYy0xNC4yNTItMC45ODctMjcuNzU0LTQuNzM4LTM5Ljk3NC0xMC43MjJsNy41ODctMTMuMTQyCgkJCWM5Ljk1OCw0LjczNiwyMC44ODEsNy43NiwzMi4zODcsOC42ODhWMjMzLjUzM3ogTTIxOC4xNjEsMTkzLjczNmMtMjQuMDQ1LTEzLjM1NC00MC4zNjEtMzkuMDA1LTQwLjM2MS02OC40MDUKCQkJYzAtMjkuNCwxNi4zMTYtNTUuMDUxLDQwLjM2MS02OC40MDVWMTkzLjczNnogTTE3OS4yNTEsMTc4LjM3OWM2LjQxMiw5LjI0OSwxNC40NSwxNy4yODcsMjMuNjk5LDIzLjY5OWwtNy41OTEsMTMuMTQ4CgkJCWMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDE3OS4yNTEsMTc4LjM3OXogTTIwMC42MDEsMjM2LjIzMWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTYKCQkJbC0xMy4xNDgsNy41OTFjLTYuNDEyLTkuMjQ5LTE0LjQ1LTE3LjI4Ny0yMy42OTktMjMuNjk5TDIwMC42MDEsMjM2LjIzMXogTTIxNi43MSwzNzkuMTc2bDEzLjE0OCw3LjU5MQoJCQljLTcuNzk0LDExLjUxNy0xNy43NCwyMS40NjMtMjkuMjU2LDI5LjI1NmwtNy41OTEtMTMuMTQ4QzIwMi4yNTksMzk2LjQ2NCwyMTAuMjk4LDM4OC40MjUsMjE2LjcxLDM3OS4xNzZ6IE0yMjQuMywzNjYuMDgyCgkJCWM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1Yy0wLjk4NywxNC4yNTMtNC43MzcsMjcuNzU0LTEwLjcyMiwzOS45NzVMMjI0LjMsMzY2LjA4MnogTTI1NiwzNjguNzI5CgkJCWMzLjMzMiw5LjA0NSw3LjY5NywxNy41OTMsMTIuOTQ0LDI1LjUwOGgtMjUuODg4QzI0OC4zMDMsMzg2LjMyMSwyNTIuNjY4LDM3Ny43NzQsMjU2LDM2OC43Mjl6IE0yNjMuODM2LDMzMy42OTVoMTUuMTc1CgkJCWMwLjkyNywxMS41MDYsMy45NTEsMjIuNDI5LDguNjg4LDMyLjM4N2wtMTMuMTQyLDcuNTg4QzI2OC41NzQsMzYxLjQ1LDI2NC44MjMsMzQ3Ljk0OCwyNjMuODM2LDMzMy42OTV6IE0yOTUuMjksMzc5LjE3NgoJCQljNi40MTIsOS4yNDksMTQuNDUsMTcuMjg3LDIzLjY5OSwyMy42OTlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2TDI5NS4yOSwzNzkuMTc2egoJCQkgTTI5My44MzksMzI2LjEyOGMwLTI5LjQsMTYuMzE2LTU1LjA1MSw0MC4zNjEtNjguNDA1djEzNi44MUMzMTAuMTU1LDM4MS4xNzgsMjkzLjgzOSwzNTUuNTI4LDI5My44MzksMzI2LjEyOHogTTMzMi4wODQsNDEwLjQ2NgoJCQljOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDMzMi4wODQsNDEwLjQ2NnogTTM2NC40NzEsMjE3LjkyNVYyMzMuMQoJCQljLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMzM2LjcxNiwyMjIuNjYzLDM1MC4yMTgsMjE4LjkxMiwzNjQuNDcxLDIxNy45MjV6IE0zNTMuNDgsMTcyLjg3MwoJCQlsLTEzLjE0Mi03LjU4OGM0LjczNi05Ljk1OCw3Ljc2LTIwLjg4MSw4LjY4OC0zMi4zODdoMTUuMTc1QzM2My4yMTYsMTQ3LjE1MSwzNTkuNDY1LDE2MC42NTMsMzUzLjQ4LDE3Mi44NzN6IE0zNjQuMjAyLDExNy43NjMKCQkJaC0xNS4xNzVjLTAuOTI3LTExLjUwNi0zLjk1MS0yMi40MjktOC42ODgtMzIuMzg3bDEzLjE0Mi03LjU4OEMzNTkuNDY1LDkwLjAwOCwzNjMuMjE2LDEwMy41MSwzNjQuMjAyLDExNy43NjN6IE0zMTYuNjQsMzUuNDM0CgkJCWMxMS41MTYsNy43OTQsMjEuNDYzLDE3Ljc0LDI5LjI1NiwyOS4yNTZsLTEzLjE0OCw3LjU5MWMtNi40MTItOS4yNDktMTQuNDUtMTcuMjg3LTIzLjY5OS0yMy42OTlMMzE2LjY0LDM1LjQzNHogTTI5NS45NTYsNDAuOTkyCgkJCWMtOS45NTgtNC43MzYtMjAuODgxLTcuNzYtMzIuMzg3LTguNjg4VjE3LjEyOGMxNC4yNTIsMC45ODcsMjcuNzU0LDQuNzM4LDM5Ljk3NCwxMC43MjJMMjk1Ljk1Niw0MC45OTJ6IE0yNzguNzAzLDUwLjUwM3YxNDkuNjU1CgkJCWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyYy03Ljg5NCwwLTE1LjUxNC0xLjE4Ny0yMi43MDMtMy4zNzJWNTAuNTAzYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MgoJCQlDMjYzLjg5NCw0Ny4xMzEsMjcxLjUxNCw0OC4zMTcsMjc4LjcwMyw1MC41MDN6IE0yNDguNDMyLDE3LjEyOHYxNS4xNzVjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDIKCQkJQzIyMC42NzgsMjEuODY2LDIzNC4xOCwxOC4xMTUsMjQ4LjQzMiwxNy4xMjh6IE0xOTUuMzYsMzUuNDM0bDcuNTkxLDEzLjE0OGMtOS4yNDksNi40MTItMTcuMjg3LDE0LjQ1LTIzLjY5OSwyMy42OTkKCQkJbC0xMy4xNDgtNy41OTFDMTczLjg5Nyw1My4xNzQsMTgzLjg0Myw0My4yMjgsMTk1LjM2LDM1LjQzNHogTTE1OC41Miw3Ny43ODhsMTMuMTQyLDcuNTg4Yy00LjczNiw5Ljk1OC03Ljc2LDIwLjg4MS04LjY4OCwzMi4zODcKCQkJaC0xNS4xNzVDMTQ4Ljc4NSwxMDMuNTEsMTUyLjUzNSw5MC4wMDgsMTU4LjUyLDc3Ljc4OHogTTE1OC41MiwxNzIuODczYy01Ljk4NC0xMi4yMi05LjczNS0yNS43MjItMTAuNzIyLTM5Ljk3NWgxNS4xNzUKCQkJYzAuOTI3LDExLjUwNiwzLjk1MSwyMi40MjksOC42ODgsMzIuMzg3TDE1OC41MiwxNzIuODczeiBNMTg3LjUwNCwyMjguNjQ3bC03LjU4NywxMy4xNDJjLTkuOTU4LTQuNzM2LTIwLjg4MS03Ljc2LTMyLjM4Ny04LjY4OAoJCQl2LTE1LjE3NkMxNjEuNzgyLDIxOC45MTIsMTc1LjI4NCwyMjIuNjY0LDE4Ny41MDQsMjI4LjY0N3ogTTE2Mi42NjUsMjUxLjN2MTQ5LjY1NWMtNy4xODksMi4xODYtMTQuODEsMy4zNzItMjIuNzAzLDMuMzcyCgkJCWMtNy44OTQsMC0xNS41MTQtMS4xODctMjIuNzAzLTMuMzcyVjI1MS4zYzcuMTg5LTIuMTg2LDE0LjgxLTMuMzcyLDIyLjcwMy0zLjM3MkMxNDcuODU1LDI0Ny45MjgsMTU1LjQ3NSwyNDkuMTE0LDE2Mi42NjUsMjUxLjN6CgkJCSBNNjEuNzYyLDMyNi4xMjhjMC0yOS40LDE2LjMxNi01NS4wNTEsNDAuMzYxLTY4LjQwNXYxMzYuODFDNzguMDc4LDM4MS4xNzgsNjEuNzYyLDM1NS41MjgsNjEuNzYyLDMyNi4xMjh6IE04Ni45MTMsNDAyLjg3NgoJCQlsLTcuNTkxLDEzLjE0OGMtMTEuNTE2LTcuNzk0LTIxLjQ2My0xNy43NC0yOS4yNTYtMjkuMjU2bDEzLjE0OC03LjU5MUM2OS42MjUsMzg4LjQyNSw3Ny42NjQsMzk2LjQ2NCw4Ni45MTMsNDAyLjg3NnoKCQkJIE0xMDAuMDA3LDQxMC40NjZjOS45NTgsNC43MzYsMjAuODgxLDcuNzYsMzIuMzg3LDguNjg4djE1LjE3NWMtMTQuMjUzLTAuOTg3LTI3Ljc1NC00LjczOC0zOS45NzUtMTAuNzIyTDEwMC4wMDcsNDEwLjQ2NnoKCQkJIE0xMzIuMzk0LDIxNy45MjVWMjMzLjFjLTExLjUwNiwwLjkyNy0yMi40MjksMy45NTEtMzIuMzg3LDguNjg4bC03LjU4Ny0xMy4xNDJDMTA0LjYzOSwyMjIuNjYzLDExOC4xNDEsMjE4LjkxMiwxMzIuMzk0LDIxNy45MjUKCQkJeiBNNzkuMzIyLDIzNi4yMzFsNy41OTEsMTMuMTQ4Yy05LjI0OSw2LjQxMi0xNy4yODcsMTQuNDUtMjMuNjk5LDIzLjY5OWwtMTMuMTQ4LTcuNTkxCgkJCUM1Ny44NTksMjUzLjk3MSw2Ny44MDUsMjQ0LjAyNSw3OS4zMjIsMjM2LjIzMXogTTQyLjQ4MSwyNzguNTg1bDEzLjE0Miw3LjU4OGMtNC43MzYsOS45NTgtNy43NiwyMC44ODEtOC42ODgsMzIuMzg3SDMxLjc1OQoJCQlDMzIuNzQ2LDMwNC4zMDcsMzYuNDk3LDI5MC44MDUsNDIuNDgxLDI3OC41ODV6IE0zMS43NTksMzMzLjY5NWgxNS4xNzVjMC45MjcsMTEuNTA2LDMuOTUxLDIyLjQyOSw4LjY4OCwzMi4zODdMNDIuNDgsMzczLjY3CgkJCUMzNi40OTcsMzYxLjQ1LDMyLjc0NiwzNDcuOTQ4LDMxLjc1OSwzMzMuNjk1eiBNNDI2LjI3NCw0OTUuMTRsLTE1LjEzNS0yMC4xODFoLTc4LjJsLTE1LjEzNSwyMC4xODFIMTk0LjE5N2wtMTUuMTM1LTIwLjE4MQoJCQloLTc4LjJMODUuNzI2LDQ5NS4xNEgxNy41NzVsMTIuODY1LTg1Ljc2OGgxOC4yM2MyMi42MiwyNC43ODYsNTUuMTcxLDQwLjM2MSw5MS4yOTEsNDAuMzYxczY4LjY3MS0xNS41NzUsOTEuMjkxLTQwLjM2MWg0OS40OTQKCQkJYzIyLjYyLDI0Ljc4Niw1NS4xNzEsNDAuMzYxLDkxLjI5MSw0MC4zNjFzNjguNjcxLTE1LjU3NSw5MS4yOTEtNDAuMzYxaDE4LjIzbDEyLjg2NSw4NS43NjhINDI2LjI3NHoiLz4KICAgICAgICA8cmVjdCB4PSIzMDUuOTQ4IiB5PSIxMTYuNzU1IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjE5MC45MTkiIHk9IjExNi43NTUiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTExLjIwNSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyNDguNDMzIiB5PSI2NS43OTkiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMzAuMjcxIi8+CiAgICAgICAgPHJlY3QgeD0iMjQ4LjQzMyIgeT0iMTcxLjc0NyIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSI0MjEuOTg2IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjMwNi45NTciIHk9IjMxNy41NTIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzY0LjQ3MiIgeT0iMzEyLjAwMiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIzNjQuNDcyIiB5PSIyNjYuNTk2IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjMwLjI3MSIvPgogICAgICAgIDxyZWN0IHg9IjM2NC40NzIiIHk9IjM3Mi41NDQiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTg5LjkxIiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9Ijc0Ljg4IiB5PSIzMTcuNTUyIiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjEzMi4zOTUiIHk9IjMxMi4wMDIiIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMTMyLjM5NSIgeT0iMjY2LjU5NiIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIzMC4yNzEiLz4KICAgICAgICA8cmVjdCB4PSIxMzIuMzk1IiB5PSIzNzIuNTQ0IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ2MS4zODciIHk9IjQ3MC44ODEiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTg4OSAtMC4xNDgzIDAuMTQ4MyAwLjk4ODkgLTY1Ljc3MiA3NC44NDExKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjQ1Ni4yMSIgeT0iNDMxLjkzNSIgdHJhbnNmb3JtPSJtYXRyaXgoMC45ODg5IC0wLjE0ODMgMC4xNDgzIDAuOTg4OSAtNjAuNzE5OSA3My42OTAzKSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjI0LjE0NSIvPgogICAgICAgIDxyZWN0IHg9IjI0OC40MzMiIHk9IjQ2NC44NyIgd2lkdGg9IjQ1LjQwNiIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMTguMTYyIiB5PSI0NjQuODciIHdpZHRoPSIxNS4xMzUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMjYzLjU2OSIgeT0iNDI0LjUwOSIgd2lkdGg9IjE1LjEzNSIgaGVpZ2h0PSIxNS4xMzUiLz4KICAgICAgICA8cmVjdCB4PSIyMzMuMjk4IiB5PSI0MjQuNTA5IiB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgICAgIDxyZWN0IHg9IjM2LjEyNyIgeT0iNDM2LjQ2MSIgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNDgzIC0wLjk4ODkgMC45ODg5IDAuMTQ4MyAtMzk4LjA2NzUgNDI1Ljg0MjcpIgogICAgICAgICAgICAgIHdpZHRoPSIyNC4xNDUiIGhlaWdodD0iMTUuMTM1Ii8+CiAgICAgICAgPHJlY3QgeD0iMzUuNDY4IiB5PSI0NzAuODYiIHRyYW5zZm9ybT0ibWF0cml4KDAuMTQ4MyAtMC45ODg5IDAuOTg4OSAwLjE0ODMgLTQzNi40ODM4IDQ1MC4wMzI1KSIKICAgICAgICAgICAgICB3aWR0aD0iMTUuMTM1IiBoZWlnaHQ9IjE1LjEzNSIvPgogICAgPC9nPgo8L3N2Zz4K",Qae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik02MSwyMUgzYTEsMSwwLDAsMCwwLDJINjFhMSwxLDAsMCwwLDAtMloiLz4KICAgICAgICA8cGF0aCBkPSJNNjEsMkg0OWExLDEsMCwwLDAtMSwxVjE3SDQ2di0uNzY0YTEwLjUzMywxMC41MzMsMCwwLDAtMS4xLTQuNjgzQTguNTIyLDguNTIyLDAsMCwxLDQ0LDcuNzY0VjNhMSwxLDAsMCwwLTEtMUgzOWExLDEsMCwwLDAtMSwxVjcuNzY0YTguNTIyLDguNTIyLDAsMCwxLS45LDMuNzg5Yy0uMDM5LjA4LS4wNjcuMTY1LS4xLjI0Ni0uMDM4LS4wODEtLjA2Ni0uMTY2LS4xLS4yNDZBOC41MjIsOC41MjIsMCwwLDEsMzYsNy43NjRWM2ExLDEsMCwwLDAtMS0xSDMxYTEsMSwwLDAsMC0xLDFWNy43NjRhOC41MjIsOC41MjIsMCwwLDEtLjg5NSwzLjc4OUExMC41MzMsMTAuNTMzLDAsMCwwLDI4LDE2LjIzNlYxN0gxOFYxMC40MTRhMi4zOTQsMi4zOTQsMCwwLDEsLjcwNy0xLjcwNkE0LjM4NSw0LjM4NSwwLDAsMCwyMCw1LjU4NlY0aDJWNS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMjQsMTAuNDE0VjE0YTEsMSwwLDAsMCwyLDBWMTAuNDE0YTQuMzg1LDQuMzg1LDAsMCwwLTEuMjkzLTMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDI0LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxOWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC41MTUsNC41MTUsMCwwLDAsMTcsNy42NDlhNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDE2LDUuNTg2VjNhMSwxLDAsMCwwLTEtMUgxMWExLDEsMCwwLDAtMSwxVjUuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDZBNC4zODUsNC4zODUsMCwwLDAsOCwxMC40MTRWMTdIM2ExLDEsMCwwLDAsMCwySDYxYTEsMSwwLDAsMCwwLTJINTBWMTRINjBhMSwxLDAsMCwwLDIsMFYzQTEsMSwwLDAsMCw2MSwyWk00Miw0VjdINDBWNFpNMTAuNzA3LDguNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDEyLDUuNTg2VjRoMlY1LjU4NmE0LjM4NSw0LjM4NSwwLDAsMCwxLjI5MywzLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwxNiwxMC40MTRWMTJIMTBWMTAuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDEwLjcwNyw4LjcwOFpNMTAsMTRoNnYzSDEwWm0yMCwyLjIzNmE4LjUyMiw4LjUyMiwwLDAsMSwuODk1LTMuNzg5QTEwLjUzMywxMC41MzMsMCwwLDAsMzIsNy43NjRWNGgyVjcuNzY0YTEwLjUzMywxMC41MzMsMCwwLDAsMS4xLDQuNjgzLDguNTIyLDguNTIyLDAsMCwxLC45LDMuNzg5VjE3SDMwWk0zOCwxN3YtLjc2NGE4LjUyMiw4LjUyMiwwLDAsMSwuOS0zLjc4OUExMC41NDEsMTAuNTQxLDAsMCwwLDM5LjkyNCw5aDIuMTUyYTEwLjU0MSwxMC41NDEsMCwwLDAsMS4wMjksMy40NDcsOC41MjIsOC41MjIsMCwwLDEsLjksMy43ODlWMTdaTTYwLDRWNkg1MFY0Wk01MCwxMlY4SDYwdjRaIi8+CiAgICAgICAgPHBhdGggZD0iTTYxLDQ0SDNhMSwxLDAsMCwwLDAsMkg2MFY2MEg0NlY0OWExLDEsMCwwLDAtMiwwVjYwSDQyVjUzYTEsMSwwLDAsMC0xLTFIMjZhMSwxLDAsMCwwLTEsMXY3SDIyVjQ5YTEsMSwwLDAsMC0xLTFINWExLDEsMCwwLDAtMSwxVjYwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsMS0xVjQ1QTEsMSwwLDAsMCw2MSw0NFpNNDAsNTZIMzdWNTRoM1ptLTUsMEgzMlY1NGgzWm0tNS0ydjJIMjdWNTRaTTIwLDUyLjM4MmEzLjk0NywzLjk0NywwLDAsMC02LDBWNTBoNlpNMTksNTVhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTksNTVaTTYsNTRoNnYySDZabTYtNHYySDZWNTBaTTYsNThoNnYySDZabTgsMlY1Ny42MThhMy45NDcsMy45NDcsMCwwLDAsNiwwVjYwWm0xMy0yaDN2MkgyN1ptNSwwaDN2MkgzMlptNSwyVjU4aDN2MloiLz4KICAgICAgICA8cGF0aCBkPSJNNTcsNTZhMSwxLDAsMCwwLDEtMVY1MWExLDEsMCwwLDAtMS0xSDQ5YTEsMSwwLDAsMC0xLDF2NGExLDEsMCwwLDAsMSwxWm0tNy00aDZ2Mkg1MFoiLz4KICAgICAgICA8cGF0aCBkPSJNNjAsMjkuMTg0VjI2YTEsMSwwLDAsMC0xLTFINTVhMSwxLDAsMCwwLTEsMXYzLjE4NEEzLDMsMCwwLDAsNTIsMzJ2N2EyLjk2NiwyLjk2NiwwLDAsMCwuMTg0LDFINDlWMzRhMSwxLDAsMCwwLDAtMkg0MWExLDEsMCwwLDAsMCwydjZIMzhWMzFhMSwxLDAsMCwwLTEtMUgyNWExLDEsMCwwLDAtMSwxdjlIMjJWMzlhMSwxLDAsMCwwLTIsMHYxSDE0VjMzLjQxNGEyLjM5NCwyLjM5NCwwLDAsMSwuNzA3LTEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDE2LDI4LjU4NlYyN2gydjEuNTg2YTQuMzg1LDQuMzg1LDAsMCwwLDEuMjkzLDMuMTIyQTIuMzk0LDIuMzk0LDAsMCwxLDIwLDMzLjQxNFYzNWExLDEsMCwwLDAsMiwwVjMzLjQxNGE0LjM4NSw0LjM4NSwwLDAsMC0xLjI5My0zLjEyMkEyLjM5NCwyLjM5NCwwLDAsMSwyMCwyOC41ODZWMjZhMSwxLDAsMCwwLTEtMUgxNWExLDEsMCwwLDAtMSwxdjIuNTg2YTIuMzk0LDIuMzk0LDAsMCwxLS43MDcsMS43MDYsNC41MTUsNC41MTUsMCwwLDAtLjI5My4zNTcsNC41MTUsNC41MTUsMCwwLDAtLjI5My0uMzU3QTIuMzk0LDIuMzk0LDAsMCwxLDEyLDI4LjU4NlYyNmExLDEsMCwwLDAtMS0xSDdhMSwxLDAsMCwwLTEsMXYyLjU4NmEyLjM5NCwyLjM5NCwwLDAsMS0uNzA3LDEuNzA2QTQuMzg1LDQuMzg1LDAsMCwwLDQsMzMuNDE0VjQwSDNhMSwxLDAsMCwwLDAsMkg2MWExLDEsMCwwLDAsLjctMS43MTNBMi45NjQsMi45NjQsMCwwLDAsNjIsMzlWMzJBMywzLDAsMCwwLDYwLDI5LjE4NFpNNi43MDcsMzEuNzA4QTQuMzg1LDQuMzg1LDAsMCwwLDgsMjguNTg2VjI3aDJ2MS41ODZhNC4zODUsNC4zODUsMCwwLDAsMS4yOTMsMy4xMjJBMi4zOTQsMi4zOTQsMCwwLDEsMTIsMzMuNDE0VjM1SDZWMzMuNDE0QTIuMzk0LDIuMzk0LDAsMCwxLDYuNzA3LDMxLjcwOFpNNiwzN2g2djNINlpNNTYsMjdoMnYySDU2Wm0tMSw0aDRhMSwxLDAsMCwxLDEsMXYzSDU0VjMyQTEsMSwwLDAsMSw1NSwzMVpNMzYsMzZIMzJWMzJoNFptLTYtNHYySDI2VjMyWm0tNCw0aDR2NEgyNlptNiw0VjM4aDR2MlptMTEsMFYzNGg0djZabTEyLDBhMSwxLDAsMCwxLTEtMVYzN2g2djJhMSwxLDAsMCwxLTEsMVoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Uae="PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC0xMDggNTEyIDUxMiIgd2lkdGg9IjUxMnB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTA0IDQ4LjAxNTYyNWgtNDk2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTktOC04di0zMi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg0OTZjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOHYzMi4wMTU2MjVjMCA0LjQyNTc4MS0zLjU3NDIxOSA4LTggOHptLTQ4OC0xNmg0ODB2LTE2LjAxNTYyNWgtNDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTYgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMjQ2LjcxODc1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQ2LjcxODc1YzAgNC40MjU3ODItMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00MCAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ3MiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NiAyOTYuMTYwMTU2Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04di0yNDYuNzE4NzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNDYuNzE4NzVjMCA0LjQyNTc4Mi0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQwIDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDk2IDI5Ni4xNjAxNTZoLTI0Yy00LjQyNTc4MSAwLTgtMy41NzQyMTgtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMjRjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDI1NzgyLTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDcyIDE2MC4xMTMyODFoLTQzMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQzMmM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00NzIgMTg0LjEyODkwNmgtNDMyYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTcxLjk4NDM3NSAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMjIuMDU4NTk0IDE3LjkzNzUtNDAgMzkuOTkyMTg3LTQwIDQuNDIxODc2IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNCA4LTggOC0xMy4yMjI2NTYgMC0yMy45OTIxODcgMTAuNzY1NjI1LTIzLjk5MjE4NyAyNCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTUyIDE2MC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yMzQzNzUtMTAuNzY5NTMxLTI0LTIzLjk5MjE4OC0yNC00LjQyMTg3NCAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjYtOCA4LTggMjIuMDU0Njg4IDAgMzkuOTkyMTg4IDE3Ljk0MTQwNiAzOS45OTIxODggNDAgMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTc5Ljk4NDM3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDMuOTY4NzUgMTM4Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Mi44Mzk4NDRjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOCA0LjQyMTg3NSAwIDggMy41NzQyMTkgOCA4djQyLjgzOTg0NGMwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtOTYgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMjggODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEyOCAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTk2IDk2LjEyODkwNmgtMTYuMDE1NjI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTYuMDE1NjI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE0My45Njg3NSA5Ni4xMjg5MDZoLTE1Ljk2ODc1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoMTUuOTY4NzVjNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc4MTI1IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTIwLjAwNzgxMiAxMjguMTI4OTA2aC0xNi4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAzMTI1YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE3NS45ODQzNzUgMTYwLjEyODkwNmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTIyLjA1ODU5NCAxNy45Mzc1LTQwIDM5Ljk5MjE4Ny00MCA0LjQyMTg3NiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzgxMjQgOC04IDgtMTMuMjIyNjU2IDAtMjMuOTkyMTg3IDEwLjc2NTYyNS0yMy45OTIxODcgMjQgMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1NiAxNjAuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjM0Mzc1LTEwLjc2OTUzMS0yNC0yMy45OTIxODgtMjQtNC40MjE4NzQgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI2LTggOC04IDIyLjA1NDY4OCAwIDM5Ljk5MjE4OCAxNy45NDE0MDYgMzkuOTkyMTg4IDQwIDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xODMuOTg0Mzc1IDEzOC45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtNDIuODM5ODQ0YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LTggNC40MjE4NzUgMCA4IDMuNTc0MjE5IDggOHY0Mi44Mzk4NDRjMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI0Ny45Njg3NSAxMzguOTY4NzVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQyLjgzOTg0NGMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04IDQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDh2NDIuODM5ODQ0YzAgNC40MjE4NzUtMy41NzgxMjUgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAgMTA0LjE0NDUzMWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOHYtMjQuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MjQuMDE1NjI1YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzIgODAuMTI4OTA2aC0zMmMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDMyYzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIzMiAxMDQuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di0yNC4wMTU2MjVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHYyNC4wMTU2MjVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIwMCA5Ni4xMjg5MDZoLTE2LjAxNTYyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE2LjAxNTYyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNDcuOTY4NzUgOTYuMTI4OTA2aC0xNS45Njg3NWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDE1Ljk2ODc1YzQuNDIxODc1IDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3ODEyNSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTIyNC4wMDc4MTIgMTI4LjEyODkwNmgtMTYuMDMxMjVjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGgxNi4wMzEyNWM0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNTYuMTY3OTY5IDI4MC4xNDQ1MzFjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC0xMy4yNDIxODcgMTAuNzc3MzQzLTI0LjAxNTYyNSAyNC4wMTU2MjUtMjQuMDE1NjI1IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOC00LjQyMTg3NSAwLTguMDE1NjI1IDMuNTg5ODQ0LTguMDE1NjI1IDguMDE1NjI1IDAgNC40MjE4NzUtMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI4MC4xNDQ1MzFjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOC00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzgxMjUtOCA4LTggMTMuMjM0Mzc1IDAgMjQgMTAuNzY1NjI1IDI0IDI0IDAgNC40MjE4NzUtMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZoLTgwLjAyMzQzN2MtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDgwLjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyNTc4Mi0zLjU4MjAzMSA4LTguMDA3ODEzIDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuODMyMDMxIDI2NC4xMjg5MDZoLTQ5LjI5Njg3NWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04aDQ5LjI5Njg3NWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNzIuMTY3OTY5IDI2NC4xMjg5MDZjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTh2LTQ3Ljk4NDM3NWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djQ3Ljk4NDM3NWMwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzIwLjE5OTIxOSAyNjQuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04di00OGMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDh2NDhjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI1Ni4xNjc5NjkgMjk2LjE2MDE1NmMtNC40MjU3ODEgMC04LTMuNTc0MjE4LTgtOHYtMTYuMDE1NjI1YzAtNC40MjU3ODEgMy41NzQyMTktOCA4LThzOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41ODIwMzEgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMzYuMTkxNDA2IDI5Ni4xNjAxNTZjLTQuNDIxODc1IDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDh2MTYuMDE1NjI1YzAgNC40MjU3ODItMy41NzQyMTggOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zMjAuMTk5MjE5IDIxNi4xNDQ1MzFoLTQ4LjAzMTI1Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNDguMDMxMjVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzI4LjE5MTQwNiAyNDAuMTQ0NTMxaC02NC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg2NC4wMjM0MzdjNC40MjU3ODIgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjE2Nzk2OSAyODAuMTQ0NTMxYy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtMTMuMjQyMTg3IDEwLjc3NzM0My0yNC4wMTU2MjUgMjQuMDE1NjI1LTI0LjAxNTYyNSA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjE4NzUtMy41NzQyMTkgOC04IDgtNC40MjE4NzUgMC04LjAxNTYyNSAzLjU4OTg0NC04LjAxNTYyNSA4LjAxNTYyNSAwIDQuNDIxODc1LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyODAuMTQ0NTMxYy00LjQyMTg3NSAwLTgtMy41NzgxMjUtOC04IDAtNC40MTc5NjktMy41ODIwMzEtOC04LTgtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc4MTI1LTggOC04IDEzLjIzNDM3NSAwIDI0IDEwLjc2NTYyNSAyNCAyNCAwIDQuNDIxODc1LTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2aC04MC4wMjM0MzdjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTggMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOGg4MC4wMzEyNWM0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4IDAgNC40MjU3ODItMy41ODIwMzEgOC04LjAwNzgxMyA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjgzMjAzMSAyNjQuMTI4OTA2aC00OS4yOTY4NzVjLTQuNDIxODc1IDAtOC0zLjU3ODEyNS04LTggMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOGg0OS4yOTY4NzVjNC40MjU3ODEgMCA4IDMuNTc0MjE5IDggOCAwIDQuNDIxODc1LTMuNTc0MjE5IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjE2Nzk2OSAyNjQuMTI4OTA2Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04di00Ny45ODQzNzVjMC00LjQyNTc4MSAzLjU3NDIxOS04IDgtOHM4IDMuNTc0MjE5IDggOHY0Ny45ODQzNzVjMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQyNC4xOTkyMTkgMjY0LjE0NDUzMWMtNC40MjE4NzUgMC04LTMuNTc4MTI1LTgtOHYtNDhjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MSAwIDggMy41NzQyMTkgOCA4djQ4YzAgNC40MjE4NzUtMy41NzQyMTkgOC04IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjAuMTY3OTY5IDI5Ni4xNjAxNTZjLTQuNDI1NzgxIDAtOC0zLjU3NDIxOC04LTh2LTE2LjAxNTYyNWMwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04czggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDQwLjE5MTQwNiAyOTYuMTYwMTU2Yy00LjQyMTg3NSAwLTgtMy41NzQyMTgtOC04di0xNi4wMTU2MjVjMC00LjQyNTc4MSAzLjU3ODEyNS04IDgtOCA0LjQyNTc4MiAwIDggMy41NzQyMTkgOCA4djE2LjAxNTYyNWMwIDQuNDI1NzgyLTMuNTc0MjE4IDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDI0LjE5OTIxOSAyMTYuMTQ0NTMxaC00OC4wMzEyNWMtNC40MjU3ODEgMC04LTMuNTc4MTI1LTgtOCAwLTQuNDI1NzgxIDMuNTc0MjE5LTggOC04aDQ4LjAzMTI1YzQuNDI1NzgxIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOSA4LTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQzMi4xOTE0MDYgMjQwLjE0NDUzMWgtNjQuMDIzNDM3Yy00LjQyNTc4MSAwLTgtMy41NzgxMjUtOC04IDAtNC40MjU3ODEgMy41NzQyMTktOCA4LThoNjQuMDIzNDM3YzQuNDI1NzgyIDAgOCAzLjU3NDIxOSA4IDggMCA0LjQyMTg3NS0zLjU3NDIxOCA4LTggOHptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",vae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",bae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMi4yNzMgNTEyLjI3MyIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTUwNy44OTEgMjM4LjM5OWMtNi43MjMtMzUuODgxLTIxLjg1My02Ni45MDUtNDMuNzU1LTg5LjcxOC05Ljg0NS0xMC4yNTMtMjEuNDU2LTE5Ljc1LTM0LjUxNC0yOC4yMjctMTQuOTQtOS42OTktMzIuMTkyLTE4LjQzOC01NC4yOTMtMjcuNTAzLTkuNjg0LTMuOTcyLTE5LjM3NS03LjYzNy0yOC40MDYtMTEuMDA1LTE0LjY0Mi01LjQ2LTMwLjA2NC0xMC45NTgtNDUuODQzLTE2LjMzNy01LjQyNy0xLjg1MS0xMC45MjEtMy42MDYtMTYuMjM0LTUuMzAzLTguNTA1LTIuNzE3LTE3LjMtNS41MjctMjUuNzcxLTguNzIxLTUuMjI0LTEuOTctNy40MjYtMy40NjQtOC4zMjEtNC4yNTguMDQ2LS4wNTYuMDk2LS4xMTUuMTUxLS4xNzcgNC4wNDgtNC42MTUgMjcuNjAzLTIzLjEwNSA0MS41MDEtMzMuNjc3IDIuNTYyLTEuOTQ5IDMuNTk1LTUuMzE1IDIuNTY2LTguMzY1cy0zLjg4OS01LjEwNC03LjEwNy01LjEwNGwtMTU0LjA1Mi0uMDA0Yy0xLjMyMSAwLTIuNjE5LjM0OS0zLjc2MiAxLjAxMi0xNy4yODIgMTAuMDIxLTMxLjYyMyAyNS43OS0zOS4zNDYgNDMuMjYyLTguOTQ2IDIwLjI0LTkuMDE2IDQxLjQyNS0uMjAyIDYxLjI2MyAxMi4wNyAyNy4xNjcgMzcuNTY3IDQyLjIzNyA2MC4wNjMgNTUuNTMzIDUuODcgMy40NjkgMTEuNDE0IDYuNzQ2IDE2LjY1NSAxMC4xNjcgMy4wOTUgMi4wMiA2LjI3MyA0LjAwMyA5LjM0NyA1LjkyMiAxMS41NDUgNy4yMDggMjIuNDUgMTQuMDE2IDMxLjE2NyAyMy42MDQgOC45ODEgOS44NzcgMTEuNjkzIDIyLjUwMSA3Ljg0MiAzNi41MDctOC45NDggMzIuNTQ0LTM1LjU0NCA2MS43ODEtNTkuMDA5IDg3LjU3Ni00LjM0MiA0Ljc3My04LjQ0MiA5LjI4MS0xMi40MDkgMTMuNzc2LTExLjEwNyAxMi41ODctMjcuMzkzIDMwLjg5LTQ0LjYzNCA1MC4yNjctNTYuODY5IDYzLjkxNC05NC40MTUgMTA2LjIyOS05OCAxMTEuODQ2LTEuNDc0IDIuMzA5LTEuNTcxIDUuMjM4LS4yNTQgNy42NCAxLjMxNiAyLjQwMiAzLjgzOCAzLjg5NSA2LjU3NyAzLjg5NWw0NDYuMzE2LjAwM2guMDAxYzMuMjUxIDAgNi4xMzItMi4wOTQgNy4xMzUtNS4xODcgMTEuNjU5LTM1Ljk2IDIyLjIxMi03Mi4yMzIgMzUuMjgzLTEyMS4yODMgMTUuNTkxLTU4LjUxNSAxOS4xODUtMTA1LjM1NCAxMS4zMDgtMTQ3LjQwNHptLTI1LjgwMyAxNDMuNTQzYy0xMi4zNyA0Ni40Mi0yMi40NjQgODEuMzA1LTMzLjM4NSAxMTUuMzMxbC0yNi45NC0uMDAyYzEuMjg4LTMuOTQ4IDIuNTczLTcuOTAzIDMuODYxLTExLjg0MiAxMS41OC0zNS40MSAyMi44NzctNzAuOTI1IDMyLjUwNC0xMDYuODg4IDEuNTM1LTUuNzQgMy4xMjItMTEuNjc0IDQuNjctMTcuNjQ1IDEuMDQtNC4wMDktMS4zNjgtOC4xMDMtNS4zNzgtOS4xNDItNC4wMDktMS4wMzgtOC4xMDIgMS4zNjktOS4xNDIgNS4zNzgtMS41MzMgNS45MTQtMy4xMTMgMTEuODItNC42NDEgMTcuNTMxLTkuNDM5IDM1LjI3NS0yMC43OTcgNzEuMDI1LTMyLjI3IDEwNi4xMDQtMS43OTcgNS40OTMtMy41OTUgMTAuOTkyLTUuMzg5IDE2LjUwNGgtMTU3Ljk3OGMtLjQzMi0xLjg1OC0xLjU2Ny0zLjU1My0zLjMwOS00LjY0OS0zLjUwNC0yLjIwNi04LjEzNi0xLjE1Mi0xMC4zNDIgMi4zNTMtLjQ5NS43ODYtLjk3MyAxLjU0Mi0xLjQ0OSAyLjI5NmgtMTU2LjIzNGMyNC40NzMtMzAuNTUxIDkxLjg5Ny0xMTIuMDczIDEyNC4yMzgtMTQ4LjcyNCAxNy4yNC0xOS41MzcgMzEuMzY4LTM4LjcyNiA0MS45OTQtNTcuMDMzIDE3LjU5OC0zMC4zMTkgMjQuNTY3LTU2Ljc2NSAyMC43MTYtNzguNjAxLTguMjczLTQ2LjkwOS00NS4xMjctNjUuNzY0LTc3LjY0My04Mi4zOTgtMy40MzktMS43NTktNi45OTUtMy41NzktMTAuNDA3LTUuMzc1bC0uNjA5LS4zMjFjLTMuNjYzLTEuOTMzLTguMi0uNTMtMTAuMTMzIDMuMTMzcy0uNTMgOC4yIDMuMTMzIDEwLjEzM2wuNjE2LjMyNWMzLjQ5NiAxLjg0IDcuMDkxIDMuNjggMTAuNTY4IDUuNDU4IDMyLjI1NyAxNi41MDIgNjIuNzI2IDMyLjA5IDY5LjcwMyA3MS42NSAzLjIyIDE4LjI1Ni0zLjE0NSA0MS4yOTEtMTguOTE3IDY4LjQ2Ni05Ljk4OSAxNy4yMS0yMy45MTQgMzYuMTA0LTQwLjI2OCA1NC42MzgtMzUuMjg2IDM5Ljk4OC0xMTYuMDk4IDEzNy44MzgtMTMyLjA1NiAxNTguNjQ4aC0zMy44NWMxNy44ODItMjAuNzUzIDU2Ljc0NC02NC40MjggODYuOTgxLTk4LjQxMSAxNy4yNTItMTkuMzg5IDMzLjU0Ny0zNy43MDIgNDQuNjc1LTUwLjMxMyAzLjg5Mi00LjQxIDcuOTU2LTguODc4IDEyLjI1OC0xMy42MDcgMjQuNTk3LTI3LjA0IDUyLjQ3Ni01Ny42ODggNjIuMzc1LTkzLjY5MyA1LjIwNy0xOC45MzkgMS4yMjctMzYuOS0xMS4yMDctNTAuNTc1LTE2LjQyMy0xOC4wNjItMzkuODYzLTMwLjIzNy02MC42MzUtNDIuNTE0LTIxLjU2NS0xMi43NDYtNDMuODY0LTI1LjkyNi01My45ODctNDguNzEtMTUuMDIzLTMzLjgxNSA0LjM2Ni02Ny43MTggMzEuNjY3LTg0LjQ0N2gxMy42MzljLTIwLjU1NyAxNS4wNzQtMzIuNTY4IDMwLjMwNS0zNi40OTQgNDYuMTk1LTMuMTgzIDEyLjg4Mi0uODEzIDI1Ljc1NiA3LjA0NSAzOC4yNjUgNC4zMjQgNi44ODMgOS45MDQgMTMuMTEyIDE3LjA1OCAxOS4wNDIgMy4xODggMi42NDMgNy45MTYgMi4yMDEgMTAuNTYxLS45ODggMi42NDMtMy4xODkgMi4yMDEtNy45MTctLjk4OC0xMC41NjEtNS45MDktNC44OTgtMTAuNDY1LTkuOTU5LTEzLjkyOS0xNS40NzItNS42ODgtOS4wNTYtNy4zODQtMTcuNzg2LTUuMTg1LTI2LjY4OCAzLjk3OS0xNi4xMDMgMjAuNTY4LTMyLjg1MSA0OS4zMTQtNDkuNzkzaDUwLjcxNWMtMTMuMzA2IDEwLjQ3OS0yOC4xMDUgMjQuNzc1LTI0LjA5NSA0Mi4zNTMgMy45NzkgMTcuNDQxIDI0LjE3NyAyNy4xNzkgMzkuMTc4IDMzLjQ3MiAxOS41NTggOC4yMDUgMzkuODM1IDE0LjcyIDU5LjQ0NSAyMS4wMjEgMzIuMDg4IDEwLjMxIDY1LjI2OSAyMC45NzEgOTUuMDAzIDM5LjEzNyAzMy45MzQgMjAuNzMxIDU1LjUxOCA1MS4xNTggNjIuNDIgODcuOTg5IDQuNDc4IDIzLjg5NiAzLjQyNiA1MC42MzQtMy4zMTEgODQuMTUybC0uMTA3LjUzNmMtLjgxNCA0LjA2MiAxLjgxOCA4LjAxNCA1Ljg4IDguODI4LjQ5OC4xLjk5My4xNDcgMS40ODEuMTQ3IDMuNTAxIDAgNi42MzItMi40NjQgNy4zNDYtNi4wMjhsLjEwNi0uNTMyYzcuMTI4LTM1LjQ2MiA4LjE5MS02NC4wMTggMy4zNDktODkuODY3LTcuNzA3LTQxLjEyMy0zMS42ODYtNzUuMDItNjkuMzQ0LTk4LjAyNi0zMS4yNjItMTkuMDk5LTY1LjMwOS0zMC4wMzktOTguMjM0LTQwLjYxOC0xOS4zMDctNi4yMDMtMzkuMjcxLTEyLjYxOC01OC4yMy0yMC41NzItNS43ODctMi40MjktMTAuNzEyLTQuOTEyLTE1LjA1Ny03LjU5LTUuNDY0LTMuMzY4LTEzLjcyMS04LjQ1Ny0xNS4zMDItMTUuMzg4LTIuNTc5LTExLjMwOSAxNC4zMy0yMy45OTggMjUuNTItMzIuMzk1IDMuMjE2LTIuNDE0IDYuMTA2LTQuNTg1IDguNDczLTYuNjE3IDAgMCAxMy43ODkgMCAxMy43ODcuMDAyLTkuODkyIDcuNzg2LTM0LjE1NiAxOS43MzMtMzAuMTc0IDM1LjY1MyAxLjk5OCA3Ljk4NiAxMC42ODggMTIuMTkxIDE4LjAzNSAxNC45NjIgMTMuOTgxIDUuMjcyIDI4LjMyNCA5LjM2NyA0Mi40NTYgMTQuMTg2IDE1LjY0NCA1LjMzNSAzMC45MzMgMTAuNzgzIDQ1LjQ0MiAxNi4xOTUgOC45MTMgMy4zMjUgMTguNDcgNi45MzggMjcuOTU3IDEwLjgyOSAyMS4yMTQgOC43MDEgMzcuNjc5IDE3LjAyOCA1MS44MTYgMjYuMjA2IDEyLjA5NCA3Ljg1MiAyMi44MTMgMTYuNjExIDMxLjg2MSAyNi4wMzUgMTkuODc1IDIwLjcwMSAzMy42NDggNDkuMDg4IDM5LjgzMSA4Mi4wOTEgNy40NTEgMzkuNzcxIDMuOTM3IDg0LjUwNS0xMS4wNTggMTQwLjc4MXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzQ0LjM2NSAxOTkuNDA3YzEuNDYxIDIuMDczIDMuNzggMy4xOCA2LjEzOCAzLjE4IDEuNDkyIDAgMy0uNDQ0IDQuMzEzLTEuMzcgMy4zODYtMi4zODYgNC4xOTYtNy4wNjUgMS44MTEtMTAuNDUxLTQuMTA5LTUuODMxLTguODExLTExLjI5My0xMy45NzMtMTYuMjMzLTIuOTkzLTIuODY1LTcuNzQxLTIuNzYtMTAuNjA0LjIzMi0yLjg2NCAyLjk5My0yLjc2MSA3Ljc0LjIzMiAxMC42MDQgNC40NjUgNC4yNzQgOC41MzEgOC45OTcgMTIuMDgzIDE0LjAzOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjU1LjA4MyAxMjIuNTE4LS40NzMtLjI0NmMtNS43NzYtMi45OTMtMTEuNTQ1LTUuOTgzLTE3LjMzNC04Ljk0NS0zLjY4NC0xLjg4My04LjIwNi0uNDI2LTEwLjA5MyAzLjI2Mi0xLjg4NiAzLjY4OC0uNDI2IDguMjA2IDMuMjYyIDEwLjA5MyA1Ljc2NSAyLjk0OSAxMS41MTEgNS45MjcgMTcuMjYzIDguOTA4bC40NzMuMjQ1YzEuMTA0LjU3MiAyLjI4My44NDMgMy40NDUuODQzIDIuNzEyIDAgNS4zMzEtMS40NzYgNi42NjUtNC4wNSAxLjkwNi0zLjY3OC40Ny04LjIwNC0zLjIwOC0xMC4xMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc5LjY4MyA1Ny41ODRjMS43NDQtNS41MSA0LjcxOS0xMC4xOTYgOC4xNjMtMTIuODU2IDMuMjc4LTIuNTMyIDMuODgyLTcuMjQyIDEuMzUxLTEwLjUyLTIuNTM0LTMuMjc5LTcuMjQ0LTMuODgyLTEwLjUyMS0xLjM1MS01Ljg4OSA0LjU0OS0xMC42MSAxMS43MjQtMTMuMjkzIDIwLjIwMS0xLjI1IDMuOTQ5LjkzOCA4LjE2NCA0Ljg4NyA5LjQxNC43NTMuMjM4IDEuNTE1LjM1MiAyLjI2NS4zNTIgMy4xODItLjAwMSA2LjEzNi0yLjA0MyA3LjE0OC01LjI0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDEuMTM2IDk1LjkwM2MtNi43NTEtMy4zMTQtMTEuNDI0LTYuMjY4LTE1LjE1Mi05LjU3Ni0zLjA5OC0yLjc1LTcuODM4LTIuNDY2LTEwLjU4OC42MzEtMi43NSAzLjA5OC0yLjQ2NyA3LjgzOC42MzEgMTAuNTg4IDQuNzc5IDQuMjQyIDEwLjQ4NCA3Ljg4OCAxOC40OTkgMTEuODIyIDEuMDYzLjUyMiAyLjE5Ljc2OSAzLjMuNzY5IDIuNzcgMCA1LjQzNS0xLjU0MiA2LjczOC00LjE5NiAxLjgyNS0zLjcxOC4yOS04LjIxMi0zLjQyOC0xMC4wMzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3NS44NTUgNDQxLjI3NmMtMy41NTMtMi4xMjYtOC4xNTktLjk3Mi0xMC4yODcgMi41ODMtMy40OTQgNS44MzUtNi45NDkgMTEuNTc2LTEwLjMwNiAxNy4xMjItMi4xNDUgMy41NDMtMS4wMTEgOC4xNTUgMi41MzMgMTAuMjk5IDEuMjE1LjczNSAyLjU1NCAxLjA4NSAzLjg3NyAxLjA4NSAyLjUzNyAwIDUuMDE0LTEuMjg4IDYuNDIzLTMuNjE4IDMuMzY4LTUuNTY1IDYuODM3LTExLjMyNyAxMC4zNDMtMTcuMTgzIDIuMTI3LTMuNTU0Ljk3MS04LjE2LTIuNTgzLTEwLjI4OHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzY0Ljg2NCAyMjQuMTUyYy00LjA2Ny43ODYtNi43MjcgNC43Mi01Ljk0IDguNzg3LjkxIDQuNzEzIDEuMzcyIDkuNDY4IDEuMzcyIDE0LjEzMiAwIC4zNTgtLjAwMy43MTYtLjAwOSAxLjA5LS4wMTUuOTc2LS4wNDQgMS45NDctLjA4NyAyLjkxNS0uMTg3IDQuMTM4IDMuMDE4IDcuNjQzIDcuMTU1IDcuODI5LjExNS4wMDUuMjI5LjAwOC4zNDMuMDA4IDMuOTg2IDAgNy4zMDYtMy4xNCA3LjQ4Ni03LjE2My4wNTEtMS4xMTcuMDg0LTIuMjM5LjEwMS0zLjM1LjAwOC0uNDQzLjAxMS0uODg3LjAxMS0xLjMzIDAtNS42MTctLjU1NC0xMS4zMy0xLjY0NS0xNi45NzgtLjc4Ny00LjA2Ny00LjcyOC02LjcyNS04Ljc4Ny01Ljk0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDYuMjU0IDM4OS40ODFjLTMuNTgyLTIuMDczLTguMTcyLS44NTMtMTAuMjQ5IDIuNzMxLTMuMjMyIDUuNTgyLTYuNjA2IDExLjM3LTEwLjA2MiAxNy4yNjEtMi4wOTYgMy41NzMtLjg5NyA4LjE2OCAyLjY3NiAxMC4yNjQgMS4xOTIuNjk5IDIuNDk4IDEuMDMxIDMuNzg3IDEuMDMxIDIuNTc0IDAgNS4wOC0xLjMyNiA2LjQ3Ny0zLjcwNyAzLjQ2OS01LjkxNSA2Ljg1Ni0xMS43MjggMTAuMTAzLTE3LjMzMiAyLjA3Ni0zLjU4My44NTItOC4xNzEtMi43MzItMTAuMjQ4eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjEuOTI5IDI4My4zMTRjLTMuODgzLTEuNDQ2LTguMjAxLjUzLTkuNjQ2IDQuNDEzLTIuMDkxIDUuNjE5LTQuNTkyIDExLjQwNC03LjY0NiAxNy42ODYtMS44MTEgMy43MjUtLjI1OSA4LjIxMyAzLjQ2NiAxMC4wMjQgMS4wNTcuNTE0IDIuMTc0Ljc1NiAzLjI3My43NTYgMi43ODEgMCA1LjQ1NC0xLjU1MyA2Ljc1MS00LjIyMyAzLjI2Ni02LjcxOCA1Ljk1Mi0xMi45MzcgOC4yMTQtMTkuMDExIDEuNDQ1LTMuODgyLS41My04LjItNC40MTItOS42NDV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzNS45MiAzMzcuMjc1Yy0zLjU4NS0yLjA3NS04LjE3My0uODUyLTEwLjI0OSAyLjczMy0zLjEwOSA1LjM3Mi02LjYzNCAxMS40Ni05Ljk3NSAxNy41MTctMiAzLjYyNy0uNjgyIDguMTg5IDIuOTQ1IDEwLjE5IDEuMTQ4LjYzMyAyLjM5MS45MzQgMy42MTUuOTM0IDIuNjQ0IDAgNS4yMDctMS40MDEgNi41NzQtMy44NzkgMy4yNjYtNS45MiA2Ljc0OS0xMS45MzggOS44MjItMTcuMjQ3IDIuMDc3LTMuNTg1Ljg1Mi04LjE3Mi0yLjczMi0xMC4yNDh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMwOC4wMDEgMTUxLjQwMmMtMy4yMTgtMS44MzgtNi40NzQtMy43NjMtOS42MjEtNS42MjQtMi41MzEtMS40OTYtNS4wNTktMi45OS03LjYtNC40NjEtMy41ODYtMi4wNzUtOC4xNzQtLjg1Mi0xMC4yNDggMi43MzMtMi4wNzYgMy41ODQtLjg1MyA4LjE3MyAyLjczMiAxMC4yNDkgMi41MDEgMS40NDggNC45OSAyLjkxOSA3LjQ4MiA0LjM5MyAzLjE5NCAxLjg4OCA2LjQ5OCAzLjg0MSA5LjgxMyA1LjczNSAxLjE3NC42NyAyLjQ1Mi45ODkgMy43MTQuOTg5IDIuNjA0IDAgNS4xMzUtMS4zNTggNi41MTktMy43ODEgMi4wNTYtMy41OTcuODA2LTguMTc4LTIuNzkxLTEwLjIzM3oiLz4KICAgIDwvZz4KPC9zdmc+",$ae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cmVjdCB4PSIxODguNjMyIiB5PSIyNTYiIHdpZHRoPSIzNS45MyIgaGVpZ2h0PSIxNy45NjUiLz4KICAgICAgICA8cGF0aCBkPSJNNDQxLjkxNyw0NzEuNTc5bDE2LjAzOS04OC4yMTljMC40ODItMi42MjMtMC4yMjgtNS4zMTYtMS45MzktNy4zNmMtMS43MDItMi4wNDQtNC4yMjgtMy4yMjgtNi44OTUtMy4yMjhoLTg5LjgyNQoJCQljLTIuNjY3LDAtNS4xOTMsMS4xODQtNi44OTUsMy4yMjhjLTEuNzExLDIuMDQ0LTIuNDIxLDQuNzM3LTEuOTM5LDcuMzZsMTYuMDM5LDg4LjIxOUgyNjAuNDkxVjMxLjQzOQoJCQljMC00Ljk2NS00LjAxOC04Ljk4Mi04Ljk4Mi04Ljk4Mkg1My44OTVjLTQuOTY1LDAtOC45ODIsNC4wMTgtOC45ODIsOC45ODJ2NDQwLjE0SDB2MTcuOTY1aDUzLjg5NWgxOTcuNjE0aDEyNS43NTRoNTMuODk1SDUxMgoJCQl2LTE3Ljk2NUg0NDEuOTE3eiBNMjQyLjUyNiw0NzEuNTc5SDYyLjg3N1Y0MC40MjFoMTc5LjY0OVY0NzEuNTc5eiBNNDIzLjY1OCw0NzEuNTc5aC0zOC44OTVsLTE0LjcwMi04MC44NDJoNjguMjk4CgkJCUw0MjMuNjU4LDQ3MS41Nzl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OC4xMDUsNzYuMzUxYy0yNy40NTYsMC00NC40ODksMTIuNDk2LTUzLjg5NSwyNS4xOTVjLTkuNDA4LTEyLjY5OS0yNi40MzktMjUuMTk1LTUzLjg5NS0yNS4xOTUKCQkJYy00Ljk2NSwwLTguOTgyLDQuMDE4LTguOTgyLDguOTgyYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJjMzMuNzU0LDAsNDMuMjcyLDIzLjMwNyw0NC45MTIsMjguMjQ2djIzMi4yNDYKCQkJYzAsNC45NjUsNC4wMTgsOC45ODIsOC45ODIsOC45ODJzOC45ODItNC4wMTgsOC45ODItOC45ODJWMTIyLjU3MmMxLjU0NC00LjY4LDEwLjk4Ny0yOC4yNTcsNDQuOTEyLTI4LjI1NwoJCQljNC45NjUsMCw4Ljk4Mi00LjAxOCw4Ljk4Mi04Ljk4MkM0NjcuMDg4LDgwLjM2OCw0NjMuMDcsNzYuMzUxLDQ1OC4xMDUsNzYuMzUxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDExOS4yNjNjLTE1LjU1My0xNS41NTMtMzYuODQyLTIyLjM3Ny01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwxNTYuMTU4LDM4MS4zOTUsMTM0LjgzMywzNjUuODMzLDExOS4yNjN6IE0zNjcuMDA5LDE2NC45MDMKCQkJYy0xMS4xNTgsMC40MzktMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NzksMjMuNTg4LDQuNTM1LDMyLjkzOSwxMy44NzcKCQkJQzM2Mi40NzQsMTQxLjMxNiwzNjcuNTcsMTUzLjcwMiwzNjcuMDA5LDE2NC45MDN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2NS44MzMsMjAwLjEwNWMtMTUuNTUzLTE1LjU1My0zNi44NDItMjIuMzY5LTU1LjY2Ny0xNy43OThjLTMuMjU0LDAuNzk4LTUuNzk4LDMuMzQyLTYuNTk2LDYuNTk2CgkJCWMtNC41NzksMTguNzcyLDIuMjM3LDQwLjA5NywxNy43OTgsNTUuNjY3YzEyLjM2LDEyLjM2LDI4LjM2LDE5LjIwMiw0My44MTYsMTkuMjAyYzQuMDA5LDAsNy45ODItMC40NjUsMTEuODUxLTEuNDA0CgkJCWMzLjI1NS0wLjc5OCw1Ljc5OC0zLjM0Miw2LjU5Ni02LjU5NkMzODguMjExLDIzNywzODEuMzk1LDIxNS42NzYsMzY1LjgzMywyMDAuMTA1eiBNMzY3LjAwOSwyNDUuNzQ2CgkJCWMtMTEuMTU4LDAuNDkxLTIzLjU5Ni00LjU0NC0zMi45MzktMTMuODc3Yy05LjM0Mi05LjM1MS0xNC40MzktMjEuNzM3LTEzLjg3Ny0zMi45MzljMTEuMTIzLTAuNTM1LDIzLjU4OCw0LjUzNSwzMi45MzksMTMuODc3CgkJCUMzNjIuNDc0LDIyMi4xNTgsMzY3LjU3LDIzNC41NDQsMzY3LjAwOSwyNDUuNzQ2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjUuODMzLDI4MC45NDdjLTE1LjU1My0xNS41NjEtMzYuODQyLTIyLjM2OS01NS42NjctMTcuNzk4Yy0zLjI1NCwwLjc5OC01Ljc5OCwzLjM0Mi02LjU5Niw2LjU5NgoJCQljLTQuNTc5LDE4Ljc3MiwyLjIzNyw0MC4wOTcsMTcuNzk4LDU1LjY2N2MxMi4zNiwxMi4zNiwyOC4zNiwxOS4yMDIsNDMuODE2LDE5LjIwMmM0LjAwOSwwLDcuOTgyLTAuNDY1LDExLjg1MS0xLjQwNAoJCQljMy4yNTUtMC43OTgsNS43OTgtMy4zNDIsNi41OTYtNi41OTZDMzg4LjIxMSwzMTcuODQyLDM4MS4zOTUsMjk2LjUxOCwzNjUuODMzLDI4MC45NDd6IE0zNjcuMDA5LDMyNi41ODgKCQkJYy0xMS4xNTgsMC40NDctMjMuNTk2LTQuNTM1LTMyLjkzOS0xMy44NzdjLTkuMzQyLTkuMzUxLTE0LjQzOS0yMS43MzctMTMuODc3LTMyLjkzOWMxMS4xMjMtMC41NywyMy41ODgsNC41MzUsMzIuOTM5LDEzLjg3NwoJCQlDMzYyLjQ3NCwzMDMsMzY3LjU3LDMxNS4zODYsMzY3LjAwOSwzMjYuNTg4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDkuMzg2LDEwOC4wNjFjLTAuNzk4LTMuMjU0LTMuMzQyLTUuNzk4LTYuNTk2LTYuNTk2Yy0xOC43ODktNC41Ny00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjgsMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDE0OC4xNTgsNTEzLjk2NSwxMjYuODMzLDUwOS4zODYsMTA4LjA2MXogTTQ3OC44ODYsMTUxLjAyNgoJCQljLTkuMzUxLDkuMzQyLTIxLjg3NywxNC4zMjUtMzIuOTM5LDEzLjg3N2MtMC41NjEtMTEuMjAyLDQuNTM1LTIzLjU4OCwxMy44NzctMzIuOTM5YzkuMzUxLTkuMzQyLDIxLjc5OC0xNC40NDcsMzIuOTM5LTEzLjg3NwoJCQlDNDkzLjMyNSwxMjkuMjg5LDQ4OC4yMjgsMTQxLjY3NSw0NzguODg2LDE1MS4wMjZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwOS4zODYsMTg4LjkwM2MtMC43OTgtMy4yNTQtMy4zNDItNS43OTgtNi41OTYtNi41OTZjLTE4Ljc4OS00LjU3OS00MC4xMDUsMi4yMzctNTUuNjY3LDE3Ljc5OAoJCQljLTE1LjU2MSwxNS41Ny0yMi4zNzcsMzYuODk1LTE3Ljc5OCw1NS42NjdjMC43OTgsMy4yNTUsMy4zNDIsNS43OTgsNi41OTYsNi41OTZjMy44NjksMC45MzksNy44MzMsMS40MDQsMTEuODQyLDEuNDA0CgkJCWMxNS40NjUsMCwzMS40NjUtNi44NDIsNDMuODI1LTE5LjIwMkM1MDcuMTQ5LDIyOSw1MTMuOTY1LDIwNy42NzYsNTA5LjM4NiwxODguOTAzeiBNNDc4Ljg4NiwyMzEuODY4CgkJCWMtOS4zNTEsOS4zMzMtMjEuODc3LDE0LjM2OC0zMi45MzksMTMuODc3Yy0wLjU2MS0xMS4yMDIsNC41MzUtMjMuNTg4LDEzLjg3Ny0zMi45MzljOS4zNTEtOS4zNDIsMjEuNzk4LTE0LjQwMywzMi45MzktMTMuODc3CgkJCUM0OTMuMzI1LDIxMC4xMzIsNDg4LjIyOCwyMjIuNTE3LDQ3OC44ODYsMjMxLjg2OHoiLz4KICAgICAgICA8cGF0aCBkPSJNNTA5LjM4NiwyNjkuNzQ2Yy0wLjc5OC0zLjI1NC0zLjM0Mi01Ljc5OC02LjU5Ni02LjU5NmMtMTguNzg5LTQuNTc5LTQwLjEwNSwyLjIzNy01NS42NjcsMTcuNzk4CgkJCWMtMTUuNTYxLDE1LjU3LTIyLjM3NywzNi44OTUtMTcuNzk4LDU1LjY2N2MwLjc5OCwzLjI1NSwzLjM0Miw1Ljc5OCw2LjU5Niw2LjU5NmMzLjg2OSwwLjkzOSw3LjgzMywxLjQwNCwxMS44NDIsMS40MDQKCQkJYzE1LjQ2NSwwLDMxLjQ2NS02Ljg0Miw0My44MjUtMTkuMjAyQzUwNy4xNDksMzA5Ljg0Miw1MTMuOTY1LDI4OC41MTgsNTA5LjM4NiwyNjkuNzQ2eiBNNDc4Ljg4NiwzMTIuNzEKCQkJYy05LjM1MSw5LjM0Mi0yMS44NzcsMTQuMzMzLTMyLjkzOSwxMy44NzdjLTAuNTYxLTExLjIwMiw0LjUzNS0yMy41ODgsMTMuODc3LTMyLjkzOWM5LjM1MS05LjM0MiwyMS43OTgtMTQuNDQ3LDMyLjkzOS0xMy44NzcKCQkJQzQ5My4zMjUsMjkwLjk3NCw0ODguMjI4LDMwMy4zNiw0NzguODg2LDMxMi43MXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Pae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDIzMC41NjZoMjMyLjEzNWMyMi40MDUgMCA0MC42MzQtMTguMjI4IDQwLjYzNC00MC42MzN2LTE0OS4zYy0uMDAxLTIyLjQwNS0xOC4yMjktNDAuNjMzLTQwLjYzNS00MC42MzNoLTIzMi4xMzRjLTIyLjQwNSAwLTQwLjYzNCAxOC4yMjgtNDAuNjM0IDQwLjYzM3YxNDkuMjk5YzAgMjIuNDA2IDE4LjIyOCA0MC42MzQgNDAuNjM0IDQwLjYzNHptLTI1LjYzNC0xODkuOTMzYzAtMTQuMTM0IDExLjQ5OS0yNS42MzMgMjUuNjM0LTI1LjYzM2gyMzIuMTM1YzE0LjEzNSAwIDI1LjYzNCAxMS40OTkgMjUuNjM0IDI1LjYzM3YxNDkuMjk5YzAgMTQuMTM0LTExLjQ5OSAyNS42MzMtMjUuNjM0IDI1LjYzM2gtMjMyLjEzNWMtMTQuMTM1IDAtMjUuNjM0LTExLjQ5OS0yNS42MzQtMjUuNjMzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDUuMTEgMTY0LjgxM2MxMC40MjMgMi4wODEgMTguODUgMTAuMTggMjAuOTcgMjAuMTU3IDEuNTM2IDcuMjIyIDguMDIyIDEyLjQ2MyAxNS40MjIgMTIuNDYzaDE0OC45NDdjNy40OCAwIDEzLjk4LTUuMzEgMTUuNDU1LTEyLjYyNCAyLjExNS0xMC40ODIgMTAuNTc2LTE4LjkzNiAyMS4wNTItMjEuMDM4IDcuMzA4LTEuNDY2IDEyLjYxMS03Ljk2NSAxMi42MTEtMTUuNDU0di02Ni4wNjdjMC03LjQ4NC01LjMxMS0xMy45ODUtMTIuNjI3LTE1LjQ1Ny0xMC40NzItMi4xMDctMTguOTI1LTEwLjU2My0yMS4wMzYtMjEuMDQxLTEuNDc1LTcuMzEyLTcuOTY3LTEyLjYxOC0xNS40MzktMTIuNjE4aC0xNDguOTcxYy03LjM5NSAwLTEzLjg3OCA1LjI0Mi0xNS40MTQgMTIuNDY1LTIuMTE4IDkuOTY5LTEwLjU0IDE4LjA2Ny0yMC45NTUgMjAuMTUzLTcuMzU1IDEuNDcyLTEyLjY5MiA3Ljk3OS0xMi42OTIgMTUuNDd2NjguMTI1YzAgNy40OTQgNS4zMzEgMTMuOTk5IDEyLjY3NyAxNS40NjZ6bTIuMzIzLTgzLjU5MmMwLS4zNzQuMjYyLS42ODcuNjM4LS43NjIgMTYuMjAzLTMuMjQ0IDI5LjMzNy0xNiAzMi42ODItMzEuNzQxLjA3My0uMzQ0LjM3OC0uNTg1Ljc0Mi0uNTg1aDE0OC45NzJjLjM1NyAwIC42NjYuMjQ1LjczMy41ODMgMy4yOSAxNi4zMjUgMTYuNDY0IDI5LjQ5OSAzMi43ODIgMzIuNzgyLjM0LjA2OC41ODYuMzg1LjU4Ni43NTJ2NjYuMDY3YzAgLjM2MS0uMjQxLjY4My0uNTYxLjc0Ny0xNi4zMjYgMy4yNzQtMjkuNTEgMTYuNDQ3LTMyLjgwNiAzMi43NzgtLjA2OS4zNDItLjM4Ni41OTEtLjc1Mi41OTFoLTE0OC45NDdjLS4zNjIgMC0uNjc4LS4yNDYtLjc1LS41ODItMy4zNDctMTUuNzUyLTE2LjQ5LTI4LjUxMS0zMi43MDUtMzEuNzQ4LS4zNTctLjA3MS0uNjE0LS4zODktLjYxNC0uNzU3eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNzIuMDY3IDUwLjIwNGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di00LjE0MmMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTgtNy41IDcuNXY0LjE0MmMwIDQuMTQyIDMuMzU4IDcuNSA3LjUgNy41eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuOTMzIDE5OS41MDNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXYtNC4xNDJjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2NC4xNDJjMCA0LjE0MyAzLjM1NyA3LjUgNy41IDcuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcyLjA2NyAxODAuMzYyYy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQuMTQyYzAgNC4xNDIgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQuMTQyYzAtNC4xNDItMy4zNTctNy41LTcuNS03LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE4OS43MzMgMTY0LjFoNDkuN2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNS42MzNoMTcuMzVjMi42IDAgNS4wMTQtMS4zNDYgNi4zOC0zLjU1N3MxLjQ5MS00Ljk3Mi4zMjgtNy4yOTdsLTI0Ljg1LTQ5LjdjLTEuMjcxLTIuNTQxLTMuODY3LTQuMTQ2LTYuNzA4LTQuMTQ2cy01LjQzOCAxLjYwNS02LjcwOCA0LjE0NmwtMTQuNDkzIDI4Ljk4N2gtMjguNDk4Yy00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41djQ5LjdjLS4wMDEgNC4xNDIgMy4zNTcgNy41IDcuNDk5IDcuNXptNDkuNzAxLTczLjU2MyAxMi43MTUgMjUuNDNoLTI1LjQzem0tNDIuMjAxIDIzLjg2M2gxMy40OThsLTIuODU2IDUuNzEzYy0xLjE2MyAyLjMyNS0xLjAzOCA1LjA4Ni4zMjggNy4yOTdzMy43OCAzLjU1NyA2LjM4IDMuNTU3aDE3LjM1MXYxOC4xMzNoLTM0Ljd2LTM0Ljd6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMxMy45ODMgMTQ3LjUzM2MxNy44MzggMCAzMi4zNS0xNC41MTIgMzIuMzUtMzIuMzUgMC0xNy44MzctMTQuNTEyLTMyLjM1LTMyLjM1LTMyLjM1cy0zMi4zNTEgMTQuNTEyLTMyLjM1MSAzMi4zNWMuMDAxIDE3LjgzOCAxNC41MTQgMzIuMzUgMzIuMzUxIDMyLjM1em0wLTQ5LjY5OWM5LjU2NiAwIDE3LjM1IDcuNzgzIDE3LjM1IDE3LjM1cy03Ljc4MyAxNy4zNS0xNy4zNSAxNy4zNS0xNy4zNTEtNy43ODMtMTcuMzUxLTE3LjM1Yy4wMDEtOS41NjcgNy43ODQtMTcuMzUgMTcuMzUxLTE3LjM1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzAuODY3IDI0OC41Yy04LjU0NyAwLTE1LjUgNi45NTMtMTUuNSAxNS41djE3LjEzM2MwIDguNTQ3IDYuOTUzIDE1LjUgMTUuNSAxNS41aDUwLjI2NmM4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptNTAuNzY2IDE1LjV2MTcuMTMzYzAgLjI3Ni0uMjI1LjUtLjUuNWgtNTAuMjY2Yy0uMjc1IDAtLjUtLjIyNC0uNS0uNXYtMTcuMTMzYzAtLjI3Ni4yMjUtLjUuNS0uNWg1MC4yNjZjLjI3NSAwIC41LjIyNC41LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ5Ni41IDQ2My44NjdoLTE3LjY3MmMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtMTM2LjUwNWM5LjYwOC0zLjE2IDE2LjU2Ny0xMi4yMTIgMTYuNTY3LTIyLjg2NHYtOC4yODRjMC04LjcwMy03LjA4MS0xNS43ODMtMTUuNzg0LTE1Ljc4M2gtMi41NjJjMS4xNDMtMi44IDEuNzc5LTUuODYgMS43NzktOS4wNjcgMC0xMy4yNy0xMC43OTYtMjQuMDY2LTI0LjA2Ni0yNC4wNjZzLTI0LjA2NiAxMC43OTYtMjQuMDY2IDI0LjA2NmMwIDMuMjA3LjYzNSA2LjI2NiAxLjc3OSA5LjA2N2gtMi41NjNjLTguNzAzIDAtMTUuNzgzIDcuMDgxLTE1Ljc4MyAxNS43ODN2OC4yODRjMCAxMC41MTggNi43ODYgMTkuNDc2IDE2LjIwNyAyMi43NDEtMTguNjE2IDE4LjQzOC00MC4wMzcgMzMuMzUxLTYzLjczNCA0NC4zMzctMy43NTggMS43NDItNS4zOTMgNi4yMDEtMy42NSA5Ljk1OCAxLjI3IDIuNzM3IDMuOTc4IDQuMzQ4IDYuODEgNC4zNDggMS4wNTYgMCAyLjEyOS0uMjI0IDMuMTQ5LS42OTggMjEuMDU4LTkuNzYyIDQwLjQyNy0yMi40MzIgNTcuNzg2LTM3Ljc1NHYyMy43MTJjLTQ1LjQxIDM1LjQ5NS0xMDAuMDE0IDU0LjI0Ny0xNTguMTY3IDU0LjI0Ny01OC4xNDggMC0xMTIuNzU2LTE4Ljc1My0xNTguMTY3LTU0LjI0OXYtMjMuNjljNDMuNzY0IDM4LjY5IDk5LjI4IDU5LjgwNSAxNTguMTY3IDU5LjgwNSAyMy41OTIgMCA0Ni45MTMtMy40NDEgNjkuMzE0LTEwLjIyOCAzLjk2NC0xLjIwMSA2LjIwNC01LjM4OCA1LjAwMy05LjM1My0xLjIwMS0zLjk2NC01LjM4OS02LjIwNy05LjM1My01LjAwMy0yMC45ODkgNi4zNTktNDIuODQ3IDkuNTgzLTY0Ljk2NCA5LjU4My01OS41NzIgMC0xMTUuNDYyLTIzLjA3LTE1Ny44MDItNjUuMDE4IDkuNDE5LTMuMjY3IDE2LjIwMi0xMi4yMjQgMTYuMjAyLTIyLjc0di04LjI4NGMwLTguNzAzLTcuMDgtMTUuNzgzLTE1Ljc4My0xNS43ODNoLTIuNTYzYzEuMTQzLTIuOCAxLjc3OS01Ljg2IDEuNzc5LTkuMDY3IDAtMTMuMjctMTAuNzk2LTI0LjA2Ni0yNC4wNjYtMjQuMDY2cy0yNC4wNyAxMC43OTgtMjQuMDcgMjQuMDY4YzAgMy4yMDcuNjM2IDYuMjY2IDEuNzc5IDkuMDY3aC0yLjU2MmMtOC43MDMgMC0xNS43ODQgNy4wODEtMTUuNzg0IDE1Ljc4M3Y4LjI4NGMwIDEwLjY1MiA2Ljk1OSAxOS43MDQgMTYuNTY3IDIyLjg2NHYxMzYuNTA2Yy05LjYwOCAzLjE2LTE2LjU2NyAxMi4yMTItMTYuNTY3IDIyLjg2NHY4LjI4NGMwIC4yNjQuMDI3LjUyMi4wNC43ODNoLTE3LjY3M2MtOC41NDcgMC0xNS41IDYuOTUzLTE1LjUgMTUuNXYxNy4xMzJjMCA4LjU0NyA2Ljk1MyAxNS41IDE1LjUgMTUuNWg1OS44MzNjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTU5LjgzM2MtLjI3NSAwLS41LS4yMjQtLjUtLjV2LTE3LjEzM2MwLS4yNzYuMjI1LS41LjUtLjVoNDgxYy4yNzUgMCAuNS4yMjQuNS41djE3LjEzM2MwIC4yNzYtLjIyNS41LS41LjVoLTM5MS4xNjdjLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMzkxLjE2N2M4LjU0NyAwIDE1LjUtNi45NTMgMTUuNS0xNS41di0xNy4xMzNjMC04LjU0Ny02Ljk1My0xNS41LTE1LjUtMTUuNXptLTY3LjMzMy0xNjQuNTc3Yy4xNjEtLjg3OC4xNTgtMS43NzguMDA1LTIuNjU2aDE4LjEyOHYxOC4xMzNoLTE4LjEzM3ptMCA0My45MDRjLjAxMi0uMjM5LjAxMi0uNDc5IDAtLjcxOXYtMTIuNzA5aDE4LjEzM3YxMDAuOTY3aC0xOC4xMzN6bTAtMTAzLjc2MWMwLTQuOTk5IDQuMDY3LTkuMDY2IDkuMDY2LTkuMDY2czkuMDY2IDQuMDY3IDkuMDY2IDkuMDY2LTQuMDY3IDkuMDY3LTkuMDY2IDkuMDY3LTkuMDY2LTQuMDY3LTkuMDY2LTkuMDY3em0tMTYuNTY3IDI0Ljg1YzAtLjQzMi4zNTItLjc4My43ODMtLjc4M2g0OS43Yy40MzMgMCAuNzg0LjM1Mi43ODQuNzgzdjguMjg0YzAgNC45OTktNC4wNjcgOS4wNjYtOS4wNjcgOS4wNjZoLTMzLjEzM2MtNSAwLTkuMDY3LTQuMDY3LTkuMDY3LTkuMDY2em0tMTU2LjYgMTQ0LjE3NmM1Ny42NDggMCAxMTIuMDA3LTE3LjQyMiAxNTguMTY3LTUwLjUxNHY3My45OTFjLTkuNjA4IDMuMTYtMTYuNTY3IDEyLjIxMi0xNi41NjcgMjIuODY0djguMjg0YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMjgzLjI3OWMuMDEzLS4yNjEuMDQtLjUxOS4wNC0uNzgzdi04LjI4NGMwLTEwLjY1Mi02Ljk1OS0xOS43MDQtMTYuNTY3LTIyLjg2NHYtNzMuOTkyYzQ2LjE2MSAzMy4wOTIgMTAwLjUyMyA1MC41MTUgMTU4LjE2NiA1MC41MTV6bS0xNzMuMTY3LTExMC43ODljLS4wMTIuMjQ3LS4wMTIuNDk1IDAgLjc0MnYxNi4zNTVoLTE4LjEzM3YtMTguMTMzaDE4LjEzM3ptLTE4LjEzMyAzMi4wOTdoMTguMTMzdjEwMC45NjdoLTE4LjEzM3ptMC05MC4zMzRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ni05LjA2NnM5LjA2NiA0LjA2NyA5LjA2NiA5LjA2Ni00LjA2NyA5LjA2Ny05LjA2NiA5LjA2Ny05LjA2Ni00LjA2Ny05LjA2Ni05LjA2N3ptLTE2LjU2NyAyNC44NWMwLS40MzIuMzUyLS43ODMuNzg0LS43ODNoNDkuN2MuNDMyIDAgLjc4My4zNTIuNzgzLjc4M3Y4LjI4NGMwIDQuOTk5LTQuMDY3IDkuMDY2LTkuMDY3IDkuMDY2aC0zMy4xMzNjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2NnptLjc4NCAxOTkuNTg0Yy0uNDMzIDAtLjc4NC0uMzUyLS43ODQtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzgzLjc4M3ptMzY0LjQ2NiAwYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtOC4yODRjMC00Ljk5OSA0LjA2Ny05LjA2NiA5LjA2Ny05LjA2NmgzMy4xMzNjNSAwIDkuMDY3IDQuMDY3IDkuMDY3IDkuMDY2djguMjg0YzAgLjQzMi0uMzUyLjc4My0uNzg0Ljc4M3oiLz4KICAgIDwvZz4KPC9zdmc+",Wae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDc0LjYwOCw4MC40MzlsLTIzMi04MGMtMS42OS0wLjU4My0zLjUyNi0wLjU4My01LjIxNiwwbC0yMzIsODBDMi4xNjYsODEuNTUxLDAuMDAxLDg0LjU4NywwLDg3Ljk5OXYzODQKCQkJYzAsNC40MTgsMy41ODIsOCw4LDhoNDBjNC40MTgsMCw4LTMuNTgyLDgtOHYtMjQ4aDM2OHYyNDhjMCw0LjQxOCwzLjU4Miw4LDgsOGg0MGM0LjQxOCwwLDgtMy41ODIsOC04di0zODQKCQkJQzQ3OS45OTksODQuNTg3LDQ3Ny44MzQsODEuNTUxLDQ3NC42MDgsODAuNDM5eiBNNDAsMjE1Ljk5OXYyNDhIMTZ2LTMwNGgyNFYyMTUuOTk5eiBNNDI0LDIwNy45OTlINTZ2LTE2aDM2OFYyMDcuOTk5egoJCQkgTTQyNCwxNzUuOTk5SDU2di0xNmgzNjhWMTc1Ljk5OXogTTQ2NCw0NjMuOTk5aC0yNHYtMzA0aDI0VjQ2My45OTl6IE00NjQsMTQzLjk5OUgxNlY5My43MDNsMjI0LTc3LjI0bDIyNCw3Ny4yNFYxNDMuOTk5eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zOTUuNTc2LDM0NC43OTlsLTI5LjYtMTQuOGwtMjYuNC01Mi44Yy00LjA2MS04LjEyNS0xMi4zODEtMTMuMjQyLTIxLjQ2NC0xMy4ySDE2MS44ODgKCQkJYy05LjA5OC0wLjAzLTE3LjQyMSw1LjExNC0yMS40NjQsMTMuMjY0bC0yNi40LDUyLjhsLTI5LjYsMTQuOGMtMi43MDUsMS4zNTItNC40MTYsNC4xMTItNC40MjQsNy4xMzZ2MTEyYzAsOC44MzcsNy4xNjMsMTYsMTYsMTYKCQkJaDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTI0aDE5MnYyNGMwLDguODM3LDcuMTYzLDE2LDE2LDE2aDMyYzguODM3LDAsMTYtNy4xNjMsMTYtMTZ2LTExMgoJCQlDNDAwLjAxNywzNDguOTUyLDM5OC4zMDEsMzQ2LjE2LDM5NS41NzYsMzQ0Ljc5OXogTTE1NC43MzYsMjg0LjQyM2MxLjM0NS0yLjcxOCw0LjExOS00LjQzNCw3LjE1Mi00LjQyNGgxNTYuMjI0CgkJCWMzLjAzMy0wLjAxLDUuODA3LDEuNzA2LDcuMTUyLDQuNDI0bDIxLjc5Miw0My41NzZIMTMyLjk0NEwxNTQuNzM2LDI4NC40MjN6IE0xMjgsNDYzLjk5OUg5NnYtMjRoMzJWNDYzLjk5OXogTTM4NCw0NjMuOTk5aC0zMgoJCQl2LTI0aDMyVjQ2My45OTl6IE0zODQsNDIzLjk5OUgxMzZIOTZ2LTY3LjA1NmwyNS44ODgtMTIuOTQ0aDIzNi4yMjRMMzg0LDM1Ni45NDNWNDIzLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzE2OCwzNjcuMTYyLDE2MC44MzcsMzU5Ljk5OSwxNTIsMzU5Ljk5OXogTTE1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzUyLDM1OS45OTloLTI0Yy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoMjRjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzM2OCwzNjcuMTYyLDM2MC44MzcsMzU5Ljk5OSwzNTIsMzU5Ljk5OXogTTM1MiwzOTEuOTk5aC0yNHYtMTZoMjRWMzkxLjk5OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMjgwLDM1OS45OTloLTgwYy04LjgzNywwLTE2LDcuMTYzLTE2LDE2djE2YzAsOC44MzcsNy4xNjMsMTYsMTYsMTZoODBjOC44MzcsMCwxNi03LjE2MywxNi0xNnYtMTYKCQkJQzI5NiwzNjcuMTYyLDI4OC44MzcsMzU5Ljk5OSwyODAsMzU5Ljk5OXogTTI4MCwzOTEuOTk5aC04MHYtMTZoODBWMzkxLjk5OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Rae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMS45NzggNTExLjk3OCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjIzLjI0OGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0xNi42OTZjMC0xMi41NTcgMTAuMjE2LTIyLjc3MyAyMi43NzItMjIuNzczaDE1LjM5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtMTUuMzkyYy0yMC44MjggMC0zNy43NzIgMTYuOTQ1LTM3Ljc3MiAzNy43NzN2MTYuNjk2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMC4wMDkgMjgxLjE4N2M0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41di0yNC43NDZjMC00LjE0Mi0zLjM1Ny03LjUtNy41LTcuNXMtNy41IDMuMzU4LTcuNSA3LjV2MjQuNzQ2YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE1Ny44NTYgMjA4Ljg2djM2LjMzOWMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di0zNi4zMzljMC0zLjI5NCAyLjc5Ni02LjA3OCA2LjEwNS02LjA3OGgxMy4yMzdjNC4xNDMgMCA3LjUtMy4zNTggNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTEzLjIzN2MtMTEuNjM3IDAtMjEuMTA1IDkuNDU1LTIxLjEwNSAyMS4wNzh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyOC4xODEgMjExLjQzYzIuOTQyIDEuOTY0IDYuMzgyIDIuOTYzIDkuODg5IDIuOTYzIDIuNDQyIDAgNC45MTktLjQ4NSA3LjI4Mi0xLjQ2N2wyNC43Ni0xMC4yNTUgNjMuNTk1IDQuOTA2IDQuNjYxIDE2LjEyMWMxLjYxOSA1LjYwMSA1LjU5NiAxMC4wNzQgMTEuMTk3IDEyLjU5NSAzLjE0OCAxLjQxNyA2LjU5MSAyLjEyNCAxMC4wNDEgMi4xMjQgMy42NTMgMCA3LjMxNi0uNzkzIDEwLjY0NC0yLjM3NGwxMTcuMjkxLTU1LjcyOWM2LjQ2OS0zLjA3NCAxMS40MjUtOS4wMSAxMy4yNTgtMTUuODggMS41ODItNS45MzIuNjI5LTExLjgzNS0yLjY4NC0xNi42MTlsLTIzLjYzOS0zNC4xNjRjMTcuNzYzLTIwLjQ2MiAyMS45NDEtNDkuNTk1IDEwLjEyNy03NC40NjEtMTYuMjcyLTM0LjIwMS01Ny4zMzItNDguNzk3LTkxLjUxLTMyLjU1LTI2LjE4MSAxMi40MzUtNDEuNTkyIDQwLjAwOC0zOC45MSA2OC40NThsLTMzLjc2NiAxNi4wNDJjLS4wMDEgMC0uMDAxIDAtLjAwMSAwLTEwLjcyNSA1LjA5Ni0xNS4zOTEgMTcuMjgxLTExLjYxMSAzMC4zMTVsOC43NDUgMzAuMjQyaC00Ny4xNTdsLTI1LjA1NS0xMC4zNzdjLTUuNzYzLTIuMzcxLTEyLjE3OS0xLjc5My0xNy4xNjcgMS41NDYtNC43MTMgMy4xNTctNy40MTYgOC4yMjEtNy40MTYgMTMuODkzdjQwLjc2MWMtLjAwMiA1LjY5MSAyLjcwNiAxMC43NiA3LjQyNiAxMy45MXptMjU3LjYtNTUuMDc3Yy43OSAxLjE0Ljk2NiAyLjU1OC41MjQgNC4yMTQtLjY5MiAyLjU5My0yLjczNCA1LjAyNi01LjIwMiA2LjE5OWwtMTE3LjI5MSA1NS43MjhjLTIuNDcgMS4xNzMtNS42NDYgMS4yMjEtOC4wOTEuMTItMS41NjUtLjcwNC0yLjU1Ni0xLjc0MS0yLjk0My0zLjA4M2wtMjIuMzc2LTc3LjM4NSAxMDkuNTQyLTUyLjA0em0tODYuMjUyLTEzNi4xNjJjLjAwMSAwIC4wMDItLjAwMS4wMDMtLjAwMSAyNi43MTYtMTIuNzAzIDU4LjgwNi0xLjI4OCA3MS41MjQgMjUuNDQyIDguNjY0IDE4LjIzNyA2LjMzIDM5LjQxNy01LjQ2MyA1NS4xNzNsLS4wMjQtLjAyNi0yOC4wMDItNDAuNDdjLTcuNzI5LTExLjE2LTIwLjEzNS0xNS4yNDEtMzAuODY4LTEwLjE1N2wtMzcuODAzIDE3Ljk1OC0uMDEyLjAwM2MuMjE3LTIwLjE5IDExLjg5OS0zOS4wMTkgMzAuNjQ1LTQ3LjkyMnptLTcyLjY3NiA4NC40OTggODYuMjczLTQwLjk4NGM0Ljc1LTIuMjUxIDkuNDkyIDEuMzY2IDEyLjEwNyA1LjE0M2w2LjA2MiA4Ljc2LTEwNS4xMTUgNDkuOTM3LTIuOTY3LTEwLjI2MmMtMS4yNzgtNC40MDQtMS4wOS0xMC4zNDYgMy42NC0xMi41OTR6bS01MC40NTMgNjIuMDA5aDQ1LjQ3OGw3LjM2NSAyNS40OS01Mi44NDMtNC4wNzd6bS00MC42NDctOS45MzhjMC0uMzk1LjA3OS0uOTcyLjc2NS0xLjQzMS4yMDQtLjEzNy43NzEtLjQ1NSAxLjYxMy0uNDU1LjQyNyAwIC45MjQuMDgyIDEuNDguMzExbDIxLjc4OCA5LjAyNHYyNS44MzRsLTIxLjc5NyA5LjAyN2MtMS42NjUuNjk0LTIuNzkyLjA4NS0zLjA5Ni0uMTE4LS42NjgtLjQ0Ni0uNzU0LS45OTktLjc1NC0xLjQzMXYtNDAuNzYxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTcuOTYgNDY0LjQ3OWMtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOC03LjY3OC0yLjkyOC0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xOTAuOTIgNDY4LjI3N2MtMi45MjkgMi45MjktMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjEgMy4zNzEgMi4xOSA1LjI4MyAyLjE5IDEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyNy03LjY3OC0yLjkyNy0xMC42MDcuMDAxeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMDcuOTU3IDQ2NC40NzljLTIuOTI5IDIuOTI5LTIuOTI5IDcuNjc4IDAgMTAuNjA2bC4wMjguMDI4YzEuNDYyIDEuNDYxIDMuMzcxIDIuMTkgNS4yODMgMi4xOSAxLjkyIDAgMy44NDItLjczNiA1LjMxLTIuMjA0IDIuOTI5LTIuOTI5IDIuOTE1LTcuNjkyLS4wMTQtMTAuNjIxLTIuOTMtMi45MjgtNy42NzgtMi45MjgtMTAuNjA3LjAwMXoiLz4KICAgICAgICA8cGF0aCBkPSJtMzc2LjIyMiA0ODEuMTAyYzEuOTIgMCAzLjg0Mi0uNzM2IDUuMzEtMi4yMDQgMi45MjktMi45MjkgMi45MTUtNy42OTItLjAxNC0xMC42MjEtMi45My0yLjkyOS03LjY3OC0yLjkyOS0xMC42MDcgMHMtMi45MjkgNy42NzggMCAxMC42MDZsLjAyOC4wMjhjMS40NjIgMS40NjIgMy4zNzEgMi4xOTEgNS4yODMgMi4xOTF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3MC43ODQgNDA5LjM4NWMyMi43MTMtMi4yNzggNDEuMTkxLTIyLjc5MiA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcwOS0xLjU0OS03LjIzNC00LjI0OC05LjY3MS0yLjY5Mi0yLjQzMS02LjM1Mi0zLjYwOS0xMC4wMS0zLjIzM2wtMjguODEgMi44OTJjLTkuOTIzIDEuMDEtMTkuMDM3IDUuNTAyLTI2LjE1MSAxMi4xNTJsLjA2My01LjE1NGMwLTIyLjkwMy0xOC4zMzctNDMuMjY2LTQxLjA1NC00NS41NzhsLTI4Ljc4My0yLjg5Yy0zLjY4Ny0uMzc5LTcuMzM0LjgwMi0xMC4wMjUgMy4yMzItMi42OTkgMi40MzgtNC4yNDggNS45NjItNC4yNDggOS42NzF2MjguNzQzYzAgMjIuOTAzIDE4LjQ3MyA0My40MTcgNDEuMTg1IDQ1LjcyOWwyNy44NjMgMi44MTR2NTMuOTk2aC01NC41MTljLTQuMTQzIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTcgNy41IDcuNSA3LjVoMTE5LjMwNGMyLjQ0NCAwIDQuNDM0IDEuOTc2IDQuNDM0IDQuNDA1djQ1LjUyM2MwIDIuNDAzLTIuMDMgNC40MzQtNC40MzQgNC40MzRoLTQ3My4xMzRjLTIuMzg4IDAtNC40MDUtMi4wMy00LjQwNS00LjQzNHYtNDUuNTIzYzAtMi4zODggMi4wMTgtNC40MDUgNC40MDUtNC40MDVoMzE5LjE5MmM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWgtNzUuMTI2di0xNS4zOTdsMjguMDU3LTIuODMzYzIyLjcxMy0yLjI3OCA0MS4xOS0yMi43OTIgNDEuMTktNDUuNzI5di0yOC43NDNjMC0zLjcwNS0xLjU1Mi03LjIyOS00LjI1Ny05LjY2OS0yLjctMi40MzUtNi4zNTktMy42MTItMTAuMDAxLTMuMjM1bC0yOC44MSAyLjg5MmMtOS45MzQgMS4wMTEtMTkuMDU4IDUuNTA3LTI2LjE4IDEyLjE2MyAwIDAgLjE5OS00LjQyOS4xOTktNS4wMTMgMC0yMi45MDctMTguNDc0LTQzLjQyLTQxLjE5LTQ1LjcyOWwtMjguNzc2LTIuODljLTMuNjY2LS4zNzUtNy4zMDguNzk2LTkuOTk3IDMuMjIyLTIuNzA0IDIuNDM5LTQuMjU1IDUuOTY3LTQuMjU1IDkuNjgxdjI4Ljc0M2MwIDIyLjkwMyAxOC40NzQgNDMuNDE3IDQxLjE4NiA0NS43MjlsMjcuODM0IDIuODEzdjUzLjk5NmgtMTY0LjI1M3YtMTUuMzk4bDI4LjAyNi0yLjgzMmMyMi43MTMtMi4yNzQgNDEuMTkxLTIyLjc4OSA0MS4xOTEtNDUuNzI5di0yOC43NDNjMC0zLjcxMy0xLjU1MS03LjI0Mi00LjI1NS05LjY4MS0yLjY4OS0yLjQyNi02LjMzMy0zLjYwNC05Ljk3NS0zLjIyNGwtMjguODEgMi44OTJjLTkuOTM0IDEuMDExLTE5LjA1OCA1LjUwNy0yNi4xNzkgMTIuMTYyIDAgMCAuMTk4LTQuNDMuMTk4LTUuMDEyIDAtMjIuOTAzLTE4LjQ3NC00My40MTctNDEuMTktNDUuNzI5bC0yOC43NzYtMi44OWMtMy42Ni0uMzc0LTcuMzA2Ljc5NS05Ljk5NyAzLjIyMi0yLjcwNCAyLjQzOS00LjI1NSA1Ljk2OC00LjI1NSA5LjY4MXYyOC43NDNjMCAyMi45MDMgMTguNDc0IDQzLjQxNyA0MS4xODYgNDUuNzI5bDI3LjgzNSAyLjgxM3YzMS43OTUgMjIuMjAxaC00OS44MTJjLTEwLjcgMC0xOS40MDUgOC43MDUtMTkuNDA1IDE5LjQwNXY0NS41MjNjMCAxMC43MTYgOC43MDUgMTkuNDM0IDE5LjQwNSAxOS40MzRoNDczLjEzNGMxMC43MTYgMCAxOS40MzQtOC43MTggMTkuNDM0LTE5LjQzNHYtNDUuNTIzYzAtMTAuNy04LjcxOC0xOS40MDUtMTkuNDM0LTE5LjQwNWgtNDkuNzg1di0xNS4zOTh6bS0yOC4wMjgtMzguNzU2YzAtMTUuMTcxIDEyLjY3Mi0yOS4yNzkgMjcuNjYtMzAuODA1bDI2LjU1OS0yLjY2NnYyNi40OThjMCAxNS4xOTItMTIuNjggMjkuMjk5LTI3LjY5MyAzMC44MDVsLTE1LjQxNSAxLjU1OCAxOS4wNjktMjEuMDk3YzIuNzc3LTMuMDczIDIuNTM3LTcuODE2LS41MzUtMTAuNTkzLTMuMDcyLTIuNzc1LTcuODE0LTIuNTM5LTEwLjU5NC41MzVsLTE5LjA1MSAyMS4wNzd6bS0xNS0yMy40NTctMTguODgtMjAuODg4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M2wxOS4wNjcgMjEuMDk2LTE1LjQwOC0xLjU1NmMtMTUuMDE0LTEuNTI4LTI3LjY5OC0xNS42MzUtMjcuNjk4LTMwLjgwNXYtMjYuNDk3bDI2LjU0OCAyLjY2NmMxNS4wMTUgMS41MjggMjcuNSAxNS42MzUgMjcuNSAzMC44MDV6bS0xNjQuMjgyIDIzLjQ1N2MwLTE1LjE3IDEyLjY4NS0yOS4yNzcgMjcuNjg4LTMwLjgwNWwyNi41NTktMi42NjZ2MjYuNDk4YzAgMTUuMTkyLTEyLjY3OSAyOS4yOTktMjcuNjkyIDMwLjgwNWwtMTUuNDE0IDEuNTU3IDE5LjA2OC0yMS4wOTZjMi43NzctMy4wNzMgMi41MzctNy44MTYtLjUzNS0xMC41OTMtMy4wNzItMi43NzUtNy44MTQtMi41MzktMTAuNTk0LjUzNWwtMTkuMDc5IDIxLjEwOHYtMTUuMzQzem0tNDQuOTgtMzQuMjg2IDE5LjA2OSAyMS4wOTctMTUuNDA5LTEuNTU3Yy0xNS4wMTUtMS41MjgtMjcuNjk5LTE1LjYzNS0yNy42OTktMzAuODA1di0yNi40OTVsMjYuNTIxIDIuNjYzYzE1LjAxNSAxLjUyNiAyNy40OTkgMTUuNjMzIDI3LjQ5OSAzMC44MDV2MTUuMDkxbC0xOC44NTItMjAuODU3Yy0yLjc3OC0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41Mi0uNTM1IDEwLjU5M3ptLTEzNC4yNzMgMzQuMjg2YzAtMTUuMTcgMTIuNjg1LTI5LjI3NyAyNy42ODgtMzAuODA1bDI2LjUzLTIuNjYzdjI2LjQ5NWMwIDE1LjE5NS0xMi42NzkgMjkuMzAxLTI3LjY5MiAzMC44MDVsLTE1LjQwNSAxLjU1NyAxOS4wODMtMjEuMDk0YzIuNzc5LTMuMDcyIDIuNTQyLTcuODE0LS41My0xMC41OTMtMy4wNjgtMi43NzgtNy44MTMtMi41NDItMTAuNTkzLjUzbC0xOS4wODEgMjEuMDkxem0tNDQuOTgxLTM0LjI4NiAxOS4wNjkgMjEuMDk3LTE1LjQwOS0xLjU1OGMtMTUuMDE1LTEuNTI4LTI3LjY5OS0xNS42MzUtMjcuNjk5LTMwLjgwNXYtMjYuNDk1bDI2LjUyIDIuNjYzYzE1LjAxNSAxLjUyOCAyNy41MDEgMTUuNjM1IDI3LjUwMSAzMC44MDV2MTUuMDkybC0xOC44NTMtMjAuODU4Yy0yLjc3OS0zLjA3Mi03LjUyMS0zLjMxMi0xMC41OTQtLjUzNXMtMy4zMTMgNy41MjEtLjUzNSAxMC41OTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Jae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0yNi42MjIgMTUxLjc0MWgxMC44djM1LjY4MWMwIDExLjEyNSA5LjA1MSAyMC4xNzUgMjAuMTc1IDIwLjE3NWgxNC44MTRjNC43OTkgMCA5LjIwOC0xLjY5MSAxMi42NzUtNC41IDMuNDY3IDIuODA5IDcuODc1IDQuNSAxMi42NzUgNC41aDE0LjgxNGMxMS4xMjQgMCAyMC4xNzUtOS4wNSAyMC4xNzUtMjAuMTc1di0zOS45NGgyMC4xMzl2MTg1LjExNWgtMjMuNDU3Yy0xMC45MzggMC0xOS44MzcgOC44OTgtMTkuODM3IDE5LjgzNnYzNy4zMjRjMCA5Ljk2OCA3LjM5OCAxOC4yMTkgMTYuOTg4IDE5LjYwOHY4Ny41NzZjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzVjOC4zMDQgMCAxNS4wNTktNi43NTUgMTUuMDU5LTE1LjA1OXYtNTMuODQ0aDUxLjQ2NGM0LjE0MyAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1Ny03LjUtNy41LTcuNWMtOS43NjUgMC04NS43ODUgMC05Ni45MTcgMHYtMTguNTAzaDIyOC44MzR2MTguNTAzYy0xMS4xMzcgMC04Ny4yMTcgMC05Ni45MTcgMC00LjE0MyAwLTcuNSAzLjM1OC03LjUgNy41czMuMzU3IDcuNSA3LjUgNy41aDUxLjQ2NXY1My44NDRjMCA4LjMwNCA2Ljc1NSAxNS4wNTkgMTUuMDU5IDE1LjA1OWgzMC4zMzRjOC4zMDQgMCAxNS4wNi02Ljc1NSAxNS4wNi0xNS4wNTkgMC0xMC4xNTQgMC03Ny4wMzYgMC04Ny41NzYgOS41OS0xLjM4OSAxNi45ODgtOS42NCAxNi45ODgtMTkuNjA4di0zNy4zMjRjMC0xMC45MzgtOC44OTgtMTkuODM2LTE5LjgzNy0xOS44MzZoLTIzLjQ1N3YtNzUuMDU4YzAtNC4xNDItMy4zNTctNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djc1LjA1OGgtMjUuMTY0YzAtMjEuNzEzIDAtMTYyLjkxMiAwLTE4NS4xMTVoMjUuMTY0djc1LjA1OGMwIDQuMTQyIDMuMzU3IDcuNSA3LjUgNy41czcuNS0zLjM1OCA3LjUtNy41di03NS4wNThoMjAuMTM5djM5Ljk0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1aDE0LjgxNGM0Ljc5OSAwIDkuMjA4LTEuNjkxIDEyLjY3NS00LjUgMy40NjcgMi44MDkgNy44NzUgNC41IDEyLjY3NCA0LjVoMTQuODE1YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTM1LjY4MWgxMC44YzExLjEyNCAwIDIwLjE3NS05LjA1IDIwLjE3NS0yMC4xNzV2LTE0LjgxNGMwLTExLjEyNS05LjA1MS0yMC4xNzUtMjAuMTc1LTIwLjE3NWgtMTAuOHYtMzUuNjgxYzAtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTVjLTQuNzk5IDAtOS4yMDcgMS42OTEtMTIuNjc0IDQuNS0zLjQ2Ny0yLjgwOS03Ljg3NS00LjUtMTIuNjc1LTQuNWgtMTQuODE0Yy0xMS4xMjQgMC0yMC4xNzUgOS4wNS0yMC4xNzUgMjAuMTc0djM5Ljk0MWgtMjAuMTM5di04MC42NjNjLS4wMDEtMTEuMTI0LTkuMDUxLTIwLjE3NC0yMC4xNzUtMjAuMTc0aC0xNC44MTRjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzR2NTAuNTM0aC05NS44OTZ2LTUwLjUzNGMwLTExLjEyNC05LjA1LTIwLjE3NC0yMC4xNzQtMjAuMTc0aC0xNC44MTVjLTExLjEyNCAwLTIwLjE3NCA5LjA1LTIwLjE3NCAyMC4xNzR2ODAuNjYzaC0yMC4xMzl2LTM5Ljk0MWMwLTExLjEyNC05LjA1MS0yMC4xNzQtMjAuMTc1LTIwLjE3NGgtMTQuODE0Yy00Ljc5OSAwLTkuMjA4IDEuNjkxLTEyLjY3NSA0LjUtMy40NjctMi44MDktNy44NzUtNC41LTEyLjY3NS00LjVoLTE0LjgxNGMtMTEuMTI0IDAtMjAuMTc1IDkuMDUtMjAuMTc1IDIwLjE3NHYzNS42ODFoLTEwLjhjLTExLjEyNCAwLTIwLjE3NSA5LjA1LTIwLjE3NSAyMC4xNzV2MTQuODE0YzAgMTEuMTI1IDkuMDUxIDIwLjE3NSAyMC4xNzUgMjAuMTc1em0xNDEuMjY3LTQuMjZoMjUuMTYzdjE4NS4xMTVoLTI1LjE2M3ptNDAuMTYzIDY4LjcxMmg5NS44OTZ2NzYuOTAxaC05NS44OTZ6bTk1Ljg5NS0xNWgtOTUuODk2di0yMy41ODNoOTUuODk2em0tMTMxLjkxOSAyNDEuOTA0LS4wNTEgNTMuOTAzLTMwLjM5My0uMDM5YzAtLjAwMS0uMDAxLS4wMDgtLjAwMS0uMDJ2LTUzLjg0NHptMTk4LjMyOSA1My45MDMtMzAuMzkzLS4wNTl2LTUzLjg0NGgzMC40NDV6bTEyLjIxMS0xNDkuNDAzYzIuNjY3IDAgNC44MzcgMi4xNjkgNC44MzcgNC44MzZ2MzcuMzI0YzAgMi42NjctMi4xNyA0LjgzNi00LjgzNyA0LjgzNi0xMy4yMDIgMC0yNDEuMjU2IDAtMjUzLjEzNyAwLTIuNjY3IDAtNC44MzctMi4xNjktNC44MzctNC44MzZ2LTM3LjMyNGMwLTIuNjY3IDIuMTctNC44MzYgNC44MzctNC44MzZ6bS0xNzQuNTE2LTE1di0yNC41MDNoOTUuODk2djI0LjUwM3ptOTUuODk1LTE2OS45ODdoLTk1Ljg5NnYtMTUuMTI4aDk1Ljg5NnptLTExNS45NzctMzAuMTI5di0xNi42NDVoMTM2LjA2djE2LjY0NWMtNC42NTMgMC0xMzAuNDExIDAtMTM2LjA2IDB6bTI5Ny40MDgtMjAuOTA0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NXYxNC44MTRjMCAyLjgwNS0yLjM3IDUuMTc1LTUuMTc1IDUuMTc1aC0xMC44di0yNS4xNjR6bS00NS43OS01NS44NTVoMTQuODE1YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE1Yy0yLjgwNSAwLTUuMTc0LTIuMzctNS4xNzQtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM2OS01LjE3NCA1LjE3NC01LjE3NHptLTQ1LjMzOCA1LjE3NGMwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODA1IDAgNS4xNzUgMi4zNyA1LjE3NSA1LjE3NHYxMjYuNTI2YzAgMi44MDUtMi4zNyA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtMi45MDQgMC0xMjIuNjAyIDAtMTI2LjUyNnptLTE1IDcxLjU4NWMtMTMuNDYzIDAtMjUuMTg2IDAtNDAuMjIxIDB2LTE2LjY0NWg0MC4yMjF6bS02MC4zMDMtMTEyLjMwN2MwLTIuODA1IDIuMzctNS4xNzQgNS4xNzUtNS4xNzRoMTQuODE0YzIuODU0IDAgNS4xNzUgMi4zMjEgNS4xNzUgNS4xNzR2ODAuNjYzYy05LjEwNiAwLTE2LjA1OCAwLTI1LjE2NCAwIDAtOS4zNzMgMC03MC44ODUgMC04MC42NjN6bS0xNSA2NS41MzR2MTUuMTI4aC05NS44OTZ2LTE1LjEyOHptLTEzNi4wNTgtNjUuNTM0YzAtMi44MDUgMi4zNjktNS4xNzQgNS4xNzQtNS4xNzRoMTQuODE1YzIuODA1IDAgNS4xNzQgMi4zNyA1LjE3NCA1LjE3NHY4MC42NjNjLTkuMTA0IDAtMTYuMDM5IDAtMjUuMTYzIDB6bTUuMDgxIDk1LjY2M3YxNi42NDVjLTE1LjI3MyAwLTI2LjQ2IDAtNDAuMjIgMHYtMTYuNjQ1em0tNzUuMjA5LTYwLjExNWgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjgwNSAwLTUuMTc1LTIuMzctNS4xNzUtNS4xNzV2LTEyNi41MjZjMC0yLjgwNSAyLjM3LTUuMTc0IDUuMTc1LTUuMTc0em0tNDUuMzM5IDUuMTc0YzAtMi44MDUgMi4zNy01LjE3NCA1LjE3NS01LjE3NGgxNC44MTRjMi44MDUgMCA1LjE3NSAyLjM3IDUuMTc1IDUuMTc0djEyNi41MjZjMCAyLjg1NC0yLjMyMSA1LjE3NS01LjE3NSA1LjE3NWgtMTQuODE0Yy0yLjg1NCAwLTUuMTc1LTIuMzIxLTUuMTc1LTUuMTc1IDAtNS42NzkgMC0xMjAuODI3IDAtMTI2LjUyNnptLTMwLjk3NSA1NS44NTZjMC0yLjg1NCAyLjMyMS01LjE3NSA1LjE3NS01LjE3NWgxMC44djI1LjE2NGgtMTAuOGMtMi44NTQgMC01LjE3NS0yLjMyMS01LjE3NS01LjE3NXoiLz4KICAgIDwvZz4KPC9zdmc+",Bae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDcyLDI4MGgtMTZWMTY2LjRjMC0xMi05LjYtMjIuNC0yMi40LTIyLjRoLTRjLTEyLDAtMjIuNCw5LjYtMjIuNCwyMi40VjI4MGgtMjR2LTE2YzAtMTMuNi0xMC40LTI0LTI0LTI0SDEyMAoJCQljLTEzLjYsMC0yNCwxMC40LTI0LDI0djE2SDcyVjE2Ni40YzAtMTItOS42LTIyLjQtMjIuNC0yMi40aC0zLjJjLTEyLjgsMC0yMi40LDkuNi0yMi40LDIyLjRWMjgwSDhjLTQuOCwwLTgsMy4yLTgsOHMzLjIsOCw4LDhoOAoJCQl2MTQ0YzAsNC44LDMuMiw4LDgsOGg4djhjMCw0LjgsMy4yLDgsOCw4czgtMy4yLDgtOHYtOGgzODR2OGMwLDQuOCwzLjIsOCw4LDhzOC0zLjIsOC04di04aDhjNC44LDAsOC0zLjIsOC04VjI5Nmg4CgkJCWM0LjgsMCw4LTMuMiw4LThTNDc2LjgsMjgwLDQ3MiwyODB6IE00MzAuNCwxNjBoNGMzLjIsMCw2LjQsMi40LDYuNCw2LjRWMjgwaC0xNlYxNjYuNEg0MjRDNDI0LDE2My4yLDQyNi40LDE2MCw0MzAuNCwxNjB6CgkJCSBNMTEyLDI2NGMwLTQuOCwzLjItOCw4LThoMjQwYzQuOCwwLDgsMy4yLDgsOHYxNkgxMTJWMjY0eiBNNDAsMTY2LjRjMC00LDIuNC02LjQsNi40LTYuNGg0YzMuMiwwLDUuNiwyLjQsNS42LDYuNFYyODBINDBWMTY2LjR6CgkJCSBNMjMyLDQzMkgzMnYtNjRoMjAwVjQzMnogTTQ0OCw0MzJIMjQ4di02NGgyMDBWNDMyeiBNNDQ4LDM1MkgzMnYtNTZoNDE2VjM1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjA4LDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzIxNiwzODcuMiwyMTIuOCwzODQsMjA4LDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMjcyLDM4NGMtNC44LDAtOCwzLjItOCw4djE2YzAsNC44LDMuMiw4LDgsOHM4LTMuMiw4LTh2LTE2QzI4MCwzODcuMiwyNzYuOCwzODQsMjcyLDM4NHoiLz4KICAgICAgICA8cGF0aCBkPSJNMzg0LDE2SDk2Yy00LjgsMC04LDMuMi04LDh2MTYwYzAsNC44LDMuMiw4LDgsOGgyODhjNC44LDAsOC0zLjIsOC04VjI0QzM5MiwxOS4yLDM4OC44LDE2LDM4NCwxNnogTTM3NiwxNzZIMTA0VjMyaDI3MgoJCQlWMTc2eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTIsMTQ0aC04Yy00LjgsMC04LDMuMi04LDhzMy4yLDgsOCw4aDhjNC44LDAsOC0zLjIsOC04UzM1Ni44LDE0NCwzNTIsMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNTcuNiw1MC40Yy0zLjItMy4yLTgtMy4yLTExLjIsMGwtMjQsMjRjLTMuMiwzLjItMy4yLDgsMCwxMS4yYzMuMiwzLjIsOCwzLjIsMTEuMiwwbDI0LTI0CgkJCUMxNjAuOCw1OC40LDE2MC44LDUzLjYsMTU3LjYsNTAuNHoiLz4KICAgICAgICA8cGF0aCBkPSJNMTk3LjYsNTAuNGMtMy4yLTMuMi04LTMuMi0xMS4yLDBsLTU2LDU2Yy0zLjIsMy4yLTMuMiw4LDAsMTEuMmMzLjIsMy4yLDgsMy4yLDExLjIsMGw1Ni01NgoJCQlDMjAwLjgsNTguNCwyMDAuOCw1My42LDE5Ny42LDUwLjR6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Fae="PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgd2lkdGg9IjQ4MHB0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNDcyIDk2aC0xNDRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTg0aC0xNzZ2LTI0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0djE2aDE2djE2aC0zMnYtMzJoLTE2djMyaC0zMnYtMTZoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYyNGgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2MTc2YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoNDY0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTM2OGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tMTM2IDE2aDEyOHY5NmgtMTI4em0tMTYgMjI0aC0xNDR2LTMyaDE0NHptLTMwNC0zMmgxNDR2MzJoLTE0NHptMCA0OGgxNDR2MTEyaC0xNDR6bTE2MCAwaDY0djExMmgtNjR6bTgwIDBoNjR2MTEyaC02NHptODAgMTEydi0yNDBoMTI4djI0MHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM1MiAxNDRoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzUyIDI1NmgxNnYzMmgtMTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im00OCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im04MCAzMjBjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOHMtOC0zLjU4MjAzMS04LTggMy41ODIwMzEtOCA4LTggOCAzLjU4MjAzMSA4IDh6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0xMTIgMzIwYzAgNC40MTc5NjktMy41ODIwMzEgOC04IDhzLTgtMy41ODIwMzEtOC04IDMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQ0IDMyMGMwIDQuNDE3OTY5LTMuNTgyMDMxIDgtOCA4cy04LTMuNTgyMDMxLTgtOCAzLjU4MjAzMS04IDgtOCA4IDMuNTgyMDMxIDggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTggMTUyaDE2MGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGMwLTIuMTIxMDk0LS44NDM3NS00LjE1NjI1LTIuMzQzNzUtNS42NTYyNWwtMzItMzJjLTEuNS0xLjUtMy41MzUxNTYtMi4zNDM3NS01LjY1NjI1LTIuMzQzNzVoLTh2LTcyYzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTY0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djcyaC04Yy0yLjEyMTA5NCAwLTQuMTU2MjUuODQzNzUtNS42NTYyNSAyLjM0Mzc1bC0zMiAzMmMtMS41IDEuNS0yLjM0Mzc1IDMuNTM1MTU2LTIuMzQzNzUgNS42NTYyNXYyNGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em01Ni0xMzZoNDh2NjRoLTQ4em0tNDggMTA3LjMxMjUgMjcuMzEyNS0yNy4zMTI1aDg5LjM3NWwyNy4zMTI1IDI3LjMxMjV2MTIuNjg3NWgtMTQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTM2IDM2OGgtOTZjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg5NmM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di02NGMwLTQuNDE3OTY5LTMuNTgyMDMxLTgtOC04em0tOCA2NGgtODB2LTQ4aDgwem0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjMyIDMxMmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDggMzkyaDE2djMyaC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTI3MiAzOTJoMTZ2MzJoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTkyIDIwMGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi0xNTMuMTM2NzE5aC0xNnYxNTMuMTM2NzE5Yy0xNC4wODU5MzggMy42MzY3MTktMjMuOTQ1MzEyIDE2LjMxNjQwNi0yNCAzMC44NjMyODF2OGMwIDQuNDE3OTY5IDMuNTgyMDMxIDggOCA4em0yNC0zMmM4LjgzNTkzOCAwIDE2IDcuMTY0MDYyIDE2IDE2aC0zMmMwLTguODM1OTM4IDcuMTY0MDYyLTE2IDE2LTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjQ4IDEzNmg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di04Yy0uMDU0Njg4LTE0LjU0Njg3NS05LjkxNDA2Mi0yNy4yMjY1NjItMjQtMzAuODYzMjgxdi04OS4xMzY3MTloLTE2djg5LjEzNjcxOWMtMTQuMDg1OTM4IDMuNjM2NzE5LTIzLjk0NTMxMiAxNi4zMTY0MDYtMjQgMzAuODYzMjgxdjhjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOHptMjQtMzJjOC44MzU5MzggMCAxNiA3LjE2NDA2MiAxNiAxNmgtMzJjMC04LjgzNTkzOCA3LjE2NDA2Mi0xNiAxNi0xNnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Gae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MTAuNDE3IDIzMy4yMjUtNTguNjQ0LTExNy4yNzljLTE1LjkzOS0zMS44NzctNDcuOTc4LTUxLjY4LTgzLjYyLTUxLjY4LTguNTg2IDAtMTYuOTg0IDEuMTg4LTI1LjAzMiAzLjQzNy4xMDUtMS40ODkuMTc4LTIuOTg4LjE3OC00LjUwMyAwLTM0Ljg0OS0yOC4zNTEtNjMuMi02My4yLTYzLjJzLTYzLjIgMjguMzUyLTYzLjIgNjMuMmMwIDMwLjk5MyAyMi40MzIgNTYuODI4IDUxLjkwOSA2Mi4xNjlsLTYxLjM2NiA2MS40N2MtNi44NzUgNi44ODYtMjEuODcxIDI3LjgyLTEwLjMzMyA1NC40Ni0xLjcwNS0uMTkxLTMuNDIxLS4yOTktNS4xNDQtLjI5OS0yMy4wODcgMC00Mi4zMzYgMTYuNjktNDYuMzUxIDM4LjYzNS03Ljc0LTQuMTQ0LTE2LjU3My02LjUwMS0yNS45NDktNi41MDEtMzAuNDE5IDAtNTUuMTY3IDI0Ljc0OC01NS4xNjcgNTUuMTY3IDAgOS4wNjMgMi4yMTEgMTcuNjE1IDYuMSAyNS4xNjdoLTQwLjU5OHYtMzM4LjQ2OGMwLTguMjg0LTYuNzE2LTE1LTE1LTE1cy0xNSA2LjcxNi0xNSAxNXY0ODJjMCA4LjI4NCA2LjcxNiAxNSAxNSAxNXMxNS02LjcxNiAxNS0xNXYtNDkuMjY3aDMwNi41NjNjOC4yODQgMCAxNS02LjcxNiAxNS0xNXYtNjQuMjY3YzAtOC4yODQtNi43MTYtMTUtMTUtMTVoLTM2LjQxMmMzLjI3NC04LjM5NSAzLjIxNC0xNS4yNjMgMy4yMTQtMTguMiAyOC40NjkgMCA0OC4yLTIyLjA5OCA0OC4yLTQ3LjEzMyAwLTI1Ljk4OS0yMS4xNDQtNDcuMTMzLTQ3LjEzMy00Ny4xMzNoLTEyLjMwNGw1NS45MDQtNTYuMDg2IDUzLjczNiAxMDYuNzc3LS4xMDMgMjA1LjMwMWMtLjAwMiAzLjk3OSAxLjU3OCA3Ljc5NiA0LjM5MSAxMC42MTEgMi44MTMgMi44MTQgNi42MyA0LjM5NiAxMC42MDkgNC4zOTZoODAuMzM1YzguMjg0IDAgMTUtNi43MTYgMTUtMTV2LTI1Ny4wNjZjMC0yLjMyOS0uNTQyLTQuNjI1LTEuNTgzLTYuNzA4em0tMjYzLjUxNy0xNzAuMDI1YzAtMTguMzA3IDE0Ljg5NC0zMy4yIDMzLjItMzMuMnMzMy4yIDE0Ljg5NCAzMy4yIDMzLjItMTQuODk0IDMzLjItMzMuMiAzMy4yYy0xOC4zMDcgMC0zMy4yLTE0Ljg5My0zMy4yLTMzLjJ6bS0xMjcuMjMzIDIzOS45MzNjMTMuODc3IDAgMjUuMTY3IDExLjI5IDI1LjE2NyAyNS4xNjdzLTExLjI5IDI1LjE2Ny0yNS4xNjcgMjUuMTY3LTI1LjE2Ny0xMS4yOS0yNS4xNjctMjUuMTY3IDExLjI5LTI1LjE2NyAyNS4xNjctMjUuMTY3em0yMDEuODk2IDgwLjMzNHYzNC4yNjdoLTI5MS41NjN2LTM0LjI2N3ptLTE3LjEzLTExMi40NjdjOS40NDcgMCAxNy4xMzMgNy42ODYgMTcuMTMzIDE3LjEzMyAwIDkuNTgzLTcuODE0IDE3LjEzMy0xNy4xMzMgMTcuMTMzaC0xNi4wNjdjLTguMjg0IDAtMTUgNi43MTYtMTUgMTV2MTYuMDY3YzAgOS41ODMtNy44MTQgMTcuMTMzLTE3LjEzMyAxNy4xMzNoLTY0LjI2N2MtOS40NDcgMC0xNy4xMzMtNy42ODYtMTcuMTMzLTE3LjEzM3YtNDguMmMwLTkuNDQ3IDcuNjg2LTE3LjEzMyAxNy4xMzMtMTcuMTMzIDkuMjk3IDAgMTcuMTMzIDcuNTI2IDE3LjEzMyAxNy4xMzN2MTYuMDY3YzAgOC4yODQgNi43MTYgMTUgMTUgMTVzMTUtNi43MTYgMTUtMTV2LTE2LjA2N2MwLTkuNDI5IDcuNjE2LTE3LjEzMyAxNy4xMzMtMTcuMTMzem0xNzcuNTY3IDIxMWgtNTAuMzI2bC4wOTctMTkzLjg1OWMuMDAxLTIuMzQ0LS41NDctNC42NTYtMS42MDEtNi43NWwtNjQuNjg1LTEyOC41MzNjLTIuMTY3LTQuMzA1LTYuMjY5LTcuMzA2LTExLjAyNy04LjA2OC00Ljc2MS0uNzYyLTkuNTk0LjgxLTEyLjk5NSA0LjIyMmwtODYuNDU4IDg2LjczOWMtNy4yNjMgNy4yOTEtMTkuMTE1IDYuODA3LTI2LjMwOC0uMzg2LTcuMzgxLTcuMzgxLTcuNzI4LTE5LjYxMS0uMDIyLTI3LjMyOWw5NS4yNy05NS40MzFjMTEuNzk5LTExLjgyNSAyNy41LTE4LjMzNyA0NC4yMTctMTguMzM3IDI0LjE5OSAwIDQ1Ljk1NSAxMy40NDggNTYuNzc5IDM1LjA5N2w1Ny4wNTkgMTE0LjEwOXoiLz4KICAgIDwvZz4KPC9zdmc+",Hae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTkyLjU0NSwxODUuMDljNTEuMDI5LDAsOTIuNTQ1LTQxLjUxNiw5Mi41NDUtOTIuNTQ1UzE0My41NzQsMCw5Mi41NDUsMFMwLDQxLjUxNiwwLDkyLjU0NSAgICBTNDEuNTE2LDE4NS4wOSw5Mi41NDUsMTg1LjA5eiBNOTIuNTQ1LDIwYzQwLjAwMSwwLDcyLjU0NSwzMi41NDQsNzIuNTQ1LDcyLjU0NXMtMzIuNTQ0LDcyLjU0NS03Mi41NDUsNzIuNTQ1ICAgIFMyMCwxMzIuNTQ2LDIwLDkyLjU0NVM1Mi41NDQsMjAsOTIuNTQ1LDIweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDAuNTAxLDExNC41MjZjMS45NTIsMS45NDUsNC41MDYsMi45MTcsNy4wNiwyLjkxN2MyLjU2NCwwLDUuMTMtMC45OCw3LjA4My0yLjk0ICAgIGMzLjg5OC0zLjkxMiwzLjg4OC0xMC4yNDQtMC4wMjMtMTQuMTQzbC0xMi4wMDgtMTEuOTY4VjQ0YzAtNS41MjItNC40NzgtMTAtMTAtMTBzLTEwLDQuNDc4LTEwLDEwdjQ4LjU0NSAgICBjMCwyLjY1OCwxLjA1OSw1LjIwNywyLjk0LDcuMDgzTDEwMC41MDEsMTE0LjUyNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNTAyLDMzMmgtNjEuNTQ3Yy04LjQ2LTEyLjAzNC0yMS4xNzItMjAuNTU4LTM1LjY3MS0yMy43MjhsLTQzLjk2NC05LjYxMyAgICBjMTcuOTkxLTEyLjEzNCwyOS44NDctMzIuNzAyLDI5Ljg0Ny01NS45ODh2LTI0LjQxN3YtMTEuMjk3di0yLjU0MmMwLTM3LjIxMi0zMC4yNzQtNjcuNDg2LTY3LjQ4Ni02Ny40ODYgICAgcy02Ny40ODYsMzAuMjc0LTY3LjQ4Niw2Ny40ODZ2Mi41NDJ2MTEuMjk3djI0LjQxN2MwLDIzLjI1NiwxMS44MjUsNDMuODAzLDI5Ljc3OCw1NS45NDNsLTQzLjkzNiw5LjYzOSAgICBjLTEuODc3LDAuNDEyLTMuNzIyLDAuOTE3LTUuNTM1LDEuNTAyVjIyN2MwLTUuNTIyLTQuNDc4LTEwLTEwLTEwaC02OGMtNS41MjIsMC0xMCw0LjQ3OC0xMCwxMHM0LjQ3OCwxMCwxMCwxMGg1OHYxNDBoLTY4di01MCAgICBjMC0xNi41NDItMTMuNDU4LTMwLTMwLTMwcy0zMCwxMy40NTgtMzAsMzB2NTBIMjBWMjM3aDU4YzUuNTIyLDAsMTAtNC40NzgsMTAtMTBzLTQuNDc4LTEwLTEwLTEwSDEwYy01LjUyMiwwLTEwLDQuNDc4LTEwLDEwdjE2MCAgICBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg3OHYxOWgtMWMtMTcuMDk0LDAtMzEsMTMuOTA2LTMxLDMxdjVIMTBjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDBjMCw1LjUyMiw0LjQ3OCwxMCwxMCwxMGg0OTIgICAgYzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTQwdi00MHYtNDB2LTQwQzUxMiwzMzYuNDc4LDUwNy41MjIsMzMyLDUwMiwzMzJ6IE00NDEuMTc5LDQ1MkgzODR2LTIwaDEwOHYyMEg0NDEuMTc5eiBNNDkyLDQxMkgzODQgICAgdi0yMGgxMDhWNDEyeiBNNDkyLDM3MkgzODR2LTIwaDUwLjg3NGMwLjAzLDAsMC4wNiwwLjAwNiwwLjA4OSwwLjAwNmMwLjAzMSwwLDAuMDYzLTAuMDA2LDAuMDk0LTAuMDA2SDQ5MlYzNzJ6IE0yNzUuNjkyLDIwNC40MTYgICAgYzAtMjYuMTg0LDIxLjMwMy00Ny40ODYsNDcuNDg2LTQ3LjQ4NmMyNC45MzMsMCw0NS40MzksMTkuMzE0LDQ3LjM0Miw0My43NjdsLTIzLjI0Ni0xMy42NTcgICAgYy00LjIxMS0yLjQ3NS05LjU5My0xLjU0NC0xMi43MywyLjE5OWMtMTAuMTI2LDEyLjA4NS0yNC45NzcsMTkuMDE3LTQwLjc0NCwxOS4wMTdoLTE4LjEwN3YtMS4yOTdWMjA0LjQxNnogTTI3NS42OTIsMjI4LjI1NSAgICBIMjkzLjhjMTguODI1LDAsMzYuNy03LjE3OSw1MC4yMDUtMTkuOTRsMjYuNjYsMTUuNjYzdjE4LjY5NGMwLDI2LjE4NC0yMS4zMDMsNDcuNDg2LTQ3LjQ4Niw0Ny40ODZzLTQ3LjQ4Ni0yMS4zMDMtNDcuNDg2LTQ3LjQ4NiAgICBWMjI4LjI1NXogTTMzOC44NDQsMzA4LjMwM2wtMTUuODE1LDQyLjI5NGwtMTUuODQ0LTQyLjM3YzUuMTMsMS4yNTIsMTAuNDgzLDEuOTMxLDE1Ljk5MywxLjkzMSAgICBDMzI4LjU3MiwzMTAuMTU4LDMzMy44MTMsMzA5LjUwNCwzMzguODQ0LDMwOC4zMDN6IE0yMjYsMzk3YzUuNTIyLDAsMTAtNC40NzgsMTAtMTB2LTU1LjYyM2MzLjA4NS0xLjYyNiw2LjM3NC0yLjgzMiw5LjgyLTMuNTg4ICAgIGw0My43NC05LjU5NmwyNC4xMDMsNjQuNDU3YzEuNDYxLDMuOTA3LDUuMTk0LDYuNDk3LDkuMzY2LDYuNDk3czcuOTA1LTIuNTksOS4zNjYtNi40OThsMjQuMTA0LTY0LjQ2MWw0NC4wMTEsOS42MjMgICAgYzMuODYzLDAuODQ0LDcuNTI5LDIuMjc0LDEwLjkwMiw0LjE4OEgzNzRjLTUuNTIyLDAtMTAsNC40NzgtMTAsMTB2NDB2NDB2MzBIMjE1LjE3OXYtNTVIMjI2eiBNMTk1LjE3OSwzOTd2NTVIMTgwdi01ICAgIGMwLTE3LjA5NC0xMy45MDYtMzEtMzEtMzFoLTF2LTE5SDE5NS4xNzl6IE0xMDgsMzI3YzAtNS41MTQsNC40ODYtMTAsMTAtMTBzMTAsNC40ODYsMTAsMTB2ODloLTIwVjMyN3ogTTc2LDQ0NyAgICBjMC02LjA2NSw0LjkzNS0xMSwxMS0xMWgxMWg0MGgxMWM2LjA2NSwwLDExLDQuOTM1LDExLDExdjVINzZWNDQ3eiBNNDkyLDQ5MkgyMHYtMjBoNDcyVjQ5MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzLDIxOS45M2MtMS44NiwxLjg2LTIuOTMsNC40NC0yLjkzLDcuMDdzMS4wNjksNS4yMSwyLjkzLDcuMDY5YzEuODYsMS44Niw0LjQ0LDIuOTMxLDcuMDcsMi45MzEgICAgczUuMjEtMS4wNyw3LjA2OS0yLjkzMUMxMjYuOTMsMjMyLjIxLDEyOCwyMjkuNjMsMTI4LDIyN3MtMS4wNy01LjIxLTIuOTMxLTcuMDdjLTEuODU5LTEuODYtNC40MzktMi45My03LjA2OS0yLjkzICAgIFMxMTIuNzksMjE4LjA2OSwxMTAuOTMsMjE5LjkzeiIvPgogICAgPC9nPgo8L3N2Zz4K",Vae="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTUsMzUuOTM1YzQuNDkzLS41NTUsOC00LjgsOC05LjkzNSwwLTQuODg1LTMuNTM1LTE5LTktMTlzLTksMTQuMTE1LTksMTljMCw1LjEzOCwzLjUwNyw5LjM4LDgsOS45MzVWNDJINDkuOTQ5YTkuOTc4LDkuOTc4LDAsMCwwLTE0LjQ0MS03LjkyMmwtMS42LTIuNTEzTDMyLjM4OCwyN0gzNi41YTEuNSwxLjUsMCwwLDEsMCwzSDM2djJoLjVhMy41LDMuNSwwLDAsMCwwLTdIMzFhMSwxLDAsMCwwLS45NDgsMS4zMTZMMzEuNjEzLDMxSDIwVjI5aDNhMSwxLDAsMCwwLDEtMSw1LDUsMCwwLDAtMTAsMCwxLDEsMCwwLDAsMSwxaDN2Mi42NzVsLTEuOTY0LDIuN2E5Ljk5MSw5Ljk5MSwwLDEsMCw0LjUxLDExLjYwNiwzLjk4NSwzLjk4NSwwLDEsMCw2LjQyNS00LjYzNGw1LjUyMS04LjI4MywxLjMyOSwyLjA4OUE5Ljk5NSw5Ljk5NSwwLDEsMCw0OS45NDksNDRINjNWNDJINTVaTTQ3LDI2YzAtNS4wNjcsMy42NjEtMTcsNy0xN3M3LDExLjkzMyw3LDE3YzAsNC4wMjItMi42MTQsNy4zNTEtNiw3LjkwOVYxOC41MzVsMi41NTUtMS43LTEuMTEtMS42NjQtMywyQTEsMSwwLDAsMCw1MywxOHY3bC0yLjQtMS44LTEuMiwxLjZMNTMsMjcuNXY2LjQwOUM0OS42MTQsMzMuMzUxLDQ3LDMwLjAyMiw0NywyNlpNMTksMjVhMy4wMDYsMy4wMDYsMCwwLDEsMi44MjksMkgxNi4xNzFBMy4wMDYsMy4wMDYsMCwwLDEsMTksMjVabTUsMTVhMy44MzYsMy44MzYsMCwwLDAtLjU2LjA1N0wyMC41LDMzaDkuNjMybC00LjgyNSw3LjIzN0EzLjk2OCwzLjk2OCwwLDAsMCwyNCw0MFpNMTEsNTFhOCw4LDAsMSwxLDMuODU3LTE1bC0zLjAxMSw0LjE0QTIuOTYsMi45NiwwLDAsMCwxMSw0MGEzLDMsMCwxLDAsMi43MzgsNC4yMTRsNS4xLjM5MkE4LjAxNCw4LjAxNCwwLDAsMSwxMSw1MVptNy45OC04LjM4OS01LjEtLjM5MmEzLjAwNSwzLjAwNSwwLDAsMC0uNDE0LS45MTZsMy00LjEyNUE3Ljk2OSw3Ljk2OSwwLDAsMSwxOC45OCw0Mi42MTFaTTEyLDQzYTEsMSwwLDEsMS0xLTFBMSwxLDAsMCwxLDEyLDQzWm04Ljg3OS0xLjQ3MmE5Ljk2OCw5Ljk2OCwwLDAsMC0zLjIyOC01Ljk3NGwxLjExMS0xLjUyNywyLjgzMiw2LjhBNC4wMzIsNC4wMzIsMCwwLDAsMjAuODc5LDQxLjUyOFpNMjQsNDZhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjQsNDZabTE2LDVhOCw4LDAsMCwxLTUuMS0xNC4xNTZsMi43NDgsNC4zMTlBMi45NjYsMi45NjYsMCwwLDAsMzcsNDNhMywzLDAsMSwwLDMtMywyLjk2MywyLjk2MywwLDAsMC0uNjcxLjA4MmwtMi43NDEtNC4zMDdBOCw4LDAsMSwxLDQwLDUxWm0wLTlhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsNDAsNDJaIi8+CiAgICAgICAgPHBhdGggZD0iTTcsMThhNCw0LDAsMCwwLDIuNzg4LTEuMTM5LDUuNjMzLDUuNjMzLDAsMCwwLDMuOTYxLS41NDVBMy45NTQsMy45NTQsMCwwLDAsMTcsMThhNCw0LDAsMSwwLS4wODMtOCw2LDYsMCwwLDAtMTEuOS41MzhBMy45OTIsMy45OTIsMCwwLDAsNywxOFptLS42NTMtNS44NzdhMSwxLDAsMCwwLC42Ny0uOTc3QS42LjYsMCwwLDAsNywxMWE0LDQsMCwwLDEsOC0uMDQxYzAsLjAzMy0uMDE4LjE1Mi0uMDIuMTg1YTEsMSwwLDAsMCwxLjMzOS45ODZBMS45NywxLjk3LDAsMCwxLDE3LDEyYTIsMiwwLDEsMS0xLjksMi41NzMsMSwxLDAsMCwwLTEuNTg5LS40ODcsMy44LDMuOCwwLDAsMS0zLjc1MS42OTMsMSwxLDAsMCwwLTEuMTI5LjM3MiwxLjk5NCwxLjk5NCwwLDEsMS0yLjI4Mi0zLjAyOFoiLz4KICAgICAgICA8cmVjdCB4PSIxIiB5PSI1NSIgd2lkdGg9IjYyIiBoZWlnaHQ9IjIiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Zae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0xNjguOTkyIDI3Ny41OTFjMC0yNi41NTEtMjEuNjAxLTQ4LjE1MS00OC4xNTEtNDguMTUxcy00OC4xNTEgMjEuNjAxLTQ4LjE1MSA0OC4xNTEgMjEuNjAxIDQ4LjE1IDQ4LjE1MSA0OC4xNSA0OC4xNTEtMjEuNiA0OC4xNTEtNDguMTV6bS04MS4zMDMgMGMwLTE4LjI3OSAxNC44NzItMzMuMTUxIDMzLjE1MS0zMy4xNTFzMzMuMTUxIDE0Ljg3MiAzMy4xNTEgMzMuMTUxLTE0Ljg3MiAzMy4xNS0zMy4xNTEgMzMuMTUtMzMuMTUxLTE0Ljg3MS0zMy4xNTEtMzMuMTV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ3OS4yNzIgNDYyaC0zNC4wNjJsLTM5LjE1OC0zNi42NjdjLTMuMDIzLTIuODMxLTcuNzctMi42NzUtMTAuNjAxLjM0OXMtMi42NzUgNy43Ny4zNDkgMTAuNjAxbDQxLjMyMSAzOC42OTJjMS4zOSAxLjMwMiAzLjIyMiAyLjAyNSA1LjEyNiAyLjAyNWgzNy4wMjRjOS43NzUgMCAxNy43MjggNy45NTMgMTcuNzI4IDE3LjcyOXYyLjI3MWgtNjAuODQ0Yy0yLjE0OCAwLTQuMjYxLS43MDMtNS45ODEtMS45ODZsLTE4OC40OTItMTc4LjkxNHYtMjQuMTMybDEzMi4yMDcgMTIzLjc5NmMzLjAyMyAyLjgzMSA3Ljc3IDIuNjc1IDEwLjYwMS0uMzQ5czIuNjc1LTcuNzctLjM0OS0xMC42MDFsLTE0Mi40NTktMTMzLjM5NnYtMi40NThjMC04LjI4NC02Ljc0LTE1LjAyNC0xNS4wMjUtMTUuMDI0aC0xMi41NDh2LTQyLjc4NmgxMS40MzhjNi41MzYgMCAxMi4zOC0zLjkwMSAxNC44ODYtOS45MzggMi41MDctNi4wMzcgMS4xNDUtMTIuOTMtMy40NzEtMTcuNTZsLTEwNC43MDYtMTA1LjAzNmMtMS4xNjgtMS4xNzItMi40ODctMi4xMzgtMy45MS0yLjg4OXYtMTAuODY5aDUwLjE0OGM4Ljk1OSAwIDE2LjI0OC03LjI4OSAxNi4yNDgtMTYuMjQ4di0yNS4yMTNjMC04Ljk1OS03LjI4OS0xNi4yNDgtMTYuMjQ4LTE2LjI0OGgtNTAuMTY2Yy0uMTg0LTMuOTc4LTMuNDU4LTcuMTQ5LTcuNDgyLTcuMTQ5LTQuMTQzIDAtNy41IDMuMzU3LTcuNSA3LjV2NjguMjIzYy0xLjQyNy43NTEtMi43NDkgMS43MTktMy45MiAyLjg5NGwtNDAuMDE1IDQwLjE0Yy0yLjkyNSAyLjkzNC0yLjkxNyA3LjY4Mi4wMTcgMTAuNjA2IDIuOTMzIDIuOTIzIDcuNjgxIDIuOTE3IDEwLjYwNi0uMDE3bDQwLjAxNi00MC4xNDFjLjI3MS0uMjcxLjU3OS0uMzI4Ljc5MS0uMzI4LjIxMSAwIC41MjEuMDU3Ljc5Mi4zMjlsMTA0LjcwNSAxMDUuMDM1Yy4xNTcuMTU4LjUyNy41MjkuMjQgMS4yMTktLjI4Ni42ODktLjgwOS42ODktMS4wMzIuNjg5aC0yMDkuNDFjLS4yMjQgMC0uNzQ3IDAtMS4wMzMtLjY4OXMuMDg0LTEuMDYxLjI0MS0xLjIxOWw0My41MjEtNDMuNjU4YzIuOTI1LTIuOTM0IDIuOTE3LTcuNjgzLS4wMTctMTAuNjA2LTIuOTM0LTIuOTI1LTcuNjgzLTIuOTE4LTEwLjYwNi4wMTdsLTQzLjUyMSA0My42NTdjLTQuNjE1IDQuNjMtNS45NzggMTEuNTIyLTMuNDcyIDE3LjU2MSAyLjUwNyA2LjAzNyA4LjM1IDkuOTM4IDE0Ljg4NyA5LjkzOGgxMS40Mzh2NjkuNDQ0YzAgNC4xNDMgMy4zNTcgNy41IDcuNSA3LjVzNy41LTMuMzU3IDcuNS03LjV2LTY5LjQ0NGgxNTYuNTM1djEzMi44ODJoLTE1Ni41MzZ2LTMzLjQ1MmMwLTQuMTQzLTMuMzU3LTcuNS03LjUtNy41cy03LjUgMy4zNTctNy41IDcuNXYxODYuNDJoLTIwLjA3M2MtNC4xNDMgMC03LjUgMy4zNTctNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWg0OTdjNC4xNDMgMCA3LjUtMy4zNTcgNy41LTcuNXYtOS43NzFjMC0xOC4wNDctMTQuNjgyLTMyLjcyOS0zMi43MjgtMzIuNzI5em0tMjk5LjUzLTQzOC42MDN2MjUuMjEzYzAgLjY4OC0uNTYgMS4yNDgtMS4yNDggMS4yNDhoLTUwLjE0OHYtMjcuNzA5aDUwLjE0OGMuNjg5IDAgMS4yNDguNTYgMS4yNDggMS4yNDh6bTE2Ny4xOTYgNDEzLjI5MSA2My41NDEgNjAuMzEyaC02My41NDF6bS0xNSA2MC4zMTJoLTYwLjgxMXYtMTMyLjI3bDYwLjgxMSA1Ny43MnptLTc1LjgxLTE0Ni41MDh2MTQ2LjUwOGgtNDIuMDJ2LTE1Ni45NDJoMTIuNTQ4YzQuOTM5IDAgOS4zMTYtMi40MDYgMTIuMDU2LTYuMDk2em0tMjkuNDQ2LTgxLjUzMi0uMDEyIDU2LjA5N3MtLjAwNC4wMDEtLjAxNC4wMDFoLTEyLjU0OHYtNTYuMTEzem0tMjcuNTc0IDIyOC4wNGgtMzcuMTV2LTEzNy45NjloMzcuMTV6bS0xMDQuMzg0LTYxLjQ4NGg1Mi4yMzR2MjEuNDM2aC01Mi4yMzR6bTUyLjIzNC0xNWgtNTIuMjM0di0yMS40MzZoNTIuMjM0em0tNTIuMjM0IDUxLjQzNWg1Mi4yMzR2MjUuMDQ5aC01Mi4yMzR6bTUyLjIzNC0xMTIuOTJ2MjUuMDQ5aC01Mi4yMzR2LTI1LjA0OXptLTEwNC4zODUgMGgzNy4xNXYxMzcuOTY5aC0zNy4xNXoiLz4KICAgIDwvZz4KPC9zdmc+",Xae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNjcuMDQzIDE3MC40MTRjLTEwLjUxNi0uMzY1LTIwLjAxNi01LjA0Ny0yNi43NDktMTMuMTgxLTQuOTE0LTUuOTM3LTEzLjkzOC01LjkyNS0xOC44NDIgMC0xNC41OTcgMTcuNjM3LTQxLjQ2MiAxNy42MDYtNTYuMDMxIDAtNC45NzMtNi4wMDctMTQuMDA1LTUuODQyLTE4Ljg0MyAwLTE0LjU5MiAxNy42MzMtNDEuNDU1IDE3LjYxMy01Ni4wMzEtLjAwMS00LjkyMi01Ljk0NS0xMy45NDUtNS45MTUtMTguODQxIDAtNi43MzMgOC4xMzUtMTYuMjMzIDEyLjgxNi0yNi43NDkgMTMuMTgyLTQuMTQuMTQ0LTcuMzc5IDMuNjE2LTcuMjM0IDcuNzU2LjE0NCA0LjE0IDMuNTk0IDcuMzcxIDcuNzU2IDcuMjM1IDEzLjU2Ni0uNDcyIDI2LjM4Ni02LjMyOCAzNS42NDYtMTYuMTg3IDIwLjI3NiAyMS42MjkgNTQuNTY5IDIxLjY1NyA3NC44NzUuMDAxIDIwLjI3OCAyMS42MjkgNTQuNTcxIDIxLjY1NCA3NC44NzQtLjAwMSA5LjI2MiA5Ljg1OSAyMi4wOCAxNS43MTUgMzUuNjQ3IDE2LjE4NyA0LjEyMS4xNDkgNy42MTMtMy4wOTUgNy43NTYtNy4yMzUuMTQ1LTQuMTQtMy4wOTQtNy42MTItNy4yMzQtNy43NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM0MC4yOTQgMjE4Ljc1N2MtNC45MTQtNS45MzctMTMuOTM4LTUuOTI1LTE4Ljg0MiAwLTE0LjU5NiAxNy42MzYtNDEuNDYxIDE3LjYwNy01Ni4wMzEgMC00Ljk3My02LjAwNy0xNC4wMDUtNS44NDItMTguODQzIDAtMTQuNTk2IDE3LjYzOS00MS40NjEgMTcuNjA2LTU2LjAzMS0uMDAxLTQuOTA0LTUuOTIyLTEzLjkyNy01LjkzOC0xOC44NDEuMDAxLTcuOTk0IDkuNjU4LTIwLjE4MiAxNC40ODQtMzIuNjEyIDEyLjkxNC00LjEtLjUxOS03Ljg2MSAyLjM4OS04LjM4MiA2LjQ5OS0uNTIxIDQuMTA5IDIuMzkgNy44NjIgNi40OTkgOC4zODIgMTYuNDgxIDIuMDg5IDMyLjY1OC0zLjc5NSA0My45MTYtMTUuODA4IDIwLjI3NyAyMS42MjggNTQuNTY4IDIxLjY1NCA3NC44NzMgMCAyMC4yNzYgMjEuNjI3IDU0LjU3IDIxLjY1NiA3NC44NzMgMCAxMS4yNTggMTIuMDEzIDI3LjQzNiAxNy44OTYgNDMuOTE1IDE1LjgwOCA0LjEwOS0uNTIgNy4wMi00LjI3MiA2LjQ5OS04LjM4MnMtNC4yODktNy4wMTktOC4zODItNi40OTljLTEyLjQzNSAxLjU2OS0yNC42MTgtMy4yNTUtMzIuNjExLTEyLjkxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMzYwLjc4MiAxMDcuN2MtOC4wODItMS43MDMtMTUuMTY3LTYtMjAuNDg3LTEyLjQyNy00LjkxNC01LjkzNy0xMy45MzgtNS45MjUtMTguODQyIDAtMTQuNTk3IDE3LjYzNy00MS40NjIgMTcuNjA2LTU2LjAzMSAwLTQuOTczLTYuMDA3LTE0LjAwNS01Ljg0Mi0xOC44NDMgMC0xNC41OTIgMTcuNjMzLTQxLjQ1NSAxNy42MTMtNTYuMDMxLS4wMDEtNC45MjItNS45NDUtMTMuOTQ1LTUuOTE1LTE4Ljg0MSAwLTUuMzIgNi40MjctMTIuNDA0IDEwLjcyNS0yMC40ODYgMTIuNDI4LTQuMDU0Ljg1NC02LjY0NyA0LjgzMi01Ljc5MyA4Ljg4NXM0Ljg0IDYuNjQ3IDguODg1IDUuNzkyYzEwLjM4My0yLjE4OCAxOS41OTItNy4zOSAyNi44MTYtMTUuMTE3IDIwLjI4MiAyMS42MzEgNTQuNTcyIDIxLjY0OCA3NC44NzItLjAwMSAyMC4yNzYgMjEuNjI2IDU0LjU2NyAyMS42NTYgNzQuODcxLjAwMiA3LjIyNiA3LjcyNyAxNi40MzYgMTIuOTMgMjYuODE4IDE1LjExNiA0LjA0OC44NTUgOC4wMy0xLjc0IDguODg1LTUuNzkzLjg1My00LjA1My0xLjc0MS04LjAzMS01Ljc5My04Ljg4NHoiLz4KICAgICAgICA8cGF0aCBkPSJtNTQuOTg1IDQyOS4yNzNoMTY5LjczMnY2OS41NzljMCA3LjI1IDUuODk4IDEzLjE0OCAxMy4xNDkgMTMuMTQ4aDI1LjE5MmM3LjI1IDAgMTMuMTQ4LTUuODk4IDEzLjE0OC0xMy4xNDh2LTEuNDY0aDc0LjE5OXYxLjQ2NGMwIDcuMjUgNS44OTggMTMuMTQ4IDEzLjE0OSAxMy4xNDhoMjUuMTkyYzcuMjUgMCAxMy4xNDgtNS44OTggMTMuMTQ4LTEzLjE0OHYtNjkuNTc5aDU1LjExOWMyNC4xMjEgMCA0My4wODEtMjAuODg2IDQwLjY1Ny00NC45NTYtLjAwNC0uMDQtLjAwOC0uMDgtLjAxMy0uMTJsLTEzLjAzNS0xMTEuNTY3Yy0uNDgxLTQuMTE0LTQuMjE1LTcuMDYyLTguMzE5LTYuNTc5LTQuMTE0LjQ4MS03LjA2IDQuMjA2LTYuNTc5IDguMzJsMTMuMDMgMTExLjUwM2MxLjQ2IDE0LjgzMy0xMC4wOTQgMjguMzk4LTI1LjczOCAyOC4zOThoLTU1LjExOXYtMTkuMDU4aDQ0LjkzN2M5LjQ3IDAgMTYuODgtOC4xOTEgMTUuOTM1LTE3LjYxNi0uMDA1LS4wNDMtLjAxLS4wODYtLjAxNS0uMTI5bC0zOC43NTYtMzI5LjA3NGMtLjg2MS04LjE3OS03LjY5NS0xNC4zMzctMTUuOTI3LTE0LjMzN2gtMTM0LjU3MWMtNC4xNDMgMC03LjUgMy4zNTgtNy41IDcuNXMzLjM1NyA3LjUgNy41IDcuNWgxMzQuNTcxYy41MjMgMCAuOTU3LjM5MyAxLjAxLjkxNC4wMDQuMDQyLjAwOS4wODMuMDE0LjEyNWwzOC43NSAzMjkuMDM0Yy4wMTkuMjc1LS4wNzQuNTQ3LS4yNi43NTEtLjE5MS4yMTItLjQ2Ni4zMzMtLjc1Mi4zMzNoLTQ0LjkzN3YtMjIuODkyYzAtMzkuNDc3LTMyLjI1Ni03MC4zNDQtNzAuMzQ1LTcwLjM0NC0yNi43NzggMC01MC45NDcgMTUuMTg5LTYyLjgzOSAzOC43NDQtMTIuMDA4LTIzLjc3Mi0zNi43MjUtMzkuMjUtNjQuMjA2LTM4LjczMS0zNy43LjcwOS02OC45ODggMzEuNTkzLTY4Ljk4OCA3MC4zMzJ2MjIuODkyaC03MC4zNTJjLS4yODYgMC0uNTYtLjEyMi0uNzUzLS4zMzUtLjE4NS0uMjA0LS4yNzctLjQ3Ni0uMjU5LS43NTFsMzguNzUyLTMyOS4wMzJjLjAwNS0uMDQyLjAxLS4wODQuMDE0LS4xMjcuMDUzLS41Mi40ODYtLjkxMiAxLjAxLS45MTJoMTM0LjU3YzQuMTQzIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU3LTcuNS03LjUtNy41aC0xMzQuNTdjLTguMjMzIDAtMTUuMDY3IDYuMTYtMTUuOTI3IDE0LjMzOWwtMzguNzU3IDMyOS4wNzNjLS4wMDUuMDQzLS4wMS4wODYtLjAxNS4xMjktLjk0NiA5LjQyMiA2LjQ2NCAxNy42MTYgMTUuOTM1IDE3LjYxNmgxNTkuNTUxdjE5LjA1OGgtMTY5LjczMmMtMTQuODUyIDAtMjcuMjc5LTEyLjc4Mi0yNS43MzktMjguMzk5bDQwLjYwOS0zNDcuNDgzYy4wMDUtLjA0LjAwOS0uMDguMDEzLS4xMTkgMS4zMzYtMTMuMjY4IDEyLjM5OS0yMy4yNzMgMjUuNzM0LTIzLjI3M2gzMjAuNzk4YzEzLjMzNSAwIDI0LjM5NyAxMC4wMDUgMjUuNzMzIDIzLjI3Mi4wMDQuMDQuMDA4LjA4LjAxMy4xMmwyMy40ODcgMjAwLjk3OWMuNDgxIDQuMTE1IDQuMjE3IDcuMDYzIDguMzE5IDYuNTc5IDQuMTE0LS40OCA3LjA2LTQuMjA2IDYuNTc5LTguMzJsLTIzLjQ4LTIwMC45MjJjLTIuMTM4LTIwLjkzMi0xOS42MDMtMzYuNzA4LTQwLjY1MS0zNi43MDhoLTMyMC43OThjLTIxLjA0OSAwLTM4LjUxNiAxNS43NzctNDAuNjUyIDM2LjcxbC00MC42MSAzNDcuNDg4Yy0uMDA1LjA0LS4wMDkuMDgtLjAxMy4xMi0yLjQxNSAyMy45OTkgMTYuNDY2IDQ0Ljk1NSA0MC42NTggNDQuOTU1em0yNTcuNzEzLTcxLjMwMmMwLTEwLjMyNSA4LjEyMi0xOS4yODkgMTguNS0xOS40ODMgMTAuNjgyLS4yMDQgMTkuMjA5IDguNDkxIDE5LjIwOSAxOC44MzZ2MjIuODkyaC0zNy43MDl6bS0zNi40OTEgNzEuMzAyaDc0LjE5OXYxOS4wNThoLTc0LjE5OXptNzguMjE1LTM0LjA1OGM1LjU2OSAwIDEwLjAxNCA0LjgxOCA5LjQ4NCAxMC40My0uNDczIDQuODg0LTQuNTkgOC42MjctOS40ODQgOC42MjdoLTc4LjIxNXYtMTkuMDU4YzI2LjExMi4wMDEgNTIuMTY3LjAwMSA3OC4yMTUuMDAxem0tNzguMjE1IDY4LjExNmg3OC4yMTVjNS41MzcgMCAxMC4wMTYgNC43OTYgOS40ODQgMTAuNDMtLjQ3MiA0Ljg3NC00LjU4NyA4LjYyNy05LjQ4NCA4LjYyN2gtNzguMjE1em0xMTAuNjkgMzMuNjY5aC0yMS40OXYtMi4yMTNjMTguMDE0LTkuMTI3IDE4LjA1NC0zNC43MDggMC00My44NTV2LTI0LjI2YzE4LjA5OC05LjE3IDE3Ljk2OC0zNC43NTIgMC00My44NTV2LTI1LjQ5M2MwLTIwLjQ4Ni0xOC4yMDItMzYuNTE3LTM4Ljc5NC0zMy40OS0xNi4zNTMgMi40LTI4LjkxNSAxNi41MjYtMjguOTE1IDMzLjQ5djIyLjg5MmgtMjEuNDl2LTIxLjgzN2MwLTMwLjU1MiAyNC40Ni01Ni4wOTQgNTQuODIyLTU2LjM4NiAzMS4yMTgtLjI2MiA1NS44NjcgMjUuMDU4IDU1Ljg2NyA1NS4zMzF6bS0yMzYuMzc3LTExNi43ODV2LTIxLjgzOGMwLTMyLjIyNCAyNi42OTYtNTcuNTgzIDU3LjU4OS01Ni4zNDIgMjkuNDgzIDEuMjA0IDUzLjA5OSAyNS41MDMgNTMuMDk5IDU1LjI4N3YxMzkuNjc3aC0yMS40OWMwLTE0LjQxOCAwLTEyMS4wNjMgMC0xMzkuNjc3IDAtMTcuOTUtMTQuMDY1LTMyLjgwNC0zMS45MTUtMzMuNzk1LTE5LjI3Ni0xLjA5Ni0zNS43OTMgMTQuMjYxLTM1Ljc5MyAzMy43OTV2MjIuODkyaC0yMS40OXptMzYuNDkgMHYtMjIuMjQ1YzAtOS40MjUgNi43NjItMTcuNzI0IDE1Ljg3Ny0xOS4yNDMgMTEuNjM5LTEuODUyIDIxLjgzIDcuMjM3IDIxLjgzIDE4LjU5NnYyMi44OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Kae="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjE2LDI1MkgxMTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzIyMS41MSwyNTIsMjE2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjU2LDI1MmMtNS41MSwwLTEwLDQuNDktMTAsMTBzNC40OSwxMCwxMCwxMHMxMC00LjQ5LDEwLTEwUzI2MS41MSwyNTIsMjU2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMzk2LDI1MkgyOTZjLTUuNTEsMC0xMCw0LjQ5LTEwLDEwczQuNDksMTAsMTAsMTBoMTAwYzUuNTEsMCwxMC00LjQ5LDEwLTEwUzQwMS41MSwyNTIsMzk2LDI1MnoiLz4KICAgICAgICA8cGF0aCBkPSJNMjg2LDEwN2gtNjBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NjBjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg2MGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi02MAoJCQlDMjk2LDExMS40NzcsMjkxLjUyMywxMDcsMjg2LDEwN3ogTTI3NiwxNjdoLTQwdi00MGg0MFYxNjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMiw0OTJoLTEzVjIzM2MwLTYyLjIzNy0yNC4yMzYtMTIwLjc0OC02OC4yNDQtMTY0Ljc1NkMzNzYuNzQ4LDI0LjIzNiwzMTguMjM3LDAsMjU2LDBTMTM1LjI1MiwyNC4yMzYsOTEuMjQ0LDY4LjI0NAoJCQlTMjMsMTcwLjc2MywyMywyMzN2MjU5SDEwYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwczQuNDc3LDEwLDEwLDEwaDQ5MmM1LjUyMywwLDEwLTQuNDc3LDEwLTEwUzUwNy41MjMsNDkyLDUwMiw0OTJ6IE0zODYsNDkySDEyNgoJCQl2LTIwaDI2MFY0OTJ6IE0zODYsNDUySDEyNnYtMjBoMjYwVjQ1MnogTTM4Niw0MTJIMTI2di0yMGgyNjBWNDEyeiBNMzg2LDM3MkgxMjZ2LTIwaDI2MFYzNzJ6IE0zODYsMzMySDEyNnYtMjBoMjYwVjMzMnoKCQkJIE00MjksNDkyaC0yM1YzMDJjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMEgxMTZjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2MTkwSDgzVjIzM2MwLTk1LjY2OCw3Ny4zODMtMTczLjUsMTcyLjUtMTczLjUKCQkJQzM1MS4xNjgsNTkuNSw0MjksMTM3LjMzMiw0MjksMjMzVjQ5MnogTTQ2OSw0OTJoLTIwVjIzM2MwLTEwNi42OTYtODYuODA0LTE5My41LTE5My41LTE5My41CgkJCWMtNTEuNjM5LDAtMTAwLjA2MywyMC4xMzctMTM2LjM1Miw1Ni43MDJDODIuOTQsMTMyLjY4NCw2MywxODEuMjY3LDYzLDIzM3YyNTlINDNWMjMzYzAtMTE3LjQ0OSw5NS41NTEtMjEzLDIxMy0yMTMKCQkJczIxMyw5NS41NTEsMjEzLDIxM1Y0OTJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",qae="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im01MDguNTQxIDIxOC4zODQtMTYyLjUwNy0yMDMuMTM0Yy03Ljc1My05LjY5Mi0xOS4zMTgtMTUuMjUtMzEuNzI5LTE1LjI1aC04My4xNTVjLTguNzAzIDAtMTUuNzgzIDcuMDgtMTUuNzgzIDE1Ljc4M3YxNi41NjdjMCA4LjcwMyA3LjA4IDE1Ljc4MyAxNS43ODMgMTUuNzgzaDMzLjkxN3YxMTcuNTMzaC0zMC42MzJsLTEyMC4zMzQtMTUwLjQxNmMtNy43NTMtOS42OTEtMTkuMzE4LTE1LjI1LTMxLjcyOS0xNS4yNWgtNjYuNTg5Yy04LjcwMyAwLTE1Ljc4MyA3LjA4LTE1Ljc4MyAxNS43ODN2MTYuNTY3YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2gxNy4zNXYxMTcuNTMzaC0xNy4zNWMtOC43MDMuMDAxLTE1Ljc4MyA3LjA4MS0xNS43ODMgMTUuNzg0djMwNi40ODNjMCAxMy4yNzEgMTAuNzk2IDI0LjA2NyAyNC4wNjcgMjQuMDY3aDQ3Mi4xNWM4LjcwMyAwIDE1Ljc4My03LjA4IDE1Ljc4My0xNS43ODN2LTc0LjU1LTE0My4yODktNTAuMTM0YzAtMy41NzEtMS4yMjgtNy4wNzMtMy40NTktOS44NnptLTYyLjAyNCAxOTUuNzgzYy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4M3YtNzQuNTUtMTIxLjkwOGwxOC4xMzQgMjIuNjY3djE3NC41NzR6bS0yMzEuOTM0IDBjLS40MzIgMC0uNzg0LS4zNTItLjc4NC0uNzgzdi02Ny4wNWgxOC4xMzN2NjcuODMzem0tNjYuMjY2LTgyLjgzNGMtLjQzMiAwLS43ODQtLjM1Mi0uNzg0LS43ODR2LTY3LjA0OWgxOC4xMzN2NjcuODMzem0tNjYuMjY3LTgyLjgzM2MtLjQzMiAwLS43ODMtLjM1Mi0uNzgzLS43ODN2LTY3LjA1aDE4LjEzM3Y2Ny44MzN6bTgzLjYxNi05MS43NDF2OC45MDhoLTE4LjEzM3YtMzEuNTc0em02Ni4yNjcgODIuODMzdjguOTA4aC0xOC4xMzN2LTMxLjU3NHptODEuMjY3IDguMTI1di0xOTYuNDI4Yy4wNzIuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zODl2MTc0LjU3NWgtMTcuMzVjLS40MzEgMC0uNzgzLS4zNTItLjc4My0uNzgzem0xMTcuNTMzIDUwLjQ4M2gtMTguMTMzdi0xMjIuNjkxbDE4LjEzNCAyMi42Njd2MTAwLjAyNHptLTE4LjEzMyAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bS0xNSAxOC4xMzNoLTE3LjM1Yy0uNDMyIDAtLjc4My0uMzUyLS43ODMtLjc4NHYtNzQuNTQ5LTEyMS45MDhsMTguMTMzIDIyLjY2NnptLTMzLjEzMy0xMTUuOTY2aC0xOC4xMzR2LTEyMi42OTFsMTguMTM0IDIyLjY2N3ptLTE4LjEzNCAxNWgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzN2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzg0aC04NC40NHYtNTIuOTU1LTE0Ljg3OXptLTk5LjQwMSAxNy41MDl2MTAwLjAyNGgtMTguMTMzdi0xMjIuNjkxbDUuMDg2IDYuMzU3em0tMTUwLjY2Ni0xODguMzMzIDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzMgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptMzMuMTMzLTUuMTU4IDE4LjEzMyAyMi42Njd2MTAwLjAyNGgtMTguMTMzem0zMy4xMzQgODcuOTkxaDE4LjEzM3Y2Ny44MzNoLTE4LjEzM3ptLTExNC40LTk3LjgzM2gtMTguMTMzdi0xMTQuMzc4Yy4wNzMuMDg0LjE1Mi4xNi4yMjIuMjQ3bDE3LjkxMSAyMi4zOXptMTUgNjQuN2gxOC4xMzN2MTguMTMzaC0xOC4xMzN6bTY2LjI2NiA4Mi44MzNoMTguMTM0djE4LjEzM2gtMTguMTMzdi0xOC4xMzN6bTY2LjI2NyA4Mi44MzNoMTguMTMzdjE4LjEzM2gtMTguMTMzem0zMy4xMzMtNDkuN2gxNTAuNjY3djY3LjA1YzAgLjI2NC4wMjcuNTIyLjA0Ljc4M2gtMTUwLjcwN3ptMjA3LjMxNi03Ny4zNDYgOS42MTggMTIuMDIydjEwMC4wMjRoLTE4LjEzM3YtMTIyLjY5em0tOC41MTUgMTI3LjA0NmgxOC4xMzN2MTguMTMzaC0xOC4xMzN6bS0yNDguNS0zNjMuNjgzdi0xNi41NjdjMC0uNDMyLjM1Mi0uNzgzLjc4My0uNzgzaDgzLjE1NWM3LjgzIDAgMTUuMTI1IDMuNTA2IDIwLjAxNyA5LjYybDE2Mi41MDcgMjAzLjEzNGMwIC4wMDEuMDAxLjAwMS4wMDIuMDAyLjEwOS4xMzcuMTcuMzExLjE3LjQ4OHYyOC43NTNsLTE3MS44NjYtMjE0LjgzMWMtNC41OTMtNS43NC0xMS40NDItOS4wMzItMTguNzkzLTkuMDMyaC0uNjQyLTc0LjU1Yy0uNDMyLS4wMDEtLjc4My0uMzUyLS43ODMtLjc4NHptNjcuODMzIDE1Ljc4M3Y4NC40aC0xOC4xMzR2LTg0LjR6bS0xOC4xMzQgOTkuNGgxOC4xMzR2MTguMTMzaC0xOC4xMzR6bTE4LjEzNCAzMy4xMzR2NjcuMDVjMCAuMjY0LjAyNy41MjIuMDQuNzgzaC0xOC4xNzR2LTIwLjI1NmMwLTMuNTctMS4yMjgtNy4wNzItMy40NTgtOS44NTkgMC0uMDAxIDAtLjAwMSAwLS4wMDFsLTMwLjE3NC0zNy43MThoNTEuNzY2em0tMjgzLjItMTQ4LjMxN3YtMTYuNTY3YzAtLjQzMS4zNTItLjc4My43ODMtLjc4M2g2Ni41ODhjNy44MyAwIDE1LjEyNSAzLjUwNiAyMC4wMTYgOS42MmwxNjIuNTA4IDIwMy4xMzRjLjExLjEzOC4xNzEuMzEzLjE3MS40OXYyOC43NTRsLTE3MS44NjUtMjE0LjgzMmMtNC41OTItNS43NC0xMS40NDItOS4wMzMtMTguNzkzLTkuMDMzaC0uNjQyLTU3Ljk4M2MtLjQzMSAwLS43ODMtLjM1MS0uNzgzLS43ODN6bTUxLjI2NyAxNS43ODN2ODQuNGgtMTguMTM0di04NC40em0tMTguMTM0IDk5LjRoMTguMTMzdjE4LjEzM2gtMTguMTMzem0tMjQuMDY2IDM0OS40NjdjLTUgMC05LjA2Ny00LjA2Ny05LjA2Ny05LjA2N3YtMzA2LjQ4M2MwLS40MzIuMzUyLS43ODQuNzgzLS43ODRoNTAuNDgzdjY3LjA1YzAgOC43MDMgNy4wOCAxNS43ODMgMTUuNzgzIDE1Ljc4M2g1MC40ODN2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODQgMTUuNzg0IDE1Ljc4NGg1MC40ODR2NjcuMDVjMCA4LjcwMyA3LjA4MSAxNS43ODMgMTUuNzg0IDE1Ljc4M2g1MC40ODN2NjcuMDVjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yNDAuMjE3em00NzIuOTMzLS43ODNjMCAuNDMyLS4zNTIuNzgzLS43ODMuNzgzaC0yMTYuMTljLjAxMy0uMjYxLjA0LS41MTkuMDQtLjc4M3YtNjcuMDVoMjE2LjkzM3oiLz4KICAgIDwvZz4KPC9zdmc+",ece="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDEuOTk4LDMwLjU5OGgtMTUyYy01LjUyMywwLTEwLDQuNDc3LTEwLDEwdjQwLjAwM2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDIwLjAwMXY3NC43OTRoLTE5MAoJCQkJYy01LjUyMiwwLTEwLDQuNDc3LTEwLDEwdjQwLjAwMmMwLDUuNTIzLDQuNDc4LDEwLDEwLDEwSDIwMHY3NC43OTZIMTBjLTUuNTIzLDAtMTAsNC40NzctMTAsMTB2NDAuMDAxYzAsNS41MjMsNC40NzcsMTAsMTAsMTAKCQkJCWgxMy45OTZWNDcxLjRjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGgxODEuNzZjMi4yNTYsMCw0LjQ0NS0wLjc2Myw2LjIxMy0yLjE2NWwyODYuMjQzLTIyNi45NzIKCQkJCWMyLjM5Mi0xLjg5NiwzLjc4Ni00Ljc4MiwzLjc4Ni03LjgzNVY4MC42MDFWNDAuNTk4QzUxMS45OTgsMzUuMDc1LDUwNy41MjIsMzAuNTk4LDUwMS45OTgsMzAuNTk4eiBNMTg5Ljk5OSwyMDUuMzk3di0yMC4wMDIKCQkJCWgxODB2MjAuMDAySDE4OS45OTl6IE0yMCwzNDAuMTk0di0yMC4wMDFoMTgwdjIwLjAwMUgyMHogTTQ5MS45OTgsMTA5Ljg3OWgtNDEuMDM1Yy01LjUyMywwLTEwLDQuNDc3LTEwLDEwCgkJCQljMCw1LjUyMyw0LjQ3NywxMCwxMCwxMGg0MS4wMzV2MTA5LjcxNUwyMTIuMjcxLDQ2MS40SDQzLjk5NnYtNjIuMjUzaDQxLjAzNmM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMEg0My45OTYKCQkJCXYtMTguOTUzSDIxMGM1LjUyMywwLDEwLTQuNDc3LDEwLTEwdi00MC4wMDF2LTg0Ljc5NmgxNTkuOTk5YzUuNTIzLDAsMTAtNC40NzcsMTAtMTB2LTQwLjAwMlY5MC42MDFoMTAxLjk5OVYxMDkuODc5egoJCQkJIE00OTEuOTk4LDcwLjYwMWgtMTMyVjUwLjU5OGgxMzJWNzAuNjAxeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTQsMzc5LjE0NGgtMC4yMzZjLTUuNTI0LDAtMTAsNC40NzctMTAsMTBzNC40NzYsMTAsMTAsMTBIMTE0YzUuNTIyLDAsMTAtNC40NzcsMTAtMTBTMTE5LjUyMiwzNzkuMTQ0LDExNCwzNzkuMTQ0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjEuOTk4LDEyOS44OGgwLjIzNWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwcy00LjQ3OC0xMC0xMC0xMGgtMC4yMzVjLTUuNTIzLDAtMTAsNC40NzctMTAsMTAKCQkJCVM0MTYuNDc1LDEyOS44OCw0MjEuOTk4LDEyOS44OHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",tce="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNS41MTggNjRoMi45ODZjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDIxaDQ0Ljk5MnYyLjAyMWMwIC41NTMuNDQ3IDEgMSAxaDNjLjU1MyAwIDEtLjQ0NyAxLTF2LTYwLjVjMC0xLjM3OC0xLjEyMS0yLjUtMi41LTIuNXMtMi41IDEuMTIyLTIuNSAyLjV2MTUuNTA0aC0yLjk5OHYtMTMuOTk2YzAtLjU1Mi0uNDQ3LTEtMS0xaC0xNS45OTZjLS41NTMgMC0xIC40NDgtMSAxdjEzLjk5NWgtMy4wMDJ2LTEzLjk5NWMwLS41NTItLjQ0Ny0xLTEtMWgtMTUuOTk2Yy0uNTUzIDAtMSAuNDQ4LTEgMXYxMy45OTVoLTN2LTE1LjUwM2MwLTEuMzc4LTEuMTIxLTIuNS0yLjUtMi41cy0yLjUgMS4xMjItMi41IDIuNWwuMDE0IDYwLjVjMCAuNTUzLjQ0NyAxIDEgMXptNTAuOTc4LTYxLjVjMC0uMjc2LjIyNS0uNS41LS41cy41LjIyNC41LjV2NTkuNWgtMXptLTE0Ljk5OCAyLjUwOGgyLjAwMnYxLjAwOGgtMi4wMDJ6bS01Ljk5NiAwaDMuOTk2djIuMDA4YzAgLjU1Mi40NDcgMSAxIDFoNC4wMDJjLjU1MyAwIDEtLjQ0OCAxLTF2LTIuMDA4aDMuOTk4djEyLjk5NWgtMTMuOTk2em0tMTUuMDAyIDBoMnYxLjAwOGgtMnptLTUuOTk2IDBoMy45OTZ2Mi4wMDhjMCAuNTUyLjQ0NyAxIDEgMWg0Yy41NTMgMCAxLS40NDggMS0xdi0yLjAwOGg0djEyLjk5NWgtMTMuOTk2em0tNSAxNC45OTVoNCAxNS45OTYgNS4wMDIgMTUuOTk2IDMuOTk4djFoLTQ0Ljk5MnptMCAzaDQ0Ljk5MnYxMy45NzFoLTIuOTk2di0xMC45OWMwLS41NTItLjQ0Ny0xLTEtMWgtMzdjLS41NTMgMC0xIC40NDgtMSAxdjEwLjk5MWgtMi45OTZ6bTE5Ljk5NiA2Ljk4MWg1Yy41NTMgMCAxLS40NDggMS0xdi0yaDE0djkuOTkxaC0zNXYtOS45OTFoMTR2MmMwIC41NTIuNDQ3IDEgMSAxem0xLTJ2LTFoM3Yxem0tMjAuOTk2IDEwLjk5MWgzLjk5NiAzNyAzLjk5NnYxLjAwMmgtNDQuOTkyem0wIDMuMDAyaDQ0Ljk5MnYxNGgtMi45OTR2LTExLjk5YzAtLjU1My0uNDQ3LTEtMS0xaC0xNC4wMDJjLS41NTMgMC0xIC40NDctMSAxdjExLjk5aC0yLjk5NHYtOC45ODhjMC0uNTUzLS40NDctMS0xLTFoLTYuOTk0Yy0uMDA0IDAtLjAwNi0uMDAyLS4wMS0uMDAycy0uMDA2LjAwMi0uMDEuMDAyaC0zLjk4MmMtLjAwNCAwLS4wMDYtLjAwMi0uMDEtLjAwMnMtLjAwNi4wMDItLjAxLjAwMmgtNi45ODZjLS41NTMgMC0xIC40NDctMSAxdjguOTg4aC0zem0zMS45OTYgNi4wMTdoNC4wMDJjLjU1MyAwIDEtLjQ0NyAxLTF2LTIuMDA4aDN2MTAuOTloLTEyLjAwMnYtMTAuOTloM3YyLjAwOGMwIC41NTMuNDQ3IDEgMSAxem0xLTJ2LTEuMDA4aDIuMDAydjEuMDA4em0tMjIgNWg0LjAwMmMuNTUzIDAgMS0uNDQ3IDEtMXYtMi4wMDZoNS4wMDR2Ny45ODhoLTE2LjAwMnYtNy45ODhoNC45OTZ2Mi4wMDZjMCAuNTUzLjQ0NyAxIDEgMXptMS0ydi0xLjAwNmgyLjAwMnYxLjAwNnptLTExLjk5NiA4Ljk4M2g0IDE4LjAwMiA0Ljk5NCAxNC4wMDIgMy45OTR2MS4wMDJoLTQ0Ljk5MnptLTIuNS01NS45NzdjLjI3NSAwIC41LjIyNC41LjV2NTkuNWgtLjk4NmwtLjAxNC01OS41YzAtLjI3Ni4yMjUtLjUuNS0uNXoiLz4KICAgIDwvZz4KPC9zdmc+",sce="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMgM3YtMmgtMzFjLS41NTMgMC0xIC40NDctMSAxdjhjMCAuNTUzLjQ0NyAxIDEgMWgxdjUwaC0zMnYyaDMzIDQgOCA0IDEzdi0yaC0xMnYtNWgxMnYtMmgtMTMtNC0zdi0yaDIwdi0yaC0yMWMtLjU1MyAwLTEgLjQ0Ny0xIDF2NGMwIC41NTMuNDQ3IDEgMSAxaDN2NWgtNnYtNTBoMjR2LTJoLTI1LTQtMXYtNnptLTE2IDUzaDJ2NWgtMnptLTEwLTQ1djUwaC0ydi01MHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjEgMzJjMC0yLjExOC0uNTAxLTQuMjM4LTEuNDQ3LTYuMTMxbC0uNjU4LTEuMzE2Yy0uMzQtLjY3OC0xLjQ0OS0uNjc4LTEuNzg5IDBsLS42NTggMS4zMTZjLS45NDcgMS44OTMtMS40NDggNC4wMTMtMS40NDggNi4xMzEgMCAuMjQxLjAyOS40ODEuMDQyLjcyMi0uNjQ2LS40ODMtMS4zODMtLjgzNy0yLjE3Mi0xLjAzNGwtMi42MjgtLjY1N2MtLjMzOC0uMDg3LS43MDEuMDE1LS45NDkuMjYzcy0uMzQ5LjYwOC0uMjYzLjk0OWwuNjU3IDIuNjI5Yy4yNjkgMS4wNzMuODIzIDIuMDU1IDEuNjA1IDIuODM2Ljc4MS43ODIgMS43NjMgMS4zMzcgMi44MzYgMS42MDVoLjAwMWwuNjcyLjE2OC0xLjI1LjYyNS44OTUgMS43ODkgMi41NTQtMS4yNzd2Mi4zODJoLTdjLS41NTMgMC0xIC40NDctMSAxdjRjMCAuNTUzLjQ0NyAxIDEgMWgxLjA5NWwuOTEgOS4xYy4wNTEuNTEuNDgxLjkuOTk1LjloMTBjLjUxNCAwIC45NDQtLjM5Ljk5NS0uOWwuOTEtOS4xaDEuMDk1Yy41NTMgMCAxLS40NDcgMS0xdi00YzAtLjU1My0uNDQ3LTEtMS0xaC03di0yLjM4MmwyLjU1MyAxLjI3Ni44OTUtMS43ODktMS4yNS0uNjI1LjY3Mi0uMTY4aC4wMDFjMS4wNzMtLjI2OSAyLjA1NS0uODIzIDIuODM2LTEuNjA1Ljc4Mi0uNzgxIDEuMzM3LTEuNzYzIDEuNjA1LTIuODM3bC42NTctMi42MjhjLjA4Ni0uMzQxLS4wMTUtLjcwMS0uMjYzLS45NDlzLS42MDktLjM1LS45NDktLjI2M2wtMi42MjkuNjU3Yy0uNzg4LjE5Ny0xLjUyNS41NTEtMi4xNzEgMS4wMzQuMDE0LS4yNC4wNDMtLjQ4LjA0My0uNzIxem0xLjA5NSAyNWgtOC4xODlsLS44LThoOS43OXptMi45MDUtMTBoLTE0di0yaDE0em0tNy0xOS43MzRjLjY1NSAxLjQ4NSAxIDMuMTEgMSA0LjczNHMtLjM0NSAzLjI0OS0xIDQuNzM0Yy0uNjU1LTEuNDg1LTEtMy4xMS0xLTQuNzM0cy4zNDUtMy4yNDkgMS00LjczNHptLTUuMjkzIDkuMDI3Yy0uNTI1LS41MjUtLjg5OC0xLjE4Ni0xLjA4LTEuOTA3bC0uMjUyLTEuMDExIDEuMDEuMjUyYy43MjMuMTgyIDEuMzgzLjU1NSAxLjkwOCAxLjA4cy44OTggMS4xODYgMS4wOCAxLjkwN2wuMjUyIDEuMDExLTEuMDEtLjI1MmMtLjcyMi0uMTgyLTEuMzgzLS41NTUtMS45MDgtMS4wOHptMTAuOTA3LTIuNjY2IDEuMDExLS4yNTItLjI1MiAxLjAxYy0uMTgyLjcyMy0uNTU1IDEuMzgzLTEuMDggMS45MDhzLTEuMTg2Ljg5OC0xLjkwOCAxLjA4bC0xLjAxLjI1Mi4yNTItMS4wMWMuMTgyLS43MjMuNTU1LTEuMzgzIDEuMDgtMS45MDhzMS4xODYtLjg5OCAxLjkwNy0xLjA4eiIvPgogICAgICAgIDxwYXRoIGQ9Im01IDE1aDEzYzIuNzU3IDAgNS0yLjI0MyA1LTVzLTIuMjQzLTUtNS01Yy0uNDM4IDAtLjg3Ny4wNjEtMS4zMDMuMTgtLjc2Ni0yLjQ1NS0zLjAyMy00LjE4LTUuNjk3LTQuMTgtMy4zMDkgMC02IDIuNjkxLTYgNi0yLjIwNiAwLTQgMS43OTQtNCA0czEuNzk0IDQgNCA0em0wLTZjLjI3IDAgLjUzMy4wNTQuNzgzLjE2LjM1Mi4xNDcuNzU2LjA4NSAxLjA0My0uMTYzLjI4OC0uMjQ4LjQxMS0uNjM5LjMxNy0xLjAwNy0uMDk4LS4zNzctLjE0My0uNjkyLS4xNDMtLjk5IDAtMi4yMDYgMS43OTQtNCA0LTQgMi4wODEgMCAzLjc4NCAxLjU3NCAzLjk2MSAzLjY2Mi4wMjguMzQ1LjIzMy42NDguNTQuODA2LjMwOC4xNTguNjc1LjE0NS45Ny0uMDMyLjQ4My0uMjkuOTk3LS40MzYgMS41MjktLjQzNiAxLjY1NCAwIDMgMS4zNDYgMyAzcy0xLjM0NiAzLTMgM2gtMTNjLTEuMTAzIDAtMi0uODk3LTItMnMuODk3LTIgMi0yeiIvPgogICAgPC9nPgo8L3N2Zz4=",ice="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",oce="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUwOSA1MDkiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im0zNTkuMiAwdjg5LjhoLTg5LjgwMXY4OS44aC04OS44djg5LjhoLTg5Ljc5OXY4OS44aC04OS44djE0OS44aDUwOXYtNTA5em0xMTkuOCA0NzloLTQ0OXYtODkuOGg4OS44di04OS44aDg5Ljh2LTg5LjhoODkuOHYtODkuOGg4OS44di04OS44aDg5Ljh6Ii8+CiAgICAgICAgPHBhdGggZD0ibTY4LjQ0OCAxNzYuOTU2IDk0LjA0MS05NC4wNC0zLjYyOSA0My4wNjYgMjkuODk1IDIuNTE5IDguNTYyLTEwMS42MjYtMTAxLjYyNyA4LjU2MiAyLjUxOCAyOS44OTQgNDMuMDY4LTMuNjI4LTk0LjA0MSA5NC4wNHoiLz4KICAgIDwvZz4KPC9zdmc+",rce="PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMjM4LjkzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y0Mi42NjcKCQkJQzI0Ny40NjcsMzcuOTU2LDI0My42NDQsMzQuMTMzLDIzOC45MzMsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NzcuODY3LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjc2LjhjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzUzQ4Ni40LDgxLjUxLDQ4Ni40LDc2LjhWNDIuNjY3CgkJCUM0ODYuNCwzNy45NTYsNDgyLjU3NywzNC4xMzMsNDc3Ljg2NywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE3OS4yLDBIOC41MzNDMy44MjMsMCwwLDMuODIzLDAsOC41MzN2NDk0LjkzM0MwLDUwOC4xNzcsMy44MjMsNTEyLDguNTMzLDUxMkgxNzkuMmM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzMKCQkJVjguNTMzQzE4Ny43MzMsMy44MjMsMTgzLjkxLDAsMTc5LjIsMHogTTE3MC42NjcsNDk0LjkzM2gtMTUzLjZWMTcuMDY3aDE1My42VjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMzU4LjRIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxMzYuNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gzMjQuMjY3CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzY2LjkzM0M1MTIsMzYyLjIyMyw1MDguMTc3LDM1OC40LDUwMy40NjcsMzU4LjR6IE00OTQuOTMzLDQ5NC45MzNoLTMwNy4yVjM3NS40NjdoMzA3LjIKCQkJVjQ5NC45MzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMy40NjcsMEgxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjguNTMzQzUxMiwzLjgyMyw1MDguMTc3LDAsNTAzLjQ2NywweiBNNDk0LjkzMywzNC4xMzNoLTMwNy4yVjE3LjA2N2gzMDcuMlYzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEzNi41MzMsMjQ3LjQ2N2gtMjUuNmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDI1LjZjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMxNDEuMjQ0LDI0Ny40NjcsMTM2LjUzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMTAuOTMzLDI0Ny40NjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YyNS42YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YyNTYKCQkJQzExOS40NjcsMjUxLjI5LDExNS42NDQsMjQ3LjQ2NywxMTAuOTMzLDI0Ny40Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM2Ni45MzMsNDE4LjEzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzaDUxLjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVMzNzEuNjQ0LDQxOC4xMzMsMzY2LjkzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNDEuMzMzLDQxOC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YxNy4wNjdjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCXYtMTcuMDY3QzM0OS44NjcsNDIxLjk1NiwzNDYuMDQ0LDQxOC4xMzMsMzQxLjMzMyw0MTguMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yOTAuMTMzLDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMyOTguNjY3LDM3Ljk1NiwyOTQuODQ0LDM0LjEzMywyOTAuMTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywxMTkuNDY3Yy00NS45MzUsMC03Ni44LDE3LjE0My03Ni44LDQyLjY2N1YxNzkuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMTcuMDY3djc2LjgKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM0gzMzIuOGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhIMzU4LjRjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzM2Ni45MzMsMTM2LjYxLDMzNi4wNjgsMTE5LjQ2NywyOTAuMTMzLDExOS40Njd6IE0zNDkuODY3LDE3MC42NjdIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZIMjU2di03Ni44CgkJCWMwLTQuNzEtMy44MjMtOC41MzMtOC41MzMtOC41MzNIMjMwLjR2LTguNTMzYzAtMTIuNDA3LDIwLjkzMi0yNS42LDU5LjczMy0yNS42czU5LjczMywxMy4xOTMsNTkuNzMzLDI1LjZWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQ5Ljg2NywxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNIMzMyLjhjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDI2LjY2NywxMzYuNjEsMzk1LjgwMiwxMTkuNDY3LDM0OS44NjcsMTE5LjQ2N3ogTTQwOS42LDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJSDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3YzAtOS44MTMtNC43MzYtMTguNTc3LTEzLjM4LTI1LjU1N2MzNi40MzcsMC44MDIsNTYuMDQ3LDEzLjU0Miw1Ni4wNDcsMjUuNTU3CgkJCVYxNzAuNjY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDkuNiwxMTkuNDY3Yy0xMS4zNzUsMC0yMi4wNDIsMS4wNzUtMzEuNjkzLDMuMTkxYy0zLjkxNywwLjg2Mi02LjcwNyw0LjMyNi02LjcwNyw4LjMzNwoJCQljMCw0LjAxMSwyLjc5LDcuNDc1LDYuNzA3LDguMzM3YzE5LjI1MSw0LjIxNSwzMS42OTMsMTMuMTY3LDMxLjY5MywyMi44MDF2OC41MzNoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjg1LjMzMwoJCQljMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDU5LjczM2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTc2LjhoMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUM0ODYuNCwxMzYuNjEsNDU1LjUzNSwxMTkuNDY3LDQwOS42LDExOS40Njd6IE00NjkuMzMzLDE3MC42NjdoLTE3LjA2N2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzVjI1NmgtNDIuNjY3di02OC4yNjcKCQkJaDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTMzA0LjI0Nyw4NS4zMzMsMjkwLjEzMyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDM0LjEzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjUxLjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzczguNTMzLTMuODIzLDguNTMzLTguNTMzdi01MS4yCgkJCUMzNjYuOTMzLDM3Ljk1NiwzNjMuMTEsMzQuMTMzLDM1OC40LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzU4LjQsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzM3Mi41MTQsODUuMzMzLDM1OC40LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDNDM1LjIsMzcuOTU2LDQzMS4zNzcsMzQuMTMzLDQyNi42NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MjYuNjY3LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVM0NDAuNzgxLDg1LjMzMyw0MjYuNjY3LDg1LjMzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDg2LjQsMzI0LjI2N0gxNzkuMmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjM0LjEzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzA3LjIKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1YzMzIuOEM0OTQuOTMzLDMyOC4wOSw0OTEuMTEsMzI0LjI2Nyw0ODYuNCwzMjQuMjY3eiBNNDc3Ljg2NywzNTguNEgxODcuNzMzdi0xNy4wNjdoMjkwLjEzMwoJCQlWMzU4LjR6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ2OS4zMzMsMzkyLjUzM2gtMjU2Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NjguMjY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNTYKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNjguMjY3QzQ3Ny44NjcsMzk2LjM1Niw0NzQuMDQ0LDM5Mi41MzMsNDY5LjMzMywzOTIuNTMzeiBNNDYwLjgsNDYwLjhIMjIxLjg2N3YtNTEuMkg0NjAuOAoJCQlWNDYwLjh6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Mce="PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNTUuNzU4IDYxLTEuNTY5LTUuNTdjNC4wNTMtMi4yMDQgNi44MTEtNi41MDEgNi44MTEtMTEuNDN2LTFjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMnYtMTBjMS4xMDMgMCAyLS44OTcgMi0ydi0yYzAtMS4xMDMtLjg5Ny0yLTItMmgtMjZjLTEuMTAzIDAtMiAuODk3LTIgMnYyYzAgMS4xMDMuODk3IDIgMiAydjEwYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2MmMwIDEuMTAzLjg5NyAyIDIgMnYxYzAgNC45MjkgMi43NTggOS4yMjYgNi44MTEgMTEuNDNsLTEuNTY5IDUuNTdoLTEzLjM0M2MtLjQ2NS0yLjI3OS0yLjQ4NC00LTQuODk5LTRoLTF2LTkuMDAzYzQuNjkzLTEuOTYzIDgtNi42IDgtMTEuOTk3di03aC0xOHYtNGg0djJoMnYtMmMwLTEuMTAzLS44OTctMi0yLTJoLTYtMS0xYy0xLjEwMyAwLTIgLjg5Ny0yIDJ2NGgtMnY3YzAgNS4zOTcgMy4zMDcgMTAuMDM0IDggMTEuOTk3djkuMDAzaC0xYy0yLjQxNCAwLTQuNDM0IDEuNzIxLTQuODk5IDRoLTUuMTAxdjJoNjR2LTJ6bS0yMC43NTktMzhoMjYuMDAxdjJoLTI2em0yLjAwMSA4aDR2LTJoLTR2LTJoMjJ2MTBoLTIyem0tMi4wMDEgOGgyNi4wMDF2MmgtMjZ6bTIuMDAxIDV2LTFoMjJ2MWMwIDYuMDY1LTQuOTM1IDExLTExIDExcy0xMS00LjkzNS0xMS0xMXptNi42NjEgMTIuMjRjMS4zNi40ODMgMi44MTYuNzYgNC4zMzkuNzZzMi45NzktLjI3NyA0LjMzOS0uNzZsMS4zNCA0Ljc2aC0xMS4zNTh6bS0zNi42NjEtMzEuMjRoMSAxdjRoLTJ6bTIwIDZ2MmgtMjJ2LTJ6bS0yMiA1di0xaDIydjFjMCA2LjA2NS00LjkzNSAxMS0xMSAxMXMtMTEtNC45MzUtMTEtMTF6bTggMTIuNjM3Yy45NjUuMjI5IDEuOTY2LjM2MyAzIC4zNjNzMi4wMzUtLjEzNCAzLS4zNjN2OC4zNjNoLTZ6bS0zIDEwLjM2M2gxMmMxLjMwMiAwIDIuNDAyLjgzOSAyLjgxNiAyaC0xNy42MzJjLjQxNC0xLjE2MSAxLjUxNC0yIDIuODE2LTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQgMjFoMjRjMS42NTQgMCAzLTEuMzQ2IDMtM3YtMTRjMC0xLjY1NC0xLjM0Ni0zLTMtM2gtMjRjLTEuNjU0IDAtMyAxLjM0Ni0zIDN2MTRjMCAxLjY1NCAxLjM0NiAzIDMgM3ptLTEtMTdjMC0uNTUxLjQ0OC0xIDEtMWgyNGMuNTUyIDAgMSAuNDQ5IDEgMXYxNGMwIC41NTEtLjQ0OCAxLTEgMWgtMjRjLS41NTIgMC0xLS40NDktMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyLjUxNWgydjE2Ljk3MWgtMnoiIHRyYW5zZm9ybT0ibWF0cml4KC43MDcgLS43MDcgLjcwNyAuNzA3IC00LjU1NiAxMSkiLz4KICAgICAgICA8cGF0aCBkPSJtMjAgMi41MTVoMnYxNi45NzFoLTJ6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzA3IC0uNzA3IC43MDcgLjcwNyAtMS42MjcgMTguMDcxKSIvPgogICAgICAgIDxwYXRoIGQ9Im0zNSA5aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzUgMTNoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxMWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDExaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgM2gydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NyA1aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDMgNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTU1IDEzaDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNTUgMTdoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im01NyAxNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTUzIDE1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+",nce="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTEsNTdINDguNDE0bC0uODc5LS44NzlhOC41ODcsOC41ODcsMCwwLDEtMi40NzEtNS4xMTJDNTEuMTUzLDQ4LjU4Nyw1NS42MDcsNDEuOTM0LDU1Ljk1NywzNEg1NmExLDEsMCwwLDAsMS0xVjMwYTEsMSwwLDAsMC0xLTFINTIuNDY0YTE5LjU4MiwxOS41ODIsMCwwLDAsMS42NzMtNEg1N2ExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTEtMUg0Ni44NDFBMTIuNywxMi43LDAsMCwwLDMzLjE1OSwzSDIzYTEsMSwwLDAsMC0xLDFWMjRhMSwxLDAsMCwwLDEsMWgyLjg2M2ExOS41ODIsMTkuNTgyLDAsMCwwLDEuNjczLDRIMjRhMSwxLDAsMCwwLTEsMXYzYTEsMSwwLDAsMCwxLDFoLjA0M2MuMzUsNy45MzQsNC44LDE0LjU4NywxMC44OTMsMTcuMDA5YTguNTg3LDguNTg3LDAsMCwxLTIuNDcxLDUuMTEyTDMxLjU4Niw1N0gyOWExLDEsMCwwLDAtMSwxdjRhMSwxLDAsMCwwLDEsMUg1MWExLDEsMCwwLDAsMS0xVjU4QTEsMSwwLDAsMCw1MSw1N1pNNTYsNVYyM0g1NC42MTFBMjEuNDQ3LDIxLjQ0NywwLDAsMCw1NSwxOSwxOS40OTMsMTkuNDkzLDAsMCwwLDQ5LjQwNyw1Wk0yNCwyM1Y1aDYuNTkzQTE5LjQ5MywxOS40OTMsMCwwLDAsMjUsMTlhMjEuNDQ3LDIxLjQ0NywwLDAsMCwuMzg5LDRabTMtNGMwLTguODIyLDUuODMyLTE2LDEzLTE2czEzLDcuMTc4LDEzLDE2YTE4LjQwNywxOC40MDcsMCwwLDEtMi44NzIsMTBINDcuNjgyQTE2LDE2LDAsMCwwLDUxLDE5YzAtNy43Mi00LjkzNS0xNC0xMS0xNFMyOSwxMS4yOCwyOSwxOWExNiwxNiwwLDAsMCwzLjMxOCwxMEgyOS44NzJBMTguNDA3LDE4LjQwNywwLDAsMSwyNywxOVptOC4wNjEsMTBBMTMuMzA4LDEzLjMwOCwwLDAsMSwzMSwxOWMwLTYuNjE3LDQuMDM3LTEyLDktMTJzOSw1LjM4Myw5LDEyYTEzLjMwOCwxMy4zMDgsMCwwLDEtNC4wNjEsMTBaTTI1LDMxSDU1djFIMjVabTEuMDQyLDNINTMuOTU4QzUzLjUyOCw0Mi45MDgsNDcuNDQyLDUwLDQwLDUwUzI2LjQ3Miw0Mi45MDgsMjYuMDQyLDM0Wk0zNi44NjQsNTEuNjI5YTEzLjQ0LDEzLjQ0LDAsMCwwLDYuMjcyLDBBMTAuNTM5LDEwLjUzOSwwLDAsMCw0NS42MzYsNTdIMzQuMzY0QTEwLjUzOSwxMC41MzksMCwwLDAsMzYuODY0LDUxLjYyOVpNNTAsNjFIMzBWNTlINTBaIi8+CiAgICAgICAgPHJlY3QgeD0iMjUiIHk9IjYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz4KICAgICAgICA8cGF0aCBkPSJNMjMsNTdoLS4wOEE3LjAxLDcuMDEsMCwwLDAsMTksNTEuNjg1VjQ4YTEsMSwwLDAsMC0xLTFIMTdWMjYuODE2YTMsMywwLDEsMC0yLDBWNDdIMTRhMSwxLDAsMCwwLTEsMXYzLjY4NUE3LjAxLDcuMDEsMCwwLDAsOS4wOCw1N0g5YTMsMywwLDAsMCwwLDZIMjNhMywzLDAsMCwwLDAtNlpNMTYsMjNhMSwxLDAsMSwxLTEsMUExLDEsMCwwLDEsMTYsMjNaTTE1LDQ5aDJ2Mi4wOGE2LjI5LDYuMjksMCwwLDAtMiwwWm0xLDRhNS4wMDYsNS4wMDYsMCwwLDEsNSw1SDExQTUuMDA2LDUuMDA2LDAsMCwxLDE2LDUzWm03LDhIOWExLDEsMCwwLDEsMC0yLDEsMSwwLDAsMCwxLDFIMjJhMSwxLDAsMCwwLDEtMSwxLDEsMCwwLDEsMCwyWiIvPgogICAgICAgIDxwYXRoIGQ9Ik04LDE1YTEsMSwwLDAsMCwxLTEsNS4wMDYsNS4wMDYsMCwwLDEsNS01LDEsMSwwLDAsMCwwLTJBNS4wMDYsNS4wMDYsMCwwLDEsOSwyLDEsMSwwLDAsMCw3LDIsNS4wMDYsNS4wMDYsMCwwLDEsMiw3LDEsMSwwLDAsMCwyLDlhNS4wMDYsNS4wMDYsMCwwLDEsNSw1QTEsMSwwLDAsMCw4LDE1Wk01LjYsOEE3LjA2Niw3LjA2NiwwLDAsMCw4LDUuNiw3LjA2Niw3LjA2NiwwLDAsMCwxMC40LDgsNy4wNjYsNy4wNjYsMCwwLDAsOCwxMC40LDcuMDY2LDcuMDY2LDAsMCwwLDUuNiw4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNCwxMWEzLDMsMCwwLDEtMywzLDEsMSwwLDAsMCwwLDIsMywzLDAsMCwxLDMsMywxLDEsMCwwLDAsMiwwLDMsMywwLDAsMSwzLTMsMSwxLDAsMCwwLDAtMiwzLDMsMCwwLDEtMy0zLDEsMSwwLDAsMC0yLDBabTIsNGE1LjAxNyw1LjAxNywwLDAsMC0xLDEsNS4wMTcsNS4wMTcsMCwwLDAtMS0xLDUuMDE3LDUuMDE3LDAsMCwwLDEtMUE1LjAxNyw1LjAxNywwLDAsMCwxNiwxNVoiLz4KICAgICAgICA8cGF0aCBkPSJNNjIsNDhhMywzLDAsMCwxLTMtMywxLDEsMCwwLDAtMiwwLDMsMywwLDAsMS0zLDMsMSwxLDAsMCwwLDAsMiwzLDMsMCwwLDEsMywzLDEsMSwwLDAsMCwyLDAsMywzLDAsMCwxLDMtMywxLDEsMCwwLDAsMC0yWm0tNCwyYTUuMDE3LDUuMDE3LDAsMCwwLTEtMSw1LjAxNyw1LjAxNywwLDAsMCwxLTEsNS4wMTcsNS4wMTcsMCwwLDAsMSwxQTUuMDE3LDUuMDE3LDAsMCwwLDU4LDUwWiIvPgogICAgPC9nPgo8L3N2Zz4K",ace="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0iTTIzOC45MzMsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWNzYuOGMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWNDIuNjY3CgkJCUMyNDcuNDY3LDM3Ljk1NiwyNDMuNjQ0LDM0LjEzMywyMzguOTMzLDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDc3Ljg2NywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1Y3Ni44YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1M0ODYuNCw4MS41MSw0ODYuNCw3Ni44VjQyLjY2NwoJCQlDNDg2LjQsMzcuOTU2LDQ4Mi41NzcsMzQuMTMzLDQ3Ny44NjcsMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xNzkuMiwwSDguNTMzQzMuODIzLDAsMCwzLjgyMywwLDguNTMzdjQ5NC45MzNDMCw1MDguMTc3LDMuODIzLDUxMiw4LjUzMyw1MTJIMTc5LjJjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzCgkJCVY4LjUzM0MxODcuNzMzLDMuODIzLDE4My45MSwwLDE3OS4yLDB6IE0xNzAuNjY3LDQ5NC45MzNoLTE1My42VjE3LjA2N2gxNTMuNlY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDM1OC40SDE3OS4yYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMzI0LjI2NwoJCQljNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzVjM2Ni45MzNDNTEyLDM2Mi4yMjMsNTA4LjE3NywzNTguNCw1MDMuNDY3LDM1OC40eiBNNDk0LjkzMyw0OTQuOTMzaC0zMDcuMlYzNzUuNDY3aDMwNy4yCgkJCVY0OTQuOTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDMuNDY3LDBIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMyNC4yNjcKCQkJYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM1Y4LjUzM0M1MTIsMy44MjMsNTA4LjE3NywwLDUwMy40NjcsMHogTTQ5NC45MzMsMzQuMTMzaC0zMDcuMlYxNy4wNjdoMzA3LjJWMzQuMTMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMzYuNTMzLDI0Ny40NjdoLTI1LjZjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2gyNS42YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMTQxLjI0NCwyNDcuNDY3LDEzNi41MzMsMjQ3LjQ2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTEwLjkzMywyNDcuNDY3Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MjUuNmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzNWMjU2CgkJCUMxMTkuNDY3LDI1MS4yOSwxMTUuNjQ0LDI0Ny40NjcsMTEwLjkzMywyNDcuNDY3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNjYuOTMzLDQxOC4xMzNoLTUxLjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1MS4yYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQlTMzcxLjY0NCw0MTguMTMzLDM2Ni45MzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMzQxLjMzMyw0MTguMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2MTcuMDY3YzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzMwoJCQl2LTE3LjA2N0MzNDkuODY3LDQyMS45NTYsMzQ2LjA0NCw0MTguMTMzLDM0MS4zMzMsNDE4LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNMjkwLjEzMywzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMjk4LjY2NywzNy45NTYsMjk0Ljg0NCwzNC4xMzMsMjkwLjEzMywzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsMTE5LjQ2N2MtNDUuOTM1LDAtNzYuOCwxNy4xNDMtNzYuOCw0Mi42NjdWMTc5LjJjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDE3LjA2N3Y3Ni44CgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNIMzMyLjhjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44SDM1OC40YzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtMTcuMDY3CgkJCUMzNjYuOTMzLDEzNi42MSwzMzYuMDY4LDExOS40NjcsMjkwLjEzMywxMTkuNDY3eiBNMzQ5Ljg2NywxNzAuNjY3SDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNWMjU2SDI1NnYtNzYuOAoJCQljMC00LjcxLTMuODIzLTguNTMzLTguNTMzLTguNTMzSDIzMC40di04LjUzM2MwLTEyLjQwNywyMC45MzItMjUuNiw1OS43MzMtMjUuNnM1OS43MzMsMTMuMTkzLDU5LjczMywyNS42VjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM0OS44NjcsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzSDMzMi44Yy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2ODUuMzMzCgkJCWMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoNTkuNzMzYzQuNzEsMCw4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNzYuOGgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjcKCQkJQzQyNi42NjcsMTM2LjYxLDM5NS44MDIsMTE5LjQ2NywzNDkuODY3LDExOS40Njd6IE00MDkuNiwxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCUgzNTguNGM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2N2MwLTkuODEzLTQuNzM2LTE4LjU3Ny0xMy4zOC0yNS41NTdjMzYuNDM3LDAuODAyLDU2LjA0NywxMy41NDIsNTYuMDQ3LDI1LjU1NwoJCQlWMTcwLjY2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjYsMTE5LjQ2N2MtMTEuMzc1LDAtMjIuMDQyLDEuMDc1LTMxLjY5MywzLjE5MWMtMy45MTcsMC44NjItNi43MDcsNC4zMjYtNi43MDcsOC4zMzcKCQkJYzAsNC4wMTEsMi43OSw3LjQ3NSw2LjcwNyw4LjMzN2MxOS4yNTEsNC4yMTUsMzEuNjkzLDEzLjE2NywzMS42OTMsMjIuODAxdjguNTMzaC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y4NS4zMzMKCQkJYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2g1OS43MzNjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi03Ni44aDE3LjA2N2M0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTE3LjA2NwoJCQlDNDg2LjQsMTM2LjYxLDQ1NS41MzUsMTE5LjQ2Nyw0MDkuNiwxMTkuNDY3eiBNNDY5LjMzMywxNzAuNjY3aC0xNy4wNjdjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM1YyNTZoLTQyLjY2N3YtNjguMjY3CgkJCWgxNy4wNjdjNC43MSwwLDguNTMzLTMuODIzLDguNTMzLTguNTMzdi0xNy4wNjdjMC05LjgxMy00LjczNi0xOC41NzctMTMuMzgtMjUuNTU3YzM2LjQzNywwLjgwMiw1Ni4wNDcsMTMuNTQyLDU2LjA0NywyNS41NTcKCQkJVjE3MC42Njd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5MC4xMzMsODUuMzMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzAyLDAsOC41MzMsMy44MzEsOC41MzMsOC41MzMKCQkJYzAsNC43MDItMy44MzEsOC41MzMtOC41MzMsOC41MzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3MzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2MxNC4xMTQsMCwyNS42LTExLjQ4NiwyNS42LTI1LjYKCQkJUzMwNC4yNDcsODUuMzMzLDI5MC4xMzMsODUuMzMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zNTguNCwzNC4xMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3Y1MS4yYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgyMyw4LjUzMy04LjUzM3YtNTEuMgoJCQlDMzY2LjkzMywzNy45NTYsMzYzLjExLDM0LjEzMywzNTguNCwzNC4xMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTM1OC40LDg1LjMzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzYzAsNC43MSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM2M0LjcwMiwwLDguNTMzLDMuODMxLDguNTMzLDguNTMzCgkJCWMwLDQuNzAyLTMuODMxLDguNTMzLTguNTMzLDguNTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNjMTQuMTE0LDAsMjUuNi0xMS40ODYsMjUuNi0yNS42CgkJCVMzNzIuNTE0LDg1LjMzMywzNTguNCw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQyNi42NjcsMzQuMTMzYy00LjcxLDAtOC41MzMsMy44MjMtOC41MzMsOC41MzN2NTEuMmMwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNzOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTUxLjIKCQkJQzQzNS4yLDM3Ljk1Niw0MzEuMzc3LDM0LjEzMyw0MjYuNjY3LDM0LjEzM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNDI2LjY2Nyw4NS4zMzNjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNjNC43MDIsMCw4LjUzMywzLjgzMSw4LjUzMyw4LjUzMwoJCQljMCw0LjcwMi0zLjgzMSw4LjUzMy04LjUzMyw4LjUzM2MtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzczMuODIzLDguNTMzLDguNTMzLDguNTMzYzE0LjExNCwwLDI1LjYtMTEuNDg2LDI1LjYtMjUuNgoJCQlTNDQwLjc4MSw4NS4zMzMsNDI2LjY2Nyw4NS4zMzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ4Ni40LDMyNC4yNjdIMTc5LjJjLTQuNzEsMC04LjUzMywzLjgyMy04LjUzMyw4LjUzM3YzNC4xMzNjMCw0LjcxLDMuODIzLDguNTMzLDguNTMzLDguNTMzaDMwNy4yCgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzNWMzMyLjhDNDk0LjkzMywzMjguMDksNDkxLjExLDMyNC4yNjcsNDg2LjQsMzI0LjI2N3ogTTQ3Ny44NjcsMzU4LjRIMTg3LjczM3YtMTcuMDY3aDI5MC4xMzMKCQkJVjM1OC40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik00NjkuMzMzLDM5Mi41MzNoLTI1NmMtNC43MSwwLTguNTMzLDMuODIzLTguNTMzLDguNTMzdjY4LjI2N2MwLDQuNzEsMy44MjMsOC41MzMsOC41MzMsOC41MzNoMjU2CgkJCWM0LjcxLDAsOC41MzMtMy44MjMsOC41MzMtOC41MzN2LTY4LjI2N0M0NzcuODY3LDM5Ni4zNTYsNDc0LjA0NCwzOTIuNTMzLDQ2OS4zMzMsMzkyLjUzM3ogTTQ2MC44LDQ2MC44SDIyMS44Njd2LTUxLjJINDYwLjgKCQkJVjQ2MC44eiIvPgogICAgPC9nPgo8L3N2Zz4K",cce="PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTE5NC44MzYgNThoLTExOS4zMjhjLTI0LjQ0NSAwLTQ0LjMzNiAxOS44ODktNDQuMzM2IDQ0LjMzNnYxMTkuMzI4YzAgMjQuNDQ3IDE5Ljg5MSA0NC4zMzYgNDQuMzM2IDQ0LjMzNmgxMTkuMzI4YzI0LjQ0NSAwIDQ0LjMzNi0xOS44ODkgNDQuMzM2LTQ0LjMzNnYtMTE5LjMyOGMwLTI0LjQ0Ny0xOS44OTEtNDQuMzM2LTQ0LjMzNi00NC4zMzZ6bTM2LjMzNiAxNjMuNjY0YzAgMjAuMDM1LTE2LjMwMSAzNi4zMzYtMzYuMzM2IDM2LjMzNmgtMTE5LjMyOGMtMjAuMDM1IDAtMzYuMzM2LTE2LjMwMS0zNi4zMzYtMzYuMzM2di0xMTkuMzI4YzAtMjAuMDM1IDE2LjMwMS0zNi4zMzYgMzYuMzM2LTM2LjMzNmgxMTkuMzI4YzIwLjAzNSAwIDM2LjMzNiAxNi4zMDEgMzYuMzM2IDM2LjMzNnoiLz4KICAgICAgICA8cGF0aCBkPSJtMTM1LjE3MiA3NGMtNDkuNjI1IDAtOTAgNDAuMzczLTkwIDkwczQwLjM3NSA5MCA5MCA5MCA5MC00MC4zNzMgOTAtOTAtNDAuMzc1LTkwLTkwLTkwem0wIDE3MmMtNDUuMjE1IDAtODItMzYuNzg1LTgyLTgyczM2Ljc4NS04MiA4Mi04MiA4MiAzNi43ODUgODIgODItMzYuNzg1IDgyLTgyIDgyeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzUuMTcyIDkwYy00MC44MDUgMC03NCAzMy4xOTUtNzQgNzRzMzMuMTk1IDc0IDc0IDc0IDc0LTMzLjE5NSA3NC03NC0zMy4xOTUtNzQtNzQtNzR6bTAgMTQwYy0zNi4zOTEgMC02Ni0yOS42MDctNjYtNjZzMjkuNjA5LTY2IDY2LTY2IDY2IDI5LjYwNyA2NiA2Ni0yOS42MSA2Ni02NiA2NnoiLz4KICAgICAgICA8cGF0aCBkPSJtNzkuMTcyIDEzOHYzMmMwIDIuMjA5IDEuNzg5IDQgNCA0aDEwNGMyLjIxMSAwIDQtMS43OTEgNC00di0zMmMwLTIuMjA5LTEuNzg5LTQtNC00aC0xMDRjLTIuMjExIDAtNCAxLjc5MS00IDR6bTggNGg5NnYyNGgtOTZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExNy4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEyOS4xNzIgMTI4LjUzYzIuNTAxIDAgNC41My0yLjAyOCA0LjUzLTQuNTNzLTIuMDI4LTQuNTMtNC41My00LjUzLTQuNTMgMi4wMjgtNC41MyA0LjUzYzAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTN6Ii8+CiAgICAgICAgPHBhdGggZD0ibTE0NS4xNzIgMTUxLjQ3Yy0yLjUwMiAwLTQuNTMgMi4wMjgtNC41MyA0LjUzIDAgMi41MDEgMi4wMjggNC41MyA0LjUzIDQuNTMgMi41MDEgMCA0LjUzLTIuMDI4IDQuNTMtNC41My0uMDAxLTIuNTAyLTIuMDI5LTQuNTMtNC41My00LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNDEuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNTMuMTcyIDEyOC41M2MyLjUwMSAwIDQuNTMtMi4wMjggNC41My00LjUzcy0yLjAyOC00LjUzLTQuNTMtNC41My00LjUzIDIuMDI4LTQuNTMgNC41M2MwIDIuNTAxIDIuMDI4IDQuNTMgNC41MyA0LjUzeiIvPgogICAgICAgIDxjaXJjbGUgY3g9IjE5OS4xNzIiIGN5PSIzOCIgcj0iNCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMzkuMTcyIDQ2Yy02LjYxNyAwLTEyIDUuMzgzLTEyIDEyczUuMzgzIDEyIDEyIDEyIDEyLTUuMzgzIDEyLTEyLTUuMzgzLTEyLTEyLTEyem0wIDE2Yy0yLjIwNyAwLTQtMS43OTUtNC00czEuNzkzLTQgNC00IDQgMS43OTUgNCA0LTEuNzkzIDQtNCA0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjQuODI4IDExMCAyLjgyOC0yLjgyOGMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2cy00LjA5NC0xLjU2Mi01LjY1NiAwbC0yLjgyOCAyLjgyOC0yLjgyOC0yLjgyOGMtMS41NjItMS41NjItNC4wOTQtMS41NjItNS42NTYgMHMtMS41NjIgNC4wOTQgMCA1LjY1NmwyLjgyOCAyLjgyOC0yLjgyOCAyLjgyOGMtMS41NjIgMS41NjItMS41NjIgNC4wOTQgMCA1LjY1Ni43ODEuNzgxIDEuODA1IDEuMTcyIDIuODI4IDEuMTcyczIuMDQ3LS4zOTEgMi44MjgtMS4xNzJsMi44MjgtMi44MjggMi44MjggMi44MjhjLjc4MS43ODEgMS44MDUgMS4xNzIgMi44MjggMS4xNzJzMi4wNDctLjM5MSAyLjgyOC0xLjE3MmMxLjU2Mi0xLjU2MiAxLjU2Mi00LjA5NCAwLTUuNjU2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMzkuMTcyIDE5NGgtNC45MzRsNS44NTktOS43NjhjMS4xMzctMS44OTUuNTIzLTQuMzUyLTEuMzcxLTUuNDg4LTEuODk4LTEuMTM3LTQuMzUyLS41MjEtNS40ODggMS4zNzFsLTkuNDk2IDE1LjgyNmMtLjc0MiAxLjIzNi0uNzYyIDIuNzc1LS4wNTEgNC4wMjlzMi4wMzkgMi4wMjkgMy40OCAyLjAyOWg1LjUyN2wtNS4xMDUgMTAuMjExYy0uOTg4IDEuOTc3LS4xODggNC4zNzkgMS43ODkgNS4zNjcuNTc0LjI4NyAxLjE4NC40MjIgMS43ODUuNDIyIDEuNDY5IDAgMi44NzktLjgwOSAzLjU4Mi0yLjIxMWw4LTE2Yy42MjEtMS4yNC41NTUtMi43MTMtLjE3Ni0zLjg5My0uNzI5LTEuMTc2LTIuMDE0LTEuODk1LTMuNDAxLTEuODk1eiIvPgogICAgICAgIDxwYXRoIGQ9Im05NS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMDcuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTE5LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEzMS4xNzIgMTQ2Yy0yLjIxMSAwLTQgMS43OTEtNCA0djhjMCAyLjIwOSAxLjc4OSA0IDQgNHM0LTEuNzkxIDQtNHYtOGMwLTIuMjA5LTEuNzg5LTQtNC00eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNjMuMTcyIDE0NmMtMi4yMTEgMC00IDEuNzkxLTQgNHY4YzAgMi4yMDkgMS43ODkgNCA0IDRzNC0xLjc5MSA0LTR2LThjMC0yLjIwOS0xLjc4OS00LTQtNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTc1LjE3MiAxNDZjLTIuMjExIDAtNCAxLjc5MS00IDR2OGMwIDIuMjA5IDEuNzg5IDQgNCA0czQtMS43OTEgNC00di04YzAtMi4yMDktMS43ODktNC00LTR6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",uce="PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDUxMi41IDUxMi41IiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsNDE4LjVjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjV2NzguNWMwLDkuNjczLDE1LDkuNjczLDE1LDBWNDI2QzUxMi4yNSw0MjEuODU4LDUwOC44OTMsNDE4LjUsNTA0Ljc1LDQxOC41eiIvPgogICAgICAgIDxwYXRoIGQ9Ik01MDQuNzUsMjQ5LjM1NWgtNTguODk0di0yNy4wNDNoMTguMDExYzEwLjk2NCwwLDE5Ljg4My04LjkxOSwxOS44ODMtMTkuODgzVjE5Ljg4NEM0ODMuNzUsOC45Miw0NzQuODMxLDAsNDYzLjg2NywwICAgSDE4NC4wNTljLTEwLjk2NCwwLTE5Ljg4Myw4LjkyLTE5Ljg4MywxOS44ODR2MjYuOTI5YzAsOS42NzMsMTUsOS42NzMsMTUsMFYxOS44ODRjMC0yLjY5MywyLjE5LTQuODg0LDQuODgzLTQuODg0aDI3OS44MDkgICBjMi42OTIsMCw0Ljg4MywyLjE5MSw0Ljg4Myw0Ljg4NHYxNDUuNDI5aC0yMi44OTRWODUuNDA2YzAtMi40NzUtMS4yMjEtNC43OS0zLjI2My02LjE4OGMtMi4wNDEtMS4zOTgtNC42NDEtMS42OTktNi45NDktMC44MDUgICBjLTEuOTYyLDAuNzYxLTQzLjM0LDE3LjY1OS01Mi4xNDYsODYuODk5SDE3OS4xNzZ2LTc5LjVjMC05LjY3My0xNS05LjY3My0xNSwwdjExNi42MTdjMCwxMC45NjQsOC45MTksMTkuODgzLDE5Ljg4MywxOS44ODMgICBoMTAwLjc0NnYyNy4wNDNIMTE0LjUxNmMxNi42MTItMTYuNTk0LDE4LjIzNC00Mi44NzEsMTguMjM0LTY0Ljk0OWMwLTQuMTQyLTMuMzU3LTcuNS03LjUtNy41aC00MC41di0xNC4xNTkgICBjMjQuMDYsNS4xMTQsNTAuMjg4LTE0LjYxNiw0OS45NjctMzkuNjQ1Yy0wLjA0My0zLjM1Mi0wLjQ1OS02Ljc1OC0zLjU1Ni04LjgwM2MtMTQuMjQ2LTkuNDAzLTMzLjg2Ni01LjQ4NS00Ni40MTEsNC43ODN2LTEzLjUyOSAgIGMyMS40MzMtMTQuNzkzLDIzLjAyNS00OS42MjksMi40MjktNjUuODg5Yy0yLjA3NS0xLjYzOC00LjM3MS0zLjE5Ny02LjgzNC00LjIwMWMtMTAuNTcxLTQuMzE2LTIyLjE5MSwxNC41MTMtMjQuNzEsMjEuNzgxICAgYy01Ljk1MSwxNy4xNzQtMC41NjgsMzYuOTI2LDE0LjExNCw0Ny44MjR2MTMuOTMxYy05LjYyNy03LjgzMy0yMi4yLTExLjY5Ni0zNC40ODMtOS4yMzZjLTUuMDc2LDEuMDE3LTEzLjk3MSwzLjMxNC0xNS4wNzgsOS40NjcgICBjLTQuNzU4LDI2LjQ3NiwyNS4yMzUsNDguNjQzLDQ5LjU2Miw0My41Mzl2MTQuMTM3aC00My41Yy00LjE0MywwLTcuNSwzLjM1OC03LjUsNy41YzAsMjIuMDQ3LDEuMTk2LDQ4LjM1NywxNy44MDYsNjQuOTQ5SDcuNzUgICBjLTQuMTQzLDAtNy41LDMuMzU4LTcuNSw3LjVWNTA0LjVjMCw5LjY3MywxNSw5LjY3MywxNSwwdi0zNWgxMzUuNXYzNWMwLDkuNjczLDE1LDkuNjczLDE1LDB2LTE5MWgyNjUuMjE1ICAgYzAuMDM5LDIuNjEzLDAuMjg5LDE2LjY4OCwwLjMyLDIwLjkwNkgzMDQuMzU2Yy0yOS42NTEsMC01MS42Miw3LjcxOC02NS4yOTgsMjIuOTM5Yy0xNi40MjIsMTguMjc0LTE0LjI2LDQwLjQyNi0xNC4xNTksNDEuMzU5ICAgYzAuNDA4LDMuODExLDMuNjI0LDYuNzAxLDcuNDU3LDYuNzAxaDk2Ljg5NHYxMy41aC0yOS41Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMjkuNVY0OTdoLTk2Yy05LjY3MywwLTkuNjczLDE1LDAsMTVoMTAwLjgyNSAgIGMwLjgzMiwwLjMxOCwxLjczMSwwLjUsMi42NzUsMC41czEuODQzLTAuMTgyLDIuNjc1LTAuNUg0NDAuMjVjOS42NzMsMCw5LjY3My0xNSwwLTE1aC05NnYtOTEuNTk0aDUwLjEwNiAgIGMxNy4yMTgsMCwyOS42NjQtNC4xNTEsMzguMDUyLTEyLjY5YzE0LjY5OS0xNC45NjUsMTQuMjUxLTQwLjAyMiwxMy42ODQtNzEuNzQ3Yy0wLjA0NC0yLjQ1NC0wLjA4Ny00Ljk1LTAuMTI1LTcuNDdoNTEuMjgzVjM4NCAgIGMwLDkuNjczLDE1LDkuNjczLDE1LDBWMjU2Ljg1NUM1MTIuMjUsMjUyLjcxMyw1MDguODkzLDI0OS4zNTUsNTA0Ljc1LDI0OS4zNTV6IE05Ny4yNzYsMTI4LjQ5NiAgIGM5LjY1Mi02LjEyNCwxOC4wNDktNC42ODEsMjIuNDIxLTMuMTM3Yy0xLjMyLDE1LjU0Ny0yMC4yMjEsMjYuODYtMzQuNjY4LDIxLjk2M0M4NS42MzUsMTQyLjUxMSw4OC4wNzcsMTM0LjMzMiw5Ny4yNzYsMTI4LjQ5NnogICAgTTQ3LjQyNCwxNDQuMDk3Yy02LjM3Mi00LjA0My0xMS43OTItMTEuMDA1LTEyLjQ5My0xOC43NDJjMTUuMDItNS4yOCwzMi42ODMsNi40MTgsMzQuNjQsMjEuOTY3ICAgQzYyLjI4NiwxNDkuNzkyLDUzLjgxLDE0OC4xNDgsNDcuNDI0LDE0NC4wOTd6IE03Ny42MzcsNTEuMTY5YzEyLjU2LDkuNTU0LDExLjk5NywzMS4zNTktMC4wNDQsNDEuMDU0ICAgYy0zLjcxNS0zLjA1NS05LjMxOS05LjQ4MS05LjMxOS0yMC40NDFDNjguMjczLDYwLjM1Miw3My45OTEsNTQuMDM1LDc3LjYzNyw1MS4xNjl6IE0zMy44NTYsMTkxLjkwNmg4My43ODEgICBjLTEuMjcsNDAuNTE1LTEzLjM2Miw1Ni41LTQxLjg4OCw1Ni41QzQ2LjgzMiwyNDguNDA3LDM1LjA3MiwyMzIuOTM2LDMzLjg1NiwxOTEuOTA2eiBNNDIxLjcwNywzODIuMjA1ICAgYy01LjQyMSw1LjUxOS0xNC4zNjcsOC4yMDEtMjcuMzUxLDguMjAxSDI0MC4wMTNjMC42OTQtNS45ODgsMy4wMDYtMTUuMDI2LDEwLjIwMy0yMy4wMzUgICBjMTAuNzEyLTExLjkyMSwyOC45MjctMTcuOTY1LDU0LjE0MS0xNy45NjVoMTI2LjczNkM0MzAuNDczLDM2NC4xMDUsNDI4LjI1MSwzNzUuNTQzLDQyMS43MDcsMzgyLjIwNXogTTQ2OC43NSwxODAuMzEzdjIyLjExNyAgIGMwLDIuNjkzLTIuMTksNC44ODMtNC44ODMsNC44ODNoLTE4LjAxMXYtMjdINDY4Ljc1eiBNNDE5LjEyNiwxMTEuMzU4YzQuMDg0LTUuMzk1LDguMTktOS40MSwxMS43My0xMi4zMjJ2MTg3Ljg2MyAgIGMtMy41MjgtMy4wMjMtNy42MDQtNy4xNDYtMTEuNjU5LTEyLjYyMmMtMTQuNjE1LTE5LjczOS0yMi4zNDEtNDguMDQ5LTIyLjM0MS04MS44NzIgICBDMzk2Ljg1NiwxNTguNjMyLDQwNC41NTgsMTMwLjYwNiw0MTkuMTI2LDExMS4zNTh6IE0zODMuODczLDIyMi4zMTNjMS40MzIsMTAuMDk1LDMuNTUzLDE5LjA3Nyw2LjEzOCwyNy4wNDNoLTI2Ljg5di0yNy4wNDMgICBIMzgzLjg3M3ogTTE3OS4xNzYsMjAyLjQyOXYtMjIuMTE3aDIwMi45OTNjLTAuNDY5LDguOTkyLTAuNDE1LDE4LjAxNSwwLjE2OSwyN0gxODQuMDU5ICAgQzE4MS4zNjYsMjA3LjMxMywxNzkuMTc2LDIwNS4xMjIsMTc5LjE3NiwyMDIuNDI5eiBNMjk5LjgwNSwyMjIuMzEzaDQ4LjMxNnYyNy4wNDNoLTQ4LjMxNlYyMjIuMzEzeiBNMzk1LjkwMSwyNjQuMzU1ICAgYzcuODE1LDE2LjcsMTcuNTE2LDI3LjQ4OCwyNS4zNjUsMzQuMTQ1SDE1LjI1di0zNC4xNDVIMzk1LjkwMXogTTE1LjI1LDQ1NC41di02M2gxMzUuNXY2M0gxNS4yNXogTTE1MC43NSwzNzYuNUgxNS4yNXYtNjNoMTM1LjUgICBWMzc2LjV6IE00NDUuODU2LDI5OC41di0zNC4xNDVoNTEuMzk0VjI5OC41SDQ0NS44NTZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTU0Ljc1LDM1Mi41aDU3YzkuNjczLDAsOS42NzMtMTUsMC0xNWgtNTdDNDUuMDc3LDMzNy41LDQ1LjA3NywzNTIuNSw1NC43NSwzNTIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJNMTExLjc1LDQxNS41aC01N2MtOS42NzMsMC05LjY3MywxNSwwLDE1aDU3QzEyMS40MjMsNDMwLjUsMTIxLjQyMyw0MTUuNSwxMTEuNzUsNDE1LjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Nce={Anteroom:mae,Attic:Oae,Balcony:Eae,Barn:_ae,Basement:Sae,Bathroom:xae,Bedroom:fae,"Boiler Room":"PHN2ZyBoZWlnaHQ9IjQ4MHB0IiB2aWV3Qm94PSItMyAwIDQ4MCA0ODAiIHdpZHRoPSI0ODBwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTIzNC45Njg3NSA2NGMtMTMuMjUzOTA2IDAtMjQgMTAuNzQ2MDk0LTI0IDI0czEwLjc0NjA5NCAyNCAyNCAyNCAyNC0xMC43NDYwOTQgMjQtMjQtMTAuNzQ2MDk0LTI0LTI0LTI0em0wIDMyYy00LjQxNzk2OSAwLTgtMy41ODIwMzEtOC04czMuNTgyMDMxLTggOC04IDggMy41ODIwMzEgOCA4LTMuNTgyMDMxIDgtOCA4em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMzA2Ljk2ODc1IDE2MGgtMTQ0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djY0YzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoMTQ0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTY0YzAtNC40MTc5NjktMy41ODIwMzEtOC04LTh6bS04IDY0aC0xMjh2LTQ4aDEyOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTE4Ni45Njg3NSAxOTJoMTZ2MTZoLTE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMjE4Ljk2ODc1IDE5MmgzMnYxNmgtMzJ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yNjYuOTY4NzUgMTkyaDE2djE2aC0xNnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTEzOC45Njg3NSA3MnYzMmgxNnYtMjRoMTZ2LTE2aC0yNGMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ2Ni45Njg3NSAwaC0zMmMtNC40MTc5NjkgMC04IDMuNTgyMDMxLTggOHYxOTJjMCA0LjQxNzk2OS0zLjU4MjAzMSA4LTggOGgtNTZ2LTU2aDI0YzQuNDE3OTY5IDAgOC0zLjU4MjAzMSA4LTh2LTQ4YzAtNC40MTc5NjktMy41ODIwMzEtOC04LThoLTI0di0xNmMtLjAyNzM0NC0yMi4wODIwMzEtMTcuOTIxODc1LTM5Ljk3MjY1Ni00MC00MGgtMTZ2LTE2aC0xNnYxNmgtMTcuNzYxNzE5bC02LjQ4MDQ2OS0yNS45Mzc1Yy0uODg2NzE4LTMuNTYyNS00LjA4NTkzNy02LjA2MjUtNy43NTc4MTItNi4wNjI1aC00OGMtMy42NzE4NzUgMC02Ljg3MTA5NCAyLjUtNy43NjE3MTkgNi4wNjI1bC02LjQ4MDQ2OSAyNS45Mzc1aC0xNy43NTc4MTJ2LTE2aC0xNnYxNmgtMTZjLTIyLjA4MjAzMS4wMjczNDQtMzkuOTcyNjU2IDE3LjkxNzk2OS00MCA0MHY1NmgtMjRjLTQuNDE3OTY5IDAtOCAzLjU4MjAzMS04IDh2NjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGgyNHYyMjRoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTQxLjcxMDkzOGMxMi4zNzEwOTQgNi4zNzUgMjYuMDgyMDMxIDkuNzAzMTI2IDQwIDkuNzEwOTM4aDh2MjRjMCA0LjQxNzk2OSAzLjU4MjAzMSA4IDggOGg0OGM0LjQxNzk2OSAwIDgtMy41ODIwMzEgOC04di0yNGg4YzEzLjkxNDA2Mi0uMDA3ODEyIDI3LjYyODkwNi0zLjMzNTkzOCA0MC05LjcxMDkzOHY0MS43MTA5MzhoLTI0Yy00LjQxNzk2OSAwLTggMy41ODIwMzEtOCA4djMyYzAgNC40MTc5NjkgMy41ODIwMzEgOCA4IDhoOTZjNC40MTc5NjkgMCA4LTMuNTgyMDMxIDgtOHYtMzJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOGgtMjR2LTE3Nmg1NmMzMC45MTAxNTYtLjAzOTA2MiA1NS45NjA5MzgtMjUuMDg5ODQ0IDU2LTU2di0xOTJjMC00LjQxNzk2OS0zLjU4MjAzMS04LTgtOHptLTg4IDEwNHYzMmgtMTZ2LTMyem0tMTYxLjc1MzkwNi04OGgzNS41MDM5MDZsNCAxNmgtNDMuNTAzOTA2em0tOTQuMjQ2MDk0IDU2YzAtMTMuMjUzOTA2IDEwLjc0NjA5NC0yNCAyNC0yNGgxNzZjMTMuMjUzOTA2IDAgMjQgMTAuNzQ2MDk0IDI0IDI0djU2aC0yMjR6bS0zMiAxMjB2LTQ4aDE2djQ4em04MCAyNzJoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNjkuNTU4NTk0YzQuNTM1MTU2IDYuNDg0Mzc1IDkuOTE0MDYyIDEyLjMzMjAzMiAxNiAxNy4zOTA2MjV6bTExMi0xNmgtMzJ2LTE2aDMyem0xMjggNDhoLTgwdi0xNmg4MHptLTMyLTMyaC0xNnYtNTIuMTY3OTY5YzYuMDgyMDMxLTUuMDU4NTkzIDExLjQ2NDg0NC0xMC45MDYyNSAxNi0xNy4zOTA2MjV6bTAtMTIwYy0uMDQyOTY5IDM5Ljc0NjA5NC0zMi4yNTM5MDYgNzEuOTU3MDMxLTcyIDcyaC04MGMtMzkuNzQ2MDk0LS4wNDI5NjktNzEuOTU3MDMxLTMyLjI1MzkwNi03Mi03MnYtMTY4aDIyNHptMTEyLTExMmMtLjAyNzM0NCAyMi4wODIwMzEtMTcuOTIxODc1IDM5Ljk3MjY1Ni00MCA0MGgtNTZ2LTE2aDU2YzEzLjI1MzkwNiAwIDI0LTEwLjc0NjA5NCAyNC0yNHYtMTg0aDE2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNTYuNjI1IDUzLjY1NjI1IDEwLjM0Mzc1LTEwLjM0Mzc1IDE4LjM0Mzc1IDE4LjM0Mzc1IDExLjMxMjUtMTEuMzEyNS0yNC0yNGMtMy4xMjUtMy4xMjEwOTQtOC4xODc1LTMuMTIxMDk0LTExLjMxMjUgMGwtMTAuOTM3NSAxMC45Mzc1LTM0LjM5ODQzOC0yNy41MjczNDQtMTAuMDA3ODEyIDEyLjQ5MjE4OCA0MCAzMmMzLjE4MzU5NCAyLjU1MDc4MSA3Ljc3MzQzOCAyLjI5Mjk2OCAxMC42NTYyNS0uNTg5ODQ0em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMCA4Ny40MzM1OTQgNDAgMTZjMi45NzI2NTYgMS4xODM1OTQgNi4zNjMyODEuNDg0Mzc1IDguNjI1LTEuNzc3MzQ0bDExLjkxNzk2OS0xMS45MjE4NzUgMjYuODQ3NjU2IDEzLjQ2NDg0NCA3LjE1MjM0NC0xNC4zMjAzMTMtMzItMTZjLTMuMDc4MTI1LTEuNTM1MTU2LTYuNzk2ODc1LS45Mjk2ODctOS4yMzA0NjkgMS41MDM5MDZsLTEyLjI3MzQzOCAxMi4yMjY1NjMtMzUuMTAxNTYyLTE0LjA0Mjk2OXptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Carport:kae,Cellar:Yae,Chamber:Qae,Corridor:Uae,"Dining Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K","Dining Room":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik01MDUuOTQ3LDEyMy41OTdjLTQuMzUzLTQuNzUyLTEwLjU0Ni03LjQ3Ny0xNi45OS03LjQ3N2gtNi44MzdjLTE3LjkyOSwwLTMyLjYzMSwxMy40NjgtMzQuMTk4LDMxLjMyOGwtNy4zOTcsODQuMjc5CgkJCQljLTAuNjU1LDcuNDY5LTYuODA0LDEzLjEwMi0xNC4zMDMsMTMuMTAyaC02NC4wMjZjLTIwLjUxNiwwLTM3LjIwNywxNi42OTEtMzcuMjA3LDM3LjIwN3YzLjY5NwoJCQkJYzAsMTIuMzk1LDEwLjA4MywyMi40NzgsMjIuNDc4LDIyLjQ3OGgxMy43MjNsLTEzLjUxNCw0NC4xMzVjLTAuMDEsMC4wMzMtMC4wMiwwLjA2Ni0wLjAzLDAuMDk5bC0xMC4zMywzMy43MzYKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUg0NjMuMjQKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTI0LjUxNy04MC4wNjZjNC4zMDUtMS4yMTksOC40NjItMi45NTMsMTIuMzYyLTUuMTg4YzMuNTkzLTIuMDYsNC44MzYtNi42NDMsMi43NzYtMTAuMjM2CgkJCQljLTIuMDYtMy41OTMtNi42NDQtNC44MzYtMTAuMjM3LTIuNzc2Yy02LjA0NCwzLjQ2NS0xMi45MzksNS4yOTctMTkuOTQsNS4yOTdoLTc1LjQwMmMtMC4wMjUsMC0wLjA1LDAtMC4wNzQsMGgtMjMuNzkzCgkJCQljLTQuMTIzLDAtNy40NzgtMy4zNTQtNy40NzgtNy40Nzh2LTMuNjk3YzAtMTIuMjQ1LDkuOTYyLTIyLjIwNywyMi4yMDctMjIuMjA3aDY0LjAyNmMxNS4zMzMsMCwyNy45MDYtMTEuNTE4LDI5LjI0Ni0yNi43OTEKCQkJCWw3LjM5Ni04NC4yOGMwLjg4Mi0xMC4wNTYsOS4xNi0xNy42NCwxOS4yNTUtMTcuNjRoNi44MzdjMi4yODIsMCw0LjM4OSwwLjkyNyw1LjkzLDIuNjFjMS41NDIsMS42ODMsMi4yODIsMy44NjIsMi4wODIsNi4xMzYKCQkJCWwtMTAuMjQyLDExNi43MTFjLTAuMjUyLDIuODc4LTAuODEzLDUuNzI2LTEuNjY2LDguNDY0Yy0xLjIzMiwzLjk1NSwwLjk3Niw4LjE2LDQuOTMxLDkuMzkxYzMuOTYsMS4yMzIsOC4xNTktMC45NzcsOS4zOTItNC45MwoJCQkJYzEuMTcxLTMuNzYyLDEuOTQtNy42NjksMi4yODctMTEuNjE0bDEwLjI0Mi0xMTYuNzExQzUxMi40NzQsMTM0Ljc1Nyw1MTAuMywxMjguMzQ5LDUwNS45NDcsMTIzLjU5N3ogTTM3Ni44NzUsMzA4LjIxMmg2OS44NTUKCQkJCWwxMS45MTQsMzguOTFoLTkzLjY4NEwzNzYuODc1LDMwOC4yMTJ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE0OS44MDMsMjQ0LjgzSDg1Ljc3N2MtNy40OTksMC0xMy42NDctNS42MzItMTQuMzAzLTEzLjEwMmwtNy4zOTYtODQuMjc5Yy0xLjU2Ny0xNy44Ni0xNi4yNjktMzEuMzI4LTM0LjE5OC0zMS4zMjgKCQkJCWgtNi44MzdjLTYuNDQ0LDAtMTIuNjM3LDIuNzI1LTE2Ljk5LDcuNDc3Yy00LjM1Myw0Ljc1Mi02LjUyNywxMS4xNi01Ljk2NSwxNy41ODFsMTAuMjQyLDExNi43MTEKCQkJCWMxLjIwOSwxMy43NzMsNy40ODksMjYuNTAxLDE3LjY4NCwzNS44NDFjNi40MDUsNS44NjgsMTQuMDEsMTAuMDc3LDIyLjIwNiwxMi4zOTdsLTI0LjUxNCw4MC4wNTUKCQkJCWMtMS4yMTMsMy45NjEsMS4wMTUsOC4xNTQsNC45NzUsOS4zNjdjMC43MzIsMC4yMjQsMS40NzIsMC4zMzEsMi4xOTksMC4zMzFjMy4yMDksMCw2LjE4LTIuMDc3LDcuMTY4LTUuMzA2bDguNzEyLTI4LjQ1MUgxNTEuNjMKCQkJCWw4LjcxMiwyOC40NTFjMC45ODgsMy4yMjksMy45NTgsNS4zMDYsNy4xNjgsNS4zMDZjMC43MjgsMCwxLjQ2OC0wLjEwNywyLjE5OS0wLjMzMWMzLjk2LTEuMjEzLDYuMTg4LTUuNDA3LDQuOTc1LTkuMzY3CgkJCQlsLTEwLjMzLTMzLjczNmMtMC4wMS0wLjAzMy0wLjAyLTAuMDY2LTAuMDMtMC4wOTlsLTEzLjUxNC00NC4xMzVoMTMuNzIzYzEyLjM5NSwwLDIyLjQ3Ny0xMC4wODMsMjIuNDc3LTIyLjQ3OHYtMy42OTcKCQkJCUMxODcuMDEsMjYxLjUyMSwxNzAuMzE5LDI0NC44MywxNDkuODAzLDI0NC44M3ogTTUzLjM1MywzNDcuMTIybDExLjkxNC0zOC45MWg2OS44NTVsMTEuOTE0LDM4LjkxSDUzLjM1M3ogTTE3Mi4wMSwyODUuNzM0CgkJCQljMCw0LjEyNC0zLjM1NCw3LjQ3OC03LjQ3Nyw3LjQ3OGgtMjMuNzg4Yy0wLjAzLDAtMC4wNTksMC0wLjA4OSwwSDY1LjI2M2MtMS42MDQsMC0zLjE4Mi0wLjEwMy00LjczNi0wLjI4MwoJCQkJYy0wLjAwMSwwLTAuMDAzLDAtMC4wMDUsMGMtMTguNzY0LTIuMTY5LTMzLjU1OC0xNy4wNjUtMzUuMjUtMzYuMzUyTDE1LjAzLDEzOS44NjdjLTAuMi0yLjI3NSwwLjU0LTQuNDU0LDIuMDgyLTYuMTM3CgkJCQljMS41NDEtMS42ODMsMy42NDctMi42MSw1LjkzLTIuNjFoNi44MzdjMTAuMDk1LDAsMTguMzczLDcuNTgzLDE5LjI1NSwxNy42NGw3LjM5Niw4NC4yNzl2LTAuMDAxCgkJCQljMS4zNCwxNS4yNzMsMTMuOTEzLDI2Ljc5MSwyOS4yNDYsMjYuNzkxaDY0LjAyNmMxMi4yNDUsMCwyMi4yMDcsOS45NjIsMjIuMjA3LDIyLjIwN1YyODUuNzM0eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTIuOTQ4LDM3MS4xNDFjLTMuMDk1LTExLjg5Ny0xMy44NDEtMjAuMjA2LTI2LjEzNC0yMC4yMDZoLTQuNjQyVjIxNC40MDFoOTIuMzU0YzUuMzIsMCwxMC4yOTktMi4zNjUsMTMuNjYxLTYuNDg4CgkJCQljMy4zNjItNC4xMjQsNC42NzctOS40NzgsMy42MDUtMTQuNjljLTMuMjI2LTE1LjY4NC0xNy4xODgtMjcuMDY3LTMzLjE5OS0yNy4wNjdIMjAyLjY2NWMtNC4xNDMsMC03LjUsMy4zNTgtNy41LDcuNQoJCQkJczMuMzU3LDcuNSw3LjUsNy41aDE1NS45MjhjOC45MjYsMCwxNi43MDgsNi4zNDYsMTguNTA2LDE1LjA4OGMwLjIxOSwxLjA2NC0wLjI0MywxLjgyOS0wLjUzNywyLjE5MQoJCQkJYy0wLjI5NSwwLjM2MS0wLjk1MSwwLjk2Ny0yLjAzNiwwLjk2N0gxMzcuNDcyYy0xLjA4NSwwLTEuNzQxLTAuNjA2LTIuMDM2LTAuOTY3Yy0wLjI5NC0wLjM2MS0wLjc1Ni0xLjEyNy0wLjUzNy0yLjE5CgkJCQljMS43OTgtOC43NDMsOS41OC0xNS4wODksMTguNTA2LTE1LjA4OWgxNC4wODRjNC4xNDMsMCw3LjUtMy4zNTgsNy41LTcuNXMtMy4zNTctNy41LTcuNS03LjVoLTE0LjA4NAoJCQkJYy0xNi4wMTIsMC0yOS45NzQsMTEuMzgzLTMzLjE5OSwyNy4wNjhjLTEuMDcxLDUuMjEyLDAuMjQzLDEwLjU2NiwzLjYwNSwxNC42ODljMy4zNjIsNC4xMjMsOC4zNDEsNi40ODgsMTMuNjYxLDYuNDg4aDkyLjM1NQoJCQkJdjEzNi41MzVoLTQuNjQyYy0xMi4yOTMsMC0yMy4wMzksOC4zMDktMjYuMTM0LDIwLjIwNWwtMS43NjEsNi43NjdjLTEuMTI3LDQuMzM1LTAuMjAzLDguODUyLDIuNTM2LDEyLjM5NgoJCQkJYzIuNzQsMy41NDMsNi44OCw1LjU3NiwxMS4zNTgsNS41NzZoODkuNjNjNC40NzksMCw4LjYxOC0yLjAzMiwxMS4zNTgtNS41NzZjMi43MzktMy41NDMsMy42NjMtOC4wNjEsMi41MzYtMTIuMzk2CgkJCQlMMzEyLjk0OCwzNzEuMTQxeiBNMjQ0LjgyNywyMTQuNDAxTDI0NC44MjcsMjE0LjQwMWgyMi4zNDZ2MTM2LjUzNWgtMjIuMzQ2VjIxNC40MDF6IE0yMTIuMDE2LDM4MC44NzlsMS41NTItNS45NjIKCQkJCWMxLjM3NS01LjI4OCw2LjE1Mi04Ljk4MSwxMS42MTYtOC45ODFoNjEuNjI5YzUuNDY0LDAsMTAuMjQxLDMuNjkzLDExLjYxNiw4Ljk4MWwxLjU1Miw1Ljk2MkgyMTIuMDE2eiIvPgogICAgPC9nPgo8L3N2Zz4K",Dining:vae,"Dressing Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTcuMDA0IDI3Ni4xNjljMC00LjEzOSAzLjM3NC03LjUxMiA3LjUxMi03LjUxMnM3LjQ4MyAzLjM3MyA3LjQ4MyA3LjUxMnYxMzcuMzQgMzkuOTk3YzAgNC4xMzktMy4zNDUgNy40ODMtNy40ODMgNy40ODNoLTQ5Ny4wMDRjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODMgMC0xMjQuNzU0IDAtMjQ5LjUzNiAwLTM3NC4yOTEgMC03Ljc2NyAzLjE3NS0xNC44MjUgOC4yNzctMTkuOTI4IDUuMTAzLTUuMTAzIDEyLjE2MS04LjI3NyAxOS45MjgtOC4yNzdoMTI0LjI0NGM3LjkwOSAwIDE1LjM2NCAzLjMxNiAyMC43MjIgOS4wOTkgNS4zNTctNS43ODMgMTIuODEyLTkuMDk5IDIwLjcyMi05LjA5OWgxMjQuMjQzYzcuODgxIDAgMTUuMzY0IDMuMzE2IDIwLjY5MyA5LjA5OSA1LjM1OC01Ljc4MyAxMi44MTMtOS4wOTkgMjAuNzIyLTkuMDk5aDEyNC4yNDRjNy43NjcgMCAxNC44MjYgMy4xNzUgMTkuOTI4IDguMjc3IDUuMTAyIDUuMTAzIDguMjc3IDEyLjE2MSA4LjI3NyAxOS45Mjh2MjUuNjI1IDEzNy4zNGMwIDQuMTM5LTMuMzQ1IDcuNTEyLTcuNDgzIDcuNTEyLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTEyOS44NTVoLTY3LjgzNXYxMi45MjZsNDYuODMgMjMuODM5YzQuMTk1IDIuMTI2IDcuMTE1IDUuNzU1IDguNDQ3IDkuODk0IDEuMzYgNC4xMzkgMS4xMzQgOC43ODctLjk5MiAxMi45NTQtMS40NDYgMi44MzUtMy42NTcgNS4xNTktNi4yOTMgNi43NzUtMi42NjQgMS42NDQtNS43MjYgMi41MjMtOC44NzIgMi41MjNoLTMuMzQ1djk1LjYxM2MwIDQuMTM5LTMuMzQ1IDcuNDg0LTcuNDg0IDcuNDg0aC03MS4xNWMtNC4xMzkgMC03LjQ4My0zLjM0NS03LjQ4My03LjQ4NHYtMzQuNTU0YzAtNC4xNjcgMy4zNDUtNy41MTIgNy40ODMtNy41MTIgNC4xMzkgMCA3LjUxMiAzLjM0NSA3LjUxMiA3LjUxMnYyNy4wNDNoNTYuMTI3di04OC4xMDJoLTU2LjEyN3YyNy4wNzFjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy40ODMtMy4zNzMtNy40ODMtNy41MTJ2LTI3LjA3MWgtMy4zNDVjLTQuNzA2IDAtOC45NTctMS44OTktMTIuMDE5LTQuOTg5LTMuMDktMy4wNjEtNC45ODktNy4zMTMtNC45ODktMTIuMDE5IDAtMy4zNDUuOTkyLTYuNTIgMi42OTMtOS4xNTYgMS43MjktMi42NjQgNC4xMzktNC44MTkgNi45NzQtNi4xOGw0Ni4wMzUtMjMuNDQzdi0xMy4xMjRoLTY3LjgzNHYyOTMuNzAxaDE1MC42NjN2LTEyOS44NTd6bS03My44NDMtMTM3LjE5OWMtLjgyMi0uNTEtMS42NzItLjUxLTIuNDk1IDBsLTQ1LjcyMyAyMy4zMDFjLS45MDcuMzQtMS40NzQuOTM2LTEuNDc0IDEuOTU2IDAgMS4xMDUuOTA3IDIuMDEzIDIuMDEzIDIuMDEzaDkyLjgwN2MuNzkzIDAgMS40NDYtLjM5NyAxLjc4Ni0xLjEwNS41MS0uOTkyLjE0Mi0yLjE4My0uODc4LTIuNjkzbC0xNS4zMzYtNy44MjNjLTkuMDQzLTQuNTkzLTE4LjA1Ny05LjE1OC0zMC43LTE1LjY0OXptLTE2NS44LS4wODVjLS43MDktLjQyNS0xLjQ3NC0uNDI1LTIuMjQgMGwtNDUuODY1IDIzLjM4NmMtLjg3OS4zNC0xLjQ0Ni45MzYtMS40NDYgMS45NTYgMCAxLjEwNS45MDcgMi4wMTMgMi4wMTMgMi4wMTNoOTIuODA3Yy43OTQgMCAxLjQ0Ni0uMzk3IDEuNzg2LTEuMTA1LjUxLS45OTIuMTQyLTIuMTgzLS44NzktMi42OTMtMTUuMzkyLTcuODI0LTMwLjgxMi0xNS42NDgtNDYuMTc2LTIzLjU1N3ptLTIxMS42NjYtMjYuNTZjLTQuMTM5IDAtNy41MTItMy4zNDUtNy41MTItNy40ODRzMy4zNzMtNy41MTIgNy41MTItNy41MTJoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNzQgNy41MTIgNy41MTIgMCA0LjEzOS0zLjM3MyA3LjQ4NC03LjUxMiA3LjQ4NHptMCAxMDEuOTM0Yy00LjEzOSAwLTcuNTEyLTMuMzczLTcuNTEyLTcuNTEyczMuMzczLTcuNDgzIDcuNTEyLTcuNDgzaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzQ1IDcuNTEyIDcuNDgzIDAgNC4xMzktMy4zNzMgNy41MTItNy41MTIgNy41MTJ6bTAtMzMuOTg4Yy00LjEzOSAwLTcuNTEyLTMuMzQ1LTcuNTEyLTcuNDgzczMuMzczLTcuNTEyIDcuNTEyLTcuNTEyaDg5LjI5MmM0LjEzOCAwIDcuNTEyIDMuMzczIDcuNTEyIDcuNTEycy0zLjM3MyA3LjQ4My03LjUxMiA3LjQ4M3ptMC0zMy45NTljLTQuMTM5IDAtNy41MTItMy4zNzMtNy41MTItNy41MTJzMy4zNzMtNy40ODMgNy41MTItNy40ODNoODkuMjkyYzQuMTM4IDAgNy41MTIgMy4zNDUgNy41MTIgNy40ODMgMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnptMjAyLjgyMi0yMC44NjN2LTEzLjEyNGgtNjcuODM0djEyOS44NTdjMCA0LjEzOS0zLjM3MyA3LjUxMi03LjUxMiA3LjUxMnMtNy41MTItMy4zNzMtNy41MTItNy41MTJ2LTE2Mi45NjdjMC0zLjYyOC0xLjQ3NC02LjkxNy0zLjg4My05LjMyNi0yLjM4MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNi0zLjg4NGgtMTI0LjI0NGMtMy42MjggMC02LjkxNyAxLjUwMi05LjMyNyAzLjg4NC0yLjM4MSAyLjQwOS0zLjg4MyA1LjY5Ny0zLjg4MyA5LjMyNnYxOTIuMzYxaDE1LjMwOGM2LjA5NCAwIDExLjU5NCAyLjQ2NiAxNS41OSA2LjQ2NCAzLjk5NyAzLjk5NyA2LjQ5MiA5LjUyNSA2LjQ5MiAxNS41OXYyMy4zMDFjMCA2LjA2Ny0yLjQ5NSAxMS41OTQtNi40OTIgMTUuNTkxcy05LjQ5NiA2LjQ2My0xNS41OSA2LjQ2M2gtMTUuMzA4djEwNy4wMDloMTUwLjY2M3YtMTY5LjgyNWMwLTQuMTM5IDMuMzc0LTcuNTEyIDcuNTEyLTcuNTEyczcuNTEyIDMuMzczIDcuNTEyIDcuNTEydjEyOS44NTZoMTUwLjY2M3YtMjkzLjdoLTY3LjgzNHYxMi45MjZsNDYuNjMgMjMuNzI2YzQuMTY3IDIuMTI2IDcuMiA1LjUyOCA4LjY0NiAxMC4wMDcgMi40NjYgNy41NjgtLjUzOSAxNS41OS03LjI4NSAxOS43MjktMi42NjQgMS42NDQtNS43NTQgMi41MjMtOC44NzIgMi41MjNoLTkyLjgwN2MtNC43MDYgMC04Ljk1OC0xLjg5OS0xMi4wNDctNC45ODktMy4wNjEtMy4wNjEtNC45Ni03LjMxMy00Ljk2LTEyLjAxOSAwLTMuMzQ1Ljk5Mi02LjUyIDIuNjkzLTkuMTU2IDEuNzAxLTIuNjY0IDQuMTEtNC44MTkgNi45NzMtNi4xOHptLTIzMy41MjEgMTcyLjMyaDYuMDk0YzQuMTM5IDAgNy41MTIgMy4zNzMgNy41MTIgNy41MTJzLTMuMzczIDcuNTEyLTcuNTEyIDcuNTEyaC02LjA5NHYxMS4xOThoMTUuMzA4YzEuOTU2IDAgMy43MTMtLjc5NCA0Ljk4OS0yLjA2OSAxLjI3Ni0xLjMwNSAyLjA5OC0zLjA2MSAyLjA5OC00Ljk5di0yMy4zMDJjMC0xLjkyOC0uODIyLTMuNjg1LTIuMDk4LTQuOTg5LTEuMjc1LTEuMjc2LTMuMDMzLTIuMDY5LTQuOTg5LTIuMDY5aC0xNS4zMDh6bTMzMS4zNDUtMjE4LjU1NHYxOC4xMTNoMTUwLjY2M3YtMTguMTEzYzAtMy42MjgtMS40NzQtNi45MTctMy44ODMtOS4zMjYtMi40MDktMi4zODEtNS42OTgtMy44ODQtOS4zMjctMy44ODRoLTEyNC4yNDNjLTMuNjI4IDAtNi45MTcgMS41MDItOS4zMjYgMy44ODQtMi40MSAyLjQxLTMuODg0IDUuNjk4LTMuODg0IDkuMzI2em0tMTY1LjY1OCAxOC4xMTRoMTUwLjY2M3YtMTguMTE0YzAtMy42MjgtMS41MDItNi45MTctMy44ODMtOS4zMjYtMi40MS0yLjM4MS01LjY5OC0zLjg4NC05LjMyNy0zLjg4NGgtMTI0LjI0M2MtMy42MjkgMC02Ljk0NSAxLjUwMi05LjMyNyAzLjg4NC0yLjQxIDIuNDA5LTMuODgzIDUuNjk3LTMuODgzIDkuMzI2em0zMTYuMzIxIDMyMy42OTJoLTMxNi4zMjF2MjQuOTczaDMxNi4zMjJ2LTI0Ljk3M3oiLz4KICAgIDwvZz4KPC9zdmc+",Driveway:bae,Entrance:$ae,"Equipment Room":"PHN2ZyBoZWlnaHQ9IjUxMnB0IiB2aWV3Qm94PSIwIC00IDUxMiA1MTIiIHdpZHRoPSI1MTJwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGZpbGw9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgPHBhdGggZD0ibTMwMy4wOTM3NSAxNzQuMjVjMy4zOTQ1MzEgMi4zNzg5MDYgOC4wNzAzMTIgMS41NTA3ODEgMTAuNDQ1MzEyLTEuODM5ODQ0bDE1Ljk1MzEyNi0yMi43ODkwNjJjMi4zNzg5MDYtMy4zOTQ1MzIgMS41NTQ2ODctOC4wNzAzMTMtMS44Mzk4NDQtMTAuNDQ1MzEzLTMuMzk0NTMyLTIuMzc1LTguMDcwMzEzLTEuNTUwNzgxLTEwLjQ0NTMxMyAxLjg0Mzc1bC0xNS45NTcwMzEgMjIuNzg1MTU3Yy0yLjM3NSAzLjM5NDUzMS0xLjU1MDc4MSA4LjA3MDMxMiAxLjg0Mzc1IDEwLjQ0NTMxMnptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTM0MS42NzE4NzUgMTU1Ljk4NDM3NS01LjQxNzk2OSAyNy4yODUxNTZjLS45MTc5NjggNC42NDA2MjUgMi42MzI4MTMgOC45NjA5MzggNy4zNjcxODggOC45NjA5MzggMy41MDc4MTIgMCA2LjY0MDYyNS0yLjQ3MjY1NyA3LjM0NzY1Ni02LjAzOTA2M2w1LjQxNDA2Mi0yNy4yODkwNjJjLjgwODU5NC00LjA2MjUtMS44MzIwMzEtOC4wMTE3MTktNS44OTQ1MzEtOC44MTY0MDYtNC4wNjY0MDYtLjgwNDY4OC04LjAxMTcxOSAxLjgzMjAzMS04LjgxNjQwNiA1Ljg5ODQzN3ptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTMwOS41ODk4NDQgMTIxLjQ0OTIxOWMtMi4xNDQ1MzItMy41NDI5NjktNi43NTc4MTMtNC42NzE4NzUtMTAuMzAwNzgyLTIuNTI3MzQ0bC0yMy43ODkwNjIgMTQuNDIxODc1Yy0zLjU0Mjk2OSAyLjE0ODQzOC00LjY3MTg3NSA2Ljc2MTcxOS0yLjUyNzM0NCAxMC4zMDQ2ODggMi4xNTIzNDQgMy41NDI5NjggNi43NjU2MjUgNC42Njc5NjggMTAuMzA0Njg4IDIuNTIzNDM3bDIzLjc4OTA2Mi0xNC40MTc5NjljMy41NDI5NjktMi4xNDg0MzcgNC42NzE4NzUtNi43NjE3MTggMi41MjM0MzgtMTAuMzA0Njg3em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtODMuNjUyMzQ0IDE1Mi4xNzk2ODhjMi43NTc4MTIgMS4zNTkzNzQgNi4xMTMyODEgMS40MDYyNSA4Ljk2ODc1IDAgNy0zLjQ1MzEyNiAyOS44MzU5MzctMTYuNTA3ODEzIDI5LjgzNTkzNy0zOS40NjQ4NDQgMC0xOC4yMDMxMjUtMjEuMjE0ODQzLTI3LjA2NjQwNi0zNC4zMTI1LTE2LjA3NDIxOS01LjA2MjUtNC4yNjE3MTktMTEuOTQxNDA2LTUuODkwNjI1LTE4Ljc1MzkwNi00LjA4OTg0NC05LjMxNjQwNiAyLjQ1NzAzMS0xNS41NzAzMTMgMTAuNTYyNS0xNS41NzAzMTMgMjAuMTY0MDYzIDAgMjMuMDE1NjI1IDIyLjg0Mzc1IDM2LjAzMTI1IDI5LjgzMjAzMiAzOS40NjQ4NDR6bS0zLjc3NzM0NC00Mi4zNjcxODhjMS4zOTg0MzggMi40Njg3NSA0LjQ2ODc1IDQuNjI1IDguMDIzNDM4IDQuNzEwOTM4IDMuNTgyMDMxLjExMzI4MSA2Ljk3MjY1Ni0yLjA0Njg3NiA4LjQ2MDkzNy00LjY1MjM0NCAzLjA1NDY4Ny01LjM1NTQ2OSAxMS4wOTc2NTYtMy4xNDQ1MzIgMTEuMDk3NjU2IDIuODQ3NjU2IDAgMTIuNjkxNDA2LTEzLjM5NDUzMSAyMS41NjY0MDYtMTkuMzI0MjE5IDI0Ljg3NS01LjkyOTY4Ny0zLjI5Mjk2OS0xOS4zMTI1LTEyLjE0NDUzMS0xOS4zMTI1LTI0Ljg3NSAwLTYuMDQyOTY5IDguMDg1OTM4LTguMTMyODEyIDExLjA1NDY4OC0yLjkwNjI1em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMDMuNjE3MTg4aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDA2MjYtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTkzNzQtNy41IDcuNSAwIDQuMTQ0NTMxIDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxMzAuMDI3MzQ0aDI5LjYzNjcxOWM0LjE0NDUzMSAwIDcuNS0zLjM1NTQ2OSA3LjUtNy41IDAtNC4xNDQ1MzItMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjgtNy41IDcuNSAwIDQuMTQwNjI1IDMuMzU1NDY5IDcuNSA3LjUgNy41em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtMTQxLjE0MDYyNSAxNTYuNDM3NWgyOS42MzY3MTljNC4xNDQ1MzEgMCA3LjUtMy4zNTU0NjkgNy41LTcuNXMtMy4zNTU0NjktNy41LTcuNS03LjVoLTI5LjYzNjcxOWMtNC4xNDQ1MzEgMC03LjUgMy4zNTU0NjktNy41IDcuNXMzLjM1NTQ2OSA3LjUgNy41IDcuNXptMCAwIi8+CiAgICAgICAgPHBhdGggZD0ibTQ5NS43Njk1MzEgMTUuMDA3ODEyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY4IDcuNS03LjUgMC00LjE0NDUzMS0zLjM1NTQ2OS03LjQ5OTk5OTUtNy41LTcuNDk5OTk5NWgtNzMuNzEwOTM3Yy0uMTE3MTg4IDAtLjIzMDQ2OS4wMTE3MTg3LS4zNDc2NTYuMDE1NjI1LTIuNDk2MDk0LS4xMjg5MDY1LTUgLjk4NDM3NDUtNi41MzkwNjMgMy4xODM1OTM1bC0yNS44OTA2MjUgMzYuOTcyNjU3LTMyLjgzOTg0NC0yMi45OTYwOTRjLTE3LjM3MTA5NC0xMi4xNjQwNjMtMzguOTAyMzQ0LTE2LjI4OTA2My01OS41OTM3NS0xMS41MzkwNjNsLTIuNTk3NjU2LTEuODIwMzEyYy05LjU4OTg0NC02LjcxMDkzOC0yMi44MTY0MDYtNC4zNDc2NTctMjkuNSA1LjE5OTIxOWwtNS45Njg3NSA4LjUyMzQzN2MtNi42OTUzMTIgOS41NjI1LTQuMzYzMjgxIDIyLjgwMDc4MSA1LjIwMzEyNSAyOS40OTYwOTRsMi4wNDY4NzUgMS40MzM1OTNjLTYuODU5Mzc1IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDgyMDMyIDUzLjE3OTY4OCAzNy4yMzgyODJsNC4xOTE0MDYgMi45MzM1OTRjLTYuODUxNTYzIDMwLjU3MDMxMiAyNi44MDQ2ODcgNTQuMTE3MTg3IDUzLjE3NTc4MSAzNy4yMzgyODFsNC4xOTUzMTMgMi45MzM1OTNjLTYuODU5Mzc2IDMwLjYxNzE4OCAyNi44NjMyODEgNTQuMDc4MTI2IDUzLjE3NTc4MSAzNy4yMzQzNzZsMi4wNTQ2ODcgMS40NDE0MDZjOS41NjY0MDYgNi42OTUzMTIgMjIuODAwNzgyIDQuMzYzMjgxIDI5LjQ5NjA5NC01LjIwMzEyNWw1Ljk2ODc1LTguNTIzNDM4YzYuNjk1MzEyLTkuNTYyNSA0LjM2MzI4MS0yMi44MDA3ODEtNS4xOTkyMTktMjkuNDk2MDkzbC0zLjI3MzQzNy0yLjI5Mjk2OWMtMi42MTMyODItMjEuMDY2NDA3LTEzLjg1NTQ2OS0zOS44ODY3MTktMzEuMjI2NTYzLTUyLjA1NDY4OGwtMzAuMTk5MjE5LTIxLjE0MDYyNSAyMy42NTIzNDQtMzMuNzc3MzQ0em0tMjE1LjQ1NzAzMSA0My40NzI2NTcgMjQuNjIxMDk0IDE3LjI0MjE4N2MtMTEuNzk2ODc1IDIuNzkyOTY5LTIzLjIyMjY1Ni01LjIzNDM3NS0yNC42MjEwOTQtMTcuMjQyMTg3em01Ny4zNjcxODggNDAuMTY3OTY5IDI0LjYyNSAxNy4yNDIxODdjLTExLjc2OTUzMiAyLjc5Njg3NS0yMy4yMjI2NTctNS4yMDcwMzEtMjQuNjI1LTE3LjI0MjE4N3ptNTcuMzcxMDkzIDQwLjE3MTg3NGMxNC45MTc5NjkgMTAuNDQ1MzEzIDkuNzc3MzQ0IDYuODQzNzUgMjQuNjI1IDE3LjI0MjE4OC0xMS43NzM0MzcgMi43OTY4NzUtMjMuMjIyNjU2LTUuMjE0ODQ0LTI0LjYyNS0xNy4yNDIxODh6bTY0LjEyODkwNyA2LjM0Mzc1LTUuOTY4NzUgOC41MjM0MzhjLTEuOTUzMTI2IDIuNzg5MDYyLTUuODEyNSAzLjQ3MjY1Ni04LjYwNTQ2OSAxLjUxOTUzMS0yLjQxMDE1Ny0xLjY4NzUtMTY5Ljg1OTM3NS0xMTguOTQxNDA2LTE3Mi4wMTk1MzEtMTIwLjQ0OTIxOS0yLjc2OTUzMi0xLjk0MTQwNi0zLjQ1NzAzMi01LjgzMjAzMS0xLjUxNTYyNi04LjYwNTQ2OGw1Ljk2ODc1LTguNTIzNDM4YzEuOTQ5MjE5LTIuNzgxMjUgNS44NDM3NS0zLjQ0OTIxOCA4LjYwNTQ2OS0xLjUxNTYyNWwxNzIuMDE5NTMxIDEyMC40NDUzMTNjMi43NzM0MzggMS45NDE0MDYgMy40NTcwMzIgNS44MzU5MzcgMS41MTU2MjYgOC42MDU0Njh6bS0xNC45MDIzNDQtMzYuMjg5MDYyYy03Ljg5NDUzMi01LjUzMTI1LTEyNS4wNDY4NzUtODcuNTU4NTk0LTEyOC43MTA5MzgtOTAuMTI1IDExLjQ3MjY1Ni4zNTE1NjIgMjIuNjcxODc1IDQgMzIuMjczNDM4IDEwLjcyMjY1Nmw3NS4zMjQyMTggNTIuNzQyMTg4YzkuNTk3NjU3IDYuNzIyNjU2IDE2Ljg1OTM3NiAxNiAyMS4xMTMyODIgMjYuNjYwMTU2em0wIDAiLz4KICAgICAgICA8cGF0aCBkPSJtNDkwLjgyMDMxMiAzMTAuNTE1NjI1aC0yMTcuMzIwMzEyYy00LjE0NDUzMSAwLTcuNSAzLjM1OTM3NS03LjUgNy41IDAgNC4xNDQ1MzEgMy4zNTU0NjkgNy41MDM5MDYgNy41IDcuNTAzOTA2aDIxNy4zMjAzMTJjMy40MDYyNSAwIDYuMTc5Njg4IDIuNzY5NTMxIDYuMTc5Njg4IDYuMTc1NzgxdjEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzggNi4xNzk2ODgtNi4xNzk2ODggNi4xNzk2ODgtMy40NDUzMTIgMC00NjMuNjA5Mzc0IDAtNDY5LjY0MDYyNCAwLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc2OTUzMi02LjE3OTY4OC02LjE3OTY4OHYtMTMuNjc5Njg4YzAtMy40MDYyNSAyLjc3MzQzOC02LjE3NTc4MSA2LjE3OTY4OC02LjE3NTc4MWgyMTcuMzIwMzEyYzQuMTQ0NTMxIDAgNy41LTMuMzU5Mzc1IDcuNS03LjUwMzkwNiAwLTQuMTQwNjI1LTMuMzU1NDY5LTcuNS03LjUtNy41aC04NS4zNTU0NjljLjU5NzY1Ny0xLjk1MzEyNS45MjU3ODEtNC4wMjczNDQuOTI1NzgxLTYuMTc1Nzgxdi0xMy42Nzk2ODhjMC0xMS42Nzk2ODctOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODctMjEuMTc5Njg3aC0xMTEuNzEwOTM3Yy0xMS42Nzk2ODggMC0yMS4xNzk2ODggOS41LTIxLjE3OTY4OCAyMS4xNzk2ODd2MTMuNjc5Njg4YzAgNS4yMTQ4NDQgMS45MDIzNDQgOS45ODQzNzUgNS4wMzkwNjIgMTMuNjc5Njg3LTMuMTM2NzE4IDMuNjkxNDA3LTUuMDM5MDYyIDguNDY0ODQ0LTUuMDM5MDYyIDEzLjY3NTc4MXYxMy42Nzk2ODhjMCAxMS4zMjgxMjUgOC45NDUzMTIgMjAuNTc4MTI1IDIwLjEzNjcxOSAyMS4xMjg5MDZ2Ni42MDkzNzVjMCAxMS42Nzk2ODggOS41MDM5MDYgMjEuMTc5Njg4IDIxLjE3OTY4NyAyMS4xNzk2ODhoMjAuNzE0ODQ0djk1LjE0MDYyNWMwIDcuODc4OTA2IDYuNDEwMTU2IDE0LjI4OTA2MiAxNC4yOTI5NjkgMTQuMjg5MDYyaDE0LjE1MjM0M2M3Ljg3ODkwNyAwIDE0LjI5Mjk2OS02LjQxMDE1NiAxNC4yOTI5NjktMTQuMjg5MDYydi05NS4xNDA2MjVoMzAyLjQ2MDkzOHY5NS4xNDA2MjVjMCA3Ljg3ODkwNiA2LjQxMDE1NiAxNC4yODkwNjIgMTQuMjkyOTY5IDE0LjI4OTA2MmgxNC4xNTIzNDNjNy44ODI4MTMgMCAxNC4yOTI5NjktNi40MTAxNTYgMTQuMjkyOTY5LTE0LjI4OTA2MnYtOTUuMTQwNjI1aDIwLjcxMDkzOGMxMS42Nzk2ODcgMCAyMS4xNzk2ODctOS41IDIxLjE3OTY4Ny0yMS4xNzk2ODh2LTYuNjA5Mzc1YzExLjE5NTMxMy0uNTUwNzgxIDIwLjE0MDYyNS05LjgwMDc4MSAyMC4xNDA2MjUtMjEuMTI4OTA2di0xMy42Nzk2ODhjMC0xMS42NzU3ODEtOS41LTIxLjE3OTY4Ny0yMS4xNzk2ODgtMjEuMTc5Njg3em0tNDc1LjgyMDMxMi0xOS44NTU0NjljMC0zLjQwNjI1IDIuNzczNDM4LTYuMTc5Njg3IDYuMTc5Njg4LTYuMTc5Njg3aDExMS43MTA5MzdjMy40MDYyNSAwIDYuMTc5Njg3IDIuNzczNDM3IDYuMTc5Njg3IDYuMTc5Njg3djEzLjY3OTY4OGMwIDMuNDA2MjUtMi43NzM0MzcgNi4xNzk2ODctNi4xNzk2ODcgNi4xNzk2ODdoLTExMS43MTA5MzdjLTMuNDA2MjUgMC02LjE3OTY4OC0yLjc3MzQzNy02LjE3OTY4OC02LjE3OTY4N3ptNzQuNzY1NjI1IDE5OC4wNjI1aC0xMi43MzQzNzV2LTk0LjQyOTY4N2gxMi43MzQzNzV6bTM0NS4yMDMxMjUgMGgtMTIuNzM4Mjgxdi05NC40Mjk2ODdoMTIuNzM4Mjgxem00MS44OTA2MjUtMTE1LjYwOTM3NWMwIDMuNDA2MjUtMi43Njk1MzEgNi4xNzk2ODgtNi4xNzk2ODcgNi4xNzk2ODgtMTMuNzE0ODQ0IDAtNDE1LjAzNTE1NyAwLTQyOS4zNjMyODIgMC0zLjQwNjI1IDAtNi4xNzk2ODctMi43NzM0MzgtNi4xNzk2ODctNi4xNzk2ODh2LTYuNTU4NTkzaDQ0MS43MjI2NTZ6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0yMjguOTYwOTM4IDExMi41MjczNDRjNC4xNDQ1MzEgMCA3LjUtMy4zNTkzNzUgNy41LTcuNXYtNDEuMTM2NzE5YzAtMTYuMzE2NDA2LTEzLjI3MzQzOC0yOS41OTM3NS0yOS41ODk4NDQtMjkuNTkzNzVoLTE3Ny4yODEyNWMtMTYuMzE2NDA2IDAtMjkuNTg5ODQ0IDEzLjI3MzQzNy0yOS41ODk4NDQgMjkuNTkzNzV2MTE3LjI3NzM0NGMwIDE2LjMxNjQwNiAxMy4yNzM0MzggMjkuNTg5ODQzIDI5LjU4OTg0NCAyOS41ODk4NDNoMTc3LjI4MTI1YzE2LjMxNjQwNiAwIDI5LjU5Mzc1LTEzLjI3MzQzNyAyOS41OTM3NS0yOS41ODk4NDN2LTQxLjE0MDYyNWMwLTQuMTQwNjI1LTMuMzU5Mzc1LTcuNS03LjUwMzkwNi03LjUtNC4xNDA2MjYgMC03LjUgMy4zNTkzNzUtNy41IDcuNXY0MS4xNDA2MjVjMCA4LjA0Mjk2OS02LjU0Njg3NiAxNC41ODk4NDMtMTQuNTg5ODQ0IDE0LjU4OTg0M2gtMTc3LjI4MTI1Yy04LjA0Mjk2OSAwLTE0LjU4OTg0NC02LjU0Njg3NC0xNC41ODk4NDQtMTQuNTg5ODQzdi0xMTcuMjc3MzQ0YzAtOC4wNDY4NzUgNi41NDY4NzUtMTQuNTkzNzUgMTQuNTg5ODQ0LTE0LjU5Mzc1aDE3Ny4yODEyNWM4LjA0Mjk2OCAwIDE0LjU4OTg0NCA2LjU0Njg3NSAxNC41ODk4NDQgMTQuNTkzNzV2NDEuMTM2NzE5YzAgNC4xNDA2MjUgMy4zNTkzNzQgNy41IDcuNSA3LjV6bTAgMCIvPgogICAgICAgIDxwYXRoIGQ9Im0zNC43NzM0MzggNjEuNTcwMzEyYy00LjE0NDUzMiAwLTcuNSAzLjM1OTM3Ni03LjUgNy41djEwNi45MTQwNjNjMCA0LjE0NDUzMSAzLjM1NTQ2OCA3LjUgNy41IDcuNWgxNjYuOTE0MDYyYzQuMTQ0NTMxIDAgNy41LTMuMzU1NDY5IDcuNS03LjV2LTEwNi45MTQwNjNjMC00LjE0MDYyNC0zLjM1NTQ2OS03LjUtNy41LTcuNXptMTU5LjQxNDA2MiAxMDYuOTE0MDYzaC0xNTEuOTE0MDYydi05MS45MTQwNjNoMTUxLjkxNDA2MnptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==","Front Yard":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNMTI2LjQ5LDM2Ljk0N2MtMzEuNTc5LDAtNTcuMjcsMjUuNjkxLTU3LjI3LDU3LjI3YzAsMzEuNTc5LDI1LjY5MSw1Ny4yNyw1Ny4yNyw1Ny4yN2MzMS41NzgsMCw1Ny4yNy0yNS42OTEsNTcuMjctNTcuMjcKCQkJQzE4My43NjEsNjIuNjM4LDE1OC4wNywzNi45NDcsMTI2LjQ5LDM2Ljk0N3ogTTEyNi40OSwxMzEuNDg3Yy0yMC41NTEsMC0zNy4yNy0xNi43MTktMzcuMjctMzcuMjcKCQkJYzAtMjAuNTUxLDE2LjcxOS0zNy4yNywzNy4yNy0zNy4yN2MyMC41NSwwLDM3LjI3LDE2LjcxOSwzNy4yNywzNy4yN0MxNjMuNzYxLDExNC43NjgsMTQ3LjA0MiwxMzEuNDg3LDEyNi40OSwxMzEuNDg3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMFYxMEMxMzYuNDksNC40NzcsMTMyLjAxNCwwLDEyNi40OSwweiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMjYuNDksMTU2LjA5N2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHYxMi4zMzhjMCw1LjUyMyw0LjQ3NywxMCwxMCwxMHMxMC00LjQ3NywxMC0xMHYtMTIuMzM4CgkJCUMxMzYuNDksMTYwLjU3NCwxMzIuMDE0LDE1Ni4wOTcsMTI2LjQ5LDE1Ni4wOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIxMC43MDgsODQuMjE3SDE5OC4zN2MtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzhjNS41MjMsMCwxMC00LjQ3NywxMC0xMAoJCQlTMjE2LjIzLDg0LjIxNywyMTAuNzA4LDg0LjIxN3oiLz4KICAgICAgICA8cGF0aCBkPSJNNTQuNjEsODQuMjE3SDQyLjI3MmMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgxMi4zMzljNS41MjMsMCwxMC00LjQ3Nyw5Ljk5OS0xMAoJCQlDNjQuNjEsODguNjk0LDYwLjEzNCw4NC4yMTcsNTQuNjEsODQuMjE3eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMDAuOTc3LDE5LjcyOWMtMy45MDUtMy45MDUtMTAuMjM3LTMuOTA1LTE0LjE0MiwwbC05Ljg3Nyw5Ljg3N2MtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzCgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOWMyLjU1OSwwLDUuMTE5LTAuOTc2LDcuMDcxLTIuOTI5bDkuODc3LTkuODc3QzIwNC44ODMsMjkuOTY2LDIwNC44ODMsMjMuNjM0LDIwMC45NzcsMTkuNzI5CgkJCXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIzLDE0NC42ODVjLTMuOTA2LTMuOTA1LTEwLjIzOC0zLjkwNS0xNC4xNDMsMGwtOS44NzcsOS44NzdjLTMuOTA1LDMuOTA2LTMuOTA1LDEwLjIzOCwwLDE0LjE0MwoJCQljMS45NTIsMS45NTMsNC41MTIsMi45MjksNy4wNzEsMi45MjlzNS4xMTktMC45NzYsNy4wNzItMi45MjlsOS44NzctOS44NzdDNzkuOTI4LDE1NC45MjIsNzkuOTI4LDE0OC41OSw3Ni4wMjMsMTQ0LjY4NXoiLz4KICAgICAgICA8cGF0aCBkPSJNNzYuMDIxLDI5LjYwNmwtOS44NzctOS44NzdjLTMuOTA1LTMuOTA1LTEwLjIzNy0zLjkwNS0xNC4xNDIsMGMtMy45MDUsMy45MDYtMy45MDUsMTAuMjM4LDAsMTQuMTQzbDkuODc3LDkuODc3CgkJCWMxLjk1MiwxLjk1Myw0LjUxMiwyLjkyOSw3LjA3MSwyLjkyOXM1LjExOS0wLjk3Niw3LjA3MS0yLjkyOUM3OS45MjcsMzkuODQzLDc5LjkyNywzMy41MTEsNzYuMDIxLDI5LjYwNnoiLz4KICAgICAgICA8cGF0aCBkPSJNNDU5LjU0LDQ2OC4zODljLTAuMTI5LTAuNjQtMC4zMi0xLjI3LTAuNTctMS44N2MtMC4yNS0wLjYtMC41Ni0xLjE4LTAuOTItMS43MmMtMC4zNi0wLjU1LTAuNzgtMS4wNi0xLjI0LTEuNTMKCQkJYy0wLjQ2LTAuNDYtMC45Ny0wLjg3LTEuNTItMS4yNGMtMC41NC0wLjM2LTEuMTItMC42Ny0xLjczLTAuOTJjLTAuNTk5LTAuMjUtMS4yMjktMC40NC0xLjg3LTAuNTdjLTEuMjktMC4yNi0yLjYyLTAuMjYtMy45MDksMAoJCQljLTAuNjMxLDAuMTMtMS4yNjEsMC4zMi0xLjg3LDAuNTdjLTAuNjAxLDAuMjUtMS4xODEsMC41Ni0xLjcyMSwwLjkyYy0wLjU1LDAuMzctMS4wNiwwLjc4LTEuNTIsMS4yNAoJCQljLTAuNDYsMC40Ny0wLjg4LDAuOTgtMS4yNSwxLjUzYy0wLjM2LDAuNTQtMC42NywxLjEyLTAuOTIsMS43MmMtMC4yNSwwLjYtMC40NCwxLjIzLTAuNTcsMS44NwoJCQljLTAuMTMsMC42NTEtMC4xOSwxLjMwMS0wLjE5LDEuOTYxYzAsMC42NSwwLjA2LDEuMzEsMC4xOSwxLjk1YzAuMTMsMC42NCwwLjMyLDEuMjcsMC41NywxLjg3YzAuMjUsMC42LDAuNTYsMS4xOCwwLjkyLDEuNzMKCQkJYzAuMzcsMC41NCwwLjc5LDEuMDYsMS4yNSwxLjUyYzAuNDYsMC40NiwwLjk3LDAuODgsMS41MiwxLjI0YzAuNTQsMC4zNiwxLjEyLDAuNjcsMS43MjEsMC45MmMwLjYwOSwwLjI1LDEuMjM5LDAuNDQsMS44NywwLjU3CgkJCWMwLjY1LDAuMTMsMS4zMSwwLjIsMS45NiwwLjJjMC42NSwwLDEuMzEtMC4wNywxLjk0OS0wLjJjMC42NDEtMC4xMywxLjI3LTAuMzIsMS44Ny0wLjU3YzAuNjEtMC4yNSwxLjE5LTAuNTYsMS43My0wLjkyCgkJCWMwLjU1LTAuMzYsMS4wNi0wLjc4LDEuNTItMS4yNGMwLjQ2LTAuNDYsMC44OC0wLjk4LDEuMjQtMS41MmMwLjM2MS0wLjU1LDAuNjctMS4xMywwLjkyLTEuNzNjMC4yNS0wLjYsMC40NC0xLjIzLDAuNTctMS44NwoJCQlzMC4yLTEuMywwLjItMS45NUM0NTkuNzQsNDY5LjY4OSw0NTkuNjcsNDY5LjAzOSw0NTkuNTQsNDY4LjM4OXoiLz4KICAgICAgICA8cGF0aCBkPSJNNDA5LjczOSw0NjAuMzQ2SDYyLjEzOGMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHM0LjQ3NywxMCwxMCwxMGgzNDcuNmM1LjUyMywwLDEwLTQuNDc3LDEwLjAwMS0xMAoJCQlDNDE5LjczOSw0NjQuODIzLDQxNS4yNjEsNDYwLjM0Niw0MDkuNzM5LDQ2MC4zNDZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTUwMS41NjMsNDI3LjkzMWgtNi44MDljLTMuODA2LTIxLjMxMi0yMi40NzYtMzcuNTQtNDQuODY0LTM3LjU0Yy0zLjMsMC02LjU5MSwwLjM2Mi05LjgwMywxLjA2N1YyOTMuMjkKCQkJYzM2LjQ4Mi00LjkwMiw2NC43MDQtMzYuMjM2LDY0LjcwNC03NC4wMzdjMC0xOS43MDktNy43ODEtMzguNTMxLTIxLjUyNC01Mi40NjRjMC4xODYtMS44MTQsMC4yNzgtMy42NDEsMC4yNzgtNS40NjgKCQkJYzAtMjkuNDc3LTIzLjk4MS01My40NTgtNTMuNDU4LTUzLjQ1OGMtMjkuNDc3LDAtNTMuNDU4LDIzLjk4Mi01My40NTgsNTMuNDU4YzAsMS44MjcsMC4wOTMsMy42NTMsMC4yNzcsNS40NjcKCQkJYy0xMy43NDEsMTMuOTM0LTIxLjUyMywzMi43NTYtMjEuNTIzLDUyLjQ2NWMwLDM3LjgwMiwyOC4yMjMsNjkuMTM2LDY0LjcwNCw3NC4wMzd2ODkuNjJjLTQuNjg1LTEuNjMyLTkuNzE2LTIuNTItMTQuOTUxLTIuNTIKCQkJYy0yNS4xMjksMC00NS41NzMsMjAuNDQ0LTQ1LjU3Myw0NS41NzR2MS45NjhoLTguNTA2di0zNS4xM2gwLjAwMWM1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi00M2MwLTUuNTIzLTQuNDc4LTEwLTEwLTEwaC0wLjAwMQoJCQl2LTQ3LjMyOWMwLTIuODQ0LTEuMjExLTUuNTUzLTMuMzMtNy40NUwzMTYuMjcsMjQ2Ljg2Yy0zLjc5Ny0zLjM5OS05LjU0My0zLjM5OS0xMy4zNCwwbC0yNC43ODcsMjIuMTkxbC0yNC43ODgtMjIuMTkxCgkJCWMtMy43OTctMy4zOTgtOS41NDMtMy4zOTgtMTMuMzQsMGwtMjQuNzg4LDIyLjE5MWwtMjQuNzg4LTIyLjE5MWMtMy43OTctMy4zOTktOS41NDMtMy4zOTktMTMuMzQsMC4wMDFsLTI0Ljc4NywyMi4xOTEKCQkJbC0yNC43ODgtMjIuMTkxYy0zLjc5Ny0zLjM5OC05LjU0My0zLjM5OC0xMy4zNCwwTDg5LjM5OCwyNjkuMDVMNjQuNjEsMjQ2Ljg1OWMtMy43OTYtMy4zOTktOS41NDMtMy4zOTktMTMuMzQtMC4wMDEKCQkJbC0zMS40NTgsMjguMTYzYy0yLjExOSwxLjg5Ny0zLjMzLDQuNjA2LTMuMzMsNy40NTF2NDcuMzI5aC0wLjAwMWMtNS41MjMsMC0xMCw0LjQ3Ny0xMCwxMHY0M2MwLDUuNTIzLDQuNDc3LDEwLDEwLDEwaDAuMDAxCgkJCXYzNS4xM2gtNi4wNDRjLTUuNTIzLDAtMTAsNC40NzctMTAsMTBWNTAyYzAsNS41MjMsNC40NzcsMTAsMTAsMTBoNDkxLjEyM2M1LjUyMiwwLDEwLTQuNDc3LDEwLTEwdi02NC4wNjkKCQkJQzUxMS41NjMsNDMyLjQwOCw1MDcuMDg1LDQyNy45MzEsNTAxLjU2Myw0MjcuOTMxeiBNNDQ5Ljg5LDQxMC4zOTFjMTEuMjk2LDAsMjAuOTA1LDcuMzYyLDI0LjI4MSwxNy41NGgtMjMuNDYydi0xLjk2OAoJCQljMC01LjQ0MS0wLjk1OS0xMC42NjItMi43MTYtMTUuNTA0QzQ0OC42Miw0MTAuNDE0LDQ0OS4yNTMsNDEwLjM5MSw0NDkuODksNDEwLjM5MXogTTQyMC4wODcsMTg1LjU3NHYzMy4xMThsLTEwLjQwNy0xMC40MDcKCQkJYy0zLjkwNi0zLjkwNC0xMC4yMzYtMy45MDQtMTQuMTQzLDBjLTMuOTA1LDMuOTA1LTMuOTA1LDEwLjIzNywwLDE0LjE0M2wyMy4yNTcsMjMuMjU3YzAuNDA3LDAuNDA2LDAuODM5LDAuNzcsMS4yOTMsMS4wOTEKCQkJdjI2LjI2NWMtMjUuNDA1LTQuNzEyLTQ0LjcwNC0yNy4wMzktNDQuNzA0LTUzLjc4OWMwLTE1LjgxNiw2Ljg0NS0zMC44NTQsMTguNzc4LTQxLjI1NmMyLjc0LTIuMzg4LDMuOTY5LTYuMDc1LDMuMjA5LTkuNjI5CgkJCWMtMC40OTItMi4yOTktMC43NDEtNC42Ny0wLjc0MS03LjA0N2MwLTE4LjQ0OSwxNS4wMDktMzMuNDU4LDMzLjQ1OC0zMy40NThjMTguNDQ5LDAsMzMuNDU4LDE1LjAwOSwzMy40NTgsMzMuNDU4CgkJCWMwLDIuMzc4LTAuMjQ5LDQuNzQ4LTAuNzQxLDcuMDQ1Yy0wLjc2MiwzLjU1NSwwLjQ2Nyw3LjI0MywzLjIwOCw5LjYzMmMxMS45MzUsMTAuNDAzLDE4Ljc3OSwyNS40NCwxOC43NzksNDEuMjU2CgkJCWMwLDI2Ljc1LTE5LjI5OSw0OS4wNzYtNDQuNzA0LDUzLjc4OHYtMjYuMjY1YzAuNDUzLTAuMzIyLDAuODg3LTAuNjg1LDEuMjkzLTEuMDkxbDIzLjI1Ny0yMy4yNTcKCQkJYzMuOTA1LTMuOTA1LDMuOTA1LTEwLjIzNywwLTE0LjE0M2MtMy45MDYtMy45MDQtMTAuMjM2LTMuOTA0LTE0LjE0MywwbC0xMC40MDcsMTAuNDA3di0zMy4xMThjMC01LjUyMy00LjQ3OC0xMC0xMC0xMAoJCQlDNDI0LjU2NCwxNzUuNTc0LDQyMC4wODcsMTgwLjA1MSw0MjAuMDg3LDE4NS41NzR6IE0zNzkuNTYzLDQyNS45NjNjMC0xNC4xMDIsMTEuNDcyLTI1LjU3NCwyNS41NzMtMjUuNTc0CgkJCWMxNC4xMDIsMCwyNS41NzMsMTEuNDcyLDI1LjU3MywyNS41NzR2MS45NjhoLTUxLjE0NlY0MjUuOTYzeiBNMjg4LjE0MywyODYuOTQxbDIxLjQ1Ny0xOS4yMWwyMS40NTcsMTkuMjFWMzI5LjhoLTQyLjkxNFYyODYuOTQxCgkJCXogTTIyNS4yMjcsMjg2Ljk0MWwyMS40NTgtMTkuMjFsMjEuNDU3LDE5LjIxVjMyOS44aC00Mi45MTVWMjg2Ljk0MXogTTE2Mi4zMTMsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44aC00Mi45MTUKCQkJVjI4Ni45NDF6IE05OS4zOTgsMjg2Ljk0MWwyMS40NTctMTkuMjFsMjEuNDU4LDE5LjIxVjMyOS44SDk5LjM5OFYyODYuOTQxeiBNMzYuNDgzLDI4Ni45NDFsMjEuNDU3LTE5LjIxbDIxLjQ1NywxOS4yMVYzMjkuOAoJCQlIMzYuNDgzVjI4Ni45NDF6IE0yNi40ODIsMzQ5LjgwMWgzMTQuNTc1djIzSDI2LjQ4MlYzNDkuODAxeiBNMzMxLjA1NywzOTIuODAxdjM1LjEzaC00Mi45MTR2LTM1LjEzSDMzMS4wNTd6IE0yNjguMTQzLDM5Mi44MDEKCQkJdjM1LjEzaC00Mi45MTV2LTM1LjEzSDI2OC4xNDN6IE0yMDUuMjI3LDM5Mi44MDF2MzUuMTNoLTQyLjkxNXYtMzUuMTNIMjA1LjIyN3ogTTE0Mi4zMTMsMzkyLjgwMXYzNS4xM0g5OS4zOTh2LTM1LjEzSDE0Mi4zMTN6CgkJCSBNNzkuMzk4LDM5Mi44MDF2MzUuMTNIMzYuNDgzdi0zNS4xM0g3OS4zOTh6IE0yMC40MzgsNDkydi00NC4wNjloNDcxLjEyM1Y0OTJIMjAuNDM4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzguNDg3LDEyNy44NDNjLTAuNTU2LDAtMS4xMTIsMC4wMTEtMS42NjgsMC4wMzNjLTcuNTQzLTE0LjQyLTIyLjUxOS0yMy45MjMtMzguODk0LTIzLjkyMwoJCQljLTIwLjU4NywwLTM4LjA0NywxNC42ODMtNDIuNzczLDM0LjM0NmMtMTkuNzgzLDEuOTMtMzUuMzA5LDE5LjAwMS0zNS4zMDksMzkuNzA3YzAsMjEuOTk0LDE3LjUxNywzOS44ODcsMzkuMDQ4LDM5Ljg4N2g3OS41OTYKCQkJYzI0LjI4NSwwLDQ0LjA0MS0yMC4xOTgsNDQuMDQxLTQ1LjAyNUMzMjIuNTI3LDE0OC4wNDEsMzAyLjc3MSwxMjcuODQzLDI3OC40ODcsMTI3Ljg0M3ogTTI3OC40ODcsMTk3Ljg5M2gtNzkuNTk2CgkJCWMtMTAuNTAzLDAtMTkuMDQ4LTguOTIxLTE5LjA0OC0xOS44ODdjMC0xMC45NjcsOC41NDUtMTkuODg4LDE5LjA0OC0xOS44ODhjMS4wNTYsMCwyLjE0OCwwLjA5OSwzLjI0NCwwLjI5NgoJCQljMi44OTMsMC41MTYsNS44Ny0wLjI2Nyw4LjEzNS0yLjE0MWMyLjI2NS0xLjg3NSwzLjU5LTQuNjUyLDMuNjIzLTcuNTkyYzAuMTUzLTEzLjYzNSwxMC45MzMtMjQuNzI4LDI0LjAzMi0yNC43MjgKCQkJYzEwLjYzOCwwLDE5Ljg3Nyw3LjEwOCwyMi45ODgsMTcuNjg5YzEuNTExLDUuMTM1LDYuNzk0LDguMTczLDExLjk5NCw2Ljg4NmMxLjgzOC0wLjQ1NCwzLjcxNS0wLjY4NCw1LjU4LTAuNjg0CgkJCWMxMy4yNTYsMCwyNC4wNDEsMTEuMjI2LDI0LjA0MSwyNS4wMjVDMzAyLjUyNywxODYuNjY3LDI5MS43NDMsMTk3Ljg5MywyNzguNDg3LDE5Ny44OTN6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gallery:Pae,Garage:Wae,Garden:Rae,"Ground Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgIGQ9Ik0yOTkuNjY4LDIzMS41NzJoLTMuMzM4di02NS43NDZjMC01LjcyNC00LjY1Ny0xMC4zOC0xMC4zOC0xMC4zOGgtNTkuMzU1Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAuMDAxLDQuMDI0LDMuMjYzLDcuMjg3LDcuMjg3LDcuMjg3aDg2Ljc5MWM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMzMDYuOTU1LDIzNC44MzUsMzAzLjY5MywyMzEuNTcyLDI5OS42NjgsMjMxLjU3MnogTTI4MS43NTgsMjMxLjU3M2gtNTAuOTd2LTYxLjU1NGg1MC45N1YyMzEuNTczeiIvPgogICAgICAgIDxwYXRoIG9wYWNpdHk9IjAuMjUiICBkPSJNNDEyLjU3MiwyMzEuNTcyaC0zLjMzOHYtNjUuNzQ2YzAtNS43MjQtNC42NTctMTAuMzgtMTAuMzc5LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g4Ni43OTFjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDE5Ljg1OSwyMzQuODM1LDQxNi41OTcsMjMxLjU3Miw0MTIuNTcyLDIzMS41NzJ6IE0zOTQuNjYxLDIzMS41NzNoLTUwLjk3di02MS41NTRoNTAuOTdWMjMxLjU3M3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTgyLjgxMyw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTUsNC41MjktMTAuMDk1LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0aDU5LjUwNGg3LjgxNGM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3CgkJCUMxOTAuMSw0MTcuMDk1LDE4Ni44MzgsNDEzLjgzMywxODIuODEzLDQxMy44MzN6IE0xNjcuNzEyLDQxMy44MzNoLTQ0LjkzMXYtNTUuNTY3aDQ0LjkzMVY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik00MDQuMzE0LDQxMy44MzNoLTAuNTI4di02MC4wNDVjMC01LjU2Ni00LjUyOS0xMC4wOTUtMTAuMDk1LTEwLjA5NWgtNTMuODg2Yy01LjU2NiwwLTEwLjA5Niw0LjUyOS0xMC4wOTYsMTAuMDk1djYwLjA0NQoJCQloLTAuNTI4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjUsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoNy44MTRIMzk2LjVoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDNDExLjYwMSw0MTcuMDk1LDQwOC4zMzksNDEzLjgzMyw0MDQuMzE0LDQxMy44MzN6IE0zODkuMjEzLDQxMy44MzNoLTQ0LjkzMnYtNTUuNTY3aDQ0LjkzMlY0MTMuODMzeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yNzYuNTQ1LDQwNS4wODljLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MTIuNjNjMCw0LjAyNCwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4NwoJCQljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtMTIuNjNDMjgzLjgzMiw0MDguMzUyLDI4MC41Nyw0MDUuMDg5LDI3Ni41NDUsNDA1LjA4OXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==","Guest Bathroom":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjMuNjE4IDYyLTIuNzE4LTUuNDQ3YTEgMSAwIDAgMCAtLjktLjU1M2gtMXYtMzBoM3YtMmgtM3YtMTlhNS4wMDYgNS4wMDYgMCAwIDAgLTUtNWgtMTRhNS4wMDYgNS4wMDYgMCAwIDAgLTUgNXYxYTMgMyAwIDAgMCAtMyAzdjFoLTVhMyAzIDAgMCAwIC0zIDN2MmExIDEgMCAwIDAgMSAxaDE1di0yaC0xNHYtMWExIDEgMCAwIDEgMS0xaDE4YTEgMSAwIDAgMSAxIDF2MWgtNHYyaDVhMSAxIDAgMCAwIDEtMXYtMmEzIDMgMCAwIDAgLTMtM2gtNXYtMWEzIDMgMCAwIDAgLTMtM3YtMWEzIDMgMCAwIDEgMy0zaDE0YTMgMyAwIDAgMSAzIDN2MTloLTV2Mmg1djE0aC0zdi0yaC0ydjZoMnYtMmgzdjE0aC0xYTEgMSAwIDAgMCAtLjkuNTUzbC0yLjcxOCA1LjQ0N2gtNTIuMzgydjJoNjR2LTJ6bS0yNS42MTgtNTN2MWgtNHYtMWExIDEgMCAwIDEgMS0xaDJhMSAxIDAgMCAxIDEgMXptMTguNjE4IDQ5aDIuNzY0bDIgNGgtNi43NjR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI5IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yOSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDM0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjkgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMyAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMzIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00MSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDEgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNyAxOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDI0aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzcgMjhoMnY0aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAzNGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQ1IDE4aDJ2NGgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtNDUgMjRoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im00NSAyOGgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTQxIDE4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMzMgMThoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAyMmgydjRoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI1IDI4aDJ2MmgtMnoiLz4KICAgICAgICA8cGF0aCBkPSJtMjUgMzJoMnY2aC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNSAxOGgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIgMzcuOTg3djE5LjAxM2ExIDEgMCAwIDAgMSAxaDEyYTEgMSAwIDAgMCAxLTF2LTE5LjFsMi0uMDEzdjIuMTEzaDJ2LTZoLTJ2MS44ODJsLTE4LjAwNi4xMTguMDEyIDJ6bTIgMTIuMDEzaDEwdjFoLTEwem0wIDZ2LTNoMTB2M3ptMTAtOGgtMTB2LTEwLjAyNmwxMC0uMDY2eiIvPgogICAgICAgIDxwYXRoIGQ9Im0xMCAyOWM0LjQ4NiAwIDgtNS4yNzEgOC0xMnMtMy41MTQtMTItOC0xMi04IDUuMjcxLTggMTIgMy41MTQgMTIgOCAxMnptMC0yMmMzLjI1MiAwIDYgNC41NzkgNiAxMHMtMi43NDggMTAtNiAxMC02LTQuNTc5LTYtMTAgMi43NDgtMTAgNi0xMHoiLz4KICAgICAgICA8cGF0aCBkPSJtNS4wOTUgMTMuNWg3LjgxdjJoLTcuODF6IiB0cmFuc2Zvcm09Im1hdHJpeCguNzY4IC0uNjQgLjY0IC43NjggLTcuMTk3IDkuMTIyKSIvPgogICAgICAgIDxwYXRoIGQ9Im03LjA5NSAxOC41aDcuODF2MmgtNy44MXoiIHRyYW5zZm9ybT0ibWF0cml4KC43NjggLS42NCAuNjQgLjc2OCAtOS45MzQgMTEuNTYyKSIvPgogICAgPC9nPgo8L3N2Zz4=","Guest Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NTYsMzI4YTQwLjAzNyw0MC4wMzcsMCwwLDAtOCwuODA0OTNWMTQ0YTcuOTc1MjIsNy45NzUyMiwwLDAsMC0yLjM0MzgxLTUuNjU3NDcsMTQuNjQ1MzUsMTQuNjQ1MzUsMCwwLDEsMC0yMC42ODUwNkE3Ljk3NTIyLDcuOTc1MjIsMCwwLDAsNDQ4LDExMlY4OGg0MGE3Ljk5OTQ2LDcuOTk5NDYsMCwwLDAsNi45NDU4LTExLjk2ODc1bC0zMi01NkE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAsNDU2LDE2SDM4NGE3Ljk5ODYzLDcuOTk4NjMsMCwwLDAtNi45NDU4LDQuMDMxMjVsLTMyLDU2QTcuOTk5NDYsNy45OTk0NiwwLDAsMCwzNTIsODhoNDB2MjRhNy45NzUyMiw3Ljk3NTIyLDAsMCwwLDIuMzQzODEsNS42NTc0NywxNC42NDUzNSwxNC42NDUzNSwwLDAsMSwwLDIwLjY4NTA2QTcuOTc1MjIsNy45NzUyMiwwLDAsMCwzOTIsMTQ0VjMyMEgzMTJWMjg4aDI0YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMjQ4YTguMDAwMDgsOC4wMDAwOCwwLDAsMC04LThIMzEyVjIxNmg0OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAsOC04VjExMmE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDIwOGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djk2YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhoNDh2MjRIMjA1LjQxNjA4bC0xMy42MDU1My0zNC4wMTQ2NS00Ljk3NDEyLTM5Ljc5M0E1Ni41MzE0OCw1Ni41MzE0OCwwLDAsMCwxODQsMTU0LjI2VjgwQTY0LDY0LDAsMCwwLDU2LDgwdjUyLjgyODYxQTU2LjA0MTkzLDU2LjA0MTkzLDAsMCwwLDMzLjU5NDI0LDE2MS45MTlsLTE3LjE4MzYsNTEuNTUwNzhhNy45OTgsNy45OTgsMCwwLDAtLjE3MTg3LDQuNDcwN2w1LjU5MTM3LDIyLjM2NTQ4QTcuOTk3NDUsNy45OTc0NSwwLDAsMCwxNiwyNDhWNDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LDhINDg4YTguMDAwMDgsOC4wMDAwOCwwLDAsMCw4LThWMzY4QTQwLjA0NTUyLDQwLjA0NTUyLDAsMCwwLDQ1NiwzMjhabTI0LDQwdjU2SDQzMlYzNjhhMjQsMjQsMCwwLDEsNDgsMFpNMjY0LDQyNFY0MDBhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgtOEg0MDhhOC4wMDkxNyw4LjAwOTE3LDAsMCwxLDgsOHYyNFpNOTYsNDI0VjQwMGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOC04SDI0MGE4LjAwOTE3LDguMDA5MTcsMCwwLDEsOCw4djI0Wm0zMjAtODB2MzMuMzc2MjJBMjMuODgyMTIsMjMuODgyMTIsMCwwLDAsNDA4LDM3NkgyNzJhMjMuOTAxMTEsMjMuOTAxMTEsMCwwLDAtMTYsNi4xMzA4NkEyMy45MDExMSwyMy45MDExMSwwLDAsMCwyNDAsMzc2SDEwNGEyMy44ODIxMiwyMy44ODIxMiwwLDAsMC04LDEuMzc2MjJWMzQ0YTguMDA5MTcsOC4wMDkxNywwLDAsMSw4LThINDA4QTguMDA5MTcsOC4wMDkxNywwLDAsMSw0MTYsMzQ0Wm0xMC40NTE3Mi0yMDhINDEzLjU0ODI4YTMwLjg0MzUxLDMwLjg0MzUxLDAsMCwwLDAtMTZoMTIuOTAzNDRBMzAuODQzNTEsMzAuODQzNTEsMCwwLDAsNDI2LjQ1MTcyLDEzNlpNMzg4LjY0MjU4LDMyaDYyLjcxNDg0bDIyLjg1Njk0LDQwSDM2NS43ODU2NFpNNDMyLDg4djE2SDQwOFY4OFptLTI0LDY0aDI0VjMzNi4wMjJjLS4zNjYzMy4yNzU2NC0uNzI0MTguNTYyLTEuMDgwNjkuODQ5NjFBMjQuMDQzNjksMjQuMDQzNjksMCwwLDAsNDA4LDMyMFpNMjk2LDMyMEgxMDRhMjQuMDQzNjksMjQuMDQzNjksMCwwLDAtMjIuOTE5MzEsMTYuODcxNThBMzkuOSwzOS45LDAsMCwwLDMyLDMzNi4wMjJWMjg4SDI5NlptMzItNDhIMzJWMjU2SDMyOFpNNzIsMjQwSDY0VjIyNS41NDFsNy4zMTY4OS0xOC4yOTJMNzIsMjA5LjI5Nzg1Wm04OC0uMDAwMjQuMDAwMjQuMDAwMjRIMTYwWk0yMTYsMjAwVjEyMEgzNTJ2ODBIMzEyVjE2OGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04SDI2NGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOCw4djMyWm01Ni0yNGgyNHY2NEgyNzJaTTEyMCwzMmE0OC4wNTQsNDguMDU0LDAsMCwxLDQ4LDQ4djUwLjg1MzUyYTU2LjcyNTYyLDU2LjcyNTYyLDAsMCwwLTcuOTE5OTItNS43MzUzNmwtMTEuNDQxNjUtNi44NjVBMzEuNzk0MDUsMzEuNzk0MDUsMCwwLDAsMTUyLDEwNFY4MGE4LjAwMDA4LDguMDAwMDgsMCwwLDAtOC04aC02LjExMTMzYTIwLjgzMDUzLDIwLjgzMDUzLDAsMCwxLTE4LjczMzQtMTEuNTc4MTIsOC4wMDA2NCw4LjAwMDY0LDAsMCwwLTEyLjgxMi0yLjA3OTExbC0xNiwxNkE4LjAwMDc2LDguMDAwNzYsMCwwLDAsODgsODB2MjRhMzEuODAxODgsMzEuODAxODgsMCwwLDAsMi43NTc1MSwxMi45NzExOUw3MiwxMjUuMDFWODBBNDguMDU0LDQ4LjA1NCwwLDAsMSwxMjAsMzJabTE2LDcyYTE2LDE2LDAsMCwxLTMyLDBWODMuMzEzNDhsNi45NDY3OC02Ljk0NjI5QTM2LjY5ODE2LDM2LjY5ODE2LDAsMCwwLDEzNiw4Ny45NTMxMlptLTM0Ljc3MTkxLDI1Ljg5MjA5YTMxLjkxNjEzLDMxLjkxNjEzLDAsMCwwLDM2LjcwNDQ3LjU5NzE3bDEuMjM3MTguNzQyNDNMMTIwLDE1NS4xOTMzNmwtMTkuODY2MjctMjQuODMyMjhaTTQ4Ljc3MywxNjYuOTc5NDlBNDAuMDM1MzgsNDAuMDM1MzgsMCwwLDEsNzAuOTYzODcsMTQyLjg2MjNsMTMuOTExNjItNS45NjE5MSwyOC44Nzc0NCwzNi4wOTY2OGE3Ljk5OTQzLDcuOTk5NDMsMCwwLDAsMTIuNDk0MTQsMEwxNTIuOTksMTM5LjU2ODM2YTM5LjcyNzc5LDM5LjcyNzc5LDAsMCwxLDE3Ljk2OTQ4LDI4LjYwODRsNS4xMDI1NCw0MC44MTU0M2E3Ljk4MjgxLDcuOTgyODEsMCwwLDAsLjUxMDI2LDEuOTc4NTFMMTg4LjE4MzU5LDI0MEgxODBsLTIwLTI2LjY2N1YyMDEuODA2NjRhNTAuODIzMzgsNTAuODIzMzgsMCwwLDAsMS45MzI2Mi0zNy4zMDc2MmwtMi4zNDMyNi03LjAyOTI5LTE1LjE3ODcyLDUuMDYwNTQsMi4zNDMyNyw3LjAyOTNhMzQuOTU1MTMsMzQuOTU1MTMsMCwwLDEtMS45MDkxOCwyNi44NjIzMUE3Ljk5OTM0LDcuOTk5MzQsMCwwLDAsMTQ0LDIwMHY0MEg4OFYyMDhhOC4wMDY0Myw4LjAwNjQzLDAsMCwwLS40MTA2NC0yLjUzMDI3bC04LTI0YTguMDAwMDksOC4wMDAwOSwwLDAsMC0xNS4wMTcwOS0uNDQwNDNsLTE2LDQwQTcuOTk3MjMsNy45OTcyMywwLDAsMCw0OCwyMjR2MTZIMzguMjQ2MDlsLTUuOTE5OTItMjMuNjgwNjZaTTMyLDM2OGEyNCwyNCwwLDAsMSw0OCwwdjU2SDMyWk00ODAsNDgwSDMyVjQ0MEg0ODBaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=",Gym:Jae,Hall:Bae,"Home Theater":"PHN2ZyBoZWlnaHQ9IjUxMXB0IiB2aWV3Qm94PSIxIC00NCA1MTEuOTk4OTkgNTExIiB3aWR0aD0iNTExcHQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgPHBhdGggZD0ibTI4Mi41MTk1MzEgMzMzLjk4ODI4MWMtNC4xNzE4NzUgMC03LjU0Njg3NSAzLjM3ODkwNy03LjU0Njg3NSA3LjU0Njg3NSAwIDQuMTY3OTY5IDMuMzc1IDcuNTQ2ODc1IDcuNTQ2ODc1IDcuNTQ2ODc1aDExNC4zMzk4NDRjNy4wODIwMzEgMCAxMi44NDM3NS01Ljc2MTcxOSAxMi44NDM3NS0xMi44NDc2NTZ2LTE5MS45Mjk2ODdjMC03LjA4MjAzMi01Ljc2MTcxOS0xMi44NDc2NTctMTIuODQzNzUtMTIuODQ3NjU3aC0yODEuNzE4NzVjLTcuMDgyMDMxIDAtMTIuODQzNzUgNS43NjU2MjUtMTIuODQzNzUgMTIuODQ3NjU3djE5MS45Mjk2ODdjMCA3LjA4NTkzNyA1Ljc2MTcxOSAxMi44NDc2NTYgMTIuODQzNzUgMTIuODQ3NjU2aDEzNy4xOTE0MDZjNC4xNjc5NjkgMCA3LjU0Njg3NS0zLjM3ODkwNiA3LjU0Njg3NS03LjU0Njg3NSAwLTQuMTY3OTY4LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc1LTcuNTQ2ODc1aC0xMzQuOTQ1MzEydi0xODcuNDM3NWgyNzcuMjI2NTYydjE4Ny40Mzc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00OS4yNjE3MTkgODIuNzQyMTg4YzE1LjU4MjAzMSAwIDI4LjI2MTcxOS0xMi42Nzk2ODggMjguMjYxNzE5LTI4LjI1MzkwNyAwLTE1LjU4NTkzNy0xMi42Nzk2ODgtMjguMjYxNzE5LTI4LjI2MTcxOS0yOC4yNjE3MTktMTUuNTc4MTI1IDAtMjguMjUzOTA3IDEyLjY3NTc4Mi0yOC4yNTM5MDcgMjguMjYxNzE5IDAgMTUuNTc0MjE5IDEyLjY3NTc4MiAyOC4yNTM5MDcgMjguMjUzOTA3IDI4LjI1MzkwN3ptMC00MS40MjU3ODJjNy4yNjE3MTkgMCAxMy4xNjc5NjkgNS45MDYyNSAxMy4xNjc5NjkgMTMuMTcxODc1IDAgNy4yNTM5MDctNS45MDYyNSAxMy4xNjAxNTctMTMuMTY3OTY5IDEzLjE2MDE1Ny03LjI1MzkwNyAwLTEzLjE2MDE1Ny01LjkwNjI1LTEzLjE2MDE1Ny0xMy4xNjAxNTcgMC03LjI2NTYyNSA1LjkwNjI1LTEzLjE3MTg3NSAxMy4xNjAxNTctMTMuMTcxODc1em0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxLjVjLTI3LjE2NDA2MiAwLTQ5LjI2OTUzMSAyMi4xMDU0NjktNDkuMjY5NTMxIDQ5LjI2OTUzMXY1Ni4zMDQ2ODhjLTUuNjUyMzQ0LTEuMzY3MTg4LTYuMDQyOTY5LS41MzUxNTctNTQuMzMyMDMxLS43NzczNDQtNC4xNjQwNjMgMC03LjU0Mjk2OSAzLjM4MjgxMy03LjU0Mjk2OSA3LjU0Njg3NXMzLjM3ODkwNiA3LjU0Njg3NSA3LjU0Mjk2OSA3LjU0Njg3NWg0Ny43MjI2NTZjNy43MzA0NjkgMCAxMy45MTQwNjMgNi4zMDQ2ODcgMTMuOTE0MDYzIDEzLjkxNDA2M3YyMTEuOTMzNTkzYzAgNy42NjQwNjMtNi4yNDYwOTQgMTMuOTE0MDYzLTEzLjkxNDA2MyAxMy45MTQwNjMtNTkuNDE3OTY5IDAtMjMxLjU1NDY4NyAwLTMwMS43MTg3NSAwLTcuNjY3OTY5IDAtMTMuOTE0MDYzLTYuMjUtMTMuOTE0MDYzLTEzLjkxNDA2MyAwLTEwLjc0NjA5MyAwLTIwNC41ODk4NDMgMC0yMTEuOTMzNTkzIDAtNS4yNzM0MzggMi45NTcwMzItOS44Nzg5MDcgNy4zMDQ2ODgtMTIuMjQ2MDk0IDUuODQzNzUtMy4xNzU3ODItNC4yNDIxODgtMS4wNDY4NzUgMjMwLjQyMTg3NS0xLjY2Nzk2OSA0LjE3NTc4MSAwIDcuNTQ2ODc1LTMuMzgyODEzIDcuNTQ2ODc1LTcuNTQ2ODc1cy0zLjM3MTA5NC03LjU0Njg3NS03LjU0Njg3NS03LjU0Njg3NWMtMjM2LjM1MTU2My4yNzM0MzctMjI0LjU1MDc4MS0uNjQ0NTMxLTIzMC40MjE4NzUuNzc3MzQ0di01Ni4zMDQ2ODhjMC0yNy4xNjQwNjItMjIuMTA1NDY5LTQ5LjI2OTUzMS00OS4yNjk1MzEtNDkuMjY5NTMxLTIyLjc2OTUzMSAwLTQyLjQ0OTIxOSAxNS40MzM1OTQtNDcuODYzMjgxIDM3LjUyNzM0NC0uOTg0Mzc2IDQuMDU0Njg3IDEuNSA4LjE0MDYyNSA1LjU0Mjk2OCA5LjEyNSA0LjA0Njg3NS45ODgyODEgOC4xMjg5MDYtMS40ODgyODIgOS4xMjUtNS41MzEyNSAzLjc0NjA5NC0xNS4zMjQyMTkgMTcuMzk4NDM4LTI2LjAzMTI1IDMzLjE5NTMxMy0yNi4wMzEyNSAxOC44NDM3NSAwIDM0LjE3NTc4MSAxNS4zMzU5MzcgMzQuMTc1NzgxIDM0LjE3OTY4N3Y2NS4zMTY0MDdjLTMuMTEzMjgxIDMuNTExNzE4LTUuMzkwNjI1IDcuNzczNDM3LTYuNTExNzE5IDEyLjQ4MDQ2OC0yLjY3MTg3NS0xMi44MjQyMTgtMTQuMDU4NTkzLTIyLjQ4ODI4MS0yNy42NjQwNjItMjIuNDg4MjgxLTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42Nzk2ODctMjguMjUzOTA3IDI4LjI1NzgxMyAwIDE1LjU3ODEyNCAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIxMDkzOCAyNi44NzEwOTMtMTkuNTMxMjV2NjEuMzk4NDM4Yy0zLjY4MzU5My0xMS4zMjAzMTMtMTQuMzM1OTM3LTE5LjUyNzM0NC0yNi44NzEwOTMtMTkuNTI3MzQ0LTE1LjU3ODEyNSAwLTI4LjI1MzkwNyAxMi42NzU3ODEtMjguMjUzOTA3IDI4LjI1MzkwNiAwIDE1LjU4MjAzMSAxMi42NzU3ODIgMjguMjU3ODEyIDI4LjI1MzkwNyAyOC4yNTc4MTIgMTIuNTM1MTU2IDAgMjMuMTg3NS04LjIwNzAzMSAyNi44NzEwOTMtMTkuNTMxMjV2NjEuNDAyMzQ0Yy0zLjY4MzU5My0xMS4zMjQyMTgtMTQuMzM1OTM3LTE5LjUzMTI1LTI2Ljg3MTA5My0xOS41MzEyNS0xNS41NzgxMjUgMC0yOC4yNTM5MDcgMTIuNjc1NzgyLTI4LjI1MzkwNyAyOC4yNTM5MDYgMCAxNS41ODIwMzIgMTIuNjc1NzgyIDI4LjI1NzgxMyAyOC4yNTM5MDcgMjguMjU3ODEzIDEyLjUzNTE1NiAwIDIzLjE4NzUtOC4yMDcwMzEgMjYuODcxMDkzLTE5LjUzMTI1djE3LjA4OTg0NGMtMjAuMTA1NDY4IDI1LjUzMTI1LTYxLjAzOTA2MiAxMS4xMjUtNjEuMDM5MDYyLTIxLjA5NzY1N3YtMjI1Ljg0Mzc1YzAtNC4xNzU3ODEtMy4zODI4MTItNy41NDY4NzQtNy41NDY4NzUtNy41NDY4NzQtNC4xNzU3ODEgMC03LjU0Njg3NSAzLjM3MTA5My03LjU0Njg3NSA3LjU0Njg3NHYyMjUuODQzNzVjMCAyNC42MDE1NjMgMTguMTIxMDk0IDQ1LjA1MDc4MiA0MS43MTg3NSA0OC42OTUzMTN2NjIuNTI3MzQ0aC0xOC45NjQ4NDRjLTQuMTY3OTY4IDAtNy41NDY4NzUgMy4zNzg5MDYtNy41NDY4NzUgNy41NDY4NzUgMCA0LjE2Nzk2OCAzLjM3ODkwNyA3LjU0Njg3NSA3LjU0Njg3NSA3LjU0Njg3NWg1My4wMTk1MzJjNC4xNjc5NjggMCA3LjU0Njg3NC0zLjM3ODkwNyA3LjU0Njg3NC03LjU0Njg3NSAwLTQuMTY3OTY5LTMuMzc4OTA2LTcuNTQ2ODc1LTcuNTQ2ODc0LTcuNTQ2ODc1aC0xOC45NjQ4NDR2LTYyLjUzMTI1YzcuMDQyOTY4LTEuMDg1OTM4IDEzLjU5NzY1Ni0zLjY2Nzk2OSAxOS4zMjQyMTgtNy40MTAxNTd2OS4xOTkyMTljMCAxNS45ODQzNzUgMTMuMDE5NTMyIDI5LjAwMzkwNyAyOS4wMDc4MTMgMjkuMDAzOTA3aDQ1LjgyMDMxM3YzNS44OTg0MzdjMCA2LjI4OTA2MyA1LjEwOTM3NCAxMS40MTAxNTYgMTEuMzk4NDM3IDExLjQxMDE1NmgyMS4xMjg5MDZjNi4yODkwNjMgMCAxMS4zOTg0MzgtNS4xMjEwOTMgMTEuMzk4NDM4LTExLjQxMDE1NnYtMzUuODk4NDM3aDEyMi4yMjY1NjJ2MzUuODk4NDM3YzAgNi4yODkwNjMgNS4xMDkzNzUgMTEuNDEwMTU2IDExLjM5ODQzOCAxMS40MTAxNTZoMjEuMTI4OTA2YzYuMjg5MDYzIDAgMTEuMzk4NDM3LTUuMTIxMDkzIDExLjM5ODQzNy0xMS40MTAxNTZ2LTM1Ljg5ODQzN2g0NS44MjAzMTNjMTUuOTg4MjgxIDAgMjkuMDA3ODEzLTEzLjAxOTUzMiAyOS4wMDc4MTMtMjkuMDAzOTA3di05LjE5OTIxOWM1LjcyNjU2MiAzLjc0MjE4OCAxMi4yODEyNSA2LjMyNDIxOSAxOS4zMjQyMTggNy40MTAxNTd2NjIuNTMxMjVoLTE4Ljk2NDg0NGMtNC4xNjc5NjggMC03LjU0Njg3NCAzLjM3ODkwNi03LjU0Njg3NCA3LjU0Njg3NSAwIDQuMTY3OTY4IDMuMzc4OTA2IDcuNTQ2ODc1IDcuNTQ2ODc0IDcuNTQ2ODc1aDUzLjAxOTUzMmM0LjE2Nzk2OCAwIDcuNTQ2ODc1LTMuMzc4OTA3IDcuNTQ2ODc1LTcuNTQ2ODc1IDAtNC4xNjc5NjktMy4zNzg5MDctNy41NDY4NzUtNy41NDY4NzUtNy41NDY4NzVoLTE4Ljk2NDg0NHYtNjIuNTI3MzQ0YzIzLjU5NzY1Ni0zLjY0NDUzMSA0MS43MTg3NS0yNC4wOTM3NSA0MS43MTg3NS00OC42OTUzMTN2LTI0NS45ODgyODFjMC0yNy4xNjQwNjItMjIuMDkzNzUtNDkuMjY5NTMxLTQ5LjI2MTcxOS00OS4yNjk1MzF6bS00MTMuNDc2NTYyIDE0NmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY0MDYyIDAtNy4yNTc4MTMgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY0MDYzLTEzLjE2NDA2MyA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjMgMCA3LjI1NzgxMi01LjkwNjI1IDEzLjE2NDA2Mi0xMy4xNjQwNjIgMTMuMTY0MDYyem0wIDc4Ljg1NTQ2OWMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0wIDc4Ljg1MTU2MmMtNy4yNTc4MTMgMC0xMy4xNjQwNjMtNS45MDYyNS0xMy4xNjQwNjMtMTMuMTY3OTY5IDAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYzLTEzLjE2NDA2MiA3LjI1NzgxMiAwIDEzLjE2NDA2MiA1LjkwNjI1IDEzLjE2NDA2MiAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjIgMTMuMTY3OTY5em0xMzAuNTM1MTU2IDEwMy4yNTM5MDdoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNjYuMTUyMzQ0IDBoLTEzLjc0NjA5NHYtMzIuMjE4NzVoMTMuNzQ2MDk0em0xNTAuOTU3MDMxLTExMS43MDMxMjZjMCAzMi4yMzgyODItNDAuOTQxNDA2IDQ2LjYyMTA5NC02MS4wMzkwNjIgMjEuMDk3NjU3di0xNy4wODU5MzhjMy42ODM1OTMgMTEuMzIwMzEzIDE0LjMzNTkzNyAxOS41MjczNDQgMjYuODcxMDkzIDE5LjUyNzM0NCAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTMgMC0xNS41NzgxMjQtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMi0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTQ1MzFjMy42ODM1OTMgMTEuMzIwMzEyIDE0LjMzNTkzNyAxOS41MjczNDMgMjYuODcxMDkzIDE5LjUyNzM0MyAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTc4MTIgMC0xNS41NzgxMjUtMTIuNjc1NzgyLTI4LjI1MzkwNi0yOC4yNTM5MDctMjguMjUzOTA2LTEyLjUzNTE1NiAwLTIzLjE4MzU5MyA4LjIwNzAzMS0yNi44NzEwOTMgMTkuNTI3MzQ0di02MS4zOTg0MzhjMy42ODM1OTMgMTEuMzI0MjE5IDE0LjMzNTkzNyAxOS41MzEyNSAyNi44NzEwOTMgMTkuNTMxMjUgMTUuNTc4MTI1IDAgMjguMjUzOTA3LTEyLjY3NTc4MSAyOC4yNTM5MDctMjguMjU3ODEyIDAtMTUuNTc4MTI2LTEyLjY3NTc4Mi0yOC4yNTM5MDctMjguMjUzOTA3LTI4LjI1MzkwNy0xMy42MDU0NjkgMC0yNC45OTIxODcgOS42NjAxNTctMjcuNjY0MDYyIDIyLjQ4NDM3NS0xLjEyMTA5NC00LjcwNzAzMS0zLjM5ODQzOC04Ljk2ODc1LTYuNTExNzE5LTEyLjQ3NjU2MnYtNjUuMzIwMzEzYzAtMTguODQzNzUgMTUuMzMyMDMxLTM0LjE3OTY4NyAzNC4xNzk2ODgtMzQuMTc5Njg3IDE4Ljg0Mzc1IDAgMzQuMTY3OTY4IDE1LjMzNTkzNyAzNC4xNjc5NjggMzQuMTc5Njg3djI0NS45ODgyODF6bS00Ny4zMzIwMzEtNC43MTg3NWMwLTcuMjU3ODEyIDUuOTA2MjUtMTMuMTY0MDYyIDEzLjE2NDA2Mi0xMy4xNjQwNjIgNy4yNTc4MTMgMCAxMy4xNjQwNjMgNS45MDYyNSAxMy4xNjQwNjMgMTMuMTY0MDYyIDAgNy4yNjE3MTktNS45MDYyNSAxMy4xNjc5NjktMTMuMTY0MDYzIDEzLjE2Nzk2OS03LjI1NzgxMiAwLTEzLjE2NDA2Mi01LjkwNjI1LTEzLjE2NDA2Mi0xMy4xNjc5Njl6bTAtNzguODUxNTYyYzAtNy4yNTc4MTIgNS45MDYyNS0xMy4xNjQwNjIgMTMuMTY0MDYyLTEzLjE2NDA2MiA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwNjI1IDEzLjE2NDA2MyAxMy4xNjQwNjIgMCA3LjI2MTcxOS01LjkwNjI1IDEzLjE2Nzk2OS0xMy4xNjQwNjMgMTMuMTY3OTY5LTcuMjU3ODEyIDAtMTMuMTY0MDYyLTUuOTA2MjUtMTMuMTY0MDYyLTEzLjE2Nzk2OXptMC03OC44NTE1NjJjMC03LjI1NzgxMyA1LjkwNjI1LTEzLjE2NDA2MyAxMy4xNjQwNjItMTMuMTY0MDYzIDcuMjU3ODEzIDAgMTMuMTY0MDYzIDUuOTA2MjUgMTMuMTY0MDYzIDEzLjE2NDA2MyAwIDcuMjU3ODEyLTUuOTA2MjUgMTMuMTY0MDYyLTEzLjE2NDA2MyAxMy4xNjQwNjItNy4yNTc4MTIgMC0xMy4xNjQwNjItNS45MDYyNS0xMy4xNjQwNjItMTMuMTY0MDYyem0wIDAiLz4KICAgIDxwYXRoIGQ9Im00NjIuNzM4MjgxIDI2LjIyNjU2MmMtMTUuNTgyMDMxIDAtMjguMjU3ODEyIDEyLjY3NTc4Mi0yOC4yNTc4MTIgMjguMjU3ODEzIDAgMTUuNTc4MTI1IDEyLjY3NTc4MSAyOC4yNTM5MDYgMjguMjU3ODEyIDI4LjI1MzkwNiAxNS41NzgxMjUgMCAyOC4yNTM5MDctMTIuNjc1NzgxIDI4LjI1MzkwNy0yOC4yNTM5MDYgMC0xNS41ODIwMzEtMTIuNjc1NzgyLTI4LjI1NzgxMy0yOC4yNTM5MDctMjguMjU3ODEzem0wIDQxLjQyMTg3NmMtNy4yNjE3MTkgMC0xMy4xNjc5NjktNS45MDYyNS0xMy4xNjc5NjktMTMuMTY0MDYzIDAtNy4yNjE3MTkgNS45MDYyNS0xMy4xNjQwNjMgMTMuMTY3OTY5LTEzLjE2NDA2MyA3LjI1NzgxMyAwIDEzLjE2NDA2MyA1LjkwMjM0NCAxMy4xNjQwNjMgMTMuMTY0MDYzIDAgNy4yNTc4MTMtNS45MDYyNSAxMy4xNjQwNjMtMTMuMTY0MDYzIDEzLjE2NDA2M3ptMCAwIi8+CiAgICA8L2c+Cjwvc3ZnPg==",Kitchen:Fae,"Laundry Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDY0IDY0IiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtNjEgMmgtNThjLS41NTIgMC0xIC40NDgtMSAxdjU4YzAgLjU1Mi40NDggMSAxIDFoNThjLjU1MiAwIDEtLjQ0OCAxLTF2LTU4YzAtLjU1Mi0uNDQ4LTEtMS0xem0tMSA2aC00di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC02Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyaC0zYy0uNTUyIDAtMSAuNDQ4LTEgMXY5aC0ydi0xNGgxOHptLTEyLjE0MiAzMS0xLjY5Mi0xMWg5LjY2OWwtMS42OTIgMTF6bTEuMTQyLTEzYzAtMS4xMDMuODk3LTIgMi0yczIgLjg5NyAyIDJ6bTguNzU5LjM0OWMtLjE5LS4yMjItLjQ2Ny0uMzQ5LS43NTktLjM0OWgtMmMwLTIuMjA2LTEuNzk0LTQtNC00cy00IDEuNzk0LTQgNGgtMmMtLjI5MiAwLS41NjkuMTI3LS43NTkuMzQ5cy0uMjc0LjUxNS0uMjI5LjgwM2wxLjgyMyAxMS44NDhoLTMuODM1di0xOWgxOHYxOWgtMy44MzVsMS44MjMtMTEuODQ4Yy4wNDUtLjI4OC0uMDM5LS41ODItLjIyOS0uODAzem0tNy43NTktMTcuMzQ5di0yaDR2MTFoLTR6bS0yIDloLTJ2LThoMnptOCAwdi04aDR2OHptLTE2LTE0djE0aC0ydi0xMGMwLS41NTItLjQ0OC0xLTEtMWgtNmMtLjU1MiAwLTEgLjQ0OC0xIDF2MTBoLTJ2LTdjMC0uMjY1LS4xMDUtLjUyLS4yOTMtLjcwN2wtMS43MDctMS43MDd2LTIuNTg2YzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyLjU4NmwtMS43MDcgMS43MDdjLS4xODguMTg3LS4yOTMuNDQyLS4yOTMuNzA3djdoLTJ2LTEwYzAtLjU1Mi0uNDQ4LTEtMS0xaC04Yy0uNTUyIDAtMSAuNDQ4LTEgMXYxMGgtMnYtMTR6bS00IDE0aC00di05aDR6bS0xMS43MDctOC4yOTMgMS43MDcgMS43MDd2Ni41ODZoLTZ2LTYuNTg2bDEuNzA3LTEuNzA3Yy4xODgtLjE4Ny4yOTMtLjQ0Mi4yOTMtLjcwN3YtMmgydjJjMCAuMjY1LjEwNS41Mi4yOTMuNzA3em0tMTAuMjkzIDguMjkzaC02di05aDZ6bS0xMCAyaDM2djQwaC0zNnptNDUgMjhoLTJ2LTFoMnptLTMgMmg0LjY0OWw0LjM1MSAzLjQ4djYuNTJoLTl6bTExIDEwdi03YzAtLjMwNC0uMTM4LS41OTEtLjM3NS0uNzgxbC01LTRjLS4xNzgtLjE0Mi0uMzk4LS4yMTktLjYyNS0uMjE5di0yYzAtLjU1Mi0uNDQ4LTEtMS0xaC00Yy0uNTUyIDAtMSAuNDQ4LTEgMXYyYy0uNTUyIDAtMSAuNDQ4LTEgMXYxMWgtMnYtMTloMTh2MTl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM3IDIyaC0zMGMtLjU1MiAwLTEgLjQ0OC0xIDF2MzRjMCAuNTUyLjQ0OCAxIDEgMWgzMGMuNTUyIDAgMS0uNDQ4IDEtMXYtMzRjMC0uNTUyLS40NDgtMS0xLTF6bS0xIDJ2NWgtMjh2LTV6bS0yOCAzMnYtMjVoMjh2MjV6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIyIDMzYy02LjA2NSAwLTExIDQuOTM1LTExIDExczQuOTM1IDExIDExIDExIDExLTQuOTM1IDExLTExLTQuOTM1LTExLTExLTExem0wIDIwYy00Ljk2MiAwLTktNC4wMzgtOS05czQuMDM4LTkgOS05IDkgNC4wMzggOSA5LTQuMDM4IDktOSA5eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yNi4xOTkgNDguMjg2IDEuMzk5IDEuNDI5Yy42NzctLjY2MyAxLjIyNi0xLjQzMiAxLjYzMS0yLjI4NmwtMS44MDctLjg1N2MtLjMwMy42MzktLjcxNCAxLjIxNi0xLjIyMyAxLjcxNHoiLz4KICAgICAgICA8cGF0aCBkPSJtMjIgMzZ2MmMzLjMwOSAwIDYgMi42OTEgNiA2aDJjMC00LjQxMS0zLjU4OS04LTgtOHoiLz4KICAgICAgICA8cGF0aCBkPSJtMTAgMjVoMnYyaC0yeiIvPgogICAgICAgIDxwYXRoIGQ9Im0xNCAyNWgydjJoLTJ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTMyIDI1aDJ2MmgtMnoiLz4KICAgIDwvZz4KPC9zdmc+","Living Area":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Im00OTQuNSAyNzcuNjY3aC01LjV2LTM2LjVjMC0xNS4xNjQtMTIuMzM2LTI3LjUtMjcuNS0yNy41aC0xMTBjLTcuODc1IDAtMTQuOTgyIDMuMzMyLTIwIDguNjU1LTUuMDE4LTUuMzIyLTEyLjEyNS04LjY1NS0yMC04LjY1NWgtMTEwYy03Ljg3NSAwLTE0Ljk4MiAzLjMzMi0yMCA4LjY1NS01LjAxOC01LjMyMi0xMi4xMjUtOC42NTUtMjAtOC42NTVoLTQwLjVjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoNDAuNWM2Ljg5MyAwIDEyLjUgNS42MDcgMTIuNSAxMi41djc3LjAxOGMtMy43NTMtMS45MjQtOC0zLjAxOC0xMi41LTMuMDE4aC0xMDEuNXYtMjBjMC05LjY0OS03Ljg1MS0xNy41LTE3LjUtMTcuNWgtMy41di0zNi41YzAtNi44OTMgNS42MDctMTIuNSAxMi41LTEyLjVoMzQuNWM0LjE0MiAwIDcuNS0zLjM1OCA3LjUtNy41cy0zLjM1OC03LjUtNy41LTcuNWgtMzQuNWMtMTUuMTY0IDAtMjcuNSAxMi4zMzYtMjcuNSAyNy41djM2LjVoLTYuNWMtOS42NDkgMC0xNy41IDcuODUxLTE3LjUgMTcuNXY0Mi41YzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTQyLjVjMC0xLjM3OCAxLjEyMi0yLjUgMi41LTIuNWgyNWMxLjM3OCAwIDIuNSAxLjEyMiAyLjUgMi41djE0MC41aC0yNy41Yy0xLjM3OCAwLTIuNS0xLjEyMi0yLjUtMi41di02MC41YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djYwLjVjMCA5LjY0OSA3Ljg1MSAxNy41IDE3LjUgMTcuNWgyNy41djE0LjY2N2MwIDYuODkzIDUuNjA3IDEyLjUgMTIuNSAxMi41aDI1YzYuODkzIDAgMTIuNS01LjYwNyAxMi41LTEyLjV2LTE0LjY2N2gzMjJ2MTQuNjY3YzAgNi44OTMgNS42MDcgMTIuNSAxMi41IDEyLjVoMjVjNi44OTMgMCAxMi41LTUuNjA3IDEyLjUtMTIuNXYtMTQuNjY3aDI3LjVjOS42NDkgMCAxNy41LTcuODUxIDE3LjUtMTcuNXYtMTM4YzAtOS42NS03Ljg1MS0xNy41LTE3LjUtMTcuNXptLTE0My00OWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXYzNi41aC00LjVjLTkuNjQ5IDAtMTcuNSA3Ljg1MS0xNy41IDE3LjV2MjBoLTEwMC41Yy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTI5MS41IDIwN3YtMTVoMzI2YzQuMTQyIDAgNy41LTMuMzU4IDcuNS03LjVzLTMuMzU4LTcuNS03LjUtNy41aC0zMjZ2LTE1LjVoMTAxLjVjNy44NzUgMCAxNC45ODItMy4zMzIgMjAtOC42NTUgNS4wMTggNS4zMjIgMTIuMTI1IDguNjU1IDIwIDguNjU1aDExMGM3Ljg3NSAwIDE0Ljk4Mi0zLjMzMiAyMC04LjY1NSA1LjAxOCA1LjMyMiAxMi4xMjUgOC42NTUgMjAgOC42NTVoMTAwLjV2MTUuNWgtMzFjLTQuMTQyIDAtNy41IDMuMzU4LTcuNSA3LjVzMy4zNTggNy41IDcuNSA3LjVoMzF2MTV6bTM5Mi02MC41aC0xMDAuNWMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMDAuNXptLTEyOC0xMi41YzAgNi44OTMtNS42MDcgMTIuNS0xMi41IDEyLjVoLTExMGMtNi44OTMgMC0xMi41LTUuNjA3LTEyLjUtMTIuNXYtMjBjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNWgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXptLTEyMi41LTEzNGgxMTBjNi44OTMgMCAxMi41IDUuNjA3IDEyLjUgMTIuNXY3Ny4wMThjLTMuNzUzLTEuOTI0LTgtMy4wMTgtMTIuNS0zLjAxOGgtMTEwYy00LjUgMC04Ljc0NyAxLjA5My0xMi41IDMuMDE4di03Ny4wMThjMC02Ljg5MyA1LjYwNy0xMi41IDEyLjUtMTIuNXptLTQwIDEwMS41YzYuODkzIDAgMTIuNSA1LjYwNyAxMi41IDEyLjV2MjBjMCA2Ljg5My01LjYwNyAxMi41LTEyLjUgMTIuNWgtMTAxLjV2LTQ1em0tODEuNSAxMzIuNjY2aC0yMHYtMTIuMTY3aDIwem0zNTIgMHYtMTIuMTY3aDIwdjEyLjE2N3ptNjUtMjkuNjY2YzAgMS4zNzgtMS4xMjIgMi41LTIuNSAyLjVoLTI3LjV2LTE0MC41YzAtMS4zNzggMS4xMjItMi41IDIuNS0yLjVoMjVjMS4zNzggMCAyLjUgMS4xMjIgMi41IDIuNXoiLz4KICAgICAgICA8cGF0aCBkPSJtNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zNjIgMTczLjY2N2g4OWM2Ljg5MyAwIDEyLjUtNS42MDcgMTIuNS0xMi41di01NmMwLTYuODkzLTUuNjA3LTEyLjUtMTIuNS0xMi41aC04OWMtNi44OTMgMC0xMi41IDUuNjA3LTEyLjUgMTIuNXY1NmMwIDYuODkyIDUuNjA3IDEyLjUgMTIuNSAxMi41em0yLjUtNjZoODR2NTFoLTg0eiIvPgogICAgICAgIDxwYXRoIGQ9Im0yMDAuNDkgMTMwLjE2N2gxMTIuMDJjNi44ODcgMCAxMi40OS01LjYwMyAxMi40OS0xMi40OXYtMTYuNTQ5YzAtNC4xNDItMy4zNTgtNy41LTcuNS03LjVzLTcuNSAzLjM1OC03LjUgNy41djE0LjAzOWgtMTA3di02NmgxMDd2MTYuOTYxYzAgNC4xNDIgMy4zNTggNy41IDcuNSA3LjVzNy41LTMuMzU4IDcuNS03LjV2LTE5LjQ3MmMwLTYuODg3LTUuNjAzLTEyLjQ5LTEyLjQ5LTEyLjQ5aC0xMTIuMDJjLTYuODg3IDAtMTIuNDkgNS42MDMtMTIuNDkgMTIuNDl2NzEuMDIxYzAgNi44ODYgNS42MDMgMTIuNDkgMTIuNDkgMTIuNDl6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIzMS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTM4MS44ODEgMjc4LjEwMmM3LjM0OSA0LjgyOCAxMy41MjIgMTEuMDAyIDE4LjM1MSAxOC4zNTEgMS4zODcgMi4xMSAzLjc0MyAzLjM4MSA2LjI2OCAzLjM4MXM0Ljg4MS0xLjI3MSA2LjI2OC0zLjM4MWM0LjgyOC03LjM0OSAxMS4wMDItMTMuNTIyIDE4LjM1MS0xOC4zNTEgMi4xMS0xLjM4NyAzLjM4MS0zLjc0MyAzLjM4MS02LjI2OHMtMS4yNzEtNC44ODEtMy4zODEtNi4yNjhjLTcuMzQ5LTQuODI4LTEzLjUyMi0xMS4wMDItMTguMzUxLTE4LjM1MS0xLjM4Ny0yLjExLTMuNzQzLTMuMzgxLTYuMjY4LTMuMzgxcy00Ljg4MSAxLjI3MS02LjI2OCAzLjM4MWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjh6bTI0LjYxOS0xNC4zNDVjMi40OTQgMi44ODcgNS4xODkgNS41ODMgOC4wNzYgOC4wNzYtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTMgNS41ODItNS4xODggOC4wNzYtOC4wNzZ6Ii8+CiAgICAgICAgPHBhdGggZD0ibTEwMC4yMzIgMjQ3LjIxNWMtNC44MjggNy4zNDktMTEuMDAyIDEzLjUyMi0xOC4zNTEgMTguMzUxLTIuMTEgMS4zODctMy4zODEgMy43NDMtMy4zODEgNi4yNjhzMS4yNzEgNC44ODEgMy4zODEgNi4yNjhjNy4zNDkgNC44MjggMTMuNTIyIDExLjAwMiAxOC4zNTEgMTguMzUxIDEuMzg3IDIuMTEgMy43NDMgMy4zODEgNi4yNjggMy4zODFzNC44ODEtMS4yNzEgNi4yNjgtMy4zODFjNC44MjgtNy4zNDkgMTEuMDAyLTEzLjUyMiAxOC4zNTEtMTguMzUxIDIuMTEtMS4zODcgMy4zODEtMy43NDMgMy4zODEtNi4yNjhzLTEuMjcxLTQuODgxLTMuMzgxLTYuMjY4Yy03LjM0OS00LjgyOC0xMy41MjItMTEuMDAyLTE4LjM1MS0xOC4zNTEtMS4zODctMi4xMS0zLjc0My0zLjM4MS02LjI2OC0zLjM4MXMtNC44ODEgMS4yNy02LjI2OCAzLjM4MXptMTQuMzQ0IDI0LjYxOGMtMi44ODcgMi40OTQtNS41ODMgNS4xODktOC4wNzYgOC4wNzYtMi40OTQtMi44ODctNS4xODktNS41ODMtOC4wNzYtOC4wNzYgMi44ODctMi40OTQgNS41ODMtNS4xODkgOC4wNzYtOC4wNzYgMi40OTQgMi44ODggNS4xODkgNS41ODMgOC4wNzYgOC4wNzZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==","Living Room":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik00NzMsMzMxLjkxNlYyNzMuNjQ4QTM5LjcxLDM5LjcxLDAsMCwwLDQzMy4zMjgsMjM0SDM3NlYxNzBoNDQuMDA5YTYuMjg5LDYuMjg5LDAsMCwwLDUuNzQ3LTguMDJMNDA0LjgzMSw5Mi4yNDhBNS45NzYsNS45NzYsMCwwLDAsMzk5LjA4NCw4OEgzNDAuOTE2YTUuOTMyLDUuOTMyLDAsMCwwLTUuNzQ3LDQuMkwzMTQuMjQ0LDE2MS45MmE2LjM3Miw2LjM3MiwwLDAsMCwuOTM0LDUuNDgzLDYuMTc2LDYuMTc2LDAsMCwwLDQuODEzLDIuNkgzNjR2NjRIODguNjc1QTM5LjcxMywzOS43MTMsMCwwLDAsNDksMjczLjY0OHY1OC4yNjhhMzkuNDE3LDM5LjQxNywwLDAsMC0zNywzOS41NTZWNDYzLjFhNS45MTUsNS45MTUsMCwwLDAsNiw1LjlIMzV2MzBhNi4yNDYsNi4yNDYsMCwwLDAsNi4yOCw2aDY3Ljg2N0E1Ljg3Nyw1Ljg3NywwLDAsMCwxMTUsNDk5VjQ2OUg0MDd2MzBhNS44NzksNS44NzksMCwwLDAsNS44NTUsNmg2Ny44NjlBNi4yNDMsNi4yNDMsMCwwLDAsNDg3LDQ5OVY0NjloMTdhNS45MTMsNS45MTMsMCwwLDAsNi01LjlWMzcxLjQ3MkEzOS40MTcsMzkuNDE3LDAsMCwwLDQ3MywzMzEuOTE2Wk0zNDUuMzgxLDEwMGg0OS4yMzhsMTcuMzI2LDU4aC04My44OVpNODguNjc1LDI0Nkg0MzMuMzI4QTI3LjcsMjcuNywwLDAsMSw0NjEsMjczLjY0OHY1OS4zYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAsMzguNTI2VjM5MEg5MVYzNzEuNDcyYTM5Ljg1NCwzOS44NTQsMCwwLDAtMzAtMzguNTI2di01OS4zQTI3LjcsMjcuNywwLDAsMSw4OC42NzUsMjQ2Wk0xMDMsNDkzSDQ3VjQ2OWg1NlptMzcyLDBINDE5VjQ2OWg1NlptMjMtMzZIMjRWMzcxLjQ3MmEyNy41LDI3LjUsMCwxLDEsNTUsMFYzOTUuOGE2LjQ0OCw2LjQ0OCwwLDAsMCw2LjMxLDYuMkg0MzYuNjkzQTYuNDQ1LDYuNDQ1LDAsMCwwLDQ0MywzOTUuOFYzNzEuNDcyYTI3LjUsMjcuNSwwLDEsMSw1NSwwWiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMTQsMjAzLjIzOFY1Ni42MjZBNS42NCw1LjY0LDAsMCwwLDIwOC4wNjIsNTFoLTUzLjkyTDExMi4yNzIsOC45NDRhNS43MzcsNS43MzcsMCwwLDAtOC40ODQuMDQ3TDYxLjkxOSw1MUg4YTUuNjkzLDUuNjkzLDAsMCwwLTYsNS42MjZWMjAzLjIzOEE1LjgsNS44LDAsMCwwLDgsMjA5SDIwOC4wNjJBNS43NDksNS43NDksMCwwLDAsMjE0LDIwMy4yMzhaTTE3NCwxMzEuOGwtNDIuMjMsMTkuNjg2TDgwLjM2NSwxMTYuNDQzYTYuMjQ1LDYuMjQ1LDAsMCwwLTcuMTMxLjE2M0w0MSwxNDAuNjg2Vjg3SDE3NFpNNDEsMTU1LjY4OWwzNi4wNjItMjYuOTExLDUwLjg4NSwzNC41NDJhNi4xNyw2LjE3LDAsMCwwLDMuNDI3LDEuMDM5LDUuMTY5LDUuMTY5LDAsMCwwLDIuMzMyLS41NTdMMTc0LDE0NS4wMjVWMTczSDQxWk0xNzguMTU1LDc1SDM3LjY4OUwyMy4yNDMsNjNIMTkyLjVaTTI5LDg0LjA5MVYxNzYuMkwxNCwxODkuOTI4VjcwLjQ3M1pNMzcuNywxODVIMTc4LjE0bDEzLjc2NywxMkgyMy44MzVaTTE4NiwxNzYuMjFWODQuMDc4bDE2LTEzLjlWMTkwLjIyNlpNMTA4LjAzLDIxLjg1OSwxMzcuMTcyLDUxSDc4Ljg4OVoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4LjM3NCwxMzMuMmEyMC4yMTQsMjAuMjE0LDAsMSwwLTIwLjIxNC0yMC4yMTRBMjAuMjM2LDIwLjIzNiwwLDAsMCwxMjguMzc0LDEzMy4yWm0wLTI4LjQyN2E4LjIxNCw4LjIxNCwwLDEsMS04LjIxNCw4LjIxM0E4LjIyMyw4LjIyMywwLDAsMSwxMjguMzc0LDEwNC43NjhaIi8+CiAgICAgICAgPHBhdGggZD0iTTM0OC43ODcsMzA4LjQ0YTIyLjA4NywyMi4wODcsMCwwLDAsMCwyMS42NjJsLTguNDc5LDguNDc5YTYsNiwwLDEsMCw4LjQ4NCw4LjQ4NWw4LjQ3OS04LjQ4YTIyLjA5LDIyLjA5LDAsMCwwLDIxLjY2MiwwbDguNDc4LDguNDc5YTYsNiwwLDAsMCw4LjQ4Ni04LjQ4NWwtOC40ODctOC40ODhhMjIuMjExLDIyLjIxMSwwLDAsMCwwLTIxLjY0NGw4LjQ4Ny04LjQ4OGE2LDYsMCwwLDAtOC40ODYtOC40ODVsLTguNDc4LDguNDc5YTIyLjA5MiwyMi4wOTIsMCwwLDAtMjEuNjYxLDBsLTguNDgtOC40NzlhNiw2LDAsMSwwLTguNDg0LDguNDg1Wm0xOS4zMTYuNjc4YTEwLjE1NiwxMC4xNTYsMCwxLDEtNy4xNzksMi45NzRBMTAuMDgzLDEwLjA4MywwLDAsMSwzNjguMSwzMDkuMTE4WiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMzguNzg3LDMwOC40NGEyMi4wODcsMjIuMDg3LDAsMCwwLDAsMjEuNjYybC04LjQ3OSw4LjQ3OWE2LDYsMCwxLDAsOC40ODQsOC40ODVsOC40NzktOC40OGEyMi4wOSwyMi4wOSwwLDAsMCwyMS42NjIsMGw4LjQ3OCw4LjQ3OWE2LDYsMCwwLDAsOC40ODYtOC40ODVsLTguNDg3LTguNDg4YTIyLjIxMSwyMi4yMTEsMCwwLDAsMC0yMS42NDRsOC40ODctOC40ODhhNiw2LDAsMCwwLTguNDg2LTguNDg1bC04LjQ3OCw4LjQ3OWEyMi4wOTIsMjIuMDkyLDAsMCwwLTIxLjY2MSwwbC04LjQ4LTguNDc5YTYsNiwwLDEsMC04LjQ4NCw4LjQ4NVptMTkuMzE2LjY3OGExMC4xNTYsMTAuMTU2LDAsMSwxLTcuMTc5LDIuOTc0QTEwLjA4MywxMC4wODMsMCwwLDEsMjU4LjEsMzA5LjExOFoiLz4KICAgICAgICA8cGF0aCBkPSJNMTI4Ljc4NywzMDguNDRhMjIuMDg3LDIyLjA4NywwLDAsMCwwLDIxLjY2MmwtOC40NzksOC40NzlhNiw2LDAsMSwwLDguNDg0LDguNDg1bDguNDc5LTguNDhhMjIuMDksMjIuMDksMCwwLDAsMjEuNjYyLDBsOC40NzgsOC40NzlhNiw2LDAsMCwwLDguNDg2LTguNDg1bC04LjQ4Ny04LjQ4OGEyMi4yMTEsMjIuMjExLDAsMCwwLDAtMjEuNjQ0bDguNDg3LTguNDg4YTYsNiwwLDAsMC04LjQ4Ni04LjQ4NWwtOC40NzgsOC40NzlhMjIuMDkyLDIyLjA5MiwwLDAsMC0yMS42NjEsMGwtOC40OC04LjQ3OWE2LDYsMCwxLDAtOC40ODQsOC40ODVabTE5LjMxNi42NzhhMTAuMTU2LDEwLjE1NiwwLDEsMS03LjE3OSwyLjk3NEExMC4wODMsMTAuMDgzLDAsMCwxLDE0OC4xLDMwOS4xMThaIi8+CiAgICA8L2c+Cjwvc3ZnPgo=","Locker Room":"PHN2ZyBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDYwIDYwIiB3aWR0aD0iNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJtMjMgNGgtMTVjLTIuMjA5MTM5IDAtNCAxLjc5MDg2MS00IDR2MzRjMCAyLjIwOTEzOSAxLjc5MDg2MSA0IDQgNGg2Yy41NTIyODQ3IDAgMS0uNDQ3NzE1MyAxLTFzLS40NDc3MTUzLTEtMS0xaC02Yy0xLjEwNDU2OTUgMC0yLS44OTU0MzA1LTItMnYtMzRjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYxMi4wNWMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyLjA1YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTR6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDEyaDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTExIDE2aDljLjU1MjI4NDcgMCAxLS40NDc3MTUzIDEtMXMtLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTIxIDE5YzAtLjU1MjI4NDctLjQ0NzcxNTMtMS0xLTFoLTljLS41NTIyODQ3IDAtMSAuNDQ3NzE1My0xIDFzLjQ0NzcxNTMgMSAxIDFoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xeiIvPgogICAgICAgIDxwYXRoIGQ9Im05IDM1Yy0uNTUyMjg0NzUgMC0xIC40NDc3MTUzLTEgMXY1YzAgLjU1MjI4NDcuNDQ3NzE1MjUgMSAxIDFoM2MuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtMnYtNGMwLS41NTIyODQ3LS40NDc3MTUyNS0xLTEtMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNTIgMGgtMTVjLTIuOTEyMjE0Mi4wMDE4MDY5MS01LjU5MzQwMDggMS41ODYwMDUxOC03IDQuMTM2LTEuNDA2NTk5Mi0yLjU0OTk5NDgyLTQuMDg3Nzg1OC00LjEzNDE5MzA5LTctNC4xMzZoLTE1Yy00LjQxNjIyMTkyLjAwNDk1OTg4LTcuOTk1MDQwMTIgMy41ODM3NzgwOC04IDh2MzRjLjAwNDk1OTg4IDQuNDE2MjIxOSAzLjU4Mzc3ODA4IDcuOTk1MDQwMSA4IDhoNmMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtNmMtMy4zMTIzMzc1Ny0uMDAzMzA3NC01Ljk5NjY5MjYyLTIuNjg3NjYyNC02LTZ2LTM0Yy4wMDMzMDczOC0zLjMxMjMzNzU3IDIuNjg3NjYyNDMtNS45OTY2OTI2MiA2LTZoMTVjMy4zMTIzMzc2LjAwMzMwNzM4IDUuOTk2NjkyNiAyLjY4NzY2MjQzIDYgNnYxMmMwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTEyYy4wMDMzMDc0LTMuMzEyMzM3NTcgMi42ODc2NjI0LTUuOTk2NjkyNjIgNi02aDE1YzMuMzEyMzM3Ni4wMDMzMDczOCA1Ljk5NjY5MjYgMi42ODc2NjI0MyA2IDZ2MzRjLS4wMDMzMDc0IDMuMzEyMzM3Ni0yLjY4NzY2MjQgNS45OTY2OTI2LTYgNmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMWg2YzQuNDE2MjIxOS0uMDA0OTU5OSA3Ljk5NTA0MDEtMy41ODM3NzgxIDgtOHYtMzRjLS4wMDQ5NTk5LTQuNDE2MjIxOTItMy41ODM3NzgxLTcuOTk1MDQwMTItOC04eiIvPgogICAgICAgIDxwYXRoIGQ9Im00NiA0Nmg2YzIuMjA5MTM5IDAgNC0xLjc5MDg2MSA0LTR2LTM0YzAtMi4yMDkxMzktMS43OTA4NjEtNC00LTRoLTE1Yy0yLjIwOTEzOSAwLTQgMS43OTA4NjEtNCA0djEyLjA1YzAgLjU1MjI4NDcuNDQ3NzE1MyAxIDEgMXMxLS40NDc3MTUzIDEtMXYtMTIuMDVjMC0xLjEwNDU2OTUuODk1NDMwNS0yIDItMmgxNWMxLjEwNDU2OTUgMCAyIC44OTU0MzA1IDIgMnYzNGMwIDEuMTA0NTY5NS0uODk1NDMwNSAyLTIgMmgtNmMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTJoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMTZoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDAgMjBoOWMuNTUyMjg0NyAwIDEtLjQ0NzcxNTMgMS0xcy0uNDQ3NzE1My0xLTEtMWgtOWMtLjU1MjI4NDcgMC0xIC40NDc3MTUzLTEgMXMuNDQ3NzE1MyAxIDEgMXoiLz4KICAgICAgICA8cGF0aCBkPSJtNDkgMjd2M2MwIC41NTIyODQ3LjQ0NzcxNTMgMSAxIDFzMS0uNDQ3NzE1MyAxLTF2LTNjMC0uNTUyMjg0Ny0uNDQ3NzE1My0xLTEtMXMtMSAuNDQ3NzE1My0xIDF6Ii8+CiAgICAgICAgPHBhdGggZD0ibTI3IDIzYy0zLjg2NDE2NTcuMDA0NDA4Ni02Ljk5NTU5MTQgMy4xMzU4MzQzLTcgN3Y2Yy0xLjY1Njg1NDIgMC0zIDEuMzQzMTQ1OC0zIDN2MThjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzaDIwYzEuNjU2ODU0MiAwIDMtMS4zNDMxNDU4IDMtM3YtMThjMC0xLjY1Njg1NDItMS4zNDMxNDU4LTMtMy0zdi02Yy0uMDA0NDA4Ni0zLjg2NDE2NTctMy4xMzU4MzQzLTYuOTk1NTkxNC03LTd6bTE0IDE2djE4YzAgLjU1MjI4NDctLjQ0NzcxNTMgMS0xIDFoLTIwYy0uNTUyMjg0NyAwLTEtLjQ0NzcxNTMtMS0xdi0xOGMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoMjBjLjU1MjI4NDcgMCAxIC40NDc3MTUzIDEgMXptLTctM2gtOHYtNmMwLS41NTIyODQ3LjQ0NzcxNTMtMSAxLTFoNmMuNTUyMjg0NyAwIDEgLjQ0NzcxNTMgMSAxem00LTZ2NmgtMnYtNmMwLTEuNjU2ODU0Mi0xLjM0MzE0NTgtMy0zLTNoLTZjLTEuNjU2ODU0MiAwLTMgMS4zNDMxNDU4LTMgM3Y2aC0ydi02Yy4wMDMzMDYxLTIuNzYwMDUzMiAyLjIzOTk0NjgtNC45OTY2OTM5IDUtNWg2YzIuNzYwMDUzMi4wMDMzMDYxIDQuOTk2NjkzOSAyLjIzOTk0NjggNSA1eiIvPgogICAgICAgIDxwYXRoIGQ9Im0zMS4yMTMgNDEuMTQ0Yy0xLjUwNDE3Mi0uMzY5MzcyNy0zLjA5NDY0MjYtLjAyNTYwNjgtNC4zMTIuOTMyLTEuMjE3ODgzNC45NjE4MTM0LTEuOTIwMTI3NSAyLjQzNDYwODktMS45MDA3NDAzIDMuOTg2MzY1Ny4wMTkzODcxIDEuNTUxNzU2OC43NTgyMDc2IDMuMDA2NTQ4MSAxLjk5OTc0MDMgMy45Mzc2MzQzdjNjMCAxLjY1Njg1NDIgMS4zNDMxNDU4IDMgMyAzczMtMS4zNDMxNDU4IDMtM3YtM2MxLjU0NDUxMDctMS4xNTY5NTQ0IDIuMjg1MzQ5Mi0zLjA5OTQ1NTcgMS45MDM1MTkxLTQuOTkxMDg1Mi0uMzgxODMwMS0xLjg5MTYyOTYtMS44MTgxNTg3LTMuMzk0NjY0My0zLjY5MDUxOTEtMy44NjE5MTQ4em0uNTg3IDcuMjU2Yy0uNDk3MTQ3OS4zNTc2MDY2LS43OTQyNDAxLjkzMDYyMzItLjggMS41NDN2My4wNTdjMCAuNTUyMjg0Ny0uNDQ3NzE1MyAxLTEgMXMtMS0uNDQ3NzE1My0xLTF2LTMuMDgxYy0uMDA1NzA4Mi0uNjAyMDUyMi0uMjk5NDI1OS0xLjE2NDk0OTItLjc5LTEuNTE0LTEuMDM1MDU1My0uNzcxNzg3Mi0xLjQ2MDIxNjQtMi4xMTkyNTA3LTEuMDU1NTM2NC0zLjM0NTMxMzFzMS41NDg0MjEtMi4wNTU2ODY3IDIuODM5NTM2NC0yLjA1OTY4NjljLjI1NTAzMDkuMDAwNTA4NS41MDkxMTQ0LjAzMTA1MjIuNzU3LjA5MSAxLjA1NTg2OC4yNjMyNDYxIDEuODgyOTA3IDEuMDgzMzc3MiAyLjE1NSAyLjEzNy4zMTMzNzQ2IDEuMTgzOTY5NS0uMTI0NDE2NSAyLjQzOTU1MTItMS4xMDYgMy4xNzJ6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==",Nursery:Gae,Office:Hae,Outdoors:Vae,Playroom:Zae,Pool:Xae,"Rear Wall":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNTAzLjQ2Nyw4LjUzM0gzODRjLTQuNzEsMC04LjUzMywzLjgxNC04LjUzMyw4LjUzM3YxMTkuNDY3VjI1NnY1MS4yaC02OS43MzVjMC45NDgtMi42NzEsMS40NjgtNS41NDIsMS40NjgtOC41MzMKCQkJCWMwLTE0LjExNC0xMS40ODYtMjUuNi0yNS42LTI1LjZoLTE3LjA2N1YyNTZoODUuMzMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YxMTAuOTMzYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzMKCQkJCUgxNjIuMTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzN2MTM2LjUzM2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzaDg1LjMzM3YxNy4wNjdIMjMwLjQKCQkJCWMtMTQuMTE0LDAtMjUuNiwxMS40ODYtMjUuNiwyNS42YzAsMi45OTEsMC41MjEsNS44NjIsMS40NjgsOC41MzNoLTY5LjczNVYyNTZWMTM2LjUzM1YxNy4wNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzMwoJCQkJSDguNTMzQzMuODIzLDguNTMzLDAsMTIuMzQ4LDAsMTcuMDY3djExOS40NjdWMjU2djExOS40Njd2MTE5LjQ2N2MwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzSDEyOGgyNTZoMTE5LjQ2NwoJCQkJYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM1YzNzUuNDY3VjI1NlYxMzYuNTMzVjE3LjA2N0M1MTIsMTIuMzQ4LDUwOC4xNzcsOC41MzMsNTAzLjQ2Nyw4LjUzM3ogTTE3MC42NjcsMTUzLjZoMTcwLjY2NwoJCQkJdjUxLjJIMTcwLjY2N1YxNTMuNnogTTM0MS4zMzMsMTE5LjQ2N3YxNy4wNjdIMTcwLjY2N3YtMTcuMDY3SDM0MS4zMzN6IE0xNzAuNjY3LDIyMS44NjdoMTcwLjY2N3YxNy4wNjdIMTcwLjY2N1YyMjEuODY3egoJCQkJIE0zNzUuNDY3LDQ4Ni40SDI2NC41MzN2LTkzLjg2N2g1MS4yaDU5LjczM1Y0ODYuNHogTTMwNy4yLDM3NS40NjdIMjA0LjhWMzU4LjRoMTAyLjRWMzc1LjQ2N3ogTTQ5NC45MzMsMjQ3LjQ2N2gtMTcuMDY3VjE3OS4yCgkJCQljMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtMjUuNmgtMjUuNmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzdjY4LjI2N2gtMTcuMDY3di0xMDIuNGgxMDIuNFYyNDcuNDY3egoJCQkJIE00MjYuNjY3LDI0Ny40Njd2LTU5LjczM2g4LjUzM3Y1OS43MzNINDI2LjY2N3ogTTQ1Mi4yNjcsMTg3LjczM2g4LjUzM3Y1OS43MzNoLTguNTMzVjE4Ny43MzN6IE0zOTIuNTMzLDMxNS43MzN2LTUxLjJoMjUuNgoJCQkJaDI1LjZoMjUuNmgyNS42djEwMi40aC0xMDIuNFYzMTUuNzMzeiBNMzkyLjUzMywyNS42aDEwMi40VjEyOGgtMTAyLjRWMjUuNnogTTIyMS44NjcsMjk4LjY2N2MwLTQuNzEsMy44MzEtOC41MzMsOC41MzMtOC41MzMKCQkJCWg1MS4yYzQuNzAyLDAsOC41MzMsMy44MjMsOC41MzMsOC41MzNzLTMuODMxLDguNTMzLTguNTMzLDguNTMzaC01MS4yQzIyNS42OTgsMzA3LjIsMjIxLjg2NywzMDMuMzc3LDIyMS44NjcsMjk4LjY2N3oKCQkJCSBNMjMwLjQsMzI0LjI2N2g1MS4yaDkzLjg2N3Y1MS4yaC01MS4yVjM1OC40YzAtOS40MTItNy42NTQtMTcuMDY3LTE3LjA2Ny0xNy4wNjdIMjA0LjhjLTkuNDEyLDAtMTcuMDY3LDcuNjU0LTE3LjA2NywxNy4wNjcKCQkJCXYxNy4wNjdoLTUxLjJ2LTUxLjJIMjMwLjR6IE01MS4yLDMzMi44aDM0LjEzM3Y4LjUzM0g1MS4yVjMzMi44eiBNODUuMzMzLDMxNS43MzNINTEuMlYzMDcuMmgzNC4xMzNWMzE1LjczM3ogTTUxLjIsMzU4LjQKCQkJCWgzNC4xMzN2OC41MzNINTEuMlYzNTguNHogTTEwMi40LDM0OS44Njd2LTI1LjZ2LTI1LjZjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM2gtNTEuMmMtNC43MSwwLTguNTMzLDMuODE0LTguNTMzLDguNTMzCgkJCQl2MjUuNnYyNS42djE3LjA2N0gxNy4wNjd2LTEwMi40aDEwMi40djUxLjJ2NTEuMkgxMDIuNFYzNDkuODY3eiBNNTkuNzMzLDExMC45MzNINzYuOFYxMjhINTkuNzMzVjExMC45MzN6IE01MS4yLDE0NS4wNjdoMzQuMTMzCgkJCQloMzQuMTMzdjEwMi40aC0xMDIuNHYtMTAyLjRINTEuMnogTTE3LjA2NywyNS42aDEwMi40VjEyOGgtMjUuNnYtMTcuMDY3YzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJYzAtNC43MTktMy44MjMtOC41MzMtOC41MzMtOC41MzNoLTguNTMzSDUxLjJoLTguNTMzYy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM1YxMjgKCQkJCWgtMjUuNlYyNS42eiBNMTcuMDY3LDM4NGgyNS42aDUxLjJoMjUuNnYxMDIuNGgtMTAyLjRWMzg0eiBNMTM2LjUzMywzOTIuNTMzaDU5LjczM2g1MS4yVjQ4Ni40SDEzNi41MzNWMzkyLjUzM3ogTTQ5NC45MzMsNDg2LjQKCQkJCWgtMTcuMDY3di02OC4yNjdjMC00LjcxOS0zLjgyMy04LjUzMy04LjUzMy04LjUzM3MtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDg2LjRoLTguNTMzdi02OC4yNjcKCQkJCWMwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzcy04LjUzMywzLjgxNC04LjUzMyw4LjUzM1Y0ODYuNGgtOC41MzN2LTY4LjI2N2MwLTQuNzE5LTMuODIzLTguNTMzLTguNTMzLTguNTMzCgkJCQlzLTguNTMzLDMuODE0LTguNTMzLDguNTMzVjQ4Ni40aC0xNy4wNjdWMzg0aDEwMi40VjQ4Ni40eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjEuODY3LDQwOS42SDIwNC44Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNzMy44MjMsOC41MzMsOC41MzMsOC41MzNoOC41MzN2OC41MzMKCQkJCWMwLDQuNzE5LDMuODIzLDguNTMzLDguNTMzLDguNTMzYzQuNzEsMCw4LjUzMy0zLjgxNCw4LjUzMy04LjUzM3YtMTcuMDY3QzIzMC40LDQxMy40MTQsMjI2LjU3Nyw0MDkuNiwyMjEuODY3LDQwOS42eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMDcuMiw0MDkuNmgtMTcuMDY3Yy00LjcxLDAtOC41MzMsMy44MTQtOC41MzMsOC41MzNWNDM1LjJjMCw0LjcxOSwzLjgyMyw4LjUzMyw4LjUzMyw4LjUzM3M4LjUzMy0zLjgxNCw4LjUzMy04LjUzMwoJCQkJdi04LjUzM2g4LjUzM2M0LjcxLDAsOC41MzMtMy44MTQsOC41MzMtOC41MzNTMzExLjkxLDQwOS42LDMwNy4yLDQwOS42eiIvPgogICAgPC9nPgo8L3N2Zz4K","Second Floor":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMDAyIDUxMi4wMDIiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBzdHJva2U9IiIgZD0iTTQ3Ny40NDQsNDcxLjAzNGgtMy44MzNjLTMuNjc5LTE0LjQzNS0xNS45MjYtMjUuMzU2LTMwLjg1OS0yNy4yNDFWMzA4LjU4N2gyLjEzOGM5LjkxNywwLDE3Ljk4NS04LjA2OCwxNy45ODUtMTcuOTg2CgkJCWMwLTkuOTE3LTguMDY4LTE3Ljk4NS0xNy45ODUtMTcuOTg1aC0yLjEzOFYxMjkuMzgyaDkuODE1YzcuMTk3LDAsMTMuMDUyLTUuODU1LDEzLjA1Mi0xMy4wNTJ2LTE0LjkwNAoJCQljMC0wLjAzMy0wLjAwNS0wLjA2NS0wLjAwNS0wLjA5OGMtMC4wMDEtMC4wOTgtMC4wMDktMC4xOTYtMC4wMTUtMC4yOTRjLTAuMDA5LTAuMTcxLTAuMDIxLTAuMzQyLTAuMDQyLTAuNTEKCQkJYy0wLjAxMS0wLjA4OS0wLjAyNi0wLjE3Ny0wLjA0MS0wLjI2NmMtMC4wMjktMC4xODMtMC4wNjUtMC4zNjQtMC4xMDgtMC41NDJjLTAuMDEtMC4wNC0wLjAxNC0wLjA4MS0wLjAyNC0wLjEyMUw0NDYuMTIzLDI1LjQyCgkJCWMtMS41NzQtNi4wNi03LjA0Ny0xMC4yOTMtMTMuMzA3LTEwLjI5M2gtNDkuMTA1Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3czMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDQ4LjQ2OGwxNi43MzQsNjQuNDQKCQkJSDMzNS4zNzJMMjkyLjM0NywyOS43aDQ1Ljg2NmM0LjAyNSwwLDcuMjg3LTMuMjYyLDcuMjg3LTcuMjg3YzAtNC4wMjUtMy4yNjItNy4yODctNy4yODctNy4yODdoLTU1LjU5NmwtMC45MjYtMS4zODcKCQkJQzI3NS45NDgsNS4xMzcsMjY2LjM0MiwwLDI1NS45OTcsMGMtMTAuMzQ1LDAtMTkuOTUsNS4xMzYtMjUuNjk0LDEzLjczOWwtMC45MjcsMS4zODhINzkuMTc4CgkJCWMtNi4yNjEsMC0xMS43MzMsNC4yMzItMTMuMzA3LDEwLjI5M0w0Ni42MDksOTkuNTk1Yy0wLjAxLDAuMDQtMC4wMTQsMC4wODEtMC4wMjQsMC4xMjFjLTAuMDQzLDAuMTc4LTAuMDc5LDAuMzU5LTAuMTA4LDAuNTQyCgkJCWMtMC4wMTQsMC4wODktMC4wMywwLjE3Ny0wLjA0MSwwLjI2NmMtMC4wMjEsMC4xNjgtMC4wMzMsMC4zMzgtMC4wNDIsMC41MWMtMC4wMDUsMC4wOTgtMC4wMTQsMC4xOTYtMC4wMTUsMC4yOTQKCQkJYzAsMC4wMzMtMC4wMDUsMC4wNjUtMC4wMDUsMC4wOTh2MTQuOTA0YzAsNy4xOTcsNS44NTUsMTMuMDUyLDEzLjA1MiwxMy4wNTJoOS44MTV2MTQzLjIzM2gtMi4xMzgKCQkJYy05LjkxNywwLTE3Ljk4NSw4LjA2OC0xNy45ODUsMTcuOTg1czguMDY4LDE3Ljk4NiwxNy45ODUsMTcuOTg2aDIuMTM4djQ2LjY5NmMwLDQuMDI0LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3CgkJCXM3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4N3YtNDYuNjk2aDM0NC4zNjR2MTI5LjMxMWMtMC4wNTUtMC4wMzItMC4xMTMtMC4wNi0wLjE2OS0wLjA5MmMtMC43MTQtMC40MTUtMS40MzktMC44MS0yLjE3Ni0xLjE4MgoJCQljLTAuMTQ0LTAuMDczLTAuMjkxLTAuMTM5LTAuNDM1LTAuMjFjLTAuNjE0LTAuMzAyLTEuMjM1LTAuNTg4LTEuODYzLTAuODU5Yy0wLjIxMy0wLjA5Mi0wLjQyNS0wLjE4My0wLjYzOS0wLjI3MgoJCQljLTAuNzI3LTAuMy0xLjQ1OS0wLjU4NS0yLjIwMi0wLjg0NGMtMC4wNDQtMC4wMTUtMC4wODctMC4wMzMtMC4xMzEtMC4wNDljLTAuNzg0LTAuMjcxLTEuNTc4LTAuNTExLTIuMzc4LTAuNzM2CgkJCWMtMC4yMTktMC4wNjItMC40NC0wLjExOC0wLjY2LTAuMTc2Yy0wLjY0Mi0wLjE2OS0xLjI4OS0wLjMyMy0xLjk0LTAuNDYyYy0wLjE4OC0wLjA0LTAuMzc1LTAuMDg1LTAuNTY0LTAuMTIzCgkJCWMtMC44MTItMC4xNjItMS42MjktMC4zLTIuNDUxLTAuNDE0Yy0wLjE3OC0wLjAyNS0wLjM1OC0wLjA0Mi0wLjUzNy0wLjA2NGMtMC42NzEtMC4wODQtMS4zNDUtMC4xNTItMi4wMjItMC4yMDQKCQkJYy0wLjIzNC0wLjAxOC0wLjQ2OC0wLjAzNi0wLjcwMi0wLjA1MWMtMC44NDItMC4wNTEtMS42ODUtMC4wODUtMi41MzMtMC4wODVjLTE1LjQ0NiwwLTI5LjY5OSw4LjYxLTM3LjA2MiwyMS45MTUKCQkJYy0wLjg0Ni0wLjAyLTEuNjg0LDAuMDAxLTIuNTE2LDAuMDQ2Yy0wLjE5NSwwLjAxMS0wLjM4NywwLjAzNC0wLjU4MSwwLjA0OGMtMC42MzYsMC4wNDctMS4yNjgsMC4xMDctMS44OTQsMC4xOQoJCQljLTAuMjMsMC4wMzEtMC40NTgsMC4wNzEtMC42ODYsMC4xMDdjLTAuNTg2LDAuMDkyLTEuMTY4LDAuMTk3LTEuNzQ0LDAuMzIxYy0wLjIzNCwwLjA1LTAuNDY1LDAuMTA0LTAuNjk3LDAuMTU5CgkJCWMtMC41NzEsMC4xMzctMS4xMzUsMC4yODktMS42OTUsMC40NTdjLTAuMjE3LDAuMDY1LTAuNDM1LDAuMTI4LTAuNjUsMC4xOThjLTAuNTg4LDAuMTktMS4xNjcsMC40LTEuNzQsMC42MjQKCQkJYy0wLjE3MSwwLjA2Ny0wLjM0NSwwLjEyNy0wLjUxNSwwLjE5N2MtMC43MDUsMC4yOS0xLjM5OSwwLjYwMi0yLjA3OSwwLjk0MWMtMC4wMjgsMC4wMTQtMC4wNTgsMC4wMjYtMC4wODYsMC4wNAoJCQljLTAuNzMzLDAuMzY5LTEuNDUsMC43NjYtMi4xNSwxLjE5Yy0wLjA2NiwwLjA0LTAuMTI5LDAuMDg2LTAuMTk1LDAuMTI3Yy0wLjYsMC4zNy0xLjE4NywwLjc1OS0xLjc2LDEuMTY5CgkJCWMtMC4xODQsMC4xMzItMC4zNjEsMC4yNzItMC41NDIsMC40MDhjLTAuNDQ3LDAuMzM1LTAuODg4LDAuNjc3LTEuMzE2LDEuMDM2Yy0wLjIwNiwwLjE3Mi0wLjQwNywwLjM1MS0wLjYwOSwwLjUyOQoJCQljLTAuMzkxLDAuMzQ1LTAuNzc0LDAuNjk4LTEuMTQ4LDEuMDYzYy0wLjIwMSwwLjE5Ni0wLjQwMSwwLjM5NC0wLjU5NywwLjU5NmMtMC4zNjUsMC4zNzYtMC43MTcsMC43NjMtMS4wNjQsMS4xNTgKCQkJYy0wLjE3OCwwLjIwMy0wLjM1OSwwLjQwNC0wLjUzMywwLjYxMmMtMC4zNjcsMC40NDEtMC43MTcsMC44OTctMS4wNiwxLjM1OWMtMC4xMzEsMC4xNzYtMC4yNjksMC4zNDYtMC4zOTYsMC41MjUKCQkJYy0wLjg4NSwxLjI0Ni0xLjY4OSwyLjU2LTIuMzkyLDMuOTQ0aC0zNS40NTdWMzQ2LjE4MWMwLTcuMTM1LTUuODA1LTEyLjkzOS0xMi45MzktMTIuOTM5aC03My4zNDkKCQkJYy03LjEzNSwwLTEyLjkzOSw1LjgwNS0xMi45MzksMTIuOTM5djEyNC44NTNoLTYwLjYzOWMtMC4xODgtMC40NjktMC4zOTktMC45MjUtMC42MDUtMS4zODMKCQkJYy0wLjA4OC0wLjE5NC0wLjE2Ni0wLjM5NC0wLjI1Ni0wLjU4NmMtMC4zNTMtMC43NDktMC43MjgtMS40ODMtMS4xMjgtMi4yMDJjLTAuMDc1LTAuMTM1LTAuMTYtMC4yNjMtMC4yMzYtMC4zOTcKCQkJYy0wLjMzMS0wLjU3Ny0wLjY3My0xLjE0Ny0xLjAzNC0xLjcwM2MtMC4xNTEtMC4yMzItMC4zMTEtMC40NTYtMC40NjctMC42ODVjLTAuMzA1LTAuNDQ4LTAuNjE2LTAuODkxLTAuOTQtMS4zMjQKCQkJYy0wLjE4My0wLjI0NS0wLjM3Mi0wLjQ4NC0wLjU2Mi0wLjcyNGMtMC4zMi0wLjQwNS0wLjY0Ni0wLjgwMy0wLjk4Mi0xLjE5M2MtMC4yMDItMC4yMzQtMC40MDUtMC40NjctMC42MTItMC42OTUKCQkJYy0wLjM1Mi0wLjM4OC0wLjcxNC0wLjc2Ni0xLjA4MS0xLjEzOGMtMC4yMDUtMC4yMDctMC40MDctMC40MTctMC42MTYtMC42MmMtMC40MTktMC40MDUtMC44NTItMC43OTQtMS4yOS0xLjE3OAoJCQljLTAuMTcyLTAuMTUxLTAuMzM3LTAuMzA4LTAuNTExLTAuNDU1Yy0wLjYyMi0wLjUyNS0xLjI1OS0xLjAzMS0xLjkxNC0xLjUxM2MtMC4wNjctMC4wNDktMC4xMzctMC4wOTMtMC4yMDQtMC4xNDEKCQkJYy0wLjU4OC0wLjQyNi0xLjE4OC0wLjgzNi0xLjgwMS0xLjIyNmMtMC4yMjUtMC4xNDQtMC40NTgtMC4yNzYtMC42ODYtMC40MTRjLTAuNDY3LTAuMjgzLTAuOTM4LTAuNTYyLTEuNDE4LTAuODI0CgkJCWMtMC4yNy0wLjE0OC0wLjU0NS0wLjI4Ny0wLjgxOS0wLjQyOGMtMC40NTYtMC4yMzQtMC45MTYtMC40NjEtMS4zODMtMC42NzZjLTAuMjktMC4xMzQtMC41ODEtMC4yNjQtMC44NzUtMC4zOTEKCQkJYy0wLjQ3My0wLjIwMy0wLjk1My0wLjM5NC0xLjQzNi0wLjU3OGMtMC4yOTEtMC4xMS0wLjU3OS0wLjIyMy0wLjg3My0wLjMyNmMtMC41MjgtMC4xODYtMS4wNjUtMC4zNTMtMS42MDQtMC41MTQKCQkJYy0wLjI1Ni0wLjA3Ny0wLjUwOC0wLjE2Mi0wLjc2Ni0wLjIzM2MtMC44LTAuMjIxLTEuNjA4LTAuNDIxLTIuNDI4LTAuNTg4Yy0wLjUyNy0wLjcxOC0xLjA3NC0xLjQxOC0xLjYzNy0yLjA5OQoJCQljLTAuMTkzLTAuMjMzLTAuMzk4LTAuNDUyLTAuNTk1LTAuNjgxYy0wLjM3OC0wLjQ0LTAuNzU0LTAuODgyLTEuMTQ3LTEuMzA2Yy0wLjI0Ni0wLjI2NS0wLjUwNS0wLjUxNC0wLjc1Ny0wLjc3MgoJCQljLTAuMzYtMC4zNjktMC43MTYtMC43NDQtMS4wODctMS4xYy0wLjI3Ny0wLjI2NS0wLjU2Ni0wLjUxNC0wLjg0OS0wLjc3MmMtMC4zNjItMC4zMy0wLjcxOS0wLjY2NC0xLjA5MS0wLjk4MQoJCQljLTAuMzAxLTAuMjU3LTAuNjE0LTAuNDk4LTAuOTIxLTAuNzQ3Yy0wLjM2OC0wLjI5OC0wLjczMi0wLjYtMS4xMDgtMC44ODZjLTAuMzIyLTAuMjQ0LTAuNjU0LTAuNDcyLTAuOTgxLTAuNzA3CgkJCWMtMC4zNzYtMC4yNy0wLjc0OS0wLjU0NC0xLjEzMy0wLjgwMWMtMC4zMzktMC4yMjctMC42ODctMC40MzktMS4wMzEtMC42NTdjLTAuMzg3LTAuMjQ1LTAuNzcxLTAuNDkzLTEuMTY0LTAuNzI1CgkJCWMtMC4zNTMtMC4yMDktMC43MTUtMC40MDItMS4wNzQtMC42MDFjLTAuMzk3LTAuMjItMC43OTItMC40NDMtMS4xOTYtMC42NTFjLTAuMzY4LTAuMTktMC43NDItMC4zNjQtMS4xMTUtMC41NDQKCQkJYy0wLjQwNi0wLjE5NS0wLjgxMS0wLjM5My0xLjIyNC0wLjU3NmMtMC4zOC0wLjE2OS0wLjc2NS0wLjMyMy0xLjE1LTAuNDgyYy0wLjQxNy0wLjE3MS0wLjgzMi0wLjM0NC0xLjI1NS0wLjUwMwoJCQljLTAuMzg5LTAuMTQ3LTAuNzg0LTAuMjgtMS4xNzgtMC40MTZjLTAuNDI3LTAuMTQ3LTAuODU0LTAuMjk2LTEuMjg2LTAuNDNjLTAuMzk4LTAuMTI0LTAuODAxLTAuMjM2LTEuMjA0LTAuMzQ5CgkJCWMtMC40MzctMC4xMjMtMC44NzMtMC4yNDYtMS4zMTQtMC4zNTZjLTAuNDA3LTAuMTAxLTAuODE3LTAuMTkxLTEuMjI3LTAuMjgxYy0wLjQ0NS0wLjA5OC0wLjg5LTAuMTk0LTEuMzM4LTAuMjc5CgkJCWMtMC40MTQtMC4wNzgtMC44MzEtMC4xNDUtMS4yNDgtMC4yMTJjLTAuNDUzLTAuMDcyLTAuOTA1LTAuMTQzLTEuMzYxLTAuMjAyYy0wLjQyLTAuMDU0LTAuODQyLTAuMDk4LTEuMjY0LTAuMTQxCgkJCWMtMC40Ni0wLjA0Ny0wLjkyMS0wLjA5LTEuMzg1LTAuMTIyYy0wLjQyNC0wLjAzLTAuODUtMC4wNTEtMS4yNzYtMC4wNjljLTAuMjY5LTAuMDEyLTAuNTM0LTAuMDM2LTAuODA0LTAuMDQzdi0yOS44NTEKCQkJYzAtNC4wMjQtMy4yNjItNy4yODctNy4yODctNy4yODdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODd2MzEuODU2Yy0xNy4wNTMsNS4yNzktMjkuODM5LDIwLjM1Ni0zMS43NSwzOC42MjNoLTIuOTQyCgkJCWMtMTEuMjk0LDAtMjAuNDgzLDkuMTg5LTIwLjQ4MywyMC40ODNzOS4xODksMjAuNDgzLDIwLjQ4MywyMC40ODNoNDQyLjg5NGMxMS4yOTQsMCwyMC40ODMtOS4xODksMjAuNDgzLTIwLjQ4MwoJCQlDNDk3LjkyNyw0ODAuMjIzLDQ4OC43MzgsNDcxLjAzNCw0NzcuNDQ0LDQ3MS4wMzR6IE0yMzkuMzMzLDI2LjQ2YzAtMC4wMDEsMC4wMDEtMC4wMDEsMC4wMDEtMC4wMDFsMy4wODktNC42MjcKCQkJYzMuMDM0LTQuNTQ1LDguMTA5LTcuMjU4LDEzLjU3NC03LjI1OGM1LjQ2NSwwLDEwLjU0LDIuNzEzLDEzLjU3NCw3LjI1OWw0OC4yNzgsNzIuMzA4aC01LjIwMmwtNDYuMTAzLTY5LjA1MwoJCQljLTIuMzU4LTMuNTMxLTYuMy01LjYzOS0xMC41NDYtNS42MzljLTQuMjQ2LDAtOC4xODksMi4xMDgtMTAuNTQ2LDUuNjM5TDE5OS4zNDcsOTQuMTRoLTUuMjAybDguNzc4LTEzLjE0OEwyMzkuMzMzLDI2LjQ2egoJCQkgTTI5NS4xMjQsOTQuMTRIMjE2Ljg3bDM5LjEyNy01OC42MDRMMjk1LjEyNCw5NC4xNHogTTc5LjgxNiwyOS43aDEzOS44MzFMMjA5LjUxLDQ0Ljg4M0wxNzYuNjIyLDk0LjE0SDYzLjA4MUw3OS44MTYsMjkuN3oKCQkJIE02MC45NDgsMTE0LjgwOXYtNi4wOTZoMzkwLjA5OHY2LjA5Nkg2MC45NDh6IE00MjguMTc5LDEyOS4zODJ2MTQzLjIzM0g4My44MTVWMTI5LjM4Mkg0MjguMTc5eiBNNjcuMTA0LDI5NC4wMTQKCQkJYy0xLjg4MSwwLTMuNDEyLTEuNTMxLTMuNDEyLTMuNDEzYzAtMS44ODEsMS41My0zLjQxMiwzLjQxMi0zLjQxMkg0NDQuODljMS44ODEsMCwzLjQxMiwxLjUzMSwzLjQxMiwzLjQxMgoJCQljMCwxLjg4Mi0xLjUzLDMuNDEzLTMuNDEyLDMuNDEzSDY3LjEwNHogTTM2MC40MTYsNDcwLjg5M2MwLjMxNy0wLjE4NywwLjYzOC0wLjM2OCwwLjk2Ny0wLjUzNQoJCQljMC4xNTYtMC4wNzksMC4zMTYtMC4xNDksMC40NzQtMC4yMjNjMC4yOC0wLjEzMSwwLjU2Mi0wLjI1NiwwLjg1LTAuMzcxYzAuMTgzLTAuMDczLDAuMzY4LTAuMTQyLDAuNTUzLTAuMjA4CgkJCWMwLjI3Mi0wLjA5OCwwLjU0Ny0wLjE4NywwLjgyNC0wLjI3MWMwLjIwMS0wLjA2LDAuNDAyLTAuMTIxLDAuNjA1LTAuMTc0YzAuMjc2LTAuMDcyLDAuNTU2LTAuMTMyLDAuODM2LTAuMTkKCQkJYzAuMjA3LTAuMDQzLDAuNDExLTAuMDkxLDAuNjItMC4xMjZjMC4zNTYtMC4wNiwwLjcxOC0wLjEwMiwxLjA4MS0wLjEzOWMwLjE3Ni0wLjAxOCwwLjM1Mi0wLjAzOSwwLjUyOS0wLjA1MgoJCQljMC40NDYtMC4wMzEsMC44OTYtMC4wNDcsMS4zNS0wLjA0M2MwLjMzNywwLjAwMywwLjY3OSwwLjAzMiwxLjAyLDAuMDU2YzAuMjM0LDAuMDE2LDAuNDY3LDAuMDIsMC43MDIsMC4wNDYKCQkJYzAuNTcyLDAuMDY1LDEuMTQ2LDAuMTU1LDEuNzE5LDAuMjc5YzMuNTA5LDAuNzU2LDcuMDQ3LTEuMTU1LDguMzM3LTQuNTA3YzQuMDkyLTEwLjYzOSwxNC40OTYtMTcuNzg3LDI1Ljg5MS0xNy43ODcKCQkJYzcuOTUsMCwxNS41MzMsMy40MjgsMjAuODA2LDkuNDA2YzAuMjEsMC4yMzgsMC40MzMsMC40NiwwLjY2OSwwLjY2NmMwLjAxMywwLjAxMSwwLjAyOCwwLjAyLDAuMDQxLDAuMDMyCgkJCWMwLjkzMiwwLjgwNCwyLjA0MywxLjM1NSwzLjIzLDEuNjA4YzAuOTAzLDAuMTkzLDEuODQ4LDAuMjE2LDIuNzg3LDAuMDUxYzEwLjQxNi0xLjgzMSwxOS45NjQsMy44NjgsMjMuOTIyLDEyLjYyNGgtOTguMDYxCgkJCUMzNjAuMjUsNDcwLjk4NSwzNjAuMzM0LDQ3MC45NDIsMzYwLjQxNiw0NzAuODkzeiBNMjkxLjAzOCwzNDcuODE1djEyMy4yMTloLTcwLjA4MlYzNDcuODE1SDI5MS4wMzh6IE03Ny43OTcsNDQ1LjM1MgoJCQljMC43NjctMC4xMjEsMS41MzYtMC4yMTUsMi4zMDUtMC4yNzljMC4wNjYtMC4wMDUsMC4xMzItMC4wMDksMC4xOTgtMC4wMTRjMC43ODQtMC4wNiwxLjU2Ny0wLjA5NiwyLjM0My0wLjA5NgoJCQljMTAuNjg5LDAsMjAuNDY1LDUuNDI0LDI2LjE1LDE0LjUwOWMxLjE4OCwxLjg5OSwzLjE4NSwzLjE0Nyw1LjQxNCwzLjM4MWMwLjUyMywwLjA1NSwxLjAzOCwwLjEzNSwxLjU0OSwwLjIyNgoJCQljMC4xMTUsMC4wMiwwLjIzLDAuMDQxLDAuMzQ1LDAuMDYzYzAuNSwwLjA5NywwLjk5NSwwLjIwOCwxLjQ4MywwLjMzOGMwLjA2MywwLjAxNywwLjEyNSwwLjAzNywwLjE4OSwwLjA1NQoJCQljMC40NDQsMC4xMjMsMC44ODEsMC4yNjEsMS4zMTMsMC40MTFjMC4wOTksMC4wMzQsMC4xOTksMC4wNjcsMC4yOTgsMC4xMDNjMC40NjcsMC4xNjksMC45MjcsMC4zNTMsMS4zNzksMC41NTMKCQkJYzAuMDg4LDAuMDM5LDAuMTc1LDAuMDgxLDAuMjYzLDAuMTIyYzAuNDAzLDAuMTg1LDAuOCwwLjM4LDEuMTksMC41ODhjMC4wNzQsMC4wMzksMC4xNDgsMC4wNzYsMC4yMjIsMC4xMTYKCQkJYzAuNDMxLDAuMjM2LDAuODUyLDAuNDg4LDEuMjY1LDAuNzUyYzAuMDk0LDAuMDYsMC4xODcsMC4xMjIsMC4yOCwwLjE4NGMwLjM4OCwwLjI1NywwLjc2OSwwLjUyMywxLjEzOSwwLjgwMwoJCQljMC4wMzIsMC4wMjQsMC4wNjYsMC4wNDcsMC4wOTgsMC4wNzJjMC4zOTIsMC4zLDAuNzcsMC42MTcsMS4xNDEsMC45NDNjMC4wODcsMC4wNzcsMC4xNzQsMC4xNTQsMC4yNiwwLjIzMgoJCQljMC4zNjUsMC4zMzEsMC43MjIsMC42NzEsMS4wNjQsMS4wMjdjMC4wMjksMC4wMywwLjA1NiwwLjA2MiwwLjA4NCwwLjA5MmMwLjMxOSwwLjMzNiwwLjYyNSwwLjY4MywwLjkyMywxLjAzOQoJCQljMC4wNzIsMC4wODYsMC4xNDUsMC4xNzIsMC4yMTYsMC4yNmMwLjA1MywwLjA2NiwwLjEwMSwwLjEzNiwwLjE1NCwwLjIwMkg1Mi4xODFDNTQuMjI5LDQ1Ny44NjgsNjQuNjQzLDQ0Ny40MzksNzcuNzk3LDQ0NS4zNTJ6CgkJCSBNNDc3LjQ0NCw0OTcuNDI3SDM0LjU1Yy0zLjI1OSwwLTUuOTEtMi42NTEtNS45MS01LjkxYzAtMy4yNTksMi42NTEtNS45MSw1LjkxLTUuOTFoNDQyLjg5NGMzLjI1OSwwLDUuOTEsMi42NTEsNS45MSw1LjkxCgkJCUM0ODMuMzU0LDQ5NC43NzYsNDgwLjcwMyw0OTcuNDI3LDQ3Ny40NDQsNDk3LjQyN3oiLz4KICAgICAgICA8cGF0aCAgZD0iTTE4Ni4yMTMsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTZjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzdjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODgsNy4yODdoODYuNzljNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkzLjUsMjM0LjgzNSwxOTAuMjM4LDIzMS41NzIsMTg2LjIxMywyMzEuNTcyeiBNMTY4LjMwMywyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTI5OS42NjgsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM4LTEwLjM4aC01OS4zNTVjLTUuNzI0LDAtMTAuMzgsNC42NTctMTAuMzgsMTAuMzh2NjUuNzQ2CgkJCWgtMy4zMzhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMC4wMDEsNC4wMjQsMy4yNjMsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzMwNi45NTUsMjM0LjgzNSwzMDMuNjkzLDIzMS41NzIsMjk5LjY2OCwyMzEuNTcyeiBNMjgxLjc1OCwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQxMi41NzIsMjMxLjU3MmgtMy4zMzh2LTY1Ljc0NmMwLTUuNzI0LTQuNjU3LTEwLjM4LTEwLjM3OS0xMC4zOGgtNTkuMzU2Yy01LjcyNCwwLTEwLjM4LDQuNjU3LTEwLjM4LDEwLjM4djY1Ljc0NgoJCQloLTMuMzM4Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3YzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODdoODYuNzkxYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxOS44NTksMjM0LjgzNSw0MTYuNTk3LDIzMS41NzIsNDEyLjU3MiwyMzEuNTcyeiBNMzk0LjY2MSwyMzEuNTczaC01MC45N3YtNjEuNTU0aDUwLjk3VjIzMS41NzN6Ii8+CiAgICAgICAgPHBhdGggb3BhY2l0eT0iMC4yNSIgZD0iTTE4Mi44MTMsNDEzLjgzM2gtMC41Mjh2LTYwLjA0NWMwLTUuNTY2LTQuNTI5LTEwLjA5NS0xMC4wOTUtMTAuMDk1aC01My44ODZjLTUuNTY2LDAtMTAuMDk1LDQuNTI5LTEwLjA5NSwxMC4wOTV2NjAuMDQ1CgkJCWgtMC41MjhjLTQuMDI1LDAtNy4yODcsMy4yNjItNy4yODcsNy4yODdjMCw0LjAyNSwzLjI2Miw3LjI4Nyw3LjI4Nyw3LjI4N2g3LjgxNGg1OS41MDRoNy44MTRjNC4wMjUsMCw3LjI4Ny0zLjI2Miw3LjI4Ny03LjI4NwoJCQlDMTkwLjEsNDE3LjA5NSwxODYuODM4LDQxMy44MzMsMTgyLjgxMyw0MTMuODMzeiBNMTY3LjcxMiw0MTMuODMzaC00NC45MzF2LTU1LjU2N2g0NC45MzFWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNNDA0LjMxNCw0MTMuODMzaC0wLjUyOHYtNjAuMDQ1YzAtNS41NjYtNC41MjktMTAuMDk1LTEwLjA5NS0xMC4wOTVoLTUzLjg4NmMtNS41NjYsMC0xMC4wOTYsNC41MjktMTAuMDk2LDEwLjA5NXY2MC4wNDUKCQkJaC0wLjUyOGMtNC4wMjUsMC03LjI4NywzLjI2Mi03LjI4Nyw3LjI4N2MwLDQuMDI1LDMuMjYyLDcuMjg3LDcuMjg3LDcuMjg3aDcuODE0SDM5Ni41aDcuODE0YzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODcKCQkJQzQxMS42MDEsNDE3LjA5NSw0MDguMzM5LDQxMy44MzMsNDA0LjMxNCw0MTMuODMzeiBNMzg5LjIxMyw0MTMuODMzaC00NC45MzJ2LTU1LjU2N2g0NC45MzJWNDEzLjgzM3oiLz4KICAgICAgICA8cGF0aCBvcGFjaXR5PSIwLjI1IiBkPSJNMjc2LjU0NSw0MDUuMDg5Yy00LjAyNSwwLTcuMjg3LDMuMjYyLTcuMjg3LDcuMjg3djEyLjYzYzAsNC4wMjQsMy4yNjIsNy4yODcsNy4yODcsNy4yODcKCQkJYzQuMDI1LDAsNy4yODctMy4yNjIsNy4yODctNy4yODd2LTEyLjYzQzI4My44MzIsNDA4LjM1MiwyODAuNTcsNDA1LjA4OSwyNzYuNTQ1LDQwNS4wODl6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",Shed:Kae,"Sleeping Area":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4MCA0ODAiPgogICAgPGcgZmlsbD0iY3VycmVudENvbG9yIj4KICAgICAgICA8cGF0aCBkPSJNNDU2LDIyNGMtMTQuMTMzLDAtMjQsNi4zMDEtMjQsMTUuMzJ2MjcuNTA1QzQxOS4zMzMsMjQxLjc5MywzOTkuODUsMjI0LDM3NiwyMjRIMTUyYy00LjQxNy0wLjAwMS03Ljk5OSwzLjU3OS04LDcuOTk2CgkJCWMwLDAuMDAxLDAsMC4wMDMsMCwwLjAwNHY0OC4wNjdjMC4wNDUtMTMuMDUyLTUuMjAxLTI2LjA3NS0xNS41ODYtMzUuNTgzYy0xOS41NTItMTcuOTAyLTQ5LjkxNS0xNi41NjQtNjcuODE2LDIuOTg5CgkJCWMtMTYuNzY0LDE4LjMwOS0xNi44MDEsNDYuMzgtMC4wODYsNjQuNzM0Yy00LjYxMiwwLjUwOC04Ljk2OCwyLjM4LTEyLjUxMiw1LjM3NVYxMTUuMTk5QzQ4LDEwNC40MzQsMzcuNDYxLDk2LDI0LDk2CgkJCXMtMjQsOC40MzQtMjQsMTkuMTk5djM0NS42MDJDMCw0NzEuNTY2LDEwLjUzOSw0ODAsMjQsNDgwczI0LTguNDM0LDI0LTE5LjE5OVY0MDhoMzg0djU2LjY4YzAsOS4wMTksOS44NjcsMTUuMzIsMjQsMTUuMzIKCQkJczI0LTYuMzAxLDI0LTE1LjMyVjIzOS4zMkM0ODAsMjMwLjMwMSw0NzAuMTMzLDIyNCw0NTYsMjI0eiBNMzIsNDYwLjgwMWMtMC4wODYsMC42NTYtMi43NzMsMy4xOTktOCwzLjE5OQoJCQljLTUuMjUsMC03LjkyMi0yLjU0My04LTMuMTk5VjExNS4xOTljMC4wNzgtMC42NTYsMi43NS0zLjE5OSw4LTMuMTk5YzUuMjI3LDAsNy45MTQsMi41NDMsOCwzLjE5OVY0NjAuODAxeiBNMTYwLDI0MGgyMTYKCQkJYzMwLjE3MiwwLDUzLjE3Miw0NC45MjYsNTUuNzU4LDg4SDE2MFYyNDB6IE0xNDQsMjgwLjA4M3YzOC41NmMtMy40NTItMy4zNTMtNy44NDgtNS41NjYtMTIuNTk3LTYuMzQyCgkJCUMxMzkuNzkzLDMwMy4xMzcsMTQzLjk1NiwyOTEuNiwxNDQsMjgwLjA4M3ogTTk2LDI0OGMxNy42NzMsMCwzMiwxNC4zMjcsMzIsMzJjMCwxNy42NzMtMTQuMzI3LDMyLTMyLDMycy0zMi0xNC4zMjctMzItMzIKCQkJQzY0LjAxOSwyNjIuMzM1LDc4LjMzNSwyNDguMDE5LDk2LDI0OHogTTQzMiwzOTJINDh2LTQ4LjAyM2M0LjE2My0wLjMyOCw3LjM3NC0zLjgwMSw3LjM3NS03Ljk3NwoJCQljLTAuMDc3LTQuMzMxLDMuMzY0LTcuOTA5LDcuNjk1LThoNjQuNjFjNC4zMzEsMC4wOTEsNy43NzIsMy42NjksNy42OTUsOGMtMC4wMDEsNC40MTcsMy41NzksNy45OTksNy45OTYsOAoJCQljMC4wMDEsMCwwLjAwMywwLDAuMDA0LDBINDMyVjM5MnogTTQ2NCw0NjIuNTk0Yy01LjE2OSwxLjg3NS0xMC44MzEsMS44NzUtMTYsMFYyNDEuNDA2YzUuMTY5LTEuODc1LDEwLjgzMS0xLjg3NSwxNiwwVjQ2Mi41OTR6IgogICAgICAgIC8+CiAgICAgICAgPHBhdGggZD0iTTEzNy4wNzgsMTc2bDI5LjA3LTM0Ljg3OWMxLjk4Ni0yLjM4NiwyLjQxMy01LjcwNSwxLjA5NC04LjUxNmMtMS4zMTYtMi44MS00LjEzOS00LjYwNS03LjI0Mi00LjYwNWgtNDh2MTZoMzAuOTIyCgkJCWwtMjkuMDcsMzQuODc5Yy0yLjgyNywzLjM5OC0yLjM2NCw4LjQ0NCwxLjAzNCwxMS4yN2MxLjQzNywxLjE5NSwzLjI0NiwxLjg1LDUuMTE0LDEuODUxaDQ4di0xNkgxMzcuMDc4eiIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMjQuMzU5LDEzNmw0NS45NTMtNTkuMDljMS44NzctMi40MTEsMi4yMTctNS42ODEsMC44NzUtOC40MjZjLTEuMzQ0LTIuNzQzLTQuMTMyLTQuNDgzLTcuMTg4LTQuNDg0aC02NHYxNmg0Ny42NDEKCQkJbC00NS45NTMsNTkuMDljLTIuNzE0LDMuNDg0LTIuMDg5LDguNTA5LDEuMzk2LDExLjIyM2MxLjQwNSwxLjA5NCwzLjEzNiwxLjY4OCw0LjkxNywxLjY4OGg2NHYtMTZIMjI0LjM1OXoiLz4KICAgICAgICA8cGF0aCBkPSJNMzI4LDk2bDYyLjM5OC04My4xOTljMi42NTItMy41MzMsMS45MzktOC41NDYtMS41OTQtMTEuMTk5QzM4Ny40MTksMC41NjIsMzg1LjczMywwLDM4NCwwaC03MnYxNmg1NmwtNjIuMzk4LDgzLjE5OQoJCQljLTEuODE4LDIuNDI0LTIuMTEyLDUuNjY4LTAuNzU4LDguMzc5QzMwNi4yLDExMC4yODgsMzA4Ljk3LDExMiwzMTIsMTEyaDgwVjk2SDMyOHoiLz4KICAgIDwvZz4KPC9zdmc+Cg==",Stairway:qae,Stairwell:ece,Storeroom:tce,"Summer House":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMS45OTkgNTExLjk5OSI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xNzMuODMyLDIyNS4yNjNoLTQzLjAzOWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY2MC4xMzRjMCw0LjE0MiwzLjM1Nyw3LjUsNy41LDcuNWg0My4wMzljNC4xNDIsMCw3LjUtMy4zNTgsNy41LTcuNQoJCQl2LTYwLjEzNEMxODEuMzMyLDIyOC42MjIsMTc3Ljk3NCwyMjUuMjYzLDE3My44MzIsMjI1LjI2M3ogTTE2Ni4zMzEsMjg1LjM5N2gtMjguMDM4di00NS4xMzNoMjguMDM4VjI4NS4zOTd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTQ1OS4xMjcsMjAxLjE5M2MzLjMxNCwyLjI3OCw4LjA5MSwxLjQ3MSwxMC40My0xLjkzMmMwLDAsMjMuMDA5LTMzLjQ2OSwyMy4wMjktMzMuNDk4CgkJCWMyLjMxNS0zLjM2OCwxLjQyOC04LjEyMS0xLjkzMi0xMC40MzFMMjcxLjc2Myw0Ljg2MWMtOS40MjktNi40OC0yMi4wOTctNi40ODEtMzEuNTI2LDBjMCwwLTEzOS43NjIsOTYuMDc3LTE0MC4yNzMsOTYuNDI4CgkJCWMtNy45MTEsNS40MzgsMC40MjksMTcuOTEsOC40OTcsMTIuMzYzbDE0MC4yNzQtOTYuNDI5YzQuMzQ3LTIuOTg3LDEwLjE4Ny0yLjk4NywxNC41MzEtMC4wMDFsMjEyLjcwOSwxNDYuMjI0bC0xNC41MzEsMjEuMTM3CgkJCWMwLDAtMjAxLjE0My0xMzguMjcyLTIwMS4xOTUtMTM4LjMwOGMtMi40OTUtMS43MTUtNS45OTktMS43MTgtOC40OTgtMC4wMDFMNTAuNTU3LDE4NC41ODNsLTE0LjUzLTIxLjEzNwoJCQljMCwwLDQ3LjExNy0zMi4zOSw0Ny4yODktMzIuNTA5YzcuODA3LTUuMzY2LTAuNDE2LTE3LjkxNy04LjQ5OC0xMi4zNjJjMCwwLTUzLjMwMSwzNi42NC01My40NzEsMzYuNzU3CgkJCWMtMy4zNzQsMi4zMi00LjI0MSw3LjA3MS0xLjkzMywxMC40MzFsMjEuNzA5LDMxLjU3OXYzMDcuMTU2YzAsNC4xNDIsMy4zNTgsNy41LDcuNSw3LjVIMjU2YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjVWMzk1Ljk3MQoJCQlINDAyLjY0djEwOC41MjhjMCw0LjE0MiwzLjM1OCw3LjUsNy41MDEsNy41aDMwLjQ4OGM0LjE0MiwwLDcuNS0zLjM1OCw3LjUtNy41VjM5NS45NzFoMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4NwoJCQljMC00LjE0My0zLjM1OC03LjUtNy41LTcuNWgtMjMuNzY5di01Ny4yNTloMjMuNzY5YzQuMTQyLDAsNy41LTMuMzU4LDcuNS03LjV2LTMwLjQ4OGMwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC0yMy43Njl2LTU0LjEwMwoJCQlMNDU5LjEyNywyMDEuMTkzeiBNNDE3LjY0MSwxODYuODc2aDE1LjQ4N3Y2MC44NThoLTE1LjQ4N1YxODYuODc2eiBNMjU2LDYxLjU1NmwzOS4wNzUsMjYuODYxaC03OC4xNDlMMjU2LDYxLjU1NnoKCQkJIE01Ni4xMjUsMjcwLjMzMmgzOC4zOTl2NTMuMDU1YzAsNC4xNDEsMy4zNTgsNy41LDcuNSw3LjVIMjAyLjZjNC4xNDIsMCw3LjUwMS0zLjM1OCw3LjUwMS03LjV2LTUzLjA1NWgzOC4zOTh2NjguNDU2SDU2LjEyNQoJCQlWMjcwLjMzMnogTTEwOS41MjUsMzE1Ljg4NlYyMDkuNzc3aDg1LjU3NXYxMDYuMTA5SDEwOS41MjV6IE05NC41MjQsNDk2Ljk5OEg1Ni4xMjV2LTU5Ljc1NGgzOC4zOTlWNDk2Ljk5OHogTTE2Ni4zMzEsNDk2Ljk5NwoJCQloLTI4LjAzOHYtODUuNzgzaDI4LjAzOFY0OTYuOTk3eiBNMTk1LjA5OSw0OTYuOTk3aC0xMy43Njd2LTkzLjI4M2MwLTQuMTQyLTMuMzU4LTcuNS03LjUtNy41aC00My4wMzkKCQkJYy00LjE0MiwwLTcuNTAxLDMuMzU4LTcuNTAxLDcuNXY5My4yODNoLTEzLjc2OFYzODAuNzI3aDg1LjU3NVY0OTYuOTk3eiBNMjQ4LjQ5OSw0OTYuOTk4SDIxMC4xdi01OS43NTRoMzguMzk4VjQ5Ni45OTh6CgkJCSBNMjQ4LjUsNDIyLjI0NGgtMzguMzk5di00OS4wMThjLTAuMDAxLTQuMTQyLTMuMzU5LTcuNS03LjUwMi03LjVIMTAyLjAyNGMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNTAxdjQ5LjAxOEg1Ni4xMjV2LTY4LjQ1NgoJCQlIMjQ4LjVWNDIyLjI0NHogTTI0OC41LDI1NS4yMjVjMCwwLjAwMywwLDAuMDA2LDAsMC4wMXYwLjA5NmgtMzguMzk5di01My4wNTVjMC00LjE0Mi0zLjM1OC03LjUtNy41LTcuNUgxMDIuMDI0CgkJCWMtNC4xNDIsMC03LjUsMy4zNTgtNy41LDcuNXY1My4wNTVINTYuMTI1di01Ni4zNzNsMTcuNjYzLTEyLjE0M2MwLjI5NywwLjAzNiwwLjU5NywwLjA2LDAuOTA0LDAuMDZIMjQ4LjVWMjU1LjIyNXoKCQkJIE05NS41MjMsMTcxLjg3NWw5OS41ODEtNjguNDU2aDEyMS43OTNsOTkuNTgxLDY4LjQ1NmgtNi4zMzZIOTUuNTIzeiBNNDAyLjY0LDE4Ni44NzZ2NjAuODU4SDI2My41MDF2LTYwLjg1OEg0MDIuNjR6CgkJCSBNMjYzLjUwMSwyOTMuMjIzaDE1LjQ4NnY1Ny4yNTloLTE1LjQ4NlYyOTMuMjIzeiBNNDMzLjEyOCw0OTYuOTk4aC0xNS40ODdWMzk1Ljk3MWgxNS40ODdWNDk2Ljk5OHogTTQ2NC4zOTcsMzY1LjQ4NHYxNS40ODYKCQkJSDI2My41MDF2LTE1LjQ4Nkg0NjQuMzk3eiBNMjkzLjk4OCwzNTAuNDgydi01Ny4yNTloMTUuNDg3djU3LjI1OUgyOTMuOTg4eiBNMzI0LjQ3NiwzNTAuNDgydi01Ny4yNTloMTYuMzM3djU3LjI1OUgzMjQuNDc2egoJCQkgTTM1NS44MTQsMzUwLjQ4MnYtNTcuMjU5aDE1LjQ4N3Y1Ny4yNTlIMzU1LjgxNHogTTM4Ni4zMDIsMzUwLjQ4MnYtNTcuMjU5aDE2LjMzN3Y1Ny4yNTlIMzg2LjMwMnogTTQxNy42NDEsMzUwLjQ4MnYtNTcuMjU5CgkJCWgxNS40ODd2NTcuMjU5SDQxNy42NDF6IE00NjQuMzk3LDI2Mi43MzV2MTUuNDg3SDI2My41MDF2LTE1LjQ4N0g0NjQuMzk3eiIvPgogICAgPC9nPgo8L3N2Zz4K","Swimming Pool":"PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDE4Ny43MzMgMTg3LjczMyI+CiAgICA8ZyBmaWxsPSJjdXJyZW50Q29sb3IiPgogICAgICAgIDxwYXRoIGQ9Ik0xODcuNTk5LDE1MS40NThMMTUzLjQ2NSwzMy4xODZjLTAuNDIyLTEuNDYxLTEuNzU4LTIuNDY2LTMuMjc5LTIuNDY2SDM3LjU0N2MtMS41MjEsMC0yLjg1NywxLjAwNS0zLjI3OSwyLjQ2NgoJCQlMMC4xMzUsMTUxLjQ1OEMwLjA0NCwxNTEuNzY1LDAsMTUyLjA4NSwwLDE1Mi40MDV2MjUuMDg4YzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNIMTg0LjMyCgkJCWMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzdi0yNS4wODhDMTg3LjczMywxNTIuMDg1LDE4Ny42ODcsMTUxLjc2NSwxODcuNTk5LDE1MS40NTh6IE0xODAuOTA3LDE3NC4wOEg2LjgyN3YtMjEuMTkyCgkJCUw0MC4xMTUsMzcuNTQ3SDE0Ny42MmwzMy4yODcsMTE1LjM0MlYxNzQuMDh6Ii8+CiAgICAgICAgPHBhdGggZD0iTTc4LjUwNyw2LjgyN2MtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3Y1MS4yYzAsMS44ODQsMS41MjksMy40MTMsMy40MTMsMy40MTNzMy40MTMtMS41MjksMy40MTMtMy40MTN2LTUxLjIKCQkJQzgxLjkyLDguMzU2LDgwLjM5MSw2LjgyNyw3OC41MDcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsNi44MjdjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTN2NTEuMmMwLDEuODg0LDEuNTI5LDMuNDEzLDMuNDEzLDMuNDEzYzEuODg0LDAsMy40MTMtMS41MjksMy40MTMtMy40MTMKCQkJdi01MS4yQzExMi42NCw4LjM1NiwxMTEuMTExLDYuODI3LDEwOS4yMjcsNi44Mjd6Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOS4yMjcsMTcuMDY3aC0zMC43MmMtMS44ODQsMC0zLjQxMywxLjUyOS0zLjQxMywzLjQxM3MxLjUyOSwzLjQxMywzLjQxMywzLjQxM2gzMC43MmMxLjg4NCwwLDMuNDEzLTEuNTI5LDMuNDEzLTMuNDEzCgkJCVMxMTEuMTExLDE3LjA2NywxMDkuMjI3LDE3LjA2N3oiLz4KICAgICAgICA8cGF0aCBkPSJNMTA5LjIyNywzMC43MmgtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSwzMC43MiwxMDkuMjI3LDMwLjcyeiIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDkuMjI3LDQ0LjM3M2gtMzAuNzJjLTEuODg0LDAtMy40MTMsMS41MjktMy40MTMsMy40MTNzMS41MjksMy40MTMsMy40MTMsMy40MTNoMzAuNzJjMS44ODQsMCwzLjQxMy0xLjUyOSwzLjQxMy0zLjQxMwoJCQlTMTExLjExMSw0NC4zNzMsMTA5LjIyNyw0NC4zNzN6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE2My43ODksMTQ2LjE3OWwtMTcuNTE2LTk4Ljk4N2MtMC4yODgtMS42My0xLjcwNS0yLjgxOC0zLjM2LTIuODE4SDQ4LjMyOGMtMS42MTMsMC0zLjAwNSwxLjEyNi0zLjM0LDIuNzAzCgkJCWwtMjEuMDE5LDk4Ljk4N2MtMC4yMTMsMS4wMDcsMC4wMzgsMi4wNTcsMC42ODYsMi44NTdjMC42NDksMC44LDEuNjIxLDEuMjY1LDIuNjUyLDEuMjY1aDEzMy4xMmMxLjAwOSwwLDEuOTY2LTAuNDQ3LDIuNjE2LTEuMjE5CgkJCUMxNjMuNjkxLDE0OC4xOTUsMTYzLjk2NSwxNDcuMTc0LDE2My43ODksMTQ2LjE3OXogTTMxLjUyLDE0My4zNkw1MS4wODksNTEuMmg4OC45NThsMTYuMzA5LDkyLjE2SDMxLjUyeiIvPgogICAgPC9nPgo8L3N2Zz4K",Terrace:sce,Toilet:ice,Upstairs:oce,Wardrobe:rce,Washroom:Mce,Wc:nce,Windscreen:ace,Workshop:cce,Workspace:uce},lce=[{_id:"hood",name:{en:"Hood",ru:"Вытяжка",de:"Abzugshaube",fr:"Capot",it:"Cappe",nl:"Hood",pl:"Okapy",pt:"Hood",es:"Campana","zh-cn":"抽油烟机"},icon:"Hoods.svg"},{_id:"alarm_system",name:{en:"Alarm System",ru:"Сигнализация",de:"Alarmanlage",fr:"Systèmes D'Alarme",it:"Sistemi Di Allarme",nl:"Alarm Systems",pl:"Systemy Alarmowe",pt:"Sistemas De Alarme",es:"Sistemas De Alarma","zh-cn":"报警系统"},icon:"Alarm Systems.svg"},{_id:"battery_status",name:{en:"Battery Status",ru:"Заряд батареи",de:"Batteriestatus",fr:"État De La Batterie",it:"Stato Della Batteria",nl:"Batterij Status",pl:"Stan Baterii",pt:"Estado Da Bateria",es:"Estado De La Batería","zh-cn":"电池状态"},icon:"Battery Status.svg"},{_id:"lighting",name:{en:"Lighting",ru:"Светильник",de:"Beleuchtung",fr:"Éclairages",it:"Illuminazione",nl:"Verlichting",pl:"Oprawy Oświetleniowe",pt:"Iluminações",es:"Iluminaciones","zh-cn":"照明"},icon:"Lightings.svg"},{_id:"shading",name:{en:"Shading",ru:"Затенение",de:"Beschattungen",fr:"Ombres",it:"Ombreggiatura",nl:"Shading",pl:"Zacienienie",pt:"Shading",es:"Sombreado","zh-cn":"底纹"},icon:"Shading.svg"},{_id:"irrigation",name:{en:"Irrigation",ru:"Орошение",de:"Bewässerung",fr:"Irrigation",it:"Irrigazione",nl:"Irrigatie",pl:"Nawadnianie",pt:"Irrigação",es:"Irrigación","zh-cn":"灌溉"},icon:"Irrigation.svg"},{_id:"iron",name:{en:"Iron",ru:"Утюг",de:"Bügeleisen",fr:"Le Fer",it:"Ferro",nl:"Ijzer",pl:"Żelazo",pt:"Ferro",es:"Hierro","zh-cn":"铁"},icon:"Iron.svg"},{_id:"computer",name:{en:"Computer",ru:"Компьютер",de:"Rechner",fr:"L'Ordinateur",it:"Computer",nl:"Computer",pl:"Komputer",pt:"Computador",es:"Ordenador","zh-cn":"电脑"},icon:"Computer.svg"},{_id:"ceiling_spotlight",name:{en:"Ceiling Spotlight",ru:"Потолочный прожектор",de:"Deckenspot",fr:"Plafond Spotlight",it:"Faretti A Soffitto",nl:"Plafond Spotlight",pl:"Reflektory Sufitowe",pt:"Tecto Foco",es:"Focos De Techo","zh-cn":"天花射灯"},icon:"Ceiling Spotlights.svg"},{_id:"printer",name:{en:"Printer",de:"Drucker",ru:"Принтер",pt:"Impressora",nl:"Printer",fr:"Imprimante",it:"Stampante",es:"Impresora",pl:"Drukarka","zh-cn":"打印机"},icon:"Printer.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"window",name:{en:"Window",ru:"Окно",de:"Fenster",fr:"La Fenêtre",it:"Finestra",nl:"Venster",pl:"Okno",pt:"Janela",es:"Ventana","zh-cn":"窗户"},icon:"Window.svg"},{_id:"garage_door",name:{en:"Garage Door",ru:"Гаражные Ворота",de:"Garagentor",fr:"Portes De Garage",it:"Garage Door",nl:"Garage Door",pl:"Bramy Garażowe",pt:"Portas De Garagem",es:"Las Puertas De Garaje","zh-cn":"车库门"},icon:"Garage Doors.svg"},{_id:"hairdryer",name:{en:"Hairdryer",ru:"Фен",de:"Haartrockner",fr:"Sèche-Cheveux",it:"Asciugacapelli",nl:"Haardroger",pl:"Suszarka Do Włosów",pt:"Secador De Cabelo",es:"Secador De Pelo","zh-cn":"电吹风"},icon:"Hairdryer.svg"},{_id:"hanging_lamp",name:{en:"Hanging Lamp",ru:"Подвесной светильник",de:"Hängelampe",fr:"Lampes Suspendues",it:"Lampade A Sospensione",nl:"Opknoping Lampen",pl:"Lampy Wiszące",pt:"Lâmpadas De Suspensão",es:"Lámparas Colgantes","zh-cn":"挂灯"},icon:"Hanging Lamps.svg"},{_id:"doorstep",name:{en:"Enterance",ru:"Входная дверь",de:"Haustür",fr:"Seuil De Porte",it:"Gradino Della Porta",nl:"Drempel",pl:"Próg",pt:"Porta",es:"Peldaño","zh-cn":"门阶"},icon:"Doorstep.svg"},{_id:"hot_water",name:{en:"Hot Water",ru:"Горячая вода",de:"Heißwasser",fr:"Eau Chaude",it:"Acqua Calda",nl:"Heet Water",pl:"Gorąca Woda",pt:"Água Quente",es:"Agua Caliente","zh-cn":"热水"},icon:"Hot Water.svg"},{_id:"heating",name:{en:"Heating",ru:"Отопление",de:"Heizung",fr:"Chauffe-Eau",it:"Riscaldatore",nl:"Verwarmer",pl:"Podgrzewacz",pt:"Aquecedor",es:"Calentador","zh-cn":"加热器"},icon:"Heater.svg"},{_id:"stove",name:{en:"Stove",ru:"Печь",de:"Herd",fr:"Le Fourneau",it:"Stufa",nl:"Fornuis",pl:"Kuchenka",pt:"Forno",es:"Cocina","zh-cn":"火炉"},icon:"Stove.svg"},{_id:"louvre",name:{en:"Louvre",ru:"Жалюзи",de:"Jalousie",fr:"Persienne",it:"Persiana Di Ventilazione",nl:"Louvre",pl:"Żaluzja",pt:"Trapeira",es:"Lumbrera","zh-cn":"卢浮宫"},icon:"Louvre.svg"},{_id:"coffee_maker",name:{en:"Coffee Maker",ru:"Кофеварка",de:"Kaffemaschine",fr:"Cafetière",it:"Macchine Da Caffè",nl:"Koffie Maker",pl:"Ekspresy Do Kawy",pt:"Cafeteira",es:"Cafetera","zh-cn":"咖啡壶"},icon:"Coffee Makers.svg"},{_id:"cold_water",name:{en:"Cold Water",ru:"Холодная вода",de:"Kaltwasser",fr:"Eau Froide",it:"Acqua Fredda",nl:"Koud Water",pl:"Zimna Woda",pt:"Água Fria",es:"Agua Fría","zh-cn":"冷水"},icon:"Cold Water.svg"},{_id:"climate",name:{en:"Climate",ru:"Климат",de:"Klima",fr:"Climat",it:"Clima",nl:"Klimaat",pl:"Klimat",pt:"Clima",es:"Clima","zh-cn":"气候"},icon:"Climate.svg"},{_id:"speaker",name:{en:"Speaker",ru:"Звуковая система",de:"Lautsprecher",fr:"Orateur",it:"Altoparlante",nl:"Spreker",pl:"Głośnik",pt:"Palestrante",es:"Altavoz","zh-cn":"扬声器"},icon:"Speaker.svg"},{_id:"led_strip",name:{en:"Led Strip",ru:"Светодиодная лента",de:"LED Leiste",fr:"Led Strip",it:"Led Strip",nl:"Loden Strip",pl:"Pasek Ledowy",pt:"Led Faixa",es:"Tira Llevada","zh-cn":"灯带"},icon:"Led Strip.svg"},{_id:"light",name:{en:"Light",ru:"Свет",de:"Licht",fr:"Lumière",it:"Leggero",nl:"Licht",pl:"Lekki",pt:"Luz",es:"Luz","zh-cn":"光"},icon:"Light.svg"},{_id:"fan",name:{en:"Fan",ru:"Вентилятор",de:"Lüfter",fr:"Ventilateur",it:"Fan",nl:"Ventilator",pl:"Wentylator",pt:"Ventilador",es:"Ventilador","zh-cn":"扇子"},icon:"Fan.svg"},{_id:"humidity",name:{en:"Humidity",ru:"Влажность",de:"Luftfeuchtigkeit",fr:"Humidité",it:"Umidità",nl:"Vochtigheid",pl:"Wilgotność",pt:"Umidade",es:"Humedad","zh-cn":"湿度"},icon:"Humidity.svg"},{_id:"ventilation",name:{en:"Ventilation",ru:"Вентиляция",de:"Lüftung",fr:"Ventilation",it:"Ventilazione",nl:"Ventilatie",pl:"Wentylacja",pt:"Ventilação",es:"Ventilación","zh-cn":"通风"},icon:"Ventilation.svg"},{_id:"chandelier",name:{en:"Chandelier",ru:"Люстра",de:"Kronleuchter",fr:"Lustre",it:"Lampadario",nl:"Kroonluchter",pl:"Żyrandol",pt:"Lustre",es:"Candelabro","zh-cn":"枝形吊灯"},icon:"Chandelier.svg"},{_id:"awning",name:{en:"Awning",ru:"Маркиза",de:"Markise",fr:"Auvents",it:"Tende",nl:"Luifels",pl:"Okrycia",pt:"Toldos",es:"Toldos","zh-cn":"遮阳篷"},icon:"Awnings.svg"},{_id:"music",name:{en:"Music",ru:"Музыка",de:"Musik",fr:"Musique",it:"Musica",nl:"Muziek",pl:"Muzyka",pt:"Música",es:"Música","zh-cn":"音乐"},icon:"Music.svg"},{_id:"people",name:{en:"People",ru:"Люди",de:"Personen",fr:"Gens",it:"Persone",nl:"Mensen",pl:"Ludzie",pt:"Pessoas",es:"Personas","zh-cn":"人们"},icon:"People.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"pump",name:{en:"Pump",ru:"Насос",de:"Pumpe",fr:"Pompe",it:"Pompa",nl:"Pomp",pl:"Pompa",pt:"Bombear",es:"Bomba","zh-cn":"泵"},icon:"Pump.svg"},{_id:"outdoor_blinds",name:{en:"Outdoor Blinds",ru:"Внещгте жалюзи",de:"Raffstore",fr:"Volets",it:"Tende Da Esterni",nl:"Outdoor Blinds",pl:"Rolety Zewnętrzne",pt:"Estores Exteriores",es:"Persianas Exteriores","zh-cn":"室外百叶窗"},icon:"Outdoor Blinds.svg"},{_id:"mowing_machine",name:{en:"Mowing Machine",ru:"Газонокосилка",de:"Rasenmäher",fr:"Machine De Fauchage",it:"Macchina Di Falciatura",nl:"Maaimachine",pl:"Kosiarka",pt:"Roçada Máquina",es:"Segadora","zh-cn":"割草机"},icon:"Mowing Machine.svg"},{_id:"receiver",name:{en:"Receiver",ru:"Приставка",de:"Receiver",fr:"Destinataire",it:"Ricevitore",nl:"Ontvanger",pl:"Odbiorca",pt:"Recebedor",es:"Receptor","zh-cn":"接收者"},icon:"Receiver.svg"},{_id:"shutters",name:{en:"Shutters",ru:"Ставни",de:"Rollladen",fr:"Volets",it:"Persiane",nl:"Shutters",pl:"Żaluzje",pt:"Persianas",es:"Persianas","zh-cn":"百叶窗"},icon:"Shutters.svg"},{_id:"smoke_detector",name:{en:"Smoke detector",de:"Rauchmelder",ru:"Детектор дыма",pt:"Detector de fumaça",nl:"Rookdetector",fr:"Détecteur de fumée",it:"Rilevatore di fumo",es:"Detector de humo",pl:"Wykrywacz dymu","zh-cn":"烟雾探测器"},icon:"SmokeDetector.svg"},{_id:"lock",name:{en:"Lock",ru:"Замок",de:"Schloß",fr:"Fermer À Clé",it:"Serratura",nl:"Slot",pl:"Zamek",pt:"Trancar",es:"Cerrar Con Llave","zh-cn":"锁"},icon:"Lock.svg"},{_id:"security",name:{en:"Security",ru:"Безопасность",de:"Sicherheit",fr:"Sécurité",it:"Sicurezza",nl:"Veiligheid",pl:"Bezpieczeństwo",pt:"Segurança",es:"Seguridad","zh-cn":"安全"},icon:"Security.svg"},{_id:"dishwasher",name:{en:"Dishwasher",ru:"Посудомоечная машина",de:"Spülmaschine",fr:"Lave-Vaisselles",it:"Lavastoviglie",nl:"Vaatwassers",pl:"Zmywarki",pt:"Máquinas De Lavar Louça",es:"Lavaplatos","zh-cn":"洗碗机"},icon:"Dishwashers.svg"},{_id:"vacuum_cleaner",name:{en:"Vacuum Cleaner",ru:"Пылесос",de:"Staubsauger",fr:"Aspirateur",it:"Aspirapolvere",nl:"Stofzuiger",pl:"Odkurzacz",pt:"Aspirador De Pó",es:"Aspiradora","zh-cn":"吸尘器"},icon:"Vacuum Cleaner.svg"},{_id:"socket",name:{en:"Socket",ru:"Розетка",de:"Steckdose",fr:"Prise",it:"Socket",nl:"Socket",pl:"Gniazdka",pt:"Tomada",es:"Zócalo","zh-cn":"套接字"},icon:"Sockets.svg"},{_id:"floor_lamp",name:{en:"Floor Lamp",ru:"Торшер",de:"Stehlampe",fr:"Lampes Pour Plancher",it:"Lampade A Stelo",nl:"Vloerlampen",pl:"Lampy Podłogowe",pt:"Lâmpadas Chão",es:"Lámparas De Pie","zh-cn":"落地灯"},icon:"Floor Lamps.svg"},{_id:"power_consumption",name:{en:"Power Consumption",ru:"Потребляемая мощность",de:"Stromverbrauch",fr:"Consommation D'Énergie",it:"Consumo Di Energia",nl:"Energieverbruik",pl:"Pobór Energii",pt:"Consumo De Energia",es:"El Consumo De Energía","zh-cn":"能量消耗"},icon:"Power Consumption.svg"},{_id:"temperature_sensor",name:{en:"Temperature Sensor",ru:"Температурный датчик",de:"Temperatur-Sensor",fr:"Capteur De Température",it:"Sensori Di Temperatura",nl:"Temperatuursensor",pl:"Czujniki Temperatury",pt:"Sensores De Temperatura",es:"Sensores De Temperatura","zh-cn":"温度传感器"},icon:"Temperature Sensors.svg"},{_id:"table_lamp",name:{en:"Table Lamp",ru:"Настольная лампа",de:"Tischlampe",fr:"Lampe De Chevet",it:"Lampade Da Tavolo",nl:"Tafellampen",pl:"Lampy Stołowe",pt:"Lâmpadas De Mesa",es:"Lámparas De Mesa","zh-cn":"台灯"},icon:"Table Lamps.svg"},{_id:"gate",name:{en:"Gate",ru:"Ворота",de:"Tor",fr:"Porte",it:"Gate",nl:"Gate",pl:"Bramy",pt:"Portões",es:"Puertas","zh-cn":"盖茨"},icon:"Gates.svg"},{_id:"dryer",name:{en:"Dryer",ru:"Сушилка",de:"Trockner",fr:"Séchoir",it:"Asciugatrice",nl:"Droger",pl:"Suszarka",pt:"Secador",es:"Secadora","zh-cn":"烘干机"},icon:"Dryer.svg"},{_id:"door",name:{en:"Door",ru:"Дверь",de:"Tür",fr:"Des Portes",it:"Porte",nl:"Deuren",pl:"Drzwi",pt:"Portas",es:"Puertas","zh-cn":"门"},icon:"Doors.svg"},{_id:"tv",name:{en:"Tv",ru:"Телевизор",de:"TV",fr:"La Télé",it:"Tv",nl:"Tv",pl:"Telewizja",pt:"Televisão",es:"Televisor","zh-cn":"电视"},icon:"Tv.svg"},{_id:"consumption",name:{en:"Consumption",ru:"Потребление",de:"Verbrauch",fr:"Consommation",it:"Consumo",nl:"Consumptie",pl:"Konsumpcja",pt:"Consumo",es:"Consumo","zh-cn":"消费"},icon:"Consumption.svg"},{_id:"amplifier",name:{en:"Amplifier",ru:"Усилитель звука",de:"Verstärker",fr:"Amplificateur",it:"Amplificatore",nl:"Versterker",pl:"Wzmacniacz",pt:"Amplificador",es:"Amplificador","zh-cn":"放大器"},icon:"Amplifier.svg"},{_id:"curtains",name:{en:"Curtains",ru:"Шторы",de:"Vorhänge",fr:"Des Rideaux",it:"Le Tende",nl:"Gordijnen",pl:"Zasłony",pt:"Cortinas",es:"Cortinas","zh-cn":"窗帘"},icon:"Curtains.svg"},{_id:"sconce",name:{en:"Sconce",ru:"Настенный светильник",de:"Wandlampe",fr:"Sconce",it:"Sconce",nl:"Sconce",pl:"Kinkiety",pt:"Arandelas",es:"Los Apliques","zh-cn":"壁灯"},icon:"Sconces.svg"},{_id:"washing_machine",name:{en:"Washing Machine",ru:"Стиральная машина",de:"Waschmaschine",fr:"Machines À Laver",it:"Lavatrici",nl:"Wasmachines",pl:"Pralki",pt:"Máquinas De Lavar Roupas",es:"Lavadoras","zh-cn":"洗衣机"},icon:"Washing Machines.svg"},{_id:"water",name:{en:"Water",ru:"Вода",de:"Wasser",fr:"L'Eau",it:"Acqua",nl:"Water",pl:"Woda",pt:"Água",es:"Agua","zh-cn":"水"},icon:"Water.svg"},{_id:"water_heater",name:{en:"Water Heater",ru:"Нагреватель воды",de:"Wasserkocher",fr:"Chauffe-Eau",it:"Scaldabagno",nl:"Waterkoker",pl:"Podgrzewacz Wody",pt:"Aquecedor De Água",es:"Calentador De Agua","zh-cn":"热水器"},icon:"Water Heater.svg"},{_id:"water_consumption",name:{en:"Water Consumption",ru:"Потребление воды",de:"Wasserverbrauch",fr:"Consommation D'Eau",it:"Consumo D'Acqua",nl:"Waterverbruik",pl:"Konsumpcja Wody",pt:"Consumo De Água",es:"Consumo De Agua","zh-cn":"耗水量"},icon:"Water Consumption.svg"},{_id:"weather",name:{en:"Weather",ru:"Погода",de:"Wetter",fr:"La Météo",it:"Tempo Metereologico",nl:"Weer",pl:"Pogoda",pt:"Clima",es:"Tiempo","zh-cn":"天气"},icon:"Weather.svg"}],Lce=[{_id:"storeroom",name:{en:"Storeroom",ru:"Кладовая",de:"Abstellraum",fr:"Débarras",it:"Dispensa",nl:"Bergplaats",pl:"Magazyn",pt:"Despensa",es:"Trastero","zh-cn":"库房"},icon:"Storeroom.svg"},{_id:"second_floor",name:{en:"Second floor",ru:"Второй этаж",de:"Erster OG",pt:"Primeiro andar",nl:"Eerste verdieping",fr:"Premier étage",it:"Primo piano",es:"Primer piso",pl:"Pierwsze piętro","zh-cn":"第一层"},icon:"Second Floor.svg"},{_id:"dressing_room",name:{en:"Dressing Room",ru:"Гардеробная",de:"Ankleide",fr:"Vestiaire",it:"Camerino",nl:"Kleedkamer",pl:"Przebieralnia",pt:"Provador",es:"Vestidor","zh-cn":"更衣室"},icon:"Dressing Room.svg"},{_id:"workspace",name:{en:"Workspace",ru:"Рабочая Среда",de:"Arbeitszimmer",fr:"Espace De Travail",it:"Area Di Lavoro",nl:"Workspace",pl:"Workspace",pt:"Área De Trabalho",es:"Espacio De Trabajo","zh-cn":"工作区"},icon:"Workspace.svg"},{_id:"driveway",name:{en:"Driveway",ru:"Дорога",de:"Auffahrt",fr:"Allée",it:"Viale",nl:"Pad",pl:"Podjazd",pt:"Entrada Da Garagem",es:"Entrada De Coches","zh-cn":"车道"},icon:"Driveway.svg"},{_id:"outdoors",name:{en:"Outdoors",ru:"На Улице",de:"Außenbereich",fr:"En Plein Air",it:"All'Aperto",nl:"Buitenshuis",pl:"Na Dworze",pt:"Ao Ar Livre",es:"Al Aire Libre","zh-cn":"户外"},icon:"Outdoors.svg"},{_id:"bathroom",name:{en:"Bathroom",ru:"Ванная Комната",de:"Badezimmer",fr:"Salle De Bains",it:"Bagno",nl:"Badkamer",pl:"Łazienka",pt:"Banheiro",es:"Baño","zh-cn":"浴室"},icon:"Bathroom.svg"},{_id:"balcony",name:{en:"Balcony",ru:"Балкон",de:"Balkon",fr:"Balcon",it:"Balcone",nl:"Balkon",pl:"Balkon",pt:"Sacada",es:"Balcón","zh-cn":"阳台"},icon:"Balcony.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"carport",name:{en:"Carport",ru:"Навес",de:"Carport",fr:"Carport",it:"Posto Auto Coperto",nl:"Carport",pl:"Wiata",pt:"Telheiro",es:"Cochera","zh-cn":"车棚"},icon:"Carport.svg"},{_id:"attic",name:{en:"Attic",ru:"Чердак",de:"Dachgeschoss",fr:"Grenier",it:"Attico",nl:"Zolder",pl:"Poddasze",pt:"Sótão",es:"Ático","zh-cn":"阁楼"},icon:"Attic.svg"},{_id:"hall",name:{en:"Hall",ru:"Зал",de:"Diele",fr:"Salle",it:"Sala",nl:"Hal",pl:"Sala",pt:"Corredor",es:"Sala","zh-cn":"大厅"},icon:"Hall.svg"},{_id:"entrance",name:{en:"Entrance",ru:"Вход",de:"Eingang",fr:"Entrée",it:"Ingresso",nl:"Ingang",pl:"Wejście",pt:"Entrada",es:"Entrada","zh-cn":"入口"},icon:"Entrance.svg"},{_id:"ground_floor",name:{en:"Ground Floor",ru:"Первый Этаж",de:"Erdgeschoss",fr:"Rez-De-Chaussée",it:"Piano Terra",nl:"Begane Grond",pl:"Parter",pt:"Térreo",es:"Planta Baja","zh-cn":"一楼"},icon:"Ground Floor.svg"},{_id:"dining_area",name:{en:"Dining Area",ru:"Столовая",de:"Essbereich",fr:"Salle À Manger",it:"Zona Pranzo",nl:"Eethoek",pl:"Jadalnia",pt:"Área De Refeições",es:"Comedor","zh-cn":"用餐区"},icon:"Dining Area.svg"},{_id:"dining_room",name:{en:"Dining Room",ru:"Столовая",de:"Esszimmer",fr:"Salle À Manger",it:"Sala Da Pranzo",nl:"Eetkamer",pl:"Jadalnia",pt:"Sala De Jantar",es:"Comedor","zh-cn":"饭厅"},icon:"Dining Room.svg"},{_id:"gym",name:{en:"Gym",ru:"Спортзал",de:"Fitnessraum",fr:"Gym",it:"Palestra",nl:"Sportschool",pl:"Siłownia",pt:"Ginásio",es:"Gimnasio","zh-cn":"健身房"},icon:"Gym.svg"},{_id:"gallery",name:{en:"Gallery",ru:"Галерея",de:"Galerie",fr:"Galerie",it:"Galleria",nl:"Galerij",pl:"Galeria",pt:"Galeria",es:"Galería","zh-cn":"画廊"},icon:"Gallery.svg"},{_id:"garage",name:{en:"Garage",ru:"Гараж",de:"Garage",fr:"Garage",it:"Box Auto",nl:"Garage",pl:"Garaż",pt:"Garagem",es:"Garaje","zh-cn":"车库"},icon:"Garage.svg"},{_id:"wardrobe",name:{en:"Wardrobe",ru:"Гардероб",de:"Garderobe",fr:"Penderie",it:"Armadio",nl:"Garderobe",pl:"Szafa",pt:"Guarda Roupa",es:"Armario","zh-cn":"衣柜"},icon:"Wardrobe.svg"},{_id:"garden",name:{en:"Garden",ru:"Сад",de:"Garten",fr:"Jardin",it:"Giardino",nl:"Tuin",pl:"Ogród",pt:"Jardim",es:"Jardín","zh-cn":"花园"},icon:"Garden.svg"},{_id:"summer_house",name:{en:"Summer House",ru:"Дача",de:"Gartenhaus",fr:"Maison D'Été",it:"Casa Estiva",nl:"Zomerhuis",pl:"Domek Letniskowy",pt:"Summer House",es:"Casa De Verano","zh-cn":"凉亭"},icon:"Summer House.svg"},{_id:"guest_bathroom",name:{en:"Guest Bathroom",ru:"Гостевая Комната",de:"Gäste-WC",fr:"Salle De Bains Invité",it:"Guest Bathroom",nl:"Gastenbadkamer",pl:"Łazienka Gościnna",pt:"Banheiro De Hóspedes",es:"Baño De Visitas","zh-cn":"客用浴室"},icon:"Guest Bathroom.svg"},{_id:"guest_room",name:{en:"Guest Room",ru:"Гостевая Комната",de:"Gästezimmer",fr:"Chambre D'Amis",it:"Stanza Degli Ospiti",nl:"Guest Room",pl:"Pokój Gościnny",pt:"Quarto De Hóspedes",es:"Habitación De Huéspedes","zh-cn":"客房"},icon:"Guest Room.svg"},{_id:"laundry_room",name:{en:"Laundry Room",ru:"Прачечная",de:"Hauswirtschaftsraum",fr:"Buanderie",it:"Lavanderia",nl:"Wasruimte",pl:"Pralnia",pt:"Lavandaria",es:"Cuarto De Lavado","zh-cn":"洗衣房"},icon:"Laundry Room.svg"},{_id:"home_theater",name:{en:"Home Theater",ru:"Домашний Театр",de:"Heimkino",fr:"Cinéma Maison",it:"Home Theater",nl:"Thuisbioscoop",pl:"Kino Domowe",pt:"Cinema Em Casa",es:"Cine En Casa","zh-cn":"家庭电影院"},icon:"Home Theater.svg"},{_id:"boiler_room",name:{en:"Boiler Room",ru:"Бойлерная",de:"Heizungsraum",fr:"Chaufferie",it:"Locale Caldaia",nl:"Boiler Room",pl:"Kotłownia",pt:"Sala Da Caldeira",es:"Sala De Calderas","zh-cn":"锅炉房"},icon:"Boiler Room.svg"},{_id:"chamber",name:{en:"Chamber",ru:"Камера",de:"Kammer",fr:"Chambre",it:"Camera",nl:"Kamer",pl:"Izba",pt:"Câmara",es:"Cámara","zh-cn":"商会"},icon:"Chamber.svg"},{_id:"basement,_cellar",name:{en:"Basement, Cellar",ru:"Подвал, Погреб",de:"Keller",fr:"Sous-Sol, Cave",it:"Taverna, Cantina",nl:"Kelder, Kelder",pl:"Piwnica, Piwnica",pt:"Porão, Adega",es:"Sótano, Bodega","zh-cn":"地下室,地窖"},icon:"Basement.svg"},{_id:"nursery",name:{en:"Nursery",ru:"Питомник",de:"Kinderzimmer",fr:"Garderie",it:"Asilo",nl:"Kinderkamer",pl:"Żłobek",pt:"Berçário",es:"Guardería","zh-cn":"苗圃"},icon:"Nursery.svg"},{_id:"corridor",name:{en:"Corridor",ru:"Коридор",de:"Korridor",fr:"Couloir",it:"Corridoio",nl:"Gang",pl:"Korytarz",pt:"Corredor",es:"Corredor","zh-cn":"走廊"},icon:"Corridor.svg"},{_id:"kitchen",name:{en:"Kitchen",ru:"Кухня",de:"Küche",fr:"Cuisine",it:"Cucina",nl:"Keuken",pl:"Kuchnia",pt:"Cozinha",es:"Cocina","zh-cn":"厨房"},icon:"Kitchen.svg"},{_id:"upstairs",name:{en:"Upstairs",ru:"Вверх По Лестнице",de:"Obergeschoss",fr:"En Haut",it:"Di Sopra",nl:"Boven",pl:"Na Górę",pt:"Andar De Cima",es:"Piso Superior","zh-cn":"楼上"},icon:"Upstairs.svg"},{_id:"office",name:{en:"Office",ru:"Офис",de:"Office",fr:"Bureau",it:"Ufficio",nl:"Kantoor",pl:"Gabinet",pt:"Escritório",es:"Oficina","zh-cn":"办公室"},icon:"Office.svg"},{_id:"pool",name:{en:"Pool",ru:"Бассейн",de:"Pool",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"水池"},icon:"Pool.svg"},{_id:"rear_wall",name:{en:"Rear Wall",ru:"Задняя Стенка",de:"Rückwand",fr:"Paroi Arrière",it:"Parete Posteriore",nl:"Achterwand",pl:"Tylna Ściana",pt:"Parede Traseira",es:"Pared Posterior","zh-cn":"后墙"},icon:"Rear Wall.svg"},{_id:"barn",name:{en:"Barn",ru:"Амбар",de:"Scheune",fr:"Grange",it:"Fienile",nl:"Schuur",pl:"Stodoła",pt:"Celeiro",es:"Granero","zh-cn":"谷仓"},icon:"Barn.svg"},{_id:"sleeping_area",name:{en:"Sleeping Area",ru:"Спальное Место",de:"Schlafbereich",fr:"Coin Montagne",it:"Area Sleeping",nl:"Sleeping Area",pl:"Powierzchnia Spania",pt:"Sleeping Area",es:"Área De Dormir","zh-cn":"睡眠区"},icon:"Sleeping Area.svg"},{_id:"bedroom",name:{en:"Bedroom",ru:"Спальная Комната",de:"Schlafzimmer",fr:"Chambre",it:"Camera Da Letto",nl:"Slaapkamer",pl:"Sypialnia",pt:"Quarto",es:"Cuarto","zh-cn":"卧室"},icon:"Bedroom.svg"},{_id:"shed",name:{en:"Shed",ru:"Сбрасывать",de:"Schuppen",fr:"Hangar",it:"Capannone",nl:"Schuur",pl:"Budka",pt:"Cabana",es:"Cobertizo","zh-cn":"棚"},icon:"Shed.svg"},{_id:"swimming_pool",name:{en:"Swimming Pool",ru:"Плавательный Бассейн",de:"Schwimmbad",fr:"Piscine",it:"Piscina",nl:"Zwembad",pl:"Basen",pt:"Piscina",es:"Piscina","zh-cn":"游泳池"},icon:"Swimming Pool.svg"},{_id:"dining",name:{en:"Dining",ru:"Обеденный",de:"Speis",fr:"À Manger",it:"Cenare",nl:"Dining",pl:"Jadalnia",pt:"Jantar",es:"Comida","zh-cn":"用餐"},icon:"Dining.svg"},{_id:"playroom",name:{en:"Playroom",ru:"Игровая Комната",de:"Spielzimmer",fr:"Salle De Jeux",it:"Stanza Dei Giochi",nl:"Speelkamer",pl:"Pokój Zabaw",pt:"Sala De Jogos",es:"Cuarto De Jugar","zh-cn":"游戏室"},icon:"Playroom.svg"},{_id:"stairway",name:{en:"Stairway",ru:"Лестница",de:"Treppe",fr:"Escalier",it:"Scala",nl:"Trap",pl:"Klatka Schodowa",pt:"Escada",es:"Escalera","zh-cn":"楼梯"},icon:"Stairway.svg"},{_id:"equipment_room",name:{en:"Equipment Room",ru:"Оборудование Номера",de:"Technikraum",fr:"Salle D'Équipement",it:"Stanza Degli Attrezzi",nl:"Technische Ruimte",pl:"Wyposażenie Pokoi",pt:"Sala De Equipamentos",es:"Cuarto De Equipos","zh-cn":"机房"},icon:"Equipment Room.svg"},{_id:"terrace",name:{en:"Terrace",ru:"Терраса",de:"Terrasse",fr:"Terrasse",it:"Terrazza",nl:"Terras",pl:"Taras",pt:"Terraço",es:"Terraza","zh-cn":"阳台"},icon:"Terrace.svg"},{_id:"toilet",name:{en:"Toilet",ru:"Туалет",de:"Toilette",fr:"Toilette",it:"Gabinetto",nl:"Toilet",pl:"Toaleta",pt:"Banheiro",es:"Inodoro","zh-cn":"洗手间"},icon:"Toilet.svg"},{_id:"stairwell",name:{en:"Stairwell",ru:"Лестничная клетка",de:"Treppenhaus",fr:"Cage D'Escalier",it:"Tromba Delle Scale",nl:"Trappenhuis",pl:"Klatka Schodowa",pt:"Caixa De Escada",es:"Hueco De Escalera","zh-cn":"楼梯间"},icon:"Stairwell.svg"},{_id:"locker_room",name:{en:"Locker Room",ru:"Камера Хранения",de:"Umkleideraum",fr:"Vestiaire",it:"Spogliatoio",nl:"Kleedkamer",pl:"Szatnia",pt:"Vestiário",es:"Vestuario","zh-cn":"更衣室"},icon:"Locker Room.svg"},{_id:"basement",name:{en:"Basement",ru:"Подвал",de:"Untergeschoss",fr:"Sous-Sol",it:"Seminterrato",nl:"Kelder",pl:"Piwnica",pt:"Porão",es:"Sótano","zh-cn":"地下室"},icon:"Basement.svg"},{_id:"front_yard",name:{en:"Front Yard",ru:"Передний Двор",de:"Vorgarten",fr:"Front Yard",it:"Cortile",nl:"Voortuin",pl:"Podwórko",pt:"Jardim Da Frente",es:"Patio Delantero","zh-cn":"前院"},icon:"Front Yard.svg"},{_id:"anteroom",name:{en:"Anteroom",ru:"Передняя",de:"Vorraum",fr:"Antichambre",it:"Anticamera",nl:"Voorkamer",pl:"Przedpokój",pt:"Ante-Sala",es:"Antesala","zh-cn":"接待室"},icon:"Anteroom.svg"},{_id:"washroom",name:{en:"Washroom",ru:"Уборная",de:"Waschraum",fr:"Toilettes",it:"Bagno",nl:"Waskamer",pl:"Umywalnia",pt:"Banheiro",es:"Baño","zh-cn":"卫生间"},icon:"Washroom.svg"},{_id:"wc",name:{en:"Wc",ru:"Туалет",de:"WC",fr:"Toilettes",it:"Bagno",nl:"Wc",pl:"Toaleta",pt:"Banheiro",es:"Wc","zh-cn":"厕所"},icon:"Wc.svg"},{_id:"workshop",name:{en:"Workshop",ru:"Мастерская",de:"Werkstatt",fr:"Atelier",it:"Laboratorio",nl:"Werkplaats",pl:"Warsztat",pt:"Oficina",es:"Taller","zh-cn":"作坊"},icon:"Workshop.svg"},{_id:"windscreen",name:{en:"Windscreen",ru:"Ветровое Стекло",de:"Windfang",fr:"Pare-Brise",it:"Parabrezza",nl:"Voorruit",pl:"Szyba Przednia",pt:"Pára-Brisas",es:"Parabrisas","zh-cn":"风档"},icon:"Windscreen.svg"},{_id:"living_area",name:{en:"Living Area",ru:"Жилая Площадь",de:"Wohnbereich",fr:"Salon",it:"Zona Giorno",nl:"Living Area",pl:"Powierzchnia Mieszkalna",pt:"Sala-De-Estar",es:"Sala De Estar","zh-cn":"生活区域"},icon:"Living Area.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"},{_id:"living_room",name:{en:"Living Room",ru:"Гостинная",de:"Wohnzimmer",fr:"Le Salon",it:"Soggiorno",nl:"Woonkamer",pl:"Salon",pt:"Sala De Estar",es:"Sala De Estar","zh-cn":"客厅"},icon:"Living Room.svg"}];class jce extends b.Component{constructor(e){super(e),this.state={opened:!1,names:[],filter:"",icons:null,loading:!1,isAnyName:!1}}loadAllIcons(){this.state.loading||this.state.icons||this.setState({loading:!0},()=>{const e=[],t=[];if(this.props.icons){const s=this.props.icons.map((o,r)=>{let M;if(typeof o=="object"){if(M=o.icon||o.src||o.href||"",t[r]=typeof o.name=="object"?o.name[this.props.lang]||o.name.en||o._id||"":o.name||"",!t[r]){const a=M.split(".");a.pop(),t[r]=a[a.length-1]}}else M=o;return M?M.startsWith("data:")?(e[r]=M,Promise.resolve()):S.getSvg(M).then(a=>e[r]=a):Promise.resolve()});Promise.all(s).catch(o=>console.error(o)).then(()=>this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(o=>o)}))}else{let s=this.props.onlyRooms||!this.props.onlyRooms&&!this.props.onlyDevices?Lce:null;if(s&&(s.forEach(o=>{o.name&&typeof o.name=="object"&&(o.name=o.name[this.props.lang]||o.name.en||o._id),o.name=o.name||o._id}),s=s.filter((o,r)=>!(s!=null&&s.find((M,a)=>r!==a&&M.icon===o.icon&&M.name===o.name))),s.forEach((o,r)=>{t[r]=o.name,e[r]=`data:image/svg+xml;base64,${Nce[o.icon.replace(/\.svg$/,"")]}`})),s=this.props.onlyDevices||!this.props.onlyRooms&&!this.props.onlyDevices?lce:null,s){const o=e.length;s&&s.forEach(r=>{r.name&&typeof r.name=="object"&&(r.name=r.name[this.props.lang]||r.name.en||r._id),r.name=r.name||r._id}),s=s.filter((r,M)=>!(s!=null&&s.find((a,u)=>M!==u&&a.icon===r.icon&&a.name===r.name))),s.forEach((r,M)=>{t[M+o]=r.name,e[M+o]=`data:image/svg+xml;base64,${pae[r.icon.replace(/\.svg$/,"")]}`})}this.setState({icons:e,loading:!1,names:t,isAnyName:!!t.find(o=>o)})}})}render(){return this.state.loading?n.createElement(g.CircularProgress,null):n.createElement(n.Fragment,null,n.createElement(g.Button,{color:"grey",variant:"outlined",title:this.props.t("ra_Select predefined icon"),onClick:()=>this.setState({opened:!0},()=>this.loadAllIcons()),style:{minWidth:40,marginRight:8}},"..."),this.state.opened?n.createElement(g.Dialog,{onClose:()=>this.setState({opened:!1}),open:!0},n.createElement(g.DialogTitle,null,this.props.t("ra_Select predefined icon"),this.state.isAnyName?n.createElement(g.TextField,{variant:"standard",margin:"dense",style:{marginLeft:20},value:this.state.filter,onChange:e=>this.setState({filter:e.target.value.toLowerCase()}),placeholder:this.props.t("ra_Filter"),slotProps:{input:{endAdornment:this.state.filter?n.createElement(g.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({filter:""})},n.createElement(m.Clear,null)):void 0}}}):null),n.createElement(g.DialogContent,null,n.createElement("div",{style:{width:"100%",textAlign:"center"}},this.state.icons&&this.state.icons.map((e,t)=>!this.state.filter||this.state.names[t]&&this.state.names[t].toLowerCase().includes(this.state.filter)?n.createElement(g.Tooltip,{title:this.state.names[t]||"",key:t,slotProps:{popper:{sx:{pointerEvents:"none"}}}},n.createElement(g.IconButton,{onClick:()=>this.setState({opened:!1},()=>{const s=this.props.onSelect||this.props.onChange;s&&s(e)}),size:"large"},n.createElement(Ie,{src:e,alt:t.toString(),style:{width:32,height:32,borderRadius:5}}))):null))),n.createElement(g.DialogActions,null,n.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({opened:!1}),startIcon:n.createElement(m.Close,null)},this.props.t("ra_Close")))):null)}}const Mt={formContainer:{display:"flex",justifyContent:"left",alignItems:"center"},formControl:{display:"flex",padding:24,flexGrow:1e3},divContainer:{width:64,height:32,whiteSpace:"nowrap",lineHeight:"32px",marginRight:8},dragField:{textAlign:"center",display:"table",minHeight:90,width:"calc(100% - 60px)",border:"2px dashed #777",borderRadius:10,padding:4},formIcon:{margin:10,opacity:.6},text:{display:"table-cell",verticalAlign:"middle"}};function a4e(i){var a,u,N,l;const e=i.icon,t=i.onChange,s=b.useCallback(c=>{const L=new FileReader;L.addEventListener("load",()=>t(L.result),!1),c[0]&&L.readAsDataURL(c[0])},[t]),{getRootProps:o,getInputProps:r,isDragActive:M}=oc({onDrop:s});return n.createElement("div",{style:Mt.formContainer},e?n.createElement(e,{style:Mt.formIcon}):null,n.createElement(g.FormControl,{variant:"standard",style:{...Mt.formControl,padding:3}},n.createElement(g.InputLabel,{shrink:!0,sx:(a=i.customStyles)!=null&&a.label?{"&.MuiInputLabel-root":i.customStyles.label}:void 0,classes:{root:(u=i.customClasses)==null?void 0:u.label}},i.label),n.createElement("div",{style:Mt.formContainer},i.value?n.createElement("div",{style:Mt.divContainer},n.createElement(Ie,{style:{...i.previewStyle,...((N=i.customStyles)==null?void 0:N.icon)||void 0},src:i.value,className:S.clsx(i.previewClassName,(l=i.customClasses)==null?void 0:l.icon)}),!i.disabled&&n.createElement(g.IconButton,{style:{verticalAlign:"top"},title:d.t("ra_Clear icon"),size:"small",onClick:()=>i.onChange("")},n.createElement(m.Clear,null))):!i.disabled&&n.createElement(jce,{icons:i.icons,onlyRooms:i.onlyRooms,onlyDevices:i.onlyDevices,onSelect:c=>i.onChange(c),t:d.t,lang:d.getLanguage()}),!i.disabled&&n.createElement("div",{...o(),style:{...Mt.dragField,...M?{backgroundColor:"rgba(0, 255, 0, 0.1)"}:{cursor:"pointer"}}},n.createElement("input",{...r()}),M?n.createElement("span",{style:Mt.text},d.t("ra_Drop the files here...")):n.createElement("span",{style:Mt.text},d.t("ra_Drag 'n' drop some files here, or click to select files"))))))}function gce(i){const e=document.createElement("div");e.innerHTML=i;const t=e.firstElementChild;return t!=null&&t.remove?t.remove():t&&e.removeChild(t),e.remove(),t}function Tce(i){const e={};if(!i)return e;for(let t,s=0;sr[1].toUpperCase()),e[t]=i[s].value}return e}class qs extends b.Component{svg;static REMOTE_SERVER=window.location.hostname.includes("iobroker.in");static REMOTE_PREFIX=window.location.pathname.substring(0,window.location.pathname.lastIndexOf("/")+1);constructor(e){var t;super(e),this.state={svg:!!((t=this.props.src)!=null&&t.startsWith("data:")),created:!0,color:this.props.color||"",src:this.props.src||"",imgError:!1,showError:!!this.props.showError},this.svg=this.state.svg&&this.state.src?this.getSvgFromData(this.state.src):null}static getDerivedStateFromProps(e,t){var r;const s={};let o=!1;return e&&t&&e.src!==t.src&&(s.src=e.src,s.svg=(r=e.src)==null?void 0:r.startsWith("data:"),s.created=!1,o=!0),e&&t&&e.color!==t.color&&(s.color=e.color,s.created=!1,o=!0),e&&t&&e.showError!==t.showError&&(s.showError=e.showError,o=!0),o?s:null}getSvgFromData(e){const t="data:image/svg+xml;base64,";if(!e.startsWith(t))return null;e=e.substring(t.length);try{e=atob(e);const s=gce(e),o=s.innerHTML,r=Tce(s.attributes);return s.remove(),n.createElement(g.Box,{component:"svg",sx:this.props.sx,className:this.props.className,style:this.state.color?{color:this.state.color}:void 0,...r,dangerouslySetInnerHTML:{__html:o}})}catch{}return null}render(){if(this.state.svg)return this.state.created||setTimeout(()=>{this.svg=this.state.src?this.getSvgFromData(this.state.src):null,this.setState({created:!0})},50),this.svg;if(this.state.src){if(this.state.imgError||!this.state.src)return n.createElement(Fo,{className:this.props.className});if(qs.REMOTE_SERVER&&!this.state.src.startsWith("http://")&&!this.state.src.startsWith("https://")){let e=(this.props.imagePrefix||"")+this.state.src;return e.startsWith("./")?e=qs.REMOTE_PREFIX+e.substring(2):e.startsWith("/")||(e=qs.REMOTE_PREFIX+e),n.createElement(g.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:`https://remote-files.iobroker.in${e}`,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return n.createElement(g.Box,{component:"img",sx:this.props.sx,className:this.props.className,src:(this.props.imagePrefix||"")+this.state.src,alt:"",onError:()=>this.props.showError?this.setState({imgError:!0}):this.setState({src:""})})}return null}}var R={},zi={},dt={};Object.defineProperty(dt,"__esModule",{value:!0});dt.StateType=dt.Types=void 0;var yM;(function(i){i.unknown="unknown",i.airCondition="airCondition",i.blind="blind",i.blindButtons="blindButtons",i.button="button",i.buttonSensor="buttonSensor",i.camera="camera",i.chart="chart",i.cie="cie",i.ct="ct",i.dimmer="dimmer",i.door="door",i.fireAlarm="fireAlarm",i.floodAlarm="floodAlarm",i.gate="gate",i.hue="hue",i.humidity="humidity",i.illuminance="illuminance",i.image="image",i.info="info",i.instance="instance",i.light="light",i.location="location",i.locationOne="locationOne",i.lock="lock",i.media="media",i.motion="motion",i.rgb="rgb",i.rgbSingle="rgbSingle",i.rgbwSingle="rgbwSingle",i.slider="slider",i.socket="socket",i.temperature="temperature",i.thermostat="thermostat",i.vacuumCleaner="vacuumCleaner",i.volume="volume",i.volumeGroup="volumeGroup",i.warning="warning",i.weatherCurrent="weatherCurrent",i.weatherForecast="weatherForecast",i.window="window",i.windowTilt="windowTilt"})(yM||(dt.Types=yM={}));var DM;(function(i){i.Number="number",i.String="string",i.Boolean="boolean"})(DM||(dt.StateType=DM={}));var De={};Object.defineProperty(De,"__esModule",{value:!0});De.checkEnum=ra;De.roleOrEnum=ss;De.roleOrEnumLight=yce;De.roleOrEnumBlind=Dce;De.roleOrEnumGate=dce;De.roleOrEnumWindow=zce;De.roleOrEnumDoor=Ice;De.getEnums=wce;De.getAllStatesInChannel=Cce;De.getAllStatesInDevice=hce;De.getObjectsBelowId=ja;De.getFunctionEnums=Ace;De.getParentId=pce;function ra(i,e){let t=!1;return i&&i.forEach(s=>{const o=s.lastIndexOf(".");o!==-1&&(s=s.substring(o+1));for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&e[r].find(M=>M.test(s)))return t=!0,!1}),t}function ss(i,e,t,s){return i.common.role&&(t!=null&&t.includes(i.common.role))?!0:ra(e,s)}const Ma={en:[/lights?/i,/lamps?/i,/ceilings?/i],de:[/licht(er)?/i,/lampen?/i,/beleuchtung(en)?/i],ru:[/свет/i,/ламп[аы]/i,/торшеры?/,/подсветк[аи]/i,/лампочк[аи]/i,/светильники?/i]},na=["switch.light","dimmer","value.dimmer","level.dimmer","sensor.light","state.light"];function yce(i,e){return ss(i,e,na,Ma)}const Mi={en:[/blinds?/i,/windows?/i,/shutters?/i],de:[/rollladen?/i,/fenstern?/i,/beschattung(en)?/i,/jalousien?/i],ru:[/ставни/i,/рольставни/i,/окна|окно/,/жалюзи/i]},aa=["blind","level.blind","value.blind","action.stop","button.stop","button.stop.blind","button.open.blind","button.close.blind","level.tilt","value.tilt","button.tilt.open","button.tilt.close","button.tilt.stop"];function Dce(i,e){return ss(i,e,aa,Mi)}const ca={en:[/gates?/i],de:[/^toren$/i,/^tor$/i],ru:[/ворота/i]},ua=["gate","value.gate","switch.gate","action.stop","button.stop"];function dce(i,e){return ss(i,e,ua,ca)}const Na=["window","state.window","sensor.window","value.window"];function zce(i,e){return ss(i,e,Na,Mi)}const la={en:[/doors?/i,/gates?/i,/wickets?/i,/entry|entries/i],de:[/^türe?/i,/^tuere?/i,/^tore?$/i,/einfahrt(en)?/i,/pforten?/i],ru:[/двери|дверь/i,/ворота/i,/калитка|калитки/,/въезды?/i,/входы?/i]},La=["door","state.door","sensor.door"];function Ice(i,e){return ss(i,e,La,la)}function wce(){return{door:{roles:La,words:la},window:{roles:Na,words:Mi},blind:{roles:aa,words:Mi},gate:{roles:ua,words:ca},light:{roles:na,words:Ma}}}function Cce(i,e){const t=[],s=new RegExp(`^${e.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+$`);return i.forEach(o=>s.test(o)&&t.push(o)),t}function hce(i,e){const t=[],s=new RegExp(`^${e.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+\\.[^.]+$`);return i.forEach(o=>s.test(o)&&t.push(o)),t}function ja(i,e){const t=[];e+=".";let s=0,o=i.length-1,r=-1;for(;s<=o;){const M=Math.floor((s+o)/2);i[M]=i.length)return t;for(let M=r;M{e[M].common.members.includes(t)&&r.push(M)}),!r.length&&((o=e[t])===null||o===void 0?void 0:o.type)==="state"){const M=(0,Nt.getParentId)(t);e[M]&&(e[M].type==="channel"||e[M].type==="device")&&this.enums.forEach(a=>{e[a].common.members.includes(M)&&r.push(a)})}return r.length?r:null}static copyState(e,t){const s=t||JSON.parse(JSON.stringify(e));return s.original=e.original||e,"enums"in e&&e.enums&&(s.enums=e.enums),"role"in e&&e.role&&(s.role=e.role),"channelRole"in e&&e.channelRole&&(s.channelRole=e.channelRole),s}_testOneState(e){var t,s,o,r,M,a;const u=e.objects,N=e.pattern,l=e.state,c=e.channelStates,L=e.usedIds,j=e.usedInCurrentDevice,T=e.ignoreIndicators,D=e.ignoreEnums,I=e.sortedKeys;let C=e.result,E=!1;for(const A of c)if(!(l.name==="COVER"&&(C!=null&&C.states.find(_=>_.id&&_.name==="COVER")))){if(l.indicator&&T){const p=A.split(".").pop()||"";if(p&&T.includes(p))continue}if((l.indicator||!j.includes(A)&&(l.notSingle||!L.includes(A)))&&this._applyPattern(u,A,l,D,I)){if(C||(C=JSON.parse(JSON.stringify(nt.patterns[N])),e.result=C,C==null||C.states.forEach((_,p)=>xe.copyState(nt.patterns[N].states[p],_))),C.states.find(({id:_})=>_===A))E=!0;else for(const _ of C.states)if(_.name===l.name){if(_.id){let p;e.favorId&&(A===e.favorId?p=!0:_.id===e.favorId&&(p=!1));const z=(o=(s=(t=u[_.id])===null||t===void 0?void 0:t.common)===null||s===void 0?void 0:s.role)!==null&&o!==void 0?o:"",O=(a=(M=(r=u[A])===null||r===void 0?void 0:r.common)===null||M===void 0?void 0:M.role)!==null&&a!==void 0?a:"",k=_.defaultRole;if(k&&p===void 0&&(O===k?p=!0:z===k&&(p=!1)),p===void 0){const f=O.split("."),P=f.length,Y=z.split("."),V=Y.length;O===""||f[0]==="state"&&Y[0]!=="state"?p=!1:f[0]!=="state"&&Y[0]==="state"||P>V?p=!0:P1)){for(const _ of c)if(_!==A&&(l.indicator||!j.includes(_)&&(l.notSingle||!L.includes(_)))&&this._applyPattern(u,_,l,D,I))if(l.indicator||j.push(_),Array.isArray(l)){const p=xe.copyState(l[0]);p.id=_,C.states.push(p)}else{const p=xe.copyState(l);p.id=_,C.states.push(p)}}}}return E}static findParentChannelOrDevice(e,t){if(!e[t])return;const s=t.split("."),o=t;if(e[t].type==="state"&&(s.pop(),t=s.join(".")),s.length<=2)return t;const r=e[t];if((r==null?void 0:r.type)==="device")return t;s.pop();const M=s.join("."),a=e[M];if(!a)return r?t:o;if(a.type==="device"||s.length<=2)return M;if(r.type==="channel")return t;s.pop();const u=s.join("."),N=e[u];return!N||N.type!=="device"&&N.type!=="channel"?M:u}static getChannelOrDeviceStates(e,t,s,o=!1){var r;const M=(r=e[t])===null||r===void 0?void 0:r.type;switch(M){case void 0:return[...(0,Nt.getObjectsBelowId)(s,t)];case"state":case"channel":case"device":case"folder":if(o&&M!=="device"){const a=xe.findParentChannelOrDevice(e,t);return a?[...(0,Nt.getObjectsBelowId)(s,a)]:[t]}return M!=="state"?[...(0,Nt.getObjectsBelowId)(s,t)]:[t];default:return[t]}}static patternIsAllowed(e,t,s){if(!e)return!1;if(Array.isArray(e.type)){for(let o=0;o{const r=e.indexOf(s),M=e.indexOf(o);if(r===-1||M===-1)return;const a=e.splice(r,1);e.splice(M,0,...a)}),e}_detectNext(e){var t,s,o,r;const{objects:M,id:a,_usedIdsOptional:u=[],ignoreIndicators:N,prioritizedTypes:l,detectParent:c,allowedTypes:L,excludedTypes:j,_keysOptional:T}=e;let{_patternList:D}=e;e._usedIdsOptional=u;const I=xe.getChannelOrDeviceStates(M,a,T||[],c);if(!(!((t=M[a])===null||t===void 0)&&t.common)&&!I.length)return null;if(e._checkedPatterns=(s=e._checkedPatterns)!==null&&s!==void 0?s:[],!D){const A=Object.keys(nt.patterns).filter(_=>xe.patternIsAllowed(nt.patterns[_],L,j));D=l?this.sortTypes(A,l):A,e._patternList=D}const C={objects:M,channelStates:I,usedIds:u,ignoreIndicators:N||[],pattern:It.Types.unknown,usedInCurrentDevice:[],state:{},ignoreEnums:!!e.ignoreEnums,sortedKeys:T,favorId:e.detectParent?void 0:a},E=(o=M[a])===null||o===void 0?void 0:o.type;for(const A of D){if(e._checkedPatterns.includes(A))continue;e._checkedPatterns.push(A),delete C.result,C.pattern=A,C.usedInCurrentDevice=[];for(const p of nt.patterns[A].states){let z=!1;if(C.state=p,this._testOneState(C)&&(z=!0),p.required&&!z){delete C.result;break}}if(!xe.allRequiredStatesFound(C))continue;C.usedInCurrentDevice.forEach(p=>u.push(p));let _;if(E!=="device"){const p=(r=xe.findParentChannelOrDevice(M,a))!==null&&r!==void 0?r:a;if(M[p]&&(M[p].type==="channel"||M[p].type==="device")){_=(0,Nt.getObjectsBelowId)(T,p);for(const z of _)C.result.states.forEach((O,k)=>{!O.id&&(O.indicator||O.searchInParent)&&!O.noDeviceDetection&&this._applyPattern(M,z,O.original,!!e.ignoreEnums,C.sortedKeys)&&C.result&&(C.result.states[k].id=z)})}}if(C.result.states.forEach(p=>xe.cleanState(p,C.objects)),e.limitTypesToOneOf){for(const p of e.limitTypesToOneOf)if(p.includes(A))for(const z of p)z===A||e._checkedPatterns.includes(z)||e._checkedPatterns.push(z)}return C.result}return null}detect(e){var t;const{objects:s,id:o,ignoreCache:r,detectAllPossibleDevices:M}=e;let{_keysOptional:a,_usedIdsOptional:u}=e;if(!r&&this.cache[o]){const{allowedTypes:c=[],excludedTypes:L=[]}=e;if(!c.length&&!L.length)return this.cache[o];const j=this.cache[o].filter(({type:T})=>c.includes(T)&&!L.includes(T));if(j.length)return j}a?e._keysOptionalSorted||a.sort():(a=Object.keys(s),a.sort(),e._keysOptional=a),u&&!e.detectParent&&(u=[],e._usedIdsOptional=u),e.ignoreEnums===void 0&&((t=e.allowedTypes)===null||t===void 0?void 0:t.length)===1&&(e.ignoreEnums=!0),M&&(e.excludedTypes||(e.excludedTypes=[]),e.excludedTypes.includes(It.Types.info)||e.excludedTypes.push(It.Types.info)),e._checkedPatterns=[];const N=[];let l;for(;l=this._detectNext(e);)N.push(l),e.detectAllPossibleDevices&&(e._usedIdsOptional=[]);return this.cache[o]=N.length?N:null,this.cache[o]}static getPatterns(){const e={};return Object.keys(nt.patterns).forEach(t=>{const s=JSON.parse(JSON.stringify(nt.patterns[t]));s.states.forEach((o,r)=>{const M=nt.patterns[t].states[r];M.role&&(s.states[r].role=M.role.toString()),M.enums&&(s.states[r].enums=!0)}),e[t]=s}),e}}zi.ChannelDetector=xe;xe.getEnums=Nt.getEnums;(function(i){Object.defineProperty(i,"__esModule",{value:!0}),i.StateType=i.Types=void 0;const e=zi;i.default=e.ChannelDetector;var t=dt;Object.defineProperty(i,"Types",{enumerable:!0,get:function(){return t.Types}}),Object.defineProperty(i,"StateType",{enumerable:!0,get:function(){return t.StateType}})})(R);var ga={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},dM=n.createContext&&n.createContext(ga),mce=["attr","size","title"];function Oce(i,e){if(i==null)return{};var t=Ece(i,e),s,o;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(i);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(i,s)&&(t[s]=i[s])}return t}function Ece(i,e){if(i==null)return{};var t={};for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){if(e.indexOf(s)>=0)continue;t[s]=i[s]}return t}function ni(){return ni=Object.assign?Object.assign.bind():function(i){for(var e=1;en.createElement(e.tag,ai({key:t},e.attr),Ta(e.child)))}function v(i){return e=>n.createElement(fce,ni({attr:ai({},i.attr)},e),Ta(i.child))}function fce(i){var e=t=>{var{attr:s,size:o,title:r}=i,M=Oce(i,mce),a=o||t.size||"1em",u;return t.className&&(u=t.className),i.className&&(u=(u?u+" ":"")+i.className),n.createElement("svg",ni({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,s,M,{className:u,style:ai(ai({color:i.color||t.color},t.style),i.style),height:a,width:a,xmlns:"http://www.w3.org/2000/svg"}),r&&n.createElement("title",null,r),i.children)};return dM!==void 0?n.createElement(dM.Consumer,null,t=>e(t)):e(ga)}function kce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"},child:[]}]})(i)}function Yce(i){return v({attr:{t:"1569683928793",viewBox:"0 0 1024 1024",version:"1.1"},child:[{tag:"path",attr:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H212V212h200v200zM864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16z m-52 268H612V212h200v200zM864 544H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z m-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"},child:[]}]})(i)}function Qce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"},child:[]}]})(i)}function Uce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z"},child:[]}]})(i)}function vce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z"},child:[]}]})(i)}function bce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z"},child:[]}]})(i)}function $ce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"},child:[]}]})(i)}function Pce(i){return v({attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"},child:[]}]})(i)}function Wce(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M24 5.25v13a.75.75 0 0 1-1.136.643L16.5 15.075v2.175A1.75 1.75 0 0 1 14.75 19h-13A1.75 1.75 0 0 1 0 17.25v-11C0 5.284.784 4.5 1.75 4.5h13c.966 0 1.75.784 1.75 1.75v2.175l6.364-3.818A.75.75 0 0 1 24 5.25Zm-9 1a.25.25 0 0 0-.25-.25h-13a.25.25 0 0 0-.25.25v11c0 .138.112.25.25.25h13a.25.25 0 0 0 .25-.25v-11Zm1.5 7.075 6 3.6V6.575l-6 3.6Z"},child:[]}]})(i)}function Rce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"},child:[]}]})(i)}function Jce(i){return v({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"},child:[]}]})(i)}function Bce(i){return v({attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"},child:[]}]})(i)}function Fce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"},child:[]}]})(i)}function Gce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"},child:[]}]})(i)}function Hce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"},child:[]}]})(i)}function Vce(i){return v({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"},child:[]}]})(i)}function Zce(i){return v({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"},child:[]}]})(i)}function Xce(i){return v({attr:{viewBox:"0 0 416 512"},child:[{tag:"path",attr:{d:"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"},child:[]}]})(i)}function Kce(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"},child:[]}]})(i)}function qce(i){return v({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"},child:[]}]})(i)}function eue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"},child:[]}]})(i)}function tue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"},child:[]}]})(i)}function IM(i){return v({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"},child:[]}]})(i)}function sue(i){return v({attr:{viewBox:"0 0 384 512"},child:[{tag:"path",attr:{d:"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"},child:[]}]})(i)}function iue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"},child:[]}]})(i)}function oue(i){return v({attr:{viewBox:"0 0 576 512"},child:[{tag:"path",attr:{d:"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"},child:[]}]})(i)}function rue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"},child:[]}]})(i)}function Mue(i){return v({attr:{viewBox:"0 0 352 512"},child:[{tag:"path",attr:{d:"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"},child:[]}]})(i)}function wM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z"},child:[]}]})(i)}function nue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M11.07 12.85c.77-1.39 2.25-2.21 3.11-3.44.91-1.29.4-3.7-2.18-3.7-1.69 0-2.52 1.28-2.87 2.34L6.54 6.96C7.25 4.83 9.18 3 11.99 3c2.35 0 3.96 1.07 4.78 2.41.7 1.15 1.11 3.3.03 4.9-1.2 1.77-2.35 2.31-2.97 3.45-.25.46-.35.76-.35 2.24h-2.89c-.01-.78-.13-2.05.48-3.15zM14 20c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"},child:[]}]})(i)}function CM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z"},child:[]}]})(i)}function aue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},child:[]}]})(i)}function hM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"},child:[]}]})(i)}function cue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.54 5.54 13.77 7.3 12 5.54 10.23 7.3 8.46 5.54 12 2zm2.92 10-1.76-1.77L18.46 12l-1.76-1.77 1.76-1.77L22 12zm-10 2.92 1.77-1.76L12 18.46l1.77-1.76 1.77 1.76L12 22zm-2.92-10 1.76 1.77L5.54 12l1.76 1.77-1.76 1.77L2 12z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]}]})(i)}function uue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M8.4 18.2c.38.5.6 1.12.6 1.8 0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3c.44 0 .85.09 1.23.26l1.41-1.77a4.504 4.504 0 0 1-1.09-3.69l-2.03-.68A2.997 2.997 0 0 1 0 9.5c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .07 0 .14-.01.21l2.03.68a4.468 4.468 0 0 1 3.22-2.32V5.91A3.018 3.018 0 0 1 9 3c0-1.66 1.34-3 3-3s3 1.34 3 3c0 1.4-.96 2.57-2.25 2.91v2.16c1.4.23 2.58 1.11 3.22 2.32L18 9.71V9.5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-1.06 0-1.98-.55-2.52-1.37l-2.03.68a4.49 4.49 0 0 1-1.09 3.69l1.41 1.77c.38-.18.79-.27 1.23-.27 1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.68.22-1.3.6-1.8l-1.41-1.77c-1.35.75-3.01.76-4.37 0L8.4 18.2z"},child:[]}]})(i)}function AM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z"},child:[]}]})(i)}function Nue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17 6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z"},child:[]}]})(i)}function lue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(i)}function pM(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M16.56 8.94 7.62 0 6.21 1.41l2.38 2.38-5.15 5.15a1.49 1.49 0 0 0 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10 10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5zM2 20h20v4H2v-4z"},child:[]}]})(i)}function Lue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"M15 16v1.26l-6-3v-3.17L11.7 8H16V2h-6v4.9L7.3 10H3v6h5l7 3.5V22h6v-6z"},child:[]}]})(i)}function jue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"m17 16-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z"},child:[]}]})(i)}function gue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"path",attr:{d:"m21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z"},child:[]}]})(i)}function Tue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"},child:[]},{tag:"circle",attr:{cx:"12",cy:"19",r:"2"},child:[]},{tag:"path",attr:{d:"M10 3h4v12h-4z"},child:[]}]})(i)}function yue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"},child:[]},{tag:"path",attr:{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"},child:[]}]})(i)}function mM(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M3.89,17.6c0-0.99,0.31-1.88,0.93-2.65s1.41-1.27,2.38-1.49c0.26-1.17,0.85-2.14,1.78-2.88c0.93-0.75,2-1.12,3.22-1.12 c1.18,0,2.24,0.36,3.16,1.09c0.93,0.73,1.53,1.66,1.8,2.8h0.27c1.18,0,2.18,0.41,3.01,1.24s1.25,1.83,1.25,3 c0,1.18-0.42,2.18-1.25,3.01s-1.83,1.25-3.01,1.25H8.16c-0.58,0-1.13-0.11-1.65-0.34S5.52,21,5.14,20.62 c-0.38-0.38-0.68-0.84-0.91-1.36S3.89,18.17,3.89,17.6z M5.34,17.6c0,0.76,0.28,1.42,0.82,1.96s1.21,0.82,1.99,0.82h9.28 @@ -306,7 +306,7 @@ body { c0.65,0,1.21,0.23,1.68,0.7c0.47,0.47,0.7,1.02,0.7,1.66c0,0.6-0.21,1.12-0.62,1.57s-0.92,0.7-1.53,0.77c-0.1,0-0.15,0.05-0.15,0.16 v1.13c0,0.11,0.05,0.16,0.15,0.16c1.01-0.06,1.86-0.46,2.55-1.19s1.04-1.6,1.04-2.6c0-1.06-0.37-1.96-1.12-2.7 c-0.75-0.75-1.65-1.12-2.7-1.12h-0.15c-0.26-1-0.81-1.82-1.65-2.47c-0.83-0.65-1.77-0.97-2.8-0.97C16.28,7.29,15.11,7.82,14.19,8.88 - z`},child:[]}]})(i)}function Tue(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M4.37,14.62c0-0.24,0.08-0.45,0.25-0.62c0.17-0.16,0.38-0.24,0.6-0.24h2.04c0.23,0,0.42,0.08,0.58,0.25 + z`},child:[]}]})(i)}function Due(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M4.37,14.62c0-0.24,0.08-0.45,0.25-0.62c0.17-0.16,0.38-0.24,0.6-0.24h2.04c0.23,0,0.42,0.08,0.58,0.25 c0.15,0.17,0.23,0.37,0.23,0.61S8,15.06,7.85,15.23c-0.15,0.17-0.35,0.25-0.58,0.25H5.23c-0.23,0-0.43-0.08-0.6-0.25 C4.46,15.06,4.37,14.86,4.37,14.62z M7.23,21.55c0-0.23,0.08-0.43,0.23-0.61l1.47-1.43c0.15-0.16,0.35-0.23,0.59-0.23 c0.24,0,0.44,0.08,0.6,0.23s0.24,0.34,0.24,0.57c0,0.24-0.08,0.46-0.24,0.64L8.7,22.14c-0.41,0.32-0.82,0.32-1.23,0 @@ -327,7 +327,7 @@ body { c0.24,0,0.44,0.08,0.6,0.25c0.17,0.17,0.25,0.37,0.25,0.6c0,0.25-0.08,0.46-0.24,0.62l-1.46,1.43c-0.18,0.16-0.38,0.24-0.6,0.24 c-0.23,0-0.41-0.08-0.56-0.24S19.66,9.4,19.66,9.16z M21.92,14.62c0-0.24,0.08-0.44,0.24-0.62c0.16-0.16,0.35-0.24,0.57-0.24h2.02 c0.23,0,0.43,0.09,0.6,0.26c0.17,0.17,0.26,0.37,0.26,0.6s-0.09,0.43-0.26,0.6c-0.17,0.17-0.37,0.25-0.6,0.25h-2.02 - c-0.23,0-0.43-0.08-0.58-0.25S21.92,14.86,21.92,14.62z`},child:[]}]})(i)}function yue(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.38,21.83c0-0.3,0.1-0.55,0.29-0.76c0.19-0.21,0.43-0.31,0.7-0.31v-0.02l13.16,0.04c0.06-0.01,0.1-0.02,0.1-0.02 + c-0.23,0-0.43-0.08-0.58-0.25S21.92,14.86,21.92,14.62z`},child:[]}]})(i)}function due(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.38,21.83c0-0.3,0.1-0.55,0.29-0.76c0.19-0.21,0.43-0.31,0.7-0.31v-0.02l13.16,0.04c0.06-0.01,0.1-0.02,0.1-0.02 c0.27,0.01,0.51,0.12,0.7,0.33c0.19,0.21,0.29,0.47,0.28,0.77c0,0.3-0.1,0.55-0.29,0.76c-0.19,0.21-0.43,0.31-0.7,0.31v0.01 L8.59,22.9c-0.1,0.01-0.17,0.02-0.22,0.02c-0.28-0.01-0.51-0.11-0.7-0.32C7.47,22.39,7.37,22.13,7.38,21.83z M8.2,16.37 c-0.01-0.43,0.04-0.93,0.16-1.52c0.06-0.3,0.2-0.76,0.44-1.37c0.02-0.05,0.07-0.14,0.13-0.28c0.01,0.02,0.03,0.03,0.04,0.05 @@ -343,7 +343,7 @@ body { c0.02,0.04,0.04,0.07,0.05,0.1c0.13,0.31,0.22,0.63,0.27,0.97c0.08,0.38,0.1,0.75,0.08,1.13c-0.02,0.29-0.07,0.56-0.16,0.81 c-0.08,0.24-0.16,0.43-0.22,0.58c-0.19,0.38-0.39,0.71-0.62,0.98c-0.06,0.07-0.11,0.13-0.14,0.16H9.67 c-0.01-0.01-0.03-0.03-0.07-0.06s-0.06-0.05-0.08-0.07C9.26,18.98,8.98,18.6,8.7,18.1c-0.08-0.15-0.18-0.38-0.29-0.69 - C8.29,17.1,8.22,16.75,8.2,16.37z`},child:[]}]})(i)}function Due(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.56,17.19c0-0.88,0.24-1.89,0.72-3.03s1.1-2.25,1.86-3.31c1.56-2.06,2.92-3.62,4.06-4.67l0.75-0.72 + C8.29,17.1,8.22,16.75,8.2,16.37z`},child:[]}]})(i)}function zue(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M7.56,17.19c0-0.88,0.24-1.89,0.72-3.03s1.1-2.25,1.86-3.31c1.56-2.06,2.92-3.62,4.06-4.67l0.75-0.72 c0.25,0.26,0.53,0.5,0.83,0.72c0.41,0.42,1.04,1.11,1.88,2.09s1.57,1.85,2.17,2.65c0.71,1.01,1.32,2.1,1.81,3.25 s0.74,2.16,0.74,3.03c0,1-0.19,1.95-0.58,2.86c-0.39,0.91-0.91,1.7-1.57,2.36c-0.66,0.66-1.45,1.19-2.37,1.58 c-0.92,0.39-1.89,0.59-2.91,0.59c-1,0-1.95-0.19-2.86-0.57c-0.91-0.38-1.7-0.89-2.36-1.55c-0.66-0.65-1.19-1.44-1.58-2.35 @@ -360,7 +360,7 @@ body { c0.01-0.12,0.03-0.27,0.06-0.45s0.09-0.3,0.17-0.38s0.19-0.12,0.33-0.12c0.09,0,0.17,0.02,0.24,0.06c0.07,0.04,0.12,0.1,0.16,0.19 c0.04,0.09,0.07,0.17,0.1,0.24s0.04,0.18,0.05,0.32l0.01,0.32l0,0.34c0,0.16,0,0.28,0,0.35l-0.01,0.32l-0.05,0.32l-0.1,0.24 l-0.16,0.19l-0.24,0.06c-0.14,0-0.25-0.04-0.33-0.12s-0.14-0.21-0.17-0.38c-0.03-0.18-0.05-0.33-0.06-0.45S17.85,19.25,17.85,19.02z - `},child:[]}]})(i)}function due(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M6.34,12.48c0-0.94,0.3-1.78,0.89-2.52s1.34-1.21,2.25-1.41C9.73,7.43,10.3,6.5,11.2,5.78s1.92-1.08,3.08-1.08 + `},child:[]}]})(i)}function Iue(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M6.34,12.48c0-0.94,0.3-1.78,0.89-2.52s1.34-1.21,2.25-1.41C9.73,7.43,10.3,6.5,11.2,5.78s1.92-1.08,3.08-1.08 c1.12,0,2.13,0.35,3.02,1.05c0.89,0.7,1.46,1.6,1.73,2.69h0.27c1.12,0,2.08,0.39,2.88,1.18c0.79,0.78,1.19,1.74,1.19,2.85 c0,0.6-0.12,1.17-0.37,1.7c-0.25,0.53-0.59,0.99-1.03,1.37v0.03c0,0.59-0.19,1.12-0.56,1.59c-0.37,0.47-0.84,0.76-1.4,0.89 c-0.14,0.62-0.45,1.15-0.91,1.58c-0.46,0.43-1.01,0.7-1.63,0.8c0.29,0.34,0.43,0.72,0.43,1.13c0,0.48-0.17,0.89-0.51,1.24 @@ -371,7 +371,7 @@ body { c0.41,0.48,0.92,0.71,1.54,0.71c0.57,0,1.05-0.2,1.46-0.6c0.4-0.4,0.6-0.89,0.6-1.46c0.4-0.27,0.72-0.61,0.95-1.04 c0.23-0.42,0.35-0.88,0.35-1.37c0-0.79-0.28-1.47-0.85-2.02c-0.57-0.55-1.25-0.83-2.05-0.83c-0.56,0-1.07,0.15-1.53,0.44 c0.06-0.24,0.08-0.51,0.08-0.79c0-0.96-0.34-1.78-1.03-2.46c-0.69-0.68-1.52-1.01-2.49-1.01c-0.94,0-1.75,0.33-2.43,0.97 - s-1.04,1.44-1.07,2.37c-0.02,0-0.05,0-0.08,0c-0.04,0-0.07,0-0.09,0c-0.79,0-1.46,0.28-2.03,0.84S7.74,11.45,7.74,12.23z`},child:[]}]})(i)}function zue(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M9.91,19.56c0-0.85,0.2-1.64,0.59-2.38s0.94-1.35,1.65-1.84V5.42c0-0.8,0.27-1.48,0.82-2.03S14.2,2.55,15,2.55 + s-1.04,1.44-1.07,2.37c-0.02,0-0.05,0-0.08,0c-0.04,0-0.07,0-0.09,0c-0.79,0-1.46,0.28-2.03,0.84S7.74,11.45,7.74,12.23z`},child:[]}]})(i)}function wue(i){return v({attr:{version:"1.1",id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 30 30",style:"enable-background:new 0 0 30 30;"},child:[{tag:"path",attr:{d:`M9.91,19.56c0-0.85,0.2-1.64,0.59-2.38s0.94-1.35,1.65-1.84V5.42c0-0.8,0.27-1.48,0.82-2.03S14.2,2.55,15,2.55 c0.81,0,1.49,0.28,2.04,0.83c0.55,0.56,0.83,1.23,0.83,2.03v9.92c0.71,0.49,1.25,1.11,1.64,1.84s0.58,1.53,0.58,2.38 c0,0.92-0.23,1.78-0.68,2.56s-1.07,1.4-1.85,1.85s-1.63,0.68-2.56,0.68c-0.92,0-1.77-0.23-2.55-0.68s-1.4-1.07-1.86-1.85 S9.91,20.48,9.91,19.56z M11.67,19.56c0,0.93,0.33,1.73,0.98,2.39c0.65,0.66,1.44,0.99,2.36,0.99c0.93,0,1.73-0.33,2.4-1 @@ -380,7 +380,7 @@ body { c0,0.15-0.05,0.25-0.14,0.29l-0.27,0.14c-0.55,0.29-0.98,0.7-1.29,1.23C11.82,18.35,11.67,18.92,11.67,19.56z M12.45,19.56 c0,0.71,0.24,1.32,0.73,1.82s1.07,0.75,1.76,0.75s1.28-0.25,1.79-0.75c0.51-0.5,0.76-1.11,0.76-1.81c0-0.63-0.22-1.19-0.65-1.67 c-0.43-0.48-0.96-0.77-1.58-0.85V9.69c0-0.06-0.03-0.13-0.1-0.19c-0.07-0.07-0.14-0.1-0.22-0.1c-0.09,0-0.16,0.03-0.21,0.08 - c-0.05,0.06-0.08,0.12-0.08,0.21v7.34c-0.61,0.09-1.13,0.37-1.56,0.85C12.66,18.37,12.45,18.92,12.45,19.56z`},child:[]}]})(i)}function Iue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"},child:[]}]})(i)}function wue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"},child:[]},{tag:"path",attr:{d:"M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"},child:[]}]})(i)}function OM(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"},child:[]}]})(i)}function Cue(i){return v({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M8 12a4 4 0 0 0 4 4m0 -8a4 4 0 0 0 -4 4"},child:[]},{tag:"path",attr:{d:"M3 12h1"},child:[]},{tag:"path",attr:{d:"M12 3v1"},child:[]},{tag:"path",attr:{d:"M12 20v1"},child:[]},{tag:"path",attr:{d:"M5.6 5.6l.7 .7"},child:[]},{tag:"path",attr:{d:"M6.3 17.7l-.7 .7"},child:[]},{tag:"path",attr:{d:"M20 7l-3 5h4l-3 5"},child:[]}]})(i)}function hue(i){return v({attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M224,127.17a96.48,96.48,0,0,1-2.39,22.18A24,24,0,0,1,198.21,168H152a24,24,0,0,0-24,24,24,24,0,0,1-32,22.61C58.73,201.44,32,169.81,32,128a96,96,0,0,1,95-96C179.84,31.47,223.55,74.35,224,127.17Z",opacity:"0.2"},child:[]},{tag:"path",attr:{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"},child:[]}]})(i)}function Aue(i){return a.createElement("svg",{viewBox:"0 0 512 512",...i},a.createElement("g",{fill:"currentColor"},a.createElement("path",{d:"M296,320H216a24,24,0,0,0,0,48h80a24,24,0,0,0,0-48Zm0,32H216a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"}),a.createElement("path",{d:"M68.071,123.492c22.578-13.918,52.2-25.229,85.674-32.71l-3.49-15.615c-35.688,7.977-66.163,19.653-90.58,34.705-17.914,11.043-32.041,23.643-41.99,37.451l12.98,9.354C39.376,144.588,51.961,133.423,68.071,123.492Z"}),a.createElement("path",{d:"M435.533,137.112C409.439,121.027,374,108.967,332.845,102.144,322.474,87,288.213,80,256,80s-66.474,7-76.845,22.144C138,108.967,102.561,121.027,76.467,137.112,47.376,155.045,32,176.792,32,200v96c0,29,24.155,55.7,68.016,75.193C141.813,389.77,197.209,400,256,400s114.187-10.23,155.984-28.807C455.845,351.7,480,325,480,296V200C480,176.792,464.624,155.045,435.533,137.112ZM177.64,151.23C185.676,168.192,221.98,176,256,176s70.324-7.808,78.36-24.77c21.862,4.212,41.832,10.19,58.13,17.44C422.343,181.941,432,195.509,432,200s-9.657,18.059-39.51,31.33C357.224,247.008,307.475,256,256,256s-101.224-8.992-136.49-24.67C89.657,218.059,80,204.491,80,200s9.657-18.059,39.512-31.331C135.808,161.42,155.778,155.442,177.64,151.23Zm14.36-19c15.6,8,40.35,11.773,64,11.773s48.4-3.775,64-11.773V144c0,.687-2.715,5.08-15.618,9.381C291.577,157.649,274.4,160,256,160s-35.577-2.351-48.382-6.619C194.715,149.08,192,144.687,192,144Zm15.618-29.608C220.423,98.351,237.605,96,256,96s35.577,2.351,48.382,6.619C317.285,106.92,320,111.313,320,112s-2.715,5.08-15.618,9.381C291.577,125.649,274.4,128,256,128s-35.577-2.351-48.382-6.619C194.715,117.08,192,112.687,192,112S194.715,106.92,207.618,102.619ZM176,118.937v16.319c-23.589,4.453-45.254,10.9-62.99,18.794C82.779,167.489,64,185.1,64,200s18.779,32.511,49.01,45.95C150.249,262.505,202.367,272,256,272s105.751-9.5,142.99-26.05C429.221,232.511,448,214.9,448,200s-18.779-32.511-49.008-45.95c-17.738-7.89-39.4-14.341-62.992-18.794V118.937C411.852,132.7,464,165.41,464,200c0,21.967-21.328,44.044-58.516,60.572C365.688,278.259,312.6,288,256,288s-109.688-9.741-149.484-27.428C69.328,244.044,48,221.967,48,200,48,165.41,100.148,132.7,176,118.937ZM464,296c0,21.967-21.327,44.044-58.514,60.572C365.689,374.259,312.6,384,256,384s-109.689-9.741-149.486-27.428C69.327,340.044,48,317.967,48,296V239.371c11.522,13.444,29.066,25.621,52.018,35.822C141.814,293.77,197.211,304,256,304s114.186-10.23,155.982-28.807c22.952-10.2,40.5-22.378,52.018-35.822Z"}),a.createElement("path",{d:"M418.482,385.814C374.684,405.28,316.979,416,256,416a488.01,488.01,0,0,1-78.705-6.23l-2.59,15.789A504.064,504.064,0,0,0,256,432c63.169,0,123.181-11.21,168.981-31.565q1.3-.576,2.572-1.16l-6.655-14.55Q419.7,385.274,418.482,385.814Z"}),a.createElement("path",{d:"M436.123,377.062l7.754,14c5.883-3.259,11.492-6.728,16.674-10.31l-9.1-13.161C446.7,370.871,441.546,374.059,436.123,377.062Z"}),a.createElement("rect",{x:"248",y:"192",width:"16",height:"16"}),a.createElement("rect",{x:"280",y:"192",width:"16",height:"16"}),a.createElement("rect",{x:"216",y:"192",width:"16",height:"16"})))}function pue(i){return a.createElement("svg",{viewBox:"0 0 512 512",...i},a.createElement("path",{fill:"currentColor",d:"M298.667 298.667c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32c0 17.642 14.357 32 32 32zm0-42.667c5.867 0 10.667 4.779 10.667 10.667s-4.8 10.667-10.667 10.667S288 272.555 288 266.667 292.8 256 298.667 256z"}),a.createElement("path",{fill:"currentColor",d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667c-.597 0-1.131.256-1.707.341-.555.085-1.088.149-1.621.32-.939.32-1.749.789-2.56 1.344-.32.213-.704.277-1.003.533-.107.085-.149.213-.256.32-.768.704-1.365 1.579-1.899 2.496-.213.341-.512.619-.661.981-.597 1.345-.96 2.774-.96 4.332v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h42.667c.576 0 1.173-.043 1.749-.149l256-42.667a10.672 10.672 0 0 0 8.917-10.517V53.333c0-5.227-3.776-9.664-8.917-10.517L235.541 21.333h159.125v480c0 5.888 4.779 10.667 10.667 10.667H448c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-96-428.31v387.264l-234.667 39.125V23.253L352 62.357z"}))}function EM(i){return a.createElement("svg",{viewBox:"0 0 512.006 512.006",...i},a.createElement("path",{d:"M502.379 211.249c0 74.656-60.52 135.176-135.176 135.176-6.469.01-12.919-.473-19.311-1.448-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825a142.128 142.128 0 0 1 19.311-1.352c74.656 0 135.176 60.521 135.176 135.177z",fill:"#c52828"}),a.createElement("path",{d:"M463.757 211.249c-.029 67.173-49.378 124.131-115.865 133.728-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825 66.516 9.598 115.875 66.613 115.865 133.825z",fill:"#f44335"}),a.createElement("g",{fill:"#fdd834"},a.createElement("path",{d:"M380.527 230.56h-26.649a8.208 8.208 0 0 1-8.4-7.242l-7.242-90.472c-.212-4.47 3.235-8.275 7.705-8.497.232-.01.463-.01.695 0h41.036a8.105 8.105 0 0 1 8.4 7.802c.01.232.01.463 0 .695l-7.242 90.472c-.501 4.181-4.093 7.319-8.303 7.242zM362.085 269.181h10.235c7.84 0 14.194 6.353 14.194 14.194v10.235c0 7.84-6.353 14.194-14.194 14.194h-10.235c-7.84 0-14.194-6.353-14.194-14.194v-10.235c.001-7.84 6.354-14.194 14.194-14.194z"})),a.createElement("path",{d:"M308.015 332.714a132.057 132.057 0 0 1-24.332-15.256 138.367 138.367 0 0 1-25.587-26.456 134.123 134.123 0 0 1-26.07-79.754 136.453 136.453 0 0 1 3.09-28.966 129.801 129.801 0 0 1 9.655-28.966c-24.428-39.201-50.691-78.113-85.547-108.334-2.607-2.221-5.214-4.442-7.917-6.566a161.051 161.051 0 0 0-14.387-10.621 80.965 80.965 0 0 0-13.807-7.145c1.641 7.338 3.476 14.773 4.731 22.208a180.355 180.355 0 0 1 2.993 26.939v7.145a192.012 192.012 0 0 1-60.829 139.521 202.647 202.647 0 0 0-43.836 52.719 149.063 149.063 0 0 0-6.566 120.017 152.006 152.006 0 0 0 22.208 40.167 164.926 164.926 0 0 0 106.21 61.891 86.874 86.874 0 0 1-44.801-32.249 51.315 51.315 0 0 1-3.669-5.6 77.46 77.46 0 0 1-6.469-13.325 79.464 79.464 0 0 1 3.766-63.726 111.914 111.914 0 0 1 23.463-28.387 101.983 101.983 0 0 0 32.442-74.25v-3.862a97.875 97.875 0 0 0-4.731-27.132 112.539 112.539 0 0 1 10.911 6.566 108.053 108.053 0 0 1 30.222 30.801 100.963 100.963 0 0 1 15.835 46.443v8.4a100.92 100.92 0 0 1-18.249 57.933c22.98 13.035 38.622-8.593 44.994-28.966a60.067 60.067 0 0 0 2.51-12.842 88.458 88.458 0 0 1 28.966 61.312v5.214c-2.704 33.678-25.346 62.451-57.45 72.995 73.353-11.789 128.717-72.889 133.245-147.053a131.977 131.977 0 0 1-30.994-10.815z",fill:"#f57c00"}),a.createElement("path",{d:"M263.117 417.489v-5.214a88.462 88.462 0 0 0-28.966-61.312 60.129 60.129 0 0 1-2.51 12.842c-5.986 20.47-22.014 42.098-44.994 28.966a100.923 100.923 0 0 0 18.249-57.933v-.966-7.338a100.971 100.971 0 0 0-15.835-46.443 108.027 108.027 0 0 0-30.222-30.801 108.949 108.949 0 0 0-39.877-35.532 97.838 97.838 0 0 1 4.731 27.132v3.862a101.988 101.988 0 0 1-32.442 74.25 111.924 111.924 0 0 0-23.366 28.387 79.491 79.491 0 0 0-3.573 63.726 83.948 83.948 0 0 0 35.436 42.291 51.315 51.315 0 0 0 3.669 5.6 86.886 86.886 0 0 0 44.415 32.249 164.927 164.927 0 0 1-106.21-61.892 152.082 152.082 0 0 1-22.014-40.167 149.055 149.055 0 0 1 6.564-120.015 202.714 202.714 0 0 1 44.029-53.202A192.012 192.012 0 0 0 131.03 76.458v-7.145a180.486 180.486 0 0 0-2.993-26.939c-1.255-7.435-3.09-14.869-4.731-22.208a80.965 80.965 0 0 1 13.807 7.145 159.446 159.446 0 0 1 14.773 10.718c2.704 2.124 5.311 4.345 7.917 6.566 34.856 30.222 61.119 69.133 85.547 108.334a129.75 129.75 0 0 0-9.655 28.966 136.634 136.634 0 0 0-3.669 29.353 134.116 134.116 0 0 0 26.07 79.754 138.396 138.396 0 0 0 25.587 26.456 132.164 132.164 0 0 0 24.332 15.256 152.203 152.203 0 0 1-44.898 84.775z",fill:"#ff9801"}),a.createElement("path",{d:"M147.831 500.912h-1.448c-61.756-8.7-113.963-50.15-136.432-108.334a158.725 158.725 0 0 1 7.338-127.355 212.528 212.528 0 0 1 45.96-55.809 181.787 181.787 0 0 0 57.933-132.473v-6.759a171.298 171.298 0 0 0-2.8-25.587c-.966-5.697-2.221-11.2-3.476-16.704l-1.159-5.117c-1.178-5.204 2.076-10.37 7.28-11.548a9.663 9.663 0 0 1 5.948.541 89.473 89.473 0 0 1 15.449 8.014 172.47 172.47 0 0 1 15.449 11.2c41.036 32.732 70.871 77.244 95.589 117.314a9.673 9.673 0 0 1 .483 9.655 121.056 121.056 0 0 0-9.655 26.842 128.158 128.158 0 0 0-2.607 26.456c.01 59.198 41.374 110.333 99.258 122.721a9.655 9.655 0 0 1 7.628 9.655c-3.186 77.244-61.216 141.742-141.163 156.129-5.253.927-10.254-2.588-11.181-7.84a9.65 9.65 0 0 1 6.353-10.795c29.99-9.8 50.517-37.492 51.174-69.037a67.618 67.618 0 0 0-14.387-40.746 56.78 56.78 0 0 1-24.139 31.091 33.122 33.122 0 0 1-33.408-1.448c-4.644-2.626-6.276-8.516-3.659-13.16.145-.261.299-.502.473-.743a91.187 91.187 0 0 0 16.511-52.429v-.772a90.743 90.743 0 0 0-14.58-48.277 98.107 98.107 0 0 0-19.311-21.532v9.945a111.13 111.13 0 0 1-35.436 81.299 103.445 103.445 0 0 0-21.532 25.78 69.873 69.873 0 0 0-3.09 56.002 76.304 76.304 0 0 0 49.533 44.512c5.33.801 9.009 5.774 8.207 11.104-.801 5.328-5.774 8.997-11.103 8.205zM137.113 39.478v1.738a188.136 188.136 0 0 1 3.09 28.194v7.435A200.926 200.926 0 0 1 76.38 223.318a192.998 192.998 0 0 0-42.098 50.498 139.414 139.414 0 0 0-6.469 111.907 148.682 148.682 0 0 0 65.561 76.568 89.522 89.522 0 0 1-15.159-49.726 91.25 91.25 0 0 1 9.655-40.167 119.46 119.46 0 0 1 25.394-31.091 92.026 92.026 0 0 0 29.449-67.588v-3.09a88.799 88.799 0 0 0-4.248-24.911 9.653 9.653 0 0 1 6.237-12.147 9.638 9.638 0 0 1 7.473.657 119.392 119.392 0 0 1 44.705 40.649 110.062 110.062 0 0 1 17.669 58.898v1.159a110.343 110.343 0 0 1-13.035 52.139 12.555 12.555 0 0 0 4.731-1.448c9.655-5.31 17.283-22.497 18.345-35.436.434-5.31 5.088-9.269 10.409-8.844a9.61 9.61 0 0 1 6.006 2.761 95.586 95.586 0 0 1 32.153 68.168 89.528 89.528 0 0 1-13.711 47.408 146.774 146.774 0 0 0 69.133-108.817c-62.77-17.37-106.22-74.492-106.21-139.618a146.655 146.655 0 0 1 3.283-30.994 139.876 139.876 0 0 1 8.497-26.263c-23.27-37.077-51.27-78.402-88.541-108.045a113.049 113.049 0 0 0-8.496-6.467z"}),a.createElement("path",{d:"M367.203 356.081a144.841 144.841 0 0 1-89.506-30.994 143.882 143.882 0 0 1-55.326-113.838 146.655 146.655 0 0 1 3.283-30.994 140.652 140.652 0 0 1 10.814-31.091c23.965-50.498 74.839-82.699 130.735-82.747 79.986.019 144.813 64.875 144.803 144.861a144.848 144.848 0 0 1-55.297 113.809 143.543 143.543 0 0 1-89.506 30.994zm0-270.353c-48.47.019-92.586 27.943-113.355 71.74a121.83 121.83 0 0 0-9.655 26.939 127.805 127.805 0 0 0-2.51 26.842c.01 59.198 41.374 110.333 99.258 122.721a125.763 125.763 0 0 0 26.263 2.8c69.326 0 125.521-56.195 125.521-125.521S436.519 85.728 367.203 85.728z"}),a.createElement("path",{d:"M380.527 240.215h-26.649c-9.279.097-17.109-6.894-18.056-16.125l-7.242-90.085a17.201 17.201 0 0 1 4.538-13.035 18.38 18.38 0 0 1 13.518-5.89h41.036a18.375 18.375 0 0 1 13.518 5.89 17.204 17.204 0 0 1 4.635 13.035l-7.242 90.472c-1.139 9.076-8.912 15.854-18.056 15.738zm-25.49-19.311h24.525l6.952-86.899h-38.622l7.145 86.899zM372.32 317.459h-10.235c-13.151-.048-23.801-10.698-23.849-23.849v-10.235c.048-13.151 10.698-23.801 23.849-23.849h10.138c13.189 0 23.888 10.66 23.946 23.849v10.138c0 13.18-10.669 23.888-23.849 23.946zm-10.138-38.622a4.635 4.635 0 0 0-4.538 4.538v10.138a4.635 4.635 0 0 0 4.538 4.538h10.138a4.635 4.635 0 0 0 4.538-4.538v-10.138a4.635 4.635 0 0 0-4.538-4.538h-10.138z"}))}function _M(i){return a.createElement("svg",{viewBox:"0 0 512.002 512.002",...i},a.createElement("path",{d:"M481.929 324.35c0 65.951-53.464 119.415-119.415 119.415a111.938 111.938 0 0 1-17.059-1.279c-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221a125.333 125.333 0 0 1 17.059-1.194c65.951-.001 119.415 53.462 119.415 119.414z",fill:"#c52828"}),a.createElement("path",{d:"M447.81 324.35c-.026 59.341-43.621 109.657-102.356 118.135-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221 58.77 8.487 102.373 58.846 102.356 118.221z",fill:"#f44335"}),a.createElement("g",{fill:"#fdd834"},a.createElement("path",{d:"M374.285 341.409h-23.542a7.251 7.251 0 0 1-7.421-6.397l-6.397-79.923a7.174 7.174 0 0 1 6.807-7.506c.205-.009.409-.009.614 0h36.251a7.16 7.16 0 0 1 7.421 6.892c.009.205.009.409 0 .614l-6.397 79.923a7.249 7.249 0 0 1-7.336 6.397zM357.993 375.527h9.041c6.926 0 12.539 5.612 12.539 12.539v9.041c0 6.926-5.612 12.539-12.539 12.539h-9.041c-6.926 0-12.539-5.612-12.539-12.539v-9.041c0-6.926 5.621-12.539 12.539-12.539z"})),a.createElement("path",{d:"M318.415 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 159.575 159.575 0 0 1-61.413 12.283 149.268 149.268 0 0 1-20.556-1.365 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.753 152.753 0 0 1-12.368-60.219 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504 7.335-11.771c4.504-7.353 14.117-9.656 21.469-5.143a15.525 15.525 0 0 1 5.143 5.143l34.716 55.869c-2.644 4.18-5.032 8.53-7.335 12.709a96.424 96.424 0 0 0-11.515 44.439 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.344 115.344 0 0 0-11.6 31.048 120.546 120.546 0 0 0-2.729 25.589c.041 48.9 29.878 92.828 75.315 110.885z",fill:"#0377bc"}),a.createElement("path",{d:"M277.217 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 158.847 158.847 0 0 1-40.772 10.833 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.657 152.657 0 0 1-12.368-60.134 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504c9.212 14.671 18.339 29.427 27.465 44.098-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.323 115.323 0 0 0-12.283 31.133 120.546 120.546 0 0 0-2.729 25.589c.043 48.9 29.88 92.828 75.317 110.885z",fill:"#02a9f4"}),a.createElement("path",{d:"M411.388 144.545a477.911 477.911 0 0 0-27.636-43.842c-9.894-14.586-19.192-29.598-28.489-44.525L328.395 13.53c-3.037-4.708-9.323-6.065-14.031-3.028a10.259 10.259 0 0 0-3.028 3.028l-12.794 20.215-14.074 22.433c-9.297 14.927-18.595 29.939-28.489 44.525-6.994 10.236-13.989 20.471-20.301 31.133-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.758 98.758 0 0 0 29.939 70.284 106.83 106.83 0 0 0 9.98 8.53 119.423 119.423 0 0 1 84.017-60.902 114.9 114.9 0 0 1 21.068-1.877c5.186.009 10.372.324 15.524.938a119.369 119.369 0 0 1 39.578 12.539 96.462 96.462 0 0 0-6.228-73.866z",fill:"#0377bc"}),a.createElement("path",{d:"M379.573 188.899a93.046 93.046 0 0 1-1.535 17.059 131.537 131.537 0 0 0-15.524-1.024 114.797 114.797 0 0 0-21.068 1.877 119.425 119.425 0 0 0-84.017 60.902 106.96 106.96 0 0 1-9.98-8.53c-31.099-29.743-38.878-76.417-19.106-114.638 2.303-4.35 4.691-8.53 7.335-12.709 6.312-10.662 13.306-20.898 20.301-31.133 9.894-14.586 19.192-29.598 28.489-44.525l14.074-22.433 14.074 22.433c9.297 14.927 18.595 29.939 28.489 44.525a477.911 477.911 0 0 1 27.636 43.842 96.401 96.401 0 0 1 10.832 44.354z",fill:"#02a9f4"}),a.createElement("path",{d:"M187.656 512.002a167.398 167.398 0 0 1-64.655-12.88 165.226 165.226 0 0 1-88.623-86.746 160.466 160.466 0 0 1-13.05-63.631 158.81 158.81 0 0 1 17.656-72.928 698.388 698.388 0 0 1 39.663-63.887l3.412-5.032c12.027-17.998 23.627-36.677 34.886-54.76L167.1 71.531c6.986-11.353 21.861-14.893 33.214-7.898a24.1 24.1 0 0 1 7.898 7.898l17.059 27.38 17.827 28.404a8.521 8.521 0 0 1 0 9.383c-2.559 4.009-4.777 8.018-6.994 12.112a87.69 87.69 0 0 0-10.065 40.089 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83 99.608 99.608 0 0 0 9.212 7.847 8.534 8.534 0 0 1 2.303 10.918 106.955 106.955 0 0 0-10.747 28.745 112.483 112.483 0 0 0-2.559 23.712c.009 45.429 27.721 86.26 69.943 103.038 4.393 1.706 6.559 6.653 4.853 11.046a8.584 8.584 0 0 1-.93 1.749 162.407 162.407 0 0 1-20.301 24.139 164.29 164.29 0 0 1-52.884 34.886 167.489 167.489 0 0 1-64.653 12.795zm0-435.012a6.99 6.99 0 0 0-6.056 3.412l-50.154 80.69c-11.344 18.168-23.03 37.019-35.227 55.187l-3.412 5.032a687.543 687.543 0 0 0-38.725 62.266 141.613 141.613 0 0 0-15.695 65.166 143.56 143.56 0 0 0 11.686 56.893 148.16 148.16 0 0 0 79.411 77.79 152.855 152.855 0 0 0 116.344 0 147.616 147.616 0 0 0 47.425-31.133 143.446 143.446 0 0 0 12.027-13.306c-43.322-21.802-70.668-66.139-70.711-114.638a129.576 129.576 0 0 1 2.9-27.38 124.357 124.357 0 0 1 9.212-26.954 136.293 136.293 0 0 1-5.203-4.691 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 1.621-3.071 3.241-5.971 4.862-8.53l-14.927-24.054-17.059-27.38a7.087 7.087 0 0 0-6.141-3.837z"}),a.createElement("path",{d:"M99.971 442.4A8.521 8.521 0 0 1 94 439.926a129.631 129.631 0 0 1-28.318-41.113 126.28 126.28 0 0 1-10.236-50.069 124.503 124.503 0 0 1 13.818-57.234c1.868-4.325 6.883-6.32 11.208-4.452s6.32 6.883 4.452 11.208c-.162.375-.35.742-.563 1.092a107.494 107.494 0 0 0-11.856 49.387 109.211 109.211 0 0 0 8.53 43.331 112.626 112.626 0 0 0 24.565 35.739c3.344 3.318 3.369 8.717.051 12.061a8.549 8.549 0 0 1-6.022 2.525l.342-.001zM257.428 276.242a8.526 8.526 0 0 1-5.118-1.706 115.222 115.222 0 0 1-10.747-9.212 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 2.559-4.862 5.118-9.212 7.677-13.306 6.312-10.662 13.392-21.068 20.386-31.218 9.041-13.903 17.912-27.807 26.442-41.881L304 8.753c5.485-8.734 17.017-11.379 25.751-5.894a18.698 18.698 0 0 1 5.894 5.894l28.574 45.634c8.53 13.733 17.059 27.977 26.612 41.539l1.706 2.474a457.473 457.473 0 0 1 26.442 42.136 104.968 104.968 0 0 1 6.824 80.434c-1.433 4.487-6.235 6.969-10.722 5.536a8.282 8.282 0 0 1-1.39-.589 112.612 112.612 0 0 0-106.535 2.388 110.28 110.28 0 0 0-42.136 43.416 8.52 8.52 0 0 1-5.715 4.265l-1.877.256zm62.437-258.959a1.541 1.541 0 0 0-1.365.768l-28.489 45.378c-8.53 13.903-17.571 28.233-26.954 42.051-6.909 10.065-13.903 20.301-20.045 30.707-2.644 4.18-4.947 8.53-7.165 12.368a87.722 87.722 0 0 0-9.809 40.345 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83l1.791 1.706a127.216 127.216 0 0 1 43.331-41.369 129.73 129.73 0 0 1 113.359-7.25 87.904 87.904 0 0 0-8.53-57.831 444.102 444.102 0 0 0-25.589-40.516l-1.706-2.474c-9.383-13.818-18.339-28.148-26.954-42.051L321.23 18.05a1.532 1.532 0 0 0-1.365-.767z"}),a.createElement("path",{d:"M271.246 243.233a8.519 8.519 0 0 1-5.971-2.388 75.502 75.502 0 0 1-16.292-23.456 71.923 71.923 0 0 1-5.885-28.489 70.537 70.537 0 0 1 7.933-32.498c1.877-3.582 4.009-7.25 6.227-10.833l.512-.768a8.538 8.538 0 0 1 11.609-3.284 8.538 8.538 0 0 1 3.284 11.609 6.997 6.997 0 0 1-.392.631l-.512.853c-2.132 3.327-3.924 6.568-5.63 9.724a53.307 53.307 0 0 0-5.971 24.565 54.816 54.816 0 0 0 4.435 21.665 58.198 58.198 0 0 0 12.624 18.083c3.395 3.267 3.489 8.666.222 12.061a8.518 8.518 0 0 1-6.193 2.61v-.085z"}),a.createElement("path",{d:"M362.514 452.294c-70.66 0-127.945-57.285-127.945-127.945a129.576 129.576 0 0 1 2.9-27.38 123.98 123.98 0 0 1 12.453-33.351 127.15 127.15 0 0 1 48.619-50.154c37.94-21.495 84.136-22.518 122.997-2.729 62.744 32.489 87.275 109.7 54.777 172.452-22.005 42.512-65.916 69.184-113.801 69.107zm0-238.83c-40.763.009-78.234 22.382-97.579 58.257a107.238 107.238 0 0 0-10.747 28.83 112.818 112.818 0 0 0-2.559 23.798c0 61.243 49.643 110.885 110.885 110.885s110.885-49.642 110.885-110.885-49.643-110.885-110.885-110.885z"}),a.createElement("path",{d:"M374.285 349.939h-23.542c-8.231.085-15.157-6.141-15.95-14.33l-6.397-79.496a15.26 15.26 0 0 1 4.009-11.515 16.312 16.312 0 0 1 11.942-5.203h36.251a16.31 16.31 0 0 1 11.941 5.203 15.27 15.27 0 0 1 4.094 11.515l-6.397 79.923c-.999 8.026-7.865 14.013-15.951 13.903zm-22.519-17.06h21.665l6.141-76.767h-34.119l6.313 76.767zM367.034 418.176h-9.041c-11.617-.043-21.026-9.451-21.068-21.068v-9.041c.043-11.617 9.451-21.026 21.068-21.068h8.956c11.651 0 21.102 9.417 21.153 21.068v8.956c.001 11.651-9.416 21.11-21.068 21.153zm-8.956-34.119a4.095 4.095 0 0 0-4.009 4.009v8.956a4.095 4.095 0 0 0 4.009 4.009h8.956a4.095 4.095 0 0 0 4.009-4.009v-8.956a4.095 4.095 0 0 0-4.009-4.009h-8.956z"}))}function mue(i){return a.createElement("svg",{viewBox:"0 0 512 512",...i},a.createElement("path",{fill:"currentColor",d:"M462,226c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.52,0,10-4.48,10-10S467.52,226,462,226z"}),a.createElement("path",{fill:"currentColor",d:"M50,226c-5.52,0-10,4.48-10,10s4.48,10,10,10s10-4.48,10-10S55.52,226,50,226z"}),a.createElement("path",{fill:"currentColor",d:`M502,126h-0.027C508.265,117.637,512,107.248,512,96c0-27.57-22.43-50-50-50s-50,22.43-50,50 + c-0.05,0.06-0.08,0.12-0.08,0.21v7.34c-0.61,0.09-1.13,0.37-1.56,0.85C12.66,18.37,12.45,18.92,12.45,19.56z`},child:[]}]})(i)}function Cue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M430.1 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 12-36.6.1-47.7zM120 216c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm40 126c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-161c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm72 219c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm24-208c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"},child:[]}]})(i)}function hue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"},child:[]},{tag:"path",attr:{d:"M363.5 148.5C334.8 119.8 296.6 104 256 104c-40.6 0-78.8 15.8-107.5 44.5C119.8 177.2 104 215.4 104 256s15.8 78.8 44.5 107.5C177.2 392.2 215.4 408 256 408c40.6 0 78.8-15.8 107.5-44.5C392.2 334.8 408 296.6 408 256s-15.8-78.8-44.5-107.5z"},child:[]}]})(i)}function OM(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352 146.4c-34.4-48.6-67.5-78.5-90.8-96.6-3.1-2.4-7.3-2.4-10.4-.1-23 17.1-56.1 48.4-90.5 96.5-37.3 52-63 108.4-64.2 170.9 0 1.2-.1 2.5-.1 3.7 0 18.4 3.9 35.9 10.9 52.1 4.1 9.3 9.2 18.1 15.2 26.3 28.5 39 77.8 64.8 133.8 64.8 88.4 0 160.1-64.1 160.1-143.2 0-63.7-27-122.2-64-174.4zm-86 264.3h-.5c-9.9 0-12-14.1-2.6-17.1 45.1-14.2 69.6-38.5 86.4-80.8 3.5-8.9 16.7-6.5 16.8 3.1v1.4c-.1 51.6-44.9 93.4-100.1 93.4z"},child:[]}]})(i)}function Aue(i){return v({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M8 12a4 4 0 0 0 4 4m0 -8a4 4 0 0 0 -4 4"},child:[]},{tag:"path",attr:{d:"M3 12h1"},child:[]},{tag:"path",attr:{d:"M12 3v1"},child:[]},{tag:"path",attr:{d:"M12 20v1"},child:[]},{tag:"path",attr:{d:"M5.6 5.6l.7 .7"},child:[]},{tag:"path",attr:{d:"M6.3 17.7l-.7 .7"},child:[]},{tag:"path",attr:{d:"M20 7l-3 5h4l-3 5"},child:[]}]})(i)}function pue(i){return v({attr:{viewBox:"0 0 256 256",fill:"currentColor"},child:[{tag:"path",attr:{d:"M224,127.17a96.48,96.48,0,0,1-2.39,22.18A24,24,0,0,1,198.21,168H152a24,24,0,0,0-24,24,24,24,0,0,1-32,22.61C58.73,201.44,32,169.81,32,128a96,96,0,0,1,95-96C179.84,31.47,223.55,74.35,224,127.17Z",opacity:"0.2"},child:[]},{tag:"path",attr:{d:"M200.77,53.89A103.27,103.27,0,0,0,128,24h-1.07A104,104,0,0,0,24,128c0,43,26.58,79.06,69.36,94.17A32,32,0,0,0,136,192a16,16,0,0,1,16-16h46.21a31.81,31.81,0,0,0,31.2-24.88,104.43,104.43,0,0,0,2.59-24A103.28,103.28,0,0,0,200.77,53.89Zm13,93.71A15.89,15.89,0,0,1,198.21,160H152a32,32,0,0,0-32,32,16,16,0,0,1-21.31,15.07C62.49,194.3,40,164,40,128a88,88,0,0,1,87.09-88h.9a88.35,88.35,0,0,1,88,87.25A88.86,88.86,0,0,1,213.81,147.6ZM140,76a12,12,0,1,1-12-12A12,12,0,0,1,140,76ZM96,100A12,12,0,1,1,84,88,12,12,0,0,1,96,100Zm0,56a12,12,0,1,1-12-12A12,12,0,0,1,96,156Zm88-56a12,12,0,1,1-12-12A12,12,0,0,1,184,100Z"},child:[]}]})(i)}function mue(i){return n.createElement("svg",{viewBox:"0 0 512 512",...i},n.createElement("g",{fill:"currentColor"},n.createElement("path",{d:"M296,320H216a24,24,0,0,0,0,48h80a24,24,0,0,0,0-48Zm0,32H216a8,8,0,0,1,0-16h80a8,8,0,0,1,0,16Z"}),n.createElement("path",{d:"M68.071,123.492c22.578-13.918,52.2-25.229,85.674-32.71l-3.49-15.615c-35.688,7.977-66.163,19.653-90.58,34.705-17.914,11.043-32.041,23.643-41.99,37.451l12.98,9.354C39.376,144.588,51.961,133.423,68.071,123.492Z"}),n.createElement("path",{d:"M435.533,137.112C409.439,121.027,374,108.967,332.845,102.144,322.474,87,288.213,80,256,80s-66.474,7-76.845,22.144C138,108.967,102.561,121.027,76.467,137.112,47.376,155.045,32,176.792,32,200v96c0,29,24.155,55.7,68.016,75.193C141.813,389.77,197.209,400,256,400s114.187-10.23,155.984-28.807C455.845,351.7,480,325,480,296V200C480,176.792,464.624,155.045,435.533,137.112ZM177.64,151.23C185.676,168.192,221.98,176,256,176s70.324-7.808,78.36-24.77c21.862,4.212,41.832,10.19,58.13,17.44C422.343,181.941,432,195.509,432,200s-9.657,18.059-39.51,31.33C357.224,247.008,307.475,256,256,256s-101.224-8.992-136.49-24.67C89.657,218.059,80,204.491,80,200s9.657-18.059,39.512-31.331C135.808,161.42,155.778,155.442,177.64,151.23Zm14.36-19c15.6,8,40.35,11.773,64,11.773s48.4-3.775,64-11.773V144c0,.687-2.715,5.08-15.618,9.381C291.577,157.649,274.4,160,256,160s-35.577-2.351-48.382-6.619C194.715,149.08,192,144.687,192,144Zm15.618-29.608C220.423,98.351,237.605,96,256,96s35.577,2.351,48.382,6.619C317.285,106.92,320,111.313,320,112s-2.715,5.08-15.618,9.381C291.577,125.649,274.4,128,256,128s-35.577-2.351-48.382-6.619C194.715,117.08,192,112.687,192,112S194.715,106.92,207.618,102.619ZM176,118.937v16.319c-23.589,4.453-45.254,10.9-62.99,18.794C82.779,167.489,64,185.1,64,200s18.779,32.511,49.01,45.95C150.249,262.505,202.367,272,256,272s105.751-9.5,142.99-26.05C429.221,232.511,448,214.9,448,200s-18.779-32.511-49.008-45.95c-17.738-7.89-39.4-14.341-62.992-18.794V118.937C411.852,132.7,464,165.41,464,200c0,21.967-21.328,44.044-58.516,60.572C365.688,278.259,312.6,288,256,288s-109.688-9.741-149.484-27.428C69.328,244.044,48,221.967,48,200,48,165.41,100.148,132.7,176,118.937ZM464,296c0,21.967-21.327,44.044-58.514,60.572C365.689,374.259,312.6,384,256,384s-109.689-9.741-149.486-27.428C69.327,340.044,48,317.967,48,296V239.371c11.522,13.444,29.066,25.621,52.018,35.822C141.814,293.77,197.211,304,256,304s114.186-10.23,155.982-28.807c22.952-10.2,40.5-22.378,52.018-35.822Z"}),n.createElement("path",{d:"M418.482,385.814C374.684,405.28,316.979,416,256,416a488.01,488.01,0,0,1-78.705-6.23l-2.59,15.789A504.064,504.064,0,0,0,256,432c63.169,0,123.181-11.21,168.981-31.565q1.3-.576,2.572-1.16l-6.655-14.55Q419.7,385.274,418.482,385.814Z"}),n.createElement("path",{d:"M436.123,377.062l7.754,14c5.883-3.259,11.492-6.728,16.674-10.31l-9.1-13.161C446.7,370.871,441.546,374.059,436.123,377.062Z"}),n.createElement("rect",{x:"248",y:"192",width:"16",height:"16"}),n.createElement("rect",{x:"280",y:"192",width:"16",height:"16"}),n.createElement("rect",{x:"216",y:"192",width:"16",height:"16"})))}function Oue(i){return n.createElement("svg",{viewBox:"0 0 512 512",...i},n.createElement("path",{fill:"currentColor",d:"M298.667 298.667c17.643 0 32-14.357 32-32s-14.357-32-32-32-32 14.357-32 32c0 17.642 14.357 32 32 32zm0-42.667c5.867 0 10.667 4.779 10.667 10.667s-4.8 10.667-10.667 10.667S288 272.555 288 266.667 292.8 256 298.667 256z"}),n.createElement("path",{fill:"currentColor",d:"M448 490.667h-32v-480C416 4.779 411.221 0 405.333 0H106.667c-.597 0-1.131.256-1.707.341-.555.085-1.088.149-1.621.32-.939.32-1.749.789-2.56 1.344-.32.213-.704.277-1.003.533-.107.085-.149.213-.256.32-.768.704-1.365 1.579-1.899 2.496-.213.341-.512.619-.661.981-.597 1.345-.96 2.774-.96 4.332v480H64c-5.888 0-10.667 4.779-10.667 10.667C53.333 507.221 58.112 512 64 512h42.667c.576 0 1.173-.043 1.749-.149l256-42.667a10.672 10.672 0 0 0 8.917-10.517V53.333c0-5.227-3.776-9.664-8.917-10.517L235.541 21.333h159.125v480c0 5.888 4.779 10.667 10.667 10.667H448c5.888 0 10.667-4.779 10.667-10.667s-4.779-10.666-10.667-10.666zm-96-428.31v387.264l-234.667 39.125V23.253L352 62.357z"}))}function EM(i){return n.createElement("svg",{viewBox:"0 0 512.006 512.006",...i},n.createElement("path",{d:"M502.379 211.249c0 74.656-60.52 135.176-135.176 135.176-6.469.01-12.919-.473-19.311-1.448-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825a142.128 142.128 0 0 1 19.311-1.352c74.656 0 135.176 60.521 135.176 135.177z",fill:"#c52828"}),n.createElement("path",{d:"M463.757 211.249c-.029 67.173-49.378 124.131-115.865 133.728-66.487-9.598-115.837-66.555-115.866-133.728-.019-67.212 49.349-124.227 115.866-133.825 66.516 9.598 115.875 66.613 115.865 133.825z",fill:"#f44335"}),n.createElement("g",{fill:"#fdd834"},n.createElement("path",{d:"M380.527 230.56h-26.649a8.208 8.208 0 0 1-8.4-7.242l-7.242-90.472c-.212-4.47 3.235-8.275 7.705-8.497.232-.01.463-.01.695 0h41.036a8.105 8.105 0 0 1 8.4 7.802c.01.232.01.463 0 .695l-7.242 90.472c-.501 4.181-4.093 7.319-8.303 7.242zM362.085 269.181h10.235c7.84 0 14.194 6.353 14.194 14.194v10.235c0 7.84-6.353 14.194-14.194 14.194h-10.235c-7.84 0-14.194-6.353-14.194-14.194v-10.235c.001-7.84 6.354-14.194 14.194-14.194z"})),n.createElement("path",{d:"M308.015 332.714a132.057 132.057 0 0 1-24.332-15.256 138.367 138.367 0 0 1-25.587-26.456 134.123 134.123 0 0 1-26.07-79.754 136.453 136.453 0 0 1 3.09-28.966 129.801 129.801 0 0 1 9.655-28.966c-24.428-39.201-50.691-78.113-85.547-108.334-2.607-2.221-5.214-4.442-7.917-6.566a161.051 161.051 0 0 0-14.387-10.621 80.965 80.965 0 0 0-13.807-7.145c1.641 7.338 3.476 14.773 4.731 22.208a180.355 180.355 0 0 1 2.993 26.939v7.145a192.012 192.012 0 0 1-60.829 139.521 202.647 202.647 0 0 0-43.836 52.719 149.063 149.063 0 0 0-6.566 120.017 152.006 152.006 0 0 0 22.208 40.167 164.926 164.926 0 0 0 106.21 61.891 86.874 86.874 0 0 1-44.801-32.249 51.315 51.315 0 0 1-3.669-5.6 77.46 77.46 0 0 1-6.469-13.325 79.464 79.464 0 0 1 3.766-63.726 111.914 111.914 0 0 1 23.463-28.387 101.983 101.983 0 0 0 32.442-74.25v-3.862a97.875 97.875 0 0 0-4.731-27.132 112.539 112.539 0 0 1 10.911 6.566 108.053 108.053 0 0 1 30.222 30.801 100.963 100.963 0 0 1 15.835 46.443v8.4a100.92 100.92 0 0 1-18.249 57.933c22.98 13.035 38.622-8.593 44.994-28.966a60.067 60.067 0 0 0 2.51-12.842 88.458 88.458 0 0 1 28.966 61.312v5.214c-2.704 33.678-25.346 62.451-57.45 72.995 73.353-11.789 128.717-72.889 133.245-147.053a131.977 131.977 0 0 1-30.994-10.815z",fill:"#f57c00"}),n.createElement("path",{d:"M263.117 417.489v-5.214a88.462 88.462 0 0 0-28.966-61.312 60.129 60.129 0 0 1-2.51 12.842c-5.986 20.47-22.014 42.098-44.994 28.966a100.923 100.923 0 0 0 18.249-57.933v-.966-7.338a100.971 100.971 0 0 0-15.835-46.443 108.027 108.027 0 0 0-30.222-30.801 108.949 108.949 0 0 0-39.877-35.532 97.838 97.838 0 0 1 4.731 27.132v3.862a101.988 101.988 0 0 1-32.442 74.25 111.924 111.924 0 0 0-23.366 28.387 79.491 79.491 0 0 0-3.573 63.726 83.948 83.948 0 0 0 35.436 42.291 51.315 51.315 0 0 0 3.669 5.6 86.886 86.886 0 0 0 44.415 32.249 164.927 164.927 0 0 1-106.21-61.892 152.082 152.082 0 0 1-22.014-40.167 149.055 149.055 0 0 1 6.564-120.015 202.714 202.714 0 0 1 44.029-53.202A192.012 192.012 0 0 0 131.03 76.458v-7.145a180.486 180.486 0 0 0-2.993-26.939c-1.255-7.435-3.09-14.869-4.731-22.208a80.965 80.965 0 0 1 13.807 7.145 159.446 159.446 0 0 1 14.773 10.718c2.704 2.124 5.311 4.345 7.917 6.566 34.856 30.222 61.119 69.133 85.547 108.334a129.75 129.75 0 0 0-9.655 28.966 136.634 136.634 0 0 0-3.669 29.353 134.116 134.116 0 0 0 26.07 79.754 138.396 138.396 0 0 0 25.587 26.456 132.164 132.164 0 0 0 24.332 15.256 152.203 152.203 0 0 1-44.898 84.775z",fill:"#ff9801"}),n.createElement("path",{d:"M147.831 500.912h-1.448c-61.756-8.7-113.963-50.15-136.432-108.334a158.725 158.725 0 0 1 7.338-127.355 212.528 212.528 0 0 1 45.96-55.809 181.787 181.787 0 0 0 57.933-132.473v-6.759a171.298 171.298 0 0 0-2.8-25.587c-.966-5.697-2.221-11.2-3.476-16.704l-1.159-5.117c-1.178-5.204 2.076-10.37 7.28-11.548a9.663 9.663 0 0 1 5.948.541 89.473 89.473 0 0 1 15.449 8.014 172.47 172.47 0 0 1 15.449 11.2c41.036 32.732 70.871 77.244 95.589 117.314a9.673 9.673 0 0 1 .483 9.655 121.056 121.056 0 0 0-9.655 26.842 128.158 128.158 0 0 0-2.607 26.456c.01 59.198 41.374 110.333 99.258 122.721a9.655 9.655 0 0 1 7.628 9.655c-3.186 77.244-61.216 141.742-141.163 156.129-5.253.927-10.254-2.588-11.181-7.84a9.65 9.65 0 0 1 6.353-10.795c29.99-9.8 50.517-37.492 51.174-69.037a67.618 67.618 0 0 0-14.387-40.746 56.78 56.78 0 0 1-24.139 31.091 33.122 33.122 0 0 1-33.408-1.448c-4.644-2.626-6.276-8.516-3.659-13.16.145-.261.299-.502.473-.743a91.187 91.187 0 0 0 16.511-52.429v-.772a90.743 90.743 0 0 0-14.58-48.277 98.107 98.107 0 0 0-19.311-21.532v9.945a111.13 111.13 0 0 1-35.436 81.299 103.445 103.445 0 0 0-21.532 25.78 69.873 69.873 0 0 0-3.09 56.002 76.304 76.304 0 0 0 49.533 44.512c5.33.801 9.009 5.774 8.207 11.104-.801 5.328-5.774 8.997-11.103 8.205zM137.113 39.478v1.738a188.136 188.136 0 0 1 3.09 28.194v7.435A200.926 200.926 0 0 1 76.38 223.318a192.998 192.998 0 0 0-42.098 50.498 139.414 139.414 0 0 0-6.469 111.907 148.682 148.682 0 0 0 65.561 76.568 89.522 89.522 0 0 1-15.159-49.726 91.25 91.25 0 0 1 9.655-40.167 119.46 119.46 0 0 1 25.394-31.091 92.026 92.026 0 0 0 29.449-67.588v-3.09a88.799 88.799 0 0 0-4.248-24.911 9.653 9.653 0 0 1 6.237-12.147 9.638 9.638 0 0 1 7.473.657 119.392 119.392 0 0 1 44.705 40.649 110.062 110.062 0 0 1 17.669 58.898v1.159a110.343 110.343 0 0 1-13.035 52.139 12.555 12.555 0 0 0 4.731-1.448c9.655-5.31 17.283-22.497 18.345-35.436.434-5.31 5.088-9.269 10.409-8.844a9.61 9.61 0 0 1 6.006 2.761 95.586 95.586 0 0 1 32.153 68.168 89.528 89.528 0 0 1-13.711 47.408 146.774 146.774 0 0 0 69.133-108.817c-62.77-17.37-106.22-74.492-106.21-139.618a146.655 146.655 0 0 1 3.283-30.994 139.876 139.876 0 0 1 8.497-26.263c-23.27-37.077-51.27-78.402-88.541-108.045a113.049 113.049 0 0 0-8.496-6.467z"}),n.createElement("path",{d:"M367.203 356.081a144.841 144.841 0 0 1-89.506-30.994 143.882 143.882 0 0 1-55.326-113.838 146.655 146.655 0 0 1 3.283-30.994 140.652 140.652 0 0 1 10.814-31.091c23.965-50.498 74.839-82.699 130.735-82.747 79.986.019 144.813 64.875 144.803 144.861a144.848 144.848 0 0 1-55.297 113.809 143.543 143.543 0 0 1-89.506 30.994zm0-270.353c-48.47.019-92.586 27.943-113.355 71.74a121.83 121.83 0 0 0-9.655 26.939 127.805 127.805 0 0 0-2.51 26.842c.01 59.198 41.374 110.333 99.258 122.721a125.763 125.763 0 0 0 26.263 2.8c69.326 0 125.521-56.195 125.521-125.521S436.519 85.728 367.203 85.728z"}),n.createElement("path",{d:"M380.527 240.215h-26.649c-9.279.097-17.109-6.894-18.056-16.125l-7.242-90.085a17.201 17.201 0 0 1 4.538-13.035 18.38 18.38 0 0 1 13.518-5.89h41.036a18.375 18.375 0 0 1 13.518 5.89 17.204 17.204 0 0 1 4.635 13.035l-7.242 90.472c-1.139 9.076-8.912 15.854-18.056 15.738zm-25.49-19.311h24.525l6.952-86.899h-38.622l7.145 86.899zM372.32 317.459h-10.235c-13.151-.048-23.801-10.698-23.849-23.849v-10.235c.048-13.151 10.698-23.801 23.849-23.849h10.138c13.189 0 23.888 10.66 23.946 23.849v10.138c0 13.18-10.669 23.888-23.849 23.946zm-10.138-38.622a4.635 4.635 0 0 0-4.538 4.538v10.138a4.635 4.635 0 0 0 4.538 4.538h10.138a4.635 4.635 0 0 0 4.538-4.538v-10.138a4.635 4.635 0 0 0-4.538-4.538h-10.138z"}))}function _M(i){return n.createElement("svg",{viewBox:"0 0 512.002 512.002",...i},n.createElement("path",{d:"M481.929 324.35c0 65.951-53.464 119.415-119.415 119.415a111.938 111.938 0 0 1-17.059-1.279c-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221a125.333 125.333 0 0 1 17.059-1.194c65.951-.001 119.415 53.462 119.415 119.414z",fill:"#c52828"}),n.createElement("path",{d:"M447.81 324.35c-.026 59.341-43.621 109.657-102.356 118.135-58.735-8.478-102.33-58.795-102.356-118.135-.017-59.375 43.595-109.742 102.356-118.221 58.77 8.487 102.373 58.846 102.356 118.221z",fill:"#f44335"}),n.createElement("g",{fill:"#fdd834"},n.createElement("path",{d:"M374.285 341.409h-23.542a7.251 7.251 0 0 1-7.421-6.397l-6.397-79.923a7.174 7.174 0 0 1 6.807-7.506c.205-.009.409-.009.614 0h36.251a7.16 7.16 0 0 1 7.421 6.892c.009.205.009.409 0 .614l-6.397 79.923a7.249 7.249 0 0 1-7.336 6.397zM357.993 375.527h9.041c6.926 0 12.539 5.612 12.539 12.539v9.041c0 6.926-5.612 12.539-12.539 12.539h-9.041c-6.926 0-12.539-5.612-12.539-12.539v-9.041c0-6.926 5.621-12.539 12.539-12.539z"})),n.createElement("path",{d:"M318.415 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 159.575 159.575 0 0 1-61.413 12.283 149.268 149.268 0 0 1-20.556-1.365 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.753 152.753 0 0 1-12.368-60.219 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504 7.335-11.771c4.504-7.353 14.117-9.656 21.469-5.143a15.525 15.525 0 0 1 5.143 5.143l34.716 55.869c-2.644 4.18-5.032 8.53-7.335 12.709a96.424 96.424 0 0 0-11.515 44.439 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.344 115.344 0 0 0-11.6 31.048 120.546 120.546 0 0 0-2.729 25.589c.041 48.9 29.878 92.828 75.315 110.885z",fill:"#0377bc"}),n.createElement("path",{d:"M277.217 435.235a153.553 153.553 0 0 1-19.192 22.859 157.081 157.081 0 0 1-50.154 33.095 158.847 158.847 0 0 1-40.772 10.833 155.17 155.17 0 0 1-40.857-10.833 156.698 156.698 0 0 1-84.017-82.311 152.657 152.657 0 0 1-12.368-60.134 150.27 150.27 0 0 1 17.059-69.005 752.602 752.602 0 0 1 42.648-68.237c15.268-22.774 29.513-46.145 44.013-69.346l34.119-54.504c9.212 14.671 18.339 29.427 27.465 44.098-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.026 98.026 0 0 0 8.018 38.725 100.313 100.313 0 0 0 21.921 31.56 106.83 106.83 0 0 0 9.98 8.53 115.323 115.323 0 0 0-12.283 31.133 120.546 120.546 0 0 0-2.729 25.589c.043 48.9 29.88 92.828 75.317 110.885z",fill:"#02a9f4"}),n.createElement("path",{d:"M411.388 144.545a477.911 477.911 0 0 0-27.636-43.842c-9.894-14.586-19.192-29.598-28.489-44.525L328.395 13.53c-3.037-4.708-9.323-6.065-14.031-3.028a10.259 10.259 0 0 0-3.028 3.028l-12.794 20.215-14.074 22.433c-9.297 14.927-18.595 29.939-28.489 44.525-6.994 10.236-13.989 20.471-20.301 31.133-2.644 4.18-5.032 8.53-7.335 12.709a96.502 96.502 0 0 0-10.833 44.354 98.758 98.758 0 0 0 29.939 70.284 106.83 106.83 0 0 0 9.98 8.53 119.423 119.423 0 0 1 84.017-60.902 114.9 114.9 0 0 1 21.068-1.877c5.186.009 10.372.324 15.524.938a119.369 119.369 0 0 1 39.578 12.539 96.462 96.462 0 0 0-6.228-73.866z",fill:"#0377bc"}),n.createElement("path",{d:"M379.573 188.899a93.046 93.046 0 0 1-1.535 17.059 131.537 131.537 0 0 0-15.524-1.024 114.797 114.797 0 0 0-21.068 1.877 119.425 119.425 0 0 0-84.017 60.902 106.96 106.96 0 0 1-9.98-8.53c-31.099-29.743-38.878-76.417-19.106-114.638 2.303-4.35 4.691-8.53 7.335-12.709 6.312-10.662 13.306-20.898 20.301-31.133 9.894-14.586 19.192-29.598 28.489-44.525l14.074-22.433 14.074 22.433c9.297 14.927 18.595 29.939 28.489 44.525a477.911 477.911 0 0 1 27.636 43.842 96.401 96.401 0 0 1 10.832 44.354z",fill:"#02a9f4"}),n.createElement("path",{d:"M187.656 512.002a167.398 167.398 0 0 1-64.655-12.88 165.226 165.226 0 0 1-88.623-86.746 160.466 160.466 0 0 1-13.05-63.631 158.81 158.81 0 0 1 17.656-72.928 698.388 698.388 0 0 1 39.663-63.887l3.412-5.032c12.027-17.998 23.627-36.677 34.886-54.76L167.1 71.531c6.986-11.353 21.861-14.893 33.214-7.898a24.1 24.1 0 0 1 7.898 7.898l17.059 27.38 17.827 28.404a8.521 8.521 0 0 1 0 9.383c-2.559 4.009-4.777 8.018-6.994 12.112a87.69 87.69 0 0 0-10.065 40.089 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83 99.608 99.608 0 0 0 9.212 7.847 8.534 8.534 0 0 1 2.303 10.918 106.955 106.955 0 0 0-10.747 28.745 112.483 112.483 0 0 0-2.559 23.712c.009 45.429 27.721 86.26 69.943 103.038 4.393 1.706 6.559 6.653 4.853 11.046a8.584 8.584 0 0 1-.93 1.749 162.407 162.407 0 0 1-20.301 24.139 164.29 164.29 0 0 1-52.884 34.886 167.489 167.489 0 0 1-64.653 12.795zm0-435.012a6.99 6.99 0 0 0-6.056 3.412l-50.154 80.69c-11.344 18.168-23.03 37.019-35.227 55.187l-3.412 5.032a687.543 687.543 0 0 0-38.725 62.266 141.613 141.613 0 0 0-15.695 65.166 143.56 143.56 0 0 0 11.686 56.893 148.16 148.16 0 0 0 79.411 77.79 152.855 152.855 0 0 0 116.344 0 147.616 147.616 0 0 0 47.425-31.133 143.446 143.446 0 0 0 12.027-13.306c-43.322-21.802-70.668-66.139-70.711-114.638a129.576 129.576 0 0 1 2.9-27.38 124.357 124.357 0 0 1 9.212-26.954 136.293 136.293 0 0 1-5.203-4.691 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 1.621-3.071 3.241-5.971 4.862-8.53l-14.927-24.054-17.059-27.38a7.087 7.087 0 0 0-6.141-3.837z"}),n.createElement("path",{d:"M99.971 442.4A8.521 8.521 0 0 1 94 439.926a129.631 129.631 0 0 1-28.318-41.113 126.28 126.28 0 0 1-10.236-50.069 124.503 124.503 0 0 1 13.818-57.234c1.868-4.325 6.883-6.32 11.208-4.452s6.32 6.883 4.452 11.208c-.162.375-.35.742-.563 1.092a107.494 107.494 0 0 0-11.856 49.387 109.211 109.211 0 0 0 8.53 43.331 112.626 112.626 0 0 0 24.565 35.739c3.344 3.318 3.369 8.717.051 12.061a8.549 8.549 0 0 1-6.022 2.525l.342-.001zM257.428 276.242a8.526 8.526 0 0 1-5.118-1.706 115.222 115.222 0 0 1-10.747-9.212 109.87 109.87 0 0 1-23.798-34.119 106.411 106.411 0 0 1-8.53-42.136c0-16.803 4.035-33.359 11.771-48.278 2.559-4.862 5.118-9.212 7.677-13.306 6.312-10.662 13.392-21.068 20.386-31.218 9.041-13.903 17.912-27.807 26.442-41.881L304 8.753c5.485-8.734 17.017-11.379 25.751-5.894a18.698 18.698 0 0 1 5.894 5.894l28.574 45.634c8.53 13.733 17.059 27.977 26.612 41.539l1.706 2.474a457.473 457.473 0 0 1 26.442 42.136 104.968 104.968 0 0 1 6.824 80.434c-1.433 4.487-6.235 6.969-10.722 5.536a8.282 8.282 0 0 1-1.39-.589 112.612 112.612 0 0 0-106.535 2.388 110.28 110.28 0 0 0-42.136 43.416 8.52 8.52 0 0 1-5.715 4.265l-1.877.256zm62.437-258.959a1.541 1.541 0 0 0-1.365.768l-28.489 45.378c-8.53 13.903-17.571 28.233-26.954 42.051-6.909 10.065-13.903 20.301-20.045 30.707-2.644 4.18-4.947 8.53-7.165 12.368a87.722 87.722 0 0 0-9.809 40.345 89.456 89.456 0 0 0 7.335 35.398 92.438 92.438 0 0 0 20.045 28.83l1.791 1.706a127.216 127.216 0 0 1 43.331-41.369 129.73 129.73 0 0 1 113.359-7.25 87.904 87.904 0 0 0-8.53-57.831 444.102 444.102 0 0 0-25.589-40.516l-1.706-2.474c-9.383-13.818-18.339-28.148-26.954-42.051L321.23 18.05a1.532 1.532 0 0 0-1.365-.767z"}),n.createElement("path",{d:"M271.246 243.233a8.519 8.519 0 0 1-5.971-2.388 75.502 75.502 0 0 1-16.292-23.456 71.923 71.923 0 0 1-5.885-28.489 70.537 70.537 0 0 1 7.933-32.498c1.877-3.582 4.009-7.25 6.227-10.833l.512-.768a8.538 8.538 0 0 1 11.609-3.284 8.538 8.538 0 0 1 3.284 11.609 6.997 6.997 0 0 1-.392.631l-.512.853c-2.132 3.327-3.924 6.568-5.63 9.724a53.307 53.307 0 0 0-5.971 24.565 54.816 54.816 0 0 0 4.435 21.665 58.198 58.198 0 0 0 12.624 18.083c3.395 3.267 3.489 8.666.222 12.061a8.518 8.518 0 0 1-6.193 2.61v-.085z"}),n.createElement("path",{d:"M362.514 452.294c-70.66 0-127.945-57.285-127.945-127.945a129.576 129.576 0 0 1 2.9-27.38 123.98 123.98 0 0 1 12.453-33.351 127.15 127.15 0 0 1 48.619-50.154c37.94-21.495 84.136-22.518 122.997-2.729 62.744 32.489 87.275 109.7 54.777 172.452-22.005 42.512-65.916 69.184-113.801 69.107zm0-238.83c-40.763.009-78.234 22.382-97.579 58.257a107.238 107.238 0 0 0-10.747 28.83 112.818 112.818 0 0 0-2.559 23.798c0 61.243 49.643 110.885 110.885 110.885s110.885-49.642 110.885-110.885-49.643-110.885-110.885-110.885z"}),n.createElement("path",{d:"M374.285 349.939h-23.542c-8.231.085-15.157-6.141-15.95-14.33l-6.397-79.496a15.26 15.26 0 0 1 4.009-11.515 16.312 16.312 0 0 1 11.942-5.203h36.251a16.31 16.31 0 0 1 11.941 5.203 15.27 15.27 0 0 1 4.094 11.515l-6.397 79.923c-.999 8.026-7.865 14.013-15.951 13.903zm-22.519-17.06h21.665l6.141-76.767h-34.119l6.313 76.767zM367.034 418.176h-9.041c-11.617-.043-21.026-9.451-21.068-21.068v-9.041c.043-11.617 9.451-21.026 21.068-21.068h8.956c11.651 0 21.102 9.417 21.153 21.068v8.956c.001 11.651-9.416 21.11-21.068 21.153zm-8.956-34.119a4.095 4.095 0 0 0-4.009 4.009v8.956a4.095 4.095 0 0 0 4.009 4.009h8.956a4.095 4.095 0 0 0 4.009-4.009v-8.956a4.095 4.095 0 0 0-4.009-4.009h-8.956z"}))}function Eue(i){return n.createElement("svg",{viewBox:"0 0 512 512",...i},n.createElement("path",{fill:"currentColor",d:"M462,226c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.52,0,10-4.48,10-10S467.52,226,462,226z"}),n.createElement("path",{fill:"currentColor",d:"M50,226c-5.52,0-10,4.48-10,10s4.48,10,10,10s10-4.48,10-10S55.52,226,50,226z"}),n.createElement("path",{fill:"currentColor",d:`M502,126h-0.027C508.265,117.637,512,107.248,512,96c0-27.57-22.43-50-50-50s-50,22.43-50,50 c0,11.248,3.735,21.637,10.027,30H422c-5.522,0-10,4.478-10,10v50.03c-7.399,0.025-17.158,0.065-23,0.113V166.63 c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.435c-0.931-0.964-1.899-2.045-2.923-3.258 c-10.745-12.754-24.515-23.761-40.077-32.106V121.83c0-5.522-4.478-10-10-10c-5.522,0-10,4.478-10,10v12.983 @@ -403,24 +403,24 @@ body { c-14.663-3.788-27.83-11.575-36.517-21.887c-2.039-2.417-4.216-4.742-6.483-6.965v-27.672c9.465,6.201,17.88,13.567,24.789,21.767 c4.64,5.496,10.324,11.234,18.211,14.57V223.458z M412,425h-23v-19h23V425z M412,386h-23V246h23V386z M412,226h-23v-19.856 c5.683-0.048,15.526-0.088,23-0.113V226z M492,446h-60V146h20v50c0,5.522,4.478,10,10,10c5.522,0,10-4.478,10-10v-50h20V446z - M462,126c-16.542,0-30-13.458-30-30s13.458-30,30-30s30,13.458,30,30S478.542,126,462,126z`}))}function Oue(i){return a.createElement("svg",{viewBox:"0 0 511.448 511.448",...i},a.createElement("path",{d:"M344.556 112.216C318.38 78.84 291.34 44.344 269.516 7.32c-5.76-9.76-21.824-9.76-27.552 0-21.856 37.024-48.896 71.52-75.072 104.896-53.056 67.68-103.168 131.616-103.168 207.232 0 105.888 86.112 192 192 192s192-86.112 192-192c0-75.616-50.112-139.552-103.168-207.232z",fill:"#2196f3"}),a.createElement("g",{fill:"#fafafa"},a.createElement("path",{d:"M207.724 287.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.832 0-16 7.168-16 16s7.168 16 16 16 16-7.168 16-16-7.168-16-16-16zM303.724 447.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM175.724 415.448a16.07 16.07 0 0 1-11.328-4.672c-6.24-6.24-6.24-16.384 0-22.624l160-160c6.24-6.24 16.384-6.24 22.624 0s6.24 16.384 0 22.624l-160 160a15.943 15.943 0 0 1-11.296 4.672z"})))}function SM(i){return a.createElement("svg",{viewBox:"0 0 508.16 508.16",...i},a.createElement("path",{d:"M504.18 13.67a3.924 3.924 0 0 0-.42.02H4a4 4 0 0 0-4 4v47.28a4 4 0 0 0 4 4h19.72l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.16a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h479.8a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.64-42.08h9.84a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h19.72a4 4 0 0 0 4-4V17.69a4 4 0 0 0-3.98-4.02zM99.08 486.49H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm26.8 378.24h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm.16-47.28h-18.96V68.97h18.96v39.28zm247.84 378.24h-240v-39.28h240v39.28zm-240-47.28v-39.28h239.68v39.28H133.88zm240-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm-240-47.28V68.97h239.84v39.28H133.88zm266.64 378.24h-18.64l-.32-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm.32-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm-18.96-47.28V68.97h18.8v39.28h-18.8zm63.56 8v39.28h-36.92v-39.28h36.92zm-36.76-8V68.97h36.92v39.28h-36.92zm36.76 55.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.76l-.16-39.28h36.92zm42.68 181.12h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h36.92v17.44a4 4 0 0 0 8 0v-17.44h22.04l12.48 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6V68.97h22.04l12.56 39.28zm11.56-47.28H8V21.69h491.76l-.08 39.28z",fill:"currentColor"}),a.createElement("path",{d:"M454.32 37.33h-13.76a4 4 0 0 0 0 8h13.76a4 4 0 0 0 0-8zM414.84 37.33h-96a4 4 0 0 0 0 8h96a4 4 0 0 0 0-8z",fill:"currentColor"}))}function Eue(i){return a.createElement("svg",{viewBox:"0 0 63.907 63.907",fill:"currentColor",...i},a.createElement("circle",{fill:"currentColor",cx:30.515,cy:6.136,r:6.136}),a.createElement("path",{fill:"currentColor",d:"M47.399 27.455C42.346 24.53 38.2 20.579 34.71 15.931c-2.193-3.084-7.991-2.923-10.347-.097-3.584 3.487-6.625 7.081-9.037 10.677a3.209 3.209 0 0 0 5.329 3.573 54.205 54.205 0 0 1 3.59-4.734c-.051 3.333.116 9.347.2 12.05.028.9-.177 1.78-.595 2.579-3.308 6.317-5.424 12.294-7.572 19.606a3.37 3.37 0 1 0 6.465 1.901c1.982-6.742 3.897-12.201 6.884-17.981.152.006.304.006.458-.001 1.907 5.69 3.815 11.383 5.725 17.073 1.387 4.147 7.822 1.993 6.431-2.155-2.087-6.221-4.171-12.439-6.251-18.659-.121-.357-.414-1.755-.455-2.211-.344-3.832-.469-7.652-.432-11.477a51.027 51.027 0 0 0 9.782 7.328c3.597 2.088 6.063-3.891 2.514-5.948z"}))}function _ue(i){return a.createElement("svg",{viewBox:"0 0 285 285",...i},a.createElement("g",null,a.createElement("path",{fill:"currentColor",d:`M88.4,87.996c2.525-2.146,2.832-5.933,0.687-8.458C82.801,72.144,79.34,62.719,79.34,53c0-22.607,18.393-41,41-41 + M462,126c-16.542,0-30-13.458-30-30s13.458-30,30-30s30,13.458,30,30S478.542,126,462,126z`}))}function _ue(i){return n.createElement("svg",{viewBox:"0 0 511.448 511.448",...i},n.createElement("path",{d:"M344.556 112.216C318.38 78.84 291.34 44.344 269.516 7.32c-5.76-9.76-21.824-9.76-27.552 0-21.856 37.024-48.896 71.52-75.072 104.896-53.056 67.68-103.168 131.616-103.168 207.232 0 105.888 86.112 192 192 192s192-86.112 192-192c0-75.616-50.112-139.552-103.168-207.232z",fill:"#2196f3"}),n.createElement("g",{fill:"#fafafa"},n.createElement("path",{d:"M207.724 287.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.832 0-16 7.168-16 16s7.168 16 16 16 16-7.168 16-16-7.168-16-16-16zM303.724 447.448c-26.464 0-48-21.536-48-48s21.536-48 48-48 48 21.536 48 48-21.536 48-48 48zm0-64c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM175.724 415.448a16.07 16.07 0 0 1-11.328-4.672c-6.24-6.24-6.24-16.384 0-22.624l160-160c6.24-6.24 16.384-6.24 22.624 0s6.24 16.384 0 22.624l-160 160a15.943 15.943 0 0 1-11.296 4.672z"})))}function SM(i){return n.createElement("svg",{viewBox:"0 0 508.16 508.16",...i},n.createElement("path",{d:"M504.18 13.67a3.924 3.924 0 0 0-.42.02H4a4 4 0 0 0-4 4v47.28a4 4 0 0 0 4 4h19.72l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.04a4 4 0 0 0 3.8 5.24h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.08a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42.16a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h9.64l-13.44 42a4 4 0 0 0 .56 3.56 4 4 0 0 0 3.24 1.64h479.8a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.44-42.08h9.64a4 4 0 0 0 3.24-1.64 4 4 0 0 0 .56-3.56l-13.64-42.08h9.84a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h9.44a4 4 0 0 0 4-5.24l-13.44-42.04h19.72a4 4 0 0 0 4-4V17.69a4 4 0 0 0-3.98-4.02zM99.08 486.49H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm0-47.28H19.56l12.56-39.28h66.96v39.28zm26.8 378.24h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm0-47.28h-18.8v-39.28h18.8v39.28zm.16-47.28h-18.96V68.97h18.96v39.28zm247.84 378.24h-240v-39.28h240v39.28zm-240-47.28v-39.28h239.68v39.28H133.88zm240-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm0-47.28h-240v-39.28h240v39.28zm-240-47.28V68.97h239.84v39.28H133.88zm266.64 378.24h-18.64l-.32-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm.32-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm0-47.28h-18.96v-39.28h18.96v39.28zm-18.96-47.28V68.97h18.8v39.28h-18.8zm63.56 8v39.28h-36.92v-39.28h36.92zm-36.76-8V68.97h36.92v39.28h-36.92zm36.76 55.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.92v-39.28h36.92zm0 47.28v39.28h-36.76l-.16-39.28h36.92zm42.68 181.12h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h66.96l12.48 39.28zm0-47.28h-79.44v-39.28h36.92v17.44a4 4 0 0 0 8 0v-17.44h22.04l12.48 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6v-39.28h22.04l12.56 39.28zm0-47.28h-34.6V68.97h22.04l12.56 39.28zm11.56-47.28H8V21.69h491.76l-.08 39.28z",fill:"currentColor"}),n.createElement("path",{d:"M454.32 37.33h-13.76a4 4 0 0 0 0 8h13.76a4 4 0 0 0 0-8zM414.84 37.33h-96a4 4 0 0 0 0 8h96a4 4 0 0 0 0-8z",fill:"currentColor"}))}function Sue(i){return n.createElement("svg",{viewBox:"0 0 63.907 63.907",fill:"currentColor",...i},n.createElement("circle",{fill:"currentColor",cx:30.515,cy:6.136,r:6.136}),n.createElement("path",{fill:"currentColor",d:"M47.399 27.455C42.346 24.53 38.2 20.579 34.71 15.931c-2.193-3.084-7.991-2.923-10.347-.097-3.584 3.487-6.625 7.081-9.037 10.677a3.209 3.209 0 0 0 5.329 3.573 54.205 54.205 0 0 1 3.59-4.734c-.051 3.333.116 9.347.2 12.05.028.9-.177 1.78-.595 2.579-3.308 6.317-5.424 12.294-7.572 19.606a3.37 3.37 0 1 0 6.465 1.901c1.982-6.742 3.897-12.201 6.884-17.981.152.006.304.006.458-.001 1.907 5.69 3.815 11.383 5.725 17.073 1.387 4.147 7.822 1.993 6.431-2.155-2.087-6.221-4.171-12.439-6.251-18.659-.121-.357-.414-1.755-.455-2.211-.344-3.832-.469-7.652-.432-11.477a51.027 51.027 0 0 0 9.782 7.328c3.597 2.088 6.063-3.891 2.514-5.948z"}))}function xue(i){return n.createElement("svg",{viewBox:"0 0 285 285",...i},n.createElement("g",null,n.createElement("path",{fill:"currentColor",d:`M88.4,87.996c2.525-2.146,2.832-5.933,0.687-8.458C82.801,72.144,79.34,62.719,79.34,53c0-22.607,18.393-41,41-41 c22.607,0,41,18.393,41,41c0,9.729-3.467,19.161-9.761,26.557c-2.148,2.523-1.843,6.311,0.681,8.458 c1.129,0.961,2.511,1.431,3.886,1.431c1.698,0,3.386-0.717,4.572-2.111C168.858,77.77,173.34,65.576,173.34,53 c0-29.225-23.775-53-53-53c-29.225,0-53,23.775-53,53c0,12.563,4.476,24.748,12.602,34.31C82.089,89.835,85.873,90.141,88.4,87.996 - z`}),a.createElement("path",{fill:"currentColor",d:`M120.186,41.201c13.228,0,23.812,8.105,27.313,19.879c0.761-2.562,1.176-5.271,1.176-8.08 + z`}),n.createElement("path",{fill:"currentColor",d:`M120.186,41.201c13.228,0,23.812,8.105,27.313,19.879c0.761-2.562,1.176-5.271,1.176-8.08 c0-15.649-12.685-28.335-28.335-28.335c-15.648,0-28.334,12.686-28.334,28.335c0,2.623,0.364,5.16,1.031,7.571 - C96.691,49.076,107.152,41.201,120.186,41.201z`}),a.createElement("path",{fill:"currentColor",d:`M234.21,169.856c-3.769-22.452-19.597-26.04-27.034-26.462c-2.342-0.133-4.516-1.32-5.801-3.282 + C96.691,49.076,107.152,41.201,120.186,41.201z`}),n.createElement("path",{fill:"currentColor",d:`M234.21,169.856c-3.769-22.452-19.597-26.04-27.034-26.462c-2.342-0.133-4.516-1.32-5.801-3.282 c-5.388-8.225-12.609-10.4-18.742-10.4c-4.405,0-8.249,1.122-10.449,1.932c-0.275,0.102-0.559,0.15-0.837,0.15 c-0.87,0-1.701-0.47-2.163-1.262c-5.472-9.387-13.252-11.809-19.822-11.809c-3.824,0-7.237,0.82-9.548,1.564 c-0.241,0.077-0.764,0.114-1.001,0.114c-1.256,0-2.637-1.03-2.637-2.376V69.753c0-11.035-8.224-16.552-16.5-16.552 c-8.276,0-16.5,5.517-16.5,16.552v84.912c0,4.989-3.811,8.074-7.918,8.074c-2.495,0-4.899-1.138-6.552-3.678l-7.937-12.281 c-3.508-5.788-8.576-8.188-13.625-8.189c-11.412-0.001-22.574,12.258-14.644,25.344l62.491,119.692 c0.408,0.782,1.225,1.373,2.108,1.373h87.757c1.253,0,2.289-1.075,2.365-2.325l2.196-35.816c0.025-0.413,0.162-0.84,0.39-1.186 - C231.591,212.679,237.828,191.414,234.21,169.856z`})))}function Ui(i){return a.createElement("svg",{viewBox:"1 -10 511.99999 511",...i},a.createElement("g",{fill:"currentColor"},a.createElement("path",{d:"M 405.5 150 C 405.5 232.566406 338.566406 299.5 256 299.5 C 173.433594 299.5 106.5 232.566406 106.5 150 C 106.5 67.433594 173.433594 0.5 256 0.5 C 338.566406 0.5 405.5 67.433594 405.5 150 Z M 405.5 150 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(25.882353%,75.294118%,88.627451%)",fillOpacity:1}}),a.createElement("path",{d:"M 512 342.921875 C 512 425.488281 445.066406 492.421875 362.5 492.421875 C 279.933594 492.421875 213 425.488281 213 342.921875 C 213 260.355469 279.933594 193.421875 362.5 193.421875 C 445.066406 193.421875 512 260.355469 512 342.921875 Z M 512 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,81.568627%,38.039216%)",fillOpacity:1}}),a.createElement("path",{d:"M 220.746094 295.308594 C 232.050781 298.039062 243.855469 299.5 256 299.5 C 321.917969 299.5 377.871094 256.835938 397.753906 197.613281 C 386.449219 194.878906 374.644531 193.421875 362.5 193.421875 C 296.582031 193.421875 240.628906 236.085938 220.746094 295.308594 Z M 220.746094 295.308594 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(28.627451%,74.117647%,56.470588%)",fillOpacity:1}}),a.createElement("path",{d:"M 299 342.921875 C 299 425.488281 232.066406 492.421875 149.5 492.421875 C 66.933594 492.421875 0 425.488281 0 342.921875 C 0 260.355469 66.933594 193.421875 149.5 193.421875 C 232.066406 193.421875 299 260.355469 299 342.921875 Z M 299 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(98.039216%,43.921569%,69.803922%)",fillOpacity:1}}),a.createElement("path",{d:"M 114.246094 197.613281 C 134.128906 256.835938 190.082031 299.5 256 299.5 C 268.144531 299.5 279.949219 298.039062 291.253906 295.308594 C 271.371094 236.085938 215.417969 193.421875 149.5 193.421875 C 137.355469 193.421875 125.550781 194.878906 114.246094 197.613281 Z M 114.246094 197.613281 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(68.627451%,48.235294%,77.647059%)",fillOpacity:1}}),a.createElement("path",{d:"M 213 342.921875 C 213 383.800781 229.414062 420.839844 256 447.828125 C 282.585938 420.839844 299 383.800781 299 342.921875 C 299 302.042969 282.585938 265.003906 256 238.015625 C 229.414062 265.003906 213 302.042969 213 342.921875 Z M 213 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(93.72549%,38.039216%,13.333333%)",fillOpacity:1}}),a.createElement("path",{d:"M 291.253906 295.320312 C 279.949219 298.046875 268.140625 299.5 256 299.5 C 243.859375 299.5 232.050781 298.046875 220.746094 295.320312 C 228.058594 273.542969 240.242188 254.015625 256 238.015625 C 271.757812 254.015625 283.941406 273.542969 291.253906 295.320312 Z M 291.253906 295.320312 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,100%,100%)",fillOpacity:1}})))}function Sue(i){return a.createElement("svg",{width:32,height:32,viewBox:"0 0 365.445 365.445",...i},a.createElement("g",{fill:"currentColor"},a.createElement("path",{d:"M146.7 162.775h-26.8a6.655 6.655 0 0 0-6.647 6.647v26.602a6.653 6.653 0 0 0 6.647 6.646h26.8a6.654 6.654 0 0 0 6.647-6.646v-26.602a6.655 6.655 0 0 0-6.647-6.647zM245.547 162.775h-26.801a6.653 6.653 0 0 0-6.646 6.647v26.602a6.652 6.652 0 0 0 6.646 6.646h26.801a6.654 6.654 0 0 0 6.646-6.646v-26.602a6.655 6.655 0 0 0-6.646-6.647z"})),a.createElement("path",{d:"M345.445 1.204H20c-11.046 0-20 8.954-20 20v323.037c0 11.045 8.954 20 20 20h325.445c11.045 0 20-8.955 20-20V21.204c0-11.045-8.953-20-20-20zM182.723 287.66c-57.955 0-104.937-46.981-104.937-104.937 0-57.957 46.982-104.938 104.937-104.938S287.66 124.767 287.66 182.723 240.678 287.66 182.723 287.66z",fill:"currentColor"}))}function xue(i){return a.createElement("svg",{width:32,height:32,viewBox:"0 0 45.659 45.659",...i},a.createElement("path",{fill:"currentColor",d:"M30.619 27.309V7.781C30.619 3.49 27.124 0 22.833 0c-4.29 0-7.785 3.491-7.785 7.78v19.528a10.722 10.722 0 0 0-3.05 7.522c0 5.972 4.857 10.828 10.829 10.828 5.97 0 10.834-4.856 10.834-10.828 0-2.918-1.141-5.572-3.042-7.521zM22.825 42.66c-4.316 0-7.824-3.512-7.824-7.828 0-2.527 1.174-4.779 3.077-6.211V16.237h3.372c.552 0 1-.47 1-1.022 0-.553-.448-1.021-1-1.021h-3.372v-2.466h3.372c.552 0 1-.434 1-.986a.989.989 0 0 0-1-.986h-3.372V7.78c0-2.636 2.119-4.78 4.754-4.78 2.637 0 4.756 2.144 4.756 4.781v20.871c1.903 1.434 3.047 3.671 3.047 6.18 0 4.316-3.494 7.828-7.81 7.828z"}),a.createElement("path",{fill:"currentColor",d:"M25.334 30.463V18.632h-5.002v11.831a4.973 4.973 0 0 0-2.537 4.369 5.038 5.038 0 0 0 5.038 5.046 5.034 5.034 0 0 0 5.034-5.046c0-1.866-.982-3.495-2.533-4.369z"}))}function fue(i){return a.createElement("svg",{viewBox:"0 0 297 297",...i},a.createElement("g",null,a.createElement("path",{fill:"currentColor",d:"m243.404,138.042c-5.775,0-10.458,4.683-10.458,10.458 0,46.564-37.883,84.446-84.446,84.446s-84.446-37.882-84.446-84.446 37.883-84.446 84.446-84.446c5.775,0 10.458-4.683 10.458-10.458s-4.683-10.457-10.458-10.457c-58.097,0-105.361,47.265-105.361,105.361s47.264,105.361 105.361,105.361 105.361-47.264 105.361-105.361c0-5.775-4.681-10.458-10.457-10.458z"}),a.createElement("path",{fill:"currentColor",d:"m142.963,121.344l-20.272-30.41c-3.203-4.807-9.695-6.104-14.502-2.9-4.805,3.202-6.104,9.695-2.9,14.502l20.279,30.422c-3.015,4.436-4.78,9.787-4.78,15.543 0,15.281 12.432,27.713 27.713,27.713 15.281,0 27.713-12.432 27.713-27.713 0-15.281-12.432-27.713-27.713-27.713-1.897-0.001-3.749,0.191-5.538,0.556zm12.335,27.156c0,3.748-3.05,6.798-6.798,6.798s-6.798-3.05-6.798-6.798 3.05-6.798 6.798-6.798 6.798,3.05 6.798,6.798z"}),a.createElement("path",{fill:"currentColor",d:"M148.5,0C66.617,0,0,66.617,0,148.5S66.617,297,148.5,297S297,230.383,297,148.5S230.383,0,148.5,0z M158.958,275.653 v-6.366c0-5.775-4.683-10.458-10.458-10.458c-5.775,0-10.458,4.683-10.458,10.458v6.366 c-62.027-5.056-111.64-54.668-116.695-116.695h6.366c5.775,0,10.458-4.683,10.458-10.458s-4.683-10.458-10.458-10.458h-6.366 c5.056-62.027,54.668-111.64,116.695-116.695v6.366c0,5.775,4.683,10.458,10.458,10.458c5.775,0,10.458-4.683,10.458-10.458v-6.366 c62.027,5.056,111.64,54.668,116.695,116.695h-6.366c-5.775,0-10.458,4.683-10.458,10.458s4.683,10.458,10.458,10.458h6.366 C270.598,220.985,220.985,270.598,158.958,275.653z"})))}function kue(i){return a.createElement("svg",{viewBox:"0 0 361 361",...i},a.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),a.createElement("path",{d:"M228.5 205.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H228.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),a.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),a.createElement("path",{d:"M232.826 280.905c-.339 3.356-18.813-.782-20.919-1.06l-45.073-5.94-45.074-5.94-14.507-1.912c-1.456-.192-6.201-.055-6.412-2.147-.621-6.157 0-12.699 0-18.878v-43.5-82.076-5.13c0-2.551 5.184-1.015 6.412-.853l35.438 4.67 83.723 11.035c1.457.192 6.201.055 6.412 2.147.169 1.673 0 3.451 0 5.13v144.454c0 6.448 10 6.448 10 0V136.451v-5.13c0-7.619-6.137-10.793-12.673-11.655l-28.531-3.76-88.411-11.652-9.897-1.304c-6.555-.864-12.473 4.9-12.473 11.38v144.832c0 2.023-.071 4.04.132 6.053.717 7.111 6.606 9.563 12.759 10.374l76.827 10.125 39.896 5.259 9.697 1.278c7.063.931 12.011-4.778 12.673-11.346.648-6.415-9.358-6.352-9.999 0z",fill:"currentColor"}))}function ga(i){return a.createElement("svg",{width:361,height:361,viewBox:"0 0 361 361",...i},a.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),a.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9zM265.732 265.178c.584 2.887-1.629 5.228-4.942 5.228H103.457c-3.313 0-6.474-2.341-7.058-5.228L75.24 130.633c-.584-2.887 1.628-5.228 4.942-5.228h157.333c3.313 0 6.474 2.34 7.058 5.228l21.159 134.545z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),a.createElement("path",{d:"M247.194 199.667h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5h-6.639c-2.726 0-5 2.274-5 5s2.275 5 5 5z",fill:"currentColor"}))}const Yue={"type-Device type":"Device type","type-airCondition":"Air conditioner","type-blind":"Blinds","type-blindButtons":"Blind controlled by buttons","type-button":"Button","type-buttonSensor":"Button with feedback","type-camera":"Camera","type-chart":"Chart","type-cie":"CIE color light","type-ct":"Color temperature","type-dimmer":"Dimmer","type-door":"Door","type-fireAlarm":"Fire alarm","type-floodAlarm":"Flood alarm","type-gate":"Gate","type-hue":"HUE light","type-humidity":"Humidity","type-illuminance":"Illuminance","type-image":"Image","type-info":"Information","type-instance":"Instance","type-light":"Light","type-location":"Position","type-locationOne":"Position as one state","type-lock":"Lock","type-media":"Media-player","type-motion":"Motion sensor","type-rgb":"RGB light","type-rgbSingle":"R,G,B light - single states","type-rgbwSingle":"R,G,B,W light - single states","type-slider":"Slider","type-socket":"Socket","type-temperature":"Temperature","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Vacuum cleaner","type-valve":"Valve","type-volume":"Volume","type-volumeGroup":"Volume group","type-warning":"Warning","type-weatherCurrent":"Current weather","type-weatherForecast":"Weather forecast","type-window":"Window sensor","type-windowTilt":"Window tilt sensor"},Que={"type-Device type":"Gerätetyp","type-airCondition":"Klimaanlage","type-blind":"Jalousien","type-blindButtons":"Jalousie über Tasten gesteuert","type-button":"Taste","type-buttonSensor":"Taste mit Rückmeldung","type-camera":"Kamera","type-chart":"Diagramm","type-cie":"CIE Farblicht","type-ct":"Farbtemperatur","type-dimmer":"Dimmer","type-door":"Türsensor","type-fireAlarm":"Feueralarm","type-floodAlarm":"Wasseralarm","type-gate":"Tor-Steuerung","type-hue":"HUE-Licht","type-humidity":"Feuchtigkeit","type-illuminance":"Beleuchtungsstärke","type-image":"Bild","type-info":"Information","type-instance":"Instanz","type-light":"Licht","type-location":"Position","type-locationOne":"Position als ein Zustand","type-lock":"Schloss","type-media":"Mediaplayer","type-motion":"Bewegungssensor","type-rgb":"RGB-Licht","type-rgbSingle":"R,G,B-Licht Einzelwerte","type-rgbwSingle":"R,G,B,W-Licht Einzelwerte","type-slider":"Schieberegler","type-socket":"Steckdose","type-temperature":"Temperatur","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Staubsauger","type-valve":"Ventil","type-volume":"Lautstärke","type-volumeGroup":"Lautstärke-Gruppe","type-warning":"Warnung","type-weatherCurrent":"Aktuelle Wetterlage","type-weatherForecast":"Wettervorhersage","type-window":"Fenstersensor","type-windowTilt":"Fensterkippung-Sensor"},Uue={"type-Device type":"Тип устройства","type-airCondition":"Кондиционер","type-blind":"Рольставни/Жалюзи","type-blindButtons":"Жалюзи управляющиеся кнопками","type-button":"Кнопка","type-buttonSensor":"Кнопка с обратной связью","type-camera":"Камера","type-chart":"Диаграмма","type-cie":"CIE свет","type-ct":"Цветовая температура","type-dimmer":"Диммер","type-door":"Датчик положения двери","type-fireAlarm":"Датчик дыма","type-floodAlarm":"Датчик затопления","type-gate":"Ворота","type-hue":"HUE свет","type-humidity":"Влажность","type-illuminance":"Освещенность","type-image":"Изображение","type-info":"Информация","type-instance":"Инстанция","type-light":"Свет","type-location":"Местоположение","type-locationOne":"Позиция в одном состоянии","type-lock":"Замок","type-media":"Медиа-плейер","type-motion":"Датчик движения","type-rgb":"RGB свет","type-rgbSingle":"R,G,B как отдельные значение","type-rgbwSingle":"R,G,B,W как отдельные значение","type-slider":"Ползунок","type-socket":"Розетка","type-temperature":"Температура","type-thermostat":"Термостат","type-url":"URL","type-vacuumCleaner":"Пылесос","type-valve":"Вентиль","type-volume":"Громкость","type-volumeGroup":"Группа громкости","type-warning":"Предупреждение","type-weatherCurrent":"Актуальная погода","type-weatherForecast":"Прогноз погоды","type-window":"Датчик открытия окна","type-windowTilt":"Датчик наклона окна"},vue={"type-Device type":"Tipo de dispositivo","type-airCondition":"Ar condicionado","type-blind":"persianas","type-blindButtons":"Persiana controlada por botões","type-button":"botão","type-buttonSensor":"Sensor de botão","type-camera":"câmera","type-chart":"Gráfico","type-cie":"Luz colorida CIE","type-ct":"Temperatura de cor","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"alarme de incêndio","type-floodAlarm":"alarme de inundação","type-gate":"portão","type-hue":"Luz HUE","type-humidity":"umidade","type-illuminance":"Iluminância","type-image":"imagem","type-info":"informação","type-instance":"exemplo","type-light":"luz","type-location":"localização","type-locationOne":"Posição como um estado","type-lock":"trancar","type-media":"mídia","type-motion":"movimento","type-rgb":"Luz RGB","type-rgbSingle":"Luz RGB única","type-rgbwSingle":"RGBW como valor único","type-slider":"controle deslizante","type-socket":"soquete","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirador de pó","type-valve":"válvula","type-volume":"volume","type-volumeGroup":"grupo de volume","type-warning":"aviso","type-weatherCurrent":"clima atual","type-weatherForecast":"previsão do tempo","type-window":"janela","type-windowTilt":"inclinação da janela"},bue={"type-Device type":"Typ urządzenia","type-airCondition":"Klimatyzator","type-blind":"żaluzje","type-blindButtons":"Roleta sterowana przyciskami","type-button":"przycisk","type-buttonSensor":"Czujnik przycisku","type-camera":"kamera","type-chart":"Wykres","type-cie":"Światło kolorowe CIE","type-ct":"Temperatura barwowa","type-dimmer":"opornik","type-door":"drzwi","type-fireAlarm":"alarm pożarowy","type-floodAlarm":"alarm przeciwpowodziowy","type-gate":"brama","type-hue":"Światło HUE","type-humidity":"wilgotność","type-illuminance":"Natężenie oświetlenia","type-image":"obraz","type-info":"Informacje","type-instance":"przykład","type-light":"światło","type-location":"lokalizacja","type-locationOne":"Pozycja jako państwa","type-lock":"zamek","type-media":"głoska bezdźwięczna","type-motion":"ruch","type-rgb":"Światło RGB","type-rgbSingle":"Pojedyncze światło RGB","type-rgbwSingle":"RGBW jako pojedyncza wartość","type-slider":"suwak","type-socket":"gniazdo","type-temperature":"temperatura","type-thermostat":"termostat","type-url":"Adres URL","type-vacuumCleaner":"Odkurzacz","type-valve":"zawór","type-volume":"tom","type-volumeGroup":"grupa woluminów","type-warning":"ostrzeżenie","type-weatherCurrent":"aktualna pogoda","type-weatherForecast":"prognoza pogody","type-window":"okno","type-windowTilt":"pochylenie okna"},$ue={"type-Device type":"Type d'appareil","type-airCondition":"Climatiseur","type-blind":"stores","type-blindButtons":"Store commandé par boutons","type-button":"bouton","type-buttonSensor":"Capteur de bouton","type-camera":"caméra","type-chart":"Graphique","type-cie":"lumière colorée CIE","type-ct":"Température de couleur","type-dimmer":"variateur","type-door":"porte","type-fireAlarm":"alarme incendie","type-floodAlarm":"alarme d'inondation","type-gate":"grille","type-hue":"Lumière HUE","type-humidity":"humidité","type-illuminance":"Éclairement","type-image":"image","type-info":"informations","type-instance":"exemple","type-light":"lumière","type-location":"emplacement","type-locationOne":"Position en tant qu'État","type-lock":"verrouillage","type-media":"médias","type-motion":"mouvement","type-rgb":"lumière RVB","type-rgbSingle":"Lumière RVB simple","type-rgbwSingle":"RGBW comme valeur unique","type-slider":"curseur","type-socket":"douille","type-temperature":"température","type-thermostat":"thermostat","type-url":"URL","type-vacuumCleaner":"Aspirateur","type-valve":"soupape","type-volume":"volume","type-volumeGroup":"groupe de volumes","type-warning":"avertissement","type-weatherCurrent":"météo actuelle","type-weatherForecast":"prévisions météorologiques","type-window":"fenêtre","type-windowTilt":"inclinaison de la fenêtre"},Pue={"type-Device type":"Tipo di dispositivo","type-airCondition":"Condizionatore d'aria","type-blind":"tende","type-blindButtons":"Tenda controllata da pulsanti","type-button":"pulsante","type-buttonSensor":"Sensore del pulsante","type-camera":"telecamera","type-chart":"Grafico","type-cie":"Luce colorata CIE","type-ct":"Temperatura del colore","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"allarme antincendio","type-floodAlarm":"allarme allagamento","type-gate":"cancello","type-hue":"Luce HUE","type-humidity":"umidità","type-illuminance":"Illuminamento","type-image":"immagine","type-info":"informazioni","type-instance":"esempio","type-light":"leggero","type-location":"posizione","type-locationOne":"Posizione come stato","type-lock":"serratura","type-media":"media","type-motion":"movimento","type-rgb":"luce RGB","type-rgbSingle":"Luce RGB singola","type-rgbwSingle":"RGBW come valore singolo","type-slider":"cursore","type-socket":"PRESA","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirapolvere","type-valve":"valvola","type-volume":"volume","type-volumeGroup":"gruppo di volumi","type-warning":"avvertimento","type-weatherCurrent":"meteo attuale","type-weatherForecast":"previsioni del tempo","type-window":"finestra","type-windowTilt":"inclinazione della finestra"},Wue={"type-Device type":"Apparaattype","type-airCondition":"Airconditioner","type-blind":"jaloezieën","type-blindButtons":"Jaloezie bediend door knoppen","type-button":"knop","type-buttonSensor":"Knopsensor","type-camera":"camera","type-chart":"Grafiek","type-cie":"CIE-kleurenlicht","type-ct":"Kleurtemperatuur","type-dimmer":"dimmer","type-door":"deur","type-fireAlarm":"brandalarm","type-floodAlarm":"overstromingsalarm","type-gate":"hek","type-hue":"HUE-licht","type-humidity":"vochtigheid","type-illuminance":"Verlichtingssterkte","type-image":"afbeelding","type-info":"informatie","type-instance":"aanleg","type-light":"licht","type-location":"locatie","type-locationOne":"Positie als staat","type-lock":"slot","type-media":"media","type-motion":"beweging","type-rgb":"RGB-licht","type-rgbSingle":"RGB-licht enkel","type-rgbwSingle":"RGBW als enkele waarde","type-slider":"schuifregelaar","type-socket":"stopcontact","type-temperature":"temperatuur","type-thermostat":"thermostaat","type-url":"URL","type-vacuumCleaner":"Stofzuiger","type-valve":"ventiel","type-volume":"volume","type-volumeGroup":"volumegroep","type-warning":"waarschuwing","type-weatherCurrent":"huidige weersomstandigheden","type-weatherForecast":"weersvoorspelling","type-window":"raam","type-windowTilt":"raamkanteling"},Rue={"type-Device type":"Тип пристрою","type-airCondition":"Кондиціонер","type-blind":"жалюзі","type-blindButtons":"Штора керується кнопками","type-button":"кнопку","type-buttonSensor":"Датчик кнопки","type-camera":"камера","type-chart":"Діаграма","type-cie":"Кольорове світло CIE","type-ct":"Колірна температура","type-dimmer":"диммер","type-door":"двері","type-fireAlarm":"пожежна сигналізація","type-floodAlarm":"сигналізація про повінь","type-gate":"ворота","type-hue":"світло HUE","type-humidity":"вологість","type-illuminance":"Освітленість","type-image":"зображення","type-info":"інформація","type-instance":"екземпляр","type-light":"світло","type-location":"розташування","type-locationOne":"Позиція як держави","type-lock":"замок","type-media":"ЗМІ","type-motion":"руху","type-rgb":"RGB світло","type-rgbSingle":"Одиночне світло RGB","type-rgbwSingle":"RGBW як одне значення","type-slider":"повзунок","type-socket":"гніздо","type-temperature":"температура","type-thermostat":"термостат","type-url":"URL","type-vacuumCleaner":"Пилосос","type-valve":"клапан","type-volume":"обсяг","type-volumeGroup":"група обсягів","type-warning":"УВАГА","type-weatherCurrent":"поточна погода","type-weatherForecast":"прогноз погоди","type-window":"вікно","type-windowTilt":"нахил вікна"},Jue={"type-Device type":"设备类型","type-airCondition":"空调","type-blind":"百叶窗","type-blindButtons":"按钮控制百叶窗","type-button":"按钮","type-buttonSensor":"按钮传感器","type-camera":"相机","type-chart":"图表","type-cie":"CIE色光","type-ct":"色温","type-dimmer":"调光器","type-door":"门","type-fireAlarm":"火灾报警","type-floodAlarm":"洪水警报","type-gate":"门","type-hue":"色调灯","type-humidity":"湿度","type-illuminance":"照度","type-image":"图像","type-info":"信息","type-instance":"实例","type-light":"光","type-location":"地点","type-locationOne":"作为一个国家的地位","type-lock":"锁","type-media":"媒体","type-motion":"运动","type-rgb":"RGB灯","type-rgbSingle":"RGB灯单","type-rgbwSingle":"RGBW 作为单一值","type-slider":"滑块","type-socket":"插座","type-temperature":"温度","type-thermostat":"恒温器","type-url":"网址","type-vacuumCleaner":"吸尘器","type-valve":"阀门","type-volume":"体积","type-volumeGroup":"卷组","type-warning":"警告","type-weatherCurrent":"当前天气","type-weatherForecast":"天气预报","type-window":"窗户","type-windowTilt":"窗户倾斜"};function Ta(){d.extendTranslations({en:Yue,de:Que,ru:Uue,pt:vue,pl:bue,fr:$ue,it:Pue,nl:Wue,uk:Rue,"zh-cn":Jue})}const xM={[R.Types.airCondition]:Jce,[R.Types.blind]:SM,[R.Types.blindButtons]:SM,[R.Types.button]:_ue,[R.Types.buttonSensor]:wue,[R.Types.camera]:$ce,[R.Types.chart]:Qce,[R.Types.image]:Bce,[R.Types.dimmer]:oue,[R.Types.door]:pue,[R.Types.fireAlarm]:EM,"sensor.alarm.fire":EM,[R.Types.floodAlarm]:_M,"sensor.alarm.flood":_M,[R.Types.gate]:mue,[R.Types.humidity]:Oue,[R.Types.illuminance]:Cue,[R.Types.info]:Fce,[R.Types.light]:Gce,[R.Types.lock]:Hce,[R.Types.location]:Kce,[R.Types.locationOne]:gue,[R.Types.media]:Xce,[R.Types.motion]:Eue,[R.Types.ct]:pM,[R.Types.rgb]:Ui,[R.Types.rgbSingle]:Ui,[R.Types.rgbwSingle]:hue,[R.Types.hue]:pM,[R.Types.cie]:Ui,[R.Types.slider]:Zce,[R.Types.socket]:Sue,[R.Types.temperature]:xue,[R.Types.thermostat]:fue,[R.Types.vacuumCleaner]:Aue,[R.Types.volume]:eue,[R.Types.volumeGroup]:sue,[R.Types.window]:kue,[R.Types.windowTilt]:ga,[R.Types.weatherCurrent]:mM,[R.Types.weatherForecast]:mM,[R.Types.warning]:hM,[R.Types.unknown]:rue,[R.Types.instance]:iue,invalid:hM,hub3:lue,node:Nue,hub5:aue,controller:nue},Ws={width:32,height:32};function Bue(i){const[e,t]=a.useState(!1);if(b.useEffect(()=>{i.title&&!e&&(Ta(),t(!0))},[i.title]),!e&&i.title)return a.createElement(g.Box,{style:{...Ws,...i.style||void 0},className:i.className,sx:i.sx});const s=i.type||(i.src?Object.keys(xM).find(M=>i.src===M):void 0);if(!s&&i.src)return a.createElement(Ie,{style:Ws,...i,title:i.title===!0?void 0:i.title,src:i.src});const o=s&&xM[s];if(!o)return s?a.createElement("span",{style:{...Ws,...i.style||void 0}},s[0].toUpperCase()):null;const r=a.createElement(o,{style:{...Ws,...i.style||void 0},onClick:i.onClick,className:i.className,sx:i.sx});return i.title?a.createElement(g.Tooltip,{slotProps:{popper:{sx:{pointerEvents:"none"}}},title:i.title===!0?d.t(`type-${s}`):i.title},a.createElement("div",{style:{display:"flex"}},r)):r}const at={itemChildrenWrapper:{display:"flex",width:"100%",justifyContent:"space-between"},type:{marginTop:10},selectIcon:{paddingRight:8,verticalAlign:"middle",width:20,height:20},selectText:{verticalAlign:"middle"},iconWrapper:{display:"flex",alignItems:"center"},iconStyle:{width:16,height:16,margin:"0 3px"},emptyIcon:{width:16,height:16,margin:"0 3px"}};function n4e(i){const[e,t]=a.useState({}),[s,o]=a.useState([]);return b.useEffect(()=>{const r={};Object.keys(R.Types).filter(n=>{var u,N;return(!i.supportedDevices||((u=i.supportedDevices)==null?void 0:u.includes(n)))&&!((N=i.unsupportedDevices)!=null&&N.includes(n))}).forEach(n=>r[n]=d.t(`type-${R.Types[n]}`));const M=Object.keys(r);M.sort((n,u)=>r[n]===r[u]?0:r[n].localeCompare(r[u],"de")),Ta(),o(M),t(r)},[i.supportedDevices,i.unsupportedDevices]),s?a.createElement(g.FormControl,{style:{...at.type,...i.style},sx:i.sx,variant:"standard",error:!!i.error},a.createElement(g.InputLabel,null,i.label||d.t("type-Device type")),a.createElement(g.Select,{variant:"standard",disabled:!!i.disabled,value:i.value,onChange:r=>i.onChange(r.target.value)},s.map(r=>{var M;return a.createElement(g.MenuItem,{key:R.Types[r],value:R.Types[r]},a.createElement("div",{style:at.itemChildrenWrapper},a.createElement("div",null,a.createElement(Bue,{type:R.Types[r],style:{...at.selectIcon,color:i.themeType==="dark"?"#FFFFFF":"#000"}}),a.createElement("span",{style:at.selectText},e[r])),(M=i.showApplications)!=null&&M.TYPE_OPTIONS[r]?a.createElement("div",{style:at.iconWrapper},Object.keys(i.showApplications.TYPE_OPTIONS[r]).map(n=>i.showApplications.TYPE_OPTIONS[r][n]?a.createElement(Ie,{key:n,style:at.iconStyle,src:i.showApplications.ICONS_TYPE[n]}):a.createElement("div",{key:n,style:at.emptyIcon}))):null))}))):a.createElement(g.Box,{style:{...at.type,...i.style},sx:i.sx})}function Fue(i){return v({attr:{version:"1",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"circle",attr:{fill:"#B2EBF2",cx:"32",cy:"24",r:"9"},child:[]},{tag:"path",attr:{fill:"#4DD0E1",d:"M32,12c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C44,17.4,38.6,12,32,12z M32,32 c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S36.4,32,32,32z"},child:[]},{tag:"g",attr:{fill:"#3F51B5"},child:[{tag:"polygon",attr:{points:"25.4,22 19.8,5.1 13.6,27.7 11.4,22 4,22 4,26 8.6,26 14.4,40.3 20.2,18.9 22.6,26 30,26 30,22"},child:[]},{tag:"circle",attr:{cx:"32",cy:"24",r:"4"},child:[]}]}]})(i)}function Gue(i){return v({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M4.428 2.727l3.335 3.335c-.486.07-.903.276-1.32.624L.886 12.383c-1.181 1.18-1.181 3.194 0 4.375a2.41 2.41 0 0 0 1.598.834l17.088 3.681-3.335-3.333c.486-.07.903-.278 1.32-.626l5.557-5.695c1.181-1.181 1.181-3.196 0-4.377a2.411 2.411 0 0 0-1.598-.833zM11.653 6.2c.694 0 1.25.486 1.25 1.18 0 .695-.486 1.251-1.181 1.251-.695 0-1.25-.485-1.25-1.18s.555-1.251 1.18-1.251zm1.51 3.792c.049-.006.088.046.088.098-.139.694-.695 1.181-1.39 1.181-.694 0-1.32-.487-1.46-1.112 0 0 .002-.07.071 0 .487.278.972.348 1.32.278.346 0 .833-.07 1.32-.416a.092.092 0 0 1 .05-.029zm.723 2.511c.058.013.06.106.06.158-.209.903-.973 1.666-1.946 1.666a2.167 2.167 0 0 1-2.084-1.528c-.07-.07 0-.138.138-.138.695.347 1.39.416 1.877.416.486 0 1.18-.14 1.875-.556.035-.017.06-.022.08-.018zm.597 3.018c.049-.013.087.09.087.195-.278 1.181-1.25 2.085-2.5 2.155-1.251 0-2.293-.835-2.57-1.946 0-.139.068-.278.207-.209.834.486 1.737.556 2.362.556s1.529-.208 2.362-.694c.018-.035.036-.053.052-.057z"},child:[]}]})(i)}function Hue(i){return v({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13 5l.855 3.42 3.389-.971 1.501 2.6-2.535 2.449 2.535 2.451-1.5 2.6-3.39-.971-.855 3.422h-3l-.855-3.422-3.39.971-1.501-2.6 2.535-2.451-2.534-2.449 1.5-2.6 3.39.971.855-3.42h3m0-2h-3c-.918 0-1.718.625-1.939 1.516l-.354 1.412-1.4-.4c-.184-.053-.369-.078-.552-.078-.7 0-1.368.37-1.731 1l-1.5 2.6c-.459.796-.317 1.802.342 2.438l1.047 1.011-1.048 1.015c-.66.637-.802 1.643-.343 2.438l1.502 2.6c.363.631 1.031 1 1.731 1 .183 0 .368-.025.552-.076l1.399-.401.354 1.415c.222.885 1.022 1.51 1.94 1.51h3c.918 0 1.718-.625 1.939-1.516l.354-1.414 1.399.4c.184.053.369.077.552.077.7 0 1.368-.37 1.731-1l1.5-2.6c.459-.796.317-1.8-.342-2.438l-1.047-1.013 1.047-1.013c.66-.637.801-1.644.342-2.438l-1.5-2.6c-.365-.631-1.031-1-1.732-1-.184 0-.368.025-.551.076l-1.4.401-.354-1.413c-.22-.884-1.02-1.509-1.938-1.509zM11.5 10.5c1.104 0 2 .895 2 2 0 1.104-.896 2-2 2s-2-.896-2-2c0-1.105.896-2 2-2m0-1c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3z"},child:[]}]})(i)}function Vue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.707 17.707 13.414 12 7.707 6.293 6.293 7.707 10.586 12l-4.293 4.293zM15 6h2v12h-2z"},child:[]}]})(i)}function Zue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M376 211H256V16L136 301h120v195z"},child:[]}]})(i)}function Xue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32l-64 96 80 16-16 80 64-96-80-16 16-80zm-96 217c-1.9 0-9.8 3-15.8 6.7-2.8 1.7-5.3 3.5-7.2 4.8v119c1.9 1.3 4.4 3.1 7.2 4.8 6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 5.9-3.7 10.6-7.3 10.6-7.3l2.5-2H201V265h-12.1l-2.5-2s-4.7-3.6-10.6-7.3c-6-3.7-13.9-6.7-15.8-6.7zm192 0c-1.9 0-9.8 3-15.8 6.7-5.9 3.7-10.6 7.3-10.6 7.3l-2.5 2H311v110h12.1l2.5 2s4.7 3.6 10.6 7.3c6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 2.8-1.7 5.3-3.5 7.2-4.8v-119c-1.9-1.3-4.4-3.1-7.2-4.8-6-3.7-13.9-6.7-15.8-6.7zm-133 16v110h14V265h-14zm32 0v110h42V265h-42zM95.5 311c-18.8 0-36.6 9.2-49.94 22.7C32.22 347.1 23 365 23 384v106h18V384c0-13 6.78-27.1 17.32-37.7C68.85 335.8 82.8 329 95.5 329H119v-18H95.5zm297.5 0v18h22.9c13.1 0 27.1 6.8 37.7 17.4C464.2 357 471 371 471 384v106h18V384c0-19-9.2-37-22.7-50.4-13.4-13.4-31.4-22.6-50.4-22.6H393z"},child:[]}]})(i)}function Kue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M20.127 52.803v58.986L250.46 245.153c26.367-28.823 70.087-36.533 105.313-16.195 35.29 20.374 50.465 62.207 38.567 99.503l101.648 58.855-64.728-74.65 35.638-37.352-57.27-7.687 84.72-86.92-125.71 33.186 12.995-120.208-66.578 96.363-27.448-80.593-16.353 88.77L20.127 52.803zm0 105.12l-.008.018.007.005v-.02zm0 .022l-.002 87.582 155.344 89.95-89.94 33.287h135.493l-63.658 99.87 116.22-70.083 15.77 85.852 38.543-80.01 63.66 87.018-5.853-87.047 90.54 17.268-102.4-59.198c-26.546 26.964-68.89 33.744-103.183 13.945-34.322-19.816-49.62-59.928-39.49-96.424L20.127 157.945zm316.6 119.442c-.938-.003-1.874.027-2.805.092-12.42.86-24.164 7.707-30.9 19.375-10.78 18.67-4.455 42.27 14.214 53.047 18.67 10.78 42.27 4.455 53.047-14.214 10.78-18.67 4.454-42.27-14.215-53.047-6.125-3.536-12.78-5.23-19.34-5.253z"},child:[]}]})(i)}function que(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M33.125 19.406L135.5 128.22l81-23.157 18.72-5.344-7.564 17.936-46.125 109.78 134.282-70 26.157-13.655L328.436 170 256.5 309.25l91.25-57.125 22.97-14.375-9.22 25.47-34.625 95.624 71-36.375 21.188-10.845L410.906 334l-33.937 93.063 45.124-6.688 4.53-.656 3.313 3.155 64.313 61.47-30.5-80.5 23.313-46.908-72.5 39.532 51.062-141.158-91.188 47.47 72.344-142.813-128.217 82.81L421.875 70.063 239.03 168.69l30.44-99.563-103.845 25.25-132.5-74.97zM18.155 30.78l77.876 108.25-31.124 75.532 94.125-46.78-98.905 166.812 190.25-99.656-101.03 185.406 140.25-79.063-46.94 102.22 106.5-53-45.655 92.28 86.5-14.467 93.47 31.562-63.158-60.344-56.125 8.314-15.53 2.312 5.374-14.75 31.158-85.437-70.907 36.31-21.124 10.814 8.094-22.313 33.47-92.436-97.22 60.875-28.938 18.092L224.22 331l74.06-143.344-131.06 68.313-22.97 12 10.03-23.908 48.626-115.687-67.75 19.375-5.5 1.563-3.875-4.157L18.157 30.78z"},child:[]}]})(i)}function eNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M288.3 13.4c-12.3-.01-23 6.49-27.3 15.31l-2.9 5.95-6.6-1.01c-5.5-.85-11.3-1.32-17.1-1.32-18.8 0-35.7 4.5-47.3 11.14-11.5 6.64-16.9 14.59-16.9 22 0 7.42 5.4 15.37 16.9 22 11.6 6.64 28.5 11.13 47.3 11.13 7.5-.02 14.9-.74 21.8-2.13l6.3-1.23 3.2 5.46c5.6 9.2 23.7 18.2 44.7 18.2 13.9 0 26.4-3.6 34.8-8.8 8.4-5.2 12.2-11.23 12.2-16.9 0-5.09-3-10.48-10-15.44-6.9-4.97-17.6-8.87-30-9.95l-18.3-1.59 12.5-13.49c4.1-4.41 6.1-9.6 6.1-14.87 0-12.88-12.4-24.46-29.4-24.46zM152.2 65.46C84.8 102.3 39 173.9 39 256c0 32.1 7 62.6 19.54 90 5.95-7.9 10.48-13.4 12.67-16C62.05 307.2 57 282.2 57 256c0-74 40.27-138.5 100.1-172.78-3.1-5.39-4.9-11.34-4.9-17.74v-.02zm210.7 1.75c7.5 6.93 12.5 15.9 12.5 25.99 0 1.14-.1 2.27-.2 3.38C423.7 132.9 455 190.7 455 256c0 23.7-4.2 46.5-11.8 67.6l18.3 2.2c7.4-21.9 11.5-45.4 11.5-69.8 0-80.8-44.4-151.5-110.1-188.79zm58.6 270.49c-11.1.2-23 1.1-35.9 3.1l-.5.1-.5.1c-25.8 7.3-37.1 15.2-46.4 24.7l-2.2 2.2-.3 3.1c-3.4 29.6-5.8 60 0 91.8l1.3 6.8 6.8.6c30.6 2.6 58.7 1.4 86.2 0l1-.1.9-.2c18.5-5.2 34.4-12.8 46.4-24.6l1.7-1.6.6-2.2c10-33.4 3.4-63.8.4-92.7l-.8-7.4-7.3-.7c-16.2-1.5-32.8-3.2-51.4-3zM79.62 348.2c-4.94 6.1-11.43 14.5-18.58 25.6-12.29 18.9-22.53 42.4-20.51 54.9 1.43 8.8 6.97 19.6 14.51 27.6 7.54 7.9 16.69 12.8 24.58 12.8 7.87 0 17.03-4.9 24.58-12.8 7.5-8 13.1-18.8 14.5-27.6 2-12.5-8.2-36-20.5-54.9-7.15-11-13.64-19.5-18.58-25.6zM427 355.7c1.7 0 3.3 0 5 .1 5.4.1 10.7.4 16 .8-5.9 3.4-12.1 6.8-19.5 9.9l-2.4.2c-19.5 1.4-37.7.3-55.4-2 4.7-2 10.5-4 18.3-6.2 13.8-2.2 26.3-2.9 38-2.8zm38 11.6c2.8 22.9 5 44.5-1 66.6-7 6.3-16 11.4-27 15.4 3-22.5 2-44.8-.5-66.6 11.3-5 20.2-10.2 28.5-15.4zm-112.2 13.1c20.7 3.2 42.3 5.4 65.8 4.5 2.5 23 3.5 45.6-.4 67.8-21.5 1-43.1 1.5-65.8-.1-3.5-24-2.2-47.9.4-72.2zm-216.4 34.7c.9 5.5 1 11 .1 16.4-.3 1.6-.6 3.3-1 4.9C170 459.5 211.4 473 256 473c21.6 0 42.5-3.2 62.3-9.1l-2-18.2c-19 6-39.3 9.3-60.3 9.3-44.9 0-86.3-14.8-119.6-39.9z"},child:[]}]})(i)}function fM(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M140 29.92c-31.4 0-59.89 3.25-79.89 8.25-9.9 2.5-17.8 5.51-22.4 8.25-3.2 1.87-4.1 3.15-4.5 3.58.4.43 1.3 1.71 4.5 3.58 4.6 2.74 12.5 5.75 22.4 8.25 20 5 48.49 8.25 79.89 8.25h5.7c5.3-2 11.1-3.78 17.6-5.4 20.3-5.08 46.5-8.42 75.8-9.36 1.2-.57 2.3-1.14 3.2-1.7 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zm232 0c-31.4 0-59.9 3.25-79.8 8.25-10 2.5-17.9 5.51-22.5 8.25-3.1 1.87-4.1 3.15-4.5 3.58.4.43 1.4 1.71 4.5 3.58.9.56 2 1.13 3.2 1.7 29.3.94 55.5 4.28 75.8 9.36 6.5 1.62 12.3 3.4 17.6 5.4h5.7c31.4 0 59.9-3.25 79.8-8.25 10-2.5 17.9-5.51 22.5-8.25 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zM33.01 71.44V369.9c0 4.3 1.8 8 6.8 12.3 5 4.3 13.1 8.5 23.3 11.9 15.3 5.1 35 8.5 55.89 9.8V278.3l-16.5 28.6-7.79-4.5c-27.4-15.9-44.3-45.3-44.4-77v-9h52.59c-.6 2.6-.9 5.3-.9 8.1 0 13.1 6.8 24.8 17 31.7v-63.4c-1.9 1.3-3.6 2.7-5.2 4.2l-25.99-45.1 7.8-4.5c7.49-4.2 15.29-7.3 23.39-9.3V87.61c-24.19-1.08-45.99-4.01-63.19-8.32-8.9-2.21-16.5-4.76-22.8-7.85zm445.99 0c-6.3 3.09-14 5.63-22.8 7.84-17.2 4.31-39 7.24-63.2 8.32v50.6c8.1 2 16 5.1 23.4 9.3l7.7 4.5-4.4 7.8-21.5 37.2c-1.6-1.5-3.3-2.9-5.2-4.2v63.4c10.2-6.9 17-18.6 17-31.7 0-2.8-.3-5.5-.9-8.1h50.8v9c0 31.8-17 61.1-44.4 77l-7.8 4.5-14.7-25.5v122.5c20.9-1.3 40.7-4.7 55.9-9.8 10.2-3.4 18.3-7.6 23.3-11.9 5-4.3 6.8-8 6.8-12.3zM256 73c-34.7 0-66.2 3.57-88.3 9.1-11.1 2.77-19.8 6.09-25.1 9.19-4.3 2.58-5.3 4.42-5.5 4.71.2.29 1.2 2.12 5.5 4.7 5.3 3.1 14 6.4 25.1 9.2 22.1 5.5 53.6 9.1 88.3 9.1 34.7 0 66.2-3.6 88.3-9.1 11.1-2.8 19.8-6.1 25.1-9.2 4.3-2.58 5.3-4.41 5.5-4.7-.2-.29-1.2-2.13-5.5-4.71-5.3-3.1-14-6.42-25.1-9.19-22.1-5.53-53.6-9.1-88.3-9.1zm118.9 23c.1.1.1.1.1 0s0-.1-.1 0zm-237.8 0c-.1-.1-.1-.1-.1 0s0 .1.1 0zm-.1 22.1V448c0 5 2.2 9.3 7.9 14.2 5.6 4.8 14.7 9.5 25.9 13.3 22.6 7.5 54 11.5 85.2 11.5 31.2 0 62.6-4 85.2-11.5 11.2-3.8 20.3-8.5 25.9-13.3 5.7-4.9 7.9-9.2 7.9-14.2V118.1c-7.2 3.7-16 6.6-26.3 9.3-24.2 6-56.7 9.6-92.7 9.6s-68.5-3.6-92.7-9.6c-10.3-2.7-19.1-5.6-26.3-9.3zM256 191c16.8 0 33.5 4.4 48.5 13l7.8 4.5-4.5 7.8-24.1 41.6c-7.3-6.7-17-10.9-27.7-10.9s-20.4 4.2-27.7 10.9l-28.6-49.4 7.8-4.5c15-8.7 31.7-13 48.5-13zm0 74c12.8 0 23 10.2 23 23s-10.2 23-23 23-23-10.2-23-23 10.2-23 23-23zm-98 15h57.8c-.5 2.6-.8 5.3-.8 8 0 18.1 12 33.7 28.5 39l-29.2 50.5-7.8-4.5c-30-17.3-48.5-49.4-48.5-84zm138.2 0H352v9c0 34.6-18.5 66.7-48.5 84l-7.8 4.5-28.8-50c17.3-4.8 30.1-20.8 30.1-39.5 0-2.7-.3-5.4-.8-8z"},child:[]}]})(i)}function tNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"},child:[]}]})(i)}function sNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.7 21.04l-194.4.41L21.04 159.3l.41 194.4L159.3 491l194.4-.4L491 352.7l-.4-194.4L352.7 21.04zm-8 19.66l126.2 125.7.4 178.3-123.1 123.6-2.6 2.6-178.3.4L41.08 345.6l-.38-178.3L166.4 41.08l178.3-.38zm-7.5 18.01l-163.3.34L58.71 174.8l.34 163.3L174.8 453.3l163.3-.3 115.2-115.8-.3-163.3L337.2 58.71zM108.4 210.4c5.3 0 10.8.5 16.4 1.3 5.7.8 11.5 2 17.5 3.6v20.5c-5.3-2.4-10.5-4.2-15.6-5.4-5.1-1.2-9.9-1.8-14.4-1.8-6 0-10.4.8-13.25 2.5-2.87 1.6-4.3 4.2-4.3 7.7 0 2.6.96 4.6 2.87 6.1 1.95 1.4 5.48 2.7 10.58 3.7l10.6 2.1c10.8 2.2 18.5 5.5 23.1 9.9 4.5 4.5 6.8 10.8 6.8 18.9 0 10.7-3.2 18.7-9.5 24-6.4 5.2-16.1 7.8-29.2 7.8-6.1 0-12.3-.6-18.51-1.8-6.2-1.1-12.41-2.9-18.61-5.2v-21.1c6.2 3.3 12.19 5.8 17.96 7.5 5.82 1.6 11.46 2.4 16.76 2.4 5.5 0 9.7-.9 12.6-2.7 2.9-1.8 4.4-4.4 4.4-7.8 0-3.1-1-5.4-3-7.1-2-1.6-5.9-3.1-11.8-4.4l-9.7-2.1c-9.73-2.1-16.85-5.4-21.37-10-4.47-4.5-6.7-10.7-6.7-18.4 0-9.7 3.12-17.1 9.37-22.3 6.25-5.3 15.24-7.9 27-7.9zm187.7 0c15.6 0 27.8 4.5 36.7 13.5 8.9 8.9 13.3 21.2 13.3 37 0 15.7-4.4 28-13.3 37-8.9 8.9-21.1 13.4-36.7 13.4-15.6 0-27.8-4.5-36.7-13.4-8.9-9-13.3-21.3-13.3-37 0-15.8 4.4-28.1 13.3-37 8.9-9 21.1-13.5 36.7-13.5zm-141.9 1.8h89.6v18.9h-32.2v78.3h-25.1v-78.3h-32.3v-18.9zm205.8 0h41.6c12.3 0 21.8 2.8 28.4 8.3 6.7 5.4 10 13.2 10 23.4s-3.3 18.1-10 23.6c-6.6 5.4-16.1 8.2-28.4 8.2H385v33.7h-25v-97.2zm-63.9 16.4c-7.7 0-13.6 2.8-17.8 8.5-4.2 5.6-6.3 13.6-6.3 23.8 0 10.2 2.1 18.1 6.3 23.8 4.2 5.6 10.1 8.4 17.8 8.4 7.7 0 13.6-2.8 17.8-8.4 4.2-5.7 6.3-13.6 6.3-23.8 0-10.2-2.1-18.2-6.3-23.8-4.2-5.7-10.1-8.5-17.8-8.5zm88.9 1.8v27.1h13.9c4.9 0 8.6-1.2 11.3-3.5 2.6-2.4 3.9-5.8 3.9-10.1s-1.3-7.7-3.9-10c-2.7-2.4-6.4-3.5-11.3-3.5H385z"},child:[]}]})(i)}function iNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M327.467 19.992c.748 14.94 2.317 51.268 2.59 98.76 3.474-.286 6.557-.381 9.72 1.08 18.04 8.345 27.243 29.326 27.026 50.506-.217 21.18-11.283 44.136-36.104 54.307a41.62 41.62 0 0 1-2.486.923c-3.408 80.504-12.307 166.37-33.754 225.5-6.876 15.831-17.029 29.217-26.828 40.94l55.27.422c20.676-12.19 32.041-27.395 36.32-46.407l17.558 3.954c-3.67 16.312-11.99 30.662-24.511 42.677l143.052 1.094c-5.13-14.524-16.16-46.501-20.357-70.217C451.89 293.171 450.15 45 450.025 19.992zM18.279 38.984l.881 18.725c17.856 12.047 32.035 23.91 45.969 35.527 12.887-11.156 2.404-29.725-5.82-39.091-13.668-5.346-27.335-10.467-41.03-15.16zM86.723 65.13c4.77 14.56 3.347 29.656-7.477 39.746 24.105 19.479 50.832 38.151 97.1 55.635 13.836-22.588 12.08-43.852-3.338-60.739-29.03-10.9-57.703-22.997-86.285-34.642zm-31.721 42.988V400h17.996V122.723c-6.187-4.856-12.114-9.73-17.996-14.606zm145.264 1.434c3.253 8.283 4.54 16.754 3.982 25.043-.765 11.35-4.673 22.135-10.545 32.095 16.926 5.691 36.192 11.248 58.451 16.655l2.604.633 1.834 1.953c9.223 9.826 22.535 17.206 35.469 21.006 12.933 3.8 25.473 3.655 31.814 1.056 18.024-7.385 24.773-22.363 24.932-37.84.152-14.822-7.069-28.554-15.479-33.306-45.88-1.699-89.948-12.607-133.062-27.295zm-33.264 66.476V400h17.996V182.605a502.784 502.784 0 0 1-17.996-6.578zM32 419.002v17.996h176v-17.996z"},child:[]}]})(i)}function oNe(i){return v({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18.36 6.64a9 9 0 1 1-12.73 0"},child:[]},{tag:"line",attr:{x1:"12",y1:"2",x2:"12",y2:"12"},child:[]}]})(i)}function rNe(i){return v({attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},child:[]}]})(i)}function MNe(i){return v({attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 0l-6 8h6l-4 8 14-10h-8l6-6z"},child:[]}]})(i)}const a4e={SET:fce,WORKING:CM,UNREACH:wM,LOWBAT:AM,MAINTAIN:jue,ERROR:Mue,DIRECTION:Lue,CONNECTED:wM,ACTUAL:Hue,SECOND:Vue,PRESS_LONG:Pce,PRESS:Wce,MUTE:tue,ACCURACY:Kue,RADIUS:vce,ELEVATION:kce,LATITUDE:Yce,LONGITUDE:bce,GPS:uue,ON_ACTUAL:IM,ON_SET:IM,OPEN:Rce,STOP:sNe,WATER_ALARM:OM,WASTE_ALARM:fM,PAUSE:xce,STATE:eNe,BATTERY:AM,WASTE:fM,WATER:OM,WORK_MODE:CM,MODE:cue,POWER:Uce,BOOST:Gue,HUMIDITY:Due,TEMPERATURE:zue,BRIGHTNESS:Tue,MOTION:Vce,FIRE:yue,WINDOW:ga,SMOKE:due,SWING:iNe,SPEED:tNe,DIMMER:rNe,ON:oNe,COLOR_TEMP:qce,ELECTRIC_POWER:MNe,CURRENT:Zue,VOLTAGE:Xue,CONSUMPTION:Fue,FREQUENCY:que,HUE:Iue};class ya extends a.Component{static generateFile(e,t){const s=window.document.createElement("a");s.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),s.setAttribute("download",e),s.style.display="none",window.document.body.appendChild(s),s.click(),window.document.body.removeChild(s)}handleFileSelect=e=>{const t=e.target,s=t==null?void 0:t.files;if(!s||!s.length){console.error("No files found. Please report to developers");return}const o=s[0];if(o){const r=new window.FileReader;r.onload=()=>{var n;const M=((n=r.result)==null?void 0:n.toString())||"";try{const u=JSON.parse(M);u.native&&u.common?u.common.name!==this.props.common.name?this.props.onError&&this.props.onError(d.t("ra_otherConfig",u.common.name)):this.props.onLoad&&this.props.onLoad(u.native):this.props.onError&&this.props.onError(d.t("ra_invalidConfig"))}catch(u){this.props.onError&&this.props.onError(u==null?void 0:u.toString())}},r.readAsText(o)}else alert("Failed to open JSON File")};download(){const e={_id:`system.adapter.${this.props.common.name}.${this.props.instance}`,common:JSON.parse(JSON.stringify(this.props.common)),native:this.props.native};e.common.news&&delete e.common.news,e.common.titleLang&&delete e.common.titleLang,e.common.desc&&delete e.common.desc,ya.generateFile(`${e._id}.json`,e)}upload(){const e=window.document.createElement("input");e.setAttribute("type","file"),e.setAttribute("id","files"),e.setAttribute("opacity","0"),e.addEventListener("change",this.handleFileSelect,!1),e.click()}render(){return a.createElement("div",{className:this.props.className,style:this.props.style},this.props.common.icon?a.createElement(Ie,{src:this.props.common.icon,style:{padding:8,width:64},alt:"logo"}):null,this.props.common.readme?a.createElement(g.Fab,{size:"small",color:"primary","aria-label":"Help",style:{marginRight:5,marginTop:5,float:"right"},onClick:()=>{const e=window.open(this.props.common.readme,"_blank");e==null||e.focus()}},a.createElement(m.Help,null)):null,a.createElement(g.Fab,{size:"small",color:"primary","aria-label":"Load config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Load configuration from file"),onClick:()=>this.upload()},a.createElement(m.VerticalAlignTop,null)),a.createElement(g.Fab,{size:"small",color:"primary","aria-label":"Save config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Save configuration to file"),onClick:()=>this.download()},a.createElement(m.VerticalAlignBottom,null)))}}class Da{static text2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static getTitle(e){const t=Da.extractHeader(e);let s=t.body;const o=t.header;if(!o.title){s=s.replace(/{[^}]*}/g,""),s=s.trim();const r=s.replace(/\r/g,"").split(` + C231.591,212.679,237.828,191.414,234.21,169.856z`})))}function Ui(i){return n.createElement("svg",{viewBox:"1 -10 511.99999 511",...i},n.createElement("g",{fill:"currentColor"},n.createElement("path",{d:"M 405.5 150 C 405.5 232.566406 338.566406 299.5 256 299.5 C 173.433594 299.5 106.5 232.566406 106.5 150 C 106.5 67.433594 173.433594 0.5 256 0.5 C 338.566406 0.5 405.5 67.433594 405.5 150 Z M 405.5 150 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(25.882353%,75.294118%,88.627451%)",fillOpacity:1}}),n.createElement("path",{d:"M 512 342.921875 C 512 425.488281 445.066406 492.421875 362.5 492.421875 C 279.933594 492.421875 213 425.488281 213 342.921875 C 213 260.355469 279.933594 193.421875 362.5 193.421875 C 445.066406 193.421875 512 260.355469 512 342.921875 Z M 512 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,81.568627%,38.039216%)",fillOpacity:1}}),n.createElement("path",{d:"M 220.746094 295.308594 C 232.050781 298.039062 243.855469 299.5 256 299.5 C 321.917969 299.5 377.871094 256.835938 397.753906 197.613281 C 386.449219 194.878906 374.644531 193.421875 362.5 193.421875 C 296.582031 193.421875 240.628906 236.085938 220.746094 295.308594 Z M 220.746094 295.308594 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(28.627451%,74.117647%,56.470588%)",fillOpacity:1}}),n.createElement("path",{d:"M 299 342.921875 C 299 425.488281 232.066406 492.421875 149.5 492.421875 C 66.933594 492.421875 0 425.488281 0 342.921875 C 0 260.355469 66.933594 193.421875 149.5 193.421875 C 232.066406 193.421875 299 260.355469 299 342.921875 Z M 299 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(98.039216%,43.921569%,69.803922%)",fillOpacity:1}}),n.createElement("path",{d:"M 114.246094 197.613281 C 134.128906 256.835938 190.082031 299.5 256 299.5 C 268.144531 299.5 279.949219 298.039062 291.253906 295.308594 C 271.371094 236.085938 215.417969 193.421875 149.5 193.421875 C 137.355469 193.421875 125.550781 194.878906 114.246094 197.613281 Z M 114.246094 197.613281 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(68.627451%,48.235294%,77.647059%)",fillOpacity:1}}),n.createElement("path",{d:"M 213 342.921875 C 213 383.800781 229.414062 420.839844 256 447.828125 C 282.585938 420.839844 299 383.800781 299 342.921875 C 299 302.042969 282.585938 265.003906 256 238.015625 C 229.414062 265.003906 213 302.042969 213 342.921875 Z M 213 342.921875 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(93.72549%,38.039216%,13.333333%)",fillOpacity:1}}),n.createElement("path",{d:"M 291.253906 295.320312 C 279.949219 298.046875 268.140625 299.5 256 299.5 C 243.859375 299.5 232.050781 298.046875 220.746094 295.320312 C 228.058594 273.542969 240.242188 254.015625 256 238.015625 C 271.757812 254.015625 283.941406 273.542969 291.253906 295.320312 Z M 291.253906 295.320312 ",style:{stroke:"none",fillRule:"nonzero",fill:"rgb(100%,100%,100%)",fillOpacity:1}})))}function fue(i){return n.createElement("svg",{width:32,height:32,viewBox:"0 0 365.445 365.445",...i},n.createElement("g",{fill:"currentColor"},n.createElement("path",{d:"M146.7 162.775h-26.8a6.655 6.655 0 0 0-6.647 6.647v26.602a6.653 6.653 0 0 0 6.647 6.646h26.8a6.654 6.654 0 0 0 6.647-6.646v-26.602a6.655 6.655 0 0 0-6.647-6.647zM245.547 162.775h-26.801a6.653 6.653 0 0 0-6.646 6.647v26.602a6.652 6.652 0 0 0 6.646 6.646h26.801a6.654 6.654 0 0 0 6.646-6.646v-26.602a6.655 6.655 0 0 0-6.646-6.647z"})),n.createElement("path",{d:"M345.445 1.204H20c-11.046 0-20 8.954-20 20v323.037c0 11.045 8.954 20 20 20h325.445c11.045 0 20-8.955 20-20V21.204c0-11.045-8.953-20-20-20zM182.723 287.66c-57.955 0-104.937-46.981-104.937-104.937 0-57.957 46.982-104.938 104.937-104.938S287.66 124.767 287.66 182.723 240.678 287.66 182.723 287.66z",fill:"currentColor"}))}function kue(i){return n.createElement("svg",{width:32,height:32,viewBox:"0 0 45.659 45.659",...i},n.createElement("path",{fill:"currentColor",d:"M30.619 27.309V7.781C30.619 3.49 27.124 0 22.833 0c-4.29 0-7.785 3.491-7.785 7.78v19.528a10.722 10.722 0 0 0-3.05 7.522c0 5.972 4.857 10.828 10.829 10.828 5.97 0 10.834-4.856 10.834-10.828 0-2.918-1.141-5.572-3.042-7.521zM22.825 42.66c-4.316 0-7.824-3.512-7.824-7.828 0-2.527 1.174-4.779 3.077-6.211V16.237h3.372c.552 0 1-.47 1-1.022 0-.553-.448-1.021-1-1.021h-3.372v-2.466h3.372c.552 0 1-.434 1-.986a.989.989 0 0 0-1-.986h-3.372V7.78c0-2.636 2.119-4.78 4.754-4.78 2.637 0 4.756 2.144 4.756 4.781v20.871c1.903 1.434 3.047 3.671 3.047 6.18 0 4.316-3.494 7.828-7.81 7.828z"}),n.createElement("path",{fill:"currentColor",d:"M25.334 30.463V18.632h-5.002v11.831a4.973 4.973 0 0 0-2.537 4.369 5.038 5.038 0 0 0 5.038 5.046 5.034 5.034 0 0 0 5.034-5.046c0-1.866-.982-3.495-2.533-4.369z"}))}function Yue(i){return n.createElement("svg",{viewBox:"0 0 297 297",...i},n.createElement("g",null,n.createElement("path",{fill:"currentColor",d:"m243.404,138.042c-5.775,0-10.458,4.683-10.458,10.458 0,46.564-37.883,84.446-84.446,84.446s-84.446-37.882-84.446-84.446 37.883-84.446 84.446-84.446c5.775,0 10.458-4.683 10.458-10.458s-4.683-10.457-10.458-10.457c-58.097,0-105.361,47.265-105.361,105.361s47.264,105.361 105.361,105.361 105.361-47.264 105.361-105.361c0-5.775-4.681-10.458-10.457-10.458z"}),n.createElement("path",{fill:"currentColor",d:"m142.963,121.344l-20.272-30.41c-3.203-4.807-9.695-6.104-14.502-2.9-4.805,3.202-6.104,9.695-2.9,14.502l20.279,30.422c-3.015,4.436-4.78,9.787-4.78,15.543 0,15.281 12.432,27.713 27.713,27.713 15.281,0 27.713-12.432 27.713-27.713 0-15.281-12.432-27.713-27.713-27.713-1.897-0.001-3.749,0.191-5.538,0.556zm12.335,27.156c0,3.748-3.05,6.798-6.798,6.798s-6.798-3.05-6.798-6.798 3.05-6.798 6.798-6.798 6.798,3.05 6.798,6.798z"}),n.createElement("path",{fill:"currentColor",d:"M148.5,0C66.617,0,0,66.617,0,148.5S66.617,297,148.5,297S297,230.383,297,148.5S230.383,0,148.5,0z M158.958,275.653 v-6.366c0-5.775-4.683-10.458-10.458-10.458c-5.775,0-10.458,4.683-10.458,10.458v6.366 c-62.027-5.056-111.64-54.668-116.695-116.695h6.366c5.775,0,10.458-4.683,10.458-10.458s-4.683-10.458-10.458-10.458h-6.366 c5.056-62.027,54.668-111.64,116.695-116.695v6.366c0,5.775,4.683,10.458,10.458,10.458c5.775,0,10.458-4.683,10.458-10.458v-6.366 c62.027,5.056,111.64,54.668,116.695,116.695h-6.366c-5.775,0-10.458,4.683-10.458,10.458s4.683,10.458,10.458,10.458h6.366 C270.598,220.985,220.985,270.598,158.958,275.653z"})))}function Que(i){return n.createElement("svg",{viewBox:"0 0 361 361",...i},n.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.createElement("path",{d:"M228.5 205.584h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5H228.5c-2.726 0-5 2.274-5 5s2.274 5 5 5z",fill:"currentColor"}),n.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.createElement("path",{d:"M232.826 280.905c-.339 3.356-18.813-.782-20.919-1.06l-45.073-5.94-45.074-5.94-14.507-1.912c-1.456-.192-6.201-.055-6.412-2.147-.621-6.157 0-12.699 0-18.878v-43.5-82.076-5.13c0-2.551 5.184-1.015 6.412-.853l35.438 4.67 83.723 11.035c1.457.192 6.201.055 6.412 2.147.169 1.673 0 3.451 0 5.13v144.454c0 6.448 10 6.448 10 0V136.451v-5.13c0-7.619-6.137-10.793-12.673-11.655l-28.531-3.76-88.411-11.652-9.897-1.304c-6.555-.864-12.473 4.9-12.473 11.38v144.832c0 2.023-.071 4.04.132 6.053.717 7.111 6.606 9.563 12.759 10.374l76.827 10.125 39.896 5.259 9.697 1.278c7.063.931 12.011-4.778 12.673-11.346.648-6.415-9.358-6.352-9.999 0z",fill:"currentColor"}))}function ya(i){return n.createElement("svg",{width:361,height:361,viewBox:"0 0 361 361",...i},n.createElement("path",{d:"M267.826 263.303c0 3.91-3.156 7.082-7.05 7.082l-157.885.021c-3.894 0-7.05-3.171-7.05-7.083v-157.5c0-3.911 3.156-7.083 7.05-7.083l157.885-.021c3.894 0 7.05 3.172 7.05 7.083v157.501z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.createElement("path",{d:"M267.826 103.208c0 2.485-2.711 4.5-6.053 4.5l-159.88.021c-3.342 0-6.052-2.015-6.052-4.5v-9c0-2.485 2.71-4.5 6.052-4.5l159.88-.021c3.342 0 6.053 2.015 6.053 4.5v9zM265.732 265.178c.584 2.887-1.629 5.228-4.942 5.228H103.457c-3.313 0-6.474-2.341-7.058-5.228L75.24 130.633c-.584-2.887 1.628-5.228 4.942-5.228h157.333c3.313 0 6.474 2.34 7.058 5.228l21.159 134.545z",fill:"none",stroke:"currentColor",strokeWidth:10,strokeMiterlimit:10}),n.createElement("path",{d:"M247.194 199.667h6.639c2.726 0 5-2.274 5-5s-2.274-5-5-5h-6.639c-2.726 0-5 2.274-5 5s2.275 5 5 5z",fill:"currentColor"}))}const Uue={"type-Device type":"Device type","type-airCondition":"Air conditioner","type-blind":"Blinds","type-blindButtons":"Blind controlled by buttons","type-button":"Button","type-buttonSensor":"Button with feedback","type-camera":"Camera","type-chart":"Chart","type-cie":"CIE color light","type-ct":"Color temperature","type-dimmer":"Dimmer","type-door":"Door","type-fireAlarm":"Fire alarm","type-floodAlarm":"Flood alarm","type-gate":"Gate","type-hue":"HUE light","type-humidity":"Humidity","type-illuminance":"Illuminance","type-image":"Image","type-info":"Information","type-instance":"Instance","type-light":"Light","type-location":"Position","type-locationOne":"Position as one state","type-lock":"Lock","type-media":"Media-player","type-motion":"Motion sensor","type-rgb":"RGB light","type-rgbSingle":"R,G,B light - single states","type-rgbwSingle":"R,G,B,W light - single states","type-slider":"Slider","type-socket":"Socket","type-temperature":"Temperature","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Vacuum cleaner","type-valve":"Valve","type-volume":"Volume","type-volumeGroup":"Volume group","type-warning":"Warning","type-weatherCurrent":"Current weather","type-weatherForecast":"Weather forecast","type-window":"Window sensor","type-windowTilt":"Window tilt sensor"},vue={"type-Device type":"Gerätetyp","type-airCondition":"Klimaanlage","type-blind":"Jalousien","type-blindButtons":"Jalousie über Tasten gesteuert","type-button":"Taste","type-buttonSensor":"Taste mit Rückmeldung","type-camera":"Kamera","type-chart":"Diagramm","type-cie":"CIE Farblicht","type-ct":"Farbtemperatur","type-dimmer":"Dimmer","type-door":"Türsensor","type-fireAlarm":"Feueralarm","type-floodAlarm":"Wasseralarm","type-gate":"Tor-Steuerung","type-hue":"HUE-Licht","type-humidity":"Feuchtigkeit","type-illuminance":"Beleuchtungsstärke","type-image":"Bild","type-info":"Information","type-instance":"Instanz","type-light":"Licht","type-location":"Position","type-locationOne":"Position als ein Zustand","type-lock":"Schloss","type-media":"Mediaplayer","type-motion":"Bewegungssensor","type-rgb":"RGB-Licht","type-rgbSingle":"R,G,B-Licht Einzelwerte","type-rgbwSingle":"R,G,B,W-Licht Einzelwerte","type-slider":"Schieberegler","type-socket":"Steckdose","type-temperature":"Temperatur","type-thermostat":"Thermostat","type-url":"URL","type-vacuumCleaner":"Staubsauger","type-valve":"Ventil","type-volume":"Lautstärke","type-volumeGroup":"Lautstärke-Gruppe","type-warning":"Warnung","type-weatherCurrent":"Aktuelle Wetterlage","type-weatherForecast":"Wettervorhersage","type-window":"Fenstersensor","type-windowTilt":"Fensterkippung-Sensor"},bue={"type-Device type":"Тип устройства","type-airCondition":"Кондиционер","type-blind":"Рольставни/Жалюзи","type-blindButtons":"Жалюзи управляющиеся кнопками","type-button":"Кнопка","type-buttonSensor":"Кнопка с обратной связью","type-camera":"Камера","type-chart":"Диаграмма","type-cie":"CIE свет","type-ct":"Цветовая температура","type-dimmer":"Диммер","type-door":"Датчик положения двери","type-fireAlarm":"Датчик дыма","type-floodAlarm":"Датчик затопления","type-gate":"Ворота","type-hue":"HUE свет","type-humidity":"Влажность","type-illuminance":"Освещенность","type-image":"Изображение","type-info":"Информация","type-instance":"Инстанция","type-light":"Свет","type-location":"Местоположение","type-locationOne":"Позиция в одном состоянии","type-lock":"Замок","type-media":"Медиа-плейер","type-motion":"Датчик движения","type-rgb":"RGB свет","type-rgbSingle":"R,G,B как отдельные значение","type-rgbwSingle":"R,G,B,W как отдельные значение","type-slider":"Ползунок","type-socket":"Розетка","type-temperature":"Температура","type-thermostat":"Термостат","type-url":"URL","type-vacuumCleaner":"Пылесос","type-valve":"Вентиль","type-volume":"Громкость","type-volumeGroup":"Группа громкости","type-warning":"Предупреждение","type-weatherCurrent":"Актуальная погода","type-weatherForecast":"Прогноз погоды","type-window":"Датчик открытия окна","type-windowTilt":"Датчик наклона окна"},$ue={"type-Device type":"Tipo de dispositivo","type-airCondition":"Ar condicionado","type-blind":"persianas","type-blindButtons":"Persiana controlada por botões","type-button":"botão","type-buttonSensor":"Sensor de botão","type-camera":"câmera","type-chart":"Gráfico","type-cie":"Luz colorida CIE","type-ct":"Temperatura de cor","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"alarme de incêndio","type-floodAlarm":"alarme de inundação","type-gate":"portão","type-hue":"Luz HUE","type-humidity":"umidade","type-illuminance":"Iluminância","type-image":"imagem","type-info":"informação","type-instance":"exemplo","type-light":"luz","type-location":"localização","type-locationOne":"Posição como um estado","type-lock":"trancar","type-media":"mídia","type-motion":"movimento","type-rgb":"Luz RGB","type-rgbSingle":"Luz RGB única","type-rgbwSingle":"RGBW como valor único","type-slider":"controle deslizante","type-socket":"soquete","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirador de pó","type-valve":"válvula","type-volume":"volume","type-volumeGroup":"grupo de volume","type-warning":"aviso","type-weatherCurrent":"clima atual","type-weatherForecast":"previsão do tempo","type-window":"janela","type-windowTilt":"inclinação da janela"},Pue={"type-Device type":"Typ urządzenia","type-airCondition":"Klimatyzator","type-blind":"żaluzje","type-blindButtons":"Roleta sterowana przyciskami","type-button":"przycisk","type-buttonSensor":"Czujnik przycisku","type-camera":"kamera","type-chart":"Wykres","type-cie":"Światło kolorowe CIE","type-ct":"Temperatura barwowa","type-dimmer":"opornik","type-door":"drzwi","type-fireAlarm":"alarm pożarowy","type-floodAlarm":"alarm przeciwpowodziowy","type-gate":"brama","type-hue":"Światło HUE","type-humidity":"wilgotność","type-illuminance":"Natężenie oświetlenia","type-image":"obraz","type-info":"Informacje","type-instance":"przykład","type-light":"światło","type-location":"lokalizacja","type-locationOne":"Pozycja jako państwa","type-lock":"zamek","type-media":"głoska bezdźwięczna","type-motion":"ruch","type-rgb":"Światło RGB","type-rgbSingle":"Pojedyncze światło RGB","type-rgbwSingle":"RGBW jako pojedyncza wartość","type-slider":"suwak","type-socket":"gniazdo","type-temperature":"temperatura","type-thermostat":"termostat","type-url":"Adres URL","type-vacuumCleaner":"Odkurzacz","type-valve":"zawór","type-volume":"tom","type-volumeGroup":"grupa woluminów","type-warning":"ostrzeżenie","type-weatherCurrent":"aktualna pogoda","type-weatherForecast":"prognoza pogody","type-window":"okno","type-windowTilt":"pochylenie okna"},Wue={"type-Device type":"Type d'appareil","type-airCondition":"Climatiseur","type-blind":"stores","type-blindButtons":"Store commandé par boutons","type-button":"bouton","type-buttonSensor":"Capteur de bouton","type-camera":"caméra","type-chart":"Graphique","type-cie":"lumière colorée CIE","type-ct":"Température de couleur","type-dimmer":"variateur","type-door":"porte","type-fireAlarm":"alarme incendie","type-floodAlarm":"alarme d'inondation","type-gate":"grille","type-hue":"Lumière HUE","type-humidity":"humidité","type-illuminance":"Éclairement","type-image":"image","type-info":"informations","type-instance":"exemple","type-light":"lumière","type-location":"emplacement","type-locationOne":"Position en tant qu'État","type-lock":"verrouillage","type-media":"médias","type-motion":"mouvement","type-rgb":"lumière RVB","type-rgbSingle":"Lumière RVB simple","type-rgbwSingle":"RGBW comme valeur unique","type-slider":"curseur","type-socket":"douille","type-temperature":"température","type-thermostat":"thermostat","type-url":"URL","type-vacuumCleaner":"Aspirateur","type-valve":"soupape","type-volume":"volume","type-volumeGroup":"groupe de volumes","type-warning":"avertissement","type-weatherCurrent":"météo actuelle","type-weatherForecast":"prévisions météorologiques","type-window":"fenêtre","type-windowTilt":"inclinaison de la fenêtre"},Rue={"type-Device type":"Tipo di dispositivo","type-airCondition":"Condizionatore d'aria","type-blind":"tende","type-blindButtons":"Tenda controllata da pulsanti","type-button":"pulsante","type-buttonSensor":"Sensore del pulsante","type-camera":"telecamera","type-chart":"Grafico","type-cie":"Luce colorata CIE","type-ct":"Temperatura del colore","type-dimmer":"dimmer","type-door":"porta","type-fireAlarm":"allarme antincendio","type-floodAlarm":"allarme allagamento","type-gate":"cancello","type-hue":"Luce HUE","type-humidity":"umidità","type-illuminance":"Illuminamento","type-image":"immagine","type-info":"informazioni","type-instance":"esempio","type-light":"leggero","type-location":"posizione","type-locationOne":"Posizione come stato","type-lock":"serratura","type-media":"media","type-motion":"movimento","type-rgb":"luce RGB","type-rgbSingle":"Luce RGB singola","type-rgbwSingle":"RGBW come valore singolo","type-slider":"cursore","type-socket":"PRESA","type-temperature":"temperatura","type-thermostat":"termostato","type-url":"URL","type-vacuumCleaner":"Aspirapolvere","type-valve":"valvola","type-volume":"volume","type-volumeGroup":"gruppo di volumi","type-warning":"avvertimento","type-weatherCurrent":"meteo attuale","type-weatherForecast":"previsioni del tempo","type-window":"finestra","type-windowTilt":"inclinazione della finestra"},Jue={"type-Device type":"Apparaattype","type-airCondition":"Airconditioner","type-blind":"jaloezieën","type-blindButtons":"Jaloezie bediend door knoppen","type-button":"knop","type-buttonSensor":"Knopsensor","type-camera":"camera","type-chart":"Grafiek","type-cie":"CIE-kleurenlicht","type-ct":"Kleurtemperatuur","type-dimmer":"dimmer","type-door":"deur","type-fireAlarm":"brandalarm","type-floodAlarm":"overstromingsalarm","type-gate":"hek","type-hue":"HUE-licht","type-humidity":"vochtigheid","type-illuminance":"Verlichtingssterkte","type-image":"afbeelding","type-info":"informatie","type-instance":"aanleg","type-light":"licht","type-location":"locatie","type-locationOne":"Positie als staat","type-lock":"slot","type-media":"media","type-motion":"beweging","type-rgb":"RGB-licht","type-rgbSingle":"RGB-licht enkel","type-rgbwSingle":"RGBW als enkele waarde","type-slider":"schuifregelaar","type-socket":"stopcontact","type-temperature":"temperatuur","type-thermostat":"thermostaat","type-url":"URL","type-vacuumCleaner":"Stofzuiger","type-valve":"ventiel","type-volume":"volume","type-volumeGroup":"volumegroep","type-warning":"waarschuwing","type-weatherCurrent":"huidige weersomstandigheden","type-weatherForecast":"weersvoorspelling","type-window":"raam","type-windowTilt":"raamkanteling"},Bue={"type-Device type":"Тип пристрою","type-airCondition":"Кондиціонер","type-blind":"жалюзі","type-blindButtons":"Штора керується кнопками","type-button":"кнопку","type-buttonSensor":"Датчик кнопки","type-camera":"камера","type-chart":"Діаграма","type-cie":"Кольорове світло CIE","type-ct":"Колірна температура","type-dimmer":"диммер","type-door":"двері","type-fireAlarm":"пожежна сигналізація","type-floodAlarm":"сигналізація про повінь","type-gate":"ворота","type-hue":"світло HUE","type-humidity":"вологість","type-illuminance":"Освітленість","type-image":"зображення","type-info":"інформація","type-instance":"екземпляр","type-light":"світло","type-location":"розташування","type-locationOne":"Позиція як держави","type-lock":"замок","type-media":"ЗМІ","type-motion":"руху","type-rgb":"RGB світло","type-rgbSingle":"Одиночне світло RGB","type-rgbwSingle":"RGBW як одне значення","type-slider":"повзунок","type-socket":"гніздо","type-temperature":"температура","type-thermostat":"термостат","type-url":"URL","type-vacuumCleaner":"Пилосос","type-valve":"клапан","type-volume":"обсяг","type-volumeGroup":"група обсягів","type-warning":"УВАГА","type-weatherCurrent":"поточна погода","type-weatherForecast":"прогноз погоди","type-window":"вікно","type-windowTilt":"нахил вікна"},Fue={"type-Device type":"设备类型","type-airCondition":"空调","type-blind":"百叶窗","type-blindButtons":"按钮控制百叶窗","type-button":"按钮","type-buttonSensor":"按钮传感器","type-camera":"相机","type-chart":"图表","type-cie":"CIE色光","type-ct":"色温","type-dimmer":"调光器","type-door":"门","type-fireAlarm":"火灾报警","type-floodAlarm":"洪水警报","type-gate":"门","type-hue":"色调灯","type-humidity":"湿度","type-illuminance":"照度","type-image":"图像","type-info":"信息","type-instance":"实例","type-light":"光","type-location":"地点","type-locationOne":"作为一个国家的地位","type-lock":"锁","type-media":"媒体","type-motion":"运动","type-rgb":"RGB灯","type-rgbSingle":"RGB灯单","type-rgbwSingle":"RGBW 作为单一值","type-slider":"滑块","type-socket":"插座","type-temperature":"温度","type-thermostat":"恒温器","type-url":"网址","type-vacuumCleaner":"吸尘器","type-valve":"阀门","type-volume":"体积","type-volumeGroup":"卷组","type-warning":"警告","type-weatherCurrent":"当前天气","type-weatherForecast":"天气预报","type-window":"窗户","type-windowTilt":"窗户倾斜"};let xM=!1;function Da(){xM||(xM=!0,d.extendTranslations({en:Uue,de:vue,ru:bue,pt:$ue,pl:Pue,fr:Wue,it:Rue,nl:Jue,uk:Bue,"zh-cn":Fue}))}const fM={[R.Types.airCondition]:Fce,[R.Types.blind]:SM,[R.Types.blindButtons]:SM,[R.Types.button]:xue,[R.Types.buttonSensor]:hue,[R.Types.camera]:Wce,[R.Types.chart]:vce,[R.Types.image]:Gce,[R.Types.dimmer]:Mue,[R.Types.door]:Oue,[R.Types.fireAlarm]:EM,"sensor.alarm.fire":EM,[R.Types.floodAlarm]:_M,"sensor.alarm.flood":_M,[R.Types.gate]:Eue,[R.Types.humidity]:_ue,[R.Types.illuminance]:Aue,[R.Types.info]:Hce,[R.Types.light]:Vce,[R.Types.lock]:Zce,[R.Types.location]:eue,[R.Types.locationOne]:yue,[R.Types.media]:qce,[R.Types.motion]:Sue,[R.Types.ct]:pM,[R.Types.rgb]:Ui,[R.Types.rgbSingle]:Ui,[R.Types.rgbwSingle]:pue,[R.Types.hue]:pM,[R.Types.cie]:Ui,[R.Types.slider]:Kce,[R.Types.socket]:fue,[R.Types.temperature]:kue,[R.Types.thermostat]:Yue,[R.Types.vacuumCleaner]:mue,[R.Types.volume]:sue,[R.Types.volumeGroup]:oue,[R.Types.window]:Que,[R.Types.windowTilt]:ya,[R.Types.weatherCurrent]:mM,[R.Types.weatherForecast]:mM,[R.Types.warning]:hM,[R.Types.unknown]:nue,[R.Types.instance]:rue,invalid:hM,hub3:jue,node:Lue,hub5:uue,controller:cue},Ws={width:32,height:32};function Gue(i){const[e,t]=n.useState(!1);if(b.useEffect(()=>{i.title&&!e&&(Da(),t(!0))},[i.title,e]),!e&&i.title)return n.createElement(g.Box,{style:{...Ws,...i.style||void 0},className:i.className,sx:i.sx});const s=i.type||(i.src?Object.keys(fM).find(M=>i.src===M):void 0);if(!s&&i.src)return n.createElement(Ie,{style:Ws,...i,title:i.title===!0?void 0:i.title,src:i.src});const o=s&&fM[s];if(!o)return s?n.createElement("span",{style:{...Ws,...i.style||void 0}},s[0].toUpperCase()):null;const r=n.createElement(o,{style:{...Ws,...i.style||void 0},onClick:i.onClick,className:i.className,sx:i.sx});return i.title?n.createElement(g.Tooltip,{slotProps:{popper:{sx:{pointerEvents:"none"}}},title:i.title===!0?d.t(`type-${s}`):i.title},n.createElement("div",{style:{display:"flex"}},r)):r}const at={itemChildrenWrapper:{display:"flex",width:"100%",justifyContent:"space-between"},type:{marginTop:10},selectIcon:{paddingRight:8,verticalAlign:"middle",width:20,height:20},selectText:{verticalAlign:"middle"},iconWrapper:{display:"flex",alignItems:"center"},iconStyle:{width:16,height:16,margin:"0 3px"},emptyIcon:{width:16,height:16,margin:"0 3px"}};function c4e(i){const[e,t]=n.useState({}),[s,o]=n.useState([]);return b.useEffect(()=>{const r={};Object.keys(R.Types).filter(a=>{var u,N;return(!i.supportedDevices||((u=i.supportedDevices)==null?void 0:u.includes(a)))&&!((N=i.unsupportedDevices)!=null&&N.includes(a))}).forEach(a=>r[a]=d.t(`type-${R.Types[a]}`));const M=Object.keys(r);M.sort((a,u)=>r[a]===r[u]?0:r[a].localeCompare(r[u],"de")),Da(),o(M),t(r)},[i.supportedDevices,i.unsupportedDevices]),s?n.createElement(g.FormControl,{style:{...at.type,...i.style},sx:i.sx,variant:"standard",error:!!i.error},n.createElement(g.InputLabel,null,i.label||d.t("type-Device type")),n.createElement(g.Select,{variant:"standard",disabled:!!i.disabled,value:i.value,onChange:r=>i.onChange(r.target.value)},s.map(r=>{var M;return n.createElement(g.MenuItem,{key:R.Types[r],value:R.Types[r]},n.createElement("div",{style:at.itemChildrenWrapper},n.createElement("div",null,n.createElement(Gue,{type:R.Types[r],style:{...at.selectIcon,color:i.themeType==="dark"?"#FFFFFF":"#000"}}),n.createElement("span",{style:at.selectText},e[r])),(M=i.showApplications)!=null&&M.TYPE_OPTIONS[r]?n.createElement("div",{style:at.iconWrapper},Object.keys(i.showApplications.TYPE_OPTIONS[r]).map(a=>i.showApplications.TYPE_OPTIONS[r][a]?n.createElement(Ie,{key:a,style:at.iconStyle,src:i.showApplications.ICONS_TYPE[a]}):n.createElement("div",{key:a,style:at.emptyIcon}))):null))}))):n.createElement(g.Box,{style:{...at.type,...i.style},sx:i.sx})}function Hue(i){return v({attr:{version:"1",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"circle",attr:{fill:"#B2EBF2",cx:"32",cy:"24",r:"9"},child:[]},{tag:"path",attr:{fill:"#4DD0E1",d:"M32,12c-6.6,0-12,5.4-12,12c0,6.6,5.4,12,12,12s12-5.4,12-12C44,17.4,38.6,12,32,12z M32,32 c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S36.4,32,32,32z"},child:[]},{tag:"g",attr:{fill:"#3F51B5"},child:[{tag:"polygon",attr:{points:"25.4,22 19.8,5.1 13.6,27.7 11.4,22 4,22 4,26 8.6,26 14.4,40.3 20.2,18.9 22.6,26 30,26 30,22"},child:[]},{tag:"circle",attr:{cx:"32",cy:"24",r:"4"},child:[]}]}]})(i)}function Vue(i){return v({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M4.428 2.727l3.335 3.335c-.486.07-.903.276-1.32.624L.886 12.383c-1.181 1.18-1.181 3.194 0 4.375a2.41 2.41 0 0 0 1.598.834l17.088 3.681-3.335-3.333c.486-.07.903-.278 1.32-.626l5.557-5.695c1.181-1.181 1.181-3.196 0-4.377a2.411 2.411 0 0 0-1.598-.833zM11.653 6.2c.694 0 1.25.486 1.25 1.18 0 .695-.486 1.251-1.181 1.251-.695 0-1.25-.485-1.25-1.18s.555-1.251 1.18-1.251zm1.51 3.792c.049-.006.088.046.088.098-.139.694-.695 1.181-1.39 1.181-.694 0-1.32-.487-1.46-1.112 0 0 .002-.07.071 0 .487.278.972.348 1.32.278.346 0 .833-.07 1.32-.416a.092.092 0 0 1 .05-.029zm.723 2.511c.058.013.06.106.06.158-.209.903-.973 1.666-1.946 1.666a2.167 2.167 0 0 1-2.084-1.528c-.07-.07 0-.138.138-.138.695.347 1.39.416 1.877.416.486 0 1.18-.14 1.875-.556.035-.017.06-.022.08-.018zm.597 3.018c.049-.013.087.09.087.195-.278 1.181-1.25 2.085-2.5 2.155-1.251 0-2.293-.835-2.57-1.946 0-.139.068-.278.207-.209.834.486 1.737.556 2.362.556s1.529-.208 2.362-.694c.018-.035.036-.053.052-.057z"},child:[]}]})(i)}function Zue(i){return v({attr:{version:"1.2",baseProfile:"tiny",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13 5l.855 3.42 3.389-.971 1.501 2.6-2.535 2.449 2.535 2.451-1.5 2.6-3.39-.971-.855 3.422h-3l-.855-3.422-3.39.971-1.501-2.6 2.535-2.451-2.534-2.449 1.5-2.6 3.39.971.855-3.42h3m0-2h-3c-.918 0-1.718.625-1.939 1.516l-.354 1.412-1.4-.4c-.184-.053-.369-.078-.552-.078-.7 0-1.368.37-1.731 1l-1.5 2.6c-.459.796-.317 1.802.342 2.438l1.047 1.011-1.048 1.015c-.66.637-.802 1.643-.343 2.438l1.502 2.6c.363.631 1.031 1 1.731 1 .183 0 .368-.025.552-.076l1.399-.401.354 1.415c.222.885 1.022 1.51 1.94 1.51h3c.918 0 1.718-.625 1.939-1.516l.354-1.414 1.399.4c.184.053.369.077.552.077.7 0 1.368-.37 1.731-1l1.5-2.6c.459-.796.317-1.8-.342-2.438l-1.047-1.013 1.047-1.013c.66-.637.801-1.644.342-2.438l-1.5-2.6c-.365-.631-1.031-1-1.732-1-.184 0-.368.025-.551.076l-1.4.401-.354-1.413c-.22-.884-1.02-1.509-1.938-1.509zM11.5 10.5c1.104 0 2 .895 2 2 0 1.104-.896 2-2 2s-2-.896-2-2c0-1.105.896-2 2-2m0-1c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3z"},child:[]}]})(i)}function Xue(i){return v({attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.707 17.707 13.414 12 7.707 6.293 6.293 7.707 10.586 12l-4.293 4.293zM15 6h2v12h-2z"},child:[]}]})(i)}function Kue(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M376 211H256V16L136 301h120v195z"},child:[]}]})(i)}function que(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 32l-64 96 80 16-16 80 64-96-80-16 16-80zm-96 217c-1.9 0-9.8 3-15.8 6.7-2.8 1.7-5.3 3.5-7.2 4.8v119c1.9 1.3 4.4 3.1 7.2 4.8 6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 5.9-3.7 10.6-7.3 10.6-7.3l2.5-2H201V265h-12.1l-2.5-2s-4.7-3.6-10.6-7.3c-6-3.7-13.9-6.7-15.8-6.7zm192 0c-1.9 0-9.8 3-15.8 6.7-5.9 3.7-10.6 7.3-10.6 7.3l-2.5 2H311v110h12.1l2.5 2s4.7 3.6 10.6 7.3c6 3.7 13.9 6.7 15.8 6.7 1.9 0 9.8-3 15.8-6.7 2.8-1.7 5.3-3.5 7.2-4.8v-119c-1.9-1.3-4.4-3.1-7.2-4.8-6-3.7-13.9-6.7-15.8-6.7zm-133 16v110h14V265h-14zm32 0v110h42V265h-42zM95.5 311c-18.8 0-36.6 9.2-49.94 22.7C32.22 347.1 23 365 23 384v106h18V384c0-13 6.78-27.1 17.32-37.7C68.85 335.8 82.8 329 95.5 329H119v-18H95.5zm297.5 0v18h22.9c13.1 0 27.1 6.8 37.7 17.4C464.2 357 471 371 471 384v106h18V384c0-19-9.2-37-22.7-50.4-13.4-13.4-31.4-22.6-50.4-22.6H393z"},child:[]}]})(i)}function eNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M20.127 52.803v58.986L250.46 245.153c26.367-28.823 70.087-36.533 105.313-16.195 35.29 20.374 50.465 62.207 38.567 99.503l101.648 58.855-64.728-74.65 35.638-37.352-57.27-7.687 84.72-86.92-125.71 33.186 12.995-120.208-66.578 96.363-27.448-80.593-16.353 88.77L20.127 52.803zm0 105.12l-.008.018.007.005v-.02zm0 .022l-.002 87.582 155.344 89.95-89.94 33.287h135.493l-63.658 99.87 116.22-70.083 15.77 85.852 38.543-80.01 63.66 87.018-5.853-87.047 90.54 17.268-102.4-59.198c-26.546 26.964-68.89 33.744-103.183 13.945-34.322-19.816-49.62-59.928-39.49-96.424L20.127 157.945zm316.6 119.442c-.938-.003-1.874.027-2.805.092-12.42.86-24.164 7.707-30.9 19.375-10.78 18.67-4.455 42.27 14.214 53.047 18.67 10.78 42.27 4.455 53.047-14.214 10.78-18.67 4.454-42.27-14.215-53.047-6.125-3.536-12.78-5.23-19.34-5.253z"},child:[]}]})(i)}function tNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M33.125 19.406L135.5 128.22l81-23.157 18.72-5.344-7.564 17.936-46.125 109.78 134.282-70 26.157-13.655L328.436 170 256.5 309.25l91.25-57.125 22.97-14.375-9.22 25.47-34.625 95.624 71-36.375 21.188-10.845L410.906 334l-33.937 93.063 45.124-6.688 4.53-.656 3.313 3.155 64.313 61.47-30.5-80.5 23.313-46.908-72.5 39.532 51.062-141.158-91.188 47.47 72.344-142.813-128.217 82.81L421.875 70.063 239.03 168.69l30.44-99.563-103.845 25.25-132.5-74.97zM18.155 30.78l77.876 108.25-31.124 75.532 94.125-46.78-98.905 166.812 190.25-99.656-101.03 185.406 140.25-79.063-46.94 102.22 106.5-53-45.655 92.28 86.5-14.467 93.47 31.562-63.158-60.344-56.125 8.314-15.53 2.312 5.374-14.75 31.158-85.437-70.907 36.31-21.124 10.814 8.094-22.313 33.47-92.436-97.22 60.875-28.938 18.092L224.22 331l74.06-143.344-131.06 68.313-22.97 12 10.03-23.908 48.626-115.687-67.75 19.375-5.5 1.563-3.875-4.157L18.157 30.78z"},child:[]}]})(i)}function sNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M288.3 13.4c-12.3-.01-23 6.49-27.3 15.31l-2.9 5.95-6.6-1.01c-5.5-.85-11.3-1.32-17.1-1.32-18.8 0-35.7 4.5-47.3 11.14-11.5 6.64-16.9 14.59-16.9 22 0 7.42 5.4 15.37 16.9 22 11.6 6.64 28.5 11.13 47.3 11.13 7.5-.02 14.9-.74 21.8-2.13l6.3-1.23 3.2 5.46c5.6 9.2 23.7 18.2 44.7 18.2 13.9 0 26.4-3.6 34.8-8.8 8.4-5.2 12.2-11.23 12.2-16.9 0-5.09-3-10.48-10-15.44-6.9-4.97-17.6-8.87-30-9.95l-18.3-1.59 12.5-13.49c4.1-4.41 6.1-9.6 6.1-14.87 0-12.88-12.4-24.46-29.4-24.46zM152.2 65.46C84.8 102.3 39 173.9 39 256c0 32.1 7 62.6 19.54 90 5.95-7.9 10.48-13.4 12.67-16C62.05 307.2 57 282.2 57 256c0-74 40.27-138.5 100.1-172.78-3.1-5.39-4.9-11.34-4.9-17.74v-.02zm210.7 1.75c7.5 6.93 12.5 15.9 12.5 25.99 0 1.14-.1 2.27-.2 3.38C423.7 132.9 455 190.7 455 256c0 23.7-4.2 46.5-11.8 67.6l18.3 2.2c7.4-21.9 11.5-45.4 11.5-69.8 0-80.8-44.4-151.5-110.1-188.79zm58.6 270.49c-11.1.2-23 1.1-35.9 3.1l-.5.1-.5.1c-25.8 7.3-37.1 15.2-46.4 24.7l-2.2 2.2-.3 3.1c-3.4 29.6-5.8 60 0 91.8l1.3 6.8 6.8.6c30.6 2.6 58.7 1.4 86.2 0l1-.1.9-.2c18.5-5.2 34.4-12.8 46.4-24.6l1.7-1.6.6-2.2c10-33.4 3.4-63.8.4-92.7l-.8-7.4-7.3-.7c-16.2-1.5-32.8-3.2-51.4-3zM79.62 348.2c-4.94 6.1-11.43 14.5-18.58 25.6-12.29 18.9-22.53 42.4-20.51 54.9 1.43 8.8 6.97 19.6 14.51 27.6 7.54 7.9 16.69 12.8 24.58 12.8 7.87 0 17.03-4.9 24.58-12.8 7.5-8 13.1-18.8 14.5-27.6 2-12.5-8.2-36-20.5-54.9-7.15-11-13.64-19.5-18.58-25.6zM427 355.7c1.7 0 3.3 0 5 .1 5.4.1 10.7.4 16 .8-5.9 3.4-12.1 6.8-19.5 9.9l-2.4.2c-19.5 1.4-37.7.3-55.4-2 4.7-2 10.5-4 18.3-6.2 13.8-2.2 26.3-2.9 38-2.8zm38 11.6c2.8 22.9 5 44.5-1 66.6-7 6.3-16 11.4-27 15.4 3-22.5 2-44.8-.5-66.6 11.3-5 20.2-10.2 28.5-15.4zm-112.2 13.1c20.7 3.2 42.3 5.4 65.8 4.5 2.5 23 3.5 45.6-.4 67.8-21.5 1-43.1 1.5-65.8-.1-3.5-24-2.2-47.9.4-72.2zm-216.4 34.7c.9 5.5 1 11 .1 16.4-.3 1.6-.6 3.3-1 4.9C170 459.5 211.4 473 256 473c21.6 0 42.5-3.2 62.3-9.1l-2-18.2c-19 6-39.3 9.3-60.3 9.3-44.9 0-86.3-14.8-119.6-39.9z"},child:[]}]})(i)}function kM(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M140 29.92c-31.4 0-59.89 3.25-79.89 8.25-9.9 2.5-17.8 5.51-22.4 8.25-3.2 1.87-4.1 3.15-4.5 3.58.4.43 1.3 1.71 4.5 3.58 4.6 2.74 12.5 5.75 22.4 8.25 20 5 48.49 8.25 79.89 8.25h5.7c5.3-2 11.1-3.78 17.6-5.4 20.3-5.08 46.5-8.42 75.8-9.36 1.2-.57 2.3-1.14 3.2-1.7 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zm232 0c-31.4 0-59.9 3.25-79.8 8.25-10 2.5-17.9 5.51-22.5 8.25-3.1 1.87-4.1 3.15-4.5 3.58.4.43 1.4 1.71 4.5 3.58.9.56 2 1.13 3.2 1.7 29.3.94 55.5 4.28 75.8 9.36 6.5 1.62 12.3 3.4 17.6 5.4h5.7c31.4 0 59.9-3.25 79.8-8.25 10-2.5 17.9-5.51 22.5-8.25 3.1-1.87 4.1-3.15 4.5-3.58-.4-.43-1.4-1.71-4.5-3.58-4.6-2.74-12.5-5.75-22.5-8.25-19.9-5-48.4-8.25-79.8-8.25zM33.01 71.44V369.9c0 4.3 1.8 8 6.8 12.3 5 4.3 13.1 8.5 23.3 11.9 15.3 5.1 35 8.5 55.89 9.8V278.3l-16.5 28.6-7.79-4.5c-27.4-15.9-44.3-45.3-44.4-77v-9h52.59c-.6 2.6-.9 5.3-.9 8.1 0 13.1 6.8 24.8 17 31.7v-63.4c-1.9 1.3-3.6 2.7-5.2 4.2l-25.99-45.1 7.8-4.5c7.49-4.2 15.29-7.3 23.39-9.3V87.61c-24.19-1.08-45.99-4.01-63.19-8.32-8.9-2.21-16.5-4.76-22.8-7.85zm445.99 0c-6.3 3.09-14 5.63-22.8 7.84-17.2 4.31-39 7.24-63.2 8.32v50.6c8.1 2 16 5.1 23.4 9.3l7.7 4.5-4.4 7.8-21.5 37.2c-1.6-1.5-3.3-2.9-5.2-4.2v63.4c10.2-6.9 17-18.6 17-31.7 0-2.8-.3-5.5-.9-8.1h50.8v9c0 31.8-17 61.1-44.4 77l-7.8 4.5-14.7-25.5v122.5c20.9-1.3 40.7-4.7 55.9-9.8 10.2-3.4 18.3-7.6 23.3-11.9 5-4.3 6.8-8 6.8-12.3zM256 73c-34.7 0-66.2 3.57-88.3 9.1-11.1 2.77-19.8 6.09-25.1 9.19-4.3 2.58-5.3 4.42-5.5 4.71.2.29 1.2 2.12 5.5 4.7 5.3 3.1 14 6.4 25.1 9.2 22.1 5.5 53.6 9.1 88.3 9.1 34.7 0 66.2-3.6 88.3-9.1 11.1-2.8 19.8-6.1 25.1-9.2 4.3-2.58 5.3-4.41 5.5-4.7-.2-.29-1.2-2.13-5.5-4.71-5.3-3.1-14-6.42-25.1-9.19-22.1-5.53-53.6-9.1-88.3-9.1zm118.9 23c.1.1.1.1.1 0s0-.1-.1 0zm-237.8 0c-.1-.1-.1-.1-.1 0s0 .1.1 0zm-.1 22.1V448c0 5 2.2 9.3 7.9 14.2 5.6 4.8 14.7 9.5 25.9 13.3 22.6 7.5 54 11.5 85.2 11.5 31.2 0 62.6-4 85.2-11.5 11.2-3.8 20.3-8.5 25.9-13.3 5.7-4.9 7.9-9.2 7.9-14.2V118.1c-7.2 3.7-16 6.6-26.3 9.3-24.2 6-56.7 9.6-92.7 9.6s-68.5-3.6-92.7-9.6c-10.3-2.7-19.1-5.6-26.3-9.3zM256 191c16.8 0 33.5 4.4 48.5 13l7.8 4.5-4.5 7.8-24.1 41.6c-7.3-6.7-17-10.9-27.7-10.9s-20.4 4.2-27.7 10.9l-28.6-49.4 7.8-4.5c15-8.7 31.7-13 48.5-13zm0 74c12.8 0 23 10.2 23 23s-10.2 23-23 23-23-10.2-23-23 10.2-23 23-23zm-98 15h57.8c-.5 2.6-.8 5.3-.8 8 0 18.1 12 33.7 28.5 39l-29.2 50.5-7.8-4.5c-30-17.3-48.5-49.4-48.5-84zm138.2 0H352v9c0 34.6-18.5 66.7-48.5 84l-7.8 4.5-28.8-50c17.3-4.8 30.1-20.8 30.1-39.5 0-2.7-.3-5.4-.8-8z"},child:[]}]})(i)}function iNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"},child:[]}]})(i)}function oNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M352.7 21.04l-194.4.41L21.04 159.3l.41 194.4L159.3 491l194.4-.4L491 352.7l-.4-194.4L352.7 21.04zm-8 19.66l126.2 125.7.4 178.3-123.1 123.6-2.6 2.6-178.3.4L41.08 345.6l-.38-178.3L166.4 41.08l178.3-.38zm-7.5 18.01l-163.3.34L58.71 174.8l.34 163.3L174.8 453.3l163.3-.3 115.2-115.8-.3-163.3L337.2 58.71zM108.4 210.4c5.3 0 10.8.5 16.4 1.3 5.7.8 11.5 2 17.5 3.6v20.5c-5.3-2.4-10.5-4.2-15.6-5.4-5.1-1.2-9.9-1.8-14.4-1.8-6 0-10.4.8-13.25 2.5-2.87 1.6-4.3 4.2-4.3 7.7 0 2.6.96 4.6 2.87 6.1 1.95 1.4 5.48 2.7 10.58 3.7l10.6 2.1c10.8 2.2 18.5 5.5 23.1 9.9 4.5 4.5 6.8 10.8 6.8 18.9 0 10.7-3.2 18.7-9.5 24-6.4 5.2-16.1 7.8-29.2 7.8-6.1 0-12.3-.6-18.51-1.8-6.2-1.1-12.41-2.9-18.61-5.2v-21.1c6.2 3.3 12.19 5.8 17.96 7.5 5.82 1.6 11.46 2.4 16.76 2.4 5.5 0 9.7-.9 12.6-2.7 2.9-1.8 4.4-4.4 4.4-7.8 0-3.1-1-5.4-3-7.1-2-1.6-5.9-3.1-11.8-4.4l-9.7-2.1c-9.73-2.1-16.85-5.4-21.37-10-4.47-4.5-6.7-10.7-6.7-18.4 0-9.7 3.12-17.1 9.37-22.3 6.25-5.3 15.24-7.9 27-7.9zm187.7 0c15.6 0 27.8 4.5 36.7 13.5 8.9 8.9 13.3 21.2 13.3 37 0 15.7-4.4 28-13.3 37-8.9 8.9-21.1 13.4-36.7 13.4-15.6 0-27.8-4.5-36.7-13.4-8.9-9-13.3-21.3-13.3-37 0-15.8 4.4-28.1 13.3-37 8.9-9 21.1-13.5 36.7-13.5zm-141.9 1.8h89.6v18.9h-32.2v78.3h-25.1v-78.3h-32.3v-18.9zm205.8 0h41.6c12.3 0 21.8 2.8 28.4 8.3 6.7 5.4 10 13.2 10 23.4s-3.3 18.1-10 23.6c-6.6 5.4-16.1 8.2-28.4 8.2H385v33.7h-25v-97.2zm-63.9 16.4c-7.7 0-13.6 2.8-17.8 8.5-4.2 5.6-6.3 13.6-6.3 23.8 0 10.2 2.1 18.1 6.3 23.8 4.2 5.6 10.1 8.4 17.8 8.4 7.7 0 13.6-2.8 17.8-8.4 4.2-5.7 6.3-13.6 6.3-23.8 0-10.2-2.1-18.2-6.3-23.8-4.2-5.7-10.1-8.5-17.8-8.5zm88.9 1.8v27.1h13.9c4.9 0 8.6-1.2 11.3-3.5 2.6-2.4 3.9-5.8 3.9-10.1s-1.3-7.7-3.9-10c-2.7-2.4-6.4-3.5-11.3-3.5H385z"},child:[]}]})(i)}function rNe(i){return v({attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M327.467 19.992c.748 14.94 2.317 51.268 2.59 98.76 3.474-.286 6.557-.381 9.72 1.08 18.04 8.345 27.243 29.326 27.026 50.506-.217 21.18-11.283 44.136-36.104 54.307a41.62 41.62 0 0 1-2.486.923c-3.408 80.504-12.307 166.37-33.754 225.5-6.876 15.831-17.029 29.217-26.828 40.94l55.27.422c20.676-12.19 32.041-27.395 36.32-46.407l17.558 3.954c-3.67 16.312-11.99 30.662-24.511 42.677l143.052 1.094c-5.13-14.524-16.16-46.501-20.357-70.217C451.89 293.171 450.15 45 450.025 19.992zM18.279 38.984l.881 18.725c17.856 12.047 32.035 23.91 45.969 35.527 12.887-11.156 2.404-29.725-5.82-39.091-13.668-5.346-27.335-10.467-41.03-15.16zM86.723 65.13c4.77 14.56 3.347 29.656-7.477 39.746 24.105 19.479 50.832 38.151 97.1 55.635 13.836-22.588 12.08-43.852-3.338-60.739-29.03-10.9-57.703-22.997-86.285-34.642zm-31.721 42.988V400h17.996V122.723c-6.187-4.856-12.114-9.73-17.996-14.606zm145.264 1.434c3.253 8.283 4.54 16.754 3.982 25.043-.765 11.35-4.673 22.135-10.545 32.095 16.926 5.691 36.192 11.248 58.451 16.655l2.604.633 1.834 1.953c9.223 9.826 22.535 17.206 35.469 21.006 12.933 3.8 25.473 3.655 31.814 1.056 18.024-7.385 24.773-22.363 24.932-37.84.152-14.822-7.069-28.554-15.479-33.306-45.88-1.699-89.948-12.607-133.062-27.295zm-33.264 66.476V400h17.996V182.605a502.784 502.784 0 0 1-17.996-6.578zM32 419.002v17.996h176v-17.996z"},child:[]}]})(i)}function MNe(i){return v({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18.36 6.64a9 9 0 1 1-12.73 0"},child:[]},{tag:"line",attr:{x1:"12",y1:"2",x2:"12",y2:"12"},child:[]}]})(i)}function nNe(i){return v({attr:{fill:"none",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"},child:[]}]})(i)}function aNe(i){return v({attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M6 0l-6 8h6l-4 8 14-10h-8l6-6z"},child:[]}]})(i)}const u4e={SET:Yce,WORKING:CM,UNREACH:wM,LOWBAT:AM,MAINTAIN:Tue,ERROR:aue,DIRECTION:gue,CONNECTED:wM,ACTUAL:Zue,SECOND:Xue,PRESS_LONG:Rce,PRESS:Jce,MUTE:iue,ACCURACY:eNe,RADIUS:$ce,ELEVATION:Qce,LATITUDE:Uce,LONGITUDE:Pce,GPS:lue,ON_ACTUAL:IM,ON_SET:IM,OPEN:Bce,STOP:oNe,WATER_ALARM:OM,WASTE_ALARM:kM,PAUSE:kce,STATE:sNe,BATTERY:AM,WASTE:kM,WATER:OM,WORK_MODE:CM,MODE:Nue,POWER:bce,BOOST:Vue,HUMIDITY:zue,TEMPERATURE:wue,BRIGHTNESS:Due,MOTION:Xce,FIRE:due,WINDOW:ya,SMOKE:Iue,SWING:rNe,SPEED:iNe,DIMMER:nNe,ON:MNe,COLOR_TEMP:tue,ELECTRIC_POWER:aNe,CURRENT:Kue,VOLTAGE:que,CONSUMPTION:Hue,FREQUENCY:tNe,HUE:Cue};class da extends n.Component{static generateFile(e,t){const s=window.document.createElement("a");s.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(t,null,2))}`),s.setAttribute("download",e),s.style.display="none",window.document.body.appendChild(s),s.click(),window.document.body.removeChild(s)}handleFileSelect=e=>{const t=e.target,s=t==null?void 0:t.files;if(!s||!s.length){console.error("No files found. Please report to developers");return}const o=s[0];if(o){const r=new window.FileReader;r.onload=()=>{var a;const M=((a=r.result)==null?void 0:a.toString())||"";try{const u=JSON.parse(M);u.native&&u.common?u.common.name!==this.props.common.name?this.props.onError&&this.props.onError(d.t("ra_otherConfig",u.common.name)):this.props.onLoad&&this.props.onLoad(u.native):this.props.onError&&this.props.onError(d.t("ra_invalidConfig"))}catch(u){this.props.onError&&this.props.onError(u==null?void 0:u.toString())}},r.readAsText(o)}else alert("Failed to open JSON File")};download(){const e={_id:`system.adapter.${this.props.common.name}.${this.props.instance}`,common:JSON.parse(JSON.stringify(this.props.common)),native:this.props.native};e.common.news&&delete e.common.news,e.common.titleLang&&delete e.common.titleLang,e.common.desc&&delete e.common.desc,da.generateFile(`${e._id}.json`,e)}upload(){const e=window.document.createElement("input");e.setAttribute("type","file"),e.setAttribute("id","files"),e.setAttribute("opacity","0"),e.addEventListener("change",this.handleFileSelect,!1),e.click()}render(){return n.createElement("div",{className:this.props.className,style:this.props.style},this.props.common.icon?n.createElement(Ie,{src:this.props.common.icon,style:{padding:8,width:64},alt:"logo"}):null,this.props.common.readme?n.createElement(g.Fab,{size:"small",color:"primary","aria-label":"Help",style:{marginRight:5,marginTop:5,float:"right"},onClick:()=>{const e=window.open(this.props.common.readme,"_blank");e==null||e.focus()}},n.createElement(m.Help,null)):null,n.createElement(g.Fab,{size:"small",color:"primary","aria-label":"Load config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Load configuration from file"),onClick:()=>this.upload()},n.createElement(m.VerticalAlignTop,null)),n.createElement(g.Fab,{size:"small",color:"primary","aria-label":"Save config",style:{marginRight:5,marginTop:5,float:"right"},title:d.t("ra_Save configuration to file"),onClick:()=>this.download()},n.createElement(m.VerticalAlignBottom,null)))}}class za{static text2link(e){const t=e.match(/\d+\.\)\s/);return t&&(e=e.replace(t[0],t[0].replace(/\s/," "))),e.replace(/[^a-zA-Zа-яА-Я0-9]/g,"").trim().replace(/\s/g,"").toLowerCase()}static openLink(e,t){e=e.replace(/\/\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\d+)?\//i,"//[$1]$2/"),t==="this"?window.location.href=e:window.open(e,t||"_blank")}static getTitle(e){const t=za.extractHeader(e);let s=t.body;const o=t.header;if(!o.title){s=s.replace(/{[^}]*}/g,""),s=s.trim();const r=s.replace(/\r/g,"").split(` `);for(let M=0;M{if(!M.trim())return;const n=M.indexOf(":");if(n!==-1){const u=M.substring(0,n).trim();let N=M.substring(n+1).trim();N=N.replace(/^['"]|['"]$/g,""),N==="true"?t[u]=!0:N==="false"?t[u]=!1:parseFloat(N).toString()===N?t[u]=parseFloat(N):t[u]=N}else t[M.trim()]=!0}),e=e.substring(s+7))}return{header:t,body:e}}static removeDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(s=>e=e.replace(s,"")),e}static onCopy(e,t){Vn(t),e&&e.stopPropagation(),e&&e.preventDefault()}}function nNe(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function da(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 320 320",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("g",{fill:"currentColor"},a.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),a.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"248",cx:"160",fill:"none",strokeWidth:"15"}),a.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),a.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function $t(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"}))}function za(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 320 320",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("g",{fill:"currentColor"},a.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),a.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),a.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),a.createElement("rect",{height:"27",width:"50",y:"140.83068",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),a.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"251",cx:"241",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),a.createElement("line",{y2:"200.94531",x2:"240.5",y1:"45.94531",x1:"240.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),a.createElement("rect",{height:"27",width:"50",y:"78.7979",x:"214.5",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),a.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"84",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),a.createElement("line",{y2:"201.94531",x2:"83.5",y1:"46.94531",x1:"83.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),a.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"57.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function aNe(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",onClick:e=>i.onClick&&i.onClick(e),width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}))}function cNe(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}),a.createElement("path",{fill:"currentColor",stroke:"null",d:"m261,270l-12,0l0,-24c0,-33.12 -26.88,-60 -60,-60s-60,26.88 -60,60l0,24l-12,0c-13.2,0 -24,10.8 -24,24l0,120c0,13.2 10.8,24 24,24l144,0c13.2,0 24,-10.8 24,-24l0,-120c0,-13.2 -10.8,-24 -24,-24zm-72,108c-13.2,0 -24,-10.8 -24,-24s10.8,-24 24,-24s24,10.8 24,24s-10.8,24 -24,24zm37.2,-108l-74.4,0l0,-24c0,-20.52 16.68,-37.2 37.2,-37.2c20.52,0 37.2,16.68 37.2,37.2l0,24z"}))}function uNe(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function gs(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 320 320",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("rect",{fill:"none",rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor"}),a.createElement("ellipse",{fill:"none",ry:"54",rx:"54",cy:"160",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor"}))}function NNe(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 24 24",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",stroke:"currentColor",d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"}))}const vi={root:{width:"100%",height:"100%"},overflowHidden:{overflow:"hidden"},container:{height:"100%"}};function lNe(i){var e;return a.createElement(g.Paper,{elevation:Number.isNaN(i.elevation)?1:i.elevation,style:{...vi.root,...((e=i.styles)==null?void 0:e.root)||void 0,...i.overflow!=="visible"?vi.overflowHidden:void 0},onKeyDown:i.onKeyDown,tabIndex:i.tabIndex},a.createElement(g.Grid2,{container:!0,direction:"column",wrap:"nowrap",sx:vi.container},i.children))}const kM={root:{height:"100%",overflow:"hidden"},overflowAuto:{overflow:"auto"}};function LNe(i){return a.createElement(g.Grid2,{sx:{...kM.root,...(i==null?void 0:i.style)||void 0,...i.overflow==="auto"?kM.overflowAuto:void 0},ref:i.ref},i.children)}function jNe(i){return a.createElement(g.Grid2,{container:!0,alignItems:"center"},i.children)}const Pt=24,de=32,gNe=16,ne=20,Ia=i=>i==="dark"?"#62ff25":"#37c400",wa=i=>i==="dark"?"#ee56ff":"#a204b4",TNe=i=>i==="dark"?"#fff46e":"#b89101",Ca=i=>"#ff6d69",ha=i=>"#5773ff",Aa="#ff413c",pa="#86211f",lo="#57ff45",Lo="#098c04",jo="#f3ad11",go="#6c5008",A={toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:16},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:8},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustom_center:{textAlign:"center"},columnCustom_left:{textAlign:"left"},columnCustom_right:{textAlign:"right"},width100:{width:"100%"},transparent_10:{opacity:.1},transparent_20:{opacity:.2},transparent_30:{opacity:.3},transparent_40:{opacity:.4},transparent_50:{opacity:.5},transparent_60:{opacity:.6},transparent_70:{opacity:.7},transparent_80:{opacity:.8},transparent_90:{opacity:.9},transparent_100:{opacity:1},headerRow:{paddingLeft:8,height:38,whiteSpace:"nowrap",userSelect:"none"},buttonClearFilter:{position:"relative",float:"right",padding:0},buttonClearFilterIcon:{zIndex:2,position:"absolute",top:0,left:0,color:"#FF0000",opacity:.7},tableDiv:{paddingTop:0,paddingLeft:0,width:"calc(100% - 8px)",height:"calc(100% - 38px)",overflow:"auto"},tableRow:i=>({pl:1,height:de,lineHeight:`${de}px`,verticalAlign:"top",userSelect:"none",position:"relative",width:"100%","&:hover":{background:`${i.palette.mode==="dark"?i.palette.primary.dark:i.palette.primary.light} !important`,color:S.invertColor(i.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"}),tableRowLines:i=>({borderBottom:`1px solid ${i.palette.mode==="dark","#8888882e"}`,"& > div":{borderRight:`1px solid ${i.palette.mode==="dark","#8888882e"}`}}),tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:de+10},tableRowAliasReadWrite:{height:de+22},tableRowFocused:i=>({"&:after":{content:'""',position:"absolute",top:1,left:1,right:1,bottom:1,border:i.palette.mode?"1px dotted #000":"1px dotted #FFF"}}),checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:de-4,height:de-4,mt:"2px",float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:i=>({marginRight:8,width:de-4,height:de-4,cursor:"pointer",color:i.palette.secondary.main||"#fbff7d",verticalAlign:"top"}),cellIdIconDocument:{verticalAlign:"middle",marginLeft:(de-ne)/2,marginRight:8,width:ne,height:ne},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:ne,height:ne,top:(de-ne)/2,opacity:.8,position:"absolute",right:3},cellCopyButtonInDetails:{width:ne,height:ne,top:(de-ne)/2,opacity:.8},cellEditButton:{width:ne,height:ne,color:"white",position:"absolute",top:(de-ne)/2,right:ne+3,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,ml:"5px",overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellNameWithDesc:{lineHeight:"normal"},cellNameDivDiv:{},cellDescription:{fontSize:10,opacity:.5,fontStyle:"italic"},cellIdAlias:i=>({fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:i.palette.mode==="dark"?"#009900":"#007700"}}),cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:Pt,height:Pt,display:"inline-block"},"& .itemIconFolder":{marginLeft:3}},cellRole:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellRoom:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellEnumParent:{opacity:.4},cellFunc:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValue:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValueButton:{marginTop:5},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:de,fontSize:16,display:"flex",overflow:"hidden",textOverflow:"ellipsis",position:"relative",verticalAlign:"top","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellValueFile:{color:"#2837b9"},cellValueTooltipTitle:{fontStyle:"italic",width:100,display:"inline-block"},cellValueTooltipValue:{width:120,display:"inline-block",whiteSpace:"nowrap",textOverflow:"ellipsis"},cellValueTooltipImage:{width:100,height:"auto"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden",pointerEvents:"none"},tooltip:{pointerEvents:"none"},cellValueTextUnit:{marginLeft:4,opacity:.8,display:"inline-block"},cellValueTextState:{opacity:.7},cellValueTooltipCopy:{position:"absolute",bottom:3,right:3},cellValueTooltipEdit:{position:"absolute",bottom:3,right:15},cellButtons:{display:"inline-block",verticalAlign:"top"},cellButtonsButton:{display:"inline-block",opacity:.5,width:ne+4,height:ne+4,"&:hover":{opacity:1},p:0,mt:"-2px"},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:40},cellButtonsButtonAlone:{ml:`${ne+6}px`,pt:0,mt:"-2px"},cellButtonsButtonWithCustoms:i=>({color:i.palette.mode==="dark"?i.palette.primary.main:i.palette.secondary.main}),cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:i=>({position:"absolute",top:ne/2-2,opacity:.7,width:ne-2,height:ne-2,color:i.palette.action.active,"&:hover":{opacity:1}}),cellButtonsValueButtonCopy:{right:8,cursor:"pointer"},cellButtonsValueButtonEdit:{right:ne/2+16},cellDetailsLine:{display:"flex",alignItems:"center",width:"100%",height:32,fontSize:16},cellDetailsName:{fontWeight:"bold",marginRight:8,minWidth:80},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{mt:0,mb:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:i=>({background:`${i.palette.primary.main} !important`,color:`${S.invertColor(i.palette.primary.main,!0)} !important`}),header:{width:"100%"},headerCell:{display:"inline-block",verticalAlign:"top"},headerCellValue:{paddingTop:4,fontSize:16},headerCellInput:{width:"calc(100% - 5px)",height:de,pt:0,"& .itemIcon":{verticalAlign:"middle",width:Pt,height:Pt,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:Pt,height:Pt,mr:"5px",display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:8,width:32,height:32,borderRadius:8,background:"#FFFFFF"},enumIcon:{marginTop:4,marginLeft:4,width:24,height:24},enumDialog:{overflow:"hidden"},enumList:{minWidth:250,height:"calc(100% - 50px)",overflow:"auto"},enumCheckbox:{minWidth:0},buttonDiv:{display:"flex",height:"100%",alignItems:"center"},aclText:{fontSize:13,marginTop:6},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},fontSizeTitle:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}}},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:5,backgroundColor:"background.default"},iconDeviceConnected:i=>({color:i.palette.mode==="dark"?lo:Lo,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceDisconnected:i=>({color:i.palette.mode==="dark"?jo:go,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceError:i=>({color:i.palette.mode==="dark"?Aa:pa,opacity:.8,position:"absolute",top:4,right:50,width:20}),resizeHandle:{display:"block",position:"absolute",cursor:"col-resize",width:7,top:2,bottom:2,zIndex:1},resizeHandleRight:{right:3,borderRight:"2px dotted #888","&:hover":{borderColor:"#ccc",borderRightStyle:"solid"},"&.active":{borderColor:"#517ea5",borderRightStyle:"solid"}},invertedBackground:i=>({backgroundColor:i.palette.mode==="dark"?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"}),invertedBackgroundFlex:i=>({backgroundColor:i.palette.mode==="dark"?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}),contextMenuEdit:i=>({color:i.palette.mode==="dark"?"#ffee48":"#cbb801"}),contextMenuEditValue:i=>({color:i.palette.mode==="dark"?"#5dff45":"#1cd301"}),contextMenuView:i=>({color:i.palette.mode==="dark"?"#FFF":"#000"}),contextMenuCustom:i=>({color:i.palette.mode==="dark"?"#42eaff":"#01bbc2"}),contextMenuACL:i=>({color:i.palette.mode==="dark"?"#e079ff":"#500070"}),contextMenuRoom:i=>({color:i.palette.mode==="dark"?"#ff9a33":"#642a00"}),contextMenuRole:i=>({color:i.palette.mode==="dark"?"#ffdb43":"#562d00"}),contextMenuDelete:i=>({color:i.palette.mode==="dark"?"#ff4f4f":"#cf0000"}),contextMenuKeys:{marginLeft:8,opacity:.7,fontSize:"smaller"},contextMenuWithSubMenu:{display:"flex"}};function yNe(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 436 436",style:i==null?void 0:i.style,width:"24",height:"24",className:"admin-button"},a.createElement("g",{fill:"currentColor"},a.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),a.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function DNe(i,e){const t=[];for(let s=0;s{if(o==null)return;const M=typeof o=="object";if(t&&M&&typeof o.en=="string"&&typeof o.de=="string"){s[r]=o.en;return}s[r]=M?To(o,e,t):o}):dNe(i,(s,o,r)=>{if(o==null||e.includes(r))return;const M=typeof o=="object";if(t&&M&&typeof o.en=="string"&&typeof o.de=="string"){s[r]=o.en;return}s[r]=M?To(o,e,t):o})}function YM(i,e,t){const s=document.createElement("a"),o=[];t.excludeSystemRepositories&&o.push("system.repositories");const r=o.length>0||t.excludeTranslations?To(e,o,t.excludeTranslations):e,M=t.beautify?JSON.stringify(r,null,2):JSON.stringify(r);s.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(M)}`),s.setAttribute("download",i),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}function Is(i,e,t,s){if(t=t||0,s===void 0&&(s=i.length-1,!s))return i[0]===e;const o=Math.floor((t+s)/2);return e===i[o]?!0:s-1===t?i[t]===e||i[s]===e:e>i[o]?Is(i,e,o,s):eC.role.startsWith(I))||(N=!0)):N=!0),!N&&((O=M.common)==null?void 0:O.custom)==="_"&&(C!=null&&C.custom))N=!0;else if(!N&&((p=M.common)!=null&&p.custom)&&((E=M.common)==null?void 0:E.custom)!=="_"){const I=M.common.custom;if(!(C!=null&&C.custom))N=!0;else if(I==="_dataSources")Object.keys(C.custom).find(_=>_.startsWith("history.")||_.startsWith("sql.")||_.startsWith("influxdb."))||(N=!0);else if(Array.isArray(I)){const _=Object.keys(C.custom);I.find(k=>_.find(f=>f.startsWith(k)))&&(N=!0)}else I!==!0&&!Object.keys(C.custom).find(_=>_.startsWith(I))&&(N=!0)}}!N&&!e.expertMode&&(N=l.id==="system"||l.id==="enum"||l.id.startsWith("system.")||l.id.startsWith("enum.")||l.id.startsWith("_design/")||l.id.endsWith(".admin")||!!(C!=null&&C.expert)),!N&&o.id&&(l.fID===void 0&&(l.fID=l.id.toLowerCase()),N=!l.fID.includes(o.id)),!N&&o.name&&(C?(l.fName===void 0&&(l.fName=C&&Oe(C.name,t)||"",l.fName=l.fName.toLowerCase()),N=!l.fName.includes(o.name)):N=!0),!N&&e.role&&C&&(C?N=!(typeof C.role=="string"&&C.role.startsWith(o.role)):N=!0),!N&&o.room&&(N=!o.room.find(I=>I===l.id||l.id.startsWith(`${I}.`))),!N&&o.func&&(N=!o.func.find(I=>I===l.id||l.id.startsWith(`${I}.`))),!N&&o.type&&(N=!(l.obj&&l.obj.type&&l.obj.type===o.type)),!N&&n&&(N=!(l.obj&&l.obj.type&&n.includes(l.obj.type))),!N&&o.custom&&(C?o.custom==="_"?N=!!C.custom:N=!C.custom||!C.custom[o.custom]:N=!0)}return l.visible=!N,l.hasVisibleChildren=!1,i.children&&u<20&&i.children.forEach(C=>{yo(C,e,t,s,o,r,M,n,u+1)&&(l.hasVisibleChildren=!0)}),l.sumVisibility=l.visible||l.hasVisibleChildren,r&&l.sumVisibility&&r.count++,l.id&&l.sumVisibility&&i.children&&i.children.forEach(C=>C.data.hasVisibleParent=!0),l.visible||l.hasVisibleChildren}function ma(i,e,t,s){var r;s=s||[];const o=i.data;return o.sumVisibility&&(o.id&&t[o.id]&&t[o.id].type===e&&s.push(o.id),(r=i.children)==null||r.forEach(M=>ma(M,e,t,s))),s}function QM(i,e,t,s,o,r){let M;return e==="alias"||e==="alias.0"?M=a.createElement(m.Link,{className:"iconOwn",style:{color:wa(s)}}):e==="0_userdata"||e==="0_userdata.0"?M=a.createElement(m.DataObject,{className:"iconOwn",style:{color:Ia(s)}}):e.startsWith("_design/")||e==="system"?M=a.createElement(m.SettingsApplications,{className:"iconOwn",style:{color:Ca(s)}}):e==="system.adapter"?M=a.createElement(m.SettingsApplications,{className:"iconOwn",style:{color:ha(s)}}):e==="system.group"?M=a.createElement(m.SupervisedUserCircle,{className:"iconOwn"}):e==="system.user"?M=a.createElement(m.PersonOutlined,{className:"iconOwn"}):e==="system.host"?M=a.createElement(m.Router,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?M=a.createElement(m.Wifi,{className:"iconOwn"}):e.endsWith(".info")?M=a.createElement(m.Info,{className:"iconOwn"}):i[e]&&i[e].type==="meta"?M=a.createElement(m.Description,{className:"iconOwn"}):t<2&&i[`system.adapter.${e}`]&&(M=ci(i,`system.adapter.${e}`,o,r)),M||null}function Oa(i,e){var t,s;return(s=(t=i==null?void 0:i.obj)==null?void 0:t.common)!=null&&s.desc&&Oe(i.obj.common.desc,e)||null}function zNe(i,e){const t=Oa(i,e);return t!=null&&t.startsWith("http")?a.createElement(g.Box,{component:"a",sx:A.cellIdTooltipLink,href:t,target:"_blank",rel:"noreferrer"},t):a.createElement("span",{style:A.cellIdTooltip},t||i.id||"")}function UM(i,e){var l,c,L,j,T,D,z,h,O,p;const t=e.imagePrefix||".";let s=Object.keys(i);s.sort((E,C)=>E===C?0:(E=E.replace(/\./g,"!!!"),C=C.replace(/\./g,"!!!"),E>C?1:-1)),e.root&&(s=s.filter(E=>E===e.root||E.startsWith(`${e.root}.`)));let o=[],r="",M=0;const n={data:{name:"",id:""},children:[]},u={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:i,customs:["_"],enums:[],hasSomeCustoms:!1,aliasesMap:{}};let N=n;for(let E=0;EY.role===P)?typeof P!="string"?console.warn(`Invalid role type "${typeof P}" in "${I._id}"`):u.roles.push({role:P,type:f.type}):C.startsWith("enum.rooms.")?(u.roomEnums.push(C),u.enums.push(C)):C.startsWith("enum.functions.")?(u.funcEnums.push(C),u.enums.push(C)):I.type==="enum"?u.enums.push(C):I.type==="instance"&&f&&(f.supportCustoms||(l=f.adminUI)!=null&&l.custom)&&(u.hasSomeCustoms=!0,u.customs.push(C.substring(15))),C.startsWith("alias.")&&((c=I.common.alias)!=null&&c.id))if(typeof I.common.alias.id=="string"){const Y=I.common.alias.id;u.aliasesMap[Y]?u.aliasesMap[Y].includes(C)||u.aliasesMap[Y].push(C):u.aliasesMap[Y]=[C]}else{const Y=I.common.alias.id.read;Y&&(u.aliasesMap[Y]?u.aliasesMap[Y].includes(C)||u.aliasesMap[Y].push(C):u.aliasesMap[Y]=[C]);const V=I.common.alias.id.write;V&&(u.aliasesMap[V]?u.aliasesMap[V].includes(C)||u.aliasesMap[V].push(C):u.aliasesMap[V]=[C])}}u.ids.push(C);let k;do if(k=!1,!r||C.startsWith(`${r}.`)){if(_.length-M>1){let P=r;for(let Y=M;Y<_.length-1;Y++)if(P+=(P?".":"")+_[Y],Is(u.ids,P))N.children&&(N=N.children.find(V=>V.data.name===_[Y]));else{const V={data:{name:_[Y],parent:N,id:P,obj:i[P],level:Y,icon:QM(i,P,Y,e.themeType,e.lang,t),generated:!0}};N.children=N.children||[],N.children.push(V),N=V,u.ids.push(P)}}const f={data:{name:_[_.length-1],title:Oe((L=I==null?void 0:I.common)==null?void 0:L.name,e.lang),obj:I,parent:N,icon:ci(i,C,e.lang,t)||QM(i,C,0,e.themeType,e.lang,t),id:C,hasCustoms:!!((j=I.common)!=null&&j.custom&&Object.keys(I.common.custom).length),level:_.length-1,generated:!1,button:I.type==="state"&&!!((T=I.common)!=null&&T.role)&&typeof I.common.role=="string"&&I.common.role.startsWith("button")&&((D=I.common)==null?void 0:D.write)!==!1,switch:I.type==="state"&&((z=I.common)==null?void 0:z.type)==="boolean"&&((h=I.common)==null?void 0:h.write)!==!1&&((O=I.common)==null?void 0:O.read)!==!1,url:!!((p=I.common)!=null&&p.role)&&typeof I.common.role=="string"&&I.common.role.startsWith("url")}};N.children=N.children||[],N.children.push(f),N=f,M=_.length,o=_,r=C}else{let f=0;for(;o[f]===_[f];)f++;if(f>0){let P=o.length;for(o=o.splice(0,f),M=f,r=o.join(".");P>f;)N.data.parent?N=N.data.parent:console.error(`Parent is null for ${C} ${r} ${o.join(".")}`),P--}else N=n,o=[],r="",M=0;k=!0}while(k)}return u.roomEnums.sort((E,C)=>{var k,f,P,Y;const I=Oe((f=(k=i[E])==null?void 0:k.common)==null?void 0:f.name,e.lang)||E.split(".").pop(),_=Oe((Y=(P=i[C])==null?void 0:P.common)==null?void 0:Y.name,e.lang)||C.split(".").pop();return I>_?1:I<_?-1:0}),u.funcEnums.sort((E,C)=>{var k,f,P,Y;const I=Oe((f=(k=i[E])==null?void 0:k.common)==null?void 0:f.name,e.lang)||E.split(".").pop(),_=Oe((Y=(P=i[C])==null?void 0:P.common)==null?void 0:Y.name,e.lang)||C.split(".").pop();return I>_?1:I<_?-1:0}),u.roles.sort((E,C)=>E.role.localeCompare(C.role)),u.types.sort(),{info:u,root:n}}function Ea(i,e,t,s,o){if(i.data.id===e)return i;if(t||(t=e.split("."),o=0,s=t[o]),!i.children&&i.data.id!==e)return null;let r;if(i.children)for(let M=0;Ms)break}return r?(o=o||0,Ea(r,e,t,`${s}.${t[o+1]}`,o+1)):null}function _a(i,e,t,s){var M,n;if(!e)return{rooms:[],per:!1};s=s||[];for(const u of i.roomEnums){const N=(M=i.objects[u])==null?void 0:M.common;if(!N)continue;const l=Oe(N.name,t);(n=N.members)!=null&&n.includes(e)&&!s.includes(l)&&s.push(l)}let o;const r=e.split(".");return r.pop(),e=r.join("."),i.objects[e]&&(o=s.length,_a(i,e,t,s)),{rooms:s,per:!o}}function Wt(i,e,t,s){var o,r;if(!e)return[];s=s||[];for(let M=0;M946681200&&N<9466812e5&&(N*=1e3),N=N&&new Date(N).toString();else l==="number"?Number.isInteger(N)||(N=Math.round(N*1e8)/1e8,s&&(N=N.toString().replace(".",","))):l==="object"?N=JSON.stringify(N):l!=="string"?N=N.toString():N.startsWith("data:image/")&&(u="image"),typeof N!="string"&&(N=N.toString());const c={v:N};M&&M[N]!==void 0&&N!==M[N]&&(c.s=N,N=M[N],c.v=N),((j=c.v)==null?void 0:j.length)>40&&(c.c=c.v,c.v=`${c.v.substring(0,40)}...`),n!=null&&n.unit&&(c.u=n.unit);let L;if(i.full&&(typeof N=="string"&&N.length>100?L=[{t:o.value,v:`${N.substring(0,100)}...`}]:L=[{t:o.value,v:N}],t)){if(t.ack!==void 0&&t.ack!==null&&L.push({t:o.ack,v:t.ack.toString()}),t.ts&&L.push({t:o.ts,v:t.ts?S.formatDate(new Date(t.ts),e):""}),t.lc&&L.push({t:o.lc,v:t.lc?S.formatDate(new Date(t.lc),e):""}),t.from){let T=t.from.toString();T.startsWith("system.adapter.")&&(T=T.substring(15)),L.push({t:o.from,v:T})}if(t.user){let T=t.user.toString();T.startsWith("system.user.")&&(T=T.substring(12)),L.push({t:o.user,v:T})}t.c&&L.push({t:o.c,v:t.c}),L.push({t:o.quality,v:S.quality2text(t.q||0).join(", "),nbr:!0})}return{valText:c,valFull:L,fileViewer:u}}function INe(i){const{state:e}=i;return{color:e!=null&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}function wNe(i,e){let t=e,s=1;const o=[];for(;s=t)o.push(0);else if(sthis.filterRefs[z]=b.createRef()),this.visibleCols=e.columns||re[e.width||"lg"].fields,e.types&&e.types.length===1){const z=this.visibleCols.indexOf("type");z!==-1&&this.visibleCols.splice(z,1)}this.possibleCols=re.xl.fields;let n=null;if(e.router){const z=e.router.getLocation();z.id&&z.dialog==="customs"&&(n=[z.id],this.pauseSubscribe(!0))}let u;Array.isArray(e.selected)?u=e.selected:u=[e.selected||""],u=u.map(z=>z.replace(/["']/g,"")).filter(z=>z),this.selectFirst=u.length&&u[0]?u[0]:this.selectFirst;const N=this.localStorage.getItem(`${e.dialogName||"App"}.columns`);let l;try{l=N?JSON.parse(N):null}catch{l=null}let c=null;try{c=c?JSON.parse(c):{}}catch{c={}}this.imagePrefix=e.imagePrefix||".";let L;const j=this.localStorage.getItem(`${e.dialogName||"App"}.foldersFirst`);j==="false"?L=!1:j==="true"?L=!0:L=e.foldersFirst===void 0?!0:e.foldersFirst;let T=!1;try{T=this.props.objectStatesView&&JSON.parse(this.localStorage.getItem(`${e.dialogName||"App"}.objectStatesView`)||"")||!1}catch{}this.state={loaded:!1,foldersFirst:L,selected:u,selectedNonObject:this.localStorage.getItem(`${e.dialogName||"App"}.selectedNonObject`)||"",filter:r,filterKey:0,focused:this.localStorage.getItem(`${e.dialogName||"App"}.focused`)||"",depth:0,expandAllVisible:!1,expanded:s,toast:"",scrollBarWidth:16,customDialog:n,editObjectDialog:"",editObjectAlias:!1,viewFileDialog:"",showAliasEditor:"",enumDialog:null,roleDialog:null,statesView:T,columns:l,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:this.localStorage.getItem(`${e.dialogName||"App"}.columnsAuto`)!=="false",columnsWidths:c,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,showAllExportOptions:!1,linesEnabled:this.localStorage.getItem(`${e.dialogName||"App"}.lines`)==="true",showDescription:this.localStorage.getItem(`${e.dialogName||"App"}.desc`)!=="false",showContextMenu:null,noStatesByExportImport:!1,beautifyJsonExport:!0,excludeSystemRepositoriesFromExport:!0,excludeTranslations:!1,tooltipInfo:null,aliasMenu:"",showRenameDialog:null},this.texts={name:e.t("ra_Name"),categories:e.t("ra_Categories"),value:e.t("ra_tooltip_value"),ack:e.t("ra_tooltip_ack"),ts:e.t("ra_tooltip_ts"),lc:e.t("ra_tooltip_lc"),from:e.t("ra_tooltip_from"),user:e.t("ra_tooltip_user"),c:e.t("ra_tooltip_comment"),quality:e.t("ra_tooltip_quality"),editObject:e.t("ra_tooltip_editObject"),deleteObject:e.t("ra_tooltip_deleteObject"),customConfig:e.t("ra_tooltip_customConfig"),copyState:e.t("ra_tooltip_copyState"),editState:e.t("ra_tooltip_editState"),ctrlForLink:e.t("ra_tooltip_ctrlForLink"),close:e.t("ra_Close"),filter_id:e.t("ra_filter_id"),filter_name:e.t("ra_filter_name"),filter_type:e.t("ra_filter_type"),filter_role:e.t("ra_filter_role"),filter_room:e.t("ra_filter_room"),filter_func:e.t("ra_filter_func"),filter_custom:e.t("ra_filter_customs"),filterCustomsWithout:e.t("ra_filter_customs_without"),objectChangedByUser:e.t("ra_object_changed_by_user"),objectChangedBy:e.t("ra_object_changed_by"),objectChangedFrom:e.t("ra_state_changed_from"),stateChangedBy:e.t("ra_state_changed_by"),stateChangedFrom:e.t("ra_state_changed_from"),ownerGroup:e.t("ra_Owner group"),ownerUser:e.t("ra_Owner user"),showAll:e.t("ra_show_all"),deviceError:e.t("ra_Error"),deviceDisconnected:e.t("ra_Disconnected"),deviceConnected:e.t("ra_Connected"),aclOwner_read_object:e.t("ra_aclOwner_read_object"),aclOwner_read_state:e.t("ra_aclOwner_read_state"),aclOwner_write_object:e.t("ra_aclOwner_write_object"),aclOwner_write_state:e.t("ra_aclOwner_write_state"),aclGroup_read_object:e.t("ra_aclGroup_read_object"),aclGroup_read_state:e.t("ra_aclGroup_read_state"),aclGroup_write_object:e.t("ra_aclGroup_write_object"),aclGroup_write_state:e.t("ra_aclGroup_write_state"),aclEveryone_read_object:e.t("ra_aclEveryone_read_object"),aclEveryone_read_state:e.t("ra_aclEveryone_read_state"),aclEveryone_write_object:e.t("ra_aclEveryone_write_object"),aclEveryone_write_state:e.t("ra_aclEveryone_write_state"),create:e.t("ra_Create"),createBooleanState:e.t("ra_create_boolean_state"),createNumberState:e.t("ra_create_number_state"),createStringState:e.t("ra_create_string_state"),createState:e.t("ra_create_state"),createChannel:e.t("ra_create_channel"),createDevice:e.t("ra_create_device"),createFolder:e.t("ra_Create folder")},this.levelPadding=e.levelPadding||gNe;const D=this.localStorage.getItem(`${this.props.dialogName||"App"}.table`);if(D)try{const z=JSON.parse(D),h=this.props.width||"lg";this.storedWidths=JSON.parse(JSON.stringify(re[h])),Object.keys(z).forEach(O=>{O==="id"?re[h].idWidth=z.id:O==="nameHeader"?re[h].widths.name=z[O]:re[h].widths[O]!==void 0&&(re[h].widths[O]=z[O])}),this.customWidth=!0}catch{}this.calculateColumnsVisibility()}async loadAllObjects(e){const t=this.props;try{await new Promise(u=>{this.setState({updating:!0},()=>u())});const s=(this.props.objectsWorker?await this.props.objectsWorker.getObjects(e):await t.socket.getObjects(e,!0))||{};if(t.types&&je.isWeb())for(let u=0;u{try{if(u(s[N]))this.objects[N]=s[N];else{const l=s[N]&&s[N].type;l&&(l==="channel"||l==="device"||l==="folder"||l==="adapter"||l==="instance")&&(this.objects[N]=s[N])}}catch(l){console.log(`Error by filtering of "${N}": ${l}`)}})}else if(t.types){this.objects={};const u=t.types;Object.keys(s).forEach(N=>{const l=s[N]&&s[N].type;l&&(l==="channel"||l==="device"||l==="enum"||l==="folder"||l==="adapter"||l==="instance"||u.includes(l))&&(this.objects[N]=s[N])})}else this.objects=s;t.setObjectsReference&&t.setObjectsReference(this.objects),this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&t.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then(u=>{u!=null&&u.val||(this.defaultHistory="")}).catch(u=>window.alert(`Cannot get state: ${u}`));const o=await this.getAdditionalColumns();this.calculateColumnsVisibility(null,null,o);const{info:r,root:M}=UM(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=M,this.info=r;const n=this.state.selected&&this.state.selected.length&&Ea(this.root,this.state.selected[0]);this.lastAppliedFilter=null,n&&!yo(n,this.state.filter,this.props.lang,this.objects,void 0,void 0,t.customFilter,t.types)?this.setState({filter:{...Rs},columnsForAdmin:o},()=>{this.setState({loaded:!0,updating:!1},()=>this.expandAllSelected(()=>this.onAfterSelect()))}):this.setState({loaded:!0,updating:!1,columnsForAdmin:o},()=>this.expandAllSelected(()=>this.onAfterSelect()))}catch(s){this.showError(s)}}static isNonExpertId(e){return!!We.#e.find(t=>e.startsWith(t))}expandAllSelected(e){const t=[...this.state.expanded];let s=!1;this.state.selected.forEach(o=>{const r=o.split("."),M=[];for(let n=0;n{this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}):this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}static getDerivedStateFromProps(e,t){const s={};let o=!1;return e.expertMode!==void 0&&e.expertMode!==t.filter.expertMode&&(o=!0,s.filter={...t.filter},s.filter.expertMode=e.expertMode),o?s:null}async componentDidMount(){await this.loadAllObjects(!bM),this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChangeFromWorker):await this.props.socket.subscribeObject("*",this.onObjectChange),bM=!0,window.addEventListener("contextmenu",this.onContextMenu,!0),window.addEventListener("keydown",this.onKeyPress,!0),window.addEventListener("keyup",this.onKeyPress,!0)}onKeyPress=e=>{e.type==="keydown"&&e.ctrlKey&&!this.cltrPressed?(this.cltrPressed=!0,this.tableRef.current&&(this.tableRef.current.className="highlight-link")):e.type==="keyup"&&!e.ctrlKey&&this.cltrPressed&&(this.cltrPressed=!1,this.tableRef.current&&(this.tableRef.current.className=""))};componentWillUnmount(){this.filterTimer&&(clearTimeout(this.filterTimer),this.filterTimer=null),window.removeEventListener("contextmenu",this.onContextMenu,!0),window.removeEventListener("keydown",this.onKeyPress,!0),window.removeEventListener("keyup",this.onKeyPress,!0),this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChangeFromWorker,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange).catch(e=>console.error(`Cannot unsubscribe *: ${e}`)),this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.objects={}}showDeleteDialog(e){var u,N;const{id:t,obj:s,item:o}=e,r=Object.keys(this.objects);r.sort();let M=0;const n=`${t}.`;for(let l=0;ln)break;this.props.onObjectDelete&&this.props.onObjectDelete(t,!!((u=o.children)!=null&&u.length),!((N=s.common)!=null&&N.dontDelete),M+1)}onContextMenu=e=>{this.contextMenu&&Date.now()-this.contextMenu.ts<2e3?(e.preventDefault(),this.setState({showContextMenu:{item:this.contextMenu.item,position:{left:e.clientX+2,top:e.clientY-6}}})):this.state.showContextMenu&&(e.preventDefault(),this.setState({showContextMenu:null})),this.contextMenu=null};refreshComponent(){this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.loadAllObjects(!0).then(()=>console.log("updated!")).catch(e=>this.showError(e))}renderErrorDialog(){return this.state.error?a.createElement(g.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description"},a.createElement(g.DialogTitle,{id:"alert-dialog-title"},this.props.t("ra_Error")),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,{id:"alert-dialog-description"},this.state.error)),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:a.createElement(m.Check,null)},this.props.t("ra_Ok")))):null}showError(e){this.setState({error:typeof e=="object"?e&&typeof e.toString=="function"?e.toString():JSON.stringify(e):e})}onSelect(e,t,s){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.focused`,e),!this.props.multiSelect)this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))?(this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==e?this.setState({selected:[e],selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),s&&s()}):t&&this.props.onSelect&&this.onAfterSelect(t)):(this.localStorage.setItem(`${this.props.dialogName||"App"}.selectedNonObject`,e),this.setState({selected:[],selectedNonObject:e,focused:e},()=>{this.onAfterSelect(),s&&s()}));else if(this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))){this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const o=[...this.state.selected],r=o.indexOf(e);r===-1?(o.push(e),o.sort()):t||o.splice(r,1),this.setState({selected:o,selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),s&&s()})}}_renderDefinedList(e){const t=[...this.possibleCols];if(t.unshift("id"),this.props.columns&&!this.props.columns.includes("buttons")){const s=t.indexOf("buttons");s!==-1&&t.splice(s,1)}return t.filter(s=>e&&(s==="val"||s==="buttons")||!e&&s!=="val"&&s!=="buttons").map(s=>{var o;return a.createElement(g.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto&&s!=="id"){const r=[...this.state.columns||[]],M=r.indexOf(s);M===-1?(r.push(s),r.sort()):r.splice(M,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(r)),this.calculateColumnsVisibility(null,r),this.setState({columns:r})}},key:s},a.createElement(g.Checkbox,{edge:"start",disabled:s==="id"||this.state.columnsAuto,checked:s==="id"||!!(this.state.columnsAuto?this.visibleCols.includes(s):(o=this.state.columns)!=null&&o.includes(s)),disableRipple:!0}),a.createElement(g.ListItemText,{primary:this.texts[`filter_${s}`]||this.props.t(`ra_${s}`)}))})}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?a.createElement(g.Dialog,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,sx:{"& .MuiPaper-root":S.getStyle(this.props.theme,A.dialogColumns,A[`transparent_${this.state.columnsDialogTransparent}`])}},a.createElement(g.DialogTitle,{sx:A.fontSizeTitle},this.props.t("ra_Configure")),a.createElement(g.DialogContent,{sx:A.fontSizeTitle},a.createElement(g.FormControlLabel,{style:A.switchColumnAuto,control:a.createElement(g.Switch,{checked:this.state.foldersFirst,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.foldersFirst`,this.state.foldersFirst?"false":"true"),this.setState({foldersFirst:!this.state.foldersFirst})}}),label:this.props.t("ra_Folders always first")}),a.createElement(g.FormControlLabel,{style:A.switchColumnAuto,control:a.createElement(g.Switch,{checked:this.state.linesEnabled,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.lines`,this.state.linesEnabled?"false":"true"),this.setState({linesEnabled:!this.state.linesEnabled})}}),label:this.props.t("ra_Show lines between rows")}),a.createElement(g.FormControlLabel,{style:A.switchColumnAuto,control:a.createElement(g.Switch,{checked:this.state.columnsAuto,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.columnsAuto`,this.state.columnsAuto?"false":"true"),this.state.columnsAuto?this.state.columns?(this.calculateColumnsVisibility(!1),this.setState({columnsAuto:!1})):(this.calculateColumnsVisibility(!1,[...this.visibleCols]),this.setState({columnsAuto:!1,columns:[...this.visibleCols]})):(this.calculateColumnsVisibility(!0),this.setState({columnsAuto:!0}))}}),label:this.props.t("ra_Auto (no custom columns)")}),a.createElement(g.List,null,this._renderDefinedList(!1),this.state.columnsForAdmin&&Object.keys(this.state.columnsForAdmin).sort().map(e=>this.state.columnsForAdmin&&this.state.columnsForAdmin[e].map(t=>{var s;return a.createElement(g.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto){const o=[...this.state.columns||[]],r=`_${e}_${t.path}`,M=o.indexOf(r);M===-1?(o.push(r),o.sort()):o.splice(M,1),this.calculateColumnsVisibility(null,o),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(o)),this.setState({columns:o})}},key:`${e}_${t.name}`},a.createElement(g.ListItemIcon,null,a.createElement(g.Checkbox,{disabled:this.state.columnsAuto,edge:"start",checked:!this.state.columnsAuto&&((s=this.state.columns)==null?void 0:s.includes(`_${e}_${t.path}`)),disableRipple:!0})),a.createElement(g.ListItemText,{primary:`${t.name} (${e})`}))})),this._renderDefinedList(!0))),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:a.createElement(m.Close,null)},this.texts.close))):null}async getAdditionalColumns(){try{const e=await this.props.socket.getAdapters();let t=null;return e.forEach(s=>t=this.parseObjectForAdmins(t,s)),t}catch(e){return console.error(`Cannot get adapters: ${e}`),null}}checkUnsubscribes(){for(let e=this.subscribes.length-1;e>=0;e--)this.recordStates.includes(this.subscribes[e])||this.unsubscribe(this.subscribes[e]);this.recordStates=[]}findItem(e,t,s,o){if(t=t||e.split("."),s=s||this.root,!s||!t.length)return null;if(o=(o?`${o}.`:"")+t.shift(),s.children){const r=s.children.find(M=>M.data.id===o);if(r){if(r.data.id===e)return r;if(t.length)return this.findItem(e,t,r,o)}else return null}return null}onStateChange=(e,t)=>{if(console.log(`> stateChange ${e}`),this.states[e]){const s=this.findItem(e);s!=null&&s.data.state&&(s.data.state=void 0)}t?this.states[e]=t:delete this.states[e],this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout(()=>{this.statesUpdateTimer=null,this.forceUpdate()},300))};parseObjectForAdmins(e,t){if(t.common&&t.common.adminColumns&&t.common.name){const s=t.common.adminColumns;let o;s&&typeof s!="object"?o=[s]:s&&(o=s);let r;s?r=o.map(M=>{if(typeof M!="object")return{path:M,name:M.split(".").pop()};const n=M;return n.objTypes&&typeof n.objTypes!="object"?n.objTypes=[n.objTypes]:n.objTypes||(n.objTypes=void 0),!n.name&&n.path?{path:n.path,name:n.path.split(".").pop(),width:n.width,edit:!!n.edit,type:n.type,objTypes:n.objTypes}:n.path?{path:n.path,name:Oe(n.name||"",this.props.lang),width:n.width,edit:!!n.edit,type:n.type,objTypes:n.objTypes}:(console.warn(`Admin columns for ${t._id} ignored, because path not found`),null)}).filter(M=>M):r=null,r&&r.length&&(e=e||{},e[t.common.name]=r.sort((M,n)=>M.path>n.path?-1:M.path{if(Array.isArray(e)){let t=null;e.forEach(s=>{const{newInnerState:o,filtered:r}=this.processOnObjectChangeElement(s.id,s.obj);r||(o&&t?Object.assign(t,o):t=o)}),t&&this.setState(t),this.afterObjectUpdated()}};onObjectChange=(e,t)=>{const{newInnerState:s,filtered:o}=this.processOnObjectChangeElement(e,t);o||(s&&this.setState(s),this.afterObjectUpdated())};afterObjectUpdated(){!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout(()=>{this.objectsUpdateTimer=null;const{info:e,root:t}=UM(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=t,this.info=e,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()},500))}updateAliases(e){var s,o,r;if(!this.objects||!((s=this.info)!=null&&s.aliasesMap)||!(e!=null&&e.startsWith("alias.")))return;const t=Object.keys(this.objects).filter(M=>M.startsWith("alias.0"));this.info.aliasesMap={};for(const M of t){const n=this.objects[M];if((r=(o=n==null?void 0:n.common)==null?void 0:o.alias)!=null&&r.id)if(typeof n.common.alias.id=="string"){const u=n.common.alias.id;this.info.aliasesMap[u]?this.info.aliasesMap[u].includes(M)||this.info.aliasesMap[u].push(M):this.info.aliasesMap[u]=[M]}else{const u=n.common.alias.id.read;u&&(this.info.aliasesMap[u]?this.info.aliasesMap[u].includes(M)||this.info.aliasesMap[u].push(M):this.info.aliasesMap[u]=[M]);const N=n.common.alias.id.write;N&&(this.info.aliasesMap[N]?this.info.aliasesMap[N].includes(M)||this.info.aliasesMap[N].push(M):this.info.aliasesMap[N]=[M])}}}processOnObjectChangeElement(e,t){console.log(`> objectChange ${e}`);const s=t==null?void 0:t.type;if(t&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(t)&&s!=="channel"&&s!=="device"&&s!=="folder"&&s!=="adapter"&&s!=="instance")return{newInnerState:null,filtered:!0};let o=null;if(e.startsWith("system.adapter.")&&(t==null?void 0:t.type)==="adapter"){const r=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(r,t),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(r)&&(o={columnsForAdmin:r})}return this.objects=this.objects||{},t?this.objects[e]=t:this.objects[e]&&delete this.objects[e],this.updateAliases(e),{newInnerState:o,filtered:!1}}subscribe(e){this.subscribes.includes(e)||(this.subscribes.push(e),console.log(`+ subscribe ${e}`),this.pausedSubscribes||this.props.socket.subscribeState(e,this.onStateChange).catch(t=>console.error(`Cannot subscribe on state ${e}: ${t}`)))}unsubscribe(e){const t=this.subscribes.indexOf(e);t!==-1&&(this.subscribes.splice(t,1),this.states[e]&&delete this.states[e],console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(e){!this.pausedSubscribes&&e?(this.pausedSubscribes=!0,this.subscribes.forEach(t=>this.props.socket.unsubscribeState(t,this.onStateChange))):this.pausedSubscribes&&!e&&(this.pausedSubscribes=!1,this.subscribes.forEach(t=>this.props.socket.subscribeState(t,this.onStateChange)))}onFilter(e,t){this.filterTimer=null;const s={...this.state.filter};Object.keys(this.filterRefs).forEach(o=>{if(this.filterRefs[o]&&this.filterRefs[o].current){const r=this.filterRefs[o].current;for(let M=0;Mthis.props.onFilterChanged&&this.props.onFilterChanged(s)))}clearFilter(){const e={...this.state.filter};Object.keys(this.filterRefs).forEach(t=>{if(this.filterRefs[t]&&this.filterRefs[t].current){const s=this.filterRefs[t].current;for(let o=0;othis.props.onFilterChanged&&this.props.onFilterChanged(e)))}isFilterEmpty(){return!Object.keys(this.state.filter).find(t=>t!=="expertMode"&&this.state.filter[t])}getFilterInput(e){var t,s,o;return a.createElement(g.FormControl,{sx:this.styles.filterInput,key:`${e}_${this.state.filterKey}`,margin:"dense"},a.createElement(g.Input,{ref:this.filterRefs[e],classes:{underline:"no-underline"},id:e,placeholder:this.texts[`filter_${e}`],defaultValue:this.state.filter[e]||"",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},autoComplete:"off"}),(o=(s=(t=this.filterRefs[e])==null?void 0:t.current)==null?void 0:s.firstChild)!=null&&o.value?a.createElement("div",{style:{position:"absolute",right:0}},a.createElement(g.IconButton,{size:"small",onClick:()=>{var r;((r=this.filterRefs[e].current)==null?void 0:r.firstChild).value="",this.onFilter(e,"")}},a.createElement(m.Close,null))):null)}getFilterSelect(e,t){var o,r,M;const s=!!(t!=null&&t.find(n=>n.icon));return a.createElement("div",{style:{position:"relative"}},a.createElement(g.Select,{variant:"standard",key:`${e}_${this.state.filterKey}`,ref:this.filterRefs[e],sx:A.headerCellInput,className:"no-underline",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},defaultValue:this.state.filter[e]||"",inputProps:{name:e,id:e},displayEmpty:!0},a.createElement(g.MenuItem,{key:"empty",value:""},a.createElement("span",{style:A.selectNone},e==="custom"?this.texts.showAll:this.texts[`filter_${e}`])),t==null?void 0:t.map(n=>{let u,N,l;return typeof n=="object"?(u=n.value,N=n.name,l=n.icon):(u=n,N=n),a.createElement(g.MenuItem,{sx:A.headerCellSelectItem,key:u,value:u},l||(s?a.createElement("div",{className:"itemIcon"}):null),N)})),(M=(r=(o=this.filterRefs[e])==null?void 0:o.current)==null?void 0:r.childNodes[1])!=null&&M.value?a.createElement(g.Box,{component:"div",sx:A.selectClearButton},a.createElement(g.IconButton,{size:"small",onClick:()=>{var u;const n={...this.state.filter};n[e]="",((u=this.filterRefs[e].current)==null?void 0:u.childNodes[1]).value="",this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(n)),this.setState({filter:n,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(n))}},a.createElement(m.Close,null))):null)}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles.map(e=>e.role))}getFilterSelectRoom(){const e=this.info.roomEnums.map(t=>{var s,o,r,M;return{name:Oe((o=(s=this.objects[t])==null?void 0:s.common)==null?void 0:o.name,this.props.lang)||t.split(".").pop(),value:t,icon:a.createElement(Ie,{src:((M=(r=this.objects[t])==null?void 0:r.common)==null?void 0:M.icon)||"",style:A.selectIcon})}});return this.getFilterSelect("room",e)}getFilterSelectFunction(){const e=this.info.funcEnums.map(t=>{var s,o,r,M;return{name:Oe((o=(s=this.objects[t])==null?void 0:s.common)==null?void 0:o.name,this.props.lang)||t.split(".").pop(),value:t,icon:a.createElement(Ie,{src:((M=(r=this.objects[t])==null?void 0:r.common)==null?void 0:M.icon)||"",style:A.selectIcon})}});return this.getFilterSelect("func",e)}getFilterSelectType(){const e=this.info.types.map(t=>({name:t,value:t,icon:vM[t]||null}));return this.getFilterSelect("type",e)}getFilterSelectCustoms(){if(this.info.customs.length>1){const e=this.info.customs.map(t=>({name:t==="_"?this.texts.filterCustomsWithout:t,value:t,icon:t==="_"?null:a.createElement(Ie,{src:ci(this.objects,t,this.props.lang,this.imagePrefix)||"",style:A.selectIcon})}));return this.getFilterSelect("custom",e)}return null}onExpandAll(e,t){var o;const s=e||this.root;t=t||[],(o=s==null?void 0:s.children)==null||o.forEach(r=>{r.data.sumVisibility&&(t.push(r.data.id),this.onExpandAll(r,t))}),s===this.root&&(t.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t}))}onCollapseAll(){this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},()=>this.onAfterSelect())}expandDepth(e,t,s){var o;e=e||this.root,t>0&&((o=e.children)==null||o.forEach(r=>{r.data.sumVisibility&&(Is(s,r.data.id)||(s.push(r.data.id),s.sort()),t-1>0&&this.expandDepth(r,t-1,s))}))}static collapseDepth(e,t){return t.filter(s=>s.split(".").length<=e)}onExpandVisible(){if(this.state.depth<9){const e=this.state.depth+1,t=[...this.state.expanded];this.root&&this.expandDepth(this.root,e,t),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}onStatesViewVisible(){const e=!this.state.statesView;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(e)),this.setState({statesView:e})}onCollapseVisible(){if(this.state.depth>0){const e=this.state.depth-1,t=We.collapseDepth(e,this.state.expanded);this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}getEnumsForId=e=>{const t=[];return this.info.enums.forEach(s=>{var o,r,M;if((M=(r=(o=this.objects[s])==null?void 0:o.common)==null?void 0:r.members)!=null&&M.includes(e)){const n={_id:this.objects[s]._id,common:JSON.parse(JSON.stringify(this.objects[s].common)),native:this.objects[s].native,type:"enum"};n.common&&(delete n.common.members,delete n.common.custom,delete n.common.mobile),t.push(n)}}),t.length?t:void 0};_createAllEnums=async(e,t)=>{var s,o;for(let r=0;ro)break}return e}return[]}async _exportObjects(e){var r;if(e.isAll){YM("allObjects.json",this.objects,e);return}if(!(this.state.selected.length||this.state.selectedNonObject)){window.alert(this.props.t("ra_Save of objects-tree is not possible"));return}const t={},s=this.state.selected[0]||this.state.selectedNonObject,o=this._getSelectedIdsForExport();for(const M of o){if(t[M]=JSON.parse(JSON.stringify(this.objects[M])),((r=t[M])==null?void 0:r.type)==="state"&&!e.noStatesByExportImport){const n=await this.props.socket.getState(M);n&&(t[M].val=n.val,t[M].ack=n.ack)}if(t[M].common){const n=this.getEnumsForId(M);n&&(t[M].common.enums=n)}}YM(`${s}.json`,t,e)}renderExportDialog(){return this.state.showExportDialog===!1?null:a.createElement(g.Dialog,{open:!0,maxWidth:"lg"},a.createElement(g.DialogTitle,null,this.props.t("ra_Select type of export")),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,null,this.state.filter.expertMode||this.state.showAllExportOptions?a.createElement(a.Fragment,null,this.props.t("ra_You can export all objects or just the selected branch."),a.createElement("br",null),this.props.t("ra_Selected %s object(s)",this.state.showExportDialog),a.createElement("br",null),a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{checked:this.state.noStatesByExportImport,onChange:e=>this.setState({noStatesByExportImport:e.target.checked})}),label:this.props.t("ra_Do not export values of states")}),a.createElement("br",null),this.props.t("These options can reduce the size of the export file:"),a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{checked:this.state.beautifyJsonExport,onChange:e=>this.setState({beautifyJsonExport:e.target.checked})}),label:this.props.t("Beautify JSON output")}),a.createElement("br",null),a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{checked:this.state.excludeSystemRepositoriesFromExport,onChange:e=>this.setState({excludeSystemRepositoriesFromExport:e.target.checked})}),label:this.props.t("Exclude system repositories from export JSON")}),a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{checked:this.state.excludeTranslations,onChange:e=>this.setState({excludeTranslations:e.target.checked})}),label:this.props.t("Exclude translations (except english) from export JSON")})):null)),a.createElement(g.DialogActions,null,this.state.filter.expertMode||this.state.showAllExportOptions?a.createElement(g.Button,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!0,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},a.createElement("span",{style:{marginRight:8}},this.props.t("ra_All objects")),"(",Object.keys(this.objects).length,")"):a.createElement(g.Button,{color:"grey",variant:"outlined",startIcon:a.createElement(uo,null),onClick:()=>this.setState({showAllExportOptions:!0})},this.props.t("ra_Advanced options")),a.createElement(g.Button,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!1,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},a.createElement("span",{style:{marginRight:8}},this.props.t("ra_Only selected")),"(",this.state.showExportDialog,")"),a.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1}),startIcon:a.createElement(m.Close,null)},this.props.t("ra_Cancel"))))}renderRenameDialog(){var t;if(!this.state.showRenameDialog)return null;const e=this.props.objectMoveRenameDialog;return a.createElement(e,{expertMode:this.props.expertMode,onClose:()=>this.setState({showRenameDialog:null}),id:this.state.showRenameDialog.id,childrenIds:this.state.showRenameDialog.childrenIds,theme:this.props.theme,socket:this.props.socket,t:this.props.t,objectType:(t=this.objects[this.state.showRenameDialog.id])==null?void 0:t.type})}handleJsonUpload(e){var o;const t=e.target,s=((o=t.files)==null?void 0:o.length)&&t.files[0];if(s){const r=new FileReader;r.onload=async M=>{var u;const n=(u=M.target)==null?void 0:u.result;try{const N=JSON.parse(n),l=Object.keys(N).length,c=N._id;if(c===void 0&&l)await this.loadObjects(N),window.alert(this.props.t("ra_%s object(s) processed",l));else{if(!c)return window.alert(this.props.t("ra_Invalid structure"));try{let L,j,T;if(N.common.enums&&(L=N.common.enums,delete N.common.enums),N.val&&(j=N.val,delete N.val),N.ack!==void 0&&(T=N.ack,delete N.ack),await this.props.socket.setObject(N._id,N),N.type==="state")if(j!=null)await this.props.socket.setState(N._id,j,T===void 0?!0:T);else{const D=await this.props.socket.getState(N._id);(!D||D.val===null||D.val===void 0)&&await this.props.socket.setState(N._id,N.common.def===void 0?null:N.common.def,!0)}L&&await this._createAllEnums(L,N._id),window.alert(this.props.t("ra_%s was imported",N._id))}catch(L){window.alert(L)}}}catch(N){window.alert(N)}return null},r.readAsText(s)}else window.alert(this.props.t("ra_Failed to open JSON File"))}toolTipObjectCreating=()=>{var s,o;const{t:e}=this.props;let t=[a.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),a.createElement("div",{key:2},e("ra_Folder → State")),a.createElement("div",{key:3},e("ra_Folder → Channel → State")),a.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),a.createElement("div",{key:5},e("ra_Device → Channel → State")),a.createElement("div",{key:6},e("ra_Channel → State")),a.createElement("div",{key:7,style:{height:10}}),a.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),a.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];if(this.state.selected.length||this.state.selectedNonObject){const r=this.state.selected[0]||this.state.selectedNonObject;if(!(r.split(".").length<2||this.objects[r]&&((s=this.objects[r])==null?void 0:s.type)==="state"))if(this.state.filter.expertMode)switch((o=this.objects[r])==null?void 0:o.type){case"device":t=[a.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),a.createElement("div",{key:5},e("ra_Device → Channel → State")),a.createElement("div",{key:7,style:{height:10}}),a.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),a.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"folder":t=[a.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),a.createElement("div",{key:2},e("ra_Folder → State")),a.createElement("div",{key:3},e("ra_Folder → Channel → State")),a.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),a.createElement("div",{key:7,style:{height:10}}),a.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),a.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"channel":t=[a.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),a.createElement("div",{key:1},e("ra_Channel → State")),a.createElement("div",{key:7,style:{height:10}}),a.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),a.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break}else(r.startsWith("alias.0")||r.startsWith("0_userdata"))&&(t=[a.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),a.createElement("div",{key:2},e("ra_Folder → State")),a.createElement("div",{key:3},e("ra_Folder → Channel → State")),a.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),a.createElement("div",{key:5},e("ra_Device → Channel → State")),a.createElement("div",{key:6},e("ra_Channel → State")),a.createElement("div",{key:7,style:{height:10}}),a.createElement("div",{key:7},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),a.createElement("div",{key:8},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))])}return t.length?t:e("ra_Add new child object to selected parent")};getToolbar(){let e=!1;if(this.state.selected.length||this.state.selectedNonObject){const t=this.state.selected[0]||this.state.selectedNonObject;t.split(".").length<2||this.objects[t]&&this.objects[t].type==="state"?e=!1:(this.state.filter.expertMode||t.startsWith("alias.0")||t.startsWith("0_userdata"))&&(e=!0)}return a.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center",overflowX:"auto"}},a.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},a.createElement(g.Tooltip,{title:this.props.t("ra_Refresh tree"),slotProps:{popper:{sx:A.tooltip}}},a.createElement("div",null,a.createElement(g.IconButton,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large"},a.createElement(m.Refresh,null)))),this.props.showExpertButton&&!this.props.expertMode&&a.createElement(g.Tooltip,{title:this.props.t("ra_expertMode"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large"},a.createElement(uo,null))),!this.props.disableColumnSelector&&this.props.width!=="xs"&&a.createElement(g.Tooltip,{title:this.props.t("ra_Configure"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{key:"columnSelector",color:this.state.columnsAuto?"primary":"default",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large"},a.createElement(m.ViewColumn,null))),this.props.width!=="xs"&&this.state.expandAllVisible&&a.createElement(g.Tooltip,{title:this.props.t("ra_Expand all nodes"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{key:"expandAll",onClick:()=>this.onExpandAll(),size:"large"},a.createElement(Ks,null))),a.createElement(g.Tooltip,{title:this.props.t("ra_Collapse all nodes"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{key:"collapseAll",onClick:()=>this.onCollapseAll(),size:"large"},a.createElement(Gt,null))),this.props.width!=="xs"&&a.createElement(g.Tooltip,{title:this.props.t("ra_Expand one step node"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{key:"expandVisible",color:"primary",onClick:()=>this.onExpandVisible(),size:"large"},a.createElement(g.Badge,{badgeContent:this.state.depth,color:"secondary",sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}})},a.createElement(Ks,null)))),this.props.width!=="xs"&&a.createElement(g.Tooltip,{title:this.props.t("ra_Collapse one step node"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{key:"collapseVisible",color:"primary",onClick:()=>this.onCollapseVisible(),size:"large"},a.createElement(g.Badge,{sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),badgeContent:this.state.depth,color:"secondary"},a.createElement(Gt,null)))),this.props.objectStatesView&&a.createElement(g.Tooltip,{title:this.props.t("ra_Toggle the states view"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{onClick:()=>this.onStatesViewVisible(),size:"large"},a.createElement(m.LooksOne,{color:this.state.statesView?"primary":"inherit"}))),a.createElement(g.Tooltip,{title:this.props.t("ra_Show/Hide object descriptions"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.desc`,this.state.showDescription?"false":"true"),this.setState({showDescription:!this.state.showDescription})},size:"large"},a.createElement(m.TextFields,{color:this.state.showDescription?"primary":"inherit"}))),this.props.objectAddBoolean?a.createElement(g.Tooltip,{title:this.toolTipObjectCreating(),slotProps:{popper:{sx:A.tooltip}}},a.createElement("div",null,a.createElement(g.IconButton,{disabled:!e,onClick:()=>this.setState({modalNewObj:{id:this.state.selected[0]||this.state.selectedNonObject}}),size:"large"},a.createElement(m.Add,null)))):null,this.props.objectImportExport&&a.createElement(g.Tooltip,{title:this.props.t("ra_Add objects tree from JSON file"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{onClick:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("id","files"),t.setAttribute("opacity","0"),t.addEventListener("change",s=>this.handleJsonUpload(s),!1),t.click()},size:"large"},a.createElement(m.Publish,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&a.createElement(g.Tooltip,{title:this.props.t("ra_Save objects tree as JSON file"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large"},a.createElement(m.Publish,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&this.props.width!=="xs"&&a.createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter(t=>this.info.objects[t].type==="state").length}`),this.props.objectEditBoolean&&a.createElement(g.Tooltip,{title:this.props.t("ra_Edit custom config"),slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{onClick:()=>{var s;const t=this.root?ma(this.root,"state",this.objects):[];t.length?(this.pauseSubscribe(!0),t.length===1&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),(s=this.props.router)==null||s.doNavigate(null,"custom",this.state.selected[0])),this.setState({customDialog:t,customDialogAll:!0})):this.setState({toast:this.props.t("ra_please select object")})},size:"large"},a.createElement(m.Build,null))))}toggleExpanded(e){const t=JSON.parse(JSON.stringify(this.state.expanded)),s=t.indexOf(e);s===-1?(t.push(e),t.sort()):t.splice(s,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t})}onCopy(e,t){e.stopPropagation(),e.preventDefault(),t&&(S.copyToClipboard(t),t.length<50?this.setState({toast:this.props.t("ra_Copied %s",t)}):this.setState({toast:this.props.t("ra_Copied")}))}renderTooltipAccessControl=e=>{if(!e)return null;const t=[{value:"0x400",valueNum:1024,title:"read",group:"Owner"},{value:"0x200",valueNum:512,title:"write",group:"Owner"},{value:"0x40",valueNum:64,title:"read",group:"Group"},{value:"0x20",valueNum:32,title:"write",group:"Group"},{value:"0x4",valueNum:4,title:"read",group:"Everyone"},{value:"0x2",valueNum:2,title:"write",group:"Everyone"}],s=[],o=r=>{const M=e[r];t.forEach((n,u)=>{M&n.valueNum&&s.push(a.createElement("span",{key:r+u},this.texts[`acl${n.group}_${n.title}_${r}`],",",a.createElement("span",{style:r==="object"?A.rightsObject:A.rightsState},n.value)))})};return s.push(a.createElement("span",{key:"group"},`${this.texts.ownerGroup}: ${(e.ownerGroup||"").replace("system.group.","")}`)),s.push(a.createElement("span",{key:"owner"},`${this.texts.ownerUser}: ${(e.owner||"").replace("system.user.","")}`)),o("object"),e.state&&o("state"),s.length?a.createElement("span",{style:A.tooltipAccessControl},s.map(r=>r)):null};renderColumnButtons(e,t){var M,n,u;if(!t.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?a.createElement("div",{style:A.buttonDiv},this.state.filter.expertMode&&this.props.objectEditOfAccessControl?a.createElement(g.IconButton,{sx:{...A.cellButtonsButton,...A.cellButtonsEmptyButton,...A.cellButtonMinWidth},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},a.createElement("div",{style:{height:15}},"---")):null,this.props.onObjectDelete&&t.children&&t.children.length?a.createElement(g.IconButton,{sx:{...A.cellButtonsButton,...A.cellButtonsButtonAlone},size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{var L;const N=Object.keys(this.objects);N.sort();let l=0;const c=`${e}.`;for(let j=0;jc)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((L=t.children)!=null&&L.length),!1,l+1)}},a.createElement(m.Delete,{style:A.cellButtonsButtonIcon})):null):null;t.data.aclTooltip=t.data.aclTooltip||this.renderTooltipAccessControl(t.data.obj.acl);const s=t.data.obj.acl?t.data.obj.type==="state"?t.data.obj.acl.state:t.data.obj.acl.object:0,o=t.data.obj.acl&&(t.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object),r=this.state.filter.expertMode||We.isNonExpertId(t.data.id);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?a.createElement(g.Tooltip,{key:"acl",title:t.data.aclTooltip,slotProps:{popper:{sx:A.tooltip}}},a.createElement(g.IconButton,{sx:{...A.cellButtonsButton,...A.cellButtonMinWidth,opacity:1},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},a.createElement("div",{style:A.aclText},Number.isNaN(Number(s))?Number(o).toString(16):Number(s).toString(16)))):a.createElement("div",{key:"aclEmpty",style:A.cellButtonMinWidth}),r?a.createElement(g.IconButton,{key:"edit",sx:{marginRight:"2px",...A.cellButtonsButton},size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.setState({editObjectDialog:e,editObjectAlias:!1})}},a.createElement(m.Edit,{style:A.cellButtonsButtonIcon})):a.createElement(g.Box,{component:"div",key:"editDisabled",sx:A.cellButtonsButton}),this.props.onObjectDelete&&((M=t.children)!=null&&M.length||!((n=t.data.obj.common)!=null&&n.dontDelete))?a.createElement(g.IconButton,{key:"delete",sx:A.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{var L,j,T;const N=Object.keys(this.objects);N.sort();let l=0;const c=`${e}.`;for(let D=0;Dc)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((L=t.children)!=null&&L.length),!((T=(j=t.data.obj)==null?void 0:j.common)!=null&&T.dontDelete),l)},title:this.texts.deleteObject},a.createElement(m.Delete,{style:A.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&t.data.obj.type==="state"&&((u=t.data.obj.common)==null?void 0:u.type)!=="file"?a.createElement(g.IconButton,{sx:{...A.cellButtonsButton,...t.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:A.cellButtonsButtonWithoutCustoms},key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{var N;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.pauseSubscribe(!0),(N=this.props.router)==null||N.doNavigate(null,"customs",e),this.setState({customDialog:[e],customDialogAll:!1})}},a.createElement(m.Settings,{style:A.cellButtonsButtonIcon})):null]}readHistory(e){var t,s;if(window.sparkline&&this.defaultHistory&&((s=(t=this.objects[e])==null?void 0:t.common)!=null&&s.custom)&&this.objects[e].common.custom[this.defaultHistory]){const o=new Date;o.setHours(o.getHours()-24),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const r=o.getTime();this.props.socket.getHistory(e,{instance:this.defaultHistory,start:r,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addId:!1,aggregate:"minmax"}).then(M=>{const n=window.document.getElementsByClassName("sparkline");for(let u=0;uconsole.warn(`Cannot read history: ${M}`))}}getTooltipInfo(e,t){var N,l,c;const s=this.objects[e],o=this.states[e],{valFull:r,fileViewer:M}=bi({state:o,obj:s,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,full:!0}),n=[];r==null||r.forEach(L=>{L.t===this.texts.quality&&o.q?(n.push(a.createElement("div",{style:A.cellValueTooltipBoth,key:L.t},L.t,": ",L.v)),L.nbr||n.push(a.createElement("br",{key:`${L.t}_br`}))):(n.push(a.createElement("div",{style:A.cellValueTooltipTitle,key:L.t},L.t,": ")),n.push(a.createElement("div",{style:A.cellValueTooltipValue,key:`${L.t}_v`},L.v)),L.nbr||n.push(a.createElement("br",{key:`${L.t}_br`})))});const u=((N=s==null?void 0:s.common)==null?void 0:N.role)||"";M==="image"?n.push(a.createElement("img",{style:A.cellValueTooltipImage,src:o.val,alt:e})):u==="url"||s.common.role==="url.self"||s.common.role==="url.blank"?n.unshift(a.createElement("div",{key:"ctrl",style:{textDecoration:"underline",fontWeight:"bold"}},this.texts.ctrlForLink)):this.defaultHistory&&((c=(l=s==null?void 0:s.common)==null?void 0:l.custom)!=null&&c[this.defaultHistory])&&n.push(a.createElement("svg",{key:"sparkline",className:"sparkline","data-id":e,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"})),this.setState({tooltipInfo:{el:n,id:e}},()=>t&&t())}renderColumnValue(e,t,s){var u,N;const o=t.data.obj;if(!o||!this.states)return null;if(((u=o.common)==null?void 0:u.type)==="file")return a.createElement(g.Box,{component:"div",sx:{...A.cellValueText,...A.cellValueFile}},"[file]");if(!this.states[e])return o.type==="state"&&(this.recordStates.includes(e)||this.recordStates.push(e),this.states[e]={val:null},this.subscribe(e)),null;this.recordStates.includes(e)||this.recordStates.push(e);const r=this.states[e];let M=t.data.state;if(!M){const{valText:l}=bi({state:r,obj:o,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma}),c=[];if(t.data.state={valTextRx:c},c.push(a.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${l.v.toString()}valText`,style:{whiteSpace:"nowrap",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}},l.v.toString())),l.u&&c.push(a.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:A.cellValueTextUnit,key:`${l.v.toString()}unit`},l.u)),l.s!==void 0&&c.push(a.createElement("span",{style:A.cellValueTextState,className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${l.v.toString()}states`},"(",l.s,")")),!s){const L=l.c!==void 0?l.c:l.v||"";c.push(a.createElement($t,{className:"copyButton",style:this.styles.iconCopy,onClick:j=>this.onCopy(j,L),key:"cc"}))}M=t.data.state}M.style=INe({state:r,isExpertMode:this.state.filter.expertMode,isButton:t.data.button});let n=M.valTextRx;return this.state.filter.expertMode||(t.data.button?n=[a.createElement(yNe,{key:"button",style:{color:M.style.color,...A.cellValueButton}})]:t.data.switch&&(n=[a.createElement(g.Switch,{key:"switch",sx:{"& .MuiSwitch-thumb":{color:M.style.color},"& .MuiSwitch-track":{backgroundColor:this.states[e].val&&this.state.selected.includes(e)?this.props.themeType==="dark"?"#FFF !important":"#111 !important":void 0}},checked:!!this.states[e].val})])),a.createElement(g.Tooltip,{key:"value",title:(N=this.state.tooltipInfo)==null?void 0:N.el,slotProps:{popper:{sx:A.cellValueTooltipBox},tooltip:{sx:A.cellValueTooltip}},onOpen:()=>this.getTooltipInfo(e,()=>this.readHistory(e)),onClose:()=>{var l;return((l=this.state.tooltipInfo)==null?void 0:l.id)===e&&this.setState({tooltipInfo:null})}},a.createElement(g.Box,{component:"div",style:M.style,className:t.data.url?"iob-link":void 0,sx:{...A.cellValueText,height:s?void 0:de,"& .admin-button:active":{transform:"translate(0, 2px)"}}},n))}_syncEnum(e,t,s,o){var n,u,N;if(!t||!t.length){o&&o();return}const r=t.pop()||"",M=[];if((n=this.info.objects[r])!=null&&n.common){if((u=this.info.objects[r].common.members)!=null&&u.length){const l=this.info.objects[r].common.members.indexOf(e);if(l!==-1&&!s.includes(r)){const c=JSON.parse(JSON.stringify(this.info.objects[r]));c.common.members.splice(l,1),M.push(this.props.socket.setObject(r,c).then(()=>this.info.objects[r]=c).catch(L=>this.showError(L)))}}if(s.includes(r)&&!((N=this.info.objects[r].common.members)!=null&&N.includes(e))){const l=JSON.parse(JSON.stringify(this.info.objects[r]));l.common.members=l.common.members||[],l.common.members.push(e),l.common.members.sort(),M.push(this.props.socket.setObject(r,l).then(()=>this.info.objects[r]=l).catch(c=>this.showError(c)))}}Promise.all(M).then(()=>{setTimeout(()=>this._syncEnum(e,t,s,o),0)})}syncEnum(e,t,s){const o=[...this.info[t==="func"?"funcEnums":"roomEnums"]];return new Promise(r=>{this._syncEnum(e,o,s,()=>{r()})})}renderEnumDialog(){if(!this.state.enumDialog)return null;const e=this.state.enumDialog.type,t=this.state.enumDialog.item,s=this.state.enumDialogEnums,o=this.state.enumDialog.enumsOriginal,r=(e==="room"?this.info.roomEnums:this.info.funcEnums).map(M=>{var n,u;return{name:Oe(((u=(n=this.objects[M])==null?void 0:n.common)==null?void 0:u.name)||M.split(".").pop()||"",this.props.lang),value:M,icon:ci(this.objects,M,this.props.lang,this.imagePrefix)}}).sort((M,n)=>M.name>n.name?1:-1);return r.forEach(M=>{M.icon&&typeof M.icon=="string"&&(M.icon=a.createElement(g.Box,{style:A.enumIconDiv},a.createElement("img",{src:M.icon,style:A.enumIcon,alt:M.name})))}),a.createElement(g.Dialog,{sx:{"& .MuiPaper-root":A.enumDialog},onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0},a.createElement(g.DialogTitle,{id:"enum-dialog-title",style:{display:"flex",justifyContent:"space-between",width:"100%",flexWrap:"nowrap",gap:8,paddingRight:12}},e==="func"?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),a.createElement(g.Fab,{color:"primary",disabled:o===JSON.stringify(s),size:"small",onClick:()=>this.syncEnum(t.data.id,e,s).then(()=>this.setState({enumDialog:null,enumDialogEnums:null}))},a.createElement(m.Check,null))),a.createElement(g.List,{sx:{"&.MuiList-root":A.enumList}},r.map(M=>{let n,u,N;typeof M=="object"?(n=M.value,u=M.name,N=M.icon):(n=M,u=M);const l=`checkbox-list-label-${n}`;return a.createElement(g.ListItem,{sx:A.headerCellSelectItem,key:n,onClick:()=>{const c=s.indexOf(n),L=JSON.parse(JSON.stringify(this.state.enumDialogEnums));c===-1?(L.push(n),L.sort()):L.splice(c,1),this.setState({enumDialogEnums:L})},secondaryAction:N},a.createElement(g.ListItemIcon,{sx:{"&.MuiListItemIcon-root":A.enumCheckbox}},a.createElement(g.Checkbox,{edge:"start",checked:s.includes(n),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":l}})),a.createElement(g.ListItemText,{id:l},u))})))}renderEditRoleDialog(){var e,t;if(!this.state.roleDialog||!this.props.objectBrowserEditRole)return null;if(this.state.roleDialog&&this.props.objectBrowserEditRole){const s=this.props.objectBrowserEditRole;return a.createElement(s,{key:"objectBrowserEditRole",id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roleArray:this.info.roles,commonType:(t=(e=this.info.objects[this.state.roleDialog])==null?void 0:e.common)==null?void 0:t.type,onClose:o=>{o&&(this.info.objects[this.state.roleDialog]=o),this.setState({roleDialog:null})}})}return null}onColumnsEditCustomDialogClose(e){var s,o;const t=this.customColumnDialog;if(e){let r=t.value;t.type==="boolean"?r=r==="true"||r===!0:t.type==="number"&&(r=parseFloat(r)),this.customColumnDialog=null,this.props.socket.getObject(((o=(s=this.state.columnsEditCustomDialog)==null?void 0:s.obj)==null?void 0:o._id)||"").then(M=>{var n;if(M&&We.setCustomValue(M,(n=this.state.columnsEditCustomDialog)==null?void 0:n.it,r))return this.props.socket.setObject(M._id,M);throw new Error(this.props.t("ra_Cannot update attribute, because not found in the object"))}).then(()=>this.setState({columnsEditCustomDialog:null})).catch(M=>this.showError(M))}else this.customColumnDialog=null,this.setState({columnsEditCustomDialog:null})}renderColumnsEditCustomDialog(){if(!this.state.columnsEditCustomDialog)return null;if(!this.customColumnDialog){const e=We.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof e,initValue:(e??"").toString(),value:(e??"").toString()}}return a.createElement(g.Dialog,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0},a.createElement(g.DialogTitle,{id:"custom-dialog-title"},`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,{id:"alert-dialog-description"},this.customColumnDialog.type==="boolean"?a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:this.customColumnDialog.value==="true",onChange:e=>{const t=this.customColumnDialog;t.value=e.target.checked.toString();const s=t.value!==t.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):a.createElement(g.TextField,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:e=>{const t=this.customColumnDialog;t.value=e.target.value;const s=t.value!==t.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})},autoFocus:!0}))),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:a.createElement(m.Check,null)},this.props.t("ra_Update")),a.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:a.createElement(m.Close,null)},this.props.t("ra_Cancel"))))}static getCustomValue(e,t){var s;if((s=e==null?void 0:e._id)!=null&&s.startsWith(`${t.adapter}.`)&&t.path.length>1){const o=t.path;let r;const M=e;if(M[o[0]]&&typeof M[o[0]]=="object")return o.length===2?r=M[o[0]][o[1]]:o.length===3?r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"?M[o[0]][o[1]][o[2]]:null:o.length===4?r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"&&M[o[0]][o[1]][o[2]]?M[o[0]][o[1]][o[2]][o[3]]:null:o.length===5?r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"&&M[o[0]][o[1]][o[2]]&&M[o[0]][o[1]][o[2]][o[3]]?M[o[0]][o[1]][o[2]][o[3]][o[4]]:null:o.length===6&&(r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"&&M[o[0]][o[1]][o[2]]&&M[o[0]][o[1]][o[2]][o[3]]&&M[o[0]][o[1]][o[2]][o[3]][o[4]]?M[o[0]][o[1]][o[2]][o[3]][o[4]][o[5]]:null),r??null}return null}static setCustomValue(e,t,s){var o;if((o=e==null?void 0:e._id)!=null&&o.startsWith(`${t.adapter}.`)&&t.path.length>1){const r=t.path,M=e;if(M[r[0]]&&typeof M[r[0]]=="object"){if(r.length===2)return M[r[0]][r[1]]=s,!0;if(r.length===3){if(M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object")return M[r[0]][r[1]][r[2]]=s,!0}else if(r.length===4){if(M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object"&&M[r[0]][r[1]][r[2]]&&typeof M[r[0]][r[1]][r[2]]=="object")return M[r[0]][r[1]][r[2]][r[3]]=s,!0}else if(r.length===5){if(M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object"&&M[r[0]][r[1]][r[2]]&&typeof M[r[0]][r[1]][r[2]]=="object"&&M[r[0]][r[1]][r[2]][r[3]]&&typeof M[r[0]][r[1]][r[2]][r[3]]=="object")return M[r[0]][r[1]][r[2]][r[3]][r[4]]=s,!0}else if(r.length===6&&M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object"&&M[r[0]][r[1]][r[2]]&&typeof M[r[0]][r[1]][r[2]]=="object"&&M[r[0]][r[1]][r[2]][r[3]]&&typeof M[r[0]][r[1]][r[2]][r[3]]=="object"&&M[r[0]][r[1]][r[2]][r[3]][r[4]]&&typeof M[r[0]][r[1]][r[2]][r[3]][r[4]]=="object")return M[r[0]][r[1]][r[2]][r[3]][r[4]][r[5]]=s,!0}}return!1}renderCustomValue(e,t,s){const o=We.getCustomValue(e,t);return o!=null?t.edit&&!this.props.notEditable&&(!t.objTypes||t.objTypes.includes(e.type))?a.createElement(g.Box,{component:"div",style:{...A.columnCustom,...A.columnCustomEditable,...A[`columnCustom_${t.align}`]},onClick:()=>this.setState({columnsEditCustomDialog:{item:s,it:t,obj:e},customColumnDialogValueChanged:!1})},o):a.createElement(g.Box,{component:"div",style:{...A.columnCustom,...A[`columnCustom_${t.align}`]}},o):null}renderAliasLink(e,t,s){const o=t||0,r=this.objects[this.info.aliasesMap[e][o]].common.alias.id;return r?a.createElement(g.Box,{component:"div",onClick:M=>{M.stopPropagation(),M.preventDefault();const n=this.info.aliasesMap[e][o];this.info.aliasesMap[e].length>1&&this.setState({aliasMenu:""}),this.onSelect(n),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(n)),100)},sx:s||this.styles.aliasAlone},a.createElement("span",{className:"admin-browser-arrow"},typeof r=="string"||r.read===e&&r.write===e?"↔":r.read===e?"→":"←"),this.info.aliasesMap[e][o]):null}renderLeaf(e,t,s){var is,os,rs,_s,Ss,er,tr,sr,ir,or,rr,Mr,nr,ar;const o=e.data.id;s.count++,t=t===void 0?this.state.expanded.includes(o):t;let r;const M=e.data.obj,n=M==null?void 0:M.type;e.children||n==="folder"||n==="device"||n==="channel"||n==="meta"?r=t?a.createElement(Ks,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(o)}):a.createElement(Gt,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(o)}):M&&M.common&&M.common.write===!1&&M.type==="state"?r=a.createElement(cNe,{style:this.styles.cellIdIconDocument}):r=a.createElement(aNe,{style:this.styles.cellIdIconDocument});let u=null;e.data.icon&&(typeof e.data.icon=="string"?e.data.icon.length<3?u=a.createElement("span",{className:"iconOwn",style:A.cellIdIconOwn},e.data.icon):u=a.createElement(Ie,{style:A.cellIdIconOwn,className:"iconOwn",src:e.data.icon,alt:""}):u=e.data.icon);const N=M==null?void 0:M.common,l=(M==null?void 0:M.type)&&vM[M.type]||a.createElement("div",{className:"itemIcon"}),c=this.levelPadding*(e.data.level||0);if(e.data.lang!==this.props.lang){const{rooms:Q,per:X}=_a(this.info,o,this.props.lang);e.data.rooms=Q.join(", "),e.data.per=X;const{funcs:Ce,pef:Ne}=Sa(this.info,o,this.props.lang);e.data.funcs=Ce.join(", "),e.data.pef=Ne,e.data.lang=this.props.lang}const L=this.props.multiSelect&&this.objects[o]&&(!this.props.types||this.props.types.includes(this.objects[o].type))?a.createElement(g.Checkbox,{style:A.checkBox,checked:this.state.selected.includes(o)}):null;let j=!this.props.notEditable&&n==="state"&&(this.state.filter.expertMode||(N==null?void 0:N.write)!==!1);this.props.objectBrowserViewFile&&(N==null?void 0:N.type)==="file"&&(j=!0);const T=!this.props.notEditable&&this.objects[o]&&(this.state.filter.expertMode||n==="state"||n==="channel"||n==="device"),D=this.state.statesView&&(n==="state"||n==="channel"||n==="device");let z="";const h=[];if(D&&(z=(is=this.states[o])==null?void 0:is.from,z===void 0?z=" ":(z=z?z.replace(/^system\.adapter\.|^system\./,""):"",h.push(`${this.texts.stateChangedFrom} ${z}`)),M!=null&&M.user)){const Q=M.user.replace("system.user.","");z+=`/${Q}`,h.push(`${this.texts.stateChangedBy} ${Q}`)}M&&(M.from&&h.push(`${this.texts.objectChangedFrom} ${M.from.replace(/^system\.adapter\.|^system\./,"")}`),M.user&&h.push(`${this.texts.objectChangedBy} ${M.user.replace(/^system\.user\./,"")}`),M.ts&&h.push(`${this.texts.objectChangedByUser} ${S.formatDate(new Date(M.ts),this.props.dateFormat||this.systemConfig.common.dateFormat)}`));let O=!1,p=null;o.startsWith("alias.")&&((os=N==null?void 0:N.alias)!=null&&os.id)?(O=typeof N.alias.id=="object",O?p=a.createElement("div",{style:A.cellIdAliasReadWriteDiv},N.alias.id.read?a.createElement(g.Box,{component:"div",onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.onSelect(N.alias.id.read),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(N.alias.id.read)),100)},sx:this.styles.aliasReadWrite},"←",N.alias.id.read):null,N.alias.id.write?a.createElement(g.Box,{component:"div",onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.onSelect(N.alias.id.write),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(N.alias.id.write)),100)},sx:this.styles.aliasReadWrite},"→",N.alias.id.write):null):p=a.createElement(g.Box,{component:"div",onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.onSelect(N.alias.id),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(N.alias.id)),100)},sx:this.styles.aliasAlone},"→",N.alias.id)):this.info.aliasesMap[o]&&(this.info.aliasesMap[o].length>1?p=a.createElement(g.Box,{component:"div",id:`alias_${o}`,onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.setState({aliasMenu:o})},sx:this.styles.aliasAlone},this.props.t("ra_%s links from aliases",this.info.aliasesMap[o].length)):p=this.renderAliasLink(o,0));let E=N==null?void 0:N.color,C;if(E&&!this.state.selected.includes(o)){const Q=this.props.themeName==="dark"?"#1f1f1f":this.props.themeName==="blue"?"#222a2e":"#FFFFFF";S.colorDistance(E,Q)<1e3&&(C=this.props.themeType==="dark"?"#9a9a9a":"#565656")}let I=!1;o==="0_userdata"?(E=Ia(this.props.themeType),I=!0):o==="alias"?(E=wa(this.props.themeType),I=!0):o==="javascript"?(E=TNe(this.props.themeType),I=!0):o==="system"?(E=Ca(this.props.themeType),I=!0):o==="system.adapter"?E=ha(this.props.themeType):(!E||this.state.selected.includes(o))&&(E="inherit");const _=[];if(N!=null&&N.statusStates){const Q={};Object.keys(N.statusStates).forEach(Ce=>{var be;let Ne=N.statusStates[Ce];Ne.split(".").length<3&&(Ne=`${o}.${Ne}`),Q[Ce]=Ne,this.states[Ne]?this.recordStates.includes(Ne)||this.recordStates.push(Ne):((be=this.objects[Ne])==null?void 0:be.type)==="state"&&(this.recordStates.includes(Ne)||this.recordStates.push(Ne),this.states[Ne]={val:null},this.subscribe(Ne))});let X=!1;N.statusStates.errorId&&this.states[Q.errorId]&&this.states[Q.errorId].val&&(E=this.props.themeType==="dark"?Aa:pa,X=!0,_.push(a.createElement(m.Error,{key:"error",style:this.styles.iconDeviceError}))),Q.onlineId&&this.states[Q.onlineId]?X?this.states[Q.onlineId].val?_.push(a.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected})):_.push(a.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected})):this.states[Q.onlineId].val?(E=this.props.themeType==="dark"?lo:Lo,_.push(a.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected}))):(E=this.props.themeType==="dark"?jo:go,_.push(a.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected}))):Q.offlineId&&this.states[Q.offlineId]&&(X?this.states[Q.offlineId].val?_.push(a.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected})):_.push(a.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected})):this.states[Q.offlineId].val?(E=this.props.themeType==="dark"?jo:go,_.push(a.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected}))):(E=this.props.themeType==="dark"?lo:Lo,_.push(a.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected}))))}const k=D?S.quality2text(((rs=this.states[o])==null?void 0:rs.q)||0).join(", "):null;let f=((_s=e.data)==null?void 0:_s.title)||"",P=!1;if(this.state.showDescription){const Q=Oa(e.data,this.props.lang);Q&&(f=[a.createElement("div",{key:"name",style:A.cellNameDivDiv},f),a.createElement("div",{key:"desc",style:A.cellDescription},Q)],P=!!Q)}const Y=this.props.width==="xs"&&this.state.focused===o,V=a.createElement(g.Grid2,{container:!0,wrap:"nowrap",direction:"row",sx:A.cellId,style:{width:this.columnsVisibility.id,paddingLeft:c}},a.createElement(g.Grid2,{container:!0,alignItems:"center"},L,r),a.createElement(g.Grid2,{style:{...A.cellIdSpan,...C?this.styles.invertedBackground:void 0,color:E,fontWeight:I?"bold":void 0}},a.createElement(g.Tooltip,{title:zNe(e.data,this.props.lang),slotProps:{popper:{sx:A.tooltip}}},a.createElement("div",null,e.data.name)),p,_),a.createElement("div",{style:{...A.grow,...C?this.styles.invertedBackgroundFlex:{}}}),a.createElement(g.Grid2,{container:!0,alignItems:"center"},u),this.props.width!=="xs"?a.createElement("div",null,a.createElement($t,{className:Y?"":"copyButton",style:A.cellCopyButton,onClick:Q=>this.onCopy(Q,o)})):null);let oe=Y&&f||this.columnsVisibility.name?a.createElement(g.Box,{component:"div",sx:{...A.cellName,...P?A.cellNameWithDesc:void 0,width:this.props.width!=="xs"?this.columnsVisibility.name:void 0,ml:Y?0:"5px"}},f,!Y&&((Ss=e.data)!=null&&Ss.title)?a.createElement(g.Box,{style:{color:E}},a.createElement($t,{className:"copyButton",style:A.cellCopyButton,onClick:Q=>{var X;return this.onCopy(Q,(X=e.data)==null?void 0:X.title)}})):null):null,F;this.state.statesView?F=[Y&&D&&((er=this.states[o])!=null&&er.from)||this.columnsVisibility.changedFrom?{el:a.createElement("div",{key:"from",style:{...A.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.changedFrom:void 0},title:h.join(` -`)},D&&((tr=this.states[o])!=null&&tr.from)?z:null),type:"from"}:null,Y&&k||this.columnsVisibility.qualityCode?{el:a.createElement("div",{key:"q",style:{...A.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.qualityCode:void 0},title:k||""},k),type:"quality"}:null,Y&&D&&((sr=this.states[o])!=null&&sr.ts)||this.columnsVisibility.timestamp?{el:a.createElement("div",{key:"ts",style:{...A.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.timestamp:void 0}},D&&((ir=this.states[o])!=null&&ir.ts)?S.formatDate(new Date(this.states[o].ts),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"ts"}:null,Y&&D&&((or=this.states[o])!=null&&or.lc)||this.columnsVisibility.lastChange?{el:a.createElement("div",{key:"lc",style:{...A.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.lastChange:void 0}},D&&((rr=this.states[o])!=null&&rr.lc)?S.formatDate(new Date(this.states[o].lc),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"lc"}:null]:F=[Y&&(M!=null&&M.type)||this.columnsVisibility.type?{el:a.createElement("div",{key:"type",style:{...A.cellType,width:this.props.width!=="xs"?this.columnsVisibility.type:void 0}},l," ",M==null?void 0:M.type),type:"filter_type"}:null,Y&&N||this.columnsVisibility.role?{el:a.createElement("div",{key:"role",style:{...A.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.role:"100%",cursor:this.state.filter.expertMode&&T&&this.props.objectBrowserEditRole?"text":"default"},onClick:!Y&&this.state.filter.expertMode&&T&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0},N==null?void 0:N.role),type:"filter_role",onClick:Y&&this.state.filter.expertMode&&T&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0}:null,Y&&N||this.columnsVisibility.room?{el:a.createElement("div",{key:"room",style:{...A.cellRoom,...e.data.per?A.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.room:"100%",cursor:T?"text":"default"},onClick:!Y&&T?()=>{const Q=Wt(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(Q)}})}:void 0},e.data.rooms),type:"filter_room",onClick:Y&&T?()=>{const Q=Wt(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(Q)}})}:void 0}:null,Y&&N||this.columnsVisibility.func?{el:a.createElement("div",{key:"func",style:{...A.cellFunc,...e.data.pef?A.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.func:"100%",cursor:T?"text":"default"},onClick:!Y&&T?()=>{const Q=Wt(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(Q)}})}:void 0},e.data.funcs),type:"filter_func",onClick:Y&&T?()=>{const Q=Wt(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(Q)}})}:void 0}:null];let G=((Mr=this.adapterColumns)==null?void 0:Mr.map(Q=>a.createElement("div",{style:{...A.cellAdapter,width:this.props.width!=="xs"?this.columnsVisibility[Q.id]:void 0},key:Q.id,title:`${Q.adapter} => ${Q.pathText}`},M?this.renderCustomValue(M,Q,e):null)))||null;const ue=Y||this.columnsVisibility.val?this.renderColumnValue(o,e,Y):null;let ke=Y&&ue||this.columnsVisibility.val?a.createElement("div",{style:{...A.cellValue,width:this.props.width!=="xs"?this.columnsVisibility.val:"calc(100% - 100px)",cursor:j?(N==null?void 0:N.type)==="file"?"zoom-in":e.data.button?"grab":"text":"default"},onClick:Q=>{var X,Ce,Ne;if(j){if(!(!M||!this.states))if((N==null?void 0:N.type)==="file")this.setState({viewFileDialog:o});else if(e.data.url&&Q.ctrlKey){if((X=this.states[o])!=null&&X.val&&typeof this.states[o].val=="string")if((N==null?void 0:N.role)==="url.self")window.location.href=this.states[o].val;else{const be=window.open(this.states[o].val,"_blank");be==null||be.focus()}}else!this.state.filter.expertMode&&e.data.button?this.props.socket.setState(o,!0).catch(be=>window.alert(`Cannot write state "${o}": ${be}`)):!this.state.filter.expertMode&&e.data.switch?this.props.socket.setState(o,!this.states[o].val).catch(be=>window.alert(`Cannot write state "${o}": ${be}`)):(this.edit={val:this.states[o]?this.states[o].val:"",q:this.states[o]&&this.states[o].q||0,ack:!1,id:o},this.setState({updateOpened:!0}))}else(N==null?void 0:N.role)==="url"||(N==null?void 0:N.role)==="url.blank"&&Q.ctrlKey?(Ce=this.states[o])!=null&&Ce.val&&typeof this.states[o].val=="string"&&window.open(this.states[o].val,"_blank"):(N==null?void 0:N.role)==="url.self"&&Q.ctrlKey&&(Ne=this.states[o])!=null&&Ne.val&&typeof this.states[o].val=="string"&&(window.location.href=this.states[o].val)}},ue):null,Ye=Y||this.columnsVisibility.buttons?a.createElement("div",{style:{...A.cellButtons,width:this.props.width!=="xs"?this.columnsVisibility.buttons:void 0}},this.renderColumnButtons(o,e)):null,Qt=null;if(this.props.width==="xs"&&this.state.focused===o){F=F.filter(X=>X);let Q;F.length?Q=F.map(X=>X?a.createElement("div",{key:X.type,style:A.cellDetailsLine},a.createElement("span",{style:A.cellDetailsName},this.texts[X.type],":"),X.el,a.createElement("div",{style:{flexGrow:1}}),X.onClick?a.createElement(m.Edit,{style:A.cellCopyButtonInDetails,onClick:()=>{X!=null&&X.onClick&&X.onClick()}}):null):null):Q=null,G.length||(G=null),Qt=a.createElement(g.Paper,{style:{width:"100%",display:"flex",flexDirection:"column",padding:10,backgroundColor:this.props.theme.palette.mode==="dark"?"#333":"#ccc"}},a.createElement("div",{style:A.cellDetailsLine},a.createElement("div",{style:{flexGrow:1}}),a.createElement($t,{style:A.cellCopyButtonInDetails,onClick:X=>this.onCopy(X,o)})),oe&&a.createElement("div",{style:A.cellDetailsLine},a.createElement("span",{style:A.cellDetailsName},this.texts.name,":"),oe,a.createElement("div",{style:{flexGrow:1}}),(nr=e.data)!=null&&nr.title?a.createElement($t,{className:"copyButton",style:A.cellCopyButtonInDetails,onClick:X=>{var Ce;return this.onCopy(X,(Ce=e.data)==null?void 0:Ce.title)}}):null),Q,G&&a.createElement("div",{style:A.cellDetailsLine},G),((ar=this.objects[o])==null?void 0:ar.type)==="state"&&a.createElement("div",{style:A.cellDetailsLine},a.createElement("span",{style:A.cellDetailsName},this.texts.value,":"),ke,a.createElement("div",{style:{flexGrow:1}}),a.createElement($t,{className:"copyButton",style:A.cellCopyButtonInDetails,onClick:X=>{const{valText:Ce}=bi({state:this.states[o],obj:this.objects[o],texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma});this.onCopy(X,Ce.c!==void 0?Ce.c:Ce.v.toString())},key:"cc"})),Ye&&a.createElement("div",{style:{...A.cellDetailsLine,justifyContent:"right"}},Ye)),oe=null,F=null,G=null,ke=null,Ye=null}return{row:a.createElement(g.Grid2,{container:!0,direction:"row",wrap:"nowrap",sx:S.getStyle(this.props.theme,A.tableRow,this.state.linesEnabled&&A.tableRowLines,!this.props.dragEnabled&&A.tableRowNoDragging,p&&A.tableRowAlias,O&&A.tableRowAliasReadWrite,this.state.focused===o&&this.props.multiSelect&&A.tableRowFocused,!e.data.visible&&A.filteredOut,e.data.hasVisibleParent&&!e.data.visible&&!e.data.hasVisibleChildren&&A.filteredParentOut,this.state.selected.includes(o)&&A.itemSelected,this.state.selectedNonObject===o&&A.itemSelected),key:o,id:o,onMouseDown:Q=>{this.onSelect(o);let X;"which"in Q?X=Q.which===3:"button"in Q&&(X=Q.button===2),X?this.contextMenu={item:e,ts:Date.now()}:this.contextMenu=null},onDoubleClick:()=>{e.children?this.toggleExpanded(o):this.onSelect(o,!0)}},V,oe,F==null?void 0:F.map(Q=>Q==null?void 0:Q.el),G,ke,Ye),details:Qt}}renderItem(e,t,s){const o=[];s=s||{count:0};const r=this.renderLeaf(e,t,s);let M;const n=this.props.DragWrapper;return this.props.dragEnabled&&n?e.data.sumVisibility?M=a.createElement(n,{key:e.data.id,item:e,style:A.draggable},r.row):M=a.createElement("div",{key:e.data.id,style:A.nonDraggable},r.row):M=r.row,e.data.id&&M&&o.push(M),r.details&&o.push(r.details),t=t===void 0?Is(this.state.expanded,e.data.id):t,(!e.data.id||t)&&(this.state.foldersFirst?e.children&&(o.push(e.children.map(u=>u.children&&(!this.state.columnsSelectorShow||s.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,s):null)),o.push(e.children.map(u=>!u.children&&(!this.state.columnsSelectorShow||s.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,s):null))):e.children&&o.push(e.children.map(u=>(!this.state.columnsSelectorShow||s.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,s):null))),o}calculateColumnsVisibility(e,t,s,o){let r=o||this.state.columnsWidths;const M=s||this.state.columnsForAdmin,n=t||this.state.columns||[],u=typeof e!="boolean"?this.state.columnsAuto:e;r=JSON.parse(JSON.stringify(r)),Object.keys(r).forEach(l=>{r[l]&&(r[l]=parseInt(r[l],10)||0)}),this.adapterColumns=[];const N=re[this.props.width||"lg"].widths;if(u){if(this.columnsVisibility={id:re[this.props.width||"lg"].idWidth,name:this.visibleCols.includes("name")&&N.name||0,nameHeader:this.visibleCols.includes("name")&&N.name||0,type:this.visibleCols.includes("type")&&N.type||0,role:this.visibleCols.includes("role")&&N.role||0,room:this.visibleCols.includes("room")&&N.room||0,func:this.visibleCols.includes("func")&&N.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&N.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&N.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&N.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&N.lastChange||0,val:this.visibleCols.includes("val")&&N.val||0,buttons:this.visibleCols.includes("buttons")&&N.buttons||0},this.columnsVisibility.name&&!this.customWidth){let l=this.columnsVisibility.id||0;this.state.statesView?(l+=this.columnsVisibility.changedFrom||0,l+=this.columnsVisibility.qualityCode||0,l+=this.columnsVisibility.timestamp||0,l+=this.columnsVisibility.lastChange||0):(l+=this.columnsVisibility.type||0,l+=this.columnsVisibility.role||0,l+=this.columnsVisibility.room||0,l+=this.columnsVisibility.func||0),l+=this.columnsVisibility.val||0,l+=this.columnsVisibility.buttons||0,this.columnsVisibility.name=`calc(100% - ${l+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${l+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let l=0;this.state.statesView?(l+=this.columnsVisibility.changedFrom||0,l+=this.columnsVisibility.qualityCode||0,l+=this.columnsVisibility.timestamp||0,l+=this.columnsVisibility.lastChange||0):(l+=this.columnsVisibility.type||0,l+=this.columnsVisibility.role||0,l+=this.columnsVisibility.room||0,l+=this.columnsVisibility.func||0),l+=this.columnsVisibility.val||0,l+=this.columnsVisibility.buttons||0,this.columnsVisibility.id=`calc(100% - ${l+5}px)`}}else{const l=this.props.width||"lg";this.columnsVisibility={id:r.id||re[l].idWidth,name:n.includes("name")&&(r.name||N.name||re[l].widths.name)||0,type:n.includes("type")&&(r.type||N.type||re[l].widths.type)||0,role:n.includes("role")&&(r.role||N.role||re[l].widths.role)||0,room:n.includes("room")&&(r.room||N.room||re[l].widths.room)||0,func:n.includes("func")&&(r.func||N.func||re[l].widths.func)||0};let c=this.columnsVisibility.id;if(this.columnsVisibility.name&&(c+=this.columnsVisibility.type||0,c+=this.columnsVisibility.role||0,c+=this.columnsVisibility.room||0,c+=this.columnsVisibility.func||0),M&&n&&Object.keys(M).sort().forEach(L=>M[L].forEach(j=>{const T=`_${L}_${j.path}`;if(n.includes(T)){const D={adapter:L,id:`_${L}_${j.path}`,name:j.name,path:j.path.split("."),pathText:j.path};j.edit&&(D.edit=!0,j.type&&(D.type=j.type),j.objTypes&&(D.objTypes=j.objTypes)),this.adapterColumns.push(D),this.columnsVisibility[T]=r[D.id]||j.width||re[l].widths.func||re.xl.widths.func||0,c+=this.columnsVisibility[T]}else this.columnsVisibility[T]=0})),this.adapterColumns.sort((L,j)=>L.id>j.id?-1:L.idT==="id"||typeof this.columnsVisibility[T]=="string"||!this.columnsVisibility[T]?j:j+this.columnsVisibility[T],0);this.columnsVisibility.id=`calc(100% - ${L}px)`}}}resizerMouseMove=e=>{if(this.resizerActiveDiv){let t,s;this.resizeLeft?(t=this.resizerOldWidth-e.clientX+this.resizerPosition,s=this.resizerOldWidthNext+e.clientX-this.resizerPosition):(t=this.resizerOldWidth+e.clientX-this.resizerPosition,s=this.resizerOldWidthNext-e.clientX+this.resizerPosition),this.resizerActiveName&&this.resizerNextName&&(!this.resizerMin||t>this.resizerMin)&&(!this.resizerNextMin||s>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=t,this.resizerCurrentWidths[this.resizerNextName]=s,this.resizerActiveDiv.style.width=`${t}px`,this.resizerNextDiv&&(this.resizerNextDiv.style.width=`${s}px`),this.columnsVisibility[this.resizerActiveName]=t,this.columnsVisibility[this.resizerNextName]=s,this.resizerNextName==="nameHeader"?(this.columnsVisibility.name=s-this.state.scrollBarWidth,this.resizerCurrentWidths.name=s-this.state.scrollBarWidth):this.resizerActiveName==="nameHeader"&&(this.columnsVisibility.name=t-this.state.scrollBarWidth,this.resizerCurrentWidths.name=t-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=null,this.forceUpdate()},200))}};resizerMouseUp=()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveName=null,this.resizerNextName=null,this.resizerActiveDiv=null,this.resizerNextDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{if(this.storedWidths||=JSON.parse(JSON.stringify(re[this.props.width||"lg"])),this.resizerCurrentWidths=this.resizerCurrentWidths||{},this.resizerActiveDiv=e.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name||null,this.resizerActiveName){let t=0;if(e.target.dataset.left==="true"){this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let s=this.resizerNextDiv.querySelector(".iob-ob-resize-handler");for(;this.resizerNextDiv&&!s&&t<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,s=this.resizerNextDiv.querySelector(".iob-ob-resize-handler"),t++;(s==null?void 0:s.dataset.left)!=="true"&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name||null,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=e.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerNextName&&(this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName]),window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};navigateKeyPress(e){var s,o;const t=this.state.selectedNonObject||this.state.selected[0];if(t){if(e.code==="ArrowUp"||e.code==="ArrowDown"){e.preventDefault();const r=[];(s=this.tableRef.current)==null||s.childNodes.forEach(N=>r.push(N.id));const M=r.indexOf(t),n=e.code==="ArrowDown"?M+1:M-1,u=r[n]||t;this.onSelect(u),this.scrollToItem(u)}if((e.code==="ArrowRight"||e.code==="ArrowLeft")&&this.toggleExpanded(t),e.code==="Delete"&&this.root&&t){const r=We.getItemFromRoot(this.root,t);if(r){const{obj:M}=r.data;M&&!((o=M.common)!=null&&o.dontDelete)&&this.showDeleteDialog({id:t,obj:M,item:r})}}}}static getItemFromRoot(e,t){const s=t.split(".");let o="",r=e;for(let M=0;M{this.customWidth=!1,re[this.props.width||"lg"]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),this.localStorage.removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()};renderHandleRight(){return a.createElement(g.Box,{component:"div",className:"iob-ob-resize-handler",sx:{...A.resizeHandle,...A.resizeHandleRight},onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})}renderHeader(){let e=null;return!this.columnsVisibility.buttons&&!this.isFilterEmpty()&&(e=a.createElement(g.IconButton,{onClick:()=>this.clearFilter(),style:A.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large"},a.createElement(NNe,null),a.createElement(m.Close,{style:A.buttonClearFilterIcon}))),this.props.width==="xs"?a.createElement("div",{style:A.headerRow},a.createElement("div",{style:{...A.headerCell,width:"100%"}},this.getFilterInput("id"))):a.createElement("div",{style:A.headerRow},a.createElement("div",{style:{...A.headerCell,width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id"},this.getFilterInput("id"),this.renderHandleRight()),this.columnsVisibility.name?a.createElement("div",{style:{...A.headerCell,width:this.columnsVisibility.nameHeader,position:"relative"},"data-min":100,"data-name":"nameHeader"},this.getFilterInput("name"),this.renderHandleRight()):null,!this.state.statesView&&a.createElement(a.Fragment,null,this.columnsVisibility.type?a.createElement("div",{style:{...A.headerCell,width:this.columnsVisibility.type,position:"relative"},"data-min":100,"data-name":"type"},this.getFilterSelectType(),this.renderHandleRight()):null,this.columnsVisibility.role?a.createElement("div",{style:{...A.headerCell,width:this.columnsVisibility.role,position:"relative"},"data-min":100,"data-name":"role"},this.getFilterSelectRole(),this.renderHandleRight()):null,this.columnsVisibility.room?a.createElement("div",{style:{...A.headerCell,width:this.columnsVisibility.room,position:"relative"},"data-min":100,"data-name":"room"},this.getFilterSelectRoom(),this.renderHandleRight()):null,this.columnsVisibility.func?a.createElement("div",{style:{...A.headerCell,width:this.columnsVisibility.func,position:"relative"},"data-min":100,"data-name":"func"},this.getFilterSelectFunction(),this.renderHandleRight()):null),this.state.statesView&&a.createElement(a.Fragment,null,a.createElement("div",{style:{...A.headerCell,...A.headerCellValue,width:this.columnsVisibility.changedFrom,position:"relative"},"data-min":100,"data-name":"changedFrom"},this.props.t("ra_Changed from"),this.renderHandleRight()),a.createElement("div",{style:{...A.headerCell,...A.headerCellValue,width:this.columnsVisibility.qualityCode,position:"relative"},"data-min":100,"data-name":"qualityCode"},this.props.t("ra_Quality code"),this.renderHandleRight()),a.createElement("div",{style:{...A.headerCell,...A.headerCellValue,width:this.columnsVisibility.timestamp,position:"relative"},"data-min":100,"data-name":"timestamp"},this.props.t("ra_Timestamp"),this.renderHandleRight()),a.createElement("div",{style:{...A.headerCell,...A.headerCellValue,width:this.columnsVisibility.lastChange,position:"relative"},"data-min":100,"data-name":"lastChange"},this.props.t("ra_Last change"),this.renderHandleRight())),this.adapterColumns.map(t=>a.createElement("div",{style:{...A.headerCell,...A.headerCellValue,width:this.columnsVisibility[t.id]},title:t.adapter,key:t.id,"data-min":100,"data-name":t.id},t.name)),this.columnsVisibility.val?a.createElement("div",{style:{...A.headerCell,...A.headerCellValue,width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val"},this.props.t("ra_Value"),e):null,this.columnsVisibility.buttons?a.createElement("div",{title:this.texts.filter_custom,style:{...A.headerCell,width:this.columnsVisibility.buttons}}," ",this.getFilterSelectCustoms()):null)}renderToast(){return a.createElement(g.Snackbar,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:a.createElement(g.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""})},a.createElement(m.Close,{fontSize:"small"}))})}componentDidUpdate(){if(this.tableRef.current){const e=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==e?setTimeout(()=>this.setState({scrollBarWidth:e}),100):this.selectFirst&&this.scrollToItem(this.selectFirst)}}scrollToItem(e){this.selectFirst="";const t=window.document.getElementById(e);t==null||t.scrollIntoView({behavior:"auto",block:"center",inline:"center"})}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const e=this.props.objectCustomDialog;return a.createElement(e,{reportChangedIds:t=>this.changedIds=[...t],objectIDs:this.state.customDialog,allVisibleObjects:!!this.state.customDialogAll,expertMode:this.state.filter.expertMode,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,t:this.props.t,lang:this.props.lang,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objects:this.objects,customsInstances:this.info.customs,onClose:()=>{var t;this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),(t=this.props.router)==null||t.doNavigate("tab-objects")},systemConfig:this.systemConfig})}return null}onUpdate(e){this.props.socket.setState(this.edit.id,{val:e.val,ack:e.ack,q:e.q||0,expire:e.expire||void 0}).catch(t=>this.showError(`Cannot write value: ${t}`))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const e=this.props.objectBrowserEditObject;return a.createElement(e,{key:this.state.editObjectDialog,obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,dialogName:this.props.dialogName,aliasTab:this.state.editObjectAlias,t:this.props.t,expertMode:!!this.state.filter.expertMode,onNewObject:t=>this.props.socket.setObject(t._id,t).then(()=>this.setState({editObjectDialog:t._id,editObjectAlias:!1},()=>this.onSelect(t._id))).catch(s=>this.showError(`Cannot write object: ${s}`)),onClose:t=>{var s,o;if(t){let r;this.state.editObjectDialog.startsWith("alias.")&&JSON.stringify((s=this.objects[this.state.editObjectDialog].common)==null?void 0:s.alias)!==JSON.stringify((o=t.common)==null?void 0:o.alias)&&(r=this.state.editObjectDialog),this.props.socket.setObject(t._id,t).then(()=>{r&&this.subscribes.includes(r)&&(this.unsubscribe(r),setTimeout(()=>this.subscribe(r),100))}).catch(M=>this.showError(`Cannot write object: ${M}`))}this.setState({editObjectDialog:"",editObjectAlias:!1})},width:this.props.width})}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const e=this.props.objectBrowserViewFile;return a.createElement(e,{key:"viewFile",obj:this.objects[this.state.viewFileDialog],socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({viewFileDialog:""})})}renderAliasEditorDialog(){if(!this.props.objectBrowserAliasEditor||!this.state.showAliasEditor)return null;const e=this.props.objectBrowserAliasEditor;return a.createElement(e,{key:"editAlias",obj:this.objects[this.state.showAliasEditor],roleArray:this.info.roles,objects:this.objects,socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({showAliasEditor:""}),onRedirect:(t,s)=>setTimeout(()=>this.onSelect(t,!1,()=>this.expandAllSelected(()=>{this.scrollToItem(t),setTimeout(()=>this.setState({editObjectDialog:t,showAliasEditor:"",editObjectAlias:!0}),300)})),s||0)})}showAddDataPointDialog(e,t,s){this.setState({showContextMenu:null,modalNewObj:{id:e,initialType:t,initialStateType:s}})}renderAliasMenu(){return this.state.aliasMenu?a.createElement(g.Menu,{key:"aliasmenu",open:!0,anchorEl:window.document.getElementById(`alias_${this.state.aliasMenu}`),onClose:()=>this.setState({aliasMenu:""})},this.info.aliasesMap[this.state.aliasMenu].map((e,t)=>a.createElement(g.MenuItem,{key:e,onClick:()=>this.onSelect(e)},a.createElement(g.ListItemText,null,this.renderAliasLink(this.state.aliasMenu,t,{"& .admin-browser-arrow":{mr:"8px"}}))))):null}renderContextMenu(){var L,j,T,D,z,h,O;if(!this.state.showContextMenu)return null;const e=this.state.showContextMenu.item,t=e.data.id,s=[],o=e.data.obj;let r="";if(this.props.objectEditOfAccessControl&&this.state.filter.expertMode)if(!o)r="---";else{const p=o.acl?o.type==="state"?o.acl.state:o.acl.object:0,E=o.acl&&(o.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);r=Number.isNaN(Number(p))?Number(E).toString(16):Number(p).toString(16)}const M=!this.props.notEditable&&o&&(this.state.filter.expertMode||o.type==="state"||o.type==="channel"||o.type==="device"),n=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="channel"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",u=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",N=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",l=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",c={EDIT:{key:"0",visibility:!!(this.props.objectBrowserEditObject&&o&&(this.state.filter.expertMode||We.isNonExpertId(t))),icon:a.createElement(m.Edit,{fontSize:"small",style:this.styles.contextMenuEdit}),label:this.texts.editObject,onClick:()=>this.setState({editObjectDialog:e.data.id,showContextMenu:null,editObjectAlias:!1})},EDIT_VALUE:{key:"1",visibility:!!(this.states&&!this.props.notEditable&&o&&o.type==="state"&&((L=o.common)==null?void 0:L.type)!=="file"&&(this.state.filter.expertMode||o.common.write!==!1)),icon:a.createElement(m.FormatItalic,{fontSize:"small",style:this.styles.contextMenuEditValue}),label:this.props.t("ra_Edit value"),onClick:()=>{this.edit={val:this.states[t]?this.states[t].val:"",q:this.states[t]&&this.states[t].q||0,ack:!1,id:t},this.setState({updateOpened:!0,showContextMenu:null})}},VIEW:{visibility:!!this.props.objectBrowserViewFile&&(o==null?void 0:o.type)==="state"&&((j=o.common)==null?void 0:j.type)==="file",icon:a.createElement(m.FindInPage,{fontSize:"small",style:this.styles.contextMenuView}),label:this.props.t("ra_View file"),onClick:()=>this.setState({viewFileDialog:(o==null?void 0:o._id)||"",showContextMenu:null})},CUSTOM:{key:"2",visibility:!(this.props.objectCustomDialog&&this.info.hasSomeCustoms&&o&&o.type==="state"&&((T=o.common)==null?void 0:T.type)!=="file"),icon:a.createElement(m.Settings,{fontSize:"small",style:e.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:A.cellButtonsButtonWithoutCustoms}),style:this.styles.contextMenuCustom,label:this.texts.customConfig,onClick:()=>{var p;this.pauseSubscribe(!0),(p=this.props.router)==null||p.doNavigate(null,"customs",t),this.setState({customDialog:[t],showContextMenu:null})}},ACL:{key:"3",visibility:!!r,icon:r,iconStyle:{fontSize:"smaller"},listItemIconStyle:this.styles.contextMenuACL,style:this.styles.contextMenuACL,label:this.props.t("ra_Edit ACL"),onClick:()=>this.setState({showContextMenu:null,modalEditOfAccess:!0,modalEditOfAccessObjData:e.data})},ROLE:{key:"4",visibility:!!(this.state.filter.expertMode&&M&&this.props.objectBrowserEditRole),icon:a.createElement(m.BorderColor,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit role"),onClick:()=>this.setState({roleDialog:e.data.id,showContextMenu:null})},FUNCTION:{key:"5",visibility:!!M,icon:a.createElement(m.BedroomParent,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit function"),onClick:()=>{const p=Wt(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:p,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(p)},showContextMenu:null})}},ROOM:{key:"6",visibility:!!M,icon:a.createElement(m.Construction,{fontSize:"small",style:this.styles.contextMenuRoom}),label:this.props.t("ra_Edit room"),onClick:()=>{const p=Wt(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:p,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(p)},showContextMenu:null})}},ALIAS:{key:"7",visibility:!!(!this.props.notEditable&&this.props.objectBrowserAliasEditor&&this.props.objectBrowserEditObject&&(o==null?void 0:o.type)==="state"&&((D=o.common)==null?void 0:D.type)!=="file"),icon:a.createElement(m.Link,{style:(z=o==null?void 0:o.common)!=null&&z.alias?this.styles.cellButtonsButtonWithCustoms:A.cellButtonsButtonWithoutCustoms}),label:this.info.aliasesMap[e.data.id]||e.data.id.startsWith("alias.0.")?this.props.t("ra_Edit alias"):this.props.t("ra_Create alias"),onClick:()=>{var p;(p=o==null?void 0:o.common)!=null&&p.alias?this.setState({showContextMenu:null,editObjectDialog:e.data.id,editObjectAlias:!0}):this.setState({showContextMenu:null,showAliasEditor:e.data.id})}},CREATE:{key:"+",visibility:(e.data.id.startsWith("0_userdata.0")||e.data.id.startsWith("javascript."))&&(n||u||N||l),icon:a.createElement(m.Add,{fontSize:"small",style:this.styles.cellButtonsButtonWithCustoms}),style:A.contextMenuWithSubMenu,label:this.texts.create,subMenu:[{label:this.texts.createBooleanState,visibility:n,icon:a.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","boolean")},{label:this.texts.createNumberState,visibility:n,icon:a.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","number")},{label:this.texts.createStringState,visibility:n,icon:a.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","string")},{label:this.texts.createState,visibility:n,icon:a.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state")},{label:this.texts.createChannel,visibility:u,icon:a.createElement(da,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"channel")},{label:this.texts.createDevice,visibility:N,icon:a.createElement(za,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"device")},{label:this.texts.createFolder,icon:a.createElement(m.CreateNewFolder,{fontSize:"small"}),visibility:l,onClick:()=>this.showAddDataPointDialog(e.data.id,"folder")}]},RENAME:{key:"8",visibility:!!(!this.props.notEditable&&this.props.objectMoveRenameDialog&&!e.data.id.startsWith("system.")&&e.data.id.split(".").length>2&&(this.props.expertMode||e.data.id.startsWith("javascript.0.")||e.data.id.startsWith("0_userdata.0."))),icon:a.createElement(m.DriveFileRenameOutline,null),label:this.props.t("ra_Rename_Move_Copy"),onClick:()=>{const p=Object.keys(this.objects),E=`${e.data.id}.`;this.setState({showContextMenu:null,showRenameDialog:{id:e.data.id,childrenIds:p.filter(C=>C.startsWith(E))}})}},DELETE:{key:"Delete",visibility:!!(this.props.onObjectDelete&&((h=e.children)!=null&&h.length||o&&!((O=o.common)!=null&&O.dontDelete))),icon:a.createElement(m.Delete,{fontSize:"small",style:this.styles.contextMenuDelete}),style:this.styles.contextMenuDelete,label:this.texts.deleteObject,onClick:()=>this.setState({showContextMenu:null},()=>this.showDeleteDialog({id:t,obj:o||{},item:e}))}};return Object.keys(c).forEach(p=>{var E,C;c[p].visibility&&(c[p].subMenu?(s.push(a.createElement(g.MenuItem,{key:p,href:"",onClick:I=>this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position,subItem:p,subAnchor:I.target}}),style:c[p].style},a.createElement(g.ListItemIcon,{style:{...c[p].iconStyle,...c[p].listItemIconStyle}},c[p].icon),a.createElement(g.ListItemText,null,c[p].label,"..."),a.createElement("div",{style:{...A.contextMenuKeys,opacity:1}},a.createElement(m.ArrowRight,null)))),((E=this.state.showContextMenu)==null?void 0:E.subItem)===p&&s.push(a.createElement(g.Menu,{key:"subContextMenu",open:!0,anchorEl:this.state.showContextMenu.subAnchor,onClose:()=>{this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position}}),this.contextMenu=null}},(C=c[p].subMenu)==null?void 0:C.map(I=>I.visibility?a.createElement(g.MenuItem,{key:I.label,onClick:I.onClick,style:I.style},a.createElement(g.ListItemIcon,{style:{...I.iconStyle,...I.listItemIconStyle||void 0}},I.icon),a.createElement(g.ListItemText,null,I.label)):null)))):s.push(a.createElement(g.MenuItem,{key:p,onClick:c[p].onClick,sx:c[p].style},a.createElement(g.ListItemIcon,{style:{...c[p].iconStyle,...c[p].listItemIconStyle}},c[p].icon),a.createElement(g.ListItemText,null,c[p].label),c[p].key?a.createElement("div",{style:A.contextMenuKeys},`Alt+${c[p].key==="Delete"?this.props.t("ra_Del"):c[p].key}`):null)))}),s.length?a.createElement(g.Menu,{key:"contextMenu",open:!0,onKeyUp:p=>{p.preventDefault(),p.altKey&&Object.keys(c).forEach(E=>{p.key===c[E].key&&c[E].onClick&&c[E].onClick()})},anchorReference:"anchorPosition",anchorPosition:this.state.showContextMenu.position,onClose:()=>{this.setState({showContextMenu:null}),this.contextMenu=null}},s):(setTimeout(()=>this.setState({showContextMenu:null}),100),null)}renderEditValueDialog(){var o;if(!this.state.updateOpened||!this.props.objectBrowserValue)return null;if(!this.edit.id)return console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`),null;if(!this.objects[this.edit.id])return console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`),null;const e=(o=this.objects[this.edit.id].common)!=null&&o.type?this.objects[this.edit.id].common.type:typeof this.edit.val,t=this.objects[this.edit.id].common.role,s=this.props.objectBrowserValue;return a.createElement(s,{t:this.props.t,lang:this.props.lang,type:e,role:t||"",states:S.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,theme:this.props.theme,expertMode:!!this.state.filter.expertMode,value:this.edit.val,socket:this.props.socket,object:this.objects[this.edit.id],defaultHistory:this.defaultHistory,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,onClose:r=>{this.setState({updateOpened:!1}),r&&this.onUpdate(r)},width:this.props.width})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer),this.styleTheme!==this.props.themeType&&(this.styles={cellIdIconFolder:S.getStyle(this.props.theme,A.cellIdIconFolder),cellIdIconDocument:S.getStyle(this.props.theme,A.cellIdIconDocument),iconDeviceError:S.getStyle(this.props.theme,A.iconDeviceError),iconDeviceConnected:S.getStyle(this.props.theme,A.iconDeviceConnected),iconDeviceDisconnected:S.getStyle(this.props.theme,A.iconDeviceDisconnected),cellButtonsButtonWithCustoms:S.getStyle(this.props.theme,A.cellButtonsButtonWithCustoms),invertedBackground:S.getStyle(this.props.theme,A.invertedBackground),invertedBackgroundFlex:S.getStyle(this.props.theme,A.invertedBackgroundFlex),contextMenuEdit:S.getStyle(this.props.theme,A.contextMenuEdit),contextMenuEditValue:S.getStyle(this.props.theme,A.contextMenuEditValue),contextMenuView:S.getStyle(this.props.theme,A.contextMenuView),contextMenuCustom:S.getStyle(this.props.theme,A.contextMenuCustom),contextMenuACL:S.getStyle(this.props.theme,A.contextMenuACL),contextMenuRoom:S.getStyle(this.props.theme,A.contextMenuRoom),contextMenuRole:S.getStyle(this.props.theme,A.contextMenuRole),contextMenuDelete:S.getStyle(this.props.theme,A.contextMenuDelete),filterInput:S.getStyle(this.props.theme,A.headerCellInput,A.filterInput),iconCopy:S.getStyle(this.props.theme,A.cellButtonsValueButton,A.cellButtonsValueButtonCopy),aliasReadWrite:S.getStyle(this.props.theme,A.cellIdAlias,A.cellIdAliasReadWrite),aliasAlone:S.getStyle(this.props.theme,A.cellIdAlias,A.cellIdAliasAlone)},this.styleTheme=this.props.themeType);const e=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==e&&this.objects&&this.root){const s={count:0};yo(this.root,this.state.filter,this.props.lang,this.objects,void 0,s,this.props.customFilter,this.props.types),s.count<500&&!this.state.expandAllVisible?setTimeout(()=>this.setState({expandAllVisible:!0})):s.count>=500&&this.state.expandAllVisible&&setTimeout(()=>this.setState({expandAllVisible:!1})),this.lastAppliedFilter=e}if(this.unsubscribeTimer=setTimeout(()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()},200),!this.state.loaded)return a.createElement(g.CircularProgress,{key:`${this.props.dialogName}_c`});const t=this.root?this.renderItem(this.root,void 0):null;return a.createElement(lNe,{key:this.props.dialogName},a.createElement("style",null,` +`).forEach(M=>{if(!M.trim())return;const a=M.indexOf(":");if(a!==-1){const u=M.substring(0,a).trim();let N=M.substring(a+1).trim();N=N.replace(/^['"]|['"]$/g,""),N==="true"?t[u]=!0:N==="false"?t[u]=!1:parseFloat(N).toString()===N?t[u]=parseFloat(N):t[u]=N}else t[M.trim()]=!0}),e=e.substring(s+7))}return{header:t,body:e}}static removeDocsify(e){const t=e.match(/{docsify-[^}]*}/g);return t&&t.forEach(s=>e=e.replace(s,"")),e}static onCopy(e,t){Xn(t),e&&e.stopPropagation(),e&&e.preventDefault()}}function cNe(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function Ia(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 320 320",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("g",{fill:"currentColor"},n.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),n.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"248",cx:"160",fill:"none",strokeWidth:"15"}),n.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),n.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function $t(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"}))}function wa(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 320 320",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("g",{fill:"currentColor"},n.createElement("rect",{rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),n.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),n.createElement("line",{y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),n.createElement("rect",{height:"27",width:"50",y:"140.83068",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),n.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"251",cx:"241",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),n.createElement("line",{y2:"200.94531",x2:"240.5",y1:"45.94531",x1:"240.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),n.createElement("rect",{height:"27",width:"50",y:"78.7979",x:"214.5",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),n.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",cy:"252",cx:"84",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),n.createElement("line",{y2:"201.94531",x2:"83.5",y1:"46.94531",x1:"83.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),n.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"57.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))}function uNe(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",onClick:e=>i.onClick&&i.onClick(e),width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}))}function NNe(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}),n.createElement("path",{fill:"currentColor",stroke:"null",d:"m261,270l-12,0l0,-24c0,-33.12 -26.88,-60 -60,-60s-60,26.88 -60,60l0,24l-12,0c-13.2,0 -24,10.8 -24,24l0,120c0,13.2 10.8,24 24,24l144,0c13.2,0 24,-10.8 24,-24l0,-120c0,-13.2 -10.8,-24 -24,-24zm-72,108c-13.2,0 -24,-10.8 -24,-24s10.8,-24 24,-24s24,10.8 24,24s-10.8,24 -24,24zm37.2,-108l-74.4,0l0,-24c0,-20.52 16.68,-37.2 37.2,-37.2c20.52,0 37.2,16.68 37.2,37.2l0,24z"}))}function lNe(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))}function gs(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 320 320",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("rect",{fill:"none",rx:"32",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor"}),n.createElement("ellipse",{fill:"none",ry:"54",rx:"54",cy:"160",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor"}))}function LNe(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 24 24",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",stroke:"currentColor",d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"}))}const vi={root:{width:"100%",height:"100%"},overflowHidden:{overflow:"hidden"},container:{height:"100%"}};function jNe(i){var e;return n.createElement(g.Paper,{elevation:Number.isNaN(i.elevation)?1:i.elevation,style:{...vi.root,...((e=i.styles)==null?void 0:e.root)||void 0,...i.overflow!=="visible"?vi.overflowHidden:void 0},onKeyDown:i.onKeyDown,tabIndex:i.tabIndex},n.createElement(g.Grid2,{container:!0,direction:"column",wrap:"nowrap",sx:vi.container},i.children))}const YM={root:{height:"100%",overflow:"hidden"},overflowAuto:{overflow:"auto"}};function gNe(i){return n.createElement(g.Grid2,{sx:{...YM.root,...(i==null?void 0:i.style)||void 0,...i.overflow==="auto"?YM.overflowAuto:void 0},ref:i.ref},i.children)}function TNe(i){return n.createElement(g.Grid2,{container:!0,alignItems:"center"},i.children)}const Pt=24,de=32,yNe=16,ne=20,Ca=i=>i==="dark"?"#62ff25":"#37c400",ha=i=>i==="dark"?"#ee56ff":"#a204b4",DNe=i=>i==="dark"?"#fff46e":"#b89101",Aa=i=>"#ff6d69",pa=i=>"#5773ff",ma="#ff413c",Oa="#86211f",lo="#57ff45",Lo="#098c04",jo="#f3ad11",go="#6c5008",h={toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:16},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:8},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustom_center:{textAlign:"center"},columnCustom_left:{textAlign:"left"},columnCustom_right:{textAlign:"right"},width100:{width:"100%"},transparent_10:{opacity:.1},transparent_20:{opacity:.2},transparent_30:{opacity:.3},transparent_40:{opacity:.4},transparent_50:{opacity:.5},transparent_60:{opacity:.6},transparent_70:{opacity:.7},transparent_80:{opacity:.8},transparent_90:{opacity:.9},transparent_100:{opacity:1},headerRow:{paddingLeft:8,height:38,whiteSpace:"nowrap",userSelect:"none"},buttonClearFilter:{position:"relative",float:"right",padding:0},buttonClearFilterIcon:{zIndex:2,position:"absolute",top:0,left:0,color:"#FF0000",opacity:.7},tableDiv:{paddingTop:0,paddingLeft:0,width:"calc(100% - 8px)",height:"calc(100% - 38px)",overflow:"auto"},tableRow:i=>({pl:1,height:de,lineHeight:`${de}px`,verticalAlign:"top",userSelect:"none",position:"relative",width:"100%","&:hover":{background:`${i.palette.mode==="dark"?i.palette.primary.dark:i.palette.primary.light} !important`,color:S.invertColor(i.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"}),tableRowLines:i=>({borderBottom:`1px solid ${i.palette.mode==="dark","#8888882e"}`,"& > div":{borderRight:`1px solid ${i.palette.mode==="dark","#8888882e"}`}}),tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:de+10},tableRowAliasReadWrite:{height:de+22},tableRowFocused:i=>({"&:after":{content:'""',position:"absolute",top:1,left:1,right:1,bottom:1,border:i.palette.mode?"1px dotted #000":"1px dotted #FFF"}}),checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:de-4,height:de-4,mt:"2px",float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:i=>({marginRight:8,width:de-4,height:de-4,cursor:"pointer",color:i.palette.secondary.main||"#fbff7d",verticalAlign:"top"}),cellIdIconDocument:{verticalAlign:"middle",marginLeft:(de-ne)/2,marginRight:8,width:ne,height:ne},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:ne,height:ne,top:(de-ne)/2,opacity:.8,position:"absolute",right:3},cellCopyButtonInDetails:{width:ne,height:ne,top:(de-ne)/2,opacity:.8},cellEditButton:{width:ne,height:ne,color:"white",position:"absolute",top:(de-ne)/2,right:ne+3,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,ml:"5px",overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellNameWithDesc:{lineHeight:"normal"},cellNameDivDiv:{},cellDescription:{fontSize:10,opacity:.5,fontStyle:"italic"},cellIdAlias:i=>({fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:i.palette.mode==="dark"?"#009900":"#007700"}}),cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:Pt,height:Pt,display:"inline-block"},"& .itemIconFolder":{marginLeft:3}},cellRole:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellRoom:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellEnumParent:{opacity:.4},cellFunc:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValue:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValueButton:{marginTop:5},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:de,fontSize:16,display:"flex",overflow:"hidden",textOverflow:"ellipsis",position:"relative",verticalAlign:"top","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellValueFile:{color:"#2837b9"},cellValueTooltipTitle:{fontStyle:"italic",width:100,display:"inline-block"},cellValueTooltipValue:{width:120,display:"inline-block",whiteSpace:"nowrap",textOverflow:"ellipsis"},cellValueTooltipImage:{width:100,height:"auto"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden",pointerEvents:"none"},tooltip:{pointerEvents:"none"},cellValueTextUnit:{marginLeft:4,opacity:.8,display:"inline-block"},cellValueTextState:{opacity:.7},cellValueTooltipCopy:{position:"absolute",bottom:3,right:3},cellValueTooltipEdit:{position:"absolute",bottom:3,right:15},cellButtons:{display:"inline-block",verticalAlign:"top"},cellButtonsButton:{display:"inline-block",opacity:.5,width:ne+4,height:ne+4,"&:hover":{opacity:1},p:0,mt:"-2px"},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:40},cellButtonsButtonAlone:{ml:`${ne+6}px`,pt:0,mt:"-2px"},cellButtonsButtonWithCustoms:i=>({color:i.palette.mode==="dark"?i.palette.primary.main:i.palette.secondary.main}),cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:i=>({position:"absolute",top:ne/2-2,opacity:.7,width:ne-2,height:ne-2,color:i.palette.action.active,"&:hover":{opacity:1}}),cellButtonsValueButtonCopy:{right:8,cursor:"pointer"},cellButtonsValueButtonEdit:{right:ne/2+16},cellDetailsLine:{display:"flex",alignItems:"center",width:"100%",height:32,fontSize:16},cellDetailsName:{fontWeight:"bold",marginRight:8,minWidth:80},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{mt:0,mb:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:i=>({background:`${i.palette.primary.main} !important`,color:`${S.invertColor(i.palette.primary.main,!0)} !important`}),header:{width:"100%"},headerCell:{display:"inline-block",verticalAlign:"top"},headerCellValue:{paddingTop:4,fontSize:16},headerCellInput:{width:"calc(100% - 5px)",height:de,pt:0,"& .itemIcon":{verticalAlign:"middle",width:Pt,height:Pt,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:Pt,height:Pt,mr:"5px",display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:8,width:32,height:32,borderRadius:8,background:"#FFFFFF"},enumIcon:{marginTop:4,marginLeft:4,width:24,height:24},enumDialog:{overflow:"hidden"},enumList:{minWidth:250,height:"calc(100% - 50px)",overflow:"auto"},enumCheckbox:{minWidth:0},buttonDiv:{display:"flex",height:"100%",alignItems:"center"},aclText:{fontSize:13,marginTop:6},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},fontSizeTitle:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}}},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:5,backgroundColor:"background.default"},iconDeviceConnected:i=>({color:i.palette.mode==="dark"?lo:Lo,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceDisconnected:i=>({color:i.palette.mode==="dark"?jo:go,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceError:i=>({color:i.palette.mode==="dark"?ma:Oa,opacity:.8,position:"absolute",top:4,right:50,width:20}),resizeHandle:{display:"block",position:"absolute",cursor:"col-resize",width:7,top:2,bottom:2,zIndex:1},resizeHandleRight:{right:3,borderRight:"2px dotted #888","&:hover":{borderColor:"#ccc",borderRightStyle:"solid"},"&.active":{borderColor:"#517ea5",borderRightStyle:"solid"}},invertedBackground:i=>({backgroundColor:i.palette.mode==="dark"?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"}),invertedBackgroundFlex:i=>({backgroundColor:i.palette.mode==="dark"?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}),contextMenuEdit:i=>({color:i.palette.mode==="dark"?"#ffee48":"#cbb801"}),contextMenuEditValue:i=>({color:i.palette.mode==="dark"?"#5dff45":"#1cd301"}),contextMenuView:i=>({color:i.palette.mode==="dark"?"#FFF":"#000"}),contextMenuCustom:i=>({color:i.palette.mode==="dark"?"#42eaff":"#01bbc2"}),contextMenuACL:i=>({color:i.palette.mode==="dark"?"#e079ff":"#500070"}),contextMenuRoom:i=>({color:i.palette.mode==="dark"?"#ff9a33":"#642a00"}),contextMenuRole:i=>({color:i.palette.mode==="dark"?"#ffdb43":"#562d00"}),contextMenuDelete:i=>({color:i.palette.mode==="dark"?"#ff4f4f":"#cf0000"}),contextMenuKeys:{marginLeft:8,opacity:.7,fontSize:"smaller"},contextMenuWithSubMenu:{display:"flex"}};function dNe(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 436 436",style:i==null?void 0:i.style,width:"24",height:"24",className:"admin-button"},n.createElement("g",{fill:"currentColor"},n.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),n.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function QM(i){i=(i||"").toString();const e=i[0]==="*",t=i[i.length-1]==="*";return i=i.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+i+(t?"":"$")}function zNe(i,e){const t=[];for(let s=0;s{if(o==null)return;const M=typeof o=="object";if(t&&M&&typeof o.en=="string"&&typeof o.de=="string"){s[r]=o.en;return}s[r]=M?To(o,e,t):o}):INe(i,(s,o,r)=>{if(o==null||e.includes(r))return;const M=typeof o=="object";if(t&&M&&typeof o.en=="string"&&typeof o.de=="string"){s[r]=o.en;return}s[r]=M?To(o,e,t):o})}function UM(i,e,t){const s=document.createElement("a"),o=[];t.excludeSystemRepositories&&o.push("system.repositories");const r=o.length>0||t.excludeTranslations?To(e,o,t.excludeTranslations):e,M=t.beautify?JSON.stringify(r,null,2):JSON.stringify(r);s.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(M)}`),s.setAttribute("download",i),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}function Is(i,e,t,s){if(t||=0,s===void 0&&(s=i.length-1,!s))return i[0]===e;const o=Math.floor((t+s)/2);return e===i[o]?!0:s-1===t?i[t]===e||i[s]===e:e>i[o]?Is(i,e,o,s):ez.role.startsWith(O))||(N=!0)):N=!0),!N&&((E=M.common)==null?void 0:E.custom)==="_"&&(z!=null&&z.custom))N=!0;else if(!N&&((A=M.common)!=null&&A.custom)&&((_=M.common)==null?void 0:_.custom)!=="_"){const O=M.common.custom;if(!(z!=null&&z.custom))N=!0;else if(O==="_dataSources")Object.keys(z.custom).find(k=>k.startsWith("history.")||k.startsWith("sql.")||k.startsWith("influxdb."))||(N=!0);else if(Array.isArray(O)){const k=Object.keys(z.custom);O.find(f=>k.find(P=>P.startsWith(f)))&&(N=!0)}else O!==!0&&!Object.keys(z.custom).find(k=>k.startsWith(O))&&(N=!0)}}!N&&!e.expertMode&&(N=l.id==="system"||l.id==="enum"||l.id.startsWith("system.")||l.id.startsWith("enum.")||l.id.startsWith("_design/")||l.id.endsWith(".admin")||!!(z!=null&&z.expert)),!N&&o.id&&(l.fID===void 0&&(l.fID=l.id.toLowerCase()),N=!l.fID.includes(o.id)),!N&&o.idRx&&(N=!o.idRx.test(l.id)),!N&&o.name&&(z?(l.fName===void 0&&(l.fName=Oe(z.name,t)||"",l.fName=l.fName.toLowerCase()),N=!l.fName.includes(o.name)):N=!0),!N&&o.nameRx&&z&&(l.fName===void 0&&(l.fName=Oe(z.name,t)||"",l.fName=l.fName.toLowerCase()),N=!o.nameRx.test(l.fName)),!N&&e.role&&z&&(z?N=!(typeof z.role=="string"&&z.role.startsWith(o.role)):N=!0),!N&&o.room&&(N=!o.room.find(O=>O===l.id||l.id.startsWith(`${O}.`))),!N&&o.func&&(N=!o.func.find(O=>O===l.id||l.id.startsWith(`${O}.`))),!N&&o.type&&(N=!(l.obj&&l.obj.type&&l.obj.type===o.type)),!N&&a&&(N=!(l.obj&&l.obj.type&&a.includes(l.obj.type))),!N&&o.custom&&(z?o.custom==="_"?N=!!z.custom:N=!((p=z.custom)!=null&&p[o.custom]):N=!0)}return l.visible=!N,l.hasVisibleChildren=!1,i.children&&u<20&&i.children.forEach(z=>{yo(z,e,t,s,o,r,M,a,u+1)&&(l.hasVisibleChildren=!0)}),l.sumVisibility=l.visible||l.hasVisibleChildren,r&&l.sumVisibility&&r.count++,l.id&&l.sumVisibility&&i.children&&i.children.forEach(z=>z.data.hasVisibleParent=!0),l.visible||l.hasVisibleChildren}function Ea(i,e,t,s){var r;s||=[];const o=i.data;return o.sumVisibility&&(o.id&&t[o.id]&&t[o.id].type===e&&s.push(o.id),(r=i.children)==null||r.forEach(M=>Ea(M,e,t,s))),s}function vM(i,e,t,s,o,r){let M;return e==="alias"||e==="alias.0"?M=n.createElement(m.Link,{className:"iconOwn",style:{color:ha(s)}}):e==="0_userdata"||e==="0_userdata.0"?M=n.createElement(m.DataObject,{className:"iconOwn",style:{color:Ca(s)}}):e.startsWith("_design/")||e==="system"?M=n.createElement(m.SettingsApplications,{className:"iconOwn",style:{color:Aa(s)}}):e==="system.adapter"?M=n.createElement(m.SettingsApplications,{className:"iconOwn",style:{color:pa(s)}}):e==="system.group"?M=n.createElement(m.SupervisedUserCircle,{className:"iconOwn"}):e==="system.user"?M=n.createElement(m.PersonOutlined,{className:"iconOwn"}):e==="system.host"?M=n.createElement(m.Router,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?M=n.createElement(m.Wifi,{className:"iconOwn"}):e.endsWith(".info")?M=n.createElement(m.Info,{className:"iconOwn"}):i[e]&&i[e].type==="meta"?M=n.createElement(m.Description,{className:"iconOwn"}):t<2&&i[`system.adapter.${e}`]&&(M=ci(i,`system.adapter.${e}`,o,r)),M||null}function _a(i,e){var t,s;return(s=(t=i==null?void 0:i.obj)==null?void 0:t.common)!=null&&s.desc&&Oe(i.obj.common.desc,e)||null}function wNe(i,e){const t=_a(i,e);return t!=null&&t.startsWith("http")?n.createElement(g.Box,{component:"a",sx:h.cellIdTooltipLink,href:t,target:"_blank",rel:"noreferrer"},t):n.createElement("span",{style:h.cellIdTooltip},t||i.id||"")}function bM(i,e){var l,c,L,j,T,D,I,C,E,A;const t=e.imagePrefix||".";let s=Object.keys(i);s.sort((_,p)=>_===p?0:(_=_.replace(/\./g,"!!!"),p=p.replace(/\./g,"!!!"),_>p?1:-1)),e.root&&(s=s.filter(_=>_===e.root||_.startsWith(`${e.root}.`)));let o=[],r="",M=0;const a={data:{name:"",id:""},children:[]},u={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:i,customs:["_"],enums:[],hasSomeCustoms:!1,aliasesMap:{}};let N=a;for(let _=0;_Y.role===P)?typeof P!="string"?console.warn(`Invalid role type "${typeof P}" in "${z._id}"`):u.roles.push({role:P,type:f.type}):p.startsWith("enum.rooms.")?(u.roomEnums.push(p),u.enums.push(p)):p.startsWith("enum.functions.")?(u.funcEnums.push(p),u.enums.push(p)):z.type==="enum"?u.enums.push(p):z.type==="instance"&&f&&(f.supportCustoms||(l=f.adminUI)!=null&&l.custom)&&(u.hasSomeCustoms=!0,u.customs.push(p.substring(15))),p.startsWith("alias.")&&((c=z.common.alias)!=null&&c.id))if(typeof z.common.alias.id=="string"){const Y=z.common.alias.id;u.aliasesMap[Y]?u.aliasesMap[Y].includes(p)||u.aliasesMap[Y].push(p):u.aliasesMap[Y]=[p]}else{const Y=z.common.alias.id.read;Y&&(u.aliasesMap[Y]?u.aliasesMap[Y].includes(p)||u.aliasesMap[Y].push(p):u.aliasesMap[Y]=[p]);const V=z.common.alias.id.write;V&&(u.aliasesMap[V]?u.aliasesMap[V].includes(p)||u.aliasesMap[V].push(p):u.aliasesMap[V]=[p])}}u.ids.push(p);let k;do if(k=!1,!r||p.startsWith(`${r}.`)){if(O.length-M>1){let P=r;for(let Y=M;YV.data.name===O[Y]));else{const V={data:{name:O[Y],parent:N,id:P,obj:i[P],level:Y,icon:vM(i,P,Y,e.themeType,e.lang,t),generated:!0}};N.children||=[],N.children.push(V),N=V,u.ids.push(P)}}const f={data:{name:O[O.length-1],title:Oe((L=z==null?void 0:z.common)==null?void 0:L.name,e.lang),obj:z,parent:N,icon:ci(i,p,e.lang,t)||vM(i,p,0,e.themeType,e.lang,t),id:p,hasCustoms:!!((j=z.common)!=null&&j.custom&&Object.keys(z.common.custom).length),level:O.length-1,generated:!1,button:z.type==="state"&&!!((T=z.common)!=null&&T.role)&&typeof z.common.role=="string"&&z.common.role.startsWith("button")&&((D=z.common)==null?void 0:D.write)!==!1,switch:z.type==="state"&&((I=z.common)==null?void 0:I.type)==="boolean"&&((C=z.common)==null?void 0:C.write)!==!1&&((E=z.common)==null?void 0:E.read)!==!1,url:!!((A=z.common)!=null&&A.role)&&typeof z.common.role=="string"&&z.common.role.startsWith("url")}};N.children||=[],N.children.push(f),N=f,M=O.length,o=O,r=p}else{let f=0;for(;o[f]===O[f];)f++;if(f>0){let P=o.length;for(o=o.splice(0,f),M=f,r=o.join(".");P>f;)N.data.parent?N=N.data.parent:console.error(`Parent is null for ${p} ${r} ${o.join(".")}`),P--}else N=a,o=[],r="",M=0;k=!0}while(k)}return u.roomEnums.sort((_,p)=>{var k,f,P,Y;const z=Oe((f=(k=i[_])==null?void 0:k.common)==null?void 0:f.name,e.lang)||_.split(".").pop(),O=Oe((Y=(P=i[p])==null?void 0:P.common)==null?void 0:Y.name,e.lang)||p.split(".").pop();return z>O?1:z{var k,f,P,Y;const z=Oe((f=(k=i[_])==null?void 0:k.common)==null?void 0:f.name,e.lang)||_.split(".").pop(),O=Oe((Y=(P=i[p])==null?void 0:P.common)==null?void 0:Y.name,e.lang)||p.split(".").pop();return z>O?1:z_.role.localeCompare(p.role)),u.types.sort(),{info:u,root:a}}function Sa(i,e,t,s,o){if(i.data.id===e)return i;if(t||(t=e.split("."),o=0,s=t[o]),!i.children&&i.data.id!==e)return null;let r;if(i.children)for(let M=0;Ms)break}return r?(o||=0,Sa(r,e,t,`${s}.${t[o+1]}`,o+1)):null}function xa(i,e,t,s){var M,a;if(!e)return{rooms:[],per:!1};s||=[];for(const u of i.roomEnums){const N=(M=i.objects[u])==null?void 0:M.common;if(!N)continue;const l=Oe(N.name,t);(a=N.members)!=null&&a.includes(e)&&!s.includes(l)&&s.push(l)}let o;const r=e.split(".");return r.pop(),e=r.join("."),i.objects[e]&&(o=s.length,xa(i,e,t,s)),{rooms:s,per:!o}}function Wt(i,e,t,s){var o,r;if(!e)return[];s||=[];for(let M=0;M946681200&&N<9466812e5&&(N*=1e3),N=N&&new Date(N).toString();else l==="number"?Number.isInteger(N)||(N=Math.round(N*1e8)/1e8,s&&(N=N.toString().replace(".",","))):l==="object"?N=JSON.stringify(N):l!=="string"?N=N.toString():N.startsWith("data:image/")&&(u="image"),typeof N!="string"&&(N=N.toString());const c={v:N};M&&M[N]!==void 0&&N!==M[N]&&(c.s=N,N=M[N],c.v=N),((j=c.v)==null?void 0:j.length)>40&&(c.c=c.v,c.v=`${c.v.substring(0,40)}...`),a!=null&&a.unit&&(c.u=a.unit);let L;if(i.full&&(typeof N=="string"&&N.length>100?L=[{t:o.value,v:`${N.substring(0,100)}...`}]:L=[{t:o.value,v:N}],t)){if(t.ack!==void 0&&t.ack!==null&&L.push({t:o.ack,v:t.ack.toString()}),t.ts&&L.push({t:o.ts,v:t.ts?S.formatDate(new Date(t.ts),e):""}),t.lc&&L.push({t:o.lc,v:t.lc?S.formatDate(new Date(t.lc),e):""}),t.from){let T=t.from.toString();T.startsWith("system.adapter.")&&(T=T.substring(15)),L.push({t:o.from,v:T})}if(t.user){let T=t.user.toString();T.startsWith("system.user.")&&(T=T.substring(12)),L.push({t:o.user,v:T})}t.c&&L.push({t:o.c,v:t.c}),L.push({t:o.quality,v:S.quality2text(t.q||0).join(", "),nbr:!0})}return{valText:c,valFull:L,fileViewer:u}}function CNe(i){const{state:e}=i;return{color:e!=null&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}function hNe(i,e){let t=e,s=1;const o=[];for(;s=t)o.push(0);else if(sthis.filterRefs[I]=b.createRef()),this.visibleCols=e.columns||re[e.width||"lg"].fields,e.types&&e.types.length===1){const I=this.visibleCols.indexOf("type");I!==-1&&this.visibleCols.splice(I,1)}this.possibleCols=re.xl.fields;let a=null;if(e.router){const I=e.router.getLocation();I.id&&I.dialog==="customs"&&(a=[I.id],this.pauseSubscribe(!0))}let u;Array.isArray(e.selected)?u=e.selected:u=[e.selected||""],u=u.map(I=>I.replace(/["']/g,"")).filter(I=>I),this.selectFirst=u.length&&u[0]?u[0]:this.selectFirst;const N=this.localStorage.getItem(`${e.dialogName||"App"}.columns`);let l;try{l=N?JSON.parse(N):null}catch{l=null}let c=null;try{c=c?JSON.parse(c):{}}catch{c={}}this.imagePrefix=e.imagePrefix||".";let L;const j=this.localStorage.getItem(`${e.dialogName||"App"}.foldersFirst`);j==="false"?L=!1:j==="true"?L=!0:L=e.foldersFirst===void 0?!0:e.foldersFirst;let T=!1;try{T=this.props.objectStatesView&&JSON.parse(this.localStorage.getItem(`${e.dialogName||"App"}.objectStatesView`)||"")||!1}catch{}this.state={loaded:!1,foldersFirst:L,selected:u,selectedNonObject:this.localStorage.getItem(`${e.dialogName||"App"}.selectedNonObject`)||"",filter:r,filterKey:0,focused:this.localStorage.getItem(`${e.dialogName||"App"}.focused`)||"",depth:0,expandAllVisible:!1,expanded:s,toast:"",scrollBarWidth:16,customDialog:a,editObjectDialog:"",editObjectAlias:!1,viewFileDialog:"",showAliasEditor:"",enumDialog:null,roleDialog:null,statesView:T,columns:l,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:this.localStorage.getItem(`${e.dialogName||"App"}.columnsAuto`)!=="false",columnsWidths:c,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,showAllExportOptions:!1,linesEnabled:this.localStorage.getItem(`${e.dialogName||"App"}.lines`)==="true",showDescription:this.localStorage.getItem(`${e.dialogName||"App"}.desc`)!=="false",showContextMenu:null,noStatesByExportImport:!1,beautifyJsonExport:!0,excludeSystemRepositoriesFromExport:!0,excludeTranslations:!1,tooltipInfo:null,aliasMenu:"",showRenameDialog:null},this.texts={name:e.t("ra_Name"),categories:e.t("ra_Categories"),value:e.t("ra_tooltip_value"),ack:e.t("ra_tooltip_ack"),ts:e.t("ra_tooltip_ts"),lc:e.t("ra_tooltip_lc"),from:e.t("ra_tooltip_from"),user:e.t("ra_tooltip_user"),c:e.t("ra_tooltip_comment"),quality:e.t("ra_tooltip_quality"),editObject:e.t("ra_tooltip_editObject"),deleteObject:e.t("ra_tooltip_deleteObject"),customConfig:e.t("ra_tooltip_customConfig"),copyState:e.t("ra_tooltip_copyState"),editState:e.t("ra_tooltip_editState"),ctrlForLink:e.t("ra_tooltip_ctrlForLink"),close:e.t("ra_Close"),filter_id:e.t("ra_filter_id"),filter_name:e.t("ra_filter_name"),filter_type:e.t("ra_filter_type"),filter_role:e.t("ra_filter_role"),filter_room:e.t("ra_filter_room"),filter_func:e.t("ra_filter_func"),filter_custom:e.t("ra_filter_customs"),filterCustomsWithout:e.t("ra_filter_customs_without"),objectChangedByUser:e.t("ra_object_changed_by_user"),objectChangedBy:e.t("ra_object_changed_by"),objectChangedFrom:e.t("ra_state_changed_from"),stateChangedBy:e.t("ra_state_changed_by"),stateChangedFrom:e.t("ra_state_changed_from"),ownerGroup:e.t("ra_Owner group"),ownerUser:e.t("ra_Owner user"),showAll:e.t("ra_show_all"),deviceError:e.t("ra_Error"),deviceDisconnected:e.t("ra_Disconnected"),deviceConnected:e.t("ra_Connected"),aclOwner_read_object:e.t("ra_aclOwner_read_object"),aclOwner_read_state:e.t("ra_aclOwner_read_state"),aclOwner_write_object:e.t("ra_aclOwner_write_object"),aclOwner_write_state:e.t("ra_aclOwner_write_state"),aclGroup_read_object:e.t("ra_aclGroup_read_object"),aclGroup_read_state:e.t("ra_aclGroup_read_state"),aclGroup_write_object:e.t("ra_aclGroup_write_object"),aclGroup_write_state:e.t("ra_aclGroup_write_state"),aclEveryone_read_object:e.t("ra_aclEveryone_read_object"),aclEveryone_read_state:e.t("ra_aclEveryone_read_state"),aclEveryone_write_object:e.t("ra_aclEveryone_write_object"),aclEveryone_write_state:e.t("ra_aclEveryone_write_state"),create:e.t("ra_Create"),createBooleanState:e.t("ra_create_boolean_state"),createNumberState:e.t("ra_create_number_state"),createStringState:e.t("ra_create_string_state"),createState:e.t("ra_create_state"),createChannel:e.t("ra_create_channel"),createDevice:e.t("ra_create_device"),createFolder:e.t("ra_Create folder")},this.levelPadding=e.levelPadding||yNe;const D=this.localStorage.getItem(`${this.props.dialogName||"App"}.table`);if(D)try{const I=JSON.parse(D),C=this.props.width||"lg";this.storedWidths=JSON.parse(JSON.stringify(re[C])),Object.keys(I).forEach(E=>{E==="id"?re[C].idWidth=I.id:E==="nameHeader"?re[C].widths.name=I[E]:re[C].widths[E]!==void 0&&(re[C].widths[E]=I[E])}),this.customWidth=!0}catch{}this.calculateColumnsVisibility()}async loadAllObjects(e){var s;const t=this.props;try{await new Promise(N=>{this.setState({updating:!0},()=>N())});const o=(this.props.objectsWorker?await this.props.objectsWorker.getObjects(e):await t.socket.getObjects(e,!0))||{};if(t.types&&je.isWeb())for(let N=0;N{try{if(N(o[l]))this.objects[l]=o[l];else{const c=o[l]&&o[l].type;c&&(c==="channel"||c==="device"||c==="folder"||c==="adapter"||c==="instance")&&(this.objects[l]=o[l])}}catch(c){console.log(`Error by filtering of "${l}": ${c}`)}})}else if(t.types){this.objects={};const N=t.types;Object.keys(o).forEach(l=>{var L;const c=(L=o[l])==null?void 0:L.type;c&&(c==="channel"||c==="device"||c==="enum"||c==="folder"||c==="adapter"||c==="instance"||N.includes(c))&&(this.objects[l]=o[l])})}else this.objects=o;t.setObjectsReference&&t.setObjectsReference(this.objects),this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&t.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then(N=>{N!=null&&N.val||(this.defaultHistory="")}).catch(N=>window.alert(`Cannot get state: ${N}`));const r=await this.getAdditionalColumns();this.calculateColumnsVisibility(null,null,r);const{info:M,root:a}=bM(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=a,this.info=M;const u=((s=this.state.selected)==null?void 0:s.length)&&Sa(this.root,this.state.selected[0]);this.lastAppliedFilter=null,u&&!yo(u,this.state.filter,this.props.lang,this.objects,void 0,void 0,t.customFilter,t.types)?this.setState({filter:{...Rs},columnsForAdmin:r},()=>{this.setState({loaded:!0,updating:!1},()=>this.expandAllSelected(()=>this.onAfterSelect()))}):this.setState({loaded:!0,updating:!1,columnsForAdmin:r},()=>this.expandAllSelected(()=>this.onAfterSelect()))}catch(o){this.showError(o)}}static isNonExpertId(e){return!!We.#e.find(t=>e.startsWith(t))}expandAllSelected(e){const t=[...this.state.expanded];let s=!1;this.state.selected.forEach(o=>{const r=o.split("."),M=[];for(let a=0;a{this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}):this.props.onSelect&&(this.state.focused&&this.props.allowNonObjects?(this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),this.props.onSelect([this.state.focused],null,e)):this.props.onSelect([],""))}static getDerivedStateFromProps(e,t){const s={};let o=!1;return e.expertMode!==void 0&&e.expertMode!==t.filter.expertMode&&(o=!0,s.filter={...t.filter},s.filter.expertMode=e.expertMode),o?s:null}async componentDidMount(){await this.loadAllObjects(!PM),this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChangeFromWorker):await this.props.socket.subscribeObject("*",this.onObjectChange),PM=!0,window.addEventListener("contextmenu",this.onContextMenu,!0),window.addEventListener("keydown",this.onKeyPress,!0),window.addEventListener("keyup",this.onKeyPress,!0)}onKeyPress=e=>{e.type==="keydown"&&e.ctrlKey&&!this.cltrPressed?(this.cltrPressed=!0,this.tableRef.current&&(this.tableRef.current.className="highlight-link")):e.type==="keyup"&&!e.ctrlKey&&this.cltrPressed&&(this.cltrPressed=!1,this.tableRef.current&&(this.tableRef.current.className=""))};componentWillUnmount(){this.filterTimer&&(clearTimeout(this.filterTimer),this.filterTimer=null),window.removeEventListener("contextmenu",this.onContextMenu,!0),window.removeEventListener("keydown",this.onKeyPress,!0),window.removeEventListener("keyup",this.onKeyPress,!0),this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChangeFromWorker,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange).catch(e=>console.error(`Cannot unsubscribe *: ${e}`)),this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.objects={}}showDeleteDialog(e){var u,N,l,c;const{id:t,obj:s,item:o}=e,r=Object.keys(this.objects);r.sort();let M=0;const a=`${t}.`;for(let L=0;La)break;(c=(l=this.props).onObjectDelete)==null||c.call(l,t,!!((u=o.children)!=null&&u.length),!((N=s.common)!=null&&N.dontDelete),M+1)}onContextMenu=e=>{this.contextMenu&&Date.now()-this.contextMenu.ts<2e3?(e.preventDefault(),this.setState({showContextMenu:{item:this.contextMenu.item,position:{left:e.clientX+2,top:e.clientY-6}}})):this.state.showContextMenu&&(e.preventDefault(),this.setState({showContextMenu:null})),this.contextMenu=null};refreshComponent(){this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.loadAllObjects(!0).then(()=>console.log("updated!")).catch(e=>this.showError(e))}renderErrorDialog(){return this.state.error?n.createElement(g.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description"},n.createElement(g.DialogTitle,{id:"alert-dialog-title"},this.props.t("ra_Error")),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,{id:"alert-dialog-description"},this.state.error)),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:n.createElement(m.Check,null)},this.props.t("ra_Ok")))):null}showError(e){this.setState({error:typeof e=="object"?e&&typeof e.toString=="function"?e.toString():JSON.stringify(e):e})}onSelect(e,t,s){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.focused`,e),!this.props.multiSelect)this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))?(this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==e?this.setState({selected:[e],selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),s&&s()}):t&&this.props.onSelect&&this.onAfterSelect(t)):(this.localStorage.setItem(`${this.props.dialogName||"App"}.selectedNonObject`,e),this.setState({selected:[],selectedNonObject:e,focused:e},()=>{this.onAfterSelect(),s&&s()}));else if(this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))){this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const o=[...this.state.selected],r=o.indexOf(e);r===-1?(o.push(e),o.sort()):t||o.splice(r,1),this.setState({selected:o,selectedNonObject:"",focused:e},()=>{this.onAfterSelect(t),s&&s()})}}_renderDefinedList(e){const t=[...this.possibleCols];if(t.unshift("id"),this.props.columns&&!this.props.columns.includes("buttons")){const s=t.indexOf("buttons");s!==-1&&t.splice(s,1)}return t.filter(s=>e&&(s==="val"||s==="buttons")||!e&&s!=="val"&&s!=="buttons").map(s=>{var o;return n.createElement(g.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto&&s!=="id"){const r=[...this.state.columns||[]],M=r.indexOf(s);M===-1?(r.push(s),r.sort()):r.splice(M,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(r)),this.calculateColumnsVisibility(null,r),this.setState({columns:r})}},key:s},n.createElement(g.Checkbox,{edge:"start",disabled:s==="id"||this.state.columnsAuto,checked:s==="id"||!!(this.state.columnsAuto?this.visibleCols.includes(s):(o=this.state.columns)!=null&&o.includes(s)),disableRipple:!0}),n.createElement(g.ListItemText,{primary:this.texts[`filter_${s}`]||this.props.t(`ra_${s}`)}))})}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?n.createElement(g.Dialog,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,sx:{"& .MuiPaper-root":S.getStyle(this.props.theme,h.dialogColumns,h[`transparent_${this.state.columnsDialogTransparent}`])}},n.createElement(g.DialogTitle,{sx:h.fontSizeTitle},this.props.t("ra_Configure")),n.createElement(g.DialogContent,{sx:h.fontSizeTitle},n.createElement(g.FormControlLabel,{style:h.switchColumnAuto,control:n.createElement(g.Switch,{checked:this.state.foldersFirst,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.foldersFirst`,this.state.foldersFirst?"false":"true"),this.setState({foldersFirst:!this.state.foldersFirst})}}),label:this.props.t("ra_Folders always first")}),n.createElement(g.FormControlLabel,{style:h.switchColumnAuto,control:n.createElement(g.Switch,{checked:this.state.linesEnabled,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.lines`,this.state.linesEnabled?"false":"true"),this.setState({linesEnabled:!this.state.linesEnabled})}}),label:this.props.t("ra_Show lines between rows")}),n.createElement(g.FormControlLabel,{style:h.switchColumnAuto,control:n.createElement(g.Switch,{checked:this.state.columnsAuto,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.columnsAuto`,this.state.columnsAuto?"false":"true"),this.state.columnsAuto?this.state.columns?(this.calculateColumnsVisibility(!1),this.setState({columnsAuto:!1})):(this.calculateColumnsVisibility(!1,[...this.visibleCols]),this.setState({columnsAuto:!1,columns:[...this.visibleCols]})):(this.calculateColumnsVisibility(!0),this.setState({columnsAuto:!0}))}}),label:this.props.t("ra_Auto (no custom columns)")}),n.createElement(g.List,null,this._renderDefinedList(!1),this.state.columnsForAdmin&&Object.keys(this.state.columnsForAdmin).sort().map(e=>{var t;return(t=this.state.columnsForAdmin)==null?void 0:t[e].map(s=>{var o;return n.createElement(g.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto){const r=[...this.state.columns||[]],M=`_${e}_${s.path}`,a=r.indexOf(M);a===-1?(r.push(M),r.sort()):r.splice(a,1),this.calculateColumnsVisibility(null,r),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(r)),this.setState({columns:r})}},key:`${e}_${s.name}`},n.createElement(g.ListItemIcon,null,n.createElement(g.Checkbox,{disabled:this.state.columnsAuto,edge:"start",checked:!this.state.columnsAuto&&((o=this.state.columns)==null?void 0:o.includes(`_${e}_${s.path}`)),disableRipple:!0})),n.createElement(g.ListItemText,{primary:`${s.name} (${e})`}))})}),this._renderDefinedList(!0))),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:n.createElement(m.Close,null)},this.texts.close))):null}async getAdditionalColumns(){try{const e=await this.props.socket.getAdapters();let t=null;return e.forEach(s=>t=this.parseObjectForAdmins(t,s)),t}catch(e){return console.error(`Cannot get adapters: ${e}`),null}}checkUnsubscribes(){for(let e=this.subscribes.length-1;e>=0;e--)this.recordStates.includes(this.subscribes[e])||this.unsubscribe(this.subscribes[e]);this.recordStates=[]}findItem(e,t,s,o){if(t||=e.split("."),s||=this.root,!s||!t.length)return null;if(o=(o?`${o}.`:"")+t.shift(),s.children){const r=s.children.find(M=>M.data.id===o);if(r){if(r.data.id===e)return r;if(t.length)return this.findItem(e,t,r,o)}else return null}return null}onStateChange=(e,t)=>{if(console.log(`> stateChange ${e}`),this.states[e]){const s=this.findItem(e);s!=null&&s.data.state&&(s.data.state=void 0)}t?this.states[e]=t:delete this.states[e],this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout(()=>{this.statesUpdateTimer=null,this.forceUpdate()},300))};parseObjectForAdmins(e,t){var s;if((s=t.common)!=null&&s.adminColumns&&t.common.name){const o=t.common.adminColumns;let r;o&&typeof o!="object"?r=[o]:o&&(r=o);let M;o?M=r.map(a=>{if(typeof a!="object")return{path:a,name:a.split(".").pop()};const u=a;return u.objTypes&&typeof u.objTypes!="object"?u.objTypes=[u.objTypes]:u.objTypes||(u.objTypes=void 0),!u.name&&u.path?{path:u.path,name:u.path.split(".").pop(),width:u.width,edit:!!u.edit,type:u.type,objTypes:u.objTypes}:u.path?{path:u.path,name:Oe(u.name||"",this.props.lang),width:u.width,edit:!!u.edit,type:u.type,objTypes:u.objTypes}:(console.warn(`Admin columns for ${t._id} ignored, because path not found`),null)}).filter(a=>a):M=null,M!=null&&M.length&&(e||={},e[t.common.name]=M.sort((a,u)=>a.path>u.path?-1:a.path{if(Array.isArray(e)){let t=null;e.forEach(s=>{const{newInnerState:o,filtered:r}=this.processOnObjectChangeElement(s.id,s.obj);r||(o&&t?Object.assign(t,o):t=o)}),t&&this.setState(t),this.afterObjectUpdated()}};onObjectChange=(e,t)=>{const{newInnerState:s,filtered:o}=this.processOnObjectChangeElement(e,t);o||(s&&this.setState(s),this.afterObjectUpdated())};afterObjectUpdated(){!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout(()=>{this.objectsUpdateTimer=null;const{info:e,root:t}=bM(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=t,this.info=e,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()},500))}updateAliases(e){var s,o,r;if(!this.objects||!((s=this.info)!=null&&s.aliasesMap)||!(e!=null&&e.startsWith("alias.")))return;const t=Object.keys(this.objects).filter(M=>M.startsWith("alias.0"));this.info.aliasesMap={};for(const M of t){const a=this.objects[M];if((r=(o=a==null?void 0:a.common)==null?void 0:o.alias)!=null&&r.id)if(typeof a.common.alias.id=="string"){const u=a.common.alias.id;this.info.aliasesMap[u]?this.info.aliasesMap[u].includes(M)||this.info.aliasesMap[u].push(M):this.info.aliasesMap[u]=[M]}else{const u=a.common.alias.id.read;u&&(this.info.aliasesMap[u]?this.info.aliasesMap[u].includes(M)||this.info.aliasesMap[u].push(M):this.info.aliasesMap[u]=[M]);const N=a.common.alias.id.write;N&&(this.info.aliasesMap[N]?this.info.aliasesMap[N].includes(M)||this.info.aliasesMap[N].push(M):this.info.aliasesMap[N]=[M])}}}processOnObjectChangeElement(e,t){console.log(`> objectChange ${e}`);const s=t==null?void 0:t.type;if(t&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(t)&&s!=="channel"&&s!=="device"&&s!=="folder"&&s!=="adapter"&&s!=="instance")return{newInnerState:null,filtered:!0};let o=null;if(e.startsWith("system.adapter.")&&(t==null?void 0:t.type)==="adapter"){const r=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(r,t),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(r)&&(o={columnsForAdmin:r})}return this.objects||={},t?this.objects[e]=t:this.objects[e]&&delete this.objects[e],this.updateAliases(e),{newInnerState:o,filtered:!1}}subscribe(e){this.subscribes.includes(e)||(this.subscribes.push(e),console.log(`+ subscribe ${e}`),this.pausedSubscribes||this.props.socket.subscribeState(e,this.onStateChange).catch(t=>console.error(`Cannot subscribe on state ${e}: ${t}`)))}unsubscribe(e){const t=this.subscribes.indexOf(e);t!==-1&&(this.subscribes.splice(t,1),this.states[e]&&delete this.states[e],console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(e){!this.pausedSubscribes&&e?(this.pausedSubscribes=!0,this.subscribes.forEach(t=>this.props.socket.unsubscribeState(t,this.onStateChange))):this.pausedSubscribes&&!e&&(this.pausedSubscribes=!1,this.subscribes.forEach(t=>this.props.socket.subscribeState(t,this.onStateChange)))}onFilter(e,t){this.filterTimer=null;const s={...this.state.filter};Object.keys(this.filterRefs).forEach(o=>{var r;if((r=this.filterRefs[o])!=null&&r.current){const M=this.filterRefs[o].current;for(let a=0;athis.props.onFilterChanged&&this.props.onFilterChanged(s)))}clearFilter(){const e={...this.state.filter};Object.keys(this.filterRefs).forEach(t=>{var s;if((s=this.filterRefs[t])!=null&&s.current){const o=this.filterRefs[t].current;for(let r=0;r{var t,s;return(s=(t=this.props).onFilterChanged)==null?void 0:s.call(t,e)}))}isFilterEmpty(){return!Object.keys(this.state.filter).find(t=>t!=="expertMode"&&this.state.filter[t])}getFilterInput(e){var t,s,o;return n.createElement(g.FormControl,{sx:this.styles.filterInput,key:`${e}_${this.state.filterKey}`,title:e==="name"||e==="id"?this.props.t("ra_You can use * as wildcard"):void 0,margin:"dense"},n.createElement(g.Input,{ref:this.filterRefs[e],classes:{underline:"no-underline"},id:e,placeholder:this.texts[`filter_${e}`],defaultValue:this.state.filter[e]||"",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},autoComplete:"off"}),(o=(s=(t=this.filterRefs[e])==null?void 0:t.current)==null?void 0:s.firstChild)!=null&&o.value?n.createElement("div",{style:{position:"absolute",right:0}},n.createElement(g.IconButton,{size:"small",onClick:()=>{var r;((r=this.filterRefs[e].current)==null?void 0:r.firstChild).value="",this.onFilter(e,"")}},n.createElement(m.Close,null))):null)}getFilterSelect(e,t){var o,r,M;const s=!!(t!=null&&t.find(a=>a.icon));return n.createElement("div",{style:{position:"relative"}},n.createElement(g.Select,{variant:"standard",key:`${e}_${this.state.filterKey}`,ref:this.filterRefs[e],sx:h.headerCellInput,className:"no-underline",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},defaultValue:this.state.filter[e]||"",inputProps:{name:e,id:e},displayEmpty:!0},n.createElement(g.MenuItem,{key:"empty",value:""},n.createElement("span",{style:h.selectNone},e==="custom"?this.texts.showAll:this.texts[`filter_${e}`])),t==null?void 0:t.map(a=>{let u,N,l;return typeof a=="object"?(u=a.value,N=a.name,l=a.icon):(u=a,N=a),n.createElement(g.MenuItem,{sx:h.headerCellSelectItem,key:u,value:u},l||(s?n.createElement("div",{className:"itemIcon"}):null),N)})),(M=(r=(o=this.filterRefs[e])==null?void 0:o.current)==null?void 0:r.childNodes[1])!=null&&M.value?n.createElement(g.Box,{component:"div",sx:h.selectClearButton},n.createElement(g.IconButton,{size:"small",onClick:()=>{var u;const a={...this.state.filter};a[e]="",((u=this.filterRefs[e].current)==null?void 0:u.childNodes[1]).value="",this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(a)),this.setState({filter:a,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(a))}},n.createElement(m.Close,null))):null)}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles.map(e=>e.role))}getFilterSelectRoom(){const e=this.info.roomEnums.map(t=>{var s,o,r,M;return{name:Oe((o=(s=this.objects[t])==null?void 0:s.common)==null?void 0:o.name,this.props.lang)||t.split(".").pop(),value:t,icon:n.createElement(Ie,{src:((M=(r=this.objects[t])==null?void 0:r.common)==null?void 0:M.icon)||"",style:h.selectIcon})}});return this.getFilterSelect("room",e)}getFilterSelectFunction(){const e=this.info.funcEnums.map(t=>{var s,o,r,M;return{name:Oe((o=(s=this.objects[t])==null?void 0:s.common)==null?void 0:o.name,this.props.lang)||t.split(".").pop(),value:t,icon:n.createElement(Ie,{src:((M=(r=this.objects[t])==null?void 0:r.common)==null?void 0:M.icon)||"",style:h.selectIcon})}});return this.getFilterSelect("func",e)}getFilterSelectType(){const e=this.info.types.map(t=>({name:t,value:t,icon:$M[t]||null}));return this.getFilterSelect("type",e)}getFilterSelectCustoms(){if(this.info.customs.length>1){const e=this.info.customs.map(t=>({name:t==="_"?this.texts.filterCustomsWithout:t,value:t,icon:t==="_"?null:n.createElement(Ie,{src:ci(this.objects,t,this.props.lang,this.imagePrefix)||"",style:h.selectIcon})}));return this.getFilterSelect("custom",e)}return null}onExpandAll(e,t){var o;const s=e||this.root;t||=[],(o=s==null?void 0:s.children)==null||o.forEach(r=>{r.data.sumVisibility&&(t.push(r.data.id),this.onExpandAll(r,t))}),s===this.root&&(t.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t}))}onCollapseAll(){this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},()=>this.onAfterSelect())}expandDepth(e,t,s){var o;e||=this.root,t>0&&((o=e.children)==null||o.forEach(r=>{r.data.sumVisibility&&(Is(s,r.data.id)||(s.push(r.data.id),s.sort()),t-1>0&&this.expandDepth(r,t-1,s))}))}static collapseDepth(e,t){return t.filter(s=>s.split(".").length<=e)}onExpandVisible(){if(this.state.depth<9){const e=this.state.depth+1,t=[...this.state.expanded];this.root&&this.expandDepth(this.root,e,t),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}onStatesViewVisible(){const e=!this.state.statesView;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(e)),this.setState({statesView:e})}onCollapseVisible(){if(this.state.depth>0){const e=this.state.depth-1,t=We.collapseDepth(e,this.state.expanded);this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({depth:e,expanded:t})}}getEnumsForId=e=>{const t=[];return this.info.enums.forEach(s=>{var o,r,M;if((M=(r=(o=this.objects[s])==null?void 0:o.common)==null?void 0:r.members)!=null&&M.includes(e)){const a={_id:this.objects[s]._id,common:JSON.parse(JSON.stringify(this.objects[s].common)),native:this.objects[s].native,type:"enum"};a.common&&(delete a.common.members,delete a.common.custom,delete a.common.mobile),t.push(a)}}),t.length?t:void 0};_createAllEnums=async(e,t)=>{var s,o;for(let r=0;ro)break}return e}return[]}async _exportObjects(e){var r;if(e.isAll){UM("allObjects.json",this.objects,e);return}if(!(this.state.selected.length||this.state.selectedNonObject)){window.alert(this.props.t("ra_Save of objects-tree is not possible"));return}const t={},s=this.state.selected[0]||this.state.selectedNonObject,o=this._getSelectedIdsForExport();for(const M of o){if(t[M]=JSON.parse(JSON.stringify(this.objects[M])),((r=t[M])==null?void 0:r.type)==="state"&&!e.noStatesByExportImport){const a=await this.props.socket.getState(M);a&&(t[M].val=a.val,t[M].ack=a.ack)}if(t[M].common){const a=this.getEnumsForId(M);a&&(t[M].common.enums=a)}}UM(`${s}.json`,t,e)}renderExportDialog(){return this.state.showExportDialog===!1?null:n.createElement(g.Dialog,{open:!0,maxWidth:"lg"},n.createElement(g.DialogTitle,null,this.props.t("ra_Select type of export")),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,null,this.state.filter.expertMode||this.state.showAllExportOptions?n.createElement(n.Fragment,null,this.props.t("ra_You can export all objects or just the selected branch."),n.createElement("br",null),this.props.t("ra_Selected %s object(s)",this.state.showExportDialog),n.createElement("br",null),n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{checked:this.state.noStatesByExportImport,onChange:e=>this.setState({noStatesByExportImport:e.target.checked})}),label:this.props.t("ra_Do not export values of states")}),n.createElement("br",null),this.props.t("These options can reduce the size of the export file:"),n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{checked:this.state.beautifyJsonExport,onChange:e=>this.setState({beautifyJsonExport:e.target.checked})}),label:this.props.t("Beautify JSON output")}),n.createElement("br",null),n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{checked:this.state.excludeSystemRepositoriesFromExport,onChange:e=>this.setState({excludeSystemRepositoriesFromExport:e.target.checked})}),label:this.props.t("Exclude system repositories from export JSON")}),n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{checked:this.state.excludeTranslations,onChange:e=>this.setState({excludeTranslations:e.target.checked})}),label:this.props.t("Exclude translations (except english) from export JSON")})):null)),n.createElement(g.DialogActions,null,this.state.filter.expertMode||this.state.showAllExportOptions?n.createElement(g.Button,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!0,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},n.createElement("span",{style:{marginRight:8}},this.props.t("ra_All objects")),"(",Object.keys(this.objects).length,")"):n.createElement(g.Button,{color:"grey",variant:"outlined",startIcon:n.createElement(uo,null),onClick:()=>this.setState({showAllExportOptions:!0})},this.props.t("ra_Advanced options")),n.createElement(g.Button,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},()=>this._exportObjects({isAll:!1,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))},n.createElement("span",{style:{marginRight:8}},this.props.t("ra_Only selected")),"(",this.state.showExportDialog,")"),n.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1}),startIcon:n.createElement(m.Close,null)},this.props.t("ra_Cancel"))))}renderRenameDialog(){var t;if(!this.state.showRenameDialog)return null;const e=this.props.objectMoveRenameDialog;return n.createElement(e,{expertMode:this.props.expertMode,onClose:()=>this.setState({showRenameDialog:null}),id:this.state.showRenameDialog.id,childrenIds:this.state.showRenameDialog.childrenIds,theme:this.props.theme,socket:this.props.socket,t:this.props.t,objectType:(t=this.objects[this.state.showRenameDialog.id])==null?void 0:t.type})}handleJsonUpload(e){var o;const t=e.target,s=((o=t.files)==null?void 0:o.length)&&t.files[0];if(s){const r=new FileReader;r.onload=async M=>{var u;const a=(u=M.target)==null?void 0:u.result;try{const N=JSON.parse(a),l=Object.keys(N).length,c=N._id;if(c===void 0&&l)await this.loadObjects(N),window.alert(this.props.t("ra_%s object(s) processed",l));else{if(!c)return window.alert(this.props.t("ra_Invalid structure"));try{let L,j,T;if(N.common.enums&&(L=N.common.enums,delete N.common.enums),N.val&&(j=N.val,delete N.val),N.ack!==void 0&&(T=N.ack,delete N.ack),await this.props.socket.setObject(N._id,N),N.type==="state")if(j!=null)await this.props.socket.setState(N._id,j,T===void 0?!0:T);else{const D=await this.props.socket.getState(N._id);(!D||D.val===null||D.val===void 0)&&await this.props.socket.setState(N._id,N.common.def===void 0?null:N.common.def,!0)}L&&await this._createAllEnums(L,N._id),window.alert(this.props.t("ra_%s was imported",N._id))}catch(L){window.alert(L)}}}catch(N){window.alert(N)}return null},r.readAsText(s)}else window.alert(this.props.t("ra_Failed to open JSON File"))}toolTipObjectCreating=()=>{var s,o;const{t:e}=this.props;let t=[n.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),n.createElement("div",{key:2},e("ra_Folder → State")),n.createElement("div",{key:3},e("ra_Folder → Channel → State")),n.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),n.createElement("div",{key:5},e("ra_Device → Channel → State")),n.createElement("div",{key:6},e("ra_Channel → State")),n.createElement("div",{key:7,style:{height:10}}),n.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),n.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];if(this.state.selected.length||this.state.selectedNonObject){const r=this.state.selected[0]||this.state.selectedNonObject;if(!(r.split(".").length<2||this.objects[r]&&((s=this.objects[r])==null?void 0:s.type)==="state"))if(this.state.filter.expertMode)switch((o=this.objects[r])==null?void 0:o.type){case"device":t=[n.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),n.createElement("div",{key:5},e("ra_Device → Channel → State")),n.createElement("div",{key:7,style:{height:10}}),n.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),n.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"folder":t=[n.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),n.createElement("div",{key:2},e("ra_Folder → State")),n.createElement("div",{key:3},e("ra_Folder → Channel → State")),n.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),n.createElement("div",{key:7,style:{height:10}}),n.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),n.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"channel":t=[n.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),n.createElement("div",{key:1},e("ra_Channel → State")),n.createElement("div",{key:7,style:{height:10}}),n.createElement("div",{key:8},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),n.createElement("div",{key:9},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break}else(r.startsWith("alias.0")||r.startsWith("0_userdata"))&&(t=[n.createElement("div",{key:1},e("ra_Only following structures of objects are available:")),n.createElement("div",{key:2},e("ra_Folder → State")),n.createElement("div",{key:3},e("ra_Folder → Channel → State")),n.createElement("div",{key:4},e("ra_Folder → Device → Channel → State")),n.createElement("div",{key:5},e("ra_Device → Channel → State")),n.createElement("div",{key:6},e("ra_Channel → State")),n.createElement("div",{key:7,style:{height:10}}),n.createElement("div",{key:7},e('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),n.createElement("div",{key:8},e('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))])}return t.length?t:e("ra_Add new child object to selected parent")};getToolbar(){let e=!1;if(this.state.selected.length||this.state.selectedNonObject){const t=this.state.selected[0]||this.state.selectedNonObject;t.split(".").length<2||this.objects[t]&&this.objects[t].type==="state"?e=!1:(this.state.filter.expertMode||t.startsWith("alias.0")||t.startsWith("0_userdata"))&&(e=!0)}return n.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center",overflowX:"auto"}},n.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},n.createElement(g.Tooltip,{title:this.props.t("ra_Refresh tree"),slotProps:{popper:{sx:h.tooltip}}},n.createElement("div",null,n.createElement(g.IconButton,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large"},n.createElement(m.Refresh,null)))),this.props.showExpertButton&&!this.props.expertMode&&n.createElement(g.Tooltip,{title:this.props.t("ra_expertMode"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large"},n.createElement(uo,null))),!this.props.disableColumnSelector&&this.props.width!=="xs"&&n.createElement(g.Tooltip,{title:this.props.t("ra_Configure"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{key:"columnSelector",color:this.state.columnsAuto?"primary":"default",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large"},n.createElement(m.ViewColumn,null))),this.props.width!=="xs"&&this.state.expandAllVisible&&n.createElement(g.Tooltip,{title:this.props.t("ra_Expand all nodes"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{key:"expandAll",onClick:()=>this.onExpandAll(),size:"large"},n.createElement(Ks,null))),n.createElement(g.Tooltip,{title:this.props.t("ra_Collapse all nodes"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{key:"collapseAll",onClick:()=>this.onCollapseAll(),size:"large"},n.createElement(Gt,null))),this.props.width!=="xs"&&n.createElement(g.Tooltip,{title:this.props.t("ra_Expand one step node"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{key:"expandVisible",color:"primary",onClick:()=>this.onExpandVisible(),size:"large"},n.createElement(g.Badge,{badgeContent:this.state.depth,color:"secondary",sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}})},n.createElement(Ks,null)))),this.props.width!=="xs"&&n.createElement(g.Tooltip,{title:this.props.t("ra_Collapse one step node"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{key:"collapseVisible",color:"primary",onClick:()=>this.onCollapseVisible(),size:"large"},n.createElement(g.Badge,{sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),badgeContent:this.state.depth,color:"secondary"},n.createElement(Gt,null)))),this.props.objectStatesView&&n.createElement(g.Tooltip,{title:this.props.t("ra_Toggle the states view"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{onClick:()=>this.onStatesViewVisible(),size:"large"},n.createElement(m.LooksOne,{color:this.state.statesView?"primary":"inherit"}))),n.createElement(g.Tooltip,{title:this.props.t("ra_Show/Hide object descriptions"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.desc`,this.state.showDescription?"false":"true"),this.setState({showDescription:!this.state.showDescription})},size:"large"},n.createElement(m.TextFields,{color:this.state.showDescription?"primary":"inherit"}))),this.props.objectAddBoolean?n.createElement(g.Tooltip,{title:this.toolTipObjectCreating(),slotProps:{popper:{sx:h.tooltip}}},n.createElement("div",null,n.createElement(g.IconButton,{disabled:!e,onClick:()=>this.setState({modalNewObj:{id:this.state.selected[0]||this.state.selectedNonObject}}),size:"large"},n.createElement(m.Add,null)))):null,this.props.objectImportExport&&n.createElement(g.Tooltip,{title:this.props.t("ra_Add objects tree from JSON file"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{onClick:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("id","files"),t.setAttribute("opacity","0"),t.addEventListener("change",s=>this.handleJsonUpload(s),!1),t.click()},size:"large"},n.createElement(m.Publish,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&n.createElement(g.Tooltip,{title:this.props.t("ra_Save objects tree as JSON file"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large"},n.createElement(m.Publish,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&this.props.width!=="xs"&&n.createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter(t=>this.info.objects[t].type==="state").length}`),this.props.objectEditBoolean&&n.createElement(g.Tooltip,{title:this.props.t("ra_Edit custom config"),slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{onClick:()=>{var s;const t=this.root?Ea(this.root,"state",this.objects):[];t.length?(this.pauseSubscribe(!0),t.length===1&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),(s=this.props.router)==null||s.doNavigate(null,"custom",this.state.selected[0])),this.setState({customDialog:t,customDialogAll:!0})):this.setState({toast:this.props.t("ra_please select object")})},size:"large"},n.createElement(m.Build,null))))}toggleExpanded(e){const t=JSON.parse(JSON.stringify(this.state.expanded)),s=t.indexOf(e);s===-1?(t.push(e),t.sort()):t.splice(s,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(t)),this.setState({expanded:t})}onCopy(e,t){e.stopPropagation(),e.preventDefault(),t&&(S.copyToClipboard(t),t.length<50?this.setState({toast:this.props.t("ra_Copied %s",t)}):this.setState({toast:this.props.t("ra_Copied")}))}renderTooltipAccessControl=e=>{if(!e)return null;const t=[{value:"0x400",valueNum:1024,title:"read",group:"Owner"},{value:"0x200",valueNum:512,title:"write",group:"Owner"},{value:"0x40",valueNum:64,title:"read",group:"Group"},{value:"0x20",valueNum:32,title:"write",group:"Group"},{value:"0x4",valueNum:4,title:"read",group:"Everyone"},{value:"0x2",valueNum:2,title:"write",group:"Everyone"}],s=[],o=r=>{const M=e[r];t.forEach((a,u)=>{M&a.valueNum&&s.push(n.createElement("span",{key:r+u},this.texts[`acl${a.group}_${a.title}_${r}`],",",n.createElement("span",{style:r==="object"?h.rightsObject:h.rightsState},a.value)))})};return s.push(n.createElement("span",{key:"group"},`${this.texts.ownerGroup}: ${(e.ownerGroup||"").replace("system.group.","")}`)),s.push(n.createElement("span",{key:"owner"},`${this.texts.ownerUser}: ${(e.owner||"").replace("system.user.","")}`)),o("object"),e.state&&o("state"),s.length?n.createElement("span",{style:h.tooltipAccessControl},s.map(r=>r)):null};renderColumnButtons(e,t){var M,a,u,N;if(!t.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?n.createElement("div",{style:h.buttonDiv},this.state.filter.expertMode&&this.props.objectEditOfAccessControl?n.createElement(g.IconButton,{sx:{...h.cellButtonsButton,...h.cellButtonsEmptyButton,...h.cellButtonMinWidth},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},n.createElement("div",{style:{height:15}},"---")):null,this.props.onObjectDelete&&((M=t.children)!=null&&M.length)?n.createElement(g.IconButton,{sx:{...h.cellButtonsButton,...h.cellButtonsButtonAlone},size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{var j;const l=Object.keys(this.objects);l.sort();let c=0;const L=`${e}.`;for(let T=0;TL)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((j=t.children)!=null&&j.length),!1,c+1)}},n.createElement(m.Delete,{style:h.cellButtonsButtonIcon})):null):null;t.data.aclTooltip=t.data.aclTooltip||this.renderTooltipAccessControl(t.data.obj.acl);const s=t.data.obj.acl?t.data.obj.type==="state"?t.data.obj.acl.state:t.data.obj.acl.object:0,o=t.data.obj.acl&&(t.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object),r=this.state.filter.expertMode||We.isNonExpertId(t.data.id);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?n.createElement(g.Tooltip,{key:"acl",title:t.data.aclTooltip,slotProps:{popper:{sx:h.tooltip}}},n.createElement(g.IconButton,{sx:{...h.cellButtonsButton,...h.cellButtonMinWidth,opacity:1},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:t.data}),size:"large"},n.createElement("div",{style:h.aclText},Number.isNaN(Number(s))?Number(o).toString(16):Number(s).toString(16)))):n.createElement("div",{key:"aclEmpty",style:h.cellButtonMinWidth}),r?n.createElement(g.IconButton,{key:"edit",sx:{marginRight:"2px",...h.cellButtonsButton},size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.setState({editObjectDialog:e,editObjectAlias:!1})}},n.createElement(m.Edit,{style:h.cellButtonsButtonIcon})):n.createElement(g.Box,{component:"div",key:"editDisabled",sx:h.cellButtonsButton}),this.props.onObjectDelete&&((a=t.children)!=null&&a.length||!((u=t.data.obj.common)!=null&&u.dontDelete))?n.createElement(g.IconButton,{key:"delete",sx:h.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{var j,T,D;const l=Object.keys(this.objects);l.sort();let c=0;const L=`${e}.`;for(let I=0;IL)break;this.props.onObjectDelete&&this.props.onObjectDelete(e,!!((j=t.children)!=null&&j.length),!((D=(T=t.data.obj)==null?void 0:T.common)!=null&&D.dontDelete),c)},title:this.texts.deleteObject},n.createElement(m.Delete,{style:h.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&t.data.obj.type==="state"&&((N=t.data.obj.common)==null?void 0:N.type)!=="file"?n.createElement(g.IconButton,{sx:{...h.cellButtonsButton,...t.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:h.cellButtonsButtonWithoutCustoms},key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{var l;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.pauseSubscribe(!0),(l=this.props.router)==null||l.doNavigate(null,"customs",e),this.setState({customDialog:[e],customDialogAll:!1})}},n.createElement(m.Settings,{style:h.cellButtonsButtonIcon})):null]}readHistory(e){var t,s;if(window.sparkline&&this.defaultHistory&&((s=(t=this.objects[e])==null?void 0:t.common)!=null&&s.custom)&&this.objects[e].common.custom[this.defaultHistory]){const o=new Date;o.setHours(o.getHours()-24),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);const r=o.getTime();this.props.socket.getHistory(e,{instance:this.defaultHistory,start:r,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addId:!1,aggregate:"minmax"}).then(M=>{const a=window.document.getElementsByClassName("sparkline");for(let u=0;uconsole.warn(`Cannot read history: ${M}`))}}getTooltipInfo(e,t){var N,l,c;const s=this.objects[e],o=this.states[e],{valFull:r,fileViewer:M}=bi({state:o,obj:s,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,full:!0}),a=[];r==null||r.forEach(L=>{L.t===this.texts.quality&&o.q?(a.push(n.createElement("div",{style:h.cellValueTooltipBoth,key:L.t},L.t,": ",L.v)),L.nbr||a.push(n.createElement("br",{key:`${L.t}_br`}))):(a.push(n.createElement("div",{style:h.cellValueTooltipTitle,key:L.t},L.t,": ")),a.push(n.createElement("div",{style:h.cellValueTooltipValue,key:`${L.t}_v`},L.v)),L.nbr||a.push(n.createElement("br",{key:`${L.t}_br`})))});const u=((N=s==null?void 0:s.common)==null?void 0:N.role)||"";M==="image"?a.push(n.createElement("img",{style:h.cellValueTooltipImage,src:o.val,alt:e})):u==="url"||s.common.role==="url.self"||s.common.role==="url.blank"?a.unshift(n.createElement("div",{key:"ctrl",style:{textDecoration:"underline",fontWeight:"bold"}},this.texts.ctrlForLink)):this.defaultHistory&&((c=(l=s==null?void 0:s.common)==null?void 0:l.custom)!=null&&c[this.defaultHistory])&&a.push(n.createElement("svg",{key:"sparkline",className:"sparkline","data-id":e,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"})),this.setState({tooltipInfo:{el:a,id:e}},()=>t&&t())}renderColumnValue(e,t,s){var u,N;const o=t.data.obj;if(!o||!this.states)return null;if(((u=o.common)==null?void 0:u.type)==="file")return n.createElement(g.Box,{component:"div",sx:{...h.cellValueText,...h.cellValueFile}},"[file]");if(!this.states[e])return o.type==="state"&&(this.recordStates.includes(e)||this.recordStates.push(e),this.states[e]={val:null},this.subscribe(e)),null;this.recordStates.includes(e)||this.recordStates.push(e);const r=this.states[e];let M=t.data.state;if(!M){const{valText:l}=bi({state:r,obj:o,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma}),c=[];if(t.data.state={valTextRx:c},c.push(n.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${l.v.toString()}valText`,style:{whiteSpace:"nowrap",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}},l.v.toString())),l.u&&c.push(n.createElement("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:h.cellValueTextUnit,key:`${l.v.toString()}unit`},l.u)),l.s!==void 0&&c.push(n.createElement("span",{style:h.cellValueTextState,className:`newValueBrowser-${this.props.themeType||"light"}`,key:`${l.v.toString()}states`},"(",l.s,")")),!s){const L=l.c!==void 0?l.c:l.v||"";c.push(n.createElement($t,{className:"copyButton",style:this.styles.iconCopy,onClick:j=>this.onCopy(j,L),key:"cc"}))}M=t.data.state}M.style=CNe({state:r,isExpertMode:this.state.filter.expertMode,isButton:t.data.button});let a=M.valTextRx;return this.state.filter.expertMode||(t.data.button?a=[n.createElement(dNe,{key:"button",style:{color:M.style.color,...h.cellValueButton}})]:t.data.switch&&(a=[n.createElement(g.Switch,{key:"switch",sx:{"& .MuiSwitch-thumb":{color:M.style.color},"& .MuiSwitch-track":{backgroundColor:this.states[e].val&&this.state.selected.includes(e)?this.props.themeType==="dark"?"#FFF !important":"#111 !important":void 0}},checked:!!this.states[e].val})])),n.createElement(g.Tooltip,{key:"value",title:(N=this.state.tooltipInfo)==null?void 0:N.el,slotProps:{popper:{sx:h.cellValueTooltipBox},tooltip:{sx:h.cellValueTooltip}},onOpen:()=>this.getTooltipInfo(e,()=>this.readHistory(e)),onClose:()=>{var l;return((l=this.state.tooltipInfo)==null?void 0:l.id)===e&&this.setState({tooltipInfo:null})}},n.createElement(g.Box,{component:"div",style:M.style,className:t.data.url?"iob-link":void 0,sx:{...h.cellValueText,height:s?void 0:de,"& .admin-button:active":{transform:"translate(0, 2px)"}}},a))}_syncEnum(e,t,s,o){var a,u,N;if(!(t!=null&&t.length)){o&&o();return}const r=t.pop()||"",M=[];if((a=this.info.objects[r])!=null&&a.common){if((u=this.info.objects[r].common.members)!=null&&u.length){const l=this.info.objects[r].common.members.indexOf(e);if(l!==-1&&!s.includes(r)){const c=JSON.parse(JSON.stringify(this.info.objects[r]));c.common.members.splice(l,1),M.push(this.props.socket.setObject(r,c).then(()=>this.info.objects[r]=c).catch(L=>this.showError(L)))}}if(s.includes(r)&&!((N=this.info.objects[r].common.members)!=null&&N.includes(e))){const l=JSON.parse(JSON.stringify(this.info.objects[r]));l.common.members||=[],l.common.members.push(e),l.common.members.sort(),M.push(this.props.socket.setObject(r,l).then(()=>this.info.objects[r]=l).catch(c=>this.showError(c)))}}Promise.all(M).then(()=>{setTimeout(()=>this._syncEnum(e,t,s,o),0)})}syncEnum(e,t,s){const o=[...this.info[t==="func"?"funcEnums":"roomEnums"]];return new Promise(r=>{this._syncEnum(e,o,s,()=>{r()})})}renderEnumDialog(){if(!this.state.enumDialog)return null;const e=this.state.enumDialog.type,t=this.state.enumDialog.item,s=this.state.enumDialogEnums,o=this.state.enumDialog.enumsOriginal,r=(e==="room"?this.info.roomEnums:this.info.funcEnums).map(M=>{var a,u;return{name:Oe(((u=(a=this.objects[M])==null?void 0:a.common)==null?void 0:u.name)||M.split(".").pop()||"",this.props.lang),value:M,icon:ci(this.objects,M,this.props.lang,this.imagePrefix)}}).sort((M,a)=>M.name>a.name?1:-1);return r.forEach(M=>{M.icon&&typeof M.icon=="string"&&(M.icon=n.createElement(g.Box,{style:h.enumIconDiv},n.createElement("img",{src:M.icon,style:h.enumIcon,alt:M.name})))}),n.createElement(g.Dialog,{sx:{"& .MuiPaper-root":h.enumDialog},onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0},n.createElement(g.DialogTitle,{id:"enum-dialog-title",style:{display:"flex",justifyContent:"space-between",width:"100%",flexWrap:"nowrap",gap:8,paddingRight:12}},e==="func"?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),n.createElement(g.Fab,{color:"primary",disabled:o===JSON.stringify(s),size:"small",onClick:()=>this.syncEnum(t.data.id,e,s).then(()=>this.setState({enumDialog:null,enumDialogEnums:null}))},n.createElement(m.Check,null))),n.createElement(g.List,{sx:{"&.MuiList-root":h.enumList}},r.map(M=>{let a,u,N;typeof M=="object"?(a=M.value,u=M.name,N=M.icon):(a=M,u=M);const l=`checkbox-list-label-${a}`;return n.createElement(g.ListItem,{sx:h.headerCellSelectItem,key:a,onClick:()=>{const c=s.indexOf(a),L=JSON.parse(JSON.stringify(this.state.enumDialogEnums));c===-1?(L.push(a),L.sort()):L.splice(c,1),this.setState({enumDialogEnums:L})},secondaryAction:N},n.createElement(g.ListItemIcon,{sx:{"&.MuiListItemIcon-root":h.enumCheckbox}},n.createElement(g.Checkbox,{edge:"start",checked:s.includes(a),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":l}})),n.createElement(g.ListItemText,{id:l},u))})))}renderEditRoleDialog(){var e,t;if(!this.state.roleDialog||!this.props.objectBrowserEditRole)return null;if(this.state.roleDialog&&this.props.objectBrowserEditRole){const s=this.props.objectBrowserEditRole;return n.createElement(s,{key:"objectBrowserEditRole",id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roleArray:this.info.roles,commonType:(t=(e=this.info.objects[this.state.roleDialog])==null?void 0:e.common)==null?void 0:t.type,onClose:o=>{o&&(this.info.objects[this.state.roleDialog]=o),this.setState({roleDialog:null})}})}return null}onColumnsEditCustomDialogClose(e){var s,o;const t=this.customColumnDialog;if(e){let r=t.value;t.type==="boolean"?r=r==="true"||r===!0:t.type==="number"&&(r=parseFloat(r)),this.customColumnDialog=null,this.props.socket.getObject(((o=(s=this.state.columnsEditCustomDialog)==null?void 0:s.obj)==null?void 0:o._id)||"").then(M=>{var a;if(M&&We.setCustomValue(M,(a=this.state.columnsEditCustomDialog)==null?void 0:a.it,r))return this.props.socket.setObject(M._id,M);throw new Error(this.props.t("ra_Cannot update attribute, because not found in the object"))}).then(()=>this.setState({columnsEditCustomDialog:null})).catch(M=>this.showError(M))}else this.customColumnDialog=null,this.setState({columnsEditCustomDialog:null})}renderColumnsEditCustomDialog(){if(!this.state.columnsEditCustomDialog)return null;if(!this.customColumnDialog){const e=We.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof e,initValue:(e??"").toString(),value:(e??"").toString()}}return n.createElement(g.Dialog,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0},n.createElement(g.DialogTitle,{id:"custom-dialog-title"},`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,{id:"alert-dialog-description"},this.customColumnDialog.type==="boolean"?n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:this.customColumnDialog.value==="true",onChange:e=>{const t=this.customColumnDialog;t.value=e.target.checked.toString();const s=t.value!==t.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):n.createElement(g.TextField,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:e=>e.key==="Enter"&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:e=>{const t=this.customColumnDialog;t.value=e.target.value;const s=t.value!==t.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})},autoFocus:!0}))),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:n.createElement(m.Check,null)},this.props.t("ra_Update")),n.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:n.createElement(m.Close,null)},this.props.t("ra_Cancel"))))}static getCustomValue(e,t){var s;if((s=e==null?void 0:e._id)!=null&&s.startsWith(`${t.adapter}.`)&&t.path.length>1){const o=t.path;let r;const M=e;if(M[o[0]]&&typeof M[o[0]]=="object")return o.length===2?r=M[o[0]][o[1]]:o.length===3?r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"?M[o[0]][o[1]][o[2]]:null:o.length===4?r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"&&M[o[0]][o[1]][o[2]]?M[o[0]][o[1]][o[2]][o[3]]:null:o.length===5?r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"&&M[o[0]][o[1]][o[2]]&&M[o[0]][o[1]][o[2]][o[3]]?M[o[0]][o[1]][o[2]][o[3]][o[4]]:null:o.length===6&&(r=M[o[0]][o[1]]&&typeof M[o[0]][o[1]]=="object"&&M[o[0]][o[1]][o[2]]&&M[o[0]][o[1]][o[2]][o[3]]&&M[o[0]][o[1]][o[2]][o[3]][o[4]]?M[o[0]][o[1]][o[2]][o[3]][o[4]][o[5]]:null),r??null}return null}static setCustomValue(e,t,s){var o;if((o=e==null?void 0:e._id)!=null&&o.startsWith(`${t.adapter}.`)&&t.path.length>1){const r=t.path,M=e;if(M[r[0]]&&typeof M[r[0]]=="object"){if(r.length===2)return M[r[0]][r[1]]=s,!0;if(r.length===3){if(M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object")return M[r[0]][r[1]][r[2]]=s,!0}else if(r.length===4){if(M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object"&&M[r[0]][r[1]][r[2]]&&typeof M[r[0]][r[1]][r[2]]=="object")return M[r[0]][r[1]][r[2]][r[3]]=s,!0}else if(r.length===5){if(M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object"&&M[r[0]][r[1]][r[2]]&&typeof M[r[0]][r[1]][r[2]]=="object"&&M[r[0]][r[1]][r[2]][r[3]]&&typeof M[r[0]][r[1]][r[2]][r[3]]=="object")return M[r[0]][r[1]][r[2]][r[3]][r[4]]=s,!0}else if(r.length===6&&M[r[0]][r[1]]&&typeof M[r[0]][r[1]]=="object"&&M[r[0]][r[1]][r[2]]&&typeof M[r[0]][r[1]][r[2]]=="object"&&M[r[0]][r[1]][r[2]][r[3]]&&typeof M[r[0]][r[1]][r[2]][r[3]]=="object"&&M[r[0]][r[1]][r[2]][r[3]][r[4]]&&typeof M[r[0]][r[1]][r[2]][r[3]][r[4]]=="object")return M[r[0]][r[1]][r[2]][r[3]][r[4]][r[5]]=s,!0}}return!1}renderCustomValue(e,t,s){const o=We.getCustomValue(e,t);return o!=null?t.edit&&!this.props.notEditable&&(!t.objTypes||t.objTypes.includes(e.type))?n.createElement(g.Box,{component:"div",style:{...h.columnCustom,...h.columnCustomEditable,...h[`columnCustom_${t.align}`]},onClick:()=>this.setState({columnsEditCustomDialog:{item:s,it:t,obj:e},customColumnDialogValueChanged:!1})},o):n.createElement(g.Box,{component:"div",style:{...h.columnCustom,...h[`columnCustom_${t.align}`]}},o):null}renderAliasLink(e,t,s){const o=t||0,r=this.objects[this.info.aliasesMap[e][o]].common.alias.id;return r?n.createElement(g.Box,{component:"div",onClick:M=>{M.stopPropagation(),M.preventDefault();const a=this.info.aliasesMap[e][o];this.info.aliasesMap[e].length>1&&this.setState({aliasMenu:""}),this.onSelect(a),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(a)),100)},sx:s||this.styles.aliasAlone},n.createElement("span",{className:"admin-browser-arrow"},typeof r=="string"||r.read===e&&r.write===e?"↔":r.read===e?"→":"←"),this.info.aliasesMap[e][o]):null}renderLeaf(e,t,s){var is,os,rs,_s,Ss,er,tr,sr,ir,or,rr,Mr,nr,ar;const o=e.data.id;s.count++,t=t===void 0?this.state.expanded.includes(o):t;let r;const M=e.data.obj,a=M==null?void 0:M.type;e.children||a==="folder"||a==="device"||a==="channel"||a==="meta"?r=t?n.createElement(Ks,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(o)}):n.createElement(Gt,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(o)}):M&&M.common&&M.common.write===!1&&M.type==="state"?r=n.createElement(NNe,{style:this.styles.cellIdIconDocument}):r=n.createElement(uNe,{style:this.styles.cellIdIconDocument});let u=null;e.data.icon&&(typeof e.data.icon=="string"?e.data.icon.length<3?u=n.createElement("span",{className:"iconOwn",style:h.cellIdIconOwn},e.data.icon):u=n.createElement(Ie,{style:h.cellIdIconOwn,className:"iconOwn",src:e.data.icon,alt:""}):u=e.data.icon);const N=M==null?void 0:M.common,l=(M==null?void 0:M.type)&&$M[M.type]||n.createElement("div",{className:"itemIcon"}),c=this.levelPadding*(e.data.level||0);if(e.data.lang!==this.props.lang){const{rooms:Q,per:X}=xa(this.info,o,this.props.lang);e.data.rooms=Q.join(", "),e.data.per=X;const{funcs:Ce,pef:Ne}=fa(this.info,o,this.props.lang);e.data.funcs=Ce.join(", "),e.data.pef=Ne,e.data.lang=this.props.lang}const L=this.props.multiSelect&&this.objects[o]&&(!this.props.types||this.props.types.includes(this.objects[o].type))?n.createElement(g.Checkbox,{style:h.checkBox,checked:this.state.selected.includes(o)}):null;let j=!this.props.notEditable&&a==="state"&&(this.state.filter.expertMode||(N==null?void 0:N.write)!==!1);this.props.objectBrowserViewFile&&(N==null?void 0:N.type)==="file"&&(j=!0);const T=!this.props.notEditable&&this.objects[o]&&(this.state.filter.expertMode||a==="state"||a==="channel"||a==="device"),D=this.state.statesView&&(a==="state"||a==="channel"||a==="device");let I="";const C=[];if(D&&(I=(is=this.states[o])==null?void 0:is.from,I===void 0?I=" ":(I=I?I.replace(/^system\.adapter\.|^system\./,""):"",C.push(`${this.texts.stateChangedFrom} ${I}`)),M!=null&&M.user)){const Q=M.user.replace("system.user.","");I+=`/${Q}`,C.push(`${this.texts.stateChangedBy} ${Q}`)}M&&(M.from&&C.push(`${this.texts.objectChangedFrom} ${M.from.replace(/^system\.adapter\.|^system\./,"")}`),M.user&&C.push(`${this.texts.objectChangedBy} ${M.user.replace(/^system\.user\./,"")}`),M.ts&&C.push(`${this.texts.objectChangedByUser} ${S.formatDate(new Date(M.ts),this.props.dateFormat||this.systemConfig.common.dateFormat)}`));let E=!1,A=null;o.startsWith("alias.")&&((os=N==null?void 0:N.alias)!=null&&os.id)?(E=typeof N.alias.id=="object",E?A=n.createElement("div",{style:h.cellIdAliasReadWriteDiv},N.alias.id.read?n.createElement(g.Box,{component:"div",onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.onSelect(N.alias.id.read),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(N.alias.id.read)),100)},sx:this.styles.aliasReadWrite},"←",N.alias.id.read):null,N.alias.id.write?n.createElement(g.Box,{component:"div",onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.onSelect(N.alias.id.write),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(N.alias.id.write)),100)},sx:this.styles.aliasReadWrite},"→",N.alias.id.write):null):A=n.createElement(g.Box,{component:"div",onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.onSelect(N.alias.id),setTimeout(()=>this.expandAllSelected(()=>this.scrollToItem(N.alias.id)),100)},sx:this.styles.aliasAlone},"→",N.alias.id)):this.info.aliasesMap[o]&&(this.info.aliasesMap[o].length>1?A=n.createElement(g.Box,{component:"div",id:`alias_${o}`,onClick:Q=>{Q.stopPropagation(),Q.preventDefault(),this.setState({aliasMenu:o})},sx:this.styles.aliasAlone},this.props.t("ra_%s links from aliases",this.info.aliasesMap[o].length)):A=this.renderAliasLink(o,0));let _=N==null?void 0:N.color,p;if(_&&!this.state.selected.includes(o)){const Q=this.props.themeName==="dark"?"#1f1f1f":this.props.themeName==="blue"?"#222a2e":"#FFFFFF";S.colorDistance(_,Q)<1e3&&(p=this.props.themeType==="dark"?"#9a9a9a":"#565656")}let z=!1;o==="0_userdata"?(_=Ca(this.props.themeType),z=!0):o==="alias"?(_=ha(this.props.themeType),z=!0):o==="javascript"?(_=DNe(this.props.themeType),z=!0):o==="system"?(_=Aa(this.props.themeType),z=!0):o==="system.adapter"?_=pa(this.props.themeType):(!_||this.state.selected.includes(o))&&(_="inherit");const O=[];if(N!=null&&N.statusStates){const Q={};Object.keys(N.statusStates).forEach(Ce=>{var be;let Ne=N.statusStates[Ce];Ne.split(".").length<3&&(Ne=`${o}.${Ne}`),Q[Ce]=Ne,this.states[Ne]?this.recordStates.includes(Ne)||this.recordStates.push(Ne):((be=this.objects[Ne])==null?void 0:be.type)==="state"&&(this.recordStates.includes(Ne)||this.recordStates.push(Ne),this.states[Ne]={val:null},this.subscribe(Ne))});let X=!1;N.statusStates.errorId&&this.states[Q.errorId]&&this.states[Q.errorId].val&&(_=this.props.themeType==="dark"?ma:Oa,X=!0,O.push(n.createElement(m.Error,{key:"error",style:this.styles.iconDeviceError}))),Q.onlineId&&this.states[Q.onlineId]?X?this.states[Q.onlineId].val?O.push(n.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected})):O.push(n.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected})):this.states[Q.onlineId].val?(_=this.props.themeType==="dark"?lo:Lo,O.push(n.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected}))):(_=this.props.themeType==="dark"?jo:go,O.push(n.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected}))):Q.offlineId&&this.states[Q.offlineId]&&(X?this.states[Q.offlineId].val?O.push(n.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected})):O.push(n.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected})):this.states[Q.offlineId].val?(_=this.props.themeType==="dark"?jo:go,O.push(n.createElement(m.WifiOff,{key:"disc",style:this.styles.iconDeviceDisconnected}))):(_=this.props.themeType==="dark"?lo:Lo,O.push(n.createElement(m.Wifi,{key:"conn",style:this.styles.iconDeviceConnected}))))}const k=D?S.quality2text(((rs=this.states[o])==null?void 0:rs.q)||0).join(", "):null;let f=((_s=e.data)==null?void 0:_s.title)||"",P=!1;if(this.state.showDescription){const Q=_a(e.data,this.props.lang);Q&&(f=[n.createElement("div",{key:"name",style:h.cellNameDivDiv},f),n.createElement("div",{key:"desc",style:h.cellDescription},Q)],P=!!Q)}const Y=this.props.width==="xs"&&this.state.focused===o,V=n.createElement(g.Grid2,{container:!0,wrap:"nowrap",direction:"row",sx:h.cellId,style:{width:this.columnsVisibility.id,paddingLeft:c}},n.createElement(g.Grid2,{container:!0,alignItems:"center"},L,r),n.createElement(g.Grid2,{style:{...h.cellIdSpan,...p?this.styles.invertedBackground:void 0,color:_,fontWeight:z?"bold":void 0}},n.createElement(g.Tooltip,{title:wNe(e.data,this.props.lang),slotProps:{popper:{sx:h.tooltip}}},n.createElement("div",null,e.data.name)),A,O),n.createElement("div",{style:{...h.grow,...p?this.styles.invertedBackgroundFlex:{}}}),n.createElement(g.Grid2,{container:!0,alignItems:"center"},u),this.props.width!=="xs"?n.createElement("div",null,n.createElement($t,{className:Y?"":"copyButton",style:h.cellCopyButton,onClick:Q=>this.onCopy(Q,o)})):null);let oe=Y&&f||this.columnsVisibility.name?n.createElement(g.Box,{component:"div",sx:{...h.cellName,...P?h.cellNameWithDesc:void 0,width:this.props.width!=="xs"?this.columnsVisibility.name:void 0,ml:Y?0:"5px"}},f,!Y&&((Ss=e.data)!=null&&Ss.title)?n.createElement(g.Box,{style:{color:_}},n.createElement($t,{className:"copyButton",style:h.cellCopyButton,onClick:Q=>{var X;return this.onCopy(Q,(X=e.data)==null?void 0:X.title)}})):null):null,F;this.state.statesView?F=[Y&&D&&((er=this.states[o])!=null&&er.from)||this.columnsVisibility.changedFrom?{el:n.createElement("div",{key:"from",style:{...h.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.changedFrom:void 0},title:C.join(` +`)},D&&((tr=this.states[o])!=null&&tr.from)?I:null),type:"from"}:null,Y&&k||this.columnsVisibility.qualityCode?{el:n.createElement("div",{key:"q",style:{...h.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.qualityCode:void 0},title:k||""},k),type:"quality"}:null,Y&&D&&((sr=this.states[o])!=null&&sr.ts)||this.columnsVisibility.timestamp?{el:n.createElement("div",{key:"ts",style:{...h.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.timestamp:void 0}},D&&((ir=this.states[o])!=null&&ir.ts)?S.formatDate(new Date(this.states[o].ts),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"ts"}:null,Y&&D&&((or=this.states[o])!=null&&or.lc)||this.columnsVisibility.lastChange?{el:n.createElement("div",{key:"lc",style:{...h.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.lastChange:void 0}},D&&((rr=this.states[o])!=null&&rr.lc)?S.formatDate(new Date(this.states[o].lc),this.props.dateFormat||this.systemConfig.common.dateFormat):null),type:"lc"}:null]:F=[Y&&(M!=null&&M.type)||this.columnsVisibility.type?{el:n.createElement("div",{key:"type",style:{...h.cellType,width:this.props.width!=="xs"?this.columnsVisibility.type:void 0}},l," ",M==null?void 0:M.type),type:"filter_type"}:null,Y&&N||this.columnsVisibility.role?{el:n.createElement("div",{key:"role",style:{...h.cellRole,width:this.props.width!=="xs"?this.columnsVisibility.role:"100%",cursor:this.state.filter.expertMode&&T&&this.props.objectBrowserEditRole?"text":"default"},onClick:!Y&&this.state.filter.expertMode&&T&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0},N==null?void 0:N.role),type:"filter_role",onClick:Y&&this.state.filter.expertMode&&T&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0}:null,Y&&N||this.columnsVisibility.room?{el:n.createElement("div",{key:"room",style:{...h.cellRoom,...e.data.per?h.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.room:"100%",cursor:T?"text":"default"},onClick:!Y&&T?()=>{const Q=Wt(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(Q)}})}:void 0},e.data.rooms),type:"filter_room",onClick:Y&&T?()=>{const Q=Wt(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(Q)}})}:void 0}:null,Y&&N||this.columnsVisibility.func?{el:n.createElement("div",{key:"func",style:{...h.cellFunc,...e.data.pef?h.cellEnumParent:{},width:this.props.width!=="xs"?this.columnsVisibility.func:"100%",cursor:T?"text":"default"},onClick:!Y&&T?()=>{const Q=Wt(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(Q)}})}:void 0},e.data.funcs),type:"filter_func",onClick:Y&&T?()=>{const Q=Wt(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:Q,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(Q)}})}:void 0}:null];let G=((Mr=this.adapterColumns)==null?void 0:Mr.map(Q=>n.createElement("div",{style:{...h.cellAdapter,width:this.props.width!=="xs"?this.columnsVisibility[Q.id]:void 0},key:Q.id,title:`${Q.adapter} => ${Q.pathText}`},M?this.renderCustomValue(M,Q,e):null)))||null;const ue=Y||this.columnsVisibility.val?this.renderColumnValue(o,e,Y):null;let ke=Y&&ue||this.columnsVisibility.val?n.createElement("div",{style:{...h.cellValue,width:this.props.width!=="xs"?this.columnsVisibility.val:"calc(100% - 100px)",cursor:j?(N==null?void 0:N.type)==="file"?"zoom-in":e.data.button?"grab":"text":"default"},onClick:Q=>{var X,Ce,Ne;if(j){if(!(!M||!this.states))if((N==null?void 0:N.type)==="file")this.setState({viewFileDialog:o});else if(e.data.url&&Q.ctrlKey){if((X=this.states[o])!=null&&X.val&&typeof this.states[o].val=="string")if((N==null?void 0:N.role)==="url.self")window.location.href=this.states[o].val;else{const be=window.open(this.states[o].val,"_blank");be==null||be.focus()}}else!this.state.filter.expertMode&&e.data.button?this.props.socket.setState(o,!0).catch(be=>window.alert(`Cannot write state "${o}": ${be}`)):!this.state.filter.expertMode&&e.data.switch?this.props.socket.setState(o,!this.states[o].val).catch(be=>window.alert(`Cannot write state "${o}": ${be}`)):(this.edit={val:this.states[o]?this.states[o].val:"",q:this.states[o]&&this.states[o].q||0,ack:!1,id:o},this.setState({updateOpened:!0}))}else(N==null?void 0:N.role)==="url"||(N==null?void 0:N.role)==="url.blank"&&Q.ctrlKey?(Ce=this.states[o])!=null&&Ce.val&&typeof this.states[o].val=="string"&&window.open(this.states[o].val,"_blank"):(N==null?void 0:N.role)==="url.self"&&Q.ctrlKey&&(Ne=this.states[o])!=null&&Ne.val&&typeof this.states[o].val=="string"&&(window.location.href=this.states[o].val)}},ue):null,Ye=Y||this.columnsVisibility.buttons?n.createElement("div",{style:{...h.cellButtons,width:this.props.width!=="xs"?this.columnsVisibility.buttons:void 0}},this.renderColumnButtons(o,e)):null,Qt=null;if(this.props.width==="xs"&&this.state.focused===o){F=F.filter(X=>X);let Q;F.length?Q=F.map(X=>X?n.createElement("div",{key:X.type,style:h.cellDetailsLine},n.createElement("span",{style:h.cellDetailsName},this.texts[X.type],":"),X.el,n.createElement("div",{style:{flexGrow:1}}),X.onClick?n.createElement(m.Edit,{style:h.cellCopyButtonInDetails,onClick:()=>{X!=null&&X.onClick&&X.onClick()}}):null):null):Q=null,G.length||(G=null),Qt=n.createElement(g.Paper,{style:{width:"100%",display:"flex",flexDirection:"column",padding:10,backgroundColor:this.props.theme.palette.mode==="dark"?"#333":"#ccc"}},n.createElement("div",{style:h.cellDetailsLine},n.createElement("div",{style:{flexGrow:1}}),n.createElement($t,{style:h.cellCopyButtonInDetails,onClick:X=>this.onCopy(X,o)})),oe&&n.createElement("div",{style:h.cellDetailsLine},n.createElement("span",{style:h.cellDetailsName},this.texts.name,":"),oe,n.createElement("div",{style:{flexGrow:1}}),(nr=e.data)!=null&&nr.title?n.createElement($t,{className:"copyButton",style:h.cellCopyButtonInDetails,onClick:X=>{var Ce;return this.onCopy(X,(Ce=e.data)==null?void 0:Ce.title)}}):null),Q,G&&n.createElement("div",{style:h.cellDetailsLine},G),((ar=this.objects[o])==null?void 0:ar.type)==="state"&&n.createElement("div",{style:h.cellDetailsLine},n.createElement("span",{style:h.cellDetailsName},this.texts.value,":"),ke,n.createElement("div",{style:{flexGrow:1}}),n.createElement($t,{className:"copyButton",style:h.cellCopyButtonInDetails,onClick:X=>{const{valText:Ce}=bi({state:this.states[o],obj:this.objects[o],texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma});this.onCopy(X,Ce.c!==void 0?Ce.c:Ce.v.toString())},key:"cc"})),Ye&&n.createElement("div",{style:{...h.cellDetailsLine,justifyContent:"right"}},Ye)),oe=null,F=null,G=null,ke=null,Ye=null}return{row:n.createElement(g.Grid2,{container:!0,direction:"row",wrap:"nowrap",sx:S.getStyle(this.props.theme,h.tableRow,this.state.linesEnabled&&h.tableRowLines,!this.props.dragEnabled&&h.tableRowNoDragging,A&&h.tableRowAlias,E&&h.tableRowAliasReadWrite,this.state.focused===o&&this.props.multiSelect&&h.tableRowFocused,!e.data.visible&&h.filteredOut,e.data.hasVisibleParent&&!e.data.visible&&!e.data.hasVisibleChildren&&h.filteredParentOut,this.state.selected.includes(o)&&h.itemSelected,this.state.selectedNonObject===o&&h.itemSelected),key:o,id:o,onMouseDown:Q=>{this.onSelect(o);let X;"which"in Q?X=Q.which===3:"button"in Q&&(X=Q.button===2),X?this.contextMenu={item:e,ts:Date.now()}:this.contextMenu=null},onDoubleClick:()=>{e.children?this.toggleExpanded(o):this.onSelect(o,!0)}},V,oe,F==null?void 0:F.map(Q=>Q==null?void 0:Q.el),G,ke,Ye),details:Qt}}renderItem(e,t,s){const o=[];s=s||{count:0};const r=this.renderLeaf(e,t,s);let M;const a=this.props.DragWrapper;return this.props.dragEnabled&&a?e.data.sumVisibility?M=n.createElement(a,{key:e.data.id,item:e,style:h.draggable},r.row):M=n.createElement("div",{key:e.data.id,style:h.nonDraggable},r.row):M=r.row,e.data.id&&M&&o.push(M),r.details&&o.push(r.details),t=t===void 0?Is(this.state.expanded,e.data.id):t,(!e.data.id||t)&&(this.state.foldersFirst?e.children&&(o.push(e.children.map(u=>u.children&&(!this.state.columnsSelectorShow||s.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,s):null)),o.push(e.children.map(u=>!u.children&&(!this.state.columnsSelectorShow||s.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,s):null))):e.children&&o.push(e.children.map(u=>(!this.state.columnsSelectorShow||s.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,s):null))),o}calculateColumnsVisibility(e,t,s,o){let r=o||this.state.columnsWidths;const M=s||this.state.columnsForAdmin,a=t||this.state.columns||[],u=typeof e!="boolean"?this.state.columnsAuto:e;r=JSON.parse(JSON.stringify(r)),Object.keys(r).forEach(l=>{r[l]&&(r[l]=parseInt(r[l],10)||0)}),this.adapterColumns=[];const N=re[this.props.width||"lg"].widths;if(u){if(this.columnsVisibility={id:re[this.props.width||"lg"].idWidth,name:this.visibleCols.includes("name")&&N.name||0,nameHeader:this.visibleCols.includes("name")&&N.name||0,type:this.visibleCols.includes("type")&&N.type||0,role:this.visibleCols.includes("role")&&N.role||0,room:this.visibleCols.includes("room")&&N.room||0,func:this.visibleCols.includes("func")&&N.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&N.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&N.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&N.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&N.lastChange||0,val:this.visibleCols.includes("val")&&N.val||0,buttons:this.visibleCols.includes("buttons")&&N.buttons||0},this.columnsVisibility.name&&!this.customWidth){let l=this.columnsVisibility.id||0;this.state.statesView?(l+=this.columnsVisibility.changedFrom||0,l+=this.columnsVisibility.qualityCode||0,l+=this.columnsVisibility.timestamp||0,l+=this.columnsVisibility.lastChange||0):(l+=this.columnsVisibility.type||0,l+=this.columnsVisibility.role||0,l+=this.columnsVisibility.room||0,l+=this.columnsVisibility.func||0),l+=this.columnsVisibility.val||0,l+=this.columnsVisibility.buttons||0,this.columnsVisibility.name=`calc(100% - ${l+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${l+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let l=0;this.state.statesView?(l+=this.columnsVisibility.changedFrom||0,l+=this.columnsVisibility.qualityCode||0,l+=this.columnsVisibility.timestamp||0,l+=this.columnsVisibility.lastChange||0):(l+=this.columnsVisibility.type||0,l+=this.columnsVisibility.role||0,l+=this.columnsVisibility.room||0,l+=this.columnsVisibility.func||0),l+=this.columnsVisibility.val||0,l+=this.columnsVisibility.buttons||0,this.columnsVisibility.id=`calc(100% - ${l+5}px)`}}else{const l=this.props.width||"lg";this.columnsVisibility={id:r.id||re[l].idWidth,name:a.includes("name")&&(r.name||N.name||re[l].widths.name)||0,type:a.includes("type")&&(r.type||N.type||re[l].widths.type)||0,role:a.includes("role")&&(r.role||N.role||re[l].widths.role)||0,room:a.includes("room")&&(r.room||N.room||re[l].widths.room)||0,func:a.includes("func")&&(r.func||N.func||re[l].widths.func)||0};let c=this.columnsVisibility.id;if(this.columnsVisibility.name&&(c+=this.columnsVisibility.type||0,c+=this.columnsVisibility.role||0,c+=this.columnsVisibility.room||0,c+=this.columnsVisibility.func||0),M&&a&&Object.keys(M).sort().forEach(L=>M[L].forEach(j=>{const T=`_${L}_${j.path}`;if(a.includes(T)){const D={adapter:L,id:`_${L}_${j.path}`,name:j.name,path:j.path.split("."),pathText:j.path};j.edit&&(D.edit=!0,j.type&&(D.type=j.type),j.objTypes&&(D.objTypes=j.objTypes)),this.adapterColumns.push(D),this.columnsVisibility[T]=r[D.id]||j.width||re[l].widths.func||re.xl.widths.func||0,c+=this.columnsVisibility[T]}else this.columnsVisibility[T]=0})),this.adapterColumns.sort((L,j)=>L.id>j.id?-1:L.idT==="id"||typeof this.columnsVisibility[T]=="string"||!this.columnsVisibility[T]?j:j+this.columnsVisibility[T],0);this.columnsVisibility.id=`calc(100% - ${L}px)`}}}resizerMouseMove=e=>{if(this.resizerActiveDiv){let t,s;this.resizeLeft?(t=this.resizerOldWidth-e.clientX+this.resizerPosition,s=this.resizerOldWidthNext+e.clientX-this.resizerPosition):(t=this.resizerOldWidth+e.clientX-this.resizerPosition,s=this.resizerOldWidthNext-e.clientX+this.resizerPosition),this.resizerActiveName&&this.resizerNextName&&(!this.resizerMin||t>this.resizerMin)&&(!this.resizerNextMin||s>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=t,this.resizerCurrentWidths[this.resizerNextName]=s,this.resizerActiveDiv.style.width=`${t}px`,this.resizerNextDiv&&(this.resizerNextDiv.style.width=`${s}px`),this.columnsVisibility[this.resizerActiveName]=t,this.columnsVisibility[this.resizerNextName]=s,this.resizerNextName==="nameHeader"?(this.columnsVisibility.name=s-this.state.scrollBarWidth,this.resizerCurrentWidths.name=s-this.state.scrollBarWidth):this.resizerActiveName==="nameHeader"&&(this.columnsVisibility.name=t-this.state.scrollBarWidth,this.resizerCurrentWidths.name=t-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=null,this.forceUpdate()},200))}};resizerMouseUp=()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveName=null,this.resizerNextName=null,this.resizerActiveDiv=null,this.resizerNextDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{if(this.storedWidths||=JSON.parse(JSON.stringify(re[this.props.width||"lg"])),this.resizerCurrentWidths||={},this.resizerActiveDiv=e.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name||null,this.resizerActiveName){let t=0;if(e.target.dataset.left==="true"){this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let s=this.resizerNextDiv.querySelector(".iob-ob-resize-handler");for(;this.resizerNextDiv&&!s&&t<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,s=this.resizerNextDiv.querySelector(".iob-ob-resize-handler"),t++;(s==null?void 0:s.dataset.left)!=="true"&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name||null,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=e.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerNextName&&(this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName]),window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};navigateKeyPress(e){var s,o;const t=this.state.selectedNonObject||this.state.selected[0];if(t){if(e.code==="ArrowUp"||e.code==="ArrowDown"){e.preventDefault();const r=[];(s=this.tableRef.current)==null||s.childNodes.forEach(N=>r.push(N.id));const M=r.indexOf(t),a=e.code==="ArrowDown"?M+1:M-1,u=r[a]||t;this.onSelect(u),this.scrollToItem(u)}if((e.code==="ArrowRight"||e.code==="ArrowLeft")&&this.toggleExpanded(t),e.code==="Delete"&&this.root&&t){const r=We.getItemFromRoot(this.root,t);if(r){const{obj:M}=r.data;M&&!((o=M.common)!=null&&o.dontDelete)&&this.showDeleteDialog({id:t,obj:M,item:r})}}}}static getItemFromRoot(e,t){const s=t.split(".");let o="",r=e;for(let M=0;M{this.customWidth=!1,re[this.props.width||"lg"]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),this.localStorage.removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()};renderHandleRight(){return n.createElement(g.Box,{component:"div",className:"iob-ob-resize-handler",sx:{...h.resizeHandle,...h.resizeHandleRight},onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})}renderHeader(){let e=null;return!this.columnsVisibility.buttons&&!this.isFilterEmpty()&&(e=n.createElement(g.IconButton,{onClick:()=>this.clearFilter(),style:h.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large"},n.createElement(LNe,null),n.createElement(m.Close,{style:h.buttonClearFilterIcon}))),this.props.width==="xs"?n.createElement("div",{style:h.headerRow},n.createElement("div",{style:{...h.headerCell,width:"100%"}},this.getFilterInput("id"))):n.createElement("div",{style:h.headerRow},n.createElement("div",{style:{...h.headerCell,width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id"},this.getFilterInput("id"),this.renderHandleRight()),this.columnsVisibility.name?n.createElement("div",{style:{...h.headerCell,width:this.columnsVisibility.nameHeader,position:"relative"},"data-min":100,"data-name":"nameHeader"},this.getFilterInput("name"),this.renderHandleRight()):null,!this.state.statesView&&n.createElement(n.Fragment,null,this.columnsVisibility.type?n.createElement("div",{style:{...h.headerCell,width:this.columnsVisibility.type,position:"relative"},"data-min":100,"data-name":"type"},this.getFilterSelectType(),this.renderHandleRight()):null,this.columnsVisibility.role?n.createElement("div",{style:{...h.headerCell,width:this.columnsVisibility.role,position:"relative"},"data-min":100,"data-name":"role"},this.getFilterSelectRole(),this.renderHandleRight()):null,this.columnsVisibility.room?n.createElement("div",{style:{...h.headerCell,width:this.columnsVisibility.room,position:"relative"},"data-min":100,"data-name":"room"},this.getFilterSelectRoom(),this.renderHandleRight()):null,this.columnsVisibility.func?n.createElement("div",{style:{...h.headerCell,width:this.columnsVisibility.func,position:"relative"},"data-min":100,"data-name":"func"},this.getFilterSelectFunction(),this.renderHandleRight()):null),this.state.statesView&&n.createElement(n.Fragment,null,n.createElement("div",{style:{...h.headerCell,...h.headerCellValue,width:this.columnsVisibility.changedFrom,position:"relative"},"data-min":100,"data-name":"changedFrom"},this.props.t("ra_Changed from"),this.renderHandleRight()),n.createElement("div",{style:{...h.headerCell,...h.headerCellValue,width:this.columnsVisibility.qualityCode,position:"relative"},"data-min":100,"data-name":"qualityCode"},this.props.t("ra_Quality code"),this.renderHandleRight()),n.createElement("div",{style:{...h.headerCell,...h.headerCellValue,width:this.columnsVisibility.timestamp,position:"relative"},"data-min":100,"data-name":"timestamp"},this.props.t("ra_Timestamp"),this.renderHandleRight()),n.createElement("div",{style:{...h.headerCell,...h.headerCellValue,width:this.columnsVisibility.lastChange,position:"relative"},"data-min":100,"data-name":"lastChange"},this.props.t("ra_Last change"),this.renderHandleRight())),this.adapterColumns.map(t=>n.createElement("div",{style:{...h.headerCell,...h.headerCellValue,width:this.columnsVisibility[t.id]},title:t.adapter,key:t.id,"data-min":100,"data-name":t.id},t.name)),this.columnsVisibility.val?n.createElement("div",{style:{...h.headerCell,...h.headerCellValue,width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val"},this.props.t("ra_Value"),e):null,this.columnsVisibility.buttons?n.createElement("div",{title:this.texts.filter_custom,style:{...h.headerCell,width:this.columnsVisibility.buttons}}," ",this.getFilterSelectCustoms()):null)}renderToast(){return n.createElement(g.Snackbar,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:n.createElement(g.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""})},n.createElement(m.Close,{fontSize:"small"}))})}componentDidUpdate(){if(this.tableRef.current){const e=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==e?setTimeout(()=>this.setState({scrollBarWidth:e}),100):this.selectFirst&&this.scrollToItem(this.selectFirst)}}scrollToItem(e){this.selectFirst="";const t=window.document.getElementById(e);t==null||t.scrollIntoView({behavior:"auto",block:"center",inline:"center"})}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const e=this.props.objectCustomDialog;return n.createElement(e,{reportChangedIds:t=>this.changedIds=[...t],objectIDs:this.state.customDialog,allVisibleObjects:!!this.state.customDialogAll,expertMode:this.state.filter.expertMode,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,t:this.props.t,lang:this.props.lang,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objects:this.objects,customsInstances:this.info.customs,onClose:()=>{var t;this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),(t=this.props.router)==null||t.doNavigate("tab-objects")},systemConfig:this.systemConfig})}return null}onUpdate(e){this.props.socket.setState(this.edit.id,{val:e.val,ack:e.ack,q:e.q||0,expire:e.expire||void 0}).catch(t=>this.showError(`Cannot write value: ${t}`))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const e=this.props.objectBrowserEditObject;return n.createElement(e,{key:this.state.editObjectDialog,obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,dialogName:this.props.dialogName,aliasTab:this.state.editObjectAlias,t:this.props.t,expertMode:!!this.state.filter.expertMode,onNewObject:t=>this.props.socket.setObject(t._id,t).then(()=>this.setState({editObjectDialog:t._id,editObjectAlias:!1},()=>this.onSelect(t._id))).catch(s=>this.showError(`Cannot write object: ${s}`)),onClose:t=>{var s,o;if(t){let r;this.state.editObjectDialog.startsWith("alias.")&&JSON.stringify((s=this.objects[this.state.editObjectDialog].common)==null?void 0:s.alias)!==JSON.stringify((o=t.common)==null?void 0:o.alias)&&(r=this.state.editObjectDialog),this.props.socket.setObject(t._id,t).then(()=>{r&&this.subscribes.includes(r)&&(this.unsubscribe(r),setTimeout(()=>this.subscribe(r),100))}).catch(M=>this.showError(`Cannot write object: ${M}`))}this.setState({editObjectDialog:"",editObjectAlias:!1})},width:this.props.width})}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const e=this.props.objectBrowserViewFile;return n.createElement(e,{key:"viewFile",obj:this.objects[this.state.viewFileDialog],socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({viewFileDialog:""})})}renderAliasEditorDialog(){if(!this.props.objectBrowserAliasEditor||!this.state.showAliasEditor)return null;const e=this.props.objectBrowserAliasEditor;return n.createElement(e,{key:"editAlias",obj:this.objects[this.state.showAliasEditor],roleArray:this.info.roles,objects:this.objects,socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({showAliasEditor:""}),onRedirect:(t,s)=>setTimeout(()=>this.onSelect(t,!1,()=>this.expandAllSelected(()=>{this.scrollToItem(t),setTimeout(()=>this.setState({editObjectDialog:t,showAliasEditor:"",editObjectAlias:!0}),300)})),s||0)})}showAddDataPointDialog(e,t,s){this.setState({showContextMenu:null,modalNewObj:{id:e,initialType:t,initialStateType:s}})}renderAliasMenu(){return this.state.aliasMenu?n.createElement(g.Menu,{key:"aliasmenu",open:!0,anchorEl:window.document.getElementById(`alias_${this.state.aliasMenu}`),onClose:()=>this.setState({aliasMenu:""})},this.info.aliasesMap[this.state.aliasMenu].map((e,t)=>n.createElement(g.MenuItem,{key:e,onClick:()=>this.onSelect(e)},n.createElement(g.ListItemText,null,this.renderAliasLink(this.state.aliasMenu,t,{"& .admin-browser-arrow":{mr:"8px"}}))))):null}renderContextMenu(){var L,j,T,D,I,C,E;if(!this.state.showContextMenu)return null;const e=this.state.showContextMenu.item,t=e.data.id,s=[],o=e.data.obj;let r="";if(this.props.objectEditOfAccessControl&&this.state.filter.expertMode)if(!o)r="---";else{const A=o.acl?o.type==="state"?o.acl.state:o.acl.object:0,_=o.acl&&(o.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);r=Number.isNaN(Number(A))?Number(_).toString(16):Number(A).toString(16)}const M=!this.props.notEditable&&o&&(this.state.filter.expertMode||o.type==="state"||o.type==="channel"||o.type==="device"),a=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="channel"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",u=!e.data.obj||e.data.obj.type==="folder"||e.data.obj.type==="device"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",N=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",l=!e.data.obj||e.data.obj.type==="folder"||e.data.id==="0_userdata.0"||e.data.obj.type==="meta",c={EDIT:{key:"0",visibility:!!(this.props.objectBrowserEditObject&&o&&(this.state.filter.expertMode||We.isNonExpertId(t))),icon:n.createElement(m.Edit,{fontSize:"small",style:this.styles.contextMenuEdit}),label:this.texts.editObject,onClick:()=>this.setState({editObjectDialog:e.data.id,showContextMenu:null,editObjectAlias:!1})},EDIT_VALUE:{key:"1",visibility:!!(this.states&&!this.props.notEditable&&o&&o.type==="state"&&((L=o.common)==null?void 0:L.type)!=="file"&&(this.state.filter.expertMode||o.common.write!==!1)),icon:n.createElement(m.FormatItalic,{fontSize:"small",style:this.styles.contextMenuEditValue}),label:this.props.t("ra_Edit value"),onClick:()=>{var A;this.edit={val:this.states[t]?this.states[t].val:"",q:((A=this.states[t])==null?void 0:A.q)||0,ack:!1,id:t},this.setState({updateOpened:!0,showContextMenu:null})}},VIEW:{visibility:!!this.props.objectBrowserViewFile&&(o==null?void 0:o.type)==="state"&&((j=o.common)==null?void 0:j.type)==="file",icon:n.createElement(m.FindInPage,{fontSize:"small",style:this.styles.contextMenuView}),label:this.props.t("ra_View file"),onClick:()=>this.setState({viewFileDialog:(o==null?void 0:o._id)||"",showContextMenu:null})},CUSTOM:{key:"2",visibility:!(this.props.objectCustomDialog&&this.info.hasSomeCustoms&&o&&o.type==="state"&&((T=o.common)==null?void 0:T.type)!=="file"),icon:n.createElement(m.Settings,{fontSize:"small",style:e.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:h.cellButtonsButtonWithoutCustoms}),style:this.styles.contextMenuCustom,label:this.texts.customConfig,onClick:()=>{var A;this.pauseSubscribe(!0),(A=this.props.router)==null||A.doNavigate(null,"customs",t),this.setState({customDialog:[t],showContextMenu:null})}},ACL:{key:"3",visibility:!!r,icon:r,iconStyle:{fontSize:"smaller"},listItemIconStyle:this.styles.contextMenuACL,style:this.styles.contextMenuACL,label:this.props.t("ra_Edit ACL"),onClick:()=>this.setState({showContextMenu:null,modalEditOfAccess:!0,modalEditOfAccessObjData:e.data})},ROLE:{key:"4",visibility:!!(this.state.filter.expertMode&&M&&this.props.objectBrowserEditRole),icon:n.createElement(m.BorderColor,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit role"),onClick:()=>this.setState({roleDialog:e.data.id,showContextMenu:null})},FUNCTION:{key:"5",visibility:!!M,icon:n.createElement(m.BedroomParent,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit function"),onClick:()=>{const A=Wt(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:A,enumDialog:{item:e,type:"func",enumsOriginal:JSON.stringify(A)},showContextMenu:null})}},ROOM:{key:"6",visibility:!!M,icon:n.createElement(m.Construction,{fontSize:"small",style:this.styles.contextMenuRoom}),label:this.props.t("ra_Edit room"),onClick:()=>{const A=Wt(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:A,enumDialog:{item:e,type:"room",enumsOriginal:JSON.stringify(A)},showContextMenu:null})}},ALIAS:{key:"7",visibility:!!(!this.props.notEditable&&this.props.objectBrowserAliasEditor&&this.props.objectBrowserEditObject&&(o==null?void 0:o.type)==="state"&&((D=o.common)==null?void 0:D.type)!=="file"),icon:n.createElement(m.Link,{style:(I=o==null?void 0:o.common)!=null&&I.alias?this.styles.cellButtonsButtonWithCustoms:h.cellButtonsButtonWithoutCustoms}),label:this.info.aliasesMap[e.data.id]||e.data.id.startsWith("alias.0.")?this.props.t("ra_Edit alias"):this.props.t("ra_Create alias"),onClick:()=>{var A;(A=o==null?void 0:o.common)!=null&&A.alias?this.setState({showContextMenu:null,editObjectDialog:e.data.id,editObjectAlias:!0}):this.setState({showContextMenu:null,showAliasEditor:e.data.id})}},CREATE:{key:"+",visibility:(e.data.id.startsWith("0_userdata.0")||e.data.id.startsWith("javascript."))&&(a||u||N||l),icon:n.createElement(m.Add,{fontSize:"small",style:this.styles.cellButtonsButtonWithCustoms}),style:h.contextMenuWithSubMenu,label:this.texts.create,subMenu:[{label:this.texts.createBooleanState,visibility:a,icon:n.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","boolean")},{label:this.texts.createNumberState,visibility:a,icon:n.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","number")},{label:this.texts.createStringState,visibility:a,icon:n.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state","string")},{label:this.texts.createState,visibility:a,icon:n.createElement(gs,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"state")},{label:this.texts.createChannel,visibility:u,icon:n.createElement(Ia,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"channel")},{label:this.texts.createDevice,visibility:N,icon:n.createElement(wa,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(e.data.id,"device")},{label:this.texts.createFolder,icon:n.createElement(m.CreateNewFolder,{fontSize:"small"}),visibility:l,onClick:()=>this.showAddDataPointDialog(e.data.id,"folder")}]},RENAME:{key:"8",visibility:!!(!this.props.notEditable&&this.props.objectMoveRenameDialog&&!e.data.id.startsWith("system.")&&e.data.id.split(".").length>2&&(this.props.expertMode||e.data.id.startsWith("javascript.0.")||e.data.id.startsWith("0_userdata.0."))),icon:n.createElement(m.DriveFileRenameOutline,null),label:this.props.t("ra_Rename_Move_Copy"),onClick:()=>{const A=Object.keys(this.objects),_=`${e.data.id}.`;this.setState({showContextMenu:null,showRenameDialog:{id:e.data.id,childrenIds:A.filter(p=>p.startsWith(_))}})}},DELETE:{key:"Delete",visibility:!!(this.props.onObjectDelete&&((C=e.children)!=null&&C.length||o&&!((E=o.common)!=null&&E.dontDelete))),icon:n.createElement(m.Delete,{fontSize:"small",style:this.styles.contextMenuDelete}),style:this.styles.contextMenuDelete,label:this.texts.deleteObject,onClick:()=>this.setState({showContextMenu:null},()=>this.showDeleteDialog({id:t,obj:o||{},item:e}))}};return Object.keys(c).forEach(A=>{var _,p;c[A].visibility&&(c[A].subMenu?(s.push(n.createElement(g.MenuItem,{key:A,href:"",onClick:z=>this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position,subItem:A,subAnchor:z.target}}),style:c[A].style},n.createElement(g.ListItemIcon,{style:{...c[A].iconStyle,...c[A].listItemIconStyle}},c[A].icon),n.createElement(g.ListItemText,null,c[A].label,"..."),n.createElement("div",{style:{...h.contextMenuKeys,opacity:1}},n.createElement(m.ArrowRight,null)))),((_=this.state.showContextMenu)==null?void 0:_.subItem)===A&&s.push(n.createElement(g.Menu,{key:"subContextMenu",open:!0,anchorEl:this.state.showContextMenu.subAnchor,onClose:()=>{this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position}}),this.contextMenu=null}},(p=c[A].subMenu)==null?void 0:p.map(z=>z.visibility?n.createElement(g.MenuItem,{key:z.label,onClick:z.onClick,style:z.style},n.createElement(g.ListItemIcon,{style:{...z.iconStyle,...z.listItemIconStyle||void 0}},z.icon),n.createElement(g.ListItemText,null,z.label)):null)))):s.push(n.createElement(g.MenuItem,{key:A,onClick:c[A].onClick,sx:c[A].style},n.createElement(g.ListItemIcon,{style:{...c[A].iconStyle,...c[A].listItemIconStyle}},c[A].icon),n.createElement(g.ListItemText,null,c[A].label),c[A].key?n.createElement("div",{style:h.contextMenuKeys},`Alt+${c[A].key==="Delete"?this.props.t("ra_Del"):c[A].key}`):null)))}),s.length?n.createElement(g.Menu,{key:"contextMenu",open:!0,onKeyUp:A=>{A.preventDefault(),A.altKey&&Object.keys(c).forEach(_=>{A.key===c[_].key&&c[_].onClick&&c[_].onClick()})},anchorReference:"anchorPosition",anchorPosition:this.state.showContextMenu.position,onClose:()=>{this.setState({showContextMenu:null}),this.contextMenu=null}},s):(setTimeout(()=>this.setState({showContextMenu:null}),100),null)}renderEditValueDialog(){var o;if(!this.state.updateOpened||!this.props.objectBrowserValue)return null;if(!this.edit.id)return console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`),null;if(!this.objects[this.edit.id])return console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`),null;const e=(o=this.objects[this.edit.id].common)!=null&&o.type?this.objects[this.edit.id].common.type:typeof this.edit.val,t=this.objects[this.edit.id].common.role,s=this.props.objectBrowserValue;return n.createElement(s,{t:this.props.t,lang:this.props.lang,type:e,role:t||"",states:S.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,theme:this.props.theme,expertMode:!!this.state.filter.expertMode,value:this.edit.val,socket:this.props.socket,object:this.objects[this.edit.id],defaultHistory:this.defaultHistory,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:this.props.isFloatComma===void 0?this.systemConfig.common.isFloatComma:this.props.isFloatComma,onClose:r=>{this.setState({updateOpened:!1}),r&&this.onUpdate(r)},width:this.props.width})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer),this.styleTheme!==this.props.themeType&&(this.styles={cellIdIconFolder:S.getStyle(this.props.theme,h.cellIdIconFolder),cellIdIconDocument:S.getStyle(this.props.theme,h.cellIdIconDocument),iconDeviceError:S.getStyle(this.props.theme,h.iconDeviceError),iconDeviceConnected:S.getStyle(this.props.theme,h.iconDeviceConnected),iconDeviceDisconnected:S.getStyle(this.props.theme,h.iconDeviceDisconnected),cellButtonsButtonWithCustoms:S.getStyle(this.props.theme,h.cellButtonsButtonWithCustoms),invertedBackground:S.getStyle(this.props.theme,h.invertedBackground),invertedBackgroundFlex:S.getStyle(this.props.theme,h.invertedBackgroundFlex),contextMenuEdit:S.getStyle(this.props.theme,h.contextMenuEdit),contextMenuEditValue:S.getStyle(this.props.theme,h.contextMenuEditValue),contextMenuView:S.getStyle(this.props.theme,h.contextMenuView),contextMenuCustom:S.getStyle(this.props.theme,h.contextMenuCustom),contextMenuACL:S.getStyle(this.props.theme,h.contextMenuACL),contextMenuRoom:S.getStyle(this.props.theme,h.contextMenuRoom),contextMenuRole:S.getStyle(this.props.theme,h.contextMenuRole),contextMenuDelete:S.getStyle(this.props.theme,h.contextMenuDelete),filterInput:S.getStyle(this.props.theme,h.headerCellInput,h.filterInput),iconCopy:S.getStyle(this.props.theme,h.cellButtonsValueButton,h.cellButtonsValueButtonCopy),aliasReadWrite:S.getStyle(this.props.theme,h.cellIdAlias,h.cellIdAliasReadWrite),aliasAlone:S.getStyle(this.props.theme,h.cellIdAlias,h.cellIdAliasAlone)},this.styleTheme=this.props.themeType);const e=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==e&&this.objects&&this.root){const s={count:0};yo(this.root,this.state.filter,this.props.lang,this.objects,void 0,s,this.props.customFilter,this.props.types),s.count<500&&!this.state.expandAllVisible?setTimeout(()=>this.setState({expandAllVisible:!0})):s.count>=500&&this.state.expandAllVisible&&setTimeout(()=>this.setState({expandAllVisible:!1})),this.lastAppliedFilter=e}if(this.unsubscribeTimer=setTimeout(()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()},200),!this.state.loaded)return n.createElement(g.CircularProgress,{key:`${this.props.dialogName}_c`});const t=this.root?this.renderItem(this.root,void 0):null;return n.createElement(jNe,{key:this.props.dialogName},n.createElement("style",null,` @keyframes newValueAnimation-light { 0% { color: #00f900; @@ -453,7 +453,7 @@ body { text-decoration: underline; cursor: pointer; } -`),a.createElement(jNe,null,this.getToolbar()),a.createElement(LNe,null,this.renderHeader(),a.createElement(g.Box,{style:A.tableDiv,ref:this.tableRef,onKeyDown:s=>this.navigateKeyPress(s)},t)),this.renderContextMenu(),this.renderAliasMenu(),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderAliasEditorDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderRenameDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.state.modalEditOfAccessObjData&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}}const CNe=di()(We);class c4e extends a.Component{refTypo;height;width;constructor(e){super(e),this.state={closed:this.props.storeId?window.localStorage.getItem(this.props.storeId)==="true":!1},this.height=0,this.width=0,this.refTypo=a.createRef()}componentDidMount(){this.detectHeight()}onClick(){this.props.storeId&&this.props.closed===void 0&&(this.state.closed?window.localStorage.removeItem(this.props.storeId):window.localStorage.setItem(this.props.storeId,"true")),this.props.closed===void 0?this.setState({closed:!this.state.closed},()=>{this.props.onClose&&this.props.onClose(this.state.closed)}):this.props.onClose&&this.props.onClose(!this.props.closed)}detectHeight(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed;this.props.closeable&&!e&&this.refTypo.current&&window.requestAnimationFrame(()=>{(this.props.closed!==void 0?this.props.closed:this.state.closed)||this.refTypo.current&&(!this.height||this.width!==this.refTypo.current.clientWidth)&&(this.height=this.refTypo.current.clientHeight,this.width=this.refTypo.current.clientWidth,this.forceUpdate())})}componentDidUpdate(){this.detectHeight()}render(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed,t=e?m.Visibility:m.Close;return a.createElement(g.Box,{className:"iom-info-box",style:{whiteSpace:"preserve",display:"flex",gap:8,alignItems:e||this.props.iconPosition==="top"?"flex-start":"center",borderWidth:1,borderStyle:"solid",padding:4,borderRadius:5,marginBottom:8,maxWidth:"100%",transition:"height 0.5s",height:this.props.closeable?e?30:this.height||void 0:void 0,overflow:this.props.closeable?"hidden":void 0,position:"relative",...this.props.style},sx:{borderColor:s=>this.props.type==="ok"?s.palette.info.main:s.palette[this.props.type].main}},this.props.type==="ok"?a.createElement(m.Check,{style:{color:"#0F0"}}):this.props.type==="info"?a.createElement(m.Info,{color:"primary"}):a.createElement(m.Warning,{color:this.props.type}),a.createElement(g.Typography,{ref:this.refTypo},this.props.children),this.props.closeable?a.createElement(t,{sx:{color:s=>s.palette.mode==="dark"?"lightgray":"gray",cursor:"pointer",position:"absolute",top:4,right:4},onClick:()=>this.onClick()}):null,this.props.closeable?a.createElement("div",{style:{width:22}}):null,e?a.createElement(g.Box,{component:"div",sx:s=>{const o=s.palette[this.props.type==="ok"?"info":this.props.type].main;return{background:`linear-gradient(${o}00 0%, ${o}10 60%, ${o}90 100%)`}},style:{bottom:0,position:"absolute",left:0,right:0,height:10}}):null)}}const x={hr:{border:0,borderTop:"1px solid gray"},scrollWindow:{width:"100%",overflow:"auto",height:"calc(100% - 22px)"},rowDiv:{width:"100%"},modeDiv:{width:200,display:"inline-block",verticalAlign:"top"},settingsDiv:{display:"inline-block",verticalAlign:"top"},inputTime:{width:90,marginTop:0,marginLeft:5},inputDate:{width:140,marginTop:0,marginLeft:5},inputEvery:{width:40,marginLeft:5,marginRight:5},inputRadio:{padding:"4px 12px",verticalAlign:"top"},inputGroup:{maxWidth:400,display:"inline-block"},inputGroupElement:{width:120},inputDateDay:{width:60},inputDateDayCheck:{padding:4},inputSmallCheck:{padding:0},rowOnce:{},rowDays:i=>({background:i.palette.mode!=="dark"?"#ddeaff":"#4b5057"}),rowDows:i=>({background:i.palette.mode!=="dark"?"#DDFFDD":"#52646c"}),rowMonths:i=>({background:i.palette.mode!=="dark"?"#DDFFFF":"#1f5557"}),rowMonthsDates:i=>({background:i.palette.mode!=="dark"?"#EEFFFF":"#3c5737",maxWidth:600}),rowYears:i=>({background:i.palette.mode!=="dark"?"#fbffdd":"#574b33"}),rowDowsDows:i=>({background:i.palette.mode!=="dark"?"#EEFFEE":"#3d4c54",pl:"10px",pb:"10px"})},$i=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Js=["January","February","March","April","May","June","July","August","September","October","November","December"],Pi={minutes:"minutes",hours:"hours"},ns=["sunrise","sunriseEnd","goldenHourEnd","solarNoon","goldenHour","sunsetStart","sunset","dusk","nauticalDusk","night","nightEnd","nauticalDawn","dawn","nadir"];function Ve(i){return i<10?`0${i}`:`${i}`}const $M={time:{exactTime:!1,start:"00:00",end:"23:59",mode:"hours",interval:1},period:{once:"",days:1,dows:"",dates:"",weeks:0,months:"",years:0,yearMonth:0,yearDate:0},valid:{from:"",to:""}};function Wi(i){const e=i.split(".");return e.length===3?`${e[2]}-${e[1]}-${e[0]}`:""}class le extends b.Component{refFrom;refTo;refOnce;timerOnce=null;timerFrom=null;timerTo=null;constructor(e){super(e);let t;if(this.props.schedule&&typeof this.props.schedule=="string"&&this.props.schedule[0]==="{")try{t=JSON.parse(this.props.schedule)}catch{}else typeof this.props.schedule=="object"&&(t=this.props.schedule);(!t||!Object.keys(t).length)&&(setTimeout(()=>this.onChange(this.state.schedule,!0),200),t=$M),t={...$M,...t},t.valid.from=t.valid.from||le.now2string(),this.refFrom=a.createRef(),this.refTo=a.createRef(),this.refOnce=a.createRef(),this.state={schedule:t,desc:le.state2text(t)},JSON.stringify(t)!==this.props.schedule&&setTimeout(()=>this.props.onChange&&this.props.onChange(JSON.stringify(t)),100)}onChange(e,t){const s=JSON.stringify(e)!==JSON.stringify(this.state.schedule);if(t||s){s&&this.setState({schedule:e,desc:le.state2text(e)});const o=JSON.parse(JSON.stringify(e));if(o.period.once){const r=o.period.once;delete o.period,o.period={once:r},delete o.valid}else if(o.period.days){const r=o.period.days,M=o.period.dows;delete o.period,o.period={days:r},M&&M!=="[]"&&(o.period.dows=M)}else if(o.period.weeks){const r=o.period.weeks,M=o.period.dows;delete o.period,o.period={weeks:r},M&&M!=="[]"&&(o.period.dows=M)}else if(o.period.months){const r=o.period.months,M=o.period.dates;delete o.period,o.period={months:r},M&&M!=="[]"&&(o.period.dates=M)}else if(o.period.years){const r=o.period.years,M=o.period.yearMonth,n=o.period.yearDate;delete o.period,o.period={years:r,yearDate:n},M&&(o.period.yearMonth=M)}if(o.time.exactTime?(delete o.time.end,delete o.time.mode,delete o.time.interval):delete o.time.exactTime,o.valid){if(o.valid.to||delete o.valid.to,o.period.days===1||o.period.weeks===1||o.period.months===1||o.period.years===1){const r=le.string2date(o.valid.from),M=new Date;M.setHours(0),M.setMinutes(0),M.setSeconds(0),M.setMilliseconds(0),r<=M&&delete o.valid.from}!o.valid.from&&!o.valid.to&&delete o.valid}this.props.onChange&&this.props.onChange(JSON.stringify(o),le.state2text(e))}}static state2text(e){if(typeof e=="string")try{e=JSON.parse(e)}catch{return""}const t=[],s=le.string2date(e.valid.from);if(e.period.once){const o=le.string2date(e.period.once),r=new Date;if(r.setMilliseconds(0),r.setSeconds(0),r.setMinutes(0),r.setHours(0),od.t($i[M]));if(r.length===1)t.push(d.t("sch_desc_onWeekday",r[0]));else if(r.length===7)t.push(d.t("sch_desc_everyDay"));else{const M=r.pop();t.push(d.t("sch_desc_onWeekdays",r.join(", "),M))}}}else t.push(d.t("sch_desc_everyDay"));else t.push(d.t("sch_desc_everyNDay",e.period.days.toString()));else if(e.period.weeks)if(e.period.weeks===1?t.push(d.t("sch_desc_everyWeek")):t.push(d.t("sch_desc_everyNWeeks",e.period.weeks.toString())),e.period.dows){const o=JSON.parse(e.period.dows);if(o.length===2&&o[0]===0&&o[1]===6)t.push(d.t("sch_desc_onWeekends"));else if(o.length===5&&o[0]===1&&o[1]===2&&o[2]===3&&o[3]===4&&o[4]===5)t.push(d.t("sch_desc_onWorkdays"));else{const r=o.map(M=>d.t($i[M]));if(r.length===1)t.push(d.t("sch_desc_onWeekday",r[0]));else if(r.length===7)t.push(d.t("sch_desc_everyDay"));else{const M=r.pop();t.push(d.t("sch_desc_onWeekdays",r.join(", "),M))}}}else return d.t("sch_desc_never");else if(e.period.months){if(e.period.dates){const o=JSON.parse(e.period.dates);if(o.length===1)t.push(d.t("sch_desc_onDate",o[0]));else if(o.length===31)t.push(d.t("sch_desc_onEveryDate"));else if(o.length){const r=o.pop();t.push(d.t("sch_desc_onDates",o.join(", "),r))}else return d.t("sch_desc_never")}else t.push(d.t("sch_desc_onEveryDate"));if(e.period.months===1)t.push(d.t("sch_desc_everyMonth"));else if(typeof e.period.months=="number")t.push(d.t("sch_desc_everyNMonths",e.period.months.toString()));else{const r=JSON.parse(e.period.months).map(M=>d.t(Js[M-1]));if(!r.length)return d.t("sch_desc_never");if(r.length===1)t.push(d.t("sch_desc_onMonth",r[0]));else if(r.length===12)t.push(d.t("sch_desc_everyMonth"));else{const M=r.pop();t.push(d.t("sch_desc_onMonths",r.join(", "),M))}}}else e.period.years&&(e.period.years===1?t.push(d.t("sch_desc_everyYear")):t.push(d.t("sch_desc_everyNYears",e.period.years.toString())),t.push(d.t("sch_desc_onDate",e.period.yearDate.toString(),e.period.yearMonth?d.t(Js[e.period.yearMonth-1]):d.t("sch_desc_everyMonth"))));if(e.time.exactTime)ns.includes(e.time.start)?t.push(d.t("sch_desc_atTime",d.t(`sch_astro_${e.time.start}`))):t.push(d.t("sch_desc_atTime",e.time.start));else{e.time.mode===Pi.minutes?e.time.interval===1?t.push(d.t("sch_desc_everyMinute")):t.push(d.t("sch_desc_everyNMinutes",e.time.interval.toString())):e.time.interval===1?t.push(d.t("sch_desc_everyHour")):t.push(d.t("sch_desc_everyNHours",e.time.interval.toString()));const o=ns.indexOf(e.time.start)!==-1?d.t(`sch_astro_${e.time.start}`):e.time.start,r=ns.indexOf(e.time.end)!==-1?d.t(`sch_astro_${e.time.end}`):e.time.end;(o!=="00:00"||r!=="24:00"&&r!=="23:59")&&t.push(d.t("sch_desc_intervalFromTo",o,r))}return e.period.once||(s.getTime()>Date.now()&&e.valid.to?t.push(d.t("sch_desc_validFromTo",e.valid.from,e.valid.to)):s.getTime()>Date.now()?t.push(d.t("sch_desc_validFrom",e.valid.from)):e.valid.to&&t.push(d.t("sch_desc_validTo",e.valid.to))),t.join(" ")}getTimePeriodElements(){const e=this.state.schedule;let t=!1,s=!1,o=!1,r=!0;return e.time.start==="00:00"&&e.time.end==="24:00"?(t=!0,r=!1):e.time.start==="sunrise"?(s=!0,r=!1):e.time.start==="sunset"&&(o=!0,r=!1),a.createElement("div",{key:"timePeriod",style:x.rowDiv},a.createElement("div",{style:x.modeDiv},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!e.time.exactTime,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.exactTime=!1,this.onChange(M)}}),label:d.t("sch_intervalTime")})),a.createElement("div",{style:x.settingsDiv},a.createElement("div",{style:x.settingsDiv},!e.time.exactTime&&a.createElement("div",null,a.createElement("div",null,a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!r,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="00:00",M.time.end="23:59",this.onChange(M)}}),label:r?"":d.t("sch_fromTo")}),r&&[a.createElement(g.TextField,{variant:"standard",style:{...x.inputTime,marginRight:10},key:"exactTimeFrom",type:"time",sx:M=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:M.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.start,onChange:M=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.start=M.target.value,this.onChange(n)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_from"),margin:"normal"}),a.createElement(g.TextField,{variant:"standard",style:x.inputTime,key:"exactTimeTo",type:"time",sx:M=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:M.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.end,onChange:M=>{const n=JSON.parse(JSON.stringify(this.state.schedule));n.time.end=M.target.value,this.onChange(n)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_to"),margin:"normal"})])),!e.time.exactTime&&a.createElement("div",null,a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!t,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="00:00",M.time.end="24:00",this.onChange(M)}}),label:d.t("sch_wholeDay")})),!e.time.exactTime&&a.createElement("div",null,a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!s,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="sunrise",M.time.end="sunset",this.onChange(M)}}),label:d.t("sch_astroDay")})),!e.time.exactTime&&a.createElement("div",null,a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!o,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="sunset",M.time.end="sunrise",this.onChange(M)}}),label:d.t("sch_astroNight")}))),!e.time.exactTime&&this.getPeriodSettingsMinutes(r)))}getTimeExactElements(){const e=ns.includes(this.state.schedule.time.start);return a.createElement("div",{key:"timeExact",style:x.rowDiv},a.createElement("div",{style:x.modeDiv},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!this.state.schedule.time.exactTime,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.time.exactTime=!0,this.onChange(t)}}),label:d.t("sch_exactTime")})),this.state.schedule.time.exactTime&&a.createElement(g.Select,{variant:"standard",value:e?this.state.schedule.time.start:"00:00",onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.start=t.target.value,this.onChange(s)}},a.createElement(g.MenuItem,{key:"specific",value:"00:00"},d.t("sch_specificTime")),ns.map(t=>a.createElement(g.MenuItem,{key:t,value:t},d.t(`sch_astro_${t}`)))),this.state.schedule.time.exactTime&&!e&&a.createElement("div",{style:x.settingsDiv},a.createElement(g.TextField,{variant:"standard",style:x.inputTime,key:"exactTimeValue",value:this.state.schedule.time.start,type:"time",sx:t=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:t.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.start=t.target.value,this.onChange(s)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}static getDivider(){return a.createElement("hr",{style:x.hr})}getPeriodModes(){const e=this.state.schedule,t=!e.period.dows&&!e.period.months&&!e.period.dates&&!e.period.years&&!e.period.days&&!e.period.weeks;return t&&!e.period.once&&(e.period.once=le.now2string(!0)),[a.createElement("div",{key:"once",style:{...x.rowDiv,...x.rowOnce}},a.createElement("div",{style:x.modeDiv},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!t,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.once=s.period.once||le.now2string(!0),s.period.dows="",s.period.months="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.days=0,this.onChange(s)}}),label:d.t("sch_periodOnce")})),t&&a.createElement("div",{style:x.settingsDiv},a.createElement(g.TextField,{variant:"standard",style:x.inputDate,type:"date",ref:this.refOnce,key:"exactDateAt",defaultValue:Wi(e.period.once),onChange:s=>{this.timerOnce&&clearTimeout(this.timerOnce),this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="#ff000030"),this.timerOnce=setTimeout(o=>{this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),M=le.string2date(o);M.toString()!=="Invalid Date"&&(r.period.once=`${Ve(M.getDate())}.${Ve(M.getMonth()+1)}.${M.getFullYear()}`,this.onChange(r))},1500,s.target.value)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_at"),margin:"normal"}))),a.createElement(g.Box,{component:"div",key:"days",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowDays)},a.createElement("div",{style:x.modeDiv},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.days,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.days=1,s.period.dows="",s.period.months="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodDaily")})),a.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsDaily(),e.period.days?this.getPeriodSettingsWeekdays():null)),a.createElement(g.Box,{component:"div",key:"weeks",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowDows)},a.createElement("div",{style:x.modeDiv},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.weeks,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.weeks=e.period.weeks?0:1,s.period.dows=e.period.dows||"[0]",s.period.months="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodWeekly")})),a.createElement(g.Box,{component:"div",style:x.settingsDiv},a.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsWeekly()),a.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,x.settingsDiv,x.rowDowsDows)},this.state.schedule.period.weeks?this.getPeriodSettingsWeekdays():null))),a.createElement(g.Box,{component:"div",key:"months",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowMonths)},a.createElement("div",{style:x.modeDiv},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.months,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months=1,s.period.dows="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodMonthly")})),a.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsMonthly(),e.period.months?a.createElement(g.Box,null,a.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,x.settingsDiv,x.rowMonthsDates)},a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{style:x.inputRadio,checked:!!e.period.dates,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months=s.period.months||1;const o=[];for(let r=1;r<=31;r++)o.push(r);s.period.dates=s.period.dates||JSON.stringify(o),s.period.dows="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodDates")})),a.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,x.settingsDiv,x.rowMonthsDates)},this.getPeriodSettingsDates())):null)),a.createElement(g.Box,{component:"div",key:"years",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowYears)},a.createElement("div",{style:x.modeDiv},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.years,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.years=1,s.period.yearDate=1,s.period.yearMonth=1,s.period.dows="",s.period.months=0,s.period.dates="",s.period.weeks=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodYearly")})),a.createElement("div",{style:x.settingsDiv},a.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsYearly()),!!e.period.years&&a.createElement("div",{style:x.settingsDiv},a.createElement("span",null,d.t("sch_on")),a.createElement(g.Input,{key:"input",value:this.state.schedule.period.yearDate,style:x.inputEvery,type:"number",inputProps:{min:1,max:31},onChange:s=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.yearDate=parseInt(s.target.value,10),o.period.yearDate<1&&(o.period.yearDate=31),o.period.yearDate>31&&(o.period.yearDate=1),this.onChange(o)}}),a.createElement(g.Select,{variant:"standard",value:e.period.yearMonth,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.yearMonth=s.target.value,this.onChange(o)}},a.createElement(g.MenuItem,{key:"every",value:0},d.t("sch_yearEveryMonth")),Js.map((s,o)=>a.createElement(g.MenuItem,{key:s,value:o+1},d.t(s)))))))]}getPeriodSettingsMinutes(e){return a.createElement("div",{style:{display:"inline-block",marginTop:e?15:"inherit"}},a.createElement("label",{style:{marginLeft:4,marginRight:4}},d.t("sch_every")),a.createElement(g.Input,{value:this.state.schedule.time.interval,style:{...x.inputEvery,verticalAlign:"bottom"},type:"number",inputProps:{min:1},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.interval=parseInt(t.target.value,10),this.onChange(s)}}),a.createElement(g.Select,{variant:"standard",value:this.state.schedule.time.mode,onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.mode=t.target.value,this.onChange(s)}},a.createElement(g.MenuItem,{value:Pi.minutes},d.t("sch_periodMinutes")),a.createElement(g.MenuItem,{value:Pi.hours},d.t("sch_periodHours"))))}getPeriodSettingsWeekdays(){const e=this.state.schedule,t=e.period.dows&&e.period.dows!=="[1, 2, 3, 4, 5]"&&e.period.dows!=="[0, 6]";return[a.createElement("div",{key:"workdays"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.dows==="[1, 2, 3, 4, 5]",onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.dows="[1, 2, 3, 4, 5]",s.period.days&&(s.period.days=1),this.onChange(s)}}),label:d.t("sch_periodWorkdays")})),a.createElement("div",{key:"weekend"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.dows==="[0, 6]",onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.dows="[0, 6]",s.period.days&&(s.period.days=1),this.onChange(s)}}),label:d.t("sch_periodWeekend")})),a.createElement("div",{key:"specific",style:{verticalAlign:"top"}},a.createElement(g.FormControlLabel,{style:{verticalAlign:"top"},control:a.createElement(g.Radio,{style:x.inputRadio,checked:!!t,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.dows="[0, 1, 2, 3, 4, 5, 6]",s.period.days&&(s.period.days=1),this.onChange(s)}}),label:d.t("sch_periodWeekdays")}),t&&(e.period.days===1||e.period.weeks)&&a.createElement(g.FormGroup,{row:!0,style:{...x.inputGroup,width:150}},[1,2,3,4,5,6,0].map(s=>a.createElement(g.FormControlLabel,{key:`specific_${s}`,style:x.inputGroupElement,control:a.createElement(g.Checkbox,{style:x.inputSmallCheck,checked:e.period.dows.includes(s.toString()),onChange:o=>{const r=JSON.parse(JSON.stringify(this.state.schedule));let M;try{M=JSON.parse(r.period.dows)}catch{M=[]}o.target.checked&&!M.includes(s)?M.push(s):!o.target.checked&&M.includes(s)&&M.splice(M.indexOf(s),1),M.sort((n,u)=>n-u),r.period.dows=JSON.stringify(M),r.period.days&&(r.period.days=1),this.onChange(r)}}),label:d.t($i[s])}))))]}getPeriodSettingsDaily(){if(!this.state.schedule.period.days)return null;const e=this.state.schedule;return[a.createElement("div",{key:"every_day"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.days===1&&!e.period.dows,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=1,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEveryDay")})),a.createElement("div",{key:"everyN_day"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.days>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=2,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.days>1&&[a.createElement(g.Input,{key:"input",value:this.state.schedule.period.days,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.days=parseInt(t.target.value,10),s.period.dows="",this.onChange(s)}}),a.createElement("span",{key:"span",style:{paddingRight:10}},d.t("sch_periodDay"))])]}getPeriodSettingsWeekly(){if(!this.state.schedule.period.weeks)return null;const e=this.state.schedule;return[a.createElement("div",{key:"radios",style:{display:"inline-block",verticalAlign:"top"}},a.createElement("div",null,a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.weeks===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=1,this.onChange(t)}}),label:d.t("sch_periodEveryWeek")})),a.createElement("div",null,a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.weeks>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.weeks>1&&[a.createElement(g.Input,{key:"input",value:this.state.schedule.period.weeks,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.weeks=parseInt(t.target.value,10),this.onChange(s)}}),a.createElement("span",{key:"text"},d.t("sch_periodWeek"))]))]}getPeriodSettingsDates(){if(!this.state.schedule.period.dates)return null;const e=this.state.schedule,t=[];for(let o=1;o<=31;o++)t.push(o);const s=JSON.parse(e.period.dates);return a.createElement(g.FormGroup,{row:!0,style:{...x.inputGroup,maxWidth:620}},a.createElement(g.FormControlLabel,{style:x.inputDateDay,control:a.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:s.length===31,onChange:()=>{const o=JSON.parse(JSON.stringify(this.state.schedule)),r=[];for(let M=1;M<=31;M++)r.push(M);o.period.dates=JSON.stringify(r),this.onChange(o)}}),label:d.t("sch_all")}),a.createElement(g.FormControlLabel,{style:x.inputDateDay,control:a.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!s.length,onChange:()=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.dates="[]",this.onChange(o)}}),label:d.t("sch_no_one")}),s.length!==31&&!!s.length&&a.createElement(g.FormControlLabel,{style:x.inputDateDay,control:a.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!1,onChange:()=>{const o=JSON.parse(JSON.stringify(this.state.schedule)),r=[],M=JSON.parse(o.period.dates);for(let n=1;n<=31;n++)M.includes(n)||r.push(n);r.sort((n,u)=>n-u),o.period.dates=JSON.stringify(r),this.onChange(o)}}),label:d.t("sch_invert")}),a.createElement("div",null),t.map(o=>a.createElement(g.FormControlLabel,{key:`date_${o}`,style:o?x.inputDateDay:{...x.inputDateDay,opacity:0,cursor:"default",userSelect:"none",pointerEvents:"none"},control:a.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:JSON.parse(e.period.dates).includes(o),onChange:r=>{const M=JSON.parse(JSON.stringify(this.state.schedule));let n;try{n=JSON.parse(M.period.dates)}catch{n=[]}r.target.checked&&!n.includes(o)?n.push(o):!r.target.checked&&n.includes(o)&&n.splice(n.indexOf(o),1),n.sort((u,N)=>u-N),M.period.dates=JSON.stringify(n),this.onChange(M)}}),label:o<10?[a.createElement("span",{key:"0",style:{opacity:0}},"0"),a.createElement("span",{key:"num"},o)]:o})))}getPeriodSettingsMonthly(){if(!this.state.schedule.period.months)return null;const e=this.state.schedule,t=typeof e.period.months=="string"?JSON.parse(e.period.months):[];return[a.createElement("div",{key:"every"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:typeof e.period.months=="number"&&e.period.months===1,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months=1,this.onChange(e)}}),label:d.t("sch_periodEveryMonth")})),a.createElement("div",{key:"everyN"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:typeof e.period.months=="number"&&e.period.months>1,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months=2,this.onChange(s)}}),label:d.t("sch_periodEvery")}),typeof e.period.months=="number"&&e.period.months>1&&[a.createElement(g.Input,{key:"input",value:e.period.months,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:s=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.months=parseInt(s.target.value,10),o.period.months<1&&(o.period.months=1),this.onChange(o)}}),a.createElement("span",{key:"text"},d.t("sch_periodMonth"))]),a.createElement("div",{key:"specific",style:{verticalAlign:"top"}},a.createElement(g.FormControlLabel,{style:{verticalAlign:"top"},control:a.createElement(g.Radio,{style:x.inputRadio,checked:typeof e.period.months=="string",onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months="[1,2,3,4,5,6,7,8,9,10,11,12]",this.onChange(s)}}),label:d.t("sch_periodSpecificMonths")}),typeof e.period.months=="string"&&a.createElement(g.FormGroup,{row:!0,style:x.inputGroup},a.createElement(g.FormControlLabel,{style:x.inputDateDay,control:a.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:t.length===12,onChange:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule)),o=[];for(let r=1;r<=12;r++)o.push(r);s.period.months=JSON.stringify(o),this.onChange(s)}}),label:d.t("sch_all")}),a.createElement(g.FormControlLabel,{style:x.inputDateDay,control:a.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!t.length,onChange:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months="[]",this.onChange(s)}}),label:d.t("sch_no_one")}),t.length!==12&&!!t.length&&a.createElement(g.FormControlLabel,{style:x.inputDateDay,control:a.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!1,onChange:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule)),o=[],r=JSON.parse(s.period.months);for(let M=1;M<=12;M++)r.includes(M)||o.push(M);o.sort((M,n)=>M-n),s.period.months=JSON.stringify(o),this.onChange(s)}}),label:d.t("sch_invert")}),a.createElement("div",null),Js.map((s,o)=>a.createElement(g.FormControlLabel,{key:`month_${o}`,style:x.inputGroupElement,control:a.createElement(g.Checkbox,{style:x.inputSmallCheck,checked:typeof e.period.months=="string"?JSON.parse(e.period.months).includes(o+1):e.period.months===o,onChange:r=>{const M=JSON.parse(JSON.stringify(this.state.schedule));let n;try{n=JSON.parse(M.period.months)}catch{n=[]}r.target.checked&&!n.includes(o+1)?n.push(o+1):!r.target.checked&&n.includes(o+1)&&n.splice(n.indexOf(o+1),1),n.sort((u,N)=>u-N),M.period.months=JSON.stringify(n),this.onChange(M)}}),label:d.t(s)}))))]}getPeriodSettingsYearly(){if(!this.state.schedule.period.years)return null;const e=this.state.schedule;return[a.createElement("div",{key:"year"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.years===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=1,this.onChange(t)}}),label:d.t("sch_periodEveryYear")})),a.createElement("div",{key:"every"},a.createElement(g.FormControlLabel,{control:a.createElement(g.Radio,{style:x.inputRadio,checked:e.period.years>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.years>1&&[a.createElement(g.Input,{key:"input",value:this.state.schedule.period.years,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.years=parseInt(t.target.value,10),s.period.years<1&&(s.period.years=1),this.onChange(s)}}),a.createElement("span",{key:"text"},d.t("sch_periodYear"))])]}static now2string(e){const t=new Date;return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),e&&(t.setDate(t.getDate()+2),t.setMilliseconds(t.getMilliseconds()-1)),`${Ve(t.getDate())}.${Ve(t.getMonth()+1)}.${Ve(t.getFullYear())}`}static string2date(e){let t=e.split(".");return t.length===1?(t=e.split("-"),new Date(parseInt(t[0],10),parseInt(t[1],10)-1,parseInt(t[2],10))):new Date(parseInt(t[2],10),parseInt(t[1],10)-1,parseInt(t[0],10))}getValidSettings(){const e=this.state.schedule;return a.createElement("div",{style:x.rowDiv},a.createElement("div",{style:{...x.modeDiv,verticalAlign:"middle"}},a.createElement("span",{style:{fontWeight:"bold",paddingRight:10}},d.t("sch_valid")),a.createElement("span",null,d.t("sch_validFrom"))),a.createElement("div",{style:x.settingsDiv},a.createElement(g.TextField,{variant:"standard",style:{...x.inputDate,marginRight:10},key:"exactTimeFrom",inputRef:this.refFrom,defaultValue:Wi(e.valid.from),type:"date",onChange:t=>{this.timerFrom&&clearTimeout(this.timerFrom),this.refFrom.current&&(this.refFrom.current.style.background="#ff000030"),this.timerFrom=setTimeout(s=>{this.timerFrom=null,this.refFrom.current&&(this.refFrom.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),r=le.string2date(s);r.toString()!=="Invalid Date"&&(o.valid.from=`${Ve(r.getDate())}.${Ve(r.getMonth()+1)}.${r.getFullYear()}`,this.onChange(o))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}),a.createElement(g.FormControlLabel,{control:a.createElement(g.Checkbox,{style:x.inputRadio,checked:!!e.valid.to,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.valid.to=t.valid.to?"":le.now2string(!0),this.onChange(t)}}),label:d.t("sch_validTo")}),!!e.valid.to&&a.createElement(g.TextField,{variant:"standard",inputRef:this.refTo,style:{...x.inputDate,marginRight:10},key:"exactTimeFrom",type:"date",defaultValue:Wi(e.valid.to),onChange:t=>{this.timerTo&&clearTimeout(this.timerTo),this.refTo.current&&(this.refTo.current.style.background="#ff000030"),this.timerTo=setTimeout(s=>{this.timerTo=null,this.refTo.current&&(this.refTo.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),r=le.string2date(s);r.toString()!=="Invalid Date"&&(o.valid.to=`${Ve(r.getDate())}.${Ve(r.getMonth()+1)}.${r.getFullYear()}`,this.onChange(o))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}render(){return a.createElement("div",{style:{height:"calc(100% - 48px)",width:"100%",overflow:"hidden"}},a.createElement("div",null,this.state.desc),a.createElement("div",{style:x.scrollWindow},a.createElement("h5",null,d.t("sch_time")),this.getTimePeriodElements(),this.getTimeExactElements(),le.getDivider(),a.createElement("h5",null,d.t("sch_period")),this.getPeriodModes(),!this.state.schedule.period.once&&le.getDivider(),!this.state.schedule.period.once&&this.getValidSettings()))}}const Bs={different:{opacity:.5},icon:{width:16,height:16,marginRight:8}};class u4e extends b.Component{wordDifferent;timeout=null;constructor(e){super(e),e.different&&(this.wordDifferent=e.t("ra___different__"));let t;Array.isArray(e.list)?t=e.list.filter(s=>(s==null?void 0:s._id)&&s.common).map(s=>{var o,r;return{name:S.getObjectNameFromObj(s,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:s._id,icon:(o=s.common)==null?void 0:o.icon,color:(r=s.common)==null?void 0:r.color}}):t=Object.values(e.list).filter(s=>(s==null?void 0:s._id)&&s.common).map(s=>{var o,r;return{name:S.getObjectNameFromObj(s,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:s._id,icon:(o=s.common)==null?void 0:o.icon,color:(r=s.common)==null?void 0:r.color}}),e.different&&e.value===e.different&&t.unshift({value:e.different,name:this.wordDifferent||""}),e.allowNone&&t.unshift({value:"",name:d.t("ra_none")}),this.state={list:t}}render(){this.props.allowNone&&!this.state.list.find(o=>o.value==="")?this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const o=JSON.parse(JSON.stringify(this.state.list));o.unshift({value:"",name:d.t("ra_none")}),this.setState({list:o})},100):!this.props.allowNone&&this.state.list.find(o=>o.value==="")&&(this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const o=JSON.parse(JSON.stringify(this.state.list)),r=this.state.list.findIndex(M=>M.value==="");o.splice(r,1),this.setState({list:o})},100));const e=this.state.list.find(o=>o.value===this.props.value||this.props.removePrefix&&o.value.replace(this.props.removePrefix,"")===this.props.value),t=this.props.value===this.props.different?{}:{color:(e==null?void 0:e.color)||void 0,backgroundColor:S.getInvertedColor((e==null?void 0:e.color)||"",this.props.themeType)};this.props.dense&&this.props.style&&Object.assign(t,this.props.style);const s=a.createElement(g.Select,{variant:"standard",disabled:this.props.disabled,value:this.props.value,slotProps:{input:this.props.inputProps},renderValue:()=>a.createElement("span",null,e!=null&&e.icon?a.createElement(Ie,{src:e==null?void 0:e.icon,style:Bs.icon}):null,e==null?void 0:e.name),sx:{"&.MuiSelect-root":this.props.value===this.props.different?Bs.different:{}},classes:{root:this.props.dense?this.props.className:""},style:t,onChange:o=>{if(this.props.different&&o.target.value!==this.props.different){let r=null;for(let M=0;Mthis.props.onChange(o.target.value));return}}this.props.onChange(this.props.removePrefix?o.target.value.replace(this.props.removePrefix,""):o.target.value)}},this.state.list.map(o=>a.createElement(g.MenuItem,{style:this.props.different&&o.value===this.props.different?Bs.different:{color:o.color||void 0,backgroundColor:S.getInvertedColor(o.color||"",this.props.themeType)},key:o.value,value:o.value},o.icon?a.createElement(Ie,{src:o.icon,style:Bs.icon}):null,o.name)));return this.props.dense?s:a.createElement(g.FormControl,{variant:"standard",fullWidth:!!this.props.fullWidth,style:this.props.style,className:this.props.className},a.createElement(g.InputLabel,null,this.props.label),s)}}class N4e extends b.Component{resizerRefTable;resizerActiveIndex;resizerActiveDiv;resizerCurrentWidths;widthFilled=!1;installTimeout=null;resizerMin=0;resizerMinNext=0;resizerPosition=0;resizerOldWidth=0;resizerOldWidthNext=0;constructor(e){super(e),this.resizerRefTable=a.createRef(),this.resizerActiveIndex=null,this.resizerActiveDiv=null,this.resizerCurrentWidths=[]}componentDidMount(){this.resizerInstall()}componentWillUnmount(){this.resizerUninstall()}resizerInstall(){if(this.resizerRefTable.current&&!this.resizerRefTable.current._installed){this.resizerRefTable.current._installed=!0;const e=this.resizerRefTable.current.querySelectorAll("th"),t=(window._localStorage||window.localStorage).getItem(`App.${this.props.name||"history"}.table`);if(this.widthFilled=!1,t)try{this.resizerCurrentWidths=JSON.parse(t),this.widthFilled=!0}catch{}if(this.widthFilled)if(this.resizerCurrentWidths.length!==e.length)this.resizerCurrentWidths=[],this.widthFilled=!1;else{const s=this.resizerRefTable.current.offsetWidth;let o=0;for(let r=0;r20&&(this.resizerCurrentWidths=[],this.widthFilled=!1)}for(let s=0;s{this.installTimeout=null,this.resizerInstall()},100)}resizerReset=()=>{for(let e=0;e{if(this.resizerActiveDiv&&this.resizerActiveIndex!==null){const t=this.resizerOldWidth+e.clientX-this.resizerPosition,s=this.resizerOldWidthNext-e.clientX+this.resizerPosition;(!this.resizerMin||t>this.resizerMin)&&(!this.resizerMinNext||s>this.resizerMinNext)&&(this.resizerCurrentWidths[this.resizerActiveIndex]=t,this.resizerCurrentWidths[this.resizerActiveIndex+1]=s,this.resizerApplyWidths())}};resizerMouseUp=()=>{(window._localStorage||window.localStorage).setItem(`App.${this.props.name||"history"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveIndex=null,this.resizerActiveDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{var t,s,o,r;if(this.resizerActiveIndex===null||this.resizerActiveIndex===void 0){console.log(`Mouse down ${(t=e.target)==null?void 0:t.dataset.index}`),this.resizerActiveIndex=parseInt(((s=e.target)==null?void 0:s.dataset.index)||"0",10),this.resizerActiveDiv=e.target,this.resizerMin=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex]:0,this.resizerMinNext=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex+1]:0,this.resizerPosition=e.clientX;let M;this.resizerCurrentWidths[this.resizerActiveIndex]==="auto"&&(M=(o=this.resizerRefTable.current)==null?void 0:o.querySelectorAll("th"),M&&(this.resizerCurrentWidths[this.resizerActiveIndex]=M[this.resizerActiveIndex].offsetWidth)),this.resizerCurrentWidths[this.resizerActiveIndex+1]==="auto"&&(M=M||((r=this.resizerRefTable.current)==null?void 0:r.querySelectorAll("th")),M&&(this.resizerCurrentWidths[this.resizerActiveIndex+1]=M[this.resizerActiveIndex+1].offsetWidth)),this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveIndex],this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerActiveIndex+1],window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};render(){if(this.props.ready===!1)return a.createElement(g.Skeleton,null);const e={gridTemplateColumns:this.resizerApplyWidths()};return a.createElement(g.Table,{stickyHeader:this.props.stickyHeader,size:this.props.size||"small",className:this.props.className,sx:this.props.sx,ref:this.resizerRefTable,style:{...this.props.style||void 0,...e}},this.props.children)}}const Ri={div:{borderRadius:3,padding:"0 3px",lineHeight:"20px",whiteSpace:"nowrap",overflow:"hidden",display:"flex",alignItems:"center"},icon:{width:16,height:16,marginRight:8,verticalAlign:"middle"},text:{display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}};function l4e(i){var r,M,n,u,N,l,c,L,j;const e=i.value;let t;const s=i.removePrefix||"";if(typeof e=="string"){const T=i.list;if(T)if(Array.isArray(T)){const D=T.find(z=>(z==null?void 0:z._id)===s+e);D?t={name:S.getObjectNameFromObj(D,i.lang).replace("system.group.",""),value:D._id,icon:i.icon||((r=D.common)==null?void 0:r.icon),color:i.color||((M=D.common)==null?void 0:M.color)}:t={name:e,value:s+e}}else if(T[s+e]){const D=T[s+e];t={name:S.getObjectNameFromObj(D,i.lang).replace("system.group.",""),value:D._id,icon:i.icon||((n=D.common)==null?void 0:n.icon),color:i.color||((u=D.common)==null?void 0:u.color)}}else t={name:e,value:s+e,icon:i.icon,color:i.color};else t={name:e,value:s+e,icon:i.icon,color:i.color}}else if(!e||typeof e!="object")t={name:"",value:"",icon:i.icon,color:i.color};else{const T=e;t={name:S.getObjectNameFromObj(T,i.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:T._id,icon:i.icon||((N=T.common)==null?void 0:N.icon),color:i.color||((l=T.common)==null?void 0:l.color)}}const o=t!=null&&t.color?{border:`1px solid ${S.invertColor(t==null?void 0:t.color)}`,color:S.getInvertedColor(t==null?void 0:t.color,i.themeType||"light",!0)||void 0,backgroundColor:t==null?void 0:t.color}:{};return a.createElement("div",{style:{...i.style||void 0,...Ri.div,...o||void 0},className:S.clsx(i.className,(c=i.moreClasses)==null?void 0:c.root),title:i.title||t.value},t!=null&&t.icon?a.createElement(Ie,{src:t==null?void 0:t.icon,className:(L=i.moreClasses)==null?void 0:L.icon,style:Ri.icon}):null,a.createElement("div",{style:Ri.text,className:(j=i.moreClasses)==null?void 0:j.text},t==null?void 0:t.name))}function L4e({themeName:i,toggleTheme:e,t,className:s,style:o,size:r}){return a.createElement("div",{className:s||void 0,style:o||void 0},a.createElement(g.Tooltip,{title:t("ra_Change color theme"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},a.createElement(g.IconButton,{onClick:()=>e(),size:r||"medium"},i==="dark"&&a.createElement(m.Brightness4,{className:s}),i==="blue"&&a.createElement(m.Brightness5,{className:s}),i==="colored"&&a.createElement(m.Brightness6,{className:s}),i!=="dark"&&i!=="blue"&&i!=="colored"&&a.createElement(m.Brightness7,{className:s}))))}function wi(){return(wi=Object.assign||function(i){for(var e=1;e=0||(o[t]=i[t]);return o}function Do(i){var e=b.useRef(i),t=b.useRef(function(s){e.current&&e.current(s)});return e.current=i,t.current}var ws=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),i>t?t:i0:z.buttons>0)&&o.current?r(PM(o.current,z,n.current)):D(!1)},T=function(){return D(!1)};function D(z){var h=u.current,O=zo(o.current),p=z?O.addEventListener:O.removeEventListener;p(h?"touchmove":"mousemove",j),p(h?"touchend":"mouseup",T)}return[function(z){var h=z.nativeEvent,O=o.current;if(O&&(WM(h),!function(E,C){return C&&!ys(E)}(h,u.current)&&O)){if(ys(h)){u.current=!0;var p=h.changedTouches||[];p.length&&(n.current=p[0].identifier)}O.focus(),r(PM(O,h,n.current)),D(!0)}},function(z){var h=z.which||z.keyCode;h<37||h>40||(z.preventDefault(),M({left:h===39?.05:h===37?-.05:0,top:h===40?.05:h===38?-.05:0}))},D]},[M,r]),l=N[0],c=N[1],L=N[2];return b.useEffect(function(){return L},[L]),a.createElement("div",wi({},s,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:o,onKeyDown:c,tabIndex:0,role:"slider"}))}),Ho=function(i){return i.filter(Boolean).join(" ")},ka=function(i){var e=i.color,t=i.left,s=i.top,o=s===void 0?.5:s,r=Ho(["react-colorful__pointer",i.className]);return a.createElement("div",{className:r,style:{top:100*o+"%",left:100*t+"%"}},a.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},Le=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*i)/t},hNe=function(i){return ENe(Io(i))},Io=function(i){return i[0]==="#"&&(i=i.substring(1)),i.length<6?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?Le(parseInt(i[3]+i[3],16)/255,2):1}:{r:parseInt(i.substring(0,2),16),g:parseInt(i.substring(2,4),16),b:parseInt(i.substring(4,6),16),a:i.length===8?Le(parseInt(i.substring(6,8),16)/255,2):1}},ANe=function(i){return ONe(mNe(i))},pNe=function(i){var e=i.s,t=i.v,s=i.a,o=(200-e)*t/100;return{h:Le(i.h),s:Le(o>0&&o<200?e*t/100/(o<=100?o:200-o)*100:0),l:Le(o/2),a:Le(s,2)}},wo=function(i){var e=pNe(i);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},mNe=function(i){var e=i.h,t=i.s,s=i.v,o=i.a;e=e/360*6,t/=100,s/=100;var r=Math.floor(e),M=s*(1-t),n=s*(1-(e-r)*t),u=s*(1-(1-e+r)*t),N=r%6;return{r:Le(255*[s,n,M,M,u,s][N]),g:Le(255*[u,s,s,n,M,M][N]),b:Le(255*[M,M,u,s,s,n][N]),a:Le(o,2)}},Fs=function(i){var e=i.toString(16);return e.length<2?"0"+e:e},ONe=function(i){var e=i.r,t=i.g,s=i.b,o=i.a,r=o<1?Fs(Le(255*o)):"";return"#"+Fs(e)+Fs(t)+Fs(s)+r},ENe=function(i){var e=i.r,t=i.g,s=i.b,o=i.a,r=Math.max(e,t,s),M=r-Math.min(e,t,s),n=M?r===e?(t-s)/M:r===t?2+(s-e)/M:4+(e-t)/M:0;return{h:Le(60*(n<0?n+6:n)),s:Le(r?M/r*100:0),v:Le(r/255*100),a:o}},_Ne=a.memo(function(i){var e=i.hue,t=i.onChange,s=Ho(["react-colorful__hue",i.className]);return a.createElement("div",{className:s},a.createElement(fa,{onMove:function(o){t({h:360*o.left})},onKey:function(o){t({h:ws(e+360*o.left,0,360)})},"aria-label":"Hue","aria-valuenow":Le(e),"aria-valuemax":"360","aria-valuemin":"0"},a.createElement(ka,{className:"react-colorful__hue-pointer",left:e/360,color:wo({h:e,s:100,v:100,a:1})})))}),SNe=a.memo(function(i){var e=i.hsva,t=i.onChange,s={backgroundColor:wo({h:e.h,s:100,v:100,a:1})};return a.createElement("div",{className:"react-colorful__saturation",style:s},a.createElement(fa,{onMove:function(o){t({s:100*o.left,v:100-100*o.top})},onKey:function(o){t({s:ws(e.s+100*o.left,0,100),v:ws(e.v-100*o.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Le(e.s)+"%, Brightness "+Le(e.v)+"%"},a.createElement(ka,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:wo(e)})))}),Ya=function(i,e){if(i===e)return!0;for(var t in i)if(i[t]!==e[t])return!1;return!0},xNe=function(i,e){return i.toLowerCase()===e.toLowerCase()||Ya(Io(i),Io(e))};function fNe(i,e,t){var s=Do(t),o=b.useState(function(){return i.toHsva(e)}),r=o[0],M=o[1],n=b.useRef({color:e,hsva:r});b.useEffect(function(){if(!i.equal(e,n.current.color)){var N=i.toHsva(e);n.current={hsva:N,color:e},M(N)}},[e,i]),b.useEffect(function(){var N;Ya(r,n.current.hsva)||i.equal(N=i.fromHsva(r),n.current.color)||(n.current={hsva:r,color:N},s(N))},[r,i,s]);var u=b.useCallback(function(N){M(function(l){return Object.assign({},l,N)})},[]);return[r,u]}var kNe=typeof window<"u"?b.useLayoutEffect:b.useEffect,YNe=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},RM=new Map,QNe=function(i){kNe(function(){var e=i.current?i.current.ownerDocument:document;if(e!==void 0&&!RM.has(e)){var t=e.createElement("style");t.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,RM.set(e,t);var s=YNe();s&&t.setAttribute("nonce",s),e.head.appendChild(t)}},[])},UNe=function(i){var e=i.className,t=i.colorModel,s=i.color,o=s===void 0?t.defaultColor:s,r=i.onChange,M=xa(i,["className","colorModel","color","onChange"]),n=b.useRef(null);QNe(n);var u=fNe(t,o,r),N=u[0],l=u[1],c=Ho(["react-colorful",e]);return a.createElement("div",wi({},M,{ref:n,className:c}),a.createElement(SNe,{hsva:N,onChange:l}),a.createElement(_Ne,{hue:N.h,onChange:l,className:"react-colorful__last-control"}))},vNe={defaultColor:"000",toHsva:hNe,fromHsva:function(i){return ANe({h:i.h,s:i.s,v:i.v,a:1})},equal:xNe},bNe=function(i){return a.createElement(UNe,wi({},i,{colorModel:vNe}))};class $Ne extends b.Component{dialogName;filters;filterFunc;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectID.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters||{}});let s=this.props.selected||[];if(Array.isArray(s)||(s=[s]),s=s.filter(o=>o),e.filterFunc)if(typeof e.filterFunc=="string")try{this.filterFunc=new Function("obj",e.filterFunc)}catch{console.error(`Cannot parse filter function: "obj => ${e.filterFunc}"`),this.filterFunc=void 0}else this.filterFunc=e.filterFunc;this.state={selected:s,name:"",selectionBlocked:!1}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}render(){let e;return this.state.name||this.state.selected.length?this.state.selected.length===1?e=[a.createElement("span",{key:"selected"},d.t("ra_Selected")," "),a.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},(this.state.name||this.state.selected[0])+(this.state.name?` [${this.state.selected[0]}]`:""))]:e=[a.createElement("span",{key:"selected"},d.t("ra_Selected")," "),a.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},d.t("%s items",this.state.selected.length.toString()))]:e=this.props.title||d.t("ra_Please select object ID..."),a.createElement(g.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{height:"95%",p:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)"}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectid_title"},a.createElement(g.DialogTitle,{id:"ar_dialog_selectid_title",style:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}},e),a.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden",padding:"8px 4px"}},a.createElement(CNe,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,dateFormat:this.props.dateFormat,defaultFilters:this.filters,dialogName:this.dialogName,isFloatComma:this.props.isFloatComma,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,expertMode:this.props.expertMode,columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types?Array.isArray(this.props.types)?this.props.types:[this.props.types]:["state"],root:this.props.root,t:d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,customFilter:this.props.customFilter,allowNonObjects:this.props.allowNonObjects,onFilterChanged:t=>{this.filters=t,(window._localStorage||window.localStorage).setItem(this.dialogName,JSON.stringify(t))},onSelect:async(t,s,o)=>{let r;if(Array.isArray(t)?r=t:r=[t],JSON.stringify(r)!==JSON.stringify(this.state.selected)){let M=!0;if(this.props.onSelectConfirm){const n={};for(const u of r)try{n[u]=await this.props.socket.getObject(u)}catch{}M=await this.props.onSelectConfirm(r,n)}this.setState({selected:r,name:s,selectionBlocked:!M},()=>o&&this.handleOk())}else o&&this.handleOk()},filterFunc:this.filterFunc,title:"",classes:{}})),a.createElement(g.DialogActions,null,a.createElement(g.Button,{id:`ar_dialog_selectid_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),startIcon:a.createElement(m.Check,null),disabled:!this.state.selected.length||this.state.selectionBlocked,color:"primary"},this.props.ok||d.t("ra_Ok")),a.createElement(g.Button,{id:`ar_dialog_selectid_cancel_${this.props.dialogName||""}`,color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:a.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}function lt(i,e,t){if(typeof e=="string"&&(e=e.split(".")),!i)return null;if(e.length===1)return t&&t[i[e[0]]]?t[i[e[0]]]:i[e[0]];const s=e.shift();return lt(i[s],e)}function Qa(i,e,t){if(typeof e=="string"&&(e=e.split(".")),e.length===1)return i[e[0]]=t;const s=e.shift();return(i[s]===null||i[s]===void 0)&&(i[s]={}),Qa(i[s],e,t)}const W={tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:i=>(i.palette.mode==="dark","#888"),color:i=>i.palette.mode==="dark"?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},fieldEditWithButton:{width:"calc(100% - 33px)",display:"inline-block"},fieldEdit:{width:"100%",display:"inline-block",lineHeight:"50px",verticalAlign:"middle"},fieldButton:{width:30,display:"inline-block"},colorDialog:{overflow:"hidden",padding:15},subText:{fontSize:10,fontStyle:"italic"},glow:{animation:"glow 0.2s 2 alternate"}};function JM(i,e,t,s){const o=lt(i,t,s)||"",r=lt(e,t,s)||"";return ro?1:0}function PNe(i,e,t){return i==="desc"?(s,o)=>JM(s,o,e,t):(s,o)=>-JM(s,o,e,t)}function WNe(i,e){const t=i.map((s,o)=>({e:s,i:o}));return t.sort((s,o)=>{const r=e(s.e,o.e);return r||s.i-o.i}),t.map(s=>s.e)}class Co extends b.Component{selectCallback=null;updateTimeout=null;constructor(e){super(e);let t=(window._localStorage||window.localStorage).getItem(this.props.name||"iob-table")||"[]";try{t=JSON.parse(t)||[]}catch{t=[]}Array.isArray(t)||(t=[]),this.state={opened:t,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:this.props.columns[0].field,showSelectColor:!1}}static getDerivedStateFromProps(e,t){if(e.glowOnChange){const s=[];let o=0;return e.data&&t.data&&e.data.forEach(r=>{var n;o++;const M=(n=t.data)==null?void 0:n.find(u=>u.id===r.id);M?JSON.stringify(M)!==JSON.stringify(r)&&s.push(r.id):s.push(r.id)}),s.length&&s.length!==o?{data:e.data,update:s}:{data:e.data}}return{data:e.data}}renderCellEdit(e,t){let s=lt(e,t.field);return Array.isArray(s)&&(s=s[0]),t.lookup?this.renderCellEditSelect(t,s):t.editComponent?this.renderCellEditCustom(t,s,e):t.type==="boolean"||!t.type&&typeof s=="boolean"?this.renderCellEditBoolean(t,s):t.type==="color"?this.renderCellEditColor(t,s):t.type==="oid"?this.renderCellEditObjectID(t,s):t.type==="numeric"?this.renderCellEditNumber(t,s):this.renderCellEditString(t,s)}onChange(e,t,s){const o=this.state.editData?{...this.state.editData}:{};s===t?delete o[e.field]:o[e.field]=s,this.setState({editData:o})}renderCellEditSelect(e,t){return a.createElement(g.Select,{variant:"standard",onChange:s=>this.onChange(e,t,s.target.value),value:this.state.editData&&this.state.editData[e.field]||t},e.lookup&&Object.keys(e.lookup).map((s,o)=>{var r;return a.createElement(g.MenuItem,{key:o,value:s},(r=e.lookup)==null?void 0:r[s])}))}renderCellEditString(e,t){return a.createElement(g.TextField,{variant:"standard",style:W.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:s=>this.onChange(e,t,s.target.value)})}renderCellEditNumber(e,t){return a.createElement(g.TextField,{variant:"standard",style:W.fieldEdit,type:"number",fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:s=>this.onChange(e,t,s.target.value)})}renderCellEditCustom(e,t,s){const o=e.editComponent;return this.state.editData&&this.state.editData[e.field]!==void 0&&(t=this.state.editData[e.field],s=JSON.parse(JSON.stringify(s)),s[e.field]=t),o?a.createElement(o,{value:t,rowData:s,onChange:r=>this.onChange(e,t,r)}):null}renderCellEditBoolean(e,t){return a.createElement(g.Checkbox,{checked:this.state.editData&&this.state.editData[e.field]!==void 0?!!this.state.editData[e.field]:!!t,onChange:s=>this.onChange(e,!!t,s.target.checked),inputProps:{"aria-label":"checkbox"}})}renderSelectColorDialog(){return a.createElement(g.Dialog,{sx:{"& .MuiPaper-root":W.root,"& .MuiPaper-paper":W.paper},onClose:()=>{this.selectCallback=null,this.setState({showSelectColor:!1})},open:this.state.showSelectColor},a.createElement(bNe,{color:this.state.selectIdValue,onChange:e=>this.setState({selectIdValue:e},()=>{this.selectCallback&&this.selectCallback(e)})}))}renderCellEditColor(e,t){const s=this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t;return a.createElement("div",{style:W.fieldEdit},a.createElement(g.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:s,inputProps:{style:{backgroundColor:s,color:S.isUseBright(s)?"#FFF":"#000"}},onChange:o=>this.onChange(e,!!t,o.target.value)}),a.createElement(g.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=o=>this.onChange(e,t,o),this.setState({showSelectColor:!0,selectIdValue:t})},size:"large"},a.createElement(m.Colorize,null)))}renderSelectIdDialog(){return this.state.showSelectId&&this.props.socket?a.createElement($Ne,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,selected:this.state.selectIdValue,onClose:()=>this.setState({showSelectId:!1}),onOk:e=>{this.setState({showSelectId:!1,selectIdValue:null});const t=Array.isArray(e)?e[0]:e;t&&this.selectCallback&&(this.selectCallback&&this.selectCallback(t),this.selectCallback=null)}}):null}renderCellEditObjectID(e,t){return a.createElement("div",{style:W.fieldEdit},a.createElement(g.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:s=>this.onChange(e,t,s.target.value)}),a.createElement(g.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=s=>this.onChange(e,t,s),this.setState({showSelectId:!0,selectIdValue:t})},size:"large"},a.createElement(m.ViewHeadline,null)))}static renderCellNonEdit(e,t){let s=lt(e,t.field,t.lookup);return Array.isArray(s)&&(s=s[0]),t.type==="boolean"?a.createElement(g.Checkbox,{checked:!!s,disabled:!0,inputProps:{"aria-label":"checkbox"}}):s}renderCell(e,t,s,o){return this.state.editMode===o&&t.editable!=="never"&&t.editable!==!1?a.createElement(g.TableCell,{key:t.field,style:{...W.cell,...s?W.cellSecondary:void 0,...t.cellStyle},component:"th"},this.renderCellEdit(e,t)):a.createElement(g.TableCell,{key:t.field,style:{...W.cell,...s?W.cellSecondary:void 0,...t.cellStyle},component:"th"},Co.renderCellNonEdit(e,t))}static renderCellWithSubField(e,t){const s=lt(e,t.field,t.lookup);if(t.subField){const o=lt(e,t.subField,t.subLookup);return a.createElement("div",null,a.createElement("div",{style:W.mainText},s),a.createElement("div",{style:{...W.subText,...t.subStyle||void 0}},o))}return a.createElement("div",null,a.createElement("div",{style:W.mainText},s))}renderLine(e,t){const s=this.props.levelShift===void 0?24:this.props.levelShift;t=t||0;const o=this.props.data.indexOf(e);if(!e||!t&&e.parentId||t&&!e.parentId)return null;const r=this.state.opened.includes(e.id),M=this.props.data.filter(u=>u.parentId===e.id),n=a.createElement(g.TableRow,{key:e.id,className:`table-row-${(e.id||"").toString().replace(/[.$]/g,"_")}`,style:{...this.state.update&&this.state.update.includes(e.id)&&W.glow||void 0,...W.row,...t?W.rowSecondary:void 0,...!t&&M.length?W.rowMainWithChildren:void 0,...!t&&!M.length?W.rowMainWithoutChildren:void 0,...this.state.editMode!==!1&&this.state.editMode!==o?W.rowNoEdit:void 0,...this.state.deleteMode!==!1&&this.state.deleteMode!==o?W.rowNoEdit:void 0}},a.createElement(g.TableCell,{style:{...W.cell,...W.cellExpand,...t?W.cellSecondary:void 0}},M.length?a.createElement(g.IconButton,{onClick:()=>{const u=[...this.state.opened],N=u.indexOf(e.id);N===-1?(u.push(e.id),u.sort()):u.splice(N,1),(window._localStorage||window.localStorage).setItem(this.props.name||"iob-table",JSON.stringify(u)),this.setState({opened:u})},size:"small"},r?a.createElement(m.ExpandMore,null):a.createElement(m.NavigateNext,null)):null),a.createElement(g.TableCell,{scope:"row",style:{...W.cell,...t?W.cellSecondary:void 0,...this.props.columns[0].cellStyle,paddingLeft:s*t}},this.props.columns[0].subField?Co.renderCellWithSubField(e,this.props.columns[0]):lt(e,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map((u,N)=>!N&&!u.hidden?null:this.renderCell(e,u,t,o)),this.props.onUpdate?a.createElement(g.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===o||this.state.deleteMode===o?a.createElement(g.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>{if(this.state.editMode!==!1){const u=JSON.parse(JSON.stringify(e));this.state.editData&&Object.keys(this.state.editData).forEach(N=>{var l;return Qa(u,N,(l=this.state.editData)==null?void 0:l[N])}),this.setState({editMode:!1},()=>this.props.onUpdate&&this.props.onUpdate(u,e))}else this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e))},size:"large"},a.createElement(m.Check,null)):a.createElement(g.IconButton,{disabled:this.state.editMode!==!1,onClick:()=>this.setState({editMode:o,editData:null}),size:"large"},a.createElement(m.Edit,null))):null,this.props.onDelete&&!this.props.onUpdate?a.createElement(g.TableCell,{style:{...W.cell,...W.cellButton}},this.state.deleteMode===o?a.createElement(g.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e)),size:"large"},a.createElement(m.Check,null)):null):null,this.props.onUpdate||this.props.onDelete?a.createElement(g.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===o||this.state.deleteMode===o?a.createElement(g.IconButton,{onClick:()=>this.setState({editMode:!1,deleteMode:!1}),size:"large"},a.createElement(m.Close,null)):this.props.onDelete?a.createElement(g.IconButton,{disabled:this.state.deleteMode!==!1,onClick:()=>this.setState({deleteMode:o}),size:"large"},a.createElement(m.Delete,null)):null):null);if(!t&&r){const u=M.map(N=>this.renderLine(N,t+1));return u.unshift(n),u}return n}handleRequestSort(e){const t=this.state.orderBy===e&&this.state.order==="asc";this.setState({order:t?"desc":"asc",orderBy:e})}renderHead(){return a.createElement(g.TableHead,null,a.createElement(g.TableRow,{key:"headerRow"},a.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellExpand)}),a.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${this.props.columns[0].field.replace(/\./g,"_")}`]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:a.createElement(g.TableSortLabel,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:()=>this.handleRequestSort(this.props.columns[0].field)},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?a.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map((e,t)=>!t&&!e.hidden?null:a.createElement(g.TableCell,{key:e.field,sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${e.field.replace(/\./g,"_")}`]),style:e.headerStyle||e.cellStyle,component:"th"},this.props.noSort?null:a.createElement(g.TableSortLabel,{active:this.state.orderBy===e.field,direction:this.state.orderBy===e.field?this.state.order:"asc",onClick:()=>this.handleRequestSort(e.field)},e.title||e.field,this.state.orderBy===e.field?a.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null))),this.props.onUpdate?a.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)},this.props.noAdd?null:a.createElement(g.Fab,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:()=>this.props.onUpdate&&this.props.onUpdate(!0)},a.createElement(m.Add,null))):null,this.props.onDelete||this.props.onUpdate?a.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)}):null))}render(){const e=this.props.columns.find(t=>t.field===this.state.orderBy);if(e){const t=e.lookup,s=WNe(this.props.data,PNe(this.state.order,this.state.orderBy,t));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({update:null})},500)),a.createElement("div",{style:W.tableContainer,className:this.props.className},a.createElement(g.Table,{style:W.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),a.createElement(g.TableBody,null,s.map(o=>this.renderLine(o)))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}return null}}/*! +`),n.createElement(TNe,null,this.getToolbar()),n.createElement(gNe,null,this.renderHeader(),n.createElement(g.Box,{style:h.tableDiv,ref:this.tableRef,onKeyDown:s=>this.navigateKeyPress(s)},t)),this.renderContextMenu(),this.renderAliasMenu(),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderAliasEditorDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderRenameDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.state.modalEditOfAccessObjData&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}}const ANe=di()(We);class N4e extends n.Component{refTypo;height;width;constructor(e){super(e),this.state={closed:this.props.storeId?window.localStorage.getItem(this.props.storeId)==="true":!1},this.height=0,this.width=0,this.refTypo=n.createRef()}componentDidMount(){this.detectHeight()}onClick(){this.props.storeId&&this.props.closed===void 0&&(this.state.closed?window.localStorage.removeItem(this.props.storeId):window.localStorage.setItem(this.props.storeId,"true")),this.props.closed===void 0?this.setState({closed:!this.state.closed},()=>{this.props.onClose&&this.props.onClose(this.state.closed)}):this.props.onClose&&this.props.onClose(!this.props.closed)}detectHeight(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed;this.props.closeable&&!e&&this.refTypo.current&&window.requestAnimationFrame(()=>{(this.props.closed!==void 0?this.props.closed:this.state.closed)||this.refTypo.current&&(!this.height||this.width!==this.refTypo.current.clientWidth)&&(this.height=this.refTypo.current.clientHeight,this.width=this.refTypo.current.clientWidth,this.forceUpdate())})}componentDidUpdate(){this.detectHeight()}render(){const e=this.props.closed!==void 0?this.props.closed:this.state.closed,t=e?m.Visibility:m.Close;return n.createElement(g.Box,{className:"iom-info-box",style:{whiteSpace:"preserve",display:"flex",gap:8,alignItems:e||this.props.iconPosition==="top"?"flex-start":"center",borderWidth:1,borderStyle:"solid",padding:4,borderRadius:5,marginBottom:8,maxWidth:"100%",transition:"height 0.5s",height:this.props.closeable?e?30:this.height||void 0:void 0,overflow:this.props.closeable?"hidden":void 0,position:"relative",...this.props.style},sx:{borderColor:s=>this.props.type==="ok"?s.palette.info.main:s.palette[this.props.type].main}},this.props.type==="ok"?n.createElement(m.Check,{style:{color:"#0F0"}}):this.props.type==="info"?n.createElement(m.Info,{color:"primary"}):n.createElement(m.Warning,{color:this.props.type}),n.createElement(g.Typography,{ref:this.refTypo},this.props.children),this.props.closeable?n.createElement(t,{sx:{color:s=>s.palette.mode==="dark"?"lightgray":"gray",cursor:"pointer",position:"absolute",top:4,right:4},onClick:()=>this.onClick()}):null,this.props.closeable?n.createElement("div",{style:{width:22}}):null,e?n.createElement(g.Box,{component:"div",sx:s=>{const o=s.palette[this.props.type==="ok"?"info":this.props.type].main;return{background:`linear-gradient(${o}00 0%, ${o}10 60%, ${o}90 100%)`}},style:{bottom:0,position:"absolute",left:0,right:0,height:10}}):null)}}const x={hr:{border:0,borderTop:"1px solid gray"},scrollWindow:{width:"100%",overflow:"auto",height:"calc(100% - 22px)"},rowDiv:{width:"100%"},modeDiv:{width:200,display:"inline-block",verticalAlign:"top"},settingsDiv:{display:"inline-block",verticalAlign:"top"},inputTime:{width:90,marginTop:0,marginLeft:5},inputDate:{width:140,marginTop:0,marginLeft:5},inputEvery:{width:40,marginLeft:5,marginRight:5},inputRadio:{padding:"4px 12px",verticalAlign:"top"},inputGroup:{maxWidth:400,display:"inline-block"},inputGroupElement:{width:120},inputDateDay:{width:60},inputDateDayCheck:{padding:4},inputSmallCheck:{padding:0},rowOnce:{},rowDays:i=>({background:i.palette.mode!=="dark"?"#ddeaff":"#4b5057"}),rowDows:i=>({background:i.palette.mode!=="dark"?"#DDFFDD":"#52646c"}),rowMonths:i=>({background:i.palette.mode!=="dark"?"#DDFFFF":"#1f5557"}),rowMonthsDates:i=>({background:i.palette.mode!=="dark"?"#EEFFFF":"#3c5737",maxWidth:600}),rowYears:i=>({background:i.palette.mode!=="dark"?"#fbffdd":"#574b33"}),rowDowsDows:i=>({background:i.palette.mode!=="dark"?"#EEFFEE":"#3d4c54",pl:"10px",pb:"10px"})},$i=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Js=["January","February","March","April","May","June","July","August","September","October","November","December"],Pi={minutes:"minutes",hours:"hours"},ns=["sunrise","sunriseEnd","goldenHourEnd","solarNoon","goldenHour","sunsetStart","sunset","dusk","nauticalDusk","night","nightEnd","nauticalDawn","dawn","nadir"];function Ve(i){return i<10?`0${i}`:`${i}`}const WM={time:{exactTime:!1,start:"00:00",end:"23:59",mode:"hours",interval:1},period:{once:"",days:1,dows:"",dates:"",weeks:0,months:"",years:0,yearMonth:0,yearDate:0},valid:{from:"",to:""}};function Wi(i){const e=i.split(".");return e.length===3?`${e[2]}-${e[1]}-${e[0]}`:""}class le extends b.Component{refFrom;refTo;refOnce;timerOnce=null;timerFrom=null;timerTo=null;constructor(e){super(e);let t;if(this.props.schedule&&typeof this.props.schedule=="string"&&this.props.schedule[0]==="{")try{t=JSON.parse(this.props.schedule)}catch{}else typeof this.props.schedule=="object"&&(t=this.props.schedule);(!t||!Object.keys(t).length)&&(setTimeout(()=>this.onChange(this.state.schedule,!0),200),t=WM),t={...WM,...t},t.valid.from||=le.now2string(),this.refFrom=n.createRef(),this.refTo=n.createRef(),this.refOnce=n.createRef(),this.state={schedule:t,desc:le.state2text(t)},JSON.stringify(t)!==this.props.schedule&&setTimeout(()=>{var s,o;return(o=(s=this.props).onChange)==null?void 0:o.call(s,JSON.stringify(t))},100)}onChange(e,t){var o,r;const s=JSON.stringify(e)!==JSON.stringify(this.state.schedule);if(t||s){s&&this.setState({schedule:e,desc:le.state2text(e)});const M=JSON.parse(JSON.stringify(e));if(M.period.once){const a=M.period.once;delete M.period,M.period={once:a},delete M.valid}else if(M.period.days){const a=M.period.days,u=M.period.dows;delete M.period,M.period={days:a},u&&u!=="[]"&&(M.period.dows=u)}else if(M.period.weeks){const a=M.period.weeks,u=M.period.dows;delete M.period,M.period={weeks:a},u&&u!=="[]"&&(M.period.dows=u)}else if(M.period.months){const a=M.period.months,u=M.period.dates;delete M.period,M.period={months:a},u&&u!=="[]"&&(M.period.dates=u)}else if(M.period.years){const a=M.period.years,u=M.period.yearMonth,N=M.period.yearDate;delete M.period,M.period={years:a,yearDate:N},u&&(M.period.yearMonth=u)}if(M.time.exactTime?(delete M.time.end,delete M.time.mode,delete M.time.interval):delete M.time.exactTime,M.valid){if(M.valid.to||delete M.valid.to,M.period.days===1||M.period.weeks===1||M.period.months===1||M.period.years===1){const a=le.string2date(M.valid.from),u=new Date;u.setHours(0),u.setMinutes(0),u.setSeconds(0),u.setMilliseconds(0),a<=u&&delete M.valid.from}!M.valid.from&&!M.valid.to&&delete M.valid}(r=(o=this.props).onChange)==null||r.call(o,JSON.stringify(M),le.state2text(e))}}static state2text(e){if(typeof e=="string")try{e=JSON.parse(e)}catch{return""}const t=[],s=le.string2date(e.valid.from);if(e.period.once){const o=le.string2date(e.period.once),r=new Date;if(r.setMilliseconds(0),r.setSeconds(0),r.setMinutes(0),r.setHours(0),od.t($i[M]));if(r.length===1)t.push(d.t("sch_desc_onWeekday",r[0]));else if(r.length===7)t.push(d.t("sch_desc_everyDay"));else{const M=r.pop();t.push(d.t("sch_desc_onWeekdays",r.join(", "),M))}}}else t.push(d.t("sch_desc_everyDay"));else t.push(d.t("sch_desc_everyNDay",e.period.days.toString()));else if(e.period.weeks)if(e.period.weeks===1?t.push(d.t("sch_desc_everyWeek")):t.push(d.t("sch_desc_everyNWeeks",e.period.weeks.toString())),e.period.dows){const o=JSON.parse(e.period.dows);if(o.length===2&&o[0]===0&&o[1]===6)t.push(d.t("sch_desc_onWeekends"));else if(o.length===5&&o[0]===1&&o[1]===2&&o[2]===3&&o[3]===4&&o[4]===5)t.push(d.t("sch_desc_onWorkdays"));else{const r=o.map(M=>d.t($i[M]));if(r.length===1)t.push(d.t("sch_desc_onWeekday",r[0]));else if(r.length===7)t.push(d.t("sch_desc_everyDay"));else{const M=r.pop();t.push(d.t("sch_desc_onWeekdays",r.join(", "),M))}}}else return d.t("sch_desc_never");else if(e.period.months){if(e.period.dates){const o=JSON.parse(e.period.dates);if(o.length===1)t.push(d.t("sch_desc_onDate",o[0]));else if(o.length===31)t.push(d.t("sch_desc_onEveryDate"));else if(o.length){const r=o.pop();t.push(d.t("sch_desc_onDates",o.join(", "),r))}else return d.t("sch_desc_never")}else t.push(d.t("sch_desc_onEveryDate"));if(e.period.months===1)t.push(d.t("sch_desc_everyMonth"));else if(typeof e.period.months=="number")t.push(d.t("sch_desc_everyNMonths",e.period.months.toString()));else{const r=JSON.parse(e.period.months).map(M=>d.t(Js[M-1]));if(!r.length)return d.t("sch_desc_never");if(r.length===1)t.push(d.t("sch_desc_onMonth",r[0]));else if(r.length===12)t.push(d.t("sch_desc_everyMonth"));else{const M=r.pop();t.push(d.t("sch_desc_onMonths",r.join(", "),M))}}}else e.period.years&&(e.period.years===1?t.push(d.t("sch_desc_everyYear")):t.push(d.t("sch_desc_everyNYears",e.period.years.toString())),t.push(d.t("sch_desc_onDate",e.period.yearDate.toString(),e.period.yearMonth?d.t(Js[e.period.yearMonth-1]):d.t("sch_desc_everyMonth"))));if(e.time.exactTime)ns.includes(e.time.start)?t.push(d.t("sch_desc_atTime",d.t(`sch_astro_${e.time.start}`))):t.push(d.t("sch_desc_atTime",e.time.start));else{e.time.mode===Pi.minutes?e.time.interval===1?t.push(d.t("sch_desc_everyMinute")):t.push(d.t("sch_desc_everyNMinutes",e.time.interval.toString())):e.time.interval===1?t.push(d.t("sch_desc_everyHour")):t.push(d.t("sch_desc_everyNHours",e.time.interval.toString()));const o=ns.indexOf(e.time.start)!==-1?d.t(`sch_astro_${e.time.start}`):e.time.start,r=ns.indexOf(e.time.end)!==-1?d.t(`sch_astro_${e.time.end}`):e.time.end;(o!=="00:00"||r!=="24:00"&&r!=="23:59")&&t.push(d.t("sch_desc_intervalFromTo",o,r))}return e.period.once||(s.getTime()>Date.now()&&e.valid.to?t.push(d.t("sch_desc_validFromTo",e.valid.from,e.valid.to)):s.getTime()>Date.now()?t.push(d.t("sch_desc_validFrom",e.valid.from)):e.valid.to&&t.push(d.t("sch_desc_validTo",e.valid.to))),t.join(" ")}getTimePeriodElements(){const e=this.state.schedule;let t=!1,s=!1,o=!1,r=!0;return e.time.start==="00:00"&&e.time.end==="24:00"?(t=!0,r=!1):e.time.start==="sunrise"?(s=!0,r=!1):e.time.start==="sunset"&&(o=!0,r=!1),n.createElement("div",{key:"timePeriod",style:x.rowDiv},n.createElement("div",{style:x.modeDiv},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!e.time.exactTime,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.exactTime=!1,this.onChange(M)}}),label:d.t("sch_intervalTime")})),n.createElement("div",{style:x.settingsDiv},n.createElement("div",{style:x.settingsDiv},!e.time.exactTime&&n.createElement("div",null,n.createElement("div",null,n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!r,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="00:00",M.time.end="23:59",this.onChange(M)}}),label:r?"":d.t("sch_fromTo")}),r&&[n.createElement(g.TextField,{variant:"standard",style:{...x.inputTime,marginRight:10},key:"exactTimeFrom",type:"time",sx:M=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:M.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.start,onChange:M=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.start=M.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_from"),margin:"normal"}),n.createElement(g.TextField,{variant:"standard",style:x.inputTime,key:"exactTimeTo",type:"time",sx:M=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:M.palette.mode==="dark"?"invert(80%)":void 0}}),value:this.state.schedule.time.end,onChange:M=>{const a=JSON.parse(JSON.stringify(this.state.schedule));a.time.end=M.target.value,this.onChange(a)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_to"),margin:"normal"})])),!e.time.exactTime&&n.createElement("div",null,n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!t,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="00:00",M.time.end="24:00",this.onChange(M)}}),label:d.t("sch_wholeDay")})),!e.time.exactTime&&n.createElement("div",null,n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!s,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="sunrise",M.time.end="sunset",this.onChange(M)}}),label:d.t("sch_astroDay")})),!e.time.exactTime&&n.createElement("div",null,n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!o,onClick:()=>{const M=JSON.parse(JSON.stringify(this.state.schedule));M.time.start="sunset",M.time.end="sunrise",this.onChange(M)}}),label:d.t("sch_astroNight")}))),!e.time.exactTime&&this.getPeriodSettingsMinutes(r)))}getTimeExactElements(){const e=ns.includes(this.state.schedule.time.start);return n.createElement("div",{key:"timeExact",style:x.rowDiv},n.createElement("div",{style:x.modeDiv},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!this.state.schedule.time.exactTime,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.time.exactTime=!0,this.onChange(t)}}),label:d.t("sch_exactTime")})),this.state.schedule.time.exactTime&&n.createElement(g.Select,{variant:"standard",value:e?this.state.schedule.time.start:"00:00",onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.start=t.target.value,this.onChange(s)}},n.createElement(g.MenuItem,{key:"specific",value:"00:00"},d.t("sch_specificTime")),ns.map(t=>n.createElement(g.MenuItem,{key:t,value:t},d.t(`sch_astro_${t}`)))),this.state.schedule.time.exactTime&&!e&&n.createElement("div",{style:x.settingsDiv},n.createElement(g.TextField,{variant:"standard",style:x.inputTime,key:"exactTimeValue",value:this.state.schedule.time.start,type:"time",sx:t=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:t.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.start=t.target.value,this.onChange(s)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}static getDivider(){return n.createElement("hr",{style:x.hr})}getPeriodModes(){const e=this.state.schedule,t=!e.period.dows&&!e.period.months&&!e.period.dates&&!e.period.years&&!e.period.days&&!e.period.weeks;return t&&!e.period.once&&(e.period.once=le.now2string(!0)),[n.createElement("div",{key:"once",style:{...x.rowDiv,...x.rowOnce}},n.createElement("div",{style:x.modeDiv},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!t,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.once||=le.now2string(!0),s.period.dows="",s.period.months="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.days=0,this.onChange(s)}}),label:d.t("sch_periodOnce")})),t&&n.createElement("div",{style:x.settingsDiv},n.createElement(g.TextField,{variant:"standard",style:x.inputDate,type:"date",ref:this.refOnce,key:"exactDateAt",defaultValue:Wi(e.period.once),onChange:s=>{this.timerOnce&&clearTimeout(this.timerOnce),this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="#ff000030"),this.timerOnce=setTimeout(o=>{this.timerOnce=null,this.refOnce.current&&(this.refOnce.current.style.background="");const r=JSON.parse(JSON.stringify(this.state.schedule)),M=le.string2date(o);M.toString()!=="Invalid Date"&&(r.period.once=`${Ve(M.getDate())}.${Ve(M.getMonth()+1)}.${M.getFullYear()}`,this.onChange(r))},1500,s.target.value)},slotProps:{inputLabel:{shrink:!0}},label:d.t("sch_at"),margin:"normal"}))),n.createElement(g.Box,{component:"div",key:"days",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowDays)},n.createElement("div",{style:x.modeDiv},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.days,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.days=1,s.period.dows="",s.period.months="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodDaily")})),n.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsDaily(),e.period.days?this.getPeriodSettingsWeekdays():null)),n.createElement(g.Box,{component:"div",key:"weeks",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowDows)},n.createElement("div",{style:x.modeDiv},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.weeks,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.weeks=e.period.weeks?0:1,s.period.dows||="[0]",s.period.months="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodWeekly")})),n.createElement(g.Box,{component:"div",style:x.settingsDiv},n.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsWeekly()),n.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,x.settingsDiv,x.rowDowsDows)},this.state.schedule.period.weeks?this.getPeriodSettingsWeekdays():null))),n.createElement(g.Box,{component:"div",key:"months",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowMonths)},n.createElement("div",{style:x.modeDiv},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.months,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months=1,s.period.dows="",s.period.dates="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodMonthly")})),n.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsMonthly(),e.period.months?n.createElement(g.Box,null,n.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,x.settingsDiv,x.rowMonthsDates)},n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{style:x.inputRadio,checked:!!e.period.dates,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months||=1;const o=[];for(let r=1;r<=31;r++)o.push(r);s.period.dates||=JSON.stringify(o),s.period.dows="",s.period.years=0,s.period.yearDate=0,s.period.yearMonth=0,s.period.weeks=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodDates")})),n.createElement(g.Box,{component:"div",sx:S.getStyle(this.props.theme,x.settingsDiv,x.rowMonthsDates)},this.getPeriodSettingsDates())):null)),n.createElement(g.Box,{component:"div",key:"years",sx:S.getStyle(this.props.theme,x.rowDiv,x.rowYears)},n.createElement("div",{style:x.modeDiv},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!e.period.years,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.years=1,s.period.yearDate=1,s.period.yearMonth=1,s.period.dows="",s.period.months=0,s.period.dates="",s.period.weeks=0,s.period.days=0,s.period.once="",this.onChange(s)}}),label:d.t("sch_periodYearly")})),n.createElement("div",{style:x.settingsDiv},n.createElement("div",{style:x.settingsDiv},this.getPeriodSettingsYearly()),!!e.period.years&&n.createElement("div",{style:x.settingsDiv},n.createElement("span",null,d.t("sch_on")),n.createElement(g.Input,{key:"input",value:this.state.schedule.period.yearDate,style:x.inputEvery,type:"number",inputProps:{min:1,max:31},onChange:s=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.yearDate=parseInt(s.target.value,10),o.period.yearDate<1&&(o.period.yearDate=31),o.period.yearDate>31&&(o.period.yearDate=1),this.onChange(o)}}),n.createElement(g.Select,{variant:"standard",value:e.period.yearMonth,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.yearMonth=s.target.value,this.onChange(o)}},n.createElement(g.MenuItem,{key:"every",value:0},d.t("sch_yearEveryMonth")),Js.map((s,o)=>n.createElement(g.MenuItem,{key:s,value:o+1},d.t(s)))))))]}getPeriodSettingsMinutes(e){return n.createElement("div",{style:{display:"inline-block",marginTop:e?15:"inherit"}},n.createElement("label",{style:{marginLeft:4,marginRight:4}},d.t("sch_every")),n.createElement(g.Input,{value:this.state.schedule.time.interval,style:{...x.inputEvery,verticalAlign:"bottom"},type:"number",inputProps:{min:1},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.interval=parseInt(t.target.value,10),this.onChange(s)}}),n.createElement(g.Select,{variant:"standard",value:this.state.schedule.time.mode,onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.time.mode=t.target.value,this.onChange(s)}},n.createElement(g.MenuItem,{value:Pi.minutes},d.t("sch_periodMinutes")),n.createElement(g.MenuItem,{value:Pi.hours},d.t("sch_periodHours"))))}getPeriodSettingsWeekdays(){const e=this.state.schedule,t=e.period.dows&&e.period.dows!=="[1, 2, 3, 4, 5]"&&e.period.dows!=="[0, 6]";return[n.createElement("div",{key:"workdays"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.dows==="[1, 2, 3, 4, 5]",onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.dows="[1, 2, 3, 4, 5]",s.period.days&&(s.period.days=1),this.onChange(s)}}),label:d.t("sch_periodWorkdays")})),n.createElement("div",{key:"weekend"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.dows==="[0, 6]",onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.dows="[0, 6]",s.period.days&&(s.period.days=1),this.onChange(s)}}),label:d.t("sch_periodWeekend")})),n.createElement("div",{key:"specific",style:{verticalAlign:"top"}},n.createElement(g.FormControlLabel,{style:{verticalAlign:"top"},control:n.createElement(g.Radio,{style:x.inputRadio,checked:!!t,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.dows="[0, 1, 2, 3, 4, 5, 6]",s.period.days&&(s.period.days=1),this.onChange(s)}}),label:d.t("sch_periodWeekdays")}),t&&(e.period.days===1||e.period.weeks)&&n.createElement(g.FormGroup,{row:!0,style:{...x.inputGroup,width:150}},[1,2,3,4,5,6,0].map(s=>n.createElement(g.FormControlLabel,{key:`specific_${s}`,style:x.inputGroupElement,control:n.createElement(g.Checkbox,{style:x.inputSmallCheck,checked:e.period.dows.includes(s.toString()),onChange:o=>{const r=JSON.parse(JSON.stringify(this.state.schedule));let M;try{M=JSON.parse(r.period.dows)}catch{M=[]}o.target.checked&&!M.includes(s)?M.push(s):!o.target.checked&&M.includes(s)&&M.splice(M.indexOf(s),1),M.sort((a,u)=>a-u),r.period.dows=JSON.stringify(M),r.period.days&&(r.period.days=1),this.onChange(r)}}),label:d.t($i[s])}))))]}getPeriodSettingsDaily(){if(!this.state.schedule.period.days)return null;const e=this.state.schedule;return[n.createElement("div",{key:"every_day"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.days===1&&!e.period.dows,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=1,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEveryDay")})),n.createElement("div",{key:"everyN_day"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.days>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.days=2,t.period.dows="",this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.days>1&&[n.createElement(g.Input,{key:"input",value:this.state.schedule.period.days,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.days=parseInt(t.target.value,10),s.period.dows="",this.onChange(s)}}),n.createElement("span",{key:"span",style:{paddingRight:10}},d.t("sch_periodDay"))])]}getPeriodSettingsWeekly(){if(!this.state.schedule.period.weeks)return null;const e=this.state.schedule;return[n.createElement("div",{key:"radios",style:{display:"inline-block",verticalAlign:"top"}},n.createElement("div",null,n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.weeks===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=1,this.onChange(t)}}),label:d.t("sch_periodEveryWeek")})),n.createElement("div",null,n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.weeks>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.weeks=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.weeks>1&&[n.createElement(g.Input,{key:"input",value:this.state.schedule.period.weeks,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.weeks=parseInt(t.target.value,10),this.onChange(s)}}),n.createElement("span",{key:"text"},d.t("sch_periodWeek"))]))]}getPeriodSettingsDates(){if(!this.state.schedule.period.dates)return null;const e=this.state.schedule,t=[];for(let o=1;o<=31;o++)t.push(o);const s=JSON.parse(e.period.dates);return n.createElement(g.FormGroup,{row:!0,style:{...x.inputGroup,maxWidth:620}},n.createElement(g.FormControlLabel,{style:x.inputDateDay,control:n.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:s.length===31,onChange:()=>{const o=JSON.parse(JSON.stringify(this.state.schedule)),r=[];for(let M=1;M<=31;M++)r.push(M);o.period.dates=JSON.stringify(r),this.onChange(o)}}),label:d.t("sch_all")}),n.createElement(g.FormControlLabel,{style:x.inputDateDay,control:n.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!s.length,onChange:()=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.dates="[]",this.onChange(o)}}),label:d.t("sch_no_one")}),s.length!==31&&!!s.length&&n.createElement(g.FormControlLabel,{style:x.inputDateDay,control:n.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!1,onChange:()=>{const o=JSON.parse(JSON.stringify(this.state.schedule)),r=[],M=JSON.parse(o.period.dates);for(let a=1;a<=31;a++)M.includes(a)||r.push(a);r.sort((a,u)=>a-u),o.period.dates=JSON.stringify(r),this.onChange(o)}}),label:d.t("sch_invert")}),n.createElement("div",null),t.map(o=>n.createElement(g.FormControlLabel,{key:`date_${o}`,style:o?x.inputDateDay:{...x.inputDateDay,opacity:0,cursor:"default",userSelect:"none",pointerEvents:"none"},control:n.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:JSON.parse(e.period.dates).includes(o),onChange:r=>{const M=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(M.period.dates)}catch{a=[]}r.target.checked&&!a.includes(o)?a.push(o):!r.target.checked&&a.includes(o)&&a.splice(a.indexOf(o),1),a.sort((u,N)=>u-N),M.period.dates=JSON.stringify(a),this.onChange(M)}}),label:o<10?[n.createElement("span",{key:"0",style:{opacity:0}},"0"),n.createElement("span",{key:"num"},o)]:o})))}getPeriodSettingsMonthly(){if(!this.state.schedule.period.months)return null;const e=this.state.schedule,t=typeof e.period.months=="string"?JSON.parse(e.period.months):[];return[n.createElement("div",{key:"every"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:typeof e.period.months=="number"&&e.period.months===1,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months=1,this.onChange(e)}}),label:d.t("sch_periodEveryMonth")})),n.createElement("div",{key:"everyN"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:typeof e.period.months=="number"&&e.period.months>1,onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months=2,this.onChange(s)}}),label:d.t("sch_periodEvery")}),typeof e.period.months=="number"&&e.period.months>1&&[n.createElement(g.Input,{key:"input",value:e.period.months,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:s=>{const o=JSON.parse(JSON.stringify(this.state.schedule));o.period.months=parseInt(s.target.value,10),o.period.months<1&&(o.period.months=1),this.onChange(o)}}),n.createElement("span",{key:"text"},d.t("sch_periodMonth"))]),n.createElement("div",{key:"specific",style:{verticalAlign:"top"}},n.createElement(g.FormControlLabel,{style:{verticalAlign:"top"},control:n.createElement(g.Radio,{style:x.inputRadio,checked:typeof e.period.months=="string",onClick:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months="[1,2,3,4,5,6,7,8,9,10,11,12]",this.onChange(s)}}),label:d.t("sch_periodSpecificMonths")}),typeof e.period.months=="string"&&n.createElement(g.FormGroup,{row:!0,style:x.inputGroup},n.createElement(g.FormControlLabel,{style:x.inputDateDay,control:n.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:t.length===12,onChange:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule)),o=[];for(let r=1;r<=12;r++)o.push(r);s.period.months=JSON.stringify(o),this.onChange(s)}}),label:d.t("sch_all")}),n.createElement(g.FormControlLabel,{style:x.inputDateDay,control:n.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!t.length,onChange:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.months="[]",this.onChange(s)}}),label:d.t("sch_no_one")}),t.length!==12&&!!t.length&&n.createElement(g.FormControlLabel,{style:x.inputDateDay,control:n.createElement(g.Checkbox,{style:x.inputDateDayCheck,checked:!1,onChange:()=>{const s=JSON.parse(JSON.stringify(this.state.schedule)),o=[],r=JSON.parse(s.period.months);for(let M=1;M<=12;M++)r.includes(M)||o.push(M);o.sort((M,a)=>M-a),s.period.months=JSON.stringify(o),this.onChange(s)}}),label:d.t("sch_invert")}),n.createElement("div",null),Js.map((s,o)=>n.createElement(g.FormControlLabel,{key:`month_${o}`,style:x.inputGroupElement,control:n.createElement(g.Checkbox,{style:x.inputSmallCheck,checked:typeof e.period.months=="string"?JSON.parse(e.period.months).includes(o+1):e.period.months===o,onChange:r=>{const M=JSON.parse(JSON.stringify(this.state.schedule));let a;try{a=JSON.parse(M.period.months)}catch{a=[]}r.target.checked&&!a.includes(o+1)?a.push(o+1):!r.target.checked&&a.includes(o+1)&&a.splice(a.indexOf(o+1),1),a.sort((u,N)=>u-N),M.period.months=JSON.stringify(a),this.onChange(M)}}),label:d.t(s)}))))]}getPeriodSettingsYearly(){if(!this.state.schedule.period.years)return null;const e=this.state.schedule;return[n.createElement("div",{key:"year"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.years===1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=1,this.onChange(t)}}),label:d.t("sch_periodEveryYear")})),n.createElement("div",{key:"every"},n.createElement(g.FormControlLabel,{control:n.createElement(g.Radio,{style:x.inputRadio,checked:e.period.years>1,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.period.years=2,this.onChange(t)}}),label:d.t("sch_periodEvery")}),e.period.years>1&&[n.createElement(g.Input,{key:"input",value:this.state.schedule.period.years,style:x.inputEvery,type:"number",inputProps:{min:2},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.schedule));s.period.years=parseInt(t.target.value,10),s.period.years<1&&(s.period.years=1),this.onChange(s)}}),n.createElement("span",{key:"text"},d.t("sch_periodYear"))])]}static now2string(e){const t=new Date;return t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),e&&(t.setDate(t.getDate()+2),t.setMilliseconds(t.getMilliseconds()-1)),`${Ve(t.getDate())}.${Ve(t.getMonth()+1)}.${Ve(t.getFullYear())}`}static string2date(e){let t=e.split(".");return t.length===1?(t=e.split("-"),new Date(parseInt(t[0],10),parseInt(t[1],10)-1,parseInt(t[2],10))):new Date(parseInt(t[2],10),parseInt(t[1],10)-1,parseInt(t[0],10))}getValidSettings(){const e=this.state.schedule;return n.createElement("div",{style:x.rowDiv},n.createElement("div",{style:{...x.modeDiv,verticalAlign:"middle"}},n.createElement("span",{style:{fontWeight:"bold",paddingRight:10}},d.t("sch_valid")),n.createElement("span",null,d.t("sch_validFrom"))),n.createElement("div",{style:x.settingsDiv},n.createElement(g.TextField,{variant:"standard",style:{...x.inputDate,marginRight:10},key:"exactTimeFrom",inputRef:this.refFrom,defaultValue:Wi(e.valid.from),type:"date",onChange:t=>{this.timerFrom&&clearTimeout(this.timerFrom),this.refFrom.current&&(this.refFrom.current.style.background="#ff000030"),this.timerFrom=setTimeout(s=>{this.timerFrom=null,this.refFrom.current&&(this.refFrom.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),r=le.string2date(s);r.toString()!=="Invalid Date"&&(o.valid.from=`${Ve(r.getDate())}.${Ve(r.getMonth()+1)}.${r.getFullYear()}`,this.onChange(o))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}),n.createElement(g.FormControlLabel,{control:n.createElement(g.Checkbox,{style:x.inputRadio,checked:!!e.valid.to,onClick:()=>{const t=JSON.parse(JSON.stringify(this.state.schedule));t.valid.to=t.valid.to?"":le.now2string(!0),this.onChange(t)}}),label:d.t("sch_validTo")}),!!e.valid.to&&n.createElement(g.TextField,{variant:"standard",inputRef:this.refTo,style:{...x.inputDate,marginRight:10},key:"exactTimeFrom",type:"date",defaultValue:Wi(e.valid.to),onChange:t=>{this.timerTo&&clearTimeout(this.timerTo),this.refTo.current&&(this.refTo.current.style.background="#ff000030"),this.timerTo=setTimeout(s=>{this.timerTo=null,this.refTo.current&&(this.refTo.current.style.background="");const o=JSON.parse(JSON.stringify(this.state.schedule)),r=le.string2date(s);r.toString()!=="Invalid Date"&&(o.valid.to=`${Ve(r.getDate())}.${Ve(r.getMonth()+1)}.${r.getFullYear()}`,this.onChange(o))},1500,t.target.value)},slotProps:{inputLabel:{shrink:!0}},margin:"normal"})))}render(){return n.createElement("div",{style:{height:"calc(100% - 48px)",width:"100%",overflow:"hidden"}},n.createElement("div",null,this.state.desc),n.createElement("div",{style:x.scrollWindow},n.createElement("h5",null,d.t("sch_time")),this.getTimePeriodElements(),this.getTimeExactElements(),le.getDivider(),n.createElement("h5",null,d.t("sch_period")),this.getPeriodModes(),!this.state.schedule.period.once&&le.getDivider(),!this.state.schedule.period.once&&this.getValidSettings()))}}const Bs={different:{opacity:.5},icon:{width:16,height:16,marginRight:8}};class l4e extends b.Component{wordDifferent;timeout=null;constructor(e){super(e),e.different&&(this.wordDifferent=e.t("ra___different__"));let t;Array.isArray(e.list)?t=e.list.filter(s=>(s==null?void 0:s._id)&&s.common).map(s=>{var o,r;return{name:S.getObjectNameFromObj(s,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:s._id,icon:(o=s.common)==null?void 0:o.icon,color:(r=s.common)==null?void 0:r.color}}):t=Object.values(e.list).filter(s=>(s==null?void 0:s._id)&&s.common).map(s=>{var o,r;return{name:S.getObjectNameFromObj(s,e.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:s._id,icon:(o=s.common)==null?void 0:o.icon,color:(r=s.common)==null?void 0:r.color}}),e.different&&e.value===e.different&&t.unshift({value:e.different,name:this.wordDifferent||""}),e.allowNone&&t.unshift({value:"",name:d.t("ra_none")}),this.state={list:t}}render(){this.props.allowNone&&!this.state.list.find(o=>o.value==="")?this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const o=JSON.parse(JSON.stringify(this.state.list));o.unshift({value:"",name:d.t("ra_none")}),this.setState({list:o})},100):!this.props.allowNone&&this.state.list.find(o=>o.value==="")&&(this.timeout=this.timeout||setTimeout(()=>{this.timeout=null;const o=JSON.parse(JSON.stringify(this.state.list)),r=this.state.list.findIndex(M=>M.value==="");o.splice(r,1),this.setState({list:o})},100));const e=this.state.list.find(o=>o.value===this.props.value||this.props.removePrefix&&o.value.replace(this.props.removePrefix,"")===this.props.value),t=this.props.value===this.props.different?{}:{color:(e==null?void 0:e.color)||void 0,backgroundColor:S.getInvertedColor((e==null?void 0:e.color)||"",this.props.themeType)};this.props.dense&&this.props.style&&Object.assign(t,this.props.style);const s=n.createElement(g.Select,{variant:"standard",disabled:this.props.disabled,value:this.props.value,slotProps:{input:this.props.inputProps},renderValue:()=>n.createElement("span",null,e!=null&&e.icon?n.createElement(Ie,{src:e==null?void 0:e.icon,style:Bs.icon}):null,e==null?void 0:e.name),sx:{"&.MuiSelect-root":this.props.value===this.props.different?Bs.different:{}},classes:{root:this.props.dense?this.props.className:""},style:t,onChange:o=>{if(this.props.different&&o.target.value!==this.props.different){let r=null;for(let M=0;Mthis.props.onChange(o.target.value));return}}this.props.onChange(this.props.removePrefix?o.target.value.replace(this.props.removePrefix,""):o.target.value)}},this.state.list.map(o=>n.createElement(g.MenuItem,{style:this.props.different&&o.value===this.props.different?Bs.different:{color:o.color||void 0,backgroundColor:S.getInvertedColor(o.color||"",this.props.themeType)},key:o.value,value:o.value},o.icon?n.createElement(Ie,{src:o.icon,style:Bs.icon}):null,o.name)));return this.props.dense?s:n.createElement(g.FormControl,{variant:"standard",fullWidth:!!this.props.fullWidth,style:this.props.style,className:this.props.className},n.createElement(g.InputLabel,null,this.props.label),s)}}class L4e extends b.Component{resizerRefTable;resizerActiveIndex;resizerActiveDiv;resizerCurrentWidths;widthFilled=!1;installTimeout=null;resizerMin=0;resizerMinNext=0;resizerPosition=0;resizerOldWidth=0;resizerOldWidthNext=0;constructor(e){super(e),this.resizerRefTable=n.createRef(),this.resizerActiveIndex=null,this.resizerActiveDiv=null,this.resizerCurrentWidths=[]}componentDidMount(){this.resizerInstall()}componentWillUnmount(){this.resizerUninstall()}resizerInstall(){if(this.resizerRefTable.current&&!this.resizerRefTable.current._installed){this.resizerRefTable.current._installed=!0;const e=this.resizerRefTable.current.querySelectorAll("th"),t=(window._localStorage||window.localStorage).getItem(`App.${this.props.name||"history"}.table`);if(this.widthFilled=!1,t)try{this.resizerCurrentWidths=JSON.parse(t),this.widthFilled=!0}catch{}if(this.widthFilled)if(this.resizerCurrentWidths.length!==e.length)this.resizerCurrentWidths=[],this.widthFilled=!1;else{const s=this.resizerRefTable.current.offsetWidth;let o=0;for(let r=0;r20&&(this.resizerCurrentWidths=[],this.widthFilled=!1)}for(let s=0;s{this.installTimeout=null,this.resizerInstall()},100)}resizerReset=()=>{for(let e=0;e{if(this.resizerActiveDiv&&this.resizerActiveIndex!==null){const t=this.resizerOldWidth+e.clientX-this.resizerPosition,s=this.resizerOldWidthNext-e.clientX+this.resizerPosition;(!this.resizerMin||t>this.resizerMin)&&(!this.resizerMinNext||s>this.resizerMinNext)&&(this.resizerCurrentWidths[this.resizerActiveIndex]=t,this.resizerCurrentWidths[this.resizerActiveIndex+1]=s,this.resizerApplyWidths())}};resizerMouseUp=()=>{(window._localStorage||window.localStorage).setItem(`App.${this.props.name||"history"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveIndex=null,this.resizerActiveDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)};resizerMouseDown=e=>{var t,s,o,r;if(this.resizerActiveIndex===null||this.resizerActiveIndex===void 0){console.log(`Mouse down ${(t=e.target)==null?void 0:t.dataset.index}`),this.resizerActiveIndex=parseInt(((s=e.target)==null?void 0:s.dataset.index)||"0",10),this.resizerActiveDiv=e.target,this.resizerMin=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex]:0,this.resizerMinNext=this.props.minWidths?this.props.minWidths[this.resizerActiveIndex+1]:0,this.resizerPosition=e.clientX;let M;this.resizerCurrentWidths[this.resizerActiveIndex]==="auto"&&(M=(o=this.resizerRefTable.current)==null?void 0:o.querySelectorAll("th"),M&&(this.resizerCurrentWidths[this.resizerActiveIndex]=M[this.resizerActiveIndex].offsetWidth)),this.resizerCurrentWidths[this.resizerActiveIndex+1]==="auto"&&(M=M||((r=this.resizerRefTable.current)==null?void 0:r.querySelectorAll("th")),M&&(this.resizerCurrentWidths[this.resizerActiveIndex+1]=M[this.resizerActiveIndex+1].offsetWidth)),this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveIndex],this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerActiveIndex+1],window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}};render(){if(this.props.ready===!1)return n.createElement(g.Skeleton,null);const e={gridTemplateColumns:this.resizerApplyWidths()};return n.createElement(g.Table,{stickyHeader:this.props.stickyHeader,size:this.props.size||"small",className:this.props.className,sx:this.props.sx,ref:this.resizerRefTable,style:{...this.props.style||void 0,...e}},this.props.children)}}const Ri={div:{borderRadius:3,padding:"0 3px",lineHeight:"20px",whiteSpace:"nowrap",overflow:"hidden",display:"flex",alignItems:"center"},icon:{width:16,height:16,marginRight:8,verticalAlign:"middle"},text:{display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"}};function j4e(i){var r,M,a,u,N,l,c,L,j;const e=i.value;let t;const s=i.removePrefix||"";if(typeof e=="string"){const T=i.list;if(T)if(Array.isArray(T)){const D=T.find(I=>(I==null?void 0:I._id)===s+e);D?t={name:S.getObjectNameFromObj(D,i.lang).replace("system.group.",""),value:D._id,icon:i.icon||((r=D.common)==null?void 0:r.icon),color:i.color||((M=D.common)==null?void 0:M.color)}:t={name:e,value:s+e}}else if(T[s+e]){const D=T[s+e];t={name:S.getObjectNameFromObj(D,i.lang).replace("system.group.",""),value:D._id,icon:i.icon||((a=D.common)==null?void 0:a.icon),color:i.color||((u=D.common)==null?void 0:u.color)}}else t={name:e,value:s+e,icon:i.icon,color:i.color};else t={name:e,value:s+e,icon:i.icon,color:i.color}}else if(!e||typeof e!="object")t={name:"",value:"",icon:i.icon,color:i.color};else{const T=e;t={name:S.getObjectNameFromObj(T,i.lang).replace("system.group.","").replace("system.user.","").replace("enum.rooms.","").replace("enum.functions.",""),value:T._id,icon:i.icon||((N=T.common)==null?void 0:N.icon),color:i.color||((l=T.common)==null?void 0:l.color)}}const o=t!=null&&t.color?{border:`1px solid ${S.invertColor(t==null?void 0:t.color)}`,color:S.getInvertedColor(t==null?void 0:t.color,i.themeType||"light",!0)||void 0,backgroundColor:t==null?void 0:t.color}:{};return n.createElement("div",{style:{...i.style||void 0,...Ri.div,...o||void 0},className:S.clsx(i.className,(c=i.moreClasses)==null?void 0:c.root),title:i.title||t.value},t!=null&&t.icon?n.createElement(Ie,{src:t==null?void 0:t.icon,className:(L=i.moreClasses)==null?void 0:L.icon,style:Ri.icon}):null,n.createElement("div",{style:Ri.text,className:(j=i.moreClasses)==null?void 0:j.text},t==null?void 0:t.name))}function g4e({themeName:i,toggleTheme:e,t,className:s,style:o,size:r}){return n.createElement("div",{className:s||void 0,style:o||void 0},n.createElement(g.Tooltip,{title:t("ra_Change color theme"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},n.createElement(g.IconButton,{onClick:()=>e(),size:r||"medium"},i==="dark"&&n.createElement(m.Brightness4,{className:s}),i==="blue"&&n.createElement(m.Brightness5,{className:s}),i==="colored"&&n.createElement(m.Brightness6,{className:s}),i!=="dark"&&i!=="blue"&&i!=="colored"&&n.createElement(m.Brightness7,{className:s}))))}function wi(){return(wi=Object.assign||function(i){for(var e=1;e=0||(o[t]=i[t]);return o}function Do(i){var e=b.useRef(i),t=b.useRef(function(s){e.current&&e.current(s)});return e.current=i,t.current}var ws=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),i>t?t:i0:I.buttons>0)&&o.current?r(RM(o.current,I,a.current)):D(!1)},T=function(){return D(!1)};function D(I){var C=u.current,E=zo(o.current),A=I?E.addEventListener:E.removeEventListener;A(C?"touchmove":"mousemove",j),A(C?"touchend":"mouseup",T)}return[function(I){var C=I.nativeEvent,E=o.current;if(E&&(JM(C),!function(_,p){return p&&!ys(_)}(C,u.current)&&E)){if(ys(C)){u.current=!0;var A=C.changedTouches||[];A.length&&(a.current=A[0].identifier)}E.focus(),r(RM(E,C,a.current)),D(!0)}},function(I){var C=I.which||I.keyCode;C<37||C>40||(I.preventDefault(),M({left:C===39?.05:C===37?-.05:0,top:C===40?.05:C===38?-.05:0}))},D]},[M,r]),l=N[0],c=N[1],L=N[2];return b.useEffect(function(){return L},[L]),n.createElement("div",wi({},s,{onTouchStart:l,onMouseDown:l,className:"react-colorful__interactive",ref:o,onKeyDown:c,tabIndex:0,role:"slider"}))}),Ho=function(i){return i.filter(Boolean).join(" ")},Qa=function(i){var e=i.color,t=i.left,s=i.top,o=s===void 0?.5:s,r=Ho(["react-colorful__pointer",i.className]);return n.createElement("div",{className:r,style:{top:100*o+"%",left:100*t+"%"}},n.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:e}}))},Le=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*i)/t},pNe=function(i){return SNe(Io(i))},Io=function(i){return i[0]==="#"&&(i=i.substring(1)),i.length<6?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?Le(parseInt(i[3]+i[3],16)/255,2):1}:{r:parseInt(i.substring(0,2),16),g:parseInt(i.substring(2,4),16),b:parseInt(i.substring(4,6),16),a:i.length===8?Le(parseInt(i.substring(6,8),16)/255,2):1}},mNe=function(i){return _Ne(ENe(i))},ONe=function(i){var e=i.s,t=i.v,s=i.a,o=(200-e)*t/100;return{h:Le(i.h),s:Le(o>0&&o<200?e*t/100/(o<=100?o:200-o)*100:0),l:Le(o/2),a:Le(s,2)}},wo=function(i){var e=ONe(i);return"hsl("+e.h+", "+e.s+"%, "+e.l+"%)"},ENe=function(i){var e=i.h,t=i.s,s=i.v,o=i.a;e=e/360*6,t/=100,s/=100;var r=Math.floor(e),M=s*(1-t),a=s*(1-(e-r)*t),u=s*(1-(1-e+r)*t),N=r%6;return{r:Le(255*[s,a,M,M,u,s][N]),g:Le(255*[u,s,s,a,M,M][N]),b:Le(255*[M,M,u,s,s,a][N]),a:Le(o,2)}},Fs=function(i){var e=i.toString(16);return e.length<2?"0"+e:e},_Ne=function(i){var e=i.r,t=i.g,s=i.b,o=i.a,r=o<1?Fs(Le(255*o)):"";return"#"+Fs(e)+Fs(t)+Fs(s)+r},SNe=function(i){var e=i.r,t=i.g,s=i.b,o=i.a,r=Math.max(e,t,s),M=r-Math.min(e,t,s),a=M?r===e?(t-s)/M:r===t?2+(s-e)/M:4+(e-t)/M:0;return{h:Le(60*(a<0?a+6:a)),s:Le(r?M/r*100:0),v:Le(r/255*100),a:o}},xNe=n.memo(function(i){var e=i.hue,t=i.onChange,s=Ho(["react-colorful__hue",i.className]);return n.createElement("div",{className:s},n.createElement(Ya,{onMove:function(o){t({h:360*o.left})},onKey:function(o){t({h:ws(e+360*o.left,0,360)})},"aria-label":"Hue","aria-valuenow":Le(e),"aria-valuemax":"360","aria-valuemin":"0"},n.createElement(Qa,{className:"react-colorful__hue-pointer",left:e/360,color:wo({h:e,s:100,v:100,a:1})})))}),fNe=n.memo(function(i){var e=i.hsva,t=i.onChange,s={backgroundColor:wo({h:e.h,s:100,v:100,a:1})};return n.createElement("div",{className:"react-colorful__saturation",style:s},n.createElement(Ya,{onMove:function(o){t({s:100*o.left,v:100-100*o.top})},onKey:function(o){t({s:ws(e.s+100*o.left,0,100),v:ws(e.v-100*o.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Le(e.s)+"%, Brightness "+Le(e.v)+"%"},n.createElement(Qa,{className:"react-colorful__saturation-pointer",top:1-e.v/100,left:e.s/100,color:wo(e)})))}),Ua=function(i,e){if(i===e)return!0;for(var t in i)if(i[t]!==e[t])return!1;return!0},kNe=function(i,e){return i.toLowerCase()===e.toLowerCase()||Ua(Io(i),Io(e))};function YNe(i,e,t){var s=Do(t),o=b.useState(function(){return i.toHsva(e)}),r=o[0],M=o[1],a=b.useRef({color:e,hsva:r});b.useEffect(function(){if(!i.equal(e,a.current.color)){var N=i.toHsva(e);a.current={hsva:N,color:e},M(N)}},[e,i]),b.useEffect(function(){var N;Ua(r,a.current.hsva)||i.equal(N=i.fromHsva(r),a.current.color)||(a.current={hsva:r,color:N},s(N))},[r,i,s]);var u=b.useCallback(function(N){M(function(l){return Object.assign({},l,N)})},[]);return[r,u]}var QNe=typeof window<"u"?b.useLayoutEffect:b.useEffect,UNe=function(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0},BM=new Map,vNe=function(i){QNe(function(){var e=i.current?i.current.ownerDocument:document;if(e!==void 0&&!BM.has(e)){var t=e.createElement("style");t.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,BM.set(e,t);var s=UNe();s&&t.setAttribute("nonce",s),e.head.appendChild(t)}},[])},bNe=function(i){var e=i.className,t=i.colorModel,s=i.color,o=s===void 0?t.defaultColor:s,r=i.onChange,M=ka(i,["className","colorModel","color","onChange"]),a=b.useRef(null);vNe(a);var u=YNe(t,o,r),N=u[0],l=u[1],c=Ho(["react-colorful",e]);return n.createElement("div",wi({},M,{ref:a,className:c}),n.createElement(fNe,{hsva:N,onChange:l}),n.createElement(xNe,{hue:N.h,onChange:l,className:"react-colorful__last-control"}))},$Ne={defaultColor:"000",toHsva:pNe,fromHsva:function(i){return mNe({h:i.h,s:i.s,v:i.v,a:1})},equal:kNe},PNe=function(i){return n.createElement(bNe,wi({},i,{colorModel:$Ne}))};class WNe extends b.Component{dialogName;filters;filterFunc;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectID.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters||{}});let s=this.props.selected||[];if(Array.isArray(s)||(s=[s]),s=s.filter(o=>o),e.filterFunc)if(typeof e.filterFunc=="string")try{this.filterFunc=new Function("obj",e.filterFunc)}catch{console.error(`Cannot parse filter function: "obj => ${e.filterFunc}"`),this.filterFunc=void 0}else this.filterFunc=e.filterFunc;this.state={selected:s,name:"",selectionBlocked:!1}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}render(){let e;return this.state.name||this.state.selected.length?this.state.selected.length===1?e=[n.createElement("span",{key:"selected"},d.t("ra_Selected")," "),n.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},(this.state.name||this.state.selected[0])+(this.state.name?` [${this.state.selected[0]}]`:""))]:e=[n.createElement("span",{key:"selected"},d.t("ra_Selected")," "),n.createElement("span",{key:"id",style:{fontWeight:"bold",fontStyle:"italic"}},d.t("%s items",this.state.selected.length.toString()))]:e=this.props.title||d.t("ra_Please select object ID..."),n.createElement(g.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{height:"95%",p:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)"}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectid_title"},n.createElement(g.DialogTitle,{id:"ar_dialog_selectid_title",style:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}},e),n.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden",padding:"8px 4px"}},n.createElement(ANe,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,dateFormat:this.props.dateFormat,defaultFilters:this.filters,dialogName:this.dialogName,isFloatComma:this.props.isFloatComma,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,expertMode:this.props.expertMode,columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types?Array.isArray(this.props.types)?this.props.types:[this.props.types]:["state"],root:this.props.root,t:d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,customFilter:this.props.customFilter,allowNonObjects:this.props.allowNonObjects,onFilterChanged:t=>{this.filters=t,(window._localStorage||window.localStorage).setItem(this.dialogName,JSON.stringify(t))},onSelect:async(t,s,o)=>{let r;if(Array.isArray(t)?r=t:r=[t],JSON.stringify(r)!==JSON.stringify(this.state.selected)){let M=!0;if(this.props.onSelectConfirm){const a={};for(const u of r)try{a[u]=await this.props.socket.getObject(u)}catch{}M=await this.props.onSelectConfirm(r,a)}this.setState({selected:r,name:s,selectionBlocked:!M},()=>o&&this.handleOk())}else o&&this.handleOk()},filterFunc:this.filterFunc,title:"",classes:{}})),n.createElement(g.DialogActions,null,n.createElement(g.Button,{id:`ar_dialog_selectid_ok_${this.props.dialogName||""}`,variant:"contained",onClick:()=>this.handleOk(),startIcon:n.createElement(m.Check,null),disabled:!this.state.selected.length||this.state.selectionBlocked,color:"primary"},this.props.ok||d.t("ra_Ok")),n.createElement(g.Button,{id:`ar_dialog_selectid_cancel_${this.props.dialogName||""}`,color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:n.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}function lt(i,e,t){if(typeof e=="string"&&(e=e.split(".")),!i)return null;if(e.length===1)return t&&t[i[e[0]]]?t[i[e[0]]]:i[e[0]];const s=e.shift();return lt(i[s],e)}function va(i,e,t){if(typeof e=="string"&&(e=e.split(".")),e.length===1)return i[e[0]]=t;const s=e.shift();return(i[s]===null||i[s]===void 0)&&(i[s]={}),va(i[s],e,t)}const W={tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:i=>(i.palette.mode==="dark","#888"),color:i=>i.palette.mode==="dark"?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},fieldEditWithButton:{width:"calc(100% - 33px)",display:"inline-block"},fieldEdit:{width:"100%",display:"inline-block",lineHeight:"50px",verticalAlign:"middle"},fieldButton:{width:30,display:"inline-block"},colorDialog:{overflow:"hidden",padding:15},subText:{fontSize:10,fontStyle:"italic"},glow:{animation:"glow 0.2s 2 alternate"}};function FM(i,e,t,s){const o=lt(i,t,s)||"",r=lt(e,t,s)||"";return ro?1:0}function RNe(i,e,t){return i==="desc"?(s,o)=>FM(s,o,e,t):(s,o)=>-FM(s,o,e,t)}function JNe(i,e){const t=i.map((s,o)=>({e:s,i:o}));return t.sort((s,o)=>{const r=e(s.e,o.e);return r||s.i-o.i}),t.map(s=>s.e)}class Co extends b.Component{selectCallback=null;updateTimeout=null;constructor(e){super(e);let t=(window._localStorage||window.localStorage).getItem(this.props.name||"iob-table")||"[]";try{t=JSON.parse(t)||[]}catch{t=[]}Array.isArray(t)||(t=[]),this.state={opened:t,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:this.props.columns[0].field,showSelectColor:!1}}static getDerivedStateFromProps(e,t){if(e.glowOnChange){const s=[];let o=0;return e.data&&t.data&&e.data.forEach(r=>{var a;o++;const M=(a=t.data)==null?void 0:a.find(u=>u.id===r.id);M?JSON.stringify(M)!==JSON.stringify(r)&&s.push(r.id):s.push(r.id)}),s.length&&s.length!==o?{data:e.data,update:s}:{data:e.data}}return{data:e.data}}renderCellEdit(e,t){let s=lt(e,t.field);return Array.isArray(s)&&(s=s[0]),t.lookup?this.renderCellEditSelect(t,s):t.editComponent?this.renderCellEditCustom(t,s,e):t.type==="boolean"||!t.type&&typeof s=="boolean"?this.renderCellEditBoolean(t,s):t.type==="color"?this.renderCellEditColor(t,s):t.type==="oid"?this.renderCellEditObjectID(t,s):t.type==="numeric"?this.renderCellEditNumber(t,s):this.renderCellEditString(t,s)}onChange(e,t,s){const o=this.state.editData?{...this.state.editData}:{};s===t?delete o[e.field]:o[e.field]=s,this.setState({editData:o})}renderCellEditSelect(e,t){return n.createElement(g.Select,{variant:"standard",onChange:s=>this.onChange(e,t,s.target.value),value:this.state.editData&&this.state.editData[e.field]||t},e.lookup&&Object.keys(e.lookup).map((s,o)=>{var r;return n.createElement(g.MenuItem,{key:o,value:s},(r=e.lookup)==null?void 0:r[s])}))}renderCellEditString(e,t){return n.createElement(g.TextField,{variant:"standard",style:W.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:s=>this.onChange(e,t,s.target.value)})}renderCellEditNumber(e,t){return n.createElement(g.TextField,{variant:"standard",style:W.fieldEdit,type:"number",fullWidth:!0,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:s=>this.onChange(e,t,s.target.value)})}renderCellEditCustom(e,t,s){const o=e.editComponent;return this.state.editData&&this.state.editData[e.field]!==void 0&&(t=this.state.editData[e.field],s=JSON.parse(JSON.stringify(s)),s[e.field]=t),o?n.createElement(o,{value:t,rowData:s,onChange:r=>this.onChange(e,t,r)}):null}renderCellEditBoolean(e,t){return n.createElement(g.Checkbox,{checked:this.state.editData&&this.state.editData[e.field]!==void 0?!!this.state.editData[e.field]:!!t,onChange:s=>this.onChange(e,!!t,s.target.checked),inputProps:{"aria-label":"checkbox"}})}renderSelectColorDialog(){return n.createElement(g.Dialog,{sx:{"& .MuiPaper-root":W.root,"& .MuiPaper-paper":W.paper},onClose:()=>{this.selectCallback=null,this.setState({showSelectColor:!1})},open:this.state.showSelectColor},n.createElement(PNe,{color:this.state.selectIdValue,onChange:e=>this.setState({selectIdValue:e},()=>{this.selectCallback&&this.selectCallback(e)})}))}renderCellEditColor(e,t){const s=this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t;return n.createElement("div",{style:W.fieldEdit},n.createElement(g.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:s,inputProps:{style:{backgroundColor:s,color:S.isUseBright(s)?"#FFF":"#000"}},onChange:o=>this.onChange(e,!!t,o.target.value)}),n.createElement(g.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=o=>this.onChange(e,t,o),this.setState({showSelectColor:!0,selectIdValue:t})},size:"large"},n.createElement(m.Colorize,null)))}renderSelectIdDialog(){return this.state.showSelectId&&this.props.socket?n.createElement(WNe,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,selected:this.state.selectIdValue,onClose:()=>this.setState({showSelectId:!1}),onOk:e=>{this.setState({showSelectId:!1,selectIdValue:null});const t=Array.isArray(e)?e[0]:e;t&&this.selectCallback&&(this.selectCallback&&this.selectCallback(t),this.selectCallback=null)}}):null}renderCellEditObjectID(e,t){return n.createElement("div",{style:W.fieldEdit},n.createElement(g.TextField,{variant:"standard",fullWidth:!0,style:W.fieldEditWithButton,value:this.state.editData&&this.state.editData[e.field]!==void 0?this.state.editData[e.field]:t,onChange:s=>this.onChange(e,t,s.target.value)}),n.createElement(g.IconButton,{style:W.fieldButton,onClick:()=>{this.selectCallback=s=>this.onChange(e,t,s),this.setState({showSelectId:!0,selectIdValue:t})},size:"large"},n.createElement(m.ViewHeadline,null)))}static renderCellNonEdit(e,t){let s=lt(e,t.field,t.lookup);return Array.isArray(s)&&(s=s[0]),t.type==="boolean"?n.createElement(g.Checkbox,{checked:!!s,disabled:!0,inputProps:{"aria-label":"checkbox"}}):s}renderCell(e,t,s,o){return this.state.editMode===o&&t.editable!=="never"&&t.editable!==!1?n.createElement(g.TableCell,{key:t.field,style:{...W.cell,...s?W.cellSecondary:void 0,...t.cellStyle},component:"th"},this.renderCellEdit(e,t)):n.createElement(g.TableCell,{key:t.field,style:{...W.cell,...s?W.cellSecondary:void 0,...t.cellStyle},component:"th"},Co.renderCellNonEdit(e,t))}static renderCellWithSubField(e,t){const s=lt(e,t.field,t.lookup);if(t.subField){const o=lt(e,t.subField,t.subLookup);return n.createElement("div",null,n.createElement("div",{style:W.mainText},s),n.createElement("div",{style:{...W.subText,...t.subStyle||void 0}},o))}return n.createElement("div",null,n.createElement("div",{style:W.mainText},s))}renderLine(e,t){const s=this.props.levelShift===void 0?24:this.props.levelShift;t=t||0;const o=this.props.data.indexOf(e);if(!e||!t&&e.parentId||t&&!e.parentId)return null;const r=this.state.opened.includes(e.id),M=this.props.data.filter(u=>u.parentId===e.id),a=n.createElement(g.TableRow,{key:e.id,className:`table-row-${(e.id||"").toString().replace(/[.$]/g,"_")}`,style:{...this.state.update&&this.state.update.includes(e.id)&&W.glow||void 0,...W.row,...t?W.rowSecondary:void 0,...!t&&M.length?W.rowMainWithChildren:void 0,...!t&&!M.length?W.rowMainWithoutChildren:void 0,...this.state.editMode!==!1&&this.state.editMode!==o?W.rowNoEdit:void 0,...this.state.deleteMode!==!1&&this.state.deleteMode!==o?W.rowNoEdit:void 0}},n.createElement(g.TableCell,{style:{...W.cell,...W.cellExpand,...t?W.cellSecondary:void 0}},M.length?n.createElement(g.IconButton,{onClick:()=>{const u=[...this.state.opened],N=u.indexOf(e.id);N===-1?(u.push(e.id),u.sort()):u.splice(N,1),(window._localStorage||window.localStorage).setItem(this.props.name||"iob-table",JSON.stringify(u)),this.setState({opened:u})},size:"small"},r?n.createElement(m.ExpandMore,null):n.createElement(m.NavigateNext,null)):null),n.createElement(g.TableCell,{scope:"row",style:{...W.cell,...t?W.cellSecondary:void 0,...this.props.columns[0].cellStyle,paddingLeft:s*t}},this.props.columns[0].subField?Co.renderCellWithSubField(e,this.props.columns[0]):lt(e,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map((u,N)=>!N&&!u.hidden?null:this.renderCell(e,u,t,o)),this.props.onUpdate?n.createElement(g.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===o||this.state.deleteMode===o?n.createElement(g.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>{if(this.state.editMode!==!1){const u=JSON.parse(JSON.stringify(e));this.state.editData&&Object.keys(this.state.editData).forEach(N=>{var l;return va(u,N,(l=this.state.editData)==null?void 0:l[N])}),this.setState({editMode:!1},()=>this.props.onUpdate&&this.props.onUpdate(u,e))}else this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e))},size:"large"},n.createElement(m.Check,null)):n.createElement(g.IconButton,{disabled:this.state.editMode!==!1,onClick:()=>this.setState({editMode:o,editData:null}),size:"large"},n.createElement(m.Edit,null))):null,this.props.onDelete&&!this.props.onUpdate?n.createElement(g.TableCell,{style:{...W.cell,...W.cellButton}},this.state.deleteMode===o?n.createElement(g.IconButton,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:()=>this.setState({deleteMode:!1},()=>this.props.onDelete&&this.props.onDelete(e)),size:"large"},n.createElement(m.Check,null)):null):null,this.props.onUpdate||this.props.onDelete?n.createElement(g.TableCell,{style:{...W.cell,...W.cellButton}},this.state.editMode===o||this.state.deleteMode===o?n.createElement(g.IconButton,{onClick:()=>this.setState({editMode:!1,deleteMode:!1}),size:"large"},n.createElement(m.Close,null)):this.props.onDelete?n.createElement(g.IconButton,{disabled:this.state.deleteMode!==!1,onClick:()=>this.setState({deleteMode:o}),size:"large"},n.createElement(m.Delete,null)):null):null);if(!t&&r){const u=M.map(N=>this.renderLine(N,t+1));return u.unshift(a),u}return a}handleRequestSort(e){const t=this.state.orderBy===e&&this.state.order==="asc";this.setState({order:t?"desc":"asc",orderBy:e})}renderHead(){return n.createElement(g.TableHead,null,n.createElement(g.TableRow,{key:"headerRow"},n.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellExpand)}),n.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${this.props.columns[0].field.replace(/\./g,"_")}`]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:n.createElement(g.TableSortLabel,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:()=>this.handleRequestSort(this.props.columns[0].field)},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?n.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map((e,t)=>!t&&!e.hidden?null:n.createElement(g.TableCell,{key:e.field,sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W[`width_${e.field.replace(/\./g,"_")}`]),style:e.headerStyle||e.cellStyle,component:"th"},this.props.noSort?null:n.createElement(g.TableSortLabel,{active:this.state.orderBy===e.field,direction:this.state.orderBy===e.field?this.state.order:"asc",onClick:()=>this.handleRequestSort(e.field)},e.title||e.field,this.state.orderBy===e.field?n.createElement("span",{style:W.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null))),this.props.onUpdate?n.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)},this.props.noAdd?null:n.createElement(g.Fab,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:()=>this.props.onUpdate&&this.props.onUpdate(!0)},n.createElement(m.Add,null))):null,this.props.onDelete||this.props.onUpdate?n.createElement(g.TableCell,{component:"th",sx:S.getStyle(this.props.theme,W.cell,W.cellHeader,W.cellButton)}):null))}render(){const e=this.props.columns.find(t=>t.field===this.state.orderBy);if(e){const t=e.lookup,s=JNe(this.props.data,RNe(this.state.order,this.state.orderBy,t));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({update:null})},500)),n.createElement("div",{style:W.tableContainer,className:this.props.className},n.createElement(g.Table,{style:W.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),n.createElement(g.TableBody,null,s.map(o=>this.renderLine(o)))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}return null}}/*! * Cropper.js v1.6.2 * https://fengyuanchen.github.io/cropperjs * @@ -461,8 +461,8 @@ body { * Released under the MIT license * * Date: 2024-04-21T07:43:05.335Z - */function BM(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(i);e&&(s=s.filter(function(o){return Object.getOwnPropertyDescriptor(i,o).enumerable})),t.push.apply(t,s)}return t}function Ua(i){for(var e=1;ei.length)&&(e=i.length);for(var t=0,s=new Array(e);t
',Mle=Number.isNaN||Fe.isNaN;function H(i){return typeof i=="number"&&!Mle(i)}var rn=function(e){return e>0&&e<1/0};function Ji(i){return typeof i>"u"}function ft(i){return ho(i)==="object"&&i!==null}var nle=Object.prototype.hasOwnProperty;function Bt(i){if(!ft(i))return!1;try{var e=i.constructor,t=e.prototype;return e&&t&&nle.call(t,"isPrototypeOf")}catch{return!1}}function pe(i){return typeof i=="function"}var ale=Array.prototype.slice;function Ga(i){return Array.from?Array.from(i):ale.call(i)}function ae(i,e){return i&&pe(e)&&(Array.isArray(i)||H(i.length)?Ga(i).forEach(function(t,s){e.call(i,t,s,i)}):ft(i)&&Object.keys(i).forEach(function(t){e.call(i,i[t],t,i)})),i}var ie=Object.assign||function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),o=1;o0&&s.forEach(function(r){ft(r)&&Object.keys(r).forEach(function(M){e[M]=r[M]})}),e},cle=/\.\d*(?:0|9){12}\d*$/;function Ht(i){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return cle.test(i)?Math.round(i*e)/e:i}var ule=/^width|height|left|top|marginLeft|marginTop$/;function jt(i,e){var t=i.style;ae(e,function(s,o){ule.test(o)&&H(s)&&(s="".concat(s,"px")),t[o]=s})}function Nle(i,e){return i.classList?i.classList.contains(e):i.className.indexOf(e)>-1}function ce(i,e){if(e){if(H(i.length)){ae(i,function(s){ce(s,e)});return}if(i.classList){i.classList.add(e);return}var t=i.className.trim();t?t.indexOf(e)<0&&(i.className="".concat(t," ").concat(e)):i.className=e}}function Be(i,e){if(e){if(H(i.length)){ae(i,function(t){Be(t,e)});return}if(i.classList){i.classList.remove(e);return}i.className.indexOf(e)>=0&&(i.className=i.className.replace(e,""))}}function Ft(i,e,t){if(e){if(H(i.length)){ae(i,function(s){Ft(s,e,t)});return}t?ce(i,e):Be(i,e)}}var lle=/([a-z\d])([A-Z])/g;function qo(i){return i.replace(lle,"$1-$2").toLowerCase()}function fo(i,e){return ft(i[e])?i[e]:i.dataset?i.dataset[e]:i.getAttribute("data-".concat(qo(e)))}function hs(i,e,t){ft(t)?i[e]=t:i.dataset?i.dataset[e]=t:i.setAttribute("data-".concat(qo(e)),t)}function Lle(i,e){if(ft(i[e]))try{delete i[e]}catch{i[e]=void 0}else if(i.dataset)try{delete i.dataset[e]}catch{i.dataset[e]=void 0}else i.removeAttribute("data-".concat(qo(e)))}var Ha=/\s\s*/,Va=function(){var i=!1;if(Ci){var e=!1,t=function(){},s=Object.defineProperty({},"once",{get:function(){return i=!0,e},set:function(r){e=r}});Fe.addEventListener("test",t,s),Fe.removeEventListener("test",t,s)}return i}();function Ue(i,e,t){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},o=t;e.trim().split(Ha).forEach(function(r){if(!Va){var M=i.listeners;M&&M[r]&&M[r][t]&&(o=M[r][t],delete M[r][t],Object.keys(M[r]).length===0&&delete M[r],Object.keys(M).length===0&&delete i.listeners)}i.removeEventListener(r,o,s)})}function Se(i,e,t){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},o=t;e.trim().split(Ha).forEach(function(r){if(s.once&&!Va){var M=i.listeners,n=M===void 0?{}:M;o=function(){delete n[r][t],i.removeEventListener(r,o,s);for(var N=arguments.length,l=new Array(N),c=0;cMath.abs(t)&&(t=L)})}),t}function Hs(i,e){var t=i.pageX,s=i.pageY,o={endX:t,endY:s};return e?o:Ua({startX:t,startY:s},o)}function Tle(i){var e=0,t=0,s=0;return ae(i,function(o){var r=o.startX,M=o.startY;e+=r,t+=M,s+=1}),e/=s,t/=s,{pageX:e,pageY:t}}function gt(i){var e=i.aspectRatio,t=i.height,s=i.width,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",r=rn(s),M=rn(t);if(r&&M){var n=t*e;o==="contain"&&n>s||o==="cover"&&n90?{width:u,height:n}:{width:n,height:u}}function Dle(i,e,t,s){var o=e.aspectRatio,r=e.naturalWidth,M=e.naturalHeight,n=e.rotate,u=n===void 0?0:n,N=e.scaleX,l=N===void 0?1:N,c=e.scaleY,L=c===void 0?1:c,j=t.aspectRatio,T=t.naturalWidth,D=t.naturalHeight,z=s.fillColor,h=z===void 0?"transparent":z,O=s.imageSmoothingEnabled,p=O===void 0?!0:O,E=s.imageSmoothingQuality,C=E===void 0?"low":E,I=s.maxWidth,_=I===void 0?1/0:I,k=s.maxHeight,f=k===void 0?1/0:k,P=s.minWidth,Y=P===void 0?0:P,V=s.minHeight,oe=V===void 0?0:V,F=document.createElement("canvas"),G=F.getContext("2d"),ue=gt({aspectRatio:j,width:_,height:f}),ke=gt({aspectRatio:j,width:Y,height:oe},"cover"),Ye=Math.min(ue.width,Math.max(ke.width,T)),Qt=Math.min(ue.height,Math.max(ke.height,D)),hi=gt({aspectRatio:o,width:_,height:f}),is=gt({aspectRatio:o,width:Y,height:oe},"cover"),os=Math.min(hi.width,Math.max(is.width,r)),rs=Math.min(hi.height,Math.max(is.height,M)),_s=[-os/2,-rs/2,os,rs];return F.width=Ht(Ye),F.height=Ht(Qt),G.fillStyle=h,G.fillRect(0,0,Ye,Qt),G.save(),G.translate(Ye/2,Qt/2),G.rotate(u*Math.PI/180),G.scale(l,L),G.imageSmoothingEnabled=p,G.imageSmoothingQuality=C,G.drawImage.apply(G,[i].concat(ba(_s.map(function(Ss){return Math.floor(Ht(Ss))})))),G.restore(),F}var Xa=String.fromCharCode;function dle(i,e,t){var s="";t+=e;for(var o=e;o0;)t.push(Xa.apply(null,Ga(o.subarray(0,s)))),o=o.subarray(s);return"data:".concat(e,";base64,").concat(btoa(t.join("")))}function Cle(i){var e=new DataView(i),t;try{var s,o,r;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var M=e.byteLength,n=2;n+1=8&&(r=N+c)}}}if(r){var L=e.getUint16(r,s),j,T;for(T=0;T=0?r:Ba),height:Math.max(s.offsetHeight,M>=0?M:Fa)};this.containerData=n,jt(o,{width:n.width,height:n.height}),ce(e,me),Be(o,me)},initCanvas:function(){var e=this.containerData,t=this.imageData,s=this.options.viewMode,o=Math.abs(t.rotate)%180===90,r=o?t.naturalHeight:t.naturalWidth,M=o?t.naturalWidth:t.naturalHeight,n=r/M,u=e.width,N=e.height;e.height*n>e.width?s===3?u=e.height*n:N=e.width/n:s===3?N=e.width/n:u=e.height*n;var l={aspectRatio:n,naturalWidth:r,naturalHeight:M,width:u,height:N};this.canvasData=l,this.limited=s===1||s===2,this.limitCanvas(!0,!0),l.width=Math.min(Math.max(l.width,l.minWidth),l.maxWidth),l.height=Math.min(Math.max(l.height,l.minHeight),l.maxHeight),l.left=(e.width-l.width)/2,l.top=(e.height-l.height)/2,l.oldLeft=l.left,l.oldTop=l.top,this.initialCanvasData=ie({},l)},limitCanvas:function(e,t){var s=this.options,o=this.containerData,r=this.canvasData,M=this.cropBoxData,n=s.viewMode,u=r.aspectRatio,N=this.cropped&&M;if(e){var l=Number(s.minCanvasWidth)||0,c=Number(s.minCanvasHeight)||0;n>1?(l=Math.max(l,o.width),c=Math.max(c,o.height),n===3&&(c*u>l?l=c*u:c=l/u)):n>0&&(l?l=Math.max(l,N?M.width:0):c?c=Math.max(c,N?M.height:0):N&&(l=M.width,c=M.height,c*u>l?l=c*u:c=l/u));var L=gt({aspectRatio:u,width:l,height:c});l=L.width,c=L.height,r.minWidth=l,r.minHeight=c,r.maxWidth=1/0,r.maxHeight=1/0}if(t)if(n>(N?0:1)){var j=o.width-r.width,T=o.height-r.height;r.minLeft=Math.min(0,j),r.minTop=Math.min(0,T),r.maxLeft=Math.max(0,j),r.maxTop=Math.max(0,T),N&&this.limited&&(r.minLeft=Math.min(M.left,M.left+(M.width-r.width)),r.minTop=Math.min(M.top,M.top+(M.height-r.height)),r.maxLeft=M.left,r.maxTop=M.top,n===2&&(r.width>=o.width&&(r.minLeft=Math.min(0,j),r.maxLeft=Math.max(0,j)),r.height>=o.height&&(r.minTop=Math.min(0,T),r.maxTop=Math.max(0,T))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=o.width,r.maxTop=o.height},renderCanvas:function(e,t){var s=this.canvasData,o=this.imageData;if(t){var r=yle({width:o.naturalWidth*Math.abs(o.scaleX||1),height:o.naturalHeight*Math.abs(o.scaleY||1),degree:o.rotate||0}),M=r.width,n=r.height,u=s.width*(M/s.naturalWidth),N=s.height*(n/s.naturalHeight);s.left-=(u-s.width)/2,s.top-=(N-s.height)/2,s.width=u,s.height=N,s.aspectRatio=M/n,s.naturalWidth=M,s.naturalHeight=n,this.limitCanvas(!0,!1)}(s.width>s.maxWidth||s.widths.maxHeight||s.heightt.width?r.height=r.width/s:r.width=r.height*s),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*o),r.height=Math.max(r.minHeight,r.height*o),r.left=t.left+(t.width-r.width)/2,r.top=t.top+(t.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=ie({},r)},limitCropBox:function(e,t){var s=this.options,o=this.containerData,r=this.canvasData,M=this.cropBoxData,n=this.limited,u=s.aspectRatio;if(e){var N=Number(s.minCropBoxWidth)||0,l=Number(s.minCropBoxHeight)||0,c=n?Math.min(o.width,r.width,r.width+r.left,o.width-r.left):o.width,L=n?Math.min(o.height,r.height,r.height+r.top,o.height-r.top):o.height;N=Math.min(N,o.width),l=Math.min(l,o.height),u&&(N&&l?l*u>N?l=N/u:N=l*u:N?l=N/u:l&&(N=l*u),L*u>c?L=c/u:c=L*u),M.minWidth=Math.min(N,c),M.minHeight=Math.min(l,L),M.maxWidth=c,M.maxHeight=L}t&&(n?(M.minLeft=Math.max(0,r.left),M.minTop=Math.max(0,r.top),M.maxLeft=Math.min(o.width,r.left+r.width)-M.width,M.maxTop=Math.min(o.height,r.top+r.height)-M.height):(M.minLeft=0,M.minTop=0,M.maxLeft=o.width-M.width,M.maxTop=o.height-M.height))},renderCropBox:function(){var e=this.options,t=this.containerData,s=this.cropBoxData;(s.width>s.maxWidth||s.widths.maxHeight||s.height=t.width&&s.height>=t.height?Pa:Xo),jt(this.cropBox,ie({width:s.width,height:s.height},Ds({translateX:s.left,translateY:s.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Vt(this.element,Oo,this.getData())}},ple={initPreview:function(){var e=this.element,t=this.crossOrigin,s=this.options.preview,o=t?this.crossOriginUrl:this.url,r=e.alt||"The image to preview",M=document.createElement("img");if(t&&(M.crossOrigin=t),M.src=o,M.alt=r,this.viewBox.appendChild(M),this.viewBoxImage=M,!!s){var n=s;typeof s=="string"?n=e.ownerDocument.querySelectorAll(s):s.querySelector&&(n=[s]),this.previews=n,ae(n,function(u){var N=document.createElement("img");hs(u,Gs,{width:u.offsetWidth,height:u.offsetHeight,html:u.innerHTML}),t&&(N.crossOrigin=t),N.src=o,N.alt=r,N.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',u.innerHTML="",u.appendChild(N)})}},resetPreview:function(){ae(this.previews,function(e){var t=fo(e,Gs);jt(e,{width:t.width,height:t.height}),e.innerHTML=t.html,Lle(e,Gs)})},preview:function(){var e=this.imageData,t=this.canvasData,s=this.cropBoxData,o=s.width,r=s.height,M=e.width,n=e.height,u=s.left-t.left-e.left,N=s.top-t.top-e.top;!this.cropped||this.disabled||(jt(this.viewBoxImage,ie({width:M,height:n},Ds(ie({translateX:-u,translateY:-N},e)))),ae(this.previews,function(l){var c=fo(l,Gs),L=c.width,j=c.height,T=L,D=j,z=1;o&&(z=L/o,D=r*z),r&&D>j&&(z=j/r,T=o*z,D=j),jt(l,{width:T,height:D}),jt(l.getElementsByTagName("img")[0],ie({width:M*z,height:n*z},Ds(ie({translateX:-u*z,translateY:-N*z},e))))}))}},mle={bind:function(){var e=this.element,t=this.options,s=this.cropper;pe(t.cropstart)&&Se(e,So,t.cropstart),pe(t.cropmove)&&Se(e,_o,t.cropmove),pe(t.cropend)&&Se(e,Eo,t.cropend),pe(t.crop)&&Se(e,Oo,t.crop),pe(t.zoom)&&Se(e,xo,t.zoom),Se(s,ZM,this.onCropStart=this.cropStart.bind(this)),t.zoomable&&t.zoomOnWheel&&Se(s,tn,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Se(s,VM,this.onDblclick=this.dblclick.bind(this)),Se(e.ownerDocument,XM,this.onCropMove=this.cropMove.bind(this)),Se(e.ownerDocument,KM,this.onCropEnd=this.cropEnd.bind(this)),t.responsive&&Se(window,en,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,t=this.options,s=this.cropper;pe(t.cropstart)&&Ue(e,So,t.cropstart),pe(t.cropmove)&&Ue(e,_o,t.cropmove),pe(t.cropend)&&Ue(e,Eo,t.cropend),pe(t.crop)&&Ue(e,Oo,t.crop),pe(t.zoom)&&Ue(e,xo,t.zoom),Ue(s,ZM,this.onCropStart),t.zoomable&&t.zoomOnWheel&&Ue(s,tn,this.onWheel,{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Ue(s,VM,this.onDblclick),Ue(e.ownerDocument,XM,this.onCropMove),Ue(e.ownerDocument,KM,this.onCropEnd),t.responsive&&Ue(window,en,this.onResize)}},Ole={resize:function(){if(!this.disabled){var e=this.options,t=this.container,s=this.containerData,o=t.offsetWidth/s.width,r=t.offsetHeight/s.height,M=Math.abs(o-1)>Math.abs(r-1)?o:r;if(M!==1){var n,u;e.restore&&(n=this.getCanvasData(),u=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(ae(n,function(N,l){n[l]=N*M})),this.setCropBoxData(ae(u,function(N,l){u[l]=N*M})))}}},dblclick:function(){this.disabled||this.options.dragMode===Ja||this.setDragMode(Nle(this.dragBox,po)?Ra:Ko)},wheel:function(e){var t=this,s=Number(this.options.wheelZoomRatio)||.1,o=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){t.wheeling=!1},50),e.deltaY?o=e.deltaY>0?1:-1:e.wheelDelta?o=-e.wheelDelta/120:e.detail&&(o=e.detail>0?1:-1),this.zoom(-o*s,e)))},cropStart:function(e){var t=e.buttons,s=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(H(t)&&t!==1||H(s)&&s!==0||e.ctrlKey))){var o=this.options,r=this.pointers,M;e.changedTouches?ae(e.changedTouches,function(n){r[n.identifier]=Hs(n)}):r[e.pointerId||0]=Hs(e),Object.keys(r).length>1&&o.zoomable&&o.zoomOnTouch?M=Wa:M=fo(e.target,Cs),tle.test(M)&&Vt(this.element,So,{originalEvent:e,action:M})!==!1&&(e.preventDefault(),this.action=M,this.cropping=!1,M===$a&&(this.cropping=!0,ce(this.dragBox,ui)))}},cropMove:function(e){var t=this.action;if(!(this.disabled||!t)){var s=this.pointers;e.preventDefault(),Vt(this.element,_o,{originalEvent:e,action:t})!==!1&&(e.changedTouches?ae(e.changedTouches,function(o){ie(s[o.identifier]||{},Hs(o,!0))}):ie(s[e.pointerId||0]||{},Hs(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var t=this.action,s=this.pointers;e.changedTouches?ae(e.changedTouches,function(o){delete s[o.identifier]}):delete s[e.pointerId||0],t&&(e.preventDefault(),Object.keys(s).length||(this.action=""),this.cropping&&(this.cropping=!1,Ft(this.dragBox,ui,this.cropped&&this.options.modal)),Vt(this.element,Eo,{originalEvent:e,action:t}))}}},Ele={change:function(e){var t=this.options,s=this.canvasData,o=this.containerData,r=this.cropBoxData,M=this.pointers,n=this.action,u=t.aspectRatio,N=r.left,l=r.top,c=r.width,L=r.height,j=N+c,T=l+L,D=0,z=0,h=o.width,O=o.height,p=!0,E;!u&&e.shiftKey&&(u=c&&L?c/L:1),this.limited&&(D=r.minLeft,z=r.minTop,h=D+Math.min(o.width,s.width,s.left+s.width),O=z+Math.min(o.height,s.height,s.top+s.height));var C=M[Object.keys(M)[0]],I={x:C.endX-C.startX,y:C.endY-C.startY},_=function(f){switch(f){case wt:j+I.x>h&&(I.x=h-j);break;case Ct:N+I.xO&&(I.y=O-T);break}};switch(n){case Xo:N+=I.x,l+=I.y;break;case wt:if(I.x>=0&&(j>=h||u&&(l<=z||T>=O))){p=!1;break}_(wt),c+=I.x,c<0&&(n=Ct,c=-c,N-=c),u&&(L=c/u,l+=(r.height-L)/2);break;case ct:if(I.y<=0&&(l<=z||u&&(N<=D||j>=h))){p=!1;break}_(ct),L-=I.y,l+=I.y,L<0&&(n=Rt,L=-L,l-=L),u&&(c=L*u,N+=(r.width-c)/2);break;case Ct:if(I.x<=0&&(N<=D||u&&(l<=z||T>=O))){p=!1;break}_(Ct),c-=I.x,N+=I.x,c<0&&(n=wt,c=-c,N-=c),u&&(L=c/u,l+=(r.height-L)/2);break;case Rt:if(I.y>=0&&(T>=O||u&&(N<=D||j>=h))){p=!1;break}_(Rt),L+=I.y,L<0&&(n=ct,L=-L,l-=L),u&&(c=L*u,N+=(r.width-c)/2);break;case as:if(u){if(I.y<=0&&(l<=z||j>=h)){p=!1;break}_(ct),L-=I.y,l+=I.y,c=L*u}else _(ct),_(wt),I.x>=0?jz&&(L-=I.y,l+=I.y):(L-=I.y,l+=I.y);c<0&&L<0?(n=Ns,L=-L,c=-c,l-=L,N-=c):c<0?(n=cs,c=-c,N-=c):L<0&&(n=us,L=-L,l-=L);break;case cs:if(u){if(I.y<=0&&(l<=z||N<=D)){p=!1;break}_(ct),L-=I.y,l+=I.y,c=L*u,N+=r.width-c}else _(ct),_(Ct),I.x<=0?N>D?(c-=I.x,N+=I.x):I.y<=0&&l<=z&&(p=!1):(c-=I.x,N+=I.x),I.y<=0?l>z&&(L-=I.y,l+=I.y):(L-=I.y,l+=I.y);c<0&&L<0?(n=us,L=-L,c=-c,l-=L,N-=c):c<0?(n=as,c=-c,N-=c):L<0&&(n=Ns,L=-L,l-=L);break;case Ns:if(u){if(I.x<=0&&(N<=D||T>=O)){p=!1;break}_(Ct),c-=I.x,N+=I.x,L=c/u}else _(Rt),_(Ct),I.x<=0?N>D?(c-=I.x,N+=I.x):I.y>=0&&T>=O&&(p=!1):(c-=I.x,N+=I.x),I.y>=0?T=0&&(j>=h||T>=O)){p=!1;break}_(wt),c+=I.x,L=c/u}else _(Rt),_(wt),I.x>=0?j=0&&T>=O&&(p=!1):c+=I.x,I.y>=0?T0?n=I.y>0?us:as:I.x<0&&(N-=c,n=I.y>0?Ns:cs),I.y<0&&(l-=L),this.cropped||(Be(this.cropBox,me),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}p&&(r.width=c,r.height=L,r.left=N,r.top=l,this.action=n,this.renderCropBox()),ae(M,function(k){k.startX=k.endX,k.startY=k.endY})}},_le={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&ce(this.dragBox,ui),Be(this.cropBox,me),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ie({},this.initialImageData),this.canvasData=ie({},this.initialCanvasData),this.cropBoxData=ie({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ie(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Be(this.dragBox,ui),ce(this.cropBox,me)),this},replace:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),t?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,ae(this.previews,function(s){s.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Be(this.cropper,GM)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,ce(this.cropper,GM)),this},destroy:function(){var e=this.element;return e[se]?(e[se]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,s=this.canvasData,o=s.left,r=s.top;return this.moveTo(Ji(e)?e:o+Number(e),Ji(t)?t:r+Number(t))},moveTo:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,s=this.canvasData,o=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.movable&&(H(e)&&(s.left=e,o=!0),H(t)&&(s.top=t,o=!0),o&&this.renderCanvas(!0)),this},zoom:function(e,t){var s=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(s.width*e/s.naturalWidth,null,t)},zoomTo:function(e,t,s){var o=this.options,r=this.canvasData,M=r.width,n=r.height,u=r.naturalWidth,N=r.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&o.zoomable){var l=u*e,c=N*e;if(Vt(this.element,xo,{ratio:e,oldRatio:M/u,originalEvent:s})===!1)return this;if(s){var L=this.pointers,j=Za(this.cropper),T=L&&Object.keys(L).length?Tle(L):{pageX:s.pageX,pageY:s.pageY};r.left-=(l-M)*((T.pageX-j.left-r.left)/M),r.top-=(c-n)*((T.pageY-j.top-r.top)/n)}else Bt(t)&&H(t.x)&&H(t.y)?(r.left-=(l-M)*((t.x-r.left)/M),r.top-=(c-n)*((t.y-r.top)/n)):(r.left-=(l-M)/2,r.top-=(c-n)/2);r.width=l,r.height=c,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),H(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var t=this.imageData.scaleY;return this.scale(e,H(t)?t:1)},scaleY:function(e){var t=this.imageData.scaleX;return this.scale(H(t)?t:1,e)},scale:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,s=this.imageData,o=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.scalable&&(H(e)&&(s.scaleX=e,o=!0),H(t)&&(s.scaleY=t,o=!0),o&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.options,s=this.imageData,o=this.canvasData,r=this.cropBoxData,M;if(this.ready&&this.cropped){M={x:r.left-o.left,y:r.top-o.top,width:r.width,height:r.height};var n=s.width/s.naturalWidth;if(ae(M,function(l,c){M[c]=l/n}),e){var u=Math.round(M.y+M.height),N=Math.round(M.x+M.width);M.x=Math.round(M.x),M.y=Math.round(M.y),M.width=N-M.x,M.height=u-M.y}}else M={x:0,y:0,width:0,height:0};return t.rotatable&&(M.rotate=s.rotate||0),t.scalable&&(M.scaleX=s.scaleX||1,M.scaleY=s.scaleY||1),M},setData:function(e){var t=this.options,s=this.imageData,o=this.canvasData,r={};if(this.ready&&!this.disabled&&Bt(e)){var M=!1;t.rotatable&&H(e.rotate)&&e.rotate!==s.rotate&&(s.rotate=e.rotate,M=!0),t.scalable&&(H(e.scaleX)&&e.scaleX!==s.scaleX&&(s.scaleX=e.scaleX,M=!0),H(e.scaleY)&&e.scaleY!==s.scaleY&&(s.scaleY=e.scaleY,M=!0)),M&&this.renderCanvas(!0,!0);var n=s.width/s.naturalWidth;H(e.x)&&(r.left=e.x*n+o.left),H(e.y)&&(r.top=e.y*n+o.top),H(e.width)&&(r.width=e.width*n),H(e.height)&&(r.height=e.height*n),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?ie({},this.containerData):{}},getImageData:function(){return this.sized?ie({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,t={};return this.ready&&ae(["left","top","width","height","naturalWidth","naturalHeight"],function(s){t[s]=e[s]}),t},setCanvasData:function(e){var t=this.canvasData,s=t.aspectRatio;return this.ready&&!this.disabled&&Bt(e)&&(H(e.left)&&(t.left=e.left),H(e.top)&&(t.top=e.top),H(e.width)?(t.width=e.width,t.height=e.width/s):H(e.height)&&(t.height=e.height,t.width=e.height*s),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,t;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(e){var t=this.cropBoxData,s=this.options.aspectRatio,o,r;return this.ready&&this.cropped&&!this.disabled&&Bt(e)&&(H(e.left)&&(t.left=e.left),H(e.top)&&(t.top=e.top),H(e.width)&&e.width!==t.width&&(o=!0,t.width=e.width),H(e.height)&&e.height!==t.height&&(r=!0,t.height=e.height),s&&(o?t.height=t.width/s:r&&(t.width=t.height*s)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var t=this.canvasData,s=Dle(this.image,this.imageData,t,e);if(!this.cropped)return s;var o=this.getData(e.rounded),r=o.x,M=o.y,n=o.width,u=o.height,N=s.width/Math.floor(t.naturalWidth);N!==1&&(r*=N,M*=N,n*=N,u*=N);var l=n/u,c=gt({aspectRatio:l,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),L=gt({aspectRatio:l,width:e.minWidth||0,height:e.minHeight||0},"cover"),j=gt({aspectRatio:l,width:e.width||(N!==1?s.width:n),height:e.height||(N!==1?s.height:u)}),T=j.width,D=j.height;T=Math.min(c.width,Math.max(L.width,T)),D=Math.min(c.height,Math.max(L.height,D));var z=document.createElement("canvas"),h=z.getContext("2d");z.width=Ht(T),z.height=Ht(D),h.fillStyle=e.fillColor||"transparent",h.fillRect(0,0,T,D);var O=e.imageSmoothingEnabled,p=O===void 0?!0:O,E=e.imageSmoothingQuality;h.imageSmoothingEnabled=p,E&&(h.imageSmoothingQuality=E);var C=s.width,I=s.height,_=r,k=M,f,P,Y,V,oe,F;_<=-n||_>C?(_=0,f=0,Y=0,oe=0):_<=0?(Y=-_,_=0,f=Math.min(C,n+_),oe=f):_<=C&&(Y=0,f=Math.min(n,C-_),oe=f),f<=0||k<=-u||k>I?(k=0,P=0,V=0,F=0):k<=0?(V=-k,k=0,P=Math.min(I,u+k),F=P):k<=I&&(V=0,P=Math.min(u,I-k),F=P);var G=[_,k,f,P];if(oe>0&&F>0){var ue=T/n;G.push(Y*ue,V*ue,oe*ue,F*ue)}return h.drawImage.apply(h,[s].concat(ba(G.map(function(ke){return Math.floor(Ht(ke))})))),z},setAspectRatio:function(e){var t=this.options;return!this.disabled&&!Ji(e)&&(t.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var t=this.options,s=this.dragBox,o=this.face;if(this.ready&&!this.disabled){var r=e===Ko,M=t.movable&&e===Ra;e=r||M?e:Ja,t.dragMode=e,hs(s,Cs,e),Ft(s,po,r),Ft(s,mo,M),t.cropBoxMovable||(hs(o,Cs,e),Ft(o,po,r),Ft(o,mo,M))}return this}},Sle=Fe.Cropper,Ka=function(){function i(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(JNe(this,i),!e||!ole.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=ie({},on,Bt(t)&&t),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return BNe(i,[{key:"init",value:function(){var t=this.element,s=t.tagName.toLowerCase(),o;if(!t[se]){if(t[se]=this,s==="img"){if(this.isImg=!0,o=t.getAttribute("src")||"",this.originalUrl=o,!o)return;o=t.src}else s==="canvas"&&window.HTMLCanvasElement&&(o=t.toDataURL());this.load(o)}}},{key:"load",value:function(t){var s=this;if(t){this.url=t,this.imageData={};var o=this.element,r=this.options;if(!r.rotatable&&!r.scalable&&(r.checkOrientation=!1),!r.checkOrientation||!window.ArrayBuffer){this.clone();return}if(sle.test(t)){ile.test(t)?this.read(Ile(t)):this.clone();return}var M=new XMLHttpRequest,n=this.clone.bind(this);this.reloading=!0,this.xhr=M,M.onabort=n,M.onerror=n,M.ontimeout=n,M.onprogress=function(){M.getResponseHeader("content-type")!==sn&&M.abort()},M.onload=function(){s.read(M.response)},M.onloadend=function(){s.reloading=!1,s.xhr=null},r.checkCrossOrigin&&Mn(t)&&o.crossOrigin&&(t=nn(t)),M.open("GET",t,!0),M.responseType="arraybuffer",M.withCredentials=o.crossOrigin==="use-credentials",M.send()}}},{key:"read",value:function(t){var s=this.options,o=this.imageData,r=Cle(t),M=0,n=1,u=1;if(r>1){this.url=wle(t,sn);var N=hle(r);M=N.rotate,n=N.scaleX,u=N.scaleY}s.rotatable&&(o.rotate=M),s.scalable&&(o.scaleX=n,o.scaleY=u),this.clone()}},{key:"clone",value:function(){var t=this.element,s=this.url,o=t.crossOrigin,r=s;this.options.checkCrossOrigin&&Mn(s)&&(o||(o="anonymous"),r=nn(s)),this.crossOrigin=o,this.crossOriginUrl=r;var M=document.createElement("img");o&&(M.crossOrigin=o),M.src=r||s,M.alt=t.alt||"The image to crop",this.image=M,M.onload=this.start.bind(this),M.onerror=this.stop.bind(this),ce(M,HM),t.parentNode.insertBefore(M,t.nextSibling)}},{key:"start",value:function(){var t=this,s=this.image;s.onload=null,s.onerror=null,this.sizing=!0;var o=Fe.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(Fe.navigator.userAgent),r=function(N,l){ie(t.imageData,{naturalWidth:N,naturalHeight:l,aspectRatio:N/l}),t.initialImageData=ie({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(s.naturalWidth&&!o){r(s.naturalWidth,s.naturalHeight);return}var M=document.createElement("img"),n=document.body||document.documentElement;this.sizingImage=M,M.onload=function(){r(M.width,M.height),o||n.removeChild(M)},M.src=s.src,o||(M.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",n.appendChild(M))}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var t=this.element,s=this.options,o=this.image,r=t.parentNode,M=document.createElement("div");M.innerHTML=rle;var n=M.querySelector(".".concat(se,"-container")),u=n.querySelector(".".concat(se,"-canvas")),N=n.querySelector(".".concat(se,"-drag-box")),l=n.querySelector(".".concat(se,"-crop-box")),c=l.querySelector(".".concat(se,"-face"));this.container=r,this.cropper=n,this.canvas=u,this.dragBox=N,this.cropBox=l,this.viewBox=n.querySelector(".".concat(se,"-view-box")),this.face=c,u.appendChild(o),ce(t,me),r.insertBefore(n,t.nextSibling),Be(o,HM),this.initPreview(),this.bind(),s.initialAspectRatio=Math.max(0,s.initialAspectRatio)||NaN,s.aspectRatio=Math.max(0,s.aspectRatio)||NaN,s.viewMode=Math.max(0,Math.min(3,Math.round(s.viewMode)))||0,ce(l,me),s.guides||ce(l.getElementsByClassName("".concat(se,"-dashed")),me),s.center||ce(l.getElementsByClassName("".concat(se,"-center")),me),s.background&&ce(n,"".concat(se,"-bg")),s.highlight||ce(c,XNe),s.cropBoxMovable&&(ce(c,mo),hs(c,Cs,Xo)),s.cropBoxResizable||(ce(l.getElementsByClassName("".concat(se,"-line")),me),ce(l.getElementsByClassName("".concat(se,"-point")),me)),this.render(),this.ready=!0,this.setDragMode(s.dragMode),s.autoCrop&&this.crop(),this.setData(s.data),pe(s.ready)&&Se(t,qM,s.ready,{once:!0}),Vt(t,qM)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),Be(this.element,me)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=Sle,i}},{key:"setDefaults",value:function(t){ie(on,Bt(t)&&t)}}])}();ie(Ka.prototype,Ale,ple,mle,Ole,Ele,_le);var mt=function(){return mt=Object.assign||function(i){for(var e,t=1,s=arguments.length;t0&&k.zoomTo(ke)}(_.currentTarget.cropper,p),z&&z(_)}}));h&&h(I)}return function(){var _,k;(k=(_=E.current)===null||_===void 0?void 0:_.cropper)===null||k===void 0||k.destroy()}},[E]);var C=function(I){return xle.reduce(function(_,k){var f=_,P=k;return f[P],Fi(f,[typeof P=="symbol"?P:P+""])},I)}(mt(mt({},O),{crossOrigin:u,src:r,alt:D}));return a.createElement("div",{style:M,className:n},a.createElement("img",mt({},C,{style:fle,ref:E})))});const Yle=` + */function GM(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(i);e&&(s=s.filter(function(o){return Object.getOwnPropertyDescriptor(i,o).enumerable})),t.push.apply(t,s)}return t}function ba(i){for(var e=1;ei.length)&&(e=i.length);for(var t=0,s=new Array(e);t
',ale=Number.isNaN||Fe.isNaN;function H(i){return typeof i=="number"&&!ale(i)}var nn=function(e){return e>0&&e<1/0};function Ji(i){return typeof i>"u"}function ft(i){return ho(i)==="object"&&i!==null}var cle=Object.prototype.hasOwnProperty;function Bt(i){if(!ft(i))return!1;try{var e=i.constructor,t=e.prototype;return e&&t&&cle.call(t,"isPrototypeOf")}catch{return!1}}function pe(i){return typeof i=="function"}var ule=Array.prototype.slice;function Va(i){return Array.from?Array.from(i):ule.call(i)}function ae(i,e){return i&&pe(e)&&(Array.isArray(i)||H(i.length)?Va(i).forEach(function(t,s){e.call(i,t,s,i)}):ft(i)&&Object.keys(i).forEach(function(t){e.call(i,i[t],t,i)})),i}var ie=Object.assign||function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),o=1;o0&&s.forEach(function(r){ft(r)&&Object.keys(r).forEach(function(M){e[M]=r[M]})}),e},Nle=/\.\d*(?:0|9){12}\d*$/;function Ht(i){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return Nle.test(i)?Math.round(i*e)/e:i}var lle=/^width|height|left|top|marginLeft|marginTop$/;function jt(i,e){var t=i.style;ae(e,function(s,o){lle.test(o)&&H(s)&&(s="".concat(s,"px")),t[o]=s})}function Lle(i,e){return i.classList?i.classList.contains(e):i.className.indexOf(e)>-1}function ce(i,e){if(e){if(H(i.length)){ae(i,function(s){ce(s,e)});return}if(i.classList){i.classList.add(e);return}var t=i.className.trim();t?t.indexOf(e)<0&&(i.className="".concat(t," ").concat(e)):i.className=e}}function Be(i,e){if(e){if(H(i.length)){ae(i,function(t){Be(t,e)});return}if(i.classList){i.classList.remove(e);return}i.className.indexOf(e)>=0&&(i.className=i.className.replace(e,""))}}function Ft(i,e,t){if(e){if(H(i.length)){ae(i,function(s){Ft(s,e,t)});return}t?ce(i,e):Be(i,e)}}var jle=/([a-z\d])([A-Z])/g;function qo(i){return i.replace(jle,"$1-$2").toLowerCase()}function fo(i,e){return ft(i[e])?i[e]:i.dataset?i.dataset[e]:i.getAttribute("data-".concat(qo(e)))}function hs(i,e,t){ft(t)?i[e]=t:i.dataset?i.dataset[e]=t:i.setAttribute("data-".concat(qo(e)),t)}function gle(i,e){if(ft(i[e]))try{delete i[e]}catch{i[e]=void 0}else if(i.dataset)try{delete i.dataset[e]}catch{i.dataset[e]=void 0}else i.removeAttribute("data-".concat(qo(e)))}var Za=/\s\s*/,Xa=function(){var i=!1;if(Ci){var e=!1,t=function(){},s=Object.defineProperty({},"once",{get:function(){return i=!0,e},set:function(r){e=r}});Fe.addEventListener("test",t,s),Fe.removeEventListener("test",t,s)}return i}();function Ue(i,e,t){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},o=t;e.trim().split(Za).forEach(function(r){if(!Xa){var M=i.listeners;M&&M[r]&&M[r][t]&&(o=M[r][t],delete M[r][t],Object.keys(M[r]).length===0&&delete M[r],Object.keys(M).length===0&&delete i.listeners)}i.removeEventListener(r,o,s)})}function Se(i,e,t){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},o=t;e.trim().split(Za).forEach(function(r){if(s.once&&!Xa){var M=i.listeners,a=M===void 0?{}:M;o=function(){delete a[r][t],i.removeEventListener(r,o,s);for(var N=arguments.length,l=new Array(N),c=0;cMath.abs(t)&&(t=L)})}),t}function Hs(i,e){var t=i.pageX,s=i.pageY,o={endX:t,endY:s};return e?o:ba({startX:t,startY:s},o)}function Dle(i){var e=0,t=0,s=0;return ae(i,function(o){var r=o.startX,M=o.startY;e+=r,t+=M,s+=1}),e/=s,t/=s,{pageX:e,pageY:t}}function gt(i){var e=i.aspectRatio,t=i.height,s=i.width,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",r=nn(s),M=nn(t);if(r&&M){var a=t*e;o==="contain"&&a>s||o==="cover"&&a90?{width:u,height:a}:{width:a,height:u}}function zle(i,e,t,s){var o=e.aspectRatio,r=e.naturalWidth,M=e.naturalHeight,a=e.rotate,u=a===void 0?0:a,N=e.scaleX,l=N===void 0?1:N,c=e.scaleY,L=c===void 0?1:c,j=t.aspectRatio,T=t.naturalWidth,D=t.naturalHeight,I=s.fillColor,C=I===void 0?"transparent":I,E=s.imageSmoothingEnabled,A=E===void 0?!0:E,_=s.imageSmoothingQuality,p=_===void 0?"low":_,z=s.maxWidth,O=z===void 0?1/0:z,k=s.maxHeight,f=k===void 0?1/0:k,P=s.minWidth,Y=P===void 0?0:P,V=s.minHeight,oe=V===void 0?0:V,F=document.createElement("canvas"),G=F.getContext("2d"),ue=gt({aspectRatio:j,width:O,height:f}),ke=gt({aspectRatio:j,width:Y,height:oe},"cover"),Ye=Math.min(ue.width,Math.max(ke.width,T)),Qt=Math.min(ue.height,Math.max(ke.height,D)),hi=gt({aspectRatio:o,width:O,height:f}),is=gt({aspectRatio:o,width:Y,height:oe},"cover"),os=Math.min(hi.width,Math.max(is.width,r)),rs=Math.min(hi.height,Math.max(is.height,M)),_s=[-os/2,-rs/2,os,rs];return F.width=Ht(Ye),F.height=Ht(Qt),G.fillStyle=C,G.fillRect(0,0,Ye,Qt),G.save(),G.translate(Ye/2,Qt/2),G.rotate(u*Math.PI/180),G.scale(l,L),G.imageSmoothingEnabled=A,G.imageSmoothingQuality=p,G.drawImage.apply(G,[i].concat(Pa(_s.map(function(Ss){return Math.floor(Ht(Ss))})))),G.restore(),F}var qa=String.fromCharCode;function Ile(i,e,t){var s="";t+=e;for(var o=e;o0;)t.push(qa.apply(null,Va(o.subarray(0,s)))),o=o.subarray(s);return"data:".concat(e,";base64,").concat(btoa(t.join("")))}function Ale(i){var e=new DataView(i),t;try{var s,o,r;if(e.getUint8(0)===255&&e.getUint8(1)===216)for(var M=e.byteLength,a=2;a+1=8&&(r=N+c)}}}if(r){var L=e.getUint16(r,s),j,T;for(T=0;T=0?r:Ga),height:Math.max(s.offsetHeight,M>=0?M:Ha)};this.containerData=a,jt(o,{width:a.width,height:a.height}),ce(e,me),Be(o,me)},initCanvas:function(){var e=this.containerData,t=this.imageData,s=this.options.viewMode,o=Math.abs(t.rotate)%180===90,r=o?t.naturalHeight:t.naturalWidth,M=o?t.naturalWidth:t.naturalHeight,a=r/M,u=e.width,N=e.height;e.height*a>e.width?s===3?u=e.height*a:N=e.width/a:s===3?N=e.width/a:u=e.height*a;var l={aspectRatio:a,naturalWidth:r,naturalHeight:M,width:u,height:N};this.canvasData=l,this.limited=s===1||s===2,this.limitCanvas(!0,!0),l.width=Math.min(Math.max(l.width,l.minWidth),l.maxWidth),l.height=Math.min(Math.max(l.height,l.minHeight),l.maxHeight),l.left=(e.width-l.width)/2,l.top=(e.height-l.height)/2,l.oldLeft=l.left,l.oldTop=l.top,this.initialCanvasData=ie({},l)},limitCanvas:function(e,t){var s=this.options,o=this.containerData,r=this.canvasData,M=this.cropBoxData,a=s.viewMode,u=r.aspectRatio,N=this.cropped&&M;if(e){var l=Number(s.minCanvasWidth)||0,c=Number(s.minCanvasHeight)||0;a>1?(l=Math.max(l,o.width),c=Math.max(c,o.height),a===3&&(c*u>l?l=c*u:c=l/u)):a>0&&(l?l=Math.max(l,N?M.width:0):c?c=Math.max(c,N?M.height:0):N&&(l=M.width,c=M.height,c*u>l?l=c*u:c=l/u));var L=gt({aspectRatio:u,width:l,height:c});l=L.width,c=L.height,r.minWidth=l,r.minHeight=c,r.maxWidth=1/0,r.maxHeight=1/0}if(t)if(a>(N?0:1)){var j=o.width-r.width,T=o.height-r.height;r.minLeft=Math.min(0,j),r.minTop=Math.min(0,T),r.maxLeft=Math.max(0,j),r.maxTop=Math.max(0,T),N&&this.limited&&(r.minLeft=Math.min(M.left,M.left+(M.width-r.width)),r.minTop=Math.min(M.top,M.top+(M.height-r.height)),r.maxLeft=M.left,r.maxTop=M.top,a===2&&(r.width>=o.width&&(r.minLeft=Math.min(0,j),r.maxLeft=Math.max(0,j)),r.height>=o.height&&(r.minTop=Math.min(0,T),r.maxTop=Math.max(0,T))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=o.width,r.maxTop=o.height},renderCanvas:function(e,t){var s=this.canvasData,o=this.imageData;if(t){var r=dle({width:o.naturalWidth*Math.abs(o.scaleX||1),height:o.naturalHeight*Math.abs(o.scaleY||1),degree:o.rotate||0}),M=r.width,a=r.height,u=s.width*(M/s.naturalWidth),N=s.height*(a/s.naturalHeight);s.left-=(u-s.width)/2,s.top-=(N-s.height)/2,s.width=u,s.height=N,s.aspectRatio=M/a,s.naturalWidth=M,s.naturalHeight=a,this.limitCanvas(!0,!1)}(s.width>s.maxWidth||s.widths.maxHeight||s.heightt.width?r.height=r.width/s:r.width=r.height*s),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*o),r.height=Math.max(r.minHeight,r.height*o),r.left=t.left+(t.width-r.width)/2,r.top=t.top+(t.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=ie({},r)},limitCropBox:function(e,t){var s=this.options,o=this.containerData,r=this.canvasData,M=this.cropBoxData,a=this.limited,u=s.aspectRatio;if(e){var N=Number(s.minCropBoxWidth)||0,l=Number(s.minCropBoxHeight)||0,c=a?Math.min(o.width,r.width,r.width+r.left,o.width-r.left):o.width,L=a?Math.min(o.height,r.height,r.height+r.top,o.height-r.top):o.height;N=Math.min(N,o.width),l=Math.min(l,o.height),u&&(N&&l?l*u>N?l=N/u:N=l*u:N?l=N/u:l&&(N=l*u),L*u>c?L=c/u:c=L*u),M.minWidth=Math.min(N,c),M.minHeight=Math.min(l,L),M.maxWidth=c,M.maxHeight=L}t&&(a?(M.minLeft=Math.max(0,r.left),M.minTop=Math.max(0,r.top),M.maxLeft=Math.min(o.width,r.left+r.width)-M.width,M.maxTop=Math.min(o.height,r.top+r.height)-M.height):(M.minLeft=0,M.minTop=0,M.maxLeft=o.width-M.width,M.maxTop=o.height-M.height))},renderCropBox:function(){var e=this.options,t=this.containerData,s=this.cropBoxData;(s.width>s.maxWidth||s.widths.maxHeight||s.height=t.width&&s.height>=t.height?Ra:Xo),jt(this.cropBox,ie({width:s.width,height:s.height},Ds({translateX:s.left,translateY:s.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Vt(this.element,Oo,this.getData())}},Ole={initPreview:function(){var e=this.element,t=this.crossOrigin,s=this.options.preview,o=t?this.crossOriginUrl:this.url,r=e.alt||"The image to preview",M=document.createElement("img");if(t&&(M.crossOrigin=t),M.src=o,M.alt=r,this.viewBox.appendChild(M),this.viewBoxImage=M,!!s){var a=s;typeof s=="string"?a=e.ownerDocument.querySelectorAll(s):s.querySelector&&(a=[s]),this.previews=a,ae(a,function(u){var N=document.createElement("img");hs(u,Gs,{width:u.offsetWidth,height:u.offsetHeight,html:u.innerHTML}),t&&(N.crossOrigin=t),N.src=o,N.alt=r,N.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',u.innerHTML="",u.appendChild(N)})}},resetPreview:function(){ae(this.previews,function(e){var t=fo(e,Gs);jt(e,{width:t.width,height:t.height}),e.innerHTML=t.html,gle(e,Gs)})},preview:function(){var e=this.imageData,t=this.canvasData,s=this.cropBoxData,o=s.width,r=s.height,M=e.width,a=e.height,u=s.left-t.left-e.left,N=s.top-t.top-e.top;!this.cropped||this.disabled||(jt(this.viewBoxImage,ie({width:M,height:a},Ds(ie({translateX:-u,translateY:-N},e)))),ae(this.previews,function(l){var c=fo(l,Gs),L=c.width,j=c.height,T=L,D=j,I=1;o&&(I=L/o,D=r*I),r&&D>j&&(I=j/r,T=o*I,D=j),jt(l,{width:T,height:D}),jt(l.getElementsByTagName("img")[0],ie({width:M*I,height:a*I},Ds(ie({translateX:-u*I,translateY:-N*I},e))))}))}},Ele={bind:function(){var e=this.element,t=this.options,s=this.cropper;pe(t.cropstart)&&Se(e,So,t.cropstart),pe(t.cropmove)&&Se(e,_o,t.cropmove),pe(t.cropend)&&Se(e,Eo,t.cropend),pe(t.crop)&&Se(e,Oo,t.crop),pe(t.zoom)&&Se(e,xo,t.zoom),Se(s,KM,this.onCropStart=this.cropStart.bind(this)),t.zoomable&&t.zoomOnWheel&&Se(s,on,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Se(s,XM,this.onDblclick=this.dblclick.bind(this)),Se(e.ownerDocument,qM,this.onCropMove=this.cropMove.bind(this)),Se(e.ownerDocument,en,this.onCropEnd=this.cropEnd.bind(this)),t.responsive&&Se(window,sn,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,t=this.options,s=this.cropper;pe(t.cropstart)&&Ue(e,So,t.cropstart),pe(t.cropmove)&&Ue(e,_o,t.cropmove),pe(t.cropend)&&Ue(e,Eo,t.cropend),pe(t.crop)&&Ue(e,Oo,t.crop),pe(t.zoom)&&Ue(e,xo,t.zoom),Ue(s,KM,this.onCropStart),t.zoomable&&t.zoomOnWheel&&Ue(s,on,this.onWheel,{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&Ue(s,XM,this.onDblclick),Ue(e.ownerDocument,qM,this.onCropMove),Ue(e.ownerDocument,en,this.onCropEnd),t.responsive&&Ue(window,sn,this.onResize)}},_le={resize:function(){if(!this.disabled){var e=this.options,t=this.container,s=this.containerData,o=t.offsetWidth/s.width,r=t.offsetHeight/s.height,M=Math.abs(o-1)>Math.abs(r-1)?o:r;if(M!==1){var a,u;e.restore&&(a=this.getCanvasData(),u=this.getCropBoxData()),this.render(),e.restore&&(this.setCanvasData(ae(a,function(N,l){a[l]=N*M})),this.setCropBoxData(ae(u,function(N,l){u[l]=N*M})))}}},dblclick:function(){this.disabled||this.options.dragMode===Fa||this.setDragMode(Lle(this.dragBox,po)?Ba:Ko)},wheel:function(e){var t=this,s=Number(this.options.wheelZoomRatio)||.1,o=1;this.disabled||(e.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){t.wheeling=!1},50),e.deltaY?o=e.deltaY>0?1:-1:e.wheelDelta?o=-e.wheelDelta/120:e.detail&&(o=e.detail>0?1:-1),this.zoom(-o*s,e)))},cropStart:function(e){var t=e.buttons,s=e.button;if(!(this.disabled||(e.type==="mousedown"||e.type==="pointerdown"&&e.pointerType==="mouse")&&(H(t)&&t!==1||H(s)&&s!==0||e.ctrlKey))){var o=this.options,r=this.pointers,M;e.changedTouches?ae(e.changedTouches,function(a){r[a.identifier]=Hs(a)}):r[e.pointerId||0]=Hs(e),Object.keys(r).length>1&&o.zoomable&&o.zoomOnTouch?M=Ja:M=fo(e.target,Cs),ile.test(M)&&Vt(this.element,So,{originalEvent:e,action:M})!==!1&&(e.preventDefault(),this.action=M,this.cropping=!1,M===Wa&&(this.cropping=!0,ce(this.dragBox,ui)))}},cropMove:function(e){var t=this.action;if(!(this.disabled||!t)){var s=this.pointers;e.preventDefault(),Vt(this.element,_o,{originalEvent:e,action:t})!==!1&&(e.changedTouches?ae(e.changedTouches,function(o){ie(s[o.identifier]||{},Hs(o,!0))}):ie(s[e.pointerId||0]||{},Hs(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var t=this.action,s=this.pointers;e.changedTouches?ae(e.changedTouches,function(o){delete s[o.identifier]}):delete s[e.pointerId||0],t&&(e.preventDefault(),Object.keys(s).length||(this.action=""),this.cropping&&(this.cropping=!1,Ft(this.dragBox,ui,this.cropped&&this.options.modal)),Vt(this.element,Eo,{originalEvent:e,action:t}))}}},Sle={change:function(e){var t=this.options,s=this.canvasData,o=this.containerData,r=this.cropBoxData,M=this.pointers,a=this.action,u=t.aspectRatio,N=r.left,l=r.top,c=r.width,L=r.height,j=N+c,T=l+L,D=0,I=0,C=o.width,E=o.height,A=!0,_;!u&&e.shiftKey&&(u=c&&L?c/L:1),this.limited&&(D=r.minLeft,I=r.minTop,C=D+Math.min(o.width,s.width,s.left+s.width),E=I+Math.min(o.height,s.height,s.top+s.height));var p=M[Object.keys(M)[0]],z={x:p.endX-p.startX,y:p.endY-p.startY},O=function(f){switch(f){case wt:j+z.x>C&&(z.x=C-j);break;case Ct:N+z.xE&&(z.y=E-T);break}};switch(a){case Xo:N+=z.x,l+=z.y;break;case wt:if(z.x>=0&&(j>=C||u&&(l<=I||T>=E))){A=!1;break}O(wt),c+=z.x,c<0&&(a=Ct,c=-c,N-=c),u&&(L=c/u,l+=(r.height-L)/2);break;case ct:if(z.y<=0&&(l<=I||u&&(N<=D||j>=C))){A=!1;break}O(ct),L-=z.y,l+=z.y,L<0&&(a=Rt,L=-L,l-=L),u&&(c=L*u,N+=(r.width-c)/2);break;case Ct:if(z.x<=0&&(N<=D||u&&(l<=I||T>=E))){A=!1;break}O(Ct),c-=z.x,N+=z.x,c<0&&(a=wt,c=-c,N-=c),u&&(L=c/u,l+=(r.height-L)/2);break;case Rt:if(z.y>=0&&(T>=E||u&&(N<=D||j>=C))){A=!1;break}O(Rt),L+=z.y,L<0&&(a=ct,L=-L,l-=L),u&&(c=L*u,N+=(r.width-c)/2);break;case as:if(u){if(z.y<=0&&(l<=I||j>=C)){A=!1;break}O(ct),L-=z.y,l+=z.y,c=L*u}else O(ct),O(wt),z.x>=0?jI&&(L-=z.y,l+=z.y):(L-=z.y,l+=z.y);c<0&&L<0?(a=Ns,L=-L,c=-c,l-=L,N-=c):c<0?(a=cs,c=-c,N-=c):L<0&&(a=us,L=-L,l-=L);break;case cs:if(u){if(z.y<=0&&(l<=I||N<=D)){A=!1;break}O(ct),L-=z.y,l+=z.y,c=L*u,N+=r.width-c}else O(ct),O(Ct),z.x<=0?N>D?(c-=z.x,N+=z.x):z.y<=0&&l<=I&&(A=!1):(c-=z.x,N+=z.x),z.y<=0?l>I&&(L-=z.y,l+=z.y):(L-=z.y,l+=z.y);c<0&&L<0?(a=us,L=-L,c=-c,l-=L,N-=c):c<0?(a=as,c=-c,N-=c):L<0&&(a=Ns,L=-L,l-=L);break;case Ns:if(u){if(z.x<=0&&(N<=D||T>=E)){A=!1;break}O(Ct),c-=z.x,N+=z.x,L=c/u}else O(Rt),O(Ct),z.x<=0?N>D?(c-=z.x,N+=z.x):z.y>=0&&T>=E&&(A=!1):(c-=z.x,N+=z.x),z.y>=0?T=0&&(j>=C||T>=E)){A=!1;break}O(wt),c+=z.x,L=c/u}else O(Rt),O(wt),z.x>=0?j=0&&T>=E&&(A=!1):c+=z.x,z.y>=0?T0?a=z.y>0?us:as:z.x<0&&(N-=c,a=z.y>0?Ns:cs),z.y<0&&(l-=L),this.cropped||(Be(this.cropBox,me),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}A&&(r.width=c,r.height=L,r.left=N,r.top=l,this.action=a,this.renderCropBox()),ae(M,function(k){k.startX=k.endX,k.startY=k.endY})}},xle={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&ce(this.dragBox,ui),Be(this.cropBox,me),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ie({},this.initialImageData),this.canvasData=ie({},this.initialCanvasData),this.cropBoxData=ie({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ie(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Be(this.dragBox,ui),ce(this.cropBox,me)),this},replace:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&e&&(this.isImg&&(this.element.src=e),t?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,ae(this.previews,function(s){s.getElementsByTagName("img")[0].src=e}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Be(this.cropper,VM)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,ce(this.cropper,VM)),this},destroy:function(){var e=this.element;return e[se]?(e[se]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,s=this.canvasData,o=s.left,r=s.top;return this.moveTo(Ji(e)?e:o+Number(e),Ji(t)?t:r+Number(t))},moveTo:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,s=this.canvasData,o=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.movable&&(H(e)&&(s.left=e,o=!0),H(t)&&(s.top=t,o=!0),o&&this.renderCanvas(!0)),this},zoom:function(e,t){var s=this.canvasData;return e=Number(e),e<0?e=1/(1-e):e=1+e,this.zoomTo(s.width*e/s.naturalWidth,null,t)},zoomTo:function(e,t,s){var o=this.options,r=this.canvasData,M=r.width,a=r.height,u=r.naturalWidth,N=r.naturalHeight;if(e=Number(e),e>=0&&this.ready&&!this.disabled&&o.zoomable){var l=u*e,c=N*e;if(Vt(this.element,xo,{ratio:e,oldRatio:M/u,originalEvent:s})===!1)return this;if(s){var L=this.pointers,j=Ka(this.cropper),T=L&&Object.keys(L).length?Dle(L):{pageX:s.pageX,pageY:s.pageY};r.left-=(l-M)*((T.pageX-j.left-r.left)/M),r.top-=(c-a)*((T.pageY-j.top-r.top)/a)}else Bt(t)&&H(t.x)&&H(t.y)?(r.left-=(l-M)*((t.x-r.left)/M),r.top-=(c-a)*((t.y-r.top)/a)):(r.left-=(l-M)/2,r.top-=(c-a)/2);r.width=l,r.height=c,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return e=Number(e),H(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var t=this.imageData.scaleY;return this.scale(e,H(t)?t:1)},scaleY:function(e){var t=this.imageData.scaleX;return this.scale(H(t)?t:1,e)},scale:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e,s=this.imageData,o=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.scalable&&(H(e)&&(s.scaleX=e,o=!0),H(t)&&(s.scaleY=t,o=!0),o&&this.renderCanvas(!0,!0)),this},getData:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.options,s=this.imageData,o=this.canvasData,r=this.cropBoxData,M;if(this.ready&&this.cropped){M={x:r.left-o.left,y:r.top-o.top,width:r.width,height:r.height};var a=s.width/s.naturalWidth;if(ae(M,function(l,c){M[c]=l/a}),e){var u=Math.round(M.y+M.height),N=Math.round(M.x+M.width);M.x=Math.round(M.x),M.y=Math.round(M.y),M.width=N-M.x,M.height=u-M.y}}else M={x:0,y:0,width:0,height:0};return t.rotatable&&(M.rotate=s.rotate||0),t.scalable&&(M.scaleX=s.scaleX||1,M.scaleY=s.scaleY||1),M},setData:function(e){var t=this.options,s=this.imageData,o=this.canvasData,r={};if(this.ready&&!this.disabled&&Bt(e)){var M=!1;t.rotatable&&H(e.rotate)&&e.rotate!==s.rotate&&(s.rotate=e.rotate,M=!0),t.scalable&&(H(e.scaleX)&&e.scaleX!==s.scaleX&&(s.scaleX=e.scaleX,M=!0),H(e.scaleY)&&e.scaleY!==s.scaleY&&(s.scaleY=e.scaleY,M=!0)),M&&this.renderCanvas(!0,!0);var a=s.width/s.naturalWidth;H(e.x)&&(r.left=e.x*a+o.left),H(e.y)&&(r.top=e.y*a+o.top),H(e.width)&&(r.width=e.width*a),H(e.height)&&(r.height=e.height*a),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?ie({},this.containerData):{}},getImageData:function(){return this.sized?ie({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,t={};return this.ready&&ae(["left","top","width","height","naturalWidth","naturalHeight"],function(s){t[s]=e[s]}),t},setCanvasData:function(e){var t=this.canvasData,s=t.aspectRatio;return this.ready&&!this.disabled&&Bt(e)&&(H(e.left)&&(t.left=e.left),H(e.top)&&(t.top=e.top),H(e.width)?(t.width=e.width,t.height=e.width/s):H(e.height)&&(t.height=e.height,t.width=e.height*s),this.renderCanvas(!0)),this},getCropBoxData:function(){var e=this.cropBoxData,t;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}},setCropBoxData:function(e){var t=this.cropBoxData,s=this.options.aspectRatio,o,r;return this.ready&&this.cropped&&!this.disabled&&Bt(e)&&(H(e.left)&&(t.left=e.left),H(e.top)&&(t.top=e.top),H(e.width)&&e.width!==t.width&&(o=!0,t.width=e.width),H(e.height)&&e.height!==t.height&&(r=!0,t.height=e.height),s&&(o?t.height=t.width/s:r&&(t.width=t.height*s)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var t=this.canvasData,s=zle(this.image,this.imageData,t,e);if(!this.cropped)return s;var o=this.getData(e.rounded),r=o.x,M=o.y,a=o.width,u=o.height,N=s.width/Math.floor(t.naturalWidth);N!==1&&(r*=N,M*=N,a*=N,u*=N);var l=a/u,c=gt({aspectRatio:l,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),L=gt({aspectRatio:l,width:e.minWidth||0,height:e.minHeight||0},"cover"),j=gt({aspectRatio:l,width:e.width||(N!==1?s.width:a),height:e.height||(N!==1?s.height:u)}),T=j.width,D=j.height;T=Math.min(c.width,Math.max(L.width,T)),D=Math.min(c.height,Math.max(L.height,D));var I=document.createElement("canvas"),C=I.getContext("2d");I.width=Ht(T),I.height=Ht(D),C.fillStyle=e.fillColor||"transparent",C.fillRect(0,0,T,D);var E=e.imageSmoothingEnabled,A=E===void 0?!0:E,_=e.imageSmoothingQuality;C.imageSmoothingEnabled=A,_&&(C.imageSmoothingQuality=_);var p=s.width,z=s.height,O=r,k=M,f,P,Y,V,oe,F;O<=-a||O>p?(O=0,f=0,Y=0,oe=0):O<=0?(Y=-O,O=0,f=Math.min(p,a+O),oe=f):O<=p&&(Y=0,f=Math.min(a,p-O),oe=f),f<=0||k<=-u||k>z?(k=0,P=0,V=0,F=0):k<=0?(V=-k,k=0,P=Math.min(z,u+k),F=P):k<=z&&(V=0,P=Math.min(u,z-k),F=P);var G=[O,k,f,P];if(oe>0&&F>0){var ue=T/a;G.push(Y*ue,V*ue,oe*ue,F*ue)}return C.drawImage.apply(C,[s].concat(Pa(G.map(function(ke){return Math.floor(Ht(ke))})))),I},setAspectRatio:function(e){var t=this.options;return!this.disabled&&!Ji(e)&&(t.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var t=this.options,s=this.dragBox,o=this.face;if(this.ready&&!this.disabled){var r=e===Ko,M=t.movable&&e===Ba;e=r||M?e:Fa,t.dragMode=e,hs(s,Cs,e),Ft(s,po,r),Ft(s,mo,M),t.cropBoxMovable||(hs(o,Cs,e),Ft(o,po,r),Ft(o,mo,M))}return this}},fle=Fe.Cropper,ec=function(){function i(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(FNe(this,i),!e||!Mle.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=ie({},Mn,Bt(t)&&t),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return GNe(i,[{key:"init",value:function(){var t=this.element,s=t.tagName.toLowerCase(),o;if(!t[se]){if(t[se]=this,s==="img"){if(this.isImg=!0,o=t.getAttribute("src")||"",this.originalUrl=o,!o)return;o=t.src}else s==="canvas"&&window.HTMLCanvasElement&&(o=t.toDataURL());this.load(o)}}},{key:"load",value:function(t){var s=this;if(t){this.url=t,this.imageData={};var o=this.element,r=this.options;if(!r.rotatable&&!r.scalable&&(r.checkOrientation=!1),!r.checkOrientation||!window.ArrayBuffer){this.clone();return}if(ole.test(t)){rle.test(t)?this.read(Cle(t)):this.clone();return}var M=new XMLHttpRequest,a=this.clone.bind(this);this.reloading=!0,this.xhr=M,M.onabort=a,M.onerror=a,M.ontimeout=a,M.onprogress=function(){M.getResponseHeader("content-type")!==rn&&M.abort()},M.onload=function(){s.read(M.response)},M.onloadend=function(){s.reloading=!1,s.xhr=null},r.checkCrossOrigin&&an(t)&&o.crossOrigin&&(t=cn(t)),M.open("GET",t,!0),M.responseType="arraybuffer",M.withCredentials=o.crossOrigin==="use-credentials",M.send()}}},{key:"read",value:function(t){var s=this.options,o=this.imageData,r=Ale(t),M=0,a=1,u=1;if(r>1){this.url=hle(t,rn);var N=ple(r);M=N.rotate,a=N.scaleX,u=N.scaleY}s.rotatable&&(o.rotate=M),s.scalable&&(o.scaleX=a,o.scaleY=u),this.clone()}},{key:"clone",value:function(){var t=this.element,s=this.url,o=t.crossOrigin,r=s;this.options.checkCrossOrigin&&an(s)&&(o||(o="anonymous"),r=cn(s)),this.crossOrigin=o,this.crossOriginUrl=r;var M=document.createElement("img");o&&(M.crossOrigin=o),M.src=r||s,M.alt=t.alt||"The image to crop",this.image=M,M.onload=this.start.bind(this),M.onerror=this.stop.bind(this),ce(M,ZM),t.parentNode.insertBefore(M,t.nextSibling)}},{key:"start",value:function(){var t=this,s=this.image;s.onload=null,s.onerror=null,this.sizing=!0;var o=Fe.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(Fe.navigator.userAgent),r=function(N,l){ie(t.imageData,{naturalWidth:N,naturalHeight:l,aspectRatio:N/l}),t.initialImageData=ie({},t.imageData),t.sizing=!1,t.sized=!0,t.build()};if(s.naturalWidth&&!o){r(s.naturalWidth,s.naturalHeight);return}var M=document.createElement("img"),a=document.body||document.documentElement;this.sizingImage=M,M.onload=function(){r(M.width,M.height),o||a.removeChild(M)},M.src=s.src,o||(M.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",a.appendChild(M))}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var t=this.element,s=this.options,o=this.image,r=t.parentNode,M=document.createElement("div");M.innerHTML=nle;var a=M.querySelector(".".concat(se,"-container")),u=a.querySelector(".".concat(se,"-canvas")),N=a.querySelector(".".concat(se,"-drag-box")),l=a.querySelector(".".concat(se,"-crop-box")),c=l.querySelector(".".concat(se,"-face"));this.container=r,this.cropper=a,this.canvas=u,this.dragBox=N,this.cropBox=l,this.viewBox=a.querySelector(".".concat(se,"-view-box")),this.face=c,u.appendChild(o),ce(t,me),r.insertBefore(a,t.nextSibling),Be(o,ZM),this.initPreview(),this.bind(),s.initialAspectRatio=Math.max(0,s.initialAspectRatio)||NaN,s.aspectRatio=Math.max(0,s.aspectRatio)||NaN,s.viewMode=Math.max(0,Math.min(3,Math.round(s.viewMode)))||0,ce(l,me),s.guides||ce(l.getElementsByClassName("".concat(se,"-dashed")),me),s.center||ce(l.getElementsByClassName("".concat(se,"-center")),me),s.background&&ce(a,"".concat(se,"-bg")),s.highlight||ce(c,qNe),s.cropBoxMovable&&(ce(c,mo),hs(c,Cs,Xo)),s.cropBoxResizable||(ce(l.getElementsByClassName("".concat(se,"-line")),me),ce(l.getElementsByClassName("".concat(se,"-point")),me)),this.render(),this.ready=!0,this.setDragMode(s.dragMode),s.autoCrop&&this.crop(),this.setData(s.data),pe(s.ready)&&Se(t,tn,s.ready,{once:!0}),Vt(t,tn)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),Be(this.element,me)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=fle,i}},{key:"setDefaults",value:function(t){ie(Mn,Bt(t)&&t)}}])}();ie(ec.prototype,mle,Ole,Ele,_le,Sle,xle);var mt=function(){return mt=Object.assign||function(i){for(var e,t=1,s=arguments.length;t0&&k.zoomTo(ke)}(O.currentTarget.cropper,A),I&&I(O)}}));C&&C(z)}return function(){var O,k;(k=(O=_.current)===null||O===void 0?void 0:O.cropper)===null||k===void 0||k.destroy()}},[_]);var p=function(z){return kle.reduce(function(O,k){var f=O,P=k;return f[P],Fi(f,[typeof P=="symbol"?P:P+""])},z)}(mt(mt({},E),{crossOrigin:u,src:r,alt:D}));return n.createElement("div",{style:M,className:a},n.createElement("img",mt({},p,{style:Yle,ref:_})))});const Ule=` /*! * Cropper.js v1.5.12 * https://fengyuanchen.github.io/cropperjs @@ -767,14 +767,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho .cropper-disabled .cropper-point { cursor: not-allowed; } -`,Ae={dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red",boxSizing:"border-box"}};class j4e extends b.Component{cropperRef;constructor(e){if(super(e),this.state={uploadFile:!1,anchorEl:null,cropHandler:!1},this.cropperRef=b.createRef(),!window.document.getElementById("cropper-style-json-component")){const t=window.document.createElement("style");t.setAttribute("id","cropper-style-json-component"),t.innerHTML=Yle,window.document.head.appendChild(t)}}onDrop(e){const t=this.props.onChange,s=this.props.maxSize||10*1024,o=e[0],r=new FileReader;r.onabort=()=>console.log("file reading was aborted"),r.onerror=()=>console.log("file reading has failed"),r.onload=()=>{var u,N;if(!o||!o.name)return;const M=(u=o.name)==null?void 0:u.split(".");let n=M!=null&&M.length?`image/${(N=M.pop())==null?void 0:N.toLowerCase()}`:"image/jpeg";if(n==="image/jpg"?n="image/jpeg":n.includes("svg")&&(n="image/svg+xml"),o.size>s)window.alert(d.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(s/1024)));else{const l=`data:${n};base64,${btoa(new Uint8Array(r.result).reduce((c,L)=>c+String.fromCharCode(L),""))}`;t?t(l):console.log(l)}},r.readAsArrayBuffer(o)}render(){const{disabled:e,icon:t,removeIconFunc:s,error:o,crop:r,onChange:M}=this.props,n=this.props.maxSize||10*1024;let u=this.props.accept||{"image/*":[]};const{uploadFile:N,anchorEl:l,cropHandler:c}=this.state;if(typeof u=="string")u={[u]:[]};else if(Array.isArray(u)){const L={};u.forEach(j=>{L[j]=[]}),u=L}return a.createElement(un,{disabled:!!e||c,key:"dropzone",multiple:!1,accept:u,maxSize:n,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(L,j)=>{var T,D,z;this.setState({uploadFile:!1}),L.length?this.onDrop(L):window.alert(((z=(D=(T=j==null?void 0:j[0])==null?void 0:T.errors)==null?void 0:D[0])==null?void 0:z.message)||d.t("ra_Cannot upload"))}},({getRootProps:L,getInputProps:j})=>a.createElement("div",{style:{...Ae.uploadDiv,...N==="dragging"?Ae.uploadDivDragging:void 0,...Ae.dropZone,...e?Ae.disabledOpacity:void 0,...t?void 0:Ae.dropZoneEmpty},...L()},a.createElement("input",{...j()}),a.createElement("div",{style:{...Ae.uploadCenterDiv,...o?Ae.error:void 0}},t?s&&!c&&a.createElement("div",{style:Ae.buttonRemoveWrapper},a.createElement(g.Tooltip,{title:d.t("ra_Clear"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},a.createElement(g.IconButton,{size:"large",onClick:T=>{s&&s(),T.stopPropagation()}},a.createElement(m.Close,null)))):a.createElement("div",{style:Ae.uploadCenterTextAndIcon},a.createElement(m.UploadFileOutlined,{style:Ae.uploadCenterIcon}),a.createElement("div",{style:Ae.uploadCenterText},N==="dragging"?d.t("ra_Drop file here"):d.t("ra_Place your files here or click here to open the browse dialog"))),t&&r&&a.createElement("div",{style:Ae.buttonCropWrapper},a.createElement(g.Tooltip,{title:d.t("ra_Crop"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},a.createElement(g.IconButton,{size:"large",onClick:T=>{c?this.setState({anchorEl:T.currentTarget}):this.setState({cropHandler:!0}),T.stopPropagation()}},a.createElement(m.Crop,{color:c?"primary":"inherit"}))),a.createElement(g.Menu,{anchorEl:l,keepMounted:!0,open:!!l,onClose:()=>this.setState({anchorEl:null})},a.createElement(g.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1},()=>{var D,z;const T=(z=(D=this.cropperRef)==null?void 0:D.current)==null?void 0:z.cropper;T&&(M?M(T.getCroppedCanvas().toDataURL()):console.log(T.getCroppedCanvas().toDataURL()))})},d.t("ra_Save")),a.createElement(g.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1})},d.t("ra_Close")))),t&&!c?a.createElement(Ie,{src:t,style:Ae.image,alt:"icon"}):null,t&&r&&c?a.createElement(kle,{ref:this.cropperRef,style:Ae.image,src:t,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null)))}}const ut={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},Qle={once:"once"},Te={seconds:"seconds",minutes:"minutes"},an=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function Je(i){return i<10?`0${i}`:`${i}`}const Ule={mode:"interval",interval:{period:1,unit:Te.minutes}};function ei(i){if(i==="*")return[0,1,2,3,4,5,6];const e=i.split(","),t=[];return e.forEach(s=>{const o=s.split("-");if(o.length===2){const r=parseInt(o[0],10),M=parseInt(o[1],10);for(let n=r;n<=M;n++)t.includes(n===7?0:n)||t.push(n===7?0:n)}else{s==="7"&&(s="0");const r=parseInt(s,10);t.includes(r)||t.push(r)}}),t.sort(),t}function qa(i,e){i=i.replace(/['"]/g,"").trim();const t=i.split(" ");let s,o=null;return t.length===6?s={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",date:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:s={seconds:null,minutes:t[0]||"*",hours:t[1]||"*",date:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},s.seconds===null&&s.minutes==="*"&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)&&(o={mode:"interval",interval:{period:1,unit:Te.minutes}}),s.seconds==="*"&&s.minutes==="*"&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"interval",interval:{period:1,unit:Te.seconds}}:s.seconds===null&&s.minutes.includes("/")&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"interval",interval:{period:parseInt(s.minutes.split("/")[1],10),unit:Te.minutes}}:s.seconds!==null&&s.seconds.includes("/")&&s.minutes==="*"&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"interval",interval:{period:parseInt(s.seconds.split("/")[1],10),unit:Te.seconds}}:s.seconds!==null&&s.seconds.includes("/")&&s.minutes==="*"&&s.hours.includes("-")&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"intervalBetween",intervalBetween:{period:parseInt(s.seconds.split("/")[1],10),unit:Te.seconds,timeFrom:parseInt(s.hours.split("-")[0],10),timeTo:parseInt(s.hours.split("-")[1],10),weekdays:ei(s.dow)}}:s.seconds===null&&s.minutes.includes("/")&&s.hours.includes("-")&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"intervalBetween",intervalBetween:{period:parseInt(s.minutes.split("/")[1],10),unit:Te.minutes,timeFrom:parseInt(s.hours.split("-")[0],10),timeTo:parseInt(s.hours.split("-")[1],10),weekdays:ei(s.dow)}}:s.seconds===null&&parseInt(s.minutes,10).toString()===s.minutes&&parseInt(s.hours,10).toString()===s.hours&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"specific",specific:{time:`${Je(parseInt(s.hours,10))}:${Je(parseInt(s.minutes,10))}`,weekdays:ei(s.dow)}}:s.seconds===null&&parseInt(s.minutes,10).toString()===s.minutes&&parseInt(s.hours,10).toString()===s.hours&&parseInt(s.date,10).toString()===s.date&&parseInt(s.months,10).toString()===s.months&&(s.dow==="*"||e)&&(o={mode:"once",once:{time:`${Je(parseInt(s.hours,10))}:${Je(parseInt(s.minutes,10))}`,date:`${Je(parseInt(s.date,10))}.${Je(parseInt(s.months,10))}`}}),o}class As extends a.Component{constructor(e){super(e);let t=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";t[0]==="{"&&(t="");const s=qa(t||"* * * * *",!0)||Ule;this.state={extended:!1,cron:As.state2cron(s),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:Te.minutes},intervalBetween:{period:1,unit:Te.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,s),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,t=7){if(t=t||7,e.length===t)return"*";const s=[];let o=null,r=null;if(!e.length)return"_";for(let M=0;M60&&(s.period=60),s.period!==void 0&&s.period<1&&(s.period=1),s.minutes!==void 0&&s.minutes!==null&&s.minutes>60&&(s.minutes=60),s.minutes!==void 0&&s.minutes!==null&&s.minutes<1&&(s.minutes=1),s.hours!==void 0&&s.hours!==null&&s.hours>24&&(s.hours=24),s.hours!==void 0&&s.hours!==null&&s.hours<1&&(s.hours=1),e.extended)t=`${s.minutes!==void 0&&s.minutes!==null&&s.minutes>1?`*/${s.minutes}`:"*"} ${s.hours!==void 0&&s.hours!==null&&s.hours>1?`*/${s.hours}`:"*"} * * *`;else switch(s.unit){case Te.seconds:t=`${s.period>1?`*/${s.period}`:"*"} * * * * *`;break;case Te.minutes:t=`${s.period>1?`*/${s.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const s=e.intervalBetween||{period:1,unit:Te.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let o;switch(s.timeFrom=s.timeFrom||0,s.timeTo=s.timeTo===void 0?24:s.timeTo,s.timeFrom!==0&&s.timeTo===24&&(s.timeTo=23),s.timeFrom===0&&s.timeTo===24?o="*":o=s.timeFrom!==s.timeTo?`${s.timeFrom}-${s.timeTo}`:"*",s.period>60&&(s.period=60),s.period<1&&(s.period=1),s.unit=s.unit||Te.minutes,s.unit){case Te.seconds:t=`${s.period>1?`*/${s.period}`:"*"} * ${o} * * ${this.periodArray2text(s.weekdays)}`;break;case Te.minutes:t=`${s.period>1?`*/${s.period}`:"*"} ${o} * * ${this.periodArray2text(s.weekdays)}`;break}}else if(e.mode==="specific"){const s=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},o=(s.time||"00:00").split(":");let r=parseInt(o[1],10)||0;r>59&&(r=59),r<0&&(r=0);let M=parseInt(o[0],10)||0;M>23&&(M=59),M<0&&(M=0),t=`${r} ${M} * * ${this.periodArray2text(s.weekdays||[])}`}else if(e.mode==="once"){const s=e.once||{time:"00:00",date:""};s.date||(s.date=`${new Date().getDate()}.${Je(new Date().getMonth()+1)}`);const o=(s.time||"00:00").split(":"),r=s.date.split(".");let M=parseInt(o[1],10)||0;M>59&&(M=59),M<0&&(M=0);let n=parseInt(o[0],10)||0;n>23&&(n=59),n<0&&(n=0);let u=parseInt(r[0],10)||1;u>31&&(u=31),u<1&&(n=1);let N=parseInt(r[1],10)||1;N>12&&(N=12),N<1&&(N=1),t=`${M} ${n} ${u} ${N} *`}return t}recalcCron(){this.onChange(As.state2cron(this.state))}getControlsWeekdaysElements(e){const t=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return a.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},a.createElement("h5",null,d.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(s=>a.createElement(g.FormControlLabel,{key:an[s],control:a.createElement(g.Checkbox,{checked:t.weekdays.includes(s),onChange:o=>{const r=JSON.parse(JSON.stringify(this.state[e])),M=r.weekdays.indexOf(s);o.target.checked?M===-1&&r.weekdays.push(s):M!==-1&&r.weekdays.splice(M,1),r.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:r},()=>this.recalcCron()):this.setState({specific:r},()=>this.recalcCron())},value:s.toString()}),label:d.t(an[s])})))}getControlsPeriodElements(e){const t=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?a.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},a.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),a.createElement(g.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_minutes"),value:t.minutes,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.minutes=parseInt(s.target.value,10),o.minutes<1&&(o.minutes=1),e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),a.createElement(g.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_hours"),value:t.hours,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.hours=parseInt(s.target.value,10),o.hours<1&&(o.hours=1),e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):a.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},a.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),a.createElement(g.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_every"),value:t.period,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.period=parseInt(s.target.value,10),o.period<1&&(o.period=1),e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),a.createElement(g.Select,{variant:"standard",style:{verticalAlign:"bottom"},value:t.unit,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.unit=s.target.value,e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())}},a.createElement(g.MenuItem,{value:"seconds"},d.t("sc_seconds")),")",a.createElement(g.MenuItem,{value:"minutes"},d.t("sc_minutes")),")"))}getControlsTime(e){const t=e==="once"?this.state.once:this.state.specific;return a.createElement(g.FormControl,{variant:"standard",sx:{...ut.formControl,"&.MuiFormControl-root":ut.formControlMarginRight}},a.createElement(g.TextField,{variant:"standard",key:"at",label:d.t("sc_time"),value:t.time,type:"time",sx:s=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:s.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.time=s.target.value,e==="once"?this.setState({once:o},()=>this.recalcCron()):this.setState({specific:o},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const t=new Date;e.date=`${t.getDate()}.${Je(t.getMonth()+1)}`}return a.createElement(g.FormControl,{variant:"standard",style:ut.formControl},a.createElement(g.TextField,{variant:"standard",key:"date",label:d.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:ut.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.once));s.date=t.target.value,this.setState({once:s},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return a.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),a.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},a.createElement("h5",{style:{marginBottom:5}},d.t("sc_hours")),a.createElement(g.FormControl,{variant:"standard",style:ut.formControl},a.createElement(g.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_from")),a.createElement(g.Select,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.intervalBetween));s.timeFrom=parseInt(t.target.value,10),s.timeTo===24&&(s.timeTo=23),this.setState({intervalBetween:s},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>a.createElement(g.MenuItem,{key:`B_${t}`,value:t},`${Je(t)}:00`)))),a.createElement(g.FormControl,{variant:"standard",style:ut.formControl},a.createElement(g.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_to")),a.createElement(g.Select,{variant:"standard",style:{width:100},value:e.timeTo,onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.intervalBetween));s.timeTo=parseInt(t.target.value,10),this.setState({intervalBetween:s},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>a.createElement(g.MenuItem,{key:`A_${t}`,value:t},`${Je(t)}:00`)),!e.timeFrom&&a.createElement(g.MenuItem,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[a.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return a.createElement("div",{style:ut.mainDiv},a.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},a.createElement(g.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),a.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?d.t("sc_invalid_cron"):qn(this.state.cron,this.props.language||"en")),a.createElement("div",null,a.createElement(g.FormControl,{variant:"standard",style:{...ut.formControl,marginLeft:8,marginTop:8}},a.createElement(g.InputLabel,null,d.t("ra_Repeat")),a.createElement(g.Select,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},a.createElement(g.MenuItem,{value:"once"},d.t("sc_once")),a.createElement(g.MenuItem,{value:"interval"},d.t("sc_interval")),a.createElement(g.MenuItem,{value:"intervalBetween"},d.t("sc_intervalBetween")),a.createElement(g.MenuItem,{value:"specific"},d.t("sc_specific"))))),this.state.mode===Qle.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const vle=` +`,Ae={dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red",boxSizing:"border-box"}};class T4e extends b.Component{cropperRef;constructor(e){if(super(e),this.state={uploadFile:!1,anchorEl:null,cropHandler:!1},this.cropperRef=b.createRef(),!window.document.getElementById("cropper-style-json-component")){const t=window.document.createElement("style");t.setAttribute("id","cropper-style-json-component"),t.innerHTML=Ule,window.document.head.appendChild(t)}}onDrop(e){const t=this.props.onChange,s=this.props.maxSize||10*1024,o=e[0],r=new FileReader;r.onabort=()=>console.log("file reading was aborted"),r.onerror=()=>console.log("file reading has failed"),r.onload=()=>{var u,N;if(!o||!o.name)return;const M=(u=o.name)==null?void 0:u.split(".");let a=M!=null&&M.length?`image/${(N=M.pop())==null?void 0:N.toLowerCase()}`:"image/jpeg";if(a==="image/jpg"?a="image/jpeg":a.includes("svg")&&(a="image/svg+xml"),o.size>s)window.alert(d.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(s/1024)));else{const l=`data:${a};base64,${btoa(new Uint8Array(r.result).reduce((c,L)=>c+String.fromCharCode(L),""))}`;t?t(l):console.log(l)}},r.readAsArrayBuffer(o)}render(){const{disabled:e,icon:t,removeIconFunc:s,error:o,crop:r,onChange:M}=this.props,a=this.props.maxSize||10*1024;let u=this.props.accept||{"image/*":[]};const{uploadFile:N,anchorEl:l,cropHandler:c}=this.state;if(typeof u=="string")u={[u]:[]};else if(Array.isArray(u)){const L={};u.forEach(j=>{L[j]=[]}),u=L}return n.createElement(ln,{disabled:!!e||c,key:"dropzone",multiple:!1,accept:u,maxSize:a,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(L,j)=>{var T,D,I;this.setState({uploadFile:!1}),L.length?this.onDrop(L):window.alert(((I=(D=(T=j==null?void 0:j[0])==null?void 0:T.errors)==null?void 0:D[0])==null?void 0:I.message)||d.t("ra_Cannot upload"))}},({getRootProps:L,getInputProps:j})=>n.createElement("div",{style:{...Ae.uploadDiv,...N==="dragging"?Ae.uploadDivDragging:void 0,...Ae.dropZone,...e?Ae.disabledOpacity:void 0,...t?void 0:Ae.dropZoneEmpty},...L()},n.createElement("input",{...j()}),n.createElement("div",{style:{...Ae.uploadCenterDiv,...o?Ae.error:void 0}},t?s&&!c&&n.createElement("div",{style:Ae.buttonRemoveWrapper},n.createElement(g.Tooltip,{title:d.t("ra_Clear"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},n.createElement(g.IconButton,{size:"large",onClick:T=>{s&&s(),T.stopPropagation()}},n.createElement(m.Close,null)))):n.createElement("div",{style:Ae.uploadCenterTextAndIcon},n.createElement(m.UploadFileOutlined,{style:Ae.uploadCenterIcon}),n.createElement("div",{style:Ae.uploadCenterText},N==="dragging"?d.t("ra_Drop file here"):d.t("ra_Place your files here or click here to open the browse dialog"))),t&&r&&n.createElement("div",{style:Ae.buttonCropWrapper},n.createElement(g.Tooltip,{title:d.t("ra_Crop"),slotProps:{popper:{sx:{pointerEvents:"none"}}}},n.createElement(g.IconButton,{size:"large",onClick:T=>{c?this.setState({anchorEl:T.currentTarget}):this.setState({cropHandler:!0}),T.stopPropagation()}},n.createElement(m.Crop,{color:c?"primary":"inherit"}))),n.createElement(g.Menu,{anchorEl:l,keepMounted:!0,open:!!l,onClose:()=>this.setState({anchorEl:null})},n.createElement(g.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1},()=>{var D,I;const T=(I=(D=this.cropperRef)==null?void 0:D.current)==null?void 0:I.cropper;T&&(M?M(T.getCroppedCanvas().toDataURL()):console.log(T.getCroppedCanvas().toDataURL()))})},d.t("ra_Save")),n.createElement(g.MenuItem,{onClick:()=>this.setState({anchorEl:null,cropHandler:!1})},d.t("ra_Close")))),t&&!c?n.createElement(Ie,{src:t,style:Ae.image,alt:"icon"}):null,t&&r&&c?n.createElement(Qle,{ref:this.cropperRef,style:Ae.image,src:t,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null)))}}const ut={mainDiv:{width:"100%",height:"100%",overflow:"auto"},formControl:{margin:0,minWidth:120},formControlMarginRight:{marginRight:5},formControlPaddingTop:{paddingTop:6.2}},vle={once:"once"},Te={seconds:"seconds",minutes:"minutes"},un=["ra_Sunday","ra_Monday","ra_Tuesday","ra_Wednesday","ra_Thursday","ra_Friday","ra_Saturday","ra_Sunday"];function Je(i){return i<10?`0${i}`:`${i}`}const ble={mode:"interval",interval:{period:1,unit:Te.minutes}};function ei(i){if(i==="*")return[0,1,2,3,4,5,6];const e=i.split(","),t=[];return e.forEach(s=>{const o=s.split("-");if(o.length===2){const r=parseInt(o[0],10),M=parseInt(o[1],10);for(let a=r;a<=M;a++)t.includes(a===7?0:a)||t.push(a===7?0:a)}else{s==="7"&&(s="0");const r=parseInt(s,10);t.includes(r)||t.push(r)}}),t.sort(),t}function tc(i,e){i=i.replace(/['"]/g,"").trim();const t=i.split(" ");let s,o=null;return t.length===6?s={seconds:t[0]||"*",minutes:t[1]||"*",hours:t[2]||"*",date:t[3]||"*",months:t[4]||"*",dow:t[5]||"*"}:s={seconds:null,minutes:t[0]||"*",hours:t[1]||"*",date:t[2]||"*",months:t[3]||"*",dow:t[4]||"*"},s.seconds===null&&s.minutes==="*"&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)&&(o={mode:"interval",interval:{period:1,unit:Te.minutes}}),s.seconds==="*"&&s.minutes==="*"&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"interval",interval:{period:1,unit:Te.seconds}}:s.seconds===null&&s.minutes.includes("/")&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"interval",interval:{period:parseInt(s.minutes.split("/")[1],10),unit:Te.minutes}}:s.seconds!==null&&s.seconds.includes("/")&&s.minutes==="*"&&s.hours==="*"&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"interval",interval:{period:parseInt(s.seconds.split("/")[1],10),unit:Te.seconds}}:s.seconds!==null&&s.seconds.includes("/")&&s.minutes==="*"&&s.hours.includes("-")&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"intervalBetween",intervalBetween:{period:parseInt(s.seconds.split("/")[1],10),unit:Te.seconds,timeFrom:parseInt(s.hours.split("-")[0],10),timeTo:parseInt(s.hours.split("-")[1],10),weekdays:ei(s.dow)}}:s.seconds===null&&s.minutes.includes("/")&&s.hours.includes("-")&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"intervalBetween",intervalBetween:{period:parseInt(s.minutes.split("/")[1],10),unit:Te.minutes,timeFrom:parseInt(s.hours.split("-")[0],10),timeTo:parseInt(s.hours.split("-")[1],10),weekdays:ei(s.dow)}}:s.seconds===null&&parseInt(s.minutes,10).toString()===s.minutes&&parseInt(s.hours,10).toString()===s.hours&&s.date==="*"&&s.months==="*"&&(s.dow==="*"||e)?o={mode:"specific",specific:{time:`${Je(parseInt(s.hours,10))}:${Je(parseInt(s.minutes,10))}`,weekdays:ei(s.dow)}}:s.seconds===null&&parseInt(s.minutes,10).toString()===s.minutes&&parseInt(s.hours,10).toString()===s.hours&&parseInt(s.date,10).toString()===s.date&&parseInt(s.months,10).toString()===s.months&&(s.dow==="*"||e)&&(o={mode:"once",once:{time:`${Je(parseInt(s.hours,10))}:${Je(parseInt(s.minutes,10))}`,date:`${Je(parseInt(s.date,10))}.${Je(parseInt(s.months,10))}`}}),o}class As extends n.Component{constructor(e){super(e);let t=typeof e.cronExpression=="string"?e.cronExpression.replace(/^["']/,"").replace(/["']\n?$/,""):"";t[0]==="{"&&(t="");const s=tc(t||"* * * * *",!0)||ble;this.state={extended:!1,cron:As.state2cron(s),mode:"interval",once:{time:"00:00",date:""},interval:{period:1,unit:Te.minutes},intervalBetween:{period:1,unit:Te.minutes,timeFrom:0,timeTo:23,weekdays:[0,1,2,3,4,5,6]},specific:{time:"00:00",weekdays:[0,1,2,3,4,5,6]}},Object.assign(this.state,s),this.state.cron!==e.cronExpression&&setTimeout(()=>e.onChange&&e.onChange(this.state.cron),100)}static periodArray2text(e,t=7){if(t=t||7,e.length===t)return"*";const s=[];let o=null,r=null;if(!e.length)return"_";for(let M=0;M60&&(s.period=60),s.period!==void 0&&s.period<1&&(s.period=1),s.minutes!==void 0&&s.minutes!==null&&s.minutes>60&&(s.minutes=60),s.minutes!==void 0&&s.minutes!==null&&s.minutes<1&&(s.minutes=1),s.hours!==void 0&&s.hours!==null&&s.hours>24&&(s.hours=24),s.hours!==void 0&&s.hours!==null&&s.hours<1&&(s.hours=1),e.extended)t=`${s.minutes!==void 0&&s.minutes!==null&&s.minutes>1?`*/${s.minutes}`:"*"} ${s.hours!==void 0&&s.hours!==null&&s.hours>1?`*/${s.hours}`:"*"} * * *`;else switch(s.unit){case Te.seconds:t=`${s.period>1?`*/${s.period}`:"*"} * * * * *`;break;case Te.minutes:t=`${s.period>1?`*/${s.period}`:"*"} * * * *`;break}}else if(e.mode==="intervalBetween"){const s=e.intervalBetween||{period:1,unit:Te.minutes,timeFrom:0,timeTo:24,weekdays:[0,1,2,3,4,5,6]};let o;switch(s.timeFrom=s.timeFrom||0,s.timeTo=s.timeTo===void 0?24:s.timeTo,s.timeFrom!==0&&s.timeTo===24&&(s.timeTo=23),s.timeFrom===0&&s.timeTo===24?o="*":o=s.timeFrom!==s.timeTo?`${s.timeFrom}-${s.timeTo}`:"*",s.period>60&&(s.period=60),s.period<1&&(s.period=1),s.unit=s.unit||Te.minutes,s.unit){case Te.seconds:t=`${s.period>1?`*/${s.period}`:"*"} * ${o} * * ${this.periodArray2text(s.weekdays)}`;break;case Te.minutes:t=`${s.period>1?`*/${s.period}`:"*"} ${o} * * ${this.periodArray2text(s.weekdays)}`;break}}else if(e.mode==="specific"){const s=e.specific||{time:"00:00",weekdays:[0,1,2,3,4,5,6]},o=(s.time||"00:00").split(":");let r=parseInt(o[1],10)||0;r>59&&(r=59),r<0&&(r=0);let M=parseInt(o[0],10)||0;M>23&&(M=59),M<0&&(M=0),t=`${r} ${M} * * ${this.periodArray2text(s.weekdays||[])}`}else if(e.mode==="once"){const s=e.once||{time:"00:00",date:""};s.date||(s.date=`${new Date().getDate()}.${Je(new Date().getMonth()+1)}`);const o=(s.time||"00:00").split(":"),r=s.date.split(".");let M=parseInt(o[1],10)||0;M>59&&(M=59),M<0&&(M=0);let a=parseInt(o[0],10)||0;a>23&&(a=59),a<0&&(a=0);let u=parseInt(r[0],10)||1;u>31&&(u=31),u<1&&(a=1);let N=parseInt(r[1],10)||1;N>12&&(N=12),N<1&&(N=1),t=`${M} ${a} ${u} ${N} *`}return t}recalcCron(){this.onChange(As.state2cron(this.state))}getControlsWeekdaysElements(e){const t=e==="intervalBetween"?this.state.intervalBetween:this.state.specific;return n.createElement("div",{key:"weekdays",style:{paddingLeft:8,width:"calc(100% - 8px)",maxWidth:600}},n.createElement("h5",null,d.t("ra_On weekdays")),[1,2,3,4,5,6,0].map(s=>n.createElement(g.FormControlLabel,{key:un[s],control:n.createElement(g.Checkbox,{checked:t.weekdays.includes(s),onChange:o=>{const r=JSON.parse(JSON.stringify(this.state[e])),M=r.weekdays.indexOf(s);o.target.checked?M===-1&&r.weekdays.push(s):M!==-1&&r.weekdays.splice(M,1),r.weekdays.sort(),e==="intervalBetween"?this.setState({intervalBetween:r},()=>this.recalcCron()):this.setState({specific:r},()=>this.recalcCron())},value:s.toString()}),label:d.t(un[s])})))}getControlsPeriodElements(e){const t=e==="interval"?this.state.interval:this.state.intervalBetween;return this.state.extended?n.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},n.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),n.createElement(g.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_minutes"),value:t.minutes,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.minutes=parseInt(s.target.value,10),o.minutes<1&&(o.minutes=1),e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),n.createElement(g.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_hours"),value:t.hours,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.hours=parseInt(s.target.value,10),o.hours<1&&(o.hours=1),e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:24},inputLabel:{shrink:!0}},type:"number",margin:"normal"})):n.createElement("div",{key:"period",style:{paddingLeft:8,display:"inline-block"}},n.createElement("h5",{style:{marginBottom:5}},d.t("sc_period")),n.createElement(g.TextField,{variant:"standard",style:{marginTop:0,marginBottom:0,verticalAlign:"bottom"},key:"value",label:d.t("sc_every"),value:t.period,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.period=parseInt(s.target.value,10),o.period<1&&(o.period=1),e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())},slotProps:{htmlInput:{min:1,max:60},inputLabel:{shrink:!0}},type:"number",margin:"normal"}),n.createElement(g.Select,{variant:"standard",style:{verticalAlign:"bottom"},value:t.unit,onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.unit=s.target.value,e==="interval"?this.setState({interval:o},()=>this.recalcCron()):this.setState({intervalBetween:o},()=>this.recalcCron())}},n.createElement(g.MenuItem,{value:"seconds"},d.t("sc_seconds")),")",n.createElement(g.MenuItem,{value:"minutes"},d.t("sc_minutes")),")"))}getControlsTime(e){const t=e==="once"?this.state.once:this.state.specific;return n.createElement(g.FormControl,{variant:"standard",sx:{...ut.formControl,"&.MuiFormControl-root":ut.formControlMarginRight}},n.createElement(g.TextField,{variant:"standard",key:"at",label:d.t("sc_time"),value:t.time,type:"time",sx:s=>({'& input[type="time"]::-webkit-calendar-picker-indicator':{filter:s.palette.mode==="dark"?"invert(80%)":void 0}}),onChange:s=>{const o=JSON.parse(JSON.stringify(this.state[e]));o.time=s.target.value,e==="once"?this.setState({once:o},()=>this.recalcCron()):this.setState({specific:o},()=>this.recalcCron())},slotProps:{inputLabel:{shrink:!0}},margin:"normal"}))}getControlsDate(){const e=this.state.once;if(!e.date){const t=new Date;e.date=`${t.getDate()}.${Je(t.getMonth()+1)}`}return n.createElement(g.FormControl,{variant:"standard",style:ut.formControl},n.createElement(g.TextField,{variant:"standard",key:"date",label:d.t("sc_date"),value:e.date,type:"text",slotProps:{htmlInput:{style:ut.formControlPaddingTop},inputLabel:{shrink:!0}},onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.once));s.date=t.target.value,this.setState({once:s},()=>this.recalcCron())},margin:"normal"}))}getOnceElements(){return n.createElement("div",{style:{marginLeft:8}},this.getControlsTime("once"),this.getControlsDate())}getIntervalElements(){return this.getControlsPeriodElements("interval")}getIntervalBetweenElements(){const e=this.state.intervalBetween;return[this.getControlsPeriodElements("intervalBetween"),n.createElement("div",{key:"between",style:{paddingLeft:8,display:"inline-block",verticalAlign:"top"}},n.createElement("h5",{style:{marginBottom:5}},d.t("sc_hours")),n.createElement(g.FormControl,{variant:"standard",style:ut.formControl},n.createElement(g.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_from")),n.createElement(g.Select,{variant:"standard",style:{width:100},value:e.timeFrom,onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.intervalBetween));s.timeFrom=parseInt(t.target.value,10),s.timeTo===24&&(s.timeTo=23),this.setState({intervalBetween:s},()=>this.recalcCron())}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>n.createElement(g.MenuItem,{key:`B_${t}`,value:t},`${Je(t)}:00`)))),n.createElement(g.FormControl,{variant:"standard",style:ut.formControl},n.createElement(g.InputLabel,{shrink:!0,htmlFor:"age-label-placeholder"},d.t("sc_to")),n.createElement(g.Select,{variant:"standard",style:{width:100},value:e.timeTo,onChange:t=>{const s=JSON.parse(JSON.stringify(this.state.intervalBetween));s.timeTo=parseInt(t.target.value,10),this.setState({intervalBetween:s},()=>this.recalcCron())}},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23].map(t=>n.createElement(g.MenuItem,{key:`A_${t}`,value:t},`${Je(t)}:00`)),!e.timeFrom&&n.createElement(g.MenuItem,{value:24},"00:00")))),this.getControlsWeekdaysElements("intervalBetween")]}getSpecificTimeElements(){return[n.createElement("div",{key:"time",style:{marginLeft:8}},this.getControlsTime("specific")),this.getControlsWeekdaysElements("specific")]}onModeChange(e){e!==this.state.mode&&this.setState({mode:e},()=>this.recalcCron())}onChange(e){e!==this.state.cron&&(this.setState({cron:e}),this.props.onChange&&this.props.onChange(e))}render(){return n.createElement("div",{style:ut.mainDiv},n.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)"}},n.createElement(g.TextField,{variant:"standard",style:{width:"100%"},value:this.state.cron,disabled:!0,error:this.state.cron.includes("_")})),n.createElement("div",{style:{paddingLeft:8,width:"calc(100% - 8px)",height:60}},this.state.cron.includes("_")?d.t("sc_invalid_cron"):ta(this.state.cron,this.props.language||"en")),n.createElement("div",null,n.createElement(g.FormControl,{variant:"standard",style:{...ut.formControl,marginLeft:8,marginTop:8}},n.createElement(g.InputLabel,null,d.t("ra_Repeat")),n.createElement(g.Select,{variant:"standard",value:this.state.mode,onChange:e=>this.onModeChange(e.target.value),inputProps:{name:"mode",id:"mode"}},n.createElement(g.MenuItem,{value:"once"},d.t("sc_once")),n.createElement(g.MenuItem,{value:"interval"},d.t("sc_interval")),n.createElement(g.MenuItem,{value:"intervalBetween"},d.t("sc_intervalBetween")),n.createElement(g.MenuItem,{value:"specific"},d.t("sc_specific"))))),this.state.mode===vle.once&&this.getOnceElements(),this.state.mode==="interval"&&this.getIntervalElements(),this.state.mode==="intervalBetween"&&this.getIntervalBetweenElements(),this.state.mode==="specific"&&this.getSpecificTimeElements())}}const $le=` .logo-background-light, .logo-background-colored { background: white; } .logo-background-dark, .logo-background-blue { background: black; } -`;function g4e(i){b.useEffect(()=>{if(!window.document.getElementById("vendor-iobroker-component")){const t=window.document.createElement("style");t.setAttribute("id","vendor-iobroker-component"),t.innerHTML=vle,window.document.head.appendChild(t)}},[]);const e=i.themeType||i.themeName||"light";return a.createElement("div",{className:`vendor-logo-back logo-background-${e}`,style:{display:"flex",flexDirection:"column",height:"100%",width:"10%",margin:"auto",backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:i.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},a.createElement("div",{style:{flexGrow:1}}),a.createElement(g.CircularProgress,{color:"secondary",size:i.size||200,thickness:5}),a.createElement("div",{style:{flexGrow:1}}))}const ble=` +`;function y4e(i){b.useEffect(()=>{if(!window.document.getElementById("vendor-iobroker-component")){const t=window.document.createElement("style");t.setAttribute("id","vendor-iobroker-component"),t.innerHTML=$le,window.document.head.appendChild(t)}},[]);const e=i.themeType||i.themeName||"light";return n.createElement("div",{className:`vendor-logo-back logo-background-${e}`,style:{display:"flex",flexDirection:"column",height:"100%",width:"10%",margin:"auto",backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:i.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},n.createElement("div",{style:{flexGrow:1}}),n.createElement(g.CircularProgress,{color:"secondary",size:i.size||200,thickness:5}),n.createElement("div",{style:{flexGrow:1}}))}const Ple=` .logo-background-light, .logo-background-colored { background: white; } @@ -877,7 +877,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho transform: rotate(165deg); } } -`;function T4e(i){const e=i.size||200;b.useEffect(()=>{if(!window.document.getElementById("pt-iobroker-component")){const s=window.document.createElement("style");s.setAttribute("id","pt-iobroker-component"),s.innerHTML=ble,window.document.head.appendChild(s)}},[]);const t=i.themeType||i.themeName||"light";return a.createElement("div",{className:`pt-logo-back logo-background-${t}`,style:{backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:i.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},a.createElement("div",{className:"pt-logo-div",style:{width:e,height:e}},a.createElement("div",{style:{width:200,height:200}},a.createElement("div",{className:"pt-loader-blue pt-loader-block"}),a.createElement("div",{className:"pt-loader-green pt-loader-block"}),a.createElement("div",{className:"pt-loader-red pt-loader-block"}))))}function y4e(i){const e=i.themeType||"light",t=i.size||300;return a.createElement("div",{style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:e==="dark"?"#000":"#FFF",backgroundSize:"cover"}},a.createElement("div",{style:{width:t,height:t,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:2}},a.createElement("svg",{viewBox:"0 0 500 500",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%"},a.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"200"}),a.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"133"}),a.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"83"}),a.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"66"}),a.createElement("circle",{strokeWidth:"15",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"15"}),a.createElement("g",null,a.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),a.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),a.createElement("g",{transform:"rotate(60, 250, 250)"},a.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),a.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),a.createElement("g",{transform:"rotate(120, 250, 250)"},a.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),a.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),[0,15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270,285,300,315,330,345].map(s=>a.createElement("line",{key:s,transform:`rotate(${s}, 250, 250)`,y2:"250",x2:"115",y1:"240",x1:"135",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),a.createElement("animateTransform",{attributeType:"xml",attributeName:"transform",type:"rotate",from:"0 250 250",to:"360 250 250",dur:"10s",additive:"sum",repeatCount:"indefinite"})),a.createElement("path",{d:"M 56.089 160.250 C 55.077 162.588, 46.037 182.950, 36 205.500 C 25.963 228.050, 16.923 248.412, 15.911 250.750 L 14.071 255 28.286 254.976 L 42.500 254.952 47.931 242.226 C 50.918 235.227, 54.366 227.250, 55.592 224.500 L 57.822 219.500 66.383 237.250 L 74.945 255 88.973 255 C 96.688 255, 103 254.841, 103 254.646 C 103 254.452, 100.043 248.071, 96.430 240.466 L 89.859 226.638 91.603 222.771 C 92.563 220.644, 93.660 218.710, 94.043 218.473 C 94.426 218.237, 108.609 246.609, 125.562 281.522 L 156.384 345 166.071 345 C 175.705 345, 175.763 344.985, 176.856 342.250 C 179.911 334.602, 208 260.765, 208 260.383 C 208 260.138, 202.546 260.065, 195.879 260.219 L 183.759 260.500 174.629 285.244 C 169.608 298.853, 165.254 309.990, 164.952 309.994 C 164.651 309.997, 148.901 277.389, 129.952 237.532 C 111.004 197.674, 95.275 165.057, 95 165.049 C 94.725 165.041, 90.685 172.415, 86.022 181.435 C 81.358 190.455, 77.308 197.689, 77.022 197.510 C 76.735 197.331, 72.675 187.920, 68 176.598 C 63.325 165.275, 59.147 156.008, 58.714 156.005 C 58.282 156.002, 57.101 157.912, 56.089 160.250 M 55.294 168.694 C 52.241 175.842, 52.166 176.323, 53.718 178.692 L 55.349 181.182 56.706 178.591 C 57.453 177.166, 58.406 176, 58.825 176 C 59.244 176, 60.777 178.363, 62.232 181.250 C 64.829 186.403, 64.879 186.440, 64.939 183.250 C 64.973 181.463, 65.422 180, 65.937 180 C 66.724 180, 60.176 162.824, 58.920 161.596 C 58.689 161.370, 57.057 164.564, 55.294 168.694 M 91.698 175.542 C 89.205 180.626, 89.099 181.308, 90.410 183.792 L 91.840 186.500 92.926 183.669 C 94.349 179.961, 96.024 180.653, 98.588 186.009 L 100.676 190.370 101.324 187.132 C 101.832 184.592, 101.217 182.395, 98.473 176.947 C 96.549 173.126, 94.849 170, 94.696 170 C 94.542 170, 93.193 172.494, 91.698 175.542 M 157.005 192.607 C 143.168 197.636, 134.999 209.202, 135.001 223.761 C 135.002 232.756, 138.710 240.755, 145.856 247.180 C 152.159 252.848, 158.121 255, 167.518 255 C 173.509 255, 175.684 254.499, 180.811 251.936 C 200.823 241.936, 205.088 216.155, 189.337 200.403 C 181.479 192.546, 166.868 189.022, 157.005 192.607 M 206 223 L 206 255 215.472 255 L 224.944 255 225.222 241.419 L 225.500 227.837 230.500 234.660 C 233.250 238.412, 238.002 244.636, 241.060 248.491 L 246.620 255.500 253.810 255.168 L 261 254.836 261 222.918 L 261 191 251.528 191 L 242.056 191 241.778 204.552 L 241.500 218.104 231.111 204.552 L 220.722 191 213.361 191 L 206 191 206 223 M 285.821 192.331 C 276.229 195.045, 270.010 202.130, 270.004 210.349 C 269.995 221.957, 275.913 226.925, 295.801 232.006 C 300.753 233.271, 302.228 235.609, 299.412 237.730 C 296.739 239.746, 288.369 238.774, 281.563 235.657 L 276.132 233.171 272.469 239.320 C 268.119 246.621, 268.341 247.287, 276.524 251.500 C 281.399 254.010, 283.761 254.556, 290.977 254.842 C 302.365 255.294, 307.420 253.846, 312.603 248.649 C 317.383 243.855, 319.463 236.989, 318.043 230.693 C 316.210 222.562, 311.258 218.610, 297.878 214.599 C 288.025 211.645, 285.443 209.631, 288.538 207.315 C 291.104 205.394, 302.270 205.946, 306.769 208.217 L 310.039 209.866 313.104 203.794 C 316.516 197.035, 316.622 197.304, 309.167 193.844 C 303.663 191.289, 292.140 190.542, 285.821 192.331 M 322 199 L 322 207 330 207 L 338 207 338 231 L 338 255 347.500 255 L 357 255 357 231.044 L 357 207.088 364.250 206.794 L 371.500 206.500 371.792 198.750 L 372.084 191 347.042 191 L 322 191 322 199 M 379 223 L 379 255 401 255 L 423 255 423 247.500 L 423 240 409.500 240 L 396 240 396 235 L 396 230 407.500 230 L 419 230 419 222 L 419 214 407.500 214 L 396 214 396 210.529 L 396 207.058 409.250 206.779 L 422.500 206.500 422.792 198.750 L 423.084 191 401.042 191 L 379 191 379 223 M 433 223 L 433 255 442 255 L 451 255 451 247 L 451 239 454.800 239 C 458.555 239, 458.645 239.092, 462.469 246.937 L 466.339 254.874 476.172 255.187 C 481.580 255.359, 486.003 255.111, 486.002 254.636 C 486.001 254.160, 483.277 249.264, 479.949 243.754 C 473.914 233.765, 473.903 233.732, 475.836 231.619 C 480.222 226.824, 482.359 220.791, 482.431 213 C 482.512 204.192, 480.272 198.822, 475.031 195.260 C 469.795 191.703, 465.527 191.012, 448.750 191.006 L 433 191 433 223 M 448.210 213.250 L 448.500 221.500 455.338 221.500 C 461.319 221.500, 462.417 221.204, 464.088 219.139 C 465.995 216.785, 466.556 212.613, 465.379 209.545 C 464.356 206.879, 459.449 205, 453.509 205 L 447.919 205 448.210 213.250 M 163.169 209.017 C 156.337 210.583, 151.176 218.533, 152.339 225.701 C 154.672 240.077, 175.040 242.355, 180.446 228.844 C 184.978 217.516, 175.176 206.267, 163.169 209.017 M 216.676 271.715 C 216.037 272.750, 188 344.021, 188 344.612 C 188 344.863, 192.811 344.940, 198.691 344.784 L 209.381 344.500 211.894 336.750 L 214.406 329 226.550 329 L 238.694 329 242.097 336.992 L 245.500 344.983 255.250 344.992 C 262.399 344.998, 264.994 344.667, 264.979 343.750 C 264.968 343.063, 258.477 326.525, 250.555 307 L 236.150 271.500 226.656 271.215 C 221.434 271.058, 216.943 271.283, 216.676 271.715 M 273 307 C 273 326.800, 272.887 343.337, 272.750 343.750 C 272.613 344.163, 277.102 344.628, 282.727 344.785 L 292.954 345.069 293.227 327.379 L 293.500 309.689 307 327.336 L 320.500 344.982 328.262 344.991 L 336.025 345 335.762 308.250 L 335.500 271.500 326.750 271.211 L 318 270.922 317.882 286.711 C 317.816 295.395, 317.816 302.837, 317.882 303.250 C 317.947 303.663, 317.808 304, 317.574 304 C 317.340 304, 310.809 296.575, 303.060 287.500 L 288.971 271 280.985 271 L 273 271 273 307 M 223.254 303.048 L 220.078 312 226.539 312 C 230.093 312, 233 311.861, 233 311.691 C 233 311.257, 226.886 294.553, 226.636 294.302 C 226.522 294.189, 225.001 298.125, 223.254 303.048",stroke:"none",fill:i.themeType==="dark"?"#EEE":"#111",fillRule:"evenodd"}))))}function D4e(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 436 436",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("g",{fill:"currentColor"},a.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),a.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function d4e(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 95 95",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:`M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 +`;function D4e(i){const e=i.size||200;b.useEffect(()=>{if(!window.document.getElementById("pt-iobroker-component")){const s=window.document.createElement("style");s.setAttribute("id","pt-iobroker-component"),s.innerHTML=Ple,window.document.head.appendChild(s)}},[]);const t=i.themeType||i.themeName||"light";return n.createElement("div",{className:`pt-logo-back logo-background-${t}`,style:{backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:i.themeType==="dark"?"#000":"#FFF",backgroundSize:"cover"}},n.createElement("div",{className:"pt-logo-div",style:{width:e,height:e}},n.createElement("div",{style:{width:200,height:200}},n.createElement("div",{className:"pt-loader-blue pt-loader-block"}),n.createElement("div",{className:"pt-loader-green pt-loader-block"}),n.createElement("div",{className:"pt-loader-red pt-loader-block"}))))}function d4e(i){const e=i.themeType||"light",t=i.size||300;return n.createElement("div",{style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,backgroundImage:i.backgroundImage&&i.backgroundImage!=="@@loginBackgroundImage@@"?i.backgroundImage:window.loadingBackgroundImage&&window.loadingBackgroundImage!=="@@loginBackgroundImage@@"?`url(${window.loadingBackgroundImage})`:void 0,backgroundColor:i.backgroundColor&&i.backgroundColor!=="@@loginBackgroundColor@@"?i.backgroundColor:window.loadingBackgroundColor&&window.loadingBackgroundColor!=="@@loginBackgroundColor@@"?window.loadingBackgroundColor:e==="dark"?"#000":"#FFF",backgroundSize:"cover"}},n.createElement("div",{style:{width:t,height:t,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:2}},n.createElement("svg",{viewBox:"0 0 500 500",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%"},n.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"200"}),n.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"133"}),n.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"83"}),n.createElement("circle",{strokeWidth:"5",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"66"}),n.createElement("circle",{strokeWidth:"15",fill:"none",stroke:"#01BBF5",cx:"250",cy:"250",r:"15"}),n.createElement("g",null,n.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),n.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),n.createElement("g",{transform:"rotate(60, 250, 250)"},n.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),n.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),n.createElement("g",{transform:"rotate(120, 250, 250)"},n.createElement("line",{y2:"185",x2:"250",y1:"240",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"}),n.createElement("line",{y2:"315",x2:"250",y1:"260",x1:"250",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),[0,15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270,285,300,315,330,345].map(s=>n.createElement("line",{key:s,transform:`rotate(${s}, 250, 250)`,y2:"250",x2:"115",y1:"240",x1:"135",strokeWidth:"5",stroke:"#01BBF5",fill:"none"})),n.createElement("animateTransform",{attributeType:"xml",attributeName:"transform",type:"rotate",from:"0 250 250",to:"360 250 250",dur:"10s",additive:"sum",repeatCount:"indefinite"})),n.createElement("path",{d:"M 56.089 160.250 C 55.077 162.588, 46.037 182.950, 36 205.500 C 25.963 228.050, 16.923 248.412, 15.911 250.750 L 14.071 255 28.286 254.976 L 42.500 254.952 47.931 242.226 C 50.918 235.227, 54.366 227.250, 55.592 224.500 L 57.822 219.500 66.383 237.250 L 74.945 255 88.973 255 C 96.688 255, 103 254.841, 103 254.646 C 103 254.452, 100.043 248.071, 96.430 240.466 L 89.859 226.638 91.603 222.771 C 92.563 220.644, 93.660 218.710, 94.043 218.473 C 94.426 218.237, 108.609 246.609, 125.562 281.522 L 156.384 345 166.071 345 C 175.705 345, 175.763 344.985, 176.856 342.250 C 179.911 334.602, 208 260.765, 208 260.383 C 208 260.138, 202.546 260.065, 195.879 260.219 L 183.759 260.500 174.629 285.244 C 169.608 298.853, 165.254 309.990, 164.952 309.994 C 164.651 309.997, 148.901 277.389, 129.952 237.532 C 111.004 197.674, 95.275 165.057, 95 165.049 C 94.725 165.041, 90.685 172.415, 86.022 181.435 C 81.358 190.455, 77.308 197.689, 77.022 197.510 C 76.735 197.331, 72.675 187.920, 68 176.598 C 63.325 165.275, 59.147 156.008, 58.714 156.005 C 58.282 156.002, 57.101 157.912, 56.089 160.250 M 55.294 168.694 C 52.241 175.842, 52.166 176.323, 53.718 178.692 L 55.349 181.182 56.706 178.591 C 57.453 177.166, 58.406 176, 58.825 176 C 59.244 176, 60.777 178.363, 62.232 181.250 C 64.829 186.403, 64.879 186.440, 64.939 183.250 C 64.973 181.463, 65.422 180, 65.937 180 C 66.724 180, 60.176 162.824, 58.920 161.596 C 58.689 161.370, 57.057 164.564, 55.294 168.694 M 91.698 175.542 C 89.205 180.626, 89.099 181.308, 90.410 183.792 L 91.840 186.500 92.926 183.669 C 94.349 179.961, 96.024 180.653, 98.588 186.009 L 100.676 190.370 101.324 187.132 C 101.832 184.592, 101.217 182.395, 98.473 176.947 C 96.549 173.126, 94.849 170, 94.696 170 C 94.542 170, 93.193 172.494, 91.698 175.542 M 157.005 192.607 C 143.168 197.636, 134.999 209.202, 135.001 223.761 C 135.002 232.756, 138.710 240.755, 145.856 247.180 C 152.159 252.848, 158.121 255, 167.518 255 C 173.509 255, 175.684 254.499, 180.811 251.936 C 200.823 241.936, 205.088 216.155, 189.337 200.403 C 181.479 192.546, 166.868 189.022, 157.005 192.607 M 206 223 L 206 255 215.472 255 L 224.944 255 225.222 241.419 L 225.500 227.837 230.500 234.660 C 233.250 238.412, 238.002 244.636, 241.060 248.491 L 246.620 255.500 253.810 255.168 L 261 254.836 261 222.918 L 261 191 251.528 191 L 242.056 191 241.778 204.552 L 241.500 218.104 231.111 204.552 L 220.722 191 213.361 191 L 206 191 206 223 M 285.821 192.331 C 276.229 195.045, 270.010 202.130, 270.004 210.349 C 269.995 221.957, 275.913 226.925, 295.801 232.006 C 300.753 233.271, 302.228 235.609, 299.412 237.730 C 296.739 239.746, 288.369 238.774, 281.563 235.657 L 276.132 233.171 272.469 239.320 C 268.119 246.621, 268.341 247.287, 276.524 251.500 C 281.399 254.010, 283.761 254.556, 290.977 254.842 C 302.365 255.294, 307.420 253.846, 312.603 248.649 C 317.383 243.855, 319.463 236.989, 318.043 230.693 C 316.210 222.562, 311.258 218.610, 297.878 214.599 C 288.025 211.645, 285.443 209.631, 288.538 207.315 C 291.104 205.394, 302.270 205.946, 306.769 208.217 L 310.039 209.866 313.104 203.794 C 316.516 197.035, 316.622 197.304, 309.167 193.844 C 303.663 191.289, 292.140 190.542, 285.821 192.331 M 322 199 L 322 207 330 207 L 338 207 338 231 L 338 255 347.500 255 L 357 255 357 231.044 L 357 207.088 364.250 206.794 L 371.500 206.500 371.792 198.750 L 372.084 191 347.042 191 L 322 191 322 199 M 379 223 L 379 255 401 255 L 423 255 423 247.500 L 423 240 409.500 240 L 396 240 396 235 L 396 230 407.500 230 L 419 230 419 222 L 419 214 407.500 214 L 396 214 396 210.529 L 396 207.058 409.250 206.779 L 422.500 206.500 422.792 198.750 L 423.084 191 401.042 191 L 379 191 379 223 M 433 223 L 433 255 442 255 L 451 255 451 247 L 451 239 454.800 239 C 458.555 239, 458.645 239.092, 462.469 246.937 L 466.339 254.874 476.172 255.187 C 481.580 255.359, 486.003 255.111, 486.002 254.636 C 486.001 254.160, 483.277 249.264, 479.949 243.754 C 473.914 233.765, 473.903 233.732, 475.836 231.619 C 480.222 226.824, 482.359 220.791, 482.431 213 C 482.512 204.192, 480.272 198.822, 475.031 195.260 C 469.795 191.703, 465.527 191.012, 448.750 191.006 L 433 191 433 223 M 448.210 213.250 L 448.500 221.500 455.338 221.500 C 461.319 221.500, 462.417 221.204, 464.088 219.139 C 465.995 216.785, 466.556 212.613, 465.379 209.545 C 464.356 206.879, 459.449 205, 453.509 205 L 447.919 205 448.210 213.250 M 163.169 209.017 C 156.337 210.583, 151.176 218.533, 152.339 225.701 C 154.672 240.077, 175.040 242.355, 180.446 228.844 C 184.978 217.516, 175.176 206.267, 163.169 209.017 M 216.676 271.715 C 216.037 272.750, 188 344.021, 188 344.612 C 188 344.863, 192.811 344.940, 198.691 344.784 L 209.381 344.500 211.894 336.750 L 214.406 329 226.550 329 L 238.694 329 242.097 336.992 L 245.500 344.983 255.250 344.992 C 262.399 344.998, 264.994 344.667, 264.979 343.750 C 264.968 343.063, 258.477 326.525, 250.555 307 L 236.150 271.500 226.656 271.215 C 221.434 271.058, 216.943 271.283, 216.676 271.715 M 273 307 C 273 326.800, 272.887 343.337, 272.750 343.750 C 272.613 344.163, 277.102 344.628, 282.727 344.785 L 292.954 345.069 293.227 327.379 L 293.500 309.689 307 327.336 L 320.500 344.982 328.262 344.991 L 336.025 345 335.762 308.250 L 335.500 271.500 326.750 271.211 L 318 270.922 317.882 286.711 C 317.816 295.395, 317.816 302.837, 317.882 303.250 C 317.947 303.663, 317.808 304, 317.574 304 C 317.340 304, 310.809 296.575, 303.060 287.500 L 288.971 271 280.985 271 L 273 271 273 307 M 223.254 303.048 L 220.078 312 226.539 312 C 230.093 312, 233 311.861, 233 311.691 C 233 311.257, 226.886 294.553, 226.636 294.302 C 226.522 294.189, 225.001 298.125, 223.254 303.048",stroke:"none",fill:i.themeType==="dark"?"#EEE":"#111",fillRule:"evenodd"}))))}function z4e(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 436 436",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("g",{fill:"currentColor"},n.createElement("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),n.createElement("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})))}function I4e(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 95 95",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:`M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 c-0.344,0.922-0.443,1.413-0.907,1.363c-0.786-0.078-3.845-3.346-4.845-8.145l-2.482-11.6c1.961-3.177,3.977-5.629,5.988-7.292 c1.08-0.882,2.314-1.349,3.808-1.43c3.815-0.26,5.203-0.74,6.14-1.399c1.547-1.115,2.397-2.728,2.397-4.542 c0-1.596-0.604-3.019-1.75-4.115c-1.106-1.059-2.581-1.618-4.26-1.618c-2.468,0-5.239,1.142-8.474,3.49 @@ -894,11 +894,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho c-1.525,0-2.91,0.625-4.002,1.804c-1.036,1.116-1.583,2.514-1.583,4.038c0,1.83,0.783,3.459,2.264,4.709 c1.357,1.146,3.034,1.728,4.981,1.728c2.414,0,4.884-0.921,7.344-2.737c2.053-1.519,4.697-4.526,8.074-9.189 c2.17,6.24,5.248,10.252,6.714,11.927c2.313,2.644,6.049,4.22,9.993,4.22c3.348,0,5.244-1.402,6.916-2.641l0.148-0.109 - c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z`}))}function z4e(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),a.createElement("path",{fill:"currentColor",d:`M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 + c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z`}))}function w4e(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 512 512",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),n.createElement("path",{fill:"currentColor",d:`M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 l-74.091-22.229h174.635v106.667c0,11.776,9.536,21.333,21.333,21.333s21.333-9.557,21.333-21.333v-128 C384.013,9.557,374.477,0,362.68,0H21.347c-0.768,0-1.451,0.32-2.197,0.405c-1.003,0.107-1.92,0.277-2.88,0.512 c-2.24,0.576-4.267,1.451-6.165,2.645c-0.469,0.299-1.045,0.32-1.493,0.661C8.44,4.352,8.376,4.587,8.205,4.715 C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992 c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907 l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491 - v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}function I4e(i){return a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 339 339",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},a.createElement("path",{fill:"currentColor",d:"M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),a.createElement("path",{fill:"currentColor",d:"M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),a.createElement("text",{style:{whiteSpace:"pre",fontFamily:"Arial, sans-serif",fontSize:16},x:"139.395",y:"288.084",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"},"vacuum"))}const $le={dialogPaper:{height:"calc(100% - 96px)"}};class w4e extends a.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const t=Lt.cron2state(this.state.cron);if(t.seconds==="*"||t.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(t.minutes==="*"||t.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?a.createElement(Zn,{title:d.t("ra_Please confirm"),text:d.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return a.createElement(g.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":$le.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),a.createElement(g.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),a.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden"}},a.createElement(Lt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),a.createElement(g.DialogActions,null,!!this.props.clearButton&&a.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:a.createElement(m.Delete,null)},this.props.clear||d.t("ra_Clear")),a.createElement(g.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:a.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),a.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:a.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}const Ple={dialogPaper:{height:"calc(100% - 96px)"}};class C4e extends a.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof t=="object"||t[0]==="{")&&!this.props.noWizard?"wizard":qa(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return a.createElement(g.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":Ple.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},a.createElement(g.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),a.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?a.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&a.createElement(a.Fragment,null,a.createElement(g.Radio,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),a.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},d.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&a.createElement(a.Fragment,null,a.createElement(g.Radio,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),a.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},d.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&a.createElement(a.Fragment,null,a.createElement(g.Radio,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),a.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},d.t("sc_cron")))):null,this.state.mode==="simple"&&a.createElement(As,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()}),this.state.mode==="wizard"&&a.createElement(le,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&a.createElement(Lt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:a.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),a.createElement(g.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:a.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}class h4e extends b.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return a.createElement(g.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"ar_dialog_message_title","aria-describedby":"ar_dialog_message_description"},a.createElement(g.DialogTitle,{id:"ar_dialog_message_title"},this.props.title||d.t("ra_Message")),a.createElement(g.DialogContent,null,a.createElement(g.DialogContentText,{id:"ar_dialog_message_description"},a.createElement("span",{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),a.createElement(g.DialogActions,null,a.createElement(g.Button,{id:"ar_dialog_message_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:a.createElement(m.Close,null)},this.props.ok||d.t("ra_Close"))))}}const ht={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class A4e extends a.Component{dialogName;filters;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let s=this.props.selected||[];typeof s!="object"?s=[s]:s=[...s],s=s.filter(o=>o),this.state={selected:s}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let e;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?e=[a.createElement("span",{key:"selected"},d.t("ra_Selected")," "),a.createElement("span",{key:"id",style:ht.headerID},this.state.selected)]:e=[a.createElement("span",{key:"selected"},d.t("ra_Selected")," "),a.createElement("span",{key:"id",style:ht.headerID},d.t("%s items",this.state.selected.length))]:e=this.props.title||d.t("ra_Please select file..."),a.createElement(g.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...ht.dialog,...ht.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},a.createElement(g.DialogTitle,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":ht.titleRoot}},e),a.createElement(g.DialogContent,{style:{...ht.content,...ht.contentMobile}},a.createElement(kne,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(t,s,o)=>{this.setState({selected:Array.isArray(t)?t:[t]},()=>s&&(!this.props.selectOnlyFolders||o)&&this.handleOk())},t:this.props.t||d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",onClick:()=>this.handleOk(),startIcon:a.createElement(m.Check,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||d.t("ra_Ok")),a.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:a.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}const Wle={dialogPaper:{height:"calc(100% - 96px)"}};class p4e extends a.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return a.createElement(g.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":Wle.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},a.createElement(g.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define CRON...")),a.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden"}},a.createElement(As,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),a.createElement(g.DialogActions,null,a.createElement(g.Button,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:a.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),a.createElement(g.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:a.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}const Ze={CONNECTING:0,CONNECTED:1,OBJECTS_LOADED:2,STATES_LOADED:3,READY:4},Xe="permissionError",$="notConnectedError";function cn(i){i=(i||"").toString();const e=i[0]==="*",t=i[i.length-1]==="*";return i=i.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+i+(t?"":"$")}class J{_socket;_authTimer;systemLang="en";_waitForFirstConnection;_waitForFirstConnectionResolve=null;_promises={};_instanceSubscriptions;props;doNotLoadAllObjects;doNotLoadACL;states={};objects=null;scriptLoadCounter;acl=null;firstConnect=!0;waitForRestart=!1;connected=!1;statesSubscribes={};objectsSubscribes={};filesSubscribes={};onConnectionHandlers=[];onLogHandlers=[];onProgress;onError;loaded=!1;loadTimer=null;loadCounter=0;ignoreState="";simStates={};autoSubscribes;autoSubscribeLog;subscribed;isSecure;onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;systemConfig=null;constructor(e){e||={protocol:window.location.protocol,host:window.location.hostname},this.props=e,this.autoSubscribes=this.props.autoSubscribes||[],this.autoSubscribeLog=this.props.autoSubscribeLog||!1,this.props.protocol||=window.location.protocol,this.props.host||=window.location.hostname,this.props.port||=window.location.port==="3000"?J.isWeb()?8082:8081:window.location.port,this.props.ioTimeout=Math.max(this.props.ioTimeout||2e4,2e4),this.props.cmdTimeout=Math.max(this.props.cmdTimeout||5e3,5e3),this._instanceSubscriptions={},this.doNotLoadAllObjects=this.props.doNotLoadAllObjects===void 0?!0:this.props.doNotLoadAllObjects,this.doNotLoadACL=this.props.doNotLoadACL===void 0?!0:this.props.doNotLoadACL,this.states={},this._waitForFirstConnection=new Promise(t=>{this._waitForFirstConnectionResolve=t}),this.onProgress=this.props.onProgress||(()=>{}),this.onError=this.props.onError||(t=>console.error(t)),this.startSocket()}static isWeb(){const e=window.adapterName;return e==="material"||e==="vis"||(e==null?void 0:e.startsWith("vis-"))||e==="echarts-show"||window.socketUrl!==void 0}startSocket(){if(typeof window.io>"u"&&typeof window.iob>"u"){if(typeof window.registerSocketOnLoad!="function"){if(this.scriptLoadCounter||=0,this.scriptLoadCounter++,this.scriptLoadCounter<30){setTimeout(()=>this.startSocket(),100);return}window.alert("Cannot load socket.io.js!")}else window.registerSocketOnLoad(()=>this.startSocket());return}if(this._socket)return;let e=this.props.host,t=this.props.port,s=this.props.protocol.replace(":",""),o=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")o="";else{if(window.socketUrl){const n=new URL(window.socketUrl);e=n.hostname,t=n.port,s=n.protocol.replace(":","")}const M=o.lastIndexOf("/");if(M!==-1&&(o=o.substring(0,M+1)),J.isWeb()){const n=o.split("/");n.length>2&&(n.pop(),n[n.length-1].match(/\d+\.\d+\.\d+/)&&n.pop(),n.pop(),o=n.join("/"),o.endsWith("/")||(o+="/"))}}const r=t?`${s}://${e}:${t}${o}`:`${s}://${e}${o}`;this._socket=(window.io||window.iob).connect(r,{path:o.endsWith("/")?`${o}socket.io`:`${o}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid}),this._socket.on("connect",M=>{M!==!0?setTimeout(()=>this.getVersion().then(n=>{const[u,N,l]=n.version.split(".");parseInt(u,10)*1e4+parseInt(N,10)*100+parseInt(l,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(L,j)=>this.onPreConnect(L,j))}),500):this._socket.emit("authenticate",(n,u)=>this.onPreConnect(n,u))}),this._socket.on("reconnect",()=>{this.onProgress(Ze.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(M=>M(!0)))}),this._socket.on("disconnect",()=>{this.connected=!1,this.subscribed=!1,this.onProgress(Ze.CONNECTING),this.onConnectionHandlers.forEach(M=>M(!1))}),this._socket.on("reauthenticate",()=>J.authenticate()),this._socket.on("log",M=>{var n,u;(u=(n=this.props).onLog)==null||u.call(n,M),this.onLogHandlers.forEach(N=>N(M))}),this._socket.on("error",M=>{let n=M||"";typeof n.toString!="function"&&(n=JSON.stringify(n),console.error(`Received strange error: ${n}`)),n=n.toString(),n.includes("User not authorized")?J.authenticate():window.alert(`Socket Error: ${M}`)}),this._socket.on("connect_error",M=>console.error(`Connect error: ${M}`)),this._socket.on("permissionError",M=>this.onError({message:"no permission",operation:M.operation,type:M.type,id:M.id||""})),this._socket.on("objectChange",(M,n)=>setTimeout(()=>this.objectChange(M,n),0)),this._socket.on("stateChange",(M,n)=>setTimeout(()=>this.stateChange(M,n),0)),this._socket.on("im",(M,n,u)=>setTimeout(()=>this.instanceMessage(M,n,u),0)),this._socket.on("fileChange",(M,n,u)=>setTimeout(()=>this.fileChange(M,n,u),0)),this._socket.on("cmdStdout",(M,n)=>{var u;return(u=this.onCmdStdoutHandler)==null?void 0:u.call(this,M,n)}),this._socket.on("cmdStderr",(M,n)=>{var u;return(u=this.onCmdStderrHandler)==null?void 0:u.call(this,M,n)}),this._socket.on("cmdExit",(M,n)=>{var u;return(u=this.onCmdExitHandler)==null?void 0:u.call(this,M,n)})}onPreConnect(e,t){this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?(this.loadTimer=setTimeout(()=>{this.loadTimer=null,this.loadCounter++,this.loadCounter<10&&this.onConnect().catch(s=>this.onError(s))},1e3),this.loaded||this.onConnect().catch(s=>this.onError(s))):this.onProgress(Ze.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(s=>s(!0))),this._waitForFirstConnectionResolve&&(this._waitForFirstConnectionResolve(),this._waitForFirstConnectionResolve=null)}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnection}async _getUserPermissions(){return this.doNotLoadACL?null:new Promise((e,t)=>{this._socket.emit("getUserPermissions",(s,o)=>s?t(new Error(s)):e(o))})}async onConnect(){var s,o,r,M,n;let e;try{e=await this._getUserPermissions()}catch(u){const N=u;this.onError(`Cannot read user permissions: ${N.message}`);return}if(!this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(Ze.CONNECTED),this.firstConnect=!1,this.acl=e}let t;try{if(t=await this.getSystemConfig(),this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(Ze.CONNECTED),this.firstConnect=!1}this.systemConfig=t,(s=this.systemConfig)!=null&&s.common?this.systemLang=this.systemConfig.common.language:(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substr(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en")),(r=(o=this.props).onLanguage)==null||r.call(o,this.systemLang),this.doNotLoadAllObjects?(this.objects={"system.config":t},this.onProgress(Ze.READY),(n=(M=this.props).onReady)==null||n.call(M,this.objects)):(await this.getObjects(),this.onProgress(Ze.READY),this.props.onReady&&this.objects&&this.props.onReady(this.objects))}catch(u){this.onError(`Cannot read system config: ${u}`)}}static authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`}async subscribeState(e,t,s){typeof t=="function"&&(s=t,t=!1);let o;if(Array.isArray(e)?o=e:o=[e],!s)return console.error("No callback found for subscribeState"),Promise.reject(new Error("No callback found for subscribeState"));const r=[];for(let M=0;M{this._socket.emit(J.isWeb()?"getStates":"getForeignStates",o,(u,N)=>{u?(console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(u)}`),n(new Error(u))):(N&&Object.keys(N).forEach(l=>s(l,N[l])),M())})})}subscribeStateAsync(e,t){let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let r=0;r{typeof t=="function"&&this.connected?this._socket.emit(J.isWeb()?"getStates":"getForeignStates",e,(n,u)=>{n&&console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(n)}`),u&&Object.keys(u).forEach(N=>t(N,u[N])),u?r():M(new Error(`Cannot getForeignStates "${e}": ${JSON.stringify(n)}`))}):this.connected?M(new Error("callback is not a function")):M(new Error("not connected"))})}unsubscribeState(e,t){let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let r=0;r{(r===e||this.objectsSubscribes[r].reg.test(e))&&this.objectsSubscribes[r].cbs.forEach(M=>{try{M(e,t,s)}catch(n){console.error(`Error by callback of objectChange: ${n}`)}})}),o&&this.props.onObjectChange&&this.props.onObjectChange(e,t)}stateChange(e,t){for(const s in this.statesSubscribes)Object.prototype.hasOwnProperty.call(this.statesSubscribes,s)&&this.statesSubscribes[s].reg.test(e)&&this.statesSubscribes[s].cbs.forEach(o=>{try{o(e,t)}catch(r){const M=r;console.error(`Error by callback of stateChange: ${M==null?void 0:M.message}`)}})}instanceMessage(e,t,s){this._instanceSubscriptions[t]&&this._instanceSubscriptions[t].forEach(o=>{o.messageType===e&&o.callback(s,t,e)})}getStates(e,t){return this.connected?(typeof e=="boolean"&&(t=e,e=void 0),new Promise((s,o)=>{this._socket.emit("getStates",e,(r,M)=>{this.states=M,!t&&this.onProgress(Ze.STATES_LOADED),r?o(new Error(r)):s(this.states)})})):Promise.reject(new Error($))}getState(e){return this.connected?e&&e===this.ignoreState?Promise.resolve(this.simStates[e]||{val:null,ack:!0}):new Promise((t,s)=>{this._socket.emit("getState",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getBinaryState(e){return this.connected?new Promise((t,s)=>{this._socket.emit("getBinaryState",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}setBinaryState(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("setBinaryState",e,t,r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}setState(e,t,s){if(!this.connected)return Promise.reject(new Error($));if(e&&e===this.ignoreState){let o;if(typeof s=="boolean"||typeof t=="object"&&t.val!==void 0?o=t:o={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=o,this.statesSubscribes[e])for(const r of this.statesSubscribes[e].cbs)try{r(e,o)}catch(M){console.error(`Error by callback of stateChanged: ${M}`)}return Promise.resolve()}return new Promise((o,r)=>{this._socket.emit("setState",e,t,M=>M?r(new Error(M)):o())})}getObjects(e,t){return this.connected?new Promise((s,o)=>{!e&&this.objects?s(this.objects):this._socket.emit(J.isWeb()?"getObjects":"getAllObjects",(r,M)=>{this.objects=M,t&&this.onProgress(Ze.OBJECTS_LOADED),r?o(new Error(r)):s(this.objects)})}):Promise.reject(new Error($))}getObjectsById(e){return this.connected?new Promise((t,s)=>{this._socket.emit("getObjects",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}_subscribe(e){if(e&&!this.subscribed){this.subscribed=!0,this.autoSubscribes.forEach(s=>this._socket.emit("subscribeObjects",s)),Object.keys(this.objectsSubscribes).forEach(s=>this._socket.emit("subscribeObjects",s)),this.autoSubscribeLog&&this._socket.emit("requireLog",!0);const t=Object.keys(this.statesSubscribes);t.forEach(s=>this._socket.emit("subscribe",s)),t.length&&this._socket.emit(J.isWeb()?"getStates":"getForeignStates",t,(s,o)=>{s&&console.error(`Cannot getForeignStates: ${JSON.stringify(s)}`),o&&Object.keys(o).forEach(r=>this.stateChange(r,o[r]))})}else!e&&this.subscribed&&(this.subscribed=!1,this.autoSubscribes.forEach(t=>this._socket.emit("unsubscribeObjects",t)),Object.keys(this.objectsSubscribes).forEach(t=>this._socket.emit("unsubscribeObjects",t)),this.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(t=>this._socket.emit("unsubscribe",t)))}requireLog(e){return this.connected?new Promise((t,s)=>{this._socket.emit("requireLog",e,o=>o?s(new Error(o)):t())}):Promise.reject(new Error($))}delObject(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("delObject",e,{maintenance:!!t},r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}delObjects(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("delObjects",e,{maintenance:!!t},r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}setObject(e,t){return this.connected?t?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((s,o)=>{this._socket.emit("setObject",e,t,r=>r?o(new Error(r)):s())})):Promise.reject(new Error("Null object is not allowed")):Promise.reject(new Error($))}getObject(e){return this.connected?e&&e===this.ignoreState?Promise.resolve({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed",read:!0,write:!0,role:"state"},native:{}}):new Promise((t,s)=>{this._socket.emit("getObject",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`instances_${e}`]instanceof Promise?this._promises[`instances_${e}`]:this.connected?(this._promises[`instances_${e}`]=new Promise((s,o)=>{this._socket.emit("getAdapterInstances",e,(r,M)=>r?o(new Error(r)):s(M))}),this._promises[`instances_${e}`]):Promise.reject(new Error($))}getAdapters(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`adapter_${e}`]instanceof Promise?this._promises[`adapter_${e}`]:this.connected?(this._promises[`adapter_${e}`]=new Promise((s,o)=>{this._socket.emit("getAdapters",e,(r,M)=>{r?o(new Error(r)):s(M)})}),this._promises[`adapter_${e}`]):Promise.reject(new Error($)))}_renameGroups(e,t){if(!(e!=null&&e.length))t==null||t(null);else{const s=e.pop();if(!s){setTimeout(()=>this._renameGroups(e,t),0);return}const o=s._id;s._id=s.newId,delete s.newId,this.setObject(s._id,s).then(()=>this.delObject(o)).then(()=>setTimeout(()=>this._renameGroups(e,t),0)).catch(r=>t==null?void 0:t(r))}}async renameGroup(e,t,s){if(J.isWeb())return Promise.reject(new Error("Allowed only in admin"));const o=await this.getGroups(!0);if(o.length){const r=o.filter(n=>n._id.startsWith(`${e}.`));r.forEach(n=>{n.newId=t+n._id.substring(e.length)}),await new Promise((n,u)=>{this._renameGroups(r,N=>N?u(new Error(N)):n(null))});const M=o.find(n=>n._id===e);if(M)return M._id=t,s!==void 0&&(M.common||={},M.common.name=s),this.setObject(M._id,M).then(()=>this.delObject(e))}return Promise.resolve()}sendTo(e,t,s){return this.connected?new Promise(o=>{this._socket.emit("sendTo",e,t,s,r=>o(r))}):Promise.reject(new Error($))}extendObject(e,t){return this.connected?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((s,o)=>{this._socket.emit("extendObject",e,t,r=>r?o(new Error(r)):s())})):Promise.reject(new Error($))}registerLogHandler(e){!this.onLogHandlers.includes(e)&&this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){!this.onConnectionHandlers.includes(e)&&this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return!t&&this._promises[`enums_${e||"all"}`]instanceof Promise?this._promises[`enums_${e||"all"}`]:this.connected?(this._promises[`enums_${e||"all"}`]=new Promise((s,o)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:`enum.${e?`${e}.`:""}香`},(r,M)=>{if(!r&&M){const n={};for(let u=0;u{this._socket.emit("getObjectView",e,t,{startkey:s,endkey:o},(n,u)=>{if(n)M(new Error(n));else{const N={};if(u&&u.rows)for(let l=0;l{const s=[];return t&&t.native&&t.native.certificates&&Object.keys(t.native.certificates).forEach(o=>{const r=t.native.certificates[o];if(!r)return;const M={name:o,type:""};r.length<700&&(r.includes("/")||r.includes("\\"))?(o.toLowerCase().includes("private")||r.toLowerCase().includes("private")?M.type="private":(o.toLowerCase().includes("public")||r.toLowerCase().includes("public"))&&(M.type="public"),s.push(M)):(M.type=r.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||r.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",M.type==="public"&&r.split("-----END CERTIFICATE-----").filter(u=>u.replace(/\r\n|\r|\n/,"").trim()).length>1&&(M.type="chained"),s.push(M))}),s}),this._promises.cert):Promise.reject(new Error($))}getLogs(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(s=>{this._socket.emit("sendToHost",e,"getLogs",t||200,o=>s(o))}):Promise.reject(new Error($))}getLogsFiles(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,s)=>{this._socket.emit("readLogs",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}delLogs(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,s)=>{this._socket.emit("sendToHost",e,"delLogs",null,o=>o?s(new Error(o)):t())}):Promise.reject(new Error($))}readMetaItems(){return this.connected?new Promise((e,t)=>{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(s,o)=>s?t(new Error(s)):e(o.rows&&o.rows.map(r=>r.value)))}):Promise.reject(new Error($))}readDir(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("readDir",e,t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}readFile(e,t,s){return this.connected?new Promise((o,r)=>{s?this._socket.emit("readFile64",e,t,s,(M,n)=>M?r(new Error(M)):o(n)):this._socket.emit("readFile",e,t,(M,n,u)=>{M?r(new Error(M)):o({data:n,type:u})})}):Promise.reject(new Error($))}writeFile64(e,t,s){return this.connected?new Promise((o,r)=>{if(typeof s=="string")this._socket.emit("writeFile",e,t,s,M=>M?r(new Error(M)):o());else{const M=btoa(new Uint8Array(s).reduce((n,u)=>n+String.fromCharCode(u),""));this._socket.emit("writeFile64",e,t,M,n=>n?r(new Error(n)):o())}}):Promise.reject(new Error($))}deleteFile(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("unlink",e,t,r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}deleteFolder(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("deleteFolder",e,t,r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}getHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hosts instanceof Promise?this._promises.hosts:this.connected?(this._promises.hosts=new Promise((t,s)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(o,r)=>{o?s(new Error(o)):t(r.rows.map(M=>M.value))})}),this._promises.hosts):Promise.reject(new Error($))}getUsers(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.users instanceof Promise?this._promises.users:this.connected?(this._promises.users=new Promise((t,s)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(o,r)=>{o?s(new Error(o)):t(r.rows.map(M=>M.value))})}),this._promises.users):Promise.reject(new Error($))}getGroups(e){return!e&&this._promises.groups instanceof Promise?this._promises.groups:this.connected?(this._promises.groups=new Promise((t,s)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(o,r)=>{o?s(new Error(o)):t(r.rows.map(M=>M.value))})}),this._promises.groups):Promise.reject(new Error($))}getHostInfo(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfo_${e}`]instanceof Promise?this._promises[`hostInfo_${e}`]:this.connected?(this._promises[`hostInfo_${e}`]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getHostInfo timeout")))},s||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfo",null,n=>{M&&(clearTimeout(M),M=null,n===Xe?r(new Error('May not read "getHostInfo"')):!n||typeof n!="object"?r(new Error('Cannot read "getHostInfo"')):o(n))})}),this._promises[`hostInfo_${e}`]):Promise.reject(new Error($)))}getHostInfoShort(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfoShort_${e}`]instanceof Promise?this._promises[`hostInfoShort_${e}`]:this.connected?(this._promises[`hostInfoShort_${e}`]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("hostInfoShort timeout")))},s||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfoShort",null,n=>{M&&(clearTimeout(M),M=null,n===Xe?r(new Error('May not read "getHostInfoShort"')):!n||typeof n!="object"?r(new Error('Cannot read "getHostInfoShort"')):o(n))})}),this._promises[`hostInfoShort_${e}`]):Promise.reject(new Error($)))}getRepository(e,t,s,o){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!s&&this._promises.repo instanceof Promise?this._promises.repo:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repo=new Promise((r,M)=>{let n=setTimeout(()=>{n&&(n=null,M(new Error("getRepository timeout")))},o||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getRepository",t,u=>{n&&(clearTimeout(n),n=null,u===Xe?M(new Error('May not read "getRepository"')):!u||typeof u!="object"?M(new Error('Cannot read "getRepository"')):r(u))})}),this._promises.repo):Promise.reject(new Error($))}getInstalled(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installed=this._promises.installed||{},!t&&this._promises.installed[e]instanceof Promise?this._promises.installed[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installed[e]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getInstalled timeout")))},s||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getInstalled",null,n=>{M&&(clearTimeout(M),M=null,n===Xe?r(new Error('May not read "getInstalled"')):!n||typeof n!="object"?r(new Error('Cannot read "getInstalled"')):o(n))})}),this._promises.installed[e]):Promise.reject(new Error($)))}rename(e,t,s){return this.connected?new Promise((o,r)=>{this._socket.emit("rename",e,t,s,M=>M?r(new Error(M)):o())}):Promise.reject(new Error($))}renameFile(e,t,s){return this.connected?new Promise((o,r)=>{this._socket.emit("renameFile",e,t,s,M=>M?r(new Error(M)):o())}):Promise.reject(new Error($))}cmdExec(e,t,s,o){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),new Promise((r,M)=>{let n=o?setTimeout(()=>{n&&(n=null,M(new Error("cmdExec timeout")))},o):null;this._socket.emit("cmdExec",e,s,t,null,u=>{(!o||n)&&(n&&clearTimeout(n),n=null,u?M(new Error(u)):r())})})):Promise.reject(new Error($))}checkFeatureSupported(e,t){return!t&&this._promises[`supportedFeatures_${e}`]instanceof Promise?this._promises[`supportedFeatures_${e}`]:this.connected?(this._promises[`supportedFeatures_${e}`]=new Promise((s,o)=>{this._socket.emit("checkFeatureSupported",e,(r,M)=>r?o(new Error(r)):s(M))}),this._promises[`supportedFeatures_${e}`]):Promise.reject(new Error($))}async readBaseSettings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):await this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS")?this.connected?new Promise((s,o)=>{let r=setTimeout(()=>{r&&(r=null,o(new Error("readBaseSettings timeout")))},this.props.cmdTimeout);e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),this._socket.emit("sendToHost",e,"readBaseSettings",null,M=>{r&&(clearTimeout(r),r=null,M===Xe?o(new Error('May not read "BaseSettings"')):!M||typeof M!="object"?o(new Error('Cannot read "BaseSettings"')):s(M))})}):Promise.reject(new Error($)):Promise.reject(new Error("Not supported"))}writeBaseSettings(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then(s=>s?this.connected?new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("writeBaseSettings timeout")))},this.props.cmdTimeout);this._socket.emit("sendToHost",e,"writeBaseSettings",t,n=>{M&&(clearTimeout(M),M=null,n===Xe?r(new Error('May not write "BaseSettings"')):n?o(n):r(new Error('Cannot write "BaseSettings"')))})}):Promise.reject(new Error($)):Promise.reject(new Error("Not supported")))}restartController(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,s)=>{this._socket.emit("sendToHost",e,"restartController",null,o=>{o?s(new Error(o)):t(!0)})})}getDiagData(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise(s=>{this._socket.emit("sendToHost",e,"getDiagData",t,o=>s(o))})}getForeignStates(e){return this.connected?J.isWeb()?new Promise((t,s)=>{this._socket.emit("getStates",e||"*",(o,r)=>o?s(new Error(o)):t(r))}):new Promise((t,s)=>{this._socket.emit("getForeignStates",e||"*",(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getForeignObjects(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((s,o)=>{this._socket.emit("getForeignObjects",e||"*",t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}getSystemConfig(e){return!e&&this._promises.systemConfig instanceof Promise?this._promises.systemConfig:this.connected?(this._promises.systemConfig=this.getObject("system.config").then(t=>{const s=t||{};return s.common||={},s.native||={},s}),this._promises.systemConfig):Promise.reject(new Error($))}setSystemConfig(e){return this.setObject("system.config",e).then(()=>this._promises.systemConfig=Promise.resolve(e))}getRawSocket(){return this._socket}getHistory(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("getHistory",e,t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}getHistoryEx(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("getHistory",e,t,(r,M,n,u)=>r?o(new Error(r)):s({values:M,sessionId:u,step:n}))}):Promise.reject(new Error($))}changePassword(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((s,o)=>{this._socket.emit("changePassword",e,t,r=>r?o(new Error(r)):s())})}getIpAddresses(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e=`system.host.${e}`),!t&&this._promises[`IPs_${e}`]instanceof Promise?this._promises[`IPs_${e}`]:(this._promises[`IPs_${e}`]=this.getObject(e).then(s=>s!=null&&s.common?s.common.address||[]:[]),this._promises[`IPs_${e}`]))}getHostByIp(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),!t&&this._promises[`rIPs_${e}`]instanceof Promise?this._promises[`rIPs_${e}`]:(this._promises[`rIPs_${e}`]=new Promise(s=>{this._socket.emit("getHostByIp",e,(o,r)=>{var u,N;const M=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],n=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((N=(u=r==null?void 0:r.native)==null?void 0:u.hardware)!=null&&N.networkInterfaces){for(const l in r.native.hardware.networkInterfaces)if(Object.prototype.hasOwnProperty.call(r.native.hardware.networkInterfaces,l))for(let c=0;c{this._socket.emit("encrypt",e,(o,r)=>o?s(new Error(o)):t(r))})}decrypt(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,s)=>{this._socket.emit("decrypt",e,(o,r)=>o?s(new Error(o)):t(r))})}getVersion(e){return!e&&this._promises.version instanceof Promise?this._promises.version:(this._promises.version=new Promise((t,s)=>{this._socket.emit("getVersion",(o,r,M)=>{o&&!r&&typeof o=="string"&&o.match(/\d+\.\d+\.\d+/)?t({version:o,serverName:"socketio"}):o?s(new Error(o)):t({version:r,serverName:M})})}),this._promises.version)}getWebServerName(){return this._promises.webName instanceof Promise?this._promises.webName:(this._promises.webName=new Promise((e,t)=>{this._socket.emit("getAdapterName",(s,o)=>s?t(new Error(s)):e(o))}),this._promises.webName)}getAdminVersion(){return console.log("Deprecated: use getVersion"),this.getVersion()}chmodFile(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((o,r)=>{this._socket.emit("chmodFile",e,t,s,(M,n,u)=>M?r(new Error(M)):o({entries:n,id:u}))}):Promise.reject(new Error($))}chownFile(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((o,r)=>{this._socket.emit("chownFile",e,t,s,(M,n,u)=>M?r(new Error(M)):o({entries:n,id:u}))}):Promise.reject(new Error($))}fileExists(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("fileExists",e,t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}getNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(s=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},o=>s(o))}):Promise.reject(new Error($))}clearNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(s=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},o=>s(o))}):Promise.reject(new Error($))}getIsEasyModeStrict(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getIsEasyModeStrict",(s,o)=>s?t(new Error(s)):e(o))}):Promise.reject(new Error($))}getEasyMode(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getEasyMode",(s,o)=>s?t(new Error(s)):e(o))}):Promise.reject(new Error($))}getCurrentUser(){return this.connected?new Promise(e=>{this._socket.emit("authEnabled",(t,s)=>e(s))}):Promise.reject(new Error($))}getCurrentSession(e){return this.connected?new Promise((t,s)=>{const o=new AbortController;let r=setTimeout(()=>{r&&(r=null,o.abort(),s(new Error("getCurrentSession timeout")))},e||5e3);fetch("./session",{signal:o.signal}).then(M=>M.json()).then(M=>{r&&(clearTimeout(r),r=null,t(M))}).catch(M=>s(new Error(`getCurrentSession: ${M}`)))}):Promise.reject(new Error($))}getRatings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,s)=>{this._socket.emit("getRatings",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getCurrentInstance(){return this.connected?this._promises.currentInstance instanceof Promise?this._promises.currentInstance:(this._promises.currentInstance=new Promise((e,t)=>{this._socket.emit("getCurrentInstance",(s,o)=>s?t(new Error(s)):e(o))}),this._promises.currentInstance):Promise.reject(new Error($))}getCompactAdapters(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactAdapters instanceof Promise?this._promises.compactAdapters:this.connected?(this._promises.compactAdapters=new Promise((t,s)=>{this._socket.emit("getCompactAdapters",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.compactAdapters):Promise.reject(new Error($))}getAdaptersResetCache(e){e||="",delete this._promises.compactAdapters,delete this._promises[`adapter_${e}`]}getCompactInstances(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactInstances instanceof Promise?this._promises.compactInstances:this.connected?(this._promises.compactInstances=new Promise((t,s)=>{this._socket.emit("getCompactInstances",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.compactInstances):Promise.reject(new Error($))}getAdapternInstancesResetCache(e){e||="",delete this._promises.compactInstances,delete this._promises[`instances_${e}`]}getCompactInstalled(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installedCompact||={},!t&&this._promises.installedCompact[e]instanceof Promise?this._promises.installedCompact[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installedCompact[e]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getCompactInstalled timeout")))},s||this.props.cmdTimeout);this._socket.emit("getCompactInstalled",e,n=>{M&&(clearTimeout(M),M=null,n===Xe?r(new Error('May not read "getCompactInstalled"')):!n||typeof n!="object"?r(new Error('Cannot read "getCompactInstalled"')):o(n))})}),this._promises.installedCompact[e]):Promise.reject(new Error($)))}getCompactSystemRepositories(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.getCompactSystemRepositories instanceof Promise?this._promises.getCompactSystemRepositories:this.connected?(this._promises.getCompactSystemRepositories=new Promise((s,o)=>{let r=setTimeout(()=>{r&&(r=null,o(new Error("getCompactSystemRepositories timeout")))},t||this.props.cmdTimeout);this._socket.emit("getCompactSystemRepositories",M=>{r&&(clearTimeout(r),r=null,M===Xe?o(new Error('May not read "getCompactSystemRepositories"')):!M||typeof M!="object"?o(new Error('Cannot read "getCompactSystemRepositories"')):s(M))})}),this._promises.getCompactSystemRepositories):Promise.reject(new Error($))}getCompactSystemConfig(e){return!e&&this._promises.systemConfigPromise instanceof Promise?this._promises.systemConfigPromise:this.connected?(this._promises.systemConfigPromise=new Promise((t,s)=>{this._socket.emit("getCompactSystemConfig",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.systemConfigPromise):Promise.reject(new Error($))}getCompactRepository(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!t&&this._promises.repoCompact instanceof Promise?this._promises.repoCompact:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repoCompact=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getCompactRepository timeout")))},s||this.props.cmdTimeout);this._socket.emit("getCompactRepository",e,n=>{M&&(clearTimeout(M),M=null,n===Xe?r(new Error('May not read "getCompactRepository"')):n?o(n):r(new Error('Cannot read "getCompactRepository"')))})}),this._promises.repoCompact):Promise.reject(new Error($))}getInstalledResetCache(){delete this._promises.repoCompact,delete this._promises.repo}getCompactHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hostsCompact instanceof Promise?this._promises.hostsCompact:this.connected?(this._promises.hostsCompact=new Promise((t,s)=>{this._socket.emit("getCompactHosts",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.hostsCompact):Promise.reject(new Error($))}getUuid(){return this._promises.uuid instanceof Promise?this._promises.uuid:this.connected?(this._promises.uuid=this.getObject("system.meta.uuid").then(e=>{var t;return(t=e==null?void 0:e.native)==null?void 0:t.uuid}),this._promises.uuid):Promise.reject(new Error($))}subscribeOnInstance(e,t,s,o){return this.connected?new Promise((r,M)=>{this._socket.emit("clientSubscribe",e,t,s,(n,u)=>{n?M(new Error(n)):u!=null&&u.error?M(new Error(u.error)):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]||=[],this._instanceSubscriptions[e].find(N=>N.messageType===t&&N.callback===o)||this._instanceSubscriptions[e].push({messageType:t,callback:o}),r(u))})}):Promise.reject(new Error($))}unsubscribeFromInstance(e,t,s){var M;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let o;const r=[];do{o=!1;const n=(M=this._instanceSubscriptions[e])==null?void 0:M.findIndex(u=>(!t||u.messageType===t)&&(!s||u.callback===s));if(n!=null&&n!==-1){o=!0;const u=this._instanceSubscriptions[e][n].messageType;this._instanceSubscriptions[e].splice(n,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(l=>l.messageType===u)||r.push(new Promise((l,c)=>{this._socket.emit("clientUnsubscribe",e,t,(L,j)=>{L?c(new Error(L)):l(j)})}))}}while(o&&(!s||!t));return r.length?Promise.all(r).then(n=>n.find(u=>u)||!1):Promise.resolve(!1)}log(e,t){e&&this._socket.emit("log",e,t||"debug")}logout(){return this.connected?new Promise((e,t)=>{this._socket.emit("logout",s=>s?t(new Error(s)):e())}):Promise.reject(new Error($))}setStateToIgnore(e){this.ignoreState=e||""}}function m4e(i){var e;return i.type==="object"?`iobobject://${i.address}/${i.path||""}`:i.type==="state"?`iobstate://${i.address}`:i.type==="file"?`iobfile://${i.address}/${i.path||""}`:i.type==="http"?i.address:(e=i.path)!=null&&e.includes("/")?`iobfile://${i.address}/${i.path}`:i.path?`iobobject://${i.address}/${i.path}`:`iobstate://${i.address}`}function Rle(i){const e={type:"object",address:""};if(i.startsWith("iobobject://")){e.type="object",i=i.replace("iobobject://","");const t=i.split("/");e.address=t[0],e.path=t[1]}else if(i.startsWith("iobstate://")){e.type="state",i=i.replace("iobstate://","");const t=i.split("/");e.address=t[0],e.path=t[1]}else if(i.startsWith("iobfile://")){e.type="file",i=i.replace("iobfile://","");const t=i.split("/");e.address=t.shift(),e.path=t.join("/")}else if(i.startsWith("http://")||i.startsWith("https://"))e.type="http",e.address=i;else if(i.startsWith("data:"))e.type="base64",e.address=i;else{const t=i.split("/");if(t.length===2)if(e.address=t[0],e.path=t[1],e.path.includes("."))e.type="object";else if(e.path)if(e.path==="val"||e.path==="q"||e.path==="ack"||e.path==="ts"||e.path==="lc"||e.path==="from"||e.path==="user"||e.path==="expire"||e.path==="c")e.type="state";else if(e.path==="common"||e.path==="native"||e.path==="from"||e.path==="acl"||e.path==="type")e.type="object";else throw new Error(`Unknown path: ${e.path}`);else e.type="state";else t.length===1?(e.address=t[0],e.type="state"):(e.address=t.shift(),e.type="file",e.path=t.join("/"))}return e}function ec(i,e,t){if(t=t||0,i==null||!e)return i;if(e.length-1===t)return i[e[t]];if(typeof i=="object")return ec(i[e[t]],e,t+1)}function Jle(i,e,t,s){if(s=s||0,i==null||!e)return t;if(e.length-1===s)return i[e[s]]=t,i;if(typeof i=="object")return Jle(i[e[s]],e,t,s+1)}async function O4e(i,e){var t;if(typeof i=="string"&&(i=Rle(i)),i.type==="object"){const s=await e.getObject(i.address);return ec(s,(t=i.path)==null?void 0:t.split("."))}if(i.type==="state"){const s=await e.getState(i.address);return i.path?s==null?void 0:s[i.path]:s}if(i.type==="file")return await e.readFile(i.address,i.path,!0);if(i.type==="http")return fetch(i.address).then(s=>s.text()).then(s=>{if(s.startsWith("{")&&s.endsWith("}")||s.startsWith("[")&&s.endsWith("]"))try{return JSON.parse(s)}catch{}return s});throw new Error(`Unknown type: ${i.type}`)}const Gi=i=>{const e={};return i.forEach(t=>{e[t]={requiredVersion:"*",singleton:!0}}),e};function E4e(i){const e=["@emotion/react","@emotion/styled","@iobroker/adapter-react-v5","@iobroker/json-config","@iobroker/dm-gui-components","@mui/icons-material","@mui/material","@mui/x-date-pickers","date-fns","date-fns/locale","leaflet","leaflet-geosearch","react","react-ace","react-dom","react-dropzone","semver"];return Array.isArray(i)?Gi(e.filter(t=>i.includes(t))):i&&(i.dependencies||i.devDependencies)?Gi(e.filter(t=>{var s,o;return((s=i.dependencies)==null?void 0:s[t])||((o=i.devDependencies)==null?void 0:o[t])})):Gi(e)}export{s4e as AdminConnection,Ls as ColorPicker,Lt as ComplexCron,w4e as ComplexCronDialog,Zn as Confirm,je as Connection,C4e as Cron,i4e as CustomModal,Bue as DeviceTypeIcon,n4e as DeviceTypeSelector,w4e as DialogComplexCron,Zn as DialogConfirm,C4e as DialogCron,Xn as DialogError,h4e as DialogMessage,A4e as DialogSelectFile,$Ne as DialogSelectID,p4e as DialogSimpleCron,cne as DialogTextInput,ye as ERRORS,ge as EXTENSIONS,Xn as Error,kne as FileBrowser,Go as FileBrowserClass,fne as FileViewer,xne as FileViewerClass,At as GenericApp,d as I18n,vM as ITEM_IMAGES,Ie as Icon,nNe as IconAdapter,_ne as IconAlias,D4e as IconButtonImage,da as IconChannel,NNe as IconClearFilter,Gt as IconClosed,$t as IconCopy,za as IconDevice,aNe as IconDocument,cNe as IconDocumentReadOnly,uo as IconExpert,d4e as IconFx,uNe as IconInstance,z4e as IconLogout,Fo as IconNoIcon,Ks as IconOpen,M4e as IconPicker,lce as IconSelector,gs as IconState,I4e as IconVacuum,qs as Image,c4e as InfoBox,J as LegacyConnection,Q4 as Loader,y4e as LoaderMV,T4e as LoaderPT,g4e as LoaderVendor,ya as Logo,Da as MDUtils,h4e as Message,CNe as ObjectBrowser,We as ObjectBrowserClass,t4e as PERMISSION_ERROR,Re as PROGRESS,Ts as Router,a4e as STATES_NAME_ICONS,W4 as SaveCloseButtons,le as Schedule,A4e as SelectFile,$Ne as SelectID,u4e as SelectWithIcon,As as SimpleCron,p4e as SimpleCronDialog,lNe as TabContainer,LNe as TabContent,jNe as TabHeader,N4e as TableResize,cne as TextInput,l4e as TextWithIcon,nc as Theme,L4e as ToggleThemeMenu,Co as TreeTable,j4e as UploadImage,S as Utils,qn as convertCronToText,Vn as copy,qa as cron2state,FMe as dictionary,Ta as extendDeviceTypeTranslation,ec as getAttrInObject,r4e as getSelectIdIcon,ci as getSelectIdIconFromObjects,o4e as getSystemIcon,Rle as iobUriParse,O4e as iobUriRead,m4e as iobUriToString,E4e as moduleFederationShared,cn as pattern2RegEx,k4 as printPrompt,Jle as setAttrInObject,di as withWidth}; + v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z`}))}function C4e(i){return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",onClick:e=>i.onClick&&i.onClick(e),viewBox:"0 0 339 339",width:i.width||(i.fontSize==="small"?16:20),height:i.height||i.width||(i.fontSize==="small"?16:20),className:i.className,style:i.style},n.createElement("path",{fill:"currentColor",d:"M 318.371 88.485 C 332.371 114.538 339.207 142.418 338.881 172.125 C 338.874 172.605 338.631 172.845 338.151 172.845 L 335.411 172.845 C 335.077 172.845 334.911 173.012 334.911 173.345 L 334.911 181.215 C 334.911 181.635 335.121 181.845 335.541 181.845 L 337.711 181.845 C 338.157 181.845 338.364 182.068 338.331 182.515 C 331.921 264.525 267.321 330.135 185.931 337.995 C 89.911 347.265 6.491 275.385 0.301 179.465 C 0.274 179.052 0.467 178.845 0.881 178.845 L 2.381 178.845 C 2.741 178.845 2.921 178.665 2.921 178.305 L 2.911 171.465 C 2.904 171.052 2.694 170.845 2.281 170.845 L 0.441 170.845 C 0.147 170.845 0.001 170.698 0.001 170.405 C -0.289 83.535 64.591 10.095 151.421 0.955 C 211.511 -5.375 269.171 20.055 305.341 68.135 C 305.538 68.391 305.938 68.338 306.062 68.039 C 306.065 68.031 306.068 68.023 306.071 68.015 L 311.541 51.395 C 311.63 51.125 311.924 50.977 312.201 51.065 L 316.881 52.625 C 317.274 52.758 317.407 53.022 317.281 53.415 L 310.271 74.305 C 310.157 74.645 310.197 74.968 310.391 75.275 L 314.011 80.905 C 314.204 81.205 314.481 81.378 314.841 81.425 L 336.771 84.365 C 337.124 84.412 337.277 84.612 337.231 84.965 L 336.601 89.775 C 336.547 90.182 336.321 90.358 335.921 90.305 L 318.721 87.975 C 318.267 87.915 318.151 88.085 318.371 88.485 Z M 200.701 172.615 C 170.541 200.245 121.671 181.975 117.251 140.865 C 117.211 140.518 117.017 140.345 116.671 140.345 L 8.941 140.345 C 8.68 140.346 8.46 140.532 8.421 140.785 C -10.469 249.095 80.901 345.385 189.421 331.625 C 265.701 321.955 325.741 260.435 332.311 183.415 C 343.611 50.895 200.811 -38.365 85.961 28.845 C 47.041 51.625 20.601 89.335 9.791 133.265 C 9.611 133.985 9.891 134.345 10.631 134.345 L 116.371 134.345 C 116.664 134.345 116.824 134.202 116.851 133.915 C 118.397 116.288 126.001 103.005 139.661 94.065 C 172.821 72.345 214.571 95.715 216.891 133.845 C 216.911 134.178 217.087 134.345 217.421 134.345 L 330.342 134.345 C 330.842 134.345 331.092 134.595 331.092 135.095 L 331.092 139.595 C 331.092 140.095 330.842 140.345 330.342 140.345 L 217.161 140.345 C 216.827 140.345 216.641 140.512 216.601 140.845 C 215.141 153.652 209.841 164.242 200.701 172.615 Z M 210.861 135.845 C 210.861 111.572 191.183 91.895 166.911 91.895 C 142.638 91.895 122.961 111.572 122.961 135.845 C 122.961 160.118 142.638 179.795 166.911 179.795 C 191.183 179.795 210.861 160.118 210.861 135.845 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),n.createElement("path",{fill:"currentColor",d:"M 222.771 42.215 C 224.237 43.708 223.741 45.092 221.281 46.365 C 220.5 46.768 219.574 46.779 218.781 46.395 C 183.761 29.182 149.014 29.638 114.541 47.765 C 113.252 48.444 111.662 47.8 111.211 46.415 C 110.891 45.435 110.867 44.465 111.141 43.505 C 111.234 43.158 111.437 42.898 111.751 42.725 C 145.631 23.545 186.631 23.045 221.051 41.045 C 221.831 41.452 222.404 41.842 222.771 42.215 Z",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"}),n.createElement("text",{style:{whiteSpace:"pre",fontFamily:"Arial, sans-serif",fontSize:16},x:"139.395",y:"288.084",transform:"matrix(0.9999999999999999, 0, 0, 0.9999999999999999, -5.684341886080802e-14, 0)"},"vacuum"))}const Wle={dialogPaper:{height:"calc(100% - 96px)"}};class h4e extends n.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={showWarning:"",cron:t}}handleCancel(){this.props.onClose()}handleOk(e){if(!e){const t=Lt.cron2state(this.state.cron);if(t.seconds==="*"||t.seconds==="*/1"){this.setState({showWarning:"everySecond"});return}if(t.minutes==="*"||t.minutes==="*/1"){this.setState({showWarning:"everyMinute"});return}}this.props.onOk(this.state.cron),this.props.onClose()}renderWarningDialog(){return this.state.showWarning?n.createElement(Kn,{title:d.t("ra_Please confirm"),text:d.t(this.state.showWarning==="everySecond"?"ra_The schedule will be executed every second. Are you sure?":"ra_The schedule will be executed every minute. Are you sure?"),onClose:e=>this.setState({showWarning:""},()=>{e&&this.handleOk(!0)})}):null}handleClear(){this.props.onOk(!1),this.props.onClose()}render(){return n.createElement(g.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":Wle.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},this.renderWarningDialog(),n.createElement(g.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),n.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden"}},n.createElement(Lt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),n.createElement(g.DialogActions,null,!!this.props.clearButton&&n.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.handleClear(),startIcon:n.createElement(m.Delete,null)},this.props.clear||d.t("ra_Clear")),n.createElement(g.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:n.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),n.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:n.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}const Rle={dialogPaper:{height:"calc(100% - 96px)"}};class A4e extends n.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t,mode:this.props.simple?"simple":this.props.complex?"complex":(typeof t=="object"||t[0]==="{")&&!this.props.noWizard?"wizard":tc(this.props.cron||"* * * * *")?"simple":"complex"}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}setMode(e){this.setState({mode:e})}render(){return n.createElement(g.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":Rle.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},n.createElement(g.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define schedule...")),n.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden"}},this.props.simple&&this.props.complex||!this.props.simple&&!this.props.complex?n.createElement("div",null,!this.props.simple&&!this.props.complex&&!this.props.noWizard&&n.createElement(n.Fragment,null,n.createElement(g.Radio,{key:"wizard",checked:this.state.mode==="wizard",onChange:()=>this.setMode("wizard")}),n.createElement("label",{onClick:()=>this.setMode("wizard"),style:this.state.mode!=="wizard"?{color:"lightgrey"}:{}},d.t("sc_wizard"))),(!this.props.simple&&!this.props.complex||this.props.simple)&&n.createElement(n.Fragment,null,n.createElement(g.Radio,{key:"simple",checked:this.state.mode==="simple",onChange:()=>this.setMode("simple")}),n.createElement("label",{onClick:()=>this.setMode("simple"),style:this.state.mode!=="simple"?{color:"lightgrey"}:{}},d.t("sc_simple"))),(!this.props.simple&&!this.props.complex||this.props.complex)&&n.createElement(n.Fragment,null,n.createElement(g.Radio,{key:"complex",checked:this.state.mode==="complex",onChange:()=>this.setMode("complex")}),n.createElement("label",{onClick:()=>this.setMode("complex"),style:this.state.mode!=="complex"?{color:"lightgrey"}:{}},d.t("sc_cron")))):null,this.state.mode==="simple"&&n.createElement(As,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()}),this.state.mode==="wizard"&&n.createElement(le,{theme:this.props.theme,schedule:this.state.cron,onChange:e=>this.setState({cron:e})}),this.state.mode==="complex"&&n.createElement(Lt,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",startIcon:n.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),n.createElement(g.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:n.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}class p4e extends b.Component{handleOk(){this.props.onClose&&this.props.onClose()}render(){return n.createElement(g.Dialog,{open:!0,maxWidth:"sm",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"ar_dialog_message_title","aria-describedby":"ar_dialog_message_description"},n.createElement(g.DialogTitle,{id:"ar_dialog_message_title"},this.props.title||d.t("ra_Message")),n.createElement(g.DialogContent,null,n.createElement(g.DialogContentText,{id:"ar_dialog_message_description"},n.createElement("span",{style:{marginRight:this.props.icon?8:0}},this.props.icon||null),this.props.text)),n.createElement(g.DialogActions,null,n.createElement(g.Button,{id:"ar_dialog_message_ok",variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:n.createElement(m.Close,null)},this.props.ok||d.t("ra_Close"))))}}const ht={headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:"4px",width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}};class m4e extends n.Component{dialogName;filters;constructor(e){super(e),this.dialogName=this.props.dialogName||"default",this.dialogName=`SelectFile.${this.dialogName}`;const t=(window._localStorage||window.localStorage).getItem(this.dialogName)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}e.filters&&(this.filters={...this.filters,...e.filters});let s=this.props.selected||[];typeof s!="object"?s=[s]:s=[...s],s=s.filter(o=>o),this.state={selected:s}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.props.multiSelect||!Array.isArray(this.state.selected)?this.state.selected:this.state.selected[0]||""),this.props.onClose()}render(){let e;return this.state.selected.length?!Array.isArray(this.state.selected)||this.state.selected.length===1?e=[n.createElement("span",{key:"selected"},d.t("ra_Selected")," "),n.createElement("span",{key:"id",style:ht.headerID},this.state.selected)]:e=[n.createElement("span",{key:"selected"},d.t("ra_Selected")," "),n.createElement("span",{key:"id",style:ht.headerID},d.t("%s items",this.state.selected.length))]:e=this.props.title||d.t("ra_Please select file..."),n.createElement(g.Dialog,{onClose:()=>{},maxWidth:!1,sx:{"& .MuiDialog-paper":{...ht.dialog,...ht.dialogMobile}},fullWidth:!0,open:!0,"aria-labelledby":"ar_dialog_selectfile_title"},n.createElement(g.DialogTitle,{id:"ar_dialog_selectfile_title",sx:{"&.MuiDialogTitle-root":ht.titleRoot}},e),n.createElement(g.DialogContent,{style:{...ht.content,...ht.contentMobile}},n.createElement(Qne,{ready:!0,imagePrefix:this.props.imagePrefix||this.props.prefix||"../",allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,allowView:this.props.allowView!==!1,showViewTypeButton:this.props.showViewTypeButton!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,restrictToFolder:this.props.restrictToFolder,allowNonRestricted:this.props.allowNonRestricted,onSelect:(t,s,o)=>{this.setState({selected:Array.isArray(t)?t:[t]},()=>s&&(!this.props.selectOnlyFolders||o)&&this.handleOk())},t:this.props.t||d.t,lang:this.props.lang||d.getLanguage(),socket:this.props.socket,themeType:this.props.themeType,themeName:this.props.themeName,theme:this.props.theme,showExpertButton:this.props.showExpertButton,expertMode:this.props.expertMode,showTypeSelector:this.props.showTypeSelector})),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",onClick:()=>this.handleOk(),startIcon:n.createElement(m.Check,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||d.t("ra_Ok")),n.createElement(g.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:n.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}const Jle={dialogPaper:{height:"calc(100% - 96px)"}};class O4e extends n.Component{constructor(e){super(e);let t;this.props.cron&&typeof this.props.cron=="string"&&this.props.cron.replace(/^["']/,"")[0]!=="{"?t=this.props.cron.replace(/['"]/g,"").trim():(t=this.props.cron||"{}",typeof t=="string"&&(t=t.replace(/^["']/,"").replace(/["']\n?$/,""))),this.state={cron:t}}handleCancel(){this.props.onClose()}handleOk(){this.props.onOk(this.state.cron),this.props.onClose()}render(){return n.createElement(g.Dialog,{onClose:()=>{},maxWidth:"md",fullWidth:!0,sx:{"& .MuiDialog-paper":Jle.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},n.createElement(g.DialogTitle,{id:"cron-dialog-title"},this.props.title||d.t("ra_Define CRON...")),n.createElement(g.DialogContent,{style:{height:"100%",overflow:"hidden"}},n.createElement(As,{cronExpression:this.state.cron,onChange:e=>this.setState({cron:e}),language:d.getLanguage()})),n.createElement(g.DialogActions,null,n.createElement(g.Button,{variant:"contained",disabled:!this.state.cron||this.state.cron.includes("_"),onClick:()=>this.handleOk(),color:"primary",startIcon:n.createElement(m.Check,null)},this.props.ok||d.t("ra_Ok")),n.createElement(g.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"grey",startIcon:n.createElement(m.Cancel,null)},this.props.cancel||d.t("ra_Cancel"))))}}const Ze={CONNECTING:0,CONNECTED:1,OBJECTS_LOADED:2,STATES_LOADED:3,READY:4},Xe="permissionError",$="notConnectedError";function Nn(i){i=(i||"").toString();const e=i[0]==="*",t=i[i.length-1]==="*";return i=i.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+i+(t?"":"$")}class J{_socket;_authTimer;systemLang="en";_waitForFirstConnection;_waitForFirstConnectionResolve=null;_promises={};_instanceSubscriptions;props;doNotLoadAllObjects;doNotLoadACL;states={};objects=null;scriptLoadCounter;acl=null;firstConnect=!0;waitForRestart=!1;connected=!1;statesSubscribes={};objectsSubscribes={};filesSubscribes={};onConnectionHandlers=[];onLogHandlers=[];onProgress;onError;loaded=!1;loadTimer=null;loadCounter=0;ignoreState="";simStates={};autoSubscribes;autoSubscribeLog;subscribed;isSecure;onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;systemConfig=null;constructor(e){e||={protocol:window.location.protocol,host:window.location.hostname},this.props=e,this.autoSubscribes=this.props.autoSubscribes||[],this.autoSubscribeLog=this.props.autoSubscribeLog||!1,this.props.protocol||=window.location.protocol,this.props.host||=window.location.hostname,this.props.port||=window.location.port==="3000"?J.isWeb()?8082:8081:window.location.port,this.props.ioTimeout=Math.max(this.props.ioTimeout||2e4,2e4),this.props.cmdTimeout=Math.max(this.props.cmdTimeout||5e3,5e3),this._instanceSubscriptions={},this.doNotLoadAllObjects=this.props.doNotLoadAllObjects===void 0?!0:this.props.doNotLoadAllObjects,this.doNotLoadACL=this.props.doNotLoadACL===void 0?!0:this.props.doNotLoadACL,this.states={},this._waitForFirstConnection=new Promise(t=>{this._waitForFirstConnectionResolve=t}),this.onProgress=this.props.onProgress||(()=>{}),this.onError=this.props.onError||(t=>console.error(t)),this.startSocket()}static isWeb(){const e=window.adapterName;return e==="material"||e==="vis"||(e==null?void 0:e.startsWith("vis-"))||e==="echarts-show"||window.socketUrl!==void 0}startSocket(){if(typeof window.io>"u"&&typeof window.iob>"u"){if(typeof window.registerSocketOnLoad!="function"){if(this.scriptLoadCounter||=0,this.scriptLoadCounter++,this.scriptLoadCounter<30){setTimeout(()=>this.startSocket(),100);return}window.alert("Cannot load socket.io.js!")}else window.registerSocketOnLoad(()=>this.startSocket());return}if(this._socket)return;let e=this.props.host,t=this.props.port,s=this.props.protocol.replace(":",""),o=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")o="";else{if(window.socketUrl){const a=new URL(window.socketUrl);e=a.hostname,t=a.port,s=a.protocol.replace(":","")}const M=o.lastIndexOf("/");if(M!==-1&&(o=o.substring(0,M+1)),J.isWeb()){const a=o.split("/");a.length>2&&(a.pop(),a[a.length-1].match(/\d+\.\d+\.\d+/)&&a.pop(),a.pop(),o=a.join("/"),o.endsWith("/")||(o+="/"))}}const r=t?`${s}://${e}:${t}${o}`:`${s}://${e}${o}`;this._socket=(window.io||window.iob).connect(r,{path:o.endsWith("/")?`${o}socket.io`:`${o}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid}),this._socket.on("connect",M=>{M!==!0?setTimeout(()=>this.getVersion().then(a=>{const[u,N,l]=a.version.split(".");parseInt(u,10)*1e4+parseInt(N,10)*100+parseInt(l,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(L,j)=>this.onPreConnect(L,j))}),500):this._socket.emit("authenticate",(a,u)=>this.onPreConnect(a,u))}),this._socket.on("reconnect",()=>{this.onProgress(Ze.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(M=>M(!0)))}),this._socket.on("disconnect",()=>{this.connected=!1,this.subscribed=!1,this.onProgress(Ze.CONNECTING),this.onConnectionHandlers.forEach(M=>M(!1))}),this._socket.on("reauthenticate",()=>J.authenticate()),this._socket.on("log",M=>{var a,u;(u=(a=this.props).onLog)==null||u.call(a,M),this.onLogHandlers.forEach(N=>N(M))}),this._socket.on("error",M=>{let a=M||"";typeof a.toString!="function"&&(a=JSON.stringify(a),console.error(`Received strange error: ${a}`)),a=a.toString(),a.includes("User not authorized")?J.authenticate():window.alert(`Socket Error: ${M}`)}),this._socket.on("connect_error",M=>console.error(`Connect error: ${M}`)),this._socket.on("permissionError",M=>this.onError({message:"no permission",operation:M.operation,type:M.type,id:M.id||""})),this._socket.on("objectChange",(M,a)=>setTimeout(()=>this.objectChange(M,a),0)),this._socket.on("stateChange",(M,a)=>setTimeout(()=>this.stateChange(M,a),0)),this._socket.on("im",(M,a,u)=>setTimeout(()=>this.instanceMessage(M,a,u),0)),this._socket.on("fileChange",(M,a,u)=>setTimeout(()=>this.fileChange(M,a,u),0)),this._socket.on("cmdStdout",(M,a)=>{var u;return(u=this.onCmdStdoutHandler)==null?void 0:u.call(this,M,a)}),this._socket.on("cmdStderr",(M,a)=>{var u;return(u=this.onCmdStderrHandler)==null?void 0:u.call(this,M,a)}),this._socket.on("cmdExit",(M,a)=>{var u;return(u=this.onCmdExitHandler)==null?void 0:u.call(this,M,a)})}onPreConnect(e,t){this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?(this.loadTimer=setTimeout(()=>{this.loadTimer=null,this.loadCounter++,this.loadCounter<10&&this.onConnect().catch(s=>this.onError(s))},1e3),this.loaded||this.onConnect().catch(s=>this.onError(s))):this.onProgress(Ze.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(s=>s(!0))),this._waitForFirstConnectionResolve&&(this._waitForFirstConnectionResolve(),this._waitForFirstConnectionResolve=null)}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnection}async _getUserPermissions(){return this.doNotLoadACL?null:new Promise((e,t)=>{this._socket.emit("getUserPermissions",(s,o)=>s?t(new Error(s)):e(o))})}async onConnect(){var s,o,r,M,a;let e;try{e=await this._getUserPermissions()}catch(u){const N=u;this.onError(`Cannot read user permissions: ${N.message}`);return}if(!this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(Ze.CONNECTED),this.firstConnect=!1,this.acl=e}let t;try{if(t=await this.getSystemConfig(),this.doNotLoadACL){if(this.loaded)return;this.loaded=!0,this.loadTimer&&(clearTimeout(this.loadTimer),this.loadTimer=null),this.onProgress(Ze.CONNECTED),this.firstConnect=!1}this.systemConfig=t,(s=this.systemConfig)!=null&&s.common?this.systemLang=this.systemConfig.common.language:(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substr(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en")),(r=(o=this.props).onLanguage)==null||r.call(o,this.systemLang),this.doNotLoadAllObjects?(this.objects={"system.config":t},this.onProgress(Ze.READY),(a=(M=this.props).onReady)==null||a.call(M,this.objects)):(await this.getObjects(),this.onProgress(Ze.READY),this.props.onReady&&this.objects&&this.props.onReady(this.objects))}catch(u){this.onError(`Cannot read system config: ${u}`)}}static authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`}async subscribeState(e,t,s){typeof t=="function"&&(s=t,t=!1);let o;if(Array.isArray(e)?o=e:o=[e],!s)return console.error("No callback found for subscribeState"),Promise.reject(new Error("No callback found for subscribeState"));const r=[];for(let M=0;M{this._socket.emit(J.isWeb()?"getStates":"getForeignStates",o,(u,N)=>{u?(console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(u)}`),a(new Error(u))):(N&&Object.keys(N).forEach(l=>s(l,N[l])),M())})})}subscribeStateAsync(e,t){let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let r=0;r{typeof t=="function"&&this.connected?this._socket.emit(J.isWeb()?"getStates":"getForeignStates",e,(a,u)=>{a&&console.error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`),u&&Object.keys(u).forEach(N=>t(N,u[N])),u?r():M(new Error(`Cannot getForeignStates "${e}": ${JSON.stringify(a)}`))}):this.connected?M(new Error("callback is not a function")):M(new Error("not connected"))})}unsubscribeState(e,t){let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let r=0;r{(r===e||this.objectsSubscribes[r].reg.test(e))&&this.objectsSubscribes[r].cbs.forEach(M=>{try{M(e,t,s)}catch(a){console.error(`Error by callback of objectChange: ${a}`)}})}),o&&this.props.onObjectChange&&this.props.onObjectChange(e,t)}stateChange(e,t){for(const s in this.statesSubscribes)Object.prototype.hasOwnProperty.call(this.statesSubscribes,s)&&this.statesSubscribes[s].reg.test(e)&&this.statesSubscribes[s].cbs.forEach(o=>{try{o(e,t)}catch(r){const M=r;console.error(`Error by callback of stateChange: ${M==null?void 0:M.message}`)}})}instanceMessage(e,t,s){this._instanceSubscriptions[t]&&this._instanceSubscriptions[t].forEach(o=>{o.messageType===e&&o.callback(s,t,e)})}getStates(e,t){return this.connected?(typeof e=="boolean"&&(t=e,e=void 0),new Promise((s,o)=>{this._socket.emit("getStates",e,(r,M)=>{this.states=M,!t&&this.onProgress(Ze.STATES_LOADED),r?o(new Error(r)):s(this.states)})})):Promise.reject(new Error($))}getState(e){return this.connected?e&&e===this.ignoreState?Promise.resolve(this.simStates[e]||{val:null,ack:!0}):new Promise((t,s)=>{this._socket.emit("getState",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getBinaryState(e){return this.connected?new Promise((t,s)=>{this._socket.emit("getBinaryState",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}setBinaryState(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("setBinaryState",e,t,r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}setState(e,t,s){if(!this.connected)return Promise.reject(new Error($));if(e&&e===this.ignoreState){let o;if(typeof s=="boolean"||typeof t=="object"&&t.val!==void 0?o=t:o={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=o,this.statesSubscribes[e])for(const r of this.statesSubscribes[e].cbs)try{r(e,o)}catch(M){console.error(`Error by callback of stateChanged: ${M}`)}return Promise.resolve()}return new Promise((o,r)=>{this._socket.emit("setState",e,t,M=>M?r(new Error(M)):o())})}getObjects(e,t){return this.connected?new Promise((s,o)=>{!e&&this.objects?s(this.objects):this._socket.emit(J.isWeb()?"getObjects":"getAllObjects",(r,M)=>{this.objects=M,t&&this.onProgress(Ze.OBJECTS_LOADED),r?o(new Error(r)):s(this.objects)})}):Promise.reject(new Error($))}getObjectsById(e){return this.connected?new Promise((t,s)=>{this._socket.emit("getObjects",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}_subscribe(e){if(e&&!this.subscribed){this.subscribed=!0,this.autoSubscribes.forEach(s=>this._socket.emit("subscribeObjects",s)),Object.keys(this.objectsSubscribes).forEach(s=>this._socket.emit("subscribeObjects",s)),this.autoSubscribeLog&&this._socket.emit("requireLog",!0);const t=Object.keys(this.statesSubscribes);t.forEach(s=>this._socket.emit("subscribe",s)),t.length&&this._socket.emit(J.isWeb()?"getStates":"getForeignStates",t,(s,o)=>{s&&console.error(`Cannot getForeignStates: ${JSON.stringify(s)}`),o&&Object.keys(o).forEach(r=>this.stateChange(r,o[r]))})}else!e&&this.subscribed&&(this.subscribed=!1,this.autoSubscribes.forEach(t=>this._socket.emit("unsubscribeObjects",t)),Object.keys(this.objectsSubscribes).forEach(t=>this._socket.emit("unsubscribeObjects",t)),this.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(t=>this._socket.emit("unsubscribe",t)))}requireLog(e){return this.connected?new Promise((t,s)=>{this._socket.emit("requireLog",e,o=>o?s(new Error(o)):t())}):Promise.reject(new Error($))}delObject(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("delObject",e,{maintenance:!!t},r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}delObjects(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("delObjects",e,{maintenance:!!t},r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}setObject(e,t){return this.connected?t?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((s,o)=>{this._socket.emit("setObject",e,t,r=>r?o(new Error(r)):s())})):Promise.reject(new Error("Null object is not allowed")):Promise.reject(new Error($))}getObject(e){return this.connected?e&&e===this.ignoreState?Promise.resolve({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed",read:!0,write:!0,role:"state"},native:{}}):new Promise((t,s)=>{this._socket.emit("getObject",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`instances_${e}`]instanceof Promise?this._promises[`instances_${e}`]:this.connected?(this._promises[`instances_${e}`]=new Promise((s,o)=>{this._socket.emit("getAdapterInstances",e,(r,M)=>r?o(new Error(r)):s(M))}),this._promises[`instances_${e}`]):Promise.reject(new Error($))}getAdapters(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(typeof e=="boolean"&&(t=e,e=""),e||="",!t&&this._promises[`adapter_${e}`]instanceof Promise?this._promises[`adapter_${e}`]:this.connected?(this._promises[`adapter_${e}`]=new Promise((s,o)=>{this._socket.emit("getAdapters",e,(r,M)=>{r?o(new Error(r)):s(M)})}),this._promises[`adapter_${e}`]):Promise.reject(new Error($)))}_renameGroups(e,t){if(!(e!=null&&e.length))t==null||t(null);else{const s=e.pop();if(!s){setTimeout(()=>this._renameGroups(e,t),0);return}const o=s._id;s._id=s.newId,delete s.newId,this.setObject(s._id,s).then(()=>this.delObject(o)).then(()=>setTimeout(()=>this._renameGroups(e,t),0)).catch(r=>t==null?void 0:t(r))}}async renameGroup(e,t,s){if(J.isWeb())return Promise.reject(new Error("Allowed only in admin"));const o=await this.getGroups(!0);if(o.length){const r=o.filter(a=>a._id.startsWith(`${e}.`));r.forEach(a=>{a.newId=t+a._id.substring(e.length)}),await new Promise((a,u)=>{this._renameGroups(r,N=>N?u(new Error(N)):a(null))});const M=o.find(a=>a._id===e);if(M)return M._id=t,s!==void 0&&(M.common||={},M.common.name=s),this.setObject(M._id,M).then(()=>this.delObject(e))}return Promise.resolve()}sendTo(e,t,s){return this.connected?new Promise(o=>{this._socket.emit("sendTo",e,t,s,r=>o(r))}):Promise.reject(new Error($))}extendObject(e,t){return this.connected?(t=JSON.parse(JSON.stringify(t)),Object.prototype.hasOwnProperty.call(t,"from")&&delete t.from,Object.prototype.hasOwnProperty.call(t,"user")&&delete t.user,Object.prototype.hasOwnProperty.call(t,"ts")&&delete t.ts,new Promise((s,o)=>{this._socket.emit("extendObject",e,t,r=>r?o(new Error(r)):s())})):Promise.reject(new Error($))}registerLogHandler(e){!this.onLogHandlers.includes(e)&&this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){!this.onConnectionHandlers.includes(e)&&this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return!t&&this._promises[`enums_${e||"all"}`]instanceof Promise?this._promises[`enums_${e||"all"}`]:this.connected?(this._promises[`enums_${e||"all"}`]=new Promise((s,o)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:`enum.${e?`${e}.`:""}香`},(r,M)=>{if(!r&&M){const a={};for(let u=0;u{this._socket.emit("getObjectView",e,t,{startkey:s,endkey:o},(a,u)=>{if(a)M(new Error(a));else{const N={};if(u&&u.rows)for(let l=0;l{const s=[];return t&&t.native&&t.native.certificates&&Object.keys(t.native.certificates).forEach(o=>{const r=t.native.certificates[o];if(!r)return;const M={name:o,type:""};r.length<700&&(r.includes("/")||r.includes("\\"))?(o.toLowerCase().includes("private")||r.toLowerCase().includes("private")?M.type="private":(o.toLowerCase().includes("public")||r.toLowerCase().includes("public"))&&(M.type="public"),s.push(M)):(M.type=r.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||r.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",M.type==="public"&&r.split("-----END CERTIFICATE-----").filter(u=>u.replace(/\r\n|\r|\n/,"").trim()).length>1&&(M.type="chained"),s.push(M))}),s}),this._promises.cert):Promise.reject(new Error($))}getLogs(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(s=>{this._socket.emit("sendToHost",e,"getLogs",t||200,o=>s(o))}):Promise.reject(new Error($))}getLogsFiles(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,s)=>{this._socket.emit("readLogs",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}delLogs(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,s)=>{this._socket.emit("sendToHost",e,"delLogs",null,o=>o?s(new Error(o)):t())}):Promise.reject(new Error($))}readMetaItems(){return this.connected?new Promise((e,t)=>{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(s,o)=>s?t(new Error(s)):e(o.rows&&o.rows.map(r=>r.value)))}):Promise.reject(new Error($))}readDir(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("readDir",e,t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}readFile(e,t,s){return this.connected?new Promise((o,r)=>{s?this._socket.emit("readFile64",e,t,s,(M,a)=>M?r(new Error(M)):o(a)):this._socket.emit("readFile",e,t,(M,a,u)=>{M?r(new Error(M)):o({data:a,type:u})})}):Promise.reject(new Error($))}writeFile64(e,t,s){return this.connected?new Promise((o,r)=>{if(typeof s=="string")this._socket.emit("writeFile",e,t,s,M=>M?r(new Error(M)):o());else{const M=btoa(new Uint8Array(s).reduce((a,u)=>a+String.fromCharCode(u),""));this._socket.emit("writeFile64",e,t,M,a=>a?r(new Error(a)):o())}}):Promise.reject(new Error($))}deleteFile(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("unlink",e,t,r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}deleteFolder(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("deleteFolder",e,t,r=>r?o(new Error(r)):s())}):Promise.reject(new Error($))}getHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hosts instanceof Promise?this._promises.hosts:this.connected?(this._promises.hosts=new Promise((t,s)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(o,r)=>{o?s(new Error(o)):t(r.rows.map(M=>M.value))})}),this._promises.hosts):Promise.reject(new Error($))}getUsers(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.users instanceof Promise?this._promises.users:this.connected?(this._promises.users=new Promise((t,s)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(o,r)=>{o?s(new Error(o)):t(r.rows.map(M=>M.value))})}),this._promises.users):Promise.reject(new Error($))}getGroups(e){return!e&&this._promises.groups instanceof Promise?this._promises.groups:this.connected?(this._promises.groups=new Promise((t,s)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(o,r)=>{o?s(new Error(o)):t(r.rows.map(M=>M.value))})}),this._promises.groups):Promise.reject(new Error($))}getHostInfo(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfo_${e}`]instanceof Promise?this._promises[`hostInfo_${e}`]:this.connected?(this._promises[`hostInfo_${e}`]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getHostInfo timeout")))},s||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfo",null,a=>{M&&(clearTimeout(M),M=null,a===Xe?r(new Error('May not read "getHostInfo"')):!a||typeof a!="object"?r(new Error('Cannot read "getHostInfo"')):o(a))})}),this._promises[`hostInfo_${e}`]):Promise.reject(new Error($)))}getHostInfoShort(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e+=`system.host.${e}`),!t&&this._promises[`hostInfoShort_${e}`]instanceof Promise?this._promises[`hostInfoShort_${e}`]:this.connected?(this._promises[`hostInfoShort_${e}`]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("hostInfoShort timeout")))},s||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getHostInfoShort",null,a=>{M&&(clearTimeout(M),M=null,a===Xe?r(new Error('May not read "getHostInfoShort"')):!a||typeof a!="object"?r(new Error('Cannot read "getHostInfoShort"')):o(a))})}),this._promises[`hostInfoShort_${e}`]):Promise.reject(new Error($)))}getRepository(e,t,s,o){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!s&&this._promises.repo instanceof Promise?this._promises.repo:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repo=new Promise((r,M)=>{let a=setTimeout(()=>{a&&(a=null,M(new Error("getRepository timeout")))},o||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getRepository",t,u=>{a&&(clearTimeout(a),a=null,u===Xe?M(new Error('May not read "getRepository"')):!u||typeof u!="object"?M(new Error('Cannot read "getRepository"')):r(u))})}),this._promises.repo):Promise.reject(new Error($))}getInstalled(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installed=this._promises.installed||{},!t&&this._promises.installed[e]instanceof Promise?this._promises.installed[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installed[e]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getInstalled timeout")))},s||this.props.cmdTimeout);this._socket.emit("sendToHost",e,"getInstalled",null,a=>{M&&(clearTimeout(M),M=null,a===Xe?r(new Error('May not read "getInstalled"')):!a||typeof a!="object"?r(new Error('Cannot read "getInstalled"')):o(a))})}),this._promises.installed[e]):Promise.reject(new Error($)))}rename(e,t,s){return this.connected?new Promise((o,r)=>{this._socket.emit("rename",e,t,s,M=>M?r(new Error(M)):o())}):Promise.reject(new Error($))}renameFile(e,t,s){return this.connected?new Promise((o,r)=>{this._socket.emit("renameFile",e,t,s,M=>M?r(new Error(M)):o())}):Promise.reject(new Error($))}cmdExec(e,t,s,o){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?(e.startsWith(e)||(e+=`system.host.${e}`),new Promise((r,M)=>{let a=o?setTimeout(()=>{a&&(a=null,M(new Error("cmdExec timeout")))},o):null;this._socket.emit("cmdExec",e,s,t,null,u=>{(!o||a)&&(a&&clearTimeout(a),a=null,u?M(new Error(u)):r())})})):Promise.reject(new Error($))}checkFeatureSupported(e,t){return!t&&this._promises[`supportedFeatures_${e}`]instanceof Promise?this._promises[`supportedFeatures_${e}`]:this.connected?(this._promises[`supportedFeatures_${e}`]=new Promise((s,o)=>{this._socket.emit("checkFeatureSupported",e,(r,M)=>r?o(new Error(r)):s(M))}),this._promises[`supportedFeatures_${e}`]):Promise.reject(new Error($))}async readBaseSettings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):await this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS")?this.connected?new Promise((s,o)=>{let r=setTimeout(()=>{r&&(r=null,o(new Error("readBaseSettings timeout")))},this.props.cmdTimeout);e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),this._socket.emit("sendToHost",e,"readBaseSettings",null,M=>{r&&(clearTimeout(r),r=null,M===Xe?o(new Error('May not read "BaseSettings"')):!M||typeof M!="object"?o(new Error('Cannot read "BaseSettings"')):s(M))})}):Promise.reject(new Error($)):Promise.reject(new Error("Not supported"))}writeBaseSettings(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.checkFeatureSupported("CONTROLLER_READWRITE_BASE_SETTINGS").then(s=>s?this.connected?new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("writeBaseSettings timeout")))},this.props.cmdTimeout);this._socket.emit("sendToHost",e,"writeBaseSettings",t,a=>{M&&(clearTimeout(M),M=null,a===Xe?r(new Error('May not write "BaseSettings"')):a?o(a):r(new Error('Cannot write "BaseSettings"')))})}):Promise.reject(new Error($)):Promise.reject(new Error("Not supported")))}restartController(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,s)=>{this._socket.emit("sendToHost",e,"restartController",null,o=>{o?s(new Error(o)):t(!0)})})}getDiagData(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise(s=>{this._socket.emit("sendToHost",e,"getDiagData",t,o=>s(o))})}getForeignStates(e){return this.connected?J.isWeb()?new Promise((t,s)=>{this._socket.emit("getStates",e||"*",(o,r)=>o?s(new Error(o)):t(r))}):new Promise((t,s)=>{this._socket.emit("getForeignStates",e||"*",(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getForeignObjects(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((s,o)=>{this._socket.emit("getForeignObjects",e||"*",t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}getSystemConfig(e){return!e&&this._promises.systemConfig instanceof Promise?this._promises.systemConfig:this.connected?(this._promises.systemConfig=this.getObject("system.config").then(t=>{const s=t||{};return s.common||={},s.native||={},s}),this._promises.systemConfig):Promise.reject(new Error($))}setSystemConfig(e){return this.setObject("system.config",e).then(()=>this._promises.systemConfig=Promise.resolve(e))}getRawSocket(){return this._socket}getHistory(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("getHistory",e,t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}getHistoryEx(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("getHistory",e,t,(r,M,a,u)=>r?o(new Error(r)):s({values:M,sessionId:u,step:a}))}):Promise.reject(new Error($))}changePassword(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((s,o)=>{this._socket.emit("changePassword",e,t,r=>r?o(new Error(r)):s())})}getIpAddresses(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")||(e=`system.host.${e}`),!t&&this._promises[`IPs_${e}`]instanceof Promise?this._promises[`IPs_${e}`]:(this._promises[`IPs_${e}`]=this.getObject(e).then(s=>s!=null&&s.common?s.common.address||[]:[]),this._promises[`IPs_${e}`]))}getHostByIp(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(e.startsWith("system.host.")&&(e=e.replace(/^system\.host\./,"")),!t&&this._promises[`rIPs_${e}`]instanceof Promise?this._promises[`rIPs_${e}`]:(this._promises[`rIPs_${e}`]=new Promise(s=>{this._socket.emit("getHostByIp",e,(o,r)=>{var u,N;const M=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],a=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((N=(u=r==null?void 0:r.native)==null?void 0:u.hardware)!=null&&N.networkInterfaces){for(const l in r.native.hardware.networkInterfaces)if(Object.prototype.hasOwnProperty.call(r.native.hardware.networkInterfaces,l))for(let c=0;c{this._socket.emit("encrypt",e,(o,r)=>o?s(new Error(o)):t(r))})}decrypt(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):new Promise((t,s)=>{this._socket.emit("decrypt",e,(o,r)=>o?s(new Error(o)):t(r))})}getVersion(e){return!e&&this._promises.version instanceof Promise?this._promises.version:(this._promises.version=new Promise((t,s)=>{this._socket.emit("getVersion",(o,r,M)=>{o&&!r&&typeof o=="string"&&o.match(/\d+\.\d+\.\d+/)?t({version:o,serverName:"socketio"}):o?s(new Error(o)):t({version:r,serverName:M})})}),this._promises.version)}getWebServerName(){return this._promises.webName instanceof Promise?this._promises.webName:(this._promises.webName=new Promise((e,t)=>{this._socket.emit("getAdapterName",(s,o)=>s?t(new Error(s)):e(o))}),this._promises.webName)}getAdminVersion(){return console.log("Deprecated: use getVersion"),this.getVersion()}chmodFile(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((o,r)=>{this._socket.emit("chmodFile",e,t,s,(M,a,u)=>M?r(new Error(M)):o({entries:a,id:u}))}):Promise.reject(new Error($))}chownFile(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((o,r)=>{this._socket.emit("chownFile",e,t,s,(M,a,u)=>M?r(new Error(M)):o({entries:a,id:u}))}):Promise.reject(new Error($))}fileExists(e,t){return this.connected?new Promise((s,o)=>{this._socket.emit("fileExists",e,t,(r,M)=>r?o(new Error(r)):s(M))}):Promise.reject(new Error($))}getNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(s=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},o=>s(o))}):Promise.reject(new Error($))}clearNotifications(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise(s=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},o=>s(o))}):Promise.reject(new Error($))}getIsEasyModeStrict(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getIsEasyModeStrict",(s,o)=>s?t(new Error(s)):e(o))}):Promise.reject(new Error($))}getEasyMode(){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((e,t)=>{this._socket.emit("getEasyMode",(s,o)=>s?t(new Error(s)):e(o))}):Promise.reject(new Error($))}getCurrentUser(){return this.connected?new Promise(e=>{this._socket.emit("authEnabled",(t,s)=>e(s))}):Promise.reject(new Error($))}getCurrentSession(e){return this.connected?new Promise((t,s)=>{const o=new AbortController;let r=setTimeout(()=>{r&&(r=null,o.abort(),s(new Error("getCurrentSession timeout")))},e||5e3);fetch("./session",{signal:o.signal}).then(M=>M.json()).then(M=>{r&&(clearTimeout(r),r=null,t(M))}).catch(M=>s(new Error(`getCurrentSession: ${M}`)))}):Promise.reject(new Error($))}getRatings(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):this.connected?new Promise((t,s)=>{this._socket.emit("getRatings",e,(o,r)=>o?s(new Error(o)):t(r))}):Promise.reject(new Error($))}getCurrentInstance(){return this.connected?this._promises.currentInstance instanceof Promise?this._promises.currentInstance:(this._promises.currentInstance=new Promise((e,t)=>{this._socket.emit("getCurrentInstance",(s,o)=>s?t(new Error(s)):e(o))}),this._promises.currentInstance):Promise.reject(new Error($))}getCompactAdapters(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactAdapters instanceof Promise?this._promises.compactAdapters:this.connected?(this._promises.compactAdapters=new Promise((t,s)=>{this._socket.emit("getCompactAdapters",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.compactAdapters):Promise.reject(new Error($))}getAdaptersResetCache(e){e||="",delete this._promises.compactAdapters,delete this._promises[`adapter_${e}`]}getCompactInstances(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.compactInstances instanceof Promise?this._promises.compactInstances:this.connected?(this._promises.compactInstances=new Promise((t,s)=>{this._socket.emit("getCompactInstances",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.compactInstances):Promise.reject(new Error($))}getAdapternInstancesResetCache(e){e||="",delete this._promises.compactInstances,delete this._promises[`instances_${e}`]}getCompactInstalled(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):(this._promises.installedCompact||={},!t&&this._promises.installedCompact[e]instanceof Promise?this._promises.installedCompact[e]:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.installedCompact[e]=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getCompactInstalled timeout")))},s||this.props.cmdTimeout);this._socket.emit("getCompactInstalled",e,a=>{M&&(clearTimeout(M),M=null,a===Xe?r(new Error('May not read "getCompactInstalled"')):!a||typeof a!="object"?r(new Error('Cannot read "getCompactInstalled"')):o(a))})}),this._promises.installedCompact[e]):Promise.reject(new Error($)))}getCompactSystemRepositories(e,t){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.getCompactSystemRepositories instanceof Promise?this._promises.getCompactSystemRepositories:this.connected?(this._promises.getCompactSystemRepositories=new Promise((s,o)=>{let r=setTimeout(()=>{r&&(r=null,o(new Error("getCompactSystemRepositories timeout")))},t||this.props.cmdTimeout);this._socket.emit("getCompactSystemRepositories",M=>{r&&(clearTimeout(r),r=null,M===Xe?o(new Error('May not read "getCompactSystemRepositories"')):!M||typeof M!="object"?o(new Error('Cannot read "getCompactSystemRepositories"')):s(M))})}),this._promises.getCompactSystemRepositories):Promise.reject(new Error($))}getCompactSystemConfig(e){return!e&&this._promises.systemConfigPromise instanceof Promise?this._promises.systemConfigPromise:this.connected?(this._promises.systemConfigPromise=new Promise((t,s)=>{this._socket.emit("getCompactSystemConfig",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.systemConfigPromise):Promise.reject(new Error($))}getCompactRepository(e,t,s){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!t&&this._promises.repoCompact instanceof Promise?this._promises.repoCompact:this.connected?(e.startsWith("system.host.")||(e+=`system.host.${e}`),this._promises.repoCompact=new Promise((o,r)=>{let M=setTimeout(()=>{M&&(M=null,r(new Error("getCompactRepository timeout")))},s||this.props.cmdTimeout);this._socket.emit("getCompactRepository",e,a=>{M&&(clearTimeout(M),M=null,a===Xe?r(new Error('May not read "getCompactRepository"')):a?o(a):r(new Error('Cannot read "getCompactRepository"')))})}),this._promises.repoCompact):Promise.reject(new Error($))}getInstalledResetCache(){delete this._promises.repoCompact,delete this._promises.repo}getCompactHosts(e){return J.isWeb()?Promise.reject(new Error("Allowed only in admin")):!e&&this._promises.hostsCompact instanceof Promise?this._promises.hostsCompact:this.connected?(this._promises.hostsCompact=new Promise((t,s)=>{this._socket.emit("getCompactHosts",(o,r)=>o?s(new Error(o)):t(r))}),this._promises.hostsCompact):Promise.reject(new Error($))}getUuid(){return this._promises.uuid instanceof Promise?this._promises.uuid:this.connected?(this._promises.uuid=this.getObject("system.meta.uuid").then(e=>{var t;return(t=e==null?void 0:e.native)==null?void 0:t.uuid}),this._promises.uuid):Promise.reject(new Error($))}subscribeOnInstance(e,t,s,o){return this.connected?new Promise((r,M)=>{this._socket.emit("clientSubscribe",e,t,s,(a,u)=>{a?M(new Error(a)):u!=null&&u.error?M(new Error(u.error)):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]||=[],this._instanceSubscriptions[e].find(N=>N.messageType===t&&N.callback===o)||this._instanceSubscriptions[e].push({messageType:t,callback:o}),r(u))})}):Promise.reject(new Error($))}unsubscribeFromInstance(e,t,s){var M;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let o;const r=[];do{o=!1;const a=(M=this._instanceSubscriptions[e])==null?void 0:M.findIndex(u=>(!t||u.messageType===t)&&(!s||u.callback===s));if(a!=null&&a!==-1){o=!0;const u=this._instanceSubscriptions[e][a].messageType;this._instanceSubscriptions[e].splice(a,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(l=>l.messageType===u)||r.push(new Promise((l,c)=>{this._socket.emit("clientUnsubscribe",e,t,(L,j)=>{L?c(new Error(L)):l(j)})}))}}while(o&&(!s||!t));return r.length?Promise.all(r).then(a=>a.find(u=>u)||!1):Promise.resolve(!1)}log(e,t){e&&this._socket.emit("log",e,t||"debug")}logout(){return this.connected?new Promise((e,t)=>{this._socket.emit("logout",s=>s?t(new Error(s)):e())}):Promise.reject(new Error($))}setStateToIgnore(e){this.ignoreState=e||""}}function E4e(i){var e;return i.type==="object"?`iobobject://${i.address}/${i.path||""}`:i.type==="state"?`iobstate://${i.address}`:i.type==="file"?`iobfile://${i.address}/${i.path||""}`:i.type==="http"?i.address:(e=i.path)!=null&&e.includes("/")?`iobfile://${i.address}/${i.path}`:i.path?`iobobject://${i.address}/${i.path}`:`iobstate://${i.address}`}function Ble(i){const e={type:"object",address:""};if(i.startsWith("iobobject://")){e.type="object",i=i.replace("iobobject://","");const t=i.split("/");e.address=t[0],e.path=t[1]}else if(i.startsWith("iobstate://")){e.type="state",i=i.replace("iobstate://","");const t=i.split("/");e.address=t[0],e.path=t[1]}else if(i.startsWith("iobfile://")){e.type="file",i=i.replace("iobfile://","");const t=i.split("/");e.address=t.shift(),e.path=t.join("/")}else if(i.startsWith("http://")||i.startsWith("https://"))e.type="http",e.address=i;else if(i.startsWith("data:"))e.type="base64",e.address=i;else{const t=i.split("/");if(t.length===2)if(e.address=t[0],e.path=t[1],e.path.includes("."))e.type="object";else if(e.path)if(e.path==="val"||e.path==="q"||e.path==="ack"||e.path==="ts"||e.path==="lc"||e.path==="from"||e.path==="user"||e.path==="expire"||e.path==="c")e.type="state";else if(e.path==="common"||e.path==="native"||e.path==="from"||e.path==="acl"||e.path==="type")e.type="object";else throw new Error(`Unknown path: ${e.path}`);else e.type="state";else t.length===1?(e.address=t[0],e.type="state"):(e.address=t.shift(),e.type="file",e.path=t.join("/"))}return e}function sc(i,e,t){if(t=t||0,i==null||!e)return i;if(e.length-1===t)return i[e[t]];if(typeof i=="object")return sc(i[e[t]],e,t+1)}function Fle(i,e,t,s){if(s=s||0,i==null||!e)return t;if(e.length-1===s)return i[e[s]]=t,i;if(typeof i=="object")return Fle(i[e[s]],e,t,s+1)}async function _4e(i,e){var t;if(typeof i=="string"&&(i=Ble(i)),i.type==="object"){const s=await e.getObject(i.address);return sc(s,(t=i.path)==null?void 0:t.split("."))}if(i.type==="state"){const s=await e.getState(i.address);return i.path?s==null?void 0:s[i.path]:s}if(i.type==="file")return await e.readFile(i.address,i.path,!0);if(i.type==="http")return fetch(i.address).then(s=>s.text()).then(s=>{if(s.startsWith("{")&&s.endsWith("}")||s.startsWith("[")&&s.endsWith("]"))try{return JSON.parse(s)}catch{}return s});throw new Error(`Unknown type: ${i.type}`)}const Gi=i=>{const e={};return i.forEach(t=>{e[t]={requiredVersion:"*",singleton:!0}}),e};function S4e(i){const e=["@emotion/react","@emotion/styled","@iobroker/adapter-react-v5","@iobroker/json-config","@iobroker/dm-gui-components","@mui/icons-material","@mui/material","@mui/x-date-pickers","date-fns","date-fns/locale","leaflet","leaflet-geosearch","react","react-ace","react-dom","react-dropzone","semver"];return Array.isArray(i)?Gi(e.filter(t=>i.includes(t))):i&&(i.dependencies||i.devDependencies)?Gi(e.filter(t=>{var s,o;return((s=i.dependencies)==null?void 0:s[t])||((o=i.devDependencies)==null?void 0:o[t])})):Gi(e)}export{o4e as AdminConnection,Ls as ColorPicker,Lt as ComplexCron,h4e as ComplexCronDialog,Kn as Confirm,je as Connection,A4e as Cron,r4e as CustomModal,Gue as DeviceTypeIcon,c4e as DeviceTypeSelector,h4e as DialogComplexCron,Kn as DialogConfirm,A4e as DialogCron,qn as DialogError,p4e as DialogMessage,m4e as DialogSelectFile,WNe as DialogSelectID,O4e as DialogSimpleCron,Nne as DialogTextInput,ye as ERRORS,ge as EXTENSIONS,qn as Error,Qne as FileBrowser,Go as FileBrowserClass,Yne as FileViewer,kne as FileViewerClass,At as GenericApp,d as I18n,$M as ITEM_IMAGES,Ie as Icon,cNe as IconAdapter,xne as IconAlias,z4e as IconButtonImage,Ia as IconChannel,LNe as IconClearFilter,Gt as IconClosed,$t as IconCopy,wa as IconDevice,uNe as IconDocument,NNe as IconDocumentReadOnly,uo as IconExpert,I4e as IconFx,lNe as IconInstance,w4e as IconLogout,Fo as IconNoIcon,Ks as IconOpen,a4e as IconPicker,jce as IconSelector,gs as IconState,C4e as IconVacuum,qs as Image,N4e as InfoBox,J as LegacyConnection,v4 as Loader,d4e as LoaderMV,D4e as LoaderPT,y4e as LoaderVendor,da as Logo,za as MDUtils,p4e as Message,ANe as ObjectBrowser,We as ObjectBrowserClass,i4e as PERMISSION_ERROR,Re as PROGRESS,Ts as Router,u4e as STATES_NAME_ICONS,J4 as SaveCloseButtons,le as Schedule,m4e as SelectFile,WNe as SelectID,l4e as SelectWithIcon,As as SimpleCron,O4e as SimpleCronDialog,jNe as TabContainer,gNe as TabContent,TNe as TabHeader,L4e as TableResize,Nne as TextInput,j4e as TextWithIcon,cc as Theme,g4e as ToggleThemeMenu,Co as TreeTable,T4e as UploadImage,S as Utils,ta as convertCronToText,Xn as copy,tc as cron2state,HMe as dictionary,Da as extendDeviceTypeTranslation,sc as getAttrInObject,n4e as getSelectIdIcon,ci as getSelectIdIconFromObjects,M4e as getSystemIcon,Ble as iobUriParse,_4e as iobUriRead,E4e as iobUriToString,S4e as moduleFederationShared,Nn as pattern2RegEx,Q4 as printPrompt,Fle as setAttrInObject,di as withWidth}; diff --git a/admin/custom/customComponents.js b/admin/custom/customComponents.js index bc94e2093..56aca7998 100644 --- a/admin/custom/customComponents.js +++ b/admin/custom/customComponents.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-Co3YA5NW.js","./assets/_commonjsHelpers-D6-XlEtG.js","./assets/index-Dbe-II7_.js","./assets/ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js","./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js","./assets/jsx-runtime-o-xyxrOj.js","./assets/createSvgIcon-BQThUM-f.js","./assets/DefaultPropsProvider-9qubdy-V.js","./assets/defaultTheme-avbtL0lf.js","./assets/createTheme-BwMO3rTt.js","./assets/DefaultPropsProvider-DbEA5uR6.js","./assets/Tabs-CvEv0KOT.js","./assets/useTheme-MELayQMj.js","./assets/useThemeWithoutDefault-C-hl_s0Z.js","./assets/FilledInput-BpuM_GyB.js","./assets/useEnhancedEffect-CdLBzwyA.js","./assets/index-B7G6Jpdl.js","./assets/useTheme-CDtRWagv.js","./assets/ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js","./assets/index-DZqbj5K4.js","./assets/ThemeProvider-DZTpMR8n.js","./assets/index-BAaNTm9A.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js","./assets/index-B8sZ2j0S.js","./assets/index-3awjKpeb.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DAwHgdl6.js","./assets/preload-helper-Dp1pzeXC.js","./assets/index-CWXHfC2L.js","./assets/leaflet-src-A2ZHl6nF.js","./assets/index-DIWNdd4a.js"])))=>i.map(i=>d[i]); -import{i as d,C as p}from"./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import s from"./assets/virtualExposes-BMKIjWrE.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const n={react:async()=>await a(()=>import("./assets/index-Co3YA5NW.js").then(t=>t.i),__vite__mapDeps([0,1]),import.meta.url),"@mui/x-date-pickers":async()=>await a(()=>import("./assets/index-Dbe-II7_.js"),__vite__mapDeps([2,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-DZqbj5K4.js"),__vite__mapDeps([19,9,3,1,4,7,8,10,5,11,12,13,14,15,16,17,6,18,20]),import.meta.url),"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-BAaNTm9A.js"),__vite__mapDeps([21,9,3,1,4,22,23,12,13,17,8]),import.meta.url),"@iobroker/json-config":async()=>await a(()=>import("./assets/index-3awjKpeb.js"),__vite__mapDeps([24,3,1,4,22,23,12,9,13,25,18,14,7,8,10,5,15,26]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-CWXHfC2L.js").then(t=>t.i),__vite__mapDeps([27,1,3,4]),import.meta.url),leaflet:async()=>await a(()=>import("./assets/leaflet-src-A2ZHl6nF.js").then(t=>t.l),__vite__mapDeps([28,1]),import.meta.url),"@mui/icons-material":async()=>await a(()=>import("./assets/index-DIWNdd4a.js"),__vite__mapDeps([29,5,3,1,4,6,7,8,9,10]),import.meta.url)},o={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.react.loaded=!0;const{react:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/x-date-pickers":{name:"@mui/x-date-pickers",version:"7.29.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/x-date-pickers"].loaded=!0;const{"@mui/x-date-pickers":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.18",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/json-config":{name:"@iobroker/json-config",version:"7.6.18",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/json-config"].loaded=!0;const{"@iobroker/json-config":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},leaflet:{name:"leaflet",version:"1.9.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.leaflet.loaded=!0;const{leaflet:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/icons-material":{name:"@mui/icons-material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/icons-material"].loaded=!0;const{"@mui/icons-material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},f=[],u={},c="default",l="ConfigCustomJavascriptSet";async function k(e={},t=[]){const r=d.init({name:l,remotes:f,shared:o,plugins:[],shareStrategy:"version-first"});var i=u[c];if(i||(i=u[c]={from:l}),!(t.indexOf(i)>=0)){t.push(i),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(m){console.error(m)}return p.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-Co3YA5NW.js","./assets/_commonjsHelpers-D6-XlEtG.js","./assets/index-Dbe-II7_.js","./assets/ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js","./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js","./assets/jsx-runtime-o-xyxrOj.js","./assets/createSvgIcon-BQThUM-f.js","./assets/DefaultPropsProvider-9qubdy-V.js","./assets/defaultTheme-avbtL0lf.js","./assets/createTheme-BwMO3rTt.js","./assets/DefaultPropsProvider-DbEA5uR6.js","./assets/Tabs-CvEv0KOT.js","./assets/useTheme-MELayQMj.js","./assets/useThemeWithoutDefault-C-hl_s0Z.js","./assets/FilledInput-BpuM_GyB.js","./assets/useEnhancedEffect-CdLBzwyA.js","./assets/index-B7G6Jpdl.js","./assets/useTheme-CDtRWagv.js","./assets/ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js","./assets/index-DZqbj5K4.js","./assets/ThemeProvider-DZTpMR8n.js","./assets/index-CEFrj8jA.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js","./assets/index-B8sZ2j0S.js","./assets/index-BADTG0C3.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DAwHgdl6.js","./assets/preload-helper-Dp1pzeXC.js","./assets/index-CWXHfC2L.js","./assets/leaflet-src-A2ZHl6nF.js","./assets/index-DIWNdd4a.js"])))=>i.map(i=>d[i]); +import{i as d,C as p}from"./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import s from"./assets/virtualExposes-BMKIjWrE.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const n={react:async()=>await a(()=>import("./assets/index-Co3YA5NW.js").then(t=>t.i),__vite__mapDeps([0,1]),import.meta.url),"@mui/x-date-pickers":async()=>await a(()=>import("./assets/index-Dbe-II7_.js"),__vite__mapDeps([2,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-DZqbj5K4.js"),__vite__mapDeps([19,9,3,1,4,7,8,10,5,11,12,13,14,15,16,17,6,18,20]),import.meta.url),"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-CEFrj8jA.js"),__vite__mapDeps([21,9,3,1,4,22,23,12,13,17,8]),import.meta.url),"@iobroker/json-config":async()=>await a(()=>import("./assets/index-BADTG0C3.js"),__vite__mapDeps([24,3,1,4,22,23,12,9,13,25,18,14,7,8,10,5,15,26]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-CWXHfC2L.js").then(t=>t.i),__vite__mapDeps([27,1,3,4]),import.meta.url),leaflet:async()=>await a(()=>import("./assets/leaflet-src-A2ZHl6nF.js").then(t=>t.l),__vite__mapDeps([28,1]),import.meta.url),"@mui/icons-material":async()=>await a(()=>import("./assets/index-DIWNdd4a.js"),__vite__mapDeps([29,5,3,1,4,6,7,8,9,10]),import.meta.url)},o={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.react.loaded=!0;const{react:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/x-date-pickers":{name:"@mui/x-date-pickers",version:"7.29.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/x-date-pickers"].loaded=!0;const{"@mui/x-date-pickers":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.20",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/json-config":{name:"@iobroker/json-config",version:"7.6.20",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/json-config"].loaded=!0;const{"@iobroker/json-config":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},leaflet:{name:"leaflet",version:"1.9.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.leaflet.loaded=!0;const{leaflet:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/icons-material":{name:"@mui/icons-material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/icons-material"].loaded=!0;const{"@mui/icons-material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},f=[],u={},c="default",l="ConfigCustomJavascriptSet";async function k(e={},t=[]){const r=d.init({name:l,remotes:f,shared:o,plugins:[],shareStrategy:"version-first"});var i=u[c];if(i||(i=u[c]={from:l}),!(t.indexOf(i)>=0)){t.push(i),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(m){console.error(m)}return p.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; diff --git a/admin/mf-manifest.json b/admin/mf-manifest.json index b4afe82fd..a7082277d 100644 --- a/admin/mf-manifest.json +++ b/admin/mf-manifest.json @@ -1 +1 @@ -{"id":"iobroker_javascript","name":"iobroker_javascript","metaData":{"name":"iobroker_javascript","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_javascript"},"remoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_javascript","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_javascript:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"7.6.18","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Bis-ZPl5.js","assets/createSvgIcon-DMsh-YeH.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/index-f32XoI0M.js","assets/Save-BSBgRX7g.js","assets/useTheme-N2j2HWMZ.js","assets/index-Dm1jc4t6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:@mui/material","name":"@mui/material","version":"6.4.12","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Cd_NUyEa.js","assets/createSvgIcon-DMsh-YeH.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/inheritsLoose-DgfqekV3.js","assets/useTheme-N2j2HWMZ.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-x0m5vR1T.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Do-nCdWy.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:prop-types","name":"prop-types","version":"15.8.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-DQiceR5U.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]} \ No newline at end of file +{"id":"iobroker_javascript","name":"iobroker_javascript","metaData":{"name":"iobroker_javascript","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_javascript"},"remoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_javascript","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_javascript:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"7.6.20","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-cbk_CvPb.js","assets/createSvgIcon-DMsh-YeH.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/index-f32XoI0M.js","assets/Save-BSBgRX7g.js","assets/useTheme-N2j2HWMZ.js","assets/index-Dm1jc4t6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:@mui/material","name":"@mui/material","version":"6.4.12","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Cd_NUyEa.js","assets/createSvgIcon-DMsh-YeH.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/inheritsLoose-DgfqekV3.js","assets/useTheme-N2j2HWMZ.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-x0m5vR1T.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Do-nCdWy.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:prop-types","name":"prop-types","version":"15.8.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-DQiceR5U.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]} \ No newline at end of file diff --git a/admin/remoteEntry.js b/admin/remoteEntry.js index 2761c9d03..4eed6e6b8 100644 --- a/admin/remoteEntry.js +++ b/admin/remoteEntry.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-Bis-ZPl5.js","./assets/createSvgIcon-DMsh-YeH.js","./assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","./assets/_commonjsHelpers-Cpj98o6Y.js","./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","./assets/index-f32XoI0M.js","./assets/Save-BSBgRX7g.js","./assets/useTheme-N2j2HWMZ.js","./assets/index-Dm1jc4t6.js","./assets/index-Cd_NUyEa.js","./assets/inheritsLoose-DgfqekV3.js","./assets/index-x0m5vR1T.js","./assets/index-Do-nCdWy.js","./assets/index-DQiceR5U.js"])))=>i.map(i=>d[i]); -import{i as d,a as m}from"./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import s from"./assets/virtualExposes-BIHI7g3E.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const i={"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-Bis-ZPl5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-Cd_NUyEa.js"),__vite__mapDeps([9,1,2,3,4,10,7]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-x0m5vR1T.js").then(t=>t.i),__vite__mapDeps([11,3,2,4]),import.meta.url),react:async()=>await a(()=>import("./assets/index-Do-nCdWy.js").then(t=>t.i),__vite__mapDeps([12,3]),import.meta.url),"prop-types":async()=>await a(()=>import("./assets/index-DQiceR5U.js").then(t=>t.i),__vite__mapDeps([13,3]),import.meta.url)},o={"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.18",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o.react.loaded=!0;const{react:e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"prop-types":{name:"prop-types",version:"15.8.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["prop-types"].loaded=!0;const{"prop-types":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},_=[],u={},p="default",c="iobroker_javascript";async function k(e={},t=[]){const r=d.init({name:c,remotes:_,shared:o,plugins:[],shareStrategy:"version-first"});var n=u[p];if(n||(n=u[p]={from:c}),!(t.indexOf(n)>=0)){t.push(n),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(l){console.error(l)}return m.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-cbk_CvPb.js","./assets/createSvgIcon-DMsh-YeH.js","./assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","./assets/_commonjsHelpers-Cpj98o6Y.js","./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","./assets/index-f32XoI0M.js","./assets/Save-BSBgRX7g.js","./assets/useTheme-N2j2HWMZ.js","./assets/index-Dm1jc4t6.js","./assets/index-Cd_NUyEa.js","./assets/inheritsLoose-DgfqekV3.js","./assets/index-x0m5vR1T.js","./assets/index-Do-nCdWy.js","./assets/index-DQiceR5U.js"])))=>i.map(i=>d[i]); +import{i as d,a as m}from"./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import s from"./assets/virtualExposes-BIHI7g3E.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const i={"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-cbk_CvPb.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-Cd_NUyEa.js"),__vite__mapDeps([9,1,2,3,4,10,7]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-x0m5vR1T.js").then(t=>t.i),__vite__mapDeps([11,3,2,4]),import.meta.url),react:async()=>await a(()=>import("./assets/index-Do-nCdWy.js").then(t=>t.i),__vite__mapDeps([12,3]),import.meta.url),"prop-types":async()=>await a(()=>import("./assets/index-DQiceR5U.js").then(t=>t.i),__vite__mapDeps([13,3]),import.meta.url)},o={"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.20",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o.react.loaded=!0;const{react:e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"prop-types":{name:"prop-types",version:"15.8.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["prop-types"].loaded=!0;const{"prop-types":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},_=[],u={},p="default",c="iobroker_javascript";async function k(e={},t=[]){const r=d.init({name:c,remotes:_,shared:o,plugins:[],shareStrategy:"version-first"});var n=u[p];if(n||(n=u[p]={from:c}),!(t.indexOf(n)>=0)){t.push(n),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(l){console.error(l)}return m.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; diff --git a/admin/tab.html b/admin/tab.html index 9db0aff73..c707f203e 100644 --- a/admin/tab.html +++ b/admin/tab.html @@ -115,7 +115,7 @@ type="text/javascript" src="google-blockly/own/blocks_object.js" > - + diff --git a/build-backend/lib/convert.js b/build-backend/lib/convert.js index 5da830d7a..d57ece2f2 100644 --- a/build-backend/lib/convert.js +++ b/build-backend/lib/convert.js @@ -12,25 +12,26 @@ function stringify(data) { result = JSON.stringify(obj, null, 2); } else if (data.data.type === 'script') { + const objScript = obj; id = `${id.replace(/\./g, '/').substring('script.js.'.length)}.json`; - if (obj.common?.source) { - const source = obj.common.source; - if (obj.common.enabled) { + if (objScript.common?.source) { + const source = objScript.common.source; + if (objScript.common.enabled) { // @ts-expect-error We do not use it - delete obj.common.enabled; + delete objScript.common.enabled; } - if (obj.common.engine === 'system.adapter.javascript.0') { + if (objScript.common.engine === 'system.adapter.javascript.0') { // @ts-expect-error We do not use it - delete obj.common.engine; + delete objScript.common.engine; } - if (obj.common.engineType === 'Javascript/js') { + if (objScript.common.engineType === 'Javascript/js') { // @ts-expect-error We do not use it - delete obj.common.engineType; + delete objScript.common.engineType; } // @ts-expect-error We do not use it - delete obj.common.name; + delete objScript.common.name; // @ts-expect-error We do not use it - delete obj.common.source; + delete objScript.common.source; if (JSON.stringify(obj.common) !== '{}') { result = `/* -- do not edit following lines - START --\n${JSON.stringify(obj.common, null, 2)}\n-- do not edit previous lines - END --*/\n${source}`; } diff --git a/build-backend/lib/convert.js.map b/build-backend/lib/convert.js.map index b6cd954a2..d8cd06c81 100644 --- a/build-backend/lib/convert.js.map +++ b/build-backend/lib/convert.js.map @@ -1 +1 @@ -{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/lib/convert.ts"],"names":[],"mappings":";;AACA,8BAyCC;AAED,sBA2EC;AAvHD,+CAA+C;AAC/C,SAAgB,SAAS,CAAC,IAA0E;IAIhG,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IACtB,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACjB,IAAI,MAA0B,CAAC;IAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1E,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;QACrE,IAAK,GAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAChD,MAAM,MAAM,GAAI,GAA6B,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5D,IAAK,GAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAChD,oCAAoC;gBACpC,OAAQ,GAA6B,CAAC,MAAM,CAAC,OAAO,CAAC;YACzD,CAAC;YACD,IAAK,GAA6B,CAAC,MAAM,CAAC,MAAM,KAAK,6BAA6B,EAAE,CAAC;gBACjF,oCAAoC;gBACpC,OAAQ,GAA6B,CAAC,MAAM,CAAC,MAAM,CAAC;YACxD,CAAC;YACD,IAAK,GAA6B,CAAC,MAAM,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;gBACvE,oCAAoC;gBACpC,OAAQ,GAA6B,CAAC,MAAM,CAAC,UAAU,CAAC;YAC5D,CAAC;YACD,oCAAoC;YACpC,OAAQ,GAA6B,CAAC,MAAM,CAAC,IAAI,CAAC;YAClD,oCAAoC;YACpC,OAAQ,GAA6B,CAAC,MAAM,CAAC,MAAM,CAAC;YACpD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,GAAG,iDAAiD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,+CAA+C,MAAM,EAAE,CAAC;YACzJ,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC;YACpB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,KAAK,CAAC,IAGrB;IACG,IAAI,GAAG,GAAW,IAAI,CAAC,IAAI,CAAC;IAC5B,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACjB,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAY,CAAC;IACjB,IAAI,MAAmC,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5B,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5E,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,KAAK,GAAG,wBAAwB,IAAI,MAAM,GAAY,EAAE,CAAC;YACzD,MAAM,GAAG;gBACL,MAAM,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI;iBACtC;gBACD,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,aAAa,IAAI,EAAE;gBACxB,MAAM,EAAE,EAAE;aACb,CAAC;QACN,CAAC;QACD,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAC7B,CAAC;SAAM,CAAC;QACJ,QAAQ;QACR,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvE,IAAI,MAAc,CAAC;QACnB,IAAI,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAClC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;oBACpC,MAAM;gBACV,CAAC;gBACD,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,EAAE,CAAC;YACX,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;YAC1B,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC;gBACD,MAAM,GAAG,EAAqB,CAAC;gBAC/B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YAClC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,KAAK,GAAG,wBAAwB,EAAE,MAAM,GAAY,EAAE,CAAC;YAC3D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAG,CAAC;QACjB,CAAC;QACD,MAAM,GAAG,EAAqB,CAAC;QAC/B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,aAAa,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3F,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,6BAA6B,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,eAAe,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QACtD,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAA+B,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC3E,CAAC","sourcesContent":["// controller uses this file when build uploads\nexport function stringify(data: { data: ioBroker.ScriptObject | ioBroker.ChannelObject; id: string }): {\n id: string;\n data: string | undefined;\n} {\n const obj = data.data;\n let id = data.id;\n let result: string | undefined;\n if (data.data.type === 'channel') {\n id = `${id.replace(/\\./g, '/').substring('script.js.'.length)}/_dir.json`;\n result = JSON.stringify(obj, null, 2);\n } else if (data.data.type === 'script') {\n id = `${id.replace(/\\./g, '/').substring('script.js.'.length)}.json`;\n if ((obj as ioBroker.ScriptObject).common?.source) {\n const source = (obj as ioBroker.ScriptObject).common.source;\n if ((obj as ioBroker.ScriptObject).common.enabled) {\n // @ts-expect-error We do not use it\n delete (obj as ioBroker.ScriptObject).common.enabled;\n }\n if ((obj as ioBroker.ScriptObject).common.engine === 'system.adapter.javascript.0') {\n // @ts-expect-error We do not use it\n delete (obj as ioBroker.ScriptObject).common.engine;\n }\n if ((obj as ioBroker.ScriptObject).common.engineType === 'Javascript/js') {\n // @ts-expect-error We do not use it\n delete (obj as ioBroker.ScriptObject).common.engineType;\n }\n // @ts-expect-error We do not use it\n delete (obj as ioBroker.ScriptObject).common.name;\n // @ts-expect-error We do not use it\n delete (obj as ioBroker.ScriptObject).common.source;\n if (JSON.stringify(obj.common) !== '{}') {\n result = `/* -- do not edit following lines - START --\\n${JSON.stringify(obj.common, null, 2)}\\n-- do not edit previous lines - END --*/\\n${source}`;\n } else {\n result = source;\n }\n } else {\n result = JSON.stringify(obj, null, 2);\n }\n }\n\n return { id, data: result };\n}\n\nexport function parse(data: {\n data: string;\n id: string;\n}): { id: string; data: ioBroker.ScriptObject; error: string | undefined } | null {\n let obj: string = data.data;\n let id = data.id;\n let error: string | undefined;\n let name: string;\n let result: ioBroker.Object | undefined;\n if (id[id.length - 1] === '/') {\n id = id.substring(0, id.length - 1);\n }\n\n if (!id.match(/\\.json$/)) {\n return null;\n }\n\n if (id.match(/_dir\\.json$/)) {\n name = id.substring(0, id.length - '/_dir.json'.length).replace(/\\//g, '.');\n\n try {\n result = JSON.parse(obj);\n } catch (err: unknown) {\n error = `Cannot parse object \"${name}\": ${err as Error}`;\n result = {\n common: {\n name: name.split('.').pop() || name,\n },\n type: 'channel',\n _id: `script.js.${name}`,\n native: {},\n };\n }\n id = `script.js.${name}`;\n } else {\n //script\n name = id.substring(0, id.length - '.json'.length).replace(/\\//g, '.');\n let source: string;\n if (obj.match(/^\\/\\*\\s--\\sdo\\snot/)) {\n obj = obj.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n const lines = obj.split('\\n');\n let stringObj = '';\n let line = 1;\n while (line < lines.length) {\n if (lines[line].match(/^--\\sdo\\snot/)) {\n break;\n }\n stringObj += lines[line];\n line++;\n }\n lines.splice(0, line + 1);\n source = lines.join('\\n');\n try {\n result = {} as ioBroker.Object;\n result.common = JSON.parse(stringObj);\n result.common.source = source;\n } catch (err: unknown) {\n error = `Cannot parse object \"${id}\": ${err as Error}`;\n }\n } else {\n source = obj;\n }\n result = {} as ioBroker.Object;\n result.common = result.common || {};\n result._id = `script.js.${name}`;\n result.type = 'script';\n result.common.name = name.split('.').pop() || name;\n result.common.enabled = result.common.enabled === undefined ? true : result.common.enabled;\n result.common.engine = result.common.engine || 'system.adapter.javascript.0';\n result.common.engineType = result.common.engineType || 'Javascript/js';\n result.common.source = result.common.source || source;\n id = `script.js.${name}`;\n }\n\n return { id: id, data: result as ioBroker.ScriptObject, error: error };\n}\n"]} \ No newline at end of file +{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/lib/convert.ts"],"names":[],"mappings":";;AACA,8BA0CC;AAED,sBA2EC;AAxHD,+CAA+C;AAC/C,SAAgB,SAAS,CAAC,IAA0E;IAIhG,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IACtB,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACjB,IAAI,MAA0B,CAAC;IAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1E,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,GAA4B,CAAC;QAC/C,EAAE,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;QACrE,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACvC,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC3B,oCAAoC;gBACpC,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACpC,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,6BAA6B,EAAE,CAAC;gBAC5D,oCAAoC;gBACpC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;gBAClD,oCAAoC;gBACpC,OAAO,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;YACvC,CAAC;YACD,oCAAoC;YACpC,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,oCAAoC;YACpC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,GAAG,iDAAiD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,+CAA+C,MAAM,EAAE,CAAC;YACzJ,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,MAAM,CAAC;YACpB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,KAAK,CAAC,IAGrB;IACG,IAAI,GAAG,GAAW,IAAI,CAAC,IAAI,CAAC;IAC5B,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACjB,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAY,CAAC;IACjB,IAAI,MAAmC,CAAC;IACxC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5B,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE5E,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,KAAK,GAAG,wBAAwB,IAAI,MAAM,GAAY,EAAE,CAAC;YACzD,MAAM,GAAG;gBACL,MAAM,EAAE;oBACJ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI;iBACtC;gBACD,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,aAAa,IAAI,EAAE;gBACxB,MAAM,EAAE,EAAE;aACb,CAAC;QACN,CAAC;QACD,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAC7B,CAAC;SAAM,CAAC;QACJ,QAAQ;QACR,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvE,IAAI,MAAc,CAAC;QACnB,IAAI,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAClC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;oBACpC,MAAM;gBACV,CAAC;gBACD,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,EAAE,CAAC;YACX,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;YAC1B,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC;gBACD,MAAM,GAAG,EAAqB,CAAC;gBAC/B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YAClC,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,KAAK,GAAG,wBAAwB,EAAE,MAAM,GAAY,EAAE,CAAC;YAC3D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAG,CAAC;QACjB,CAAC;QACD,MAAM,GAAG,EAAqB,CAAC;QAC/B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,aAAa,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3F,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,6BAA6B,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,eAAe,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QACtD,EAAE,GAAG,aAAa,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAA+B,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC3E,CAAC","sourcesContent":["// controller uses this file when build uploads\nexport function stringify(data: { data: ioBroker.ScriptObject | ioBroker.ChannelObject; id: string }): {\n id: string;\n data: string | undefined;\n} {\n const obj = data.data;\n let id = data.id;\n let result: string | undefined;\n if (data.data.type === 'channel') {\n id = `${id.replace(/\\./g, '/').substring('script.js.'.length)}/_dir.json`;\n result = JSON.stringify(obj, null, 2);\n } else if (data.data.type === 'script') {\n const objScript = obj as ioBroker.ScriptObject;\n id = `${id.replace(/\\./g, '/').substring('script.js.'.length)}.json`;\n if (objScript.common?.source) {\n const source = objScript.common.source;\n if (objScript.common.enabled) {\n // @ts-expect-error We do not use it\n delete objScript.common.enabled;\n }\n if (objScript.common.engine === 'system.adapter.javascript.0') {\n // @ts-expect-error We do not use it\n delete objScript.common.engine;\n }\n if (objScript.common.engineType === 'Javascript/js') {\n // @ts-expect-error We do not use it\n delete objScript.common.engineType;\n }\n // @ts-expect-error We do not use it\n delete objScript.common.name;\n // @ts-expect-error We do not use it\n delete objScript.common.source;\n if (JSON.stringify(obj.common) !== '{}') {\n result = `/* -- do not edit following lines - START --\\n${JSON.stringify(obj.common, null, 2)}\\n-- do not edit previous lines - END --*/\\n${source}`;\n } else {\n result = source;\n }\n } else {\n result = JSON.stringify(obj, null, 2);\n }\n }\n\n return { id, data: result };\n}\n\nexport function parse(data: {\n data: string;\n id: string;\n}): { id: string; data: ioBroker.ScriptObject; error: string | undefined } | null {\n let obj: string = data.data;\n let id = data.id;\n let error: string | undefined;\n let name: string;\n let result: ioBroker.Object | undefined;\n if (id[id.length - 1] === '/') {\n id = id.substring(0, id.length - 1);\n }\n\n if (!id.match(/\\.json$/)) {\n return null;\n }\n\n if (id.match(/_dir\\.json$/)) {\n name = id.substring(0, id.length - '/_dir.json'.length).replace(/\\//g, '.');\n\n try {\n result = JSON.parse(obj);\n } catch (err: unknown) {\n error = `Cannot parse object \"${name}\": ${err as Error}`;\n result = {\n common: {\n name: name.split('.').pop() || name,\n },\n type: 'channel',\n _id: `script.js.${name}`,\n native: {},\n };\n }\n id = `script.js.${name}`;\n } else {\n //script\n name = id.substring(0, id.length - '.json'.length).replace(/\\//g, '.');\n let source: string;\n if (obj.match(/^\\/\\*\\s--\\sdo\\snot/)) {\n obj = obj.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n const lines = obj.split('\\n');\n let stringObj = '';\n let line = 1;\n while (line < lines.length) {\n if (lines[line].match(/^--\\sdo\\snot/)) {\n break;\n }\n stringObj += lines[line];\n line++;\n }\n lines.splice(0, line + 1);\n source = lines.join('\\n');\n try {\n result = {} as ioBroker.Object;\n result.common = JSON.parse(stringObj);\n result.common.source = source;\n } catch (err: unknown) {\n error = `Cannot parse object \"${id}\": ${err as Error}`;\n }\n } else {\n source = obj;\n }\n result = {} as ioBroker.Object;\n result.common = result.common || {};\n result._id = `script.js.${name}`;\n result.type = 'script';\n result.common.name = name.split('.').pop() || name;\n result.common.enabled = result.common.enabled === undefined ? true : result.common.enabled;\n result.common.engine = result.common.engine || 'system.adapter.javascript.0';\n result.common.engineType = result.common.engineType || 'Javascript/js';\n result.common.source = result.common.source || source;\n id = `script.js.${name}`;\n }\n\n return { id: id, data: result as ioBroker.ScriptObject, error: error };\n}\n"]} \ No newline at end of file diff --git a/build-backend/main.js b/build-backend/main.js index eacdd1e76..f61eeb383 100644 --- a/build-backend/main.js +++ b/build-backend/main.js @@ -683,10 +683,9 @@ class JavaScript extends adapter_core_1.Adapter { this.config.maxTriggersPerScript = parseInt(this.config.maxTriggersPerScript, 10) || 100; if (this.supportsFeature?.('PLUGINS')) { const sentryInstance = this.getPluginInstance('sentry'); - if (sentryInstance?.getSentryObject) { + if (sentryInstance) { const Sentry = sentryInstance.getSentryObject(); - if (Sentry) { - const scope = Sentry.getCurrentScope(); + Sentry?.withScope(scope => { scope.addEventProcessor((event, _hint) => { if (event.exception?.values?.[0]) { const eventData = event.exception.values[0]; @@ -697,7 +696,7 @@ class JavaScript extends adapter_core_1.Adapter { if (eventData.stacktrace.frames.find(frame => frame.filename?.includes(SCRIPT_CODE_MARKER))) { return null; } - //Exclude event if own directory is included but not inside own node_modules + // Exclude event if own directory is included but not inside own node_modules const ownNodeModulesDir = (0, node_path_1.join)(__dirname, 'node_modules'); if (!eventData.stacktrace.frames.find(frame => frame.filename && frame.filename.includes(__dirname) && @@ -711,7 +710,7 @@ class JavaScript extends adapter_core_1.Adapter { // No exception in it ... do not report return null; }); - } + }); } } await this.main(); diff --git a/build-backend/main.js.map b/build-backend/main.js.map index 2bf5dbbad..cc4fefe4b 100644 --- a/build-backend/main.js.map +++ b/build-backend/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAqD;AACrD,qCAAwF;AACxF,yCAAiD;AACjD,2DAA4D;AAC5D,6CAAkE;AAClE,yCAA8C;AAC9C,wDAAgC;AAEhC,kDAAoC;AACpC,oDAAsC;AACtC,8CAAgC;AAChC,oDAAsC;AACtC,gDAAkC;AAClC,kDAAoC;AACpC,kDAAoC;AACpC,8CAAgC;AAChC,4CAA8B;AAC9B,gDAAkC;AAClC,gDAAkC;AAClC,kEAAoD;AACpD,oDAAsC;AACtC,gDAAkC;AAElC,sCAAsC;AACtC,kDAAoC;AACpC,6CAA+B;AAC/B,sCAAsC;AACtC,yDAA2C;AAC3C,4DAA8C;AAE9C,yDAA6G;AAK7G,yCAAsC;AACtC,gEAAwC;AACxC,uCAAuD;AACvD,2CAAwC;AACxC,uEAAqE;AACrE,6CAAkE;AAClE,+CAAiE;AACjE,iEAAwG;AACxG,uCAAyC;AACzC,2DAM+B;AAuC/B;;;;GAIG;AACH,MAAM,wBAAwB,GAAa;IACvC,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,QAAQ;CACX,CAAC;AAEF,MAAM,WAAW,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7G,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAExC,IAAI,aAAiC,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAE9B,sCAAsC;AACtC,IAAI,SAAiC,CAAC;AAEtC,yEAAyE;AACzE,kHAAkH;AAClH,qCAAqC;AACrC,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,oBAAoB,WAAW,CAAC,OAAO,eAAe,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;AAErH,2IAA2I;AAC3I,SAAS,eAAe,CAAC,SAAe;IACpC,MAAM,QAAQ,GAAW,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACrD,+EAA+E;IAC/E,iFAAiF;IACjF,0EAA0E;IAC1E,gDAAgD;IAChD,MAAM,UAAU,GAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,8CAA8C;IAC9C,+EAA+E;IAC/E,MAAM,SAAS,GAAW,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO;IACH,qDAAqD;IACrD,CAAC,SAAS,GAAG,yCAAyC;QACtD,uEAAuE;QACvE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,6CAA6C;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,8CAA8C;QAC9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,qCAAqC;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,2BAA2B;YACtD,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC1D,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM;YACtC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS;YACzC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY;YAC5C,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC5C,mEAAmE;YACnE,qEAAqE;YAErE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,uBAAuB;YACpD,MAAM,CAAC;YACP,EAAE;YACF,EAAE,GAAG,2CAA2C;YAChD,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB;YAC7D,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC;YACF,EAAE;YACF,IAAI,GAAG,yDAAyD;QACpE,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,gCAAgC;QACzE,SAAS,CAAC,eAAe,EAAE,CAC9B,CAAC;AACN,CAAC;AAED,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAE9C,SAAS,aAAa,CAAC,GAA0B;IAC7C,OAAO,GAAG,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,YAAY,CAAC,GAA2B,EAAE,EAAU,EAAE,QAAgB;IAC3E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,UAAoB;IACxD,MAAM,GAAG,GAAS,kBAAkB,EAAE,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,IACI,UAAU;QACV,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC,EACrG,CAAC;QACC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzB,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAE7B,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB;IACvB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEjB,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAU;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEpC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,iFAAiF;AACjF,sIAAsI;AACtI,qDAAqD;AACrD,IAAA,yCAA2B,EAAC;IACxB,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,mBAAmB,GAAW,IAAI,oBAAM,CAAC,iDAA4B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACvG;;;GAGG;AAEH,MAAM,UAAW,SAAQ,sBAAO;IAGX,OAAO,CAAoB;IAEpC,gBAAgB,GAMpB;QACA,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACxC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KAC7C,CAAC;IAEe,IAAI,CAAU;IAEvB,eAAe,GAAG,KAAK,CAAC;IACxB,cAAc,GAAG,KAAK,CAAC;IAEvB,OAAO,GAAoC,EAAE,CAAC;IAC9C,MAAM,GAAmC,EAAE,CAAC;IACnC,kBAAkB,GAAmC,EAAE,CAAC;IACxD,QAAQ,GAAa,EAAE,CAAC;IACxB,aAAa,GAAyB,EAAE,CAAC;IACzC,iBAAiB,GAA6B,EAAE,CAAC;IACjD,mBAAmB,GAAsB,EAAE,CAAC;IAC5C,kBAAkB,GAA2B,EAAE,CAAC;IAChD,sBAAsB,GAA2B,EAAE,CAAC;IACpD,WAAW,GAA6B,EAAE,CAAC;IAC3C,MAAM,GAAgD,EAAE,CAAC;IACzD,MAAM,GAAa,EAAE,CAAC;IACtB,KAAK,GAA0C,EAAE,CAAC,CAAC,WAAW;IAC9D,OAAO,GAA6B,EAAE,CAAC;IACvC,kBAAkB,GAG/B,EAAE,CAAC;IACU,gBAAgB,GAQ7B,EAAE,CAAC;IACU,eAAe,GAAqC,EAAE,CAAC,CAAC,aAAa;IACrE,6BAA6B,GAA4B,EAAE,CAAC;IAE7E,oCAAoC;IAC5B,aAAa,GAAG,KAAK,CAAC;IAEtB,YAAY,GAGhB,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEpC,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,iBAAiB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAEjF,SAAS,GAAG,EAAE,CAAC,CAAC,uBAAuB;IAEvC,MAAM,CAAqB;IAE3B,YAAY,GAA2B,EAAE,CAAC;IAE1C,0BAA0B,GAA0B,IAAI,CAAC;IAEzD,YAAY,GAAG,EAAE,CAAC;IAC1B,oDAAoD;IAC5C,kBAAkB,GAAG,EAAE,CAAC;IAChC,gDAAgD;IAChD,8DAA8D;IACtD,+BAA+B,GAA2B,EAAE,CAAC;IAC7D,iBAAiB,GAAG,CAAC,CAAC;IAC9B,mCAAmC;IAC3B,QAAQ,CAAS;IAER,kBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAErD,UAAU,GAAe;QAC7B,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,KAAK;KACjB,CAAC;IAEF,YAAY,UAAmC,EAAE;QAC7C,OAAO,GAAG;YACN,GAAG,OAAO;YACV,IAAI,EAAE,YAAY,EAAE,eAAe;YACnC,aAAa,EAAE,IAAI;YACnB;;;eAGG;YACH,KAAK,EAAE,CAAC,GAAU,EAAW,EAAE;gBAC3B,kEAAkE;gBAClE,mEAAmE;gBACnE,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,MAAM,qBAAqB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBACpE,IAAI,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC7B,yBAAyB;wBACzB,IAAI,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;wBAC5D,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAEzC,mCAAmC;wBACnC,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;oBACD,+DAA+D;oBAC/D,8EAA8E;oBAC9E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC;wBACrE,2FAA2F;wBAC3F,0CAA0C;wBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,oHAAoH,CACvH,CAAC;wBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAE1B,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;gBAED,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC;QAEF,KAAK,CAAC,OAAyB,CAAC,CAAC;QAEjC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,GAAG;YACR,EAAE,EAAE,EAAe;YACnB,aAAa,EAAE,EAA2B;YAC1C,KAAK;YACL,MAAM;YACN,GAAG;YACH,MAAM;YACN,IAAI;YACJ,KAAK;YACL,KAAK;YACL,GAAG;YACH,EAAE;YACF,IAAI;YACJ,IAAI;YACJ,aAAa;YACb,MAAM;YACN,IAAI;YAEJ,OAAO;YACP,KAAK;YACL,WAAW;YACX,YAAY;SACf,CAAC;QAEF,gDAAgD;QAChD,IAAI,SAA6B,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3C,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;oBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACJ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;YAEjE,OAAO,EAAE,KAAK,EAAE,kCAAkC;YAClD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,IAAI,EAAE,eAAe;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAE/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,4BAA4B,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1E,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,SAAS;YACT,yBAAyB,EAAzB,wCAAyB;YACzB,OAAO,EAAE,IAAmC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SACrC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAM,CAAC,sCAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,GAA4B;QACzD,6FAA6F;QAC7F,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,sDAAsD;YACtD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAsB,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,CAAC;YACD,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,cAAc;YACd,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAEnC,2BAA2B;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACN,SAAS;gBACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpC,aAAa;gBACb,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,EAAE,KAAK,eAAe,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAClD,kCAAkC;YAClC,IAAA,mBAAW,EAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QAChE,CAAC;QAED,kDAAkD;QAClD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,oBAAoB,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;YAC9D,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5G,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,GAAmC,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B;QAEjE,oFAAoF;QACpF,gFAAgF;QAChF,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,0BAA0B;YAC1B,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;iBACxB,IAAI,CAAC,KAAK,CAAC,EAAE;gBACV,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACR,YAAY;YAChB,CAAC,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACnC,4CAA4C;YAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,0BAA0B;YAC1B,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,mFAAmF;gBACnF,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzE,+DAA+D;gBAC/D,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAE1B,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAEpC,uCAAuC;gBACvC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,wCAAwC;YACxC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,6CAA6C;gBAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACnE,oDAAoD;gBACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,6BAA6B;oBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YACrD,qBAAqB;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC5D,4BAA4B;oBAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,IACI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,kBAAkB;oBAClB,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBAC7F,2BAA2B;wBAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC;qBAAM,IACH,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,iBAAiB;oBAEjB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBACjF,eAAe;wBACf,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,uDAAuD;oBACvD,uCAAuC;oBACvC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9E,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC/B,+EAA+E;wBAC/E,qCAAqC;wBACrC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC3B,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBACjC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,KAA6B;QACnD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,sDAAsD;YACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,OAAO;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,WAAW,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAsC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,QAAQ,EAAE,CAAC;gBACX,2BAA2B;gBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;oBAClF,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;wBAC1D,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE;qBACjC,CAAC,CAAC;gBACP,CAAC;gBAED,8FAA8F;gBAC9F,KAAI,gBAAiB,QAAQ,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChF,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC5B,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5F,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,KAAI,iBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,GAAG,EAAoB,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,4BAAiB,EAC/B,IAAI,CAAC,OAAO,EACZ,EAAE,EACF,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,KAAK,CAAC,EAC5C,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAClD,CAAC;QAEF,0CAA0C;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,EAAE,uBAAuB,IAAI,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC1F,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,QAAgB,EAAE,IAAmB;QAC1D,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAoB;QAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC/C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACjC,QAAQ,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;QAC/G,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;QAE9G,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,cAAc,GAAsC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAExF,CAAC;YACF,IAAI,cAAc,EAAE,eAAe,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;oBACvC,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACrC,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC5C,IACI,SAAS,CAAC,UAAU,EAAE,MAAM;gCAC5B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gCAC1C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EACpC,CAAC;gCACC,6CAA6C;gCAC7C,IACI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACrC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC/C,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,4EAA4E;gCAC5E,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gCAC1D,IACI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAC7B,KAAK,CAAC,EAAE,CACJ,KAAK,CAAC,QAAQ;oCACd,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oCAClC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAClD,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,+DAA+D;gCAC/D,OAAO,KAAK,CAAC;4BACjB,CAAC;wBACL,CAAC;wBAED,uCAAuC;wBACvC,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,GAAqB;QAC3B,QAAQ,GAAG,EAAE,OAAO,EAAE,CAAC;YACnB,6BAA6B;YAC7B,KAAK,UAAU,CAAC;YAChB,KAAK,cAAc;gBACf,IACI,GAAG,CAAC,OAAO;oBACX,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;wBAC1B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBAClC,cAAc,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS;wBACvD,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,EAC9C,CAAC;oBACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAChD,iDAAiD;wBACjD,IACI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;4BACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EACpD,CAAC;4BACC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gCACjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gCAEhC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gCAEpF,IAAI,CAAC;oCACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wCACf,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gDAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;4CACvE,CAAC;4CAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wCAC7D,CAAC,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,OAAO,CAAC,OAAO;gDACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wCAC3E,CAAC,CAAC,CAAC;oCACP,CAAC;gCACL,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,KAAK,IAAI,CAAC,QAAQ,CACd,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC5D,IAAI,EACJ,IAAI,CACP,CAAC;oCACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAY,CAAC,CAAC;gCAC5D,CAAC;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM;YAEV,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjB,8BAA8B;gBAC9B,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAE3C,6CAA6C;gBAC7C,IAAI,CAAC;oBACD,MAAM,cAAc,GAAG,IAAA,uCAAqB,EAAC,gCAAW,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACL,qBAAqB;gBACzB,CAAC;gBAED,6EAA6E;gBAC7E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAElC,oEAAoE;gBACpE,KAAK,MAAM,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBAChF,OAAO,CAAC,GAAG,iBAAiB,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,CAAC;gBACnG,CAAC;gBAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBAClB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBACnC,IAAI,WAAW,GAA6D,EAG3E,CAAC;oBACF,IAAI,CAAC;wBACD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACzE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,WAAW,EAAE,CAAC;wBACd,IAAI,CAAC;4BACD,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CACxC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EACpD,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC9D,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAC1D,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;4BACF,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CACvC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAClD,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5D,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EACxD,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;wBACN,CAAC;wBAAC,OAAO,GAAY,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;wBACnE,CAAC;oBACL,CAAC;oBAED,MAAM,MAAM,GAA+E,EAAE,CAAC;oBAC9F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACJ,WAAiD,CAAC,CAAC,CAAC;wBACpD,WAAiD,CAAC,CAAC,CAAC,CAC5D,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACf,MAAM,SAAS,GACV,WAAwD,CAAC,GAAG,CAAC,KAAK,IAAI;4BACvE,CAAC,KAAK,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBAE5E,MAAM,CAAC,GAAG,CAAC,GAAG;4BACV,WAAW,EAAE,SAAS;4BACtB,UAAU,EAAE,SAAS;gCACjB,CAAC,CAAC,yBAAyB,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC;gCAClF,CAAC,CAAC,KAAK;4BACX,IAAI,EAAE,SAAS;gCACX,CAAC,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gCACrE,CAAC,CAAC,KAAK;yBACd,CAAC;oBACN,CAAC,CAAC,CAAC;oBAEH,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC7D,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBAEnC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC3E,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;oBAC1F,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBACpF,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBACxE,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;oBACvF,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBACjF,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CACjC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,gBAAgB,GAAG,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/E,MAAM,eAAe,GAAG,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;oBAE5E,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,YAAY,aAAa,iBAAiB,UAAU,eAAe,aAAa,aAAa,MAAM,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAClL,CAAC;oBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,WAAW,aAAa,gBAAgB,UAAU,cAAc,aAAa,YAAY,MAAM,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAC5K,CAAC;oBAEF,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;4BACI,WAAW,EAAE;gCACT,WAAW,EAAE,gBAAgB;gCAC7B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC7E,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE;6BAClC;4BACD,UAAU,EAAE;gCACR,WAAW,EAAE,eAAe;gCAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC3E,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE;6BACjC;yBACJ,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;oBACN,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChE,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,iDAAiD;gBACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAChC,MAAM;YACV,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBACxB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;wBACI,OAAO,EAAE,IAAA,wCAAyB,GAAE;wBACpC,GAAG,EAAH,eAAG;qBACN,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;gBACN,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,gCAAgC;gBAChC,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,IAAI,CAAC;wBACD,kBAAQ;6BACH,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;4BACtB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;4BAChE,UAAU,EAAE,GAAG;4BACf,IAAI,EAAE,IAAI;4BACV,QAAQ,EAAE,CAAC;4BACX,OAAO,EAAE,KAAK;4BACd,aAAa,EAAE,KAAK;4BACpB,WAAW,EAAE,IAAI;4BACjB,sBAAsB,EAAE,IAAI;4BAC5B,SAAS,EAAE,IAAI;4BACf,cAAc,EAAE,IAAI;4BACpB,WAAW,EAAE,OAAO;4BACpB,UAAU,EAAE,WAAW;yBAC1B,CAAC;6BACD,IAAI,CAAC,aAAa,CAAC,EAAE;4BAClB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gCACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAC9E,CAAC;iCAAM,CAAC;gCACJ,IAAI,CAAC,eAAe,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;4BAC9D,CAAC;wBACL,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,CAAC,EAAE;4BACP,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;4BAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACzF,CAAC,CAAC,CAAC;oBACX,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;wBAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACzF,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAQ;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAQ,EAAE,CAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1C,IACI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU;gBAChC,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,EACjE,CAAC;gBACC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;gBACrD,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAC3C,CAAC;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,GAAW,EAAE,CAAQ,EAAE,IAAa;QAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,IAAI,GAAG,CAAC;QACf,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACZ,SAAS;YACb,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC;gBACpD,MAAM;YACV,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACZ,SAAS;gBACb,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,EAAE,CAAC;oBACjE,MAAM;gBACV,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAEpG,+BAA+B;QAC/B,MAAM,OAAO,GAA+C,MAAM,IAAI,CAAC,qBAAqB,CACxF,kBAAkB,IAAI,CAAC,SAAS,EAAE,CACrC,CAAC;QACF,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAChD,CAAC;gBACD,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,GAAG;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;aACrB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAA,wCAAyB,GAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,mCAAmC;QAErF,8BAA8B;QAC9B,IAAI,CAAC;YACD,SAAS,GAAG;gBACR,iBAAiB,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC;aACjG,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACpD,mBAAmB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,GAAY,EAAE,CAAC,CAAC;YACjF,4DAA4D;YAC5D,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACxD,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;oBACtD,YAAY,EAAE,gBAAgB,CAAC,GAAY,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YACD,0EAA0E;YAC1E,SAAS,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,iEAAiE;QACjE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,qBAAS,CAClC,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,6GAA6G;QAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QACnD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,yBAAyB;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACpB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;wBAE/D,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACrB,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gCACtC,aAAa;gCACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,kCAAkC,CAAC,CAAC;gCAC5D,4EAA4E;gCAC5E,mGAAmG;gCACnG,+HAA+H;gCAC/H,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gCACpF,0EAA0E;gCAC1E,0EAA0E;gCAC1E,wCAAwC;gCACxC,oEAAoE;gCACpE,mFAAmF;gCACnF,MAAM,UAAU,GAAW,IAAA,kBAAU,EACjC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CACjE,CAAC;gCAEF,IAAI,QAA4B,CAAC;gCACjC,IAAI,YAAgC,CAAC;gCACrC,8EAA8E;gCAC9E,2EAA2E;gCAC3E,iCAAiC;gCACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oCACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oCACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oCACC,iCAAiC;oCACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oCAC/B,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;oCACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,kEAAkE,CAC/E,CAAC;gCACN,CAAC;qCAAM,CAAC;oCACJ,iFAAiF;oCACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCAC/C,IAAI,UAAyB,CAAC;oCAC9B,IAAI,CAAC;wCACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oCACpE,CAAC;oCAAC,OAAO,GAAY,EAAE,CAAC;wCACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wCAC9E,SAAS;oCACb,CAAC;oCAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW;yCAChC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC;yCACxC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAEhB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wCACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,oDAAoD,MAAM,EAAE,CACzE,CAAC;wCACN,CAAC;6CAAM,CAAC;4CACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,CAAC,CAAC;wCACnE,CAAC;wCACD,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;wCAC7B,mHAAmH;wCACnH,YAAY,GAAG,IAAA,6CAA2B,EAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;wCAE1E,MAAM,SAAS,GAIX;4CACA,UAAU;4CACV,QAAQ;yCACX,CAAC;wCACF,IAAI,YAAY,EAAE,CAAC;4CACf,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;wCAC1C,CAAC;wCAED,0GAA0G;wCAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD;wCACzF,KAAK,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE;4CACnC,MAAM,EAAE,SAAS;yCACpB,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,MAAM,EAAE,CAAC,CAAC;wCACxE,SAAS;oCACb,CAAC;gCACL,CAAC;gCACD,IAAI,CAAC,YAAY,IAAI,GAAG,QAAQ,IAAI,CAAC;gCACrC,gDAAgD;gCAChD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;oCACvB,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gCACnE,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,aAAa;gCACb,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gCACrC,IAAI,CAAC,YAAY,IAAI,GAAG,UAAU,IAAI,CAAC;gCAEvC,yDAAyD;gCACzD,0CAA0C;gCAC1C,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCAC/C,IAAI,UAAyB,CAAC;gCAC9B,IAAI,CAAC;oCACD,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gCACnE,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,0DAA0D,GAAY,EAAE,CACrF,CAAC;oCACF,SAAS;gCACb,CAAC;gCACD,gDAAgD;gCAChD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;oCACxD,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;gCAC9E,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,mBAAmB;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAmC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAChG,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAA,wCAAyB,GAAE,GAAG,eAAG,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAA,qBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,KAAK,IAAI,GAAG,IAAI,wBAAwB,EAAE,CAAC;oBACvC,GAAG,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,GAAG,CAAC,GAAG,eAAG,CAAC;oBAClC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACjF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;wBAC1F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,kCAAkC,CAAC,CAAC;wBACtF,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC;wBACrB,OAAO,EAAE,IAAI;wBACb,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;qBACnC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,0BAA0B,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpB,OAAO;gBACX,CAAC;gBACD,MAAM,+BAA+B,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC;gBAClF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,GAAG,CAAC,CAAC;gBAC9C,IAAI,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,uCAAuC,IAAI,CAAC,MAAM,CAAC,oBAAoB,iCAAiC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,sBAAsB,CACtL,CAAC;oBACF,4EAA4E;oBAC5E,oCAAoC;oBACpC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;wBACvD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,0CAA0C,IAAI,CAAC,MAAM,CAAC,oBAAoB,mEAAmE,CACrJ,CAAC;wBACF,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,UAAU,EAAE,mCAAmC,IAAI,CAAC,MAAM,CAAC,oBAAoB,2DAA2D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAC/L,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAEO,0BAA0B;QAC9B,4DAA4D;QAC5D,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,kDAAkD;YAC1D,iBAAiB,EAAE,kDAAkD;SACxE,CAAC;QACF,gFAAgF;QAChF,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC/F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;iBACtC,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;iBAC1C,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,yFAAyF;YACzF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;YACD,yGAAyG;YACzG,mFAAmF;YACnF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC7B,0DAA0D;gBAC1D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,SAAS;gBACb,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnD,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,IAAA,gCAAc,EAC3B,GAAG,EACH,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YAC1F,oEAAoE;YACpE,GAAG,KAAK,MAAM,CACjB,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,+EAA+E;gBAC/E,yBAAyB;gBACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,UAAU,GAAG;wBACT,CAAC,gBAAgB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACjE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,UAAU,GAAG;wBACT,CAAC,uBAAuB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACxE,CAAC;gBACN,CAAC;YACL,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YACzG,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrC,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;YACrD,mBAAmB,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,EAAU,EAAE,GAAuC;QACnE,IAAI,GAAG,EAAE,CAAC;YACN,+BAA+B;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEpC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,qCAAqC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACtD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAED,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,sBAAsB;YACtB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,mBAAmB;YACnB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACxC,sBAAsB;YACtB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAEvB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAErE,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC/B,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,EAAE,EAAE,CAAC;oBACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,4BAA4B,CACxB,EAAU,EACV,KAAwC;QAExC,IACI,KAAK;YACL,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAC7B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;YACxB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzF,CAAC;YACC,IAAI,CAAC;gBACD,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,wBAAwB,CAAC,EAAU,EAAE,KAA0B,EAAE,KAAc;QAC3E,gEAAgE;QAChE,MAAM,MAAM,GAAmB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAoB,CAAC;QAE5E,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,KAAoC;QAC/D,IAAI,MAAsB,CAAC;QAE3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,GAAG,KAAuB,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAoB,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,+CAA+C;QAC/C,mCAAmC;QACnC,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,IAAI;YACP,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC;QAE7G,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,0DAA0D;gBAC1D,MAAM,UAAU,GAAG,CAAC,IAAA,6BAAiB,EAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxE,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;oBACrC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAElC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAED,mBAAmB;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;aACjE,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtE,SAAS;gBACb,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClD,8BAA8B;oBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxD,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAE3F,oBAAoB;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEnD,kCAAkC;YAClC,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACjC,IAAA,mBAAW,EAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;YAChE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvB,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1C,CAAC;YAED,gCAAgC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC3B,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1D,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAA6B,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAA8B,CAAC,CAAC;YAE/E,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,wBAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,sDAAsD,CACrG,CAAC;YACN,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;YAClG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACrE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,yBAAyB,IAAI,CAAC,MAAM,CAAC,SAAS,sDAAsD,CACvG,CAAC;YACN,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;YAErE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC;YAEnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,OAAgB;QACjD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE9F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACrB,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,eAAe;iBACxB;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnE,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,sBAAsB,CAAC;gBAC/D,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC;gBACzD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE/F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG;gBACtB,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,iBAAiB;iBAC1B;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrE,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAoB;QAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;QAEnB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,sCAAsC;gBACtC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC,CAAC;gBACpD,CAAC;gBAEA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,EAAE,CAAC;YACJ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAE7B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAAU;QACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,CAAC;gBACb,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,SAAS,CAAC;YAEvB,iFAAiF;YACjF,wCAAwC;YACxC,MAAM,GAAG,GAAG,eAAe,MAAM,aAAa,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,SAAS,SAAS,WAAW,GAAG,EAAE,CAAC,CAAC;YAEtE,uDAAuD;YACvD,0IAA0I;YAC1I,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5C,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAErE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,CAAC,cAAc,EAAE,EAAE;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,oBAAoB;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAa,IAAI,CAAC,MAAM,CAAC,SAAS;aAC5C,KAAK,CAAC,SAAS,CAAC;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvG,IAAI,oBAAoB,GAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,wBAAwB,KAAK,UAAU,EAAE,CAAC;YACtD,oBAAoB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAE7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,GAAG,GAAG,CAAC;YAClB,IAAI,OAAO,GAAG,QAAQ,CAAC;YAEvB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;gBAClC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,qEAAqE;YACrE,IAAI,UAAU,GAAG,OAAO,CAAC;YAEzB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,UAAU,GAAG,MAAM,IAAA,8CAAsB,EAAC,OAAO,CAAC,CAAC;gBAEnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,WAAW,OAAO,GAAG,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;YACjF,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,uBAAuB;YACvB,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBAClE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;wBAEvE,MAAM,cAAc,GAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBACnE,IAAI,CAAC,IAA4B,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;oBAClF,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,MAAM,GAAY,EAAE,CAAC,CAAC;gBACnG,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,SAAS,iBAAiB,OAAO,eAAe,CAAC,EAAE,CAAC;gBAC1E,sBAAsB;gBACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,GAAG,GAAG,CAAC,CAAC;gBAEnE,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,GAAG,GAAG,CAAC,CAAC;gBAC1E,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,GAAG,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjG,CAAC;YACL,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACjD,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC;wBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;wBAEpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,mBAAmB,GAAG,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,mBAAmB,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAChG,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,SAAkB;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,oBAAoB,GACtB,4GAA4G;gBAC5G,4EAA4E;gBAC5E,iGAAiG;gBACjG,oFAAoF;gBACpF,6GAA6G,CAAC;YAElH,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACJ,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClC,6EAA6E;oBAC7E,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB;oBACvD,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,gBAAgB,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBAClD,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,4BAA4B,MAAM,SAAS,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,YAAY,MAAM,EAAE,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,OAAO,GAAkB;gBAC3B,QAAQ,EAAE,IAAI;gBACd,uBAAuB;gBACvB,qCAAqC;aACxC,CAAC;YACF,OAAO;gBACH,MAAM,EAAE,IAAI,gBAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aAC1B,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAY,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAgB,EAAE,IAAY,EAAE,UAAsB,EAAE,OAAgB,EAAE,KAAc;QAC5F,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;QAC3B,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;YAC7E,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAA,iBAAO,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,IAAI;gBACnB,qCAAqC;aACxC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC7E,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,CAAC,EAAE,SAAS;aACf,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,GAAY,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,WAAW,CAAC,EAA8B;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,0DAA0D;YAC1D,OAAO;QACX,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAC1C,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,sBAAsB;QAClB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,sEAAsE;QACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;QAE1C,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/F,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAErE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,6BAA6B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YAAC,MAAM,CAAC;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,sCAAsC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,4BAA4B;YAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxB,2BAA2B;gBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACpD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjE,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;4BACnC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;4BAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;4BACnC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gCAClB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BAC3B,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;wBAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IACI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACjE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EACtC,CAAC;wBACC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBAChC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC3E,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACpC,KAAK,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;wBAC5C,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,GAAG,EAAE,CAAC;wBACN,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC;YACL,CAAC;YAED,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,qBAAqB;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,0BAA0B;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,uCAAuC,KAAK,GAAG,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjE,CAAC;gBACL,CAAC;YACL,CAAC;YAED,0BAA0B;YAC1B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa;oBAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;gBAEhF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBACxB,IAAI,OAAO,GAA0B,UAAU,CAAC,GAAG,EAAE;wBACjD,IAAI,OAAO,EAAE,CAAC;4BACV,OAAO,GAAG,IAAI,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;oBACL,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;oBAErC,IAAI,CAAC;wBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;4BAC7B,IAAI,OAAO,EAAE,CAAC;gCACV,YAAY,CAAC,OAAO,CAAC,CAAC;gCACtB,OAAO,GAAG,IAAI,CAAC;gCACf,OAAO,CAAC,IAAI,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,+BAA+B,GAAY,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAA0B;QAC1C,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;YACjE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;YACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,yDAAyD,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,IACI,GAAG,EAAE,MAAM,EAAE,MAAM;YACnB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC;YAC1D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAC1D,CAAC;YACC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;YAErB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,kBAAkB,IAAI,eAAe,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,iBAAiB,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAC7D,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,EAC/B,IAAI,EACJ,IAAI,CACP,CAAC;YACN,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAEpD,IACK,GAAG,CAAC,MAAM,CAAC,UAAyB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC3E,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,SAAS;gBAClD,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,OAAO,EACnD,CAAC;gBACC,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;gBAEtE,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACjE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,QAAQ,EACR,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/D,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;gBACtD,0EAA0E;gBAC1E,0DAA0D;gBAC1D,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACrF,oEAAoE;gBACpE,mFAAmF;gBACnF,MAAM,UAAU,GAAG,IAAA,kBAAU,EAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAAC;gBAE9F,IAAI,QAAgB,CAAC;gBACrB,8EAA8E;gBAC9E,2EAA2E;gBAC3E,iCAAiC;gBACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oBACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oBACC,iCAAiC;oBACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,kEAAkE,CAAC,CAAC;gBAC7F,CAAC;qBAAM,CAAC;oBACJ,iFAAiF;oBACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,UAAyB,CAAC;oBAC9B,IAAI,CAAC;wBACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oBACpE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wBAC9E,OAAO,KAAK,CAAC;oBACjB,CAAC;oBAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE1F,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,yCAAyC,MAAM,EAAE,CAAC,CAAC;wBAC5E,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;wBAChE,CAAC;wBACD,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;wBAEnC,0GAA0G;wBAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,mDAAmD;wBACtF,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;4BACtC,MAAM,EAAE;gCACJ,UAAU;gCACV,QAAQ;6BACX;yBACJ,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,qCAAqC,MAAM,EAAE,CAAC,CAAC;wBACrE,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;gBACD,MAAM,aAAa,GAAqB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,EACJ,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,0BAA0B,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;YAChB,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEhE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,KAAK,eAAe,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC3B,IAAI,GAA6C,CAAC;QAClD,IAAI,CAAC;YACD,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAA6C,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAmC;QAChD,4BAA4B;QAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CACT,IAAU,EACV,UAA0B,EAC1B,KAAa,EACb,GAAW,EACX,aAA8B,EAC9B,QAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,UAAoB;QAEpB,IAAI,EAAE,GAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;QAEjF,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;YAC3C,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5F,CAAC;QACD,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzF,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE9D,IACI,EAAE,CAAC,QAAQ,EAAE,GAAG,eAAe;YAC/B,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,eAAe,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,EAC5E,CAAC;YACC,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACzC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,aAAa,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,aAAa,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;YAC1G,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACvC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YAC1B,oBAAoB;YACpB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;gBACb,KAAK,IAAI,EAAE,CAAC;YAChB,CAAC;QACL,CAAC;QACD,IAAI,MAAc,CAAC;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;YACrC,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACvD,GAAG,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,yBAAyB;QACzB,IACI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,QAA8B,KAAK,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,SAA+B,KAAK,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,EAChC,CAAC;YACC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACxE,OAAO;QACX,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACnC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QAEF,UAAU;QACV,IAAI,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAChE,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;YACjD,cAAc,GAAG,OAAO,CAAC;QAC7B,CAAC;QAED,SAAS;QACT,IAAI,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;YAC/C,aAAa,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAAsC,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACrG,IAAI,KAAc,CAAC;QACnB,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC;YAC9B,KAAK,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,sBAAsB;YACtB,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,OAAO,IAAI,WAAW,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,cAAc,GAChB,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1D,IAAI,GAAG,KAAK,gBAAgB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,WAAW,GAAG,cAAc,CAAC;QACjC,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACjC,WAAW,GAAG,aAAa,CAAC;QAChC,CAAC;QACD,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;YACrB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAuB,CAAC;QAC5B,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAAQ,GAAG,GAAG,SAAS,2DAA2D,CAAC;QACvF,IAAI,YAAY,GAAG,GAAG,SAAS,+BAA+B,CAAC;QAC/D,IAAI,CAAC;YACD,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,YAAY,GAAG,GAAG,SAAS,4BAA4B,CAAC;gBACxD,QAAQ,GAAG,GAAG,SAAS,wDAAwD,CAAC;gBAChF,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACpC,kBAAkB,EAClB,iDAAiD,CACpD,CAAC;YACF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,OAAO,CAAC,IAAc,CAAC;YACpC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,SAAS;QACb,CAAC;QAED,IAAI,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,MAAM,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAExF,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,IAA6B,CAAC;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC3D,IAAI,IAAI,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;wBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;wBACxD,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBACxD,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAA,uBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,mBAAmB;gBACnB,MAAM,IAAI,CAAC,cAAc,CACrB,kBAAkB,EAClB,iDAAiD,EACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAY,EAAE,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;gBAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEhG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAErE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC;wBAErC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;4BACtC,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE;gCACJ,IAAI,EAAE,SAAS,CAAC,EAAE;gCAClB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,KAAK;6BACf;4BACD,MAAM,EAAE,EAAE;yBACb,CAAC,CAAC;wBAEH,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;4BAClD,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gCACvB,GAAG,EAAE,aAAa;gCAClB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gCACzB,GAAG,EAAE,IAAI;6BACZ,CAAC,CAAC;wBACP,CAAC;6BAAM,CAAC;4BACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,0DAA0D,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,GAAY,EAAE,CAC1G,CAAC;oBACN,CAAC;gBACL,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACxG,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,kCAAkC;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,GAAG,CAAC,OAAe,EAAE,QAA4B,EAAQ,EAAE;QAC5D,qEAAqE;QACrE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,kCAAkC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO;YACX,CAAC;YACD,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,CAAC;IAEF,cAAc,CAAC,MAA2B;QACtC,IAAI,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;gBACjC,KAAK,EAAE,UAAU,EAAU;oBACvB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,kCAAkC,CAAC,QAAgB,EAAE,YAAoB;QACrE,gEAAgE;QAChE,uEAAuE;QACvE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC7E,CAAC;QACD,+DAA+D;QAC/D,IAAI,CAAC,kBAAkB,IAAI,GAAG,YAAY,IAAI,CAAC;QAC/C,yDAAyD;QACzD,6CAA6C;QAC7C,MAAM,qBAAqB,GAAG,aAAa,CAAC;QAC5C,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3D,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACrC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;QACH,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAC7F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAEnC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAsB;QAC3C,IAAI,EAAE,EAAE,CAAC;YACL,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,OAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,yDAAyD,CACzF,CACJ,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,+CAA+C,CAAC,CAAC;YAC7F,KAAK,IAAI,CAAC,QAAQ,CACd,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,6CAA6C,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC7F,IAAI,CACP,CAAC;QACN,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAuE;QAC9E,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,kCAAkC;QAClC,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,EAAE;YACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEjD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACjD,MAAM,OAAO,GAAgB;oBACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;oBAC9C,wCAAwC;iBAC3C,CAAC;gBACF,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAA,yBAAI,EAAC,GAAG,SAAS,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE3E;;;iEAGiD;gBAEjD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CACrB,SAAS,EACT,CACI,OAQO,EACT,EAAE;oBACA,IAAI,QAMH,CAAC;oBACF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnC,CAAC;wBAAC,MAAM,CAAC;4BACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;wBAC7E,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,QAAQ,GAAG,OAAO,CAAC;oBACvB,CAAC;oBAED,IAAI,QAAQ,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBAC3B,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;oBACrE,CAAC;oBAED,QAAQ,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACnB,KAAK,OAAO,CAAC,CAAC,CAAC;4BACX,IAAI,CAAC,oBAAoB,CAAC;gCACtB,GAAG,EAAE,OAAO;gCACZ,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;gCACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gCAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;6BAC1B,CAAC,CAAC;4BACH,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,sDAAsD;4BACtD,MAAM;wBACV,CAAC;wBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;4BACZ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;4BAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;4BAC5B,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;4BAC/B,yBAAyB;4BACzB,MAAM;wBACV,CAAC;wBAED,KAAK,KAAK,CAAC,CAAC,CAAC;4BACT,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;4BACvD,MAAM;wBACV,CAAC;wBAED,KAAK,cAAc,CAAC,CAAC,CAAC;4BAClB,OAAO,CAAC,GAAG,CACP,0CAA0C,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CACpF,CAAC;4BACF,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC,CACJ,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;oBACnD,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAiB,EAAE;oBACpE,IAAI,IAAI,EAAE,CAAC;wBACP,MAAM,IAAI,CAAC,QAAQ,CACf,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EACzE,IAAI,CACP,CAAC;oBACN,CAAC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvF,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACX,CAAC;CACJ;AAED,SAAS,eAAe,CACpB,KAAe,EACf,gBAA0E;IAE1E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1D,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,gBAAgB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,oEAAoE;AACpE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC1B,yCAAyC;IACzC,MAAM,CAAC,OAAO,GAAG,CAAC,OAA4C,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/F,CAAC;KAAM,CAAC;IACJ,wCAAwC;IACxC,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["/*\n * Javascript adapter\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014-2024 bluefox ,\n *\n * Copyright (c) 2014 hobbyquaker\n */\n\nimport { Script, type ScriptOptions } from 'node:vm';\nimport { readFileSync, existsSync, statSync, writeFileSync, type Stats } from 'node:fs';\nimport { join, sep, normalize } from 'node:path';\nimport { fork, type ForkOptions } from 'node:child_process';\nimport { setTypeScriptResolveOptions, Server } from 'virtual-tsc';\nimport { isDeepStrictEqual } from 'node:util';\nimport prettier from 'prettier';\n\nimport * as dgram from 'node:dgram';\nimport * as crypto from 'node:crypto';\nimport * as dns from 'node:dns';\nimport * as events from 'node:events';\nimport * as http from 'node:http';\nimport * as https from 'node:https';\nimport * as http2 from 'node:http2';\nimport * as net from 'node:net';\nimport * as os from 'node:os';\nimport * as path from 'node:path';\nimport * as util from 'node:util';\nimport * as child_process from 'node:child_process';\nimport * as stream from 'node:stream';\nimport * as zlib from 'node:zlib';\n\n// @ts-expect-error no types available\nimport * as suncalc from 'suncalc2';\nimport * as axios from 'axios';\n// @ts-expect-error no types available\nimport * as wake_on_lan from 'wake_on_lan';\nimport * as nodeSchedule from 'node-schedule';\n\nimport { getAbsoluteDefaultDataDir, Adapter, EXIT_CODES, type AdapterOptions } from '@iobroker/adapter-core';\nimport type SentryPlugin from '@iobroker/plugin-sentry';\nimport type { GetTimesResult } from 'suncalc';\nimport type { CompileResult } from 'virtual-tsc/build/util';\n\nimport { Mirror } from './lib/mirror';\nimport ProtectFs from './lib/protectFs';\nimport { setLanguage, getLanguage } from './lib/words';\nimport { sandBox } from './lib/sandbox';\nimport { requestModuleNameByUrl } from './lib/nodeModulesManagement';\nimport { createEventObject, type EventObj } from './lib/eventObj';\nimport { type AstroEventName, Scheduler } from './lib/scheduler';\nimport { targetTsLib, tsCompilerOptions, jsDeclarationCompilerOptions } from './lib/typescriptSettings';\nimport { hashSource } from './lib/tools';\nimport {\n resolveTypescriptLibs,\n resolveTypings,\n scriptIdToTSFilename,\n transformScriptBeforeCompilation,\n transformGlobalDeclarations,\n} from './lib/typescriptTools';\nimport type {\n FileSubscriptionResult,\n JavascriptContext,\n JavaScriptAdapterConfig,\n JsScript,\n ScriptType,\n SubscriptionResult,\n SubscribeObject,\n JavascriptTimer,\n SandboxType,\n LogMessage,\n DebugState,\n} from './types';\nimport type { PatternEventCompareFunction } from './lib/patternCompareFunctions';\n\ntype MODULES = {\n fs: ProtectFs;\n 'fs/promises': ProtectFs['promises'];\n dgram: typeof dgram;\n crypto: typeof crypto;\n dns: typeof dns;\n events: typeof events;\n http: typeof http;\n https: typeof https;\n http2: typeof http2;\n net: typeof net;\n os: typeof os;\n path: typeof path;\n util: typeof util;\n child_process: typeof child_process;\n stream: typeof stream;\n zlib: typeof zlib;\n suncalc: typeof suncalc;\n axios: typeof axios;\n wake_on_lan: typeof wake_on_lan;\n nodeSchedule: typeof nodeSchedule;\n};\n\n/**\n * List of forbidden Locations for a mirror directory\n * relative to the default data directory\n * ATTENTION: the same list is also located in index_m.html!!\n */\nconst forbiddenMirrorLocations: string[] = [\n 'backup-objects',\n 'files',\n 'backitup',\n '../backups',\n '../node_modules',\n '../log',\n];\n\nconst packageJson: Record = JSON.parse(readFileSync(`${__dirname}/../package.json`).toString());\nconst SCRIPT_CODE_MARKER = 'script.js.';\n\nlet webstormDebug: string | undefined;\n\nconst isCI = !!process.env.CI;\n\n// ambient declarations for typescript\nlet tsAmbient: Record;\n\n// TypeScript's scripts are only recompiled if their source hash changes.\n// If an adapter update fixes the compilation bugs, a user won't notice until the changes and re-saves the script.\n// To avoid that, we also include the\n// adapter version and TypeScript version in the hash\nconst tsSourceHashBase = `versions:adapter=${packageJson.version},typescript=${packageJson.dependencies.typescript}`;\n\n// taken from here: https://stackoverflow.com/questions/11887934/how-to-check-if-dst-daylight-saving-time-is-in-effect-and-if-so-the-offset\nfunction dstOffsetAtDate(dateInput: Date): number {\n const fullYear: number = dateInput.getFullYear() | 0;\n // \"Leap Years are any year that can be exactly divided by 4 (2012, 2016, etc.)\n // except if it can be exactly divided by 100, then it isn't (2100, 2200, etc.)\n // except if it can be exactly divided by 400, then it is (2000, 2400)\"\n // (https://www.mathsisfun.com/leap-years.html).\n const isLeapYear: 1 | 0 = ((fullYear & 3) | ((fullYear / 100) & 3)) === 0 ? 1 : 0;\n // (fullYear & 3) = (fullYear % 4), but faster\n //Alternative:var isLeapYear=(new Date(currentYear,1,29,12)).getDate()===29?1:0\n const fullMonth: number = dateInput.getMonth() | 0;\n return (\n // 1. We know what the time since the Epoch really is\n +dateInput - // same as the dateInput.getTime() method\n // 2. We know what the time since the Epoch at the start of the year is\n +new Date(fullYear, 0) - // day defaults to 1 if not explicitly zeroed\n // 3. Now, subtract what we would expect the time to be if daylight savings\n // did not exist. This yields the time-offset due to daylight savings.\n // Calculate the day of the year in the Gregorian calendar\n // The code below works based upon the facts of signed right shifts\n // • (x) >> n: shifts n and fills in the n highest bits with 0s\n // • (-x) >> n: shifts n and fills in the n highest bits with 1s\n // (This assumes that x is a positive integer)\n ((((-1 + // the first day in the year is day 1\n (31 & (-fullMonth >> 4)) + // January // (-11)>>4 = -1\n ((28 + isLeapYear) & ((1 - fullMonth) >> 4)) + // February\n (31 & ((2 - fullMonth) >> 4)) + // March\n (30 & ((3 - fullMonth) >> 4)) + // April\n (31 & ((4 - fullMonth) >> 4)) + // May\n (30 & ((5 - fullMonth) >> 4)) + // June\n (31 & ((6 - fullMonth) >> 4)) + // July\n (31 & ((7 - fullMonth) >> 4)) + // August\n (30 & ((8 - fullMonth) >> 4)) + // September\n (31 & ((9 - fullMonth) >> 4)) + // October\n (30 & ((10 - fullMonth) >> 4)) + // November\n // There are no months past December: the year rolls into the next.\n // Thus, \"fullMonth\" is 0-based, so it will never be 12 in JavaScript\n\n (dateInput.getDate() | 0)) & // get day of the month\n 0xffff) *\n 24 *\n 60 + // 24 hours in a day, 60 minutes in an hour\n (dateInput.getHours() & 0xff) * 60 + // 60 minutes in an hour\n (dateInput.getMinutes() & 0xff)) |\n 0) *\n 60 *\n 1000 - // 60 seconds in a minute * 1000 milliseconds in a second\n (dateInput.getSeconds() & 0xff) * 1000 - // 1000 milliseconds in a second\n dateInput.getMilliseconds()\n );\n}\n\nconst regExGlobalOld = /_global$/;\nconst regExGlobalNew = /script\\.js\\.global\\./;\n\nfunction checkIsGlobal(obj: ioBroker.ScriptObject): boolean {\n return obj?.common && (regExGlobalOld.test(obj.common.name) || regExGlobalNew.test(obj._id));\n}\n\nfunction fileMatching(sub: FileSubscriptionResult, id: string, fileName: string): boolean {\n if (sub.idRegEx) {\n if (!sub.idRegEx.test(id)) {\n return false;\n }\n } else {\n if (sub.id !== id) {\n return false;\n }\n }\n if (sub.fileRegEx) {\n if (!sub.fileRegEx.test(fileName)) {\n return false;\n }\n } else {\n if (sub.fileNamePattern !== fileName) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getNextTimeEvent(time: string, useNextDay?: boolean): Date {\n const now: Date = getAstroStartOfDay();\n const [timeHours, timeMinutes] = time.split(':');\n const nTimeHours = parseInt(timeHours, 10);\n const nTimeMinutes = parseInt(timeMinutes, 10);\n if (\n useNextDay &&\n (now.getHours() > nTimeHours || (now.getHours() === nTimeHours && now.getMinutes() > nTimeMinutes))\n ) {\n now.setDate(now.getDate() + 1);\n }\n\n now.setHours(nTimeHours);\n now.setMinutes(nTimeMinutes);\n\n return now;\n}\n\nfunction getAstroStartOfDay(): Date {\n const d = new Date();\n d.setMinutes(0);\n d.setSeconds(0);\n d.setMilliseconds(0);\n d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n d.setUTCHours(0);\n\n return d;\n}\n\nfunction formatHoursMinutesSeconds(date: Date): string {\n const h = String(date.getHours());\n const m = String(date.getMinutes());\n const s = String(date.getSeconds());\n\n return `${h.padStart(2, '0')}:${m.padStart(2, '0')}:${s.padStart(2, '0')}`;\n}\n\n// Due to a npm bug, virtual-tsc may be hoisted to the top level node_modules but\n// TypeScript may still be in the adapter level (https://npm.community/t/packages-with-peerdependencies-are-incorrectly-hoisted/4794),\n// so we need to tell virtual-tsc where TypeScript is\nsetTypeScriptResolveOptions({\n paths: [require.resolve('typescript')],\n});\n\n// compiler instance for global JS declarations\nconst jsDeclarationServer: Server = new Server(jsDeclarationCompilerOptions, isCI ? false : undefined);\n/**\n * Stores the IDs of script objects whose change should be ignored because\n * the compiled source was just updated\n */\n\nclass JavaScript extends Adapter {\n declare public config: JavaScriptAdapterConfig;\n\n private readonly context: JavascriptContext;\n\n private errorLogFunction: {\n error: (msg: string) => void;\n warn: (msg: string) => void;\n info: (msg: string) => void;\n debug: (msg: string) => void;\n silly: (msg: string) => void;\n } = {\n error: (msg: string) => console.error(msg),\n warn: (msg: string) => console.warn(msg),\n info: (msg: string) => console.log(msg),\n debug: (msg: string) => console.debug(msg),\n silly: (msg: string) => console.debug(msg),\n };\n\n private readonly mods: MODULES;\n\n private objectsInitDone = false;\n private statesInitDone = false;\n\n private objects: Record = {};\n private states: Record = {};\n private readonly interimStateValues: Record = {};\n private readonly stateIds: string[] = [];\n private readonly subscriptions: SubscriptionResult[] = [];\n private readonly subscriptionsFile: FileSubscriptionResult[] = [];\n private readonly subscriptionsObject: SubscribeObject[] = [];\n private readonly subscribedPatterns: Record = {};\n private readonly subscribedPatternsFile: Record = {};\n private readonly adapterSubs: Record = {};\n private readonly timers: { [scriptName: string]: JavascriptTimer[] } = {};\n private readonly _enums: string[] = [];\n private readonly names: { [name: string]: string | string[] } = {}; // name: id\n private readonly scripts: Record = {};\n private readonly messageBusHandlers: Record<\n string,\n Record void }[]>\n > = {};\n private readonly logSubscriptions: Record<\n string,\n {\n sandbox: SandboxType;\n cb: (info: LogMessage) => void;\n id: number;\n severity: ioBroker.LogLevel | '*';\n }[]\n > = {};\n private readonly tempDirectories: { [scriptName: string]: string } = {}; // name: path\n private readonly folderCreationVerifiedObjects: Record = {};\n\n /** if logs are subscribed or not */\n private logSubscribed = false;\n\n private timeSettings: {\n format12: boolean;\n leadingZeros: boolean;\n } = { format12: false, leadingZeros: true };\n\n private dayScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n private sunScheduleTimer: NodeJS.Timeout | null = null; // schedule for sun moment times\n private timeScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n\n private activeStr = ''; // enabled state prefix\n\n private mirror: Mirror | undefined;\n\n private stopCounters: Record = {};\n\n private setStateCountCheckInterval: NodeJS.Timeout | null = null;\n\n private globalScript = '';\n /** Generated declarations for global TypeScripts */\n private globalDeclarations = '';\n // Remember which definitions the global scripts\n // have access to, because it depends on the compilation order\n private knownGlobalDeclarationsByScript: Record = {};\n private globalScriptLines = 0;\n // compiler instance for typescript\n private tsServer: Server;\n\n private readonly ignoreObjectChange: Set = new Set();\n\n private debugState: DebugState = {\n scriptName: '',\n child: null,\n promiseOnEnd: null,\n paused: false,\n started: 0,\n running: false,\n };\n\n constructor(options: Partial = {}) {\n options = {\n ...options,\n name: 'javascript', // adapter name\n useFormatDate: true,\n /**\n * If the JS-Controller catches an unhandled error, this will be called\n * so we have a chance to handle it ourselves.\n */\n error: (err: Error): boolean => {\n // Identify unhandled errors originating from callbacks in scripts\n // These are not caught by wrapping the execution code in try-catch\n if (err && typeof err.stack === 'string') {\n const scriptCodeMarkerIndex = err.stack.indexOf(SCRIPT_CODE_MARKER);\n if (scriptCodeMarkerIndex > -1) {\n // This is a script error\n let scriptName = err.stack.substring(scriptCodeMarkerIndex);\n scriptName = scriptName.substring(0, scriptName.indexOf(':'));\n this.logError(scriptName, 'Error:', err);\n\n // Leave the script running for now\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n // check if a path contains adaptername but not own node_module\n // this regex matched \"iobroker.javascript/\" if NOT followed by \"node_modules\"\n if (!err.stack.match(/iobroker\\.javascript[/\\\\](?!.*node_modules).*/g)) {\n // This is an error without any info on origin (mostly async errors like connection errors)\n // also consider it as being from a script\n this.log.error(\n 'An error happened which is most likely from one of your scripts, but the originating script could not be detected.',\n );\n this.log.error(`Error: ${err.message}`);\n this.log.error(err.stack);\n\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n }\n\n return false;\n },\n };\n\n super(options as AdapterOptions);\n\n this.on('objectChange', this.onObjectChange.bind(this));\n this.on('stateChange', this.onStateChange.bind(this));\n this.on('ready', this.onReady.bind(this));\n this.on('message', this.onMessage.bind(this));\n this.on('unload', this.onUnload.bind(this));\n this.on('fileChange', this.onFileChange.bind(this));\n this.on('log', this.onLog.bind(this));\n\n this.mods = {\n fs: {} as ProtectFs,\n 'fs/promises': {} as ProtectFs['promises'],\n dgram,\n crypto,\n dns,\n events,\n http,\n https,\n http2,\n net,\n os,\n path,\n util,\n child_process,\n stream,\n zlib,\n\n suncalc,\n axios,\n wake_on_lan,\n nodeSchedule,\n };\n\n // check the webstorm debug and just debug modes\n let debugMode: string | undefined;\n if (process.argv) {\n for (let a = 1; a < process.argv.length; a++) {\n if (process.argv[a].startsWith('--webstorm')) {\n webstormDebug = process.argv[a].replace(/^(.*?=\\s*)/, '');\n }\n if (process.argv[a] === '--debugScript') {\n if (!process.argv[a + 1]) {\n console.log('No script name provided');\n process.exit(300);\n } else {\n debugMode = process.argv[a + 1];\n }\n }\n }\n }\n\n this.context = {\n mods: this.mods,\n objects: this.objects,\n states: this.states,\n interimStateValues: this.interimStateValues,\n stateIds: this.stateIds,\n errorLogFunction: this.errorLogFunction,\n subscriptions: this.subscriptions,\n subscriptionsFile: this.subscriptionsFile,\n subscriptionsObject: this.subscriptionsObject,\n subscribedPatterns: this.subscribedPatterns,\n subscribedPatternsFile: this.subscribedPatternsFile,\n adapterSubs: this.adapterSubs,\n cacheObjectEnums: {},\n timers: this.timers,\n enums: this._enums,\n names: this.names,\n scripts: this.scripts,\n messageBusHandlers: this.messageBusHandlers,\n logSubscriptions: this.logSubscriptions,\n tempDirectories: this.tempDirectories,\n folderCreationVerifiedObjects: this.folderCreationVerifiedObjects,\n\n isEnums: false, // If some subscription wants enum\n channels: null,\n devices: null,\n logWithLineInfo: this.logWithLineInfo.bind(this),\n scheduler: null,\n timerId: 0,\n rulesOpened: null, // opened rules\n language: this.language || 'en',\n\n updateLogSubscriptions: this.updateLogSubscriptions.bind(this),\n convertBackStringifiedValues: this.convertBackStringifiedValues.bind(this),\n updateObjectContext: this.updateObjectContext.bind(this),\n prepareStateObject: this.prepareStateObject.bind(this),\n debugMode,\n getAbsoluteDefaultDataDir,\n adapter: this as unknown as ioBroker.Adapter,\n logError: this.logError.bind(this),\n };\n\n this.tsServer = new Server(tsCompilerOptions, this.tsLog);\n }\n\n async onObjectChange(id: string, obj?: ioBroker.Object | null): Promise {\n // Check if we should ignore this change (once!) because we just updated the compiled sources\n if (this.ignoreObjectChange.has(id)) {\n // Update the cached script object and do nothing more\n this.objects[id] = obj as ioBroker.Object;\n this.ignoreObjectChange.delete(id);\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.objectsInitDone) {\n if (obj) {\n this.objects[id] = obj;\n }\n return;\n }\n\n if (id.startsWith('enum.')) {\n // clear cache\n this.context.cacheObjectEnums = {};\n\n // update this._enums array\n if (obj) {\n // If new\n if (!this._enums.includes(id)) {\n this._enums.push(id);\n this._enums.sort();\n }\n } else {\n const pos = this._enums.indexOf(id);\n // if deleted\n if (pos !== -1) {\n this._enums.splice(pos, 1);\n }\n }\n }\n\n if (id === 'system.config' && obj?.common?.language) {\n // set language for debug messages\n setLanguage(obj.common.language);\n this.language = obj.common.language;\n this.context.language = this.language as ioBroker.Languages;\n }\n\n // update stored time format for variables.dayTime\n if (id === `${this.namespace}.variables.dayTime` && obj?.native) {\n this.timeSettings.format12 = obj.native.format12 || false;\n this.timeSettings.leadingZeros = obj.native.leadingZeros === undefined ? true : obj.native.leadingZeros;\n }\n\n // send changes to disk mirror\n this.mirror?.onObjectChange(id, obj as ioBroker.ScriptObject | null);\n\n const formerObj = this.objects[id];\n\n this.updateObjectContext(id, obj); // Update all Meta object data\n\n // for the alias object changes on the state objects, we need to manually update the\n // state cache value, because the new value is only published on the next change\n if (obj?.type === 'state' && id.startsWith('alias.0.')) {\n // execute async for speed\n this.getForeignStateAsync(id)\n .then(state => {\n if (state) {\n this.states[id] = state;\n } else if (this.states[id] !== undefined) {\n delete this.states[id];\n }\n })\n .catch(() => {\n /* ignore */\n });\n }\n\n this.subscriptionsObject.forEach(sub => {\n // ToDo: implement comparing with id.0.* too\n if (sub.pattern === id) {\n try {\n sub.callback(id, obj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n });\n\n // handle Script object updates\n if (!obj && formerObj?.type === 'script') {\n // Object Deleted just now\n if (checkIsGlobal(formerObj)) {\n // it was a global Script, and it was enabled and is now deleted => restart adapter\n if (formerObj.common.enabled) {\n this.log.info(`Active global Script ${id} deleted. Restart instance.`);\n this.restart();\n }\n } else if (formerObj.common?.engine === `system.adapter.${this.namespace}`) {\n // It was a non-global Script and deleted => stop and remove it\n await this.stopScript(id);\n\n // delete scriptEnabled.blabla variable\n const idActive = `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idActive);\n await this.delObjectAsync(idActive);\n\n // delete scriptProblem.blabla variable\n const idProblem = `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idProblem);\n await this.delObjectAsync(idProblem);\n }\n } else if (!formerObj && obj?.type === 'script') {\n // New script that does not exist before\n if (checkIsGlobal(obj)) {\n // new global script added => restart adapter\n if (obj.common.enabled) {\n this.log.info(`Active global Script ${id} created. Restart instance.`);\n this.restart();\n }\n } else if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // new non-global script - create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n if (obj.common.enabled) {\n // if enabled => Start script\n await this.loadScriptById(id);\n }\n }\n } else if (obj?.type === 'script' && formerObj?.common) {\n // Script changed ...\n if (checkIsGlobal(obj)) {\n if (obj.common.enabled || formerObj.common.enabled) {\n this.log.info(`Global Script ${id} updated. Restart instance.`);\n this.restart();\n }\n } else {\n // No global script\n if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n }\n\n if (\n (formerObj.common.enabled && !obj.common.enabled) ||\n (formerObj.common.engine === `system.adapter.${this.namespace}` &&\n obj.common.engine !== `system.adapter.${this.namespace}`)\n ) {\n // Script disabled\n if (formerObj.common.enabled && formerObj.common.engine === `system.adapter.${this.namespace}`) {\n // Remove it from executing\n await this.stopScript(id);\n }\n } else if (\n (!formerObj.common.enabled && obj.common.enabled) ||\n (formerObj.common.engine !== `system.adapter.${this.namespace}` &&\n obj.common.engine === `system.adapter.${this.namespace}`)\n ) {\n // Script enabled\n\n if (obj.common.enabled && obj.common.engine === `system.adapter.${this.namespace}`) {\n // Start script\n await this.loadScriptById(id);\n }\n } else {\n // if (obj.common.source !== formerObj.common.source) {\n // Source changed => restart the script\n this.stopCounters[id] = this.stopCounters[id] ? this.stopCounters[id] + 1 : 1;\n void this.stopScript(id).then(() => {\n // only start again after stop when \"last\" object change to prevent problems on\n // multiple changes in fast frequency\n if (!--this.stopCounters[id]) {\n void this.loadScriptById(id);\n }\n });\n }\n }\n }\n }\n\n onStateChange(id: string, state?: ioBroker.State | null): void {\n if (this.interimStateValues[id] !== undefined) {\n // any update invalidates the remembered interim value\n delete this.interimStateValues[id];\n }\n if (!id || id.startsWith('messagebox.') || id.startsWith('log.')) {\n return;\n }\n\n if (id === `${this.namespace}.debug.to` && state && !state.ack) {\n if (!this.context.debugMode) {\n this.debugSendToInspector(state.val);\n }\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.statesInitDone) {\n if (state) {\n this.states[id] = state;\n }\n return;\n }\n\n const oldState: ioBroker.State | null | undefined = this.states[id];\n if (state) {\n if (oldState) {\n // enable or disable script\n if (!state.ack && id.startsWith(this.activeStr) && this.objects[id]?.native?.script) {\n void this.extendForeignObject(this.objects[id].native.script, {\n common: { enabled: state.val },\n });\n }\n\n // monitor if adapter is alive and send all subscriptions once more, after adapter goes online\n if (/*oldState && */ oldState.val === false && state.val && id.endsWith('.alive')) {\n if (this.adapterSubs[id]) {\n const parts = id.split('.');\n const a = `${parts[2]}.${parts[3]}`;\n for (let t = 0; t < this.adapterSubs[id].length; t++) {\n this.log.info(`Detected coming adapter \"${a}\". Send subscribe: ${this.adapterSubs[id][t]}`);\n this.sendTo(a, 'subscribe', this.adapterSubs[id][t]);\n }\n }\n }\n } else if (/*!oldState && */ !this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n this.states[id] = state;\n } else {\n if (oldState) {\n delete this.states[id];\n }\n state = {} as ioBroker.State;\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n }\n const _eventObj = createEventObject(\n this.context,\n id,\n this.convertBackStringifiedValues(id, state),\n this.convertBackStringifiedValues(id, oldState),\n );\n\n // if this state matches any subscriptions\n for (let i = 0, l = this.subscriptions.length; i < l; i++) {\n const sub = this.subscriptions[i];\n if (sub?.patternCompareFunctions && patternMatching(_eventObj, sub.patternCompareFunctions)) {\n try {\n sub.callback(_eventObj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n onFileChange(id: string, fileName: string, size: number | null): void {\n // if this file matches any subscriptions\n for (let i = 0, l = this.subscriptionsFile.length; i < l; i++) {\n const sub = this.subscriptionsFile[i];\n if (sub && fileMatching(sub, id, fileName)) {\n try {\n sub.callback(id, fileName, size, sub.withFile);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n async onUnload(callback: () => void): Promise {\n await this.debugStop();\n this.stopTimeSchedules();\n if (this.setStateCountCheckInterval) {\n clearInterval(this.setStateCountCheckInterval);\n this.setStateCountCheckInterval = null;\n }\n await this.stopAllScripts();\n if (typeof callback === 'function') {\n callback();\n }\n }\n\n async onReady(): Promise {\n this.errorLogFunction = this.log;\n this.context.errorLogFunction = this.log;\n\n this.config.maxSetStatePerMinute = parseInt(this.config.maxSetStatePerMinute as unknown as string, 10) || 1000;\n this.config.maxTriggersPerScript = parseInt(this.config.maxTriggersPerScript as unknown as string, 10) || 100;\n\n if (this.supportsFeature?.('PLUGINS')) {\n const sentryInstance: InstanceType = this.getPluginInstance('sentry') as InstanceType<\n typeof SentryPlugin\n >;\n if (sentryInstance?.getSentryObject) {\n const Sentry = sentryInstance.getSentryObject();\n if (Sentry) {\n const scope = Sentry.getCurrentScope();\n scope.addEventProcessor((event, _hint) => {\n if (event.exception?.values?.[0]) {\n const eventData = event.exception.values[0];\n if (\n eventData.stacktrace?.frames &&\n Array.isArray(eventData.stacktrace.frames) &&\n eventData.stacktrace.frames.length\n ) {\n // Exclude event if script Marker is included\n if (\n eventData.stacktrace.frames.find(frame =>\n frame.filename?.includes(SCRIPT_CODE_MARKER),\n )\n ) {\n return null;\n }\n //Exclude event if own directory is included but not inside own node_modules\n const ownNodeModulesDir = join(__dirname, 'node_modules');\n if (\n !eventData.stacktrace.frames.find(\n frame =>\n frame.filename &&\n frame.filename.includes(__dirname) &&\n !frame.filename.includes(ownNodeModulesDir),\n )\n ) {\n return null;\n }\n // We have exception data and did not sort it out, so report it\n return event;\n }\n }\n\n // No exception in it ... do not report\n return null;\n });\n }\n }\n }\n\n await this.main();\n }\n\n onMessage(obj: ioBroker.Message): void {\n switch (obj?.command) {\n // process messageTo commands\n case 'toScript':\n case 'jsMessageBus':\n if (\n obj.message &&\n (obj.message.instance === null ||\n obj.message.instance === undefined ||\n `javascript.${obj.message.instance}` === this.namespace ||\n obj.message.instance === this.namespace)\n ) {\n Object.keys(this.messageBusHandlers).forEach(name => {\n // script name could be script.js.xxx or only xxx\n if (\n (!obj.message.script || obj.message.script === name) &&\n this.messageBusHandlers[name][obj.message.message]\n ) {\n this.messageBusHandlers[name][obj.message.message].forEach(handler => {\n const sandbox = handler.sandbox;\n\n sandbox.verbose && sandbox.log(`onMessage: ${JSON.stringify(obj.message)}`, 'info');\n\n try {\n if (obj.callback) {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n if (sandbox.verbose) {\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n }\n\n this.sendTo(obj.from, obj.command, result, obj.callback);\n });\n } else {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n sandbox.verbose &&\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n });\n }\n } catch (err: unknown) {\n void this.setState(\n `scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`,\n true,\n true,\n );\n this.logError(name, 'Error in callback:', err as Error);\n }\n });\n }\n });\n }\n break;\n\n case 'loadTypings': {\n // Load typings for the editor\n const typings: Record = {};\n\n // try to load TypeScript lib files from disk\n try {\n const typescriptLibs = resolveTypescriptLibs(targetTsLib);\n Object.assign(typings, typescriptLibs);\n } catch {\n /* ok, no lib then */\n }\n\n // provide the already-loaded ioBroker typings and global script declarations\n Object.assign(typings, tsAmbient);\n\n // also provide the known global declarations for each global script\n for (const globalScriptPaths of Object.keys(this.knownGlobalDeclarationsByScript)) {\n typings[`${globalScriptPaths}.d.ts`] = this.knownGlobalDeclarationsByScript[globalScriptPaths];\n }\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { typings }, obj.callback);\n }\n break;\n }\n\n case 'calcAstroAll': {\n if (obj.message) {\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n let astroEvents: GetTimesResult & { nextSunrise: Date; nextSunset: Date } = {} as GetTimesResult & {\n nextSunrise: Date;\n nextSunset: Date;\n };\n try {\n astroEvents = this.mods.suncalc.getTimes(today, latitude, longitude);\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n if (astroEvents) {\n try {\n astroEvents.nextSunrise = this.getAstroEvent(\n today,\n obj.message.sunriseEvent || this.config.sunriseEvent,\n obj.message.sunriseLimitStart || this.config.sunriseLimitStart,\n obj.message.sunriseLimitEnd || this.config.sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n astroEvents.nextSunset = this.getAstroEvent(\n today,\n obj.message.sunsetEvent || this.config.sunsetEvent,\n obj.message.sunsetLimitStart || this.config.sunsetLimitStart,\n obj.message.sunsetLimitEnd || this.config.sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n }\n\n const result: Record = {};\n const keys = Object.keys(astroEvents).sort(\n (a, b) =>\n (astroEvents as unknown as Record)[a] -\n (astroEvents as unknown as Record)[b],\n );\n keys.forEach(key => {\n const validDate =\n (astroEvents as unknown as Record)[key] !== null &&\n !isNaN((astroEvents as unknown as Record)[key].getTime());\n\n result[key] = {\n isValidDate: validDate,\n serverTime: validDate\n ? formatHoursMinutesSeconds((astroEvents as unknown as Record)[key])\n : 'n/a',\n date: validDate\n ? (astroEvents as unknown as Record)[key].toISOString()\n : 'n/a',\n };\n });\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, result, obj.callback);\n }\n }\n break;\n }\n\n case 'calcAstro': {\n if (obj.message) {\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n\n const sunriseEvent = obj.message?.sunriseEvent || this.config.sunriseEvent;\n const sunriseLimitStart = obj.message?.sunriseLimitStart || this.config.sunriseLimitStart;\n const sunriseLimitEnd = obj.message?.sunriseLimitEnd || this.config.sunriseLimitEnd;\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const nextSunrise = this.getAstroEvent(\n today,\n sunriseEvent,\n sunriseLimitStart,\n sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n\n const sunsetEvent = obj.message?.sunsetEvent || this.config.sunsetEvent;\n const sunsetLimitStart = obj.message?.sunsetLimitStart || this.config.sunsetLimitStart;\n const sunsetLimitEnd = obj.message?.sunsetLimitEnd || this.config.sunsetLimitEnd;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const nextSunset = this.getAstroEvent(\n today,\n sunsetEvent,\n sunsetLimitStart,\n sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n\n const validDateSunrise = nextSunrise !== null && !isNaN(nextSunrise.getTime());\n const validDateSunset = nextSunset !== null && !isNaN(nextSunset.getTime());\n\n this.log.debug(\n `calcAstro sunrise: ${sunriseEvent} -> start ${sunriseLimitStart}, end: ${sunriseLimitEnd}, offset: ${sunriseOffset} - ${validDateSunrise ? nextSunrise.toISOString() : 'n/a'}`,\n );\n this.log.debug(\n `calcAstro sunset: ${sunsetEvent} -> start ${sunsetLimitStart}, end: ${sunsetLimitEnd}, offset: ${sunsetOffset} - ${validDateSunset ? nextSunset.toISOString() : 'n/a'}`,\n );\n\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n nextSunrise: {\n isValidDate: validDateSunrise,\n serverTime: validDateSunrise ? formatHoursMinutesSeconds(nextSunrise) : 'n/a',\n date: nextSunrise.toISOString(),\n },\n nextSunset: {\n isValidDate: validDateSunset,\n serverTime: validDateSunset ? formatHoursMinutesSeconds(nextSunset) : 'n/a',\n date: nextSunset.toISOString(),\n },\n },\n obj.callback,\n );\n }\n }\n break;\n }\n\n case 'debug': {\n if (!this.context.debugMode) {\n this.debugStart(obj.message);\n }\n break;\n }\n\n case 'debugStop': {\n if (!this.context.debugMode) {\n void this.debugStop().then(() => console.log('stopped'));\n }\n break;\n }\n\n case 'rulesOn': {\n this.context.rulesOpened = obj.message;\n console.log(`Enable messaging for ${this.context.rulesOpened}`);\n break;\n }\n\n case 'rulesOff': {\n // maybe if (context.rulesOpened === obj.message)\n console.log(`Disable messaging for ${this.context.rulesOpened}`);\n this.context.rulesOpened = null;\n break;\n }\n\n case 'getIoBrokerDataDir': {\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n dataDir: getAbsoluteDefaultDataDir(),\n sep,\n },\n obj.callback,\n );\n }\n break;\n }\n\n case 'prettier': {\n // Format the code with Prettier\n if (obj.message && typeof obj.message.code === 'string') {\n try {\n prettier\n .format(obj.message.code, {\n parser: obj.message.type === 'typescript' ? 'babel-ts' : 'babel',\n printWidth: 120,\n semi: true,\n tabWidth: 4,\n useTabs: false,\n trailingComma: 'all',\n singleQuote: true,\n singleAttributePerLine: true,\n endOfLine: 'lf',\n bracketSpacing: true,\n arrowParens: 'avoid',\n quoteProps: 'as-needed',\n })\n .then(formattedCode => {\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { code: formattedCode }, obj.callback);\n } else {\n this.logWithLineInfo(`Formatted code:\\n${formattedCode}`);\n }\n })\n .catch(e => {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n });\n } catch (e) {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n }\n } else {\n this.sendTo(obj.from, obj.command, { error: 'No code provided' }, obj.callback);\n }\n break;\n }\n }\n }\n\n onLog(msg: any): void {\n Object.keys(this.logSubscriptions).forEach((name: string): void =>\n this.logSubscriptions[name].forEach(handler => {\n if (\n typeof handler.cb === 'function' &&\n (handler.severity === '*' || handler.severity === msg.severity)\n ) {\n handler.sandbox.logHandler = handler.severity || '*';\n handler.cb.call(handler.sandbox, msg);\n handler.sandbox.logHandler = undefined;\n }\n }),\n );\n }\n\n logError(scriptName: string, msg: string, e: Error, offs?: number): void {\n const stack = e.stack ? e.stack.toString().split('\\n') : e ? e.toString() : '';\n if (!msg.includes('\\n')) {\n msg = msg.replace(/[: ]*$/, ': ');\n }\n if (!msg.endsWith(' ')) {\n msg += ':';\n }\n if (!scriptName.startsWith(SCRIPT_CODE_MARKER)) {\n scriptName = SCRIPT_CODE_MARKER + scriptName;\n }\n\n this.errorLogFunction.error(`${scriptName}: ${msg}${this.fixLineNo(stack[0])}`);\n for (let i = offs || 1; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.error(`${scriptName}: ${this.fixLineNo(stack[i])}`);\n }\n }\n\n logWithLineInfo(msg: string): void {\n this.errorLogFunction.warn(msg);\n\n // get current error stack\n const stack = new Error().stack?.split('\\n');\n\n if (stack) {\n for (let i = 3; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInContext|runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.warn(this.fixLineNo(stack[i]));\n }\n }\n }\n\n async main(): Promise {\n // Patch the font as it sometimes is wrong\n if (!this.context.debugMode) {\n if (await this.patchFont()) {\n this.log.debug('Font patched');\n }\n }\n\n this.log.debug(`config.subscribe (Do not subscribe all states on start): ${this.config.subscribe}`);\n\n // correct jsonConfig for admin\n const instObj: ioBroker.InstanceObject | null | undefined = await this.getForeignObjectAsync(\n `system.adapter.${this.namespace}`,\n );\n if (instObj?.common) {\n if (instObj.common.adminUI?.config !== 'json') {\n if (instObj.common.adminUI) {\n instObj.common.adminUI.config = 'json';\n } else {\n instObj.common.adminUI = { config: 'json' };\n }\n void this.setForeignObject(instObj._id, instObj);\n }\n }\n\n if (webstormDebug) {\n this.errorLogFunction = {\n error: console.error,\n warn: console.warn,\n info: console.info,\n debug: console.log,\n silly: console.log,\n };\n this.context.errorLogFunction = this.errorLogFunction;\n }\n this.activeStr = `${this.namespace}.scriptEnabled.`;\n\n this.mods.fs = new ProtectFs(this.log, getAbsoluteDefaultDataDir());\n this.mods['fs/promises'] = this.mods.fs.promises; // to avoid require('fs/promises');\n\n // try to read TS declarations\n try {\n tsAmbient = {\n 'javascript.d.ts': readFileSync(this.mods.path.join(__dirname, 'lib/javascript.d.ts'), 'utf8'),\n };\n this.tsServer.provideAmbientDeclarations(tsAmbient);\n jsDeclarationServer.provideAmbientDeclarations(tsAmbient);\n } catch (err: unknown) {\n this.log.warn(`Could not read TypeScript ambient declarations: ${err as Error}`);\n // This should not happen, so send an error report to Sentry\n if (this.supportsFeature && this.supportsFeature('PLUGINS')) {\n const sentryInstance = this.getPluginInstance('sentry');\n if (sentryInstance) {\n const sentryObject = sentryInstance.getSentryObject();\n sentryObject?.captureException(err as Error);\n }\n }\n // Keep the adapter from crashing when the included typings cannot be read\n tsAmbient = {};\n }\n\n await this.installLibraries();\n // Load the TS declarations for Node.js and all 3rd party modules\n this.loadTypeScriptDeclarations();\n\n await this.getData();\n this.context.scheduler = new Scheduler(\n this.log,\n Date,\n this.mods.suncalc,\n this.config.latitude,\n this.config.longitude,\n );\n await this.dayTimeSchedules();\n await this.sunTimeSchedules();\n await this.timeSchedule();\n\n // Warning. It could have a side effect in compact mode, so all adapters will accept self-signed certificates\n if (this.config.allowSelfSignedCerts) {\n process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';\n }\n\n const doc = await this.getObjectViewAsync('script', 'javascript', {});\n if (doc?.rows?.length) {\n // assemble global script\n for (let g = 0; g < doc.rows.length; g++) {\n const obj = doc.rows[g].value;\n if (checkIsGlobal(obj)) {\n if (obj && obj.common) {\n const engineType = (obj.common.engineType || '').toLowerCase();\n\n if (obj.common.enabled) {\n if (engineType.startsWith('typescript')) {\n // TypeScript\n this.log.info(`${obj._id}: compiling TypeScript source...`);\n // In order to compile global TypeScript, we need to do some transformations\n // 1. For top-level-await, some statements must be wrapped in an immediately-invoked async function\n // 2. If any global script uses `import`, the declarations are no longer visible if they are not exported with `declare global`\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, true);\n // The source code must be transformed in order to support top level await\n // Global scripts must not be treated as a module, otherwise their methods\n // cannot be found by the normal scripts\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash: string = hashSource(\n tsSourceHashBase + this.globalDeclarations + transformedSource,\n );\n\n let compiled: string | undefined;\n let declarations: string | undefined;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n declarations = obj.common.declarations;\n this.log.info(\n `${obj._id}: source code did not change, using cached compilation result...`,\n );\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n continue;\n }\n\n const errors = tsCompiled.diagnostics\n .map(diag => `${diag.annotatedSource}\\n`)\n .join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(\n `${obj._id}: TypeScript compilation completed with errors:\\n${errors}`,\n );\n } else {\n this.log.info(`${obj._id}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result;\n // Global scripts that have been transformed to support `import` need to have their declarations transformed aswell\n declarations = transformGlobalDeclarations(tsCompiled.declarations || '');\n\n const newCommon: {\n compiled: string | undefined;\n declarations?: string;\n sourceHash: string;\n } = {\n sourceHash,\n compiled,\n };\n if (declarations) {\n newCommon.declarations = declarations;\n }\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(obj._id); // ignore the next change and don't restart scripts\n void this.extendForeignObject(obj._id, {\n common: newCommon,\n });\n } else {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${errors}`);\n continue;\n }\n }\n this.globalScript += `${compiled}\\n`;\n // if declarations were generated, remember them\n if (declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, declarations);\n }\n } else {\n // javascript\n const sourceCode = obj.common.source;\n this.globalScript += `${sourceCode}\\n`;\n\n // try to compile the declarations so TypeScripts can use\n // functions defined in global JavaScripts\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = jsDeclarationServer.compile(filename, sourceCode);\n } catch (err: unknown) {\n this.log.warn(\n `${obj._id}: Error while generating type declarations, skipping:\\n${err as Error}`,\n );\n continue;\n }\n // if declarations were generated, remember them\n if (tsCompiled.success && tsCompiled.declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, tsCompiled.declarations);\n }\n }\n }\n }\n }\n }\n }\n\n this.globalScript = this.globalScript.replace(/\\r\\n/g, '\\n');\n this.globalScriptLines = this.globalScript.split(/\\n/g).length - 1;\n\n if (doc?.rows?.length) {\n // load all scripts\n for (let i = 0; i < doc.rows.length; i++) {\n if (!checkIsGlobal(doc.rows[i].value)) {\n void this.loadScript(doc.rows[i].value);\n }\n }\n }\n\n if (this.config.mirrorPath) {\n this.config.mirrorInstance = parseInt(this.config.mirrorInstance as unknown as string, 10) || 0;\n if (this.instance === this.config.mirrorInstance) {\n const ioBDataDir = getAbsoluteDefaultDataDir() + sep;\n this.config.mirrorPath = normalize(this.config.mirrorPath);\n let mirrorForbidden = false;\n for (let dir of forbiddenMirrorLocations) {\n dir = join(ioBDataDir, dir) + sep;\n if (dir.includes(this.config.mirrorPath) || this.config.mirrorPath.startsWith(dir)) {\n this.log.error(`The Mirror directory is not allowed to be a central ioBroker directory!`);\n this.log.error(`Directory ${this.config.mirrorPath} is not allowed to mirror files!`);\n mirrorForbidden = true;\n break;\n }\n }\n if (!mirrorForbidden) {\n this.mirror = new Mirror({\n adapter: this,\n log: this.log,\n diskRoot: this.config.mirrorPath,\n });\n }\n }\n }\n\n // CHeck setState counter per minute and stop script if too high\n this.setStateCountCheckInterval = setInterval(() => {\n Object.keys(this.scripts).forEach(id => {\n if (!this.scripts[id]) {\n return;\n }\n const currentSetStatePerMinuteCounter = this.scripts[id].setStatePerMinuteCounter;\n this.scripts[id].setStatePerMinuteCounter = 0;\n if (currentSetStatePerMinuteCounter > this.config.maxSetStatePerMinute) {\n this.scripts[id].setStatePerMinuteProblemCounter++;\n this.log.debug(\n `${id}: Script has reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute in ${this.scripts[id].setStatePerMinuteProblemCounter} consecutive minutes`,\n );\n // Allow \"too high counters\" for 1 minute for script starts or such and only\n // stop the script when lasts longer\n if (this.scripts[id].setStatePerMinuteProblemCounter > 1) {\n this.log.error(\n `${id}: Script is calling setState more than ${this.config.maxSetStatePerMinute} times per minute! Stopping Script now! Please check your script!`,\n );\n void this.stopScript(id);\n }\n } else if (this.scripts[id].setStatePerMinuteProblemCounter > 0) {\n this.scripts[id].setStatePerMinuteProblemCounter--;\n this.log.debug(\n `Script ${id} has NOT reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute. Decrease problem counter to ${this.scripts[id].setStatePerMinuteProblemCounter}`,\n );\n }\n });\n }, 60000);\n }\n\n private loadTypeScriptDeclarations(): void {\n // try to load the typings on disk for all 3rd party modules\n const packages = [\n 'node', // this provides auto-completion for most builtins\n '@iobroker/types', // this provides auto-completion for most builtins\n ];\n // Also include user-selected libraries (but only those that are also installed)\n if (typeof this.config?.libraries === 'string' && typeof this.config.libraryTypings === 'string') {\n const installedLibs = this.config.libraries\n .split(/[,;\\s]+/)\n .map(s => s.trim().split('@')[0])\n .filter(s => !!s);\n\n const wantsTypings = this.config.libraryTypings\n .split(/[,;\\s]+/)\n .map(s => s.trim())\n .filter(s => !!s);\n // Add all installed libraries the user has requested typings for to the list of packages\n for (const lib of installedLibs) {\n if (wantsTypings.includes(lib) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n // Some packages have submodules (e.g., rxjs/operators) that are not exposed through the main entry point\n // If typings are requested for them, also add them if the base module is installed\n for (const lib of wantsTypings) {\n // Extract the package name and check if we need to add it\n if (!lib.includes('/')) {\n continue;\n }\n const pkgName = lib.substring(0, lib.indexOf('/'));\n\n if (installedLibs.includes(pkgName) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n }\n for (const pkg of packages) {\n let pkgTypings = resolveTypings(\n pkg,\n this.getAdapterScopedPackageIdentifier ? this.getAdapterScopedPackageIdentifier(pkg) : pkg,\n // node needs ambient typings, so we don't wrap it in declare module\n pkg !== 'node',\n );\n if (!pkgTypings) {\n // Create the empty dummy declarations so users don't get the \"not found\" error\n // for installed packages\n if (pkg.includes('/')) {\n pkgTypings = {\n [`node_modules/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n } else {\n pkgTypings = {\n [`node_modules/@types/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n }\n }\n this.log.debug(`Loaded TypeScript definitions for \"${pkg}\": ${JSON.stringify(Object.keys(pkgTypings))}`);\n // remember the declarations for the editor\n Object.assign(tsAmbient, pkgTypings);\n // and give the language servers access to them\n this.tsServer.provideAmbientDeclarations(pkgTypings);\n jsDeclarationServer.provideAmbientDeclarations(pkgTypings);\n }\n }\n\n updateObjectContext(id: string, obj: ioBroker.Object | null | undefined): void {\n if (obj) {\n // add state to state ID's list\n if (obj.type === 'state') {\n if (!this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n this.context.channels[chn] = this.context.channels[chn] || [];\n this.context.channels[chn].push(id);\n\n parts.pop();\n const dev = parts.join('.');\n this.context.devices[dev] = this.context.devices[dev] || [];\n this.context.devices[dev].push(id);\n }\n }\n } else {\n // delete object from state ID's list\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n if (this.context.channels[chn]) {\n const posChn = this.context.channels[chn].indexOf(id);\n posChn !== -1 && this.context.channels[chn].splice(posChn, 1);\n }\n\n parts.pop();\n const dev = parts.join('.');\n if (this.context.devices[dev]) {\n const posDev = this.context.devices[dev].indexOf(id);\n posDev !== -1 && this.context.devices[dev].splice(posDev, 1);\n }\n }\n\n delete this.folderCreationVerifiedObjects[id];\n }\n\n if (!obj && this.objects[id]) {\n // objects was deleted\n this.removeFromNames(id);\n delete this.objects[id];\n } else if (obj && !this.objects[id]) {\n // object was added\n this.objects[id] = obj;\n this.addToNames(obj);\n } else if (obj && this.objects[id].common) {\n // Object just changed\n this.objects[id] = obj;\n\n const n = this.getName(id);\n let nn = this.objects[id].common ? this.objects[id].common.name : '';\n\n if (nn && typeof nn === 'object') {\n nn = nn[getLanguage()] || nn.en;\n }\n\n if (n !== nn) {\n if (n) {\n this.removeFromNames(id);\n }\n if (nn) {\n this.addToNames(obj);\n }\n }\n }\n }\n\n async stopAllScripts(): Promise {\n const scripts = Object.keys(this.scripts);\n const promises: Promise[] = [];\n for (let i = 0; i < scripts.length; i++) {\n promises.push(this.stopScript(scripts[i]));\n }\n return Promise.all(promises).then(() => {});\n }\n\n convertBackStringifiedValues(\n id: string,\n state: ioBroker.State | null | undefined,\n ): ioBroker.State | null | undefined {\n if (\n state &&\n typeof state.val === 'string' &&\n this.objects[id]?.common &&\n (this.objects[id].common.type === 'array' || this.objects[id].common.type === 'object')\n ) {\n try {\n state.val = JSON.parse(state.val);\n } catch (err: any) {\n if (id.startsWith('javascript.') || id.startsWith('0_userdata.0')) {\n this.log.info(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n } else {\n this.log.debug(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n }\n }\n }\n return state;\n }\n\n prepareStateObjectSimple(id: string, state: ioBroker.StateValue, isAck: boolean): ioBroker.State {\n // otherwise, assume that the given state is the value to be set\n const oState: ioBroker.State = { val: state, ack: isAck } as ioBroker.State;\n\n return this.prepareStateObject(id, oState);\n }\n\n prepareStateObject(id: string, state: ioBroker.SettableState | null): ioBroker.State {\n let oState: ioBroker.State;\n\n if (state && typeof state === 'object') {\n oState = state as ioBroker.State;\n } else {\n oState = { val: null } as ioBroker.State;\n }\n\n if (this.config.subscribe) {\n return oState;\n }\n // set other values to have a full state object\n // mirrors logic from statesInRedis\n if (oState.ts === undefined) {\n oState.ts = Date.now();\n }\n\n if (oState.q === undefined) {\n oState.q = 0;\n }\n\n oState.from =\n typeof oState.from === 'string' && oState.from !== '' ? oState.from : `system.adapter.${this.namespace}`;\n\n if (oState.lc === undefined) {\n const formerStateValue = this.interimStateValues[id] || this.states[id];\n if (!formerStateValue) {\n oState.lc = oState.ts;\n } else {\n // isDeepStrictEqual works on objects and primitive values\n const hasChanged = !isDeepStrictEqual(formerStateValue.val, oState.val);\n if (!formerStateValue.lc || hasChanged) {\n oState.lc = oState.ts;\n } else {\n oState.lc = formerStateValue.lc;\n }\n }\n }\n\n return oState;\n }\n\n async getData(): Promise {\n await this.subscribeForeignObjectsAsync('*');\n\n if (!this.config.subscribe) {\n await this.subscribeForeignStatesAsync('*');\n } else {\n await this.subscribeStatesAsync('debug.to');\n await this.subscribeStatesAsync('scriptEnabled.*');\n }\n\n this.log.info('requesting all states');\n\n const statesPromise = this.getForeignStatesAsync('*')\n .then(res => {\n if (!res) {\n this.log.error(`Could not initialize states: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n if (!this.config.subscribe) {\n this.states = Object.assign(res, this.states);\n this.context.states = this.states;\n\n this.addGetProperty(this.states);\n }\n\n // remember all IDs\n for (const id in res) {\n if (Object.prototype.hasOwnProperty.call(res, id)) {\n this.stateIds.push(id);\n }\n }\n this.statesInitDone = true;\n this.log.info('received all states');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize states: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n this.log.info('requesting all objects');\n\n const objectsPromise = this.getObjectListAsync({ include_docs: true })\n .then(res => {\n if (!res?.rows) {\n this.log.error(`Could not initialize objects: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n this.objects = {};\n this.context.objects = this.objects;\n for (let i = 0; i < res.rows.length; i++) {\n if (!res.rows[i].doc) {\n this.log.debug(`Got empty object for index ${i} (${res.rows[i].id})`);\n continue;\n }\n if (this.objects[res.rows[i].doc._id] === undefined) {\n // If was already there ignore\n this.objects[res.rows[i].doc._id] = res.rows[i].doc;\n }\n this.objects[res.rows[i].doc._id].type === 'enum' && this._enums.push(res.rows[i].doc._id);\n\n // Collect all names\n this.addToNames(this.objects[res.rows[i].doc._id]);\n }\n this.addGetProperty(this.objects);\n\n const systemConfig = this.objects['system.config'];\n\n // set language for debug messages\n if (systemConfig?.common?.language) {\n setLanguage(systemConfig.common.language);\n this.language = systemConfig.common.language;\n this.context.language = this.language as ioBroker.Languages;\n } else if (this.language) {\n setLanguage(this.language);\n this.context.language = this.language;\n }\n\n // try to use system coordinates\n if (this.config.useSystemGPS) {\n if (systemConfig?.common?.latitude || systemConfig?.common?.longitude) {\n this.config.latitude = systemConfig.common.latitude;\n this.config.longitude = systemConfig.common.longitude;\n } else if (this.latitude && this.longitude) {\n this.config.latitude = this.latitude;\n this.config.longitude = this.longitude;\n }\n }\n this.config.latitude = parseFloat(this.config.latitude as unknown as string);\n this.config.longitude = parseFloat(this.config.longitude as unknown as string);\n\n if (isNaN(this.config.latitude)) {\n this.log.warn(`Configured latitude is not a number - check (instance/system) configuration`);\n } else if (this.config.latitude < -90 || this.config.latitude > 90) {\n this.log.warn(\n `Configured latitude \"${this.config.latitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n if (isNaN(this.config.longitude)) {\n this.log.warn(`Configured longitude is not a number - check (instance/system) configuration`);\n } else if (this.config.longitude < -180 || this.config.longitude > 180) {\n this.log.warn(\n `Configured longitude \"${this.config.longitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n this.config.sunriseEvent = this.config.sunriseEvent || 'nightEnd';\n this.config.sunriseOffset = this.config.sunriseOffset || 0;\n this.config.sunriseLimitStart = this.config.sunriseLimitStart || '06:00';\n this.config.sunriseLimitEnd = this.config.sunriseLimitEnd || '12:00';\n\n this.config.sunsetEvent = this.config.sunsetEvent || 'dusk';\n this.config.sunsetOffset = this.config.sunsetOffset || 0;\n this.config.sunsetLimitStart = this.config.sunsetLimitStart || '18:00';\n this.config.sunsetLimitEnd = this.config.sunsetLimitEnd || '23:00';\n\n this.objectsInitDone = true;\n this.log.info('received all objects');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize objects: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n return Promise.all([statesPromise, objectsPromise]).then(() => {});\n }\n\n async createActiveObject(id: string, enabled: boolean): Promise {\n const idActive = `${this.namespace}.scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idActive]) {\n this.objects[idActive] = {\n _id: idActive,\n common: {\n name: `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'controls script activity',\n type: 'boolean',\n write: true,\n read: true,\n role: 'switch.active',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idActive, this.objects[idActive]);\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[idActive] = intermediateStateValue;\n }\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idActive);\n if (state && state.val !== enabled) {\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[id] = intermediateStateValue;\n }\n }\n }\n }\n\n async createProblemObject(id: string): Promise {\n const idProblem = `${this.namespace}.scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idProblem]) {\n this.objects[idProblem] = {\n _id: idProblem,\n common: {\n name: `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'Script has a problem',\n type: 'boolean',\n expert: true,\n write: false,\n read: true,\n role: 'indicator.error',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idProblem, this.objects[idProblem]);\n await this.setForeignStateAsync(idProblem, false, true);\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idProblem);\n if (state && state.val !== false) {\n await this.setForeignStateAsync(idProblem, false, true);\n }\n }\n }\n\n addToNames(obj: ioBroker.Object): void {\n const id = obj._id;\n\n if (obj.common?.name) {\n let name = obj.common.name;\n if (name && typeof name === 'object') {\n name = name[getLanguage()] || name.en;\n }\n if (!name || typeof name !== 'string') {\n // TODO, take name in current language\n return;\n }\n\n if (!this.names[name]) {\n this.names[name] = id;\n } else {\n // convert to array\n if (!Array.isArray(this.names[name])) {\n this.names[name] = [this.names[name] as string];\n }\n\n (this.names[name] as string[]).push(id);\n }\n }\n }\n\n removeFromNames(id: string): void {\n const n = this.getName(id);\n\n if (n) {\n if (Array.isArray(this.names[n])) {\n const pos = this.names[n].indexOf(id);\n if (pos > -1) {\n this.names[n].splice(pos, 1);\n\n if (this.names[n].length === 1) {\n this.names[n] = this.names[n][0];\n }\n }\n } else {\n delete this.names[n];\n }\n }\n }\n\n getName(id: string): string | null {\n for (const n in this.names) {\n if (this.names[n] && Array.isArray(this.names[n])) {\n if (this.names[n].includes(id)) {\n return n;\n }\n } else if (this.names[n] === id) {\n return n;\n }\n }\n\n return null;\n }\n\n async installNpm(npmLib: string): Promise {\n return new Promise((resolve, reject) => {\n const path = __dirname;\n\n // Also, set the working directory (cwd) of the process instead of using --prefix\n // because that has ugly bugs on Windows\n const cmd = `npm install ${npmLib} --omit=dev`;\n this.log.info(`Installing ${npmLib} into ${__dirname} - cmd: ${cmd}`);\n\n // System call used for update of js-controller itself,\n // because during the installation the npm packet will be deleted too, but some files must be loaded even during the installation process.\n const child = this.mods.child_process.exec(cmd, {\n windowsHide: true,\n cwd: path,\n });\n\n child.stdout?.on('data', buf => this.log.info(buf.toString('utf8')));\n\n child.stderr?.on('data', buf => this.log.error(buf.toString('utf8')));\n\n child.on('err', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n child.on('error', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n\n child.on('exit', (code: number /* , signal */) => {\n if (code) {\n this.log.error(`Cannot install ${npmLib}: ${code}`);\n reject(new Error(`Cannot install ${npmLib}: ${code}`));\n }\n // command succeeded\n resolve(code);\n });\n });\n }\n\n async installLibraries(): Promise {\n if (typeof this.config?.libraries !== 'string') {\n this.config.libraries = '';\n }\n\n const libraries: string[] = this.config.libraries\n .split(/[,;\\s]+/)\n .map(d => d.trim())\n .filter(d => d);\n\n this.log.debug(`Custom libraries in config: \"${this.config.libraries}\": ${JSON.stringify(libraries)}`);\n\n let installedNodeModules: string[] = [];\n const keepModules: string[] = [];\n\n // js-controller >= 6.x\n if (typeof this.listInstalledNodeModules === 'function') {\n installedNodeModules = await this.listInstalledNodeModules();\n\n this.log.debug(`Found installed libraries: ${JSON.stringify(installedNodeModules)}`);\n }\n\n for (const lib of libraries) {\n let depName = lib;\n let version = 'latest';\n\n if (depName.includes('@') && depName.lastIndexOf('@') > 0) {\n const parts = depName.split('@');\n version = parts.pop() ?? 'latest';\n depName = parts.join('@');\n }\n\n /** The real module name, because the dependency can be an url too */\n let moduleName = depName;\n\n if (URL.canParse(depName)) {\n moduleName = await requestModuleNameByUrl(depName);\n\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\" (from ${depName})`);\n } else {\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\"`);\n }\n\n keepModules.push(moduleName);\n\n // js-controller >= 6.x\n if (typeof this.installNodeModule === 'function') {\n try {\n const result = await this.installNodeModule(depName, { version });\n if (result.success) {\n this.log.debug(`Installed custom library: \"${moduleName}@${version}\"`);\n\n const importedModule: any = await this.importNodeModule(moduleName);\n (this.mods as Record)[moduleName] = importedModule.default ?? importedModule;\n } else {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\"`);\n }\n } catch (err: unknown) {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\": ${err as Error}`);\n }\n } else if (!existsSync(`${__dirname}/node_modules/${depName}/package.json`)) {\n // js-controller < 6.x\n this.log.info(`Installing custom library (legacy mode): \"${lib}\"`);\n\n try {\n await this.installNpm(lib);\n this.log.info(`Installed custom npm package (legacy mode): \"${lib}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot install custom npm package \"${lib}\" (legacy mode): ${err.toString()}`);\n }\n }\n }\n\n // js-controller >= 6.x\n if (typeof this.uninstallNodeModule === 'function') {\n for (const installedNodeModule of installedNodeModules) {\n if (!keepModules.includes(installedNodeModule)) {\n try {\n await this.uninstallNodeModule(installedNodeModule);\n\n this.log.info(`Removed custom npm package: \"${installedNodeModule}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot remove custom npm package ${installedNodeModule}: ${err.toString()}`);\n }\n }\n }\n }\n }\n\n createVM(source: string, name: string, wrapAsync: boolean): false | JsScript {\n if (this.context.debugMode && name !== this.context.debugMode) {\n return false;\n }\n\n if (!this.context.debugMode) {\n const logSubscriptionsText =\n \"\\n;\\nlog(`registered ${__engine.__subscriptions} subscription${__engine.__subscriptions === 1 ? '' : 's'},\" +\n \" ${__engine.__schedules} schedule${__engine.__schedules === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsMessage} message${__engine.__subscriptionsMessage === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsLog} log${__engine.__subscriptionsLog === 1 ? '' : 's'}\" +\n \" and ${__engine.__subscriptionsFile} file subscription${__engine.__subscriptionsFile === 1 ? '' : 's'}`);\\n\";\n\n if (wrapAsync) {\n source = `(async () => {\\n${source}\\n${logSubscriptionsText}\\n})();`;\n } else {\n if (source.endsWith('export {};\\n')) {\n // If the source ends with \"export {};\" place the log subscriptions before it\n source = source.slice(0, -11); // remove \"export {};\\n\"\n source = `${source}\\n${logSubscriptionsText}\\nexport {};\\n`;\n } else {\n source = `${source}\\n${logSubscriptionsText}`;\n }\n }\n } else {\n if (wrapAsync) {\n source = `(async () => {debugger;\\n${source}\\n})();`;\n } else {\n source = `debugger;${source}`;\n }\n }\n\n try {\n const options: ScriptOptions = {\n filename: name,\n // displayErrors: true,\n // lineOffset: this.globalScriptLines\n };\n return {\n script: new Script(source, options),\n } as JsScript;\n } catch (err: unknown) {\n this.logError(name, `compile failed at`, err as Error);\n return false;\n }\n }\n\n execute(script: JsScript, name: string, engineType: ScriptType, verbose: boolean, debug: boolean): void {\n script.intervals = [];\n script.timeouts = [];\n script.schedules = [];\n script.wizards = [];\n script.name = name;\n script.engineType = engineType;\n script._id = Math.floor(Math.random() * 0xffffffff);\n script.subscribes = {};\n script.subscribesFile = {};\n script.setStatePerMinuteCounter = 0;\n script.setStatePerMinuteProblemCounter = 0;\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: false,\n ack: true,\n expire: 1000,\n });\n\n const sandbox = sandBox(script, name, verbose, debug, this.context);\n\n try {\n script.script.runInNewContext(sandbox, {\n filename: name,\n displayErrors: true,\n // lineOffset: this.globalScriptLines\n });\n } catch (err: unknown) {\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: true,\n ack: true,\n c: 'execute',\n });\n this.logError(name, 'Error by run:', err as Error);\n }\n }\n\n unsubscribe(id: string | RegExp | string[]): void {\n if (!id) {\n this.log.warn('unsubscribe: empty name');\n return;\n }\n\n if (Array.isArray(id)) {\n id.forEach(sub => unsubscribe(sub));\n return;\n }\n\n if (id.constructor && id.constructor.name === 'RegExp') {\n // adapter.log.warn('unsubscribe: todo - process regexp');\n return;\n }\n\n if (typeof id !== 'string') {\n this.log.error(`unsubscribe: invalid type of id - ${typeof id}`);\n return;\n }\n const parts = id.split('.');\n const _adapter = `system.adapter.${parts[0]}.${parts[1]}`;\n if (this.objects[_adapter]?.common?.subscribable) {\n const a = `${parts[0]}.${parts[1]}`;\n const alive = `system.adapter.${a}.alive`;\n if (this.adapterSubs[alive]) {\n const pos = this.adapterSubs[alive].indexOf(id);\n if (pos !== -1) {\n this.adapterSubs[alive].splice(pos, 1);\n }\n if (!this.adapterSubs[alive].length) {\n delete this.adapterSubs[alive];\n }\n }\n this.sendTo(a, 'unsubscribe', id);\n }\n }\n\n // Analyze if logs are still required or not\n updateLogSubscriptions(): void {\n let found = false;\n // go through all scripts and check if some script still requires logs\n Object.keys(this.logSubscriptions).forEach(scriptName => {\n if (!this.logSubscriptions?.[scriptName] || !this.logSubscriptions[scriptName].length) {\n delete this.logSubscriptions[scriptName];\n } else {\n found = true;\n }\n });\n\n if (this.requireLog) {\n if (found && !this.logSubscribed) {\n this.logSubscribed = true;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Subscribed to log messages (found logSubscriptions)`);\n } else if (!found && this.logSubscribed) {\n this.logSubscribed = false;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Unsubscribed from log messages (not found logSubscriptions)`);\n }\n }\n }\n\n async stopScript(name: string): Promise {\n this.log.info(`${name}: Stopping script`);\n\n await this.setState(`scriptEnabled.${name.substring(SCRIPT_CODE_MARKER.length)}`, false, true);\n\n if (this.messageBusHandlers[name]) {\n delete this.messageBusHandlers[name];\n }\n\n if (this.tempDirectories[name]) {\n try {\n this.mods.fs.rmSync(this.tempDirectories[name], { recursive: true });\n\n this.log.debug(`${name}: Removed temp directory: ${this.tempDirectories[name]}`);\n } catch {\n this.log.warn(`${name}: Unable to remove temp directory: ${this.tempDirectories[name]}`);\n }\n\n delete this.tempDirectories[name];\n }\n\n if (this.logSubscriptions[name]) {\n delete this.logSubscriptions[name];\n this.updateLogSubscriptions();\n }\n\n if (this.scripts[name]) {\n // Remove from subscriptions\n this.context.isEnums = false;\n if (this.config.subscribe) {\n // check all subscribed IDs\n Object.keys(this.scripts[name].subscribes).forEach(id => {\n if (this.subscribedPatterns[id]) {\n this.subscribedPatterns[id] -= this.scripts[name].subscribes[id];\n if (this.subscribedPatterns[id] <= 0) {\n this.unsubscribeForeignStates(id);\n delete this.subscribedPatterns[id];\n if (this.states[id]) {\n delete this.states[id];\n }\n }\n }\n });\n }\n\n for (let i = this.subscriptions.length - 1; i >= 0; i--) {\n if (this.subscriptions[i].name === name) {\n const sub = this.subscriptions.splice(i, 1)[0];\n if (sub?.pattern.id) {\n this.unsubscribe(sub.pattern.id);\n }\n } else {\n if (\n (!this.context.isEnums && this.subscriptions[i].pattern.enumName) ||\n this.subscriptions[i].pattern.enumId\n ) {\n this.context.isEnums = true;\n }\n }\n }\n\n // check all subscribed files\n Object.keys(this.scripts[name].subscribesFile).forEach(key => {\n if (this.subscribedPatternsFile[key]) {\n this.subscribedPatternsFile[key] -= this.scripts[name].subscribesFile[key];\n if (this.subscribedPatternsFile[key] <= 0) {\n const [id, file] = key.split('$%$');\n void this.unsubscribeForeignFiles(id, file);\n delete this.subscribedPatternsFile[key];\n }\n }\n });\n for (let i = this.subscriptionsFile.length - 1; i >= 0; i--) {\n if (this.subscriptionsFile[i].name === name) {\n this.subscriptionsFile.splice(i, 1);\n }\n }\n\n for (let i = this.subscriptionsObject.length - 1; i >= 0; i--) {\n if (this.subscriptionsObject[i].name === name) {\n const sub = this.subscriptionsObject.splice(i, 1)[0];\n if (sub) {\n this.unsubscribeForeignObjects(sub.pattern);\n }\n }\n }\n\n // Stop all timeouts\n for (let i = 0; i < this.scripts[name].timeouts.length; i++) {\n clearTimeout(this.scripts[name].timeouts[i]);\n }\n // Stop all intervals\n for (let i = 0; i < this.scripts[name].intervals.length; i++) {\n clearInterval(this.scripts[name].intervals[i]);\n }\n // Stop all scheduled jobs\n for (let i = 0; i < this.scripts[name].schedules.length; i++) {\n if (this.scripts[name].schedules[i]) {\n const _name = this.scripts[name].schedules[i].name;\n if (!this.mods.nodeSchedule.cancelJob(this.scripts[name].schedules[i])) {\n this.log.error(`${name}: Error by canceling scheduled job \"${_name}\"`);\n }\n }\n }\n\n // Stop all time wizards jobs\n if (this.context.scheduler) {\n for (let i = 0; i < this.scripts[name].wizards.length; i++) {\n if (this.scripts[name].wizards[i]) {\n this.context.scheduler.remove(this.scripts[name].wizards[i]);\n }\n }\n }\n\n // if callback for on stop\n if (typeof this.scripts[name].onStopCb === 'function') {\n this.scripts[name].onStopTimeout =\n parseInt(this.scripts[name].onStopTimeout as unknown as string, 10) || 1000;\n\n await new Promise(resolve => {\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n if (timeout) {\n timeout = null;\n resolve(true);\n }\n }, this.scripts[name].onStopTimeout);\n\n try {\n this.scripts[name].onStopCb(() => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n resolve(true);\n }\n });\n } catch (err: unknown) {\n this.log.error(`${name}: error in onStop callback: ${err as Error}`);\n }\n });\n }\n\n delete this.scripts[name];\n return true;\n }\n return false;\n }\n\n async prepareScript(obj: ioBroker.ScriptObject): Promise {\n if (obj?.common?.enabled && this.debugState.scriptName === obj._id) {\n const id = obj._id;\n await this.debugStop();\n this.log.info(`${id}: Debugging was stopped, because started in normal mode`);\n return this.prepareScript(obj);\n }\n\n if (\n obj?.common?.source &&\n (obj.common.enabled || this.context.debugMode === obj._id) &&\n obj.common.engine === `system.adapter.${this.namespace}`\n ) {\n const name = obj._id;\n\n const nameId = name.substring(SCRIPT_CODE_MARKER.length);\n if (!nameId.length || nameId.endsWith('.')) {\n this.log.error(`${name}: Script name \"${name}\" is invalid!`);\n return false;\n }\n const idActive = `scriptEnabled.${nameId}`;\n if (!this.config.subscribe) {\n this.interimStateValues[idActive] = this.prepareStateObjectSimple(\n `${this.namespace}.${idActive}`,\n true,\n true,\n );\n }\n await this.setState(idActive, true, true);\n obj.common.engineType = obj.common.engineType || '';\n\n if (\n (obj.common.engineType as ScriptType).toLowerCase().startsWith('javascript') ||\n (obj.common.engineType as ScriptType) === 'Blockly' ||\n (obj.common.engineType as ScriptType) === 'Rules'\n ) {\n // Javascript\n this.log.info(`${name}: start JavaScript (${obj.common.engineType})`);\n\n let sourceFn = name;\n if (webstormDebug) {\n const fn = name.replace(/^script\\.js\\./, '').replace(/\\./g, '/');\n sourceFn = this.mods.path.join(webstormDebug, `${fn}.js`);\n }\n const createdScript = this.createVM(`${this.globalScript}\\n${obj.common.source}`, sourceFn, true);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n sourceFn,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n if (obj.common.engineType.toLowerCase().startsWith('typescript')) {\n // TypeScript\n this.log.info(`${name}: Compiling TypeScript source`);\n // The source code must be transformed in order to support top level await\n // and to force TypeScript to compile the code as a module\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, false);\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash = hashSource(tsSourceHashBase + this.globalDeclarations + transformedSource);\n\n let compiled: string;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n this.log.info(`${name}: source code did not change, using cached compilation result...`);\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(name);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n return false;\n }\n\n const errors = tsCompiled.diagnostics.map(diag => `${diag.annotatedSource}\\n`).join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(`${name}: TypeScript compilation had errors:\\n${errors}`);\n } else {\n this.log.info(`${name}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result || '';\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(name); // ignore the next change and don't restart scripts\n await this.extendForeignObjectAsync(name, {\n common: {\n sourceHash,\n compiled,\n },\n });\n } else {\n this.log.error(`${name}: TypeScript compilation failed:\\n${errors}`);\n return false;\n }\n }\n const createdScript: JsScript | false = this.createVM(`${this.globalScript}\\n${compiled}`, name, false);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n name,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n this.log.warn(`${obj._id}: Unknown engine type: ${obj.common.engineType}`);\n return false;\n }\n\n let _name: string;\n if (obj?._id) {\n _name = obj._id;\n const scriptIdName = _name.substring(SCRIPT_CODE_MARKER.length);\n\n if (!scriptIdName.length || scriptIdName.endsWith('.')) {\n this.log.error(`${obj._id}: Script name \"${_name}\" is invalid!`);\n return false;\n }\n await this.setState(`scriptEnabled.${scriptIdName}`, false, true);\n }\n if (!obj) {\n this.log.error('Invalid script');\n }\n return false;\n }\n\n async loadScriptById(id: string): Promise {\n let obj: ioBroker.ScriptObject | null | undefined;\n try {\n obj = (await this.getForeignObjectAsync(id)) as ioBroker.ScriptObject | null | undefined;\n } catch (err: any) {\n this.log.error(`${id}: Invalid script: ${err}`);\n }\n if (!obj) {\n return false;\n }\n return this.loadScript(obj);\n }\n\n async loadScript(nameOrObject: ioBroker.ScriptObject): Promise {\n // create states for scripts\n await this.createActiveObject(nameOrObject._id, !!nameOrObject?.common?.enabled);\n await this.createProblemObject(nameOrObject._id);\n return this.prepareScript(nameOrObject);\n }\n\n getAstroEvent(\n date: Date,\n astroEvent: AstroEventName,\n start: string,\n end: string,\n offsetMinutes: number | string,\n isDayEnd: boolean,\n latitude: number,\n longitude: number,\n useNextDay?: boolean,\n ): Date {\n let ts: Date = this.mods.suncalc.getTimes(date, latitude, longitude)[astroEvent];\n\n if (!ts || ts.getTime().toString() === 'NaN') {\n ts = isDayEnd ? getNextTimeEvent(end, useNextDay) : getNextTimeEvent(start, useNextDay);\n }\n ts.setMilliseconds(0);\n ts.setMinutes(ts.getMinutes() + (parseInt(offsetMinutes as unknown as string, 10) || 0));\n\n const [timeHoursStart, timeMinutesStart] = start.split(':');\n const nTimeHoursStart = parseInt(timeHoursStart, 10);\n const nTimeMinutesStart = parseInt(timeMinutesStart, 10) || 0;\n\n if (\n ts.getHours() < nTimeHoursStart ||\n (ts.getHours() === nTimeHoursStart && ts.getMinutes() < nTimeMinutesStart)\n ) {\n ts = getNextTimeEvent(start, useNextDay);\n ts.setSeconds(0);\n }\n\n const [timeHoursEnd, timeMinutesEnd] = end.split(':');\n const nTimeHoursEnd = parseInt(timeHoursEnd, 10);\n const nTimeMinutesEnd = parseInt(timeMinutesEnd, 10) || 0;\n\n if (ts.getHours() > nTimeHoursEnd || (ts.getHours() === nTimeHoursEnd && ts.getMinutes() > nTimeMinutesEnd)) {\n ts = getNextTimeEvent(end, useNextDay);\n ts.setSeconds(0);\n }\n\n // if event in the past\n if (date > ts && useNextDay) {\n // take the next day\n ts.setDate(ts.getDate() + 1);\n }\n return ts;\n }\n\n async timeSchedule(): Promise {\n const now = new Date();\n let hours = now.getHours();\n const minutes = now.getMinutes();\n if (this.timeSettings.format12) {\n if (hours > 12) {\n hours -= 12;\n }\n }\n let sHours: string;\n if (this.timeSettings.leadingZeros) {\n sHours = hours.toString().padStart(2, '0');\n } else {\n sHours = hours.toString();\n }\n\n await this.setState('variables.dayTime', {\n val: `${sHours}:${minutes.toString().padStart(2, '0')}`,\n ack: true,\n });\n\n now.setMinutes(now.getMinutes() + 1);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const interval = now.getTime() - Date.now();\n this.timeScheduleTimer = setTimeout(() => this.timeSchedule(), interval);\n }\n\n async dayTimeSchedules(): Promise {\n // get astrological event\n if (\n this.config.latitude === undefined ||\n this.config.longitude === undefined ||\n (this.config.latitude as unknown as string) === '' ||\n (this.config.longitude as unknown as string) === '' ||\n this.config.latitude === null ||\n this.config.longitude === null\n ) {\n this.log.error('Longitude or latitude does not set. Cannot use astro.');\n return;\n }\n\n // Calculate the next event today\n const todayDate = getAstroStartOfDay();\n const nowDate = new Date();\n\n const todaySunrise = this.getAstroEvent(\n todayDate,\n this.config.sunriseEvent,\n this.config.sunriseLimitStart,\n this.config.sunriseLimitEnd,\n this.config.sunriseOffset,\n false,\n this.config.latitude,\n this.config.longitude,\n );\n const todaySunset = this.getAstroEvent(\n todayDate,\n this.config.sunsetEvent,\n this.config.sunsetLimitStart,\n this.config.sunsetLimitEnd,\n this.config.sunsetOffset,\n true,\n this.config.latitude,\n this.config.longitude,\n );\n\n // Sunrise\n let sunriseTimeout = todaySunrise.getTime() - nowDate.getTime();\n if (sunriseTimeout < 0 || sunriseTimeout > 3600000) {\n sunriseTimeout = 3600000;\n }\n\n // Sunset\n let sunsetTimeout = todaySunset.getTime() - nowDate.getTime();\n if (sunsetTimeout < 0 || sunsetTimeout > 3600000) {\n sunsetTimeout = 3600000;\n }\n\n const isDayTime: ioBroker.State | null | undefined = await this.getStateAsync('variables.isDayTime');\n let isDay: boolean;\n if (sunriseTimeout < 5000) {\n isDay = true;\n } else if (sunsetTimeout < 5000) {\n isDay = false;\n } else {\n // check if in between\n isDay = nowDate.getTime() > todaySunrise.getTime() - 60000 && nowDate <= todaySunset;\n }\n\n const valDayTime = isDayTime ? !!isDayTime.val : false;\n if (valDayTime !== isDay || isDayTime === null) {\n await this.setState('variables.isDayTime', isDay, true);\n }\n\n const dayLightSaving: ioBroker.State | null | undefined =\n await this.getStateAsync('variables.isDaylightSaving');\n const isDayLightSaving = dstOffsetAtDate(nowDate) !== 0;\n const val = dayLightSaving ? !!dayLightSaving.val : false;\n\n if (val !== isDayLightSaving || dayLightSaving === null) {\n await this.setState('variables.isDaylightSaving', isDayLightSaving, true);\n }\n\n let nextTimeout = sunriseTimeout;\n if (sunriseTimeout > sunsetTimeout) {\n nextTimeout = sunsetTimeout;\n }\n nextTimeout = nextTimeout - 3000;\n if (nextTimeout < 3000) {\n nextTimeout = 3000;\n }\n\n this.dayScheduleTimer = setTimeout(() => this.dayTimeSchedules(), nextTimeout);\n }\n\n stopTimeSchedules(): void {\n if (this.dayScheduleTimer) {\n clearTimeout(this.dayScheduleTimer);\n this.dayScheduleTimer = null;\n }\n if (this.sunScheduleTimer) {\n clearTimeout(this.sunScheduleTimer);\n this.sunScheduleTimer = null;\n }\n if (this.timeScheduleTimer) {\n clearTimeout(this.timeScheduleTimer);\n this.timeScheduleTimer = null;\n }\n }\n\n async patchFont(): Promise {\n let stat: Stats | undefined;\n let dbFile: Buffer | undefined;\n let fileName = `${__dirname}/../admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n let jsonFileName = `${__dirname}/../admin/vsFont/codicon.json`;\n try {\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n if (!stat) {\n jsonFileName = `${__dirname}/admin/vsFont/codicon.json`;\n fileName = `${__dirname}/admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n }\n const _dbFile = await this.readFileAsync(\n 'javascript.admin',\n `vs/base/browser/ui/codicons/codicon/codicon.ttf`,\n );\n if (_dbFile?.file) {\n dbFile = _dbFile.file as Buffer;\n }\n } catch {\n // ignore\n }\n\n if (stat?.size !== 73452 || dbFile?.byteLength !== 73452) {\n try {\n const buffer = Buffer.from(JSON.parse(readFileSync(jsonFileName).toString()), 'base64');\n\n const jszip = await import('jszip');\n const zip = await jszip.loadAsync(buffer);\n let data: ArrayBuffer | undefined;\n if (zip) {\n data = await zip.file('codicon.ttf')?.async('arraybuffer');\n if (data?.byteLength !== 73452) {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n } else {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n writeFileSync(fileName, Buffer.from(data));\n // upload this file\n await this.writeFileAsync(\n 'javascript.admin',\n 'vs/base/browser/ui/codicons/codicon/codicon.ttf',\n Buffer.from(data),\n );\n return true;\n } catch (err: unknown) {\n this.log.error(`Cannot patch font: ${err as Error}`);\n return false;\n }\n }\n return false;\n }\n\n async sunTimeSchedules(): Promise {\n if (this.config.createAstroStates) {\n if (!isNaN(this.config.longitude) && !isNaN(this.config.longitude)) {\n const calcDate = getAstroStartOfDay();\n\n const times = this.mods.suncalc.getTimes(calcDate, this.config.latitude, this.config.longitude);\n\n this.log.debug(`[sunTimeSchedules] Times: ${JSON.stringify(times)}`);\n\n for (const t in times) {\n try {\n const objId = `variables.astro.${t}`;\n\n await this.setObjectNotExistsAsync(objId, {\n type: 'state',\n common: {\n name: `Astro ${t}`,\n type: 'string',\n role: 'value',\n read: true,\n write: false,\n },\n native: {},\n });\n\n if (times[t] !== null && !isNaN(times[t].getTime())) {\n const timeFormatted = formatHoursMinutesSeconds(times[t]);\n await this.setState(objId, {\n val: timeFormatted,\n c: times[t].toISOString(),\n ack: true,\n });\n } else {\n await this.setState(objId, { val: null, c: 'n/a', ack: true, q: 0x01 });\n }\n } catch (err: unknown) {\n this.log.error(\n `[sunTimeSchedules] Unable to set state for astro time \"${t}\" (${times[t].getTime()}): ${err as Error}`,\n );\n }\n }\n\n const todayDate = new Date();\n todayDate.setHours(0);\n todayDate.setMinutes(0);\n todayDate.setSeconds(1);\n todayDate.setMilliseconds(0);\n todayDate.setDate(todayDate.getDate() + 1);\n\n this.log.debug(`[sunTimeSchedules] Next: ${todayDate.toISOString()}`);\n this.sunScheduleTimer = setTimeout(() => this.sunTimeSchedules(), todayDate.getTime() - Date.now());\n }\n } else {\n // remove astro states if disabled\n this.delObject('variables.astro', { recursive: true });\n }\n }\n\n /**\n * Redirects the virtual-tsc log output to the ioBroker log\n */\n tsLog = (message: string, severity?: ioBroker.LogLevel): void => {\n // shift the severities around, we don't care about the small details\n if (!severity || severity === 'info') {\n severity = 'debug';\n } else if (severity === 'debug') {\n // Don't spam build logs on Travis\n if (isCI) {\n return;\n }\n severity = 'silly';\n }\n\n if (this?.log) {\n this.log[severity](message);\n } else {\n console.log(`[${severity.toUpperCase()}] ${message}`);\n }\n };\n\n addGetProperty(object: Record): void {\n try {\n Object.defineProperty(object, 'get', {\n value: function (id: string): any {\n return this[id] || this[`${this.namespace}.${id}`];\n },\n enumerable: false,\n });\n } catch {\n console.error('Cannot install get property');\n }\n }\n\n /**\n * Add declarations for global scripts\n *\n * @param scriptID - The current script the declarations were generated from\n * @param declarations - Declarations from script\n */\n provideDeclarationsForGlobalScript(scriptID: string, declarations: string): void {\n // Remember which declarations this global script had access to,\n // we need this so the editor doesn't show a duplicate identifier error\n if (this.globalDeclarations != null && this.globalDeclarations !== '') {\n this.knownGlobalDeclarationsByScript[scriptID] = this.globalDeclarations;\n }\n // and concatenate the global declarations for the next scripts\n this.globalDeclarations += `${declarations}\\n`;\n // remember all previously generated global declarations,\n // so global scripts can reference each other\n const globalDeclarationPath = 'global.d.ts';\n tsAmbient[globalDeclarationPath] = this.globalDeclarations;\n // make sure the next script compilation has access to the updated declarations\n this.tsServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n jsDeclarationServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n }\n\n fixLineNo(line: string): string {\n if (line.includes('javascript.js:')) {\n return line;\n }\n if (!/scripts?\\.js[.\\\\/]/.test(line)) {\n return line;\n }\n if (/:(\\d+):/.test(line)) {\n line = line.replace(\n /:(\\d+):/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}:`,\n ); // one line for 'async function ()'\n } else {\n line = line.replace(\n /:(\\d+)$/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}`,\n ); // one line for 'async function ()'\n }\n return line;\n }\n\n async debugStop(): Promise {\n if (this.debugState.child) {\n this.debugSendToInspector({ cmd: 'end' });\n this.debugState.endTimeout = setTimeout(() => {\n this.debugState.endTimeout = null;\n this.debugState.child?.kill('SIGTERM');\n }, 500);\n this.debugState.promiseOnEnd = this.debugState.promiseOnEnd || Promise.resolve(0);\n } else {\n this.debugState.promiseOnEnd = Promise.resolve(0);\n }\n\n await this.debugState.promiseOnEnd;\n\n this.debugState.child = null;\n this.debugState.running = false;\n this.debugState.scriptName = '';\n if (this.debugState.endTimeout) {\n clearTimeout(this.debugState.endTimeout);\n this.debugState.endTimeout = null;\n }\n }\n\n async debugDisableScript(id: string | undefined): Promise {\n if (id) {\n const obj = this.objects[id];\n if (obj?.common?.enabled) {\n await this.extendForeignObjectAsync(obj._id, { common: { enabled: false } });\n }\n }\n }\n\n debugSendToInspector(message: any): void {\n if (this.debugState.child) {\n try {\n this.log.info(`send to debugger: ${message}`);\n this.debugState.child.send(message);\n } catch {\n void this.debugStop().then(() =>\n this.log.info(\n `${this.debugState.scriptName}: Debugging was stopped, because started in normal mode`,\n ),\n );\n }\n } else {\n this.log.error(`${this.debugState.scriptName}: Cannot send command to terminated inspector`);\n void this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `Cannot send command to terminated inspector`, id: 1 }),\n true,\n );\n }\n }\n\n debugStart(data: { breakOnStart?: boolean; scriptName?: string; adapter?: string }): void {\n if (Date.now() - this.debugState.started < 1000) {\n console.log('Start ignored');\n return;\n }\n\n this.debugState.started = Date.now();\n // stop the script if it's running\n void this.debugDisableScript(data.scriptName)\n .then(() => this.debugStop())\n .then(() => {\n if (data.adapter) {\n this.debugState.adapterInstance = data.adapter;\n this.debugState.scriptName = '';\n } else {\n this.debugState.adapterInstance = '';\n this.debugState.scriptName = data.scriptName as string;\n }\n\n this.debugState.breakOnStart = data.breakOnStart;\n\n this.debugState.promiseOnEnd = new Promise(resolve => {\n const options: ForkOptions = {\n stdio: ['ignore', 'inherit', 'inherit', 'ipc'],\n //stdio: ['pipe', 'pipe', 'pipe', 'ipc']\n };\n const args: string[] = [];\n if (this.debugState.adapterInstance) {\n args.push('--breakOnStart');\n }\n\n this.debugState.child = fork(`${__dirname}/lib/inspect.js`, args, options);\n\n /*debugState.child.stdout.setEncoding('utf8');\n debugState.child.stderr.setEncoding('utf8');\n debugState.child.stdout.on('data', childPrint);\n debugState.child.stderr.on('data', childPrint);*/\n\n this.debugState.child?.on(\n 'message',\n (\n message:\n | string\n | {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n },\n ) => {\n let oMessage: {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n };\n if (typeof message === 'string') {\n try {\n oMessage = JSON.parse(message);\n } catch {\n return this.log.error(`Cannot parse message from inspector: ${message}`);\n }\n } else {\n oMessage = message;\n }\n\n if (oMessage.cmd !== 'ready') {\n void this.setState('debug.from', JSON.stringify(oMessage), true);\n }\n\n switch (oMessage.cmd) {\n case 'ready': {\n this.debugSendToInspector({\n cmd: 'start',\n scriptName: this.debugState.scriptName,\n adapterInstance: this.debugState.adapterInstance,\n instance: this.instance,\n });\n break;\n }\n\n case 'watched': {\n //console.log(`WATCHED: ${JSON.stringify(oMessage)}`);\n break;\n }\n\n case 'paused': {\n this.debugState.paused = true;\n console.log(`host: PAUSED`);\n break;\n }\n\n case 'resumed': {\n this.debugState.paused = false;\n //console.log(`STARTED`);\n break;\n }\n\n case 'log': {\n console.log(`[${oMessage.severity}] ${oMessage.text}`);\n break;\n }\n\n case 'readyToDebug': {\n console.log(\n `host: readyToDebug (set breakpoints): [${oMessage.scriptId}] ${oMessage.script}`,\n );\n break;\n }\n }\n },\n );\n this.debugState.child?.on('error', error => {\n this.log.error(`Cannot start inspector: ${error}`);\n void this.setState('debug.from', JSON.stringify({ cmd: 'error', error }), true);\n });\n\n this.debugState.child?.on('exit', async (code: number): Promise => {\n if (code) {\n await this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `invalid response code: ${code}` }),\n true,\n );\n }\n await this.setState('debug.from', JSON.stringify({ cmd: 'debugStopped', code }), true);\n this.debugState.child = null;\n resolve(code);\n });\n });\n });\n }\n}\n\nfunction patternMatching(\n event: EventObj,\n patternFunctions: PatternEventCompareFunction[] & { logic?: 'and' | 'or' },\n): boolean {\n let matched = false;\n for (let i = 0, len = patternFunctions.length; i < len; i++) {\n if (patternFunctions[i](event)) {\n if (patternFunctions.logic === 'or') {\n return true;\n }\n matched = true;\n } else if (patternFunctions.logic === 'and') {\n return false;\n }\n }\n return matched;\n}\n\n// If started as allInOne mode => return function to create instance\nif (require.main !== module) {\n // Export the constructor in compact mode\n module.exports = (options: Partial | undefined) => new JavaScript(options);\n} else {\n // otherwise start the instance directly\n (() => new JavaScript())();\n}\n"]} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAqD;AACrD,qCAAwF;AACxF,yCAAiD;AACjD,2DAA4D;AAC5D,6CAAkE;AAClE,yCAA8C;AAC9C,wDAAgC;AAEhC,kDAAoC;AACpC,oDAAsC;AACtC,8CAAgC;AAChC,oDAAsC;AACtC,gDAAkC;AAClC,kDAAoC;AACpC,kDAAoC;AACpC,8CAAgC;AAChC,4CAA8B;AAC9B,gDAAkC;AAClC,gDAAkC;AAClC,kEAAoD;AACpD,oDAAsC;AACtC,gDAAkC;AAElC,sCAAsC;AACtC,kDAAoC;AACpC,6CAA+B;AAC/B,sCAAsC;AACtC,yDAA2C;AAC3C,4DAA8C;AAE9C,yDAA6G;AAK7G,yCAAsC;AACtC,gEAAwC;AACxC,uCAAuD;AACvD,2CAAwC;AACxC,uEAAqE;AACrE,6CAAkE;AAClE,+CAAiE;AACjE,iEAAwG;AACxG,uCAAyC;AACzC,2DAM+B;AAuC/B;;;;GAIG;AACH,MAAM,wBAAwB,GAAa;IACvC,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,QAAQ;CACX,CAAC;AAEF,MAAM,WAAW,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7G,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAExC,IAAI,aAAiC,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAE9B,sCAAsC;AACtC,IAAI,SAAiC,CAAC;AAEtC,yEAAyE;AACzE,kHAAkH;AAClH,qCAAqC;AACrC,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,oBAAoB,WAAW,CAAC,OAAO,eAAe,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;AAErH,2IAA2I;AAC3I,SAAS,eAAe,CAAC,SAAe;IACpC,MAAM,QAAQ,GAAW,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACrD,+EAA+E;IAC/E,iFAAiF;IACjF,0EAA0E;IAC1E,gDAAgD;IAChD,MAAM,UAAU,GAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,8CAA8C;IAC9C,+EAA+E;IAC/E,MAAM,SAAS,GAAW,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO;IACH,qDAAqD;IACrD,CAAC,SAAS,GAAG,yCAAyC;QACtD,uEAAuE;QACvE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,6CAA6C;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,8CAA8C;QAC9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,qCAAqC;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,2BAA2B;YACtD,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC1D,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM;YACtC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS;YACzC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY;YAC5C,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC5C,mEAAmE;YACnE,qEAAqE;YAErE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,uBAAuB;YACpD,MAAM,CAAC;YACP,EAAE;YACF,EAAE,GAAG,2CAA2C;YAChD,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB;YAC7D,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC;YACF,EAAE;YACF,IAAI,GAAG,yDAAyD;QACpE,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,gCAAgC;QACzE,SAAS,CAAC,eAAe,EAAE,CAC9B,CAAC;AACN,CAAC;AAED,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAE9C,SAAS,aAAa,CAAC,GAA0B;IAC7C,OAAO,GAAG,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,YAAY,CAAC,GAA2B,EAAE,EAAU,EAAE,QAAgB;IAC3E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,UAAoB;IACxD,MAAM,GAAG,GAAS,kBAAkB,EAAE,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,IACI,UAAU;QACV,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC,EACrG,CAAC;QACC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzB,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAE7B,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB;IACvB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEjB,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAU;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEpC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,iFAAiF;AACjF,sIAAsI;AACtI,qDAAqD;AACrD,IAAA,yCAA2B,EAAC;IACxB,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,mBAAmB,GAAW,IAAI,oBAAM,CAAC,iDAA4B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACvG;;;GAGG;AAEH,MAAM,UAAW,SAAQ,sBAAO;IAGX,OAAO,CAAoB;IAEpC,gBAAgB,GAMpB;QACA,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACxC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KAC7C,CAAC;IAEe,IAAI,CAAU;IAEvB,eAAe,GAAG,KAAK,CAAC;IACxB,cAAc,GAAG,KAAK,CAAC;IAEvB,OAAO,GAAoC,EAAE,CAAC;IAC9C,MAAM,GAAmC,EAAE,CAAC;IACnC,kBAAkB,GAAmC,EAAE,CAAC;IACxD,QAAQ,GAAa,EAAE,CAAC;IACxB,aAAa,GAAyB,EAAE,CAAC;IACzC,iBAAiB,GAA6B,EAAE,CAAC;IACjD,mBAAmB,GAAsB,EAAE,CAAC;IAC5C,kBAAkB,GAA2B,EAAE,CAAC;IAChD,sBAAsB,GAA2B,EAAE,CAAC;IACpD,WAAW,GAA6B,EAAE,CAAC;IAC3C,MAAM,GAAgD,EAAE,CAAC;IACzD,MAAM,GAAa,EAAE,CAAC;IACtB,KAAK,GAA0C,EAAE,CAAC,CAAC,WAAW;IAC9D,OAAO,GAA6B,EAAE,CAAC;IACvC,kBAAkB,GAG/B,EAAE,CAAC;IACU,gBAAgB,GAQ7B,EAAE,CAAC;IACU,eAAe,GAAqC,EAAE,CAAC,CAAC,aAAa;IACrE,6BAA6B,GAA4B,EAAE,CAAC;IAE7E,oCAAoC;IAC5B,aAAa,GAAG,KAAK,CAAC;IAEtB,YAAY,GAGhB,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEpC,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,iBAAiB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAEjF,SAAS,GAAG,EAAE,CAAC,CAAC,uBAAuB;IAEvC,MAAM,CAAqB;IAE3B,YAAY,GAA2B,EAAE,CAAC;IAE1C,0BAA0B,GAA0B,IAAI,CAAC;IAEzD,YAAY,GAAG,EAAE,CAAC;IAC1B,oDAAoD;IAC5C,kBAAkB,GAAG,EAAE,CAAC;IAChC,gDAAgD;IAChD,8DAA8D;IACtD,+BAA+B,GAA2B,EAAE,CAAC;IAC7D,iBAAiB,GAAG,CAAC,CAAC;IAC9B,mCAAmC;IAC3B,QAAQ,CAAS;IAER,kBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAErD,UAAU,GAAe;QAC7B,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,KAAK;KACjB,CAAC;IAEF,YAAY,UAAmC,EAAE;QAC7C,OAAO,GAAG;YACN,GAAG,OAAO;YACV,IAAI,EAAE,YAAY,EAAE,eAAe;YACnC,aAAa,EAAE,IAAI;YACnB;;;eAGG;YACH,KAAK,EAAE,CAAC,GAAU,EAAW,EAAE;gBAC3B,kEAAkE;gBAClE,mEAAmE;gBACnE,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,MAAM,qBAAqB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBACpE,IAAI,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC7B,yBAAyB;wBACzB,IAAI,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;wBAC5D,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAEzC,mCAAmC;wBACnC,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;oBACD,+DAA+D;oBAC/D,8EAA8E;oBAC9E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC;wBACrE,2FAA2F;wBAC3F,0CAA0C;wBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,oHAAoH,CACvH,CAAC;wBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAE1B,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;gBAED,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC;QAEF,KAAK,CAAC,OAAyB,CAAC,CAAC;QAEjC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,GAAG;YACR,EAAE,EAAE,EAAe;YACnB,aAAa,EAAE,EAA2B;YAC1C,KAAK;YACL,MAAM;YACN,GAAG;YACH,MAAM;YACN,IAAI;YACJ,KAAK;YACL,KAAK;YACL,GAAG;YACH,EAAE;YACF,IAAI;YACJ,IAAI;YACJ,aAAa;YACb,MAAM;YACN,IAAI;YAEJ,OAAO;YACP,KAAK;YACL,WAAW;YACX,YAAY;SACf,CAAC;QAEF,gDAAgD;QAChD,IAAI,SAA6B,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3C,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;oBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACJ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;YAEjE,OAAO,EAAE,KAAK,EAAE,kCAAkC;YAClD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,IAAI,EAAE,eAAe;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAE/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,4BAA4B,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1E,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,SAAS;YACT,yBAAyB,EAAzB,wCAAyB;YACzB,OAAO,EAAE,IAAmC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SACrC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAM,CAAC,sCAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,GAA4B;QACzD,6FAA6F;QAC7F,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,sDAAsD;YACtD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAsB,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,CAAC;YACD,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,cAAc;YACd,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAEnC,2BAA2B;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACN,SAAS;gBACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpC,aAAa;gBACb,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,EAAE,KAAK,eAAe,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAClD,kCAAkC;YAClC,IAAA,mBAAW,EAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QAChE,CAAC;QAED,kDAAkD;QAClD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,oBAAoB,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;YAC9D,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5G,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,GAAmC,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B;QAEjE,oFAAoF;QACpF,gFAAgF;QAChF,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,0BAA0B;YAC1B,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;iBACxB,IAAI,CAAC,KAAK,CAAC,EAAE;gBACV,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACR,YAAY;YAChB,CAAC,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACnC,4CAA4C;YAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,0BAA0B;YAC1B,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,mFAAmF;gBACnF,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzE,+DAA+D;gBAC/D,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAE1B,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAEpC,uCAAuC;gBACvC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,wCAAwC;YACxC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,6CAA6C;gBAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACnE,oDAAoD;gBACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,6BAA6B;oBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YACrD,qBAAqB;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC5D,4BAA4B;oBAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,IACI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,kBAAkB;oBAClB,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBAC7F,2BAA2B;wBAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC;qBAAM,IACH,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,iBAAiB;oBAEjB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBACjF,eAAe;wBACf,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,uDAAuD;oBACvD,uCAAuC;oBACvC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9E,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC/B,+EAA+E;wBAC/E,qCAAqC;wBACrC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC3B,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBACjC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,KAA6B;QACnD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,sDAAsD;YACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,OAAO;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,WAAW,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAsC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,QAAQ,EAAE,CAAC;gBACX,2BAA2B;gBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;oBAClF,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;wBAC1D,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE;qBACjC,CAAC,CAAC;gBACP,CAAC;gBAED,8FAA8F;gBAC9F,KAAI,gBAAiB,QAAQ,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChF,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC5B,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5F,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,KAAI,iBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,GAAG,EAAoB,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,4BAAiB,EAC/B,IAAI,CAAC,OAAO,EACZ,EAAE,EACF,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,KAAK,CAAC,EAC5C,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAClD,CAAC;QAEF,0CAA0C;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,EAAE,uBAAuB,IAAI,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC1F,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,QAAgB,EAAE,IAAmB;QAC1D,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAoB;QAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC/C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACjC,QAAQ,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;QAC/G,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;QAE9G,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,cAAc,GAAsC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAExF,CAAC;YACF,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;gBAChD,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;oBACtB,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACrC,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC5C,IACI,SAAS,CAAC,UAAU,EAAE,MAAM;gCAC5B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gCAC1C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EACpC,CAAC;gCACC,6CAA6C;gCAC7C,IACI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACrC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC/C,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,6EAA6E;gCAC7E,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gCAC1D,IACI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAC7B,KAAK,CAAC,EAAE,CACJ,KAAK,CAAC,QAAQ;oCACd,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oCAClC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAClD,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,+DAA+D;gCAC/D,OAAO,KAAK,CAAC;4BACjB,CAAC;wBACL,CAAC;wBAED,uCAAuC;wBACvC,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,GAAqB;QAC3B,QAAQ,GAAG,EAAE,OAAO,EAAE,CAAC;YACnB,6BAA6B;YAC7B,KAAK,UAAU,CAAC;YAChB,KAAK,cAAc;gBACf,IACI,GAAG,CAAC,OAAO;oBACX,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;wBAC1B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBAClC,cAAc,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS;wBACvD,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,EAC9C,CAAC;oBACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAChD,iDAAiD;wBACjD,IACI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;4BACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EACpD,CAAC;4BACC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gCACjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gCAEhC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gCAEpF,IAAI,CAAC;oCACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wCACf,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gDAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;4CACvE,CAAC;4CAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wCAC7D,CAAC,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,OAAO,CAAC,OAAO;gDACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wCAC3E,CAAC,CAAC,CAAC;oCACP,CAAC;gCACL,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,KAAK,IAAI,CAAC,QAAQ,CACd,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC5D,IAAI,EACJ,IAAI,CACP,CAAC;oCACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAY,CAAC,CAAC;gCAC5D,CAAC;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM;YAEV,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjB,8BAA8B;gBAC9B,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAE3C,6CAA6C;gBAC7C,IAAI,CAAC;oBACD,MAAM,cAAc,GAAG,IAAA,uCAAqB,EAAC,gCAAW,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACL,qBAAqB;gBACzB,CAAC;gBAED,6EAA6E;gBAC7E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAElC,oEAAoE;gBACpE,KAAK,MAAM,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBAChF,OAAO,CAAC,GAAG,iBAAiB,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,CAAC;gBACnG,CAAC;gBAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBAClB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBACnC,IAAI,WAAW,GAA6D,EAG3E,CAAC;oBACF,IAAI,CAAC;wBACD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACzE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,WAAW,EAAE,CAAC;wBACd,IAAI,CAAC;4BACD,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CACxC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EACpD,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC9D,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAC1D,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;4BACF,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CACvC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAClD,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5D,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EACxD,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;wBACN,CAAC;wBAAC,OAAO,GAAY,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;wBACnE,CAAC;oBACL,CAAC;oBAED,MAAM,MAAM,GAA+E,EAAE,CAAC;oBAC9F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACJ,WAAiD,CAAC,CAAC,CAAC;wBACpD,WAAiD,CAAC,CAAC,CAAC,CAC5D,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACf,MAAM,SAAS,GACV,WAAwD,CAAC,GAAG,CAAC,KAAK,IAAI;4BACvE,CAAC,KAAK,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBAE5E,MAAM,CAAC,GAAG,CAAC,GAAG;4BACV,WAAW,EAAE,SAAS;4BACtB,UAAU,EAAE,SAAS;gCACjB,CAAC,CAAC,yBAAyB,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC;gCAClF,CAAC,CAAC,KAAK;4BACX,IAAI,EAAE,SAAS;gCACX,CAAC,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gCACrE,CAAC,CAAC,KAAK;yBACd,CAAC;oBACN,CAAC,CAAC,CAAC;oBAEH,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC7D,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBAEnC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC3E,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;oBAC1F,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBACpF,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBACxE,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;oBACvF,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBACjF,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CACjC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,gBAAgB,GAAG,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/E,MAAM,eAAe,GAAG,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;oBAE5E,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,YAAY,aAAa,iBAAiB,UAAU,eAAe,aAAa,aAAa,MAAM,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAClL,CAAC;oBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,WAAW,aAAa,gBAAgB,UAAU,cAAc,aAAa,YAAY,MAAM,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAC5K,CAAC;oBAEF,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;4BACI,WAAW,EAAE;gCACT,WAAW,EAAE,gBAAgB;gCAC7B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC7E,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE;6BAClC;4BACD,UAAU,EAAE;gCACR,WAAW,EAAE,eAAe;gCAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC3E,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE;6BACjC;yBACJ,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;oBACN,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChE,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,iDAAiD;gBACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAChC,MAAM;YACV,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBACxB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;wBACI,OAAO,EAAE,IAAA,wCAAyB,GAAE;wBACpC,GAAG,EAAH,eAAG;qBACN,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;gBACN,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,gCAAgC;gBAChC,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,IAAI,CAAC;wBACD,kBAAQ;6BACH,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;4BACtB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;4BAChE,UAAU,EAAE,GAAG;4BACf,IAAI,EAAE,IAAI;4BACV,QAAQ,EAAE,CAAC;4BACX,OAAO,EAAE,KAAK;4BACd,aAAa,EAAE,KAAK;4BACpB,WAAW,EAAE,IAAI;4BACjB,sBAAsB,EAAE,IAAI;4BAC5B,SAAS,EAAE,IAAI;4BACf,cAAc,EAAE,IAAI;4BACpB,WAAW,EAAE,OAAO;4BACpB,UAAU,EAAE,WAAW;yBAC1B,CAAC;6BACD,IAAI,CAAC,aAAa,CAAC,EAAE;4BAClB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gCACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAC9E,CAAC;iCAAM,CAAC;gCACJ,IAAI,CAAC,eAAe,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;4BAC9D,CAAC;wBACL,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,CAAC,EAAE;4BACP,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;4BAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACzF,CAAC,CAAC,CAAC;oBACX,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;wBAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACzF,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAQ;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAQ,EAAE,CAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1C,IACI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU;gBAChC,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,EACjE,CAAC;gBACC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;gBACrD,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAC3C,CAAC;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,GAAW,EAAE,CAAQ,EAAE,IAAa;QAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,IAAI,GAAG,CAAC;QACf,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACZ,SAAS;YACb,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC;gBACpD,MAAM;YACV,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACZ,SAAS;gBACb,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,EAAE,CAAC;oBACjE,MAAM;gBACV,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAEpG,+BAA+B;QAC/B,MAAM,OAAO,GAA+C,MAAM,IAAI,CAAC,qBAAqB,CACxF,kBAAkB,IAAI,CAAC,SAAS,EAAE,CACrC,CAAC;QACF,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAChD,CAAC;gBACD,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,GAAG;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;aACrB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAA,wCAAyB,GAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,mCAAmC;QAErF,8BAA8B;QAC9B,IAAI,CAAC;YACD,SAAS,GAAG;gBACR,iBAAiB,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC;aACjG,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACpD,mBAAmB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,GAAY,EAAE,CAAC,CAAC;YACjF,4DAA4D;YAC5D,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACxD,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;oBACtD,YAAY,EAAE,gBAAgB,CAAC,GAAY,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YACD,0EAA0E;YAC1E,SAAS,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,iEAAiE;QACjE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,qBAAS,CAClC,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,6GAA6G;QAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QACnD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,yBAAyB;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACpB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;wBAE/D,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACrB,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gCACtC,aAAa;gCACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,kCAAkC,CAAC,CAAC;gCAC5D,4EAA4E;gCAC5E,mGAAmG;gCACnG,+HAA+H;gCAC/H,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gCACpF,0EAA0E;gCAC1E,0EAA0E;gCAC1E,wCAAwC;gCACxC,oEAAoE;gCACpE,mFAAmF;gCACnF,MAAM,UAAU,GAAW,IAAA,kBAAU,EACjC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CACjE,CAAC;gCAEF,IAAI,QAA4B,CAAC;gCACjC,IAAI,YAAgC,CAAC;gCACrC,8EAA8E;gCAC9E,2EAA2E;gCAC3E,iCAAiC;gCACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oCACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oCACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oCACC,iCAAiC;oCACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oCAC/B,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;oCACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,kEAAkE,CAC/E,CAAC;gCACN,CAAC;qCAAM,CAAC;oCACJ,iFAAiF;oCACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCAC/C,IAAI,UAAyB,CAAC;oCAC9B,IAAI,CAAC;wCACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oCACpE,CAAC;oCAAC,OAAO,GAAY,EAAE,CAAC;wCACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wCAC9E,SAAS;oCACb,CAAC;oCAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW;yCAChC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC;yCACxC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAEhB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wCACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,oDAAoD,MAAM,EAAE,CACzE,CAAC;wCACN,CAAC;6CAAM,CAAC;4CACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,CAAC,CAAC;wCACnE,CAAC;wCACD,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;wCAC7B,mHAAmH;wCACnH,YAAY,GAAG,IAAA,6CAA2B,EAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;wCAE1E,MAAM,SAAS,GAIX;4CACA,UAAU;4CACV,QAAQ;yCACX,CAAC;wCACF,IAAI,YAAY,EAAE,CAAC;4CACf,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;wCAC1C,CAAC;wCAED,0GAA0G;wCAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD;wCACzF,KAAK,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE;4CACnC,MAAM,EAAE,SAAS;yCACpB,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,MAAM,EAAE,CAAC,CAAC;wCACxE,SAAS;oCACb,CAAC;gCACL,CAAC;gCACD,IAAI,CAAC,YAAY,IAAI,GAAG,QAAQ,IAAI,CAAC;gCACrC,gDAAgD;gCAChD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;oCACvB,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gCACnE,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,aAAa;gCACb,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gCACrC,IAAI,CAAC,YAAY,IAAI,GAAG,UAAU,IAAI,CAAC;gCAEvC,yDAAyD;gCACzD,0CAA0C;gCAC1C,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCAC/C,IAAI,UAAyB,CAAC;gCAC9B,IAAI,CAAC;oCACD,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gCACnE,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,0DAA0D,GAAY,EAAE,CACrF,CAAC;oCACF,SAAS;gCACb,CAAC;gCACD,gDAAgD;gCAChD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;oCACxD,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;gCAC9E,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,mBAAmB;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAmC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAChG,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAA,wCAAyB,GAAE,GAAG,eAAG,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAA,qBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,KAAK,IAAI,GAAG,IAAI,wBAAwB,EAAE,CAAC;oBACvC,GAAG,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,GAAG,CAAC,GAAG,eAAG,CAAC;oBAClC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACjF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;wBAC1F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,kCAAkC,CAAC,CAAC;wBACtF,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC;wBACrB,OAAO,EAAE,IAAI;wBACb,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;qBACnC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,0BAA0B,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpB,OAAO;gBACX,CAAC;gBACD,MAAM,+BAA+B,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC;gBAClF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,GAAG,CAAC,CAAC;gBAC9C,IAAI,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,uCAAuC,IAAI,CAAC,MAAM,CAAC,oBAAoB,iCAAiC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,sBAAsB,CACtL,CAAC;oBACF,4EAA4E;oBAC5E,oCAAoC;oBACpC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;wBACvD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,0CAA0C,IAAI,CAAC,MAAM,CAAC,oBAAoB,mEAAmE,CACrJ,CAAC;wBACF,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,UAAU,EAAE,mCAAmC,IAAI,CAAC,MAAM,CAAC,oBAAoB,2DAA2D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAC/L,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAEO,0BAA0B;QAC9B,4DAA4D;QAC5D,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,kDAAkD;YAC1D,iBAAiB,EAAE,kDAAkD;SACxE,CAAC;QACF,gFAAgF;QAChF,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC/F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;iBACtC,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;iBAC1C,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,yFAAyF;YACzF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;YACD,yGAAyG;YACzG,mFAAmF;YACnF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC7B,0DAA0D;gBAC1D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,SAAS;gBACb,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnD,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,IAAA,gCAAc,EAC3B,GAAG,EACH,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YAC1F,oEAAoE;YACpE,GAAG,KAAK,MAAM,CACjB,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,+EAA+E;gBAC/E,yBAAyB;gBACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,UAAU,GAAG;wBACT,CAAC,gBAAgB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACjE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,UAAU,GAAG;wBACT,CAAC,uBAAuB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACxE,CAAC;gBACN,CAAC;YACL,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YACzG,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrC,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;YACrD,mBAAmB,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,EAAU,EAAE,GAAuC;QACnE,IAAI,GAAG,EAAE,CAAC;YACN,+BAA+B;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEpC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,qCAAqC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACtD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAED,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,sBAAsB;YACtB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,mBAAmB;YACnB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACxC,sBAAsB;YACtB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAEvB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAErE,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC/B,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,EAAE,EAAE,CAAC;oBACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,4BAA4B,CACxB,EAAU,EACV,KAAwC;QAExC,IACI,KAAK;YACL,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAC7B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;YACxB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzF,CAAC;YACC,IAAI,CAAC;gBACD,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,wBAAwB,CAAC,EAAU,EAAE,KAA0B,EAAE,KAAc;QAC3E,gEAAgE;QAChE,MAAM,MAAM,GAAmB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAoB,CAAC;QAE5E,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,KAAoC;QAC/D,IAAI,MAAsB,CAAC;QAE3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,GAAG,KAAuB,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAoB,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,+CAA+C;QAC/C,mCAAmC;QACnC,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,IAAI;YACP,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC;QAE7G,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,0DAA0D;gBAC1D,MAAM,UAAU,GAAG,CAAC,IAAA,6BAAiB,EAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxE,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;oBACrC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAElC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAED,mBAAmB;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;aACjE,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtE,SAAS;gBACb,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClD,8BAA8B;oBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxD,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAE3F,oBAAoB;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEnD,kCAAkC;YAClC,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACjC,IAAA,mBAAW,EAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;YAChE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvB,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1C,CAAC;YAED,gCAAgC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC3B,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1D,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAA6B,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAA8B,CAAC,CAAC;YAE/E,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,wBAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,sDAAsD,CACrG,CAAC;YACN,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;YAClG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACrE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,yBAAyB,IAAI,CAAC,MAAM,CAAC,SAAS,sDAAsD,CACvG,CAAC;YACN,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;YAErE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC;YAEnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,OAAgB;QACjD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE9F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACrB,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,eAAe;iBACxB;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnE,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,sBAAsB,CAAC;gBAC/D,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC;gBACzD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE/F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG;gBACtB,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,iBAAiB;iBAC1B;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrE,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAoB;QAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;QAEnB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,sCAAsC;gBACtC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC,CAAC;gBACpD,CAAC;gBAEA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,EAAE,CAAC;YACJ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAE7B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAAU;QACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,CAAC;gBACb,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,SAAS,CAAC;YAEvB,iFAAiF;YACjF,wCAAwC;YACxC,MAAM,GAAG,GAAG,eAAe,MAAM,aAAa,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,SAAS,SAAS,WAAW,GAAG,EAAE,CAAC,CAAC;YAEtE,uDAAuD;YACvD,0IAA0I;YAC1I,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5C,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAErE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,CAAC,cAAc,EAAE,EAAE;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,oBAAoB;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAa,IAAI,CAAC,MAAM,CAAC,SAAS;aAC5C,KAAK,CAAC,SAAS,CAAC;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvG,IAAI,oBAAoB,GAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,wBAAwB,KAAK,UAAU,EAAE,CAAC;YACtD,oBAAoB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAE7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,GAAG,GAAG,CAAC;YAClB,IAAI,OAAO,GAAG,QAAQ,CAAC;YAEvB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;gBAClC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,qEAAqE;YACrE,IAAI,UAAU,GAAG,OAAO,CAAC;YAEzB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,UAAU,GAAG,MAAM,IAAA,8CAAsB,EAAC,OAAO,CAAC,CAAC;gBAEnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,WAAW,OAAO,GAAG,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;YACjF,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,uBAAuB;YACvB,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBAClE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;wBAEvE,MAAM,cAAc,GAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBACnE,IAAI,CAAC,IAA4B,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;oBAClF,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,MAAM,GAAY,EAAE,CAAC,CAAC;gBACnG,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,SAAS,iBAAiB,OAAO,eAAe,CAAC,EAAE,CAAC;gBAC1E,sBAAsB;gBACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,GAAG,GAAG,CAAC,CAAC;gBAEnE,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,GAAG,GAAG,CAAC,CAAC;gBAC1E,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,GAAG,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjG,CAAC;YACL,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACjD,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC;wBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;wBAEpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,mBAAmB,GAAG,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,mBAAmB,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAChG,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,SAAkB;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,oBAAoB,GACtB,4GAA4G;gBAC5G,4EAA4E;gBAC5E,iGAAiG;gBACjG,oFAAoF;gBACpF,6GAA6G,CAAC;YAElH,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACJ,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClC,6EAA6E;oBAC7E,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB;oBACvD,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,gBAAgB,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBAClD,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,4BAA4B,MAAM,SAAS,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,YAAY,MAAM,EAAE,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,OAAO,GAAkB;gBAC3B,QAAQ,EAAE,IAAI;gBACd,uBAAuB;gBACvB,qCAAqC;aACxC,CAAC;YACF,OAAO;gBACH,MAAM,EAAE,IAAI,gBAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aAC1B,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAY,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAgB,EAAE,IAAY,EAAE,UAAsB,EAAE,OAAgB,EAAE,KAAc;QAC5F,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;QAC3B,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;YAC7E,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAA,iBAAO,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,IAAI;gBACnB,qCAAqC;aACxC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC7E,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,CAAC,EAAE,SAAS;aACf,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,GAAY,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,WAAW,CAAC,EAA8B;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,0DAA0D;YAC1D,OAAO;QACX,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAC1C,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,sBAAsB;QAClB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,sEAAsE;QACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;QAE1C,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/F,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAErE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,6BAA6B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YAAC,MAAM,CAAC;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,sCAAsC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,4BAA4B;YAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxB,2BAA2B;gBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACpD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjE,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;4BACnC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;4BAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;4BACnC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gCAClB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BAC3B,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;wBAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IACI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACjE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EACtC,CAAC;wBACC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBAChC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC3E,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACpC,KAAK,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;wBAC5C,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,GAAG,EAAE,CAAC;wBACN,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC;YACL,CAAC;YAED,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,qBAAqB;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,0BAA0B;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,uCAAuC,KAAK,GAAG,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjE,CAAC;gBACL,CAAC;YACL,CAAC;YAED,0BAA0B;YAC1B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa;oBAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;gBAEhF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBACxB,IAAI,OAAO,GAA0B,UAAU,CAAC,GAAG,EAAE;wBACjD,IAAI,OAAO,EAAE,CAAC;4BACV,OAAO,GAAG,IAAI,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;oBACL,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;oBAErC,IAAI,CAAC;wBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;4BAC7B,IAAI,OAAO,EAAE,CAAC;gCACV,YAAY,CAAC,OAAO,CAAC,CAAC;gCACtB,OAAO,GAAG,IAAI,CAAC;gCACf,OAAO,CAAC,IAAI,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,+BAA+B,GAAY,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAA0B;QAC1C,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;YACjE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;YACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,yDAAyD,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,IACI,GAAG,EAAE,MAAM,EAAE,MAAM;YACnB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC;YAC1D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAC1D,CAAC;YACC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;YAErB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,kBAAkB,IAAI,eAAe,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,iBAAiB,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAC7D,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,EAC/B,IAAI,EACJ,IAAI,CACP,CAAC;YACN,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAEpD,IACK,GAAG,CAAC,MAAM,CAAC,UAAyB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC3E,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,SAAS;gBAClD,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,OAAO,EACnD,CAAC;gBACC,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;gBAEtE,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACjE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,QAAQ,EACR,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/D,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;gBACtD,0EAA0E;gBAC1E,0DAA0D;gBAC1D,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACrF,oEAAoE;gBACpE,mFAAmF;gBACnF,MAAM,UAAU,GAAG,IAAA,kBAAU,EAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAAC;gBAE9F,IAAI,QAAgB,CAAC;gBACrB,8EAA8E;gBAC9E,2EAA2E;gBAC3E,iCAAiC;gBACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oBACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oBACC,iCAAiC;oBACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,kEAAkE,CAAC,CAAC;gBAC7F,CAAC;qBAAM,CAAC;oBACJ,iFAAiF;oBACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,UAAyB,CAAC;oBAC9B,IAAI,CAAC;wBACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oBACpE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wBAC9E,OAAO,KAAK,CAAC;oBACjB,CAAC;oBAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE1F,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,yCAAyC,MAAM,EAAE,CAAC,CAAC;wBAC5E,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;wBAChE,CAAC;wBACD,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;wBAEnC,0GAA0G;wBAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,mDAAmD;wBACtF,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;4BACtC,MAAM,EAAE;gCACJ,UAAU;gCACV,QAAQ;6BACX;yBACJ,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,qCAAqC,MAAM,EAAE,CAAC,CAAC;wBACrE,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;gBACD,MAAM,aAAa,GAAqB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,EACJ,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,0BAA0B,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;YAChB,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEhE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,KAAK,eAAe,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC3B,IAAI,GAA6C,CAAC;QAClD,IAAI,CAAC;YACD,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAA6C,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAmC;QAChD,4BAA4B;QAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CACT,IAAU,EACV,UAA0B,EAC1B,KAAa,EACb,GAAW,EACX,aAA8B,EAC9B,QAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,UAAoB;QAEpB,IAAI,EAAE,GAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;QAEjF,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;YAC3C,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5F,CAAC;QACD,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzF,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE9D,IACI,EAAE,CAAC,QAAQ,EAAE,GAAG,eAAe;YAC/B,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,eAAe,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,EAC5E,CAAC;YACC,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACzC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,aAAa,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,aAAa,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;YAC1G,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACvC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YAC1B,oBAAoB;YACpB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;gBACb,KAAK,IAAI,EAAE,CAAC;YAChB,CAAC;QACL,CAAC;QACD,IAAI,MAAc,CAAC;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;YACrC,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACvD,GAAG,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,yBAAyB;QACzB,IACI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,QAA8B,KAAK,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,SAA+B,KAAK,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,EAChC,CAAC;YACC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACxE,OAAO;QACX,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACnC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QAEF,UAAU;QACV,IAAI,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAChE,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;YACjD,cAAc,GAAG,OAAO,CAAC;QAC7B,CAAC;QAED,SAAS;QACT,IAAI,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;YAC/C,aAAa,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAAsC,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACrG,IAAI,KAAc,CAAC;QACnB,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC;YAC9B,KAAK,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,sBAAsB;YACtB,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,OAAO,IAAI,WAAW,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,cAAc,GAChB,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1D,IAAI,GAAG,KAAK,gBAAgB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,WAAW,GAAG,cAAc,CAAC;QACjC,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACjC,WAAW,GAAG,aAAa,CAAC;QAChC,CAAC;QACD,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;YACrB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAuB,CAAC;QAC5B,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAAQ,GAAG,GAAG,SAAS,2DAA2D,CAAC;QACvF,IAAI,YAAY,GAAG,GAAG,SAAS,+BAA+B,CAAC;QAC/D,IAAI,CAAC;YACD,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,YAAY,GAAG,GAAG,SAAS,4BAA4B,CAAC;gBACxD,QAAQ,GAAG,GAAG,SAAS,wDAAwD,CAAC;gBAChF,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACpC,kBAAkB,EAClB,iDAAiD,CACpD,CAAC;YACF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,OAAO,CAAC,IAAc,CAAC;YACpC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,SAAS;QACb,CAAC;QAED,IAAI,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,MAAM,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAExF,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,IAA6B,CAAC;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC3D,IAAI,IAAI,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;wBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;wBACxD,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBACxD,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAA,uBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,mBAAmB;gBACnB,MAAM,IAAI,CAAC,cAAc,CACrB,kBAAkB,EAClB,iDAAiD,EACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAY,EAAE,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;gBAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEhG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAErE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC;wBAErC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;4BACtC,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE;gCACJ,IAAI,EAAE,SAAS,CAAC,EAAE;gCAClB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,KAAK;6BACf;4BACD,MAAM,EAAE,EAAE;yBACb,CAAC,CAAC;wBAEH,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;4BAClD,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gCACvB,GAAG,EAAE,aAAa;gCAClB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gCACzB,GAAG,EAAE,IAAI;6BACZ,CAAC,CAAC;wBACP,CAAC;6BAAM,CAAC;4BACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,0DAA0D,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,GAAY,EAAE,CAC1G,CAAC;oBACN,CAAC;gBACL,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACxG,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,kCAAkC;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,GAAG,CAAC,OAAe,EAAE,QAA4B,EAAQ,EAAE;QAC5D,qEAAqE;QACrE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,kCAAkC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO;YACX,CAAC;YACD,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,CAAC;IAEF,cAAc,CAAC,MAA2B;QACtC,IAAI,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;gBACjC,KAAK,EAAE,UAAU,EAAU;oBACvB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,kCAAkC,CAAC,QAAgB,EAAE,YAAoB;QACrE,gEAAgE;QAChE,uEAAuE;QACvE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC7E,CAAC;QACD,+DAA+D;QAC/D,IAAI,CAAC,kBAAkB,IAAI,GAAG,YAAY,IAAI,CAAC;QAC/C,yDAAyD;QACzD,6CAA6C;QAC7C,MAAM,qBAAqB,GAAG,aAAa,CAAC;QAC5C,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3D,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACrC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;QACH,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAC7F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAEnC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAsB;QAC3C,IAAI,EAAE,EAAE,CAAC;YACL,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,OAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,yDAAyD,CACzF,CACJ,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,+CAA+C,CAAC,CAAC;YAC7F,KAAK,IAAI,CAAC,QAAQ,CACd,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,6CAA6C,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC7F,IAAI,CACP,CAAC;QACN,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAuE;QAC9E,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,kCAAkC;QAClC,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,EAAE;YACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEjD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACjD,MAAM,OAAO,GAAgB;oBACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;oBAC9C,wCAAwC;iBAC3C,CAAC;gBACF,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAA,yBAAI,EAAC,GAAG,SAAS,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE3E;;;iEAGiD;gBAEjD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CACrB,SAAS,EACT,CACI,OAQO,EACT,EAAE;oBACA,IAAI,QAMH,CAAC;oBACF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnC,CAAC;wBAAC,MAAM,CAAC;4BACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;wBAC7E,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,QAAQ,GAAG,OAAO,CAAC;oBACvB,CAAC;oBAED,IAAI,QAAQ,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBAC3B,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;oBACrE,CAAC;oBAED,QAAQ,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACnB,KAAK,OAAO,CAAC,CAAC,CAAC;4BACX,IAAI,CAAC,oBAAoB,CAAC;gCACtB,GAAG,EAAE,OAAO;gCACZ,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;gCACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gCAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;6BAC1B,CAAC,CAAC;4BACH,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,sDAAsD;4BACtD,MAAM;wBACV,CAAC;wBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;4BACZ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;4BAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;4BAC5B,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;4BAC/B,yBAAyB;4BACzB,MAAM;wBACV,CAAC;wBAED,KAAK,KAAK,CAAC,CAAC,CAAC;4BACT,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;4BACvD,MAAM;wBACV,CAAC;wBAED,KAAK,cAAc,CAAC,CAAC,CAAC;4BAClB,OAAO,CAAC,GAAG,CACP,0CAA0C,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CACpF,CAAC;4BACF,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC,CACJ,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;oBACnD,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAiB,EAAE;oBACpE,IAAI,IAAI,EAAE,CAAC;wBACP,MAAM,IAAI,CAAC,QAAQ,CACf,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EACzE,IAAI,CACP,CAAC;oBACN,CAAC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvF,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACX,CAAC;CACJ;AAED,SAAS,eAAe,CACpB,KAAe,EACf,gBAA0E;IAE1E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1D,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,gBAAgB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,oEAAoE;AACpE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC1B,yCAAyC;IACzC,MAAM,CAAC,OAAO,GAAG,CAAC,OAA4C,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/F,CAAC;KAAM,CAAC;IACJ,wCAAwC;IACxC,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["/*\n * Javascript adapter\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014-2024 bluefox ,\n *\n * Copyright (c) 2014 hobbyquaker\n */\n\nimport { Script, type ScriptOptions } from 'node:vm';\nimport { readFileSync, existsSync, statSync, writeFileSync, type Stats } from 'node:fs';\nimport { join, sep, normalize } from 'node:path';\nimport { fork, type ForkOptions } from 'node:child_process';\nimport { setTypeScriptResolveOptions, Server } from 'virtual-tsc';\nimport { isDeepStrictEqual } from 'node:util';\nimport prettier from 'prettier';\n\nimport * as dgram from 'node:dgram';\nimport * as crypto from 'node:crypto';\nimport * as dns from 'node:dns';\nimport * as events from 'node:events';\nimport * as http from 'node:http';\nimport * as https from 'node:https';\nimport * as http2 from 'node:http2';\nimport * as net from 'node:net';\nimport * as os from 'node:os';\nimport * as path from 'node:path';\nimport * as util from 'node:util';\nimport * as child_process from 'node:child_process';\nimport * as stream from 'node:stream';\nimport * as zlib from 'node:zlib';\n\n// @ts-expect-error no types available\nimport * as suncalc from 'suncalc2';\nimport * as axios from 'axios';\n// @ts-expect-error no types available\nimport * as wake_on_lan from 'wake_on_lan';\nimport * as nodeSchedule from 'node-schedule';\n\nimport { getAbsoluteDefaultDataDir, Adapter, EXIT_CODES, type AdapterOptions } from '@iobroker/adapter-core';\nimport type SentryPlugin from '@iobroker/plugin-sentry';\nimport type { GetTimesResult } from 'suncalc';\nimport type { CompileResult } from 'virtual-tsc/build/util';\n\nimport { Mirror } from './lib/mirror';\nimport ProtectFs from './lib/protectFs';\nimport { setLanguage, getLanguage } from './lib/words';\nimport { sandBox } from './lib/sandbox';\nimport { requestModuleNameByUrl } from './lib/nodeModulesManagement';\nimport { createEventObject, type EventObj } from './lib/eventObj';\nimport { type AstroEventName, Scheduler } from './lib/scheduler';\nimport { targetTsLib, tsCompilerOptions, jsDeclarationCompilerOptions } from './lib/typescriptSettings';\nimport { hashSource } from './lib/tools';\nimport {\n resolveTypescriptLibs,\n resolveTypings,\n scriptIdToTSFilename,\n transformScriptBeforeCompilation,\n transformGlobalDeclarations,\n} from './lib/typescriptTools';\nimport type {\n FileSubscriptionResult,\n JavascriptContext,\n JavaScriptAdapterConfig,\n JsScript,\n ScriptType,\n SubscriptionResult,\n SubscribeObject,\n JavascriptTimer,\n SandboxType,\n LogMessage,\n DebugState,\n} from './types';\nimport type { PatternEventCompareFunction } from './lib/patternCompareFunctions';\n\ntype MODULES = {\n fs: ProtectFs;\n 'fs/promises': ProtectFs['promises'];\n dgram: typeof dgram;\n crypto: typeof crypto;\n dns: typeof dns;\n events: typeof events;\n http: typeof http;\n https: typeof https;\n http2: typeof http2;\n net: typeof net;\n os: typeof os;\n path: typeof path;\n util: typeof util;\n child_process: typeof child_process;\n stream: typeof stream;\n zlib: typeof zlib;\n suncalc: typeof suncalc;\n axios: typeof axios;\n wake_on_lan: typeof wake_on_lan;\n nodeSchedule: typeof nodeSchedule;\n};\n\n/**\n * List of forbidden Locations for a mirror directory\n * relative to the default data directory\n * ATTENTION: the same list is also located in index_m.html!!\n */\nconst forbiddenMirrorLocations: string[] = [\n 'backup-objects',\n 'files',\n 'backitup',\n '../backups',\n '../node_modules',\n '../log',\n];\n\nconst packageJson: Record = JSON.parse(readFileSync(`${__dirname}/../package.json`).toString());\nconst SCRIPT_CODE_MARKER = 'script.js.';\n\nlet webstormDebug: string | undefined;\n\nconst isCI = !!process.env.CI;\n\n// ambient declarations for typescript\nlet tsAmbient: Record;\n\n// TypeScript's scripts are only recompiled if their source hash changes.\n// If an adapter update fixes the compilation bugs, a user won't notice until the changes and re-saves the script.\n// To avoid that, we also include the\n// adapter version and TypeScript version in the hash\nconst tsSourceHashBase = `versions:adapter=${packageJson.version},typescript=${packageJson.dependencies.typescript}`;\n\n// taken from here: https://stackoverflow.com/questions/11887934/how-to-check-if-dst-daylight-saving-time-is-in-effect-and-if-so-the-offset\nfunction dstOffsetAtDate(dateInput: Date): number {\n const fullYear: number = dateInput.getFullYear() | 0;\n // \"Leap Years are any year that can be exactly divided by 4 (2012, 2016, etc.)\n // except if it can be exactly divided by 100, then it isn't (2100, 2200, etc.)\n // except if it can be exactly divided by 400, then it is (2000, 2400)\"\n // (https://www.mathsisfun.com/leap-years.html).\n const isLeapYear: 1 | 0 = ((fullYear & 3) | ((fullYear / 100) & 3)) === 0 ? 1 : 0;\n // (fullYear & 3) = (fullYear % 4), but faster\n //Alternative:var isLeapYear=(new Date(currentYear,1,29,12)).getDate()===29?1:0\n const fullMonth: number = dateInput.getMonth() | 0;\n return (\n // 1. We know what the time since the Epoch really is\n +dateInput - // same as the dateInput.getTime() method\n // 2. We know what the time since the Epoch at the start of the year is\n +new Date(fullYear, 0) - // day defaults to 1 if not explicitly zeroed\n // 3. Now, subtract what we would expect the time to be if daylight savings\n // did not exist. This yields the time-offset due to daylight savings.\n // Calculate the day of the year in the Gregorian calendar\n // The code below works based upon the facts of signed right shifts\n // • (x) >> n: shifts n and fills in the n highest bits with 0s\n // • (-x) >> n: shifts n and fills in the n highest bits with 1s\n // (This assumes that x is a positive integer)\n ((((-1 + // the first day in the year is day 1\n (31 & (-fullMonth >> 4)) + // January // (-11)>>4 = -1\n ((28 + isLeapYear) & ((1 - fullMonth) >> 4)) + // February\n (31 & ((2 - fullMonth) >> 4)) + // March\n (30 & ((3 - fullMonth) >> 4)) + // April\n (31 & ((4 - fullMonth) >> 4)) + // May\n (30 & ((5 - fullMonth) >> 4)) + // June\n (31 & ((6 - fullMonth) >> 4)) + // July\n (31 & ((7 - fullMonth) >> 4)) + // August\n (30 & ((8 - fullMonth) >> 4)) + // September\n (31 & ((9 - fullMonth) >> 4)) + // October\n (30 & ((10 - fullMonth) >> 4)) + // November\n // There are no months past December: the year rolls into the next.\n // Thus, \"fullMonth\" is 0-based, so it will never be 12 in JavaScript\n\n (dateInput.getDate() | 0)) & // get day of the month\n 0xffff) *\n 24 *\n 60 + // 24 hours in a day, 60 minutes in an hour\n (dateInput.getHours() & 0xff) * 60 + // 60 minutes in an hour\n (dateInput.getMinutes() & 0xff)) |\n 0) *\n 60 *\n 1000 - // 60 seconds in a minute * 1000 milliseconds in a second\n (dateInput.getSeconds() & 0xff) * 1000 - // 1000 milliseconds in a second\n dateInput.getMilliseconds()\n );\n}\n\nconst regExGlobalOld = /_global$/;\nconst regExGlobalNew = /script\\.js\\.global\\./;\n\nfunction checkIsGlobal(obj: ioBroker.ScriptObject): boolean {\n return obj?.common && (regExGlobalOld.test(obj.common.name) || regExGlobalNew.test(obj._id));\n}\n\nfunction fileMatching(sub: FileSubscriptionResult, id: string, fileName: string): boolean {\n if (sub.idRegEx) {\n if (!sub.idRegEx.test(id)) {\n return false;\n }\n } else {\n if (sub.id !== id) {\n return false;\n }\n }\n if (sub.fileRegEx) {\n if (!sub.fileRegEx.test(fileName)) {\n return false;\n }\n } else {\n if (sub.fileNamePattern !== fileName) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getNextTimeEvent(time: string, useNextDay?: boolean): Date {\n const now: Date = getAstroStartOfDay();\n const [timeHours, timeMinutes] = time.split(':');\n const nTimeHours = parseInt(timeHours, 10);\n const nTimeMinutes = parseInt(timeMinutes, 10);\n if (\n useNextDay &&\n (now.getHours() > nTimeHours || (now.getHours() === nTimeHours && now.getMinutes() > nTimeMinutes))\n ) {\n now.setDate(now.getDate() + 1);\n }\n\n now.setHours(nTimeHours);\n now.setMinutes(nTimeMinutes);\n\n return now;\n}\n\nfunction getAstroStartOfDay(): Date {\n const d = new Date();\n d.setMinutes(0);\n d.setSeconds(0);\n d.setMilliseconds(0);\n d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n d.setUTCHours(0);\n\n return d;\n}\n\nfunction formatHoursMinutesSeconds(date: Date): string {\n const h = String(date.getHours());\n const m = String(date.getMinutes());\n const s = String(date.getSeconds());\n\n return `${h.padStart(2, '0')}:${m.padStart(2, '0')}:${s.padStart(2, '0')}`;\n}\n\n// Due to a npm bug, virtual-tsc may be hoisted to the top level node_modules but\n// TypeScript may still be in the adapter level (https://npm.community/t/packages-with-peerdependencies-are-incorrectly-hoisted/4794),\n// so we need to tell virtual-tsc where TypeScript is\nsetTypeScriptResolveOptions({\n paths: [require.resolve('typescript')],\n});\n\n// compiler instance for global JS declarations\nconst jsDeclarationServer: Server = new Server(jsDeclarationCompilerOptions, isCI ? false : undefined);\n/**\n * Stores the IDs of script objects whose change should be ignored because\n * the compiled source was just updated\n */\n\nclass JavaScript extends Adapter {\n declare public config: JavaScriptAdapterConfig;\n\n private readonly context: JavascriptContext;\n\n private errorLogFunction: {\n error: (msg: string) => void;\n warn: (msg: string) => void;\n info: (msg: string) => void;\n debug: (msg: string) => void;\n silly: (msg: string) => void;\n } = {\n error: (msg: string) => console.error(msg),\n warn: (msg: string) => console.warn(msg),\n info: (msg: string) => console.log(msg),\n debug: (msg: string) => console.debug(msg),\n silly: (msg: string) => console.debug(msg),\n };\n\n private readonly mods: MODULES;\n\n private objectsInitDone = false;\n private statesInitDone = false;\n\n private objects: Record = {};\n private states: Record = {};\n private readonly interimStateValues: Record = {};\n private readonly stateIds: string[] = [];\n private readonly subscriptions: SubscriptionResult[] = [];\n private readonly subscriptionsFile: FileSubscriptionResult[] = [];\n private readonly subscriptionsObject: SubscribeObject[] = [];\n private readonly subscribedPatterns: Record = {};\n private readonly subscribedPatternsFile: Record = {};\n private readonly adapterSubs: Record = {};\n private readonly timers: { [scriptName: string]: JavascriptTimer[] } = {};\n private readonly _enums: string[] = [];\n private readonly names: { [name: string]: string | string[] } = {}; // name: id\n private readonly scripts: Record = {};\n private readonly messageBusHandlers: Record<\n string,\n Record void }[]>\n > = {};\n private readonly logSubscriptions: Record<\n string,\n {\n sandbox: SandboxType;\n cb: (info: LogMessage) => void;\n id: number;\n severity: ioBroker.LogLevel | '*';\n }[]\n > = {};\n private readonly tempDirectories: { [scriptName: string]: string } = {}; // name: path\n private readonly folderCreationVerifiedObjects: Record = {};\n\n /** if logs are subscribed or not */\n private logSubscribed = false;\n\n private timeSettings: {\n format12: boolean;\n leadingZeros: boolean;\n } = { format12: false, leadingZeros: true };\n\n private dayScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n private sunScheduleTimer: NodeJS.Timeout | null = null; // schedule for sun moment times\n private timeScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n\n private activeStr = ''; // enabled state prefix\n\n private mirror: Mirror | undefined;\n\n private stopCounters: Record = {};\n\n private setStateCountCheckInterval: NodeJS.Timeout | null = null;\n\n private globalScript = '';\n /** Generated declarations for global TypeScripts */\n private globalDeclarations = '';\n // Remember which definitions the global scripts\n // have access to, because it depends on the compilation order\n private knownGlobalDeclarationsByScript: Record = {};\n private globalScriptLines = 0;\n // compiler instance for typescript\n private tsServer: Server;\n\n private readonly ignoreObjectChange: Set = new Set();\n\n private debugState: DebugState = {\n scriptName: '',\n child: null,\n promiseOnEnd: null,\n paused: false,\n started: 0,\n running: false,\n };\n\n constructor(options: Partial = {}) {\n options = {\n ...options,\n name: 'javascript', // adapter name\n useFormatDate: true,\n /**\n * If the JS-Controller catches an unhandled error, this will be called\n * so we have a chance to handle it ourselves.\n */\n error: (err: Error): boolean => {\n // Identify unhandled errors originating from callbacks in scripts\n // These are not caught by wrapping the execution code in try-catch\n if (err && typeof err.stack === 'string') {\n const scriptCodeMarkerIndex = err.stack.indexOf(SCRIPT_CODE_MARKER);\n if (scriptCodeMarkerIndex > -1) {\n // This is a script error\n let scriptName = err.stack.substring(scriptCodeMarkerIndex);\n scriptName = scriptName.substring(0, scriptName.indexOf(':'));\n this.logError(scriptName, 'Error:', err);\n\n // Leave the script running for now\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n // check if a path contains adaptername but not own node_module\n // this regex matched \"iobroker.javascript/\" if NOT followed by \"node_modules\"\n if (!err.stack.match(/iobroker\\.javascript[/\\\\](?!.*node_modules).*/g)) {\n // This is an error without any info on origin (mostly async errors like connection errors)\n // also consider it as being from a script\n this.log.error(\n 'An error happened which is most likely from one of your scripts, but the originating script could not be detected.',\n );\n this.log.error(`Error: ${err.message}`);\n this.log.error(err.stack);\n\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n }\n\n return false;\n },\n };\n\n super(options as AdapterOptions);\n\n this.on('objectChange', this.onObjectChange.bind(this));\n this.on('stateChange', this.onStateChange.bind(this));\n this.on('ready', this.onReady.bind(this));\n this.on('message', this.onMessage.bind(this));\n this.on('unload', this.onUnload.bind(this));\n this.on('fileChange', this.onFileChange.bind(this));\n this.on('log', this.onLog.bind(this));\n\n this.mods = {\n fs: {} as ProtectFs,\n 'fs/promises': {} as ProtectFs['promises'],\n dgram,\n crypto,\n dns,\n events,\n http,\n https,\n http2,\n net,\n os,\n path,\n util,\n child_process,\n stream,\n zlib,\n\n suncalc,\n axios,\n wake_on_lan,\n nodeSchedule,\n };\n\n // check the webstorm debug and just debug modes\n let debugMode: string | undefined;\n if (process.argv) {\n for (let a = 1; a < process.argv.length; a++) {\n if (process.argv[a].startsWith('--webstorm')) {\n webstormDebug = process.argv[a].replace(/^(.*?=\\s*)/, '');\n }\n if (process.argv[a] === '--debugScript') {\n if (!process.argv[a + 1]) {\n console.log('No script name provided');\n process.exit(300);\n } else {\n debugMode = process.argv[a + 1];\n }\n }\n }\n }\n\n this.context = {\n mods: this.mods,\n objects: this.objects,\n states: this.states,\n interimStateValues: this.interimStateValues,\n stateIds: this.stateIds,\n errorLogFunction: this.errorLogFunction,\n subscriptions: this.subscriptions,\n subscriptionsFile: this.subscriptionsFile,\n subscriptionsObject: this.subscriptionsObject,\n subscribedPatterns: this.subscribedPatterns,\n subscribedPatternsFile: this.subscribedPatternsFile,\n adapterSubs: this.adapterSubs,\n cacheObjectEnums: {},\n timers: this.timers,\n enums: this._enums,\n names: this.names,\n scripts: this.scripts,\n messageBusHandlers: this.messageBusHandlers,\n logSubscriptions: this.logSubscriptions,\n tempDirectories: this.tempDirectories,\n folderCreationVerifiedObjects: this.folderCreationVerifiedObjects,\n\n isEnums: false, // If some subscription wants enum\n channels: null,\n devices: null,\n logWithLineInfo: this.logWithLineInfo.bind(this),\n scheduler: null,\n timerId: 0,\n rulesOpened: null, // opened rules\n language: this.language || 'en',\n\n updateLogSubscriptions: this.updateLogSubscriptions.bind(this),\n convertBackStringifiedValues: this.convertBackStringifiedValues.bind(this),\n updateObjectContext: this.updateObjectContext.bind(this),\n prepareStateObject: this.prepareStateObject.bind(this),\n debugMode,\n getAbsoluteDefaultDataDir,\n adapter: this as unknown as ioBroker.Adapter,\n logError: this.logError.bind(this),\n };\n\n this.tsServer = new Server(tsCompilerOptions, this.tsLog);\n }\n\n async onObjectChange(id: string, obj?: ioBroker.Object | null): Promise {\n // Check if we should ignore this change (once!) because we just updated the compiled sources\n if (this.ignoreObjectChange.has(id)) {\n // Update the cached script object and do nothing more\n this.objects[id] = obj as ioBroker.Object;\n this.ignoreObjectChange.delete(id);\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.objectsInitDone) {\n if (obj) {\n this.objects[id] = obj;\n }\n return;\n }\n\n if (id.startsWith('enum.')) {\n // clear cache\n this.context.cacheObjectEnums = {};\n\n // update this._enums array\n if (obj) {\n // If new\n if (!this._enums.includes(id)) {\n this._enums.push(id);\n this._enums.sort();\n }\n } else {\n const pos = this._enums.indexOf(id);\n // if deleted\n if (pos !== -1) {\n this._enums.splice(pos, 1);\n }\n }\n }\n\n if (id === 'system.config' && obj?.common?.language) {\n // set language for debug messages\n setLanguage(obj.common.language);\n this.language = obj.common.language;\n this.context.language = this.language as ioBroker.Languages;\n }\n\n // update stored time format for variables.dayTime\n if (id === `${this.namespace}.variables.dayTime` && obj?.native) {\n this.timeSettings.format12 = obj.native.format12 || false;\n this.timeSettings.leadingZeros = obj.native.leadingZeros === undefined ? true : obj.native.leadingZeros;\n }\n\n // send changes to disk mirror\n this.mirror?.onObjectChange(id, obj as ioBroker.ScriptObject | null);\n\n const formerObj = this.objects[id];\n\n this.updateObjectContext(id, obj); // Update all Meta object data\n\n // for the alias object changes on the state objects, we need to manually update the\n // state cache value, because the new value is only published on the next change\n if (obj?.type === 'state' && id.startsWith('alias.0.')) {\n // execute async for speed\n this.getForeignStateAsync(id)\n .then(state => {\n if (state) {\n this.states[id] = state;\n } else if (this.states[id] !== undefined) {\n delete this.states[id];\n }\n })\n .catch(() => {\n /* ignore */\n });\n }\n\n this.subscriptionsObject.forEach(sub => {\n // ToDo: implement comparing with id.0.* too\n if (sub.pattern === id) {\n try {\n sub.callback(id, obj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n });\n\n // handle Script object updates\n if (!obj && formerObj?.type === 'script') {\n // Object Deleted just now\n if (checkIsGlobal(formerObj)) {\n // it was a global Script, and it was enabled and is now deleted => restart adapter\n if (formerObj.common.enabled) {\n this.log.info(`Active global Script ${id} deleted. Restart instance.`);\n this.restart();\n }\n } else if (formerObj.common?.engine === `system.adapter.${this.namespace}`) {\n // It was a non-global Script and deleted => stop and remove it\n await this.stopScript(id);\n\n // delete scriptEnabled.blabla variable\n const idActive = `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idActive);\n await this.delObjectAsync(idActive);\n\n // delete scriptProblem.blabla variable\n const idProblem = `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idProblem);\n await this.delObjectAsync(idProblem);\n }\n } else if (!formerObj && obj?.type === 'script') {\n // New script that does not exist before\n if (checkIsGlobal(obj)) {\n // new global script added => restart adapter\n if (obj.common.enabled) {\n this.log.info(`Active global Script ${id} created. Restart instance.`);\n this.restart();\n }\n } else if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // new non-global script - create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n if (obj.common.enabled) {\n // if enabled => Start script\n await this.loadScriptById(id);\n }\n }\n } else if (obj?.type === 'script' && formerObj?.common) {\n // Script changed ...\n if (checkIsGlobal(obj)) {\n if (obj.common.enabled || formerObj.common.enabled) {\n this.log.info(`Global Script ${id} updated. Restart instance.`);\n this.restart();\n }\n } else {\n // No global script\n if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n }\n\n if (\n (formerObj.common.enabled && !obj.common.enabled) ||\n (formerObj.common.engine === `system.adapter.${this.namespace}` &&\n obj.common.engine !== `system.adapter.${this.namespace}`)\n ) {\n // Script disabled\n if (formerObj.common.enabled && formerObj.common.engine === `system.adapter.${this.namespace}`) {\n // Remove it from executing\n await this.stopScript(id);\n }\n } else if (\n (!formerObj.common.enabled && obj.common.enabled) ||\n (formerObj.common.engine !== `system.adapter.${this.namespace}` &&\n obj.common.engine === `system.adapter.${this.namespace}`)\n ) {\n // Script enabled\n\n if (obj.common.enabled && obj.common.engine === `system.adapter.${this.namespace}`) {\n // Start script\n await this.loadScriptById(id);\n }\n } else {\n // if (obj.common.source !== formerObj.common.source) {\n // Source changed => restart the script\n this.stopCounters[id] = this.stopCounters[id] ? this.stopCounters[id] + 1 : 1;\n void this.stopScript(id).then(() => {\n // only start again after stop when \"last\" object change to prevent problems on\n // multiple changes in fast frequency\n if (!--this.stopCounters[id]) {\n void this.loadScriptById(id);\n }\n });\n }\n }\n }\n }\n\n onStateChange(id: string, state?: ioBroker.State | null): void {\n if (this.interimStateValues[id] !== undefined) {\n // any update invalidates the remembered interim value\n delete this.interimStateValues[id];\n }\n if (!id || id.startsWith('messagebox.') || id.startsWith('log.')) {\n return;\n }\n\n if (id === `${this.namespace}.debug.to` && state && !state.ack) {\n if (!this.context.debugMode) {\n this.debugSendToInspector(state.val);\n }\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.statesInitDone) {\n if (state) {\n this.states[id] = state;\n }\n return;\n }\n\n const oldState: ioBroker.State | null | undefined = this.states[id];\n if (state) {\n if (oldState) {\n // enable or disable script\n if (!state.ack && id.startsWith(this.activeStr) && this.objects[id]?.native?.script) {\n void this.extendForeignObject(this.objects[id].native.script, {\n common: { enabled: state.val },\n });\n }\n\n // monitor if adapter is alive and send all subscriptions once more, after adapter goes online\n if (/*oldState && */ oldState.val === false && state.val && id.endsWith('.alive')) {\n if (this.adapterSubs[id]) {\n const parts = id.split('.');\n const a = `${parts[2]}.${parts[3]}`;\n for (let t = 0; t < this.adapterSubs[id].length; t++) {\n this.log.info(`Detected coming adapter \"${a}\". Send subscribe: ${this.adapterSubs[id][t]}`);\n this.sendTo(a, 'subscribe', this.adapterSubs[id][t]);\n }\n }\n }\n } else if (/*!oldState && */ !this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n this.states[id] = state;\n } else {\n if (oldState) {\n delete this.states[id];\n }\n state = {} as ioBroker.State;\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n }\n const _eventObj = createEventObject(\n this.context,\n id,\n this.convertBackStringifiedValues(id, state),\n this.convertBackStringifiedValues(id, oldState),\n );\n\n // if this state matches any subscriptions\n for (let i = 0, l = this.subscriptions.length; i < l; i++) {\n const sub = this.subscriptions[i];\n if (sub?.patternCompareFunctions && patternMatching(_eventObj, sub.patternCompareFunctions)) {\n try {\n sub.callback(_eventObj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n onFileChange(id: string, fileName: string, size: number | null): void {\n // if this file matches any subscriptions\n for (let i = 0, l = this.subscriptionsFile.length; i < l; i++) {\n const sub = this.subscriptionsFile[i];\n if (sub && fileMatching(sub, id, fileName)) {\n try {\n sub.callback(id, fileName, size, sub.withFile);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n async onUnload(callback: () => void): Promise {\n await this.debugStop();\n this.stopTimeSchedules();\n if (this.setStateCountCheckInterval) {\n clearInterval(this.setStateCountCheckInterval);\n this.setStateCountCheckInterval = null;\n }\n await this.stopAllScripts();\n if (typeof callback === 'function') {\n callback();\n }\n }\n\n async onReady(): Promise {\n this.errorLogFunction = this.log;\n this.context.errorLogFunction = this.log;\n\n this.config.maxSetStatePerMinute = parseInt(this.config.maxSetStatePerMinute as unknown as string, 10) || 1000;\n this.config.maxTriggersPerScript = parseInt(this.config.maxTriggersPerScript as unknown as string, 10) || 100;\n\n if (this.supportsFeature?.('PLUGINS')) {\n const sentryInstance: InstanceType = this.getPluginInstance('sentry') as InstanceType<\n typeof SentryPlugin\n >;\n if (sentryInstance) {\n const Sentry = sentryInstance.getSentryObject();\n Sentry?.withScope(scope => {\n scope.addEventProcessor((event, _hint) => {\n if (event.exception?.values?.[0]) {\n const eventData = event.exception.values[0];\n if (\n eventData.stacktrace?.frames &&\n Array.isArray(eventData.stacktrace.frames) &&\n eventData.stacktrace.frames.length\n ) {\n // Exclude event if script Marker is included\n if (\n eventData.stacktrace.frames.find(frame =>\n frame.filename?.includes(SCRIPT_CODE_MARKER),\n )\n ) {\n return null;\n }\n // Exclude event if own directory is included but not inside own node_modules\n const ownNodeModulesDir = join(__dirname, 'node_modules');\n if (\n !eventData.stacktrace.frames.find(\n frame =>\n frame.filename &&\n frame.filename.includes(__dirname) &&\n !frame.filename.includes(ownNodeModulesDir),\n )\n ) {\n return null;\n }\n // We have exception data and did not sort it out, so report it\n return event;\n }\n }\n\n // No exception in it ... do not report\n return null;\n });\n });\n }\n }\n\n await this.main();\n }\n\n onMessage(obj: ioBroker.Message): void {\n switch (obj?.command) {\n // process messageTo commands\n case 'toScript':\n case 'jsMessageBus':\n if (\n obj.message &&\n (obj.message.instance === null ||\n obj.message.instance === undefined ||\n `javascript.${obj.message.instance}` === this.namespace ||\n obj.message.instance === this.namespace)\n ) {\n Object.keys(this.messageBusHandlers).forEach(name => {\n // script name could be script.js.xxx or only xxx\n if (\n (!obj.message.script || obj.message.script === name) &&\n this.messageBusHandlers[name][obj.message.message]\n ) {\n this.messageBusHandlers[name][obj.message.message].forEach(handler => {\n const sandbox = handler.sandbox;\n\n sandbox.verbose && sandbox.log(`onMessage: ${JSON.stringify(obj.message)}`, 'info');\n\n try {\n if (obj.callback) {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n if (sandbox.verbose) {\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n }\n\n this.sendTo(obj.from, obj.command, result, obj.callback);\n });\n } else {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n sandbox.verbose &&\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n });\n }\n } catch (err: unknown) {\n void this.setState(\n `scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`,\n true,\n true,\n );\n this.logError(name, 'Error in callback:', err as Error);\n }\n });\n }\n });\n }\n break;\n\n case 'loadTypings': {\n // Load typings for the editor\n const typings: Record = {};\n\n // try to load TypeScript lib files from disk\n try {\n const typescriptLibs = resolveTypescriptLibs(targetTsLib);\n Object.assign(typings, typescriptLibs);\n } catch {\n /* ok, no lib then */\n }\n\n // provide the already-loaded ioBroker typings and global script declarations\n Object.assign(typings, tsAmbient);\n\n // also provide the known global declarations for each global script\n for (const globalScriptPaths of Object.keys(this.knownGlobalDeclarationsByScript)) {\n typings[`${globalScriptPaths}.d.ts`] = this.knownGlobalDeclarationsByScript[globalScriptPaths];\n }\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { typings }, obj.callback);\n }\n break;\n }\n\n case 'calcAstroAll': {\n if (obj.message) {\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n let astroEvents: GetTimesResult & { nextSunrise: Date; nextSunset: Date } = {} as GetTimesResult & {\n nextSunrise: Date;\n nextSunset: Date;\n };\n try {\n astroEvents = this.mods.suncalc.getTimes(today, latitude, longitude);\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n if (astroEvents) {\n try {\n astroEvents.nextSunrise = this.getAstroEvent(\n today,\n obj.message.sunriseEvent || this.config.sunriseEvent,\n obj.message.sunriseLimitStart || this.config.sunriseLimitStart,\n obj.message.sunriseLimitEnd || this.config.sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n astroEvents.nextSunset = this.getAstroEvent(\n today,\n obj.message.sunsetEvent || this.config.sunsetEvent,\n obj.message.sunsetLimitStart || this.config.sunsetLimitStart,\n obj.message.sunsetLimitEnd || this.config.sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n }\n\n const result: Record = {};\n const keys = Object.keys(astroEvents).sort(\n (a, b) =>\n (astroEvents as unknown as Record)[a] -\n (astroEvents as unknown as Record)[b],\n );\n keys.forEach(key => {\n const validDate =\n (astroEvents as unknown as Record)[key] !== null &&\n !isNaN((astroEvents as unknown as Record)[key].getTime());\n\n result[key] = {\n isValidDate: validDate,\n serverTime: validDate\n ? formatHoursMinutesSeconds((astroEvents as unknown as Record)[key])\n : 'n/a',\n date: validDate\n ? (astroEvents as unknown as Record)[key].toISOString()\n : 'n/a',\n };\n });\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, result, obj.callback);\n }\n }\n break;\n }\n\n case 'calcAstro': {\n if (obj.message) {\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n\n const sunriseEvent = obj.message?.sunriseEvent || this.config.sunriseEvent;\n const sunriseLimitStart = obj.message?.sunriseLimitStart || this.config.sunriseLimitStart;\n const sunriseLimitEnd = obj.message?.sunriseLimitEnd || this.config.sunriseLimitEnd;\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const nextSunrise = this.getAstroEvent(\n today,\n sunriseEvent,\n sunriseLimitStart,\n sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n\n const sunsetEvent = obj.message?.sunsetEvent || this.config.sunsetEvent;\n const sunsetLimitStart = obj.message?.sunsetLimitStart || this.config.sunsetLimitStart;\n const sunsetLimitEnd = obj.message?.sunsetLimitEnd || this.config.sunsetLimitEnd;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const nextSunset = this.getAstroEvent(\n today,\n sunsetEvent,\n sunsetLimitStart,\n sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n\n const validDateSunrise = nextSunrise !== null && !isNaN(nextSunrise.getTime());\n const validDateSunset = nextSunset !== null && !isNaN(nextSunset.getTime());\n\n this.log.debug(\n `calcAstro sunrise: ${sunriseEvent} -> start ${sunriseLimitStart}, end: ${sunriseLimitEnd}, offset: ${sunriseOffset} - ${validDateSunrise ? nextSunrise.toISOString() : 'n/a'}`,\n );\n this.log.debug(\n `calcAstro sunset: ${sunsetEvent} -> start ${sunsetLimitStart}, end: ${sunsetLimitEnd}, offset: ${sunsetOffset} - ${validDateSunset ? nextSunset.toISOString() : 'n/a'}`,\n );\n\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n nextSunrise: {\n isValidDate: validDateSunrise,\n serverTime: validDateSunrise ? formatHoursMinutesSeconds(nextSunrise) : 'n/a',\n date: nextSunrise.toISOString(),\n },\n nextSunset: {\n isValidDate: validDateSunset,\n serverTime: validDateSunset ? formatHoursMinutesSeconds(nextSunset) : 'n/a',\n date: nextSunset.toISOString(),\n },\n },\n obj.callback,\n );\n }\n }\n break;\n }\n\n case 'debug': {\n if (!this.context.debugMode) {\n this.debugStart(obj.message);\n }\n break;\n }\n\n case 'debugStop': {\n if (!this.context.debugMode) {\n void this.debugStop().then(() => console.log('stopped'));\n }\n break;\n }\n\n case 'rulesOn': {\n this.context.rulesOpened = obj.message;\n console.log(`Enable messaging for ${this.context.rulesOpened}`);\n break;\n }\n\n case 'rulesOff': {\n // maybe if (context.rulesOpened === obj.message)\n console.log(`Disable messaging for ${this.context.rulesOpened}`);\n this.context.rulesOpened = null;\n break;\n }\n\n case 'getIoBrokerDataDir': {\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n dataDir: getAbsoluteDefaultDataDir(),\n sep,\n },\n obj.callback,\n );\n }\n break;\n }\n\n case 'prettier': {\n // Format the code with Prettier\n if (obj.message && typeof obj.message.code === 'string') {\n try {\n prettier\n .format(obj.message.code, {\n parser: obj.message.type === 'typescript' ? 'babel-ts' : 'babel',\n printWidth: 120,\n semi: true,\n tabWidth: 4,\n useTabs: false,\n trailingComma: 'all',\n singleQuote: true,\n singleAttributePerLine: true,\n endOfLine: 'lf',\n bracketSpacing: true,\n arrowParens: 'avoid',\n quoteProps: 'as-needed',\n })\n .then(formattedCode => {\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { code: formattedCode }, obj.callback);\n } else {\n this.logWithLineInfo(`Formatted code:\\n${formattedCode}`);\n }\n })\n .catch(e => {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n });\n } catch (e) {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n }\n } else {\n this.sendTo(obj.from, obj.command, { error: 'No code provided' }, obj.callback);\n }\n break;\n }\n }\n }\n\n onLog(msg: any): void {\n Object.keys(this.logSubscriptions).forEach((name: string): void =>\n this.logSubscriptions[name].forEach(handler => {\n if (\n typeof handler.cb === 'function' &&\n (handler.severity === '*' || handler.severity === msg.severity)\n ) {\n handler.sandbox.logHandler = handler.severity || '*';\n handler.cb.call(handler.sandbox, msg);\n handler.sandbox.logHandler = undefined;\n }\n }),\n );\n }\n\n logError(scriptName: string, msg: string, e: Error, offs?: number): void {\n const stack = e.stack ? e.stack.toString().split('\\n') : e ? e.toString() : '';\n if (!msg.includes('\\n')) {\n msg = msg.replace(/[: ]*$/, ': ');\n }\n if (!msg.endsWith(' ')) {\n msg += ':';\n }\n if (!scriptName.startsWith(SCRIPT_CODE_MARKER)) {\n scriptName = SCRIPT_CODE_MARKER + scriptName;\n }\n\n this.errorLogFunction.error(`${scriptName}: ${msg}${this.fixLineNo(stack[0])}`);\n for (let i = offs || 1; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.error(`${scriptName}: ${this.fixLineNo(stack[i])}`);\n }\n }\n\n logWithLineInfo(msg: string): void {\n this.errorLogFunction.warn(msg);\n\n // get current error stack\n const stack = new Error().stack?.split('\\n');\n\n if (stack) {\n for (let i = 3; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInContext|runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.warn(this.fixLineNo(stack[i]));\n }\n }\n }\n\n async main(): Promise {\n // Patch the font as it sometimes is wrong\n if (!this.context.debugMode) {\n if (await this.patchFont()) {\n this.log.debug('Font patched');\n }\n }\n\n this.log.debug(`config.subscribe (Do not subscribe all states on start): ${this.config.subscribe}`);\n\n // correct jsonConfig for admin\n const instObj: ioBroker.InstanceObject | null | undefined = await this.getForeignObjectAsync(\n `system.adapter.${this.namespace}`,\n );\n if (instObj?.common) {\n if (instObj.common.adminUI?.config !== 'json') {\n if (instObj.common.adminUI) {\n instObj.common.adminUI.config = 'json';\n } else {\n instObj.common.adminUI = { config: 'json' };\n }\n void this.setForeignObject(instObj._id, instObj);\n }\n }\n\n if (webstormDebug) {\n this.errorLogFunction = {\n error: console.error,\n warn: console.warn,\n info: console.info,\n debug: console.log,\n silly: console.log,\n };\n this.context.errorLogFunction = this.errorLogFunction;\n }\n this.activeStr = `${this.namespace}.scriptEnabled.`;\n\n this.mods.fs = new ProtectFs(this.log, getAbsoluteDefaultDataDir());\n this.mods['fs/promises'] = this.mods.fs.promises; // to avoid require('fs/promises');\n\n // try to read TS declarations\n try {\n tsAmbient = {\n 'javascript.d.ts': readFileSync(this.mods.path.join(__dirname, 'lib/javascript.d.ts'), 'utf8'),\n };\n this.tsServer.provideAmbientDeclarations(tsAmbient);\n jsDeclarationServer.provideAmbientDeclarations(tsAmbient);\n } catch (err: unknown) {\n this.log.warn(`Could not read TypeScript ambient declarations: ${err as Error}`);\n // This should not happen, so send an error report to Sentry\n if (this.supportsFeature && this.supportsFeature('PLUGINS')) {\n const sentryInstance = this.getPluginInstance('sentry');\n if (sentryInstance) {\n const sentryObject = sentryInstance.getSentryObject();\n sentryObject?.captureException(err as Error);\n }\n }\n // Keep the adapter from crashing when the included typings cannot be read\n tsAmbient = {};\n }\n\n await this.installLibraries();\n // Load the TS declarations for Node.js and all 3rd party modules\n this.loadTypeScriptDeclarations();\n\n await this.getData();\n this.context.scheduler = new Scheduler(\n this.log,\n Date,\n this.mods.suncalc,\n this.config.latitude,\n this.config.longitude,\n );\n await this.dayTimeSchedules();\n await this.sunTimeSchedules();\n await this.timeSchedule();\n\n // Warning. It could have a side effect in compact mode, so all adapters will accept self-signed certificates\n if (this.config.allowSelfSignedCerts) {\n process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';\n }\n\n const doc = await this.getObjectViewAsync('script', 'javascript', {});\n if (doc?.rows?.length) {\n // assemble global script\n for (let g = 0; g < doc.rows.length; g++) {\n const obj = doc.rows[g].value;\n if (checkIsGlobal(obj)) {\n if (obj && obj.common) {\n const engineType = (obj.common.engineType || '').toLowerCase();\n\n if (obj.common.enabled) {\n if (engineType.startsWith('typescript')) {\n // TypeScript\n this.log.info(`${obj._id}: compiling TypeScript source...`);\n // In order to compile global TypeScript, we need to do some transformations\n // 1. For top-level-await, some statements must be wrapped in an immediately-invoked async function\n // 2. If any global script uses `import`, the declarations are no longer visible if they are not exported with `declare global`\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, true);\n // The source code must be transformed in order to support top level await\n // Global scripts must not be treated as a module, otherwise their methods\n // cannot be found by the normal scripts\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash: string = hashSource(\n tsSourceHashBase + this.globalDeclarations + transformedSource,\n );\n\n let compiled: string | undefined;\n let declarations: string | undefined;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n declarations = obj.common.declarations;\n this.log.info(\n `${obj._id}: source code did not change, using cached compilation result...`,\n );\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n continue;\n }\n\n const errors = tsCompiled.diagnostics\n .map(diag => `${diag.annotatedSource}\\n`)\n .join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(\n `${obj._id}: TypeScript compilation completed with errors:\\n${errors}`,\n );\n } else {\n this.log.info(`${obj._id}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result;\n // Global scripts that have been transformed to support `import` need to have their declarations transformed aswell\n declarations = transformGlobalDeclarations(tsCompiled.declarations || '');\n\n const newCommon: {\n compiled: string | undefined;\n declarations?: string;\n sourceHash: string;\n } = {\n sourceHash,\n compiled,\n };\n if (declarations) {\n newCommon.declarations = declarations;\n }\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(obj._id); // ignore the next change and don't restart scripts\n void this.extendForeignObject(obj._id, {\n common: newCommon,\n });\n } else {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${errors}`);\n continue;\n }\n }\n this.globalScript += `${compiled}\\n`;\n // if declarations were generated, remember them\n if (declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, declarations);\n }\n } else {\n // javascript\n const sourceCode = obj.common.source;\n this.globalScript += `${sourceCode}\\n`;\n\n // try to compile the declarations so TypeScripts can use\n // functions defined in global JavaScripts\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = jsDeclarationServer.compile(filename, sourceCode);\n } catch (err: unknown) {\n this.log.warn(\n `${obj._id}: Error while generating type declarations, skipping:\\n${err as Error}`,\n );\n continue;\n }\n // if declarations were generated, remember them\n if (tsCompiled.success && tsCompiled.declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, tsCompiled.declarations);\n }\n }\n }\n }\n }\n }\n }\n\n this.globalScript = this.globalScript.replace(/\\r\\n/g, '\\n');\n this.globalScriptLines = this.globalScript.split(/\\n/g).length - 1;\n\n if (doc?.rows?.length) {\n // load all scripts\n for (let i = 0; i < doc.rows.length; i++) {\n if (!checkIsGlobal(doc.rows[i].value)) {\n void this.loadScript(doc.rows[i].value);\n }\n }\n }\n\n if (this.config.mirrorPath) {\n this.config.mirrorInstance = parseInt(this.config.mirrorInstance as unknown as string, 10) || 0;\n if (this.instance === this.config.mirrorInstance) {\n const ioBDataDir = getAbsoluteDefaultDataDir() + sep;\n this.config.mirrorPath = normalize(this.config.mirrorPath);\n let mirrorForbidden = false;\n for (let dir of forbiddenMirrorLocations) {\n dir = join(ioBDataDir, dir) + sep;\n if (dir.includes(this.config.mirrorPath) || this.config.mirrorPath.startsWith(dir)) {\n this.log.error(`The Mirror directory is not allowed to be a central ioBroker directory!`);\n this.log.error(`Directory ${this.config.mirrorPath} is not allowed to mirror files!`);\n mirrorForbidden = true;\n break;\n }\n }\n if (!mirrorForbidden) {\n this.mirror = new Mirror({\n adapter: this,\n log: this.log,\n diskRoot: this.config.mirrorPath,\n });\n }\n }\n }\n\n // CHeck setState counter per minute and stop script if too high\n this.setStateCountCheckInterval = setInterval(() => {\n Object.keys(this.scripts).forEach(id => {\n if (!this.scripts[id]) {\n return;\n }\n const currentSetStatePerMinuteCounter = this.scripts[id].setStatePerMinuteCounter;\n this.scripts[id].setStatePerMinuteCounter = 0;\n if (currentSetStatePerMinuteCounter > this.config.maxSetStatePerMinute) {\n this.scripts[id].setStatePerMinuteProblemCounter++;\n this.log.debug(\n `${id}: Script has reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute in ${this.scripts[id].setStatePerMinuteProblemCounter} consecutive minutes`,\n );\n // Allow \"too high counters\" for 1 minute for script starts or such and only\n // stop the script when lasts longer\n if (this.scripts[id].setStatePerMinuteProblemCounter > 1) {\n this.log.error(\n `${id}: Script is calling setState more than ${this.config.maxSetStatePerMinute} times per minute! Stopping Script now! Please check your script!`,\n );\n void this.stopScript(id);\n }\n } else if (this.scripts[id].setStatePerMinuteProblemCounter > 0) {\n this.scripts[id].setStatePerMinuteProblemCounter--;\n this.log.debug(\n `Script ${id} has NOT reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute. Decrease problem counter to ${this.scripts[id].setStatePerMinuteProblemCounter}`,\n );\n }\n });\n }, 60000);\n }\n\n private loadTypeScriptDeclarations(): void {\n // try to load the typings on disk for all 3rd party modules\n const packages = [\n 'node', // this provides auto-completion for most builtins\n '@iobroker/types', // this provides auto-completion for most builtins\n ];\n // Also include user-selected libraries (but only those that are also installed)\n if (typeof this.config?.libraries === 'string' && typeof this.config.libraryTypings === 'string') {\n const installedLibs = this.config.libraries\n .split(/[,;\\s]+/)\n .map(s => s.trim().split('@')[0])\n .filter(s => !!s);\n\n const wantsTypings = this.config.libraryTypings\n .split(/[,;\\s]+/)\n .map(s => s.trim())\n .filter(s => !!s);\n // Add all installed libraries the user has requested typings for to the list of packages\n for (const lib of installedLibs) {\n if (wantsTypings.includes(lib) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n // Some packages have submodules (e.g., rxjs/operators) that are not exposed through the main entry point\n // If typings are requested for them, also add them if the base module is installed\n for (const lib of wantsTypings) {\n // Extract the package name and check if we need to add it\n if (!lib.includes('/')) {\n continue;\n }\n const pkgName = lib.substring(0, lib.indexOf('/'));\n\n if (installedLibs.includes(pkgName) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n }\n for (const pkg of packages) {\n let pkgTypings = resolveTypings(\n pkg,\n this.getAdapterScopedPackageIdentifier ? this.getAdapterScopedPackageIdentifier(pkg) : pkg,\n // node needs ambient typings, so we don't wrap it in declare module\n pkg !== 'node',\n );\n if (!pkgTypings) {\n // Create the empty dummy declarations so users don't get the \"not found\" error\n // for installed packages\n if (pkg.includes('/')) {\n pkgTypings = {\n [`node_modules/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n } else {\n pkgTypings = {\n [`node_modules/@types/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n }\n }\n this.log.debug(`Loaded TypeScript definitions for \"${pkg}\": ${JSON.stringify(Object.keys(pkgTypings))}`);\n // remember the declarations for the editor\n Object.assign(tsAmbient, pkgTypings);\n // and give the language servers access to them\n this.tsServer.provideAmbientDeclarations(pkgTypings);\n jsDeclarationServer.provideAmbientDeclarations(pkgTypings);\n }\n }\n\n updateObjectContext(id: string, obj: ioBroker.Object | null | undefined): void {\n if (obj) {\n // add state to state ID's list\n if (obj.type === 'state') {\n if (!this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n this.context.channels[chn] = this.context.channels[chn] || [];\n this.context.channels[chn].push(id);\n\n parts.pop();\n const dev = parts.join('.');\n this.context.devices[dev] = this.context.devices[dev] || [];\n this.context.devices[dev].push(id);\n }\n }\n } else {\n // delete object from state ID's list\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n if (this.context.channels[chn]) {\n const posChn = this.context.channels[chn].indexOf(id);\n posChn !== -1 && this.context.channels[chn].splice(posChn, 1);\n }\n\n parts.pop();\n const dev = parts.join('.');\n if (this.context.devices[dev]) {\n const posDev = this.context.devices[dev].indexOf(id);\n posDev !== -1 && this.context.devices[dev].splice(posDev, 1);\n }\n }\n\n delete this.folderCreationVerifiedObjects[id];\n }\n\n if (!obj && this.objects[id]) {\n // objects was deleted\n this.removeFromNames(id);\n delete this.objects[id];\n } else if (obj && !this.objects[id]) {\n // object was added\n this.objects[id] = obj;\n this.addToNames(obj);\n } else if (obj && this.objects[id].common) {\n // Object just changed\n this.objects[id] = obj;\n\n const n = this.getName(id);\n let nn = this.objects[id].common ? this.objects[id].common.name : '';\n\n if (nn && typeof nn === 'object') {\n nn = nn[getLanguage()] || nn.en;\n }\n\n if (n !== nn) {\n if (n) {\n this.removeFromNames(id);\n }\n if (nn) {\n this.addToNames(obj);\n }\n }\n }\n }\n\n async stopAllScripts(): Promise {\n const scripts = Object.keys(this.scripts);\n const promises: Promise[] = [];\n for (let i = 0; i < scripts.length; i++) {\n promises.push(this.stopScript(scripts[i]));\n }\n return Promise.all(promises).then(() => {});\n }\n\n convertBackStringifiedValues(\n id: string,\n state: ioBroker.State | null | undefined,\n ): ioBroker.State | null | undefined {\n if (\n state &&\n typeof state.val === 'string' &&\n this.objects[id]?.common &&\n (this.objects[id].common.type === 'array' || this.objects[id].common.type === 'object')\n ) {\n try {\n state.val = JSON.parse(state.val);\n } catch (err: any) {\n if (id.startsWith('javascript.') || id.startsWith('0_userdata.0')) {\n this.log.info(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n } else {\n this.log.debug(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n }\n }\n }\n return state;\n }\n\n prepareStateObjectSimple(id: string, state: ioBroker.StateValue, isAck: boolean): ioBroker.State {\n // otherwise, assume that the given state is the value to be set\n const oState: ioBroker.State = { val: state, ack: isAck } as ioBroker.State;\n\n return this.prepareStateObject(id, oState);\n }\n\n prepareStateObject(id: string, state: ioBroker.SettableState | null): ioBroker.State {\n let oState: ioBroker.State;\n\n if (state && typeof state === 'object') {\n oState = state as ioBroker.State;\n } else {\n oState = { val: null } as ioBroker.State;\n }\n\n if (this.config.subscribe) {\n return oState;\n }\n // set other values to have a full state object\n // mirrors logic from statesInRedis\n if (oState.ts === undefined) {\n oState.ts = Date.now();\n }\n\n if (oState.q === undefined) {\n oState.q = 0;\n }\n\n oState.from =\n typeof oState.from === 'string' && oState.from !== '' ? oState.from : `system.adapter.${this.namespace}`;\n\n if (oState.lc === undefined) {\n const formerStateValue = this.interimStateValues[id] || this.states[id];\n if (!formerStateValue) {\n oState.lc = oState.ts;\n } else {\n // isDeepStrictEqual works on objects and primitive values\n const hasChanged = !isDeepStrictEqual(formerStateValue.val, oState.val);\n if (!formerStateValue.lc || hasChanged) {\n oState.lc = oState.ts;\n } else {\n oState.lc = formerStateValue.lc;\n }\n }\n }\n\n return oState;\n }\n\n async getData(): Promise {\n await this.subscribeForeignObjectsAsync('*');\n\n if (!this.config.subscribe) {\n await this.subscribeForeignStatesAsync('*');\n } else {\n await this.subscribeStatesAsync('debug.to');\n await this.subscribeStatesAsync('scriptEnabled.*');\n }\n\n this.log.info('requesting all states');\n\n const statesPromise = this.getForeignStatesAsync('*')\n .then(res => {\n if (!res) {\n this.log.error(`Could not initialize states: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n if (!this.config.subscribe) {\n this.states = Object.assign(res, this.states);\n this.context.states = this.states;\n\n this.addGetProperty(this.states);\n }\n\n // remember all IDs\n for (const id in res) {\n if (Object.prototype.hasOwnProperty.call(res, id)) {\n this.stateIds.push(id);\n }\n }\n this.statesInitDone = true;\n this.log.info('received all states');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize states: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n this.log.info('requesting all objects');\n\n const objectsPromise = this.getObjectListAsync({ include_docs: true })\n .then(res => {\n if (!res?.rows) {\n this.log.error(`Could not initialize objects: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n this.objects = {};\n this.context.objects = this.objects;\n for (let i = 0; i < res.rows.length; i++) {\n if (!res.rows[i].doc) {\n this.log.debug(`Got empty object for index ${i} (${res.rows[i].id})`);\n continue;\n }\n if (this.objects[res.rows[i].doc._id] === undefined) {\n // If was already there ignore\n this.objects[res.rows[i].doc._id] = res.rows[i].doc;\n }\n this.objects[res.rows[i].doc._id].type === 'enum' && this._enums.push(res.rows[i].doc._id);\n\n // Collect all names\n this.addToNames(this.objects[res.rows[i].doc._id]);\n }\n this.addGetProperty(this.objects);\n\n const systemConfig = this.objects['system.config'];\n\n // set language for debug messages\n if (systemConfig?.common?.language) {\n setLanguage(systemConfig.common.language);\n this.language = systemConfig.common.language;\n this.context.language = this.language as ioBroker.Languages;\n } else if (this.language) {\n setLanguage(this.language);\n this.context.language = this.language;\n }\n\n // try to use system coordinates\n if (this.config.useSystemGPS) {\n if (systemConfig?.common?.latitude || systemConfig?.common?.longitude) {\n this.config.latitude = systemConfig.common.latitude;\n this.config.longitude = systemConfig.common.longitude;\n } else if (this.latitude && this.longitude) {\n this.config.latitude = this.latitude;\n this.config.longitude = this.longitude;\n }\n }\n this.config.latitude = parseFloat(this.config.latitude as unknown as string);\n this.config.longitude = parseFloat(this.config.longitude as unknown as string);\n\n if (isNaN(this.config.latitude)) {\n this.log.warn(`Configured latitude is not a number - check (instance/system) configuration`);\n } else if (this.config.latitude < -90 || this.config.latitude > 90) {\n this.log.warn(\n `Configured latitude \"${this.config.latitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n if (isNaN(this.config.longitude)) {\n this.log.warn(`Configured longitude is not a number - check (instance/system) configuration`);\n } else if (this.config.longitude < -180 || this.config.longitude > 180) {\n this.log.warn(\n `Configured longitude \"${this.config.longitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n this.config.sunriseEvent = this.config.sunriseEvent || 'nightEnd';\n this.config.sunriseOffset = this.config.sunriseOffset || 0;\n this.config.sunriseLimitStart = this.config.sunriseLimitStart || '06:00';\n this.config.sunriseLimitEnd = this.config.sunriseLimitEnd || '12:00';\n\n this.config.sunsetEvent = this.config.sunsetEvent || 'dusk';\n this.config.sunsetOffset = this.config.sunsetOffset || 0;\n this.config.sunsetLimitStart = this.config.sunsetLimitStart || '18:00';\n this.config.sunsetLimitEnd = this.config.sunsetLimitEnd || '23:00';\n\n this.objectsInitDone = true;\n this.log.info('received all objects');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize objects: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n return Promise.all([statesPromise, objectsPromise]).then(() => {});\n }\n\n async createActiveObject(id: string, enabled: boolean): Promise {\n const idActive = `${this.namespace}.scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idActive]) {\n this.objects[idActive] = {\n _id: idActive,\n common: {\n name: `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'controls script activity',\n type: 'boolean',\n write: true,\n read: true,\n role: 'switch.active',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idActive, this.objects[idActive]);\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[idActive] = intermediateStateValue;\n }\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idActive);\n if (state && state.val !== enabled) {\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[id] = intermediateStateValue;\n }\n }\n }\n }\n\n async createProblemObject(id: string): Promise {\n const idProblem = `${this.namespace}.scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idProblem]) {\n this.objects[idProblem] = {\n _id: idProblem,\n common: {\n name: `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'Script has a problem',\n type: 'boolean',\n expert: true,\n write: false,\n read: true,\n role: 'indicator.error',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idProblem, this.objects[idProblem]);\n await this.setForeignStateAsync(idProblem, false, true);\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idProblem);\n if (state && state.val !== false) {\n await this.setForeignStateAsync(idProblem, false, true);\n }\n }\n }\n\n addToNames(obj: ioBroker.Object): void {\n const id = obj._id;\n\n if (obj.common?.name) {\n let name = obj.common.name;\n if (name && typeof name === 'object') {\n name = name[getLanguage()] || name.en;\n }\n if (!name || typeof name !== 'string') {\n // TODO, take name in current language\n return;\n }\n\n if (!this.names[name]) {\n this.names[name] = id;\n } else {\n // convert to array\n if (!Array.isArray(this.names[name])) {\n this.names[name] = [this.names[name] as string];\n }\n\n (this.names[name] as string[]).push(id);\n }\n }\n }\n\n removeFromNames(id: string): void {\n const n = this.getName(id);\n\n if (n) {\n if (Array.isArray(this.names[n])) {\n const pos = this.names[n].indexOf(id);\n if (pos > -1) {\n this.names[n].splice(pos, 1);\n\n if (this.names[n].length === 1) {\n this.names[n] = this.names[n][0];\n }\n }\n } else {\n delete this.names[n];\n }\n }\n }\n\n getName(id: string): string | null {\n for (const n in this.names) {\n if (this.names[n] && Array.isArray(this.names[n])) {\n if (this.names[n].includes(id)) {\n return n;\n }\n } else if (this.names[n] === id) {\n return n;\n }\n }\n\n return null;\n }\n\n async installNpm(npmLib: string): Promise {\n return new Promise((resolve, reject) => {\n const path = __dirname;\n\n // Also, set the working directory (cwd) of the process instead of using --prefix\n // because that has ugly bugs on Windows\n const cmd = `npm install ${npmLib} --omit=dev`;\n this.log.info(`Installing ${npmLib} into ${__dirname} - cmd: ${cmd}`);\n\n // System call used for update of js-controller itself,\n // because during the installation the npm packet will be deleted too, but some files must be loaded even during the installation process.\n const child = this.mods.child_process.exec(cmd, {\n windowsHide: true,\n cwd: path,\n });\n\n child.stdout?.on('data', buf => this.log.info(buf.toString('utf8')));\n\n child.stderr?.on('data', buf => this.log.error(buf.toString('utf8')));\n\n child.on('err', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n child.on('error', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n\n child.on('exit', (code: number /* , signal */) => {\n if (code) {\n this.log.error(`Cannot install ${npmLib}: ${code}`);\n reject(new Error(`Cannot install ${npmLib}: ${code}`));\n }\n // command succeeded\n resolve(code);\n });\n });\n }\n\n async installLibraries(): Promise {\n if (typeof this.config?.libraries !== 'string') {\n this.config.libraries = '';\n }\n\n const libraries: string[] = this.config.libraries\n .split(/[,;\\s]+/)\n .map(d => d.trim())\n .filter(d => d);\n\n this.log.debug(`Custom libraries in config: \"${this.config.libraries}\": ${JSON.stringify(libraries)}`);\n\n let installedNodeModules: string[] = [];\n const keepModules: string[] = [];\n\n // js-controller >= 6.x\n if (typeof this.listInstalledNodeModules === 'function') {\n installedNodeModules = await this.listInstalledNodeModules();\n\n this.log.debug(`Found installed libraries: ${JSON.stringify(installedNodeModules)}`);\n }\n\n for (const lib of libraries) {\n let depName = lib;\n let version = 'latest';\n\n if (depName.includes('@') && depName.lastIndexOf('@') > 0) {\n const parts = depName.split('@');\n version = parts.pop() ?? 'latest';\n depName = parts.join('@');\n }\n\n /** The real module name, because the dependency can be an url too */\n let moduleName = depName;\n\n if (URL.canParse(depName)) {\n moduleName = await requestModuleNameByUrl(depName);\n\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\" (from ${depName})`);\n } else {\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\"`);\n }\n\n keepModules.push(moduleName);\n\n // js-controller >= 6.x\n if (typeof this.installNodeModule === 'function') {\n try {\n const result = await this.installNodeModule(depName, { version });\n if (result.success) {\n this.log.debug(`Installed custom library: \"${moduleName}@${version}\"`);\n\n const importedModule: any = await this.importNodeModule(moduleName);\n (this.mods as Record)[moduleName] = importedModule.default ?? importedModule;\n } else {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\"`);\n }\n } catch (err: unknown) {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\": ${err as Error}`);\n }\n } else if (!existsSync(`${__dirname}/node_modules/${depName}/package.json`)) {\n // js-controller < 6.x\n this.log.info(`Installing custom library (legacy mode): \"${lib}\"`);\n\n try {\n await this.installNpm(lib);\n this.log.info(`Installed custom npm package (legacy mode): \"${lib}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot install custom npm package \"${lib}\" (legacy mode): ${err.toString()}`);\n }\n }\n }\n\n // js-controller >= 6.x\n if (typeof this.uninstallNodeModule === 'function') {\n for (const installedNodeModule of installedNodeModules) {\n if (!keepModules.includes(installedNodeModule)) {\n try {\n await this.uninstallNodeModule(installedNodeModule);\n\n this.log.info(`Removed custom npm package: \"${installedNodeModule}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot remove custom npm package ${installedNodeModule}: ${err.toString()}`);\n }\n }\n }\n }\n }\n\n createVM(source: string, name: string, wrapAsync: boolean): false | JsScript {\n if (this.context.debugMode && name !== this.context.debugMode) {\n return false;\n }\n\n if (!this.context.debugMode) {\n const logSubscriptionsText =\n \"\\n;\\nlog(`registered ${__engine.__subscriptions} subscription${__engine.__subscriptions === 1 ? '' : 's'},\" +\n \" ${__engine.__schedules} schedule${__engine.__schedules === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsMessage} message${__engine.__subscriptionsMessage === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsLog} log${__engine.__subscriptionsLog === 1 ? '' : 's'}\" +\n \" and ${__engine.__subscriptionsFile} file subscription${__engine.__subscriptionsFile === 1 ? '' : 's'}`);\\n\";\n\n if (wrapAsync) {\n source = `(async () => {\\n${source}\\n${logSubscriptionsText}\\n})();`;\n } else {\n if (source.endsWith('export {};\\n')) {\n // If the source ends with \"export {};\" place the log subscriptions before it\n source = source.slice(0, -11); // remove \"export {};\\n\"\n source = `${source}\\n${logSubscriptionsText}\\nexport {};\\n`;\n } else {\n source = `${source}\\n${logSubscriptionsText}`;\n }\n }\n } else {\n if (wrapAsync) {\n source = `(async () => {debugger;\\n${source}\\n})();`;\n } else {\n source = `debugger;${source}`;\n }\n }\n\n try {\n const options: ScriptOptions = {\n filename: name,\n // displayErrors: true,\n // lineOffset: this.globalScriptLines\n };\n return {\n script: new Script(source, options),\n } as JsScript;\n } catch (err: unknown) {\n this.logError(name, `compile failed at`, err as Error);\n return false;\n }\n }\n\n execute(script: JsScript, name: string, engineType: ScriptType, verbose: boolean, debug: boolean): void {\n script.intervals = [];\n script.timeouts = [];\n script.schedules = [];\n script.wizards = [];\n script.name = name;\n script.engineType = engineType;\n script._id = Math.floor(Math.random() * 0xffffffff);\n script.subscribes = {};\n script.subscribesFile = {};\n script.setStatePerMinuteCounter = 0;\n script.setStatePerMinuteProblemCounter = 0;\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: false,\n ack: true,\n expire: 1000,\n });\n\n const sandbox = sandBox(script, name, verbose, debug, this.context);\n\n try {\n script.script.runInNewContext(sandbox, {\n filename: name,\n displayErrors: true,\n // lineOffset: this.globalScriptLines\n });\n } catch (err: unknown) {\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: true,\n ack: true,\n c: 'execute',\n });\n this.logError(name, 'Error by run:', err as Error);\n }\n }\n\n unsubscribe(id: string | RegExp | string[]): void {\n if (!id) {\n this.log.warn('unsubscribe: empty name');\n return;\n }\n\n if (Array.isArray(id)) {\n id.forEach(sub => unsubscribe(sub));\n return;\n }\n\n if (id.constructor && id.constructor.name === 'RegExp') {\n // adapter.log.warn('unsubscribe: todo - process regexp');\n return;\n }\n\n if (typeof id !== 'string') {\n this.log.error(`unsubscribe: invalid type of id - ${typeof id}`);\n return;\n }\n const parts = id.split('.');\n const _adapter = `system.adapter.${parts[0]}.${parts[1]}`;\n if (this.objects[_adapter]?.common?.subscribable) {\n const a = `${parts[0]}.${parts[1]}`;\n const alive = `system.adapter.${a}.alive`;\n if (this.adapterSubs[alive]) {\n const pos = this.adapterSubs[alive].indexOf(id);\n if (pos !== -1) {\n this.adapterSubs[alive].splice(pos, 1);\n }\n if (!this.adapterSubs[alive].length) {\n delete this.adapterSubs[alive];\n }\n }\n this.sendTo(a, 'unsubscribe', id);\n }\n }\n\n // Analyze if logs are still required or not\n updateLogSubscriptions(): void {\n let found = false;\n // go through all scripts and check if some script still requires logs\n Object.keys(this.logSubscriptions).forEach(scriptName => {\n if (!this.logSubscriptions?.[scriptName] || !this.logSubscriptions[scriptName].length) {\n delete this.logSubscriptions[scriptName];\n } else {\n found = true;\n }\n });\n\n if (this.requireLog) {\n if (found && !this.logSubscribed) {\n this.logSubscribed = true;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Subscribed to log messages (found logSubscriptions)`);\n } else if (!found && this.logSubscribed) {\n this.logSubscribed = false;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Unsubscribed from log messages (not found logSubscriptions)`);\n }\n }\n }\n\n async stopScript(name: string): Promise {\n this.log.info(`${name}: Stopping script`);\n\n await this.setState(`scriptEnabled.${name.substring(SCRIPT_CODE_MARKER.length)}`, false, true);\n\n if (this.messageBusHandlers[name]) {\n delete this.messageBusHandlers[name];\n }\n\n if (this.tempDirectories[name]) {\n try {\n this.mods.fs.rmSync(this.tempDirectories[name], { recursive: true });\n\n this.log.debug(`${name}: Removed temp directory: ${this.tempDirectories[name]}`);\n } catch {\n this.log.warn(`${name}: Unable to remove temp directory: ${this.tempDirectories[name]}`);\n }\n\n delete this.tempDirectories[name];\n }\n\n if (this.logSubscriptions[name]) {\n delete this.logSubscriptions[name];\n this.updateLogSubscriptions();\n }\n\n if (this.scripts[name]) {\n // Remove from subscriptions\n this.context.isEnums = false;\n if (this.config.subscribe) {\n // check all subscribed IDs\n Object.keys(this.scripts[name].subscribes).forEach(id => {\n if (this.subscribedPatterns[id]) {\n this.subscribedPatterns[id] -= this.scripts[name].subscribes[id];\n if (this.subscribedPatterns[id] <= 0) {\n this.unsubscribeForeignStates(id);\n delete this.subscribedPatterns[id];\n if (this.states[id]) {\n delete this.states[id];\n }\n }\n }\n });\n }\n\n for (let i = this.subscriptions.length - 1; i >= 0; i--) {\n if (this.subscriptions[i].name === name) {\n const sub = this.subscriptions.splice(i, 1)[0];\n if (sub?.pattern.id) {\n this.unsubscribe(sub.pattern.id);\n }\n } else {\n if (\n (!this.context.isEnums && this.subscriptions[i].pattern.enumName) ||\n this.subscriptions[i].pattern.enumId\n ) {\n this.context.isEnums = true;\n }\n }\n }\n\n // check all subscribed files\n Object.keys(this.scripts[name].subscribesFile).forEach(key => {\n if (this.subscribedPatternsFile[key]) {\n this.subscribedPatternsFile[key] -= this.scripts[name].subscribesFile[key];\n if (this.subscribedPatternsFile[key] <= 0) {\n const [id, file] = key.split('$%$');\n void this.unsubscribeForeignFiles(id, file);\n delete this.subscribedPatternsFile[key];\n }\n }\n });\n for (let i = this.subscriptionsFile.length - 1; i >= 0; i--) {\n if (this.subscriptionsFile[i].name === name) {\n this.subscriptionsFile.splice(i, 1);\n }\n }\n\n for (let i = this.subscriptionsObject.length - 1; i >= 0; i--) {\n if (this.subscriptionsObject[i].name === name) {\n const sub = this.subscriptionsObject.splice(i, 1)[0];\n if (sub) {\n this.unsubscribeForeignObjects(sub.pattern);\n }\n }\n }\n\n // Stop all timeouts\n for (let i = 0; i < this.scripts[name].timeouts.length; i++) {\n clearTimeout(this.scripts[name].timeouts[i]);\n }\n // Stop all intervals\n for (let i = 0; i < this.scripts[name].intervals.length; i++) {\n clearInterval(this.scripts[name].intervals[i]);\n }\n // Stop all scheduled jobs\n for (let i = 0; i < this.scripts[name].schedules.length; i++) {\n if (this.scripts[name].schedules[i]) {\n const _name = this.scripts[name].schedules[i].name;\n if (!this.mods.nodeSchedule.cancelJob(this.scripts[name].schedules[i])) {\n this.log.error(`${name}: Error by canceling scheduled job \"${_name}\"`);\n }\n }\n }\n\n // Stop all time wizards jobs\n if (this.context.scheduler) {\n for (let i = 0; i < this.scripts[name].wizards.length; i++) {\n if (this.scripts[name].wizards[i]) {\n this.context.scheduler.remove(this.scripts[name].wizards[i]);\n }\n }\n }\n\n // if callback for on stop\n if (typeof this.scripts[name].onStopCb === 'function') {\n this.scripts[name].onStopTimeout =\n parseInt(this.scripts[name].onStopTimeout as unknown as string, 10) || 1000;\n\n await new Promise(resolve => {\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n if (timeout) {\n timeout = null;\n resolve(true);\n }\n }, this.scripts[name].onStopTimeout);\n\n try {\n this.scripts[name].onStopCb(() => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n resolve(true);\n }\n });\n } catch (err: unknown) {\n this.log.error(`${name}: error in onStop callback: ${err as Error}`);\n }\n });\n }\n\n delete this.scripts[name];\n return true;\n }\n return false;\n }\n\n async prepareScript(obj: ioBroker.ScriptObject): Promise {\n if (obj?.common?.enabled && this.debugState.scriptName === obj._id) {\n const id = obj._id;\n await this.debugStop();\n this.log.info(`${id}: Debugging was stopped, because started in normal mode`);\n return this.prepareScript(obj);\n }\n\n if (\n obj?.common?.source &&\n (obj.common.enabled || this.context.debugMode === obj._id) &&\n obj.common.engine === `system.adapter.${this.namespace}`\n ) {\n const name = obj._id;\n\n const nameId = name.substring(SCRIPT_CODE_MARKER.length);\n if (!nameId.length || nameId.endsWith('.')) {\n this.log.error(`${name}: Script name \"${name}\" is invalid!`);\n return false;\n }\n const idActive = `scriptEnabled.${nameId}`;\n if (!this.config.subscribe) {\n this.interimStateValues[idActive] = this.prepareStateObjectSimple(\n `${this.namespace}.${idActive}`,\n true,\n true,\n );\n }\n await this.setState(idActive, true, true);\n obj.common.engineType = obj.common.engineType || '';\n\n if (\n (obj.common.engineType as ScriptType).toLowerCase().startsWith('javascript') ||\n (obj.common.engineType as ScriptType) === 'Blockly' ||\n (obj.common.engineType as ScriptType) === 'Rules'\n ) {\n // Javascript\n this.log.info(`${name}: start JavaScript (${obj.common.engineType})`);\n\n let sourceFn = name;\n if (webstormDebug) {\n const fn = name.replace(/^script\\.js\\./, '').replace(/\\./g, '/');\n sourceFn = this.mods.path.join(webstormDebug, `${fn}.js`);\n }\n const createdScript = this.createVM(`${this.globalScript}\\n${obj.common.source}`, sourceFn, true);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n sourceFn,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n if (obj.common.engineType.toLowerCase().startsWith('typescript')) {\n // TypeScript\n this.log.info(`${name}: Compiling TypeScript source`);\n // The source code must be transformed in order to support top level await\n // and to force TypeScript to compile the code as a module\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, false);\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash = hashSource(tsSourceHashBase + this.globalDeclarations + transformedSource);\n\n let compiled: string;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n this.log.info(`${name}: source code did not change, using cached compilation result...`);\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(name);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n return false;\n }\n\n const errors = tsCompiled.diagnostics.map(diag => `${diag.annotatedSource}\\n`).join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(`${name}: TypeScript compilation had errors:\\n${errors}`);\n } else {\n this.log.info(`${name}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result || '';\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(name); // ignore the next change and don't restart scripts\n await this.extendForeignObjectAsync(name, {\n common: {\n sourceHash,\n compiled,\n },\n });\n } else {\n this.log.error(`${name}: TypeScript compilation failed:\\n${errors}`);\n return false;\n }\n }\n const createdScript: JsScript | false = this.createVM(`${this.globalScript}\\n${compiled}`, name, false);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n name,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n this.log.warn(`${obj._id}: Unknown engine type: ${obj.common.engineType}`);\n return false;\n }\n\n let _name: string;\n if (obj?._id) {\n _name = obj._id;\n const scriptIdName = _name.substring(SCRIPT_CODE_MARKER.length);\n\n if (!scriptIdName.length || scriptIdName.endsWith('.')) {\n this.log.error(`${obj._id}: Script name \"${_name}\" is invalid!`);\n return false;\n }\n await this.setState(`scriptEnabled.${scriptIdName}`, false, true);\n }\n if (!obj) {\n this.log.error('Invalid script');\n }\n return false;\n }\n\n async loadScriptById(id: string): Promise {\n let obj: ioBroker.ScriptObject | null | undefined;\n try {\n obj = (await this.getForeignObjectAsync(id)) as ioBroker.ScriptObject | null | undefined;\n } catch (err: any) {\n this.log.error(`${id}: Invalid script: ${err}`);\n }\n if (!obj) {\n return false;\n }\n return this.loadScript(obj);\n }\n\n async loadScript(nameOrObject: ioBroker.ScriptObject): Promise {\n // create states for scripts\n await this.createActiveObject(nameOrObject._id, !!nameOrObject?.common?.enabled);\n await this.createProblemObject(nameOrObject._id);\n return this.prepareScript(nameOrObject);\n }\n\n getAstroEvent(\n date: Date,\n astroEvent: AstroEventName,\n start: string,\n end: string,\n offsetMinutes: number | string,\n isDayEnd: boolean,\n latitude: number,\n longitude: number,\n useNextDay?: boolean,\n ): Date {\n let ts: Date = this.mods.suncalc.getTimes(date, latitude, longitude)[astroEvent];\n\n if (!ts || ts.getTime().toString() === 'NaN') {\n ts = isDayEnd ? getNextTimeEvent(end, useNextDay) : getNextTimeEvent(start, useNextDay);\n }\n ts.setMilliseconds(0);\n ts.setMinutes(ts.getMinutes() + (parseInt(offsetMinutes as unknown as string, 10) || 0));\n\n const [timeHoursStart, timeMinutesStart] = start.split(':');\n const nTimeHoursStart = parseInt(timeHoursStart, 10);\n const nTimeMinutesStart = parseInt(timeMinutesStart, 10) || 0;\n\n if (\n ts.getHours() < nTimeHoursStart ||\n (ts.getHours() === nTimeHoursStart && ts.getMinutes() < nTimeMinutesStart)\n ) {\n ts = getNextTimeEvent(start, useNextDay);\n ts.setSeconds(0);\n }\n\n const [timeHoursEnd, timeMinutesEnd] = end.split(':');\n const nTimeHoursEnd = parseInt(timeHoursEnd, 10);\n const nTimeMinutesEnd = parseInt(timeMinutesEnd, 10) || 0;\n\n if (ts.getHours() > nTimeHoursEnd || (ts.getHours() === nTimeHoursEnd && ts.getMinutes() > nTimeMinutesEnd)) {\n ts = getNextTimeEvent(end, useNextDay);\n ts.setSeconds(0);\n }\n\n // if event in the past\n if (date > ts && useNextDay) {\n // take the next day\n ts.setDate(ts.getDate() + 1);\n }\n return ts;\n }\n\n async timeSchedule(): Promise {\n const now = new Date();\n let hours = now.getHours();\n const minutes = now.getMinutes();\n if (this.timeSettings.format12) {\n if (hours > 12) {\n hours -= 12;\n }\n }\n let sHours: string;\n if (this.timeSettings.leadingZeros) {\n sHours = hours.toString().padStart(2, '0');\n } else {\n sHours = hours.toString();\n }\n\n await this.setState('variables.dayTime', {\n val: `${sHours}:${minutes.toString().padStart(2, '0')}`,\n ack: true,\n });\n\n now.setMinutes(now.getMinutes() + 1);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const interval = now.getTime() - Date.now();\n this.timeScheduleTimer = setTimeout(() => this.timeSchedule(), interval);\n }\n\n async dayTimeSchedules(): Promise {\n // get astrological event\n if (\n this.config.latitude === undefined ||\n this.config.longitude === undefined ||\n (this.config.latitude as unknown as string) === '' ||\n (this.config.longitude as unknown as string) === '' ||\n this.config.latitude === null ||\n this.config.longitude === null\n ) {\n this.log.error('Longitude or latitude does not set. Cannot use astro.');\n return;\n }\n\n // Calculate the next event today\n const todayDate = getAstroStartOfDay();\n const nowDate = new Date();\n\n const todaySunrise = this.getAstroEvent(\n todayDate,\n this.config.sunriseEvent,\n this.config.sunriseLimitStart,\n this.config.sunriseLimitEnd,\n this.config.sunriseOffset,\n false,\n this.config.latitude,\n this.config.longitude,\n );\n const todaySunset = this.getAstroEvent(\n todayDate,\n this.config.sunsetEvent,\n this.config.sunsetLimitStart,\n this.config.sunsetLimitEnd,\n this.config.sunsetOffset,\n true,\n this.config.latitude,\n this.config.longitude,\n );\n\n // Sunrise\n let sunriseTimeout = todaySunrise.getTime() - nowDate.getTime();\n if (sunriseTimeout < 0 || sunriseTimeout > 3600000) {\n sunriseTimeout = 3600000;\n }\n\n // Sunset\n let sunsetTimeout = todaySunset.getTime() - nowDate.getTime();\n if (sunsetTimeout < 0 || sunsetTimeout > 3600000) {\n sunsetTimeout = 3600000;\n }\n\n const isDayTime: ioBroker.State | null | undefined = await this.getStateAsync('variables.isDayTime');\n let isDay: boolean;\n if (sunriseTimeout < 5000) {\n isDay = true;\n } else if (sunsetTimeout < 5000) {\n isDay = false;\n } else {\n // check if in between\n isDay = nowDate.getTime() > todaySunrise.getTime() - 60000 && nowDate <= todaySunset;\n }\n\n const valDayTime = isDayTime ? !!isDayTime.val : false;\n if (valDayTime !== isDay || isDayTime === null) {\n await this.setState('variables.isDayTime', isDay, true);\n }\n\n const dayLightSaving: ioBroker.State | null | undefined =\n await this.getStateAsync('variables.isDaylightSaving');\n const isDayLightSaving = dstOffsetAtDate(nowDate) !== 0;\n const val = dayLightSaving ? !!dayLightSaving.val : false;\n\n if (val !== isDayLightSaving || dayLightSaving === null) {\n await this.setState('variables.isDaylightSaving', isDayLightSaving, true);\n }\n\n let nextTimeout = sunriseTimeout;\n if (sunriseTimeout > sunsetTimeout) {\n nextTimeout = sunsetTimeout;\n }\n nextTimeout = nextTimeout - 3000;\n if (nextTimeout < 3000) {\n nextTimeout = 3000;\n }\n\n this.dayScheduleTimer = setTimeout(() => this.dayTimeSchedules(), nextTimeout);\n }\n\n stopTimeSchedules(): void {\n if (this.dayScheduleTimer) {\n clearTimeout(this.dayScheduleTimer);\n this.dayScheduleTimer = null;\n }\n if (this.sunScheduleTimer) {\n clearTimeout(this.sunScheduleTimer);\n this.sunScheduleTimer = null;\n }\n if (this.timeScheduleTimer) {\n clearTimeout(this.timeScheduleTimer);\n this.timeScheduleTimer = null;\n }\n }\n\n async patchFont(): Promise {\n let stat: Stats | undefined;\n let dbFile: Buffer | undefined;\n let fileName = `${__dirname}/../admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n let jsonFileName = `${__dirname}/../admin/vsFont/codicon.json`;\n try {\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n if (!stat) {\n jsonFileName = `${__dirname}/admin/vsFont/codicon.json`;\n fileName = `${__dirname}/admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n }\n const _dbFile = await this.readFileAsync(\n 'javascript.admin',\n `vs/base/browser/ui/codicons/codicon/codicon.ttf`,\n );\n if (_dbFile?.file) {\n dbFile = _dbFile.file as Buffer;\n }\n } catch {\n // ignore\n }\n\n if (stat?.size !== 73452 || dbFile?.byteLength !== 73452) {\n try {\n const buffer = Buffer.from(JSON.parse(readFileSync(jsonFileName).toString()), 'base64');\n\n const jszip = await import('jszip');\n const zip = await jszip.loadAsync(buffer);\n let data: ArrayBuffer | undefined;\n if (zip) {\n data = await zip.file('codicon.ttf')?.async('arraybuffer');\n if (data?.byteLength !== 73452) {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n } else {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n writeFileSync(fileName, Buffer.from(data));\n // upload this file\n await this.writeFileAsync(\n 'javascript.admin',\n 'vs/base/browser/ui/codicons/codicon/codicon.ttf',\n Buffer.from(data),\n );\n return true;\n } catch (err: unknown) {\n this.log.error(`Cannot patch font: ${err as Error}`);\n return false;\n }\n }\n return false;\n }\n\n async sunTimeSchedules(): Promise {\n if (this.config.createAstroStates) {\n if (!isNaN(this.config.longitude) && !isNaN(this.config.longitude)) {\n const calcDate = getAstroStartOfDay();\n\n const times = this.mods.suncalc.getTimes(calcDate, this.config.latitude, this.config.longitude);\n\n this.log.debug(`[sunTimeSchedules] Times: ${JSON.stringify(times)}`);\n\n for (const t in times) {\n try {\n const objId = `variables.astro.${t}`;\n\n await this.setObjectNotExistsAsync(objId, {\n type: 'state',\n common: {\n name: `Astro ${t}`,\n type: 'string',\n role: 'value',\n read: true,\n write: false,\n },\n native: {},\n });\n\n if (times[t] !== null && !isNaN(times[t].getTime())) {\n const timeFormatted = formatHoursMinutesSeconds(times[t]);\n await this.setState(objId, {\n val: timeFormatted,\n c: times[t].toISOString(),\n ack: true,\n });\n } else {\n await this.setState(objId, { val: null, c: 'n/a', ack: true, q: 0x01 });\n }\n } catch (err: unknown) {\n this.log.error(\n `[sunTimeSchedules] Unable to set state for astro time \"${t}\" (${times[t].getTime()}): ${err as Error}`,\n );\n }\n }\n\n const todayDate = new Date();\n todayDate.setHours(0);\n todayDate.setMinutes(0);\n todayDate.setSeconds(1);\n todayDate.setMilliseconds(0);\n todayDate.setDate(todayDate.getDate() + 1);\n\n this.log.debug(`[sunTimeSchedules] Next: ${todayDate.toISOString()}`);\n this.sunScheduleTimer = setTimeout(() => this.sunTimeSchedules(), todayDate.getTime() - Date.now());\n }\n } else {\n // remove astro states if disabled\n this.delObject('variables.astro', { recursive: true });\n }\n }\n\n /**\n * Redirects the virtual-tsc log output to the ioBroker log\n */\n tsLog = (message: string, severity?: ioBroker.LogLevel): void => {\n // shift the severities around, we don't care about the small details\n if (!severity || severity === 'info') {\n severity = 'debug';\n } else if (severity === 'debug') {\n // Don't spam build logs on Travis\n if (isCI) {\n return;\n }\n severity = 'silly';\n }\n\n if (this?.log) {\n this.log[severity](message);\n } else {\n console.log(`[${severity.toUpperCase()}] ${message}`);\n }\n };\n\n addGetProperty(object: Record): void {\n try {\n Object.defineProperty(object, 'get', {\n value: function (id: string): any {\n return this[id] || this[`${this.namespace}.${id}`];\n },\n enumerable: false,\n });\n } catch {\n console.error('Cannot install get property');\n }\n }\n\n /**\n * Add declarations for global scripts\n *\n * @param scriptID - The current script the declarations were generated from\n * @param declarations - Declarations from script\n */\n provideDeclarationsForGlobalScript(scriptID: string, declarations: string): void {\n // Remember which declarations this global script had access to,\n // we need this so the editor doesn't show a duplicate identifier error\n if (this.globalDeclarations != null && this.globalDeclarations !== '') {\n this.knownGlobalDeclarationsByScript[scriptID] = this.globalDeclarations;\n }\n // and concatenate the global declarations for the next scripts\n this.globalDeclarations += `${declarations}\\n`;\n // remember all previously generated global declarations,\n // so global scripts can reference each other\n const globalDeclarationPath = 'global.d.ts';\n tsAmbient[globalDeclarationPath] = this.globalDeclarations;\n // make sure the next script compilation has access to the updated declarations\n this.tsServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n jsDeclarationServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n }\n\n fixLineNo(line: string): string {\n if (line.includes('javascript.js:')) {\n return line;\n }\n if (!/scripts?\\.js[.\\\\/]/.test(line)) {\n return line;\n }\n if (/:(\\d+):/.test(line)) {\n line = line.replace(\n /:(\\d+):/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}:`,\n ); // one line for 'async function ()'\n } else {\n line = line.replace(\n /:(\\d+)$/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}`,\n ); // one line for 'async function ()'\n }\n return line;\n }\n\n async debugStop(): Promise {\n if (this.debugState.child) {\n this.debugSendToInspector({ cmd: 'end' });\n this.debugState.endTimeout = setTimeout(() => {\n this.debugState.endTimeout = null;\n this.debugState.child?.kill('SIGTERM');\n }, 500);\n this.debugState.promiseOnEnd = this.debugState.promiseOnEnd || Promise.resolve(0);\n } else {\n this.debugState.promiseOnEnd = Promise.resolve(0);\n }\n\n await this.debugState.promiseOnEnd;\n\n this.debugState.child = null;\n this.debugState.running = false;\n this.debugState.scriptName = '';\n if (this.debugState.endTimeout) {\n clearTimeout(this.debugState.endTimeout);\n this.debugState.endTimeout = null;\n }\n }\n\n async debugDisableScript(id: string | undefined): Promise {\n if (id) {\n const obj = this.objects[id];\n if (obj?.common?.enabled) {\n await this.extendForeignObjectAsync(obj._id, { common: { enabled: false } });\n }\n }\n }\n\n debugSendToInspector(message: any): void {\n if (this.debugState.child) {\n try {\n this.log.info(`send to debugger: ${message}`);\n this.debugState.child.send(message);\n } catch {\n void this.debugStop().then(() =>\n this.log.info(\n `${this.debugState.scriptName}: Debugging was stopped, because started in normal mode`,\n ),\n );\n }\n } else {\n this.log.error(`${this.debugState.scriptName}: Cannot send command to terminated inspector`);\n void this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `Cannot send command to terminated inspector`, id: 1 }),\n true,\n );\n }\n }\n\n debugStart(data: { breakOnStart?: boolean; scriptName?: string; adapter?: string }): void {\n if (Date.now() - this.debugState.started < 1000) {\n console.log('Start ignored');\n return;\n }\n\n this.debugState.started = Date.now();\n // stop the script if it's running\n void this.debugDisableScript(data.scriptName)\n .then(() => this.debugStop())\n .then(() => {\n if (data.adapter) {\n this.debugState.adapterInstance = data.adapter;\n this.debugState.scriptName = '';\n } else {\n this.debugState.adapterInstance = '';\n this.debugState.scriptName = data.scriptName as string;\n }\n\n this.debugState.breakOnStart = data.breakOnStart;\n\n this.debugState.promiseOnEnd = new Promise(resolve => {\n const options: ForkOptions = {\n stdio: ['ignore', 'inherit', 'inherit', 'ipc'],\n //stdio: ['pipe', 'pipe', 'pipe', 'ipc']\n };\n const args: string[] = [];\n if (this.debugState.adapterInstance) {\n args.push('--breakOnStart');\n }\n\n this.debugState.child = fork(`${__dirname}/lib/inspect.js`, args, options);\n\n /*debugState.child.stdout.setEncoding('utf8');\n debugState.child.stderr.setEncoding('utf8');\n debugState.child.stdout.on('data', childPrint);\n debugState.child.stderr.on('data', childPrint);*/\n\n this.debugState.child?.on(\n 'message',\n (\n message:\n | string\n | {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n },\n ) => {\n let oMessage: {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n };\n if (typeof message === 'string') {\n try {\n oMessage = JSON.parse(message);\n } catch {\n return this.log.error(`Cannot parse message from inspector: ${message}`);\n }\n } else {\n oMessage = message;\n }\n\n if (oMessage.cmd !== 'ready') {\n void this.setState('debug.from', JSON.stringify(oMessage), true);\n }\n\n switch (oMessage.cmd) {\n case 'ready': {\n this.debugSendToInspector({\n cmd: 'start',\n scriptName: this.debugState.scriptName,\n adapterInstance: this.debugState.adapterInstance,\n instance: this.instance,\n });\n break;\n }\n\n case 'watched': {\n //console.log(`WATCHED: ${JSON.stringify(oMessage)}`);\n break;\n }\n\n case 'paused': {\n this.debugState.paused = true;\n console.log(`host: PAUSED`);\n break;\n }\n\n case 'resumed': {\n this.debugState.paused = false;\n //console.log(`STARTED`);\n break;\n }\n\n case 'log': {\n console.log(`[${oMessage.severity}] ${oMessage.text}`);\n break;\n }\n\n case 'readyToDebug': {\n console.log(\n `host: readyToDebug (set breakpoints): [${oMessage.scriptId}] ${oMessage.script}`,\n );\n break;\n }\n }\n },\n );\n this.debugState.child?.on('error', error => {\n this.log.error(`Cannot start inspector: ${error}`);\n void this.setState('debug.from', JSON.stringify({ cmd: 'error', error }), true);\n });\n\n this.debugState.child?.on('exit', async (code: number): Promise => {\n if (code) {\n await this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `invalid response code: ${code}` }),\n true,\n );\n }\n await this.setState('debug.from', JSON.stringify({ cmd: 'debugStopped', code }), true);\n this.debugState.child = null;\n resolve(code);\n });\n });\n });\n }\n}\n\nfunction patternMatching(\n event: EventObj,\n patternFunctions: PatternEventCompareFunction[] & { logic?: 'and' | 'or' },\n): boolean {\n let matched = false;\n for (let i = 0, len = patternFunctions.length; i < len; i++) {\n if (patternFunctions[i](event)) {\n if (patternFunctions.logic === 'or') {\n return true;\n }\n matched = true;\n } else if (patternFunctions.logic === 'and') {\n return false;\n }\n }\n return matched;\n}\n\n// If started as allInOne mode => return function to create instance\nif (require.main !== module) {\n // Export the constructor in compact mode\n module.exports = (options: Partial | undefined) => new JavaScript(options);\n} else {\n // otherwise start the instance directly\n (() => new JavaScript())();\n}\n"]} \ No newline at end of file diff --git a/package.json b/package.json index 58f8b9015..892b60f8f 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,8 @@ "dependencies": { "@iobroker/adapter-core": "^3.2.3", "@iobroker/types": "^7.0.7", - "@types/node": "^22.15.29", - "axios": "^1.9.0", + "@types/node": "^24.0.3", + "axios": "^1.10.0", "jsonata": "^2.0.6", "jszip": "^3.10.1", "node-inspect": "^2.0.0", diff --git a/src-admin/package.json b/src-admin/package.json index 07a7e9e21..1623188a2 100644 --- a/src-admin/package.json +++ b/src-admin/package.json @@ -11,9 +11,9 @@ "npm": "npm i -f" }, "devDependencies": { - "@iobroker/adapter-react-v5": "7.6.18", - "@iobroker/json-config": "7.6.18", - "@module-federation/runtime": "^0.14.3", + "@iobroker/adapter-react-v5": "7.6.20", + "@iobroker/json-config": "7.6.20", + "@module-federation/runtime": "^0.15.0", "@module-federation/vite": "^1.4.1", "@mui/icons-material": "^6.4.12", "@mui/material": "^6.4.12", @@ -21,7 +21,7 @@ "@types/leaflet": "^1.9.18", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", - "@vitejs/plugin-react": "^4.5.1", + "@vitejs/plugin-react": "^4.5.2", "date-fns": "^4.1.0", "leaflet": "^1.9.4", "react": "^18.3.1", diff --git a/src-editor/package.json b/src-editor/package.json index d3376a296..ad3d3a895 100644 --- a/src-editor/package.json +++ b/src-editor/package.json @@ -8,26 +8,26 @@ "@blockly/field-multilineinput": "^5.0.17", "@blockly/theme-dark": "^7.0.12", "@devbookhq/splitter": "^1.4.2", - "@iobroker/adapter-react-v5": "^7.6.18", + "@iobroker/adapter-react-v5": "^7.6.20", "@iobroker/javascript-rules-dev": "^0.0.6", "@iobroker/type-detector": "^4.5.0", "@iobroker/types": "^7.0.7", - "@module-federation/runtime": "^0.14.3", + "@module-federation/runtime": "^0.15.0", "@module-federation/vite": "^1.4.1", "@mui/icons-material": "^6.4.12", "@mui/material": "^6.4.12", "@mui/x-date-pickers": "^7.29.4", - "@sentry/browser": "^9.24.0", + "@sentry/browser": "^9.30.0", "@types/lodash": "^4.17.17", "@types/react": "^18.3.23", "@types/react-dom": "^18.3.7", "@types/reactour": "^1.18.5", - "@vitejs/plugin-react": "^4.5.0", + "@vitejs/plugin-react": "^4.5.2", "blockly": "^11.2.2", "file-selector": "^2.1.2", "lodash": "^4.17.21", "monaco-editor": "~0.52.2", - "openai": "^5.0.1", + "openai": "^5.5.0", "react": "^18.3.1", "react-bem-helper": "^1.4.1", "react-dnd": "^16.0.1", @@ -36,7 +36,7 @@ "react-dom": "^18.3.1", "react-dropzone": "^14.3.8", "react-fullscreen": "^0.1.0", - "react-i18next": "^15.5.2", + "react-i18next": "^15.5.3", "react-icons": "5.4.0", "react-json-view": "^1.21.3", "react-monaco-editor": "^0.58.0", @@ -44,7 +44,7 @@ "react-text-mask": "^5.5.0", "react-treeview-mui": "^0.1.2", "reactour": "^1.19.4", - "sass": "^1.89.1", + "sass": "^1.89.2", "suncalc2": "^1.8.1", "vite": "6.3.5", "vite-plugin-commonjs": "^0.10.4", diff --git a/src/main.ts b/src/main.ts index a8c396921..da562edb3 100644 --- a/src/main.ts +++ b/src/main.ts @@ -793,10 +793,9 @@ class JavaScript extends Adapter { const sentryInstance: InstanceType = this.getPluginInstance('sentry') as InstanceType< typeof SentryPlugin >; - if (sentryInstance?.getSentryObject) { + if (sentryInstance) { const Sentry = sentryInstance.getSentryObject(); - if (Sentry) { - const scope = Sentry.getCurrentScope(); + Sentry?.withScope(scope => { scope.addEventProcessor((event, _hint) => { if (event.exception?.values?.[0]) { const eventData = event.exception.values[0]; @@ -813,7 +812,7 @@ class JavaScript extends Adapter { ) { return null; } - //Exclude event if own directory is included but not inside own node_modules + // Exclude event if own directory is included but not inside own node_modules const ownNodeModulesDir = join(__dirname, 'node_modules'); if ( !eventData.stacktrace.frames.find( @@ -833,7 +832,7 @@ class JavaScript extends Adapter { // No exception in it ... do not report return null; }); - } + }); } } From d2a810a7a8d769b2ef72daee428e52136b4761d2 Mon Sep 17 00:00:00 2001 From: GermanBluefox Date: Tue, 17 Jun 2025 14:33:59 +0300 Subject: [PATCH 3/3] Fixing Sentry --- src/main.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main.ts b/src/main.ts index da562edb3..c417c228b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -817,8 +817,7 @@ class JavaScript extends Adapter { if ( !eventData.stacktrace.frames.find( frame => - frame.filename && - frame.filename.includes(__dirname) && + frame.filename?.includes(__dirname) && !frame.filename.includes(ownNodeModulesDir), ) ) {
. Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs"),i?V.cloneElement(a,{ref:r=>{Iy(i,r),Iy(s,r)}}):V.cloneElement(a,{ref:s})}class hE{receiveHandlerId(s){this.handlerId!==s&&(this.handlerId=s,this.reconnect())}get connectTarget(){return this.dragSource}get dragSourceOptions(){return this.dragSourceOptionsInternal}set dragSourceOptions(s){this.dragSourceOptionsInternal=s}get dragPreviewOptions(){return this.dragPreviewOptionsInternal}set dragPreviewOptions(s){this.dragPreviewOptionsInternal=s}reconnect(){const s=this.reconnectDragSource();this.reconnectDragPreview(s)}reconnectDragSource(){const s=this.dragSource,i=this.didHandlerIdChange()||this.didConnectedDragSourceChange()||this.didDragSourceOptionsChange();return i&&this.disconnectDragSource(),this.handlerId?s?(i&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragSource=s,this.lastConnectedDragSourceOptions=this.dragSourceOptions,this.dragSourceUnsubscribe=this.backend.connectDragSource(this.handlerId,s,this.dragSourceOptions)),i):(this.lastConnectedDragSource=s,i):i}reconnectDragPreview(s=!1){const i=this.dragPreview,r=s||this.didHandlerIdChange()||this.didConnectedDragPreviewChange()||this.didDragPreviewOptionsChange();if(r&&this.disconnectDragPreview(),!!this.handlerId){if(!i){this.lastConnectedDragPreview=i;return}r&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDragPreview=i,this.lastConnectedDragPreviewOptions=this.dragPreviewOptions,this.dragPreviewUnsubscribe=this.backend.connectDragPreview(this.handlerId,i,this.dragPreviewOptions))}}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didConnectedDragSourceChange(){return this.lastConnectedDragSource!==this.dragSource}didConnectedDragPreviewChange(){return this.lastConnectedDragPreview!==this.dragPreview}didDragSourceOptionsChange(){return!og(this.lastConnectedDragSourceOptions,this.dragSourceOptions)}didDragPreviewOptionsChange(){return!og(this.lastConnectedDragPreviewOptions,this.dragPreviewOptions)}disconnectDragSource(){this.dragSourceUnsubscribe&&(this.dragSourceUnsubscribe(),this.dragSourceUnsubscribe=void 0)}disconnectDragPreview(){this.dragPreviewUnsubscribe&&(this.dragPreviewUnsubscribe(),this.dragPreviewUnsubscribe=void 0,this.dragPreviewNode=null,this.dragPreviewRef=null)}get dragSource(){return this.dragSourceNode||this.dragSourceRef&&this.dragSourceRef.current}get dragPreview(){return this.dragPreviewNode||this.dragPreviewRef&&this.dragPreviewRef.current}clearDragSource(){this.dragSourceNode=null,this.dragSourceRef=null}clearDragPreview(){this.dragPreviewNode=null,this.dragPreviewRef=null}constructor(s){this.hooks=iw({dragSource:(i,r)=>{this.clearDragSource(),this.dragSourceOptions=r||null,ig(i)?this.dragSourceRef=i:this.dragSourceNode=i,this.reconnectDragSource()},dragPreview:(i,r)=>{this.clearDragPreview(),this.dragPreviewOptions=r||null,ig(i)?this.dragPreviewRef=i:this.dragPreviewNode=i,this.reconnectDragPreview()}}),this.handlerId=null,this.dragSourceRef=null,this.dragSourceOptionsInternal=null,this.dragPreviewRef=null,this.dragPreviewOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDragSource=null,this.lastConnectedDragSourceOptions=null,this.lastConnectedDragPreview=null,this.lastConnectedDragPreviewOptions=null,this.backend=s}}class pE{get connectTarget(){return this.dropTarget}reconnect(){const s=this.didHandlerIdChange()||this.didDropTargetChange()||this.didOptionsChange();s&&this.disconnectDropTarget();const i=this.dropTarget;if(this.handlerId){if(!i){this.lastConnectedDropTarget=i;return}s&&(this.lastConnectedHandlerId=this.handlerId,this.lastConnectedDropTarget=i,this.lastConnectedDropTargetOptions=this.dropTargetOptions,this.unsubscribeDropTarget=this.backend.connectDropTarget(this.handlerId,i,this.dropTargetOptions))}}receiveHandlerId(s){s!==this.handlerId&&(this.handlerId=s,this.reconnect())}get dropTargetOptions(){return this.dropTargetOptionsInternal}set dropTargetOptions(s){this.dropTargetOptionsInternal=s}didHandlerIdChange(){return this.lastConnectedHandlerId!==this.handlerId}didDropTargetChange(){return this.lastConnectedDropTarget!==this.dropTarget}didOptionsChange(){return!og(this.lastConnectedDropTargetOptions,this.dropTargetOptions)}disconnectDropTarget(){this.unsubscribeDropTarget&&(this.unsubscribeDropTarget(),this.unsubscribeDropTarget=void 0)}get dropTarget(){return this.dropTargetNode||this.dropTargetRef&&this.dropTargetRef.current}clearDropTarget(){this.dropTargetRef=null,this.dropTargetNode=null}constructor(s){this.hooks=iw({dropTarget:(i,r)=>{this.clearDropTarget(),this.dropTargetOptions=r,ig(i)?this.dropTargetRef=i:this.dropTargetNode=i,this.reconnect()}}),this.handlerId=null,this.dropTargetRef=null,this.dropTargetOptionsInternal=null,this.lastConnectedHandlerId=null,this.lastConnectedDropTarget=null,this.lastConnectedDropTargetOptions=null,this.backend=s}}function fn(){const{dragDropManager:a}=V.useContext(K_);return De(a!=null,"Expected drag drop context"),a}function gE(a,s){const i=fn(),r=V.useMemo(()=>new hE(i.getBackend()),[i]);return li(()=>(r.dragSourceOptions=a||null,r.reconnect(),()=>r.disconnectDragSource()),[r,a]),li(()=>(r.dragPreviewOptions=s||null,r.reconnect(),()=>r.disconnectDragPreview()),[r,s]),r}function mE(){const a=fn();return V.useMemo(()=>new nE(a),[a])}class fE{beginDrag(){const s=this.spec,i=this.monitor;let r=null;return typeof s.item=="object"?r=s.item:typeof s.item=="function"?r=s.item(i):r={},r??null}canDrag(){const s=this.spec,i=this.monitor;return typeof s.canDrag=="boolean"?s.canDrag:typeof s.canDrag=="function"?s.canDrag(i):!0}isDragging(s,i){const r=this.spec,l=this.monitor,{isDragging:u}=r;return u?u(l):i===s.getSourceId()}endDrag(){const s=this.spec,i=this.monitor,r=this.connector,{end:l}=s;l&&l(i.getItem(),i),r.reconnect()}constructor(s,i,r){this.spec=s,this.monitor=i,this.connector=r}}function $E(a,s,i){const r=V.useMemo(()=>new fE(a,s,i),[s,i]);return V.useEffect(()=>{r.spec=a},[a]),r}function bE(a){return V.useMemo(()=>{const s=a.type;return De(s!=null,"spec.type must be defined"),s},[a])}function vE(a,s,i){const r=fn(),l=$E(a,s,i),u=bE(a);li(function(){if(u!=null){const[g,m]=lE(u,l,r);return s.receiveHandlerId(g),i.receiveHandlerId(g),m}},[r,s,i,l,u])}function yE(a,s){const i=ow(a);De(!i.begin,"useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)");const r=mE(),l=gE(i.options,i.previewOptions);return vE(i,r,l),[sw(i.collect,r,l),oE(l),iE(l)]}function _E(a){return V.useMemo(()=>a.hooks.dropTarget(),[a])}function wE(a){const s=fn(),i=V.useMemo(()=>new pE(s.getBackend()),[s]);return li(()=>(i.dropTargetOptions=a||null,i.reconnect(),()=>i.disconnectDropTarget()),[a]),i}function CE(){const a=fn();return V.useMemo(()=>new rE(a),[a])}function TE(a){const{accept:s}=a;return V.useMemo(()=>(De(a.accept!=null,"accept must be defined"),Array.isArray(s)?s:[s]),[s])}class kE{canDrop(){const s=this.spec,i=this.monitor;return s.canDrop?s.canDrop(i.getItem(),i):!0}hover(){const s=this.spec,i=this.monitor;s.hover&&s.hover(i.getItem(),i)}drop(){const s=this.spec,i=this.monitor;if(s.drop)return s.drop(i.getItem(),i)}constructor(s,i){this.spec=s,this.monitor=i}}function SE(a,s){const i=V.useMemo(()=>new kE(a,s),[s]);return V.useEffect(()=>{i.spec=a},[a]),i}function EE(a,s,i){const r=fn(),l=SE(a,s),u=TE(a);li(function(){const[g,m]=aE(u,l,r);return s.receiveHandlerId(g),i.receiveHandlerId(g),m},[r,s,l,i,u.map(d=>d.toString()).join("|")])}function IE(a,s){const i=ow(a),r=CE(),l=wE(i.options);return EE(i,r,l),[sw(i.collect,r,l),_E(l)]}function nw(a){let s=null;return()=>(s==null&&(s=a()),s)}function xE(a,s){return a.filter(i=>i!==s)}function DE(a,s){const i=new Set,r=u=>i.add(u);a.forEach(r),s.forEach(r);const l=[];return i.forEach(u=>l.push(u)),l}class AE{enter(s){const i=this.entered.length,r=l=>this.isNodeInDocument(l)&&(!l.contains||l.contains(s));return this.entered=DE(this.entered.filter(r),[s]),i===0&&this.entered.length>0}leave(s){const i=this.entered.length;return this.entered=xE(this.entered.filter(this.isNodeInDocument),s),i>0&&this.entered.length===0}reset(){this.entered=[]}constructor(s){this.entered=[],this.isNodeInDocument=s}}class RE{initializeExposedProperties(){Object.keys(this.config.exposeProperties).forEach(s=>{Object.defineProperty(this.item,s,{configurable:!0,enumerable:!0,get(){return console.warn(`Browser doesn't allow reading "${s}" until the drop event.`),null}})})}loadDataTransfer(s){if(s){const i={};Object.keys(this.config.exposeProperties).forEach(r=>{const l=this.config.exposeProperties[r];l!=null&&(i[r]={value:l(s,this.config.matchesTypes),configurable:!0,enumerable:!0})}),Object.defineProperties(this.item,i)}}canDrag(){return!0}beginDrag(){return this.item}isDragging(s,i){return i===s.getSourceId()}endDrag(){}constructor(s){this.config=s,this.item={},this.initializeExposedProperties()}}const rw="__NATIVE_FILE__",aw="__NATIVE_URL__",lw="__NATIVE_TEXT__",cw="__NATIVE_HTML__",xy=Object.freeze(Object.defineProperty({__proto__:null,FILE:rw,HTML:cw,TEXT:lw,URL:aw},Symbol.toStringTag,{value:"Module"}));function Tp(a,s,i){const r=s.reduce((l,u)=>l||a.getData(u),"");return r??i}const ng={[rw]:{exposeProperties:{files:a=>Array.prototype.slice.call(a.files),items:a=>a.items,dataTransfer:a=>a},matchesTypes:["Files"]},[cw]:{exposeProperties:{html:(a,s)=>Tp(a,s,""),dataTransfer:a=>a},matchesTypes:["Html","text/html"]},[aw]:{exposeProperties:{urls:(a,s)=>Tp(a,s,"").split(` +`),dataTransfer:a=>a},matchesTypes:["Url","text/uri-list"]},[lw]:{exposeProperties:{text:(a,s)=>Tp(a,s,""),dataTransfer:a=>a},matchesTypes:["Text","text/plain"]}};function OE(a,s){const i=ng[a];if(!i)throw new Error(`native type ${a} has no configuration`);const r=new RE(i);return r.loadDataTransfer(s),r}function kp(a){if(!a)return null;const s=Array.prototype.slice.call(a.types||[]);return Object.keys(ng).filter(i=>{const r=ng[i];return r!=null&&r.matchesTypes?r.matchesTypes.some(l=>s.indexOf(l)>-1):!1})[0]||null}const ME=nw(()=>/firefox/i.test(navigator.userAgent)),uw=nw(()=>!!window.safari);class Dy{interpolate(s){const{xs:i,ys:r,c1s:l,c2s:u,c3s:d}=this;let g=i.length-1;if(s===i[g])return r[g];let m=0,f=d.length-1,v;for(;m<=f;){v=Math.floor(.5*(m+f));const S=i[v];if(Ss)f=v-1;else return r[v]}g=Math.max(0,f);const w=s-i[g],_=w*w;return r[g]+l[g]*w+u[g]*_+d[g]*w*_}constructor(s,i){const{length:r}=s,l=[];for(let S=0;Ss[S]{let se=new Dy([0,.5,1],[m.y,m.y/v*k,m.y+k-v]).interpolate(_);return uw()&&u&&(se+=(window.devicePixelRatio-1)*k),se},E=()=>new Dy([0,.5,1],[m.x,m.x/f*S,m.x+S-f]).interpolate(w),{offsetX:A,offsetY:R}=l,O=A===0||A,Z=R===0||R;return{x:O?A:E(),y:Z?R:C()}}let FE=class{get window(){if(this.globalContext)return this.globalContext;if(typeof window<"u")return window}get document(){var s;return!((s=this.globalContext)===null||s===void 0)&&s.document?this.globalContext.document:this.window?this.window.document:void 0}get rootElement(){var s;return((s=this.optionsArgs)===null||s===void 0?void 0:s.rootElement)||this.window}constructor(s,i){this.ownerDocument=null,this.globalContext=s,this.optionsArgs=i}};function jE(a,s,i){return s in a?Object.defineProperty(a,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[s]=i,a}function Ay(a){for(var s=1;s{this.sourcePreviewNodes.delete(s),this.sourcePreviewNodeOptions.delete(s)}}connectDragSource(s,i,r){this.sourceNodes.set(s,i),this.sourceNodeOptions.set(s,r);const l=d=>this.handleDragStart(d,s),u=d=>this.handleSelectStart(d);return i.setAttribute("draggable","true"),i.addEventListener("dragstart",l),i.addEventListener("selectstart",u),()=>{this.sourceNodes.delete(s),this.sourceNodeOptions.delete(s),i.removeEventListener("dragstart",l),i.removeEventListener("selectstart",u),i.setAttribute("draggable","false")}}connectDropTarget(s,i){const r=d=>this.handleDragEnter(d,s),l=d=>this.handleDragOver(d,s),u=d=>this.handleDrop(d,s);return i.addEventListener("dragenter",r),i.addEventListener("dragover",l),i.addEventListener("drop",u),()=>{i.removeEventListener("dragenter",r),i.removeEventListener("dragover",l),i.removeEventListener("drop",u)}}addEventListeners(s){s.addEventListener&&(s.addEventListener("dragstart",this.handleTopDragStart),s.addEventListener("dragstart",this.handleTopDragStartCapture,!0),s.addEventListener("dragend",this.handleTopDragEndCapture,!0),s.addEventListener("dragenter",this.handleTopDragEnter),s.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),s.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),s.addEventListener("dragover",this.handleTopDragOver),s.addEventListener("dragover",this.handleTopDragOverCapture,!0),s.addEventListener("drop",this.handleTopDrop),s.addEventListener("drop",this.handleTopDropCapture,!0))}removeEventListeners(s){s.removeEventListener&&(s.removeEventListener("dragstart",this.handleTopDragStart),s.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),s.removeEventListener("dragend",this.handleTopDragEndCapture,!0),s.removeEventListener("dragenter",this.handleTopDragEnter),s.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),s.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),s.removeEventListener("dragover",this.handleTopDragOver),s.removeEventListener("dragover",this.handleTopDragOverCapture,!0),s.removeEventListener("drop",this.handleTopDrop),s.removeEventListener("drop",this.handleTopDropCapture,!0))}getCurrentSourceNodeOptions(){const s=this.monitor.getSourceId(),i=this.sourceNodeOptions.get(s);return Ay({dropEffect:this.altKeyPressed?"copy":"move"},i||{})}getCurrentDropEffect(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}getCurrentSourcePreviewNodeOptions(){const s=this.monitor.getSourceId(),i=this.sourcePreviewNodeOptions.get(s);return Ay({anchorX:.5,anchorY:.5,captureDraggingState:!1},i||{})}isDraggingNativeItem(){const s=this.monitor.getItemType();return Object.keys(xy).some(i=>xy[i]===s)}beginDragNativeItem(s,i){this.clearCurrentDragSourceNode(),this.currentNativeSource=OE(s,i),this.currentNativeHandle=this.registry.addSource(s,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}setCurrentDragSourceNode(s){this.clearCurrentDragSourceNode(),this.currentDragSourceNode=s;const i=1e3;this.mouseMoveTimeoutTimer=setTimeout(()=>{var r;return(r=this.rootElement)===null||r===void 0?void 0:r.addEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)},i)}clearCurrentDragSourceNode(){if(this.currentDragSourceNode){if(this.currentDragSourceNode=null,this.rootElement){var s;(s=this.window)===null||s===void 0||s.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.rootElement.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)}return this.mouseMoveTimeoutTimer=null,!0}return!1}handleDragStart(s,i){s.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(i))}handleDragEnter(s,i){this.dragEnterTargetIds.unshift(i)}handleDragOver(s,i){this.dragOverTargetIds===null&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(i)}handleDrop(s,i){this.dropTargetIds.unshift(i)}constructor(s,i,r){this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.sourceNodes=new Map,this.sourceNodeOptions=new Map,this.dragStartSourceIds=null,this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.asyncEndDragFrameId=null,this.dragOverTargetIds=null,this.lastClientOffset=null,this.hoverRafId=null,this.getSourceClientOffset=l=>{const u=this.sourceNodes.get(l);return u&&dw(u)||null},this.endDragNativeItem=()=>{this.isDraggingNativeItem()&&(this.actions.endDrag(),this.currentNativeHandle&&this.registry.removeSource(this.currentNativeHandle),this.currentNativeHandle=null,this.currentNativeSource=null)},this.isNodeInDocument=l=>!!(l&&this.document&&this.document.body&&this.document.body.contains(l)),this.endDragIfSourceWasRemovedFromDOM=()=>{const l=this.currentDragSourceNode;l==null||this.isNodeInDocument(l)||(this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover())},this.scheduleHover=l=>{this.hoverRafId===null&&typeof requestAnimationFrame<"u"&&(this.hoverRafId=requestAnimationFrame(()=>{this.monitor.isDragging()&&this.actions.hover(l||[],{clientOffset:this.lastClientOffset}),this.hoverRafId=null}))},this.cancelHover=()=>{this.hoverRafId!==null&&typeof cancelAnimationFrame<"u"&&(cancelAnimationFrame(this.hoverRafId),this.hoverRafId=null)},this.handleTopDragStartCapture=()=>{this.clearCurrentDragSourceNode(),this.dragStartSourceIds=[]},this.handleTopDragStart=l=>{if(l.defaultPrevented)return;const{dragStartSourceIds:u}=this;this.dragStartSourceIds=null;const d=Rl(l);this.monitor.isDragging()&&(this.actions.endDrag(),this.cancelHover()),this.actions.beginDrag(u||[],{publishSource:!1,getSourceClientOffset:this.getSourceClientOffset,clientOffset:d});const{dataTransfer:g}=l,m=kp(g);if(this.monitor.isDragging()){if(g&&typeof g.setDragImage=="function"){const v=this.monitor.getSourceId(),w=this.sourceNodes.get(v),_=this.sourcePreviewNodes.get(v)||w;if(_){const{anchorX:S,anchorY:k,offsetX:C,offsetY:E}=this.getCurrentSourcePreviewNodeOptions(),O=PE(w,_,d,{anchorX:S,anchorY:k},{offsetX:C,offsetY:E});g.setDragImage(_,O.x,O.y)}}try{g==null||g.setData("application/json",{})}catch{}this.setCurrentDragSourceNode(l.target);const{captureDraggingState:f}=this.getCurrentSourcePreviewNodeOptions();f?this.actions.publishDragSource():setTimeout(()=>this.actions.publishDragSource(),0)}else if(m)this.beginDragNativeItem(m);else{if(g&&!g.types&&(l.target&&!l.target.hasAttribute||!l.target.hasAttribute("draggable")))return;l.preventDefault()}},this.handleTopDragEndCapture=()=>{this.clearCurrentDragSourceNode()&&this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleTopDragEnterCapture=l=>{if(this.dragEnterTargetIds=[],this.isDraggingNativeItem()){var u;(u=this.currentNativeSource)===null||u===void 0||u.loadDataTransfer(l.dataTransfer)}if(!this.enterLeaveCounter.enter(l.target)||this.monitor.isDragging())return;const{dataTransfer:g}=l,m=kp(g);m&&this.beginDragNativeItem(m,g)},this.handleTopDragEnter=l=>{const{dragEnterTargetIds:u}=this;if(this.dragEnterTargetIds=[],!this.monitor.isDragging())return;this.altKeyPressed=l.altKey,u.length>0&&this.actions.hover(u,{clientOffset:Rl(l)}),u.some(g=>this.monitor.canDropOnTarget(g))&&(l.preventDefault(),l.dataTransfer&&(l.dataTransfer.dropEffect=this.getCurrentDropEffect()))},this.handleTopDragOverCapture=l=>{if(this.dragOverTargetIds=[],this.isDraggingNativeItem()){var u;(u=this.currentNativeSource)===null||u===void 0||u.loadDataTransfer(l.dataTransfer)}},this.handleTopDragOver=l=>{const{dragOverTargetIds:u}=this;if(this.dragOverTargetIds=[],!this.monitor.isDragging()){l.preventDefault(),l.dataTransfer&&(l.dataTransfer.dropEffect="none");return}this.altKeyPressed=l.altKey,this.lastClientOffset=Rl(l),this.scheduleHover(u),(u||[]).some(g=>this.monitor.canDropOnTarget(g))?(l.preventDefault(),l.dataTransfer&&(l.dataTransfer.dropEffect=this.getCurrentDropEffect())):this.isDraggingNativeItem()?l.preventDefault():(l.preventDefault(),l.dataTransfer&&(l.dataTransfer.dropEffect="none"))},this.handleTopDragLeaveCapture=l=>{this.isDraggingNativeItem()&&l.preventDefault(),this.enterLeaveCounter.leave(l.target)&&(this.isDraggingNativeItem()&&setTimeout(()=>this.endDragNativeItem(),0),this.cancelHover())},this.handleTopDropCapture=l=>{if(this.dropTargetIds=[],this.isDraggingNativeItem()){var u;l.preventDefault(),(u=this.currentNativeSource)===null||u===void 0||u.loadDataTransfer(l.dataTransfer)}else kp(l.dataTransfer)&&l.preventDefault();this.enterLeaveCounter.reset()},this.handleTopDrop=l=>{const{dropTargetIds:u}=this;this.dropTargetIds=[],this.actions.hover(u,{clientOffset:Rl(l)}),this.actions.drop({dropEffect:this.getCurrentDropEffect()}),this.isDraggingNativeItem()?this.endDragNativeItem():this.monitor.isDragging()&&this.actions.endDrag(),this.cancelHover()},this.handleSelectStart=l=>{const u=l.target;typeof u.dragDrop=="function"&&(u.tagName==="INPUT"||u.tagName==="SELECT"||u.tagName==="TEXTAREA"||u.isContentEditable||(l.preventDefault(),u.dragDrop()))},this.options=new FE(i,r),this.actions=s.getActions(),this.monitor=s.getMonitor(),this.registry=s.getRegistry(),this.enterLeaveCounter=new AE(this.isNodeInDocument)}}const hw=function(s,i,r){return new zE(s,i,r)},Yl="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='512'%20height='512'%20shape-rendering='geometricPrecision'%20image-rendering='optimizeQuality'%20fill-rule='evenodd'%20xmlns:v='https://vecta.io/nano'%3e%3cpath%20fill='%23efda4e'%20d='M-.5-.5h512v512H-.5V-.5z'/%3e%3cpath%20fill='%23020100'%20d='M308.5%20287.5c1.777-3.005%202.777-6.338%203-10%209.147-21.963%2025.48-35.463%2049-40.5%2021.999-4.173%2043.666-2.84%2065%204%2014.575%205.411%2025.575%2014.911%2033%2028.5l-1%202c-12.413%205.624-24.58%2011.624-36.5%2018-5.321-8.25-12.821-13.417-22.5-15.5-13.957-3.122-27.29-1.455-40%205-8.125%205.36-10.958%2012.86-8.5%2022.5%203.223%206.223%208.057%2010.723%2014.5%2013.5l64%2020c38.459%2016.085%2052.626%2044.585%2042.5%2085.5-7.572%2026.208-24.738%2042.041-51.5%2047.5-25.102%205.733-49.768%204.4-74-4-19.291-8.625-32.291-22.958-39-43%2011.266-8.887%2023.433-16.387%2036.5-22.5%203.117%206.896%206.784%2013.563%2011%2020%2012.705%2012.307%2027.872%2016.807%2045.5%2013.5%2022.189-3.504%2032.355-16.338%2030.5-38.5-2.833-6.833-7.667-11.667-14.5-14.5l-57-17c-36.004-11.84-52.67-36.673-50-74.5z'/%3e%3cpath%20fill='%23020200'%20d='M222.5%20238.5h43l-.5%20159c-2.688%2052.355-30.188%2076.855-82.5%2073.5-24.871-3.543-41.204-17.21-49-41l.5-2.5a12.14%2012.14%200%200%200%204.5-3.5c10.653-5.825%2021.32-11.325%2032-16.5%204.763%2021.72%2017.763%2028.887%2039%2021.5%204.616-2.618%207.783-6.451%209.5-11.5%201.163-5.968%202.163-11.968%203-18l.5-161z'/%3e%3cpath%20fill='%23615820'%20d='M311.5%20277.5c-.223%203.662-1.223%206.995-3%2010%20.223-3.662%201.223-6.995%203-10z'/%3e%3c/svg%3e",pw="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20500%20500'%3e%3cpath%20fill='%234285f4'%20d='M44.271%2027.275l206.5%201v170l-58.5-36.5c-7.005-.916-12.505%201.584-16.5%207.5v147c4.625%204.412%2010.125%206.245%2016.5%205.5l57.5-35.5c.833%2054.003%201.356%20108.003.189%20162-1.272.546-45.599-.242-48.689%201.121-3.674%207.844-4.79%2011.207-13%2023.879-4.372%205.527-2.19%204.097-10.689%2012.258-5.166%202.748-4.191%203.45-14.311%206.242-17.67%201.983-35.336%201.983-53%200-9.535-3.774-10.879-4.163-18.526-11.22-5.562-4.39-11.131-11.803-11.974-15.28-4.068-7.881-3.42-9.116-5.5-13.5-3.672-1.503-35.798.203-40.746-1.335-5.823-2.314-2.946-.422-7.954-3.689-2.888-2.668-2.255-3.221-2.421-9.904L20.771%2050.275c.36-2.108-.41-5.806%202.522-11.615%204.343-5.852%205.374-7%2010.061-9.146%206.083-2.73%208.677-1.475%2010.917-2.239z'/%3e%3cpath%20d='M258.271%2030.275l154.63.407c5.654.559%2010.783%203.17%2014.37%207.093%204.907%204.408%206.204%208.723%207.5%2013.5v373c-.208%205.716-.297%207.982-4.848%2015.404-7.078%206.393-9.879%206.39-15.652%206.692-24.804%201.296-50.079%201.189-74.96%201.041-24.516-.014-68.46.89-81.5.391l-2.512-172.528c-20.083%2012.625-42.777%2025.125-63.028%2037.5-4.127%201.292-7.294.125-9.5-3.5l1-137c1.864-2.707%204.364-3.541%207.5-2.5%2020.366%2013.427%2064.35%2038.947%2065.581%2038.339l1.419-177.839z'%20fill='%23DDD'/%3e%3c/svg%3e",gw="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'%20width='32'%20height='32'%3e%3cpath%20fill='%23007acc'%20d='M-.5-.5h503l-1%20179h10v333h-421v-7h-91V-.5z'/%3e%3cpath%20fill='%230f81cf'%20d='M502.5-.5h9v179h-10l1-179z'/%3e%3cpath%20fill='%23fdfefe'%20d='M470.5%20227.5c.33%2017.508-.003%2034.841-1%2052-23.486-15.709-48.82-19.875-76-12.5-15.89%208.078-19.39%2019.911-10.5%2035.5%204.673%205.577%2010.173%2010.077%2016.5%2013.5l38%2019c17.945%209.278%2031.112%2023.112%2039.5%2041.5%201.352%203.22%202.186%206.553%202.5%2010a305.16%20305.16%200%200%201%201%2026c-3.553%2033.726-21.886%2054.559-55%2062.5-34.769%207.363-68.435%204.196-101-9.5-.167-19.003%200-38.003.5-57%2022.903%2021.314%2049.736%2029.147%2080.5%2023.5%2019.435-5.701%2025.268-17.868%2017.5-36.5-4.718-6.44-10.552-11.606-17.5-15.5a1552.42%201552.42%200%200%201-47-24c-27.679-19.331-38.846-45.831-33.5-79.5%206.43-26.433%2022.597-43.933%2048.5-52.5%2026.131-6.625%2052.464-7.292%2079-2a565.56%20565.56%200%200%201%2018%205.5z'/%3e%3cpath%20fill='%23fefefe'%20d='M122.5%20222.5h182v46h-65v206h-52v-206h-65v-46z'/%3e%3cpath%20fill='%2370b3e1'%20d='M470.5%20227.5c1.327%2017.505%201.327%2035.171%200%2053-.607-.124-.94-.457-1-1%20.997-17.159%201.33-34.492%201-52z'/%3e%3cpath%20fill='%236cafe0'%20d='M479.5%20386.5c1.465%205.09%202.132%2010.423%202%2016-.002%203.518-.335%206.851-1%2010a305.16%20305.16%200%200%200-1-26z'/%3e%3cpath%20fill='%231283cf'%20d='M-.5%20504.5h91v7h-91v-7z'/%3e%3c/svg%3e",mw="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIj4KICAgIDxyYWRpYWxHcmFkaWVudCBpZD0ibXlHcmFkaWVudCI+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSIxMCUiIHN0b3AtY29sb3I9IiMxQzJENUYiIC8+CiAgICAgICAgPHN0b3Agb2Zmc2V0PSI5NSUiIHN0b3AtY29sb3I9IiMwQjFENTMiIC8+CiAgICA8L3JhZGlhbEdyYWRpZW50PgogICAgPHBhdGggZmlsbD0idXJsKCcjbXlHcmFkaWVudCcpIiBkPSJNLS4xLS4xaDUxMnY1MTJILS4xVi0uMXoiLz4KICAgIDxwYXRoIGZpbGw9IiNmOGY4ZmEiCiAgICAgICAgICBkPSJNNDgyLjUgMjMxLjV2NmgtMjVjLS45NzItOC4xNy01LjYzOS0xMi4xNy0xNC0xMi05LjUzMS4wMjktMTMuMzY1IDQuNjk1LTExLjUgMTRsNC41IDQuNSAzMyA4YzE5LjM4OCA5LjYzNCAyMy4zODggMjMuODAxIDEyIDQyLjVhMzUuMDYgMzUuMDYgMCAwIDAtOCA2Yy0xMy45MjUgNC43NjEtMjguMjU4IDYuMjYxLTQzIDQuNS0xMC42MDEtMS4wMjQtMTguOTM1LTUuODU3LTI1LTE0LjUtMS4wNzctMi4yMjktMS43NDQtNC41NjMtMi03di04aDI1YzEuNDk1IDQuMjc5IDMuODI4IDguMTEzIDcgMTEuNSA3LjQ3OCAyLjI1OCAxNC44MTEgMS45MjUgMjItMSAyLjg5NC0yLjkwOSAzLjcyNy02LjQwOSAyLjUtMTAuNWEzNi44IDM2LjggMCAwIDAtMTIuNS01LjUgNTM5Ljc5IDUzOS43OSAwIDAgMS0yOC04Yy0xMi44NzQtNi41NjItMTcuNzA3LTE3LjA2Mi0xNC41LTMxLjUgMy41Ny0xMC41NjkgMTAuNzM3LTE3LjQwMyAyMS41LTIwLjUgMTYuMTQ4LTQuNTM5IDMxLjQ4Mi0yLjcwNiA0NiA1LjUgMiAyLjY2NyA0LjMzMyA1IDcgNyAxLjg3MSAyLjczNCAyLjg3MSA1LjczNCAzIDl6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTRhYmJmIiBkPSJNMTUzLjUgMjA5LjVjLjA2LS41NDMuMzkzLS44NzYgMS0xYTEwMjQuNjMgMTAyNC42MyAwIDAgMSAxIDY0bC0yLTYzeiIvPgogICAgPHBhdGggZmlsbD0iI2ZhZmJmYyIKICAgICAgICAgIGQ9Ik0xNTMuNSAyMDkuNWwyIDYzYzEuMjc4IDExLjQ0NCA3LjYxMSAxNi4yNzcgMTkgMTQuNSA4LjcwNC0xLjM3OCAxMy4yMDQtNi41NDQgMTMuNS0xNS41LjUtMjAuNjY0LjY2Ny00MS4zMzEuNS02MiA5Ljc0My0uMjE5IDE5LjQwOS0uMjE5IDI5IDAgLjQwMSAyMy4zNjItLjA5OSA0Ni42OTYtMS41IDcwLTQuMjk4IDE0Ljk2OC0xNC4xMzEgMjMuNDY4LTI5LjUgMjUuNWEyMjUuMTQgMjI1LjE0IDAgMCAxLTMwIDBjLTE1LjgyMi0yLjE1NS0yNS42NTUtMTAuOTg4LTI5LjUtMjYuNWwtLjUtNjloMjd6Ii8+CiAgICA8cGF0aCBmaWxsPSIjZmVmZWZlIgogICAgICAgICAgZD0iTTIzMy41IDIwOS41aDI3Yy0uMzMxIDI1LjE3Mi4wMDIgNTAuMTcyIDEgNzUgMCAuNjY3LjMzMyAxIDEgMSAxMy4xNTYuOTk2IDI2LjQ5IDEuMzI5IDQwIDF2MTdoLTY5di05NHoiLz4KICAgIDxwYXRoIGZpbGw9IiNhNWFjYmYiIGQ9Ik0yMzMuNSAyMDkuNWM5LjE1Mi0uOTk0IDE4LjQ4NS0xLjMyNyAyOC0xdjc2Yy0uOTk4LTI0LjgyOC0xLjMzMS00OS44MjgtMS03NWgtMjd6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTdhZWMxIiBkPSJNMzE2LjUgMjA5LjVoNzNjLjMyMyA2LjE5LS4wMSAxMi4xOS0xIDE4di0xN2MtMjQuMTcyLjMzMS00OC4xNzItLjAwMi03Mi0xeiIvPgogICAgPHBhdGggZmlsbD0iI2E1YWNjMCIgZD0iTTg1LjUgMjEwLjVoLTU5djkzaDI3Yy0uMzI4LTExLjE3OS4wMDUtMjIuMTc5IDEtMzN2MzRoLTI5di05NWE5MDAuOTggOTAwLjk4IDAgMCAxIDYwIDF6Ii8+CiAgICA8cGF0aCBmaWxsPSIjZmNmY2ZjIgogICAgICAgICAgZD0iTTg1LjUgMjEwLjVjMjIuMjIzIDMuNzU4IDI5LjU1NiAxNi40MjUgMjIgMzgtNC4yMjggNS4zOTctOS4yMjggOS44OTctMTUgMTMuNS0xLjMwNS44MDQtMS45NzEgMS45NzEtMiAzLjVsMjMgMzZjLTQuNDUxIDEuMzI3LTkuMjg0IDEuOTk0LTE0LjUgMmExMjguMTkgMTI4LjE5IDAgMCAxLTE1LjUtMWMtNi45NTUtMTAuMzI2LTEzLjQ1NS0yMC45OTItMTkuNS0zMi0zLjI2OS0xLjMxOC02LjQzNS0xLjMxOC05LjUgMC0uOTk1IDEwLjgyMS0xLjMyOCAyMS44MjEtMSAzM2gtMjd2LTkzaDU5eiIvPgogICAgPHBhdGggZmlsbD0iI2ZlZmVmZSIKICAgICAgICAgIGQ9Ik0zMTYuNSAyMDkuNWMyMy44MjguOTk4IDQ3LjgyOCAxLjMzMSA3MiAxdjE3Yy0xNC42Ny0uMTY3LTI5LjMzNyAwLTQ0IC41LTEuMzI2IDYuNTk5LTEuMzI2IDEzLjA5OSAwIDE5LjUgMTQuNDkuOTk2IDI5LjE1NyAxLjMyOSA0NCAxdjE2Yy0xNC44NDMtLjMyOS0yOS41MS4wMDQtNDQgMWE1MC41MSA1MC41MSAwIDAgMCAwIDIwYzE0LjQ5Ljk5NiAyOS4xNTcgMS4zMjkgNDQgMXYxN2gtNzNjLS4zMzItMzEuNTA0LjAwMi02Mi44MzggMS05NHoiLz4KICAgIDxwYXRoIGZpbGw9IiMxODI3NWIiCiAgICAgICAgICBkPSJNNTUuNSAyMjkuNWM3LjA4OS0uMzg0IDE0LjA4OS4xMTYgMjEgMS41IDMuNDAxIDEuMzIgNC43MzUgMy44MiA0IDcuNWwtLjUgNWMtMS43NzEuODA0LTMuMjcxIDEuOTcxLTQuNSAzLjUtNi41OTIgMS4zMjktMTMuMjU5IDEuODI5LTIwIDEuNXYtMTl6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTVhY2MwIiBkPSJNNDgyLjUgMjMxLjVjLjk2OCAyLjEwNyAxLjMwMiA0LjQ0MSAxIDctOC44NDkuMzI2LTE3LjUxNi0uMDA3LTI2LTFoMjV2LTZ6Ii8+CiAgICA8cGF0aCBmaWxsPSIjYTZhZGMwIiBkPSJNMzQ0LjUgMjQ3LjVoNDV2MThoLTQ1YzE0LjQ5LS45OTYgMjkuMTU3LTEuMzI5IDQ0LTF2LTE2Yy0xNC44NDMuMzI5LTI5LjUxLS4wMDQtNDQtMXoiLz4KICAgIDxwYXRoIGZpbGw9IiNhMmE5YmUiIGQ9Ik00MjguNSAyNzUuNWgtMjV2OGMtLjk3Ny0yLjc4Ny0xLjMxLTUuNzg3LTEtOSA4Ljg0OS0uMzI2IDE3LjUxNi4wMDcgMjYgMXoiLz4KICAgIDxwYXRoIGZpbGw9IiNhNWFjYmYiCiAgICAgICAgICBkPSJNMTEzLjUgMzAxLjVjLjk3OC4zMTEgMS42NDUuOTc4IDIgMmwtMTYgMWMtNS43MTEtLjAwNS0xMS4wNDQtLjY3Mi0xNi0yYTEyOC4xOSAxMjguMTkgMCAwIDAgMTUuNSAxYzUuMjE2LS4wMDYgMTAuMDQ5LS42NzMgMTQuNS0yeiIvPgogICAgPHBhdGggZmlsbD0iI2E1YWNjMCIgZD0iTTIzMy41IDIwOS41djk0aDY5di0xN2MtMTMuNTEuMzI5LTI2Ljg0NC0uMDA0LTQwLTFoNDF2MTloLTcxYTIyNTYuNDEgMjI1Ni40MSAwIDAgMSAxLTk1eiIvPgogICAgPHBhdGggZmlsbD0iI2E2YWNjMCIKICAgICAgICAgIGQ9Ik0zMTYuNSAyMDkuNWMtLjk5OCAzMS4xNjItMS4zMzIgNjIuNDk2LTEgOTRoNzN2LTE3Yy0xNC44NDMuMzI5LTI5LjUxLS4wMDQtNDQtMWg0NXYxOWgtNzVhMjMwNC45NSAyMzA0Ljk1IDAgMCAxIDEtOTZjLjYwNy4xMjQuOTQuNDU3IDEgMXoiLz4KPC9zdmc+",UE=Gt([p.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),p.jsx("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")],"AccessTime"),HE=Gt(p.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4z"}),"AddBox"),WE=Gt(p.jsx("path",{d:"M4 8h4V4H4zm6 12h4v-4h-4zm-6 0h4v-4H4zm0-6h4v-4H4zm6 0h4v-4h-4zm6-10v4h4V4zm-6 4h4V4h-4zm6 6h4v-4h-4zm0 6h4v-4h-4z"}),"Apps"),GE=Gt(p.jsx("path",{d:"M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54s-2.94 8.27-7 9.54c.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2"}),"Brightness3"),VE=Gt(p.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm-1 4 6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2zm-1 7h5.5L14 6.5z"}),"FileCopy"),KE=Gt(p.jsx("path",{d:"M7 2v11h3v9l7-12h-4l4-8z"}),"FlashOn"),YE=Gt(p.jsx("path",{d:"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z"}),"Functions"),fw=Gt(p.jsx("path",{d:"M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4"}),"HelpOutline"),JE=Gt(p.jsx("path",{d:"M6 19h4V5H6zm8-14v14h4V5z"}),"Pause"),XE=Gt(p.jsx("path",{d:"M8 5v14l11-7z"}),"PlayArrow"),qE=Gt(p.jsx("path",{d:"M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4z"}),"PlayForWork"),ZE=Gt(p.jsx("path",{d:"M10.59 9.17 5.41 4 4 5.41l5.17 5.17zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4zm.33 9.41-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04z"}),"Shuffle"),QE=Gt(p.jsx("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"}),"Storage"),eI=Gt(p.jsx("path",{d:"M14 17H4v2h10zm6-8H4v2h16zM4 15h16v-2H4zM4 5v2h16V5z"}),"Subject");class Ag extends X.Component{isShowInstance;oldId;constructor(s){super(s),this.state={name:s.name,id:s.id,instance:s.instance||0,prefix:Ag.getPrefix(s.id)},this.isShowInstance=!s.folder&&!!s.instances&&(!!s.instance||!!s.instances[0]||s.instances.length>1),this.oldId=s.id}static getPrefix(s){const i=(s||"").split(".");return i.pop(),i.join(".")}getId(s){return s=(s||"").replace(/[\\/\][*,;'"`<>?\s]/g,"_"),`${this.state.prefix}.${s}`}handleCancel=()=>{this.props.onClose()};handleOk=()=>{this.props.onRename(this.oldId,this.state.id,this.state.name,this.state.instance===0?0:this.state.instance||void 0),this.props.onClose()};handleChange=s=>{this.setState({name:s,id:this.getId(s)})};render(){return p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"md",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[p.jsx(y.DialogTitle,{id:"confirmation-dialog-title",children:b.I18n.t("Rename")}),p.jsx(y.DialogContent,{children:p.jsxs("form",{noValidate:!0,autoComplete:"off",children:[p.jsx(y.TextField,{variant:"standard",style:{width:"100%"},id:"standard-name",autoFocus:!0,label:b.I18n.t("Name"),value:this.state.name,onKeyUp:s=>{s.key==="Enter"&&(s.preventDefault(),setTimeout(()=>this.handleOk(),200))},onChange:s=>this.handleChange(s.target.value),margin:"normal"}),p.jsx(y.TextField,{variant:"standard",id:"standard-name-id",style:{width:"100%"},label:b.I18n.t("ID"),value:this.state.id,disabled:!0,margin:"normal"}),this.isShowInstance&&p.jsxs(y.FormControl,{variant:"standard",children:[p.jsx(y.InputLabel,{htmlFor:"instance",children:b.I18n.t("Instance")}),p.jsx(y.Select,{variant:"standard",value:this.state.instance,onChange:s=>this.setState({instance:parseInt(s.target.value,10)}),inputProps:{name:"instance",id:"instance"},children:this.props.instances.map(s=>p.jsx(y.MenuItem,{value:s,children:s||"0"},s))})]})]})}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{variant:"contained",onClick:this.handleOk,color:"primary",startIcon:p.jsx(di,{}),children:b.I18n.t("Ok")}),p.jsx(y.Button,{color:"grey",variant:"contained",onClick:this.handleCancel,startIcon:p.jsx(lo,{}),children:b.I18n.t("Cancel")})]})]})}}class tI extends X.Component{constructor(s){super(s),this.state={name:s.name,id:s.id}}handleCancel=()=>{this.props.onClose()};handleOk=()=>{this.props.onDelete(this.state.id),this.props.onClose()};render(){return p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"md",open:!0,"aria-labelledby":"confirmation-dialog-title",children:[p.jsx(y.DialogTitle,{id:"confirmation-dialog-title",children:b.I18n.t("Are you sure?")}),p.jsxs(y.DialogContent,{children:[p.jsx(NT,{}),p.jsx("span",{style:{fontSize:14,fontWeight:"bold"},children:b.I18n.t("Delete %s",this.state.name)})]}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{variant:"contained",onClick:this.handleOk,color:"primary",startIcon:p.jsx(di,{}),children:b.I18n.t("Ok")}),p.jsx(y.Button,{color:"grey",variant:"contained",onClick:this.handleCancel,startIcon:p.jsx(lo,{}),children:b.I18n.t("Cancel")})]})]})}}const sI=""+new URL("tileJS-C48gYbHw.png",import.meta.url).href,oI=""+new URL("tileTS-CsXmgy4B.png",import.meta.url).href,iI=""+new URL("tileBlockly-BMpdinN3.png",import.meta.url).href,nI=""+new URL("tileRules-BkbaFIhs.png",import.meta.url).href,Rt={card:{maxWidth:345,minWidth:250,display:"inline-block",margin:"0 10px 0 10px"},media:{height:122},text:{maxWidth:218,minHeight:30},complexity:{fontWeight:"bold",fontStyle:"italic",marginBottom:8}};class rn extends X.Component{handleCancel=()=>{this.props.onClose()};static openHtml(s){const i=b.I18n.getLanguage();!s.includes("javascript.md")&&(i==="de"||i==="ru")&&(s=s.replace(/\/en\//,`/${i}/`));const r=window.open(s,"_blank");r==null||r.focus()}getJSCard(){return p.jsxs(y.Card,{style:Rt.card,children:[p.jsxs(y.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("Javascript/js"),children:[p.jsx(y.CardMedia,{style:Rt.media,image:sI,title:"JavaScript"}),p.jsxs(y.CardContent,{children:[p.jsx("h2",{children:"JavaScript"}),p.jsx("div",{style:Rt.complexity,children:b.I18n.t("for programmers")}),p.jsx("div",{style:Rt.text,children:b.I18n.t("JS description")})]})]}),p.jsxs(y.CardActions,{children:[p.jsx(y.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("Javascript/js"),children:b.I18n.t("Add")}),p.jsx(y.Button,{size:"small",color:"secondary",onClick:()=>rn.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md"),children:b.I18n.t("Learn More")})]})]})}getTSCard(){return p.jsxs(y.Card,{style:Rt.card,children:[p.jsxs(y.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("TypeScript/ts"),children:[p.jsx(y.CardMedia,{style:Rt.media,image:oI,title:"TypeScript"}),p.jsxs(y.CardContent,{children:[p.jsx("h2",{children:"TypeScript"}),p.jsx("div",{style:Rt.complexity,children:b.I18n.t("for professionals")}),p.jsx("div",{style:Rt.text,children:b.I18n.t("TS description")})]})]}),p.jsxs(y.CardActions,{children:[p.jsx(y.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("TypeScript/ts"),children:b.I18n.t("Add")}),p.jsx(y.Button,{size:"small",color:"secondary",onClick:()=>rn.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md"),children:b.I18n.t("Learn More")})]})]})}getBlocklyCard(){return p.jsxs(y.Card,{style:Rt.card,children:[p.jsxs(y.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("Blockly"),children:[p.jsx(y.CardMedia,{style:Rt.media,image:iI,title:"Blockly"}),p.jsxs(y.CardContent,{children:[p.jsx("h2",{children:"Blockly"}),p.jsx("div",{style:Rt.complexity,children:b.I18n.t("normal")}),p.jsx("div",{style:Rt.text,children:b.I18n.t("Blockly description")})]})]}),p.jsxs(y.CardActions,{children:[p.jsx(y.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("Blockly"),children:b.I18n.t("Add")}),p.jsx(y.Button,{size:"small",color:"secondary",onClick:()=>rn.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/blockly.md"),children:b.I18n.t("Learn More")})]})]})}getRulesCard(){return p.jsxs(y.Card,{style:Rt.card,children:[p.jsxs(y.CardActionArea,{onClick:()=>this.props.onClose&&this.props.onClose("Rules"),children:[p.jsx(y.CardMedia,{style:Rt.media,image:nI,title:"Rules"}),p.jsxs(y.CardContent,{children:[p.jsx("h2",{children:"Rules"}),p.jsx("div",{style:Rt.complexity,children:b.I18n.t("easy")}),p.jsx("div",{style:Rt.text,children:b.I18n.t("Rules description")})]})]}),p.jsxs(y.CardActions,{children:[p.jsx(y.Button,{size:"small",color:"primary",variant:"contained",onClick:()=>this.props.onClose&&this.props.onClose("Rules"),children:b.I18n.t("Add")}),p.jsx(y.Button,{size:"small",color:"secondary",onClick:()=>rn.openHtml("https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md"),children:b.I18n.t("Learn More")})]})]})}render(){return p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"lg",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[p.jsx(y.DialogTitle,{id:"confirmation-dialog-title",children:b.I18n.t("Add new script")}),p.jsxs(y.DialogContent,{style:{textAlign:"center"},children:[this.getRulesCard(),this.getBlocklyCard(),this.getJSCard(),this.getTSCard()]}),p.jsx(y.DialogActions,{children:p.jsx(y.Button,{color:"grey",onClick:this.handleCancel,startIcon:p.jsx(lo,{}),children:b.I18n.t("Cancel")})})]})}}class Sp extends X.Component{isShowInstance;constructor(s){super(s),this.state={name:s.name||"Script",instance:s.instance||0,parent:s.parent,error:"",id:""},this.isShowInstance=!s.folder&&!!s.instances&&(!!s.instance||!!s.instances[0]||s.instances.length>1)}getId(s){return s=s||this.state.name||"",s=s.replace(/[\\/\][.*,;'"`<>?\s]/g,"_").trim().replace(/\.$/,"_"),`${this.state?this.state.parent:this.props.parent}.${s}`}handleOk=()=>{this.props.onAdd(this.getId(this.state.name),this.state.name,this.state.instance,this.props.type),this.props.onClose()};render(){var s;return console.log(this.state.name),p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"md",fullWidth:!0,open:!0,"aria-labelledby":"confirmation-dialog-title",children:[p.jsx(y.DialogTitle,{id:"confirmation-dialog-title",children:this.props.title||b.I18n.t("Create new")}),p.jsx(y.DialogContent,{children:p.jsxs("form",{noValidate:!0,autoComplete:"off",children:[p.jsx(y.TextField,{variant:"standard",style:{width:"100%"},id:"standard-name",autoFocus:!0,error:!!this.state.error,label:b.I18n.t("Name"),value:this.state.name||"",helperText:this.state.error,slotProps:{input:{endAdornment:this.state.name?p.jsx(y.IconButton,{size:"small",onClick:()=>this.setState({name:""}),children:p.jsx(LT,{})}):void 0}},onKeyUp:i=>{i.preventDefault(),i.key==="Enter"&&!this.state.error&&setTimeout(()=>this.handleOk(),200)},onChange:i=>{var u;const r=i.target.value,l=this.getId(r);r?(u=this.props.existingItems)!=null&&u.includes(l)?this.setState({name:r,id:l,error:b.I18n.t("Duplicate name")}):(console.log(`Set name: "${r}"`),this.setState({name:r,id:l,error:""})):this.setState({name:r,id:l,error:b.I18n.t("Empty name is not allowed")})},margin:"normal"}),p.jsxs(y.FormControl,{variant:"standard",style:{width:"100%"},children:[p.jsx(y.InputLabel,{htmlFor:"parent",children:b.I18n.t("Folder")}),p.jsx(y.Select,{variant:"standard",style:{width:"100%"},value:this.state.parent,onChange:i=>this.setState({parent:i.target.value}),inputProps:{name:"parent",id:"parent"},children:this.props.parents.map(i=>{const r=i.id.split(".");r.splice(0,2);const l=[];let u="script.js";return r.forEach(d=>{u+=`.${d}`;const g=this.props.parents.find(m=>m.id===u);g?l.push(g.name):l.push(d)}),l.length||l.push(i.name),p.jsx(y.MenuItem,{value:i.id,children:l.join(" / ")},i.id)})})]}),p.jsx(y.TextField,{variant:"standard",id:"standard-name-id",style:{width:"100%"},label:b.I18n.t("ID"),value:this.getId(),disabled:!0,margin:"normal"}),this.isShowInstance&&p.jsxs(y.FormControl,{variant:"standard",children:[p.jsx(y.InputLabel,{htmlFor:"instance",children:b.I18n.t("Instance")}),p.jsx(y.Select,{variant:"standard",value:this.state.instance,onChange:i=>this.setState({instance:parseInt(i.target.value,10)}),inputProps:{name:"instance",id:"instance"},children:(s=this.props.instances)==null?void 0:s.map(i=>p.jsx(y.MenuItem,{value:i,children:i||"0"},`instance${i}`))})]})]})}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{variant:"contained",onClick:this.handleOk,disabled:!!this.state.error,color:"primary",startIcon:p.jsx(di,{}),children:b.I18n.t("Ok")}),p.jsx(y.Button,{color:"grey",variant:"contained",onClick:()=>this.props.onClose(),startIcon:p.jsx(lo,{}),children:b.I18n.t("Cancel")})]})]})}}const rI={title:a=>({background:a.palette.error.main,color:a.palette.error.contrastText,"&>h2":{color:a.palette.error.contrastText}})};class kc extends X.Component{handleOk=()=>{this.props.onClose()};render(){return p.jsxs(y.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.handleOk(),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[p.jsx(y.DialogTitle,{sx:rI.title,id:"alert-dialog-title",children:this.props.title||b.I18n.t("Error")}),p.jsx(y.DialogContent,{children:p.jsx(y.DialogContentText,{id:"alert-dialog-description",children:this.props.text||b.I18n.t("Unknown error!")})}),p.jsx(y.DialogActions,{children:p.jsx(y.Button,{variant:"contained",onClick:()=>this.handleOk(),color:"primary",autoFocus:!0,startIcon:p.jsx(di,{}),children:b.I18n.t("Ok")})})]})}}const fr={icon:{width:24,height:24},filterWithButton:{width:"100%"},title:{fontWeight:"bold",marginTop:16}};class aI extends X.Component{constructor(s){super(s),this.state={instances:[],filter:window.localStorage.getItem("javascript.debug.filter")||"",showAskForStop:!1,jsInstance:window.localStorage.getItem("javascript.debug.instance")||"",jsInstanceHost:"",adapterToDebug:window.localStorage.getItem("javascript.debug.adapter")||""}}componentDidMount(){this.props.socket.getAdapterInstances().then(s=>{const i=s.filter(g=>{var m;return g&&!((m=g.common)!=null&&m.onlyWWW)}).map(g=>{var v,w,_;const m=g._id.replace(/^system\.adapter\./,""),[f]=m.split(".");return{id:m,enabled:(v=g.common)==null?void 0:v.enabled,host:(w=g.common)==null?void 0:w.host,icon:(_=g.common)!=null&&_.icon?`../../adapter/${f}/${g.common.icon}`:""}});i.sort((g,m)=>g.id>m.id?1:g.idg.id===this.state.jsInstance):null;let u;if(!this.state.jsInstance||!l){const g=i.find(m=>m.id.startsWith("javascript."));u=(g==null?void 0:g.host)||"",r=(g==null?void 0:g.id)||""}else u=(l==null?void 0:l.host)||"";let d=this.state.adapterToDebug||"";d&&!i.find(g=>g.id===d)&&(d=""),this.setState({instances:i,jsInstance:r,adapterToDebug:d,jsInstanceHost:u})})}handleOk=()=>{var s;if((s=this.state.instances.find(i=>i.id===this.state.adapterToDebug))!=null&&s.enabled){this.props.socket.getObject(`system.adapter.${this.state.adapterToDebug}`).then(i=>{i&&(i.common.enabled=!1,this.props.socket.setObject(i._id,i).then(()=>this.props.onDebug(this.state.jsInstance,this.state.adapterToDebug)))});return}this.props.onDebug(this.state.jsInstance,this.state.adapterToDebug)};renderJavascriptList(){const s=this.state.instances.filter(i=>i.id.startsWith("javascript."));return s.length<2?null:p.jsxs(y.Grid2,{children:[p.jsx("div",{style:fr.title,children:b.I18n.t("Host")}),p.jsx(y.List,{component:"nav",children:s.map(i=>p.jsxs(y.ListItemButton,{component:"div",selected:this.state.jsInstance===i.id,onClick:()=>this.setState({jsInstance:i.id,jsInstanceHost:i.host}),children:[p.jsx(y.ListItemIcon,{children:p.jsx("img",{src:i.icon,alt:i.id,style:fr.icon})}),p.jsx(y.ListItemText,{primary:i.id})]},i.id))})]})}renderInstances(){if(!this.state.jsInstance)return p.jsx(y.Grid2,{});const s=this.state.instances.filter(i=>i.id!==this.state.jsInstance&&i.host===this.state.jsInstanceHost&&(!this.state.filter||i.id.includes(this.state.filter.toLowerCase())));return p.jsxs(y.Grid2,{children:[p.jsx("div",{style:fr.title,children:b.I18n.t("Instances")}),p.jsx(y.List,{component:"nav",children:s.map(i=>p.jsxs(y.ListItemButton,{selected:this.state.adapterToDebug===i.id,onDoubleClick:()=>this.setState({adapterToDebug:i.id},()=>this.handleOk()),onClick:()=>this.setState({adapterToDebug:i.id}),children:[p.jsx(y.ListItemIcon,{children:p.jsx("img",{src:i.icon,alt:i.id,style:fr.icon})}),p.jsx(y.ListItemText,{primary:i.id})]},i.id))})]})}render(){return p.jsxs(y.Dialog,{maxWidth:"md",fullWidth:!1,open:!0,onClose:()=>!1,"aria-labelledby":"confirmation-dialog-title",children:[p.jsx(y.DialogTitle,{id:"confirmation-dialog-title",children:this.props.title||b.I18n.t("Debug instance")}),p.jsx(y.DialogContent,{children:p.jsxs(y.Grid2,{container:!0,direction:"column",children:[p.jsx(y.Grid2,{children:p.jsx(y.Input,{style:fr.filterWithButton,value:this.state.filter,placeholder:b.I18n.t("Filter"),onChange:s=>{this.setState({filter:s.target.value}),window.localStorage.setItem("javascript.debug.filter",s.target.value)},endAdornment:p.jsx(y.InputAdornment,{position:"end",children:this.state.filter?p.jsx(y.IconButton,{size:"small","aria-label":"toggle password visibility",onClick:()=>this.setState({filter:""}),children:p.jsx(BT,{})}):""})})}),p.jsx(y.Grid2,{children:p.jsxs(y.Grid2,{container:!0,children:[this.renderJavascriptList(),this.renderInstances()]})})]})}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{variant:"contained",onClick:this.handleOk,disabled:!this.state.jsInstance||!this.state.adapterToDebug,color:"primary",startIcon:p.jsx(di,{}),children:b.I18n.t("Start")}),p.jsx(y.Button,{color:"grey",variant:"contained",onClick:()=>this.props.onClose(),startIcon:p.jsx(lo,{}),children:b.I18n.t("Close")})]})]})}}const lI=48,Ry=R_[400],Oy=AT[400],My=O_[400],Ft="script.js",Qi=`${Ft}.common`,ro=`${Ft}.global`,$r=350,cI=16,$w={background:"#164477",color:"white"},_e={drawerPaper:{position:"relative",width:"100%",height:"100%",overflow:"hidden"},toolbar:a=>({height:a.toolbar.height}),toolbarButtons:a=>({color:a.palette.mode==="dark"?"white !important":"black !important"}),iconButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},toolbarSearch:{width:"calc(100% - 105px)",lineHeight:"34px",marginLeft:5},iconButtons:{width:32,height:32,padding:2},iconDropdownMenu:{paddingRight:5},menu:{width:"100%",height:"100%"},innerMenu:{width:"100%",height:"calc(100% - 76px)",overflowX:"hidden",overflowY:"auto"},listItemIcon:{minWidth:32},scriptIcon:{width:18,height:18,borderRadius:2,marginTop:4,marginBottom:4,marginLeft:8,marginRight:4},folder:{cursor:"pointer",padding:0,userSelect:"none"},folderReorder:{opacity:.3,transitionDuration:"0.5s",transitionProperty:"opacity"},folderIcon:{width:20,height:20},folderIconReorder:{paddingTop:4,paddingBottom:4,paddingLeft:8,paddingRight:4},folderIconNoReorder:{cursor:"pointer",paddingTop:4,paddingBottom:4,paddingLeft:8,paddingRight:4},script:{cursor:"pointer",padding:0,userSelect:"none"},scriptReorder:{opacity:1,transitionDuration:"0.5s",transitionProperty:"opacity"},reorder:{},selected:$w,instances:{color:"gray",fontSize:"smaller"},childrenCount:{fontSize:10,opacity:.4},footer:{height:24,display:"flex"},footerButtons:a=>({"& img":{color:a.palette.mode==="dark"?"#ffffff":"#111111",cursor:"pointer",mt:"1px",mr:"2px",height:22,width:22,"&:hover":{backgroundColor:"#dbdbdb"}},"& svg":{color:a.palette.mode==="dark"?"#ffffff":"#111111",cursor:"pointer",mt:"1px",mr:"2px",height:22,width:22,"&:hover":{backgroundColor:"#dbdbdb"}}}),footerButtonsRight:{float:"right"}},en={Blockly:pw,"Javascript/js":Yl,def:Yl,Rules:mw,"TypeScript/ts":gw};function rg(a,s,i){var r;return i=i||b.I18n.getLanguage(),(r=s==null?void 0:s.common)!=null&&r.name?typeof s.common.name=="object"?(s.common.name[i]||s.common.name.en||a.replace(/^script\.js./,"")).toString():s.common.name.toString():a.replace(/^script\.js./,"")}function Ny(a){var l;const s=[{id:Ft,depth:0,index:0,parent:null,title:"root",type:"folder",parentIndex:null}],i=Object.keys(a);for(let u=0;u1?g.join("."):null,instance:d.common.engine?parseInt(d.common.engine.split(".").pop(),10)||0:null,index:0,parentIndex:0}):s.push({id:i[u],title:rg(i[u],d),depth:g.length-1,type:"folder",parent:g.length>1?g.join("."):null,index:0,parentIndex:null})}let r;do r=!1,s.forEach(u=>{if(u.parent&&!s.find(g=>g.id===u.parent)){const g=u.parent.split(".");g.pop(),s.push({id:u.parent,title:u.parent.split(".").pop()||"",depth:g.length-1,type:"folder",parent:g.length>1?g.join("."):null,index:0,parentIndex:null}),r=!0}});while(r);return s.sort((u,d)=>{const g=u.id.toLowerCase(),m=d.id.toLowerCase();return u.type==="folder"&&d.type!=="folder"?-1:d.type==="folder"&&u.type!=="folder"||g>m?1:gu.index=d),s.forEach(u=>{if(u.parent){const d=s.find(g=>g.id===u.parent);d&&(u.parentIndex=d.index)}}),s}function uI(a){const{onDrop:s}=a,[{isOver:i,isOverAny:r},l]=IE({accept:"script",drop:u=>i?s(u):void 0,collect:u=>({isOver:u.isOver({shallow:!0}),isOverAny:u.isOver()})});return p.jsx("div",{ref:l,style:{background:i?"#40adff":void 0,opacity:r?.7:void 0},children:a.children},a.folderName)}function Ly(a){const{name:s}=a,[{opacity:i},r]=yE({type:"script",item:()=>({name:s}),collect:l=>({opacity:l.isDragging()?.3:1})});return p.jsx("div",{ref:r,style:{opacity:i,transform:"translate3d(0, 0, 0)"},children:a.children},s)}class ao extends X.Component{inputRef;filterTimer;problems;problemsTimer;onProblemUpdatedBound;parent=null;constructor(s){super(s);const i=window.localStorage?window.localStorage.getItem("SideMenu.expanded"):"[]";let r;try{r=JSON.parse(i||"[]")||[]}catch{r=[]}this.inputRef=X.createRef(),this.state={listItems:Ny(s.scripts||{}),expanded:r,problems:[],reorder:!1,themeName:this.props.themeName,selected:window.localStorage&&window.localStorage.getItem("SideMenu.selected")||null,creatingScript:null,creatingFolder:!1,copingScript:"",renaming:null,deleting:null,choosingType:!1,errorText:"",instances:s.instances||[],menuOpened:!1,menuAnchorEl:null,menuAnchorFilterEl:null,searchMode:!1,expertMode:this.props.expertMode,searchText:"",width:this.props.width||300,typeFilter:window.localStorage&&window.localStorage.getItem("SideMenu.typeFilter")||"",statusFilter:window.localStorage&&window.localStorage.getItem("SideMenu.statusFilter")||"",runningInstances:this.props.runningInstances||{},scriptsHash:s.scriptsHash,showAdapterDebug:!1,isAllZeroInstances:!1};const l=this.ensureSelectedIsVisible();l&&Object.assign(this.state,{expanded:l}),this.filterTimer=null,Object.assign(this.state,{isAllZeroInstances:this.getIsAllZeroInstances()}),this.problems=null,this.problemsTimer=null,this.onProblemUpdatedBound=this.onProblemUpdated.bind(this)}readProblems(s,i){var r,l;if(i||(i=Object.keys(this.props.scripts)),!i||!i.length)s&&s();else{const u=i.shift(),d=this.props.scripts[u];if(((r=this.props.scripts)==null?void 0:r[u].type)==="script"&&((l=d.common)!=null&&l.enabled)&&!u.match(/^script\.js\.global\./)){const g=d.common.engine.split(".").pop(),m=this,f=`javascript.${g}.scriptProblem.${u.substring(Ft.length+1)}`;this.props.socket.getState(f).then(v=>{m.onProblemUpdated(f,v),setTimeout(()=>m.readProblems(s,i),0)})}else setTimeout(()=>this.readProblems(s,i),0)}}componentDidMount(){this.readProblems(()=>{this.props.instances.forEach(s=>{this.props.socket.subscribeState(`javascript.${s}.scriptProblem.*`,this.onProblemUpdatedBound)})})}componentWillUnmount(){this.props.instances.forEach(s=>{this.props.socket.unsubscribeState(`javascript.${s}.scriptProblem.*`,this.onProblemUpdatedBound)})}onProblemUpdated(s,i){if(!i||!s)return;s=`${Ft}.${s.replace(/^javascript\.\d+\.scriptProblem\./,"")}`,this.problems||(this.problems=JSON.parse(JSON.stringify(this.state.problems))||[]);let r=!1;if(i.val)this.problems.includes(s)||(this.problems.push(s),r=!0);else{const l=this.problems.indexOf(s);l!==-1&&(this.problems.splice(l,1),r=!0)}r&&!this.problemsTimer&&(this.problemsTimer=setTimeout(()=>{this.problemsTimer=null,this.setState({problems:this.problems}),this.problems=null},300))}static filterListStatic(s,i,r,l,u){i=JSON.parse(JSON.stringify(i));let d=!1;const g={listItems:i};if(s&&r&&l){const m=l.toLowerCase();if(i.forEach(f=>{var S;const v=f.title.toLowerCase();f.filteredPartly=!1;let w=v.includes(m);const _=(S=u==null?void 0:u[f.id])==null?void 0:S.common;if(!w&&(_!=null&&_.source))if(_.engineType==="Blockly"){const k=_.source.lastIndexOf("//");w=_.source.substring(0,k).toLowerCase().includes(m)}else w=_.source.toLowerCase().includes(m);w?f.filtered&&(f.filtered=!1,d=!0):f.filtered||(f.filtered=!0,d=!0)}),d)for(let f=i.length-1;f>=0;f--){const v=i[f];if(!v.filtered||v.filteredPartly){let w=v;do w!=null&&w.parent&&i[w.parentIndex]&&(d=!0,i[w.parentIndex].filteredPartly=!0),w=w!=null&&w.parent&&i[w.parentIndex]?i[w.parentIndex]:null;while(w)}}}else i.forEach(m=>{(m.filtered||m.filteredPartly)&&(m.filtered=!1,m.filteredPartly=!1,d=!0)}),s||(g.searchText="",g.searchMode=!1,d=!0);return d?g:null}filterList(s,i){const r=ao.filterListStatic(s,this.state.listItems,this.state.searchMode,this.state.searchText,this.props.scripts);r?this.setState(r,()=>i&&i()):i&&i()}static ensureSelectedIsVisibleStatic(s,i,r){i=JSON.parse(JSON.stringify(i));let l=!1,u=typeof s=="object"?s:r.find(d=>d.id===s);do{if(u!=null&&u.parent){const d=u.parent;u=r.find(g=>g.id===d)}else u=void 0;u&&(i.includes(u.id)||(i.push(u.id),l=!0))}while(u);return l?i:null}ensureSelectedIsVisible(s,i){return ao.ensureSelectedIsVisibleStatic(s||this.state.selected,i||this.state.expanded,this.state.listItems)}static getDerivedStateFromProps(s,i){const r={};let l=!1;if(i.expertMode!==s.expertMode&&(l=!0,r.expertMode=s.expertMode),i.scriptsHash!==s.scriptsHash&&s.scripts){const u=Ny(s.scripts||{});if(r.listItems=u,i.searchText){const m=ao.filterListStatic(!0,u,i.searchMode,i.searchText,s.scripts);m&&Object.assign(r,m)}const d=ao.getIsAllZeroInstancesStatic(u,s.instances||[]),g=ao.ensureSelectedIsVisibleStatic(i.selected,i.expanded,i.listItems);r.isAllZeroInstances=d,g&&(r.expanded=g),l=!0}if(i.width!==s.width&&(l=!0,r.width=s.width),i.themeName!==s.themeName&&(l=!0,r.themeName=s.themeName),s.selectId&&i.selected!==s.selectId){const u=i.listItems.find(d=>d.id===s.selectId);if(!i.reorder&&u){const d=ao.ensureSelectedIsVisibleStatic(u,i.expanded,i.listItems);r.selected=u.id,d&&(r.expanded=d),l=!0,window.localStorage&&window.localStorage.setItem("SideMenu.selected",u.id)}}return l?r:null}static getIsAllZeroInstancesStatic(s,i){let r=!i[0]&&i.length<=1;return r&&s.forEach(l=>{l.type!=="folder"&&l.instance!==0&&(r=!1)}),r}getIsAllZeroInstances(s,i){return s=s||this.state.listItems,i=i||this.state.instances,ao.getIsAllZeroInstancesStatic(s||this.state.listItems,i||this.state.instances)}saveExpanded(s){window.localStorage.setItem("SideMenu.expanded",JSON.stringify(s||this.state.expanded))}showError(s){this.setState({errorText:s})}onToggle(s,i){if(i==null||i.stopPropagation(),s===Ft)return;const r=[...this.state.expanded],l=r.indexOf(s);l!==-1?(r.splice(l,1),this.state.selected&&this.state.selected.startsWith(`${s}.`)&&window.localStorage&&window.localStorage.setItem("SideMenu.selected",s)):(r.push(s),r.sort()),this.setState({expanded:r}),this.saveExpanded(r)}renderItemButtonsOnEnd(s,i){if(this.state.reorder)return null;if(s.type!=="folder"){let r=s.enabled?Ry:My;return s.enabled&&this.state.problems.includes(s.id)&&(r=Oy),[p.jsx(y.IconButton,{onClick:l=>{l.stopPropagation(),this.props.onEnableDisable&&this.props.onEnableDisable(s.id,!s.enabled)},title:s.enabled?b.I18n.t("Pause script"):b.I18n.t("Run script"),disabled:this.props.debugMode,style:{..._e.iconButtons,...this.props.debugMode?_e.iconButtonsDisabled:void 0,color:r},size:"medium",children:s.enabled?p.jsx(zl,{}):p.jsx(qp,{})},"startStop"),this.state.width>$r?p.jsx(y.IconButton,{style:this.props.debugMode?_e.iconButtonsDisabled:void 0,title:b.I18n.t("Delete script"),disabled:s.id===ro||s.id===Qi||this.props.debugMode,onClick:l=>this.onDelete(s,l),size:"medium",children:p.jsx(vp,{})},"delete"):null,p.jsx(y.IconButton,{style:this.props.debugMode?_e.iconButtonsDisabled:void 0,disabled:this.props.debugMode,title:b.I18n.t("Edit script or just double click"),onClick:l=>this.onEdit(s,l),size:"medium",children:p.jsx(N_,{})},"openInEdit")]}return this.state.width>$r&&s.id!==Ft&&s.id!==Qi&&s.id!==ro&&i!=null&&i.length?p.jsx(y.IconButton,{style:this.props.debugMode?_e.iconButtonsDisabled:void 0,title:b.I18n.t("Delete folder"),disabled:s.id===ro||s.id===Qi||this.props.debugMode,onClick:r=>this.onDelete(s,r),size:"medium",children:p.jsx(vp,{})},"delete"):null}onDelete(s,i){return i==null||i.stopPropagation(),new Promise(r=>{if(!s){r();return}typeof s!="object"?this.setState({deleting:s},()=>r()):this.setState({deleting:s.id},()=>r())})}onEdit(s,i){this.onClick(s,i),this.props.onEdit&&this.props.onEdit(s.id)}getTextStyle(s){return!this.state.reorder&&s.type!=="folder"?{width:`calc(100% - ${this.state.width>$r?185:137}px)`,overflow:"hidden",whiteSpace:"nowrap",flex:"none",padding:"0 16px 0 0"}:{whiteSpace:"nowrap",padding:"0 16px 0 0"}}onClick(s,i){if(i==null||i.stopPropagation(),!this.state.reorder&&s){const r=this.ensureSelectedIsVisible(s),l={selected:s.id};r&&(l.expanded=r),this.setState(l),window.localStorage&&window.localStorage.setItem("SideMenu.selected",s.id)}}onDblClick(s,i){i==null||i.stopPropagation(),!this.state.reorder&&(s.type==="folder"?this.onToggle(s.id):this.onEdit(s))}isFilteredOut(s){return s.filtered&&!s.filteredPartly||this.state.typeFilter&&s.type!=="folder"&&s.type!==this.state.typeFilter||this.state.statusFilter&&s.type!=="folder"&&(this.state.statusFilter==="running"&&!s.enabled||this.state.statusFilter==="paused"&&s.enabled||this.state.statusFilter==="problems"&&(!s.enabled||this.state.problems.indexOf(s.id)===-1))?!0:s.id===ro&&!this.state.expertMode}renderListItem(s,i,r){if(s.id===Ft&&!this.state.reorder)return null;const l=(this.state.reorder?s.depth:s.depth-1)*cI;let u=s.title;if(this.state.searchText){const _=u.toLowerCase().indexOf(this.state.searchText.toLowerCase());_!==-1&&(u=[p.jsx("span",{children:u.substring(0,_)},"first"),p.jsx("span",{style:{color:"orange"},children:u.substring(_,_+this.state.searchText.length)},"second"),p.jsx("span",{children:u.substring(_+this.state.searchText.length)},"third")])}!this.state.isAllZeroInstances&&s.type!=="folder"&&(u=[p.jsx("span",{children:u},"title"),p.jsxs("span",{title:b.I18n.t("Instance"),style:_e.instances,children:["[",s.instance,"]"]},"instance")]);const d=this.state.reorder&&!this.props.debugMode,g=Object.assign({marginLeft:l,cursor:s.type==="folder"&&d?"default":"inherit",width:`calc(100% - ${l}px)`},s.id===this.state.selected&&!d?$w:void 0);d||(g.opacity=s.filteredPartly?.5:1),s.id===ro&&s.id!==this.state.selected&&(g.color="#00a200");let m=s.id===Ft;!m&&i&&(m=this.state.expanded.includes(s.id));let f;s.type==="folder"?f={..._e.folderIcon,...d?_e.folderIconReorder:_e.folderIconNoReorder}:f={..._e.scriptIcon},s.id===ro?f.color="#356956":s.id===Qi&&(f.color="#4899e1");let v=null;(r&&r.length||i&&i.length)&&(v=p.jsx("span",{style:_e.childrenCount,children:r&&r.length!==i.length?`${r.length}(${i.length})`:i.length}));const w={...s.type==="folder"?_e.folder:_e.script,...d?_e.reorder:void 0,...d&&s.type!=="folder"?_e.scriptReorder:void 0,...d&&s.type==="folder"?_e.folderReorder:void 0,...g};return p.jsxs(y.ListItem,{style:w,className:b.Utils.clsx(d&&s.type==="folder"&&"folder-reorder",d&&s.type!=="folder"&&"script-reorder"),onClick:_=>this.onClick(s,_),onDoubleClick:_=>this.onDblClick(s,_),secondaryAction:this.renderItemButtonsOnEnd(s,i),children:[p.jsx(y.ListItemIcon,{style:_e.listItemIcon,children:s.type==="folder"?d||m?p.jsx(PT,{style:f,onClick:_=>!d&&this.onToggle(s.id,_)}):p.jsx(FT,{style:f,onClick:_=>!d&&this.onToggle(s.id,_)}):p.jsx("img",{style:f,alt:s.type,src:en[s.type]||en.def})}),p.jsx(y.ListItemText,{sx:{"& .MuiListItemText-primary":s.id===this.state.selected&&!d?_e.selected:void 0},style:this.getTextStyle(s),primary:p.jsxs("span",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[u,v]})})]},s.id)}onDragFinish(s,i){let r=`${i}.${s.split(".").pop()}`;r!==s&&(this.state.listItems.find(l=>l.id===r)&&(r+=`_${b.I18n.t("copy")}`),this.props.onRename&&this.props.onRename(s,r))}renderOneItem(s,i){const r=this.state.statusFilter||this.state.typeFilter?s.filter(f=>f.parent===i.id?!this.isFilteredOut(f):!1):[],l=s.filter(f=>f.parent===i.id);if(this.isFilteredOut(i)||i.type==="folder"&&(this.state.statusFilter||this.state.typeFilter)&&!r.length)return null;const u=this.state.reorder&&!this.props.debugMode,d=this.renderListItem(i,l,r),g=[];let m;return l&&(u||this.state.expanded.includes(i.id)||i.id===Ft)&&(m=l.map(f=>this.renderOneItem(s,f))),u?i.type==="folder"?g.push(p.jsxs(uI,{onDrop:f=>this.onDragFinish(f.name,i.id),folderName:i.id,children:[p.jsx(Ly,{name:i.id,children:d},`draggable_${i.id}`),m||null]},`droppable_${i.id}`)):g.push(p.jsxs(Ly,{name:i.id,children:[d,m||null]},`draggable_${i.id}`)):(g.push(d),m==null||m.forEach(f=>g.push(f))),g}renderAllItems(s){const i=s.filter(r=>!r.parent).map(r=>this.renderOneItem(s,r));return p.jsx(y.List,{dense:!0,disablePadding:!0,sx:_e.mainList,children:i})}onAddNew(s){s==null||s.stopPropagation();let i=this.state.listItems.find(l=>l.id===this.state.selected),r=Ft;for(;i&&i.type!=="folder";)i=this.state.listItems[i.parentIndex];i&&(r=i.id),this.parent=r,this.setState({choosingType:!0})}onCopy(s,i){s==null||s.stopPropagation();let r=this.state.listItems.find(u=>u.id===i),l=Ft;for(;r&&r.type!=="folder";)r=this.state.listItems[r.parentIndex];r&&(l=r.id),this.parent=l,this.setState({copingScript:i||""})}onAddNewFolder(s){s==null||s.stopPropagation();let i=this.state.listItems.find(l=>l.id===this.state.selected),r=Ft;for(;i&&i.type!=="folder";)i=this.state.listItems[i.parentIndex];i&&(r=i.id),this.parent=r,this.setState({creatingFolder:!0})}onRename(s){s==null||s.stopPropagation(),this.setState({renaming:this.state.selected})}getUniqueName(s){let i=1,r=`${b.I18n.t("Script")} `;if(s){const l=rg(s,this.props.scripts[s]),u=l.match(/\d+$/);u?(r=l.replace(/\d+$/,""),i=parseInt(u[0],10)+1):r=l}for(;this.state.listItems.find(l=>l.id===`${this.parent}.${r.replace(/\.\s/g,"_")}${i}`);)i++;return r+i}getUniqueFolderName(){let s=1;for(;this.state.listItems.find(i=>i.id===`${this.parent}.${b.I18n.t("Folder")}_${s}`);)s++;return`${b.I18n.t("Folder")} ${s}`}onCloseMenu(s){this.setState({menuOpened:!1,menuAnchorEl:null,menuAnchorFilterEl:null},s)}getMainMenu(s,i){return p.jsxs(y.Menu,{id:"long-menu",anchorEl:this.state.menuAnchorEl,open:this.state.menuOpened,onClose:()=>this.setState({menuOpened:!1,menuAnchorEl:null}),slotProps:{paper:{style:{maxHeight:lI*7.5}}},children:[this.state.width<=$r?p.jsxs(y.MenuItem,{disabled:this.props.debugMode||!this.state.selected||this.state.selected===ro||this.state.selected===Qi||!!(s!=null&&s.length),onClick:r=>{if(r.stopPropagation(),r.preventDefault(),this.state.listItems.find(l=>l.parent===this.state.selected)){this.showError(b.I18n.t("Cannot delete non empty item!"));return}this.setState({menuOpened:!1,menuAnchorEl:null},()=>this.onDelete(this.state.selected).then(()=>{}))},children:[p.jsx(vp,{style:{..._e.iconDropdownMenu,color:"red"}}),b.I18n.t("Delete")]},"delete"):null,p.jsxs(y.MenuItem,{disabled:this.props.debugMode,selected:this.state.expertMode,onClick:r=>{r.stopPropagation(),r.preventDefault(),this.onCloseMenu(()=>this.props.onExpertModeChange&&this.props.onExpertModeChange(!this.state.expertMode))},children:[p.jsx(b.IconExpert,{style:{..._e.iconDropdownMenu,color:this.state.expertMode?"orange":"inherit"}}),b.I18n.t("Expert mode")]},"expertMode"),this.props.onExport&&p.jsxs(y.MenuItem,{onClick:r=>{r.stopPropagation(),r.preventDefault(),this.onCloseMenu(()=>this.props.onExport())},children:[p.jsx(Vl,{style:_e.iconDropdownMenu}),b.I18n.t("Export all scripts")]},"exportAll"),this.props.onImport&&p.jsxs(y.MenuItem,{disabled:this.props.debugMode,onClick:r=>{r.stopPropagation(),r.preventDefault(),this.onCloseMenu(()=>this.props.onImport())},children:[p.jsx(Zp,{style:_e.iconDropdownMenu}),b.I18n.t("Import scripts")]},"import"),this.props.onThemeChange&&p.jsxs(y.MenuItem,{onClick:()=>this.onCloseMenu(()=>{this.props.onThemeChange&&this.props.onThemeChange(b.Utils.toggleTheme(this.state.themeName))}),children:[p.jsx(jT,{style:_e.iconDropdownMenu}),b.I18n.t('Change theme (actual "%s")',this.state.themeName)]},"dark"),this.props.onAddNew&&p.jsxs(y.MenuItem,{disabled:!this.state.selected||!i||i.type==="folder",onClick:r=>{const l=this.state.selected;this.onCloseMenu(()=>this.onCopy(r,l))},children:[p.jsx(L_,{style:_e.iconDropdownMenu}),b.I18n.t("Copy script")]},"copy"),this.state.expertMode&&p.jsxs(y.MenuItem,{disabled:this.props.debugMode,onClick:r=>{r.stopPropagation(),r.preventDefault(),this.onCloseMenu(()=>this.setState({showAdapterDebug:!0}))},children:[p.jsx(wr,{style:_e.iconDropdownMenu}),b.I18n.t("Debug instance")]},"debugInstance")]},"menu")}getToolbarButtons(){const s=[],i=this.state.reorder&&!this.props.debugMode;if(this.state.searchMode&&!this.props.debugMode)s.push(p.jsx(y.Input,{value:this.state.searchText,style:_e.toolbarSearch,ref:this.inputRef,autoFocus:!0,placeholder:b.I18n.t("Search..."),onChange:r=>{this.setState({searchText:r.target.value}),this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>{this.filterTimer=null,this.filterList(!0),this.props.onSearch&&this.props.onSearch(this.state.searchText)},400)}},"searchInput")),s.push(p.jsx(y.IconButton,{sx:_e.toolbarButtons,style:{float:"right"},title:b.I18n.t("End search mode"),onClick:r=>{r.stopPropagation(),this.filterList(!1,()=>this.props.onSearch&&this.props.onSearch(this.state.searchText))},size:"medium",children:p.jsx(zT,{})},"disableSearch")),this.state.searchText&&s.push(p.jsx(y.IconButton,{title:b.I18n.t("Clear search input"),sx:_e.toolbarButtons,style:{marginTop:7,float:"right"},onClick:r=>{r.stopPropagation(),this.setState({searchText:""},()=>{this.filterList(!0),this.props.onSearch&&this.props.onSearch(this.state.searchText)})},size:"medium",children:p.jsx(Cr,{fontSize:"small"})},"cleanSearch"));else{if(!i){s.push(p.jsx(y.IconButton,{"aria-label":"More","aria-owns":this.state.menuOpened?"long-menu":void 0,title:b.I18n.t("Menu"),"aria-haspopup":"true",onClick:u=>{u.stopPropagation(),u.preventDefault(),this.setState({menuOpened:!0,menuAnchorEl:u.currentTarget})},size:"medium",children:p.jsx(UT,{})},"menuButton"));const r=this.state.listItems.find(u=>u.id===this.state.selected);let l;r&&this.state.width<=$r&&r.type==="folder"&&(l=this.state.listItems.filter(u=>u.parent===this.state.selected)),s.push(this.getMainMenu(l,r)),s.push(p.jsx(y.IconButton,{disabled:this.props.debugMode,title:b.I18n.t("Create new script"),sx:{..._e.toolbarButtons,...this.props.debugMode?_e.iconButtonsDisabled:void 0},style:{color:i?"red":"inherit"},onClick:u=>this.onAddNew(u),size:"medium",children:p.jsx(Cg,{})},"new-script")),s.push(p.jsx(y.IconButton,{disabled:this.props.debugMode,title:b.I18n.t("Create new folder"),sx:{..._e.toolbarButtons,...this.props.debugMode?_e.iconButtonsDisabled:void 0},style:{color:i?"red":"inherit"},onClick:u=>this.onAddNewFolder(u),size:"medium",children:p.jsx(HT,{})},"new-folder"))}s.push(p.jsx(y.IconButton,{disabled:i||this.props.debugMode,sx:{..._e.toolbarButtons,...this.props.debugMode?_e.iconButtonsDisabled:void 0},title:b.I18n.t("Search in scripts"),style:{float:"right",opacity:this.props.debugMode?.5:i?0:1},onClick:r=>{r.stopPropagation(),this.setState({searchMode:!0})},size:"medium",children:p.jsx(WT,{})},"search")),s.push(p.jsx(y.IconButton,{disabled:this.props.debugMode,title:b.I18n.t("Reorder scripts in folders"),sx:{..._e.toolbarButtons,...this.props.debugMode?_e.iconButtonsDisabled:void 0},style:{color:i?"red":"inherit",float:"right"},onClick:r=>{r.stopPropagation(),this.setState({reorder:!this.state.reorder})},size:"medium",children:p.jsx(GT,{})},"reorder")),!i&&this.state.selected&&this.state.selected!==ro&&this.state.selected!==Qi&&s.push(p.jsx(y.IconButton,{sx:{..._e.toolbarButtons,...this.props.debugMode?_e.iconButtonsDisabled:void 0},disabled:this.props.debugMode,title:b.I18n.t("Rename"),onClick:r=>this.onRename(r),size:"medium",children:p.jsx(VT,{})},"rename")),s.push(p.jsxs("span",{style:{opacity:.5,fontSize:10},children:["v",this.props.version]},"version"))}return s}getFolders(){const s=[{id:Ft,name:b.I18n.t("Root folder")}];return this.state.listItems.forEach(i=>{i.type==="folder"&&i.id!==Ft&&(!i.id.startsWith(ro)||this.state.expertMode)&&s.push({id:i.id,name:i.title})}),s}onCollapseAll(){this.setState({expanded:[]}),this.saveExpanded([])}onExpandAll(){const s=[];this.state.listItems.forEach(i=>this.state.listItems.find(r=>r.parent===i.id)&&s.push(i.id)),this.setState({expanded:s}),this.saveExpanded(s)}getBottomButtons(){return this.state.reorder||this.props.debugMode?null:[p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx(zl,{style:{color:Ry,opacity:this.state.statusFilter==="running"?1:.3,background:this.state.statusFilter==="running"?"gray":"inherit"},title:b.I18n.t("Show only running scripts"),onClick:s=>{s.stopPropagation(),s.preventDefault();const i=this.state.statusFilter==="running"?"":"running";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",i),this.setState({statusFilter:i})}})},"filterByRunning"),p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx(qp,{title:b.I18n.t("Show only paused scripts"),style:{color:My,opacity:this.state.statusFilter==="paused"?1:.3,background:this.state.statusFilter==="paused"?"gray":"inherit"},onClick:()=>{const s=this.state.statusFilter==="paused"?"":"paused";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",s),this.setState({statusFilter:s})}})},"filterByPaused"),p.jsx(y.Box,{sx:_e.footerButtons,style:{marginRight:16},children:p.jsx(zl,{title:b.I18n.t("Show only scripts with problems"),style:{color:Oy,opacity:this.state.statusFilter==="problems"?1:.3,background:this.state.statusFilter==="problems"?"gray":"inherit"},onClick:()=>{const s=this.state.statusFilter==="problems"?"":"problems";window.localStorage&&window.localStorage.setItem("SideMenu.statusFilter",s),this.setState({statusFilter:s})}})},"filterByProblem"),p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx("img",{alt:"Blockly",style:{opacity:this.state.typeFilter==="Blockly"?1:.3,background:this.state.typeFilter==="Blockly"?"gray":"inherit"},src:en.Blockly,onClick:()=>{const s=this.state.typeFilter==="Blockly"?"":"Blockly";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",s),this.setState({typeFilter:s})}})},"filterBlockly"),p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx("img",{alt:"Javascript",style:{opacity:this.state.typeFilter==="Javascript/js"?1:.3,background:this.state.typeFilter==="Javascript/js"?"gray":"inherit"},src:en["Javascript/js"],onClick:()=>{const s=this.state.typeFilter==="Javascript/js"?"":"Javascript/js";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",s),this.setState({typeFilter:s})}})},"filterJS"),p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx("img",{alt:"TypeScript",style:{opacity:this.state.typeFilter==="TypeScript/ts"?1:.3,background:this.state.typeFilter==="TypeScript/ts"?"gray":"inherit"},src:en["TypeScript/ts"],onClick:()=>{const s=this.state.typeFilter==="TypeScript/ts"?"":"TypeScript/ts";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",s),this.setState({typeFilter:s})}})},"filterTS"),p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx("img",{alt:"Rules",style:{opacity:this.state.typeFilter==="Rules"?1:.3,background:this.state.typeFilter==="Rules"?"gray":"inherit"},src:en.Rules,onClick:()=>{const s=this.state.typeFilter==="Rules"?"":"Rules";window.localStorage&&window.localStorage.setItem("SideMenu.typeFilter",s),this.setState({typeFilter:s})}})},"filterRules"),p.jsx("div",{style:{flexGrow:1}},"padding"),p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx(KT,{style:_e.footerButtonsRight,title:b.I18n.t("Expand all"),onClick:()=>this.onExpandAll()})},"expandAll"),this.state.expanded.length?p.jsx(y.Box,{sx:_e.footerButtons,children:p.jsx(YT,{style:_e.footerButtonsRight,title:b.I18n.t("Collapse all"),onClick:()=>this.onCollapseAll()})},"collapseAll"):p.jsx("div",{style:{height:22,width:24}})]}getAdapterDebugDialog(){return this.state.showAdapterDebug?p.jsx(aI,{socket:this.props.socket,onClose:()=>this.setState({showAdapterDebug:!1}),onDebug:(s,i)=>this.setState({showAdapterDebug:!1},()=>this.props.onDebugInstance({instance:s,adapter:i}))},"debug"):null}render(){var r,l,u;const s=this.state.renaming?this.state.listItems.find(d=>d.id===this.state.renaming):void 0,i=this.state.copingScript&&this.props.scripts[this.state.copingScript].type==="script"?this.props.scripts[this.state.copingScript]:void 0;return[p.jsxs(y.Drawer,{variant:"permanent",style:_e.menu,sx:{"& .MuiDrawer-paper":_e.drawerPaper},anchor:"left",onClick:()=>this.onClick({id:""}),children:[p.jsx(y.Box,{sx:_e.toolbar,children:this.getToolbarButtons()}),p.jsx(y.Divider,{}),p.jsx(ew,{backend:hw,children:p.jsx("div",{style:_e.innerMenu,children:this.renderAllItems(this.state.listItems)})}),p.jsx(y.Divider,{}),p.jsx("div",{style:_e.footer,children:this.getBottomButtons()})]},"drawer"),s?p.jsx(Ag,{name:s.title,id:this.state.renaming||"",folder:s.type==="folder",instance:s.instance,instances:this.props.instances,onClose:()=>this.setState({renaming:null}),onRename:(d,g,m,f)=>this.props.onRename&&this.props.onRename(d,g,m,f)},"dialog-rename"):null,this.state.deleting?p.jsx(tI,{name:this.state.listItems.find(d=>d.id===this.state.deleting).title,id:this.state.deleting,onClose:()=>this.setState({deleting:null}),onDelete:d=>this.props.onDelete&&this.props.onDelete(d)},"dialog-delete"):null,this.state.choosingType?p.jsx(rn,{onClose:d=>{const g={choosingType:!1};d&&(g.creatingScript=d),this.setState(g)}},"dialog-script-type"):null,this.state.creatingScript?p.jsx(Sp,{onClose:()=>this.setState({creatingScript:null}),title:b.I18n.t("Create new script"),name:this.getUniqueName(),parents:this.getFolders(),folder:!1,existingItems:this.state.listItems.map(d=>d.id),instance:this.props.instances[0]||0,instances:this.props.instances,type:this.state.creatingScript,parent:this.parent,onAdd:(d,g,m,f)=>this.props.onAddNew&&this.props.onAddNew(d,g,!1,m,f)},"dialog-new-script"):null,this.state.copingScript?p.jsx(Sp,{onClose:()=>this.setState({copingScript:""}),title:b.I18n.t("Copy script"),name:this.getUniqueName(this.state.copingScript),parents:this.getFolders(),folder:!1,instance:parseInt((l=(r=i==null?void 0:i.common)==null?void 0:r.engine)==null?void 0:l.split(".").pop(),10)||0,instances:this.props.instances,type:((u=i==null?void 0:i.common)==null?void 0:u.engineType)||"Javascript/js",parent:this.parent,onAdd:(d,g,m,f)=>{var w;const v=this.state.copingScript&&this.props.scripts[this.state.copingScript].type==="script"?this.props.scripts[this.state.copingScript]:void 0;v!=null&&v.common&&(v.common.enabled=!1),this.props.onAddNew&&this.props.onAddNew(d,g,!1,m,f,(w=v==null?void 0:v.common)==null?void 0:w.source)}},"dialog-copy-script"):null,this.state.creatingFolder?p.jsx(Sp,{onClose:()=>this.setState({creatingFolder:!1}),title:b.I18n.t("Create new folder"),parents:this.getFolders(),name:this.getUniqueFolderName(),parent:this.parent,onAdd:(d,g)=>this.props.onAddNew&&this.props.onAddNew(d,g,!0)},"dialog-new-folder"):null,this.state.errorText?p.jsx(kc,{onClose:()=>this.setState({errorText:""}),text:this.state.errorText},"error"):null,this.getAdapterDebugDialog()]}}const dI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAACFJREFUeAFjAIJRwP////8PYIKWHCigNQdKj/pn1D+jAABTG16wVQqVpQAAAABJRU5ErkJggg==",hI="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgAQMAAADYVuV7AAAABlBMVEUAAAAzMzPI8eYgAAAAAXRSTlMAQObYZgAAABtJREFUeAFjAIJRwP8fCj7QkENn/4z6Z5QzCgBjbWaoyx1PqQAAAABJRU5ErkJggg==";function pI(a){let s,i=a.getHours();return i<10&&(i=`0${i.toString()}`),s=`${i}:`,i=a.getMinutes(),i<10&&(i=`0${i.toString()}`),s+=`${i}:`,i=a.getSeconds(),i<10&&(i=`0${i.toString()}`),s+=`${i}.`,i=a.getMilliseconds(),i<10?i=`00${i.toString()}`:i<100&&(i=`0${i.toString()}`),s+=i,s}const By=34,Ot={logBox:{width:"100%",height:"100%",position:"relative",overflow:"hidden"},logBoxInner:a=>({display:"inline-block",color:a.palette.mode==="dark"?"white":"black",width:`calc(100% - ${By}px)`,height:"100%",overflow:"auto",position:"relative",verticalAlign:"top"}),info:a=>({background:a.palette.mode==="dark"?"darkgrey":"lightgrey",color:(a.palette.mode==="dark","black")}),error:a=>({background:"#FF0000",color:a.palette.mode==="dark"?"black":"white"}),warn:a=>({background:"#FF8000",color:a.palette.mode==="dark"?"black":"white"}),debug:a=>({background:"gray",opacity:.8,color:a.palette.mode==="dark"?"black":"white"}),silly:a=>({background:"gray",opacity:.6,color:a.palette.mode==="dark"?"black":"white"}),table:{fontFamily:"monospace",width:"100%"},toolbox:{width:By,height:"100%",boxShadow:"2px 0px 4px -1px rgba(0, 0, 0, 0.2), 4px 0px 5px 0px rgba(0, 0, 0, 0.14), 1px 0px 10px 0px rgba(0, 0, 0, 0.12)",display:"inline-block",verticalAlign:"top",overflow:"hidden"},trFrom:{width:90},trTime:{width:90},trSeverity:{width:40,fontWeight:"bold"},trPreMessage:{padding:0,margin:0},iconButtons:{width:32,height:32,padding:4},layoutIcon:a=>({"& img":{width:24,height:24,background:a.palette.mode==="dark"?"#9d9d9d":void 0,borderRadius:a.palette.mode==="dark"?"30px":void 0}})};function gI(a){return a<10?`00${a}`:a<100?`0${a}`:a.toString()}const Ps={};class Rg extends X.Component{messagesEnd;constructor(s){super(s),this.state={lines:{},goBottom:!0,selected:null,editing:this.props.editing||[]},this.messagesEnd=X.createRef()}static generateLine(s,i){let r=s.message||"";if(typeof r!="object"){const l=new RegExp(`${s.from.replace(".","\\.").replace(")","\\)").replace("(","\\(")} \\(\\d+\\) `,"g"),u=r.match(l);u?r=r.replace(u[0],""):r=r.replace(`${s.from} `,"")}return r.startsWith(`${i}: `)&&(r=r.substring(i.length+2)),p.jsxs(y.Box,{component:"tr",sx:Ot[s.severity],children:[p.jsx("td",{style:Ot.trFrom,children:s.from}),p.jsx("td",{style:Ot.trTime,children:pI(new Date(s.ts))}),p.jsx("td",{style:Ot.trSeverity,children:s.severity}),p.jsx("td",{children:p.jsx("pre",{style:Ot.trPreMessage,children:r})})]},`tr_${s.ts}_${s.message.substring(s.message.length-10)}`)}scrollToBottom(){var s,i;(i=(s=this.messagesEnd)==null?void 0:s.current)==null||i.scrollIntoView({behavior:"smooth"})}logHandler=s=>{const i=this.state.lines,r=this.state.editing.filter(f=>s.message.includes(f));let l=null;if(!r.length||(r.length===1?l=r[0]:(r.sort(),l=r[r.length-1]),!l))return;const u=i[l]||[],d=Ps[l]||[];u.push(Rg.generateLine(s,l));let g=s.severity;(g==="info"||g==="warn")&&(g+=" ");const m=new Date(s.ts);d.push(`${m.toLocaleString()}.${gI(m.getMilliseconds())} [${g}]: ${s.message}`),u.length>300&&(u.splice(0,u.length-300),d.splice(0,u.length-300)),Ps[l]=d,i[l]=u,this.setState({lines:i})};componentDidMount(){this.props.socket.registerLogHandler(this.logHandler)}componentWillUnmount(){this.props.socket.unregisterLogHandler(this.logHandler)}componentDidUpdate(){this.state.goBottom&&this.scrollToBottom()}static getDerivedStateFromProps(s,i){let r=!1;const l={};if(s.selected!==i.selected){const u=s.selected,d=i.lines;u&&(d[u]=d[u]||[],Ps[u]=Ps[u]||[]),l.selected=u,r=!0}if(JSON.stringify(s.editing)!==JSON.stringify(i.editing)){const u=JSON.parse(JSON.stringify(s.editing));r=!0;const d=i.lines;for(const g in Ps)Object.prototype.hasOwnProperty.call(Ps,g)&&(u.includes(g)||(delete Ps[g],delete d[g]));l.editing=u}return r?l:null}onCopy(){b.Utils.copyToClipboard((Ps[this.state.selected]||[]).join(` +`))}clearLog(){const s=this.state.lines;s[this.state.selected]&&(s[this.state.selected]=[]),Ps[this.state.selected]&&(Ps[this.state.selected]=[]),this.setState({lines:s})}renderLogList(s){return this.state.selected&&(s!=null&&s.length)?p.jsxs(y.Box,{sx:Ot.logBoxInner,children:[p.jsx("table",{style:Ot.table,children:p.jsx("tbody",{children:s})},"logTable"),p.jsx("div",{ref:this.messagesEnd,style:{float:"left",clear:"both"}},"logScrollPoint")]},"logList"):p.jsx(y.Box,{sx:Ot.logBoxInner,style:{paddingLeft:10},children:b.I18n.t("Log outputs")},"logList")}render(){const s=this.state.selected?this.state.lines[this.state.selected]:null;return p.jsxs("div",{style:Ot.logBox,children:[p.jsxs("div",{style:Ot.toolbox,children:[p.jsx(y.IconButton,{style:Ot.iconButtons,onClick:()=>this.setState({goBottom:!this.state.goBottom}),color:this.state.goBottom?"secondary":void 0,size:"medium",children:p.jsx(JT,{})}),s!=null&&s.length?p.jsx(y.IconButton,{style:Ot.iconButtons,onClick:()=>this.clearLog(),size:"medium",children:p.jsx(XT,{})}):null,s!=null&&s.length?p.jsx(y.IconButton,{style:Ot.iconButtons,onClick:()=>this.onCopy(),size:"medium",children:p.jsx(L_,{})}):null,this.props.onLayoutChange?p.jsx(y.IconButton,{style:Ot.iconButtons,onClick:()=>this.props.onLayoutChange&&this.props.onLayoutChange(),title:b.I18n.t("Change layout"),size:"medium",sx:Ot.layoutIcon,children:p.jsx("img",{alt:"split",src:this.props.verticalLayout?dI:hI})}):null,p.jsx(y.IconButton,{style:Ot.iconButtons,onClick:()=>this.props.onHideLog(),title:b.I18n.t("Hide logs"),size:"medium",children:p.jsx(qT,{})})]},"toolbox"),this.renderLogList(s)]})}}var Py="focus-outline-hidden";function bw(){var a=this;document.addEventListener("keydown",function(s){a.focusByKeyboard=!0},!0),document.addEventListener("mousedown",function(s){a.focusByKeyboard=!1},!0),document.addEventListener("focus",function(s){a.updateVisibility()},!0),document.addEventListener("focusout",function(s){window.setTimeout(function(){document.hasFocus()||(a.focusByKeyboard=!0,a.updateVisibility())},0)}),this.updateVisibility()}bw.prototype={focusByKeyboard:!0,updateVisibility:function(){this.hidden=!this.focusByKeyboard},set hidden(a){document.documentElement.classList.toggle(Py,a)},get hidden(){return document.documentElement.classList.contains(Py)}};new bw;var vw={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(a){(function(){var s={}.hasOwnProperty;function i(){for(var r=[],l=0;l4&&arguments[4]!==void 0?arguments[4]:"easeInOutCubic";return r>l?i:s+(i-s)*fI[u](r/l)};pi.calcEndPoint=function(s){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:window,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if($I(s))return parseInt(s)+r;var l=i===window||i===document.documentElement?window.pageYOffset:i.scrollTop-i.getBoundingClientRect().top,u=s.nodeName.toLowerCase()==="html"?-l:s.getBoundingClientRect().top+l;return u+r};(function(a,s){Object.defineProperty(s,"__esModule",{value:!0});var i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},r=pi;s.default=function(l){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},d=u.duration,g=d===void 0?500:d,m=u.context,f=m===void 0?window:m,v=u.offset,w=v===void 0?0:v,_=u.ease,S=_===void 0?"easeInOutCubic":_,k=u.callback;if((typeof window>"u"?"undefined":i(window))==="object"){var C=f.scrollTop!==null&&f.scrollTop!==void 0?f.scrollTop:window.pageYOffset,E=(0,r.calcEndPoint)(l,f,w),A=performance.now(),R=window.requestAnimationFrame,O=function Z(){var ae=performance.now()-A,se=(0,r.setPosition)(C,E,ae,g,S);f!==window?f.scrollTop=se:window.scroll(0,se),ae>g?typeof k=="function"&&k(l):R(Z)};O()}},a.exports=s.default})(lg,lg.exports);var yw=lg.exports,cg={exports:{}};(function(a,s){Object.defineProperty(s,"__esModule",{value:!0});var i=Object.assign||function(d){for(var g=1;g0&&arguments[0]!==void 0?arguments[0]:{},g=d.query,m=g===void 0?'[href^="#"]:not([href="#"]':g,f=d.match,v=f===void 0?function(E){return document.getElementById(E.hash.substring(1))}:f,w=d.hashChange,_=w===void 0?!0:w,S=d.scrollSmoothConfig,k=document.querySelectorAll(m),C=function(A){A.preventDefault();var R=v(A.target);R&&(_&&history.replaceState(null,null,"#"+R.id),(0,l.default)(R,i({},S)))};Array.from(k).map(function(E){E.addEventListener("click",C,!1)})},a.exports=s.default})(cg,cg.exports);var bI=cg.exports,ug={exports:{}};(function(a,s){Object.defineProperty(s,"__esModule",{value:!0});function i(r){if(Array.isArray(r)){for(var l=0,u=Array(r.length);l0&&arguments[0]!==void 0?arguments[0]:{},l=r.activeClass,u=l===void 0?"active":l,d=r.query,g=d===void 0?'[href^="#"]:not([href="#"]):not([href="#0"])':d,m=r.threshold,f=m===void 0?[.25,.5,.75]:m,v=r.detectType,w=v===void 0?"max":v,_={threshold:f},S=function(se){return se.classList.remove(u)},k=function(se){return se.classList.add(u)},C=function(){document.querySelectorAll("."+u).forEach(S)},E=function(se){C(),k(document.querySelector('a[href="#'+se.id+'"]'))},A=function(se){se.forEach(function(ge){ge.intersectionRatio>=Math[w].apply(Math,i(f))&&E(ge.target)})},R=document.querySelectorAll(g),O=new IntersectionObserver(A,_),Z=function(se){var ge=document.querySelector("#"+se.hash.slice(1));O.observe(ge)};R.forEach(Z)},a.exports=s.default})(ug,ug.exports);var vI=ug.exports;(function(a,s){Object.defineProperty(s,"__esModule",{value:!0});var i=yw,r=f(i),l=pi,u=bI,d=f(u),g=vI,m=f(g);function f(v){return v&&v.__esModule?v:{default:v}}s.default={to:r.default,calcEndPoint:l.calcEndPoint,anchorScroll:d.default,observe:m.default},a.exports=s.default})(ag,ag.exports);var yI=ag.exports;const _I=hi(yI);var Og={exports:{}},wI=Og.exports;(function(a){(function(s,i){a.exports?a.exports=i():s.Scrollparent=i()})(wI,function(){var s=/(auto|scroll)/,i=function(g,m){return g.parentNode===null?m:i(g.parentNode,m.concat([g]))},r=function(g,m){return getComputedStyle(g,null).getPropertyValue(m)},l=function(g){return r(g,"overflow")+r(g,"overflow-y")+r(g,"overflow-x")},u=function(g){return s.test(l(g))},d=function(g){if(g instanceof HTMLElement||g instanceof SVGElement){for(var m=i(g.parentNode,[]),f=0;f=s||ge<0||w&&K>=u}function A(){var se=Ep();if(E(se))return R(se);g=setTimeout(A,C(se))}function R(se){return g=void 0,_&&r?S(se):(r=l=void 0,d)}function O(){g!==void 0&&clearTimeout(g),f=0,r=m=l=g=void 0}function Z(){return g===void 0?d:R(Ep())}function ae(){var se=Ep(),ge=E(se);if(r=arguments,l=this,m=se,ge){if(g===void 0)return k(m);if(w)return g=setTimeout(A,s),S(m)}return g===void 0&&(g=setTimeout(A,s)),d}return ae.cancel=O,ae.flush=Z,ae}function dg(a){var s=typeof a;return!!a&&(s=="object"||s=="function")}function jI(a){return!!a&&typeof a=="object"}function zI(a){return typeof a=="symbol"||jI(a)&&LI.call(a)==SI}function zy(a){if(typeof a=="number")return a;if(zI(a))return jy;if(dg(a)){var s=typeof a.valueOf=="function"?a.valueOf():a;a=dg(s)?s+"":s}if(typeof a!="string")return a===0?a:+a;a=a.replace(EI,"");var i=xI.test(a);return i||DI.test(a)?AI(a.slice(2),i?2:8):II.test(a)?jy:+a}var UI=FI;const HI=hi(UI);var hg="data-focus-lock",_w="data-focus-lock-disabled",WI="data-no-focus-lock",GI="data-autofocus-inside",VI="data-no-autofocus";function Ip(a,s){return typeof a=="function"?a(s):a&&(a.current=s),a}function KI(a,s){var i=V.useState(function(){return{value:a,callback:s,facade:{get current(){return i.value},set current(r){var l=i.value;l!==r&&(i.value=r,i.callback(r,l))}}}})[0];return i.callback=s,i.facade}var YI=typeof window<"u"?V.useLayoutEffect:V.useEffect,Uy=new WeakMap;function JI(a,s){var i=KI(null,function(r){return a.forEach(function(l){return Ip(l,r)})});return YI(function(){var r=Uy.get(i);if(r){var l=new Set(r),u=new Set(a),d=i.current;l.forEach(function(g){u.has(g)||Ip(g,null)}),u.forEach(function(g){l.has(g)||Ip(g,d)})}Uy.set(i,a)},[a]),i}var xp={width:"1px",height:"0px",padding:0,overflow:"hidden",position:"fixed",top:"1px",left:"1px"};function ww(a){return a}function Cw(a,s){s===void 0&&(s=ww);var i=[],r=!1,l={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return i.length?i[i.length-1]:a},useMedium:function(u){var d=s(u,r);return i.push(d),function(){i=i.filter(function(g){return g!==d})}},assignSyncMedium:function(u){for(r=!0;i.length;){var d=i;i=[],d.forEach(u)}i={push:function(g){return u(g)},filter:function(){return i}}},assignMedium:function(u){r=!0;var d=[];if(i.length){var g=i;i=[],g.forEach(u),d=i}var m=function(){var v=d;d=[],v.forEach(u)},f=function(){return Promise.resolve().then(m)};f(),i={push:function(v){d.push(v),f()},filter:function(v){return d=d.filter(v),i}}}};return l}function Mg(a,s){return s===void 0&&(s=ww),Cw(a,s)}function XI(a){a===void 0&&(a={});var s=Cw(null);return s.options=ZT({async:!0,ssr:!1},a),s}var Tw=Mg({},function(a){var s=a.target,i=a.currentTarget;return{target:s,currentTarget:i}}),kw=Mg(),qI=Mg(),ZI=XI({async:!0,ssr:typeof document<"u"}),QI=V.createContext(void 0),ex=[],Ng=V.forwardRef(function(s,i){var r,l=V.useState(),u=l[0],d=l[1],g=V.useRef(),m=V.useRef(!1),f=V.useRef(null),v=V.useState({}),w=v[1],_=s.children,S=s.disabled,k=S===void 0?!1:S,C=s.noFocusGuards,E=C===void 0?!1:C,A=s.persistentFocus,R=A===void 0?!1:A,O=s.crossFrame,Z=O===void 0?!0:O,ae=s.autoFocus,se=ae===void 0?!0:ae;s.allowTextSelection;var ge=s.group,K=s.className,je=s.whiteList,Me=s.hasPositiveIndices,qe=s.shards,ce=qe===void 0?ex:qe,de=s.as,J=de===void 0?"div":de,we=s.lockProps,me=we===void 0?{}:we,Fe=s.sideCar,Y=s.returnFocus,et=Y===void 0?!1:Y,q=s.focusOptions,oe=s.onActivation,F=s.onDeactivation,H=V.useState({}),U=H[0],le=V.useCallback(function(Ee){var be=Ee.captureFocusRestore;if(!f.current){var Le,mt=(Le=document)==null?void 0:Le.activeElement;f.current=mt,mt!==document.body&&(f.current=be(mt))}g.current&&oe&&oe(g.current),m.current=!0,w()},[oe]),x=V.useCallback(function(){m.current=!1,F&&F(g.current),w()},[F]),pe=V.useCallback(function(Ee){var be=f.current;if(be){var Le=(typeof be=="function"?be():be)||document.body,mt=typeof et=="function"?et(Le):et;if(mt){var Q=typeof mt=="object"?mt:void 0;f.current=null,Ee?Promise.resolve().then(function(){return Le.focus(Q)}):Le.focus(Q)}}},[et]),W=V.useCallback(function(Ee){m.current&&Tw.useMedium(Ee)},[]),ke=kw.useMedium,ve=V.useCallback(function(Ee){g.current!==Ee&&(g.current=Ee,d(Ee))},[]),Ie=Xp((r={},r[_w]=k&&"disabled",r[hg]=ge,r),me),fe=E!==!0,Ge=fe&&E!=="tail",Ye=JI([i,ve]),Ce=V.useMemo(function(){return{observed:g,shards:ce,enabled:!k,active:m.current}},[k,m.current,ce,u]);return X.createElement(V.Fragment,null,fe&&[X.createElement("div",{key:"guard-first","data-focus-guard":!0,tabIndex:k?-1:0,style:xp}),Me?X.createElement("div",{key:"guard-nearest","data-focus-guard":!0,tabIndex:k?-1:1,style:xp}):null],!k&&X.createElement(Fe,{id:U,sideCar:ZI,observed:u,disabled:k,persistentFocus:R,crossFrame:Z,autoFocus:se,whiteList:je,shards:ce,onActivation:le,onDeactivation:x,returnFocus:pe,focusOptions:q,noFocusGuards:E}),X.createElement(J,Xp({ref:Ye},Ie,{className:K,onBlur:ke,onFocus:W}),X.createElement(QI.Provider,{value:Ce},_)),Ge&&X.createElement("div",{"data-focus-guard":!0,tabIndex:k?-1:0,style:xp}))});Ng.propTypes={};function tx(a,s){function i(r){return r.displayName||r.name||"Component"}return function(l){var u=[],d;function g(){d=a(u.map(function(f){return f.props})),s(d)}var m=function(f){RT(v,f);function v(){return f.apply(this,arguments)||this}v.peek=function(){return d};var w=v.prototype;return w.componentDidMount=function(){u.push(this),g()},w.componentDidUpdate=function(){g()},w.componentWillUnmount=function(){var S=u.indexOf(this);u.splice(S,1),g()},w.render=function(){return X.createElement(l,this.props)},v}(V.PureComponent);return Mk(m,"displayName","SideEffect("+i(l)+")"),m}}var zs=function(a){for(var s=Array(a.length),i=0;i=0}).sort(ux)},hx=["button:enabled","select:enabled","textarea:enabled","input:enabled","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]","[tabindex]","[contenteditable]","[autofocus]"],Pg=hx.join(","),px="".concat(Pg,", [data-focus-guard]"),Mw=function(a,s){return zs((a.shadowRoot||a).children).reduce(function(i,r){return i.concat(r.matches(s?px:Pg)?[r]:[],Mw(r))},[])},gx=function(a,s){var i;return a instanceof HTMLIFrameElement&&(!((i=a.contentDocument)===null||i===void 0)&&i.body)?pn([a.contentDocument.body],s):[a]},pn=function(a,s){return a.reduce(function(i,r){var l,u=Mw(r,s),d=(l=[]).concat.apply(l,u.map(function(g){return gx(g,s)}));return i.concat(d,r.parentNode?zs(r.parentNode.querySelectorAll(Pg)).filter(function(g){return g===r}):[])},[])},mx=function(a){var s=a.querySelectorAll("[".concat(GI,"]"));return zs(s).map(function(i){return pn([i])}).reduce(function(i,r){return i.concat(r)},[])},Fg=function(a,s){return zs(a).filter(function(i){return xw(s,i)}).filter(function(i){return ax(i)})},Hy=function(a,s){return s===void 0&&(s=new Map),zs(a).filter(function(i){return Dw(s,i)})},jg=function(a,s,i){return Bg(Fg(pn(a,i),s),!0,i)},Ar=function(a,s){return Bg(Fg(pn(a),s),!1)},fx=function(a,s){return Fg(mx(a),s)},ai=function(a,s){return a.shadowRoot?ai(a.shadowRoot,s):Object.getPrototypeOf(a).contains!==void 0&&Object.getPrototypeOf(a).contains.call(a,s)?!0:zs(a.children).some(function(i){var r;if(i instanceof HTMLIFrameElement){var l=(r=i.contentDocument)===null||r===void 0?void 0:r.body;return l?ai(l,s):!1}return ai(i,s)})},$x=function(a){for(var s=new Set,i=a.length,r=0;r0&&s.add(l),(u&Node.DOCUMENT_POSITION_CONTAINS)>0&&s.add(r)}return a.filter(function(d,g){return!s.has(g)})},Nw=function(a){return a.parentNode?Nw(a.parentNode):a},zg=function(a){var s=ci(a);return s.filter(Boolean).reduce(function(i,r){var l=r.getAttribute(hg);return i.push.apply(i,l?$x(zs(Nw(r).querySelectorAll("[".concat(hg,'="').concat(l,'"]:not([').concat(_w,'="disabled"])')))):[r]),i},[])},bx=function(a){try{return a()}catch{return}},Rr=function(a){if(a===void 0&&(a=document),!(!a||!a.activeElement)){var s=a.activeElement;return s.shadowRoot?Rr(s.shadowRoot):s instanceof HTMLIFrameElement&&bx(function(){return s.contentWindow.document})?Rr(s.contentWindow.document):s}},vx=function(a,s){return a===s},yx=function(a,s){return!!zs(a.querySelectorAll("iframe")).some(function(i){return vx(i,s)})},Lw=function(a,s){return s===void 0&&(s=Rr(Sw(a).ownerDocument)),!s||s.dataset&&s.dataset.focusGuard?!1:zg(a).some(function(i){return ai(i,s)||yx(i,s)})},_x=function(a){a===void 0&&(a=document);var s=Rr(a);return s?zs(a.querySelectorAll("[".concat(WI,"]"))).some(function(i){return ai(i,s)}):!1},wx=function(a,s){return s.filter(Ow).filter(function(i){return i.name===a.name}).filter(function(i){return i.checked})[0]||a},Ug=function(a,s){return Ow(a)&&a.name?wx(a,s):a},Cx=function(a){var s=new Set;return a.forEach(function(i){return s.add(Ug(i,a))}),a.filter(function(i){return s.has(i)})},Wy=function(a){return a[0]&&a.length>1?Ug(a[0],a):a[0]},Gy=function(a,s){return a.indexOf(Ug(s,a))},gg="NEW_FOCUS",Tx=function(a,s,i,r,l){var u=a.length,d=a[0],g=a[u-1],m=Lg(r);if(!(r&&a.indexOf(r)>=0)){var f=r!==void 0?i.indexOf(r):-1,v=l?i.indexOf(l):f,w=l?a.indexOf(l):-1;if(f===-1)return w!==-1?w:gg;if(w===-1)return gg;var _=f-v,S=i.indexOf(d),k=i.indexOf(g),C=Cx(i),E=r!==void 0?C.indexOf(r):-1,A=l?C.indexOf(l):E,R=C.filter(function(K){return K.tabIndex>=0}),O=r!==void 0?R.indexOf(r):-1,Z=l?R.indexOf(l):O,ae=O>=0&&Z>=0?Z-O:A-E;if(!_&&w>=0||s.length===0)return w;var se=Gy(a,s[0]),ge=Gy(a,s[s.length-1]);if(f<=S&&m&&Math.abs(_)>1)return ge;if(f>=k&&m&&Math.abs(_)>1)return se;if(_&&Math.abs(ae)>1)return w;if(f<=S)return ge;if(f>k)return se;if(_)return Math.abs(_)>1?w:(u+w+_)%u}},kx=function(a){return function(s){var i,r=(i=Aw(s))===null||i===void 0?void 0:i.autofocus;return s.autofocus||r!==void 0&&r!=="false"||a.indexOf(s)>=0}},Vy=function(a,s,i){var r=a.map(function(u){var d=u.node;return d}),l=Hy(r.filter(kx(i)));return l&&l.length?Wy(l):Wy(Hy(s))},mg=function(a,s){return s===void 0&&(s=[]),s.push(a),a.parentNode&&mg(a.parentNode.host||a.parentNode,s),s},Dp=function(a,s){for(var i=mg(a),r=mg(s),l=0;l=0)return u}return!1},Bw=function(a,s,i){var r=ci(a),l=ci(s),u=r[0],d=!1;return l.filter(Boolean).forEach(function(g){d=Dp(d||g,g)||d,i.filter(Boolean).forEach(function(m){var f=Dp(u,m);f&&(!d||ai(f,d)?d=f:d=Dp(f,d))})}),d},Ky=function(a,s){return a.reduce(function(i,r){return i.concat(fx(r,s))},[])},Sx=function(a,s){var i=new Map;return s.forEach(function(r){return i.set(r.node,r)}),a.map(function(r){return i.get(r)}).filter(cx)},Ex=function(a,s){var i=Rr(ci(a).length>0?document:Sw(a).ownerDocument),r=zg(a).filter(pg),l=Bw(i||a,a,r),u=new Map,d=Ar(r,u),g=d.filter(function(k){var C=k.node;return pg(C)});if(g[0]){var m=Ar([l],u).map(function(k){var C=k.node;return C}),f=Sx(m,g),v=f.map(function(k){var C=k.node;return C}),w=f.filter(function(k){var C=k.tabIndex;return C>=0}).map(function(k){var C=k.node;return C}),_=Tx(v,w,m,i,s);if(_===gg){var S=Vy(d,w,Ky(r,u))||Vy(d,v,Ky(r,u));if(S)return{node:S};console.warn("focus-lock: cannot find any node to move focus into");return}return _===void 0?_:f[_]}},Ix=function(a){var s=zg(a).filter(pg),i=Bw(a,a,s),r=Bg(pn([i],!0),!0,!0),l=pn(s,!1);return r.map(function(u){var d=u.node,g=u.index;return{node:d,index:g,lockItem:l.indexOf(d)>=0,guard:Lg(d)}})},Hg=function(a,s){a&&("focus"in a&&a.focus(s),"contentWindow"in a&&a.contentWindow&&a.contentWindow.focus())},Ap=0,Rp=!1,Pw=function(a,s,i){i===void 0&&(i={});var r=Ex(a,s);if(!Rp&&r){if(Ap>2){console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"),Rp=!0,setTimeout(function(){Rp=!1},1);return}Ap++,Hg(r.node,i.focusOptions),Ap--}};function br(a){if(!a)return null;if(typeof WeakRef>"u")return function(){return a||null};var s=a?new WeakRef(a):null;return function(){return(s==null?void 0:s.deref())||null}}var xx=function(a){if(!a)return null;for(var s=[],i=a;i&&i!==document.body;)s.push({current:br(i),parent:br(i.parentElement),left:br(i.previousElementSibling),right:br(i.nextElementSibling)}),i=i.parentElement;return{element:br(a),stack:s,ownerDocument:a.ownerDocument}},Dx=function(a){var s,i,r,l,u;if(a)for(var d=a.stack,g=a.ownerDocument,m=new Map,f=0,v=d;f-1&&(E.filter(function(R){var O=R.guard,Z=R.node;return O&&Z.dataset.focusAutoGuard}).forEach(function(R){var O=R.node;return O.removeAttribute("tabIndex")}),Jy(A,E.length,1,E),Jy(A,-1,-1,E))}}}return s},Ww=function(s){Jl()&&s&&(s.stopPropagation(),s.preventDefault())},Vg=function(){return Wg(Jl)},Yx=function(s){var i=s.target,r=s.currentTarget;r.contains(i)||Ux(r,i)},Jx=function(){return null},Gw=function(){Gg=!0},Vw=function(){Gg=!1,Or="just",Wg(function(){Or="meanwhile"})},Xx=function(){document.addEventListener("focusin",Ww),document.addEventListener("focusout",Vg),window.addEventListener("focus",Gw),window.addEventListener("blur",Vw)},qx=function(){document.removeEventListener("focusin",Ww),document.removeEventListener("focusout",Vg),window.removeEventListener("focus",Gw),window.removeEventListener("blur",Vw)};function Zx(a){return a.filter(function(s){var i=s.disabled;return!i})}var Kw={moveFocusInside:Pw,focusInside:Lw,focusNextElement:Mx,focusPrevElement:Nx,focusFirstElement:Lx,focusLastElement:Bx,captureFocusRestore:Fw};function Qx(a){var s=a.slice(-1)[0];s&&!cn&&Xx();var i=cn,r=i&&s&&s.id===i.id;cn=s,i&&!r&&(i.onDeactivation(),a.filter(function(l){var u=l.id;return u===i.id}).length||i.returnFocus(!s)),s?(Wt=null,(!r||i.observed!==s.observed)&&s.onActivation(Kw),Jl(),Wg(Jl)):(qx(),Wt=null)}Tw.assignSyncMedium(Yx);kw.assignMedium(Vg);qI.assignMedium(function(a){return a(Kw)});const eD=tx(Zx,Qx)(Jx);var Yw=V.forwardRef(function(s,i){return X.createElement(Ng,Xp({sideCar:eD,ref:i},s))}),Jw=Ng.propTypes||{};Jw.sideCar;OT(Jw,["sideCar"]);Yw.propTypes={};var Xw={exports:{}},Qe={};/** + * @license React + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Kg=Symbol.for("react.element"),Yg=Symbol.for("react.portal"),Sc=Symbol.for("react.fragment"),Ec=Symbol.for("react.strict_mode"),Ic=Symbol.for("react.profiler"),xc=Symbol.for("react.provider"),Dc=Symbol.for("react.context"),tD=Symbol.for("react.server_context"),Ac=Symbol.for("react.forward_ref"),Rc=Symbol.for("react.suspense"),Oc=Symbol.for("react.suspense_list"),Mc=Symbol.for("react.memo"),Nc=Symbol.for("react.lazy"),sD=Symbol.for("react.offscreen"),qw;qw=Symbol.for("react.module.reference");function hs(a){if(typeof a=="object"&&a!==null){var s=a.$$typeof;switch(s){case Kg:switch(a=a.type,a){case Sc:case Ic:case Ec:case Rc:case Oc:return a;default:switch(a=a&&a.$$typeof,a){case tD:case Dc:case Ac:case Nc:case Mc:case xc:return a;default:return s}}case Yg:return s}}}Qe.ContextConsumer=Dc;Qe.ContextProvider=xc;Qe.Element=Kg;Qe.ForwardRef=Ac;Qe.Fragment=Sc;Qe.Lazy=Nc;Qe.Memo=Mc;Qe.Portal=Yg;Qe.Profiler=Ic;Qe.StrictMode=Ec;Qe.Suspense=Rc;Qe.SuspenseList=Oc;Qe.isAsyncMode=function(){return!1};Qe.isConcurrentMode=function(){return!1};Qe.isContextConsumer=function(a){return hs(a)===Dc};Qe.isContextProvider=function(a){return hs(a)===xc};Qe.isElement=function(a){return typeof a=="object"&&a!==null&&a.$$typeof===Kg};Qe.isForwardRef=function(a){return hs(a)===Ac};Qe.isFragment=function(a){return hs(a)===Sc};Qe.isLazy=function(a){return hs(a)===Nc};Qe.isMemo=function(a){return hs(a)===Mc};Qe.isPortal=function(a){return hs(a)===Yg};Qe.isProfiler=function(a){return hs(a)===Ic};Qe.isStrictMode=function(a){return hs(a)===Ec};Qe.isSuspense=function(a){return hs(a)===Rc};Qe.isSuspenseList=function(a){return hs(a)===Oc};Qe.isValidElementType=function(a){return typeof a=="string"||typeof a=="function"||a===Sc||a===Ic||a===Ec||a===Rc||a===Oc||a===sD||typeof a=="object"&&a!==null&&(a.$$typeof===Nc||a.$$typeof===Mc||a.$$typeof===xc||a.$$typeof===Dc||a.$$typeof===Ac||a.$$typeof===qw||a.getModuleId!==void 0)};Qe.typeOf=hs;Xw.exports=Qe;var Zw=Xw.exports;function oD(a){function s(F,H,U,le,x){for(var pe=0,W=0,ke=0,ve=0,Ie,fe,Ge=0,Ye=0,Ce,Ee=Ce=Ie=0,be=0,Le=0,mt=0,Q=0,lt=U.length,ze=lt-1,_t,ye="",tt="",Us="",wt="",Ct;beIe)&&(Q=(ye=ye.replace(" ",":")).length),0le&&(le=(H=H.trim()).charCodeAt(0)),le){case 38:return H.replace(A,"$1"+F.trim());case 58:return F.trim()+H.replace(A,"$1"+F.trim());default:if(0<1*U&&0W.charCodeAt(8))break;case 115:x=x.replace(W,"-webkit-"+W)+";"+x;break;case 207:case 102:x=x.replace(W,"-webkit-"+(102U.charCodeAt(0)&&(U=U.trim()),oe=U,U=[oe],01?s-1:0),r=1;r0?" Args: "+i.join(", "):""))}var aD=function(){function a(i){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=i}var s=a.prototype;return s.indexOfGroup=function(i){for(var r=0,l=0;l=this.groupSizes.length){for(var l=this.groupSizes,u=l.length,d=u;i>=d;)(d<<=1)<0&&Wr(16,""+i);this.groupSizes=new Uint32Array(d),this.groupSizes.set(l),this.length=d;for(var g=u;g=this.length||this.groupSizes[i]===0)return r;for(var l=this.groupSizes[i],u=this.indexOfGroup(i),d=u+l,g=u;g=kr&&(kr=s+1),Wl.set(a,s),ql.set(s,a)},uD="style["+gn+'][data-styled-version="5.3.11"]',dD=new RegExp("^"+gn+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),hD=function(a,s,i){for(var r,l=i.split(","),u=0,d=l.length;u=0;f--){var v=m[f];if(v&&v.nodeType===1&&v.hasAttribute(gn))return v}}(i),u=l!==void 0?l.nextSibling:null;r.setAttribute(gn,"active"),r.setAttribute("data-styled-version","5.3.11");var d=gD();return d&&r.setAttribute("nonce",d),i.insertBefore(r,u),r},mD=function(){function a(i){var r=this.element=Qw(i);r.appendChild(document.createTextNode("")),this.sheet=function(l){if(l.sheet)return l.sheet;for(var u=document.styleSheets,d=0,g=u.length;d=0){var l=document.createTextNode(r),u=this.nodes[i];return this.element.insertBefore(l,u||null),this.length++,!0}return!1},s.deleteRule=function(i){this.element.removeChild(this.nodes[i]),this.length--},s.getRule=function(i){return i0&&(w+=_+",")}),u+=""+f+v+'{content:"'+w+`"}/*!sc*/ +`}}}return u}(this)},a}(),vD=/(a)(d)/gi,Qy=function(a){return String.fromCharCode(a+(a>25?39:97))};function $g(a){var s,i="";for(s=Math.abs(a);s>52;s=s/52|0)i=Qy(s%52)+i;return(Qy(s%52)+i).replace(vD,"$1-$2")}var an=function(a,s){for(var i=s.length;i;)a=33*a^s.charCodeAt(--i);return a},eC=function(a){return an(5381,a)};function tC(a){for(var s=0;s>>0);if(!i.hasNameForId(l,g)){var m=r(d,"."+g,void 0,l);i.insertRules(l,g,m)}u.push(g),this.staticRulesId=g}else{for(var f=this.rules.length,v=an(this.baseHash,r.hash),w="",_=0;_>>0);if(!i.hasNameForId(l,E)){var A=r(w,"."+E,void 0,l);i.insertRules(l,E,A)}u.push(E)}}return u.join(" ")},a}(),wD=/^\s*\/\/.*$/gm,CD=[":","[",".","#"];function TD(a){var s,i,r,l,u=Io,d=u.options,g=d===void 0?Io:d,m=u.plugins,f=m===void 0?Xl:m,v=new oD(g),w=[],_=function(C){function E(A){if(A)try{C(A+"}")}catch{}}return function(A,R,O,Z,ae,se,ge,K,je,Me){switch(A){case 1:if(je===0&&R.charCodeAt(0)===64)return C(R+";"),"";break;case 2:if(K===0)return R+"/*|*/";break;case 3:switch(K){case 102:case 112:return C(O[0]+R),"";default:return R+(Me===0?"/*|*/":"")}case-2:R.split("/*|*/}").forEach(E)}}}(function(C){w.push(C)}),S=function(C,E,A){return E===0&&CD.indexOf(A[i.length])!==-1||A.match(l)?C:"."+s};function k(C,E,A,R){R===void 0&&(R="&");var O=C.replace(wD,""),Z=E&&A?A+" "+E+" { "+O+" }":O;return s=R,i=E,r=new RegExp("\\"+i+"\\b","g"),l=new RegExp("(\\"+i+"\\b){2,}"),v(A||!E?"":E,Z)}return v.use([].concat(f,[function(C,E,A){C===2&&A.length&&A[0].lastIndexOf(i)>0&&(A[0]=A[0].replace(r,S))},_,function(C){if(C===-2){var E=w;return w=[],E}}])),k.hash=f.length?f.reduce(function(C,E){return E.name||Wr(15),an(C,E.name)},5381).toString():"",k}var sC=X.createContext();sC.Consumer;var oC=X.createContext(),kD=(oC.Consumer,new Zl),bg=TD();function iC(){return V.useContext(sC)||kD}function nC(){return V.useContext(oC)||bg}var SD=function(){function a(s,i){var r=this;this.inject=function(l,u){u===void 0&&(u=bg);var d=r.name+u.hash;l.hasNameForId(r.id,d)||l.insertRules(r.id,d,u(r.rules,d,"@keyframes"))},this.toString=function(){return Wr(12,String(r.name))},this.name=s,this.id="sc-keyframes-"+s,this.rules=i}return a.prototype.getName=function(s){return s===void 0&&(s=bg),this.name+s.hash},a}(),ED=/([A-Z])/,ID=/([A-Z])/g,xD=/^ms-/,DD=function(a){return"-"+a.toLowerCase()};function e_(a){return ED.test(a)?a.replace(ID,DD).replace(xD,"-ms-"):a}var t_=function(a){return a==null||a===!1||a===""};function ui(a,s,i,r){if(Array.isArray(a)){for(var l,u=[],d=0,g=a.length;d1?s-1:0),r=1;r?@[\\\]^`{|}~-]+/g,RD=/(^-|-$)/g;function Op(a){return a.replace(AD,"-").replace(RD,"")}var lC=function(a){return $g(eC(a)>>>0)};function Ml(a){return typeof a=="string"&&!0}var vg=function(a){return typeof a=="function"||typeof a=="object"&&a!==null&&!Array.isArray(a)},OD=function(a){return a!=="__proto__"&&a!=="constructor"&&a!=="prototype"};function MD(a,s,i){var r=a[i];vg(s)&&vg(r)?cC(r,s):a[i]=s}function cC(a){for(var s=arguments.length,i=new Array(s>1?s-1:0),r=1;r=0||(Me[K]=se[K]);return Me}(s,["componentId"]),ae=O&&O+"-"+(Ml(R)?R:Op(qy(R)));return uC(R,js({},Z,{attrs:_,componentId:ae}),i)},Object.defineProperty(k,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(R){this._foldedDefaultProps=r?cC({},a.defaultProps,R):R}}),Object.defineProperty(k,"toString",{value:function(){return"."+k.styledComponentId}}),l&&MT(k,a,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),k}var ds=function(a){return function s(i,r,l){if(l===void 0&&(l=Io),!Zw.isValidElementType(r))return Wr(1,String(r));var u=function(){return i(r,l,rC.apply(void 0,arguments))};return u.withConfig=function(d){return s(i,r,js({},l,{},d))},u.attrs=function(d){return s(i,r,js({},l,{attrs:Array.prototype.concat(l.attrs,d).filter(Boolean)}))},u}(uC,a)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(a){ds[a]=ds(a)});var ND=function(){function a(i,r){this.rules=i,this.componentId=r,this.isStatic=tC(i),Zl.registerId(this.componentId+1)}var s=a.prototype;return s.createStyles=function(i,r,l,u){var d=u(ui(this.rules,r,l,u).join(""),""),g=this.componentId+i;l.insertRules(g,g,d)},s.removeStyles=function(i,r){r.clearRules(this.componentId+i)},s.renderStyles=function(i,r,l,u){i>2&&Zl.registerId(this.componentId+i),this.removeStyles(i,l),this.createStyles(i,r,l,u)},a}();function LD(a){for(var s=arguments.length,i=new Array(s>1?s-1:0),r=1;ra.length)&&(s=a.length);for(var i=0,r=Array(s);i=a.length?{done:!0}:{done:!1,value:a[r++]}},e:function(m){throw m},f:l}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var u,d=!0,g=!1;return{s:function(){i=i.call(a)},n:function(){var m=i.next();return d=m.done,m},e:function(m){g=!0,u=m},f:function(){try{d||i.return==null||i.return()}finally{if(g)throw u}}}}function as(a,s,i){return(s=hC(s))in a?Object.defineProperty(a,s,{value:i,enumerable:!0,configurable:!0,writable:!0}):a[s]=i,a}function Ql(a){return Ql=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(s){return s.__proto__||Object.getPrototypeOf(s)},Ql(a)}function HD(a,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(s&&s.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),Object.defineProperty(a,"prototype",{writable:!1}),s&&yg(a,s)}function dC(){try{var a=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(dC=function(){return!!a})()}function WD(a,s){var i=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(i!=null){var r,l,u,d,g=[],m=!0,f=!1;try{if(u=(i=i.call(a)).next,s!==0)for(;!(m=(r=u.call(i)).done)&&(g.push(r.value),g.length!==s);m=!0);}catch(v){f=!0,l=v}finally{try{if(!m&&i.return!=null&&(d=i.return(),Object(d)!==d))return}finally{if(f)throw l}}return g}}function GD(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function i_(a,s){var i=Object.keys(a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(a);s&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(a,l).enumerable})),i.push.apply(i,r)}return i}function ec(a){for(var s=1;si.right&&(i.right=g.right),g.bottom>i.bottom&&(i.bottom=g.bottom),g.left=0+m&&l>=0+m&&r<=d-m&&i<=u-m}function QD(a){return a===document.querySelector("body")||a===document.querySelector("html")}var e0=function(s){return/(left|right)/.test(s)},Np=function(s,i){return s>i},Lp=function(s,i){return s>i},Fs=function(s){return s<0?0:s};function t0(a){return Object.keys(a).map(function(s){return{position:s,value:a[s]}}).sort(function(s,i){return i.value-s.value}).map(function(s){return s.position})}var d_,s0=ds.div(d_||(d_=Ts([` + --reactour-accent: `,`; + `,` + position: fixed; + transition: transform 0.3s; + top: 0; + left: 0; + z-index: 1000000; + + transform: `,`; +`])),function(a){return a.accentColor},function(a){return a.defaultStyles?` + max-width: 331px; + min-width: 150px; + padding-right: 40px; + border-radius: `.concat(a.rounded,`px; + background-color: #fff; + padding: 24px 30px; + box-shadow: 0 0.5em 3em rgba(0, 0, 0, 0.3); + color: inherit; + `):""},function(a){var s=a.targetTop,i=a.targetRight,r=a.targetBottom,l=a.targetLeft,u=a.windowWidth,d=a.windowHeight,g=a.helperWidth,m=a.helperHeight,f=a.helperPosition,v=a.padding,w={left:l,right:u-i,top:s,bottom:d-r},_=function(A){return w[A]>(e0(A)?g+v*2:m+v*2)},S=function(A){for(var R=t0(w),O=0;Ov?ae:v,ge=Lp(s+m,d)?Lp(r+v,d)?r-m:r-m+v:s-v,K=ge>v?ge:v,je={top:[se,s-m-v*2],right:[i+v*2,K],bottom:[se,r+v*2],left:[l-g-v*2,K],center:[u/2-g/2,d/2-m/2]};return A==="center"||_(A)?je[A]:S(je)},C=k(f);return"translate(".concat(Math.round(C[0]),"px, ").concat(Math.round(C[1]),"px)")}),h_,o0=ds.span(h_||(h_=Ts([` + position: absolute; + font-family: monospace; + background: var(--reactour-accent); + background: `,`; + height: 1.875em; + line-height: 2; + padding-left: 0.8125em; + padding-right: 0.8125em; + font-size: 1em; + border-radius: 1.625em; + color: white; + text-align: center; + box-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.3); + top: -0.8125em; + left: -0.8125em; +`])),function(a){return a.accentColor}),p_,i0=ds.div(p_||(p_=Ts([` + display: flex; + margin-top: 24px; + align-items: center; + justify-content: center; +`]))),g_,n0=ds.nav(g_||(g_=Ts([` + counter-reset: dot; + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; +`]))),m_,r0=ds.button(m_||(m_=Ts([` + counter-increment: dot; + width: 8px; + height: 8px; + border: `,`; + + border-radius: 100%; + padding: 0; + display: block; + margin: 4px; + transition: opacity 0.3s, transform 0.3s; + cursor: `,`; + transform: scale(`,`); + + color: `,`; + background: `,`; + + color: `,`; + background: `,`; + + &:before { + content: counter(dot); + position: absolute; + bottom: calc(100% + 0.25em); + left: 50%; + opacity: 0; + transform: translate(-50%, 1em); + transition: 0.3s; + display: `,`; + } + + &:hover { + background-color: currentColor; + + &:before { + opacity: 0.5; + transform: translate(-50%, -2px); + } + } +`])),function(a){return a.current===a.index?"0":"1px solid #caccce"},function(a){return a.disabled?"not-allowed":"pointer"},function(a){return a.current===a.index?1.25:1},function(a){return a.current===a.index?"var(--reactour-accent)":"#caccce"},function(a){return a.current===a.index?"var(--reactour-accent)":"none"},function(a){return a.current===a.index?a.accentColor:"#caccce"},function(a){return a.current===a.index?a.accentColor:"none"},function(a){return a.showNumber?"block":"none"}),f_,a0=ds.div(f_||(f_=Ts([` + opacity: `,`; + color: `,`; + width: 100%; + left: 0; + top: 0; + height: 100%; + position: fixed; + z-index: 99999; + pointer-events: none; +`])),function(a){return!a.maskClassName&&.7},function(a){return!a.maskClassName&&"#000"});function bC(a){var s=a.windowWidth,i=a.windowHeight,r=a.targetWidth,l=a.targetHeight,u=a.targetTop,d=a.targetLeft,g=a.padding,m=a.rounded,f=a.roundedStep,v=a.disableInteraction,w=a.disableInteractionClassName,_=a.className,S=a.onClick,k=a.highlightedBorder,C=Fs(r+g*2),E=Fs(l+g*2),A=Fs(u-g),R=Fs(d-g),O=f?Math.min(C/2,E/2):m;return X.createElement(a0,{onClick:S,maskClassName:_},X.createElement("svg",{width:s,height:i,xmlns:"http://www.w3.org/2000/svg",className:_},X.createElement("defs",null,X.createElement("mask",{id:"mask-main"},X.createElement("rect",{x:0,y:0,width:s,height:i,fill:"white"}),X.createElement("rect",{x:R,y:A,width:C,height:E,fill:"black"}),X.createElement("rect",{x:R-1,y:A-1,width:O,height:O,fill:"white"}),X.createElement("circle",{cx:R+O,cy:A+O,r:O,fill:"black"}),X.createElement("rect",{x:R+C-O+1,y:A-1,width:O,height:O,fill:"white"}),X.createElement("circle",{cx:R+C-O,cy:A+O,r:O,fill:"black"}),X.createElement("rect",{x:R-1,y:A+E-O+1,width:O,height:O,fill:"white"}),X.createElement("circle",{cx:R+O,cy:A+E-O,r:O,fill:"black"}),X.createElement("rect",{x:R+C-O+1,y:A+E-O+1,width:O,height:O,fill:"white"}),X.createElement("circle",{cx:R+C-O,cy:A+E-O,r:O,fill:"black "})),X.createElement("clipPath",{id:"clip-path"},X.createElement("rect",{x:0,y:0,width:s,height:A}),X.createElement("rect",{x:0,y:A,width:R,height:E}),X.createElement("rect",{x:d+r+g,y:A,width:Fs(s-r-R),height:E}),X.createElement("rect",{x:0,y:u+l+g,width:s,height:Fs(i-l-A)}))),X.createElement("rect",{x:0,y:0,width:s,height:i,fill:"currentColor",mask:"url(#mask-main)"}),X.createElement("rect",{x:0,y:0,width:s,height:i,fill:"currentColor",clipPath:"url(#clip-path)",pointerEvents:"auto"}),X.createElement("rect",{x:R,y:A,width:C,height:E,pointerEvents:"auto",fill:"transparent",display:v?"block":"none",className:w}),k&&X.createElement("rect",{x:Fs(R+k.width/2),y:Fs(A+k.width/2),width:Fs(C-k.width),height:Fs(E-k.width),pointerEvents:"auto",fill:"none",strokeWidth:k.width,stroke:k.color,rx:O-2})))}bC.propTypes={windowWidth:ee.number.isRequired,windowHeight:ee.number.isRequired,targetWidth:ee.number.isRequired,targetHeight:ee.number.isRequired,targetTop:ee.number.isRequired,targetLeft:ee.number.isRequired,padding:ee.number.isRequired,rounded:ee.number.isRequired,roundedStep:ee.bool,disableInteraction:ee.bool.isRequired,disableInteractionClassName:ee.string.isRequired,highlightedBorder:ee.shape({color:ee.string.isRequired,width:ee.number.isRequired})};var l0=function(a){var s=a.step,i=a.refresh,r=V.useState(0),l=KD(r,2),u=l[0],d=l[1];return V.useEffect(function(){if(s.resizeObservables){var g=function(_){var S=dn(_),k;try{var C=function(){var A=k.value;if(!A.attributes)return 1;var R=s.resizeObservables.find(function(O){return A.matches(O)||A.querySelector(O)!=null});R&&d(u+1)};for(S.s();!(k=S.n()).done;)C()}catch(E){S.e(E)}finally{S.f()}},m=new MutationObserver(function(w){var _=dn(w),S;try{for(_.s();!(S=_.n()).done;){var k=S.value;k.addedNodes.length!==0&&g(k.addedNodes),k.removedNodes.length!==0&&g(k.removedNodes)}}catch(C){_.e(C)}finally{_.f()}}),f=document.documentElement||document.body,v={childList:!0,subtree:!0};return m.observe(f,v),function(){m.disconnect()}}},[s,u]),V.useEffect(function(){if(s.resizeObservables){var g=new ResizeObserver(function(_){i()}),m=dn(s.resizeObservables),f;try{for(m.s();!(f=m.n()).done;){var v=f.value,w=document.querySelector(v);w&&g.observe(w)}}catch(_){m.e(_)}finally{m.f()}return function(){g.disconnect()}}},[s,u]),null},c0=function(a){var s=a.step,i=a.refresh;return V.useEffect(function(){if(s.mutationObservables){var r=function(m){var f=dn(m),v;try{var w=function(){var S=v.value;if(!S.attributes)return 1;var k=s.mutationObservables.find(function(C){return S.matches(C)||S.querySelector(C)!=null});k&&i()};for(f.s();!(v=f.n()).done;)w()}catch(_){f.e(_)}finally{f.f()}},l=new MutationObserver(function(g){var m=dn(g),f;try{for(m.s();!(f=m.n()).done;){var v=f.value;v.addedNodes.length!==0&&r(v.addedNodes),v.removedNodes.length!==0&&r(v.removedNodes)}}catch(w){m.e(w)}finally{m.f()}}),u=document.documentElement||document.body,d={childList:!0,subtree:!0};return l.observe(u,d),function(){l.disconnect()}}},[s]),null};function u0(a){var s=a.children,i=V.useRef(null);return i.current===null&&(i.current=document.createElement("div"),i.current.setAttribute("id","___reactour")),V.useEffect(function(){return document.body.appendChild(i.current),function(){document.body.removeChild(i.current)}},[i]),M_.createPortal(s,i.current)}var d0={disableFocusLock:ee.bool,badgeContent:ee.func,highlightedMaskClassName:ee.string,children:ee.oneOfType([ee.node,ee.element]),className:ee.string,closeButtonAriaLabel:ee.string,closeWithMask:ee.bool,inViewThreshold:ee.number,isOpen:ee.bool.isRequired,lastStepNextButton:ee.node,maskClassName:ee.string,maskSpace:ee.number,nextButton:ee.node,onAfterOpen:ee.func,onBeforeClose:ee.func,onRequestClose:ee.func,prevButton:ee.node,scrollDuration:ee.number,scrollOffset:ee.number,showButtons:ee.bool,showCloseButton:ee.bool,showNavigation:ee.bool,showNavigationNumber:ee.bool,showNumber:ee.bool,startAt:ee.number,goToStep:ee.number,getCurrentStep:ee.func,nextStep:ee.func,prevStep:ee.func,steps:ee.arrayOf(ee.shape({selector:ee.string,content:ee.oneOfType([ee.node,ee.element,ee.func]).isRequired,position:ee.oneOfType([ee.arrayOf(ee.number),ee.oneOf(["top","right","bottom","left","center"])]),action:ee.func,style:ee.object,stepInteraction:ee.bool,navDotAriaLabel:ee.string,roundedStep:ee.bool})),update:ee.string,updateDelay:ee.number,disableInteraction:ee.bool,disableDotsNavigation:ee.bool,disableKeyboardNavigation:ee.oneOfType([ee.arrayOf(ee.oneOf(["esc","right","left"])),ee.bool]),rounded:ee.number,accentColor:ee.string,highlightedBorder:ee.shape({color:ee.string.isRequired,width:ee.number.isRequired})},h0={disableFocusLock:!1,showNavigation:!0,showNavigationNumber:!0,showButtons:!0,showCloseButton:!0,closeButtonAriaLabel:"Close",showNumber:!0,scrollDuration:1,maskSpace:10,updateDelay:1,disableInteraction:!1,rounded:0,accentColor:"#007aff",closeWithMask:!0},tn={mask:{disableInteraction:"reactour__mask--disable-interaction"},helper:{base:"reactour__helper",isOpen:"reactour__helper--is-open"},dot:{base:"reactour__dot",active:"reactour__dot--is-active"}},Zg=function(a){function s(){var i;return jD(this,s),i=FD(this,s),as(i,"unlockFocus",function(r){i.setState({focusUnlocked:!0},r())}),as(i,"showStep",function(){if(!(!i.helper||!i.helper.current)){var r=i.props.steps,l=i.state,u=l.current,d=l.focusUnlocked;d&&i.setState({focusUnlocked:!1});var g=r[u],m=g.selector?document.querySelector(g.selector):null,f=function(k){g.action&&typeof g.action=="function"&&i.unlockFocus(function(){return g.action(k)})};if(g.observe){var v=document.querySelector(g.observe),w={attributes:!0,childList:!0,characterData:!0};i.setState(function(S){return S.observer&&setTimeout(function(){S.observer.disconnect()},0),{observer:new MutationObserver(function(k){k.forEach(function(C){if(C.type==="childList"&&C.addedNodes.length>0){var E=function(){return f(C.addedNodes[0])};setTimeout(function(){return i.calculateNode(C.addedNodes[0],g,E)},100)}else if(C.type==="childList"&&C.removedNodes.length>0){var A=function(){return f(m)};i.calculateNode(m,g,A)}})})}},function(){return i.state.observer.observe(v,w)})}else i.state.observer&&(i.state.observer.disconnect(),i.setState({observer:null}));if(m){var _=function(){return f(m)};i.calculateNode(m,g,_)}else i.setState(Bp(null,g,i.helper.current),f),g.selector&&console.warn("Doesn't find a DOM node '".concat(g.selector,"'. Please check the 'steps' Tour prop Array at position ").concat(u,"."))}}),as(i,"calculateNode",function(r,l,u){var d=i.props,g=d.scrollDuration,m=d.inViewThreshold,f=d.scrollOffset,v=$C(r,l),w=Math.max(document.documentElement.clientWidth,window.innerWidth||0),_=Math.max(document.documentElement.clientHeight,window.innerHeight||0);if(ZD(ec(ec({},v),{},{w,h:_,threshold:m})))i.setState(Bp(r,l,i.helper.current),u);else{var S=TI(r),k=f||(v.height>_?-25:-(_/2)+v.height/2);_I.to(r,{context:QD(S)?window:S,duration:g,offset:k,callback:function(E){i.setState(Bp(E,l,i.helper.current),u)}})}}),as(i,"recalculateNode",function(r){var l=document.querySelector(r.selector),u=function(g){r.action&&typeof r.action=="function"&&i.unlockFocus(function(){return r.action(g)})};i.calculateNode(l,r,function(){return u(l)})}),as(i,"maskClickHandler",function(r){var l=i.props,u=l.closeWithMask,d=l.onRequestClose;u&&!r.target.classList.contains(tn.mask.disableInteraction)&&d(r)}),as(i,"nextStep",function(){var r=i.props,l=r.steps,u=r.getCurrentStep;i.setState(function(d){var g=d.current0?l.current-1:l.current;return typeof r=="function"&&r(u),{current:u}},i.showStep)}),as(i,"gotoStep",function(r){var l=i.props,u=l.steps,d=l.getCurrentStep;i.setState(function(g){var m=u[r]?r:g.current;return typeof d=="function"&&d(m),{current:m}},i.showStep)}),as(i,"keyDownHandler",function(r){var l=i.props,u=l.onRequestClose,d=l.nextStep,g=l.prevStep,m=l.disableKeyboardNavigation;if(r.stopPropagation(),m!==!0){var f,v,w;m&&(f=m.includes("esc"),v=m.includes("right"),w=m.includes("left")),r.keyCode===27&&!f&&(r.preventDefault(),u()),r.keyCode===39&&!v&&(r.preventDefault(),typeof d=="function"?d():i.nextStep()),r.keyCode===37&&!w&&(r.preventDefault(),typeof g=="function"?g():i.prevStep())}}),i.state={isOpen:!1,current:0,top:0,right:0,bottom:0,left:0,width:0,height:0,w:0,h:0,inDOM:!1,observer:null,focusUnlocked:!1},i.helper=V.createRef(),i.helperElement=null,i.debouncedShowStep=HI(i.showStep,70),i}return HD(s,a),UD(s,[{key:"componentDidMount",value:function(){var r=this.props,l=r.isOpen,u=r.startAt;l&&this.open(u)}},{key:"UNSAFE_componentWillReceiveProps",value:function(r){var l=this.props,u=l.isOpen,d=l.update,g=l.updateDelay;!u&&r.isOpen?this.open(r.startAt):u&&!r.isOpen&&this.close(),u&&d!==r.update&&(r.steps[this.state.current]?setTimeout(this.showStep,g):this.props.onRequestClose()),u&&r.isOpen&&this.state.current!==r.goToStep&&this.gotoStep(r.goToStep)}},{key:"componentWillUnmount",value:function(){var r=this.props.isOpen;r&&this.close(),this.state.observer&&this.state.observer.disconnect()}},{key:"open",value:function(r){var l=this,u=this.props.onAfterOpen;this.setState(function(d){return{isOpen:!0,current:r!==void 0?r:d.current}},function(){setTimeout(l.showStep,1),l.helperElement=l.helper.current,l.props.disableFocusLock||l.helper.current.focus(),u&&u(l.helperElement)}),window.addEventListener("resize",this.debouncedShowStep,!1),window.addEventListener("keydown",this.keyDownHandler,!1)}},{key:"close",value:function(){this.setState(function(r){return r.observer&&r.observer.disconnect(),{isOpen:!1,observer:null}},this.onBeforeClose),window.removeEventListener("resize",this.debouncedShowStep),window.removeEventListener("keydown",this.keyDownHandler)}},{key:"onBeforeClose",value:function(){var r=this.props.onBeforeClose;r&&r(this.helperElement)}},{key:"render",value:function(){var r=this,l=this.props,u=l.className,d=l.steps,g=l.maskClassName,m=l.showButtons,f=l.showCloseButton,v=l.closeButtonAriaLabel,w=l.showNavigation,_=l.showNavigationNumber,S=l.showNumber,k=l.onRequestClose,C=l.maskSpace,E=l.lastStepNextButton,A=l.nextButton,R=l.prevButton,O=l.badgeContent,Z=l.highlightedMaskClassName,ae=l.disableInteraction,se=l.disableDotsNavigation,ge=l.nextStep,K=l.prevStep,je=l.rounded,Me=l.accentColor,qe=l.CustomHelper,ce=l.disableFocusLock,de=l.highlightedBorder,J=this.state,we=J.isOpen,me=J.current,Fe=J.inDOM,Y=J.top,et=J.right,q=J.bottom,oe=J.left,F=J.width,H=J.height,U=J.w,le=J.h,x=J.helperWidth,pe=J.helperHeight,W=J.helperPosition;return we?X.createElement(u0,null,X.createElement(JD,null),X.createElement(l0,{step:d[me],refresh:function(){return r.recalculateNode(d[me])}}),X.createElement(c0,{step:d[me],refresh:function(){return r.recalculateNode(d[me])}}),X.createElement(bC,{onClick:this.maskClickHandler,forwardRef:function(ve){return r.mask=ve},windowWidth:U,windowHeight:le,targetWidth:F,targetHeight:H,targetTop:Y,targetLeft:oe,padding:C,rounded:je,roundedStep:d[me].roundedStep,className:g,disableInteraction:d[me].stepInteraction===!1||ae?!d[me].stepInteraction:ae,disableInteractionClassName:"".concat(tn.mask.disableInteraction," ").concat(Z),highlightedBorder:de}),X.createElement(Yw,{disabled:ce,autoFocus:!1},X.createElement(s0,{ref:this.helper,targetHeight:H,targetWidth:F,targetTop:Y,targetRight:et,targetBottom:q,targetLeft:oe,windowWidth:U,windowHeight:le,helperWidth:x,helperHeight:pe,helperPosition:W,padding:C,tabIndex:-1,current:me,style:d[me].style?d[me].style:{},rounded:je,className:Fy(tn.helper.base,u,as({},tn.helper.isOpen,we)),accentColor:Me,defaultStyles:!qe,role:"dialog"},qe?X.createElement(qe,{current:me,totalSteps:d.length,gotoStep:this.gotoStep,close:k,content:d[me]&&(typeof d[me].content=="function"?d[me].content({close:k,goTo:this.gotoStep,inDOM:Fe,step:me+1}):d[me].content)},this.props.children):X.createElement(X.Fragment,null,this.props.children,d[me]&&(typeof d[me].content=="function"?d[me].content({close:k,goTo:this.gotoStep,inDOM:Fe,step:me+1}):d[me].content),S&&X.createElement(o0,{"data-tour-elem":"badge",accentColor:Me},typeof O=="function"?O(me+1,d.length):me+1),(m||w)&&X.createElement(i0,{"data-tour-elem":"controls"},m&&X.createElement(c_,{onClick:typeof K=="function"?K:this.prevStep,disabled:me===0,label:R||null}),w&&X.createElement(n0,{"data-tour-elem":"navigation"},d.map(function(ke,ve){return X.createElement(r0,{key:"".concat(ke.selector?ke.selector:"undef","_").concat(ve),onClick:function(){return r.gotoStep(ve)},current:me,index:ve,accentColor:Me,disabled:me===ve||se,showNumber:_,"data-tour-elem":"dot",className:Fy(tn.dot.base,as({},tn.dot.active,me===ve)),"aria-label":ke.navDotAriaLabel})})),m&&X.createElement(c_,{onClick:me===d.length-1?E?k:function(){}:typeof ge=="function"?ge:this.nextStep,disabled:!E&&me===d.length-1,inverted:!0,label:E&&me===d.length-1?E:A||null})),f&&X.createElement(qD,{onClick:k,className:"reactour__close",ariaLabel:v}))))):null}}])}(V.Component),Bp=function(s,i,r){if(r){var l=Math.max(document.documentElement.clientWidth,window.innerWidth||0),u=Math.max(document.documentElement.clientHeight,window.innerHeight||0),d=Gl(r),g=d.width,m=d.height,f={top:u+10,right:l/2+9,bottom:u/2+9,left:l/2-g/2,width:0,height:0,w:l,h:u,helperPosition:"center"};return s&&(f=$C(s,i)),function(){return ec(ec({w:l,h:u,helperWidth:g,helperHeight:m,helperPosition:i.position},f),{},{inDOM:!!s})}}};Zg.propTypes=d0;Zg.defaultProps=h0;const p0=""+new URL("blockly2js-B3Jxf2e-.svg",import.meta.url).href,g0=""+new URL("rules2js-DnYyR8mI.svg",import.meta.url).href,ws={selectTriggers:0,addScheduleByDoubleClick:1,openTagsMenu:2,selectIntervalTag:3,selectActions:4,addActionPrintText:5,showJavascript:6,switchBackToRules:7,saveTheScript:8},m0=[{selector:".blocks-triggers",content:"Select triggers"},{selector:".block-TriggerScheduleBlock",content:"Double click to add the block"},{selector:".tag-card",content:"Open drop down menu"},{selector:".tag-card-interval",content:"Select interval"},{selector:".blocks-actions",content:"Select action blocks"},{selector:".block-ActionPrintText",content:"Double click to add the block"},{selector:".button-js-code",content:"Check the script"},{selector:".button-js-code",content:"Switch back to rules"},{selector:".button-save",content:"Save the script"}],Pp=187,Nl={root:{left:0,top:0,width:"100%",height:"100%",position:"fixed",background:"rgba(0, 0, 0, .3)",zIndex:2e4},connecting:{left:"40%",top:"40%",width:"20%",height:"20%",position:"absolute"},spinner:{animation:"admin-connecting-rotator 1.4s linear infinite"},path:{strokeDasharray:187,strokeDashoffset:0,transformOrigin:"center",animation:"admin-connecting-dash 1.4s ease-in-out infinite, $colors 5.6s ease-in-out infinite"}};function sn(){return p.jsxs("div",{style:Nl.root,children:[p.jsx("style",{children:` +' @keyframes admin-connecting-colors { + 0% { + stroke: #4285F4; + } + 25% { + stroke: #DE3E35; + } + 50% { + stroke: #F7C223; + } + 75% { + stroke: #1B9A59; + } + 100% { + stroke: #4285F4; + } + } + @keyframes admin-connecting-dash { + 0% { + stroke-dashoffset: ${Pp}; + } + 50% { + stroke-dashoffset: ${Pp/4}; + transform: rotate(135deg); + } + 100% { + stroke-dashoffset: ${Pp}; + transform: 'rotate(450deg); + } + } + @keyframes admin-connecting-rotator { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(270deg); + } + } +`}),p.jsx("div",{style:Nl.connecting,children:p.jsx("svg",{style:Nl.spinner,width:"100%",height:"100%",viewBox:"0 0 66 66",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("circle",{style:Nl.path,fill:"none",strokeWidth:"6",strokeLinecap:"round",cx:"33",cy:"33",r:"30"})})})]})}const f0=X.lazy(()=>mn(()=>Promise.resolve().then(()=>Y0),void 0,import.meta.url)),$0=X.lazy(()=>mn(()=>import("./index-CyP9QRCj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url)),b0=X.lazy(()=>mn(()=>import("./index-BeXkxxIT.js"),__vite__mapDeps([9,1,2,3,4,5,10,6,7]),import.meta.url)),v0=X.lazy(()=>mn(()=>import("./ScriptEditorVanillaMonaco-CZnuN4bN.js"),__vite__mapDeps([10,1,2,3,4,5,6,7]),import.meta.url)),y0=X.lazy(()=>mn(()=>import("./ScriptEditor-DCULXCiS.js"),__vite__mapDeps([11,1,2,3,4,5,10,6,7,12]),import.meta.url)),_0=X.lazy(()=>mn(()=>import("./OpenAiDialog-CZs8bTbV.js"),__vite__mapDeps([13,1,2,3,4,5,7,14,10,6]),import.meta.url)),$_={Blockly:pw,"Javascript/js":Yl,Rules:mw,def:Yl,"TypeScript/ts":gw},w0=48,b_="#02a102",Fp="#70aae9",C0=R_[400],T0=O_[400],Se={toolbar:a=>({minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)",backgroundColor:a.palette.mode==="dark"?"#1e1e1e":"#E2E2E2"}),toolbarButtons:{padding:4,marginLeft:4},toolbarButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},editorDiv:a=>({height:`calc(100% - ${(parseInt(a.toolbar.height,10)||48)+38+10}px)`,width:"100%",overflow:"hidden",position:"relative"}),textButton:{marginRight:10,minHeight:24,padding:"6px 16px"},saveButton:{background:"#ff9900"},tabIcon:{width:24,height:24,verticalAlign:"middle",marginBottom:2,marginRight:2,borderRadius:3},hintIcon:{padding:"0 8px 0 8px"},hintButton:{marginTop:8,marginLeft:20},tabMenuButton:{position:"absolute",top:0,right:0},tabChanged:a=>({color:a.palette.secondary.main}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},tabChangedIcon:{color:"#FF0000",fontSize:16,marginLeft:5},closeButton:{marginLeft:5},notRunning:{color:"#ffbc00",marginRight:8,marginLeft:8},tabButton:{minHeight:48},tabButtonWrapper:{display:"inline-block"},menuIcon:{width:18,height:18,borderRadius:2,marginRight:5}};function k0(){return p.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 2406 2406",children:[p.jsx("path",{d:"M1 578.4C1 259.5 259.5 1 578.4 1h1249.1c319 0 577.5 258.5 577.5 577.4V2406H578.4C259.5 2406 1 2147.5 1 1828.6V578.4z",fill:"#74aa9c"}),p.jsx("path",{d:"M1107.3 299.1c-198 0-373.9 127.3-435.2 315.3C544.8 640.6 434.9 720.2 370.5 833c-99.3 171.4-76.6 386.9 56.4 533.8-41.1 123.1-27 257.7 38.6 369.2 98.7 172 297.3 260.2 491.6 219.2 86.1 97 209.8 152.3 339.6 151.8 198 0 373.9-127.3 435.3-315.3 127.5-26.3 237.2-105.9 301-218.5 99.9-171.4 77.2-386.9-55.8-533.9v-.6c41.1-123.1 27-257.8-38.6-369.8-98.7-171.4-297.3-259.6-491-218.6-86.6-96.8-210.5-151.8-340.3-151.2zm0 117.5-.6.6c79.7 0 156.3 27.5 217.6 78.4-2.5 1.2-7.4 4.3-11 6.1L952.8 709.3c-18.4 10.4-29.4 30-29.4 51.4V1248l-155.1-89.4V755.8c-.1-187.1 151.6-338.9 339-339.2zm434.2 141.9c121.6-.2 234 64.5 294.7 169.8 39.2 68.6 53.9 148.8 40.4 226.5-2.5-1.8-7.3-4.3-10.4-6.1l-360.4-208.2c-18.4-10.4-41-10.4-59.4 0L1024 984.2V805.4L1372.7 604c51.3-29.7 109.5-45.4 168.8-45.5zM650 743.5v427.9c0 21.4 11 40.4 29.4 51.4l421.7 243-155.7 90L597.2 1355c-162-93.8-217.4-300.9-123.8-462.8C513.1 823.6 575.5 771 650 743.5zm807.9 106 348.8 200.8c162.5 93.7 217.6 300.6 123.8 462.8l.6.6c-39.8 68.6-102.4 121.2-176.5 148.2v-428c0-21.4-11-41-29.4-51.4l-422.3-243.7 155-89.3zM1201.7 997l177.8 102.8v205.1l-177.8 102.8-177.8-102.8v-205.1L1201.7 997zm279.5 161.6 155.1 89.4v402.2c0 187.3-152 339.2-339 339.2v-.6c-79.1 0-156.3-27.6-217-78.4 2.5-1.2 8-4.3 11-6.1l360.4-207.5c18.4-10.4 30-30 29.4-51.4l.1-486.8zM1380 1421.9v178.8l-348.8 200.8c-162.5 93.1-369.6 38-463.4-123.7h.6c-39.8-68-54-148.8-40.5-226.5 2.5 1.8 7.4 4.3 10.4 6.1l360.4 208.2c18.4 10.4 41 10.4 59.4 0l421.9-243.7z",fill:"white"})]})}class ln extends X.Component{getSelect=null;cron={initValue:null,callback:null};scriptDialog={initValue:null,callback:null,args:null,isReturn:!1};objects;scripts;selectId={initValue:null,callback:null};confirmCallback=null;constructor(s){super(s);const i=window.localStorage.getItem("Editor.selected")||"",r=window.localStorage.getItem("Editor.editing")||"[]";let l;try{l=JSON.parse(r)}catch{l=[]}i&&!l.includes(i)&&l.push(i),this.state={askAboutDebug:!1,astroEvents:null,blockly:null,changed:{},cmdToBlockly:"",cmdToRules:"",confirm:"",debugEnabled:!1,editing:l,insert:"",instancesLoaded:!1,isTourOpen:window.localStorage.getItem("tour")!=="true",menuDebugAnchorEl:null,menuOpened:!!this.props.menuOpened,menuTabsOpened:!1,openAiDialog:!1,triggerPrettier:1,rules:null,runningInstances:this.props.runningInstances||{},searchText:"",selected:i,showAdapterDebug:!1,showAstro:!1,showCompiledCode:!1,showCron:!1,showDebugMenu:!1,showScript:!1,showSelectId:!1,themeType:this.props.themeType,toast:"",tourStep:ws.selectTriggers,verboseEnabled:!1,visible:s.visible},this.setChangedInAdmin(),window.systemLang=b.I18n.getLanguage(),window.main={objects:{},getObject:(u,d)=>this.props.socket.getObject(u).then(g=>d&&d(null,g)).catch(g=>d&&d(g)),instances:[],selectIdDialog:(u,d,g)=>{typeof d=="function"&&(g=d,d=null),this.selectId.callback=g,this.selectId.initValue=u,this.selectId.type=d,this.setState({showSelectId:!0})},cronDialog:(u,d)=>{this.cron.callback=d,this.cron.initValue=u,this.setState({showCron:!0})},showScriptDialog:(u,d,g,m)=>{this.scriptDialog.callback=m,this.scriptDialog.initValue=u,this.scriptDialog.args=d,this.scriptDialog.isReturn=g||!1,this.setState({showScript:!0})}},this.objects=s.objects,this.scripts={},!this.state.selected&&this.state.editing.length&&Object.assign(this.state,{selected:this.state.editing[0]}),this.getAllAdapterInstances().then(()=>{this.props.onSelectedChange&&this.state.selected&&setTimeout(()=>this.props.onSelectedChange(this.state.selected,this.state.editing),100)})}getAllAdapterInstances(){return this.props.socket.getAdapterInstances(!0).then(s=>{const i={},r=s.map(l=>(i[l._id]=l,l._id));window.main.objects=i,window.main.instances=r,this.setState({instancesLoaded:!0})})}static onInstanceChanged(s,i){if(s)if(!i&&window.main.instances.includes(s)){delete window.main.objects[s];const r=window.main.instances.indexOf(s);window.main.instances.splice(r,1)}else i&&i.type==="instance"&&(window.main.instances.includes(s)||(window.main.instances.push(s),window.main.instances.sort()),window.main.objects[s]=i)}setChangedInAdmin(){const s=Object.keys(this.state.changed).find(i=>this.state.changed[i]);typeof window.parent<"u"&&window.parent&&(window.parent.configNotSaved=!!s)}componentDidMount(){window.addEventListener("beforeunload",this.onBrowserClose,!1),this.props.socket.subscribeObject("system.adapter.*",ln.onInstanceChanged)}componentWillUnmount(){window.removeEventListener("beforeunload",this.onBrowserClose),this.props.socket.unsubscribeObject("system.adapter.*",ln.onInstanceChanged)}onBrowserClose=s=>{const i=Object.keys(this.scripts).find(r=>JSON.stringify(this.scripts[r])!==JSON.stringify(this.props.objects[r].common));if(i){console.log(`Script ${JSON.stringify(this.scripts[i])}`);const r=b.I18n.t("Configuration not saved.");return s=s||window.event,s&&(s.returnValue=r),r}};removeNonExistingScripts(s,i){s=s||this.props,i=i||{};let r=!1;if(this.state.editing&&this.state.editing.find(u=>s&&!s.objects[u])){const u=JSON.parse(JSON.stringify(this.state.editing));for(let d=u.length-1;d>=0;d--)this.objects[u[d]]||(r=!0,u.splice(d,1));r&&(i.editing=u),this.state.selected&&!this.objects[this.state.selected]&&(r=!0,i.selected=u[0]||"",i.selected&&this.scripts[i.selected]&&(this.state.blockly!==(this.scripts[i.selected].engineType==="Blockly")&&(i.blockly=this.scripts[i.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[i.selected].engineType==="Rules")&&(i.rules=this.scripts[i.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[i.selected].verbose&&(i.verboseEnabled=this.scripts[i.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[i.selected].debug&&(i.debugEnabled=this.scripts[i.selected].debug,r=!0)))}return r}UNSAFE_componentWillReceiveProps(s){var l,u;const i={};let r=!1;if(JSON.stringify(s.runningInstances)!==JSON.stringify(this.state.runningInstances)&&(r=!0,i.runningInstances=s.runningInstances),this.state.menuOpened!==s.menuOpened&&(i.menuOpened=s.menuOpened,r=!0),this.state.themeType!==s.themeType&&(i.themeType=s.themeType,r=!0),this.removeNonExistingScripts(s,i)&&(r=!0),this.state.searchText!==s.searchText&&(i.searchText=s.searchText,r=!0),this.objects!==s.objects){this.objects=s.objects,window.main.objects=s.objects,Object.keys(this.scripts).forEach(g=>{const m=this.scripts[g].source;this.scripts[g]=JSON.parse(JSON.stringify(this.objects[g].common)),this.scripts[g].source=m}),this.state.selected&&this.objects[this.state.selected]&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.objects[this.state.selected].common)),this.state.blockly!==(this.scripts[this.state.selected].engineType==="Blockly")&&(i.blockly=this.scripts[this.state.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[this.state.selected].engineType==="Rules")&&(i.rules=this.scripts[this.state.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[this.state.selected].verbose&&(i.verboseEnabled=this.scripts[this.state.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[this.state.selected].debug&&(i.debugEnabled=this.scripts[this.state.selected].debug,r=!0));const d=JSON.parse(JSON.stringify(this.state.editing));for(let g=d.length-1;g>=0;g--)this.objects[d[g]]||(r=!0,d.splice(g,1),this.state.changed[d[g]]!==void 0&&(i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&delete i.changed[d[g]]));this.state.selected&&!this.objects[this.state.selected]&&(i.selected=d[0]||""),r&&(i.editing=d)}else for(const d in this.scripts)if(Object.prototype.hasOwnProperty.call(this.scripts,d)){if((l=this.objects[d])!=null&&l.common){if(this.objects[d].type==="script"){const g=this.scripts[d].source,m=JSON.parse(JSON.stringify(this.scripts[d]));m.source=this.objects[d].common.source,JSON.stringify(m)!==JSON.stringify(this.objects[d].common)&&(this.scripts[d]=JSON.parse(JSON.stringify(this.objects[d].common)),this.scripts[d].source=g),g!==this.objects[d].common.source?this.state.changed[d]?(u=this.objects[d].from)!=null&&u.startsWith("system.adapter.javascript.")&&(this.objects[d].from="system.adapter.admin.0",this.setState({toast:b.I18n.t("Script %s was modified on disk.",d.split(".").pop())})):this.scripts[d].source=this.objects[d].common.source:this.state.changed[d]&&(i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&(i.changed[d]=!1),r=!0)}}else if(this.scripts[d]&&(delete this.scripts[d],this.state.selected===d)){if(this.state.editing.indexOf(d)!==-1){const g=JSON.parse(JSON.stringify(this.state.editing)),m=g.indexOf(d);m!==-1&&(g.splice(m,1),i.editing=g,r=!0)}i.selected=this.state.editing[0]||"",r=!0}}if(this.state.selected!==s.selected&&s.selected){s.selected&&(this.scripts[s.selected]=this.scripts[s.selected]||JSON.parse(JSON.stringify(this.props.objects[s.selected].common)));const d=this.props.objects[s.selected]&&this.props.objects[s.selected].common,g=d&&JSON.stringify(this.scripts[s.selected])!==JSON.stringify(d),m=JSON.parse(JSON.stringify(this.state.editing));s.selected&&m.indexOf(s.selected)===-1&&(m.push(s.selected),this.props.onSelectedChange(s.selected,m),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(m))),r=!0,i.changed=i.changed||JSON.parse(JSON.stringify(this.state.changed)),i.changed&&(i.changed[s.selected]=g),i.editing=m,i.selected=s.selected,i.blockly=this.scripts[s.selected].engineType==="Blockly",i.rules=this.scripts[s.selected].engineType==="Rules",i.verboseEnabled=this.scripts[s.selected].verbose,i.debugEnabled=this.scripts[s.selected].debug,i.showCompiledCode=!1}this.state.visible!==s.visible&&(r=!0,i.visible=s.visible),r&&this.setState(i,()=>this.setChangedInAdmin())}onRestart(){this.props.onRestart&&this.props.onRestart(this.state.selected)}onStartStop(){const s=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));s.enabled=!s.enabled,this.props.onChange&&this.props.onChange(this.state.selected,s)}onSave(){if(this.state.isTourOpen&&this.state.tourStep===ws.saveTheScript&&(this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true")),this.state.changed[this.state.selected]){const s=JSON.parse(JSON.stringify(this.state.changed));s[this.state.selected]=!1,this.setState({changed:s},()=>{this.setChangedInAdmin(),this.props.onChange&&this.props.onChange(this.state.selected,this.scripts[this.state.selected])})}}onSaveAll(){const s=JSON.parse(JSON.stringify(this.state.changed));Object.keys(s).forEach(i=>{s[i]&&(s[i]=!1,this.props.onChange&&this.props.onChange(i,this.scripts[i]))}),this.setState({changed:s},()=>this.setChangedInAdmin())}onCancel(){this.scripts[this.state.selected]=JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));const s=JSON.parse(JSON.stringify(this.state.changed));s[this.state.selected]=!1,this.setState({changed:s},()=>this.setChangedInAdmin())}onRegisterSelect(s){this.getSelect=s}onConvertBlockly2JS(){this.showConfirmDialog(b.I18n.t("It will not be possible to revert this operation."),s=>{if(s){this.scripts[this.state.selected].engineType="Javascript/js";const r=this.scripts[this.state.selected].source.split(` +`);r.pop(),this.scripts[this.state.selected].source=r.join(` +`);const l=this.state.selected,u=JSON.parse(JSON.stringify(this.state.changed));u[this.state.selected]=!0,this.setState({changed:u,blockly:!1,selected:""},()=>{this.setChangedInAdmin(),setTimeout(()=>this.setState({selected:l}),100)})}})}onChange(s){s=s||{},s&&(s.script!==void 0&&(this.scripts[this.state.selected].source=s.script),s.debug!==void 0&&(this.scripts[this.state.selected].debug=s.debug),s.verbose!==void 0&&(this.scripts[this.state.selected].verbose=s.verbose));const i=JSON.stringify(this.scripts[this.state.selected])!==JSON.stringify(this.props.objects[this.state.selected].common);if(i!==(this.state.changed[this.state.selected]||!1)){const r=JSON.parse(JSON.stringify(this.state.changed));r[this.state.selected]=i,this.objects[this.state.selected].from="system.adapter.admin.0",this.setState({changed:r},()=>this.setChangedInAdmin())}}onTabChange(s){if(this.props.debugMode)return;window.localStorage&&window.localStorage.setItem("Editor.selected",s);const i=this.scripts[s]||this.props.objects[s]&&this.props.objects[s].common;this.setState({selected:s,rules:i.engineType==="Rules",blockly:i.engineType==="Blockly",showCompiledCode:!1,verboseEnabled:i.verbose,debugEnabled:i.debug}),this.props.onSelectedChange&&this.props.onSelectedChange(s,this.state.editing)}isScriptChanged(s){return!!(this.scripts[s]&&this.props.objects[s]&&JSON.stringify(this.scripts[s])!==JSON.stringify(this.props.objects[s].common))}onTabClose(s,i){i==null||i.stopPropagation();const r=this.state.editing.indexOf(s);if(this.state.editing.includes(s))if(this.isScriptChanged(s))this.showConfirmDialog(b.I18n.t("Discard changes for %s",this.props.objects[s].common.name),l=>{l&&(delete this.scripts[s],this.onTabClose(s))});else{const l=JSON.parse(JSON.stringify(this.state.editing));l.splice(r,1);const u={editing:l};if(s===this.state.selected?l.length?r===0||l.length===1?u.selected=l[0]:u.selected=l[r-1]:u.selected="":this.state.selected&&!l.length&&(u.selected=""),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(l)),u.selected!==void 0){u.changed=u.changed||JSON.parse(JSON.stringify(this.state.changed))||{},u.changed&&(u.changed[u.selected]=this.isScriptChanged(u.selected));const d=u.selected&&(this.scripts[u.selected]||this.props.objects[u.selected]&&this.props.objects[u.selected].common);u.blockly=d?d.engineType==="Blockly":!1,u.rules=d?d.engineType==="Rules":!1,u.verboseEnabled=d?d.verbose:!1,u.debugEnabled=d?d.debug:!1,u.showCompiledCode=!1}this.setState(u,()=>{this.setChangedInAdmin(),u.selected!==void 0?(this.props.onSelectedChange&&this.props.onSelectedChange(u.selected,this.state.editing),window.localStorage&&window.localStorage.setItem("Editor.selected",u.selected)):this.props.onSelectedChange&&this.props.onSelectedChange(this.state.selected,this.state.editing)})}}showConfirmDialog(s,i){this.confirmCallback=i,this.setState({confirm:s})}sendCommandToBlockly(s){this.setState({cmdToBlockly:s},()=>setTimeout(()=>this.setState({cmdToBlockly:""}),200))}sendCommandToRules(s){this.setState({cmdToRules:s},()=>setTimeout(()=>this.setState({cmdToRules:""}),200))}static getText(s){return typeof s=="object"?s[b.I18n.getLanguage()]||s.en:s}getScriptFullName(s){const i=s.split(".");i.shift(),i.shift();const r=[];let l="script.js";for(let u=0;uthis.onTabChange(i),indicatorColor:"primary",style:{position:"relative",marginLeft:10,width:this.state.editing.length>1?"calc(100% - 50px)":"100%",display:"inline-block"},textColor:"primary",variant:"scrollable",scrollButtons:"auto",allowScrollButtonsMobile:!0,children:[this.state.editing.map(s=>{if(!this.props.objects[s]){const d=[p.jsx(y.Box,{sx:this.isScriptChanged(s)?Se.tabChanged:void 0,style:Se.tabText,children:s.split(".").pop()},"text"),p.jsx(y.IconButton,{onClick:g=>this.onTabClose(s,g),style:Se.closeButton,size:"small",component:"span",children:p.jsx(Cr,{})},"icon")];return p.jsx(y.Tab,{wrapped:!0,href:`#${s}`,label:d,value:s,sx:{"& .MuiTab-wrapper":Se.tabButtonWrapper}},s)}let i=ln.getText(this.props.objects[s].common.name)||"";const r=this.getScriptFullName(s);i.length>18&&(i=`${i.substring(0,15)}...`);const l=this.scripts[s]&&this.props.objects[s].common&&this.props.objects[s].common.source!==this.scripts[s].source,u=[p.jsx(y.Box,{sx:this.isScriptChanged(s)?Se.tabChanged:void 0,style:Se.tabText,children:i},"text"),l?p.jsx("span",{style:Se.tabChangedIcon,children:"▣"},"changedSign"):null,!this.props.debugInstance&&(!this.props.debugMode||this.state.selected!==s)&&p.jsx(y.IconButton,{onClick:d=>this.onTabClose(s,d),style:Se.closeButton,size:"small",component:"span",children:p.jsx(Cr,{})},"icon")];return p.jsx(y.Tab,{disabled:!!this.props.debugInstance||this.state.selected!==s&&this.props.debugMode,wrapped:!0,iconPosition:"start",icon:p.jsx("img",{alt:"",src:$_[this.props.objects[s].common.engineType]||$_.def,style:Se.tabIcon},"icon"),href:`#${s}`,label:u,style:Se.tabButton,value:s,title:r,sx:{"& .MuiTab-wrapper":Se.tabButtonWrapper}},s)}),this.props.debugInstance?p.jsx(y.Tab,{disabled:!1,wrapped:!0,href:`#${this.props.debugInstance.adapter}`,label:this.props.debugInstance.adapter,style:Se.tabButton,value:this.props.debugInstance.adapter,title:this.props.debugInstance.adapter,sx:{"& .MuiTab-wrapper":Se.tabButtonWrapper}},this.props.debugInstance.adapter):""]},"tabs1"),this.state.editing.length>1?p.jsx(y.IconButton,{href:"#","aria-label":"Close all but current",style:Se.tabMenuButton,title:b.I18n.t("Close all but current"),"aria-haspopup":"false",onClick:s=>{const i=[this.state.selected];Object.keys(this.scripts).forEach(r=>r!==this.state.selected&&JSON.stringify(this.scripts[r])!==JSON.stringify(this.props.objects[r].common)&&i.push(r)),window.localStorage&&window.localStorage.setItem("Editor.editing",JSON.stringify(i)),this.setState({menuTabsOpened:!1,editing:i})},size:"medium",children:p.jsx(QT,{})},"menuButton"):null]:p.jsx(y.Box,{sx:Se.toolbar,children:p.jsxs(y.Button,{color:"grey",disabled:!0,style:Se.hintButton,href:"",children:[p.jsx("span",{children:b.I18n.t("Click on this icon")},"select2"),p.jsx(N_,{style:Se.hintIcon},"select3"),p.jsx("span",{children:b.I18n.t("for edit or create script")},"select4")]},"select1")},"tabs2")}getDebugMenu(){return this.state.showDebugMenu?p.jsxs(y.Menu,{id:"menu-debug",anchorEl:this.state.menuDebugAnchorEl,open:this.state.showDebugMenu,onClose:()=>this.setState({showDebugMenu:!1,menuDebugAnchorEl:null}),slotProps:{root:{style:{maxHeight:w0*7.5}}},children:[p.jsxs(y.MenuItem,{title:b.I18n.t("debug_help"),onClick:s=>{s.stopPropagation(),s.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,debugEnabled:!this.state.debugEnabled},()=>this.onChange({debug:this.state.debugEnabled}))},children:[p.jsx(y.Checkbox,{checked:this.state.debugEnabled}),p.jsx(wr,{style:{...Se.menuIcon,color:b_}}),b.I18n.t("debug_label")]},"debugEnabled"),p.jsxs(y.MenuItem,{title:b.I18n.t("verbose_help"),onClick:s=>{s.stopPropagation(),s.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,verboseEnabled:!this.state.verboseEnabled},()=>this.onChange({verbose:this.state.verboseEnabled}))},children:[p.jsx(y.Checkbox,{checked:this.state.verboseEnabled}),p.jsx(gy,{style:{...Se.menuIcon,color:Fp}}),b.I18n.t("verbose_label")]},"verboseEnabled")]},"menuDebug"):null}getDebugBadge(){return[this.state.debugEnabled&&this.state.verboseEnabled?p.jsx(wr,{style:{...Se.menuIcon,color:Fp}},"DebugVerbose"):null,this.state.debugEnabled&&!this.state.verboseEnabled?p.jsx(wr,{style:{...Se.menuIcon,color:b_}},"DebugNoVerbose"):null,!this.state.debugEnabled&&this.state.verboseEnabled?p.jsx(gy,{style:{...Se.menuIcon,color:Fp}},"noDebugVerbose"):null]}getAskAboutDebug(){return this.state.askAboutDebug?p.jsx(b.DialogConfirm,{onClose:()=>{this.setState({askAboutDebug:!1},()=>this.props.onDebugModeChange(!0))},ok:b.I18n.t("Yes"),cancel:b.I18n.t("Cancel"),text:b.I18n.t("The script will be stopped and must be activated manually after debugging. Continue?")}):null}renderOpenAiDialog(){return this.state.openAiDialog?p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(_0,{adapterName:this.props.adapterName,socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,onClose:()=>this.setState({openAiDialog:!1}),language:this.scripts[this.state.selected].engineType==="TypeScript/ts"?"typescript":"javascript",onAddCode:s=>this.setState({insert:s})})}):null}getToolbar(){const s=!!(this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine]),i=!!(this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].enabled);if(this.state.selected){const r=Object.keys(this.state.changed).filter(u=>this.state.changed[u]).length,l=this.state.changed[this.state.selected];return p.jsxs(y.Toolbar,{variant:"dense",sx:Se.toolbar,children:[!this.props.debugInstance&&this.state.menuOpened&&this.props.onLocate&&p.jsx(y.IconButton,{style:Se.toolbarButtons,title:b.I18n.t("Locate file"),onClick:()=>this.props.onLocate(this.state.selected),size:"medium",children:p.jsx(ek,{})},"locate"),!this.props.debugInstance&&!l&&s?p.jsx(y.IconButton,{disabled:this.props.debugMode,style:Se.toolbarButtons,onClick:()=>this.onRestart(),title:b.I18n.t("Restart"),size:"medium",children:p.jsx(tk,{})},"restart"):null,!this.props.debugInstance&&!l?p.jsx(y.IconButton,{disabled:this.props.debugMode,onClick:()=>this.onStartStop(),title:i?b.I18n.t("Pause script"):b.I18n.t("Run script"),size:"medium",style:{...Se.toolbarButtons,color:i?C0:T0},children:i?p.jsx(zl,{}):p.jsx(qp,{})},"start-stop"):null,!this.props.debugInstance&&!l&&!i?p.jsx("span",{style:Se.notRunning,children:b.I18n.t("Script is not running")}):null,!l&&i&&!s?p.jsx("span",{style:Se.notRunning,children:b.I18n.t("Instance is disabled")}):null,l?p.jsx(y.Button,{color:"grey",variant:"contained",style:{...Se.textButton,...Se.saveButton},className:"button-save",onClick:()=>this.onSave(),endIcon:p.jsx(my,{}),children:b.I18n.t("Save")},"save"):null,r>1||r===1&&!l?p.jsx(y.Button,{color:"grey",variant:"contained",style:Se.textButton,onClick:()=>this.onSaveAll(),endIcon:p.jsx(my,{}),children:b.I18n.t("Save all")},"saveall"):null,l?p.jsx(y.Button,{color:"grey",variant:"contained",style:Se.textButton,onClick:()=>this.onCancel(),endIcon:p.jsx($c,{}),children:b.I18n.t("Cancel")},"cancel"):null,p.jsx("div",{style:{flex:2}}),!this.props.debugInstance&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{style:Se.toolbarButtons,title:b.I18n.t("Prettify the script"),onClick:()=>this.setState({triggerPrettier:this.state.triggerPrettier+1}),size:"medium",children:p.jsx(sk,{})},"prettier"),this.state.blockly&&!this.state.showCompiledCode?p.jsx(y.IconButton,{"aria-label":"Export Blocks",title:b.I18n.t("Export blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToBlockly("export"),size:"medium",children:p.jsx(Vl,{})},"export"):null,this.state.blockly&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Import Blocks",title:b.I18n.t("Import blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToBlockly("import"),size:"medium",children:p.jsx(Zp,{})},"import"),this.state.blockly&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Check code",title:b.I18n.t("Check blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToBlockly("check"),size:"medium",children:p.jsx(ok,{})},"check"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode?p.jsx(y.IconButton,{"aria-label":"create CRON",title:b.I18n.t("Create or edit CRON or time wizard"),style:Se.toolbarButtons,onClick:()=>this.setState({showCron:!0}),size:"medium",children:p.jsx(ik,{})},"select-cron"):null,this.scripts[this.state.selected]&&this.scripts[this.state.selected].engineType!=="Blockly"&&this.scripts[this.state.selected].engineType!=="Rules"?p.jsx(y.IconButton,{"aria-label":"AI",title:b.I18n.t("AI code generator"),style:Se.toolbarButtons,size:"medium",onClick:()=>this.setState({openAiDialog:!0}),children:p.jsx(k0,{})},"ai"):null,p.jsx(y.IconButton,{"aria-label":"Show astronomical events",title:b.I18n.t("Show astronomical events"),style:Se.toolbarButtons,disabled:!s,onClick:()=>{this.setState({showAstro:!0,astroEvents:null}),this.props.socket.sendTo(this.scripts[this.state.selected].engine.replace("system.adapter.",""),"calcAstroAll",{}).then(u=>this.setState({astroEvents:u}))},size:"medium",children:p.jsx(nk,{})},"show-astro"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"select ID",title:b.I18n.t("Insert object ID"),style:Se.toolbarButtons,onClick:()=>this.setState({showSelectId:!0}),size:"medium",children:p.jsx(rk,{})},"select-id"),this.state.blockly&&!this.state.rules&&this.state.showCompiledCode&&p.jsx(y.Button,{color:"grey","aria-label":"convert to javascript",title:b.I18n.t("Convert blockly to javascript for ever."),onClick:()=>this.onConvertBlockly2JS(),children:"Blockly=>JS"},"convert2js"),this.state.rules&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Export Blocks",title:b.I18n.t("Export blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToRules("export"),size:"medium",children:p.jsx(Vl,{})},"export"),this.state.rules&&!this.state.showCompiledCode&&p.jsx(y.IconButton,{"aria-label":"Import Blocks",title:b.I18n.t("Import blocks"),style:Se.toolbarButtons,onClick:()=>this.sendCommandToRules("import"),size:"medium",children:p.jsx(Zp,{})},"import"),this.props.expertMode&&!l&&(this.props.debugMode||!this.state.blockly&&!this.state.rules||(this.state.blockly||this.state.rules)&&this.state.showCompiledCode)&&p.jsx(y.IconButton,{style:Se.toolbarButtons,color:this.props.debugMode?"primary":"default",disabled:!this.props.debugMode&&!s,onClick:()=>{!this.props.debugMode&&i?this.setState({askAboutDebug:!0}):this.props.onDebugModeChange(!this.props.debugMode)},size:"medium",children:p.jsx(wr,{style:{fontSize:32}})}),(this.state.blockly||this.state.rules)&&p.jsx(y.Button,{"aria-label":"blockly",title:b.I18n.t("Show javascript code"),className:"button-js-code",color:this.state.showCompiledCode?"secondary":"inherit",disabled:this.props.debugMode,style:{...Se.toolbarButtons,...this.props.debugMode?Se.toolbarButtonsDisabled:void 0,padding:"0 5px"},onClick:()=>{this.props.debugMode||(this.setState({showCompiledCode:!this.state.showCompiledCode}),this.state.isTourOpen&&this.state.tourStep===ws.showJavascript&&this.setState({tourStep:ws.switchBackToRules}),this.state.isTourOpen&&this.state.tourStep===ws.switchBackToRules&&this.setState({tourStep:ws.saveTheScript}))},children:p.jsx("img",{alt:this.state.blockly?"blockly2js":"rules2js",src:this.state.blockly?p0:g0})},"blockly-code"),p.jsx(y.IconButton,{disabled:this.props.debugMode,"aria-label":"Debug menu",title:b.I18n.t("Debug options"),style:Se.toolbarButtons,onClick:u=>this.setState({showDebugMenu:!0,menuDebugAnchorEl:u.currentTarget}),size:"medium",children:p.jsx(y.Badge,{style:Se.badgeMargin,badgeContent:this.getDebugBadge(),children:p.jsx(ak,{})})},"debug")]},"toolbar1")}return null}getScriptEditor(){return!this.props.debugMode&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly!==null&&(!this.state.blockly||this.state.showCompiledCode)&&(!this.state.rules||this.state.showCompiledCode)?(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),p.jsx(y.Box,{sx:Se.editorDiv,children:p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(v0,{name:this.state.selected,adapterName:this.props.adapterName,insert:this.state.insert,onInserted:()=>this.setState({insert:""}),onForceSave:()=>this.onSave(),searchText:this.state.searchText,onRegisterSelect:s=>this.onRegisterSelect(s),readOnly:this.state.showCompiledCode,changed:this.state.changed[this.state.selected],code:this.scripts[this.state.selected].source||"",isDark:this.state.themeType==="dark",socket:this.props.socket,runningInstances:this.state.runningInstances,triggerPrettier:this.state.triggerPrettier,onChange:s=>this.onChange({script:s}),language:this.scripts[this.state.selected].engineType==="TypeScript/ts"?"typescript":"javascript"},"scriptEditor1")})},"scriptEditorDiv")):null}getBlocklyEditor(){return!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly&&!this.state.showCompiledCode&&this.state.visible?(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),p.jsx(y.Box,{sx:Se.editorDiv,children:p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(f0,{command:this.state.cmdToBlockly,themeType:this.state.themeType,searchText:this.state.searchText,code:this.scripts[this.state.selected].source||"",scriptId:this.state.selected,onChange:s=>this.onChange({script:s})},"BlocklyEditor")})},"blocklyEditorDiv")):null}getRulesEditor(){var s,i;if(!this.props.debugMode&&this.state.instancesLoaded&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.rules&&!this.state.showCompiledCode&&this.state.visible){this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common));const r=!!this.state.selected&&!!((s=this.scripts[this.state.selected])!=null&&s.engine)&&this.state.runningInstances[this.scripts[this.state.selected].engine],l=!!this.state.selected&&((i=this.scripts[this.state.selected])==null?void 0:i.enabled);return p.jsx(y.Box,{sx:Se.editorDiv,children:p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx($0,{scriptId:this.state.selected,setTourStep:this.setTourStep,tourStep:this.state.tourStep,isTourOpen:this.state.isTourOpen,changed:this.state.changed[this.state.selected],running:r&&l,command:this.state.cmdToRules,themeType:this.state.themeType,themeName:this.props.themeName,theme:this.props.theme,searchText:this.state.searchText,resizing:this.props.resizing,code:this.scripts[this.state.selected].source||"",onChange:u=>this.onChange({script:u})},"flowEditor")})},"flowEditorDiv")}return null}getConfirmDialog(){return this.state.confirm?p.jsx(b.DialogConfirm,{text:this.state.confirm,onClose:s=>{if(this.confirmCallback){const i=this.confirmCallback;this.confirmCallback=null,i(s)}this.setState({confirm:""})}},"dialogConfirm1"):null}getSelectIdDialog(){var s;if(this.state.showSelectId){const i=["state","channel","device","adapter","instance","enum","host","config","script","user","group"],r=["adapter","instance","enum","host","config","script","user","group"];let l=this.selectId.callback?this.selectId.initValue||"":this.getSelect&&this.getSelect()||"",u=l.indexOf("/*");u!==-1&&(l=l.substring(0,u)),u=l.indexOf("//"),u!==-1&&(l=l.substring(0,u));let d=l.match(/"([^"]+)"/);return d&&(l=d[1]),d=l.match(/'([^']+)'/),d&&(l=d[1]),p.jsx(b.DialogSelectID,{theme:this.props.theme,imagePrefix:"../..",themeName:this.props.themeName,themeType:this.state.themeType,socket:this.props.socket,selected:l,expertMode:this.selectId.type&&this.selectId.type!=="all"&&r.includes(this.selectId.type)?!0:void 0,types:((s=this.selectId)==null?void 0:s.type)==="all"?i:[this.selectId.type||"state"],onClose:()=>{this.setState({showSelectId:!1}),this.selectId.callback&&(this.selectId.callback=null)},onOk:(g,m)=>{this.selectId.initValue=null,this.selectId.callback?(this.selectId.callback(g),this.selectId.callback=null):this.setState({insert:`'${g}'/*${m}*/`})}},"dialogSelectID1")}return null}getCronDialog(){return this.state.showCron?p.jsx(b.DialogCron,{theme:this.props.theme,cron:this.cron.callback?this.cron.initValue||"":this.getSelect?this.getSelect():"* * * * *",onClose:()=>this.setState({showCron:!1}),onOk:s=>{this.cron.initValue=null,this.cron.callback?(this.cron.callback(s),this.cron.callback=null):this.setState({insert:`'${s}'`})}},"dialogCron1"):null}getAstroDialog(){return this.state.showAstro?p.jsxs(y.Dialog,{open:!0,onClose:()=>this.setState({showAstro:!1}),children:[p.jsx(y.DialogTitle,{children:b.I18n.t("Astronomical events today")}),p.jsx(y.DialogContent,{children:this.state.astroEvents?p.jsx(y.TableContainer,{component:y.Paper,children:p.jsxs(y.Table,{size:"small",children:[p.jsx(y.TableHead,{children:p.jsxs(y.TableRow,{children:[p.jsx(y.TableCell,{children:b.I18n.t("Name")}),p.jsx(y.TableCell,{children:b.I18n.t("Server time")}),p.jsx(y.TableCell,{children:b.I18n.t("Description")})]})}),p.jsx(y.TableBody,{children:Object.keys(this.state.astroEvents).map(s=>{var i,r,l,u;return p.jsxs(y.TableRow,{children:[p.jsx(y.TableCell,{component:"th",scope:"row",children:s.startsWith("next")?"":s}),p.jsx(y.Tooltip,{title:`${b.I18n.t("Local time")}: ${(i=this.state.astroEvents)!=null&&i[s].isValidDate?new Date((r=this.state.astroEvents)==null?void 0:r[s].date).toLocaleTimeString():"n/a"}`,children:p.jsx(y.TableCell,{align:"right",children:(l=this.state.astroEvents)!=null&&l[s].isValidDate?(u=this.state.astroEvents)==null?void 0:u[s].serverTime:"n/a"})}),p.jsx(y.TableCell,{children:b.I18n.t(s)})]},s)})})]})}):p.jsx(y.LinearProgress,{})}),p.jsx(y.DialogActions,{children:p.jsx(y.Button,{variant:"contained",onClick:()=>this.setState({showAstro:!1}),color:"primary",startIcon:p.jsx(Cr,{}),children:b.I18n.t("Close")})})]},"dialogAstro"):null}getEditorDialog(){return this.state.showScript?p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(y0,{adapterName:this.props.adapterName,source:this.scriptDialog.initValue||"",args:this.scriptDialog.args?this.scriptDialog.args.join(", "):"",isReturn:this.scriptDialog.isReturn,socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,onClose:s=>{this.scriptDialog.initValue=null,this.scriptDialog.callback&&(s!==!1&&this.scriptDialog.callback(s||""),this.scriptDialog.callback=null),this.setState({showScript:!1})}},"scriptEditorDialog")}):null}getToast(){return p.jsx(y.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!!this.state.toast,autoHideDuration:6e3,onClose:()=>this.setState({toast:""}),ContentProps:{"aria-describedby":"message-id"},message:p.jsx("span",{id:"message-id",children:this.state.toast}),action:[p.jsx(y.IconButton,{"aria-label":"close",color:"inherit",style:Se.closeToast,onClick:()=>this.setState({toast:""}),size:"medium",children:p.jsx(Cr,{})},"close")]},"toast")}setTourStep=s=>this.setState({tourStep:s});getTour(){return this.state.instancesLoaded&&this.state.selected&&this.props.isAnyRulesExists===1&&this.props.objects[this.state.selected]&&this.state.rules&&this.state.visible?p.jsx(Zg,{steps:m0,isOpen:this.state.isTourOpen,onRequestClose:()=>{this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true"),this.props.socket.setState("javascript.0.variables.rulesTour",{val:!0,ack:!0})},goToStep:this.state.tourStep},"tour"):null}getDebug(){return this.props.debugMode?this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].engine&&this.state.runningInstances[this.scripts[this.state.selected].engine]?p.jsx(V.Suspense,{fallback:p.jsx(sn,{}),children:p.jsx(b0,{runningInstances:this.state.runningInstances,adapterName:this.props.adapterName,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,src:this.props.debugInstance?this.props.debugInstance.adapter:this.state.selected,debugInstance:this.props.debugInstance},"debugger")}):(setTimeout(()=>this.props.onDebugModeChange(!1)),null):null}render(){return this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly===null&&this.state.rules===null&&(this.scripts[this.state.selected]=this.scripts[this.state.selected]||JSON.parse(JSON.stringify(this.props.objects[this.state.selected].common)),setTimeout(()=>{const s={blockly:this.scripts[this.state.selected].engineType==="Blockly",rules:this.scripts[this.state.selected].engineType==="Rules",showCompiledCode:!1,debugEnabled:this.scripts[this.state.selected].debug,verboseEnabled:this.scripts[this.state.selected].verbose};this.removeNonExistingScripts(null,s),this.setState(s)},100)),[this.getTabs(),this.getToolbar(),this.getScriptEditor(),this.getAskAboutDebug(),this.getBlocklyEditor(),this.getRulesEditor(),this.getDebug(),this.getConfirmDialog(),this.getSelectIdDialog(),this.getCronDialog(),this.getEditorDialog(),this.getAstroDialog(),this.getDebugMenu(),this.renderOpenAiDialog(),this.getToast(),this.getTour()]}}const Pt={dialog:{height:"95%"},dropzone:{marginTop:20,width:"100%",borderWidth:5,borderStyle:"dashed",borderColor:"#d0cccc",textAlign:"center",boxSizing:"border-box",paddingTop:45,borderRadius:10,height:"calc(100% - 10px)"},dropzoneDiv:{width:"100%",height:"100%"},dropzoneRejected:{borderColor:"#970000"},dropzoneAccepted:{borderColor:"#17cd02"},icon:{height:"30%",width:"30%",color:"#eeeeee",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:0},iconError:{color:"#ffc3c6"},iconOk:{color:"#aaeebc"},text:{top:"50%",left:"50%",transform:"translate(-50%,-50%)",color:"#868686",position:"absolute",zIndex:1}};class Qg extends X.Component{constructor(s){super(s),this.state={error:"",imageStatus:""}}componentDidMount(){setTimeout(()=>{var s;try{(s=window.document.getElementById("import-text-area"))==null||s.focus()}catch{}},100)}handleCancel(){this.props.onClose()}static readFileDataUrl(s,i){const r=new FileReader;r.onload=()=>{i(null,{data:r.result,name:s.name})},r.onabort=()=>{console.error("file reading was aborted"),i(b.I18n.t("file reading was aborted"))},r.onerror=l=>{console.error("file reading has failed"),i(b.I18n.t("file reading has failed: %s",l))},r.readAsDataURL(s)}handleDropFile(s){if(!(s!=null&&s.length))return;const i=s[s.length-1];i&&Qg.readFileDataUrl(i,(r,l)=>{var u;r||!l?this.setState({error:r||"No data"}):this.props.onClose(((u=l.data)==null?void 0:u.toString())||"")})}render(){const s={...Pt.dropzone,...this.state.imageStatus==="accepted"?Pt.dropzoneAccepted:this.state.imageStatus==="rejected"?Pt.dropzoneRejected:void 0};return p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":Pt.dialog},fullWidth:!0,open:!0,"aria-labelledby":"import-dialog-title",PaperProps:{style:{minHeight:"90%",maxHeight:"90%"}},children:[p.jsx(y.DialogTitle,{id:"import-dialog-title",children:b.I18n.t("Import scripts")}),p.jsxs(y.DialogContent,{children:[p.jsx(B_,{maxSize:5e7,onDrop:(i,r)=>{var l,u,d;i.length?this.handleDropFile(i):window.alert(((d=(u=(l=r==null?void 0:r[0])==null?void 0:l.errors)==null?void 0:u[0])==null?void 0:d.message)||b.I18n.t("ra_Cannot upload"))},multiple:!1,accept:{"application/zip":[],"application/x-zip-compressed":[]},children:({getRootProps:i,getInputProps:r,isDragActive:l,isDragReject:u})=>u?(this.state.imageStatus!=="rejected"&&this.setState({imageStatus:"rejected"}),p.jsxs("div",{style:{...s,...Pt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:Pt.text,children:b.I18n.t("Some files will be rejected")},"text"),p.jsx($c,{style:{...Pt.icon,...Pt.iconError}},"icon")]})):l?(this.state.imageStatus!=="accepted"&&this.setState({imageStatus:"accepted"}),p.jsxs("div",{style:{...s,...Pt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:Pt.text,children:b.I18n.t("All files will be accepted")},"text"),p.jsx(Cg,{style:{...Pt.icon,...Pt.iconOk}},"icon")]})):(this.state.imageStatus!=="wait"&&this.setState({imageStatus:"wait"}),p.jsxs("div",{style:{...s,...Pt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:Pt.text,children:b.I18n.t("Drop some files here or click...")},"text"),p.jsx(P_,{style:Pt.icon},"icon")]}))},"image-drop"),this.state.error?p.jsx(kc,{text:this.state.error,onClose:()=>this.setState({error:""})}):null]}),p.jsx(y.DialogActions,{children:p.jsx(y.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:p.jsx(lo,{}),children:b.I18n.t("Close")})})]})}}var em={exports:{}},S0=em.exports;(function(a,s){(function(i,r){a.exports=r()})(S0,function(){var i={},r,l,u,d,g,m,f,v,w,_,S,k,C,E,A,R,O,Z,ae,se,ge,K,je,Me,qe,ce,de,J,we,me,Fe,Y,et,q,oe,F,H,U,le,x,pe,W,ke,ve,Ie,fe,Ge,Ye,Ce,Ee,be,Le,mt,Q,lt,ze,_t,ye,tt,Us,wt,Ct,Lc,L,$e,Gr,st,om,Ve,Do,Vr,Ao,Ro,Bc,$n,Kr,Yr,bn,im,Pc,ks,co,Fc,jc,Jr,zc,vn,Xr,Uc,Hc,nm,rm,am,gi,lm,qr,cm,yn,Zr,um,Qr,dm,ea,Wc,Gc,ta,sa,oa,_n,hm,mi,wn,ia,pm,gm,mm,uo,Tt,Cn,Vc,ps,Hs,fm,Kc,na,Yc,$m,Jc,Tn,bm,ra,vm,ym,aa,_m,fi,wm,Xc,la,qc,Zc,Cm,ca,$i,ua,Tm,Qc,eu,km,Sm,Oo,Em,kn,Vt,Im,xm,Dm,Am,Rm,Om,Mm,tu,Ws,bi,su,Nm,Lm,Bm,Pm,Fm,jm,zm,Um,Hm,ou,Wm,vi,da,Gm,yi,iu,nu,ru,Sn,ha,au,Vm,lu,cu,uu,du,hu,pu,gu,Km,En,mu,pa,ga,Ss,fu,$u,In,bu,vu,Ym,ma,yu,Jm,Xm,qm,Zm,Qm,_i,_u,wu,wi,fa,ef,tf,Cu,Tu,Gs,ku,Su,sf,of,nf,rf,Eu,af,Iu,lf,Mo,xn,$a,ba,No,xu,va,Du,dt,cf,Ci,Lo,uf,Au,ya,Ti,Ru,Bo,Dn,Ou,Mu,df,hf,pf,Nu,gf,Lu,An,mf,ff,$f,bf,Rn,Bu,Pu,_a,wa,vf,On,Fu,Mn,yf,_f,ho,ju,Es,wf,Cf,zu,Tf,Po,Uu,kf,Sf,Ef,If,xf,Hu,Df,Af,Ca,Rf,Of,Wu,Ta,Gu,ka,Vu,Ku,ki,Fo,Vs,Is,Mf,Nf,Lf,Yu,Sa,Bf,Pf,Ff,Ju,Ea,Xu,Ia,jf,zf,Uf,Hf,he,jt,bt,rt,xs,Si,re,ht,qu,Wf,po,xa,Da,Zu,Gf,Qu,Aa,ed,td,Vf,sd,Kf,Ra,Yf,Jf,Xf,qf,Zf,od,Qf,Nn,Ln,e$,id,nd,rd,ad,Oa,ld,t$,s$,o$,Ei,cd,i$,Ma,Qt,n$,go,ud,r$,Bn,dd,hd,pd,gd,md,fd,$d,bd,vd,yd,a$,l$,c$,u$,d$,h$,Na,p$,g$,_d,wd,Cd,Td,kd,Sd,Ed,La,Pn,Id,m$,xd,Dd,Ad,Rd,Od,Md,Nd,Ld,Bd,Pd,f$,$$,b$,Fd,v$,y$,_$,w$,C$,j;r=function(e,t,o,n){if(!(e instanceof z)&&typeof e!="string"||`${e}`.trim()==="")throw Error('Invalid type "'+e+'". The type must be a non-empty string or a Blockly.registry.Type.');if(e=`${e}`.toLowerCase(),typeof t!="string"||t.trim()==="")throw Error('Invalid name "'+t+'". The name must be a non-empty string.');const c=t.toLowerCase();if(!o)throw Error("Can not register a null value");let h=mo[e],$=Ba[e];if(h||(h=mo[e]=Object.create(null),$=Ba[e]=Object.create(null)),l(e,o),!n&&h[c]&&h[c]!==o)throw Error('Name "'+c+'" with type "'+e+'" already registered.');h[c]=o,$[c]=t},l=function(e,t){switch(e){case String(z.FIELD):if(typeof t.fromJson!="function")throw Error('Type "'+e+'" must have a fromJson function')}},u=function(e,t){e=`${e}`.toLowerCase(),t=t.toLowerCase();const o=mo[e];o&&o[t]?(delete mo[e][t],delete Ba[e][t]):console.warn("Unable to unregister ["+t+"]["+e+"] from the registry.")},d=function(e,t,o){e=`${e}`.toLowerCase(),t=t.toLowerCase();const n=mo[e];if(!n||!n[t]){if(t="Unable to find ["+t+"]["+e+"] in the registry.",o)throw Error(t+" You must require or register a "+e+" plugin.");return console.warn(t),null}return n[t]},g=function(e,t){return e=`${e}`.toLowerCase(),t=t.toLowerCase(),(e=mo[e])?!!e[t]:!1},m=function(e,t,o){return d(e,t,o)},f=function(e,t,o){return d(e,t,o)},v=function(e,t,o){e=`${e}`.toLowerCase();var n=mo[e];if(!n){if(n=`Unable to find [${e}] in the registry.`,o)throw Error(`${n} You must require or register a ${e} plugin.`);return console.warn(n),null}if(!t)return n;e=Ba[e],o=Object.create(null);for(const c of Object.keys(n))o[e[c]]=n[c];return o},w=function(e,t,o){return t=t.plugins[String(e)]||Ds,typeof t=="function"?t:m(e,t,o)},_=function(e,t,o,n){e=e+" was deprecated in "+t+" and will be deleted in "+o+".",n&&(e+=` +Use `+n+" instead."),k$.has(e)||(k$.add(e),console.warn(e))},S=function(){return"blockly-"+(MC++).toString(36)},k=function(){return I$.genUid()},C=function(e){return e.type===M.BLOCK_CREATE},E=function(e){return e.type===M.BLOCK_DELETE},A=function(e){return e.type===M.BLOCK_CHANGE},R=function(e){return e.type===M.BLOCK_FIELD_INTERMEDIATE_CHANGE},O=function(e){return e.type===M.BLOCK_MOVE},Z=function(e){return e.type===M.CLICK},ae=function(e){return e.type===M.BUBBLE_OPEN},se=function(e){return e.type===M.VIEWPORT_CHANGE},i.setRecordUndo$$module$build$src$core$events$utils=function(e){Fn=e},ge=function(){return Fn},K=function(e){D$.fireInternal(e)},je=function(e){if(J()){if(!Ys.length)try{requestAnimationFrame(()=>{setTimeout(Me,0)})}catch{setTimeout(Me,0)}qe(e)}},Me=function(){const e=ce(Ys,!0);Ys.length=0;for(const t of e){if(!t.workspaceId)continue;let o;(o=q(t.workspaceId))==null||o.fireChangeListener(t)}},qe=function(e){if(A(e)&&e.element==="mutation"){let t;for(t=Ys.length;0!n.isNull()),t||e.reverse(),e},de=function(){for(let e=0,t;t=Ys[e];e++)t.recordUndo=!1},i.disable$$module$build$src$core$events$utils=function(){zd++},i.enable$$module$build$src$core$events$utils=function(){zd--},J=function(){return zd===0},i.getGroup$$module$build$src$core$events$utils=function(){return x$},i.setGroup$$module$build$src$core$events$utils=function(e){D$.setGroupInternal(e)},we=function(e){x$=typeof e=="boolean"?e?k():"":e},me=function(e){const t=[];e=e.getDescendants(!1);for(let o=0,n;n=e[o];o++)t[o]=n.id;return t},Fe=function(e,t){const o=Y(e.type);if(!o)throw Error("Unknown event type.");return o.fromJson(e,t)},Y=function(e){const t=m(z.EVENT,e);if(!t)throw Error(`Event type ${e} not found in registry.`);return t},et=function(e){if((O(e)||C(e))&&e.workspaceId){var t=q(e.workspaceId);if(!e.blockId)throw Error("Encountered a blockEvent without a proper blockId");if(e=t.getBlockById(e.blockId)){const o=Fn;try{Fn=!1;const n=e.getParent();if(n&&!n.hasDisabledReason(Ud)){const c=e.getDescendants(!1);for(let h=0,$;$=c[h];h++)$.setDisabledReason(!1,Ud)}else if((e.outputConnection||e.previousConnection)&&!t.isDragging())do e.setDisabledReason(!0,Ud),e=e.getNextBlock();while(e)}finally{Fn=o}}}},q=function(e){return jn[e]||null},oe=function(){const e=[];for(const t in jn)e.push(jn[t]);return e},F=function(e){jn[e.id]=e},H=function(e){delete jn[e.id]},U=function(){return A$},le=function(e){A$=e},x=function(){return jo},i.setSelected$$module$build$src$core$common=function(e){if(jo!==e){var t,o,n,c,h,$,T=new(Y(M.SELECTED))((n=(t=jo)==null?void 0:t.id)!=null?n:null,(c=e==null?void 0:e.id)!=null?c:null,($=(h=e==null?void 0:e.workspace.id)!=null?h:(o=jo)==null?void 0:o.workspace.id)!=null?$:"");K(T);var B;(B=jo)==null||B.unselect(),jo=e;var ie;(ie=jo)==null||ie.select()}},pe=function(){return R$},W=function(e){R$=e},ke=function(e){for(;e.options.parentWorkspace;)e=e.options.parentWorkspace;const t=e.getParentSvg(),o=e.getCachedParentSvgSize();var n=t.parentElement;if(n instanceof HTMLElement){var c=n.offsetWidth;n=n.offsetHeight,o.width!==c&&(t.setAttribute("width",c+"px"),e.setCachedParentSvgSize(c,null)),o.height!==n&&(t.setAttribute("height",n+"px"),e.setCachedParentSvgSize(null,n)),e.resize()}},ve=function(e,t){const o=Object.create(null),n=e.getDescendants(!0);t&&(e=e.getNextBlock())&&(e=n.indexOf(e),n.splice(e,n.length-e));for(let c=0,h;h=n[c];c++)o[h.type]?o[h.type]++:o[h.type]=1;return o},Ie=function(e){return function(){this.jsonInit(e)}},fe=function(e){O$.defineBlocksWithJsonArrayInternal(e)},Ge=function(e){i.defineBlocks$$module$build$src$core$common(i.createBlockDefinitionsFromJsonArray$$module$build$src$core$common(e))},i.createBlockDefinitionsFromJsonArray$$module$build$src$core$common=function(e){const t={};for(let o=0;o>>/g,e),Xd="",e=document.createElement("style"),e.id="blockly-common-style",t=document.createTextNode(t),e.appendChild(t),document.head.insertBefore(e,document.head.firstChild)))},L=function(e,t,o){e=document.createElementNS(Un,`${e}`);for(const n in t)e.setAttribute(n,`${t[n]}`);return o&&o.appendChild(e),e},$e=function(e,t){return t=t.split(" "),t.every(o=>e.classList.contains(o))?!1:(e.classList.add(...t),!0)},Gr=function(e,t){e.classList.remove(...t.split(" "))},st=function(e,t){return t=t.split(" "),t.every(o=>!e.classList.contains(o))?!1:(e.classList.remove(...t),!0)},om=function(e,t){return e.classList.contains(t)},Ve=function(e){return e&&e.parentNode?e.parentNode.removeChild(e):null},Do=function(e,t){const o=t.nextSibling;if(t=t.parentNode,!t)throw Error("Reference node has no parent.");o?t.insertBefore(e,o):t.appendChild(e)},Vr=function(e,t){e.style.transform=t,e.style["-webkit-transform"]=t},Ao=function(){Zd++,ms||(ms=Object.create(null))},Ro=function(){Zd--,Zd||(ms=null)},Bc=function(e){const t=e.textContent+` +`+e.className.baseVal;let o;if(ms&&(o=ms[t]))return o;try{o=e.getComputedTextLength()}catch{return 8*e.textContent.length}return ms&&(ms[t]=o),o},$n=function(e,t,o,n){return Kr(e,t+"pt",o,n)},Kr=function(e,t,o,n){const c=e.textContent;e=c+` +`+e.className.baseVal;var h;return ms&&(h=ms[e])||(Ha||(h=document.createElement("canvas"),h.className="blocklyComputeCanvas",document.body.appendChild(h),Ha=h.getContext("2d")),Ha.font=o+" "+t+" "+n,h=c?Ha.measureText(c).width:0,ms&&(ms[e]=h)),h},Yr=function(e,t,o,n){const c=document.createElement("span");c.style.font=o+" "+t+" "+n,c.textContent=e,e=document.createElement("div"),e.style.width="1px",e.style.height="0",t=document.createElement("div"),t.style.display="flex",t.style.position="fixed",t.style.top="0",t.style.left="0",t.appendChild(c),t.appendChild(e),document.body.appendChild(t),o={height:0,baseline:0};try{t.style.alignItems="baseline",o.baseline=e.offsetTop-c.offsetTop,t.style.alignItems="flex-end",o.height=e.offsetTop-c.offsetTop}finally{document.body.removeChild(t)}return o},bn=function(e){return Y$.getSizeInternal(e)},im=function(e){if(ks(e,"display")!=="none")return Pc(e);const t=e.style,o=t.display,n=t.visibility,c=t.position;t.visibility="hidden",t.position="absolute",t.display="inline";const h=e.offsetWidth;return e=e.offsetHeight,t.display=o,t.position=c,t.visibility=n,new Ne(h,e)},Pc=function(e){return new Ne(e.offsetWidth,e.offsetHeight)},ks=function(e,t){return e=window.getComputedStyle(e),e[t]||e.getPropertyValue(t)},co=function(e){const t=new G(0,0);e=e.getBoundingClientRect();var o=document.documentElement;return o=new G(window.pageXOffset||o.scrollLeft,window.pageYOffset||o.scrollTop),t.x=e.left+o.x,t.y=e.top+o.y,t},Fc=function(){const e=document.body,t=document.documentElement;return new G(e.scrollLeft||t.scrollLeft,e.scrollTop||t.scrollTop)},jc=function(e){const t=parseFloat(ks(e,"borderLeftWidth")),o=parseFloat(ks(e,"borderRightWidth")),n=parseFloat(ks(e,"borderTopWidth"));return e=parseFloat(ks(e,"borderBottomWidth")),new Je(n,e,t,o)},Jr=function(e,t,o){e=zc(e,t,o),t.scrollLeft=e.x,t.scrollTop=e.y},zc=function(e,t,o){var n=co(e),c=co(t),h=jc(t);const $=n.x-c.x-h.left;return n=n.y-c.y-h.top,c=Pc(e),e=t.clientWidth-c.width,c=t.clientHeight-c.height,h=t.scrollLeft,t=t.scrollTop,o?(h+=$-e/2,t+=n-c/2):(h+=Math.min($,Math.max($-e,0)),t+=Math.min(n,Math.max(n-c,0))),new G(h,t)},vn=function(e){const t=new G(0,0);var o=e.x&&e.getAttribute("x");const n=e.y&&e.getAttribute("y");return o&&(t.x=parseInt(o)),n&&(t.y=parseInt(n)),(o=(o=e.getAttribute("transform"))&&o.match(J$))&&(t.x+=Number(o[1]),o[3]&&(t.y+=Number(o[3]))),(e=e.getAttribute("style"))&&e.includes("translate")&&(e=e.match(X$))&&(t.x+=Number(e[1]),e[3]&&(t.y+=Number(e[3]))),t},Xr=function(e){let t=0,o=0;for(;e;){const n=vn(e);if(t+=n.x,o+=n.y,(" "+(e.getAttribute("class")||"")+" ").includes(" injectionDiv "))break;e=e.parentNode}return new G(t,o)},Uc=function(){const e=Fc();return new Je(e.y,document.documentElement.clientHeight+e.y,e.x,document.documentElement.clientWidth+e.x)},Hc=function(){const e=document.documentElement,t=window;return new G(t.pageXOffset||e.scrollLeft,t.pageYOffset||e.scrollTop)},nm=function(e,t){var o=t.x;t=t.y;const n=e.getInjectionDiv().getBoundingClientRect();return o=new G(o-n.left,t-n.top),t=e.getOriginOffsetInPixels(),G.difference(o,t).scale(1/e.scale)},rm=function(e,t){var o=t.scale(e.scale);t=o.x,o=o.y;const n=e.getInjectionDiv().getBoundingClientRect();return e=e.getOriginOffsetInPixels(),new G(t+n.left+e.x,o+n.top+e.y)},am=function(e){({document:Ga=Ga,DOMParser:Hn=Hn,XMLSerializer:Wn=Wn}=e),Wa=new Hn,Qd=new Wn},i.createElement$$module$build$src$core$utils$xml=function(e){return Ga.createElementNS(q$,e)},i.createTextNode$$module$build$src$core$utils$xml=function(e){return Ga.createTextNode(e)},i.textToDom$$module$build$src$core$utils$xml=function(e){let t=Wa.parseFromString(e,"text/xml");if(t&&t.documentElement&&!t.getElementsByTagName("parsererror").length)return t.documentElement;if((t=Wa.parseFromString(e,"text/html"))&&t.body.firstChild&&t.body.firstChild.nodeName.toLowerCase()==="xml")return t.body.firstChild;throw Error(`DOMParser was unable to parse: ${e}`)},gi=function(e){return lm(Qd.serializeToString(e))},lm=function(e){return e.replace(FC,t=>`&#${t.charCodeAt(0)};`)},qr=function(e){return e?((e instanceof Element||typeof e=="string")&&(e=Gc(e),e=dm(e)),cm(e),e):null},cm=function(e){const t=e.kind;if(e=e.contents,t&&t!==Z$&&t!==eh)throw Error("Invalid toolbox kind "+t+". Please supply either "+Z$+" or "+eh);if(!e)throw Error("Toolbox must have a contents attribute.")},yn=function(e){return e?e.contents?e.contents:Array.isArray(e)&&0o.kind.toUpperCase()==="CATEGORY").length},Qr=function(e){return e&&e.contents?!!e.contents.filter(function(t){return t.kind.toUpperCase()==="CATEGORY"}).length:!1},dm=function(e){const t={contents:ea(e)};return e instanceof Node&&Wc(e,t),t},ea=function(e){const t=[];let o=e.childNodes;o||(o=e);for(let n=0,c;c=o[n];n++){if(!c.tagName)continue;e={};const h=c.tagName.toUpperCase();e.kind=h,h==="BLOCK"?e.blockxml=c:c.childNodes&&0 document.")}else e instanceof Element&&(t=e);return t},ta=function(e,t,o,n,c,h){const $=h.scrollbar&&h.scrollbar.canScrollVertically();return e.horizontal===Di.LEFT?(o=c.absoluteMetrics.left+o,$&&h.RTL&&(o+=pt.scrollbarThickness)):(o=c.absoluteMetrics.left+c.viewMetrics.width-t.width-o,$&&!h.RTL&&(o-=pt.scrollbarThickness)),e.vertical===Zs.TOP?e=c.absoluteMetrics.top+n:(e=c.absoluteMetrics.top+c.viewMetrics.height-t.height-n,h.scrollbar&&h.scrollbar.canScrollHorizontally()&&(e-=pt.scrollbarThickness)),new Je(e,e+t.height,o,o+t.width)},sa=function(e,t){return{horizontal:t.toolboxMetrics.position===xe.LEFT||e.horizontalLayout&&!e.RTL?Di.RIGHT:Di.LEFT,vertical:t.toolboxMetrics.position===xe.BOTTOM?Zs.TOP:Zs.BOTTOM}},oa=function(e,t,o,n){const c=e.left,h=e.right-e.left,$=e.bottom-e.top;for(let T=0;Th.id!==e.id).map(h=>h.getRelativeToSurfaceXY());for(;mm(G.sum(o,n),c);)n.translate(t.RTL?-30:30,30);e.moveTo(G.sum(o,n))},mm=function(e,t){return t.some(o=>1>=Math.abs(o.x-e.x)&&1>=Math.abs(o.y-e.y))},uo=function(e,t){e.setAttribute(UC,t)},Tt=function(e,t,o){Array.isArray(o)&&(o=o.join(" ")),e.setAttribute(zC+t,`${o}`)},Cn=function(e){return e.saveState!==void 0&&e.loadState!==void 0},Vc=function(e){return Kc(e),fm()?(na(),Promise.resolve()):(Ai||(Ai=new Promise(t=>{lh=t,rb=window.requestAnimationFrame(()=>{na(),t()})})),Ai)},ps=function(){return Ai||Promise.resolve()},Hs=function(e){e||window.cancelAnimationFrame(rb),na(e),!e&&lh&&lh()},fm=function(){return z$},Kc=function(e){rh.add(e),ah.set(e,i.getGroup$$module$build$src$core$events$utils());const t=e.getParent();t?Kc(t):Ja.add(e)},na=function(e){const t=e?new Set([e]):new Set([...Ja].map(h=>h.workspace)),o=[...Ja].filter($m).filter(h=>t.has(h.workspace));for(var n of o)Jc(n);for(const h of t)h.resizeContents();for(var c of o)n=c.getRelativeToSurfaceXY(),c.updateComponentLocations(n);for(const h of o)c=i.getGroup$$module$build$src$core$events$utils(),(n=ah.get(h))&&i.setGroup$$module$build$src$core$events$utils(n),h.bumpNeighbours(),i.setGroup$$module$build$src$core$events$utils(c);for(const h of o)Yc(h);e||(Ai=null)},Yc=function(e){Ja.delete(e),rh.delete(e),ah.delete(e);for(const t of e.getChildren(!1))Yc(t)},$m=function(e){return!e.isDisposed()&&!e.getParent()},Jc=function(e){if(rh.has(e)&&e.initialized){for(const t of e.getChildren(!1))Jc(t);e.renderEfficiently()}},Tn=function(e,t){ab(e,t)},bm=function(e){ab=e},ra=function(e,t){ub.confirmInternal(e,t)},vm=function(e,t){lb(e,t)},ym=function(e){lb=e},aa=function(e,t,o){cb(e,t,o)},_m=function(e){cb=e},fi=function(e){return e.getProcedureDef!==void 0},wm=function(e){return e.getProcedureCall!==void 0&&e.renameProcedure!==void 0},Xc=function(e){return e.getVariableModel!==void 0},i.allUsedVarModels$$module$build$src$core$variables=function(e){e=e.getAllBlocks(!1);const t=new Set;for(let o=0;o1'),n.appendChild(o),t.push(n)),zt.variables_get){e.sort(Yn.compareByName);for(let c=0,h;h=e[c];c++)o=i.createElement$$module$build$src$core$utils$xml("block"),o.setAttribute("type","variables_get"),o.setAttribute("gap","8"),o.appendChild(Oo(h)),t.push(o)}}return t},Zc=function(e){return hb.generateUniqueNameInternal(e)},Cm=function(e){return ca(hh.charAt(0),e.getAllVariableNames())},ca=function(e,t){if(!t.length)return e;const o=hh;let n="",c=o.indexOf(e);for(;;){let h=!1;for(let $=0;$h.getVariableModel().name);if(n&&(o=n.some(h=>h.toLowerCase()===e),n=n.some(h=>h.toLowerCase()===t),o&&n))return c.getName()}return null},Sm=function(e,t,o){e=e.toLowerCase(),t=t.toLowerCase(),o=o.getAllBlocks(!1);for(const c of o){if(!fi(c))continue;o=c.getProcedureDef();var n=o[1];const h=n.some($=>$.toLowerCase()===e);if(n=n.some($=>$.toLowerCase()===t),h&&n)return o[0]}return null},Oo=function(e){const t=i.createElement$$module$build$src$core$utils$xml("field");return t.setAttribute("name","VAR"),t.setAttribute("id",e.getId()),t.setAttribute("variabletype",e.type),e=i.createTextNode$$module$build$src$core$utils$xml(e.name),t.appendChild(e),t},i.getOrCreateVariablePackage$$module$build$src$core$variables=function(e,t,o,n){let c=i.getVariable$$module$build$src$core$variables(e,t,o,n);return c||(c=Em(e,t,o,n)),c},i.getVariable$$module$build$src$core$variables=function(e,t,o,n){const c=e.getPotentialVariableMap();let h=null;if(t&&(h=e.getVariableById(t),!h&&c&&(h=c.getVariableById(t)),h))return h;if(o){if(n===void 0)throw Error("Tried to look up a variable by name without a type");h=e.getVariable(o,n),!h&&c&&(h=c.getVariable(o,n))}return h},Em=function(e,t,o,n){const c=e.getPotentialVariableMap();return o||(o=Zc(e.isFlyout?e.targetWorkspace:e)),c?c.createVariable(o,n,t):e.createVariable(o,n,t)},kn=function(e,t){e=e.getAllVariables();const o=[];if(t.length!==e.length)for(let n=0;n{B.disposed||B.setConnectionTracking(!0)},1)}return T},su=function(e,t,{parentConnection:o,isShadow:n=!1}={}){if(!e.type)throw new pb(e);const c=t.newBlock(e.type,e.id);return c.setShadow(n),Lm(c,e),Bm(c,e),Pm(c,e),Fm(o,c,e),jm(c,e),zm(c,e),Um(c,e),Hm(c,e),Wm(c,t.rendered),c},Nm=function(e,t){if(J())for(e=kn(e,t),t=0;tt&&(t=o[n].length);var c=-1/0;let h,$=1;do{n=c,h=e,e=[],c=o.length/$;let T=1;for(let B=0;Bn);return h},ma=function(e,t,o){const n=[0],c=[];for(var h=0;hn&&(n=T,c=$)}return c?yu(e,c,o):t},Jm=function(e,t){const o=[];for(let n=0;nCb&&Gs()}else Qn!==es&&(clearTimeout(qo),$h=e.pageX,bh=e.pageY,qo=setTimeout(rf,Tb))},Tu=function(){Qn=es=null,Gs()},Gs=function(){Zn&&(Zn=!1,$t&&($t.style.display="none")),qo&&(clearTimeout(qo),qo=0)},ku=function(){Gs(),Bi=!0},Su=function(){Bi=!1},sf=function(){$t&&es&&(typeof el=="function"?el($t,es):of())},of=function(){var e=_i(es);e=i.wrap$$module$build$src$core$utils$string(e,_b),e=e.split(` +`);for(let t=0;to+window.scrollY&&(c-=$t.offsetHeight+2*yh),e?n=Math.max(tl-window.scrollX,n):n+$t.offsetWidth>t+window.scrollX-2*tl&&(n=t-$t.offsetWidth-2*tl),{x:n,y:c}},rf=function(){if(!Bi&&(Qn=es,$t)){$t.textContent="",sf();var e=es.RTL;$t.style.direction=e?"rtl":"ltr",$t.style.display="block",Zn=!0;var{x:t,y:o}=nf(e);$t.style.left=t+"px",$t.style.top=o+"px"}},Eu=function(){return _h},af=function(e){_h=e},Iu=function(){return wh},lf=function(e){wh=e},Mo=function(e){e=`${e}`.toLowerCase().trim();var t=kb[e];if(t||(t=e.substring(0,2)==="0x"?"#"+e.substring(2):e,t=t[0]==="#"?t:"#"+t,/^#[0-9a-f]{6}$/.test(t)))return t;if(/^#[0-9a-f]{3}$/.test(t))return["#",t[1],t[1],t[2],t[2],t[3],t[3]].join("");var o=e.match(/^(?:rgb)?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);return o&&(e=Number(o[1]),t=Number(o[2]),o=Number(o[3]),0<=e&&256>e&&0<=t&&256>t&&0<=o&&256>o)?xn(e,t,o):null},xn=function(e,t,o){return t=e<<16|t<<8|o,16>e?"#"+(16777216|t).toString(16).substr(1):"#"+t.toString(16)},$a=function(e){return e=Mo(e),e?(e=parseInt(e.substr(1),16),[e>>16,e>>8&255,e&255]):[0,0,0]},ba=function(e,t,o){let n=0,c=0,h=0;if(t===0)h=c=n=o;else{const $=Math.floor(e/60),T=e/60-$;e=o*(1-t);const B=o*(1-t*T);switch(t=o*(1-t*(1-T)),$){case 1:n=B,c=o,h=e;break;case 2:n=e,c=o,h=t;break;case 3:n=e,c=B,h=o;break;case 4:n=t,c=e,h=o;break;case 5:n=o,c=e,h=B;break;case 6:case 0:n=o,c=t,h=e}}return xn(Math.floor(n),Math.floor(c),Math.floor(h))},No=function(e,t,o){return e=Mo(e),!e||(t=Mo(t),!t)?null:(e=$a(e),t=$a(t),xn(Math.round(t[0]+o*(e[0]-t[0])),Math.round(t[1]+o*(e[1]-t[1])),Math.round(t[2]+o*(e[2]-t[2]))))},xu=function(e){return ba(e,_h,255*wh)},va=function(e,t,o){const n=[];var c=e.split("");c.push("");var h=0;e=[];let $=null;for(let ie=0;ie=T?(h=2,$=T,(T=e.join(""))&&n.push(T),e.length=0):T==="{"?h=3:(e.push("%",T),h=0);else if(h===2)if("0"<=T&&"9">=T)$+=T;else{var B=void 0;n.push(parseInt((B=$)!=null?B:"",10)),ie--,h=0}else h===3&&(T===""?(e.splice(0,0,"%{"),ie--,h=0):T!=="}"?e.push(T):(h=e.join(""),/[A-Z]\w*/i.test(h)?(T=h.toUpperCase(),(T=T.startsWith("BKY_")?T.substring(4):null)&&T in i.Msg$$module$build$src$core$msg?(h=i.Msg$$module$build$src$core$msg[T],typeof h=="string"?Array.prototype.push.apply(n,va(h,t,o)):t?n.push(`${h}`):n.push(h)):n.push("%{"+h+"}")):n.push("%{"+h+"}"),h=e.length=0))}for((t=e.join(""))&&n.push(t),B=[],e.length=0,c=0;c=o)return{hue:o,hex:ba(o,Eu(),255*Iu())};if(o=Mo(t))return{hue:null,hex:o};throw o='Invalid colour: "'+t+'"',e!==t&&(o+=' (from "'+e+'")'),Error(o)},Lo=function(){return $s},uf=function(e){if($s=e,e===null){let t;(t=document.querySelector("."+ol))==null||t.remove()}},Au=function(){const e=pe()||document.body;document.querySelector("."+ol)?$s=document.querySelector("."+ol):($s=document.createElement("div"),$s.className=ol),e.appendChild($s)},ya=function(e,t,o,n){if(Ti(),Pi=e,sl=o,o=$s){if(o.style.direction=t?"rtl":"ltr",o.style.display="block",!n&&e instanceof Ze){let $;n=($=e.getSourceBlock())==null?void 0:$.workspace}var c;Ch=(c=n)!=null?c:null;var h;e=(h=n)!=null?h:U(),Fi=e.getRenderer().getClassName(),ji=e.getTheme().getClassName(),Fi&&$e(o,Fi),ji&&$e(o,ji)}},Ti=function(){if(Ru()){Pi=null;var e=$s;e&&(e.style.display="none",e.style.left="",e.style.top="",sl&&sl(),sl=null,e.textContent="",Fi&&(st(e,Fi),Fi=""),ji&&(st(e,ji),ji=""),U().markFocused())}},Ru=function(){return!!Pi},Bo=function(e){Pi===e&&Ti()},Dn=function(e){Ch!==null&&Ch!==e||Ti()},Ou=function(e,t,o){$s.style.left=e+"px",$s.style.top=t+"px",$s.style.height=o+"px"},Mu=function(e,t,o,n){const c=hf(e,t,o);e=df(e,t,o,n),0>c?Ou(e,0,o.height+c):Ou(e,c,o.height)},df=function(e,t,o,n){return n?Math.min(Math.max(t.right-o.width,e.left),e.right-o.width):Math.max(Math.min(t.left,e.right-o.width),e.left)},hf=function(e,t,o){return t.bottom+o.height>=e.bottom?t.top-o.height:t.bottom},pf=function(e){return!(e==null||!e.repositionForWindowResize)},Nu=function(){pf(Pi)&&Pi.repositionForWindowResize()||Ti()},gf=function(){return il},Lu=function(e){il=e},An=function(e,t,o,n){if(ya(Sb,o,Bu,n),t.length){var c=mf(t,o,e);nl=c,ff(c,e,o),setTimeout(function(){c.focus()},1),il=null}else Rn()},mf=function(e,t,o){const n=new ih;n.setRole(fs.MENU);for(let c=0;c{setTimeout(()=>{h.callback(h.scope,o)},0)})},{})}return n},ff=function(e,t,o){const n=Uc();t=new Je(t.clientY+n.top,t.clientY+n.top,t.clientX+n.left,t.clientX+n.left),$f(e);const c=e.getSize();o&&(t.left+=c.width,t.right+=c.width,n.left+=c.width,n.right+=c.width),Mu(n,t,c,o),e.focus()},$f=function(e){var t=Lo();if(!t)throw Error("Attempting to create a context menu when widget div is null");t=e.render(t),$e(t,"blocklyContextMenu"),Q(t,"contextmenu",null,bf),e.focus()},bf=function(e){e.preventDefault(),e.stopPropagation()},Rn=function(){Bo(Sb),il=null},Bu=function(){nl&&(nl.dispose(),nl=null)},i.callbackFactory$$module$build$src$core$contextmenu=function(e,t){return()=>{i.disable$$module$build$src$core$events$utils();let o;try{o=t instanceof Element?Po(t,e.workspace):bi(t,e.workspace);const n=e.getRelativeToSurfaceXY();n.x=e.RTL?n.x-i.config$$module$build$src$core$config.snapRadius:n.x+i.config$$module$build$src$core$config.snapRadius,n.y+=2*i.config$$module$build$src$core$config.snapRadius,o.moveBy(n.x,n.y)}finally{i.enable$$module$build$src$core$events$utils()}return J()&&!o.isShadow()&&K(new(Y(M.BLOCK_CREATE))(o)),i.setSelected$$module$build$src$core$common(o),o}},Pu=function(e,t){return t=tt(t,e.getParentSvg(),e.getInverseScreenCTM()),t.x/=e.scale,t.y/=e.scale,t},_a=function(e,t,o){t=Pu(e,t),Ib.set(e,G.difference(o,t))},wa=function(e,t){if(t=Pu(e,t),e=Ib.get(e),!e)throw Error("Drag not initialized");return G.sum(e,t)},vf=function(e,t=!1){const o=i.createElement$$module$build$src$core$utils$xml("xml");var n=Fu(i.allUsedVarModels$$module$build$src$core$variables(e));n.hasChildNodes()&&o.appendChild(n);for(const c of e.getTopComments())o.appendChild(On(c,t));for(e=e.getTopBlocks(!0),n=0;n/g,"<$1$2>")},wf=function(e){e=Es(e).split("<");let t="";for(let o=1;o"&&(t+=" ")}return e=e.join(` +`),e=e.replace(/(<(\w+)\b[^>]*>[^\n]*)\n *<\/\2>/g,"$1"),e.replace(/^\n/,"")},Cf=function(e,t){return t.setResizesEnabled(!1),t.clear(),e=i.domToWorkspace$$module$build$src$core$xml(e,t),t.setResizesEnabled(!0),e},i.domToWorkspace$$module$build$src$core$xml=function(e,t){let o=0;t.RTL&&(o=t.getWidth());const n=[];Ao();const c=i.getGroup$$module$build$src$core$events$utils();c||i.setGroup$$module$build$src$core$events$utils(!0),t.setResizesEnabled&&t.setResizesEnabled(!1);let h=!0;try{for(let $=0,T;T=e.childNodes[$];$++){const B=T.nodeName.toLowerCase(),ie=T;if(B==="block"||B==="shadow"&&!ge()){const it=Po(ie,t);n.push(it.id);let ot;const Ht=parseInt((ot=ie.getAttribute("x"))!=null?ot:"10",10);let qi;const mr=parseInt((qi=ie.getAttribute("y"))!=null?qi:"10",10);isNaN(Ht)||isNaN(mr)||it.moveBy(t.RTL?o-Ht:Ht,mr,["create"]),h=!1}else{if(B==="shadow")throw TypeError("Shadow block cannot be a top-level block.");if(B==="comment")zu(ie,t);else if(B==="variables"){if(h)Uu(ie,t);else throw Error("'variables' tag must exist once before block and shadow tag elements in the workspace XML, but it was found in another location.");h=!1}}}}finally{i.setGroup$$module$build$src$core$events$utils(c),t.setResizesEnabled&&t.setResizesEnabled(!0),t.rendered&&Hs(),Ro()}return K(new(Y(M.FINISHED_LOADING))(t)),n},zu=function(e,t){var o;const n=(o=e.getAttribute("id"))!=null?o:void 0;o=t.rendered?new ll(t,n):new al(t,n);var c;o.setText((c=e.textContent)!=null?c:"");var h;c=parseInt((h=e.getAttribute("x"))!=null?h:"",10);let $;h=parseInt(($=e.getAttribute("y"))!=null?$:"",10),isNaN(c)||isNaN(h)||(c=t.RTL?t.getWidth()-c:c,o.moveTo(new G(c,h)));var T;t=parseInt((T=e.getAttribute("w"))!=null?T:"",10);let B;return T=parseInt((B=e.getAttribute("h"))!=null?B:"",10),isNaN(t)||isNaN(T)||o.setSize(new Ne(t,T)),e.getAttribute("collapsed")==="true"&&o.setCollapsed(!0),e.getAttribute("editable")==="false"&&o.setEditable(!1),e.getAttribute("movable")==="false"&&o.setMovable(!1),e.getAttribute("deletable")==="false"&&o.setDeletable(!1),o},Tf=function(e,t){if(!t.getBlocksBoundingBox)return i.domToWorkspace$$module$build$src$core$xml(e,t);var o=t.getBlocksBoundingBox();if(e=i.domToWorkspace$$module$build$src$core$xml(e,t),o&&o.top!==o.bottom){var n=o.bottom;o=t.RTL?o.right:o.left;var c=1/0;let h=-1/0,$=1/0;for(let T=0;Th&&(h=B.x)}for(n=n-$+10,o=t.RTL?o-h:o-c,c=0;cie.setBubbleVisible(h),1)}},If=function(e,t){for(let o=0;oc}),Gu(c,{x:n.x,y:n.y,width:e.width,height:e.height},t.RTL,new Date)}},Gu=function(e,t,o,n){const c=(new Date().getTime()-n.getTime())/150;1o)){var n=t.getSvgXY(e.getSvgRoot());e.outputConnection?(n.x+=(e.RTL?3:-3)*o,n.y+=13*o):e.previousConnection&&(n.x+=(e.RTL?-23:23)*o,n.y+=3*o);var c=L(D.CIRCLE,{cx:n.x,cy:n.y,r:0,fill:"none",stroke:"#888","stroke-width":10},t.getParentSvg());e=L(D.ANIMATE,{id:"animationCircle",begin:"indefinite",attributeName:"r",dur:"150ms",from:0,to:25*o},c),t=L(D.ANIMATE,{id:"animationOpacity",begin:"indefinite",attributeName:"opacity",dur:"150ms",from:1,to:0},c),e.beginElement(),t.beginElement(),setTimeout(()=>void Ve(c),150)}},Vu=function(e){if(ki(),e.workspace.getAudioManager().play("disconnect"),!(1>e.workspace.scale)){var t=e.getHeightWidth().height;t=Math.atan(10/t)/Math.PI*180,e.RTL||(t*=-1),tr=e,Ku(e,t,new Date,0)}},Ku=function(e,t,o,n){const c=[.66,1,.66,0,-.66,-1,-.66,0];let h="";o.getTime()+200>new Date().getTime()&&(h=`skewX(${Math.round(c[n%c.length]*t)})`,cl=setTimeout(Ku,15,e,t,o,n+1)),e.getSvgRoot().setAttribute("transform",`${e.getTranslation()} ${h}`)},ki=function(){tr&&(cl&&(clearTimeout(cl),cl=null),tr.getSvgRoot().setAttribute("transform",tr.getTranslation()),tr=null)},Fo=function(e){return e.getRelativeToSurfaceXY!==void 0&&e.isMovable!==void 0&&e.startDrag!==void 0&&e.drag!==void 0&&e.endDrag!==void 0&&e.revertDrag!==void 0},Vs=function(e,t){for(const o in t)e[o]=t[o]!==null&&typeof t[o]=="object"?Vs(e[o]||Object.create(null),t[o]):t[o];return e},Is=function(e,t){r(z.FIELD,e,t)},Mf=function(e){u(z.FIELD,e)},i.fromJson$$module$build$src$core$field_registry=function(e){return Rb.fromJsonInternal(e)},Nf=function(e){const t=f(z.FIELD,e.type);return t?t.fromJson(e):(console.warn("Blockly could not create a field of type "+e.type+". The field is probably not being registered. This could be because the file is not loaded, the field does not register itself (Issue #1584), or the registration is not being reached."),null)},i.register$$module$build$src$core$extensions=function(e,t){if(typeof e!="string"||e.trim()==="")throw Error('Error: Invalid extension name "'+e+'"');if(Ui[e])throw Error('Error: Extension "'+e+'" is already registered.');if(typeof t!="function")throw Error('Error: Extension "'+e+'" must be a function');Ui[e]=t},i.registerMixin$$module$build$src$core$extensions=function(e,t){if(!t||typeof t!="object")throw Error('Error: Mixin "'+e+'" must be a object');i.register$$module$build$src$core$extensions(e,function(){this.mixin(t)})},i.registerMutator$$module$build$src$core$extensions=function(e,t,o,n){const c='Error when registering mutator "'+e+'": ';Xu(c,t);const h=Ju(t,c);if(o&&typeof o!="function")throw Error(c+'Extension "'+e+'" is not a function');i.register$$module$build$src$core$extensions(e,function(){h&&this.setMutator(new i.MutatorIcon$$module$build$src$core$icons$mutator_icon(n||[],this)),this.mixin(t),o&&o.apply(this)})},Lf=function(e){Yu(e)?delete Ui[e]:console.warn('No extension mapping for name "'+e+'" found to unregister')},Yu=function(e){return!!Ui[e]},Sa=function(e,t,o){const n=Ui[e];if(typeof n!="function")throw Error('Error: Extension "'+e+'" not found.');let c;if(o?Bf(e,t):c=Ia(t),n.apply(t),o)Xu('Error after applying mutator "'+e+'": ',t);else if(!jf(c,t))throw Error('Error when applying extension "'+e+'": mutation properties changed when applying a non-mutator extension.')},Bf=function(e,t){if(Ia(t).length)throw Error('Error: tried to apply mutation "'+e+'" to a block that already has mutator functions. Block id: '+t.id)},Pf=function(e,t){return Ea(e.mutationToDom,e.domToMutation,t+" mutationToDom/domToMutation")},Ff=function(e,t){return Ea(e.saveExtraState,e.loadExtraState,t+" saveExtraState/loadExtraState")},Ju=function(e,t){return Ea(e.compose,e.decompose,t+" compose/decompose")},Ea=function(e,t,o){if(e&&t){if(typeof e!="function"||typeof t!="function")throw Error(o+" must be a function");return!0}if(!e&&!t)return!1;throw Error(o+"Must have both or neither functions")},Xu=function(e,t){const o=Pf(t,e),n=Ff(t,e);if(!o&&!n)throw Error(e+"Mutations must contain either XML hooks, or JSON hooks, or both");Ju(t,e)},Ia=function(e){const t=[];return e.domToMutation!==void 0&&t.push(e.domToMutation),e.mutationToDom!==void 0&&t.push(e.mutationToDom),e.saveExtraState!==void 0&&t.push(e.saveExtraState),e.loadExtraState!==void 0&&t.push(e.loadExtraState),e.compose!==void 0&&t.push(e.compose),e.decompose!==void 0&&t.push(e.decompose),t},jf=function(e,t){if(t=Ia(t),t.length!==e.length)return!1;for(let o=0;o!n.getReturnTypes()).map(n=>[n.getName(),n.getParameters().map(c=>c.getName()),!1]);e.getBlocksByType("procedures_defnoreturn",!1).forEach(n=>{!po(n)&&fi(n)&&t.push(n.getProcedureDef())});const o=e.getProcedureMap().getProcedures().filter(n=>!!n.getReturnTypes()).map(n=>[n.getName(),n.getParameters().map(c=>c.getName()),!0]);return e.getBlocksByType("procedures_defreturn",!1).forEach(n=>{!po(n)&&fi(n)&&o.push(n.getProcedureDef())}),t.sort(Zu),o.sort(Zu),[t,o]},Zu=function(e,t){return e[0].localeCompare(t[0],void 0,{sensitivity:"base"})},i.findLegalName$$module$build$src$core$procedures=function(e,t){if(t.isInFlyout)return e;for(e=e||i.Msg$$module$build$src$core$msg.UNNAMED_KEY||"unnamed";!Gf(e,t.workspace,t);){const o=e.match(/^(.*?)(\d+)$/);e=o?o[1]+(parseInt(o[2])+1):e+"2"}return e},Gf=function(e,t,o){return!Qu(e,t,o)},Qu=function(e,t,o){for(const n of t.getAllBlocks(!1))if(n!==o&&fi(n)&&i.Names$$module$build$src$core$names.equals(n.getProcedureDef()[0],e))return!0;o=o&&po(o)?o==null?void 0:o.getProcedureModel():void 0;for(const n of t.getProcedureMap().getProcedures())if(n!==o&&i.Names$$module$build$src$core$names.equals(n.getName(),e))return!0;return!1},i.rename$$module$build$src$core$procedures=function(e){var t=this.getSourceBlock();if(!t)throw new gt;e=e.trim();const o=i.findLegalName$$module$build$src$core$procedures(e,t);po(t)&&!t.isInsertionMarker()&&t.getProcedureModel().setName(o);const n=this.getValue();if(n!==e&&n!==o)for(e=t.workspace.getAllBlocks(!1),t=0;tKf(o,e)||wm(o)&&i.Names$$module$build$src$core$names.equals(o.getProcedureCall(),e))},Kf=function(e,t){return po(e)&&!e.isProcedureDef()&&e.getProcedureModel()&&i.Names$$module$build$src$core$names.equals(e.getProcedureModel().getName(),t)},i.mutateCallers$$module$build$src$core$procedures=function(e){const t=ge();var o=e.getProcedureDef()[0];const n=e.mutationToDom(!0);e=sd(o,e.workspace);for(let h=0,$;$=e[h];h++){o=(o=$.mutationToDom())&&gi(o),$.domToMutation&&$.domToMutation(n);var c=$.mutationToDom();c=c&&gi(c),o!==c&&(i.setRecordUndo$$module$build$src$core$events$utils(!1),K(new(Y(M.BLOCK_CHANGE))($,"mutation",null,o,c)),i.setRecordUndo$$module$build$src$core$events$utils(t))}},i.getDefinition$$module$build$src$core$procedures=function(e,t){for(const o of t.getAllBlocks(!1))if(po(o)&&o.isProcedureDef()&&i.Names$$module$build$src$core$names.equals(o.getProcedureModel().getName(),e)||fi(o)&&i.Names$$module$build$src$core$names.equals(o.getProcedureDef()[0],e))return o;return null},Ra=function(e){return e.isDynamic},Yf=function(e){return e.pathDown!==void 0&&e.pathUp!==void 0},Jf=function(e){return e.pathLeft!==void 0&&e.pathRight!==void 0},Xf=function(e,t){if(!e||!t)throw Error("Cannot connect null connections.");e.targetConnection=t,t.targetConnection=e},qf=function(e,t){let o=null;t=t.outputConnection;const n=t==null?void 0:t.getConnectionChecker();for(let c=0,h;h=e.inputList[c];c++){const $=h.connection;let T;if($&&((T=n)!=null&&T.canConnect(t,$,!1))){if(o)return null;o=$}}return o},Zf=function(e,t){let o;for(;o=qf(e,t);)if(e=o.targetBlock(),!e||e.isShadow())return o;return null},od=function(e){return e.getType!==void 0&&e.initView!==void 0&&e.dispose!==void 0&&e.getWeight!==void 0&&e.getSize!==void 0&&e.applyColour!==void 0&&e.hideForInsertionMarker!==void 0&&e.updateEditable!==void 0&&e.updateCollapsed!==void 0&&e.isShownWhenCollapsed!==void 0&&e.setOffsetInBlock!==void 0&&e.onLocationChange!==void 0&&e.onClick!==void 0},Qf=function(e){return od(e)&&vi(e)&&Cn(e)&&e.setText!==void 0&&e.getText!==void 0&&e.setBubbleSize!==void 0&&e.getBubbleSize!==void 0&&e.getType()===ft.COMMENT},Nn=function(e){let t=e.outputConnection;return(!t||e.previousConnection&&e.previousConnection.isConnected())&&(t=e.previousConnection),t},Ln=function(e,t){r(z.RENDERER,e,t)},e$=function(e){u(z.RENDERER,e)},id=function(e,t,o){return e=new(m(z.RENDERER,e))(e),e.init(t,o),e},nd=function(e){$i(e.getTargetWorkspace(),void 0,"String")},rd=function(e){$i(e.getTargetWorkspace(),void 0,"Number")},ad=function(e){$i(e.getTargetWorkspace(),void 0,"Colour")},Oa=function(e){let t=[],o=document.createElement("button");return o.setAttribute("text",i.Msg$$module$build$src$core$msg.NEW_STRING_VARIABLE),o.setAttribute("callbackKey","CREATE_VARIABLE_STRING"),t.push(o),o=document.createElement("button"),o.setAttribute("text",i.Msg$$module$build$src$core$msg.NEW_NUMBER_VARIABLE),o.setAttribute("callbackKey","CREATE_VARIABLE_NUMBER"),t.push(o),o=document.createElement("button"),o.setAttribute("text",i.Msg$$module$build$src$core$msg.NEW_COLOUR_VARIABLE),o.setAttribute("callbackKey","CREATE_VARIABLE_COLOUR"),t.push(o),e.registerButtonCallback("CREATE_VARIABLE_STRING",nd),e.registerButtonCallback("CREATE_VARIABLE_NUMBER",rd),e.registerButtonCallback("CREATE_VARIABLE_COLOUR",ad),e=ld(e),t=t.concat(e)},ld=function(e){e=e.getAllVariables();const t=[];if(0T.id!=e.id).map(T=>T.getRelativeToSurfaceXY());for(;s$(G.sum(t,h),$)||o$(e,G.sum(c,h),n);)o.RTL?h.translate(-n,2*n):h.translate(n,2*n);e.moveTo(G.sum(t,h))},s$=function(e,t){return t.some(o=>1>=Math.abs(o.x-e.x)&&1>=Math.abs(o.y-e.y))},o$=function(e,t,o){return e.getConnections_(!1).some(n=>!!n.closest(o,t).connection)},Ei=function(e,t,o){const n=o.getBoundingRectangle(),c=n.right-n.left,h=yi(t.top,n.top,t.top+t.height-(n.bottom-n.top))-n.top;let $=t.left;return t=t.left+t.width-c,e.RTL?$=Math.min(t,$):t=Math.max($,t),(e=yi($,n.left,t)-n.left)||h?(o.moveBy(e,h,["inbounds"]),!0):!1},cd=function(e){return t=>{var o=e.getMetricsManager();if(o.hasFixedEdges()&&!e.isDragging()){var n;if(T$.includes((n=t.type)!=null?n:"")){n=o.getScrollMetrics(!0);const c=i$(e,t);c&&(o=i.getGroup$$module$build$src$core$events$utils()||!1,i.setGroup$$module$build$src$core$events$utils(t.group),Ei(e,n,c)&&!t.group&&console.warn("Moved object in bounds but there was no event group. This may break undo."),i.setGroup$$module$build$src$core$events$utils(o))}else se(t)&&t.scale&&t.oldScale&&t.scale>t.oldScale&&Ma(e)}}},i$=function(e,t){let o=null;switch(t.type){case M.BLOCK_CREATE:case M.BLOCK_MOVE:(o=e.getBlockById(t.blockId))&&(o=o.getRootBlock());break;case M.COMMENT_CREATE:case M.COMMENT_MOVE:case M.COMMENT_RESIZE:o=e.getCommentById(t.commentId)}return o},Ma=function(e){var t=e.getMetricsManager();if(t.hasFixedEdges()&&!e.isDragging()){t=t.getScrollMetrics(!0);var o=e.getTopBoundedElements();for(let n=0,c;c=o[n];n++)Ei(e,t,c)}},Qt=function(e){return e.isDeletable!==void 0&&e.dispose!==void 0&&e.setDeleteStyle!==void 0},n$=function(e){const t=e.toCopyData();Jh=t;let o;return Xh=(o=e.workspace)!=null?o:null,t},go=function(e,t,o){return e&&t?ud(e,t,o):Jh&&Xh?ud(Jh,Xh):null},ud=function(e,t,o){let n;t=t.isMutator?t:(n=t.getRootWorkspace())!=null?n:t;let c,h;return(h=(c=f(z.PASTER,e.paster,!1))==null?void 0:c.paste(e,t,o))!=null?h:null},r$=function(e){const t=e.toCopyData();return t?go(t,e.workspace):null},Bn=function(e){return e.toCopyData!==void 0},dd=function(){He.registry.register({name:Ms.ESCAPE,preconditionFn(e){return!e.options.readOnly},callback(e){return e.hideChaff(),!0},keyCodes:[Re.ESC]})},hd=function(){He.registry.register({name:Ms.DELETE,preconditionFn(e){const t=x();return!e.options.readOnly&&t!=null&&Qt(t)&&t.isDeletable()&&!Qs.inProgress()},callback(e,t){return t.preventDefault(),e=x(),e instanceof ns?e.checkAndDelete():Qt(e)&&e.isDeletable()&&(i.setGroup$$module$build$src$core$events$utils(!0),e.dispose(),i.setGroup$$module$build$src$core$events$utils(!1)),!0},keyCodes:[Re.DELETE,Re.BACKSPACE]})},pd=function(){const e=He.registry.createSerializedKey(Re.C,[Re.CTRL]),t=He.registry.createSerializedKey(Re.C,[Re.ALT]),o=He.registry.createSerializedKey(Re.C,[Re.META]);He.registry.register({name:Ms.COPY,preconditionFn(n){const c=x();return!n.options.readOnly&&!Qs.inProgress()&&c!=null&&Qt(c)&&c.isDeletable()&&Fo(c)&&c.isMovable()&&Bn(c)},callback(n,c){return c.preventDefault(),n.hideChaff(),c=x(),!c||!Bn(c)?!1:(To=c.toCopyData(),ko=c.workspace instanceof Zt?c.workspace:n,Yi=Fo(c)?c.getRelativeToSurfaceXY():null,!!To)},keyCodes:[e,t,o]})},gd=function(){const e=He.registry.createSerializedKey(Re.X,[Re.CTRL]),t=He.registry.createSerializedKey(Re.X,[Re.ALT]),o=He.registry.createSerializedKey(Re.X,[Re.META]);He.registry.register({name:Ms.CUT,preconditionFn(n){const c=x();return!n.options.readOnly&&!Qs.inProgress()&&c!=null&&Qt(c)&&c.isDeletable()&&Fo(c)&&c.isMovable()&&!c.workspace.isFlyout},callback(n){const c=x();return c instanceof ns?(To=c.toCopyData(),ko=n,Yi=c.getRelativeToSurfaceXY(),c.checkAndDelete(),!0):Qt(c)&&c.isDeletable()&&Bn(c)?(To=c.toCopyData(),ko=n,Yi=Fo(c)?c.getRelativeToSurfaceXY():null,c.dispose(),!0):!1},keyCodes:[e,t,o]})},md=function(){const e=He.registry.createSerializedKey(Re.V,[Re.CTRL]),t=He.registry.createSerializedKey(Re.V,[Re.ALT]),o=He.registry.createSerializedKey(Re.V,[Re.META]);He.registry.register({name:Ms.PASTE,preconditionFn(n){return!n.options.readOnly&&!Qs.inProgress()},callback(){if(!To||!ko)return!1;if(!Yi)return!!go(To,ko);const{left:n,top:c,width:h,height:$}=ko.getMetricsManager().getViewMetrics(!0);if(new Je(c,c+$,n,n+h).contains(Yi.x,Yi.y))return!!go(To,ko);const T=new G(n+h/2,c+$/2);return!!go(To,ko,T)},keyCodes:[e,t,o]})},fd=function(){const e=He.registry.createSerializedKey(Re.Z,[Re.CTRL]),t=He.registry.createSerializedKey(Re.Z,[Re.ALT]),o=He.registry.createSerializedKey(Re.Z,[Re.META]);He.registry.register({name:Ms.UNDO,preconditionFn(n){return!n.options.readOnly&&!Qs.inProgress()},callback(n,c){return n.hideChaff(),n.undo(!1),c.preventDefault(),!0},keyCodes:[e,t,o]})},$d=function(){const e=He.registry.createSerializedKey(Re.Z,[Re.SHIFT,Re.CTRL]),t=He.registry.createSerializedKey(Re.Z,[Re.SHIFT,Re.ALT]),o=He.registry.createSerializedKey(Re.Z,[Re.SHIFT,Re.META]),n=He.registry.createSerializedKey(Re.Y,[Re.CTRL]);He.registry.register({name:Ms.REDO,preconditionFn(c){return!Qs.inProgress()&&!c.options.readOnly},callback(c,h){return c.hideChaff(),c.undo(!0),h.preventDefault(),!0},keyCodes:[e,t,o,n]})},bd=function(){dd(),hd(),pd(),gd(),md(),fd(),$d()},vd=function(e){const t=e.saveState();return e.getParameters().length&&(t.parameters=e.getParameters().map(o=>o.saveState())),t},yd=function(e,t,o,n){if(e=e.loadState(o,n),!o.parameters)return e;for(const[c,h]of o.parameters.entries())e.insertParameter(t.loadState(h,n),c);return e},a$=function(e){const t=Object.create(null),o=v(z.SERIALIZER,!0);for(const n in o){let c;const h=(c=o[n])==null?void 0:c.save(e);h&&(t[n]=h)}return t},l$=function(e,t,{recordUndo:o=!1}={}){var n=v(z.SERIALIZER,!0);if(n){n=Object.entries(n).sort((h,$)=>$[1].priority-h[1].priority);var c=ge();i.setRecordUndo$$module$build$src$core$events$utils(o),(o=i.getGroup$$module$build$src$core$events$utils())||i.setGroup$$module$build$src$core$events$utils(!0),Ao(),t instanceof Zt&&t.setResizesEnabled(!1);for(const[,h]of n.reverse()){let $;($=h)==null||$.clear(t)}for(const[h,$]of n.reverse())if(e[h]){let T;(T=$)==null||T.load(e[h],t)}t instanceof Zt&&t.setResizesEnabled(!0),Ro(),K(new(Y(M.FINISHED_LOADING))(t)),i.setGroup$$module$build$src$core$events$utils(o),i.setRecordUndo$$module$build$src$core$events$utils(c)}},c$=function(e,t){let o=null;o=typeof e=="string"?document.getElementById(e)||document.querySelector(e):e;var n;if(!document.contains(o)&&document!==((n=o)==null?void 0:n.ownerDocument))throw Error("Error: container is not in current document");e=new ss(t||{}),n=document.createElement("div"),$e(n,"injectionDiv"),t!=null&&t.rtl&&$e(n,"blocklyRTL"),n.tabIndex=0,Tt(n,vt.LABEL,i.Msg$$module$build$src$core$msg.WORKSPACE_ARIA_LABEL),o.appendChild(n),t=u$(n,e);const c=d$(n,t,e);return h$(c),le(c),ke(c),n.addEventListener("focusin",function(){le(c)}),Q(n,"keydown",null,Na),Q(Sn(),"keydown",null,Na),(t=Lo())&&Q(t,"keydown",null,Na),c},u$=function(e,t){e.setAttribute("dir","LTR"),Lc(t.hasCss,t.pathToMedia),e=L(D.SVG,{xmlns:Un,"xmlns:html":As,"xmlns:xlink":Kt,version:"1.1",class:"blocklySvg",tabindex:"0"},e);const o=L(D.DEFS,{},e),n=String(Math.random()).substring(2);return t.gridPattern=Eh.createDom(n,t.gridOptions,o),e},d$=function(e,t,o){o.parentWorkspace=null,o=new Zt(o);const n=o.options;o.scale=n.zoomOptions.startScale,t.appendChild(o.createDom("blocklyMainBackground",e));var c=o.getRenderer().getClassName();return c&&$e(e,c),(c=o.getTheme().getClassName())&&$e(e,c),!n.hasCategories&&n.languageTree&&(e=o.addFlyout(D.SVG),Do(e,t)),n.hasTrashcan&&o.addTrashcan(),n.zoomOptions&&n.zoomOptions.controls&&o.addZoomControls(),o.getThemeManager().subscribe(t,"workspaceBackgroundColour","background-color"),o.translate(0,0),o.addChangeListener(cd(o)),ke(o),Au(),iu(),wu(),o},h$=function(e){const t=e.options;var o=e.getParentSvg();if(Q(o.parentNode,"contextmenu",null,function(n){_t(n)||n.preventDefault()}),o=Q(window,"resize",null,function(){Gs(),e.hideComponents(!0),$u(),Nu(),ke(e),Ma(e)}),e.setResizeHandlerWrapper(o),p$(),t.languageTree){o=e.getToolbox();const n=e.getFlyout(!0);o?o.init():n&&(n.init(e),n.show(t.languageTree),typeof n.scrollToStart=="function"&&n.scrollToStart())}t.hasTrashcan&&e.trashcan.init(),t.zoomOptions&&t.zoomOptions.controls&&e.zoomControls_.init(),t.moveOptions&&t.moveOptions.scrollbars?(e.scrollbar=new Zh(e,t.moveOptions.scrollbars===!0||!!t.moveOptions.scrollbars.horizontal,t.moveOptions.scrollbars===!0||!!t.moveOptions.scrollbars.vertical,"blocklyMainWorkspaceScrollbar"),e.scrollbar.resize()):e.setMetrics({x:.5,y:.5}),t.hasSounds&&g$(t.pathToMedia,e)},Na=function(e){const t=U();t&&!(_t(e)||t.rendered&&!t.isVisible())&&He.registry.onKeyDown(t,e)},p$=function(){$v||(Q(document,"scroll",null,function(){const e=oe();for(let t=0,o;o=e[t];t++)o instanceof Zt&&o.updateInverseScreenCTM()}),lt(document,"touchend",null,Ce),lt(document,"touchcancel",null,Ce)),$v=!0},g$=function(e,t){function o(){for(;c.length;){const h=c.pop();h&&ze(h)}n.preload()}const n=t.getAudioManager();n.load([e+"click.mp3",e+"click.wav",e+"click.ogg"],"click"),n.load([e+"disconnect.wav",e+"disconnect.mp3",e+"disconnect.ogg"],"disconnect"),n.load([e+"delete.mp3",e+"delete.ogg",e+"delete.wav"],"delete");const c=[];c.push(Q(document,"pointermove",null,o,!0)),c.push(Q(document,"touchstart",null,o,!0))},_d=function(){Ae.registry.register({displayText(){return i.Msg$$module$build$src$core$msg.UNDO},preconditionFn(e){return 0t.length?Pn(t):ra(i.Msg$$module$build$src$core$msg.DELETE_ALL_BLOCKS.replace("%1",String(t.length)),function(o){o&&Pn(t)})}},scopeType:Ae.ScopeType.WORKSPACE,id:"workspaceDelete",weight:6})},m$=function(){_d(),wd(),Cd(),kd(),Sd(),Id()},xd=function(){Ae.registry.register({displayText(){return i.Msg$$module$build$src$core$msg.DUPLICATE_BLOCK},preconditionFn(e){return e=e.block,!e.isInFlyout&&e.isDeletable()&&e.isMovable()?e.isDuplicatable()?"enabled":"disabled":"hidden"},callback(e){if(e.block){var t=e.block.toCopyData();t&&go(t,e.block.workspace)}},scopeType:Ae.ScopeType.BLOCK,id:"blockDuplicate",weight:1})},Dd=function(){Ae.registry.register({displayText(e){return e.block.hasIcon(so.TYPE)?i.Msg$$module$build$src$core$msg.REMOVE_COMMENT:i.Msg$$module$build$src$core$msg.ADD_COMMENT},preconditionFn(e){return e=e.block,!e.isInFlyout&&e.workspace.options.comments&&!e.isCollapsed()&&e.isEditable()?"enabled":"hidden"},callback(e){e=e.block,e.hasIcon(so.TYPE)?e.setCommentText(null):e.setCommentText("")},scopeType:Ae.ScopeType.BLOCK,id:"blockComment",weight:2})},Ad=function(){Ae.registry.register({displayText(e){return e.block.getInputsInline()?i.Msg$$module$build$src$core$msg.EXTERNAL_INPUTS:i.Msg$$module$build$src$core$msg.INLINE_INPUTS},preconditionFn(e){if(e=e.block,!e.isInFlyout&&e.isMovable()&&!e.isCollapsed()){for(let t=1;t(t.has(Nt)?1:0),e.getInheritedDisabled()||t?"disabled":"enabled"}return"hidden"},callback(e){e=e.block;const t=i.getGroup$$module$build$src$core$events$utils();t||i.setGroup$$module$build$src$core$events$utils(!0),e.setDisabledReason(!e.hasDisabledReason(Nt),Nt),i.setGroup$$module$build$src$core$events$utils(t)},scopeType:Ae.ScopeType.BLOCK,id:"blockDisable",weight:5})},Md=function(){Ae.registry.register({displayText(e){var t=e.block;return e=t.getDescendants(!1).length,(t=t.getNextBlock())&&(e-=t.getDescendants(!1).length),e===1?i.Msg$$module$build$src$core$msg.DELETE_BLOCK:i.Msg$$module$build$src$core$msg.DELETE_X_BLOCKS.replace("%1",`${e}`)},preconditionFn(e){return!e.block.isInFlyout&&e.block.isDeletable()?"enabled":"hidden"},callback(e){e.block&&e.block.checkAndDelete()},scopeType:Ae.ScopeType.BLOCK,id:"blockDelete",weight:6})},Nd=function(){Ae.registry.register({displayText(){return i.Msg$$module$build$src$core$msg.HELP},preconditionFn(e){return e=e.block,(typeof e.helpUrl=="function"?e.helpUrl():e.helpUrl)?"enabled":"hidden"},callback(e){e.block.showHelp()},scopeType:Ae.ScopeType.BLOCK,id:"blockHelp",weight:7})},Ld=function(){Ae.registry.register({displayText:()=>i.Msg$$module$build$src$core$msg.REMOVE_COMMENT,preconditionFn(e){let t;return(t=e.comment)!=null&&t.isDeletable()?"enabled":"hidden"},callback(e){i.setGroup$$module$build$src$core$events$utils(!0);let t;(t=e.comment)==null||t.dispose(),i.setGroup$$module$build$src$core$events$utils(!1)},scopeType:Ae.ScopeType.COMMENT,id:"commentDelete",weight:6})},Bd=function(){Ae.registry.register({displayText:()=>i.Msg$$module$build$src$core$msg.DUPLICATE_COMMENT,preconditionFn(e){let t;return(t=e.comment)!=null&&t.isMovable()?"enabled":"hidden"},callback(e){if(e.comment){var t=e.comment.toCopyData();t&&go(t,e.comment.workspace)}},scopeType:Ae.ScopeType.COMMENT,id:"commentDuplicate",weight:1})},Pd=function(){Ae.registry.register({displayText:()=>i.Msg$$module$build$src$core$msg.ADD_COMMENT,preconditionFn:e=>{let t;return(t=e.workspace)!=null&&t.isMutator?"hidden":"enabled"},callback:(e,t)=>{if(e=e.workspace){i.setGroup$$module$build$src$core$events$utils(!0);var o=new ll(e);o.setText(i.Msg$$module$build$src$core$msg.WORKSPACE_COMMENT_DEFAULT_TEXT),o.moveTo(f$(new G(t.clientX,t.clientY),e)),i.setSelected$$module$build$src$core$common(o),i.setGroup$$module$build$src$core$events$utils(!1)}},scopeType:Ae.ScopeType.WORKSPACE,id:"commentCreate",weight:8})},f$=function(e,t){var o=t.getInjectionDiv().getBoundingClientRect();return e=new G(e.x-o.left,e.y-o.top),o=t.getOriginOffsetInPixels(),e=G.difference(e,o),e.scale(1/t.scale),e},$$=function(){xd(),Dd(),Ad(),Rd(),Od(),Md(),Nd()},b$=function(){Bd(),Ld(),Pd()},Fd=function(){m$(),$$()},v$=function(e){return e.paste!==void 0},y$=function(e){return e.getSvgRoot!==void 0},_$=function(e){return typeof e.id=="string"&&e.workspace!==void 0&&e.select!==void 0&&e.unselect!==void 0},w$=function(e){return e.isSelectable()},C$=function(e){U().hideChaff(e)},j=j||{},j.scope={},j.ASSUME_ES5=!1,j.ASSUME_NO_NATIVE_MAP=!1,j.ASSUME_NO_NATIVE_SET=!1,j.SIMPLE_FROUND_POLYFILL=!1,j.ISOLATE_POLYFILLS=!1,j.FORCE_POLYFILL_PROMISE=!1,j.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1,j.defineProperty=j.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(e,t,o){return e==Array.prototype||e==Object.prototype||(e[t]=o.value),e},j.getGlobal=function(e){e=[typeof globalThis=="object"&&globalThis,e,typeof window=="object"&&window,typeof self=="object"&&self,typeof nn=="object"&&nn];for(var t=0;t>>0,j.propertyToPolyfillSymbol[c]=j.IS_SYMBOL_NATIVE?j.global.Symbol(c):j.POLYFILL_PREFIX+o+"$"+c),j.defineProperty(n,j.propertyToPolyfillSymbol[c],{configurable:!0,writable:!0,value:t})))},j.underscoreProtoCanBeSet=function(){var e={a:!0},t={};try{return t.__proto__=e,t.a}catch{}return!1},j.setPrototypeOf=j.TRUST_ES6_POLYFILLS&&typeof Object.setPrototypeOf=="function"?Object.setPrototypeOf:j.underscoreProtoCanBeSet()?function(e,t){if(e.__proto__=t,e.__proto__!==t)throw new TypeError(e+" is not extensible");return e}:null,j.arrayIteratorImpl=function(e){var t=0;return function(){return to&&(o=Math.max(o+c,0));o{const e=E$.length,t=[];for(let o=0;20>o;o++)t[o]=E$.charAt(Math.random()*e);return t.join("")}},MC=0,jd={TEST_ONLY:I$};jd.genUid=k,jd.getNextUniqueId=S;var x$="",Fn=!0,zd=0,Ud="ORPHANED_BLOCK",Ys=[],D$={FIRE_QUEUE:Ys,enqueueEvent:qe,fireNow:Me,fireInternal:je,setGroupInternal:we};i.disable$$module$build$src$core$events$utils,i.enable$$module$build$src$core$events$utils,i.getGroup$$module$build$src$core$events$utils,i.setGroup$$module$build$src$core$events$utils,i.setRecordUndo$$module$build$src$core$events$utils;var jn=Object.create(null),A$,jo=null,R$,zn=[],O$={defineBlocksWithJsonArrayInternal:Ge},St={TEST_ONLY:O$};St.createBlockDefinitionsFromJsonArray=i.createBlockDefinitionsFromJsonArray$$module$build$src$core$common,St.defineBlocks=i.defineBlocks$$module$build$src$core$common,St.defineBlocksWithJsonArray=fe,St.draggingConnections=zn,St.getAllWorkspaces=oe,St.getBlockTypeCounts=ve,St.getMainWorkspace=U,St.getParentContainer=pe,St.getSelected=x,St.getWorkspaceById=q,St.registerWorkspace=F,St.setMainWorkspace=le,St.setParentContainer=W,St.setSelected=i.setSelected$$module$build$src$core$common,St.svgResize=ke,St.unregisterWorkpace=H;var Ii=class{constructor(){this.workspaceId=void 0,this.isUiEvent=!1,this.type="",this.group=i.getGroup$$module$build$src$core$events$utils(),this.recordUndo=ge()}toJson(){return{type:this.type,group:this.group}}static fromJson(e,t,o){return o.isBlank=!1,o.group=e.group||"",o.workspaceId=t.id,o}isNull(){return!1}run(e){}getEventWorkspace_(){let e;if(this.workspaceId&&(e=q(this.workspaceId)),!e)throw Error("Workspace is null. Event must have been generated from real Blockly events.");return e}},gs=class extends Ii{constructor(e){super(),this.recordUndo=!1,this.isUiEvent=!0,this.isBlank=typeof e>"u",this.workspaceId=e||""}},Hd=class extends gs{constructor(e,t,o){t=e?e.workspace.id:t,t===null&&(t=void 0),super(t),this.type=M.CLICK,this.blockId=e?e.id:void 0,this.targetType=o}toJson(){const e=super.toJson();if(!this.targetType)throw Error("The click target type is undefined. Either pass a block to the constructor, or call fromJson");return e.targetType=this.targetType,e.blockId=this.blockId,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Hd),t.targetType=e.targetType,t.blockId=e.blockId,t}},Wd;(function(e){e.BLOCK="block",e.WORKSPACE="workspace",e.ZOOM_CONTROLS="zoom_controls"})(Wd||(Wd={})),r(z.EVENT,M.CLICK,Hd);var NC=750,M$="ontouchstart"in globalThis||!!(globalThis.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!globalThis.navigator||!globalThis.navigator.maxTouchPoints&&!globalThis.navigator.msMaxTouchPoints),Pa=null,zo={mousedown:["pointerdown"],mouseenter:["pointerenter"],mouseleave:["pointerleave"],mousemove:["pointermove"],mouseout:["pointerout"],mouseover:["pointerover"],mouseup:["pointerup","pointercancel"],touchend:["pointerup"],touchcancel:["pointercancel"]},Fa=0,Uo={TOUCH_ENABLED:M$,TOUCH_MAP:zo};Uo.checkTouchIdentifier=mt,Uo.clearTouchIdentifier=Ee,Uo.getTouchIdentifierFromEvent=Le,Uo.longStart=Ye,Uo.longStop=Ce,Uo.shouldHandleEvent=be;var Gd,N$,L$,B$,ja,za,Vd,P$,F$,j$;(function(e){function t(n){return o.includes(n.toUpperCase())}Gd=e;const o=Gd.toUpperCase();N$=t("JavaFX"),L$=t("WebKit"),B$=t("Gecko")&&!L$,ja=t("Android"),e=globalThis.navigator&&globalThis.navigator.maxTouchPoints,za=t("iPad")||t("Macintosh")&&0{n.push(this.componentData.get(c))}),n.sort(function(c,h){return c.weight-h.weight}),n.forEach(function(c){o.push(c.component)})}else e.forEach(n=>{o.push(this.componentData.get(n).component)});return o}};at.Capability=Xs,function(e){e=e.ComponentWeight||(e.ComponentWeight={}),e[e.TOOLBOX_WEIGHT=0]="TOOLBOX_WEIGHT",e[e.FLYOUT_WEIGHT=1]="FLYOUT_WEIGHT",e[e.TRASHCAN_WEIGHT=2]="TRASHCAN_WEIGHT",e[e.ZOOM_CONTROLS_WEIGHT=3]="ZOOM_CONTROLS_WEIGHT"}(at||(at={})),at.ComponentWeight;var Jd=!1,Xd=` +.blocklySvg { + background-color: #fff; + outline: none; + overflow: hidden; /* IE overflows by default. */ + position: absolute; + display: block; +} + +.blocklyWidgetDiv { + display: none; + position: absolute; + z-index: 99999; /* big value for bootstrap3 compatibility */ +} + +.injectionDiv { + height: 100%; + position: relative; + overflow: hidden; /* So blocks in drag surface disappear at edges */ + touch-action: none; + user-select: none; + -webkit-user-select: none; +} + +.blocklyNonSelectable { + user-select: none; + -ms-user-select: none; + -webkit-user-select: none; +} + +.blocklyBlockCanvas.blocklyCanvasTransitioning, +.blocklyBubbleCanvas.blocklyCanvasTransitioning { + transition: transform .5s; +} + +.blocklyTooltipDiv { + background-color: #ffffc7; + border: 1px solid #ddc; + box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15); + color: #000; + display: none; + font: 9pt sans-serif; + opacity: .9; + padding: 2px; + position: absolute; + z-index: 100000; /* big value for bootstrap3 compatibility */ +} + +.blocklyDropDownDiv { + position: absolute; + left: 0; + top: 0; + z-index: 1000; + display: none; + border: 1px solid; + border-color: #dadce0; + background-color: #fff; + border-radius: 2px; + padding: 4px; + box-shadow: 0 0 3px 1px rgba(0,0,0,.3); +} + +.blocklyDropDownDiv.blocklyFocused { + box-shadow: 0 0 6px 1px rgba(0,0,0,.3); +} + +.blocklyDropDownContent { + max-height: 300px; /* @todo: spec for maximum height. */ + overflow: auto; + overflow-x: hidden; + position: relative; +} + +.blocklyDropDownArrow { + position: absolute; + left: 0; + top: 0; + width: 16px; + height: 16px; + z-index: -1; + background-color: inherit; + border-color: inherit; +} + +.blocklyDropDownButton { + display: inline-block; + float: left; + padding: 0; + margin: 4px; + border-radius: 4px; + outline: none; + border: 1px solid; + transition: box-shadow .1s; + cursor: pointer; +} + +.blocklyArrowTop { + border-top: 1px solid; + border-left: 1px solid; + border-top-left-radius: 4px; + border-color: inherit; +} + +.blocklyArrowBottom { + border-bottom: 1px solid; + border-right: 1px solid; + border-bottom-right-radius: 4px; + border-color: inherit; +} + +.blocklyResizeSE { + cursor: se-resize; + fill: #aaa; +} + +.blocklyResizeSW { + cursor: sw-resize; + fill: #aaa; +} + +.blocklyResizeLine { + stroke: #515A5A; + stroke-width: 1; +} + +.blocklyHighlightedConnectionPath { + fill: none; + stroke: #fc3; + stroke-width: 4px; +} + +.blocklyPathLight { + fill: none; + stroke-linecap: round; + stroke-width: 1; +} + +.blocklySelected>.blocklyPathLight { + display: none; +} + +.blocklyDraggable { + cursor: grab; + cursor: -webkit-grab; +} + +.blocklyDragging { + cursor: grabbing; + cursor: -webkit-grabbing; + /* Drag surface disables events to not block the toolbox, so we have to + * reenable them here for the cursor values to work. */ + pointer-events: auto; +} + + /* Changes cursor on mouse down. Not effective in Firefox because of + https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */ +.blocklyDraggable:active { + cursor: grabbing; + cursor: -webkit-grabbing; +} + +.blocklyDragging.blocklyDraggingDelete { + cursor: url("<<>>/handdelete.cur"), auto; +} + +.blocklyDragging>.blocklyPath, +.blocklyDragging>.blocklyPathLight { + fill-opacity: .8; + stroke-opacity: .8; +} + +.blocklyDragging>.blocklyPathDark { + display: none; +} + +.blocklyDisabled>.blocklyPath { + fill-opacity: .5; + stroke-opacity: .5; +} + +.blocklyDisabled>.blocklyPathLight, +.blocklyDisabled>.blocklyPathDark { + display: none; +} + +.blocklyInsertionMarker>.blocklyPath, +.blocklyInsertionMarker>.blocklyPathLight, +.blocklyInsertionMarker>.blocklyPathDark { + fill-opacity: .2; + stroke: none; +} + +.blocklyNonEditableText>text { + pointer-events: none; +} + +.blocklyFlyout { + position: absolute; + z-index: 20; +} + +.blocklyText text { + cursor: default; +} + +.blocklyHidden { + display: none; +} + +.blocklyFieldDropdown:not(.blocklyHidden) { + display: block; +} + +.blocklyIconGroup { + cursor: default; +} + +.blocklyIconGroup:not(:hover), +.blocklyIconGroupReadonly { + opacity: .6; +} + +.blocklyIconShape { + fill: #00f; + stroke: #fff; + stroke-width: 1px; +} + +.blocklyIconSymbol { + fill: #fff; +} + +.blocklyMinimalBody { + margin: 0; + padding: 0; + height: 100%; +} + +.blocklyHtmlInput { + border: none; + border-radius: 4px; + height: 100%; + margin: 0; + outline: none; + padding: 0; + width: 100%; + text-align: center; + display: block; + box-sizing: border-box; +} + +/* Remove the increase and decrease arrows on the field number editor */ +input.blocklyHtmlInput[type=number]::-webkit-inner-spin-button, +input.blocklyHtmlInput[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +input[type=number] { + -moz-appearance: textfield; +} + +.blocklyMainBackground { + stroke-width: 1; + stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */ +} + +.blocklyMutatorBackground { + fill: #fff; + stroke: #ddd; + stroke-width: 1; +} + +.blocklyFlyoutBackground { + fill: #ddd; + fill-opacity: .8; +} + +.blocklyMainWorkspaceScrollbar { + z-index: 20; +} + +.blocklyFlyoutScrollbar { + z-index: 30; +} + +.blocklyScrollbarHorizontal, +.blocklyScrollbarVertical { + position: absolute; + outline: none; +} + +.blocklyScrollbarBackground { + opacity: 0; + pointer-events: none; +} + +.blocklyScrollbarHandle { + fill: #ccc; +} + +.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle, +.blocklyScrollbarHandle:hover { + fill: #bbb; +} + +/* Darken flyout scrollbars due to being on a grey background. */ +/* By contrast, workspace scrollbars are on a white background. */ +.blocklyFlyout .blocklyScrollbarHandle { + fill: #bbb; +} + +.blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle, +.blocklyFlyout .blocklyScrollbarHandle:hover { + fill: #aaa; +} + +.blocklyInvalidInput { + background: #faa; +} + +.blocklyVerticalMarker { + stroke-width: 3px; + fill: rgba(255,255,255,.5); + pointer-events: none; +} + +.blocklyComputeCanvas { + position: absolute; + width: 0; + height: 0; +} + +.blocklyNoPointerEvents { + pointer-events: none; +} + +.blocklyContextMenu { + border-radius: 4px; + max-height: 100%; +} + +.blocklyDropdownMenu { + border-radius: 2px; + padding: 0 !important; +} + +.blocklyDropdownMenu .blocklyMenuItem { + /* 28px on the left for icon or checkbox. */ + padding-left: 28px; +} + +/* BiDi override for the resting state. */ +.blocklyDropdownMenu .blocklyMenuItemRtl { + /* Flip left/right padding for BiDi. */ + padding-left: 5px; + padding-right: 28px; +} + +.blocklyWidgetDiv .blocklyMenu { + background: #fff; + border: 1px solid transparent; + box-shadow: 0 0 3px 1px rgba(0,0,0,.3); + font: normal 13px Arial, sans-serif; + margin: 0; + outline: none; + padding: 4px 0; + position: absolute; + overflow-y: auto; + overflow-x: hidden; + max-height: 100%; + z-index: 20000; /* Arbitrary, but some apps depend on it... */ +} + +.blocklyWidgetDiv .blocklyMenu.blocklyFocused { + box-shadow: 0 0 6px 1px rgba(0,0,0,.3); +} + +.blocklyDropDownDiv .blocklyMenu { + background: inherit; /* Compatibility with gapi, reset from goog-menu */ + border: inherit; /* Compatibility with gapi, reset from goog-menu */ + font: normal 13px "Helvetica Neue", Helvetica, sans-serif; + outline: none; + position: relative; /* Compatibility with gapi, reset from goog-menu */ + z-index: 20000; /* Arbitrary, but some apps depend on it... */ +} + +/* State: resting. */ +.blocklyMenuItem { + border: none; + color: #000; + cursor: pointer; + list-style: none; + margin: 0; + /* 7em on the right for shortcut. */ + min-width: 7em; + padding: 6px 15px; + white-space: nowrap; +} + +/* State: disabled. */ +.blocklyMenuItemDisabled { + color: #ccc; + cursor: inherit; +} + +/* State: hover. */ +.blocklyMenuItemHighlight { + background-color: rgba(0,0,0,.1); +} + +/* State: selected/checked. */ +.blocklyMenuItemCheckbox { + height: 16px; + position: absolute; + width: 16px; +} + +.blocklyMenuItemSelected .blocklyMenuItemCheckbox { + background: url(<<>>/sprites.png) no-repeat -48px -16px; + float: left; + margin-left: -24px; + position: static; /* Scroll with the menu. */ +} + +.blocklyMenuItemRtl .blocklyMenuItemCheckbox { + float: right; + margin-right: -24px; +} + +.blocklyBlockDragSurface, .blocklyAnimationLayer { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: visible !important; + z-index: 80; + pointer-events: none; +} +`,qd={};qd.inject=Lc,qd.register=Ct;var G=class{constructor(e,t){this.x=e,this.y=t}clone(){return new G(this.x,this.y)}scale(e){return this.x*=e,this.y*=e,this}translate(e,t){return this.x+=e,this.y+=t,this}static equals(e,t){return e===t?!0:e&&t?e.x===t.x&&e.y===t.y:!1}static distance(e,t){const o=e.x-t.x;return e=e.y-t.y,Math.sqrt(o*o+e*e)}static magnitude(e){return Math.sqrt(e.x*e.x+e.y*e.y)}static difference(e,t){return new G(e.x-t.x,e.y-t.y)}static sum(e,t){return new G(e.x+t.x,e.y+t.y)}},Un="http://www.w3.org/2000/svg",As="http://www.w3.org/1999/xhtml",Kt="http://www.w3.org/1999/xlink",qs;(function(e){e[e.ELEMENT_NODE=1]="ELEMENT_NODE",e[e.TEXT_NODE=3]="TEXT_NODE",e[e.COMMENT_NODE=8]="COMMENT_NODE"})(qs||(qs={}));var ms=null,Zd=0,Ha=null,kt={HTML_NS:As};kt.NodeType=qs,kt.SVG_NS=Un,kt.XLINK_NS=Kt,kt.addClass=$e,kt.createSvgElement=L,kt.getFastTextWidth=$n,kt.getFastTextWidthWithSizeString=Kr,kt.getTextWidth=Bc,kt.hasClass=om,kt.insertAfter=Do,kt.measureFontMetrics=Yr,kt.removeClass=st,kt.removeClasses=Gr,kt.removeNode=Ve,kt.setCssTransform=Vr,kt.startTextWidthCache=Ao,kt.stopTextWidthCache=Ro;var D=class{constructor(e){this.tagName=e}toString(){return this.tagName}};D.ANIMATE=new D("animate"),D.CIRCLE=new D("circle"),D.CLIPPATH=new D("clipPath"),D.DEFS=new D("defs"),D.FECOMPOSITE=new D("feComposite"),D.FECOMPONENTTRANSFER=new D("feComponentTransfer"),D.FEFLOOD=new D("feFlood"),D.FEFUNCA=new D("feFuncA"),D.FEGAUSSIANBLUR=new D("feGaussianBlur"),D.FEPOINTLIGHT=new D("fePointLight"),D.FESPECULARLIGHTING=new D("feSpecularLighting"),D.FILTER=new D("filter"),D.FOREIGNOBJECT=new D("foreignObject"),D.G=new D("g"),D.IMAGE=new D("image"),D.LINE=new D("line"),D.PATH=new D("path"),D.PATTERN=new D("pattern"),D.POLYGON=new D("polygon"),D.RECT=new D("rect"),D.SVG=new D("svg"),D.TEXT=new D("text"),D.TSPAN=new D("tspan");var Je=class{constructor(e,t,o,n){this.top=e,this.bottom=t,this.left=o,this.right=n}clone(){return new Je(this.top,this.bottom,this.left,this.right)}getHeight(){return this.bottom-this.top}getWidth(){return this.right-this.left}contains(e,t){return e>=this.left&&e<=this.right&&t>=this.top&&t<=this.bottom}intersects(e){return this.left<=e.right&&this.right>=e.left&&this.bottom>=e.top&&this.top<=e.bottom}static equals(e,t){return e===t?!0:e&&t?e.top===t.top&&e.bottom===t.bottom&&e.left===t.left&&e.right===t.right:!1}static createFromPoint(e,t,o){const n=e.x;return e=e.y,new Je(e,e+o,n,n+t)}},Ne=class{constructor(e,t){this.width=e,this.height=t}static equals(e,t){return e===t?!0:e&&t?e.width===t.width&&e.height===t.height:!1}static max(e,t){return new Ne(Math.max(e.width,t.width),Math.max(e.height,t.height))}static min(e,t){return new Ne(Math.min(e.width,t.width),Math.min(e.height,t.height))}},Y$={getSizeInternal:im},fo={TEST_ONLY:Y$};fo.getBorderBox=jc,fo.getComputedStyle=ks,fo.getContainerOffsetToScrollInto=zc,fo.getPageOffset=co,fo.getSize=bn,fo.getViewportPageOffset=Fc,fo.scrollIntoContainerView=Jr;var J$=/translate\(\s*([-+\d.e]+)([ ,]\s*([-+\d.e]+)\s*)?/,X$=/transform:\s*translate(?:3d)?\(\s*([-+\d.e]+)\s*px([ ,]\s*([-+\d.e]+)\s*px)?/,PC={XY_REGEX:J$,XY_STYLE_REGEX:X$},Ho={TEST_ONLY:PC};Ho.getDocumentScroll=Hc,Ho.getInjectionDivXY=Xr,Ho.getRelativeXY=vn,Ho.getViewportBBox=Uc,Ho.screenToWsCoordinates=nm,Ho.wsToScreenCoordinates=rm;var pt=class{constructor(e,t,o,n,c){this.workspace=e,this.horizontal=t,this.oldHostMetrics=null,this.ratio=1,this.origin=new G(0,0),this.startDragHandle=this.handlePosition=this.handleLength=this.scrollbarLength=this.startDragMouse=0,this.containerVisible=this.isHandleVisible=!0,this.position=new G(0,0),this.onMouseMoveWrapper_=this.onMouseUpWrapper_=null,this.pair=o||!1,this.margin=c!==void 0?c:pt.DEFAULT_SCROLLBAR_MARGIN,e="blocklyScrollbar"+(this.horizontal?"Horizontal":"Vertical"),n&&(e+=" "+n),this.outerSvg=L(D.SVG,{class:e}),n=L(D.G,{},this.outerSvg),this.svgBackground=L(D.RECT,{class:"blocklyScrollbarBackground"},n),e=Math.floor((pt.scrollbarThickness-5)/2),this.svgHandle=L(D.RECT,{class:"blocklyScrollbarHandle",rx:e,ry:e},n),this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarColour","fill"),this.workspace.getThemeManager().subscribe(this.svgHandle,"scrollbarOpacity","fill-opacity"),Do(this.outerSvg,this.workspace.getParentSvg()),this.setInitialThickness(),t?(this.lengthAttribute_="width",this.positionAttribute_="x"):(this.lengthAttribute_="height",this.positionAttribute_="y"),this.onMouseDownBarWrapper_=Q(this.svgBackground,"pointerdown",this,this.onMouseDownBar),this.onMouseDownHandleWrapper_=Q(this.svgHandle,"pointerdown",this,this.onMouseDownHandle)}setInitialThickness(){const e=pt.scrollbarThickness;this.horizontal?(this.svgBackground.setAttribute("height",String(e)),this.outerSvg.setAttribute("height",String(e)),this.svgHandle.setAttribute("height",String(e-5)),this.svgHandle.setAttribute("y","2.5")):(this.svgBackground.setAttribute("width",String(e)),this.outerSvg.setAttribute("width",String(e)),this.svgHandle.setAttribute("width",String(e-5)),this.svgHandle.setAttribute("x","2.5"))}dispose(){this.cleanUp(),ze(this.onMouseDownBarWrapper_),ze(this.onMouseDownHandleWrapper_),Ve(this.outerSvg),this.workspace.getThemeManager().unsubscribe(this.svgHandle)}constrainHandleLength(e){return e=0>=e||isNaN(e)?0:Math.min(e,this.scrollbarLength)}setHandleLength(e){this.handleLength=e,this.svgHandle.setAttribute(this.lengthAttribute_,String(this.handleLength))}constrainHandlePosition(e){return e=0>=e||isNaN(e)?0:Math.min(e,this.scrollbarLength-this.handleLength)}setHandlePosition(e){this.handlePosition=e,this.svgHandle.setAttribute(this.positionAttribute_,String(this.handlePosition))}setScrollbarLength(e){this.scrollbarLength=e,this.outerSvg.setAttribute(this.lengthAttribute_,String(this.scrollbarLength)),this.svgBackground.setAttribute(this.lengthAttribute_,String(this.scrollbarLength))}setPosition(e,t){this.position.x=e,this.position.y=t,Vr(this.outerSvg,"translate("+(this.position.x+this.origin.x)+"px,"+(this.position.y+this.origin.y)+"px)")}resize(e){!e&&(e=this.workspace.getMetrics(),!e)||this.oldHostMetrics&&pt.metricsAreEquivalent(e,this.oldHostMetrics)||(this.horizontal?this.resizeHorizontal(e):this.resizeVertical(e),this.oldHostMetrics=e,this.updateMetrics())}requiresViewResize(e){return this.oldHostMetrics?this.oldHostMetrics.viewWidth!==e.viewWidth||this.oldHostMetrics.viewHeight!==e.viewHeight||this.oldHostMetrics.absoluteLeft!==e.absoluteLeft||this.oldHostMetrics.absoluteTop!==e.absoluteTop:!0}resizeHorizontal(e){this.requiresViewResize(e)?this.resizeViewHorizontal(e):this.resizeContentHorizontal(e)}resizeViewHorizontal(e){var t=e.viewWidth-2*this.margin;this.pair&&(t-=pt.scrollbarThickness),this.setScrollbarLength(Math.max(0,t)),t=e.absoluteLeft+this.margin,this.pair&&this.workspace.RTL&&(t+=pt.scrollbarThickness),this.setPosition(t,e.absoluteTop+e.viewHeight-pt.scrollbarThickness-this.margin),this.resizeContentHorizontal(e)}resizeContentHorizontal(e){if(e.viewWidth>=e.scrollWidth)this.setHandleLength(this.scrollbarLength),this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var t=this.scrollbarLength*e.viewWidth/e.scrollWidth;t=this.constrainHandleLength(t),this.setHandleLength(t),t=e.scrollWidth-e.viewWidth;var o=this.scrollbarLength-this.handleLength;e=(e.viewLeft-e.scrollLeft)/t*o,e=this.constrainHandlePosition(e),this.setHandlePosition(e),this.ratio=o/t}}resizeVertical(e){this.requiresViewResize(e)?this.resizeViewVertical(e):this.resizeContentVertical(e)}resizeViewVertical(e){let t=e.viewHeight-2*this.margin;this.pair&&(t-=pt.scrollbarThickness),this.setScrollbarLength(Math.max(0,t)),this.setPosition(this.workspace.RTL?e.absoluteLeft+this.margin:e.absoluteLeft+e.viewWidth-pt.scrollbarThickness-this.margin,e.absoluteTop+this.margin),this.resizeContentVertical(e)}resizeContentVertical(e){if(e.viewHeight>=e.scrollHeight)this.setHandleLength(this.scrollbarLength),this.setHandlePosition(0),this.pair||this.setVisible(!1);else{this.pair||this.setVisible(!0);var t=this.scrollbarLength*e.viewHeight/e.scrollHeight;t=this.constrainHandleLength(t),this.setHandleLength(t),t=e.scrollHeight-e.viewHeight;var o=this.scrollbarLength-this.handleLength;e=(e.viewTop-e.scrollTop)/t*o,e=this.constrainHandlePosition(e),this.setHandlePosition(e),this.ratio=o/t}}isVisible(){return this.isHandleVisible}setContainerVisible(e){const t=e!==this.containerVisible;this.containerVisible=e,t&&this.updateDisplay_()}setVisible(e){if(this.pair)throw Error("Unable to toggle visibility of paired scrollbars.");this.setVisibleInternal(e)}setVisibleInternal(e){const t=e!==this.isVisible();this.isHandleVisible=e,t&&this.updateDisplay_()}updateDisplay_(){this.containerVisible&&this.isVisible()?this.outerSvg.setAttribute("display","block"):this.outerSvg.setAttribute("display","none")}onMouseDownBar(e){if(this.workspace.markFocused(),Ee(),this.cleanUp(),ye(e))e.stopPropagation();else{var t=tt(e,this.workspace.getParentSvg(),this.workspace.getInverseScreenCTM());t=this.horizontal?t.x:t.y;var o=Xr(this.svgHandle);o=this.horizontal?o.x:o.y;var n=this.handlePosition,c=.95*this.handleLength;t<=o?n-=c:t>=o+this.handleLength&&(n+=c),this.setHandlePosition(this.constrainHandlePosition(n)),this.updateMetrics(),e.stopPropagation(),e.preventDefault()}}onMouseDownHandle(e){this.workspace.markFocused(),this.cleanUp(),ye(e)?e.stopPropagation():(this.startDragHandle=this.handlePosition,this.startDragMouse=this.horizontal?e.clientX:e.clientY,this.onMouseUpWrapper_=Q(document,"pointerup",this,this.onMouseUpHandle),this.onMouseMoveWrapper_=Q(document,"pointermove",this,this.onMouseMoveHandle),e.stopPropagation(),e.preventDefault())}onMouseMoveHandle(e){this.setHandlePosition(this.constrainHandlePosition(this.startDragHandle+((this.horizontal?e.clientX:e.clientY)-this.startDragMouse))),this.updateMetrics()}onMouseUpHandle(){Ee(),this.cleanUp()}cleanUp(){this.workspace.hideChaff(!0),this.onMouseUpWrapper_&&(ze(this.onMouseUpWrapper_),this.onMouseUpWrapper_=null),this.onMouseMoveWrapper_&&(ze(this.onMouseMoveWrapper_),this.onMouseMoveWrapper_=null)}getRatio_(){let e=this.handlePosition/(this.scrollbarLength-this.handleLength);return isNaN(e)&&(e=0),e}updateMetrics(){const e=this.getRatio_();this.horizontal?this.workspace.setMetrics({x:e}):this.workspace.setMetrics({y:e})}set(e,t){this.setHandlePosition(this.constrainHandlePosition(e*this.ratio)),(t||t===void 0)&&this.updateMetrics()}setOrigin(e,t){this.origin=new G(e,t)}static metricsAreEquivalent(e,t){return e.viewWidth===t.viewWidth&&e.viewHeight===t.viewHeight&&e.viewLeft===t.viewLeft&&e.viewTop===t.viewTop&&e.absoluteTop===t.absoluteTop&&e.absoluteLeft===t.absoluteLeft&&e.scrollWidth===t.scrollWidth&&e.scrollHeight===t.scrollHeight&&e.scrollLeft===t.scrollLeft&&e.scrollTop===t.scrollTop}};pt.scrollbarThickness=M$?25:15,pt.DEFAULT_SCROLLBAR_MARGIN=.5;var Wa={parseFromString:function(){throw Error("DOMParser was not found in the global scope and was not properly injected using injectDependencies")}},Qd={serializeToString:function(){throw Error("XMLSerializer was not foundin the global scope and was not properly injected using injectDependencies")}},{document:Ga,DOMParser:Hn,XMLSerializer:Wn}=globalThis;Hn&&(Wa=new Hn),Wn&&(Qd=new Wn);var q$="https://developers.google.com/blockly/xml",FC=/[\x00-\x09\x0B\x0C\x0E-\x1F]/g,xi={NAME_SPACE:q$};xi.createElement=i.createElement$$module$build$src$core$utils$xml,xi.createTextNode=i.createTextNode$$module$build$src$core$utils$xml,xi.domToText=gi,xi.injectDependencies=am,xi.textToDom=i.textToDom$$module$build$src$core$utils$xml;var eh="categoryToolbox",Z$="flyoutToolbox",xe;(function(e){e[e.TOP=0]="TOP",e[e.BOTTOM=1]="BOTTOM",e[e.LEFT=2]="LEFT",e[e.RIGHT=3]="RIGHT"})(xe||(xe={}));var Q$={hasCategoriesInternal:um},$o={};$o.Position=xe,$o.TEST_ONLY=Q$,$o.convertFlyoutDefToJsonArray=yn,$o.convertToolboxDefToJson=qr,$o.hasCategories=Zr,$o.isCategoryCollapsible=Qr,$o.parseToolboxTree=Gc;var Zs;(function(e){e[e.TOP=0]="TOP",e[e.BOTTOM=1]="BOTTOM"})(Zs||(Zs={}));var Di;(function(e){e[e.LEFT=0]="LEFT",e[e.RIGHT=1]="RIGHT"})(Di||(Di={}));var bo;(function(e){e[e.UP=0]="UP",e[e.DOWN=1]="DOWN"})(bo||(bo={}));var Wo={};Wo.bumpDirection=bo,Wo.bumpPositionRect=oa,Wo.getCornerOppositeToolbox=sa,Wo.getStartPositionRect=ta,Wo.horizontalPosition=Di,Wo.verticalPosition=Zs;var Mt={width:96,height:124,url:"sprites.png"},eb=class{constructor(e){this.workspace=e,this.id="zoomControls",this.boundEvents=[],this.zoomResetGroup=this.zoomOutGroup=this.zoomInGroup=null,this.HEIGHT=this.WIDTH=32,this.SMALL_SPACING=2,this.LARGE_SPACING=11,this.MARGIN_HORIZONTAL=this.MARGIN_VERTICAL=20,this.svgGroup=null,this.top=this.left=0,this.initialized=!1}createDom(){this.svgGroup=L(D.G,{});const e=String(Math.random()).substring(2);return this.createZoomOutSvg(e),this.createZoomInSvg(e),this.workspace.isMovable()&&this.createZoomResetSvg(e),this.svgGroup}init(){this.workspace.getComponentManager().addComponent({component:this,weight:at.ComponentWeight.ZOOM_CONTROLS_WEIGHT,capabilities:[at.Capability.POSITIONABLE]}),this.initialized=!0}dispose(){this.workspace.getComponentManager().removeComponent("zoomControls"),this.svgGroup&&Ve(this.svgGroup);for(const e of this.boundEvents)ze(e);this.boundEvents.length=0}getBoundingRectangle(){let e=this.SMALL_SPACING+2*this.HEIGHT;return this.zoomResetGroup&&(e+=this.LARGE_SPACING+this.HEIGHT),new Je(this.top,this.top+e,this.left,this.left+this.WIDTH)}position(e,t){if(this.initialized){var o=sa(this.workspace,e),n=this.SMALL_SPACING+2*this.HEIGHT;if(this.zoomResetGroup&&(n+=this.LARGE_SPACING+this.HEIGHT),e=ta(o,new Ne(this.WIDTH,n),this.MARGIN_HORIZONTAL,this.MARGIN_VERTICAL,e,this.workspace),o=o.vertical,t=oa(e,this.MARGIN_VERTICAL,o===Zs.TOP?bo.DOWN:bo.UP,t),o===Zs.TOP){var c=this.SMALL_SPACING+this.HEIGHT,h;(h=this.zoomInGroup)==null||h.setAttribute("transform","translate(0, "+c+")"),this.zoomResetGroup&&this.zoomResetGroup.setAttribute("transform","translate(0, "+(c+this.LARGE_SPACING+this.HEIGHT)+")")}else{h=this.zoomResetGroup?this.LARGE_SPACING+this.HEIGHT:0;let T;(T=this.zoomInGroup)==null||T.setAttribute("transform","translate(0, "+h+")"),h=h+this.SMALL_SPACING+this.HEIGHT,(c=this.zoomOutGroup)==null||c.setAttribute("transform","translate(0, "+h+")")}this.top=t.top,this.left=t.left;var $;($=this.svgGroup)==null||$.setAttribute("transform","translate("+this.left+","+this.top+")")}}createZoomOutSvg(e){this.zoomOutGroup=L(D.G,{class:"blocklyZoom blocklyZoomOut"},this.svgGroup);const t=L(D.CLIPPATH,{id:"blocklyZoomoutClipPath"+e},this.zoomOutGroup);L(D.RECT,{width:32,height:32},t),L(D.IMAGE,{width:Mt.width,height:Mt.height,x:-64,y:-92,"clip-path":"url(#blocklyZoomoutClipPath"+e+")"},this.zoomOutGroup).setAttributeNS(Kt,"xlink:href",this.workspace.options.pathToMedia+Mt.url),this.boundEvents.push(Q(this.zoomOutGroup,"pointerdown",null,this.zoom.bind(this,-1)))}createZoomInSvg(e){this.zoomInGroup=L(D.G,{class:"blocklyZoom blocklyZoomIn"},this.svgGroup);const t=L(D.CLIPPATH,{id:"blocklyZoominClipPath"+e},this.zoomInGroup);L(D.RECT,{width:32,height:32},t),L(D.IMAGE,{width:Mt.width,height:Mt.height,x:-32,y:-92,"clip-path":"url(#blocklyZoominClipPath"+e+")"},this.zoomInGroup).setAttributeNS(Kt,"xlink:href",this.workspace.options.pathToMedia+Mt.url),this.boundEvents.push(Q(this.zoomInGroup,"pointerdown",null,this.zoom.bind(this,1)))}zoom(e,t){this.workspace.markFocused(),this.workspace.zoomCenter(e),this.fireZoomEvent(),Ee(),t.stopPropagation(),t.preventDefault()}createZoomResetSvg(e){this.zoomResetGroup=L(D.G,{class:"blocklyZoom blocklyZoomReset"},this.svgGroup);const t=L(D.CLIPPATH,{id:"blocklyZoomresetClipPath"+e},this.zoomResetGroup);L(D.RECT,{width:32,height:32},t),L(D.IMAGE,{width:Mt.width,height:Mt.height,y:-92,"clip-path":"url(#blocklyZoomresetClipPath"+e+")"},this.zoomResetGroup).setAttributeNS(Kt,"xlink:href",this.workspace.options.pathToMedia+Mt.url),this.boundEvents.push(Q(this.zoomResetGroup,"pointerdown",null,this.resetZoom.bind(this)))}resetZoom(e){this.workspace.markFocused();const t=Math.log(this.workspace.options.zoomOptions.startScale/this.workspace.scale)/Math.log(this.workspace.options.zoomOptions.scaleSpeed);this.workspace.beginCanvasTransition(),this.workspace.zoomCenter(t),this.workspace.scrollCenter(),setTimeout(this.workspace.endCanvasTransition.bind(this.workspace),500),this.fireZoomEvent(),Ee(),e.stopPropagation(),e.preventDefault()}fireZoomEvent(){const e=new(Y(M.CLICK))(null,this.workspace.id,"zoom_controls");K(e)}};Ct(` +.blocklyZoom>image, .blocklyZoom>svg>image { + opacity: .4; +} + +.blocklyZoom>image:hover, .blocklyZoom>svg>image:hover { + opacity: .6; +} + +.blocklyZoom>image:active, .blocklyZoom>svg>image:active { + opacity: .8; +} +`);var tb=100,sb=75,ob=50,ib=25,jC={BLOCKS:ob,PROCEDURES:sb,VARIABLES:tb,WORKSPACE_COMMENTS:ib},th={};th.register=_n,th.unregister=hm;var nb=class{constructor(){this.priority=ib}save(e){const t=[];for(const o of e.getTopComments())(e=mi(o,{addCoordinates:!0,saveIds:!0}))&&t.push(e);return t.length?t:null}load(e,t){for(const o of e)wn(o,t,{recordUndo:ge()})}clear(e){for(const t of e.getTopComments())t.dispose()}};_n("workspaceComments",new nb);var Va={};Va.WorkspaceCommentSerializer=nb,Va.append=wn,Va.save=mi;var sh={};sh.register=ia,sh.unregister=pm;var Ka=class{paste(e,t,o){e=e.commentState,o&&(e.x=o.x,e.y=o.y),i.disable$$module$build$src$core$events$utils();let n;try{n=wn(e,t),gm(n)}finally{i.enable$$module$build$src$core$events$utils()}return n?(J()&&K(new(Y(M.COMMENT_CREATE))(n)),i.setSelected$$module$build$src$core$common(n),n):null}};Ka.TYPE="workspace-comment",ia(Ka.TYPE,new Ka);var oh;oh=28,i.config$$module$build$src$core$config={dragRadius:5,flyoutDragRadius:10,snapRadius:oh,connectingSnapRadius:oh,currentConnectionPreference:8,bumpDelay:250},i.config$$module$build$src$core$config;var zC="aria-",UC="role",fs;(function(e){e.GRID="grid",e.GRIDCELL="gridcell",e.GROUP="group",e.LISTBOX="listbox",e.MENU="menu",e.MENUITEM="menuitem",e.MENUITEMCHECKBOX="menuitemcheckbox",e.OPTION="option",e.PRESENTATION="presentation",e.ROW="row",e.TREE="tree",e.TREEITEM="treeitem"})(fs||(fs={}));var vt;(function(e){e.ACTIVEDESCENDANT="activedescendant",e.COLCOUNT="colcount",e.DISABLED="disabled",e.EXPANDED="expanded",e.INVALID="invalid",e.LABEL="label",e.LABELLEDBY="labelledby",e.LEVEL="level",e.ORIENTATION="orientation",e.POSINSET="posinset",e.ROWCOUNT="rowcount",e.SELECTED="selected",e.SETSIZE="setsize",e.VALUEMAX="valuemax",e.VALUEMIN="valuemin"})(vt||(vt={}));var Gn={};Gn.Role=fs,Gn.State=vt,Gn.setRole=uo,Gn.setState=Tt;var ih=class{constructor(){this.menuItems=[],this.roleName=this.element=this.onKeyDownHandler=this.pointerLeaveHandler=this.pointerEnterHandler=this.clickHandler=this.pointerMoveHandler=this.highlightedItem=this.openingCoords=null}addChild(e){this.menuItems.push(e)}render(e){const t=document.createElement("div");t.className="blocklyMenu goog-menu blocklyNonSelectable",t.tabIndex=0,this.roleName&&uo(t,this.roleName),this.element=t;for(let o=0,n;n=this.menuItems[o];o++)t.appendChild(n.createDom());return this.pointerMoveHandler=Q(t,"pointermove",this,this.handlePointerMove,!0),this.clickHandler=Q(t,"pointerup",this,this.handleClick,!0),this.pointerEnterHandler=Q(t,"pointerenter",this,this.handlePointerEnter,!0),this.pointerLeaveHandler=Q(t,"pointerleave",this,this.handlePointerLeave,!0),this.onKeyDownHandler=Q(t,"keydown",this,this.handleKeyEvent),e.appendChild(t),t}getElement(){return this.element}focus(){const e=this.getElement();e&&(e.focus({preventScroll:!0}),$e(e,"blocklyFocused"))}blur(){const e=this.getElement();e&&(e.blur(),st(e,"blocklyFocused"))}setRole(e){this.roleName=e}dispose(){this.pointerMoveHandler&&(ze(this.pointerMoveHandler),this.pointerMoveHandler=null),this.clickHandler&&(ze(this.clickHandler),this.clickHandler=null),this.pointerEnterHandler&&(ze(this.pointerEnterHandler),this.pointerEnterHandler=null),this.pointerLeaveHandler&&(ze(this.pointerLeaveHandler),this.pointerLeaveHandler=null),this.onKeyDownHandler&&(ze(this.onKeyDownHandler),this.onKeyDownHandler=null);for(let e=0,t;t=this.menuItems[e];e++)t.dispose();this.element=null}getMenuItem(e){const t=this.getElement();for(;e&&e!==t;){if(e.classList.contains("blocklyMenuItem")){for(let o=0,n;n=this.menuItems[o];o++)if(n.getElement()===e)return n}e=e.parentElement}return null}setHighlighted(e){var t=this.highlightedItem;if(t&&(t.setHighlighted(!1),this.highlightedItem=null),e){e.setHighlighted(!0),this.highlightedItem=e,t=this.getElement();const o=t==null?void 0:t.parentElement,n=e.getElement();o&&n&&(Jr(n,o),Tt(t,vt.ACTIVEDESCENDANT,e.getId()))}}highlightNext(){const e=this.highlightedItem?this.menuItems.indexOf(this.highlightedItem):-1;this.highlightHelper(e,1)}highlightPrevious(){const e=this.highlightedItem?this.menuItems.indexOf(this.highlightedItem):-1;this.highlightHelper(0>e?this.menuItems.length:e,-1)}highlightFirst(){this.highlightHelper(-1,1)}highlightLast(){this.highlightHelper(this.menuItems.length,-1)}highlightHelper(e,t){e+=t;let o;for(;o=this.menuItems[e];){if(o.isEnabled()){this.setHighlighted(o);break}e+=t}}handlePointerMove(e){Math.max(Math.abs(e.movementX),Math.abs(e.movementY))!==0&&(e=this.getMenuItem(e.target))&&(e.isEnabled()?this.highlightedItem!==e&&this.setHighlighted(e):this.setHighlighted(null))}handleClick(e){const t=this.openingCoords;if(this.openingCoords=null,t&&typeof e.clientX=="number"){const o=new G(e.clientX,e.clientY);if(1>G.distance(t,o))return}(e=this.getMenuItem(e.target))&&e.performAction()}handlePointerEnter(e){this.focus()}handlePointerLeave(e){this.getElement()&&this.setHighlighted(null)}handleKeyEvent(e){if(this.menuItems.length&&!(e.shiftKey||e.ctrlKey||e.metaKey||e.altKey)){var t=this.highlightedItem;switch(e.key){case"Enter":case" ":t&&t.performAction();break;case"ArrowUp":this.highlightPrevious();break;case"ArrowDown":this.highlightNext();break;case"PageUp":case"Home":this.highlightFirst();break;case"PageDown":case"End":this.highlightLast();break;default:return}e.preventDefault(),e.stopPropagation()}}getSize(){const e=this.getElement(),t=bn(e);return t.height=e.scrollHeight,t}},nh=class{constructor(e,t){this.content=e,this.opt_value=t,this.enabled=!0,this.element=null,this.rightToLeft=!1,this.roleName=null,this.highlight=this.checked=this.checkable=!1,this.actionHandler=null}createDom(){const e=document.createElement("div");e.id=S(),this.element=e,e.className="blocklyMenuItem goog-menuitem "+(this.enabled?"":"blocklyMenuItemDisabled goog-menuitem-disabled ")+(this.checked?"blocklyMenuItemSelected goog-option-selected ":"")+(this.highlight?"blocklyMenuItemHighlight goog-menuitem-highlight ":"")+(this.rightToLeft?"blocklyMenuItemRtl goog-menuitem-rtl ":"");const t=document.createElement("div");if(t.className="blocklyMenuItemContent goog-menuitem-content",this.checkable){var o=document.createElement("div");o.className="blocklyMenuItemCheckbox goog-menuitem-checkbox",t.appendChild(o)}return o=this.content,typeof this.content=="string"&&(o=document.createTextNode(this.content)),t.appendChild(o),e.appendChild(t),this.roleName&&uo(e,this.roleName),Tt(e,vt.SELECTED,this.checkable&&this.checked||!1),Tt(e,vt.DISABLED,!this.enabled),e}dispose(){this.element=null}getElement(){return this.element}getId(){return this.element.id}getValue(){let e;return(e=this.opt_value)!=null?e:null}setRightToLeft(e){this.rightToLeft=e}setRole(e){this.roleName=e}setCheckable(e){this.checkable=e}setChecked(e){this.checked=e}setHighlighted(e){this.highlight=e;const t=this.getElement();t&&this.isEnabled()&&(e?($e(t,"blocklyMenuItemHighlight"),$e(t,"goog-menuitem-highlight")):(st(t,"blocklyMenuItemHighlight"),st(t,"goog-menuitem-highlight")))}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}performAction(){this.isEnabled()&&this.actionHandler&&this.actionHandler(this)}onAction(e,t){this.actionHandler=e.bind(t)}},Vn="_TEMP_COLLAPSED_INPUT",Ya="_TEMP_COLLAPSED_FIELD",Nt="MANUALLY_DISABLED",HC={COLLAPSED_FIELD_NAME:Ya,COLLAPSED_INPUT_NAME:Vn,MANUALLY_DISABLED:Nt};(function(e){e[e.VALUE=1]="VALUE",e[e.STATEMENT=3]="STATEMENT",e[e.DUMMY=5]="DUMMY",e[e.CUSTOM=6]="CUSTOM",e[e.END_ROW=7]="END_ROW"})(i.inputTypes$$module$build$src$core$inputs$input_types||(i.inputTypes$$module$build$src$core$inputs$input_types={})),i.inputTypes$$module$build$src$core$inputs$input_types;var Ja=new Set,rh=new WeakSet,ah=new WeakMap,Ai=null,lh=null,rb=0,Xa={};Xa.finishQueuedRenders=ps,Xa.queueRender=Vc,Xa.triggerQueuedRenders=Hs;var ab=function(e,t){window.alert(e),t&&t()},lb=function(e,t){t(window.confirm(e))},cb=function(e,t,o){o(window.prompt(e,t))},ub={confirmInternal:vm},Go={TEST_ONLY:ub};Go.alert=Tn,Go.confirm=ra,Go.prompt=aa,Go.setAlert=bm,Go.setConfirm=ym,Go.setPrompt=_m;var ch,db;i.Msg$$module$build$src$core$msg=Object.create(null),ch=function(e){Object.keys(e).forEach(function(t){i.Msg$$module$build$src$core$msg[t]=e[t]})},db={Msg:i.Msg$$module$build$src$core$msg,setLocale:ch};var Kn=class extends Ii{constructor(e){super(),this.isBlank=typeof e>"u",e&&(this.varId=e.getId(),this.workspaceId=e.workspace.id)}toJson(){const e=super.toJson();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");return e.varId=this.varId,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Kn),t.varId=e.varId,t}},uh=class extends Kn{constructor(e){super(e),this.type=M.VAR_CREATE,e&&(this.varType=e.type,this.varName=e.name)}toJson(){const e=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");return e.varType=this.varType,e.varName=this.varName,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new uh),t.varType=e.varType,t.varName=e.varName,t}run(e){const t=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");e?t.createVariable(this.varName,this.varType,this.varId):t.deleteVariableById(this.varId)}};r(z.EVENT,M.VAR_CREATE,uh);var Yn=class{constructor(e,t,o,n){this.workspace=e,this.name=t,this.type=o||"",this.id=n||k()}getId(){return this.id}static compareByName(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"base"})}},dh="VARIABLE",hh="ijkmnopqrstuvwxyzabcdefgh",hb={generateUniqueNameInternal:Cm},Et={CATEGORY_NAME:dh,TEST_ONLY:hb,VAR_LETTER_OPTIONS:hh};Et.allDeveloperVariables=i.allDeveloperVariables$$module$build$src$core$variables,Et.allUsedVarModels=i.allUsedVarModels$$module$build$src$core$variables,Et.createVariableButtonHandler=$i,Et.flyoutCategory=la,Et.flyoutCategoryBlocks=qc,Et.generateUniqueName=Zc,Et.generateUniqueNameFromOptions=ca,Et.generateVariableFieldDom=Oo,Et.getAddedVariables=kn,Et.getOrCreateVariablePackage=i.getOrCreateVariablePackage$$module$build$src$core$variables,Et.getVariable=i.getVariable$$module$build$src$core$variables,Et.nameUsedWithAnyType=Qc,Et.nameUsedWithConflictingParam=eu,Et.promptName=ua,Et.renameVariable=i.renameVariable$$module$build$src$core$variables;var Ri=class extends Error{},pb=class extends Ri{constructor(e){super("Expected to find a 'type' property, defining the block type"),this.state=e}},Jn=class extends Ri{constructor(e,t,o){super(`The block ${t.toDevString()} is missing a(n) ${e} +connection`),this.block=t,this.state=o}},gb=class extends Ri{constructor(e,t,o,n){super(`The block ${o.toDevString()} could not connect its +${t} to its parent, because: ${e}`),this.childBlock=o,this.childState=n}},mb=class extends Ri{constructor(e){super(`Encountered a real block which is defined as a child of a shadow +block. It is an invariant of Blockly that shadow blocks only have shadow +children`),this.state=e}},fb=class extends Ri{constructor(e,t,o){super(`Cannot add an icon of type '${e}' to the block ${t.toDevString()}, because there is no icon registered with type '${e}'. Make sure that all of your icons have been registered.`),this.block=t,this.state=o}},Vo={};Vo.BadConnectionCheck=gb,Vo.DeserializationError=Ri,Vo.MissingBlockType=pb,Vo.MissingConnection=Jn,Vo.RealChildOfShadow=mb,Vo.UnregisteredIcon=fb;var $b=class{constructor(){this.priority=ob}save(e){const t=[];for(const o of e.getTopBlocks(!1))(e=Vt(o,{addCoordinates:!0,doFullSerialization:!1}))&&t.push(e);return t.length?{languageVersion:0,blocks:t}:null}load(e,t){e=e.blocks;for(const o of e)Ws(o,t,{recordUndo:ge()})}clear(e){for(const t of e.getTopBlocks(!1))t.dispose(!1)}};_n("blocks",new $b);var Xn={};Xn.BlockSerializer=$b,Xn.append=Ws,Xn.appendInternal=bi,Xn.save=Vt;var ft=class{constructor(e){this.name=e}toString(){return this.name}equals(e){return this.name===e.toString()}};ft.MUTATOR=new ft("mutator"),ft.WARNING=new ft("warning"),ft.COMMENT=new ft("comment");var Ko=class extends Ii{constructor(e){super(),this.isBlank=!e,e&&(this.blockId=e.id,this.workspaceId=e.workspace.id)}toJson(){const e=super.toJson();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");return e.blockId=this.blockId,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Ko),t.blockId=e.blockId,t}},Yo=class extends Ko{constructor(e,t,o,n,c){super(e),this.type=M.BLOCK_CHANGE,e&&(this.element=t,this.name=o||void 0,this.oldValue=n,this.newValue=c)}toJson(){const e=super.toJson();if(!this.element)throw Error("The changed element is undefined. Either pass an element to the constructor, or call fromJson");return e.element=this.element,e.name=this.name,e.oldValue=this.oldValue,e.newValue=this.newValue,this.disabledReason&&(e.disabledReason=this.disabledReason),e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Yo),t.element=e.element,t.name=e.name,t.oldValue=e.oldValue,t.newValue=e.newValue,e.disabledReason!==void 0&&(t.disabledReason=e.disabledReason),t}setDisabledReason(e){if(this.element!=="disabled")throw Error('Cannot set the disabled reason for a BlockChange event if the element is not "disabled".');this.disabledReason=e}isNull(){return this.oldValue===this.newValue}run(e){var t=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");if(t=t.getBlockById(this.blockId),!t)throw Error("The associated block is undefined. Either pass a block to the constructor, or call fromJson");const o=t.getIcon(ft.MUTATOR);switch(o&&vi(o)&&o.bubbleIsVisible()&&o.setBubbleVisible(!1),e=e?this.newValue:this.oldValue,this.element){case"field":(t=t.getField(this.name))?t.setValue(e):console.warn("Can't set non-existent field: "+this.name);break;case"comment":t.setCommentText(e||null);break;case"collapsed":t.setCollapsed(!!e);break;case"disabled":var n;t.setDisabledReason(!!e,(n=this.disabledReason)!=null?n:Nt);break;case"inline":t.setInputsInline(!!e);break;case"mutation":n=Yo.getExtraBlockState_(t),t.loadExtraState?t.loadExtraState(JSON.parse(e||"{}")):t.domToMutation&&t.domToMutation(i.textToDom$$module$build$src$core$utils$xml(e||"")),K(new Yo(t,"mutation",null,n,e));break;default:console.warn("Unknown change type: "+this.element)}}static getExtraBlockState_(e){return e.saveExtraState?(e=e.saveExtraState(!0))?JSON.stringify(e):"":e.mutationToDom&&(e=e.mutationToDom())?Es(e):""}};r(z.EVENT,M.BLOCK_CHANGE,Yo);var qa={};qa.clamp=yi,qa.toDegrees=Gm,qa.toRadians=da;var Za=16,bb=1,vb=12,ph=16,Qa=.25,gh=null,Jo=null,Oi="",Mi="",Ue,Ni,Xo,mh=null,vo=null,yb=null,fh={getBoundsInfo:function(){const e=co(mh),t=bn(mh);return{left:e.x,right:e.x+t.width,top:e.y,bottom:e.y+t.height,width:t.width,height:t.height}},getPositionMetrics:function(e,t,o,n){const c=fh.getBoundsInfo(),h=bn(Ue);return t+h.heightc.top?gu(o,n,c,h):t+h.heightdocument.documentElement.clientTop?gu(o,n,c,h):Km(e,c,h)}},Dt={ANIMATION_TIME:Qa,ARROW_HORIZONTAL_PADDING:vb,ARROW_SIZE:Za,BORDER_SIZE:bb,PADDING_Y:ph,TEST_ONLY:fh};Dt.clearContent=ha,Dt.createDom=iu,Dt.getContentDiv=Sn,Dt.getOwner=ru,Dt.getPositionX=En,Dt.hide=ga,Dt.hideIfOwner=pa,Dt.hideWithoutAnimation=Ss,Dt.isVisible=mu,Dt.repositionForWindowResize=$u,Dt.setBoundsElement=nu,Dt.setColour=au,Dt.show=hu,Dt.showPositionedByBlock=Vm,Dt.showPositionedByField=lu;var qn=class{constructor(e){this.workspace=e,this.cursorSvg=this.cursor=null,this.markers=new Map,this.markerSvg=null}registerMarker(e,t){this.markers.has(e)&&this.unregisterMarker(e),t.setDrawer(this.workspace.getRenderer().makeMarkerDrawer(this.workspace,t)),this.setMarkerSvg(t.getDrawer().createDom()),this.markers.set(e,t)}unregisterMarker(e){const t=this.markers.get(e);if(t)t.dispose(),this.markers.delete(e);else throw Error("Marker with ID "+e+" does not exist. Can only unregister markers that exist.")}getCursor(){return this.cursor}getMarker(e){return this.markers.get(e)||null}setCursor(e){this.cursor&&this.cursor.getDrawer()&&this.cursor.getDrawer().dispose(),(this.cursor=e)&&(e=this.workspace.getRenderer().makeMarkerDrawer(this.workspace,this.cursor),this.cursor.setDrawer(e),this.setCursorSvg(this.cursor.getDrawer().createDom()))}setCursorSvg(e){e?(this.workspace.getBlockCanvas().appendChild(e),this.cursorSvg=e):this.cursorSvg=null}setMarkerSvg(e){e?this.workspace.getBlockCanvas()&&(this.cursorSvg?this.workspace.getBlockCanvas().insertBefore(e,this.cursorSvg):this.workspace.getBlockCanvas().appendChild(e)):this.markerSvg=null}updateMarkers(){this.workspace.keyboardAccessibilityMode&&this.cursorSvg&&this.workspace.getCursor().draw()}dispose(){const e=Object.keys(this.markers);for(let t=0,o;o=e[t];t++)this.unregisterMarker(o);this.markers.clear(),this.cursor&&(this.cursor.dispose(),this.cursor=null)}};qn.LOCAL_MARKER="local_marker_1";var Li={};Li.commonWordPrefix=bu,Li.commonWordSuffix=vu,Li.isNumber=i.isNumber$$module$build$src$core$utils$string,Li.shortestStringLength=In,Li.wrap=i.wrap$$module$build$src$core$utils$string;var el=void 0,Zn=!1,Bi=!1,_b=50,wb=0,qo=0,$h=0,bh=0,es=null,Qn=null,vh=0,yh=10,Cb=10,Tb=750,tl=5,$t=null,Yt={HOVER_MS:Tb,LIMIT:_b,MARGINS:tl,OFFSET_X:vh,OFFSET_Y:yh,RADIUS_OK:Cb};Yt.bindMouseEvents=wi,Yt.block=ku,Yt.createDom=wu,Yt.dispose=Tu,Yt.getCustomTooltip=qm,Yt.getDiv=Qm,Yt.getTooltipOfObject=_i,Yt.hide=Gs,Yt.isVisible=Zm,Yt.setCustomTooltip=Xm,Yt.unbindMouseEvents=fa,Yt.unblock=Su;var _h=.45,wh=.65,kb={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},ts={};ts.blend=No,ts.getHsvSaturation=Eu,ts.getHsvValue=Iu,ts.hexToRgb=$a,ts.hsvToHex=ba,ts.hueToHex=xu,ts.names=kb,ts.parse=Mo,ts.rgbToHex=xn,ts.setHsvSaturation=af,ts.setHsvValue=lf;var er={};er.checkMessageReferences=cf,er.parseBlockColour=Ci,er.replaceMessageReferences=dt,er.tokenizeInterpolation=Du;var Ze=class{constructor(e,t,o){this.DEFAULT_VALUE=null,this.name=void 0,this.constants_=this.mouseDownWrapper=this.textContent_=this.textElement_=this.borderRect_=this.fieldGroup_=this.markerSvg=this.cursorSvg=this.tooltip=this.validator_=null,this.disposed=!1,this.maxDisplayLength=50,this.sourceBlock_=null,this.enabled_=this.visible_=this.isDirty_=!0,this.suffixField=this.prefixField=this.clickTarget_=null,this.EDITABLE=!0,this.SERIALIZABLE=!1,this.CURSOR="",this.value_="DEFAULT_VALUE"in new.target.prototype?new.target.prototype.DEFAULT_VALUE:this.DEFAULT_VALUE,this.size_=new Ne(0,0),e!==Ze.SKIP_SETUP&&(o&&this.configure_(o),this.setValue(e),t&&this.setValidator(t))}configure_(e){e.tooltip&&this.setTooltip(dt(e.tooltip))}setSourceBlock(e){if(this.sourceBlock_)throw Error("Field already bound to a block");this.sourceBlock_=e}getConstants(){return!this.constants_&&this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&this.sourceBlock_.workspace.rendered&&(this.constants_=this.sourceBlock_.workspace.getRenderer().getConstants()),this.constants_}getSourceBlock(){return this.sourceBlock_}init(){this.fieldGroup_||(this.fieldGroup_=L(D.G,{}),this.isVisible()||(this.fieldGroup_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),this.initView(),this.updateEditable(),this.setTooltip(this.tooltip),this.bindEvents_(),this.initModel(),this.applyColour())}initView(){this.createBorderRect_(),this.createTextElement_()}initModel(){}isFullBlockField(){return!this.borderRect_}createBorderRect_(){this.borderRect_=L(D.RECT,{rx:this.getConstants().FIELD_BORDER_RECT_RADIUS,ry:this.getConstants().FIELD_BORDER_RECT_RADIUS,x:0,y:0,height:this.size_.height,width:this.size_.width,class:"blocklyFieldRect"},this.fieldGroup_)}createTextElement_(){this.textElement_=L(D.TEXT,{class:"blocklyText"},this.fieldGroup_),this.getConstants().FIELD_TEXT_BASELINE_CENTER&&this.textElement_.setAttribute("dominant-baseline","central"),this.textContent_=document.createTextNode(""),this.textElement_.appendChild(this.textContent_)}bindEvents_(){const e=this.getClickTarget_();if(!e)throw Error("A click target has not been set.");wi(e),this.mouseDownWrapper=Q(e,"pointerdown",this,this.onMouseDown_)}fromXml(e){this.setValue(e.textContent)}toXml(e){return e.textContent=this.getValue(),e}saveState(e){return e=this.saveLegacyState(Ze),e!==null?e:this.getValue()}loadState(e){this.loadLegacyState(Ze,e)||this.setValue(e)}saveLegacyState(e){return e.prototype.saveState===this.saveState&&e.prototype.toXml!==this.toXml?(e=i.createElement$$module$build$src$core$utils$xml("field"),e.setAttribute("name",this.name||""),gi(this.toXml(e)).replace(' xmlns="https://developers.google.com/blockly/xml"',"")):null}loadLegacyState(e,t){return e.prototype.loadState===this.loadState&&e.prototype.fromXml!==this.fromXml?(this.fromXml(i.textToDom$$module$build$src$core$utils$xml(t)),!0):!1}dispose(){pa(this),Bo(this);let e;(e=this.getSourceBlock())!=null&&e.isDeadOrDying()||Ve(this.fieldGroup_),this.disposed=!0}updateEditable(){const e=this.fieldGroup_,t=this.getSourceBlock();this.EDITABLE&&e&&t&&(this.enabled_&&t.isEditable()?($e(e,"blocklyEditableText"),st(e,"blocklyNonEditableText"),e.style.cursor=this.CURSOR):($e(e,"blocklyNonEditableText"),st(e,"blocklyEditableText"),e.style.cursor=""))}setEnabled(e){this.enabled_=e,this.updateEditable()}isEnabled(){return this.enabled_}isClickable(){return this.enabled_&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()&&this.showEditor_!==Ze.prototype.showEditor_}isClickableInFlyout(e){return!e}isCurrentlyEditable(){return this.enabled_&&this.EDITABLE&&!!this.sourceBlock_&&this.sourceBlock_.isEditable()}isSerializable(){let e=!1;return this.name&&(this.SERIALIZABLE?e=!0:this.EDITABLE&&(console.warn("Detected an editable field that was not serializable. Please define SERIALIZABLE property as true on all editable custom fields. Proceeding with serialization."),e=!0)),e}isVisible(){return this.visible_}setVisible(e){if(this.visible_!==e){this.visible_=e;var t=this.fieldGroup_;t&&(t.style.display=e?"block":"none")}}setValidator(e){this.validator_=e}getValidator(){return this.validator_}getSvgRoot(){return this.fieldGroup_}getBorderRect(){if(!this.borderRect_)throw Error(`The border rectangle is ${this.borderRect_}.`);return this.borderRect_}getTextElement(){if(!this.textElement_)throw Error(`The text element is ${this.textElement_}.`);return this.textElement_}getTextContent(){if(!this.textContent_)throw Error(`The text content is ${this.textContent_}.`);return this.textContent_}applyColour(){}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_()),this.updateSize_()}showEditor(e){this.isClickable()&&this.showEditor_(e)}showEditor_(e){}repositionForWindowResize(){return!1}updateSize_(e){const t=this.getConstants();e=e!==void 0?e:this.isFullBlockField()?0:this.getConstants().FIELD_BORDER_RECT_X_PADDING;let o=2*e,n=t.FIELD_TEXT_HEIGHT,c=0;this.textElement_&&(c=$n(this.textElement_,t.FIELD_TEXT_FONTSIZE,t.FIELD_TEXT_FONTWEIGHT,t.FIELD_TEXT_FONTFAMILY),o+=c),this.isFullBlockField()||(n=Math.max(n,t.FIELD_BORDER_RECT_HEIGHT)),this.size_.height=n,this.size_.width=o,this.positionTextElement_(e,c),this.positionBorderRect_()}positionTextElement_(e,t){if(this.textElement_){var o=this.getConstants(),n=this.size_.height/2,c;this.textElement_.setAttribute("x",String((c=this.getSourceBlock())!=null&&c.RTL?this.size_.width-t-e:e)),this.textElement_.setAttribute("y",String(o.FIELD_TEXT_BASELINE_CENTER?n:n-o.FIELD_TEXT_HEIGHT/2+o.FIELD_TEXT_BASELINE))}}positionBorderRect_(){this.borderRect_&&(this.borderRect_.setAttribute("width",String(this.size_.width)),this.borderRect_.setAttribute("height",String(this.size_.height)),this.borderRect_.setAttribute("rx",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)),this.borderRect_.setAttribute("ry",String(this.getConstants().FIELD_BORDER_RECT_RADIUS)))}getSize(){return this.isVisible()?(this.isDirty_?(this.render_(),this.isDirty_=!1):this.visible_&&this.size_.width===0&&(this.render_(),this.size_.width!==0&&console.warn("Deprecated use of setting size_.width to 0 to rerender a field. Set field.isDirty_ to true instead.")),this.size_):new Ne(0,0)}getScaledBBox(){let e;var t=this.getSourceBlock();if(!t)throw new gt;if(this.isFullBlockField()){var o=this.sourceBlock_.getHeightWidth();const n=t.workspace.scale;e=this.getAbsoluteXY_(),t=(o.width+1)*n,o=(o.height+1)*n,U$?(e.x+=1.5*n,e.y+=1.5*n):(e.x-=.5*n,e.y-=.5*n)}else o=this.borderRect_.getBoundingClientRect(),e=co(this.borderRect_),t=o.width,o=o.height;return new Je(e.y,e.y+o,e.x,e.x+t)}onLocationChange(e){}getDisplayText_(){let e=this.getText();return e?(e.length>this.maxDisplayLength&&(e=e.substring(0,this.maxDisplayLength-2)+"…"),e=e.replace(/\s/g,Ze.NBSP),this.sourceBlock_&&this.sourceBlock_.RTL&&(e+="‏"),e):Ze.NBSP}getText(){const e=this.getText_();return String(e!==null?e:this.getValue())}getText_(){return null}markDirty(){this.isDirty_=!0,this.constants_=null}forceRerender(){this.isDirty_=!0,this.sourceBlock_&&this.sourceBlock_.rendered&&this.sourceBlock_.queueRender()}setValue(e,t=!0){if(e!==null){var o=i.getGroup$$module$build$src$core$events$utils();o||i.setGroup$$module$build$src$core$events$utils(!0);try{const B=this.doClassValidation_(e),ie=this.processValidation(e,B,t);if(!(ie instanceof Error)){var n,c=(n=this.getValidator())==null?void 0:n.call(this,ie),h=this.processValidation(ie,c,t);if(!(h instanceof Error)){var $=this.sourceBlock_;if(!$||!$.disposed){var T=this.getValue();T===h?this.doValueUpdate_(h):(this.doValueUpdate_(h),t&&$&&J()&&K(new(Y(M.BLOCK_CHANGE))($,"field",this.name||null,T,h)),this.isDirty_&&this.forceRerender())}}}}finally{i.setGroup$$module$build$src$core$events$utils(o)}}}processValidation(e,t,o){return t===null?(this.doValueInvalid_(e,o),this.isDirty_&&this.forceRerender(),Error()):t===void 0?e:t}getValue(){return this.value_}doClassValidation_(e){return e??null}doValueUpdate_(e){this.value_=e,this.isDirty_=!0}doValueInvalid_(e,t){}onMouseDown_(e){this.sourceBlock_&&!this.sourceBlock_.isDeadOrDying()&&(e=this.sourceBlock_.workspace.getGesture(e))&&e.setStartField(this)}setTooltip(e){e||e===""||(e=this.sourceBlock_);const t=this.getClickTarget_();t?t.tooltip=e:this.tooltip=e}getTooltip(){const e=this.getClickTarget_();return _i(e||{tooltip:this.tooltip})}getClickTarget_(){return this.clickTarget_||this.getSvgRoot()}getAbsoluteXY_(){return co(this.getClickTarget_())}referencesVariables(){return!1}refreshVariableName(){}getParentInput(){let e=null;const t=this.getSourceBlock();if(!t)throw new gt;const o=t.inputList;for(let n=0;n{o.stopPropagation()})}addModelUpdateBindings(){this.view.addTextChangeListener((e,t)=>void super.setText(t)),this.view.addSizeChangeListener((e,t)=>void super.setSize(t)),this.view.addOnCollapseListener(()=>void super.setCollapsed(this.view.isCollapsed())),this.view.addDisposeListener(()=>{this.isDeadOrDying()||this.dispose()})}setText(e){this.view.setText(e)}setSize(e){this.view.setSize(e)}setCollapsed(e){this.view.setCollapsed(e)}setEditable(e){super.setEditable(e),this.view.setEditable(this.isEditable())}getSvgRoot(){return this.view.getSvgRoot()}getSize(){return super.getSize()}getBoundingRectangle(){const e=this.getRelativeToSurfaceXY();var t,o;const n=(o=(t=this.view)==null?void 0:t.getSize())!=null?o:this.getSize();return this.workspace.RTL?(t=e.x-n.width,o=e.x):(t=e.x,o=e.x+n.width),new Je(e.y,e.y+n.height,t,o)}moveBy(e,t,o){const n=this.getRelativeToSurfaceXY();e=new G(n.x+e,n.y+t),this.moveTo(e,o)}moveTo(e,t){super.moveTo(e,t),this.view.moveTo(e)}moveDuringDrag(e){this.location=e,this.view.moveTo(e)}setDragging(e){e?$e(this.getSvgRoot(),"blocklyDragging"):st(this.getSvgRoot(),"blocklyDragging")}dispose(){this.disposing=!0,this.view.isDeadOrDying()||this.view.dispose(),super.dispose()}startGesture(e){const t=this.workspace.getGesture(e);if(t){if(_t(e))e.stopPropagation();else{t.handleCommentStart(e,this);let o;(o=this.workspace.getLayerManager())==null||o.append(this,yo)}i.setSelected$$module$build$src$core$common(this)}}setDeleteStyle(e){e?$e(this.getSvgRoot(),"blocklyDraggingDelete"):st(this.getSvgRoot(),"blocklyDraggingDelete")}isMovable(){return this.dragStrategy.isMovable()}startDrag(){this.dragStrategy.startDrag()}drag(e){this.dragStrategy.drag(e)}endDrag(){this.dragStrategy.endDrag()}revertDrag(){this.dragStrategy.revertDrag()}select(){$e(this.getSvgRoot(),"blocklySelected")}unselect(){st(this.getSvgRoot(),"blocklySelected")}toCopyData(){return{paster:Ka.TYPE,commentState:mi(this,{addCoordinates:!0})}}showContextMenu(e){const t=Ae.registry.getContextMenuOptions(Ae.ScopeType.COMMENT,{comment:this});An(e,t,this.workspace.RTL,this.workspace)}snapToGrid(){if(!this.isDeadOrDying()){var e=this.workspace.getGrid();if(e!=null&&e.shouldSnap()){var t=this.getRelativeToSurfaceXY();e=e.alignXY(t),e!==t&&this.moveTo(e,["snap"])}}}},At={};At.appendDomToWorkspace=Tf,At.blockToDom=ho,At.blockToDomWithXY=Mn,At.clearWorkspaceAndLoadFromXml=Cf,At.deleteNext=Of,At.domToBlock=i.domToBlock$$module$build$src$core$xml,At.domToBlockInternal=Po,At.domToPrettyText=wf,At.domToText=Es,At.domToVariables=Uu,At.domToWorkspace=i.domToWorkspace$$module$build$src$core$xml,At.loadWorkspaceComment=zu,At.saveWorkspaceComment=On,At.variablesToDom=Fu,At.workspaceToDom=vf;var Th=class extends Ko{constructor(e){super(e),this.type=M.BLOCK_CREATE,e&&(e.isShadow()&&(this.recordUndo=!1),this.xml=Mn(e),this.ids=me(e),this.json=Vt(e,{addCoordinates:!0}))}toJson(){const e=super.toJson();if(!this.xml)throw Error("The block XML is undefined. Either pass a block to the constructor, or call fromJson");if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");return e.xml=Es(this.xml),e.ids=this.ids,e.json=this.json,this.recordUndo||(e.recordUndo=this.recordUndo),e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Th),t.xml=i.textToDom$$module$build$src$core$utils$xml(e.xml),t.ids=e.ids,t.json=e.json,e.recordUndo!==void 0&&(t.recordUndo=e.recordUndo),t}run(e){const t=this.getEventWorkspace_();if(!this.json)throw Error("The block JSON is undefined. Either pass a block to the constructor, or call fromJson");if(!this.ids)throw Error("The block IDs are undefined. Either pass a block to the constructor, or call fromJson");if(!GC(t,this.ids))if(e)Ws(this.json,t);else for(e=0;ee.getBlockById(o)).filter(o=>o&&o.isShadow()).length===t.length};r(z.EVENT,M.BLOCK_CREATE,Th);var kh=class extends gs{constructor(e,t){super(t),this.type=M.THEME_CHANGE,this.themeName=e}toJson(){const e=super.toJson();if(!this.themeName)throw Error("The theme name is undefined. Either pass a theme name to the constructor, or call fromJson");return e.themeName=this.themeName,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new kh),t.themeName=e.themeName,t}};r(z.EVENT,M.THEME_CHANGE,kh);var Sh=class extends gs{constructor(e,t,o,n,c){super(n),this.type=M.VIEWPORT_CHANGE,this.viewTop=e,this.viewLeft=t,this.scale=o,this.oldScale=c}toJson(){const e=super.toJson();if(this.viewTop===void 0)throw Error("The view top is undefined. Either pass a value to the constructor, or call fromJson");if(this.viewLeft===void 0)throw Error("The view left is undefined. Either pass a value to the constructor, or call fromJson");if(this.scale===void 0)throw Error("The scale is undefined. Either pass a value to the constructor, or call fromJson");if(this.oldScale===void 0)throw Error("The old scale is undefined. Either pass a value to the constructor, or call fromJson");return e.viewTop=this.viewTop,e.viewLeft=this.viewLeft,e.scale=this.scale,e.oldScale=this.oldScale,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Sh),t.viewTop=e.viewTop,t.viewLeft=e.viewLeft,t.scale=e.scale,t.oldScale=e.oldScale,t}};r(z.EVENT,M.VIEWPORT_CHANGE,Sh);var ne;(function(e){e[e.INPUT_VALUE=1]="INPUT_VALUE",e[e.OUTPUT_VALUE=2]="OUTPUT_VALUE",e[e.NEXT_STATEMENT=3]="NEXT_STATEMENT",e[e.PREVIOUS_STATEMENT=4]="PREVIOUS_STATEMENT"})(ne||(ne={}));var zi=class{constructor(e){this.connectionChecker=e,this.connections=[]}addConnection(e,t){t=this.calculateIndexForYPos(t),this.connections.splice(t,0,e)}findIndexOfConnection(e,t){if(!this.connections.length)return-1;const o=this.calculateIndexForYPos(t);if(o>=this.connections.length)return-1;t=e.y;let n=o;for(;0<=n&&this.connections[n].y===t;){if(this.connections[n]===e)return n;n--}for(n=o;ne)o=n;else{t=n;break}}return t}removeConnection(e,t){if(e=this.findIndexOfConnection(e,t),e===-1)throw Error("Unable to find connection in connectionDB.");this.connections.splice(e,1)}getNeighbours(e,t){function o(ie){const it=c-n[ie].x,ot=h-n[ie].y;return Math.sqrt(it*it+ot*ot)<=t&&B.push(n[ie]),ot(this.flyout?i.config$$module$build$src$core$config.flyoutDragRadius:i.config$$module$build$src$core$config.dragRadius)}updateIsDraggingFromFlyout(){let e;if(!this.targetBlock||(e=this.flyout)==null||!e.isBlockCreatable(this.targetBlock))return!1;if(!this.flyout.targetWorkspace)throw Error(`Cannot update dragging from the flyout because the ' + + 'flyout's target workspace is undefined`);return!this.flyout.isScrollable()||this.flyout.isDragTowardWorkspace(this.currentDragDeltaXY)?(this.startWorkspace_=this.flyout.targetWorkspace,this.startWorkspace_.updateScreenCalculationsIfScrolled(),i.getGroup$$module$build$src$core$events$utils()||i.setGroup$$module$build$src$core$events$utils(!0),this.startBlock=null,this.targetBlock=this.flyout.createBlock(this.targetBlock),i.setSelected$$module$build$src$core$common(this.targetBlock),!0):!1}updateIsDraggingWorkspace(){if(!this.startWorkspace_)throw Error("Cannot update dragging the workspace because the start workspace is undefined");(this.flyout?this.flyout.isScrollable():this.startWorkspace_&&this.startWorkspace_.isDraggable())&&(this.dragging=!0,this.workspaceDragger=new Db(this.startWorkspace_),this.workspaceDragger.startDrag())}updateIsDragging(e){if(!this.startWorkspace_)throw Error("Cannot update dragging because the start workspace is undefined");if(this.calledUpdateIsDragging)throw Error("updateIsDragging_ should only be called once per gesture.");this.calledUpdateIsDragging=!0,this.flyout&&this.updateIsDraggingFromFlyout();const t=x();t&&Fo(t)&&t.isMovable()?(this.dragging=!0,this.dragger=this.createDragger(t,this.startWorkspace_),this.dragger.onDragStart(e),this.dragger.onDrag(e,this.currentDragDeltaXY)):this.updateIsDraggingWorkspace()}createDragger(e,t){return new(w(z.BLOCK_DRAGGER,this.creatorWorkspace.options,!0))(e,t)}doStart(e){if(!this.startWorkspace_)throw Error("Cannot start the touch gesture becauase the start workspace is undefined");this.isPinchZoomEnabled=this.startWorkspace_.options.zoomOptions&&this.startWorkspace_.options.zoomOptions.pinch,_t(e)?this.cancel():(this.gestureHasStarted=!0,ki(),this.startWorkspace_.updateScreenCalculationsIfScrolled(),this.startWorkspace_.isMutator&&this.startWorkspace_.resize(),this.currentDropdownOwner=ru(),this.startWorkspace_.hideChaff(!!this.flyout),this.startWorkspace_.markFocused(),this.mostRecentEvent=e,ku(),ye(e)?this.handleRightClick(e):(e.type.toLowerCase()==="pointerdown"&&e.pointerType!=="mouse"&&Ye(e,this),this.mouseDownXY=new G(e.clientX,e.clientY),this.bindMouseEvents(e),this.isEnding_||this.handleTouchStart(e)))}bindMouseEvents(e){this.boundEvents.push(Q(document,"pointerdown",null,this.handleStart.bind(this),!0)),this.boundEvents.push(Q(document,"pointermove",null,this.handleMove.bind(this),!0)),this.boundEvents.push(Q(document,"pointerup",null,this.handleUp.bind(this),!0)),e.preventDefault(),e.stopPropagation()}handleStart(e){this.isDragging()||(this.handleTouchStart(e),this.isMultiTouch()&&Ce())}handleMove(e){this.isDragging()&&be(e)||!this.isMultiTouch()?(this.updateFromEvent(e),this.workspaceDragger?this.workspaceDragger.drag(this.currentDragDeltaXY):this.dragger&&this.dragger.onDrag(this.mostRecentEvent,this.currentDragDeltaXY),e.preventDefault(),e.stopPropagation()):this.isMultiTouch()&&(this.handleTouchMove(e),Ce())}handleUp(e){if(this.isDragging()||this.handleTouchEnd(e),!this.isMultiTouch()||this.isDragging()){if(!be(e))return;if(this.updateFromEvent(e),Ce(),this.isEnding_){console.log("Trying to end a gesture recursively.");return}this.isEnding_=!0,this.dragger?this.dragger.onDragEnd(e,this.currentDragDeltaXY):this.workspaceDragger?this.workspaceDragger.endDrag(this.currentDragDeltaXY):this.isBubbleClick()||this.isCommentClick()||(this.isFieldClick()?this.doFieldClick():this.isIconClick()?this.doIconClick():this.isBlockClick()?this.doBlockClick():this.isWorkspaceClick()&&this.doWorkspaceClick(e))}e.preventDefault(),e.stopPropagation(),this.dispose()}handleTouchStart(e){var t=Le(e);this.cachedPoints.set(t,this.getTouchPoint(e));var o=Array.from(this.cachedPoints.keys());o.length===2&&(t=this.cachedPoints.get(o[0]),o=this.cachedPoints.get(o[1]),this.startDistance=G.distance(t,o),this.multiTouch=!0,e.preventDefault())}handleTouchMove(e){const t=Le(e);this.cachedPoints.set(t,this.getTouchPoint(e)),this.isPinchZoomEnabled&&this.cachedPoints.size===2?this.handlePinch(e):(this.updateFromEvent(e),this.workspaceDragger?this.workspaceDragger.drag(this.currentDragDeltaXY):this.dragger&&this.dragger.onDrag(this.mostRecentEvent,this.currentDragDeltaXY),e.preventDefault(),e.stopPropagation())}handlePinch(e){var t=Array.from(this.cachedPoints.keys()),o=this.cachedPoints.get(t[0]);if(t=this.cachedPoints.get(t[1]),o=G.distance(o,t)/this.startDistance,0this.previousScale){if(t=o-this.previousScale,t=0this.cachedPoints.size&&(this.cachedPoints.clear(),this.previousScale=0)}getTouchPoint(e){return this.startWorkspace_?new G(e.pageX,e.pageY):null}isMultiTouch(){return this.multiTouch}cancel(){this.isEnding_||(Ce(),this.dragger?this.dragger.onDragEnd(this.mostRecentEvent,this.currentDragDeltaXY):this.workspaceDragger&&this.workspaceDragger.endDrag(this.currentDragDeltaXY),this.dispose())}handleRightClick(e){this.targetBlock?(this.bringBlockToFront(),this.targetBlock.workspace.hideChaff(!!this.flyout),this.targetBlock.showContextMenu(e)):this.startBubble?this.startBubble.showContextMenu(e):this.startComment?(this.startComment.workspace.hideChaff(),this.startComment.showContextMenu(e)):this.startWorkspace_&&!this.flyout&&(this.startWorkspace_.hideChaff(),this.startWorkspace_.showContextMenu(e)),e.preventDefault(),e.stopPropagation(),this.dispose()}handleWsStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleWsStart, but the gesture had already been started.");this.setStartWorkspace(t),this.mostRecentEvent=e,this.startBlock||this.startBubble||this.startComment||i.setSelected$$module$build$src$core$common(null),this.doStart(e)}fireWorkspaceClick(e){K(new(Y(M.CLICK))(null,e.id,"workspace"))}handleFlyoutStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleFlyoutStart, but the gesture had already been started.");this.setStartFlyout(t),this.handleWsStart(e,t.getWorkspace())}handleBlockStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleBlockStart, but the gesture had already been started.");this.setStartBlock(t),this.mostRecentEvent=e}handleBubbleStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleBubbleStart, but the gesture had already been started.");this.setStartBubble(t),this.mostRecentEvent=e}handleCommentStart(e,t){if(this.gestureHasStarted)throw Error("Tried to call gesture.handleCommentStart, but the gesture had already been started.");this.setStartComment(t),this.mostRecentEvent=e}doFieldClick(){if(!this.startField)throw Error("Cannot do a field click because the start field is undefined");this.currentDropdownOwner!==this.startField&&this.startField.showEditor(this.mostRecentEvent),this.bringBlockToFront()}doIconClick(){if(!this.startIcon)throw Error("Cannot do an icon click because the start icon is undefined");this.bringBlockToFront(),this.startIcon.onClick()}doBlockClick(){if(this.flyout&&this.flyout.autoClose){if(!this.targetBlock)throw Error("Cannot do a block click because the target block is undefined");if(this.targetBlock.isEnabled()){i.getGroup$$module$build$src$core$events$utils()||i.setGroup$$module$build$src$core$events$utils(!0);var e=this.flyout.createBlock(this.targetBlock);e.snapToGrid(),e.bumpNeighbours()}}else{if(!this.startWorkspace_)throw Error("Cannot do a block click because the start workspace is undefined");e=new(Y(M.CLICK))(this.startBlock,this.startWorkspace_.id,"block"),K(e)}this.bringBlockToFront(),i.setGroup$$module$build$src$core$events$utils(!1)}doWorkspaceClick(e){e=this.creatorWorkspace,x()&&x().unselect(),this.fireWorkspaceClick(this.startWorkspace_||e)}bringBlockToFront(){this.targetBlock&&!this.flyout&&this.targetBlock.bringToFront()}setStartField(e){if(this.gestureHasStarted)throw Error("Tried to call gesture.setStartField, but the gesture had already been started.");this.startField||(this.startField=e)}setStartIcon(e){if(this.gestureHasStarted)throw Error("Tried to call gesture.setStartIcon, but the gesture had already been started.");this.startIcon||(this.startIcon=e)}setStartBubble(e){this.startBubble||(this.startBubble=e)}setStartComment(e){this.startComment||(this.startComment=e)}setStartBlock(e){this.startBlock||this.startBubble||(this.startBlock=e,i.setSelected$$module$build$src$core$common(this.startBlock),e.isInFlyout&&e!==e.getRootBlock()?this.setTargetBlock(e.getRootBlock()):this.setTargetBlock(e))}setTargetBlock(e){e.isShadow()?this.setTargetBlock(e.getParent()):this.targetBlock=e}setStartWorkspace(e){this.startWorkspace_||(this.startWorkspace_=e)}setStartFlyout(e){this.flyout||(this.flyout=e)}isBubbleClick(){return!!this.startBubble&&!this.hasExceededDragRadius}isCommentClick(){return!!this.startComment&&!this.hasExceededDragRadius}isBlockClick(){return!!this.startBlock&&!this.hasExceededDragRadius&&!this.isFieldClick()&&!this.isIconClick()}isFieldClick(){return this.startField?this.startField.isClickable()&&!this.hasExceededDragRadius&&(!this.flyout||this.startField.isClickableInFlyout(this.flyout.autoClose)):!1}isIconClick(){if(!this.startIcon)return!1;const e=!this.flyout||!this.startIcon.isClickableInFlyout||this.startIcon.isClickableInFlyout(this.flyout.autoClose);return!this.hasExceededDragRadius&&e}isWorkspaceClick(){return!this.startBlock&&!this.startBubble&&!this.startField&&!this.hasExceededDragRadius}getCurrentDragger(){let e,t;return(t=(e=this.workspaceDragger)!=null?e:this.dragger)!=null?t:null}isDragging(){return this.dragging}hasStarted(){return this.gestureHasStarted}static inProgress(){const e=oe();for(let t=0,o;o=e[t];t++)if(o.currentGesture_)return!0;return!1}},Eh=class{constructor(e,t){this.pattern=e,this.scale=1;let o;this.spacing=(o=t.spacing)!=null?o:0;let n;this.length=(n=t.length)!=null?n:1,this.line2=(this.line1=e.firstChild)&&this.line1.nextSibling;let c;this.snapToGrid=(c=t.snap)!=null?c:!1}setSpacing(e){this.spacing=e,this.update(this.scale)}getSpacing(){return this.spacing}setLength(e){this.length=e,this.update(this.scale)}getLength(){return this.length}setSnapToGrid(e){this.snapToGrid=e}shouldSnap(){return this.snapToGrid}getPatternId(){return this.pattern.id}update(e){this.scale=e;var t=this.spacing*e;this.pattern.setAttribute("width",`${t}`),this.pattern.setAttribute("height",`${t}`),t=Math.floor(this.spacing/2)+.5;let o=t-this.length/2,n=t+this.length/2;t*=e,o*=e,n*=e,this.setLineAttributes(this.line1,e,o,n,t,t),this.setLineAttributes(this.line2,e,t,t,o,n)}setLineAttributes(e,t,o,n,c,h){e&&(e.setAttribute("stroke-width",`${t}`),e.setAttribute("x1",`${o}`),e.setAttribute("y1",`${c}`),e.setAttribute("x2",`${n}`),e.setAttribute("y2",`${h}`))}moveTo(e,t){this.pattern.setAttribute("x",`${e}`),this.pattern.setAttribute("y",`${t}`)}alignXY(e){var t=this.getSpacing();const o=t/2,n=Math.round(Math.round((e.x-o)/t)*t+o);return t=Math.round(Math.round((e.y-o)/t)*t+o),n===e.x&&t===e.y?e:new G(n,t)}static createDom(e,t,o){e=L(D.PATTERN,{id:"blocklyGridPattern"+e,patternUnits:"userSpaceOnUse"},o);let n,c;if(0<((n=t.length)!=null?n:1)&&0<((c=t.spacing)!=null?c:0)){L(D.LINE,{stroke:t.colour},e);let h;(h=t.length)!=null&&h&&L(D.LINE,{stroke:t.colour},e)}else L(D.LINE,{},e);return e}},YC=class{constructor(e){this.workspace=e,this.layers=new Map,(e=e.getInjectionDiv())&&(this.dragLayer=this.createDragLayer(e),this.animationLayer=this.createAnimationLayer(e)),e=this.createLayer(yo),$e(e,"blocklyBlockCanvas"),e=this.createLayer(rl),$e(e,"blocklyBubbleCanvas")}createDragLayer(e){const t=L(D.SVG,{class:"blocklyBlockDragSurface",xmlns:Un,"xmlns:html":As,"xmlns:xlink":Kt,version:"1.1"});return e.append(t),L(D.G,{},t)}createAnimationLayer(e){const t=L(D.SVG,{class:"blocklyAnimationLayer",xmlns:Un,"xmlns:html":As,"xmlns:xlink":Kt,version:"1.1"});return e.append(t),L(D.G,{},t)}appendToAnimationLayer(e){let t;const o=(t=this.dragLayer)==null?void 0:t.getAttribute("transform");if(o){let c;(c=this.animationLayer)==null||c.setAttribute("transform",o)}let n;(n=this.animationLayer)==null||n.appendChild(e.getSvgRoot())}translateLayers(e,t){e=`translate(${e.x}, ${e.y}) scale(${t})`;let o;(o=this.dragLayer)==null||o.setAttribute("transform",e);for(const[,n]of this.layers)n.setAttribute("transform",e)}moveToDragLayer(e){let t;(t=this.dragLayer)==null||t.appendChild(e.getSvgRoot())}moveOffDragLayer(e,t){this.append(e,t)}append(e,t){this.layers.has(t)||this.createLayer(t);let o;(o=this.layers.get(t))==null||o.appendChild(e.getSvgRoot())}createLayer(e){const t=this.workspace.getSvgGroup(),o=L(D.G,{});let n=!1;const c=[...this.layers].sort((h,$)=>h[0]-$[0]);for(const[h,$]of c)if(et[1]===e)?e:(this.sourceBlock_&&console.warn("Cannot set the dropdown's value to an unavailable option. Block type: "+this.sourceBlock_.type+", Field name: "+this.name+", Value: "+e),null)}doValueUpdate_(e){super.doValueUpdate_(e),e=this.getOptions(!0);for(let t=0,o;o=e[t];t++)o[1]===this.value_&&(this.selectedOption=o)}applyColour(){const e=this.sourceBlock_;this.borderRect_&&(this.borderRect_.setAttribute("stroke",e.getColourTertiary()),this.menu_?this.borderRect_.setAttribute("fill",e.getColourTertiary()):this.borderRect_.setAttribute("fill","transparent")),e&&this.arrow&&(e.isShadow()?this.arrow.style.fill=e.getColourSecondary():this.arrow.style.fill=e.getColour())}render_(){this.getTextContent().nodeValue="",this.imageElement.style.display="none";const e=this.selectedOption&&this.selectedOption[0];e&&typeof e=="object"?this.renderSelectedImage(e):this.renderSelectedText(),this.positionBorderRect_()}renderSelectedImage(e){const t=this.getSourceBlock();if(!t)throw new gt;this.imageElement.style.display="",this.imageElement.setAttributeNS(Kt,"xlink:href",e.src),this.imageElement.setAttribute("height",String(e.height)),this.imageElement.setAttribute("width",String(e.width));const o=Number(e.height);e=Number(e.width);var n=!!this.borderRect_;const c=Math.max(n?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,o+Ut.IMAGE_Y_PADDING);n=n?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;let h;h=this.svgArrow?this.positionSVGArrow(e+n,c/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2):$n(this.arrow,this.getConstants().FIELD_TEXT_FONTSIZE,this.getConstants().FIELD_TEXT_FONTWEIGHT,this.getConstants().FIELD_TEXT_FONTFAMILY),this.size_.width=e+h+2*n,this.size_.height=c;let $=0;t.RTL?this.imageElement.setAttribute("x",`${n+h}`):($=e+h,this.getTextElement().setAttribute("text-anchor","end"),this.imageElement.setAttribute("x",`${n}`)),this.imageElement.setAttribute("y",String(c/2-o/2)),this.positionTextElement_($+n,e+h)}renderSelectedText(){this.getTextContent().nodeValue=this.getDisplayText_();var e=this.getTextElement();$e(e,"blocklyDropdownText"),e.setAttribute("text-anchor","start");var t=!!this.borderRect_;e=Math.max(t?this.getConstants().FIELD_DROPDOWN_BORDER_RECT_HEIGHT:0,this.getConstants().FIELD_TEXT_HEIGHT);const o=$n(this.getTextElement(),this.getConstants().FIELD_TEXT_FONTSIZE,this.getConstants().FIELD_TEXT_FONTWEIGHT,this.getConstants().FIELD_TEXT_FONTFAMILY);t=t?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0;let n=0;this.svgArrow&&(n=this.positionSVGArrow(o+t,e/2-this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE/2)),this.size_.width=o+n+2*t,this.size_.height=e,this.positionTextElement_(t,o)}positionSVGArrow(e,t){if(!this.svgArrow)return 0;const o=this.getSourceBlock();if(!o)throw new gt;const n=this.borderRect_?this.getConstants().FIELD_BORDER_RECT_X_PADDING:0,c=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_PADDING,h=this.getConstants().FIELD_DROPDOWN_SVG_ARROW_SIZE;return this.svgArrow.setAttribute("transform","translate("+(o.RTL?n:e+c)+","+t+")"),h+c}getText_(){if(!this.selectedOption)return null;const e=this.selectedOption[0];return typeof e=="object"?e.alt:e}static fromJson(e){if(!e.options)throw Error("options are required for the dropdown field. The options property must be assigned an array of [humanReadableValue, languageNeutralValue] tuples.");return new this(e.options,void 0,e)}trimOptions(e){let t=!1;const o=e.map(([$,T])=>typeof $=="string"?[dt($),T]:(t=!0,[$.alt!==null?Object.assign({},$,{alt:dt($.alt)}):Object.assign({},$),T]));if(t||2>e.length)return{options:o};var n=o.map(([$])=>$),c=In(n);e=bu(n,c);const h=vu(n,c);return!e&&!h||c<=e+h?{options:o}:(c=e?n[0].substring(0,e-1):void 0,n=h?n[0].substr(1-h):void 0,{options:this.applyTrim(o,e,h),prefix:c,suffix:n})}applyTrim(e,t,o){return e.map(([n,c])=>[n.substring(t,n.length-o),c])}validateOptions(e){if(!Array.isArray(e))throw TypeError("FieldDropdown options must be an array.");if(!e.length)throw TypeError("FieldDropdown options must not be an empty array.");let t=!1;for(let o=0;oe.width)return t;if(e=this.getWorkspaceViewRect(e),this.workspace.RTL){var o=this.anchor.x-t;o-this.size.widthe.right&&(t=-(e.right-this.anchor.x))}else{o=t+this.anchor.x;const n=o+this.size.width;oe.right&&(t=e.right-this.anchor.x-this.size.width)}return t}getOptimalRelativeTop(e){let t=-this.size.height/4;if(this.size.height>e.height)return t;const o=this.anchor.y+t,n=o+this.size.height;return e=this.getWorkspaceViewRect(e),oe.bottom&&(t=e.bottom-this.anchor.y-this.size.height),t}getWorkspaceViewRect(e){const t=e.top;let o=e.top+e.height,n=e.left;return e=e.left+e.width,o-=this.getScrollbarThickness(),this.workspace.RTL?n-=this.getScrollbarThickness():e-=this.getScrollbarThickness(),new Je(t,o,n,e)}getScrollbarThickness(){return pt.scrollbarThickness/this.workspace.scale}renderTail(){const e=[];var t=this.size.width/2,o=this.size.height/2,n=-this.relativeLeft,c=-this.relativeTop;if(t===n&&o===c)e.push("M "+t+","+o);else{c-=o,n-=t,this.workspace.RTL&&(n*=-1);var h=Math.sqrt(c*c+n*n),$=Math.acos(n/h);0>c&&($=2*Math.PI-$);var T=$+Math.PI/2;T>2*Math.PI&&(T-=2*Math.PI);var B=Math.sin(T);const it=Math.cos(T);let ot=(this.size.width+this.size.height)/Jt.TAIL_THICKNESS;ot=Math.min(ot,this.size.width,this.size.height)/4,T=1-Jt.ANCHOR_RADIUS/h,n=t+T*n,c=o+T*c,T=t+ot*it;const Ht=o+ot*B;t-=ot*it,o-=ot*B,B=da(this.workspace.RTL?-Jt.TAIL_ANGLE:Jt.TAIL_ANGLE),B=$+B,B>2*Math.PI&&(B-=2*Math.PI),$=Math.sin(B)*h/Jt.TAIL_BEND,h=Math.cos(B)*h/Jt.TAIL_BEND,e.push("M"+T+","+Ht),e.push("C"+(T+h)+","+(Ht+$)+" "+n+","+c+" "+n+","+c),e.push("C"+n+","+c+" "+(t+h)+","+(o+$)+" "+t+","+o)}e.push("z");let ie;(ie=this.tail)==null||ie.setAttribute("d",e.join(" "))}bringToFront(){let e;const t=(e=this.svgRoot)==null?void 0:e.parentNode;return this.svgRoot&&(t==null?void 0:t.lastChild)!==this.svgRoot?(t==null||t.appendChild(this.svgRoot),!0):!1}getRelativeToSurfaceXY(){return new G(this.workspace.RTL?-this.relativeLeft+this.anchor.x-this.size.width:this.anchor.x+this.relativeLeft,this.anchor.y+this.relativeTop)}getSvgRoot(){return this.svgRoot}moveDuringDrag(e){this.moveTo(e.x,e.y),this.relativeLeft=this.workspace.RTL?this.anchor.x-e.x-this.size.width:e.x-this.anchor.x,this.relativeTop=e.y-this.anchor.y,this.renderTail()}setDragging(e){}setDeleteStyle(e){}isDeletable(){return!1}showContextMenu(e){}isMovable(){return!0}startDrag(){this.dragStrategy.startDrag()}drag(e){this.dragStrategy.drag(e)}endDrag(){this.dragStrategy.endDrag()}revertDrag(){this.dragStrategy.revertDrag()}select(){}unselect(){}};Jt=Ke,Ke.BORDER_WIDTH=6,Ke.DOUBLE_BORDER=2*Jt.BORDER_WIDTH,Ke.MIN_SIZE=Jt.DOUBLE_BORDER,Ke.TAIL_THICKNESS=1,Ke.TAIL_ANGLE=20,Ke.TAIL_BEND=4,Ke.ANCHOR_RADIUS=8;var eo=class extends Ke{constructor(e,t,o,n){super(t,o,n),this.workspace=t,this.anchor=o,this.ownerRect=n,this.autoLayout=!0,t=new ss(e),this.validateWorkspaceOptions(t),this.svgDialog=L(D.SVG,{x:Ke.BORDER_WIDTH,y:Ke.BORDER_WIDTH},this.contentContainer),e.parentWorkspace=this.workspace,this.miniWorkspace=this.newWorkspaceSvg(new ss(e)),this.miniWorkspace.internalIsMutator=!0,e=this.miniWorkspace.createDom("blocklyMutatorBackground"),this.svgDialog.appendChild(e),t.languageTree&&(e.insertBefore(this.miniWorkspace.addFlyout(D.G),this.miniWorkspace.getCanvas()),e=this.miniWorkspace.getFlyout(),e==null||e.init(this.miniWorkspace),e==null||e.show(t.languageTree)),this.miniWorkspace.addChangeListener(this.onWorkspaceChange.bind(this));let c,h;(c=this.miniWorkspace.getFlyout())==null||(h=c.getWorkspace())==null||h.addChangeListener(this.onWorkspaceChange.bind(this)),this.updateBubbleSize()}dispose(){this.miniWorkspace.dispose(),super.dispose()}getWorkspace(){return this.miniWorkspace}addWorkspaceChangeListener(e){this.miniWorkspace.addChangeListener(e)}validateWorkspaceOptions(e){if(e.hasCategories)throw Error("The miniworkspace bubble does not support toolboxes with categories");if(e.hasTrashcan)throw Error("The miniworkspace bubble does not support trashcans");if(e.zoomOptions.controls||e.zoomOptions.wheel||e.zoomOptions.pinch)throw Error("The miniworkspace bubble does not support zooming");if(e.moveOptions.scrollbars||e.moveOptions.wheel||e.moveOptions.drag)throw Error("The miniworkspace bubble does not scrolling/moving the workspace");if(e.horizontalLayout)throw Error("The miniworkspace bubble does not support horizontal layouts")}onWorkspaceChange(){this.bumpBlocksIntoBounds(),this.updateBubbleSize()}bumpBlocksIntoBounds(){if(!this.miniWorkspace.isDragging())for(const e of this.miniWorkspace.getTopBlocks(!1)){const t=e.getRelativeToSurfaceXY();if(20>t.y&&e.moveBy(0,20-t.y),e.RTL){let o=-20;const n=this.miniWorkspace.getFlyout();n&&(o-=n.getWidth()),t.x>o&&e.moveBy(o-t.x,0)}else 20>t.x&&e.moveBy(20-t.x,0)}}updateBubbleSize(){if(!this.miniWorkspace.isDragging()){var e=this.getSize(),t=this.calculateWorkspaceSize();Math.abs(e.width-t.width)({kind:"block",type:o}))}),t}getAnchorLocation(){const e=pl/2;return G.sum(this.workspaceLocation,new G(e,e))}getBubbleOwnerRect(){const e=this.sourceBlock.getSvgRoot().getBBox();return new Je(e.y,e.y+e.height,e.x,e.x+e.width)}createRootBlock(){if(!this.sourceBlock.decompose)throw Error("Blocks with mutator icons must include a decompose method");this.rootBlock=this.sourceBlock.decompose(this.miniWorkspaceBubble.getWorkspace());for(var e of this.rootBlock.getDescendants(!1))e.queueRender();this.rootBlock.setMovable(!1),this.rootBlock.setDeletable(!1);let t,o,n,c;e=(c=(t=this.miniWorkspaceBubble)==null||(o=t.getWorkspace())==null||(n=o.getFlyout())==null?void 0:n.getWidth())!=null?c:0,this.rootBlock.moveBy(this.rootBlock.RTL?-(e+gl):gl,gl)}addSaveConnectionsListener(){this.sourceBlock.saveConnections&&this.rootBlock&&(this.saveConnectionsListener=()=>{this.sourceBlock.saveConnections&&this.rootBlock&&this.sourceBlock.saveConnections(this.rootBlock)},this.saveConnectionsListener(),this.sourceBlock.workspace.addChangeListener(this.saveConnectionsListener))}createMiniWorkspaceChangeListener(){return e=>{i.MutatorIcon$$module$build$src$core$icons$mutator_icon.isIgnorableMutatorEvent(e)||this.updateWorkspacePid||(this.updateWorkspacePid=setTimeout(()=>{this.updateWorkspacePid=null,this.recomposeSourceBlock()},0))}}static isIgnorableMutatorEvent(e){return e.isUiEvent||C(e)||A(e)&&e.element==="disabled"}recomposeSourceBlock(){if(this.rootBlock){if(!this.sourceBlock.compose)throw Error("Blocks with mutator icons must include a compose method");var e=i.getGroup$$module$build$src$core$events$utils();e||i.setGroup$$module$build$src$core$events$utils(!0);var t=Yo.getExtraBlockState_(this.sourceBlock);this.sourceBlock.compose(this.rootBlock);var o=Yo.getExtraBlockState_(this.sourceBlock);t!==o&&K(new(Y(M.BLOCK_CHANGE))(this.sourceBlock,"mutation",null,t,o)),i.setGroup$$module$build$src$core$events$utils(e)}}getWorkspace(){let e;return(e=this.miniWorkspaceBubble)==null?void 0:e.getWorkspace()}},i.MutatorIcon$$module$build$src$core$icons$mutator_icon.TYPE=ft.MUTATOR,i.MutatorIcon$$module$build$src$core$icons$mutator_icon.WEIGHT=1,i.MutatorIcon$$module$build$src$core$icons$mutator_icon;var Ui=Object.create(null),qC={allExtensions:Ui};i.register$$module$build$src$core$extensions("parent_tooltip_when_inline",Hf);var vs={TEST_ONLY:qC};vs.apply=Sa,vs.buildTooltipForDropdown=i.buildTooltipForDropdown$$module$build$src$core$extensions,vs.buildTooltipWithFieldText=i.buildTooltipWithFieldText$$module$build$src$core$extensions,vs.isRegistered=Yu,vs.register=i.register$$module$build$src$core$extensions,vs.registerMixin=i.registerMixin$$module$build$src$core$extensions,vs.registerMutator=i.registerMutator$$module$build$src$core$extensions,vs.runAfterPageLoad=zf,vs.unregister=Lf;var Re;(function(e){e[e.WIN_KEY_FF_LINUX=0]="WIN_KEY_FF_LINUX",e[e.MAC_ENTER=3]="MAC_ENTER",e[e.BACKSPACE=8]="BACKSPACE",e[e.TAB=9]="TAB",e[e.NUM_CENTER=12]="NUM_CENTER",e[e.ENTER=13]="ENTER",e[e.SHIFT=16]="SHIFT",e[e.CTRL=17]="CTRL",e[e.ALT=18]="ALT",e[e.PAUSE=19]="PAUSE",e[e.CAPS_LOCK=20]="CAPS_LOCK",e[e.ESC=27]="ESC",e[e.SPACE=32]="SPACE",e[e.PAGE_UP=33]="PAGE_UP",e[e.PAGE_DOWN=34]="PAGE_DOWN",e[e.END=35]="END",e[e.HOME=36]="HOME",e[e.LEFT=37]="LEFT",e[e.UP=38]="UP",e[e.RIGHT=39]="RIGHT",e[e.DOWN=40]="DOWN",e[e.PLUS_SIGN=43]="PLUS_SIGN",e[e.PRINT_SCREEN=44]="PRINT_SCREEN",e[e.INSERT=45]="INSERT",e[e.DELETE=46]="DELETE",e[e.ZERO=48]="ZERO",e[e.ONE=49]="ONE",e[e.TWO=50]="TWO",e[e.THREE=51]="THREE",e[e.FOUR=52]="FOUR",e[e.FIVE=53]="FIVE",e[e.SIX=54]="SIX",e[e.SEVEN=55]="SEVEN",e[e.EIGHT=56]="EIGHT",e[e.NINE=57]="NINE",e[e.FF_SEMICOLON=59]="FF_SEMICOLON",e[e.FF_EQUALS=61]="FF_EQUALS",e[e.FF_DASH=173]="FF_DASH",e[e.FF_HASH=163]="FF_HASH",e[e.QUESTION_MARK=63]="QUESTION_MARK",e[e.AT_SIGN=64]="AT_SIGN",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.META=91]="META",e[e.WIN_KEY_RIGHT=92]="WIN_KEY_RIGHT",e[e.CONTEXT_MENU=93]="CONTEXT_MENU",e[e.NUM_ZERO=96]="NUM_ZERO",e[e.NUM_ONE=97]="NUM_ONE",e[e.NUM_TWO=98]="NUM_TWO",e[e.NUM_THREE=99]="NUM_THREE",e[e.NUM_FOUR=100]="NUM_FOUR",e[e.NUM_FIVE=101]="NUM_FIVE",e[e.NUM_SIX=102]="NUM_SIX",e[e.NUM_SEVEN=103]="NUM_SEVEN",e[e.NUM_EIGHT=104]="NUM_EIGHT",e[e.NUM_NINE=105]="NUM_NINE",e[e.NUM_MULTIPLY=106]="NUM_MULTIPLY",e[e.NUM_PLUS=107]="NUM_PLUS",e[e.NUM_MINUS=109]="NUM_MINUS",e[e.NUM_PERIOD=110]="NUM_PERIOD",e[e.NUM_DIVISION=111]="NUM_DIVISION",e[e.F1=112]="F1",e[e.F2=113]="F2",e[e.F3=114]="F3",e[e.F4=115]="F4",e[e.F5=116]="F5",e[e.F6=117]="F6",e[e.F7=118]="F7",e[e.F8=119]="F8",e[e.F9=120]="F9",e[e.F10=121]="F10",e[e.F11=122]="F11",e[e.F12=123]="F12",e[e.NUMLOCK=144]="NUMLOCK",e[e.SCROLL_LOCK=145]="SCROLL_LOCK",e[e.FIRST_MEDIA_KEY=166]="FIRST_MEDIA_KEY",e[e.LAST_MEDIA_KEY=183]="LAST_MEDIA_KEY",e[e.SEMICOLON=186]="SEMICOLON",e[e.DASH=189]="DASH",e[e.EQUALS=187]="EQUALS",e[e.COMMA=188]="COMMA",e[e.PERIOD=190]="PERIOD",e[e.SLASH=191]="SLASH",e[e.APOSTROPHE=192]="APOSTROPHE",e[e.TILDE=192]="TILDE",e[e.SINGLE_QUOTE=222]="SINGLE_QUOTE",e[e.OPEN_SQUARE_BRACKET=219]="OPEN_SQUARE_BRACKET",e[e.BACKSLASH=220]="BACKSLASH",e[e.CLOSE_SQUARE_BRACKET=221]="CLOSE_SQUARE_BRACKET",e[e.WIN_KEY=224]="WIN_KEY",e[e.MAC_FF_META=224]="MAC_FF_META",e[e.MAC_WK_CMD_LEFT=91]="MAC_WK_CMD_LEFT",e[e.MAC_WK_CMD_RIGHT=93]="MAC_WK_CMD_RIGHT",e[e.WIN_IME=229]="WIN_IME",e[e.VK_NONAME=252]="VK_NONAME",e[e.PHANTOM=255]="PHANTOM"})(Re||(Re={}));var to={};to.arc=ht,to.curve=jt,to.line=Si,to.lineOnAxis=re,to.lineTo=xs,to.moveBy=rt,to.moveTo=bt,to.point=he;var ct={};ct.Coordinate=G,ct.KeyCodes=Re,ct.Rect=Je,ct.Size=Ne,ct.Svg=D,ct.aria=Gn,ct.array=K$,ct.browserEvents=Js,ct.colour=ts,ct.deprecation=S$,ct.dom=kt,ct.extensions=vs,ct.idGenerator=jd,ct.math=qa,ct.object=Ab,ct.parsing=er,ct.string=Li,ct.style=fo,ct.svgMath=Ho,ct.svgPaths=to,ct.toolbox=$o,ct.userAgent=BC,ct.xml=xi;var Mb=class extends Ke{constructor(e,t,o){super(e,t,o),this.workspace=e,this.anchor=t,this.ownerRect=o,this.resizePointerMoveListener=this.resizePointerUpListener=null,this.textChangeListeners=[],this.sizeChangeListeners=[],this.text="",this.DEFAULT_SIZE=new Ne(160+Ke.DOUBLE_BORDER,80+Ke.DOUBLE_BORDER),this.MIN_SIZE=new Ne(45+Ke.DOUBLE_BORDER,20+Ke.DOUBLE_BORDER),this.editable=!0,$e(this.svgRoot,"blocklyTextInputBubble"),{inputRoot:this.inputRoot,textArea:this.textArea}=this.createEditor(this.contentContainer),this.resizeGroup=this.createResizeHandle(this.svgRoot,e),this.setSize(this.DEFAULT_SIZE,!0)}getText(){return this.text}setText(e){this.text=e,this.textArea.value=e,this.onTextChange()}setEditable(e){(this.editable=e)?this.textArea.removeAttribute("readonly"):this.textArea.setAttribute("readonly","")}isEditable(){return this.editable}addTextChangeListener(e){this.textChangeListeners.push(e)}addSizeChangeListener(e){this.sizeChangeListeners.push(e)}createEditor(e){e=L(D.FOREIGNOBJECT,{x:Ke.BORDER_WIDTH,y:Ke.BORDER_WIDTH},e);const t=document.createElementNS(As,"body");t.setAttribute("xmlns",As),t.className="blocklyMinimalBody";const o=document.createElementNS(As,"textarea");return o.className="blocklyTextarea blocklyText",o.setAttribute("dir",this.workspace.RTL?"RTL":"LTR"),t.appendChild(o),e.appendChild(t),this.bindTextAreaEvents(o),setTimeout(()=>{o.focus()},0),{inputRoot:e,textArea:o}}bindTextAreaEvents(e){Q(e,"wheel",this,t=>{t.stopPropagation()}),Q(e,"focus",this,this.onStartEdit,!0),Q(e,"change",this,this.onTextChange)}createResizeHandle(e,t){return e=L(D.IMAGE,{class:"blocklyResizeHandle",href:`${t.options.pathToMedia}resize-handle.svg`},e),Q(e,"pointerdown",this,this.onResizePointerDown),e}setSize(e,t=!1){e.width=Math.max(e.width,this.MIN_SIZE.width),e.height=Math.max(e.height,this.MIN_SIZE.height);const o=e.width-Ke.DOUBLE_BORDER,n=e.height-Ke.DOUBLE_BORDER;this.inputRoot.setAttribute("width",`${o}`),this.inputRoot.setAttribute("height",`${n}`),this.resizeGroup.setAttribute("y",`${n}`),this.workspace.RTL?this.resizeGroup.setAttribute("x",`${-Ke.DOUBLE_BORDER}`):this.resizeGroup.setAttribute("x",`${o}`),super.setSize(e,t),this.onSizeChange()}getSize(){return super.getSize()}onResizePointerDown(e){this.bringToFront(),ye(e)||(_a(this.workspace,e,new G(this.workspace.RTL?-this.getSize().width:this.getSize().width,this.getSize().height)),this.resizePointerUpListener=Q(document,"pointerup",this,this.onResizePointerUp),this.resizePointerMoveListener=Q(document,"pointermove",this,this.onResizePointerMove),this.workspace.hideChaff()),e.stopPropagation()}onResizePointerUp(e){Ee(),this.resizePointerUpListener&&(ze(this.resizePointerUpListener),this.resizePointerUpListener=null),this.resizePointerMoveListener&&(ze(this.resizePointerMoveListener),this.resizePointerMoveListener=null)}onResizePointerMove(e){e=wa(this.workspace,e),this.setSize(new Ne(this.workspace.RTL?-e.x:e.x,e.y),!1),this.onSizeChange()}onStartEdit(){this.bringToFront()&&this.textArea.focus()}onTextChange(){this.text=this.textArea.value;for(const e of this.textChangeListeners)e()}onSizeChange(){for(const e of this.sizeChangeListeners)e()}};Ct(` +.blocklyTextInputBubble .blocklyTextarea { + background-color: var(--commentFillColour); + border: 0; + box-sizing: border-box; + display: block; + outline: 0; + padding: 5px; + resize: none; + width: 100%; + height: 100%; +} +`);var Ih={};Ih.register=qu,Ih.unregister=Wf;var xh=17,Nb=160,Lb=80,so=class extends hl{constructor(e){super(e),this.sourceBlock=e,this.textInputBubble=null,this.text="",this.bubbleSize=new Ne(Nb,Lb),this.bubbleVisiblity=!1}getType(){return so.TYPE}initView(e){this.svgRoot||(super.initView(e),L(D.CIRCLE,{class:"blocklyIconShape",r:"8",cx:"8",cy:"8"},this.svgRoot),L(D.PATH,{class:"blocklyIconSymbol",d:"m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.4050.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25-1.201,0.998 -1.201,1.528 -1.204,2.19z"},this.svgRoot),L(D.RECT,{class:"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},this.svgRoot),$e(this.svgRoot,"blockly-icon-comment"))}dispose(){super.dispose();let e;(e=this.textInputBubble)==null||e.dispose()}getWeight(){return so.WEIGHT}getSize(){return new Ne(xh,xh)}applyColour(){super.applyColour();const e=this.sourceBlock.getColour();let t;(t=this.textInputBubble)==null||t.setColour(e)}updateEditable(){const e=this,t=()=>super.updateEditable;return j.asyncExecutePromiseGeneratorFunction(function*(){t().call(e),e.bubbleIsVisible()&&(yield e.setBubbleVisible(!1),yield e.setBubbleVisible(!0))})}onLocationChange(e){super.onLocationChange(e),e=this.getAnchorLocation();let t;(t=this.textInputBubble)==null||t.setAnchorLocation(e)}setText(e){const t=this.text;K(new(Y(M.BLOCK_CHANGE))(this.sourceBlock,"comment",null,t,e)),this.text=e;let o;(o=this.textInputBubble)==null||o.setText(this.text)}getText(){return this.text}setBubbleSize(e){this.bubbleSize=e;let t;(t=this.textInputBubble)==null||t.setSize(this.bubbleSize,!0)}getBubbleSize(){return this.bubbleSize}saveState(){return this.text?{text:this.text,pinned:this.bubbleIsVisible(),height:this.bubbleSize.height,width:this.bubbleSize.width}:null}loadState(e){let t;this.text=(t=e.text)!=null?t:"";let o,n;this.bubbleSize=new Ne((o=e.width)!=null?o:Nb,(n=e.height)!=null?n:Lb);let c;this.bubbleVisiblity=(c=e.pinned)!=null?c:!1,this.setBubbleVisible(this.bubbleVisiblity)}onClick(){super.onClick(),this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}onTextChange(){if(this.textInputBubble){var e=this.textInputBubble.getText();this.text!==e&&(K(new(Y(M.BLOCK_CHANGE))(this.sourceBlock,"comment",null,this.text,e)),this.text=e)}}onSizeChange(){this.textInputBubble&&(this.bubbleSize=this.textInputBubble.getSize())}bubbleIsVisible(){return this.bubbleVisiblity}setBubbleVisible(e){const t=this;return j.asyncExecutePromiseGeneratorFunction(function*(){t.bubbleVisiblity!==e&&(t.bubbleVisiblity=e,yield ps(),!t.sourceBlock.rendered||t.sourceBlock.isInFlyout||t.sourceBlock.isInsertionMarker()||(e?(t.sourceBlock.isEditable()?t.showEditableBubble():t.showNonEditableBubble(),t.applyColour()):t.hideBubble(),K(new(Y(M.BUBBLE_OPEN))(t.sourceBlock,e,"comment"))))})}showEditableBubble(){this.createBubble();let e;(e=this.textInputBubble)==null||e.addTextChangeListener(()=>this.onTextChange());let t;(t=this.textInputBubble)==null||t.addSizeChangeListener(()=>this.onSizeChange())}showNonEditableBubble(){this.createBubble();let e;(e=this.textInputBubble)==null||e.setEditable(!1)}createBubble(){this.textInputBubble=new Mb(this.sourceBlock.workspace,this.getAnchorLocation(),this.getBubbleOwnerRect()),this.textInputBubble.setText(this.getText()),this.textInputBubble.setSize(this.bubbleSize,!0)}hideBubble(){let e;(e=this.textInputBubble)==null||e.dispose(),this.textInputBubble=null}getAnchorLocation(){const e=xh/2;return G.sum(this.workspaceLocation,new G(e,e))}getBubbleOwnerRect(){return this.sourceBlock.getBoundingRectangleWithoutChildren()}};so.TYPE=ft.COMMENT,so.WEIGHT=3,qu(so.TYPE,so);var Bb=class extends Error{constructor(e){super(`Tried to append an icon of type ${e.getType()} when an icon of that type already exists on the block. Use getIcon to access the existing icon.`),this.icon=e}},Pb={};Pb.DuplicateIconType=Bb;var Fb=class extends Ke{constructor(e,t,o,n){super(t,o,n),this.text=e,this.workspace=t,this.anchor=o,this.ownerRect=n,this.paragraph=this.stringToSvg(e,this.contentContainer),this.updateBubbleSize()}getText(){return this.text}setText(e){this.text=e,Ve(this.paragraph),this.paragraph=this.stringToSvg(e,this.contentContainer),this.updateBubbleSize()}stringToSvg(e,t){return t=this.createParagraph(t),e=this.createTextFragments(t,e),this.workspace.RTL&&this.rightAlignTextFragments(t.getBBox().width,e),t}createParagraph(e){return L(D.G,{class:"blocklyText blocklyBubbleText blocklyNoPointerEvents",transform:`translate(0,${Ke.BORDER_WIDTH})`,style:`direction: ${this.workspace.RTL?"rtl":"ltr"}`},e)}createTextFragments(e,t){let o=1;return t.split(` +`).map(n=>{const c=L(D.TEXT,{y:`${o}em`,x:Ke.BORDER_WIDTH},e);return n=document.createTextNode(n),c.appendChild(n),o+=1,c})}rightAlignTextFragments(e,t){for(const o of t)o.setAttribute("text-anchor","start"),o.setAttribute("x",`${e+Ke.BORDER_WIDTH}`)}updateBubbleSize(){const e=this.paragraph.getBBox();this.setSize(new Ne(e.width+2*Ke.BORDER_WIDTH,e.height+2*Ke.BORDER_WIDTH),!0)}},Dh=17,oo=class extends hl{constructor(e){super(e),this.sourceBlock=e,this.textMap=new Map,this.textBubble=null}getType(){return oo.TYPE}initView(e){this.svgRoot||(super.initView(e),L(D.PATH,{class:"blocklyIconShape",d:"M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"},this.svgRoot),L(D.PATH,{class:"blocklyIconSymbol",d:"m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"},this.svgRoot),L(D.RECT,{class:"blocklyIconSymbol",x:"7",y:"11",height:"2",width:"2"},this.svgRoot),$e(this.svgRoot,"blockly-icon-warning"))}dispose(){super.dispose();let e;(e=this.textBubble)==null||e.dispose()}getWeight(){return oo.WEIGHT}getSize(){return new Ne(Dh,Dh)}applyColour(){super.applyColour();let e;(e=this.textBubble)==null||e.setColour(this.sourceBlock.getColour())}updateCollapsed(){}isShownWhenCollapsed(){return!0}onLocationChange(e){super.onLocationChange(e);let t;(t=this.textBubble)==null||t.setAnchorLocation(this.getAnchorLocation())}addMessage(e,t){if(this.textMap.get(t)===e)return this;e?this.textMap.set(t,e):this.textMap.delete(t);let o;return(o=this.textBubble)==null||o.setText(this.getText()),this}getText(){return[...this.textMap.values()].join(` +`)}onClick(){super.onClick(),this.setBubbleVisible(!this.bubbleIsVisible())}isClickableInFlyout(){return!1}bubbleIsVisible(){return!!this.textBubble}setBubbleVisible(e){const t=this;return j.asyncExecutePromiseGeneratorFunction(function*(){if(t.bubbleIsVisible()!==e){if(yield ps(),e)t.textBubble=new Fb(t.getText(),t.sourceBlock.workspace,t.getAnchorLocation(),t.getBubbleOwnerRect()),t.applyColour();else{let o;(o=t.textBubble)==null||o.dispose(),t.textBubble=null}K(new(Y(M.BUBBLE_OPEN))(t.sourceBlock,e,"warning"))}})}getAnchorLocation(){const e=Dh/2;return G.sum(this.workspaceLocation,new G(e,e))}getBubbleOwnerRect(){const e=this.sourceBlock.getSvgRoot().getBBox();return new Je(e.y,e.y+e.height,e.x,e.x+e.width)}};oo.TYPE=ft.WARNING,oo.WEIGHT=2;var _o={};_o.CommentIcon=so,_o.Icon=hl,_o.IconType=ft,_o.MutatorIcon=i.MutatorIcon$$module$build$src$core$icons$mutator_icon,_o.WarningIcon=oo,_o.exceptions=Pb,_o.registry=Ih,i.Names$$module$build$src$core$names=class{constructor(e,t){this.db=new Map,this.dbReverse=new Set,this.variableMap=null,this.variablePrefix=t||"",this.reservedWords=new Set(e?e.split(","):[])}reset(){this.db.clear(),this.dbReverse.clear(),this.variableMap=null}setVariableMap(e){this.variableMap=e}getNameForUserVariable(e){return this.variableMap?(e=this.variableMap.getVariableById(e))?e.name:null:(console.warn(`Deprecated call to Names.prototype.getName without defining a variable map. To fix, add the following code in your generator's init() function: +Blockly.YourGeneratorName.nameDB_.setVariableMap(workspace.getVariableMap());`),null)}populateVariables(e){e=i.allUsedVarModels$$module$build$src$core$variables(e);for(let t=0;trect,`,`${e} .blocklyEditableText>rect {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"fill-opacity: .6;","stroke: none;","}",`${e} .blocklyNonEditableText>text,`,`${e} .blocklyEditableText>text {`,"fill: #000;","}",`${e} .blocklyFlyoutLabelText {`,"fill: #000;","}",`${e} .blocklyText.blocklyBubbleText {`,"fill: #000;","}",`${e} .blocklyEditableText:not(.editing):hover>rect {`,"stroke: #fff;","stroke-width: 2;","}",`${e} .blocklyHtmlInput {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"}",`${e} .blocklySelected>.blocklyPath {`,"stroke: #fc3;","stroke-width: 3px;","}",`${e} .blocklyHighlightedConnectionPath {`,"stroke: #fc3;","}",`${e} .blocklyReplaceable .blocklyPath {`,"fill-opacity: .5;","}",`${e} .blocklyReplaceable .blocklyPathLight,`,`${e} .blocklyReplaceable .blocklyPathDark {`,"display: none;","}",`${e} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"]}},bl=class{constructor(e,t){this.inlinePath_=this.outlinePath_="",this.block_=e,this.info_=t,this.topLeft_=e.getRelativeToSurfaceXY(),this.constants_=t.getRenderer().getConstants()}draw(){this.drawOutline_(),this.drawInternals_(),this.updateConnectionHighlights(),this.block_.pathObject.setPath(this.outlinePath_+` +`+this.inlinePath_),this.info_.RTL&&this.block_.pathObject.flipRTL(),this.recordSizeOnBlock_()}recordSizeOnBlock_(){this.block_.height=this.info_.height,this.block_.width=this.info_.widthWithChildren,this.block_.childlessWidth=this.info_.width}drawOutline_(){this.drawTop_();for(let e=1;ee||e>this.fieldRow.length)throw Error("index "+e+" out of bounds.");return(t||t===""&&o)&&(typeof t=="string"&&(t=i.fromJson$$module$build$src$core$field_registry({type:"field_label",text:t})),t.setSourceBlock(this.sourceBlock),this.sourceBlock.initialized&&this.initField(t),t.name=o,t.setVisible(this.isVisible()),t.prefixField&&(e=this.insertFieldAt(e,t.prefixField)),this.fieldRow.splice(e,0,t),e++,t.suffixField&&(e=this.insertFieldAt(e,t.suffixField)),this.sourceBlock.rendered&&this.sourceBlock.queueRender()),e}removeField(e,t){for(let o=0,n;n=this.fieldRow[o];o++)if(n.name===e)return n.dispose(),this.fieldRow.splice(o,1),this.sourceBlock.rendered&&this.sourceBlock.queueRender(),!0;if(t)return!1;throw Error('Field "'+e+'" not found.')}isVisible(){return this.visible}setVisible(e){let t=[];if(this.visible===e)return t;this.visible=e;for(let n=0,c;c=this.fieldRow[n];n++)c.setVisible(e);if(this.connection){var o=this.connection;e?t=o.startTrackingAll():o.stopTrackingAll(),(o=o.targetBlock())&&(o.getSvgRoot().style.display=e?"block":"none")}return t}markDirty(){for(let e=0,t;t=this.fieldRow[e];e++)t.markDirty()}setCheck(e){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.setCheck(e),this}setAlign(e){return this.align=e,this.sourceBlock.rendered&&this.sourceBlock.queueRender(),this}setShadowDom(e){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.setShadowDom(e),this}getShadowDom(){if(!this.connection)throw Error("This input does not have a connection.");return this.connection.getShadowDom()}init(){for(const e of this.fieldRow)e.init()}initModel(){for(const e of this.fieldRow)e.initModel()}initField(e){this.sourceBlock.rendered?e.init():e.initModel()}dispose(){for(let e=0,t;t=this.fieldRow[e];e++)t.dispose();this.connection&&this.connection.dispose()}makeConnection(e){return this.sourceBlock.makeConnection_(e)}},Os=class extends Wi{constructor(e,t){super(e,t),this.name=e,this.type=i.inputTypes$$module$build$src$core$inputs$input_types.DUMMY}},no=class extends Wi{constructor(e,t){super(e,t),this.name=e,this.type=i.inputTypes$$module$build$src$core$inputs$input_types.END_ROW}},qt=class extends Wi{constructor(e,t){if(!e)throw Error("Statement inputs must have a non-empty name");super(e,t),this.name=e,this.type=i.inputTypes$$module$build$src$core$inputs$input_types.STATEMENT,this.connection=this.makeConnection(ne.NEXT_STATEMENT)}},Vb;i.ValueInput$$module$build$src$core$inputs$value_input=class extends Wi{constructor(e,t){if(!e)throw Error("Value inputs must have a non-empty name");super(e,t),this.name=e,this.type=i.inputTypes$$module$build$src$core$inputs$input_types.VALUE,this.connection=this.makeConnection(ne.INPUT_VALUE)}},Vb={},Vb.ValueInput=i.ValueInput$$module$build$src$core$inputs$value_input;var ar=class{constructor(e,t){this.statementEdge=this.width=this.widthWithChildren=this.height=0,this.rows=[],this.inputRows=[],this.startY=this.startX=0,this.renderer_=e,this.block_=t,this.constants_=this.renderer_.getConstants(),this.outputConnection=t.outputConnection?new Wb(this.constants_,t.outputConnection):null,this.isInline=t.getInputsInline()&&!t.isCollapsed(),this.isCollapsed=t.isCollapsed(),this.isInsertionMarker=t.isInsertionMarker(),this.RTL=t.RTL,this.topRow=new Lh(this.constants_),this.bottomRow=new Ah(this.constants_)}getRenderer(){return this.renderer_}measure(){this.createRows_(),this.addElemSpacing_(),this.addRowSpacing_(),this.computeBounds_(),this.alignRowElements_(),this.finalize_()}createRows_(){this.populateTopRow_(),this.rows.push(this.topRow);let e=new Mh(this.constants_);this.inputRows.push(e);var t=this.block_.getIcons();for(let o=0,n;n=t[o];o++){const c=new zb(this.constants_,n);this.isCollapsed&&!n.isShownWhenCollapsed()||e.elements.push(c)}t=void 0;for(let o=0,n;n=this.block_.inputList[o];o++)if(n.isVisible()){this.shouldStartNewRow_(n,t)&&(this.rows.push(e),e=new Mh(this.constants_),this.inputRows.push(e));for(let c=0,h;h=n.fieldRow[c];c++)e.elements.push(new Hi(this.constants_,h,n));this.addInput_(n,e),t=n}this.isCollapsed&&(e.hasJaggedEdge=!0,e.elements.push(new Ub(this.constants_))),(e.elements.length||e.hasDummyInput)&&this.rows.push(e),this.populateBottomRow_(),this.rows.push(this.bottomRow)}populateTopRow_(){var e=!!this.block_.previousConnection;const t=(this.block_.hat?this.block_.hat==="cap":this.constants_.ADD_START_HATS)&&!this.outputConnection&&!e;let o=this.topRow.hasLeftSquareCorner(this.block_)?rr:nr;this.topRow.elements.push(new o(this.constants_)),t?(e=new Rh(this.constants_),this.topRow.elements.push(e),this.topRow.capline=e.ascenderHeight):e&&(this.topRow.hasPreviousConnection=!0,this.topRow.connection=new Gb(this.constants_,this.block_.previousConnection),this.topRow.elements.push(this.topRow.connection)),this.block_.inputList.length&&this.block_.inputList[0]instanceof qt&&!this.block_.isCollapsed()?this.topRow.minHeight=this.constants_.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT:this.topRow.minHeight=this.constants_.TOP_ROW_MIN_HEIGHT,o=this.topRow.hasRightSquareCorner(this.block_)?rr:nr,this.topRow.elements.push(new o(this.constants_,"right"))}populateBottomRow_(){this.bottomRow.hasNextConnection=!!this.block_.nextConnection,this.bottomRow.minHeight=this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof qt?this.constants_.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT:this.constants_.BOTTOM_ROW_MIN_HEIGHT,this.bottomRow.hasLeftSquareCorner(this.block_)?this.bottomRow.elements.push(new rr(this.constants_)):this.bottomRow.elements.push(new nr(this.constants_)),this.bottomRow.hasNextConnection&&(this.bottomRow.connection=new Hb(this.constants_,this.block_.nextConnection),this.bottomRow.elements.push(this.bottomRow.connection)),this.bottomRow.hasRightSquareCorner(this.block_)?this.bottomRow.elements.push(new rr(this.constants_,"right")):this.bottomRow.elements.push(new nr(this.constants_,"right"))}addInput_(e,t){this.isInline&&e instanceof i.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new Oh(this.constants_,e)),t.hasInlineInput=!0):e instanceof qt?(t.elements.push(new ir(this.constants_,e)),t.hasStatement=!0):e instanceof i.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new fl(this.constants_,e)),t.hasExternalInput=!0):(e instanceof Os||e instanceof no)&&(t.minHeight=Math.max(t.minHeight,e.getSourceBlock()&&e.getSourceBlock().isShadow()?this.constants_.DUMMY_INPUT_SHADOW_MIN_HEIGHT:this.constants_.DUMMY_INPUT_MIN_HEIGHT),t.hasDummyInput=!0),t.align===null&&(t.align=e.align)}shouldStartNewRow_(e,t){return t?t instanceof no||e instanceof qt||t instanceof qt?!0:e instanceof i.ValueInput$$module$build$src$core$inputs$value_input||e instanceof Os||t instanceof i.ValueInput$$module$build$src$core$inputs$value_input?!this.isInline:!1:!1}addElemSpacing_(){for(let e=0,t;t=this.rows[e];e++){const o=t.elements;if(t.elements=[],t.startsWithElemSpacer()&&t.elements.push(new Xt(this.constants_,this.getInRowSpacing_(null,o[0]))),o.length){for(let n=0;ne.disposeInternal()),this.inputList.forEach(e=>e.dispose()),this.inputList.length=0,this.getConnections_(!0).forEach(e=>e.dispose()),this.disposed=!0}isDeadOrDying(){return this.disposing||this.disposed}initModel(){if(!this.initialized){for(const e of this.inputList)e.initModel();this.initialized=!0}}unplug(e){this.outputConnection&&this.unplugFromRow(e),this.previousConnection&&this.unplugFromStack(e)}unplugFromRow(e){let t=null,o;(o=this.outputConnection)!=null&&o.isConnected()&&(t=this.outputConnection.targetConnection,this.outputConnection.disconnect()),t&&e&&(e=this.getOnlyValueConnection())&&e.isConnected()&&!e.targetBlock().isShadow()&&(e=e.targetConnection,e==null||e.disconnect(),this.workspace.connectionChecker.canConnect(e,t,!1)?t.connect(e):e==null||e.onFailedConnect(t))}getOnlyValueConnection(){let e=null;for(let t=0;t(n=n+(o==="("||c===")"?"":" ")+c,o=c[c.length-1],n),""),t=t.trim()||"???",e&&t.length>e&&(t=t.substring(0,e-3)+"..."),t}toTokens(e="?"){const t=[];for(const n of this.inputList)if(n.name!=Vn){for(const c of n.fieldRow)t.push(c.getText());if(n.connection){const c=n.connection.targetBlock();if(c){var o=n.connection;let h=o.getCheck();!h&&o.targetConnection&&(h=o.targetConnection.getCheck()),(o=!!h&&(h.includes("Boolean")||h.includes("Number")))&&t.push("("),t.push(...c.toTokens(e)),o&&t.push(")")}else t.push(e)}}return t}appendValueInput(e){return this.appendInput(new i.ValueInput$$module$build$src$core$inputs$value_input(e,this))}appendStatementInput(e){return this.statementInputCount++,this.appendInput(new qt(e,this))}appendDummyInput(e=""){return this.appendInput(new Os(e,this))}appendEndRowInput(e=""){return this.appendInput(new no(e,this))}appendInput(e){return this.inputList.push(e),e}appendInputFromRegistry(e,t){return(e=m(z.INPUT,e,!1))?this.appendInput(new e(t,this)):null}jsonInit(e){var t=e.type?'Block "'+e.type+'": ':"";if(e.output&&e.previousStatement)throw Error(t+"Must not have both an output and a previousStatement.");for(var o=0;e["args"+o];){if(e["message"+o]===void 0)throw Error(t+`args${o} must have a corresponding message (message${o}).`);o++}if(e.style&&e.style.hat&&(this.hat=e.style.hat,e.style=null),e.style&&e.colour)throw Error(t+"Must not have both a colour and a style.");for(e.style?this.jsonInitStyle(e,t):this.jsonInitColour(e,t),o=0;e["message"+o]!==void 0;)this.interpolate(e["message"+o],e["args"+o]||[],e["implicitAlign"+o]||e["lastDummyAlign"+o],t),o++;if(e.inputsInline!==void 0&&(i.disable$$module$build$src$core$events$utils(),this.setInputsInline(e.inputsInline),i.enable$$module$build$src$core$events$utils()),e.output!==void 0&&this.setOutput(!0,e.output),e.outputShape!==void 0&&this.setOutputShape(e.outputShape),e.previousStatement!==void 0&&this.setPreviousStatement(!0,e.previousStatement),e.nextStatement!==void 0&&this.setNextStatement(!0,e.nextStatement),e.tooltip!==void 0&&(o=dt(e.tooltip),this.setTooltip(o)),e.enableContextMenu!==void 0&&(this.contextMenu=!!e.enableContextMenu),e.suppressPrefixSuffix!==void 0&&(this.suppressPrefixSuffix=!!e.suppressPrefixSuffix),e.helpUrl!==void 0&&(o=dt(e.helpUrl),this.setHelpUrl(o)),typeof e.extensions=="string"&&(console.warn(t+"JSON attribute 'extensions' should be an array of strings. Found raw string in JSON for '"+e.type+"' block."),e.extensions=[e.extensions]),e.mutator!==void 0&&Sa(e.mutator,this,!0),e=e.extensions,Array.isArray(e))for(t=0;th||h>t)throw Error('Block "'+this.type+'": Message index %'+h+" out of range.");if(o[h])throw Error('Block "'+this.type+'": Message index %'+h+" duplicated.");o[h]=!0,n++}}if(n!==t)throw Error('Block "'+this.type+'": Message does not reference all '+t+" arg(s).")}interpolateArguments(e,t,o){const n=[];for(let h=0;h=this.inputList.length)throw RangeError("Input index "+e+" out of bounds.");if(t>this.inputList.length)throw RangeError("Reference input "+t+" out of bounds.");const o=this.inputList[e];this.inputList.splice(e,1),et.getWeight()-o.getWeight()),e}removeIcon(e){if(!this.hasIcon(e))return!1;let t;return(t=this.getIcon(e))==null||t.dispose(),this.icons=this.icons.filter(o=>!o.getType().equals(e)),!0}hasIcon(e){return this.icons.some(t=>t.getType().equals(e))}getIcon(e){return e instanceof ft?this.icons.find(t=>t.getType().equals(e)):this.icons.find(t=>t.getType().toString()===e)}getIcons(){return[...this.icons]}getRelativeToSurfaceXY(){return this.xy}moveBy(e,t,o){if(this.parentBlock_)throw Error("Block has parent");const n=new(Y(M.BLOCK_MOVE))(this);o&&n.setReason(o),this.xy.translate(e,t),n.recordNew(),K(n)}makeConnection_(e){return new Be(this,e)}allInputsFilled(e){if(e===void 0&&(e=!0),!e&&this.isShadow())return!1;for(let o=0,n;n=this.inputList[o];o++)if(n.connection){var t=n.connection.targetBlock();if(!t||!t.allInputsFilled(e))return!1}return(t=this.getNextBlock())?t.allInputsFilled(e):!0}toDevString(){let e=this.type?'"'+this.type+'" block':"Block";return this.id&&(e+=' (id="'+this.id+'")'),e}};Co.COLLAPSED_INPUT_NAME=Vn,Co.COLLAPSED_FIELD_NAME=Ya;var os=class{constructor(e,t,o,n){this.workspace=e,this.targetWorkspace=t,this.isFlyoutLabel=n,this.onMouseUpWrapper=null,this.height=this.width=0,this.cursorSvg=this.svgText=this.svgGroup=null,this.text=o.text,this.position=new G(0,0),this.callbackKey=o.callbackKey||o.callbackkey,this.cssClass=o["web-class"]||null,this.info=o}createDom(){var e=this.isFlyoutLabel?"blocklyFlyoutLabel":"blocklyFlyoutButton";this.cssClass&&(e+=" "+this.cssClass),this.svgGroup=L(D.G,{class:e},this.workspace.getCanvas());let t;this.isFlyoutLabel||(t=L(D.RECT,{class:"blocklyFlyoutButtonShadow",rx:os.BORDER_RADIUS,ry:os.BORDER_RADIUS,x:1,y:1},this.svgGroup)),e=L(D.RECT,{class:this.isFlyoutLabel?"blocklyFlyoutLabelBackground":"blocklyFlyoutButtonBackground",rx:os.BORDER_RADIUS,ry:os.BORDER_RADIUS},this.svgGroup);const o=L(D.TEXT,{class:this.isFlyoutLabel?"blocklyFlyoutLabelText":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup);var n=dt(this.text);this.workspace.RTL&&(n+="‏"),o.textContent=n,this.isFlyoutLabel&&(this.svgText=o,this.workspace.getThemeManager().subscribe(this.svgText,"flyoutForegroundColour","fill"));const c=ks(o,"fontSize"),h=ks(o,"fontWeight"),$=ks(o,"fontFamily");if(this.width=Kr(o,c,h,$),n=Yr(n,c,h,$),this.height=n.height,!this.isFlyoutLabel){this.width+=2*os.TEXT_MARGIN_X,this.height+=2*os.TEXT_MARGIN_Y;let T;(T=t)==null||T.setAttribute("width",String(this.width));let B;(B=t)==null||B.setAttribute("height",String(this.height))}return e.setAttribute("width",String(this.width)),e.setAttribute("height",String(this.height)),o.setAttribute("x",String(this.width/2)),o.setAttribute("y",String(this.height/2-n.height/2+n.baseline)),this.updateTransform(),this.onMouseUpWrapper=Q(this.svgGroup,"pointerup",this,this.onMouseUp),this.svgGroup}show(){this.updateTransform(),this.svgGroup.setAttribute("display","block")}updateTransform(){this.svgGroup.setAttribute("transform","translate("+this.position.x+","+this.position.y+")")}moveTo(e,t){this.position.x=e,this.position.y=t,this.updateTransform()}isLabel(){return this.isFlyoutLabel}getPosition(){return this.position}getButtonText(){return this.text}getTargetWorkspace(){return this.targetWorkspace}getWorkspace(){return this.workspace}dispose(){this.onMouseUpWrapper&&ze(this.onMouseUpWrapper),this.svgGroup&&Ve(this.svgGroup),this.svgText&&this.workspace.getThemeManager().unsubscribe(this.svgText)}setCursorSvg(e){e?this.svgGroup&&(this.svgGroup.appendChild(e),this.cursorSvg=e):this.cursorSvg=null}setMarkerSvg(){throw Error("Attempted to set a marker on a button.")}onMouseUp(e){(e=this.targetWorkspace.getGesture(e))&&e.cancel(),this.isFlyoutLabel&&this.callbackKey?console.warn("Labels should not have callbacks. Label text: "+this.text):this.isFlyoutLabel||this.callbackKey&&this.targetWorkspace.getButtonCallback(this.callbackKey)?this.isFlyoutLabel||(e=this.targetWorkspace.getButtonCallback(this.callbackKey))&&e(this):console.warn("Buttons should have callbacks. Button text: "+this.text)}};os.TEXT_MARGIN_X=5,os.TEXT_MARGIN_Y=2,os.BORDER_RADIUS=4,Ct(` +.blocklyFlyoutButton { + fill: #888; + cursor: default; +} + +.blocklyFlyoutButtonShadow { + fill: #666; +} + +.blocklyFlyoutButton:hover { + fill: #aaa; +} + +.blocklyFlyoutLabel { + cursor: default; +} + +.blocklyFlyoutLabelBackground { + opacity: 0; +} +`);var P=class{constructor(e,t,o){if(this.wsCoordinate=null,!t)throw Error("Cannot create a node without a location.");this.type=e,this.isConnectionLocation=P.isConnectionType(e),this.location=t,this.processParams(o||null)}processParams(e){e&&e.wsCoordinate&&(this.wsCoordinate=e.wsCoordinate)}getLocation(){return this.location}getType(){return this.type}getWsCoordinate(){return this.wsCoordinate}isConnection(){return this.isConnectionLocation}findNextForInput(){var e=this.location.getParentInput();const t=e.getSourceBlock();for(e=t.inputList.indexOf(e),e+=1;et instanceof Co&&c.block===t||t instanceof os&&c.button===t);return 0>n?null:(o=o?n+1:n-1,o===-1||o===e.length?null:e[o])}findTopASTNodeForBlock(e){const t=Nn(e);return t?P.createConnectionNode(t):P.createBlockNode(e)}getOutAstNodeForBlock(e){if(!e)return null;e=e.getTopStackBlock();const t=Nn(e);return t&&t.targetConnection&&t.targetConnection.getParentInput()?P.createInputNode(t.targetConnection.getParentInput()):P.createStackNode(e)}findFirstFieldOrInput(e){e=e.inputList;for(let t=0;t{ka(o.getSourceBlock()),setTimeout(()=>{n.bringToFront()},0)})}}update(e,t){const o=this.getCandidate(e);((this.wouldDeleteBlock=this.shouldDelete(!!o,t))||this.shouldUpdatePreviews(o,e))&&(i.disable$$module$build$src$core$events$utils(),this.maybeHidePreview(o),this.maybeShowPreview(o),i.enable$$module$build$src$core$events$utils())}createMarkerBlock(e){i.disable$$module$build$src$core$events$utils();let t;try{const o=Vt(e,{addCoordinates:!1,addInputBlocks:!1,addNextBlocks:!1,doFullSerialization:!1});if(!o)throw Error(`Failed to serialize source block. ${e.toDevString()}`);t=Ws(o,this.workspace);for(const n of t.getDescendants(!1))n.setInsertionMarker(!0);t.initSvg(),t.getSvgRoot().setAttribute("visibility","hidden")}finally{i.enable$$module$build$src$core$events$utils()}return t}initAvailableConnections(){const e=this.topBlock.getConnections_(!1),t=this.topBlock.lastConnectionInStack(!0);return t&&t!==this.topBlock.nextConnection&&(e.push(t),this.lastOnStack=t),e}shouldUpdatePreviews(e,t){if(!e)return!!this.activeCandidate;if(!this.activeCandidate)return!0;const{local:o,closest:n}=this.activeCandidate;if(n===e.closest&&o===e.local)return!1;const c=o.x+t.x-n.x;return t=o.y+t.y-n.y,e.radius{let B;(B=n)==null||B.positionNearConnection(T,h,$);let ie;(ie=n)==null||ie.getSvgRoot().setAttribute("visibility","visible")}),this.markerConnection=c}hideInsertionMarker(){if(this.markerConnection){var e=this.markerConnection,t=e.getSourceBlock(),o=t.outputConnection,n;if((n=t.previousConnection)!=null&&n.targetConnection||o!=null&&o.targetConnection)t.unplug(!0);else{let c;(c=e.targetBlock())==null||c.unplug(!1)}if(e.targetConnection)throw Error("markerConnection still connected at the end of disconnectInsertionMarker");this.markerConnection=null,(e=t.getSvgRoot())&&e.setAttribute("visibility","hidden")}}showInsertionInputOutline(e){e=e.closest,this.highlightedBlock=e.getSourceBlock(),this.highlightedBlock.highlightShapeForInput(e,!0)}hideInsertionInputOutline(){if(this.highlightedBlock){if(!this.activeCandidate)throw Error("Cannot hide the insertion marker outline because there is no active candidate");this.highlightedBlock.highlightShapeForInput(this.activeCandidate.closest,!1),this.highlightedBlock=null}}showReplacementFade(e){if(this.fadedBlock=e.closest.targetBlock(),!this.fadedBlock)throw Error("Cannot show the replacement fade because the closest connection does not have a target block");this.fadedBlock.fadeForReplacement(!0)}hideReplacementFade(){this.fadedBlock&&(this.fadedBlock.fadeForReplacement(!1),this.fadedBlock=null)}getInsertionMarkers(){const e=[];return this.firstMarker&&e.push(this.firstMarker),this.lastMarker&&e.push(this.lastMarker),e}disposeInsertionMarker(e){if(e){i.disable$$module$build$src$core$events$utils();try{e.dispose()}finally{i.enable$$module$build$src$core$events$utils()}}}};(function(e){e=e.PREVIEW_TYPE||(e.PREVIEW_TYPE={}),e[e.INSERTION_MARKER=0]="INSERTION_MARKER",e[e.INPUT_OUTLINE=1]="INPUT_OUTLINE",e[e.REPLACEMENT_FADE=2]="REPLACEMENT_FADE"})(is||(is={})),is.PREVIEW_TYPE;var yl=class{constructor(e){this.overrides=null,this.name=e}getClassName(){return this.name+"-renderer"}init(e,t){this.constants_=this.makeConstants_(),t&&(this.overrides=t,Object.assign(this.constants_,t)),this.constants_.setTheme(e),this.constants_.init()}createDom(e,t){this.constants_.createDom(e,this.name+"-"+t.name,"."+this.getClassName()+"."+t.getClassName())}refreshDom(e,t){const o=this.getConstants();o.dispose(),this.constants_=this.makeConstants_(),this.overrides&&Object.assign(this.constants_,this.overrides),this.constants_.randomIdentifier=o.randomIdentifier,this.constants_.setTheme(t),this.constants_.init(),this.createDom(e,t)}dispose(){this.constants_&&this.constants_.dispose()}makeConstants_(){return new $l}makeRenderInfo_(e){return new ar(this,e)}makeDrawer_(e,t){return new bl(e,t)}makeMarkerDrawer(e,t){return new Fh(e,this.getConstants(),t)}makePathObject(e,t){return new vl(e,t,this.constants_)}getConstants(){return this.constants_}shouldHighlightConnection(e){return!0}orphanCanConnectAtEnd(e,t,o){return!!Be.getConnectionForOrphanedConnection(e,o===ne.OUTPUT_VALUE?t.outputConnection:t.previousConnection)}getConnectionPreviewMethod(e,t,o){return _("getConnectionPreviewMethod","v10","v12","an IConnectionPreviewer, if it fulfills your use case."),t.type===ne.OUTPUT_VALUE||t.type===ne.PREVIOUS_STATEMENT?!e.isConnected()||this.orphanCanConnectAtEnd(o,e.targetBlock(),t.type)?is.PREVIEW_TYPE.INSERTION_MARKER:is.PREVIEW_TYPE.REPLACEMENT_FADE:is.PREVIEW_TYPE.INSERTION_MARKER}render(e){const t=this.makeRenderInfo_(e);t.measure(),this.makeDrawer_(e,t).draw()}},We={};We.BottomRow=Ah,We.Connection=io,We.ConstantProvider=$l,We.Drawer=bl,We.ExternalValueInput=fl,We.Field=Hi,We.Hat=Rh,We.Icon=zb,We.InRowSpacer=Xt,We.InlineInput=Oh,We.InputConnection=wo,We.InputRow=Mh,We.JaggedEdge=Ub,We.MarkerSvg=Fh,We.Measurable=Rs,We.NextConnection=Hb,We.OutputConnection=Wb,We.PathObject=vl,We.PreviousConnection=Gb,We.RenderInfo=ar,We.Renderer=yl,We.RoundCorner=nr,We.Row=or,We.SpacerRow=Nh,We.SquareCorner=rr,We.StatementInput=ir,We.TopRow=Lh,We.Types=I,We.init=id,We.register=Ln,We.unregister=e$;var Kb=class{constructor(e,t){this.workspace=e,this.theme=t,this.subscribedWorkspaces=[],this.componentDB=new Map}getTheme(){return this.theme}setTheme(e){var t=this.theme;this.theme=e,(e=this.workspace.getInjectionDiv())&&(t&&(t=t.getClassName())&&st(e,t),(t=this.theme.getClassName())&&$e(e,t));for(let o=0,n;n=this.subscribedWorkspaces[o];o++)n.refreshTheme();for(const[o,n]of this.componentDB)for(const c of n){e=c.element,t=c.propertyName;const h=this.theme&&this.theme.getComponentStyle(o);e.style.setProperty(t,h||"")}for(const o of this.subscribedWorkspaces)o.hideChaff()}subscribeWorkspace(e){this.subscribedWorkspaces.push(e)}unsubscribeWorkspace(e){if(!wt(this.subscribedWorkspaces,e))throw Error("Cannot unsubscribe a workspace that hasn't been subscribed.")}subscribe(e,t,o){this.componentDB.has(t)||this.componentDB.set(t,[]),this.componentDB.get(t).push({element:e,propertyName:o}),t=this.theme&&this.theme.getComponentStyle(t),e.style.setProperty(o,t||"")}unsubscribe(e){if(e)for(const[t,o]of this.componentDB){for(let n=o.length-1;0<=n;n--)o[n].element===e&&o.splice(n,1);o.length||this.componentDB.delete(t)}}dispose(){this.subscribedWorkspaces.length=0,this.componentDB.clear()}},jh="VARIABLE_DYNAMIC",ti={CATEGORY_NAME:jh};ti.flyoutCategory=Oa,ti.flyoutCategoryBlocks=ld,ti.onCreateVariableButtonClick_Colour=ad,ti.onCreateVariableButtonClick_Number=rd,ti.onCreateVariableButtonClick_String=nd;var Yb=30,si=[];si[ne.INPUT_VALUE]=ne.OUTPUT_VALUE,si[ne.OUTPUT_VALUE]=ne.INPUT_VALUE,si[ne.NEXT_STATEMENT]=ne.PREVIOUS_STATEMENT,si[ne.PREVIOUS_STATEMENT]=ne.NEXT_STATEMENT;var zh="RENAME_VARIABLE_ID",Uh="DELETE_VARIABLE_ID",Jb=class{canConnect(e,t,o,n){return this.canConnectWithReason(e,t,o,n)===Be.CAN_CONNECT}canConnectWithReason(e,t,o,n){const c=this.doSafetyChecks(e,t);return c!==Be.CAN_CONNECT?c:this.doTypeChecks(e,t)?o&&!this.doDragChecks(e,t,n||0)?Be.REASON_DRAG_CHECKS_FAILED:Be.CAN_CONNECT:Be.REASON_CHECKS_FAILED}getErrorMessage(e,t,o){switch(e){case Be.REASON_SELF_CONNECTION:return"Attempted to connect a block to itself.";case Be.REASON_DIFFERENT_WORKSPACES:return"Blocks not on same workspace.";case Be.REASON_WRONG_TYPE:return"Attempt to connect incompatible types.";case Be.REASON_TARGET_NULL:return"Target connection is null.";case Be.REASON_CHECKS_FAILED:return"Connection checks failed. "+(t+" expected "+t.getCheck()+", found "+o.getCheck());case Be.REASON_SHADOW_PARENT:return"Connecting non-shadow to shadow block.";case Be.REASON_DRAG_CHECKS_FAILED:return"Drag checks failed.";case Be.REASON_PREVIOUS_AND_OUTPUT:return"Block would have an output and a previous connection.";default:return"Unknown connection failure: this should never happen!"}}doSafetyChecks(e,t){if(!e||!t)return Be.REASON_TARGET_NULL;let o,n,c;return e.isSuperior()?(o=e.getSourceBlock(),n=t.getSourceBlock(),c=t):(n=e.getSourceBlock(),o=t.getSourceBlock(),c=e,e=t),o===n?Be.REASON_SELF_CONNECTION:c.type!==si[e.type]?Be.REASON_WRONG_TYPE:o.workspace!==n.workspace?Be.REASON_DIFFERENT_WORKSPACES:o.isShadow()&&!n.isShadow()?Be.REASON_SHADOW_PARENT:c.type===ne.OUTPUT_VALUE&&n.previousConnection&&n.previousConnection.isConnected()||c.type===ne.PREVIOUS_STATEMENT&&n.outputConnection&&n.outputConnection.isConnected()?Be.REASON_PREVIOUS_AND_OUTPUT:Be.CAN_CONNECT}doTypeChecks(e,t){if(e=e.getCheck(),t=t.getCheck(),!e||!t)return!0;for(let o=0;oo||t.getSourceBlock().isInsertionMarker())return!1;switch(t.type){case ne.PREVIOUS_STATEMENT:return this.canConnectToPrevious_(e,t);case ne.OUTPUT_VALUE:if(t.isConnected()&&!t.targetBlock().isInsertionMarker()||e.isConnected())return!1;break;case ne.INPUT_VALUE:if(t.isConnected()&&!t.targetBlock().isMovable()&&!t.targetBlock().isShadow())return!1;break;case ne.NEXT_STATEMENT:if(t.isConnected()&&!e.getSourceBlock().nextConnection&&!t.targetBlock().isShadow()&&t.targetBlock().nextConnection||t.targetBlock()&&!t.targetBlock().isMovable()&&!t.targetBlock().isShadow())return!1;break;default:return!1}return!zn.includes(t)}canConnectToPrevious_(e,t){return e.targetConnection||zn.includes(t)?!1:t.targetConnection?(e=t.targetBlock(),e.isInsertionMarker()?!e.getPreviousBlock():!1):!0}};r(z.CONNECTION_CHECKER,Ds,Jb);var Hh=class extends Kn{constructor(e){super(e),this.type=M.VAR_DELETE,e&&(this.varType=e.type,this.varName=e.name)}toJson(){const e=super.toJson();if(this.varType===void 0)throw Error("The var type is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");return e.varType=this.varType,e.varName=this.varName,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Hh),t.varType=e.varType,t.varName=e.varName,t}run(e){const t=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.varName)throw Error("The var name is undefined. Either pass a variable to the constructor, or call fromJson");e?t.deleteVariableById(this.varId):t.createVariable(this.varName,this.varType,this.varId)}};r(z.EVENT,M.VAR_DELETE,Hh);var Wh=class extends Kn{constructor(e,t){super(e),this.type=M.VAR_RENAME,e&&(this.oldName=e.name,this.newName=typeof t>"u"?"":t)}toJson(){const e=super.toJson();if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");return e.oldName=this.oldName,e.newName=this.newName,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Wh),t.oldName=e.oldName,t.newName=e.newName,t}run(e){const t=this.getEventWorkspace_();if(!this.varId)throw Error("The var ID is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.oldName)throw Error("The old var name is undefined. Either pass a variable to the constructor, or call fromJson");if(!this.newName)throw Error("The new var name is undefined. Either pass a value to the constructor, or call fromJson");e?t.renameVariableById(this.varId,this.newName):t.renameVariableById(this.varId,this.oldName)}};r(z.EVENT,M.VAR_RENAME,Wh);var Gh=class{constructor(e){this.workspace=e,this.variableMap=new Map}clear(){for(const e of this.variableMap.values())for(;0{c&&t&&this.deleteVariableInternal(t,n)})):this.deleteVariableInternal(t,n)}else console.warn("Can't delete non-existent variable: "+e)}deleteVariableInternal(e,t){const o=i.getGroup$$module$build$src$core$events$utils();o||i.setGroup$$module$build$src$core$events$utils(!0);try{for(let n=0;ne.name)}getVariableUsesById(e){const t=[],o=this.workspace.getAllBlocks(!1);for(let n=0;n!o.isInsertionMarker())):[]}addTopComment(e){this.topComments.push(e),this.commentDB.has(e.id)&&console.warn('Overriding an existing comment on this workspace, with id "'+e.id+'"'),this.commentDB.set(e.id,e)}removeTopComment(e){if(!wt(this.topComments,e))throw Error("Comment not present in workspace's list of top-most comments.");this.commentDB.delete(e.id)}getTopComments(e=!1){const t=[].concat(this.topComments);return e&&1!o.isInsertionMarker())}clear(){this.isClearing=!0;try{const e=i.getGroup$$module$build$src$core$events$utils();for(e||i.setGroup$$module$build$src$core$events$utils(!0);this.topBlocks.length;)this.topBlocks[0].dispose(!1);for(;this.topComments.length;)this.topComments[this.topComments.length-1].dispose();i.setGroup$$module$build$src$core$events$utils(e),this.variableMap.clear(),this.potentialVariableMap&&this.potentialVariableMap.clear()}finally{this.isClearing=!1}}renameVariableById(e,t){this.variableMap.renameVariableById(e,t)}createVariable(e,t,o){return this.variableMap.createVariable(e,t,o)}getVariableUsesById(e){return this.variableMap.getVariableUsesById(e)}deleteVariableById(e){this.variableMap.deleteVariableById(e)}getVariable(e,t){return this.variableMap.getVariable(e,t)}getVariableById(e){return this.variableMap.getVariableById(e)}getVariablesOfType(e){return this.variableMap.getVariablesOfType(e)}getVariableTypes(){return this.variableMap.getVariableTypes(this)}getAllVariables(){return this.variableMap.getAllVariables()}getAllVariableNames(){return this.variableMap.getAllVariableNames()}getWidth(){return 0}newBlock(e,t){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts")}newComment(e){throw Error("The implementation of newComment should be monkey-patched in by blockly.ts")}remainingCapacity(){return isNaN(this.options.maxBlocks)?1/0:this.options.maxBlocks-this.getAllBlocks(!1).length}remainingCapacityOfType(e){return this.options.maxInstances?(this.options.maxInstances[e]!==void 0?this.options.maxInstances[e]:1/0)-this.getBlocksByType(e,!1).length:1/0}isCapacityAvailable(e){if(!this.hasBlockLimits())return!0;let t=0;for(const o in e){if(e[o]>this.remainingCapacityOfType(o))return!1;t+=e[o]}return!(t>this.remainingCapacity())}hasBlockLimits(){return this.options.maxBlocks!==1/0||!!this.options.maxInstances}getUndoStack(){return this.undoStack_}getRedoStack(){return this.redoStack_}undo(e){var t=e?this.redoStack_:this.undoStack_,o=e?this.undoStack_:this.redoStack_;const n=t.pop();if(n){for(var c=[n];t.length&&n.group&&n.group===t[t.length-1].group;){const h=t.pop();h&&c.push(h)}for(t=0;tthis.MAX_UNDO&&0<=this.MAX_UNDO;)this.undoStack_.shift();for(let t=0;t!!t.getStyleName())),this.refreshToolboxSelection(),this.toolbox&&this.toolbox.refreshTheme(),this.isVisible()&&this.setVisible(!0);const e=new(Y(M.THEME_CHANGE))(this.getTheme().name,this.id);K(e)}updateBlockStyles(e){for(let t=0,o;o=e[t];t++){const n=o.getStyleName();n&&o.setStyle(n)}}getInverseScreenCTM(){if(this.inverseScreenCTMDirty){const e=this.getParentSvg().getScreenCTM();e&&(this.inverseScreenCTM=e.inverse(),this.inverseScreenCTMDirty=!1)}return this.inverseScreenCTM}updateInverseScreenCTM(){this.inverseScreenCTMDirty=!0}isVisible(){return this.visible}getSvgXY(e){let t=0,o=0,n=1;(this.getCanvas().contains(e)||this.getBubbleCanvas().contains(e))&&(n=this.scale);do{const c=vn(e);(e===this.getCanvas()||e===this.getBubbleCanvas())&&(n=1),t+=c.x*n,o+=c.y*n,e=e.parentNode}while(e&&e!==this.getParentSvg()&&e!==this.getInjectionDiv());return new G(t,o)}getCachedParentSvgSize(){const e=this.cachedParentSvgSize;return new Ne(e.width,e.height)}getOriginOffsetInPixels(){return Xr(this.getCanvas())}getInjectionDiv(){if(!this.injectionDiv){let e=this.svgGroup_;for(;e;){if((" "+(e.getAttribute("class")||"")+" ").includes(" injectionDiv ")){this.injectionDiv=e;break}e=e.parentNode}}return this.injectionDiv}getSvgGroup(){return this.svgGroup_}getBlockCanvas(){return this.getCanvas()}setResizeHandlerWrapper(e){this.resizeHandlerWrapper=e}createDom(e,t){return this.injectionDiv||(this.injectionDiv=t??null),this.svgGroup_=L(D.G,{class:"blocklyWorkspace"}),e&&(this.svgBackground_=L(D.RECT,{height:"100%",width:"100%",class:e},this.svgGroup_),e==="blocklyMainBackground"&&this.grid?this.svgBackground_.style.fill="url(#"+this.grid.getPatternId()+")":this.themeManager_.subscribe(this.svgBackground_,"workspaceBackgroundColour","fill")),this.layerManager=new YC(this),this.svgBlockCanvas_=this.layerManager.getBlockLayer(),this.svgBubbleCanvas_=this.layerManager.getBubbleLayer(),this.isFlyout||(Q(this.svgGroup_,"pointerdown",this,this.onMouseDown,!1),this.dummyWheelListener=()=>{},document.body.addEventListener("wheel",this.dummyWheelListener),Q(this.svgGroup_,"wheel",this,this.onMouseWheel)),this.options.hasCategories&&(this.toolbox=new(w(z.TOOLBOX,this.options,!0))(this)),this.grid&&this.grid.update(this.scale),this.recordDragTargets(),(e=w(z.CURSOR,this.options))&&this.markerManager.setCursor(new e),this.renderer.createDom(this.svgGroup_,this.getTheme()),this.svgGroup_}dispose(){if(this.rendered=!1,this.currentGesture_&&this.currentGesture_.cancel(),this.svgGroup_&&Ve(this.svgGroup_),this.toolbox&&(this.toolbox.dispose(),this.toolbox=null),this.flyout&&(this.flyout.dispose(),this.flyout=null),this.trashcan&&(this.trashcan.dispose(),this.trashcan=null),this.scrollbar&&(this.scrollbar.dispose(),this.scrollbar=null),this.zoomControls_&&this.zoomControls_.dispose(),this.audioManager&&this.audioManager.dispose(),this.grid&&(this.grid=null),this.renderer.dispose(),this.markerManager&&this.markerManager.dispose(),super.dispose(),this.themeManager_&&(this.themeManager_.unsubscribeWorkspace(this),this.themeManager_.unsubscribe(this.svgBackground_),this.options.parentWorkspace||this.themeManager_.dispose()),this.connectionDBList.length=0,this.toolboxCategoryCallbacks.clear(),this.flyoutButtonCallbacks.clear(),!this.options.parentWorkspace){const e=this.getParentSvg();e&&e.parentNode&&Ve(e.parentNode)}this.resizeHandlerWrapper&&(ze(this.resizeHandlerWrapper),this.resizeHandlerWrapper=null),this.dummyWheelListener&&(document.body.removeEventListener("wheel",this.dummyWheelListener),this.dummyWheelListener=null)}addTrashcan(){this.trashcan=Zt.newTrashcan(this);const e=this.trashcan.createDom();this.svgGroup_.insertBefore(e,this.getCanvas())}static newTrashcan(e){throw Error("The implementation of newTrashcan should be monkey-patched in by blockly.ts")}addZoomControls(){this.zoomControls_=new eb(this);const e=this.zoomControls_.createDom();this.svgGroup_.appendChild(e)}addFlyout(e){const t=new ss({parentWorkspace:this,rtl:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,renderer:this.options.renderer,rendererOverrides:this.options.rendererOverrides,move:{scrollbars:!0}});return t.toolboxPosition=this.options.toolboxPosition,this.flyout=this.horizontalLayout?new(w(z.FLYOUTS_HORIZONTAL_TOOLBOX,this.options,!0))(t):new(w(z.FLYOUTS_VERTICAL_TOOLBOX,this.options,!0))(t),this.flyout.autoClose=!1,this.flyout.getWorkspace().setVisible(!0),this.flyout.createDom(e)}getFlyout(e){return this.flyout||e?this.flyout:this.toolbox?this.toolbox.getFlyout():null}getToolbox(){return this.toolbox}updateScreenCalculations(){this.updateInverseScreenCTM(),this.recordDragTargets()}resizeContents(){this.resizesEnabled&&this.rendered&&(this.scrollbar&&this.scrollbar.resize(),this.updateInverseScreenCTM())}resize(){this.toolbox&&this.toolbox.position(),this.flyout&&this.flyout.position();const e=this.componentManager.getComponents(at.Capability.POSITIONABLE,!0),t=this.getMetricsManager().getUiMetrics(),o=[];for(let n=0,c;c=e[n];n++){c.position(t,o);const h=c.getBoundingRectangle();h&&o.push(h)}this.scrollbar&&this.scrollbar.resize(),this.updateScreenCalculations()}updateScreenCalculationsIfScrolled(){const e=Hc();G.equals(this.lastRecordedPageScroll,e)||(this.lastRecordedPageScroll=e,this.updateScreenCalculations())}getLayerManager(){return this.layerManager}getCanvas(){return this.layerManager.getBlockLayer()}setCachedParentSvgSize(e,t){const o=this.getParentSvg();e!=null&&(this.cachedParentSvgSize.width=e,o.setAttribute("data-cached-width",`${e}`)),t!=null&&(this.cachedParentSvgSize.height=t,o.setAttribute("data-cached-height",`${t}`))}getBubbleCanvas(){return this.layerManager.getBubbleLayer()}getParentSvg(){if(!this.cachedParentSvg){let e=this.svgGroup_;for(;e;){if(e.tagName==="svg"){this.cachedParentSvg=e;break}e=e.parentNode}}return this.cachedParentSvg}maybeFireViewportChangeEvent(){if(J()){var e=this.scale,t=-this.scrollY,o=-this.scrollX;if(!(e===this.oldScale&&1>Math.abs(t-this.oldTop)&&1>Math.abs(o-this.oldLeft))){var n=new(Y(M.VIEWPORT_CHANGE))(t,o,e,this.id,this.oldScale);this.oldScale=e,this.oldTop=t,this.oldLeft=o,K(n)}}}translate(e,t){let o;(o=this.layerManager)==null||o.translateLayers(new G(e,t),this.scale);let n;(n=this.grid)==null||n.moveTo(e,t),this.maybeFireViewportChangeEvent()}getWidth(){const e=this.getMetrics();return e?e.viewWidth/this.scale:0}setVisible(e){this.visible=e,this.svgGroup_&&(this.scrollbar&&this.scrollbar.setContainerVisible(e),this.getFlyout()&&this.getFlyout().setContainerVisible(e),this.getParentSvg().style.display=e?"block":"none",this.toolbox&&this.toolbox.setVisible(e),e||this.hideChaff(!0))}render(){const e=this.getAllBlocks(!1);for(let t=e.length-1;0<=t;t--)e[t].queueRender();this.getTopBlocks().flatMap(t=>t.getDescendants(!1)).filter(t=>t.isInsertionMarker()).forEach(t=>t.queueRender()),ps().then(()=>void this.markerManager.updateMarkers())}highlightBlock(e,t){if(t===void 0){for(let o=0,n;n=this.highlightedBlocks[o];o++)n.setHighlighted(!1);this.highlightedBlocks.length=0}(e=e?this.getBlockById(e):null)&&((t=t===void 0||t)?this.highlightedBlocks.includes(e)||this.highlightedBlocks.push(e):wt(this.highlightedBlocks,e),e.setHighlighted(t))}refreshToolboxSelection(){const e=this.isFlyout?this.targetWorkspace:this;e&&!e.currentGesture_&&e.toolbox&&e.toolbox.getFlyout()&&e.toolbox.refreshSelection()}renameVariableById(e,t){super.renameVariableById(e,t),this.refreshToolboxSelection()}deleteVariableById(e){super.deleteVariableById(e),this.refreshToolboxSelection()}createVariable(e,t,o){return e=super.createVariable(e,t,o),this.refreshToolboxSelection(),e}recordDragTargets(){const e=this.componentManager.getComponents(at.Capability.DRAG_TARGET,!0);this.dragTargetAreas=[];for(let t=0,o;o=e[t];t++){const n=o.getClientRect();n&&this.dragTargetAreas.push({component:o,clientRect:n})}}newBlock(e,t){throw Error("The implementation of newBlock should be monkey-patched in by blockly.ts")}newComment(e){throw Error("The implementation of newComment should be monkey-patched in by blockly.ts")}getDragTarget(e){for(let t=0,o;o=this.dragTargetAreas[t];t++)if(o.clientRect.contains(e.clientX,e.clientY))return o.component;return null}onMouseDown(e){const t=this.getGesture(e);t&&t.handleWsStart(e,this)}startDrag(e,t){_a(this,e,t)}moveDrag(e){return wa(this,e)}isDragging(){return this.currentGesture_!==null&&this.currentGesture_.isDragging()}isDraggable(){return this.options.moveOptions&&this.options.moveOptions.drag}isMovable(){return this.options.moveOptions&&!!this.options.moveOptions.scrollbars||this.options.moveOptions&&this.options.moveOptions.wheel||this.options.moveOptions&&this.options.moveOptions.drag||this.options.zoomOptions&&this.options.zoomOptions.wheel||this.options.zoomOptions&&this.options.zoomOptions.pinch}isMovableHorizontally(){const e=!!this.scrollbar;return this.isMovable()&&(!e||e&&this.scrollbar.canScrollHorizontally())}isMovableVertically(){const e=!!this.scrollbar;return this.isMovable()&&(!e||e&&this.scrollbar.canScrollVertically())}onMouseWheel(e){if(Qs.inProgress())e.preventDefault(),e.stopPropagation();else{var t=this.options.zoomOptions&&this.options.zoomOptions.wheel,o=this.options.moveOptions&&this.options.moveOptions.wheel;if(t||o){var n=Us(e);if(Yd)var c=e.metaKey;t&&(e.ctrlKey||c||!o)?(n=-n.y/50,t=tt(e,this.getParentSvg(),this.getInverseScreenCTM()),this.zoom(t.x,t.y,n)):(t=this.scrollX-n.x,o=this.scrollY-n.y,e.shiftKey&&!n.x&&(t=this.scrollX-n.y,o=this.scrollY),this.scroll(t,o)),e.preventDefault()}}}getBlocksBoundingBox(){const e=this.getTopBoundedElements();if(!e.length)return new Je(0,0,0,0);const t=e[0].getBoundingRectangle();for(let n=1;nt.bottom&&(t.bottom=o.bottom),o.leftt.right&&(t.right=o.right))}return t}cleanUp(){this.setResizesEnabled(!1),i.setGroup$$module$build$src$core$events$utils(!0);var e=this.getTopBlocks(!0),t=e.filter(h=>h.isMovable());const o=e.filter(h=>!h.isMovable()).map(h=>h.getBoundingRectangle());e=function(h){for(const $ of o)if(h.intersects($))return $;return null};var n=0;const c=this.renderer.getConstants().MIN_BLOCK_HEIGHT;for(const h of t){for(t=h.getBoundingRectangle(),h.moveBy(-t.left,n-t.top,["cleanup"]),h.snapToGrid(),t=h.getBoundingRectangle(),n=e(t);n!=null;)n=n.top+n.getHeight()+c,h.moveBy(0,n-t.top,["cleanup"]),h.snapToGrid(),t=h.getBoundingRectangle(),n=e(t);n=h.getRelativeToSurfaceXY().y+h.getHeightWidth().height+c}i.setGroup$$module$build$src$core$events$utils(!1),this.setResizesEnabled(!0)}showContextMenu(e){if(!this.options.readOnly&&!this.isFlyout){var t=Ae.registry.getContextMenuOptions(Ae.ScopeType.WORKSPACE,{workspace:this});this.configureContextMenu&&this.configureContextMenu(t,e),An(e,t,this.RTL,this)}}updateToolbox(e){if(e=qr(e)){if(!this.options.languageTree)throw Error("Existing toolbox is null. Can't create new toolbox.");if(Zr(e)){if(!this.toolbox)throw Error("Existing toolbox has no categories. Can't change mode.");this.options.languageTree=e,this.toolbox.render(e)}else{if(!this.flyout)throw Error("Existing toolbox has categories. Can't change mode.");this.options.languageTree=e,this.flyout.show(e)}}else if(this.options.languageTree)throw Error("Can't nullify an existing toolbox.")}markFocused(){this.options.parentWorkspace?this.options.parentWorkspace.markFocused():(le(this),this.getParentSvg().focus({preventScroll:!0}))}zoom(e,t,o){o=Math.pow(this.options.zoomOptions.scaleSpeed,o);const n=this.scale*o;if(this.scale!==n){n>this.options.zoomOptions.maxScale?o=this.options.zoomOptions.maxScale/this.scale:nthis.options.zoomOptions.maxScale?e=this.options.zoomOptions.maxScale:this.options.zoomOptions.minScale&&et.autoHide(e))}static setTopLevelWorkspaceMetrics(e){const t=this.getMetrics();typeof e.x=="number"&&(this.scrollX=-(t.scrollLeft+(t.scrollWidth-t.viewWidth)*e.x)),typeof e.y=="number"&&(this.scrollY=-(t.scrollTop+(t.scrollHeight-t.viewHeight)*e.y)),this.translate(this.scrollX+t.absoluteLeft,this.scrollY+t.absoluteTop)}},Vh=class extends gs{constructor(e,t,o){super(o),this.type=M.SELECTED,this.oldElementId=e??void 0,this.newElementId=t??void 0}toJson(){const e=super.toJson();return e.oldElementId=this.oldElementId,e.newElementId=this.newElementId,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Vh),t.oldElementId=e.oldElementId,t.newElementId=e.newElementId,t}};r(z.EVENT,M.SELECTED,Vh);var lr=class{paste(e,t,o){if(!t.isCapacityAvailable(e.typeCounts))return null;o&&(e.blockState.x=o.x,e.blockState.y=o.y),o=o||new G(e.blockState.x||0,e.blockState.y||0),i.disable$$module$build$src$core$events$utils();let n;try{n=Ws(e.blockState,t),t$(n,o)}finally{i.enable$$module$build$src$core$events$utils()}return n&&(J()&&!n.isShadow()&&K(new(Y(M.BLOCK_CREATE))(n)),i.setSelected$$module$build$src$core$common(n),n)}};lr.TYPE="block",ia(lr.TYPE,new lr);var _l={};_l.bumpIntoBounds=Ei,_l.bumpIntoBoundsHandler=cd,_l.bumpTopObjectsIntoBounds=Ma;var qb=class{constructor(e){this.block=e,this.connectionPreviewer=this.connectionCandidate=this.startLoc=this.startChildConn=this.startParentConn=null,this.dragging=!1,this.dragOffset=new G(0,0),this.inGroup=!1,this.workspace=e.workspace}isMovable(){if(this.block.isShadow()){let e,t;return(t=(e=this.block.getParent())==null?void 0:e.isMovable())!=null?t:!1}return this.block.isOwnMovable()&&!this.block.isDeadOrDying()&&!this.workspace.options.readOnly&&!this.block.isInFlyout}startDrag(e){if(this.block.isShadow())this.startDraggingShadow(e);else{this.dragging=!0,(this.inGroup=!!i.getGroup$$module$build$src$core$events$utils())||i.setGroup$$module$build$src$core$events$utils(!0),this.fireDragStartEvent(),this.startLoc=this.block.getRelativeToSurfaceXY(),this.connectionCandidate=null,this.connectionPreviewer=new(w(z.CONNECTION_PREVIEWER,this.workspace.options))(this.block),Ao(),this.workspace.setResizesEnabled(!1),ki(),e=!!e&&(e.altKey||e.ctrlKey||e.metaKey),this.shouldDisconnect(e)&&this.disconnectBlock(e),this.block.setDragging(!0);var t;(t=this.workspace.getLayerManager())==null||t.moveToDragLayer(this.block)}}startDraggingShadow(e){const t=this.block.getParent();if(!t)throw Error("Tried to drag a shadow block with no parent. Shadow blocks should always have parents.");this.dragOffset=G.difference(t.getRelativeToSurfaceXY(),this.block.getRelativeToSurfaceXY()),t.startDrag(e)}shouldDisconnect(e){return!!(this.block.getParent()||e&&this.block.nextConnection&&this.block.nextConnection.targetBlock())}disconnectBlock(e){let t,o,n;if(this.startParentConn=(n=(t=this.block.outputConnection)==null?void 0:t.targetConnection)!=null?n:(o=this.block.previousConnection)==null?void 0:o.targetConnection,e){let c;this.startChildConn=(c=this.block.nextConnection)==null?void 0:c.targetConnection}this.block.unplug(e),Vu(this.block)}fireDragStartEvent(){const e=new(Y(M.BLOCK_DRAG))(this.block,!0,this.block.getDescendants(!1));K(e)}fireDragEndEvent(){const e=new(Y(M.BLOCK_DRAG))(this.block,!1,this.block.getDescendants(!1));K(e)}fireMoveEvent(){if(!this.block.isDeadOrDying()){var e=new(Y(M.BLOCK_MOVE))(this.block);e.setReason(["drag"]),e.oldCoordinate=this.startLoc,e.recordNew(),K(e)}}drag(e){if(this.block.isShadow()){let t;(t=this.block.getParent())==null||t.drag(G.sum(e,this.dragOffset))}else this.block.moveDuringDrag(e),this.updateConnectionPreview(this.block,G.difference(e,this.startLoc))}updateConnectionPreview(e,t){var o=this.connectionCandidate;const n=this.getConnectionCandidate(e,t);if(n){this.connectionCandidate=t=o&&this.currCandidateIsBetter(o,t,n)?o:n;var{local:c,neighbour:h}=t;t=c.type===ne.OUTPUT_VALUE||c.type===ne.PREVIOUS_STATEMENT,o=h.isConnected()&&!h.targetBlock().isInsertionMarker(),t&&o&&!this.orphanCanConnectAtEnd(e,h.targetBlock(),c.type)?this.connectionPreviewer.previewReplacement(c,h,h.targetBlock()):this.connectionPreviewer.previewConnection(c,h)}else this.connectionPreviewer.hidePreview(),this.connectionCandidate=null}orphanCanConnectAtEnd(e,t,o){return!!Be.getConnectionForOrphanedConnection(e,o===ne.OUTPUT_VALUE?t.outputConnection:t.previousConnection)}currCandidateIsBetter(e,t,o){const{local:n,neighbour:c}=e;e=new G(n.x,n.y);const h=new G(c.x,c.y);return t=G.distance(G.sum(e,t),h),o.distance>t-i.config$$module$build$src$core$config.currentConnectionPreference}getConnectionCandidate(e,t){e=this.getLocalConnections(e);let o=this.connectionCandidate?i.config$$module$build$src$core$config.connectingSnapRadius:i.config$$module$build$src$core$config.snapRadius,n=null;for(const c of e){const{connection:h,radius:$}=c.closest(o,t);h&&(n={local:c,neighbour:h,distance:$},o=$)}return n}getLocalConnections(e){const t=e.getConnections_(!1),o=e.lastConnectionInStack(!0);return o&&o!==e.nextConnection&&t.push(o),t}endDrag(e){if(this.block.isShadow()){let t;(t=this.block.getParent())==null||t.endDrag(e)}else{if(this.fireDragEndEvent(),this.fireMoveEvent(),Ro(),ki(),this.connectionPreviewer.hidePreview(),!this.block.isDeadOrDying()&&this.dragging){let t;(t=this.workspace.getLayerManager())==null||t.moveOffDragLayer(this.block,yo),this.block.setDragging(!1)}this.connectionCandidate?(this.applyConnections(this.connectionCandidate),this.disposeStep()):this.block.queueRender().then(()=>this.disposeStep()),this.inGroup||i.setGroup$$module$build$src$core$events$utils(!1)}}disposeStep(){this.block.snapToGrid(),this.connectionPreviewer.dispose(),this.workspace.setResizesEnabled(!0)}applyConnections(e){const{local:t,neighbour:o}=e;t.connect(o);const n=t.isSuperior()?o:t,c=this.block.getRootBlock();ps().then(()=>{ka(n.getSourceBlock()),setTimeout(()=>{c.bringToFront()},0)})}revertDrag(){if(this.block.isShadow()){let t;(t=this.block.getParent())==null||t.revertDrag()}else{var e;if((e=this.startChildConn)==null||e.connect(this.block.nextConnection),this.startParentConn)switch(this.startParentConn.type){case ne.INPUT_VALUE:this.startParentConn.connect(this.block.outputConnection);break;case ne.NEXT_STATEMENT:this.startParentConn.connect(this.block.previousConnection)}else{this.block.moveTo(this.startLoc,["drag"]);let t;(t=this.workspace.getLayerManager())==null||t.moveOffDragLayer(this.block,yo),Ei(this.workspace,this.workspace.getMetricsManager().getScrollMetrics(!0),this.block)}this.startParentConn=this.startChildConn=null,this.connectionPreviewer.hidePreview(),this.connectionCandidate=null,this.block.setDragging(!1),this.dragging=!1}}},Zb=class{constructor(){this.drawer=this.curNode=this.colour=null,this.type="marker"}setDrawer(e){this.drawer=e}getDrawer(){return this.drawer}getCurNode(){return this.curNode}setCurNode(e){const t=this.curNode;this.curNode=e,this.drawer&&this.drawer.draw(t,this.curNode)}draw(){this.drawer&&this.drawer.draw(this.curNode,this.curNode)}hide(){this.drawer&&this.drawer.hide()}dispose(){this.getDrawer()&&this.getDrawer().dispose()}},Kh=class extends Zb{constructor(){super(),this.type="cursor"}next(){var e=this.getCurNode();if(!e)return null;for(e=e.next();e&&e.next()&&(e.getType()===P.types.NEXT||e.getType()===P.types.BLOCK);)e=e.next();return e&&this.setCurNode(e),e}in(){var e=this.getCurNode();if(!e)return null;(e.getType()===P.types.PREVIOUS||e.getType()===P.types.OUTPUT)&&(e=e.next());let t,o;return(e=(o=(t=e)==null?void 0:t.in())!=null?o:null)&&this.setCurNode(e),e}prev(){var e=this.getCurNode();if(!e)return null;for(e=e.prev();e&&e.prev()&&(e.getType()===P.types.NEXT||e.getType()===P.types.BLOCK);)e=e.prev();return e&&this.setCurNode(e),e}out(){var e=this.getCurNode();return e?((e=e.out())&&e.getType()===P.types.BLOCK&&(e=e.prev()||e),e&&this.setCurNode(e),e):null}};r(z.CURSOR,Ds,Kh);var cr=class extends Kh{constructor(){super()}next(){var e=this.getCurNode();return e?((e=this.getNextNode_(e,this.validNode_))&&this.setCurNode(e),e):null}in(){return this.next()}prev(){var e=this.getCurNode();return e?((e=this.getPreviousNode_(e,this.validNode_))&&this.setCurNode(e),e):null}out(){return this.prev()}getNextNode_(e,t){if(!e)return null;const o=e.in()||e.next();return t(o)?o:o?this.getNextNode_(o,t):(e=this.findSiblingOrParent(e.out()),t(e)?e:e?this.getNextNode_(e,t):null)}getPreviousNode_(e,t){if(!e)return null;let o=e.prev();return o=o?this.getRightMostChild(o):e.out(),t(o)?o:o?this.getPreviousNode_(o,t):null}validNode_(e){let t=!1;return e=e&&e.getType(),(e===P.types.OUTPUT||e===P.types.INPUT||e===P.types.FIELD||e===P.types.NEXT||e===P.types.PREVIOUS||e===P.types.WORKSPACE)&&(t=!0),t}findSiblingOrParent(e){if(!e)return null;const t=e.next();return t||this.findSiblingOrParent(e.out())}getRightMostChild(e){if(!e.in())return e;for(e=e.in();e&&e.next();)e=e.next();return this.getRightMostChild(e)}};cr.registrationName="basicCursor",r(z.CURSOR,cr.registrationName,cr);var Qb=class extends cr{validNode_(e){let t=!1;const o=e&&e.getType();return e&&(e=e.getLocation(),o===P.types.FIELD&&e&&e.isTabNavigable()&&e.isClickable()&&(t=!0)),t}},ev=10,Bt=class extends Be{constructor(e,t){super(e,t),this.highlighted=!1,this.targetConnection=null,this.db=e.workspace.connectionDBList[t],this.dbOpposite=e.workspace.connectionDBList[si[t]],this.offsetInBlock=new G(0,0),this.trackedState=Bt.TrackedState.WILL_TRACK}dispose(){super.dispose(),this.trackedState===Bt.TrackedState.TRACKED&&this.db.removeConnection(this,this.y);let e,t;(t=(e=this.sourceBlock_.pathObject).removeConnectionHighlight)==null||t.call(e,this)}getSourceBlock(){return super.getSourceBlock()}targetBlock(){return super.targetBlock()}distanceFrom(e){const t=this.x-e.x;return e=this.y-e.y,Math.sqrt(t*t+e*e)}bumpAwayFrom(e,t=!1){if(!this.sourceBlock_.workspace.isDragging()){var o=i.config$$module$build$src$core$config.snapRadius+Math.floor(Math.random()*ev),n=i.config$$module$build$src$core$config.snapRadius+Math.floor(Math.random()*ev),c=e.sourceBlock_.getRootBlock(),h=this.sourceBlock_.getRootBlock();if(!c.isInFlyout&&!h.isInFlyout){var $=!0;if(h.isMovable())c.isMovable()&&t&&(n=-n);else if(c.isMovable())$=!1,o=-o,n=-n;else return;t=$?e:this,e=$?this:e,c=$?h:c,(h=x()===c)||c.addSelect(),c.RTL&&(o=-o),c.moveBy(t.x+o-e.x,t.y+n-e.y,["bump"]),h||c.removeSelect()}}}moveTo(e,t){let o=!1;return this.trackedState===Bt.TrackedState.WILL_TRACK?(this.db.addConnection(this,t),this.trackedState=Bt.TrackedState.TRACKED,o=!0):this.trackedState===Bt.TrackedState.TRACKED&&(this.db.removeConnection(this,this.y),this.db.addConnection(this,t),o=!0),this.x=e,this.y=t,o}moveBy(e,t){return this.moveTo(this.x+e,this.y+t)}moveToOffset(e){return this.moveTo(e.x+this.offsetInBlock.x,e.y+this.offsetInBlock.y)}setOffsetInBlock(e,t){this.offsetInBlock.x=e,this.offsetInBlock.y=t}getOffsetInBlock(){return this.offsetInBlock}tightenEfficiently(){var e=this.targetConnection;const t=this.targetBlock();e&&t&&(e=G.difference(this.offsetInBlock,e.offsetInBlock),t.translate(e.x,e.y))}closest(e,t){return this.dbOpposite.searchForClosest(this,e,t)}highlight(){this.highlighted=!0,this.getSourceBlock().queueRender()}unhighlight(){this.highlighted=!1,this.getSourceBlock().queueRender()}isHighlighted(){return this.highlighted}setTracking(e){e&&this.trackedState===Bt.TrackedState.TRACKED||!e&&this.trackedState===Bt.TrackedState.UNTRACKED||this.sourceBlock_.isInFlyout||(e?(this.db.addConnection(this,this.y),this.trackedState=Bt.TrackedState.TRACKED):(this.trackedState===Bt.TrackedState.TRACKED&&this.db.removeConnection(this,this.y),this.trackedState=Bt.TrackedState.UNTRACKED))}stopTrackingAll(){if(this.setTracking(!1),this.targetConnection){const e=this.targetBlock().getDescendants(!1);for(let t=0;tclearTimeout(e)),this.warningTextDb.clear(),this.getIcons().forEach(e=>e.dispose())}checkAndDelete(){this.workspace.isFlyout||(i.setGroup$$module$build$src$core$events$utils(!0),this.workspace.hideChaff(),this.outputConnection?this.dispose(!1,!0):this.dispose(!0,!0),i.setGroup$$module$build$src$core$events$utils(!1))}toCopyData(){return this.isInsertionMarker_?null:{paster:lr.TYPE,blockState:Vt(this,{addCoordinates:!0,addNextBlocks:!1}),typeCounts:ve(this,!0)}}applyColour(){this.pathObject.applyColour(this);const e=this.getIcons();for(let t=0;t{this.isDeadOrDying()||(this.warningTextDb.delete(t),this.setWarningText(e,t))},100));else if(this.isInFlyout&&(e=null),o=this.getIcon(oo.TYPE),e){let n=this.getSurroundParent(),c=null;for(;n;)n.isCollapsed()&&(c=n),n=n.getSurroundParent();c&&c.setWarningText(i.Msg$$module$build$src$core$msg.COLLAPSED_WARNINGS_WARNING,ns.COLLAPSED_WARNING_ID),o?o.addMessage(e,t):this.addIcon(new oo(this).addMessage(e,t))}else o&&(t?(o.addMessage("",t),o.getText()||this.removeIcon(oo.TYPE)):this.removeIcon(oo.TYPE))}setMutator(e){this.removeIcon(i.MutatorIcon$$module$build$src$core$icons$mutator_icon.TYPE),e&&this.addIcon(e)}addIcon(e){return super.addIcon(e),e instanceof i.MutatorIcon$$module$build$src$core$icons$mutator_icon&&(this.mutator=e),e.initView(this.createIconPointerDownListener(e)),e.applyColour(),e.updateEditable(),this.queueRender(),e}createIconPointerDownListener(e){return t=>{this.isDeadOrDying()||(t=this.workspace.getGesture(t))&&t.setStartIcon(e)}}removeIcon(e){const t=super.removeIcon(e);return e.equals(i.MutatorIcon$$module$build$src$core$icons$mutator_icon.TYPE)&&(this.mutator=null),this.queueRender(),t}setEnabled(e){_("setEnabled","v11","v12","the setDisabledReason method of BlockSvg");const t=this.isEnabled();super.setEnabled(e),this.isEnabled()===t||this.getInheritedDisabled()||this.updateDisabled()}setDisabledReason(e,t){const o=this.isEnabled();super.setDisabledReason(e,t),this.isEnabled()===o||this.getInheritedDisabled()||this.updateDisabled()}setHighlighted(e){this.pathObject.updateHighlighted(e)}addSelect(){this.pathObject.updateSelected(!0)}removeSelect(){this.pathObject.updateSelected(!1)}setDeleteStyle(e){this.pathObject.updateDraggingDelete(e)}getColour(){return this.style.colourPrimary}setColour(e){super.setColour(e),e=this.workspace.getRenderer().getConstants().getBlockStyleForColour(this.colour_),this.pathObject.setStyle(e.style),this.style=e.style,this.styleName_=e.name,this.applyColour()}setStyle(e){const t=this.workspace.getRenderer().getConstants().getBlockStyle(e);if(this.styleName_=e,t)this.hat=t.hat,this.pathObject.setStyle(t),this.colour_=t.colourPrimary,this.style=t,this.applyColour();else throw Error("Invalid style name: "+e)}getStyle(){return this.style}bringToFront(e=!1){let t=this;if(!t.isDeadOrDying())do{const o=t.getSvgRoot(),n=o.parentNode,c=n.childNodes;if(c[c.length-1]!==o&&n.appendChild(o),e)break;t=t.getParent()}while(t)}setPreviousStatement(e,t){super.setPreviousStatement(e,t),this.queueRender()}setNextStatement(e,t){super.setNextStatement(e,t),this.queueRender()}setOutput(e,t){super.setOutput(e,t),this.queueRender()}setInputsInline(e){super.setInputsInline(e),this.queueRender()}removeInput(e,t){return e=super.removeInput(e,t),this.queueRender(),e}moveNumberedInputBefore(e,t){super.moveNumberedInputBefore(e,t),this.queueRender()}appendInput(e){return super.appendInput(e),this.queueRender(),e}setConnectionTracking(e){if(this.previousConnection&&this.previousConnection.setTracking(e),this.outputConnection&&this.outputConnection.setTracking(e),this.nextConnection){this.nextConnection.setTracking(e);var t=this.nextConnection.targetBlock();t&&t.setConnectionTracking(e)}if(!this.collapsed_)for(t=0;t=this.workspace.options.maxTrashcanContents||(e=new ss({scrollbars:!0,parentWorkspace:this.workspace,rtl:this.workspace.RTL,oneBasedIndex:this.workspace.options.oneBasedIndex,renderer:this.workspace.options.renderer,rendererOverrides:this.workspace.options.rendererOverrides,move:{scrollbars:!0}}),this.workspace.horizontalLayout?(e.toolboxPosition=this.workspace.toolboxPosition===xe.TOP?xe.BOTTOM:xe.TOP,this.flyout=new(w(z.FLYOUTS_HORIZONTAL_TOOLBOX,this.workspace.options,!0))(e)):(e.toolboxPosition=this.workspace.toolboxPosition===xe.RIGHT?xe.LEFT:xe.RIGHT,this.flyout=new(w(z.FLYOUTS_VERTICAL_TOOLBOX,this.workspace.options,!0))(e)),this.workspace.addChangeListener(this.onDelete.bind(this)))}createDom(){this.svgGroup=L(D.G,{class:"blocklyTrash"});let e;const t=String(Math.random()).substring(2);e=L(D.CLIPPATH,{id:"blocklyTrashBodyClipPath"+t},this.svgGroup),L(D.RECT,{width:Vi,height:Cl,y:Ki},e);const o=L(D.IMAGE,{width:Mt.width,x:-0,height:Mt.height,y:-32,"clip-path":"url(#blocklyTrashBodyClipPath"+t+")"},this.svgGroup);return o.setAttributeNS(Kt,"xlink:href",this.workspace.options.pathToMedia+Mt.url),e=L(D.CLIPPATH,{id:"blocklyTrashLidClipPath"+t},this.svgGroup),L(D.RECT,{width:Vi,height:Ki},e),this.svgLid=L(D.IMAGE,{width:Mt.width,x:-0,height:Mt.height,y:-32,"clip-path":"url(#blocklyTrashLidClipPath"+t+")"},this.svgGroup),this.svgLid.setAttributeNS(Kt,"xlink:href",this.workspace.options.pathToMedia+Mt.url),lt(this.svgGroup,"pointerdown",this,this.blockMouseDownWhenOpenable),lt(this.svgGroup,"pointerup",this,this.click),lt(o,"pointerover",this,this.mouseOver),lt(o,"pointerout",this,this.mouseOut),this.animateLid(),this.svgGroup}init(){0{let o;(o=this.flyout)==null||o.show(e),t.cursor="";let n;(n=this.workspace.scrollbar)==null||n.setVisible(!1)},10),this.fireUiEvent(!0)}}closeFlyout(){if(this.contentsIsOpen()){var e;(e=this.flyout)==null||e.hide();var t;(t=this.workspace.scrollbar)==null||t.setVisible(!0),this.fireUiEvent(!1),this.workspace.recordDragTargets()}}autoHide(e){!e&&this.flyout&&this.closeFlyout()}emptyContents(){this.hasContents()&&(this.contents.length=0,this.setMinOpenness(0),this.closeFlyout())}position(e,t){if(this.initialized){var o=sa(this.workspace,e);e=ta(o,new Ne(Vi,Cl+Ki),iT,ov,e,this.workspace),t=oa(e,ov,o.vertical===Zs.TOP?bo.DOWN:bo.UP,t),this.top=t.top,this.left=t.left;var n;(n=this.svgGroup)==null||n.setAttribute("transform","translate("+this.left+","+this.top+")");var c;(c=this.flyout)==null||c.position()}}getBoundingRectangle(){return new Je(this.top,this.top+Cl+Ki,this.left,this.left+Vi)}getClientRect(){if(!this.svgGroup)return null;var e=this.svgGroup.getBoundingClientRect();const t=e.top+rT-Tl;return e=e.left+nT-Tl,new Je(t,t+Ki+Cl+2*Tl,e,e+Vi+2*Tl)}onDragOver(e){this.setLidOpen(this.wouldDelete_)}onDragExit(e){this.setLidOpen(!1)}onDrop(e){setTimeout(this.setLidOpen.bind(this,!1),100)}setLidOpen(e){this.isLidOpen!==e&&(this.lidTask&&clearTimeout(this.lidTask),this.isLidOpen=e,this.animateLid())}animateLid(){const e=cT;var t=1/(e+1);this.lidOpen+=this.isLidOpen?t:-t,this.lidOpen=Math.min(Math.max(this.lidOpen,this.minOpenness),1),this.setLidAngle(this.lidOpen*nv),t=iv+this.lidOpen*(uT-iv),this.svgGroup&&(this.svgGroup.style.opacity=`${t}`),this.lidOpen>this.minOpenness&&1>this.lidOpen&&(this.lidTask=setTimeout(this.animateLid.bind(this),lT/e))}setLidAngle(e){const t=this.workspace.toolboxPosition===xe.RIGHT||this.workspace.horizontalLayout&&this.workspace.RTL;let o;(o=this.svgLid)==null||o.setAttribute("transform","rotate("+(t?-e:e)+","+(t?4:Vi-4)+","+(Ki-2)+")")}setMinOpenness(e){this.minOpenness=e,this.isLidOpen||this.setLidAngle(e*nv)}closeLid(){this.setLidOpen(!1)}click(){this.hasContents()&&!this.workspace.isDragging()&&this.openFlyout()}fireUiEvent(e){e=new(Y(M.TRASHCAN_OPEN))(e,this.workspace.id),K(e)}blockMouseDownWhenOpenable(e){!this.contentsIsOpen()&&this.hasContents()&&e.stopPropagation()}mouseOver(){this.hasContents()&&this.setLidOpen(!0)}mouseOut(){this.setLidOpen(!1)}onDelete(e){if(!(0>=this.workspace.options.maxTrashcanContents||!E(e)||e.wasShadow)){if(!e.oldJson)throw Error("Encountered a delete event without proper oldJson");if(e=JSON.stringify(this.cleanBlockJson(e.oldJson)),!this.contents.includes(e)){for(this.contents.unshift(e);this.contents.length>this.workspace.options.maxTrashcanContents;)this.contents.pop();this.setMinOpenness(aT)}}}cleanBlockJson(e){function t(o){if(o){if(delete o.id,delete o.x,delete o.y,delete o.enabled,delete o.disabledReasons,o.icons&&o.icons.comment){var n=o.icons.comment;delete n.height,delete n.width,delete n.pinned}n=o.inputs;for(var c in n){var h=n[c];const $=h.block;h=h.shadow,$&&t($),h&&t(h)}o.next&&(c=o.next,o=c.block,c=c.shadow,o&&t(o),c&&t(c))}}return e=JSON.parse(JSON.stringify(e)),t(e),Object.assign({},{kind:"BLOCK"},e)}},Vi=47,Cl=44,Ki=16,ov=20,iT=20,Tl=10,nT=0,rT=32,aT=.1,lT=80,cT=4,iv=.4,uT=.8,nv=45,He=class{constructor(){this.shortcuts=new Map,this.keyMap=new Map,this.reset()}reset(){this.shortcuts.clear(),this.keyMap.clear()}register(e,t){if(this.shortcuts.get(e.name)&&!t)throw Error(`Shortcut named "${e.name}" already exists.`);if(this.shortcuts.set(e.name,e),t=e.keyCodes,t!=null&&t.length)for(const o of t)this.addKeyMapping(o,e.name,!!e.allowCollision)}unregister(e){return this.shortcuts.get(e)?(this.removeAllKeyMappings(e),this.shortcuts.delete(e),!0):(console.warn(`Keyboard shortcut named "${e}" not found.`),!1)}addKeyMapping(e,t,o){e=`${e}`;const n=this.keyMap.get(e);if(n&&!o)throw Error(`Shortcut named "${t}" collides with shortcuts "${n}"`);n&&o?n.unshift(t):this.keyMap.set(e,[t])}removeKeyMapping(e,t,o){const n=this.keyMap.get(e);if(!n)return o||console.warn(`No keyboard shortcut named "${t}" registered with key code "${e}"`),!1;const c=n.indexOf(t);return-1vd(t)),e.length?e:null}load(e,t){const o=t.getProcedureMap();for(const n of e)o.add(yd(this.procedureModelClass,this.parameterModelClass,n,t))}clear(e){e.getProcedureMap().clear()}},kl={};kl.ProcedureSerializer=hT,kl.loadProcedure=yd,kl.saveProcedure=vd;var rv=class{constructor(){this.priority=tb}save(e){const t=[];for(const o of e.getAllVariables())e={name:o.name,id:o.getId()},o.type&&(e.type=o.type),t.push(e);return t.length?t:null}load(e,t){for(const o of e)t.createVariable(o.name,o.type,o.id)}clear(e){e.getVariableMap().clear()}};_n("variables",new rv);var av={};av.VariableSerializer=rv;var qh={};qh.load=l$,qh.save=a$;var pT={blocks:Xn,exceptions:Vo,priorities:jC,procedures:kl,registry:th,variables:av,workspaceComments:Va,workspaces:qh},Zh=class{constructor(e,t,o,n,c){this.workspace=e,this.oldHostMetrics=this.corner_=this.vScroll=this.hScroll=null,t=t===void 0?!0:t,o=o===void 0?!0:o;const h=t&&o;t&&(this.hScroll=new pt(e,!0,h,n,c)),o&&(this.vScroll=new pt(e,!1,h,n,c)),h&&(this.corner_=L(D.RECT,{height:pt.scrollbarThickness,width:pt.scrollbarThickness,class:"blocklyScrollbarBackground"}),Do(this.corner_,e.getBubbleCanvas()))}dispose(){Ve(this.corner_),this.oldHostMetrics=this.corner_=null,this.hScroll&&(this.hScroll.dispose(),this.hScroll=null),this.vScroll&&(this.vScroll.dispose(),this.vScroll=null)}resize(){const e=this.workspace.getMetrics();if(e){var t=!1,o=!1;if(this.oldHostMetrics&&this.oldHostMetrics.viewWidth===e.viewWidth&&this.oldHostMetrics.viewHeight===e.viewHeight&&this.oldHostMetrics.absoluteTop===e.absoluteTop&&this.oldHostMetrics.absoluteLeft===e.absoluteLeft?(this.oldHostMetrics&&this.oldHostMetrics.scrollWidth===e.scrollWidth&&this.oldHostMetrics.viewLeft===e.viewLeft&&this.oldHostMetrics.scrollLeft===e.scrollLeft||(t=!0),this.oldHostMetrics&&this.oldHostMetrics.scrollHeight===e.scrollHeight&&this.oldHostMetrics.viewTop===e.viewTop&&this.oldHostMetrics.scrollTop===e.scrollTop||(o=!0)):o=t=!0,t||o){try{i.disable$$module$build$src$core$events$utils(),this.hScroll&&t&&this.hScroll.resize(e),this.vScroll&&o&&this.vScroll.resize(e)}finally{i.enable$$module$build$src$core$events$utils()}this.workspace.maybeFireViewportChangeEvent()}if(this.hScroll&&this.vScroll){if(!this.oldHostMetrics||this.oldHostMetrics.viewWidth!==e.viewWidth||this.oldHostMetrics.absoluteLeft!==e.absoluteLeft){let n;(n=this.corner_)==null||n.setAttribute("x",String(this.vScroll.position.x))}if(!this.oldHostMetrics||this.oldHostMetrics.viewHeight!==e.viewHeight||this.oldHostMetrics.absoluteTop!==e.absoluteTop){let n;(n=this.corner_)==null||n.setAttribute("y",String(this.hScroll.position.y))}}this.oldHostMetrics=e}}canScrollHorizontally(){return!!this.hScroll}canScrollVertically(){return!!this.vScroll}setOrigin(e,t){this.hScroll&&this.hScroll.setOrigin(e,t),this.vScroll&&this.vScroll.setOrigin(e,t)}set(e,t,o){this.hScroll&&this.hScroll.set(e,!1),this.vScroll&&this.vScroll.set(t,!1),(o||o===void 0)&&(e={},this.hScroll&&(e.x=this.hScroll.getRatio_()),this.vScroll&&(e.y=this.vScroll.getRatio_()),this.workspace.setMetrics(e))}setX(e){this.hScroll&&this.hScroll.set(e,!0)}setY(e){this.vScroll&&this.vScroll.set(e,!0)}setContainerVisible(e){this.hScroll&&this.hScroll.setContainerVisible(e),this.vScroll&&this.vScroll.setContainerVisible(e)}isVisible(){let e=!1;return this.hScroll&&(e=this.hScroll.isVisible()),this.vScroll&&(e=e||this.vScroll.isVisible()),e}setVisible(e){this.hScroll&&this.hScroll.setVisibleInternal(e),this.vScroll&&this.vScroll.setVisibleInternal(e)}resizeContent(e){this.hScroll&&this.hScroll.resizeContentHorizontal(e),this.vScroll&&this.vScroll.resizeContentVertical(e)}resizeView(e){this.hScroll&&this.hScroll.resizeViewHorizontal(e),this.vScroll&&this.vScroll.resizeViewVertical(e)}},Qh=class{constructor(e){this.workspace_=e}getDimensionsPx_(e){let t=0,o=0;return e&&(t=e.getWidth(),o=e.getHeight()),new Ne(t,o)}getFlyoutMetrics(e){return e=this.getDimensionsPx_(this.workspace_.getFlyout(e)),{width:e.width,height:e.height,position:this.workspace_.toolboxPosition}}getToolboxMetrics(){const e=this.getDimensionsPx_(this.workspace_.getToolbox());return{width:e.width,height:e.height,position:this.workspace_.toolboxPosition}}getSvgMetrics(){return this.workspace_.getCachedParentSvgSize()}getAbsoluteMetrics(){let e=0,t=0;const o=this.getToolboxMetrics(),n=this.getFlyoutMetrics(),c=!!this.workspace_.getToolbox();var h;const $=!((h=this.workspace_.getFlyout())!=null&&h.autoClose);h=c?o.position:n.position;const T=h===xe.TOP;return h===xe.LEFT&&(c&&(e+=o.width),$&&(e+=n.width)),T&&(c&&(t+=o.height),$&&(t+=n.height)),{top:t,left:e}}getViewMetrics(e){e=e?this.workspace_.scale:1;const t=this.getSvgMetrics(),o=this.getToolboxMetrics(),n=this.getFlyoutMetrics(),c=!!this.workspace_.getToolbox();var h;const $=!((h=this.workspace_.getFlyout())!=null&&h.autoClose);h=c?o.position:n.position;const T=h===xe.LEFT||h===xe.RIGHT;return(h===xe.TOP||h===xe.BOTTOM)&&(c&&(t.height-=o.height),$&&(t.height-=n.height)),T&&(c&&(t.width-=o.width),$&&(t.width-=n.width)),{height:t.height/e,width:t.width/e,top:-this.workspace_.scrollY/e,left:-this.workspace_.scrollX/e}}getContentMetrics(e){e=e?1:this.workspace_.scale;const t=this.workspace_.getBlocksBoundingBox();return{height:(t.bottom-t.top)*e,width:(t.right-t.left)*e,top:t.top*e,left:t.left*e}}hasFixedEdges(){return!this.workspace_.isMovableHorizontally()||!this.workspace_.isMovableVertically()}getComputedFixedEdges_(e){if(!this.hasFixedEdges())return{};const t=this.workspace_.isMovableHorizontally(),o=this.workspace_.isMovableVertically();e=e||this.getViewMetrics(!1);const n={};return o||(n.top=e.top,n.bottom=e.top+e.height),t||(n.left=e.left,n.right=e.left+e.width),n}getPaddedContent_(e,t){const o=t.top+t.height,n=t.left+t.width,c=e.width;e=e.height;const h=c/2,$=e/2;return{top:Math.min(t.top-$,o-e),bottom:Math.max(o+$,t.top+e),left:Math.min(t.left-h,n-c),right:Math.max(n+h,t.left+c)}}getScrollMetrics(e,t,o){e=e?this.workspace_.scale:1,t=t||this.getViewMetrics(!1);var n=o||this.getContentMetrics();o=this.getComputedFixedEdges_(t),t=this.getPaddedContent_(t,n),n=o.top!==void 0?o.top:t.top;const c=o.left!==void 0?o.left:t.left;return{top:n/e,left:c/e,width:((o.right!==void 0?o.right:t.right)-c)/e,height:((o.bottom!==void 0?o.bottom:t.bottom)-n)/e}}getUiMetrics(){return{viewMetrics:this.getViewMetrics(),absoluteMetrics:this.getAbsoluteMetrics(),toolboxMetrics:this.getToolboxMetrics()}}getMetrics(){const e=this.getToolboxMetrics(),t=this.getFlyoutMetrics(!0),o=this.getSvgMetrics(),n=this.getAbsoluteMetrics(),c=this.getViewMetrics(),h=this.getContentMetrics(),$=this.getScrollMetrics(!1,c,h);return{contentHeight:h.height,contentWidth:h.width,contentTop:h.top,contentLeft:h.left,scrollHeight:$.height,scrollWidth:$.width,scrollTop:$.top,scrollLeft:$.left,viewHeight:c.height,viewWidth:c.width,viewTop:c.top,viewLeft:c.left,absoluteTop:n.top,absoluteLeft:n.left,svgHeight:o.height,svgWidth:o.width,toolboxWidth:e.width,toolboxHeight:e.height,toolboxPosition:e.position,flyoutWidth:t.width,flyoutHeight:t.height}}};r(z.METRICS_MANAGER,Ds,Qh),"Blockly"in globalThis||(globalThis.Blockly={Msg:db});var lv=class extends $l{constructor(){super(),this.GRID_UNIT=4,this.CURSOR_COLOUR="#ffa200",this.CURSOR_RADIUS=5,this.JAGGED_TEETH_WIDTH=this.JAGGED_TEETH_HEIGHT=0,this.START_HAT_HEIGHT=22,this.START_HAT_WIDTH=96,this.SHAPES={HEXAGONAL:1,ROUND:2,SQUARE:3,PUZZLE:4,NOTCH:5},this.SHAPE_IN_SHAPE_PADDING={1:{0:5*this.GRID_UNIT,1:2*this.GRID_UNIT,2:5*this.GRID_UNIT,3:5*this.GRID_UNIT},2:{0:3*this.GRID_UNIT,1:3*this.GRID_UNIT,2:1*this.GRID_UNIT,3:2*this.GRID_UNIT},3:{0:2*this.GRID_UNIT,1:2*this.GRID_UNIT,2:2*this.GRID_UNIT,3:2*this.GRID_UNIT}},this.FULL_BLOCK_FIELDS=!0,this.FIELD_TEXT_FONTWEIGHT="bold",this.FIELD_TEXT_FONTFAMILY='"Helvetica Neue", "Segoe UI", Helvetica, sans-serif',this.FIELD_COLOUR_FULL_BLOCK=this.FIELD_TEXTINPUT_BOX_SHADOW=this.FIELD_DROPDOWN_SVG_ARROW=this.FIELD_DROPDOWN_COLOURED_DIV=this.FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW=!0,this.SELECTED_GLOW_COLOUR="#fff200",this.SELECTED_GLOW_SIZE=.5,this.REPLACEMENT_GLOW_COLOUR="#fff200",this.REPLACEMENT_GLOW_SIZE=2,this.selectedGlowFilterId="",this.selectedGlowFilter=null,this.replacementGlowFilterId="",this.SQUARED=this.ROUNDED=this.HEXAGONAL=this.replacementGlowFilter=null,this.SMALL_PADDING=this.GRID_UNIT,this.MEDIUM_PADDING=2*this.GRID_UNIT,this.MEDIUM_LARGE_PADDING=3*this.GRID_UNIT,this.LARGE_PADDING=4*this.GRID_UNIT,this.CORNER_RADIUS=1*this.GRID_UNIT,this.NOTCH_WIDTH=9*this.GRID_UNIT,this.NOTCH_HEIGHT=2*this.GRID_UNIT,this.STATEMENT_INPUT_NOTCH_OFFSET=this.NOTCH_OFFSET_LEFT=3*this.GRID_UNIT,this.MIN_BLOCK_WIDTH=2*this.GRID_UNIT,this.MIN_BLOCK_HEIGHT=12*this.GRID_UNIT,this.EMPTY_STATEMENT_INPUT_HEIGHT=6*this.GRID_UNIT,this.TOP_ROW_MIN_HEIGHT=this.CORNER_RADIUS,this.TOP_ROW_PRECEDES_STATEMENT_MIN_HEIGHT=this.LARGE_PADDING,this.BOTTOM_ROW_MIN_HEIGHT=this.CORNER_RADIUS,this.BOTTOM_ROW_AFTER_STATEMENT_MIN_HEIGHT=6*this.GRID_UNIT,this.STATEMENT_BOTTOM_SPACER=-this.NOTCH_HEIGHT,this.STATEMENT_INPUT_SPACER_MIN_WIDTH=40*this.GRID_UNIT,this.STATEMENT_INPUT_PADDING_LEFT=4*this.GRID_UNIT,this.EMPTY_INLINE_INPUT_PADDING=4*this.GRID_UNIT,this.EMPTY_INLINE_INPUT_HEIGHT=8*this.GRID_UNIT,this.DUMMY_INPUT_MIN_HEIGHT=8*this.GRID_UNIT,this.DUMMY_INPUT_SHADOW_MIN_HEIGHT=6*this.GRID_UNIT,this.CURSOR_WS_WIDTH=20*this.GRID_UNIT,this.FIELD_TEXT_FONTSIZE=3*this.GRID_UNIT,this.FIELD_BORDER_RECT_RADIUS=this.CORNER_RADIUS,this.FIELD_BORDER_RECT_X_PADDING=2*this.GRID_UNIT,this.FIELD_BORDER_RECT_Y_PADDING=1.625*this.GRID_UNIT,this.FIELD_BORDER_RECT_HEIGHT=8*this.GRID_UNIT,this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=8*this.GRID_UNIT,this.FIELD_DROPDOWN_SVG_ARROW_PADDING=this.FIELD_BORDER_RECT_X_PADDING,this.FIELD_COLOUR_DEFAULT_WIDTH=6*this.GRID_UNIT,this.FIELD_COLOUR_DEFAULT_HEIGHT=8*this.GRID_UNIT,this.FIELD_CHECKBOX_X_OFFSET=1*this.GRID_UNIT,this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH=12*this.GRID_UNIT}setFontConstants_(e){super.setFontConstants_(e),this.FIELD_DROPDOWN_BORDER_RECT_HEIGHT=this.FIELD_BORDER_RECT_HEIGHT=this.FIELD_TEXT_HEIGHT+2*this.FIELD_BORDER_RECT_Y_PADDING}init(){super.init(),this.HEXAGONAL=this.makeHexagonal(),this.ROUNDED=this.makeRounded(),this.SQUARED=this.makeSquared(),this.STATEMENT_INPUT_NOTCH_OFFSET=this.NOTCH_OFFSET_LEFT+this.INSIDE_CORNERS.rightWidth}setDynamicProperties_(e){super.setDynamicProperties_(e),this.SELECTED_GLOW_COLOUR=e.getComponentStyle("selectedGlowColour")||this.SELECTED_GLOW_COLOUR;const t=Number(e.getComponentStyle("selectedGlowSize"));this.SELECTED_GLOW_SIZE=t&&!isNaN(t)?t:this.SELECTED_GLOW_SIZE,this.REPLACEMENT_GLOW_COLOUR=e.getComponentStyle("replacementGlowColour")||this.REPLACEMENT_GLOW_COLOUR,this.REPLACEMENT_GLOW_SIZE=(e=Number(e.getComponentStyle("replacementGlowSize")))&&!isNaN(e)?e:this.REPLACEMENT_GLOW_SIZE}dispose(){super.dispose(),this.selectedGlowFilter&&Ve(this.selectedGlowFilter),this.replacementGlowFilter&&Ve(this.replacementGlowFilter)}makeStartHat(){const e=this.START_HAT_HEIGHT,t=this.START_HAT_WIDTH,o=jt("c",[he(25,-e),he(71,-e),he(t,0)]);return{height:e,width:t,path:o}}makeHexagonal(){function e(o,n,c){var h=o/2;return h=h>t?t:h,c=c?-1:1,o=(n?-1:1)*o/2,xs(-c*h,o)+xs(c*h,o)}const t=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH;return{type:this.SHAPES.HEXAGONAL,isDynamic:!0,width(o){return o/=2,o>t?t:o},height(o){return o},connectionOffsetY(o){return o/2},connectionOffsetX(o){return-o},pathDown(o){return e(o,!1,!1)},pathUp(o){return e(o,!0,!1)},pathRightDown(o){return e(o,!1,!0)},pathRightUp(o){return e(o,!1,!0)}}}makeRounded(){function e(n,c,h){const $=n>o?n-o:0;n=(n>o?o:n)/2;const T=h===c?"0":"1";return ht("a","0 0,"+T,n,he((h?1:-1)*n,(c?-1:1)*n))+re("v",(c?-1:1)*$)+ht("a","0 0,"+T,n,he((h?-1:1)*n,(c?-1:1)*n))}const t=this.MAX_DYNAMIC_CONNECTION_SHAPE_WIDTH,o=2*t;return{type:this.SHAPES.ROUND,isDynamic:!0,width(n){return n/=2,n>t?t:n},height(n){return n},connectionOffsetY(n){return n/2},connectionOffsetX(n){return-n},pathDown(n){return e(n,!1,!1)},pathUp(n){return e(n,!0,!1)},pathRightDown(n){return e(n,!1,!0)},pathRightUp(n){return e(n,!1,!0)}}}makeSquared(){function e(o,n,c){o-=2*t;const h=c===n?"0":"1";return ht("a","0 0,"+h,t,he((c?1:-1)*t,(n?-1:1)*t))+re("v",(n?-1:1)*o)+ht("a","0 0,"+h,t,he((c?-1:1)*t,(n?-1:1)*t))}const t=this.CORNER_RADIUS;return{type:this.SHAPES.SQUARE,isDynamic:!0,width(o){return t},height(o){return o},connectionOffsetY(o){return o/2},connectionOffsetX(o){return-o},pathDown(o){return e(o,!1,!1)},pathUp(o){return e(o,!0,!1)},pathRightDown(o){return e(o,!1,!0)},pathRightUp(o){return e(o,!1,!0)}}}shapeFor(e){let t=e.getCheck();switch(!t&&e.targetConnection&&(t=e.targetConnection.getCheck()),e.type){case ne.INPUT_VALUE:case ne.OUTPUT_VALUE:if(e=e.getSourceBlock().getOutputShape(),e!==null)switch(e){case this.SHAPES.HEXAGONAL:return this.HEXAGONAL;case this.SHAPES.ROUND:return this.ROUNDED;case this.SHAPES.SQUARE:return this.SQUARED}return t&&t.includes("Boolean")?this.HEXAGONAL:t&&t.includes("Number")?this.ROUNDED:(t&&t.includes("String"),this.ROUNDED);case ne.PREVIOUS_STATEMENT:case ne.NEXT_STATEMENT:return this.NOTCH;default:throw Error("Unknown type")}}makeNotch(){function e(ie){return jt("c",[he(ie*c/2,0),he(ie*c*3/4,$/2),he(ie*c,$)])+Si([he(ie*c,h)])+jt("c",[he(ie*c/4,$/2),he(ie*c/2,$),he(ie*c,$)])+re("h",ie*n)+jt("c",[he(ie*c/2,0),he(ie*c*3/4,-($/2)),he(ie*c,-$)])+Si([he(ie*c,-h)])+jt("c",[he(ie*c/4,-($/2)),he(ie*c/2,-$),he(ie*c,-$)])}const t=this.NOTCH_WIDTH,o=this.NOTCH_HEIGHT,n=t/3,c=n/3,h=o/2,$=h/2,T=e(1),B=e(-1);return{type:this.SHAPES.NOTCH,width:t,height:o,pathLeft:T,pathRight:B}}makeInsideCorners(){const e=this.CORNER_RADIUS,t=ht("a","0 0,0",e,he(-e,e)),o=ht("a","0 0,1",e,he(-e,e)),n=ht("a","0 0,0",e,he(e,e)),c=ht("a","0 0,1",e,he(e,e));return{width:e,height:e,pathTop:t,pathBottom:n,rightWidth:e,rightHeight:e,pathTopRight:o,pathBottomRight:c}}generateSecondaryColour_(e){return No("#000",e,.15)||e}generateTertiaryColour_(e){return No("#000",e,.25)||e}createDom(e,t,o){super.createDom(e,t,o),e=L(D.DEFS,{},e),t=L(D.FILTER,{id:"blocklySelectedGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},e),L(D.FEGAUSSIANBLUR,{in:"SourceGraphic",stdDeviation:this.SELECTED_GLOW_SIZE},t),o=L(D.FECOMPONENTTRANSFER,{result:"outBlur"},t),L(D.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},o),L(D.FEFLOOD,{"flood-color":this.SELECTED_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},t),L(D.FECOMPOSITE,{in:"outColor",in2:"outBlur",operator:"in",result:"outGlow"},t),this.selectedGlowFilterId=t.id,this.selectedGlowFilter=t,e=L(D.FILTER,{id:"blocklyReplacementGlowFilter"+this.randomIdentifier,height:"160%",width:"180%",y:"-30%",x:"-40%"},e),L(D.FEGAUSSIANBLUR,{in:"SourceGraphic",stdDeviation:this.REPLACEMENT_GLOW_SIZE},e),t=L(D.FECOMPONENTTRANSFER,{result:"outBlur"},e),L(D.FEFUNCA,{type:"table",tableValues:"0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"},t),L(D.FEFLOOD,{"flood-color":this.REPLACEMENT_GLOW_COLOUR,"flood-opacity":1,result:"outColor"},e),L(D.FECOMPOSITE,{in:"outColor",in2:"outBlur",operator:"in",result:"outGlow"},e),L(D.FECOMPOSITE,{in:"SourceGraphic",in2:"outGlow",operator:"over"},e),this.replacementGlowFilterId=e.id,this.replacementGlowFilter=e}getCSS_(e){return[`${e} .blocklyText,`,`${e} .blocklyFlyoutLabelText {`,`font: ${this.FIELD_TEXT_FONTWEIGHT} ${this.FIELD_TEXT_FONTSIZE}pt ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${e} .blocklyTextInputBubble textarea {`,"font-weight: normal;","}",`${e} .blocklyText {`,"fill: #fff;","}",`${e} .blocklyNonEditableText>rect:not(.blocklyDropdownRect),`,`${e} .blocklyEditableText>rect:not(.blocklyDropdownRect) {`,`fill: ${this.FIELD_BORDER_RECT_COLOUR};`,"}",`${e} .blocklyNonEditableText>text,`,`${e} .blocklyEditableText>text,`,`${e} .blocklyNonEditableText>g>text,`,`${e} .blocklyEditableText>g>text {`,"fill: #575E75;","}",`${e} .blocklyFlyoutLabelText {`,"fill: #575E75;","}",`${e} .blocklyText.blocklyBubbleText {`,"fill: #575E75;","}",`${e} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableText:not(.editing):hover>rect,",`${e} .blocklyDraggable:not(.blocklyDisabled)`," .blocklyEditableText:not(.editing):hover>.blocklyPath {","stroke: #fff;","stroke-width: 2;","}",`${e} .blocklyHtmlInput {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,`font-weight: ${this.FIELD_TEXT_FONTWEIGHT};`,"color: #575E75;","}",`${e} .blocklyDropdownText {`,"fill: #fff !important;","}",`${e}.blocklyWidgetDiv .blocklyMenuItem,`,`${e}.blocklyDropDownDiv .blocklyMenuItem {`,`font-family: ${this.FIELD_TEXT_FONTFAMILY};`,"}",`${e}.blocklyDropDownDiv .blocklyMenuItemContent {`,"color: #fff;","}",`${e} .blocklyHighlightedConnectionPath {`,`stroke: ${this.SELECTED_GLOW_COLOUR};`,"}",`${e} .blocklyDisabled > .blocklyOutlinePath {`,`fill: url(#blocklyDisabledPattern${this.randomIdentifier})`,"}",`${e} .blocklyInsertionMarker>.blocklyPath {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"]}},cv=class extends bl{constructor(e,t){super(e,t)}draw(){const e=this.block_.pathObject;e.beginDrawing(),this.drawOutline_(),this.drawInternals_(),this.updateConnectionHighlights(),e.setPath(this.outlinePath_+` +`+this.inlinePath_),this.info_.RTL&&e.flipRTL(),this.recordSizeOnBlock_(),this.info_.outputConnection&&(e.outputShapeType=this.info_.outputConnection.shape.type),e.endDrawing()}drawOutline_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape&&!this.info_.hasStatementInput&&!this.info_.bottomRow.hasNextConnection?(this.drawFlatTop_(),this.drawRightDynamicConnection_(),this.drawFlatBottom_(),this.drawLeftDynamicConnection_()):super.drawOutline_()}drawLeft_(){this.info_.outputConnection&&this.info_.outputConnection.isDynamicShape?this.drawLeftDynamicConnection_():super.drawLeft_()}drawRightSideRow_(e){if(!(0>=e.height)){if(I.isSpacer(e)){const n=e.precedesStatement;var t=e.followsStatement;if(n||t){const c=this.constants_.INSIDE_CORNERS;var o=c.rightHeight;o=e.height-(n?o:0),t=t?c.pathBottomRight:"",e=0=o||0>=t)throw Error("Height and width values of an image field must be greater than 0.");this.size_=new Ne(t,o+oi.Y_PADDING),this.imageHeight=o,typeof c=="function"&&(this.clickHandler=c),e!==Ze.SKIP_SETUP&&($?this.configure_($):(this.flipRtl=!!h,this.altText=dt(n)||""),this.setValue(dt(e)))}configure_(e){super.configure_(e),e.flipRtl&&(this.flipRtl=e.flipRtl),e.alt&&(this.altText=dt(e.alt))}initView(){this.imageElement=L(D.IMAGE,{height:this.imageHeight+"px",width:this.size_.width+"px",alt:this.altText},this.fieldGroup_),this.imageElement.setAttributeNS(Kt,"xlink:href",this.value_),this.clickHandler&&(this.imageElement.style.cursor="pointer")}updateSize_(){}doClassValidation_(e){return typeof e!="string"?null:e}doValueUpdate_(e){this.value_=e,this.imageElement&&this.imageElement.setAttributeNS(Kt,"xlink:href",this.value_)}getFlipRtl(){return this.flipRtl}setAlt(e){e!==this.altText&&(this.altText=e||"",this.imageElement&&this.imageElement.setAttribute("alt",this.altText))}showEditor_(){this.clickHandler&&this.clickHandler(this)}setOnClickHandler(e){this.clickHandler=e}getText_(){return this.altText}static fromJson(e){if(!e.src||!e.width||!e.height)throw Error("src, width, and height values for an image field arerequired. The width and height must be non-zero.");return new this(e.src,e.width,e.height,void 0,void 0,void 0,e)}};oi.Y_PADDING=1,Is("field_image",oi),oi.prototype.DEFAULT_VALUE="";var Sl=class extends Ze{constructor(e,t,o){super(Ze.SKIP_SETUP),this.spellcheck_=!0,this.htmlInput_=null,this.isTextValid_=this.isBeingEdited_=!1,this.onKeyInputWrapper=this.onKeyDownWrapper=this.valueWhenEditorWasOpened_=null,this.fullBlockClickTarget_=!1,this.workspace_=null,this.SERIALIZABLE=!0,this.CURSOR="text",e!==Ze.SKIP_SETUP&&(o&&this.configure_(o),this.setValue(e),t&&this.setValidator(t))}configure_(e){super.configure_(e),e.spellcheck!==void 0&&(this.spellcheck_=e.spellcheck)}initView(){if(!this.getSourceBlock())throw new gt;super.initView(),this.isFullBlockField()&&(this.clickTarget_=this.sourceBlock_.getSvgRoot())}isFullBlockField(){const e=this.getSourceBlock();if(!e)throw new gt;let t;return this.fullBlockClickTarget_=!((t=this.getConstants())==null||!t.FULL_BLOCK_FIELDS)&&e.isSimpleReporter()}doValueInvalid_(e,t=!0){this.isBeingEdited_&&(this.isDirty_=!0,this.isTextValid_=!1,e=this.value_,this.value_=this.valueWhenEditorWasOpened_,this.sourceBlock_&&J()&&this.value_!==e&&t&&K(new(Y(M.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,e,this.value_)))}doValueUpdate_(e){this.isTextValid_=this.isDirty_=!0,this.value_=e}applyColour(){const e=this.getSourceBlock();if(!e)throw new gt;this.getConstants().FULL_BLOCK_FIELDS&&this.fieldGroup_&&(!this.isFullBlockField()&&this.borderRect_?(this.borderRect_.style.display="block",this.borderRect_.setAttribute("stroke",e.getColourTertiary())):(this.borderRect_.style.display="none",e.pathObject.svgPath.setAttribute("fill",this.getConstants().FIELD_BORDER_RECT_COLOUR)))}getSize(){let e;return(e=this.getConstants())!=null&&e.FULL_BLOCK_FIELDS&&(this.render_(),this.isDirty_=!1),super.getSize()}onLocationChange(){this.isBeingEdited_&&this.resizeEditor_()}render_(){if(super.render_(),this.isBeingEdited_){var e=this.htmlInput_;this.isTextValid_?(st(e,"blocklyInvalidInput"),Tt(e,vt.INVALID,!1)):($e(e,"blocklyInvalidInput"),Tt(e,vt.INVALID,!0))}if(e=this.getSourceBlock(),!e)throw new gt;this.getConstants().FULL_BLOCK_FIELDS&&e.applyColour()}setSpellcheck(e){e!==this.spellcheck_&&(this.spellcheck_=e,this.htmlInput_&&this.htmlInput_.setAttribute("spellcheck",this.spellcheck_))}showEditor_(e,t=!1){this.workspace_=this.sourceBlock_.workspace,!t&&this.workspace_.options.modalInputs&&(W$||Kd||Ua)?this.showPromptEditor():this.showInlineEditor(t)}showPromptEditor(){aa(i.Msg$$module$build$src$core$msg.CHANGE_VALUE_TITLE,this.getText(),e=>{e!==null&&this.setValue(this.getValueFromEditorText_(e)),this.onFinishEditing_(this.value_)})}showInlineEditor(e){const t=this.getSourceBlock();if(!t)throw new gt;ya(this,t.RTL,this.widgetDispose_.bind(this),this.workspace_),this.htmlInput_=this.widgetCreate_(),this.isBeingEdited_=!0,this.valueWhenEditorWasOpened_=this.value_,e||(this.htmlInput_.focus({preventScroll:!0}),this.htmlInput_.select())}widgetCreate_(){var e=this.getSourceBlock();if(!e)throw new gt;i.setGroup$$module$build$src$core$events$utils(!0);const t=Lo();var o=this.getClickTarget_();if(!o)throw Error("A click target has not been set.");$e(o,"editing"),o=document.createElement("input"),o.className="blocklyHtmlInput",o.setAttribute("spellcheck",this.spellcheck_);const n=this.workspace_.getScale();var c=this.getConstants().FIELD_TEXT_FONTSIZE*n+"pt";return t.style.fontSize=c,o.style.fontSize=c,c=Sl.BORDERRADIUS*n+"px",this.isFullBlockField()&&(c=this.getScaledBBox(),c=(c.bottom-c.top)/2+"px",e=e.getParent()?e.getParent().getColourTertiary():this.sourceBlock_.getColourTertiary(),o.style.border=1*n+"px solid "+e,t.style.borderRadius=c,t.style.transition="box-shadow 0.25s ease 0s",this.getConstants().FIELD_TEXTINPUT_BOX_SHADOW&&(t.style.boxShadow="rgba(255, 255, 255, 0.3) 0 0 0 "+4*n+"px")),o.style.borderRadius=c,t.appendChild(o),o.value=o.defaultValue=this.getEditorText_(this.value_),o.setAttribute("data-untyped-default-value",String(this.value_)),this.resizeEditor_(),this.bindInputEvents_(o),o}widgetDispose_(){this.isBeingEdited_=!1,this.isTextValid_=!0,this.forceRerender(),this.onFinishEditing_(this.value_),this.sourceBlock_&&J()&&this.valueWhenEditorWasOpened_!==null&&this.valueWhenEditorWasOpened_!==this.value_&&(K(new(Y(M.BLOCK_CHANGE))(this.sourceBlock_,"field",this.name||null,this.valueWhenEditorWasOpened_,this.value_)),this.valueWhenEditorWasOpened_=null),i.setGroup$$module$build$src$core$events$utils(!1),this.unbindInputEvents_();var e=Lo().style;if(e.width="auto",e.height="auto",e.fontSize="",e.transition="",e.boxShadow="",this.htmlInput_=null,e=this.getClickTarget_(),!e)throw Error("A click target has not been set.");st(e,"editing")}onFinishEditing_(e){}bindInputEvents_(e){this.onKeyDownWrapper=Q(e,"keydown",this,this.onHtmlInputKeyDown_),this.onKeyInputWrapper=Q(e,"input",this,this.onHtmlInputChange)}unbindInputEvents_(){this.onKeyDownWrapper&&(ze(this.onKeyDownWrapper),this.onKeyDownWrapper=null),this.onKeyInputWrapper&&(ze(this.onKeyInputWrapper),this.onKeyInputWrapper=null)}onHtmlInputKeyDown_(e){e.key==="Enter"?(Bo(this),Ss()):e.key==="Escape"?(this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),!1),Bo(this),Ss()):e.key==="Tab"&&(Bo(this),Ss(),this.sourceBlock_.tab(this,!e.shiftKey),e.preventDefault())}onHtmlInputChange(e){e=this.value_,this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1),this.sourceBlock_&&J()&&this.value_!==e&&K(new(Y(M.BLOCK_FIELD_INTERMEDIATE_CHANGE))(this.sourceBlock_,this.name||null,e,this.value_))}setEditorValue_(e,t=!0){this.isDirty_=!0,this.isBeingEdited_&&(this.htmlInput_.value=this.getEditorText_(e)),this.setValue(e,t)}resizeEditor_(){ps().then(()=>{const e=this.getSourceBlock();if(!e)throw new gt;const t=Lo(),o=this.getScaledBBox();t.style.width=o.right-o.left+"px",t.style.height=o.bottom-o.top+"px";const n=o.top;t.style.left=`${e.RTL?o.right-t.offsetWidth:o.left}px`,t.style.top=`${n}px`})}repositionForWindowResize(){let e;const t=(e=this.getSourceBlock())==null?void 0:e.getRootBlock();return t instanceof ns?(Ei(this.workspace_,this.workspace_.getMetricsManager().getViewMetrics(!0),t)||this.resizeEditor_(),!0):!1}isTabNavigable(){return!0}getText_(){return this.isBeingEdited_&&this.htmlInput_?this.htmlInput_.value:null}getEditorText_(e){return`${e}`}getValueFromEditorText_(e){return e}};Sl.BORDERRADIUS=4;var El=class extends Sl{constructor(e,t,o){super(e,t,o)}doClassValidation_(e){return e===void 0?null:`${e}`}static fromJson(e){return new this(dt(e.text),void 0,e)}};Is("field_input",El),El.prototype.DEFAULT_VALUE="";var uv=class extends Ah{constructor(e){super(e)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(e){return!!e.outputConnection}hasRightSquareCorner(e){return!!e.outputConnection&&!e.statementInputCount&&!e.nextConnection}},Il=class extends ir{constructor(e,t){if(super(e,t),this.connectedBottomNextConnection=!1,this.connectedBlock){for(e=this.connectedBlock;t=e.getNextBlock();)e=t;e.nextConnection||(this.height=this.connectedBlockHeight,this.connectedBottomNextConnection=!0)}}},dv=class extends Rs{constructor(e){super(e),this.width=this.height=0,this.type|=I.getType("RIGHT_CONNECTION")}},hv=class extends Lh{constructor(e){super(e)}endsWithElemSpacer(){return!1}hasLeftSquareCorner(e){const t=(e.hat?e.hat==="cap":this.constants_.ADD_START_HATS)&&!e.outputConnection&&!e.previousConnection;return!!e.outputConnection||t}hasRightSquareCorner(e){return!!e.outputConnection&&!e.statementInputCount&&!e.nextConnection}},pv=class extends ar{constructor(e,t){super(e,t),this.isInline=!0,this.renderer_=e,this.constants_=this.renderer_.getConstants(),this.topRow=new hv(this.constants_),this.bottomRow=new uv(this.constants_),this.isMultiRow=!t.getInputsInline()||t.isCollapsed(),this.hasStatementInput=0=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!n.precedesStatement,I.isInputRow(h)&&h.hasStatement){h.measure();let $,T;t=h.width-((T=($=h.getLastInput())==null?void 0:$.width)!=null?T:0)+e}else if(o&&(c===2||n)&&I.isInputRow(h)&&!h.hasStatement){n=h.xPos,o=null;for(let $=0;$o?o:this.height/2,t-o*(1-Math.sin(Math.acos((o-this.constants_.SMALL_PADDING)/o)));default:return 0}if(I.isInlineInput(e)&&e instanceof wo){const c=e.connectedBlock;return e=c?c.pathObject.outputShapeType:e.shape.type,e==null||c&&c.outputConnection&&(c.statementInputCount||c.nextConnection)||o===n.SHAPES.HEXAGONAL&&o!==e?0:t-this.constants_.SHAPE_IN_SHAPE_PADDING[o][e]}return I.isField(e)&&e instanceof Hi?o===n.SHAPES.ROUND&&e.field instanceof El?t-2.75*n.GRID_UNIT:t-this.constants_.SHAPE_IN_SHAPE_PADDING[o][0]:I.isIcon(e)?this.constants_.SMALL_PADDING:0}finalizeVerticalAlignment_(){if(!this.outputConnection)for(let n=2;n=this.rows.length-1?!!this.bottomRow.hasNextConnection:!!$.precedesStatement;if(e?this.topRow.hasPreviousConnection:c.followsStatement){var o=h.elements[1];if(o=h.elements.length===3&&o instanceof Hi&&(o.field instanceof ei||o.field instanceof oi),!e&&o)c.height-=this.constants_.SMALL_PADDING,$.height-=this.constants_.SMALL_PADDING,h.height-=this.constants_.MEDIUM_PADDING;else if(!e&&!t)c.height+=this.constants_.SMALL_PADDING;else if(t){for(e=!1,t=0;t{if(!n.isDeadOrDying()){i.disable$$module$build$src$core$events$utils();try{n==null||n.positionNearConnection(c,h,$),n==null||n.getSvgRoot().setAttribute("visibility","visible")}finally{i.enable$$module$build$src$core$events$utils()}}}),c}createInsertionMarker(e){const t=Vt(e,{addCoordinates:!1,addInputBlocks:!1,addNextBlocks:!1,doFullSerialization:!1});if(!t)throw Error(`Failed to serialize source block. ${e.toDevString()}`);e=Ws(t,this.workspace);for(const o of e.getDescendants(!1))o.setInsertionMarker(!0);return e.initSvg(),e.getSvgRoot().setAttribute("visibility","hidden"),e}getMatchingConnection(e,t,o){if(e=e.getConnections_(!0),t=t.getConnections_(!0),e.length!==t.length)return null;for(let n=0;n{this.targetWorkspace.isDragging()||t.addSelect()})),this.listeners.push(lt(e,"pointerleave",t,()=>{this.targetWorkspace.isDragging()||t.removeSelect()})),this.listeners.push(lt(o,"pointerenter",t,()=>{this.targetWorkspace.isDragging()||t.addSelect()})),this.listeners.push(lt(o,"pointerleave",t,()=>{this.targetWorkspace.isDragging()||t.removeSelect()}))}blockMouseDown(e){return t=>{const o=this.targetWorkspace.getGesture(t);o&&(o.setStartBlock(e),o.handleFlyoutStart(t,this))}}onMouseDown(e){const t=this.targetWorkspace.getGesture(e);t&&t.handleFlyoutStart(e,this)}isBlockCreatable(e){return e.isEnabled()}createBlock(e){let t=null;i.disable$$module$build$src$core$events$utils();var o=this.targetWorkspace.getAllVariables();this.targetWorkspace.setResizesEnabled(!1);try{t=this.placeNewBlock(e)}finally{i.enable$$module$build$src$core$events$utils()}if(this.targetWorkspace.hideChaff(),e=kn(this.targetWorkspace,o),J()){for(i.setGroup$$module$build$src$core$events$utils(!0),o=0;o-t||e<-180+t||e>180-t}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;const e=this.svgGroup_.getBoundingClientRect(),t=e.left;return this.toolboxPosition_===xe.LEFT?new Je(-1e9,1e9,-1e9,t+e.width):new Je(-1e9,1e9,t,1e9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();let e=0;var t=this.workspace_.getTopBlocks(!1);for(let n=0,c;c=t[n];n++){var o=c.getHeightWidth().width;c.outputConnection&&(o-=this.tabWidth_),e=Math.max(e,o)}for(let n=0,c;c=this.buttons_[n];n++)e=Math.max(e,c.width);if(e+=1.5*this.MARGIN+this.tabWidth_,e*=this.workspace_.scale,e+=pt.scrollbarThickness,this.width_!==e){for(let n=0,c;c=t[n];n++){if(this.RTL){o=c.getRelativeToSurfaceXY().x;let h=e/this.workspace_.scale-this.MARGIN;c.outputConnection||(h-=this.tabWidth_),c.moveBy(h-o,0)}this.rectMap_.has(c)&&this.moveRectToBlock_(this.rectMap_.get(c),c)}if(this.RTL)for(let n=0,c;c=this.buttons_[n];n++)t=c.getPosition().y,c.moveTo(e/this.workspace_.scale-c.width-this.MARGIN-this.tabWidth_,t);this.targetWorkspace.scrollbar||this.autoClose||this.targetWorkspace.getFlyout()!==this||this.toolboxPosition_!==xe.LEFT||this.targetWorkspace.translate(this.targetWorkspace.scrollX+e,this.targetWorkspace.scrollY),this.width_=e,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets()}}};tp.registryName="verticalFlyout",r(z.FLYOUTS_VERTICAL_TOOLBOX,Ds,tp);var yv=class extends xl{constructor(e){super(e),this.horizontalLayout=!0}setMetrics_(e){if(this.isVisible()){var t=this.workspace_.getMetricsManager(),o=t.getScrollMetrics(),n=t.getViewMetrics();t=t.getAbsoluteMetrics(),typeof e.x=="number"&&(this.workspace_.scrollX=-(o.left+(o.width-n.width)*e.x)),this.workspace_.translate(this.workspace_.scrollX+t.left,this.workspace_.scrollY+t.top)}}getX(){return 0}getY(){if(!this.isVisible())return 0;var e=this.targetWorkspace.getMetricsManager();const t=e.getAbsoluteMetrics(),o=e.getViewMetrics();e=e.getToolboxMetrics();const n=this.toolboxPosition_===xe.TOP;return this.targetWorkspace.toolboxPosition===this.toolboxPosition_?this.targetWorkspace.getToolbox()?n?e.height:o.height-this.height_:n?0:o.height:n?0:o.height+t.top-this.height_}position(){if(this.isVisible()&&this.targetWorkspace.isVisible()){var e=this.targetWorkspace.getMetricsManager().getViewMetrics();this.width_=e.width,this.setBackgroundPath(e.width-2*this.CORNER_RADIUS,this.height_-this.CORNER_RADIUS),e=this.getX();var t=this.getY();this.positionAt_(this.width_,this.height_,e,t)}}setBackgroundPath(e,t){const o=this.toolboxPosition_===xe.TOP,n=["M 0,"+(o?0:this.CORNER_RADIUS)];o?(n.push("h",e+2*this.CORNER_RADIUS),n.push("v",t),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("h",-e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,-this.CORNER_RADIUS)):(n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,-this.CORNER_RADIUS),n.push("h",e),n.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,this.CORNER_RADIUS),n.push("v",t),n.push("h",-e-2*this.CORNER_RADIUS)),n.push("z"),this.svgBackground_.setAttribute("d",n.join(" "))}scrollToStart(){let e;(e=this.workspace_.scrollbar)==null||e.setX(this.RTL?1/0:0)}wheel_(e){var t=Us(e);if(t=t.x||t.y){const o=this.workspace_.getMetricsManager(),n=o.getScrollMetrics();t=o.getViewMetrics().left-n.left+t;let c;(c=this.workspace_.scrollbar)==null||c.setX(t),Dn(this.workspace_),Ss()}e.preventDefault(),e.stopPropagation()}layout_(e,t){this.workspace_.scale=this.targetWorkspace.scale;const o=this.MARGIN;let n=o+this.tabWidth_;this.RTL&&(e=e.reverse());for(let T=0,B;B=e[T];T++)if(B.type==="block"){var c=B.block;if(c==null)continue;var h=c.getDescendants(!1);for(let it=0,ot;ot=h[it];it++)ot.isInFlyout=!0;h=c.getSvgRoot();const ie=c.getHeightWidth();var $=c.outputConnection?this.tabWidth_:0;$=this.RTL?n+ie.width:n-$,c.moveBy($,o),$=this.createRect_(c,$,o,ie,T),n+=ie.width+t[T],this.addBlockListeners_(h,c,$)}else B.type==="button"&&(c=B.button,this.initFlyoutButton_(c,n,o),n+=c.width+t[T])}isDragTowardWorkspace(e){e=Math.atan2(e.y,e.x)/Math.PI*180;const t=this.dragAngleRange_;return e<90+t&&e>90-t||e>-90-t&&e<-90+t}getClientRect(){if(!this.svgGroup_||this.autoClose||!this.isVisible())return null;const e=this.svgGroup_.getBoundingClientRect(),t=e.top;return this.toolboxPosition_===xe.TOP?new Je(-1e9,t+e.height,-1e9,1e9):new Je(t,1e9,-1e9,1e9)}reflowInternal_(){this.workspace_.scale=this.getFlyoutScale();let e=0;const t=this.workspace_.getTopBlocks(!1);for(let n=0,c;c=t[n];n++)e=Math.max(e,c.getHeightWidth().height);const o=this.buttons_;for(let n=0,c;c=o[n];n++)e=Math.max(e,c.height);if(e+=1.5*this.MARGIN,e*=this.workspace_.scale,e+=pt.scrollbarThickness,this.height_!==e){for(let n=0,c;c=t[n];n++)this.rectMap_.has(c)&&this.moveRectToBlock_(this.rectMap_.get(c),c);this.targetWorkspace.scrollbar||this.autoClose||this.targetWorkspace.getFlyout()!==this||this.toolboxPosition_!==xe.TOP||this.targetWorkspace.translate(this.targetWorkspace.scrollX,this.targetWorkspace.scrollY+e),this.height_=e,this.position(),this.targetWorkspace.resizeContents(),this.targetWorkspace.recordDragTargets()}}};r(z.FLYOUTS_HORIZONTAL_TOOLBOX,Ds,yv);var dr=class extends Ut{constructor(e,t,o,n,c){super(Ze.SKIP_SETUP),this.defaultType="",this.variableTypes=[],this.variable=null,this.SERIALIZABLE=!0,this.menuGenerator_=dr.dropdownCreate,this.defaultVariableName=typeof e=="string"?e:"",this.size_=new Ne(0,0),e!==Ze.SKIP_SETUP&&(c?this.configure_(c):this.setTypes(o,n),t&&this.setValidator(t))}configure_(e){super.configure_(e),this.setTypes(e.variableTypes,e.defaultType)}initModel(){var e=this.getSourceBlock();if(!e)throw new gt;this.variable||(e=i.getOrCreateVariablePackage$$module$build$src$core$variables(e.workspace,null,this.defaultVariableName,this.defaultType),this.doValueUpdate_(e.getId()))}shouldAddBorderRect_(){const e=this.getSourceBlock();if(!e)throw new gt;return super.shouldAddBorderRect_()&&(!this.getConstants().FIELD_DROPDOWN_NO_BORDER_RECT_SHADOW||e.type!=="variables_get")}fromXml(e){var t=this.getSourceBlock();if(!t)throw new gt;const o=e.getAttribute("id"),n=e.textContent,c=e.getAttribute("variabletype")||e.getAttribute("variableType")||"";if(t=i.getOrCreateVariablePackage$$module$build$src$core$variables(t.workspace,o,n,c),c!==null&&c!==t.type)throw Error("Serialized variable type with id '"+t.getId()+"' had type "+t.type+", and does not match variable field that references it: "+Es(e)+".");this.setValue(t.getId())}toXml(e){return this.initModel(),e.id=this.variable.getId(),e.textContent=this.variable.name,this.variable.type&&e.setAttribute("variabletype",this.variable.type),e}saveState(e){var t=this.saveLegacyState(dr);return t!==null||(this.initModel(),t={id:this.variable.getId()},e&&(t.name=this.variable.name,t.type=this.variable.type)),t}loadState(e){const t=this.getSourceBlock();if(!t)throw new gt;this.loadLegacyState(dr,e)||(e=i.getOrCreateVariablePackage$$module$build$src$core$variables(t.workspace,e.id||null,e.name,e.type||""),this.setValue(e.getId()))}setSourceBlock(e){if(e.isShadow())throw Error("Variable fields are not allowed to exist on shadow blocks.");super.setSourceBlock(e)}getValue(){return this.variable?this.variable.getId():null}getText(){return this.variable?this.variable.name:""}getVariable(){return this.variable}getValidator(){return this.variable?this.validator_:null}doClassValidation_(e){if(e===null)return null;var t=this.getSourceBlock();if(!t)throw new gt;return t=i.getVariable$$module$build$src$core$variables(t.workspace,e),t?(t=t.type,this.typeIsAllowed(t)?e:(console.warn("Variable type doesn't match this field! Type was "+t),null)):(console.warn("Variable id doesn't point to a real variable! ID was "+e),null)}doValueUpdate_(e){const t=this.getSourceBlock();if(!t)throw new gt;this.variable=i.getVariable$$module$build$src$core$variables(t.workspace,e),super.doValueUpdate_(e)}typeIsAllowed(e){const t=this.getVariableTypes();if(!t)return!0;for(let o=0;othis.max_&&(e.max=`${this.max_}`,Tt(e,vt.VALUEMAX,this.max_)),e}static fromJson(e){return new this(e.value,void 0,void 0,void 0,void 0,e)}};Is("field_number",sp),sp.prototype.DEFAULT_VALUE=0;var _v=class extends ei{constructor(e,t,o){super(String(e??""),t,o),this.EDITABLE=!1,this.SERIALIZABLE=!0}static fromJson(e){return new this(dt(e.text),void 0,e)}};Is("field_label_serializable",_v);var ii=class extends Ze{constructor(e,t,o){super(Ze.SKIP_SETUP),this.SERIALIZABLE=!0,this.CURSOR="default",this.value_=this.value_,this.checkChar=ii.CHECK_CHAR,e!==Ze.SKIP_SETUP&&(o&&this.configure_(o),this.setValue(e),t&&this.setValidator(t))}configure_(e){super.configure_(e),e.checkCharacter&&(this.checkChar=e.checkCharacter)}saveState(){const e=this.saveLegacyState(ii);return e!==null?e:this.getValueBoolean()}initView(){super.initView();const e=this.getTextElement();$e(e,"blocklyCheckbox"),e.style.display=this.value_?"block":"none"}render_(){this.textContent_&&(this.textContent_.nodeValue=this.getDisplayText_()),this.updateSize_(this.getConstants().FIELD_CHECKBOX_X_OFFSET)}getDisplayText_(){return this.checkChar}setCheckCharacter(e){this.checkChar=e||ii.CHECK_CHAR,this.forceRerender()}showEditor_(){this.setValue(!this.value_)}doClassValidation_(e){return e===!0||e==="TRUE"?"TRUE":e===!1||e==="FALSE"?"FALSE":null}doValueUpdate_(e){this.value_=this.convertValueToBool(e),this.textElement_&&(this.textElement_.style.display=this.value_?"block":"none")}getValue(){return this.value_?"TRUE":"FALSE"}getValueBoolean(){return this.value_}getText(){return String(this.convertValueToBool(this.value_))}convertValueToBool(e){return typeof e=="string"?e==="TRUE":!!e}static fromJson(e){return new this(e.checked,void 0,e)}};ii.CHECK_CHAR="✓",Is("field_checkbox",ii),ii.prototype.DEFAULT_VALUE=!1;var wv=class{constructor(e,t){this.draggable=e,this.workspace=t,this.dragTarget=null,this.startLoc=e.getRelativeToSurfaceXY()}onDragStart(e){this.draggable.startDrag(e)}onDrag(e,t){this.moveDraggable(e,t),t=this.getRoot(this.draggable),Qt(t)&&t.setDeleteStyle(this.wouldDeleteDraggable(e,t)),this.updateDragTarget(e)}updateDragTarget(e){e=this.workspace.getDragTarget(e);const t=this.getRoot(this.draggable);if(this.dragTarget!==e){let o;(o=this.dragTarget)==null||o.onDragExit(t),e==null||e.onDragEnter(t)}e==null||e.onDragOver(t),this.dragTarget=e}moveDraggable(e,t){t=this.pixelsToWorkspaceUnits(t),t=G.sum(this.startLoc,t),this.draggable.drag(t,e)}wouldDeleteDraggable(e,t){return(e=this.workspace.getDragTarget(e))&&this.workspace.getComponentManager().hasCapability(e.id,at.Capability.DELETE_AREA)?e.wouldDelete(t):!1}onDragEnd(e){const t=i.getGroup$$module$build$src$core$events$utils();var o=this.workspace.getDragTarget(e);const n=this.getRoot(this.draggable);if(o){let c;(c=this.dragTarget)==null||c.onDrop(n)}this.shouldReturnToStart(e,n)&&this.draggable.revertDrag(),(o=Qt(n)&&this.wouldDeleteDraggable(e,n))&&this.draggable instanceof ns&&Ta(this.draggable.getRootBlock()),this.draggable.endDrag(e),o&&Qt(n)&&(e=i.getGroup$$module$build$src$core$events$utils(),i.setGroup$$module$build$src$core$events$utils(t),n.dispose(),i.setGroup$$module$build$src$core$events$utils(e))}getRoot(e){return e instanceof ns?e.getRootBlock():e}shouldReturnToStart(e,t){return(e=this.workspace.getDragTarget(e))?e.shouldPreventMove(t):!1}pixelsToWorkspaceUnits(e){return e=new G(e.x/this.workspace.scale,e.y/this.workspace.scale),this.workspace.isMutator&&e.scale(1/this.workspace.options.parentWorkspace.scale),e}};r(z.BLOCK_DRAGGER,Ds,wv);var hr={};hr.BlockDragStrategy=qb,hr.BubbleDragStrategy=Ob,hr.CommentDragStrategy=Eb,hr.Dragger=wv;var op=class extends gs{constructor(e,t,o){super(e?e.workspace.id:void 0),this.type=M.BLOCK_DRAG,e&&(this.blockId=e.id,this.isStart=t,this.blocks=o)}toJson(){const e=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.blockId===void 0)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");return e.isStart=this.isStart,e.blockId=this.blockId,e.blocks=this.blocks,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new op),t.isStart=e.isStart,t.blockId=e.blockId,t.blocks=e.blocks,t}};r(z.EVENT,M.BLOCK_DRAG,op);var ip=class extends Ko{constructor(e,t,o,n){super(e),this.type=M.BLOCK_FIELD_INTERMEDIATE_CHANGE,this.recordUndo=!1,e&&(this.name=t,this.oldValue=o,this.newValue=n)}toJson(){const e=super.toJson();if(!this.name)throw Error("The changed field name is undefined. Either pass a name to the constructor, or call fromJson.");return e.name=this.name,e.oldValue=this.oldValue,e.newValue=this.newValue,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new ip),t.name=e.name,t.oldValue=e.oldValue,t.newValue=e.newValue,t}isNull(){return this.oldValue===this.newValue}run(e){var t=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");if(t=t.getBlockById(this.blockId),!t)throw Error("The associated block is undefined. Either pass a block to the constructor, or call fromJson");e=e?this.newValue:this.oldValue,(t=t.getField(this.name))?t.setValue(e):console.warn("Can't set non-existent field: "+this.name)}};r(z.EVENT,M.BLOCK_FIELD_INTERMEDIATE_CHANGE,ip);var np=class extends Ko{constructor(e){super(e),this.type=M.BLOCK_MOVE,e&&(e.isShadow()&&(this.recordUndo=!1),e=this.currentLocation(),this.oldParentId=e.parentId,this.oldInputName=e.inputName,this.oldCoordinate=e.coordinate)}toJson(){const e=super.toJson();return e.oldParentId=this.oldParentId,e.oldInputName=this.oldInputName,this.oldCoordinate&&(e.oldCoordinate=`${Math.round(this.oldCoordinate.x)}, ${Math.round(this.oldCoordinate.y)}`),e.newParentId=this.newParentId,e.newInputName=this.newInputName,this.newCoordinate&&(e.newCoordinate=`${Math.round(this.newCoordinate.x)}, ${Math.round(this.newCoordinate.y)}`),this.reason&&(e.reason=this.reason),this.recordUndo||(e.recordUndo=this.recordUndo),e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new np),t.oldParentId=e.oldParentId,t.oldInputName=e.oldInputName,e.oldCoordinate&&(o=e.oldCoordinate.split(","),t.oldCoordinate=new G(Number(o[0]),Number(o[1]))),t.newParentId=e.newParentId,t.newInputName=e.newInputName,e.newCoordinate&&(o=e.newCoordinate.split(","),t.newCoordinate=new G(Number(o[0]),Number(o[1]))),e.reason!==void 0&&(t.reason=e.reason),e.recordUndo!==void 0&&(t.recordUndo=e.recordUndo),t}recordNew(){const e=this.currentLocation();this.newParentId=e.parentId,this.newInputName=e.inputName,this.newCoordinate=e.coordinate}setReason(e){this.reason=e}currentLocation(){var e=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");var t=e.getBlockById(this.blockId);if(!t)throw Error("The block associated with the block move event could not be found");e={};const o=t.getParent();return o?(e.parentId=o.id,(t=o.getInputWithBlock(t))&&(e.inputName=t.name)):e.coordinate=t.getRelativeToSurfaceXY(),e}isNull(){return this.oldParentId===this.newParentId&&this.oldInputName===this.newInputName&&G.equals(this.oldCoordinate,this.newCoordinate)}run(e){var t=this.getEventWorkspace_();if(!this.blockId)throw Error("The block ID is undefined. Either pass a block to the constructor, or call fromJson");var o=t.getBlockById(this.blockId);if(o){var n=e?this.newParentId:this.oldParentId,c=e?this.newInputName:this.oldInputName;if(e=e?this.newCoordinate:this.oldCoordinate,n){var h=t.getBlockById(n);if(!h){console.warn("Can't connect to non-existent block: "+n);return}}if(o.getParent()&&o.unplug(),e)c=o.getRelativeToSurfaceXY(),o.moveBy(e.x-c.x,e.y-c.y,this.reason);else{t=o.outputConnection,(!t||o.previousConnection&&o.previousConnection.isConnected())&&(t=o.previousConnection);let $,T;o=(T=t)==null?void 0:T.type,c?(o=h.getInput(c))&&($=o.connection):o===ne.PREVIOUS_STATEMENT&&($=h.nextConnection),$&&t?t.connect($):console.warn("Can't connect to non-existent input: "+c)}}else console.warn("Can't move non-existent block: "+this.blockId)}};r(z.EVENT,M.BLOCK_MOVE,np);var rp=class extends gs{constructor(e,t,o){super(e?e.workspace.id:void 0),this.type=M.BUBBLE_OPEN,e&&(this.blockId=e.id,this.isOpen=t,this.bubbleType=o)}toJson(){const e=super.toJson();if(this.isOpen===void 0)throw Error("Whether this event is for opening the bubble is undefined. Either pass the value to the constructor, or call fromJson");if(!this.bubbleType)throw Error("The type of bubble is undefined. Either pass the value to the constructor, or call fromJson");return e.isOpen=this.isOpen,e.bubbleType=this.bubbleType,e.blockId=this.blockId||"",e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new rp),t.isOpen=e.isOpen,t.bubbleType=e.bubbleType,t.blockId=e.blockId,t}},ap;(function(e){e.MUTATOR="mutator",e.COMMENT="comment",e.WARNING="warning"})(ap||(ap={})),r(z.EVENT,M.BUBBLE_OPEN,rp);var Ls=class extends Ii{constructor(e){super(),this.isBlank=!e,e&&(this.commentId=e.id,this.workspaceId=e.workspace.id,this.group=i.getGroup$$module$build$src$core$events$utils(),this.recordUndo=ge())}toJson(){const e=super.toJson();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");return e.commentId=this.commentId,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new Ls),t.commentId=e.commentId,t}static CommentCreateDeleteHelper(e,t){const o=e.getEventWorkspace_();if(t){if(!e.json)throw Error("Encountered a comment event without proper json");wn(e.json,o)}else{if(!e.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");(t=o.getCommentById(e.commentId))?t.dispose():console.warn("Can't delete non-existent comment: "+e.commentId)}}},lp=class extends Ls{constructor(e,t,o){super(e),this.type=M.COMMENT_CHANGE,e&&(this.oldContents_=typeof t>"u"?"":t,this.newContents_=typeof o>"u"?"":o)}toJson(){const e=super.toJson();if(!this.oldContents_)throw Error("The old contents is undefined. Either pass a value to the constructor, or call fromJson");if(!this.newContents_)throw Error("The new contents is undefined. Either pass a value to the constructor, or call fromJson");return e.oldContents=this.oldContents_,e.newContents=this.newContents_,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new lp),t.oldContents_=e.oldContents,t.newContents_=e.newContents,t}isNull(){return this.oldContents_===this.newContents_}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(t=t.getCommentById(this.commentId)){var o=e?this.newContents_:this.oldContents_;if(o===void 0)throw Error(e?"The new contents is undefined. Either pass a value to the constructor, or call fromJson":"The old contents is undefined. Either pass a value to the constructor, or call fromJson");t.setText(o)}else console.warn("Can't change non-existent comment: "+this.commentId)}};r(z.EVENT,M.COMMENT_CHANGE,lp);var cp=class extends Ls{constructor(e,t){super(e),this.newCollapsed=t,this.type=M.COMMENT_COLLAPSE}toJson(){const e=super.toJson();if(this.newCollapsed===void 0)throw Error("The new collapse value undefined. Either call recordNew, or call fromJson");return e.newCollapsed=this.newCollapsed,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new cp),t.newCollapsed=e.newCollapsed,t}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");(t=t.getCommentById(this.commentId))?t.setCollapsed(e?!!this.newCollapsed:!this.newCollapsed):console.warn("Can't collapse or uncollapse non-existent comment: "+this.commentId)}};r(z.EVENT,M.COMMENT_COLLAPSE,cp);var up=class extends Ls{constructor(e){super(e),this.type=M.COMMENT_CREATE,e&&(this.xml=On(e),this.json=mi(e,{addCoordinates:!0}))}toJson(){const e=super.toJson();if(!this.xml)throw Error("The comment XML is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");return e.xml=Es(this.xml),e.json=this.json,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new up),t.xml=i.textToDom$$module$build$src$core$utils$xml(e.xml),t.json=e.json,t}run(e){Ls.CommentCreateDeleteHelper(this,e)}};r(z.EVENT,M.COMMENT_CREATE,up);var dp=class extends Ls{constructor(e){super(e),this.type=M.COMMENT_DELETE,e&&(this.xml=On(e),this.json=mi(e,{addCoordinates:!0}))}run(e){Ls.CommentCreateDeleteHelper(this,!e)}toJson(){const e=super.toJson();if(!this.xml)throw Error("The comment XML is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.json)throw Error("The comment JSON is undefined. Either pass a block to the constructor, or call fromJson");return e.xml=Es(this.xml),e.json=this.json,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new dp),t.xml=i.textToDom$$module$build$src$core$utils$xml(e.xml),t.json=e.json,t}};r(z.EVENT,M.COMMENT_DELETE,dp);var hp=class extends gs{constructor(e,t){super(e?e.workspace.id:void 0),this.type=M.COMMENT_DRAG,e&&(this.commentId=e.id,this.isStart=t)}toJson(){const e=super.toJson();if(this.isStart===void 0)throw Error("Whether this event is the start of a drag is undefined. Either pass the value to the constructor, or call fromJson");if(this.commentId===void 0)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");return e.isStart=this.isStart,e.commentId=this.commentId,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new hp),t.isStart=e.isStart,t.commentId=e.commentId,t}};r(z.EVENT,M.COMMENT_DRAG,hp);var pp=class extends Ls{constructor(e){super(e),this.type=M.COMMENT_MOVE,e&&(this.comment_=e,this.oldCoordinate_=e.getRelativeToSurfaceXY())}recordNew(){if(this.newCoordinate_)throw Error("Tried to record the new position of a comment on the same event twice.");if(!this.comment_)throw Error("The comment is undefined. Pass a comment to the constructor if you want to use the record functionality");this.newCoordinate_=this.comment_.getRelativeToSurfaceXY()}setReason(e){this.reason=e}setOldCoordinate(e){this.oldCoordinate_=e}toJson(){const e=super.toJson();if(!this.oldCoordinate_)throw Error("The old comment position is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.newCoordinate_)throw Error("The new comment position is undefined. Either call recordNew, or call fromJson");return e.oldCoordinate=`${Math.round(this.oldCoordinate_.x)}, ${Math.round(this.oldCoordinate_.y)}`,e.newCoordinate=Math.round(this.newCoordinate_.x)+","+Math.round(this.newCoordinate_.y),e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new pp),o=e.oldCoordinate.split(","),t.oldCoordinate_=new G(Number(o[0]),Number(o[1])),o=e.newCoordinate.split(","),t.newCoordinate_=new G(Number(o[0]),Number(o[1])),t}isNull(){return G.equals(this.oldCoordinate_,this.newCoordinate_)}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(t=t.getCommentById(this.commentId)){if(e=e?this.newCoordinate_:this.oldCoordinate_,!e)throw Error("Either oldCoordinate_ or newCoordinate_ is undefined. Either pass a comment to the constructor and call recordNew, or call fromJson");t.moveTo(e)}else console.warn("Can't move non-existent comment: "+this.commentId)}};r(z.EVENT,M.COMMENT_MOVE,pp);var gp=class extends Ls{constructor(e){super(e),this.type=M.COMMENT_RESIZE,e&&(this.oldSize=e.getSize())}recordCurrentSizeAsNewSize(){if(this.newSize)throw Error("Tried to record the new size of a comment on the same event twice.");var e=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(e=e.getCommentById(this.commentId),!e)throw Error("The comment associated with the comment resize event could not be found");this.newSize=e.getSize()}toJson(){const e=super.toJson();if(!this.oldSize)throw Error("The old comment size is undefined. Either pass a comment to the constructor, or call fromJson");if(!this.newSize)throw Error("The new comment size is undefined. Either call recordCurrentSizeAsNewSize, or call fromJson");return e.oldWidth=Math.round(this.oldSize.width),e.oldHeight=Math.round(this.oldSize.height),e.newWidth=Math.round(this.newSize.width),e.newHeight=Math.round(this.newSize.height),e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new gp),t.oldSize=new Ne(e.oldWidth,e.oldHeight),t.newSize=new Ne(e.newWidth,e.newHeight),t}isNull(){return Ne.equals(this.oldSize,this.newSize)}run(e){var t=this.getEventWorkspace_();if(!this.commentId)throw Error("The comment ID is undefined. Either pass a comment to the constructor, or call fromJson");if(t=t.getCommentById(this.commentId)){if(e=e?this.newSize:this.oldSize,!e)throw Error("Either oldSize or newSize is undefined. Either pass a comment to the constructor and call recordCurrentSizeAsNewSize, or call fromJson");t.setSize(e)}else console.warn("Can't resize non-existent comment: "+this.commentId)}};r(z.EVENT,M.COMMENT_RESIZE,gp);var mp=class extends gs{constructor(e,t,o){super(o),this.type=M.TOOLBOX_ITEM_SELECT,this.oldItem=e??void 0,this.newItem=t??void 0}toJson(){const e=super.toJson();return e.oldItem=this.oldItem,e.newItem=this.newItem,e}static fromJson(e,t,o){return t=super.fromJson(e,t,o??new mp),t.oldItem=e.oldItem,t.newItem=e.newItem,t}};r(z.EVENT,M.TOOLBOX_ITEM_SELECT,mp);var Cv=class extends Ii{constructor(e){super(),this.isBlank=!0,this.recordUndo=!1,this.type=M.FINISHED_LOADING,this.isBlank=!!e,e&&(this.workspaceId=e.id)}};r(z.EVENT,M.FINISHED_LOADING,Cv);var Tv,kv,Sv,Ev,Iv,xv,Dv,Av,Rv,Ov,Mv,Nv,Lv,Bv,Pv,Fv,jv,zv,Uv,Hv,Wv,Gv,Vv,Kv,Yv,te;i.BLOCK_CHANGE$$module$build$src$core$events$events=M.BLOCK_CHANGE,i.BLOCK_CREATE$$module$build$src$core$events$events=M.BLOCK_CREATE,i.BLOCK_DELETE$$module$build$src$core$events$events=M.BLOCK_DELETE,Tv=M.BLOCK_DRAG,i.BLOCK_MOVE$$module$build$src$core$events$events=M.BLOCK_MOVE,kv=M.BLOCK_FIELD_INTERMEDIATE_CHANGE,Sv=M.BUBBLE_OPEN,Ev=M.BLOCK_CHANGE,Iv=M.CLICK,xv=M.COMMENT_CHANGE,Dv=M.COMMENT_CREATE,Av=M.COMMENT_DELETE,Rv=M.COMMENT_MOVE,Ov=M.COMMENT_RESIZE,Mv=M.COMMENT_DRAG,Nv=M.BLOCK_CREATE,Lv=M.BLOCK_DELETE,Bv=M.FINISHED_LOADING,Pv=M.MARKER_MOVE,Fv=M.BLOCK_MOVE,jv=M.SELECTED,zv=M.THEME_CHANGE,Uv=M.TOOLBOX_ITEM_SELECT,Hv=M.TRASHCAN_OPEN,Wv=M.UI,Gv=M.VAR_CREATE,Vv=M.VAR_DELETE,Kv=M.VAR_RENAME,Yv=M.VIEWPORT_CHANGE,te={},te.Abstract=Ii,te.BLOCK_CHANGE=i.BLOCK_CHANGE$$module$build$src$core$events$events,te.BLOCK_CREATE=i.BLOCK_CREATE$$module$build$src$core$events$events,te.BLOCK_DELETE=i.BLOCK_DELETE$$module$build$src$core$events$events,te.BLOCK_DRAG=Tv,te.BLOCK_FIELD_INTERMEDIATE_CHANGE=kv,te.BLOCK_MOVE=i.BLOCK_MOVE$$module$build$src$core$events$events,te.BUBBLE_OPEN=Sv,te.BUMP_EVENTS=T$,te.BlockBase=Ko,te.BlockChange=Yo,te.BlockCreate=Th,te.BlockDelete=Bh,te.BlockDrag=op,te.BlockFieldIntermediateChange=ip,te.BlockMove=np,te.BubbleOpen=rp,te.BubbleType=ap,te.CHANGE=Ev,te.CLICK=Iv,te.COMMENT_CHANGE=xv,te.COMMENT_CREATE=Dv,te.COMMENT_DELETE=Av,te.COMMENT_DRAG=Mv,te.COMMENT_MOVE=Rv,te.COMMENT_RESIZE=Ov,te.CREATE=Nv,te.Click=Hd,te.ClickTarget=Wd,te.CommentBase=Ls,te.CommentChange=lp,te.CommentCollapse=cp,te.CommentCreate=up,te.CommentDelete=dp,te.CommentDrag=hp,te.CommentMove=pp,te.CommentResize=gp,te.DELETE=Lv,te.FINISHED_LOADING=Bv,te.FinishedLoading=Cv,te.MARKER_MOVE=Pv,te.MOVE=Fv,te.MarkerMove=Ph,te.SELECTED=jv,te.Selected=Vh,te.THEME_CHANGE=zv,te.TOOLBOX_ITEM_SELECT=Uv,te.TRASHCAN_OPEN=Hv,te.ThemeChange=kh,te.ToolboxItemSelect=mp,te.TrashcanOpen=Yh,te.UI=Wv,te.UiBase=gs,te.VAR_CREATE=Gv,te.VAR_DELETE=Vv,te.VAR_RENAME=Kv,te.VIEWPORT_CHANGE=Yv,te.VarBase=Kn,te.VarCreate=uh,te.VarDelete=Hh,te.VarRename=Wh,te.ViewportChange=Sh,te.clearPendingUndo=de,te.disable=i.disable$$module$build$src$core$events$utils,te.disableOrphans=et,te.enable=i.enable$$module$build$src$core$events$utils,te.filter=ce,te.fire=K,te.fromJson=Fe,te.get=Y,te.getDescendantIds=me,te.getGroup=i.getGroup$$module$build$src$core$events$utils,te.getRecordUndo=ge,te.isEnabled=J,te.setGroup=i.setGroup$$module$build$src$core$events$utils,te.setRecordUndo=i.setRecordUndo$$module$build$src$core$events$utils;var ys={};ys.BottomRow=uv,ys.ConstantProvider=lv,ys.Drawer=cv,ys.MarkerSvg=gv,ys.PathObject=mv,ys.RenderInfo=pv,ys.Renderer=ep,ys.RightConnectionShape=dv,ys.StatementInput=Il,ys.TopRow=hv,Fd();var yt={};yt.registerCleanup=Cd,yt.registerCollapse=kd,yt.registerCollapseExpandBlock=Rd,yt.registerComment=Dd,yt.registerCommentCreate=Pd,yt.registerCommentDelete=Ld,yt.registerCommentDuplicate=Bd,yt.registerCommentOptions=b$,yt.registerDefaultOptions=Fd,yt.registerDelete=Md,yt.registerDeleteAll=Id,yt.registerDisable=Od,yt.registerDuplicate=xd,yt.registerExpand=Sd,yt.registerHelp=Nd,yt.registerInline=Ad,yt.registerRedo=wd,yt.registerUndo=_d;var Dl={};Dl.CommentView=xb,Dl.RenderedWorkspaceComment=ll,Dl.WorkspaceComment=al;var pr={};pr.Bubble=Ke,pr.MiniWorkspaceBubble=eo,pr.TextBubble=Fb,pr.TextInputBubble=Mb;var Jv=class extends $l{constructor(){super(),this.FIELD_TEXT_BASELINE_CENTER=!1,this.DARK_PATH_OFFSET=1,this.MAX_BOTTOM_WIDTH=30,this.STATEMENT_BOTTOM_SPACER=-this.NOTCH_HEIGHT/2}getCSS_(e){return super.getCSS_(e).concat([`${e} .blocklyInsertionMarker>.blocklyPathLight,`,`${e} .blocklyInsertionMarker>.blocklyPathDark {`,`fill-opacity: ${this.INSERTION_MARKER_OPACITY};`,"stroke: none;","}"])}},Xv=class{constructor(e){this.inlineSteps_=this.steps_="",this.info_=e,this.RTL_=this.info_.RTL,e=e.getRenderer(),this.constants_=e.getConstants(),this.highlightConstants_=e.getHighlightConstants(),this.highlightOffset=this.highlightConstants_.OFFSET,this.outsideCornerPaths_=this.highlightConstants_.OUTSIDE_CORNER,this.insideCornerPaths_=this.highlightConstants_.INSIDE_CORNER,this.puzzleTabPaths_=this.highlightConstants_.PUZZLE_TAB,this.notchPaths_=this.highlightConstants_.NOTCH,this.startPaths_=this.highlightConstants_.START_HAT,this.jaggedTeethPaths_=this.highlightConstants_.JAGGED_TEETH}getPath(){return this.steps_+` +`+this.inlineSteps_}drawTopCorner(e){this.steps_+=rt(e.xPos,this.info_.startY);for(let t=0,o;o=e.elements[t];t++)I.isLeftSquareCorner(o)?this.steps_+=this.highlightConstants_.START_POINT:I.isLeftRoundedCorner(o)?this.steps_+=this.outsideCornerPaths_.topLeft(this.RTL_):I.isPreviousConnection(o)?this.steps_+=this.notchPaths_.pathLeft:I.isHat(o)?this.steps_+=this.startPaths_.path(this.RTL_):I.isSpacer(o)&&o.width!==0&&(this.steps_+=re("H",o.xPos+o.width-this.highlightOffset));this.steps_+=re("H",e.xPos+e.width-this.highlightOffset)}drawJaggedEdge_(e){this.info_.RTL&&(this.steps_+=this.jaggedTeethPaths_.pathLeft+re("v",e.height-this.jaggedTeethPaths_.height-this.highlightOffset))}drawValueInput(e){const t=e.getLastInput();if(this.RTL_){const o=e.height-t.connectionHeight;this.steps_+=bt(t.xPos+t.width-this.highlightOffset,e.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)+re("v",o)}else this.steps_+=bt(t.xPos+t.width,e.yPos)+this.puzzleTabPaths_.pathDown(this.RTL_)}drawStatementInput(e){const t=e.getLastInput();if(t)if(this.RTL_){const o=e.height-2*this.insideCornerPaths_.height;this.steps_+=bt(t.xPos,e.yPos)+this.insideCornerPaths_.pathTop(this.RTL_)+re("v",o)+this.insideCornerPaths_.pathBottom(this.RTL_)+xs(e.width-t.xPos-this.insideCornerPaths_.width,0)}else this.steps_+=bt(t.xPos,e.yPos+e.height)+this.insideCornerPaths_.pathBottom(this.RTL_)+xs(e.width-t.xPos-this.insideCornerPaths_.width,0)}drawRightSideRow(e){const t=e.xPos+e.width-this.highlightOffset;e instanceof Nh&&e.followsStatement&&(this.steps_+=re("H",t)),this.RTL_&&(this.steps_+=re("H",t),e.height>this.highlightOffset&&(this.steps_+=re("V",e.yPos+e.height-this.highlightOffset)))}drawBottomRow(e){if(this.RTL_)this.steps_+=re("V",e.baseline-this.highlightOffset);else{const t=this.info_.bottomRow.elements[0];I.isLeftSquareCorner(t)?this.steps_+=bt(e.xPos+this.highlightOffset,e.baseline-this.highlightOffset):I.isLeftRoundedCorner(t)&&(this.steps_+=bt(e.xPos,e.baseline),this.steps_+=this.outsideCornerPaths_.bottomLeft())}}drawLeft(){var e=this.info_.outputConnection;e&&(e=e.connectionOffsetY+e.height,this.RTL_?this.steps_+=bt(this.info_.startX,e):(this.steps_+=bt(this.info_.startX+this.highlightOffset,this.info_.bottomRow.baseline-this.highlightOffset),this.steps_+=re("V",e)),this.steps_+=this.puzzleTabPaths_.pathUp(this.RTL_)),this.RTL_||(e=this.info_.topRow,I.isLeftRoundedCorner(e.elements[0])?this.steps_+=re("V",this.outsideCornerPaths_.height):this.steps_+=re("V",e.capline+this.highlightOffset))}drawInlineInput(e){const t=this.highlightOffset,o=e.xPos+e.connectionWidth;var n=e.centerline-e.height/2;const c=e.width-e.connectionWidth,h=n+t;this.RTL_?(n=e.connectionOffsetY-t,e=e.height-(e.connectionOffsetY+e.connectionHeight)+t,this.inlineSteps_+=bt(o-t,h)+re("v",n)+this.puzzleTabPaths_.pathDown(this.RTL_)+re("v",e)+re("h",c)):this.inlineSteps_+=bt(e.xPos+e.width+t,h)+re("v",e.height)+re("h",-c)+bt(o,n+e.connectionOffsetY)+this.puzzleTabPaths_.pathDown(this.RTL_)}},qv=class extends bl{constructor(e,t){super(e,t),this.highlighter_=new Xv(t)}draw(){this.drawOutline_(),this.drawInternals_(),this.updateConnectionHighlights();const e=this.block_.pathObject;e.setPath(this.outlinePath_+` +`+this.inlinePath_),e.setHighlightPath(this.highlighter_.getPath()),this.info_.RTL&&e.flipRTL(),this.recordSizeOnBlock_()}drawTop_(){this.highlighter_.drawTopCorner(this.info_.topRow),this.highlighter_.drawRightSideRow(this.info_.topRow),super.drawTop_()}drawJaggedEdge_(e){this.highlighter_.drawJaggedEdge_(e),super.drawJaggedEdge_(e)}drawValueInput_(e){this.highlighter_.drawValueInput(e),super.drawValueInput_(e)}drawStatementInput_(e){this.highlighter_.drawStatementInput(e),super.drawStatementInput_(e)}drawRightSideRow_(e){this.highlighter_.drawRightSideRow(e),this.outlinePath_+=re("H",e.xPos+e.width)+re("V",e.yPos+e.height)}drawBottom_(){this.highlighter_.drawBottomRow(this.info_.bottomRow),super.drawBottom_()}drawLeft_(){this.highlighter_.drawLeft(),super.drawLeft_()}drawInlineInput_(e){this.highlighter_.drawInlineInput(e),super.drawInlineInput_(e)}positionInlineInputConnection_(e){const t=e.centerline-e.height/2;if(e.connectionModel){let o=e.xPos+e.connectionWidth+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(o*=-1),e.connectionModel.setOffsetInBlock(o,t+e.connectionOffsetY+this.constants_.DARK_PATH_OFFSET)}}positionStatementInputConnection_(e){const t=e.getLastInput();if(t!=null&&t.connectionModel){let o=e.xPos+e.statementEdge+t.notchOffset;o=this.info_.RTL?-1*o:o+this.constants_.DARK_PATH_OFFSET,t.connectionModel.setOffsetInBlock(o,e.yPos+this.constants_.DARK_PATH_OFFSET)}}positionExternalValueConnection_(e){const t=e.getLastInput();if(t&&t.connectionModel){let o=e.xPos+e.width+this.constants_.DARK_PATH_OFFSET;this.info_.RTL&&(o*=-1),t.connectionModel.setOffsetInBlock(o,e.yPos)}}positionNextConnection_(){const e=this.info_.bottomRow;if(e.connection){const t=e.connection,o=t.xPos;t.connectionModel.setOffsetInBlock((this.info_.RTL?-o:o)+this.constants_.DARK_PATH_OFFSET/2,e.baseline+this.constants_.DARK_PATH_OFFSET)}}},Zv=class{constructor(e){this.OFFSET=.5,this.constantProvider=e,this.START_POINT=rt(this.OFFSET,this.OFFSET)}init(){this.INSIDE_CORNER=this.makeInsideCorner(),this.OUTSIDE_CORNER=this.makeOutsideCorner(),this.PUZZLE_TAB=this.makePuzzleTab(),this.NOTCH=this.makeNotch(),this.JAGGED_TEETH=this.makeJaggedTeeth(),this.START_HAT=this.makeStartHat()}makeInsideCorner(){const e=this.constantProvider.CORNER_RADIUS,t=this.OFFSET,o=(1-Math.SQRT1_2)*(e+t)-t,n=rt(o,o)+ht("a","0 0,0",e,he(-o-t,e-o)),c=ht("a","0 0,0",e+t,he(e+t,e+t)),h=rt(o,-o)+ht("a","0 0,0",e+t,he(e-o,o+t));return{width:e+t,height:e,pathTop($){return $?n:""},pathBottom($){return $?c:h}}}makeOutsideCorner(){const e=this.constantProvider.CORNER_RADIUS,t=this.OFFSET,o=(1-Math.SQRT1_2)*(e-t)+t,n=rt(o,o)+ht("a","0 0,1",e-t,he(e-o,-o+t)),c=rt(t,e)+ht("a","0 0,1",e-t,he(e,-e+t)),h=-o,$=rt(o,h)+ht("a","0 0,1",e-t,he(-o+t,-h-e));return{height:e,topLeft(T){return T?n:c},bottomLeft(){return $}}}makePuzzleTab(){const e=this.constantProvider.TAB_WIDTH,t=this.constantProvider.TAB_HEIGHT,o=rt(-2,-t+3.4)+xs(-.45*e,-2.1),n=re("v",2.5)+rt(.97*-e,2.5)+jt("q",[he(.05*-e,10),he(.3*e,9.5)])+rt(.67*e,-1.9)+re("v",2.5),c=re("v",-1.5)+rt(-.92*e,-.5)+jt("q",[he(-.19*e,-5.5),he(0,-11)])+rt(.92*e,1),h=rt(-5,t-.7)+xs(.46*e,-2.1);return{width:e,height:t,pathUp($){return $?o:c},pathDown($){return $?n:h}}}makeNotch(){return{pathLeft:re("h",this.OFFSET)+this.constantProvider.NOTCH.pathLeft}}makeJaggedTeeth(){return{pathLeft:xs(5.1,2.6)+rt(-10.2,6.8)+xs(5.1,2.6),height:12,width:10.2}}makeStartHat(){const e=this.constantProvider.START_HAT.height,t=rt(25,-8.7)+jt("c",[he(29.7,-6.2),he(57.2,-.5),he(75,8.7)]),o=jt("c",[he(17.8,-9.2),he(45.3,-14.9),he(75,-8.7)])+bt(100.5,e+.5);return{path(n){return n?t:o}}}},Qv=class extends Oh{constructor(e,t){super(e,t),this.constants_=e,this.connectedBlock&&(this.width+=this.constants_.DARK_PATH_OFFSET,this.height+=this.constants_.DARK_PATH_OFFSET)}},ey=class extends ir{constructor(e,t){super(e,t),this.constants_=e,this.connectedBlock&&(this.height+=this.constants_.DARK_PATH_OFFSET)}},ty=class extends ar{constructor(e,t){super(e,t),this.renderer_=e}getRenderer(){return this.renderer_}populateBottomRow_(){super.populateBottomRow_(),this.block_.inputList.length&&this.block_.inputList[this.block_.inputList.length-1]instanceof qt||(this.bottomRow.minHeight=this.constants_.MEDIUM_PADDING-this.constants_.DARK_PATH_OFFSET)}addInput_(e,t){this.isInline&&e instanceof i.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new Qv(this.constants_,e)),t.hasInlineInput=!0):e instanceof qt?(t.elements.push(new ey(this.constants_,e)),t.hasStatement=!0):e instanceof i.ValueInput$$module$build$src$core$inputs$value_input?(t.elements.push(new fl(this.constants_,e)),t.hasExternalInput=!0):(e instanceof Os||e instanceof no)&&(t.minHeight=Math.max(t.minHeight,this.constants_.DUMMY_INPUT_MIN_HEIGHT),t.hasDummyInput=!0),this.isInline||t.align!==null||(t.align=e.align)}addElemSpacing_(){let e=!1;for(let o=0,n;n=this.rows[o];o++)n.hasExternalInput&&(e=!0);for(let o=0,n;n=this.rows[o];o++){var t=n.elements;if(n.elements=[],n.startsWithElemSpacer()&&n.elements.push(new Xt(this.constants_,this.getInRowSpacing_(null,t[0]))),t.length){for(let c=0;c>>/sprites.png); + height: 16px; + vertical-align: middle; + visibility: hidden; + width: 16px; +} + +.blocklyTreeIconClosed { + background-position: -32px -1px; +} + +.blocklyToolboxDiv[dir="RTL"] .blocklyTreeIconClosed { + background-position: 0 -1px; +} + +.blocklyTreeSelected>.blocklyTreeIconClosed { + background-position: -32px -17px; +} + +.blocklyToolboxDiv[dir="RTL"] .blocklyTreeSelected>.blocklyTreeIconClosed { + background-position: 0 -17px; +} + +.blocklyTreeIconOpen { + background-position: -16px -1px; +} + +.blocklyTreeSelected>.blocklyTreeIconOpen { + background-position: -16px -17px; +} + +.blocklyTreeLabel { + cursor: default; + font: 16px sans-serif; + padding: 0 3px; + vertical-align: middle; +} + +.blocklyToolboxDelete .blocklyTreeLabel { + cursor: url("<<>>/handdelete.cur"), auto; +} + +.blocklyTreeSelected .blocklyTreeLabel { + color: #fff; +} +`),r(z.TOOLBOX_ITEM,_s.registrationName,_s);var gr=class extends $p{constructor(e,t){super(e,t),this.cssConfig_={container:"blocklyTreeSeparator"},this.htmlDiv=null,Object.assign(this.cssConfig_,e.cssconfig||e.cssConfig)}init(){this.createDom_()}createDom_(){const e=document.createElement("div"),t=this.cssConfig_.container;return t&&$e(e,t),this.htmlDiv=e}getDiv(){return this.htmlDiv}dispose(){Ve(this.htmlDiv)}};gr.registrationName="sep",Ct(` +.blocklyTreeSeparator { + border-bottom: solid #e5e5e5 1px; + height: 0; + margin: 5px 0; +} + +.blocklyToolboxDiv[layout="h"] .blocklyTreeSeparator { + border-right: solid #e5e5e5 1px; + border-bottom: none; + height: auto; + margin: 0 5px 0 5px; + padding: 5px 0; + width: 0; +} +`),r(z.TOOLBOX_ITEM,gr.registrationName,gr);var Xi=class extends _s{constructor(e,t,o){super(e,t,o),this.subcategoriesDiv_=null,this.expanded_=!1,this.toolboxItems_=[]}makeDefaultCssConfig_(){const e=super.makeDefaultCssConfig_();return e.contents="blocklyToolboxContents",e}parseContents_(e){if("custom"in e)this.flyoutItems_=e.custom;else{const t=e.contents;if(t){this.flyoutItems_=[],e=!0;for(let o=0;o>>/handdelete.cur"), auto; +} + +.blocklyToolboxGrab { + cursor: url("<<>>/handclosed.cur"), auto; + cursor: grabbing; + cursor: -webkit-grabbing; +} + +/* Category tree in Toolbox. */ +.blocklyToolboxDiv { + background-color: #ddd; + overflow-x: visible; + overflow-y: auto; + padding: 4px 0 4px 0; + position: absolute; + z-index: 70; /* so blocks go under toolbox when dragging */ + -webkit-tap-highlight-color: transparent; /* issue #1345 */ +} + +.blocklyToolboxContents { + display: flex; + flex-wrap: wrap; + flex-direction: column; +} + +.blocklyToolboxContents:focus { + outline: none; +} +`),r(z.TOOLBOX,Ds,ry);var vT="11.2.2",yT=ne.INPUT_VALUE,_T=ne.OUTPUT_VALUE,wT=ne.NEXT_STATEMENT,CT=ne.PREVIOUS_STATEMENT,TT=xe.TOP,kT=xe.BOTTOM,ST=xe.LEFT,ET=xe.RIGHT;Gi.prototype.newBlock=function(e,t){return new Co(this,e,t)},Zt.prototype.newBlock=function(e,t){return new ns(this,e,t)},Gi.prototype.newComment=function(e){return new al(this,e)},Zt.prototype.newComment=function(e){return new ll(this,e)},Zt.newTrashcan=function(e){return new sv(e)},eo.prototype.newWorkspaceSvg=function(e){return new Zt(e)},i.Names$$module$build$src$core$names.prototype.populateProcedures=function(e){e=Da(e),e=e[0].concat(e[1]);for(let t=0;t{this.setState({popper:b.I18n.t("Copied"),anchorEl:i}),setTimeout(()=>this.setState({popper:"",anchorEl:null}),1e3)},50)}render(){const s=new Blob([this.props.text],{type:"application/xml"}),i=`${this.props.scriptId.substring(10)}.xml`;return p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":vr.dialog},fullWidth:!0,open:!0,"aria-labelledby":"export-dialog-title",children:[p.jsx(y.DialogTitle,{id:"export-dialog-title",children:b.I18n.t("Export selected blocks")}),p.jsx(y.DialogContent,{style:vr.overflowY,children:p.jsx("pre",{id:"export-text",style:{...vr.textArea,...this.props.themeType==="dark"?void 0:vr.textAreaLight},children:this.props.text})}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{variant:"contained",color:"secondary",startIcon:p.jsx(Vl,{}),children:p.jsx("a",{download:i,target:"_blank",rel:"noreferrer",href:URL.createObjectURL(s),style:{textDecoration:"inherit",color:"inherit"},children:b.I18n.t("Download as file")})}),p.jsx(y.Button,{variant:"contained",onClick:r=>this.onCopy(r),color:"secondary",startIcon:p.jsx(VE,{}),children:b.I18n.t("Copy to clipboard")}),p.jsx(y.Button,{variant:"contained",onClick:()=>this.handleCancel(),color:"primary",startIcon:p.jsx(lo,{}),children:b.I18n.t("Close")}),p.jsx(y.Popper,{id:"popper",style:{zIndex:1e4},open:!!this.state.popper,placement:"top",anchorEl:this.state.anchorEl,transition:!0,children:({TransitionProps:r})=>p.jsx(y.Fade,{...r,timeout:350,children:p.jsx(y.Paper,{children:p.jsx("p",{style:vr.typography,children:this.state.popper})})})}),p.jsx("textarea",{id:"copy_input",readOnly:!0,style:{position:"absolute",left:-9999},tabIndex:-1,"aria-hidden":!0,value:this.props.text})]})]},"export-dialog")}}const xt={textArea:{width:"calc(100% - 10px)",height:"calc(80% - 20px)",resize:"none",fontFamily:"monospace",fontSize:"1em",backgroundColor:"transparent",borderRadius:4,outline:"none"},dropzone:{marginTop:20,width:"100%",borderWidth:5,borderStyle:"dashed",borderColor:"#d0cccc",textAlign:"center",boxSizing:"border-box",paddingTop:45,borderRadius:10,height:"calc(100% - 10px)"},dropzoneDiv:{width:"100%",height:"20%",position:"relative"},dropzoneRejected:{borderColor:"#970000"},dropzoneAccepted:{borderColor:"#17cd02"},icon:{height:"80%",width:"80%",opacity:.3,color:"#eeeeee",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:0},iconError:{color:"#ffc3c6"},iconOk:{color:"#aaeebc"},text:{top:"50%",left:"50%",transform:"translate(-50%,-50%)",color:"#868686",position:"absolute",zIndex:1},dialog:{height:"95%"},fullHeight:{height:"100%",overflow:"hidden"}};class tm extends X.Component{constructor(s){super(s),this.state={text:"",imageStatus:"",error:""}}componentDidMount(){setTimeout(()=>{var s;try{(s=window.document.getElementById("import-text-area"))==null||s.focus()}catch{}},100)}static readFileDataUrl(s,i){const r=new FileReader;r.onload=()=>{i(null,{data:r.result,name:s.name})},r.onabort=()=>{console.error("file reading was aborted"),i(b.I18n.t("file reading was aborted"))},r.onerror=l=>{console.error("file reading has failed"),i(b.I18n.t("file reading has failed: %s",l))},r.readAsText(s)}handleDropFile(s){if(!(s!=null&&s.length))return;const i=s[s.length-1];i&&tm.readFileDataUrl(i,(r,l)=>{var u;r||!l?this.setState({error:r||"No data"}):this.setState({text:((u=l.data)==null?void 0:u.toString())||""})})}handleCancel(){this.props.onClose()}handleOk(){this.props.onClose(this.state.text)}onChange(s){this.setState({text:s.target.value})}render(){const s={...xt.dropzone,...this.state.imageStatus==="accepted"?xt.dropzoneAccepted:this.state.imageStatus==="rejected"?xt.dropzoneRejected:void 0};return p.jsxs(y.Dialog,{onClose:()=>!1,maxWidth:"lg",sx:{"& .MuiDialog-paper":xt.dialog},fullWidth:!0,open:!0,"aria-labelledby":"import-dialog-title",children:[p.jsx(y.DialogTitle,{id:"import-dialog-title",children:b.I18n.t("Import blocks")}),p.jsxs(y.DialogContent,{style:xt.fullHeight,children:[p.jsx("textarea",{autoFocus:!0,id:"import-text-area",placeholder:b.I18n.t("Paste your blocks here"),style:{...xt.textArea,color:this.props.themeType==="dark"?"#ffffff":"#000000"},onChange:i=>this.onChange(i),value:this.state.text}),p.jsx(B_,{maxSize:5e7,onDrop:(i,r)=>{var l,u,d;i.length?this.handleDropFile(i):window.alert(((d=(u=(l=r==null?void 0:r[0])==null?void 0:l.errors)==null?void 0:u[0])==null?void 0:d.message)||b.I18n.t("ra_Cannot upload"))},multiple:!1,accept:{"text/plain":[],"text/xml":[],"application/xml":[]},children:({getRootProps:i,getInputProps:r,isDragActive:l,isDragReject:u})=>u?(this.state.imageStatus!=="rejected"&&this.setState({imageStatus:"rejected"}),p.jsxs("div",{style:{...s,...xt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:xt.text,children:b.I18n.t("Some files will be rejected")},"text"),p.jsx($c,{style:{...xt.icon,...xt.iconError}},"icon")]})):l?(this.state.imageStatus!=="accepted"&&this.setState({imageStatus:"accepted"}),p.jsxs("div",{style:{...s,...xt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:xt.text,children:b.I18n.t("All files will be accepted")},"text"),p.jsx(Cg,{style:{...xt.icon,...xt.iconOk}},"icon")]})):(this.state.imageStatus!=="wait"&&this.setState({imageStatus:"wait"}),p.jsxs("div",{style:{...s,...xt.dropzoneDiv},...i(),children:[p.jsx("input",{...r()}),p.jsx("span",{style:xt.text,children:b.I18n.t("Drop some files here or click...")},"text"),p.jsx(P_,{style:xt.icon},"icon")]}))})]}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{variant:"contained",disabled:!this.state.text,onClick:()=>this.handleOk(),color:"primary",startIcon:p.jsx(di,{}),children:b.I18n.t("Import")}),p.jsx(y.Button,{color:"grey",variant:"contained",onClick:()=>this.handleCancel(),startIcon:p.jsx(lo,{}),children:b.I18n.t("Close")})]})]})}}/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const Te=window.Blockly;class jp extends Error{constructor(){super("The field has not yet been attached to its input. Call appendField to attach it.")}}class tc extends Te.Field{textGroup=null;borderRect_=null;maxLines_=1/0;isOverflowedY_=!1;constructor(s,i,r){super(s),s!==Symbol("SKIP_SETUP")&&(r&&this.configure_(r),this.SERIALIZABLE=!0,this.setValue((s==null?void 0:s.toString())||""),i&&this.setValidator(i))}configure_(s){super.configure_(s),s.maxLines&&this.setMaxLines(s.maxLines)}toXml(s){return s.textContent=this.getValue().replace(/\n/g," "),s}fromXml(s){this.setValue(s.textContent.replace(/ /g,` +`))}saveState(){const s=this.saveLegacyState(tc);return s!==null?s:this.getValue()}loadState(s){this.loadLegacyState(Te.Field,s)||this.setValue(s)}initView(){this.createBorderRect_(),this.textGroup=Te.utils.dom.createSvgElement(Te.utils.Svg.G,{class:"blocklyEditableText"},this.fieldGroup_)}onHtmlInputKeyDownSuper_(s){s.key==="Enter"?(Te.WidgetDiv.hideIfOwner(this),Te.dropDownDiv.hideWithoutAnimation()):s.key==="Escape"?(this.setValue(this.htmlInput_.getAttribute("data-untyped-default-value"),!1),Te.WidgetDiv.hideIfOwner(this),Te.dropDownDiv.hideWithoutAnimation()):s.key==="Tab"&&(Te.WidgetDiv.hideIfOwner(this),Te.dropDownDiv.hideWithoutAnimation(),this.sourceBlock_.tab(this,!s.shiftKey),s.preventDefault())}onHtmlInputChange_(s){const i=this.value_;this.setValue(this.getValueFromEditorText_(this.htmlInput_.value),!1),this.sourceBlock_&&Te.Events.isEnabled()&&this.value_!==i&&Te.Events.fire(new(Te.Events.get("block_field_intermediate_change"))(this.sourceBlock_,this.name||null,i,this.value_))}onFinishEditing_(s){}getValueFromEditorText_(s){return s}bindInputEvents_(s){this.onKeyDownWrapper_=Te.browserEvents.conditionalBind(s,"keydown",this,this.onHtmlInputKeyDown_),this.onKeyInputWrapper_=Te.browserEvents.conditionalBind(s,"input",this,this.onHtmlInputChange_)}getDisplayText_(){const s=this.getSourceBlock();if(!s)throw new Error("The field has not yet been attached to its input. Call appendField to attach it.");let i=this.getText();if(!i)return Te.Field.NBSP;const r=i.split(` +`);i="";const l=this.isOverflowedY_?this.maxLines_:r.length;for(let u=0;uthis.maxDisplayLength?d=`${d.substring(0,this.maxDisplayLength-4)}...`:this.isOverflowedY_&&u===l-1&&(d=`${d.substring(0,d.length-3)}...`),d=d.replace(/\s/g,Te.Field.NBSP),i+=d,u!==l-1&&(i+=` +`)}return s.RTL&&(i+="‏"),i}doValueUpdate_(s){super.doValueUpdate_(s),this.value_!==null&&(this.isOverflowedY_=this.value_.split(` +`).length>this.maxLines_)}render_(){const s=this.getSourceBlock();if(!s)throw new Error("The field has not yet been attached to its input. Call appendField to attach it.");let i;const r=this.textGroup;for(;i=r.firstChild;)r.removeChild(i);const l=this.getConstants();if(!l)throw Error("Constants not found");const u=this.getDisplayText_().split(` +`);let d=0;for(let g=0;gd&&(d=v),g+=s.FIELD_TEXT_HEIGHT+(m>0?s.FIELD_BORDER_RECT_Y_PADDING:0)}if(this.isBeingEdited_){const m=String(this.value_).split(` +`),f=Te.utils.dom.createSvgElement(Te.utils.Svg.TEXT,{class:"blocklyText blocklyMultilineText"});for(let _=0;_this.maxDisplayLength&&(m[_]=m[_].substring(0,this.maxDisplayLength)),f.textContent=m[_];const S=Te.utils.dom.getFastTextWidth(f,r,l,u);S>d&&(d=S)}const v=this.htmlInput_,w=v.offsetWidth-v.clientWidth;d+=w}this.borderRect_&&(g+=s.FIELD_BORDER_RECT_Y_PADDING*2,d+=s.FIELD_BORDER_RECT_X_PADDING*2+1,this.borderRect_.setAttribute("width",`${d}`),this.borderRect_.setAttribute("height",`${g}`)),this.size_.width=d,this.size_.height=g,this.positionBorderRect_()}showInlineEditor_(s){const i=this.getSourceBlock();if(!i)throw new jp;Te.WidgetDiv.show(this,i.RTL,this.widgetDispose_.bind(this),this.workspace_),this.htmlInput_=this.widgetCreate_(),this.isBeingEdited_=!0,this.valueWhenEditorWasOpened_=this.value_,s||(this.htmlInput_.focus({preventScroll:!0}),this.htmlInput_.select())}getEditorText_(s){return`${s}`}getScaledBBox(){let s,i,r;const l=this.getSourceBlock();if(!l)throw new jp;if(this.isFullBlockField()){const u=this.sourceBlock_.getHeightWidth(),d=l.workspace.scale;r=this.getAbsoluteXY_(),s=(u.width+1)*d,i=(u.height+1)*d,Te.utils.userAgent.GECKO?(r.x+=1.5*d,r.y+=1.5*d):(r.x-=.5*d,r.y-=.5*d)}else{const u=this.borderRect_.getBoundingClientRect();r=Te.utils.style.getPageOffset(this.borderRect_),s=u.width,i=u.height}return new Te.utils.Rect(r.y,r.y+i,r.x,r.x+s)}resizeEditor_(){Te.renderManagement.finishQueuedRenders().then(()=>{const s=this.getSourceBlock();if(!s)throw new jp;const i=Te.WidgetDiv.getDiv(),r=this.getScaledBBox();i.style.width=`${r.right-r.left}px`,i.style.height=`${r.bottom-r.top}px`;const l=s.RTL?r.right-i.offsetWidth:r.left,u=r.top;i.style.left=`${l}px`,i.style.top=`${u}px`})}unbindInputEvents_(){this.onKeyDownWrapper_&&(Te.browserEvents.unbind(this.onKeyDownWrapper_),this.onKeyDownWrapper_=null),this.onKeyInputWrapper_&&(Te.browserEvents.unbind(this.onKeyInputWrapper_),this.onKeyInputWrapper_=null)}getClickTarget_(){return this.clickTarget_||this.getSvgRoot()}widgetDispose_(){this.isBeingEdited_=!1,this.isTextValid_=!0,this.forceRerender(),this.onFinishEditing_(this.value_),this.sourceBlock_&&Te.Events.isEnabled()&&this.valueWhenEditorWasOpened_!==null&&this.valueWhenEditorWasOpened_!==this.value_&&(Te.Events.fire(new(Te.Events.get("change"))(this.sourceBlock_,"field",this.name||null,this.valueWhenEditorWasOpened_,this.value_)),this.valueWhenEditorWasOpened_=null),Te.Events.setGroup(!1),this.unbindInputEvents_();const s=Te.WidgetDiv.getDiv().style;s.width="auto",s.height="auto",s.fontSize="",s.transition="",s.boxShadow="",this.htmlInput_=null;const i=this.getClickTarget_();if(!i)throw new Error("A click target has not been set.");Te.utils.dom.removeClass(i,"editing")}showEditor_(s,i){this.workspace_=this.sourceBlock_.workspace,!i&&this.workspace_.options.modalInputs&&(Te.utils.userAgent.MOBILE||Te.utils.userAgent.ANDROID||Te.utils.userAgent.IPAD)?this.showPromptEditor_():this.showInlineEditor_(!!i),this.forceRerender()}widgetCreate_(){const s=Te.WidgetDiv.getDiv(),i=this.workspace_.getScale(),r=this.getConstants();if(!r)throw Error("Constants not found");const l=document.createElement("textarea");l.className="blocklyHtmlInput blocklyHtmlTextAreaInput",l.setAttribute("spellcheck",String(this.spellcheck_));const u=`${r.FIELD_TEXT_FONTSIZE*i}pt`;s.style.fontSize=u,l.style.fontSize=u;const d=`${Te.FieldTextInput.BORDERRADIUS*i}px`;l.style.borderRadius=d;const g=r.FIELD_BORDER_RECT_X_PADDING*i,m=r.FIELD_BORDER_RECT_Y_PADDING*i/2;l.style.padding=`${m}px ${g}px ${m}px ${g}px`;const f=r.FIELD_TEXT_HEIGHT+r.FIELD_BORDER_RECT_Y_PADDING;return l.style.lineHeight=`${f*i}px`,s.appendChild(l),l.value=l.defaultValue=this.getEditorText_(this.value_),l.setAttribute("data-untyped-default-value",String(this.value_)),l.setAttribute("data-old-value",""),Te.utils.userAgent.GECKO?setTimeout(this.resizeEditor_.bind(this),0):this.resizeEditor_(),this.bindInputEvents_(l),l}setMaxLines(s){typeof s=="number"&&s>0&&s!==this.maxLines_&&(this.maxLines_=s,this.forceRerender())}getMaxLines(){return this.maxLines_}onHtmlInputKeyDown_(s){s.key!=="Enter"&&this.onHtmlInputKeyDownSuper_(s)}static fromJson(s){const i=Te.utils.parsing.replaceMessageReferences(s.text);return new this(i,void 0,s)}}Te.Css.register(` +.blocklyHtmlTextAreaInput { + font-family: monospace; + resize: none; + overflow: hidden; + height: 100%; + text-align: left; +} + +.blocklyHtmlTextAreaInputOverflowedY { + overflow-y: scroll; +} +`);/** + * @license + * Copyright 2024 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const vC="text_multiline",R0={type:vC,message0:"%1 %2",args0:[{type:"field_image",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAARCAYAAADpPU2iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAdhgAAHYYBXaITgQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS42/U4J6AAAAP1JREFUOE+Vks0KQUEYhjmRIja4ABtZ2dm5A3t3Ia6AUm7CylYuQRaUhZSlLZJiQbFAyRnPN33y01HOW08z8873zpwzM4F3GWOCruvGIE4/rLaV+Nq1hVGMBqzhqlxgCys4wJA65xnogMHsQ5lujnYHTejBBCK2mE4abjCgMGhNxHgDFWjDSG07kdfVa2pZMf4ZyMAdWmpZMfYOsLiDMYMjlMB+K613QISRhTnITnsYg5yUd0DETmEoMlkFOeIT/A58iyK5E18BuTBfgYXfwNJv4P9/oEBerLylOnRhygmGdPpTTBZAPkde61lbQe4moWUvYUZYLfUNftIY4zwA5X2Z9AYnQrEAAAAASUVORK5CYII=",width:12,height:17,alt:"¶"},{type:"field_multilinetext",name:"TEXT",text:""}],output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_TEXT_HELPURL}",tooltip:"%{BKY_TEXT_TEXT_TOOLTIP}",extensions:["parent_tooltip_when_inline"]};function O0(a,s){const i=s.multiline_quote_(a.getFieldValue("TEXT")),r=i.indexOf("+")!==-1?6.2:0;return[i,r]}const M0=window.Blockly.common.createBlockDefinitionsFromJsonArray([R0]);M0[vC];/** + * @license + * Copyright 2023 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const Oe=window.Blockly;class _g extends Oe.Field{picker=null;highlightedIndex=null;boundEvents=[];SERIALIZABLE=!0;CURSOR="default";isDirty_=!1;colours=["#ffffff","#cccccc","#c0c0c0","#999999","#666666","#333333","#000000","#ffcccc","#ff6666","#ff0000","#cc0000","#990000","#660000","#330000","#ffcc99","#ff9966","#ff9900","#ff6600","#cc6600","#993300","#663300","#ffff99","#ffff66","#ffcc66","#ffcc33","#cc9933","#996633","#663333","#ffffcc","#ffff33","#ffff00","#ffcc00","#999900","#666600","#333300","#99ff99","#66ff99","#33ff33","#33cc00","#009900","#006600","#003300","#99ffff","#33ffff","#66cccc","#00cccc","#339999","#336666","#003333","#ccffff","#66ffff","#33ccff","#3366ff","#3333ff","#000099","#000066","#ccccff","#9999ff","#6666cc","#6633ff","#6600cc","#333399","#330099","#ffccff","#ff99ff","#cc66cc","#cc33cc","#993399","#663366","#330033"];titles=[];columns=7;constructor(s,i,r){super(s),s!==Symbol("SKIP_SETUP")&&(r&&this.configure_(r),this.setValue(s),i&&this.setValidator(i))}configure_(s){super.configure_(s),s.colourOptions&&(this.colours=s.colourOptions),s.colourTitles&&(this.titles=s.colourTitles),s.columns&&(this.columns=s.columns)}initView(){const s=this.getConstants();if(!s)throw Error("Constants not found");this.size_=new Oe.utils.Size(s.FIELD_COLOUR_DEFAULT_WIDTH,s.FIELD_COLOUR_DEFAULT_HEIGHT),this.createBorderRect_(),this.getBorderRect().style.fillOpacity="1",this.getBorderRect().setAttribute("stroke","#fff"),this.isFullBlockField()&&(this.clickTarget_=this.sourceBlock_.getSvgRoot())}isFullBlockField(){if(!this.getSourceBlock())throw new Oe.UnattachedFieldError;const i=this.getConstants();return this.blockIsSimpleReporter()&&!!(i!=null&&i.FIELD_COLOUR_FULL_BLOCK)}blockIsSimpleReporter(){const s=this.getSourceBlock();if(!s)throw new Oe.UnattachedFieldError;if(!s.outputConnection)return!1;for(const i of s.inputList)if(i.connection||i.fieldRow.length>1)return!1;return!0}applyColour(){const s=this.getSourceBlock();if(!s)throw new Oe.UnattachedFieldError;if(!this.fieldGroup_)return;const i=this.borderRect_;if(!i)throw new Error("The border rect has not been initialized");this.isFullBlockField()?(i.style.display="none",s.pathObject.svgPath.setAttribute("fill",this.getValue()),s.pathObject.svgPath.setAttribute("stroke","#fff")):(i.style.display="block",i.style.fill=this.getValue())}getSize(){var s;return(s=this.getConstants())!=null&&s.FIELD_COLOUR_FULL_BLOCK&&(this.render_(),this.isDirty_=!1),super.getSize()}render_(){super.render_();const s=this.getSourceBlock();if(!s)throw new Oe.UnattachedFieldError;s.applyColour()}updateSize_(s){const i=this.getConstants();if(!i)return;let r,l;this.isFullBlockField()?(r=(s??0)*2,l=i.FIELD_TEXT_HEIGHT):(r=i.FIELD_COLOUR_DEFAULT_WIDTH,l=i.FIELD_COLOUR_DEFAULT_HEIGHT),this.size_.height=l,this.size_.width=r,this.positionBorderRect_()}doClassValidation_(s){return typeof s!="string"?null:Oe.utils.colour.parse(s)}getText(){let s=this.value_;return/^#(.)\1(.)\2(.)\3$/.test(s)&&(s=`#${s[1]}${s[3]}${s[5]}`),s}setColours(s,i){return this.colours=s,i&&(this.titles=i),this}setColumns(s){return this.columns=s,this}showEditor_(){if(this.dropdownCreate(),!this.picker)throw Error("Picker not found");Oe.DropDownDiv.getContentDiv().appendChild(this.picker),Oe.DropDownDiv.showPositionedByField(this,this.dropdownDispose.bind(this)),this.picker.focus({preventScroll:!0})}onClick(s){const i=s.target,r=i==null?void 0:i.getAttribute("data-colour");r!==null&&(this.setValue(r),Oe.DropDownDiv.hideIfOwner(this))}onKeyDown(s){let i=!0,r;switch(s.key){case"ArrowUp":this.moveHighlightBy(0,-1);break;case"ArrowDown":this.moveHighlightBy(0,1);break;case"ArrowLeft":this.moveHighlightBy(-1,0);break;case"ArrowRight":this.moveHighlightBy(1,0);break;case"Enter":if(r=this.getHighlighted(),r){const l=r.getAttribute("data-colour");l!==null&&this.setValue(l)}Oe.DropDownDiv.hideWithoutAnimation();break;default:i=!1}i&&s.stopPropagation()}moveHighlightBy(s,i){if(!this.highlightedIndex)return;const r=this.colours,l=this.columns;let u=this.highlightedIndex%l,d=Math.floor(this.highlightedIndex/l);u+=s,d+=i,s<0?u<0&&d>0?(u=l-1,d--):u<0&&(u=0):s>0?u>l-1&&dl-1&&u--:i<0?d<0&&(d=0):i>0&&d>Math.floor(r.length/l)-1&&(d=Math.floor(r.length/l)-1);const g=this.picker.childNodes[d].childNodes[u],m=d*l+u;this.setHighlightedCell(g,m)}onMouseMove(s){const i=s.target,r=i&&Number(i.getAttribute("data-index"));r!==null&&r!==this.highlightedIndex&&this.setHighlightedCell(i,r)}onMouseEnter(){var s;(s=this.picker)==null||s.focus({preventScroll:!0})}onMouseLeave(){var i;(i=this.picker)==null||i.blur();const s=this.getHighlighted();s&&Oe.utils.dom.removeClass(s,"blocklyColourHighlighted")}getHighlighted(){var l;if(!this.highlightedIndex)return null;const s=this.highlightedIndex%this.columns,i=Math.floor(this.highlightedIndex/this.columns),r=(l=this.picker)==null?void 0:l.childNodes[i];return r?r.childNodes[s]:null}setHighlightedCell(s,i){const r=this.getHighlighted();r&&Oe.utils.dom.removeClass(r,"blocklyColourHighlighted"),Oe.utils.dom.addClass(s,"blocklyColourHighlighted"),this.highlightedIndex=i;const l=s.getAttribute("id");l&&this.picker&&Oe.utils.aria.setState(this.picker,Oe.utils.aria.State.ACTIVEDESCENDANT,l)}dropdownCreate(){const s=this.columns,i=this.colours,r=this.getValue(),l=document.createElement("table");l.className="blocklyColourTable",l.tabIndex=0,l.dir="ltr",Oe.utils.aria.setRole(l,Oe.utils.aria.Role.GRID),Oe.utils.aria.setState(l,Oe.utils.aria.State.EXPANDED,!0),Oe.utils.aria.setState(l,Oe.utils.aria.State.ROWCOUNT,Math.floor(i.length/s)),Oe.utils.aria.setState(l,Oe.utils.aria.State.COLCOUNT,s);let u=null;for(let d=0;dtr>td { + border: 0.5px solid #888; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + height: 20px; + padding: 0; + width: 20px; +} + +.blocklyColourTable>tr>td.blocklyColourHighlighted { + border-color: #eee; + box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3); + position: relative; +} + +.blocklyColourSelected, .blocklyColourSelected:hover { + border-color: #eee !important; + outline: 1px solid #333; + position: relative; +} +`);/** + * @license + * Copyright 2024 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const yC="colour_picker",N0={type:yC,message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",helpUrl:"%{BKY_COLOUR_PICKER_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_PICKER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]};function L0(a,s){return[s.quote_(a.getFieldValue("COLOUR")),0]}const B0=window.Blockly.common.createBlockDefinitionsFromJsonArray([N0]);B0[yC];/** + * @license + * Copyright 2024 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const _C="colour_random",P0={type:_C,message0:"%{BKY_COLOUR_RANDOM_TITLE}",output:"Colour",helpUrl:"%{BKY_COLOUR_RANDOM_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RANDOM_TOOLTIP}"};function F0(a,s){return[`${s.provideFunction_("colourRandom",` +function ${s.FUNCTION_NAME_PLACEHOLDER_}() { + var num = Math.floor(Math.random() * 0x1000000); + return '#' + ('00000' + num.toString(16)).substr(-6); +} +`)}()`,2]}const j0=window.Blockly.common.createBlockDefinitionsFromJsonArray([P0]);j0[_C];/** + * @license + * Copyright 2024 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const wC="colour_rgb",z0={type:wC,message0:"%{BKY_COLOUR_RGB_TITLE} %{BKY_COLOUR_RGB_RED} %1 %{BKY_COLOUR_RGB_GREEN} %2 %{BKY_COLOUR_RGB_BLUE} %3",args0:[{type:"input_value",name:"RED",check:"Number",align:"RIGHT"},{type:"input_value",name:"GREEN",check:"Number",align:"RIGHT"},{type:"input_value",name:"BLUE",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_RGB_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RGB_TOOLTIP}"};function U0(a,s){const i=s.valueToCode(a,"RED",99)||0,r=s.valueToCode(a,"GREEN",99)||0,l=s.valueToCode(a,"BLUE",99)||0;return[`${s.provideFunction_("colourRgb",` +function ${s.FUNCTION_NAME_PLACEHOLDER_}(r, g, b) { + r = Math.max(Math.min(Number(r), 100), 0) * 2.55; + g = Math.max(Math.min(Number(g), 100), 0) * 2.55; + b = Math.max(Math.min(Number(b), 100), 0) * 2.55; + r = ('0' + (Math.round(r) || 0).toString(16)).slice(-2); + g = ('0' + (Math.round(g) || 0).toString(16)).slice(-2); + b = ('0' + (Math.round(b) || 0).toString(16)).slice(-2); + return '#' + r + g + b; +} +`)}(${i}, ${r}, ${l})`,2]}const H0=window.Blockly.common.createBlockDefinitionsFromJsonArray([z0]);H0[wC];/** + * @license + * Copyright 2024 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */const CC="colour_blend",W0={type:CC,message0:"%{BKY_COLOUR_BLEND_TITLE} %{BKY_COLOUR_BLEND_COLOUR1} %1 %{BKY_COLOUR_BLEND_COLOUR2} %2 %{BKY_COLOUR_BLEND_RATIO} %3",args0:[{type:"input_value",name:"COLOUR1",check:"Colour",align:"RIGHT"},{type:"input_value",name:"COLOUR2",check:"Colour",align:"RIGHT"},{type:"input_value",name:"RATIO",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_BLEND_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_BLEND_TOOLTIP}"};function G0(a,s){const i=s.valueToCode(a,"COLOUR1",99)||"'#000000'",r=s.valueToCode(a,"COLOUR2",99)||"'#000000'",l=s.valueToCode(a,"RATIO",99)||.5;return[`${s.provideFunction_("colourBlend",` +function ${s.FUNCTION_NAME_PLACEHOLDER_}(c1, c2, ratio) { + ratio = Math.max(Math.min(Number(ratio), 1), 0); + var r1 = parseInt(c1.substring(1, 3), 16); + var g1 = parseInt(c1.substring(3, 5), 16); + var b1 = parseInt(c1.substring(5, 7), 16); + var r2 = parseInt(c2.substring(1, 3), 16); + var g2 = parseInt(c2.substring(3, 5), 16); + var b2 = parseInt(c2.substring(5, 7), 16); + var r = Math.round(r1 * (1 - ratio) + r2 * ratio); + var g = Math.round(g1 * (1 - ratio) + g2 * ratio); + var b = Math.round(b1 * (1 - ratio) + b2 * ratio); + r = ('0' + (r || 0).toString(16)).slice(-2); + g = ('0' + (g || 0).toString(16)).slice(-2); + b = ('0' + (b || 0).toString(16)).slice(-2); + return '#' + r + g + b; +} +`)}(${i}, ${r}, ${l})`,2]}const V0=window.Blockly.common.createBlockDefinitionsFromJsonArray([W0]);V0[CC];function K0(){window.Blockly.FieldMultilineInput||(window.Blockly.fieldRegistry.register("field_multilinetext",tc),window.Blockly.JavaScript.forBlock.text_multiline=O0,window.Blockly.FieldMultilineInput=tc,Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"text_multiline",message0:"%1 %2",args0:[{type:"field_image",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAARCAYAAADpPU2iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAdhgAAHYYBXaITgQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMS42/U4J6AAAAP1JREFUOE+Vks0KQUEYhjmRIja4ABtZ2dm5A3t3Ia6AUm7CylYuQRaUhZSlLZJiQbFAyRnPN33y01HOW08z8873zpwzM4F3GWOCruvGIE4/rLaV+Nq1hVGMBqzhqlxgCys4wJA65xnogMHsQ5lujnYHTejBBCK2mE4abjCgMGhNxHgDFWjDSG07kdfVa2pZMf4ZyMAdWmpZMfYOsLiDMYMjlMB+K613QISRhTnITnsYg5yUd0DETmEoMlkFOeIT/A58iyK5E18BuTBfgYXfwNJv4P9/oEBerLylOnRhygmGdPpTTBZAPkde61lbQe4moWUvYUZYLfUNftIY4zwA5X2Z9AYnQrEAAAAASUVORK5CYII=",width:12,height:17,alt:"¶"},{type:"field_multilinetext",name:"TEXT",text:""}],output:"String",style:"text_blocks",helpUrl:"%{BKY_TEXT_TEXT_HELPURL}",tooltip:"%{BKY_TEXT_TEXT_TOOLTIP}",extensions:["parent_tooltip_when_inline"]}]))),window.Blockly.FieldColour||(window.Blockly.fieldRegistry.register("field_colour",_g),window.Blockly.JavaScript.forBlock.colour_picker=L0,window.Blockly.JavaScript.forBlock.colour_blend=G0,window.Blockly.JavaScript.forBlock.colour_random=F0,window.Blockly.JavaScript.forBlock.colour_rgb=U0,window.Blockly.FieldColour=_g,Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_picker",message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",helpUrl:"%{BKY_COLOUR_PICKER_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_PICKER_TOOLTIP}",extensions:["parent_tooltip_when_inline"]}])),Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_random",message0:"%{BKY_COLOUR_RANDOM_TITLE}",output:"Colour",helpUrl:"%{BKY_COLOUR_RANDOM_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RANDOM_TOOLTIP}"}])),Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_rgb",message0:"%{BKY_COLOUR_RGB_TITLE} %{BKY_COLOUR_RGB_RED} %1 %{BKY_COLOUR_RGB_GREEN} %2 %{BKY_COLOUR_RGB_BLUE} %3",args0:[{type:"input_value",name:"RED",check:"Number",align:"RIGHT"},{type:"input_value",name:"GREEN",check:"Number",align:"RIGHT"},{type:"input_value",name:"BLUE",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_RGB_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_RGB_TOOLTIP}"}])),Object.assign(window.Blockly.Blocks,window.Blockly.common.createBlockDefinitionsFromJsonArray([{type:"colour_blend",message0:"%{BKY_COLOUR_BLEND_TITLE} %{BKY_COLOUR_BLEND_COLOUR1} %1 %{BKY_COLOUR_BLEND_COLOUR2} %2 %{BKY_COLOUR_BLEND_RATIO} %3",args0:[{type:"input_value",name:"COLOUR1",check:"Colour",align:"RIGHT"},{type:"input_value",name:"COLOUR2",check:"Colour",align:"RIGHT"},{type:"input_value",name:"RATIO",check:"Number",align:"RIGHT"}],output:"Colour",helpUrl:"%{BKY_COLOUR_BLEND_HELPURL}",style:"colour_blocks",tooltip:"%{BKY_COLOUR_BLEND_TOOLTIP}"}])))}let Ll=!1,Bl=!1,zp=null,Up=null;const y_=[];function TC(a,s,i,r){var l;if(r=r||[],(a.tagName==="BLOCK"||a.tagName==="block")&&(i=a.id),a.tagName==="FIELD"||a.tagName==="field")for(let u=0;uTC(u,s,i,r)),r}class Pe extends X.Component{blockly=null;blocklyWorkspace=null;originalCode;someSelected=null;changeTimer=null;someSelectedTime=0;ignoreChanges=!1;blinkBlock;onResizeBind;didUpdate=null;lastCommand="";lastSearch;static Blockly=window.Blockly;constructor(s){super(s),this.state={languageOwnLoaded:Bl,languageBlocklyLoaded:Ll,changed:!1,message:"",error:"",themeType:this.props.themeType,exportText:"",importText:!1,searchText:this.props.searchText||"",showInputPrompt:null},this.originalCode=s.code||"",this.someSelected=null,this.onResizeBind=this.onResize.bind(this),this.lastSearch=this.props.searchText||"",this.blinkBlock=null,K0(),Pe.Blockly.dialog.setPrompt(this.onShowNameDialog),this.loadLanguages()}onShowNameDialog=(s,i,r)=>{this.setState({showInputPrompt:{promptText:s,defaultText:i,callback:r,value:i}})};static loadJS(s,i,r){const l=document.createElement("script");try{l.src=s,l.onload=i,l.onerror=i,(r||window.document.body).appendChild(l)}catch(u){console.error(`Cannot load ${s}: ${u}`),i&&i()}}static loadScripts(s,i){if(!(s!=null&&s.length)){i&&i();return}const r=s.pop();r&&!y_.includes(r)?(y_.push(r),Pe.loadJS(`../../adapter/${r}/blockly.js`,()=>setTimeout(()=>Pe.loadScripts(s,i),0))):setTimeout(()=>Pe.loadScripts(s,i),0)}static loadCustomBlockly(s,i){var l;const r=[];for(const u in s)!Object.prototype.hasOwnProperty.call(s,u)||!s[u]||!u.match(/^system\.adapter\./)||s[u].type!=="adapter"||(l=s[u].common)!=null&&l.blockly&&(console.log(`Detected custom blockly: ${s[u].common.name}`),r.push(s[u].common.name));Pe.loadScripts(r,i)}static loadXMLDoc(s){let i;return window.DOMParser?i=r=>new window.DOMParser().parseFromString(r,"text/xml"):typeof window.ActiveXObject<"u"&&new window.ActiveXObject("Microsoft.XMLDOM")?i=r=>{const l=new window.ActiveXObject("Microsoft.XMLDOM");return l.async="false",l.loadXML(r),l}:i=()=>null,i(s)}searchBlocks(s){if(this.blocklyWorkspace){const i=Pe.Blockly.Xml.workspaceToDom(this.blocklyWorkspace),r=TC(i,s.toLowerCase());return console.log(`Search "${s}" found blocks: ${r.length?JSON.stringify(r):"none"}`),r}return[]}searchId(){const s=this.lastSearch?this.searchBlocks(this.lastSearch):null;s!=null&&s.length?(this.someSelected=s,this.someSelected.forEach(i=>{var r;return(r=this.blocklyWorkspace)==null?void 0:r.highlightBlock(i,!0)}),this.someSelectedTime=Date.now()):this.someSelected&&(this.someSelected.forEach(i=>{var r;return(r=this.blocklyWorkspace)==null?void 0:r.highlightBlock(i,!1)}),this.someSelected=null)}UNSAFE_componentWillReceiveProps(s){s.command&&this.lastCommand!==s.command&&(this.lastCommand=s.command,setTimeout(()=>this.lastCommand="",300),this.lastCommand==="check"?this.blocklyCheckBlocks((i,r)=>{i?(r&&Pe.blocklyBlinkBlock(r),this.setState({error:{text:b.I18n.t(i),title:b.I18n.t("Error was found")}}),this.blinkBlock=r):this.setState({message:b.I18n.t("Ok")})}):this.lastCommand==="export"?this.exportBlocks():this.lastCommand==="import"&&this.importBlocks()),s.searchText!==this.lastSearch&&(this.lastSearch=s.searchText,this.searchId()),this.state.themeType!==s.themeType&&this.setState({themeType:s.themeType},()=>this.updateBackground()),this.originalCode!==s.code&&(this.originalCode=s.code||"",this.loadCode(),this.searchId())}loadLanguages(){if(!Ll){const s=window.document.createElement("script");s.setAttribute("type","text/javascript"),s.setAttribute("src",`google-blockly/msg/js/${b.I18n.getLanguage()}.js`),s.onload=()=>{Ll=!0,this.setState({languageBlocklyLoaded:Ll})},window.document.getElementsByTagName("head")[0].appendChild(s)}if(!Bl){const s=window.document.createElement("script");s.setAttribute("type","text/javascript"),s.setAttribute("src",`google-blockly/own/msg/${b.I18n.getLanguage()}.js`),s.onload=()=>{Bl=!0,this.setState({languageOwnLoaded:Bl})},window.document.getElementsByTagName("head")[0].appendChild(s)}}onResize(){this.blocklyWorkspace&&Pe.Blockly.svgResize(this.blocklyWorkspace)}static jsCode2Blockly(s){s=s||"";const i=s.split(/[\r\n]+|\r|\n/g);let r="";for(let u=i.length-1;u>=0;u--)if(i[u].substring(0,2)==="//"){r=i[u].substring(2);break}if(r.substring(0,4)==="s.select(),i),setTimeout(()=>s.unselect(),i+150)}blocklyRemoveOrphanedShadows(){if(this.blocklyWorkspace){const s=this.blocklyWorkspace.getAllBlocks();let i;for(let r=0;i=s[r];r++)if(i.isShadow()){const l=i.getConnections_(!0);let u;for(let d=0;u=l[d];d++)if(!u.targetConnection){i.dispose();break}}}}blocklyCheckBlocks(s){let i;if(!this.blocklyWorkspace||this.blocklyWorkspace.getAllBlocks().length===0)return s&&s("no blocks found"),!1;let r=this.blocklyGetUnconnectedBlock();return r?i="not properly connected":(r=this.blocklyGetBlockWithWarning(),r&&(i="warning on this block")),r?(s?s(i,r):Pe.blocklyBlinkBlock(r),!1):(s(),!0)}blocklyGetUnconnectedBlock(){var r;const s=(r=this.blocklyWorkspace)==null?void 0:r.getAllBlocks();let i;if(s)for(let l=0;i=s[l];l++){const u=i.getConnections_(!0);let d;for(let g=0;d=u[g];g++)if(!d.sourceBlock_||(d.type===Pe.Blockly.INPUT_VALUE||d.type===Pe.Blockly.OUTPUT_VALUE)&&!d.targetConnection&&!d._optional)return i}return null}blocklyGetBlockWithWarning(){var r;const s=(r=this.blocklyWorkspace)==null?void 0:r.getAllBlocks();let i;if(s){for(let l=0;i=s[l];l++)if(i.warning)return i}return null}blocklyCode2JSCode(s){if(!this.blocklyWorkspace)return"";let i=Pe.Blockly.JavaScript.workspaceToCode(this.blocklyWorkspace);if(!s){i+=` +`;const r=Pe.Blockly.Xml.workspaceToDom(this.blocklyWorkspace),l=Pe.Blockly.Xml.domToText(r);i+=`//${btoa(encodeURIComponent(l))}`}return i}exportBlocks(){if(!this.blocklyWorkspace)return;let s;const i=Pe.Blockly.getSelected();if(i){const r=Pe.Blockly.Xml.blockToDom(i),l=i.getRelativeToSurfaceXY();r.setAttribute("x",(i.RTL?-l.x:l.x).toString()),r.setAttribute("y",l.y.toString()),s=Pe.Blockly.Xml.domToPrettyText(r)}else{const r=Pe.Blockly.Xml.workspaceToDom(this.blocklyWorkspace);s=Pe.Blockly.Xml.domToPrettyText(r)}this.setState({exportText:s})}importBlocks(){this.setState({importText:!0})}onImportBlocks(s){if(this.blocklyWorkspace&&(s=(s||"").trim(),s))try{s.startsWith("${s}`),s=s.replace(/[\n\r]/g,"").replace(/.*<\/variables>/g,""),window.scripts.loading=!0;const i=Pe.Blockly.utils.xml.textToDom(s);if(i.nodeName==="xml")for(let r=0;r';window.scripts.loading=!0;const i=Pe.Blockly.utils.xml.textToDom(s);Pe.Blockly.Xml.domToWorkspace(i,this.blocklyWorkspace),window.scripts.loading=!1}catch(s){console.error(s),setTimeout(()=>this.setState({error:b.I18n.t("Cannot extract Blockly code!")}))}setTimeout(()=>this.ignoreChanges=!1,100)}}onBlocklyChanged(){this.blocklyRemoveOrphanedShadows(),this.setState({changed:!0}),this.onChange()}async componentDidUpdate(){if(!this.blockly||(this.didUpdate&&(clearTimeout(this.didUpdate),this.didUpdate=null),this.blocklyWorkspace))return;window.addEventListener("resize",this.onResizeBind,!1),zp=zp||await this.getToolbox(),Up=Up||Pe.Blockly.utils.xml.textToDom(zp),this.blocklyWorkspace=Pe.Blockly.inject(this.blockly,{renderer:"thrasos",theme:this.state.themeType==="dark"?v_:"classic",media:"google-blockly/media/",toolbox:Up,zoom:{controls:!0,wheel:!1,startScale:1,maxScale:3,minScale:.3,scaleSpeed:1.2,pinch:!0},move:{scrollbars:{horizontal:!0,vertical:!0},drag:!0,wheel:!0},trashcan:!0,grid:{spacing:25,length:1,snap:!0},sounds:!1}),window.scripts={blocklyWorkspace:this.blocklyWorkspace},this.blocklyWorkspace.registerToolboxCategoryCallback("PROCEDURE",window.Blockly.Procedures.flyoutCategoryNew),this.blocklyWorkspace.addChangeListener(i=>{var r;if(this.someSelected&&Date.now()-this.someSelectedTime>500){const l=(r=this.blocklyWorkspace)==null?void 0:r.getAllBlocks();this.someSelected=null,l==null||l.forEach(u=>u.removeSelect())}[Pe.Blockly.Events.UI,Pe.Blockly.Events.CREATE,Pe.Blockly.Events.VIEWPORT_CHANGE].includes(i.type)||this.ignoreChanges||(this.changeTimer&&clearTimeout(this.changeTimer),this.changeTimer=setTimeout(()=>{this.changeTimer=null,this.onBlocklyChanged()},200))}),this.loadCode(),this.onResize();const s=document.getElementsByClassName("blocklyToolboxDiv")[0];this.blockly.appendChild(s),this.updateBackground(),setTimeout(()=>this.searchId(),200)}updateBackground(){var s;this.state.themeType==="dark"?(s=this.blocklyWorkspace)==null||s.setTheme(v_):this.blocklyWorkspace&&(this.blocklyWorkspace.getThemeManager(),this.blocklyWorkspace.setTheme(Pe.Blockly.Themes.Classic))}componentWillUnmount(){this.blocklyWorkspace&&(this.blocklyWorkspace.dispose(),this.blocklyWorkspace=null,this.changeTimer&&clearTimeout(this.changeTimer),this.changeTimer=null,window.removeEventListener("resize",this.onResizeBind))}onChange(){this.originalCode=this.blocklyCode2JSCode(),this.props.onChange&&this.props.onChange(this.originalCode)}async getToolbox(s){const i=window.document.getElementById("toolbox");let r=i==null?void 0:i.outerHTML;if(!r)return s?(console.error("Cannot load blocks!"),""):new Promise(l=>{setTimeout(()=>l(this.getToolbox(!0)),500)});if(r=r.replace(/{(\w+)}/g,(l,u)=>window.MSG[u]),window.Blockly.CustomBlocks){let l="";const u=b.I18n.getLanguage();for(let d=0;d`;for(const f in m.blocks)Object.prototype.hasOwnProperty.call(m.blocks,f)&&(l+=m.blocks[f]);l+=""}r=r.replace("%%CUSTOM_BLOCKS%%",l)}return r}renderMessageDialog(){return this.state.message?p.jsx(b.Message,{text:typeof this.state.message=="object"?this.state.message.text:this.state.message,title:typeof this.state.message=="object"?this.state.message.title:"",onClose:()=>this.setState({message:""})},"dialogMessage"):null}renderErrorDialog(){return this.state.error?p.jsx(kc,{text:typeof this.state.error=="object"?this.state.error.text.toString():this.state.error,title:typeof this.state.error=="object"?this.state.error.title:"",onClose:()=>{this.blinkBlock&&(Pe.blocklyBlinkBlock(this.blinkBlock),this.blinkBlock=null),this.setState({error:""})}},"dialogError"):null}renderExportDialog(){return this.state.exportText?p.jsx(A0,{themeType:this.state.themeType,onClose:()=>this.setState({exportText:""}),text:this.state.exportText,scriptId:this.props.scriptId},"dialogExport"):null}renderImportDialog(){return this.state.importText?p.jsx(tm,{themeType:this.props.themeType,onClose:s=>{this.setState({importText:!1}),this.onImportBlocks(s)}},"dialogImport"):null}renderDialogPrompt(){return this.state.showInputPrompt?p.jsxs(y.Dialog,{onClose:()=>{var i;const s=(i=this.state.showInputPrompt)==null?void 0:i.callback;s&&s(null),this.setState({showInputPrompt:null})},maxWidth:"sm",fullWidth:!0,open:!0,children:[p.jsx(y.DialogTitle,{children:this.state.showInputPrompt.promptText}),p.jsx(y.DialogContent,{children:p.jsx(y.TextField,{variant:"standard",fullWidth:!0,value:this.state.showInputPrompt.value,onKeyUp:s=>{var i,r;if(s.key==="Enter"){const l=(i=this.state.showInputPrompt)==null?void 0:i.callback,u=(r=this.state.showInputPrompt)==null?void 0:r.value;l&&l(u===void 0?null:u),this.setState({showInputPrompt:null})}},onChange:s=>{var r,l;const i={...this.state.showInputPrompt};(r=this.state.showInputPrompt)!=null&&r.callback&&(i.callback=(l=this.state.showInputPrompt)==null?void 0:l.callback),i.value=s.target.value,this.setState({showInputPrompt:i})}})}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{variant:"contained",disabled:!this.state.showInputPrompt.value,onClick:()=>{var r,l;const s=(r=this.state.showInputPrompt)==null?void 0:r.callback,i=(l=this.state.showInputPrompt)==null?void 0:l.value;s&&s(i===void 0?null:i),this.setState({showInputPrompt:null})},color:"primary",startIcon:p.jsx(di,{}),children:b.I18n.t("Apply")}),p.jsx(y.Button,{color:"grey",variant:"contained",onClick:()=>{var i;const s=(i=this.state.showInputPrompt)==null?void 0:i.callback;s&&s(null),this.setState({showInputPrompt:null})},startIcon:p.jsx(lo,{}),children:b.I18n.t("Close")})]})]},"inputDialog"):null}render(){return this.state.languageBlocklyLoaded&&this.state.languageOwnLoaded?(this.didUpdate=setTimeout(()=>{this.didUpdate=null,this.componentDidUpdate()},100),[p.jsx("div",{ref:s=>this.blockly=s,style:{width:"100%",height:"100%",position:"relative"}},"blocklyDOM"),this.renderDialogPrompt(),this.renderMessageDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.renderImportDialog()]):null}}const Y0=Object.freeze(Object.defineProperty({__proto__:null,default:Pe},Symbol.toStringTag,{value:"Module"})),J0="_nameCard_15el3_28",X0="_iconThemCard_15el3_40",q0="_iconThemCardSelectable_15el3_49",Z0="_iconHelp_15el3_53",Q0="_blockName_15el3_64",eA="_controlMenuTop_15el3_123",tA="_debugInfo_15el3_132",sA="_tagCard_15el3_142",oA="_displayFlex_15el3_161",iA="_blockMarginTop_15el3_166",nA="_nameBlock_15el3_167",rA="_frontText_15el3_171",aA="_backText_15el3_177",lA="_iconTag_15el3_181",cA="_displayItalic_15el3_191",ue={nameCard:J0,iconThemCard:X0,iconThemCardSelectable:q0,iconHelp:Z0,blockName:Q0,controlMenuTop:eA,debugInfo:tA,tagCard:sA,displayFlex:oA,blockMarginTop:iA,nameBlock:nA,frontText:rA,backText:aA,iconTag:lA,displayItalic:cA},uA="_root_1dr6a_1",dA="_square_1dr6a_11",hA="_icon_1dr6a_16",Hp={root:uA,square:dA,icon:hA},Sr=({fullWidth:a,size:s,onClick:i,style:r,className:l,value:u,square:d,icon:g})=>p.jsx(y.Button,{variant:"outlined",color:"primary",onClick:i,fullWidth:a,style:r,className:b.Utils.clsx(Hp.root,l,d?Hp.square:""),size:s||"medium",children:g?p.jsx(b.Icon,{className:Hp.icon,src:g}):u}),pA="_root_1ucda_1",gA={root:pA},mA=({size:a,value:s,title:i,onChange:r,className:l,customValue:u,disabled:d})=>{const[g,m]=V.useState(!1);return p.jsxs(p.Fragment,{children:[p.jsx(y.Checkbox,{disabled:d,checked:!!(u?s:g),className:b.Utils.clsx(gA.root,l),onChange:f=>{u&&m(f.target.checked),r&&r(f.target.checked)},size:a||"medium"}),i||null]})},kC=V.memo(mA),fA="_root_19roy_1",__={root:fA},ni=a=>{const[s,i]=V.useState(""),{value:r,type:l,error:u,className:d,icon:g,label:m,style:f,onChange:v,fullWidth:w,autoComplete:_,customValue:S,autoFocus:k,rows:C,size:E,variant:A,multiline:R,disabled:O}=Object.assign({value:"",type:"text",error:"",className:null,table:!1,native:{},variant:"standard",size:"medium",component:null,styleComponentBlock:null,fullWidth:!1,autoComplete:"",customValue:!1,autoFocus:!1,rows:1},a);return p.jsx(y.TextField,{error:!!u,autoFocus:k,fullWidth:w,label:m,disabled:O,variant:A,multiline:R,rows:C,value:S?r:s,type:l,helperText:u,style:f,className:b.Utils.clsx(__.root,d),autoComplete:_,onChange:Z=>{!S&&i(Z.target.value),v&&v(Z.target.value)},slotProps:{input:{endAdornment:g?p.jsx(y.InputAdornment,{position:"end",children:p.jsx(b.Icon,{className:__.icon,src:g})}):null}},margin:"normal",size:E})},$A={formControl:{m:"10px 0","& .MuiFormControl-marginNormal":{mt:0,mb:0},"& > *":{color:"#2d0440 !important"},"& .MuiSelect-icon":{color:"#81688c"},"& label.Mui-focused":{color:"#81688c"},"& .MuiInput-underline:after":{borderBottomColor:"#510573"},"& .MuiInput-underline:before":{borderBottomColor:"#81688c"},"& .MuiInput-underline:hover:before":{borderBottomColor:"#81688c"}}},bA=({multiple:a,value:s,customValue:i,socket:r,title:l,attr:u,adapter:d,style:g,onChange:m,onInstanceHide:f})=>{const[v,w]=V.useState(s||"test1"),[_,S]=V.useState([]);return V.useEffect(()=>{r==null||r.getAdapterInstances(d).then(k=>{const C=k.map(E=>({value:E._id.replace("system.adapter.",""),title:E._id.replace("system.adapter.","")}));C.length===1?f(C[0].value):C.unshift({value:d,title:b.I18n.t("All")}),S(C)})},[r,d,f]),p.jsxs(y.FormControl,{sx:$A.formControl,fullWidth:!0,style:g,children:[p.jsx(y.Select,{variant:"standard",value:(i?s:v)||"_",fullWidth:!0,multiple:a,renderValue:k=>a&&Array.isArray(k)?k.join(", "):k,onChange:k=>{!i&&w(k.target.value),m(k.target.value)},input:u?p.jsx(y.Input,{name:u,id:`${u}-helper`}):p.jsx(y.Input,{name:u}),children:_.map(k=>p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:k.value||"_",children:b.I18n.t(k.title)},`key-${k.value}`))}),l?p.jsx(y.FormHelperText,{children:b.I18n.t(l)}):null]})},vA="_modalWrapper_587ci_33",yA="_modalDialog_587ci_40",w_={modalWrapper:vA,modalDialog:yA},wg=({onClose:a,children:s,titleButtonApply:i,titleButtonClose:r,onApply:l,className:u,textInput:d,defaultValue:g,disabled:m})=>{const[f,v]=V.useState(g||""),[w]=V.useState(g||"");return p.jsxs(y.Dialog,{open:!0,maxWidth:"md",disableEscapeKeyDown:!1,onClose:a,classes:{paper:w_.modalDialog},className:w_.modalWrapper,children:[p.jsxs(y.DialogContent,{children:[d&&p.jsx(ni,{className:u,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"medium",rows:10,multiline:!0,value:f,onChange:v,customValue:!0}),!d&&s]}),p.jsxs(y.DialogActions,{children:[p.jsx(y.Button,{disabled:m===void 0?w===f:m,onClick:()=>l(d?f:null),variant:"contained",color:"primary",children:b.I18n.t(i||"Ok")}),p.jsx(y.Button,{color:"grey",onClick:a,variant:"contained",children:b.I18n.t(r||"Cancel")})]})]})},_A="_root_15mo1_1",wA={root:_A},CA=({multiple:a,value:s,customValue:i,title:r,attr:l,options:u,style:d,onChange:g,className:m,doNotTranslate:f,doNotTranslate2:v})=>{const[w,_]=V.useState(s===void 0?u[0].value:s),S=i?s:w,k=S===""||S===null||S===void 0?"_":S;return p.jsxs(y.FormControl,{variant:"standard",className:b.Utils.clsx(wA.root,m),fullWidth:!0,style:d,children:[p.jsxs(y.Select,{variant:"standard",value:k,fullWidth:!0,multiple:a,renderValue:C=>{if(a&&Array.isArray(C)){C.sort();let A=C.indexOf("0");A!==-1&&(C.splice(A,1),C.push("0")),A=C.indexOf("_"),A!==-1&&(C.splice(A,1),C.unshift("_"));const R=u.find(Z=>Z.only);return R&&C.includes(R.value)?R.titleShort?f?R.titleShort:b.I18n.t(R.titleShort):f?R.title:b.I18n.t(R.title):C.map(Z=>u.find(ae=>ae.value===Z||Z==="_"&&ae.value==="")||Z).map(Z=>typeof Z=="object"?Z.titleShort?f?Z.titleShort:b.I18n.t(Z.titleShort):f?Z.title:b.I18n.t(Z.title):f?Z:b.I18n.t(Z)).join(", ")}const E=u?u.find(A=>A.value===C||C==="_"&&A.value===""):null;return E!=null&&E.title?f?E==null?void 0:E.title:b.I18n.t(E==null?void 0:E.title):C},onChange:C=>{if(i||_(C.target.value),a){const E=C.target.value,A=u.find(R=>R.only);if(A){const R=A.value;if(E.length===u.length-1&&E.includes(R))return g(E.filter(O=>O!==R),l);if(E.includes(R))return g(u.map(O=>O.value),l)}}g(C.target.value,l)},input:l?p.jsx(y.Input,{name:l,id:`${l}-helper`}):p.jsx(y.Input,{name:l}),children:[!a&&(u==null?void 0:u.map(C=>p.jsxs(y.MenuItem,{style:{placeContent:"space-between"},value:C.value===""||C.value===null||C.value===void 0?"_":C.value,children:[f?C.title:b.I18n.t(C.title),C.title2&&p.jsx("div",{children:v?C.title2:b.I18n.t(C.title2)})]},`key-${C.value}`))),a&&(u==null?void 0:u.map(C=>p.jsxs(y.MenuItem,{style:{placeContent:"space-between"},value:C.value||"_",children:[f?C.title:b.I18n.t(C.title)," ",p.jsx(kC,{customValue:!0,value:s==null?void 0:s.includes(C.value)})]},`key-${C.value}`)))]}),r?p.jsx(y.FormHelperText,{children:b.I18n.t(r)}):null]})},TA="_root_1gt4d_1",kA="_mark_1gt4d_27",C_={root:TA,mark:kA},SA=({size:a,value:s,style:i,onChange:r,className:l,customValue:u,min:d,max:g,step:m,unit:f})=>{const[v,w]=V.useState(0);d=d!==void 0?d:0,g=g!==void 0?g:0,m=m!==void 0?m:(g-d)/100;const _=[{value:d,label:d+(f||"")},{value:g,label:g+(f||"")}];return p.jsx(y.Slider,{defaultValue:u?s:v,"aria-labelledby":"discrete-slider",valueLabelDisplay:"auto",classes:{mark:C_.mark},marks:_,step:m,min:d,max:g,value:u?s:v,style:i,className:b.Utils.clsx(C_.root,l),onChange:(S,k)=>{Array.isArray(k)?(!u&&w(k[0]),r(k[0])):(!u&&w(k),r(k))},size:a||"medium"})},EA="_root_rzul6_1",IA={root:EA},xA=({label:a,size:s,value:i,style:r,onChange:l,className:u,customValue:d})=>{const[g,m]=V.useState(!1);return p.jsx(y.FormControlLabel,{className:IA.root,control:p.jsx(y.Switch,{checked:d?i:g,style:r,className:u,onChange:f=>{d||m(f.target.checked),l(f.target.checked)},size:s||"medium"}),label:a??"all"})},DA=V.memo(xA),AA="_root_135pm_1",RA={root:AA},OA=({value:a,style:s,onChange:i,className:r})=>p.jsx(y.TextField,{variant:"standard",id:"time",type:"time",onChange:l=>i(l.currentTarget.value),value:a,className:b.Utils.clsx(RA.root,r),fullWidth:!0,style:s,slotProps:{htmlInput:{step:300},inputLabel:{shrink:!0}}}),MA="_root_135pm_1",Pl={root:MA},Wp=[31,29,31,30,31,30,31,31,30,31,30,31],NA=({value:a,onChange:s,className:i,style:r})=>{const[l,u]=(a||"01.01").toString().split(".");let d=parseInt(u,10)||0,g=parseInt(l,10)||0;g>12?g=12:g<0&&(g=0),d>Wp[g]?d=Wp[g]:d<0&&(d=0);const m=[];for(let f=0;fs(`${f.target.value.toString().padStart(2,"0")}.${d.toString().padStart(2,"0")}`),value:g,children:[p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:0,children:b.I18n.t("Any month")},0),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:1,children:b.I18n.t("January")},1),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:2,children:b.I18n.t("February")},2),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:3,children:b.I18n.t("March")},3),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:4,children:b.I18n.t("April")},4),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:5,children:b.I18n.t("May")},5),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:6,children:b.I18n.t("June")},6),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:7,children:b.I18n.t("July")},7),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:8,children:b.I18n.t("August")},8),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:9,children:b.I18n.t("September")},9),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:10,children:b.I18n.t("October")},10),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:11,children:b.I18n.t("November")},11),p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:12,children:b.I18n.t("December")},12)]})}),p.jsx(y.FormControl,{variant:"standard",className:b.Utils.clsx(Pl.root,i),style:r,children:p.jsxs(y.Select,{variant:"standard",className:b.Utils.clsx(Pl.root,i),margin:"dense",label:b.I18n.t("Date"),onChange:f=>s(`${g.toString().padStart(2,"0")}.${f.target.value.toString().padStart(2,"0")}`),value:d,children:[p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:0,children:b.I18n.t("Any")},"A"),m.map(f=>p.jsx(y.MenuItem,{style:{placeContent:"space-between"},value:f,children:f},f))]})})]})},Gp={},LA={Shuffle:ZE,Apps:WE,Functions:YE,Language:lk,AddBox:HE,Pause:JE,Subject:eI,PlayForWork:qE,Brightness3:GE,HelpOutline:fw,Storage:QE,AccessTime:UE,PlayArrow:XE,FlashOn:KE};function T_({iconName:a,className:s,adapter:i,socket:r,onClick:l,style:u}){const[d,g]=V.useState("");if(V.useEffect(()=>{i&&r&&(Gp[i]instanceof Promise||(Gp[i]=r.getObject(`system.adapter.${i}`)),Gp[i].then(f=>{var v;return((v=f==null?void 0:f.common)==null?void 0:v.icon)&&g(`../../adapter/${i}/${f.common.icon}`)}))},[i,r]),i)return p.jsx("img",{onClick:f=>l&&l(f),src:d||"",className:s,style:u,alt:""});const m=a&&LA[a]||ck;return p.jsx(m,{className:s,style:u,onClick:f=>l&&l(f)})}let Vp;function BA(a){return Vp=Vp||b.I18n.getLanguage(),a&&typeof a=="object"?a[Vp]||a.en:a||""}function hn(a){return a===null?"null":a===void 0?"undefined":Array.isArray(a)?a.join(", "):typeof a=="object"?JSON.stringify(a):a.toString()}class Xe extends V.Component{debugHideTimeout=null;lastObjectIdChange=0;enableSimulationProcessing=!1;lastDebugMessage=0;debugMessageTimeout=null;static getStaticData(){return{acceptedBy:"actions",name:"Not found",id:"ActionEmpty",icon:"Shuffle"}}static compile(s,i){return""}constructor(s,i){super(s),i||={};const r=s.settings||{tagCard:i.tagCardArray?typeof i.tagCardArray[0]!="string"?i.tagCardArray[0].title:i.tagCardArray[0]:""};!r.tagCard&&i.tagCardArray&&(r.tagCard=typeof i.tagCardArray[0]!="string"?i.tagCardArray[0].title:i.tagCardArray[0]),this.state={inputs:i.inputs||s.inputs||[],name:i.name||s.name||"",icon:i.icon||s.icon||"",adapter:i.adapter||s.adapter||"",helpDialog:i.helpDialog||s.helpDialog||"",tagCardArray:i.tagCardArray||[],openTagMenu:!1,openModal:!1,iconTag:!1,error:"",helpText:"",instanceSelectionOptions:[],instanceSelectionDef:"",hideAttributes:[],settings:r,debugMessage:null,enableSimulation:this.props.enableSimulation}}componentWillUnmount(){this.debugMessageTimeout&&(clearTimeout(this.debugMessageTimeout),this.debugMessageTimeout=null),this.debugHideTimeout&&(clearTimeout(this.debugHideTimeout),this.debugHideTimeout=null)}onTagChange(s,i,r,l,u){let d=!1;const g=JSON.parse(JSON.stringify(this.state.settings));this.state.inputs.forEach(m=>{const f=m.attr,v=m.defaultValue;f&&v!==void 0&&g[f]===void 0&&(d=!0,g[f]=v)}),d?(this.setState({settings:g},()=>i==null?void 0:i()),this.props.onChange(g)):i&&i()}onUpdate(){}onValueChanged(s,i){}renderText(s,i,r){const{className:l}=this.props,{attr:u,frontText:d,backText:g,nameBlock:m,name:f,doNotTranslate:v,doNotTranslateBack:w}=s;return p.jsxs(V.Fragment,{children:[p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),children:[d&&p.jsx("div",{className:ue.frontText,children:v?d:b.I18n.t(d)}),p.jsx(ni,{className:l,autoComplete:"off",label:BA(f),variant:"outlined",size:"small",fullWidth:!0,value:i,onChange:r,customValue:!0}),g&&p.jsx("div",{className:ue.backText,children:w?g:b.I18n.t(g)})]}),m&&p.jsx("div",{className:ue.nameBlock,children:b.I18n.t(m)})]},u)}renderSwitch(s,i,r){const{className:l}=this.props,{attr:u,frontText:d,backText:g,nameBlock:m,doNotTranslate:f,doNotTranslateBack:v}=s;return p.jsxs("div",{children:[p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),children:[d&&p.jsx("div",{className:ue.frontText,children:f?d:b.I18n.t(d)}),p.jsx(DA,{className:l,label:"",customValue:!0,value:i,onChange:r}),g&&p.jsx("div",{className:ue.backText,children:v?g:b.I18n.t(g)})]}),m&&p.jsx("div",{className:ue.nameBlock,children:b.I18n.t(m)})]},u)}renderNameText({attr:s,signature:i,doNotTranslate:r,defaultValue:l},u){return p.jsx("div",{className:b.Utils.clsx(i?ue.displayItalic:ue.displayFlex,ue.blockMarginTop),children:u?r?u:b.I18n.t(u):r?l:b.I18n.t(l)},s)}renderNumber(s,i,r){const{className:l}=this.props,{settings:u}=this.state,{attr:d,backText:g,frontText:m,openCheckbox:f,doNotTranslate:v,doNotTranslateBack:w}=s;let _=!0;return f&&(_=typeof u.offset=="boolean"?u.offset:!0),_?p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),children:[m&&p.jsx("div",{className:ue.frontText,children:v?m:b.I18n.t(m)}),p.jsx(ni,{className:b.Utils.clsx(l,s.className),fullWidth:!0,autoComplete:"off",label:s.noHelperText?"":"number",variant:"outlined",size:"small",type:"number",value:i,onChange:r,customValue:!0}),g&&p.jsx("div",{className:ue.backText,children:w?g:b.I18n.t(g)})]},d):null}renderColor(s,i,r){const{className:l}=this.props,{attr:u,backText:d,frontText:g,doNotTranslate:m,doNotTranslateBack:f}=s;return p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),children:[g&&p.jsx("div",{className:ue.frontText,children:m?g:b.I18n.t(g)}),p.jsx(ni,{className:l,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",type:"color",value:i,onChange:r}),d&&p.jsx("div",{className:ue.backText,children:f?d:b.I18n.t(d)})]},u)}renderCheckbox(s,i,r){const{className:l}=this.props,{settings:u}=this.state,{attr:d,backText:g,frontText:m,defaultValue:f,doNotTranslate:v,doNotTranslateBack:w}=s;return p.jsxs("div",{className:ue.displayFlex,children:[m&&p.jsx("div",{className:ue.frontText,children:v?m:b.I18n.t(m)}),p.jsx(kC,{className:l,size:"small",value:typeof u[d]=="boolean"?!!u[d]:!!f,customValue:!0,onChange:r}),g&&p.jsx("div",{onClick:()=>r(typeof u[d]=="boolean"?!u[d]:!f),className:ue.backText,children:w?g:b.I18n.t(g)})]},d)}renderSlider(s,i,r){const{className:l}=this.props,{attr:u,frontText:d,backText:g,nameBlock:m,min:f,max:v,step:w,unit:_,doNotTranslate:S,doNotTranslateBack:k}=s;return p.jsxs("div",{children:[p.jsxs("div",{className:ue.displayFlex,style:{marginRight:20},children:[d&&p.jsx("div",{className:ue.frontText,children:S?d:b.I18n.t(d)}),p.jsx(SA,{customValue:!0,min:f,max:v,step:w,unit:_,className:l,autoComplete:"off",label:"number",variant:"outlined",size:"small",value:i,onChange:C=>{console.log(C),r(C)}}),g&&p.jsx("div",{style:{marginLeft:20},className:ue.backText,children:k?g:b.I18n.t(g)})]}),m&&p.jsx("div",{className:ue.nameBlock,children:b.I18n.t(m)})]},u)}renderButton(s,i,r){const{className:l}=this.props,{attr:u,frontText:d,backText:g,doNotTranslate:m,doNotTranslateBack:f}=s;return p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),children:[d&&p.jsx("div",{className:ue.frontText,children:m?d:b.I18n.t(d)}),p.jsx(Sr,{fullWidth:!0,value:i.toString(),className:l,onClick:()=>r(i)}),g&&p.jsx("div",{className:ue.backText,children:f?g:b.I18n.t(g)})]},u)}async findIcon(s){var i;if(!s)return null;if((i=s.common)!=null&&i.icon)return b.getSelectIdIcon(s,"../..");if(s.type==="state"||s.type==="channel"){const r=s._id.split(".");r.pop();const l=r.join(".");try{const u=await this.props.socket.getObject(l);return await this.findIcon(u)}catch{return null}}return null}renderObjectID(s,i,r){const{attr:l,openCheckbox:u,checkReadOnly:d}=s,{settings:g}=this.state,m=this.state[`showSelectId${l}`],{className:f,socket:v,style:w}=this.props;let _=!0;u&&(_=typeof g.offset=="boolean"?g.offset:!0);const S=g[l],k=S?this.state[S]:void 0;return S&&!k&&k!==!1&&setTimeout(async C=>{var O;const E=await v.getObject(i),A=await this.findIcon(E),R={[C]:E||!1,[`${C}___icon`]:A,error:d&&this.lastObjectIdChange&&Date.now()-this.lastObjectIdChange<1e3&&((O=E==null?void 0:E.common)==null?void 0:O.write)===!1?b.I18n.t("Read only ID selected: %s",g[C]):""};this.setState(R)},0,S),_?p.jsxs("div",{className:ue.blockMarginTop,children:[p.jsxs("div",{className:ue.displayFlex,children:[s.title?p.jsx("div",{children:b.I18n.t(s.title)}):null,p.jsx(ni,{className:f,style:w,autoComplete:"off",fullWidth:!0,disabled:!0,variant:"outlined",size:"small",value:i,customValue:!0}),p.jsx(Sr,{icon:this.state[`${S}___icon`],square:!0,style:{...w||void 0,marginLeft:7},value:"...",className:f,onClick:()=>{const C={};C[`showSelectId${l}`]=!0,this.setState(C)}})]}),k?p.jsx("div",{className:b.Utils.clsx(ue.nameBlock,ue.displayItalic),children:b.Utils.getObjectNameFromObj(k,b.I18n.getLanguage())}):null,m?p.jsx(b.DialogSelectID,{theme:this.props.theme,imagePrefix:"../..",dialogName:"javascript",themeType:b.Utils.getThemeName(),socket:v,selected:i,onClose:()=>{const C={};C[`showSelectId${l}`]=!1,this.setState(C)},onOk:(C,E)=>{const A={};A[`showSelectId${l}`]=!1;const R=Array.isArray(C)?C[0]:C;this.setState(A,async()=>{var Z,ae,se,ge,K,je,Me,qe,ce,de;const O=R?await v.getObject(R):void 0;this.lastObjectIdChange=Date.now(),r({[l]:C,[`${l}Role`]:(Z=O==null?void 0:O.common)==null?void 0:Z.role,[`${l}Type`]:(ae=O==null?void 0:O.common)==null?void 0:ae.type,[`${l}Unit`]:(se=O==null?void 0:O.common)==null?void 0:se.unit,[`${l}States`]:(ge=O==null?void 0:O.common)==null?void 0:ge.states,[`${l}Min`]:(K=O==null?void 0:O.common)==null?void 0:K.min,[`${l}Max`]:(je=O==null?void 0:O.common)==null?void 0:je.max,[`${l}Step`]:(Me=O==null?void 0:O.common)==null?void 0:Me.step,[`${l}Def`]:(qe=O==null?void 0:O.common)==null?void 0:qe.def,[`${l}Write`]:(ce=O==null?void 0:O.common)==null?void 0:ce.write,[`${l}Read`]:(de=O==null?void 0:O.common)==null?void 0:de.read},()=>this.props.setOnUpdate&&this.props.setOnUpdate(!0))})}}):null]},l):null}renderIconTag(){return p.jsx("div",{className:ue.iconTag,onClick:s=>{this.state.settings.tagCard&&(this.state.tagCardArray.length<3?this.onChangeTag():this.setState({openTagMenu:s.currentTarget}))},children:this.state.settings.tagCard})}renderTime(s,i,r){const{attr:l,backText:u,frontText:d,doNotTranslate:g,doNotTranslateBack:m}=s;return p.jsxs("div",{className:ue.displayFlex,style:{whiteSpace:"nowrap"},children:[d&&p.jsx("div",{className:ue.frontText,children:g?d:b.I18n.t(d)}),p.jsx(OA,{value:i,onChange:r}),u&&p.jsx("div",{className:ue.backText,children:m?u:b.I18n.t(u)})]},l)}renderSelect(s,i,r){const{className:l,style:u}=this.props,{name:d,options:g,frontText:m,backText:f,attr:v,multiple:w,doNotTranslate:_,doNotTranslate2:S,doNotTranslateBack:k}=s;return p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),style:{whiteSpace:"nowrap"},children:[m&&p.jsx("div",{className:ue.frontText,children:b.I18n.t(m)}),p.jsx(CA,{attr:v,doNotTranslate:_,doNotTranslate2:S,title:d,className:l,style:u,options:g,value:i,onChange:r,multiple:w,customValue:!0}),f&&p.jsx("div",{className:ue.backText,children:k?f:b.I18n.t(f)})]},v)}renderInstance(s,i,r){const{socket:l}=this.props,{name:u,frontText:d,backText:g,attr:m,adapter:f,doNotTranslate:v,doNotTranslateBack:w}=s;return this.state.hideAttributes.includes(m)?null:p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),style:{whiteSpace:"nowrap"},children:[d&&p.jsx("div",{className:ue.frontText,children:v?d:b.I18n.t(d)}),p.jsx(bA,{attr:m,socket:l,adapter:f,title:u,value:i,onChange:_=>{r(Array.isArray(_)?_[0]:_)},customValue:!0,onInstanceHide:_=>this.setState({hideAttributes:[...this.state.hideAttributes,m]},()=>r(_))}),g&&p.jsx("div",{className:ue.backText,children:w?g:b.I18n.t(g)})]},m)}renderDialog(s){const{onShowDialog:i,frontText:r,backText:l,attr:u,icon:d,doNotTranslate:g,doNotTranslateBack:m}=s;return p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),style:{whiteSpace:"nowrap"},children:[r&&p.jsx("div",{className:ue.frontText,children:g?r:b.I18n.t(r)}),p.jsx(T_,{iconName:d,className:b.Utils.clsx(ue.iconDialog),onClick:()=>i&&i()}),l&&p.jsx("div",{className:ue.backText,children:m?l:b.I18n.t(l)})]},u)}renderModalInput(s,i,r){const{openModal:l}=this.state,{className:u}=this.props,{attr:d,nameBlock:g,frontText:m,backText:f,noTextEdit:v,doNotTranslate:w,doNotTranslateBack:_}=s;return p.jsxs("div",{children:[p.jsxs("div",{className:b.Utils.clsx(ue.displayFlex,ue.blockMarginTop),children:[m&&p.jsx("div",{className:ue.frontText,children:w?m:b.I18n.t(m)}),p.jsx(ni,{disabled:!!v,className:u,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",value:i,onChange:r,customValue:!0}),p.jsx(Sr,{square:!0,style:{marginLeft:5},value:"...",className:u,onClick:()=>this.setState({openModal:!0})}),f&&p.jsx("div",{className:ue.backText,children:_?f:b.I18n.t(f)})]}),l?p.jsx(wg,{onApply:S=>this.setState({openModal:!1},()=>S!=null&&r(S)),onClose:()=>this.setState({openModal:!1}),defaultValue:i,textInput:!0}):null,g&&p.jsx("div",{className:ue.nameBlock,children:b.I18n.t(g)})]},d)}renderDate(s,i,r){const{attr:l,backText:u,frontText:d,doNotTranslate:g,doNotTranslateBack:m}=s;return p.jsxs("div",{className:ue.displayFlex,style:{whiteSpace:"nowrap"},children:[d&&p.jsx("div",{className:ue.frontText,children:g?d:b.I18n.t(d)}),p.jsx(NA,{value:i,onChange:r}),u&&p.jsx("div",{className:ue.backText,children:m?u:b.I18n.t(u)})]},l)}static getReplacesInText(s){var r;let i="";return(r=s.trigger)!=null&&r.oidType?i=".replace(/%s/g, obj.state.val).replace(/%id/g, obj.id).replace(/%name/g, obj.common && obj.common.name).replace(/%old/g, obj.oldState.val)":s.conditionsStates.length&&(i=`.replace(/%s/g, ${s.conditionsStates[0].name}).replace(/%id/g, "${s.conditionsStates[0].id}")`),i}renderTags(){const{tagCardArray:s,openTagMenu:i}=this.state,{tagCard:r}=this.state.settings;let l=r!=="="&&r!=="<>"&&r!==">="&&r!=="()"&&r!=="."&&r!=="<="&&r!=="<"&&r!==">"&&r?b.I18n.t(r):r;return s.length>=3&&(l=p.jsxs("div",{children:[p.jsx("div",{"aria-controls":"simple-menu","aria-haspopup":"true",onClick:u=>{this.setState({openTagMenu:u.currentTarget},()=>{this.props.isTourOpen&&this.props.tourStep===ws.openTagsMenu&&setTimeout(()=>this.props.setTourStep&&this.props.setTourStep(ws.selectIntervalTag),300)})},children:l}),p.jsx(y.Menu,{id:"simple-menu",anchorEl:i,keepMounted:!0,open:!!i,onClose:()=>this.setState({openTagMenu:null}),children:s.map((u,d)=>{let g;return typeof u!="string"?g=u.title:g=u,p.jsxs(y.MenuItem,{selected:g===r,className:`tag-card-${g}`,style:{placeContent:"space-between"},onClick:m=>{m.stopPropagation(),this.props.isTourOpen&&(this.props.tourStep===ws.openTagsMenu||this.props.tourStep===ws.selectIntervalTag)&&g==="interval"&&setTimeout(()=>{var v,w;return(w=(v=this.props).setTourStep)==null?void 0:w.call(v,ws.selectActions)},500);const f=JSON.parse(JSON.stringify(this.state.settings));f.tagCard=g,this.setState({openTagMenu:null,settings:f},()=>{this.props.onChange(this.state.settings),this.onTagChange(this.state.settings.tagCard)})},children:[g.search(/>|<|<>|<=|>=|=/)!==-1?g:b.I18n.t(g),typeof u!="string"&&u.title2&&p.jsx("div",{style:{marginLeft:4},children:b.I18n.t(u.title2)})]},`${g}_${d}`)})})]})),l}getData(){return{acceptedBy:"triggers",name:"",id:""}}onChangeTag(){const{tagCardArray:s,settings:i,settings:{tagCard:r}}=this.state;let l;if(typeof s[0]!="string"?l=s.map(u=>u.title):l=[...s],r&&l.length<3){const u={...i},d=l[(l.indexOf(r)+1)%l.length];u.tagCard=d,this.setState({settings:u},()=>{this.props.onChange(u),this.onTagChange(d)})}}componentDidMount(){this.onTagChange()}componentDidUpdate(){this.props.acceptedBy!=="triggers"&&this.props.onUpdate&&setTimeout(()=>this.onUpdate(),0)}onChangeInput(s){return(i,r,l)=>{const u=JSON.parse(JSON.stringify(this.state.settings));typeof i=="object"&&(!r||typeof r=="function")?(Object.keys(i).forEach(d=>u[d]=i[d]),typeof r=="function"&&(l=r,r=void 0)):u[r||s]=i,u.id=this.getData().id,u._id=this.props._id,this.setState({settings:u},()=>{this.onValueChanged(i,r||s),this.props.onChange(u),l==null||l()})}}renderSpecific(){return null}renderDebug(s){return""}renderDebugInfo(){return this.state.debugMessage?p.jsx("div",{className:ue.debugInfo,style:{opacity:1,height:22,bottom:-22},children:this.renderDebug?this.renderDebug(this.state.debugMessage):b.I18n.t("executed")},this.state.debugMessage.ts):null}renderCron(s,i,r){return null}renderWizard(s,i,r){return null}renderWriteState(){return null}renderInputElement(s,i){const{nameRender:r,defaultValue:l,attr:u}=s,{settings:d}=this.state;let g=u?d[u]:void 0;switch(g===void 0&&(g=l),r){case"renderTime":return u?this.renderTime(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderTime")},`invalid_${i}`);case"renderNameText":return this.renderNameText(s,l);case"renderSelect":return u?this.renderSelect(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderSelect")},`invalid_${i}`);case"renderModalInput":return u?this.renderModalInput(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderModalInput")},`invalid_${i}`);case"renderObjectID":return u?this.renderObjectID(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderObjectID")},`invalid_${i}`);case"renderDialog":return u?this.renderDialog(s):p.jsx("div",{children:b.I18n.t("Invalid renderDialog")},`invalid_${i}`);case"renderInstance":return u?this.renderInstance(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderInstance")},`invalid_${i}`);case"renderText":return u?this.renderText(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderText")},`invalid_${i}`);case"renderSlider":return u?this.renderSlider(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderSlider")},`invalid_${i}`);case"renderCheckbox":return u?this.renderCheckbox(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderCheckbox")},`invalid_${i}`);case"renderButton":return u?this.renderButton(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderButton")},`invalid_${i}`);case"renderColor":return u?this.renderColor(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderColor")},`invalid_${i}`);case"renderSwitch":return u?this.renderSwitch(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderSwitch")},`invalid_${i}`);case"renderDate":return u?this.renderDate(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderDate")},`invalid_${i}`);case"renderCron":return u?this.renderCron(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderCron")},`invalid_${i}`);case"renderWizard":return u?this.renderWizard(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderWizard")},`invalid_${i}`);case"renderWriteState":return this.renderWriteState();case"renderNumber":return u?this.renderNumber(s,g,this.onChangeInput(u)):p.jsx("div",{children:b.I18n.t("Invalid renderNumber")},`invalid_${i}`);default:return this[r]?this[r](s,g,u?this.onChangeInput(u):null):p.jsx("div",{children:b.I18n.t("Invalid input type: %s",r)},`invalid_${i}`)}}render(){var _;const{inputs:s,name:i,icon:r,iconTag:l,settings:u,adapter:d,settings:{tagCard:g},helpDialog:m}=this.state,{socket:f,notFound:v}=this.props;this.state.settings&&!this.state.settings.tagCard&&((_=this.state.tagCardArray)!=null&&_.length)&&setTimeout(()=>{const S=JSON.parse(JSON.stringify(this.state.settings));S.tagCard=typeof this.state.tagCardArray[0]!="string"?this.state.tagCardArray[0].title:this.state.tagCardArray[0],this.setState({settings:S})},50),this.state.enableSimulation!==this.props.enableSimulation&&!this.enableSimulationProcessing&&(this.enableSimulationProcessing=!0,setTimeout(()=>{this.setState({enableSimulation:this.props.enableSimulation},()=>{this.enableSimulationProcessing=!1})},50));let w;if(this.props.onDebugMessage)for(let S=this.props.onDebugMessage.length-1;S>=0;S--){const k=this.props.onDebugMessage[S];if(k.blockId===this.props._id&&k.ts>this.lastDebugMessage&&k.ts>Date.now()-1e3){w=k;break}}return w&&(this.lastDebugMessage=w.ts,this.debugMessageTimeout&&clearTimeout(this.debugMessageTimeout),this.debugHideTimeout&&(clearTimeout(this.debugHideTimeout),this.debugHideTimeout=null),this.debugMessageTimeout=setTimeout(S=>{const k=JSON.parse(S),C=k.hideTimeout||5e3;this.debugMessageTimeout=null,this.setState({debugMessage:k},()=>{this.debugHideTimeout&&clearTimeout(this.debugHideTimeout),this.debugHideTimeout=setTimeout(()=>{this.debugHideTimeout=null,this.setState({debugMessage:null})},C)})},50,JSON.stringify(w))),p.jsxs(V.Fragment,{children:[l?this.renderIconTag():p.jsx(T_,{iconName:r,className:b.Utils.clsx(ue.iconThemCard,g&&this.state.tagCardArray.length&&ue.iconThemCardSelectable),adapter:d,socket:f,onClick:S=>{g&&(this.state.tagCardArray.length<3?this.onChangeTag():this.setState({openTagMenu:S.currentTarget}))}}),p.jsxs("div",{className:ue.blockName,children:[p.jsxs("span",{className:ue.nameCard,children:[b.I18n.t(i),v?b.I18n.t("%s not found",u.id):"",m?p.jsx(y.IconButton,{className:ue.iconHelp,size:"small",onClick:()=>this.setState({helpText:b.I18n.t(m)}),children:p.jsx(fw,{})}):null]}),s.map((S,k)=>this.renderInputElement(S,k))]}),g&&p.jsx("div",{className:ue.controlMenuTop,style:{opacity:1,height:22,top:-22},children:p.jsx("div",{onClick:()=>this.onChangeTag(),className:b.Utils.clsx(ue.tagCard,"tag-card"),children:this.renderTags()})}),this.renderDebugInfo(),this.state.error?p.jsx(b.DialogError,{title:b.I18n.t("Warning"),text:this.state.error,onClose:()=>this.setState({error:""})}):null,this.state.helpText?p.jsx(b.DialogMessage,{title:b.I18n.t("Instructions"),text:this.state.helpText,onClose:()=>this.setState({helpText:""})}):null,this.renderSpecific()]})}}const k_={en:{name:"Google - English",engine:"google",params:[]},de:{name:"Google - Deutsch",engine:"google",params:[]},ru:{name:"Google - Русский",engine:"google",params:[]},it:{name:"Google - Italiano",engine:"google",params:[]},es:{name:"Google - Espaniol",engine:"google",params:[]},fr:{name:"Google - Français",engine:"google",params:[]},ru_YA:{name:"Yandex - Русский",engine:"yandex",params:["key","voice","emotion","ill","drunk","robot"],voice:["jane","zahar"],emotion:["none","good","neutral","evil","mixed"]},ru_YA_CLOUD:{name:"Yandex Cloud - Русский",engine:"yandexCloud",params:["key","folderID","voice","emotion"],voice:["alyss","oksana","jane","zahar"],emotion:["good","neutral","evil"]},"en-US":{name:"PicoTTS - Englisch US",engine:"PicoTTS",params:[]},"en-GB":{name:"PicoTTS - Englisch GB",engine:"PicoTTS",params:[]},"de-DE":{name:"PicoTTS - Deutsch",engine:"PicoTTS",params:[]},"it-IT":{name:"PicoTTS - Italiano",engine:"PicoTTS",params:[]},"es-ES":{name:"PicoTTS - Espaniol",engine:"PicoTTS",params:[]},"fr-FR":{name:"PicoTTS - Français",engine:"PicoTTS",params:[]},"ru-RU_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"ru-RU",ename:"Tatyana",ssml:!0,name:"Cloud - Русский - Татьяна"},"ru-RU_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"ru-RU",ename:"Maxim",ssml:!0,name:"Cloud - Русский - Максим"},"de-DE_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"de-DE",ename:"Marlene",ssml:!0,name:"Cloud - Deutsch - Marlene"},"de-DE_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"de-DE",ename:"Hans",ssml:!0,name:"Cloud - Deutsch - Hans"},"en-US_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Salli",ssml:!0,name:"Cloud - en-US - Female - Salli"},"en-US_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Joey",ssml:!0,name:"Cloud - en-US - Male - Joey"},"da-DK_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"da-DK",ename:"Naja",ssml:!0,name:"Cloud - da-DK - Female - Naja"},"da-DK_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"da-DK",ename:"Mads",ssml:!0,name:"Cloud - da-DK - Male - Mads"},"en-AU_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-AU",ename:"Nicole",ssml:!0,name:"Cloud - en-AU - Female - Nicole"},"en-AU_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-AU",ename:"Russell",ssml:!0,name:"Cloud - en-AU - Male - Russell"},"en-GB_CLOUD_Female_Amy":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Amy",ssml:!0,name:"Cloud - en-GB - Female - Amy"},"en-GB_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Brian",ssml:!0,name:"Cloud - en-GB - Male - Brian"},"en-GB_CLOUD_Female_Emma":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB",ename:"Emma",ssml:!0,name:"Cloud - en-GB - Female - Emma"},"en-GB-WLS_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-GB-WLS",ename:"Gwyneth",ssml:!0,name:"Cloud - en-GB-WLS - Female - Gwyneth"},"en-GB-WLS_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-GB-WLS",ename:"Geraint",ssml:!0,name:"Cloud - en-GB-WLS - Male - Geraint"},"cy-GB_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"cy-GB",ename:"Gwyneth",ssml:!0,name:"Cloud - cy-GB - Female - Gwyneth"},"cy-GB_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"cy-GB",ename:"Geraint",ssml:!0,name:"Cloud - cy-GB - Male - Geraint"},"en-IN_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-IN",ename:"Raveena",ssml:!0,name:"Cloud - en-IN - Female - Raveena"},"en-US_CLOUD_Male_Chipmunk":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Chipmunk",ssml:!0,name:"Cloud - en-US - Male - Chipmunk"},"en-US_CLOUD_Male_Eric":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Eric",ssml:!0,name:"Cloud - en-US - Male - Eric"},"en-US_CLOUD_Female_Ivy":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Ivy",ssml:!0,name:"Cloud - en-US - Female - Ivy"},"en-US_CLOUD_Female_Jennifer":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Jennifer",ssml:!0,name:"Cloud - en-US - Female - Jennifer"},"en-US_CLOUD_Male_Justin":{gender:"Male",engine:"cloud",params:["cloud"],language:"en-US",ename:"Justin",ssml:!0,name:"Cloud - en-US - Male - Justin"},"en-US_CLOUD_Female_Kendra":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Kendra",ssml:!0,name:"Cloud - en-US - Female - Kendra"},"en-US_CLOUD_Female_Kimberly":{gender:"Female",engine:"cloud",params:["cloud"],language:"en-US",ename:"Kimberly",ssml:!0,name:"Cloud - en-US - Female - Kimberly"},"es-ES_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"es-ES",ename:"Conchita",ssml:!0,name:"Cloud - es-ES - Female - Conchita"},"es-ES_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"es-ES",ename:"Enrique",ssml:!0,name:"Cloud - es-ES - Male - Enrique"},"es-US_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"es-US",ename:"Penelope",ssml:!0,name:"Cloud - es-US - Female - Penelope"},"es-US_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"es-US",ename:"Miguel",ssml:!0,name:"Cloud - es-US - Male - Miguel"},"fr-CA_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"fr-CA",ename:"Chantal",ssml:!0,name:"Cloud - fr-CA - Female - Chantal"},"fr-FR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"fr-FR",ename:"Celine",ssml:!0,name:"Cloud - fr-FR - Female - Celine"},"fr-FR_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"fr-FR",ename:"Mathieu",ssml:!0,name:"Cloud - fr-FR - Male - Mathieu"},"is-IS_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"is-IS",ename:"Dora",ssml:!0,name:"Cloud - is-IS - Female - Dora"},"is-IS_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"is-IS",ename:"Karl",ssml:!0,name:"Cloud - is-IS - Male - Karl"},"it-IT_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"it-IT",ename:"Carla",ssml:!0,name:"Cloud - it-IT - Female - Carla"},"it-IT_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"it-IT",ename:"Giorgio",ssml:!0,name:"Cloud - it-IT - Male - Giorgio"},"nb-NO_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"nb-NO",ename:"Liv",ssml:!0,name:"Cloud - nb-NO - Female - Liv"},"nl-NL_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"nl-NL",ename:"Lotte",ssml:!0,name:"Cloud - nl-NL - Female - Lotte"},"nl-NL_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"nl-NL",ename:"Ruben",ssml:!0,name:"Cloud - nl-NL - Male - Ruben"},"pl-PL_CLOUD_Female_Agnieszka":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Agnieszka",ssml:!0,name:"Cloud - pl-PL - Female - Agnieszka"},"pl-PL_CLOUD_Male_Jacek":{gender:"Male",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Jacek",ssml:!0,name:"Cloud - pl-PL - Male - Jacek"},"pl-PL_CLOUD_Female_Ewa":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Ewa",ssml:!0,name:"Cloud - pl-PL - Female - Ewa"},"pl-PL_CLOUD_Male_Jan":{gender:"Male",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Jan",ssml:!0,name:"Cloud - pl-PL - Male - Jan"},"pl-PL_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pl-PL",ename:"Maja",ssml:!0,name:"Cloud - pl-PL - Female - Maja"},"pt-BR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pt-BR",ename:"Vitoria",ssml:!0,name:"Cloud - pt-BR - Female - Vitoria"},"pt-BR_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"pt-BR",ename:"Ricardo",ssml:!0,name:"Cloud - pt-BR - Male - Ricardo"},"pt-PT_CLOUD_Male":{gender:"Male",engine:"cloud",params:["cloud"],language:"pt-PT",ename:"Cristiano",ssml:!0,name:"Cloud - pt-PT - Male - Cristiano"},"pt-PT_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"pt-PT",ename:"Ines",ssml:!0,name:"Cloud - pt-PT - Female - Ines"},"ro-RO_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"ro-RO",ename:"Carmen",ssml:!0,name:"Cloud - ro-RO - Female - Carmen"},"sv-SE_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"sv-SE",ename:"Astrid",ssml:!0,name:"Cloud - sv-SE - Female - Astrid"},"tr-TR_CLOUD_Female":{gender:"Female",engine:"cloud",params:["cloud"],language:"tr-TR",ename:"Filiz",ssml:!0,name:"Cloud - tr-TR - Female - Filiz"},"ru-RU_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"ru-RU",ename:"Tatyana",ssml:!0,name:"AWS Polly - Русский - Татьяна"},"ru-RU_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"ru-RU",ename:"Maxim",ssml:!0,name:"AWS Polly - Русский - Максим"},"de-DE_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Marlene",ssml:!0,name:"AWS Polly - Deutsch - Marlene"},"de-DE_AP_Female_Vicky":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Vicky",ssml:!0,name:"AWS Polly - Deutsch - Vicky"},"de-DE_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"de-DE",ename:"Hans",ssml:!0,name:"AWS Polly - Deutsch - Hans"},"en-US_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Salli",ssml:!0,name:"AWS Polly - en-US - Female - Salli"},"en-US_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Joey",ssml:!0,name:"AWS Polly - en-US - Male - Joey"},"da-DK_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"da-DK",ename:"Naja",ssml:!0,name:"AWS Polly - da-DK - Female - Naja"},"da-DK_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"da-DK",ename:"Mads",ssml:!0,name:"AWS Polly - da-DK - Male - Mads"},"en-AU_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-AU",ename:"Nicole",ssml:!0,name:"AWS Polly - en-AU - Female - Nicole"},"en-AU_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-AU",ename:"Russell",ssml:!0,name:"AWS Polly - en-AU - Male - Russell"},"en-GB_AP_Female_Amy":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Amy",ssml:!0,name:"AWS Polly - en-GB - Female - Amy"},"en-GB_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Brian",ssml:!0,name:"AWS Polly - en-GB - Male - Brian"},"en-GB_AP_Female_Emma":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB",ename:"Emma",ssml:!0,name:"AWS Polly - en-GB - Female - Emma"},"en-GB-WLS_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB-WLS",ename:"Gwyneth",ssml:!0,name:"AWS Polly - en-GB-WLS - Female - Gwyneth"},"en-GB-WLS_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-GB-WLS",ename:"Geraint",ssml:!0,name:"AWS Polly - en-GB-WLS - Male - Geraint"},"cy-GB_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"cy-GB",ename:"Gwyneth",ssml:!0,name:"AWS Polly - cy-GB - Female - Gwyneth"},"cy-GB_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"cy-GB",ename:"Geraint",ssml:!0,name:"AWS Polly - cy-GB - Male - Geraint"},"en-IN_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-IN",ename:"Raveena",ssml:!0,name:"AWS Polly - en-IN - Female - Raveena"},"en-US_AP_Male_Chipmunk":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Chipmunk",ssml:!0,name:"AWS Polly - en-US - Male - Chipmunk"},"en-US_AP_Male_Eric":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Eric",ssml:!0,name:"AWS Polly - en-US - Male - Eric"},"en-US_AP_Female_Ivy":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Ivy",ssml:!0,name:"AWS Polly - en-US - Female - Ivy"},"en-US_AP_Female_Jennifer":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Jennifer",ssml:!0,name:"AWS Polly - en-US - Female - Jennifer"},"en-US_AP_Male_Justin":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Justin",ssml:!0,name:"AWS Polly - en-US - Male - Justin"},"en-US_AP_Female_Kendra":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Kendra",ssml:!0,name:"AWS Polly - en-US - Female - Kendra"},"en-US_AP_Female_Kimberly":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"en-US",ename:"Kimberly",ssml:!0,name:"AWS Polly - en-US - Female - Kimberly"},"es-ES_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"es-ES",ename:"Conchita",ssml:!0,name:"AWS Polly - es-ES - Female - Conchita"},"es-ES_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"es-ES",ename:"Enrique",ssml:!0,name:"AWS Polly - es-ES - Male - Enrique"},"es-US_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"es-US",ename:"Penelope",ssml:!0,name:"AWS Polly - es-US - Female - Penelope"},"es-US_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"es-US",ename:"Miguel",ssml:!0,name:"AWS Polly - es-US - Male - Miguel"},"fr-CA_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-CA",ename:"Chantal",ssml:!0,name:"AWS Polly - fr-CA - Female - Chantal"},"fr-FR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-FR",ename:"Celine",ssml:!0,name:"AWS Polly - fr-FR - Female - Celine"},"fr-FR_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"fr-FR",ename:"Mathieu",ssml:!0,name:"AWS Polly - fr-FR - Male - Mathieu"},"is-IS_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"is-IS",ename:"Dora",ssml:!0,name:"AWS Polly - is-IS - Female - Dora"},"is-IS_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"is-IS",ename:"Karl",ssml:!0,name:"AWS Polly - is-IS - Male - Karl"},"it-IT_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"it-IT",ename:"Carla",ssml:!0,name:"AWS Polly - it-IT - Female - Carla"},"it-IT_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"it-IT",ename:"Giorgio",ssml:!0,name:"AWS Polly - it-IT - Male - Giorgio"},"nb-NO_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"nb-NO",ename:"Liv",ssml:!0,name:"AWS Polly - nb-NO - Female - Liv"},"nl-NL_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"nl-NL",ename:"Lotte",ssml:!0,name:"AWS Polly - nl-NL - Female - Lotte"},"nl-NL_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"nl-NL",ename:"Ruben",ssml:!0,name:"AWS Polly - nl-NL - Male - Ruben"},"pl-PL_AP_Female_Agnieszka":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Agnieszka",ssml:!0,name:"AWS Polly - pl-PL - Female - Agnieszka"},"pl-PL_AP_Male_Jacek":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Jacek",ssml:!0,name:"AWS Polly - pl-PL - Male - Jacek"},"pl-PL_AP_Female_Ewa":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Ewa",ssml:!0,name:"AWS Polly - pl-PL - Female - Ewa"},"pl-PL_AP_Male_Jan":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Jan",ssml:!0,name:"AWS Polly - pl-PL - Male - Jan"},"pl-PL_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pl-PL",ename:"Maja",ssml:!0,name:"AWS Polly - pl-PL - Female - Maja"},"pt-BR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-BR",ename:"Vitoria",ssml:!0,name:"AWS Polly - pt-BR - Female - Vitoria"},"pt-BR_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-BR",ename:"Ricardo",ssml:!0,name:"AWS Polly - pt-BR - Male - Ricardo"},"pt-PT_AP_Male":{gender:"Male",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-PT",ename:"Cristiano",ssml:!0,name:"AWS Polly - pt-PT - Male - Cristiano"},"pt-PT_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"pt-PT",ename:"Ines",ssml:!0,name:"AWS Polly - pt-PT - Female - Ines"},"ro-RO_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"ro-RO",ename:"Carmen",ssml:!0,name:"AWS Polly - ro-RO - Female - Carmen"},"sv-SE_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"sv-SE",ename:"Astrid",ssml:!0,name:"AWS Polly - sv-SE - Female - Astrid"},"tr-TR_AP_Female":{gender:"Female",engine:"polly",params:["accessKey","secretKey","region"],language:"tr-TR",ename:"Filiz",ssml:!0,name:"AWS Polly - tr-TR - Female - Filiz"}};class sc extends Xe{constructor(s){super(s,sc.getStaticData())}static compile(s,i){return s.text?`// Sayit ${s.text||""} + const subActionVar${s._id} = "${s.language&&s.language!=="_"?`${s.language};`:""}${s.volume?`${s.volume};`:""}${(s.text||"").replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}; + _sendToFrontEnd(${s._id}, {text: subActionVar${s._id}}); + await setStateAsync("${s.instance}.tts.text", subActionVar${s._id});`:`// no text defined +_sendToFrontEnd(${s._id}, {text: 'No text defined'});`}renderDebug(s){return`${b.I18n.t("Say:")} ${s.data.text}`}onTagChange(){const s=b.I18n.getLanguage(),r=Object.keys(k_).filter(l=>l.startsWith(s)).map(l=>({title:k_[l].name,value:l}));r.unshift({title:"Default",value:"_"}),this.setState({inputs:[{attr:"instance",nameRender:"renderInstance",adapter:"sayit",defaultValue:"sayit.0",frontText:"Instance:"},{nameRender:"renderSelect",frontText:"Language:",options:r,defaultValue:"_",attr:"language"},{nameRender:"renderNameText",defaultValue:"Volume",attr:"textVol"},{nameRender:"renderSlider",attr:"volume",defaultValue:100,min:0,max:100},{attr:"text",nameRender:"renderModalInput",defaultValue:"Hallo",nameBlock:"",frontText:"Text:"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Say It",id:"ActionSayText",adapter:"sayit",title:"Say some text via sayit adapter",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return sc.getStaticData()}}class oc extends Xe{constructor(s){super(s,oc.getStaticData())}static compile(s,i){const r=(s.text||"").replace(/"/g,'\\"');return r?`// Pushover ${s.text||""} + const subActionVar${s._id} = "${r}"${Xe.getReplacesInText(i)}; + _sendToFrontEnd(${s._id}, {text: subActionVar${s._id}}); + sendTo("${s.instance}", "send", { + message: subActionVar${s._id}, + title: "${(s.title||"").replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}, + sound: "${s.sound}", + priority: ${s.priority} + });`:`// no text defined +_sendToFrontEnd(${s._id}, {text: 'No text defined'});`}renderDebug(s){return`Sent: ${s.data.text}`}onTagChange(){this.setState({inputs:[{nameRender:"renderInstance",adapter:"pushover",frontText:"Instance:",defaultValue:"pushover.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"title",defaultValue:"ioBroker",frontText:"Title:"},{nameRender:"renderSelect",attr:"sound",defaultValue:"magic",frontText:"Sound:",doNotTranslate:!0,options:[{value:"pushover",title:"pushover"},{value:"bike",title:"bike"},{value:"bugle",title:"bugle"},{value:"cashregister",title:"cashregister"},{value:"classical",title:"classical"},{value:"cosmic",title:"cosmic"},{value:"falling",title:"falling"},{value:"gamelan",title:"gamelan"},{value:"incoming",title:"incoming"},{value:"intermission",title:"intermission"},{value:"magic",title:"magic"},{value:"mechanical",title:"mechanical"},{value:"pianobar",title:"pianobar"},{value:"siren",title:"siren"},{value:"spacealarm",title:"spacealarm"},{value:"tugboat",title:"tugboat"},{value:"alien",title:"alien"},{value:"climb",title:"climb"},{value:"persistent",title:"persistent"},{value:"echo",title:"echo"},{value:"updown",title:"updown"},{value:"none",title:"none"}]},{nameRender:"renderSelect",attr:"priority",defaultValue:-1,frontText:"Priority:",options:[{value:-1,title:"quiet"},{value:0,title:"normal"},{value:1,title:"high-priority"},{value:2,title:"acknowledgment"}]}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Pushover",id:"ActionPushover",adapter:"pushover",title:"Sends message via pushover",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return oc.getStaticData()}}class ic extends Xe{constructor(s){super(s,ic.getStaticData())}static compile(s,i){const r=(s.text||"").replace(/"/g,'\\"');return r?`// whatsapp ${r||""} + const subActionVar${s._id} = "${(r||"").replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}; + _sendToFrontEnd(${s._id}, {text: subActionVar${s._id}}); + sendTo("${s.instance}", "send", {text: subActionVar${s._id}${s.phone?`, phone: "${s.phone.replace(/"/g,'\\"')}"`:""}});`:`// no text defined +_sendToFrontEnd(${s._id}, {text: 'No text defined'});`}renderDebug(s){return`${b.I18n.t("Sent:")} ${s.data.text}`}onTagChange(){this.setState({inputs:[{nameRender:"renderInstance",adapter:"whatsapp-cmb",frontText:"Instance:",defaultValue:"whatsapp-cmb.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"phone",defaultValue:"",frontText:"Phone:",backText:"(optional)"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Whatsapp-cmb",id:"ActionWhatsappcmb",adapter:"whatsapp-cmb",title:"Sends message via whatsapp-cmb",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return ic.getStaticData()}}class nc extends Xe{constructor(s){super(s,nc.getStaticData())}static compile(s,i){const r=(s.text||"").replace(/"/g,'\\"');return r?`// Pushsafer ${s.text||""} + const subActionVar${s._id} = "${r}"${Xe.getReplacesInText(i)}; + _sendToFrontEnd(${s._id}, {text: subActionVar${s._id}}); + sendTo("${s.instance}", "send", { + message: subActionVar${s._id}, + title: "${(s.title||"").replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}, + ${s.sound&&s.sound!=="_"?`sound: "${s.sound}",`:""} + priority: ${s.priority}, + ${s.vibration&&s.vibration!=="_"?`vibration: ${s.vibration},`:""} + });`:`// no text defined +_sendToFrontEnd(${s._id}, {text: 'No text defined'});`}renderDebug(s){return`Sent: ${s.data.text}`}onTagChange(){this.setState({inputs:[{nameRender:"renderInstance",adapter:"pushsafer",frontText:"Instance:",defaultValue:"pushsafer.0",attr:"instance"},{nameRender:"renderModalInput",attr:"text",defaultValue:"Hello",nameBlock:"",frontText:"Text:"},{nameRender:"renderText",attr:"title",defaultValue:"ioBroker",frontText:"Title:"},{nameRender:"renderSelect",attr:"sound",defaultValue:"magic",frontText:"Sound:",doNotTranslate:!0,options:[{value:"_",title:"Device Default"},{value:"0",title:"Silent"},{value:"1",title:"Ahem (IM)"},{value:"2",title:"Applause (Mail)"},{value:"3",title:"Arrow (Reminder)"},{value:"4",title:"Baby (SMS)"},{value:"5",title:"Bell (Alarm)"},{value:"6",title:"Bicycle (Alarm2)"},{value:"7",title:"Boing (Alarm3)"},{value:"8",title:"Buzzer (Alarm4)"},{value:"9",title:"Camera (Alarm5)"},{value:"10",title:"Car Horn (Alarm6)"},{value:"11",title:"Cash Register (Alarm7)"},{value:"12",title:"Chime (Alarm8)"},{value:"13",title:"Creaky Door (Alarm9)"},{value:"14",title:"Cuckoo Clock (Alarm10)"},{value:"15",title:"Disconnect (Call)"},{value:"16",title:"Dog (Call2)"},{value:"17",title:"Doorbell (Call3)"},{value:"18",title:"Fanfare (Call4)"},{value:"19",title:"Gun Shot (Call5)"},{value:"20",title:"Honk (Call6)"},{value:"21",title:"Jaw Harp (Call7)"},{value:"22",title:"Morse (Call8)"},{value:"23",title:"Electricity (Call9)"},{value:"24",title:"Radio Tuner (Call10)"},{value:"25",title:"Sirens"},{value:"26",title:"Military Trumpets"},{value:"27",title:"Ufo"},{value:"28",title:"Whah Whah Whah"},{value:"29",title:"Man Saying Goodbye"},{value:"30",title:"Man Saying Hello"},{value:"31",title:"Man Saying No"},{value:"32",title:"Man Saying Ok"},{value:"33",title:"Man Saying Ooohhhweee"},{value:"34",title:"Man Saying Warning"},{value:"35",title:"Man Saying Welcome"},{value:"36",title:"Man Saying Yeah"},{value:"37",title:"Man Saying Yes"},{value:"38",title:"Beep short"},{value:"39",title:"Weeeee short"},{value:"40",title:"Cut in and out short"},{value:"41",title:"Finger flicking glas short"},{value:"42",title:"Wa Wa Waaaa short"},{value:"43",title:"Laser short"},{value:"44",title:"Wind Chime short"},{value:"45",title:"Echo short"},{value:"46",title:"Zipper short"},{value:"47",title:"HiHat short"},{value:"48",title:"Beep 2 short"},{value:"49",title:"Beep 3 short"},{value:"50",title:"Beep 4 short"},{value:"51",title:"The Alarm is armed"},{value:"52",title:"The Alarm is disarmed"},{value:"53",title:"The Backup is ready"},{value:"54",title:"The Door is closed"},{value:"55",title:"The Door is opend"},{value:"56",title:"The Window is closed"},{value:"57",title:"The Window is open"},{value:"58",title:"The Light is off"},{value:"59",title:"The Light is on"},{value:"60",title:"The Doorbell rings"},{value:"61",title:"Pager short"},{value:"62",title:"Pager long"}]},{nameRender:"renderSelect",attr:"priority",defaultValue:0,frontText:"Priority:",options:[{value:-2,title:"lowest priority"},{value:-1,title:"lower priority"},{value:0,title:"normal priority"},{value:1,title:"high priority"},{value:2,title:"highest priority"}]},{nameRender:"renderSelect",attr:"vibration",defaultValue:0,frontText:"Vibration:",options:[{value:"_",title:"default"},{value:1,title:"1"},{value:2,title:"2"},{value:3,title:"3"}]}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Pushsafer",id:"ActionPushsafer",adapter:"pushsafer",title:"Sends message via Pushsafer",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return nc.getStaticData()}}const SC=`async function (obj) { + "__%%DEBUG_TRIGGER%%__"; + __%%CONDITIONS_VARS%%__ + const _cond = __%%CONDITION%%__; + + "__%%DEBUG_CONDITIONS%%__"; + + if (_cond) { +__%%THEN%%__ + } else { +__%%ELSE%%__ + } +}`,EC=`async function (obj) { + "__%%DEBUG_TRIGGER%%__"; + __%%CONDITIONS_VARS%%__ + const _cond = __%%CONDITION%%__; + + "__%%DEBUG_CONDITIONS%%__"; + + if (__%%STATE%%__ === false && _cond) { + __%%STATE%%__ = true; +__%%THEN%%__ + } else if (__%%STATE%%__ === true && !_cond) { + __%%STATE%%__ = false; +__%%ELSE%%__ + } +}`,PA=`"__%%DEBUG_TRIGGER%%__"; +__%%CONDITIONS_VARS%%__ +const _cond = __%%CONDITION%%__; + +"__%%DEBUG_CONDITIONS%%__"; + +if (_cond) { +__%%THEN%%__ +} else { +__%%ELSE%%__ +}`,Kp={triggers:[],conditions:[[]],justCheck:!1,actions:{then:[],else:[]}};function FA(a,s,i){const r=[];let l=a.triggers;l.length||(l=[{id:"TriggerScriptSave"}]);const u=[],d=[],g=a.conditions.find(f=>f.find(v=>v.tagCard==="()"));l.forEach((f,v)=>{var _;const w=sm(f.id,i);if(w){const S={trigger:f,condition:{index:0},justCheck:g?!1:a.justCheck||!a.conditions.length||!a.conditions[0].length,conditionsDebug:[],conditionsVars:[],conditionsStates:[]},k=w.compile(f,S),C=jA(a.conditions,S,i),E=S_(a.actions.then,S,i),A=S_(a.actions.else,S,i);u.push(`cond${v}`),(_=S.prelines)!=null&&_.length&&S.prelines.forEach(R=>d.push(R)),k.includes(" __%%CONDITIONS_VARS%%__")&&(S.conditionsVars=S.conditionsVars.map((R,O)=>O?` ${R}`:R),S.conditionsDebug=S.conditionsDebug.map((R,O)=>O?` ${R}`:R)),r.push(k.replace("__%%CONDITIONS_VARS%%__",S.conditionsVars.join(` +`)).replace('"__%%DEBUG_CONDITIONS%%__";',S.conditionsDebug.join(` +`)).replace("__%%CONDITION%%__",C).replace("__%%THEN%%__",E||"// ignore").replace("__%%ELSE%%__",A||"// ignore").replace(/__%%STATE%%__/g,`cond${v}`))}});let m=r.join(` + +`);return(!a.justCheck||g)&&(m=`${u.map(f=>`let ${f} = false;`).join(` +`)} + +${m}`),d&&(m=`${d.join(` +`)} + +${m}`),m}function sm(a,s){return s.find(i=>i.getStaticData&&i.getStaticData().id===a)}function S_(a,s,i){const r=[];return a==null||a.forEach(l=>{const u=sm(l.id,i);u&&r.push(u.compile(l,s))}),` ${r.join(` + + `)}`}function jA(a,s,i){const r=[];let l=0;return a==null||a.forEach(u=>{const d=[];u==null||u.forEach(g=>{const m=sm(g.id,i);m&&(s.condition.index=l++,d.push(m.compile(g,s)))}),r.push(`(${d.join(`) && + (`)})`)}),r.length?r.length===1?r[0]||"true":`(${r.join(") || (")})`:"true"}function zA(a,s){return FA(a,null,s)}function Toe(a){if(!a)return Kp;const s=a.split(` +`);try{const i=(s.pop()||"").replace(/^\/\//,"");let r=JSON.parse(i);return r.triggers||(r=Kp),r}catch{return Kp}}function koe(a,s){let i="";const r=zA(a,s);return i+=r,i+=` +/* +const demo = ${JSON.stringify(a,null,2).replace(/\*\//g,"* /")}; +*/ +`,`${i} +//${JSON.stringify(a)}`}class rc extends Xe{constructor(s){super(s,rc.getStaticData())}static compile(s,i){return PA.replace('"__%%DEBUG_TRIGGER%%__"',`_sendToFrontEnd(${s._id}, {trigger: true})`)}renderDebug(){return b.I18n.t("Triggered")}onTagChange(s){this.setState({inputs:[{nameRender:"renderNameText",defaultValue:"On script save or adapter start",attr:"script"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"triggers",name:"Start script",id:"TriggerScriptSave",icon:"PlayArrow",title:"Triggers the on script saving or the javascript instance restart"}}getData(){return rc.getStaticData()}}var IC={exports:{}};(function(a,s){(function(){var i=Math.PI,r=Math.sin,l=Math.cos,u=Math.tan,d=Math.asin,g=Math.atan2,m=Math.acos,f=i/180,v=1e3*60*60*24,w=2440588,_=2451545;function S(q){return q.valueOf()/v-.5+w}function k(q){return new Date((q+.5-w)*v)}function C(q){return S(q)-_}var E=f*23.4397;function A(q,oe){return g(r(q)*l(E)-u(oe)*r(E),l(q))}function R(q,oe){return d(r(oe)*l(E)+l(oe)*r(E)*r(q))}function O(q,oe,F){return g(r(q),l(q)*r(oe)-u(F)*l(oe))}function Z(q,oe,F){return d(r(oe)*r(F)+l(oe)*l(F)*l(q))}function ae(q,oe){return f*(280.16+360.9856235*q)-oe}function se(q){return q<0&&(q=0),2967e-7/Math.tan(q+.00312536/(q+.08901179))}function ge(q){return f*(357.5291+.98560028*q)}function K(q){var oe=f*(1.9148*r(q)+.02*r(2*q)+3e-4*r(3*q)),F=f*102.9372;return q+oe+F+i}function je(q){var oe=ge(q),F=K(oe);return{dec:R(F,0),ra:A(F,0)}}var Me={};Me.getPosition=function(q,oe,F){var H=f*-F,U=f*oe,le=C(q),x=je(le),pe=ae(le,H)-x.ra;return{azimuth:O(pe,U,x.dec),altitude:Z(pe,U,x.dec)}};var qe=Me.times=[[-.833,"sunrise","sunset"],[-.3,"sunriseEnd","sunsetStart"],[-6,"dawn","dusk"],[-12,"nauticalDawn","nauticalDusk"],[-18,"nightEnd","night"],[6,"goldenHourEnd","goldenHour"]];Me.addTime=function(q,oe,F){qe.push([q,oe,F])};var ce=9e-4;function de(q,oe){return Math.round(q-ce-oe/(2*i))}function J(q,oe,F){return ce+(q+oe)/(2*i)+F}function we(q,oe,F){return _+q+.0053*r(oe)-.0069*r(2*F)}function me(q,oe,F){return m((r(q)-r(oe)*r(F))/(l(oe)*l(F)))}function Fe(q,oe,F,H,U,le,x){var pe=me(q,F,H),W=J(pe,oe,U);return we(W,le,x)}Me.getTimes=function(q,oe,F){var H=f*-F,U=f*oe,le=C(q),x=de(le,H),pe=J(0,H,x),W=ge(pe),ke=K(W),ve=R(ke,0),Ie=we(pe,W,ke),fe,Ge,Ye,Ce,Ee,be={solarNoon:k(Ie),nadir:k(Ie+.5)};for(fe=0,Ge=qe.length;fe=0&&(mt=Math.sqrt(Ce)/(Math.abs(Ie)*2),be=Ge-mt,Le=Ge+mt,Math.abs(be)<=1&&Ee++,Math.abs(Le)<=1&&Ee++,be<-1&&(be=Le)),Ee===1?x<0?ke=Q+be:ve=Q+be:Ee===2&&(ke=Q+(Ye<0?Le:be),ve=Q+(Ye<0?be:Le)),!(ke&&ve));Q+=2)x=W;var lt={};return ke&&(lt.rise=et(U,ke)),ve&&(lt.set=et(U,ve)),!ke&&!ve&&(lt[Ye>0?"alwaysUp":"alwaysDown"]=!0),lt},a.exports=Me})()})(IC);var UA=IC.exports;const xC=hi(UA),HA='{"time":{"start":"00:00","end":"24:00","mode":"hours","interval":1},"period":{"days":1}}';class ri extends Xe{coordinates=null;constructor(s){super(s,ri.getStaticData())}static compile(s,i){var u;let r="",l=i.justCheck?SC:EC;if(l=l.replace('"__%%DEBUG_TRIGGER%%__"',`_sendToFrontEnd(${s._id}, {trigger: true})`),s.tagCard==="interval")r=`setInterval(${l}, ${s.interval||1} * ${s.unit==="s"?1e3:s.unit==="m"?6e4:36e5});`;else if(s.tagCard==="cron")r=`schedule("${s.cron}", ${l});`;else if(s.tagCard==="at"){const[d,g]=(s.at||"").split(":");let m="*";if((u=s==null?void 0:s.dow)!=null&&u.length&&!s.dow.includes("_")){const f=[...s.dow].map(S=>parseInt(S,10));f.sort();const v=[];let w=f[0],_=1;for(;_1?(w===f[_-1]?v.push(w.toString()):f[_-1]-w===1?v.push(`${w},${f[_-1]}`):v.push(`${w}-${f[_-1]}`),w=f[_]):_===f.length-1&&(w===f[_-1]||f[_]-w===1?v.push(`${w},${f[_]}`):v.push(`${w}-${f[_]}`));m=v.join(",")}r=`schedule("${g||"0"} ${d||"0"} * * ${m}", ${l});`}else s.tagCard==="astro"?r=`schedule({astro: "${s.astro}", shift: ${s.offset?s.offsetValue:0}}, ${l});`:s.tagCard==="wizard"&&(r=`schedule('${s.wizard}', ${l});`);return r}static _time2String(s){return s?`${s.getHours().toString().padStart(2,"0")}:${s.getMinutes().toString().padStart(2,"0")}`:"--:--"}async _setAstro(s,i,r){var m,f;if(s||=this.state.settings.astro||"solarNoon",i??=this.state.settings.offset,r??=this.state.settings.offsetValue,r=parseInt(r,10)||0,!this.coordinates){const v=await this.props.socket.getObject("system.adapter.javascript.0"),w=(m=v==null?void 0:v.native)==null?void 0:m.latitude,_=(f=v==null?void 0:v.native)==null?void 0:f.longitude;if(!w&&!_){const S=await this.props.socket.getObject("system.config");S!=null&&S.common&&(S.common.latitude||S.common.longitude)?this.coordinates={latitude:parseFloat(S.common.latitude),longitude:parseFloat(S.common.longitude)}:this.coordinates=null}else this.coordinates={latitude:parseFloat(w),longitude:parseFloat(_)}}const l=this.coordinates&&xC.getTimes(new Date,this.coordinates.latitude,this.coordinates.longitude),u=l?Object.keys(l).map(v=>({value:v,title:v,title2:`[${ri._time2String(l[v])}]`,order:l?ri._time2String(l[v]):"??:??"})):[];u.sort((v,w)=>v.order>w.order?1:v.ordersuper.onTagChange())}_setInterval(s){s=parseInt(s||this.state.settings.interval,10)||30;let i;s===1?i=[{value:"s",title:"second"},{value:"m",title:"minute"},{value:"h",title:"hour"}]:i=[{value:"s",title:"seconds"},{value:"m",title:"minutes"},{value:"h",title:"hours"}],this.setState({inputs:[{nameRender:"renderNumber",attr:"interval",frontText:"every",defaultValue:30,className:"block-input-interval"},{nameRender:"renderSelect",attr:"unit",defaultValue:"s",options:i}]},()=>super.onTagChange())}renderDebug(s){return b.I18n.t("Triggered")}onValueChanged(s,i){this.state.settings.tagCard==="astro"?i==="astro"?this._setAstro(s):i==="offset"?this._setAstro(void 0,s):i==="offsetValue"&&this._setAstro(void 0,void 0,s):this.state.settings.tagCard==="interval"&&i==="interval"&&this._setInterval(s)}renderCron(s,i,r){const{className:l}=this.props;return p.jsxs("div",{children:[p.jsxs("div",{style:{display:"flex",alignItems:"baseline"},children:[p.jsx("div",{style:{width:"100%"},children:this.renderText({nameRender:"renderText",attr:"cron",defaultValue:i},this.state.settings.cron||i,r)}),p.jsx(Sr,{square:!0,style:{marginLeft:7},value:"...",className:l,onClick:()=>this.setState({openDialog:!0,textCron:this.state.settings.cron})})]}),this.state.openDialog?p.jsx(wg,{disabled:this.state.settings.cron===this.state.textCron,onApply:()=>{const u=this.state.textCron;r(u,"cron",()=>{r(b.convertCronToText(u,b.I18n.getLanguage()),"addText"),this.setState({openDialog:!1})})},onClose:()=>this.setState({openDialog:!1,textCron:""}),children:p.jsx(b.ComplexCron,{cronExpression:this.state.settings.cron,onChange:u=>this.setState({textCron:u}),language:b.I18n.getLanguage()})}):null,this.renderNameText({nameRender:"renderNameText",defaultValue:b.I18n.t("every hour at 0 minutes"),attr:"addText",signature:!0,doNotTranslate:!0},this.state.settings.addText||b.I18n.t("every hour at 0 minutes"))]},"cron")}renderWizard(s,i,r){const{className:l}=this.props;return p.jsxs("div",{children:[p.jsxs("div",{style:{display:"flex",alignItems:"center",marginTop:7},children:[p.jsx(ni,{className:l,autoComplete:"off",fullWidth:!0,variant:"outlined",size:"small",multiline:!0,rows:2,value:this.state.settings.wizardText,onChange:u=>r(u),customValue:!0}),p.jsx(Sr,{square:!0,style:{marginLeft:7},value:"...",className:l,onClick:()=>this.setState({openDialog:!0,wizard:this.state.settings.wizard,wizardText:b.Schedule.state2text(this.state.settings.wizard)})})]}),this.state.openDialog?p.jsx(wg,{disabled:this.state.settings.wizard===this.state.wizard,onApply:()=>this.setState({openDialog:!1},()=>{const u=JSON.parse(this.state.wizard);u.valid||={from:b.Schedule.now2string()},u.valid.from||=b.Schedule.now2string(),r({wizardText:this.state.wizardText,wizard:JSON.stringify(u)})}),onClose:()=>this.setState({openDialog:!1}),children:p.jsx(b.Schedule,{theme:this.props.theme,schedule:i,onChange:(u,d)=>this.setState({wizardText:d||"",wizard:u})})}):null]},"wizard")}onTagChange(s){switch(s||=this.state.settings.tagCard,s){case"interval":this._setInterval();break;case"cron":this.setState({inputs:[{nameRender:"renderCron",attr:"cron",defaultValue:"0 * * * *"}]},()=>super.onTagChange());break;case"wizard":{const i=JSON.parse(HA);i.valid||={from:b.Schedule.now2string()},i.valid.from||=b.Schedule.now2string(),this.setState({inputs:[{nameRender:"renderWizard",attr:"wizard",defaultValue:JSON.stringify(i)}]},()=>super.onTagChange(null,()=>{const r=b.Schedule.state2text(this.state.settings.wizard||i);if(this.state.settings.wizard!==r){const l=JSON.parse(JSON.stringify(this.state.settings));l.wizardText=r,this.setState({settings:l}),this.props.onChange(l)}}));break}case"at":this.setState({inputs:[{nameRender:"renderTime",prefix:"at",attr:"at",defaultValue:"07:30"},{nameRender:"renderSelect",attr:"dow",default:"",multiple:!0,defaultValue:["_","1","2","3","4","5","6","0"],options:[{value:"_",title:"Every day",only:!0},{value:"1",title:"Monday",titleShort:"Mo"},{value:"2",title:"Tuesday",titleShort:"Tu"},{value:"3",title:"Wednesday",titleShort:"We"},{value:"4",title:"Thursday",titleShort:"Th"},{value:"5",title:"Friday",titleShort:"Fr"},{value:"6",title:"Saturday",titleShort:"Sa"},{value:"0",title:"Sunday",titleShort:"Su"}]}]},()=>super.onTagChange());break;case"astro":this._setAstro();break}}static getStaticData(){return{acceptedBy:"triggers",name:"Schedule",id:"TriggerScheduleBlock",icon:"AccessTime",tagCardArray:["cron","wizard","interval","at","astro"],title:"Triggers the rule periodically or on some specific time"}}getData(){return ri.getStaticData()}}const on={valueAck:{color:"#b02323"},valueNotAck:{color:"#12ac15"}},DC=X.forwardRef((a,s)=>p.jsx(y.Slide,{direction:"up",ref:s,...a}));DC.displayName="Transition";class ac extends Xe{inputRef;constructor(s){super(s,ac.getStaticData()),this.inputRef=X.createRef()}static compile(s,i){let r=i.justCheck?SC:EC;return r=r.replace('"__%%DEBUG_TRIGGER%%__"',`_sendToFrontEnd(${s._id}, {val: obj.state.val, ack: obj.state.ack, valOld: obj.oldState && obj.oldState.val, ackOld: obj.oldState && obj.oldState.ack})`),`on({id: "${s.oid||""}", change: "${s.tagCard==="on update"?"any":"ne"}"}, ${r});`}renderDebug(s){return s.data.valOld!==void 0?p.jsxs("span",{children:[b.I18n.t("Triggered")," ",p.jsx("span",{style:s.data.ackOld?on.valueAck:on.valueNotAck,children:hn(s.data.valOld)})," ","→"," ",p.jsx("span",{style:s.data.ack?on.valueAck:on.valueNotAck,children:hn(s.data.val)})]}):p.jsxs("span",{children:[b.I18n.t("Triggered")," ",p.jsx("span",{style:s.data.ack?on.valueAck:on.valueNotAck,children:hn(s.data.val)})]})}onWriteValue(){this.setState({openSimulate:!1});let s=this.state.simulateValue;window.localStorage.setItem(`javascript.app.${this.state.settings.oid}_ack`,this.state.simulateAck?"true":"false"),this.state.settings.oidType==="boolean"?(s=s===!0||s==="true"||s==="1",window.localStorage.setItem(`javascript.app.${this.state.settings.oid}`,s?"true":"false")):this.state.settings.oidType==="number"?(s=parseFloat(s)||0,window.localStorage.setItem(`javascript.app.${this.state.settings.oid}`,s.toString())):window.localStorage.setItem(`javascript.app.${this.state.settings.oid}`,(s==null?void 0:s.toString())||""),this.props.socket.setState(this.state.settings.oid,{val:s,ack:!!this.state.simulateAck})}renderWriteState(){return[p.jsx(y.Button,{disabled:!this.state.settings.oid||!this.state.enableSimulation,variant:"contained",color:"primary",onClick:()=>{this.setState({openSimulate:!0,simulateValue:this.state.settings.oidType==="boolean"?window.localStorage.getItem(`javascript.app.${this.state.settings.oid}`)==="true":window.localStorage.getItem(`javascript.app.${this.state.settings.oid}`)||"",simulateAck:window.localStorage.getItem(`javascript.app.${this.state.settings.oid}_ack`)==="true"}),setTimeout(()=>{var s;return(s=this.inputRef.current)==null?void 0:s.focus()},200)},children:b.I18n.t("Simulate")},"buttonWrite"),p.jsxs(y.Dialog,{open:!!this.state.openSimulate,TransitionComponent:DC,keepMounted:!0,onClose:()=>this.setState({openSimulate:!1}),"aria-labelledby":"simulate-dialog-slide-title","aria-describedby":"simulate-dialog-slide-description",children:[p.jsx(y.DialogTitle,{id:"simulate-dialog-slide-title",children:b.I18n.t("Trigger with value")}),p.jsxs(y.DialogContent,{children:[this.state.settings.oidType==="boolean"?p.jsx(y.FormControlLabel,{control:p.jsx(y.Switch,{inputRef:this.inputRef,onKeyUp:s=>s.key==="Enter"&&this.onWriteValue(),value:!!this.state.simulateValue,onChange:s=>this.setState({simulateValue:s.target.checked})}),label:b.I18n.t("Value")}):p.jsx(y.TextField,{variant:"standard",inputRef:this.inputRef,label:b.I18n.t("Value"),fullWidth:!0,onKeyUp:s=>s.key==="Enter"&&this.onWriteValue(),value:!this.state.simulateValue&&this.state.simulateValue!==0?"":this.state.simulateValue,onChange:s=>this.setState({simulateValue:s.target.value})}),p.jsx("br",{}),p.jsx(y.FormControlLabel,{control:p.jsx(y.Checkbox,{checked:!!this.state.simulateAck,onChange:s=>this.setState({simulateAck:s.target.checked}),color:"primary"}),label:b.I18n.t("Ack")})]}),p.jsxs(y.DialogActions,{children:[p.jsxs(y.Button,{variant:"contained",onClick:()=>this.onWriteValue(),color:"primary",children:[p.jsx(uk,{}),b.I18n.t("Write")]}),p.jsxs(y.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({openSimulate:!1}),children:[p.jsx($c,{}),b.I18n.t("Close")]})]})]},"dialogWrite")]}onTagChange(s){this.setState({inputs:[{nameRender:"renderObjectID",attr:"oid",defaultValue:""},{nameRender:"renderWriteState"}]},()=>{super.onTagChange()})}static getStaticData(){return{acceptedBy:"triggers",name:"State",id:"TriggerState",icon:"FlashOn",tagCardArray:["on change","on update"],title:"Triggers the rule on update or change of some state"}}getData(){return ac.getStaticData()}}const WA=""+new URL("hysteresis-CLhhemcG.png",import.meta.url).href,E_=`function __hysteresis(val, limit, state, hist, comp) { + let cond1, cond2; + if (comp === '>') { + cond1 = val > limit + hist; + cond2 = val <= limit - hist; + } else if (comp === '<') { + cond1 = val < limit - hist; + cond2 = val >= limit + hist; + } else if (comp === '>=') { + cond1 = val >= limit + hist; + cond2 = val < limit - hist; + } else if (comp === '<=') { + cond1 = val <= limit - hist; + cond2 = val > limit + hist; + } else if (comp === '=') { + cond1 = val <= limit + hist && val > limit - hist; + cond2 = val > limit + hist || val <= limit - hist; + } else if (comp === '<>') { + cond1 = val > limit + hist || val <= limit - hist; + cond2 = val <= limit + hist && val > limit - hist; + } + + if (!state && cond1) { + return true; + } else if (state && cond2) { + return false; + } else { + return state; + } +}`;class Er extends Xe{constructor(s){super(s,Er.getStaticData())}isAllTriggersOnState(){var s,i,r,l;return!!((i=(s=this.props.userRules)==null?void 0:s.triggers)!=null&&i.find(u=>u.id==="TriggerState"))&&!((l=(r=this.props.userRules)==null?void 0:r.triggers)!=null&&l.find(u=>u.id!=="TriggerState"))}static compile(s,i){var d,g;let r=s.value;r==null&&(r=!1);let l,u;if(s.tagCard==="()")i.prelines=i.prelines||[],!i.prelines.find(m=>m!==E_)&&i.prelines.push(E_),s.useTrigger?(l="obj.state.val",r===""&&(r=0),u=`__hysteresis(subCondVar${s._id}, ${r}, __%%STATE%%__, ${s.hist}, "${s.histComp}")`):(l=`(await getStateAsync("${s.oid}")).val`,r===""&&(r=0),typeof r=="string"&&parseFloat(r.trim()).toString()!==r.trim()&&(r=`"${r}"`),u=`__hysteresis(subCondVar${s._id}, ${r}, __%%STATE%%__, ${s.hist}, "${s.histComp}")`);else if(s.tagCard!=="includes"){const m=s.tagCard==="="?"==":s.tagCard==="<>"?"!=":s.tagCard;s.useTrigger?(l="obj.state.val",((d=i==null?void 0:i.trigger)==null?void 0:d.oidType)==="string"?(r=r.replace(/"/g,'\\"'),u=`subCondVar${s._id} ${m} "${r}"`):(r===""&&(r=0),typeof r=="string"&&parseFloat(r.trim()).toString()!==r.trim()&&(r=`"${r}"`),u=`subCondVar${s._id} ${m} ${r}`)):(l=`(await getStateAsync("${s.oid}")).val`,s.oidType==="string"?(r=r.replace(/"/g,'\\"'),u=`subCondVar${s._id} ${m} "${r}"`):(r===""&&(r=0),typeof r=="string"&&parseFloat(r.trim()).toString()!==r.trim()&&(r=`"${r}"`),u=`subCondVar${s._id} ${m} ${r}`))}else s.useTrigger?(l="obj.state.val",((g=i==null?void 0:i.trigger)==null?void 0:g.oidType)==="string"?(r=r.replace(/"/g,'\\"'),u=`obj.state.val.includes("${r}")`):u="false"):(l=`(await getStateAsync("${s.oid}")).val`,s.oidType==="string"?(r=r.replace(/"/g,'\\"'),u=`subCondVar${s._id}.includes("${r}")`):u="false");return i.conditionsStates.push({name:`subCondVar${s._id}`,id:s.oid}),i.conditionsVars.push(`const subCondVar${s._id} = ${l};`),i.conditionsVars.push(`const subCond${s._id} = ${u};`),i.conditionsDebug.push(`_sendToFrontEnd(${s._id}, {result: subCond${s._id}, value: subCondVar${s._id}, compareWith: "${r}"});`),`subCond${s._id}`}renderDebug(s){const i=this.state.settings.tagCard;return i!=="()"?`${s.data.result.toString().toUpperCase()} [${s.data.value} ${i} ${s.data.compareWith}]`:b.I18n.t("Triggered")}onShowHelp=()=>this.setState({showHysteresisHelp:!0});_setInputs(s,i,r,l,u){var C,E;const d=this.isAllTriggersOnState();i=i||this.state.settings.tagCard,r=r||this.state.settings.oidType,l=l||this.state.settings.oidUnit,u=u||this.state.settings.oidStates,s===void 0&&(s=this.state.settings.useTrigger),d&&s&&((E=(C=this.props.userRules)==null?void 0:C.triggers)==null?void 0:E.length)===1&&(r=this.props.userRules.triggers[0].oidType,l=this.props.userRules.triggers[0].oidUnit,u=this.props.userRules.triggers[0].oidStates);const g=Er.getStaticData().tagCardArray,m=g.find(A=>A.title===i)||g[0];let f,v=null;r==="number"?(f=[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:"()",title2:"[hysteresis]",text:"hysteresis"}],u&&(v=Object.keys(u).map(A=>u?{value:A,title:u[A]}:null).filter(A=>A))):r==="boolean"?(f=[{title:"=",title2:"[equal]",text:"equal to"},{title:"<>",title2:"[not equal]",text:"not equal to"}],v=[{title:"false",value:!1},{title:"true",value:!0}]):(f=[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:".",title2:"[includes]",text:"includes"}],u&&(v=Object.keys(u).map(A=>({value:A,title:u?u[A]:A.toString()}))));let w=null;f.find(A=>A.title===i)||(i=f[0].title,w=w||{...this.state.settings},w.tagCard=i);let _,S={nameRender:"renderText",defaultValue:"",attr:"value",frontText:i==="()"?"Limit":(m==null?void 0:m.text)||"compare with",doNotTranslateBack:!0,backText:l};v&&(S={nameRender:"renderSelect",defaultValue:v[0].value,options:v,attr:"value",frontText:(m==null?void 0:m.text)||"compare with",doNotTranslateBack:!0,backText:l},v.find(A=>A.value===this.state.settings.value)||(w=w||{...this.state.settings},w.value=v[0].value),v.length<=2&&(f=[{title:"=",title2:"[equal]",text:"equal to"},{title:"<>",title2:"[not equal]",text:"not equal to"}])),d&&s?_=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1},S]:d?_=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"},{nameRender:"renderObjectID",attr:"oid",defaultValue:""},S]:_=[{nameRender:"renderObjectID",attr:"oid",defaultValue:""},S],i==="()"&&(_.splice(1,0,{nameRender:"renderDialog",icon:"HelpOutline",frontText:"Explanation",onShowDialog:this.onShowHelp}),_.splice(2,0,{nameRender:"renderSelect",attr:"histComp",defaultValue:">",frontText:"Condition",doNotTranslate:!0,options:[{title:">",value:">"},{title:">=",value:">="},{title:"<",value:"<"},{title:"<=",value:"<="},{title:"=",value:"="},{title:"<>",value:"<>"}]}),_.push({frontText:"Δ",doNotTranslate:!0,nameRender:"renderNumber",noHelperText:!0,attr:"hist",defaultValue:1,doNotTranslateBack:!0,backText:l}));const k={iconTag:!0,tagCardArray:f,inputs:_};this.setState(k,()=>super.onTagChange(null,()=>{w&&(this.setState({settings:w}),this.props.onChange(w))}))}onValueChanged(s,i){typeof s=="object"?this._setInputs(s.useTrigger,s.tagCard,s.oidType,s.states):i==="useTrigger"?this._setInputs(s):i==="oidType"?this._setInputs(void 0,void 0,s):i==="oidUnit"?this._setInputs(void 0,void 0,void 0,s):i==="oidStates"&&this._setInputs(void 0,void 0,void 0,void 0,s)}onUpdate(){this._setInputs(this.state.settings.useTrigger)}onTagChange(s){this._setInputs(this.state.settings.useTrigger,s)}static getStaticData(){return{acceptedBy:"conditions",name:"State condition",id:"ConditionState",icon:"Shuffle",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"},{title:".",title2:"[includes]",text:"includes"},{title:"()",title2:"[hysteresis]",text:"hysteresis"}],title:"Compares the state value with user defined value"}}getData(){return Er.getStaticData()}renderSpecific(){return this.state.showHysteresisHelp?p.jsxs(y.Dialog,{open:!0,maxWidth:"md",onClose:()=>this.setState({showHysteresisHelp:!1}),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[p.jsx(y.DialogContent,{children:p.jsx(y.DialogContentText,{id:"alert-dialog-description",children:p.jsx("img",{src:WA,alt:"Hysteresis"})})}),p.jsx(y.DialogActions,{children:p.jsx(y.Button,{onClick:()=>this.setState({showHysteresisHelp:!1}),color:"primary",autoFocus:!0,children:b.I18n.t("OK")})})]}):null}}const I_=[31,29,31,30,31,30,31,31,30,31,30,31];class Ir extends Xe{constructor(s){super(s,Ir.getStaticData())}static compile(s,i){const r=s.tagCard==="="?"===":s.tagCard==="<>"?"!==":s.tagCard;let l;if(s.withDate){const[u,d]=(s.date||"01.01").toString().split(".");let g=parseInt(d,10)||0,m=parseInt(u,10)||0;m>12?m=12:m<0&&(m=0),g>I_[m]?g=I_[m]:g<0&&(g=0),g&&m?l=`formatDate(Date.now(), 'MM.DD-hh:mm') ${r} "${s.date}-${s.time}"`:g===0&&m?l=`formatDate(Date.now(), 'MM-hh:mm') ${r} "${m.toString().padStart(2,"0")}-${s.time}"`:m===0&&g?l=`formatDate(Date.now(), 'DD-hh:mm') ${r} "${g.toString().padStart(2,"0")}-${s.time}"`:l=`formatDate(Date.now(), 'hh:mm') ${r} "${s.time}"`}else l=`formatDate(Date.now(), 'hh:mm') ${r} "${s.time}"`;return i.conditionsVars.push(`const subCond${s._id} = ${l};`),i.conditionsDebug.push(`_sendToFrontEnd(${s._id}, {result: subCond${s._id}});`),`subCond${s._id}`}_setInputs(s,i){i=i===void 0?this.state.settings.withDate:i,s=s||this.state.settings.tagCard;const r=Ir.getStaticData().tagCardArray,l=r==null?void 0:r.find(d=>d.title===s),u=[{nameRender:"renderNameText",attr:"interval",defaultValue:"Actual time of day"},{frontText:(l==null?void 0:l.text)||s,nameRender:"renderTime",attr:"time",defaultValue:"12:00"},{frontText:"with date",nameRender:"renderCheckbox",attr:"withDate",defaultValue:!1}];i&&u.push({nameRender:"renderDate",attr:"date",defaultValue:"01.01"}),this.setState({inputs:u,iconTag:!0},()=>super.onTagChange())}onValueChanged(s,i){i==="withDate"&&this._setInputs(void 0,s)}onTagChange(s){this._setInputs(s)}static getStaticData(){return{acceptedBy:"conditions",name:"Time condition",id:"ConditionTime",icon:"Shuffle",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"}],title:"Compares current time with the user specific time"}}getData(){return Ir.getStaticData()}}class Eo extends Xe{coordinates=null;constructor(s){super(s,Eo.getStaticData())}static compile(s,i){const r=s.tagCard==="="?"===":s.tagCard==="<>"?"!==":s.tagCard;let l;s.offset&&(l=parseInt(s.offsetValue,10)||0);const u=`formatDate(Date.now(), 'hh:mm') ${r} formatDate(getAstroDate("${s.astro}"${l?`, undefined, ${l}`:""}), 'hh:mm')`;return i.conditionsVars.push(`const subCond${s._id} = ${u};`),i.conditionsDebug.push(`_sendToFrontEnd(${s._id}, {result: ${u}});`),u}static _time2String(s){return s?`${s.getHours().toString().padStart(2,"0")}:${s.getMinutes().toString().padStart(2,"0")}`:"--:--"}onValueChanged(s,i){i==="astro"?this._setAstro(s):i==="offset"?this._setAstro(void 0,s):i==="offsetValue"&&this._setAstro(void 0,void 0,s)}async _setAstro(s,i,r){if(s=s||this.state.settings.astro||"solarNoon",i=i===void 0?this.state.settings.offset:i,r=r===void 0?this.state.settings.offsetValue:r,r=parseInt(r,10)||0,!this.coordinates){const v=await this.props.socket.getObject("system.adapter.javascript.0");if(!(v!=null&&v.native.latitude)&&!(v!=null&&v.native.longitude)){const w=await this.props.socket.getObject("system.config");w&&(w.common.latitude||w.common.longitude)?this.coordinates={latitude:w.common.latitude,longitude:w.common.longitude}:this.coordinates=null}else this.coordinates={latitude:v==null?void 0:v.native.latitude,longitude:v==null?void 0:v.native.longitude}}const l=this.coordinates?xC.getTimes(new Date,this.coordinates.latitude,this.coordinates.longitude):null,u=l?Object.keys(l).map(v=>({value:v,title:v,title2:`[${Eo._time2String(l[v])}]`,order:Eo._time2String(l[v])})):[];u.sort((v,w)=>v.order>w.order?1:v.orderv.title===this.state.settings.tagCard)||d[0];let m="--:--";if(s&&l&&l[s]){const v=new Date(l[s]);i&&v.setMinutes(v.getMinutes()+parseInt(r,10)),m=`(${b.I18n.t(g.text)} ${Eo._time2String(v)})`}let f;i?f=[{nameRender:"renderNameText",defaultValue:"Actual time of day",attr:"text"},{frontText:g.text,attr:"astro",nameRender:"renderSelect",options:u,doNotTranslate2:!0,defaultValue:"solarNoon"},{backText:"with offset",nameRender:"renderCheckbox",attr:"offset"},{backText:r===1?"minute":"minutes",frontText:"offset",nameRender:"renderNumber",defaultValue:0,attr:"offsetValue",noHelperText:!0},{nameRender:"renderNameText",attr:"textTime",doNotTranslate:!0,defaultValue:m}]:f=[{nameRender:"renderNameText",defaultValue:"Actual time of day",attr:"text"},{frontText:g.text,attr:"astro",nameRender:"renderSelect",options:u,doNotTranslate2:!0,defaultValue:"solarNoon"},{backText:"with offset",nameRender:"renderCheckbox",attr:"offset"},{nameRender:"renderNameText",attr:"textTime",doNotTranslate:!0,defaultValue:m}],this.setState({inputs:f},()=>super.onTagChange())}onTagChange(){this._setAstro()}static getStaticData(){return{acceptedBy:"conditions",name:"Astronomical",id:"ConditionAstronomical",icon:"Brightness3",tagCardArray:[{title:"=",title2:"[equal]",text:"equal to"},{title:">=",title2:"[greater or equal]",text:"greater or equal to"},{title:">",title2:"[greater]",text:"greater than"},{title:"<=",title2:"[less or equal]",text:"less or equal to"},{title:"<",title2:"[less]",text:"less than"},{title:"<>",title2:"[not equal]",text:"not equal to"}],title:"Compares current time with astronomical event"}}getData(){return Eo.getStaticData()}}const x_={valueAck:{color:"#b02323"},valueNotAck:{color:"#12ac15"}};class lc extends Xe{constructor(s){super(s,lc.getStaticData())}isAllTriggersOnState(){var s,i,r,l;return!!((i=(s=this.props.userRules)==null?void 0:s.triggers)!=null&&i.find(u=>u.id==="TriggerState"))&&!((l=(r=this.props.userRules)==null?void 0:r.triggers)!=null&&l.find(u=>u.id!=="TriggerState"))}static compile(s,i){let r=s.value;s.useTrigger?r=s.toggle?"!obj.state.val":"obj.state.val":(r==null&&(r=""),typeof s.value=="string"&&parseFloat(s.value).toString()!==s.value&&s.value!=="true"&&s.value!=="false"&&(r=`"${r.replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}`));let l;return s.toggle&&!s.useTrigger?l=`const subActionVar${s._id} = !(await getStateAsync("${s.oid}")).val`:l=`const subActionVar${s._id} = ${r}`,`// set state ${s.oid} to ${s.toggle&&!s.useTrigger?"toggle":r} + ${l}; + _sendToFrontEnd(${s._id}, {val: subActionVar${s._id}, ack: ${s.tagCard==="update"}}); + await setStateAsync("${s.oid}", subActionVar${s._id}, ${s.tagCard==="update"});`}renderDebug(s){return p.jsxs("span",{children:[b.I18n.t("Set:")," ",p.jsx("span",{style:s.data.ack?x_.valueAck:x_.valueNotAck,children:hn(s.data.val)})]})}_setInputs(s,i){const r=this.isAllTriggersOnState();i=i===void 0?this.state.settings.toggle:i,s=s===void 0?this.state.settings.useTrigger:s;let l="",u;const{oidType:d,oidUnit:g,oidStates:m,oidMax:f,oidMin:v,oidRole:w,oidWrite:_,oidStep:S}=this.state.settings;let k;d&&(d==="number"?(l="number",f!==void 0&&v!==void 0&&(l="slider")):d==="boolean"?(l="boolean",w&&w.includes("button")&&_&&(l="button")):(l="",w&&w.includes("color")&&(l="color")),m&&(u=Object.keys(m).map(E=>({value:E,title:m[E]})),l="select"));let C;if(r&&s)C=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1}],l==="boolean"&&C.push({backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1});else{switch(l){case"number":C=[{backText:g||"",frontText:"with",nameRender:"renderNumber",defaultValue:f===void 0?0:f,attr:"value"}],this.state.settings.value!==void 0&&isNaN(parseFloat(this.state.settings.value))&&(k={value:f===void 0?0:f});break;case"slider":{C=[{nameRender:"renderSlider",defaultValue:f,min:v,max:f,unit:g,step:S,attr:"value"}];const E=parseFloat(this.state.settings.value);this.state.settings.value!==void 0&&(isNaN(E)||Ef)&&(k={value:f});break}case"select":C=[{nameRender:"renderSelect",frontText:"with",options:u,defaultValue:(u==null?void 0:u[0].value)||"",attr:"value"}],this.state.settings.value!==void 0&&!(u!=null&&u.find(E=>E.value===this.state.settings.value))&&(k={value:(u==null?void 0:u[0].value)||""});break;case"boolean":C=[{backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1}],i||C.push({backText:"true",frontText:"false",nameRender:"renderSwitch",defaultValue:!1,attr:"value"}),this.state.settings.value!==void 0&&this.state.settings.value!==!1&&this.state.settings.value!==!0&&(k={value:!1});break;case"button":C=[{nameRender:"renderButton",defaultValue:!0,attr:"value"}],this.state.settings.value!==void 0&&this.state.settings.value!==!0&&(k={value:!0});break;case"color":C=[{nameRender:"renderColor",frontText:"with",defaultValue:"#FFFFFF",attr:"value"}],this.state.settings.value!==void 0&&(typeof this.state.settings.value!="string"||!this.state.settings.value.startsWith("#")&&!this.state.settings.value.startsWith("rgb"))&&(k={value:"#FFFFFF"});break;default:C=[{backText:g||"",frontText:"with",nameRender:"renderText",defaultValue:"",attr:"value"}];break}r&&C.unshift({backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"})}return{inputs:C,newSettings:k}}onTagChange(s,i,r,l,u){u=u===void 0?this.state.settings.useTrigger:u;const{inputs:d,newSettings:g}=this._setInputs(u,l);d.unshift({nameRender:"renderObjectID",attr:"oid",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:d},()=>super.onTagChange(null,()=>{if(g){const m=JSON.parse(JSON.stringify(this.state.settings));Object.assign(m,g),this.setState(m),this.props.onChange(m)}}))}onValueChanged(s,i){this.onTagChange(void 0,void 0,void 0,i==="toggle"?s:void 0,i==="useTrigger"?s:void 0)}onUpdate(){this.onTagChange()}static getStaticData(){return{acceptedBy:"actions",name:"Set state action",id:"ActionSetState",icon:"PlayForWork",tagCardArray:["control","update"],title:"Control or update some state",helpDialog:"You can use %s in the value to use the current trigger value or %id to display the triggered object ID"}}getData(){return lc.getStaticData()}}class cc extends Xe{constructor(s){super(s,cc.getStaticData())}static compile(s,i){return`// exec "${s.exec}" + const subActionVar${s._id} = "${(s.exec||"").replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}; + _sendToFrontEnd(${s._id}, {exec: subActionVar${s._id}}); + console.log(subActionVar${s._id});`}renderDebug(s){return`Exec: ${s.data.exec}`}onTagChange(s){this.setState({inputs:[{nameRender:"renderModalInput",attr:"exec",defaultValue:"ls /opt/iobroker",nameBlock:"Shell command"}]},()=>super.onTagChange(s))}static getStaticData(){return{acceptedBy:"actions",name:"Exec",id:"ActionExec",icon:"Apps",title:"Executes some shell command",helpDialog:"You can use %s in the command to use current trigger value or %id to use the triggered object ID"}}getData(){return cc.getStaticData()}}class uc extends Xe{constructor(s){super(s,uc.getStaticData())}static compile(s,i){return`// HTTP request ${s.url} + const subActionVar${s._id} = "${(s.url||"").replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}; + _sendToFrontEnd(${s._id}, {url: subActionVar${s._id}}); + request(subActionVar${s._id});`}renderDebug(s){return`URL: ${s.data.url}`}onTagChange(s){this.setState({inputs:[{nameRender:"renderModalInput",attr:"url",defaultValue:"http://mydevice.com?...",nameBlock:"URL"}]},()=>super.onTagChange(s))}static getStaticData(){return{acceptedBy:"actions",name:"HTTP Call",id:"ActionHTTPCall",icon:"Language",title:"Make a HTTP get request",helpDialog:"You can use %s in the URL to use current trigger value or %id to use the triggered object ID"}}getData(){return uc.getStaticData()}}class dc extends Xe{constructor(s){super(s,dc.getStaticData())}static compile(s,i){return`// Log ${s.text} + const subActionVar${s._id} = "${(s.text||"").replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}; + _sendToFrontEnd(${s._id}, {text: subActionVar${s._id}}); + console.log(subActionVar${s._id});`}renderDebug(s){return b.I18n.t("Log: %s",s.data.text)}onTagChange(){this.setState({inputs:[{nameRender:"renderModalInput",attr:"text",defaultValue:"My device triggered",nameBlock:"Log text"}]},()=>super.onTagChange())}static getStaticData(){return{acceptedBy:"actions",name:"Log text",id:"ActionPrintText",icon:"Subject",title:"Print some text in log",helpDialog:"You can use %s in the text to display current trigger value or %id to display the triggered object ID"}}getData(){return dc.getStaticData()}}class hc extends Xe{constructor(s){super(s,hc.getStaticData())}static compile(s){const i=s.unit==="ms"?1:s.unit==="s"?1e3:s.unit==="m"?6e4:36e5;return`// pause for ${i}ms + _sendToFrontEnd(${s._id}, {paused: true}); + + await wait(${s.pause} * ${i}); + + _sendToFrontEnd(${s._id}, {paused: false});`}renderDebug(s){return b.I18n.t("Paused: %s",s.data.paused)}_getOptions(s){return s=s===void 0?this.state.settings.pause:s,s===1||s==="1"?[{value:"ms",title:"millisecond"},{value:"s",title:"second"},{value:"m",title:"minute"},{value:"h",title:"hour"}]:[{value:"ms",title:"milliseconds"},{value:"s",title:"seconds"},{value:"m",title:"minutes"},{value:"h",title:"hours"}]}_setInputs(s){this.setState({inputs:[{nameRender:"renderNumber",attr:"pause",defaultValue:100,noHelperText:!0},{nameRender:"renderSelect",attr:"unit",defaultValue:"ms",options:this._getOptions(s)}]},()=>super.onTagChange())}onValueChanged(s,i){i==="pause"&&this._setInputs(s)}onTagChange(){this._setInputs()}static getStaticData(){return{acceptedBy:"actions",name:"Pause",id:"ActionPause",icon:"Pause",title:"Make a pause between actions"}}getData(){return hc.getStaticData()}}class pc extends Xe{constructor(s){super(s,pc.getStaticData())}static compile(s){const i=(s.func||"").split(` +`).map(r=>` ${r}`);return i.unshift(` _sendToFrontEnd(${s._id}, {func: 'executed'});`),i.unshift("// user function"),i.join(` +`)}renderDebug(){return b.I18n.t("Function: executed")}onTagChange(s){this.setState({inputs:[{nameRender:"renderModalInput",attr:"func",noTextEdit:!0,defaultValue:'console.log("Test")',nameBlock:"Function"}]},()=>super.onTagChange(s))}static getStaticData(){return{acceptedBy:"actions",name:"User function",id:"ActionFunction",icon:"Functions",title:"Write your own code",helpDialog:"This is advances option. You can write your own code here and it will be executed on trigger"}}getData(){return pc.getStaticData()}}class gc extends Xe{constructor(s){super(s,gc.getStaticData())}isAllTriggersOnState(){var s,i,r,l;return!!((i=(s=this.props.userRules)==null?void 0:s.triggers)!=null&&i.find(u=>u.id==="TriggerState"))&&!((l=(r=this.props.userRules)==null?void 0:r.triggers)!=null&&l.find(u=>u.id!=="TriggerState"))}static compile(s,i){let r=s.value;s.useTrigger?r=s.toggle?"!obj.state.val":"obj.state.val":(r==null&&(r=""),typeof s.value=="string"&&parseFloat(s.value).toString()!==s.value&&s.value!=="true"&&s.value!=="false"&&(r=`"${r.replace(/"/g,'\\"')}"${Xe.getReplacesInText(i)}`));let l;return s.toggle&&!s.useTrigger?l=`const subActionVar${s._id} = !(await getStateAsync("${s.oid}")).val`:l=`const subActionVar${s._id} = ${r}`,`// set delayed state ${s.oid} to ${s.toggle&&!s.useTrigger?"toggle":r} with delay of ${s.delay}ms + ${l}; + _sendToFrontEnd(${s._id}, {val: subActionVar${s._id}, ack: ${s.tagCard==="update"}}); + setStateDelayed("${s.oid}", subActionVar${s._id}, ${s.tagCard==="update"}, ${parseInt(s.delay,10)}, ${s.clearRunning?"true":"false"});`}renderDebug(s){var i,r;return p.jsxs("span",{children:[b.I18n.t("Set:")," ",p.jsx("span",{className:s.data.ack?(i=this.props.classes)==null?void 0:i.valueAck:(r=this.props.classes)==null?void 0:r.valueNotAck,children:hn(s.data.val)})]})}_setInputs(s,i){const r=this.isAllTriggersOnState();i=i===void 0?this.state.settings.toggle:i,s=s===void 0?this.state.settings.useTrigger:s;let l="",u;const{oidType:d,oidUnit:g,oidStates:m,oidMax:f,oidMin:v,oidRole:w,oidWrite:_,oidStep:S}=this.state.settings;let k;d&&(d==="number"?(l="number",f!==void 0&&v!==void 0&&(l="slider")):d==="boolean"?(l="boolean",w&&w.includes("button")&&_&&(l="button")):(l="",w&&w.includes("color")&&(l="color")),m&&(u=Object.keys(m).map(E=>({value:E,title:m[E]})),l="select"));let C;if(r&&s)C=[{backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger",defaultValue:!1}],l==="boolean"&&C.push({backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1});else{switch(l){case"number":C=[{backText:g||"",frontText:"with",nameRender:"renderNumber",defaultValue:f===void 0?0:f,attr:"value"}],this.state.settings.value!==void 0&&isNaN(parseFloat(this.state.settings.value))&&(k={value:f===void 0?0:f});break;case"slider":{C=[{nameRender:"renderSlider",defaultValue:f,min:v,max:f,unit:g,step:S,attr:"value"}];const E=parseFloat(this.state.settings.value);this.state.settings.value!==void 0&&(isNaN(E)||Ef)&&(k={value:f});break}case"select":C=[{nameRender:"renderSelect",frontText:"with",options:u,defaultValue:(u==null?void 0:u[0].value)||"",attr:"value"}],this.state.settings.value!==void 0&&!(u!=null&&u.find(E=>E.value===this.state.settings.value))&&(k={value:(u==null?void 0:u[0].value)||""});break;case"boolean":C=[{backText:"toggle value",attr:"toggle",nameRender:"renderCheckbox",defaultValue:!1}],i||C.push({backText:"true",frontText:"false",nameRender:"renderSwitch",defaultValue:!1,attr:"value"}),this.state.settings.value!==void 0&&this.state.settings.value!==!1&&this.state.settings.value!==!0&&(k={value:!1});break;case"button":C=[{nameRender:"renderButton",defaultValue:!0,attr:"value"}],this.state.settings.value!==void 0&&this.state.settings.value!==!0&&(k={value:!0});break;case"color":C=[{nameRender:"renderColor",frontText:"with",defaultValue:"#FFFFFF",attr:"value"}],this.state.settings.value!==void 0&&(typeof this.state.settings.value!="string"||!this.state.settings.value.startsWith("#")&&!this.state.settings.value.startsWith("rgb"))&&(k={value:"#FFFFFF"});break;default:C=[{backText:g||"",frontText:"with",nameRender:"renderText",defaultValue:"",attr:"value"}];break}r&&C.unshift({backText:"use trigger value",nameRender:"renderCheckbox",attr:"useTrigger"})}return C.push({backText:"ms",frontText:"Delay",nameRender:"renderNumber",defaultValue:1e3,noHelperText:!0,attr:"delay"}),C.push({backText:"clear running",nameRender:"renderCheckbox",defaultValue:!0,attr:"clearRunning"}),{inputs:C,newSettings:k}}onTagChange(s,i,r,l,u){u=u===void 0?this.state.settings.useTrigger:u;const{inputs:d,newSettings:g}=this._setInputs(u,l);d.unshift({nameRender:"renderObjectID",attr:"oid",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:d},()=>super.onTagChange(null,()=>{if(g){const m=JSON.parse(JSON.stringify(this.state.settings));Object.assign(m,g),this.setState(m),this.props.onChange(m)}}))}onValueChanged(s,i){this.onTagChange(void 0,void 0,void 0,i==="toggle"?s:void 0,i==="useTrigger"?s:void 0)}onUpdate(){this.onTagChange()}static getStaticData(){return{acceptedBy:"actions",name:"Set with delay",id:"ActionSetStateDelayed",icon:"PlayForWork",tagCardArray:["control","update"],title:"Control or update some state with delay",helpDialog:"You can use %s in the value to use the current trigger value or %id to display the triggered object ID"}}getData(){return gc.getStaticData()}}class mc extends Xe{constructor(s){super(s,mc.getStaticData())}isAllTriggersOnState(){var s,i,r,l;return!!((i=(s=this.props.userRules)==null?void 0:s.triggers)!=null&&i.find(u=>u.id==="TriggerState"))&&!((l=(r=this.props.userRules)==null?void 0:r.triggers)!=null&&l.find(u=>u.id!=="TriggerState"))}static compile(s){const i=`const val2_${s._id} = (await getStateAsync("${s.oid1}")).val;`,r=`const val1_${s._id} = (await getStateAsync("${s.oid2}")).val;`;return`// ${s.oid1} ${s.operation} ${s.oid2} => ${s.oidResult} + ${i} + ${r} + _sendToFrontEnd(${s._id}, {val: val1_${s._id} ${s.operation} val2_${s._id}, ack: ${s.tagCard==="update"}}); + await setStateAsync("${s.oidResult}", val1_${s._id} ${s.operation} val2_${s._id}, ${s.tagCard==="update"});`}renderDebug(s){var i,r;return p.jsxs("span",{children:[b.I18n.t("Set:")," ",p.jsx("span",{className:s.data.ack?(i=this.props.classes)==null?void 0:i.valueAck:(r=this.props.classes)==null?void 0:r.valueNotAck,children:hn(s.data.val)})]})}onTagChange(){const s=[];s.push({nameRender:"renderObjectID",title:"ID1",attr:"oid1",defaultValue:"",checkReadOnly:!1}),s.push({nameRender:"renderSelect",options:[{value:"+",title:"+"},{value:"-",title:"-"},{value:"*",title:"*"},{value:"/",title:"/"}],doNotTranslate:!0,defaultValue:"+",attr:"operation"}),s.push({nameRender:"renderObjectID",title:"ID2",attr:"oid2",defaultValue:"",checkReadOnly:!1}),s.push({nameRender:"renderNameText",defaultValue:"store in",attr:"textEqual"}),s.push({nameRender:"renderObjectID",attr:"oidResult",defaultValue:"",checkReadOnly:!0}),this.setState({inputs:s},()=>super.onTagChange(null,()=>{const i=JSON.parse(JSON.stringify(this.state.settings));this.props.onChange(i)}))}onValueChanged(s,i){this.onTagChange()}onUpdate(){this.onTagChange()}static getStaticData(){return{acceptedBy:"actions",name:"Operate two states",id:"ActionOperateStates",icon:"AddBox",tagCardArray:["control","update"],title:"Operations with two states"}}getData(){return mc.getStaticData()}}const GA=[ri,rc,ac,Er,Ir,Eo,lc,cc,uc,dc,hc,pc,gc,mc],Fl={sayit:sc,pushover:oc,"whatsapp-cmb":ic,pushsafer:nc},VA=V.createContext({blocks:null,socket:null,onUpdate:!1,setOnUpdate:a=>{},setOnDebugMessage:a=>{},onDebugMessage:[],enableSimulation:!1,setEnableSimulation:a=>{}}),KA=({children:a,socket:s})=>{const[i,r]=V.useState(null),[l,u]=V.useState(!1),[d,g]=V.useState([]),[m,f]=V.useState(!1);return V.useEffect(()=>{l&&u(!1)},[l]),V.useEffect(()=>{(async()=>{const v=await s.getAdapterInstances(),w=Object.keys(Fl).filter(E=>v.find(A=>{var R;return((R=A==null?void 0:A.common)==null?void 0:R.name)===E})),_=[],S=v.filter(E=>E.common.javascriptRules),k=[];for(const E of S){if(k.includes(E.common.name)||!E.common.javascriptRules)continue;let A;if(E.common.javascriptRules.url.startsWith("http:")||E.common.javascriptRules.url.startsWith("https:")?A=E.common.javascriptRules.url:E.common.javascriptRules.url.startsWith("./")?A=`${window.location.protocol}//${window.location.host}${E.common.javascriptRules.url.replace(/^\./,"")}`:A=`${window.location.protocol}//${window.location.host}/adapter/${E.common.name}/${E.common.javascriptRules.url}`,E.common.javascriptRules.i18n===!0){const R=A.lastIndexOf("/");let O;R!==-1?O=A.substring(0,R):O=A;const Z=b.I18n.getLanguage(),ae=`${O}/i18n/${Z}.json`;await fetch(ae).then(se=>se.json()).then(se=>b.I18n.extendTranslations(se,Z)).catch(se=>{if(Z!=="en")return fetch(`${O}/i18n/en.json`).then(ge=>ge.json()).then(ge=>b.I18n.extendTranslations(ge,Z)).catch(ge=>console.error(`Cannot load i18n "${ae}": ${ge}`));console.log(`Cannot load i18n "${ae}": ${se}`)})}else if(E.common.javascriptRules.i18n&&typeof E.common.javascriptRules.i18n=="object")try{b.I18n.extendTranslations(E.common.javascriptRules.i18n)}catch(R){console.error(`Cannot import i18n for "${E.common.javascriptRules.name}": ${R}`)}try{Jp.registerRemotes([{name:E.common.javascriptRules.name,entry:A,type:E.common.javascriptRules.type}]);const R=(await Jp.loadRemote(`${E.common.javascriptRules.name}/${E.common.javascriptRules.name}`)).default;R&&(_.push(R),k.push(E.common.name),Fl[E.common.name]=null)}catch(R){console.error(`Cannot load component "${E.common.javascriptRules.name}": ${R}`)}}const C=w.filter(E=>Fl[E]).map(E=>Fl[E]);r([...GA,...C,..._])})()},[]),p.jsx(VA.Provider,{value:{blocks:i,socket:s,onUpdate:l,setOnUpdate:u,onDebugMessage:d,setOnDebugMessage:g,enableSimulation:m,setEnableSimulation:f},children:a})},YA="Acknowledged",JA="Actions",XA="Add",qA="All",ZA="Any",QA="Apply",eR="April",tR="Ask",sR="Astronomical",oR="August",iR="Cancel",nR="Close",rR="Condition",aR="Conditions",lR="Console",cR="Copied",uR="December",dR="Default",hR="Delay",pR="Delete",gR="Description",mR="Done",fR="Exec shell",$R="Explanation",bR="Export",vR="Februar",yR="February",_R="Filter",wR="Folder",CR="Fr",TR="Friday",kR="ID",SR="ID1",ER="ID2",IR="Import",xR="Instance",DR="Instances",AR="Instructions",RR="Januar",OR="January",MR="July",NR="June",LR="Limit",BR="March",PR="May",FR="Menu",jR="Message",zR="Mo",UR="Model",HR="Monday",WR="Month",GR="More",VR="Name",KR="November",YR="OK",JR="October",XR="Ok",qR="Pause",ZR="Pushover",QR="Pushsafer",eO="Rename",tO="Repeat",sO="Restart",oO="Result",iO="Sa",nO="Saturday",rO="Save",aO="Schedule",lO="Script",cO="September",uO="Simulate",dO="Stack",hO="Start",pO="State",gO="Su",mO="Sunday",fO="Telegram",$O="Th",bO="Thursday",vO="Time",yO="Triggered",_O="Triggers",wO="Tu",CO="Tuesday",TO="URL",kO="Value",SO="Volume",EO="We",IO="Wednesday",xO="Write",DO="Yes",AO="acknowledgment",RO="all",OO="and",MO="Astro",NO="at",LO="control",BO="copy",PO="CRON",FO="Dawn",jO="This is a special mode in which states and objects will not change. But only information about each planned change will be displayed in the protocol.",zO="Debug",UO="Dusk",HO="easy",WO="every",GO="Function",VO="ID",KO="Name",YO="Role",JO="Room",XO="Golden hour",qO="End of golden hour",ZO='The code will be executed only every time when condition is true. E.g. if triggering on the temperature sensor value and the condition is "if temperature is greater than 20°C", the "then" actions will be executed every time when sensor sends the temperature and it is over 20°C. By 21°C, by 22°C and so on.',QO='The code will be executed only if the condition result changes. E.g. if triggering on the temperature sensor value and the condition is "if temperature is greater than 20°C", the "then" actions will be executed once when temperature is over 20. Next time the "then" actions will be executed when the temperature fails under 20 and then rises over 20 again.',eM="hours",tM="includes",sM="interval",oM="magic",iM="milliseconds",nM="minutes",rM="ms",aM="Nadir",lM="Nautical dawn",cM="Nautical dusk",uM="Next Sunrise",dM="Next sunset",hM="Night",pM="Night end",gM="normal",mM="offset",fM="one",$M="or",bM="quiet",vM="search",yM="seconds",_M="Solar noon",wM="sunrise",CM="Sunrise end",TM="Sunset",kM="Sunset start",SM="then",EM="Acknowledge",IM="From",xM="Last changed",DM="Quality",AM="Timestamp",RM="User",OM="Value",MM="two",NM="update",LM="Adds debug output to the log for many system commands",BM="Verbose log outputs",PM="when",FM="Wizard",jM={"%s not found":"%s not found","()":"()","(at %s)":"(at %s)","(optional)":"(optional)","-":"-",".":".","AI code generator":"AI code generator",Ack:YA,Actions:JA,"Actual time of day":"Actual time of day",Add:XA,"Add new script":"Add new script",All:qA,"All files will be accepted":"All files will be accepted",Any:ZA,"Any month":"Any month",Apply:QA,April:eR,"Are you sure?":"Are you sure?",Ask:tR,Astronomical:sR,"Astronomical events today":"Astronomical events today",August:oR,"Blockly description":"Creating rules by graphic blocks","Body:":"Body:",Cancel:iR,"Cannot delete non empty item!":"Cannot delete non empty item!","Change layout":"Change layout",'Change theme (actual "%s")':'Change theme (now - "%s")',"Check blocks":"Check blocks","Check is not active, because javascript adapter is disabled":"Check is not active, because Javascript adapter is disabled","Clear search input":"Clear search input","Click on this icon":"Click on this icon",Close:nR,"Close all but current":"Close all but current","Collapse all":"Collapse all","Compares current time with astronomical event":"Compares current time with astronomical event","Compares current time with the user specific time":"Compares current time with the user specific time","Compares the state value with user defined value":"Compares the state value with user defined value",Condition:rR,Conditions:aR,"Configuration not saved.":"Configuration not saved.",Console:lR,"Control or update some state":"Control or update some state","Control or update some state with delay":"Control or update some state with delay","Convert blockly to javascript for ever.":"Permanently convert Blockly to Javascript.",Copied:cR,"Copy script":"Copy script","Copy to clipboard":"Copy to clipboard","Create new":"Create new","Create new folder":"Create new folder","Create new script":"Create new script","Create or edit CRON or time wizard":"Create or edit CRON or time wizard","Dark Theme":"Dark theme","Dark style":"Dark style",Date:"Date","Debug instance":"Debug instance","Debug options":"Debug options",December:uR,Default:dR,"Define cron...":"Define cron...","Define schedule...":"Define schedule...",Delay:hR,Delete:pR,"Delete %s":"Delete %s...","Delete folder":"Delete folder","Delete script":"Delete script",Description:gR,"Deselect all":"Deselect all","Discard changes for %s":"Discard changes for %s",Done:mR,"Double click to write value":"Double click to write value","Download as file":"Download as file","Drop some files here or click...":"Drop some files here or click...","Duplicate name":"Duplicate name","Edit script or just double click":"Edit script or just double click","Empty name is not allowed":"Empty name is not allowed","End search mode":"End search mode","Enter your question":"Enter your request",Error:"Error","Error formatting code":"Error formatting code","Error was found":"Error was found","Every day":"Every day",Exec:fR,"Executes some shell command":"Executes some shell command","Existing scripts will be overwritten.":"Existing scripts will be overwritten.","Expand all":"Expand all","Expert mode":"Expert mode",Explanation:$R,Export:bR,"Export all scripts":"Export all scripts","Export blocks":"Export blocks","Export selected blocks":"Export selected blocks",Februar:vR,February:yR,Filter:_R,Folder:wR,Fr:CR,Friday:TR,Function:"Function","Function editor":"Function editor","Function: executed":"Function: executed","Go to next line":"Go to next line","HTTP Call":"HTTP Call","Hide logs":"Hide logs",ID:kR,ID1:SR,ID2:ER,Import:IR,"Import blocks":"Import blocks","Import error":"Import error","Import scripts":"Import scripts","Insert object ID":"Insert object ID",Instance:xR,"Instance is disabled":"Instance is disabled","Instance:":"Instance:",Instances:DR,Instructions:AR,"Invalid CRON":"Invalid CRON","It will not be possible to revert this operation.":"It will not be possible to revert this operation.","JS description":"Creating rules by writing Javascript",Januar:RR,January:OR,July:MR,June:NR,"Just check":"Just check","Language:":"Language:","Learn More":"Learn More","Light style":"Light style",Limit:LR,"Local time":"Local time","Locate file":"Locate file","Log outputs":"Log outputs","Log text":"Log text","Log: %s":"Log: %s","Make a HTTP get request":"Make a HTTP get request","Make a pause between actions":"Make a pause between actions",March:BR,"March ":"March ",May:PR,Menu:FR,Message:jR,Mo:zR,Model:UR,Monday:HR,Month:WR,More:GR,Name:VR,"No Chat GPT Key found":"No Chat GPT Key found","No active host found":"No active host found","Nothing found":"Nothing found",November:KR,OK:YR,October:JR,Ok:XR,"On condition change":"On condition result change","On script save or adapter start":"On script save or adapter start","On weekdays":"On weekdays","Open configuration":"Open configuration","Operate two states":"Operate two states","Operations with two states":"Operations with two states","Paste your blocks here":"Paste your blocks here",Pause:qR,"Pause execution":"Pause execution","Pause script":"Pause script","Phone:":"Phone:","Please select object ID...":"Please select object ID...","Press Ctrl+Enter to get the answer":"Press Ctrl+Enter to get the answer","Prettify the script":"Prettify the script","Print some text in log":"Print some text in log","Priority:":"Priority:",Pushover:ZR,Pushsafer:QR,"Read only ID selected: %s":"Read only ID selected: %s",Rename:eO,"Reorder scripts in folders":"Reorder scripts in folders",Repeat:tO,Restart:sO,Result:oO,"Resume execution":"Resume execution","Root folder":"Root folder","Rules description":"Create rules with IF, THEN, ELSE blocks","Run script":"Run script",Sa:iO,Saturday:nO,Save:rO,"Save all":"Save all","Say It":"Say It","Say some text via sayit adapter":"Say some text via sayit adapter",Schedule:aO,Script:lO,"Script %s was modified on disk":"Script %s was modified on disk","Script is not running":"Script is not running","Search in scripts":"Search in scripts","Search...":"Search...","Select all":"Select all","Send email":"Send email","Sends an email":"Sends an email","Sends message via Pushsafer":"Sends message via Pushsafer","Sends message via pushover":"Sends message via pushover","Sends message via telegram":"Sends message via telegram","Sends message via whatsapp-cmb":"Sends message via whatsapp-cmb",September:cO,"Server time":"Server time","Set state action":"Set state action","Set with delay":"Set with delay","Shell command":"Shell command","Show astronomical events":"Show astronomical events","Show javascript code":"Show Javascript code","Show logs":"Show logs","Show only paused scripts":"Show only paused scripts","Show only running scripts":"Show only running scripts","Show only scripts with problems":"Show only scripts with problems",Simulate:uO,"Some files will be rejected":"Some files will be rejected","Sound:":"Sound:",Stack:dO,Start:hO,"Start script":"Start script",State:pO,"State condition":"State condition","Step into function":"Step into function","Step out from function":"Step out from function","Stop on exception":"Stop on exception",Su:gO,"Subject:":"Subject:",Sunday:mO,"TS description":"Creating rules by writing Typescript",Telegram:fO,"Text:":"Text:",Th:$O,"The script will be stopped and must be activated manually after debugging. Continue?":"The script will be stopped and must be activated manually after debugging. Continue?","This is advances option. You can write your own code here and it will be executed on trigger":"This is advances option. You can write your own code here and it will be executed on trigger",Thursday:bO,Time:vO,"Time condition":"Time condition","Title:":"Title:","To:":"To:","Trigger with value":"Trigger with value",Triggered:yO,Triggers:_O,"Triggers the on script saving or the javascript instance restart":"Triggers the on script saving or the javascript instance restart","Triggers the rule on update or change of some state":"Triggers the rule on update or change of some state","Triggers the rule periodically or on some specific time":"Triggers the rule periodically or on some specific time",Tu:wO,Tuesday:CO,URL:TO,"Unknown error":"Unknown error","Unknown error!":"Unknown error!","Use generated code":"Use generated code","User function":"User function","User:":"User:",Value:kO,"Vibration:":"Vibration:",Volume:SO,We:EO,Wednesday:IO,"Whatsapp-cmb":"Whatsapp-cmb",Write:xO,"Write your own code":"Write your own code",Yes:DO,"Yet exists!":"Yet exists!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"You can use %s in the URL to use current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"You can use %s in the command to use current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"You can use %s in the text to display current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"You can use %s in the value to use the current trigger value, %id to use the triggered object ID, %name to show triggered object ID name or %old to use old trigger value","You have to enter OpenAI API key in the configuration of javascript adapter.":"You have to enter OpenAI API key in the configuration of javascript adapter.","[equal]":"[equal]","[greater or equal]":"[greater or equal]","[greater]":"[greater]","[hysteresis]":"[hysteresis]","[includes]":"[includes]","[less or equal]":"[less or equal]","[less]":"[less]","[not equal]":"[not equal]",acknowledgment:AO,all:RO,and:OO,astro:MO,at:NO,"clear running":"clear running",control:LO,copy:BO,cron:PO,dawn:FO,debug_help:jO,debug_label:zO,default:"default",dusk:UO,easy:HO,else:"else","equal to":"equal to",every:WO,"every hour at 0 minutes":"every hour at 0 minutes",false:"false","file reading has failed: %s":"file reading has failed: %s","file reading was aborted":"file reading was aborted",filter_func:GO,filter_id:VO,filter_name:KO,filter_role:YO,filter_room:JO,"for edit or create script":"for edit or create a new script","for professionals":"for professionals","for programmers":"for programmers",goldenHour:XO,goldenHourEnd:qO,"greater or equal":"greater or equal","greater or equal to":"greater or equal to","greater than":"greater than",help_just_check:ZO,help_on_change:QO,"high priority":"high priority","high-priority":"high-priority","highest priority":"highest priority",hours:eM,includes:tM,interval:sM,"just check":"just check","less or equal":"less or equal","less or equal to":"less or equal to","less than":"less than","lower priority":"lower priority","lowest priority":"lowest priority",magic:oM,milliseconds:iM,minutes:nM,ms:rM,nadir:aM,nauticalDawn:lM,nauticalDusk:cM,nextSunrise:uM,nextSunset:dM,night:hM,nightEnd:pM,"no blocks found":"No blocks found","no group":"NO GROUP",normal:gM,"normal priority":"normal priority","not equal to":"not equal to","not properly connected":"This block is not properly connected to other blocks.",offset:mM,"on change":"on change","on condition change":"on condition change","on update":"on update",one:fM,or:$M,quiet:bM,"reset search":"reset search",search:vM,seconds:yM,solarNoon:_M,"store in":"store in",sunrise:wM,sunriseEnd:CM,sunset:TM,sunsetStart:kM,then:SM,"toggle value":"toggle value",tooltip_ack:EM,tooltip_from:IM,tooltip_lc:xM,tooltip_quality:DM,tooltip_ts:AM,tooltip_user:RM,tooltip_value:OM,true:"true",two:MM,undefined:"undefined",update:NM,"use seconds":"use seconds","use trigger value":"use trigger value",verbose_help:LM,verbose_label:BM,when:PM,with:"with","with date":"with date","with offset":"with offset",wizard:FM},zM="Bestätigt",UM="Aktionen",HM="Hinzufügen",WM="Alle",GM="Egal",VM="Anwenden",KM="April",YM="Fragen",JM="Astronomisch",XM="August",qM="Abbrechen",ZM="Schließen",QM="Bedingung",eN="Bedingungen",tN="Konsole",sN="Kopiert",oN="Dezember",iN="Standard",nN="Verzögerung",rN="Löschen",aN="Beschreibung",lN="Fertig",cN="Exec shell",uN="Erläuterung",dN="Export",hN="Februar",pN="Februar",gN="Filter",mN="Ordner",fN="Fr",$N="Freitag",bN="ID",vN="ID1",yN="ID2",_N="Import",wN="Instanz",CN="Instanzen",TN="Anleitung",kN="Januar",SN="Januar",EN="Juli",IN="Juni",xN="Grenze",DN="März",AN="Mai",RN="Menü",ON="Nachricht",MN="Mo",NN="Modell",LN="Montag",BN="Monat",PN="Mehr",FN="Name",jN="November",zN="OK",UN="Oktober",HN="Ok",WN="Pause",GN="Pushover",VN="Pushsafer",KN="Umbenennen",YN="Wiederholen",JN="Neustart",XN="Ergebnis",qN="Sa",ZN="Samstag",QN="Speichern",eL="Zeitplan",tL="Skript",sL="September",oL="Simulieren",iL="Stack",nL="Start",rL="Zustand",aL="So",lL="Sonntag",cL="Telegram",uL="Do",dL="Donnerstag",hL="Zeit",pL="Ausgelöst",gL="Löst aus",mL="Di",fL="Dienstag",$L="URL",bL="Wert",vL="Volumen",yL="Mi",_L="Mittwoch",wL="Schreiben",CL="Ja",TL="Wissen",kL="alle",SL="und",EL="Astro",IL="um",xL="Steuerung",DL="Kopie",AL="CRON",RL="Morgendämmerung",OL="Dies ist ein spezieller Modus, in dem sich Zustände und Objekte nicht ändern. Im Protokoll werden jedoch nur Informationen zu jeder geplanten Änderung angezeigt.",ML="Debuggen",NL="Abenddämmerung",LL="einfach",BL="jeder",PL="Funktion",FL="ID",jL="Name",zL="Rolle",UL="Raum",HL="Goldene Abendstunde",WL="Vormittag",GL='Der Code wird jedes Mal ausgeführt, wenn die Bedingung erfüllt ist. z.B. wenn der Temperatur wert sich ändert und die Bedingung "Wenn die Temperatur größer als 20°C ist" lautet, werden die "Dann" -Aktionen jedes Mal ausgeführt, wenn der Sensor die Temperatur sendet und diese über 20°C liegt. Bei 21°C, bei 22°C und so weiter.',VL='Der Code wird nur ausgeführt, wenn sich das Ergebnis der Bedingung ändert. z.B. wenn sich der Temperatur wert ändert und die Bedingung "Wenn die Temperatur größer als 20°C ist" lautet, werden die "Dann" -Aktionen einmal ausgeführt, wenn die Temperatur über 20°C liegt. Das nächste Mal werden die "Dann" -Aktionen ausgeführt, wenn die Temperatur unter 20°C gefallen ist und dann wieder über 20°C ansteigt.',KL="Stunden",YL="beinhaltet",JL="Intervall",XL="Magie",qL="Millisekunden",ZL="Minuten",QL="ms",e1="Nadir",t1="nautische Morgendämmerung",s1="nautische Abenddämmerung",o1="Nächster Sonnenaufgang",i1="Nächster Sonnenuntergang",n1="Nacht",r1="astronomische Morgendämmerung",a1="Normal",l1="Versatz",c1="einer",u1="oder",d1="ruhig",h1="Suche",p1="Sekunden",g1="(Nach-)Mittag",m1="Sonnenaufgang",f1="Goldene Morgenstunde",$1="Sonnenuntergang",b1="Sonnenuntergang (Anfang)",v1="dann",y1="Bestätigen",_1="Von",w1="Zuletzt geändert",C1="Qualität",T1="Zeitstempel",k1="Benutzer",S1="Wert",E1="zwei",I1="Aktualisieren",x1="Fügt Debug-Ausgaben für viele Systembefehle zum Protokoll hinzu",D1="Ausführliche Protokollausgaben",A1="falls",R1="Assistent",O1={"%s not found":"%s nicht gefunden","()":"()","(at %s)":"(um %s)","(optional)":"(optional)","-":"-",".":".","AI code generator":"KI-Codegenerator",Ack:zM,Actions:UM,"Actual time of day":"Tatsächliche Tageszeit",Add:HM,"Add new script":"Neues Skript hinzufügen",All:WM,"All files will be accepted":"Alle Dateien werden akzeptiert",Any:GM,"Any month":"Jeden Monat",Apply:VM,April:KM,"Are you sure?":"Wirklich sicher?",Ask:YM,Astronomical:JM,"Astronomical events today":"Astronomische Ereignisse heute",August:XM,"Blockly description":"Erstellen von Regeln durch Grafikblöcke","Body:":"Körper:",Cancel:qM,"Cannot delete non empty item!":"Kann nicht gelöscht werden, weil noch einige Elementen darin sind!","Change layout":"Layout ändern",'Change theme (actual "%s")':'Thema ändern (jetzt - "%s")',"Check blocks":"Blöcke prüfen","Check is not active, because javascript adapter is disabled":"Syntax-Check ist nicht aktiv, weil der Javascript Adapter nicht aktiv ist.","Clear search input":"Sucheingabe löschen","Click on this icon":"Auf dieses Symbol klicken",Close:ZM,"Close all but current":"Alle anderen außer dem Aktiven schließen","Collapse all":"Alles einklappen","Compares current time with astronomical event":"Vergleicht die aktuelle Zeit mit einem astronomischen Ereignis","Compares current time with the user specific time":"Vergleicht die aktuelle Zeit mit der benutzerspezifischen Zeit","Compares the state value with user defined value":"Vergleicht den Zustandswert mit dem benutzerdefinierten Wert",Condition:QM,Conditions:eN,"Configuration not saved.":"Die Konfiguration ist nicht gespeichert.",Console:tN,"Control or update some state":"Zustand steuern oder aktualisieren","Control or update some state with delay":"Zustand mit Verzögerung steuern oder aktualisieren","Convert blockly to javascript for ever.":"Blockly dauerhaft in Javascript konvertieren.",Copied:sN,"Copy script":"Skript kopieren","Copy to clipboard":"In die Zwischenablage kopieren","Create new":"Neu erstellen","Create new folder":"Neuen Ordner erstellen","Create new script":"Neues Skript erstellen","Create or edit CRON or time wizard":"CRON- oder Zeit-Assistenten erstellen oder bearbeiten","Dark Theme":"Dunkles Thema","Dark style":"Dunkler Stil",Date:"Datum","Debug instance":"Debug-Instanz","Debug options":"Debug-Optionen",December:oN,Default:iN,"Define cron...":"Cron definieren ...","Define schedule...":"Zeitplan definieren ...",Delay:nN,Delete:rN,"Delete %s":"Löschen %s...","Delete folder":"Ordner löschen","Delete script":"Skript löschen",Description:aN,"Deselect all":"Alles abwählen","Discard changes for %s":"Änderungen für %s verwerfen",Done:lN,"Double click to write value":"Doppelklick zum Schreiben des Wertes","Download as file":"Download als Datei","Drop some files here or click...":"Dateien hier ablegen oder klicken ...","Duplicate name":"Doppelter Name","Edit script or just double click":"Skript bearbeiten oder einfach doppelklicken","Empty name is not allowed":"Leerer Name ist nicht zulässig","End search mode":"Suchmodus beenden","Enter your question":"Anfrage eingeben",Error:"Fehler","Error formatting code":"Fehler beim Formatieren des Codes","Error was found":"Fehler wurde gefunden","Every day":"Täglich",Exec:cN,"Executes some shell command":"Führt einen Shell-Befehl aus","Existing scripts will be overwritten.":"Vorhandene Skripte werden überschrieben.","Expand all":"Alle erweitern","Expert mode":"Expertenmodus",Explanation:uN,Export:dN,"Export all scripts":"Alle Skripte exportieren","Export blocks":"Blöcke exportieren","Export selected blocks":"Ausgewählte Blöcke exportieren",Februar:hN,February:pN,Filter:gN,Folder:mN,Fr:fN,Friday:$N,Function:"Funktion","Function editor":"Funktions-Editor","Function: executed":"Funktion: ausgeführt","Go to next line":"Gehe zur nächsten Zeile","HTTP Call":"HTTP-Aufruf","Hide logs":"Protokoll ausblenden",ID:bN,ID1:vN,ID2:yN,Import:_N,"Import blocks":"Blöcke importieren","Import error":"Fehler beim Importieren","Import scripts":"Skripte importieren","Insert object ID":"Objekt-ID einfügen",Instance:wN,"Instance is disabled":"Instanz ist deaktiviert","Instance:":"Instanz:",Instances:CN,Instructions:TN,"Invalid CRON":"Ungültiger CRON","It will not be possible to revert this operation.":"Dieser Vorgang kann nicht rückgängig gemacht werden.","JS description":"Regeln erstellen mit JavaScript",Januar:kN,January:SN,July:EN,June:IN,"Just check":"Einfach überprüfen","Language:":"Sprache:","Learn More":"Mehr erfahren","Light style":"Heller Stil",Limit:xN,"Local time":"Lokale Zeit","Locate file":"Datei zeigen","Log outputs":"Protokoll","Log text":"Protokolltext","Log: %s":"Log: %s","Make a HTTP get request":"Eine HTTP-Abrufanforderung stellen","Make a pause between actions":"Eine Pause zwischen den Aktionen machen",March:DN,"March ":"März ",May:AN,Menu:RN,Message:ON,Mo:MN,Model:NN,Monday:LN,Month:BN,More:PN,Name:FN,"No Chat GPT Key found":"Kein Chat-GPT-Schlüssel gefunden","No active host found":"Kein aktiver Host gefunden","Nothing found":"Nichts gefunden",November:jN,OK:zN,October:UN,Ok:HN,"On condition change":"Bei Änderung des Ergebnis der Bedingung","On script save or adapter start":"Beim Speichern des Skripts oder beim Starten des Adapters","On weekdays":"An Wochentagen","Open configuration":"Konfiguration öffnen","Operate two states":"Zwei Zustände operieren","Operations with two states":"Operationen mit zwei Zuständen","Paste your blocks here":"Fügen Sie Ihre Blöcke hier ein",Pause:WN,"Pause execution":"Ausführung pausieren","Pause script":"Skript anhalten","Phone:":"Telefon:","Please select object ID...":"Objekt-ID auswählen ...","Press Ctrl+Enter to get the answer":"Strg+Eingabetaste, um die Antwort zu erhalten","Prettify the script":"Verschönern Sie das Skript","Print some text in log":"Einen Text im Protokoll ausdrucken","Priority:":"Priorität:",Pushover:GN,Pushsafer:VN,"Read only ID selected: %s":"Schreibgeschützte ID ausgewählt: %s",Rename:KN,"Reorder scripts in folders":"Skripte in Ordnern neu ordnen",Repeat:YN,Restart:JN,Result:XN,"Resume execution":"Ausführung fortsetzen","Root folder":"Root-Verzeichnis","Rules description":"Regeln erstellen mit WENN-, DANN- und SONST-Blöcken","Run script":"Skript ausführen",Sa:qN,Saturday:ZN,Save:QN,"Save all":"Alle speichern","Say It":"Say It","Say some text via sayit adapter":"Einen Text über den Sayit-Adapter sagen",Schedule:eL,Script:tL,"Script %s was modified on disk":'Skript "%s" wurde auf der Festplatte geändert',"Script is not running":"Skript läuft nicht","Search in scripts":"Suche in Skripten","Search...":"Suche...","Select all":"Alles auswählen","Send email":"E-Mail senden","Sends an email":"Sendet eine E-Mail","Sends message via Pushsafer":"Sendet eine Nachricht über Pushsafer","Sends message via pushover":"Sendet eine Nachricht per Pushover","Sends message via telegram":"Sendet eine Nachricht per telegram","Sends message via whatsapp-cmb":"Sendet eine Nachricht über WhatsApp-Cmb",September:sL,"Server time":"Server-Zeit","Set state action":"Zustand setzten","Set with delay":"Setzen mit Verzögerung","Shell command":"Shell-Befehl","Show astronomical events":"Astronomische Ereignisse anzeigen","Show javascript code":"Javascript-Code zeigen","Show logs":"Protokoll anzeigen","Show only paused scripts":"Nur angehaltene Skripte zeigen","Show only running scripts":"Nur laufende Skripte zeigen","Show only scripts with problems":"Nur Skripte mit Problemen zeigen",Simulate:oL,"Some files will be rejected":"Einige Dateien werden abgelehnt","Sound:":"Klang:",Stack:iL,Start:nL,"Start script":"Skript starten",State:rL,"State condition":"Zustandsbedingung","Step into function":"Schritt in die Funktion","Step out from function":"Raus aus der Funktion","Stop on exception":"Bei Ausnahme anhalten",Su:aL,"Subject:":"Gegenstand:",Sunday:lL,"TS description":"Regeln erstellen mit TypeScript",Telegram:cL,"Text:":"Text:",Th:uL,"The script will be stopped and must be activated manually after debugging. Continue?":"Das Skript wird gestoppt und muss nach dem Debuggen manuell aktiviert werden. Fortsetzen?","This is advances option. You can write your own code here and it will be executed on trigger":"Dies ist eine erweiterte Option. Sie können hier Ihren eigenen Code schreiben, der beim Auslösen ausgeführt wird",Thursday:dL,Time:hL,"Time condition":"Zeitbedingung","Title:":"Titel:","To:":"Zu:","Trigger with value":"Trigger mit Wert",Triggered:pL,Triggers:gL,"Triggers the on script saving or the javascript instance restart":"Löst das Speichern des Skripts oder den Neustart der Javascript-Instanz aus","Triggers the rule on update or change of some state":"Löst die Regel beim Aktualisieren oder Ändern eines Zustands aus","Triggers the rule periodically or on some specific time":"Löst periodisch oder zu einem bestimmten Zeitpunkt aus",Tu:mL,Tuesday:fL,URL:$L,"Unknown error":"Unbekannter Fehler","Unknown error!":"Unbekannter Fehler!","Use generated code":"Code verwenden","User function":"Benutzerfunktion","User:":"Benutzer:",Value:bL,"Vibration:":"Vibration:",Volume:vL,We:yL,Wednesday:_L,"Whatsapp-cmb":"WhatsApp-cmb",Write:wL,"Write your own code":"Eigenen Code schreiben",Yes:CL,"Yet exists!":"Existiert schon!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Sie können %s in der URL verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ausgelöste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Sie können %s im Befehl verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ausgelöste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Sie können %s im Text verwenden, um den aktuellen Triggerwert anzuzeigen, %id, um die ausgelöste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Sie können %s im Wert verwenden, um den aktuellen Triggerwert zu verwenden, %id, um die ID des ausgelösten Objekts zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden","You have to enter OpenAI API key in the configuration of javascript adapter.":"Sie müssen den OpenAI-API-Schlüssel in der Konfiguration des Javascript-Adapters eingeben.","[equal]":"[gleich]","[greater or equal]":"[größer oder gleich]","[greater]":"[größer]","[hysteresis]":"[Hysterese]","[includes]":"[enthält]","[less or equal]":"[kleiner oder gleich]","[less]":"[kleiner]","[not equal]":"[ungleich]",acknowledgment:TL,all:kL,and:SL,astro:EL,at:IL,"clear running":"laufende abbrechen",control:xL,copy:DL,cron:AL,dawn:RL,debug_help:OL,debug_label:ML,default:"Standard",dusk:NL,easy:LL,else:"sonst","equal to":"gleich",every:BL,"every hour at 0 minutes":"jede Stunde bei 0 Minuten",false:"falsch","file reading has failed: %s":"Das Lesen der Datei ist fehlgeschlagen: %s","file reading was aborted":"Das Lesen der Datei wurde abgebrochen",filter_func:PL,filter_id:FL,filter_name:jL,filter_role:zL,filter_room:UL,"for edit or create script":"zum Bearbeiten oder zum Erstellen eines neues Skripts","for professionals":"für Profis","for programmers":"für Programmierer",goldenHour:HL,goldenHourEnd:WL,"greater or equal":"größer oder gleich","greater or equal to":"größer oder gleich","greater than":"größer als",help_just_check:GL,help_on_change:VL,"high priority":"hohe Priorität","high-priority":"hohe Priorität","highest priority":"höchste Priorität",hours:KL,includes:YL,interval:JL,"just check":"einfach prüfen","less or equal":"kleiner oder gleich","less or equal to":"kleiner oder gleich","less than":"kleiner als","lower priority":"geringere Priorität","lowest priority":"niedrigste Priorität",magic:XL,milliseconds:qL,minutes:ZL,ms:QL,nadir:e1,nauticalDawn:t1,nauticalDusk:s1,nextSunrise:o1,nextSunset:i1,night:n1,nightEnd:r1,"no blocks found":"Keine Blöcke gefunden","no group":"KEINE GRUPPE",normal:a1,"normal priority":"normale Priorität","not equal to":"ungleich","not properly connected":"Dieser Block ist mit anderen nicht richtig verbunden.",offset:l1,"on change":"bei Änderung","on condition change":"bei Zustandsänderung","on update":"beim Aktualisieren",one:c1,or:u1,quiet:d1,"reset search":"Suche zurücksetzen",search:h1,seconds:p1,solarNoon:g1,"store in":"speichern in",sunrise:m1,sunriseEnd:f1,sunset:$1,sunsetStart:b1,then:v1,"toggle value":"Wert umschalten",tooltip_ack:y1,tooltip_from:_1,tooltip_lc:w1,tooltip_quality:C1,tooltip_ts:T1,tooltip_user:k1,tooltip_value:S1,true:"wahr",two:E1,undefined:"nicht definiert",update:I1,"use seconds":"Sekunden verwenden","use trigger value":"Triggerwert benutzen",verbose_help:x1,verbose_label:D1,when:A1,with:"mit","with date":"mit Datum","with offset":"mit Versatz",wizard:R1},M1="Admitido",N1="Comportamiento",L1="Añadir",B1="Todos",P1="Alguna",F1="Apply",j1="abril",z1="Preguntar",U1="Astronómico",H1="agosto",W1="Cancelar",G1="Cerrar",V1="Condición",K1="Condiciones",Y1="Consola",J1="Copiado",X1="diciembre",q1="Defecto",Z1="Demora",Q1="Eliminar",eB="Descripción",tB="Hecho",sB="Ejecutivo shell",oB="Explicación",iB="Exportar",nB="Februar",rB="febrero",aB="Filtrar",lB="Carpeta",cB="P.",uB="viernes",dB="CARNÉ DE IDENTIDAD",hB="ID1",pB="ID2",gB="Importar",mB="Ejemplo",fB="Instancias",$B="Instrucciones",bB="Enero",vB="enero",yB="julio",_B="junio",wB="Límite",CB="marzo",TB="Mayo",kB="Menú",SB="Mensaje",EB="Mes",IB="Modelo",xB="lunes",DB="Mes",AB="Más",RB="Nombre",OB="noviembre",MB="OK",NB="octubre",LB="Okay",BB="Pausa",PB="Persona fácil de convencer",FB="Pushsafer",jB="Rebautizar",zB="Repetir",UB="Reiniciar",HB="Resultado",WB="Sa",GB="sábado",VB="Salvar",KB="Calendario",YB="Guión",JB="septiembre",XB="Simular",qB="Stack",ZB="Comienzo",QB="Expresar",eP="Su",tP="domingo",sP="Telegrama",oP="4",iP="jueves",nP="Tiempo",rP="Motivado",aP="Disparadores",lP="Tu",cP="martes",uP="URL",dP="Valor",hP="Volumen",pP="3",gP="miércoles",mP="Escribir",fP="sí",$P="Reconocimiento",bP="todos",vP="y",yP="astro",_P="a",wP="control",CP="Copiar",TP="CRON",kP="Amanecer",SP="Este es un modo especial en el que los estados y los objetos no cambiarán. Pero solo se mostrará información sobre cada cambio planificado en el protocolo.",EP="Depurar",IP="Oscuridad",xP="fácil",DP="cada",AP="Función",RP="CARNÉ DE IDENTIDAD",OP="Nombre",MP="Papel",NP="Habitación",LP="hora dorada",BP="Fin de la hora dorada",PP='El código se ejecutará solo cada vez que la condición sea verdadera. P.ej. si se activa en el valor del sensor de temperatura y la condición es "si la temperatura es superior a 20 ° C", las acciones "entonces" se ejecutarán cada vez que el sensor envíe la temperatura y supere los 20 ° C. Por 21 ° C, por 22 ° C y así sucesivamente.',FP='El código se ejecutará solo si cambia el resultado de la condición. P.ej. si se activa en el valor del sensor de temperatura y la condición es "si la temperatura es superior a 20 ° C", las acciones "entonces" se ejecutarán una vez cuando la temperatura sea superior a 20. La próxima vez, las acciones "entonces" se ejecutarán cuando la temperatura falla por debajo de 20 y luego sube por encima de 20 nuevamente.',jP="horas",zP="incluye",UP="intervalo",HP="magia",WP="milisegundos",GP="minutos",VP="ms",KP="nadir",YP="Amanecer náutico",JP="Atardecer náutico",XP="próximo amanecer",qP="Próxima puesta de sol",ZP="Noche",QP="Fin de la noche",eF="normal",tF="compensar",sF="uno",oF="o",iF="tranquilo",nF="buscar",rF="segundos",aF="Mediodía solar",lF="amanecer",cF="Final del amanecer",uF="puesta de sol",dF="Inicio al atardecer",hF="entonces",pF="Reconocer",gF="De",mF="Último cambio",fF="Calidad",$F="Marca de tiempo",bF="Usuario",vF="Valor",yF="dos",_F="actualizar",wF="Agrega salida de depuración al registro para muchos comandos del sistema",CF="Salidas de registro detalladas",TF="cuando",kF="Wizard",SF={"%s not found":"%s no encontrado","()":"()","(at %s)":"(en %s)","(optional)":"(Opcional)","-":"-",".":".","AI code generator":"Generador de código de IA",Ack:M1,Actions:N1,"Actual time of day":"Hora real del día",Add:L1,"Add new script":"Agregar nuevo script",All:B1,"All files will be accepted":"Todos los archivos serán aceptados.",Any:P1,"Any month":"Cualquier mes",Apply:F1,April:j1,"Are you sure?":"¿Estás seguro?",Ask:z1,Astronomical:U1,"Astronomical events today":"Eventos astronómicos hoy",August:H1,"Blockly description":"Crear reglas por bloques gráficos","Body:":"Cuerpo:",Cancel:W1,"Cannot delete non empty item!":"¡No se puede eliminar un elemento no vacío!","Change layout":"Cambia el diseño",'Change theme (actual "%s")':'Cambiar tema (ahora - "%s")',"Check blocks":"Comprobar bloques","Check is not active, because javascript adapter is disabled":"La comprobación no está activa porque el adaptador Javascript está desactivado","Clear search input":"Borrar entrada de búsqueda","Click on this icon":"Haga clic en este ícono",Close:G1,"Close all but current":"Cerrar todo menos el actual","Collapse all":"Desplegar todo","Compares current time with astronomical event":"Compara la hora actual con un evento astronómico","Compares current time with the user specific time":"Compara la hora actual con la hora específica del usuario","Compares the state value with user defined value":"Compara el valor del estado con el valor definido por el usuario",Condition:V1,Conditions:K1,"Configuration not saved.":"Configuración no guardada.",Console:Y1,"Control or update some state":"Controlar o actualizar algún estado","Control or update some state with delay":"Controlar o actualizar algún estado con retraso","Convert blockly to javascript for ever.":"Convierta instantáneamente en bloque a Javascript.",Copied:J1,"Copy script":"Copiar guion","Copy to clipboard":"Copiar al portapapeles","Create new":"Crear nuevo","Create new folder":"Crear nueva carpeta","Create new script":"Crear nuevo script","Create or edit CRON or time wizard":"Crear o editar CRON o asistente de tiempo","Dark Theme":"Tema oscuro","Dark style":"Estilo oscuro",Date:"Fecha","Debug instance":"Instancia de depuración","Debug options":"Opciones de depuración",December:X1,Default:q1,"Define cron...":"Definir cron ...","Define schedule...":"Definir horario ...",Delay:Z1,Delete:Q1,"Delete %s":"Eliminar %s ...","Delete folder":"Eliminar carpeta","Delete script":"Eliminar guión",Description:eB,"Deselect all":"Deseleccionar todo","Discard changes for %s":"Descartar cambios para %s",Done:tB,"Double click to write value":"Doble clic para escribir el valor","Download as file":"Descargar como archivo","Drop some files here or click...":"Suelta algunos archivos aquí o haz clic ...","Duplicate name":"Nombre duplicado","Edit script or just double click":"Editar guión o simplemente hacer doble clic","Empty name is not allowed":"No se permite el nombre vacío","End search mode":"Fin del modo de búsqueda","Enter your question":"Ingrese su solicitud",Error:"Error","Error formatting code":"Código de formato de error","Error was found":"Error encontrado","Every day":"Diario",Exec:sB,"Executes some shell command":"Ejecuta algún comando de shell","Existing scripts will be overwritten.":"Los guiones existentes se sobrescribirán.","Expand all":"Expandir todo","Expert mode":"Modo experto",Explanation:oB,Export:iB,"Export all scripts":"Exportar todos los scripts","Export blocks":"Exportar bloques","Export selected blocks":"Exportar bloques seleccionados",Februar:nB,February:rB,Filter:aB,Folder:lB,Fr:cB,Friday:uB,Function:"Función","Function editor":"Editor de funciones","Function: executed":"Función: ejecutada","Go to next line":"Ir a la siguiente línea","HTTP Call":"Llamada HTTP","Hide logs":"Ocultar registros",ID:dB,ID1:hB,ID2:pB,Import:gB,"Import blocks":"Importar bloques","Import error":"Error de importación","Import scripts":"Importar guiones","Insert object ID":"Insertar ID de objeto",Instance:mB,"Instance is disabled":"La instancia está deshabilitada","Instance:":"Ejemplo:",Instances:fB,Instructions:$B,"Invalid CRON":"CRON inválido","It will not be possible to revert this operation.":"No será posible revertir esta operación.","JS description":"Crear reglas escribiendo Javascript",Januar:bB,January:vB,July:yB,June:_B,"Just check":"Sólo revisa","Language:":"Idioma:","Learn More":"Aprende más","Light style":"Estilo ligero",Limit:wB,"Local time":"Hora local","Locate file":"Localizar el archivo","Log outputs":"Salidas de registro","Log text":"Texto de registro","Log: %s":"Log: %s","Make a HTTP get request":"Realizar una solicitud de obtención HTTP","Make a pause between actions":"Hacer una pausa entre acciones",March:CB,"March ":"marzo",May:TB,Menu:kB,Message:SB,Mo:EB,Model:IB,Monday:xB,Month:DB,More:AB,Name:RB,"No Chat GPT Key found":"No se ha encontrado ninguna clave GPT de chat","No active host found":"No se encontró un host activo","Nothing found":"Nada Encontrado",November:OB,OK:MB,October:NB,Ok:LB,"On condition change":"En condición de cambio","On script save or adapter start":"Al guardar el script o al iniciar el adaptador","On weekdays":"De lunes a viernes","Open configuration":"Configuración abierta","Operate two states":"Operar dos estados","Operations with two states":"Operaciones con dos estados","Paste your blocks here":"Pega tus bloques aquí",Pause:BB,"Pause execution":"Pausar ejecución","Pause script":"Pausar guion","Phone:":"Teléfono:","Please select object ID...":"Por favor, seleccione la ID del objeto ...","Press Ctrl+Enter to get the answer":"Presiona Ctrl+Enter para obtener la respuesta","Prettify the script":"Embellecer el guión","Print some text in log":"Imprime texto en el registro","Priority:":"Prioridad:",Pushover:PB,Pushsafer:FB,"Read only ID selected: %s":"ID de solo lectura seleccionado: %s",Rename:jB,"Reorder scripts in folders":"Reordenar guiones en carpetas",Repeat:zB,Restart:UB,Result:HB,"Resume execution":"Reanudar ejecución","Root folder":"Carpeta raíz","Rules description":"Crea reglas con bloques IF, THEN, ELSE","Run script":"Ejecutar guión",Sa:WB,Saturday:GB,Save:VB,"Save all":"Salvar a todos","Say It":"Say It","Say some text via sayit adapter":"Di un mensaje de texto a través del adaptador sayit",Schedule:KB,Script:YB,"Script %s was modified on disk":"El script %s fue modificado en el disco","Script is not running":"El script no se está ejecutando","Search in scripts":"Buscar en guiones","Search...":"Buscar...","Select all":"Seleccionar todo","Send email":"Enviar correo electrónico","Sends an email":"Envía un correo electrónico","Sends message via Pushsafer":"Envía mensaje a través de Pushsafer","Sends message via pushover":"Envía un mensaje a través de un pushover","Sends message via telegram":"Envía mensaje por telegrama","Sends message via whatsapp-cmb":"Envía mensaje vía whatsapp-cmb",September:JB,"Server time":"Tiempo del servidor","Set state action":"Establecer acción estatal","Set with delay":"Establecer con retraso","Shell command":"Comando de Shell","Show astronomical events":"Mostrar eventos astronómicos","Show javascript code":"Mostrar código Javascript","Show logs":"Mostrar registros","Show only paused scripts":"Mostrar solo secuencias de comandos pausadas","Show only running scripts":"Mostrar solo scripts en ejecución","Show only scripts with problems":"Mostrar solo guiones con problemas",Simulate:XB,"Some files will be rejected":"Algunos archivos serán rechazados","Sound:":"Sonido:",Stack:qB,Start:ZB,"Start script":"Iniciar guion",State:QB,"State condition":"Condición del estado","Step into function":"Entra en función","Step out from function":"Sal de la función","Stop on exception":"Deténgase en excepción",Su:eP,"Subject:":"Sujeto:",Sunday:tP,"TS description":"Crear reglas escribiendo el mecanografiado",Telegram:sP,"Text:":"Texto:",Th:oP,"The script will be stopped and must be activated manually after debugging. Continue?":"El script se detendrá y deberá activarse manualmente después de la depuración. ¿Continuar?","This is advances option. You can write your own code here and it will be executed on trigger":"Esta es la opción de avances. Puede escribir su propio código aquí y se ejecutará en el disparador",Thursday:iP,Time:nP,"Time condition":"Condición de tiempo","Title:":"Título:","To:":"A:","Trigger with value":"Activar con valor",Triggered:rP,Triggers:aP,"Triggers the on script saving or the javascript instance restart":"Activa el guardado de la secuencia de comandos o el reinicio de la instancia de JavaScript","Triggers the rule on update or change of some state":"Activa la regla de actualización o cambio de algún estado","Triggers the rule periodically or on some specific time":"Activa la regla periódicamente o en un momento específico",Tu:lP,Tuesday:cP,URL:uP,"Unknown error":"Error desconocido","Unknown error!":"¡Error desconocido!","Use generated code":"Usar código generado","User function":"Función de usuario","User:":"Usuario:",Value:dP,"Vibration:":"Vibración:",Volume:hP,We:pP,Wednesday:gP,"Whatsapp-cmb":"Whatsapp-cmb",Write:mP,"Write your own code":"Escribe tu propio código",Yes:fP,"Yet exists!":"¡Sin embargo existe!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Puede usar %s en la URL para usar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación antiguo","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Puede usar %s en el comando para usar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación anterior","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Puede usar %s en el texto para mostrar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación antiguo","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Puede usar %s en el valor para usar el valor de activación actual, %id para usar el ID de objeto activado, %name para mostrar el nombre de ID de objeto activado o %old para usar el valor de activación antiguo","You have to enter OpenAI API key in the configuration of javascript adapter.":"Debe ingresar la clave API de OpenAI en la configuración del adaptador de JavaScript.","[equal]":"[igual]","[greater or equal]":"[mayor o igual]","[greater]":"[mayor que]","[hysteresis]":"[histéresis]","[includes]":"[incluye]","[less or equal]":"[menor o igual]","[less]":"[menos]","[not equal]":"[no es igual]",acknowledgment:$P,all:bP,and:vP,astro:yP,at:_P,"clear running":"carrera clara",control:wP,copy:CP,cron:TP,dawn:kP,debug_help:SP,debug_label:EP,default:"defecto",dusk:IP,easy:xP,else:"demás","equal to":"igual a",every:DP,"every hour at 0 minutes":"cada hora a los 0 minutos",false:"falso","file reading has failed: %s":"la lectura del archivo ha fallado: %s","file reading was aborted":"la lectura del archivo fue abortada",filter_func:AP,filter_id:RP,filter_name:OP,filter_role:MP,filter_room:NP,"for edit or create script":"para editar o crear un nuevo script","for professionals":"para profesionales","for programmers":"para programadores",goldenHour:LP,goldenHourEnd:BP,"greater or equal":"mayor o igual","greater or equal to":"mayor o igual a","greater than":"mas grande que",help_just_check:PP,help_on_change:FP,"high priority":"alta prioridad","high-priority":"alta prioridad","highest priority":"más alta prioridad",hours:jP,includes:zP,interval:UP,"just check":"Sólo revisa","less or equal":"menor o igual","less or equal to":"menor o igual a","less than":"menos que","lower priority":"prioridad más baja","lowest priority":"prioridad más baja",magic:HP,milliseconds:WP,minutes:GP,ms:VP,nadir:KP,nauticalDawn:YP,nauticalDusk:JP,nextSunrise:XP,nextSunset:qP,night:ZP,nightEnd:QP,"no blocks found":"No se encontraron bloques","no group":"NO GRUPO",normal:eF,"normal priority":"prioridad normal","not equal to":"no igual a","not properly connected":"Este bloque no está conectado correctamente a otros bloques.",offset:tF,"on change":"en el cambio","on condition change":"con cambio de condición","on update":"en actualización",one:sF,or:oF,quiet:iF,"reset search":"restablecer la búsqueda",search:nF,seconds:rF,solarNoon:aF,"store in":"almacenar en",sunrise:lF,sunriseEnd:cF,sunset:uF,sunsetStart:dF,then:hF,"toggle value":"alternar valor",tooltip_ack:pF,tooltip_from:gF,tooltip_lc:mF,tooltip_quality:fF,tooltip_ts:$F,tooltip_user:bF,tooltip_value:vF,true:"cierto",two:yF,undefined:"indefinido",update:_F,"use seconds":"usar segundos","use trigger value":"usar valor de activación",verbose_help:wF,verbose_label:CF,when:TF,with:"con","with date":"con fecha","with offset":"con desplazamiento",wizard:kF},EF="Reconnu",IF="Actions",xF="Ajouter",DF="Tout",AF="Tout",RF="Postuler",OF="avril",MF="Demander",NF="Astronomique",LF="août",BF="Annuler",PF="proche",FF="État",jF="Conditions",zF="Console",UF="Copié",HF="décembre",WF="Défaut",GF="Retard",VF="Effacer",KF="Description",YF="Terminé",JF="Exec shell",XF="Explication",qF="Exportation",ZF="Février",QF="février",ej="Filtre",tj="Dossier",sj="Fr",oj="Vendredi",ij="ID",nj="ID1",rj="ID2",aj="Importation",lj="Exemple",cj="Instances",uj="Instructions",dj="Janvier",hj="janvier",pj="juillet",gj="juin",mj="Limite",fj="Mars",$j="Mai",bj="M e n u",vj="Message",yj="Mo",_j="Modèle",wj="Lundi",Cj="Mois",Tj="Plus",kj="Nom",Sj="novembre",Ej="OK",Ij="octobre",xj="D'accord",Dj="Pause",Aj="Pushover",Rj="Pushsafer",Oj="Renommer",Mj="Répéter",Nj="Redémarrer",Lj="Résultat",Bj="Sa",Pj="samedi",Fj="sauver",jj="Horaire",zj="Scénario",Uj="septembre",Hj="Simuler",Wj="Stack",Gj="Début",Vj="État",Kj="Su",Yj="dimanche",Jj="Télégramme",Xj="4",qj="Jeudi",Zj="Temps",Qj="Déclenché",e2="Déclencheurs",t2="Tu",s2="Mardi",o2="URL",i2="Valeur",n2="Le volume",r2="3",a2="Mercredi",l2="Écrivez",c2="Oui",u2="reconnaissance",d2="tout",h2="et",p2="astro",g2="à",m2="contrôler",f2="copie",$2="CRON",b2="Aube",v2="Il s'agit d'un mode spécial dans lequel les états et les objets ne changeront pas. Mais seules les informations sur chaque changement prévu seront affichées dans le protocole.",y2="Déboguer",_2="Crépuscule",w2="facile",C2="chaque",T2="Une fonction",k2="ID",S2="Nom",E2="Rôle",I2="Pièce",x2="Heure d'or",D2="Fin de l'heure d'or",A2="Le code ne sera exécuté que chaque fois que la condition est vraie. Par exemple. si déclenchement sur la valeur du capteur de température et que la condition est «si la température est supérieure à 20 ° C», les actions «alors» seront exécutées à chaque fois que le capteur envoie la température et qu'elle est supérieure à 20 ° C. À 21 ° C, à 22 ° C et ainsi de suite.",R2="Le code ne sera exécuté que si le résultat de la condition change. Par exemple. si le déclenchement sur la valeur du capteur de température et que la condition est «si la température est supérieure à 20 ° C», les actions «alors» seront exécutées une fois lorsque la température est supérieure à 20. La prochaine fois, les actions «alors» seront exécutées lorsque la température échoue sous 20 puis remonte au-dessus de 20.",O2="les heures",M2="comprend",N2="intervalle",L2="la magie",B2="millisecondes",P2="minutes",F2="ms",j2="nadir",z2="Aube nautique",U2="Crépuscule nautique",H2="Prochain lever de soleil",W2="Prochain coucher de soleil",G2="Nuit",V2="Fin de nuit",K2="Ordinaire",Y2="décalage",J2="une",X2="ou",q2="calmer",Z2="chercher",Q2="secondes",ez="Midi solaire",tz="lever du soleil",sz="Fin du lever du soleil",oz="le coucher du soleil",iz="Début du coucher du soleil",nz="alors",rz="Reconnaître",az="De",lz="Dernière modification",cz="Qualité",uz="Horodatage",dz="Utilisateur",hz="Valeur",pz="deux",gz="mettre à jour",mz="Ajoute une sortie de débogage au journal pour de nombreuses commandes système",fz="Sorties de journal détaillées",$z="lorsque",bz="Wizard",vz={"%s not found":"%s non trouvé","()":"()","(at %s)":"(à %s)","(optional)":"(optionnel)","-":"-",".":".","AI code generator":"Générateur de code IA",Ack:EF,Actions:IF,"Actual time of day":"Heure réelle de la journée",Add:xF,"Add new script":"Ajouter un nouveau script",All:DF,"All files will be accepted":"Tous les fichiers seront acceptés",Any:AF,"Any month":"N'importe quel mois",Apply:RF,April:OF,"Are you sure?":"Êtes-vous sûr?",Ask:MF,Astronomical:NF,"Astronomical events today":"Événements astronomiques aujourd'hui",August:LF,"Blockly description":"Création de règles par blocs graphiques","Body:":"Corps:",Cancel:BF,"Cannot delete non empty item!":"Impossible de supprimer un élément non vide!","Change layout":"Changer la disposition",'Change theme (actual "%s")':'Changer de thème (maintenant - "%s")',"Check blocks":"Vérifier les blocs","Check is not active, because javascript adapter is disabled":"La vérification n'est pas active, car l'adaptateur Javascript est désactivé","Clear search input":"Effacer la recherche","Click on this icon":"Cliquez sur cette icône",Close:PF,"Close all but current":"Ferme tout sauf courant","Collapse all":"Réduire tout","Compares current time with astronomical event":"Compare l'heure actuelle avec un événement astronomique","Compares current time with the user specific time":"Compare l'heure actuelle avec l'heure spécifique de l'utilisateur","Compares the state value with user defined value":"Compare la valeur d'état avec la valeur définie par l'utilisateur",Condition:FF,Conditions:jF,"Configuration not saved.":"Configuration non enregistrée.",Console:zF,"Control or update some state":"Contrôler ou mettre à jour un état","Control or update some state with delay":"Contrôler ou mettre à jour un état avec un délai","Convert blockly to javascript for ever.":"Convertissez instantanément en Javascript.",Copied:UF,"Copy script":"Copier le script","Copy to clipboard":"Copier dans le presse-papier","Create new":"Créer un nouveau","Create new folder":"Créer un nouveau dossier","Create new script":"Créer un nouveau script","Create or edit CRON or time wizard":"Créer ou éditer CRON ou un assistant de temps","Dark Theme":"Thème sombre","Dark style":"Style sombre",Date:"Date","Debug instance":"Instance de débogage","Debug options":"Options de débogage",December:HF,Default:WF,"Define cron...":"Définir le cron ...","Define schedule...":"Définir le calendrier ...",Delay:GF,Delete:VF,"Delete %s":"Supprimer %s ...","Delete folder":"Supprimer le dossier","Delete script":"Supprimer le script",Description:KF,"Deselect all":"Tout déselectionner","Discard changes for %s":"Ignorer les modifications pour %s",Done:YF,"Double click to write value":"Double clic pour écrire la valeur","Download as file":"Télécharger le fichier","Drop some files here or click...":"Déposer des fichiers ici ou cliquez sur ...","Duplicate name":"Nom en double","Edit script or just double click":"Modifiez le script ou double-cliquez simplement sur","Empty name is not allowed":"Le nom vide n'est pas autorisé","End search mode":"Fin du mode de recherche","Enter your question":"Entrez votre demande",Error:"Erreur","Error formatting code":"Erreur lors du formatage du code","Error was found":"Une erreur a été trouvée","Every day":"Tous les jours",Exec:JF,"Executes some shell command":"Exécute une commande shell","Existing scripts will be overwritten.":"Les scripts existants seront écrasés.","Expand all":"Développer tout","Expert mode":"Mode expert",Explanation:XF,Export:qF,"Export all scripts":"Exporter tous les scripts","Export blocks":"Blocs d'exportation","Export selected blocks":"Exporter les blocs sélectionnés",Februar:ZF,February:QF,Filter:ej,Folder:tj,Fr:sj,Friday:oj,Function:"Fonction","Function editor":"Éditeur de fonction","Function: executed":"Fonction : exécutée","Go to next line":"Aller à la ligne suivante","HTTP Call":"Appel HTTP","Hide logs":"Masquer les journaux",ID:ij,ID1:nj,ID2:rj,Import:aj,"Import blocks":"Blocs d'importation","Import error":"Erreur d'importation","Import scripts":"Importer des scripts","Insert object ID":"Insérer un identifiant d'objet",Instance:lj,"Instance is disabled":"L'instance est désactivée","Instance:":"Exemple:",Instances:cj,Instructions:uj,"Invalid CRON":"CRON invalide","It will not be possible to revert this operation.":"Il ne sera pas possible de revenir sur cette opération.","JS description":"Créer des règles en écrivant du Javascript",Januar:dj,January:hj,July:pj,June:gj,"Just check":"Vérifiez simplement","Language:":"Langue:","Learn More":"Apprendre encore plus","Light style":"Style de lumière",Limit:mj,"Local time":"Heure locale","Locate file":"Localiser le fichier","Log outputs":"Journal des sorties","Log text":"Texte du journal","Log: %s":"Log : %s","Make a HTTP get request":"Faire une requête HTTP Get","Make a pause between actions":"Faites une pause entre les actions",March:fj,"March ":"mars",May:$j,Menu:bj,Message:vj,Mo:yj,Model:_j,Monday:wj,Month:Cj,More:Tj,Name:kj,"No Chat GPT Key found":"Aucune clé GPT de chat trouvée","No active host found":"Aucun hôte actif trouvé","Nothing found":"Rien n'a été trouvé",November:Sj,OK:Ej,October:Ij,Ok:xj,"On condition change":"En cas de changement de condition","On script save or adapter start":"Lors de l'enregistrement du script ou du démarrage de l'adaptateur","On weekdays":"En semaine","Open configuration":"Configuration ouverte","Operate two states":"Opérer deux états","Operations with two states":"Opérations à deux états","Paste your blocks here":"Collez vos blocs ici",Pause:Dj,"Pause execution":"Suspendre l'exécution","Pause script":"Script de pause","Phone:":"Téléphone:","Please select object ID...":"Veuillez sélectionner l'ID d'objet ...","Press Ctrl+Enter to get the answer":"Appuyez sur Ctrl+Entrée pour obtenir la réponse","Prettify the script":"Embellir le scénario","Print some text in log":"Imprimer du texte dans le journal","Priority:":"Priorité:",Pushover:Aj,Pushsafer:Rj,"Read only ID selected: %s":"ID en lecture seule sélectionné: %s",Rename:Oj,"Reorder scripts in folders":"Réorganiser les scripts dans des dossiers",Repeat:Mj,Restart:Nj,Result:Lj,"Resume execution":"Reprendre l'exécution","Root folder":"Dossier racine","Rules description":"Créer des règles avec des blocs IF, THEN, ELSE","Run script":"Script de lancement",Sa:Bj,Saturday:Pj,Save:Fj,"Save all":"Sauver tous","Say It":"Say It","Say some text via sayit adapter":"Dites du texte via l'adaptateur sayit",Schedule:jj,Script:zj,"Script %s was modified on disk":"Le script %s a été modifié sur le disque","Script is not running":"Le script n'est pas en cours d'exécution","Search in scripts":"Rechercher dans les scripts","Search...":"Chercher...","Select all":"Tout sélectionner","Send email":"Envoyer un e-mail","Sends an email":"Envoie un e-mail","Sends message via Pushsafer":"Envoie un message via Pushsafer","Sends message via pushover":"Envoie un message via pushover","Sends message via telegram":"Envoie un message par télégramme","Sends message via whatsapp-cmb":"Envoie un message via whatsapp-cmb",September:Uj,"Server time":"Heure du serveur","Set state action":"Définir l'action de l'état","Set with delay":"Set avec retard","Shell command":"Commande Shell","Show astronomical events":"Afficher les événements astronomiques","Show javascript code":"Afficher le code Javascript","Show logs":"Afficher les journaux","Show only paused scripts":"Afficher uniquement les scripts en pause","Show only running scripts":"Afficher uniquement les scripts en cours d'exécution","Show only scripts with problems":"Afficher uniquement les scripts avec des problèmes",Simulate:Hj,"Some files will be rejected":"Certains fichiers seront rejetés","Sound:":"Sonner:",Stack:Wj,Start:Gj,"Start script":"Lancer le script",State:Vj,"State condition":"État condition","Step into function":"Entrez dans la fonction","Step out from function":"Sortez de la fonction","Stop on exception":"Arrêt sur exception",Su:Kj,"Subject:":"Sujet:",Sunday:Yj,"TS description":"Créer des règles en écrivant des caractères dactylographiés",Telegram:Jj,"Text:":"Texte:",Th:Xj,"The script will be stopped and must be activated manually after debugging. Continue?":"Le script sera arrêté et doit être activé manuellement après le débogage. Continuez?","This is advances option. You can write your own code here and it will be executed on trigger":"C'est une option avancée. Vous pouvez écrire votre propre code ici et il sera exécuté au déclenchement",Thursday:qj,Time:Zj,"Time condition":"Condition de temps","Title:":"Titre:","To:":"À:","Trigger with value":"Déclencheur avec valeur",Triggered:Qj,Triggers:e2,"Triggers the on script saving or the javascript instance restart":"Déclenche l'enregistrement du script ou le redémarrage de l'instance javascript","Triggers the rule on update or change of some state":"Déclenche la règle sur la mise à jour ou le changement d'un état","Triggers the rule periodically or on some specific time":"Déclenche la règle périodiquement ou à une heure précise",Tu:t2,Tuesday:s2,URL:o2,"Unknown error":"Erreur inconnue","Unknown error!":"Erreur inconnue!","Use generated code":"Utiliser le code généré","User function":"Fonction utilisateur","User:":"Utilisateur:",Value:i2,"Vibration:":"Vibration:",Volume:n2,We:r2,Wednesday:a2,"Whatsapp-cmb":"Whatsapp-cmb",Write:l2,"Write your own code":"Écrivez votre propre code",Yes:c2,"Yet exists!":"Pourtant existe!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Vous pouvez utiliser %s dans l'URL pour utiliser la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Vous pouvez utiliser %s dans la commande pour utiliser la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Vous pouvez utiliser %s dans le texte pour afficher la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Vous pouvez utiliser %s dans la valeur pour utiliser la valeur de déclenchement actuelle, %id pour utiliser l'ID de l'objet déclenché, %name pour afficher le nom de l'ID de l'objet déclenché ou %old pour utiliser l'ancienne valeur de déclenchement","You have to enter OpenAI API key in the configuration of javascript adapter.":"Vous devez entrer la clé API OpenAI dans la configuration de l'adaptateur javascript.","[equal]":"[égal]","[greater or equal]":"[supérieur ou égal]","[greater]":"[plus grand]","[hysteresis]":"[hystérèse]","[includes]":"[comprend]","[less or equal]":"[inférieur ou égal]","[less]":"[moins]","[not equal]":"[inégal]",acknowledgment:u2,all:d2,and:h2,astro:p2,at:g2,"clear running":"course claire",control:m2,copy:f2,cron:$2,dawn:b2,debug_help:v2,debug_label:y2,default:"défaut",dusk:_2,easy:w2,else:"autre","equal to":"égal à",every:C2,"every hour at 0 minutes":"toutes les heures à 0 minute",false:"faux","file reading has failed: %s":"La lecture du fichier a échoué: %s","file reading was aborted":"la lecture du fichier a été abandonnée",filter_func:T2,filter_id:k2,filter_name:S2,filter_role:E2,filter_room:I2,"for edit or create script":"pour éditer ou créer un nouveau script","for professionals":"pour les professionnels","for programmers":"pour les programmeurs",goldenHour:x2,goldenHourEnd:D2,"greater or equal":"supérieur ou égal","greater or equal to":"supérieur ou égal à","greater than":"plus grand que",help_just_check:A2,help_on_change:R2,"high priority":"haute priorité","high-priority":"haute priorité","highest priority":"priorité la plus élevée",hours:O2,includes:M2,interval:N2,"just check":"Vérifiez simplement","less or equal":"inférieur ou égal","less or equal to":"inférieur ou égal à","less than":"moins que","lower priority":"priorité inférieure","lowest priority":"priorité la plus basse",magic:L2,milliseconds:B2,minutes:P2,ms:F2,nadir:j2,nauticalDawn:z2,nauticalDusk:U2,nextSunrise:H2,nextSunset:W2,night:G2,nightEnd:V2,"no blocks found":"Aucun bloc trouvé","no group":"PAS DE GROUPE",normal:K2,"normal priority":"priorité normale","not equal to":"pas égal à","not properly connected":"Ce bloc n'est pas correctement connecté à d'autres blocs.",offset:Y2,"on change":"sur le changement","on condition change":"sur changement de condition","on update":"sur mise à jour",one:J2,or:X2,quiet:q2,"reset search":"Réinitialiser la recherche",search:Z2,seconds:Q2,solarNoon:ez,"store in":"stocker dans",sunrise:tz,sunriseEnd:sz,sunset:oz,sunsetStart:iz,then:nz,"toggle value":"valeur de bascule",tooltip_ack:rz,tooltip_from:az,tooltip_lc:lz,tooltip_quality:cz,tooltip_ts:uz,tooltip_user:dz,tooltip_value:hz,true:"vrai",two:pz,undefined:"indéfini",update:gz,"use seconds":"utiliser les secondes","use trigger value":"use trigger value",verbose_help:mz,verbose_label:fz,when:$z,with:"avec","with date":"avec date","with offset":"avec offset",wizard:bz},yz="Riconosciuto",_z="Azioni",wz="Inserisci",Cz="Tutti",Tz="Qualunque",kz="Applica",Sz="aprile",Ez="Chiedere",Iz="Astronomico",xz="agosto",Dz="Annulla",Az="Vicino",Rz="Condizione",Oz="Condizioni",Mz="Console",Nz="Copiato",Lz="dicembre",Bz="Predefinito",Pz="Ritardo",Fz="Elimina",jz="Descrizione",zz="Fatto",Uz="Execshell",Hz="Spiegazione",Wz="Esportare",Gz="Februar",Vz="febbraio",Kz="Filtro",Yz="Cartella",Jz="P",Xz="Venerdì",qz="ID",Zz="ID1",Qz="ID2",eU="Importare",tU="Esempio",sU="istanze",oU="Istruzioni",iU="Januar",nU="gennaio",rU="luglio",aU="giugno",lU="Limite",cU="marzo",uU="Maggio",dU="Menu",hU="Messaggio",pU="Mo",gU="Modello",mU="Lunedi",fU="Mese",$U="Di più",bU="Nome",vU="novembre",yU="OK",_U="ottobre",wU="Ok",CU="Pausa",TU="Pushover",kU="Pushsafer",SU="Rinominare",EU="Ripetere",IU="Ricomincia",xU="Risultato",DU="Sa",AU="Sabato",RU="Salva",OU="Programma",MU="copione",NU="settembre",LU="Simulare",BU="Stack",PU="Cominciare",FU="Stato",jU="Su",zU="Domenica",UU="Telegramma",HU="4",WU="giovedi",GU="Tempo",VU="Innescato",KU="Trigger",YU="Tu",JU="martedì",XU="URL",qU="Valore",ZU="Volume",QU="3",eH="mercoledì",tH="Scrivi",sH="sì",oH="riconoscimento",iH="tutti",nH="e",rH="astro",aH="a",lH="controllo",cH="copia",uH="CRON",dH="alba",hH="Questa è una modalità speciale in cui gli stati e gli oggetti non cambieranno. Ma nel protocollo verranno visualizzate solo le informazioni su ogni modifica pianificata.",pH="Debug",gH="crepuscolo",mH="facile",fH="ogni",$H="Funzione",bH="ID",vH="Nome",yH="Ruolo",_H="Camera",wH="Ora d'oro",CH="Fine dell'ora d'oro",TH='Il codice verrà eseguito solo ogni volta che la condizione è vera. Per esempio. se si attiva il valore del sensore di temperatura e la condizione è "se la temperatura è maggiore di 20 ° C", le azioni "allora" verranno eseguite ogni volta che il sensore invia la temperatura e questa è superiore a 20 ° C. Di 21 ° C, di 22 ° C e così via.',kH='Il codice verrà eseguito solo se il risultato della condizione cambia. Per esempio. se si attiva il valore del sensore di temperatura e la condizione è "se la temperatura è maggiore di 20 ° C", le azioni "allora" verranno eseguite una volta quando la temperatura è superiore a 20. La prossima volta le azioni "allora" verranno eseguite quando la temperatura fallisce sotto 20 e poi sale di nuovo oltre 20.',SH="ore",EH="include",IH="intervallo",xH="Magia",DH="millisecondi",AH="minuti",RH="ms",OH="nadir",MH="Alba nautica",NH="Crepuscolo nautico",LH="Prossima alba",BH="Prossimo tramonto",PH="Notte",FH="Fine della notte",jH="normale",zH="compensare",UH="uno",HH="o",WH="silenzioso",GH="ricerca",VH="secondi",KH="Mezzogiorno solare",YH="Alba",JH="Fine dell'alba",XH="tramonto",qH="Inizio del tramonto",ZH="poi",QH="Riconoscere",eW="A partire dal",tW="Ultima modifica",sW="Qualità",oW="timestamp",iW="Utente",nW="Valore",rW="Due",aW="aggiornare",lW="Aggiunge l'output di debug al registro per molti comandi di sistema",cW="Output di log dettagliati",uW="quando",dW="procedura guidata",hW={"%s not found":"%s non trovato","()":"()","(at %s)":"(a %s)","(optional)":"(opzionale)","-":"-",".":".","AI code generator":"Generatore di codice AI",Ack:yz,Actions:_z,"Actual time of day":"Ora effettiva della giornata",Add:wz,"Add new script":"Aggiungi nuovo script",All:Cz,"All files will be accepted":"Tutti i file saranno accettati",Any:Tz,"Any month":"Ogni mese",Apply:kz,April:Sz,"Are you sure?":"Sei sicuro?",Ask:Ez,Astronomical:Iz,"Astronomical events today":"Eventi astronomici oggi",August:xz,"Blockly description":"Creazione di regole tramite blocchi grafici","Body:":"Corpo:",Cancel:Dz,"Cannot delete non empty item!":"Impossibile eliminare l'elemento non vuoto!","Change layout":"Cambia layout",'Change theme (actual "%s")':'Cambia tema (ora - "%s")',"Check blocks":"Controlla i blocchi","Check is not active, because javascript adapter is disabled":"Il controllo non è attivo perché l'adattatore Javascript è disabilitato","Clear search input":"Cancella input di ricerca","Click on this icon":"Clicca su questa icona",Close:Az,"Close all but current":"Chiudi tutto tranne corrente","Collapse all":"Comprimi tutto","Compares current time with astronomical event":"Confronta l'ora corrente con l'evento astronomico","Compares current time with the user specific time":"Confronta l'ora corrente con l'ora specifica dell'utente","Compares the state value with user defined value":"Confronta il valore dello stato con il valore definito dall'utente",Condition:Rz,Conditions:Oz,"Configuration not saved.":"Configurazione non salvata.",Console:Mz,"Control or update some state":"Controlla o aggiorna uno stato","Control or update some state with delay":"Controlla o aggiorna uno stato con ritardo","Convert blockly to javascript for ever.":"Converti istantaneamente a blocchi in Javascript.",Copied:Nz,"Copy script":"Copia script","Copy to clipboard":"Copia negli appunti","Create new":"Creare nuovo","Create new folder":"Crea una nuova cartella","Create new script":"Crea nuovo script","Create or edit CRON or time wizard":"Crea o modifica la procedura guidata CRON o time","Dark Theme":"Tema scuro","Dark style":"Stile scuro",Date:"Data","Debug instance":"Istanza di debug","Debug options":"Opzioni di debug",December:Lz,Default:Bz,"Define cron...":"Definisci cron ...","Define schedule...":"Definisci programma ...",Delay:Pz,Delete:Fz,"Delete %s":"Elimina %s ...","Delete folder":"Elimina cartella","Delete script":"Elimina script",Description:jz,"Deselect all":"Deselezionare tutto","Discard changes for %s":"Annulla modifiche per %s",Done:zz,"Double click to write value":"Doppio clic per scrivere il valore","Download as file":"Scarica come file","Drop some files here or click...":"Trascina alcuni file qui o fai clic su ...","Duplicate name":"Nome duplicato","Edit script or just double click":"Modifica lo script o fai doppio clic","Empty name is not allowed":"Il nome vuoto non è consentito","End search mode":"Termina la modalità di ricerca","Enter your question":"Inserisci la tua richiesta",Error:"Errore","Error formatting code":"Errore di formattazione del codice","Error was found":"Errore trovato","Every day":"Ogni giorno",Exec:Uz,"Executes some shell command":"Esegue alcuni comandi della shell","Existing scripts will be overwritten.":"Gli script esistenti verranno sovrascritti.","Expand all":"Espandi tutto","Expert mode":"Modalità esperto",Explanation:Hz,Export:Wz,"Export all scripts":"Esporta tutti gli script","Export blocks":"Esporta blocchi","Export selected blocks":"Esporta i blocchi selezionati",Februar:Gz,February:Vz,Filter:Kz,Folder:Yz,Fr:Jz,Friday:Xz,Function:"Funzione","Function editor":"Editor di funzioni","Function: executed":"Funzione: eseguita","Go to next line":"Vai alla riga successiva","HTTP Call":"Chiamata HTTP","Hide logs":"Nascondi i registri",ID:qz,ID1:Zz,ID2:Qz,Import:eU,"Import blocks":"Importa blocchi","Import error":"Errore di importazione","Import scripts":"Importa script","Insert object ID":"Inserisci l'ID oggetto",Instance:tU,"Instance is disabled":"L'istanza è disabilitata","Instance:":"Esempio:",Instances:sU,Instructions:oU,"Invalid CRON":"CRON non valido","It will not be possible to revert this operation.":"Non sarà possibile ripristinare questa operazione.","JS description":"Creare regole scrivendo Javascript",Januar:iU,January:nU,July:rU,June:aU,"Just check":"Controlla solamente","Language:":"Linguaggio:","Learn More":"Per saperne di più","Light style":"Stile leggero",Limit:lU,"Local time":"Ora locale","Locate file":"Localizza file","Log outputs":"Registra le uscite","Log text":"Testo del registro","Log: %s":"Log: %s","Make a HTTP get request":"Effettua una richiesta get HTTP","Make a pause between actions":"Fai una pausa tra le azioni",March:cU,"March ":"marzo",May:uU,Menu:dU,Message:hU,Mo:pU,Model:gU,Monday:mU,Month:fU,More:$U,Name:bU,"No Chat GPT Key found":"Nessuna chiave GPT chat trovata","No active host found":"Nessun host attivo trovato","Nothing found":"Non abbiamo trovato nulla",November:vU,OK:yU,October:_U,Ok:wU,"On condition change":"A condizione che cambino","On script save or adapter start":"Al salvataggio dello script o all'avvio dell'adattatore","On weekdays":"Nei giorni della settimana","Open configuration":"Configurazione aperta","Operate two states":"Gestisci due stati","Operations with two states":"Operazioni con due stati","Paste your blocks here":"Incolla qui i tuoi blocchi",Pause:CU,"Pause execution":"Metti in pausa l'esecuzione","Pause script":"Metti in pausa lo script","Phone:":"Telefono:","Please select object ID...":"Seleziona l'ID oggetto ...","Press Ctrl+Enter to get the answer":"Premi Ctrl+Invio per ottenere la risposta","Prettify the script":"Abbellire la sceneggiatura","Print some text in log":"Stampa del testo nel registro","Priority:":"Priorità:",Pushover:TU,Pushsafer:kU,"Read only ID selected: %s":"ID di sola lettura selezionato: %s",Rename:SU,"Reorder scripts in folders":"Riordina gli script nelle cartelle",Repeat:EU,Restart:IU,Result:xU,"Resume execution":"Riprendi esecuzione","Root folder":"Cartella root","Rules description":"Crea regole con i blocchi IF, THEN, ELSE","Run script":"Esegui script",Sa:DU,Saturday:AU,Save:RU,"Save all":"Salva tutto","Say It":"Say It","Say some text via sayit adapter":"Pronuncia del testo tramite l'adattatore sayit",Schedule:OU,Script:MU,"Script %s was modified on disk":"Lo script %s è stato modificato sul disco","Script is not running":"Lo script non è in esecuzione","Search in scripts":"Cerca negli script","Search...":"Ricerca...","Select all":"Seleziona tutto","Send email":"Invia una email","Sends an email":"Invia un'e-mail","Sends message via Pushsafer":"Invia messaggio tramite Pushsafer","Sends message via pushover":"Invia messaggio tramite pushover","Sends message via telegram":"Invia messaggio tramite telegramma","Sends message via whatsapp-cmb":"Invia messaggio tramite whatsapp-cmb",September:NU,"Server time":"Ora del server","Set state action":"Imposta l'azione dello stato","Set with delay":"Impostato con ritardo","Shell command":"Comando Shell","Show astronomical events":"Mostra eventi astronomici","Show javascript code":"Mostra codice Javascript","Show logs":"Mostra i log","Show only paused scripts":"Mostra solo script in pausa","Show only running scripts":"Mostra solo gli script in esecuzione","Show only scripts with problems":"Mostra solo script con problemi",Simulate:LU,"Some files will be rejected":"Alcuni file verranno rifiutati","Sound:":"Suono:",Stack:BU,Start:PU,"Start script":"Avvia script",State:FU,"State condition":"Condizione dello stato","Step into function":"Entra in funzione","Step out from function":"Esci dalla funzione","Stop on exception":"Ferma in caso di eccezione",Su:jU,"Subject:":"Soggetto:",Sunday:zU,"TS description":"Creare regole scrivendo dattiloscritto",Telegram:UU,"Text:":"Testo:",Th:HU,"The script will be stopped and must be activated manually after debugging. Continue?":"Lo script verrà interrotto e dovrà essere attivato manualmente dopo il debug. Continua?","This is advances option. You can write your own code here and it will be executed on trigger":"Questa è un'opzione anticipata. Puoi scrivere il tuo codice qui e verrà eseguito al trigger",Thursday:WU,Time:GU,"Time condition":"Condizione temporale","Title:":"Titolo:","To:":"Per:","Trigger with value":"Trigger con valore",Triggered:VU,Triggers:KU,"Triggers the on script saving or the javascript instance restart":"Attiva il salvataggio dello script o il riavvio dell'istanza javascript","Triggers the rule on update or change of some state":"Attiva la regola in caso di aggiornamento o modifica di uno stato","Triggers the rule periodically or on some specific time":"Attiva la regola periodicamente o in un momento specifico",Tu:YU,Tuesday:JU,URL:XU,"Unknown error":"Errore sconosciuto","Unknown error!":"Errore sconosciuto!","Use generated code":"Usa il codice generato","User function":"Funzione utente","User:":"Utente:",Value:qU,"Vibration:":"Vibrazione:",Volume:ZU,We:QU,Wednesday:eH,"Whatsapp-cmb":"Whatsapp-cmb",Write:tH,"Write your own code":"Scrivi il tuo codice",Yes:sH,"Yet exists!":"Esiste ancora!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"È possibile utilizzare %s nell'URL per utilizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"È possibile utilizzare %s nel comando per utilizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"È possibile utilizzare %s nel testo per visualizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"È possibile utilizzare %s nel valore per utilizzare il valore di trigger corrente, %id per utilizzare l'ID dell'oggetto attivato, %name per mostrare il nome dell'ID dell'oggetto attivato o %old per utilizzare il vecchio valore di trigger","You have to enter OpenAI API key in the configuration of javascript adapter.":"Devi inserire la chiave API OpenAI nella configurazione dell'adattatore javascript.","[equal]":"[pari]","[greater or equal]":"[maggiore o uguale]","[greater]":"[maggiore]","[hysteresis]":"[isteresi]","[includes]":"[include]","[less or equal]":"[minore o uguale]","[less]":"[Di meno]","[not equal]":"[non uguale]",acknowledgment:oH,all:iH,and:nH,astro:rH,at:aH,"clear running":"chiara esecuzione",control:lH,copy:cH,cron:uH,dawn:dH,debug_help:hH,debug_label:pH,default:"predefinito",dusk:gH,easy:mH,else:"altro","equal to":"uguale a",every:fH,"every hour at 0 minutes":"ogni ora a 0 minuti",false:"falso","file reading has failed: %s":"lettura file non riuscita: %s","file reading was aborted":"la lettura del file è stata interrotta",filter_func:$H,filter_id:bH,filter_name:vH,filter_role:yH,filter_room:_H,"for edit or create script":"per modificare o creare un nuovo script","for professionals":"per i professionisti","for programmers":"per i programmatori",goldenHour:wH,goldenHourEnd:CH,"greater or equal":"maggiore o uguale","greater or equal to":"maggiore o uguale a","greater than":"più grande di",help_just_check:TH,help_on_change:kH,"high priority":"priorità alta","high-priority":"priorità alta","highest priority":"massima priorità",hours:SH,includes:EH,interval:IH,"just check":"controlla solamente","less or equal":"inferiore o uguale","less or equal to":"minore o uguale a","less than":"meno di","lower priority":"priorità inferiore","lowest priority":"priorità più bassa",magic:xH,milliseconds:DH,minutes:AH,ms:RH,nadir:OH,nauticalDawn:MH,nauticalDusk:NH,nextSunrise:LH,nextSunset:BH,night:PH,nightEnd:FH,"no blocks found":"Nessun blocco trovato","no group":"NESSUN GRUPPO",normal:jH,"normal priority":"priorità normale","not equal to":"non uguale a","not properly connected":"Questo blocco non è correttamente collegato ad altri blocchi.",offset:zH,"on change":"sul cambiamento","on condition change":"a cambio di condizione","on update":"in aggiornamento",one:UH,or:HH,quiet:WH,"reset search":"resetta la ricerca",search:GH,seconds:VH,solarNoon:KH,"store in":"conservare in",sunrise:YH,sunriseEnd:JH,sunset:XH,sunsetStart:qH,then:ZH,"toggle value":"alterna valore",tooltip_ack:QH,tooltip_from:eW,tooltip_lc:tW,tooltip_quality:sW,tooltip_ts:oW,tooltip_user:iW,tooltip_value:nW,true:"vero",two:rW,undefined:"non definito",update:aW,"use seconds":"usa i secondi","use trigger value":"usa il trigger",verbose_help:lW,verbose_label:cW,when:uW,with:"con","with date":"con data","with offset":"con offset",wizard:dW},pW="Erkend",gW="Acties",mW="Toevoegen",fW="Alle",$W="Ieder",bW="Solliciteer",vW="april",yW="Vragen",_W="Astronomisch",wW="augustus",CW="annuleren",TW="Dichtbij",kW="Staat",SW="Voorwaarden",EW="Troosten",IW="Gekopieerd",xW="december",DW="Standaard",AW="Vertraging",RW="Verwijder",OW="Beschrijving",MW="Gedaan",NW="Exec shell",LW="Uitleg",BW="Exporteren",PW="Februari",FW="februari",jW="Filter",zW="Map",UW="Vr",HW="vrijdag",WW="ID kaart",GW="ID1",VW="ID2",KW="Importeren",YW="Voorbeeld",JW="Instanties",XW="Instructies",qW="Januar",ZW="januari",QW="juli",eG="juni",tG="Begrenzing",sG="maart",oG="mei",iG="Menu",nG="Bericht",rG="Ma",aG="Model",lG="maandag",cG="Maand",uG="Meer",dG="Naam",hG="november",pG="OK",gG="oktober",mG="OK",fG="Pauze",$G="Pushover",bG="Duwijzer",vG="andere naam geven",yG="Herhaling",_G="Herstarten",wG="Resultaat",CG="Za",TG="zaterdag",kG="Opslaan",SG="Schema",EG="Script",IG="september",xG="Simuleren",DG="Stack",AG="Begin",RG="Staat",OG="Zo",MG="zondag",NG="Telegram",LG="4",BG="donderdag",PG="Tijd",FG="Veroorzaakt",jG="Triggers",zG="Di",UG="dinsdag",HG="URL",WG="Waarde",GG="Volume",VG="3",KG="woensdag",YG="Schrijven",JG="Ja",XG="erkenning",qG="alle",ZG="en",QG="astro",eV="Bij",tV="controle",sV="kopiëren",oV="cron",iV="dageraad",nV="Dit is een speciale modus waarin toestanden en objecten niet veranderen. Maar alleen informatie over elke geplande wijziging wordt in het protocol weergegeven.",rV="Debuggen",aV="schemer",lV="eenvoudig",cV="elke",uV="Functie",dV="ID kaart",hV="Naam",pV="Rol",gV="Kamer",mV="gouden uur",fV="Einde van gouden uur",$V='De code wordt alleen uitgevoerd als de voorwaarde waar is. Bijv. als het triggeren op de temperatuursensorwaarde en de conditie is "als de temperatuur hoger is dan 20 ° C", zullen de "dan" acties worden uitgevoerd elke keer dat de sensor de temperatuur verzendt en deze hoger is dan 20 ° C. Bij 21 ° C, bij 22 ° C enzovoort.',bV='De code wordt alleen uitgevoerd als het conditieresultaat verandert. Bijv. als de temperatuursensor wordt geactiveerd en de conditie is "als de temperatuur hoger is dan 20 ° C", worden de "dan" -acties eenmaal uitgevoerd wanneer de temperatuur hoger is dan 20. De volgende keer worden de "dan" -acties uitgevoerd wanneer de temperatuur faalt onder de 20 en stijgt dan weer boven de 20.',vV="uren",yV="omvat",_V="interval",wV="magie",CV="milliseconden",TV="minuten",kV="ms",SV="nadir",EV="Nautische dageraad",IV="Nautische schemering",xV="Volgende zonsopgang",DV="Volgende zonsondergang",AV="nacht",RV="Einde van de nacht",OV="normaal",MV="compensatie",NV="een",LV="of",BV="stil",PV="zoeken",FV="seconden",jV="Zonne-middag",zV="zonsopkomst",UV="Einde zonsopgang",HV="zonsondergang",WV="Begin van de zonsondergang",GV="vervolgens",VV="Erkennen",KV="Van",YV="Laatst gewijzigd",JV="Kwaliteit",XV="tijdstempel",qV="Gebruiker",ZV="Waarde",QV="twee",e5="bijwerken",t5="Voegt foutopsporingsuitvoer toe aan het logboek voor veel systeemopdrachten",s5="Uitgebreide log-uitgangen",o5="wanneer",i5="tovenaar",n5={"%s not found":"%s niet gevonden","()":"()","(at %s)":"(op %s)","(optional)":"(optioneel)","-":"-",".":".","AI code generator":"AI-codegenerator",Ack:pW,Actions:gW,"Actual time of day":"Werkelijke tijd van de dag",Add:mW,"Add new script":"Nieuw script toevoegen",All:fW,"All files will be accepted":"Alle bestanden worden geaccepteerd",Any:$W,"Any month":"Elke maand",Apply:bW,April:vW,"Are you sure?":"Weet je zeker dat?",Ask:yW,Astronomical:_W,"Astronomical events today":"Astronomische gebeurtenissen vandaag",August:wW,"Blockly description":"Regels maken door grafische blokken","Body:":"Lichaam:",Cancel:CW,"Cannot delete non empty item!":"Kan niet leeg item niet verwijderen!","Change layout":"Opmaak veranderen",'Change theme (actual "%s")':'Thema wijzigen (nu - "%s")',"Check blocks":"Controleer blokken","Check is not active, because javascript adapter is disabled":"Controle is niet actief, omdat Javascript-adapter is uitgeschakeld","Clear search input":"Zoekopdracht wissen","Click on this icon":"Klik op dit pictogram",Close:TW,"Close all but current":"Alles sluiten behalve huidig","Collapse all":"Alles inklappen","Compares current time with astronomical event":"Vergelijkt huidige tijd met astronomische gebeurtenis","Compares current time with the user specific time":"Vergelijkt de huidige tijd met de gebruikerspecifieke tijd","Compares the state value with user defined value":"Vergelijkt de statuswaarde met de door de gebruiker gedefinieerde waarde",Condition:kW,Conditions:SW,"Configuration not saved.":"Configuratie niet opgeslagen.",Console:EW,"Control or update some state":"Beheer of update een bepaalde staat","Control or update some state with delay":"Beheer of update een bepaalde staat met vertraging","Convert blockly to javascript for ever.":"Converteer direct blockly naar Javascript.",Copied:IW,"Copy script":"Kopieer script","Copy to clipboard":"Kopieer naar klembord","Create new":"Maak nieuw","Create new folder":"Maak een nieuwe map","Create new script":"Maak een nieuw script","Create or edit CRON or time wizard":"Creëer of bewerk CRON of tijdwizard","Dark Theme":"Donker thema","Dark style":"Donkere stijl",Date:"Datum","Debug instance":"Debug-instantie","Debug options":"Foutopsporingsopties",December:xW,Default:DW,"Define cron...":"Definieer cron ...","Define schedule...":"Definieer schema ...",Delay:AW,Delete:RW,"Delete %s":"%s verwijderen ...","Delete folder":"Verwijder map","Delete script":"Script verwijderen",Description:OW,"Deselect all":"Deselecteer alles","Discard changes for %s":"Wijzigingen voor %s annuleren",Done:MW,"Double click to write value":"Dubbelklikken om waarde te schrijven","Download as file":"Download","Drop some files here or click...":"Zet hier enkele bestanden neer of klik op ...","Duplicate name":"Dubbele naam","Edit script or just double click":"Bewerk het script of dubbelklik erop","Empty name is not allowed":"Lege naam is niet toegestaan","End search mode":"Zoekmodus beëindigen","Enter your question":"Voer uw verzoek in",Error:"Fout","Error formatting code":"Fout bij het opmaken van de code","Error was found":"Er is een fout gevonden","Every day":"Elke dag",Exec:NW,"Executes some shell command":"Voert een shell-commando uit","Existing scripts will be overwritten.":"Bestaande scripts worden overschreven.","Expand all":"Alles uitvouwen","Expert mode":"Expert modus",Explanation:LW,Export:BW,"Export all scripts":"Exporteer alle scripts","Export blocks":"Blokken exporteren","Export selected blocks":"Exporteer geselecteerde blokken",Februar:PW,February:FW,Filter:jW,Folder:zW,Fr:UW,Friday:HW,Function:"Functie","Function editor":"Functie-editor","Function: executed":"Functie: uitgevoerd","Go to next line":"Ga naar de volgende regel","HTTP Call":"HTTP-oproep","Hide logs":"Verberg logboeken",ID:WW,ID1:GW,ID2:VW,Import:KW,"Import blocks":"Blokken importeren","Import error":"Importfout","Import scripts":"Scripts importeren","Insert object ID":"Object-ID invoegen",Instance:YW,"Instance is disabled":"Exemplaar is uitgeschakeld","Instance:":"Voorbeeld:",Instances:JW,Instructions:XW,"Invalid CRON":"Ongeldige CRON","It will not be possible to revert this operation.":"Het is niet mogelijk om deze bewerking terug te zetten.","JS description":"Regels maken door Javascript te schrijven",Januar:qW,January:ZW,July:QW,June:eG,"Just check":"Kijk maar","Language:":"Taal:","Learn More":"Leer meer","Light style":"Lichte stijl",Limit:tG,"Local time":"Lokale tijd","Locate file":"Vind het bestand","Log outputs":"Log uitgangen","Log text":"Log tekst","Log: %s":"Logboek: %s","Make a HTTP get request":"Maak een HTTP-ophaalverzoek","Make a pause between actions":"Pauzeer tussen acties",March:sG,"March ":"maart",May:oG,Menu:iG,Message:nG,Mo:rG,Model:aG,Monday:lG,Month:cG,More:uG,Name:dG,"No Chat GPT Key found":"Geen Chat GPT-sleutel gevonden","No active host found":"Geen actieve host gevonden","Nothing found":"Niets gevonden",November:hG,OK:pG,October:gG,Ok:mG,"On condition change":"Op voorwaarde verandering","On script save or adapter start":"Bij het opslaan van het script of het starten van de adapter","On weekdays":"Op weekdagen","Open configuration":"Configuratie openen","Operate two states":"Bedien twee toestanden:","Operations with two states":"Bewerkingen met twee toestanden","Paste your blocks here":"Plak hier je blokken",Pause:fG,"Pause execution":"Uitvoering pauzeren","Pause script":"Pauzeer script","Phone:":"Telefoon:","Please select object ID...":"Selecteer object-ID ...","Press Ctrl+Enter to get the answer":"Druk op Ctrl+Enter om het antwoord te krijgen","Prettify the script":"Maak het script mooier","Print some text in log":"Druk wat tekst af in het logboek","Priority:":"Prioriteit:",Pushover:$G,Pushsafer:bG,"Read only ID selected: %s":"Alleen-lezen ID geselecteerd: %s",Rename:vG,"Reorder scripts in folders":"Sorteer scripts in mappen opnieuw",Repeat:yG,Restart:_G,Result:wG,"Resume execution":"Uitvoering hervatten","Root folder":"Hoofdmap","Rules description":"Maak regels met IF, THEN, ELSE blokken","Run script":"Voer script uit",Sa:CG,Saturday:TG,Save:kG,"Save all":"Sla alles op","Say It":"Say It","Say some text via sayit adapter":"Zeg wat tekst via de sayit-adapter",Schedule:SG,Script:EG,"Script %s was modified on disk":"Script %s is gewijzigd op schijf","Script is not running":"Script is niet actief","Search in scripts":"Zoeken in scripts","Search...":"Zoeken...","Select all":"Selecteer alles","Send email":"E-mail verzenden","Sends an email":"Stuurt een e-mail","Sends message via Pushsafer":"Stuurt bericht via Pushsafer","Sends message via pushover":"Stuurt bericht via pushover","Sends message via telegram":"Verzendt bericht via telegram","Sends message via whatsapp-cmb":"Stuurt bericht via whatsapp-cmb",September:IG,"Server time":"Servertijd","Set state action":"Stel statusactie in","Set with delay":"Met vertraging ingesteld","Shell command":"Shell-opdracht","Show astronomical events":"Laat astronomische gebeurtenissen zien","Show javascript code":"Javascript-code weergeven","Show logs":"Toon logboeken","Show only paused scripts":"Toon alleen onderbroken scripts","Show only running scripts":"Toon alleen actieve scripts","Show only scripts with problems":"Toon alleen scripts met problemen",Simulate:xG,"Some files will be rejected":"Sommige bestanden worden geweigerd","Sound:":"Geluid:",Stack:DG,Start:AG,"Start script":"Start het script",State:RG,"State condition":"Staat staat","Step into function":"Stap in functie","Step out from function":"Stap uit de functie","Stop on exception":"Stop bij uitzondering",Su:OG,"Subject:":"Onderwerpen:",Sunday:MG,"TS description":"Regels maken door Typescript te schrijven",Telegram:NG,"Text:":"Tekst:",Th:LG,"The script will be stopped and must be activated manually after debugging. Continue?":"Het script wordt gestopt en moet na het debuggen handmatig worden geactiveerd. Doorgaan met?","This is advances option. You can write your own code here and it will be executed on trigger":"Dit is een voorschotoptie. U kunt hier uw eigen code schrijven en deze wordt bij een trigger uitgevoerd",Thursday:BG,Time:PG,"Time condition":"Tijdsvoorwaarde","Title:":"Titel:","To:":"Naar:","Trigger with value":"Trigger met waarde",Triggered:FG,Triggers:jG,"Triggers the on script saving or the javascript instance restart":"Activeert het opslaan van het script of het opnieuw opstarten van de JavaScript-instantie","Triggers the rule on update or change of some state":"Activeert de regel voor het bijwerken of wijzigen van een bepaalde staat","Triggers the rule periodically or on some specific time":"Activeert de regel periodiek of op een specifieke tijd",Tu:zG,Tuesday:UG,URL:HG,"Unknown error":"Onbekende fout","Unknown error!":"Onbekende fout!","Use generated code":"Gebruik gegenereerde code","User function":"Gebruikersfunctie","User:":"Gebruiker:",Value:WG,"Vibration:":"Trilling:",Volume:GG,We:VG,Wednesday:KG,"Whatsapp-cmb":"Whatsapp-cmb",Write:YG,"Write your own code":"Schrijf je eigen code",Yes:JG,"Yet exists!":"Toch bestaat!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"U kunt %s in de URL gebruiken om de huidige triggerwaarde te gebruiken, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"U kunt %s in de opdracht gebruiken om de huidige triggerwaarde te gebruiken, %id om de getriggerde object-ID te gebruiken, %name om de getriggerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"U kunt %s in de tekst gebruiken om de huidige triggerwaarde weer te geven, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam weer te geven of %old om de oude triggerwaarde te gebruiken","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"U kunt %s in de waarde gebruiken om de huidige triggerwaarde te gebruiken, %id om de geactiveerde object-ID te gebruiken, %name om de geactiveerde object-ID-naam te tonen of %old om de oude triggerwaarde te gebruiken","You have to enter OpenAI API key in the configuration of javascript adapter.":"U moet de OpenAI API-sleutel invoeren in de configuratie van de javascript-adapter.","[equal]":"[Gelijk]","[greater or equal]":"[groter of gelijk]","[greater]":"[groter]","[hysteresis]":"[hysterese]","[includes]":"[inclusief]","[less or equal]":"[minder of gelijk]","[less]":"[minder]","[not equal]":"[niet gelijk]",acknowledgment:XG,all:qG,and:ZG,astro:QG,at:eV,"clear running":"duidelijk rennen",control:tV,copy:sV,cron:oV,dawn:iV,debug_help:nV,debug_label:rV,default:"standaard",dusk:aV,easy:lV,else:"anders","equal to":"gelijk aan",every:cV,"every hour at 0 minutes":"elk uur op 0 minuten",false:"false","file reading has failed: %s":"bestands lezen is mislukt: %s","file reading was aborted":"bestands lezen is afgebroken",filter_func:uV,filter_id:dV,filter_name:hV,filter_role:pV,filter_room:gV,"for edit or create script":"voor bewerken of een nieuw script maken","for professionals":"voor professionals","for programmers":"voor programmeurs",goldenHour:mV,goldenHourEnd:fV,"greater or equal":"groter of gelijk","greater or equal to":"groter of gelijk aan","greater than":"groter dan",help_just_check:$V,help_on_change:bV,"high priority":"hoge prioriteit","high-priority":"hoge prioriteit","highest priority":"hoogste prioriteit",hours:vV,includes:yV,interval:_V,"just check":"kijk maar","less or equal":"minder of gelijk","less or equal to":"minder of gelijk aan","less than":"minder dan","lower priority":"lagere prioriteit","lowest priority":"laagste prioriteit",magic:wV,milliseconds:CV,minutes:TV,ms:kV,nadir:SV,nauticalDawn:EV,nauticalDusk:IV,nextSunrise:xV,nextSunset:DV,night:AV,nightEnd:RV,"no blocks found":"Geen blokken gevonden","no group":"GEEN GROEP",normal:OV,"normal priority":"normale prioriteit","not equal to":"niet gelijk aan","not properly connected":"Dit blok is niet correct verbonden met andere blokken.",offset:MV,"on change":"bij verandering","on condition change":"op voorwaarde verandering","on update":"bij update",one:NV,or:LV,quiet:BV,"reset search":"reset zoeken",search:PV,seconds:FV,solarNoon:jV,"store in":"opslaan in",sunrise:zV,sunriseEnd:UV,sunset:HV,sunsetStart:WV,then:GV,"toggle value":"schakelwaarde",tooltip_ack:VV,tooltip_from:KV,tooltip_lc:YV,tooltip_quality:JV,tooltip_ts:XV,tooltip_user:qV,tooltip_value:ZV,true:"waar",two:QV,undefined:"ongedefinieerd",update:e5,"use seconds":"gebruik seconden","use trigger value":"triggerwaarde gebruiken",verbose_help:t5,verbose_label:s5,when:o5,with:"met","with date":"met datum","with offset":"met offset",wizard:i5},r5="Potwierdzony",a5="Działania",l5="Dodaj",c5="Wszystko",u5="Każdy",d5="Zastosuj",h5="Kwiecień",p5="Zapytać",g5="Astronomiczny",m5="Sierpień",f5="Odwołaj",$5="Zamknij",b5="Stan",v5="Warunki",y5="Konsola",_5="Skopiowano",w5="Grudzień",C5="Domyślna",T5="Opóźnienie",k5="Usuń",S5="Opis",E5="Gotowe",I5="Uruchom shell",x5="Wyjaśnienie",D5="Eksport",A5="Luty",R5="Luty",O5="Filtr",M5="Folder",N5="Pt",L5="Piątek",B5="ID",P5="ID1",F5="ID2",j5="Import",z5="Instancja",U5="Instancje",H5="Instrukcje",W5="Styczeń",G5="Styczeń",V5="Lipiec",K5="Czerwiec",Y5="Limit",J5="Marzec",X5="Maj",q5="Menu",Z5="Wiadomość",Q5="Po",e3="Model",t3="Poniedziałek",s3="Miesiąc",o3="Więcej",i3="Nazwa",n3="Listopad",r3="OK",a3="Październik",l3="Ok",c3="Pauza",u3="Pushover",d3="Pushsafer",h3="Przemianuj",p3="Powtórz",g3="Uruchom ponownie",m3="Wynik",f3="So",$3="Sobota",b3="Zapisz",v3="Harmonogram",y3="Skrypt",_3="Wrzesień",w3="Symulacja",C3="Stos",T3="Początek",k3="Stan",S3="Nd",E3="Niedziela",I3="Telegram",x3="Cz",D3="Czwartek",A3="Czas",R3="Wyzwolony",O3="Wyzwalacze",M3="Wt",N3="Wtorek",L3="URL",B3="Wartość",P3="Wolumen",F3="Śr",j3="Środa",z3="Pisać",U3="Tak",H3="potwierdzenie",W3="wszystko",G3="i",V3="Astro",K3="w",Y3="kontrola",J3="Kopiuj",X3="CRON",q3="Świt",Z3="Jest to specjalny tryb, w którym stany i obiekty się nie zmieniają. Jednak w protokole będą wyświetlane tylko informacje o każdej planowanej zmianie.",Q3="Odpluskwić",e4="Zmierzch",t4="łatwy",s4="każdy",o4="Funkcja",i4="ID",n4="Nazwa",r4="Rola",a4="Pokój",l4="Złota godzina",c4="Koniec złotej godziny",u4="Kod zostanie wykonany tylko za każdym razem, gdy warunek będzie spełniony. Na przykład. jeśli wyzwalanie na wartość czujnika temperatury i warunek to „jeśli temperatura jest wyższa niż 20 ° C”, to działania „następnie” będą wykonywane za każdym razem, gdy czujnik wyśle temperaturę i jest powyżej 20 ° C. O 21 ° C, o 22 ° C i tak dalej.",d4="Kod zostanie wykonany tylko wtedy, gdy wynik warunku ulegnie zmianie. Na przykład. jeśli wyzwalanie na wartość czujnika temperatury i warunek „jeśli temperatura jest wyższa niż 20 ° C”, to akcje „następnie” zostaną wykonane raz, gdy temperatura przekroczy 20. Następnym razem działania „następnie” zostaną wykonane, gdy temperatura nie udaje się poniżej 20, a następnie ponownie wzrasta powyżej 20.",h4="godziny",p4="zawiera",g4="interwał",m4="magia",f4="milisekund",$4="minuty",b4="ms",v4="Północ słoneczna",y4="Żeglarski świt",_4="Żeglarski zmierzch",w4="Następny wschód słońca",C4="Następny zachód słońca",T4="Noc",k4="Koniec nocy",S4="normalny",E4="przesunięcie",I4="jeden",x4="lub",D4="cisza",A4="Szukaj",R4="sekundy",O4="Południe słoneczne",M4="Wschód słońca",N4="Koniec wschodu słońca",L4="Zachód słońca",B4="Początek zachodu słońca",P4="następnie",F4="Akceptuj",j4="Od",z4="Ostatnia zmiana",U4="Jakość",H4="Znacznik czasu",W4="Użytkownik",G4="Wartość",V4="dwa",K4="aktualizacja",Y4="Dodaje wyniki debugowania do dziennika dla wielu poleceń systemowych",J4="Pełne dane wyjściowe dziennika",X4="gdy",q4="Wizard",Z4={"%s not found":"%s nie znaleziono","()":"()","(at %s)":"(w %s)","(optional)":"(opcjonalny)","-":"-",".":".","AI code generator":"Generator kodu AI",Ack:r5,Actions:a5,"Actual time of day":"Aktualna pora dnia",Add:l5,"Add new script":"Dodaj nowy skrypt",All:c5,"All files will be accepted":"Wszystkie pliki zostaną zaakceptowane",Any:u5,"Any month":"Dowolny miesiąc",Apply:d5,April:h5,"Are you sure?":"Jesteś pewny?",Ask:p5,Astronomical:g5,"Astronomical events today":"Wydarzenia astronomiczne dzisiaj",August:m5,"Blockly description":"Tworzenie reguł za pomocą bloków graficznych","Body:":"Treść:",Cancel:f5,"Cannot delete non empty item!":"Nie można usunąć niepustego elementu!","Change layout":"Zmiana układu",'Change theme (actual "%s")':"Zmień motyw (obecnie - „%s”)","Check blocks":"Sprawdź bloki","Check is not active, because javascript adapter is disabled":"Sprawdzanie nie jest aktywne, ponieważ adapter Javascript jest wyłączony","Clear search input":"Wyczyść dane wyszukiwania","Click on this icon":"Kliknij tę ikonę",Close:$5,"Close all but current":"Zamknij wszystkie oprócz bieżących","Collapse all":"Zwinąć wszystkie","Compares current time with astronomical event":"Porównuje aktualny czas z wydarzeniem astronomicznym","Compares current time with the user specific time":"Porównuje aktualny czas z czasem określonym przez użytkownika","Compares the state value with user defined value":"Porównuje wartość stanu z wartością zdefiniowaną przez użytkownika",Condition:b5,Conditions:v5,"Configuration not saved.":"Konfiguracja nie została zapisana.",Console:y5,"Control or update some state":"Kontroluj lub aktualizuj stan","Control or update some state with delay":"Kontroluj lub aktualizuj jakiś stan z opóźnieniem","Convert blockly to javascript for ever.":"Bezpowrotna konwersja Blockly na Javascript.",Copied:_5,"Copy script":"Skopiuj skrypt","Copy to clipboard":"Skopiuj do schowka","Create new":"Utwórz nowy","Create new folder":"Utwórz nowy folder","Create new script":"Utwórz nowy skrypt","Create or edit CRON or time wizard":"Utwórz lub edytuj CRON lub kreator czasu","Dark Theme":"Ciemny schemat","Dark style":"Ciemny styl",Date:"Data","Debug instance":"Debuguj instancję","Debug options":"Opcje debugowania",December:w5,Default:C5,"Define cron...":"Zdefiniuj CRON ...","Define schedule...":"Zdefiniuj harmonogram ...",Delay:T5,Delete:k5,"Delete %s":"Usuń %s ...","Delete folder":"Usuń folder","Delete script":"Usuń skrypt",Description:S5,"Deselect all":"Odznacz wszystkie","Discard changes for %s":"Odrzuć zmiany dla %s",Done:E5,"Double click to write value":"Kliknij dwukrotnie, aby zapisać wartość","Download as file":"Download jako plik plik","Drop some files here or click...":"Upuść niektóre pliki tutaj lub kliknij ...","Duplicate name":"Duplikat nazwy","Edit script or just double click":"Edytuj skrypt lub po prostu kliknij dwukrotnie","Empty name is not allowed":"Pusta nazwa jest niedozwolona","End search mode":"Zakończ tryb wyszukiwania","Enter your question":"Wpisz swoją prośbę",Error:"Błąd","Error formatting code":"Błąd formatowania kodu","Error was found":"Błąd został znaleziony","Every day":"Codziennie",Exec:I5,"Executes some shell command":"Wykonuje polecenie powłoki","Existing scripts will be overwritten.":"Istniejące skrypty zostaną zastąpione.","Expand all":"Rozwiń wszystkie","Expert mode":"Tryb ekspercki",Explanation:x5,Export:D5,"Export all scripts":"Wyeksportuj wszystkie skrypty","Export blocks":"Eksportuj bloki","Export selected blocks":"Eksportuj wybrane bloki",Februar:A5,February:R5,Filter:O5,Folder:M5,Fr:N5,Friday:L5,Function:"Funkcja","Function editor":"Edytor funkcji","Function: executed":"Funkcja: wykonywana","Go to next line":"Przejdź do następnej linii","HTTP Call":"Połączenie HTTP","Hide logs":"Ukryj dzienniki",ID:B5,ID1:P5,ID2:F5,Import:j5,"Import blocks":"Importuj bloki","Import error":"Błąd importowania","Import scripts":"Importuj skrypty","Insert object ID":"Wstaw identyfikator obiektu",Instance:z5,"Instance is disabled":"Instancja jest wyłączona","Instance:":"Instancja:",Instances:U5,Instructions:H5,"Invalid CRON":"Nieprawidłowy CRON","It will not be possible to revert this operation.":"Cofnięcie tej operacji nie będzie możliwe.","JS description":"Tworzenie reguł w Javascript",Januar:W5,January:G5,July:V5,June:K5,"Just check":"Po prostu sprawdź","Language:":"Język:","Learn More":"Ucz się więcej","Light style":"Lekki styl",Limit:Y5,"Local time":"Czas lokalny","Locate file":"Znajdź plik","Log outputs":"Log dziennika","Log text":"Tekst dziennika","Log: %s":"Dziennik: %s","Make a HTTP get request":"Złóż żądanie HTTP get","Make a pause between actions":"Zrób przerwę między czynnościami",March:J5,"March ":"Marzec ",May:X5,Menu:q5,Message:Z5,Mo:Q5,Model:e3,Monday:t3,Month:s3,More:o3,Name:i3,"No Chat GPT Key found":"Nie znaleziono klucza GPT czatu","No active host found":"Nie znaleziono aktywnego hosta","Nothing found":"Nic nie znaleziono",November:n3,OK:r3,October:a3,Ok:l3,"On condition change":"W przypadku zmiany warunków","On script save or adapter start":"Podczas zapisywania skryptu lub uruchamiania adaptera","On weekdays":"W dni powszednie","Open configuration":"Otwarta konfiguracja","Operate two states":"Obsługuj dwa stany","Operations with two states":"Operacje z dwoma stanami","Paste your blocks here":"Wklej tutaj swoje bloki",Pause:c3,"Pause execution":"Wstrzymaj wykonanie","Pause script":"Wstrzymaj skrypt","Phone:":"Telefon:","Please select object ID...":"Wybierz identyfikator obiektu ...","Press Ctrl+Enter to get the answer":"Naciśnij klawisze Ctrl+Enter, aby uzyskać odpowiedź","Prettify the script":"Upiększ skrypt","Print some text in log":"Wydrukuj tekst w dzienniku","Priority:":"Priorytet:",Pushover:u3,Pushsafer:d3,"Read only ID selected: %s":"Wybrano identyfikator tylko do odczytu: %s",Rename:h3,"Reorder scripts in folders":"Zmień kolejność skryptów w folderach",Repeat:p3,Restart:g3,Result:m3,"Resume execution":"Wznów wykonanie","Root folder":"Folder główny","Rules description":"Twórz reguły z blokami IF, THEN, ELSE","Run script":"Uruchom skrypt",Sa:f3,Saturday:$3,Save:b3,"Save all":"Zapisz wszystko","Say It":"Wypowiedz","Say some text via sayit adapter":"Powiedz tekst przez adapter sayit",Schedule:v3,Script:y3,"Script %s was modified on disk":"Skrypt %s został zmodyfikowany na dysku","Script is not running":"Skrypt nie działa","Search in scripts":"Szukaj w skryptach","Search...":"Szukaj...","Select all":"Zaznacz wszystko","Send email":"Wysłać email","Sends an email":"Wysyła e-mail","Sends message via Pushsafer":"Wysyła wiadomość przez Pushsafer","Sends message via pushover":"Wysyła wiadomość przez pushover","Sends message via telegram":"Wysyła wiadomość telegramem","Sends message via whatsapp-cmb":"Wysyła wiadomość przez WhatsApp-cmb",September:_3,"Server time":"Czas serwera","Set state action":"Ustaw stan działania","Set with delay":"Ustaw z opóźnieniem","Shell command":"Polecenie powłoki","Show astronomical events":"Pokaż wydarzenia astronomiczne","Show javascript code":"Pokaż kod JavaScript","Show logs":"Pokaż dzienniki","Show only paused scripts":"Pokaż tylko wstrzymane skrypty","Show only running scripts":"Pokaż tylko działające skrypty","Show only scripts with problems":"Pokaż tylko skrypty z problemami",Simulate:w3,"Some files will be rejected":"Niektóre pliki zostaną odrzucone","Sound:":"Dźwięk:",Stack:C3,Start:T3,"Start script":"Uruchom skrypt",State:k3,"State condition":"Warunek stanu","Step into function":"Wejdź do funkcji","Step out from function":"Wyjdź z funkcji","Stop on exception":"Zatrzymaj się na wyjątku",Su:S3,"Subject:":"Temat:",Sunday:E3,"TS description":"Tworzenie reguł w Typescript",Telegram:I3,"Text:":"Tekst:",Th:x3,"The script will be stopped and must be activated manually after debugging. Continue?":"Skrypt zostanie zatrzymany i należy go aktywować ręcznie po debugowaniu. Kontyntynuj?","This is advances option. You can write your own code here and it will be executed on trigger":"To jest opcja zaawansowana. Możesz tutaj napisać własny kod, który zostanie wykonany po wyzwoleniu",Thursday:D3,Time:A3,"Time condition":"Warunek czasowy","Title:":"Tytuł:","To:":"Do:","Trigger with value":"Wyzwalacz z wartością",Triggered:R3,Triggers:O3,"Triggers the on script saving or the javascript instance restart":"Uruchamia zapisywanie skryptu lub restart instancji javascript","Triggers the rule on update or change of some state":"Uruchamia regułę przy aktualizacji lub zmianie jakiegoś stanu","Triggers the rule periodically or on some specific time":"Uruchamia regułę okresowo lub w określonym czasie",Tu:M3,Tuesday:N3,URL:L3,"Unknown error":"Nieznany błąd","Unknown error!":"Nieznany błąd!","Use generated code":"Użyj wygenerowanego kodu","User function":"Funkcja użytkownika","User:":"Użytkownik:",Value:B3,"Vibration:":"Wibracja:",Volume:P3,We:F3,Wednesday:j3,"Whatsapp-cmb":"Whatsapp-cmb",Write:z3,"Write your own code":"Napisz swój własny kod",Yes:U3,"Yet exists!":"A jednak istnieje!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Możesz użyć %s w adresie URL, aby użyć bieżącej wartości wyzwalacza, %id, aby użyć wyzwalanego identyfikatora obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwalanego obiektu, lub %old, aby użyć starej wartości wyzwalacza","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Możesz użyć %s w poleceniu, aby użyć bieżącej wartości wyzwalającej, %id, aby użyć identyfikatora wyzwalanego obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwalanego obiektu, lub %old, aby użyć starej wartości wyzwalającej","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Możesz użyć %s w tekście, aby wyświetlić aktualną wartość wyzwalającą, %id, aby użyć identyfikatora wyzwolonego obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwolonego obiektu lub %old, aby użyć starej wartości wyzwalającej","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Możesz użyć %s w wartości, aby użyć bieżącej wartości wyzwalacza, %id, aby użyć identyfikatora wyzwalanego obiektu, %name, aby wyświetlić nazwę identyfikatora wyzwalanego obiektu, lub %old, aby użyć starej wartości wyzwalacza","You have to enter OpenAI API key in the configuration of javascript adapter.":"Należy wprowadzić klucz OpenAI API w konfiguracji adaptera javascript.","[equal]":"[równy]","[greater or equal]":"[większe lub równe]","[greater]":"[większe]","[hysteresis]":"[histereza]","[includes]":"[obejmuje]","[less or equal]":"[mniejsze lub równe]","[less]":"[mniejsze]","[not equal]":"[nie równe]",acknowledgment:H3,all:W3,and:G3,astro:V3,at:K3,"clear running":"czyste uruchomienie",control:Y3,copy:J3,cron:X3,dawn:q3,debug_help:Z3,debug_label:Q3,default:"domyślna",dusk:e4,easy:t4,else:"inaczej","equal to":"równy",every:s4,"every hour at 0 minutes":"co godzinę po 0 minutach",false:"fałsz","file reading has failed: %s":"odczyt pliku nie powiódł się: %s","file reading was aborted":"odczyt pliku został przerwany",filter_func:o4,filter_id:i4,filter_name:n4,filter_role:r4,filter_room:a4,"for edit or create script":"do edycji lub utwórz nowy skrypt","for professionals":"dla profesjonalistów","for programmers":"dla programistów",goldenHour:l4,goldenHourEnd:c4,"greater or equal":"większe lub równe","greater or equal to":"więcej lub równo","greater than":"więcej niż",help_just_check:u4,help_on_change:d4,"high priority":"wysoki priorytet","high-priority":"wysoki priorytet","highest priority":"najwyższy priorytet",hours:h4,includes:p4,interval:g4,"just check":"po prostu sprawdź","less or equal":"mniejsze lub równe","less or equal to":"mniej lub równo","less than":"mniej niż","lower priority":"niższy priorytet","lowest priority":"najniższy priorytet",magic:m4,milliseconds:f4,minutes:$4,ms:b4,nadir:v4,nauticalDawn:y4,nauticalDusk:_4,nextSunrise:w4,nextSunset:C4,night:T4,nightEnd:k4,"no blocks found":"Nie znaleziono bloków","no group":"BRAK GRUPY",normal:S4,"normal priority":"normalny priorytet","not equal to":"nie równa się","not properly connected":"Ten blok nie jest poprawnie podłączony do innych bloków.",offset:E4,"on change":"na zmianę","on condition change":"pod warunkiem zmiany warunków","on update":"po aktualizacji",one:I4,or:x4,quiet:D4,"reset search":"zresetuj wyszukiwanie",search:A4,seconds:R4,solarNoon:O4,"store in":"przechowaj w",sunrise:M4,sunriseEnd:N4,sunset:L4,sunsetStart:B4,then:P4,"toggle value":"wartość przełączania",tooltip_ack:F4,tooltip_from:j4,tooltip_lc:z4,tooltip_quality:U4,tooltip_ts:H4,tooltip_user:W4,tooltip_value:G4,true:"prawda",two:V4,undefined:"nieokreślony",update:K4,"use seconds":"użyj sekund","use trigger value":"użyj wartości wyzwalającej",verbose_help:Y4,verbose_label:J4,when:X4,with:"z","with date":"z datą","with offset":"z przesunięciem",wizard:q4},Q4="Reconhecido",e8="Ações",t8="Adicionar",s8="Todos",o8="Nenhum",i8="Aplique",n8="abril",r8="Perguntar",a8="Astronômico",l8="agosto",c8="Cancelar",u8="Fechar",d8="Doença",h8="Condições",p8="Console",g8="Copiado",m8="dezembro",f8="Predefinição",$8="Atraso",b8="Deletar",v8="Descrição",y8="Pronto",_8="Exec shell",w8="Explicação",C8="Exportação",T8="Februar",k8="fevereiro",S8="Filtro",E8="Pasta",I8="Fr",x8="Sexta-feira",D8="ID",A8="ID1",R8="ID2",O8="Importar",M8="Instância",N8="Instâncias",L8="Instruções",B8="Januar",P8="janeiro",F8="julho",j8="junho",z8="Limite",U8="março",H8="maio",W8="Menu",G8="mensagem",V8="Mo",K8="Modelo",Y8="Segunda-feira",J8="Mês",X8="Mais",q8="Nome",Z8="novembro",Q8="OK",e6="outubro",t6="Ok",s6="Pausa",o6="Pushover",i6="Pushsafer",n6="Renomear",r6="Repetir",a6="Reiniciar",l6="Resultado",c6="Sá",u6="Sábado",d6="Salve",h6="Cronograma",p6="Script",g6="setembro",m6="Simular",f6="Pilha",$6="Começar",b6="Estado",v6="Su",y6="Domingo",_6="Telegrama",w6="4",C6="Quinta-feira",T6="Tempo",k6="Provocado",S6="Gatilhos",E6="Tu",I6="terça",x6="URL",D6="Valor",A6="Volume",R6="3",O6="quarta",M6="Escrever",N6="sim",L6="reconhecimento",B6="todos",P6="e",F6="astro",j6="no",z6="ao controle",U6="copiar",H6="CRON",W6="alvorecer",G6="Este é um modo especial no qual estados e objetos não serão alterados. Mas apenas as informações sobre cada mudança planejada serão exibidas no protocolo.",V6="Depurar",K6="Crepúsculo",Y6="fácil",J6="cada",X6="Função",q6="ID",Z6="Nome",Q6="Tipo",e9="Quarto",t9="Hora dourada",s9="Fim da hora de ouro",o9='O código será executado apenas sempre que a condição for verdadeira. Por exemplo. se disparar no valor do sensor de temperatura e a condição for "se a temperatura for maior que 20 ° C", as ações "então" serão executadas toda vez que o sensor enviar a temperatura e ela estiver acima de 20 ° C. Por 21 ° C, por 22 ° C e assim por diante.',i9='O código será executado apenas se o resultado da condição mudar. Por exemplo. se disparar no valor do sensor de temperatura e a condição for "se a temperatura for maior que 20 ° C", as ações "então" serão executadas uma vez quando a temperatura estiver acima de 20. Na próxima vez, as ações "então" serão executadas quando a temperatura falha abaixo de 20 e sobe acima de 20 novamente.',n9="horas",r9="inclui",a9="intervalo",l9="Magia",c9="milissegundos",u9="minutos",d9="ms",h9="nadir",p9="Madrugada náutica",g9="Crepúsculo náutico",m9="próximo nascer do sol",f9="Próximo pôr do sol",$9="Noite",b9="Fim de noite",v9="normal",y9="Deslocamento",_9="1",w9="ou",C9="quieto",T9="procurar",k9="segundos",S9="Meio-dia solar",E9="nascer do sol",I9="Fim do nascer do sol",x9="pôr do sol",D9="Começo do pôr do sol",A9="então",R9="reconhecer",O9="de",M9="Última alteração",N9="Qualidade",L9="timestamp",B9="usuário",P9="valor",F9="dois",j9="atualizar",z9="Adiciona saída de depuração ao log para muitos comandos do sistema",U9="Saídas de log detalhadas",H9="quando",W9="Wizard",G9={"%s not found":"%s não encontrado","()":"()","(at %s)":"(em %s)","(optional)":"(opcional)","-":"-",".":".","AI code generator":"Gerador de código de IA",Ack:Q4,Actions:e8,"Actual time of day":"Hora real do dia",Add:t8,"Add new script":"Adicionar novo script",All:s8,"All files will be accepted":"Todos os arquivos serão aceitos",Any:o8,"Any month":"Qualquer mês",Apply:i8,April:n8,"Are you sure?":"Você tem certeza?",Ask:r8,Astronomical:a8,"Astronomical events today":"Eventos astronômicos hoje",August:l8,"Blockly description":"Criando regras por blocos gráficos","Body:":"Corpo:",Cancel:c8,"Cannot delete non empty item!":"Não pode ser deletar, porque não está vazio!","Change layout":"Alterar layout",'Change theme (actual "%s")':'Alterar tema (agora - "%s")',"Check blocks":"Verificar blocos","Check is not active, because javascript adapter is disabled":"A verificação de sintaxe não está ativa porque o adaptador javascript não está rodando.","Clear search input":"Limpar entrada de pesquisa","Click on this icon":"Clique neste ícone",Close:u8,"Close all but current":"Fechar tudo, menos atual","Collapse all":"Recolher todos","Compares current time with astronomical event":"Compara o tempo atual com o evento astronômico","Compares current time with the user specific time":"Compara a hora atual com a hora específica do usuário","Compares the state value with user defined value":"Compara o valor do estado com o valor definido pelo usuário",Condition:d8,Conditions:h8,"Configuration not saved.":"Configuração não esta salva.",Console:p8,"Control or update some state":"Controlar ou atualizar algum estado","Control or update some state with delay":"Controlar ou atualizar algum estado com atraso","Convert blockly to javascript for ever.":"Converter Blockly em Javascript permanentemente.",Copied:g8,"Copy script":"Copiar script","Copy to clipboard":"Copiar para área de transferência","Create new":"Crie um novo","Create new folder":"Criar nova pasta","Create new script":"Criar novo script","Create or edit CRON or time wizard":"Criar ou editar o assistente cron ou o assistente de horário","Dark Theme":"Layout escuro","Dark style":"Estilo escuro",Date:"Encontro","Debug instance":"Instância de depuração","Debug options":"Opções de depuração",December:m8,Default:f8,"Define cron...":"Definir cron...","Define schedule...":"Definir agendamento ...",Delay:$8,Delete:b8,"Delete %s":"Deletar %s...","Delete folder":"Deletar pasta","Delete script":"Deletar script",Description:v8,"Deselect all":"Desmarcar todos","Discard changes for %s":"Descartar alterações para %s",Done:y8,"Double click to write value":"Clique duas vezes para escrever o valor","Download as file":"Baixar como arquivo","Drop some files here or click...":"Solte alguns arquivos aqui ou clique em...","Duplicate name":"Nome duplicado","Edit script or just double click":"Edite o script ou clique duas vezes","Empty name is not allowed":"Nome vazio não é permitido","End search mode":"Finalizar modo de pesquisa","Enter your question":"Digite sua solicitação",Error:"Erro","Error formatting code":"Erro de formatação de código","Error was found":"Erro foi encontrado","Every day":"Todos os dias",Exec:_8,"Executes some shell command":"Executa algum comando shell","Existing scripts will be overwritten.":"Os scripts existentes serão substituídos.","Expand all":"Expandir todos","Expert mode":"Modo de especialista",Explanation:w8,Export:C8,"Export all scripts":"Exportar todos os scripts","Export blocks":"Exportar blocos","Export selected blocks":"Exportar blocos selecionados",Februar:T8,February:k8,Filter:S8,Folder:E8,Fr:I8,Friday:x8,Function:"Função","Function editor":"Editor de funções","Function: executed":"Função: executado","Go to next line":"Vá para a próxima linha","HTTP Call":"Chamada HTTP","Hide logs":"Ocultar logs",ID:D8,ID1:A8,ID2:R8,Import:O8,"Import blocks":"Importar blocos","Import error":"Erro de importação","Import scripts":"Importar script","Insert object ID":"Inserir ID do objeto",Instance:M8,"Instance is disabled":"Instância está desativada","Instance:":"Instância:",Instances:N8,Instructions:L8,"Invalid CRON":"CRON inválido","It will not be possible to revert this operation.":"Não será possível reverter esta operação.","JS description":"Criando regras escrevendo Javascript",Januar:B8,January:P8,July:F8,June:j8,"Just check":"Apenas verifique","Language:":"Língua:","Learn More":"Aprender mais","Light style":"Estilo claro",Limit:z8,"Local time":"Hora local","Locate file":"Localize o arquivo","Log outputs":"Saídas de log","Log text":"Texto de registro","Log: %s":"Log: %s","Make a HTTP get request":"Faça uma solicitação HTTP get","Make a pause between actions":"Faça uma pausa entre as ações",March:U8,"March ":"Março",May:H8,Menu:W8,Message:G8,Mo:V8,Model:K8,Monday:Y8,Month:J8,More:X8,Name:q8,"No Chat GPT Key found":"Nenhuma chave GPT de bate-papo encontrada","No active host found":"Nenhum host ativo encontrado","Nothing found":"Nada encontrado",November:Z8,OK:Q8,October:e6,Ok:t6,"On condition change":"Na mudança de condição","On script save or adapter start":"Ao salvar o script ou iniciar o adaptador","On weekdays":"Nos dias úteis","Open configuration":"Configuração aberta","Operate two states":"Operar dois estados","Operations with two states":"Operações com dois estados","Paste your blocks here":"Cole seus blocos aqui",Pause:s6,"Pause execution":"Pausar a execução","Pause script":"Pausar script","Phone:":"Telefone:","Please select object ID...":"Selecione o ID do objeto...","Press Ctrl+Enter to get the answer":"Pressione Ctrl+Enter para obter a resposta","Prettify the script":"Embeleze o roteiro","Print some text in log":"Imprimir algum texto no log","Priority:":"Prioridade:",Pushover:o6,Pushsafer:i6,"Read only ID selected: %s":"ID somente leitura selecionada: %s",Rename:n6,"Reorder scripts in folders":"Reordenar scripts em pastas",Repeat:r6,Restart:a6,Result:l6,"Resume execution":"Retomar execução","Root folder":"Pasta principal","Rules description":"Crie regras com blocos IF, THEN, ELSE","Run script":"Executar script",Sa:c6,Saturday:u6,Save:d6,"Save all":"Salvar tudo","Say It":"Say It","Say some text via sayit adapter":"Diga algum texto através do adaptador sayit",Schedule:h6,Script:p6,"Script %s was modified on disk":'O script "%s" foi modificado no disco rígido',"Script is not running":"Script não está sendo executado","Search in scripts":"Pesquisa em scripts","Search...":"Procurar...","Select all":"Selecionar tudo","Send email":"Enviar email","Sends an email":"Envia um email","Sends message via Pushsafer":"Envia mensagem via Pushsafer","Sends message via pushover":"Envia mensagem via pushover","Sends message via telegram":"Envia mensagem via telegrama","Sends message via whatsapp-cmb":"Envia mensagem via whatsapp-cmb",September:g6,"Server time":"Tempo de servidor","Set state action":"Definir ação de estado","Set with delay":"Definido com atraso","Shell command":"Comando shell","Show astronomical events":"Mostrar eventos astronômicos","Show javascript code":"Mostrar código Javascript","Show logs":"Mostrar logs","Show only paused scripts":"Mostrar apenas scripts pausados","Show only running scripts":"Mostrar apenas scripts em execução","Show only scripts with problems":"Mostrar apenas scripts com problemas",Simulate:m6,"Some files will be rejected":"Alguns arquivos serão rejeitados","Sound:":"Som:",Stack:f6,Start:$6,"Start script":"Iniciar script",State:b6,"State condition":"Condição de estado","Step into function":"Entre na função","Step out from function":"Saia da função","Stop on exception":"Pare na exceção",Su:v6,"Subject:":"Sujeito:",Sunday:y6,"TS description":"Criando regras escrevendo Typecript",Telegram:_6,"Text:":"Texto:",Th:w6,"The script will be stopped and must be activated manually after debugging. Continue?":"O script será interrompido e deve ser ativado manualmente após a depuração. Continuar?","This is advances option. You can write your own code here and it will be executed on trigger":"Esta é a opção de avanços. Você pode escrever seu próprio código aqui e ele será executado no gatilho",Thursday:C6,Time:T6,"Time condition":"Condição de tempo","Title:":"Título:","To:":"Para:","Trigger with value":"Trigger com valor",Triggered:k6,Triggers:S6,"Triggers the on script saving or the javascript instance restart":"Aciona o salvamento do script ou a reinicialização da instância javascript","Triggers the rule on update or change of some state":"Aciona a regra na atualização ou mudança de algum estado","Triggers the rule periodically or on some specific time":"Aciona a regra periodicamente ou em algum momento específico",Tu:E6,Tuesday:I6,URL:x6,"Unknown error":"Erro desconhecido","Unknown error!":"Erro desconhecido!","Use generated code":"Usar código gerado","User function":"Função do usuário","User:":"Do utilizador:",Value:D6,"Vibration:":"Vibração:",Volume:A6,We:R6,Wednesday:O6,"Whatsapp-cmb":"Whatsapp-cmb",Write:M6,"Write your own code":"Escreva seu próprio código",Yes:N6,"Yet exists!":"Ainda existe!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Você pode usar %s na URL para usar o valor do gatilho atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do gatilho antigo","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Você pode usar %s no comando para usar o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Você pode usar %s no texto para exibir o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Você pode usar %s no valor para usar o valor do acionador atual, %id para usar o ID do objeto acionado, %name para mostrar o nome do ID do objeto acionado ou %old para usar o valor do acionador antigo","You have to enter OpenAI API key in the configuration of javascript adapter.":"Você deve inserir a chave da API OpenAI na configuração do adaptador javascript.","[equal]":"[igual]","[greater or equal]":"[maior ou igual]","[greater]":"[maior]","[hysteresis]":"[histerese]","[includes]":"[inclui]","[less or equal]":"[menor ou igual]","[less]":"[menos]","[not equal]":"[não igual]",acknowledgment:L6,all:B6,and:P6,astro:F6,at:j6,"clear running":"corrida limpa",control:z6,copy:U6,cron:H6,dawn:W6,debug_help:G6,debug_label:V6,default:"predefinição",dusk:K6,easy:Y6,else:"outro","equal to":"igual a",every:J6,"every hour at 0 minutes":"a cada hora em 0 minutos",false:"falso","file reading has failed: %s":"a leitura do arquivo falhou: %s","file reading was aborted":"a leitura do arquivo foi abortada",filter_func:X6,filter_id:q6,filter_name:Z6,filter_role:Q6,filter_room:e9,"for edit or create script":"para editar ou criar um novo script","for professionals":"para profissionais","for programmers":"para programadores",goldenHour:t9,goldenHourEnd:s9,"greater or equal":"maior ou igual","greater or equal to":"maior ou igual a","greater than":"Maior que",help_just_check:o9,help_on_change:i9,"high priority":"prioridade máxima","high-priority":"prioridade máxima","highest priority":"Prioridade máxima",hours:n9,includes:r9,interval:a9,"just check":"Apenas verifique","less or equal":"menor ou igual","less or equal to":"menor ou igual a","less than":"Menor que","lower priority":"prioridade mais baixa","lowest priority":"prioridade mais baixa",magic:l9,milliseconds:c9,minutes:u9,ms:d9,nadir:h9,nauticalDawn:p9,nauticalDusk:g9,nextSunrise:m9,nextSunset:f9,night:$9,nightEnd:b9,"no blocks found":"Nenhum bloco encontrado","no group":"SEM GRUPO",normal:v9,"normal priority":"prioridade normal","not equal to":"não é igual a","not properly connected":"Este bloco não está conectado corretamente com outros blocos.",offset:y9,"on change":"em mudança","on condition change":"na mudança de condição","on update":"em atualização",one:_9,or:w9,quiet:C9,"reset search":"redefinir pesquisa",search:T9,seconds:k9,solarNoon:S9,"store in":"armazenar em",sunrise:E9,sunriseEnd:I9,sunset:x9,sunsetStart:D9,then:A9,"toggle value":"valor de alternância",tooltip_ack:R9,tooltip_from:O9,tooltip_lc:M9,tooltip_quality:N9,tooltip_ts:L9,tooltip_user:B9,tooltip_value:P9,true:"verdade",two:F9,undefined:"Indefinido",update:j9,"use seconds":"use segundos","use trigger value":"use o gatilho",verbose_help:z9,verbose_label:U9,when:H9,with:"com","with date":"com data","with offset":"com deslocamento",wizard:W9},V9="Подтверждение",K9="Действия",Y9="Добавить",J9="Все",X9="Любая",q9="Применить",Z9="Апрель",Q9="Спросить",eK="Aстрономический",tK="Август",sK="Отмена",oK="Закрыть",iK="Условие",nK="Условия",rK="Приставка",aK="Скопировано",lK="Декабрь",cK="Дефолт",uK="Задержка",dK="Удалить",hK="Описание",pK="Готово",gK="Исполнить shell",mK="Объяснение",fK="Экспорт",$K="Февраль",bK="Февраль",vK="Фильтр",yK="Папка",_K="Пт",wK="пятница",CK="ID",TK="ID1",kK="ID2",SK="Импорт",EK="Экземпляр",IK="Экземпляры",xK="Инструкции",DK="Январь",AK="Январь",RK="Июль",OK="Июнь",MK="Предел",NK="Март",LK="Май",BK="Меню",PK="Сообщение",FK="Пн",jK="Модель",zK="понедельник",UK="Месяц",HK="Более",WK="Имя",GK="Ноябрь",VK="Ок",KK="Октябрь",YK="Ok",JK="Пауза",XK="Pushover",qK="Pushsafer",ZK="Переименовать",QK="Повторение",eY="Перезапустить",tY="Результат",sY="Сб",oY="суббота",iY="Сохранить",nY="Расписание",rY="скрипт",aY="Сентябрь",lY="Симулировать",cY="Stack",uY="Начинать",dY="Состояние",hY="Вс",pY="Воскресенье",gY="Telegram",mY="Чт",fY="Четверг",$Y="Время",bY="Срабатывает",vY="Триггеры",yY="Вт",_Y="вторник",wY="URL",CY="Значение",TY="Громкость",kY="Ср",SY="среда",EY="Напишите",IY="Да",xY="подтверждение",DY="все",AY="и",RY="Астро",OY="в",MY="контроль",NY="копия",LY="CRON",BY="Рассвет",PY="Это особый режим, в котором состояния и объекты не будут меняться. Но в протоколе будет отображаться только информация о каждом планируемом изменении.",FY="Отлаживать",jY="Сумерки",zY="легкий",UY="каждые(ый)",HY="Функция",WY="ID",GY="Название",VY="Роль",KY="Комната",YY="Золотой час",JY="Конец золотого часа",XY="Код будет выполняться только каждый раз, когда условие истинно. Например. при срабатывании по значению датчика температуры и условию «если температура выше 20°C», действия «затем» будут выполняться каждый раз, когда датчик отправляет значение температуры, и оно превышает 20°C. На 21°С, на 22°С и так далее.",qY="Код будет выполнен только в случае изменения результата условия. Например, при срабатывании по значению датчика температуры и условию «если температура больше 20°C», действия «затем» будут выполнены один раз, когда температура превысит 20°C. В следующий раз действия «затем» будут выполнены, когда температура опустится ниже 20°C, а затем снова поднимается выше 20°C.",ZY="час(ов)",QY="содержит",eJ="интервал",tJ="магия",sJ="миллисекунды",oJ="минут(у)",iJ="мс",nJ="Надир",rJ="Морской рассвет",aJ="Морские сумерки",lJ="Следующий восход",cJ="Следующий закат",uJ="Ночь",dJ="Конец ночи",hJ="нормальный",pJ="сдвиг",gJ="один",mJ="или",fJ="тихий",$J="поиск",bJ="секунд",vJ="Солнечный полдень",yJ="Восход солнца",_J="Конец восхода",wJ="Закат солнца",CJ="Начало заката",TJ="тогда",kJ="Подтверждено",SJ="От",EJ="Последнее изменение",IJ="Качественный",xJ="Время",DJ="Пользователь",AJ="Значение",RJ="два",OJ="обновить",MJ="Добавляет вывод отладки в журнал для многих системных команд.",NJ="Подробный протокол",LJ="если",BJ="Мастер",PJ={"%s not found":"%s не найден","()":"()","(at %s)":"(в %s)","(optional)":"(необязательный)","-":"-",".":".","AI code generator":"ИИ Генератор кода",Ack:V9,Actions:K9,"Actual time of day":"Фактическое время суток",Add:Y9,"Add new script":"Добавить новый скрипт",All:J9,"All files will be accepted":"Все файлы будут приняты",Any:X9,"Any month":"В любой месяц",Apply:q9,April:Z9,"Are you sure?":"Вы уверены?",Ask:Q9,Astronomical:eK,"Astronomical events today":"Астрономические события сегодня",August:tK,"Blockly description":"Создание правил графическими блоками","Body:":"Тело:",Cancel:sK,"Cannot delete non empty item!":"Не удается удалить непустой элемент!","Change layout":"Изменить макет",'Change theme (actual "%s")':'Сменить тему (сейчас - "%s")',"Check blocks":"Проверить блоки","Check is not active, because javascript adapter is disabled":"Проверка неактивна, потому что адаптер Javascript отключен","Clear search input":"Очистить ввод","Click on this icon":"Нажмите на этот значок",Close:oK,"Close all but current":"Закрыть все кроме текущего","Collapse all":"Свернуть все","Compares current time with astronomical event":"Сравнивает текущее время с астрономическим событием","Compares current time with the user specific time":"Сравнивает текущее время с конкретным временем пользователя","Compares the state value with user defined value":"Сравнивает значение состояния с пользовательским значением",Condition:iK,Conditions:nK,"Configuration not saved.":"Конфигурация не сохранена.",Console:rK,"Control or update some state":"Контролировать или обновлять какое-то состояние","Control or update some state with delay":"Контролировать или обновлять какое-либо состояние с задержкой","Convert blockly to javascript for ever.":"Преобразовать blockly в Javascript навсегда.",Copied:aK,"Copy script":"Скопировать скрипт","Copy to clipboard":"Скопировать в буфер обмена","Create new":"Создать новый","Create new folder":"Создать новую папку","Create new script":"Создать новый скрипт","Create or edit CRON or time wizard":"Создание или редактирование CRON или мастера времени","Dark Theme":"Тёмная тема","Dark style":"Темный стиль",Date:"Дата","Debug instance":"Экземпляр отладки","Debug options":"Варианты отладки",December:lK,Default:cK,"Define cron...":"Задать правило ...","Define schedule...":"Задать расписание...",Delay:uK,Delete:dK,"Delete %s":"Удалить %s...","Delete folder":"Удалить папку","Delete script":"Удалить скрипт",Description:hK,"Deselect all":"Снять выбор со всех","Discard changes for %s":"Отменить изменения для %s",Done:pK,"Double click to write value":"Двойной щелчок для записи значения","Download as file":"Скачать как файл","Drop some files here or click...":"Перетыщите сюда файлы или нажмите ...","Duplicate name":"Повторяющееся имя","Edit script or just double click":"Редактировать скрипт или просто дважды щелкнуть","Empty name is not allowed":"Пустое имя не допускается","End search mode":"Закончить поиск","Enter your question":"Введи свою просьбу",Error:"Ошибка","Error formatting code":"Ошибка форматирования кода","Error was found":"Ошибка была найдена","Every day":"Каждый день",Exec:gK,"Executes some shell command":"Выполняет некоторую команду оболочки","Existing scripts will be overwritten.":"Существующие скрипты будут перезаписаны.","Expand all":"Открыть все","Expert mode":"Экспертный режим",Explanation:mK,Export:fK,"Export all scripts":"Экспорт всех скриптов","Export blocks":"Экспортировать блоки","Export selected blocks":"Экспортировать выбранные блоки",Februar:$K,February:bK,Filter:vK,Folder:yK,Fr:_K,Friday:wK,Function:"Функция","Function editor":"Редактор функции","Function: executed":"Функция: выполнено","Go to next line":"Перейти к следующей строке","HTTP Call":"HTTP-вызов","Hide logs":"Скрыть журналы",ID:CK,ID1:TK,ID2:kK,Import:SK,"Import blocks":"Импортировать блоки","Import error":"Ошибка импорта","Import scripts":"Импорт скриптов","Insert object ID":"Вставить ID объекта",Instance:EK,"Instance is disabled":"Экземпляр отключен","Instance:":"Пример:",Instances:IK,Instructions:xK,"Invalid CRON":"Неправильный CRON","It will not be possible to revert this operation.":"Невозможно вернуть эту операцию.","JS description":"Создание правил путём написания Javascript",Januar:DK,January:AK,July:RK,June:OK,"Just check":"Просто проверить","Language:":"Язык:","Learn More":"Узнать больше","Light style":"Светлый стиль",Limit:MK,"Local time":"Местное время","Locate file":"Показать файл в дереве","Log outputs":"Журнал","Log text":"Текст журнала","Log: %s":"Журнал: %s","Make a HTTP get request":"Сделайте HTTP-запрос на получение","Make a pause between actions":"Сделайте паузу между действиями",March:NK,"March ":"Март ",May:LK,Menu:BK,Message:PK,Mo:FK,Model:jK,Monday:zK,Month:UK,More:HK,Name:WK,"No Chat GPT Key found":"Ключ GPT для чата не найден","No active host found":"Активный host не найден","Nothing found":"Ничего не найдено",November:GK,OK:VK,October:KK,Ok:YK,"On condition change":"При изменении реузльтата условий","On script save or adapter start":"При сохранении скрипта или запуске адаптера","On weekdays":"По дням недели","Open configuration":"Открыть настройки","Operate two states":"Операции над двумя состояниями","Operations with two states":"Операции с двумя состояниями","Paste your blocks here":"Вставьте свои блоки сюда",Pause:JK,"Pause execution":"Приостановить выполнение","Pause script":"Остановить скрипт","Phone:":"Телефон:","Please select object ID...":"Пожалуйста, выберите ID объекта ...","Press Ctrl+Enter to get the answer":"Нажмите Ctrl+Enter, чтобы получить ответ","Prettify the script":"Украсьте сценарий","Print some text in log":"Напечатать текст в журнале","Priority:":"Приоритет:",Pushover:XK,Pushsafer:qK,"Read only ID selected: %s":"Выбран идентификатор только для чтения: %s",Rename:ZK,"Reorder scripts in folders":"Сортировать скрипты в папках",Repeat:QK,Restart:eY,Result:tY,"Resume execution":"Возобновить выполнение","Root folder":"Корневая папка","Rules description":"Создавайте правила с блоками ЕСЛИ, ТО, ИНАЧЕ","Run script":"Запустить скрипт",Sa:sY,Saturday:oY,Save:iY,"Save all":"Сохранить все","Say It":"Say It","Say some text via sayit adapter":"Произнесите текст через адаптер Sayit",Schedule:nY,Script:rY,"Script %s was modified on disk":'Скрипт "%s" был изменен на диске',"Script is not running":"Сценарий не запущен","Search in scripts":"Поиск в скриптах","Search...":"Поиск...","Select all":"Выбрать все","Send email":"Отправить email","Sends an email":"Отправляет электронное письмо","Sends message via Pushsafer":"Отправляет сообщение через Pushsafer","Sends message via pushover":"Отправляет сообщение через пустышку","Sends message via telegram":"Отправляет сообщение в телеграмме","Sends message via whatsapp-cmb":"Отправляет сообщение через whatsapp-cmb",September:aY,"Server time":"Время сервера","Set state action":"Установить состояние","Set with delay":"Установить с задержкой","Shell command":"Команда оболочки","Show astronomical events":"Показать астрономические события","Show javascript code":"Показать код Javascript","Show logs":"Показать журналы","Show only paused scripts":"Показывать только приостановленные сценарии","Show only running scripts":"Показывать только запущенные скрипты","Show only scripts with problems":"Показывать только скрипты с проблемами",Simulate:lY,"Some files will be rejected":"Некоторые файлы будут отклонены","Sound:":"Звук:",Stack:cY,Start:uY,"Start script":"Старт скрипта",State:dY,"State condition":"Сравнение состояния","Step into function":"Шаг в функционирование","Step out from function":"Выйти из функции","Stop on exception":"Остановить при исключении",Su:hY,"Subject:":"Предмет:",Sunday:pY,"TS description":"Создание правил путём написания Typescript",Telegram:gY,"Text:":"Текст:",Th:mY,"The script will be stopped and must be activated manually after debugging. Continue?":"Cкрипт будет остановлен и должен быть активирован вручную после отладки. Продолжать?","This is advances option. You can write your own code here and it will be executed on trigger":"Это расширеный вариант. Вы можете написать здесь свой код и он будет выполняться по триггеру",Thursday:fY,Time:$Y,"Time condition":"Условие времени","Title:":"Заголовок:","To:":"К:","Trigger with value":"Триггер со значением",Triggered:bY,Triggers:vY,"Triggers the on script saving or the javascript instance restart":"Запускает при сохранении скрипта или перезапуске экземпляра javascript","Triggers the rule on update or change of some state":"Запускает правило при обновлении или изменении какого-либо состояния","Triggers the rule periodically or on some specific time":"Срабатывает правило периодически или в определенное время",Tu:yY,Tuesday:_Y,URL:wY,"Unknown error":"Неизвестная ошибка","Unknown error!":"Неизвестная ошибка!","Use generated code":"Использовать сгенерированный код","User function":"Функция пользователя","User:":"Пользователь:",Value:CY,"Vibration:":"Вибрация:",Volume:TY,We:kY,Wednesday:SY,"Whatsapp-cmb":"Whatsapp-cmb",Write:EY,"Write your own code":"Напишите свой код",Yes:IY,"Yet exists!":"Имя уже существует!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Вы можете использовать %s в URL-адресе, чтобы использовать текущее значение триггера, %id, чтобы использовать идентификатор инициированного объекта, %name, чтобы показать имя идентификатора инициированного объекта, или %old, чтобы использовать старое значение триггера.","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Вы можете использовать %s в команде, чтобы использовать текущее значение триггера, %id, чтобы использовать идентификатор сработавшего объекта, %name, чтобы показать имя сработавшего идентификатора объекта, или %old, чтобы использовать старое значение триггера.","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Вы можете использовать %s в тексте для отображения текущего значения триггера, %id для использования идентификатора сработавшего объекта, %name для отображения имени сработавшего идентификатора объекта или %old для использования старого значения триггера.","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Вы можете использовать %s в значении, чтобы использовать текущее значение триггера, %id, чтобы использовать идентификатор инициированного объекта, %name, чтобы показать имя идентификатора инициированного объекта, или %old, чтобы использовать старое значение триггера.","You have to enter OpenAI API key in the configuration of javascript adapter.":"Вы должны ввести ключ OpenAI API в конфигурации адаптера javascript.","[equal]":"[равно]","[greater or equal]":"[больше или равно]","[greater]":"[больше]","[hysteresis]":"[гистерезис]","[includes]":"[содержит]","[less or equal]":"[меньше или равно]","[less]":"[меньше]","[not equal]":"[не равно]",acknowledgment:xY,all:DY,and:AY,astro:RY,at:OY,"clear running":"остановить уже бегущие",control:MY,copy:NY,cron:LY,dawn:BY,debug_help:PY,debug_label:FY,default:"дефолт",dusk:jY,easy:zY,else:"иначе","equal to":"равно",every:UY,"every hour at 0 minutes":"каждый час через 0 минут",false:"false","file reading has failed: %s":"Ошибка чтения файла: %s","file reading was aborted":"Чтение файла было прервано",filter_func:HY,filter_id:WY,filter_name:GY,filter_role:VY,filter_room:KY,"for edit or create script":"для редактирования или создайте новый скрипт","for professionals":"для профессионалов","for programmers":"для программистов",goldenHour:YY,goldenHourEnd:JY,"greater or equal":"больше или равно","greater or equal to":"больше или равно","greater than":"больше чем",help_just_check:XY,help_on_change:qY,"high priority":"высокий приоритет","high-priority":"высокий-приоритет","highest priority":"высший приоритет",hours:ZY,includes:QY,interval:eJ,"just check":"просто проверить","less or equal":"меньше или равно","less or equal to":"меньше или равно","less than":"меньше, чем","lower priority":"более низкий приоритет","lowest priority":"самый низкий приоритет",magic:tJ,milliseconds:sJ,minutes:oJ,ms:iJ,nadir:nJ,nauticalDawn:rJ,nauticalDusk:aJ,nextSunrise:lJ,nextSunset:cJ,night:uJ,nightEnd:dJ,"no blocks found":"Блоков нет","no group":"Нет группы",normal:hJ,"normal priority":"нормальный приоритет","not equal to":"не равно","not properly connected":"Этот блок неправильно соединён или не соединён с другими блоками.",offset:pJ,"on change":"по изменению","on condition change":"при изменении результата условия","on update":"при обновлении",one:gJ,or:mJ,quiet:fJ,"reset search":"Cбросить поиск",search:$J,seconds:bJ,solarNoon:vJ,"store in":"сохранить в",sunrise:yJ,sunriseEnd:_J,sunset:wJ,sunsetStart:CJ,then:TJ,"toggle value":"инвертировать текщее значение",tooltip_ack:kJ,tooltip_from:SJ,tooltip_lc:EJ,tooltip_quality:IJ,tooltip_ts:xJ,tooltip_user:DJ,tooltip_value:AJ,true:"true",two:RJ,undefined:"неопределенный",update:OJ,"use seconds":"использовать секунды","use trigger value":"использовать значение триггера",verbose_help:MJ,verbose_label:NJ,when:LJ,with:"с","with date":"с датой","with offset":"со сдвигом",wizard:BJ},FJ="Визнано",jJ="Дії",zJ="додати",UJ="все",HJ="Будь-який",WJ="Застосувати",GJ="квітень",VJ="Запитуйте",KJ="Астрономічний",YJ="серпень",JJ="Скасувати",XJ="Закрити",qJ="Хвороба",ZJ="Умови",QJ="Консоль",e7="Скопійовано",t7="Грудень",s7="За замовчуванням",o7="Затримка",i7="Видалити",n7="опис",r7="Готово",a7="Виконавча оболонка",l7="Пояснення",c7="Експорт",u7="Лютий",d7="Лютий",h7="фільтр",p7="Папка",g7="О",m7="П'ятниця",f7="ID",$7="ID1",b7="ID2",v7="Імпорт",y7="Екземпляр",_7="Примірники",w7="Інструкції",C7="січень",T7="січня",k7="липень",S7="червень",E7="Ліміт",I7="березень",x7="Може",D7="Меню",A7="повідомлення",R7="пн",O7="Модель",M7="понеділок",N7="місяць",L7="Більше",B7="Ім'я",P7="Листопад",F7="в порядку",j7="жовтень",z7="В порядку",U7="Пауза",H7="Pushover",W7="Pushsafer",G7="Перейменувати",V7="Повторіть",K7="Перезапустіть",Y7="Результат",J7="Sa",X7="Субота",q7="зберегти",Z7="розклад",Q7="Сценарій",eX="Вересень",tX="Симулювати",sX="Стек",oX="старт",iX="Держава",nX="Нд",rX="неділя",aX="Телеграма",lX="чт",cX="четвер",uX="час",dX="Спрацьовує",hX="Тригери",pX="вт",gX="вівторок",mX="URL",fX="Значення",$X="Обсяг",bX="ми",vX="Середа",yX="Напишіть",_X="Так",wX="підтвердження",CX="все",TX="і",kX="Астро",SX="в",EX="КОНТРОЛЬ",IX="копія",xX="CRON",DX="Світанок",AX="Це особливий режим, в якому стану та об'єкти не змінюватимуться. Але в протоколі відображатиметься лише інформація про кожну заплановану зміну.",RX="Відлагоджувати",OX="Сутінки",MX="легко",NX="кожен",LX="функція",BX="ID",PX="Ім'я",FX="Роль",jX="Кімната",zX="Золота година",UX="Кінець золотої години",HX="Код буде виконуватися лише щоразу, коли умова виконується. наприклад якщо спрацьовує значення датчика температури та умова «якщо температура перевищує 20°C», дії «тоді» виконуватимуться щоразу, коли датчик надсилає температуру, і вона перевищує 20°C. На 21°C, на 22°C і так далі.",WX="Код буде виконано лише у разі зміни результату умови. наприклад якщо спрацьовує значення датчика температури та умова «якщо температура перевищує 20°C», дії «тоді» будуть виконані один раз, коли температура буде вище 20. Наступного разу дії «тоді» буде виконано, коли температура падає нижче 20, а потім знову піднімається вище 20.",GX="години",VX="включає в себе",KX="інтервал",YX="магія",JX="мілісекунд",XX="хвилин",qX="РС",ZX="Надір",QX="Морський світанок",eq="Морські сутінки",tq="Наступний схід сонця",sq="Наступний захід сонця",oq="ніч",iq="Кінець ночі",nq="нормально",rq="зсув",aq="один",lq="або",cq="тихо",uq="пошук",dq="секунд",hq="Сонячний полудень",pq="схід сонця",gq="Кінець сходу сонця",mq="Захід сонця",fq="Початок заходу сонця",$q="потім",bq="Визнати",vq="Від",yq="Востаннє змінено",_q="якість",wq="Мітка часу",Cq="Користувач",Tq="Значення",kq="два",Sq="оновлення",Eq="Додає вихідні дані налагодження до журналу для багатьох системних команд",Iq="Докладні результати журналу",xq="коли",Dq="майстер",Aq={"%s not found":"%s не знайдено","()":"()","(at %s)":"(у %s)","(optional)":"(необов'язково)","-":"-",".":".","AI code generator":"Генератор коду ШІ",Ack:FJ,Actions:jJ,"Actual time of day":"Фактичний час доби",Add:zJ,"Add new script":"Додати новий сценарій",All:UJ,"All files will be accepted":"Усі файли будуть прийняті",Any:HJ,"Any month":"Будь-який місяць",Apply:WJ,April:GJ,"Are you sure?":"Ти впевнений?",Ask:VJ,Astronomical:KJ,"Astronomical events today":"Астрономічні події сьогодні",August:YJ,"Blockly description":"Створення правил за графічними блоками","Body:":"Тіло:",Cancel:JJ,"Cannot delete non empty item!":"Неможливо видалити непорожній елемент!","Change layout":"Змінити макет",'Change theme (actual "%s")':'Змінити тему (тепер - "%s")',"Check blocks":"Перевірте блоки","Check is not active, because javascript adapter is disabled":"Перевірка не активна, оскільки адаптер Javascript вимкнено","Clear search input":"Очистити пошуковий запит","Click on this icon":"Натисніть на цей значок",Close:XJ,"Close all but current":"Закрити всі, крім поточних","Collapse all":"Закрити всі","Compares current time with astronomical event":"Порівнює поточний час з астрономічною подією","Compares current time with the user specific time":"Порівнює поточний час із конкретним часом користувача","Compares the state value with user defined value":"Порівнює значення стану з визначеним користувачем значенням",Condition:qJ,Conditions:ZJ,"Configuration not saved.":"Конфігурація не збережена.",Console:QJ,"Control or update some state":"Контролюйте або оновлюйте певний стан","Control or update some state with delay":"Контролюйте або оновлюйте деякий стан із затримкою","Convert blockly to javascript for ever.":"Назавжди конвертуйте Blockly у Javascript.",Copied:e7,"Copy script":"Копіювати сценарій","Copy to clipboard":"Копіювати в буфер обміну","Create new":"Створити новий","Create new folder":"Створити нову папку","Create new script":"Створіть новий сценарій","Create or edit CRON or time wizard":"Створення або редагування CRON або майстра часу","Dark Theme":"Темна тема","Dark style":"Темний стиль",Date:"Дата","Debug instance":"Екземпляр налагодження","Debug options":"Параметри налагодження",December:t7,Default:s7,"Define cron...":"Визначити cron...","Define schedule...":"Визначити розклад...",Delay:o7,Delete:i7,"Delete %s":"Видалити %s...","Delete folder":"Видалити папку","Delete script":"Видалити сценарій",Description:n7,"Deselect all":"Зняти вибір із усіх","Discard changes for %s":"Скасувати зміни для %s",Done:r7,"Double click to write value":"Двічі клацніть, щоб записати значення","Download as file":"Завантажити файл","Drop some files here or click...":"Перетягніть кілька файлів сюди або натисніть...","Duplicate name":"Повторюване ім'я","Edit script or just double click":"Відредагуйте сценарій або просто двічі клацніть","Empty name is not allowed":"Порожнє ім'я не допускається","End search mode":"Завершити режим пошуку","Enter your question":"Введи своє прохання",Error:"Помилка","Error formatting code":"Помилка форматування коду","Error was found":"Виявлено помилку","Every day":"Кожен день",Exec:a7,"Executes some shell command":"Виконує певну команду оболонки","Existing scripts will be overwritten.":"Існуючі сценарії буде перезаписано.","Expand all":"Розгорнути все","Expert mode":"Експертний режим",Explanation:l7,Export:c7,"Export all scripts":"Експортувати всі сценарії","Export blocks":"Експорт блоків","Export selected blocks":"Експортувати вибрані блоки",Februar:u7,February:d7,Filter:h7,Folder:p7,Fr:g7,Friday:m7,Function:"функція","Function editor":"Редактор функцій","Function: executed":"Функція: виконано","Go to next line":"Перейти до наступного рядка","HTTP Call":"Виклик HTTP","Hide logs":"Приховати журнали",ID:f7,ID1:$7,ID2:b7,Import:v7,"Import blocks":"Імпорт блоків","Import error":"Помилка імпорту","Import scripts":"Імпорт скриптів","Insert object ID":"Вставте ID об'єкта",Instance:y7,"Instance is disabled":"Примірник вимкнено","Instance:":"екземпляр:",Instances:_7,Instructions:w7,"Invalid CRON":"Недійсний CRON","It will not be possible to revert this operation.":"Скасувати цю операцію буде неможливо.","JS description":"Створення правил шляхом написання Javascript",Januar:C7,January:T7,July:k7,June:S7,"Just check":"Просто перевірте","Language:":"Мову:","Learn More":"Вивчайте більше","Light style":"Легкий стиль",Limit:E7,"Local time":"Місцевий час","Locate file":"Знайти файл","Log outputs":"Виходи журналу","Log text":"Текст журналу","Log: %s":"Журнал: %s","Make a HTTP get request":"Зробіть HTTP-запит на отримання","Make a pause between actions":"Між діями робіть паузу",March:I7,"March ":"березень",May:x7,Menu:D7,Message:A7,Mo:R7,Model:O7,Monday:M7,Month:N7,More:L7,Name:B7,"No Chat GPT Key found":"Ключ GPT для чату не знайдено","No active host found":"Активний хост не знайдено","Nothing found":"Нічого не знайдено",November:P7,OK:F7,October:j7,Ok:z7,"On condition change":"За умови зміни результату","On script save or adapter start":"Під час збереження сценарію або запуску адаптера","On weekdays":"В будні дні","Open configuration":"Відкрита конфігурація","Operate two states":"Керуйте двома станами","Operations with two states":"Операції з двома станами","Paste your blocks here":"Вставте сюди свої блоки",Pause:U7,"Pause execution":"Призупинити виконання","Pause script":"Призупинити сценарій","Phone:":"телефон:","Please select object ID...":"Виберіть ідентифікатор об'єкта...","Press Ctrl+Enter to get the answer":"Натисніть Ctrl+Enter, щоб отримати відповідь","Prettify the script":"Прикрасьте сценарій","Print some text in log":"Надрукувати текст у журналі","Priority:":"Пріоритет:",Pushover:H7,Pushsafer:W7,"Read only ID selected: %s":"Вибрано ідентифікатор лише для читання: %s",Rename:G7,"Reorder scripts in folders":"Зміна порядку сценаріїв у папках",Repeat:V7,Restart:K7,Result:Y7,"Resume execution":"Відновити виконання","Root folder":"Коренева папка","Rules description":"Створюйте правила з блоками IF, THEN, ELSE","Run script":"Запустіть сценарій",Sa:J7,Saturday:X7,Save:q7,"Save all":"Зберегти все","Say It":"Скажи це","Say some text via sayit adapter":"Скажіть текст через адаптер sayit",Schedule:Z7,Script:Q7,"Script %s was modified on disk":"Сценарій %s змінено на диску","Script is not running":"Сценарій не працює","Search in scripts":"Пошук у скриптах","Search...":"пошук...","Select all":"Вибрати все","Send email":"Відправити лист","Sends an email":"Надсилає електронний лист","Sends message via Pushsafer":"Надсилає повідомлення через Pushsafer","Sends message via pushover":"Надсилає повідомлення через pushover","Sends message via telegram":"Надсилає повідомлення через телеграм","Sends message via whatsapp-cmb":"Надсилає повідомлення через whatsapp-cmb",September:eX,"Server time":"Час сервера","Set state action":"Встановити дію стану","Set with delay":"Встановити із затримкою","Shell command":"Команда оболонки","Show astronomical events":"Показати астрономічні події","Show javascript code":"Показати код Javascript","Show logs":"Показати журнали","Show only paused scripts":"Показувати лише призупинені сценарії","Show only running scripts":"Показувати лише запущені сценарії","Show only scripts with problems":"Показувати лише сценарії з проблемами",Simulate:tX,"Some files will be rejected":"Деякі файли буде відхилено","Sound:":"звук:",Stack:sX,Start:oX,"Start script":"Запустити сценарій",State:iX,"State condition":"Стан стану","Step into function":"Крок у функції","Step out from function":"Вийти з функції","Stop on exception":"Зупинка на винятках",Su:nX,"Subject:":"Тема:",Sunday:rX,"TS description":"Створення правил шляхом написання Typescript",Telegram:aX,"Text:":"Текст:",Th:lX,"The script will be stopped and must be activated manually after debugging. Continue?":"Сценарій буде зупинено, і його необхідно активувати вручну після налагодження. Продовжити?","This is advances option. You can write your own code here and it will be executed on trigger":"Це авансовий варіант. Ви можете написати тут свій власний код, і він буде виконано на тригері",Thursday:cX,Time:uX,"Time condition":"Умова часу","Title:":"Назва:","To:":"до:","Trigger with value":"Тригер зі значенням",Triggered:dX,Triggers:hX,"Triggers the on script saving or the javascript instance restart":"Ініціює збереження сценарію або перезапуск екземпляра JavaScript","Triggers the rule on update or change of some state":"Запускає правило при оновленні або зміні якогось стану","Triggers the rule periodically or on some specific time":"Спрацьовує правило періодично або в певний час",Tu:pX,Tuesday:gX,URL:mX,"Unknown error":"Невідома помилка","Unknown error!":"Невідома помилка!","Use generated code":"Використовуйте згенерований код","User function":"Функція користувача","User:":"Користувач:",Value:fX,"Vibration:":"Вібрація:",Volume:$X,We:bX,Wednesday:vX,"Whatsapp-cmb":"Whatsapp-cmb",Write:yX,"Write your own code":"Напишіть власний код",Yes:_X,"Yet exists!":"Все ж існує!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"Ви можете використовувати %s в URL-адресі, щоб використовувати поточне значення тригера, %id, щоб використовувати ідентифікатор активованого об’єкта, %name, щоб показати назву ідентифікатора активованого об’єкта, або %old, щоб використовувати старе значення тригера","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"Ви можете використовувати %s у команді, щоб використовувати поточне значення тригера, %id, щоб використовувати ідентифікатор активованого об’єкта, %name, щоб показати назву ідентифікатора активованого об’єкта, або %old, щоб використовувати старе значення тригера","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"Ви можете використовувати %s у тексті для відображення поточного значення тригера, %id для використання ідентифікатора активованого об’єкта, %name для відображення імені ідентифікатора активованого об’єкта або %old для використання старого значення тригера","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"Ви можете використовувати %s у значенні, щоб використовувати поточне значення тригера, %id, щоб використовувати ідентифікатор активованого об’єкта, %name, щоб показати назву ідентифікатора активованого об’єкта, або %old, щоб використовувати старе значення тригера","You have to enter OpenAI API key in the configuration of javascript adapter.":"Ви повинні ввести ключ OpenAI API у конфігурації адаптера JavaScript.","[equal]":"[рівний]","[greater or equal]":"[більше або дорівнює]","[greater]":"[більший]","[hysteresis]":"[гістерезис]","[includes]":"[включає]","[less or equal]":"[менше або рівно]","[less]":"[менше]","[not equal]":"[не дорівнює]",acknowledgment:wX,all:CX,and:TX,astro:kX,at:SX,"clear running":"чіткий біг",control:EX,copy:IX,cron:xX,dawn:DX,debug_help:AX,debug_label:RX,default:"за замовчуванням",dusk:OX,easy:MX,else:"інше","equal to":"дорівнює",every:NX,"every hour at 0 minutes":"щогодини о 0 хвилин",false:"помилковий","file reading has failed: %s":"не вдалося прочитати файл: %s","file reading was aborted":"читання файлу було перервано",filter_func:LX,filter_id:BX,filter_name:PX,filter_role:FX,filter_room:jX,"for edit or create script":"для редагування або створення нового сценарію","for professionals":"для професіоналів","for programmers":"для програмістів",goldenHour:zX,goldenHourEnd:UX,"greater or equal":"більший або рівний","greater or equal to":"більше або дорівнює","greater than":"більше, ніж, величніше ніж, крутіший за",help_just_check:HX,help_on_change:WX,"high priority":"високий пріоритет","high-priority":"високий пріоритет","highest priority":"найвищий пріоритет",hours:GX,includes:VX,interval:KX,"just check":"просто перевірте","less or equal":"менше або дорівнює","less or equal to":"менше або дорівнює","less than":"менше ніж","lower priority":"нижчий пріоритет","lowest priority":"найнижчий пріоритет",magic:YX,milliseconds:JX,minutes:XX,ms:qX,nadir:ZX,nauticalDawn:QX,nauticalDusk:eq,nextSunrise:tq,nextSunset:sq,night:oq,nightEnd:iq,"no blocks found":"Блоків не знайдено","no group":"НЕМАЄ ГРУПИ",normal:nq,"normal priority":"нормальний пріоритет","not equal to":"не дорівнює","not properly connected":"Цей блок неправильно з’єднаний з іншими блоками.",offset:rq,"on change":"на зміну","on condition change":"про зміну умов","on update":"на оновлення",one:aq,or:lq,quiet:cq,"reset search":"скинути пошук",search:uq,seconds:dq,solarNoon:hq,"store in":"зберігати в",sunrise:pq,sunriseEnd:gq,sunset:mq,sunsetStart:fq,then:$q,"toggle value":"значення перемикання",tooltip_ack:bq,tooltip_from:vq,tooltip_lc:yq,tooltip_quality:_q,tooltip_ts:wq,tooltip_user:Cq,tooltip_value:Tq,true:"правда",two:kq,undefined:"невизначений",update:Sq,"use seconds":"використовуйте секунди","use trigger value":"використовувати значення тригера",verbose_help:Eq,verbose_label:Iq,when:xq,with:"з","with date":"з датою","with offset":"зі зміщенням",wizard:Dq},Rq="确认",Oq="动作",Mq="添加",Nq="所有",Lq="任何",Bq="申请",Pq="四月",Fq="问",jq="天文",zq="八月",Uq="取消",Hq="关闭",Wq="健康)状况",Gq="情况",Vq="安慰",Kq="复制的",Yq="十二月",Jq="默认",Xq="延迟",qq="删除",Zq="描述",Qq="完成",eZ="执行力",tZ="解释",sZ="导出",oZ="二月",iZ="二月",nZ="筛选",rZ="文件夹",aZ="r",lZ="星期五",cZ="ID",uZ="ID1",dZ="ID2",hZ="导入",pZ="实例",gZ="实例",mZ="指示",fZ="亚努尔",$Z="一月",bZ="七月",vZ="六月",yZ="限制",_Z="三月",wZ="五月",CZ="菜单",TZ="信息",kZ="莫",SZ="模型",EZ="星期一",IZ="月",xZ="更多的",DZ="名称",AZ="十一月",RZ="好的",OZ="十月",MZ="确定",NZ="暂停",LZ="俯卧撑",BZ="推安全",PZ="重命名",FZ="重复",jZ="重启",zZ="结果",UZ="萨",HZ="星期六",WZ="保存",GZ="日程",VZ="脚本",KZ="九月",YZ="模拟",JZ="堆",XZ="开始",qZ="状态",ZZ="苏",QZ="星期日",eQ="电报",tQ="4",sQ="星期四",oQ="时间",iQ="触发",nQ="扳机",rQ="涂",aQ="星期二",lQ="网址",cQ="价值",uQ="体积",dQ="3",hQ="星期三",pQ="写",gQ="是的",mQ="致谢",fQ="全部",$Q="和",bQ="天文",vQ="在",yQ="控制",_Q="复制",wQ="克朗",CQ="黎明",TQ="这是一种特殊模式,其中状态和对象不会改变。但只有有关每个计划更改的信息才会显示在协议中。",kQ="调试",SQ="黄昏",EQ="简单的",IQ="每一个",xQ="功能",DQ="ID",AQ="名字",RQ="角色",OQ="房间",MQ="黄金时段",NQ="黄金时段结束",LQ="仅在条件为真时才执行代码。例如。如果触发温度传感器值并且条件为“如果温度大于20°C”,则每次传感器发送温度且温度超过20°C时,将执行“然后”动作。 21°C,22°C等。",BQ="仅当条件结果更改时,代码才会执行。例如。如果触发温度传感器值且条件为“如果温度大于20°C”,则温度超过20时将执行一次“则”动作,下一次,当温度超过20时将执行“则”动作低于20失败,然后再次超过20。",PQ="小时",FQ="包括",jQ="间隔",zQ="魔法",UQ="毫秒",HQ="分钟",WQ="毫秒",GQ="最低点",VQ="航海黎明",KQ="航海黄昏",YQ="下一个日出",JQ="下一个日落",XQ="夜晚",qQ="夜晚结束",ZQ="普通的",QQ="抵消",eee="一",tee="或",see="安静的",oee="搜索",iee="秒",nee="星期日正午",ree="日出",aee="日出结束",lee="日落",cee="日落开始",uee="然后",dee="确认",hee="从",pee="上一次改变",gee="质量",mee="时间戳",fee="用户",$ee="值",bee="二",vee="更新",yee="将调试输出添加到许多系统命令的日志中",_ee="详细日志输出",wee="什么时候",Cee="巫师",Tee={"%s not found":"%s 未找到","()":"()","(at %s)":"(在 %s)","(optional)":"(选修的)","-":"-",".":".","AI code generator":"AI代码生成器",Ack:Rq,Actions:Oq,"Actual time of day":"一天中的实际时间",Add:Mq,"Add new script":"添加新脚本",All:Nq,"All files will be accepted":"所有文件都将被接受",Any:Lq,"Any month":"任何月份",Apply:Bq,April:Pq,"Are you sure?":"你确定吗?",Ask:Fq,Astronomical:jq,"Astronomical events today":"今天的天文事件",August:zq,"Blockly description":"按图形块创建规则","Body:":"身体:",Cancel:Uq,"Cannot delete non empty item!":"无法删除非空项目!","Change layout":"变更版面",'Change theme (actual "%s")':"更改主题(现在为“%s”)","Check blocks":"检查块","Check is not active, because javascript adapter is disabled":"检查未激活,因为禁用了Javascript适配器","Clear search input":"清除搜索输入","Click on this icon":"单击此图标",Close:Hq,"Close all but current":"关闭所有(当前除外)","Collapse all":"全部收缩","Compares current time with astronomical event":"将当前时间与天文事件进行比较","Compares current time with the user specific time":"将当前时间与用户特定时间进行比较","Compares the state value with user defined value":"比较状态值和用户定义的值",Condition:Wq,Conditions:Gq,"Configuration not saved.":"配置未保存。",Console:Vq,"Control or update some state":"控制或更新某些状态","Control or update some state with delay":"延迟控制或更新某些状态","Convert blockly to javascript for ever.":"立即将blockly转换为Javascript。",Copied:Kq,"Copy script":"复制脚本","Copy to clipboard":"复制到剪贴板","Create new":"创建新的","Create new folder":"创建新文件夹","Create new script":"创建新脚本","Create or edit CRON or time wizard":"创建或编辑周期任务或时间向导","Dark Theme":"深色调主题","Dark style":"深色调风格",Date:"日期","Debug instance":"调试实例","Debug options":"调试选项",December:Yq,Default:Jq,"Define cron...":"定义周期任务...","Define schedule...":"定义调度器......",Delay:Xq,Delete:qq,"Delete %s":"删除%s...","Delete folder":"删除文件夹","Delete script":"删除脚本",Description:Zq,"Deselect all":"取消全选","Discard changes for %s":"放弃%s的更改",Done:Qq,"Double click to write value":"Double click to write value","Download as file":"档案","Drop some files here or click...":"将文件拖拽到这里或单击......","Duplicate name":"重名","Edit script or just double click":"双击编辑脚本","Empty name is not allowed":"不允许使用空名称","End search mode":"结束搜索模式","Enter your question":"输入您的要求",Error:"错误","Error formatting code":"代码格式错误","Error was found":"发现错误","Every day":"每天",Exec:eZ,"Executes some shell command":"执行一些shell命令","Existing scripts will be overwritten.":"现有脚本将被覆盖。","Expand all":"展开全部","Expert mode":"专家模式",Explanation:tZ,Export:sZ,"Export all scripts":"导出所有脚本","Export blocks":"导出块","Export selected blocks":"导出选定的块",Februar:oZ,February:iZ,Filter:nZ,Folder:rZ,Fr:aZ,Friday:lZ,Function:"功能","Function editor":"功能编辑器","Function: executed":"功能:执行","Go to next line":"转到下一行","HTTP Call":"HTTP呼叫","Hide logs":"隐藏日志",ID:cZ,ID1:uZ,ID2:dZ,Import:hZ,"Import blocks":"导入块","Import error":"导入错误","Import scripts":"导入脚本","Insert object ID":"插入对象ID",Instance:pZ,"Instance is disabled":"实例已禁用","Instance:":"实例:",Instances:gZ,Instructions:mZ,"Invalid CRON":"无效的周期任务","It will not be possible to revert this operation.":"无法恢复此操作。","JS description":"通过编写Javascript来创建规则",Januar:fZ,January:$Z,July:bZ,June:vZ,"Just check":"只是检查","Language:":"语言:","Learn More":"了解更多","Light style":"浅色调风格",Limit:yZ,"Local time":"当地时间","Locate file":"定位文件","Log outputs":"记录输出","Log text":"记录文字","Log: %s":"日志:%s","Make a HTTP get request":"发出HTTP获取请求","Make a pause between actions":"在动作之间暂停",March:_Z,"March ":"行进",May:wZ,Menu:CZ,Message:TZ,Mo:kZ,Model:SZ,Monday:EZ,Month:IZ,More:xZ,Name:DZ,"No Chat GPT Key found":"找不到聊天 GPT 密钥","No active host found":"找不到活动主机","Nothing found":"没有发现",November:AZ,OK:RZ,October:OZ,Ok:MZ,"On condition change":"条件变化时","On script save or adapter start":"在脚本保存或适配器启动时","On weekdays":"在工作日","Open configuration":"开放配置","Operate two states":"操作两种状态","Operations with two states":"具有两种状态的操作","Paste your blocks here":"在此处粘贴您的区块",Pause:NZ,"Pause execution":"暂停执行","Pause script":"暂停脚本","Phone:":"电话:","Please select object ID...":"请选择对象ID...","Press Ctrl+Enter to get the answer":"按 Ctrl+Enter 即可得到答案","Prettify the script":"美化脚本","Print some text in log":"在日志中打印一些文本","Priority:":"优先:",Pushover:LZ,Pushsafer:BZ,"Read only ID selected: %s":"选择的只读ID:%s",Rename:PZ,"Reorder scripts in folders":"重新排序文件夹中的脚本",Repeat:FZ,Restart:jZ,Result:zZ,"Resume execution":"恢复执行","Root folder":"根文件夹","Rules description":"使用IF,THEN,ELSE块创建规则","Run script":"运行脚本",Sa:UZ,Saturday:HZ,Save:WZ,"Save all":"保存全部","Say It":"Say It","Say some text via sayit adapter":"通过sayit适配器说一些文字",Schedule:GZ,Script:VZ,"Script %s was modified on disk":"脚本%s已在磁盘上修改","Script is not running":"脚本没有运行","Search in scripts":"在脚本中搜索","Search...":"搜索...","Select all":"全选","Send email":"发送电子邮件","Sends an email":"发送邮件","Sends message via Pushsafer":"通过Pushsafer发送消息","Sends message via pushover":"通过推播发送消息","Sends message via telegram":"通过电报发送消息","Sends message via whatsapp-cmb":"通过whatsapp-cmb发送消息",September:KZ,"Server time":"服务器时间","Set state action":"设定状态动作","Set with delay":"延迟设置","Shell command":"Shell命令","Show astronomical events":"显示天文事件","Show javascript code":"显示Javascript代码","Show logs":"显示记录","Show only paused scripts":"仅显示暂停的脚本","Show only running scripts":"仅显示正在运行的脚本","Show only scripts with problems":"仅显示有问题的脚本",Simulate:YZ,"Some files will be rejected":"有些文件将被拒绝","Sound:":"声音:",Stack:JZ,Start:XZ,"Start script":"启动脚本",State:qZ,"State condition":"状态条件","Step into function":"进入功能","Step out from function":"退出函数","Stop on exception":"异常停止",Su:ZZ,"Subject:":"学科:",Sunday:QZ,"TS description":"通过编写Typescript来创建规则",Telegram:eQ,"Text:":"文本:",Th:tQ,"The script will be stopped and must be activated manually after debugging. Continue?":"该脚本将停止,并且必须在调试后手动激活。继续?","This is advances option. You can write your own code here and it will be executed on trigger":"这是高级选项。您可以在此处编写自己的代码,它将在触发器上执行",Thursday:sQ,Time:oQ,"Time condition":"时间条件","Title:":"标题:","To:":"到:","Trigger with value":"用值触发",Triggered:iQ,Triggers:nQ,"Triggers the on script saving or the javascript instance restart":"触发脚本保存或javascript实例重启","Triggers the rule on update or change of some state":"在某些状态的更新或更改时触发规则","Triggers the rule periodically or on some specific time":"定期或在特定时间触发规则",Tu:rQ,Tuesday:aQ,URL:lQ,"Unknown error":"未知错误","Unknown error!":"未知错误!","Use generated code":"使用生成的代码","User function":"用户功能","User:":"用户:",Value:cQ,"Vibration:":"振动:",Volume:uQ,We:dQ,Wednesday:hQ,"Whatsapp-cmb":"Whatsapp的cmb",Write:pQ,"Write your own code":"编写自己的代码",Yes:gQ,"Yet exists!":"不存在!","You can use %s in the URL to use current trigger value or %id to use the triggered object ID":"您可以在 URL 中使用 %s 以使用当前触发值,%id 以使用触发对象 ID,%name 以显示触发对象 ID 名称或 %old 以使用旧触发值","You can use %s in the command to use current trigger value or %id to use the triggered object ID":"您可以在命令中使用 %s 以使用当前触发值,%id 使用触发对象 ID,%name 显示触发对象 ID 名称或 %old 使用旧触发值","You can use %s in the text to display current trigger value or %id to display the triggered object ID":"您可以在文本中使用 %s 显示当前触发值,%id 使用触发对象 ID,%name 显示触发对象 ID 名称或 %old 使用旧触发值","You can use %s in the value to use the current trigger value or %id to display the triggered object ID":"您可以在值中使用 %s 以使用当前触发器值,%id 使用触发对象 ID,%name 显示触发对象 ID 名称或 %old 使用旧触发器值","You have to enter OpenAI API key in the configuration of javascript adapter.":"您必须在 javascript 适配器的配置中输入 OpenAI API 密钥。","[equal]":"[平等的]","[greater or equal]":"[大于等于]","[greater]":"[更大]","[hysteresis]":"[磁滞]","[includes]":"[包括]","[less or equal]":"[小于或等于]","[less]":"[较少的]","[not equal]":"[不相等]",acknowledgment:mQ,all:fQ,and:$Q,astro:bQ,at:vQ,"clear running":"畅通无阻",control:yQ,copy:_Q,cron:wQ,dawn:CQ,debug_help:TQ,debug_label:kQ,default:"默认",dusk:SQ,easy:EQ,else:"别的","equal to":"等于",every:IQ,"every hour at 0 minutes":"每小时0分钟",false:"错误的","file reading has failed: %s":"文件读取失败:%s","file reading was aborted":"文件读取中止",filter_func:xQ,filter_id:DQ,filter_name:AQ,filter_role:RQ,filter_room:OQ,"for edit or create script":"用于编辑或创建脚本","for professionals":"对于专业人士","for programmers":"对于程序员",goldenHour:MQ,goldenHourEnd:NQ,"greater or equal":"大于或等于","greater or equal to":"大于或等于","greater than":"比...更棒",help_just_check:LQ,help_on_change:BQ,"high priority":"高优先级","high-priority":"高优先级","highest priority":"最高优先级",hours:PQ,includes:FQ,interval:jQ,"just check":"只是检查","less or equal":"小于或等于","less or equal to":"小于或等于","less than":"少于","lower priority":"低优先级","lowest priority":"最低优先级",magic:zQ,milliseconds:UQ,minutes:HQ,ms:WQ,nadir:GQ,nauticalDawn:VQ,nauticalDusk:KQ,nextSunrise:YQ,nextSunset:JQ,night:XQ,nightEnd:qQ,"no blocks found":"找不到块","no group":"没有组",normal:ZQ,"normal priority":"正常优先","not equal to":"不等于","not properly connected":"此块未正确连接到其他块。",offset:QQ,"on change":"在变化","on condition change":"在条件变化时","on update":"更新时",one:eee,or:tee,quiet:see,"reset search":"重置搜索",search:oee,seconds:iee,solarNoon:nee,"store in":"存放在",sunrise:ree,sunriseEnd:aee,sunset:lee,sunsetStart:cee,then:uee,"toggle value":"切换值",tooltip_ack:dee,tooltip_from:hee,tooltip_lc:pee,tooltip_quality:gee,tooltip_ts:mee,tooltip_user:fee,tooltip_value:$ee,true:"真的",two:bee,undefined:"不明确的",update:vee,"use seconds":"精确到秒","use trigger value":"使用触发值",verbose_help:yee,verbose_label:_ee,when:wee,with:"和","with date":"有日期","with offset":"带偏移",wizard:Cee},yr={root:{flexGrow:1,display:"flex",width:"100%",height:"100%"},mainDiv:{width:"100%",height:"100%",overflow:"hidden"},content:a=>({width:"100%",height:"100%",backgroundColor:a.palette.background&&a.palette.background.default,position:"relative"}),menuOpenCloseButton:a=>({position:"absolute",left:0,borderRadius:"0 5px 5px 0",top:6,pt:1,cursor:"pointer",zIndex:1,height:25,width:20,background:a.palette.secondary.main,color:a.palette.primary.main,pl:"3px","&:hover":{color:"white"}}),showLogButton:a=>({position:"absolute",right:3,borderRadius:"5px 5px 0 0",bottom:0,pt:"3px",cursor:"pointer",zIndex:10,height:20,width:25,background:a.palette.secondary.main,color:a.palette.primary.main,pl:1,"&:hover":{color:"white"}})};class kee extends b.GenericApp{hosts=[];importFile=null;scripts={};confirmCallback=null;constructor(s){super(s,{Connection:b.AdminConnection,translations:{en:jM,de:O1,es:SF,fr:vz,it:hW,nl:n5,pl:Z4,pt:G9,ru:PJ,uk:Aq,"zh-cn":Tee},bottomButtons:!1,socket:{autoSubscribeLog:!0},sentryDSN:window.sentryDSN});const i=window.localStorage.getItem("JS.logSizes");let r=[80,20];if(i)try{r=JSON.parse(i)}catch{}const l=window.localStorage.getItem("JS.splitSizes");let u=[20,80];if(l)try{u=JSON.parse(l)}catch{}Object.assign(this.state,{splitSizes:u,logSizes:r}),window.alert=d=>{console.error(d),this.showJsError(d.toString())}}onScriptsChanged=(s,i)=>{if(!s)return;let r=!1;const l={};s.startsWith("script.js.")&&(i?JSON.stringify(this.scripts[s])!==JSON.stringify(i)&&(this.scripts[s]=i,r=!0,l.scriptsHash=this.state.scriptsHash+1):this.scripts[s]&&(delete this.scripts[s],r=!0,l.scriptsHash=this.state.scriptsHash+1)),r&&this.setState(l)};onInstanceChanged=(s,i)=>{var u;if(!s)return;let r=!1;const l={};if(s.match(/^system\.adapter\.[-_\w\d]+\$/)){if(s.startsWith(`system.adapter.${this.adapterName}.`)){const d=parseInt(s.split(".").pop()||"0",10)||0;if((i==null?void 0:i.type)==="instance")this.state.instances.includes(d)||(l.instances=[...this.state.instances],l.instances.push(d),l.instances.sort(),r=!0,this.socket.subscribeState(`${i._id}.alive`,this.onInstanceAliveChange));else if(!i&&this.state.instances.includes(d)){this.socket.unsubscribeState(`${s}.alive`,this.onInstanceAliveChange),l.instances=[...this.state.instances];const g=l.instances.indexOf(d);l.instances.splice(g,1),r=!0}}(u=i==null?void 0:i.common)!=null&&u.blockly&&(this.confirmCallback=d=>d&&window.location.reload(),l.confirm=b.I18n.t("Some blocks were updated. Reload admin?"),r=!0)}r&&this.setState(l)};onHostChanged=(s,i)=>{if(s&&s.startsWith("system.host.")){if((i==null?void 0:i.type)==="host")this.hosts.includes(s)||(this.hosts.push(s),this.hosts.sort());else if(!i&&this.hosts.includes(s)){const r=this.hosts.indexOf(s);this.hosts.splice(r,1)}}};onConnectionReady(){window.systemLang=this.socket.systemLang,this.setState({ready:!1,scriptsHash:0,instances:[],updating:!1,resizing:!1,selected:null,logMessage:{},editing:[],menuOpened:window.localStorage.getItem("App.menuOpened")!=="false",menuSelectId:"",expertMode:window.localStorage.getItem("App.expertMode")==="true",logHorzLayout:window.localStorage.getItem("App.logHorzLayout")==="true",runningInstances:{},confirm:"",importFile:!1,message:"",searchText:"",hideLog:window.localStorage.getItem("App.hideLog")==="true",debugMode:!1,debugInstance:null,splitSizes:[20,80]},async()=>{const s={},i=await this.subscribeOnInstances();s.instances=i.instances,s.runningInstances=i.runningInstances,await this.readAdaptersWithBlockly();const r=await this.socket.getHosts();this.hosts=r.map(d=>d._id);const l=await this.readAllScripts();window.localStorage.getItem("App.expertMode")!=="true"&&window.localStorage.getItem("App.expertMode")!=="false"&&Object.keys(l).find(d=>d.startsWith("script.js.global.")&&l[d].type==="script")&&(s.expertMode=!0),this.scripts=l;let u=this.state.scriptsHash;this.compareScripts(l)&&u++,s.scriptsHash=u,s.ready=!0,this.setState(s),await this.socket.subscribeObject("script.*",this.onScriptsChanged),await this.socket.subscribeObject("system.adapter.*",this.onInstanceChanged),await this.socket.subscribeObject("system.host.*",this.onHostChanged)})}async subscribeOnInstances(){const i=(await this.socket.getAdapterInstances(this.adapterName)).map(l=>parseInt(l._id.split(".").pop()||"0")).sort(),r={};i.forEach(l=>r[`system.adapter.${this.adapterName}.${l}`]=!1);for(let l=0;ls[r]=i[r]),s}async readAdaptersWithBlockly(){const s=await this.socket.getObjectViewSystem("adapter","system.adapter.","system.adapter.香");return new Promise(i=>Pe.loadCustomBlockly(s,()=>i()))}onInstanceAliveChange=(s,i)=>{if(s&&(s=s?s.substring(0,s.length-6):"",this.state.runningInstances[s]!==(i?i.val:!1))){const r=JSON.parse(JSON.stringify(this.state.runningInstances));r[s]=i?!!i.val:!1,this.setState({runningInstances:r})}};onToggleExpertMode(s){this.onExpertModeChange(s)}compareScripts(s){const i=Object.keys(this.scripts),r=Object.keys(s);if(i.length!==r.length)return this.scripts=s,!0;if(JSON.stringify(i)!==JSON.stringify(r))return this.scripts=s,!0;for(let l=0;l ${i}`),this.setState({updating:!0});try{if(((u=this.scripts[s])==null?void 0:u.type)==="script"){const d=JSON.parse(JSON.stringify(this.scripts[s].common));d.name=r||d.name,l!==void 0&&(d.engine=`system.adapter.javascript.${l}`);const g=i.split(".");g.pop();const m=g.join(".");this.scripts[m]&&this.scripts[m].type==="script"&&(g.pop(),i=`${g.join(".")}.${i.split(".").pop()}`),await this.updateScript(s,i,d)}else await this.renameGroup(s,i,r)}catch(d){d.toString().includes("canceled")||this.showJsError(d)}this.setState({updating:!1})}async renameGroup(s,i,r,l){if(l){if(l.length){let u=l.pop();if(u){const d=await this.socket.getObject(u);if(d){try{await this.socket.delObject(u)}catch{}u=i+u.substring(s.length),d._id=u,d.common=d.common||{},d.common.expert=!0,await this.socket.setObject(u,d),await this.renameGroup(s,i,r,l)}}}}else{l=[],l=Object.keys(this.scripts).filter(d=>d.startsWith(`${s}.`));let u=await this.socket.getObject(s);u=u||{common:{},type:"channel"},u.common.name=r||u.common.name||s.split(".").pop()||"",u._id=i;try{await this.socket.delObject(s)}catch{}try{await this.socket.setObject(i,u),await this.renameGroup(s,i,r,l)}catch(d){console.log(d);const g={_id:i,type:"channel",common:{name:r||s.split(".").pop()||"",expert:!0},native:{}};await this.socket.setObject(i,g),await this.renameGroup(s,i,r,l)}}}onUpdateScript(s,i){this.scripts[s]&&this.scripts[s].type==="script"&&this.updateScript(s,s,i).then(()=>{}).catch(r=>!r.toString().includes("canceled")&&this.showJsError(r))}onSelect(s){this.scripts[s]&&this.scripts[s].common&&this.scripts[s].type==="script"&&this.setState({selected:s,menuSelectId:s},()=>setTimeout(()=>this.setState({menuSelectId:""}),300))}onExpertModeChange(s){this.state.expertMode!==s&&(window.localStorage.setItem("App.expertMode",s?"true":"false"),this.setState({expertMode:s}))}showJsError(s){this.setState({errorText:s?s.toString():""})}showMessage(s){this.setState({message:s?s.toString():""})}onDelete(s){this.socket.delObject(s).catch(i=>this.showJsError(i))}onEdit(s){this.state.selected!==s&&this.setState({selected:s})}onAddNew(s,i,r,l,u,d){const g=new RegExp(`^${s}\\.`);if(Object.keys(this.scripts).find(m=>s===m||g.test(s)))return this.showJsError(b.I18n.t("Yet exists!"));r?this.socket.setObject(s,{_id:s,type:"channel",common:{name:i,expert:!0},native:{}}).then(()=>setTimeout(()=>this.setState({menuSelectId:s},()=>setTimeout(()=>this.setState({menuSelectId:""}),300)),1e3)).catch(m=>this.showJsError(m)):(u==="Blockly"&&!d&&(d=` +//${btoa(encodeURIComponent(''))}`),this.socket.setObject(s,{_id:s,type:"script",common:{name:i,expert:!0,engineType:u||"Javascript/js",enabled:!1,engine:`system.adapter.javascript.${l||0}`,source:d||"",debug:!1,verbose:!1},native:{}}).then(()=>setTimeout(()=>this.onSelect(s),1e3)).catch(m=>this.showJsError(m)))}async updateScript(s,i,r){let l=await this.socket.getObject(s);const u={common:{}};if(r.engine!==void 0&&(u.common.engine=r.engine),r.enabled!==void 0&&(u.common.enabled=r.enabled),r.source!==void 0&&(u.common.source=r.source),r.debug!==void 0&&(u.common.debug=r.debug),r.verbose!==void 0&&(u.common.verbose=r.verbose),u.from="system.adapter.admin.0",s===i&&(l!=null&&l.common)&&r.name===l.common.name)return(!r.engineType||r.engineType!==l.common.engineType)&&r.engineType!==void 0&&(u.common.engineType=r.engineType||"Javascript/js"),u.type="script",this.socket.extendObject(s,u);if(l!=null&&l.common){l.common.engineType=r.engineType||l.common.engineType||"Javascript/js",await this.socket.delObject(s),u.common.engine!==void 0&&(l.common.engine=u.common.engine),u.common.enabled!==void 0&&(l.common.enabled=u.common.enabled),u.common.source!==void 0&&(l.common.source=u.common.source),u.common.name!==void 0&&(l.common.name=u.common.name),u.common.debug!==void 0&&(l.common.debug=u.common.debug),u.common.verbose!==void 0&&(l.common.verbose=u.common.verbose),l._rev!==void 0&&delete l._rev,l.common.name=r.name,l.common.expert=!0,l.type="script",l._id=i,await this.socket.setObject(i,l);return}return l=u,l.common.name=r.name,l.common.expert=!0,l.type="script",l._id=i,this.socket.setObject(i,l)}onEnableDisable(s,i){var r;if(((r=this.scripts[s])==null?void 0:r.type)==="script"){const l=this.scripts[s].common;l.enabled=i,l.expert=!0,this.updateScript(s,s,l).catch(u=>u!=="canceled"&&this.showJsError(u))}}async getLiveHost(){for(let s=0;s{if(typeof u=="string"){const d=document.createElement("a");d.href=`../../files/${u}`,document.body.appendChild(d),d.click(),d.remove()}else if(u.error&&this.showJsError(u.error),u.data){const d=document.createElement("a");d.href=`data: application/zip;base64,${u.data}`,d.download=`${r}scripts.zip`,document.body.appendChild(d),d.click(),d.remove()}})}onImport(s){this.importFile=s||null,s?(this.confirmCallback=this.onImportConfirmed.bind(this),this.setState({importFile:!1,confirm:b.I18n.t("Existing scripts will be overwritten.")})):this.setState({importFile:!1})}async onImportConfirmed(s){let i=this.importFile;if(this.importFile=null,s&&i){i=i.split(",")[1];const r=await this.getLiveHost();if(!r){this.showJsError(b.I18n.t("No active host found"));return}this.socket.getRawSocket().emit("sendToHost",r,"writeObjectsAsZip",{data:i,adapter:"javascript",id:"script.js"},l=>{l==="permissionError"?this.showJsError(b.I18n.t(l)):!l||l.error?this.showJsError(l?b.I18n.t(l.error||""):b.I18n.t("Unknown error")):this.showMessage(b.I18n.t("Done"))})}}toggleLogLayout(){window.localStorage.setItem("App.logHorzLayout",this.state.logHorzLayout?"false":"true"),this.setState({logHorzLayout:!this.state.logHorzLayout})}renderEditor(){const s=Object.keys(this.scripts).reduce((i,r)=>i+(this.scripts[r].common.engineType==="Rules"?1:0),0);return p.jsx(ln,{debugMode:this.state.debugMode,onDebugModeChange:i=>{i?this.setState({debugMode:!0}):this.setState({debugMode:!1,debugInstance:null})},visible:!this.state.resizing,socket:this.socket,adapterName:this.adapterName,onLocate:i=>this.setState({menuSelectId:i}),runningInstances:this.state.runningInstances,menuOpened:this.state.menuOpened,searchText:this.state.searchText,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,expertMode:this.state.expertMode,onChange:(i,r)=>this.onUpdateScript(i,r),isAnyRulesExists:s,debugInstance:this.state.debugInstance,onSelectedChange:(i,r)=>{const l={};let u=!1;i!==this.state.selected&&(u=!0,l.selected=i),JSON.stringify(r)!==JSON.stringify(this.state.editing)&&(u=!0,l.editing=JSON.parse(JSON.stringify(r))),u&&this.setState(l)},onRestart:i=>this.socket.extendObject(i,{common:{enabled:!0}}),selected:this.state.selected&&this.scripts[this.state.selected]&&this.scripts[this.state.selected].type==="script"?this.state.selected:"",objects:this.scripts,resizing:this.state.resizing},"editor")}showLogButton(){return p.jsx(y.Box,{title:b.I18n.t("Show logs"),sx:yr.showLogButton,onClick:()=>{window.localStorage.setItem("App.hideLog","false"),this.setState({hideLog:!1,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:p.jsx(dk,{})},"showLog")}renderErrorDialog(){return this.state.errorText?p.jsx(kc,{onClose:()=>this.setState({errorText:""}),text:this.state.errorText},"dialogError"):null}renderMain(){let s;return this.state.debugMode||this.state.hideLog?s=p.jsxs(p.Fragment,{children:[!this.state.debugMode&&this.state.hideLog?this.showLogButton():void 0,this.renderEditor()]}):s=p.jsxs(by,{direction:this.state.logHorzLayout?ut.Horizontal:ut.Vertical,initialSizes:this.state.logSizes,minWidths:[500,100],minHeights:[150,50],onResizeStarted:()=>this.setState({resizing:!0}),onResizeFinished:(i,r)=>{this.setState({logSizes:r,resizing:!1}),window.localStorage.setItem("JS.logSizes",JSON.stringify(r))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[this.renderEditor(),p.jsx(Rg,{verticalLayout:!this.state.logHorzLayout,onLayoutChange:()=>this.toggleLogLayout(),editing:this.state.editing,socket:this.socket,selected:this.state.selected,onHideLog:()=>{window.localStorage.setItem("App.hideLog","true"),this.setState({hideLog:!0,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)}},"log")]}),[this.state.message?p.jsx(b.Message,{onClose:()=>this.setState({message:""}),text:this.state.message},"dialogMessage"):null,this.renderErrorDialog(),this.state.importFile?p.jsx(Qg,{onClose:i=>this.onImport(i)},"dialogImportFile"):null,this.state.confirm?p.jsx(b.Confirm,{onClose:i=>{this.state.confirm&&this.setState({confirm:""}),this.confirmCallback&&this.confirmCallback(i),this.confirmCallback=null},text:this.state.confirm},"dialogConfirm"):null,p.jsxs(y.Box,{sx:yr.content,className:"iobVerticalSplitter",children:[p.jsx(y.Box,{sx:yr.menuOpenCloseButton,onClick:()=>{window.localStorage.setItem("App.menuOpened",this.state.menuOpened?"false":"true"),this.setState({menuOpened:!this.state.menuOpened,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:this.state.menuOpened?p.jsx(hk,{}):p.jsx(pk,{})},"closeMenu"),s]},"main")]}render(){if(!this.state.ready)return p.jsx(hy,{injectFirst:!0,children:p.jsx(py,{theme:this.state.theme,children:p.jsx(b.Loader,{themeType:this.state.themeType})})});let s;return this.state.menuOpened?s=p.jsxs(by,{direction:ut.Horizontal,initialSizes:this.state.splitSizes,minWidths:[270,400],onResizeFinished:(i,r)=>{this.setState({splitSizes:r}),window.localStorage.setItem("JS.splitSizes",JSON.stringify(r))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[p.jsx("div",{style:yr.mainDiv,children:p.jsx(ao,{debugMode:this.state.debugMode,onDebugInstance:i=>this.setState({debugInstance:i,debugMode:!!i}),scripts:this.scripts,scriptsHash:this.state.scriptsHash,instances:this.state.instances,onRename:this.onRename.bind(this),socket:this.socket,selectId:this.state.menuSelectId,onEdit:this.onEdit.bind(this),expertMode:this.state.expertMode,themeName:this.state.themeName,onThemeChange:i=>{b.Utils.setThemeName(i);const r=b.Utils.getThemeType(i);this.setState({themeName:i,themeType:r},()=>this.toggleTheme(i))},runningInstances:this.state.runningInstances,onExpertModeChange:this.onExpertModeChange.bind(this),onDelete:this.onDelete.bind(this),onAddNew:this.onAddNew.bind(this),onEnableDisable:this.onEnableDisable.bind(this),onExport:this.onExport.bind(this),width:500,onImport:()=>this.setState({importFile:!0}),onSearch:i=>this.setState({searchText:i}),version:this.props.version},"sidemenu")},"menu"),this.renderMain()]}):s=this.renderMain(),p.jsx(hy,{injectFirst:!0,children:p.jsx(py,{theme:this.state.theme,children:p.jsx("div",{style:yr.root,children:p.jsx(KA,{socket:this.socket,children:s})})})})}}window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function See(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(a=>{a.unregister()})}const Eee="9.0.4",AC={version:Eee};var xo;(function(a){a.mouse="mouse",a.touch="touch",a.keyboard="keyboard"})(xo||(xo={}));class Iee{get delay(){var s;return(s=this.args.delay)!==null&&s!==void 0?s:0}get scrollAngleRanges(){return this.args.scrollAngleRanges}get getDropTargetElementsAtPoint(){return this.args.getDropTargetElementsAtPoint}get ignoreContextMenu(){var s;return(s=this.args.ignoreContextMenu)!==null&&s!==void 0?s:!1}get enableHoverOutsideTarget(){var s;return(s=this.args.enableHoverOutsideTarget)!==null&&s!==void 0?s:!1}get enableKeyboardEvents(){var s;return(s=this.args.enableKeyboardEvents)!==null&&s!==void 0?s:!1}get enableMouseEvents(){var s;return(s=this.args.enableMouseEvents)!==null&&s!==void 0?s:!1}get enableTouchEvents(){var s;return(s=this.args.enableTouchEvents)!==null&&s!==void 0?s:!0}get touchSlop(){return this.args.touchSlop||0}get delayTouchStart(){var s,i,r,l;return(l=(r=(s=this.args)===null||s===void 0?void 0:s.delayTouchStart)!==null&&r!==void 0?r:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&l!==void 0?l:0}get delayMouseStart(){var s,i,r,l;return(l=(r=(s=this.args)===null||s===void 0?void 0:s.delayMouseStart)!==null&&r!==void 0?r:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&l!==void 0?l:0}get window(){if(this.context&&this.context.window)return this.context.window;if(typeof window<"u")return window}get document(){var s;if(!((s=this.context)===null||s===void 0)&&s.document)return this.context.document;if(this.window)return this.window.document}get rootElement(){var s;return((s=this.args)===null||s===void 0?void 0:s.rootElement)||this.document}constructor(s,i){this.args=s,this.context=i}}function xee(a,s,i,r){return Math.sqrt(Math.pow(Math.abs(i-a),2)+Math.pow(Math.abs(r-s),2))}function Dee(a,s,i,r,l){if(!l)return!1;const u=Math.atan2(r-s,i-a)*180/Math.PI+180;for(let d=0;d=g.start)&&(g.end==null||u<=g.end))return!0}return!1}const Aee={Left:1},Ree={Left:0};function Yp(a){return a.button===void 0||a.button===Ree.Left}function Oee(a){return a.buttons===void 0||(a.buttons&Aee.Left)===0}function RC(a){return!!a.targetTouches}const Mee=1;function Nee(a){const s=a.nodeType===Mee?a:a.parentElement;if(!s)return;const{top:i,left:r}=s.getBoundingClientRect();return{x:r,y:i}}function Lee(a,s){if(a.targetTouches.length===1)return fc(a.targetTouches[0]);if(s&&a.touches.length===1&&a.touches[0].target===s.target)return fc(a.touches[0])}function fc(a,s){return RC(a)?Lee(a,s):{x:a.clientX,y:a.clientY}}const D_=(()=>{let a=!1;try{addEventListener("test",()=>{},Object.defineProperty({},"passive",{get(){return a=!0,!0}}))}catch{}return a})(),_r={[xo.mouse]:{start:"mousedown",move:"mousemove",end:"mouseup",contextmenu:"contextmenu"},[xo.touch]:{start:"touchstart",move:"touchmove",end:"touchend"},[xo.keyboard]:{keydown:"keydown"}};class xr{profile(){var s;return{sourceNodes:this.sourceNodes.size,sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,targetNodes:this.targetNodes.size,dragOverTargetIds:((s=this.dragOverTargetIds)===null||s===void 0?void 0:s.length)||0}}get document(){return this.options.document}setup(){const s=this.options.rootElement;s&&(De(!xr.isSetUp,"Cannot have two Touch backends at the same time."),xr.isSetUp=!0,this.addEventListener(s,"start",this.getTopMoveStartHandler()),this.addEventListener(s,"start",this.handleTopMoveStartCapture,!0),this.addEventListener(s,"move",this.handleTopMove),this.addEventListener(s,"move",this.handleTopMoveCapture,!0),this.addEventListener(s,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.addEventListener(s,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.addEventListener(s,"keydown",this.handleCancelOnEscape,!0))}teardown(){const s=this.options.rootElement;s&&(xr.isSetUp=!1,this._mouseClientOffset={},this.removeEventListener(s,"start",this.handleTopMoveStartCapture,!0),this.removeEventListener(s,"start",this.handleTopMoveStart),this.removeEventListener(s,"move",this.handleTopMoveCapture,!0),this.removeEventListener(s,"move",this.handleTopMove),this.removeEventListener(s,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.removeEventListener(s,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.removeEventListener(s,"keydown",this.handleCancelOnEscape,!0),this.uninstallSourceNodeRemovalObserver())}addEventListener(s,i,r,l=!1){const u=D_?{capture:l,passive:!1}:l;this.listenerTypes.forEach(function(d){const g=_r[d][i];g&&s.addEventListener(g,r,u)})}removeEventListener(s,i,r,l=!1){const u=D_?{capture:l,passive:!1}:l;this.listenerTypes.forEach(function(d){const g=_r[d][i];g&&s.removeEventListener(g,r,u)})}connectDragSource(s,i){const r=this.handleMoveStart.bind(this,s);return this.sourceNodes.set(s,i),this.addEventListener(i,"start",r),()=>{this.sourceNodes.delete(s),this.removeEventListener(i,"start",r)}}connectDragPreview(s,i,r){return this.sourcePreviewNodeOptions.set(s,r),this.sourcePreviewNodes.set(s,i),()=>{this.sourcePreviewNodes.delete(s),this.sourcePreviewNodeOptions.delete(s)}}connectDropTarget(s,i){const r=this.options.rootElement;if(!this.document||!r)return()=>{};const l=u=>{if(!this.document||!r||!this.monitor.isDragging())return;let d;switch(u.type){case _r.mouse.move:d={x:u.clientX,y:u.clientY};break;case _r.touch.move:var g,m;d={x:((g=u.touches[0])===null||g===void 0?void 0:g.clientX)||0,y:((m=u.touches[0])===null||m===void 0?void 0:m.clientY)||0};break}const f=d!=null?this.document.elementFromPoint(d.x,d.y):void 0,v=f&&i.contains(f);if(f===i||v)return this.handleMove(u,s)};return this.addEventListener(this.document.body,"move",l),this.targetNodes.set(s,i),()=>{this.document&&(this.targetNodes.delete(s),this.removeEventListener(this.document.body,"move",l))}}getTopMoveStartHandler(){return!this.options.delayTouchStart&&!this.options.delayMouseStart?this.handleTopMoveStart:this.handleTopMoveStartDelay}installSourceNodeRemovalObserver(s){this.uninstallSourceNodeRemovalObserver(),this.draggedSourceNode=s,this.draggedSourceNodeRemovalObserver=new MutationObserver(()=>{s&&!s.parentElement&&(this.resurrectSourceNode(),this.uninstallSourceNodeRemovalObserver())}),!(!s||!s.parentElement)&&this.draggedSourceNodeRemovalObserver.observe(s.parentElement,{childList:!0})}resurrectSourceNode(){this.document&&this.draggedSourceNode&&(this.draggedSourceNode.style.display="none",this.draggedSourceNode.removeAttribute("data-reactid"),this.document.body.appendChild(this.draggedSourceNode))}uninstallSourceNodeRemovalObserver(){this.draggedSourceNodeRemovalObserver&&this.draggedSourceNodeRemovalObserver.disconnect(),this.draggedSourceNodeRemovalObserver=void 0,this.draggedSourceNode=void 0}constructor(s,i,r){this.getSourceClientOffset=l=>{const u=this.sourceNodes.get(l);return u&&Nee(u)},this.handleTopMoveStartCapture=l=>{Yp(l)&&(this.moveStartSourceIds=[])},this.handleMoveStart=l=>{Array.isArray(this.moveStartSourceIds)&&this.moveStartSourceIds.unshift(l)},this.handleTopMoveStart=l=>{if(!Yp(l))return;const u=fc(l);u&&(RC(l)&&(this.lastTargetTouchFallback=l.targetTouches[0]),this._mouseClientOffset=u),this.waitingForDelay=!1},this.handleTopMoveStartDelay=l=>{if(!Yp(l))return;const u=l.type===_r.touch.start?this.options.delayTouchStart:this.options.delayMouseStart;this.timeout=setTimeout(this.handleTopMoveStart.bind(this,l),u),this.waitingForDelay=!0},this.handleTopMoveCapture=()=>{this.dragOverTargetIds=[]},this.handleMove=(l,u)=>{this.dragOverTargetIds&&this.dragOverTargetIds.unshift(u)},this.handleTopMove=l=>{if(this.timeout&&clearTimeout(this.timeout),!this.document||this.waitingForDelay)return;const{moveStartSourceIds:u,dragOverTargetIds:d}=this,g=this.options.enableHoverOutsideTarget,m=fc(l,this.lastTargetTouchFallback);if(!m)return;if(this._isScrolling||!this.monitor.isDragging()&&Dee(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,m.x,m.y,this.options.scrollAngleRanges)){this._isScrolling=!0;return}if(!this.monitor.isDragging()&&this._mouseClientOffset.hasOwnProperty("x")&&u&&xee(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,m.x,m.y)>(this.options.touchSlop?this.options.touchSlop:0)&&(this.moveStartSourceIds=void 0,this.actions.beginDrag(u,{clientOffset:this._mouseClientOffset,getSourceClientOffset:this.getSourceClientOffset,publishSource:!1})),!this.monitor.isDragging())return;const f=this.sourceNodes.get(this.monitor.getSourceId());this.installSourceNodeRemovalObserver(f),this.actions.publishDragSource(),l.cancelable&&l.preventDefault();const v=(d||[]).map(k=>this.targetNodes.get(k)).filter(k=>!!k),w=this.options.getDropTargetElementsAtPoint?this.options.getDropTargetElementsAtPoint(m.x,m.y,v):this.document.elementsFromPoint(m.x,m.y),_=[];for(const k in w){if(!w.hasOwnProperty(k))continue;let C=w[k];for(C!=null&&_.push(C);C;)C=C.parentElement,C&&_.indexOf(C)===-1&&_.push(C)}const S=_.filter(k=>v.indexOf(k)>-1).map(k=>this._getDropTargetId(k)).filter(k=>!!k).filter((k,C,E)=>E.indexOf(k)===C);if(g)for(const k in this.targetNodes){const C=this.targetNodes.get(k);if(f&&C&&C.contains(f)&&S.indexOf(k)===-1){S.unshift(k);break}}S.reverse(),this.actions.hover(S,{clientOffset:m})},this._getDropTargetId=l=>{const u=this.targetNodes.keys();let d=u.next();for(;d.done===!1;){const g=d.value;if(l===this.targetNodes.get(g))return g;d=u.next()}},this.handleTopMoveEndCapture=l=>{if(this._isScrolling=!1,this.lastTargetTouchFallback=void 0,!!Oee(l)){if(!this.monitor.isDragging()||this.monitor.didDrop()){this.moveStartSourceIds=void 0;return}l.cancelable&&l.preventDefault(),this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.drop(),this.actions.endDrag()}},this.handleCancelOnEscape=l=>{l.key==="Escape"&&this.monitor.isDragging()&&(this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.endDrag())},this.options=new Iee(r,i),this.actions=s.getActions(),this.monitor=s.getMonitor(),this.sourceNodes=new Map,this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.targetNodes=new Map,this.listenerTypes=[],this._mouseClientOffset={},this._isScrolling=!1,this.options.enableMouseEvents&&this.listenerTypes.push(xo.mouse),this.options.enableTouchEvents&&this.listenerTypes.push(xo.touch),this.options.enableKeyboardEvents&&this.listenerTypes.push(xo.keyboard)}}const Bee=function(s,i={},r={}){return new xr(s,i,r)};window.GenericBlock=Xe;window.adapterName="javascript";window.sentryDSN="https://504499a725eb4898930d3b9e9da95740@sentry.iobroker.net/56";console.log(`iobroker.${window.adapterName}@${AC.version}`);const Pee=window.innerWidth<600,A_=document.getElementById("root");A_&&F_(A_).render(p.jsx(ew,{backend:Pee?Bee:hw,children:p.jsx(kee,{version:AC.version})}));See();const jl=window.loadDynamicScript;jl&&jl(window.location.port==="3000"?`${window.location.protocol}//${window.location.hostname}:8081/lib/js/socket.io.js`:"./../../lib/js/socket.io.js",()=>jl("vs/loader.js",()=>jl("vs/configure.js",()=>typeof window.socketLoadedHandler=="function"&&window.socketLoadedHandler())));export{VA as C,A0 as D,Xe as G,fw as I,T_ as M,ws as S,tE as a,yE as b,IE as c,ni as d,Toe as e,tm as f,kc as g,VE as h,b as i,koe as j,by as m,fn as u,ut as z}; diff --git a/admin/assets/inheritsLoose--KnFDOw1.js b/admin/assets/inheritsLoose-DgfqekV3.js similarity index 99% rename from admin/assets/inheritsLoose--KnFDOw1.js rename to admin/assets/inheritsLoose-DgfqekV3.js index f04f8ddc4..724df2e9a 100644 --- a/admin/assets/inheritsLoose--KnFDOw1.js +++ b/admin/assets/inheritsLoose-DgfqekV3.js @@ -1,4 +1,4 @@ -import{g as Je}from"./_commonjsHelpers-Cpj98o6Y.js";import{a as dt,i as mt}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import{i as c}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{ah as We,ai as ht,aj as Xe,ak as Ne,al as yt,am as St,an as pt,ao as gt,j as b,ap as Ct,aq as bt,ar as vt,u as _t,as as xt,T as N,b as $t,ac as Mt,h as Et}from"./createSvgIcon-BQT-7-GS.js";const{loadShare:Tt}=mt,{initPromise:wt}=dt,Pt=wt.then(e=>Tt("react-dom",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),jt=await Pt.then(e=>e());var kt=jt;const bo=Je(kt);var Be={exports:{}},f={};/** @license React v16.13.1 +import{g as Je}from"./_commonjsHelpers-Cpj98o6Y.js";import{a as dt,i as mt}from"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import{i as c}from"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{ah as We,ai as ht,aj as Xe,ak as Ne,al as yt,am as St,an as pt,ao as gt,j as b,ap as Ct,aq as bt,ar as vt,u as _t,as as xt,T as N,b as $t,ac as Mt,h as Et}from"./createSvgIcon-DMsh-YeH.js";const{loadShare:Tt}=mt,{initPromise:wt}=dt,Pt=wt.then(e=>Tt("react-dom",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),jt=await Pt.then(e=>e());var kt=jt;const bo=Je(kt);var Be={exports:{}},f={};/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. diff --git a/admin/assets/useTheme-DF6qfrtI.js b/admin/assets/useTheme-N2j2HWMZ.js similarity index 73% rename from admin/assets/useTheme-DF6qfrtI.js rename to admin/assets/useTheme-N2j2HWMZ.js index 1f6efe20f..99f11eb7d 100644 --- a/admin/assets/useTheme-DF6qfrtI.js +++ b/admin/assets/useTheme-N2j2HWMZ.js @@ -1 +1 @@ -import"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{q as t,u as s,T as m,E as u}from"./createSvgIcon-BQT-7-GS.js";const a=t();function r(e=a){return s(e)}function T(){const e=r(u);return e[m]||e}export{r as a,T as u}; +import"./iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js";import{q as t,u as s,T as m,E as u}from"./createSvgIcon-DMsh-YeH.js";const a=t();function r(e=a){return s(e)}function T(){const e=r(u);return e[m]||e}export{r as a,T as u}; diff --git a/admin/custom/assets/index-sawv1cUe.js b/admin/custom/assets/index-3awjKpeb.js similarity index 53% rename from admin/custom/assets/index-sawv1cUe.js rename to admin/custom/assets/index-3awjKpeb.js index a80ac9258..6fb65d753 100644 --- a/admin/custom/assets/index-sawv1cUe.js +++ b/admin/custom/assets/index-3awjKpeb.js @@ -1,25 +1,25 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CttBOMyq.js","./useTheme-MELayQMj.js","./_commonjsHelpers-D6-XlEtG.js","./createTheme-BwMO3rTt.js","./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js","./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js","./useThemeWithoutDefault-C-hl_s0Z.js"])))=>i.map(i=>d[i]); -import{C as pt,R as k}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{a as Xr,c as He,g as Zr}from"./_commonjsHelpers-D6-XlEtG.js";import{C as N}from"./ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js";import{C as Z,a as qr,I as es,D as Pi}from"./index-B8sZ2j0S.js";import{C as j,A as ts,a as Wi}from"./ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DAwHgdl6.js";import{R as ns}from"./ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js";import{F as is}from"./FilledInput-BpuM_GyB.js";import{p as rs}from"./createTheme-BwMO3rTt.js";import{i as Pn}from"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import{p as Un}from"./useTheme-MELayQMj.js";import{_ as ss}from"./preload-helper-Dp1pzeXC.js";import"./DefaultPropsProvider-9qubdy-V.js";import"./defaultTheme-avbtL0lf.js";import"./DefaultPropsProvider-DbEA5uR6.js";import"./jsx-runtime-o-xyxrOj.js";import"./useEnhancedEffect-CdLBzwyA.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";const os=Object.freeze(Object.defineProperty({__proto__:null,get ConfigGeneric(){return K},get ConfigPanel(){return $t},get JsonConfig(){return xl},get JsonConfigComponent(){return cn}},Symbol.toStringTag,{value:"Module"}));var as=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ls=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,us=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,$n={Space_Separator:as,ID_Start:ls,ID_Continue:us},Me={isSpaceSeparator(L){return typeof L=="string"&&$n.Space_Separator.test(L)},isIdStartChar(L){return typeof L=="string"&&(L>="a"&&L<="z"||L>="A"&&L<="Z"||L==="$"||L==="_"||$n.ID_Start.test(L))},isIdContinueChar(L){return typeof L=="string"&&(L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="$"||L==="_"||L==="‌"||L==="‍"||$n.ID_Continue.test(L))},isDigit(L){return typeof L=="string"&&/[0-9]/.test(L)},isHexDigit(L){return typeof L=="string"&&/[0-9A-Fa-f]/.test(L)}};let Wn,Be,it,pn,dt,Ye,Ie,Gn,Vt;var hs=function(n,i){Wn=String(n),Be="start",it=[],pn=0,dt=1,Ye=0,Ie=void 0,Gn=void 0,Vt=void 0;do Ie=cs(),fs[Be]();while(Ie.type!=="eof");return typeof i=="function"?Hn({"":Vt},"",i):Vt};function Hn(L,n,i){const u=L[n];if(u!=null&&typeof u=="object")if(Array.isArray(u))for(let v=0;v="a"&&L<="z"||L>="A"&&L<="Z"||L==="$"||L==="_"||$n.ID_Start.test(L))},isIdContinueChar(L){return typeof L=="string"&&(L>="a"&&L<="z"||L>="A"&&L<="Z"||L>="0"&&L<="9"||L==="$"||L==="_"||L==="‌"||L==="‍"||$n.ID_Continue.test(L))},isDigit(L){return typeof L=="string"&&/[0-9]/.test(L)},isHexDigit(L){return typeof L=="string"&&/[0-9A-Fa-f]/.test(L)}};let Wn,Be,it,dn,pt,Ye,Ie,Gn,Vt;var hs=function(n,i){Wn=String(n),Be="start",it=[],dn=0,pt=1,Ye=0,Ie=void 0,Gn=void 0,Vt=void 0;do Ie=cs(),fs[Be]();while(Ie.type!=="eof");return typeof i=="function"?Hn({"":Vt},"",i):Vt};function Hn(L,n,i){const u=L[n];if(u!=null&&typeof u=="object")if(Array.isArray(u))for(let v=0;v0;){const i=rt();if(!Me.isHexDigit(i))throw Ae(q());L+=q()}return String.fromCodePoint(parseInt(L,16))}const fs={start(){if(Ie.type==="eof")throw Ct();Tn()},beforePropertyName(){switch(Ie.type){case"identifier":case"string":Gn=Ie.value,Be="afterPropertyName";return;case"punctuator":nn();return;case"eof":throw Ct()}},afterPropertyName(){if(Ie.type==="eof")throw Ct();Be="beforePropertyValue"},beforePropertyValue(){if(Ie.type==="eof")throw Ct();Tn()},beforeArrayValue(){if(Ie.type==="eof")throw Ct();if(Ie.type==="punctuator"&&Ie.value==="]"){nn();return}Tn()},afterPropertyValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforePropertyName";return;case"}":nn()}},afterArrayValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforeArrayValue";return;case"]":nn()}},end(){}};function Tn(){let L;switch(Ie.type){case"punctuator":switch(Ie.value){case"{":L={};break;case"[":L=[];break}break;case"null":case"boolean":case"numeric":case"string":L=Ie.value;break}if(Vt===void 0)Vt=L;else{const n=it[it.length-1];Array.isArray(n)?n.push(L):Object.defineProperty(n,Gn,{value:L,writable:!0,enumerable:!0,configurable:!0})}if(L!==null&&typeof L=="object")it.push(L),Array.isArray(L)?Be="beforeArrayValue":Be="beforePropertyName";else{const n=it[it.length-1];n==null?Be="end":Array.isArray(n)?Be="afterArrayValue":Be="afterPropertyValue"}}function nn(){it.pop();const L=it[it.length-1];L==null?Be="end":Array.isArray(L)?Be="afterArrayValue":Be="afterPropertyValue"}function Ae(L){return dn(L===void 0?`JSON5: invalid end of input at ${dt}:${Ye}`:`JSON5: invalid character '${zi(L)}' at ${dt}:${Ye}`)}function Ct(){return dn(`JSON5: invalid end of input at ${dt}:${Ye}`)}function hi(){return Ye-=5,dn(`JSON5: invalid identifier character at ${dt}:${Ye}`)}function gs(L){console.warn(`JSON5: '${zi(L)}' in strings is not valid ECMAScript; consider escaping`)}function zi(L){const n={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(n[L])return n[L];if(L<" "){const i=L.charCodeAt(0).toString(16);return"\\x"+("00"+i).substring(i.length)}return L}function dn(L){const n=new SyntaxError(L);return n.lineNumber=dt,n.columnNumber=Ye,n}var ms=function(n,i,u){const v=[];let o="",h,d,s="",p;if(i!=null&&typeof i=="object"&&!Array.isArray(i)&&(u=i.space,p=i.quote,i=i.replacer),typeof i=="function")d=i;else if(Array.isArray(i)){h=[];for(const c of i){let f;typeof c=="string"?f=c:(typeof c=="number"||c instanceof String||c instanceof Number)&&(f=String(c)),f!==void 0&&h.indexOf(f)<0&&h.push(f)}}return u instanceof Number?u=Number(u):u instanceof String&&(u=String(u)),typeof u=="number"?u>0&&(u=Math.min(10,Math.floor(u)),s=" ".substr(0,u)):typeof u=="string"&&(s=u.substr(0,10)),e("",{"":n});function e(c,f){let m=f[c];switch(m!=null&&(typeof m.toJSON5=="function"?m=m.toJSON5(c):typeof m.toJSON=="function"&&(m=m.toJSON(c))),d&&(m=d.call(f,c,m)),m instanceof Number?m=Number(m):m instanceof String?m=String(m):m instanceof Boolean&&(m=m.valueOf()),m){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof m=="string")return t(m);if(typeof m=="number")return String(m);if(typeof m=="object")return Array.isArray(m)?a(m):r(m)}function t(c){const f={"'":.1,'"':.2},m={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let y="";for(let E=0;Ef[E]=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=o;o=o+s;let m=h||Object.keys(c),y=[];for(const E of m){const b=e(E,c);if(b!==void 0){let g=l(E)+":";s!==""&&(g+=" "),g+=b,y.push(g)}}let D;if(y.length===0)D="{}";else{let E;if(s==="")E=y.join(","),D="{"+E+"}";else{let b=`, +`&&q(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw Ae(q());case void 0:throw Ae(q())}return q()}function ps(){let L="",n=rt();if(!Me.isHexDigit(n)||(L+=q(),n=rt(),!Me.isHexDigit(n)))throw Ae(q());return L+=q(),String.fromCodePoint(parseInt(L,16))}function zn(){let L="",n=4;for(;n-- >0;){const i=rt();if(!Me.isHexDigit(i))throw Ae(q());L+=q()}return String.fromCodePoint(parseInt(L,16))}const fs={start(){if(Ie.type==="eof")throw Ct();Tn()},beforePropertyName(){switch(Ie.type){case"identifier":case"string":Gn=Ie.value,Be="afterPropertyName";return;case"punctuator":nn();return;case"eof":throw Ct()}},afterPropertyName(){if(Ie.type==="eof")throw Ct();Be="beforePropertyValue"},beforePropertyValue(){if(Ie.type==="eof")throw Ct();Tn()},beforeArrayValue(){if(Ie.type==="eof")throw Ct();if(Ie.type==="punctuator"&&Ie.value==="]"){nn();return}Tn()},afterPropertyValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforePropertyName";return;case"}":nn()}},afterArrayValue(){if(Ie.type==="eof")throw Ct();switch(Ie.value){case",":Be="beforeArrayValue";return;case"]":nn()}},end(){}};function Tn(){let L;switch(Ie.type){case"punctuator":switch(Ie.value){case"{":L={};break;case"[":L=[];break}break;case"null":case"boolean":case"numeric":case"string":L=Ie.value;break}if(Vt===void 0)Vt=L;else{const n=it[it.length-1];Array.isArray(n)?n.push(L):Object.defineProperty(n,Gn,{value:L,writable:!0,enumerable:!0,configurable:!0})}if(L!==null&&typeof L=="object")it.push(L),Array.isArray(L)?Be="beforeArrayValue":Be="beforePropertyName";else{const n=it[it.length-1];n==null?Be="end":Array.isArray(n)?Be="afterArrayValue":Be="afterPropertyValue"}}function nn(){it.pop();const L=it[it.length-1];L==null?Be="end":Array.isArray(L)?Be="afterArrayValue":Be="afterPropertyValue"}function Ae(L){return pn(L===void 0?`JSON5: invalid end of input at ${pt}:${Ye}`:`JSON5: invalid character '${zi(L)}' at ${pt}:${Ye}`)}function Ct(){return pn(`JSON5: invalid end of input at ${pt}:${Ye}`)}function hi(){return Ye-=5,pn(`JSON5: invalid identifier character at ${pt}:${Ye}`)}function gs(L){console.warn(`JSON5: '${zi(L)}' in strings is not valid ECMAScript; consider escaping`)}function zi(L){const n={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(n[L])return n[L];if(L<" "){const i=L.charCodeAt(0).toString(16);return"\\x"+("00"+i).substring(i.length)}return L}function pn(L){const n=new SyntaxError(L);return n.lineNumber=pt,n.columnNumber=Ye,n}var ms=function(n,i,u){const v=[];let o="",h,p,a="",d;if(i!=null&&typeof i=="object"&&!Array.isArray(i)&&(u=i.space,d=i.quote,i=i.replacer),typeof i=="function")p=i;else if(Array.isArray(i)){h=[];for(const c of i){let f;typeof c=="string"?f=c:(typeof c=="number"||c instanceof String||c instanceof Number)&&(f=String(c)),f!==void 0&&h.indexOf(f)<0&&h.push(f)}}return u instanceof Number?u=Number(u):u instanceof String&&(u=String(u)),typeof u=="number"?u>0&&(u=Math.min(10,Math.floor(u)),a=" ".substr(0,u)):typeof u=="string"&&(a=u.substr(0,10)),e("",{"":n});function e(c,f){let m=f[c];switch(m!=null&&(typeof m.toJSON5=="function"?m=m.toJSON5(c):typeof m.toJSON=="function"&&(m=m.toJSON(c))),p&&(m=p.call(f,c,m)),m instanceof Number?m=Number(m):m instanceof String?m=String(m):m instanceof Boolean&&(m=m.valueOf()),m){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof m=="string")return t(m);if(typeof m=="number")return String(m);if(typeof m=="object")return Array.isArray(m)?s(m):r(m)}function t(c){const f={"'":.1,'"':.2},m={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let y="";for(let E=0;Ef[E]=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=o;o=o+a;let m=h||Object.keys(c),y=[];for(const E of m){const b=e(E,c);if(b!==void 0){let g=l(E)+":";a!==""&&(g+=" "),g+=b,y.push(g)}}let D;if(y.length===0)D="{}";else{let E;if(a==="")E=y.join(","),D="{"+E+"}";else{let b=`, `+o;E=y.join(b),D=`{ `+o+E+`, -`+f+"}"}}return v.pop(),o=f,D}function l(c){if(c.length===0)return t(c);const f=String.fromCodePoint(c.codePointAt(0));if(!Me.isIdStartChar(f))return t(c);for(let m=f.length;m=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=o;o=o+s;let m=[];for(let D=0;D=0)throw TypeError("Converting circular structure to JSON5");v.push(c);let f=o;o=o+a;let m=[];for(let D=0;D>>2]>>>24-S%4*8&255;D[b+S>>>2]|=M<<24-(b+S)%4*8}else for(var _=0;_>>2]=E[_>>>2];return this.sigBytes+=g,this},clamp:function(){var y=this.words,D=this.sigBytes;y[D>>>2]&=4294967295<<32-D%4*8,y.length=u.ceil(D/4)},clone:function(){var y=e.clone.call(this);return y.words=this.words.slice(0),y},random:function(y){for(var D=[],E=0;E>>2]>>>24-g%4*8&255;b.push((S>>>4).toString(16)),b.push((S&15).toString(16))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>3]|=parseInt(y.substr(b,2),16)<<24-b%8*4;return new t.init(E,D/2)}},a=r.Latin1={stringify:function(y){for(var D=y.words,E=y.sigBytes,b=[],g=0;g>>2]>>>24-g%4*8&255;b.push(String.fromCharCode(S))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>2]|=(y.charCodeAt(b)&255)<<24-b%4*8;return new t.init(E,D)}},c=r.Utf8={stringify:function(y){try{return decodeURIComponent(escape(a.stringify(y)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(y){return a.parse(unescape(encodeURIComponent(y)))}},f=p.BufferedBlockAlgorithm=e.extend({reset:function(){this._data=new t.init,this._nDataBytes=0},_append:function(y){typeof y=="string"&&(y=c.parse(y)),this._data.concat(y),this._nDataBytes+=y.sigBytes},_process:function(y){var D,E=this._data,b=E.words,g=E.sigBytes,S=this.blockSize,M=S*4,_=g/M;y?_=u.ceil(_):_=u.max((_|0)-this._minBufferSize,0);var T=_*S,F=u.min(T*4,g);if(T){for(var A=0;A>>24)&16711935|(D<<24|D>>>8)&4278255360}var E=this._hash.words,b=c[f+0],g=c[f+1],S=c[f+2],M=c[f+3],_=c[f+4],T=c[f+5],F=c[f+6],A=c[f+7],$=c[f+8],C=c[f+9],w=c[f+10],x=c[f+11],I=c[f+12],R=c[f+13],O=c[f+14],P=c[f+15],B=E[0],V=E[1],W=E[2],H=E[3];B=t(B,V,W,H,b,7,p[0]),H=t(H,B,V,W,g,12,p[1]),W=t(W,H,B,V,S,17,p[2]),V=t(V,W,H,B,M,22,p[3]),B=t(B,V,W,H,_,7,p[4]),H=t(H,B,V,W,T,12,p[5]),W=t(W,H,B,V,F,17,p[6]),V=t(V,W,H,B,A,22,p[7]),B=t(B,V,W,H,$,7,p[8]),H=t(H,B,V,W,C,12,p[9]),W=t(W,H,B,V,w,17,p[10]),V=t(V,W,H,B,x,22,p[11]),B=t(B,V,W,H,I,7,p[12]),H=t(H,B,V,W,R,12,p[13]),W=t(W,H,B,V,O,17,p[14]),V=t(V,W,H,B,P,22,p[15]),B=r(B,V,W,H,g,5,p[16]),H=r(H,B,V,W,F,9,p[17]),W=r(W,H,B,V,x,14,p[18]),V=r(V,W,H,B,b,20,p[19]),B=r(B,V,W,H,T,5,p[20]),H=r(H,B,V,W,w,9,p[21]),W=r(W,H,B,V,P,14,p[22]),V=r(V,W,H,B,_,20,p[23]),B=r(B,V,W,H,C,5,p[24]),H=r(H,B,V,W,O,9,p[25]),W=r(W,H,B,V,M,14,p[26]),V=r(V,W,H,B,$,20,p[27]),B=r(B,V,W,H,R,5,p[28]),H=r(H,B,V,W,S,9,p[29]),W=r(W,H,B,V,A,14,p[30]),V=r(V,W,H,B,I,20,p[31]),B=l(B,V,W,H,T,4,p[32]),H=l(H,B,V,W,$,11,p[33]),W=l(W,H,B,V,x,16,p[34]),V=l(V,W,H,B,O,23,p[35]),B=l(B,V,W,H,g,4,p[36]),H=l(H,B,V,W,_,11,p[37]),W=l(W,H,B,V,A,16,p[38]),V=l(V,W,H,B,w,23,p[39]),B=l(B,V,W,H,R,4,p[40]),H=l(H,B,V,W,b,11,p[41]),W=l(W,H,B,V,M,16,p[42]),V=l(V,W,H,B,F,23,p[43]),B=l(B,V,W,H,C,4,p[44]),H=l(H,B,V,W,I,11,p[45]),W=l(W,H,B,V,P,16,p[46]),V=l(V,W,H,B,S,23,p[47]),B=a(B,V,W,H,b,6,p[48]),H=a(H,B,V,W,A,10,p[49]),W=a(W,H,B,V,O,15,p[50]),V=a(V,W,H,B,T,21,p[51]),B=a(B,V,W,H,I,6,p[52]),H=a(H,B,V,W,M,10,p[53]),W=a(W,H,B,V,w,15,p[54]),V=a(V,W,H,B,g,21,p[55]),B=a(B,V,W,H,$,6,p[56]),H=a(H,B,V,W,P,10,p[57]),W=a(W,H,B,V,F,15,p[58]),V=a(V,W,H,B,R,21,p[59]),B=a(B,V,W,H,_,6,p[60]),H=a(H,B,V,W,x,10,p[61]),W=a(W,H,B,V,S,15,p[62]),V=a(V,W,H,B,C,21,p[63]),E[0]=E[0]+B|0,E[1]=E[1]+V|0,E[2]=E[2]+W|0,E[3]=E[3]+H|0},_doFinalize:function(){var c=this._data,f=c.words,m=this._nDataBytes*8,y=c.sigBytes*8;f[y>>>5]|=128<<24-y%32;var D=u.floor(m/4294967296),E=m;f[(y+64>>>9<<4)+15]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,f[(y+64>>>9<<4)+14]=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,c.sigBytes=(f.length+1)*4,this._process();for(var b=this._hash,g=b.words,S=0;S<4;S++){var M=g[S];g[S]=(M<<8|M>>>24)&16711935|(M<<24|M>>>8)&4278255360}return b},clone:function(){var c=d.clone.call(this);return c._hash=this._hash.clone(),c}});function t(c,f,m,y,D,E,b){var g=c+(f&m|~f&y)+D+b;return(g<>>32-E)+f}function r(c,f,m,y,D,E,b){var g=c+(f&y|m&~y)+D+b;return(g<>>32-E)+f}function l(c,f,m,y,D,E,b){var g=c+(f^m^y)+D+b;return(g<>>32-E)+f}function a(c,f,m,y,D,E,b){var g=c+(m^(f|~y))+D+b;return(g<>>32-E)+f}v.MD5=d._createHelper(e),v.HmacMD5=d._createHmacHelper(e)}(Math),i.MD5})})(Kn);var As=Kn.exports;const pi=Zr(As),xs=window.innerWidth<=600?12:void 0;function _n(L){return Object.prototype.toString.call(L)==="[object Object]"}class K extends pt.Component{static DIFFERENT_VALUE="__different__";static DIFFERENT_LABEL="ra___different__";static NONE_VALUE="";static NONE_LABEL="ra_none";defaultValue;isError;lang;defaultSendToDone;sendToTimeout;noPlaceRequired;constructor(n){super(n),this.state={confirmDialog:!1,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},this.isError={},n.schema&&(n.custom?this.defaultValue=n.schema.defaultFunc?this.executeCustom(n.schema.defaultFunc,n.data,n.customObj,n.oContext.instanceObj,n.arrayIndex,n.globalData):n.schema.default:n.schema.type!=="state"&&(this.defaultValue=n.schema.defaultFunc?this.execute(n.schema.defaultFunc,n.schema.default,n.data,n.arrayIndex,n.globalData):n.schema.default)),this.lang=j.I18n.getLanguage()}componentDidMount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr,this.onUpdate);const n=["select","autocomplete","autocompleteSendTo"];if(this.defaultValue!==void 0){const i=K.getValue(this.props.data,this.props.attr);(i===void 0||n.includes(this.props.schema.type)&&(i===""||i===null))&&setTimeout(()=>{this.props.custom?this.props.onChange(this.props.attr,this.defaultValue,()=>setTimeout(()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data),100)):(K.setValue(this.props.data,this.props.attr,this.defaultValue),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)))},100)}else this.props.schema.defaultSendTo&&this.sendTo()}sendTo(){if(this.props.alive){this.defaultSendToDone=!0;let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}else n={attr:this.props.attr,value:K.getValue(this.props.data,this.props.attr)};n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.defaultSendTo,n).then(i=>{i!=null&&(this.props.custom?this.props.onChange(this.props.attr,i,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)):(K.setValue(this.props.data,this.props.attr,i),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data))))})}else this.defaultSendToDone=!1,this.props.schema.allowSaveWithError||this.onError(this.props.attr,j.I18n.t("ra_Instance %s is not alive",this.props.oContext.instance.toString()))}componentWillUnmount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr),this.sendToTimeout&&(clearTimeout(this.sendToTimeout),this.sendToTimeout=null)}onUpdate=n=>{const i=K.getValue(n||this.props.data,this.props.attr)||"";this.state.value!==i?this.setState({value:i}):this.forceUpdate()};static getValue(n,i){if(typeof i=="string")return K.getValue(n,i.split("."));if(i.length===1)return n[i[0]];const u=i.shift();if(typeof u=="string"&&typeof n[u]=="object")return K.getValue(n[u],i)}static setValue(n,i,u){if(typeof i=="string"){K.setValue(n,i.split("."),u);return}if(i.length===1)u===null?delete n[i[0]]:n[i[0]]=u;else{const v=i.shift();if(typeof v!="string")return;(!n[v]||typeof n[v]=="object")&&(n[v]=n[v]||{}),K.setValue(n[v],i,u)}}getText(n,i){if(!n)return"";if(typeof n=="string"){const u=i?n:j.I18n.t(n);return u.includes("${")?this.getPattern(u,null,i):u}return _n(n)?n.func?typeof n.func=="object"?this.getPattern(n.func[this.lang]||n.func.en||"",null,!0):this.getPattern(n.func,null,i):n[this.lang]||n.en||"":n.toString()}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=k.createElement(Z.Warning,null):n.type==="error"?i=k.createElement(Z.Error,null):n.type==="info"&&(i=k.createElement(Z.Info,null)),k.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:u=>this.setState({confirmDialog:!1},()=>{if(u){if(this.state.confirmCallback){const o=this.state.confirmCallback;this.setState({confirmCallback:null},()=>o(!0));return}const v=JSON.parse(JSON.stringify(this.props.data));this.state.confirmDepAttr&&K.setValue(v,this.state.confirmDepAttr,this.state.confirmDepNewValue),K.setValue(v,this.state.confirmAttr,this.state.confirmNewValue),this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null},()=>this.props.onChange(v))}else{const v=this.state.confirmCallback;this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},()=>{v&&v(!1)})}})})}getIcon(n){n=n||this.props.schema.icon;let i=null;return n==="auth"?i=k.createElement(Z.Key,null):n==="send"?i=k.createElement(Z.Send,null):n==="web"?i=k.createElement(Z.Public,null):n==="warning"?i=k.createElement(Z.Warning,null):n==="error"?i=k.createElement(Z.Error,null):n==="info"?i=k.createElement(Z.Info,null):n==="search"?i=k.createElement(Z.Search,null):n==="book"?i=k.createElement(Z.MenuBook,null):n==="help"?i=k.createElement(Z.Help,null):n==="upload"?i=k.createElement(Z.UploadFile,null):n==="edit"?i=k.createElement(Z.Edit,null):n==="user"?i=k.createElement(Z.Person,null):n==="group"?i=k.createElement(Z.Group,null):n==="delete"?i=k.createElement(Z.Delete,null):n==="refresh"?i=k.createElement(Z.Refresh,null):n==="add"?i=k.createElement(Z.Add,null):n==="unpair"?i=k.createElement(Z.LinkOff,null):n==="pair"?i=k.createElement(Z.Link,null):n==="save"?i=k.createElement(Z.Save,null):n==="open"?i=k.createElement(Z.OpenInNew,null):n&&((n.endsWith(".png")||n.endsWith(".svg")||n.endsWith(".jpg"))&&!n.startsWith("http://")&&!n.startsWith("https://")&&(n=`./adapter/${this.props.oContext.adapterName}/${n}`),i=k.createElement(j.Icon,{src:n,style:{width:22,height:22}})),i}onChangeAsync(n,i){return new Promise(u=>{const v=this.onChange(n,i,u);v instanceof Promise&&v.catch(o=>console.error(`Cannot set value: ${o}`))})}onChange(n,i,u){const v=JSON.parse(JSON.stringify(this.props.data));if(K.setValue(v,n,i),this.props.schema.confirm&&this.execute(this.props.schema.confirm.condition,!1,v,this.props.arrayIndex,this.props.globalData))return new Promise(h=>{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmData:null},()=>{typeof u=="function"?u():h()})});if(this.props.schema.confirmDependsOn)for(let h=0;h{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmDepNewValue:s,confirmDepAttr:d.attr,confirmData:d.confirm},()=>{typeof u=="function"?u():p()})})}}const o=[];if(this.props.schema.onChangeDependsOn)for(let h=0;hu&&u()),o!=null&&o.length&&o.forEach((h,d)=>setTimeout(()=>this.props.onChange(h,K.getValue(v,h)),d*50))):this.props.onChange(v,void 0,()=>{o.length&&this.props.oContext.forceUpdate(o,v),u&&u()}),Promise.resolve()}execute(n,i,u,v,o){let h;if(_n(n))h=n.func;else if(typeof n=="string")h=n;else return n;if(!h)return i;try{return new Function("data","originalData","_system","_alive","_common","_socket","_instance","arrayIndex","globalData","_changed",h.includes("return")?h:`return ${h}`)(u||this.props.data,this.props.originalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.oContext.instance,v,o,this.props.changed)}catch(d){return console.error(`Cannot execute ${JSON.stringify(n)}: ${d}`),i}}executeCustom(n,i,u,v,o,h){let d;if(_n(n))d=n.func;else if(typeof n=="string")d=n;else return n;if(!d)return null;try{return new Function("data","originalData","_system","instanceObj","customObj","_socket","arrayIndex","globalData","_changed",d.includes("return")?d:`return ${d}`)(i||this.props.data,this.props.originalData,this.props.oContext.systemConfig,v,u,this.props.oContext.socket,o,h,this.props.changed)}catch(s){return console.error(`Cannot execute ${d}: ${s}`),null}}calculate(n){let i,u,v,o;return this.props.custom?(i=n.validator?!this.executeCustom(n.validator,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?u=!0:u=n.disabled?this.executeCustom(n.disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.executeCustom(n.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,o=n.defaultFunc?this.executeCustom(n.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):n.default):(i=n.validator?!this.execute(n.validator,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?u=!0:u=n.disabled?this.execute(n.disabled,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.execute(n.hidden,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,o=n.defaultFunc?this.execute(n.defaultFunc,n.default,this.props.data,this.props.arrayIndex,this.props.globalData):n.default),{error:i,disabled:u,hidden:v,defaultValue:o}}onError(n,i){i?this.isError[n]=i:delete this.isError[n],this.props.onError&&this.props.onError(n,i)}renderItem(n,i,u){return this.getText(this.props.schema.label)||this.getText(this.props.schema.text)}renderHelp(n,i,u){return i?k.createElement("a",{href:i,target:"_blank",rel:"noreferrer",style:{color:this.props.oContext.themeType==="dark"?"#a147ff":"#5b238f",textDecoration:"underline"}},this.getText(n,u)):(n=this.getText(n,u)||"",n&&(n.includes("")||n.includes(""))?j.Utils.renderTextWithA(n):n)}static escapeString(n,i){return typeof n!="string"?"":(n=n.replace(/`/g,"\\`"),n=n.replace(/\${([^}]+)}/g,(u,v)=>{if(v&&typeof v=="string"&&v.startsWith("data.")){const o=K.getValue(i,v.replace(/^data\./,""));if(typeof o=="string"&&o.includes('"'))return`\${${v}.replace(/"/g, '\\\\"')}`}return u}),n)}getPattern(n,i,u){if(i=i||this.props.data,!n)return"";let v;typeof n=="object"?n.func?v=n.func:(console.log(`Object must be stringified: ${JSON.stringify(n)}`),v=JSON.stringify(n)):v=n;try{if(this.props.custom)return new Function("data","originalData","arrayIndex","globalData","_system","instanceObj","customObj","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.oContext.instanceObj,this.props.customObj,this.props.oContext.socket,this.props.changed);const h=new Function("data","originalData","arrayIndex","globalData","_system","_alive","_common","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.changed);return u?h:j.I18n.t(h)}catch(o){return console.error(`Cannot execute ${v}: ${o}`),v}}render(){const n=this.props.schema;if(!n||this.props.expertMode===!1&&n.expertMode)return null;this.props.alive&&this.defaultSendToDone===!1&&(this.sendToTimeout=setTimeout(()=>{this.sendToTimeout=null,this.sendTo()},200));const{error:i,disabled:u,hidden:v,defaultValue:o}=this.calculate(n);if(v){if(Object.keys(this.isError).length&&(setTimeout(s=>Object.keys(s).forEach(p=>this.props.onError(p)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}),n.hideOnlyControl){const s=k.createElement(N.Grid2,{size:{xs:n.xs||xs,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}});return n.newLine?k.createElement(k.Fragment,null,k.createElement("div",{style:{flexBasis:"100%",height:0}}),s):s}return null}n.validatorNoSaveOnError&&(i&&!Object.keys(this.isError).length?(this.isError={[this.props.attr]:n.validatorErrorText?j.I18n.t(n.validatorErrorText):!0},setTimeout(s=>Object.keys(s).forEach(p=>this.props.onError(p,s[p])),100,JSON.parse(JSON.stringify(this.isError)))):!i&&Object.keys(this.isError).length&&(setTimeout(s=>Object.keys(s).forEach(p=>this.props.onError(p)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}));const h=this.renderItem(i,u||this.props.commandRunning||this.props.disabled,o);if(this.noPlaceRequired)return h;const d=k.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",width:n.type==="divider"||n.type==="header"?n.width||"100%":void 0,...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}},this.props.schema.defaultSendTo&&this.props.schema.button?k.createElement(N.Grid2,{container:!0,style:{width:"100%"}},k.createElement(N.Grid2,{flex:1},h),k.createElement(N.Grid2,null,k.createElement(N.Button,{disabled:u,variant:"outlined",onClick:()=>this.sendTo(),title:this.props.schema.buttonTooltip?this.getText(this.props.schema.buttonTooltip,this.props.schema.buttonTooltipNoTranslation):j.I18n.t("ra_Request data by instance")},this.getText(this.props.schema.button)))):h);return n.newLine?k.createElement(k.Fragment,null,k.createElement("div",{style:{flexBasis:"100%",height:0}}),this.renderDialogConfirm(),d):this.state.confirmDialog?k.createElement(k.Fragment,null,this.renderDialogConfirm(),d):d}}const Ge={fullWidth:{width:"100%"},accordionSummary:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"}),accordionTitle:{},toolbar:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)",borderRadius:"3px"}),tooltip:{pointerEvents:"none"}};class $s extends K{typingTimer=null;constructor(n){super(n),this.props.schema.items=this.props.schema.items||[]}componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr)||[];Array.isArray(n)||(n=[]),this.setState({value:n,activeIndex:-1,iteration:0})}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),super.componentWillUnmount()}itemAccordion(n,i){const{value:u}=this.state,{schema:v}=this.props,o={type:"panel",items:v.items.reduce((h,d)=>(h[d.attr]=d,h),{}),style:{marginLeft:"-8px",marginTop:"10px",marginBottom:"10px"}};return k.createElement($t,{oContext:this.props.oContext,index:i+this.state.iteration,arrayIndex:i,changed:this.props.changed,expertMode:this.props.expertMode,globalData:this.props.data,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:n,custom:!0,schema:o,originalData:this.props.originalData,onChange:(h,d)=>{const s=JSON.parse(JSON.stringify(u));s[i][h]=d,this.setState({value:s},()=>this.onChangeWrapper(s))},onError:(h,d)=>this.onError(h,d),table:this.props.table})}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),u=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof u[this.props.schema.clone]=="string"){let v=1,o=u[this.props.schema.clone];const h=o.match(/(\d+)$/);for(h?(o=o.replace(h[0],""),v=parseInt(h[0],10)+1):o+="_";i.find(d=>d[this.props.schema.clone]===o+v.toString());)v++;u[this.props.schema.clone]=`${u[this.props.schema.clone]}_${v}`}i.splice(n,0,u),this.setState({value:i,activeIndex:-1,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onChangeWrapper=n=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout(i=>{this.typingTimer=null;const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>this.onError(v))},300,n)};onAdd=()=>{const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),u=n.items&&n.items.reduce((v,o)=>{let h;return o.defaultFunc?this.props.custom?h=o.defaultFunc?this.executeCustom(o.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:h=o.defaultFunc?this.execute(o.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:h=o.default===void 0?null:o.default,v[o.attr]=h,v},{});i.push(u),this.setState({value:i,activeIndex:i.length-1},()=>this.onChangeWrapper(i))};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n-1,0,u);const v=this.state.activeIndex-1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n+1,0,u);const v=this.state.activeIndex+1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}renderItem(){const{schema:n}=this.props,{value:i}=this.state;return i?k.createElement(N.Paper,null,n.label||!n.noDelete?k.createElement(N.Toolbar,{variant:"dense"},n.label?k.createElement(N.Typography,{variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)):null,n.noDelete?null:k.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},k.createElement(Z.Add,null))):null,i.map((u,v)=>k.createElement(N.Accordion,{key:`${u}_${v}`,expanded:this.state.activeIndex===v,onChange:(o,h)=>this.setState({activeIndex:h?v:-1})},k.createElement(N.AccordionSummary,{expandIcon:k.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,Ge.fullWidth,Ge.accordionSummary)},k.createElement(N.Typography,{style:Ge.accordionTitle},u[n.titleAttr])),k.createElement(N.AccordionDetails,{style:{...n.style,...this.props.oContext.themeType?n.darkStyle:void 0}},this.itemAccordion(i[v],v),k.createElement(N.Toolbar,{sx:Ge.toolbar},v?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:Ge.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(v)},k.createElement(Z.ArrowUpward,null))):k.createElement("div",{style:Ge.buttonEmpty}),vthis.onMoveDown(v)},k.createElement(Z.ArrowDownward,null))):k.createElement("div",{style:Ge.buttonEmpty}),n.noDelete?null:k.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:Ge.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:this.onDelete(v)},k.createElement(Z.Delete,null))),n.clone?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:Ge.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:this.onClone(v)},k.createElement(Z.ContentCopy,null))):null)))),!n.noDelete&&i.length>0?k.createElement(N.Toolbar,{variant:"dense",sx:Ge.rootTool},k.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},k.createElement(Z.Add,null))):null,n.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null):null}}const di={root:{width:"100%"},notAlive:{color:"#a30000"}};class Ts extends K{componentDidMount(){super.componentDidMount();const n=this.getInstance();this.props.oContext.socket.getState(`${n}.alive`).then(i=>this.setState({alive:!!(i&&i.val),instance:n}))}getInstance(){let n=this.props.schema.instance||`${this.props.oContext.adapterName}.${this.props.oContext.instance}`;return n.includes("${")&&(n=this.getPattern(n,null,!0)),n&&!n.startsWith("system.adapter.")&&(n=`system.adapter.${n}`),n}renderItem(){if(this.getInstance()!==this.state.instance&&setTimeout(()=>{const i=this.getInstance();i?this.props.oContext.socket.getState(`${i}.alive`).then(u=>this.setState({alive:!!(u&&u.val),instance:i})):this.setState({alive:null,instance:i})},200),this.state.alive!==!1&&this.state.alive!==!0)return null;const n=this.state.instance.replace(/^system.adapter./,"");return k.createElement("div",{style:{...di.root,...this.state.alive?void 0:di.notAlive}},this.state.alive?this.props.schema.textAlive!==void 0?this.props.schema.textAlive?j.I18n.t(this.props.schema.textAlive,n):"":j.I18n.t("ra_Instance %s is alive",n):this.props.schema.textNotAlive!==void 0?this.props.schema.textNotAlive?j.I18n.t(this.props.schema.textNotAlive,n):"":j.I18n.t("ra_Instance %s is not alive",n))}}class _s extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options.map(u=>typeof u=="string"?{label:u,value:u}:JSON.parse(JSON.stringify(u)));Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}renderItem(n,i){if(!this.state.selectOptions)return null;let u;const v=JSON.parse(JSON.stringify(this.state.selectOptions));return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE?([...this.state.value].filter(h=>!v.find(d=>typeof d=="object"?d.value===h:d===h)).forEach(h=>v.push({label:h.toString(),value:h})),u={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(u)):(u=this.state.value!==null&&this.state.value!==void 0&&v.find(h=>typeof h=="object"?h.value==this.state.value:h==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!u&&this.props.schema.freeSolo&&(u={value:this.state.value,label:this.state.value},v.push(u))),k.createElement(N.Autocomplete,{fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,value:u,options:v,isOptionEqualToValue:(h,d)=>h.value===d.value,filterOptions:(h,d)=>{const s=h.filter(p=>d.inputValue===""?!0:p.label.toLowerCase().includes(d.inputValue.toLowerCase())||p.value.toLowerCase().includes(d.inputValue.toLowerCase()));return this.props.schema.freeSolo&&d.inputValue!==""&&s.push({label:d.inputValue,value:d.inputValue}),s},onInputChange:h=>{if(!h||!this.props.schema.freeSolo)return;const d=h.target.value;d!==this.state.value&&this.setState({value:d},()=>this.onChange(this.props.attr,d))},onChange:(h,d)=>{const s=typeof d=="object"?d?d.value:"":d;s!==this.state.value&&this.setState({value:s},()=>this.onChange(this.props.attr,s))},getOptionLabel:h=>typeof h=="object"?(h==null?void 0:h.label)??"":"",renderInput:h=>k.createElement(N.TextField,{variant:"standard",...h,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})})}}class ks extends K{initialized=!1;localContext;askInstance(){const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options?this.props.schema.options.map(u=>typeof u=="string"?{label:u,value:u}:JSON.parse(JSON.stringify(u))):[];if(this.props.alive){let u=this.props.schema.data;if(u===void 0&&this.props.schema.jsonData){const v=this.getPattern(this.props.schema.jsonData,null,!0);try{typeof v=="string"&&(u=JSON.parse(v))}catch{console.error(`Cannot parse json data: ${JSON.stringify(u)}`)}}u===void 0&&(u=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",u).then(v=>{v&&Array.isArray(v)&&v.forEach(o=>i.push(typeof o=="string"?{label:o,value:o}:JSON.parse(JSON.stringify(o)))),Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})})}else Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(n,i){if(this.props.alive){const h=this.getContext();(h!==this.localContext||!this.initialized)&&(this.localContext=h,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}let u;const v=this.state.selectOptions?JSON.parse(JSON.stringify(this.state.selectOptions)):[];return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_LABEL?([...this.state.value].filter(h=>!v.find(d=>d.value===h)).forEach(h=>v.push({label:h.toString(),value:h})),u={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(u)):(u=this.state.value!==null&&this.state.value!==void 0&&v.find(h=>h.value==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!u&&this.props.schema.freeSolo&&(u={value:this.state.value,label:this.state.value},v.push(u)),u=u||null),v.length?k.createElement(N.Autocomplete,{value:u,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,options:v,isOptionEqualToValue:(h,d)=>h.value===d.value,filterOptions:(h,d)=>{const s=h.filter(p=>d.inputValue===""?!0:p.label.toLowerCase().includes(d.inputValue.toLowerCase())||p.value.toLowerCase().includes(d.inputValue.toLowerCase()));return this.props.schema.freeSolo&&d.inputValue!==""&&s.push({label:d.inputValue,value:d.inputValue}),s},getOptionLabel:h=>(h==null?void 0:h.label)??"",onInputChange:h=>{if(!h||!this.props.schema.freeSolo)return;const d=h.target.value;d!==this.state.value&&this.setState({value:d},()=>this.onChange(this.props.attr,d))},onChange:(h,d)=>{const s=typeof d=="object"?d?d.value:"":d;s!==this.state.value&&this.setState({value:s},()=>this.onChange(this.props.attr,s))},renderInput:h=>k.createElement(N.TextField,{variant:"standard",...h,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})}):k.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},onChange:h=>{const d=h.target.value;this.setState({value:d},()=>this.onChange(this.props.attr,(d||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const kn={fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Ms extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"";this.setState({value:u,showDialog:!1})}renderItem(n,i){const{schema:u,attr:v}=this.props,{value:o,showDialog:h}=this.state;return k.createElement(N.FormControl,{style:kn.fullWidth,variant:"standard"},u.label?k.createElement(N.InputLabel,{shrink:!0},this.getText(u.label)):null,k.createElement("div",{style:kn.flex},k.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:o??"",error:!!n,disabled:i,placeholder:this.getText(u.placeholder),label:this.getText(u.label),helperText:this.renderHelp(u.help,u.helpLink,u.noTranslation),onChange:d=>{const s=d.target.value;this.setState({value:s},()=>this.onChange(v,s))}}),k.createElement(N.Button,{color:"grey",disabled:i,style:kn.button,size:"small",variant:"outlined",onClick:()=>this.setState({showDialog:!0})},"...")),h?k.createElement(j.DialogCron,{title:j.I18n.t("ra_Define schedule"),simple:u.simple,complex:u.complex,cron:o,onClose:()=>this.setState({showDialog:!1}),cancel:j.I18n.t("ra_Cancel"),ok:j.I18n.t("ra_Ok"),theme:this.props.oContext.theme,onOk:d=>this.setState({showDialog:!1,value:d},()=>this.onChange(v,d))}):null)}}class Ls extends K{async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),u=(await this.props.oContext.socket.getCertificates()).filter(v=>{const o=this.props.attr.toLowerCase();return o.includes(v.type)||v.type==="public"&&o.includes("cert")||v.type==="private"&&(o.includes("priv")||o.includes("key"))?!0:!!(v.type==="chained"&&(o.includes("chain")||o.includes("ca")))}).map(v=>({label:v.name,value:v.name}));u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})}renderItem(n,i){var v,o;if(!this.state.selectOptions)return null;const u=(v=this.state.selectOptions)==null?void 0:v.find(h=>h.value===this.state.value);return k.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?k.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>this.getText(u==null?void 0:u.label,this.props.schema.noTranslation!==!1),onChange:h=>this.setState({value:h.target.value},()=>this.onChange(this.props.attr,this.state.value))},(o=this.state.selectOptions)==null?void 0:o.map(h=>k.createElement(N.MenuItem,{key:h.value,value:h.value,style:h.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(h.label,this.props.schema.noTranslation!==!1)))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const zt={fullWidth:{width:"100%"},leWidth:{width:620,marginBottom:10},certWidth:{width:200,marginRight:10}};class Is extends K{async componentDidMount(){var d;super.componentDidMount();const n=await this.props.oContext.socket.getCertificates(),i=[],u=[],v=[];let o=[];const h=await this.props.oContext.socket.getObject("system.certificates");(d=h==null?void 0:h.native)!=null&&d.collections?o=Object.keys(h.native.collections):o=null,n.forEach(s=>{s.type==="public"?i.push({label:s.name,value:s.name}):s.type==="private"?u.push({label:s.name,value:s.name}):s.type==="chained"?v.push({label:s.name,value:s.name}):(i.push({label:s.name,value:s.name}),u.push({label:s.name,value:s.name}),v.push({label:s.name,value:s.name}))}),i.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),v.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({certsPublicOptions:i,certsChainOptions:v,certsPrivateOptions:u,collectionsOptions:o})}renderItem(n,i){var e,t,r,l,a,c,f;if(!this.state.certsPublicOptions||!this.state.certsPrivateOptions||!this.state.certsChainOptions)return null;const u=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString(),v=K.getValue(this.props.data,this.props.schema.certPublicName||"certPublic"),o=K.getValue(this.props.data,this.props.schema.certPrivateName||"certPrivate"),h=K.getValue(this.props.data,this.props.schema.certChainedName||"certChained"),d=(e=this.state.certsPublicOptions)==null?void 0:e.find(m=>m.value===v),s=(t=this.state.certsPrivateOptions)==null?void 0:t.find(m=>m.value===o),p=(r=this.state.certsChainOptions)==null?void 0:r.find(m=>m.value===h);return k.createElement("div",{style:zt.fullWidth},this.state.collectionsOptions?k.createElement(N.FormControl,{style:zt.leWidth,variant:"standard"},k.createElement(N.InputLabel,{shrink:!0},"Let's encrypt"),k.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:u,onChange:m=>this.onChange(this.props.schema.leCollectionName||"leCollection",m.target.value==="false"?!1:m.target.value==="true"?!0:m.target.value)},k.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),k.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(l=this.state.collectionsOptions)==null?void 0:l.map(m=>k.createElement(N.MenuItem,{key:m,value:m},m)))):null,this.state.collectionsOptions?k.createElement("br",null):null,this.state.collectionsOptions&&u!=="false"?k.createElement("div",null,j.I18n.t("ra_Fallback custom certificates")):null,k.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},k.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Public certificate")),k.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:v||"",renderValue:()=>this.getText(d==null?void 0:d.label),onChange:m=>this.onChange(this.props.schema.certPublicName||"certPublic",m.target.value)},(a=this.state.certsPublicOptions)==null?void 0:a.map((m,y)=>k.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),k.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},k.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Private certificate")),k.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:o||"",renderValue:()=>this.getText(s==null?void 0:s.label),onChange:m=>this.onChange(this.props.schema.certPrivateName||"certPrivate",m.target.value)},(c=this.state.certsPrivateOptions)==null?void 0:c.map((m,y)=>k.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),k.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},k.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Chained certificate")),k.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:h||"",renderValue:()=>this.getText(p==null?void 0:p.label),onChange:m=>this.onChange(this.props.schema.certChainedName||"certChained",m.target.value)},(f=this.state.certsChainOptions)==null?void 0:f.map((m,y)=>k.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))))}}class Fs extends K{async componentDidMount(){var u;super.componentDidMount();let n;const i=await this.props.oContext.socket.getObject("system.certificates");(u=i==null?void 0:i.native)!=null&&u.collections?n=Object.keys(i.native.collections):n=[],this.setState({collectionsOptions:n})}renderItem(n,i){var v;if(!this.state.collectionsOptions)return null;const u=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString();return k.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?k.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:u,onChange:o=>this.onChange(this.props.schema.leCollectionName||"leCollection",o.target.value==="false"?!1:o.target.value==="true"?!0:o.target.value)},k.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),k.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(v=this.state.collectionsOptions)==null?void 0:v.map(o=>k.createElement(N.MenuItem,{key:o,value:o},o))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const We={fullWidth:{width:"100%"},licLabel:{fontWeight:"bold",minWidth:100,marginRight:10,textTransform:"capitalize",display:"inline-block"},errorTitle:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020"}),okTitle:L=>({color:L.palette.mode==="dark"?"#6fd56f":"#007c00"}),errorText:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020",mb:"30px"})};class ct extends K{componentDidMount(){super.componentDidMount(),this.setState({_error:"",running:!1,showLicenseData:null,foundSuitableLicense:!1,licenseOfflineCheck:!1,result:null,allLicenses:null,askForUpdate:!1,showLinkToProfile:!1})}renderErrorDialog(){if(this.state._error&&!this.state.showLicenseData){let n=this.state._error;return this.state.allLicenses&&(n=[k.createElement("div",{key:"error"},n)],n.push(k.createElement(N.Button,{key:"button",variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},j.I18n.t("iobroker.net"))),this.state.allLicenses.length?n.push(k.createElement(N.TableContainer,{key:"table"},k.createElement(N.Table,{size:"small"},k.createElement(N.TableHead,null,k.createElement(N.TableRow,null,k.createElement(N.TableCell,null,j.I18n.t("ra_Product")),k.createElement(N.TableCell,null,j.I18n.t("ra_Version")),k.createElement(N.TableCell,null,"UUID"),k.createElement(N.TableCell,null,j.I18n.t("ra_ValidTill")),k.createElement(N.TableCell,null,j.I18n.t("ra_Commercial")),k.createElement(N.TableCell,null,"ID"))),k.createElement(N.TableBody,null,this.state.allLicenses.map(i=>k.createElement(N.TableRow,{key:i.id},k.createElement(N.TableCell,{sx:i.validName?null:We.errorText},i.license.product),k.createElement(N.TableCell,{sx:i.validVersion?null:We.errorText},i.license.version),k.createElement(N.TableCell,{sx:i.validUuid?null:We.errorText},i.license.uuid||"--"),k.createElement(N.TableCell,{sx:i.validTill?null:We.errorText},i.license.validTill&&i.license.validTill!=="0000-00-00 00:00:00"?new Date(i.license.validTill).toLocaleDateString():"--"),k.createElement(N.TableCell,null,i.license.invoice!=="free"?i.license.invoice==="MANUALLY_CREATED"?"✓":i.license.invoice:"-"),k.createElement(N.TableCell,null,i.id))))))):(n.push(k.createElement("div",{key:"text1"},j.I18n.t("ra_No one license found in license manager"))),n.push(k.createElement("div",{key:"text2"},j.I18n.t("ra_Please create license"))))),k.createElement(N.Dialog,{open:!0,maxWidth:"xl",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClick:()=>this.setState({_error:"",allLicenses:null})},k.createElement(N.DialogTitle,null,j.I18n.t("ra_Error")),k.createElement(N.DialogContent,null,k.createElement(N.DialogContentText,null,n)),k.createElement(N.DialogActions,null,k.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({_error:"",allLicenses:null}),color:"primary",autoFocus:!0,startIcon:k.createElement(Z.Check,null)},j.I18n.t("ra_Ok"))))}return null}renderMessageDialog(){if(this.state.showLicenseData){const n=[],i=this.state.showLicenseData;return Object.keys(i).forEach(u=>{if(!(i[u]===null||i[u]===void 0))if(typeof i[u]=="object"){const v=i[u];Object.keys(v).forEach(o=>{v[o]!==null&&v[o]!==void 0&&(typeof v[o]=="object"?n.push(k.createElement("div",{key:o},k.createElement("div",{style:We.licLabel},o,":"),JSON.stringify(v[o],null,2))):n.push(k.createElement("div",{key:o},k.createElement("div",{style:We.licLabel},u," -",o,":"),v[o].toString())))})}else n.push(k.createElement("div",{key:u},k.createElement("div",{style:We.licLabel},u.replace(/_/g," "),":"),i[u].toString()))}),n.push(k.createElement("div",{key:"checked"},k.createElement("div",{style:We.licLabel},j.I18n.t("ra_Checked"),":"),this.state.licenseOfflineCheck?j.I18n.t("ra_locally"):j.I18n.t("ra_via internet"))),k.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showLicenseData:null})},k.createElement(N.DialogTitle,null,k.createElement(N.Box,{component:"span",sx:this.state.result?We.okTitle:We.errorTitle},j.I18n.t("ra_License %s",this.state.result?"OK":"INVALID"))),k.createElement(N.DialogContent,null,this.state.showLinkToProfile?k.createElement(N.Button,{variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},"https://iobroker.net"):null,this.state._error?k.createElement(N.Box,{component:"div",sx:We.errorText},this.state._error):null,n),k.createElement(N.DialogActions,null,k.createElement(N.Button,{onClick:()=>this.setState({showLicenseData:null,_error:""}),color:"primary",variant:"contained"},j.I18n.t("ra_Close"))))}return null}static parseJwt(n){const u=n.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),v=decodeURIComponent(atob(u).split("").map(o=>`%${`00${o.charCodeAt(0).toString(16)}`.slice(-2)}`).join(""));try{return JSON.parse(v)}catch{return null}}static isVersionValid(n,i,u,v){if(!i||!n)return!0;let o=!0;const[h]=n.split(".");return i.startsWith(">=")?o=parseInt(h,10)>=parseInt(i.substring(2,10)):i.startsWith("<=")?o=parseInt(h,10)<=parseInt(i.substring(2,10)):i.startsWith(">")?o=parseInt(h,10)>parseInt(i.substring(1,10)):i.startsWith("<")?o=parseInt(h,10){const l=!r.validTill||r.validTill==="0000-00-00 00:00:00"||new Date(r.validTill).getTime()>p,a=(r.product||"").split("."),c=a[1]===n||n==="vis-2"&&a[1]==="vis",f=!e||!r.uuid||r.uuid===e,m=ct.isVersionValid(t,r.version,r.invoice,n);(!s||r.invoice!=="free")&&l&&c&&f&&m&&(s=r),u.push({id:r.id,validName:c,validUuid:f,validVersion:m,validTill:l,license:r})}),s&&(u.find(r=>r.id===s.id).used=!0)}return u}async checkLicense(n,i){var d,s,p;let u;if(this.props.schema.uuid){const e=await this.props.oContext.socket.getObject("system.meta.uuid");u=(d=e==null?void 0:e.native)==null?void 0:d.uuid}let v;if(this.props.schema.version){const e=await this.props.oContext.socket.getObject(`system.adapter.${i}`);v=(s=e==null?void 0:e.common)==null?void 0:s.version}const o=new AbortController;let h=setTimeout(()=>{h=null,o.abort()},5e3);try{const e=await window.fetch("https://iobroker.net/api/v1/public/cert/",{method:"POST",body:JSON.stringify({json:n,uuid:u}),headers:{"Content-Type":"text/plain"},signal:o.signal});h&&clearTimeout(h);const t=await e.text();let r;try{r=JSON.parse(t)}catch{}if(r!=null&&r.error)try{const l=ct.parseJwt(n),a=j.I18n.t(`ra_${l.error||r.error||"Unknown error"}`).replace(/^ra_/,"");return this.setState({_error:a,licenseOfflineCheck:!1,showLicenseData:l,result:!1,running:!1})}catch{return console.log("Cannot parse license"),this.setState({_error:r.error,result:!1,running:!1})}else{let l=null;try{l=ct.parseJwt(n)}catch{}if(r){const a=r.validTill||r.valid_till;if(a&&a!=="0000-00-00 00:00:00"&&new Date(a).getTime(){if(n){this.setState({askForUpdate:!1});try{await this.props.oContext.socket.updateLicenses(null,null)}catch(i){window.alert(j.I18n.t("ra_Cannot read licenses: %s",i));return}await this._onClick(!0)}else this.setState({askForUpdate:!1,running:!1})}}):null}async _onClick(n){const i=this.props.oContext.adapterName==="vis-2"?"vis":this.props.oContext.adapterName;this.setState({running:!0});let u,v;if(this.props.data.useLicenseManager){if(v=await this.findInLicenseManager(i),u=v.find(o=>o.used),u&&(u=u.license.json),!u&&!n){this.setState({askForUpdate:!0});return}}else u=this.props.data.license;u?await this.checkLicense(u,i):this.props.data.useLicenseManager?this.setState({_error:j.I18n.t("ra_Suitable license not found in license manager"),result:!1,running:!1,allLicenses:v}):this.setState({_error:j.I18n.t("ra_Please enter the license"),result:!1,running:!1})}renderItem(){return k.createElement("div",{style:We.fullWidth},k.createElement(N.Button,{variant:this.props.schema.variant||"outlined",color:this.props.schema.color||"primary",style:We.fullWidth,disabled:!this.props.data.license&&!this.props.data.useLicenseManager||this.state.running,startIcon:k.createElement(Z.Send,null),onClick:()=>this._onClick()},this.state.running?k.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label||"ra_Check license",this.props.schema.noTranslation)),this.renderMessageDialog(),this.renderErrorDialog(),this.renderAskForUpdate())}}class Rs extends K{renderItem(n,i){const u=K.getValue(this.props.data,this.props.attr),v=Array.isArray(u);return k.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},k.createElement(N.FormControlLabel,{onClick:o=>{if(o.preventDefault(),o.stopPropagation(),!i){const h=this.onChange(this.props.attr,!u);h instanceof Promise&&h.catch(d=>console.error(`Cannot set value: ${d}`))}},control:k.createElement(N.Checkbox,{indeterminate:v,checked:!!u,onChange:o=>{let h;v?h=this.onChange(this.props.attr,!0):h=this.onChange(this.props.attr,o.target.checked),h instanceof Promise&&h.catch(d=>console.error(`Cannot set value: ${d}`))},disabled:i||this.props.schema.readOnly}),label:this.getText(this.props.schema.label)}),k.createElement(N.FormHelperText,{style:{color:"red"}},n?this.props.schema.validatorErrorText?j.I18n.t(this.props.schema.validatorErrorText):j.I18n.t("ra_Error"):null),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Os={standard:N.Input,filled:is,outlined:N.OutlinedInput},Ns=L=>{const n=L.palette.mode==="light",i=n?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{},inputRoot:{display:"inline-flex",flexWrap:"wrap",flex:1,marginTop:0,minWidth:70,"&.mui-variant-outlined,&.mui-variant-filled":{boxSizing:"border-box"},"&.mui-variant-outlined":{paddingTop:"14px"},"&.mui-variant-filled":{paddingTop:"28px"}},input:{display:"inline-block",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",appearance:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",float:"left",flex:1},chipContainer:{display:"flex",flexFlow:"row wrap",alignItems:"center",cursor:"text",marginBottom:"-2px",minHeight:40},outlined:{"& input":{height:16,paddingTop:"4px",paddingBottom:"12px",marginTop:"4px",marginBottom:"4px"}},standard:{marginTop:"18px"},filled:{"& input":{height:22,marginBottom:"4px",marginTop:"4px",paddingTop:0},"$marginDense & input":{height:26}},labeled:{},label:{top:4,"&$outlined&:not($labelShrink)":{top:2,"$marginDense &":{top:5}},"&$filled&:not($labelShrink)":{top:15,"$marginDense &":{top:20}}},labelShrink:{top:0},helperText:{marginBottom:-20},focused:{},disabled:{},underline:{"&:after":{borderBottom:`2px solid ${L.palette.primary[n?"dark":"light"]}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:L.transitions.create("transform",{duration:L.transitions.duration.shorter,easing:L.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:L.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:`1px solid ${i}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:L.transitions.create("border-bottom-color",{duration:L.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):not($focused):not($error):before":{borderBottom:`2px solid ${L.palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${i}`}},"&$disabled:before":{borderBottomStyle:"dotted"}},error:{"&:after":{backgroundColor:L.palette.error.main,transform:"scaleX(1)"}},chip:{margin:"0 8px 8px 0",float:"left"},marginDense:{}}},rn={BACKSPACE:8,DELETE:46,LEFT_ARROW:37,RIGHT_ARROW:39},Bs=({value:L,isFocused:n,isDisabled:i,isReadOnly:u,handleClick:v,handleDelete:o,style:h},d)=>k.createElement(N.Chip,{key:d,style:{...h,pointerEvents:i||u?"none":void 0,backgroundColor:n?rs[300]:void 0},onClick:v,onDelete:o,label:L});class Ps extends k.Component{labelRef;labelNode=null;input;newChipKeyCodes;newChipKeys;actualInput=null;inputBlurTimeout=null;_keyPressed;_preventChipCreation;styles={};styleTheme=null;constructor(n){super(n),this.state={chips:n.defaultValue||[],focusedChip:null,inputValue:"",isFocused:!1,chipsUpdated:!1,prevPropsValue:[],variant:this.props.variant||"standard"},this.newChipKeyCodes=n.newChipKeyCodes||[13],this.newChipKeys=n.newChipKeys||["Enter"],this.labelRef=k.createRef(),this.input=k.createRef()}componentDidMount(){this.state.variant==="outlined"&&(this.labelNode=ns.findDOMNode(this.labelRef.current),this.forceUpdate())}componentWillUnmount(){this.inputBlurTimeout&&clearTimeout(this.inputBlurTimeout)}static getDerivedStateFromProps(n,i){let u=null;return n.value&&n.value.length!==i.prevPropsValue.length&&(u={prevPropsValue:n.value},n.clearInputValueOnChange&&(u.inputValue="")),n.clearInputValueOnChange&&n.value&&n.value.length!==i.prevPropsValue.length&&(u={prevPropsValue:n.value,inputValue:""}),n.disabled&&(u={...u,focusedChip:null}),!i.chipsUpdated&&n.defaultValue&&(u={...u,chips:n.defaultValue}),u}focus=()=>{var n;(n=this.actualInput)==null||n.focus(),this.state.focusedChip&&this.setState({focusedChip:null})};handleInputBlur=n=>{this.props.onBlur&&this.props.onBlur(n),this.setState({isFocused:!1}),this.state.focusedChip&&this.setState({focusedChip:null});const i=n.target.value;let u;switch(this.props.blurBehavior||"clear"){case"add-or-clear":u={clearInputOnFail:!0};case"add":if(this.props.delayBeforeAdd){const v=(this.props.value||this.state.chips).length;this.inputBlurTimeout=setTimeout(()=>{const o=(this.props.value||this.state.chips).length;v===o?this.handleAddChip(i,u):this.clearInput()},150)}else this.handleAddChip(i,u);break;case"clear":this.clearInput();break}};handleInputFocus=n=>{this.setState({isFocused:!0}),this.props.onFocus&&this.props.onFocus(n)};handleKeyDown=n=>{const{focusedChip:i}=this.state;if(this._keyPressed=!1,this._preventChipCreation=!1,this.props.onKeyDown&&(this.props.onKeyDown(n),n.isDefaultPrevented()))return;const u=this.props.value||this.state.chips;if(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key)){this.handleAddChip(n.target.value)!==!1&&n.preventDefault();return}switch(n.keyCode){case rn.BACKSPACE:n.target.value===""&&(i?(this.handleDeleteChip(u[i],i),i&&this.setState({focusedChip:i-1})):this.setState({focusedChip:u.length-1}));break;case rn.DELETE:n.target.value===""&&i&&(this.handleDeleteChip(u[i],i),i<=u.length-1&&this.setState({focusedChip:i}));break;case rn.LEFT_ARROW:i===null&&n.target.value===""&&u.length?this.setState({focusedChip:u.length-1}):i!==null&&i>0&&this.setState({focusedChip:i-1});break;case rn.RIGHT_ARROW:i!==null&&i{!this._preventChipCreation&&(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key))&&this._keyPressed?this.clearInput():this.updateInput(n.target.value),this.props.onKeyUp&&this.props.onKeyUp(n)};handleUpdateInput=n=>{(this.props.inputValue===null||this.props.inputValue===void 0)&&this.updateInput(n.target.value),this.props.onUpdateInput&&this.props.onUpdateInput(n)};handleAddChip(n,i){if(this.props.onBeforeAdd&&!this.props.onBeforeAdd(n))return this._preventChipCreation=!0,i&&i.clearInputOnFail&&this.clearInput(),!1;this.clearInput();const u=this.props.value||this.state.chips;return n.trim().length?((this.props.allowDuplicates||!u.includes(n))&&(this.props.value&&this.props.onAdd?this.props.onAdd(n):this.updateChips([...this.state.chips,n])),!0):!1}handleDeleteChip(n,i){if(this.props.value)this.props.onDelete&&this.props.onDelete(n,i);else{const u=this.state.chips.slice();if(u.splice(i,1)){let o=this.state.focusedChip;this.state.focusedChip===i?o=null:this.state.focusedChip>i&&(o=this.state.focusedChip-1),this.updateChips(u,{focusedChip:o})}}}updateChips(n,i={}){this.setState({chips:n,chipsUpdated:!0,...i}),this.props.onChange&&this.props.onChange(n)}clearInput(){this.updateInput("")}updateInput(n){this.setState({inputValue:n})}setActualInputRef=n=>{this.actualInput=n,this.props.inputRef&&this.props.inputRef(n)};render(){const{alwaysShowPlaceholder:n,chipRenderer:i=Bs,className:u,disabled:v,disableUnderline:o,error:h,FormHelperTextProps:d,fullWidth:s,fullWidthInput:p,helperText:e,id:t,InputProps:r={},InputLabelProps:l={},inputValue:a,label:c,placeholder:f,readOnly:m,required:y,rootRef:D,value:E,margin:b}=this.props,g=this.state.variant;this.styleTheme!==this.props.theme.palette.mode&&(this.styleTheme=this.props.theme.palette.mode,this.styles=j.Utils.getStyle(this.props.theme,Ns));let S=E||this.state.chips||[];Array.isArray(S)||(S=(S||"").toString().split(/[,\s]+/).map(C=>C.trim()));const M=a??this.state.inputValue,_=(this.props.value||M).length||M.length,T=typeof l.shrink=="boolean"?l.shrink:c!==null&&(_||this.state.isFocused||S.length),F=S.map((C,w)=>i({value:C,isDisabled:!!v,isReadOnly:m,isFocused:this.state.focusedChip===w,handleClick:()=>this.setState({focusedChip:w}),handleDelete:()=>this.handleDeleteChip(C,w),style:this.styles.chip},w.toString())),A={};g==="outlined"&&(A.notched=!!T,A.labelWidth=T&&this.labelNode&&this.labelNode.offsetWidth||0),g!=="standard"?A.startAdornment=F:r.disableUnderline=!0;const $=Os[g];return k.createElement(N.FormControl,{ref:D,fullWidth:s,className:u,sx:{...this.styles.root,...b==="dense"?this.styles.marginDense:{}},error:h,required:S.length>0?void 0:y,onClick:this.focus,disabled:v,variant:g,component:"div",margin:b},c&&k.createElement(N.InputLabel,{htmlFor:t,sx:{"&.MuiInputLabel-root":this.styles.label,"&.MuiInputLabel-shrink":this.styles.labelShrink},shrink:!!T,focused:this.state.isFocused,variant:g,ref:this.labelRef,required:y,component:"label",...l},c),k.createElement(N.Box,{component:"div",id:"input-chip-container",sx:{...this.styles[g],...this.styles.chipContainer,...this.state.isFocused?this.styles.focused:void 0,...!o&&g==="standard"?this.styles.underline:void 0,...v?this.styles.disabled:void 0,...c?this.styles.labeled:void 0,...h?this.styles.error:void 0}},g==="standard"&&F,k.createElement($,{ref:this.input,className:`mui-variant-${this.styles[g]} ${c?"mui-chip-with-label":"mui-chip-no-label"}`,sx:{"&.MuiInputBase-input":{...this.styles.input,...this.styles[g]},"&.MuiInputBase-root":{...this.styles.inputRoot}},id:t,value:M,onChange:this.handleUpdateInput,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,inputRef:this.setActualInputRef,disabled:v,fullWidth:p,placeholder:!_&&(T||c===null||c===void 0)||n?f:null,readOnly:m,...r,...A})),e&&k.createElement(N.FormHelperText,{...d,className:d==null?void 0:d.className,style:this.styles.helperText},e))}}class fi extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i);if(this.props.schema.delimiter&&typeof u=="string"){const v=u.split(this.props.schema.delimiter).map(o=>o.trim()).filter(o=>o);this.setState({value:v})}else this.setState({value:u||[]})}renderItem(n,i){const{attr:u,schema:v}=this.props,{value:o}=this.state;return k.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},k.createElement(Ps,{value:o,disabled:!!i,label:this.getText(v.label),error:!!n,onAdd:h=>{const d=JSON.parse(JSON.stringify(o));d.push(h),this.setState({value:d},()=>{let s;this.props.schema.delimiter?s=this.onChange(u,d.join(`${this.props.schema.delimiter} `)):s=this.onChange(u,d),s instanceof Promise&&s.catch(p=>console.error(p))})},theme:this.props.oContext.theme,onDelete:(h,d)=>{const s=JSON.parse(JSON.stringify(o));s.splice(d,1),this.setState({value:s},()=>{let p;this.props.schema.delimiter?p=this.onChange(u,s.join(`${this.props.schema.delimiter} `)):p=this.onChange(u,s),p instanceof Promise&&p.catch(e=>console.error(e))})}}),k.createElement(N.FormHelperText,null,j.I18n.t("ra_Press ENTER Key to add new item")),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Ws extends K{renderColorDialog(){return!!this.state.showColorDialog&&k.createElement(N.Dialog,{onClose:()=>this.setState({showColorDialog:!1}),open:this.state.showColorDialog},k.createElement(qr,{color:this.state.colorDialogValue,onChange:n=>this.setState({colorDialogValue:n.hex},()=>this.onChange(this.props.attr,this.state.colorDialogValue))}))}renderItem(n,i){const u=K.getValue(this.props.data,this.props.attr);let v=j.Utils.isUseBright(u,null);return v===null&&(v=void 0),k.createElement(k.Fragment,null,this.renderColorDialog(),k.createElement(N.TextField,{variant:"standard",disabled:!!i,style:{minWidth:100,width:"calc(100% - 8px)"},label:this.getText(this.props.schema.label),value:u||"",onClick:()=>!this.props.schema.readOnly&&this.setState({showColorDialog:!0,colorDialogValue:u||""}),onChange:o=>{const h=o.target.value,d=this.onChange(this.props.attr,h);d instanceof Promise&&d.catch(s=>console.error(`Cannot set value: ${s}`))},slotProps:{htmlInput:{style:{backgroundColor:u,color:v?"#FFF":"#000"},readOnly:this.props.schema.readOnly||!1},input:{endAdornment:!this.props.schema.readOnly&&u&&!this.props.schema.noClearButton?k.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:o=>{o.stopPropagation();const h=this.onChange(this.props.attr,"");h instanceof Promise&&h.catch(d=>console.error(`Cannot set value: ${d}`))}},k.createElement(Z.Close,null)):void 0},inputLabel:{shrink:!0}}}))}}const Mn={width:{width:"calc(100% - 85px)"},width50:{width:120,marginRight:5}};class Hs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n});const i={};this.props.schema.useSystemName&&(i.useSystem=!!K.getValue(this.props.data,this.props.schema.useSystemName)),this.props.schema.longitudeName&&this.props.schema.latitudeName?(i.longitude=K.getValue(this.props.data,this.props.schema.longitudeName),i.latitude=K.getValue(this.props.data,this.props.schema.latitudeName),!i.longitude&&!i.latitude&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300)):!K.getValue(this.props.data,this.props.attr)&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300),Object.keys(i).length&&setTimeout(()=>this.setState(i),50)}async getSystemCoordinates(){const n=await this.props.oContext.socket.getCompactSystemConfig();if(n!=null&&n.common&&(n.common.longitude||n.common.latitude))if(window.alert(j.I18n.t("ra_Used system settings")),this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.common.longitude,latitude:n.common.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.common.longitude),await this.onChange(this.props.schema.latitudeName,n.common.latitude)});else{const i=n.common.latitude+(this.props.schema.divider||",")+n.common.longitude;this.setState({value:i},()=>{const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))})}else window.alert(j.I18n.t("ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser"))}getCoordinates(){navigator.geolocation?navigator.geolocation.getCurrentPosition(async n=>{if(n!=null&&n.coords)if(this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.coords.longitude,latitude:n.coords.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.coords.longitude||""),await this.onChange(this.props.schema.latitudeName,n.coords.latitude||"")});else{const i=n.coords.latitude+(this.props.schema.divider||",")+n.coords.longitude;this.setState({value:i},()=>{const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))})}else await this.getSystemCoordinates()},async n=>{console.error(`Cannot determine coordinates from browser: ${n.message}`),await this.getSystemCoordinates()}):this.getSystemCoordinates().catch(n=>{console.error(`Cannot determine coordinates: ${n}`)})}renderItem(n,i){return k.createElement(k.Fragment,null,this.props.schema.useSystemName?k.createElement(N.FormControlLabel,{control:k.createElement(N.Checkbox,{checked:!!this.state.useSystem,onChange:u=>{const v=u.target.checked;v&&this.getSystemCoordinates().catch(o=>console.error(`Cannot determine coordinates: ${o}`)),this.setState({useSystem:v},()=>this.onChange(this.props.schema.useSystemName,v))}}),label:j.I18n.t("ra_Use system settings for position")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?k.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.longitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:u=>{const v=u.target.value;this.setState({longitude:v},()=>{const o=this.onChange(this.props.schema.longitudeName,(v||"").trim());o instanceof Promise&&o.catch(h=>console.error(`Cannot set value: ${h}`))})},label:j.I18n.t("ra_Longitude")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?k.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.latitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:u=>{const v=u.target.value;this.setState({latitude:v},()=>this.onChange(this.props.schema.latitudeName,(v||"").trim()))},label:j.I18n.t("ra_Latitude")}):null,!this.props.schema.longitudeName||!this.props.schema.latitudeName?k.createElement(N.TextField,{variant:"standard",style:Mn.width,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.state.useSystem}},onChange:u=>{const v=u.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,(v||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):null,this.state.useSystem?null:k.createElement(N.Fab,{size:"small",onClick:()=>this.getCoordinates(),title:j.I18n.t("ra_Take browser position"),style:{marginRight:4}},k.createElement(Z.LocationOn,null)),this.state.useSystem?null:k.createElement(N.Fab,{size:"small",onClick:()=>this.getSystemCoordinates(),title:j.I18n.t("ra_Take position from system settings")},k.createElement(Z.GpsFixed,null)))}}Pn.init({name:"iobroker_admin",shared:{"@iobroker/adapter-react-v5":{lib:()=>ts,version:"*"},"@mui/icons-material":{lib:()=>es,version:"*"},"@iobroker/json-config":{lib:()=>os,version:"*"}},remotes:[]});class Ut extends K{static runningLoads={};constructor(n){super(n),Object.assign(this.state,{Component:null,error:""})}async componentDidMount(){if(!this.props.schema.url){console.error("URL is empty. Cannot load custom component!"),this.setState({error:"URL is empty. Cannot load custom component!"});return}let n;this.props.schema.url.startsWith("http:")||this.props.schema.url.startsWith("https:")?n=this.props.schema.url:this.props.schema.url.startsWith("./")?n=`${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\./,"")}`:n=`${window.location.protocol}//${window.location.host}/adapter/${this.props.oContext.adapterName}/${this.props.schema.url}`;const[i,u,...v]=this.props.schema.name.split("/"),o=v.join("/");if(!n){console.error('Cannot find URL for custom component! Please define "url" as "custom/customComponents.js" in the schema');return}if(!i||!u||!o){console.error('Invalid format of "name"! Please define "name" as "ConfigCustomBackItUpSet/Components/AdapterExist" in the schema');return}let h=Ut.runningLoads[`${n}!${u}`];if(!(h instanceof Promise)){let d;if(this.props.schema.i18n===!0){const s=n.lastIndexOf("/");let p;s!==-1?p=n.substring(0,s):p=n;const e=j.I18n.getLanguage(),t=`${p}/i18n/${e}.json`;d=fetch(t).then(r=>r.json()).then(r=>j.I18n.extendTranslations(r,e)).catch(r=>{if(e!=="en"){fetch(`${p}/i18n/en.json`).then(l=>l.json()).then(l=>j.I18n.extendTranslations(l,e)).catch(l=>console.log(`Cannot load i18n "${t}": ${l}`));return}console.log(`Cannot load i18n "${t}": ${r}`)})}else if(this.props.schema.i18n&&typeof this.props.schema.i18n=="object")try{j.I18n.extendTranslations(this.props.schema.i18n)}catch(s){console.error(`Cannot import i18n: ${s}`)}try{console.log(n,i,u,o),Pn.registerRemotes([{name:i,entry:n,type:this.props.schema.bundlerType||void 0}]),h=Pn.loadRemote(`${i}/${u}`),d instanceof Promise&&(h=Promise.all([h,d]).then(s=>s[0])),Ut.runningLoads[`${n}!${u}`]=h}catch(s){console.error(s),this.setState({error:`Cannot import from ${this.props.schema.url}: ${s}`})}}try{const d=(await h).default;if(d!=null&&d[o])this.setState({Component:d[o]});else{const s=Object.keys(d||{});console.error("URL is empty. Cannot load custom component!"),this.setState({error:`Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${s.join(", ")}`})}}catch(d){console.error(d),this.setState({error:`Cannot import from ${this.props.schema.url}: ${d}`})}}render(){const n=this.state.Component,i=this.props.schema||{};let u=n?k.createElement(n,{...this.props,socket:this.props.oContext.socket,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,instance:this.props.oContext.instance,adapterName:this.props.oContext.adapterName,systemConfig:this.props.oContext.systemConfig,forceUpdate:this.props.oContext.forceUpdate}):this.state.error?k.createElement("div",null,this.state.error):k.createElement(N.LinearProgress,null);return i.newLine?k.createElement(k.Fragment,null,k.createElement("div",{style:{flexBasis:"100%",height:0}}),u):u}}class zs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){return k.createElement(Wi.DatePicker,{sx:u=>({width:"100%",borderBottom:`1px solid ${u.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${u.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),format:this.props.oContext.systemConfig.dateFormat.toLowerCase().replace("mm","MM"),disabled:!!i,value:this.state.value,onChange:u=>{this.setState({value:u},()=>this.onChange(this.props.attr,this.state.value))},label:this.getText(this.props.schema.label)})}}class js extends K{renderItem(){if(!this.props.schema)return null;if(this.props.oContext.DeviceManager){const i=this.props.oContext.DeviceManager;return k.createElement(i,{uploadImagesToInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,title:this.getText(this.props.schema.label),socket:this.props.oContext.socket,selectedInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,themeName:this.props.themeName,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,isFloatComma:this.props.oContext.isFloatComma,dateFormat:this.props.oContext.dateFormat})}return k.createElement("div",null,"DeviceManager not found")}}const Ke={fullWidth:{width:"100%"},uploadDiv:{position:"relative",width:"100%"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"100%",height:"100%",position:"absolute",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},error:{border:"2px solid red"},deleteButton:{},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Vs=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Us=["mp3","ogg","wav","aac"],Gs=["avi","mp4","mov"],Ks=["txt","log","html","htm"],Js=["json","js","ts"];class mn extends K{dropzoneRef;imagePrefix;objectID;path;constructor(n){super(n),this.dropzoneRef=k.createRef(),this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix}componentDidMount(){super.componentDidMount(),this.objectID=(this.props.schema.objectID||"0_userdata.0").replace("%INSTANCE%",(this.props.oContext.instance||0).toString()),this.path=this.props.schema.upload,this.path&&(this.path==="/"?this.path="":this.path.endsWith("/")||(this.path=`${this.path}/`)),this.updateFiles().then(()=>{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n}),this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(i=>console.error(`Cannot subscribe: ${i}`))})}onFolderChanged=(n,i)=>{this.path&&i.startsWith(this.path)&&this.updateFiles().catch(u=>console.error(`Cannot update files: ${u}`))};componentWillUnmount(){this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(n=>console.error(`Cannot subscribe: ${n}`)),super.componentWillUnmount()}async updateFiles(){const n=await this.readFiles(this.props.schema.pattern);await new Promise(i=>this.setState({files:n},i))}async readFolder(n,i,u){try{const v=await this.props.oContext.socket.readDir(this.objectID,n.replace(/^\//,"")||null);for(let o=0;oconsole.log("file reading was aborted"),u.onerror=()=>console.log("file reading has failed"),u.onload=()=>{if(i.size>v){window.alert(j.I18n.t("File is too big. Max %sk allowed. Try use SVG.",Math.round(v/1024)));return}this.props.oContext.socket.writeFile64(this.objectID,this.path+i.name,u.result).then(()=>this.updateFiles()).then(()=>this.setState({value:this.path+i.name},()=>this.onChange(this.props.attr,this.path+i.name))).catch(o=>window.alert(`Cannot upload file: ${o}`))},u.readAsArrayBuffer(i)}renderDeleteDialog(){return this.state.deleteFile?k.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Are you sure?"),text:j.I18n.t("ra_File will be deleted"),ok:j.I18n.t("ra_Delete"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>{const i=this.state.deleteFile;this.setState({deleteFile:""},()=>{n&&this.props.oContext.socket.deleteFile(this.objectID,i).then(()=>this.updateFiles()).catch(u=>window.alert(`Cannot delete file: ${u}`))})}}):null}static base64ToArrayBuffer(n){const i=window.atob(n),u=i.length,v=new Uint8Array(u);for(let o=0;o{if(typeof AudioContext<"u"){const i=new AudioContext,u=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(u,v=>{const o=i.createBufferSource();o.buffer=v,o.connect(i.destination),o.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getFileIcon(n){return n!=null&&n.extension?Vs.includes(n.extension)?k.createElement("div",{style:{...Ke.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.objectID}/${n.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Us.includes(n.extension)?k.createElement(Z.MusicNote,null):Ks.includes(n.extension)?k.createElement(Z.Article,null):Gs.includes(n.extension)?k.createElement(Z.Videocam,null):Js.includes(n.extension)?k.createElement(Z.Code,null):null:null}renderItem(n,i){if(!this.state.files)return null;const u=[];this.props.schema.withFolder||this.state.files.forEach(e=>{const t=e.name.lastIndexOf("/");if(t===-1)u.includes("/")||u.push("/");else{const r=e.name.substring(0,t+1);u.includes(r)||u.push(r)}});const v=this.state.files.map(e=>({value:e.name,label:!this.props.schema.withFolder&&u.length===1?`${e.name.substring(u[0].length)}`:`${e.name}${this.props.schema.noSize?"":`(${e.size})`}`,extension:e.name.toLowerCase().split(".").pop()}));this.props.schema.noNone||v.unshift({label:j.I18n.t("ra_none"),value:""});const o=v.find(e=>e.value===this.state.value);let h=0;this.props.schema.upload&&h++,this.props.schema.refresh&&h++;const d=this.state.value&&(this.state.value.endsWith(".mp3")||this.state.value.endsWith(".ogg")||this.state.value.endsWith(".wav"));d&&h++;const s=k.createElement("div",{style:Ke.fullWidth},k.createElement(N.FormControl,{variant:"standard",style:{width:`calc(100% - ${h*42}px)`}},this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>k.createElement(k.Fragment,null,this.getFileIcon(o),k.createElement("span",null,(o==null?void 0:o.label)||"")),onChange:e=>{this.setState({value:e.target.value==="_"?"":e.target.value},()=>this.onChange(this.props.attr,this.state.value))}},v.map(e=>k.createElement(N.MenuItem,{key:e.value,value:e.value},k.createElement(N.ListItemIcon,null,this.getFileIcon(e)),k.createElement(N.ListItemText,null,e.label),this.props.schema.delete&&o.value?k.createElement(N.IconButton,{style:Ke.deleteButton,size:"small",onClick:()=>this.setState({deleteFile:o.value})},k.createElement(Z.Delete,null)):null))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null),this.props.schema.refresh&&k.createElement(N.IconButton,{onClick:()=>this.updateFiles()},k.createElement(Z.Refresh,null)),this.props.schema.upload&&k.createElement(N.IconButton,{onClick:()=>{var e;return(e=this.dropzoneRef.current)==null?void 0:e.open()}},k.createElement(Z.UploadFile,null)),d&&k.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},k.createElement(Z.PlayArrow,null)));if(!this.props.schema.upload)return k.createElement(k.Fragment,null,s,this.renderDeleteDialog());let p={"*/*":[]};if(this.props.schema.fileTypes==="image"?p={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:this.props.schema.fileTypes==="audio"?p={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:this.props.schema.fileTypes==="text"&&(p={"text/plain":[".txt"]}),this.props.schema.pattern){const e=this.props.schema.pattern.split("/").pop().toLowerCase().replace(/.*\./,"");e==="png"||e==="jpg"||e==="svg"||e==="gif"||e==="apng"||e==="avif"||e==="webp"?p={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:e==="mp3"||e==="ogg"||e==="wav"?p={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:e==="ics"?p={"text/calendar":[".ics"]}:e==="txt"?p={"text/plain":[".txt"]}:e==="pem"?p={"text/plain":[".pem"]}:p={"*/*":[`.${e}`]}}return k.createElement(Pi,{ref:this.dropzoneRef,multiple:!1,accept:p,noKeyboard:!0,noClick:!0,maxSize:this.props.schema.maxSize||2*1024*1024,onDragEnter:()=>{this.setState({uploadFile:"dragging"})},onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(e,t)=>{var r,l,a;this.setState({uploadFile:!1}),e.length?this.onDrop(e):window.alert(((a=(l=(r=t==null?void 0:t[0])==null?void 0:r.errors)==null?void 0:l[0])==null?void 0:a.message)||j.I18n.t("Cannot upload"))}},({getRootProps:e,getInputProps:t})=>k.createElement("div",{style:{...Ke.uploadDiv,...this.state.uploadFile==="dragging"?Ke.uploadDivDragging:void 0,...i?Ke.disabledOpacity:void 0},...e()},k.createElement("input",{...t()}),this.state.uploadFile==="dragging"?k.createElement("div",{style:{...Ke.uploadCenterDiv,...this.state.uploadError?Ke.error:void 0}},k.createElement("div",{style:Ke.uploadCenterTextAndIcon},k.createElement(Z.UploadFile,{style:Ke.uploadCenterIcon}),k.createElement("div",{style:Ke.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog")))):null,s,this.renderDeleteDialog()))}}const sn={fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 69px)",marginRight:4},fullWidthIcon:{width:"calc(100% - 119px)",marginRight:4},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Ys=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Qs=["mp3","ogg","wav","aac"],Xs=["avi","mp4","mov"],Zs=["txt","log","html","htm"],qs=["json","js","ts"];class eo extends K{imagePrefix="../..";componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix,this.setState({value:n??""})}static getDerivedStateFromProps(n,i){const u=K.getValue(n.data,n.attr);return u==null||u.toString().trim()!==(i.value||"").toString().trim()?{value:u??""}:null}loadFile(){const n=this.state.value.indexOf("/");if(n!==-1){const i=this.state.value.substring(0,n),u=this.state.value.substring(n+1);return this.props.oContext.socket.readFile(i,u,!0)}return Promise.resolve(null)}play(){this.loadFile().then(n=>{if(typeof AudioContext<"u"&&(n!=null&&n.file)){const i=new AudioContext,u=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(u,v=>{const o=i.createBufferSource();o.buffer=v,o.connect(i.destination),o.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getIcon(){const n=this.state.value.split(".").pop().toLowerCase();return Ys.includes(n)?k.createElement("div",{style:{...sn.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.state.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Qs.includes(n)?k.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},k.createElement(Z.PlayArrow,null)):Zs.includes(n)?k.createElement(Z.Article,null):Xs.includes(n)?k.createElement(Z.Videocam,null):qs.includes(n)?k.createElement(Z.Code,null):null}renderFileBrowser(){return this.state.showFileBrowser?k.createElement(j.DialogSelectFile,{imagePrefix:this.props.oContext.imagePrefix,socket:this.props.oContext.socket,selected:this.state.value,onClose:()=>this.setState({showFileBrowser:!1}),onOk:n=>{const i=Array.isArray(n)?n[0]:n;this.setState({value:i},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?i:(i||"").trim()))},selectOnlyFolders:this.props.schema.selectOnlyFolders,allowUpload:this.props.schema.allowUpload,allowDownload:this.props.schema.allowDownload,allowCreateFolder:this.props.schema.allowCreateFolder,allowView:this.props.schema.allowView,showToolbar:this.props.schema.showToolbar,limitPath:this.props.schema.limitPath,theme:this.props.oContext.theme}):null}renderItem(n,i){const u=this.getIcon();return k.createElement("div",{style:sn.fullWidth},u,k.createElement(N.TextField,{variant:"standard",style:u?sn.fullWidthIcon:sn.fullWidthOneButton,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:!!this.props.schema.disableEdit}},onChange:v=>{const o=v.target.value;this.setState({value:o},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?o:(o||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),k.createElement(N.Button,{disabled:i,variant:"outlined",onClick:()=>this.setState({showFileBrowser:!0})},"..."),this.renderFileBrowser())}}class to extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("functions").then(i=>{const u=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.functions.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})})}renderItem(n,i){if(!this.state.selectOptions)return null;const u=this.state.selectOptions.find(v=>v.value===this.state.value);return k.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>u?u.obj?k.createElement(j.TextWithIcon,{value:u.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):u.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>k.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?k.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class no extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getHostByIp(this.props.common.host).then(n=>{this.props.schema.listenOnAllPorts||(n=n.filter(i=>i.address!=="0.0.0.0"&&i.address!=="::")),this.props.schema.onlyIp4?n=n.filter(i=>i.family==="ipv4"):this.props.schema.onlyIp6&&(n=n.filter(i=>i.family==="ipv6")),this.props.schema.noInternal&&(n=n.filter(i=>!i.internal)),n.forEach(i=>{i.address==="0.0.0.0"?i.name=`[IPv4] 0.0.0.0 - ${j.I18n.t("ra_Listen on all IPs")}`:i.address==="::"&&(i.name=`[IPv6] :: - ${j.I18n.t("ra_Listen on all IPs")}`)}),this.setState({ips:n})}).catch(n=>console.error(n))}renderItem(n,i){var o,h;const u=K.getValue(this.props.data,this.props.attr),v=(o=this.state.ips)==null?void 0:o.find(d=>d.address===u);return k.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.state.ips&&this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.ips?k.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:d=>(v==null?void 0:v.name)||d,onChange:d=>this.onChange(this.props.attr,d.target.value)},(h=this.state.ips)==null?void 0:h.map((d,s)=>k.createElement(N.MenuItem,{key:s,value:d.address},d.name))):k.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:u,onChange:d=>this.onChange(this.props.attr,d.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class io extends K{initialized=!1;localContext;componentDidMount(){super.componentDidMount(),this.askInstance()}askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);if(i)try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${JSON.stringify(n)}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({image:i||""}))}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const n=this.getContext();(n!==this.localContext||!this.initialized)&&(this.localContext=n,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}return this.state.image===void 0?null:k.createElement("img",{alt:"dynamic content",src:this.state.image,style:{width:this.props.schema.width||"100%",height:this.props.schema.height}})}}class ro extends K{index;constructor(n){super(n),this.index=Date.now()}componentDidMount(){if(super.componentDidMount(),this.props.schema.base64){const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}else this.props.oContext.socket.fileExists(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).then(n=>n&&this.loadImage())}_getUrl(n){n&&(this.index=Date.now());let i=`files/${this.props.oContext.adapterName}.${this.props.oContext.instance}/${this.props.attr}?t=${this.index}`;return window.location.port==="3000"&&(i=`${window.location.protocol}//${window.location.hostname}:8081/${i}`),i}loadImage(){fetch(this._getUrl()).then(n=>n.blob()).then(n=>{const i=new FileReader;i.onload=()=>{this.setState({value:i.result})},i.readAsDataURL(n)}).catch(n=>console.error(n))}renderItem(n,i){return k.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?k.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,k.createElement(j.UploadImage,{error:!!n,disabled:i,accept:this.props.schema.accept,crop:this.props.schema.crop,maxSize:this.props.schema.maxSize||256*1024,icon:this.state.value||void 0,removeIconFunc:()=>this.setState({value:null},()=>{if(this.props.schema.base64){const u=this.onChange(this.props.attr,this.state.value);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))}else this.props.oContext.socket.deleteFile(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).catch(u=>console.error(u))}),onChange:u=>this.setState({value:u},()=>{if(this.props.schema.base64){const v=this.onChange(this.props.attr,this.state.value);v instanceof Promise&&v.catch(o=>console.error(`Cannot set value: ${o}`))}else u.startsWith("data")&&(u=u.split(",")[1]);this.props.oContext.socket.writeFile64(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr,u).catch(v=>console.error(v))})}),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const gi={icon:{width:20,height:20,marginRight:4}};class so extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);let i=this.props.schema.adapter;i==="_dataSources"&&(i=void 0),this.props.oContext.socket.getAdapterInstances(i,!0).then(async u=>{this.props.schema.adapter==="_dataSources"?u=u.filter(o=>{var h;return(h=o==null?void 0:o.common)==null?void 0:h.getHistory}):this.props.schema.adapter?u=u.filter(o=>o==null?void 0:o._id.startsWith(`system.adapter.${this.props.schema.adapter}.`)):this.props.schema.adapters&&Array.isArray(this.props.schema.adapters)&&(u=u.filter(o=>{var h;return this.props.schema.adapters.includes((h=o==null?void 0:o.common)==null?void 0:h.name)})),this.props.schema.onlyEnabled&&(u=u.filter(o=>{var h;return(h=o==null?void 0:o.common)==null?void 0:h.enabled}));const v=u.map(o=>({value:this.props.schema.long?o._id:this.props.schema.short?o._id.split(".").pop():o._id.replace(/^system\.adapter\./,""),label:`${o.common.name} [${o._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${o.common.name}/${o.common.icon}`}));v.sort((o,h)=>o.value>h.value?1:o.valueconsole.error(`Cannot get instances: ${u}`))}componentWillUnmount(){this.props.oContext.socket.unsubscribeObject("system.adapter.*",this.onInstancesUpdate).then(()=>{}),super.componentWillUnmount()}onInstancesUpdate=(n,i)=>{if(!n.match(/^system\.adapter\.[-_a-z\d]+\.\d+$/))return;const u=this.props.schema.long?n:this.props.schema.short?n.split(".").pop():n.replace(/^system\.adapter\./,""),v=this.state.selectOptions.findIndex(o=>o.value===u);if(i){if(this.props.schema.adapter==="_dataSources"&&(!i.common||!i.common.getHistory))return;if(v===-1){const o=JSON.parse(JSON.stringify(this.state.selectOptions)),h=typeof i.common.name=="object"?i.common.name[j.I18n.getLanguage()]||i.common.name.en:i.common.name;o.push({value:this.props.schema.long?i._id:this.props.schema.short?i._id.split(".").pop():i._id.replace(/^system\.adapter\./,""),label:`${h} [${i._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${h}/${i.common.icon}`}),o.sort((d,s)=>d.label>s.label?1:d.labelo.value===this.state.value);return k.createElement(N.FormControl,{fullWidth:!0,key:this.props.attr,variant:"standard"},this.props.schema.label?k.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>k.createElement("span",{style:{display:"flex"}},u!=null&&u.icon?k.createElement("img",{src:`./${u.icon}`,alt:u.value,style:gi.icon}):null,this.getText(u==null?void 0:u.label,!0)),onChange:o=>this.setState({value:o.target.value},()=>this.onChange(this.props.attr,this.state.value))},this.state.selectOptions.map(o=>k.createElement(N.MenuItem,{key:o.value,value:o.value,style:o.value===K.NONE_VALUE?{opacity:.5}:{}},o.icon?k.createElement("img",{src:`./${o.icon}`,alt:o.value,style:gi.icon}):null,this.getText(o.label,!0)))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const mi={address:{fontSize:"smaller",opacity:.5,marginLeft:8}};class oo extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getObject(`system.host.${this.props.common.host}`).then(n=>{var u,v;const i=[];if((v=(u=n==null?void 0:n.native)==null?void 0:u.hardware)!=null&&v.networkInterfaces){const o=n.native.hardware.networkInterfaces;Object.keys(o).forEach(h=>{if(this.props.schema.ignoreInternal&&!o[h].find(s=>!s.internal)||this.props.schema.ignoreLoopback&&o[h].find(s=>s.address==="127.0.0.1"||s.address==="::1"))return;let d=o[h].find(s=>s.family==="IPv4");d=d||o[h].find(s=>s.family==="IPv6"),i.push({value:h,address:d.address})})}this.setState({interfaces:i})}).catch(n=>window.alert(`Cannot read interfaces: ${n}`))}renderItem(n,i){var o,h,d;const u=K.getValue(this.props.data,this.props.attr),v=(o=this.state.interfaces)==null?void 0:o.find(s=>s.value===u);return k.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},(h=this.state.interfaces)!=null&&h.length&&this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,(d=this.state.interfaces)!=null&&d.length?k.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:s=>v?k.createElement("span",null,v.value,k.createElement("span",{style:mi.address},v.address)):s,onChange:s=>this.onChange(this.props.attr,s.target.value)},this.state.interfaces.map((s,p)=>k.createElement(N.MenuItem,{key:p,value:s.value},k.createElement("span",null,s.value,k.createElement("span",{style:mi.address},s.address))))):k.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:u,onChange:s=>this.onChange(this.props.attr,s.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const kt={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:{color:"primary.main"}},ao=({toggleTranslation:L,noTranslation:n,title:i,fullWidth:u,help:v,maxWidth:o,progress:h,icon:d,applyDisabled:s,applyButton:p,onClose:e,children:t,titleButtonApply:r,titleButtonClose:l,onApply:a,textInput:c,defaultValue:f,overflowHidden:m})=>{const[y,D]=pt.useState(f);pt.useEffect(()=>{D(f)},[f]);let E=null;return d&&(E=d),k.createElement(N.Dialog,{open:!0,maxWidth:o||"md",fullWidth:!!u,disableEscapeKeyDown:!1,onClose:e,sx:{"& .MuiPaper-root":kt.modalDialog}},i&&k.createElement(N.DialogTitle,null,d?k.createElement(E,{style:kt.titleIcon}):null,i,j.I18n.getLanguage()!=="en"&&L?k.createElement(N.IconButton,{size:"large",style:{...kt.languageButton,...n?kt.languageButtonActive:{}},onClick:()=>L(),title:j.I18n.t("Disable/Enable translation")},k.createElement(Z.Language,null)):null),k.createElement(N.DialogContent,{sx:{...m?kt.overflowHidden:{},...kt.content},style:{paddingTop:8}},c&&k.createElement(N.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:y,onChange:b=>D(b.target.value)}),t,v?k.createElement("div",null,v):null),k.createElement(N.DialogActions,null,p!==!1&&k.createElement(N.Button,{startIcon:k.createElement(Z.Check,null),disabled:h||s&&f===y,onClick:()=>a&&a(c?y:""),variant:"contained",color:"primary"},j.I18n.t(r||"Ok")),k.createElement(N.Button,{color:"grey",onClick:()=>e&&e(),disabled:h,variant:"contained",startIcon:k.createElement(Z.Close,null)},j.I18n.t(l||"Cancel"))))};var It={},Dt={},Vi={exports:{}};(function(L,n){(function(){var i="ace",u=function(){return this}();!u&&typeof window<"u"&&(u=window);var v=function(e,t,r){if(typeof e!="string"){v.original?v.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=t),v.modules[e]||(v.payloads[e]=r,v.modules[e]=null)};v.modules={},v.payloads={};var o=function(e,t,r){if(typeof t=="string"){var l=s(e,t);if(l!=null)return r&&r(),l}else if(Object.prototype.toString.call(t)==="[object Array]"){for(var a=[],c=0,f=t.length;cs.length)&&(d=s.length),d-=h.length;var p=s.indexOf(h,d);return p!==-1&&p===d}),String.prototype.repeat||o(String.prototype,"repeat",function(h){for(var d="",s=this;h>0;)h&1&&(d+=s),(h>>=1)&&(s+=s);return d}),String.prototype.includes||o(String.prototype,"includes",function(h,d){return this.indexOf(h,d)!=-1}),Object.assign||(Object.assign=function(h){if(h==null)throw new TypeError("Cannot convert undefined or null to object");for(var d=Object(h),s=1;s>>0,p=arguments[1],e=p>>0,t=e<0?Math.max(s+e,0):Math.min(e,s),r=arguments[2],l=r===void 0?s:r>>0,a=l<0?Math.max(s+l,0):Math.min(l,s);t0;)s&1&&(p+=d),(s>>=1)&&(d+=d);return p};var o=/^\s\s*/,h=/\s\s*$/;u.stringTrimLeft=function(d){return d.replace(o,"")},u.stringTrimRight=function(d){return d.replace(h,"")},u.copyObject=function(d){var s={};for(var p in d)s[p]=d[p];return s},u.copyArray=function(d){for(var s=[],p=0,e=d.length;p65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(i,u,v){u.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},u.getOS=function(){return u.isMac?u.OS.MAC:u.isLinux?u.OS.LINUX:u.OS.WINDOWS};var o=typeof navigator=="object"?navigator:{},h=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),d=o.userAgent||"",s=o.appName||"";u.isWin=h=="win",u.isMac=h=="mac",u.isLinux=h=="linux",u.isIE=s=="Microsoft Internet Explorer"||s.indexOf("MSAppHost")>=0?parseFloat((d.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((d.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),u.isOldIE=u.isIE&&u.isIE<9,u.isGecko=u.isMozilla=d.match(/ Gecko\/\d+/),u.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",u.isWebKit=parseFloat(d.split("WebKit/")[1])||void 0,u.isChrome=parseFloat(d.split(" Chrome/")[1])||void 0,u.isSafari=parseFloat(d.split(" Safari/")[1])&&!u.isChrome||void 0,u.isEdge=parseFloat(d.split(" Edge/")[1])||void 0,u.isAIR=d.indexOf("AdobeAIR")>=0,u.isAndroid=d.indexOf("Android")>=0,u.isChromeOS=d.indexOf(" CrOS ")>=0,u.isIOS=/iPad|iPhone|iPod/.test(d)&&!window.MSStream,u.isIOS&&(u.isMac=!0),u.isMobile=u.isIOS||u.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(i,u,v){var o=i("./useragent"),h="http://www.w3.org/1999/xhtml";u.buildDom=function r(l,a,c){if(typeof l=="string"&&l){var f=document.createTextNode(l);return a&&a.appendChild(f),f}if(!Array.isArray(l))return l&&l.appendChild&&a&&a.appendChild(l),l;if(typeof l[0]!="string"||!l[0]){for(var m=[],y=0;y"u")){if(s){if(a)p();else if(a===!1)return s.push([r,l])}if(!d){var c=a;!a||!a.getRootNode?c=document:(c=a.getRootNode(),(!c||c==a)&&(c=document));var f=c.ownerDocument||c;if(l&&u.hasCssString(l,c))return null;l&&(r+=` -/*# sourceURL=ace/css/`+l+" */");var m=u.createElement("style");m.appendChild(f.createTextNode(r)),l&&(m.id=l),c==f&&(c=u.getDocumentHead(f)),c.insertBefore(m,c.firstChild)}}}if(u.importCssString=e,u.importCssStylsheet=function(r,l){u.buildDom(["link",{rel:"stylesheet",href:r}],u.getDocumentHead(l))},u.scrollbarWidth=function(r){var l=u.createElement("ace_inner");l.style.width="100%",l.style.minWidth="0px",l.style.height="200px",l.style.display="block";var a=u.createElement("ace_outer"),c=a.style;c.position="absolute",c.left="-10000px",c.overflow="hidden",c.width="200px",c.minWidth="0px",c.height="150px",c.display="block",a.appendChild(l);var f=r&&r.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(a);var m=l.offsetWidth;c.overflow="scroll";var y=l.offsetWidth;return m===y&&(y=a.clientWidth),f.removeChild(a),m-y},u.computedStyle=function(r,l){return window.getComputedStyle(r,"")||{}},u.setStyle=function(r,l,a){r[l]!==a&&(r[l]=a)},u.HAS_CSS_ANIMATION=!1,u.HAS_CSS_TRANSFORMS=!1,u.HI_DPI=o.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,o.isChromeOS&&(u.HI_DPI=!1),typeof document<"u"){var t=document.createElement("div");u.HI_DPI&&t.style.transform!==void 0&&(u.HAS_CSS_TRANSFORMS=!0),!o.isEdge&&typeof t.style.animationName<"u"&&(u.HAS_CSS_ANIMATION=!0),t=null}u.HAS_CSS_TRANSFORMS?u.translate=function(r,l,a){r.style.transform="translate("+Math.round(l)+"px, "+Math.round(a)+"px)"}:u.translate=function(r,l,a){r.style.top=Math.round(a)+"px",r.style.left=Math.round(l)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(i,u,v){/* +`+f+"]"}return v.pop(),o=f,y}};const vs={parse:hs,stringify:ms};var ji=vs,Kn={exports:{}};function ys(L){throw new Error('Could not dynamically require "'+L+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var hn={exports:{}};const bs={},ws=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"})),Cs=Xr(ws);var Es=hn.exports,ci;function Ss(){return ci||(ci=1,function(L,n){(function(i,u){L.exports=u()})(Es,function(){var i=i||function(u,v){var o;if(typeof window<"u"&&window.crypto&&(o=window.crypto),typeof self<"u"&&self.crypto&&(o=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(o=globalThis.crypto),!o&&typeof window<"u"&&window.msCrypto&&(o=window.msCrypto),!o&&typeof He<"u"&&He.crypto&&(o=He.crypto),!o&&typeof ys=="function")try{o=Cs}catch{}var h=function(){if(o){if(typeof o.getRandomValues=="function")try{return o.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof o.randomBytes=="function")try{return o.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},p=Object.create||function(){function y(){}return function(D){var E;return y.prototype=D,E=new y,y.prototype=null,E}}(),a={},d=a.lib={},e=d.Base=function(){return{extend:function(y){var D=p(this);return y&&D.mixIn(y),(!D.hasOwnProperty("init")||this.init===D.init)&&(D.init=function(){D.$super.init.apply(this,arguments)}),D.init.prototype=D,D.$super=this,D},create:function(){var y=this.extend();return y.init.apply(y,arguments),y},init:function(){},mixIn:function(y){for(var D in y)y.hasOwnProperty(D)&&(this[D]=y[D]);y.hasOwnProperty("toString")&&(this.toString=y.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),t=d.WordArray=e.extend({init:function(y,D){y=this.words=y||[],D!=v?this.sigBytes=D:this.sigBytes=y.length*4},toString:function(y){return(y||l).stringify(this)},concat:function(y){var D=this.words,E=y.words,b=this.sigBytes,g=y.sigBytes;if(this.clamp(),b%4)for(var S=0;S>>2]>>>24-S%4*8&255;D[b+S>>>2]|=T<<24-(b+S)%4*8}else for(var k=0;k>>2]=E[k>>>2];return this.sigBytes+=g,this},clamp:function(){var y=this.words,D=this.sigBytes;y[D>>>2]&=4294967295<<32-D%4*8,y.length=u.ceil(D/4)},clone:function(){var y=e.clone.call(this);return y.words=this.words.slice(0),y},random:function(y){for(var D=[],E=0;E>>2]>>>24-g%4*8&255;b.push((S>>>4).toString(16)),b.push((S&15).toString(16))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>3]|=parseInt(y.substr(b,2),16)<<24-b%8*4;return new t.init(E,D/2)}},s=r.Latin1={stringify:function(y){for(var D=y.words,E=y.sigBytes,b=[],g=0;g>>2]>>>24-g%4*8&255;b.push(String.fromCharCode(S))}return b.join("")},parse:function(y){for(var D=y.length,E=[],b=0;b>>2]|=(y.charCodeAt(b)&255)<<24-b%4*8;return new t.init(E,D)}},c=r.Utf8={stringify:function(y){try{return decodeURIComponent(escape(s.stringify(y)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(y){return s.parse(unescape(encodeURIComponent(y)))}},f=d.BufferedBlockAlgorithm=e.extend({reset:function(){this._data=new t.init,this._nDataBytes=0},_append:function(y){typeof y=="string"&&(y=c.parse(y)),this._data.concat(y),this._nDataBytes+=y.sigBytes},_process:function(y){var D,E=this._data,b=E.words,g=E.sigBytes,S=this.blockSize,T=S*4,k=g/T;y?k=u.ceil(k):k=u.max((k|0)-this._minBufferSize,0);var _=k*S,O=u.min(_*4,g);if(_){for(var $=0;$<_;$+=S)this._doProcessBlock(b,$);D=b.splice(0,_),E.sigBytes-=O}return new t.init(D,O)},clone:function(){var y=e.clone.call(this);return y._data=this._data.clone(),y},_minBufferSize:0});d.Hasher=f.extend({cfg:e.extend(),init:function(y){this.cfg=this.cfg.extend(y),this.reset()},reset:function(){f.reset.call(this),this._doReset()},update:function(y){return this._append(y),this._process(),this},finalize:function(y){y&&this._append(y);var D=this._doFinalize();return D},blockSize:16,_createHelper:function(y){return function(D,E){return new y.init(E).finalize(D)}},_createHmacHelper:function(y){return function(D,E){return new m.HMAC.init(y,E).finalize(D)}}});var m=a.algo={};return a}(Math);return i})}(hn)),hn.exports}var Ds=Kn.exports;(function(L,n){(function(i,u){L.exports=u(Ss())})(Ds,function(i){return function(u){var v=i,o=v.lib,h=o.WordArray,p=o.Hasher,a=v.algo,d=[];(function(){for(var c=0;c<64;c++)d[c]=u.abs(u.sin(c+1))*4294967296|0})();var e=a.MD5=p.extend({_doReset:function(){this._hash=new h.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(c,f){for(var m=0;m<16;m++){var y=f+m,D=c[y];c[y]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360}var E=this._hash.words,b=c[f+0],g=c[f+1],S=c[f+2],T=c[f+3],k=c[f+4],_=c[f+5],O=c[f+6],$=c[f+7],A=c[f+8],C=c[f+9],w=c[f+10],x=c[f+11],I=c[f+12],F=c[f+13],R=c[f+14],B=c[f+15],P=E[0],V=E[1],W=E[2],H=E[3];P=t(P,V,W,H,b,7,d[0]),H=t(H,P,V,W,g,12,d[1]),W=t(W,H,P,V,S,17,d[2]),V=t(V,W,H,P,T,22,d[3]),P=t(P,V,W,H,k,7,d[4]),H=t(H,P,V,W,_,12,d[5]),W=t(W,H,P,V,O,17,d[6]),V=t(V,W,H,P,$,22,d[7]),P=t(P,V,W,H,A,7,d[8]),H=t(H,P,V,W,C,12,d[9]),W=t(W,H,P,V,w,17,d[10]),V=t(V,W,H,P,x,22,d[11]),P=t(P,V,W,H,I,7,d[12]),H=t(H,P,V,W,F,12,d[13]),W=t(W,H,P,V,R,17,d[14]),V=t(V,W,H,P,B,22,d[15]),P=r(P,V,W,H,g,5,d[16]),H=r(H,P,V,W,O,9,d[17]),W=r(W,H,P,V,x,14,d[18]),V=r(V,W,H,P,b,20,d[19]),P=r(P,V,W,H,_,5,d[20]),H=r(H,P,V,W,w,9,d[21]),W=r(W,H,P,V,B,14,d[22]),V=r(V,W,H,P,k,20,d[23]),P=r(P,V,W,H,C,5,d[24]),H=r(H,P,V,W,R,9,d[25]),W=r(W,H,P,V,T,14,d[26]),V=r(V,W,H,P,A,20,d[27]),P=r(P,V,W,H,F,5,d[28]),H=r(H,P,V,W,S,9,d[29]),W=r(W,H,P,V,$,14,d[30]),V=r(V,W,H,P,I,20,d[31]),P=l(P,V,W,H,_,4,d[32]),H=l(H,P,V,W,A,11,d[33]),W=l(W,H,P,V,x,16,d[34]),V=l(V,W,H,P,R,23,d[35]),P=l(P,V,W,H,g,4,d[36]),H=l(H,P,V,W,k,11,d[37]),W=l(W,H,P,V,$,16,d[38]),V=l(V,W,H,P,w,23,d[39]),P=l(P,V,W,H,F,4,d[40]),H=l(H,P,V,W,b,11,d[41]),W=l(W,H,P,V,T,16,d[42]),V=l(V,W,H,P,O,23,d[43]),P=l(P,V,W,H,C,4,d[44]),H=l(H,P,V,W,I,11,d[45]),W=l(W,H,P,V,B,16,d[46]),V=l(V,W,H,P,S,23,d[47]),P=s(P,V,W,H,b,6,d[48]),H=s(H,P,V,W,$,10,d[49]),W=s(W,H,P,V,R,15,d[50]),V=s(V,W,H,P,_,21,d[51]),P=s(P,V,W,H,I,6,d[52]),H=s(H,P,V,W,T,10,d[53]),W=s(W,H,P,V,w,15,d[54]),V=s(V,W,H,P,g,21,d[55]),P=s(P,V,W,H,A,6,d[56]),H=s(H,P,V,W,B,10,d[57]),W=s(W,H,P,V,O,15,d[58]),V=s(V,W,H,P,F,21,d[59]),P=s(P,V,W,H,k,6,d[60]),H=s(H,P,V,W,x,10,d[61]),W=s(W,H,P,V,S,15,d[62]),V=s(V,W,H,P,C,21,d[63]),E[0]=E[0]+P|0,E[1]=E[1]+V|0,E[2]=E[2]+W|0,E[3]=E[3]+H|0},_doFinalize:function(){var c=this._data,f=c.words,m=this._nDataBytes*8,y=c.sigBytes*8;f[y>>>5]|=128<<24-y%32;var D=u.floor(m/4294967296),E=m;f[(y+64>>>9<<4)+15]=(D<<8|D>>>24)&16711935|(D<<24|D>>>8)&4278255360,f[(y+64>>>9<<4)+14]=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,c.sigBytes=(f.length+1)*4,this._process();for(var b=this._hash,g=b.words,S=0;S<4;S++){var T=g[S];g[S]=(T<<8|T>>>24)&16711935|(T<<24|T>>>8)&4278255360}return b},clone:function(){var c=p.clone.call(this);return c._hash=this._hash.clone(),c}});function t(c,f,m,y,D,E,b){var g=c+(f&m|~f&y)+D+b;return(g<>>32-E)+f}function r(c,f,m,y,D,E,b){var g=c+(f&y|m&~y)+D+b;return(g<>>32-E)+f}function l(c,f,m,y,D,E,b){var g=c+(f^m^y)+D+b;return(g<>>32-E)+f}function s(c,f,m,y,D,E,b){var g=c+(m^(f|~y))+D+b;return(g<>>32-E)+f}v.MD5=p._createHelper(e),v.HmacMD5=p._createHmacHelper(e)}(Math),i.MD5})})(Kn);var As=Kn.exports;const di=Zr(As),xs=window.innerWidth<=600?12:void 0;function _n(L){return Object.prototype.toString.call(L)==="[object Object]"}class K extends dt.Component{static DIFFERENT_VALUE="__different__";static DIFFERENT_LABEL="ra___different__";static NONE_VALUE="";static NONE_LABEL="ra_none";defaultValue;isError;lang;defaultSendToDone;sendToTimeout;noPlaceRequired;constructor(n){super(n),this.state={confirmDialog:!1,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},this.isError={},n.schema&&(n.custom?this.defaultValue=n.schema.defaultFunc?this.executeCustom(n.schema.defaultFunc,n.data,n.customObj,n.oContext.instanceObj,n.arrayIndex,n.globalData):n.schema.default:n.schema.type!=="state"&&(this.defaultValue=n.schema.defaultFunc?this.execute(n.schema.defaultFunc,n.schema.default,n.data,n.arrayIndex,n.globalData):n.schema.default)),this.lang=j.I18n.getLanguage()}componentDidMount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr,this.onUpdate);const n=["select","autocomplete","autocompleteSendTo"];if(this.defaultValue!==void 0){const i=K.getValue(this.props.data,this.props.attr);(i===void 0||n.includes(this.props.schema.type)&&(i===""||i===null))&&setTimeout(()=>{this.props.custom?this.props.onChange(this.props.attr,this.defaultValue,()=>setTimeout(()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data),100)):(K.setValue(this.props.data,this.props.attr,this.defaultValue),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)))},100)}else this.props.schema.defaultSendTo&&this.sendTo()}sendTo(){if(this.props.alive){this.defaultSendToDone=!0;let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}else n={attr:this.props.attr,value:K.getValue(this.props.data,this.props.attr)};n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.defaultSendTo,n).then(i=>{i!=null&&(this.props.custom?this.props.onChange(this.props.attr,i,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data)):(K.setValue(this.props.data,this.props.attr,i),this.props.onChange(this.props.data,void 0,()=>this.props.oContext.forceUpdate([this.props.attr],this.props.data))))})}else this.defaultSendToDone=!1,this.props.schema.allowSaveWithError||this.onError(this.props.attr,j.I18n.t("ra_Instance %s is not alive",this.props.oContext.instance.toString()))}componentWillUnmount(){this.props.oContext.registerOnForceUpdate&&this.props.oContext.registerOnForceUpdate(this.props.attr),this.sendToTimeout&&(clearTimeout(this.sendToTimeout),this.sendToTimeout=null)}onUpdate=n=>{const i=K.getValue(n||this.props.data,this.props.attr)||"";this.state.value!==i?this.setState({value:i}):this.forceUpdate()};static getValue(n,i){if(typeof i=="string")return K.getValue(n,i.split("."));if(i.length===1)return n[i[0]];const u=i.shift();if(typeof u=="string"&&typeof n[u]=="object")return K.getValue(n[u],i)}static setValue(n,i,u){if(typeof i=="string"){K.setValue(n,i.split("."),u);return}if(i.length===1)u===null?delete n[i[0]]:n[i[0]]=u;else{const v=i.shift();if(typeof v!="string")return;(!n[v]||typeof n[v]=="object")&&(n[v]=n[v]||{}),K.setValue(n[v],i,u)}}getText(n,i){if(!n)return"";if(typeof n=="string"){const u=i?n:j.I18n.t(n);return u.includes("${")?this.getPattern(u,null,i):u}return _n(n)?n.func?typeof n.func=="object"?this.getPattern(n.func[this.lang]||n.func.en||"",null,!0):this.getPattern(n.func,null,i):n[this.lang]||n.en||"":n.toString()}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:u=>this.setState({confirmDialog:!1},()=>{if(u){if(this.state.confirmCallback){const o=this.state.confirmCallback;this.setState({confirmCallback:null},()=>o(!0));return}const v=JSON.parse(JSON.stringify(this.props.data));this.state.confirmDepAttr&&K.setValue(v,this.state.confirmDepAttr,this.state.confirmDepNewValue),K.setValue(v,this.state.confirmAttr,this.state.confirmNewValue),this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null},()=>this.props.onChange(v))}else{const v=this.state.confirmCallback;this.setState({confirmDialog:!1,confirmDepAttr:null,confirmDepNewValue:null,confirmNewValue:null,confirmAttr:null,confirmData:null,confirmCallback:null},()=>{v&&v(!1)})}})})}getIcon(n){n=n||this.props.schema.icon;let i=null;return n==="auth"?i=M.createElement(Z.Key,null):n==="send"?i=M.createElement(Z.Send,null):n==="web"?i=M.createElement(Z.Public,null):n==="warning"?i=M.createElement(Z.Warning,null):n==="error"?i=M.createElement(Z.Error,null):n==="info"?i=M.createElement(Z.Info,null):n==="search"?i=M.createElement(Z.Search,null):n==="book"?i=M.createElement(Z.MenuBook,null):n==="help"?i=M.createElement(Z.Help,null):n==="upload"?i=M.createElement(Z.UploadFile,null):n==="edit"?i=M.createElement(Z.Edit,null):n==="user"?i=M.createElement(Z.Person,null):n==="group"?i=M.createElement(Z.Group,null):n==="delete"?i=M.createElement(Z.Delete,null):n==="refresh"?i=M.createElement(Z.Refresh,null):n==="add"?i=M.createElement(Z.Add,null):n==="unpair"?i=M.createElement(Z.LinkOff,null):n==="pair"?i=M.createElement(Z.Link,null):n==="save"?i=M.createElement(Z.Save,null):n==="open"?i=M.createElement(Z.OpenInNew,null):n&&((n.endsWith(".png")||n.endsWith(".svg")||n.endsWith(".jpg"))&&!n.startsWith("http://")&&!n.startsWith("https://")&&(n=`./adapter/${this.props.oContext.adapterName}/${n}`),i=M.createElement(j.Icon,{src:n,style:{width:22,height:22}})),i}onChangeAsync(n,i){return new Promise(u=>{const v=this.onChange(n,i,u);v instanceof Promise&&v.catch(o=>console.error(`Cannot set value: ${o}`))})}onChange(n,i,u){const v=JSON.parse(JSON.stringify(this.props.data));if(K.setValue(v,n,i),this.props.schema.confirm&&this.execute(this.props.schema.confirm.condition,!1,v,this.props.arrayIndex,this.props.globalData))return new Promise(h=>{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmData:null},()=>{typeof u=="function"?u():h()})});if(this.props.schema.confirmDependsOn)for(let h=0;h{this.setState({confirmDialog:!0,confirmNewValue:i,confirmAttr:n,confirmDepNewValue:a,confirmDepAttr:p.attr,confirmData:p.confirm},()=>{typeof u=="function"?u():d()})})}}const o=[];if(this.props.schema.onChangeDependsOn)for(let h=0;hu&&u()),o!=null&&o.length&&o.forEach((h,p)=>setTimeout(()=>this.props.onChange(h,K.getValue(v,h)),p*50))):this.props.onChange(v,void 0,()=>{o.length&&this.props.oContext.forceUpdate(o,v),u&&u()}),Promise.resolve()}execute(n,i,u,v,o){let h;if(_n(n))h=n.func;else if(typeof n=="string")h=n;else return n;if(!h)return i;try{return new Function("data","originalData","_system","_alive","_common","_socket","_instance","arrayIndex","globalData","_changed",h.includes("return")?h:`return ${h}`)(u||this.props.data,this.props.originalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.oContext.instance,v,o,this.props.changed)}catch(p){return console.error(`Cannot execute ${JSON.stringify(n)}: ${p}`),i}}executeCustom(n,i,u,v,o,h){let p;if(_n(n))p=n.func;else if(typeof n=="string")p=n;else return n;if(!p)return null;try{return new Function("data","originalData","_system","instanceObj","customObj","_socket","arrayIndex","globalData","_changed",p.includes("return")?p:`return ${p}`)(i||this.props.data,this.props.originalData,this.props.oContext.systemConfig,v,u,this.props.oContext.socket,o,h,this.props.changed)}catch(a){return console.error(`Cannot execute ${p}: ${a}`),null}}calculate(n){let i,u,v,o;return this.props.custom?(i=n.validator?!this.executeCustom(n.validator,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?u=!0:u=n.disabled?this.executeCustom(n.disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.executeCustom(n.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!1,o=n.defaultFunc?this.executeCustom(n.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):n.default):(i=n.validator?!this.execute(n.validator,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.disabled===!0?u=!0:u=n.disabled?this.execute(n.disabled,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,n.hidden===!0?v=!0:v=n.hidden?this.execute(n.hidden,!1,this.props.data,this.props.arrayIndex,this.props.globalData):!1,o=n.defaultFunc?this.execute(n.defaultFunc,n.default,this.props.data,this.props.arrayIndex,this.props.globalData):n.default),{error:i,disabled:u,hidden:v,defaultValue:o}}onError(n,i){i?this.isError[n]=i:delete this.isError[n],this.props.onError&&this.props.onError(n,i)}renderItem(n,i,u){return this.getText(this.props.schema.label)||this.getText(this.props.schema.text)}renderHelp(n,i,u){return i?M.createElement("a",{href:i,target:"_blank",rel:"noreferrer",style:{color:this.props.oContext.themeType==="dark"?"#a147ff":"#5b238f",textDecoration:"underline"}},this.getText(n,u)):(n=this.getText(n,u)||"",n&&(n.includes("")||n.includes(""))?j.Utils.renderTextWithA(n):n)}static escapeString(n,i){return typeof n!="string"?"":(n=n.replace(/`/g,"\\`"),n=n.replace(/\${([^}]+)}/g,(u,v)=>{if(v&&typeof v=="string"&&v.startsWith("data.")){const o=K.getValue(i,v.replace(/^data\./,""));if(typeof o=="string"&&o.includes('"'))return`\${${v}.replace(/"/g, '\\\\"')}`}return u}),n)}getPattern(n,i,u){if(i=i||this.props.data,!n)return"";let v;typeof n=="object"?n.func?v=n.func:(console.log(`Object must be stringified: ${JSON.stringify(n)}`),v=JSON.stringify(n)):v=n;try{if(this.props.custom)return new Function("data","originalData","arrayIndex","globalData","_system","instanceObj","customObj","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.oContext.instanceObj,this.props.customObj,this.props.oContext.socket,this.props.changed);const h=new Function("data","originalData","arrayIndex","globalData","_system","_alive","_common","_socket","_changed",`return \`${K.escapeString(v,i)}\``)(i,this.props.originalData,this.props.arrayIndex,this.props.globalData,this.props.oContext.systemConfig,this.props.alive,this.props.common,this.props.oContext.socket,this.props.changed);return u?h:j.I18n.t(h)}catch(o){return console.error(`Cannot execute ${v}: ${o}`),v}}render(){const n=this.props.schema;if(!n||this.props.expertMode===!1&&n.expertMode)return null;this.props.alive&&this.defaultSendToDone===!1&&(this.sendToTimeout=setTimeout(()=>{this.sendToTimeout=null,this.sendTo()},200));const{error:i,disabled:u,hidden:v,defaultValue:o}=this.calculate(n);if(v){if(Object.keys(this.isError).length&&(setTimeout(a=>Object.keys(a).forEach(d=>this.props.onError(d)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}),n.hideOnlyControl){const a=M.createElement(N.Grid2,{size:{xs:n.xs||xs,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}});return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),a):a}return null}n.validatorNoSaveOnError&&(i&&!Object.keys(this.isError).length?(this.isError={[this.props.attr]:n.validatorErrorText?j.I18n.t(n.validatorErrorText):!0},setTimeout(a=>Object.keys(a).forEach(d=>this.props.onError(d,a[d])),100,JSON.parse(JSON.stringify(this.isError)))):!i&&Object.keys(this.isError).length&&(setTimeout(a=>Object.keys(a).forEach(d=>this.props.onError(d)),100,JSON.parse(JSON.stringify(this.isError))),this.isError={}));const h=this.renderItem(i,u||this.props.commandRunning||this.props.disabled,o);if(this.noPlaceRequired)return h;const p=M.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},style:{marginBottom:0,textAlign:"left",width:n.type==="divider"||n.type==="header"?n.width||"100%":void 0,...n.style,...this.props.oContext.themeType==="dark"?n.darkStyle:{}}},this.props.schema.defaultSendTo&&this.props.schema.button?M.createElement(N.Grid2,{container:!0,style:{width:"100%"}},M.createElement(N.Grid2,{flex:1},h),M.createElement(N.Grid2,null,M.createElement(N.Button,{disabled:u,variant:"outlined",onClick:()=>this.sendTo(),title:this.props.schema.buttonTooltip?this.getText(this.props.schema.buttonTooltip,this.props.schema.buttonTooltipNoTranslation):j.I18n.t("ra_Request data by instance")},this.getText(this.props.schema.button)))):h);return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),this.renderDialogConfirm(),p):this.state.confirmDialog?M.createElement(M.Fragment,null,this.renderDialogConfirm(),p):p}}const Ge={fullWidth:{width:"100%"},accordionSummary:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)"}),accordionTitle:{},toolbar:L=>({backgroundColor:L.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"rgba(0, 0, 0, 0.08)",borderRadius:"3px"}),tooltip:{pointerEvents:"none"}};class $s extends K{typingTimer=null;constructor(n){super(n),this.props.schema.items=this.props.schema.items||[]}componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr)||[];Array.isArray(n)||(n=[]),this.setState({value:n,activeIndex:-1,iteration:0})}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),super.componentWillUnmount()}itemAccordion(n,i){const{value:u}=this.state,{schema:v}=this.props,o={type:"panel",items:v.items.reduce((h,p)=>(h[p.attr]=p,h),{}),style:{marginLeft:"-8px",marginTop:"10px",marginBottom:"10px"}};return M.createElement($t,{oContext:this.props.oContext,index:i+this.state.iteration,arrayIndex:i,changed:this.props.changed,expertMode:this.props.expertMode,globalData:this.props.data,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:n,custom:!0,schema:o,originalData:this.props.originalData,onChange:(h,p)=>{const a=JSON.parse(JSON.stringify(u));a[i][h]=p,this.setState({value:a},()=>this.onChangeWrapper(a))},onError:(h,p)=>this.onError(h,p),table:this.props.table})}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),u=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof u[this.props.schema.clone]=="string"){let v=1,o=u[this.props.schema.clone];const h=o.match(/(\d+)$/);for(h?(o=o.replace(h[0],""),v=parseInt(h[0],10)+1):o+="_";i.find(p=>p[this.props.schema.clone]===o+v.toString());)v++;u[this.props.schema.clone]=`${u[this.props.schema.clone]}_${v}`}i.splice(n,0,u),this.setState({value:i,activeIndex:-1,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))};onChangeWrapper=n=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout(i=>{this.typingTimer=null;const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>this.onError(v))},300,n)};onAdd=()=>{const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),u=n.items&&n.items.reduce((v,o)=>{let h;return o.defaultFunc?this.props.custom?h=o.defaultFunc?this.executeCustom(o.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:h=o.defaultFunc?this.execute(o.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:h=o.default===void 0?null:o.default,v[o.attr]=h,v},{});i.push(u),this.setState({value:i,activeIndex:i.length-1},()=>this.onChangeWrapper(i))};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n-1,0,u);const v=this.state.activeIndex-1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n+1,0,u);const v=this.state.activeIndex+1;this.setState({value:i,activeIndex:v,iteration:this.state.iteration+1e4},()=>this.onChangeWrapper(i))}renderItem(){const{schema:n}=this.props,{value:i}=this.state;return i?M.createElement(N.Paper,null,n.label||!n.noDelete?M.createElement(N.Toolbar,{variant:"dense"},n.label?M.createElement(N.Typography,{variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)):null,n.noDelete?null:M.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},M.createElement(Z.Add,null))):null,i.map((u,v)=>M.createElement(N.Accordion,{key:`${u}_${v}`,expanded:this.state.activeIndex===v,onChange:(o,h)=>this.setState({activeIndex:h?v:-1})},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,Ge.fullWidth,Ge.accordionSummary)},M.createElement(N.Typography,{style:Ge.accordionTitle},u[n.titleAttr])),M.createElement(N.AccordionDetails,{style:{...n.style,...this.props.oContext.themeType?n.darkStyle:void 0}},this.itemAccordion(i[v],v),M.createElement(N.Toolbar,{sx:Ge.toolbar},v?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(v)},M.createElement(Z.ArrowUpward,null))):M.createElement("div",{style:Ge.buttonEmpty}),vthis.onMoveDown(v)},M.createElement(Z.ArrowDownward,null))):M.createElement("div",{style:Ge.buttonEmpty}),n.noDelete?null:M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(v)},M.createElement(Z.Delete,null))),n.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:Ge.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(v)},M.createElement(Z.ContentCopy,null))):null)))),!n.noDelete&&i.length>0?M.createElement(N.Toolbar,{variant:"dense",sx:Ge.rootTool},M.createElement(N.IconButton,{size:"small",color:"primary",onClick:this.onAdd},M.createElement(Z.Add,null))):null,n.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null):null}}const pi={root:{width:"100%"},notAlive:{color:"#a30000"}};class Ts extends K{componentDidMount(){super.componentDidMount();const n=this.getInstance();this.props.oContext.socket.getState(`${n}.alive`).then(i=>this.setState({alive:!!(i&&i.val),instance:n}))}getInstance(){let n=this.props.schema.instance||`${this.props.oContext.adapterName}.${this.props.oContext.instance}`;return n.includes("${")&&(n=this.getPattern(n,null,!0)),n&&!n.startsWith("system.adapter.")&&(n=`system.adapter.${n}`),n}renderItem(){if(this.getInstance()!==this.state.instance&&setTimeout(()=>{const i=this.getInstance();i?this.props.oContext.socket.getState(`${i}.alive`).then(u=>this.setState({alive:!!(u&&u.val),instance:i})):this.setState({alive:null,instance:i})},200),this.state.alive!==!1&&this.state.alive!==!0)return null;const n=this.state.instance.replace(/^system.adapter./,"");return M.createElement("div",{style:{...pi.root,...this.state.alive?void 0:pi.notAlive}},this.state.alive?this.props.schema.textAlive!==void 0?this.props.schema.textAlive?j.I18n.t(this.props.schema.textAlive,n):"":j.I18n.t("ra_Instance %s is alive",n):this.props.schema.textNotAlive!==void 0?this.props.schema.textNotAlive?j.I18n.t(this.props.schema.textNotAlive,n):"":j.I18n.t("ra_Instance %s is not alive",n))}}class _s extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options.map(u=>typeof u=="string"?{label:u,value:u}:JSON.parse(JSON.stringify(u)));Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}renderItem(n,i){if(!this.state.selectOptions)return null;let u;const v=JSON.parse(JSON.stringify(this.state.selectOptions));return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE?([...this.state.value].filter(h=>!v.find(p=>typeof p=="object"?p.value===h:p===h)).forEach(h=>v.push({label:h.toString(),value:h})),u={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(u)):(u=this.state.value!==null&&this.state.value!==void 0&&v.find(h=>typeof h=="object"?h.value==this.state.value:h==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!u&&this.props.schema.freeSolo&&(u={value:this.state.value,label:this.state.value},v.push(u))),M.createElement(N.Autocomplete,{fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,value:u,options:v,isOptionEqualToValue:(h,p)=>h.value===p.value,filterOptions:(h,p)=>{const a=h.filter(d=>p.inputValue===""?!0:d.label.toLowerCase().includes(p.inputValue.toLowerCase())||d.value.toLowerCase().includes(p.inputValue.toLowerCase()));return this.props.schema.freeSolo&&p.inputValue!==""&&a.push({label:p.inputValue,value:p.inputValue}),a},onInputChange:h=>{if(!h||!this.props.schema.freeSolo)return;const p=h.target.value;p!==this.state.value&&this.setState({value:p},()=>this.onChange(this.props.attr,p))},onChange:(h,p)=>{const a=typeof p=="object"?p?p.value:"":p;a!==this.state.value&&this.setState({value:a},()=>this.onChange(this.props.attr,a))},getOptionLabel:h=>typeof h=="object"?(h==null?void 0:h.label)??"":"",renderInput:h=>M.createElement(N.TextField,{variant:"standard",...h,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})})}}class ks extends K{initialized=!1;localContext;askInstance(){const n=K.getValue(this.props.data,this.props.attr),i=this.props.schema.options?this.props.schema.options.map(u=>typeof u=="string"?{label:u,value:u}:JSON.parse(JSON.stringify(u))):[];if(this.props.alive){let u=this.props.schema.data;if(u===void 0&&this.props.schema.jsonData){const v=this.getPattern(this.props.schema.jsonData,null,!0);try{typeof v=="string"&&(u=JSON.parse(v))}catch{console.error(`Cannot parse json data: ${JSON.stringify(u)}`)}}u===void 0&&(u=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",u).then(v=>{v&&Array.isArray(v)&&v.forEach(o=>i.push(typeof o=="string"?{label:o,value:o}:JSON.parse(JSON.stringify(o)))),Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})})}else Array.isArray(n)?(i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(n,i){if(this.props.alive){const h=this.getContext();(h!==this.localContext||!this.initialized)&&(this.localContext=h,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}let u;const v=this.state.selectOptions?JSON.parse(JSON.stringify(this.state.selectOptions)):[];return Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_LABEL?([...this.state.value].filter(h=>!v.find(p=>p.value===h)).forEach(h=>v.push({label:h.toString(),value:h})),u={label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE},v.unshift(u)):(u=this.state.value!==null&&this.state.value!==void 0&&v.find(h=>h.value==this.state.value),this.state.value!==null&&this.state.value!==void 0&&!u&&this.props.schema.freeSolo&&(u={value:this.state.value,label:this.state.value},v.push(u)),u=u||null),v.length?M.createElement(N.Autocomplete,{value:u,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,options:v,isOptionEqualToValue:(h,p)=>h.value===p.value,filterOptions:(h,p)=>{const a=h.filter(d=>p.inputValue===""?!0:d.label.toLowerCase().includes(p.inputValue.toLowerCase())||d.value.toLowerCase().includes(p.inputValue.toLowerCase()));return this.props.schema.freeSolo&&p.inputValue!==""&&a.push({label:p.inputValue,value:p.inputValue}),a},getOptionLabel:h=>(h==null?void 0:h.label)??"",onInputChange:h=>{if(!h||!this.props.schema.freeSolo)return;const p=h.target.value;p!==this.state.value&&this.setState({value:p},()=>this.onChange(this.props.attr,p))},onChange:(h,p)=>{const a=typeof p=="object"?p?p.value:"":p;a!==this.state.value&&this.setState({value:a},()=>this.onChange(this.props.attr,a))},renderInput:h=>M.createElement(N.TextField,{variant:"standard",...h,error:!!n,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:i})}):M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},onChange:h=>{const p=h.target.value;this.setState({value:p},()=>this.onChange(this.props.attr,(p||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const kn={fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Ms extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"";this.setState({value:u,showDialog:!1})}renderItem(n,i){const{schema:u,attr:v}=this.props,{value:o,showDialog:h}=this.state;return M.createElement(N.FormControl,{style:kn.fullWidth,variant:"standard"},u.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(u.label)):null,M.createElement("div",{style:kn.flex},M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:o??"",error:!!n,disabled:i,placeholder:this.getText(u.placeholder),label:this.getText(u.label),helperText:this.renderHelp(u.help,u.helpLink,u.noTranslation),onChange:p=>{const a=p.target.value;this.setState({value:a},()=>this.onChange(v,a))}}),M.createElement(N.Button,{color:"grey",disabled:i,style:kn.button,size:"small",variant:"outlined",onClick:()=>this.setState({showDialog:!0})},"...")),h?M.createElement(j.DialogCron,{title:j.I18n.t("ra_Define schedule"),simple:u.simple,complex:u.complex,cron:o,onClose:()=>this.setState({showDialog:!1}),cancel:j.I18n.t("ra_Cancel"),ok:j.I18n.t("ra_Ok"),theme:this.props.oContext.theme,onOk:p=>this.setState({showDialog:!1,value:p},()=>this.onChange(v,p))}):null)}}class Ls extends K{async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),u=(await this.props.oContext.socket.getCertificates()).filter(v=>{const o=this.props.attr.toLowerCase();return o.includes(v.type)||v.type==="public"&&o.includes("cert")||v.type==="private"&&(o.includes("priv")||o.includes("key"))?!0:!!(v.type==="chained"&&(o.includes("chain")||o.includes("ca")))}).map(v=>({label:v.name,value:v.name}));u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})}renderItem(n,i){var v,o;if(!this.state.selectOptions)return null;const u=(v=this.state.selectOptions)==null?void 0:v.find(h=>h.value===this.state.value);return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>this.getText(u==null?void 0:u.label,this.props.schema.noTranslation!==!1),onChange:h=>this.setState({value:h.target.value},()=>this.onChange(this.props.attr,this.state.value))},(o=this.state.selectOptions)==null?void 0:o.map(h=>M.createElement(N.MenuItem,{key:h.value,value:h.value,style:h.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(h.label,this.props.schema.noTranslation!==!1)))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const zt={fullWidth:{width:"100%"},leWidth:{width:620,marginBottom:10},certWidth:{width:200,marginRight:10}};class Is extends K{async componentDidMount(){var p;super.componentDidMount();const n=await this.props.oContext.socket.getCertificates(),i=[],u=[],v=[];let o=[];const h=await this.props.oContext.socket.getObject("system.certificates");(p=h==null?void 0:h.native)!=null&&p.collections?o=Object.keys(h.native.collections):o=null,n.forEach(a=>{a.type==="public"?i.push({label:a.name,value:a.name}):a.type==="private"?u.push({label:a.name,value:a.name}):a.type==="chained"?v.push({label:a.name,value:a.name}):(i.push({label:a.name,value:a.name}),u.push({label:a.name,value:a.name}),v.push({label:a.name,value:a.name}))}),i.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),v.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({certsPublicOptions:i,certsChainOptions:v,certsPrivateOptions:u,collectionsOptions:o})}renderItem(n,i){var e,t,r,l,s,c,f;if(!this.state.certsPublicOptions||!this.state.certsPrivateOptions||!this.state.certsChainOptions)return null;const u=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString(),v=K.getValue(this.props.data,this.props.schema.certPublicName||"certPublic"),o=K.getValue(this.props.data,this.props.schema.certPrivateName||"certPrivate"),h=K.getValue(this.props.data,this.props.schema.certChainedName||"certChained"),p=(e=this.state.certsPublicOptions)==null?void 0:e.find(m=>m.value===v),a=(t=this.state.certsPrivateOptions)==null?void 0:t.find(m=>m.value===o),d=(r=this.state.certsChainOptions)==null?void 0:r.find(m=>m.value===h);return M.createElement("div",{style:zt.fullWidth},this.state.collectionsOptions?M.createElement(N.FormControl,{style:zt.leWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},"Let's encrypt"),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:u,onChange:m=>this.onChange(this.props.schema.leCollectionName||"leCollection",m.target.value==="false"?!1:m.target.value==="true"?!0:m.target.value)},M.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),M.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(l=this.state.collectionsOptions)==null?void 0:l.map(m=>M.createElement(N.MenuItem,{key:m,value:m},m)))):null,this.state.collectionsOptions?M.createElement("br",null):null,this.state.collectionsOptions&&u!=="false"?M.createElement("div",null,j.I18n.t("ra_Fallback custom certificates")):null,M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Public certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:v||"",renderValue:()=>this.getText(p==null?void 0:p.label),onChange:m=>this.onChange(this.props.schema.certPublicName||"certPublic",m.target.value)},(s=this.state.certsPublicOptions)==null?void 0:s.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Private certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:o||"",renderValue:()=>this.getText(a==null?void 0:a.label),onChange:m=>this.onChange(this.props.schema.certPrivateName||"certPrivate",m.target.value)},(c=this.state.certsPrivateOptions)==null?void 0:c.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))),M.createElement(N.FormControl,{style:zt.certWidth,variant:"standard"},M.createElement(N.InputLabel,{shrink:!0},j.I18n.t("ra_Chained certificate")),M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:h||"",renderValue:()=>this.getText(d==null?void 0:d.label),onChange:m=>this.onChange(this.props.schema.certChainedName||"certChained",m.target.value)},(f=this.state.certsChainOptions)==null?void 0:f.map((m,y)=>M.createElement(N.MenuItem,{key:`${m.value}_${y}`,value:m.value,style:m.value===K.NONE_VALUE?{opacity:.5}:{}},this.getText(m.label))))))}}class Fs extends K{async componentDidMount(){var u;super.componentDidMount();let n;const i=await this.props.oContext.socket.getObject("system.certificates");(u=i==null?void 0:i.native)!=null&&u.collections?n=Object.keys(i.native.collections):n=[],this.setState({collectionsOptions:n})}renderItem(n,i){var v;if(!this.state.collectionsOptions)return null;const u=(K.getValue(this.props.data,this.props.schema.leCollectionName||"leCollection")||"false").toString();return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:u,onChange:o=>this.onChange(this.props.schema.leCollectionName||"leCollection",o.target.value==="false"?!1:o.target.value==="true"?!0:o.target.value)},M.createElement(N.MenuItem,{key:"_false",value:"false",style:{fontWeight:"bold"}},j.I18n.t("ra_Do not use let's encrypt")),M.createElement(N.MenuItem,{key:"_true",value:"true",style:{fontWeight:"bold"}},j.I18n.t("ra_Use all available let's encrypt certificates")),(v=this.state.collectionsOptions)==null?void 0:v.map(o=>M.createElement(N.MenuItem,{key:o,value:o},o))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const We={fullWidth:{width:"100%"},licLabel:{fontWeight:"bold",minWidth:100,marginRight:10,textTransform:"capitalize",display:"inline-block"},errorTitle:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020"}),okTitle:L=>({color:L.palette.mode==="dark"?"#6fd56f":"#007c00"}),errorText:L=>({color:L.palette.mode==="dark"?"#e39191":"#b62020",mb:"30px"})};class ct extends K{componentDidMount(){super.componentDidMount(),this.setState({_error:"",running:!1,showLicenseData:null,foundSuitableLicense:!1,licenseOfflineCheck:!1,result:null,allLicenses:null,askForUpdate:!1,showLinkToProfile:!1})}renderErrorDialog(){if(this.state._error&&!this.state.showLicenseData){let n=this.state._error;return this.state.allLicenses&&(n=[M.createElement("div",{key:"error"},n)],n.push(M.createElement(N.Button,{key:"button",variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},j.I18n.t("iobroker.net"))),this.state.allLicenses.length?n.push(M.createElement(N.TableContainer,{key:"table"},M.createElement(N.Table,{size:"small"},M.createElement(N.TableHead,null,M.createElement(N.TableRow,null,M.createElement(N.TableCell,null,j.I18n.t("ra_Product")),M.createElement(N.TableCell,null,j.I18n.t("ra_Version")),M.createElement(N.TableCell,null,"UUID"),M.createElement(N.TableCell,null,j.I18n.t("ra_ValidTill")),M.createElement(N.TableCell,null,j.I18n.t("ra_Commercial")),M.createElement(N.TableCell,null,"ID"))),M.createElement(N.TableBody,null,this.state.allLicenses.map(i=>M.createElement(N.TableRow,{key:i.id},M.createElement(N.TableCell,{sx:i.validName?null:We.errorText},i.license.product),M.createElement(N.TableCell,{sx:i.validVersion?null:We.errorText},i.license.version),M.createElement(N.TableCell,{sx:i.validUuid?null:We.errorText},i.license.uuid||"--"),M.createElement(N.TableCell,{sx:i.validTill?null:We.errorText},i.license.validTill&&i.license.validTill!=="0000-00-00 00:00:00"?new Date(i.license.validTill).toLocaleDateString():"--"),M.createElement(N.TableCell,null,i.license.invoice!=="free"?i.license.invoice==="MANUALLY_CREATED"?"✓":i.license.invoice:"-"),M.createElement(N.TableCell,null,i.id))))))):(n.push(M.createElement("div",{key:"text1"},j.I18n.t("ra_No one license found in license manager"))),n.push(M.createElement("div",{key:"text2"},j.I18n.t("ra_Please create license"))))),M.createElement(N.Dialog,{open:!0,maxWidth:"xl",fullWidth:this.props.fullWidth!==void 0?this.props.fullWidth:!0,onClick:()=>this.setState({_error:"",allLicenses:null})},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Error")),M.createElement(N.DialogContent,null,M.createElement(N.DialogContentText,null,n)),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({_error:"",allLicenses:null}),color:"primary",autoFocus:!0,startIcon:M.createElement(Z.Check,null)},j.I18n.t("ra_Ok"))))}return null}renderMessageDialog(){if(this.state.showLicenseData){const n=[],i=this.state.showLicenseData;return Object.keys(i).forEach(u=>{if(!(i[u]===null||i[u]===void 0))if(typeof i[u]=="object"){const v=i[u];Object.keys(v).forEach(o=>{v[o]!==null&&v[o]!==void 0&&(typeof v[o]=="object"?n.push(M.createElement("div",{key:o},M.createElement("div",{style:We.licLabel},o,":"),JSON.stringify(v[o],null,2))):n.push(M.createElement("div",{key:o},M.createElement("div",{style:We.licLabel},u," -",o,":"),v[o].toString())))})}else n.push(M.createElement("div",{key:u},M.createElement("div",{style:We.licLabel},u.replace(/_/g," "),":"),i[u].toString()))}),n.push(M.createElement("div",{key:"checked"},M.createElement("div",{style:We.licLabel},j.I18n.t("ra_Checked"),":"),this.state.licenseOfflineCheck?j.I18n.t("ra_locally"):j.I18n.t("ra_via internet"))),M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showLicenseData:null})},M.createElement(N.DialogTitle,null,M.createElement(N.Box,{component:"span",sx:this.state.result?We.okTitle:We.errorTitle},j.I18n.t("ra_License %s",this.state.result?"OK":"INVALID"))),M.createElement(N.DialogContent,null,this.state.showLinkToProfile?M.createElement(N.Button,{variant:"contained",onClick:()=>window.open("https://iobroker.net/www/account/licenses","_blank")},"https://iobroker.net"):null,this.state._error?M.createElement(N.Box,{component:"div",sx:We.errorText},this.state._error):null,n),M.createElement(N.DialogActions,null,M.createElement(N.Button,{onClick:()=>this.setState({showLicenseData:null,_error:""}),color:"primary",variant:"contained"},j.I18n.t("ra_Close"))))}return null}static parseJwt(n){const u=n.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),v=decodeURIComponent(atob(u).split("").map(o=>`%${`00${o.charCodeAt(0).toString(16)}`.slice(-2)}`).join(""));try{return JSON.parse(v)}catch{return null}}static isVersionValid(n,i,u,v){if(!i||!n)return!0;let o=!0;const[h]=n.split(".");return i.startsWith(">=")?o=parseInt(h,10)>=parseInt(i.substring(2,10)):i.startsWith("<=")?o=parseInt(h,10)<=parseInt(i.substring(2,10)):i.startsWith(">")?o=parseInt(h,10)>parseInt(i.substring(1,10)):i.startsWith("<")?o=parseInt(h,10){const l=!r.validTill||r.validTill==="0000-00-00 00:00:00"||new Date(r.validTill).getTime()>d,s=(r.product||"").split("."),c=s[1]===n||n==="vis-2"&&s[1]==="vis",f=!e||!r.uuid||r.uuid===e,m=ct.isVersionValid(t,r.version,r.invoice,n);(!a||r.invoice!=="free")&&l&&c&&f&&m&&(a=r),u.push({id:r.id,validName:c,validUuid:f,validVersion:m,validTill:l,license:r})}),a&&(u.find(r=>r.id===a.id).used=!0)}return u}async checkLicense(n,i){var p,a,d;let u;if(this.props.schema.uuid){const e=await this.props.oContext.socket.getObject("system.meta.uuid");u=(p=e==null?void 0:e.native)==null?void 0:p.uuid}let v;if(this.props.schema.version){const e=await this.props.oContext.socket.getObject(`system.adapter.${i}`);v=(a=e==null?void 0:e.common)==null?void 0:a.version}const o=new AbortController;let h=setTimeout(()=>{h=null,o.abort()},5e3);try{const e=await window.fetch("https://iobroker.net/api/v1/public/cert/",{method:"POST",body:JSON.stringify({json:n,uuid:u}),headers:{"Content-Type":"text/plain"},signal:o.signal});h&&clearTimeout(h);const t=await e.text();let r;try{r=JSON.parse(t)}catch{}if(r!=null&&r.error)try{const l=ct.parseJwt(n),s=j.I18n.t(`ra_${l.error||r.error||"Unknown error"}`).replace(/^ra_/,"");return this.setState({_error:s,licenseOfflineCheck:!1,showLicenseData:l,result:!1,running:!1})}catch{return console.log("Cannot parse license"),this.setState({_error:r.error,result:!1,running:!1})}else{let l=null;try{l=ct.parseJwt(n)}catch{}if(r){const s=r.validTill||r.valid_till;if(s&&s!=="0000-00-00 00:00:00"&&new Date(s).getTime(){if(n){this.setState({askForUpdate:!1});try{await this.props.oContext.socket.updateLicenses(null,null)}catch(i){window.alert(j.I18n.t("ra_Cannot read licenses: %s",i));return}await this._onClick(!0)}else this.setState({askForUpdate:!1,running:!1})}}):null}async _onClick(n){const i=this.props.oContext.adapterName==="vis-2"?"vis":this.props.oContext.adapterName;this.setState({running:!0});let u,v;if(this.props.data.useLicenseManager){if(v=await this.findInLicenseManager(i),u=v.find(o=>o.used),u&&(u=u.license.json),!u&&!n){this.setState({askForUpdate:!0});return}}else u=this.props.data.license;u?await this.checkLicense(u,i):this.props.data.useLicenseManager?this.setState({_error:j.I18n.t("ra_Suitable license not found in license manager"),result:!1,running:!1,allLicenses:v}):this.setState({_error:j.I18n.t("ra_Please enter the license"),result:!1,running:!1})}renderItem(){return M.createElement("div",{style:We.fullWidth},M.createElement(N.Button,{variant:this.props.schema.variant||"outlined",color:this.props.schema.color||"primary",style:We.fullWidth,disabled:!this.props.data.license&&!this.props.data.useLicenseManager||this.state.running,startIcon:M.createElement(Z.Send,null),onClick:()=>this._onClick()},this.state.running?M.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label||"ra_Check license",this.props.schema.noTranslation)),this.renderMessageDialog(),this.renderErrorDialog(),this.renderAskForUpdate())}}class Os extends K{renderItem(n,i){const u=K.getValue(this.props.data,this.props.attr),v=Array.isArray(u);return M.createElement(N.FormControl,{style:{width:"100%"},variant:"standard"},M.createElement(N.FormControlLabel,{onClick:o=>{if(o.preventDefault(),o.stopPropagation(),!i){const h=this.onChange(this.props.attr,!u);h instanceof Promise&&h.catch(p=>console.error(`Cannot set value: ${p}`))}},control:M.createElement(N.Checkbox,{indeterminate:v,checked:!!u,onChange:o=>{let h;v?h=this.onChange(this.props.attr,!0):h=this.onChange(this.props.attr,o.target.checked),h instanceof Promise&&h.catch(p=>console.error(`Cannot set value: ${p}`))},disabled:i||this.props.schema.readOnly}),label:this.getText(this.props.schema.label)}),M.createElement(N.FormHelperText,{style:{color:"red"}},n?this.props.schema.validatorErrorText?j.I18n.t(this.props.schema.validatorErrorText):j.I18n.t("ra_Error"):null),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Rs={standard:N.Input,filled:is,outlined:N.OutlinedInput},Ns=L=>{const n=L.palette.mode==="light",i=n?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return{root:{},inputRoot:{display:"inline-flex",flexWrap:"wrap",flex:1,marginTop:0,minWidth:70,"&.mui-variant-outlined,&.mui-variant-filled":{boxSizing:"border-box"},"&.mui-variant-outlined":{paddingTop:"14px"},"&.mui-variant-filled":{paddingTop:"28px"}},input:{display:"inline-block",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",appearance:"none",WebkitTapHighlightColor:"rgba(0,0,0,0)",float:"left",flex:1},chipContainer:{display:"flex",flexFlow:"row wrap",alignItems:"center",cursor:"text",marginBottom:"-2px",minHeight:40},outlined:{"& input":{height:16,paddingTop:"4px",paddingBottom:"12px",marginTop:"4px",marginBottom:"4px"}},standard:{marginTop:"18px"},filled:{"& input":{height:22,marginBottom:"4px",marginTop:"4px",paddingTop:0},"$marginDense & input":{height:26}},labeled:{},label:{top:4,"&$outlined&:not($labelShrink)":{top:2,"$marginDense &":{top:5}},"&$filled&:not($labelShrink)":{top:15,"$marginDense &":{top:20}}},labelShrink:{top:0},helperText:{marginBottom:-20},focused:{},disabled:{},underline:{"&:after":{borderBottom:`2px solid ${L.palette.primary[n?"dark":"light"]}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:L.transitions.create("transform",{duration:L.transitions.duration.shorter,easing:L.transitions.easing.easeOut}),pointerEvents:"none"},"&$focused:after":{transform:"scaleX(1)"},"&$error:after":{borderBottomColor:L.palette.error.main,transform:"scaleX(1)"},"&:before":{borderBottom:`1px solid ${i}`,left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:L.transitions.create("border-bottom-color",{duration:L.transitions.duration.shorter}),pointerEvents:"none"},"&:hover:not($disabled):not($focused):not($error):before":{borderBottom:`2px solid ${L.palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${i}`}},"&$disabled:before":{borderBottomStyle:"dotted"}},error:{"&:after":{backgroundColor:L.palette.error.main,transform:"scaleX(1)"}},chip:{margin:"0 8px 8px 0",float:"left"},marginDense:{}}},rn={BACKSPACE:8,DELETE:46,LEFT_ARROW:37,RIGHT_ARROW:39},Bs=({value:L,isFocused:n,isDisabled:i,isReadOnly:u,handleClick:v,handleDelete:o,style:h},p)=>M.createElement(N.Chip,{key:p,style:{...h,pointerEvents:i||u?"none":void 0,backgroundColor:n?rs[300]:void 0},onClick:v,onDelete:o,label:L});class Ps extends M.Component{labelRef;labelNode=null;input;newChipKeyCodes;newChipKeys;actualInput=null;inputBlurTimeout=null;_keyPressed;_preventChipCreation;styles={};styleTheme=null;constructor(n){super(n),this.state={chips:n.defaultValue||[],focusedChip:null,inputValue:"",isFocused:!1,chipsUpdated:!1,prevPropsValue:[],variant:this.props.variant||"standard"},this.newChipKeyCodes=n.newChipKeyCodes||[13],this.newChipKeys=n.newChipKeys||["Enter"],this.labelRef=M.createRef(),this.input=M.createRef()}componentDidMount(){this.state.variant==="outlined"&&(this.labelNode=ns.findDOMNode(this.labelRef.current),this.forceUpdate())}componentWillUnmount(){this.inputBlurTimeout&&clearTimeout(this.inputBlurTimeout)}static getDerivedStateFromProps(n,i){let u=null;return n.value&&n.value.length!==i.prevPropsValue.length&&(u={prevPropsValue:n.value},n.clearInputValueOnChange&&(u.inputValue="")),n.clearInputValueOnChange&&n.value&&n.value.length!==i.prevPropsValue.length&&(u={prevPropsValue:n.value,inputValue:""}),n.disabled&&(u={...u,focusedChip:null}),!i.chipsUpdated&&n.defaultValue&&(u={...u,chips:n.defaultValue}),u}focus=()=>{var n;(n=this.actualInput)==null||n.focus(),this.state.focusedChip&&this.setState({focusedChip:null})};handleInputBlur=n=>{this.props.onBlur&&this.props.onBlur(n),this.setState({isFocused:!1}),this.state.focusedChip&&this.setState({focusedChip:null});const i=n.target.value;let u;switch(this.props.blurBehavior||"clear"){case"add-or-clear":u={clearInputOnFail:!0};case"add":if(this.props.delayBeforeAdd){const v=(this.props.value||this.state.chips).length;this.inputBlurTimeout=setTimeout(()=>{const o=(this.props.value||this.state.chips).length;v===o?this.handleAddChip(i,u):this.clearInput()},150)}else this.handleAddChip(i,u);break;case"clear":this.clearInput();break}};handleInputFocus=n=>{this.setState({isFocused:!0}),this.props.onFocus&&this.props.onFocus(n)};handleKeyDown=n=>{const{focusedChip:i}=this.state;if(this._keyPressed=!1,this._preventChipCreation=!1,this.props.onKeyDown&&(this.props.onKeyDown(n),n.isDefaultPrevented()))return;const u=this.props.value||this.state.chips;if(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key)){this.handleAddChip(n.target.value)!==!1&&n.preventDefault();return}switch(n.keyCode){case rn.BACKSPACE:n.target.value===""&&(i?(this.handleDeleteChip(u[i],i),i&&this.setState({focusedChip:i-1})):this.setState({focusedChip:u.length-1}));break;case rn.DELETE:n.target.value===""&&i&&(this.handleDeleteChip(u[i],i),i<=u.length-1&&this.setState({focusedChip:i}));break;case rn.LEFT_ARROW:i===null&&n.target.value===""&&u.length?this.setState({focusedChip:u.length-1}):i!==null&&i>0&&this.setState({focusedChip:i-1});break;case rn.RIGHT_ARROW:i!==null&&i{!this._preventChipCreation&&(this.newChipKeyCodes.includes(n.keyCode)||this.newChipKeys.includes(n.key))&&this._keyPressed?this.clearInput():this.updateInput(n.target.value),this.props.onKeyUp&&this.props.onKeyUp(n)};handleUpdateInput=n=>{(this.props.inputValue===null||this.props.inputValue===void 0)&&this.updateInput(n.target.value),this.props.onUpdateInput&&this.props.onUpdateInput(n)};handleAddChip(n,i){if(this.props.onBeforeAdd&&!this.props.onBeforeAdd(n))return this._preventChipCreation=!0,i&&i.clearInputOnFail&&this.clearInput(),!1;this.clearInput();const u=this.props.value||this.state.chips;return n.trim().length?((this.props.allowDuplicates||!u.includes(n))&&(this.props.value&&this.props.onAdd?this.props.onAdd(n):this.updateChips([...this.state.chips,n])),!0):!1}handleDeleteChip(n,i){if(this.props.value)this.props.onDelete&&this.props.onDelete(n,i);else{const u=this.state.chips.slice();if(u.splice(i,1)){let o=this.state.focusedChip;this.state.focusedChip===i?o=null:this.state.focusedChip>i&&(o=this.state.focusedChip-1),this.updateChips(u,{focusedChip:o})}}}updateChips(n,i={}){this.setState({chips:n,chipsUpdated:!0,...i}),this.props.onChange&&this.props.onChange(n)}clearInput(){this.updateInput("")}updateInput(n){this.setState({inputValue:n})}setActualInputRef=n=>{this.actualInput=n,this.props.inputRef&&this.props.inputRef(n)};render(){const{alwaysShowPlaceholder:n,chipRenderer:i=Bs,className:u,disabled:v,disableUnderline:o,error:h,FormHelperTextProps:p,fullWidth:a,fullWidthInput:d,helperText:e,id:t,InputProps:r={},InputLabelProps:l={},inputValue:s,label:c,placeholder:f,readOnly:m,required:y,rootRef:D,value:E,margin:b}=this.props,g=this.state.variant;this.styleTheme!==this.props.theme.palette.mode&&(this.styleTheme=this.props.theme.palette.mode,this.styles=j.Utils.getStyle(this.props.theme,Ns));let S=E||this.state.chips||[];Array.isArray(S)||(S=(S||"").toString().split(/[,\s]+/).map(C=>C.trim()));const T=s??this.state.inputValue,k=(this.props.value||T).length||T.length,_=typeof l.shrink=="boolean"?l.shrink:c!==null&&(k||this.state.isFocused||S.length),O=S.map((C,w)=>i({value:C,isDisabled:!!v,isReadOnly:m,isFocused:this.state.focusedChip===w,handleClick:()=>this.setState({focusedChip:w}),handleDelete:()=>this.handleDeleteChip(C,w),style:this.styles.chip},w.toString())),$={};g==="outlined"&&($.notched=!!_,$.labelWidth=_&&this.labelNode&&this.labelNode.offsetWidth||0),g!=="standard"?$.startAdornment=O:r.disableUnderline=!0;const A=Rs[g];return M.createElement(N.FormControl,{ref:D,fullWidth:a,className:u,sx:{...this.styles.root,...b==="dense"?this.styles.marginDense:{}},error:h,required:S.length>0?void 0:y,onClick:this.focus,disabled:v,variant:g,component:"div",margin:b},c&&M.createElement(N.InputLabel,{htmlFor:t,sx:{"&.MuiInputLabel-root":this.styles.label,"&.MuiInputLabel-shrink":this.styles.labelShrink},shrink:!!_,focused:this.state.isFocused,variant:g,ref:this.labelRef,required:y,component:"label",...l},c),M.createElement(N.Box,{component:"div",id:"input-chip-container",sx:{...this.styles[g],...this.styles.chipContainer,...this.state.isFocused?this.styles.focused:void 0,...!o&&g==="standard"?this.styles.underline:void 0,...v?this.styles.disabled:void 0,...c?this.styles.labeled:void 0,...h?this.styles.error:void 0}},g==="standard"&&O,M.createElement(A,{ref:this.input,className:`mui-variant-${this.styles[g]} ${c?"mui-chip-with-label":"mui-chip-no-label"}`,sx:{"&.MuiInputBase-input":{...this.styles.input,...this.styles[g]},"&.MuiInputBase-root":{...this.styles.inputRoot}},id:t,value:T,onChange:this.handleUpdateInput,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,inputRef:this.setActualInputRef,disabled:v,fullWidth:d,placeholder:!k&&(_||c===null||c===void 0)||n?f:null,readOnly:m,...r,...$})),e&&M.createElement(N.FormHelperText,{...p,className:p==null?void 0:p.className,style:this.styles.helperText},e))}}class fi extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i);if(this.props.schema.delimiter&&typeof u=="string"){const v=u.split(this.props.schema.delimiter).map(o=>o.trim()).filter(o=>o);this.setState({value:v})}else this.setState({value:u||[]})}renderItem(n,i){const{attr:u,schema:v}=this.props,{value:o}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},M.createElement(Ps,{value:o,disabled:!!i,label:this.getText(v.label),error:!!n,onAdd:h=>{const p=JSON.parse(JSON.stringify(o));p.push(h),this.setState({value:p},()=>{let a;this.props.schema.delimiter?a=this.onChange(u,p.join(`${this.props.schema.delimiter} `)):a=this.onChange(u,p),a instanceof Promise&&a.catch(d=>console.error(d))})},theme:this.props.oContext.theme,onDelete:(h,p)=>{const a=JSON.parse(JSON.stringify(o));a.splice(p,1),this.setState({value:a},()=>{let d;this.props.schema.delimiter?d=this.onChange(u,a.join(`${this.props.schema.delimiter} `)):d=this.onChange(u,a),d instanceof Promise&&d.catch(e=>console.error(e))})}}),M.createElement(N.FormHelperText,null,j.I18n.t("ra_Press ENTER Key to add new item")),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Ws extends K{renderColorDialog(){return!!this.state.showColorDialog&&M.createElement(N.Dialog,{onClose:()=>this.setState({showColorDialog:!1}),open:this.state.showColorDialog},M.createElement(qr,{color:this.state.colorDialogValue,onChange:n=>this.setState({colorDialogValue:n.hex},()=>this.onChange(this.props.attr,this.state.colorDialogValue))}))}renderItem(n,i){const u=K.getValue(this.props.data,this.props.attr);let v=j.Utils.isUseBright(u,null);return v===null&&(v=void 0),M.createElement(M.Fragment,null,this.renderColorDialog(),M.createElement(N.TextField,{variant:"standard",disabled:!!i,style:{minWidth:100,width:"calc(100% - 8px)"},label:this.getText(this.props.schema.label),value:u||"",onClick:()=>!this.props.schema.readOnly&&this.setState({showColorDialog:!0,colorDialogValue:u||""}),onChange:o=>{const h=o.target.value,p=this.onChange(this.props.attr,h);p instanceof Promise&&p.catch(a=>console.error(`Cannot set value: ${a}`))},slotProps:{htmlInput:{style:{backgroundColor:u,color:v?"#FFF":"#000"},readOnly:this.props.schema.readOnly||!1},input:{endAdornment:!this.props.schema.readOnly&&u&&!this.props.schema.noClearButton?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:o=>{o.stopPropagation();const h=this.onChange(this.props.attr,"");h instanceof Promise&&h.catch(p=>console.error(`Cannot set value: ${p}`))}},M.createElement(Z.Close,null)):void 0},inputLabel:{shrink:!0}}}))}}const Mn={width:{width:"calc(100% - 85px)"},width50:{width:120,marginRight:5}};class Hs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n});const i={};this.props.schema.useSystemName&&(i.useSystem=!!K.getValue(this.props.data,this.props.schema.useSystemName)),this.props.schema.longitudeName&&this.props.schema.latitudeName?(i.longitude=K.getValue(this.props.data,this.props.schema.longitudeName),i.latitude=K.getValue(this.props.data,this.props.schema.latitudeName),!i.longitude&&!i.latitude&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300)):!K.getValue(this.props.data,this.props.attr)&&this.props.schema.autoInit&&setTimeout(()=>this.getCoordinates(),300),Object.keys(i).length&&setTimeout(()=>this.setState(i),50)}async getSystemCoordinates(){const n=await this.props.oContext.socket.getCompactSystemConfig();if(n!=null&&n.common&&(n.common.longitude||n.common.latitude))if(window.alert(j.I18n.t("ra_Used system settings")),this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.common.longitude,latitude:n.common.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.common.longitude),await this.onChange(this.props.schema.latitudeName,n.common.latitude)});else{const i=n.common.latitude+(this.props.schema.divider||",")+n.common.longitude;this.setState({value:i},()=>{const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))})}else window.alert(j.I18n.t("ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser"))}getCoordinates(){navigator.geolocation?navigator.geolocation.getCurrentPosition(async n=>{if(n!=null&&n.coords)if(this.props.schema.longitudeName&&this.props.schema.latitudeName)this.setState({longitude:n.coords.longitude,latitude:n.coords.latitude},async()=>{await this.onChange(this.props.schema.longitudeName,n.coords.longitude||""),await this.onChange(this.props.schema.latitudeName,n.coords.latitude||"")});else{const i=n.coords.latitude+(this.props.schema.divider||",")+n.coords.longitude;this.setState({value:i},()=>{const u=this.onChange(this.props.attr,i);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))})}else await this.getSystemCoordinates()},async n=>{console.error(`Cannot determine coordinates from browser: ${n.message}`),await this.getSystemCoordinates()}):this.getSystemCoordinates().catch(n=>{console.error(`Cannot determine coordinates: ${n}`)})}renderItem(n,i){return M.createElement(M.Fragment,null,this.props.schema.useSystemName?M.createElement(N.FormControlLabel,{control:M.createElement(N.Checkbox,{checked:!!this.state.useSystem,onChange:u=>{const v=u.target.checked;v&&this.getSystemCoordinates().catch(o=>console.error(`Cannot determine coordinates: ${o}`)),this.setState({useSystem:v},()=>this.onChange(this.props.schema.useSystemName,v))}}),label:j.I18n.t("ra_Use system settings for position")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.longitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:u=>{const v=u.target.value;this.setState({longitude:v},()=>{const o=this.onChange(this.props.schema.longitudeName,(v||"").trim());o instanceof Promise&&o.catch(h=>console.error(`Cannot set value: ${h}`))})},label:j.I18n.t("ra_Longitude")}):null,this.props.schema.longitudeName&&this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width50,value:this.state.latitude??"",error:!!n,disabled:this.state.useSystem||!!i,onChange:u=>{const v=u.target.value;this.setState({latitude:v},()=>this.onChange(this.props.schema.latitudeName,(v||"").trim()))},label:j.I18n.t("ra_Latitude")}):null,!this.props.schema.longitudeName||!this.props.schema.latitudeName?M.createElement(N.TextField,{variant:"standard",style:Mn.width,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.state.useSystem}},onChange:u=>{const v=u.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,(v||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):null,this.state.useSystem?null:M.createElement(N.Fab,{size:"small",onClick:()=>this.getCoordinates(),title:j.I18n.t("ra_Take browser position"),style:{marginRight:4}},M.createElement(Z.LocationOn,null)),this.state.useSystem?null:M.createElement(N.Fab,{size:"small",onClick:()=>this.getSystemCoordinates(),title:j.I18n.t("ra_Take position from system settings")},M.createElement(Z.GpsFixed,null)))}}Pn.init({name:"iobroker_admin",shared:{"@iobroker/adapter-react-v5":{lib:()=>ts,version:"*"},"@mui/icons-material":{lib:()=>es,version:"*"},"@iobroker/json-config":{lib:()=>os,version:"*"}},remotes:[]});class Ut extends K{static runningLoads={};constructor(n){super(n),Object.assign(this.state,{Component:null,error:""})}async componentDidMount(){if(!this.props.schema.url){console.error("URL is empty. Cannot load custom component!"),this.setState({error:"URL is empty. Cannot load custom component!"});return}let n;this.props.schema.url.startsWith("http:")||this.props.schema.url.startsWith("https:")?n=this.props.schema.url:this.props.schema.url.startsWith("./")?n=`${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\./,"")}`:n=`${window.location.protocol}//${window.location.host}/adapter/${this.props.oContext.adapterName}/${this.props.schema.url}`;const[i,u,...v]=this.props.schema.name.split("/"),o=v.join("/");if(!n){console.error('Cannot find URL for custom component! Please define "url" as "custom/customComponents.js" in the schema');return}if(!i||!u||!o){console.error('Invalid format of "name"! Please define "name" as "ConfigCustomBackItUpSet/Components/AdapterExist" in the schema');return}let h=Ut.runningLoads[`${n}!${u}`];if(!(h instanceof Promise)){let p;if(this.props.schema.i18n===!0){const a=n.lastIndexOf("/");let d;a!==-1?d=n.substring(0,a):d=n;const e=j.I18n.getLanguage(),t=`${d}/i18n/${e}.json`;p=fetch(t).then(r=>r.json()).then(r=>j.I18n.extendTranslations(r,e)).catch(r=>{if(e!=="en"){fetch(`${d}/i18n/en.json`).then(l=>l.json()).then(l=>j.I18n.extendTranslations(l,e)).catch(l=>console.log(`Cannot load i18n "${t}": ${l}`));return}console.log(`Cannot load i18n "${t}": ${r}`)})}else if(this.props.schema.i18n&&typeof this.props.schema.i18n=="object")try{j.I18n.extendTranslations(this.props.schema.i18n)}catch(a){console.error(`Cannot import i18n: ${a}`)}try{console.log(n,i,u,o),Pn.registerRemotes([{name:i,entry:n,type:this.props.schema.bundlerType||void 0}]),h=Pn.loadRemote(`${i}/${u}`),p instanceof Promise&&(h=Promise.all([h,p]).then(a=>a[0])),Ut.runningLoads[`${n}!${u}`]=h}catch(a){console.error(a),this.setState({error:`Cannot import from ${this.props.schema.url}: ${a}`})}}try{const p=(await h).default;if(p!=null&&p[o])this.setState({Component:p[o]});else{const a=Object.keys(p||{});console.error("URL is empty. Cannot load custom component!"),this.setState({error:`Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${a.join(", ")}`})}}catch(p){console.error(p),this.setState({error:`Cannot import from ${this.props.schema.url}: ${p}`})}}render(){const n=this.state.Component,i=this.props.schema||{};let u=n?M.createElement(n,{...this.props,socket:this.props.oContext.socket,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,instance:this.props.oContext.instance,adapterName:this.props.oContext.adapterName,systemConfig:this.props.oContext.systemConfig,forceUpdate:this.props.oContext.forceUpdate}):this.state.error?M.createElement("div",null,this.state.error):M.createElement(N.LinearProgress,null);return i.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),u):u}}class zs extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){return M.createElement(Wi.DatePicker,{sx:u=>({width:"100%",borderBottom:`1px solid ${u.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${u.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),format:this.props.oContext.systemConfig.dateFormat.toLowerCase().replace("mm","MM"),disabled:!!i,value:this.state.value,onChange:u=>{this.setState({value:u},()=>this.onChange(this.props.attr,this.state.value))},label:this.getText(this.props.schema.label)})}}class js extends K{renderItem(){if(!this.props.schema)return null;if(this.props.oContext.DeviceManager){const i=this.props.oContext.DeviceManager;return M.createElement(i,{uploadImagesToInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,title:this.getText(this.props.schema.label),socket:this.props.oContext.socket,selectedInstance:`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,themeName:this.props.themeName,theme:this.props.oContext.theme,themeType:this.props.oContext.themeType,isFloatComma:this.props.oContext.isFloatComma,dateFormat:this.props.oContext.dateFormat})}return M.createElement("div",null,"DeviceManager not found")}}const Ke={fullWidth:{width:"100%"},uploadDiv:{position:"relative",width:"100%"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"100%",height:"100%",position:"absolute",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},error:{border:"2px solid red"},deleteButton:{},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Vs=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Us=["mp3","ogg","wav","aac"],Gs=["avi","mp4","mov"],Ks=["txt","log","html","htm"],Js=["json","js","ts"];class mn extends K{dropzoneRef;imagePrefix;objectID;path;constructor(n){super(n),this.dropzoneRef=M.createRef(),this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix}componentDidMount(){super.componentDidMount(),this.objectID=(this.props.schema.objectID||"0_userdata.0").replace("%INSTANCE%",(this.props.oContext.instance||0).toString()),this.path=this.props.schema.upload,this.path&&(this.path==="/"?this.path="":this.path.endsWith("/")||(this.path=`${this.path}/`)),this.updateFiles().then(()=>{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n}),this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(i=>console.error(`Cannot subscribe: ${i}`))})}onFolderChanged=(n,i)=>{this.path&&i.startsWith(this.path)&&this.updateFiles().catch(u=>console.error(`Cannot update files: ${u}`))};componentWillUnmount(){this.props.oContext.socket.subscribeFiles(this.objectID,`${this.path}/*`,this.onFolderChanged).catch(n=>console.error(`Cannot subscribe: ${n}`)),super.componentWillUnmount()}async updateFiles(){const n=await this.readFiles(this.props.schema.pattern);await new Promise(i=>this.setState({files:n},i))}async readFolder(n,i,u){try{const v=await this.props.oContext.socket.readDir(this.objectID,n.replace(/^\//,"")||null);for(let o=0;oconsole.log("file reading was aborted"),u.onerror=()=>console.log("file reading has failed"),u.onload=()=>{if(i.size>v){window.alert(j.I18n.t("File is too big. Max %sk allowed. Try use SVG.",Math.round(v/1024)));return}this.props.oContext.socket.writeFile64(this.objectID,this.path+i.name,u.result).then(()=>this.updateFiles()).then(()=>this.setState({value:this.path+i.name},()=>this.onChange(this.props.attr,this.path+i.name))).catch(o=>window.alert(`Cannot upload file: ${o}`))},u.readAsArrayBuffer(i)}renderDeleteDialog(){return this.state.deleteFile?M.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Are you sure?"),text:j.I18n.t("ra_File will be deleted"),ok:j.I18n.t("ra_Delete"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>{const i=this.state.deleteFile;this.setState({deleteFile:""},()=>{n&&this.props.oContext.socket.deleteFile(this.objectID,i).then(()=>this.updateFiles()).catch(u=>window.alert(`Cannot delete file: ${u}`))})}}):null}static base64ToArrayBuffer(n){const i=window.atob(n),u=i.length,v=new Uint8Array(u);for(let o=0;o{if(typeof AudioContext<"u"){const i=new AudioContext,u=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(u,v=>{const o=i.createBufferSource();o.buffer=v,o.connect(i.destination),o.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getFileIcon(n){return n!=null&&n.extension?Vs.includes(n.extension)?M.createElement("div",{style:{...Ke.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.objectID}/${n.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Us.includes(n.extension)?M.createElement(Z.MusicNote,null):Ks.includes(n.extension)?M.createElement(Z.Article,null):Gs.includes(n.extension)?M.createElement(Z.Videocam,null):Js.includes(n.extension)?M.createElement(Z.Code,null):null:null}renderItem(n,i){if(!this.state.files)return null;const u=[];this.props.schema.withFolder||this.state.files.forEach(e=>{const t=e.name.lastIndexOf("/");if(t===-1)u.includes("/")||u.push("/");else{const r=e.name.substring(0,t+1);u.includes(r)||u.push(r)}});const v=this.state.files.map(e=>({value:e.name,label:!this.props.schema.withFolder&&u.length===1?`${e.name.substring(u[0].length)}`:`${e.name}${this.props.schema.noSize?"":`(${e.size})`}`,extension:e.name.toLowerCase().split(".").pop()}));this.props.schema.noNone||v.unshift({label:j.I18n.t("ra_none"),value:""});const o=v.find(e=>e.value===this.state.value);let h=0;this.props.schema.upload&&h++,this.props.schema.refresh&&h++;const p=this.state.value&&(this.state.value.endsWith(".mp3")||this.state.value.endsWith(".ogg")||this.state.value.endsWith(".wav"));p&&h++;const a=M.createElement("div",{style:Ke.fullWidth},M.createElement(N.FormControl,{variant:"standard",style:{width:`calc(100% - ${h*42}px)`}},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>M.createElement(M.Fragment,null,this.getFileIcon(o),M.createElement("span",null,(o==null?void 0:o.label)||"")),onChange:e=>{this.setState({value:e.target.value==="_"?"":e.target.value},()=>this.onChange(this.props.attr,this.state.value))}},v.map(e=>M.createElement(N.MenuItem,{key:e.value,value:e.value},M.createElement(N.ListItemIcon,null,this.getFileIcon(e)),M.createElement(N.ListItemText,null,e.label),this.props.schema.delete&&o.value?M.createElement(N.IconButton,{style:Ke.deleteButton,size:"small",onClick:()=>this.setState({deleteFile:o.value})},M.createElement(Z.Delete,null)):null))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null),this.props.schema.refresh&&M.createElement(N.IconButton,{onClick:()=>this.updateFiles()},M.createElement(Z.Refresh,null)),this.props.schema.upload&&M.createElement(N.IconButton,{onClick:()=>{var e;return(e=this.dropzoneRef.current)==null?void 0:e.open()}},M.createElement(Z.UploadFile,null)),p&&M.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},M.createElement(Z.PlayArrow,null)));if(!this.props.schema.upload)return M.createElement(M.Fragment,null,a,this.renderDeleteDialog());let d={"*/*":[]};if(this.props.schema.fileTypes==="image"?d={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:this.props.schema.fileTypes==="audio"?d={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:this.props.schema.fileTypes==="text"&&(d={"text/plain":[".txt"]}),this.props.schema.pattern){const e=this.props.schema.pattern.split("/").pop().toLowerCase().replace(/.*\./,"");e==="png"||e==="jpg"||e==="svg"||e==="gif"||e==="apng"||e==="avif"||e==="webp"?d={"image/*":[".png",".jpg",".svg",".gif",".apng",".avif",".webp"]}:e==="mp3"||e==="ogg"||e==="wav"?d={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:e==="ics"?d={"text/calendar":[".ics"]}:e==="txt"?d={"text/plain":[".txt"]}:e==="pem"?d={"text/plain":[".pem"]}:d={"*/*":[`.${e}`]}}return M.createElement(Pi,{ref:this.dropzoneRef,multiple:!1,accept:d,noKeyboard:!0,noClick:!0,maxSize:this.props.schema.maxSize||2*1024*1024,onDragEnter:()=>{this.setState({uploadFile:"dragging"})},onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(e,t)=>{var r,l,s;this.setState({uploadFile:!1}),e.length?this.onDrop(e):window.alert(((s=(l=(r=t==null?void 0:t[0])==null?void 0:r.errors)==null?void 0:l[0])==null?void 0:s.message)||j.I18n.t("Cannot upload"))}},({getRootProps:e,getInputProps:t})=>M.createElement("div",{style:{...Ke.uploadDiv,...this.state.uploadFile==="dragging"?Ke.uploadDivDragging:void 0,...i?Ke.disabledOpacity:void 0},...e()},M.createElement("input",{...t()}),this.state.uploadFile==="dragging"?M.createElement("div",{style:{...Ke.uploadCenterDiv,...this.state.uploadError?Ke.error:void 0}},M.createElement("div",{style:Ke.uploadCenterTextAndIcon},M.createElement(Z.UploadFile,{style:Ke.uploadCenterIcon}),M.createElement("div",{style:Ke.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog")))):null,a,this.renderDeleteDialog()))}}const sn={fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 69px)",marginRight:4},fullWidthIcon:{width:"calc(100% - 119px)",marginRight:4},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}},Ys=["jpg","jpeg","svg","png","webp","gif","apng","avif","webp"],Qs=["mp3","ogg","wav","aac"],Xs=["avi","mp4","mov"],Zs=["txt","log","html","htm"],qs=["json","js","ts"];class eo extends K{imagePrefix="../..";componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.imagePrefix=this.props.oContext.imagePrefix===void 0?"./files":this.props.oContext.imagePrefix,this.setState({value:n??""})}static getDerivedStateFromProps(n,i){const u=K.getValue(n.data,n.attr);return u==null||u.toString().trim()!==(i.value||"").toString().trim()?{value:u??""}:null}loadFile(){const n=this.state.value.indexOf("/");if(n!==-1){const i=this.state.value.substring(0,n),u=this.state.value.substring(n+1);return this.props.oContext.socket.readFile(i,u,!0)}return Promise.resolve(null)}play(){this.loadFile().then(n=>{if(typeof AudioContext<"u"&&(n!=null&&n.file)){const i=new AudioContext,u=mn.base64ToArrayBuffer(n.file);i.decodeAudioData(u,v=>{const o=i.createBufferSource();o.buffer=v,o.connect(i.destination),o.start(0)},v=>window.alert(`Cannot play: ${v.message}`))}})}getIcon(){const n=this.state.value.split(".").pop().toLowerCase();return Ys.includes(n)?M.createElement("div",{style:{...sn.selectedImage,backgroundImage:`url(${this.imagePrefix}/${this.state.value})`,backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Qs.includes(n)?M.createElement(N.IconButton,{style:{color:"#00FF00"},onClick:()=>this.play()},M.createElement(Z.PlayArrow,null)):Zs.includes(n)?M.createElement(Z.Article,null):Xs.includes(n)?M.createElement(Z.Videocam,null):qs.includes(n)?M.createElement(Z.Code,null):null}renderFileBrowser(){return this.state.showFileBrowser?M.createElement(j.DialogSelectFile,{imagePrefix:this.props.oContext.imagePrefix,socket:this.props.oContext.socket,selected:this.state.value,onClose:()=>this.setState({showFileBrowser:!1}),onOk:n=>{const i=Array.isArray(n)?n[0]:n;this.setState({value:i},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?i:(i||"").trim()))},selectOnlyFolders:this.props.schema.selectOnlyFolders,allowUpload:this.props.schema.allowUpload,allowDownload:this.props.schema.allowDownload,allowCreateFolder:this.props.schema.allowCreateFolder,allowView:this.props.schema.allowView,showToolbar:this.props.schema.showToolbar,limitPath:this.props.schema.limitPath,theme:this.props.oContext.theme}):null}renderItem(n,i){const u=this.getIcon();return M.createElement("div",{style:sn.fullWidth},u,M.createElement(N.TextField,{variant:"standard",style:u?sn.fullWidthIcon:sn.fullWidthOneButton,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:!!this.props.schema.disableEdit}},onChange:v=>{const o=v.target.value;this.setState({value:o},()=>this.onChange(this.props.attr,this.props.schema.trim===!1?o:(o||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),M.createElement(N.Button,{disabled:i,variant:"outlined",onClick:()=>this.setState({showFileBrowser:!0})},"..."),this.renderFileBrowser())}}class to extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("functions").then(i=>{const u=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.functions.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})})}renderItem(n,i){if(!this.state.selectOptions)return null;const u=this.state.selectOptions.find(v=>v.value===this.state.value);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>u?u.obj?M.createElement(j.TextWithIcon,{value:u.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):u.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>M.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?M.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class no extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getHostByIp(this.props.common.host).then(n=>{this.props.schema.listenOnAllPorts||(n=n.filter(i=>i.address!=="0.0.0.0"&&i.address!=="::")),this.props.schema.onlyIp4?n=n.filter(i=>i.family==="ipv4"):this.props.schema.onlyIp6&&(n=n.filter(i=>i.family==="ipv6")),this.props.schema.noInternal&&(n=n.filter(i=>!i.internal)),n.forEach(i=>{i.address==="0.0.0.0"?i.name=`[IPv4] 0.0.0.0 - ${j.I18n.t("ra_Listen on all IPs")}`:i.address==="::"&&(i.name=`[IPv6] :: - ${j.I18n.t("ra_Listen on all IPs")}`)}),this.setState({ips:n})}).catch(n=>console.error(n))}renderItem(n,i){var o,h;const u=K.getValue(this.props.data,this.props.attr),v=(o=this.state.ips)==null?void 0:o.find(p=>p.address===u);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.state.ips&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.ips?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:p=>(v==null?void 0:v.name)||p,onChange:p=>this.onChange(this.props.attr,p.target.value)},(h=this.state.ips)==null?void 0:h.map((p,a)=>M.createElement(N.MenuItem,{key:a,value:p.address},p.name))):M.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:u,onChange:p=>this.onChange(this.props.attr,p.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class io extends K{initialized=!1;localContext;componentDidMount(){super.componentDidMount(),this.askInstance()}askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);if(i)try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${JSON.stringify(n)}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({image:i||""}))}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const n=this.getContext();(n!==this.localContext||!this.initialized)&&(this.localContext=n,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}return this.state.image===void 0?null:M.createElement("img",{alt:"dynamic content",src:this.state.image,style:{width:this.props.schema.width||"100%",height:this.props.schema.height}})}}class ro extends K{index;constructor(n){super(n),this.index=Date.now()}componentDidMount(){if(super.componentDidMount(),this.props.schema.base64){const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}else this.props.oContext.socket.fileExists(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).then(n=>n&&this.loadImage())}_getUrl(n){n&&(this.index=Date.now());let i=`files/${this.props.oContext.adapterName}.${this.props.oContext.instance}/${this.props.attr}?t=${this.index}`;return window.location.port==="3000"&&(i=`${window.location.protocol}//${window.location.hostname}:8081/${i}`),i}loadImage(){fetch(this._getUrl()).then(n=>n.blob()).then(n=>{const i=new FileReader;i.onload=()=>{this.setState({value:i.result})},i.readAsDataURL(n)}).catch(n=>console.error(n))}renderItem(n,i){return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(j.UploadImage,{error:!!n,disabled:i,accept:this.props.schema.accept,crop:this.props.schema.crop,maxSize:this.props.schema.maxSize||256*1024,icon:this.state.value||void 0,removeIconFunc:()=>this.setState({value:null},()=>{if(this.props.schema.base64){const u=this.onChange(this.props.attr,this.state.value);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))}else this.props.oContext.socket.deleteFile(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr).catch(u=>console.error(u))}),onChange:u=>this.setState({value:u},()=>{if(this.props.schema.base64){const v=this.onChange(this.props.attr,this.state.value);v instanceof Promise&&v.catch(o=>console.error(`Cannot set value: ${o}`))}else u.startsWith("data")&&(u=u.split(",")[1]);this.props.oContext.socket.writeFile64(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.attr,u).catch(v=>console.error(v))})}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const gi={icon:{width:20,height:20,marginRight:4}};class so extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);let i=this.props.schema.adapter;i==="_dataSources"&&(i=void 0),this.props.oContext.socket.getAdapterInstances(i,!0).then(async u=>{this.props.schema.adapter==="_dataSources"?u=u.filter(o=>{var h;return(h=o==null?void 0:o.common)==null?void 0:h.getHistory}):this.props.schema.adapter?u=u.filter(o=>o==null?void 0:o._id.startsWith(`system.adapter.${this.props.schema.adapter}.`)):this.props.schema.adapters&&Array.isArray(this.props.schema.adapters)&&(u=u.filter(o=>{var h;return this.props.schema.adapters.includes((h=o==null?void 0:o.common)==null?void 0:h.name)})),this.props.schema.onlyEnabled&&(u=u.filter(o=>{var h;return(h=o==null?void 0:o.common)==null?void 0:h.enabled}));const v=u.map(o=>({value:this.props.schema.long?o._id:this.props.schema.short?o._id.split(".").pop():o._id.replace(/^system\.adapter\./,""),label:`${o.common.name} [${o._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${o.common.name}/${o.common.icon}`}));v.sort((o,h)=>o.value>h.value?1:o.valueconsole.error(`Cannot get instances: ${u}`))}componentWillUnmount(){this.props.oContext.socket.unsubscribeObject("system.adapter.*",this.onInstancesUpdate).then(()=>{}),super.componentWillUnmount()}onInstancesUpdate=(n,i)=>{if(!n.match(/^system\.adapter\.[-_a-z\d]+\.\d+$/))return;const u=this.props.schema.long?n:this.props.schema.short?n.split(".").pop():n.replace(/^system\.adapter\./,""),v=this.state.selectOptions.findIndex(o=>o.value===u);if(i){if(this.props.schema.adapter==="_dataSources"&&(!i.common||!i.common.getHistory))return;if(v===-1){const o=JSON.parse(JSON.stringify(this.state.selectOptions)),h=typeof i.common.name=="object"?i.common.name[j.I18n.getLanguage()]||i.common.name.en:i.common.name;o.push({value:this.props.schema.long?i._id:this.props.schema.short?i._id.split(".").pop():i._id.replace(/^system\.adapter\./,""),label:`${h} [${i._id.replace(/^system\.adapter\./,"")}]`,icon:`adapter/${h}/${i.common.icon}`}),o.sort((p,a)=>p.label>a.label?1:p.labelo.value===this.state.value);return M.createElement(N.FormControl,{fullWidth:!0,key:this.props.attr,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,displayEmpty:!0,disabled:!!i,value:this.state.value,renderValue:()=>M.createElement("span",{style:{display:"flex"}},u!=null&&u.icon?M.createElement("img",{src:`./${u.icon}`,alt:u.value,style:gi.icon}):null,this.getText(u==null?void 0:u.label,!0)),onChange:o=>this.setState({value:o.target.value},()=>this.onChange(this.props.attr,this.state.value))},this.state.selectOptions.map(o=>M.createElement(N.MenuItem,{key:o.value,value:o.value,style:o.value===K.NONE_VALUE?{opacity:.5}:{}},o.icon?M.createElement("img",{src:`./${o.icon}`,alt:o.value,style:gi.icon}):null,this.getText(o.label,!0)))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const mi={address:{fontSize:"smaller",opacity:.5,marginLeft:8}};class oo extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getObject(`system.host.${this.props.common.host}`).then(n=>{var u,v;const i=[];if((v=(u=n==null?void 0:n.native)==null?void 0:u.hardware)!=null&&v.networkInterfaces){const o=n.native.hardware.networkInterfaces;Object.keys(o).forEach(h=>{if(this.props.schema.ignoreInternal&&!o[h].find(a=>!a.internal)||this.props.schema.ignoreLoopback&&o[h].find(a=>a.address==="127.0.0.1"||a.address==="::1"))return;let p=o[h].find(a=>a.family==="IPv4");p=p||o[h].find(a=>a.family==="IPv6"),i.push({value:h,address:p.address})})}this.setState({interfaces:i})}).catch(n=>window.alert(`Cannot read interfaces: ${n}`))}renderItem(n,i){var o,h,p;const u=K.getValue(this.props.data,this.props.attr),v=(o=this.state.interfaces)==null?void 0:o.find(a=>a.value===u);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},(h=this.state.interfaces)!=null&&h.length&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,(p=this.state.interfaces)!=null&&p.length?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:a=>v?M.createElement("span",null,v.value,M.createElement("span",{style:mi.address},v.address)):a,onChange:a=>this.onChange(this.props.attr,a.target.value)},this.state.interfaces.map((a,d)=>M.createElement(N.MenuItem,{key:d,value:a.value},M.createElement("span",null,a.value,M.createElement("span",{style:mi.address},a.address))))):M.createElement(N.TextField,{fullWidth:!0,variant:"standard",error:!!n,disabled:!!i,value:u,onChange:a=>this.onChange(this.props.attr,a.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const kt={modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:8,top:8},languageButtonActive:{color:"primary.main"}},ao=({toggleTranslation:L,noTranslation:n,title:i,fullWidth:u,help:v,maxWidth:o,progress:h,icon:p,applyDisabled:a,applyButton:d,onClose:e,children:t,titleButtonApply:r,titleButtonClose:l,onApply:s,textInput:c,defaultValue:f,overflowHidden:m})=>{const[y,D]=dt.useState(f);dt.useEffect(()=>{D(f)},[f]);let E=null;return p&&(E=p),M.createElement(N.Dialog,{open:!0,maxWidth:o||"md",fullWidth:!!u,disableEscapeKeyDown:!1,onClose:e,sx:{"& .MuiPaper-root":kt.modalDialog}},i&&M.createElement(N.DialogTitle,null,p?M.createElement(E,{style:kt.titleIcon}):null,i,j.I18n.getLanguage()!=="en"&&L?M.createElement(N.IconButton,{size:"large",style:{...kt.languageButton,...n?kt.languageButtonActive:{}},onClick:()=>L(),title:j.I18n.t("Disable/Enable translation")},M.createElement(Z.Language,null)):null),M.createElement(N.DialogContent,{sx:{...m?kt.overflowHidden:{},...kt.content},style:{paddingTop:8}},c&&M.createElement(N.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:y,onChange:b=>D(b.target.value)}),t,v?M.createElement("div",null,v):null),M.createElement(N.DialogActions,null,d!==!1&&M.createElement(N.Button,{startIcon:M.createElement(Z.Check,null),disabled:h||a&&f===y,onClick:()=>s&&s(c?y:""),variant:"contained",color:"primary"},j.I18n.t(r||"Ok")),M.createElement(N.Button,{color:"grey",onClick:()=>e&&e(),disabled:h,variant:"contained",startIcon:M.createElement(Z.Close,null)},j.I18n.t(l||"Cancel"))))};var It={},Dt={},Vi={exports:{}};(function(L,n){(function(){var i="ace",u=function(){return this}();!u&&typeof window<"u"&&(u=window);var v=function(e,t,r){if(typeof e!="string"){v.original?v.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=t),v.modules[e]||(v.payloads[e]=r,v.modules[e]=null)};v.modules={},v.payloads={};var o=function(e,t,r){if(typeof t=="string"){var l=a(e,t);if(l!=null)return r&&r(),l}else if(Object.prototype.toString.call(t)==="[object Array]"){for(var s=[],c=0,f=t.length;ca.length)&&(p=a.length),p-=h.length;var d=a.indexOf(h,p);return d!==-1&&d===p}),String.prototype.repeat||o(String.prototype,"repeat",function(h){for(var p="",a=this;h>0;)h&1&&(p+=a),(h>>=1)&&(a+=a);return p}),String.prototype.includes||o(String.prototype,"includes",function(h,p){return this.indexOf(h,p)!=-1}),Object.assign||(Object.assign=function(h){if(h==null)throw new TypeError("Cannot convert undefined or null to object");for(var p=Object(h),a=1;a>>0,d=arguments[1],e=d>>0,t=e<0?Math.max(a+e,0):Math.min(e,a),r=arguments[2],l=r===void 0?a:r>>0,s=l<0?Math.max(a+l,0):Math.min(l,a);t0;)a&1&&(d+=p),(a>>=1)&&(p+=p);return d};var o=/^\s\s*/,h=/\s\s*$/;u.stringTrimLeft=function(p){return p.replace(o,"")},u.stringTrimRight=function(p){return p.replace(h,"")},u.copyObject=function(p){var a={};for(var d in p)a[d]=p[d];return a},u.copyArray=function(p){for(var a=[],d=0,e=p.length;d65535?2:1}}),ace.define("ace/lib/useragent",["require","exports","module"],function(i,u,v){u.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},u.getOS=function(){return u.isMac?u.OS.MAC:u.isLinux?u.OS.LINUX:u.OS.WINDOWS};var o=typeof navigator=="object"?navigator:{},h=(/mac|win|linux/i.exec(o.platform)||["other"])[0].toLowerCase(),p=o.userAgent||"",a=o.appName||"";u.isWin=h=="win",u.isMac=h=="mac",u.isLinux=h=="linux",u.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((p.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((p.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),u.isOldIE=u.isIE&&u.isIE<9,u.isGecko=u.isMozilla=p.match(/ Gecko\/\d+/),u.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",u.isWebKit=parseFloat(p.split("WebKit/")[1])||void 0,u.isChrome=parseFloat(p.split(" Chrome/")[1])||void 0,u.isSafari=parseFloat(p.split(" Safari/")[1])&&!u.isChrome||void 0,u.isEdge=parseFloat(p.split(" Edge/")[1])||void 0,u.isAIR=p.indexOf("AdobeAIR")>=0,u.isAndroid=p.indexOf("Android")>=0,u.isChromeOS=p.indexOf(" CrOS ")>=0,u.isIOS=/iPad|iPhone|iPod/.test(p)&&!window.MSStream,u.isIOS&&(u.isMac=!0),u.isMobile=u.isIOS||u.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(i,u,v){var o=i("./useragent"),h="http://www.w3.org/1999/xhtml";u.buildDom=function r(l,s,c){if(typeof l=="string"&&l){var f=document.createTextNode(l);return s&&s.appendChild(f),f}if(!Array.isArray(l))return l&&l.appendChild&&s&&s.appendChild(l),l;if(typeof l[0]!="string"||!l[0]){for(var m=[],y=0;y"u")){if(a){if(s)d();else if(s===!1)return a.push([r,l])}if(!p){var c=s;!s||!s.getRootNode?c=document:(c=s.getRootNode(),(!c||c==s)&&(c=document));var f=c.ownerDocument||c;if(l&&u.hasCssString(l,c))return null;l&&(r+=` +/*# sourceURL=ace/css/`+l+" */");var m=u.createElement("style");m.appendChild(f.createTextNode(r)),l&&(m.id=l),c==f&&(c=u.getDocumentHead(f)),c.insertBefore(m,c.firstChild)}}}if(u.importCssString=e,u.importCssStylsheet=function(r,l){u.buildDom(["link",{rel:"stylesheet",href:r}],u.getDocumentHead(l))},u.scrollbarWidth=function(r){var l=u.createElement("ace_inner");l.style.width="100%",l.style.minWidth="0px",l.style.height="200px",l.style.display="block";var s=u.createElement("ace_outer"),c=s.style;c.position="absolute",c.left="-10000px",c.overflow="hidden",c.width="200px",c.minWidth="0px",c.height="150px",c.display="block",s.appendChild(l);var f=r&&r.documentElement||document&&document.documentElement;if(!f)return 0;f.appendChild(s);var m=l.offsetWidth;c.overflow="scroll";var y=l.offsetWidth;return m===y&&(y=s.clientWidth),f.removeChild(s),m-y},u.computedStyle=function(r,l){return window.getComputedStyle(r,"")||{}},u.setStyle=function(r,l,s){r[l]!==s&&(r[l]=s)},u.HAS_CSS_ANIMATION=!1,u.HAS_CSS_TRANSFORMS=!1,u.HI_DPI=o.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,o.isChromeOS&&(u.HI_DPI=!1),typeof document<"u"){var t=document.createElement("div");u.HI_DPI&&t.style.transform!==void 0&&(u.HAS_CSS_TRANSFORMS=!0),!o.isEdge&&typeof t.style.animationName<"u"&&(u.HAS_CSS_ANIMATION=!0),t=null}u.HAS_CSS_TRANSFORMS?u.translate=function(r,l,s){r.style.transform="translate("+Math.round(l)+"px, "+Math.round(s)+"px)"}:u.translate=function(r,l,s){r.style.top=Math.round(s)+"px",r.style.left=Math.round(l)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(i,u,v){/* * based on code from: * * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details -*/var o=i("./dom");u.get=function(h,d){var s=new XMLHttpRequest;s.open("GET",h,!0),s.onreadystatechange=function(){s.readyState===4&&d(s.responseText)},s.send(null)},u.loadScript=function(h,d){var s=o.getDocumentHead(),p=document.createElement("script");p.src=h,s.appendChild(p),p.onload=p.onreadystatechange=function(e,t){(t||!p.readyState||p.readyState=="loaded"||p.readyState=="complete")&&(p=p.onload=p.onreadystatechange=null,t||d())}},u.qualifyURL=function(h){var d=document.createElement("a");return d.href=h,d.href}}),ace.define("ace/lib/oop",["require","exports","module"],function(i,u,v){u.inherits=function(o,h){o.super_=h,o.prototype=Object.create(h.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}})},u.mixin=function(o,h){for(var d in h)o[d]=h[d];return o},u.implement=function(o,h){u.mixin(o,h)}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(i,u,v){var o={},h=function(){this.propagationStopped=!0},d=function(){this.defaultPrevented=!0};o._emit=o._dispatchEvent=function(s,p){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var e=this._eventRegistry[s]||[],t=this._defaultHandlers[s];if(!(!e.length&&!t)){(typeof p!="object"||!p)&&(p={}),p.type||(p.type=s),p.stopPropagation||(p.stopPropagation=h),p.preventDefault||(p.preventDefault=d),e=e.slice();for(var r=0;r1&&(m=c[c.length-2]);var D=p[a+"Path"];return D==null?D=p.basePath:f=="/"&&(a=f=""),D&&D.slice(-1)!="/"&&(D+="/"),D+a+f+m+this.get("suffix")},u.setModuleUrl=function(l,a){return p.$moduleUrls[l]=a};var e=function(l,a){if(l==="ace/theme/textmate"||l==="./theme/textmate")return a(null,i("./theme/textmate"));if(t)return t(l,a);console.error("loader is not configured")},t;u.setLoader=function(l){t=l},u.dynamicModules=Object.create(null),u.$loading={},u.$loaded={},u.loadModule=function(l,a){var c;if(Array.isArray(l))var f=l[0],m=l[1];else if(typeof l=="string")var m=l;var y=function(D){if(D&&!u.$loading[m])return a&&a(D);if(u.$loading[m]||(u.$loading[m]=[]),u.$loading[m].push(a),!(u.$loading[m].length>1)){var E=function(){e(m,function(b,g){g&&(u.$loaded[m]=g),u._emit("load.module",{name:m,module:g});var S=u.$loading[m];u.$loading[m]=null,S.forEach(function(M){M&&M(g)})})};if(!u.get("packaged"))return E();h.loadScript(u.moduleUrl(m,f),E),r()}};if(u.dynamicModules[m])u.dynamicModules[m]().then(function(D){D.default?y(D.default):y(D)});else{try{c=this.$require(m)}catch{}y(c||u.$loaded[m])}},u.$require=function(l){if(typeof v.require=="function"){var a="require";return v[a](l)}},u.setModuleLoader=function(l,a){u.dynamicModules[l]=a};var r=function(){!p.basePath&&!p.workerPath&&!p.modePath&&!p.themePath&&!Object.keys(p.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),r=function(){})};u.version="1.42.0"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(i,u,v){i("./lib/fixoldbrowsers");var o=i("./config");o.setLoader(function(p,e){i([p],function(t){e(null,t)})});var h=function(){return this||typeof window<"u"&&window}();v.exports=function(p){o.init=d,o.$require=i,p.require=i},d(!0);function d(p){if(!(!h||!h.document)){o.set("packaged",p||i.packaged||v.packaged||h.define&&(void 0).packaged);var e={},t="",r=document.currentScript||document._currentScript,l=r&&r.ownerDocument||document;r&&r.src&&(t=r.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var a=l.getElementsByTagName("script"),c=0;c ["+this.end.row+"/"+this.end.column+"]"},h.prototype.contains=function(d,s){return this.compare(d,s)==0},h.prototype.compareRange=function(d){var s,p=d.end,e=d.start;return s=this.compare(p.row,p.column),s==1?(s=this.compare(e.row,e.column),s==1?2:s==0?1:0):s==-1?-2:(s=this.compare(e.row,e.column),s==-1?-1:s==1?42:0)},h.prototype.comparePoint=function(d){return this.compare(d.row,d.column)},h.prototype.containsRange=function(d){return this.comparePoint(d.start)==0&&this.comparePoint(d.end)==0},h.prototype.intersects=function(d){var s=this.compareRange(d);return s==-1||s==0||s==1},h.prototype.isEnd=function(d,s){return this.end.row==d&&this.end.column==s},h.prototype.isStart=function(d,s){return this.start.row==d&&this.start.column==s},h.prototype.setStart=function(d,s){typeof d=="object"?(this.start.column=d.column,this.start.row=d.row):(this.start.row=d,this.start.column=s)},h.prototype.setEnd=function(d,s){typeof d=="object"?(this.end.column=d.column,this.end.row=d.row):(this.end.row=d,this.end.column=s)},h.prototype.inside=function(d,s){return this.compare(d,s)==0?!(this.isEnd(d,s)||this.isStart(d,s)):!1},h.prototype.insideStart=function(d,s){return this.compare(d,s)==0?!this.isEnd(d,s):!1},h.prototype.insideEnd=function(d,s){return this.compare(d,s)==0?!this.isStart(d,s):!1},h.prototype.compare=function(d,s){return!this.isMultiLine()&&d===this.start.row?sthis.end.column?1:0:dthis.end.row?1:this.start.row===d?s>=this.start.column?0:-1:this.end.row===d?s<=this.end.column?0:1:0},h.prototype.compareStart=function(d,s){return this.start.row==d&&this.start.column==s?-1:this.compare(d,s)},h.prototype.compareEnd=function(d,s){return this.end.row==d&&this.end.column==s?1:this.compare(d,s)},h.prototype.compareInside=function(d,s){return this.end.row==d&&this.end.column==s?1:this.start.row==d&&this.start.column==s?-1:this.compare(d,s)},h.prototype.clipRows=function(d,s){if(this.end.row>s)var p={row:s+1,column:0};else if(this.end.rows)var e={row:s+1,column:0};else if(this.start.row1?(M++,M>4&&(M=1)):M=1,h.isIE){var w=Math.abs(C.clientX-_)>5||Math.abs(C.clientY-T)>5;(!F||w)&&(M=1),F&&clearTimeout(F),F=setTimeout(function(){F=null},E[M-1]||600),M==1&&(_=C.clientX,T=C.clientY)}if(C._clicks=M,b[g]("mousedown",C),M>4)M=0;else if(M>1)return b[g](A[M],C)}Array.isArray(D)||(D=[D]),D.forEach(function(C){l(C,"mousedown",$,S)})};function c(D){return 0|(D.ctrlKey?1:0)|(D.altKey?2:0)|(D.shiftKey?4:0)|(D.metaKey?8:0)}u.getModifierString=function(D){return o.KEY_MODS[c(D)]};function f(D,E,b){var g=c(E);if(!b&&E.code&&(b=o.$codeToKeyCode[E.code]||b),!h.isMac&&d){if(E.getModifierState&&(E.getModifierState("OS")||E.getModifierState("Win"))&&(g|=8),d.altGr)if((3&g)!=3)d.altGr=0;else return;if(b===18||b===17){var S=E.location;if(b===17&&S===1)d[b]==1&&(s=E.timeStamp);else if(b===18&&g===3&&S===2){var M=E.timeStamp-s;M<50&&(d.altGr=!0)}}}if(b in o.MODIFIER_KEYS&&(b=-1),!(!g&&b===13&&E.location===3&&(D(E,g,-b),E.defaultPrevented))){if(h.isChromeOS&&g&8){if(D(E,g,b),E.defaultPrevented)return;g&=-9}return!g&&!(b in o.FUNCTION_KEYS)&&!(b in o.PRINTABLE_KEYS)?!1:D(E,g,b)}}u.addCommandKeyListener=function(D,E,b){var g=null;l(D,"keydown",function(S){d[S.keyCode]=(d[S.keyCode]||0)+1;var M=f(E,S,S.keyCode);return g=S.defaultPrevented,M},b),l(D,"keypress",function(S){g&&(S.ctrlKey||S.altKey||S.shiftKey||S.metaKey)&&(u.stopEvent(S),g=null)},b),l(D,"keyup",function(S){d[S.keyCode]=null},b),d||(m(),l(window,"focus",m))};function m(){d=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!h.isOldIE){var y=1;u.nextTick=function(D,E){E=E||window;var b="zero-timeout-message-"+y++,g=function(S){S.data==b&&(u.stopPropagation(S),a(E,"message",g),D())};l(E,"message",g),E.postMessage(b,"*")}}u.$idleBlocked=!1,u.onIdle=function(D,E){return setTimeout(function b(){u.$idleBlocked?setTimeout(b,100):D()},E)},u.$idleBlockId=null,u.blockIdle=function(D){u.$idleBlockId&&clearTimeout(u.$idleBlockId),u.$idleBlocked=!0,u.$idleBlockId=setTimeout(function(){u.$idleBlocked=!1},D||100)},u.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),u.nextFrame?u.nextFrame=u.nextFrame.bind(window):u.nextFrame=function(D){setTimeout(D,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(i,u,v){var o;v.exports={lineMode:!1,pasteCancelled:function(){return o&&o>Date.now()-50?!0:o=!1},cancel:function(){o=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(i,u,v){var o=i("../lib/event"),h=i("../config").nls,d=i("../lib/useragent"),s=i("../lib/dom"),p=i("../lib/lang"),e=i("../clipboard"),t=d.isChrome<18,r=d.isIE,l=d.isChrome>63,a=400,c=i("../lib/keys"),f=c.KEY_MODS,m=d.isIOS,y=m?/\s/:/\n/,D=d.isMobile,E;E=function(b,g){var S=s.createElement("textarea");S.className="ace_text-input",S.setAttribute("wrap","off"),S.setAttribute("autocorrect","off"),S.setAttribute("autocapitalize","off"),S.setAttribute("spellcheck","false"),S.style.opacity="0",b.insertBefore(S,b.firstChild),this.setHost=function(X){g=X};var M=!1,_=!1,T=!1,F=!1,A="";D||(S.style.fontSize="1px");var $=!1,C=!1,w="",x=0,I=0,R=0,O=Number.MAX_SAFE_INTEGER,P=Number.MIN_SAFE_INTEGER,B=0;try{var V=document.activeElement===S}catch{}this.setNumberOfExtraLines=function(X){if(O=Number.MAX_SAFE_INTEGER,P=Number.MIN_SAFE_INTEGER,X<0){B=0;return}B=X},this.setAriaLabel=function(){var X="";if(g.$textInputAriaLabel&&(X+="".concat(g.$textInputAriaLabel,", ")),g.session){var re=g.session.selection.cursor.row;X+=h("text-input.aria-label","Cursor at row $0",[re+1])}S.setAttribute("aria-label",X)},this.setAriaOptions=function(X){X.activeDescendant?(S.setAttribute("aria-haspopup","true"),S.setAttribute("aria-autocomplete",X.inline?"both":"list"),S.setAttribute("aria-activedescendant",X.activeDescendant)):(S.setAttribute("aria-haspopup","false"),S.setAttribute("aria-autocomplete","both"),S.removeAttribute("aria-activedescendant")),X.role&&S.setAttribute("role",X.role),X.setLabel&&(S.setAttribute("aria-roledescription",h("text-input.aria-roledescription","editor")),this.setAriaLabel())},this.setAriaOptions({role:"textbox"}),o.addListener(S,"blur",function(X){C||(g.onBlur(X),V=!1)},g),o.addListener(S,"focus",function(X){if(!C){if(V=!0,d.isEdge)try{if(!document.hasFocus())return}catch{}g.onFocus(X),d.isEdge?setTimeout(H):H()}},g),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:g.renderer.enableKeyboardAccessibility}),A||l||this.$focusScroll=="browser")return S.focus({preventScroll:!0});var X=S.style.top;S.style.position="fixed",S.style.top="0px";try{var re=S.getBoundingClientRect().top!=0}catch{return}var ae=[];if(re)for(var de=S.parentElement;de&&de.nodeType==1;)ae.push(de),de.setAttribute("ace_nocontext","true"),!de.parentElement&&de.getRootNode?de=de.getRootNode().host:de=de.parentElement;S.focus({preventScroll:!0}),re&&ae.forEach(function(ce){ce.removeAttribute("ace_nocontext")}),setTimeout(function(){S.style.position="",S.style.top=="0px"&&(S.style.top=X)},0)},this.blur=function(){S.blur()},this.isFocused=function(){return V},g.on("beforeEndOperation",function(){var X=g.curOp,re=X&&X.command&&X.command.name;if(re!="insertstring"){var ae=re&&(X.docChanged||X.selectionChanged);T&&ae&&(w=S.value="",Ze()),H()}}),g.on("changeSelection",this.setAriaLabel);var W=function(X,re){for(var ae=re,de=1;de<=X-O&&de<2*B+1;de++)ae+=g.session.getLine(X-de).length+1;return ae},H=m?function(X){if(!(!V||M&&!X||F)){X||(X="");var re=` +`}),ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate-css","ace/lib/dom"],function(i,u,v){u.isDark=!1,u.cssClass="ace-tm",u.cssText=i("./textmate-css"),u.$id="ace/theme/textmate";var o=i("../lib/dom");o.importCssString(u.cssText,u.cssClass,!1)}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/net","ace/lib/dom","ace/lib/app_config","ace/theme/textmate"],function(i,u,v){"no use strict";var o=i("./lib/lang"),h=i("./lib/net"),p=i("./lib/dom"),a=i("./lib/app_config").AppConfig;v.exports=u=new a;var d={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1,useStrictCSP:null};u.get=function(l){if(!d.hasOwnProperty(l))throw new Error("Unknown config key: "+l);return d[l]},u.set=function(l,s){if(d.hasOwnProperty(l))d[l]=s;else if(this.setDefaultValue("",l,s)==!1)throw new Error("Unknown config key: "+l);l=="useStrictCSP"&&p.useStrictCSP(s)},u.all=function(){return o.copyObject(d)},u.$modes={},u.moduleUrl=function(l,s){if(d.$moduleUrls[l])return d.$moduleUrls[l];var c=l.split("/");s=s||c[c.length-2]||"";var f=s=="snippets"?"/":"-",m=c[c.length-1];if(s=="worker"&&f=="-"){var y=new RegExp("^"+s+"[\\-_]|[\\-_]"+s+"$","g");m=m.replace(y,"")}(!m||m==s)&&c.length>1&&(m=c[c.length-2]);var D=d[s+"Path"];return D==null?D=d.basePath:f=="/"&&(s=f=""),D&&D.slice(-1)!="/"&&(D+="/"),D+s+f+m+this.get("suffix")},u.setModuleUrl=function(l,s){return d.$moduleUrls[l]=s};var e=function(l,s){if(l==="ace/theme/textmate"||l==="./theme/textmate")return s(null,i("./theme/textmate"));if(t)return t(l,s);console.error("loader is not configured")},t;u.setLoader=function(l){t=l},u.dynamicModules=Object.create(null),u.$loading={},u.$loaded={},u.loadModule=function(l,s){var c;if(Array.isArray(l))var f=l[0],m=l[1];else if(typeof l=="string")var m=l;var y=function(D){if(D&&!u.$loading[m])return s&&s(D);if(u.$loading[m]||(u.$loading[m]=[]),u.$loading[m].push(s),!(u.$loading[m].length>1)){var E=function(){e(m,function(b,g){g&&(u.$loaded[m]=g),u._emit("load.module",{name:m,module:g});var S=u.$loading[m];u.$loading[m]=null,S.forEach(function(T){T&&T(g)})})};if(!u.get("packaged"))return E();h.loadScript(u.moduleUrl(m,f),E),r()}};if(u.dynamicModules[m])u.dynamicModules[m]().then(function(D){D.default?y(D.default):y(D)});else{try{c=this.$require(m)}catch{}y(c||u.$loaded[m])}},u.$require=function(l){if(typeof v.require=="function"){var s="require";return v[s](l)}},u.setModuleLoader=function(l,s){u.dynamicModules[l]=s};var r=function(){!d.basePath&&!d.workerPath&&!d.modePath&&!d.themePath&&!Object.keys(d.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),r=function(){})};u.version="1.41.0"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(i,u,v){i("./lib/fixoldbrowsers");var o=i("./config");o.setLoader(function(d,e){i([d],function(t){e(null,t)})});var h=function(){return this||typeof window<"u"&&window}();v.exports=function(d){o.init=p,o.$require=i,d.require=i},p(!0);function p(d){if(!(!h||!h.document)){o.set("packaged",d||i.packaged||v.packaged||h.define&&(void 0).packaged);var e={},t="",r=document.currentScript||document._currentScript,l=r&&r.ownerDocument||document;r&&r.src&&(t=r.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var s=l.getElementsByTagName("script"),c=0;c ["+this.end.row+"/"+this.end.column+"]"},h.prototype.contains=function(p,a){return this.compare(p,a)==0},h.prototype.compareRange=function(p){var a,d=p.end,e=p.start;return a=this.compare(d.row,d.column),a==1?(a=this.compare(e.row,e.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(e.row,e.column),a==-1?-1:a==1?42:0)},h.prototype.comparePoint=function(p){return this.compare(p.row,p.column)},h.prototype.containsRange=function(p){return this.comparePoint(p.start)==0&&this.comparePoint(p.end)==0},h.prototype.intersects=function(p){var a=this.compareRange(p);return a==-1||a==0||a==1},h.prototype.isEnd=function(p,a){return this.end.row==p&&this.end.column==a},h.prototype.isStart=function(p,a){return this.start.row==p&&this.start.column==a},h.prototype.setStart=function(p,a){typeof p=="object"?(this.start.column=p.column,this.start.row=p.row):(this.start.row=p,this.start.column=a)},h.prototype.setEnd=function(p,a){typeof p=="object"?(this.end.column=p.column,this.end.row=p.row):(this.end.row=p,this.end.column=a)},h.prototype.inside=function(p,a){return this.compare(p,a)==0?!(this.isEnd(p,a)||this.isStart(p,a)):!1},h.prototype.insideStart=function(p,a){return this.compare(p,a)==0?!this.isEnd(p,a):!1},h.prototype.insideEnd=function(p,a){return this.compare(p,a)==0?!this.isStart(p,a):!1},h.prototype.compare=function(p,a){return!this.isMultiLine()&&p===this.start.row?athis.end.column?1:0:pthis.end.row?1:this.start.row===p?a>=this.start.column?0:-1:this.end.row===p?a<=this.end.column?0:1:0},h.prototype.compareStart=function(p,a){return this.start.row==p&&this.start.column==a?-1:this.compare(p,a)},h.prototype.compareEnd=function(p,a){return this.end.row==p&&this.end.column==a?1:this.compare(p,a)},h.prototype.compareInside=function(p,a){return this.end.row==p&&this.end.column==a?1:this.start.row==p&&this.start.column==a?-1:this.compare(p,a)},h.prototype.clipRows=function(p,a){if(this.end.row>a)var d={row:a+1,column:0};else if(this.end.rowa)var e={row:a+1,column:0};else if(this.start.row1?(T++,T>4&&(T=1)):T=1,h.isIE){var w=Math.abs(C.clientX-k)>5||Math.abs(C.clientY-_)>5;(!O||w)&&(T=1),O&&clearTimeout(O),O=setTimeout(function(){O=null},E[T-1]||600),T==1&&(k=C.clientX,_=C.clientY)}if(C._clicks=T,b[g]("mousedown",C),T>4)T=0;else if(T>1)return b[g]($[T],C)}Array.isArray(D)||(D=[D]),D.forEach(function(C){l(C,"mousedown",A,S)})};function c(D){return 0|(D.ctrlKey?1:0)|(D.altKey?2:0)|(D.shiftKey?4:0)|(D.metaKey?8:0)}u.getModifierString=function(D){return o.KEY_MODS[c(D)]};function f(D,E,b){var g=c(E);if(!b&&E.code&&(b=o.$codeToKeyCode[E.code]||b),!h.isMac&&p){if(E.getModifierState&&(E.getModifierState("OS")||E.getModifierState("Win"))&&(g|=8),p.altGr)if((3&g)!=3)p.altGr=0;else return;if(b===18||b===17){var S=E.location;if(b===17&&S===1)p[b]==1&&(a=E.timeStamp);else if(b===18&&g===3&&S===2){var T=E.timeStamp-a;T<50&&(p.altGr=!0)}}}if(b in o.MODIFIER_KEYS&&(b=-1),!(!g&&b===13&&E.location===3&&(D(E,g,-b),E.defaultPrevented))){if(h.isChromeOS&&g&8){if(D(E,g,b),E.defaultPrevented)return;g&=-9}return!g&&!(b in o.FUNCTION_KEYS)&&!(b in o.PRINTABLE_KEYS)?!1:D(E,g,b)}}u.addCommandKeyListener=function(D,E,b){var g=null;l(D,"keydown",function(S){p[S.keyCode]=(p[S.keyCode]||0)+1;var T=f(E,S,S.keyCode);return g=S.defaultPrevented,T},b),l(D,"keypress",function(S){g&&(S.ctrlKey||S.altKey||S.shiftKey||S.metaKey)&&(u.stopEvent(S),g=null)},b),l(D,"keyup",function(S){p[S.keyCode]=null},b),p||(m(),l(window,"focus",m))};function m(){p=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!h.isOldIE){var y=1;u.nextTick=function(D,E){E=E||window;var b="zero-timeout-message-"+y++,g=function(S){S.data==b&&(u.stopPropagation(S),s(E,"message",g),D())};l(E,"message",g),E.postMessage(b,"*")}}u.$idleBlocked=!1,u.onIdle=function(D,E){return setTimeout(function b(){u.$idleBlocked?setTimeout(b,100):D()},E)},u.$idleBlockId=null,u.blockIdle=function(D){u.$idleBlockId&&clearTimeout(u.$idleBlockId),u.$idleBlocked=!0,u.$idleBlockId=setTimeout(function(){u.$idleBlocked=!1},D||100)},u.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),u.nextFrame?u.nextFrame=u.nextFrame.bind(window):u.nextFrame=function(D){setTimeout(D,17)}}),ace.define("ace/clipboard",["require","exports","module"],function(i,u,v){var o;v.exports={lineMode:!1,pasteCancelled:function(){return o&&o>Date.now()-50?!0:o=!1},cancel:function(){o=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/config","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(i,u,v){var o=i("../lib/event"),h=i("../config").nls,p=i("../lib/useragent"),a=i("../lib/dom"),d=i("../lib/lang"),e=i("../clipboard"),t=p.isChrome<18,r=p.isIE,l=p.isChrome>63,s=400,c=i("../lib/keys"),f=c.KEY_MODS,m=p.isIOS,y=m?/\s/:/\n/,D=p.isMobile,E;E=function(b,g){var S=a.createElement("textarea");S.className="ace_text-input",S.setAttribute("wrap","off"),S.setAttribute("autocorrect","off"),S.setAttribute("autocapitalize","off"),S.setAttribute("spellcheck","false"),S.style.opacity="0",b.insertBefore(S,b.firstChild),this.setHost=function(X){g=X};var T=!1,k=!1,_=!1,O=!1,$="";D||(S.style.fontSize="1px");var A=!1,C=!1,w="",x=0,I=0,F=0,R=Number.MAX_SAFE_INTEGER,B=Number.MIN_SAFE_INTEGER,P=0;try{var V=document.activeElement===S}catch{}this.setNumberOfExtraLines=function(X){if(R=Number.MAX_SAFE_INTEGER,B=Number.MIN_SAFE_INTEGER,X<0){P=0;return}P=X},this.setAriaLabel=function(){var X="";if(g.$textInputAriaLabel&&(X+="".concat(g.$textInputAriaLabel,", ")),g.session){var re=g.session.selection.cursor.row;X+=h("text-input.aria-label","Cursor at row $0",[re+1])}S.setAttribute("aria-label",X)},this.setAriaOptions=function(X){X.activeDescendant?(S.setAttribute("aria-haspopup","true"),S.setAttribute("aria-autocomplete",X.inline?"both":"list"),S.setAttribute("aria-activedescendant",X.activeDescendant)):(S.setAttribute("aria-haspopup","false"),S.setAttribute("aria-autocomplete","both"),S.removeAttribute("aria-activedescendant")),X.role&&S.setAttribute("role",X.role),X.setLabel&&(S.setAttribute("aria-roledescription",h("text-input.aria-roledescription","editor")),this.setAriaLabel())},this.setAriaOptions({role:"textbox"}),o.addListener(S,"blur",function(X){C||(g.onBlur(X),V=!1)},g),o.addListener(S,"focus",function(X){if(!C){if(V=!0,p.isEdge)try{if(!document.hasFocus())return}catch{}g.onFocus(X),p.isEdge?setTimeout(H):H()}},g),this.$focusScroll=!1,this.focus=function(){if(this.setAriaOptions({setLabel:g.renderer.enableKeyboardAccessibility}),$||l||this.$focusScroll=="browser")return S.focus({preventScroll:!0});var X=S.style.top;S.style.position="fixed",S.style.top="0px";try{var re=S.getBoundingClientRect().top!=0}catch{return}var ae=[];if(re)for(var pe=S.parentElement;pe&&pe.nodeType==1;)ae.push(pe),pe.setAttribute("ace_nocontext","true"),!pe.parentElement&&pe.getRootNode?pe=pe.getRootNode().host:pe=pe.parentElement;S.focus({preventScroll:!0}),re&&ae.forEach(function(ce){ce.removeAttribute("ace_nocontext")}),setTimeout(function(){S.style.position="",S.style.top=="0px"&&(S.style.top=X)},0)},this.blur=function(){S.blur()},this.isFocused=function(){return V},g.on("beforeEndOperation",function(){var X=g.curOp,re=X&&X.command&&X.command.name;if(re!="insertstring"){var ae=re&&(X.docChanged||X.selectionChanged);_&&ae&&(w=S.value="",Ze()),H()}}),g.on("changeSelection",this.setAriaLabel);var W=function(X,re){for(var ae=re,pe=1;pe<=X-R&&pe<2*P+1;pe++)ae+=g.session.getLine(X-pe).length+1;return ae},H=m?function(X){if(!(!V||T&&!X||O)){X||(X="");var re=` ab`+X+`cde fg -`;re!=S.value&&(S.value=w=re);var ae=4,de=4+(X.length||(g.selection.isEmpty()?0:1));(x!=ae||I!=de)&&S.setSelectionRange(ae,de),x=ae,I=de}}:function(){if(!(T||F)&&!(!V&&!Q)){T=!0;var X=0,re=0,ae="";if(g.session){var de=g.selection,ce=de.getRange(),Ee=de.cursor.row;Ee===P+1?(O=P+1,P=O+2*B):Ee===O-1?(P=O-1,O=P-2*B):(EeP+1)&&(O=Ee>B?Ee-B:0,P=Ee>B?Ee+B:2*B);for(var $e=[],xe=O;xe<=P;xe++)$e.push(g.session.getLine(xe));if(ae=$e.join(` -`),X=W(ce.start.row,ce.start.column),re=W(ce.end.row,ce.end.column),ce.start.rowP){var ve=g.session.getLine(P+1);re=ce.end.row>P+1?ve.length:ce.end.column,re+=ae.length+1,ae=ae+` +`;re!=S.value&&(S.value=w=re);var ae=4,pe=4+(X.length||(g.selection.isEmpty()?0:1));(x!=ae||I!=pe)&&S.setSelectionRange(ae,pe),x=ae,I=pe}}:function(){if(!(_||O)&&!(!V&&!Q)){_=!0;var X=0,re=0,ae="";if(g.session){var pe=g.selection,ce=pe.getRange(),Ee=pe.cursor.row;Ee===B+1?(R=B+1,B=R+2*P):Ee===R-1?(B=R-1,R=B-2*P):(EeB+1)&&(R=Ee>P?Ee-P:0,B=Ee>P?Ee+P:2*P);for(var $e=[],xe=R;xe<=B;xe++)$e.push(g.session.getLine(xe));if(ae=$e.join(` +`),X=W(ce.start.row,ce.start.column),re=W(ce.end.row,ce.end.column),ce.start.rowB){var ve=g.session.getLine(B+1);re=ce.end.row>B+1?ve.length:ce.end.column,re+=ae.length+1,ae=ae+` `+ve}else D&&Ee>0&&(ae=` -`+ae,re+=1,X+=1);ae.length>a&&(Xs&&(X=w.length&&X.value===w&&w&&X.selectionEnd!==I},G=function(X){T||(M?M=!1:U(S)?(g.selectAll(),H()):D&&S.selectionStart!=x&&H())},Y=null;this.setInputHandler=function(X){Y=X},this.getInputHandler=function(){return Y};var Q=!1,ee=function(X,re){if(Q&&(Q=!1),_)return H(),X&&g.onPaste(X),_=!1,"";for(var ae=S.selectionStart,de=S.selectionEnd,ce=x,Ee=w.length-I,$e=X,xe=X.length-ae,we=X.length-de,ve=0;ce>0&&w[ve]==X[ve];)ve++,ce--;for($e=$e.slice(ve),ve=1;Ee>0&&w.length-ve>x-1&&w[w.length-ve]==X[X.length-ve];)ve++,Ee--;xe-=ve-1,we-=ve-1;var Fe=$e.length-ve+1;if(Fe<0&&(ce=-Fe,Fe=0),$e=$e.slice(0,Fe),!re&&!$e&&!xe&&!ce&&!Ee&&!we)return"";F=!0;var st=!1;return d.isAndroid&&$e==". "&&($e=" ",st=!0),$e&&!ce&&!Ee&&!xe&&!we||$?g.onTextInput($e):g.onTextInput($e,{extendLeft:ce,extendRight:Ee,restoreStart:xe,restoreEnd:we}),F=!1,w=X,x=ae,I=de,R=we,st?` -`:$e},ne=function(X){if(T)return Xe();if(X&&X.inputType){if(X.inputType=="historyUndo")return g.execCommand("undo");if(X.inputType=="historyRedo")return g.execCommand("redo")}var re=S.value,ae=ee(re,!0);(re.length>a+100||y.test(ae)||D&&x<1&&x==I)&&H()},se=function(X,re,ae){var de=X.clipboardData||window.clipboardData;if(!(!de||t)){var ce=r||ae?"Text":"text/plain";try{return re?de.setData(ce,re)!==!1:de.getData(ce)}catch(Ee){if(!ae)return se(Ee,re,!0)}}},ge=function(X,re){var ae=g.getCopyText();if(!ae)return o.preventDefault(X);se(X,ae)?(m&&(H(ae),M=ae,setTimeout(function(){M=!1},10)),re?g.onCut():g.onCopy(),o.preventDefault(X)):(M=!0,S.value=ae,S.select(),setTimeout(function(){M=!1,H(),re?g.onCut():g.onCopy()}))},be=function(X){ge(X,!0)},ke=function(X){ge(X,!1)},Ce=function(X){var re=se(X);e.pasteCancelled()||(typeof re=="string"?(re&&g.onPaste(re,X),d.isIE&&setTimeout(H),o.preventDefault(X)):(S.value="",_=!0))};o.addCommandKeyListener(S,function(X,re,ae){if(!T)return g.onCommandKey(X,re,ae)},g),o.addListener(S,"select",G,g),o.addListener(S,"input",ne,g),o.addListener(S,"cut",be,g),o.addListener(S,"copy",ke,g),o.addListener(S,"paste",Ce,g),(!("oncut"in S)||!("oncopy"in S)||!("onpaste"in S))&&o.addListener(b,"keydown",function(X){if(!(d.isMac&&!X.metaKey||!X.ctrlKey))switch(X.keyCode){case 67:ke(X);break;case 86:Ce(X);break;case 88:be(X);break}},g);var Ne=function(X){if(!(T||!g.onCompositionStart||g.$readOnly)&&(T={},!$)){X.data&&(T.useTextareaForIME=!1),setTimeout(Xe,0),g._signal("compositionStart"),g.on("mousedown",Rt);var re=g.getSelectionRange();re.end.row=re.start.row,re.end.column=re.start.column,T.markerRange=re,T.selectionStart=x,g.onCompositionStart(T),T.useTextareaForIME?(w=S.value="",x=0,I=0):(S.msGetInputContext&&(T.context=S.msGetInputContext()),S.getInputContext&&(T.context=S.getInputContext()))}},Xe=function(){if(!(!T||!g.onCompositionUpdate||g.$readOnly)){if($)return Rt();if(T.useTextareaForIME)g.onCompositionUpdate(S.value);else{var X=S.value;ee(X),T.markerRange&&(T.context&&(T.markerRange.start.column=T.selectionStart=T.context.compositionStartOffset),T.markerRange.end.column=T.markerRange.start.column+I-T.selectionStart+R)}}},Ze=function(X){!g.onCompositionEnd||g.$readOnly||(T=!1,g.onCompositionEnd(),g.off("mousedown",Rt),X&&ne())};function Rt(){C=!0,S.blur(),S.focus(),C=!1}var Jt=p.delayedCall(Xe,50).schedule.bind(null,null);function bn(X){X.keyCode==27&&S.value.lengthI&&w[we]==` +`;Fe!=w&&(S.value=w=Fe,x=I=Fe.length)}if(Q&&(x=S.selectionStart,I=S.selectionEnd),I!=re||x!=X||S.selectionEnd!=I)try{S.setSelectionRange(X,re),x=X,I=re}catch{}_=!1}};this.resetSelection=H,V&&g.onFocus();var U=function(X){return X.selectionStart===0&&X.selectionEnd>=w.length&&X.value===w&&w&&X.selectionEnd!==I},G=function(X){_||(T?T=!1:U(S)?(g.selectAll(),H()):D&&S.selectionStart!=x&&H())},Y=null;this.setInputHandler=function(X){Y=X},this.getInputHandler=function(){return Y};var Q=!1,ee=function(X,re){if(Q&&(Q=!1),k)return H(),X&&g.onPaste(X),k=!1,"";for(var ae=S.selectionStart,pe=S.selectionEnd,ce=x,Ee=w.length-I,$e=X,xe=X.length-ae,we=X.length-pe,ve=0;ce>0&&w[ve]==X[ve];)ve++,ce--;for($e=$e.slice(ve),ve=1;Ee>0&&w.length-ve>x-1&&w[w.length-ve]==X[X.length-ve];)ve++,Ee--;xe-=ve-1,we-=ve-1;var Fe=$e.length-ve+1;if(Fe<0&&(ce=-Fe,Fe=0),$e=$e.slice(0,Fe),!re&&!$e&&!xe&&!ce&&!Ee&&!we)return"";O=!0;var st=!1;return p.isAndroid&&$e==". "&&($e=" ",st=!0),$e&&!ce&&!Ee&&!xe&&!we||A?g.onTextInput($e):g.onTextInput($e,{extendLeft:ce,extendRight:Ee,restoreStart:xe,restoreEnd:we}),O=!1,w=X,x=ae,I=pe,F=we,st?` +`:$e},ne=function(X){if(_)return Xe();if(X&&X.inputType){if(X.inputType=="historyUndo")return g.execCommand("undo");if(X.inputType=="historyRedo")return g.execCommand("redo")}var re=S.value,ae=ee(re,!0);(re.length>s+100||y.test(ae)||D&&x<1&&x==I)&&H()},se=function(X,re,ae){var pe=X.clipboardData||window.clipboardData;if(!(!pe||t)){var ce=r||ae?"Text":"text/plain";try{return re?pe.setData(ce,re)!==!1:pe.getData(ce)}catch(Ee){if(!ae)return se(Ee,re,!0)}}},ge=function(X,re){var ae=g.getCopyText();if(!ae)return o.preventDefault(X);se(X,ae)?(m&&(H(ae),T=ae,setTimeout(function(){T=!1},10)),re?g.onCut():g.onCopy(),o.preventDefault(X)):(T=!0,S.value=ae,S.select(),setTimeout(function(){T=!1,H(),re?g.onCut():g.onCopy()}))},be=function(X){ge(X,!0)},ke=function(X){ge(X,!1)},Ce=function(X){var re=se(X);e.pasteCancelled()||(typeof re=="string"?(re&&g.onPaste(re,X),p.isIE&&setTimeout(H),o.preventDefault(X)):(S.value="",k=!0))};o.addCommandKeyListener(S,function(X,re,ae){if(!_)return g.onCommandKey(X,re,ae)},g),o.addListener(S,"select",G,g),o.addListener(S,"input",ne,g),o.addListener(S,"cut",be,g),o.addListener(S,"copy",ke,g),o.addListener(S,"paste",Ce,g),(!("oncut"in S)||!("oncopy"in S)||!("onpaste"in S))&&o.addListener(b,"keydown",function(X){if(!(p.isMac&&!X.metaKey||!X.ctrlKey))switch(X.keyCode){case 67:ke(X);break;case 86:Ce(X);break;case 88:be(X);break}},g);var Ne=function(X){if(!(_||!g.onCompositionStart||g.$readOnly)&&(_={},!A)){X.data&&(_.useTextareaForIME=!1),setTimeout(Xe,0),g._signal("compositionStart"),g.on("mousedown",Ot);var re=g.getSelectionRange();re.end.row=re.start.row,re.end.column=re.start.column,_.markerRange=re,_.selectionStart=x,g.onCompositionStart(_),_.useTextareaForIME?(w=S.value="",x=0,I=0):(S.msGetInputContext&&(_.context=S.msGetInputContext()),S.getInputContext&&(_.context=S.getInputContext()))}},Xe=function(){if(!(!_||!g.onCompositionUpdate||g.$readOnly)){if(A)return Ot();if(_.useTextareaForIME)g.onCompositionUpdate(S.value);else{var X=S.value;ee(X),_.markerRange&&(_.context&&(_.markerRange.start.column=_.selectionStart=_.context.compositionStartOffset),_.markerRange.end.column=_.markerRange.start.column+I-_.selectionStart+F)}}},Ze=function(X){!g.onCompositionEnd||g.$readOnly||(_=!1,g.onCompositionEnd(),g.off("mousedown",Ot),X&&ne())};function Ot(){C=!0,S.blur(),S.focus(),C=!1}var Jt=d.delayedCall(Xe,50).schedule.bind(null,null);function bn(X){X.keyCode==27&&S.value.lengthI&&w[we]==` `?ve=c.end:xeI&&w.slice(0,we).split(` -`).length>2?ve=c.down:we>I&&w[we-1]==" "?(ve=c.right,Fe=f.option):(we>I||we==I&&I!=x&&xe==we)&&(ve=c.right),xe!==we&&(Fe|=f.shift),ve){var st=re.onCommandKey({},Fe,ve);if(!st&&re.commands){ve=c.keyCodeToString(ve);var Yt=re.commands.findKeyCommand(Fe,ve);Yt&&re.execCommand(Yt)}x=xe,I=we,H("")}}};document.addEventListener("selectionchange",Ee),re.on("destroy",function(){document.removeEventListener("selectionchange",Ee)})}this.destroy=function(){S.parentElement&&S.parentElement.removeChild(S)}},u.TextInput=E,u.$setUserAgentForTests=function(b,g){D=b,m=g}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(i,u,v){var o=i("../lib/useragent"),h=0,d=550,s=function(){function t(r){r.$clickSelection=null;var l=r.editor;l.setDefaultHandler("mousedown",this.onMouseDown.bind(r)),l.setDefaultHandler("dblclick",this.onDoubleClick.bind(r)),l.setDefaultHandler("tripleclick",this.onTripleClick.bind(r)),l.setDefaultHandler("quadclick",this.onQuadClick.bind(r)),l.setDefaultHandler("mousewheel",this.onMouseWheel.bind(r));var a=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];a.forEach(function(c){r[c]=this[c]},this),r.selectByLines=this.extendSelectionBy.bind(r,"getLineRange"),r.selectByWords=this.extendSelectionBy.bind(r,"getWordRange")}return t.prototype.onMouseDown=function(r){var l=r.inSelection(),a=r.getDocumentPosition();this.mousedownEvent=r;var c=this.editor,f=r.getButton();if(f!==0){var m=c.getSelectionRange(),y=m.isEmpty();(y||f==1)&&c.selection.moveToPosition(a),f==2&&(c.textInput.onContextMenu(r.domEvent),o.isMozilla||r.preventDefault());return}if(this.mousedownEvent.time=Date.now(),l&&!c.isFocused()&&(c.focus(),this.$focusTimeout&&!this.$clickSelection&&!c.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(r);return}return this.captureMouse(r),this.startSelect(a,r.domEvent._clicks>1),r.preventDefault()},t.prototype.startSelect=function(r,l){r=r||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var a=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?a.selection.selectToPosition(r):l||a.selection.moveToPosition(r),l||this.select(),a.setStyle("ace_selecting"),this.setState("select"))},t.prototype.select=function(){var r,l=this.editor,a=l.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var c=this.$clickSelection.comparePoint(a);if(c==-1)r=this.$clickSelection.end;else if(c==1)r=this.$clickSelection.start;else{var f=e(this.$clickSelection,a);a=f.cursor,r=f.anchor}l.selection.setSelectionAnchor(r.row,r.column)}l.selection.selectToPosition(a),l.renderer.scrollCursorIntoView()},t.prototype.extendSelectionBy=function(r){var l,a=this.editor,c=a.renderer.screenToTextCoordinates(this.x,this.y),f=a.selection[r](c.row,c.column);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(f.start),y=this.$clickSelection.comparePoint(f.end);if(m==-1&&y<=0)l=this.$clickSelection.end,(f.end.row!=c.row||f.end.column!=c.column)&&(c=f.start);else if(y==1&&m>=0)l=this.$clickSelection.start,(f.start.row!=c.row||f.start.column!=c.column)&&(c=f.end);else if(m==-1&&y==1)c=f.end,l=f.start;else{var D=e(this.$clickSelection,c);c=D.cursor,l=D.anchor}a.selection.setSelectionAnchor(l.row,l.column)}a.selection.selectToPosition(c),a.renderer.scrollCursorIntoView()},t.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},t.prototype.focusWait=function(){var r=p(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),l=Date.now();(r>h||l-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},t.prototype.onDoubleClick=function(r){var l=r.getDocumentPosition(),a=this.editor,c=a.session,f=c.getBracketRange(l);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=a.selection.getWordRange(l.row,l.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},t.prototype.onTripleClick=function(r){var l=r.getDocumentPosition(),a=this.editor;this.setState("selectByLines");var c=a.getSelectionRange();c.isMultiLine()&&c.contains(l.row,l.column)?(this.$clickSelection=a.selection.getLineRange(c.start.row),this.$clickSelection.end=a.selection.getLineRange(c.end.row).end):this.$clickSelection=a.selection.getLineRange(l.row),this.select()},t.prototype.onQuadClick=function(r){var l=this.editor;l.selectAll(),this.$clickSelection=l.getSelectionRange(),this.setState("selectAll")},t.prototype.onMouseWheel=function(r){if(!r.getAccelKey()){r.getShiftKey()&&r.wheelY&&!r.wheelX&&(r.wheelX=r.wheelY,r.wheelY=0);var l=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var a=this.$lastScroll,c=r.domEvent.timeStamp,f=c-a.t,m=f?r.wheelX/f:a.vx,y=f?r.wheelY/f:a.vy;f=1&&l.renderer.isScrollableBy(r.wheelX*r.speed,0)&&(E=!0),D<=1&&l.renderer.isScrollableBy(0,r.wheelY*r.speed)&&(E=!0),E)a.allowed=c;else if(c-a.allowedd.clientHeight;s||h.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(i,u,v){var o=this&&this.__extends||function(){var c=function(f,m){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,D){y.__proto__=D}||function(y,D){for(var E in D)Object.prototype.hasOwnProperty.call(D,E)&&(y[E]=D[E])},c(f,m)};return function(f,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");c(f,m);function y(){this.constructor=f}f.prototype=m===null?Object.create(m):(y.prototype=m.prototype,new y)}}(),h=this&&this.__values||function(c){var f=typeof Symbol=="function"&&Symbol.iterator,m=f&&c[f],y=0;if(m)return m.call(c);if(c&&typeof c.length=="number")return{next:function(){return c&&y>=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},d=i("./lib/dom");i("./lib/event");var s=i("./range").Range,p=i("./lib/scroll").preventParentScroll,e="ace_tooltip",t=function(){function c(f){this.isOpen=!1,this.$element=null,this.$parentNode=f}return c.prototype.$init=function(){return this.$element=d.createElement("div"),this.$element.className=e,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},c.prototype.getElement=function(){return this.$element||this.$init()},c.prototype.setText=function(f){this.getElement().textContent=f},c.prototype.setHtml=function(f){this.getElement().innerHTML=f},c.prototype.setPosition=function(f,m){this.getElement().style.left=f+"px",this.getElement().style.top=m+"px"},c.prototype.setClassName=function(f){d.addCssClass(this.getElement(),f)},c.prototype.setTheme=function(f){this.$element.className=e+" "+(f.isDark?"ace_dark ":"")+(f.cssClass||"")},c.prototype.show=function(f,m,y){f!=null&&this.setText(f),m!=null&&y!=null&&this.setPosition(m,y),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},c.prototype.hide=function(f){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=e,this.isOpen=!1)},c.prototype.getHeight=function(){return this.getElement().offsetHeight},c.prototype.getWidth=function(){return this.getElement().offsetWidth},c.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},c}(),r=function(){function c(){this.popups=[]}return c.prototype.addPopup=function(f){this.popups.push(f),this.updatePopups()},c.prototype.removePopup=function(f){var m=this.popups.indexOf(f);m!==-1&&(this.popups.splice(m,1),this.updatePopups())},c.prototype.updatePopups=function(){var f,m,y,D;this.popups.sort(function(A,$){return $.priority-A.priority});var E=[];try{for(var b=h(this.popups),g=b.next();!g.done;g=b.next()){var S=g.value,M=!0;try{for(var _=(y=void 0,h(E)),T=_.next();!T.done;T=_.next()){var F=T.value;if(this.doPopupsOverlap(F,S)){M=!1;break}}}catch(A){y={error:A}}finally{try{T&&!T.done&&(D=_.return)&&D.call(_)}finally{if(y)throw y.error}}M?E.push(S):S.hide()}}catch(A){f={error:A}}finally{try{g&&!g.done&&(m=b.return)&&m.call(b)}finally{if(f)throw f.error}}},c.prototype.doPopupsOverlap=function(f,m){var y=f.getElement().getBoundingClientRect(),D=m.getElement().getBoundingClientRect();return y.leftD.left&&y.topD.top},c}(),l=new r;u.popupManager=l,u.Tooltip=t;var a=function(c){o(f,c);function f(m){m===void 0&&(m=document.body);var y=c.call(this,m)||this;y.timeout=void 0,y.lastT=0,y.idleTime=350,y.lastEvent=void 0,y.onMouseOut=y.onMouseOut.bind(y),y.onMouseMove=y.onMouseMove.bind(y),y.waitForHover=y.waitForHover.bind(y),y.hide=y.hide.bind(y);var D=y.getElement();return D.style.whiteSpace="pre-wrap",D.style.pointerEvents="auto",D.addEventListener("mouseout",y.onMouseOut),D.tabIndex=-1,D.addEventListener("blur",function(){D.contains(document.activeElement)||this.hide()}.bind(y)),D.addEventListener("wheel",p),y}return f.prototype.addToEditor=function(m){m.on("mousemove",this.onMouseMove),m.on("mousedown",this.hide),m.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},f.prototype.removeFromEditor=function(m){m.off("mousemove",this.onMouseMove),m.off("mousedown",this.hide),m.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},f.prototype.onMouseMove=function(m,y){this.lastEvent=m,this.lastT=Date.now();var D=y.$mouseHandler.isMousePressed;if(this.isOpen){var E=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(E.row,E.column)||D||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||D||(this.lastEvent=m,this.timeout=setTimeout(this.waitForHover,this.idleTime))},f.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var m=Date.now()-this.lastT;if(this.idleTime-m>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-m);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},f.prototype.isOutsideOfText=function(m){var y=m.editor,D=m.getDocumentPosition(),E=y.session.getLine(D.row);if(D.column==E.length){var b=y.renderer.pixelToScreenCoordinates(m.clientX,m.clientY),g=y.session.documentToScreenPosition(D.row,D.column);if(g.column!=b.column||g.row!=b.row)return!0}return!1},f.prototype.setDataProvider=function(m){this.$gatherData=m},f.prototype.showForRange=function(m,y,D,E){var b=10;if(!(E&&E!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var g=m.renderer;this.isOpen||(l.addPopup(this),this.$registerCloseEvents(),this.setTheme(g.theme)),this.isOpen=!0,this.addMarker(y,m.session),this.range=s.fromPoints(y.start,y.end);var S=g.textToScreenCoordinates(y.start.row,y.start.column),M=g.scroller.getBoundingClientRect();S.pageX=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},d=i("../lib/dom"),s=i("../lib/event"),p=i("../tooltip").Tooltip,e=i("../config").nls,t=5,r=3;u.GUTTER_TOOLTIP_LEFT_OFFSET=t,u.GUTTER_TOOLTIP_TOP_OFFSET=r;function l(c){var f=c.editor,m=f.renderer.$gutterLayer,y=new a(f,!0);c.editor.setDefaultHandler("guttermousedown",function(M){if(!(!f.isFocused()||M.getButton()!=0)){var _=m.getRegion(M);if(_!="foldWidgets"){var T=M.getDocumentPosition().row,F=f.session.selection;if(M.getShiftKey())F.selectTo(T,0);else{if(M.domEvent.detail==2)return f.selectAll(),M.preventDefault();c.$clickSelection=f.selection.getLineRange(T)}return c.setState("selectByLines"),c.captureMouse(M),M.preventDefault()}}});var D,E;function b(){var M=E.getDocumentPosition().row,_=f.session.getLength();if(M==_){var T=f.renderer.pixelToScreenCoordinates(0,E.y).row,F=E.$pos;if(T>f.session.documentToScreenRow(F.row,F.column))return g()}if(y.showTooltip(M),!!y.isOpen)if(f.on("mousewheel",g),f.on("changeSession",g),window.addEventListener("keydown",g,!0),c.$tooltipFollowsMouse)S(E);else{var A=E.getGutterRow(),$=m.$lines.get(A);if($){var C=$.element.querySelector(".ace_gutter_annotation"),w=C.getBoundingClientRect(),x=y.getElement().style;x.left=w.right-t+"px",x.top=w.bottom-r+"px"}else S(E)}}function g(M){M&&M.type==="keydown"&&(M.ctrlKey||M.metaKey)||M&&M.type==="mouseout"&&(!M.relatedTarget||y.getElement().contains(M.relatedTarget))||(D&&(D=clearTimeout(D)),y.isOpen&&(y.hideTooltip(),f.off("mousewheel",g),f.off("changeSession",g),window.removeEventListener("keydown",g,!0)))}function S(M){y.setPosition(M.x,M.y)}c.editor.setDefaultHandler("guttermousemove",function(M){var _=M.domEvent.target||M.domEvent.srcElement;if(d.hasCssClass(_,"ace_fold-widget")||d.hasCssClass(_,"ace_custom-widget"))return g();y.isOpen&&c.$tooltipFollowsMouse&&S(M),E=M,!D&&(D=setTimeout(function(){D=null,E&&!c.isMousePressed&&b()},50))}),s.addListener(f.renderer.$gutter,"mouseout",function(M){E=null,y.isOpen&&(D=setTimeout(function(){D=null,g(M)},50))},f)}u.GutterHandler=l;var a=function(c){o(f,c);function f(m,y){y===void 0&&(y=!1);var D=c.call(this,m.container)||this;D.editor=m,D.visibleTooltipRow;var E=D.getElement();return E.setAttribute("role","tooltip"),E.style.pointerEvents="auto",y&&(D.onMouseOut=D.onMouseOut.bind(D),E.addEventListener("mouseout",D.onMouseOut)),D}return f.prototype.onMouseOut=function(m){this.isOpen&&(!m.relatedTarget||this.getElement().contains(m.relatedTarget)||m&&m.currentTarget.contains(m.relatedTarget)||this.hideTooltip())},f.prototype.setPosition=function(m,y){var D=window.innerWidth||document.documentElement.clientWidth,E=window.innerHeight||document.documentElement.clientHeight,b=this.getWidth(),g=this.getHeight();m+=15,y+=15,m+b>D&&(m-=m+b-D),y+g>E&&(y-=20+g),p.prototype.setPosition.call(this,m,y)},Object.defineProperty(f,"annotationLabels",{get:function(){return{error:{singular:e("gutter-tooltip.aria-label.error.singular","error"),plural:e("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:e("gutter-tooltip.aria-label.security.singular","security finding"),plural:e("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:e("gutter-tooltip.aria-label.warning.singular","warning"),plural:e("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:e("gutter-tooltip.aria-label.info.singular","information message"),plural:e("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:e("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:e("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),f.prototype.showTooltip=function(m){var y,D=this.editor.renderer.$gutterLayer,E=D.$annotations[m],b;E?b={displayText:Array.from(E.displayText),type:Array.from(E.type)}:b={displayText:[],type:[]};var g=D.session.getFoldLine(m);if(g&&D.$showFoldedAnnotations){for(var S={error:[],security:[],warning:[],info:[],hint:[]},M={error:1,security:2,warning:3,info:4,hint:5},_,T=m+1;T<=g.end.row;T++)if(D.$annotations[T])for(var F=0;Fe?A=null:U-A>=p&&(a.renderer.scrollCursorIntoView(),A=null)}}function w(W,H){var U=Date.now(),G=a.renderer.layerConfig.lineHeight,Y=a.renderer.layerConfig.characterWidth,Q=a.renderer.scroller.getBoundingClientRect(),ee={x:{left:D-Q.left,right:Q.right-D},y:{top:E-Q.top,bottom:Q.bottom-E}},ne=Math.min(ee.x.left,ee.x.right),se=Math.min(ee.y.top,ee.y.bottom),ge={row:W.row,column:W.column};ne/Y<=2&&(ge.column+=ee.x.left=s&&a.renderer.scrollCursorIntoView(ge):F=U:F=null}function x(){var W=S;S=a.renderer.screenToTextCoordinates(D,E),C(S,W),w(S,W)}function I(){g=a.selection.toOrientedRange(),y=a.session.addMarker(g,"ace_selection",a.getSelectionStyle()),a.clearSelection(),a.isFocused()&&a.renderer.$cursorLayer.setBlinking(!1),clearInterval(b),x(),b=setInterval(x,20),M=0,h.addListener(document,"mousemove",P)}function R(){clearInterval(b),a.session.removeMarker(y),y=null,a.selection.fromOrientedRange(g),a.isFocused()&&!T&&a.$resetCursorStyle(),g=null,S=null,M=0,F=null,A=null,h.removeListener(document,"mousemove",P)}var O=null;function P(){O==null&&(O=setTimeout(function(){O!=null&&y&&R()},20))}function B(W){var H=W.types;return!H||Array.prototype.some.call(H,function(U){return U=="text/plain"||U=="Text"})}function V(W){var H=["copy","copymove","all","uninitialized"],U=["move","copymove","linkmove","all","uninitialized"],G=d.isMac?W.altKey:W.ctrlKey,Y="uninitialized";try{Y=W.dataTransfer.effectAllowed.toLowerCase()}catch{}var Q="none";return G&&H.indexOf(Y)>=0?Q="copy":U.indexOf(Y)>=0?Q="move":H.indexOf(Y)>=0&&(Q="copy"),Q}}(function(){this.dragWait=function(){var l=Date.now()-this.mousedownEvent.time;l>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var l=this.editor.container;l.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(l){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var l=this.editor,a=l.container;a.draggable=!0,l.renderer.$cursorLayer.setBlinking(!1),l.setStyle("ace_dragging");var c=d.isWin?"default":"move";l.renderer.setCursorStyle(c),this.setState("dragReady")},this.onMouseDrag=function(l){var a=this.editor.container;if(d.isIE&&this.state=="dragReady"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>3&&a.dragDrop()}if(this.state==="dragWait"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>0&&(a.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(l){if(this.$dragEnabled){this.mousedownEvent=l;var a=this.editor,c=l.inSelection(),f=l.getButton(),m=l.domEvent.detail||1;if(m===1&&f===0&&c){if(l.editor.inMultiSelectMode&&(l.getAccelKey()||l.getShiftKey()))return;this.mousedownEvent.time=Date.now();var y=l.domEvent.target||l.domEvent.srcElement;if("unselectable"in y&&(y.unselectable="on"),a.getDragDelay()){if(d.isWebKit){this.cancelDrag=!0;var D=a.container;D.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(l,this.onMouseDrag.bind(this)),l.defaultPrevented=!0}}}}).call(t.prototype);function r(l,a,c,f){return Math.sqrt(Math.pow(c-l,2)+Math.pow(f-a,2))}u.DragdropHandler=t}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(i,u,v){var o=i("./mouse_event").MouseEvent,h=i("../lib/event"),d=i("../lib/dom");u.addTouchListeners=function(s,p){var e="scroll",t,r,l,a,c,f,m=0,y,D=0,E=0,b=0,g,S;function M(){var C=window.navigator&&window.navigator.clipboard,w=!1,x=function(){var O=p.getCopyText(),P=p.session.getUndoManager().hasUndo();S.replaceChild(d.buildDom(w?["span",!O&&I("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],O&&I("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],O&&I("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],C&&I("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],P&&I("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],I("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],I("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),S.firstChild)},I=function(O){return p.commands.canExecute(O,p)},R=function(O){var P=O.target.getAttribute("action");if(P=="more"||!w)return w=!w,x();P=="paste"?C.readText().then(function(B){p.execCommand(P,B)}):P&&((P=="cut"||P=="copy")&&(C?C.writeText(p.getCopyText()):document.execCommand("copy")),p.execCommand(P)),S.firstChild.style.display="none",w=!1,P!="openCommandPalette"&&p.focus()};S=d.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(O){e="menu",O.stopPropagation(),O.preventDefault(),p.textInput.focus()},ontouchend:function(O){O.stopPropagation(),O.preventDefault(),R(O)},onclick:R},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],p.container)}function _(){if(!p.getOption("enableMobileMenu")){S&&T();return}S||M();var C=p.selection.cursor,w=p.renderer.textToScreenCoordinates(C.row,C.column),x=p.renderer.textToScreenCoordinates(0,0).pageX,I=p.renderer.scrollLeft,R=p.container.getBoundingClientRect();S.style.top=w.pageY-R.top-3+"px",w.pageX-R.left=2?p.selection.getLineRange(y.row):p.session.getBracketRange(y);C&&!C.isEmpty()?p.selection.setRange(C):p.selection.selectWord(),e="wait"}h.addListener(s,"contextmenu",function(C){if(g){var w=p.textInput.getElement();w.focus()}},p),h.addListener(s,"touchstart",function(C){var w=C.touches;if(c||w.length>1){clearTimeout(c),c=null,l=-1,e="zoom";return}g=p.$mouseHandler.isMousePressed=!0;var x=p.renderer.layerConfig.lineHeight,I=p.renderer.layerConfig.lineHeight,R=C.timeStamp;a=R;var O=w[0],P=O.clientX,B=O.clientY;Math.abs(t-P)+Math.abs(r-B)>x&&(l=-1),t=C.clientX=P,r=C.clientY=B,E=b=0;var V=new o(C,p);if(y=V.getDocumentPosition(),R-l<500&&w.length==1&&!m)D++,C.preventDefault(),C.button=0,A();else{D=0;var W=p.selection.cursor,H=p.selection.isEmpty()?W:p.selection.anchor,U=p.renderer.$cursorLayer.getPixelPosition(W,!0),G=p.renderer.$cursorLayer.getPixelPosition(H,!0),Y=p.renderer.scroller.getBoundingClientRect(),Q=p.renderer.layerConfig.offset,ee=p.renderer.scrollLeft,ne=function(be,ke){return be=be/I,ke=ke/x-.75,be*be+ke*ke};if(C.clientXge?"cursor":"anchor"),ge<3.5?e="anchor":se<3.5?e="cursor":e="scroll",c=setTimeout(F,450)}l=R},p),h.addListener(s,"touchend",function(C){g=p.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),e=="zoom"?(e="",m=0):c?(p.selection.moveToPosition(y),m=0,_()):e=="scroll"?($(),T()):_(),clearTimeout(c),c=null},p),h.addListener(s,"touchmove",function(C){c&&(clearTimeout(c),c=null);var w=C.touches;if(!(w.length>1||e=="zoom")){var x=w[0],I=t-x.clientX,R=r-x.clientY;if(e=="wait")if(I*I+R*R>4)e="cursor";else return C.preventDefault();t=x.clientX,r=x.clientY,C.clientX=x.clientX,C.clientY=x.clientY;var O=C.timeStamp,P=O-a;if(a=O,e=="scroll"){var B=new o(C,p);B.speed=1,B.wheelX=I,B.wheelY=R,10*Math.abs(I)0)if(ge==16){for(Ce=ke;Ce-1){for(Ce=ke;Ce=0&&G[Ze]==g;Ze--)H[Ze]=o}}}function P(W,H,U){if(!(h=W){for(Q=Y+1;Q=W;)Q++;for(ee=Y,ne=Q-1;ee=H.length||(Q=U[G-1])!=f&&Q!=m||(ee=H[G+1])!=f&&ee!=m?y:(d&&(ee=m),ee==Q?ee:y);case M:return Q=G>0?U[G-1]:D,Q==f&&G+10&&U[G-1]==f)return f;if(d)return y;for(se=G+1,ne=H.length;se=1425&&ge<=2303||ge==64286;if(Q=H[se],be&&(Q==c||Q==b))return c}return G<1||(Q=H[G-1])==D?y:U[G-1];case D:return d=!1,s=!0,o;case E:return p=!0,y;case F:case A:case C:case w:case $:d=!1;case x:return y}}function V(W){var H=W.charCodeAt(0),U=H>>8;return U==0?H>191?a:I[H]:U==5?/[\u0591-\u05f4]/.test(W)?c:a:U==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(W)?T:/[\u0660-\u0669\u066b-\u066c]/.test(W)?m:H==1642?_:/[\u06f0-\u06f9]/.test(W)?f:b:U==32&&H<=8287?R[H&255]:U==254&&H>=65136?b:y}u.L=a,u.R=c,u.EN=f,u.ON_R=3,u.AN=4,u.R_H=5,u.B=6,u.RLE=7,u.DOT="·",u.doBidiReorder=function(W,H,U){if(W.length<2)return{};var G=W.split(""),Y=new Array(G.length),Q=new Array(G.length),ee=[];o=U?l:r,O(G,ee,G.length,H);for(var ne=0;neb&&H[ne]0&&G[ne-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(G[ne])&&(ee[ne-1]=ee[ne]=u.R_H,ne++);G[G.length-1]===u.DOT&&(ee[G.length-1]=u.B),G[0]==="‫"&&(ee[0]=u.RLE);for(var ne=0;ne=0&&(e=this.session.$docRowCache[r])}return e},p.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var r,l=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(r=this.session.$getRowCacheIndex(t,this.currentRow-e-1),r===l);)l=r,e++;else e=this.currentRow;return e},p.prototype.updateRowLine=function(e,t){e===void 0&&(e=this.getDocumentRow());var r=e===this.session.getLength()-1,l=r?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var a=this.session.$wrapData[e];a&&(t===void 0&&(t=this.getSplitIndex()),t>0&&a.length?(this.wrapIndent=a.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,l=o.getVisualFromLogicalIdx(r,this.bidiMap),a=this.bidiMap.bidiLevels,c=0;!this.session.getOverwrite()&&e<=t&&a[l]%2!==0&&l++;for(var f=0;ft&&a[l]%2===0&&(c+=this.charWidths[a[l]]),this.wrapIndent&&(c+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(c+=this.rtlLineOffset),c},p.prototype.getSelections=function(e,t){var r=this.bidiMap,l=r.bidiLevels,a,c=[],f=0,m=Math.min(e,t)-this.wrapIndent,y=Math.max(e,t)-this.wrapIndent,D=!1,E=!1,b=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var g,S=0;S=m&&gl+f/2;){if(l+=f,a===c.length-1){f=0;break}f=this.charWidths[c[++a]]}return a>0&&c[a-1]%2!==0&&c[a]%2===0?(r0&&c[a-1]%2===0&&c[a]%2!==0?t=1+(r>l?this.bidiMap.logicalFromVisual[a]:this.bidiMap.logicalFromVisual[a-1]):this.isRtlDir&&a===c.length-1&&f===0&&c[a-1]%2===0||!this.isRtlDir&&a===0&&c[a]%2!==0?t=1+this.bidiMap.logicalFromVisual[a]:(a>0&&c[a-1]%2!==0&&f!==0&&a--,t=this.bidiMap.logicalFromVisual[a]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},p}();u.BidiHandler=s}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(i,u,v){var o=i("./lib/oop"),h=i("./lib/lang"),d=i("./lib/event_emitter").EventEmitter,s=i("./range").Range,p=function(){function e(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var r=this;this.cursor.on("change",function(l){r.$cursorChanged=!0,r.$silent||r._emit("changeCursor"),!r.$isEmpty&&!r.$silent&&r._emit("changeSelection"),!r.$keepDesiredColumnOnChange&&l.old.column!=l.value.column&&(r.$desiredColumn=null)}),this.anchor.on("change",function(){r.$anchorChanged=!0,!r.$isEmpty&&!r.$silent&&r._emit("changeSelection")})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(t,r){this.$isEmpty=!1,this.anchor.setPosition(t,r)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var t=this.anchor,r=this.lead;return t.row>r.row||t.row==r.row&&t.column>r.column},e.prototype.getRange=function(){var t=this.anchor,r=this.lead;return this.$isEmpty?s.fromPoints(r,r):this.isBackwards()?s.fromPoints(r,t):s.fromPoints(t,r)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(t,r){var l=r?t.end:t.start,a=r?t.start:t.end;this.$setSelection(l.row,l.column,a.row,a.column)},e.prototype.$setSelection=function(t,r,l,a){if(!this.$silent){var c=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(t,r),this.cursor.setPosition(l,a),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||c!=this.$isEmpty||f)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(t){var r=this.lead;this.$isEmpty&&this.setSelectionAnchor(r.row,r.column),t.call(this)},e.prototype.selectTo=function(t,r){this.$moveSelection(function(){this.moveCursorTo(t,r)})},e.prototype.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},e.prototype.moveTo=function(t,r){this.clearSelection(),this.moveCursorTo(t,r)},e.prototype.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(t,r){if(typeof r>"u"){var l=t||this.lead;t=l.row,r=l.column}return this.session.getWordRange(t,r)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var t=this.getCursor(),r=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(r)},e.prototype.getLineRange=function(t,r){var l=typeof t=="number"?t:this.lead.row,a,c=this.session.getFoldLine(l);return c?(l=c.start.row,a=c.end.row):a=l,r===!0?new s(l,0,a,this.session.getLine(a).length):new s(l,0,a+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(t,r,l){var a=t.column,c=t.column+r;return l<0&&(a=t.column-r,c=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(a,c).split(" ").length-1==r},e.prototype.moveCursorLeft=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(r.start.row,r.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var l=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,l,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-l):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(r.end.row,r.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(r.column=a)}}this.moveCursorTo(r.row,r.column)},e.prototype.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,r=this.doc.getLine(t).length;this.moveCursorTo(t,r)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),a=l.substring(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var c=this.session.getFoldAt(t,r,1);if(c){this.moveCursorTo(c.end.row,c.end.column);return}if(this.session.nonTokenRe.exec(a)&&(r+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,a=l.substring(r)),r>=l.length){this.moveCursorTo(t,l.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(c)&&(r-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,r)},e.prototype.$shortWordEndIndex=function(t){var r=0,l,a=/\s/,c=this.session.tokenRe;if(c.lastIndex=0,this.session.tokenRe.exec(t))r=this.session.tokenRe.lastIndex;else{for(;(l=t[r])&&a.test(l);)r++;if(r<1){for(c.lastIndex=0;(l=t[r])&&!c.test(l);)if(c.lastIndex=0,r++,a.test(l))if(r>2){r--;break}else{for(;(l=t[r])&&a.test(l);)r++;if(r>2)break}}}return c.lastIndex=0,r},e.prototype.moveCursorShortWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),a=l.substring(r),c=this.session.getFoldAt(t,r,1);if(c)return this.moveCursorTo(c.end.row,c.end.column);if(r==l.length){var f=this.doc.getLength();do t++,a=this.doc.getLine(t);while(t0&&/^\s*$/.test(a));r=a.length,/\s+$/.test(a)||(a="")}var c=h.stringReverse(a),f=this.$shortWordEndIndex(c);return this.moveCursorTo(t,r-f)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(t,r){var l=this.session.documentToScreenPosition(this.lead.row,this.lead.column),a;if(r===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(l.row,this.lead.row)?(a=this.session.$bidiHandler.getPosLeft(l.column),l.column=Math.round(a/this.session.$bidiHandler.charWidths[0])):a=l.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?l.column=this.$desiredColumn:this.$desiredColumn=l.column),t!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var c=this.session.lineWidgets[this.lead.row];t<0?t-=c.rowsAbove||0:t>0&&(t+=c.rowCount-(c.rowsAbove||0))}var f=this.session.screenToDocumentPosition(l.row+t,l.column,a);t!==0&&r===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+r,r===0)},e.prototype.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorTo=function(t,r,l){var a=this.session.getFoldAt(t,r,1);a&&(t=a.start.row,r=a.start.column),this.$keepDesiredColumnOnChange=!0;var c=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(c.charAt(r))&&c.charAt(r-1)&&(this.lead.row==t&&this.lead.column==r+1?r=r-1:r=r+1),this.lead.setPosition(t,r),this.$keepDesiredColumnOnChange=!1,l||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(t,r,l){var a=this.session.screenToDocumentPosition(t,r);this.moveCursorTo(a.row,a.column,l)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(t){var r=this.getRange();return t?(t.start.column=r.start.column,t.start.row=r.start.row,t.end.column=r.end.column,t.end.row=r.end.row):t=r,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},e.prototype.getRangeOfMovements=function(t){var r=this.getCursor();try{t(this);var l=this.getCursor();return s.fromPoints(r,l)}catch{return s.fromPoints(r,r)}finally{this.moveCursorToPosition(r)}},e.prototype.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(r){var l=r.clone();return l.isBackwards=r.cursor==r.start,l});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},e.prototype.fromJSON=function(t){if(t.start==null)if(this.rangeList&&t.length>1){this.toSingleRange(t[0]);for(var r=t.length;r--;){var l=s.fromPoints(t[r].start,t[r].end);t[r].isBackwards&&(l.cursor=l.start),this.addRange(l,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},e.prototype.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var r=this.ranges.length;r--;)if(!this.ranges[r].isEqual(t[r]))return!1;return!0},e}();p.prototype.setSelectionAnchor=p.prototype.setAnchor,p.prototype.getSelectionAnchor=p.prototype.getAnchor,p.prototype.setSelectionRange=p.prototype.setRange,o.implement(p.prototype,d),u.Selection=p}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(i,u,v){var o=i("./lib/report_error").reportError,h=2e3,d=function(){function s(p){this.splitRegex,this.states=p,this.regExps={},this.matchMappings={};for(var e in this.states){for(var t=this.states[e],r=[],l=0,a=this.matchMappings[e]={defaultToken:"text"},c="g",f=[],m=0;m1?y.onMatch=this.$applyToken:y.onMatch=y.token),E>1&&(/\\\d/.test(y.regex)?D=y.regex.replace(/\\([0-9]+)/g,function(b,g){return"\\"+(parseInt(g,10)+l+1)}):(E=1,D=this.removeCapturingGroups(y.regex)),!y.splitRegex&&typeof y.token!="string"&&f.push(y)),a[l]=m,l+=E,r.push(D),y.onMatch||(y.onMatch=null)}}r.length||(a[0]=0,r.push("$")),f.forEach(function(b){b.splitRegex=this.createSplitterRegexp(b.regex,c)},this),this.regExps[e]=new RegExp("("+r.join(")|(")+")|($)",c)}}return s.prototype.$setMaxTokenCount=function(p){h=p|0},s.prototype.$applyToken=function(p){var e=this.splitRegex.exec(p).slice(1),t=this.token.apply(this,e);if(typeof t=="string")return[{type:t,value:p}];for(var r=[],l=0,a=t.length;ly){var _=p.substring(y,M-S.length);E.type==b?E.value+=_:(E.type&&m.push(E),E={type:b,value:_})}for(var T=0;Th){for(D>2*p.length&&this.reportError("infinite loop with in ace tokenizer",{startState:e,line:p});y1&&t[0]!==r&&t.unshift("#tmp",r),{tokens:m,state:t.length?t:r}},s}();d.prototype.reportError=o,u.Tokenizer=d}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(i,u,v){var o=i("../lib/deep_copy").deepCopy,h;h=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(p,e){if(!e){for(var t in p)this.$rules[t]=p[t];return}for(var t in p){for(var r=p[t],l=0;l=this.$rowTokens.length;){if(this.$row+=1,s||(s=this.$session.getLength()),this.$row>=s)return this.$row=s-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},d.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},d.prototype.getCurrentTokenRow=function(){return this.$row},d.prototype.getCurrentTokenColumn=function(){var s=this.$rowTokens,p=this.$tokenIndex,e=s[p].start;if(e!==void 0)return e;for(e=0;p>0;)p-=1,e+=s[p].value.length;return e},d.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},d.prototype.getCurrentTokenRange=function(){var s=this.$rowTokens[this.$tokenIndex],p=this.getCurrentTokenColumn();return new o(this.$row,p,this.$row,p+s.value.length)},d}();u.TokenIterator=h}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(i,u,v){var o=i("../../lib/oop"),h=i("../behaviour").Behaviour,d=i("../../token_iterator").TokenIterator,s=i("../../lib/lang"),p=["text","paren.rparen","rparen","paren","punctuation.operator"],e=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],t,r={},l={'"':'"',"'":"'"},a=function(m){var y=-1;if(m.multiSelect&&(y=m.selection.index,r.rangeCount!=m.multiSelect.rangeCount&&(r={rangeCount:m.multiSelect.rangeCount})),r[y])return t=r[y];t=r[y]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},c=function(m,y,D,E){var b=m.end.row-m.start.row;return{text:D+y+E,selection:[0,m.start.column+1,b,m.end.column+(b?0:1)]}},f;f=function(m){m=m||{},this.add("braces","insertion",function(y,D,E,b,g){var S=E.getCursorPosition(),M=b.doc.getLine(S.row);if(g=="{"){a(E);var _=E.getSelectionRange(),T=b.doc.getTextRange(_),F=b.getTokenAt(S.row,S.column);if(T!==""&&T!=="{"&&E.getWrapBehavioursEnabled())return c(_,T,"{","}");if(F&&/(?:string)\.quasi|\.xml/.test(F.type)){var A=[/tag\-(?:open|name)/,/attribute\-name/];return A.some(function(O){return O.test(F.type)})||/(string)\.quasi/.test(F.type)&&F.value[S.column-F.start-1]!=="$"?void 0:(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(E,b))return/[\]\}\)]/.test(M[S.column])||E.inMultiSelectMode||m.braces?(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(E,b,"{"),{text:"{",selection:[1,1]})}else if(g=="}"){a(E);var $=M.substring(S.column,S.column+1);if($=="}"){var C=b.$findOpeningBracket("}",{column:S.column+1,row:S.row});if(C!==null&&f.isAutoInsertedClosing(S,M,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(g==` +`).length>2?ve=c.down:we>I&&w[we-1]==" "?(ve=c.right,Fe=f.option):(we>I||we==I&&I!=x&&xe==we)&&(ve=c.right),xe!==we&&(Fe|=f.shift),ve){var st=re.onCommandKey({},Fe,ve);if(!st&&re.commands){ve=c.keyCodeToString(ve);var Yt=re.commands.findKeyCommand(Fe,ve);Yt&&re.execCommand(Yt)}x=xe,I=we,H("")}}};document.addEventListener("selectionchange",Ee),re.on("destroy",function(){document.removeEventListener("selectionchange",Ee)})}this.destroy=function(){S.parentElement&&S.parentElement.removeChild(S)}},u.TextInput=E,u.$setUserAgentForTests=function(b,g){D=b,m=g}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(i,u,v){var o=i("../lib/useragent"),h=0,p=550,a=function(){function t(r){r.$clickSelection=null;var l=r.editor;l.setDefaultHandler("mousedown",this.onMouseDown.bind(r)),l.setDefaultHandler("dblclick",this.onDoubleClick.bind(r)),l.setDefaultHandler("tripleclick",this.onTripleClick.bind(r)),l.setDefaultHandler("quadclick",this.onQuadClick.bind(r)),l.setDefaultHandler("mousewheel",this.onMouseWheel.bind(r));var s=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];s.forEach(function(c){r[c]=this[c]},this),r.selectByLines=this.extendSelectionBy.bind(r,"getLineRange"),r.selectByWords=this.extendSelectionBy.bind(r,"getWordRange")}return t.prototype.onMouseDown=function(r){var l=r.inSelection(),s=r.getDocumentPosition();this.mousedownEvent=r;var c=this.editor,f=r.getButton();if(f!==0){var m=c.getSelectionRange(),y=m.isEmpty();(y||f==1)&&c.selection.moveToPosition(s),f==2&&(c.textInput.onContextMenu(r.domEvent),o.isMozilla||r.preventDefault());return}if(this.mousedownEvent.time=Date.now(),l&&!c.isFocused()&&(c.focus(),this.$focusTimeout&&!this.$clickSelection&&!c.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(r);return}return this.captureMouse(r),this.startSelect(s,r.domEvent._clicks>1),r.preventDefault()},t.prototype.startSelect=function(r,l){r=r||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var s=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?s.selection.selectToPosition(r):l||s.selection.moveToPosition(r),l||this.select(),s.setStyle("ace_selecting"),this.setState("select"))},t.prototype.select=function(){var r,l=this.editor,s=l.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var c=this.$clickSelection.comparePoint(s);if(c==-1)r=this.$clickSelection.end;else if(c==1)r=this.$clickSelection.start;else{var f=e(this.$clickSelection,s);s=f.cursor,r=f.anchor}l.selection.setSelectionAnchor(r.row,r.column)}l.selection.selectToPosition(s),l.renderer.scrollCursorIntoView()},t.prototype.extendSelectionBy=function(r){var l,s=this.editor,c=s.renderer.screenToTextCoordinates(this.x,this.y),f=s.selection[r](c.row,c.column);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(f.start),y=this.$clickSelection.comparePoint(f.end);if(m==-1&&y<=0)l=this.$clickSelection.end,(f.end.row!=c.row||f.end.column!=c.column)&&(c=f.start);else if(y==1&&m>=0)l=this.$clickSelection.start,(f.start.row!=c.row||f.start.column!=c.column)&&(c=f.end);else if(m==-1&&y==1)c=f.end,l=f.start;else{var D=e(this.$clickSelection,c);c=D.cursor,l=D.anchor}s.selection.setSelectionAnchor(l.row,l.column)}s.selection.selectToPosition(c),s.renderer.scrollCursorIntoView()},t.prototype.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},t.prototype.focusWait=function(){var r=d(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),l=Date.now();(r>h||l-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},t.prototype.onDoubleClick=function(r){var l=r.getDocumentPosition(),s=this.editor,c=s.session,f=c.getBracketRange(l);f?(f.isEmpty()&&(f.start.column--,f.end.column++),this.setState("select")):(f=s.selection.getWordRange(l.row,l.column),this.setState("selectByWords")),this.$clickSelection=f,this.select()},t.prototype.onTripleClick=function(r){var l=r.getDocumentPosition(),s=this.editor;this.setState("selectByLines");var c=s.getSelectionRange();c.isMultiLine()&&c.contains(l.row,l.column)?(this.$clickSelection=s.selection.getLineRange(c.start.row),this.$clickSelection.end=s.selection.getLineRange(c.end.row).end):this.$clickSelection=s.selection.getLineRange(l.row),this.select()},t.prototype.onQuadClick=function(r){var l=this.editor;l.selectAll(),this.$clickSelection=l.getSelectionRange(),this.setState("selectAll")},t.prototype.onMouseWheel=function(r){if(!r.getAccelKey()){r.getShiftKey()&&r.wheelY&&!r.wheelX&&(r.wheelX=r.wheelY,r.wheelY=0);var l=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var s=this.$lastScroll,c=r.domEvent.timeStamp,f=c-s.t,m=f?r.wheelX/f:s.vx,y=f?r.wheelY/f:s.vy;f=1&&l.renderer.isScrollableBy(r.wheelX*r.speed,0)&&(E=!0),D<=1&&l.renderer.isScrollableBy(0,r.wheelY*r.speed)&&(E=!0),E)s.allowed=c;else if(c-s.allowedp.clientHeight;a||h.preventDefault()}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/lib/scroll"],function(i,u,v){var o=this&&this.__extends||function(){var c=function(f,m){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,D){y.__proto__=D}||function(y,D){for(var E in D)Object.prototype.hasOwnProperty.call(D,E)&&(y[E]=D[E])},c(f,m)};return function(f,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");c(f,m);function y(){this.constructor=f}f.prototype=m===null?Object.create(m):(y.prototype=m.prototype,new y)}}(),h=this&&this.__values||function(c){var f=typeof Symbol=="function"&&Symbol.iterator,m=f&&c[f],y=0;if(m)return m.call(c);if(c&&typeof c.length=="number")return{next:function(){return c&&y>=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},p=i("./lib/dom");i("./lib/event");var a=i("./range").Range,d=i("./lib/scroll").preventParentScroll,e="ace_tooltip",t=function(){function c(f){this.isOpen=!1,this.$element=null,this.$parentNode=f}return c.prototype.$init=function(){return this.$element=p.createElement("div"),this.$element.className=e,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},c.prototype.getElement=function(){return this.$element||this.$init()},c.prototype.setText=function(f){this.getElement().textContent=f},c.prototype.setHtml=function(f){this.getElement().innerHTML=f},c.prototype.setPosition=function(f,m){this.getElement().style.left=f+"px",this.getElement().style.top=m+"px"},c.prototype.setClassName=function(f){p.addCssClass(this.getElement(),f)},c.prototype.setTheme=function(f){this.$element.className=e+" "+(f.isDark?"ace_dark ":"")+(f.cssClass||"")},c.prototype.show=function(f,m,y){f!=null&&this.setText(f),m!=null&&y!=null&&this.setPosition(m,y),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},c.prototype.hide=function(f){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=e,this.isOpen=!1)},c.prototype.getHeight=function(){return this.getElement().offsetHeight},c.prototype.getWidth=function(){return this.getElement().offsetWidth},c.prototype.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)},c}(),r=function(){function c(){this.popups=[]}return c.prototype.addPopup=function(f){this.popups.push(f),this.updatePopups()},c.prototype.removePopup=function(f){var m=this.popups.indexOf(f);m!==-1&&(this.popups.splice(m,1),this.updatePopups())},c.prototype.updatePopups=function(){var f,m,y,D;this.popups.sort(function($,A){return A.priority-$.priority});var E=[];try{for(var b=h(this.popups),g=b.next();!g.done;g=b.next()){var S=g.value,T=!0;try{for(var k=(y=void 0,h(E)),_=k.next();!_.done;_=k.next()){var O=_.value;if(this.doPopupsOverlap(O,S)){T=!1;break}}}catch($){y={error:$}}finally{try{_&&!_.done&&(D=k.return)&&D.call(k)}finally{if(y)throw y.error}}T?E.push(S):S.hide()}}catch($){f={error:$}}finally{try{g&&!g.done&&(m=b.return)&&m.call(b)}finally{if(f)throw f.error}}},c.prototype.doPopupsOverlap=function(f,m){var y=f.getElement().getBoundingClientRect(),D=m.getElement().getBoundingClientRect();return y.leftD.left&&y.topD.top},c}(),l=new r;u.popupManager=l,u.Tooltip=t;var s=function(c){o(f,c);function f(m){m===void 0&&(m=document.body);var y=c.call(this,m)||this;y.timeout=void 0,y.lastT=0,y.idleTime=350,y.lastEvent=void 0,y.onMouseOut=y.onMouseOut.bind(y),y.onMouseMove=y.onMouseMove.bind(y),y.waitForHover=y.waitForHover.bind(y),y.hide=y.hide.bind(y);var D=y.getElement();return D.style.whiteSpace="pre-wrap",D.style.pointerEvents="auto",D.addEventListener("mouseout",y.onMouseOut),D.tabIndex=-1,D.addEventListener("blur",function(){D.contains(document.activeElement)||this.hide()}.bind(y)),D.addEventListener("wheel",d),y}return f.prototype.addToEditor=function(m){m.on("mousemove",this.onMouseMove),m.on("mousedown",this.hide),m.renderer.getMouseEventTarget().addEventListener("mouseout",this.onMouseOut,!0)},f.prototype.removeFromEditor=function(m){m.off("mousemove",this.onMouseMove),m.off("mousedown",this.hide),m.renderer.getMouseEventTarget().removeEventListener("mouseout",this.onMouseOut,!0),this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},f.prototype.onMouseMove=function(m,y){this.lastEvent=m,this.lastT=Date.now();var D=y.$mouseHandler.isMousePressed;if(this.isOpen){var E=this.lastEvent&&this.lastEvent.getDocumentPosition();(!this.range||!this.range.contains(E.row,E.column)||D||this.isOutsideOfText(this.lastEvent))&&this.hide()}this.timeout||D||(this.lastEvent=m,this.timeout=setTimeout(this.waitForHover,this.idleTime))},f.prototype.waitForHover=function(){this.timeout&&clearTimeout(this.timeout);var m=Date.now()-this.lastT;if(this.idleTime-m>10){this.timeout=setTimeout(this.waitForHover,this.idleTime-m);return}this.timeout=null,this.lastEvent&&!this.isOutsideOfText(this.lastEvent)&&this.$gatherData(this.lastEvent,this.lastEvent.editor)},f.prototype.isOutsideOfText=function(m){var y=m.editor,D=m.getDocumentPosition(),E=y.session.getLine(D.row);if(D.column==E.length){var b=y.renderer.pixelToScreenCoordinates(m.clientX,m.clientY),g=y.session.documentToScreenPosition(D.row,D.column);if(g.column!=b.column||g.row!=b.row)return!0}return!1},f.prototype.setDataProvider=function(m){this.$gatherData=m},f.prototype.showForRange=function(m,y,D,E){var b=10;if(!(E&&E!=this.lastEvent)&&!(this.isOpen&&document.activeElement==this.getElement())){var g=m.renderer;this.isOpen||(l.addPopup(this),this.$registerCloseEvents(),this.setTheme(g.theme)),this.isOpen=!0,this.addMarker(y,m.session),this.range=a.fromPoints(y.start,y.end);var S=g.textToScreenCoordinates(y.start.row,y.start.column),T=g.scroller.getBoundingClientRect();S.pageX=c.length&&(c=void 0),{value:c&&c[y++],done:!c}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")},p=i("../lib/dom"),a=i("../lib/event"),d=i("../tooltip").Tooltip,e=i("../config").nls,t=5,r=3;u.GUTTER_TOOLTIP_LEFT_OFFSET=t,u.GUTTER_TOOLTIP_TOP_OFFSET=r;function l(c){var f=c.editor,m=f.renderer.$gutterLayer,y=new s(f,!0);c.editor.setDefaultHandler("guttermousedown",function(T){if(!(!f.isFocused()||T.getButton()!=0)){var k=m.getRegion(T);if(k!="foldWidgets"){var _=T.getDocumentPosition().row,O=f.session.selection;if(T.getShiftKey())O.selectTo(_,0);else{if(T.domEvent.detail==2)return f.selectAll(),T.preventDefault();c.$clickSelection=f.selection.getLineRange(_)}return c.setState("selectByLines"),c.captureMouse(T),T.preventDefault()}}});var D,E;function b(){var T=E.getDocumentPosition().row,k=f.session.getLength();if(T==k){var _=f.renderer.pixelToScreenCoordinates(0,E.y).row,O=E.$pos;if(_>f.session.documentToScreenRow(O.row,O.column))return g()}if(y.showTooltip(T),!!y.isOpen)if(f.on("mousewheel",g),f.on("changeSession",g),window.addEventListener("keydown",g,!0),c.$tooltipFollowsMouse)S(E);else{var $=E.getGutterRow(),A=m.$lines.get($);if(A){var C=A.element.querySelector(".ace_gutter_annotation"),w=C.getBoundingClientRect(),x=y.getElement().style;x.left=w.right-t+"px",x.top=w.bottom-r+"px"}else S(E)}}function g(T){T&&T.type==="keydown"&&(T.ctrlKey||T.metaKey)||T&&T.type==="mouseout"&&(!T.relatedTarget||y.getElement().contains(T.relatedTarget))||(D&&(D=clearTimeout(D)),y.isOpen&&(y.hideTooltip(),f.off("mousewheel",g),f.off("changeSession",g),window.removeEventListener("keydown",g,!0)))}function S(T){y.setPosition(T.x,T.y)}c.editor.setDefaultHandler("guttermousemove",function(T){var k=T.domEvent.target||T.domEvent.srcElement;if(p.hasCssClass(k,"ace_fold-widget")||p.hasCssClass(k,"ace_custom-widget"))return g();y.isOpen&&c.$tooltipFollowsMouse&&S(T),E=T,!D&&(D=setTimeout(function(){D=null,E&&!c.isMousePressed&&b()},50))}),a.addListener(f.renderer.$gutter,"mouseout",function(T){E=null,y.isOpen&&(D=setTimeout(function(){D=null,g(T)},50))},f)}u.GutterHandler=l;var s=function(c){o(f,c);function f(m,y){y===void 0&&(y=!1);var D=c.call(this,m.container)||this;D.editor=m,D.visibleTooltipRow;var E=D.getElement();return E.setAttribute("role","tooltip"),E.style.pointerEvents="auto",y&&(D.onMouseOut=D.onMouseOut.bind(D),E.addEventListener("mouseout",D.onMouseOut)),D}return f.prototype.onMouseOut=function(m){this.isOpen&&(!m.relatedTarget||this.getElement().contains(m.relatedTarget)||m&&m.currentTarget.contains(m.relatedTarget)||this.hideTooltip())},f.prototype.setPosition=function(m,y){var D=window.innerWidth||document.documentElement.clientWidth,E=window.innerHeight||document.documentElement.clientHeight,b=this.getWidth(),g=this.getHeight();m+=15,y+=15,m+b>D&&(m-=m+b-D),y+g>E&&(y-=20+g),d.prototype.setPosition.call(this,m,y)},Object.defineProperty(f,"annotationLabels",{get:function(){return{error:{singular:e("gutter-tooltip.aria-label.error.singular","error"),plural:e("gutter-tooltip.aria-label.error.plural","errors")},security:{singular:e("gutter-tooltip.aria-label.security.singular","security finding"),plural:e("gutter-tooltip.aria-label.security.plural","security findings")},warning:{singular:e("gutter-tooltip.aria-label.warning.singular","warning"),plural:e("gutter-tooltip.aria-label.warning.plural","warnings")},info:{singular:e("gutter-tooltip.aria-label.info.singular","information message"),plural:e("gutter-tooltip.aria-label.info.plural","information messages")},hint:{singular:e("gutter-tooltip.aria-label.hint.singular","suggestion"),plural:e("gutter-tooltip.aria-label.hint.plural","suggestions")}}},enumerable:!1,configurable:!0}),f.prototype.showTooltip=function(m){var y,D=this.editor.renderer.$gutterLayer,E=D.$annotations[m],b;E?b={displayText:Array.from(E.displayText),type:Array.from(E.type)}:b={displayText:[],type:[]};var g=D.session.getFoldLine(m);if(g&&D.$showFoldedAnnotations){for(var S={error:[],security:[],warning:[],info:[],hint:[]},T={error:1,security:2,warning:3,info:4,hint:5},k,_=m+1;_<=g.end.row;_++)if(D.$annotations[_])for(var O=0;Oe?$=null:U-$>=d&&(s.renderer.scrollCursorIntoView(),$=null)}}function w(W,H){var U=Date.now(),G=s.renderer.layerConfig.lineHeight,Y=s.renderer.layerConfig.characterWidth,Q=s.renderer.scroller.getBoundingClientRect(),ee={x:{left:D-Q.left,right:Q.right-D},y:{top:E-Q.top,bottom:Q.bottom-E}},ne=Math.min(ee.x.left,ee.x.right),se=Math.min(ee.y.top,ee.y.bottom),ge={row:W.row,column:W.column};ne/Y<=2&&(ge.column+=ee.x.left=a&&s.renderer.scrollCursorIntoView(ge):O=U:O=null}function x(){var W=S;S=s.renderer.screenToTextCoordinates(D,E),C(S,W),w(S,W)}function I(){g=s.selection.toOrientedRange(),y=s.session.addMarker(g,"ace_selection",s.getSelectionStyle()),s.clearSelection(),s.isFocused()&&s.renderer.$cursorLayer.setBlinking(!1),clearInterval(b),x(),b=setInterval(x,20),T=0,h.addListener(document,"mousemove",B)}function F(){clearInterval(b),s.session.removeMarker(y),y=null,s.selection.fromOrientedRange(g),s.isFocused()&&!_&&s.$resetCursorStyle(),g=null,S=null,T=0,O=null,$=null,h.removeListener(document,"mousemove",B)}var R=null;function B(){R==null&&(R=setTimeout(function(){R!=null&&y&&F()},20))}function P(W){var H=W.types;return!H||Array.prototype.some.call(H,function(U){return U=="text/plain"||U=="Text"})}function V(W){var H=["copy","copymove","all","uninitialized"],U=["move","copymove","linkmove","all","uninitialized"],G=p.isMac?W.altKey:W.ctrlKey,Y="uninitialized";try{Y=W.dataTransfer.effectAllowed.toLowerCase()}catch{}var Q="none";return G&&H.indexOf(Y)>=0?Q="copy":U.indexOf(Y)>=0?Q="move":H.indexOf(Y)>=0&&(Q="copy"),Q}}(function(){this.dragWait=function(){var l=Date.now()-this.mousedownEvent.time;l>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var l=this.editor.container;l.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(l){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var l=this.editor,s=l.container;s.draggable=!0,l.renderer.$cursorLayer.setBlinking(!1),l.setStyle("ace_dragging");var c=p.isWin?"default":"move";l.renderer.setCursorStyle(c),this.setState("dragReady")},this.onMouseDrag=function(l){var s=this.editor.container;if(p.isIE&&this.state=="dragReady"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>3&&s.dragDrop()}if(this.state==="dragWait"){var c=r(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);c>0&&(s.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(l){if(this.$dragEnabled){this.mousedownEvent=l;var s=this.editor,c=l.inSelection(),f=l.getButton(),m=l.domEvent.detail||1;if(m===1&&f===0&&c){if(l.editor.inMultiSelectMode&&(l.getAccelKey()||l.getShiftKey()))return;this.mousedownEvent.time=Date.now();var y=l.domEvent.target||l.domEvent.srcElement;if("unselectable"in y&&(y.unselectable="on"),s.getDragDelay()){if(p.isWebKit){this.cancelDrag=!0;var D=s.container;D.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(l,this.onMouseDrag.bind(this)),l.defaultPrevented=!0}}}}).call(t.prototype);function r(l,s,c,f){return Math.sqrt(Math.pow(c-l,2)+Math.pow(f-s,2))}u.DragdropHandler=t}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(i,u,v){var o=i("./mouse_event").MouseEvent,h=i("../lib/event"),p=i("../lib/dom");u.addTouchListeners=function(a,d){var e="scroll",t,r,l,s,c,f,m=0,y,D=0,E=0,b=0,g,S;function T(){var C=window.navigator&&window.navigator.clipboard,w=!1,x=function(){var R=d.getCopyText(),B=d.session.getUndoManager().hasUndo();S.replaceChild(p.buildDom(w?["span",!R&&I("selectall")&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],R&&I("copy")&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],R&&I("cut")&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],C&&I("paste")&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],B&&I("undo")&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],I("find")&&["span",{class:"ace_mobile-button",action:"find"},"Find"],I("openCommandPalette")&&["span",{class:"ace_mobile-button",action:"openCommandPalette"},"Palette"]]:["span"]),S.firstChild)},I=function(R){return d.commands.canExecute(R,d)},F=function(R){var B=R.target.getAttribute("action");if(B=="more"||!w)return w=!w,x();B=="paste"?C.readText().then(function(P){d.execCommand(B,P)}):B&&((B=="cut"||B=="copy")&&(C?C.writeText(d.getCopyText()):document.execCommand("copy")),d.execCommand(B)),S.firstChild.style.display="none",w=!1,B!="openCommandPalette"&&d.focus()};S=p.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(R){e="menu",R.stopPropagation(),R.preventDefault(),d.textInput.focus()},ontouchend:function(R){R.stopPropagation(),R.preventDefault(),F(R)},onclick:F},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],d.container)}function k(){if(!d.getOption("enableMobileMenu")){S&&_();return}S||T();var C=d.selection.cursor,w=d.renderer.textToScreenCoordinates(C.row,C.column),x=d.renderer.textToScreenCoordinates(0,0).pageX,I=d.renderer.scrollLeft,F=d.container.getBoundingClientRect();S.style.top=w.pageY-F.top-3+"px",w.pageX-F.left=2?d.selection.getLineRange(y.row):d.session.getBracketRange(y);C&&!C.isEmpty()?d.selection.setRange(C):d.selection.selectWord(),e="wait"}h.addListener(a,"contextmenu",function(C){if(g){var w=d.textInput.getElement();w.focus()}},d),h.addListener(a,"touchstart",function(C){var w=C.touches;if(c||w.length>1){clearTimeout(c),c=null,l=-1,e="zoom";return}g=d.$mouseHandler.isMousePressed=!0;var x=d.renderer.layerConfig.lineHeight,I=d.renderer.layerConfig.lineHeight,F=C.timeStamp;s=F;var R=w[0],B=R.clientX,P=R.clientY;Math.abs(t-B)+Math.abs(r-P)>x&&(l=-1),t=C.clientX=B,r=C.clientY=P,E=b=0;var V=new o(C,d);if(y=V.getDocumentPosition(),F-l<500&&w.length==1&&!m)D++,C.preventDefault(),C.button=0,$();else{D=0;var W=d.selection.cursor,H=d.selection.isEmpty()?W:d.selection.anchor,U=d.renderer.$cursorLayer.getPixelPosition(W,!0),G=d.renderer.$cursorLayer.getPixelPosition(H,!0),Y=d.renderer.scroller.getBoundingClientRect(),Q=d.renderer.layerConfig.offset,ee=d.renderer.scrollLeft,ne=function(be,ke){return be=be/I,ke=ke/x-.75,be*be+ke*ke};if(C.clientXge?"cursor":"anchor"),ge<3.5?e="anchor":se<3.5?e="cursor":e="scroll",c=setTimeout(O,450)}l=F},d),h.addListener(a,"touchend",function(C){g=d.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),e=="zoom"?(e="",m=0):c?(d.selection.moveToPosition(y),m=0,k()):e=="scroll"?(A(),_()):k(),clearTimeout(c),c=null},d),h.addListener(a,"touchmove",function(C){c&&(clearTimeout(c),c=null);var w=C.touches;if(!(w.length>1||e=="zoom")){var x=w[0],I=t-x.clientX,F=r-x.clientY;if(e=="wait")if(I*I+F*F>4)e="cursor";else return C.preventDefault();t=x.clientX,r=x.clientY,C.clientX=x.clientX,C.clientY=x.clientY;var R=C.timeStamp,B=R-s;if(s=R,e=="scroll"){var P=new o(C,d);P.speed=1,P.wheelX=I,P.wheelY=F,10*Math.abs(I)0)if(ge==16){for(Ce=ke;Ce-1){for(Ce=ke;Ce=0&&G[Ze]==g;Ze--)H[Ze]=o}}}function B(W,H,U){if(!(h=W){for(Q=Y+1;Q=W;)Q++;for(ee=Y,ne=Q-1;ee=H.length||(Q=U[G-1])!=f&&Q!=m||(ee=H[G+1])!=f&&ee!=m?y:(p&&(ee=m),ee==Q?ee:y);case T:return Q=G>0?U[G-1]:D,Q==f&&G+10&&U[G-1]==f)return f;if(p)return y;for(se=G+1,ne=H.length;se=1425&&ge<=2303||ge==64286;if(Q=H[se],be&&(Q==c||Q==b))return c}return G<1||(Q=H[G-1])==D?y:U[G-1];case D:return p=!1,a=!0,o;case E:return d=!0,y;case O:case $:case C:case w:case A:p=!1;case x:return y}}function V(W){var H=W.charCodeAt(0),U=H>>8;return U==0?H>191?s:I[H]:U==5?/[\u0591-\u05f4]/.test(W)?c:s:U==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(W)?_:/[\u0660-\u0669\u066b-\u066c]/.test(W)?m:H==1642?k:/[\u06f0-\u06f9]/.test(W)?f:b:U==32&&H<=8287?F[H&255]:U==254&&H>=65136?b:y}u.L=s,u.R=c,u.EN=f,u.ON_R=3,u.AN=4,u.R_H=5,u.B=6,u.RLE=7,u.DOT="·",u.doBidiReorder=function(W,H,U){if(W.length<2)return{};var G=W.split(""),Y=new Array(G.length),Q=new Array(G.length),ee=[];o=U?l:r,R(G,ee,G.length,H);for(var ne=0;neb&&H[ne]0&&G[ne-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(G[ne])&&(ee[ne-1]=ee[ne]=u.R_H,ne++);G[G.length-1]===u.DOT&&(ee[G.length-1]=u.B),G[0]==="‫"&&(ee[0]=u.RLE);for(var ne=0;ne=0&&(e=this.session.$docRowCache[r])}return e},d.prototype.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var r,l=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(r=this.session.$getRowCacheIndex(t,this.currentRow-e-1),r===l);)l=r,e++;else e=this.currentRow;return e},d.prototype.updateRowLine=function(e,t){e===void 0&&(e=this.getDocumentRow());var r=e===this.session.getLength()-1,l=r?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var s=this.session.$wrapData[e];s&&(t===void 0&&(t=this.getSplitIndex()),t>0&&s.length?(this.wrapIndent=s.indent,this.wrapOffset=this.wrapIndent*this.charWidths[o.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,l=o.getVisualFromLogicalIdx(r,this.bidiMap),s=this.bidiMap.bidiLevels,c=0;!this.session.getOverwrite()&&e<=t&&s[l]%2!==0&&l++;for(var f=0;ft&&s[l]%2===0&&(c+=this.charWidths[s[l]]),this.wrapIndent&&(c+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(c+=this.rtlLineOffset),c},d.prototype.getSelections=function(e,t){var r=this.bidiMap,l=r.bidiLevels,s,c=[],f=0,m=Math.min(e,t)-this.wrapIndent,y=Math.max(e,t)-this.wrapIndent,D=!1,E=!1,b=0;this.wrapIndent&&(f+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var g,S=0;S=m&&gl+f/2;){if(l+=f,s===c.length-1){f=0;break}f=this.charWidths[c[++s]]}return s>0&&c[s-1]%2!==0&&c[s]%2===0?(r0&&c[s-1]%2===0&&c[s]%2!==0?t=1+(r>l?this.bidiMap.logicalFromVisual[s]:this.bidiMap.logicalFromVisual[s-1]):this.isRtlDir&&s===c.length-1&&f===0&&c[s-1]%2===0||!this.isRtlDir&&s===0&&c[s]%2!==0?t=1+this.bidiMap.logicalFromVisual[s]:(s>0&&c[s-1]%2!==0&&f!==0&&s--,t=this.bidiMap.logicalFromVisual[s]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent},d}();u.BidiHandler=a}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(i,u,v){var o=i("./lib/oop"),h=i("./lib/lang"),p=i("./lib/event_emitter").EventEmitter,a=i("./range").Range,d=function(){function e(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var r=this;this.cursor.on("change",function(l){r.$cursorChanged=!0,r.$silent||r._emit("changeCursor"),!r.$isEmpty&&!r.$silent&&r._emit("changeSelection"),!r.$keepDesiredColumnOnChange&&l.old.column!=l.value.column&&(r.$desiredColumn=null)}),this.anchor.on("change",function(){r.$anchorChanged=!0,!r.$isEmpty&&!r.$silent&&r._emit("changeSelection")})}return e.prototype.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},e.prototype.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},e.prototype.getCursor=function(){return this.lead.getPosition()},e.prototype.setAnchor=function(t,r){this.$isEmpty=!1,this.anchor.setPosition(t,r)},e.prototype.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},e.prototype.getSelectionLead=function(){return this.lead.getPosition()},e.prototype.isBackwards=function(){var t=this.anchor,r=this.lead;return t.row>r.row||t.row==r.row&&t.column>r.column},e.prototype.getRange=function(){var t=this.anchor,r=this.lead;return this.$isEmpty?a.fromPoints(r,r):this.isBackwards()?a.fromPoints(r,t):a.fromPoints(t,r)},e.prototype.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},e.prototype.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},e.prototype.setRange=function(t,r){var l=r?t.end:t.start,s=r?t.start:t.end;this.$setSelection(l.row,l.column,s.row,s.column)},e.prototype.$setSelection=function(t,r,l,s){if(!this.$silent){var c=this.$isEmpty,f=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(t,r),this.cursor.setPosition(l,s),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||c!=this.$isEmpty||f)&&this._emit("changeSelection")}},e.prototype.$moveSelection=function(t){var r=this.lead;this.$isEmpty&&this.setSelectionAnchor(r.row,r.column),t.call(this)},e.prototype.selectTo=function(t,r){this.$moveSelection(function(){this.moveCursorTo(t,r)})},e.prototype.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},e.prototype.moveTo=function(t,r){this.clearSelection(),this.moveCursorTo(t,r)},e.prototype.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},e.prototype.selectUp=function(){this.$moveSelection(this.moveCursorUp)},e.prototype.selectDown=function(){this.$moveSelection(this.moveCursorDown)},e.prototype.selectRight=function(){this.$moveSelection(this.moveCursorRight)},e.prototype.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},e.prototype.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},e.prototype.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},e.prototype.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},e.prototype.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},e.prototype.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},e.prototype.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},e.prototype.getWordRange=function(t,r){if(typeof r>"u"){var l=t||this.lead;t=l.row,r=l.column}return this.session.getWordRange(t,r)},e.prototype.selectWord=function(){this.setSelectionRange(this.getWordRange())},e.prototype.selectAWord=function(){var t=this.getCursor(),r=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(r)},e.prototype.getLineRange=function(t,r){var l=typeof t=="number"?t:this.lead.row,s,c=this.session.getFoldLine(l);return c?(l=c.start.row,s=c.end.row):s=l,r===!0?new a(l,0,s,this.session.getLine(s).length):new a(l,0,s+1,0)},e.prototype.selectLine=function(){this.setSelectionRange(this.getLineRange())},e.prototype.moveCursorUp=function(){this.moveCursorBy(-1,0)},e.prototype.moveCursorDown=function(){this.moveCursorBy(1,0)},e.prototype.wouldMoveIntoSoftTab=function(t,r,l){var s=t.column,c=t.column+r;return l<0&&(s=t.column-r,c=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(s,c).split(" ").length-1==r},e.prototype.moveCursorLeft=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(r.start.row,r.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var l=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,l,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-l):this.moveCursorBy(0,-1)}},e.prototype.moveCursorRight=function(){var t=this.lead.getPosition(),r;if(r=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(r.end.row,r.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(r.column=s)}}this.moveCursorTo(r.row,r.column)},e.prototype.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,r=this.doc.getLine(t).length;this.moveCursorTo(t,r)},e.prototype.moveCursorFileStart=function(){this.moveCursorTo(0,0)},e.prototype.moveCursorLongWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),s=l.substring(r);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var c=this.session.getFoldAt(t,r,1);if(c){this.moveCursorTo(c.end.row,c.end.column);return}if(this.session.nonTokenRe.exec(s)&&(r+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,s=l.substring(r)),r>=l.length){this.moveCursorTo(t,l.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(c)&&(r-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,r)},e.prototype.$shortWordEndIndex=function(t){var r=0,l,s=/\s/,c=this.session.tokenRe;if(c.lastIndex=0,this.session.tokenRe.exec(t))r=this.session.tokenRe.lastIndex;else{for(;(l=t[r])&&s.test(l);)r++;if(r<1){for(c.lastIndex=0;(l=t[r])&&!c.test(l);)if(c.lastIndex=0,r++,s.test(l))if(r>2){r--;break}else{for(;(l=t[r])&&s.test(l);)r++;if(r>2)break}}}return c.lastIndex=0,r},e.prototype.moveCursorShortWordRight=function(){var t=this.lead.row,r=this.lead.column,l=this.doc.getLine(t),s=l.substring(r),c=this.session.getFoldAt(t,r,1);if(c)return this.moveCursorTo(c.end.row,c.end.column);if(r==l.length){var f=this.doc.getLength();do t++,s=this.doc.getLine(t);while(t0&&/^\s*$/.test(s));r=s.length,/\s+$/.test(s)||(s="")}var c=h.stringReverse(s),f=this.$shortWordEndIndex(c);return this.moveCursorTo(t,r-f)},e.prototype.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},e.prototype.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},e.prototype.moveCursorBy=function(t,r){var l=this.session.documentToScreenPosition(this.lead.row,this.lead.column),s;if(r===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(l.row,this.lead.row)?(s=this.session.$bidiHandler.getPosLeft(l.column),l.column=Math.round(s/this.session.$bidiHandler.charWidths[0])):s=l.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?l.column=this.$desiredColumn:this.$desiredColumn=l.column),t!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var c=this.session.lineWidgets[this.lead.row];t<0?t-=c.rowsAbove||0:t>0&&(t+=c.rowCount-(c.rowsAbove||0))}var f=this.session.screenToDocumentPosition(l.row+t,l.column,s);t!==0&&r===0&&f.row===this.lead.row&&(f.column,this.lead.column),this.moveCursorTo(f.row,f.column+r,r===0)},e.prototype.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},e.prototype.moveCursorTo=function(t,r,l){var s=this.session.getFoldAt(t,r,1);s&&(t=s.start.row,r=s.start.column),this.$keepDesiredColumnOnChange=!0;var c=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(c.charAt(r))&&c.charAt(r-1)&&(this.lead.row==t&&this.lead.column==r+1?r=r-1:r=r+1),this.lead.setPosition(t,r),this.$keepDesiredColumnOnChange=!1,l||(this.$desiredColumn=null)},e.prototype.moveCursorToScreen=function(t,r,l){var s=this.session.screenToDocumentPosition(t,r);this.moveCursorTo(s.row,s.column,l)},e.prototype.detach=function(){this.lead.detach(),this.anchor.detach()},e.prototype.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},e.prototype.toOrientedRange=function(t){var r=this.getRange();return t?(t.start.column=r.start.column,t.start.row=r.start.row,t.end.column=r.end.column,t.end.row=r.end.row):t=r,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},e.prototype.getRangeOfMovements=function(t){var r=this.getCursor();try{t(this);var l=this.getCursor();return a.fromPoints(r,l)}catch{return a.fromPoints(r,r)}finally{this.moveCursorToPosition(r)}},e.prototype.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(r){var l=r.clone();return l.isBackwards=r.cursor==r.start,l});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},e.prototype.fromJSON=function(t){if(t.start==null)if(this.rangeList&&t.length>1){this.toSingleRange(t[0]);for(var r=t.length;r--;){var l=a.fromPoints(t[r].start,t[r].end);t[r].isBackwards&&(l.cursor=l.start),this.addRange(l,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},e.prototype.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var r=this.ranges.length;r--;)if(!this.ranges[r].isEqual(t[r]))return!1;return!0},e}();d.prototype.setSelectionAnchor=d.prototype.setAnchor,d.prototype.getSelectionAnchor=d.prototype.getAnchor,d.prototype.setSelectionRange=d.prototype.setRange,o.implement(d.prototype,p),u.Selection=d}),ace.define("ace/tokenizer",["require","exports","module","ace/lib/report_error"],function(i,u,v){var o=i("./lib/report_error").reportError,h=2e3,p=function(){function a(d){this.splitRegex,this.states=d,this.regExps={},this.matchMappings={};for(var e in this.states){for(var t=this.states[e],r=[],l=0,s=this.matchMappings[e]={defaultToken:"text"},c="g",f=[],m=0;m1?y.onMatch=this.$applyToken:y.onMatch=y.token),E>1&&(/\\\d/.test(y.regex)?D=y.regex.replace(/\\([0-9]+)/g,function(b,g){return"\\"+(parseInt(g,10)+l+1)}):(E=1,D=this.removeCapturingGroups(y.regex)),!y.splitRegex&&typeof y.token!="string"&&f.push(y)),s[l]=m,l+=E,r.push(D),y.onMatch||(y.onMatch=null)}}r.length||(s[0]=0,r.push("$")),f.forEach(function(b){b.splitRegex=this.createSplitterRegexp(b.regex,c)},this),this.regExps[e]=new RegExp("("+r.join(")|(")+")|($)",c)}}return a.prototype.$setMaxTokenCount=function(d){h=d|0},a.prototype.$applyToken=function(d){var e=this.splitRegex.exec(d).slice(1),t=this.token.apply(this,e);if(typeof t=="string")return[{type:t,value:d}];for(var r=[],l=0,s=t.length;ly){var k=d.substring(y,T-S.length);E.type==b?E.value+=k:(E.type&&m.push(E),E={type:b,value:k})}for(var _=0;_h){for(D>2*d.length&&this.reportError("infinite loop with in ace tokenizer",{startState:e,line:d});y1&&t[0]!==r&&t.unshift("#tmp",r),{tokens:m,state:t.length?t:r}},a}();p.prototype.reportError=o,u.Tokenizer=p}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(i,u,v){var o=i("../lib/deep_copy").deepCopy,h;h=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},function(){this.addRules=function(d,e){if(!e){for(var t in d)this.$rules[t]=d[t];return}for(var t in d){for(var r=d[t],l=0;l=this.$rowTokens.length;){if(this.$row+=1,a||(a=this.$session.getLength()),this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},p.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},p.prototype.getCurrentTokenRow=function(){return this.$row},p.prototype.getCurrentTokenColumn=function(){var a=this.$rowTokens,d=this.$tokenIndex,e=a[d].start;if(e!==void 0)return e;for(e=0;d>0;)d-=1,e+=a[d].value.length;return e},p.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},p.prototype.getCurrentTokenRange=function(){var a=this.$rowTokens[this.$tokenIndex],d=this.getCurrentTokenColumn();return new o(this.$row,d,this.$row,d+a.value.length)},p}();u.TokenIterator=h}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(i,u,v){var o=i("../../lib/oop"),h=i("../behaviour").Behaviour,p=i("../../token_iterator").TokenIterator,a=i("../../lib/lang"),d=["text","paren.rparen","rparen","paren","punctuation.operator"],e=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],t,r={},l={'"':'"',"'":"'"},s=function(m){var y=-1;if(m.multiSelect&&(y=m.selection.index,r.rangeCount!=m.multiSelect.rangeCount&&(r={rangeCount:m.multiSelect.rangeCount})),r[y])return t=r[y];t=r[y]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},c=function(m,y,D,E){var b=m.end.row-m.start.row;return{text:D+y+E,selection:[0,m.start.column+1,b,m.end.column+(b?0:1)]}},f;f=function(m){m=m||{},this.add("braces","insertion",function(y,D,E,b,g){var S=E.getCursorPosition(),T=b.doc.getLine(S.row);if(g=="{"){s(E);var k=E.getSelectionRange(),_=b.doc.getTextRange(k),O=b.getTokenAt(S.row,S.column);if(_!==""&&_!=="{"&&E.getWrapBehavioursEnabled())return c(k,_,"{","}");if(O&&/(?:string)\.quasi|\.xml/.test(O.type)){var $=[/tag\-(?:open|name)/,/attribute\-name/];return $.some(function(R){return R.test(O.type)})||/(string)\.quasi/.test(O.type)&&O.value[S.column-O.start-1]!=="$"?void 0:(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]})}else if(f.isSaneInsertion(E,b))return/[\]\}\)]/.test(T[S.column])||E.inMultiSelectMode||m.braces?(f.recordAutoInsert(E,b,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(E,b,"{"),{text:"{",selection:[1,1]})}else if(g=="}"){s(E);var A=T.substring(S.column,S.column+1);if(A=="}"){var C=b.$findOpeningBracket("}",{column:S.column+1,row:S.row});if(C!==null&&f.isAutoInsertedClosing(S,T,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(g==` `||g==`\r -`){a(E);var w="";f.isMaybeInsertedClosing(S,M)&&(w=s.stringRepeat("}",t.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var $=M.substring(S.column,S.column+1);if($==="}"){var x=b.findMatchingBracket({row:S.row,column:S.column+1},"}");if(!x)return null;var I=this.$getIndent(b.getLine(x.row))}else if(w)var I=this.$getIndent(M);else{f.clearMaybeInsertedClosing();return}var R=I+b.getTabString();return{text:` -`+R+` -`+I+w,selection:[1,R.length,1,R.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="{"){a(E);var M=b.doc.getLine(g.start.row),_=M.substring(g.end.column,g.end.column+1);if(_=="}")return g.end.column++,g;t.maybeInsertedBrackets--}}),this.add("parens","insertion",function(y,D,E,b,g){if(g=="("){a(E);var S=E.getSelectionRange(),M=b.doc.getTextRange(S);if(M!==""&&E.getWrapBehavioursEnabled())return c(S,M,"(",")");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,")"),{text:"()",selection:[1,1]}}else if(g==")"){a(E);var _=E.getCursorPosition(),T=b.doc.getLine(_.row),F=T.substring(_.column,_.column+1);if(F==")"){var A=b.$findOpeningBracket(")",{column:_.column+1,row:_.row});if(A!==null&&f.isAutoInsertedClosing(_,T,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="("){a(E);var M=b.doc.getLine(g.start.row),_=M.substring(g.start.column+1,g.start.column+2);if(_==")")return g.end.column++,g}}),this.add("brackets","insertion",function(y,D,E,b,g){if(g=="["){a(E);var S=E.getSelectionRange(),M=b.doc.getTextRange(S);if(M!==""&&E.getWrapBehavioursEnabled())return c(S,M,"[","]");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,"]"),{text:"[]",selection:[1,1]}}else if(g=="]"){a(E);var _=E.getCursorPosition(),T=b.doc.getLine(_.row),F=T.substring(_.column,_.column+1);if(F=="]"){var A=b.$findOpeningBracket("]",{column:_.column+1,row:_.row});if(A!==null&&f.isAutoInsertedClosing(_,T,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="["){a(E);var M=b.doc.getLine(g.start.row),_=M.substring(g.start.column+1,g.start.column+2);if(_=="]")return g.end.column++,g}}),this.add("string_dquotes","insertion",function(y,D,E,b,g){var S=b.$mode.$quotes||l;if(g.length==1&&S[g]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(g)!=-1)return;a(E);var M=g,_=E.getSelectionRange(),T=b.doc.getTextRange(_);if(T!==""&&(T.length!=1||!S[T])&&E.getWrapBehavioursEnabled())return c(_,T,M,M);if(!T){var F=E.getCursorPosition(),A=b.doc.getLine(F.row),$=A.substring(F.column-1,F.column),C=A.substring(F.column,F.column+1),w=b.getTokenAt(F.row,F.column),x=b.getTokenAt(F.row,F.column+1);if($=="\\"&&w&&/escape/.test(w.type))return null;var I=w&&/string|escape/.test(w.type),R=!x||/string|escape/.test(x.type),O;if(C==M)O=I!==R,O&&/string\.end/.test(x.type)&&(O=!1);else{if(I&&!R||I&&R)return null;var P=b.$mode.tokenRe;P.lastIndex=0;var B=P.test($);P.lastIndex=0;var V=P.test(C),W=b.$mode.$pairQuotesAfter,H=W&&W[M]&&W[M].test($);if(!H&&B||V||C&&!/[\s;,.})\]\\]/.test(C))return null;var U=A[F.column-2];if($==M&&(U==M||P.test(U)))return null;O=!0}return{text:O?M+M:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(y,D,E,b,g){var S=b.$mode.$quotes||l,M=b.doc.getTextRange(g);if(!g.isMultiLine()&&S.hasOwnProperty(M)){a(E);var _=b.doc.getLine(g.start.row),T=_.substring(g.start.column+1,g.start.column+2);if(T==M)return g.end.column++,g}}),m.closeDocComment!==!1&&this.add("doc comment end","insertion",function(y,D,E,b,g){if(y==="doc-start"&&(g===` +`){s(E);var w="";f.isMaybeInsertedClosing(S,T)&&(w=a.stringRepeat("}",t.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var A=T.substring(S.column,S.column+1);if(A==="}"){var x=b.findMatchingBracket({row:S.row,column:S.column+1},"}");if(!x)return null;var I=this.$getIndent(b.getLine(x.row))}else if(w)var I=this.$getIndent(T);else{f.clearMaybeInsertedClosing();return}var F=I+b.getTabString();return{text:` +`+F+` +`+I+w,selection:[1,F.length,1,F.length]}}else f.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="{"){s(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.end.column,g.end.column+1);if(k=="}")return g.end.column++,g;t.maybeInsertedBrackets--}}),this.add("parens","insertion",function(y,D,E,b,g){if(g=="("){s(E);var S=E.getSelectionRange(),T=b.doc.getTextRange(S);if(T!==""&&E.getWrapBehavioursEnabled())return c(S,T,"(",")");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,")"),{text:"()",selection:[1,1]}}else if(g==")"){s(E);var k=E.getCursorPosition(),_=b.doc.getLine(k.row),O=_.substring(k.column,k.column+1);if(O==")"){var $=b.$findOpeningBracket(")",{column:k.column+1,row:k.row});if($!==null&&f.isAutoInsertedClosing(k,_,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="("){s(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.start.column+1,g.start.column+2);if(k==")")return g.end.column++,g}}),this.add("brackets","insertion",function(y,D,E,b,g){if(g=="["){s(E);var S=E.getSelectionRange(),T=b.doc.getTextRange(S);if(T!==""&&E.getWrapBehavioursEnabled())return c(S,T,"[","]");if(f.isSaneInsertion(E,b))return f.recordAutoInsert(E,b,"]"),{text:"[]",selection:[1,1]}}else if(g=="]"){s(E);var k=E.getCursorPosition(),_=b.doc.getLine(k.row),O=_.substring(k.column,k.column+1);if(O=="]"){var $=b.$findOpeningBracket("]",{column:k.column+1,row:k.row});if($!==null&&f.isAutoInsertedClosing(k,_,g))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(y,D,E,b,g){var S=b.doc.getTextRange(g);if(!g.isMultiLine()&&S=="["){s(E);var T=b.doc.getLine(g.start.row),k=T.substring(g.start.column+1,g.start.column+2);if(k=="]")return g.end.column++,g}}),this.add("string_dquotes","insertion",function(y,D,E,b,g){var S=b.$mode.$quotes||l;if(g.length==1&&S[g]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(g)!=-1)return;s(E);var T=g,k=E.getSelectionRange(),_=b.doc.getTextRange(k);if(_!==""&&(_.length!=1||!S[_])&&E.getWrapBehavioursEnabled())return c(k,_,T,T);if(!_){var O=E.getCursorPosition(),$=b.doc.getLine(O.row),A=$.substring(O.column-1,O.column),C=$.substring(O.column,O.column+1),w=b.getTokenAt(O.row,O.column),x=b.getTokenAt(O.row,O.column+1);if(A=="\\"&&w&&/escape/.test(w.type))return null;var I=w&&/string|escape/.test(w.type),F=!x||/string|escape/.test(x.type),R;if(C==T)R=I!==F,R&&/string\.end/.test(x.type)&&(R=!1);else{if(I&&!F||I&&F)return null;var B=b.$mode.tokenRe;B.lastIndex=0;var P=B.test(A);B.lastIndex=0;var V=B.test(C),W=b.$mode.$pairQuotesAfter,H=W&&W[T]&&W[T].test(A);if(!H&&P||V||C&&!/[\s;,.})\]\\]/.test(C))return null;var U=$[O.column-2];if(A==T&&(U==T||B.test(U)))return null;R=!0}return{text:R?T+T:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(y,D,E,b,g){var S=b.$mode.$quotes||l,T=b.doc.getTextRange(g);if(!g.isMultiLine()&&S.hasOwnProperty(T)){s(E);var k=b.doc.getLine(g.start.row),_=k.substring(g.start.column+1,g.start.column+2);if(_==T)return g.end.column++,g}}),m.closeDocComment!==!1&&this.add("doc comment end","insertion",function(y,D,E,b,g){if(y==="doc-start"&&(g===` `||g===`\r -`)&&E.selection.isEmpty()){var S=E.getCursorPosition();if(S.column===0)return;for(var M=b.doc.getLine(S.row),_=b.doc.getLine(S.row+1),T=b.getTokens(S.row),F=0,A=0;A=S.column){if(F===S.column){if(!/\.doc/.test($.type))return;if(/\*\//.test($.value)){var C=T[A+1];if(!C||!/\.doc/.test(C.type))return}}var w=S.column-(F-$.value.length),x=$.value.indexOf("*/"),I=$.value.indexOf("/**",x>-1?x+2:0);if(I!==-1&&w>I&&w=x&&w<=I||!/\.doc/.test($.type))return;break}}var R=this.$getIndent(M);if(/\s*\*/.test(_))return/^\s*\*/.test(M)?{text:g+R+"* ",selection:[1,2+R.length,1,2+R.length]}:{text:g+R+" * ",selection:[1,3+R.length,1,3+R.length]};if(/\/\*\*/.test(M.substring(0,S.column)))return{text:g+R+" * "+g+" "+R+"*/",selection:[1,4+R.length,1,4+R.length]}}})},f.isSaneInsertion=function(m,y){var D=m.getCursorPosition(),E=new d(y,D.row,D.column);if(!this.$matchTokenType(E.getCurrentToken()||"text",p)){if(/[)}\]]/.test(m.session.getLine(D.row)[D.column]))return!0;var b=new d(y,D.row,D.column+1);if(!this.$matchTokenType(b.getCurrentToken()||"text",p))return!1}return E.stepForward(),E.getCurrentTokenRow()!==D.row||this.$matchTokenType(E.getCurrentToken()||"text",e)},f.$matchTokenType=function(m,y){return y.indexOf(m.type||m)>-1},f.recordAutoInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isAutoInsertedClosing(E,b,t.autoInsertedLineEnd[0])||(t.autoInsertedBrackets=0),t.autoInsertedRow=E.row,t.autoInsertedLineEnd=D+b.substr(E.column),t.autoInsertedBrackets++},f.recordMaybeInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isMaybeInsertedClosing(E,b)||(t.maybeInsertedBrackets=0),t.maybeInsertedRow=E.row,t.maybeInsertedLineStart=b.substr(0,E.column)+D,t.maybeInsertedLineEnd=b.substr(E.column),t.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(m,y,D){return t.autoInsertedBrackets>0&&m.row===t.autoInsertedRow&&D===t.autoInsertedLineEnd[0]&&y.substr(m.column)===t.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(m,y){return t.maybeInsertedBrackets>0&&m.row===t.maybeInsertedRow&&y.substr(m.column)===t.maybeInsertedLineEnd&&y.substr(0,m.column)==t.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){t.autoInsertedLineEnd=t.autoInsertedLineEnd.substr(1),t.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){t&&(t.maybeInsertedBrackets=0,t.maybeInsertedRow=-1)},o.inherits(f,h),u.CstyleBehaviour=f}),ace.define("ace/unicode",["require","exports","module"],function(i,u,v){for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],h=0,d=[],s=0;s2?U%g!=g-1:U%g==0}}else{if(!this.blockComment)return!1;var M=this.blockComment.start,_=this.blockComment.end,T=new RegExp("^(\\s*)(?:"+e.escapeRegExp(M)+")"),F=new RegExp("(?:"+e.escapeRegExp(_)+")\\s*$"),A=function(O,P){C(O,P)||(!D||/\S/.test(O))&&(y.insertInLine({row:P,column:O.length},_),y.insertInLine({row:P,column:b},M))},$=function(O,P){var B;(B=O.match(F))&&y.removeInLine(P,O.length-B[0].length,O.length),(B=O.match(T))&&y.removeInLine(P,B[1].length,B[0].length)},C=function(O,P){if(T.test(O))return!0;for(var B=c.getTokens(P),V=0;VO.length&&(R=O.length)}),b==1/0&&(b=R,D=!1,E=!1),S&&b%g!=0&&(b=Math.floor(b/g)*g),I(E?$:A)},this.toggleBlockComment=function(a,c,f,m){var y=this.blockComment;if(y){!y.start&&y[0]&&(y=y[0]);var D=new t(c,m.row,m.column),E=D.getCurrentToken();c.selection;var b=c.selection.toOrientedRange(),g,S;if(E&&/comment/.test(E.type)){for(var M,_;E&&/comment/.test(E.type);){var T=E.value.indexOf(y.start);if(T!=-1){var F=D.getCurrentTokenRow(),A=D.getCurrentTokenColumn()+T;M=new r(F,A,F,A+y.start.length);break}E=D.stepBackward()}for(var D=new t(c,m.row,m.column),E=D.getCurrentToken();E&&/comment/.test(E.type);){var T=E.value.indexOf(y.end);if(T!=-1){var F=D.getCurrentTokenRow(),A=D.getCurrentTokenColumn()+T;_=new r(F,A,F,A+y.end.length);break}E=D.stepForward()}_&&c.remove(_),M&&(c.remove(M),g=M.start.row,S=-y.start.length)}else S=y.start.length,g=f.start.row,c.insert(f.end,y.end),c.insert(f.start,y.start);b.start.row==g&&(b.start.column+=S),b.end.row==g&&(b.end.column+=S),c.selection.fromOrientedRange(b)}},this.getNextLineIndent=function(a,c,f){return this.$getIndent(c)},this.checkOutdent=function(a,c,f){return!1},this.autoOutdent=function(a,c,f){},this.$getIndent=function(a){return a.match(/^\s*/)[0]},this.createWorker=function(a){return null},this.createModeDelegates=function(a){this.$embeds=[],this.$modes={};for(var c in a)if(a[c]){var f=a[c],m=f.prototype.$id,y=o.$modes[m];y||(o.$modes[m]=y=new f),o.$modes[c]||(o.$modes[c]=y),this.$embeds.push(c),this.$modes[c]=y}for(var D=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],E=function(g){(function(S){var M=D[g],_=S[M];S[D[g]]=function(){return this.$delegator(M,arguments,_)}})(b)},b=this,c=0;cp[e].column&&e++,l.unshift(e,0),p.splice.apply(p,l),this.$updateRows()}}},d.prototype.$updateRows=function(){var s=this.session.lineWidgets;if(s){var p=!0;s.forEach(function(e,t){if(e)for(p=!1,e.row=t;e.$oldWidget;)e.$oldWidget.row=t,e=e.$oldWidget}),p&&(this.session.lineWidgets=null)}},d.prototype.$registerLineWidget=function(s){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var p=this.session.lineWidgets[s.row];return p&&(s.$oldWidget=p,p.el&&p.el.parentNode&&(p.el.parentNode.removeChild(p.el),p._inDocument=!1)),this.session.lineWidgets[s.row]=s,s},d.prototype.addLineWidget=function(s){if(this.$registerLineWidget(s),s.session=this.session,!this.editor)return s;var p=this.editor.renderer;s.html&&!s.el&&(s.el=o.createElement("div"),s.el.innerHTML=s.html),s.text&&!s.el&&(s.el=o.createElement("div"),s.el.textContent=s.text),s.el&&(o.addCssClass(s.el,"ace_lineWidgetContainer"),s.className&&o.addCssClass(s.el,s.className),s.el.style.position="absolute",s.el.style.zIndex="5",p.container.appendChild(s.el),s._inDocument=!0,s.coverGutter||(s.el.style.zIndex="3"),s.pixelHeight==null&&(s.pixelHeight=s.el.offsetHeight)),s.rowCount==null&&(s.rowCount=s.pixelHeight/p.layerConfig.lineHeight);var e=this.session.getFoldAt(s.row,0);if(s.$fold=e,e){var t=this.session.lineWidgets;s.row==e.end.row&&!t[e.start.row]?t[e.start.row]=s:s.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:s.row}}}),this.$updateRows(),this.renderWidgets(null,p),this.onWidgetChanged(s),s},d.prototype.removeLineWidget=function(s){if(s._inDocument=!1,s.session=null,s.el&&s.el.parentNode&&s.el.parentNode.removeChild(s.el),s.editor&&s.editor.destroy)try{s.editor.destroy()}catch{}if(this.session.lineWidgets){var p=this.session.lineWidgets[s.row];if(p==s)this.session.lineWidgets[s.row]=s.$oldWidget,s.$oldWidget&&this.onWidgetChanged(s.$oldWidget);else for(;p;){if(p.$oldWidget==s){p.$oldWidget=s.$oldWidget;break}p=p.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:s.row}}}),this.$updateRows()},d.prototype.getWidgetsAtRow=function(s){for(var p=this.session.lineWidgets,e=p&&p[s],t=[];e;)t.push(e),e=e.$oldWidget;return t},d.prototype.onWidgetChanged=function(s){this.session._changedWidgets.push(s),this.editor&&this.editor.renderer.updateFull()},d.prototype.measureWidgets=function(s,p){var e=this.session._changedWidgets,t=p.layerConfig;if(!(!e||!e.length)){for(var r=1/0,l=0;l0&&!t[r];)r--;this.firstRow=e.firstRow,this.lastRow=e.lastRow,p.$cursorLayer.config=e;for(var a=r;a<=l;a++){var c=t[a];if(!(!c||!c.el)){if(c.hidden){c.el.style.top=-100-(c.pixelHeight||0)+"px";continue}c._inDocument||(c._inDocument=!0,p.container.appendChild(c.el));var f=p.$cursorLayer.getPixelPosition({row:a,column:0},!0).top;c.coverLine||(f+=e.lineHeight*this.session.getRowLineCount(c.row)),c.el.style.top=f-e.offset+"px";var m=c.coverGutter?0:p.gutterWidth;c.fixedWidth||(m-=p.scrollLeft),c.el.style.left=m+"px",c.fullWidth&&c.screenWidth&&(c.el.style.minWidth=e.width+2*e.padding+"px"),c.fixedWidth?c.el.style.right=p.scrollBar.getWidth()+"px":c.el.style.right=""}}}},d}();u.LineWidgets=h}),ace.define("ace/apply_delta",["require","exports","module"],function(i,u,v){u.applyDelta=function(o,h,d){var s=h.start.row,p=h.start.column,e=o[s]||"";switch(h.action){case"insert":var t=h.lines;if(t.length===1)o[s]=e.substring(0,p)+h.lines[0]+e.substring(p);else{var r=[s,1].concat(h.lines);o.splice.apply(o,r),o[s]=e.substring(0,p)+o[s],o[s+h.lines.length-1]+=e.substring(p)}break;case"remove":var l=h.end.column,a=h.end.row;s===a?o[s]=e.substring(0,p)+e.substring(l):o.splice(s,a-s+1,e.substring(0,p)+o[a].substring(l));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(i,u,v){var o=i("./lib/oop"),h=i("./lib/event_emitter").EventEmitter,d=function(){function e(t,r,l){this.$onChange=this.onChange.bind(this),this.attach(t),typeof r!="number"?this.setPosition(r.row,r.column):this.setPosition(r,l)}return e.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},e.prototype.getDocument=function(){return this.document},e.prototype.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var r=p(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(r.row,r.column,!0)}},e.prototype.setPosition=function(t,r,l){var a;if(l?a={row:t,column:r}:a=this.$clipPositionToDocument(t,r),!(this.row==a.row&&this.column==a.column)){var c={row:this.row,column:this.column};this.row=a.row,this.column=a.column,this._signal("change",{old:c,value:a})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(t,r){var l={};return t>=this.document.getLength()?(l.row=Math.max(0,this.document.getLength()-1),l.column=this.document.getLine(l.row).length):t<0?(l.row=0,l.column=0):(l.row=t,l.column=Math.min(this.document.getLine(l.row).length,Math.max(0,r))),r<0&&(l.column=0),l},e}();d.prototype.$insertRight=!1,o.implement(d.prototype,h);function s(e,t,r){var l=r?e.column<=t.column:e.column=S.column){if(O===S.column){if(!/\.doc/.test(A.type))return;if(/\*\//.test(A.value)){var C=_[$+1];if(!C||!/\.doc/.test(C.type))return}}var w=S.column-(O-A.value.length),x=A.value.indexOf("*/"),I=A.value.indexOf("/**",x>-1?x+2:0);if(I!==-1&&w>I&&w=x&&w<=I||!/\.doc/.test(A.type))return;break}}var F=this.$getIndent(T);if(/\s*\*/.test(k))return/^\s*\*/.test(T)?{text:g+F+"* ",selection:[1,2+F.length,1,2+F.length]}:{text:g+F+" * ",selection:[1,3+F.length,1,3+F.length]};if(/\/\*\*/.test(T.substring(0,S.column)))return{text:g+F+" * "+g+" "+F+"*/",selection:[1,4+F.length,1,4+F.length]}}})},f.isSaneInsertion=function(m,y){var D=m.getCursorPosition(),E=new p(y,D.row,D.column);if(!this.$matchTokenType(E.getCurrentToken()||"text",d)){if(/[)}\]]/.test(m.session.getLine(D.row)[D.column]))return!0;var b=new p(y,D.row,D.column+1);if(!this.$matchTokenType(b.getCurrentToken()||"text",d))return!1}return E.stepForward(),E.getCurrentTokenRow()!==D.row||this.$matchTokenType(E.getCurrentToken()||"text",e)},f.$matchTokenType=function(m,y){return y.indexOf(m.type||m)>-1},f.recordAutoInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isAutoInsertedClosing(E,b,t.autoInsertedLineEnd[0])||(t.autoInsertedBrackets=0),t.autoInsertedRow=E.row,t.autoInsertedLineEnd=D+b.substr(E.column),t.autoInsertedBrackets++},f.recordMaybeInsert=function(m,y,D){var E=m.getCursorPosition(),b=y.doc.getLine(E.row);this.isMaybeInsertedClosing(E,b)||(t.maybeInsertedBrackets=0),t.maybeInsertedRow=E.row,t.maybeInsertedLineStart=b.substr(0,E.column)+D,t.maybeInsertedLineEnd=b.substr(E.column),t.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(m,y,D){return t.autoInsertedBrackets>0&&m.row===t.autoInsertedRow&&D===t.autoInsertedLineEnd[0]&&y.substr(m.column)===t.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(m,y){return t.maybeInsertedBrackets>0&&m.row===t.maybeInsertedRow&&y.substr(m.column)===t.maybeInsertedLineEnd&&y.substr(0,m.column)==t.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){t.autoInsertedLineEnd=t.autoInsertedLineEnd.substr(1),t.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){t&&(t.maybeInsertedBrackets=0,t.maybeInsertedRow=-1)},o.inherits(f,h),u.CstyleBehaviour=f}),ace.define("ace/unicode",["require","exports","module"],function(i,u,v){for(var o=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],h=0,p=[],a=0;a2?U%g!=g-1:U%g==0}}else{if(!this.blockComment)return!1;var T=this.blockComment.start,k=this.blockComment.end,_=new RegExp("^(\\s*)(?:"+e.escapeRegExp(T)+")"),O=new RegExp("(?:"+e.escapeRegExp(k)+")\\s*$"),$=function(R,B){C(R,B)||(!D||/\S/.test(R))&&(y.insertInLine({row:B,column:R.length},k),y.insertInLine({row:B,column:b},T))},A=function(R,B){var P;(P=R.match(O))&&y.removeInLine(B,R.length-P[0].length,R.length),(P=R.match(_))&&y.removeInLine(B,P[1].length,P[0].length)},C=function(R,B){if(_.test(R))return!0;for(var P=c.getTokens(B),V=0;VR.length&&(F=R.length)}),b==1/0&&(b=F,D=!1,E=!1),S&&b%g!=0&&(b=Math.floor(b/g)*g),I(E?A:$)},this.toggleBlockComment=function(s,c,f,m){var y=this.blockComment;if(y){!y.start&&y[0]&&(y=y[0]);var D=new t(c,m.row,m.column),E=D.getCurrentToken();c.selection;var b=c.selection.toOrientedRange(),g,S;if(E&&/comment/.test(E.type)){for(var T,k;E&&/comment/.test(E.type);){var _=E.value.indexOf(y.start);if(_!=-1){var O=D.getCurrentTokenRow(),$=D.getCurrentTokenColumn()+_;T=new r(O,$,O,$+y.start.length);break}E=D.stepBackward()}for(var D=new t(c,m.row,m.column),E=D.getCurrentToken();E&&/comment/.test(E.type);){var _=E.value.indexOf(y.end);if(_!=-1){var O=D.getCurrentTokenRow(),$=D.getCurrentTokenColumn()+_;k=new r(O,$,O,$+y.end.length);break}E=D.stepForward()}k&&c.remove(k),T&&(c.remove(T),g=T.start.row,S=-y.start.length)}else S=y.start.length,g=f.start.row,c.insert(f.end,y.end),c.insert(f.start,y.start);b.start.row==g&&(b.start.column+=S),b.end.row==g&&(b.end.column+=S),c.selection.fromOrientedRange(b)}},this.getNextLineIndent=function(s,c,f){return this.$getIndent(c)},this.checkOutdent=function(s,c,f){return!1},this.autoOutdent=function(s,c,f){},this.$getIndent=function(s){return s.match(/^\s*/)[0]},this.createWorker=function(s){return null},this.createModeDelegates=function(s){this.$embeds=[],this.$modes={};for(var c in s)if(s[c]){var f=s[c],m=f.prototype.$id,y=o.$modes[m];y||(o.$modes[m]=y=new f),o.$modes[c]||(o.$modes[c]=y),this.$embeds.push(c),this.$modes[c]=y}for(var D=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],E=function(g){(function(S){var T=D[g],k=S[T];S[D[g]]=function(){return this.$delegator(T,arguments,k)}})(b)},b=this,c=0;cd[e].column&&e++,l.unshift(e,0),d.splice.apply(d,l),this.$updateRows()}}},p.prototype.$updateRows=function(){var a=this.session.lineWidgets;if(a){var d=!0;a.forEach(function(e,t){if(e)for(d=!1,e.row=t;e.$oldWidget;)e.$oldWidget.row=t,e=e.$oldWidget}),d&&(this.session.lineWidgets=null)}},p.prototype.$registerLineWidget=function(a){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var d=this.session.lineWidgets[a.row];return d&&(a.$oldWidget=d,d.el&&d.el.parentNode&&(d.el.parentNode.removeChild(d.el),d._inDocument=!1)),this.session.lineWidgets[a.row]=a,a},p.prototype.addLineWidget=function(a){if(this.$registerLineWidget(a),a.session=this.session,!this.editor)return a;var d=this.editor.renderer;a.html&&!a.el&&(a.el=o.createElement("div"),a.el.innerHTML=a.html),a.text&&!a.el&&(a.el=o.createElement("div"),a.el.textContent=a.text),a.el&&(o.addCssClass(a.el,"ace_lineWidgetContainer"),a.className&&o.addCssClass(a.el,a.className),a.el.style.position="absolute",a.el.style.zIndex="5",d.container.appendChild(a.el),a._inDocument=!0,a.coverGutter||(a.el.style.zIndex="3"),a.pixelHeight==null&&(a.pixelHeight=a.el.offsetHeight)),a.rowCount==null&&(a.rowCount=a.pixelHeight/d.layerConfig.lineHeight);var e=this.session.getFoldAt(a.row,0);if(a.$fold=e,e){var t=this.session.lineWidgets;a.row==e.end.row&&!t[e.start.row]?t[e.start.row]=a:a.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows(),this.renderWidgets(null,d),this.onWidgetChanged(a),a},p.prototype.removeLineWidget=function(a){if(a._inDocument=!1,a.session=null,a.el&&a.el.parentNode&&a.el.parentNode.removeChild(a.el),a.editor&&a.editor.destroy)try{a.editor.destroy()}catch{}if(this.session.lineWidgets){var d=this.session.lineWidgets[a.row];if(d==a)this.session.lineWidgets[a.row]=a.$oldWidget,a.$oldWidget&&this.onWidgetChanged(a.$oldWidget);else for(;d;){if(d.$oldWidget==a){d.$oldWidget=a.$oldWidget;break}d=d.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:a.row}}}),this.$updateRows()},p.prototype.getWidgetsAtRow=function(a){for(var d=this.session.lineWidgets,e=d&&d[a],t=[];e;)t.push(e),e=e.$oldWidget;return t},p.prototype.onWidgetChanged=function(a){this.session._changedWidgets.push(a),this.editor&&this.editor.renderer.updateFull()},p.prototype.measureWidgets=function(a,d){var e=this.session._changedWidgets,t=d.layerConfig;if(!(!e||!e.length)){for(var r=1/0,l=0;l0&&!t[r];)r--;this.firstRow=e.firstRow,this.lastRow=e.lastRow,d.$cursorLayer.config=e;for(var s=r;s<=l;s++){var c=t[s];if(!(!c||!c.el)){if(c.hidden){c.el.style.top=-100-(c.pixelHeight||0)+"px";continue}c._inDocument||(c._inDocument=!0,d.container.appendChild(c.el));var f=d.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;c.coverLine||(f+=e.lineHeight*this.session.getRowLineCount(c.row)),c.el.style.top=f-e.offset+"px";var m=c.coverGutter?0:d.gutterWidth;c.fixedWidth||(m-=d.scrollLeft),c.el.style.left=m+"px",c.fullWidth&&c.screenWidth&&(c.el.style.minWidth=e.width+2*e.padding+"px"),c.fixedWidth?c.el.style.right=d.scrollBar.getWidth()+"px":c.el.style.right=""}}}},p}();u.LineWidgets=h}),ace.define("ace/apply_delta",["require","exports","module"],function(i,u,v){u.applyDelta=function(o,h,p){var a=h.start.row,d=h.start.column,e=o[a]||"";switch(h.action){case"insert":var t=h.lines;if(t.length===1)o[a]=e.substring(0,d)+h.lines[0]+e.substring(d);else{var r=[a,1].concat(h.lines);o.splice.apply(o,r),o[a]=e.substring(0,d)+o[a],o[a+h.lines.length-1]+=e.substring(d)}break;case"remove":var l=h.end.column,s=h.end.row;a===s?o[a]=e.substring(0,d)+e.substring(l):o.splice(a,s-a+1,e.substring(0,d)+o[s].substring(l));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(i,u,v){var o=i("./lib/oop"),h=i("./lib/event_emitter").EventEmitter,p=function(){function e(t,r,l){this.$onChange=this.onChange.bind(this),this.attach(t),typeof r!="number"?this.setPosition(r.row,r.column):this.setPosition(r,l)}return e.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},e.prototype.getDocument=function(){return this.document},e.prototype.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var r=d(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(r.row,r.column,!0)}},e.prototype.setPosition=function(t,r,l){var s;if(l?s={row:t,column:r}:s=this.$clipPositionToDocument(t,r),!(this.row==s.row&&this.column==s.column)){var c={row:this.row,column:this.column};this.row=s.row,this.column=s.column,this._signal("change",{old:c,value:s})}},e.prototype.detach=function(){this.document.off("change",this.$onChange)},e.prototype.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},e.prototype.$clipPositionToDocument=function(t,r){var l={};return t>=this.document.getLength()?(l.row=Math.max(0,this.document.getLength()-1),l.column=this.document.getLine(l.row).length):t<0?(l.row=0,l.column=0):(l.row=t,l.column=Math.min(this.document.getLine(l.row).length,Math.max(0,r))),r<0&&(l.column=0),l},e}();p.prototype.$insertRight=!1,o.implement(p.prototype,h);function a(e,t,r){var l=r?e.column<=t.column:e.column=a&&(r=a-1,l=void 0);var c=this.getLine(r);return l==null&&(l=c.length),l=Math.min(Math.max(l,0),c.length),{row:r,column:l}},t.prototype.clonePos=function(r){return{row:r.row,column:r.column}},t.prototype.pos=function(r,l){return{row:r,column:l}},t.prototype.$clipPosition=function(r){var l=this.getLength();return r.row>=l?(r.row=Math.max(0,l-1),r.column=this.getLine(l-1).length):(r.row=Math.max(0,r.row),r.column=Math.min(Math.max(r.column,0),this.getLine(r.row).length)),r},t.prototype.insertFullLines=function(r,l){r=Math.min(Math.max(r,0),this.getLength());var a=0;r0,c=l=0&&this.applyDelta({start:this.pos(r,this.getLine(r).length),end:this.pos(r+1,0),action:"remove",lines:["",""]})},t.prototype.replace=function(r,l){if(r instanceof s||(r=s.fromPoints(r.start,r.end)),l.length===0&&r.isEmpty())return r.start;if(l==this.getTextRange(r))return r.end;this.remove(r);var a;return l?a=this.insert(r.start,l):a=r.start,a},t.prototype.applyDeltas=function(r){for(var l=0;l=0;l--)this.revertDelta(r[l])},t.prototype.applyDelta=function(r,l){var a=r.action=="insert";(a?r.lines.length<=1&&!r.lines[0]:!s.comparePoints(r.start,r.end))||(a&&r.lines.length>2e4?this.$splitAndapplyLargeDelta(r,2e4):(h(this.$lines,r,l),this._signal("change",r)))},t.prototype.$safeApplyDelta=function(r){var l=this.$lines.length;(r.action=="remove"&&r.start.row20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=l,a==-1&&(a=l),f<=a&&t.fireUpdateEvent(f,a)}}}return s.prototype.setTokenizer=function(p){this.tokenizer=p,this.lines=[],this.states=[],this.start(0)},s.prototype.setDocument=function(p){this.doc=p,this.lines=[],this.states=[],this.stop()},s.prototype.fireUpdateEvent=function(p,e){var t={first:p,last:e};this._signal("update",{data:t})},s.prototype.start=function(p){this.currentLine=Math.min(p||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},s.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},s.prototype.$updateOnChange=function(p){var e=p.start.row,t=p.end.row-e;if(t===0)this.lines[e]=null;else if(p.action=="remove")this.lines.splice(e,t+1,null),this.states.splice(e,t+1,null);else{var r=Array(t+1);r.unshift(e,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(e,this.currentLine,this.doc.getLength()),this.stop()},s.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},s.prototype.getTokens=function(p){return this.lines[p]||this.$tokenizeRow(p)},s.prototype.getState=function(p){return this.currentLine==p&&this.$tokenizeRow(p),this.states[p]||"start"},s.prototype.$tokenizeRow=function(p){var e=this.doc.getLine(p),t=this.states[p-1],r=this.tokenizer.getLineTokens(e,t,p);return this.states[p]+""!=r.state+""?(this.states[p]=r.state,this.lines[p+1]=null,this.currentLine>p+1&&(this.currentLine=p+1)):this.currentLine==p&&(this.currentLine=p+1),this.lines[p]=r.tokens},s.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},s}();o.implement(d.prototype,h),u.BackgroundTokenizer=d}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(i,u,v){var o=i("./lib/lang"),h=i("./range").Range,d=function(){function s(p,e,t){t===void 0&&(t="text"),this.setRegexp(p),this.clazz=e,this.type=t,this.docLen=0}return s.prototype.setRegexp=function(p){this.regExp+""!=p+""&&(this.regExp=p,this.cache=[])},s.prototype.update=function(p,e,t,r){if(this.regExp){for(var l=r.firstRow,a=r.lastRow,c={},f=t.$editor&&t.$editor.$search,m=f&&f.$isMultilineSearch(t.$editor.getLastSearchOptions()),y=l;y<=a;y++){var D=this.cache[y];if(D==null||t.getValue().length!=this.docLen){if(m){D=[];var E=f.$multiLineForward(t,this.regExp,y,a);if(E){var b=E.endRow<=a?E.endRow-1:a;b>y&&(y=b),D.push(new h(E.startRow,E.startCol,E.endRow,E.endCol))}D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES))}else D=o.getMatchOffsets(t.getLine(y),this.regExp),D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES)),D=D.map(function(_){return new h(y,_.offset,y,_.offset+_.length)});this.cache[y]=D.length?D:""}if(D.length!==0)for(var g=D.length;g--;){var S=D[g].toScreenRange(t),M=S.toString();c[M]||(c[M]=!0,e.drawSingleLineMarker(p,S,this.clazz,r))}}this.docLen=t.getValue().length}},s}();d.prototype.MAX_RANGES=500,u.SearchHighlight=d}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(i,u,v){var o=function(){function b(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return b.prototype.addSession=function(g){this.$session=g},b.prototype.add=function(g,S,M){if(!this.$fromUndo&&g!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),S===!1||!this.lastDeltas){this.lastDeltas=[];var _=this.$undoStack.length;_>this.$undoDepth-1&&this.$undoStack.splice(0,_-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),g.id=this.$rev=++this.$maxRev}(g.action=="remove"||g.action=="insert")&&(this.$lastDelta=g),this.lastDeltas.push(g)}},b.prototype.addSelection=function(g,S){this.selections.push({value:g,rev:S||this.$rev})},b.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},b.prototype.markIgnored=function(g,S){S==null&&(S=this.$rev+1);for(var M=this.$undoStack,_=M.length;_--;){var T=M[_][0];if(T.id<=g)break;T.id0},b.prototype.canRedo=function(){return this.$redoStack.length>0},b.prototype.bookmark=function(g){g==null&&(g=this.$rev),this.mark=g},b.prototype.isAtBookmark=function(){return this.$rev===this.mark},b.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},b.prototype.fromJSON=function(g){this.reset(),this.$undoStack=g.$undoStack,this.$redoStack=g.$redoStack},b.prototype.$prettyPrint=function(g){return g?t(g):t(this.$undoStack)+` +`},t.prototype.getLine=function(r){return this.$lines[r]||""},t.prototype.getLines=function(r,l){return this.$lines.slice(r,l+1)},t.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},t.prototype.getLength=function(){return this.$lines.length},t.prototype.getTextRange=function(r){return this.getLinesForRange(r).join(this.getNewLineCharacter())},t.prototype.getLinesForRange=function(r){var l;if(r.start.row===r.end.row)l=[this.getLine(r.start.row).substring(r.start.column,r.end.column)];else{l=this.getLines(r.start.row,r.end.row),l[0]=(l[0]||"").substring(r.start.column);var s=l.length-1;r.end.row-r.start.row==s&&(l[s]=l[s].substring(0,r.end.column))}return l},t.prototype.insertLines=function(r,l){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(r,l)},t.prototype.removeLines=function(r,l){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(r,l)},t.prototype.insertNewLine=function(r){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(r,["",""])},t.prototype.insert=function(r,l){return this.getLength()<=1&&this.$detectNewLine(l),this.insertMergedLines(r,this.$split(l))},t.prototype.insertInLine=function(r,l){var s=this.clippedPos(r.row,r.column),c=this.pos(r.row,r.column+l.length);return this.applyDelta({start:s,end:c,action:"insert",lines:[l]},!0),this.clonePos(c)},t.prototype.clippedPos=function(r,l){var s=this.getLength();r===void 0?r=s:r<0?r=0:r>=s&&(r=s-1,l=void 0);var c=this.getLine(r);return l==null&&(l=c.length),l=Math.min(Math.max(l,0),c.length),{row:r,column:l}},t.prototype.clonePos=function(r){return{row:r.row,column:r.column}},t.prototype.pos=function(r,l){return{row:r,column:l}},t.prototype.$clipPosition=function(r){var l=this.getLength();return r.row>=l?(r.row=Math.max(0,l-1),r.column=this.getLine(l-1).length):(r.row=Math.max(0,r.row),r.column=Math.min(Math.max(r.column,0),this.getLine(r.row).length)),r},t.prototype.insertFullLines=function(r,l){r=Math.min(Math.max(r,0),this.getLength());var s=0;r0,c=l=0&&this.applyDelta({start:this.pos(r,this.getLine(r).length),end:this.pos(r+1,0),action:"remove",lines:["",""]})},t.prototype.replace=function(r,l){if(r instanceof a||(r=a.fromPoints(r.start,r.end)),l.length===0&&r.isEmpty())return r.start;if(l==this.getTextRange(r))return r.end;this.remove(r);var s;return l?s=this.insert(r.start,l):s=r.start,s},t.prototype.applyDeltas=function(r){for(var l=0;l=0;l--)this.revertDelta(r[l])},t.prototype.applyDelta=function(r,l){var s=r.action=="insert";(s?r.lines.length<=1&&!r.lines[0]:!a.comparePoints(r.start,r.end))||(s&&r.lines.length>2e4?this.$splitAndapplyLargeDelta(r,2e4):(h(this.$lines,r,l),this._signal("change",r)))},t.prototype.$safeApplyDelta=function(r){var l=this.$lines.length;(r.action=="remove"&&r.start.row20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=l,s==-1&&(s=l),f<=s&&t.fireUpdateEvent(f,s)}}}return a.prototype.setTokenizer=function(d){this.tokenizer=d,this.lines=[],this.states=[],this.start(0)},a.prototype.setDocument=function(d){this.doc=d,this.lines=[],this.states=[],this.stop()},a.prototype.fireUpdateEvent=function(d,e){var t={first:d,last:e};this._signal("update",{data:t})},a.prototype.start=function(d){this.currentLine=Math.min(d||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},a.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},a.prototype.$updateOnChange=function(d){var e=d.start.row,t=d.end.row-e;if(t===0)this.lines[e]=null;else if(d.action=="remove")this.lines.splice(e,t+1,null),this.states.splice(e,t+1,null);else{var r=Array(t+1);r.unshift(e,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(e,this.currentLine,this.doc.getLength()),this.stop()},a.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},a.prototype.getTokens=function(d){return this.lines[d]||this.$tokenizeRow(d)},a.prototype.getState=function(d){return this.currentLine==d&&this.$tokenizeRow(d),this.states[d]||"start"},a.prototype.$tokenizeRow=function(d){var e=this.doc.getLine(d),t=this.states[d-1],r=this.tokenizer.getLineTokens(e,t,d);return this.states[d]+""!=r.state+""?(this.states[d]=r.state,this.lines[d+1]=null,this.currentLine>d+1&&(this.currentLine=d+1)):this.currentLine==d&&(this.currentLine=d+1),this.lines[d]=r.tokens},a.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},a}();o.implement(p.prototype,h),u.BackgroundTokenizer=p}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(i,u,v){var o=i("./lib/lang"),h=i("./range").Range,p=function(){function a(d,e,t){t===void 0&&(t="text"),this.setRegexp(d),this.clazz=e,this.type=t,this.docLen=0}return a.prototype.setRegexp=function(d){this.regExp+""!=d+""&&(this.regExp=d,this.cache=[])},a.prototype.update=function(d,e,t,r){if(this.regExp){for(var l=r.firstRow,s=r.lastRow,c={},f=t.$editor&&t.$editor.$search,m=f&&f.$isMultilineSearch(t.$editor.getLastSearchOptions()),y=l;y<=s;y++){var D=this.cache[y];if(D==null||t.getValue().length!=this.docLen){if(m){D=[];var E=f.$multiLineForward(t,this.regExp,y,s);if(E){var b=E.endRow<=s?E.endRow-1:s;b>y&&(y=b),D.push(new h(E.startRow,E.startCol,E.endRow,E.endCol))}D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES))}else D=o.getMatchOffsets(t.getLine(y),this.regExp),D.length>this.MAX_RANGES&&(D=D.slice(0,this.MAX_RANGES)),D=D.map(function(k){return new h(y,k.offset,y,k.offset+k.length)});this.cache[y]=D.length?D:""}if(D.length!==0)for(var g=D.length;g--;){var S=D[g].toScreenRange(t),T=S.toString();c[T]||(c[T]=!0,e.drawSingleLineMarker(d,S,this.clazz,r))}}this.docLen=t.getValue().length}},a}();p.prototype.MAX_RANGES=500,u.SearchHighlight=p}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(i,u,v){var o=function(){function b(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return b.prototype.addSession=function(g){this.$session=g},b.prototype.add=function(g,S,T){if(!this.$fromUndo&&g!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),S===!1||!this.lastDeltas){this.lastDeltas=[];var k=this.$undoStack.length;k>this.$undoDepth-1&&this.$undoStack.splice(0,k-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),g.id=this.$rev=++this.$maxRev}(g.action=="remove"||g.action=="insert")&&(this.$lastDelta=g),this.lastDeltas.push(g)}},b.prototype.addSelection=function(g,S){this.selections.push({value:g,rev:S||this.$rev})},b.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},b.prototype.markIgnored=function(g,S){S==null&&(S=this.$rev+1);for(var T=this.$undoStack,k=T.length;k--;){var _=T[k][0];if(_.id<=g)break;_.id0},b.prototype.canRedo=function(){return this.$redoStack.length>0},b.prototype.bookmark=function(g){g==null&&(g=this.$rev),this.mark=g},b.prototype.isAtBookmark=function(){return this.$rev===this.mark},b.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},b.prototype.fromJSON=function(g){this.reset(),this.$undoStack=g.$undoStack,this.$redoStack=g.$redoStack},b.prototype.$prettyPrint=function(g){return g?t(g):t(this.$undoStack)+` --- -`+t(this.$redoStack)},b}();o.prototype.hasUndo=o.prototype.canUndo,o.prototype.hasRedo=o.prototype.canRedo,o.prototype.isClean=o.prototype.isAtBookmark,o.prototype.markClean=o.prototype.bookmark;function h(b,g){for(var S=g;S--;){var M=b[S];if(M&&!M[0].ignore){for(;S"+b.end.row+":"+b.end.column}function l(b,g){var S=b.action=="insert",M=g.action=="insert";if(S&&M)if(s(g.start,b.end)>=0)f(g,b,-1);else if(s(g.start,b.start)<=0)f(b,g,1);else return null;else if(S&&!M)if(s(g.start,b.end)>=0)f(g,b,-1);else if(s(g.end,b.start)<=0)f(b,g,-1);else return null;else if(!S&&M)if(s(g.start,b.start)>=0)f(g,b,1);else if(s(g.start,b.start)<=0)f(b,g,1);else return null;else if(!S&&!M)if(s(g.start,b.start)>=0)f(g,b,1);else if(s(g.end,b.start)<=0)f(b,g,-1);else return null;return[g,b]}function a(b,g){for(var S=b.length;S--;)for(var M=0;M=0?f(b,g,-1):(s(b.start,g.start)<=0||f(b,d.fromPoints(g.start,b.start),-1),f(g,b,1));else if(!S&&M)s(g.start,b.end)>=0?f(g,b,-1):(s(g.start,b.start)<=0||f(g,d.fromPoints(b.start,g.start),-1),f(b,g,1));else if(!S&&!M)if(s(g.start,b.end)>=0)f(g,b,-1);else if(s(g.end,b.start)<=0)f(b,g,-1);else{var _,T;return s(b.start,g.start)<0&&(_=b,b=y(b,g.start)),s(b.end,g.end)>0&&(T=y(b,g.end)),m(g.end,b.start,b.end,-1),T&&!_&&(b.lines=T.lines,b.start=T.start,b.end=T.end,T=b),[g,_,T].filter(Boolean)}return[g,b]}function f(b,g,S){m(b.start,g.start,g.end,S),m(b.end,g.start,g.end,S)}function m(b,g,S,M){b.row==(M==1?g:S).row&&(b.column+=M*(S.column-g.column)),b.row+=M*(S.row-g.row)}function y(b,g){var S=b.lines,M=b.end;b.end=p(g);var _=b.end.row-b.start.row,T=S.splice(_,S.length),F=_?g.column:g.column-b.start.column;S.push(T[0].substring(0,F)),T[0]=T[0].substr(F);var A={start:p(g),end:M,lines:T,action:b.action};return A}function D(b,g){g=e(g);for(var S=b.length;S--;){for(var M=b[S],_=0;_this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(s),this.folds.sort(function(p,e){return-p.range.compareEnd(e.start.row,e.start.column)}),this.range.compareEnd(s.start.row,s.start.column)>0?(this.end.row=s.end.row,this.end.column=s.end.column):this.range.compareStart(s.end.row,s.end.column)<0&&(this.start.row=s.start.row,this.start.column=s.start.column)}else if(s.start.row==this.end.row)this.folds.push(s),this.end.row=s.end.row,this.end.column=s.end.column;else if(s.end.row==this.start.row)this.folds.unshift(s),this.start.row=s.start.row,this.start.column=s.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");s.foldLine=this},d.prototype.containsRow=function(s){return s>=this.start.row&&s<=this.end.row},d.prototype.walk=function(s,p,e){var t=0,r=this.folds,l,a,c,f=!0;p==null&&(p=this.end.row,e=this.end.column);for(var m=0;m0)){var f=h(p,a.start);return c===0?e&&f!==0?-l-2:l:f>0||f===0&&!e?l:-l-1}}return-l-1},s.prototype.add=function(p){var e=!p.isEmpty(),t=this.pointIndex(p.start,e);t<0&&(t=-t-1);var r=this.pointIndex(p.end,e,t);return r<0?r=-r-1:r++,this.ranges.splice(t,r-t,p)},s.prototype.addList=function(p){for(var e=[],t=p.length;t--;)e.push.apply(e,this.add(p[t]));return e},s.prototype.substractPoint=function(p){var e=this.pointIndex(p);if(e>=0)return this.ranges.splice(e,1)},s.prototype.merge=function(){var p=[],e=this.ranges;e=e.sort(function(c,f){return h(c.start,f.start)});for(var t=e[0],r,l=1;l=0},s.prototype.containsPoint=function(p){return this.pointIndex(p)>=0},s.prototype.rangeAtPoint=function(p){var e=this.pointIndex(p);if(e>=0)return this.ranges[e]},s.prototype.clipRows=function(p,e){var t=this.ranges;if(t[0].start.row>e||t[t.length-1].start.row=r)break}if(p.action=="insert")for(var y=l-r,D=-e.column+t.column;cr)break;if(m.start.row==r&&m.start.column>=e.column&&(m.start.column==e.column&&this.$bias<=0||(m.start.column+=D,m.start.row+=y)),m.end.row==r&&m.end.column>=e.column){if(m.end.column==e.column&&this.$bias<0)continue;m.end.column==e.column&&D>0&&cm.start.column&&m.end.column==a[c+1].start.column&&(m.end.column-=D),m.end.column+=D,m.end.row+=y}}else for(var y=r-l,D=e.column-t.column;cl)break;m.end.rowe.column)&&(m.end.column=e.column,m.end.row=e.row):(m.end.column+=D,m.end.row+=y):m.end.row>l&&(m.end.row+=y),m.start.rowe.column)&&(m.start.column=e.column,m.start.row=e.row):(m.start.column+=D,m.start.row+=y):m.start.row>l&&(m.start.row+=y)}if(y!=0&&c=t)return c;if(c.end.row>t)return null}return null},this.getNextFoldLine=function(t,r){var l=this.$foldData,a=0;for(r&&(a=l.indexOf(r)),a==-1&&(a=0),a;a=t)return c}return null},this.getFoldedRowCount=function(t,r){for(var l=this.$foldData,a=r-t+1,c=0;c=r){y=t?a-=r-y:a=0);break}else m>=t&&(y>=t?a-=m-y:a-=m-t+1)}return a},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(r,l){return r.start.row-l.start.row}),t},this.addFold=function(t,r){var l=this.$foldData,a=!1,c;t instanceof d?c=t:(c=new d(r,t),c.collapseChildren=r.collapseChildren),this.$clipRangeToDocument(c.range);var f=c.start.row,m=c.start.column,y=c.end.row,D=c.end.column,E=this.getFoldAt(f,m,1),b=this.getFoldAt(y,D,-1);if(E&&b==E)return E.addSubFold(c);E&&!E.range.isStart(f,m)&&this.removeFold(E),b&&!b.range.isEnd(y,D)&&this.removeFold(b);var g=this.getFoldsInRange(c.range);g.length>0&&(this.removeFolds(g),c.collapseChildren||g.forEach(function(T){c.addSubFold(T)}));for(var S=0;S0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(r){this.expandFold(r)},this)},this.unfold=function(t,r){var l,a;if(t==null)l=new o(0,0,this.getLength(),0),r==null&&(r=!0);else if(typeof t=="number")l=new o(t,0,t,this.getLine(t).length);else if("row"in t)l=o.fromPoints(t,t);else{if(Array.isArray(t))return a=[],t.forEach(function(f){a=a.concat(this.unfold(f))},this),a;l=t}a=this.getFoldsInRangeList(l);for(var c=a;a.length==1&&o.comparePoints(a[0].start,l.start)<0&&o.comparePoints(a[0].end,l.end)>0;)this.expandFolds(a),a=this.getFoldsInRangeList(l);if(r!=!1?this.removeFolds(a):this.expandFolds(a),c.length)return c},this.isRowFolded=function(t,r){return!!this.getFoldLine(t,r)},this.getRowFoldEnd=function(t,r){var l=this.getFoldLine(t,r);return l?l.end.row:t},this.getRowFoldStart=function(t,r){var l=this.getFoldLine(t,r);return l?l.start.row:t},this.getFoldDisplayLine=function(t,r,l,a,c){a==null&&(a=t.start.row),c==null&&(c=0),r==null&&(r=t.end.row),l==null&&(l=this.getLine(r).length);var f=this.doc,m="";return t.walk(function(y,D,E,b){if(!(DE)break;while(c&&m.test(c.type));c=a.stepBackward()}else c=a.getCurrentToken();return y.end.row=a.getCurrentTokenRow(),y.end.column=a.getCurrentTokenColumn(),y.start.row==y.end.row&&y.start.column>y.end.column?void 0:y}},this.foldAll=function(t,r,l,a){l==null&&(l=1e5);var c=this.foldWidgets;if(c){r=r||this.getLength(),t=t||0;for(var f=t;f=t&&(f=m.end.row,m.collapseChildren=l,this.addFold("...",m))}}},this.foldToLevel=function(t){for(this.foldAll();t-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var t=this;this.foldAll(null,null,null,function(r){for(var l=t.getTokens(r),a=0;a=0;){var f=l[a];if(f==null&&(f=l[a]=this.getFoldWidget(a)),f=="start"){var m=this.getFoldWidgetRange(a);if(c||(c=m),m&&m.end.row>=t)break}a--}return{range:a!==-1&&m,firstRange:c}},this.onFoldWidgetClick=function(t,r){r instanceof p&&(r=r.domEvent);var l={children:r.shiftKey,all:r.ctrlKey||r.metaKey,siblings:r.altKey},a=this.$toggleFoldWidget(t,l);if(!a){var c=r.target||r.srcElement;c&&/ace_fold-widget/.test(c.className)&&(c.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,r){if(this.getFoldWidget){var l=this.getFoldWidget(t),a=this.getLine(t),c=l==="end"?-1:1,f=this.getFoldAt(t,c===-1?0:a.length,c);if(f)return r.children||r.all?this.removeFold(f):this.expandFold(f),f;var m=this.getFoldWidgetRange(t,!0);if(m&&!m.isMultiLine()&&(f=this.getFoldAt(m.start.row,m.start.column,1),f&&m.isEqual(f.range)))return this.removeFold(f),f;if(r.siblings){var y=this.getParentFoldRangeData(t);if(y.range)var D=y.range.start.row+1,E=y.range.end.row;this.foldAll(D,E,r.all?1e4:0)}else r.children?(E=m?m.end.row:this.getLength(),this.foldAll(t+1,E,r.all?1e4:0)):m&&(r.all&&(m.collapseChildren=1e4),this.addFold("...",m));return m}},this.toggleFoldWidget=function(t){var r=this.selection.getCursor().row;r=this.getRowFoldStart(r);var l=this.$toggleFoldWidget(r,{});if(!l){var a=this.getParentFoldRangeData(r,!0);if(l=a.range||a.firstRange,l){r=l.start.row;var c=this.getFoldAt(r,this.getLine(r).length,1);c?this.removeFold(c):this.addFold("...",l)}}},this.updateFoldWidgets=function(t){var r=t.start.row,l=t.end.row-r;if(l===0)this.foldWidgets[r]=null;else if(t.action=="remove")this.foldWidgets.splice(r,l+1,null);else{var a=Array(l+1);a.unshift(r,1),this.foldWidgets.splice.apply(this.foldWidgets,a)}},this.tokenizerUpdateFoldWidgets=function(t){var r=t.data;r.first!=r.last&&this.foldWidgets.length>r.first&&this.foldWidgets.splice(r.first,this.foldWidgets.length)}}u.Folding=e}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(i,u,v){var o=i("../token_iterator").TokenIterator,h=i("../range").Range;function d(){this.findMatchingBracket=function(s,p){if(s.column==0)return null;var e=p||this.getLine(s.row).charAt(s.column-1);if(e=="")return null;var t=e.match(/([\(\[\{])|([\)\]\}])/);return t?t[1]?this.$findClosingBracket(t[1],s):this.$findOpeningBracket(t[2],s):null},this.getBracketRange=function(s){var p=this.getLine(s.row),e=!0,t,r=p.charAt(s.column-1),l=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(l||(r=p.charAt(s.column),s={row:s.row,column:s.column+1},l=r&&r.match(/([\(\[\{])|([\)\]\}])/),e=!1),!l)return null;if(l[1]){var a=this.$findClosingBracket(l[1],s);if(!a)return null;t=h.fromPoints(s,a),e||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(l[2],s);if(!a)return null;t=h.fromPoints(a,s),e||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(s,p){var e=this.getLine(s.row),t=/([\(\[\{])|([\)\]\}])/,r=!p&&e.charAt(s.column-1),l=r&&r.match(t);if(l||(r=(p===void 0||p)&&e.charAt(s.column),s={row:s.row,column:s.column+1},l=r&&r.match(t)),!l)return null;var a=new h(s.row,s.column-1,s.row,s.column),c=l[1]?this.$findClosingBracket(l[1],s):this.$findOpeningBracket(l[2],s);if(!c)return[a];var f=new h(c.row,c.column,c.row,c.column+1);return[a,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(s,p,e){var t=this.$brackets[s],r=1,l=new o(this,p.row,p.column),a=l.getCurrentToken();if(a||(a=l.stepForward()),!!a){e||(e=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var c=p.column-l.getCurrentTokenColumn()-2,f=a.value;;){for(;c>=0;){var m=f.charAt(c);if(m==t){if(r-=1,r==0)return{row:l.getCurrentTokenRow(),column:c+l.getCurrentTokenColumn()}}else m==s&&(r+=1);c-=1}do a=l.stepBackward();while(a&&!e.test(a.type));if(a==null)break;f=a.value,c=f.length-1}return null}},this.$findClosingBracket=function(s,p,e){var t=this.$brackets[s],r=1,l=new o(this,p.row,p.column),a=l.getCurrentToken();if(a||(a=l.stepForward()),!!a){e||(e=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var c=p.column-l.getCurrentTokenColumn();;){for(var f=a.value,m=f.length;c"?t=!0:p.type.indexOf("tag-name")!==-1&&(e=!0));while(p&&!e);return p},this.$findClosingTag=function(s,p){var e,t=p.value,r=p.value,l=0,a=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);p=s.stepForward();var c=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+p.value.length),f=!1;do{if(e=p,e.type.indexOf("tag-close")!==-1&&!f){var m=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);f=!0}if(p=s.stepForward(),p){if(p.value===">"&&!f){var m=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);f=!0}if(p.type.indexOf("tag-name")!==-1){if(t=p.value,r===t){if(e.value==="<")l++;else if(e.value==="")var E=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);else return}}}else if(r===t&&p.value==="/>"&&(l--,l<0))var y=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+2),D=y,E=D,m=new h(c.end.row,c.end.column,c.end.row,c.end.column+1)}}while(p&&l>=0);if(a&&m&&y&&E&&c&&D)return{openTag:new h(a.start.row,a.start.column,m.end.row,m.end.column),closeTag:new h(y.start.row,y.start.column,E.end.row,E.end.column),openTagName:c,closeTagName:D}},this.$findOpeningTag=function(s,p){var e=s.getCurrentToken(),t=p.value,r=0,l=s.getCurrentTokenRow(),a=s.getCurrentTokenColumn(),c=a+2,f=new h(l,a,l,c);s.stepForward();var m=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+p.value.length);if(p.type.indexOf("tag-close")===-1&&(p=s.stepForward()),!(!p||p.value!==">")){var y=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);s.stepBackward(),s.stepBackward();do if(p=e,l=s.getCurrentTokenRow(),a=s.getCurrentTokenColumn(),c=a+p.value.length,e=s.stepBackward(),p){if(p.type.indexOf("tag-name")!==-1){if(t===p.value)if(e.value==="<"){if(r++,r>0){var D=new h(l,a,l,c),E=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);do p=s.stepForward();while(p&&p.value!==">");var b=new h(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1)}}else e.value===""){for(var g=0,S=e;S;){if(S.type.indexOf("tag-name")!==-1&&S.value===t){r--;break}else if(S.value==="<")break;S=s.stepBackward(),g++}for(var M=0;Mw&&(this.$docRowCache.splice(w,C),this.$screenRowCache.splice(w,C))},A.prototype.$getRowCacheIndex=function($,C){for(var w=0,x=$.length-1;w<=x;){var I=w+x>>1,R=$[I];if(C>R)w=I+1;else if(C=C));R++);return x=w[R],x?(x.index=R,x.start=I-x.value.length,x):null},A.prototype.setUndoManager=function($){if(this.$undoManager=$,this.$informUndoManager&&this.$informUndoManager.cancel(),$){var C=this;$.addSession(this),this.$syncInformUndoManager=function(){C.$informUndoManager.cancel(),C.mergeUndoDeltas=!1},this.$informUndoManager=h.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},A.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},A.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},A.prototype.getTabString=function(){return this.getUseSoftTabs()?h.stringRepeat(" ",this.getTabSize()):" "},A.prototype.setUseSoftTabs=function($){this.setOption("useSoftTabs",$)},A.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},A.prototype.setTabSize=function($){this.setOption("tabSize",$)},A.prototype.getTabSize=function(){return this.$tabSize},A.prototype.isTabStop=function($){return this.$useSoftTabs&&$.column%this.$tabSize===0},A.prototype.setNavigateWithinSoftTabs=function($){this.setOption("navigateWithinSoftTabs",$)},A.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},A.prototype.setOverwrite=function($){this.setOption("overwrite",$)},A.prototype.getOverwrite=function(){return this.$overwrite},A.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},A.prototype.addGutterDecoration=function($,C){this.$decorations[$]||(this.$decorations[$]=""),this.$decorations[$]+=" "+C,this._signal("changeBreakpoint",{})},A.prototype.removeGutterCustomWidget=function($){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget($)},A.prototype.addGutterCustomWidget=function($,C){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget($,C)},A.prototype.removeGutterDecoration=function($,C){this.$decorations[$]=(this.$decorations[$]||"").replace(" "+C,""),this._signal("changeBreakpoint",{})},A.prototype.getBreakpoints=function(){return this.$breakpoints},A.prototype.setBreakpoints=function($){this.$breakpoints=[];for(var C=0;C<$.length;C++)this.$breakpoints[$[C]]="ace_breakpoint";this._signal("changeBreakpoint",{})},A.prototype.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},A.prototype.setBreakpoint=function($,C){C===void 0&&(C="ace_breakpoint"),C?this.$breakpoints[$]=C:delete this.$breakpoints[$],this._signal("changeBreakpoint",{})},A.prototype.clearBreakpoint=function($){delete this.$breakpoints[$],this._signal("changeBreakpoint",{})},A.prototype.addMarker=function($,C,w,x){var I=this.$markerId++,R={range:$,type:w||"line",renderer:typeof w=="function"?w:null,clazz:C,inFront:!!x,id:I};return x?(this.$frontMarkers[I]=R,this._signal("changeFrontMarker")):(this.$backMarkers[I]=R,this._signal("changeBackMarker")),I},A.prototype.addDynamicMarker=function($,C){if($.update){var w=this.$markerId++;return $.id=w,$.inFront=!!C,C?(this.$frontMarkers[w]=$,this._signal("changeFrontMarker")):(this.$backMarkers[w]=$,this._signal("changeBackMarker")),$}},A.prototype.removeMarker=function($){var C=this.$frontMarkers[$]||this.$backMarkers[$];if(C){var w=C.inFront?this.$frontMarkers:this.$backMarkers;delete w[$],this._signal(C.inFront?"changeFrontMarker":"changeBackMarker")}},A.prototype.getMarkers=function($){return $?this.$frontMarkers:this.$backMarkers},A.prototype.highlight=function($){if(!this.$searchHighlight){var C=new f(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(C)}this.$searchHighlight.setRegexp($)},A.prototype.highlightLines=function($,C,w,x){typeof C!="number"&&(w=C,C=$),w||(w="ace_step");var I=new r($,0,C,1/0);return I.id=this.addMarker(I,w,"fullLine",x),I},A.prototype.setAnnotations=function($){this.$annotations=$,this._signal("changeAnnotation",{})},A.prototype.getAnnotations=function(){return this.$annotations||[]},A.prototype.clearAnnotations=function(){this.setAnnotations([])},A.prototype.$detectNewLine=function($){var C=$.match(/^.*?(\r?\n)/m);C?this.$autoNewLine=C[1]:this.$autoNewLine=` -`},A.prototype.getWordRange=function($,C){var w=this.getLine($),x=!1;if(C>0&&(x=!!w.charAt(C-1).match(this.tokenRe)),x||(x=!!w.charAt(C).match(this.tokenRe)),x)var I=this.tokenRe;else if(/^\s+$/.test(w.slice(C-1,C+1)))var I=/\s/;else var I=this.nonTokenRe;var R=C;if(R>0){do R--;while(R>=0&&w.charAt(R).match(I));R++}for(var O=C;O$&&($=C.screenWidth)}),this.lineWidgetWidth=$},A.prototype.$computeWidth=function($){if(this.$modified||$){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var C=this.doc.getAllLines(),w=this.$rowLengthCache,x=0,I=0,R=this.$foldData[I],O=R?R.start.row:1/0,P=C.length,B=0;BO){if(B=R.end.row+1,B>=P)break;R=this.$foldData[I++],O=R?R.start.row:1/0}w[B]==null&&(w[B]=this.$getStringScreenWidth(C[B])[0]),w[B]>x&&(x=w[B])}this.screenWidth=x}},A.prototype.getLine=function($){return this.doc.getLine($)},A.prototype.getLines=function($,C){return this.doc.getLines($,C)},A.prototype.getLength=function(){return this.doc.getLength()},A.prototype.getTextRange=function($){return this.doc.getTextRange($||this.selection.getRange())},A.prototype.insert=function($,C){return this.doc.insert($,C)},A.prototype.remove=function($){return this.doc.remove($)},A.prototype.removeFullLines=function($,C){return this.doc.removeFullLines($,C)},A.prototype.undoChanges=function($,C){if($.length){this.$fromUndo=!0;for(var w=$.length-1;w!=-1;w--){var x=$[w];x.action=="insert"||x.action=="remove"?this.doc.revertDelta(x):x.folds&&this.addFolds(x.folds)}!C&&this.$undoSelect&&($.selectionBefore?this.selection.fromJSON($.selectionBefore):this.selection.setRange(this.$getUndoSelection($,!0))),this.$fromUndo=!1}},A.prototype.redoChanges=function($,C){if($.length){this.$fromUndo=!0;for(var w=0;w<$.length;w++){var x=$[w];(x.action=="insert"||x.action=="remove")&&this.doc.$safeApplyDelta(x)}!C&&this.$undoSelect&&($.selectionAfter?this.selection.fromJSON($.selectionAfter):this.selection.setRange(this.$getUndoSelection($,!1))),this.$fromUndo=!1}},A.prototype.setUndoSelect=function($){this.$undoSelect=$},A.prototype.$getUndoSelection=function($,C){function w(P){return C?P.action!=="insert":P.action==="insert"}for(var x,I,R=0;R<$.length;R++){var O=$[R];if(O.start){if(!x){w(O)?x=r.fromPoints(O.start,O.end):x=r.fromPoints(O.start,O.start);continue}w(O)?(I=O.start,x.compare(I.row,I.column)==-1&&x.setStart(I),I=O.end,x.compare(I.row,I.column)==1&&x.setEnd(I)):(I=O.start,x.compare(I.row,I.column)==-1&&(x=r.fromPoints(O.start,O.start)))}}return x},A.prototype.replace=function($,C){return this.doc.replace($,C)},A.prototype.moveText=function($,C,w){var x=this.getTextRange($),I=this.getFoldsInRange($),R=r.fromPoints(C,C);if(!w){this.remove($);var O=$.start.row-$.end.row,P=O?-$.end.column:$.start.column-$.end.column;P&&(R.start.row==$.end.row&&R.start.column>$.end.column&&(R.start.column+=P),R.end.row==$.end.row&&R.end.column>$.end.column&&(R.end.column+=P)),O&&R.start.row>=$.end.row&&(R.start.row+=O,R.end.row+=O)}if(R.end=this.insert(R.start,x),I.length){var B=$.start,V=R.start,O=V.row-B.row,P=V.column-B.column;this.addFolds(I.map(function(U){return U=U.clone(),U.start.row==B.row&&(U.start.column+=P),U.end.row==B.row&&(U.end.column+=P),U.start.row+=O,U.end.row+=O,U}))}return R},A.prototype.indentRows=function($,C,w){w=w.replace(/\t/g,this.getTabString());for(var x=$;x<=C;x++)this.doc.insertInLine({row:x,column:0},w)},A.prototype.outdentRows=function($){for(var C=$.collapseRows(),w=new r(0,0,0,0),x=this.getTabSize(),I=C.start.row;I<=C.end.row;++I){var R=this.getLine(I);w.start.row=I,w.end.row=I;for(var O=0;O0){var x=this.getRowFoldEnd(C+w);if(x>this.doc.getLength()-1)return 0;var I=x-C}else{$=this.$clipRowToDocument($),C=this.$clipRowToDocument(C);var I=C-$+1}var R=new r($,0,C,Number.MAX_VALUE),O=this.getFoldsInRange(R).map(function(B){return B=B.clone(),B.start.row+=I,B.end.row+=I,B}),P=w==0?this.doc.getLines($,C):this.doc.removeFullLines($,C);return this.doc.insertFullLines($+I,P),O.length&&this.addFolds(O),I},A.prototype.moveLinesUp=function($,C){return this.$moveLines($,C,-1)},A.prototype.moveLinesDown=function($,C){return this.$moveLines($,C,1)},A.prototype.duplicateLines=function($,C){return this.$moveLines($,C,0)},A.prototype.$clipRowToDocument=function($){return Math.max(0,Math.min($,this.doc.getLength()-1))},A.prototype.$clipColumnToRow=function($,C){return C<0?0:Math.min(this.doc.getLine($).length,C)},A.prototype.$clipPositionToDocument=function($,C){if(C=Math.max(0,C),$<0)$=0,C=0;else{var w=this.doc.getLength();$>=w?($=w-1,C=this.doc.getLine(w-1).length):C=Math.min(this.doc.getLine($).length,C)}return{row:$,column:C}},A.prototype.$clipRangeToDocument=function($){$.start.row<0?($.start.row=0,$.start.column=0):$.start.column=this.$clipColumnToRow($.start.row,$.start.column);var C=this.doc.getLength()-1;return $.end.row>C?($.end.row=C,$.end.column=this.doc.getLine(C).length):$.end.column=this.$clipColumnToRow($.end.row,$.end.column),$},A.prototype.setUseWrapMode=function($){if($!=this.$useWrapMode){if(this.$useWrapMode=$,this.$modified=!0,this.$resetRowCache(0),$){var C=this.getLength();this.$wrapData=Array(C),this.$updateWrapData(0,C-1)}this._signal("changeWrapMode")}},A.prototype.getUseWrapMode=function(){return this.$useWrapMode},A.prototype.setWrapLimitRange=function($,C){(this.$wrapLimitRange.min!==$||this.$wrapLimitRange.max!==C)&&(this.$wrapLimitRange={min:$,max:C},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},A.prototype.adjustWrapLimit=function($,C){var w=this.$wrapLimitRange;w.max<0&&(w={min:C,max:C});var x=this.$constrainWrapLimit($,w.min,w.max);return x!=this.$wrapLimit&&x>1?(this.$wrapLimit=x,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},A.prototype.$constrainWrapLimit=function($,C,w){return C&&($=Math.max(C,$)),w&&($=Math.min(w,$)),$},A.prototype.getWrapLimit=function(){return this.$wrapLimit},A.prototype.setWrapLimit=function($){this.setWrapLimitRange($,$)},A.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},A.prototype.$updateInternalDataOnChange=function($){var C=this.$useWrapMode,w=$.action,x=$.start,I=$.end,R=x.row,O=I.row,P=O-R,B=null;if(this.$updating=!0,P!=0)if(w==="remove"){this[C?"$wrapData":"$rowLengthCache"].splice(R,P);var V=this.$foldData;B=this.getFoldsInRange($),this.removeFolds(B);var W=this.getFoldLine(I.row),H=0;if(W){W.addRemoveChars(I.row,I.column,x.column-I.column),W.shiftRow(-P);var U=this.getFoldLine(R);U&&U!==W&&(U.merge(W),W=U),H=V.indexOf(W)+1}for(H;H=I.row&&W.shiftRow(-P)}O=R}else{var G=Array(P);G.unshift(R,0);var Y=C?this.$wrapData:this.$rowLengthCache;Y.splice.apply(Y,G);var V=this.$foldData,W=this.getFoldLine(R),H=0;if(W){var Q=W.range.compareInside(x.row,x.column);Q==0?(W=W.split(x.row,x.column),W&&(W.shiftRow(P),W.addRemoveChars(O,0,I.column-x.column))):Q==-1&&(W.addRemoveChars(R,0,I.column-x.column),W.shiftRow(P)),H=V.indexOf(W)+1}for(H;H=R&&W.shiftRow(P)}}else{P=Math.abs($.start.column-$.end.column),w==="remove"&&(B=this.getFoldsInRange($),this.removeFolds(B),P=-P);var W=this.getFoldLine(R);W&&W.addRemoveChars(R,x.column,P)}return C&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,C?this.$updateWrapData(R,O):this.$updateRowLengthCache(R,O),B},A.prototype.$updateRowLengthCache=function($,C){this.$rowLengthCache[$]=null,this.$rowLengthCache[C]=null},A.prototype.$updateWrapData=function($,C){var w=this.doc.getAllLines(),x=this.getTabSize(),I=this.$wrapData,R=this.$wrapLimit,O,P,B=$;for(C=Math.min(C,w.length-1);B<=C;)P=this.getFoldLine(B,P),P?(O=[],P.walk(function(V,W,H,U){var G;if(V!=null){G=this.$getDisplayTokens(V,O.length),G[0]=b;for(var Y=1;YC-U;){var G=R+C-U;if($[G-1]>=M&&$[G]>=M){H(G);continue}if($[G]==b||$[G]==g){for(G;G!=R-1&&$[G]!=b;G--);if(G>R){H(G);continue}for(G=R+C,G;G<$.length&&$[G]==g;G++);if(G==$.length)break;H(G);continue}for(var Y=Math.max(G-(C-(C>>2)),R-1);G>Y&&$[G]Y&&$[G]Y&&$[G]==S;)G--}else for(;G>Y&&$[G]Y){H(++G);continue}G=R+C,$[G]==E&&G--,H(G-U)}return x},A.prototype.$getDisplayTokens=function($,C){var w=[],x;C=C||0;for(var I=0;I<$.length;I++){var R=$.charCodeAt(I);if(R==9){x=this.getScreenTabSize(w.length+C),w.push(_);for(var O=1;O39&&R<48||R>57&&R<64?w.push(S):R>=4352&&F(R)?w.push(D,E):w.push(D)}return w},A.prototype.$getStringScreenWidth=function($,C,w){if(C==0)return[0,0];C==null&&(C=1/0),w=w||0;var x,I;for(I=0;I<$.length&&(x=$.charCodeAt(I),x==9?w+=this.getScreenTabSize(w):x>=4352&&F(x)?w+=2:w+=1,!(w>C));I++);return[w,I]},A.prototype.getRowLength=function($){var C=1;return this.lineWidgets&&(C+=this.lineWidgets[$]&&this.lineWidgets[$].rowCount||0),!this.$useWrapMode||!this.$wrapData[$]?C:this.$wrapData[$].length+C},A.prototype.getRowLineCount=function($){return!this.$useWrapMode||!this.$wrapData[$]?1:this.$wrapData[$].length+1},A.prototype.getRowWrapIndent=function($){if(this.$useWrapMode){var C=this.screenToDocumentPosition($,Number.MAX_VALUE),w=this.$wrapData[C.row];return w.length&&w[0]=0)var P=V[W],I=this.$docRowCache[W],U=$>V[H-1];else var U=!H;for(var G=this.getLength()-1,Y=this.getNextFoldLine(I),Q=Y?Y.start.row:1/0;P<=$&&(B=this.getRowLength(I),!(P+B>$||I>=G));)P+=B,I++,I>Q&&(I=Y.end.row+1,Y=this.getNextFoldLine(I,Y),Q=Y?Y.start.row:1/0),U&&(this.$docRowCache.push(I),this.$screenRowCache.push(P));if(Y&&Y.start.row<=I)x=this.getFoldDisplayLine(Y),I=Y.start.row;else{if(P+B<=$||I>G)return{row:G,column:this.getLine(G).length};x=this.getLine(I),Y=null}var ee=0,ne=Math.floor($-P);if(this.$useWrapMode){var se=this.$wrapData[I];se&&(O=se[ne],ne>0&&se.length&&(ee=se.indent,R=se[ne-1]||se[se.length-1],x=x.substring(R)))}return w!==void 0&&this.$bidiHandler.isBidiRow(P+ne,I,ne)&&(C=this.$bidiHandler.offsetToCol(w)),R+=this.$getStringScreenWidth(x,C-ee)[1],this.$useWrapMode&&R>=O&&(R=O-1),Y?Y.idxToPosition(R):{row:I,column:R}},A.prototype.documentToScreenPosition=function($,C){if(typeof C>"u")var w=this.$clipPositionToDocument($.row,$.column);else w=this.$clipPositionToDocument($,C);$=w.row,C=w.column;var x=0,I=null,R=null;R=this.getFoldAt($,C,1),R&&($=R.start.row,C=R.start.column);var O,P=0,B=this.$docRowCache,V=this.$getRowCacheIndex(B,$),W=B.length;if(W&&V>=0)var P=B[V],x=this.$screenRowCache[V],H=$>B[W-1];else var H=!W;for(var U=this.getNextFoldLine(P),G=U?U.start.row:1/0;P<$;){if(P>=G){if(O=U.end.row+1,O>$)break;U=this.getNextFoldLine(O,U),G=U?U.start.row:1/0}else O=P+1;x+=this.getRowLength(P),P=O,H&&(this.$docRowCache.push(P),this.$screenRowCache.push(x))}var Y="";U&&P>=G?(Y=this.getFoldDisplayLine(U,$,C),I=U.start.row):(Y=this.getLine($).substring(0,C),I=$);var Q=0;if(this.$useWrapMode){var ee=this.$wrapData[I];if(ee){for(var ne=0;Y.length>=ee[ne];)x++,ne++;Y=Y.substring(ee[ne-1]||0,Y.length),Q=ne>0?ee.indent:0}}return this.lineWidgets&&this.lineWidgets[P]&&this.lineWidgets[P].rowsAbove&&(x+=this.lineWidgets[P].rowsAbove),{row:x,column:Q+this.$getStringScreenWidth(Y)[0]}},A.prototype.documentToScreenColumn=function($,C){return this.documentToScreenPosition($,C).column},A.prototype.documentToScreenRow=function($,C){return this.documentToScreenPosition($,C).row},A.prototype.getScreenLength=function(){var $=0,C=null;if(this.$useWrapMode)for(var I=this.$wrapData.length,R=0,x=0,C=this.$foldData[x++],O=C?C.start.row:1/0;RO&&(R=C.end.row+1,C=this.$foldData[x++],O=C?C.start.row:1/0)}else{$=this.getLength();for(var w=this.$foldData,x=0;xw));R++);return[x,R]})},A.prototype.getPrecedingCharacter=function(){var $=this.selection.getCursor();if($.column===0)return $.row===0?"":this.doc.getNewLineCharacter();var C=this.getLine($.row);return C[$.column-1]},A.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},A}();y.$uid=0,y.prototype.$modes=s.$modes,y.prototype.getValue=y.prototype.toString,y.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},y.prototype.$overwrite=!1,y.prototype.$mode=null,y.prototype.$modeId=null,y.prototype.$scrollTop=0,y.prototype.$scrollLeft=0,y.prototype.$wrapLimit=80,y.prototype.$useWrapMode=!1,y.prototype.$wrapLimitRange={min:null,max:null},y.prototype.lineWidgets=null,y.prototype.isFullWidth=F,o.implement(y.prototype,p);var D=1,E=2,b=3,g=4,S=9,M=10,_=11,T=12;function F(A){return A<4352?!1:A>=4352&&A<=4447||A>=4515&&A<=4519||A>=4602&&A<=4607||A>=9001&&A<=9002||A>=11904&&A<=11929||A>=11931&&A<=12019||A>=12032&&A<=12245||A>=12272&&A<=12283||A>=12288&&A<=12350||A>=12353&&A<=12438||A>=12441&&A<=12543||A>=12549&&A<=12589||A>=12593&&A<=12686||A>=12688&&A<=12730||A>=12736&&A<=12771||A>=12784&&A<=12830||A>=12832&&A<=12871||A>=12880&&A<=13054||A>=13056&&A<=19903||A>=19968&&A<=42124||A>=42128&&A<=42182||A>=43360&&A<=43388||A>=44032&&A<=55203||A>=55216&&A<=55238||A>=55243&&A<=55291||A>=63744&&A<=64255||A>=65040&&A<=65049||A>=65072&&A<=65106||A>=65108&&A<=65126||A>=65128&&A<=65131||A>=65281&&A<=65376||A>=65504&&A<=65510}i("./edit_session/folding").Folding.call(y.prototype),i("./edit_session/bracket_match").BracketMatch.call(y.prototype),s.defineOptions(y.prototype,"session",{wrap:{set:function(A){if(!A||A=="off"?A=!1:A=="free"?A=!0:A=="printMargin"?A=-1:typeof A=="string"&&(A=parseInt(A,10)||!1),this.$wrap!=A)if(this.$wrap=A,!A)this.setUseWrapMode(!1);else{var $=typeof A=="number"?A:null;this.setWrapLimitRange($,$),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(A){A=A=="auto"?this.$mode.type!="text":A!="text",A!=this.$wrapAsCode&&(this.$wrapAsCode=A,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(A){this.$useWorker=A,this.$stopWorker(),A&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(A){A=parseInt(A),A>0&&this.$tabSize!==A&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=A,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(A){this.setFoldStyle(A)},handlesSet:!0},overwrite:{set:function(A){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(A){this.doc.setNewLineMode(A)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(A){this.setMode(A)},get:function(){return this.$modeId},handlesSet:!0}}),u.EditSession=y}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(i,u,v){var o=i("./lib/lang"),h=i("./lib/oop"),d=i("./range").Range,s=function(){function r(){this.$options={}}return r.prototype.set=function(l){return h.mixin(this.$options,l),this},r.prototype.getOptions=function(){return o.copyObject(this.$options)},r.prototype.setOptions=function(l){this.$options=l},r.prototype.find=function(l){var a=this.$options,c=this.$matchIterator(l,a);if(!c)return!1;var f=null;return c.forEach(function(m,y,D,E){return f=new d(m,y,D,E),y==E&&a.start&&a.start.start&&a.skipCurrent!=!1&&f.isEqual(a.start)?(f=null,!1):!0}),f},r.prototype.findAll=function(l){var a=this.$options;if(!a.needle)return[];this.$assembleRegExp(a);var c=a.range,f=c?l.getLines(c.start.row,c.end.row):l.doc.getAllLines(),m=[],y=a.re;if(a.$isMultiLine){var D=y.length,E=f.length-D,b;e:for(var g=y.offset||0;g<=E;g++){for(var S=0;ST||(m.push(b=new d(g,T,g+D-1,F)),D>2&&(g=g+D-2))}}else for(var A,$=0;$$&&($=w),m.push(new d(A.startRow,A.startCol,A.endRow,A.endCol))}}else{A=o.getMatchOffsets(f[$],y);for(var S=0;SR&&m[S].end.row==O;)S--;for(m=m.slice($,S+1),$=0,S=m.length;$=m){c+="\\";break}var D=l.charCodeAt(f);switch(D){case a.Backslash:c+="\\";break;case a.n:c+=` -`;break;case a.t:c+=" ";break}continue}if(y===a.DollarSign){if(f++,f>=m){c+="$";break}var E=l.charCodeAt(f);if(E===a.DollarSign){c+="$$";continue}if(E===a.Digit0||E===a.Ampersand){c+="$&";continue}if(a.Digit1<=E&&E<=a.Digit9){c+="$"+l[f];continue}}c+=l[f]}return c||l},r.prototype.replace=function(l,a){var c=this.$options,f=this.$assembleRegExp(c);if(c.$isMultiLine)return a;if(f){var m=this.$isMultilineSearch(c);m&&(l=l.replace(/\r\n|\r|\n/g,` -`));var y=f.exec(l);if(!y||!m&&y[0].length!=l.length)return null;if(a=c.regExp?this.parseReplaceString(a):a.replace(/\$/g,"$$$$"),a=l.replace(f,a),c.preserveCase){a=a.split("");for(var D=Math.min(l.length,l.length);D--;){var E=l[D];E&&E.toLowerCase()!=E?a[D]=a[D].toUpperCase():a[D]=a[D].toLowerCase()}a=a.join("")}return a}},r.prototype.$assembleRegExp=function(l,a){if(l.needle instanceof RegExp)return l.re=l.needle;var c=l.needle;if(!l.needle)return l.re=!1;l.regExp||(c=o.escapeRegExp(c));var f=l.caseSensitive?"gm":"gmi";try{new RegExp(c,"u"),l.$supportsUnicodeFlag=!0,f+="u"}catch{l.$supportsUnicodeFlag=!1}if(l.wholeWord&&(c=p(c,l)),l.$isMultiLine=!a&&/[\n\r]/.test(c),l.$isMultiLine)return l.re=this.$assembleMultilineRegExp(c,f);try{var m=new RegExp(c,f)}catch{m=!1}return l.re=m},r.prototype.$assembleMultilineRegExp=function(l,a){for(var c=l.replace(/\r\n|\r|\n/g,`$ +`):g=r(b.value)),b.start&&(g+=r(b)),(b.id||b.rev)&&(g+=" ("+(b.id||b.rev)+")"),g}function r(b){return b.start.row+":"+b.start.column+"=>"+b.end.row+":"+b.end.column}function l(b,g){var S=b.action=="insert",T=g.action=="insert";if(S&&T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.start,b.start)<=0)f(b,g,1);else return null;else if(S&&!T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.end,b.start)<=0)f(b,g,-1);else return null;else if(!S&&T)if(a(g.start,b.start)>=0)f(g,b,1);else if(a(g.start,b.start)<=0)f(b,g,1);else return null;else if(!S&&!T)if(a(g.start,b.start)>=0)f(g,b,1);else if(a(g.end,b.start)<=0)f(b,g,-1);else return null;return[g,b]}function s(b,g){for(var S=b.length;S--;)for(var T=0;T=0?f(b,g,-1):(a(b.start,g.start)<=0||f(b,p.fromPoints(g.start,b.start),-1),f(g,b,1));else if(!S&&T)a(g.start,b.end)>=0?f(g,b,-1):(a(g.start,b.start)<=0||f(g,p.fromPoints(b.start,g.start),-1),f(b,g,1));else if(!S&&!T)if(a(g.start,b.end)>=0)f(g,b,-1);else if(a(g.end,b.start)<=0)f(b,g,-1);else{var k,_;return a(b.start,g.start)<0&&(k=b,b=y(b,g.start)),a(b.end,g.end)>0&&(_=y(b,g.end)),m(g.end,b.start,b.end,-1),_&&!k&&(b.lines=_.lines,b.start=_.start,b.end=_.end,_=b),[g,k,_].filter(Boolean)}return[g,b]}function f(b,g,S){m(b.start,g.start,g.end,S),m(b.end,g.start,g.end,S)}function m(b,g,S,T){b.row==(T==1?g:S).row&&(b.column+=T*(S.column-g.column)),b.row+=T*(S.row-g.row)}function y(b,g){var S=b.lines,T=b.end;b.end=d(g);var k=b.end.row-b.start.row,_=S.splice(k,S.length),O=k?g.column:g.column-b.start.column;S.push(_[0].substring(0,O)),_[0]=_[0].substr(O);var $={start:d(g),end:T,lines:_,action:b.action};return $}function D(b,g){g=e(g);for(var S=b.length;S--;){for(var T=b[S],k=0;kthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(a),this.folds.sort(function(d,e){return-d.range.compareEnd(e.start.row,e.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else if(a.end.row==this.start.row)this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");a.foldLine=this},p.prototype.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},p.prototype.walk=function(a,d,e){var t=0,r=this.folds,l,s,c,f=!0;d==null&&(d=this.end.row,e=this.end.column);for(var m=0;m0)){var f=h(d,s.start);return c===0?e&&f!==0?-l-2:l:f>0||f===0&&!e?l:-l-1}}return-l-1},a.prototype.add=function(d){var e=!d.isEmpty(),t=this.pointIndex(d.start,e);t<0&&(t=-t-1);var r=this.pointIndex(d.end,e,t);return r<0?r=-r-1:r++,this.ranges.splice(t,r-t,d)},a.prototype.addList=function(d){for(var e=[],t=d.length;t--;)e.push.apply(e,this.add(d[t]));return e},a.prototype.substractPoint=function(d){var e=this.pointIndex(d);if(e>=0)return this.ranges.splice(e,1)},a.prototype.merge=function(){var d=[],e=this.ranges;e=e.sort(function(c,f){return h(c.start,f.start)});for(var t=e[0],r,l=1;l=0},a.prototype.containsPoint=function(d){return this.pointIndex(d)>=0},a.prototype.rangeAtPoint=function(d){var e=this.pointIndex(d);if(e>=0)return this.ranges[e]},a.prototype.clipRows=function(d,e){var t=this.ranges;if(t[0].start.row>e||t[t.length-1].start.row=r)break}if(d.action=="insert")for(var y=l-r,D=-e.column+t.column;cr)break;if(m.start.row==r&&m.start.column>=e.column&&(m.start.column==e.column&&this.$bias<=0||(m.start.column+=D,m.start.row+=y)),m.end.row==r&&m.end.column>=e.column){if(m.end.column==e.column&&this.$bias<0)continue;m.end.column==e.column&&D>0&&cm.start.column&&m.end.column==s[c+1].start.column&&(m.end.column-=D),m.end.column+=D,m.end.row+=y}}else for(var y=r-l,D=e.column-t.column;cl)break;m.end.rowe.column)&&(m.end.column=e.column,m.end.row=e.row):(m.end.column+=D,m.end.row+=y):m.end.row>l&&(m.end.row+=y),m.start.rowe.column)&&(m.start.column=e.column,m.start.row=e.row):(m.start.column+=D,m.start.row+=y):m.start.row>l&&(m.start.row+=y)}if(y!=0&&c=t)return c;if(c.end.row>t)return null}return null},this.getNextFoldLine=function(t,r){var l=this.$foldData,s=0;for(r&&(s=l.indexOf(r)),s==-1&&(s=0),s;s=t)return c}return null},this.getFoldedRowCount=function(t,r){for(var l=this.$foldData,s=r-t+1,c=0;c=r){y=t?s-=r-y:s=0);break}else m>=t&&(y>=t?s-=m-y:s-=m-t+1)}return s},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(r,l){return r.start.row-l.start.row}),t},this.addFold=function(t,r){var l=this.$foldData,s=!1,c;t instanceof p?c=t:(c=new p(r,t),c.collapseChildren=r.collapseChildren),this.$clipRangeToDocument(c.range);var f=c.start.row,m=c.start.column,y=c.end.row,D=c.end.column,E=this.getFoldAt(f,m,1),b=this.getFoldAt(y,D,-1);if(E&&b==E)return E.addSubFold(c);E&&!E.range.isStart(f,m)&&this.removeFold(E),b&&!b.range.isEnd(y,D)&&this.removeFold(b);var g=this.getFoldsInRange(c.range);g.length>0&&(this.removeFolds(g),c.collapseChildren||g.forEach(function(_){c.addSubFold(_)}));for(var S=0;S0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(r){this.expandFold(r)},this)},this.unfold=function(t,r){var l,s;if(t==null)l=new o(0,0,this.getLength(),0),r==null&&(r=!0);else if(typeof t=="number")l=new o(t,0,t,this.getLine(t).length);else if("row"in t)l=o.fromPoints(t,t);else{if(Array.isArray(t))return s=[],t.forEach(function(f){s=s.concat(this.unfold(f))},this),s;l=t}s=this.getFoldsInRangeList(l);for(var c=s;s.length==1&&o.comparePoints(s[0].start,l.start)<0&&o.comparePoints(s[0].end,l.end)>0;)this.expandFolds(s),s=this.getFoldsInRangeList(l);if(r!=!1?this.removeFolds(s):this.expandFolds(s),c.length)return c},this.isRowFolded=function(t,r){return!!this.getFoldLine(t,r)},this.getRowFoldEnd=function(t,r){var l=this.getFoldLine(t,r);return l?l.end.row:t},this.getRowFoldStart=function(t,r){var l=this.getFoldLine(t,r);return l?l.start.row:t},this.getFoldDisplayLine=function(t,r,l,s,c){s==null&&(s=t.start.row),c==null&&(c=0),r==null&&(r=t.end.row),l==null&&(l=this.getLine(r).length);var f=this.doc,m="";return t.walk(function(y,D,E,b){if(!(DE)break;while(c&&m.test(c.type));c=s.stepBackward()}else c=s.getCurrentToken();return y.end.row=s.getCurrentTokenRow(),y.end.column=s.getCurrentTokenColumn(),y.start.row==y.end.row&&y.start.column>y.end.column?void 0:y}},this.foldAll=function(t,r,l,s){l==null&&(l=1e5);var c=this.foldWidgets;if(c){r=r||this.getLength(),t=t||0;for(var f=t;f=t&&(f=m.end.row,m.collapseChildren=l,this.addFold("...",m))}}},this.foldToLevel=function(t){for(this.foldAll();t-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var t=this;this.foldAll(null,null,null,function(r){for(var l=t.getTokens(r),s=0;s=0;){var f=l[s];if(f==null&&(f=l[s]=this.getFoldWidget(s)),f=="start"){var m=this.getFoldWidgetRange(s);if(c||(c=m),m&&m.end.row>=t)break}s--}return{range:s!==-1&&m,firstRange:c}},this.onFoldWidgetClick=function(t,r){r instanceof d&&(r=r.domEvent);var l={children:r.shiftKey,all:r.ctrlKey||r.metaKey,siblings:r.altKey},s=this.$toggleFoldWidget(t,l);if(!s){var c=r.target||r.srcElement;c&&/ace_fold-widget/.test(c.className)&&(c.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,r){if(this.getFoldWidget){var l=this.getFoldWidget(t),s=this.getLine(t),c=l==="end"?-1:1,f=this.getFoldAt(t,c===-1?0:s.length,c);if(f)return r.children||r.all?this.removeFold(f):this.expandFold(f),f;var m=this.getFoldWidgetRange(t,!0);if(m&&!m.isMultiLine()&&(f=this.getFoldAt(m.start.row,m.start.column,1),f&&m.isEqual(f.range)))return this.removeFold(f),f;if(r.siblings){var y=this.getParentFoldRangeData(t);if(y.range)var D=y.range.start.row+1,E=y.range.end.row;this.foldAll(D,E,r.all?1e4:0)}else r.children?(E=m?m.end.row:this.getLength(),this.foldAll(t+1,E,r.all?1e4:0)):m&&(r.all&&(m.collapseChildren=1e4),this.addFold("...",m));return m}},this.toggleFoldWidget=function(t){var r=this.selection.getCursor().row;r=this.getRowFoldStart(r);var l=this.$toggleFoldWidget(r,{});if(!l){var s=this.getParentFoldRangeData(r,!0);if(l=s.range||s.firstRange,l){r=l.start.row;var c=this.getFoldAt(r,this.getLine(r).length,1);c?this.removeFold(c):this.addFold("...",l)}}},this.updateFoldWidgets=function(t){var r=t.start.row,l=t.end.row-r;if(l===0)this.foldWidgets[r]=null;else if(t.action=="remove")this.foldWidgets.splice(r,l+1,null);else{var s=Array(l+1);s.unshift(r,1),this.foldWidgets.splice.apply(this.foldWidgets,s)}},this.tokenizerUpdateFoldWidgets=function(t){var r=t.data;r.first!=r.last&&this.foldWidgets.length>r.first&&this.foldWidgets.splice(r.first,this.foldWidgets.length)}}u.Folding=e}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(i,u,v){var o=i("../token_iterator").TokenIterator,h=i("../range").Range;function p(){this.findMatchingBracket=function(a,d){if(a.column==0)return null;var e=d||this.getLine(a.row).charAt(a.column-1);if(e=="")return null;var t=e.match(/([\(\[\{])|([\)\]\}])/);return t?t[1]?this.$findClosingBracket(t[1],a):this.$findOpeningBracket(t[2],a):null},this.getBracketRange=function(a){var d=this.getLine(a.row),e=!0,t,r=d.charAt(a.column-1),l=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(l||(r=d.charAt(a.column),a={row:a.row,column:a.column+1},l=r&&r.match(/([\(\[\{])|([\)\]\}])/),e=!1),!l)return null;if(l[1]){var s=this.$findClosingBracket(l[1],a);if(!s)return null;t=h.fromPoints(a,s),e||(t.end.column++,t.start.column--),t.cursor=t.end}else{var s=this.$findOpeningBracket(l[2],a);if(!s)return null;t=h.fromPoints(s,a),e||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(a,d){var e=this.getLine(a.row),t=/([\(\[\{])|([\)\]\}])/,r=!d&&e.charAt(a.column-1),l=r&&r.match(t);if(l||(r=(d===void 0||d)&&e.charAt(a.column),a={row:a.row,column:a.column+1},l=r&&r.match(t)),!l)return null;var s=new h(a.row,a.column-1,a.row,a.column),c=l[1]?this.$findClosingBracket(l[1],a):this.$findOpeningBracket(l[2],a);if(!c)return[s];var f=new h(c.row,c.column,c.row,c.column+1);return[s,f]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,d,e){var t=this.$brackets[a],r=1,l=new o(this,d.row,d.column),s=l.getCurrentToken();if(s||(s=l.stepForward()),!!s){e||(e=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var c=d.column-l.getCurrentTokenColumn()-2,f=s.value;;){for(;c>=0;){var m=f.charAt(c);if(m==t){if(r-=1,r==0)return{row:l.getCurrentTokenRow(),column:c+l.getCurrentTokenColumn()}}else m==a&&(r+=1);c-=1}do s=l.stepBackward();while(s&&!e.test(s.type));if(s==null)break;f=s.value,c=f.length-1}return null}},this.$findClosingBracket=function(a,d,e){var t=this.$brackets[a],r=1,l=new o(this,d.row,d.column),s=l.getCurrentToken();if(s||(s=l.stepForward()),!!s){e||(e=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var c=d.column-l.getCurrentTokenColumn();;){for(var f=s.value,m=f.length;c"?t=!0:d.type.indexOf("tag-name")!==-1&&(e=!0));while(d&&!e);return d},this.$findClosingTag=function(a,d){var e,t=d.value,r=d.value,l=0,s=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);d=a.stepForward();var c=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+d.value.length),f=!1;do{if(e=d,e.type.indexOf("tag-close")!==-1&&!f){var m=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(d=a.stepForward(),d){if(d.value===">"&&!f){var m=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);f=!0}if(d.type.indexOf("tag-name")!==-1){if(t=d.value,r===t){if(e.value==="<")l++;else if(e.value==="")var E=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(r===t&&d.value==="/>"&&(l--,l<0))var y=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),D=y,E=D,m=new h(c.end.row,c.end.column,c.end.row,c.end.column+1)}}while(d&&l>=0);if(s&&m&&y&&E&&c&&D)return{openTag:new h(s.start.row,s.start.column,m.end.row,m.end.column),closeTag:new h(y.start.row,y.start.column,E.end.row,E.end.column),openTagName:c,closeTagName:D}},this.$findOpeningTag=function(a,d){var e=a.getCurrentToken(),t=d.value,r=0,l=a.getCurrentTokenRow(),s=a.getCurrentTokenColumn(),c=s+2,f=new h(l,s,l,c);a.stepForward();var m=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+d.value.length);if(d.type.indexOf("tag-close")===-1&&(d=a.stepForward()),!(!d||d.value!==">")){var y=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(d=e,l=a.getCurrentTokenRow(),s=a.getCurrentTokenColumn(),c=s+d.value.length,e=a.stepBackward(),d){if(d.type.indexOf("tag-name")!==-1){if(t===d.value)if(e.value==="<"){if(r++,r>0){var D=new h(l,s,l,c),E=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do d=a.stepForward();while(d&&d.value!==">");var b=new h(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else e.value===""){for(var g=0,S=e;S;){if(S.type.indexOf("tag-name")!==-1&&S.value===t){r--;break}else if(S.value==="<")break;S=a.stepBackward(),g++}for(var T=0;Tw&&(this.$docRowCache.splice(w,C),this.$screenRowCache.splice(w,C))},$.prototype.$getRowCacheIndex=function(A,C){for(var w=0,x=A.length-1;w<=x;){var I=w+x>>1,F=A[I];if(C>F)w=I+1;else if(C=C));F++);return x=w[F],x?(x.index=F,x.start=I-x.value.length,x):null},$.prototype.setUndoManager=function(A){if(this.$undoManager=A,this.$informUndoManager&&this.$informUndoManager.cancel(),A){var C=this;A.addSession(this),this.$syncInformUndoManager=function(){C.$informUndoManager.cancel(),C.mergeUndoDeltas=!1},this.$informUndoManager=h.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},$.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},$.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},$.prototype.getTabString=function(){return this.getUseSoftTabs()?h.stringRepeat(" ",this.getTabSize()):" "},$.prototype.setUseSoftTabs=function(A){this.setOption("useSoftTabs",A)},$.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},$.prototype.setTabSize=function(A){this.setOption("tabSize",A)},$.prototype.getTabSize=function(){return this.$tabSize},$.prototype.isTabStop=function(A){return this.$useSoftTabs&&A.column%this.$tabSize===0},$.prototype.setNavigateWithinSoftTabs=function(A){this.setOption("navigateWithinSoftTabs",A)},$.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},$.prototype.setOverwrite=function(A){this.setOption("overwrite",A)},$.prototype.getOverwrite=function(){return this.$overwrite},$.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},$.prototype.addGutterDecoration=function(A,C){this.$decorations[A]||(this.$decorations[A]=""),this.$decorations[A]+=" "+C,this._signal("changeBreakpoint",{})},$.prototype.removeGutterCustomWidget=function(A){this.$editor&&this.$editor.renderer.$gutterLayer.$removeCustomWidget(A)},$.prototype.addGutterCustomWidget=function(A,C){this.$editor&&this.$editor.renderer.$gutterLayer.$addCustomWidget(A,C)},$.prototype.removeGutterDecoration=function(A,C){this.$decorations[A]=(this.$decorations[A]||"").replace(" "+C,""),this._signal("changeBreakpoint",{})},$.prototype.getBreakpoints=function(){return this.$breakpoints},$.prototype.setBreakpoints=function(A){this.$breakpoints=[];for(var C=0;C0&&(x=!!w.charAt(C-1).match(this.tokenRe)),x||(x=!!w.charAt(C).match(this.tokenRe)),x)var I=this.tokenRe;else if(/^\s+$/.test(w.slice(C-1,C+1)))var I=/\s/;else var I=this.nonTokenRe;var F=C;if(F>0){do F--;while(F>=0&&w.charAt(F).match(I));F++}for(var R=C;RA&&(A=C.screenWidth)}),this.lineWidgetWidth=A},$.prototype.$computeWidth=function(A){if(this.$modified||A){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var C=this.doc.getAllLines(),w=this.$rowLengthCache,x=0,I=0,F=this.$foldData[I],R=F?F.start.row:1/0,B=C.length,P=0;PR){if(P=F.end.row+1,P>=B)break;F=this.$foldData[I++],R=F?F.start.row:1/0}w[P]==null&&(w[P]=this.$getStringScreenWidth(C[P])[0]),w[P]>x&&(x=w[P])}this.screenWidth=x}},$.prototype.getLine=function(A){return this.doc.getLine(A)},$.prototype.getLines=function(A,C){return this.doc.getLines(A,C)},$.prototype.getLength=function(){return this.doc.getLength()},$.prototype.getTextRange=function(A){return this.doc.getTextRange(A||this.selection.getRange())},$.prototype.insert=function(A,C){return this.doc.insert(A,C)},$.prototype.remove=function(A){return this.doc.remove(A)},$.prototype.removeFullLines=function(A,C){return this.doc.removeFullLines(A,C)},$.prototype.undoChanges=function(A,C){if(A.length){this.$fromUndo=!0;for(var w=A.length-1;w!=-1;w--){var x=A[w];x.action=="insert"||x.action=="remove"?this.doc.revertDelta(x):x.folds&&this.addFolds(x.folds)}!C&&this.$undoSelect&&(A.selectionBefore?this.selection.fromJSON(A.selectionBefore):this.selection.setRange(this.$getUndoSelection(A,!0))),this.$fromUndo=!1}},$.prototype.redoChanges=function(A,C){if(A.length){this.$fromUndo=!0;for(var w=0;wA.end.column&&(F.start.column+=B),F.end.row==A.end.row&&F.end.column>A.end.column&&(F.end.column+=B)),R&&F.start.row>=A.end.row&&(F.start.row+=R,F.end.row+=R)}if(F.end=this.insert(F.start,x),I.length){var P=A.start,V=F.start,R=V.row-P.row,B=V.column-P.column;this.addFolds(I.map(function(U){return U=U.clone(),U.start.row==P.row&&(U.start.column+=B),U.end.row==P.row&&(U.end.column+=B),U.start.row+=R,U.end.row+=R,U}))}return F},$.prototype.indentRows=function(A,C,w){w=w.replace(/\t/g,this.getTabString());for(var x=A;x<=C;x++)this.doc.insertInLine({row:x,column:0},w)},$.prototype.outdentRows=function(A){for(var C=A.collapseRows(),w=new r(0,0,0,0),x=this.getTabSize(),I=C.start.row;I<=C.end.row;++I){var F=this.getLine(I);w.start.row=I,w.end.row=I;for(var R=0;R0){var x=this.getRowFoldEnd(C+w);if(x>this.doc.getLength()-1)return 0;var I=x-C}else{A=this.$clipRowToDocument(A),C=this.$clipRowToDocument(C);var I=C-A+1}var F=new r(A,0,C,Number.MAX_VALUE),R=this.getFoldsInRange(F).map(function(P){return P=P.clone(),P.start.row+=I,P.end.row+=I,P}),B=w==0?this.doc.getLines(A,C):this.doc.removeFullLines(A,C);return this.doc.insertFullLines(A+I,B),R.length&&this.addFolds(R),I},$.prototype.moveLinesUp=function(A,C){return this.$moveLines(A,C,-1)},$.prototype.moveLinesDown=function(A,C){return this.$moveLines(A,C,1)},$.prototype.duplicateLines=function(A,C){return this.$moveLines(A,C,0)},$.prototype.$clipRowToDocument=function(A){return Math.max(0,Math.min(A,this.doc.getLength()-1))},$.prototype.$clipColumnToRow=function(A,C){return C<0?0:Math.min(this.doc.getLine(A).length,C)},$.prototype.$clipPositionToDocument=function(A,C){if(C=Math.max(0,C),A<0)A=0,C=0;else{var w=this.doc.getLength();A>=w?(A=w-1,C=this.doc.getLine(w-1).length):C=Math.min(this.doc.getLine(A).length,C)}return{row:A,column:C}},$.prototype.$clipRangeToDocument=function(A){A.start.row<0?(A.start.row=0,A.start.column=0):A.start.column=this.$clipColumnToRow(A.start.row,A.start.column);var C=this.doc.getLength()-1;return A.end.row>C?(A.end.row=C,A.end.column=this.doc.getLine(C).length):A.end.column=this.$clipColumnToRow(A.end.row,A.end.column),A},$.prototype.setUseWrapMode=function(A){if(A!=this.$useWrapMode){if(this.$useWrapMode=A,this.$modified=!0,this.$resetRowCache(0),A){var C=this.getLength();this.$wrapData=Array(C),this.$updateWrapData(0,C-1)}this._signal("changeWrapMode")}},$.prototype.getUseWrapMode=function(){return this.$useWrapMode},$.prototype.setWrapLimitRange=function(A,C){(this.$wrapLimitRange.min!==A||this.$wrapLimitRange.max!==C)&&(this.$wrapLimitRange={min:A,max:C},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},$.prototype.adjustWrapLimit=function(A,C){var w=this.$wrapLimitRange;w.max<0&&(w={min:C,max:C});var x=this.$constrainWrapLimit(A,w.min,w.max);return x!=this.$wrapLimit&&x>1?(this.$wrapLimit=x,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},$.prototype.$constrainWrapLimit=function(A,C,w){return C&&(A=Math.max(C,A)),w&&(A=Math.min(w,A)),A},$.prototype.getWrapLimit=function(){return this.$wrapLimit},$.prototype.setWrapLimit=function(A){this.setWrapLimitRange(A,A)},$.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},$.prototype.$updateInternalDataOnChange=function(A){var C=this.$useWrapMode,w=A.action,x=A.start,I=A.end,F=x.row,R=I.row,B=R-F,P=null;if(this.$updating=!0,B!=0)if(w==="remove"){this[C?"$wrapData":"$rowLengthCache"].splice(F,B);var V=this.$foldData;P=this.getFoldsInRange(A),this.removeFolds(P);var W=this.getFoldLine(I.row),H=0;if(W){W.addRemoveChars(I.row,I.column,x.column-I.column),W.shiftRow(-B);var U=this.getFoldLine(F);U&&U!==W&&(U.merge(W),W=U),H=V.indexOf(W)+1}for(H;H=I.row&&W.shiftRow(-B)}R=F}else{var G=Array(B);G.unshift(F,0);var Y=C?this.$wrapData:this.$rowLengthCache;Y.splice.apply(Y,G);var V=this.$foldData,W=this.getFoldLine(F),H=0;if(W){var Q=W.range.compareInside(x.row,x.column);Q==0?(W=W.split(x.row,x.column),W&&(W.shiftRow(B),W.addRemoveChars(R,0,I.column-x.column))):Q==-1&&(W.addRemoveChars(F,0,I.column-x.column),W.shiftRow(B)),H=V.indexOf(W)+1}for(H;H=F&&W.shiftRow(B)}}else{B=Math.abs(A.start.column-A.end.column),w==="remove"&&(P=this.getFoldsInRange(A),this.removeFolds(P),B=-B);var W=this.getFoldLine(F);W&&W.addRemoveChars(F,x.column,B)}return C&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,C?this.$updateWrapData(F,R):this.$updateRowLengthCache(F,R),P},$.prototype.$updateRowLengthCache=function(A,C){this.$rowLengthCache[A]=null,this.$rowLengthCache[C]=null},$.prototype.$updateWrapData=function(A,C){var w=this.doc.getAllLines(),x=this.getTabSize(),I=this.$wrapData,F=this.$wrapLimit,R,B,P=A;for(C=Math.min(C,w.length-1);P<=C;)B=this.getFoldLine(P,B),B?(R=[],B.walk(function(V,W,H,U){var G;if(V!=null){G=this.$getDisplayTokens(V,R.length),G[0]=b;for(var Y=1;YC-U;){var G=F+C-U;if(A[G-1]>=T&&A[G]>=T){H(G);continue}if(A[G]==b||A[G]==g){for(G;G!=F-1&&A[G]!=b;G--);if(G>F){H(G);continue}for(G=F+C,G;G>2)),F-1);G>Y&&A[G]Y&&A[G]Y&&A[G]==S;)G--}else for(;G>Y&&A[G]Y){H(++G);continue}G=F+C,A[G]==E&&G--,H(G-U)}return x},$.prototype.$getDisplayTokens=function(A,C){var w=[],x;C=C||0;for(var I=0;I39&&F<48||F>57&&F<64?w.push(S):F>=4352&&O(F)?w.push(D,E):w.push(D)}return w},$.prototype.$getStringScreenWidth=function(A,C,w){if(C==0)return[0,0];C==null&&(C=1/0),w=w||0;var x,I;for(I=0;I=4352&&O(x)?w+=2:w+=1,!(w>C));I++);return[w,I]},$.prototype.getRowLength=function(A){var C=1;return this.lineWidgets&&(C+=this.lineWidgets[A]&&this.lineWidgets[A].rowCount||0),!this.$useWrapMode||!this.$wrapData[A]?C:this.$wrapData[A].length+C},$.prototype.getRowLineCount=function(A){return!this.$useWrapMode||!this.$wrapData[A]?1:this.$wrapData[A].length+1},$.prototype.getRowWrapIndent=function(A){if(this.$useWrapMode){var C=this.screenToDocumentPosition(A,Number.MAX_VALUE),w=this.$wrapData[C.row];return w.length&&w[0]=0)var B=V[W],I=this.$docRowCache[W],U=A>V[H-1];else var U=!H;for(var G=this.getLength()-1,Y=this.getNextFoldLine(I),Q=Y?Y.start.row:1/0;B<=A&&(P=this.getRowLength(I),!(B+P>A||I>=G));)B+=P,I++,I>Q&&(I=Y.end.row+1,Y=this.getNextFoldLine(I,Y),Q=Y?Y.start.row:1/0),U&&(this.$docRowCache.push(I),this.$screenRowCache.push(B));if(Y&&Y.start.row<=I)x=this.getFoldDisplayLine(Y),I=Y.start.row;else{if(B+P<=A||I>G)return{row:G,column:this.getLine(G).length};x=this.getLine(I),Y=null}var ee=0,ne=Math.floor(A-B);if(this.$useWrapMode){var se=this.$wrapData[I];se&&(R=se[ne],ne>0&&se.length&&(ee=se.indent,F=se[ne-1]||se[se.length-1],x=x.substring(F)))}return w!==void 0&&this.$bidiHandler.isBidiRow(B+ne,I,ne)&&(C=this.$bidiHandler.offsetToCol(w)),F+=this.$getStringScreenWidth(x,C-ee)[1],this.$useWrapMode&&F>=R&&(F=R-1),Y?Y.idxToPosition(F):{row:I,column:F}},$.prototype.documentToScreenPosition=function(A,C){if(typeof C>"u")var w=this.$clipPositionToDocument(A.row,A.column);else w=this.$clipPositionToDocument(A,C);A=w.row,C=w.column;var x=0,I=null,F=null;F=this.getFoldAt(A,C,1),F&&(A=F.start.row,C=F.start.column);var R,B=0,P=this.$docRowCache,V=this.$getRowCacheIndex(P,A),W=P.length;if(W&&V>=0)var B=P[V],x=this.$screenRowCache[V],H=A>P[W-1];else var H=!W;for(var U=this.getNextFoldLine(B),G=U?U.start.row:1/0;B=G){if(R=U.end.row+1,R>A)break;U=this.getNextFoldLine(R,U),G=U?U.start.row:1/0}else R=B+1;x+=this.getRowLength(B),B=R,H&&(this.$docRowCache.push(B),this.$screenRowCache.push(x))}var Y="";U&&B>=G?(Y=this.getFoldDisplayLine(U,A,C),I=U.start.row):(Y=this.getLine(A).substring(0,C),I=A);var Q=0;if(this.$useWrapMode){var ee=this.$wrapData[I];if(ee){for(var ne=0;Y.length>=ee[ne];)x++,ne++;Y=Y.substring(ee[ne-1]||0,Y.length),Q=ne>0?ee.indent:0}}return this.lineWidgets&&this.lineWidgets[B]&&this.lineWidgets[B].rowsAbove&&(x+=this.lineWidgets[B].rowsAbove),{row:x,column:Q+this.$getStringScreenWidth(Y)[0]}},$.prototype.documentToScreenColumn=function(A,C){return this.documentToScreenPosition(A,C).column},$.prototype.documentToScreenRow=function(A,C){return this.documentToScreenPosition(A,C).row},$.prototype.getScreenLength=function(){var A=0,C=null;if(this.$useWrapMode)for(var I=this.$wrapData.length,F=0,x=0,C=this.$foldData[x++],R=C?C.start.row:1/0;FR&&(F=C.end.row+1,C=this.$foldData[x++],R=C?C.start.row:1/0)}else{A=this.getLength();for(var w=this.$foldData,x=0;xw));F++);return[x,F]})},$.prototype.getPrecedingCharacter=function(){var A=this.selection.getCursor();if(A.column===0)return A.row===0?"":this.doc.getNewLineCharacter();var C=this.getLine(A.row);return C[A.column-1]},$.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.endOperation(),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection&&(this.selection.off("changeCursor",this.$onSelectionChange),this.selection.off("changeSelection",this.$onSelectionChange)),this.selection.detach()},$}();y.$uid=0,y.prototype.$modes=a.$modes,y.prototype.getValue=y.prototype.toString,y.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},y.prototype.$overwrite=!1,y.prototype.$mode=null,y.prototype.$modeId=null,y.prototype.$scrollTop=0,y.prototype.$scrollLeft=0,y.prototype.$wrapLimit=80,y.prototype.$useWrapMode=!1,y.prototype.$wrapLimitRange={min:null,max:null},y.prototype.lineWidgets=null,y.prototype.isFullWidth=O,o.implement(y.prototype,d);var D=1,E=2,b=3,g=4,S=9,T=10,k=11,_=12;function O($){return $<4352?!1:$>=4352&&$<=4447||$>=4515&&$<=4519||$>=4602&&$<=4607||$>=9001&&$<=9002||$>=11904&&$<=11929||$>=11931&&$<=12019||$>=12032&&$<=12245||$>=12272&&$<=12283||$>=12288&&$<=12350||$>=12353&&$<=12438||$>=12441&&$<=12543||$>=12549&&$<=12589||$>=12593&&$<=12686||$>=12688&&$<=12730||$>=12736&&$<=12771||$>=12784&&$<=12830||$>=12832&&$<=12871||$>=12880&&$<=13054||$>=13056&&$<=19903||$>=19968&&$<=42124||$>=42128&&$<=42182||$>=43360&&$<=43388||$>=44032&&$<=55203||$>=55216&&$<=55238||$>=55243&&$<=55291||$>=63744&&$<=64255||$>=65040&&$<=65049||$>=65072&&$<=65106||$>=65108&&$<=65126||$>=65128&&$<=65131||$>=65281&&$<=65376||$>=65504&&$<=65510}i("./edit_session/folding").Folding.call(y.prototype),i("./edit_session/bracket_match").BracketMatch.call(y.prototype),a.defineOptions(y.prototype,"session",{wrap:{set:function($){if(!$||$=="off"?$=!1:$=="free"?$=!0:$=="printMargin"?$=-1:typeof $=="string"&&($=parseInt($,10)||!1),this.$wrap!=$)if(this.$wrap=$,!$)this.setUseWrapMode(!1);else{var A=typeof $=="number"?$:null;this.setWrapLimitRange(A,A),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function($){$=$=="auto"?this.$mode.type!="text":$!="text",$!=this.$wrapAsCode&&(this.$wrapAsCode=$,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function($){this.$useWorker=$,this.$stopWorker(),$&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function($){$=parseInt($),$>0&&this.$tabSize!==$&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=$,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function($){this.setFoldStyle($)},handlesSet:!0},overwrite:{set:function($){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function($){this.doc.setNewLineMode($)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function($){this.setMode($)},get:function(){return this.$modeId},handlesSet:!0}}),u.EditSession=y}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(i,u,v){var o=i("./lib/lang"),h=i("./lib/oop"),p=i("./range").Range,a=function(){function r(){this.$options={}}return r.prototype.set=function(l){return h.mixin(this.$options,l),this},r.prototype.getOptions=function(){return o.copyObject(this.$options)},r.prototype.setOptions=function(l){this.$options=l},r.prototype.find=function(l){var s=this.$options,c=this.$matchIterator(l,s);if(!c)return!1;var f=null;return c.forEach(function(m,y,D,E){return f=new p(m,y,D,E),y==E&&s.start&&s.start.start&&s.skipCurrent!=!1&&f.isEqual(s.start)?(f=null,!1):!0}),f},r.prototype.findAll=function(l){var s=this.$options;if(!s.needle)return[];this.$assembleRegExp(s);var c=s.range,f=c?l.getLines(c.start.row,c.end.row):l.doc.getAllLines(),m=[],y=s.re;if(s.$isMultiLine){var D=y.length,E=f.length-D,b;e:for(var g=y.offset||0;g<=E;g++){for(var S=0;S_||(m.push(b=new p(g,_,g+D-1,O)),D>2&&(g=g+D-2))}}else for(var $,A=0;AA&&(A=w),m.push(new p($.startRow,$.startCol,$.endRow,$.endCol))}}else{$=o.getMatchOffsets(f[A],y);for(var S=0;S<$.length;S++){var x=$[S];m.push(new p(A,x.offset,A,x.offset+x.length))}}if(c){for(var I=c.start.column,F=c.end.column,A=0,S=m.length-1;AF&&m[S].end.row==R;)S--;for(m=m.slice(A,S+1),A=0,S=m.length;A=m){c+="\\";break}var D=l.charCodeAt(f);switch(D){case s.Backslash:c+="\\";break;case s.n:c+=` +`;break;case s.t:c+=" ";break}continue}if(y===s.DollarSign){if(f++,f>=m){c+="$";break}var E=l.charCodeAt(f);if(E===s.DollarSign){c+="$$";continue}if(E===s.Digit0||E===s.Ampersand){c+="$&";continue}if(s.Digit1<=E&&E<=s.Digit9){c+="$"+l[f];continue}}c+=l[f]}return c||l},r.prototype.replace=function(l,s){var c=this.$options,f=this.$assembleRegExp(c);if(c.$isMultiLine)return s;if(f){var m=this.$isMultilineSearch(c);m&&(l=l.replace(/\r\n|\r|\n/g,` +`));var y=f.exec(l);if(!y||!m&&y[0].length!=l.length)return null;if(s=c.regExp?this.parseReplaceString(s):s.replace(/\$/g,"$$$$"),s=l.replace(f,s),c.preserveCase){s=s.split("");for(var D=Math.min(l.length,l.length);D--;){var E=l[D];E&&E.toLowerCase()!=E?s[D]=s[D].toUpperCase():s[D]=s[D].toLowerCase()}s=s.join("")}return s}},r.prototype.$assembleRegExp=function(l,s){if(l.needle instanceof RegExp)return l.re=l.needle;var c=l.needle;if(!l.needle)return l.re=!1;l.regExp||(c=o.escapeRegExp(c));var f=l.caseSensitive?"gm":"gmi";try{new RegExp(c,"u"),l.$supportsUnicodeFlag=!0,f+="u"}catch{l.$supportsUnicodeFlag=!1}if(l.wholeWord&&(c=d(c,l)),l.$isMultiLine=!s&&/[\n\r]/.test(c),l.$isMultiLine)return l.re=this.$assembleMultilineRegExp(c,f);try{var m=new RegExp(c,f)}catch{m=!1}return l.re=m},r.prototype.$assembleMultilineRegExp=function(l,s){for(var c=l.replace(/\r\n|\r|\n/g,`$ ^`).split(` -`),f=[],m=0;mf);E++){var b=l.getLine(D++);m=m==null?b:m+` -`+b}var g=a.exec(m);if(a.lastIndex=0,g){var S=m.slice(0,g.index).split(` -`),M=g[0].split(` -`),_=c+S.length-1,T=S[S.length-1].length,F=_+M.length-1,A=M.length==1?T+M[0].length:M[M.length-1].length;return{startRow:_,startCol:T,endRow:F,endCol:A}}}return null},r.prototype.$multiLineBackward=function(l,a,c,f,m){for(var y,D=t(l,f),E=l.getLine(f).length-c,b=f;b>=m;){for(var g=0;g=m;g++){var S=l.getLine(b--);y=y==null?S:S+` -`+y}var M=e(y,a,E);if(M){var _=y.slice(0,M.index).split(` -`),T=M[0].split(` -`),F=b+_.length,A=_[_.length-1].length,$=F+T.length-1,C=T.length==1?A+T[0].length:T[T.length-1].length;return{startRow:F,startCol:A,endRow:$,endCol:C}}}return null},r.prototype.$matchIterator=function(l,a){var c=this.$assembleRegExp(a);if(!c)return!1;var f=this.$isMultilineSearch(a),m=this.$multiLineForward,y=this.$multiLineBackward,D=a.backwards==!0,E=a.skipCurrent!=!1,b=c.unicode,g=a.range,S=a.start;S||(S=g?g[D?"end":"start"]:l.selection.getRange()),S.start&&(S=S[E!=D?"end":"start"]);var M=g?g.start.row:0,_=g?g.end.row:l.getLength()-1;if(D)var T=function($){var C=S.row;if(!A(C,S.column,$)){for(C--;C>=M;C--)if(A(C,Number.MAX_VALUE,$))return;if(a.wrap!=!1){for(C=_,M=S.row;C>=M;C--)if(A(C,Number.MAX_VALUE,$))return}}};else var T=function(C){var w=S.row;if(!A(w,S.column,C)){for(w=w+1;w<=_;w++)if(A(w,0,C))return;if(a.wrap!=!1){for(w=M,_=S.row;w<=_;w++)if(A(w,0,C))return}}};if(a.$isMultiLine)var F=c.length,A=function($,C,w){var x=D?$-F+1:$;if(!(x<0||x+F>l.getLength())){var I=l.getLine(x),R=I.search(c[0]);if(!(!D&&RC)&&w(x,R,x+F-1,P))return!0}}};else if(D)var A=function(C,w,x){if(f){var I=y(l,c,w,C,M);if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else{var R=l.getLine(C),O=[],P,B=0;for(c.lastIndex=0;P=c.exec(R);){var V=P[0].length;if(B=P.index,!V){if(B>=R.length)break;c.lastIndex=B+=o.skipEmptyMatch(R,B,b)}if(P.index+V>w)break;O.push(P.index,V)}for(var W=O.length-1;W>=0;W-=2){var H=O[W-1],V=O[W];if(x(C,H,C,H+V))return!0}}};else var A=function(C,w,x){if(c.lastIndex=w,f){var I=m(l,c,C,_);if(I){var R=I.endRow<=_?I.endRow-1:_;R>C&&(C=R)}if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else for(var O=l.getLine(C),P,B;B=c.exec(O);){var V=B[0].length;if(P=B.index,x(C,P,C,P+V))return!0;if(!V&&(c.lastIndex=P+=o.skipEmptyMatch(O,P,b),P>=O.length))return!1}};return{forEach:T}},r}();function p(r,l){var a=o.supportsLookbehind();function c(D,E){E===void 0&&(E=!0);var b=a&&l.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return b.test(D)||l.regExp?a&&l.$supportsUnicodeFlag?E?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var f=Array.from(r),m=f[0],y=f[f.length-1];return c(m)+r+c(y,!1)}function e(r,l,a){for(var c=null,f=0;f<=r.length;){l.lastIndex=f;var m=l.exec(r);if(!m)break;var y=m.index+m[0].length;if(y>r.length-a)break;(!c||y>c.index+c[0].length)&&(c=m),f=m.index+1}return c}function t(r,l){var a=5e3,c={row:l,column:0},f=r.doc.positionToIndex(c),m=f+a,y=r.doc.indexToPosition(m),D=y.row;return D+1}u.Search=s}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(i,u,v){var o=this&&this.__extends||function(){var r=function(l,a){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,f){c.__proto__=f}||function(c,f){for(var m in f)Object.prototype.hasOwnProperty.call(f,m)&&(c[m]=f[m])},r(l,a)};return function(l,a){if(typeof a!="function"&&a!==null)throw new TypeError("Class extends value "+String(a)+" is not a constructor or null");r(l,a);function c(){this.constructor=l}l.prototype=a===null?Object.create(a):(c.prototype=a.prototype,new c)}}(),h=i("../lib/keys"),d=i("../lib/useragent"),s=h.KEY_MODS,p=function(){function r(l,a){this.$init(l,a,!1)}return r.prototype.$init=function(l,a,c){this.platform=a||(d.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(l),this.$singleCommand=c},r.prototype.addCommand=function(l){this.commands[l.name]&&this.removeCommand(l),this.commands[l.name]=l,l.bindKey&&this._buildKeyHash(l)},r.prototype.removeCommand=function(l,a){var c=l&&(typeof l=="string"?l:l.name);l=this.commands[c],a||delete this.commands[c];var f=this.commandKeyBinding;for(var m in f){var y=f[m];if(y==l)delete f[m];else if(Array.isArray(y)){var D=y.indexOf(l);D!=-1&&(y.splice(D,1),y.length==1&&(f[m]=y[0]))}}},r.prototype.bindKey=function(l,a,c){if(typeof l=="object"&&l&&(c==null&&(c=l.position),l=l[this.platform]),!!l){if(typeof a=="function")return this.addCommand({exec:a,bindKey:l,name:a.name||l});l.split("|").forEach(function(f){var m="";if(f.indexOf(" ")!=-1){var y=f.split(/\s+/);f=y.pop(),y.forEach(function(b){var g=this.parseKeys(b),S=s[g.hashId]+g.key;m+=(m?" ":"")+S,this._addCommandToBinding(m,"chainKeys")},this),m+=" "}var D=this.parseKeys(f),E=s[D.hashId]+D.key;this._addCommandToBinding(m+E,a,c)},this)}},r.prototype._addCommandToBinding=function(l,a,c){var f=this.commandKeyBinding,m;if(!a)delete f[l];else if(!f[l]||this.$singleCommand)f[l]=a;else{Array.isArray(f[l])?(m=f[l].indexOf(a))!=-1&&f[l].splice(m,1):f[l]=[f[l]],typeof c!="number"&&(c=e(a));var y=f[l];for(m=0;mc)break}y.splice(m,0,a)}},r.prototype.addCommands=function(l){l&&Object.keys(l).forEach(function(a){var c=l[a];if(c){if(typeof c=="string")return this.bindKey(c,a);typeof c=="function"&&(c={exec:c}),typeof c=="object"&&(c.name||(c.name=a),this.addCommand(c))}},this)},r.prototype.removeCommands=function(l){Object.keys(l).forEach(function(a){this.removeCommand(l[a])},this)},r.prototype.bindKeys=function(l){Object.keys(l).forEach(function(a){this.bindKey(a,l[a])},this)},r.prototype._buildKeyHash=function(l){this.bindKey(l.bindKey,l)},r.prototype.parseKeys=function(l){var a=l.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(E){return E}),c=a.pop(),f=h[c];if(h.FUNCTION_KEYS[f])c=h.FUNCTION_KEYS[f].toLowerCase();else if(a.length){if(a.length==1&&a[0]=="shift")return{key:c.toUpperCase(),hashId:-1}}else return{key:c,hashId:-1};for(var m=0,y=a.length;y--;){var D=h.KEY_MODS[a[y]];if(D==null)return typeof console<"u"&&console.error("invalid modifier "+a[y]+" in "+l),!1;m|=D}return{key:c,hashId:m}},r.prototype.findKeyCommand=function(l,a){var c=s[l]+a;return this.commandKeyBinding[c]},r.prototype.handleKeyboard=function(l,a,c,f){if(!(f<0)){var m=s[a]+c,y=this.commandKeyBinding[m];return l.$keyChain&&(l.$keyChain+=" "+m,y=this.commandKeyBinding[l.$keyChain]||y),y&&(y=="chainKeys"||y[y.length-1]=="chainKeys")?(l.$keyChain=l.$keyChain||m,{command:"null"}):(l.$keyChain&&((!a||a==4)&&c.length==1?l.$keyChain=l.$keyChain.slice(0,-m.length-1):(a==-1||f>0)&&(l.$keyChain="")),{command:y})}},r.prototype.getStatusText=function(l,a){return a.$keyChain||""},r}();function e(r){return typeof r=="object"&&r.bindKey&&r.bindKey.position||(r.isDefault?-100:0)}var t=function(r){o(l,r);function l(a,c){var f=r.call(this,a,c)||this;return f.$singleCommand=!0,f}return l}(p);t.call=function(r,l,a){p.prototype.$init.call(r,l,a,!0)},p.call=function(r,l,a){p.prototype.$init.call(r,l,a,!1)},u.HashHandler=t,u.MultiHashHandler=p}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,a){l.__proto__=a}||function(l,a){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(l[c]=a[c])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function l(){this.constructor=t}t.prototype=r===null?Object.create(r):(l.prototype=r.prototype,new l)}}(),h=i("../lib/oop"),d=i("../keyboard/hash_handler").MultiHashHandler,s=i("../lib/event_emitter").EventEmitter,p=function(e){o(t,e);function t(r,l){var a=e.call(this,l,r)||this;return a.byName=a.commands,a.setDefaultHandler("exec",function(c){return c.args?c.command.exec(c.editor,c.args,c.event,!1):c.command.exec(c.editor,{},c.event,!0)}),a}return t.prototype.exec=function(r,l,a){if(Array.isArray(r)){for(var c=r.length;c--;)if(this.exec(r[c],l,a))return!0;return!1}typeof r=="string"&&(r=this.commands[r]);var f={editor:l,command:r,args:a};return this.canExecute(r,l)?(f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1):(this._signal("commandUnavailable",f),!1)},t.prototype.canExecute=function(r,l){return typeof r=="string"&&(r=this.commands[r]),!(!r||l&&l.$readOnly&&!r.readOnly||this.$checkCommandState!=!1&&r.isAvailable&&!r.isAvailable(l))},t.prototype.toggleRecording=function(r){if(!this.$inReplay)return r&&r._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(l){this.macro.push([l.command,l.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(r){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(r);try{this.$inReplay=!0,this.macro.forEach(function(l){typeof l=="string"?this.exec(l,r):this.exec(l[0],r,l[1])},this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(r){return r.map(function(l){return typeof l[0]!="string"&&(l[0]=l[0].name),l[1]||(l=l[0]),l})},t}(d);h.implement(p.prototype,s),u.CommandManager=p}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(i,u,v){var o=i("../lib/lang"),h=i("../config"),d=i("../range").Range;function s(e,t){return{win:e,mac:t}}u.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(e){h.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(e){h.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(e){h.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(e){h.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),r=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",r),r.isEmpty()||e.session.remove(r),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(e){h.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(e){if(e.selection.isEmpty())e.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(e){e.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(e){for(var t=e.selection.isBackwards(),r=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),l=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),a=e.session.doc.getLine(r.row).length,c=e.session.doc.getTextRange(e.selection.getRange()),f=c.replace(/\n\s*/," ").length,m=e.session.doc.getLine(r.row),y=r.row+1;y<=l.row+1;y++){var D=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(y)));D.length!==0&&(D=" "+D),m+=D}l.row+10?(e.selection.moveCursorTo(r.row,r.column),e.selection.selectTo(r.row,r.column+f)):(a=e.session.doc.getLine(r.row).length>a?a+1:a,e.selection.moveCursorTo(r.row,a))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(e){var t=e.session.doc.getLength()-1,r=e.session.doc.getLine(t).length,l=e.selection.rangeList.ranges,a=[];l.length<1&&(l=[e.selection.getRange()]);for(var c=0;cf);E++){var b=l.getLine(D++);m=m==null?b:m+` +`+b}var g=s.exec(m);if(s.lastIndex=0,g){var S=m.slice(0,g.index).split(` +`),T=g[0].split(` +`),k=c+S.length-1,_=S[S.length-1].length,O=k+T.length-1,$=T.length==1?_+T[0].length:T[T.length-1].length;return{startRow:k,startCol:_,endRow:O,endCol:$}}}return null},r.prototype.$multiLineBackward=function(l,s,c,f,m){for(var y,D=t(l,f),E=l.getLine(f).length-c,b=f;b>=m;){for(var g=0;g=m;g++){var S=l.getLine(b--);y=y==null?S:S+` +`+y}var T=e(y,s,E);if(T){var k=y.slice(0,T.index).split(` +`),_=T[0].split(` +`),O=b+k.length,$=k[k.length-1].length,A=O+_.length-1,C=_.length==1?$+_[0].length:_[_.length-1].length;return{startRow:O,startCol:$,endRow:A,endCol:C}}}return null},r.prototype.$matchIterator=function(l,s){var c=this.$assembleRegExp(s);if(!c)return!1;var f=this.$isMultilineSearch(s),m=this.$multiLineForward,y=this.$multiLineBackward,D=s.backwards==!0,E=s.skipCurrent!=!1,b=c.unicode,g=s.range,S=s.start;S||(S=g?g[D?"end":"start"]:l.selection.getRange()),S.start&&(S=S[E!=D?"end":"start"]);var T=g?g.start.row:0,k=g?g.end.row:l.getLength()-1;if(D)var _=function(A){var C=S.row;if(!$(C,S.column,A)){for(C--;C>=T;C--)if($(C,Number.MAX_VALUE,A))return;if(s.wrap!=!1){for(C=k,T=S.row;C>=T;C--)if($(C,Number.MAX_VALUE,A))return}}};else var _=function(C){var w=S.row;if(!$(w,S.column,C)){for(w=w+1;w<=k;w++)if($(w,0,C))return;if(s.wrap!=!1){for(w=T,k=S.row;w<=k;w++)if($(w,0,C))return}}};if(s.$isMultiLine)var O=c.length,$=function(A,C,w){var x=D?A-O+1:A;if(!(x<0||x+O>l.getLength())){var I=l.getLine(x),F=I.search(c[0]);if(!(!D&&FC)&&w(x,F,x+O-1,B))return!0}}};else if(D)var $=function(C,w,x){if(f){var I=y(l,c,w,C,T);if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else{var F=l.getLine(C),R=[],B,P=0;for(c.lastIndex=0;B=c.exec(F);){var V=B[0].length;if(P=B.index,!V){if(P>=F.length)break;c.lastIndex=P+=o.skipEmptyMatch(F,P,b)}if(B.index+V>w)break;R.push(B.index,V)}for(var W=R.length-1;W>=0;W-=2){var H=R[W-1],V=R[W];if(x(C,H,C,H+V))return!0}}};else var $=function(C,w,x){if(c.lastIndex=w,f){var I=m(l,c,C,k);if(I){var F=I.endRow<=k?I.endRow-1:k;F>C&&(C=F)}if(!I)return!1;if(x(I.startRow,I.startCol,I.endRow,I.endCol))return!0}else for(var R=l.getLine(C),B,P;P=c.exec(R);){var V=P[0].length;if(B=P.index,x(C,B,C,B+V))return!0;if(!V&&(c.lastIndex=B+=o.skipEmptyMatch(R,B,b),B>=R.length))return!1}};return{forEach:_}},r}();function d(r,l){var s=o.supportsLookbehind();function c(D,E){E===void 0&&(E=!0);var b=s&&l.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return b.test(D)||l.regExp?s&&l.$supportsUnicodeFlag?E?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var f=Array.from(r),m=f[0],y=f[f.length-1];return c(m)+r+c(y,!1)}function e(r,l,s){for(var c=null,f=0;f<=r.length;){l.lastIndex=f;var m=l.exec(r);if(!m)break;var y=m.index+m[0].length;if(y>r.length-s)break;(!c||y>c.index+c[0].length)&&(c=m),f=m.index+1}return c}function t(r,l){var s=5e3,c={row:l,column:0},f=r.doc.positionToIndex(c),m=f+s,y=r.doc.indexToPosition(m),D=y.row;return D+1}u.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(i,u,v){var o=this&&this.__extends||function(){var r=function(l,s){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,f){c.__proto__=f}||function(c,f){for(var m in f)Object.prototype.hasOwnProperty.call(f,m)&&(c[m]=f[m])},r(l,s)};return function(l,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");r(l,s);function c(){this.constructor=l}l.prototype=s===null?Object.create(s):(c.prototype=s.prototype,new c)}}(),h=i("../lib/keys"),p=i("../lib/useragent"),a=h.KEY_MODS,d=function(){function r(l,s){this.$init(l,s,!1)}return r.prototype.$init=function(l,s,c){this.platform=s||(p.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(l),this.$singleCommand=c},r.prototype.addCommand=function(l){this.commands[l.name]&&this.removeCommand(l),this.commands[l.name]=l,l.bindKey&&this._buildKeyHash(l)},r.prototype.removeCommand=function(l,s){var c=l&&(typeof l=="string"?l:l.name);l=this.commands[c],s||delete this.commands[c];var f=this.commandKeyBinding;for(var m in f){var y=f[m];if(y==l)delete f[m];else if(Array.isArray(y)){var D=y.indexOf(l);D!=-1&&(y.splice(D,1),y.length==1&&(f[m]=y[0]))}}},r.prototype.bindKey=function(l,s,c){if(typeof l=="object"&&l&&(c==null&&(c=l.position),l=l[this.platform]),!!l){if(typeof s=="function")return this.addCommand({exec:s,bindKey:l,name:s.name||l});l.split("|").forEach(function(f){var m="";if(f.indexOf(" ")!=-1){var y=f.split(/\s+/);f=y.pop(),y.forEach(function(b){var g=this.parseKeys(b),S=a[g.hashId]+g.key;m+=(m?" ":"")+S,this._addCommandToBinding(m,"chainKeys")},this),m+=" "}var D=this.parseKeys(f),E=a[D.hashId]+D.key;this._addCommandToBinding(m+E,s,c)},this)}},r.prototype._addCommandToBinding=function(l,s,c){var f=this.commandKeyBinding,m;if(!s)delete f[l];else if(!f[l]||this.$singleCommand)f[l]=s;else{Array.isArray(f[l])?(m=f[l].indexOf(s))!=-1&&f[l].splice(m,1):f[l]=[f[l]],typeof c!="number"&&(c=e(s));var y=f[l];for(m=0;mc)break}y.splice(m,0,s)}},r.prototype.addCommands=function(l){l&&Object.keys(l).forEach(function(s){var c=l[s];if(c){if(typeof c=="string")return this.bindKey(c,s);typeof c=="function"&&(c={exec:c}),typeof c=="object"&&(c.name||(c.name=s),this.addCommand(c))}},this)},r.prototype.removeCommands=function(l){Object.keys(l).forEach(function(s){this.removeCommand(l[s])},this)},r.prototype.bindKeys=function(l){Object.keys(l).forEach(function(s){this.bindKey(s,l[s])},this)},r.prototype._buildKeyHash=function(l){this.bindKey(l.bindKey,l)},r.prototype.parseKeys=function(l){var s=l.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(E){return E}),c=s.pop(),f=h[c];if(h.FUNCTION_KEYS[f])c=h.FUNCTION_KEYS[f].toLowerCase();else if(s.length){if(s.length==1&&s[0]=="shift")return{key:c.toUpperCase(),hashId:-1}}else return{key:c,hashId:-1};for(var m=0,y=s.length;y--;){var D=h.KEY_MODS[s[y]];if(D==null)return typeof console<"u"&&console.error("invalid modifier "+s[y]+" in "+l),!1;m|=D}return{key:c,hashId:m}},r.prototype.findKeyCommand=function(l,s){var c=a[l]+s;return this.commandKeyBinding[c]},r.prototype.handleKeyboard=function(l,s,c,f){if(!(f<0)){var m=a[s]+c,y=this.commandKeyBinding[m];return l.$keyChain&&(l.$keyChain+=" "+m,y=this.commandKeyBinding[l.$keyChain]||y),y&&(y=="chainKeys"||y[y.length-1]=="chainKeys")?(l.$keyChain=l.$keyChain||m,{command:"null"}):(l.$keyChain&&((!s||s==4)&&c.length==1?l.$keyChain=l.$keyChain.slice(0,-m.length-1):(s==-1||f>0)&&(l.$keyChain="")),{command:y})}},r.prototype.getStatusText=function(l,s){return s.$keyChain||""},r}();function e(r){return typeof r=="object"&&r.bindKey&&r.bindKey.position||(r.isDefault?-100:0)}var t=function(r){o(l,r);function l(s,c){var f=r.call(this,s,c)||this;return f.$singleCommand=!0,f}return l}(d);t.call=function(r,l,s){d.prototype.$init.call(r,l,s,!0)},d.call=function(r,l,s){d.prototype.$init.call(r,l,s,!1)},u.HashHandler=t,u.MultiHashHandler=d}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,s){l.__proto__=s}||function(l,s){for(var c in s)Object.prototype.hasOwnProperty.call(s,c)&&(l[c]=s[c])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function l(){this.constructor=t}t.prototype=r===null?Object.create(r):(l.prototype=r.prototype,new l)}}(),h=i("../lib/oop"),p=i("../keyboard/hash_handler").MultiHashHandler,a=i("../lib/event_emitter").EventEmitter,d=function(e){o(t,e);function t(r,l){var s=e.call(this,l,r)||this;return s.byName=s.commands,s.setDefaultHandler("exec",function(c){return c.args?c.command.exec(c.editor,c.args,c.event,!1):c.command.exec(c.editor,{},c.event,!0)}),s}return t.prototype.exec=function(r,l,s){if(Array.isArray(r)){for(var c=r.length;c--;)if(this.exec(r[c],l,s))return!0;return!1}typeof r=="string"&&(r=this.commands[r]);var f={editor:l,command:r,args:s};return this.canExecute(r,l)?(f.returnValue=this._emit("exec",f),this._signal("afterExec",f),f.returnValue!==!1):(this._signal("commandUnavailable",f),!1)},t.prototype.canExecute=function(r,l){return typeof r=="string"&&(r=this.commands[r]),!(!r||l&&l.$readOnly&&!r.readOnly||this.$checkCommandState!=!1&&r.isAvailable&&!r.isAvailable(l))},t.prototype.toggleRecording=function(r){if(!this.$inReplay)return r&&r._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(l){this.macro.push([l.command,l.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},t.prototype.replay=function(r){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(r);try{this.$inReplay=!0,this.macro.forEach(function(l){typeof l=="string"?this.exec(l,r):this.exec(l[0],r,l[1])},this)}finally{this.$inReplay=!1}}},t.prototype.trimMacro=function(r){return r.map(function(l){return typeof l[0]!="string"&&(l[0]=l[0].name),l[1]||(l=l[0]),l})},t}(p);h.implement(d.prototype,a),u.CommandManager=d}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(i,u,v){var o=i("../lib/lang"),h=i("../config"),p=i("../range").Range;function a(e,t){return{win:e,mac:t}}u.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){h.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(e){h.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){h.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(e,t){typeof t=="number"&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){h.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty(),r=t?e.selection.getLineRange():e.selection.getRange();e._emit("cut",r),r.isEmpty()||e.session.remove(r),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){h.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(e){if(e.selection.isEmpty())e.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(e){e.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(e){e.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),r=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),l=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),s=e.session.doc.getLine(r.row).length,c=e.session.doc.getTextRange(e.selection.getRange()),f=c.replace(/\n\s*/," ").length,m=e.session.doc.getLine(r.row),y=r.row+1;y<=l.row+1;y++){var D=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(y)));D.length!==0&&(D=" "+D),m+=D}l.row+10?(e.selection.moveCursorTo(r.row,r.column),e.selection.selectTo(r.row,r.column+f)):(s=e.session.doc.getLine(r.row).length>s?s+1:s,e.selection.moveCursorTo(r.row,s))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,r=e.session.doc.getLine(t).length,l=e.selection.rangeList.ranges,s=[];l.length<1&&(l=[e.selection.getRange()]);for(var c=0;c0||e+t=0&&this.$isCustomWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(e+t))return e+t;if(e-t>=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},p.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},p.prototype.$focusFoldWidget=function(e){if(e!=null){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},p.prototype.$focusCustomWidget=function(e){if(e!=null){var t=this.$getCustomWidget(e);t&&(t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus())}},p.prototype.$focusAnnotation=function(e){if(e!=null){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},p.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},p.prototype.$blurCustomWidget=function(e){var t=this.$getCustomWidget(e);t&&(t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur())},p.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},p.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e)||this.$isCustomWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=e,this.$isFoldWidgetVisible(e)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex);return}},p.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}},p.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=C.length&&(C=void 0),{value:C&&C[I++],done:!C}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")},h=i("./lib/oop"),d=i("./lib/dom"),s=i("./lib/lang"),p=i("./lib/useragent"),e=i("./keyboard/textinput").TextInput,t=i("./mouse/mouse_handler").MouseHandler,r=i("./mouse/fold_handler").FoldHandler,l=i("./keyboard/keybinding").KeyBinding,a=i("./edit_session").EditSession,c=i("./search").Search,f=i("./range").Range,m=i("./lib/event_emitter").EventEmitter,y=i("./commands/command_manager").CommandManager,D=i("./commands/default_commands").commands,E=i("./config"),b=i("./token_iterator").TokenIterator,g=i("./keyboard/gutter_handler").GutterKeyboardHandler,S=i("./config").nls,M=i("./clipboard"),_=i("./lib/keys"),T=i("./lib/event"),F=i("./tooltip").HoverTooltip,A=function(){function C(w,x,I){this.id="editor"+ ++C.$uid,this.session,this.$toDestroy=[];var R=w.getContainerElement();this.container=R,this.renderer=w,this.commands=new y(p.isMac?"mac":"win",D),typeof document=="object"&&(this.textInput=new e(w.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new t(this),new r(this)),this.keyBinding=new l(this),this.$search=new c().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(O,P){P._$emitInputEvent.schedule(31)}),this.setSession(x||I&&I.session||new a("")),E.resetOptions(this),I&&this.setOptions(I),E._signal("editor",this)}return C.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},C.prototype.startOperation=function(w){this.session.startOperation(w)},C.prototype.endOperation=function(w){this.session.endOperation(w)},C.prototype.onStartOperation=function(w){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,w||(this.previousCommand=null)},C.prototype.onEndOperation=function(w){if(this.curOp&&this.session){if(w&&w.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var x=this.curOp.command,I=x&&x.scrollIntoView;if(I){switch(I){case"center-animate":I="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var R=this.selection.getRange(),O=this.renderer.layerConfig;(R.start.row>=O.lastRow||R.end.row<=O.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}I=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},C.prototype.$historyTracker=function(w){if(this.$mergeUndoDeltas){var x=this.prevOp,I=this.$mergeableCommands,R=x.command&&w.command.name==x.command.name;if(w.command.name=="insertstring"){var O=w.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),R=R&&this.mergeNextCommand&&(!/\s/.test(O)||/\s/.test(x.args)),this.mergeNextCommand=!0}else R=R&&I.indexOf(w.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(R=!1),R?this.session.mergeUndoDeltas=!0:I.indexOf(w.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},C.prototype.setKeyboardHandler=function(w,x){if(w&&typeof w=="string"&&w!="ace"){this.$keybindingId=w;var I=this;E.loadModule(["keybinding",w],function(R){I.$keybindingId==w&&I.keyBinding.setKeyboardHandler(R&&R.handler),x&&x()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(w),x&&x()},C.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},C.prototype.setSession=function(w){if(this.session!=w){this.curOp&&this.endOperation(),this.curOp={};var x=this.session;if(x){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var I=this.session.getSelection();I.off("changeCursor",this.$onCursorChange),I.off("changeSelection",this.$onSelectionChange)}this.session=w,w?(this.$onDocumentChange=this.onDocumentChange.bind(this),w.on("change",this.$onDocumentChange),this.renderer.setSession(w),this.$onChangeMode=this.onChangeMode.bind(this),w.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),w.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),w.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),w.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),w.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),w.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=w.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(w)),this._signal("changeSession",{session:w,oldSession:x}),this.curOp=null,x&&x._signal("changeEditor",{oldEditor:this}),x&&(x.$editor=null),w&&w._signal("changeEditor",{editor:this}),w&&(w.$editor=this),w&&!w.destroyed&&w.bgTokenizer.scheduleStart()}},C.prototype.getSession=function(){return this.session},C.prototype.setValue=function(w,x){return this.session.doc.setValue(w),x?x==1?this.navigateFileEnd():x==-1&&this.navigateFileStart():this.selectAll(),w},C.prototype.getValue=function(){return this.session.getValue()},C.prototype.getSelection=function(){return this.selection},C.prototype.resize=function(w){this.renderer.onResize(w)},C.prototype.setTheme=function(w,x){this.renderer.setTheme(w,x)},C.prototype.getTheme=function(){return this.renderer.getTheme()},C.prototype.setStyle=function(w,x){this.renderer.setStyle(w,x)},C.prototype.unsetStyle=function(w){this.renderer.unsetStyle(w)},C.prototype.getFontSize=function(){return this.getOption("fontSize")||d.computedStyle(this.container).fontSize},C.prototype.setFontSize=function(w){this.setOption("fontSize",w)},C.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var w=this;this.$highlightPending=!0,setTimeout(function(){w.$highlightPending=!1;var x=w.session;if(!(!x||x.destroyed)){x.$bracketHighlight&&(x.$bracketHighlight.markerIds.forEach(function(U){x.removeMarker(U)}),x.$bracketHighlight=null);var I=w.getCursorPosition(),R=w.getKeyboardHandler(),O=R&&R.$getDirectionForHighlight&&R.$getDirectionForHighlight(w),P=x.getMatchingBracketRanges(I,O);if(!P){var B=new b(x,I.row,I.column),V=B.getCurrentToken();if(V&&/\b(?:tag-open|tag-name)/.test(V.type)){var W=x.getMatchingTags(I);W&&(P=[W.openTagName.isEmpty()?W.openTag:W.openTagName,W.closeTagName.isEmpty()?W.closeTag:W.closeTagName])}}if(!P&&x.$mode.getMatching&&(P=x.$mode.getMatching(w.session)),!P){w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide();return}var H="ace_bracket";Array.isArray(P)?P.length==1&&(H="ace_error_bracket"):P=[P],P.length==2&&(f.comparePoints(P[0].end,P[1].start)==0?P=[f.fromPoints(P[0].start,P[1].end)]:f.comparePoints(P[0].start,P[1].end)==0&&(P=[f.fromPoints(P[1].start,P[0].end)])),x.$bracketHighlight={ranges:P,markerIds:P.map(function(U){return x.addMarker(U,H,"text")})},w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide()}},50)}},C.prototype.focus=function(){this.textInput.focus()},C.prototype.isFocused=function(){return this.textInput.isFocused()},C.prototype.blur=function(){this.textInput.blur()},C.prototype.onFocus=function(w){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",w))},C.prototype.onBlur=function(w){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",w))},C.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},C.prototype.onDocumentChange=function(w){var x=this.session.$useWrapMode,I=w.start.row==w.end.row?w.end.row:1/0;this.renderer.updateLines(w.start.row,I,x),this._signal("change",w),this.$cursorChange()},C.prototype.onTokenizerUpdate=function(w){var x=w.data;this.renderer.updateLines(x.first,x.last)},C.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},C.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},C.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},C.prototype.$updateHighlightActiveLine=function(){var w=this.getSession(),x;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(x=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(x=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(x=!1)),w.$highlightLineMarker&&!x)w.removeMarker(w.$highlightLineMarker.id),w.$highlightLineMarker=null;else if(!w.$highlightLineMarker&&x){var I=new f(x.row,x.column,x.row,1/0);I.id=w.addMarker(I,"ace_active-line","screenLine"),w.$highlightLineMarker=I}else x&&(w.$highlightLineMarker.start.row=x.row,w.$highlightLineMarker.end.row=x.row,w.$highlightLineMarker.start.column=x.column,w._signal("changeBackMarker"))},C.prototype.onSelectionChange=function(w){var x=this.session;if(x.$selectionMarker&&x.removeMarker(x.$selectionMarker),x.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var I=this.selection.getRange(),R=this.getSelectionStyle();x.$selectionMarker=x.addMarker(I,"ace_selection",R)}var O=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(O),this._signal("changeSelection")},C.prototype.$getSelectionHighLightRegexp=function(){var w=this.session,x=this.getSelectionRange();if(!(x.isEmpty()||x.isMultiLine())){var I=x.start.column,R=x.end.column,O=w.getLine(x.start.row),P=O.substring(I,R);if(!(P.length>5e3||!/[\w\d]/.test(P))){var B=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:P}),V=O.substring(I-1,R+1);if(B.test(V))return B}}},C.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},C.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},C.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},C.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},C.prototype.onChangeMode=function(w){this.renderer.updateText(),this._emit("changeMode",w)},C.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},C.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},C.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},C.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},C.prototype.getCopyText=function(){var w=this.getSelectedText(),x=this.session.doc.getNewLineCharacter(),I=!1;if(!w&&this.$copyWithEmptySelection){I=!0;for(var R=this.selection.getAllRanges(),O=0;O0||e+t=0&&this.$isCustomWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isCustomWidgetVisible(e+t))return e+t;if(e-t>=0&&this.$isFoldWidgetVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(e+t))return e+t}return null},d.prototype.$findNearestAnnotation=function(e){if(this.$isAnnotationVisible(e))return e;for(var t=0;e-t>0||e+t=0&&this.$isAnnotationVisible(e-t))return e-t;if(e+t<=this.lines.getLength()-1&&this.$isAnnotationVisible(e+t))return e+t}return null},d.prototype.$focusFoldWidget=function(e){if(e!=null){var t=this.$getFoldWidget(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},d.prototype.$focusCustomWidget=function(e){if(e!=null){var t=this.$getCustomWidget(e);t&&(t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus())}},d.prototype.$focusAnnotation=function(e){if(e!=null){var t=this.$getAnnotation(e);t.classList.add(this.editor.renderer.keyboardFocusClassName),t.focus()}},d.prototype.$blurFoldWidget=function(e){var t=this.$getFoldWidget(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},d.prototype.$blurCustomWidget=function(e){var t=this.$getCustomWidget(e);t&&(t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur())},d.prototype.$blurAnnotation=function(e){var t=this.$getAnnotation(e);t.classList.remove(this.editor.renderer.keyboardFocusClassName),t.blur()},d.prototype.$moveFoldWidgetUp=function(){for(var e=this.activeRowIndex;e>0;)if(e--,this.$isFoldWidgetVisible(e)||this.$isCustomWidgetVisible(e)){this.$blurFoldWidget(this.activeRowIndex),this.$blurCustomWidget(this.activeRowIndex),this.activeRowIndex=e,this.$isFoldWidgetVisible(e)?this.$focusFoldWidget(this.activeRowIndex):this.$focusCustomWidget(this.activeRowIndex);return}},d.prototype.$moveFoldWidgetDown=function(){for(var e=this.activeRowIndex;e0;)if(e--,this.$isAnnotationVisible(e)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=e,this.$focusAnnotation(this.activeRowIndex);return}},d.prototype.$moveAnnotationDown=function(){for(var e=this.activeRowIndex;e=C.length&&(C=void 0),{value:C&&C[I++],done:!C}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")},h=i("./lib/oop"),p=i("./lib/dom"),a=i("./lib/lang"),d=i("./lib/useragent"),e=i("./keyboard/textinput").TextInput,t=i("./mouse/mouse_handler").MouseHandler,r=i("./mouse/fold_handler").FoldHandler,l=i("./keyboard/keybinding").KeyBinding,s=i("./edit_session").EditSession,c=i("./search").Search,f=i("./range").Range,m=i("./lib/event_emitter").EventEmitter,y=i("./commands/command_manager").CommandManager,D=i("./commands/default_commands").commands,E=i("./config"),b=i("./token_iterator").TokenIterator,g=i("./keyboard/gutter_handler").GutterKeyboardHandler,S=i("./config").nls,T=i("./clipboard"),k=i("./lib/keys"),_=i("./lib/event"),O=i("./tooltip").HoverTooltip,$=function(){function C(w,x,I){this.id="editor"+ ++C.$uid,this.session,this.$toDestroy=[];var F=w.getContainerElement();this.container=F,this.renderer=w,this.commands=new y(d.isMac?"mac":"win",D),typeof document=="object"&&(this.textInput=new e(w.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new t(this),new r(this)),this.keyBinding=new l(this),this.$search=new c().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(R,B){B._$emitInputEvent.schedule(31)}),this.setSession(x||I&&I.session||new s("")),E.resetOptions(this),I&&this.setOptions(I),E._signal("editor",this)}return C.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0)},C.prototype.startOperation=function(w){this.session.startOperation(w)},C.prototype.endOperation=function(w){this.session.endOperation(w)},C.prototype.onStartOperation=function(w){this.curOp=this.session.curOp,this.curOp.scrollTop=this.renderer.scrollTop,this.prevOp=this.session.prevOp,w||(this.previousCommand=null)},C.prototype.onEndOperation=function(w){if(this.curOp&&this.session){if(w&&w.returnValue===!1){this.curOp=null;return}if(this._signal("beforeEndOperation"),!this.curOp)return;var x=this.curOp.command,I=x&&x.scrollIntoView;if(I){switch(I){case"center-animate":I="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var F=this.selection.getRange(),R=this.renderer.layerConfig;(F.start.row>=R.lastRow||F.end.row<=R.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}I=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.$lastSel=this.session.selection.toJSON(),this.prevOp=this.curOp,this.curOp=null}},C.prototype.$historyTracker=function(w){if(this.$mergeUndoDeltas){var x=this.prevOp,I=this.$mergeableCommands,F=x.command&&w.command.name==x.command.name;if(w.command.name=="insertstring"){var R=w.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),F=F&&this.mergeNextCommand&&(!/\s/.test(R)||/\s/.test(x.args)),this.mergeNextCommand=!0}else F=F&&I.indexOf(w.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(F=!1),F?this.session.mergeUndoDeltas=!0:I.indexOf(w.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},C.prototype.setKeyboardHandler=function(w,x){if(w&&typeof w=="string"&&w!="ace"){this.$keybindingId=w;var I=this;E.loadModule(["keybinding",w],function(F){I.$keybindingId==w&&I.keyBinding.setKeyboardHandler(F&&F.handler),x&&x()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(w),x&&x()},C.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},C.prototype.setSession=function(w){if(this.session!=w){this.curOp&&this.endOperation(),this.curOp={};var x=this.session;if(x){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange),this.session.off("startOperation",this.$onStartOperation),this.session.off("endOperation",this.$onEndOperation);var I=this.session.getSelection();I.off("changeCursor",this.$onCursorChange),I.off("changeSelection",this.$onSelectionChange)}this.session=w,w?(this.$onDocumentChange=this.onDocumentChange.bind(this),w.on("change",this.$onDocumentChange),this.renderer.setSession(w),this.$onChangeMode=this.onChangeMode.bind(this),w.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),w.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),w.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),w.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),w.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),w.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=w.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.$onStartOperation=this.onStartOperation.bind(this),this.session.on("startOperation",this.$onStartOperation),this.$onEndOperation=this.onEndOperation.bind(this),this.session.on("endOperation",this.$onEndOperation),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(w)),this._signal("changeSession",{session:w,oldSession:x}),this.curOp=null,x&&x._signal("changeEditor",{oldEditor:this}),x&&(x.$editor=null),w&&w._signal("changeEditor",{editor:this}),w&&(w.$editor=this),w&&!w.destroyed&&w.bgTokenizer.scheduleStart()}},C.prototype.getSession=function(){return this.session},C.prototype.setValue=function(w,x){return this.session.doc.setValue(w),x?x==1?this.navigateFileEnd():x==-1&&this.navigateFileStart():this.selectAll(),w},C.prototype.getValue=function(){return this.session.getValue()},C.prototype.getSelection=function(){return this.selection},C.prototype.resize=function(w){this.renderer.onResize(w)},C.prototype.setTheme=function(w,x){this.renderer.setTheme(w,x)},C.prototype.getTheme=function(){return this.renderer.getTheme()},C.prototype.setStyle=function(w,x){this.renderer.setStyle(w,x)},C.prototype.unsetStyle=function(w){this.renderer.unsetStyle(w)},C.prototype.getFontSize=function(){return this.getOption("fontSize")||p.computedStyle(this.container).fontSize},C.prototype.setFontSize=function(w){this.setOption("fontSize",w)},C.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var w=this;this.$highlightPending=!0,setTimeout(function(){w.$highlightPending=!1;var x=w.session;if(!(!x||x.destroyed)){x.$bracketHighlight&&(x.$bracketHighlight.markerIds.forEach(function(U){x.removeMarker(U)}),x.$bracketHighlight=null);var I=w.getCursorPosition(),F=w.getKeyboardHandler(),R=F&&F.$getDirectionForHighlight&&F.$getDirectionForHighlight(w),B=x.getMatchingBracketRanges(I,R);if(!B){var P=new b(x,I.row,I.column),V=P.getCurrentToken();if(V&&/\b(?:tag-open|tag-name)/.test(V.type)){var W=x.getMatchingTags(I);W&&(B=[W.openTagName.isEmpty()?W.openTag:W.openTagName,W.closeTagName.isEmpty()?W.closeTag:W.closeTagName])}}if(!B&&x.$mode.getMatching&&(B=x.$mode.getMatching(w.session)),!B){w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide();return}var H="ace_bracket";Array.isArray(B)?B.length==1&&(H="ace_error_bracket"):B=[B],B.length==2&&(f.comparePoints(B[0].end,B[1].start)==0?B=[f.fromPoints(B[0].start,B[1].end)]:f.comparePoints(B[0].start,B[1].end)==0&&(B=[f.fromPoints(B[1].start,B[0].end)])),x.$bracketHighlight={ranges:B,markerIds:B.map(function(U){return x.addMarker(U,H,"text")})},w.getHighlightIndentGuides()&&w.renderer.$textLayer.$highlightIndentGuide()}},50)}},C.prototype.focus=function(){this.textInput.focus()},C.prototype.isFocused=function(){return this.textInput.isFocused()},C.prototype.blur=function(){this.textInput.blur()},C.prototype.onFocus=function(w){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",w))},C.prototype.onBlur=function(w){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",w))},C.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},C.prototype.onDocumentChange=function(w){var x=this.session.$useWrapMode,I=w.start.row==w.end.row?w.end.row:1/0;this.renderer.updateLines(w.start.row,I,x),this._signal("change",w),this.$cursorChange()},C.prototype.onTokenizerUpdate=function(w){var x=w.data;this.renderer.updateLines(x.first,x.last)},C.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},C.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},C.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},C.prototype.$updateHighlightActiveLine=function(){var w=this.getSession(),x;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(x=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(x=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(x=!1)),w.$highlightLineMarker&&!x)w.removeMarker(w.$highlightLineMarker.id),w.$highlightLineMarker=null;else if(!w.$highlightLineMarker&&x){var I=new f(x.row,x.column,x.row,1/0);I.id=w.addMarker(I,"ace_active-line","screenLine"),w.$highlightLineMarker=I}else x&&(w.$highlightLineMarker.start.row=x.row,w.$highlightLineMarker.end.row=x.row,w.$highlightLineMarker.start.column=x.column,w._signal("changeBackMarker"))},C.prototype.onSelectionChange=function(w){var x=this.session;if(x.$selectionMarker&&x.removeMarker(x.$selectionMarker),x.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var I=this.selection.getRange(),F=this.getSelectionStyle();x.$selectionMarker=x.addMarker(I,"ace_selection",F)}var R=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(R),this._signal("changeSelection")},C.prototype.$getSelectionHighLightRegexp=function(){var w=this.session,x=this.getSelectionRange();if(!(x.isEmpty()||x.isMultiLine())){var I=x.start.column,F=x.end.column,R=w.getLine(x.start.row),B=R.substring(I,F);if(!(B.length>5e3||!/[\w\d]/.test(B))){var P=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:B}),V=R.substring(I-1,F+1);if(P.test(V))return P}}},C.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},C.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},C.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},C.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},C.prototype.onChangeMode=function(w){this.renderer.updateText(),this._emit("changeMode",w)},C.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},C.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},C.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},C.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},C.prototype.getCopyText=function(){var w=this.getSelectedText(),x=this.session.doc.getNewLineCharacter(),I=!1;if(!w&&this.$copyWithEmptySelection){I=!0;for(var F=this.selection.getAllRanges(),R=0;RU.search(/\S|$/)){var V=U.substr(O.column).search(/\S|$/);I.doc.removeInLine(O.row,O.column,O.column+V)}}this.clearSelection();var W=O.column,H=I.getState(O.row),U=I.getLine(O.row),G=R.checkOutdent(H,U,w);if(I.insert(O,w),P&&P.selection&&(P.selection.length==2?this.selection.setSelectionRange(new f(O.row,W+P.selection[0],O.row,W+P.selection[1])):this.selection.setSelectionRange(new f(O.row+P.selection[0],P.selection[1],O.row+P.selection[2],P.selection[3]))),this.$enableAutoIndent){if(I.getDocument().isNewLine(w)){var Y=R.getNextLineIndent(H,U.slice(0,O.column),I.getTabString());I.insert({row:O.row+1,column:0},Y)}G&&R.autoOutdent(H,I,O.row)}},C.prototype.autoIndent=function(){for(var w=this.session,x=w.getMode(),I=this.selection.isEmpty()?[new f(0,0,w.doc.getLength()-1,0)]:this.selection.getAllRanges(),R="",O="",P="",B=w.getTabString(),V=0;V0&&(R=w.getState(U-1),O=w.getLine(U-1),P=x.getNextLineIndent(R,O,B));var G=w.getLine(U),Y=x.$getIndent(G);if(P!==Y){if(Y.length>0){var Q=new f(U,0,U,Y.length);w.remove(Q)}P.length>0&&w.insert({row:U,column:0},P)}x.autoOutdent(R,w,U)}},C.prototype.onTextInput=function(w,x){if(!x)return this.keyBinding.onTextInput(w);this.startOperation({command:{name:"insertstring"}});var I=this.applyComposition.bind(this,w,x);this.selection.rangeCount?this.forEachSelection(I):I(),this.endOperation()},C.prototype.applyComposition=function(w,x){if(x.extendLeft||x.extendRight){var I=this.selection.getRange();I.start.column-=x.extendLeft,I.end.column+=x.extendRight,I.start.column<0&&(I.start.row--,I.start.column+=this.session.getLine(I.start.row).length+1),this.selection.setRange(I),!w&&!I.isEmpty()&&this.remove()}if((w||!this.selection.isEmpty())&&this.insert(w,!0),x.restoreStart||x.restoreEnd){var I=this.selection.getRange();I.start.column-=x.restoreStart,I.end.column-=x.restoreEnd,this.selection.setRange(I)}},C.prototype.onCommandKey=function(w,x,I){return this.keyBinding.onCommandKey(w,x,I)},C.prototype.setOverwrite=function(w){this.session.setOverwrite(w)},C.prototype.getOverwrite=function(){return this.session.getOverwrite()},C.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},C.prototype.setScrollSpeed=function(w){this.setOption("scrollSpeed",w)},C.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},C.prototype.setDragDelay=function(w){this.setOption("dragDelay",w)},C.prototype.getDragDelay=function(){return this.getOption("dragDelay")},C.prototype.setSelectionStyle=function(w){this.setOption("selectionStyle",w)},C.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},C.prototype.setHighlightActiveLine=function(w){this.setOption("highlightActiveLine",w)},C.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},C.prototype.setHighlightGutterLine=function(w){this.setOption("highlightGutterLine",w)},C.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},C.prototype.setHighlightSelectedWord=function(w){this.setOption("highlightSelectedWord",w)},C.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},C.prototype.setAnimatedScroll=function(w){this.renderer.setAnimatedScroll(w)},C.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},C.prototype.setShowInvisibles=function(w){this.renderer.setShowInvisibles(w)},C.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},C.prototype.setDisplayIndentGuides=function(w){this.renderer.setDisplayIndentGuides(w)},C.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},C.prototype.setHighlightIndentGuides=function(w){this.renderer.setHighlightIndentGuides(w)},C.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},C.prototype.setShowPrintMargin=function(w){this.renderer.setShowPrintMargin(w)},C.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},C.prototype.setPrintMarginColumn=function(w){this.renderer.setPrintMarginColumn(w)},C.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},C.prototype.setReadOnly=function(w){this.setOption("readOnly",w)},C.prototype.getReadOnly=function(){return this.getOption("readOnly")},C.prototype.setBehavioursEnabled=function(w){this.setOption("behavioursEnabled",w)},C.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},C.prototype.setWrapBehavioursEnabled=function(w){this.setOption("wrapBehavioursEnabled",w)},C.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},C.prototype.setShowFoldWidgets=function(w){this.setOption("showFoldWidgets",w)},C.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},C.prototype.setFadeFoldWidgets=function(w){this.setOption("fadeFoldWidgets",w)},C.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},C.prototype.remove=function(w){this.selection.isEmpty()&&(w=="left"?this.selection.selectLeft():this.selection.selectRight());var x=this.getSelectionRange();if(this.getBehavioursEnabled()){var I=this.session,R=I.getState(x.start.row),O=I.getMode().transformAction(R,"deletion",this,I,x);if(x.end.column===0){var P=I.getTextRange(x);if(P[P.length-1]==` -`){var B=I.getLine(x.end.row);/^\s+$/.test(B)&&(x.end.column=B.length)}}O&&(x=O)}this.session.remove(x),this.clearSelection()},C.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var w=this.getSelectionRange();w.start.column==w.end.column&&w.start.row==w.end.row&&(w.end.column=0,w.end.row++),this.session.remove(w),this.clearSelection()},C.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var w=this.getCursorPosition();this.insert(` -`),this.moveCursorToPosition(w)},C.prototype.setGhostText=function(w,x){this.renderer.setGhostText(w,x)},C.prototype.removeGhostText=function(){this.renderer.removeGhostText()},C.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var w=this.getCursorPosition(),x=w.column;if(x!==0){var I=this.session.getLine(w.row),R,O;xV.toLowerCase()?1:0});for(var O=new f(0,0,0,0),R=w.first;R<=w.last;R++){var P=x.getLine(R);O.start.row=R,O.end.row=R,O.end.column=P.length,x.replace(O,I[R-w.first])}},C.prototype.toggleCommentLines=function(){var w=this.session.getState(this.getCursorPosition().row),x=this.$getSelectedRows();this.session.getMode().toggleCommentLines(w,this.session,x.first,x.last)},C.prototype.toggleBlockComment=function(){var w=this.getCursorPosition(),x=this.session.getState(w.row),I=this.getSelectionRange();this.session.getMode().toggleBlockComment(x,this.session,I,w)},C.prototype.getNumberAt=function(w,x){var I=/[\-]?[0-9]+(?:\.[0-9]+)?/g;I.lastIndex=0;for(var R=this.session.getLine(w);I.lastIndex=x){var P={value:O[0],start:O.index,end:O.index+O[0].length};return P}}return null},C.prototype.modifyNumber=function(w){var x=this.selection.getCursor().row,I=this.selection.getCursor().column,R=new f(x,I-1,x,I),O=this.session.getTextRange(R);if(!isNaN(parseFloat(O))&&isFinite(O)){var P=this.getNumberAt(x,I);if(P){var B=P.value.indexOf(".")>=0?P.start+P.value.indexOf(".")+1:P.end,V=P.start+P.value.length-B,W=parseFloat(P.value);W*=Math.pow(10,V),B!==P.end&&I=B&&P<=V&&(I=ge,W.selection.clearSelection(),W.moveCursorTo(w,B+R),W.selection.selectTo(w,V+R)),B=V});for(var H=this.$toggleWordPairs,U,G=0;G=V&&B<=W&&Y.match(/((?:https?|ftp):\/\/[\S]+)/)){H=Y.replace(/[\s:.,'";}\]]+$/,"");break}V=W}}catch(Q){I={error:Q}}finally{try{G&&!G.done&&(R=U.return)&&R.call(U)}finally{if(I)throw I.error}}return H},C.prototype.openLink=function(){var w=this.selection.getCursor(),x=this.findLinkAt(w.row,w.column);return x&&window.open(x,"_blank"),x!=null},C.prototype.removeLines=function(){var w=this.$getSelectedRows();this.session.removeFullLines(w.first,w.last),this.clearSelection()},C.prototype.duplicateSelection=function(){var w=this.selection,x=this.session,I=w.getRange(),R=w.isBackwards();if(I.isEmpty()){var O=I.start.row;x.duplicateLines(O,O)}else{var P=R?I.start:I.end,B=x.insert(P,x.getTextRange(I));I.start=P,I.end=B,w.setSelectionRange(I,R)}},C.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},C.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},C.prototype.moveText=function(w,x,I){return this.session.moveText(w,x,I)},C.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},C.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},C.prototype.$moveLines=function(w,x){var I,R,O=this.selection;if(!O.inMultiSelectMode||this.inVirtualSelectionMode){var P=O.toOrientedRange();I=this.$getSelectedRows(P),R=this.session.$moveLines(I.first,I.last,x?0:w),x&&w==-1&&(R=0),P.moveBy(R,0),O.fromOrientedRange(P)}else{var B=O.rangeList.ranges;O.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var V=0,W=0,H=B.length,U=0;UQ+1)break;Q=ee.last}for(U--,V=this.session.$moveLines(Y,Q,x?0:w),x&&w==-1&&(G=U+1);G<=U;)B[G].moveBy(V,0),G++;x||(V=0),W+=V}O.fromOrientedRange(O.ranges[0]),O.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},C.prototype.$getSelectedRows=function(w){return w=(w||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(w.start.row),last:this.session.getRowFoldEnd(w.end.row)}},C.prototype.onCompositionStart=function(w){this.renderer.showComposition(w)},C.prototype.onCompositionUpdate=function(w){this.renderer.setCompositionText(w)},C.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},C.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},C.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},C.prototype.isRowVisible=function(w){return w>=this.getFirstVisibleRow()&&w<=this.getLastVisibleRow()},C.prototype.isRowFullyVisible=function(w){return w>=this.renderer.getFirstFullyVisibleRow()&&w<=this.renderer.getLastFullyVisibleRow()},C.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},C.prototype.$moveByPage=function(w,x){var I=this.renderer,R=this.renderer.layerConfig,O=w*Math.floor(R.height/R.lineHeight);x===!0?this.selection.$moveSelection(function(){this.moveCursorBy(O,0)}):x===!1&&(this.selection.moveCursorBy(O,0),this.selection.clearSelection());var P=I.scrollTop;I.scrollBy(0,O*R.lineHeight),x!=null&&I.scrollCursorIntoView(null,.5),I.animateScrolling(P)},C.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},C.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},C.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},C.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},C.prototype.scrollPageDown=function(){this.$moveByPage(1)},C.prototype.scrollPageUp=function(){this.$moveByPage(-1)},C.prototype.scrollToRow=function(w){this.renderer.scrollToRow(w)},C.prototype.scrollToLine=function(w,x,I,R){this.renderer.scrollToLine(w,x,I,R)},C.prototype.centerSelection=function(){var w=this.getSelectionRange(),x={row:Math.floor(w.start.row+(w.end.row-w.start.row)/2),column:Math.floor(w.start.column+(w.end.column-w.start.column)/2)};this.renderer.alignCursor(x,.5)},C.prototype.getCursorPosition=function(){return this.selection.getCursor()},C.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},C.prototype.getSelectionRange=function(){return this.selection.getRange()},C.prototype.selectAll=function(){this.selection.selectAll()},C.prototype.clearSelection=function(){this.selection.clearSelection()},C.prototype.moveCursorTo=function(w,x){this.selection.moveCursorTo(w,x)},C.prototype.moveCursorToPosition=function(w){this.selection.moveCursorToPosition(w)},C.prototype.jumpToMatching=function(w,x){var I=this.getCursorPosition(),R=new b(this.session,I.row,I.column),O=R.getCurrentToken(),P=0;O&&O.type.indexOf("tag-name")!==-1&&(O=R.stepBackward());var B=O||R.stepForward();if(B){var V,W=!1,H={},U=I.column-B.start,G,Y={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(B.value.match(/[{}()\[\]]/g)){for(;U1?H[B.value]++:O.value==="=0;--P)this.$tryReplace(I[P],w)&&R++;return this.selection.setSelectionRange(O),R},C.prototype.$tryReplace=function(w,x){var I=this.session.getTextRange(w);return x=this.$search.replace(I,x),x!==null?(w.end=this.session.replace(w,x),w):null},C.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},C.prototype.find=function(w,x,I){x||(x={}),typeof w=="string"||w instanceof RegExp?x.needle=w:typeof w=="object"&&h.mixin(x,w);var R=this.selection.getRange();x.needle==null&&(w=this.session.getTextRange(R)||this.$search.$options.needle,w||(R=this.session.getWordRange(R.start.row,R.start.column),w=this.session.getTextRange(R)),this.$search.set({needle:w})),this.$search.set(x),x.start||this.$search.set({start:R});var O=this.$search.find(this.session);if(x.preventScroll)return O;if(O)return this.revealRange(O,I),O;x.backwards?R.start=R.end:R.end=R.start,this.selection.setRange(R)},C.prototype.findNext=function(w,x){this.find({skipCurrent:!0,backwards:!1},w,x)},C.prototype.findPrevious=function(w,x){this.find(w,{skipCurrent:!0,backwards:!0},x)},C.prototype.revealRange=function(w,x){this.session.unfold(w),this.selection.setSelectionRange(w);var I=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(w.start,w.end,.5),x!==!1&&this.renderer.animateScrolling(I)},C.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(w){w.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},C.prototype.setAutoScrollEditorIntoView=function(w){if(w){var x,I=this,R=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var O=this.$scrollAnchor;O.style.cssText="position:absolute",this.container.insertBefore(O,this.container.firstChild);var P=this.on("changeSelection",function(){R=!0}),B=this.renderer.on("beforeRender",function(){R&&(x=I.renderer.container.getBoundingClientRect())}),V=this.renderer.on("afterRender",function(){if(R&&x&&(I.isFocused()||I.searchBox&&I.searchBox.isFocused())){var W=I.renderer,H=W.$cursorLayer.$pixelPos,U=W.layerConfig,G=H.top-U.offset;H.top>=0&&G+x.top<0?R=!0:H.topwindow.innerHeight?R=!1:R=null,R!=null&&(O.style.top=G+"px",O.style.left=H.left+"px",O.style.height=U.lineHeight+"px",O.scrollIntoView(R)),R=x=null}});this.setAutoScrollEditorIntoView=function(W){W||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",P),this.renderer.off("afterRender",V),this.renderer.off("beforeRender",B))}}},C.prototype.$resetCursorStyle=function(){var w=this.$cursorStyle||"ace",x=this.renderer.$cursorLayer;x&&(x.setSmoothBlinking(/smooth/.test(w)),x.isBlinking=!this.$readOnly&&w!="wide",d.setCssClass(x.element,"ace_slim-cursors",/slim/.test(w)))},C.prototype.prompt=function(w,x,I){var R=this;E.loadModule("ace/ext/prompt",function(O){O.prompt(R,w,x,I)})},C}();A.$uid=0,A.prototype.curOp=null,A.prototype.prevOp={},A.prototype.$mergeableCommands=["backspace","del","insertstring"],A.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],h.implement(A.prototype,m),E.defineOptions(A.prototype,"editor",{selectionStyle:{set:function(C){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:C})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(C){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(C){var w=this;this.textInput.setReadOnly(C),this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(I){var R=!1;if(I&&I.type=="keydown"){if(R=I&&I.key&&I.key.length==1&&!I.ctrlKey&&!I.metaKey,!R)return}else I&&I.type!=="exec"&&(R=!0);if(R){w.hoverTooltip||(w.hoverTooltip=new F);var O=d.createElement("div");O.textContent=S("editor.tooltip.disable-editing","Editing is disabled"),w.hoverTooltip.isOpen||w.hoverTooltip.showForRange(w,w.getSelectionRange(),O)}else w.hoverTooltip&&w.hoverTooltip.isOpen&&w.hoverTooltip.hide()});var x=this.textInput.getElement();C?(T.addListener(x,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(T.removeListener(x,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("commandUnavailable",this.$readOnlyCallback),this.hoverTooltip&&(this.hoverTooltip.destroy(),this.hoverTooltip=null))},initialValue:!1},copyWithEmptySelection:{set:function(C){this.textInput.setCopyWithEmptySelection(C)},initialValue:!1},cursorStyle:{set:function(C){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(C){this.setAutoScrollEditorIntoView(C)}},keyboardHandler:{set:function(C){this.setKeyboardHandler(C)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(C){this.session.setValue(C)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(C){this.setSession(C)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(C){this.renderer.$gutterLayer.setShowLineNumbers(C),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),C&&this.$relativeLineNumbers?$.attach(this):$.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(C){this.$showLineNumbers&&C?$.attach(this):$.detach(this)}},placeholder:{set:function(C){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var w=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(w&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),d.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!w&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),d.addCssClass(this.container,"ace_hasPlaceholder");var x=d.createElement("div");x.className="ace_placeholder",x.textContent=this.$placeholder||"",this.renderer.placeholderNode=x,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!w&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(C){var w={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(R){R.blur(),R.renderer.scroller.focus()},readOnly:!0},x=function(R){if(R.target==this.renderer.scroller&&R.keyCode===_.enter){R.preventDefault();var O=this.getCursorPosition().row;this.isRowVisible(O)||this.scrollToLine(O,!0,!0),this.focus()}},I;C?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(p.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",S("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",S("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",x.bind(this)),this.commands.addCommand(w),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",S("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",S("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),I||(I=new g(this)),I.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",x.bind(this)),this.commands.removeCommand(w),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),I&&I.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(C){this.$textInputAriaLabel=C},initialValue:""},enableMobileMenu:{set:function(C){this.$enableMobileMenu=C},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var $={getText:function(C,w){return(Math.abs(C.selection.lead.row-w)||w+1+(w<9?"·":""))+""},getWidth:function(C,w,x){return Math.max(w.toString().length,(x.lastRow+1).toString().length,2)*x.characterWidth},update:function(C,w){w.renderer.$loop.schedule(w.renderer.CHANGE_GUTTER)},attach:function(C){C.renderer.$gutterLayer.$renderer=this,C.on("changeSelection",this.update),this.update(null,C)},detach:function(C){C.renderer.$gutterLayer.$renderer==this&&(C.renderer.$gutterLayer.$renderer=null),C.off("changeSelection",this.update),this.update(null,C)}};u.Editor=A}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(i,u,v){var o=i("../lib/dom"),h=function(){function d(s,p){this.element=s,this.canvasHeight=p||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return d.prototype.moveContainer=function(s){o.translate(this.element,0,-(s.firstRowScreen*s.lineHeight%this.canvasHeight)-s.offset*this.$offsetCoefficient)},d.prototype.pageChanged=function(s,p){return Math.floor(s.firstRowScreen*s.lineHeight/this.canvasHeight)!==Math.floor(p.firstRowScreen*p.lineHeight/this.canvasHeight)},d.prototype.computeLineTop=function(s,p,e){var t=p.firstRowScreen*p.lineHeight,r=Math.floor(t/this.canvasHeight),l=e.documentToScreenRow(s,0)*p.lineHeight;return l-r*this.canvasHeight},d.prototype.computeLineHeight=function(s,p,e){return p.lineHeight*e.getRowLineCount(s)},d.prototype.getLength=function(){return this.cells.length},d.prototype.get=function(s){return this.cells[s]},d.prototype.shift=function(){this.$cacheCell(this.cells.shift())},d.prototype.pop=function(){this.$cacheCell(this.cells.pop())},d.prototype.push=function(s){if(Array.isArray(s)){this.cells.push.apply(this.cells,s);for(var p=o.createFragment(this.element),e=0;eD&&(g=y.end.row+1,y=c.getNextFoldLine(g,y),D=y?y.start.row:1/0),g>m){for(;this.$lines.getLength()>b+1;)this.$lines.pop();break}E=this.$lines.get(++b),E?E.row=g:(E=this.$lines.createCell(g,a,this.session,r),this.$lines.push(E)),this.$renderCell(E,a,y,g),g++}this._signal("afterRender"),this.$updateGutterWidth(a)},l.prototype.$updateGutterWidth=function(a){var c=this.session,f=c.gutterRenderer||this.$renderer,m=c.$firstLineNumber,y=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||c.$useWrapMode)&&(y=c.getLength()+m-1);var D=f?f.getWidth(c,y,a):y.toString().length*a.characterWidth,E=this.$padding||this.$computePadding();D+=E.left+E.right,D!==this.gutterWidth&&!isNaN(D)&&(this.gutterWidth=D,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",D))},l.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var a=this.session.selection.getCursor();this.$cursorRow!==a.row&&(this.$cursorRow=a.row)}},l.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var a=this.session.selection.cursor.row;if(this.$cursorRow=a,!(this.$cursorCell&&this.$cursorCell.row==a)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var c=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(m.row>this.$cursorRow){var y=this.session.getFoldLine(this.$cursorRow);if(f>0&&y&&y.start.row==c[f-1].row)m=c[f-1];else break}m.element.className="ace_gutter-active-line "+m.element.className,this.$cursorCell=m;break}}}}},l.prototype.scrollLines=function(a){var c=this.config;if(this.config=a,this.$updateCursorRow(),this.$lines.pageChanged(c,a))return this.update(a);this.$lines.moveContainer(a);var f=Math.min(a.lastRow+a.gutterOffset,this.session.getLength()-1),m=this.oldLastRow;if(this.oldLastRow=f,!c||m0;y--)this.$lines.shift();if(m>f)for(var y=this.session.getFoldedRowCount(f+1,m);y>0;y--)this.$lines.pop();a.firstRowm&&this.$lines.push(this.$renderLines(a,m+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(a)},l.prototype.$renderLines=function(a,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,a,this.session,r);this.$renderCell(b,a,D,y),m.push(b),y++}return m},l.prototype.$renderCell=function(a,c,f,m){var y=a.element,D=this.session,E=y.childNodes[0],b=y.childNodes[1],g=y.childNodes[2],S=y.childNodes[3],M=g.firstChild,_=D.$firstLineNumber,T=D.$breakpoints,F=D.$decorations,A=D.gutterRenderer||this.$renderer,$=this.$showFoldWidgets&&D.foldWidgets,C=f?f.start.row:Number.MAX_VALUE,w=c.lineHeight+"px",x=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",R=(A?A.getText(D,m):m+_).toString();if(this.$highlightGutterLine&&(m==this.$cursorRow||f&&m=C&&this.$cursorRow<=f.end.row)&&(x+="ace_gutter-active-line ",this.$cursorCell!=a&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=a)),T[m]&&(x+=T[m]),F[m]&&(x+=F[m]),this.$annotations[m]&&m!==C&&(x+=this.$annotations[m].className),$){var O=$[m];O==null&&(O=$[m]=D.getFoldWidget(m))}if(O){var P="ace_fold-widget ace_"+O,B=O=="start"&&m==C&&mf.right-c.right)return"foldWidgets"},l}();t.prototype.$fixedWidth=!1,t.prototype.$highlightGutterLine=!0,t.prototype.$renderer="",t.prototype.$showLineNumbers=!0,t.prototype.$showFoldWidgets=!0,h.implement(t.prototype,s);function r(l){var a=document.createTextNode("");l.appendChild(a);var c=o.createElement("span");l.appendChild(c);var f=o.createElement("span");l.appendChild(f);var m=o.createElement("span");return f.appendChild(m),l}u.Gutter=t}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(i,u,v){var o=i("../range").Range,h=i("../lib/dom"),d=function(){function p(e){this.element=h.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return p.prototype.setPadding=function(e){this.$padding=e},p.prototype.setSession=function(e){this.session=e},p.prototype.setMarkers=function(e){this.markers=e},p.prototype.elt=function(e,t){var r=this.i!=-1&&this.element.childNodes[this.i];r?this.i++:(r=document.createElement("div"),this.element.appendChild(r),this.i=-1),r.style.cssText=t,r.className=e},p.prototype.update=function(e){if(e){this.config=e,this.i=0;var t;for(var r in this.markers){var l=this.markers[r];if(!l.range){l.update(t,this,this.session,e);continue}var a=l.range.clipRows(e.firstRow,e.lastRow);if(!a.isEmpty())if(a=a.toScreenRange(this.session),l.renderer){var c=this.$getTop(a.start.row,e),f=this.$padding+a.start.column*e.characterWidth;l.renderer(t,a,f,c,e)}else l.type=="fullLine"?this.drawFullLineMarker(t,a,l.clazz,e):l.type=="screenLine"?this.drawScreenLineMarker(t,a,l.clazz,e):a.isMultiLine()?l.type=="text"?this.drawTextMarker(t,a,l.clazz,e):this.drawMultiLineMarker(t,a,l.clazz,e):this.drawSingleLineMarker(t,a,l.clazz+" ace_start ace_br15",e)}if(this.i!=-1)for(;this.ib,y==m),l,y==m?0:1,a)},p.prototype.drawMultiLineMarker=function(e,t,r,l,a){var c=this.$padding,f=l.lineHeight,m=this.$getTop(t.start.row,l),y=c+t.start.column*l.characterWidth;if(a=a||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var D=t.clone();D.end.row=D.start.row,D.end.column=this.session.getLine(D.start.row).length,this.drawBidiSingleLineMarker(e,D,r+" ace_br1 ace_start",l,null,a)}else this.elt(r+" ace_br1 ace_start","height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+y+"px;"+(a||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var D=t.clone();D.start.row=D.end.row,D.start.column=0,this.drawBidiSingleLineMarker(e,D,r+" ace_br12",l,null,a)}else{m=this.$getTop(t.end.row,l);var E=t.end.column*l.characterWidth;this.elt(r+" ace_br12","height:"+f+"px;width:"+E+"px;top:"+m+"px;left:"+c+"px;"+(a||""))}if(f=(t.end.row-t.start.row-1)*l.lineHeight,!(f<=0)){m=this.$getTop(t.start.row+1,l);var b=(t.start.column?1:0)|(t.end.column?0:8);this.elt(r+(b?" ace_br"+b:""),"height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+c+"px;"+(a||""))}},p.prototype.drawSingleLineMarker=function(e,t,r,l,a,c){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,r,l,a,c);var f=l.lineHeight,m=(t.end.column+(a||0)-t.start.column)*l.characterWidth,y=this.$getTop(t.start.row,l),D=this.$padding+t.start.column*l.characterWidth;this.elt(r,"height:"+f+"px;width:"+m+"px;top:"+y+"px;left:"+D+"px;"+(c||""))},p.prototype.drawBidiSingleLineMarker=function(e,t,r,l,a,c){var f=l.lineHeight,m=this.$getTop(t.start.row,l),y=this.$padding,D=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);D.forEach(function(E){this.elt(r,"height:"+f+"px;width:"+(E.width+(a||0))+"px;top:"+m+"px;left:"+(y+E.left)+"px;"+(c||""))},this)},p.prototype.drawFullLineMarker=function(e,t,r,l,a){var c=this.$getTop(t.start.row,l),f=l.lineHeight;t.start.row!=t.end.row&&(f+=this.$getTop(t.end.row,l)-c),this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(a||""))},p.prototype.drawScreenLineMarker=function(e,t,r,l,a){var c=this.$getTop(t.start.row,l),f=l.lineHeight;this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(a||""))},p}();d.prototype.$padding=0;function s(p,e,t,r){return(p?1:0)|(e?2:0)|(t?4:0)|(r?8:0)}u.Marker=d}),ace.define("ace/layer/text_util",["require","exports","module"],function(i,u,v){var o=new Set(["text","rparen","lparen"]);u.isTextToken=function(h){return o.has(h)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/dom"),d=i("../lib/lang"),s=i("./lines").Lines,p=i("../lib/event_emitter").EventEmitter,e=i("../config").nls,t=i("./text_util").isTextToken,r=function(){function l(a){this.dom=h,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",a.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)}return l.prototype.$updateEolChar=function(){var a=this.session.doc,c=a.getNewLineCharacter()==` -`&&a.getNewLineMode()!="windows",f=c?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},l.prototype.setPadding=function(a){this.$padding=a,this.element.style.margin="0 "+a+"px"},l.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},l.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},l.prototype.$setFontMetrics=function(a){this.$fontMetrics=a,this.$fontMetrics.on("changeCharacterSize",function(c){this._signal("changeCharacterSize",c)}.bind(this)),this.$pollSizeChanges()},l.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},l.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},l.prototype.setSession=function(a){this.session=a,a&&this.$computeTabString()},l.prototype.setShowInvisibles=function(a){return this.showInvisibles==a?!1:(this.showInvisibles=a,typeof a=="string"?(this.showSpaces=/tab/i.test(a),this.showTabs=/space/i.test(a),this.showEOL=/eol/i.test(a)):this.showSpaces=this.showTabs=this.showEOL=a,this.$computeTabString(),!0)},l.prototype.setDisplayIndentGuides=function(a){return this.displayIndentGuides==a?!1:(this.displayIndentGuides=a,this.$computeTabString(),!0)},l.prototype.setHighlightIndentGuides=function(a){return this.$highlightIndentGuides===a?!1:(this.$highlightIndentGuides=a,a)},l.prototype.$computeTabString=function(){var a=this.session.getTabSize();this.tabSize=a;for(var c=this.$tabStrings=[0],f=1;fM&&(g=S.end.row+1,S=this.session.getNextFoldLine(g,S),M=S?S.start.row:1/0),!(g>y);){var _=D[E++];if(_){this.dom.removeChildren(_),this.$renderLine(_,g,g==M?S:!1),b&&(_.style.top=this.$lines.computeLineTop(g,a,this.session)+"px");var T=a.lineHeight*this.session.getRowLength(g)+"px";_.style.height!=T&&(b=!0,_.style.height=T)}g++}if(b)for(;E0;y--)this.$lines.shift();if(c.lastRow>a.lastRow)for(var y=this.session.getFoldedRowCount(a.lastRow+1,c.lastRow);y>0;y--)this.$lines.pop();a.firstRowc.lastRow&&this.$lines.push(this.$renderLinesFragment(a,c.lastRow+1,a.lastRow)),this.$highlightIndentGuide()},l.prototype.$renderLinesFragment=function(a,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,a,this.session),g=b.element;this.dom.removeChildren(g),h.setStyle(g.style,"height",this.$lines.computeLineHeight(y,a,this.session)+"px"),h.setStyle(g.style,"top",this.$lines.computeLineTop(y,a,this.session)+"px"),this.$renderLine(g,y,y==E?D:!1),this.$useLineGroups()?g.className="ace_line_group":g.className="ace_line",m.push(b),y++}return m},l.prototype.update=function(a){this.$lines.moveContainer(a),this.config=a;for(var c=a.firstRow,f=a.lastRow,m=this.$lines;m.getLength();)m.pop();m.push(this.$renderLinesFragment(a,c,f))},l.prototype.$renderToken=function(a,c,f,m){for(var y=this,D=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,E=this.dom.createFragment(this.element),b,g=0;b=D.exec(m);){var S=b[1],M=b[2],_=b[3],T=b[4],F=b[5];if(!(!y.showSpaces&&M)){var A=g!=b.index?m.slice(g,b.index):"";if(g=b.index+b[0].length,A&&E.appendChild(this.dom.createTextNode(A,this.element)),S){var $=y.session.getScreenTabSize(c+b.index);E.appendChild(y.$tabStrings[$].cloneNode(!0)),c+=$-1}else if(M)if(y.showSpaces){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space",C.textContent=d.stringRepeat(y.SPACE_CHAR,M.length),E.appendChild(C)}else E.appendChild(this.dom.createTextNode(M,this.element));else if(_){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space ace_invalid",C.textContent=d.stringRepeat(y.SPACE_CHAR,_.length),E.appendChild(C)}else if(T){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className=y.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",C.textContent=y.showSpaces?y.SPACE_CHAR:T,E.appendChild(C)}else if(F){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className="ace_cjk",C.textContent=F,E.appendChild(C)}}}if(E.appendChild(this.dom.createTextNode(g?m.slice(g):m,this.element)),t(f.type))a.appendChild(E);else{var w="ace_"+f.type.replace(/\./g," ace_"),C=this.dom.createElement("span");f.type=="fold"&&(C.style.width=f.value.length*this.config.characterWidth+"px",C.setAttribute("title",e("inline-fold.closed.title","Unfold code"))),C.className=w,C.appendChild(E),a.appendChild(C)}return c+m.length},l.prototype.renderIndentGuide=function(a,c,f){var m=c.search(this.$indentGuideRe);if(m<=0||m>=f)return c;if(c[0]==" "){m-=m%this.tabSize;for(var y=m/this.tabSize,D=0;DD[E].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&a[c.row]!==""&&c.column===a[c.row].length){this.$highlightIndentGuideMarker.dir=1;for(var E=c.row+1;E0)m=a.element.childNodes[0];else return;var y=m.childNodes;if(y){var D=y[c-1];D&&D.classList&&D.classList.contains("ace_indent-guide")&&D.classList.add("ace_indent-guide-active")}}},l.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var a=this.$lines.cells;this.$clearActiveIndentGuide();var c=this.$highlightIndentGuideMarker.indentLevel;if(c!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var f=0;f=this.$highlightIndentGuideMarker.start+1){if(m.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(m,c)}}else for(var f=a.length-1;f>=0;f--){var m=a[f];if(this.$highlightIndentGuideMarker.end&&m.row=D;)E=this.$renderToken(b,E,S,M.substring(0,D-m)),M=M.substring(D-m),m=D,b=this.$createLineElement(),a.appendChild(b),b.appendChild(this.dom.createTextNode(d.stringRepeat(" ",f.indent),this.element)),y++,E=0,D=f[y]||Number.MAX_VALUE;M.length!=0&&(m+=M.length,E=this.$renderToken(b,E,S,M))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(b,E,null,"",!0)},l.prototype.$renderSimpleLine=function(a,c){for(var f=0,m=0;mthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(a,f,y,D);f=this.$renderToken(a,f,y,D)}}},l.prototype.$renderOverflowMessage=function(a,c,f,m,y){f&&this.$renderToken(a,c,f,m.slice(0,this.MAX_LINE_LENGTH-c));var D=this.dom.createElement("span");D.className="ace_inline_button ace_keyword ace_toggle_wrap",D.textContent=y?"":"",a.appendChild(D)},l.prototype.$renderLine=function(a,c,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(c)),f)var m=this.$getFoldLineTokens(c,f);else var m=this.session.getTokens(c);var y=a;if(m.length){var D=this.session.getRowSplitData(c);if(D&&D.length){this.$renderWrappedLine(a,m,D);var y=a.lastChild}else{var y=a;this.$useLineGroups()&&(y=this.$createLineElement(),a.appendChild(y)),this.$renderSimpleLine(y,m)}}else this.$useLineGroups()&&(y=this.$createLineElement(),a.appendChild(y));if(this.showEOL&&y){f&&(c=f.end.row);var E=this.dom.createElement("span");E.className="ace_invisible ace_invisible_eol",E.textContent=c==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,y.appendChild(E)}},l.prototype.$getFoldLineTokens=function(a,c){var f=this.session,m=[];function y(E,b,g){for(var S=0,M=0;M+E[S].value.lengthg-b&&(_=_.substring(0,g-b)),m.push({type:E[S].type,value:_}),M=b+_.length,S+=1}for(;Mg?m.push({type:E[S].type,value:_.substring(0,g-M)}):m.push(E[S]),M+=_.length,S+=1}}var D=f.getTokens(a);return c.walk(function(E,b,g,S,M){E!=null?m.push({type:"fold",value:E}):(M&&(D=f.getTokens(b)),D.length&&y(D,S,g))},c.end.row,this.session.getLine(c.end.row).length),m},l.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},l}();r.prototype.EOF_CHAR="¶",r.prototype.EOL_CHAR_LF="¬",r.prototype.EOL_CHAR_CRLF="¤",r.prototype.EOL_CHAR=r.prototype.EOL_CHAR_LF,r.prototype.TAB_CHAR="—",r.prototype.SPACE_CHAR="·",r.prototype.$padding=0,r.prototype.MAX_LINE_LENGTH=1e4,r.prototype.showInvisibles=!1,r.prototype.showSpaces=!1,r.prototype.showTabs=!1,r.prototype.showEOL=!1,r.prototype.displayIndentGuides=!0,r.prototype.$highlightIndentGuides=!0,r.prototype.$tabStrings=[],r.prototype.destroy={},r.prototype.onChangeTabSize=r.prototype.$computeTabString,o.implement(r.prototype,p),u.Text=r}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(i,u,v){var o=i("../lib/dom"),h=function(){function d(s){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",s.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return d.prototype.$updateOpacity=function(s){for(var p=this.cursors,e=p.length;e--;)o.setStyle(p[e].style,"opacity",s?"":"0")},d.prototype.$startCssAnimation=function(){for(var s=this.cursors,p=s.length;p--;)s[p].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},d.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},d.prototype.setPadding=function(s){this.$padding=s},d.prototype.setSession=function(s){this.session=s},d.prototype.setBlinking=function(s){s!=this.isBlinking&&(this.isBlinking=s,this.restartTimer())},d.prototype.setBlinkInterval=function(s){s!=this.blinkInterval&&(this.blinkInterval=s,this.restartTimer())},d.prototype.setSmoothBlinking=function(s){s!=this.smoothBlinking&&(this.smoothBlinking=s,o.setCssClass(this.element,"ace_smooth-blinking",s),this.$updateCursors(!0),this.restartTimer())},d.prototype.addCursor=function(){var s=o.createElement("div");return s.className="ace_cursor",this.element.appendChild(s),this.cursors.push(s),s},d.prototype.removeCursor=function(){if(this.cursors.length>1){var s=this.cursors.pop();return s.parentNode.removeChild(s),s}},d.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},d.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},d.prototype.restartTimer=function(){var s=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),s(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var p=function(){this.timeoutId=setTimeout(function(){s(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){s(!0),p()},this.blinkInterval),p()}},d.prototype.getPixelPosition=function(s,p){if(!this.config||!this.session)return{left:0,top:0};s||(s=this.session.selection.getCursor());var e=this.session.documentToScreenPosition(s),t=this.$padding+(this.session.$bidiHandler.isBidiRow(e.row,s.row)?this.session.$bidiHandler.getPosLeft(e.column):e.column*this.config.characterWidth),r=(e.row-(p?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:t,top:r}},d.prototype.isCursorInView=function(s,p){return s.top>=0&&s.tops.height+s.offset||l.top<0)&&e>1)){var a=this.cursors[t++]||this.addCursor(),c=a.style;this.drawCursor?this.drawCursor(a,l,s,p[e],this.session):this.isCursorInView(l,s)?(o.setStyle(c,"display","block"),o.translate(a,l.left,l.top),o.setStyle(c,"width",Math.round(s.characterWidth)+"px"),o.setStyle(c,"height",s.lineHeight+"px")):o.setStyle(c,"display","none")}}for(;this.cursors.length>t;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=l,this.restartTimer()},d.prototype.$setOverwrite=function(s){s!=this.overwrite&&(this.overwrite=s,s?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},d.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},d}();h.prototype.$padding=0,h.prototype.drawCursor=null,u.Cursor=h}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var a=function(c,f){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,y){m.__proto__=y}||function(m,y){for(var D in y)Object.prototype.hasOwnProperty.call(y,D)&&(m[D]=y[D])},a(c,f)};return function(c,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");a(c,f);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)}}(),h=i("./lib/oop"),d=i("./lib/dom"),s=i("./lib/event"),p=i("./lib/event_emitter").EventEmitter,e=32768,t=function(){function a(c,f){this.element=d.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=d.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),c.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)}return a.prototype.setVisible=function(c){this.element.style.display=c?"":"none",this.isVisible=c,this.coeff=1},a}();h.implement(t.prototype,p);var r=function(a){o(c,a);function c(f,m){var y=a.call(this,f,"-v")||this;return y.scrollTop=0,y.scrollHeight=0,m.$scrollbarWidth=y.width=d.scrollbarWidth(f.ownerDocument),y.inner.style.width=y.element.style.width=(y.width||15)+5+"px",y.$minWidth=0,y}return c.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},c.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},c.prototype.setHeight=function(f){this.element.style.height=f+"px"},c.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>e?(this.coeff=e/f,f=e):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},c.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},c}(t);r.prototype.setInnerHeight=r.prototype.setScrollHeight;var l=function(a){o(c,a);function c(f,m){var y=a.call(this,f,"-h")||this;return y.scrollLeft=0,y.height=m.$scrollbarWidth,y.inner.style.height=y.element.style.height=(y.height||15)+5+"px",y}return c.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},c.prototype.getHeight=function(){return this.isVisible?this.height:0},c.prototype.setWidth=function(f){this.element.style.width=f+"px"},c.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},c}(t);u.ScrollBar=r,u.ScrollBarV=r,u.ScrollBarH=l,u.VScrollBar=r,u.HScrollBar=l}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var l=function(a,c){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,m){f.__proto__=m}||function(f,m){for(var y in m)Object.prototype.hasOwnProperty.call(m,y)&&(f[y]=m[y])},l(a,c)};return function(a,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");l(a,c);function f(){this.constructor=a}a.prototype=c===null?Object.create(c):(f.prototype=c.prototype,new f)}}(),h=i("./lib/oop"),d=i("./lib/dom"),s=i("./lib/event"),p=i("./lib/event_emitter").EventEmitter;d.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ +`){var U=I.getLine(R.row);if(R.column>U.search(/\S|$/)){var V=U.substr(R.column).search(/\S|$/);I.doc.removeInLine(R.row,R.column,R.column+V)}}this.clearSelection();var W=R.column,H=I.getState(R.row),U=I.getLine(R.row),G=F.checkOutdent(H,U,w);if(I.insert(R,w),B&&B.selection&&(B.selection.length==2?this.selection.setSelectionRange(new f(R.row,W+B.selection[0],R.row,W+B.selection[1])):this.selection.setSelectionRange(new f(R.row+B.selection[0],B.selection[1],R.row+B.selection[2],B.selection[3]))),this.$enableAutoIndent){if(I.getDocument().isNewLine(w)){var Y=F.getNextLineIndent(H,U.slice(0,R.column),I.getTabString());I.insert({row:R.row+1,column:0},Y)}G&&F.autoOutdent(H,I,R.row)}},C.prototype.autoIndent=function(){for(var w=this.session,x=w.getMode(),I=this.selection.isEmpty()?[new f(0,0,w.doc.getLength()-1,0)]:this.selection.getAllRanges(),F="",R="",B="",P=w.getTabString(),V=0;V0&&(F=w.getState(U-1),R=w.getLine(U-1),B=x.getNextLineIndent(F,R,P));var G=w.getLine(U),Y=x.$getIndent(G);if(B!==Y){if(Y.length>0){var Q=new f(U,0,U,Y.length);w.remove(Q)}B.length>0&&w.insert({row:U,column:0},B)}x.autoOutdent(F,w,U)}},C.prototype.onTextInput=function(w,x){if(!x)return this.keyBinding.onTextInput(w);this.startOperation({command:{name:"insertstring"}});var I=this.applyComposition.bind(this,w,x);this.selection.rangeCount?this.forEachSelection(I):I(),this.endOperation()},C.prototype.applyComposition=function(w,x){if(x.extendLeft||x.extendRight){var I=this.selection.getRange();I.start.column-=x.extendLeft,I.end.column+=x.extendRight,I.start.column<0&&(I.start.row--,I.start.column+=this.session.getLine(I.start.row).length+1),this.selection.setRange(I),!w&&!I.isEmpty()&&this.remove()}if((w||!this.selection.isEmpty())&&this.insert(w,!0),x.restoreStart||x.restoreEnd){var I=this.selection.getRange();I.start.column-=x.restoreStart,I.end.column-=x.restoreEnd,this.selection.setRange(I)}},C.prototype.onCommandKey=function(w,x,I){return this.keyBinding.onCommandKey(w,x,I)},C.prototype.setOverwrite=function(w){this.session.setOverwrite(w)},C.prototype.getOverwrite=function(){return this.session.getOverwrite()},C.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},C.prototype.setScrollSpeed=function(w){this.setOption("scrollSpeed",w)},C.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},C.prototype.setDragDelay=function(w){this.setOption("dragDelay",w)},C.prototype.getDragDelay=function(){return this.getOption("dragDelay")},C.prototype.setSelectionStyle=function(w){this.setOption("selectionStyle",w)},C.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},C.prototype.setHighlightActiveLine=function(w){this.setOption("highlightActiveLine",w)},C.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},C.prototype.setHighlightGutterLine=function(w){this.setOption("highlightGutterLine",w)},C.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},C.prototype.setHighlightSelectedWord=function(w){this.setOption("highlightSelectedWord",w)},C.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},C.prototype.setAnimatedScroll=function(w){this.renderer.setAnimatedScroll(w)},C.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},C.prototype.setShowInvisibles=function(w){this.renderer.setShowInvisibles(w)},C.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},C.prototype.setDisplayIndentGuides=function(w){this.renderer.setDisplayIndentGuides(w)},C.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},C.prototype.setHighlightIndentGuides=function(w){this.renderer.setHighlightIndentGuides(w)},C.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},C.prototype.setShowPrintMargin=function(w){this.renderer.setShowPrintMargin(w)},C.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},C.prototype.setPrintMarginColumn=function(w){this.renderer.setPrintMarginColumn(w)},C.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},C.prototype.setReadOnly=function(w){this.setOption("readOnly",w)},C.prototype.getReadOnly=function(){return this.getOption("readOnly")},C.prototype.setBehavioursEnabled=function(w){this.setOption("behavioursEnabled",w)},C.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},C.prototype.setWrapBehavioursEnabled=function(w){this.setOption("wrapBehavioursEnabled",w)},C.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},C.prototype.setShowFoldWidgets=function(w){this.setOption("showFoldWidgets",w)},C.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},C.prototype.setFadeFoldWidgets=function(w){this.setOption("fadeFoldWidgets",w)},C.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},C.prototype.remove=function(w){this.selection.isEmpty()&&(w=="left"?this.selection.selectLeft():this.selection.selectRight());var x=this.getSelectionRange();if(this.getBehavioursEnabled()){var I=this.session,F=I.getState(x.start.row),R=I.getMode().transformAction(F,"deletion",this,I,x);if(x.end.column===0){var B=I.getTextRange(x);if(B[B.length-1]==` +`){var P=I.getLine(x.end.row);/^\s+$/.test(P)&&(x.end.column=P.length)}}R&&(x=R)}this.session.remove(x),this.clearSelection()},C.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},C.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var w=this.getSelectionRange();w.start.column==w.end.column&&w.start.row==w.end.row&&(w.end.column=0,w.end.row++),this.session.remove(w),this.clearSelection()},C.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var w=this.getCursorPosition();this.insert(` +`),this.moveCursorToPosition(w)},C.prototype.setGhostText=function(w,x){this.renderer.setGhostText(w,x)},C.prototype.removeGhostText=function(){this.renderer.removeGhostText()},C.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var w=this.getCursorPosition(),x=w.column;if(x!==0){var I=this.session.getLine(w.row),F,R;xV.toLowerCase()?1:0});for(var R=new f(0,0,0,0),F=w.first;F<=w.last;F++){var B=x.getLine(F);R.start.row=F,R.end.row=F,R.end.column=B.length,x.replace(R,I[F-w.first])}},C.prototype.toggleCommentLines=function(){var w=this.session.getState(this.getCursorPosition().row),x=this.$getSelectedRows();this.session.getMode().toggleCommentLines(w,this.session,x.first,x.last)},C.prototype.toggleBlockComment=function(){var w=this.getCursorPosition(),x=this.session.getState(w.row),I=this.getSelectionRange();this.session.getMode().toggleBlockComment(x,this.session,I,w)},C.prototype.getNumberAt=function(w,x){var I=/[\-]?[0-9]+(?:\.[0-9]+)?/g;I.lastIndex=0;for(var F=this.session.getLine(w);I.lastIndex=x){var B={value:R[0],start:R.index,end:R.index+R[0].length};return B}}return null},C.prototype.modifyNumber=function(w){var x=this.selection.getCursor().row,I=this.selection.getCursor().column,F=new f(x,I-1,x,I),R=this.session.getTextRange(F);if(!isNaN(parseFloat(R))&&isFinite(R)){var B=this.getNumberAt(x,I);if(B){var P=B.value.indexOf(".")>=0?B.start+B.value.indexOf(".")+1:B.end,V=B.start+B.value.length-P,W=parseFloat(B.value);W*=Math.pow(10,V),P!==B.end&&I=P&&B<=V&&(I=ge,W.selection.clearSelection(),W.moveCursorTo(w,P+F),W.selection.selectTo(w,V+F)),P=V});for(var H=this.$toggleWordPairs,U,G=0;G=V&&P<=W&&Y.match(/((?:https?|ftp):\/\/[\S]+)/)){H=Y.replace(/[\s:.,'";}\]]+$/,"");break}V=W}}catch(Q){I={error:Q}}finally{try{G&&!G.done&&(F=U.return)&&F.call(U)}finally{if(I)throw I.error}}return H},C.prototype.openLink=function(){var w=this.selection.getCursor(),x=this.findLinkAt(w.row,w.column);return x&&window.open(x,"_blank"),x!=null},C.prototype.removeLines=function(){var w=this.$getSelectedRows();this.session.removeFullLines(w.first,w.last),this.clearSelection()},C.prototype.duplicateSelection=function(){var w=this.selection,x=this.session,I=w.getRange(),F=w.isBackwards();if(I.isEmpty()){var R=I.start.row;x.duplicateLines(R,R)}else{var B=F?I.start:I.end,P=x.insert(B,x.getTextRange(I));I.start=B,I.end=P,w.setSelectionRange(I,F)}},C.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},C.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},C.prototype.moveText=function(w,x,I){return this.session.moveText(w,x,I)},C.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},C.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},C.prototype.$moveLines=function(w,x){var I,F,R=this.selection;if(!R.inMultiSelectMode||this.inVirtualSelectionMode){var B=R.toOrientedRange();I=this.$getSelectedRows(B),F=this.session.$moveLines(I.first,I.last,x?0:w),x&&w==-1&&(F=0),B.moveBy(F,0),R.fromOrientedRange(B)}else{var P=R.rangeList.ranges;R.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var V=0,W=0,H=P.length,U=0;UQ+1)break;Q=ee.last}for(U--,V=this.session.$moveLines(Y,Q,x?0:w),x&&w==-1&&(G=U+1);G<=U;)P[G].moveBy(V,0),G++;x||(V=0),W+=V}R.fromOrientedRange(R.ranges[0]),R.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},C.prototype.$getSelectedRows=function(w){return w=(w||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(w.start.row),last:this.session.getRowFoldEnd(w.end.row)}},C.prototype.onCompositionStart=function(w){this.renderer.showComposition(w)},C.prototype.onCompositionUpdate=function(w){this.renderer.setCompositionText(w)},C.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},C.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},C.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},C.prototype.isRowVisible=function(w){return w>=this.getFirstVisibleRow()&&w<=this.getLastVisibleRow()},C.prototype.isRowFullyVisible=function(w){return w>=this.renderer.getFirstFullyVisibleRow()&&w<=this.renderer.getLastFullyVisibleRow()},C.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},C.prototype.$moveByPage=function(w,x){var I=this.renderer,F=this.renderer.layerConfig,R=w*Math.floor(F.height/F.lineHeight);x===!0?this.selection.$moveSelection(function(){this.moveCursorBy(R,0)}):x===!1&&(this.selection.moveCursorBy(R,0),this.selection.clearSelection());var B=I.scrollTop;I.scrollBy(0,R*F.lineHeight),x!=null&&I.scrollCursorIntoView(null,.5),I.animateScrolling(B)},C.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},C.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},C.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},C.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},C.prototype.scrollPageDown=function(){this.$moveByPage(1)},C.prototype.scrollPageUp=function(){this.$moveByPage(-1)},C.prototype.scrollToRow=function(w){this.renderer.scrollToRow(w)},C.prototype.scrollToLine=function(w,x,I,F){this.renderer.scrollToLine(w,x,I,F)},C.prototype.centerSelection=function(){var w=this.getSelectionRange(),x={row:Math.floor(w.start.row+(w.end.row-w.start.row)/2),column:Math.floor(w.start.column+(w.end.column-w.start.column)/2)};this.renderer.alignCursor(x,.5)},C.prototype.getCursorPosition=function(){return this.selection.getCursor()},C.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},C.prototype.getSelectionRange=function(){return this.selection.getRange()},C.prototype.selectAll=function(){this.selection.selectAll()},C.prototype.clearSelection=function(){this.selection.clearSelection()},C.prototype.moveCursorTo=function(w,x){this.selection.moveCursorTo(w,x)},C.prototype.moveCursorToPosition=function(w){this.selection.moveCursorToPosition(w)},C.prototype.jumpToMatching=function(w,x){var I=this.getCursorPosition(),F=new b(this.session,I.row,I.column),R=F.getCurrentToken(),B=0;R&&R.type.indexOf("tag-name")!==-1&&(R=F.stepBackward());var P=R||F.stepForward();if(P){var V,W=!1,H={},U=I.column-P.start,G,Y={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(P.value.match(/[{}()\[\]]/g)){for(;U1?H[P.value]++:R.value==="=0;--B)this.$tryReplace(I[B],w)&&F++;return this.selection.setSelectionRange(R),F},C.prototype.$tryReplace=function(w,x){var I=this.session.getTextRange(w);return x=this.$search.replace(I,x),x!==null?(w.end=this.session.replace(w,x),w):null},C.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},C.prototype.find=function(w,x,I){x||(x={}),typeof w=="string"||w instanceof RegExp?x.needle=w:typeof w=="object"&&h.mixin(x,w);var F=this.selection.getRange();x.needle==null&&(w=this.session.getTextRange(F)||this.$search.$options.needle,w||(F=this.session.getWordRange(F.start.row,F.start.column),w=this.session.getTextRange(F)),this.$search.set({needle:w})),this.$search.set(x),x.start||this.$search.set({start:F});var R=this.$search.find(this.session);if(x.preventScroll)return R;if(R)return this.revealRange(R,I),R;x.backwards?F.start=F.end:F.end=F.start,this.selection.setRange(F)},C.prototype.findNext=function(w,x){this.find({skipCurrent:!0,backwards:!1},w,x)},C.prototype.findPrevious=function(w,x){this.find(w,{skipCurrent:!0,backwards:!0},x)},C.prototype.revealRange=function(w,x){this.session.unfold(w),this.selection.setSelectionRange(w);var I=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(w.start,w.end,.5),x!==!1&&this.renderer.animateScrolling(I)},C.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},C.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(w){w.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},C.prototype.setAutoScrollEditorIntoView=function(w){if(w){var x,I=this,F=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var R=this.$scrollAnchor;R.style.cssText="position:absolute",this.container.insertBefore(R,this.container.firstChild);var B=this.on("changeSelection",function(){F=!0}),P=this.renderer.on("beforeRender",function(){F&&(x=I.renderer.container.getBoundingClientRect())}),V=this.renderer.on("afterRender",function(){if(F&&x&&(I.isFocused()||I.searchBox&&I.searchBox.isFocused())){var W=I.renderer,H=W.$cursorLayer.$pixelPos,U=W.layerConfig,G=H.top-U.offset;H.top>=0&&G+x.top<0?F=!0:H.topwindow.innerHeight?F=!1:F=null,F!=null&&(R.style.top=G+"px",R.style.left=H.left+"px",R.style.height=U.lineHeight+"px",R.scrollIntoView(F)),F=x=null}});this.setAutoScrollEditorIntoView=function(W){W||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",B),this.renderer.off("afterRender",V),this.renderer.off("beforeRender",P))}}},C.prototype.$resetCursorStyle=function(){var w=this.$cursorStyle||"ace",x=this.renderer.$cursorLayer;x&&(x.setSmoothBlinking(/smooth/.test(w)),x.isBlinking=!this.$readOnly&&w!="wide",p.setCssClass(x.element,"ace_slim-cursors",/slim/.test(w)))},C.prototype.prompt=function(w,x,I){var F=this;E.loadModule("ace/ext/prompt",function(R){R.prompt(F,w,x,I)})},C}();$.$uid=0,$.prototype.curOp=null,$.prototype.prevOp={},$.prototype.$mergeableCommands=["backspace","del","insertstring"],$.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],h.implement($.prototype,m),E.defineOptions($.prototype,"editor",{selectionStyle:{set:function(C){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:C})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(C){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(C){var w=this;this.textInput.setReadOnly(C),this.$resetCursorStyle(),this.$readOnlyCallback||(this.$readOnlyCallback=function(I){var F=!1;if(I&&I.type=="keydown"){if(F=I&&I.key&&I.key.length==1&&!I.ctrlKey&&!I.metaKey,!F)return}else I&&I.type!=="exec"&&(F=!0);if(F){w.hoverTooltip||(w.hoverTooltip=new O);var R=p.createElement("div");R.textContent=S("editor.tooltip.disable-editing","Editing is disabled"),w.hoverTooltip.isOpen||w.hoverTooltip.showForRange(w,w.getSelectionRange(),R)}else w.hoverTooltip&&w.hoverTooltip.isOpen&&w.hoverTooltip.hide()});var x=this.textInput.getElement();C?(_.addListener(x,"keydown",this.$readOnlyCallback,this),this.commands.on("exec",this.$readOnlyCallback),this.commands.on("commandUnavailable",this.$readOnlyCallback)):(_.removeListener(x,"keydown",this.$readOnlyCallback),this.commands.off("exec",this.$readOnlyCallback),this.commands.off("commandUnavailable",this.$readOnlyCallback),this.hoverTooltip&&(this.hoverTooltip.destroy(),this.hoverTooltip=null))},initialValue:!1},copyWithEmptySelection:{set:function(C){this.textInput.setCopyWithEmptySelection(C)},initialValue:!1},cursorStyle:{set:function(C){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(C){this.setAutoScrollEditorIntoView(C)}},keyboardHandler:{set:function(C){this.setKeyboardHandler(C)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(C){this.session.setValue(C)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(C){this.setSession(C)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(C){this.renderer.$gutterLayer.setShowLineNumbers(C),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),C&&this.$relativeLineNumbers?A.attach(this):A.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(C){this.$showLineNumbers&&C?A.attach(this):A.detach(this)}},placeholder:{set:function(C){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var w=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(w&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),p.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!w&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),p.addCssClass(this.container,"ace_hasPlaceholder");var x=p.createElement("div");x.className="ace_placeholder",x.textContent=this.$placeholder||"",this.renderer.placeholderNode=x,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!w&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(C){var w={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(F){F.blur(),F.renderer.scroller.focus()},readOnly:!0},x=function(F){if(F.target==this.renderer.scroller&&F.keyCode===k.enter){F.preventDefault();var R=this.getCursorPosition().row;this.isRowVisible(R)||this.scrollToLine(R,!0,!0),this.focus()}},I;C?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(d.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",S("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",S("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",x.bind(this)),this.commands.addCommand(w),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",S("editor.gutter.aria-roledescription","editor gutter")),this.renderer.$gutter.setAttribute("aria-label",S("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),I||(I=new g(this)),I.addListener(),this.textInput.setAriaOptions({setLabel:!0})):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",x.bind(this)),this.commands.removeCommand(w),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),I&&I.removeListener())},initialValue:!1},textInputAriaLabel:{set:function(C){this.$textInputAriaLabel=C},initialValue:""},enableMobileMenu:{set:function(C){this.$enableMobileMenu=C},initialValue:!0},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var A={getText:function(C,w){return(Math.abs(C.selection.lead.row-w)||w+1+(w<9?"·":""))+""},getWidth:function(C,w,x){return Math.max(w.toString().length,(x.lastRow+1).toString().length,2)*x.characterWidth},update:function(C,w){w.renderer.$loop.schedule(w.renderer.CHANGE_GUTTER)},attach:function(C){C.renderer.$gutterLayer.$renderer=this,C.on("changeSelection",this.update),this.update(null,C)},detach:function(C){C.renderer.$gutterLayer.$renderer==this&&(C.renderer.$gutterLayer.$renderer=null),C.off("changeSelection",this.update),this.update(null,C)}};u.Editor=$}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(i,u,v){var o=i("../lib/dom"),h=function(){function p(a,d){this.element=a,this.canvasHeight=d||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return p.prototype.moveContainer=function(a){o.translate(this.element,0,-(a.firstRowScreen*a.lineHeight%this.canvasHeight)-a.offset*this.$offsetCoefficient)},p.prototype.pageChanged=function(a,d){return Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)!==Math.floor(d.firstRowScreen*d.lineHeight/this.canvasHeight)},p.prototype.computeLineTop=function(a,d,e){var t=d.firstRowScreen*d.lineHeight,r=Math.floor(t/this.canvasHeight),l=e.documentToScreenRow(a,0)*d.lineHeight;return l-r*this.canvasHeight},p.prototype.computeLineHeight=function(a,d,e){return d.lineHeight*e.getRowLineCount(a)},p.prototype.getLength=function(){return this.cells.length},p.prototype.get=function(a){return this.cells[a]},p.prototype.shift=function(){this.$cacheCell(this.cells.shift())},p.prototype.pop=function(){this.$cacheCell(this.cells.pop())},p.prototype.push=function(a){if(Array.isArray(a)){this.cells.push.apply(this.cells,a);for(var d=o.createFragment(this.element),e=0;eD&&(g=y.end.row+1,y=c.getNextFoldLine(g,y),D=y?y.start.row:1/0),g>m){for(;this.$lines.getLength()>b+1;)this.$lines.pop();break}E=this.$lines.get(++b),E?E.row=g:(E=this.$lines.createCell(g,s,this.session,r),this.$lines.push(E)),this.$renderCell(E,s,y,g),g++}this._signal("afterRender"),this.$updateGutterWidth(s)},l.prototype.$updateGutterWidth=function(s){var c=this.session,f=c.gutterRenderer||this.$renderer,m=c.$firstLineNumber,y=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||c.$useWrapMode)&&(y=c.getLength()+m-1);var D=f?f.getWidth(c,y,s):y.toString().length*s.characterWidth,E=this.$padding||this.$computePadding();D+=E.left+E.right,D!==this.gutterWidth&&!isNaN(D)&&(this.gutterWidth=D,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",D))},l.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var s=this.session.selection.getCursor();this.$cursorRow!==s.row&&(this.$cursorRow=s.row)}},l.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var s=this.session.selection.cursor.row;if(this.$cursorRow=s,!(this.$cursorCell&&this.$cursorCell.row==s)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var c=this.$lines.cells;this.$cursorCell=null;for(var f=0;f=this.$cursorRow){if(m.row>this.$cursorRow){var y=this.session.getFoldLine(this.$cursorRow);if(f>0&&y&&y.start.row==c[f-1].row)m=c[f-1];else break}m.element.className="ace_gutter-active-line "+m.element.className,this.$cursorCell=m;break}}}}},l.prototype.scrollLines=function(s){var c=this.config;if(this.config=s,this.$updateCursorRow(),this.$lines.pageChanged(c,s))return this.update(s);this.$lines.moveContainer(s);var f=Math.min(s.lastRow+s.gutterOffset,this.session.getLength()-1),m=this.oldLastRow;if(this.oldLastRow=f,!c||m0;y--)this.$lines.shift();if(m>f)for(var y=this.session.getFoldedRowCount(f+1,m);y>0;y--)this.$lines.pop();s.firstRowm&&this.$lines.push(this.$renderLines(s,m+1,f)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(s)},l.prototype.$renderLines=function(s,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,s,this.session,r);this.$renderCell(b,s,D,y),m.push(b),y++}return m},l.prototype.$renderCell=function(s,c,f,m){var y=s.element,D=this.session,E=y.childNodes[0],b=y.childNodes[1],g=y.childNodes[2],S=y.childNodes[3],T=g.firstChild,k=D.$firstLineNumber,_=D.$breakpoints,O=D.$decorations,$=D.gutterRenderer||this.$renderer,A=this.$showFoldWidgets&&D.foldWidgets,C=f?f.start.row:Number.MAX_VALUE,w=c.lineHeight+"px",x=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",I=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",F=($?$.getText(D,m):m+k).toString();if(this.$highlightGutterLine&&(m==this.$cursorRow||f&&m=C&&this.$cursorRow<=f.end.row)&&(x+="ace_gutter-active-line ",this.$cursorCell!=s&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=s)),_[m]&&(x+=_[m]),O[m]&&(x+=O[m]),this.$annotations[m]&&m!==C&&(x+=this.$annotations[m].className),A){var R=A[m];R==null&&(R=A[m]=D.getFoldWidget(m))}if(R){var B="ace_fold-widget ace_"+R,P=R=="start"&&m==C&&mf.right-c.right)return"foldWidgets"},l}();t.prototype.$fixedWidth=!1,t.prototype.$highlightGutterLine=!0,t.prototype.$renderer="",t.prototype.$showLineNumbers=!0,t.prototype.$showFoldWidgets=!0,h.implement(t.prototype,a);function r(l){var s=document.createTextNode("");l.appendChild(s);var c=o.createElement("span");l.appendChild(c);var f=o.createElement("span");l.appendChild(f);var m=o.createElement("span");return f.appendChild(m),l}u.Gutter=t}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(i,u,v){var o=i("../range").Range,h=i("../lib/dom"),p=function(){function d(e){this.element=h.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)}return d.prototype.setPadding=function(e){this.$padding=e},d.prototype.setSession=function(e){this.session=e},d.prototype.setMarkers=function(e){this.markers=e},d.prototype.elt=function(e,t){var r=this.i!=-1&&this.element.childNodes[this.i];r?this.i++:(r=document.createElement("div"),this.element.appendChild(r),this.i=-1),r.style.cssText=t,r.className=e},d.prototype.update=function(e){if(e){this.config=e,this.i=0;var t;for(var r in this.markers){var l=this.markers[r];if(!l.range){l.update(t,this,this.session,e);continue}var s=l.range.clipRows(e.firstRow,e.lastRow);if(!s.isEmpty())if(s=s.toScreenRange(this.session),l.renderer){var c=this.$getTop(s.start.row,e),f=this.$padding+s.start.column*e.characterWidth;l.renderer(t,s,f,c,e)}else l.type=="fullLine"?this.drawFullLineMarker(t,s,l.clazz,e):l.type=="screenLine"?this.drawScreenLineMarker(t,s,l.clazz,e):s.isMultiLine()?l.type=="text"?this.drawTextMarker(t,s,l.clazz,e):this.drawMultiLineMarker(t,s,l.clazz,e):this.drawSingleLineMarker(t,s,l.clazz+" ace_start ace_br15",e)}if(this.i!=-1)for(;this.ib,y==m),l,y==m?0:1,s)},d.prototype.drawMultiLineMarker=function(e,t,r,l,s){var c=this.$padding,f=l.lineHeight,m=this.$getTop(t.start.row,l),y=c+t.start.column*l.characterWidth;if(s=s||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var D=t.clone();D.end.row=D.start.row,D.end.column=this.session.getLine(D.start.row).length,this.drawBidiSingleLineMarker(e,D,r+" ace_br1 ace_start",l,null,s)}else this.elt(r+" ace_br1 ace_start","height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+y+"px;"+(s||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var D=t.clone();D.start.row=D.end.row,D.start.column=0,this.drawBidiSingleLineMarker(e,D,r+" ace_br12",l,null,s)}else{m=this.$getTop(t.end.row,l);var E=t.end.column*l.characterWidth;this.elt(r+" ace_br12","height:"+f+"px;width:"+E+"px;top:"+m+"px;left:"+c+"px;"+(s||""))}if(f=(t.end.row-t.start.row-1)*l.lineHeight,!(f<=0)){m=this.$getTop(t.start.row+1,l);var b=(t.start.column?1:0)|(t.end.column?0:8);this.elt(r+(b?" ace_br"+b:""),"height:"+f+"px;right:"+c+"px;top:"+m+"px;left:"+c+"px;"+(s||""))}},d.prototype.drawSingleLineMarker=function(e,t,r,l,s,c){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,r,l,s,c);var f=l.lineHeight,m=(t.end.column+(s||0)-t.start.column)*l.characterWidth,y=this.$getTop(t.start.row,l),D=this.$padding+t.start.column*l.characterWidth;this.elt(r,"height:"+f+"px;width:"+m+"px;top:"+y+"px;left:"+D+"px;"+(c||""))},d.prototype.drawBidiSingleLineMarker=function(e,t,r,l,s,c){var f=l.lineHeight,m=this.$getTop(t.start.row,l),y=this.$padding,D=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);D.forEach(function(E){this.elt(r,"height:"+f+"px;width:"+(E.width+(s||0))+"px;top:"+m+"px;left:"+(y+E.left)+"px;"+(c||""))},this)},d.prototype.drawFullLineMarker=function(e,t,r,l,s){var c=this.$getTop(t.start.row,l),f=l.lineHeight;t.start.row!=t.end.row&&(f+=this.$getTop(t.end.row,l)-c),this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(s||""))},d.prototype.drawScreenLineMarker=function(e,t,r,l,s){var c=this.$getTop(t.start.row,l),f=l.lineHeight;this.elt(r,"height:"+f+"px;top:"+c+"px;left:0;right:0;"+(s||""))},d}();p.prototype.$padding=0;function a(d,e,t,r){return(d?1:0)|(e?2:0)|(t?4:0)|(r?8:0)}u.Marker=p}),ace.define("ace/layer/text_util",["require","exports","module"],function(i,u,v){var o=new Set(["text","rparen","lparen"]);u.isTextToken=function(h){return o.has(h)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/dom"),p=i("../lib/lang"),a=i("./lines").Lines,d=i("../lib/event_emitter").EventEmitter,e=i("../config").nls,t=i("./text_util").isTextToken,r=function(){function l(s){this.dom=h,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",s.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)}return l.prototype.$updateEolChar=function(){var s=this.session.doc,c=s.getNewLineCharacter()==` +`&&s.getNewLineMode()!="windows",f=c?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=f)return this.EOL_CHAR=f,!0},l.prototype.setPadding=function(s){this.$padding=s,this.element.style.margin="0 "+s+"px"},l.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},l.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},l.prototype.$setFontMetrics=function(s){this.$fontMetrics=s,this.$fontMetrics.on("changeCharacterSize",function(c){this._signal("changeCharacterSize",c)}.bind(this)),this.$pollSizeChanges()},l.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},l.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},l.prototype.setSession=function(s){this.session=s,s&&this.$computeTabString()},l.prototype.setShowInvisibles=function(s){return this.showInvisibles==s?!1:(this.showInvisibles=s,typeof s=="string"?(this.showSpaces=/tab/i.test(s),this.showTabs=/space/i.test(s),this.showEOL=/eol/i.test(s)):this.showSpaces=this.showTabs=this.showEOL=s,this.$computeTabString(),!0)},l.prototype.setDisplayIndentGuides=function(s){return this.displayIndentGuides==s?!1:(this.displayIndentGuides=s,this.$computeTabString(),!0)},l.prototype.setHighlightIndentGuides=function(s){return this.$highlightIndentGuides===s?!1:(this.$highlightIndentGuides=s,s)},l.prototype.$computeTabString=function(){var s=this.session.getTabSize();this.tabSize=s;for(var c=this.$tabStrings=[0],f=1;fT&&(g=S.end.row+1,S=this.session.getNextFoldLine(g,S),T=S?S.start.row:1/0),!(g>y);){var k=D[E++];if(k){this.dom.removeChildren(k),this.$renderLine(k,g,g==T?S:!1),b&&(k.style.top=this.$lines.computeLineTop(g,s,this.session)+"px");var _=s.lineHeight*this.session.getRowLength(g)+"px";k.style.height!=_&&(b=!0,k.style.height=_)}g++}if(b)for(;E0;y--)this.$lines.shift();if(c.lastRow>s.lastRow)for(var y=this.session.getFoldedRowCount(s.lastRow+1,c.lastRow);y>0;y--)this.$lines.pop();s.firstRowc.lastRow&&this.$lines.push(this.$renderLinesFragment(s,c.lastRow+1,s.lastRow)),this.$highlightIndentGuide()},l.prototype.$renderLinesFragment=function(s,c,f){for(var m=[],y=c,D=this.session.getNextFoldLine(y),E=D?D.start.row:1/0;y>E&&(y=D.end.row+1,D=this.session.getNextFoldLine(y,D),E=D?D.start.row:1/0),!(y>f);){var b=this.$lines.createCell(y,s,this.session),g=b.element;this.dom.removeChildren(g),h.setStyle(g.style,"height",this.$lines.computeLineHeight(y,s,this.session)+"px"),h.setStyle(g.style,"top",this.$lines.computeLineTop(y,s,this.session)+"px"),this.$renderLine(g,y,y==E?D:!1),this.$useLineGroups()?g.className="ace_line_group":g.className="ace_line",m.push(b),y++}return m},l.prototype.update=function(s){this.$lines.moveContainer(s),this.config=s;for(var c=s.firstRow,f=s.lastRow,m=this.$lines;m.getLength();)m.pop();m.push(this.$renderLinesFragment(s,c,f))},l.prototype.$renderToken=function(s,c,f,m){for(var y=this,D=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069\u2060\u2061\u2062\u2063\u2064\u206A\u206B\u206B\u206C\u206D\u206E\u206F]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,E=this.dom.createFragment(this.element),b,g=0;b=D.exec(m);){var S=b[1],T=b[2],k=b[3],_=b[4],O=b[5];if(!(!y.showSpaces&&T)){var $=g!=b.index?m.slice(g,b.index):"";if(g=b.index+b[0].length,$&&E.appendChild(this.dom.createTextNode($,this.element)),S){var A=y.session.getScreenTabSize(c+b.index);E.appendChild(y.$tabStrings[A].cloneNode(!0)),c+=A-1}else if(T)if(y.showSpaces){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space",C.textContent=p.stringRepeat(y.SPACE_CHAR,T.length),E.appendChild(C)}else E.appendChild(this.dom.createTextNode(T,this.element));else if(k){var C=this.dom.createElement("span");C.className="ace_invisible ace_invisible_space ace_invalid",C.textContent=p.stringRepeat(y.SPACE_CHAR,k.length),E.appendChild(C)}else if(_){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className=y.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",C.textContent=y.showSpaces?y.SPACE_CHAR:_,E.appendChild(C)}else if(O){c+=1;var C=this.dom.createElement("span");C.style.width=y.config.characterWidth*2+"px",C.className="ace_cjk",C.textContent=O,E.appendChild(C)}}}if(E.appendChild(this.dom.createTextNode(g?m.slice(g):m,this.element)),t(f.type))s.appendChild(E);else{var w="ace_"+f.type.replace(/\./g," ace_"),C=this.dom.createElement("span");f.type=="fold"&&(C.style.width=f.value.length*this.config.characterWidth+"px",C.setAttribute("title",e("inline-fold.closed.title","Unfold code"))),C.className=w,C.appendChild(E),s.appendChild(C)}return c+m.length},l.prototype.renderIndentGuide=function(s,c,f){var m=c.search(this.$indentGuideRe);if(m<=0||m>=f)return c;if(c[0]==" "){m-=m%this.tabSize;for(var y=m/this.tabSize,D=0;DD[E].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&s[c.row]!==""&&c.column===s[c.row].length){this.$highlightIndentGuideMarker.dir=1;for(var E=c.row+1;E0)m=s.element.childNodes[0];else return;var y=m.childNodes;if(y){var D=y[c-1];D&&D.classList&&D.classList.contains("ace_indent-guide")&&D.classList.add("ace_indent-guide-active")}}},l.prototype.$renderHighlightIndentGuide=function(){if(this.$lines){var s=this.$lines.cells;this.$clearActiveIndentGuide();var c=this.$highlightIndentGuideMarker.indentLevel;if(c!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var f=0;f=this.$highlightIndentGuideMarker.start+1){if(m.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(m,c)}}else for(var f=s.length-1;f>=0;f--){var m=s[f];if(this.$highlightIndentGuideMarker.end&&m.row=D;)E=this.$renderToken(b,E,S,T.substring(0,D-m)),T=T.substring(D-m),m=D,b=this.$createLineElement(),s.appendChild(b),b.appendChild(this.dom.createTextNode(p.stringRepeat(" ",f.indent),this.element)),y++,E=0,D=f[y]||Number.MAX_VALUE;T.length!=0&&(m+=T.length,E=this.$renderToken(b,E,S,T))}}f[f.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(b,E,null,"",!0)},l.prototype.$renderSimpleLine=function(s,c){for(var f=0,m=0;mthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(s,f,y,D);f=this.$renderToken(s,f,y,D)}}},l.prototype.$renderOverflowMessage=function(s,c,f,m,y){f&&this.$renderToken(s,c,f,m.slice(0,this.MAX_LINE_LENGTH-c));var D=this.dom.createElement("span");D.className="ace_inline_button ace_keyword ace_toggle_wrap",D.textContent=y?"":"",s.appendChild(D)},l.prototype.$renderLine=function(s,c,f){if(!f&&f!=!1&&(f=this.session.getFoldLine(c)),f)var m=this.$getFoldLineTokens(c,f);else var m=this.session.getTokens(c);var y=s;if(m.length){var D=this.session.getRowSplitData(c);if(D&&D.length){this.$renderWrappedLine(s,m,D);var y=s.lastChild}else{var y=s;this.$useLineGroups()&&(y=this.$createLineElement(),s.appendChild(y)),this.$renderSimpleLine(y,m)}}else this.$useLineGroups()&&(y=this.$createLineElement(),s.appendChild(y));if(this.showEOL&&y){f&&(c=f.end.row);var E=this.dom.createElement("span");E.className="ace_invisible ace_invisible_eol",E.textContent=c==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,y.appendChild(E)}},l.prototype.$getFoldLineTokens=function(s,c){var f=this.session,m=[];function y(E,b,g){for(var S=0,T=0;T+E[S].value.lengthg-b&&(k=k.substring(0,g-b)),m.push({type:E[S].type,value:k}),T=b+k.length,S+=1}for(;Tg?m.push({type:E[S].type,value:k.substring(0,g-T)}):m.push(E[S]),T+=k.length,S+=1}}var D=f.getTokens(s);return c.walk(function(E,b,g,S,T){E!=null?m.push({type:"fold",value:E}):(T&&(D=f.getTokens(b)),D.length&&y(D,S,g))},c.end.row,this.session.getLine(c.end.row).length),m},l.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},l}();r.prototype.EOF_CHAR="¶",r.prototype.EOL_CHAR_LF="¬",r.prototype.EOL_CHAR_CRLF="¤",r.prototype.EOL_CHAR=r.prototype.EOL_CHAR_LF,r.prototype.TAB_CHAR="—",r.prototype.SPACE_CHAR="·",r.prototype.$padding=0,r.prototype.MAX_LINE_LENGTH=1e4,r.prototype.showInvisibles=!1,r.prototype.showSpaces=!1,r.prototype.showTabs=!1,r.prototype.showEOL=!1,r.prototype.displayIndentGuides=!0,r.prototype.$highlightIndentGuides=!0,r.prototype.$tabStrings=[],r.prototype.destroy={},r.prototype.onChangeTabSize=r.prototype.$computeTabString,o.implement(r.prototype,d),u.Text=r}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(i,u,v){var o=i("../lib/dom"),h=function(){function p(a){this.element=o.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),o.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return p.prototype.$updateOpacity=function(a){for(var d=this.cursors,e=d.length;e--;)o.setStyle(d[e].style,"opacity",a?"":"0")},p.prototype.$startCssAnimation=function(){for(var a=this.cursors,d=a.length;d--;)a[d].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&o.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},p.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,o.removeCssClass(this.element,"ace_animate-blinking")},p.prototype.setPadding=function(a){this.$padding=a},p.prototype.setSession=function(a){this.session=a},p.prototype.setBlinking=function(a){a!=this.isBlinking&&(this.isBlinking=a,this.restartTimer())},p.prototype.setBlinkInterval=function(a){a!=this.blinkInterval&&(this.blinkInterval=a,this.restartTimer())},p.prototype.setSmoothBlinking=function(a){a!=this.smoothBlinking&&(this.smoothBlinking=a,o.setCssClass(this.element,"ace_smooth-blinking",a),this.$updateCursors(!0),this.restartTimer())},p.prototype.addCursor=function(){var a=o.createElement("div");return a.className="ace_cursor",this.element.appendChild(a),this.cursors.push(a),a},p.prototype.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},p.prototype.hideCursor=function(){this.isVisible=!1,o.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},p.prototype.showCursor=function(){this.isVisible=!0,o.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},p.prototype.restartTimer=function(){var a=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,o.removeCssClass(this.element,"ace_smooth-blinking")),a(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&o.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),o.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var d=function(){this.timeoutId=setTimeout(function(){a(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){a(!0),d()},this.blinkInterval),d()}},p.prototype.getPixelPosition=function(a,d){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var e=this.session.documentToScreenPosition(a),t=this.$padding+(this.session.$bidiHandler.isBidiRow(e.row,a.row)?this.session.$bidiHandler.getPosLeft(e.column):e.column*this.config.characterWidth),r=(e.row-(d?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:t,top:r}},p.prototype.isCursorInView=function(a,d){return a.top>=0&&a.topa.height+a.offset||l.top<0)&&e>1)){var s=this.cursors[t++]||this.addCursor(),c=s.style;this.drawCursor?this.drawCursor(s,l,a,d[e],this.session):this.isCursorInView(l,a)?(o.setStyle(c,"display","block"),o.translate(s,l.left,l.top),o.setStyle(c,"width",Math.round(a.characterWidth)+"px"),o.setStyle(c,"height",a.lineHeight+"px")):o.setStyle(c,"display","none")}}for(;this.cursors.length>t;)this.removeCursor();var f=this.session.getOverwrite();this.$setOverwrite(f),this.$pixelPos=l,this.restartTimer()},p.prototype.$setOverwrite=function(a){a!=this.overwrite&&(this.overwrite=a,a?o.addCssClass(this.element,"ace_overwrite-cursors"):o.removeCssClass(this.element,"ace_overwrite-cursors"))},p.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},p}();h.prototype.$padding=0,h.prototype.drawCursor=null,u.Cursor=h}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var s=function(c,f){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,y){m.__proto__=y}||function(m,y){for(var D in y)Object.prototype.hasOwnProperty.call(y,D)&&(m[D]=y[D])},s(c,f)};return function(c,f){if(typeof f!="function"&&f!==null)throw new TypeError("Class extends value "+String(f)+" is not a constructor or null");s(c,f);function m(){this.constructor=c}c.prototype=f===null?Object.create(f):(m.prototype=f.prototype,new m)}}(),h=i("./lib/oop"),p=i("./lib/dom"),a=i("./lib/event"),d=i("./lib/event_emitter").EventEmitter,e=32768,t=function(){function s(c,f){this.element=p.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+f,this.inner=p.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),c.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addListener(this.element,"scroll",this.onScroll.bind(this)),a.addListener(this.element,"mousedown",a.preventDefault)}return s.prototype.setVisible=function(c){this.element.style.display=c?"":"none",this.isVisible=c,this.coeff=1},s}();h.implement(t.prototype,d);var r=function(s){o(c,s);function c(f,m){var y=s.call(this,f,"-v")||this;return y.scrollTop=0,y.scrollHeight=0,m.$scrollbarWidth=y.width=p.scrollbarWidth(f.ownerDocument),y.inner.style.width=y.element.style.width=(y.width||15)+5+"px",y.$minWidth=0,y}return c.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var f=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-f)/(this.coeff-f)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},c.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},c.prototype.setHeight=function(f){this.element.style.height=f+"px"},c.prototype.setScrollHeight=function(f){this.scrollHeight=f,f>e?(this.coeff=e/f,f=e):this.coeff!=1&&(this.coeff=1),this.inner.style.height=f+"px"},c.prototype.setScrollTop=function(f){this.scrollTop!=f&&(this.skipEvent=!0,this.scrollTop=f,this.element.scrollTop=f*this.coeff)},c}(t);r.prototype.setInnerHeight=r.prototype.setScrollHeight;var l=function(s){o(c,s);function c(f,m){var y=s.call(this,f,"-h")||this;return y.scrollLeft=0,y.height=m.$scrollbarWidth,y.inner.style.height=y.element.style.height=(y.height||15)+5+"px",y}return c.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},c.prototype.getHeight=function(){return this.isVisible?this.height:0},c.prototype.setWidth=function(f){this.element.style.width=f+"px"},c.prototype.setInnerWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollWidth=function(f){this.inner.style.width=f+"px"},c.prototype.setScrollLeft=function(f){this.scrollLeft!=f&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=f)},c}(t);u.ScrollBar=r,u.ScrollBarV=r,u.ScrollBarH=l,u.VScrollBar=r,u.HScrollBar=l}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(i,u,v){var o=this&&this.__extends||function(){var l=function(s,c){return l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,m){f.__proto__=m}||function(f,m){for(var y in m)Object.prototype.hasOwnProperty.call(m,y)&&(f[y]=m[y])},l(s,c)};return function(s,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");l(s,c);function f(){this.constructor=s}s.prototype=c===null?Object.create(c):(f.prototype=c.prototype,new f)}}(),h=i("./lib/oop"),p=i("./lib/dom"),a=i("./lib/event"),d=i("./lib/event_emitter").EventEmitter;p.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ position: absolute; background: rgba(128, 128, 128, 0.6); -moz-box-sizing: border-box; @@ -265,7 +265,7 @@ import{C as pt,R as k}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh .ace_editor>.ace_sb_grabbed { z-index: 8; background: #000; -}`,"ace_scrollbar.css",!1);var e=function(){function l(a,c){this.element=d.createElement("div"),this.element.className="ace_sb"+c,this.inner=d.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,a.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return l.prototype.setVisible=function(a){this.element.style.display=a?"":"none",this.isVisible=a,this.coeff=1},l}();h.implement(e.prototype,p);var t=function(l){o(a,l);function a(c,f){var m=l.call(this,c,"-v")||this;return m.scrollTop=0,m.scrollHeight=0,m.parent=c,m.width=m.VScrollWidth,m.renderer=f,m.inner.style.width=m.element.style.width=(m.width||15)+"px",m.$minWidth=0,m}return a.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(s.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientY,D=function(T){y=T.clientY},E=function(){clearInterval(M)},b=f.clientY,g=this.thumbTop,S=function(){if(y!==void 0){var T=m.scrollTopFromThumbTop(g+y-b);T!==m.scrollTop&&m._emit("scroll",{data:T})}};s.capture(this.inner,D,E);var M=setInterval(S,20);return s.preventDefault(f)}var _=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(_)}),s.preventDefault(f)}},a.prototype.getHeight=function(){return this.height},a.prototype.scrollTopFromThumbTop=function(c){var f=c*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},a.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},a.prototype.setHeight=function(c){this.height=Math.max(0,c),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},a.prototype.setScrollHeight=function(c,f){this.pageHeight===c&&!f||(this.pageHeight=c,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},a.prototype.setScrollTop=function(c){this.scrollTop=c,c<0&&(c=0),this.thumbTop=c*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},a}(e);t.prototype.setInnerHeight=t.prototype.setScrollHeight;var r=function(l){o(a,l);function a(c,f){var m=l.call(this,c,"-h")||this;return m.scrollLeft=0,m.scrollWidth=0,m.height=m.HScrollHeight,m.inner.style.height=m.element.style.height=(m.height||12)+"px",m.renderer=f,m}return a.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(s.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientX,D=function(T){y=T.clientX},E=function(){clearInterval(M)},b=f.clientX,g=this.thumbLeft,S=function(){if(y!==void 0){var T=m.scrollLeftFromThumbLeft(g+y-b);T!==m.scrollLeft&&m._emit("scroll",{data:T})}};s.capture(this.inner,D,E);var M=setInterval(S,20);return s.preventDefault(f)}var _=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(_)}),s.preventDefault(f)}},a.prototype.getHeight=function(){return this.isVisible?this.height:0},a.prototype.scrollLeftFromThumbLeft=function(c){var f=c*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},a.prototype.setWidth=function(c){this.width=Math.max(0,c),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},a.prototype.setScrollWidth=function(c,f){this.pageWidth===c&&!f||(this.pageWidth=c,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},a.prototype.setScrollLeft=function(c){this.scrollLeft=c,c<0&&(c=0),this.thumbLeft=c*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},a}(e);r.prototype.setInnerWidth=r.prototype.setScrollWidth,u.ScrollBar=t,u.ScrollBarV=t,u.ScrollBarH=r,u.VScrollBar=t,u.HScrollBar=r}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(i,u,v){var o=i("./lib/event"),h=function(){function d(s,p){this.onRender=s,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=p||window;var e=this;this._flush=function(t){e.pending=!1;var r=e.changes;if(r&&(o.blockIdle(100),e.changes=0,e.onRender(r)),e.changes){if(e.$recursionLimit--<0)return;e.schedule()}else e.$recursionLimit=2}}return d.prototype.schedule=function(s){this.changes=this.changes|s,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},d.prototype.clear=function(s){var p=this.changes;return this.changes=0,p},d}();u.RenderLoop=h}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/dom"),d=i("../lib/lang"),s=i("../lib/event"),p=i("../lib/useragent"),e=i("../lib/event_emitter").EventEmitter,t=512,r=typeof ResizeObserver=="function",l=200,a=function(){function c(f){this.el=h.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=h.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=h.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=d.stringRepeat("X",t),this.$characterSize={width:0,height:0},r?this.$addObserver():this.checkForSizeChanges()}return c.prototype.$setMeasureNodeStyles=function(f,m){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",p.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=m?"hidden":"visible"},c.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var m=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=m&&m.width===f.width&&m.height===f.height,this._emit("changeCharacterSize",{data:f})}},c.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(m){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},c.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=s.onIdle(function m(){f.checkForSizeChanges(),s.onIdle(m,500)},500)},c.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},c.prototype.$measureSizes=function(f){var m={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/t};return m.width===0||m.height===0?null:m},c.prototype.$measureCharWidth=function(f){this.$main.textContent=d.stringRepeat(f,t);var m=this.$main.getBoundingClientRect();return m.width/t},c.prototype.getCharacterWidth=function(f){var m=this.charSizes[f];return m===void 0&&(m=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),m},c.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},c.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},c.prototype.$initTransformMeasureNodes=function(){var f=function(m,y){return["div",{style:"position: absolute;top:"+m+"px;left:"+y+"px;"}]};this.els=h.buildDom([f(0,0),f(l,0),f(0,l),f(l,l)],this.el)},c.prototype.transformCoordinates=function(f,m){if(f){var y=this.$getZoom(this.el);f=g(1/y,f)}function D(P,B,V){var W=P[1]*B[0]-P[0]*B[1];return[(-B[1]*V[0]+B[0]*V[1])/W,(+P[1]*V[0]-P[0]*V[1])/W]}function E(P,B){return[P[0]-B[0],P[1]-B[1]]}function b(P,B){return[P[0]+B[0],P[1]+B[1]]}function g(P,B){return[P*B[0],P*B[1]]}this.els||this.$initTransformMeasureNodes();function S(P){var B=P.getBoundingClientRect();return[B.left,B.top]}var M=S(this.els[0]),_=S(this.els[1]),T=S(this.els[2]),F=S(this.els[3]),A=D(E(F,_),E(F,T),E(b(_,T),b(F,M))),$=g(1+A[0],E(_,M)),C=g(1+A[1],E(T,M));if(m){var w=m,x=A[0]*w[0]/l+A[1]*w[1]/l+1,I=b(g(w[0],$),g(w[1],C));return b(g(1/x/l,I),M)}var R=E(f,M),O=D(E($,g(A[0],R)),E(C,g(A[1],R)),R);return g(l,O)},c}();a.prototype.$characterSize={width:0,height:0},o.implement(a.prototype,e),u.FontMetrics=a}),ace.define("ace/css/editor-css",["require","exports","module"],function(i,u,v){v.exports=` +}`,"ace_scrollbar.css",!1);var e=function(){function l(s,c){this.element=p.createElement("div"),this.element.className="ace_sb"+c,this.inner=p.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,s.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,a.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return l.prototype.setVisible=function(s){this.element.style.display=s?"":"none",this.isVisible=s,this.coeff=1},l}();h.implement(e.prototype,d);var t=function(l){o(s,l);function s(c,f){var m=l.call(this,c,"-v")||this;return m.scrollTop=0,m.scrollHeight=0,m.parent=c,m.width=m.VScrollWidth,m.renderer=f,m.inner.style.width=m.element.style.width=(m.width||15)+"px",m.$minWidth=0,m}return s.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientY,D=function(_){y=_.clientY},E=function(){clearInterval(T)},b=f.clientY,g=this.thumbTop,S=function(){if(y!==void 0){var _=m.scrollTopFromThumbTop(g+y-b);_!==m.scrollTop&&m._emit("scroll",{data:_})}};a.capture(this.inner,D,E);var T=setInterval(S,20);return a.preventDefault(f)}var k=f.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(k)}),a.preventDefault(f)}},s.prototype.getHeight=function(){return this.height},s.prototype.scrollTopFromThumbTop=function(c){var f=c*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return f=f>>0,f<0?f=0:f>this.pageHeight-this.viewHeight&&(f=this.pageHeight-this.viewHeight),f},s.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},s.prototype.setHeight=function(c){this.height=Math.max(0,c),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},s.prototype.setScrollHeight=function(c,f){this.pageHeight===c&&!f||(this.pageHeight=c,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},s.prototype.setScrollTop=function(c){this.scrollTop=c,c<0&&(c=0),this.thumbTop=c*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},s}(e);t.prototype.setInnerHeight=t.prototype.setScrollHeight;var r=function(l){o(s,l);function s(c,f){var m=l.call(this,c,"-h")||this;return m.scrollLeft=0,m.scrollWidth=0,m.height=m.HScrollHeight,m.inner.style.height=m.element.style.height=(m.height||12)+"px",m.renderer=f,m}return s.prototype.onMouseDown=function(c,f){if(c==="mousedown"&&!(a.getButton(f)!==0||f.detail===2)){if(f.target===this.inner){var m=this,y=f.clientX,D=function(_){y=_.clientX},E=function(){clearInterval(T)},b=f.clientX,g=this.thumbLeft,S=function(){if(y!==void 0){var _=m.scrollLeftFromThumbLeft(g+y-b);_!==m.scrollLeft&&m._emit("scroll",{data:_})}};a.capture(this.inner,D,E);var T=setInterval(S,20);return a.preventDefault(f)}var k=f.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(k)}),a.preventDefault(f)}},s.prototype.getHeight=function(){return this.isVisible?this.height:0},s.prototype.scrollLeftFromThumbLeft=function(c){var f=c*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return f=f>>0,f<0?f=0:f>this.pageWidth-this.viewWidth&&(f=this.pageWidth-this.viewWidth),f},s.prototype.setWidth=function(c){this.width=Math.max(0,c),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},s.prototype.setScrollWidth=function(c,f){this.pageWidth===c&&!f||(this.pageWidth=c,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},s.prototype.setScrollLeft=function(c){this.scrollLeft=c,c<0&&(c=0),this.thumbLeft=c*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},s}(e);r.prototype.setInnerWidth=r.prototype.setScrollWidth,u.ScrollBar=t,u.ScrollBarV=t,u.ScrollBarH=r,u.VScrollBar=t,u.HScrollBar=r}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(i,u,v){var o=i("./lib/event"),h=function(){function p(a,d){this.onRender=a,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=d||window;var e=this;this._flush=function(t){e.pending=!1;var r=e.changes;if(r&&(o.blockIdle(100),e.changes=0,e.onRender(r)),e.changes){if(e.$recursionLimit--<0)return;e.schedule()}else e.$recursionLimit=2}}return p.prototype.schedule=function(a){this.changes=this.changes|a,this.changes&&!this.pending&&(o.nextFrame(this._flush),this.pending=!0)},p.prototype.clear=function(a){var d=this.changes;return this.changes=0,d},p}();u.RenderLoop=h}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/dom"),p=i("../lib/lang"),a=i("../lib/event"),d=i("../lib/useragent"),e=i("../lib/event_emitter").EventEmitter,t=512,r=typeof ResizeObserver=="function",l=200,s=function(){function c(f){this.el=h.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=h.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=h.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),f.appendChild(this.el),this.$measureNode.textContent=p.stringRepeat("X",t),this.$characterSize={width:0,height:0},r?this.$addObserver():this.checkForSizeChanges()}return c.prototype.$setMeasureNodeStyles=function(f,m){f.width=f.height="auto",f.left=f.top="0px",f.visibility="hidden",f.position="absolute",f.whiteSpace="pre",d.isIE<8?f["font-family"]="inherit":f.font="inherit",f.overflow=m?"hidden":"visible"},c.prototype.checkForSizeChanges=function(f){if(f===void 0&&(f=this.$measureSizes()),f&&(this.$characterSize.width!==f.width||this.$characterSize.height!==f.height)){this.$measureNode.style.fontWeight="bold";var m=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=f,this.charSizes=Object.create(null),this.allowBoldFonts=m&&m.width===f.width&&m.height===f.height,this._emit("changeCharacterSize",{data:f})}},c.prototype.$addObserver=function(){var f=this;this.$observer=new window.ResizeObserver(function(m){f.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},c.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var f=this;return this.$pollSizeChangesTimer=a.onIdle(function m(){f.checkForSizeChanges(),a.onIdle(m,500)},500)},c.prototype.setPolling=function(f){f?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},c.prototype.$measureSizes=function(f){var m={height:(f||this.$measureNode).clientHeight,width:(f||this.$measureNode).clientWidth/t};return m.width===0||m.height===0?null:m},c.prototype.$measureCharWidth=function(f){this.$main.textContent=p.stringRepeat(f,t);var m=this.$main.getBoundingClientRect();return m.width/t},c.prototype.getCharacterWidth=function(f){var m=this.charSizes[f];return m===void 0&&(m=this.charSizes[f]=this.$measureCharWidth(f)/this.$characterSize.width),m},c.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},c.prototype.$getZoom=function(f){return!f||!f.parentElement?1:(Number(window.getComputedStyle(f).zoom)||1)*this.$getZoom(f.parentElement)},c.prototype.$initTransformMeasureNodes=function(){var f=function(m,y){return["div",{style:"position: absolute;top:"+m+"px;left:"+y+"px;"}]};this.els=h.buildDom([f(0,0),f(l,0),f(0,l),f(l,l)],this.el)},c.prototype.transformCoordinates=function(f,m){if(f){var y=this.$getZoom(this.el);f=g(1/y,f)}function D(B,P,V){var W=B[1]*P[0]-B[0]*P[1];return[(-P[1]*V[0]+P[0]*V[1])/W,(+B[1]*V[0]-B[0]*V[1])/W]}function E(B,P){return[B[0]-P[0],B[1]-P[1]]}function b(B,P){return[B[0]+P[0],B[1]+P[1]]}function g(B,P){return[B*P[0],B*P[1]]}this.els||this.$initTransformMeasureNodes();function S(B){var P=B.getBoundingClientRect();return[P.left,P.top]}var T=S(this.els[0]),k=S(this.els[1]),_=S(this.els[2]),O=S(this.els[3]),$=D(E(O,k),E(O,_),E(b(k,_),b(O,T))),A=g(1+$[0],E(k,T)),C=g(1+$[1],E(_,T));if(m){var w=m,x=$[0]*w[0]/l+$[1]*w[1]/l+1,I=b(g(w[0],A),g(w[1],C));return b(g(1/x/l,I),T)}var F=E(f,T),R=D(E(A,g($[0],F)),E(C,g($[1],F)),F);return g(l,R)},c}();s.prototype.$characterSize={width:0,height:0},o.implement(s.prototype,e),u.FontMetrics=s}),ace.define("ace/css/editor-css",["require","exports","module"],function(i,u,v){v.exports=` .ace_br1 {border-top-left-radius : 3px;} .ace_br2 {border-top-right-radius : 3px;} .ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} @@ -779,7 +779,6 @@ import{C as pt,R as k}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh border: 1px solid transparent; cursor: pointer; - pointer-events: auto; } .ace_custom-widget { @@ -961,9 +960,9 @@ import{C as pt,R as k}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh .ace_hidden_token { display: none; -}`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(i,u,v){var o=i("../lib/dom"),h=i("../lib/oop"),d=i("../lib/event_emitter").EventEmitter,s=function(){function p(e,t){this.parentEl=e,this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setDimensions(),e.element.appendChild(this.canvas)}return p.prototype.$updateDecorators=function(e){var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;this.setDimensions(e);var r=this.canvas.getContext("2d");function l(_,T){return _.priorityT.priority?1:0}var a=this.renderer.session.$annotations;if(r.clearRect(0,0,this.canvas.width,this.canvas.height),a){var c={info:1,warning:2,error:3};a.forEach(function(_){_.priority=c[_.type]||null}),a=a.sort(l);for(var f=0;fthis.canvasHeight&&(S=this.canvasHeight-this.halfMinDecorationHeight),E=Math.round(S-this.halfMinDecorationHeight),b=Math.round(S+this.halfMinDecorationHeight)}r.fillStyle=t[a[f].type]||null,r.fillRect(0,D,this.canvasWidth,b-E)}}var M=this.renderer.session.selection.getCursor();if(M){var y=this.compensateFoldRows(M.row),D=Math.round((M.row-y)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,D,this.canvasWidth,2)}},p.prototype.compensateFoldRows=function(e){var t=this.renderer.session.$foldData,r=0;if(t&&t.length>0)for(var l=0;lt[l].start.row&&e=t[l].end.row&&(r+=t[l].end.row-t[l].start.row);return r},p.prototype.compensateLineWidgets=function(e){var t=this.renderer.session.widgetManager;if(t){var r=0;return t.lineWidgets.forEach(function(l,a){e>a&&(r+=l.rowCount||0)}),r-1}return 0},p.prototype.setDimensions=function(e){e?(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,this.maxHeightT&&(this.$changedLines.firstRow=T),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},_.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},_.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},_.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},_.prototype.updateFull=function(T){T?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},_.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},_.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},_.prototype.onResize=function(T,F,A,$){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=T?1:0;var C=this.container;$||($=C.clientHeight||C.scrollHeight),!$&&this.$maxLines&&this.lineHeight>1&&(!C.style.height||C.style.height=="0px")&&(C.style.height="1px",$=C.clientHeight||C.scrollHeight),A||(A=C.clientWidth||C.scrollWidth);var w=this.$updateCachedSize(T,F,A,$);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!A&&!$)return this.resizing=0;T&&(this.$gutterLayer.$padding=null),T?this.$renderChanges(w|this.$changes,!0):this.$loop.schedule(w|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},_.prototype.$updateCachedSize=function(T,F,A,$){$-=this.$extraHeight||0;var C=0,w=this.$size,x={width:w.width,height:w.height,scrollerHeight:w.scrollerHeight,scrollerWidth:w.scrollerWidth};if($&&(T||w.height!=$)&&(w.height=$,C|=this.CHANGE_SIZE,w.scrollerHeight=w.height,this.$horizScroll&&(w.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(w.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",C=C|this.CHANGE_SCROLL),A&&(T||w.width!=A)){C|=this.CHANGE_SIZE,w.width=A,F==null&&(F=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=F,h.setStyle(this.scrollBarH.element.style,"left",F+"px"),h.setStyle(this.scroller.style,"left",F+this.margin.left+"px"),w.scrollerWidth=Math.max(0,A-F-this.scrollBarV.getWidth()-this.margin.h),h.setStyle(this.$gutter.style,"left",this.margin.left+"px");var I=this.scrollBarV.getWidth()+"px";h.setStyle(this.scrollBarH.element.style,"right",I),h.setStyle(this.scroller.style,"right",I),h.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(w.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||T)&&(C|=this.CHANGE_FULL)}return w.$dirty=!A||!$,C&&this._signal("resize",x),C},_.prototype.onGutterResize=function(T){var F=this.$showGutter?T:0;F!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,F,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},_.prototype.adjustWrapLimit=function(){var T=this.$size.scrollerWidth-this.$padding*2,F=Math.floor(T/this.characterWidth);return this.session.adjustWrapLimit(F,this.$showPrintMargin&&this.$printMarginColumn)},_.prototype.setAnimatedScroll=function(T){this.setOption("animatedScroll",T)},_.prototype.getAnimatedScroll=function(){return this.$animatedScroll},_.prototype.setShowInvisibles=function(T){this.setOption("showInvisibles",T),this.session.$bidiHandler.setShowInvisibles(T)},_.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},_.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},_.prototype.setDisplayIndentGuides=function(T){this.setOption("displayIndentGuides",T)},_.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},_.prototype.setHighlightIndentGuides=function(T){this.setOption("highlightIndentGuides",T)},_.prototype.setShowPrintMargin=function(T){this.setOption("showPrintMargin",T)},_.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},_.prototype.setPrintMarginColumn=function(T){this.setOption("printMarginColumn",T)},_.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},_.prototype.getShowGutter=function(){return this.getOption("showGutter")},_.prototype.setShowGutter=function(T){return this.setOption("showGutter",T)},_.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},_.prototype.setFadeFoldWidgets=function(T){this.setOption("fadeFoldWidgets",T)},_.prototype.setHighlightGutterLine=function(T){this.setOption("highlightGutterLine",T)},_.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},_.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var T=h.createElement("div");T.className="ace_layer ace_print-margin-layer",this.$printMarginEl=h.createElement("div"),this.$printMarginEl.className="ace_print-margin",T.appendChild(this.$printMarginEl),this.content.insertBefore(T,this.content.firstChild)}var F=this.$printMarginEl.style;F.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",F.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},_.prototype.getContainerElement=function(){return this.container},_.prototype.getMouseEventTarget=function(){return this.scroller},_.prototype.getTextAreaContainer=function(){return this.container},_.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var T=this.textarea.style,F=this.$composition;if(!this.$keepTextAreaAtCursor&&!F){h.translate(this.textarea,-100,0);return}var A=this.$cursorLayer.$pixelPos;if(A){F&&F.markerRange&&(A=this.$cursorLayer.getPixelPosition(F.markerRange.start,!0));var $=this.layerConfig,C=A.top,w=A.left;C-=$.offset;var x=F&&F.useTextareaForIME||g.isMobile?this.lineHeight:1;if(C<0||C>$.height-x){h.translate(this.textarea,0,0);return}var I=1,R=this.$size.height-x;if(!F)C+=this.lineHeight;else if(F.useTextareaForIME){var O=this.textarea.value;I=this.characterWidth*this.session.$getStringScreenWidth(O)[0]}else C+=this.lineHeight+2;w-=this.scrollLeft,w>this.$size.scrollerWidth-I&&(w=this.$size.scrollerWidth-I),w+=this.gutterWidth+this.margin.left,h.setStyle(T,"height",x+"px"),h.setStyle(T,"width",I+"px"),h.translate(this.textarea,Math.min(w,this.$size.scrollerWidth-I),Math.min(C,R))}}},_.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},_.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},_.prototype.getLastFullyVisibleRow=function(){var T=this.layerConfig,F=T.lastRow,A=this.session.documentToScreenRow(F,0)*T.lineHeight;return A-this.session.getScrollTop()>T.height-T.lineHeight?F-1:F},_.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},_.prototype.setPadding=function(T){this.$padding=T,this.$textLayer.setPadding(T),this.$cursorLayer.setPadding(T),this.$markerFront.setPadding(T),this.$markerBack.setPadding(T),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},_.prototype.setScrollMargin=function(T,F,A,$){var C=this.scrollMargin;C.top=T|0,C.bottom=F|0,C.right=$|0,C.left=A|0,C.v=C.top+C.bottom,C.h=C.left+C.right,C.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-C.top),this.updateFull()},_.prototype.setMargin=function(T,F,A,$){var C=this.margin;C.top=T|0,C.bottom=F|0,C.right=$|0,C.left=A|0,C.v=C.top+C.bottom,C.h=C.left+C.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},_.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},_.prototype.setHScrollBarAlwaysVisible=function(T){this.setOption("hScrollBarAlwaysVisible",T)},_.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},_.prototype.setVScrollBarAlwaysVisible=function(T){this.setOption("vScrollBarAlwaysVisible",T)},_.prototype.$updateScrollBarV=function(){var T=this.layerConfig.maxHeight,F=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(T-=(F-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>T-F&&(T=this.scrollTop+F,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(T+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},_.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},_.prototype.freeze=function(){this.$frozen=!0},_.prototype.unfreeze=function(){this.$frozen=!1},_.prototype.$renderChanges=function(T,F){if(this.$changes&&(T|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!T&&!F){this.$changes|=T;return}if(this.$size.$dirty)return this.$changes|=T,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",T),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var A=this.layerConfig;if(T&this.CHANGE_FULL||T&this.CHANGE_SIZE||T&this.CHANGE_TEXT||T&this.CHANGE_LINES||T&this.CHANGE_SCROLL||T&this.CHANGE_H_SCROLL){if(T|=this.$computeLayerConfig()|this.$loop.clear(),A.firstRow!=this.layerConfig.firstRow&&A.firstRowScreen==this.layerConfig.firstRowScreen){var $=this.scrollTop+(A.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;$>0&&(this.scrollTop=$,T=T|this.CHANGE_SCROLL,T|=this.$computeLayerConfig()|this.$loop.clear())}A=this.layerConfig,this.$updateScrollBarV(),T&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),h.translate(this.content,-this.scrollLeft,-A.offset);var C=A.width+2*this.$padding+"px",w=A.minHeight+"px";h.setStyle(this.content.style,"width",C),h.setStyle(this.content.style,"height",w)}if(T&this.CHANGE_H_SCROLL&&(h.translate(this.content,-this.scrollLeft,-A.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),T&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(A),this.$showGutter&&this.$gutterLayer.update(A),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(A),this.$markerBack.update(A),this.$markerFront.update(A),this.$cursorLayer.update(A),this.$moveTextAreaToCursor(),this._signal("afterRender",T);return}if(T&this.CHANGE_SCROLL){this.$changedLines=null,T&this.CHANGE_TEXT||T&this.CHANGE_LINES?this.$textLayer.update(A):this.$textLayer.scrollLines(A),this.$showGutter&&(T&this.CHANGE_GUTTER||T&this.CHANGE_LINES?this.$gutterLayer.update(A):this.$gutterLayer.scrollLines(A)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(A),this.$markerBack.update(A),this.$markerFront.update(A),this.$cursorLayer.update(A),this.$moveTextAreaToCursor(),this._signal("afterRender",T);return}T&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(A),this.$showGutter&&this.$gutterLayer.update(A),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(A)):T&this.CHANGE_LINES?((this.$updateLines()||T&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(A),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(A)):T&this.CHANGE_TEXT||T&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(A),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(A)):T&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(A),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(A)),T&this.CHANGE_CURSOR&&(this.$cursorLayer.update(A),this.$moveTextAreaToCursor()),T&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(A),T&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(A),this._signal("afterRender",T)},_.prototype.$autosize=function(){var T=this.session.getScreenLength()*this.lineHeight,F=this.$maxLines*this.lineHeight,A=Math.min(F,Math.max((this.$minLines||1)*this.lineHeight,T))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(A+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&A>this.$maxPixelHeight&&(A=this.$maxPixelHeight);var $=A<=2*this.lineHeight,C=!$&&T>F;if(A!=this.desiredHeight||this.$size.height!=this.desiredHeight||C!=this.$vScroll){C!=this.$vScroll&&(this.$vScroll=C,this.scrollBarV.setVisible(C));var w=this.container.clientWidth;this.container.style.height=A+"px",this.$updateCachedSize(!0,this.$gutterWidth,w,A),this.desiredHeight=A,this._signal("autosize")}},_.prototype.$computeLayerConfig=function(){var T=this.session,F=this.$size,A=F.height<=2*this.lineHeight,$=this.session.getScreenLength(),C=$*this.lineHeight,w=this.$getLongestLine(),x=!A&&(this.$hScrollBarAlwaysVisible||F.scrollerWidth-w-2*this.$padding<0),I=this.$horizScroll!==x;I&&(this.$horizScroll=x,this.scrollBarH.setVisible(x));var R=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),A=F.height<=2*this.lineHeight);var O=F.scrollerHeight+this.lineHeight,P=!this.$maxLines&&this.$scrollPastEnd?(F.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;C+=P;var B=this.scrollMargin;this.session.setScrollTop(Math.max(-B.top,Math.min(this.scrollTop,C-F.scrollerHeight+B.bottom))),this.session.setScrollLeft(Math.max(-B.left,Math.min(this.scrollLeft,w+2*this.$padding-F.scrollerWidth+B.right)));var V=!A&&(this.$vScrollBarAlwaysVisible||F.scrollerHeight-C+P<0||this.scrollTop>B.top),W=R!==V;W&&(this.$vScroll=V,this.scrollBarV.setVisible(V));var H=this.scrollTop%this.lineHeight,U=Math.ceil(O/this.lineHeight)-1,G=Math.max(0,Math.round((this.scrollTop-H)/this.lineHeight)),Y=G+U,Q,ee,ne=this.lineHeight;G=T.screenToDocumentRow(G,0);var se=T.getFoldLine(G);se&&(G=se.start.row),Q=T.documentToScreenRow(G,0),ee=T.getRowLength(G)*ne,Y=Math.min(T.screenToDocumentRow(Y,0),T.getLength()-1),O=F.scrollerHeight+T.getRowLength(Y)*ne+ee,H=this.scrollTop-Q*ne,H<0&&Q>0&&(Q=Math.max(0,Q+Math.floor(H/ne)),H=this.scrollTop-Q*ne);var ge=0;return(this.layerConfig.width!=w||I)&&(ge=this.CHANGE_H_SCROLL),(I||W)&&(ge|=this.$updateCachedSize(!0,this.gutterWidth,F.width,F.height),this._signal("scrollbarVisibilityChanged"),W&&(w=this.$getLongestLine())),this.layerConfig={width:w,padding:this.$padding,firstRow:G,firstRowScreen:Q,lastRow:Y,lineHeight:ne,characterWidth:this.characterWidth,minHeight:O,maxHeight:C,offset:H,gutterOffset:ne?Math.max(0,Math.ceil((H+F.height-F.scrollerHeight)/ne)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(w-this.$padding),ge},_.prototype.$updateLines=function(){if(this.$changedLines){var T=this.$changedLines.firstRow,F=this.$changedLines.lastRow;this.$changedLines=null;var A=this.layerConfig;if(!(T>A.lastRow+1)&&!(Fthis.$textLayer.MAX_LINE_LENGTH&&(T=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(T*this.characterWidth))},_.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},_.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},_.prototype.addGutterDecoration=function(T,F){this.$gutterLayer.addGutterDecoration(T,F)},_.prototype.removeGutterDecoration=function(T,F){this.$gutterLayer.removeGutterDecoration(T,F)},_.prototype.updateBreakpoints=function(T){this._rows=T,this.$loop.schedule(this.CHANGE_GUTTER)},_.prototype.setAnnotations=function(T){this.$gutterLayer.setAnnotations(T),this.$loop.schedule(this.CHANGE_GUTTER)},_.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},_.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},_.prototype.showCursor=function(){this.$cursorLayer.showCursor()},_.prototype.scrollSelectionIntoView=function(T,F,A){this.scrollCursorIntoView(T,A),this.scrollCursorIntoView(F,A)},_.prototype.scrollCursorIntoView=function(T,F,A){if(this.$size.scrollerHeight!==0){var $=this.$cursorLayer.getPixelPosition(T),C=$.left,w=$.top,x=A&&A.top||0,I=A&&A.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var R=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;R+x>w?(F&&R+x>w+this.lineHeight&&(w-=F*this.$size.scrollerHeight),w===0&&(w=-this.scrollMargin.top),this.session.setScrollTop(w)):R+this.$size.scrollerHeight-I=1-this.scrollMargin.top||F>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||T<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||T>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},_.prototype.pixelToScreenCoordinates=function(T,F){var A;if(this.$hasCssTransforms){A={top:0,left:0};var $=this.$fontMetrics.transformCoordinates([T,F]);T=$[1]-this.gutterWidth-this.margin.left,F=$[0]}else A=this.scroller.getBoundingClientRect();var C=T+this.scrollLeft-A.left-this.$padding,w=C/this.characterWidth,x=Math.floor((F+this.scrollTop-A.top)/this.lineHeight),I=this.$blockCursor?Math.floor(w):Math.round(w);return{row:x,column:I,side:w-I>0?1:-1,offsetX:C}},_.prototype.screenToTextCoordinates=function(T,F){var A;if(this.$hasCssTransforms){A={top:0,left:0};var $=this.$fontMetrics.transformCoordinates([T,F]);T=$[1]-this.gutterWidth-this.margin.left,F=$[0]}else A=this.scroller.getBoundingClientRect();var C=T+this.scrollLeft-A.left-this.$padding,w=C/this.characterWidth,x=this.$blockCursor?Math.floor(w):Math.round(w),I=Math.floor((F+this.scrollTop-A.top)/this.lineHeight);return this.session.screenToDocumentPosition(I,Math.max(x,0),C)},_.prototype.textToScreenCoordinates=function(T,F){var A=this.scroller.getBoundingClientRect(),$=this.session.documentToScreenPosition(T,F),C=this.$padding+(this.session.$bidiHandler.isBidiRow($.row,T)?this.session.$bidiHandler.getPosLeft($.column):Math.round($.column*this.characterWidth)),w=$.row*this.lineHeight;return{pageX:A.left+C-this.scrollLeft,pageY:A.top+w-this.scrollTop}},_.prototype.visualizeFocus=function(){h.addCssClass(this.container,"ace_focus")},_.prototype.visualizeBlur=function(){h.removeCssClass(this.container,"ace_focus")},_.prototype.showComposition=function(T){this.$composition=T,T.cssText||(T.cssText=this.textarea.style.cssText),T.useTextareaForIME==null&&(T.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(h.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):T.markerId=this.session.addMarker(T.markerRange,"ace_composition_marker","text")},_.prototype.setCompositionText=function(T){var F=this.session.selection.cursor;this.addToken(T,"composition_placeholder",F.row,F.column),this.$moveTextAreaToCursor()},_.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),h.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var T=this.session.selection.cursor;this.removeExtraToken(T.row,T.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},_.prototype.setGhostText=function(T,F){var A=this.session.selection.cursor,$=F||{row:A.row,column:A.column};this.removeGhostText();var C=this.$calculateWrappedTextChunks(T,$);this.addToken(C[0].text,"ghost_text",$.row,$.column),this.$ghostText={text:T,position:{row:$.row,column:$.column}};var w=h.createElement("div");if(C.length>1){var x=this.hideTokensAfterPosition($.row,$.column),I;C.slice(1).forEach(function(W){var H=h.createElement("div"),U=h.createElement("span");U.className="ace_ghost_text",W.wrapped&&(H.className="ghost_text_line_wrapped"),W.text.length===0&&(W.text=" "),U.appendChild(h.createTextNode(W.text)),H.appendChild(U),w.appendChild(H),I=H}),x.forEach(function(W){var H=h.createElement("span");S(W.type)||(H.className="ace_"+W.type.replace(/\./g," ace_")),H.appendChild(h.createTextNode(W.value)),I.appendChild(H)}),this.$ghostTextWidget={el:w,row:$.row,column:$.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var R=this.$cursorLayer.getPixelPosition($,!0),O=this.container,P=O.getBoundingClientRect().height,B=C.length*this.lineHeight,V=B0){var O=0;R.push(C[x].length);for(var P=0;P1||Math.abs(T.$size.height-$)>1?T.$resizeTimer.delay():T.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},_}();M.prototype.CHANGE_CURSOR=1,M.prototype.CHANGE_MARKER=2,M.prototype.CHANGE_GUTTER=4,M.prototype.CHANGE_SCROLL=8,M.prototype.CHANGE_LINES=16,M.prototype.CHANGE_TEXT=32,M.prototype.CHANGE_SIZE=64,M.prototype.CHANGE_MARKER_BACK=128,M.prototype.CHANGE_MARKER_FRONT=256,M.prototype.CHANGE_FULL=512,M.prototype.CHANGE_H_SCROLL=1024,M.prototype.$changes=0,M.prototype.$padding=null,M.prototype.$frozen=!1,M.prototype.STEPS=8,o.implement(M.prototype,D),s.defineOptions(M.prototype,"renderer",{useResizeObserver:{set:function(_){!_&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):_&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(_){this.$textLayer.setShowInvisibles(_)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(_){typeof _=="number"&&(this.$printMarginColumn=_),this.$showPrintMargin=!!_,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(_){this.$gutter.style.display=_?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(_){this.$gutterLayer.$useSvgGutterIcons=_},initialValue:!1},showFoldedAnnotations:{set:function(_){this.$gutterLayer.$showFoldedAnnotations=_},initialValue:!1},fadeFoldWidgets:{set:function(_){h.setCssClass(this.$gutter,"ace_fade-fold-widgets",_)},initialValue:!1},showFoldWidgets:{set:function(_){this.$gutterLayer.setShowFoldWidgets(_),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(_){this.$textLayer.setDisplayIndentGuides(_)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(_){this.$textLayer.setHighlightIndentGuides(_)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(_){this.$gutterLayer.setHighlightGutterLine(_),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(_){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(_){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(_){typeof _=="number"&&(_=_+"px"),this.container.style.fontSize=_,this.updateFontSize()},initialValue:12},fontFamily:{set:function(_){this.container.style.fontFamily=_,this.updateFontSize()}},maxLines:{set:function(_){this.updateFull()}},minLines:{set:function(_){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(_){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(_){_=+_||0,this.$scrollPastEnd!=_&&(this.$scrollPastEnd=_,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(_){this.$gutterLayer.$fixedWidth=!!_,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(_){this.$updateCustomScrollbar(_)},initialValue:!1},theme:{set:function(_){this.setTheme(_)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!g.isMobile&&!g.isIE}}),u.VirtualRenderer=M}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/net"),d=i("../lib/event_emitter").EventEmitter,s=i("../config");function p(l){var a="importScripts('"+h.qualifyURL(l)+"');";try{return new Blob([a],{type:"application/javascript"})}catch{var c=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new c;return f.append(a),f.getBlob("application/javascript")}}function e(l){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var a=p(l),c=window.URL||window.webkitURL,f=c.createObjectURL(a);return new Worker(f)}return new Worker(l)}var t=function(l){l.postMessage||(l=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=l,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,d),this.$createWorkerFromOldConfig=function(l,a,c,f,m){if(i.nameToUrl&&!i.toUrl&&(i.toUrl=i.nameToUrl),s.get("packaged")||!i.toUrl)f=f||s.moduleUrl(a,"worker");else{var y=this.$normalizePath;f=f||y(i.toUrl("ace/worker/worker.js",null,"_"));var D={};l.forEach(function(E){D[E]=y(i.toUrl(E,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=e(f),m&&this.send("importScripts",m),this.$worker.postMessage({init:!0,tlns:D,module:a,classname:c}),this.$worker},this.onMessage=function(l){var a=l.data;switch(a.type){case"event":this._signal(a.name,{data:a.data});break;case"call":var c=this.callbacks[a.id];c&&(c(a.data),delete this.callbacks[a.id]);break;case"error":this.reportError(a.data);break;case"log":window.console&&console.log&&console.log.apply(console,a.data);break}},this.reportError=function(l){window.console&&console.error&&console.error(l)},this.$normalizePath=function(l){return h.qualifyURL(l)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(l){l.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(l,a){this.$worker.postMessage({command:l,args:a})},this.call=function(l,a,c){if(c){var f=this.callbackId++;this.callbacks[f]=c,a.push(f)}this.send(l,a)},this.emit=function(l,a){try{a.data&&a.data.err&&(a.data.err={message:a.data.err.message,stack:a.data.err.stack,code:a.data.err.code}),this.$worker&&this.$worker.postMessage({event:l,data:{data:a.data}})}catch(c){console.error(c.stack)}},this.attachToDocument=function(l){this.$doc&&this.terminate(),this.$doc=l,this.call("setValue",[l.getValue()]),l.on("change",this.changeListener,!0)},this.changeListener=function(l){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),l.action=="insert"?this.deltaQueue.push(l.start,l.lines):this.deltaQueue.push(l.start,l.end)},this.$sendDeltaQueue=function(){var l=this.deltaQueue;l&&(this.deltaQueue=null,l.length>50&&l.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:l}))}}).call(t.prototype);var r=function(l,a,c){var f=null,m=!1,y=Object.create(d),D=[],E=new t({messageBuffer:D,terminate:function(){},postMessage:function(g){D.push(g),f&&(m?setTimeout(b):b())}});E.setEmitSync=function(g){m=g};var b=function(){var g=D.shift();g.command?f[g.command].apply(f,g.args):g.event&&y._signal(g.event,g.data)};return y.postMessage=function(g){E.onMessage({data:g})},y.callback=function(g,S){this.postMessage({type:"call",id:S,data:g})},y.emit=function(g,S){this.postMessage({type:"event",name:g,data:S})},s.loadModule(["worker",a],function(g){for(f=new g[c](y);D.length;)b()}),E};u.UIWorkerClient=r,u.WorkerClient=t,u.createWorker=e}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(i,u,v){var o=i("./range").Range,h=i("./lib/event_emitter").EventEmitter,d=i("./lib/oop"),s=function(){function p(e,t,r,l,a,c){var f=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=a,this.othersClass=c,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=l,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=r;var m=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=m.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return p.prototype.setup=function(){var e=this,t=this.doc,r=this.session;this.selectionBefore=r.selection.toJSON(),r.selection.inMultiSelectMode&&r.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var l=this.pos;l.$insertRight=!0,l.detach(),l.markerId=r.addMarker(new o(l.row,l.column,l.row,l.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(a){var c=t.createAnchor(a.row,a.column);c.$insertRight=!0,c.detach(),e.others.push(c)}),r.setUndoSelect(!1)},p.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(r){r.markerId=e.addMarker(new o(r.row,r.column,r.row,r.column+t.length),t.othersClass,null,!1)})}},p.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,a=t.start.column-this.pos.column;if(this.updateAnchors(e),l&&(this.length+=r),l&&!this.session.$fromUndo){if(e.action==="insert")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+a};this.doc.insertMergedLines(m,e.lines)}else if(e.action==="remove")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+a};this.doc.remove(new o(m.row,m.column,m.row,m.column-r))}}this.$updating=!1,this.updateMarkers()}},p.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},p.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,r=function(a,c){t.removeMarker(a.markerId),a.markerId=t.addMarker(new o(a.row,a.column,a.row,a.column+e.length),c,null,!1)};r(this.pos,this.mainClass);for(var l=this.others.length;l--;)r(this.others[l],this.othersClass)}},p.prototype.onCursorChange=function(e){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},p.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},p.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,r=0;r1?h.multiSelect.joinSelections():h.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(h){h.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(h){h.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(h){h.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],u.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(h){h.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(h){return h&&h.inMultiSelectMode}}];var o=i("../keyboard/hash_handler").HashHandler;u.keyboardHandler=new o(u.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(i,u,v){var o=i("./range_list").RangeList,h=i("./range").Range,d=i("./selection").Selection,s=i("./mouse/multi_select_handler").onMouseDown,p=i("./lib/event"),e=i("./lib/lang"),t=i("./commands/multi_select_commands");u.commands=t.defaultCommands.concat(t.multiSelectCommands);var r=i("./search").Search,l=new r;function a(E,b,g){return l.$options.wrap=!0,l.$options.needle=b,l.$options.backwards=g==-1,l.find(E)}var c=i("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(c.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(E,b){if(E){if(!this.inMultiSelectMode&&this.rangeCount===0){var g=this.toOrientedRange();if(this.rangeList.add(g),this.rangeList.add(E),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),b||this.fromOrientedRange(E);this.rangeList.removeAll(),this.rangeList.add(g),this.$onAddRange(g)}E.cursor||(E.cursor=E.end);var S=this.rangeList.add(E);return this.$onAddRange(E),S.length&&this.$onRemoveRange(S),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(E)}},this.toSingleRange=function(E){E=E||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),E&&this.fromOrientedRange(E)},this.substractPoint=function(E){var b=this.rangeList.substractPoint(E);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var E=this.rangeList.merge();E.length&&this.$onRemoveRange(E)},this.$onAddRange=function(E){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(E),this._signal("addRange",{range:E})},this.$onRemoveRange=function(E){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();E.push(b),this.rangeCount=0}for(var g=E.length;g--;){var S=this.ranges.indexOf(E[g]);this.ranges.splice(S,1)}this._signal("removeRange",{ranges:E}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var E=this.ranges.length?this.ranges:[this.getRange()],b=[],g=0;g1){var E=this.rangeList.ranges,b=E[E.length-1],g=h.fromPoints(E[0].start,b.end);this.toSingleRange(),this.setSelectionRange(g,b.cursor==b.start)}else{var S=this.session.documentToScreenPosition(this.cursor),M=this.session.documentToScreenPosition(this.anchor),_=this.rectangularRangeBlock(S,M);_.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(E,b,g){var S=[],M=E.column0;)O--;if(O>0)for(var P=0;S[P].isEmpty();)P++;for(var B=O;B>=P;B--)S[B].isEmpty()&&S.splice(B,1)}return S}}.call(d.prototype);var f=i("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(E){E.cursor||(E.cursor=E.end);var b=this.getSelectionStyle();return E.marker=this.session.addMarker(E,"ace_selection",b),this.session.$selectionMarkers.push(E),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,E},this.removeSelectionMarker=function(E){if(E.marker){this.session.removeMarker(E.marker);var b=this.session.$selectionMarkers.indexOf(E);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(E){for(var b=this.session.$selectionMarkers,g=E.length;g--;){var S=E[g];if(S.marker){this.session.removeMarker(S.marker);var M=b.indexOf(S);M!=-1&&b.splice(M,1)}}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(E){this.addSelectionMarker(E.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(E){this.removeSelectionMarkers(E.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(E){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(t.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(E){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(t.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(E){var b=E.command,g=E.editor;if(g.multiSelect){if(b.multiSelectAction)b.multiSelectAction=="forEach"?S=g.forEachSelection(b,E.args):b.multiSelectAction=="forEachLine"?S=g.forEachSelection(b,E.args,!0):b.multiSelectAction=="single"?(g.exitMultiSelectMode(),S=b.exec(g,E.args||{})):S=b.multiSelectAction(g,E.args||{});else{var S=b.exec(g,E.args||{});g.multiSelect.addRange(g.multiSelect.toOrientedRange()),g.multiSelect.mergeOverlappingRanges()}return S}},this.forEachSelection=function(E,b,g){if(!this.inVirtualSelectionMode){var S=g&&g.keepOrder,M=g==!0||g&&g.$byLines,_=this.session,T=this.selection,F=T.rangeList,A=(S?T:F).ranges,$;if(!A.length)return E.exec?E.exec(this,b||{}):E(this,b||{});var C=T._eventRegistry;T._eventRegistry={};var w=new d(_);this.inVirtualSelectionMode=!0;for(var x=A.length;x--;){if(M)for(;x>0&&A[x].start.row==A[x-1].end.row;)x--;w.fromOrientedRange(A[x]),w.index=x,this.selection=_.selection=w;var I=E.exec?E.exec(this,b||{}):E(this,b||{});!$&&I!==void 0&&($=I),w.toOrientedRange(A[x])}w.detach(),this.selection=_.selection=T,this.inVirtualSelectionMode=!1,T._eventRegistry=C,T.mergeOverlappingRanges(),T.ranges[0]&&T.fromOrientedRange(T.ranges[0]);var R=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),R&&R.from==R.to&&this.renderer.animateScrolling(R.from),$}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var E="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var b=this.multiSelect.rangeList.ranges,g=[],S=0;S0);T<0&&(T=0),F>=$&&(F=$-1)}var w=this.session.removeFullLines(T,F);w=this.$reAlignText(w,A),this.session.insert({row:T,column:0},w.join(` +}`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(i,u,v){var o=i("../lib/dom"),h=i("../lib/oop"),p=i("../lib/event_emitter").EventEmitter,a=function(){function d(e,t){this.parentEl=e,this.canvas=o.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},this.setDimensions(),e.element.appendChild(this.canvas)}return d.prototype.$updateDecorators=function(e){var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;this.setDimensions(e);var r=this.canvas.getContext("2d");function l(k,_){return k.priority<_.priority?-1:k.priority>_.priority?1:0}var s=this.renderer.session.$annotations;if(r.clearRect(0,0,this.canvas.width,this.canvas.height),s){var c={info:1,warning:2,error:3};s.forEach(function(k){k.priority=c[k.type]||null}),s=s.sort(l);for(var f=0;fthis.canvasHeight&&(S=this.canvasHeight-this.halfMinDecorationHeight),E=Math.round(S-this.halfMinDecorationHeight),b=Math.round(S+this.halfMinDecorationHeight)}r.fillStyle=t[s[f].type]||null,r.fillRect(0,D,this.canvasWidth,b-E)}}var T=this.renderer.session.selection.getCursor();if(T){var y=this.compensateFoldRows(T.row),D=Math.round((T.row-y)*this.lineHeight*this.heightRatio);r.fillStyle="rgba(0, 0, 0, 0.5)",r.fillRect(0,D,this.canvasWidth,2)}},d.prototype.compensateFoldRows=function(e){var t=this.renderer.session.$foldData,r=0;if(t&&t.length>0)for(var l=0;lt[l].start.row&&e=t[l].end.row&&(r+=t[l].end.row-t[l].start.row);return r},d.prototype.compensateLineWidgets=function(e){var t=this.renderer.session.widgetManager;if(t){var r=0;return t.lineWidgets.forEach(function(l,s){e>s&&(r+=l.rowCount||0)}),r-1}return 0},d.prototype.setDimensions=function(e){e?(this.maxHeight=e.maxHeight,this.lineHeight=e.lineHeight,this.canvasHeight=e.height,this.maxHeight_&&(this.$changedLines.firstRow=_),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},k.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},k.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},k.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},k.prototype.updateFull=function(_){_?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},k.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},k.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},k.prototype.onResize=function(_,O,$,A){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=_?1:0;var C=this.container;A||(A=C.clientHeight||C.scrollHeight),!A&&this.$maxLines&&this.lineHeight>1&&(!C.style.height||C.style.height=="0px")&&(C.style.height="1px",A=C.clientHeight||C.scrollHeight),$||($=C.clientWidth||C.scrollWidth);var w=this.$updateCachedSize(_,O,$,A);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!$&&!A)return this.resizing=0;_&&(this.$gutterLayer.$padding=null),_?this.$renderChanges(w|this.$changes,!0):this.$loop.schedule(w|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},k.prototype.$updateCachedSize=function(_,O,$,A){A-=this.$extraHeight||0;var C=0,w=this.$size,x={width:w.width,height:w.height,scrollerHeight:w.scrollerHeight,scrollerWidth:w.scrollerWidth};if(A&&(_||w.height!=A)&&(w.height=A,C|=this.CHANGE_SIZE,w.scrollerHeight=w.height,this.$horizScroll&&(w.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(w.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",C=C|this.CHANGE_SCROLL),$&&(_||w.width!=$)){C|=this.CHANGE_SIZE,w.width=$,O==null&&(O=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=O,h.setStyle(this.scrollBarH.element.style,"left",O+"px"),h.setStyle(this.scroller.style,"left",O+this.margin.left+"px"),w.scrollerWidth=Math.max(0,$-O-this.scrollBarV.getWidth()-this.margin.h),h.setStyle(this.$gutter.style,"left",this.margin.left+"px");var I=this.scrollBarV.getWidth()+"px";h.setStyle(this.scrollBarH.element.style,"right",I),h.setStyle(this.scroller.style,"right",I),h.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(w.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||_)&&(C|=this.CHANGE_FULL)}return w.$dirty=!$||!A,C&&this._signal("resize",x),C},k.prototype.onGutterResize=function(_){var O=this.$showGutter?_:0;O!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,O,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},k.prototype.adjustWrapLimit=function(){var _=this.$size.scrollerWidth-this.$padding*2,O=Math.floor(_/this.characterWidth);return this.session.adjustWrapLimit(O,this.$showPrintMargin&&this.$printMarginColumn)},k.prototype.setAnimatedScroll=function(_){this.setOption("animatedScroll",_)},k.prototype.getAnimatedScroll=function(){return this.$animatedScroll},k.prototype.setShowInvisibles=function(_){this.setOption("showInvisibles",_),this.session.$bidiHandler.setShowInvisibles(_)},k.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},k.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},k.prototype.setDisplayIndentGuides=function(_){this.setOption("displayIndentGuides",_)},k.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},k.prototype.setHighlightIndentGuides=function(_){this.setOption("highlightIndentGuides",_)},k.prototype.setShowPrintMargin=function(_){this.setOption("showPrintMargin",_)},k.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},k.prototype.setPrintMarginColumn=function(_){this.setOption("printMarginColumn",_)},k.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},k.prototype.getShowGutter=function(){return this.getOption("showGutter")},k.prototype.setShowGutter=function(_){return this.setOption("showGutter",_)},k.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},k.prototype.setFadeFoldWidgets=function(_){this.setOption("fadeFoldWidgets",_)},k.prototype.setHighlightGutterLine=function(_){this.setOption("highlightGutterLine",_)},k.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},k.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var _=h.createElement("div");_.className="ace_layer ace_print-margin-layer",this.$printMarginEl=h.createElement("div"),this.$printMarginEl.className="ace_print-margin",_.appendChild(this.$printMarginEl),this.content.insertBefore(_,this.content.firstChild)}var O=this.$printMarginEl.style;O.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",O.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},k.prototype.getContainerElement=function(){return this.container},k.prototype.getMouseEventTarget=function(){return this.scroller},k.prototype.getTextAreaContainer=function(){return this.container},k.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var _=this.textarea.style,O=this.$composition;if(!this.$keepTextAreaAtCursor&&!O){h.translate(this.textarea,-100,0);return}var $=this.$cursorLayer.$pixelPos;if($){O&&O.markerRange&&($=this.$cursorLayer.getPixelPosition(O.markerRange.start,!0));var A=this.layerConfig,C=$.top,w=$.left;C-=A.offset;var x=O&&O.useTextareaForIME||g.isMobile?this.lineHeight:1;if(C<0||C>A.height-x){h.translate(this.textarea,0,0);return}var I=1,F=this.$size.height-x;if(!O)C+=this.lineHeight;else if(O.useTextareaForIME){var R=this.textarea.value;I=this.characterWidth*this.session.$getStringScreenWidth(R)[0]}else C+=this.lineHeight+2;w-=this.scrollLeft,w>this.$size.scrollerWidth-I&&(w=this.$size.scrollerWidth-I),w+=this.gutterWidth+this.margin.left,h.setStyle(_,"height",x+"px"),h.setStyle(_,"width",I+"px"),h.translate(this.textarea,Math.min(w,this.$size.scrollerWidth-I),Math.min(C,F))}}},k.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},k.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},k.prototype.getLastFullyVisibleRow=function(){var _=this.layerConfig,O=_.lastRow,$=this.session.documentToScreenRow(O,0)*_.lineHeight;return $-this.session.getScrollTop()>_.height-_.lineHeight?O-1:O},k.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},k.prototype.setPadding=function(_){this.$padding=_,this.$textLayer.setPadding(_),this.$cursorLayer.setPadding(_),this.$markerFront.setPadding(_),this.$markerBack.setPadding(_),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},k.prototype.setScrollMargin=function(_,O,$,A){var C=this.scrollMargin;C.top=_|0,C.bottom=O|0,C.right=A|0,C.left=$|0,C.v=C.top+C.bottom,C.h=C.left+C.right,C.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-C.top),this.updateFull()},k.prototype.setMargin=function(_,O,$,A){var C=this.margin;C.top=_|0,C.bottom=O|0,C.right=A|0,C.left=$|0,C.v=C.top+C.bottom,C.h=C.left+C.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},k.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},k.prototype.setHScrollBarAlwaysVisible=function(_){this.setOption("hScrollBarAlwaysVisible",_)},k.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},k.prototype.setVScrollBarAlwaysVisible=function(_){this.setOption("vScrollBarAlwaysVisible",_)},k.prototype.$updateScrollBarV=function(){var _=this.layerConfig.maxHeight,O=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(_-=(O-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>_-O&&(_=this.scrollTop+O,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(_+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},k.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},k.prototype.freeze=function(){this.$frozen=!0},k.prototype.unfreeze=function(){this.$frozen=!1},k.prototype.$renderChanges=function(_,O){if(this.$changes&&(_|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!_&&!O){this.$changes|=_;return}if(this.$size.$dirty)return this.$changes|=_,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",_),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var $=this.layerConfig;if(_&this.CHANGE_FULL||_&this.CHANGE_SIZE||_&this.CHANGE_TEXT||_&this.CHANGE_LINES||_&this.CHANGE_SCROLL||_&this.CHANGE_H_SCROLL){if(_|=this.$computeLayerConfig()|this.$loop.clear(),$.firstRow!=this.layerConfig.firstRow&&$.firstRowScreen==this.layerConfig.firstRowScreen){var A=this.scrollTop+($.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;A>0&&(this.scrollTop=A,_=_|this.CHANGE_SCROLL,_|=this.$computeLayerConfig()|this.$loop.clear())}$=this.layerConfig,this.$updateScrollBarV(),_&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),h.translate(this.content,-this.scrollLeft,-$.offset);var C=$.width+2*this.$padding+"px",w=$.minHeight+"px";h.setStyle(this.content.style,"width",C),h.setStyle(this.content.style,"height",w)}if(_&this.CHANGE_H_SCROLL&&(h.translate(this.content,-this.scrollLeft,-$.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),_&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update($),this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($),this.$markerBack.update($),this.$markerFront.update($),this.$cursorLayer.update($),this.$moveTextAreaToCursor(),this._signal("afterRender",_);return}if(_&this.CHANGE_SCROLL){this.$changedLines=null,_&this.CHANGE_TEXT||_&this.CHANGE_LINES?this.$textLayer.update($):this.$textLayer.scrollLines($),this.$showGutter&&(_&this.CHANGE_GUTTER||_&this.CHANGE_LINES?this.$gutterLayer.update($):this.$gutterLayer.scrollLines($)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($),this.$markerBack.update($),this.$markerFront.update($),this.$cursorLayer.update($),this.$moveTextAreaToCursor(),this._signal("afterRender",_);return}_&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update($),this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_LINES?((this.$updateLines()||_&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_TEXT||_&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)):_&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight($),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators($)),_&this.CHANGE_CURSOR&&(this.$cursorLayer.update($),this.$moveTextAreaToCursor()),_&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update($),_&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update($),this._signal("afterRender",_)},k.prototype.$autosize=function(){var _=this.session.getScreenLength()*this.lineHeight,O=this.$maxLines*this.lineHeight,$=Math.min(O,Math.max((this.$minLines||1)*this.lineHeight,_))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&($+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&$>this.$maxPixelHeight&&($=this.$maxPixelHeight);var A=$<=2*this.lineHeight,C=!A&&_>O;if($!=this.desiredHeight||this.$size.height!=this.desiredHeight||C!=this.$vScroll){C!=this.$vScroll&&(this.$vScroll=C,this.scrollBarV.setVisible(C));var w=this.container.clientWidth;this.container.style.height=$+"px",this.$updateCachedSize(!0,this.$gutterWidth,w,$),this.desiredHeight=$,this._signal("autosize")}},k.prototype.$computeLayerConfig=function(){var _=this.session,O=this.$size,$=O.height<=2*this.lineHeight,A=this.session.getScreenLength(),C=A*this.lineHeight,w=this.$getLongestLine(),x=!$&&(this.$hScrollBarAlwaysVisible||O.scrollerWidth-w-2*this.$padding<0),I=this.$horizScroll!==x;I&&(this.$horizScroll=x,this.scrollBarH.setVisible(x));var F=this.$vScroll;this.$maxLines&&this.lineHeight>1&&(this.$autosize(),$=O.height<=2*this.lineHeight);var R=O.scrollerHeight+this.lineHeight,B=!this.$maxLines&&this.$scrollPastEnd?(O.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;C+=B;var P=this.scrollMargin;this.session.setScrollTop(Math.max(-P.top,Math.min(this.scrollTop,C-O.scrollerHeight+P.bottom))),this.session.setScrollLeft(Math.max(-P.left,Math.min(this.scrollLeft,w+2*this.$padding-O.scrollerWidth+P.right)));var V=!$&&(this.$vScrollBarAlwaysVisible||O.scrollerHeight-C+B<0||this.scrollTop>P.top),W=F!==V;W&&(this.$vScroll=V,this.scrollBarV.setVisible(V));var H=this.scrollTop%this.lineHeight,U=Math.ceil(R/this.lineHeight)-1,G=Math.max(0,Math.round((this.scrollTop-H)/this.lineHeight)),Y=G+U,Q,ee,ne=this.lineHeight;G=_.screenToDocumentRow(G,0);var se=_.getFoldLine(G);se&&(G=se.start.row),Q=_.documentToScreenRow(G,0),ee=_.getRowLength(G)*ne,Y=Math.min(_.screenToDocumentRow(Y,0),_.getLength()-1),R=O.scrollerHeight+_.getRowLength(Y)*ne+ee,H=this.scrollTop-Q*ne;var ge=0;return(this.layerConfig.width!=w||I)&&(ge=this.CHANGE_H_SCROLL),(I||W)&&(ge|=this.$updateCachedSize(!0,this.gutterWidth,O.width,O.height),this._signal("scrollbarVisibilityChanged"),W&&(w=this.$getLongestLine())),this.layerConfig={width:w,padding:this.$padding,firstRow:G,firstRowScreen:Q,lastRow:Y,lineHeight:ne,characterWidth:this.characterWidth,minHeight:R,maxHeight:C,offset:H,gutterOffset:ne?Math.max(0,Math.ceil((H+O.height-O.scrollerHeight)/ne)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(w-this.$padding),ge},k.prototype.$updateLines=function(){if(this.$changedLines){var _=this.$changedLines.firstRow,O=this.$changedLines.lastRow;this.$changedLines=null;var $=this.layerConfig;if(!(_>$.lastRow+1)&&!(O<$.firstRow)){if(O===1/0){this.$showGutter&&this.$gutterLayer.update($),this.$textLayer.update($);return}return this.$textLayer.updateLines($,_,O),!0}}},k.prototype.$getLongestLine=function(){var _=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(_+=1),this.$textLayer&&_>this.$textLayer.MAX_LINE_LENGTH&&(_=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(_*this.characterWidth))},k.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},k.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},k.prototype.addGutterDecoration=function(_,O){this.$gutterLayer.addGutterDecoration(_,O)},k.prototype.removeGutterDecoration=function(_,O){this.$gutterLayer.removeGutterDecoration(_,O)},k.prototype.updateBreakpoints=function(_){this._rows=_,this.$loop.schedule(this.CHANGE_GUTTER)},k.prototype.setAnnotations=function(_){this.$gutterLayer.setAnnotations(_),this.$loop.schedule(this.CHANGE_GUTTER)},k.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},k.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},k.prototype.showCursor=function(){this.$cursorLayer.showCursor()},k.prototype.scrollSelectionIntoView=function(_,O,$){this.scrollCursorIntoView(_,$),this.scrollCursorIntoView(O,$)},k.prototype.scrollCursorIntoView=function(_,O,$){if(this.$size.scrollerHeight!==0){var A=this.$cursorLayer.getPixelPosition(_),C=A.left,w=A.top,x=$&&$.top||0,I=$&&$.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var F=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;F+x>w?(O&&F+x>w+this.lineHeight&&(w-=O*this.$size.scrollerHeight),w===0&&(w=-this.scrollMargin.top),this.session.setScrollTop(w)):F+this.$size.scrollerHeight-I=1-this.scrollMargin.top||O>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||_<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||_>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},k.prototype.pixelToScreenCoordinates=function(_,O){var $;if(this.$hasCssTransforms){$={top:0,left:0};var A=this.$fontMetrics.transformCoordinates([_,O]);_=A[1]-this.gutterWidth-this.margin.left,O=A[0]}else $=this.scroller.getBoundingClientRect();var C=_+this.scrollLeft-$.left-this.$padding,w=C/this.characterWidth,x=Math.floor((O+this.scrollTop-$.top)/this.lineHeight),I=this.$blockCursor?Math.floor(w):Math.round(w);return{row:x,column:I,side:w-I>0?1:-1,offsetX:C}},k.prototype.screenToTextCoordinates=function(_,O){var $;if(this.$hasCssTransforms){$={top:0,left:0};var A=this.$fontMetrics.transformCoordinates([_,O]);_=A[1]-this.gutterWidth-this.margin.left,O=A[0]}else $=this.scroller.getBoundingClientRect();var C=_+this.scrollLeft-$.left-this.$padding,w=C/this.characterWidth,x=this.$blockCursor?Math.floor(w):Math.round(w),I=Math.floor((O+this.scrollTop-$.top)/this.lineHeight);return this.session.screenToDocumentPosition(I,Math.max(x,0),C)},k.prototype.textToScreenCoordinates=function(_,O){var $=this.scroller.getBoundingClientRect(),A=this.session.documentToScreenPosition(_,O),C=this.$padding+(this.session.$bidiHandler.isBidiRow(A.row,_)?this.session.$bidiHandler.getPosLeft(A.column):Math.round(A.column*this.characterWidth)),w=A.row*this.lineHeight;return{pageX:$.left+C-this.scrollLeft,pageY:$.top+w-this.scrollTop}},k.prototype.visualizeFocus=function(){h.addCssClass(this.container,"ace_focus")},k.prototype.visualizeBlur=function(){h.removeCssClass(this.container,"ace_focus")},k.prototype.showComposition=function(_){this.$composition=_,_.cssText||(_.cssText=this.textarea.style.cssText),_.useTextareaForIME==null&&(_.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(h.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):_.markerId=this.session.addMarker(_.markerRange,"ace_composition_marker","text")},k.prototype.setCompositionText=function(_){var O=this.session.selection.cursor;this.addToken(_,"composition_placeholder",O.row,O.column),this.$moveTextAreaToCursor()},k.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),h.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var _=this.session.selection.cursor;this.removeExtraToken(_.row,_.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},k.prototype.setGhostText=function(_,O){var $=this.session.selection.cursor,A=O||{row:$.row,column:$.column};this.removeGhostText();var C=this.$calculateWrappedTextChunks(_,A);this.addToken(C[0].text,"ghost_text",A.row,A.column),this.$ghostText={text:_,position:{row:A.row,column:A.column}};var w=h.createElement("div");if(C.length>1){var x=this.hideTokensAfterPosition(A.row,A.column),I;C.slice(1).forEach(function(W){var H=h.createElement("div"),U=h.createElement("span");U.className="ace_ghost_text",W.wrapped&&(H.className="ghost_text_line_wrapped"),W.text.length===0&&(W.text=" "),U.appendChild(h.createTextNode(W.text)),H.appendChild(U),w.appendChild(H),I=H}),x.forEach(function(W){var H=h.createElement("span");S(W.type)||(H.className="ace_"+W.type.replace(/\./g," ace_")),H.appendChild(h.createTextNode(W.value)),I.appendChild(H)}),this.$ghostTextWidget={el:w,row:A.row,column:A.column,className:"ace_ghost_text_container"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var F=this.$cursorLayer.getPixelPosition(A,!0),R=this.container,B=R.getBoundingClientRect().height,P=C.length*this.lineHeight,V=P0){var R=0;F.push(C[x].length);for(var B=0;B1||Math.abs(_.$size.height-A)>1?_.$resizeTimer.delay():_.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},k}();T.prototype.CHANGE_CURSOR=1,T.prototype.CHANGE_MARKER=2,T.prototype.CHANGE_GUTTER=4,T.prototype.CHANGE_SCROLL=8,T.prototype.CHANGE_LINES=16,T.prototype.CHANGE_TEXT=32,T.prototype.CHANGE_SIZE=64,T.prototype.CHANGE_MARKER_BACK=128,T.prototype.CHANGE_MARKER_FRONT=256,T.prototype.CHANGE_FULL=512,T.prototype.CHANGE_H_SCROLL=1024,T.prototype.$changes=0,T.prototype.$padding=null,T.prototype.$frozen=!1,T.prototype.STEPS=8,o.implement(T.prototype,D),a.defineOptions(T.prototype,"renderer",{useResizeObserver:{set:function(k){!k&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):k&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(k){this.$textLayer.setShowInvisibles(k)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(k){typeof k=="number"&&(this.$printMarginColumn=k),this.$showPrintMargin=!!k,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(k){this.$gutter.style.display=k?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(k){this.$gutterLayer.$useSvgGutterIcons=k},initialValue:!1},showFoldedAnnotations:{set:function(k){this.$gutterLayer.$showFoldedAnnotations=k},initialValue:!1},fadeFoldWidgets:{set:function(k){h.setCssClass(this.$gutter,"ace_fade-fold-widgets",k)},initialValue:!1},showFoldWidgets:{set:function(k){this.$gutterLayer.setShowFoldWidgets(k),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(k){this.$textLayer.setDisplayIndentGuides(k)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(k){this.$textLayer.setHighlightIndentGuides(k)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(k){this.$gutterLayer.setHighlightGutterLine(k),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(k){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(k){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(k){typeof k=="number"&&(k=k+"px"),this.container.style.fontSize=k,this.updateFontSize()},initialValue:12},fontFamily:{set:function(k){this.container.style.fontFamily=k,this.updateFontSize()}},maxLines:{set:function(k){this.updateFull()}},minLines:{set:function(k){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(k){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(k){k=+k||0,this.$scrollPastEnd!=k&&(this.$scrollPastEnd=k,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(k){this.$gutterLayer.$fixedWidth=!!k,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(k){this.$updateCustomScrollbar(k)},initialValue:!1},theme:{set:function(k){this.setTheme(k)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!g.isMobile&&!g.isIE}}),u.VirtualRenderer=T}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(i,u,v){var o=i("../lib/oop"),h=i("../lib/net"),p=i("../lib/event_emitter").EventEmitter,a=i("../config");function d(l){var s="importScripts('"+h.qualifyURL(l)+"');";try{return new Blob([s],{type:"application/javascript"})}catch{var c=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,f=new c;return f.append(s),f.getBlob("application/javascript")}}function e(l){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var s=d(l),c=window.URL||window.webkitURL,f=c.createObjectURL(s);return new Worker(f)}return new Worker(l)}var t=function(l){l.postMessage||(l=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=l,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,p),this.$createWorkerFromOldConfig=function(l,s,c,f,m){if(i.nameToUrl&&!i.toUrl&&(i.toUrl=i.nameToUrl),a.get("packaged")||!i.toUrl)f=f||a.moduleUrl(s,"worker");else{var y=this.$normalizePath;f=f||y(i.toUrl("ace/worker/worker.js",null,"_"));var D={};l.forEach(function(E){D[E]=y(i.toUrl(E,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=e(f),m&&this.send("importScripts",m),this.$worker.postMessage({init:!0,tlns:D,module:s,classname:c}),this.$worker},this.onMessage=function(l){var s=l.data;switch(s.type){case"event":this._signal(s.name,{data:s.data});break;case"call":var c=this.callbacks[s.id];c&&(c(s.data),delete this.callbacks[s.id]);break;case"error":this.reportError(s.data);break;case"log":window.console&&console.log&&console.log.apply(console,s.data);break}},this.reportError=function(l){window.console&&console.error&&console.error(l)},this.$normalizePath=function(l){return h.qualifyURL(l)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(l){l.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(l,s){this.$worker.postMessage({command:l,args:s})},this.call=function(l,s,c){if(c){var f=this.callbackId++;this.callbacks[f]=c,s.push(f)}this.send(l,s)},this.emit=function(l,s){try{s.data&&s.data.err&&(s.data.err={message:s.data.err.message,stack:s.data.err.stack,code:s.data.err.code}),this.$worker&&this.$worker.postMessage({event:l,data:{data:s.data}})}catch(c){console.error(c.stack)}},this.attachToDocument=function(l){this.$doc&&this.terminate(),this.$doc=l,this.call("setValue",[l.getValue()]),l.on("change",this.changeListener,!0)},this.changeListener=function(l){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),l.action=="insert"?this.deltaQueue.push(l.start,l.lines):this.deltaQueue.push(l.start,l.end)},this.$sendDeltaQueue=function(){var l=this.deltaQueue;l&&(this.deltaQueue=null,l.length>50&&l.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:l}))}}).call(t.prototype);var r=function(l,s,c){var f=null,m=!1,y=Object.create(p),D=[],E=new t({messageBuffer:D,terminate:function(){},postMessage:function(g){D.push(g),f&&(m?setTimeout(b):b())}});E.setEmitSync=function(g){m=g};var b=function(){var g=D.shift();g.command?f[g.command].apply(f,g.args):g.event&&y._signal(g.event,g.data)};return y.postMessage=function(g){E.onMessage({data:g})},y.callback=function(g,S){this.postMessage({type:"call",id:S,data:g})},y.emit=function(g,S){this.postMessage({type:"event",name:g,data:S})},a.loadModule(["worker",s],function(g){for(f=new g[c](y);D.length;)b()}),E};u.UIWorkerClient=r,u.WorkerClient=t,u.createWorker=e}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(i,u,v){var o=i("./range").Range,h=i("./lib/event_emitter").EventEmitter,p=i("./lib/oop"),a=function(){function d(e,t,r,l,s,c){var f=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=s,this.othersClass=c,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=l,this.$onCursorChange=function(){setTimeout(function(){f.onCursorChange()})},this.$pos=r;var m=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=m.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)}return d.prototype.setup=function(){var e=this,t=this.doc,r=this.session;this.selectionBefore=r.selection.toJSON(),r.selection.inMultiSelectMode&&r.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var l=this.pos;l.$insertRight=!0,l.detach(),l.markerId=r.addMarker(new o(l.row,l.column,l.row,l.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(s){var c=t.createAnchor(s.row,s.column);c.$insertRight=!0,c.detach(),e.others.push(c)}),r.setUndoSelect(!1)},d.prototype.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(r){r.markerId=e.addMarker(new o(r.row,r.column,r.row,r.column+t.length),t.othersClass,null,!1)})}},d.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;if(this.updateAnchors(e),l&&(this.length+=r),l&&!this.session.$fromUndo){if(e.action==="insert")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+s};this.doc.insertMergedLines(m,e.lines)}else if(e.action==="remove")for(var c=this.others.length-1;c>=0;c--){var f=this.others[c],m={row:f.row,column:f.column+s};this.doc.remove(new o(m.row,m.column,m.row,m.column-r))}}this.$updating=!1,this.updateMarkers()}},d.prototype.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},d.prototype.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,r=function(s,c){t.removeMarker(s.markerId),s.markerId=t.addMarker(new o(s.row,s.column,s.row,s.column+e.length),c,null,!1)};r(this.pos,this.mainClass);for(var l=this.others.length;l--;)r(this.others[l],this.othersClass)}},d.prototype.onCursorChange=function(e){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},d.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},d.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,r=0;r1?h.multiSelect.joinSelections():h.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(h){h.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(h){h.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(h){h.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],u.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(h){h.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(h){return h&&h.inMultiSelectMode}}];var o=i("../keyboard/hash_handler").HashHandler;u.keyboardHandler=new o(u.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(i,u,v){var o=i("./range_list").RangeList,h=i("./range").Range,p=i("./selection").Selection,a=i("./mouse/multi_select_handler").onMouseDown,d=i("./lib/event"),e=i("./lib/lang"),t=i("./commands/multi_select_commands");u.commands=t.defaultCommands.concat(t.multiSelectCommands);var r=i("./search").Search,l=new r;function s(E,b,g){return l.$options.wrap=!0,l.$options.needle=b,l.$options.backwards=g==-1,l.find(E)}var c=i("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(c.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(E,b){if(E){if(!this.inMultiSelectMode&&this.rangeCount===0){var g=this.toOrientedRange();if(this.rangeList.add(g),this.rangeList.add(E),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),b||this.fromOrientedRange(E);this.rangeList.removeAll(),this.rangeList.add(g),this.$onAddRange(g)}E.cursor||(E.cursor=E.end);var S=this.rangeList.add(E);return this.$onAddRange(E),S.length&&this.$onRemoveRange(S),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(E)}},this.toSingleRange=function(E){E=E||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),E&&this.fromOrientedRange(E)},this.substractPoint=function(E){var b=this.rangeList.substractPoint(E);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var E=this.rangeList.merge();E.length&&this.$onRemoveRange(E)},this.$onAddRange=function(E){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(E),this._signal("addRange",{range:E})},this.$onRemoveRange=function(E){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();E.push(b),this.rangeCount=0}for(var g=E.length;g--;){var S=this.ranges.indexOf(E[g]);this.ranges.splice(S,1)}this._signal("removeRange",{ranges:E}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new o,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var E=this.ranges.length?this.ranges:[this.getRange()],b=[],g=0;g1){var E=this.rangeList.ranges,b=E[E.length-1],g=h.fromPoints(E[0].start,b.end);this.toSingleRange(),this.setSelectionRange(g,b.cursor==b.start)}else{var S=this.session.documentToScreenPosition(this.cursor),T=this.session.documentToScreenPosition(this.anchor),k=this.rectangularRangeBlock(S,T);k.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(E,b,g){var S=[],T=E.column0;)R--;if(R>0)for(var B=0;S[B].isEmpty();)B++;for(var P=R;P>=B;P--)S[P].isEmpty()&&S.splice(P,1)}return S}}.call(p.prototype);var f=i("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(E){E.cursor||(E.cursor=E.end);var b=this.getSelectionStyle();return E.marker=this.session.addMarker(E,"ace_selection",b),this.session.$selectionMarkers.push(E),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,E},this.removeSelectionMarker=function(E){if(E.marker){this.session.removeMarker(E.marker);var b=this.session.$selectionMarkers.indexOf(E);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(E){for(var b=this.session.$selectionMarkers,g=E.length;g--;){var S=E[g];if(S.marker){this.session.removeMarker(S.marker);var T=b.indexOf(S);T!=-1&&b.splice(T,1)}}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(E){this.addSelectionMarker(E.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(E){this.removeSelectionMarkers(E.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(E){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(t.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(E){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(t.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(E){var b=E.command,g=E.editor;if(g.multiSelect){if(b.multiSelectAction)b.multiSelectAction=="forEach"?S=g.forEachSelection(b,E.args):b.multiSelectAction=="forEachLine"?S=g.forEachSelection(b,E.args,!0):b.multiSelectAction=="single"?(g.exitMultiSelectMode(),S=b.exec(g,E.args||{})):S=b.multiSelectAction(g,E.args||{});else{var S=b.exec(g,E.args||{});g.multiSelect.addRange(g.multiSelect.toOrientedRange()),g.multiSelect.mergeOverlappingRanges()}return S}},this.forEachSelection=function(E,b,g){if(!this.inVirtualSelectionMode){var S=g&&g.keepOrder,T=g==!0||g&&g.$byLines,k=this.session,_=this.selection,O=_.rangeList,$=(S?_:O).ranges,A;if(!$.length)return E.exec?E.exec(this,b||{}):E(this,b||{});var C=_._eventRegistry;_._eventRegistry={};var w=new p(k);this.inVirtualSelectionMode=!0;for(var x=$.length;x--;){if(T)for(;x>0&&$[x].start.row==$[x-1].end.row;)x--;w.fromOrientedRange($[x]),w.index=x,this.selection=k.selection=w;var I=E.exec?E.exec(this,b||{}):E(this,b||{});!A&&I!==void 0&&(A=I),w.toOrientedRange($[x])}w.detach(),this.selection=k.selection=_,this.inVirtualSelectionMode=!1,_._eventRegistry=C,_.mergeOverlappingRanges(),_.ranges[0]&&_.fromOrientedRange(_.ranges[0]);var F=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),F&&F.from==F.to&&this.renderer.animateScrolling(F.from),A}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var E="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var b=this.multiSelect.rangeList.ranges,g=[],S=0;S0);_<0&&(_=0),O>=A&&(O=A-1)}var w=this.session.removeFullLines(_,O);w=this.$reAlignText(w,$),this.session.insert({row:_,column:0},w.join(` `)+` -`),A||(_.start.column=0,_.end.column=w[w.length-1].length),this.selection.setRange(_)}else{M.forEach(function(O){b.substractPoint(O.cursor)});var x=0,I=1/0,R=g.map(function(O){var P=O.cursor,B=E.getLine(P.row),V=B.substr(P.column).search(/\S/g);return V==-1&&(V=0),P.column>x&&(x=P.column),VW?E.insert(B,e.stringRepeat(" ",V-W)):E.remove(new h(B.row,B.column,B.row,B.column-V+W)),O.start.column=O.end.column=x,O.start.row=O.end.row=B.row,O.cursor=O.end}),b.fromOrientedRange(g[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(E,b){var g=!0,S=!0,M,_,T;return E.map(function(w){var x=w.match(/(\s*)(.*?)(\s*)([=:].*)/);return x?M==null?(M=x[1].length,_=x[2].length,T=x[3].length,x):(M+_+T!=x[1].length+x[2].length+x[3].length&&(S=!1),M!=x[1].length&&(g=!1),M>x[1].length&&(M=x[1].length),_x[3].length&&(T=x[3].length),x):[w]}).map(b?A:g?S?$:A:C);function F(w){return e.stringRepeat(" ",w)}function A(w){return w[2]?F(M)+w[2]+F(_-w[2].length+T)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function $(w){return w[2]?F(M+_-w[2].length)+w[2]+F(T)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function C(w){return w[2]?F(M)+w[2]+F(T)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}}}).call(f.prototype);function m(E,b){return E.row==b.row&&E.column==b.column}u.onSessionChange=function(E){var b=E.session;b&&!b.multiSelect&&(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b&&b.multiSelect;var g=E.oldSession;g&&(g.multiSelect.off("addRange",this.$onAddRange),g.multiSelect.off("removeRange",this.$onRemoveRange),g.multiSelect.off("multiSelect",this.$onMultiSelect),g.multiSelect.off("singleSelect",this.$onSingleSelect),g.multiSelect.lead.off("change",this.$checkMultiselectChange),g.multiSelect.anchor.off("change",this.$checkMultiselectChange)),b&&(b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),b.multiSelect.lead.on("change",this.$checkMultiselectChange),b.multiSelect.anchor.on("change",this.$checkMultiselectChange)),b&&this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function y(E){E.$multiselectOnSessionChange||(E.$onAddRange=E.$onAddRange.bind(E),E.$onRemoveRange=E.$onRemoveRange.bind(E),E.$onMultiSelect=E.$onMultiSelect.bind(E),E.$onSingleSelect=E.$onSingleSelect.bind(E),E.$multiselectOnSessionChange=u.onSessionChange.bind(E),E.$checkMultiselectChange=E.$checkMultiselectChange.bind(E),E.$multiselectOnSessionChange(E),E.on("changeSession",E.$multiselectOnSessionChange),E.on("mousedown",s),E.commands.addCommands(t.defaultCommands),D(E))}function D(E){if(!E.textInput)return;var b=E.textInput.getElement(),g=!1;p.addListener(b,"keydown",function(M){var _=M.keyCode==18&&!(M.ctrlKey||M.shiftKey||M.metaKey);E.$blockSelectEnabled&&_?g||(E.renderer.setMouseCursor("crosshair"),g=!0):g&&S()},E),p.addListener(b,"keyup",S,E),p.addListener(b,"blur",S,E);function S(M){g&&(E.renderer.setMouseCursor(""),g=!1)}}u.MultiSelect=y,i("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(E){y(this),E?this.on("mousedown",s):this.off("mousedown",s)},value:!0},enableBlockSelect:{set:function(E){this.$blockSelectEnabled=E},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(i,u,v){var o=i("../../range").Range,h=u.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(d,s,p){var e=d.getLine(p);return this.foldingStartMarker.test(e)?"start":s=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(e)?"end":""},this.getFoldWidgetRange=function(d,s,p){return null},this.indentationBlock=function(d,s,p){var e=/\S/,t=d.getLine(s),r=t.search(e);if(r!=-1){for(var l=p||t.length,a=d.getLength(),c=s,f=s;++sc){var D=d.getLine(f).length;return new o(c,l,f,D)}}},this.openingBracketBlock=function(d,s,p,e,t){var r={row:p,column:e+1},l=d.$findClosingBracket(s,r,t);if(l){var a=d.foldWidgets[l.row];return a==null&&(a=d.getFoldWidget(l.row)),a=="start"&&l.row>r.row&&(l.row--,l.column=d.getLine(l.row).length),o.fromPoints(r,l)}},this.closingBracketBlock=function(d,s,p,e,t){var r={row:p,column:e},l=d.$findOpeningBracket(s,r);if(l)return l.column++,r.column--,o.fromPoints(l,r)}}).call(h.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(i,u,v){var o=i("../lib/dom"),h=i("../range").Range,d=i("../config").nls;function s(e,t,r){for(var l=0,a=e.length-1;l<=a;){var c=l+a>>1,f=r(t,e[c]);if(f>0)l=c+1;else if(f<0)a=c-1;else return c}return-(l+1)}function p(e,t,r){var l=e.getAnnotations().sort(h.comparePoints);if(l.length){var a=s(l,{row:t,column:-1},h.comparePoints);a<0&&(a=-a-1),a>=l.length?a=r>0?0:l.length-1:a===0&&r<0&&(a=l.length-1);var c=l[a];if(!(!c||!r)){if(c.row===t){do c=l[a+=r];while(c&&c.row===t);if(!c)return l.slice()}var f=[];t=c.row;do f[r<0?"unshift":"push"](c),c=l[a+=r];while(c&&c.row==t);return f.length&&f}}}u.showErrorMarker=function(e,t){var r=e.session,l=e.getCursorPosition(),a=l.row,c=r.widgetManager.getWidgetsAtRow(a).filter(function(M){return M.type=="errorMarker"})[0];c?c.destroy():a-=t;var f=p(r,a,t),m;if(f){var y=f[0];l.column=(y.pos&&typeof y.column!="number"?y.pos.sc:y.column)||0,l.row=y.row,m=e.renderer.$gutterLayer.$annotations[l.row]}else{if(c)return;m={displayText:[d("error-marker.good-state","Looks good!")],className:"ace_ok"}}e.session.unfold(l.row),e.selection.moveToPosition(l);var D={row:l.row,fixedWidth:!0,coverGutter:!0,el:o.createElement("div"),type:"errorMarker"},E=D.el.appendChild(o.createElement("div")),b=D.el.appendChild(o.createElement("div"));b.className="error_widget_arrow "+m.className;var g=e.renderer.$cursorLayer.getPixelPosition(l).left;b.style.left=g+e.renderer.gutterWidth-5+"px",D.el.className="error_widget_wrapper",E.className="error_widget "+m.className,m.displayText.forEach(function(M,_){E.appendChild(o.createTextNode(M)),_x&&(x=B.column),VW?E.insert(P,e.stringRepeat(" ",V-W)):E.remove(new h(P.row,P.column,P.row,P.column-V+W)),R.start.column=R.end.column=x,R.start.row=R.end.row=P.row,R.cursor=R.end}),b.fromOrientedRange(g[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(E,b){var g=!0,S=!0,T,k,_;return E.map(function(w){var x=w.match(/(\s*)(.*?)(\s*)([=:].*)/);return x?T==null?(T=x[1].length,k=x[2].length,_=x[3].length,x):(T+k+_!=x[1].length+x[2].length+x[3].length&&(S=!1),T!=x[1].length&&(g=!1),T>x[1].length&&(T=x[1].length),kx[3].length&&(_=x[3].length),x):[w]}).map(b?$:g?S?A:$:C);function O(w){return e.stringRepeat(" ",w)}function $(w){return w[2]?O(T)+w[2]+O(k-w[2].length+_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function A(w){return w[2]?O(T+k-w[2].length)+w[2]+O(_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}function C(w){return w[2]?O(T)+w[2]+O(_)+w[4].replace(/^([=:])\s+/,"$1 "):w[0]}}}).call(f.prototype);function m(E,b){return E.row==b.row&&E.column==b.column}u.onSessionChange=function(E){var b=E.session;b&&!b.multiSelect&&(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b&&b.multiSelect;var g=E.oldSession;g&&(g.multiSelect.off("addRange",this.$onAddRange),g.multiSelect.off("removeRange",this.$onRemoveRange),g.multiSelect.off("multiSelect",this.$onMultiSelect),g.multiSelect.off("singleSelect",this.$onSingleSelect),g.multiSelect.lead.off("change",this.$checkMultiselectChange),g.multiSelect.anchor.off("change",this.$checkMultiselectChange)),b&&(b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),b.multiSelect.lead.on("change",this.$checkMultiselectChange),b.multiSelect.anchor.on("change",this.$checkMultiselectChange)),b&&this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function y(E){E.$multiselectOnSessionChange||(E.$onAddRange=E.$onAddRange.bind(E),E.$onRemoveRange=E.$onRemoveRange.bind(E),E.$onMultiSelect=E.$onMultiSelect.bind(E),E.$onSingleSelect=E.$onSingleSelect.bind(E),E.$multiselectOnSessionChange=u.onSessionChange.bind(E),E.$checkMultiselectChange=E.$checkMultiselectChange.bind(E),E.$multiselectOnSessionChange(E),E.on("changeSession",E.$multiselectOnSessionChange),E.on("mousedown",a),E.commands.addCommands(t.defaultCommands),D(E))}function D(E){if(!E.textInput)return;var b=E.textInput.getElement(),g=!1;d.addListener(b,"keydown",function(T){var k=T.keyCode==18&&!(T.ctrlKey||T.shiftKey||T.metaKey);E.$blockSelectEnabled&&k?g||(E.renderer.setMouseCursor("crosshair"),g=!0):g&&S()},E),d.addListener(b,"keyup",S,E),d.addListener(b,"blur",S,E);function S(T){g&&(E.renderer.setMouseCursor(""),g=!1)}}u.MultiSelect=y,i("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(E){y(this),E?this.on("mousedown",a):this.off("mousedown",a)},value:!0},enableBlockSelect:{set:function(E){this.$blockSelectEnabled=E},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(i,u,v){var o=i("../../range").Range,h=u.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(p,a,d){var e=p.getLine(d);return this.foldingStartMarker.test(e)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(e)?"end":""},this.getFoldWidgetRange=function(p,a,d){return null},this.indentationBlock=function(p,a,d){var e=/\S/,t=p.getLine(a),r=t.search(e);if(r!=-1){for(var l=d||t.length,s=p.getLength(),c=a,f=a;++ac){var D=p.getLine(f).length;return new o(c,l,f,D)}}},this.openingBracketBlock=function(p,a,d,e,t){var r={row:d,column:e+1},l=p.$findClosingBracket(a,r,t);if(l){var s=p.foldWidgets[l.row];return s==null&&(s=p.getFoldWidget(l.row)),s=="start"&&l.row>r.row&&(l.row--,l.column=p.getLine(l.row).length),o.fromPoints(r,l)}},this.closingBracketBlock=function(p,a,d,e,t){var r={row:d,column:e},l=p.$findOpeningBracket(a,r);if(l)return l.column++,r.column--,o.fromPoints(l,r)}}).call(h.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/lib/dom","ace/range","ace/config"],function(i,u,v){var o=i("../lib/dom"),h=i("../range").Range,p=i("../config").nls;function a(e,t,r){for(var l=0,s=e.length-1;l<=s;){var c=l+s>>1,f=r(t,e[c]);if(f>0)l=c+1;else if(f<0)s=c-1;else return c}return-(l+1)}function d(e,t,r){var l=e.getAnnotations().sort(h.comparePoints);if(l.length){var s=a(l,{row:t,column:-1},h.comparePoints);s<0&&(s=-s-1),s>=l.length?s=r>0?0:l.length-1:s===0&&r<0&&(s=l.length-1);var c=l[s];if(!(!c||!r)){if(c.row===t){do c=l[s+=r];while(c&&c.row===t);if(!c)return l.slice()}var f=[];t=c.row;do f[r<0?"unshift":"push"](c),c=l[s+=r];while(c&&c.row==t);return f.length&&f}}}u.showErrorMarker=function(e,t){var r=e.session,l=e.getCursorPosition(),s=l.row,c=r.widgetManager.getWidgetsAtRow(s).filter(function(T){return T.type=="errorMarker"})[0];c?c.destroy():s-=t;var f=d(r,s,t),m;if(f){var y=f[0];l.column=(y.pos&&typeof y.column!="number"?y.pos.sc:y.column)||0,l.row=y.row,m=e.renderer.$gutterLayer.$annotations[l.row]}else{if(c)return;m={displayText:[p("error-marker.good-state","Looks good!")],className:"ace_ok"}}e.session.unfold(l.row),e.selection.moveToPosition(l);var D={row:l.row,fixedWidth:!0,coverGutter:!0,el:o.createElement("div"),type:"errorMarker"},E=D.el.appendChild(o.createElement("div")),b=D.el.appendChild(o.createElement("div"));b.className="error_widget_arrow "+m.className;var g=e.renderer.$cursorLayer.getPixelPosition(l).left;b.style.left=g+e.renderer.gutterWidth-5+"px",D.el.className="error_widget_wrapper",E.className="error_widget "+m.className,m.displayText.forEach(function(T,k){E.appendChild(o.createTextNode(T)),k-1}function vr(z,J){var te=this.__data__,ie=Xt(te,z);return ie<0?(++this.size,te.push([z,J])):te[ie][1]=J,this}qe.prototype.clear=dr,qe.prototype.delete=fr,qe.prototype.get=gr,qe.prototype.has=mr,qe.prototype.set=vr;function vt(z){var J=-1,te=z==null?0:z.length;for(this.clear();++JLe))return!1;var Te=he.get(z);if(Te&&he.get(J))return Te==J;var Pe=-1,Ue=!0,Oe=te&o?new Qt:void 0;for(he.set(z,J),he.set(J,z);++Pe-1&&z%1==0&&z-1&&z%1==0&&z<=h}function ai(z){var J=typeof z;return z!=null&&(J=="object"||J=="function")}function Ht(z){return z!=null&&typeof z=="object"}var li=ke?Rt(ke):Fr;function Jr(z){return Gr(z)?kr(z):Rr(z)}function Yr(){return[]}function Qr(){return!1}L.exports=Kr})(gn,gn.exports);var Ui=gn.exports,Je={};Object.defineProperty(Je,"__esModule",{value:!0});Je.getAceInstance=Je.debounce=Je.editorEvents=Je.editorOptions=void 0;var lo=["minLines","maxLines","readOnly","highlightActiveLine","tabSize","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets"];Je.editorOptions=lo;var uo=["onChange","onFocus","onInput","onBlur","onCopy","onPaste","onSelectionChange","onCursorChange","onScroll","handleOptions","updateRef"];Je.editorEvents=uo;var ho=function(){var L;return typeof window>"u"?(He.window={},L=fn,delete He.window):window.ace?(L=window.ace,L.acequire=window.ace.require||window.ace.acequire):L=fn,L};Je.getAceInstance=ho;var co=function(L,n){var i=null;return function(){var u=this,v=arguments;clearTimeout(i),i=setTimeout(function(){L.apply(u,v)},n)}};Je.debounce=co;var po=Dt&&Dt.__extends||function(){var L=function(n,i){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,v){u.__proto__=v}||function(u,v){for(var o in v)Object.prototype.hasOwnProperty.call(v,o)&&(u[o]=v[o])},L(n,i)};return function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");L(n,i);function u(){this.constructor=n}n.prototype=i===null?Object.create(i):(u.prototype=i.prototype,new u)}}(),jn=Dt&&Dt.__assign||function(){return jn=Object.assign||function(L){for(var n,i=1,u=arguments.length;i0&&this.handleMarkers(S);var F=this.editor.$options;Lt.editorOptions.forEach(function(A){F.hasOwnProperty(A)?i.editor.setOption(A,i.props[A]):i.props[A]&&console.warn("ReactAce: editor option ".concat(A," was activated but not found. Did you need to import a related tool or did you possibly mispell the option?"))}),this.handleOptions(this.props),Array.isArray(b)&&b.forEach(function(A){typeof A.exec=="string"?i.editor.commands.bindKey(A.bindKey,A.exec):i.editor.commands.addCommand(A)}),D&&this.editor.setKeyboardHandler("ace/keyboard/"+D),v&&(this.refEditor.className+=" "+v),E&&E(this.editor),this.editor.resize(),s&&this.editor.focus()},n.prototype.componentDidUpdate=function(i){for(var u=i,v=this.props,o=0;o 0!";if(t!=this.$splits){if(t>this.$splits){for(;this.$splitst;)r=this.$editors[this.$splits-1],this.$container.removeChild(r.container),this.$splits--;this.resize()}},this.getSplits=function(){return this.$splits},this.getEditor=function(t){return this.$editors[t]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(t){this.$editors.forEach(function(r){r.setTheme(t)})},this.setKeyboardHandler=function(t){this.$editors.forEach(function(r){r.setKeyboardHandler(t)})},this.forEach=function(t,r){this.$editors.forEach(t,r)},this.$fontSize="",this.setFontSize=function(t){this.$fontSize=t,this.forEach(function(r){r.setFontSize(t)})},this.$cloneSession=function(t){var r=new p(t.getDocument(),t.getMode()),l=t.getUndoManager();return r.setUndoManager(l),r.setTabSize(t.getTabSize()),r.setUseSoftTabs(t.getUseSoftTabs()),r.setOverwrite(t.getOverwrite()),r.setBreakpoints(t.getBreakpoints()),r.setUseWrapMode(t.getUseWrapMode()),r.setUseWorker(t.getUseWorker()),r.setWrapLimitRange(t.$wrapLimitRange.min,t.$wrapLimitRange.max),r.$foldData=t.$cloneFoldData(),r},this.setSession=function(t,r){var l;r==null?l=this.$cEditor:l=this.$editors[r];var a=this.$editors.some(function(c){return c.session===t});return a&&(t=this.$cloneSession(t)),l.setSession(t),t},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(t){this.$orientation!=t&&(this.$orientation=t,this.resize())},this.resize=function(){var t=this.$container.clientWidth,r=this.$container.clientHeight,l;if(this.$orientation==this.BESIDE)for(var a=t/this.$splits,c=0;c-1}function Go(L,n){var i=this.__data__,u=vn(i,L);return u<0?i.push([L,n]):i[u][1]=n,this}Ft.prototype.clear=zo;Ft.prototype.delete=jo;Ft.prototype.get=Vo;Ft.prototype.has=Uo;Ft.prototype.set=Go;function xt(L){var n=-1,i=L?L.length:0;for(this.clear();++n0&&i.handleMarkers(R,A);for(var C=0;C"u"&&(this.Diff_Timeout<=0?s=Number.MAX_VALUE:s=new Date().getTime()+this.Diff_Timeout*1e3);var p=s;if(o==null||h==null)throw new Error("Null input. (diff_main)");if(o==h)return o?[new n.Diff(v,o)]:[];typeof d>"u"&&(d=!0);var e=d,t=this.diff_commonPrefix(o,h),r=o.substring(0,t);o=o.substring(t),h=h.substring(t),t=this.diff_commonSuffix(o,h);var l=o.substring(o.length-t);o=o.substring(0,o.length-t),h=h.substring(0,h.length-t);var a=this.diff_compute_(o,h,e,p);return r&&a.unshift(new n.Diff(v,r)),l&&a.push(new n.Diff(v,l)),this.diff_cleanupMerge(a),a},n.prototype.diff_compute_=function(o,h,d,s){var p;if(!o)return[new n.Diff(u,h)];if(!h)return[new n.Diff(i,o)];var e=o.length>h.length?o:h,t=o.length>h.length?h:o,r=e.indexOf(t);if(r!=-1)return p=[new n.Diff(u,e.substring(0,r)),new n.Diff(v,t),new n.Diff(u,e.substring(r+t.length))],o.length>h.length&&(p[0][0]=p[2][0]=i),p;if(t.length==1)return[new n.Diff(i,o),new n.Diff(u,h)];var l=this.diff_halfMatch_(o,h);if(l){var a=l[0],c=l[1],f=l[2],m=l[3],y=l[4],D=this.diff_main(a,f,d,s),E=this.diff_main(c,m,d,s);return D.concat([new n.Diff(v,y)],E)}return d&&o.length>100&&h.length>100?this.diff_lineMode_(o,h,s):this.diff_bisect_(o,h,s)},n.prototype.diff_lineMode_=function(o,h,d){var s=this.diff_linesToChars_(o,h);o=s.chars1,h=s.chars2;var p=s.lineArray,e=this.diff_main(o,h,!1,d);this.diff_charsToLines_(e,p),this.diff_cleanupSemantic(e),e.push(new n.Diff(v,""));for(var t=0,r=0,l=0,a="",c="";t=1&&l>=1){e.splice(t-r-l,r+l),t=t-r-l;for(var f=this.diff_main(a,c,!1,d),m=f.length-1;m>=0;m--)e.splice(t,0,f[m]);t=t+f.length}l=0,r=0,a="",c="";break}t++}return e.pop(),e},n.prototype.diff_bisect_=function(o,h,d){for(var s=o.length,p=h.length,e=Math.ceil((s+p)/2),t=e,r=2*e,l=new Array(r),a=new Array(r),c=0;cd);g++){for(var S=-g+y;S<=g-D;S+=2){var M=t+S,_;S==-g||S!=g&&l[M-1]s)D+=2;else if(T>p)y+=2;else if(m){var F=t+f-S;if(F>=0&&F=A)return this.diff_bisectSplit_(o,h,_,T,d)}}}for(var $=-g+E;$<=g-b;$+=2){var F=t+$,A;$==-g||$!=g&&a[F-1]s)b+=2;else if(C>p)E+=2;else if(!m){var M=t+f-$;if(M>=0&&M=A)return this.diff_bisectSplit_(o,h,_,T,d)}}}}return[new n.Diff(i,o),new n.Diff(u,h)]},n.prototype.diff_bisectSplit_=function(o,h,d,s,p){var e=o.substring(0,d),t=h.substring(0,s),r=o.substring(d),l=h.substring(s),a=this.diff_main(e,t,!1,p),c=this.diff_main(r,l,!1,p);return a.concat(c)},n.prototype.diff_linesToChars_=function(o,h){var d=[],s={};d[0]="";function p(l){for(var a="",c=0,f=-1,m=d.length;fs?o=o.substring(d-s):dh.length?o:h,s=o.length>h.length?h:o;if(d.length<4||s.length*2=D.length?[_,T,F,A,M]:null}var t=e(d,s,Math.ceil(d.length/4)),r=e(d,s,Math.ceil(d.length/2)),l;if(!t&&!r)return null;r?t?l=t[4].length>r[4].length?t:r:l=r:l=t;var a,c,f,m;o.length>h.length?(a=l[0],c=l[1],f=l[2],m=l[3]):(f=l[0],m=l[1],a=l[2],c=l[3]);var y=l[4];return[a,c,f,m,y]},n.prototype.diff_cleanupSemantic=function(o){for(var h=!1,d=[],s=0,p=null,e=0,t=0,r=0,l=0,a=0;e0?d[s-1]:-1,t=0,r=0,l=0,a=0,p=null,h=!0)),e++;for(h&&this.diff_cleanupMerge(o),this.diff_cleanupSemanticLossless(o),e=1;e=y?(m>=c.length/2||m>=f.length/2)&&(o.splice(e,0,new n.Diff(v,f.substring(0,m))),o[e-1][1]=c.substring(0,c.length-m),o[e+1][1]=f.substring(m),e++):(y>=c.length/2||y>=f.length/2)&&(o.splice(e,0,new n.Diff(v,c.substring(0,y))),o[e-1][0]=u,o[e-1][1]=f.substring(0,f.length-y),o[e+1][0]=i,o[e+1][1]=c.substring(y),e++),e++}e++}},n.prototype.diff_cleanupSemanticLossless=function(o){function h(y,D){if(!y||!D)return 6;var E=y.charAt(y.length-1),b=D.charAt(0),g=E.match(n.nonAlphaNumericRegex_),S=b.match(n.nonAlphaNumericRegex_),M=g&&E.match(n.whitespaceRegex_),_=S&&b.match(n.whitespaceRegex_),T=M&&E.match(n.linebreakRegex_),F=_&&b.match(n.linebreakRegex_),A=T&&y.match(n.blanklineEndRegex_),$=F&&D.match(n.blanklineStartRegex_);return A||$?5:T||F?4:g&&!M&&_?3:M||_?2:g||S?1:0}for(var d=1;d=f&&(f=m,l=s,a=p,c=e)}o[d-1][1]!=l&&(l?o[d-1][1]=l:(o.splice(d-1,1),d--),o[d][1]=a,c?o[d+1][1]=c:(o.splice(d+1,1),d--))}d++}},n.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,n.whitespaceRegex_=/\s/,n.linebreakRegex_=/[\r\n]/,n.blanklineEndRegex_=/\n\r?\n$/,n.blanklineStartRegex_=/^\r?\n\r?\n/,n.prototype.diff_cleanupEfficiency=function(o){for(var h=!1,d=[],s=0,p=null,e=0,t=!1,r=!1,l=!1,a=!1;e0?d[s-1]:-1,l=a=!1),h=!0)),e++;h&&this.diff_cleanupMerge(o)},n.prototype.diff_cleanupMerge=function(o){o.push(new n.Diff(v,""));for(var h=0,d=0,s=0,p="",e="",t;h1?(d!==0&&s!==0&&(t=this.diff_commonPrefix(e,p),t!==0&&(h-d-s>0&&o[h-d-s-1][0]==v?o[h-d-s-1][1]+=e.substring(0,t):(o.splice(0,0,new n.Diff(v,e.substring(0,t))),h++),e=e.substring(t),p=p.substring(t)),t=this.diff_commonSuffix(e,p),t!==0&&(o[h][1]=e.substring(e.length-t)+o[h][1],e=e.substring(0,e.length-t),p=p.substring(0,p.length-t))),h-=d+s,o.splice(h,d+s),p.length&&(o.splice(h,0,new n.Diff(i,p)),h++),e.length&&(o.splice(h,0,new n.Diff(u,e)),h++),h++):h!==0&&o[h-1][0]==v?(o[h-1][1]+=o[h][1],o.splice(h,1)):h++,s=0,d=0,p="",e="";break}o[o.length-1][1]===""&&o.pop();var r=!1;for(h=1;hh));t++)p=d,e=s;return o.length!=t&&o[t][0]===i?e:e+(h-p)},n.prototype.diff_prettyHtml=function(o){for(var h=[],d=/&/g,s=//g,e=/\n/g,t=0;t");switch(r){case u:h[t]=''+a+"";break;case i:h[t]=''+a+"";break;case v:h[t]=""+a+"";break}}return h.join("")},n.prototype.diff_text1=function(o){for(var h=[],d=0;dthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var s=this.match_alphabet_(h),p=this;function e(_,T){var F=_/h.length,A=Math.abs(d-T);return p.Match_Distance?F+A/p.Match_Distance:A?1:F}var t=this.Match_Threshold,r=o.indexOf(h,d);r!=-1&&(t=Math.min(e(0,r),t),r=o.lastIndexOf(h,d+h.length),r!=-1&&(t=Math.min(e(0,r),t)));var l=1<=D;g--){var S=s[o.charAt(g-1)];if(y===0?b[g]=(b[g+1]<<1|1)&S:b[g]=(b[g+1]<<1|1)&S|((m[g+1]|m[g])<<1|1)|m[g+1],b[g]&l){var M=e(y,g-1);if(M<=t)if(t=M,r=g-1,r>d)D=Math.max(1,2*d-r);else break}}if(e(y+1,d)>t)break;m=b}return r},n.prototype.match_alphabet_=function(o){for(var h={},d=0;d"u")s=o,p=this.diff_main(s,h,!0),p.length>2&&(this.diff_cleanupSemantic(p),this.diff_cleanupEfficiency(p));else if(o&&typeof o=="object"&&typeof h>"u"&&typeof d>"u")p=o,s=this.diff_text1(p);else if(typeof o=="string"&&h&&typeof h=="object"&&typeof d>"u")s=o,p=h;else if(typeof o=="string"&&typeof h=="string"&&d&&typeof d=="object")s=o,p=d;else throw new Error("Unknown call format to patch_make.");if(p.length===0)return[];for(var e=[],t=new n.patch_obj,r=0,l=0,a=0,c=s,f=s,m=0;m=2*this.Patch_Margin&&r&&(this.patch_addContext_(t,c),e.push(t),t=new n.patch_obj,r=0,c=f,l=a);break}y!==u&&(l+=D.length),y!==i&&(a+=D.length)}return r&&(this.patch_addContext_(t,c),e.push(t)),e},n.prototype.patch_deepCopy=function(o){for(var h=[],d=0;dthis.Match_MaxBits?(l=this.match_main(h,r.substring(0,this.Match_MaxBits),t),l!=-1&&(a=this.match_main(h,r.substring(r.length-this.Match_MaxBits),t+r.length-this.Match_MaxBits),(a==-1||l>=a)&&(l=-1))):l=this.match_main(h,r,t),l==-1)p[e]=!1,s-=o[e].length2-o[e].length1;else{p[e]=!0,s=l-t;var c;if(a==-1?c=h.substring(l,l+r.length):c=h.substring(l,a+this.Match_MaxBits),r==c)h=h.substring(0,l)+this.diff_text2(o[e].diffs)+h.substring(l+r.length);else{var f=this.diff_main(r,c,!1);if(r.length>this.Match_MaxBits&&this.diff_levenshtein(f)/r.length>this.Patch_DeleteThreshold)p[e]=!1;else{this.diff_cleanupSemanticLossless(f);for(var m=0,y,D=0;De[0][1].length){var t=h-e[0][1].length;e[0][1]=d.substring(e[0][1].length)+e[0][1],p.start1-=t,p.start2-=t,p.length1+=t,p.length2+=t}if(p=o[o.length-1],e=p.diffs,e.length==0||e[e.length-1][0]!=v)e.push(new n.Diff(v,d)),p.length1+=h,p.length2+=h;else if(h>e[e.length-1][1].length){var t=h-e[e.length-1][1].length;e[e.length-1][1]+=d.substring(0,t),p.length1+=t,p.length2+=t}return d},n.prototype.patch_splitMax=function(o){for(var h=this.Match_MaxBits,d=0;d2*h?(r.length1+=c.length,p+=c.length,l=!1,r.diffs.push(new n.Diff(a,c)),s.diffs.shift()):(c=c.substring(0,h-r.length1-this.Patch_Margin),r.length1+=c.length,p+=c.length,a===v?(r.length2+=c.length,e+=c.length):l=!1,r.diffs.push(new n.Diff(a,c)),c==s.diffs[0][1]?s.diffs.shift():s.diffs[0][1]=s.diffs[0][1].substring(c.length))}t=this.diff_text2(r.diffs),t=t.substring(t.length-this.Patch_Margin);var f=this.diff_text1(s.diffs).substring(0,this.Patch_Margin);f!==""&&(r.length1+=f.length,r.length2+=f.length,r.diffs.length!==0&&r.diffs[r.diffs.length-1][0]===v?r.diffs[r.diffs.length-1][1]+=f:r.diffs.push(new n.Diff(v,f))),l||o.splice(++d,0,r)}}},n.prototype.patch_toText=function(o){for(var h=[],d=0;dm)break;var y=this.getFoldWidgetRange(p,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new h(l,a,c,p.getLine(c).length)},this.getCommentRegionBlock=function(p,e,t){for(var r=e.search(/\s*$/),l=p.getLength(),a=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ta)return new h(a,r,y,e.length)}}.call(s.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(i,u,v){var o=i("../lib/oop"),h=i("./text").Mode,d=i("./json_highlight_rules").JsonHighlightRules,s=i("./matching_brace_outdent").MatchingBraceOutdent,p=i("./folding/cstyle").FoldMode,e=i("../worker/worker_client").WorkerClient,t=function(){this.HighlightRules=d,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new p};o.inherits(t,h),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(r,l,a){var c=this.$getIndent(l);if(r=="start"){var f=l.match(/^.*[\{\(\[]\s*$/);f&&(c+=a)}return c},this.checkOutdent=function(r,l,a){return this.$outdent.checkOutdent(l,a)},this.autoOutdent=function(r,l,a){this.$outdent.autoOutdent(l,a)},this.createWorker=function(r){var l=new e(["ace"],"ace/mode/json_worker","JsonWorker");return l.attachToDocument(r.getDocument()),l.on("annotate",function(a){r.setAnnotations(a.data)}),l.on("terminate",function(){r.clearAnnotations()}),l},this.$id="ace/mode/json"}.call(t.prototype),u.Mode=t}),function(){ace.require(["ace/mode/json"],function(i){L&&(L.exports=i)})}()})($a);var Ta={exports:{}};(function(L,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(i,u,v){var o=i("../lib/oop"),h=i("./text_highlight_rules").TextHighlightRules,d=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(d,h),u.JsonHighlightRules=d}),ace.define("ace/mode/json5_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/json_highlight_rules"],function(i,u,v){var o=i("../lib/oop"),h=i("./json_highlight_rules").JsonHighlightRules,d=function(){h.call(this);var s=[{token:"variable",regex:/[a-zA-Z$_\u00a1-\uffff][\w$\u00a1-\uffff]*\s*(?=:)/},{token:"variable",regex:/['](?:(?:\\.)|(?:[^'\\]))*?[']\s*(?=:)/},{token:"constant.language.boolean",regex:/(?:null)\b/},{token:"string",regex:/'/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/'|$/,next:"start"},{defaultToken:"string"}]},{token:"string",regex:/"(?![^"]*":)/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/"|$/,next:"start"},{defaultToken:"string"}]},{token:"constant.numeric",regex:/[+-]?(?:Infinity|NaN)\b/}];for(var p in this.$rules)this.$rules[p].unshift.apply(this.$rules[p],s);this.normalizeRules()};o.inherits(d,h),u.Json5HighlightRules=d}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(i,u,v){var o=i("../range").Range,h=function(){};(function(){this.checkOutdent=function(d,s){return/^\s+$/.test(d)?/^\s*\}/.test(s):!1},this.autoOutdent=function(d,s){var p=d.getLine(s),e=p.match(/^(\s*\})/);if(!e)return 0;var t=e[1].length,r=d.findMatchingBracket({row:s,column:t});if(!r||r.row==s)return 0;var l=this.$getIndent(d.getLine(r.row));d.replace(new o(s,0,s,t-1),l)},this.$getIndent=function(d){return d.match(/^\s*/)[0]}}).call(h.prototype),u.MatchingBraceOutdent=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(i,u,v){var o=i("../../lib/oop"),h=i("../../range").Range,d=i("./fold_mode").FoldMode,s=u.FoldMode=function(p){p&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+p.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+p.end)))};o.inherits(s,d),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(p,e,t){var r=p.getLine(t);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var l=this._getFoldWidgetBase(p,e,t);return!l&&this.startRegionRe.test(r)?"start":l},this.getFoldWidgetRange=function(p,e,t,r){var l=p.getLine(t);if(this.startRegionRe.test(l))return this.getCommentRegionBlock(p,l,t);var f=l.match(this.foldingStartMarker);if(f){var a=f.index;if(f[1])return this.openingBracketBlock(p,f[1],t,a);var c=p.getCommentFoldRange(t,a+f[0].length,1);return c&&!c.isMultiLine()&&(r?c=this.getSectionRange(p,t):e!="all"&&(c=null)),c}if(e!=="markbegin"){var f=l.match(this.foldingStopMarker);if(f){var a=f.index+f[0].length;return f[1]?this.closingBracketBlock(p,f[1],t,a):p.getCommentFoldRange(t,a,-1)}}},this.getSectionRange=function(p,e){var t=p.getLine(e),r=t.search(/\S/),l=e,a=t.length;e+=1;for(var c=e,f=p.getLength();++em)break;var y=this.getFoldWidgetRange(p,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new h(l,a,c,p.getLine(c).length)},this.getCommentRegionBlock=function(p,e,t){for(var r=e.search(/\s*$/),l=p.getLength(),a=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ta)return new h(a,r,y,e.length)}}.call(s.prototype)}),ace.define("ace/mode/json5",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json5_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(i,u,v){var o=i("../lib/oop"),h=i("./text").Mode,d=i("./json5_highlight_rules").Json5HighlightRules,s=i("./matching_brace_outdent").MatchingBraceOutdent,p=i("./folding/cstyle").FoldMode,e=function(){this.HighlightRules=d,this.$outdent=new s,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new p};o.inherits(e,h),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.checkOutdent=function(t,r,l){return this.$outdent.checkOutdent(r,l)},this.autoOutdent=function(t,r,l){this.$outdent.autoOutdent(r,l)},this.$id="ace/mode/json5"}.call(e.prototype),u.Mode=e}),function(){ace.require(["ace/mode/json5"],function(i){L&&(L.exports=i)})}()})(Ta);var _a={};(function(L){function n(v,o){for(var h=v,d="";h;){var s=o[h];if(typeof s=="string")return s+d;if(s)return s.location.replace(/\/*$/,"/")+(d||s.main||s.name);if(s===!1)return"";var p=h.lastIndexOf("/");if(p===-1)break;d=h.substr(p)+d,h=h.slice(0,p)}return v}if(!(typeof L.window<"u"&&L.document)&&!(L.require&&L.define)){L.console||(L.console=function(){var v=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:v})},L.console.error=L.console.warn=L.console.log=L.console.trace=L.console),L.window=L,L.ace=L,L.onerror=function(v,o,h,d,s){postMessage({type:"error",data:{message:v,data:s&&s.data,file:o,line:h,col:d,stack:s&&s.stack}})},L.normalizeModule=function(v,o){if(o.indexOf("!")!==-1){var h=o.split("!");return L.normalizeModule(v,h[0])+"!"+L.normalizeModule(v,h[1])}if(o.charAt(0)=="."){var d=v.split("/").slice(0,-1).join("/");for(o=(d?d+"/":"")+o;o.indexOf(".")!==-1&&s!=o;){var s=o;o=o.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return o},L.require=function(v,o){if(o||(o=v,v=null),!o.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");o=L.normalizeModule(v,o);var h=L.require.modules[o];if(h)return h.initialized||(h.initialized=!0,h.exports=h.factory().exports),h.exports;if(!L.require.tlns)return console.log("unable to load "+o);var d=n(o,L.require.tlns);return d.slice(-3)!=".js"&&(d+=".js"),L.require.id=o,L.require.modules[o]={},importScripts(d),L.require(v,o)},L.require.modules={},L.require.tlns={},L.define=function(v,o,h){if(arguments.length==2?(h=o,typeof v!="string"&&(o=v,v=L.require.id)):arguments.length==1&&(h=v,o=[],v=L.require.id),typeof h!="function"){L.require.modules[v]={exports:h,initialized:!0};return}o.length||(o=["require","exports","module"]);var d=function(s){return L.require(v,s)};L.require.modules[v]={exports:{},factory:function(){var s=this,p=h.apply(this,o.slice(0,h.length).map(function(e){switch(e){case"require":return d;case"exports":return s.exports;case"module":return s;default:return d(e)}}));return p&&(s.exports=p),s}}},L.define.amd={},L.require.tlns={},L.initBaseUrls=function(v){for(var o in v)this.require.tlns[o]=v[o]},L.initSender=function(){var v=L.require("ace/lib/event_emitter").EventEmitter,o=L.require("ace/lib/oop"),h=function(){};return function(){o.implement(this,v),this.callback=function(d,s){postMessage({type:"call",id:s,data:d})},this.emit=function(d,s){postMessage({type:"event",name:d,data:s})}}.call(h.prototype),new h};var i=L.main=null,u=L.sender=null;L.onmessage=function(v){var o=v.data;if(o.event&&u)u._signal(o.event,o.data);else if(o.command)if(i[o.command])i[o.command].apply(i,o.args);else{if(!L[o.command])throw new Error("Unknown command:"+o.command);L[o.command].apply(L,o.args)}else if(o.init){L.initBaseUrls(o.tlns),u=L.sender=L.initSender();var h=this.require(o.module)[o.classname];i=L.main=new h(u)}}}})(_a),ace.define("ace/lib/oop",[],function(L,n,i){n.inherits=function(u,v){u.super_=v,u.prototype=Object.create(v.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}})},n.mixin=function(u,v){for(var o in v)u[o]=v[o];return u},n.implement=function(u,v){n.mixin(u,v)}}),ace.define("ace/apply_delta",[],function(L,n,i){n.applyDelta=function(u,v,o){var h=v.start.row,d=v.start.column,s=u[h]||"";switch(v.action){case"insert":var p=v.lines;if(p.length===1)u[h]=s.substring(0,d)+v.lines[0]+s.substring(d);else{var e=[h,1].concat(v.lines);u.splice.apply(u,e),u[h]=s.substring(0,d)+u[h],u[h+v.lines.length-1]+=s.substring(d)}break;case"remove":var t=v.end.column,r=v.end.row;h===r?u[h]=s.substring(0,d)+s.substring(t):u.splice(h,r-h+1,s.substring(0,d)+u[r].substring(t))}}}),ace.define("ace/lib/event_emitter",[],function(L,n,i){var u={},v=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};u._emit=u._dispatchEvent=function(h,d){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var s=this._eventRegistry[h]||[],p=this._defaultHandlers[h];if(!(!s.length&&!p)){(typeof d!="object"||!d)&&(d={}),d.type||(d.type=h),d.stopPropagation||(d.stopPropagation=v),d.preventDefault||(d.preventDefault=o),s=s.slice();for(var e=0;e ["+this.end.row+"/"+this.end.column+"]"},v.prototype.contains=function(o,h){return this.compare(o,h)==0},v.prototype.compareRange=function(o){var h,d=o.end,s=o.start;return h=this.compare(d.row,d.column),h==1?(h=this.compare(s.row,s.column),h==1?2:h==0?1:0):h==-1?-2:(h=this.compare(s.row,s.column),h==-1?-1:h==1?42:0)},v.prototype.comparePoint=function(o){return this.compare(o.row,o.column)},v.prototype.containsRange=function(o){return this.comparePoint(o.start)==0&&this.comparePoint(o.end)==0},v.prototype.intersects=function(o){var h=this.compareRange(o);return h==-1||h==0||h==1},v.prototype.isEnd=function(o,h){return this.end.row==o&&this.end.column==h},v.prototype.isStart=function(o,h){return this.start.row==o&&this.start.column==h},v.prototype.setStart=function(o,h){typeof o=="object"?(this.start.column=o.column,this.start.row=o.row):(this.start.row=o,this.start.column=h)},v.prototype.setEnd=function(o,h){typeof o=="object"?(this.end.column=o.column,this.end.row=o.row):(this.end.row=o,this.end.column=h)},v.prototype.inside=function(o,h){return this.compare(o,h)==0?!(this.isEnd(o,h)||this.isStart(o,h)):!1},v.prototype.insideStart=function(o,h){return this.compare(o,h)==0?!this.isEnd(o,h):!1},v.prototype.insideEnd=function(o,h){return this.compare(o,h)==0?!this.isStart(o,h):!1},v.prototype.compare=function(o,h){return!this.isMultiLine()&&o===this.start.row?hthis.end.column?1:0:othis.end.row?1:this.start.row===o?h>=this.start.column?0:-1:this.end.row===o?h<=this.end.column?0:1:0},v.prototype.compareStart=function(o,h){return this.start.row==o&&this.start.column==h?-1:this.compare(o,h)},v.prototype.compareEnd=function(o,h){return this.end.row==o&&this.end.column==h?1:this.compare(o,h)},v.prototype.compareInside=function(o,h){return this.end.row==o&&this.end.column==h?1:this.start.row==o&&this.start.column==h?-1:this.compare(o,h)},v.prototype.clipRows=function(o,h){if(this.end.row>h)var d={row:h+1,column:0};else if(this.end.rowh)var s={row:h+1,column:0};else if(this.start.rowthis.row)){var e=v(p,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}},s.prototype.setPosition=function(p,e,t){var r;if(t?r={row:p,column:e}:r=this.$clipPositionToDocument(p,e),!(this.row==r.row&&this.column==r.column)){var l={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:l,value:r})}},s.prototype.detach=function(){this.document.off("change",this.$onChange)},s.prototype.attach=function(p){this.document=p||this.document,this.document.on("change",this.$onChange)},s.prototype.$clipPositionToDocument=function(p,e){var t={};return p>=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):p<0?(t.row=0,t.column=0):(t.row=p,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,e))),e<0&&(t.column=0),t},s}();d.prototype.$insertRight=!1,o.implement(d.prototype,h),n.Anchor=d}),ace.define("ace/document",[],function(L,n,i){var u=L("./lib/oop"),v=L("./apply_delta").applyDelta,o=L("./lib/event_emitter").EventEmitter,h=L("./range").Range,d=L("./anchor").Anchor,s=function(){function p(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return p.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new h(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},p.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},p.prototype.createAnchor=function(e,t){return new d(this,e,t)},p.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:` -`,this._signal("changeNewLineMode")},p.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r +`,"error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(i,u,v){i("./loader_build")(u);var o=i("./lib/dom"),h=i("./range").Range,p=i("./editor").Editor,a=i("./edit_session").EditSession,d=i("./undomanager").UndoManager,e=i("./virtual_renderer").VirtualRenderer;i("./worker/worker_client"),i("./keyboard/hash_handler"),i("./placeholder"),i("./multi_select"),i("./mode/folding/fold_mode"),i("./theme/textmate"),i("./ext/error_marker"),u.config=i("./config"),u.edit=function(r,l){if(typeof r=="string"){var s=r;if(r=document.getElementById(s),!r)throw new Error("ace.edit can't find div #"+s)}if(r&&r.env&&r.env.editor instanceof p)return r.env.editor;var c="";if(r&&/input|textarea/i.test(r.tagName)){var f=r;c=f.value,r=o.createElement("pre"),f.parentNode.replaceChild(r,f)}else r&&(c=r.textContent,r.innerHTML="");var m=u.createEditSession(c),y=new p(new e(r),m,l),D={document:m,editor:y,onResize:y.resize.bind(y,null)};return f&&(D.textarea=f),y.on("destroy",function(){D.editor.container.env=null}),y.container.env=y.env=D,y},u.createEditSession=function(r,l){var s=new a(r,l);return s.setUndoManager(new d),s},u.Range=h,u.Editor=p,u.EditSession=a,u.UndoManager=d,u.VirtualRenderer=e;var t=u.config.version;u.version=t}),function(){ace.require(["ace/ace"],function(i){i&&(i.config.init(!0),i.define=ace.define);var u=function(){return this}();!u&&typeof window<"u"&&(u=window),!u&&typeof self<"u"&&(u=self),u.ace||(u.ace=i);for(var v in i)i.hasOwnProperty(v)&&(u.ace[v]=i[v]);u.ace.default=u.ace,L&&(L.exports=u.ace)})}()})(Vi);var fn=Vi.exports,gn={exports:{}};gn.exports;(function(L,n){var i=200,u="__lodash_hash_undefined__",v=1,o=2,h=9007199254740991,p="[object Arguments]",a="[object Array]",d="[object AsyncFunction]",e="[object Boolean]",t="[object Date]",r="[object Error]",l="[object Function]",s="[object GeneratorFunction]",c="[object Map]",f="[object Number]",m="[object Null]",y="[object Object]",D="[object Promise]",E="[object Proxy]",b="[object RegExp]",g="[object Set]",S="[object String]",T="[object Symbol]",k="[object Undefined]",_="[object WeakMap]",O="[object ArrayBuffer]",$="[object DataView]",A="[object Float32Array]",C="[object Float64Array]",w="[object Int8Array]",x="[object Int16Array]",I="[object Int32Array]",F="[object Uint8Array]",R="[object Uint8ClampedArray]",B="[object Uint16Array]",P="[object Uint32Array]",V=/[\\^$.*+?()[\]{}|]/g,W=/^\[object .+?Constructor\]$/,H=/^(?:0|[1-9]\d*)$/,U={};U[A]=U[C]=U[w]=U[x]=U[I]=U[F]=U[R]=U[B]=U[P]=!0,U[p]=U[a]=U[O]=U[e]=U[$]=U[t]=U[r]=U[l]=U[c]=U[f]=U[y]=U[b]=U[g]=U[S]=U[_]=!1;var G=typeof He=="object"&&He&&He.Object===Object&&He,Y=typeof self=="object"&&self&&self.Object===Object&&self,Q=G||Y||Function("return this")(),ee=n&&!n.nodeType&&n,ne=ee&&!0&&L&&!L.nodeType&&L,se=ne&&ne.exports===ee,ge=se&&G.process,be=function(){try{return ge&&ge.binding&&ge.binding("util")}catch{}}(),ke=be&&be.isTypedArray;function Ce(z,J){for(var te=-1,ie=z==null?0:z.length,Se=0,he=[];++te-1}function vr(z,J){var te=this.__data__,ie=Xt(te,z);return ie<0?(++this.size,te.push([z,J])):te[ie][1]=J,this}qe.prototype.clear=pr,qe.prototype.delete=fr,qe.prototype.get=gr,qe.prototype.has=mr,qe.prototype.set=vr;function vt(z){var J=-1,te=z==null?0:z.length;for(this.clear();++JLe))return!1;var Te=he.get(z);if(Te&&he.get(J))return Te==J;var Pe=-1,Ue=!0,Re=te&o?new Qt:void 0;for(he.set(z,J),he.set(J,z);++Pe-1&&z%1==0&&z-1&&z%1==0&&z<=h}function ai(z){var J=typeof z;return z!=null&&(J=="object"||J=="function")}function Ht(z){return z!=null&&typeof z=="object"}var li=ke?Ot(ke):Fr;function Jr(z){return Gr(z)?kr(z):Or(z)}function Yr(){return[]}function Qr(){return!1}L.exports=Kr})(gn,gn.exports);var Ui=gn.exports,Je={};Object.defineProperty(Je,"__esModule",{value:!0});Je.getAceInstance=Je.debounce=Je.editorEvents=Je.editorOptions=void 0;var lo=["minLines","maxLines","readOnly","highlightActiveLine","tabSize","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets"];Je.editorOptions=lo;var uo=["onChange","onFocus","onInput","onBlur","onCopy","onPaste","onSelectionChange","onCursorChange","onScroll","handleOptions","updateRef"];Je.editorEvents=uo;var ho=function(){var L;return typeof window>"u"?(He.window={},L=fn,delete He.window):window.ace?(L=window.ace,L.acequire=window.ace.require||window.ace.acequire):L=fn,L};Je.getAceInstance=ho;var co=function(L,n){var i=null;return function(){var u=this,v=arguments;clearTimeout(i),i=setTimeout(function(){L.apply(u,v)},n)}};Je.debounce=co;var po=Dt&&Dt.__extends||function(){var L=function(n,i){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,v){u.__proto__=v}||function(u,v){for(var o in v)Object.prototype.hasOwnProperty.call(v,o)&&(u[o]=v[o])},L(n,i)};return function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");L(n,i);function u(){this.constructor=n}n.prototype=i===null?Object.create(i):(u.prototype=i.prototype,new u)}}(),jn=Dt&&Dt.__assign||function(){return jn=Object.assign||function(L){for(var n,i=1,u=arguments.length;i0&&this.handleMarkers(S);var O=this.editor.$options;Lt.editorOptions.forEach(function($){O.hasOwnProperty($)?i.editor.setOption($,i.props[$]):i.props[$]&&console.warn("ReactAce: editor option ".concat($," was activated but not found. Did you need to import a related tool or did you possibly mispell the option?"))}),this.handleOptions(this.props),Array.isArray(b)&&b.forEach(function($){typeof $.exec=="string"?i.editor.commands.bindKey($.bindKey,$.exec):i.editor.commands.addCommand($)}),D&&this.editor.setKeyboardHandler("ace/keyboard/"+D),v&&(this.refEditor.className+=" "+v),E&&E(this.editor),this.editor.resize(),a&&this.editor.focus()},n.prototype.componentDidUpdate=function(i){for(var u=i,v=this.props,o=0;o 0!";if(t!=this.$splits){if(t>this.$splits){for(;this.$splitst;)r=this.$editors[this.$splits-1],this.$container.removeChild(r.container),this.$splits--;this.resize()}},this.getSplits=function(){return this.$splits},this.getEditor=function(t){return this.$editors[t]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(t){this.$editors.forEach(function(r){r.setTheme(t)})},this.setKeyboardHandler=function(t){this.$editors.forEach(function(r){r.setKeyboardHandler(t)})},this.forEach=function(t,r){this.$editors.forEach(t,r)},this.$fontSize="",this.setFontSize=function(t){this.$fontSize=t,this.forEach(function(r){r.setFontSize(t)})},this.$cloneSession=function(t){var r=new d(t.getDocument(),t.getMode()),l=t.getUndoManager();return r.setUndoManager(l),r.setTabSize(t.getTabSize()),r.setUseSoftTabs(t.getUseSoftTabs()),r.setOverwrite(t.getOverwrite()),r.setBreakpoints(t.getBreakpoints()),r.setUseWrapMode(t.getUseWrapMode()),r.setUseWorker(t.getUseWorker()),r.setWrapLimitRange(t.$wrapLimitRange.min,t.$wrapLimitRange.max),r.$foldData=t.$cloneFoldData(),r},this.setSession=function(t,r){var l;r==null?l=this.$cEditor:l=this.$editors[r];var s=this.$editors.some(function(c){return c.session===t});return s&&(t=this.$cloneSession(t)),l.setSession(t),t},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(t){this.$orientation!=t&&(this.$orientation=t,this.resize())},this.resize=function(){var t=this.$container.clientWidth,r=this.$container.clientHeight,l;if(this.$orientation==this.BESIDE)for(var s=t/this.$splits,c=0;c-1}function Go(L,n){var i=this.__data__,u=vn(i,L);return u<0?i.push([L,n]):i[u][1]=n,this}Ft.prototype.clear=zo;Ft.prototype.delete=jo;Ft.prototype.get=Vo;Ft.prototype.has=Uo;Ft.prototype.set=Go;function xt(L){var n=-1,i=L?L.length:0;for(this.clear();++n0&&i.handleMarkers(F,$);for(var C=0;C"u"&&(this.Diff_Timeout<=0?a=Number.MAX_VALUE:a=new Date().getTime()+this.Diff_Timeout*1e3);var d=a;if(o==null||h==null)throw new Error("Null input. (diff_main)");if(o==h)return o?[new n.Diff(v,o)]:[];typeof p>"u"&&(p=!0);var e=p,t=this.diff_commonPrefix(o,h),r=o.substring(0,t);o=o.substring(t),h=h.substring(t),t=this.diff_commonSuffix(o,h);var l=o.substring(o.length-t);o=o.substring(0,o.length-t),h=h.substring(0,h.length-t);var s=this.diff_compute_(o,h,e,d);return r&&s.unshift(new n.Diff(v,r)),l&&s.push(new n.Diff(v,l)),this.diff_cleanupMerge(s),s},n.prototype.diff_compute_=function(o,h,p,a){var d;if(!o)return[new n.Diff(u,h)];if(!h)return[new n.Diff(i,o)];var e=o.length>h.length?o:h,t=o.length>h.length?h:o,r=e.indexOf(t);if(r!=-1)return d=[new n.Diff(u,e.substring(0,r)),new n.Diff(v,t),new n.Diff(u,e.substring(r+t.length))],o.length>h.length&&(d[0][0]=d[2][0]=i),d;if(t.length==1)return[new n.Diff(i,o),new n.Diff(u,h)];var l=this.diff_halfMatch_(o,h);if(l){var s=l[0],c=l[1],f=l[2],m=l[3],y=l[4],D=this.diff_main(s,f,p,a),E=this.diff_main(c,m,p,a);return D.concat([new n.Diff(v,y)],E)}return p&&o.length>100&&h.length>100?this.diff_lineMode_(o,h,a):this.diff_bisect_(o,h,a)},n.prototype.diff_lineMode_=function(o,h,p){var a=this.diff_linesToChars_(o,h);o=a.chars1,h=a.chars2;var d=a.lineArray,e=this.diff_main(o,h,!1,p);this.diff_charsToLines_(e,d),this.diff_cleanupSemantic(e),e.push(new n.Diff(v,""));for(var t=0,r=0,l=0,s="",c="";t=1&&l>=1){e.splice(t-r-l,r+l),t=t-r-l;for(var f=this.diff_main(s,c,!1,p),m=f.length-1;m>=0;m--)e.splice(t,0,f[m]);t=t+f.length}l=0,r=0,s="",c="";break}t++}return e.pop(),e},n.prototype.diff_bisect_=function(o,h,p){for(var a=o.length,d=h.length,e=Math.ceil((a+d)/2),t=e,r=2*e,l=new Array(r),s=new Array(r),c=0;cp);g++){for(var S=-g+y;S<=g-D;S+=2){var T=t+S,k;S==-g||S!=g&&l[T-1]a)D+=2;else if(_>d)y+=2;else if(m){var O=t+f-S;if(O>=0&&O=$)return this.diff_bisectSplit_(o,h,k,_,p)}}}for(var A=-g+E;A<=g-b;A+=2){var O=t+A,$;A==-g||A!=g&&s[O-1]a)b+=2;else if(C>d)E+=2;else if(!m){var T=t+f-A;if(T>=0&&T=$)return this.diff_bisectSplit_(o,h,k,_,p)}}}}return[new n.Diff(i,o),new n.Diff(u,h)]},n.prototype.diff_bisectSplit_=function(o,h,p,a,d){var e=o.substring(0,p),t=h.substring(0,a),r=o.substring(p),l=h.substring(a),s=this.diff_main(e,t,!1,d),c=this.diff_main(r,l,!1,d);return s.concat(c)},n.prototype.diff_linesToChars_=function(o,h){var p=[],a={};p[0]="";function d(l){for(var s="",c=0,f=-1,m=p.length;fa?o=o.substring(p-a):ph.length?o:h,a=o.length>h.length?h:o;if(p.length<4||a.length*2=D.length?[k,_,O,$,T]:null}var t=e(p,a,Math.ceil(p.length/4)),r=e(p,a,Math.ceil(p.length/2)),l;if(!t&&!r)return null;r?t?l=t[4].length>r[4].length?t:r:l=r:l=t;var s,c,f,m;o.length>h.length?(s=l[0],c=l[1],f=l[2],m=l[3]):(f=l[0],m=l[1],s=l[2],c=l[3]);var y=l[4];return[s,c,f,m,y]},n.prototype.diff_cleanupSemantic=function(o){for(var h=!1,p=[],a=0,d=null,e=0,t=0,r=0,l=0,s=0;e0?p[a-1]:-1,t=0,r=0,l=0,s=0,d=null,h=!0)),e++;for(h&&this.diff_cleanupMerge(o),this.diff_cleanupSemanticLossless(o),e=1;e=y?(m>=c.length/2||m>=f.length/2)&&(o.splice(e,0,new n.Diff(v,f.substring(0,m))),o[e-1][1]=c.substring(0,c.length-m),o[e+1][1]=f.substring(m),e++):(y>=c.length/2||y>=f.length/2)&&(o.splice(e,0,new n.Diff(v,c.substring(0,y))),o[e-1][0]=u,o[e-1][1]=f.substring(0,f.length-y),o[e+1][0]=i,o[e+1][1]=c.substring(y),e++),e++}e++}},n.prototype.diff_cleanupSemanticLossless=function(o){function h(y,D){if(!y||!D)return 6;var E=y.charAt(y.length-1),b=D.charAt(0),g=E.match(n.nonAlphaNumericRegex_),S=b.match(n.nonAlphaNumericRegex_),T=g&&E.match(n.whitespaceRegex_),k=S&&b.match(n.whitespaceRegex_),_=T&&E.match(n.linebreakRegex_),O=k&&b.match(n.linebreakRegex_),$=_&&y.match(n.blanklineEndRegex_),A=O&&D.match(n.blanklineStartRegex_);return $||A?5:_||O?4:g&&!T&&k?3:T||k?2:g||S?1:0}for(var p=1;p=f&&(f=m,l=a,s=d,c=e)}o[p-1][1]!=l&&(l?o[p-1][1]=l:(o.splice(p-1,1),p--),o[p][1]=s,c?o[p+1][1]=c:(o.splice(p+1,1),p--))}p++}},n.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,n.whitespaceRegex_=/\s/,n.linebreakRegex_=/[\r\n]/,n.blanklineEndRegex_=/\n\r?\n$/,n.blanklineStartRegex_=/^\r?\n\r?\n/,n.prototype.diff_cleanupEfficiency=function(o){for(var h=!1,p=[],a=0,d=null,e=0,t=!1,r=!1,l=!1,s=!1;e0?p[a-1]:-1,l=s=!1),h=!0)),e++;h&&this.diff_cleanupMerge(o)},n.prototype.diff_cleanupMerge=function(o){o.push(new n.Diff(v,""));for(var h=0,p=0,a=0,d="",e="",t;h1?(p!==0&&a!==0&&(t=this.diff_commonPrefix(e,d),t!==0&&(h-p-a>0&&o[h-p-a-1][0]==v?o[h-p-a-1][1]+=e.substring(0,t):(o.splice(0,0,new n.Diff(v,e.substring(0,t))),h++),e=e.substring(t),d=d.substring(t)),t=this.diff_commonSuffix(e,d),t!==0&&(o[h][1]=e.substring(e.length-t)+o[h][1],e=e.substring(0,e.length-t),d=d.substring(0,d.length-t))),h-=p+a,o.splice(h,p+a),d.length&&(o.splice(h,0,new n.Diff(i,d)),h++),e.length&&(o.splice(h,0,new n.Diff(u,e)),h++),h++):h!==0&&o[h-1][0]==v?(o[h-1][1]+=o[h][1],o.splice(h,1)):h++,a=0,p=0,d="",e="";break}o[o.length-1][1]===""&&o.pop();var r=!1;for(h=1;hh));t++)d=p,e=a;return o.length!=t&&o[t][0]===i?e:e+(h-d)},n.prototype.diff_prettyHtml=function(o){for(var h=[],p=/&/g,a=//g,e=/\n/g,t=0;t");switch(r){case u:h[t]=''+s+"";break;case i:h[t]=''+s+"";break;case v:h[t]=""+s+"";break}}return h.join("")},n.prototype.diff_text1=function(o){for(var h=[],p=0;pthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var a=this.match_alphabet_(h),d=this;function e(k,_){var O=k/h.length,$=Math.abs(p-_);return d.Match_Distance?O+$/d.Match_Distance:$?1:O}var t=this.Match_Threshold,r=o.indexOf(h,p);r!=-1&&(t=Math.min(e(0,r),t),r=o.lastIndexOf(h,p+h.length),r!=-1&&(t=Math.min(e(0,r),t)));var l=1<=D;g--){var S=a[o.charAt(g-1)];if(y===0?b[g]=(b[g+1]<<1|1)&S:b[g]=(b[g+1]<<1|1)&S|((m[g+1]|m[g])<<1|1)|m[g+1],b[g]&l){var T=e(y,g-1);if(T<=t)if(t=T,r=g-1,r>p)D=Math.max(1,2*p-r);else break}}if(e(y+1,p)>t)break;m=b}return r},n.prototype.match_alphabet_=function(o){for(var h={},p=0;p"u")a=o,d=this.diff_main(a,h,!0),d.length>2&&(this.diff_cleanupSemantic(d),this.diff_cleanupEfficiency(d));else if(o&&typeof o=="object"&&typeof h>"u"&&typeof p>"u")d=o,a=this.diff_text1(d);else if(typeof o=="string"&&h&&typeof h=="object"&&typeof p>"u")a=o,d=h;else if(typeof o=="string"&&typeof h=="string"&&p&&typeof p=="object")a=o,d=p;else throw new Error("Unknown call format to patch_make.");if(d.length===0)return[];for(var e=[],t=new n.patch_obj,r=0,l=0,s=0,c=a,f=a,m=0;m=2*this.Patch_Margin&&r&&(this.patch_addContext_(t,c),e.push(t),t=new n.patch_obj,r=0,c=f,l=s);break}y!==u&&(l+=D.length),y!==i&&(s+=D.length)}return r&&(this.patch_addContext_(t,c),e.push(t)),e},n.prototype.patch_deepCopy=function(o){for(var h=[],p=0;pthis.Match_MaxBits?(l=this.match_main(h,r.substring(0,this.Match_MaxBits),t),l!=-1&&(s=this.match_main(h,r.substring(r.length-this.Match_MaxBits),t+r.length-this.Match_MaxBits),(s==-1||l>=s)&&(l=-1))):l=this.match_main(h,r,t),l==-1)d[e]=!1,a-=o[e].length2-o[e].length1;else{d[e]=!0,a=l-t;var c;if(s==-1?c=h.substring(l,l+r.length):c=h.substring(l,s+this.Match_MaxBits),r==c)h=h.substring(0,l)+this.diff_text2(o[e].diffs)+h.substring(l+r.length);else{var f=this.diff_main(r,c,!1);if(r.length>this.Match_MaxBits&&this.diff_levenshtein(f)/r.length>this.Patch_DeleteThreshold)d[e]=!1;else{this.diff_cleanupSemanticLossless(f);for(var m=0,y,D=0;De[0][1].length){var t=h-e[0][1].length;e[0][1]=p.substring(e[0][1].length)+e[0][1],d.start1-=t,d.start2-=t,d.length1+=t,d.length2+=t}if(d=o[o.length-1],e=d.diffs,e.length==0||e[e.length-1][0]!=v)e.push(new n.Diff(v,p)),d.length1+=h,d.length2+=h;else if(h>e[e.length-1][1].length){var t=h-e[e.length-1][1].length;e[e.length-1][1]+=p.substring(0,t),d.length1+=t,d.length2+=t}return p},n.prototype.patch_splitMax=function(o){for(var h=this.Match_MaxBits,p=0;p2*h?(r.length1+=c.length,d+=c.length,l=!1,r.diffs.push(new n.Diff(s,c)),a.diffs.shift()):(c=c.substring(0,h-r.length1-this.Patch_Margin),r.length1+=c.length,d+=c.length,s===v?(r.length2+=c.length,e+=c.length):l=!1,r.diffs.push(new n.Diff(s,c)),c==a.diffs[0][1]?a.diffs.shift():a.diffs[0][1]=a.diffs[0][1].substring(c.length))}t=this.diff_text2(r.diffs),t=t.substring(t.length-this.Patch_Margin);var f=this.diff_text1(a.diffs).substring(0,this.Patch_Margin);f!==""&&(r.length1+=f.length,r.length2+=f.length,r.diffs.length!==0&&r.diffs[r.diffs.length-1][0]===v?r.diffs[r.diffs.length-1][1]+=f:r.diffs.push(new n.Diff(v,f))),l||o.splice(++p,0,r)}}},n.prototype.patch_toText=function(o){for(var h=[],p=0;pm)break;var y=this.getFoldWidgetRange(d,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new h(l,s,c,d.getLine(c).length)},this.getCommentRegionBlock=function(d,e,t){for(var r=e.search(/\s*$/),l=d.getLength(),s=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ts)return new h(s,r,y,e.length)}}.call(a.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle","ace/worker/worker_client"],function(i,u,v){var o=i("../lib/oop"),h=i("./text").Mode,p=i("./json_highlight_rules").JsonHighlightRules,a=i("./matching_brace_outdent").MatchingBraceOutdent,d=i("./folding/cstyle").FoldMode,e=i("../worker/worker_client").WorkerClient,t=function(){this.HighlightRules=p,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new d};o.inherits(t,h),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(r,l,s){var c=this.$getIndent(l);if(r=="start"){var f=l.match(/^.*[\{\(\[]\s*$/);f&&(c+=s)}return c},this.checkOutdent=function(r,l,s){return this.$outdent.checkOutdent(l,s)},this.autoOutdent=function(r,l,s){this.$outdent.autoOutdent(l,s)},this.createWorker=function(r){var l=new e(["ace"],"ace/mode/json_worker","JsonWorker");return l.attachToDocument(r.getDocument()),l.on("annotate",function(s){r.setAnnotations(s.data)}),l.on("terminate",function(){r.clearAnnotations()}),l},this.$id="ace/mode/json"}.call(t.prototype),u.Mode=t}),function(){ace.require(["ace/mode/json"],function(i){L&&(L.exports=i)})}()})($a);var Ta={exports:{}};(function(L,n){ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(i,u,v){var o=i("../lib/oop"),h=i("./text_highlight_rules").TextHighlightRules,p=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};o.inherits(p,h),u.JsonHighlightRules=p}),ace.define("ace/mode/json5_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/json_highlight_rules"],function(i,u,v){var o=i("../lib/oop"),h=i("./json_highlight_rules").JsonHighlightRules,p=function(){h.call(this);var a=[{token:"variable",regex:/[a-zA-Z$_\u00a1-\uffff][\w$\u00a1-\uffff]*\s*(?=:)/},{token:"variable",regex:/['](?:(?:\\.)|(?:[^'\\]))*?[']\s*(?=:)/},{token:"constant.language.boolean",regex:/(?:null)\b/},{token:"string",regex:/'/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/'|$/,next:"start"},{defaultToken:"string"}]},{token:"string",regex:/"(?![^"]*":)/,next:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\/bfnrt]|$)/,consumeLineEnd:!0},{token:"string",regex:/"|$/,next:"start"},{defaultToken:"string"}]},{token:"constant.numeric",regex:/[+-]?(?:Infinity|NaN)\b/}];for(var d in this.$rules)this.$rules[d].unshift.apply(this.$rules[d],a);this.normalizeRules()};o.inherits(p,h),u.Json5HighlightRules=p}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(i,u,v){var o=i("../range").Range,h=function(){};(function(){this.checkOutdent=function(p,a){return/^\s+$/.test(p)?/^\s*\}/.test(a):!1},this.autoOutdent=function(p,a){var d=p.getLine(a),e=d.match(/^(\s*\})/);if(!e)return 0;var t=e[1].length,r=p.findMatchingBracket({row:a,column:t});if(!r||r.row==a)return 0;var l=this.$getIndent(p.getLine(r.row));p.replace(new o(a,0,a,t-1),l)},this.$getIndent=function(p){return p.match(/^\s*/)[0]}}).call(h.prototype),u.MatchingBraceOutdent=h}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(i,u,v){var o=i("../../lib/oop"),h=i("../../range").Range,p=i("./fold_mode").FoldMode,a=u.FoldMode=function(d){d&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+d.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+d.end)))};o.inherits(a,p),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(d,e,t){var r=d.getLine(t);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var l=this._getFoldWidgetBase(d,e,t);return!l&&this.startRegionRe.test(r)?"start":l},this.getFoldWidgetRange=function(d,e,t,r){var l=d.getLine(t);if(this.startRegionRe.test(l))return this.getCommentRegionBlock(d,l,t);var f=l.match(this.foldingStartMarker);if(f){var s=f.index;if(f[1])return this.openingBracketBlock(d,f[1],t,s);var c=d.getCommentFoldRange(t,s+f[0].length,1);return c&&!c.isMultiLine()&&(r?c=this.getSectionRange(d,t):e!="all"&&(c=null)),c}if(e!=="markbegin"){var f=l.match(this.foldingStopMarker);if(f){var s=f.index+f[0].length;return f[1]?this.closingBracketBlock(d,f[1],t,s):d.getCommentFoldRange(t,s,-1)}}},this.getSectionRange=function(d,e){var t=d.getLine(e),r=t.search(/\S/),l=e,s=t.length;e+=1;for(var c=e,f=d.getLength();++em)break;var y=this.getFoldWidgetRange(d,"all",e);if(y){if(y.start.row<=l)break;if(y.isMultiLine())e=y.end.row;else if(r==m)break}c=e}}return new h(l,s,c,d.getLine(c).length)},this.getCommentRegionBlock=function(d,e,t){for(var r=e.search(/\s*$/),l=d.getLength(),s=t,c=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,f=1;++ts)return new h(s,r,y,e.length)}}.call(a.prototype)}),ace.define("ace/mode/json5",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json5_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"],function(i,u,v){var o=i("../lib/oop"),h=i("./text").Mode,p=i("./json5_highlight_rules").Json5HighlightRules,a=i("./matching_brace_outdent").MatchingBraceOutdent,d=i("./folding/cstyle").FoldMode,e=function(){this.HighlightRules=p,this.$outdent=new a,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new d};o.inherits(e,h),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.checkOutdent=function(t,r,l){return this.$outdent.checkOutdent(r,l)},this.autoOutdent=function(t,r,l){this.$outdent.autoOutdent(r,l)},this.$id="ace/mode/json5"}.call(e.prototype),u.Mode=e}),function(){ace.require(["ace/mode/json5"],function(i){L&&(L.exports=i)})}()})(Ta);var _a={};(function(L){function n(v,o){for(var h=v,p="";h;){var a=o[h];if(typeof a=="string")return a+p;if(a)return a.location.replace(/\/*$/,"/")+(p||a.main||a.name);if(a===!1)return"";var d=h.lastIndexOf("/");if(d===-1)break;p=h.substr(d)+p,h=h.slice(0,d)}return v}if(!(typeof L.window<"u"&&L.document)&&!(L.require&&L.define)){L.console||(L.console=function(){var v=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:v})},L.console.error=L.console.warn=L.console.log=L.console.trace=L.console),L.window=L,L.ace=L,L.onerror=function(v,o,h,p,a){postMessage({type:"error",data:{message:v,data:a&&a.data,file:o,line:h,col:p,stack:a&&a.stack}})},L.normalizeModule=function(v,o){if(o.indexOf("!")!==-1){var h=o.split("!");return L.normalizeModule(v,h[0])+"!"+L.normalizeModule(v,h[1])}if(o.charAt(0)=="."){var p=v.split("/").slice(0,-1).join("/");for(o=(p?p+"/":"")+o;o.indexOf(".")!==-1&&a!=o;){var a=o;o=o.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return o},L.require=function(v,o){if(o||(o=v,v=null),!o.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");o=L.normalizeModule(v,o);var h=L.require.modules[o];if(h)return h.initialized||(h.initialized=!0,h.exports=h.factory().exports),h.exports;if(!L.require.tlns)return console.log("unable to load "+o);var p=n(o,L.require.tlns);return p.slice(-3)!=".js"&&(p+=".js"),L.require.id=o,L.require.modules[o]={},importScripts(p),L.require(v,o)},L.require.modules={},L.require.tlns={},L.define=function(v,o,h){if(arguments.length==2?(h=o,typeof v!="string"&&(o=v,v=L.require.id)):arguments.length==1&&(h=v,o=[],v=L.require.id),typeof h!="function"){L.require.modules[v]={exports:h,initialized:!0};return}o.length||(o=["require","exports","module"]);var p=function(a){return L.require(v,a)};L.require.modules[v]={exports:{},factory:function(){var a=this,d=h.apply(this,o.slice(0,h.length).map(function(e){switch(e){case"require":return p;case"exports":return a.exports;case"module":return a;default:return p(e)}}));return d&&(a.exports=d),a}}},L.define.amd={},L.require.tlns={},L.initBaseUrls=function(v){for(var o in v)this.require.tlns[o]=v[o]},L.initSender=function(){var v=L.require("ace/lib/event_emitter").EventEmitter,o=L.require("ace/lib/oop"),h=function(){};return function(){o.implement(this,v),this.callback=function(p,a){postMessage({type:"call",id:a,data:p})},this.emit=function(p,a){postMessage({type:"event",name:p,data:a})}}.call(h.prototype),new h};var i=L.main=null,u=L.sender=null;L.onmessage=function(v){var o=v.data;if(o.event&&u)u._signal(o.event,o.data);else if(o.command)if(i[o.command])i[o.command].apply(i,o.args);else{if(!L[o.command])throw new Error("Unknown command:"+o.command);L[o.command].apply(L,o.args)}else if(o.init){L.initBaseUrls(o.tlns),u=L.sender=L.initSender();var h=this.require(o.module)[o.classname];i=L.main=new h(u)}}}})(_a),ace.define("ace/lib/oop",[],function(L,n,i){n.inherits=function(u,v){u.super_=v,u.prototype=Object.create(v.prototype,{constructor:{value:u,enumerable:!1,writable:!0,configurable:!0}})},n.mixin=function(u,v){for(var o in v)u[o]=v[o];return u},n.implement=function(u,v){n.mixin(u,v)}}),ace.define("ace/apply_delta",[],function(L,n,i){n.applyDelta=function(u,v,o){var h=v.start.row,p=v.start.column,a=u[h]||"";switch(v.action){case"insert":var d=v.lines;if(d.length===1)u[h]=a.substring(0,p)+v.lines[0]+a.substring(p);else{var e=[h,1].concat(v.lines);u.splice.apply(u,e),u[h]=a.substring(0,p)+u[h],u[h+v.lines.length-1]+=a.substring(p)}break;case"remove":var t=v.end.column,r=v.end.row;h===r?u[h]=a.substring(0,p)+a.substring(t):u.splice(h,r-h+1,a.substring(0,p)+u[r].substring(t))}}}),ace.define("ace/lib/event_emitter",[],function(L,n,i){var u={},v=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};u._emit=u._dispatchEvent=function(h,p){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var a=this._eventRegistry[h]||[],d=this._defaultHandlers[h];if(!(!a.length&&!d)){(typeof p!="object"||!p)&&(p={}),p.type||(p.type=h),p.stopPropagation||(p.stopPropagation=v),p.preventDefault||(p.preventDefault=o),a=a.slice();for(var e=0;e ["+this.end.row+"/"+this.end.column+"]"},v.prototype.contains=function(o,h){return this.compare(o,h)==0},v.prototype.compareRange=function(o){var h,p=o.end,a=o.start;return h=this.compare(p.row,p.column),h==1?(h=this.compare(a.row,a.column),h==1?2:h==0?1:0):h==-1?-2:(h=this.compare(a.row,a.column),h==-1?-1:h==1?42:0)},v.prototype.comparePoint=function(o){return this.compare(o.row,o.column)},v.prototype.containsRange=function(o){return this.comparePoint(o.start)==0&&this.comparePoint(o.end)==0},v.prototype.intersects=function(o){var h=this.compareRange(o);return h==-1||h==0||h==1},v.prototype.isEnd=function(o,h){return this.end.row==o&&this.end.column==h},v.prototype.isStart=function(o,h){return this.start.row==o&&this.start.column==h},v.prototype.setStart=function(o,h){typeof o=="object"?(this.start.column=o.column,this.start.row=o.row):(this.start.row=o,this.start.column=h)},v.prototype.setEnd=function(o,h){typeof o=="object"?(this.end.column=o.column,this.end.row=o.row):(this.end.row=o,this.end.column=h)},v.prototype.inside=function(o,h){return this.compare(o,h)==0?!(this.isEnd(o,h)||this.isStart(o,h)):!1},v.prototype.insideStart=function(o,h){return this.compare(o,h)==0?!this.isEnd(o,h):!1},v.prototype.insideEnd=function(o,h){return this.compare(o,h)==0?!this.isStart(o,h):!1},v.prototype.compare=function(o,h){return!this.isMultiLine()&&o===this.start.row?hthis.end.column?1:0:othis.end.row?1:this.start.row===o?h>=this.start.column?0:-1:this.end.row===o?h<=this.end.column?0:1:0},v.prototype.compareStart=function(o,h){return this.start.row==o&&this.start.column==h?-1:this.compare(o,h)},v.prototype.compareEnd=function(o,h){return this.end.row==o&&this.end.column==h?1:this.compare(o,h)},v.prototype.compareInside=function(o,h){return this.end.row==o&&this.end.column==h?1:this.start.row==o&&this.start.column==h?-1:this.compare(o,h)},v.prototype.clipRows=function(o,h){if(this.end.row>h)var p={row:h+1,column:0};else if(this.end.rowh)var a={row:h+1,column:0};else if(this.start.rowthis.row)){var e=v(d,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}},a.prototype.setPosition=function(d,e,t){var r;if(t?r={row:d,column:e}:r=this.$clipPositionToDocument(d,e),!(this.row==r.row&&this.column==r.column)){var l={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:l,value:r})}},a.prototype.detach=function(){this.document.off("change",this.$onChange)},a.prototype.attach=function(d){this.document=d||this.document,this.document.on("change",this.$onChange)},a.prototype.$clipPositionToDocument=function(d,e){var t={};return d>=this.document.getLength()?(t.row=Math.max(0,this.document.getLength()-1),t.column=this.document.getLine(t.row).length):d<0?(t.row=0,t.column=0):(t.row=d,t.column=Math.min(this.document.getLine(t.row).length,Math.max(0,e))),e<0&&(t.column=0),t},a}();p.prototype.$insertRight=!1,o.implement(p.prototype,h),n.Anchor=p}),ace.define("ace/document",[],function(L,n,i){var u=L("./lib/oop"),v=L("./apply_delta").applyDelta,o=L("./lib/event_emitter").EventEmitter,h=L("./range").Range,p=L("./anchor").Anchor,a=function(){function d(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return d.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new h(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||"")},d.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},d.prototype.createAnchor=function(e,t){return new p(this,e,t)},d.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:` +`,this._signal("changeNewLineMode")},d.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r `;case"unix":return` `;default:return this.$autoNewLine||` -`}},p.prototype.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},p.prototype.getNewLineMode=function(){return this.$newLineMode},p.prototype.isNewLine=function(e){return e==`\r +`}},d.prototype.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},d.prototype.getNewLineMode=function(){return this.$newLineMode},d.prototype.isNewLine=function(e){return e==`\r `||e=="\r"||e==` -`},p.prototype.getLine=function(e){return this.$lines[e]||""},p.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},p.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},p.prototype.getLength=function(){return this.$lines.length},p.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},p.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var r=t.length-1;e.end.row-e.start.row==r&&(t[r]=t[r].substring(0,e.end.column))}return t},p.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},p.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},p.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},p.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},p.prototype.insertInLine=function(e,t){var r=this.clippedPos(e.row,e.column),l=this.pos(e.row,e.column+t.length);return this.applyDelta({start:r,end:l,action:"insert",lines:[t]},!0),this.clonePos(l)},p.prototype.clippedPos=function(e,t){var r=this.getLength();e===void 0?e=r:e<0?e=0:e>=r&&(e=r-1,t=void 0);var l=this.getLine(e);return t==null&&(t=l.length),t=Math.min(Math.max(t,0),l.length),{row:e,column:t}},p.prototype.clonePos=function(e){return{row:e.row,column:e.column}},p.prototype.pos=function(e,t){return{row:e,column:t}},p.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},p.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var r=0;e0,l=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},p.prototype.replace=function(e,t){if(e instanceof h||(e=h.fromPoints(e.start,e.end)),t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var r;return t?r=this.insert(e.start,t):r=e.start,r},p.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},p.prototype.applyDelta=function(e,t){var r=e.action=="insert";(r?e.lines.length<=1&&!e.lines[0]:!h.comparePoints(e.start,e.end))||(r&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(v(this.$lines,e,t),this._signal("change",e)))},p.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row0;)h&1&&(d+=o),(h>>=1)&&(o+=o);return d};var u=/^\s\s*/,v=/\s\s*$/;n.stringTrimLeft=function(o){return o.replace(u,"")},n.stringTrimRight=function(o){return o.replace(v,"")},n.copyObject=function(o){var h={};for(var d in o)h[d]=o[d];return h},n.copyArray=function(o){for(var h=[],d=0,s=o.length;d65535?2:1}}),ace.define("ace/worker/mirror",[],function(L,n,i){var u=L("../document").Document,v=L("../lib/lang"),o=n.Mirror=function(h){this.sender=h;var d=this.doc=new u(""),s=this.deferredUpdate=v.delayedCall(this.onUpdate.bind(this)),p=this;h.on("change",function(e){var t=e.data;if(t[0].start)d.applyDeltas(t);else for(var r=0;r=d.$lines.length)throw a=new Error("Invalid delta"),a.data={path:p.$path,linesLength:d.$lines.length,start:l.start,end:l.end},a;d.applyDelta(l,!0)}if(p.$timeout)return s.schedule(p.$timeout);p.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(h){this.$timeout=h},this.setValue=function(h){this.doc.setValue(h),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(h){this.sender.callback(this.doc.getValue(),h)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define("ace/mode/json/json_parse",[],function(L,n,i){var u,v,o={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` -`,r:"\r",t:" "},h,d=function(f){throw{name:"SyntaxError",message:f,at:u,text:h}},s=function(f){return f&&f!==v&&d("Expected '"+f+"' instead of '"+v+"'"),v=h.charAt(u),u+=1,v},p=function(){var f,m="";for(v==="-"&&(m="-",s("-"));v>="0"&&v<="9";)m+=v,s();if(v===".")for(m+=".";s()&&v>="0"&&v<="9";)m+=v;if(v==="e"||v==="E")for(m+=v,s(),(v==="-"||v==="+")&&(m+=v,s());v>="0"&&v<="9";)m+=v,s();if(f=+m,!isNaN(f))return f;d("Bad number")},e=function(){var f,m,y="",D;if(v==='"')for(;s();){if(v==='"')return s(),y;if(v==="\\")if(s(),v==="u"){for(D=0,m=0;m<4&&(f=parseInt(s(),16),!!isFinite(f));m+=1)D=D*16+f;y+=String.fromCharCode(D)}else{if(typeof o[v]!="string")break;y+=o[v]}else{if(v==` -`||v=="\r")break;y+=v}}d("Bad string")},t=function(){for(;v&&v<=" ";)s()},r=function(){switch(v){case"t":return s("t"),s("r"),s("u"),s("e"),!0;case"f":return s("f"),s("a"),s("l"),s("s"),s("e"),!1;case"n":return s("n"),s("u"),s("l"),s("l"),null}d("Unexpected '"+v+"'")},l,a=function(){var f=[];if(v==="["){if(s("["),t(),v==="]")return s("]"),f;for(;v;){if(f.push(l()),t(),v==="]")return s("]"),f;s(","),t()}}d("Bad array")},c=function(){var f,m={};if(v==="{"){if(s("{"),t(),v==="}")return s("}"),m;for(;v;){if(f=e(),t(),s(":"),Object.hasOwnProperty.call(m,f)&&d('Duplicate key "'+f+'"'),m[f]=l(),t(),v==="}")return s("}"),m;s(","),t()}}d("Bad object")};return l=function(){switch(t(),v){case"{":return c();case"[":return a();case'"':return e();case"-":return p();default:return v>="0"&&v<="9"?p():r()}},function(f,m){var y;return h=f,u=0,v=" ",y=l(),t(),v&&d("Syntax error"),typeof m=="function"?function D(E,b){var g,S,M=E[b];if(M&&typeof M=="object")for(g in M)Object.hasOwnProperty.call(M,g)&&(S=D(M,g),S!==void 0?M[g]=S:delete M[g]);return m.call(E,b,M)}({"":y},""):y}}),ace.define("ace/mode/json_worker",[],function(L,n,i){var u=L("../lib/oop"),v=L("../worker/mirror").Mirror,o=L("./json/json_parse"),h=n.JsonWorker=function(d){v.call(this,d),this.setTimeout(200)};u.inherits(h,v),function(){this.onUpdate=function(){var d=this.doc.getValue(),s=[];try{d&&o(d)}catch(e){var p=this.doc.indexToPosition(e.at-1);s.push({row:p.row,column:p.column,text:e.message,type:"error"})}this.sender.emit("annotate",s)}}.call(h.prototype)});var ka={exports:{}};(function(L,n){ace.define("ace/theme/clouds_midnight-css",["require","exports","module"],function(i,u,v){v.exports=`.ace-clouds-midnight .ace_gutter { +`},d.prototype.getLine=function(e){return this.$lines[e]||""},d.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},d.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},d.prototype.getLength=function(){return this.$lines.length},d.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},d.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var r=t.length-1;e.end.row-e.start.row==r&&(t[r]=t[r].substring(0,e.end.column))}return t},d.prototype.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},d.prototype.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},d.prototype.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},d.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},d.prototype.insertInLine=function(e,t){var r=this.clippedPos(e.row,e.column),l=this.pos(e.row,e.column+t.length);return this.applyDelta({start:r,end:l,action:"insert",lines:[t]},!0),this.clonePos(l)},d.prototype.clippedPos=function(e,t){var r=this.getLength();e===void 0?e=r:e<0?e=0:e>=r&&(e=r-1,t=void 0);var l=this.getLine(e);return t==null&&(t=l.length),t=Math.min(Math.max(t,0),l.length),{row:e,column:t}},d.prototype.clonePos=function(e){return{row:e.row,column:e.column}},d.prototype.pos=function(e,t){return{row:e,column:t}},d.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},d.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var r=0;e0,l=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},d.prototype.replace=function(e,t){if(e instanceof h||(e=h.fromPoints(e.start,e.end)),t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var r;return t?r=this.insert(e.start,t):r=e.start,r},d.prototype.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},d.prototype.applyDelta=function(e,t){var r=e.action=="insert";(r?e.lines.length<=1&&!e.lines[0]:!h.comparePoints(e.start,e.end))||(r&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(v(this.$lines,e,t),this._signal("change",e)))},d.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action=="remove"&&e.start.row0;)h&1&&(p+=o),(h>>=1)&&(o+=o);return p};var u=/^\s\s*/,v=/\s\s*$/;n.stringTrimLeft=function(o){return o.replace(u,"")},n.stringTrimRight=function(o){return o.replace(v,"")},n.copyObject=function(o){var h={};for(var p in o)h[p]=o[p];return h},n.copyArray=function(o){for(var h=[],p=0,a=o.length;p65535?2:1}}),ace.define("ace/worker/mirror",[],function(L,n,i){var u=L("../document").Document,v=L("../lib/lang"),o=n.Mirror=function(h){this.sender=h;var p=this.doc=new u(""),a=this.deferredUpdate=v.delayedCall(this.onUpdate.bind(this)),d=this;h.on("change",function(e){var t=e.data;if(t[0].start)p.applyDeltas(t);else for(var r=0;r=p.$lines.length)throw s=new Error("Invalid delta"),s.data={path:d.$path,linesLength:p.$lines.length,start:l.start,end:l.end},s;p.applyDelta(l,!0)}if(d.$timeout)return a.schedule(d.$timeout);d.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(h){this.$timeout=h},this.setValue=function(h){this.doc.setValue(h),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(h){this.sender.callback(this.doc.getValue(),h)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),ace.define("ace/mode/json/json_parse",[],function(L,n,i){var u,v,o={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "},h,p=function(f){throw{name:"SyntaxError",message:f,at:u,text:h}},a=function(f){return f&&f!==v&&p("Expected '"+f+"' instead of '"+v+"'"),v=h.charAt(u),u+=1,v},d=function(){var f,m="";for(v==="-"&&(m="-",a("-"));v>="0"&&v<="9";)m+=v,a();if(v===".")for(m+=".";a()&&v>="0"&&v<="9";)m+=v;if(v==="e"||v==="E")for(m+=v,a(),(v==="-"||v==="+")&&(m+=v,a());v>="0"&&v<="9";)m+=v,a();if(f=+m,!isNaN(f))return f;p("Bad number")},e=function(){var f,m,y="",D;if(v==='"')for(;a();){if(v==='"')return a(),y;if(v==="\\")if(a(),v==="u"){for(D=0,m=0;m<4&&(f=parseInt(a(),16),!!isFinite(f));m+=1)D=D*16+f;y+=String.fromCharCode(D)}else{if(typeof o[v]!="string")break;y+=o[v]}else{if(v==` +`||v=="\r")break;y+=v}}p("Bad string")},t=function(){for(;v&&v<=" ";)a()},r=function(){switch(v){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}p("Unexpected '"+v+"'")},l,s=function(){var f=[];if(v==="["){if(a("["),t(),v==="]")return a("]"),f;for(;v;){if(f.push(l()),t(),v==="]")return a("]"),f;a(","),t()}}p("Bad array")},c=function(){var f,m={};if(v==="{"){if(a("{"),t(),v==="}")return a("}"),m;for(;v;){if(f=e(),t(),a(":"),Object.hasOwnProperty.call(m,f)&&p('Duplicate key "'+f+'"'),m[f]=l(),t(),v==="}")return a("}"),m;a(","),t()}}p("Bad object")};return l=function(){switch(t(),v){case"{":return c();case"[":return s();case'"':return e();case"-":return d();default:return v>="0"&&v<="9"?d():r()}},function(f,m){var y;return h=f,u=0,v=" ",y=l(),t(),v&&p("Syntax error"),typeof m=="function"?function D(E,b){var g,S,T=E[b];if(T&&typeof T=="object")for(g in T)Object.hasOwnProperty.call(T,g)&&(S=D(T,g),S!==void 0?T[g]=S:delete T[g]);return m.call(E,b,T)}({"":y},""):y}}),ace.define("ace/mode/json_worker",[],function(L,n,i){var u=L("../lib/oop"),v=L("../worker/mirror").Mirror,o=L("./json/json_parse"),h=n.JsonWorker=function(p){v.call(this,p),this.setTimeout(200)};u.inherits(h,v),function(){this.onUpdate=function(){var p=this.doc.getValue(),a=[];try{p&&o(p)}catch(e){var d=this.doc.indexToPosition(e.at-1);a.push({row:d.row,column:d.column,text:e.message,type:"error"})}this.sender.emit("annotate",a)}}.call(h.prototype)});var ka={exports:{}};(function(L,n){ace.define("ace/theme/clouds_midnight-css",["require","exports","module"],function(i,u,v){v.exports=`.ace-clouds-midnight .ace_gutter { background: #232323; color: #929292 } @@ -1287,21 +1286,21 @@ import{C as pt,R as k}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh .ace-chrome .ace_indent-guide-active { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y; } -`}),ace.define("ace/theme/chrome",["require","exports","module","ace/theme/chrome-css","ace/lib/dom"],function(i,u,v){u.isDark=!1,u.cssClass="ace-chrome",u.cssText=i("./chrome-css");var o=i("../lib/dom");o.importCssString(u.cssText,u.cssClass,!1)}),function(){ace.require(["ace/theme/chrome"],function(i){L&&(L.exports=i)})}()})(Ma);var La={exports:{}};(function(L,n){ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(i,u,v){function o(g){var S=new Date().toLocaleString("en-us",g);return S.length==1?"0"+S:S}var h=i("./lib/dom"),d=i("./lib/oop"),s=i("./lib/event_emitter").EventEmitter,p=i("./lib/lang"),e=i("./range").Range,t=i("./range_list").RangeList,r=i("./keyboard/hash_handler").HashHandler,l=i("./tokenizer").Tokenizer,a=i("./clipboard"),c={CURRENT_WORD:function(g){return g.session.getTextRange(g.session.getWordRange())},SELECTION:function(g,S,M){var _=g.session.getTextRange();return M?_.replace(/\n\r?([ \t]*\S)/g,` -`+M+"$1"):_},CURRENT_LINE:function(g){return g.session.getLine(g.getCursorPosition().row)},PREV_LINE:function(g){return g.session.getLine(g.getCursorPosition().row-1)},LINE_INDEX:function(g){return g.getCursorPosition().row},LINE_NUMBER:function(g){return g.getCursorPosition().row+1},SOFT_TABS:function(g){return g.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(g){return g.session.getTabSize()},CLIPBOARD:function(g){return a.getText&&a.getText()},FILENAME:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0]},FILENAME_BASE:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(g){return this.FILEPATH(g).replace(/[^/\\]*$/,"")},FILEPATH:function(g){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.start||""},BLOCK_COMMENT_END:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.end||""},LINE_COMMENT:function(g){var S=g.session.$mode||{};return S.lineCommentStart||""},CURRENT_YEAR:o.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:o.bind(null,{year:"2-digit"}),CURRENT_MONTH:o.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:o.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:o.bind(null,{month:"short"}),CURRENT_DATE:o.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:o.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:o.bind(null,{weekday:"short"}),CURRENT_HOUR:o.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:o.bind(null,{minute:"2-digit"}),CURRENT_SECOND:o.bind(null,{second:"2-digit"})};c.SELECTED_TEXT=c.SELECTION;var f=function(){function g(){this.snippetMap={},this.snippetNameMap={},this.variables=c}return g.prototype.getTokenizer=function(){return g.$tokenizer||this.createTokenizer()},g.prototype.createTokenizer=function(){function S(T){return T=T.substr(1),/^\d+$/.test(T)?[{tabstopId:parseInt(T,10)}]:[{text:T}]}function M(T){return"(?:[^\\\\"+T+"]|\\\\.)"}var _={regex:"/("+M("/")+"+)/",onMatch:function(T,F,A){var $=A[0];return $.fmtString=!0,$.guard=T.slice(1,-1),$.flag="",""},next:"formatString"};return g.$tokenizer=new l({start:[{regex:/\\./,onMatch:function(T,F,A){var $=T[1];return($=="}"&&A.length||"`$\\".indexOf($)!=-1)&&(T=$),[T]}},{regex:/}/,onMatch:function(T,F,A){return[A.length?A.shift():T]}},{regex:/\$(?:\d+|\w+)/,onMatch:S},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(T,F,A){var $=S(T.substr(1));return A.unshift($[0]),$},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+M("\\|")+"*\\|",onMatch:function(T,F,A){var $=T.slice(1,-1).replace(/\\[,|\\]|,/g,function(C){return C.length==2?C[1]:"\0"}).split("\0").map(function(C){return{value:C}});return A[0].choices=$,[$[0]]},next:"start"},_,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(T,F,A){return A.length&&A[0].expectElse?(A[0].expectElse=!1,A[0].ifEnd={elseEnd:A[0]},[A[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(T,F,A){var $=T[1];return $=="}"&&A.length||"`$\\".indexOf($)!=-1?T=$:$=="n"?T=` -`:$=="t"?T=" ":"ulULE".indexOf($)!=-1&&(T={changeCase:$,local:$>"a"}),[T]}},{regex:"/\\w*}",onMatch:function(T,F,A){var $=A.shift();return $&&($.flag=T.slice(1,-1)),this.next=$&&$.tabstopId?"start":"",[$||T]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(T,F,A){return[{text:T.slice(1)}]}},{regex:/\${\w+/,onMatch:function(T,F,A){var $={text:T.slice(2)};return A.unshift($),[$]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(T,F,A){var $=A.shift();return this.next=$&&$.tabstopId?"start":"",[$||T]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(T,F,A){var $=A[0];return $.formatFunction=T.slice(2,-1),[A.shift()]},next:"formatString"},_,{regex:/:[\?\-+]?/,onMatch:function(T,F,A){T[1]=="+"&&(A[0].ifEnd=A[0]),T[1]=="?"&&(A[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),g.$tokenizer},g.prototype.tokenizeTmSnippet=function(S,M){return this.getTokenizer().getLineTokens(S,M).tokens.map(function(_){return _.value||_})},g.prototype.getVariableValue=function(S,M,_){if(/^\d+$/.test(M))return(this.variables.__||{})[M]||"";if(/^[A-Z]\d+$/.test(M))return(this.variables[M[0]+"__"]||{})[M.substr(1)]||"";if(M=M.replace(/^TM_/,""),!this.variables.hasOwnProperty(M))return"";var T=this.variables[M];return typeof T=="function"&&(T=this.variables[M](S,M,_)),T??""},g.prototype.tmStrFormat=function(S,M,_){if(!M.fmt)return S;var T=M.flag||"",F=M.guard;F=new RegExp(F,T.replace(/[^gim]/g,""));var A=typeof M.fmt=="string"?this.tokenizeTmSnippet(M.fmt,"formatString"):M.fmt,$=this,C=S.replace(F,function(){var w=$.variables.__;$.variables.__=[].slice.call(arguments);for(var x=$.resolveVariables(A,_),I="E",R=0;R=0&&C.splice(w,1)}}var T=this.snippetMap,F=this.snippetNameMap;S.content?_(S):Array.isArray(S)&&S.forEach(_)},g.prototype.parseSnippetFile=function(S){S=S.replace(/\r/g,"");for(var M=[],_={},T=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,F;F=T.exec(S);){if(F[1])try{_=JSON.parse(F[1]),M.push(_)}catch{}if(F[4])_.content=F[4].replace(/^\t/gm,""),M.push(_),_={};else{var A=F[2],$=F[3];if(A=="regex"){var C=/\/((?:[^\/\\]|\\.)*)|$/g;_.guard=C.exec($)[1],_.trigger=C.exec($)[1],_.endTrigger=C.exec($)[1],_.endGuard=C.exec($)[1]}else A=="snippet"?(_.tabTrigger=$.match(/^\S*/)[0],_.name||(_.name=$)):A&&(_[A]=$)}}return M},g.prototype.getSnippetByName=function(S,M){var _=this.snippetNameMap,T;return this.getActiveScopes(M).some(function(F){var A=_[F];return A&&(T=A[S]),!!T},this),T},g}();d.implement(f.prototype,s);var m=function(g,S,M){function _(G){for(var Y=[],Q=0;Q1?(H=Y[Y.length-1].length,W+=Y.length-1):H+=G.length,U+=G}else G&&(G.start?G.end={row:W,column:H}:G.start={row:W,column:H})}),{text:U,tabstops:w,tokens:C}},y=function(){function g(S){if(this.index=0,this.ranges=[],this.tabstops=[],S.tabstopManager)return S.tabstopManager;S.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=p.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(S)}return g.prototype.attach=function(S){this.$openTabstops=null,this.selectedTabstop=null,this.editor=S,this.session=S.session,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},g.prototype.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges.length=0,this.tabstops.length=0,this.selectedTabstop=null,this.editor.off("change",this.$onChange),this.editor.off("changeSelection",this.$onChangeSelection),this.editor.off("changeSession",this.$onChangeSession),this.editor.commands.off("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.session=null,this.editor=null},g.prototype.onChange=function(S){for(var M=S.action[0]=="r",_=this.selectedTabstop||{},T=_.parents||{},F=this.tabstops.slice(),A=0;A2&&(this.tabstops.length&&$.push($.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,$))},g.prototype.addTabstopMarkers=function(S){var M=this.session;S.forEach(function(_){_.markerId||(_.markerId=M.addMarker(_,"ace_snippet-marker","text"))})},g.prototype.removeTabstopMarkers=function(S){var M=this.session;S.forEach(function(_){M.removeMarker(_.markerId),_.markerId=null})},g.prototype.updateTabstopMarkers=function(){if(this.selectedTabstop){var S=this.selectedTabstop.snippetId;this.selectedTabstop.index===0&&S--,this.tabstops.forEach(function(M){M.snippetId===S?this.addTabstopMarkers(M):this.removeTabstopMarkers(M)},this)}},g.prototype.removeRange=function(S){var M=S.tabstop.indexOf(S);M!=-1&&S.tabstop.splice(M,1),M=this.ranges.indexOf(S),M!=-1&&this.ranges.splice(M,1),M=S.tabstop.rangeList.ranges.indexOf(S),M!=-1&&S.tabstop.splice(M,1),this.session.removeMarker(S.markerId),S.tabstop.length||(M=this.tabstops.indexOf(S.tabstop),M!=-1&&this.tabstops.splice(M,1),this.tabstops.length||this.detach())},g}();y.prototype.keyboardHandler=new r,y.prototype.keyboardHandler.bindKeys({Tab:function(g){u.snippetManager&&u.snippetManager.expandWithTab(g)||(g.tabstopManager.tabNext(1),g.renderer.scrollCursorIntoView())},"Shift-Tab":function(g){g.tabstopManager.tabNext(-1),g.renderer.scrollCursorIntoView()},Esc:function(g){g.tabstopManager.detach()}});var D=function(g,S){g.row==0&&(g.column+=S.column),g.row+=S.row},E=function(g,S){g.row==S.row&&(g.column-=S.column),g.row-=S.row};h.importCssString(` +`}),ace.define("ace/theme/chrome",["require","exports","module","ace/theme/chrome-css","ace/lib/dom"],function(i,u,v){u.isDark=!1,u.cssClass="ace-chrome",u.cssText=i("./chrome-css");var o=i("../lib/dom");o.importCssString(u.cssText,u.cssClass,!1)}),function(){ace.require(["ace/theme/chrome"],function(i){L&&(L.exports=i)})}()})(Ma);var La={exports:{}};(function(L,n){ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(i,u,v){function o(g){var S=new Date().toLocaleString("en-us",g);return S.length==1?"0"+S:S}var h=i("./lib/dom"),p=i("./lib/oop"),a=i("./lib/event_emitter").EventEmitter,d=i("./lib/lang"),e=i("./range").Range,t=i("./range_list").RangeList,r=i("./keyboard/hash_handler").HashHandler,l=i("./tokenizer").Tokenizer,s=i("./clipboard"),c={CURRENT_WORD:function(g){return g.session.getTextRange(g.session.getWordRange())},SELECTION:function(g,S,T){var k=g.session.getTextRange();return T?k.replace(/\n\r?([ \t]*\S)/g,` +`+T+"$1"):k},CURRENT_LINE:function(g){return g.session.getLine(g.getCursorPosition().row)},PREV_LINE:function(g){return g.session.getLine(g.getCursorPosition().row-1)},LINE_INDEX:function(g){return g.getCursorPosition().row},LINE_NUMBER:function(g){return g.getCursorPosition().row+1},SOFT_TABS:function(g){return g.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(g){return g.session.getTabSize()},CLIPBOARD:function(g){return s.getText&&s.getText()},FILENAME:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0]},FILENAME_BASE:function(g){return/[^/\\]*$/.exec(this.FILEPATH(g))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(g){return this.FILEPATH(g).replace(/[^/\\]*$/,"")},FILEPATH:function(g){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.start||""},BLOCK_COMMENT_END:function(g){var S=g.session.$mode||{};return S.blockComment&&S.blockComment.end||""},LINE_COMMENT:function(g){var S=g.session.$mode||{};return S.lineCommentStart||""},CURRENT_YEAR:o.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:o.bind(null,{year:"2-digit"}),CURRENT_MONTH:o.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:o.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:o.bind(null,{month:"short"}),CURRENT_DATE:o.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:o.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:o.bind(null,{weekday:"short"}),CURRENT_HOUR:o.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:o.bind(null,{minute:"2-digit"}),CURRENT_SECOND:o.bind(null,{second:"2-digit"})};c.SELECTED_TEXT=c.SELECTION;var f=function(){function g(){this.snippetMap={},this.snippetNameMap={},this.variables=c}return g.prototype.getTokenizer=function(){return g.$tokenizer||this.createTokenizer()},g.prototype.createTokenizer=function(){function S(_){return _=_.substr(1),/^\d+$/.test(_)?[{tabstopId:parseInt(_,10)}]:[{text:_}]}function T(_){return"(?:[^\\\\"+_+"]|\\\\.)"}var k={regex:"/("+T("/")+"+)/",onMatch:function(_,O,$){var A=$[0];return A.fmtString=!0,A.guard=_.slice(1,-1),A.flag="",""},next:"formatString"};return g.$tokenizer=new l({start:[{regex:/\\./,onMatch:function(_,O,$){var A=_[1];return(A=="}"&&$.length||"`$\\".indexOf(A)!=-1)&&(_=A),[_]}},{regex:/}/,onMatch:function(_,O,$){return[$.length?$.shift():_]}},{regex:/\$(?:\d+|\w+)/,onMatch:S},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(_,O,$){var A=S(_.substr(1));return $.unshift(A[0]),A},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+T("\\|")+"*\\|",onMatch:function(_,O,$){var A=_.slice(1,-1).replace(/\\[,|\\]|,/g,function(C){return C.length==2?C[1]:"\0"}).split("\0").map(function(C){return{value:C}});return $[0].choices=A,[A[0]]},next:"start"},k,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(_,O,$){return $.length&&$[0].expectElse?($[0].expectElse=!1,$[0].ifEnd={elseEnd:$[0]},[$[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(_,O,$){var A=_[1];return A=="}"&&$.length||"`$\\".indexOf(A)!=-1?_=A:A=="n"?_=` +`:A=="t"?_=" ":"ulULE".indexOf(A)!=-1&&(_={changeCase:A,local:A>"a"}),[_]}},{regex:"/\\w*}",onMatch:function(_,O,$){var A=$.shift();return A&&(A.flag=_.slice(1,-1)),this.next=A&&A.tabstopId?"start":"",[A||_]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(_,O,$){return[{text:_.slice(1)}]}},{regex:/\${\w+/,onMatch:function(_,O,$){var A={text:_.slice(2)};return $.unshift(A),[A]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(_,O,$){var A=$.shift();return this.next=A&&A.tabstopId?"start":"",[A||_]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(_,O,$){var A=$[0];return A.formatFunction=_.slice(2,-1),[$.shift()]},next:"formatString"},k,{regex:/:[\?\-+]?/,onMatch:function(_,O,$){_[1]=="+"&&($[0].ifEnd=$[0]),_[1]=="?"&&($[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),g.$tokenizer},g.prototype.tokenizeTmSnippet=function(S,T){return this.getTokenizer().getLineTokens(S,T).tokens.map(function(k){return k.value||k})},g.prototype.getVariableValue=function(S,T,k){if(/^\d+$/.test(T))return(this.variables.__||{})[T]||"";if(/^[A-Z]\d+$/.test(T))return(this.variables[T[0]+"__"]||{})[T.substr(1)]||"";if(T=T.replace(/^TM_/,""),!this.variables.hasOwnProperty(T))return"";var _=this.variables[T];return typeof _=="function"&&(_=this.variables[T](S,T,k)),_??""},g.prototype.tmStrFormat=function(S,T,k){if(!T.fmt)return S;var _=T.flag||"",O=T.guard;O=new RegExp(O,_.replace(/[^gim]/g,""));var $=typeof T.fmt=="string"?this.tokenizeTmSnippet(T.fmt,"formatString"):T.fmt,A=this,C=S.replace(O,function(){var w=A.variables.__;A.variables.__=[].slice.call(arguments);for(var x=A.resolveVariables($,k),I="E",F=0;F=0&&C.splice(w,1)}}var _=this.snippetMap,O=this.snippetNameMap;S.content?k(S):Array.isArray(S)&&S.forEach(k)},g.prototype.parseSnippetFile=function(S){S=S.replace(/\r/g,"");for(var T=[],k={},_=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,O;O=_.exec(S);){if(O[1])try{k=JSON.parse(O[1]),T.push(k)}catch{}if(O[4])k.content=O[4].replace(/^\t/gm,""),T.push(k),k={};else{var $=O[2],A=O[3];if($=="regex"){var C=/\/((?:[^\/\\]|\\.)*)|$/g;k.guard=C.exec(A)[1],k.trigger=C.exec(A)[1],k.endTrigger=C.exec(A)[1],k.endGuard=C.exec(A)[1]}else $=="snippet"?(k.tabTrigger=A.match(/^\S*/)[0],k.name||(k.name=A)):$&&(k[$]=A)}}return T},g.prototype.getSnippetByName=function(S,T){var k=this.snippetNameMap,_;return this.getActiveScopes(T).some(function(O){var $=k[O];return $&&(_=$[S]),!!_},this),_},g}();p.implement(f.prototype,a);var m=function(g,S,T){function k(G){for(var Y=[],Q=0;Q1?(H=Y[Y.length-1].length,W+=Y.length-1):H+=G.length,U+=G}else G&&(G.start?G.end={row:W,column:H}:G.start={row:W,column:H})}),{text:U,tabstops:w,tokens:C}},y=function(){function g(S){if(this.index=0,this.ranges=[],this.tabstops=[],S.tabstopManager)return S.tabstopManager;S.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=d.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(S)}return g.prototype.attach=function(S){this.$openTabstops=null,this.selectedTabstop=null,this.editor=S,this.session=S.session,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},g.prototype.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges.length=0,this.tabstops.length=0,this.selectedTabstop=null,this.editor.off("change",this.$onChange),this.editor.off("changeSelection",this.$onChangeSelection),this.editor.off("changeSession",this.$onChangeSession),this.editor.commands.off("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.session=null,this.editor=null},g.prototype.onChange=function(S){for(var T=S.action[0]=="r",k=this.selectedTabstop||{},_=k.parents||{},O=this.tabstops.slice(),$=0;$2&&(this.tabstops.length&&A.push(A.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,A))},g.prototype.addTabstopMarkers=function(S){var T=this.session;S.forEach(function(k){k.markerId||(k.markerId=T.addMarker(k,"ace_snippet-marker","text"))})},g.prototype.removeTabstopMarkers=function(S){var T=this.session;S.forEach(function(k){T.removeMarker(k.markerId),k.markerId=null})},g.prototype.updateTabstopMarkers=function(){if(this.selectedTabstop){var S=this.selectedTabstop.snippetId;this.selectedTabstop.index===0&&S--,this.tabstops.forEach(function(T){T.snippetId===S?this.addTabstopMarkers(T):this.removeTabstopMarkers(T)},this)}},g.prototype.removeRange=function(S){var T=S.tabstop.indexOf(S);T!=-1&&S.tabstop.splice(T,1),T=this.ranges.indexOf(S),T!=-1&&this.ranges.splice(T,1),T=S.tabstop.rangeList.ranges.indexOf(S),T!=-1&&S.tabstop.splice(T,1),this.session.removeMarker(S.markerId),S.tabstop.length||(T=this.tabstops.indexOf(S.tabstop),T!=-1&&this.tabstops.splice(T,1),this.tabstops.length||this.detach())},g}();y.prototype.keyboardHandler=new r,y.prototype.keyboardHandler.bindKeys({Tab:function(g){u.snippetManager&&u.snippetManager.expandWithTab(g)||(g.tabstopManager.tabNext(1),g.renderer.scrollCursorIntoView())},"Shift-Tab":function(g){g.tabstopManager.tabNext(-1),g.renderer.scrollCursorIntoView()},Esc:function(g){g.tabstopManager.detach()}});var D=function(g,S){g.row==0&&(g.column+=S.column),g.row+=S.row},E=function(g,S){g.row==S.row&&(g.column-=S.column),g.row-=S.row};h.importCssString(` .ace_snippet-marker { -moz-box-sizing: border-box; box-sizing: border-box; background: rgba(194, 193, 208, 0.09); border: 1px dotted rgba(211, 208, 235, 0.62); position: absolute; -}`,"snippets.css",!1),u.snippetManager=new f;var b=i("./editor").Editor;(function(){this.insertSnippet=function(g,S){return u.snippetManager.insertSnippet(this,g,S)},this.expandSnippet=function(g){return u.snippetManager.expandWithTab(this,g)}}).call(b.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/config","ace/lib/useragent"],function(i,u,v){var o=i("../virtual_renderer").VirtualRenderer,h=i("../editor").Editor,d=i("../range").Range,s=i("../lib/event"),p=i("../lib/lang"),e=i("../lib/dom"),t=i("../config").nls,r=i("./../lib/useragent"),l=function(D){return"suggest-aria-id:".concat(D)},a=r.isSafari?"menu":"listbox",c=r.isSafari?"menuitem":"option",f=r.isSafari?"aria-current":"aria-selected",m=function(D){var E=new o(D);E.$maxLines=4;var b=new h(E);return b.setHighlightActiveLine(!1),b.setShowPrintMargin(!1),b.renderer.setShowGutter(!1),b.renderer.setHighlightGutterLine(!1),b.$mouseHandler.$focusTimeout=0,b.$highlightTagPending=!0,b},y=function(){function D(E){var b=e.createElement("div"),g=m(b);E&&E.appendChild(b),b.style.display="none",g.renderer.content.style.cursor="default",g.renderer.setStyle("ace_autocomplete"),g.renderer.$textLayer.element.setAttribute("role",a),g.renderer.$textLayer.element.setAttribute("aria-roledescription",t("autocomplete.popup.aria-roledescription","Autocomplete suggestions")),g.renderer.$textLayer.element.setAttribute("aria-label",t("autocomplete.popup.aria-label","Autocomplete suggestions")),g.renderer.textarea.setAttribute("aria-hidden","true"),g.setOption("displayIndentGuides",!1),g.setOption("dragDelay",150);var S=function(){};g.focus=S,g.$isFocused=!0,g.renderer.$cursorLayer.restartTimer=S,g.renderer.$cursorLayer.element.style.opacity="0",g.renderer.$maxLines=8,g.renderer.$keepTextAreaAtCursor=!1,g.setHighlightActiveLine(!1),g.session.highlight(""),g.session.$searchHighlight.clazz="ace_highlight-marker",g.on("mousedown",function(C){var w=C.getDocumentPosition();g.selection.moveToPosition(w),T.start.row=T.end.row=w.row,C.stop()});var M,_=new d(-1,0,-1,1/0),T=new d(-1,0,-1,1/0);T.id=g.session.addMarker(T,"ace_active-line","fullLine"),g.setSelectOnHover=function(C){C?_.id&&(g.session.removeMarker(_.id),_.id=null):_.id=g.session.addMarker(_,"ace_line-hover","fullLine")},g.setSelectOnHover(!1),g.on("mousemove",function(C){if(!M){M=C;return}if(!(M.x==C.x&&M.y==C.y)){M=C,M.scrollTop=g.renderer.scrollTop,g.isMouseOver=!0;var w=M.getDocumentPosition().row;_.start.row!=w&&(_.id||g.setRow(w),A(w))}}),g.renderer.on("beforeRender",function(){if(M&&_.start.row!=-1){M.$pos=null;var C=M.getDocumentPosition().row;_.id||g.setRow(C),A(C,!0)}}),g.renderer.on("afterRender",function(){for(var C=g.renderer.$textLayer,w=C.config.firstRow,x=C.config.lastRow;w<=x;w++){var I=C.element.childNodes[w-C.config.firstRow];I.setAttribute("role",c),I.setAttribute("aria-roledescription",t("autocomplete.popup.item.aria-roledescription","item")),I.setAttribute("aria-setsize",g.data.length),I.setAttribute("aria-describedby","doc-tooltip"),I.setAttribute("aria-posinset",w+1);var R=g.getData(w);if(R){var O="".concat(R.caption||R.value).concat(R.meta?", ".concat(R.meta):"");I.setAttribute("aria-label",O)}var P=I.querySelectorAll(".ace_completion-highlight");P.forEach(function(B){B.setAttribute("role","mark")})}}),g.renderer.on("afterRender",function(){var C=g.getRow(),w=g.renderer.$textLayer,x=w.element.childNodes[C-w.config.firstRow],I=document.activeElement;if(x!==g.selectedNode&&g.selectedNode&&(e.removeCssClass(g.selectedNode,"ace_selected"),g.selectedNode.removeAttribute(f),g.selectedNode.removeAttribute("id")),I.removeAttribute("aria-activedescendant"),g.selectedNode=x,x){var R=l(C);e.addCssClass(x,"ace_selected"),x.id=R,w.element.setAttribute("aria-activedescendant",R),I.setAttribute("aria-activedescendant",R),x.setAttribute(f,"true")}});var F=function(){A(-1)},A=function(C,w){C!==_.start.row&&(_.start.row=_.end.row=C,w||g.session._emit("changeBackMarker"),g._emit("changeHoverMarker"))};g.getHoveredRow=function(){return _.start.row},s.addListener(g.container,"mouseout",function(){g.isMouseOver=!1,F()}),g.on("hide",F),g.on("changeSelection",F),g.session.doc.getLength=function(){return g.data.length},g.session.doc.getLine=function(C){var w=g.data[C];return typeof w=="string"?w:w&&w.value||""};var $=g.session.bgTokenizer;return $.$tokenizeRow=function(C){function w(G,Y){G&&I.push({type:(x.className||"")+(Y||""),value:G})}var x=g.data[C],I=[];if(!x)return I;typeof x=="string"&&(x={value:x});for(var R=x.caption||x.value||x.name,O=R.toLowerCase(),P=(g.filterText||"").toLowerCase(),B=0,V=0,W=0;W<=P.length;W++)if(W!=V&&(x.matchMask&1<=W?x="bottom":x="top"),x==="top"?(H.bottom=C.top-this.$borderSize,H.top=H.bottom-W):x==="bottom"&&(H.top=C.top+w+this.$borderSize,H.bottom=H.top+W);var Y=H.top>=0&&H.bottom<=P;if(!I&&!Y)return!1;Y?V.$maxPixelHeight=null:x==="top"?V.$maxPixelHeight=G:V.$maxPixelHeight=U,x==="top"?(R.style.top="",R.style.bottom=P+O-H.bottom+"px",g.isTopdown=!1):(R.style.top=H.top+"px",R.style.bottom="",g.isTopdown=!0),R.style.display="";var Q=C.left;return Q+R.offsetWidth>B&&(Q=B-R.offsetWidth),R.style.left=Q+"px",R.style.right="",g.isOpen||(g.isOpen=!0,this._signal("show"),M=null),g.anchorPos=C,g.anchor=x,!0},g.show=function(C,w,x){this.tryShow(C,w,x?"bottom":void 0,!0)},g.goTo=function(C){var w=this.getRow(),x=this.session.getLength()-1;switch(C){case"up":w=w<=0?x:w-1;break;case"down":w=w>=x?-1:w+1;break;case"start":w=0;break;case"end":w=x}this.setRow(w)},g.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},g.$imageSize=0,g.$borderSize=1,g}return D}();e.importCssString(` +}`,"snippets.css",!1),u.snippetManager=new f;var b=i("./editor").Editor;(function(){this.insertSnippet=function(g,S){return u.snippetManager.insertSnippet(this,g,S)},this.expandSnippet=function(g){return u.snippetManager.expandWithTab(this,g)}}).call(b.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/config","ace/lib/useragent"],function(i,u,v){var o=i("../virtual_renderer").VirtualRenderer,h=i("../editor").Editor,p=i("../range").Range,a=i("../lib/event"),d=i("../lib/lang"),e=i("../lib/dom"),t=i("../config").nls,r=i("./../lib/useragent"),l=function(D){return"suggest-aria-id:".concat(D)},s=r.isSafari?"menu":"listbox",c=r.isSafari?"menuitem":"option",f=r.isSafari?"aria-current":"aria-selected",m=function(D){var E=new o(D);E.$maxLines=4;var b=new h(E);return b.setHighlightActiveLine(!1),b.setShowPrintMargin(!1),b.renderer.setShowGutter(!1),b.renderer.setHighlightGutterLine(!1),b.$mouseHandler.$focusTimeout=0,b.$highlightTagPending=!0,b},y=function(){function D(E){var b=e.createElement("div"),g=m(b);E&&E.appendChild(b),b.style.display="none",g.renderer.content.style.cursor="default",g.renderer.setStyle("ace_autocomplete"),g.renderer.$textLayer.element.setAttribute("role",s),g.renderer.$textLayer.element.setAttribute("aria-roledescription",t("autocomplete.popup.aria-roledescription","Autocomplete suggestions")),g.renderer.$textLayer.element.setAttribute("aria-label",t("autocomplete.popup.aria-label","Autocomplete suggestions")),g.renderer.textarea.setAttribute("aria-hidden","true"),g.setOption("displayIndentGuides",!1),g.setOption("dragDelay",150);var S=function(){};g.focus=S,g.$isFocused=!0,g.renderer.$cursorLayer.restartTimer=S,g.renderer.$cursorLayer.element.style.opacity="0",g.renderer.$maxLines=8,g.renderer.$keepTextAreaAtCursor=!1,g.setHighlightActiveLine(!1),g.session.highlight(""),g.session.$searchHighlight.clazz="ace_highlight-marker",g.on("mousedown",function(C){var w=C.getDocumentPosition();g.selection.moveToPosition(w),_.start.row=_.end.row=w.row,C.stop()});var T,k=new p(-1,0,-1,1/0),_=new p(-1,0,-1,1/0);_.id=g.session.addMarker(_,"ace_active-line","fullLine"),g.setSelectOnHover=function(C){C?k.id&&(g.session.removeMarker(k.id),k.id=null):k.id=g.session.addMarker(k,"ace_line-hover","fullLine")},g.setSelectOnHover(!1),g.on("mousemove",function(C){if(!T){T=C;return}if(!(T.x==C.x&&T.y==C.y)){T=C,T.scrollTop=g.renderer.scrollTop,g.isMouseOver=!0;var w=T.getDocumentPosition().row;k.start.row!=w&&(k.id||g.setRow(w),$(w))}}),g.renderer.on("beforeRender",function(){if(T&&k.start.row!=-1){T.$pos=null;var C=T.getDocumentPosition().row;k.id||g.setRow(C),$(C,!0)}}),g.renderer.on("afterRender",function(){for(var C=g.renderer.$textLayer,w=C.config.firstRow,x=C.config.lastRow;w<=x;w++){var I=C.element.childNodes[w-C.config.firstRow];I.setAttribute("role",c),I.setAttribute("aria-roledescription",t("autocomplete.popup.item.aria-roledescription","item")),I.setAttribute("aria-setsize",g.data.length),I.setAttribute("aria-describedby","doc-tooltip"),I.setAttribute("aria-posinset",w+1);var F=g.getData(w);if(F){var R="".concat(F.caption||F.value).concat(F.meta?", ".concat(F.meta):"");I.setAttribute("aria-label",R)}var B=I.querySelectorAll(".ace_completion-highlight");B.forEach(function(P){P.setAttribute("role","mark")})}}),g.renderer.on("afterRender",function(){var C=g.getRow(),w=g.renderer.$textLayer,x=w.element.childNodes[C-w.config.firstRow],I=document.activeElement;if(x!==g.selectedNode&&g.selectedNode&&(e.removeCssClass(g.selectedNode,"ace_selected"),g.selectedNode.removeAttribute(f),g.selectedNode.removeAttribute("id")),I.removeAttribute("aria-activedescendant"),g.selectedNode=x,x){var F=l(C);e.addCssClass(x,"ace_selected"),x.id=F,w.element.setAttribute("aria-activedescendant",F),I.setAttribute("aria-activedescendant",F),x.setAttribute(f,"true")}});var O=function(){$(-1)},$=function(C,w){C!==k.start.row&&(k.start.row=k.end.row=C,w||g.session._emit("changeBackMarker"),g._emit("changeHoverMarker"))};g.getHoveredRow=function(){return k.start.row},a.addListener(g.container,"mouseout",function(){g.isMouseOver=!1,O()}),g.on("hide",O),g.on("changeSelection",O),g.session.doc.getLength=function(){return g.data.length},g.session.doc.getLine=function(C){var w=g.data[C];return typeof w=="string"?w:w&&w.value||""};var A=g.session.bgTokenizer;return A.$tokenizeRow=function(C){function w(G,Y){G&&I.push({type:(x.className||"")+(Y||""),value:G})}var x=g.data[C],I=[];if(!x)return I;typeof x=="string"&&(x={value:x});for(var F=x.caption||x.value||x.name,R=F.toLowerCase(),B=(g.filterText||"").toLowerCase(),P=0,V=0,W=0;W<=B.length;W++)if(W!=V&&(x.matchMask&1<=W?x="bottom":x="top"),x==="top"?(H.bottom=C.top-this.$borderSize,H.top=H.bottom-W):x==="bottom"&&(H.top=C.top+w+this.$borderSize,H.bottom=H.top+W);var Y=H.top>=0&&H.bottom<=B;if(!I&&!Y)return!1;Y?V.$maxPixelHeight=null:x==="top"?V.$maxPixelHeight=G:V.$maxPixelHeight=U,x==="top"?(F.style.top="",F.style.bottom=B+R-H.bottom+"px",g.isTopdown=!1):(F.style.top=H.top+"px",F.style.bottom="",g.isTopdown=!0),F.style.display="";var Q=C.left;return Q+F.offsetWidth>P&&(Q=P-F.offsetWidth),F.style.left=Q+"px",F.style.right="",g.isOpen||(g.isOpen=!0,this._signal("show"),T=null),g.anchorPos=C,g.anchor=x,!0},g.show=function(C,w,x){this.tryShow(C,w,x?"bottom":void 0,!0)},g.goTo=function(C){var w=this.getRow(),x=this.session.getLength()-1;switch(C){case"up":w=w<=0?x:w-1;break;case"down":w=w>=x?-1:w+1;break;case"start":w=0;break;case"end":w=x}this.setRow(w)},g.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},g.$imageSize=0,g.$borderSize=1,g}return D}();e.importCssString(` .ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1; @@ -1393,7 +1392,7 @@ import{C as pt,R as k}from"./ConfigCustomJavascriptSet__loadShare__react__loadSh animation: none; } } -`,"autocompletion.css",!1),u.AcePopup=y,u.$singleLineEditor=m,u.getAriaId=l}),ace.define("ace/autocomplete/inline_screenreader",["require","exports","module"],function(i,u,v){var o=function(){function h(d){this.editor=d,this.screenReaderDiv=document.createElement("div"),this.screenReaderDiv.classList.add("ace_screenreader-only"),this.editor.container.appendChild(this.screenReaderDiv)}return h.prototype.setScreenReaderContent=function(d){for(!this.popup&&this.editor.completer&&this.editor.completer.popup&&(this.popup=this.editor.completer.popup,this.popup.renderer.on("afterRender",function(){var p=this.popup.getRow(),e=this.popup.renderer.$textLayer,t=e.element.childNodes[p-e.config.firstRow];if(t){for(var r="doc-tooltip ",l=0;l=0&&s.test(h[e]);e--)p.push(h[e]);return p.reverse().join("")},u.retrieveFollowingIdentifier=function(h,d,s){s=s||o;for(var p=[],e=d;e0)for(var g=this.popup.getFirstVisibleRow();g<=this.popup.getLastVisibleRow();g++){var S=this.popup.getData(g);S&&(!b||S.hideInlinePreview)&&this.$seen(S)}},E.prototype.$onPopupShow=function(b){this.$onPopupChange(b),this.stickySelection=!1,this.stickySelectionDelay>=0&&this.stickySelectionTimer.schedule(this.stickySelectionDelay)},E.prototype.observeLayoutChanges=function(){if(!(this.$elements||!this.editor)){window.addEventListener("resize",this.onLayoutChange,{passive:!0}),window.addEventListener("wheel",this.mousewheelListener);for(var b=this.editor.container.parentNode,g=[];b;)g.push(b),b.addEventListener("scroll",this.onLayoutChange,{passive:!0}),b=b.parentNode;this.$elements=g}},E.prototype.unObserveLayoutChanges=function(){var b=this;window.removeEventListener("resize",this.onLayoutChange,{passive:!0}),window.removeEventListener("wheel",this.mousewheelListener),this.$elements&&this.$elements.forEach(function(g){g.removeEventListener("scroll",b.onLayoutChange,{passive:!0})}),this.$elements=null},E.prototype.onLayoutChange=function(){if(!this.popup.isOpen)return this.unObserveLayoutChanges();this.$updatePopupPosition(),this.updateDocTooltip()},E.prototype.$updatePopupPosition=function(){var b=this.editor,g=b.renderer,S=g.layerConfig.lineHeight,M=g.$cursorLayer.getPixelPosition(this.base,!0);M.left-=this.popup.getTextLeftOffset();var _=b.container.getBoundingClientRect();M.top+=_.top-g.layerConfig.offset,M.left+=_.left-b.renderer.scrollLeft,M.left+=g.gutterWidth;var T={top:M.top,left:M.left};g.$ghostText&&g.$ghostTextWidget&&this.base.row===g.$ghostText.position.row&&(T.top+=g.$ghostTextWidget.el.offsetHeight);var F=b.container.getBoundingClientRect().bottom-S,A=Fthis.filterText&&b.lastIndexOf(this.filterText,0)===0)var g=this.filtered;else var g=this.all;this.filterText=b,g=this.filterCompletions(g,this.filterText),g=g.sort(function(M,_){return _.exactMatch-M.exactMatch||_.$score-M.$score||(M.caption||M.value).localeCompare(_.caption||_.value)});var S=null;g=g.filter(function(M){var _=M.snippet||M.caption||M.value;return _===S?!1:(S=_,!0)}),this.filtered=g},E.prototype.filterCompletions=function(b,g){var S=[],M=g.toUpperCase(),_=g.toLowerCase();e:for(var T=0,F;F=b[T];T++){if(F.skipFilter){F.$score=F.score,S.push(F);continue}var A=!this.ignoreCaption&&F.caption||F.value||F.snippet;if(A){var $=-1,C=0,w=0,x,I;if(this.exactMatch){if(g!==A.substr(0,g.length))continue e}else{var R=A.toLowerCase().indexOf(_);if(R>-1)w=R;else for(var O=0;O=0&&(B<0||P0&&($===-1&&(w+=10),w+=I,C|=1<r)&&(m.range.start.row===c?a++:(c=m.range.start.row,a=0),!(a>200))){var y=m.range.clipRows(t,r);if(!(y.start.row===y.end.row&&y.start.column===y.end.column)){var D=y.toScreenRange(p);if(D.isEmpty()){l=p.getNextFoldLine(y.end.row,l),l&&l.end.row>y.end.row&&(t=l.end.row);continue}this.markerType==="fullLine"?s.drawFullLineMarker(d,D,m.className,e):D.isMultiLine()?this.markerType==="line"?s.drawMultiLineMarker(d,D,m.className,e):s.drawTextMarker(d,D,m.className,e):s.drawSingleLineMarker(d,D,m.className+" ace_br15",e)}}}},h}();o.prototype.MAX_MARKERS=1e4,u.MarkerGroup=o}),ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],function(i,u,v){function o(p,e){var t=p.getTextRange(d.fromPoints({row:0,column:0},e));return t.split(s).length-1}function h(p,e){var t=o(p,e),r=p.getValue().split(s),l=Object.create(null),a=r[t];return r.forEach(function(c,f){if(!(!c||c===a)){var m=Math.abs(t-f),y=r.length-m;l[c]?l[c]=Math.max(y,l[c]):l[c]=y}}),l}var d=i("../range").Range,s=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;u.getCompletions=function(p,e,t,r,l){var a=h(e,t),c=Object.keys(a);l(null,c.map(function(f){return{caption:f,value:f,score:a[f],meta:"local"}}))}}),ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/marker_group","ace/autocomplete/text_completer","ace/editor","ace/config"],function(i,u,v){var o=i("../snippets").snippetManager,h=i("../autocomplete").Autocomplete,d=i("../config"),s=i("../lib/lang"),p=i("../autocomplete/util"),e=i("../marker_group").MarkerGroup,t=i("../autocomplete/text_completer"),r={getCompletions:function(_,T,F,A,$){if(T.$mode.completer)return T.$mode.completer.getCompletions(_,T,F,A,$);var C=_.session.getState(F.row),w=T.$mode.getCompletions(C,T,F,A);w=w.map(function(x){return x.completerId=r.id,x}),$(null,w)},id:"keywordCompleter"},l=function(_){var T={};return _.replace(/\${(\d+)(:(.*?))?}/g,function(F,A,$,C){return T[A]=C||""}).replace(/\$(\d+?)/g,function(F,A){return T[A]})},a={getCompletions:function(_,T,F,A,$){var C=[],w=T.getTokenAt(F.row,F.column);w&&w.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\.xml$/)?C.push("html-tag"):C=o.getActiveScopes(_);var x=o.snippetMap,I=[];C.forEach(function(R){for(var O=x[R]||[],P=O.length;P--;){var B=O[P],V=B.name||B.tabTrigger;V&&I.push({caption:V,snippet:B.content,meta:B.tabTrigger&&!B.name?B.tabTrigger+"⇥ ":"snippet",completerId:a.id})}},this),$(null,I)},getDocTooltip:function(_){_.snippet&&!_.docHTML&&(_.docHTML=["",s.escapeHTML(_.caption),"","
",s.escapeHTML(l(_.snippet))].join(""))},id:"snippetCompleter"},c=[a,t,r];u.setCompleters=function(_){c.length=0,_&&c.push.apply(c,_)},u.addCompleter=function(_){c.push(_)},u.textCompleter=t,u.keyWordCompleter=r,u.snippetCompleter=a;var f={name:"expandSnippet",exec:function(_){return o.expandWithTab(_)},bindKey:"Tab"},m=function(_,T){y(T.session.$mode)},y=function(_){typeof _=="string"&&(_=d.$modes[_]),_&&(o.files||(o.files={}),D(_.$id,_.snippetFileId),_.modes&&_.modes.forEach(y))},D=function(_,T){!T||!_||o.files[_]||(o.files[_]={},d.loadModule(T,function(F){F&&(o.files[_]=F,!F.snippets&&F.snippetText&&(F.snippets=o.parseSnippetFile(F.snippetText)),o.register(F.snippets||[],F.scope),F.includeScopes&&(o.snippetMap[F.scope].includeScopes=F.includeScopes,F.includeScopes.forEach(function(A){y("ace/mode/"+A)})))}))},E=function(_){var T=_.editor,F=T.completer&&T.completer.activated;if(_.command.name==="backspace")F&&!p.getCompletionPrefix(T)&&T.completer.detach();else if(_.command.name==="insertstring"&&!F){b=_;var A=_.editor.$liveAutocompletionDelay;A?g.delay(A):S(_)}},b,g=s.delayedCall(function(){S(b)},0),S=function(_){var T=_.editor,F=p.getCompletionPrefix(T),A=_.args,$=p.triggerAutocomplete(T,A);if(F&&F.length>=T.$liveAutocompletionThreshold||$){var C=h.for(T);C.autoShown=!0,C.showPopup(T)}},M=i("../editor").Editor;i("../config").defineOptions(M.prototype,"editor",{enableBasicAutocompletion:{set:function(_){_?(h.for(this),this.completers||(this.completers=Array.isArray(_)?_:c),this.commands.addCommand(h.startCommand)):this.commands.removeCommand(h.startCommand)},value:!1},enableLiveAutocompletion:{set:function(_){_?(this.completers||(this.completers=Array.isArray(_)?_:c),this.commands.on("afterExec",E)):this.commands.off("afterExec",E)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(_){_?(this.commands.addCommand(f),this.on("changeMode",m),m(null,this)):(this.commands.removeCommand(f),this.off("changeMode",m))},value:!1}}),u.MarkerGroup=e}),function(){ace.require(["ace/ext/language_tools"],function(i){L&&(L.exports=i)})}()})(La);const Ai={jsonError:{border:"1px solid red",minHeight:200},jsonNoError:{border:"1px solid #00000000",minHeight:200}};function Ia(L){return k.createElement(xa,{style:L.error===!0?Ai.jsonError:L.error===!1?Ai.jsonNoError:void 0,mode:L.mode||"json",width:"100%",height:"100%",showPrintMargin:L.editValueMode,showGutter:L.editValueMode,highlightActiveLine:L.editValueMode,defaultValue:L.defaultValue,theme:L.themeType==="dark"?"clouds_midnight":"chrome",value:L.value,readOnly:!L.onChange,onChange:n=>L.onChange(n),name:L.name||"UNIQUE_ID_OF_DIV1",fontSize:L.fontSize||14,setOptions:{enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,enableSnippets:!0,showLineNumbers:L.editValueMode,tabSize:L.editValueMode?2:void 0},editorProps:{$blockScrolling:!0}})}const Rn={flex:{display:"flex"},button:{height:48,minWidth:48},wrapper:{width:"calc(100vw - 40px)",height:"calc(100vh - 188px)"}};class Fa extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"{}";this.setState({value:u,initialized:!0,jsonError:this.validateJson(u)})}validateJson(n){let i=!1;if(this.props.schema.validateJson!==!1&&(n||!this.props.schema.allowEmpty))try{this.props.schema.json5?ji.parse(n):JSON.parse(n)}catch(u){console.log("Error in JSON",u),i=!0}return i}renderItem(n,i){if(!this.state.initialized)return null;const{schema:u,data:v,attr:o}=this.props,{value:h,showSelectId:d}=this.state;return k.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},k.createElement("div",{style:Rn.flex},k.createElement(N.Button,{color:"grey",disabled:i,style:Rn.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},j.I18n.t("ra_JSON editor"))),d?k.createElement(ao,{title:this.getText(u.label),overflowHidden:!0,applyDisabled:this.state.jsonError&&this.props.schema.doNotApplyWithError,onClose:()=>this.setState({showSelectId:!1,value:K.getValue(v,o)||{}}),onApply:()=>this.setState({showSelectId:!1},()=>this.onChange(o,h))},k.createElement("div",{style:{...Rn.wrapper,border:this.state.jsonError?"2px solid red":"2px solid transparent"}},k.createElement(Ia,{mode:this.props.schema.json5?"json5":"json",value:typeof h=="object"?JSON.stringify(h):h,onChange:s=>this.setState({value:s,jsonError:this.validateJson(s)}),name:"ConfigJsonEditor",themeType:this.props.oContext.themeType}))):null,u.help||this.state.jsonError?k.createElement(N.FormHelperText,null,this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ra=[{value:"en",label:"English"},{value:"de",label:"Deutsch"},{value:"ru",label:"русский"},{value:"pt",label:"Portugues"},{value:"nl",label:"Nederlands"},{value:"fr",label:"français"},{value:"it",label:"Italiano"},{value:"es",label:"Espanol"},{value:"pl",label:"Polski"},{value:"uk",label:"Український"},{value:"zh-cn",label:"简体中文"}];class Oa extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=[...Ra];this.props.schema.system?i.unshift({value:"",label:j.I18n.t("ra_System language")}):i.unshift({value:"",label:j.I18n.t("ra_none")}),this.setState({value:this.props.schema.system?n||"":n||j.I18n.getLanguage(),selectOptions:i})}renderItem(n,i){var v,o;if(!this.state.selectOptions)return null;const u=(v=this.state.selectOptions)==null?void 0:v.find(h=>h.value===this.state.value||!h.value&&!this.state.value);return k.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,disabled:i,value:this.state.value||"_",renderValue:()=>this.getText(u==null?void 0:u.label,this.props.schema.noTranslation),onChange:h=>{let{value:d}=h.target;d==="_"&&(d=""),this.setState({value:d},()=>{const s=this.onChange(this.props.attr,d);if(s instanceof Promise&&s.catch(p=>console.error(p)),this.props.schema.changeGuiLanguage)if(d){if(d===j.I18n.getLanguage())return;j.I18n.setLanguage(d),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage()}else this.props.oContext.socket.getSystemConfig().then(p=>{p.common.language!==j.I18n.getLanguage()&&p.common.language&&(j.I18n.setLanguage(p.common.language),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage())}).catch(p=>console.error(`Cannot read system config: ${p}`))})}},(o=this.state.selectOptions)==null?void 0:o.map(h=>k.createElement(N.MenuItem,{key:h.value,value:h.value},h.label))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Na extends K{scrollRef;constructor(n){super(n),this.scrollRef=k.createRef()}scrolledDown(){return this.scrollRef.current?this.scrollRef.current.offsetHeight+this.scrollRef.current.scrollTop>=this.scrollRef.current.scrollHeight:!1}componentDidMount(){super.componentDidMount(),K.getValue(this.props.data,this.props.attr)||(this.props.schema.licenseUrl?(this.setState({showLicenseDialog:!0,loading:!0,scrolledDown:!1}),fetch(this.props.schema.licenseUrl).then(n=>n.text()).then(n=>this.setState({license:n,loading:!1})).catch(n=>this.setState({license:n.toString(),loading:!1,error:!0,scrolledDown:!1}))):this.setState({showLicenseDialog:!0,scrolledDown:!1}),setTimeout(()=>{this.scrollRef.current&&(this.scrolledDown()?this.setState({scrolledDown:!0}):this.scrollRef.current.addEventListener("scroll",()=>{!this.state.scrolledDown&&this.scrolledDown()&&this.setState({scrolledDown:!0})}))},1e3))}renderItem(n,i){return this.state.showLicenseDialog?k.createElement(N.Dialog,{maxWidth:"lg",open:!0,onClose:(u,v)=>{v!=="escapeKeyDown"&&v!=="backdropClick"&&this.setState({showLicenseDialog:!1})}},k.createElement(N.DialogTitle,null,this.props.schema.title?j.I18n.t(this.props.schema.title):j.I18n.t("ra_License agreement")),k.createElement(N.DialogContent,null,this.props.schema.licenseUrl?k.createElement(k.Fragment,null,this.state.loading?k.createElement(N.LinearProgress,null):null,k.createElement("pre",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.state.license)):null,!this.props.schema.licenseUrl&&this.props.schema.texts?k.createElement("div",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.props.schema.texts.map((u,v)=>this.props.schema.noTranslation?k.createElement("p",{key:v},u):k.createElement("p",{key:v},j.I18n.t(u)))):null),k.createElement(N.DialogActions,null,this.props.schema.checkBox?k.createElement(N.FormControlLabel,{control:k.createElement(N.Checkbox,{disabled:i,checked:!!this.state.licenseChecked,onClick:()=>this.setState({licenseChecked:!this.state.licenseChecked})}),label:j.I18n.t(this.props.schema.checkBox)}):null,k.createElement(N.Button,{disabled:i||this.state.loading||this.state.error||this.props.schema.checkBox&&!this.state.licenseChecked||!this.state.scrolledDown,onClick:()=>{this.setState({showLicenseDialog:!1});const u=this.onChange(this.props.attr,!0);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))},color:"primary",variant:"contained",startIcon:k.createElement(Z.Check,null)},this.props.schema.agreeText?j.I18n.t(this.props.schema.agreeText):j.I18n.t("ra_Accept license")),k.createElement(N.Button,{onClick:()=>{this.setState({showLicenseDialog:!1}),setTimeout(()=>this.setState({showLicenseDialog:!0}),2e3)},color:"grey",variant:"contained",startIcon:k.createElement(Z.Close,null)},j.I18n.t("ra_Close")))):null}}const xi={indeterminate:{opacity:.5},control:{flexDirection:"row",width:"100%"}};class Ba extends K{updateTimeout;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(n==null&&(n=""),Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({_value:n,oldValue:n});return}this.setState({_value:n.toString(),oldValue:n.toString()})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const u=K.getValue(n.data,n.attr);return n.oContext.multiEdit&&i._value===K.DIFFERENT_VALUE?{_value:K.DIFFERENT_VALUE}:u==null||i.oldValue===null||i.oldValue===void 0||u.toString()!==parseFloat(i._value).toString()&&u.toString()!==i.oldValue.toString()?{_value:u}:null}checkValue(n){if(n==null)return null;n=n.toString().trim().replace(",",".");const i=n===""?0:parseFloat(n);return n!==""&&Number.isNaN(i)?"ra_Not a number":n!==""&&window.isFinite(i)?this.props.schema.min!==void 0&&ithis.props.schema.max?"ra_Too big":n===""||n==="-"||Number.isNaN(i)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){const u=Array.isArray(this.state._value)||this.state._value===K.DIFFERENT_VALUE;if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0),u){const v=K.getValue(this.props.data,this.props.attr),o=(v==null?void 0:v.filter(h=>h||h===0).map(h=>({label:h.toString(),value:h})))||[];return o.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),k.createElement(N.Autocomplete,{style:xi.indeterminate,fullWidth:!0,freeSolo:!0,value:o[0],getOptionSelected:(h,d)=>h.label===d.label,onChange:(h,d)=>{const s=this.onChange(this.props.attr,d==null?void 0:d.value,()=>{this.setState({_value:d==null?void 0:d.value,oldValue:this.state._value})});s instanceof Promise&&s.catch(p=>console.error(p))},options:o,getOptionLabel:h=>h.label,renderInput:h=>k.createElement(N.TextField,{...h,label:this.getText(this.props.schema.label),variant:"standard",slotProps:{htmlInput:{...h.inputProps,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):void 0}},error:!!n,placeholder:this.getText(this.props.schema.placeholder),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}return!n&&this.state._value!==null&&this.state._value!==void 0&&this.state._value&&(n=this.checkValue(this.state._value),n&&(n=j.I18n.t(n))),k.createElement(N.FormControl,{variant:"standard",style:xi.control},k.createElement(N.TextField,{sx:{"& .up-down":{display:"none"},"&:hover .up-down":{display:"block"}},variant:"standard",type:this.props.schema.min!==void 0&&this.props.schema.min>=0?"number":"text",fullWidth:!0,slotProps:{htmlInput:{min:this.props.schema.min,max:this.props.schema.max,step:this.props.schema.step,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):null}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,onChange:v=>{const o=v.target.value,h=this.checkValue(o);h?this.onError(this.props.attr,j.I18n.t(h)):this.onError(this.props.attr),this.setState({_value:o,oldValue:this.state._value},()=>this.onChange(this.props.attr,parseFloat(o.replace(",","."))))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}))}}class Pa extends K{authWindow;oid;url;constructor(n){super(n),this.state={...this.state,accessTokens:"",success:!1,blocked:!1,running:!1,pressed:!1},this.url=`https://oauth2.iobroker.in/${n.schema.identifier}?redirect=true`,n.schema.scope&&(this.url+=`&scope=${encodeURIComponent(n.schema.scope)}`),this.oid=`${this.props.oContext.adapterName}.${this.props.oContext.instance}.${this.props.schema.saveTokenIn||"oauth2Tokens"}`}async componentDidMount(){super.componentDidMount(),window.addEventListener?window.addEventListener("message",this.onMessage,!1):window.attachEvent("onmessage",this.onMessage,!1),await this.props.oContext.socket.subscribeState(this.oid,this.onTokensUpdated);const n=await this.props.oContext.socket.getState(this.oid);if(n){const i=JSON.parse(n.val);new Date(i.access_token_expires_on).getTime()>Date.now()&&this.setState({accessTokens:n.val})}}onTokensUpdated=(n,i)=>{if(i!=null&&i.val){const u=JSON.parse(i.val);if(new Date(u.access_token_expires_on).getTime()>Date.now()){this.state.accessTokens!==i.val&&this.setState({accessTokens:i.val});return}}this.setState({accessTokens:""})};componentWillUnmount(){super.componentWillUnmount(),window.removeEventListener?window.removeEventListener("message",this.onMessage,!1):window.detachEvent("onmessage",this.onMessage,!1),this.props.oContext.socket.unsubscribeState(this.oid,this.onTokensUpdated)}saveToken(n){try{n&&!n.startsWith("{")&&(n=atob(n));const i=JSON.parse(n);i.access_token&&i.refresh_token&&i.expires_in&&(i.access_token_expires_on||=new Date(Date.now()+i.expires_in*1e3).toISOString(),this.props.oContext.socket.setState(this.oid,JSON.stringify(i),!0).catch(u=>console.log(`Error occurred: ${u.toString()}`)))}catch(i){console.warn(i)}}onMessage=n=>{var i,u,v;if(n.origin==="https://oauth2.iobroker.in"&&(typeof n.data=="string"&&n.data.startsWith(`${this.props.schema.identifier}-authentication:`)||typeof n.message=="string"&&n.message.startsWith(`${this.props.schema.identifier}-authentication:`))){const o=(n.data||n.message).split(":");o[1]==="success"?(this.setState({accessTokens:o[2],success:!0,pressed:!1},()=>this.saveToken(this.state.accessTokens)),(i=this.authWindow)==null||i.postMessage("close",n.origin),this.authWindow=null):(v=(u=this.props).onError)==null||v.call(u,o[2])}};onOpenUrl(){this.authWindow=window.open(this.url,this.props.schema.identifier),!this.authWindow||this.authWindow.closed||typeof this.authWindow.closed>"u"?this.setState({blocked:!0}):this.setState({pressed:!0})}renderItem(){let n="";if(this.state.accessTokens)try{const v=JSON.parse(this.state.accessTokens);n=new Date(v.access_token_expires_on).toLocaleString()}catch{}let i;this.state.accessTokens?i=this.props.schema.refreshLabel?this.getText(this.props.schema.refreshLabel):j.I18n.t("ra_Renew %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1)):i=this.props.schema.label?this.getText(this.props.schema.label):j.I18n.t("ra_Get %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1));const u=this.getIcon();return k.createElement("div",{style:{width:"100%",margin:"0 0 1rem 0"}},k.createElement(N.Button,{disabled:this.state.running,endIcon:u||k.createElement(Z.CloudUpload,null),variant:"contained",onClick:()=>this.onOpenUrl()},i),this.state.blocked?k.createElement("div",{style:{color:"red",fontSize:16,marginTop:20}},j.I18n.t("ra_Please allow popups in your browser for this page!")):null,this.state.accessTokens?k.createElement("div",{style:{color:"green",fontSize:16,marginTop:20}},this.props.alive?j.I18n.t("ra_Successfully authorized. Token valid till %s and will be automatically renewed.",n):j.I18n.t("ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.",n)):null,this.state.pressed?k.createElement(k.Fragment,null,k.createElement("div",{style:{width:"100%",margin:"1rem 0 1rem 0"}},k.createElement("span",{style:{marginRight:4}},`${j.I18n.t("ra_If the button above does not work, you can authorize manually this app by visiting this url")}`,":"),k.createElement("br",null),k.createElement("a",{target:this.props.schema.identifier,href:this.url,rel:"noreferrer"},this.url)),k.createElement(N.TextField,{value:this.state.accessTokens,label:j.I18n.t("ra_Enter the code from that page here"),variant:"standard",onChange:v=>{let o=v.target.value;o&&!o.startsWith("{")&&(o=atob(o));try{const h=JSON.parse(o);h.access_token&&(h.access_token_expires_on=new Date(Date.now()+(h.expires_in-10)*1e3).toISOString(),this.setState({accessTokens:JSON.stringify(h)},()=>this.saveToken(this.state.accessTokens)))}catch{}},fullWidth:!0})):null)}}const $i={flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Wa extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"";this.setState({value:u,initialized:!0})}renderItem(n,i){if(!this.state.initialized)return null;const u=this.props.oContext.socket,{schema:v,attr:o}=this.props,{value:h,showSelectId:d}=this.state;return k.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},v.label?k.createElement(N.InputLabel,{shrink:!0},this.getText(v.label)):null,k.createElement("div",{style:$i.flex},k.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:h,error:!!n,disabled:i,placeholder:this.getText(v.placeholder),label:this.getText(v.label),helperText:this.renderHelp(v.help,v.helpLink,v.noTranslation),onChange:s=>{const p=s.target.value;this.setState({value:p},()=>this.onChange(o,p))}}),k.createElement(N.Button,{color:"grey",disabled:i,style:$i.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},"...")),d?k.createElement(j.DialogSelectID,{imagePrefix:this.props.oContext.imagePrefix===void 0?"../..":this.props.oContext.imagePrefix,dialogName:`admin.${this.props.oContext.adapterName}`,filterFunc:v.filterFunc,themeType:this.props.oContext.themeType,theme:this.props.oContext.theme,types:v.types?Array.isArray(v.types)?v.types:[v.types]:void 0,customFilter:v.customFilter,filters:v.filters,socket:u,selected:h,root:v.root,onClose:()=>this.setState({showSelectId:!1}),onOk:s=>this.setState({showSelectId:!1,value:s},()=>this.onChange(o,s))}):null)}}const On={fullWidth:{width:"100%",display:"inline-block"},halfWidth1:{width:"calc(50% - 5px)",display:"inline-block",marginRight:8},halfWidth2:{width:"calc(50% - 5px)",display:"inline-block"}},an="____ppp____";class Ha extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_repeat:n?an:"",_visible:!1,value:n?an:"",_notEqual:!1})}onChangePassword(n,i){n===void 0&&(n=this.state.value),i===void 0&&(i=this.state._repeat);const u=!!this.props.schema.repeat&&i!==n;this.setState({value:n,_repeat:i,_notEqual:u},()=>{if(u)this.onError(this.props.attr,j.I18n.t("ra_Passwords are not equal!"));else{this.onError(this.props.attr);const v=this.onChange(this.props.attr,n);v instanceof Promise&&v.catch(o=>this.onError(this.props.attr,o))}})}renderItem(n,i){if(this.state._notEqual===void 0)return null;const u=k.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state.value!==an?"text":"password",value:this.state.value,error:!!n||this.state._notEqual,disabled:!!i,onChange:v=>this.onChangePassword(v.target.value),label:this.getText(this.props.schema.label),slotProps:{input:{autoComplete:"new-password",endAdornment:this.state.value&&this.state.value!==an&&this.props.schema.visible&&!i&&!this.props.schema.readOnly?k.createElement(N.InputAdornment,{position:"end"},k.createElement(N.IconButton,{size:"large",tabIndex:-1,onClick:v=>{v.preventDefault(),v.stopPropagation(),this.setState({_visible:!this.state._visible})},edge:"end"},this.state._visible?k.createElement(Z.VisibilityOff,null):k.createElement(Z.Visibility,null))):void 0},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});if(this.props.schema.repeat&&!this.props.schema.readOnly){const v=this.state._visible?null:k.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:"password",value:this.state._repeat,error:!!n||this.state._notEqual,disabled:!!i,onChange:o=>this.onChangePassword(void 0,o.target.value),label:`${this.getText(this.props.schema.label)} (${j.I18n.t("ra_repeat")})`,slotProps:{input:{autoComplete:"new-password"},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});return k.createElement("div",{style:On.fullWidth},k.createElement("div",{style:On.halfWidth1},u),k.createElement("div",{style:On.halfWidth2},v))}return u}}class za extends K{renderItem(n,i){return k.createElement(N.TextField,{variant:"standard",fullWidth:!0,disabled:!!i,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?k.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.getPattern(this.props.schema.pattern,null,this.props.schema.noTranslation)),window.alert(j.I18n.t("ra_Copied"))}},k.createElement(j.IconCopy,null)):void 0}},value:this.getPattern(this.props.schema.pattern,null,!0),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const ja={warning:{"& .Mui-error":{color:"orange"}}};class Va extends K{updateTimeout;async componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);n==null&&(n=""),this.setState({_value:n.toString(),oldValue:n.toString()});const i=await this.props.oContext.socket.getAdapterInstances(),u=`system.adapter.${this.props.oContext.adapterName}.${this.props.oContext.instance}`,v=await this.props.oContext.socket.getObject(u),o=v==null?void 0:v.common.host,h=[];i.forEach(d=>{var p,e,t,r;if(!d||d._id===u||d.common.host!==o||!((p=d.native)!=null&&p.bind))return;if(d!=null&&d.native&&d.native.secure&&d.native.leEnabled&&d.native.leUpdate){const l=parseInt(d.native.leCheckPort||d.native.lePort,10);l&&h.push({name:`${d._id.replace("system.adapter.","")} (LE)`,port:l,v6bind:d.native.bind.includes(":")?d.native.bind:d.native.v6bind,bind:d.native.bind,enabled:!!((e=d.common)!=null&&e.enabled)})}const s=parseInt((t=d==null?void 0:d.native)==null?void 0:t.port,10);s&&h.push({name:d._id.replace("system.adapter.",""),bind:d.native.bind,v6bind:d.native.bind.includes(":")?d.native.bind:d.native.v6bind,port:s,enabled:!!((r=d.common)!=null&&r.enabled)})}),this.setState({ports:h})}static getDerivedStateFromProps(n,i){const u=K.getValue(n.data,n.attr);return u==null||i.oldValue===null||i.oldValue===void 0||u.toString()!==parseInt(i._value,10).toString()&&u.toString()!==i.oldValue.toString()?{_value:u}:null}checkValue(n){if(n==null)return null;const i=this.props.schema.min===void 0?20:this.props.schema.min,u=this.props.schema.max||65535;n=n.toString().trim();const v=n===""?0:parseInt(n,10);return n!==""&&Number.isNaN(v)?"ra_Not a number":n!==""&&window.isFinite(Number(n))?vu?"ra_Too big":n===""||n==="-"||Number.isNaN(v)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0);const u=this.props.schema.min===void 0?20:this.props.schema.min,v=this.props.schema.max||65535;let o;if(this.state.ports){const h=parseInt(this.state._value,10);if(h){const d=this.state.ports.filter(p=>!this.props.data.bind||this.props.data.bind===p.bind||this.props.data.bind==="0.0.0.0"||p.bind==="0.0.0.0");let s=d.findIndex(p=>p.port===h&&p.enabled);s!==-1?n=j.I18n.t("ra_Port is already used by %s",this.state.ports[s].name):(s=d.findIndex(p=>p.port===h&&!p.enabled),s!==-1&&(o=!0,n=j.I18n.t("ra_Port could be used by %s",this.state.ports[s].name)))}}return!n&&this.state._value!==null&&this.state._value!==void 0&&(n=this.checkValue(this.state._value),typeof n=="string"&&(n=j.I18n.t(n))),k.createElement(N.TextField,{variant:"standard",type:"number",fullWidth:!0,slotProps:{htmlInput:{min:u,max:v,readOnly:this.props.schema.readOnly||!1}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,sx:o?ja.warning:void 0,onChange:h=>{const d=Number(h.target.value.toString().replace(/[^0-9]/g,"")).toString(),s=this.checkValue(d);s?this.onError(this.props.attr,j.I18n.t(s)):this.onError(this.props.attr),this.setState({_value:d,oldValue:this.state._value},()=>{if(d.trim()===parseInt(d,10).toString()){const p=this.onChange(this.props.attr,parseInt(d,10)||0);p instanceof Promise&&p.catch(e=>{console.error(`Cannot set value for ${this.props.attr}: ${e}`)})}})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}class Ua extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("rooms").then(i=>{const u=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.rooms.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})}).catch(i=>console.error(`Cannot get enums: ${i}`))}renderItem(n,i){if(!this.state.selectOptions)return null;const u=this.state.selectOptions.find(v=>v.value===this.state.value);return k.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>u?u.obj?k.createElement(j.TextWithIcon,{value:u.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):u.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>k.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?k.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ga={noMargin:{"&>div":{marginTop:0}}};class Ka extends K{initialValue="";componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[]));const i=[];(this.props.schema.options||[]).forEach(u=>{const v=u;Array.isArray(v.items)?(i.push({label:this.getText(u.label,this.props.schema.noTranslation),value:u.value,group:!0}),v.items.forEach(o=>i.push({label:this.getText(o.label,this.props.schema.noTranslation),value:o.value,hidden:o.hidden}))):i.push({label:this.getText(u.label,this.props.schema.noTranslation),value:u.value,hidden:u.hidden})}),Array.isArray(n)&&!this.props.schema.multiple?(this.initialValue=[...n],i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){if(!this.state.selectOptions)return null;const u=(this.state.selectOptions||[]).filter(h=>h.hidden?this.props.custom?!this.executeCustom(h.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(h.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),v=this._getValue(),o=this.props.schema.multiple?null:u.find(h=>h.value==v);return k.createElement(N.FormControl,{variant:"standard",fullWidth:!0,sx:this.props.table!==void 0&&Ga.noMargin,id:`jsonSelect_${this.props.attr}_${this.props.index||this.props.index===0?this.props.index:""}`},this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,value:v||"_",renderValue:h=>this.props.schema.multiple?k.createElement(N.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},h.map(d=>{const s=u.find(p=>p.value===d);if(s||this.props.schema.showAllValues!==!1){const p=(s==null?void 0:s.label)||d;return k.createElement(N.Chip,{key:d,label:p})}return null})):(o==null?void 0:o.label)===void 0?h:o.label,onChange:h=>{this.setState({value:h.target.value==="_"?"":h.target.value},()=>{let d;this.state.value===K.DIFFERENT_VALUE?d=this.onChange(this.props.attr,this.initialValue):d=this.onChange(this.props.attr,this.state.value),d instanceof Promise&&d.catch(s=>console.error(s))})}},u.map((h,d)=>h.group?k.createElement(N.ListSubheader,{key:d},h.label):k.createElement(N.MenuItem,{key:d,value:h.value,style:h.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},this.props.schema.multiple?k.createElement(N.Checkbox,{checked:v.includes(h.value),onClick:()=>{const s=JSON.parse(JSON.stringify(this._getValue())),p=v.indexOf(h.value);p!==-1?s.splice(p,1):(s.push(h.value),s.sort()),this.setState({value:s},()=>this.onChange(this.props.attr,s))}}):null,k.createElement(N.ListItemText,{primary:h.label})))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ja={menuPaper:{maxHeight:800}};class Ya extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.setState({running:!0},()=>{this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({list:i,running:!1})).catch(i=>{console.error(`Cannot send command: ${i}`)})})}else{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n,running:!1})}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){var h;if(this.props.alive){const d=this.getContext();(d!==this.localContext||!this.initialized)&&(this.localContext=d,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}const u=this._getValue();if(!this.props.alive||!this.state.running&&!((h=this.state.list)!=null&&h.length))return this.props.schema.multiple||this.props.schema.manual===!1?j.I18n.t("ra_Cannot retrieve options, as instance is offline"):k.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:u,error:!!n,disabled:!!i,onChange:d=>{const s=d.target.value;this.setState({value:s},()=>this.onChange(this.props.attr,(s||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),slotProps:{input:{endAdornment:this.state.value&&!this.props.schema.noClearButton?k.createElement(N.InputAdornment,{position:"end"},k.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({value:""},()=>this.onChange(this.props.attr,""))},k.createElement(Z.Close,null))):null}}});if(this.state.running)return k.createElement(N.CircularProgress,{size:"24"});const v=this.state.list.filter(d=>d.hidden?this.props.custom?!this.executeCustom(d.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(d.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),o=v.find(d=>d.value===u);return k.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,k.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,sx:{"&.MuiSelect-paper":this.props.schema.multiple?Ja.menuPaper:void 0},value:u,renderValue:d=>this.props.schema.multiple?k.createElement(N.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},d.map(s=>{const p=v.find(e=>e.value===s);if(p||this.props.schema.showAllValues!==!1){const e=(p==null?void 0:p.label)||s;return k.createElement(N.Chip,{key:s,label:e})}return null})):this.getText((o==null?void 0:o.label)||d,this.props.schema.noTranslation),onChange:d=>{const s=this.onChange(this.props.attr,d.target.value);s instanceof Promise&&s.catch(p=>console.error(`Cannot set value: ${p}`))}},v.map((d,s)=>d.group?k.createElement(N.ListSubheader,{key:s},this.getText(d.label,this.props.schema.noTranslation)):k.createElement(N.MenuItem,{key:s,value:d.value},this.props.schema.multiple?k.createElement(N.Checkbox,{checked:u.includes(d.value),onClick:()=>{const p=JSON.parse(JSON.stringify(this._getValue())),e=u.indexOf(d.value);e!==-1?p.splice(e,1):(p.push(d.value),p.sort()),this.setState({value:p},()=>this.onChange(this.props.attr,p))}}):null,k.createElement(N.ListItemText,{primary:d.label})))),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ti={fullWidth:{width:"100%"}};function ut(L){return L.split(".").reduce((n,i)=>(n<<8)+parseInt(i,10),0)>>>0}function Qa(L,n){var v,o;const i=(o=(v=L==null?void 0:L.native)==null?void 0:v.hardware)==null?void 0:o.networkInterfaces;if(!i)return null;let u;return Object.keys(i).forEach(h=>i[h].forEach(d=>{d.internal||n.includes(":")&&d.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&d.family!=="IPv4"||(d.family==="IPv4"&&!d.address.startsWith("172")&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?u=d.address:u||(d.family==="IPv4"&&n.includes(".")&&(ut(n)&ut(d.netmask),ut(d.address)&ut(d.netmask)),u=d.address))})),u||Object.keys(i).forEach(h=>i[h].forEach(d=>{d.internal||n.includes(":")&&d.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&d.family!=="IPv4"||(d.family==="IPv6"&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?u=d.address:u||(d.family==="IPv4"&&n.includes(".")&&(ut(n)&ut(d.netmask),ut(d.address)&ut(d.netmask)),u=d.address))})),u||Object.keys(i).forEach(h=>{i[h].forEach(d=>{d.internal||n.includes(":")&&d.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&d.family!=="IPv4"||(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/),u=d.address)})}),u||Object.keys(i).forEach(h=>{i[h].forEach(d=>{d.internal||(u=d.address)})}),u}class _i extends K{async componentDidMount(){var i;super.componentDidMount();let n=window.location.hostname;if(this.props.schema.openUrl){const u=await this.props.oContext.socket.getCurrentInstance(),v=await this.props.oContext.socket.getObject(`system.adapter.${u}`);if(v){const o=await this.props.oContext.socket.getObject(`system.host.${(i=v==null?void 0:v.common)==null?void 0:i.host}`);if(o){const h=Qa(o,window.location.hostname);if(h)n=`${h}:${window.location.port}`;else{console.warn(`Cannot find suitable IP in host ${v.common.host} for ${v._id}`);return}}}}await new Promise(u=>{this.setState({_error:"",_message:"",hostname:n},u)}),this.props.schema.onLoaded&&this._onClick()}renderErrorDialog(){return this.state._error?k.createElement(j.DialogError,{text:this.state._error,onClose:()=>this.setState({_error:""})}):null}renderMessageDialog(){return this.state._message?k.createElement(j.DialogMessage,{text:this.state._message,onClose:()=>this.setState({_message:""})}):null}_onClick(){this.props.oContext.onCommandRunning(!0),this.setState({running:!0});const n=`${window.location.protocol}//${window.location.host}${window.location.pathname.replace(/\/index\.html$/,"")}`,i=`${window.location.protocol}//${this.state.hostname.split(":").length>3?`[${this.state.hostname}]`:this.state.hostname}${window.location.pathname.replace(/\/index\.html$/,"")}`;let u=this.props.schema.data;if(u===void 0&&this.props.schema.jsonData){const o=this.getPattern(this.props.schema.jsonData,{_origin:n,_originIp:i,...this.props.data},!0);try{u=JSON.parse(o)}catch{console.error(`Cannot parse json data: ${o}`)}}u===void 0&&(u=null),this.props.schema.openUrl&&!u&&(u={_origin:n,_originIp:i});let v;this.props.schema.timeout&&(v=setTimeout(()=>{this.props.oContext.onCommandRunning(!1),this.setState({_error:j.I18n.t("ra_Request timed out"),running:!1})},parseInt(this.props.schema.timeout,10)||1e4)),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",u).then(async o=>{if(v&&(clearTimeout(v),v=void 0),o!=null&&o.error)if(this.props.schema.error&&this.props.schema.error[o.error]){let h=this.getText(this.props.schema.error[o.error]);o.args&&o.args.forEach(d=>h=h.replace("%s",d)),this.setState({_error:h})}else this.setState({_error:o.error?j.I18n.t(o.error):j.I18n.t("ra_Error")});else{if(o!=null&&o.command){this.props.oContext.onBackEndCommand&&this.props.oContext.onBackEndCommand(o.command);return}if(o!=null&&o.reloadBrowser&&this.props.schema.reloadBrowser)window.location.reload();else if(o!=null&&o.openUrl&&this.props.schema.openUrl)window.open(o.openUrl,o.window||this.props.schema.window||"_blank");else if(o!=null&&o.result&&this.props.schema.result&&this.props.schema.result[o.result]){let h=this.getText(this.props.schema.result[o.result]);o.args&&o.args.forEach(d=>h=h.replace("%s",d)),window.alert(h)}if(o!=null&&o.native&&this.props.schema.useNative){for(const[h,d]of Object.entries(o.native))await this.onChangeAsync(h,d);setTimeout(()=>this.props.oContext.forceUpdate(Object.keys(o.native),this.props.data),300)}else o!=null&&o.result?window.alert(typeof o.result=="object"?JSON.stringify(o.result):o.result):window.alert(j.I18n.t("ra_Ok"));o!=null&&o.saveConfig&&this.props.onChange(null,null,null,!0)}}).catch(o=>{this.props.schema.error&&this.props.schema.error[o.toString()]?this.setState({_error:this.getText(this.props.schema.error[o.toString()])}):this.setState({_error:j.I18n.t(o.toString())||j.I18n.t("ra_Error")})}).then(()=>{this.props.oContext.onCommandRunning(!1),this.setState({running:!1})})}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=k.createElement(Z.Warning,null):n.type==="error"?i=k.createElement(Z.Error,null):n.type==="info"&&(i=k.createElement(Z.Info,null)),k.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:u=>this.setState({confirmDialog:!1},()=>u&&this._onClick())})}renderItem(n,i){const u=this.getIcon();return k.createElement("div",{style:Ti.fullWidth},k.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ti.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i||!this.props.alive,startIcon:u,title:this.props.alive?this.getText(this.props.schema.title)||"":j.I18n.t("ra_Instance is not alive"),onClick:()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):this._onClick()}},this.props.schema.showProcess&&this.state.running?k.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation)),this.renderErrorDialog(),this.renderMessageDialog())}}const Xa={fullWidth:{width:"100%"}};class Za extends K{async _onClick(){var u,v;let n=this.props.schema.val;if(typeof n=="string"&&n.includes("${")){n=this.getPattern(n,null,!0);const o=await this.props.oContext.socket.getObject(this.props.schema.id);((u=o==null?void 0:o.common)==null?void 0:u.type)==="number"?n=parseFloat(n):((v=o==null?void 0:o.common)==null?void 0:v.type)==="boolean"&&(n=n==="true"||n===!0||n==="1"||n===1)}const i=(this.props.schema.id||"").replace(/%INSTANCE%/g,(this.props.oContext.instance||0).toString());try{await this.props.oContext.socket.setState(i,{val:n,ack:!!this.props.schema.ack}),this.props.schema.okText&&window.alert(this.getText(this.props.schema.okText))}catch(o){this.props.schema.error&&this.props.schema.error[o.toString()]?window.alert(this.getText(this.props.schema.error[o.toString()])):window.alert(j.I18n.t(o.toString())||j.I18n.t("ra_Error"))}}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=k.createElement(Z.Warning,null):n.type==="error"?i=k.createElement(Z.Error,null):n.type==="info"&&(i=k.createElement(Z.Info,null)),k.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i,onClose:u=>this.setState({confirmDialog:!1},()=>u&&this._onClick())})}renderItem(n,i){const u=this.getIcon();return k.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:Xa.fullWidth,disabled:i,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):await this._onClick()},startIcon:u||void 0},this.getText(this.props.schema.label,this.props.schema.noTranslation))}}const ki={fullWidth:{width:"100%"},slider:{marginLeft:10,marginRight:10,width:"calc(100% - 20px)"}};class qa extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_value:n})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const u=K.getValue(n.data,n.attr);return u==null||u.toString()!==parseFloat(i._value).toString()?{_value:u}:null}renderItem(n,i){const u=this.props.schema.min||0,v=this.props.schema.max||100,o=this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):"",h=[{value:u,label:u+o},{value:v,label:v+o}];return k.createElement(N.Box,{style:ki.fullWidth},this.props.schema.label?k.createElement(N.Typography,{gutterBottom:!0},this.getText(this.props.schema.label)):null,k.createElement(N.Slider,{style:ki.slider,value:this.state._value,getAriaValueText:d=>d+o,step:this.props.schema.step||(v-u)/100,valueLabelDisplay:"auto",marks:h,min:u,max:v,disabled:!!i,onChange:d=>{const s=d.target.value;this.setState({_value:s},()=>this.onChange(this.props.attr,s))}}),this.props.schema.help?k.createElement(N.Typography,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}function ht(L,n){return L==="edit"||L==="rename"?k.createElement(Z.Edit,{style:n}):L==="delete"?k.createElement(Z.Delete,{style:n}):L==="refresh"?k.createElement(Z.Refresh,{style:n}):L==="newDevice"||L==="new"||L==="add"?k.createElement(Z.Add,{style:n}):L==="discover"||L==="search"?k.createElement(Z.Search,{style:n}):L==="unpairDevice"||L==="unpair"?k.createElement(Z.LinkOff,{style:n}):L==="pairDevice"||L==="pair"?k.createElement(Z.Link,{style:n}):L==="identify"?k.createElement(Z.NotListedLocation,{style:n}):L==="play"?k.createElement(Z.PlayArrow,{style:n}):L==="stop"?k.createElement(Z.Stop,{style:n}):L==="pause"?k.createElement(Z.Pause,{style:n}):L==="forward"||L==="next"?k.createElement(Z.FastForward,{style:n}):L==="rewind"||L==="previous"?k.createElement(Z.FastRewind,{style:n}):L==="lamp"||L==="light"?k.createElement(Z.Lightbulb,{style:n}):L==="backlight"?k.createElement(Z.Fluorescent,{style:n}):L==="dimmer"?k.createElement(Z.WbIncandescent,{style:n}):L==="socket"?k.createElement(Z.Power,{style:n}):L==="settings"?k.createElement(Z.Settings,{style:n}):L==="users"||L==="group"?k.createElement(Z.Group,{style:n}):L==="user"?k.createElement(Z.Person,{style:n}):L==="qrcode"?k.createElement(Z.QrCode,{style:n}):L==="connection"?k.createElement(Z.Wifi,{style:n}):L==="no-connection"?k.createElement(Z.WifiOff,{style:n}):L==="visible"?k.createElement(Z.Visibility,{style:n}):null}function el(L,n){return typeof n=="string"?{"@keyframes newStateAnimationOnceColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnceColor 2s ease-in-out"}:{"@keyframes newStateAnimationOnce":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnce 2s ease-in-out"}}class tl extends K{controlTimeout=null;delayedUpdate={timer:null,value:null};getObjectID(){let n=this.props.schema.oid;return n.includes("${")&&(n=this.getPattern(n,null,!0)),this.props.schema.foreign?n:`${this.props.schema.system?"system.adapter.":""}${this.props.oContext.adapterName}.${this.props.oContext.instance||0}.${n}`}async componentDidMount(){super.componentDidMount();const n=await this.props.oContext.socket.getObject(this.getObjectID()),i=this.props.schema.control||this.detectType(n);try{const u=await this.props.oContext.socket.getState(this.getObjectID());this.setState({stateValue:u?u.val:null,controlType:i,obj:n},async()=>{await this.props.oContext.socket.subscribeState(this.getObjectID(),this.onStateChanged)})}catch(u){console.error(`Cannot get state ${this.getObjectID()}: ${u}`),this.setState({controlType:i,obj:n})}}componentWillUnmount(){super.componentWillUnmount(),this.props.oContext.socket.unsubscribeState(this.getObjectID(),this.onStateChanged),this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.controlTimeout&&(clearTimeout(this.controlTimeout),this.controlTimeout=null,this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1).catch(n=>console.error(`Cannot control value: ${n.toString()}`)))}onStateChanged=(n,i)=>{let u=i?i.val:null;this.state.controlType==="button"||this.state.controlType==="switch"?(u=!!u,this.state.stateValue!==u&&this.setState({stateValue:u})):u!==null&&(this.state.controlType==="slider"||this.state.controlType==="number")?(u=parseFloat(u),console.log(`${Date.now()} Received new value: ${u}`),u!==this.state.stateValue?(this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.delayedUpdate.value=u,this.delayedUpdate.timer=setTimeout(()=>{this.setState({stateValue:this.delayedUpdate.value})},500)):this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null)):this.state.stateValue.toString()!==u.toString()&&this.setState({stateValue:u})};detectType(n){if(n=n||{},n.common=n.common||{},n.common.type==="boolean"){if(this.props.schema.controlled!==!1){if(n.common.read===!1||this.props.schema.controlled===!0)return"button";if(n.common.write||this.props.schema.controlled===!0)return"switch"}return"text"}return n.common.type==="number"&&this.props.schema.controlled!==!1?n.common.write||this.props.schema.controlled===!0?n.common.max!==void 0?"slider":"input":"text":n.common.write&&this.props.schema.controlled!==!1?"input":"text"}renderItem(n,i){var v,o,h,d,s;if(!this.state.obj)return null;let u;if(this.state.controlType==="button"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read===!1||(v=this.state.obj.common.role)!=null&&v.includes("button"))){let p=null;this.props.schema.falseImage&&(p=ht(this.props.schema.falseImage));const e=this.getText(this.props.schema.falseText||this.props.schema.label,this.props.schema.noTranslation);!e&&p?u=k.createElement(N.IconButton,{style:this.props.schema.falseTextStyle,disabled:!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},p):u=k.createElement(N.Button,{variant:this.props.schema.variant||"contained",startIcon:p,style:this.props.schema.falseTextStyle,disabled:i||!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},e||this.getObjectID().split(".").pop())}else if(this.state.controlType==="input"||!this.state.controlType&&this.state.obj.common.write&&this.state.obj.common.type==="string")u=k.createElement("div",{style:{width:"100%",display:"flex",flexDirection:"row",gap:8,alignItems:"baseline"}},k.createElement(N.TextField,{style:{flex:1},value:this.state.stateValue,variant:"standard",slotProps:{input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0},htmlInput:{readOnly:!!this.props.schema.readOnly}},onKeyUp:p=>{this.props.schema.setOnEnterKey&&p.key==="Enter"&&this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},onChange:p=>{this.setState({stateValue:p.target.value},()=>{this.props.schema.setOnEnterKey||this.props.schema.showEnterButton||(this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null,await this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},this.props.schema.controlDelay||0))})},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),this.props.schema.showEnterButton&&k.createElement(N.Button,{variant:"outlined",onClick:()=>{this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)}},this.getText(typeof this.props.schema.showEnterButton=="string"?this.props.schema.showEnterButton:"Set")));else{let p;this.props.schema.size==="normal"?p=16:this.props.schema.size==="large"?p=20:typeof this.props.schema.size=="number"&&(p=this.props.schema.size);let e=this.getText(this.props.schema.label,this.props.schema.noTranslation);const t={display:"flex",alignItems:"center",fontSize:p||"1rem",gap:8};this.props.schema.narrow||(t.width="100%",t.justifyContent="space-between"),e.trim()&&!e.trim().endsWith(":")&&this.props.schema.addColon&&(e=`${e.trim()}:`);let r;this.props.schema.blinkOnUpdate&&(r=el(this.props.oContext.theme,this.props.schema.blinkOnUpdate));let l;this.props.schema.labelIcon&&(l=k.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let a;if(e&&l?a=k.createElement("div",{style:{whiteSpace:"nowrap"}},l,e):e?a=k.createElement("div",{style:{whiteSpace:"nowrap"}},e):l&&(a=l),this.state.controlType==="switch"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read!==!1||(o=this.state.obj.common.role)!=null&&o.includes("switch"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ht(this.props.schema.trueImage,y?{marginRight:8}:void 0)),u=k.createElement(N.Switch,{checked:!!this.state.stateValue,disabled:!!this.props.schema.readOnly,onChange:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async D=>{D&&await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}),(f||c||y||m)&&(u=k.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:14}},k.createElement("span",{style:this.props.schema.falseTextStyle},f,c),u,k.createElement("span",{style:this.props.schema.trueTextStyle},m,y))),a&&(u=k.createElement("div",{style:t},a,u))}else if(this.state.controlType==="slider"||!this.state.controlType&&this.state.obj.common.type==="number"&&(this.state.obj.common.write&&(this.state.obj.common.max!==void 0||this.state.obj.common.unit==="%")||(h=this.state.obj.common.role)!=null&&h.includes("slider")||(d=this.state.obj.common.role)!=null&&d.includes("dimmer")||(s=this.state.obj.common.role)!=null&&s.includes("blind"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ht(this.props.schema.trueImage,y?{marginRight:8}:void 0));const D=this.props.schema.min===void 0?this.state.obj.common.min||0:this.props.schema.min,E=this.props.schema.max===void 0?this.state.obj.common.max===void 0?100:this.state.obj.common.max:this.props.schema.max,b=this.props.schema.step===void 0?this.state.obj.common.step||1:this.props.schema.step;u=k.createElement(N.Slider,{style:{width:"100%",flexGrow:1},min:D,max:E,disabled:!!this.props.schema.readOnly,step:b,value:this.state.stateValue,valueLabelDisplay:"auto",valueLabelFormat:g=>`${g}${this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||""}`,onChange:(g,S)=>{this.setState({stateValue:S},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{console.log(`${Date.now()} Send new value: ${this.state.stateValue}`),this.controlTimeout=null,await this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},this.props.schema.controlDelay||0)})}}),(f||c||y||m)&&(u=k.createElement("div",{style:{display:"flex",width:"100%",flexGrow:1,alignItems:"center"}},k.createElement("span",{style:{marginRight:16,...this.props.schema.falseTextStyle}},f,c),u,k.createElement("span",{style:{marginLeft:16,...this.props.schema.trueTextStyle}},m,y))),a&&(u=k.createElement("div",{style:t},a,u))}else if(this.state.obj.common.type==="number"&&this.state.obj.common.write){const c=this.props.schema.min===void 0?this.state.obj.common.min===void 0?void 0:this.state.obj.common.min:this.props.schema.min,f=this.props.schema.max===void 0?this.state.obj.common.max===void 0?void 0:this.state.obj.common.max:this.props.schema.max,m=this.props.schema.step===void 0?this.state.obj.common.step===void 0?void 0:this.state.obj.common.step:this.props.schema.step;u=k.createElement(N.TextField,{variant:"standard",style:{width:"100%"},value:this.state.stateValue,type:"number",slotProps:{htmlInput:{min:c,max:f,step:m,readOnly:!!this.props.schema.readOnly},input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0}},onChange:y=>{this.setState({stateValue:y.target.value},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null;const D=parseFloat(this.state.stateValue);await this.props.oContext.socket.setState(this.getObjectID(),D,!1)},this.props.schema.controlDelay||0)})},label:this.getText(this.props.schema.label,this.props.schema.noTranslation),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}else if(this.state.obj.common.type==="boolean"){let c=null,f,m;this.state.stateValue?(f=this.getText(this.props.schema.trueText,this.props.schema.noTranslation),this.props.schema.trueImage&&(c=ht(this.props.schema.falseImage,f?{marginRight:8}:void 0)),m=this.props.schema.trueTextStyle):(f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation),this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0)),m=this.props.schema.falseTextStyle),m=Object.assign(t,m),u=k.createElement("div",{style:m},a,k.createElement(N.Box,{style:{display:"flex",alignItems:"center",gap:8},sx:r,key:this.props.schema.blinkOnUpdate?f:void 0},c,f||(this.state.stateValue?j.I18n.t("ra_true"):j.I18n.t("ra_false"))))}else{const c=this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit;let f,m;this.state.controlType==="html"?(m=(this.state.stateValue||"").toString(),f=k.createElement("span",{dangerouslySetInnerHTML:{__html:this.state.stateValue}})):this.state.stateValue===null?(f="null",m=f):this.state.stateValue===void 0?(f="undefined",m=f):(f=this.state.stateValue.toString(),m=f),u=k.createElement("div",{style:t},a,k.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:4}},k.createElement(N.Box,{sx:r,key:this.props.schema.blinkOnUpdate?m:void 0},f),c?k.createElement("span",{style:{opacity:.7,fontSize:"smaller"}},c):null))}}return u}}const Nn={fullWidth:L=>({width:"100%",backgroundColor:L.palette.mode==="dark"?"#FFF":"#000",borderStyle:"hidden"}),primary:L=>({backgroundColor:L.palette.primary.main}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class nl extends K{renderItem(){return k.createElement(N.Box,{component:"hr",sx:j.Utils.getStyle(this.props.oContext.theme,Nn.fullWidth,this.props.schema.color==="primary"?Nn.primary:this.props.schema.color==="secondary"?Nn.secondary:{backgroundColor:this.props.schema.color||(this.props.oContext.themeType==="dark"?"#333":"#ddd")},{height:this.props.schema.color?this.props.schema.height||2:this.props.schema.height||1})})}}const il={header:L=>({width:"100%",background:L.palette.primary.main,color:L.palette.primary.contrastText,padding:"4px !important",borderRadius:"3px",marginBlockEnd:0,marginBlockStart:0})};class rl extends K{renderItem(){let n="h5";switch((this.props.schema.size||5).toString()){case"1":n="h1";break;case"2":n="h2";break;case"3":n="h3";break;case"4":n="h4";break;case"5":default:n="h5";break}return k.createElement(N.Box,{component:n,sx:il.header},this.getText(this.props.schema.label||this.props.schema.text,this.props.schema.noTranslation))}}class sl extends K{renderItem(){let n=this.props.schema.src;return n&&!n.startsWith(".")&&!n.startsWith("http")&&!n.startsWith(`adapter/${this.props.oContext.adapterName}/`)&&!n.startsWith(`./adapter/${this.props.oContext.adapterName}/`)&&(n=`adapter/${this.props.oContext.adapterName}/${n}`),k.createElement("img",{src:n,style:{cursor:this.props.schema.href?"pointer":void 0,width:"100%",height:"100%"},onClick:this.props.schema.href?()=>this.props.schema.href&&window.open(this.props.schema.href,"_blank"):null,alt:""})}}function Mi(L,n,i){return typeof i=="string"?{"@keyframes newValueAnimationOnceColor":{"0%":{color:n?`${i} !important`:i},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnceColor 2s ease-in-out"}:{"@keyframes newValueAnimationOnce":{"0%":{color:n?"#00f900 !important":"#00f900"},"80%":{color:L.palette.mode==="dark"?n?"#518851 !important":"#518851":n?"#008000 !important":"#008000"},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnce 2s ease-in-out"}}function Li(L,n){return typeof n=="string"?{"@keyframes blinkAnimationColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimationColor 2s ease-in-out infinite"}:{"@keyframes blinkAnimation":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimation 2s ease-in-out infinite"}}const Mt={label:{fontWeight:"bold",whiteSpace:"nowrap"},valueImage:{maxHeight:"100%"},valueAndUnit:{display:"flex",gap:4,alignItems:"baseline"},value:{},unit:{fontSize:"smaller",opacity:.7}};class ol extends K{renderItem(n){let i=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);this.props.schema.addColon&&typeof i=="string"&&!i.trim().endsWith(":")&&(i=`${i.trim()}:`),i&&(i.includes("
")||i.includes(""))&&(i=j.Utils.renderTextWithA(i));let u;this.props.schema.size==="normal"?u=16:this.props.schema.size==="large"?u=20:typeof this.props.schema.size=="number"&&(u=this.props.schema.size);const v={width:"100%",height:"100%",display:"flex",alignItems:"center",position:"relative",fontSize:u};this.props.schema.narrow?v.gap=8:v.justifyContent="space-between";let o,h;this.props.schema.data&&typeof this.props.schema.data=="object"&&this.props.schema.data.en?h=this.getText(this.props.schema.data):typeof this.props.schema.data=="object"||this.props.schema.data===void 0||this.props.schema.data===null?h=JSON.stringify(this.props.schema.data):typeof this.props.schema.data=="number"?(h=this.props.schema.data.toString(),this.props.oContext.isFloatComma&&(h=h.replace(".",","))):(!this.props.schema.booleanAsCheckbox||typeof this.props.schema.data!="boolean")&&(h=this.props.schema.data.toString());let d=!1;if(this.props.schema.booleanAsCheckbox&&typeof this.props.schema.data=="boolean")o=k.createElement(N.Checkbox,{checked:!!o,disabled:!0,size:this.props.schema.size==="small"?"small":this.props.schema.size==="large"?"large":void 0});else if(h.startsWith("data:image/"))o=k.createElement("div",{style:{...Mt.value,...Mt.valueImage,...this.props.schema.styleValue||void 0}},k.createElement(j.Icon,{src:h}));else{const t={...Mt.value,...this.props.schema.styleValue||void 0};this.props.schema.html?o=k.createElement("div",{style:t,dangerouslySetInnerHTML:{__html:h}}):Array.isArray(this.props.schema.data)?(d=!0,o=k.createElement("div",{style:t},this.props.schema.data.map((r,l)=>k.createElement("div",{key:l},typeof r=="object"||r===null||r===void 0?JSON.stringify(r):r)))):h.includes(` -`)?(d=!0,o=k.createElement("div",{style:t},j.Utils.renderTextWithA(h))):o=k.createElement("div",{style:t},h)}if(this.props.schema.blinkOnUpdate&&this.props.schema.blink){const t=Mi(this.props.oContext.theme,!0,this.props.schema.blinkOnUpdate),r=Li(this.props.oContext.theme,this.props.schema.blink);o=k.createElement(N.Box,{key:h,sx:{...t,...r}},o)}else if(this.props.schema.blinkOnUpdate){const t=Mi(this.props.oContext.theme,!1,this.props.schema.blinkOnUpdate);o=k.createElement(N.Box,{key:h,sx:t},o)}else if(this.props.schema.blink){const t=Li(this.props.oContext.theme,this.props.schema.blink);o=k.createElement(N.Box,{sx:t},o)}this.props.schema.unit&&(o=k.createElement("div",{style:Mt.valueAndUnit},o,k.createElement("div",{style:{...Mt.unit,...this.props.schema.styleUnit||void 0}},this.getText(this.props.schema.unit,this.props.schema.noTranslation))));let s;this.props.schema.labelIcon&&(s=k.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let p;this.props.schema.copyToClipboard&&(p=k.createElement(Z.ContentCopy,{className:"staticCopyButton",style:{position:"absolute",top:"calc(50% - 12px)",right:0,cursor:"pointer"},onClick:()=>{j.Utils.copyToClipboard(h),window.alert(j.I18n.t("ra_Copied"))}}));const e={"& .staticCopyButton":{display:"none"},"& .staticCopyButton:action":{transform:"scale(0.9)"},"&:hover .staticCopyButton":{display:"block"}};return this.props.schema.highlight&&(e["&:hover"]={backgroundColor:this.props.oContext.themeType==="dark"?"#51515180":"#b8b8b880"}),d&&(v.alignItems="top"),k.createElement(N.Box,{component:"div",style:v,sx:e},k.createElement("div",{style:{...Mt.label,...this.props.schema.styleLabel||void 0}},s,i),o,p)}}const Ii={fullWidth:{height:"100%",width:"100%"},link:L=>({textDecoration:"underline",color:L.palette.mode==="dark"?"#4dabf5":"#254e72",cursor:"pointer"})};function Fi(L,n,i){let u,v="";L?L.toString().startsWith("#")||L.toString().startsWith("/")?(u=n||"_self",v=L):L.startsWith("http://")||L.startsWith("https://")?(u=n||"_blank",v=L):(v=`#tab-instances/config/${i}/${L}`,u=n||"_self"):(v=`#tab-instances/config/${i}`,u=n||"_self"),u==="_self"?setTimeout(o=>{o.startsWith("#")?window.location.hash=o:o.startsWith("/")?v=`${window.location.protocol}:${window.location.host}${v}`:(o.startsWith("http://")||o.startsWith("https://"))&&(window.location.href=o)},100,v):(v.startsWith("#")?v=`${window.location.protocol}:${window.location.host}${window.location.pathname}${v}`:v.startsWith("/")&&(v=`${window.location.protocol}:${window.location.host}${v}`),window.open(v,u))}class Ri extends K{renderItem(n,i){if(this.props.schema.button){const v=this.getIcon();return k.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ii.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i,startIcon:v,onClick:this.props.schema.href?()=>{const o=this.props.schema.href?this.getText(this.props.schema.href,!0):null;o&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:o,target:this.props.schema.target,close:this.props.schema.close}):Fi(o,this.props.schema.target,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation))}let u=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);return u&&(u.includes("")||u.includes(""))&&(u=j.Utils.renderTextWithA(u)),k.createElement(N.Box,{component:"span",style:{...this.props.schema.controlStyle||void 0},sx:this.props.schema.href?Ii.link:void 0,onClick:this.props.schema.href?()=>{const v=this.props.schema.href?this.getText(this.props.schema.href,!0):null;v&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:v,target:this.props.schema.target||"_blank",close:this.props.schema.close}):Fi(v,this.props.schema.target||"_blank",`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},u)}}const Bn=1024*1024,fe={paper:{width:"100%",marginBottom:16,backgroundColor:"rgba(255, 255, 255, 0.1)"},headerText:{width:"100%"},table:{minWidth:750},label:{display:"flex",justifyContent:"space-between"},title:{flex:"1 1 100%"},rootTool:{paddingLeft:16,paddingRight:8},silver:{opacity:.2},flex:{display:"flex",alignItems:"baseline"},filteredOut:{padding:10,display:"flex",textAlign:"center"},buttonEmpty:{width:34,display:"inline-block"},buttonCell:{whiteSpace:"nowrap"},dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},uploadDiv:{position:"relative",width:"100%",minHeight:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",minHeight:300,position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},tooltip:{pointerEvents:"none"}};function al(L,n,i){n=n||"key";const u=[];return Object.keys(L).forEach(v=>{const o={};o[n]=v,i?(o[i]=L[v],u.push(o)):u.push(Object.assign(o,L[v]))}),u}function Oi(L,n,i){n=n||"key";const u={};return L.forEach(v=>{let o=v[n];o==null&&(o=""),delete v[n],i?u[o]=v[i]:u[o]=v}),u}function ll(L,n){let i="";for(let u=0;u{i.filter&&(this.filterRefs[i.attr]=pt.createRef())}),this.refDiv=k.createRef()}async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr)||[];let i;if(this.props.schema.objKeyName?i=al(n,this.props.schema.objKeyName,this.props.schema.objValueName):i=n,Array.isArray(i)||(i=[]),this.props.schema.encryptedAttributes){const u=await this.props.oContext.socket.getCompactSystemConfig();this.secret=(u==null?void 0:u.native.secret)||this.secret,n.forEach(v=>{this.props.schema.encryptedAttributes.forEach(o=>{v[o]&&(v[o]=ul(this.secret,v[o]))})})}this.setState({value:i,visibleValue:null,orderBy:"",order:"asc",iteration:0,filterOn:[],width:0},()=>this.validateUniqueProps())}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),super.componentWillUnmount()}itemTable(n,i,u){var d;const{schema:v}=this.props,o=(d=v.items)==null?void 0:d.find(s=>s.attr===n);if(!o)return null;const h={items:{[n]:o}};return k.createElement($t,{oContext:this.props.oContext,alive:this.props.alive,arrayIndex:u,changed:this.props.changed,common:this.props.common,expertMode:this.props.expertMode,custom:!0,data:i,globalData:this.props.data,index:u+this.state.iteration,onChange:(s,p)=>{const e=JSON.parse(JSON.stringify(this.state.value));e[u][s]=p,this.setState({value:e},()=>{this.validateUniqueProps(),this.onChangeWrapper(e,!0)})},onError:(s,p)=>this.onError(s,p),originalData:this.props.originalData,schema:h,table:!0,themeName:this.props.themeName})}validateUniqueProps(){if(this.props.schema.uniqueColumns)for(const n of this.props.schema.uniqueColumns){const i=[];this.state.value.find(v=>{const o=v[n];return i.includes(o)?(this.onError(n,"is not unique"),this.setState({errorMessage:j.I18n.t('Non-allowed duplicate entry "%s" in column "%s"',o,n)}),!0):(i.push(o),!1)})||(this.onError(n,null),this.setState({errorMessage:""}))}}static descendingComparator(n,i,u){return i[u]n[u]?1:0}static getComparator(n,i){return n==="desc"?(u,v)=>Ve.descendingComparator(u,v,i):(u,v)=>-Ve.descendingComparator(u,v,i)}static getFilterValue(n){var i,u,v;return(v=(u=(i=n==null?void 0:n.current)==null?void 0:i.children[0])==null?void 0:u.children[0])==null?void 0:v.value}static setFilterValue(n,i){return n.current.children[0].children[0].value=i}handleRequestSort=(n,i=!1)=>{const{order:u,orderBy:v}=this.state,h=i?u:v===n&&u==="asc"?"desc":"asc",d=this.stableSort(h,n);JSON.stringify(d)!==JSON.stringify(this.state.value)&&this.setState({value:d,order:h,orderBy:n,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,d))};stableSort=(n,i)=>{const{value:u}=this.state,v=Ve.getComparator(n,i),o=u.map((h,d)=>({el:h,index:d}));return o.sort((h,d)=>{const s=v(h.el,d.el);return s!==0?s:h.index-d.index}),o.map(h=>h.el)};renderShowHideFilter(n){return n.filter?k.createElement(N.IconButton,{title:j.I18n.t("ra_Show/hide filter input"),size:"small",onClick:()=>{const i=[...this.state.filterOn],u=this.state.filterOn.indexOf(n.attr);u===-1?i.push(n.attr):i.splice(u,1),this.setState({filterOn:i},()=>{u&&Ve.getFilterValue(this.filterRefs[n.attr])&&(Ve.setFilterValue(this.filterRefs[n.attr],""),this.applyFilter())})}},this.state.filterOn.includes(n.attr)?k.createElement(Z.FilterAltOff,null):k.createElement(Z.FilterAlt,null)):null}renderImportExportButtons(n){return k.createElement(k.Fragment,null,!n.noDelete&&n.import?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Import data from %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:()=>this.setState({showImportDialog:!0})},k.createElement(Z.UploadFile,null))):null,n.export?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Export data to %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:()=>this.onExport()},k.createElement(Z.Download,null))):null,n.noDelete?null:k.createElement(N.IconButton,{disabled:!0,size:"small"},k.createElement(Z.Delete,null)))}renderAddButton(n){return k.createElement(N.Tooltip,{title:n?j.I18n.t("ra_Cannot add items with set filter"):j.I18n.t("ra_Add row"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement("span",null,k.createElement(N.IconButton,{size:"small",color:"primary",disabled:!!n&&!this.props.schema.allowAddByFilter,onClick:this.onAdd},k.createElement(Z.Add,null))))}enhancedTableHead(n,i){var h;const{schema:u}=this.props,{order:v,orderBy:o}=this.state;return k.createElement(N.TableHead,null,k.createElement(N.TableRow,null,(h=u.items)==null?void 0:h.map((d,s)=>this.renderOneFilter({schema:u,style:{width:d.width},showAddButton:!s&&!u.noDelete,headCell:d,order:v,orderBy:o,index:s,doAnyFilterSet:i})),!u.noDelete&&k.createElement(N.TableCell,{style:{paddingLeft:20,paddingRight:20,width:n,textAlign:"right"},padding:"checkbox"},this.renderImportExportButtons(u))))}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onExport(){const{schema:n}=this.props,{value:i}=this.state,v=[n.items.map(d=>d.attr).join(";")];i.forEach(d=>{const s=[];n.items.forEach(p=>{var e;(e=d[p.attr])!=null&&e.includes(";")?s.push(`"${d[p.attr]}"`):s.push(d[p.attr]===void 0||d[p.attr]===null?"":d[p.attr])}),v.push(s.join(";"))});const o=document.createElement("a");o.setAttribute("href",`data:text/csv;charset=utf-8,${encodeURIComponent(v.join(` +`,"autocompletion.css",!1),u.AcePopup=y,u.$singleLineEditor=m,u.getAriaId=l}),ace.define("ace/autocomplete/inline_screenreader",["require","exports","module"],function(i,u,v){var o=function(){function h(p){this.editor=p,this.screenReaderDiv=document.createElement("div"),this.screenReaderDiv.classList.add("ace_screenreader-only"),this.editor.container.appendChild(this.screenReaderDiv)}return h.prototype.setScreenReaderContent=function(p){for(!this.popup&&this.editor.completer&&this.editor.completer.popup&&(this.popup=this.editor.completer.popup,this.popup.renderer.on("afterRender",function(){var d=this.popup.getRow(),e=this.popup.renderer.$textLayer,t=e.element.childNodes[d-e.config.firstRow];if(t){for(var r="doc-tooltip ",l=0;l=0&&a.test(h[e]);e--)d.push(h[e]);return d.reverse().join("")},u.retrieveFollowingIdentifier=function(h,p,a){a=a||o;for(var d=[],e=p;e0)for(var g=this.popup.getFirstVisibleRow();g<=this.popup.getLastVisibleRow();g++){var S=this.popup.getData(g);S&&(!b||S.hideInlinePreview)&&this.$seen(S)}},E.prototype.$onPopupShow=function(b){this.$onPopupChange(b),this.stickySelection=!1,this.stickySelectionDelay>=0&&this.stickySelectionTimer.schedule(this.stickySelectionDelay)},E.prototype.observeLayoutChanges=function(){if(!(this.$elements||!this.editor)){window.addEventListener("resize",this.onLayoutChange,{passive:!0}),window.addEventListener("wheel",this.mousewheelListener);for(var b=this.editor.container.parentNode,g=[];b;)g.push(b),b.addEventListener("scroll",this.onLayoutChange,{passive:!0}),b=b.parentNode;this.$elements=g}},E.prototype.unObserveLayoutChanges=function(){var b=this;window.removeEventListener("resize",this.onLayoutChange,{passive:!0}),window.removeEventListener("wheel",this.mousewheelListener),this.$elements&&this.$elements.forEach(function(g){g.removeEventListener("scroll",b.onLayoutChange,{passive:!0})}),this.$elements=null},E.prototype.onLayoutChange=function(){if(!this.popup.isOpen)return this.unObserveLayoutChanges();this.$updatePopupPosition(),this.updateDocTooltip()},E.prototype.$updatePopupPosition=function(){var b=this.editor,g=b.renderer,S=g.layerConfig.lineHeight,T=g.$cursorLayer.getPixelPosition(this.base,!0);T.left-=this.popup.getTextLeftOffset();var k=b.container.getBoundingClientRect();T.top+=k.top-g.layerConfig.offset,T.left+=k.left-b.renderer.scrollLeft,T.left+=g.gutterWidth;var _={top:T.top,left:T.left};g.$ghostText&&g.$ghostTextWidget&&this.base.row===g.$ghostText.position.row&&(_.top+=g.$ghostTextWidget.el.offsetHeight);var O=b.container.getBoundingClientRect().bottom-S,$=O<_.top?{top:O,left:_.left}:_;this.popup.tryShow($,S,"bottom")||this.popup.tryShow(T,S,"top")||this.popup.show(T,S)},E.prototype.openPopup=function(b,g,S){this.$firstOpenTimer.cancel(),this.popup||this.$init(),this.inlineEnabled&&!this.inlineRenderer&&this.$initInline(),this.popup.autoSelect=this.autoSelect,this.popup.setSelectOnHover(this.setSelectOnHover);var T=this.popup.getRow(),k=this.popup.data[T];this.popup.setData(this.completions.filtered,this.completions.filterText),this.editor.textInput.setAriaOptions&&this.editor.textInput.setAriaOptions({activeDescendant:a(this.popup.getRow()),inline:this.inlineEnabled}),b.keyBinding.addKeyboardHandler(this.keyboardHandler);var _;this.stickySelection&&(_=this.popup.data.indexOf(k)),(!_||_===-1)&&(_=0),this.popup.setRow(this.autoSelect?_:-1),_===T&&k!==this.completions.filtered[_]&&this.$onPopupChange();var O=this.inlineRenderer&&this.inlineEnabled;if(_===T&&O){var $=this.popup.getData(this.popup.getRow());this.$updateGhostText($)}S||(this.popup.setTheme(b.getTheme()),this.popup.setFontSize(b.getFontSize()),this.$updatePopupPosition(),this.tooltipNode&&this.updateDocTooltip()),this.changeTimer.cancel(),this.observeLayoutChanges()},E.prototype.detach=function(){this.editor&&(this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener)),this.$firstOpenTimer.cancel(),this.changeTimer.cancel(),this.hideDocTooltip(),this.completionProvider&&this.completionProvider.detach(),this.popup&&this.popup.isOpen&&this.popup.hide(),this.popup&&this.popup.renderer&&this.popup.renderer.off("afterRender",this.$onPopupRender),this.base&&this.base.detach(),this.activated=!1,this.completionProvider=this.completions=this.base=null,this.unObserveLayoutChanges()},E.prototype.changeListener=function(b){var g=this.editor.selection.lead;(g.row!=this.base.row||g.columnthis.filterText&&b.lastIndexOf(this.filterText,0)===0)var g=this.filtered;else var g=this.all;this.filterText=b,g=this.filterCompletions(g,this.filterText),g=g.sort(function(T,k){return k.exactMatch-T.exactMatch||k.$score-T.$score||(T.caption||T.value).localeCompare(k.caption||k.value)});var S=null;g=g.filter(function(T){var k=T.snippet||T.caption||T.value;return k===S?!1:(S=k,!0)}),this.filtered=g},E.prototype.filterCompletions=function(b,g){var S=[],T=g.toUpperCase(),k=g.toLowerCase();e:for(var _=0,O;O=b[_];_++){if(O.skipFilter){O.$score=O.score,S.push(O);continue}var $=!this.ignoreCaption&&O.caption||O.value||O.snippet;if($){var A=-1,C=0,w=0,x,I;if(this.exactMatch){if(g!==$.substr(0,g.length))continue e}else{var F=$.toLowerCase().indexOf(k);if(F>-1)w=F;else for(var R=0;R=0&&(P<0||B0&&(A===-1&&(w+=10),w+=I,C|=1<",a.escapeHTML(T.caption),"","
",a.escapeHTML(r(T.snippet))].join(""))},id:"snippetCompleter"},s=[l,e,t];u.setCompleters=function(T){s.length=0,T&&s.push.apply(s,T)},u.addCompleter=function(T){s.push(T)},u.textCompleter=e,u.keyWordCompleter=t,u.snippetCompleter=l;var c={name:"expandSnippet",exec:function(T){return o.expandWithTab(T)},bindKey:"Tab"},f=function(T,k){m(k.session.$mode)},m=function(T){typeof T=="string"&&(T=p.$modes[T]),T&&(o.files||(o.files={}),y(T.$id,T.snippetFileId),T.modes&&T.modes.forEach(m))},y=function(T,k){!k||!T||o.files[T]||(o.files[T]={},p.loadModule(k,function(_){_&&(o.files[T]=_,!_.snippets&&_.snippetText&&(_.snippets=o.parseSnippetFile(_.snippetText)),o.register(_.snippets||[],_.scope),_.includeScopes&&(o.snippetMap[_.scope].includeScopes=_.includeScopes,_.includeScopes.forEach(function(O){m("ace/mode/"+O)})))}))},D=function(T){var k=T.editor,_=k.completer&&k.completer.activated;if(T.command.name==="backspace")_&&!d.getCompletionPrefix(k)&&k.completer.detach();else if(T.command.name==="insertstring"&&!_){E=T;var O=T.editor.$liveAutocompletionDelay;O?b.delay(O):g(T)}},E,b=a.delayedCall(function(){g(E)},0),g=function(T){var k=T.editor,_=d.getCompletionPrefix(k),O=T.args,$=d.triggerAutocomplete(k,O);if(_&&_.length>=k.$liveAutocompletionThreshold||$){var A=h.for(k);A.autoShown=!0,A.showPopup(k)}},S=i("../editor").Editor;i("../config").defineOptions(S.prototype,"editor",{enableBasicAutocompletion:{set:function(T){T?(this.completers||(this.completers=Array.isArray(T)?T:s),this.commands.addCommand(h.startCommand)):this.commands.removeCommand(h.startCommand)},value:!1},enableLiveAutocompletion:{set:function(T){T?(this.completers||(this.completers=Array.isArray(T)?T:s),this.commands.on("afterExec",D)):this.commands.off("afterExec",D)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(T){T?(this.commands.addCommand(c),this.on("changeMode",f),f(null,this)):(this.commands.removeCommand(c),this.off("changeMode",f))},value:!1}})}),function(){ace.require(["ace/ext/language_tools"],function(i){L&&(L.exports=i)})}()})(La);const Ai={jsonError:{border:"1px solid red",minHeight:200},jsonNoError:{border:"1px solid #00000000",minHeight:200}};function Ia(L){return M.createElement(xa,{style:L.error===!0?Ai.jsonError:L.error===!1?Ai.jsonNoError:void 0,mode:L.mode||"json",width:"100%",height:"100%",showPrintMargin:L.editValueMode,showGutter:L.editValueMode,highlightActiveLine:L.editValueMode,defaultValue:L.defaultValue,theme:L.themeType==="dark"?"clouds_midnight":"chrome",value:L.value,readOnly:!L.onChange,onChange:n=>L.onChange(n),name:L.name||"UNIQUE_ID_OF_DIV1",fontSize:L.fontSize||14,setOptions:{enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,enableSnippets:!0,showLineNumbers:L.editValueMode,tabSize:L.editValueMode?2:void 0},editorProps:{$blockScrolling:!0}})}const On={flex:{display:"flex"},button:{height:48,minWidth:48},wrapper:{width:"calc(100vw - 40px)",height:"calc(100vh - 188px)"}};class Fa extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"{}";this.setState({value:u,initialized:!0,jsonError:this.validateJson(u)})}validateJson(n){let i=!1;if(this.props.schema.validateJson!==!1&&(n||!this.props.schema.allowEmpty))try{this.props.schema.json5?ji.parse(n):JSON.parse(n)}catch(u){console.log("Error in JSON",u),i=!0}return i}renderItem(n,i){if(!this.state.initialized)return null;const{schema:u,data:v,attr:o}=this.props,{value:h,showSelectId:p}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},M.createElement("div",{style:On.flex},M.createElement(N.Button,{color:"grey",disabled:i,style:On.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},j.I18n.t("ra_JSON editor"))),p?M.createElement(ao,{title:this.getText(u.label),overflowHidden:!0,applyDisabled:this.state.jsonError&&this.props.schema.doNotApplyWithError,onClose:()=>this.setState({showSelectId:!1,value:K.getValue(v,o)||{}}),onApply:()=>this.setState({showSelectId:!1},()=>this.onChange(o,h))},M.createElement("div",{style:{...On.wrapper,border:this.state.jsonError?"2px solid red":"2px solid transparent"}},M.createElement(Ia,{mode:this.props.schema.json5?"json5":"json",value:typeof h=="object"?JSON.stringify(h):h,onChange:a=>this.setState({value:a,jsonError:this.validateJson(a)}),name:"ConfigJsonEditor",themeType:this.props.oContext.themeType}))):null,u.help||this.state.jsonError?M.createElement(N.FormHelperText,null,this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Oa=[{value:"en",label:"English"},{value:"de",label:"Deutsch"},{value:"ru",label:"русский"},{value:"pt",label:"Portugues"},{value:"nl",label:"Nederlands"},{value:"fr",label:"français"},{value:"it",label:"Italiano"},{value:"es",label:"Espanol"},{value:"pl",label:"Polski"},{value:"uk",label:"Український"},{value:"zh-cn",label:"简体中文"}];class Ra extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr),i=[...Oa];this.props.schema.system?i.unshift({value:"",label:j.I18n.t("ra_System language")}):i.unshift({value:"",label:j.I18n.t("ra_none")}),this.setState({value:this.props.schema.system?n||"":n||j.I18n.getLanguage(),selectOptions:i})}renderItem(n,i){var v,o;if(!this.state.selectOptions)return null;const u=(v=this.state.selectOptions)==null?void 0:v.find(h=>h.value===this.state.value||!h.value&&!this.state.value);return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:i,value:this.state.value||"_",renderValue:()=>this.getText(u==null?void 0:u.label,this.props.schema.noTranslation),onChange:h=>{let{value:p}=h.target;p==="_"&&(p=""),this.setState({value:p},()=>{const a=this.onChange(this.props.attr,p);if(a instanceof Promise&&a.catch(d=>console.error(d)),this.props.schema.changeGuiLanguage)if(p){if(p===j.I18n.getLanguage())return;j.I18n.setLanguage(p),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage()}else this.props.oContext.socket.getSystemConfig().then(d=>{d.common.language!==j.I18n.getLanguage()&&d.common.language&&(j.I18n.setLanguage(d.common.language),this.props.oContext.changeLanguage&&this.props.oContext.changeLanguage())}).catch(d=>console.error(`Cannot read system config: ${d}`))})}},(o=this.state.selectOptions)==null?void 0:o.map(h=>M.createElement(N.MenuItem,{key:h.value,value:h.value},h.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class Na extends K{scrollRef;constructor(n){super(n),this.scrollRef=M.createRef()}scrolledDown(){return this.scrollRef.current?this.scrollRef.current.offsetHeight+this.scrollRef.current.scrollTop>=this.scrollRef.current.scrollHeight:!1}componentDidMount(){super.componentDidMount(),K.getValue(this.props.data,this.props.attr)||(this.props.schema.licenseUrl?(this.setState({showLicenseDialog:!0,loading:!0,scrolledDown:!1}),fetch(this.props.schema.licenseUrl).then(n=>n.text()).then(n=>this.setState({license:n,loading:!1})).catch(n=>this.setState({license:n.toString(),loading:!1,error:!0,scrolledDown:!1}))):this.setState({showLicenseDialog:!0,scrolledDown:!1}),setTimeout(()=>{this.scrollRef.current&&(this.scrolledDown()?this.setState({scrolledDown:!0}):this.scrollRef.current.addEventListener("scroll",()=>{!this.state.scrolledDown&&this.scrolledDown()&&this.setState({scrolledDown:!0})}))},1e3))}renderItem(n,i){return this.state.showLicenseDialog?M.createElement(N.Dialog,{maxWidth:"lg",open:!0,onClose:(u,v)=>{v!=="escapeKeyDown"&&v!=="backdropClick"&&this.setState({showLicenseDialog:!1})}},M.createElement(N.DialogTitle,null,this.props.schema.title?j.I18n.t(this.props.schema.title):j.I18n.t("ra_License agreement")),M.createElement(N.DialogContent,null,this.props.schema.licenseUrl?M.createElement(M.Fragment,null,this.state.loading?M.createElement(N.LinearProgress,null):null,M.createElement("pre",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.state.license)):null,!this.props.schema.licenseUrl&&this.props.schema.texts?M.createElement("div",{ref:this.scrollRef,style:{width:"100%",height:"100%",overflowY:"auto",fontSize:14}},this.props.schema.texts.map((u,v)=>this.props.schema.noTranslation?M.createElement("p",{key:v},u):M.createElement("p",{key:v},j.I18n.t(u)))):null),M.createElement(N.DialogActions,null,this.props.schema.checkBox?M.createElement(N.FormControlLabel,{control:M.createElement(N.Checkbox,{disabled:i,checked:!!this.state.licenseChecked,onClick:()=>this.setState({licenseChecked:!this.state.licenseChecked})}),label:j.I18n.t(this.props.schema.checkBox)}):null,M.createElement(N.Button,{disabled:i||this.state.loading||this.state.error||this.props.schema.checkBox&&!this.state.licenseChecked||!this.state.scrolledDown,onClick:()=>{this.setState({showLicenseDialog:!1});const u=this.onChange(this.props.attr,!0);u instanceof Promise&&u.catch(v=>console.error(`Cannot set value: ${v}`))},color:"primary",variant:"contained",startIcon:M.createElement(Z.Check,null)},this.props.schema.agreeText?j.I18n.t(this.props.schema.agreeText):j.I18n.t("ra_Accept license")),M.createElement(N.Button,{onClick:()=>{this.setState({showLicenseDialog:!1}),setTimeout(()=>this.setState({showLicenseDialog:!0}),2e3)},color:"grey",variant:"contained",startIcon:M.createElement(Z.Close,null)},j.I18n.t("ra_Close")))):null}}const xi={indeterminate:{opacity:.5},control:{flexDirection:"row",width:"100%"}};class Ba extends K{updateTimeout;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(n==null&&(n=""),Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({_value:n,oldValue:n});return}this.setState({_value:n.toString(),oldValue:n.toString()})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const u=K.getValue(n.data,n.attr);return n.oContext.multiEdit&&i._value===K.DIFFERENT_VALUE?{_value:K.DIFFERENT_VALUE}:u==null||i.oldValue===null||i.oldValue===void 0||u.toString()!==parseFloat(i._value).toString()&&u.toString()!==i.oldValue.toString()?{_value:u}:null}checkValue(n){if(n==null)return null;n=n.toString().trim().replace(",",".");const i=n===""?0:parseFloat(n);return n!==""&&Number.isNaN(i)?"ra_Not a number":n!==""&&window.isFinite(i)?this.props.schema.min!==void 0&&ithis.props.schema.max?"ra_Too big":n===""||n==="-"||Number.isNaN(i)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){const u=Array.isArray(this.state._value)||this.state._value===K.DIFFERENT_VALUE;if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0),u){const v=K.getValue(this.props.data,this.props.attr),o=(v==null?void 0:v.filter(h=>h||h===0).map(h=>({label:h.toString(),value:h})))||[];return o.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),M.createElement(N.Autocomplete,{style:xi.indeterminate,fullWidth:!0,freeSolo:!0,value:o[0],getOptionSelected:(h,p)=>h.label===p.label,onChange:(h,p)=>{const a=this.onChange(this.props.attr,p==null?void 0:p.value,()=>{this.setState({_value:p==null?void 0:p.value,oldValue:this.state._value})});a instanceof Promise&&a.catch(d=>console.error(d))},options:o,getOptionLabel:h=>h.label,renderInput:h=>M.createElement(N.TextField,{...h,label:this.getText(this.props.schema.label),variant:"standard",slotProps:{htmlInput:{...h.inputProps,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):void 0}},error:!!n,placeholder:this.getText(this.props.schema.placeholder),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}return!n&&this.state._value!==null&&this.state._value!==void 0&&this.state._value&&(n=this.checkValue(this.state._value),n&&(n=j.I18n.t(n))),M.createElement(N.FormControl,{variant:"standard",style:xi.control},M.createElement(N.TextField,{sx:{"& .up-down":{display:"none"},"&:hover .up-down":{display:"block"}},variant:"standard",type:this.props.schema.min!==void 0&&this.props.schema.min>=0?"number":"text",fullWidth:!0,slotProps:{htmlInput:{min:this.props.schema.min,max:this.props.schema.max,step:this.props.schema.step,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):null}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,onChange:v=>{const o=v.target.value,h=this.checkValue(o);h?this.onError(this.props.attr,j.I18n.t(h)):this.onError(this.props.attr),this.setState({_value:o,oldValue:this.state._value},()=>this.onChange(this.props.attr,parseFloat(o.replace(",","."))))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}))}}class Pa extends K{authWindow;oid;url;constructor(n){super(n),this.state={...this.state,accessTokens:"",success:!1,blocked:!1,running:!1,pressed:!1},this.url=`https://oauth2.iobroker.in/${n.schema.identifier}?redirect=true`,n.schema.scope&&(this.url+=`&scope=${encodeURIComponent(n.schema.scope)}`),this.oid=`${this.props.oContext.adapterName}.${this.props.oContext.instance}.${this.props.schema.saveTokenIn||"oauth2Tokens"}`}async componentDidMount(){super.componentDidMount(),window.addEventListener?window.addEventListener("message",this.onMessage,!1):window.attachEvent("onmessage",this.onMessage,!1),await this.props.oContext.socket.subscribeState(this.oid,this.onTokensUpdated);const n=await this.props.oContext.socket.getState(this.oid);if(n){const i=JSON.parse(n.val);new Date(i.access_token_expires_on).getTime()>Date.now()&&this.setState({accessTokens:n.val})}}onTokensUpdated=(n,i)=>{if(i!=null&&i.val){const u=JSON.parse(i.val);if(new Date(u.access_token_expires_on).getTime()>Date.now()){this.state.accessTokens!==i.val&&this.setState({accessTokens:i.val});return}}this.setState({accessTokens:""})};componentWillUnmount(){super.componentWillUnmount(),window.removeEventListener?window.removeEventListener("message",this.onMessage,!1):window.detachEvent("onmessage",this.onMessage,!1),this.props.oContext.socket.unsubscribeState(this.oid,this.onTokensUpdated)}saveToken(n){try{n&&!n.startsWith("{")&&(n=atob(n));const i=JSON.parse(n);i.access_token&&i.refresh_token&&i.expires_in&&(i.access_token_expires_on||=new Date(Date.now()+i.expires_in*1e3).toISOString(),this.props.oContext.socket.setState(this.oid,JSON.stringify(i),!0).catch(u=>console.log(`Error occurred: ${u.toString()}`)))}catch(i){console.warn(i)}}onMessage=n=>{var i,u,v;if(n.origin==="https://oauth2.iobroker.in"&&(typeof n.data=="string"&&n.data.startsWith(`${this.props.schema.identifier}-authentication:`)||typeof n.message=="string"&&n.message.startsWith(`${this.props.schema.identifier}-authentication:`))){const o=(n.data||n.message).split(":");o[1]==="success"?(this.setState({accessTokens:o[2],success:!0,pressed:!1},()=>this.saveToken(this.state.accessTokens)),(i=this.authWindow)==null||i.postMessage("close",n.origin),this.authWindow=null):(v=(u=this.props).onError)==null||v.call(u,o[2])}};onOpenUrl(){this.authWindow=window.open(this.url,this.props.schema.identifier),!this.authWindow||this.authWindow.closed||typeof this.authWindow.closed>"u"?this.setState({blocked:!0}):this.setState({pressed:!0})}renderItem(){let n="";if(this.state.accessTokens)try{const v=JSON.parse(this.state.accessTokens);n=new Date(v.access_token_expires_on).toLocaleString()}catch{}let i;this.state.accessTokens?i=this.props.schema.refreshLabel?this.getText(this.props.schema.refreshLabel):j.I18n.t("ra_Renew %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1)):i=this.props.schema.label?this.getText(this.props.schema.label):j.I18n.t("ra_Get %s access",this.props.schema.identifier[0].toUpperCase()+this.props.schema.identifier.slice(1));const u=this.getIcon();return M.createElement("div",{style:{width:"100%",margin:"0 0 1rem 0"}},M.createElement(N.Button,{disabled:this.state.running,endIcon:u||M.createElement(Z.CloudUpload,null),variant:"contained",onClick:()=>this.onOpenUrl()},i),this.state.blocked?M.createElement("div",{style:{color:"red",fontSize:16,marginTop:20}},j.I18n.t("ra_Please allow popups in your browser for this page!")):null,this.state.accessTokens?M.createElement("div",{style:{color:"green",fontSize:16,marginTop:20}},this.props.alive?j.I18n.t("ra_Successfully authorized. Token valid till %s and will be automatically renewed.",n):j.I18n.t("ra_Successfully authorized. Token valid till %s but it can expire as the instance is not running.",n)):null,this.state.pressed?M.createElement(M.Fragment,null,M.createElement("div",{style:{width:"100%",margin:"1rem 0 1rem 0"}},M.createElement("span",{style:{marginRight:4}},`${j.I18n.t("ra_If the button above does not work, you can authorize manually this app by visiting this url")}`,":"),M.createElement("br",null),M.createElement("a",{target:this.props.schema.identifier,href:this.url,rel:"noreferrer"},this.url)),M.createElement(N.TextField,{value:this.state.accessTokens,label:j.I18n.t("ra_Enter the code from that page here"),variant:"standard",onChange:v=>{let o=v.target.value;o&&!o.startsWith("{")&&(o=atob(o));try{const h=JSON.parse(o);h.access_token&&(h.access_token_expires_on=new Date(Date.now()+(h.expires_in-10)*1e3).toISOString(),this.setState({accessTokens:JSON.stringify(h)},()=>this.saveToken(this.state.accessTokens)))}catch{}},fullWidth:!0})):null)}}const $i={flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}};class Wa extends K{componentDidMount(){super.componentDidMount();const{data:n,attr:i}=this.props,u=K.getValue(n,i)||"";this.setState({value:u,initialized:!0})}renderItem(n,i){if(!this.state.initialized)return null;const u=this.props.oContext.socket,{schema:v,attr:o}=this.props,{value:h,showSelectId:p}=this.state;return M.createElement(N.FormControl,{fullWidth:!0,variant:"standard"},v.label?M.createElement(N.InputLabel,{shrink:!0},this.getText(v.label)):null,M.createElement("div",{style:$i.flex},M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:h,error:!!n,disabled:i,placeholder:this.getText(v.placeholder),label:this.getText(v.label),helperText:this.renderHelp(v.help,v.helpLink,v.noTranslation),onChange:a=>{const d=a.target.value;this.setState({value:d},()=>this.onChange(o,d))}}),M.createElement(N.Button,{color:"grey",disabled:i,style:$i.button,size:"small",variant:"outlined",onClick:()=>this.setState({showSelectId:!0})},"...")),p?M.createElement(j.DialogSelectID,{imagePrefix:this.props.oContext.imagePrefix===void 0?"../..":this.props.oContext.imagePrefix,dialogName:`admin.${this.props.oContext.adapterName}`,filterFunc:v.filterFunc,themeType:this.props.oContext.themeType,theme:this.props.oContext.theme,types:v.types?Array.isArray(v.types)?v.types:[v.types]:void 0,customFilter:v.customFilter,filters:v.filters,socket:u,selected:h,root:v.root,onClose:()=>this.setState({showSelectId:!1}),onOk:a=>this.setState({showSelectId:!1,value:a},()=>this.onChange(o,a))}):null)}}const Rn={fullWidth:{width:"100%",display:"inline-block"},halfWidth1:{width:"calc(50% - 5px)",display:"inline-block",marginRight:8},halfWidth2:{width:"calc(50% - 5px)",display:"inline-block"}},an="____ppp____";class Ha extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_repeat:n?an:"",_visible:!1,value:n?an:"",_notEqual:!1})}onChangePassword(n,i){n===void 0&&(n=this.state.value),i===void 0&&(i=this.state._repeat);const u=!!this.props.schema.repeat&&i!==n;this.setState({value:n,_repeat:i,_notEqual:u},()=>{if(u)this.onError(this.props.attr,j.I18n.t("ra_Passwords are not equal!"));else{this.onError(this.props.attr);const v=this.onChange(this.props.attr,n);v instanceof Promise&&v.catch(o=>this.onError(this.props.attr,o))}})}renderItem(n,i){if(this.state._notEqual===void 0)return null;const u=M.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state.value!==an?"text":"password",value:this.state.value,error:!!n||this.state._notEqual,disabled:!!i,onChange:v=>this.onChangePassword(v.target.value),label:this.getText(this.props.schema.label),slotProps:{input:{autoComplete:"new-password",endAdornment:this.state.value&&this.state.value!==an&&this.props.schema.visible&&!i&&!this.props.schema.readOnly?M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{size:"large",tabIndex:-1,onClick:v=>{v.preventDefault(),v.stopPropagation(),this.setState({_visible:!this.state._visible})},edge:"end"},this.state._visible?M.createElement(Z.VisibilityOff,null):M.createElement(Z.Visibility,null))):void 0},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});if(this.props.schema.repeat&&!this.props.schema.readOnly){const v=this.state._visible?null:M.createElement(N.TextField,{variant:"standard",fullWidth:!0,type:"password",value:this.state._repeat,error:!!n||this.state._notEqual,disabled:!!i,onChange:o=>this.onChangePassword(void 0,o.target.value),label:`${this.getText(this.props.schema.label)} (${j.I18n.t("ra_repeat")})`,slotProps:{input:{autoComplete:"new-password"},htmlInput:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},helperText:this.state._notEqual?j.I18n.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)});return M.createElement("div",{style:Rn.fullWidth},M.createElement("div",{style:Rn.halfWidth1},u),M.createElement("div",{style:Rn.halfWidth2},v))}return u}}class za extends K{renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,disabled:!!i,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.getPattern(this.props.schema.pattern,null,this.props.schema.noTranslation)),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null)):void 0}},value:this.getPattern(this.props.schema.pattern,null,!0),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const ja={warning:{"& .Mui-error":{color:"orange"}}};class Va extends K{updateTimeout;async componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);n==null&&(n=""),this.setState({_value:n.toString(),oldValue:n.toString()});const i=await this.props.oContext.socket.getAdapterInstances(),u=`system.adapter.${this.props.oContext.adapterName}.${this.props.oContext.instance}`,v=await this.props.oContext.socket.getObject(u),o=v==null?void 0:v.common.host,h=[];i.forEach(p=>{var d,e,t,r;if(!p||p._id===u||p.common.host!==o||!((d=p.native)!=null&&d.bind))return;if(p!=null&&p.native&&p.native.secure&&p.native.leEnabled&&p.native.leUpdate){const l=parseInt(p.native.leCheckPort||p.native.lePort,10);l&&h.push({name:`${p._id.replace("system.adapter.","")} (LE)`,port:l,v6bind:p.native.bind.includes(":")?p.native.bind:p.native.v6bind,bind:p.native.bind,enabled:!!((e=p.common)!=null&&e.enabled)})}const a=parseInt((t=p==null?void 0:p.native)==null?void 0:t.port,10);a&&h.push({name:p._id.replace("system.adapter.",""),bind:p.native.bind,v6bind:p.native.bind.includes(":")?p.native.bind:p.native.v6bind,port:a,enabled:!!((r=p.common)!=null&&r.enabled)})}),this.setState({ports:h})}static getDerivedStateFromProps(n,i){const u=K.getValue(n.data,n.attr);return u==null||i.oldValue===null||i.oldValue===void 0||u.toString()!==parseInt(i._value,10).toString()&&u.toString()!==i.oldValue.toString()?{_value:u}:null}checkValue(n){if(n==null)return null;const i=this.props.schema.min===void 0?20:this.props.schema.min,u=this.props.schema.max||65535;n=n.toString().trim();const v=n===""?0:parseInt(n,10);return n!==""&&Number.isNaN(v)?"ra_Not a number":n!==""&&window.isFinite(Number(n))?vu?"ra_Too big":n===""||n==="-"||Number.isNaN(v)?"ra_Not a number":null:"ra_Not a number"}renderItem(n,i){this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=void 0,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=void 0);const u=this.props.schema.min===void 0?20:this.props.schema.min,v=this.props.schema.max||65535;let o;if(this.state.ports){const h=parseInt(this.state._value,10);if(h){const p=this.state.ports.filter(d=>!this.props.data.bind||this.props.data.bind===d.bind||this.props.data.bind==="0.0.0.0"||d.bind==="0.0.0.0");let a=p.findIndex(d=>d.port===h&&d.enabled);a!==-1?n=j.I18n.t("ra_Port is already used by %s",this.state.ports[a].name):(a=p.findIndex(d=>d.port===h&&!d.enabled),a!==-1&&(o=!0,n=j.I18n.t("ra_Port could be used by %s",this.state.ports[a].name)))}}return!n&&this.state._value!==null&&this.state._value!==void 0&&(n=this.checkValue(this.state._value),typeof n=="string"&&(n=j.I18n.t(n))),M.createElement(N.TextField,{variant:"standard",type:"number",fullWidth:!0,slotProps:{htmlInput:{min:u,max:v,readOnly:this.props.schema.readOnly||!1}},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!n,disabled:!!i,sx:o?ja.warning:void 0,onChange:h=>{const p=Number(h.target.value.toString().replace(/[^0-9]/g,"")).toString(),a=this.checkValue(p);a?this.onError(this.props.attr,j.I18n.t(a)):this.onError(this.props.attr),this.setState({_value:p,oldValue:this.state._value},()=>{if(p.trim()===parseInt(p,10).toString()){const d=this.onChange(this.props.attr,parseInt(p,10)||0);d instanceof Promise&&d.catch(e=>{console.error(`Cannot set value for ${this.props.attr}: ${e}`)})}})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:n&&typeof n=="string"?n:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}class Ua extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.props.oContext.socket.getEnums("rooms").then(i=>{const u=Object.keys(i).map(v=>({value:this.props.schema.short?v.replace("enum.rooms.",""):v,label:this.getText(i[v].common.name),obj:i[v]}));this.props.schema.allowDeactivate!==!1&&u.unshift({label:j.I18n.t(K.NONE_LABEL),value:K.NONE_VALUE}),this.setState({value:n,selectOptions:u})}).catch(i=>console.error(`Cannot get enums: ${i}`))}renderItem(n,i){if(!this.state.selectOptions)return null;const u=this.state.selectOptions.find(v=>v.value===this.state.value);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:this.state.value||"_",renderValue:()=>u?u.obj?M.createElement(j.TextWithIcon,{value:u.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):u.label:"",onChange:v=>{this.setState({value:v.target.value==="_"?"":v.target.value},()=>this.onChange(this.props.attr,this.state.value))}},this.state.selectOptions.map(v=>M.createElement(N.MenuItem,{key:v.value,value:v.value,style:v.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},v.obj?M.createElement(j.TextWithIcon,{value:v.obj,themeType:this.props.oContext.themeType,lang:j.I18n.getLanguage()}):v.label))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ga={noMargin:{"&>div":{marginTop:0}}};class Ka extends K{initialValue="";componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[]));const i=[];(this.props.schema.options||[]).forEach(u=>{const v=u;Array.isArray(v.items)?(i.push({label:this.getText(u.label,this.props.schema.noTranslation),value:u.value,group:!0}),v.items.forEach(o=>i.push({label:this.getText(o.label,this.props.schema.noTranslation),value:o.value,hidden:o.hidden}))):i.push({label:this.getText(u.label,this.props.schema.noTranslation),value:u.value,hidden:u.hidden})}),Array.isArray(n)&&!this.props.schema.multiple?(this.initialValue=[...n],i.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),this.setState({value:K.DIFFERENT_VALUE,selectOptions:i})):this.setState({value:n,selectOptions:i})}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){if(!this.state.selectOptions)return null;const u=(this.state.selectOptions||[]).filter(h=>h.hidden?this.props.custom?!this.executeCustom(h.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(h.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),v=this._getValue(),o=this.props.schema.multiple?null:u.find(h=>h.value==v);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0,sx:this.props.table!==void 0&&Ga.noMargin,id:`jsonSelect_${this.props.attr}_${this.props.index||this.props.index===0?this.props.index:""}`},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,value:v||"_",renderValue:h=>this.props.schema.multiple?M.createElement(N.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},h.map(p=>{const a=u.find(d=>d.value===p);if(a||this.props.schema.showAllValues!==!1){const d=(a==null?void 0:a.label)||p;return M.createElement(N.Chip,{key:p,label:d})}return null})):(o==null?void 0:o.label)===void 0?h:o.label,onChange:h=>{this.setState({value:h.target.value==="_"?"":h.target.value},()=>{let p;this.state.value===K.DIFFERENT_VALUE?p=this.onChange(this.props.attr,this.initialValue):p=this.onChange(this.props.attr,this.state.value),p instanceof Promise&&p.catch(a=>console.error(a))})}},u.map((h,p)=>h.group?M.createElement(N.ListSubheader,{key:p},h.label):M.createElement(N.MenuItem,{key:p,value:h.value,style:h.value===K.DIFFERENT_VALUE?{opacity:.5}:{}},this.props.schema.multiple?M.createElement(N.Checkbox,{checked:v.includes(h.value),onClick:()=>{const a=JSON.parse(JSON.stringify(this._getValue())),d=v.indexOf(h.value);d!==-1?a.splice(d,1):(a.push(h.value),a.sort()),this.setState({value:a},()=>this.onChange(this.props.attr,a))}}):null,M.createElement(N.ListItemText,{primary:h.label})))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ja={menuPaper:{maxHeight:800}};class Ya extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.setState({running:!0},()=>{this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>this.setState({list:i,running:!1})).catch(i=>{console.error(`Cannot send command: ${i}`)})})}else{const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n,running:!1})}}getContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}_getValue(){let n=this.state.value===null||this.state.value===void 0?K.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof n=="string"?n=[n]:n==null&&(n=[])),n}renderItem(n,i){var h;if(this.props.alive){const p=this.getContext();(p!==this.localContext||!this.initialized)&&(this.localContext=p,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}const u=this._getValue();if(!this.props.alive||!this.state.running&&!((h=this.state.list)!=null&&h.length))return this.props.schema.multiple||this.props.schema.manual===!1?j.I18n.t("ra_Cannot retrieve options, as instance is offline"):M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:u,error:!!n,disabled:!!i,onChange:p=>{const a=p.target.value;this.setState({value:a},()=>this.onChange(this.props.attr,(a||"").trim()))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),slotProps:{input:{endAdornment:this.state.value&&!this.props.schema.noClearButton?M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({value:""},()=>this.onChange(this.props.attr,""))},M.createElement(Z.Close,null))):null}}});if(this.state.running)return M.createElement(N.CircularProgress,{size:"24"});const v=this.state.list.filter(p=>p.hidden?this.props.custom?!this.executeCustom(p.hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.arrayIndex,this.props.globalData):!this.execute(p.hidden,this.props.schema.default,this.props.data,this.props.arrayIndex,this.props.globalData):!0),o=v.find(p=>p.value===u);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,M.createElement(N.Select,{variant:"standard",error:!!n,multiple:this.props.schema.multiple,disabled:!!i,sx:{"&.MuiSelect-paper":this.props.schema.multiple?Ja.menuPaper:void 0},value:u,renderValue:p=>this.props.schema.multiple?M.createElement(N.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},p.map(a=>{const d=v.find(e=>e.value===a);if(d||this.props.schema.showAllValues!==!1){const e=(d==null?void 0:d.label)||a;return M.createElement(N.Chip,{key:a,label:e})}return null})):this.getText((o==null?void 0:o.label)||p,this.props.schema.noTranslation),onChange:p=>{const a=this.onChange(this.props.attr,p.target.value);a instanceof Promise&&a.catch(d=>console.error(`Cannot set value: ${d}`))}},v.map((p,a)=>p.group?M.createElement(N.ListSubheader,{key:a},this.getText(p.label,this.props.schema.noTranslation)):M.createElement(N.MenuItem,{key:a,value:p.value},this.props.schema.multiple?M.createElement(N.Checkbox,{checked:u.includes(p.value),onClick:()=>{const d=JSON.parse(JSON.stringify(this._getValue())),e=u.indexOf(p.value);e!==-1?d.splice(e,1):(d.push(p.value),d.sort()),this.setState({value:d},()=>this.onChange(this.props.attr,d))}}):null,M.createElement(N.ListItemText,{primary:p.label})))),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}const Ti={fullWidth:{width:"100%"}};function ut(L){return L.split(".").reduce((n,i)=>(n<<8)+parseInt(i,10),0)>>>0}function Qa(L,n){var v,o;const i=(o=(v=L==null?void 0:L.native)==null?void 0:v.hardware)==null?void 0:o.networkInterfaces;if(!i)return null;let u;return Object.keys(i).forEach(h=>i[h].forEach(p=>{p.internal||n.includes(":")&&p.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&p.family!=="IPv4"||(p.family==="IPv4"&&!p.address.startsWith("172")&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?u=p.address:u||(p.family==="IPv4"&&n.includes(".")&&(ut(n)&ut(p.netmask),ut(p.address)&ut(p.netmask)),u=p.address))})),u||Object.keys(i).forEach(h=>i[h].forEach(p=>{p.internal||n.includes(":")&&p.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&p.family!=="IPv4"||(p.family==="IPv6"&&(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/))?u=p.address:u||(p.family==="IPv4"&&n.includes(".")&&(ut(n)&ut(p.netmask),ut(p.address)&ut(p.netmask)),u=p.address))})),u||Object.keys(i).forEach(h=>{i[h].forEach(p=>{p.internal||n.includes(":")&&p.family!=="IPv6"||n.includes(".")&&!n.match(/[^.\d]/)&&p.family!=="IPv4"||(n==="127.0.0.0"||n==="localhost"||n.match(/[^.\d]/),u=p.address)})}),u||Object.keys(i).forEach(h=>{i[h].forEach(p=>{p.internal||(u=p.address)})}),u}class _i extends K{async componentDidMount(){var i;super.componentDidMount();let n=window.location.hostname;if(this.props.schema.openUrl){const u=await this.props.oContext.socket.getCurrentInstance(),v=await this.props.oContext.socket.getObject(`system.adapter.${u}`);if(v){const o=await this.props.oContext.socket.getObject(`system.host.${(i=v==null?void 0:v.common)==null?void 0:i.host}`);if(o){const h=Qa(o,window.location.hostname);if(h)n=`${h}:${window.location.port}`;else{console.warn(`Cannot find suitable IP in host ${v.common.host} for ${v._id}`);return}}}}await new Promise(u=>{this.setState({_error:"",_message:"",hostname:n},u)}),this.props.schema.onLoaded&&this._onClick()}renderErrorDialog(){return this.state._error?M.createElement(j.DialogError,{text:this.state._error,onClose:()=>this.setState({_error:""})}):null}renderMessageDialog(){return this.state._message?M.createElement(j.DialogMessage,{text:this.state._message,onClose:()=>this.setState({_message:""})}):null}_onClick(){this.props.oContext.onCommandRunning(!0),this.setState({running:!0});const n=`${window.location.protocol}//${window.location.host}${window.location.pathname.replace(/\/index\.html$/,"")}`,i=`${window.location.protocol}//${this.state.hostname.split(":").length>3?`[${this.state.hostname}]`:this.state.hostname}${window.location.pathname.replace(/\/index\.html$/,"")}`;let u=this.props.schema.data;if(u===void 0&&this.props.schema.jsonData){const o=this.getPattern(this.props.schema.jsonData,{_origin:n,_originIp:i,...this.props.data},!0);try{u=JSON.parse(o)}catch{console.error(`Cannot parse json data: ${o}`)}}u===void 0&&(u=null),this.props.schema.openUrl&&!u&&(u={_origin:n,_originIp:i});let v;this.props.schema.timeout&&(v=setTimeout(()=>{this.props.oContext.onCommandRunning(!1),this.setState({_error:j.I18n.t("ra_Request timed out"),running:!1})},parseInt(this.props.schema.timeout,10)||1e4)),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",u).then(async o=>{if(v&&(clearTimeout(v),v=void 0),o!=null&&o.error)if(this.props.schema.error&&this.props.schema.error[o.error]){let h=this.getText(this.props.schema.error[o.error]);o.args&&o.args.forEach(p=>h=h.replace("%s",p)),this.setState({_error:h})}else this.setState({_error:o.error?j.I18n.t(o.error):j.I18n.t("ra_Error")});else{if(o!=null&&o.command){this.props.oContext.onBackEndCommand&&this.props.oContext.onBackEndCommand(o.command);return}if(o!=null&&o.reloadBrowser&&this.props.schema.reloadBrowser)window.location.reload();else if(o!=null&&o.openUrl&&this.props.schema.openUrl)window.open(o.openUrl,o.window||this.props.schema.window||"_blank");else if(o!=null&&o.result&&this.props.schema.result&&this.props.schema.result[o.result]){let h=this.getText(this.props.schema.result[o.result]);o.args&&o.args.forEach(p=>h=h.replace("%s",p)),window.alert(h)}if(o!=null&&o.native&&this.props.schema.useNative){for(const[h,p]of Object.entries(o.native))await this.onChangeAsync(h,p);setTimeout(()=>this.props.oContext.forceUpdate(Object.keys(o.native),this.props.data),300)}else o!=null&&o.result?window.alert(typeof o.result=="object"?JSON.stringify(o.result):o.result):window.alert(j.I18n.t("ra_Ok"));o!=null&&o.saveConfig&&this.props.onChange(null,null,null,!0)}}).catch(o=>{this.props.schema.error&&this.props.schema.error[o.toString()]?this.setState({_error:this.getText(this.props.schema.error[o.toString()])}):this.setState({_error:j.I18n.t(o.toString())||j.I18n.t("ra_Error")})}).then(()=>{this.props.oContext.onCommandRunning(!1),this.setState({running:!1})})}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i||void 0,onClose:u=>this.setState({confirmDialog:!1},()=>u&&this._onClick())})}renderItem(n,i){const u=this.getIcon();return M.createElement("div",{style:Ti.fullWidth},M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ti.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i||!this.props.alive,startIcon:u,title:this.props.alive?this.getText(this.props.schema.title)||"":j.I18n.t("ra_Instance is not alive"),onClick:()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):this._onClick()}},this.props.schema.showProcess&&this.state.running?M.createElement(N.CircularProgress,{size:20,style:{marginRight:8}}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation)),this.renderErrorDialog(),this.renderMessageDialog())}}const Xa={fullWidth:{width:"100%"}};class Za extends K{async _onClick(){var u,v;let n=this.props.schema.val;if(typeof n=="string"&&n.includes("${")){n=this.getPattern(n,null,!0);const o=await this.props.oContext.socket.getObject(this.props.schema.id);((u=o==null?void 0:o.common)==null?void 0:u.type)==="number"?n=parseFloat(n):((v=o==null?void 0:o.common)==null?void 0:v.type)==="boolean"&&(n=n==="true"||n===!0||n==="1"||n===1)}const i=(this.props.schema.id||"").replace(/%INSTANCE%/g,(this.props.oContext.instance||0).toString());try{await this.props.oContext.socket.setState(i,{val:n,ack:!!this.props.schema.ack}),this.props.schema.okText&&window.alert(this.getText(this.props.schema.okText))}catch(o){this.props.schema.error&&this.props.schema.error[o.toString()]?window.alert(this.getText(this.props.schema.error[o.toString()])):window.alert(j.I18n.t(o.toString())||j.I18n.t("ra_Error"))}}renderDialogConfirm(){if(!this.state.confirmDialog)return null;const n=this.state.confirmData||this.props.schema.confirm;let i=null;return n.type==="warning"?i=M.createElement(Z.Warning,null):n.type==="error"?i=M.createElement(Z.Error,null):n.type==="info"&&(i=M.createElement(Z.Info,null)),M.createElement(j.DialogConfirm,{title:this.getText(n.title)||j.I18n.t("ra_Please confirm"),text:this.getText(n.text),ok:this.getText(n.ok)||j.I18n.t("ra_Ok"),cancel:this.getText(n.cancel)||j.I18n.t("ra_Cancel"),icon:i,onClose:u=>this.setState({confirmDialog:!1},()=>u&&this._onClick())})}renderItem(n,i){const u=this.getIcon();return M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:Xa.fullWidth,disabled:i,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0}):await this._onClick()},startIcon:u||void 0},this.getText(this.props.schema.label,this.props.schema.noTranslation))}}const ki={fullWidth:{width:"100%"},slider:{marginLeft:10,marginRight:10,width:"calc(100% - 20px)"}};class qa extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({_value:n})}static getDerivedStateFromProps(n,i){if(n.schema.min!==void 0&&n.schema.min<0||n.schema.max!==void 0&&n.schema.max<0)return null;const u=K.getValue(n.data,n.attr);return u==null||u.toString()!==parseFloat(i._value).toString()?{_value:u}:null}renderItem(n,i){const u=this.props.schema.min||0,v=this.props.schema.max||100,o=this.props.schema.unit?this.getText(this.props.schema.unit,this.props.schema.noTranslation):"",h=[{value:u,label:u+o},{value:v,label:v+o}];return M.createElement(N.Box,{style:ki.fullWidth},this.props.schema.label?M.createElement(N.Typography,{gutterBottom:!0},this.getText(this.props.schema.label)):null,M.createElement(N.Slider,{style:ki.slider,value:this.state._value,getAriaValueText:p=>p+o,step:this.props.schema.step||(v-u)/100,valueLabelDisplay:"auto",marks:h,min:u,max:v,disabled:!!i,onChange:p=>{const a=p.target.value;this.setState({_value:a},()=>this.onChange(this.props.attr,a))}}),this.props.schema.help?M.createElement(N.Typography,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}function ht(L,n){return L==="edit"||L==="rename"?M.createElement(Z.Edit,{style:n}):L==="delete"?M.createElement(Z.Delete,{style:n}):L==="refresh"?M.createElement(Z.Refresh,{style:n}):L==="newDevice"||L==="new"||L==="add"?M.createElement(Z.Add,{style:n}):L==="discover"||L==="search"?M.createElement(Z.Search,{style:n}):L==="unpairDevice"||L==="unpair"?M.createElement(Z.LinkOff,{style:n}):L==="pairDevice"||L==="pair"?M.createElement(Z.Link,{style:n}):L==="identify"?M.createElement(Z.NotListedLocation,{style:n}):L==="play"?M.createElement(Z.PlayArrow,{style:n}):L==="stop"?M.createElement(Z.Stop,{style:n}):L==="pause"?M.createElement(Z.Pause,{style:n}):L==="forward"||L==="next"?M.createElement(Z.FastForward,{style:n}):L==="rewind"||L==="previous"?M.createElement(Z.FastRewind,{style:n}):L==="lamp"||L==="light"?M.createElement(Z.Lightbulb,{style:n}):L==="backlight"?M.createElement(Z.Fluorescent,{style:n}):L==="dimmer"?M.createElement(Z.WbIncandescent,{style:n}):L==="socket"?M.createElement(Z.Power,{style:n}):L==="settings"?M.createElement(Z.Settings,{style:n}):L==="users"||L==="group"?M.createElement(Z.Group,{style:n}):L==="user"?M.createElement(Z.Person,{style:n}):L==="qrcode"?M.createElement(Z.QrCode,{style:n}):L==="connection"?M.createElement(Z.Wifi,{style:n}):L==="no-connection"?M.createElement(Z.WifiOff,{style:n}):L==="visible"?M.createElement(Z.Visibility,{style:n}):null}function el(L,n){return typeof n=="string"?{"@keyframes newStateAnimationOnceColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnceColor 2s ease-in-out"}:{"@keyframes newStateAnimationOnce":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"newStateAnimationOnce 2s ease-in-out"}}class tl extends K{controlTimeout=null;delayedUpdate={timer:null,value:null};getObjectID(){let n=this.props.schema.oid;return n.includes("${")&&(n=this.getPattern(n,null,!0)),this.props.schema.foreign?n:`${this.props.schema.system?"system.adapter.":""}${this.props.oContext.adapterName}.${this.props.oContext.instance||0}.${n}`}async componentDidMount(){super.componentDidMount();const n=await this.props.oContext.socket.getObject(this.getObjectID()),i=this.props.schema.control||this.detectType(n);try{const u=await this.props.oContext.socket.getState(this.getObjectID());this.setState({stateValue:u?u.val:null,controlType:i,obj:n},async()=>{await this.props.oContext.socket.subscribeState(this.getObjectID(),this.onStateChanged)})}catch(u){console.error(`Cannot get state ${this.getObjectID()}: ${u}`),this.setState({controlType:i,obj:n})}}componentWillUnmount(){super.componentWillUnmount(),this.props.oContext.socket.unsubscribeState(this.getObjectID(),this.onStateChanged),this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.controlTimeout&&(clearTimeout(this.controlTimeout),this.controlTimeout=null,this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1).catch(n=>console.error(`Cannot control value: ${n.toString()}`)))}onStateChanged=(n,i)=>{let u=i?i.val:null;this.state.controlType==="button"||this.state.controlType==="switch"?(u=!!u,this.state.stateValue!==u&&this.setState({stateValue:u})):u!==null&&(this.state.controlType==="slider"||this.state.controlType==="number")?(u=parseFloat(u),console.log(`${Date.now()} Received new value: ${u}`),u!==this.state.stateValue?(this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null),this.delayedUpdate.value=u,this.delayedUpdate.timer=setTimeout(()=>{this.setState({stateValue:this.delayedUpdate.value})},500)):this.delayedUpdate.timer&&(clearTimeout(this.delayedUpdate.timer),this.delayedUpdate.timer=null)):this.state.stateValue.toString()!==u.toString()&&this.setState({stateValue:u})};detectType(n){if(n=n||{},n.common=n.common||{},n.common.type==="boolean"){if(this.props.schema.controlled!==!1){if(n.common.read===!1||this.props.schema.controlled===!0)return"button";if(n.common.write||this.props.schema.controlled===!0)return"switch"}return"text"}return n.common.type==="number"&&this.props.schema.controlled!==!1?n.common.write||this.props.schema.controlled===!0?n.common.max!==void 0?"slider":"input":"text":n.common.write&&this.props.schema.controlled!==!1?"input":"text"}renderItem(n,i){var v,o,h,p,a;if(!this.state.obj)return null;let u;if(this.state.controlType==="button"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read===!1||(v=this.state.obj.common.role)!=null&&v.includes("button"))){let d=null;this.props.schema.falseImage&&(d=ht(this.props.schema.falseImage));const e=this.getText(this.props.schema.falseText||this.props.schema.label,this.props.schema.noTranslation);!e&&d?u=M.createElement(N.IconButton,{style:this.props.schema.falseTextStyle,disabled:!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},d):u=M.createElement(N.Button,{variant:this.props.schema.variant||"contained",startIcon:d,style:this.props.schema.falseTextStyle,disabled:i||!!this.props.schema.readOnly,onClick:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async t=>{t&&await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),this.props.schema.buttonValue!==void 0?this.props.schema.buttonValue:!0,!1)}},e||this.getObjectID().split(".").pop())}else if(this.state.controlType==="input"||!this.state.controlType&&this.state.obj.common.write&&this.state.obj.common.type==="string")u=M.createElement("div",{style:{width:"100%",display:"flex",flexDirection:"row",gap:8,alignItems:"baseline"}},M.createElement(N.TextField,{style:{flex:1},value:this.state.stateValue,variant:"standard",slotProps:{input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0},htmlInput:{readOnly:!!this.props.schema.readOnly}},onKeyUp:d=>{this.props.schema.setOnEnterKey&&d.key==="Enter"&&this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},onChange:d=>{this.setState({stateValue:d.target.value},()=>{this.props.schema.setOnEnterKey||this.props.schema.showEnterButton||(this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null,await this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},this.props.schema.controlDelay||0))})},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),this.props.schema.showEnterButton&&M.createElement(N.Button,{variant:"outlined",onClick:()=>{this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)}},this.getText(typeof this.props.schema.showEnterButton=="string"?this.props.schema.showEnterButton:"Set")));else{let d;this.props.schema.size==="normal"?d=16:this.props.schema.size==="large"?d=20:typeof this.props.schema.size=="number"&&(d=this.props.schema.size);let e=this.getText(this.props.schema.label,this.props.schema.noTranslation);const t={display:"flex",alignItems:"center",fontSize:d||"1rem",gap:8};this.props.schema.narrow||(t.width="100%",t.justifyContent="space-between"),e.trim()&&!e.trim().endsWith(":")&&this.props.schema.addColon&&(e=`${e.trim()}:`);let r;this.props.schema.blinkOnUpdate&&(r=el(this.props.oContext.theme,this.props.schema.blinkOnUpdate));let l;this.props.schema.labelIcon&&(l=M.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let s;if(e&&l?s=M.createElement("div",{style:{whiteSpace:"nowrap"}},l,e):e?s=M.createElement("div",{style:{whiteSpace:"nowrap"}},e):l&&(s=l),this.state.controlType==="switch"||!this.state.controlType&&this.state.obj.common.type==="boolean"&&(this.state.obj.common.write&&this.state.obj.common.read!==!1||(o=this.state.obj.common.role)!=null&&o.includes("switch"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ht(this.props.schema.trueImage,y?{marginRight:8}:void 0)),u=M.createElement(N.Switch,{checked:!!this.state.stateValue,disabled:!!this.props.schema.readOnly,onChange:async()=>{this.props.schema.confirm?this.setState({confirmDialog:!0,confirmCallback:async D=>{D&&await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}):await this.props.oContext.socket.setState(this.getObjectID(),!this.state.stateValue,!1)}}),(f||c||y||m)&&(u=M.createElement("div",{style:{display:"flex",alignItems:"center",fontSize:14}},M.createElement("span",{style:this.props.schema.falseTextStyle},f,c),u,M.createElement("span",{style:this.props.schema.trueTextStyle},m,y))),s&&(u=M.createElement("div",{style:t},s,u))}else if(this.state.controlType==="slider"||!this.state.controlType&&this.state.obj.common.type==="number"&&(this.state.obj.common.write&&(this.state.obj.common.max!==void 0||this.state.obj.common.unit==="%")||(h=this.state.obj.common.role)!=null&&h.includes("slider")||(p=this.state.obj.common.role)!=null&&p.includes("dimmer")||(a=this.state.obj.common.role)!=null&&a.includes("blind"))){let c=null;const f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation);this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0));let m=null;const y=this.getText(this.props.schema.trueText,this.props.schema.noTranslation);this.props.schema.trueImage&&(m=ht(this.props.schema.trueImage,y?{marginRight:8}:void 0));const D=this.props.schema.min===void 0?this.state.obj.common.min||0:this.props.schema.min,E=this.props.schema.max===void 0?this.state.obj.common.max===void 0?100:this.state.obj.common.max:this.props.schema.max,b=this.props.schema.step===void 0?this.state.obj.common.step||1:this.props.schema.step;u=M.createElement(N.Slider,{style:{width:"100%",flexGrow:1},min:D,max:E,disabled:!!this.props.schema.readOnly,step:b,value:this.state.stateValue,valueLabelDisplay:"auto",valueLabelFormat:g=>`${g}${this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||""}`,onChange:(g,S)=>{this.setState({stateValue:S},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{console.log(`${Date.now()} Send new value: ${this.state.stateValue}`),this.controlTimeout=null,await this.props.oContext.socket.setState(this.getObjectID(),this.state.stateValue,!1)},this.props.schema.controlDelay||0)})}}),(f||c||y||m)&&(u=M.createElement("div",{style:{display:"flex",width:"100%",flexGrow:1,alignItems:"center"}},M.createElement("span",{style:{marginRight:16,...this.props.schema.falseTextStyle}},f,c),u,M.createElement("span",{style:{marginLeft:16,...this.props.schema.trueTextStyle}},m,y))),s&&(u=M.createElement("div",{style:t},s,u))}else if(this.state.obj.common.type==="number"&&this.state.obj.common.write){const c=this.props.schema.min===void 0?this.state.obj.common.min===void 0?void 0:this.state.obj.common.min:this.props.schema.min,f=this.props.schema.max===void 0?this.state.obj.common.max===void 0?void 0:this.state.obj.common.max:this.props.schema.max,m=this.props.schema.step===void 0?this.state.obj.common.step===void 0?void 0:this.state.obj.common.step:this.props.schema.step;u=M.createElement(N.TextField,{variant:"standard",style:{width:"100%"},value:this.state.stateValue,type:"number",slotProps:{htmlInput:{min:c,max:f,step:m,readOnly:!!this.props.schema.readOnly},input:{endAdornment:this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit||void 0}},onChange:y=>{this.setState({stateValue:y.target.value},()=>{this.controlTimeout&&clearTimeout(this.controlTimeout),this.controlTimeout=setTimeout(async()=>{this.controlTimeout=null;const D=parseFloat(this.state.stateValue);await this.props.oContext.socket.setState(this.getObjectID(),D,!1)},this.props.schema.controlDelay||0)})},label:this.getText(this.props.schema.label,this.props.schema.noTranslation),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}else if(this.state.obj.common.type==="boolean"){let c=null,f,m;this.state.stateValue?(f=this.getText(this.props.schema.trueText,this.props.schema.noTranslation),this.props.schema.trueImage&&(c=ht(this.props.schema.falseImage,f?{marginRight:8}:void 0)),m=this.props.schema.trueTextStyle):(f=this.getText(this.props.schema.falseText,this.props.schema.noTranslation),this.props.schema.falseImage&&(c=ht(this.props.schema.falseImage,f?{marginLeft:8}:void 0)),m=this.props.schema.falseTextStyle),m=Object.assign(t,m),u=M.createElement("div",{style:m},s,M.createElement(N.Box,{style:{display:"flex",alignItems:"center",gap:8},sx:r,key:this.props.schema.blinkOnUpdate?f:void 0},c,f||(this.state.stateValue?j.I18n.t("ra_true"):j.I18n.t("ra_false"))))}else{const c=this.getText(this.props.schema.unit,this.props.schema.noTranslation)||this.state.obj.common.unit;let f,m;this.state.controlType==="html"?(m=(this.state.stateValue||"").toString(),f=M.createElement("span",{dangerouslySetInnerHTML:{__html:this.state.stateValue}})):this.state.stateValue===null?(f="null",m=f):this.state.stateValue===void 0?(f="undefined",m=f):(f=this.state.stateValue.toString(),m=f),u=M.createElement("div",{style:t},s,M.createElement("div",{style:{display:"flex",alignItems:"baseline",gap:4}},M.createElement(N.Box,{sx:r,key:this.props.schema.blinkOnUpdate?m:void 0},f),c?M.createElement("span",{style:{opacity:.7,fontSize:"smaller"}},c):null))}}return u}}const Nn={fullWidth:L=>({width:"100%",backgroundColor:L.palette.mode==="dark"?"#FFF":"#000",borderStyle:"hidden"}),primary:L=>({backgroundColor:L.palette.primary.main}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class nl extends K{renderItem(){return M.createElement(N.Box,{component:"hr",sx:j.Utils.getStyle(this.props.oContext.theme,Nn.fullWidth,this.props.schema.color==="primary"?Nn.primary:this.props.schema.color==="secondary"?Nn.secondary:{backgroundColor:this.props.schema.color||(this.props.oContext.themeType==="dark"?"#333":"#ddd")},{height:this.props.schema.color?this.props.schema.height||2:this.props.schema.height||1})})}}const il={header:L=>({width:"100%",background:L.palette.primary.main,color:L.palette.primary.contrastText,padding:"4px !important",borderRadius:"3px",marginBlockEnd:0,marginBlockStart:0})};class rl extends K{renderItem(){let n="h5";switch((this.props.schema.size||5).toString()){case"1":n="h1";break;case"2":n="h2";break;case"3":n="h3";break;case"4":n="h4";break;case"5":default:n="h5";break}return M.createElement(N.Box,{component:n,sx:il.header},this.getText(this.props.schema.label||this.props.schema.text,this.props.schema.noTranslation))}}class sl extends K{renderItem(){let n=this.props.schema.src;return n&&!n.startsWith(".")&&!n.startsWith("http")&&!n.startsWith(`adapter/${this.props.oContext.adapterName}/`)&&!n.startsWith(`./adapter/${this.props.oContext.adapterName}/`)&&(n=`adapter/${this.props.oContext.adapterName}/${n}`),M.createElement("img",{src:n,style:{cursor:this.props.schema.href?"pointer":void 0,width:"100%",height:"100%"},onClick:this.props.schema.href?()=>this.props.schema.href&&window.open(this.props.schema.href,"_blank"):null,alt:""})}}function Mi(L,n,i){return typeof i=="string"?{"@keyframes newValueAnimationOnceColor":{"0%":{color:n?`${i} !important`:i},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnceColor 2s ease-in-out"}:{"@keyframes newValueAnimationOnce":{"0%":{color:n?"#00f900 !important":"#00f900"},"80%":{color:L.palette.mode==="dark"?n?"#518851 !important":"#518851":n?"#008000 !important":"#008000"},"100%":{color:L.palette.mode==="dark"?n?"#fff !important":"#fff":n?"#000 !important":"#000"}},animation:"newValueAnimationOnce 2s ease-in-out"}}function Li(L,n){return typeof n=="string"?{"@keyframes blinkAnimationColor":{"0%":{color:n},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimationColor 2s ease-in-out infinite"}:{"@keyframes blinkAnimation":{"0%":{color:"#00f900"},"80%":{color:L.palette.mode==="dark"?"#518851":"#008000"},"100%":{color:L.palette.mode==="dark"?"#fff":"#000"}},animation:"blinkAnimation 2s ease-in-out infinite"}}const Mt={label:{fontWeight:"bold",whiteSpace:"nowrap"},valueImage:{maxHeight:"100%"},valueAndUnit:{display:"flex",gap:4,alignItems:"baseline"},value:{},unit:{fontSize:"smaller",opacity:.7}};class ol extends K{renderItem(n){let i=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);this.props.schema.addColon&&typeof i=="string"&&!i.trim().endsWith(":")&&(i=`${i.trim()}:`),i&&(i.includes("
")||i.includes(""))&&(i=j.Utils.renderTextWithA(i));let u;this.props.schema.size==="normal"?u=16:this.props.schema.size==="large"?u=20:typeof this.props.schema.size=="number"&&(u=this.props.schema.size);const v={width:"100%",height:"100%",display:"flex",alignItems:"center",position:"relative",fontSize:u};this.props.schema.narrow?v.gap=8:v.justifyContent="space-between";let o,h;this.props.schema.data&&typeof this.props.schema.data=="object"&&this.props.schema.data.en?h=this.getText(this.props.schema.data):typeof this.props.schema.data=="object"||this.props.schema.data===void 0||this.props.schema.data===null?h=JSON.stringify(this.props.schema.data):typeof this.props.schema.data=="number"?(h=this.props.schema.data.toString(),this.props.oContext.isFloatComma&&(h=h.replace(".",","))):(!this.props.schema.booleanAsCheckbox||typeof this.props.schema.data!="boolean")&&(h=this.props.schema.data.toString());let p=!1;if(this.props.schema.booleanAsCheckbox&&typeof this.props.schema.data=="boolean")o=M.createElement(N.Checkbox,{checked:!!o,disabled:!0,size:this.props.schema.size==="small"?"small":this.props.schema.size==="large"?"large":void 0});else if(h.startsWith("data:image/"))o=M.createElement("div",{style:{...Mt.value,...Mt.valueImage,...this.props.schema.styleValue||void 0}},M.createElement(j.Icon,{src:h}));else{const t={...Mt.value,...this.props.schema.styleValue||void 0};this.props.schema.html?o=M.createElement("div",{style:t,dangerouslySetInnerHTML:{__html:h}}):Array.isArray(this.props.schema.data)?(p=!0,o=M.createElement("div",{style:t},this.props.schema.data.map((r,l)=>M.createElement("div",{key:l},typeof r=="object"||r===null||r===void 0?JSON.stringify(r):r)))):h.includes(` +`)?(p=!0,o=M.createElement("div",{style:t},j.Utils.renderTextWithA(h))):o=M.createElement("div",{style:t},h)}if(this.props.schema.blinkOnUpdate&&this.props.schema.blink){const t=Mi(this.props.oContext.theme,!0,this.props.schema.blinkOnUpdate),r=Li(this.props.oContext.theme,this.props.schema.blink);o=M.createElement(N.Box,{key:h,sx:{...t,...r}},o)}else if(this.props.schema.blinkOnUpdate){const t=Mi(this.props.oContext.theme,!1,this.props.schema.blinkOnUpdate);o=M.createElement(N.Box,{key:h,sx:t},o)}else if(this.props.schema.blink){const t=Li(this.props.oContext.theme,this.props.schema.blink);o=M.createElement(N.Box,{sx:t},o)}this.props.schema.unit&&(o=M.createElement("div",{style:Mt.valueAndUnit},o,M.createElement("div",{style:{...Mt.unit,...this.props.schema.styleUnit||void 0}},this.getText(this.props.schema.unit,this.props.schema.noTranslation))));let a;this.props.schema.labelIcon&&(a=M.createElement(j.Icon,{src:this.props.schema.labelIcon,style:{marginRight:4}}));let d;this.props.schema.copyToClipboard&&(d=M.createElement(Z.ContentCopy,{className:"staticCopyButton",style:{position:"absolute",top:"calc(50% - 12px)",right:0,cursor:"pointer"},onClick:()=>{j.Utils.copyToClipboard(h),window.alert(j.I18n.t("ra_Copied"))}}));const e={"& .staticCopyButton":{display:"none"},"& .staticCopyButton:action":{transform:"scale(0.9)"},"&:hover .staticCopyButton":{display:"block"}};return this.props.schema.highlight&&(e["&:hover"]={backgroundColor:this.props.oContext.themeType==="dark"?"#51515180":"#b8b8b880"}),p&&(v.alignItems="top"),M.createElement(N.Box,{component:"div",style:v,sx:e},M.createElement("div",{style:{...Mt.label,...this.props.schema.styleLabel||void 0}},a,i),o,d)}}const Ii={fullWidth:{height:"100%",width:"100%"},link:L=>({textDecoration:"underline",color:L.palette.mode==="dark"?"#4dabf5":"#254e72",cursor:"pointer"})};function Fi(L,n,i){let u,v="";L?L.toString().startsWith("#")||L.toString().startsWith("/")?(u=n||"_self",v=L):L.startsWith("http://")||L.startsWith("https://")?(u=n||"_blank",v=L):(v=`#tab-instances/config/${i}/${L}`,u=n||"_self"):(v=`#tab-instances/config/${i}`,u=n||"_self"),u==="_self"?setTimeout(o=>{o.startsWith("#")?window.location.hash=o:o.startsWith("/")?v=`${window.location.protocol}:${window.location.host}${v}`:(o.startsWith("http://")||o.startsWith("https://"))&&(window.location.href=o)},100,v):(v.startsWith("#")?v=`${window.location.protocol}:${window.location.host}${window.location.pathname}${v}`:v.startsWith("/")&&(v=`${window.location.protocol}:${window.location.host}${v}`),window.open(v,u))}class Oi extends K{renderItem(n,i){if(this.props.schema.button){const v=this.getIcon();return M.createElement(N.Button,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",style:{...Ii.fullWidth,...this.props.schema.controlStyle||void 0},disabled:i,startIcon:v,onClick:this.props.schema.href?()=>{const o=this.props.schema.href?this.getText(this.props.schema.href,!0):null;o&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:o,target:this.props.schema.target,close:this.props.schema.close}):Fi(o,this.props.schema.target,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation))}let u=this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation);return u&&(u.includes("")||u.includes(""))&&(u=j.Utils.renderTextWithA(u)),M.createElement(N.Box,{component:"span",style:{...this.props.schema.controlStyle||void 0},sx:this.props.schema.href?Ii.link:void 0,onClick:this.props.schema.href?()=>{const v=this.props.schema.href?this.getText(this.props.schema.href,!0):null;v&&(this.props.oContext.onBackEndCommand?this.props.oContext.onBackEndCommand({command:"link",url:v,target:this.props.schema.target||"_blank",close:this.props.schema.close}):Fi(v,this.props.schema.target||"_blank",`${this.props.oContext.adapterName}.${this.props.oContext.instance}`))}:null},u)}}const Bn=1024*1024,fe={paper:{width:"100%",marginBottom:16,backgroundColor:"rgba(255, 255, 255, 0.1)"},headerText:{width:"100%"},table:{minWidth:750},label:{display:"flex",justifyContent:"space-between"},title:{flex:"1 1 100%"},rootTool:{paddingLeft:16,paddingRight:8},silver:{opacity:.2},flex:{display:"flex",alignItems:"baseline"},filteredOut:{padding:10,display:"flex",textAlign:"center"},buttonEmpty:{width:34,display:"inline-block"},buttonCell:{whiteSpace:"nowrap"},dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},uploadDiv:{position:"relative",width:"100%",minHeight:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",minHeight:300,position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},tooltip:{pointerEvents:"none"}};function al(L,n,i){n=n||"key";const u=[];return Object.keys(L).forEach(v=>{const o={};o[n]=v,i?(o[i]=L[v],u.push(o)):u.push(Object.assign(o,L[v]))}),u}function Ri(L,n,i){n=n||"key";const u={};return L.forEach(v=>{let o=v[n];o==null&&(o=""),delete v[n],i?u[o]=v[i]:u[o]=v}),u}function ll(L,n){let i="";for(let u=0;u{i.filter&&(this.filterRefs[i.attr]=dt.createRef())}),this.refDiv=M.createRef()}async componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr)||[];let i;if(this.props.schema.objKeyName?i=al(n,this.props.schema.objKeyName,this.props.schema.objValueName):i=n,Array.isArray(i)||(i=[]),this.props.schema.encryptedAttributes){const u=await this.props.oContext.socket.getCompactSystemConfig();this.secret=(u==null?void 0:u.native.secret)||this.secret,n.forEach(v=>{this.props.schema.encryptedAttributes.forEach(o=>{v[o]&&(v[o]=ul(this.secret,v[o]))})})}this.setState({value:i,visibleValue:null,orderBy:"",order:"asc",iteration:0,filterOn:[],width:0},()=>this.validateUniqueProps())}componentWillUnmount(){this.typingTimer&&(clearTimeout(this.typingTimer),this.typingTimer=null),this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),super.componentWillUnmount()}itemTable(n,i,u){var p;const{schema:v}=this.props,o=(p=v.items)==null?void 0:p.find(a=>a.attr===n);if(!o)return null;const h={items:{[n]:o}};return M.createElement($t,{oContext:this.props.oContext,alive:this.props.alive,arrayIndex:u,changed:this.props.changed,common:this.props.common,expertMode:this.props.expertMode,custom:!0,data:i,globalData:this.props.data,index:u+this.state.iteration,onChange:(a,d)=>{const e=JSON.parse(JSON.stringify(this.state.value));e[u][a]=d,this.setState({value:e},()=>{this.validateUniqueProps(),this.onChangeWrapper(e,!0)})},onError:(a,d)=>this.onError(a,d),originalData:this.props.originalData,schema:h,table:!0,themeName:this.props.themeName})}validateUniqueProps(){if(this.props.schema.uniqueColumns)for(const n of this.props.schema.uniqueColumns){const i=[];this.state.value.find(v=>{const o=v[n];return i.includes(o)?(this.onError(n,"is not unique"),this.setState({errorMessage:j.I18n.t('Non-allowed duplicate entry "%s" in column "%s"',o,n)}),!0):(i.push(o),!1)})||(this.onError(n,null),this.setState({errorMessage:""}))}}static descendingComparator(n,i,u){return i[u]n[u]?1:0}static getComparator(n,i){return n==="desc"?(u,v)=>Ve.descendingComparator(u,v,i):(u,v)=>-Ve.descendingComparator(u,v,i)}static getFilterValue(n){var i,u,v;return(v=(u=(i=n==null?void 0:n.current)==null?void 0:i.children[0])==null?void 0:u.children[0])==null?void 0:v.value}static setFilterValue(n,i){return n.current.children[0].children[0].value=i}handleRequestSort=(n,i=!1)=>{const{order:u,orderBy:v}=this.state,h=i?u:v===n&&u==="asc"?"desc":"asc",p=this.stableSort(h,n);JSON.stringify(p)!==JSON.stringify(this.state.value)&&this.setState({value:p,order:h,orderBy:n,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,p))};stableSort=(n,i)=>{const{value:u}=this.state,v=Ve.getComparator(n,i),o=u.map((h,p)=>({el:h,index:p}));return o.sort((h,p)=>{const a=v(h.el,p.el);return a!==0?a:h.index-p.index}),o.map(h=>h.el)};renderShowHideFilter(n){return n.filter?M.createElement(N.IconButton,{title:j.I18n.t("ra_Show/hide filter input"),size:"small",onClick:()=>{const i=[...this.state.filterOn],u=this.state.filterOn.indexOf(n.attr);u===-1?i.push(n.attr):i.splice(u,1),this.setState({filterOn:i},()=>{u&&Ve.getFilterValue(this.filterRefs[n.attr])&&(Ve.setFilterValue(this.filterRefs[n.attr],""),this.applyFilter())})}},this.state.filterOn.includes(n.attr)?M.createElement(Z.FilterAltOff,null):M.createElement(Z.FilterAlt,null)):null}renderImportExportButtons(n){return M.createElement(M.Fragment,null,!n.noDelete&&n.import?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Import data from %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.setState({showImportDialog:!0})},M.createElement(Z.UploadFile,null))):null,n.export?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Export data to %s file","CSV"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onExport()},M.createElement(Z.Download,null))):null,n.noDelete?null:M.createElement(N.IconButton,{disabled:!0,size:"small"},M.createElement(Z.Delete,null)))}renderAddButton(n){return M.createElement(N.Tooltip,{title:n?j.I18n.t("ra_Cannot add items with set filter"):j.I18n.t("ra_Add row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",color:"primary",disabled:!!n&&!this.props.schema.allowAddByFilter,onClick:this.onAdd},M.createElement(Z.Add,null))))}enhancedTableHead(n,i){var h;const{schema:u}=this.props,{order:v,orderBy:o}=this.state;return M.createElement(N.TableHead,null,M.createElement(N.TableRow,null,(h=u.items)==null?void 0:h.map((p,a)=>this.renderOneFilter({schema:u,style:{width:p.width},showAddButton:!a&&!u.noDelete,headCell:p,order:v,orderBy:o,index:a,doAnyFilterSet:i})),!u.noDelete&&M.createElement(N.TableCell,{style:{paddingLeft:20,paddingRight:20,width:n,textAlign:"right"},padding:"checkbox"},this.renderImportExportButtons(u))))}onDelete=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value));i.splice(n,1),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onExport(){const{schema:n}=this.props,{value:i}=this.state,v=[n.items.map(p=>p.attr).join(";")];i.forEach(p=>{const a=[];n.items.forEach(d=>{var e;(e=p[d.attr])!=null&&e.includes(";")?a.push(`"${p[d.attr]}"`):a.push(p[d.attr]===void 0||p[d.attr]===null?"":p[d.attr])}),v.push(a.join(";"))});const o=document.createElement("a");o.setAttribute("href",`data:text/csv;charset=utf-8,${encodeURIComponent(v.join(` `))}`);const h=new Date;o.setAttribute("download",`${h.getFullYear()}_${(h.getMonth()+1).toString().padStart(2,"0")}_${h.getDate().toString().padStart(2,"0")}_${this.props.oContext.adapterName}.${this.props.oContext.instance}_${this.props.attr}.csv`),o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o)}onImport(n){var h;const i=n.split(` -`).map(d=>d.replace("\r","").trim()),{schema:u}=this.props,v=i.shift().split(";").filter(d=>d&&u.items.find(s=>s.attr===d)),o=[];i.forEach(d=>{const s=d.split(";"),p={};for(let e=0;ea.attr===v[e]);l&&l.type==="number"?r=parseFloat(t):r=t}else r=t;p[v[e]]=r}o.push(p)}),o.length?(h=this.state.value)!=null&&h.length?this.setState({showTypeOfImportDialog:o,showImportDialog:!1}):this.setState({value:o,showImportDialog:!1}):window.alert("ra_No data found in file")}onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),u=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof u[this.props.schema.clone]=="string"){let v=1,o=u[this.props.schema.clone];const h=o.match(/(\d+)$/);for(h?(o=o.replace(h[0],""),v=parseInt(h[0],10)+1):o+="_";i.find(d=>d[this.props.schema.clone]===o+v.toString());)v++;u[this.props.schema.clone]=`${u[this.props.schema.clone]}_${v}`}i.splice(n,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onChangeWrapper=(n,i)=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout((u,v)=>{this.typingTimer=null;let o;if(this.props.schema.encryptedAttributes){const h=JSON.parse(JSON.stringify(u));if(h.forEach(d=>{this.props.schema.encryptedAttributes.forEach(s=>{d[s]&&(d[s]=ll(this.secret,d[s]))})}),this.props.schema.objKeyName){const d=Oi(h,this.props.schema.objKeyName,this.props.schema.objValueName);o=this.onChange(this.props.attr,d)}else o=this.onChange(this.props.attr,h)}else if(this.props.schema.objKeyName){const h=Oi(JSON.parse(JSON.stringify(u)),this.props.schema.objKeyName,this.props.schema.objValueName);o=this.onChange(this.props.attr,h)}else o=this.onChange(this.props.attr,u);o instanceof Promise&&o.catch(h=>console.error(`Cannot save: ${h}`)),v&&(this.applyFilter(!1,u),this.handleRequestSort(this.state.orderBy,!0))},300,n,i)};onAdd=()=>{var v;const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),u=(v=n.items)==null?void 0:v.reduce((o,h)=>{let d;return h.defaultFunc?this.props.custom?d=h.defaultFunc?this.executeCustom(h.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:d=h.defaultFunc?this.execute(h.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:d=h.default===void 0?null:h.default,o[h.attr]=d,o},{});i.push(u),this.setState({value:i},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};isAnyFilterSet(){return!!Object.keys(this.filterRefs).find(n=>Ve.getFilterValue(this.filterRefs[n]))}applyFilter=(n,i,u)=>{i=i||this.state.value;let v=i.map((o,h)=>h);if(Object.keys(this.filterRefs).forEach(o=>{let h=Ve.getFilterValue(this.filterRefs[o]);!n&&h?(h=h.toLowerCase(),v=v.filter(d=>i[d]&&i[d][o]&&i[d][o].toLowerCase().includes(h))):this.filterRefs[o].current&&Ve.setFilterValue(this.filterRefs[o],"")}),v.length===i.length&&(v=null),v===null&&this.state.visibleValue===null){u&&u();return}JSON.stringify(v)!==JSON.stringify(this.state.visibleValue)?this.setState({visibleValue:v},()=>u&&u()):u&&u()};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n-1,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n+1,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onDrop(n){const i=n[0],u=new FileReader;u.onabort=()=>console.log("file reading was aborted"),u.onerror=()=>console.log("file reading has failed"),u.onload=()=>{if(i.size>Bn){window.alert(j.I18n.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(Bn/1024)));return}const v=new Uint8Array(u.result).reduce((o,h)=>o+String.fromCharCode(h),"");this.onImport(v)},u.readAsArrayBuffer(i)}showTypeOfImportDialog(){return this.state.showTypeOfImportDialog?k.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showTypeOfImportDialog:!1}),maxWidth:"md"},k.createElement(N.DialogTitle,null,j.I18n.t("ra_Append or replace?")),k.createElement(N.DialogContent,null,j.I18n.t("ra_Append %s entries or replace existing?",this.state.showTypeOfImportDialog.length)),k.createElement(N.DialogActions,null,k.createElement(N.Button,{variant:"contained",color:"primary",autoFocus:!0,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.value));this.state.showTypeOfImportDialog.forEach(i=>n.push(i)),this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Append")),k.createElement(N.Button,{variant:"contained",color:"secondary",autoFocus:!0,onClick:()=>{const n=this.state.showTypeOfImportDialog;this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Replace")))):null}showImportDialog(){return this.state.showImportDialog?k.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showImportDialog:!1}),sx:{"& .MuiDialog-paper":{minHeight:500}},maxWidth:"md",fullWidth:!0},k.createElement(N.DialogTitle,null,j.I18n.t("ra_Import from %s","CSV")),k.createElement(N.DialogContent,null,k.createElement(Pi,{multiple:!1,accept:{"text/csv":[".csv"]},maxSize:Bn,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(n,i)=>{this.setState({uploadFile:!1}),n.length?this.onDrop(n):window.alert(i&&i[0]&&i[0].errors&&i[0].errors[0]&&i[0].errors[0].message||j.I18n.t("ra_Cannot upload"))}},({getRootProps:n,getInputProps:i})=>k.createElement("div",{style:{...fe.uploadDiv,...this.state.uploadFile==="dragging"?fe.uploadDivDragging:void 0,...fe.dropZone,...this.state.icon?void 0:fe.dropZoneEmpty},...n()},k.createElement("input",{...i()}),k.createElement("div",{style:fe.uploadCenterDiv},k.createElement("div",{style:fe.uploadCenterTextAndIcon},k.createElement(Z.UploadFile,{style:fe.uploadCenterIcon}),k.createElement("div",{style:fe.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog"))))))),k.createElement(N.DialogActions,null,k.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({showImportDialog:!1}),color:"primary",startIcon:k.createElement(Z.Close,null)},j.I18n.t("Cancel")))):null}renderOneFilter(n){return k.createElement(N.TableCell,{key:`${n.headCell.attr}_${n.index}`,style:n.style,align:"left",sortDirection:n.orderBy===n.headCell.attr?n.order:!1},k.createElement("div",{style:{...fe.flex,...n.schema.showFirstAddOnTop?{flexDirection:"column"}:void 0}},n.showAddButton?this.renderAddButton(n.doAnyFilterSet):null,n.headCell.sort&&k.createElement(N.TableSortLabel,{active:!0,style:n.orderBy!==n.headCell.attr?fe.silver:void 0,direction:n.orderBy===n.headCell.attr?n.order:"asc",onClick:()=>this.handleRequestSort(n.headCell.attr)}),n.headCell.filter&&this.state.filterOn.includes(n.headCell.attr)?k.createElement(N.TextField,{variant:"standard",ref:this.filterRefs[n.headCell.attr],onChange:()=>this.applyFilter(),title:j.I18n.t("ra_You can filter entries by entering here some text"),slotProps:{input:{endAdornment:Ve.getFilterValue(this.filterRefs[n.headCell.attr])&&k.createElement(N.InputAdornment,{position:"end"},k.createElement(N.IconButton,{size:"small",tabIndex:-1,onClick:()=>{Ve.setFilterValue(this.filterRefs[n.headCell.attr],""),this.applyFilter()}},k.createElement(Z.Close,null)))}},fullWidth:!0,placeholder:this.getText(n.headCell.title)}):k.createElement("span",{style:fe.headerText},this.getText(n.headCell.title)),this.renderShowHideFilter(n.headCell)))}enhancedFilterCard(){var h;const{schema:n}=this.props,{order:i,orderBy:u}=this.state;let v;this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1});const o=!n.noDelete&&n.import||n.export;return o||n.items.find(d=>d.sort||d.filter)?k.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},k.createElement(N.Card,null,k.createElement(N.Paper,{style:fe.paper},k.createElement(N.Accordion,{style:fe.paper},k.createElement(N.AccordionSummary,{expandIcon:k.createElement(Z.ExpandMore,null)},k.createElement(N.Typography,null,j.I18n.t("ra_Filter and Data Actions"))),k.createElement(N.AccordionDetails,null,k.createElement(N.Table,null,k.createElement(N.TableBody,null,((h=n.items)==null?void 0:h.find(d=>d.sort||d.filter))&&n.items.map((d,s)=>k.createElement(N.TableRow,{key:`${d.attr}_${s}`},this.renderOneFilter({schema:n,style:v,showAddButton:!1,headCell:d,order:i,orderBy:u,index:s,doAnyFilterSet:!1}))),o?k.createElement(N.TableRow,null,k.createElement(N.TableCell,{align:"left",style:v},k.createElement("span",{style:fe.headerText},j.I18n.t("ra_Actions"))),k.createElement(N.TableCell,{style:v},this.renderImportExportButtons(n))):null))))))):null}enhancedBottomCard(){const{schema:n}=this.props;let i;this.props.schema.compact&&(i={paddingTop:1,paddingBottom:1});const u=this.isAnyFilterSet();return k.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},k.createElement(N.Card,null,k.createElement(N.Paper,{style:fe.paper},k.createElement(N.Table,null,k.createElement(N.TableBody,null,k.createElement(N.TableRow,null,k.createElement(N.TableCell,{colSpan:n.items.length+1,style:i},this.renderAddButton(u))))))))}renderCards(){const{schema:n}=this.props;let{visibleValue:i}=this.state,u;this.props.schema.compact&&(u={paddingTop:1,paddingBottom:1}),i||=this.state.value.map((o,h)=>h);const v=this.isAnyFilterSet();return k.createElement(N.Grid2,{container:!0},this.showImportDialog(),this.showTypeOfImportDialog(),this.enhancedFilterCard(),i.map((o,h)=>{var d;return k.createElement(N.Grid2,{key:`${o}_${h}`,size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},k.createElement(N.Card,null,k.createElement(N.Paper,{style:fe.paper},k.createElement(N.Table,null,k.createElement(N.TableBody,null,(d=n.items)==null?void 0:d.map(s=>k.createElement(N.TableRow,{key:`${s.attr}_${o}`},k.createElement(N.TableCell,{align:"left",style:u},k.createElement("span",{style:fe.headerText},this.getText(s.title))),k.createElement(N.TableCell,{align:"left",style:u},this.itemTable(s.attr,this.state.value[o],o)))),!n.noDelete&&k.createElement(N.TableRow,null,k.createElement(N.TableCell,{align:"left",style:u},k.createElement("span",{style:fe.headerText},this.getText("Actions"))),k.createElement(N.TableCell,{align:"left",style:u},!v&&!this.state.orderBy?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement("span",null,k.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(o),disabled:h===0},k.createElement(Z.ArrowUpward,null)))):null,!v&&!this.state.orderBy?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Move down"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement("span",null,k.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveDown(o),disabled:h===i.length-1},k.createElement(Z.ArrowDownward,null)))):null,k.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:this.onDelete(o)},k.createElement(Z.Delete,null))),this.props.schema.clone?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:this.onClone(o)},k.createElement(Z.ContentCopy,null))):null)))))))}),this.enhancedBottomCard())}renderTable(){const{schema:n}=this.props;let{visibleValue:i}=this.state;i=i||this.state.value.map((o,h)=>h);const u=this.isAnyFilterSet();let v;return this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1}),k.createElement(N.Paper,{style:fe.paper},this.showImportDialog(),this.showTypeOfImportDialog(),n.label?k.createElement("div",{style:fe.label},k.createElement(N.Toolbar,{variant:"dense",style:fe.rootTool},k.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)))):null,k.createElement(N.TableContainer,null,k.createElement(N.Table,{style:fe.table,size:"small"},this.enhancedTableHead(!u&&!this.state.orderBy?120:64,u),k.createElement(N.TableBody,null,i.map((o,h)=>{var d;return k.createElement(N.TableRow,{hover:!0,key:`${o}_${h}`},(d=n.items)==null?void 0:d.map(s=>k.createElement(N.TableCell,{key:`${s.attr}_${o}`,align:"left",style:v},this.itemTable(s.attr,this.state.value[o],o))),!n.noDelete&&k.createElement(N.TableCell,{align:"left",style:{...v,...fe.buttonCell}},!u&&!this.state.orderBy?h?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(o)},k.createElement(Z.ArrowUpward,null))):k.createElement("div",{style:fe.buttonEmpty}):null,!u&&!this.state.orderBy?hthis.onMoveDown(o)},k.createElement(Z.ArrowDownward,null))):k.createElement("div",{style:fe.buttonEmpty}):null,k.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:this.onDelete(o)},k.createElement(Z.Delete,null))),this.props.schema.clone?k.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},k.createElement(N.IconButton,{size:"small",onClick:this.onClone(o)},k.createElement(Z.ContentCopy,null))):null))}),!n.noDelete&&i.length>=(n.showSecondAddAt||5)?k.createElement(N.TableRow,null,k.createElement(N.TableCell,{colSpan:n.items.length+1,style:{...v}},this.renderAddButton(u))):null)),!i.length&&this.state.value.length?k.createElement("div",{style:fe.filteredOut},k.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},j.I18n.t("ra_All items are filtered out"),k.createElement(N.IconButton,{size:"small",onClick:()=>this.applyFilter(!0)},k.createElement(Z.Close,null)))):null),n.help?k.createElement(N.FormHelperText,{style:{paddingLeft:16}},this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null,this.state.errorMessage?k.createElement("div",{style:{display:"flex",padding:"5px"}},k.createElement(Z.Warning,{color:"error"}),k.createElement("span",{style:{color:"red",alignSelf:"center"}},this.state.errorMessage)):null)}componentDidUpdate(){var n;(n=this.refDiv.current)!=null&&n.clientWidth&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}getCurrentBreakpoint(){return this.state.width?this.state.width<600?"xs":this.state.width<900?"sm":this.state.width<1200?"md":this.state.width<1536?"lg":"xl":"md"}renderItem(){const{schema:n}=this.props;if(!this.state.value||!Array.isArray(this.state.value))return null;const i=this.getCurrentBreakpoint();let u;return i&&(n.useCardFor||["xs"]).includes(i)?u=this.renderCards():u=this.renderTable(),k.createElement("div",{ref:this.refDiv,style:{width:"100%"}},u)}}const ln={indeterminate:{opacity:.5},label:{width:"100%",fontSize:14,marginBottom:2},helper:{width:"100%",fontSize:12},error:{width:"100%",fontSize:12,color:"#FF0000"}};class hl extends K{updateTimeout=null;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({value:n,oldValue:n,jsonError:!1});return}this.setState({value:n,oldValue:n,jsonError:this.validateJson(n)})}validateJson(n){let i=!1;if(this.props.schema.validateJson&&(n||!this.props.schema.allowEmpty))try{JSON.parse(n)}catch(u){console.log("Error in JSON",u),i=!0}return i}static getDerivedStateFromProps(n,i){if(n.oContext.multiEdit&&i.value===K.DIFFERENT_VALUE)return{value:K.DIFFERENT_VALUE};let u=K.getValue(n.data,n.attr);return u!=null&&(u=u.toString()),u==null||u!==i.value&&u!==i.oldValue?{value:u}:null}renderItem(n,i){const u=Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE;if(this.props.schema.time){let h="";return typeof this.state.value=="number"?this.state.value&&this.state.value<9466596e5?h=new Date(this.state.value*1e3).toLocaleString():h=new Date(this.state.value).toLocaleString():typeof this.state.value=="string"&&(h=new Date(this.state.value).toLocaleString()),k.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:h,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{readOnly:!0}},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=null),u){const h=K.getValue(this.props.data,this.props.attr),d=(h==null?void 0:h.filter(s=>s||s===0).map(s=>({label:s.toString()||"",value:s})))||[];return d.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),k.createElement(N.Autocomplete,{style:ln.indeterminate,fullWidth:!0,value:d[0],onChange:(s,p)=>{const e=p?p.value:"",t=this.onChange(this.props.attr,e,()=>{this.setState({value:e,oldValue:e,jsonError:this.validateJson(p)})});t instanceof Promise&&t.catch(r=>console.error(`Cannot set value: ${r}`))},options:d,getOptionLabel:s=>s.label,renderInput:s=>k.createElement(N.TextField,{variant:"standard",...s,error:!!n,placeholder:this.getText(this.props.schema.placeholder),slotProps:{htmlInput:{...s.inputProps,maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}let v,o;if((this.props.schema.readOnly||i)&&this.props.schema.copyToClipboard?(this.props.schema.minRows>1&&(o={position:"absolute",right:3,top:20,zIndex:1e3}),v=k.createElement(N.IconButton,{tabIndex:-1,style:o,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.value),window.alert(j.I18n.t("ra_Copied"))}},k.createElement(j.IconCopy,null))):!this.props.schema.readOnly&&!i&&this.state.value&&!this.props.schema.noClearButton&&(this.props.schema.minRows>1&&(o={position:"absolute",right:3,top:20,zIndex:1e3}),v=k.createElement(N.IconButton,{style:o,size:"small",tabIndex:-1,onClick:()=>this.setState({value:"",oldValue:this.state.value},()=>this.onChange(this.props.attr,""))},k.createElement(Z.Close,null)),this.props.schema.minRows<=1&&(v=k.createElement(N.InputAdornment,{position:"end"},v))),this.props.schema.minRows>1){const h=this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation);return k.createElement("div",{style:{width:"100%",position:"relative"}},this.props.schema.label?k.createElement("div",{style:ln.label},this.getText(this.props.schema.label)):null,k.createElement(N.TextareaAutosize,{style:{width:"100%",resize:"vertical",backgroundColor:this.props.oContext.themeType==="dark"?"#363636":"#cccccc",color:this.props.oContext.themeType==="dark"?"#fff":"#111"},minRows:this.props.schema.minRows,maxRows:this.props.schema.maxRows,value:this.state.value===null||this.state.value===void 0?"":this.state.value,disabled:!!i,readOnly:this.props.schema.readOnly||!1,onChange:d=>{const s=d.target.value;this.setState({value:s,oldValue:this.state.value,jsonError:this.validateJson(s)},()=>this.onChange(this.props.attr,s||""))},placeholder:this.getText(this.props.schema.placeholder)}),h||n||this.state.jsonError?k.createElement("div",{style:n?ln.error:ln.helper},n||(this.state.jsonError?j.I18n.t("ra_Invalid JSON"):h)):null)}return k.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:v}},onChange:h=>{const d=h.target.value;this.setState({value:d,oldValue:this.state.value,jsonError:this.validateJson(d)},()=>this.onChange(this.props.attr,d))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const cl={fullWidth:{width:"100%"}};class pl extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>{if(typeof i=="object"){const u=i;this.setState({text:u.text||"",style:u.style,icon:u.icon,iconStyle:u.iconStyle})}else typeof i=="string"&&this.setState({text:i||""})}).catch(i=>console.error(`Cannot send command: ${i}`))}}getLocalContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const i=this.getLocalContext();(i!==this.localContext||!this.initialized)&&(this.localContext=i,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}if(this.state.text===void 0)return null;let n=null;return this.state.icon&&(n=ht(this.state.icon,{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}),n||(n=k.createElement(j.Icon,{src:this.state.icon,style:{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}}))),this.props.schema.container==="text"?k.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?k.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.text),window.alert(j.I18n.t("ra_Copied"))}},k.createElement(j.IconCopy,null)):void 0}},value:this.state.text,label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):k.createElement("div",{style:{...cl.fullWidth,...this.state.style||void 0}},n,this.props.schema.container==="html"?k.createElement("span",{dangerouslySetInnerHTML:{__html:this.state.text||""}}):this.state.text)}}class dl extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){const u=this.props.schema.returnFormat!=="HH:mm:ss",v=new Date(Date.parse(`Thu, 01 Jan 1970 ${this.state.value||"00:00:00"}`));return k.createElement(Wi.TimePicker,{sx:o=>({width:"100%",borderBottom:`1px solid ${o.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${o.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),ampm:this.props.oContext.systemConfig.dateFormat.includes("/"),timeSteps:this.props.schema.timeSteps||this.props.schema.timesteps||{hours:1,minutes:5,seconds:5},format:this.props.schema.format||"HH:mm:ss",disabled:!!i,value:v,onChange:o=>{let h;h=o instanceof Date?o.toTimeString().split(" ")[0]:o.toTimeString(),u&&(h=h.split(":").slice(0,2).join(":")),this.setState({value:h},()=>this.onChange(this.props.attr,this.state.value))},views:this.props.schema.views||["hours","minutes","seconds"],label:this.getText(this.props.schema.label)})}}function fl(L,n){let i;return n&&L.substring(0,n.length)===n?i=L.substring(n.length+1):i=L,i=i.replace(/\./g,"/").replace(/_/g," "),i}class gl extends K{componentDidMount(){var i;super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);if(!n&&((i=this.props.customObj)!=null&&i._id)){const u=fl(this.props.customObj._id,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`);this.setState({value:u})}else this.setState({value:n||""})}renderItem(n,i){return k.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},value:this.state.value,error:!!n,disabled:i,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),onChange:u=>{const v=u.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,v))}})}}class ml extends K{async componentDidMount(){var i;super.componentDidMount();const n=await this.props.oContext.socket.getObject("system.meta.uuid");this.setState({uuid:((i=n==null?void 0:n.native)==null?void 0:i.uuid)||"unknown"})}renderItem(n,i){return k.createElement(N.TextField,{variant:"standard",fullWidth:!0,error:!!n,disabled:!!i,slotProps:{htmlInput:{readOnly:!0},input:{endAdornment:k.createElement(N.IconButton,{tabIndex:-1,onClick:()=>{j.Utils.copyToClipboard(this.state.uuid),window.alert(j.I18n.t("ra_Copied %s",this.state.uuid))}},k.createElement(Z.ContentCopy,null))}},value:this.state.uuid||"",label:this.getText(this.props.schema.label)||j.I18n.t("ra_Serial number (UUID)"),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const Ni={icon:{width:16,height:16,marginRight:8}};class vl extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getUsers().then(n=>{const i={},u=j.I18n.getLanguage();this.props.schema.short?n.forEach(v=>{var o,h;return i[v._id]={color:(o=v.common)==null?void 0:o.color,icon:(h=v.common)==null?void 0:h.icon,name:j.Utils.getObjectNameFromObj(v,u)}}):n.forEach(v=>{var o,h;return i[v._id.replace(/^system\.user\./,"")]={color:(o=v.common)==null?void 0:o.color,icon:(h=v.common)==null?void 0:h.icon,name:j.Utils.getObjectNameFromObj(v,u)}}),this.setState({users:i})}).catch(n=>console.error(`Cannot get users: ${n}`))}renderItem(n,i){var v,o;const u=K.getValue(this.props.data,this.props.attr);return k.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.state.users&&this.props.schema.label?k.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.users?k.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:h=>{var d,s,p;return k.createElement("span",null,this.state.users&&((d=this.state.users[h])!=null&&d.icon)?k.createElement(j.Icon,{src:this.state.users&&((s=this.state.users[h])==null?void 0:s.icon),style:Ni.icon}):null,this.state.users&&((p=this.state.users[h])==null?void 0:p.name)||h||"")},style:{color:this.state.users&&((v=this.state.users[u])==null?void 0:v.color)||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users&&((o=this.state.users[u])==null?void 0:o.color),this.props.oContext.themeType)},onChange:h=>this.onChange(this.props.attr,h.target.value)},this.state.users&&Object.keys(this.state.users).map(h=>k.createElement(N.MenuItem,{style:{color:this.state.users[h].color||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users[h].color,this.props.oContext.themeType)},key:h,value:h},this.state.users[h].icon?k.createElement(j.Icon,{src:this.state.users[h].icon,style:Ni.icon}):null,this.state.users[h].name))):k.createElement(N.TextField,{variant:"standard",error:!!n,disabled:!!i,value:u,onChange:h=>this.onChange(this.props.attr,h.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?k.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class yl extends K{async componentDidMount(){super.componentDidMount();const n=await ss(()=>import("./index-CttBOMyq.js").then(i=>i.i),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url);this.setState({QRCode:n.default})}renderItem(){const n=this.state.QRCode;return n?k.createElement(n,{value:this.props.schema.data,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}):null}}const bl={accordion:$s,alive:Ts,autocomplete:_s,autocompleteSendTo:ks,certCollection:Fs,certificate:Ls,certificates:Is,checkbox:Rs,checkLicense:ct,chip:fi,chips:fi,color:Ws,coordinates:Hs,cron:Ms,custom:Ut,datePicker:zs,deviceManager:js,divider:nl,file:eo,fileSelector:mn,func:to,header:rl,image:ro,imageSendTo:io,instance:so,interface:oo,ip:no,jsonEditor:Fa,language:Oa,license:Na,number:Ba,oauth2:Pa,objectId:Wa,password:Ha,pattern:za,port:Va,qrCode:yl,room:Ua,select:Ka,selectSendTo:Ya,sendto:_i,sendTo:_i,setState:Za,slider:qa,state:tl,staticImage:sl,staticInfo:ol,staticLink:Ri,staticText:Ri,table:Ve,text:hl,textSendTo:pl,timePicker:dl,topic:gl,uuid:ml,user:vl},Qe={fullWidth:{width:"100%"},paper:{margin:1,width:"auto !important",overflowY:"auto",paddingBottom:1},paperWithIcons:{height:"calc(100vh - 259px) !important"},paperWithoutIcons:{height:"calc(100vh - 235px) !important"},padding:{padding:"10px"},heading:{},primary:L=>({backgroundColor:L.palette.primary.main,color:L.palette.mode==="dark"?"inherit":"#FFF"}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class $t extends K{componentDidMount(){var n;super.componentDidMount(),(n=this.props.schema)!=null&&n.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(`${this.props.oContext.adapterName}.${this.props.attr}`)==="true"})}renderItems(n,i){return n?Object.keys(n).map(u=>{if(this.props.oContext.multiEdit&&n[u].noMultiEdit)return null;const v=n[u].type||"panel";let o,h="Use this.props.oContext.socket!";return v==="custom"?(n[u].url?o=Ut:this.props.oContext.customs&&this.props.oContext.customs[n[u].component]?o=this.props.oContext.customs[n[u].component]:(console.error(`Cannot find custom component: ${n[u].component}`),o=K),h=this.props.oContext.socket):v==="panel"?o=$t:o=bl[v]||K,k.createElement(o,{socket:h,globalData:this.props.globalData,oContext:this.props.oContext,key:`${u}_${this.props.index===void 0?"":this.props.index}`,index:this.props.index,changed:this.props.changed,arrayIndex:this.props.arrayIndex,expertMode:this.props.expertMode,commandRunning:this.props.commandRunning,style:Qe.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onError:this.props.onError,onChange:this.props.onChange,disabled:i,customObj:this.props.customObj,custom:this.props.custom,schema:n[u],attr:u,table:this.props.table})}):null}render(){const n=this.props.schema;if(!n)return null;const{disabled:i,hidden:u}=this.calculate(n),v=this.props.schema.items,o=this.props.schema.style||{};if(u){if(n.hideOnlyControl){const d=k.createElement(N.Grid2,{size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:j.Utils.getStyle(this.props.oContext.theme,{marginBottom:0,textAlign:"left"},o,this.props.oContext.themeType==="dark"&&n.darkStyle)});return n.newLine?k.createElement(k.Fragment,null,k.createElement("div",{style:{flexBasis:"100%",height:0}}),d):d}return null}if(this.props.table)return this.renderItems(v,i);if(this.props.custom)return k.createElement(N.Grid2,{key:`${this.props.attr}_${this.props.index}`,container:!0,style:Qe.fullWidth,columnSpacing:2,rowSpacing:1,sx:o},this.renderItems(v,i));let h;if(n.collapsable)h=k.createElement(N.Accordion,{key:`${this.props.attr}_${this.props.index}`,style:Qe.fullWidth,expanded:!!this.state.expanded,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.oContext.adapterName}.${this.props.attr}`,this.state.expanded?"false":"true"),this.setState({expanded:!this.state.expanded})}},k.createElement(N.AccordionSummary,{expandIcon:k.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,o,this.props.oContext.themeType&&n.darkStyle,n.color==="primary"?Qe.primary:n.color==="secondary"&&Qe.secondary,{width:"100%"})},k.createElement(N.Typography,{style:Qe.heading},this.getText(n.label))),k.createElement(N.AccordionDetails,null,k.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:{...o,width:"100%",padding:"10px"}},this.renderItems(v,i))));else{const d=j.Utils.getStyle(this.props.oContext.theme,this.props.style,o,{width:"100%"},this.props.isParentTab&&Qe.paper,this.props.isParentTab&&(this.props.withoutSaveButtons?this.props.withIcons?{height:"calc(100% - 88px) !important"}:{height:"calc(100% - 64px) !important"}:this.props.withIcons?Qe.paperWithIcons:Qe.paperWithoutIcons));h=k.createElement(N.Box,{component:"div",key:`${this.props.attr}_${this.props.index}`,className:this.props.className,sx:d},k.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:j.Utils.getStyle(this.props.oContext.theme,{width:"100%"},this.props.isParentTab&&Qe.padding,this.props.schema.innerStyle)},this.renderItems(v,i)))}if(!this.props.isParentTab){const d=k.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:{marginBottom:0,textAlign:"left",...o}},h);return n.newLine?k.createElement(k.Fragment,null,k.createElement("div",{style:{flexBasis:"100%",height:0}}),d):d}return h}}const un={tabs:{height:"100%",width:"100%"},panel:{width:"100%",display:"block"},panelWithIcons:{height:"calc(100% - 72px)"},panelWithoutIcons:{height:"calc(100% - 48px)"}};class wl extends K{resizeTimeout=null;refDiv;constructor(n){super(n);let i;if(this.props.root){const u=(window.location.hash||"").replace(/^#/,"").split("/");if(u.length>=3&&u[1]==="config"){const v=u[3],o=parseInt(v,10);v&&o.toString()===v?o>=0&&o{const n=(window.location.hash||"").replace(/^#/,"").split("/");if(n.length>3&&n[1]==="config"){const i=n[3],u=parseInt(i,10);let v;u.toString()===i?u>=0&&u{this.setState({initialBreakpoint:n})},50),n}return this.state.initialBreakpoint}componentDidUpdate(){var n;!this.state.initialBreakpoint&&((n=this.refDiv.current)!=null&&n.clientWidth)&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}onMenuChange(n){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.${this.props.oContext.adapterName}`,n),this.setState({tab:n},()=>{if(this.props.root){const i=(window.location.hash||"").split("/");i.length>=3&&i[1]==="config"&&(i[3]=this.state.tab,window.location.hash=i.join("/"))}})}render(){const n=this.props.schema.items;let i=!1;const u=[];Object.keys(n).map(h=>{let d;if(n[h].expertMode&&!this.props.expertMode)return;if(this.props.custom){if(this.executeCustom(n[h].hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData))return;d=this.executeCustom(n[h].disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData)}else{if(this.execute(n[h].hidden,!1,this.props.data,this.props.index,this.props.globalData))return;d=this.execute(n[h].disabled,!1,this.props.data,this.props.index,this.props.globalData)}const s=this.getIcon(n[h].icon);i=i||!!s,u.push({icon:s,disabled:d,label:this.getText(n[h].label),name:h})}),u.find(h=>h.name===this.state.tab)||setTimeout(()=>this.setState({tab:u[0].name}),50);const v=this.getCurrentBreakpoint();let o;return v==="xs"&&u.length>2?o=k.createElement(N.Toolbar,{style:{top:2,backgroundColor:this.props.oContext.themeType==="dark"?"#222":"#DDD"},variant:"dense"},k.createElement(N.IconButton,{onClick:h=>this.setState({openMenu:h.currentTarget})},k.createElement(Z.Menu,null)),this.state.openMenu?k.createElement(N.Menu,{open:!0,anchorEl:this.state.openMenu,onClose:()=>this.setState({openMenu:null})},u.map(h=>k.createElement(N.MenuItem,{disabled:h.disabled,key:h.name,onClick:()=>{this.setState({openMenu:null},()=>this.onMenuChange(h.name))},selected:h.name===this.state.tab},i?k.createElement(N.ListItemIcon,null,h.icon):null,h.label))):null):o=k.createElement(N.Tabs,{variant:"scrollable",scrollButtons:"auto",style:this.props.schema.tabsStyle,value:this.state.tab,onChange:(h,d)=>this.onMenuChange(d)},u.map(h=>k.createElement(N.Tab,{id:h.name,wrapped:!0,disabled:h.disabled,key:h.name,value:h.name,iconPosition:this.props.schema.iconPosition||"start",icon:h.icon,label:h.label}))),k.createElement("div",{style:un.tabs,ref:this.refDiv},o,k.createElement($t,{oContext:this.props.oContext,withoutSaveButtons:this.props.withoutSaveButtons,isParentTab:!0,changed:this.props.changed,key:this.state.tab,expertMode:this.props.expertMode,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,commandRunning:this.props.commandRunning,style:{...un.panel,...i?un.panelWithIcons:un.panelWithoutIcons},common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onChange:this.props.onChange,onError:this.props.onError,customObj:this.props.customObj,custom:this.props.custom,schema:n[this.state.tab],table:this.props.table,withIcons:i}))}}const Cl={root:{width:"100%",height:"100%"}};class cn extends pt.Component{forceUpdateHandlers;errorTimeout=null;errorCached=null;oContext;constructor(n){super(n),this.state={originalData:JSON.stringify(this.props.data),changed:!1,errors:{},updateData:this.props.updateData||0,systemConfig:null,alive:!1,commandRunning:!1,schema:JSON.parse(JSON.stringify(this.props.schema))},this.forceUpdateHandlers={},this.buildDependencies(this.state.schema),this.readData()}static getDerivedStateFromProps(n,i){return n.updateData!==i.updateData?{updateData:n.updateData,originalData:JSON.stringify(n.data),schema:JSON.parse(JSON.stringify(n.schema))}:null}static async loadI18n(n,i,u){if(i===!0||i&&typeof i=="string"){const v=j.I18n.getLanguage(),o=typeof i=="string"?i:"i18n";let h=await n.fileExists(`${u}.admin`,`${o}/${v}.json`),d;if(h?d=`${o}/${v}.json`:(h=await n.fileExists(`${u}.admin`,`${o}/${v}/translations.json`),h?d=`${o}/${v}/translations.json`:v!=="en"&&(h=await n.fileExists(`${u}.admin`,`${o}/en.json`),h?d=`${o}/en.json`:(h=await n.fileExists(`${u}.admin`,`${o}/en/translations.json`),h&&(d=`${o}/en/translations.json`)))),d){const s=await n.readFile(`${u}.admin`,d);let p;s.file!==void 0?p=s.file:p=s;try{const e=JSON.parse(p);j.I18n.extendTranslations(e,v)}catch(e){return console.error(`Cannot parse language file "${u}.admin/${d}: ${e}`),""}return d}return console.warn(`Cannot find i18n for ${u} / ${d}`),""}return i&&typeof i=="object"&&j.I18n.extendTranslations(i),""}onCommandRunning=n=>this.setState({commandRunning:n});readData(){this.props.socket.getCompactSystemConfig().then(n=>this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(i=>this.setState({systemConfig:n.common,alive:!!(i&&i.val)},()=>{this.updateContext(!0),this.props.custom||this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`,this.onAlive)}))).catch(n=>console.error(`Cannot read system config: ${n}`))}onAlive=(n,i)=>{!!(i!=null&&i.val)!==this.state.alive&&this.setState({alive:!!(i!=null&&i.val)})};onChange=(n,i,u,v)=>{if(this.props.onValueChange)this.props.onValueChange(n,i,v),u&&u();else if(n&&this.props.onChange){const o={changed:JSON.stringify(n)!==this.state.originalData};this.setState(o,()=>{this.props.onChange(n,o.changed,v),u&&u()})}else v&&this.props.onChange(null,null,v)};onError=(n,i)=>{this.errorCached=this.errorCached||JSON.parse(JSON.stringify(this.state.errors));const u=this.errorCached;i?u[n]=i:delete u[n],this.errorTimeout&&clearTimeout(this.errorTimeout),JSON.stringify(u)!==JSON.stringify(this.state.errors)?this.errorTimeout=setTimeout(()=>this.setState({errors:this.errorCached},()=>{this.errorTimeout=null,this.errorCached=null,this.props.onError(!!Object.keys(this.state.errors).length)}),50):this.errorCached=null};flatten(n,i){return i=i||{},n.items&&Object.keys(n.items).forEach(u=>{i[u]=n.items[u],this.flatten(n.items[u],i)}),i}buildDependencies(n){const i=this.flatten(n);Object.keys(i).forEach(u=>{var v,o,h,d,s,p,e,t,r,l;(v=i[u].confirm)!=null&&v.alsoDependsOn&&((o=i[u].confirm)==null||o.alsoDependsOn.forEach(a=>{if(!i[a])console.error(`[JsonConfigComponent] Attribute ${a} does not exist!`),a.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${a.replace(/^data\./,"")}" instead of "${a}"`);else{i[a].confirmDependsOn=i[a].confirmDependsOn||[];const c={...i[u],attr:u};c.confirm&&(c.confirm.cancel="Undo"),i[a].confirmDependsOn.push(c)}})),(h=i[u].onChange)!=null&&h.alsoDependsOn&&((d=i[u].onChange)==null||d.alsoDependsOn.forEach(a=>{if(!i[a])console.error(`[JsonConfigComponent] Attribute ${a} does not exist!`),a.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${a.replace(/^data\./,"")}" instead of "${a}"`);else{i[a].onChangeDependsOn=i[a].onChangeDependsOn||[];const c={...i[u],attr:u};i[a].onChangeDependsOn.push(c)}})),(s=i[u].hidden)!=null&&s.alsoDependsOn&&((p=i[u].hidden)==null||p.alsoDependsOn.forEach(a=>{if(!i[a])console.error(`[JsonConfigComponent] Attribute ${a} does not exist!`),a.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${a.replace(/^data\./,"")}" instead of "${a}"`);else{i[a].hiddenDependsOn=i[a].hiddenDependsOn||[];const c={...i[u],attr:u};i[a].hiddenDependsOn.push(c)}})),(e=i[u].label)!=null&&e.alsoDependsOn&&((t=i[u].label)==null||t.alsoDependsOn.forEach(a=>{if(!i[a])console.error(`[JsonConfigComponent] Attribute ${a} does not exist!`),a.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${a.replace(/^data\./,"")}" instead of "${a}"`);else{i[a].labelDependsOn=i[a].labelDependsOn||[];const c={...i[u],attr:u};i[a].labelDependsOn.push(c)}})),(r=i[u].help)!=null&&r.alsoDependsOn&&((l=i[u].help)==null||l.alsoDependsOn.forEach(a=>{if(!i[a])console.error(`[JsonConfigComponent] Attribute ${a} does not exist!`),a.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${a.replace(/^data\./,"")}" instead of "${a}"`);else{i[a].helpDependsOn=i[a].helpDependsOn||[];const c={...i[u],attr:u};i[a].helpDependsOn.push(c)}}))})}updateContext(n){this.oContext={DeviceManager:this.props.DeviceManager,adapterName:this.props.adapterName,changeLanguage:this.changeLanguage,common:this.props.common,customs:this.props.customs,dateFormat:this.props.dateFormat,embedded:this.props.embedded,forceUpdate:this.forceAttrUpdate,imagePrefix:this.props.imagePrefix,instance:this.props.instance,instanceObj:this.props.instanceObj,isFloatComma:this.props.isFloatComma,multiEdit:this.props.multiEdit,onBackEndCommand:this.props.onBackEndCommand,onCommandRunning:this.onCommandRunning,onValueChange:this.props.onValueChange,registerOnForceUpdate:this.registerOnForceUpdate,socket:this.props.socket,systemConfig:this.state.systemConfig,theme:this.props.theme,themeType:this.props.themeType,_themeName:this.props.themeName,updateData:this.state.updateData},n&&this.forceUpdate()}renderItem(n){return n.type==="tabs"?k.createElement(wl,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,onChange:this.onChange,onError:(i,u)=>this.onError(i,u),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,expertMode:this.props.expertMode,themeName:this.props.themeName}):n.type==="panel"||!n.type?k.createElement($t,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,expertMode:this.props.expertMode,index:1e3,isParentTab:!this.props.embedded&&!this.props.withoutSaveButtons,onChange:this.onChange,onError:(i,u)=>this.onError(i,u),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,themeName:this.props.themeName}):(console.error(`Unknown item type in root: ${JSON.stringify(n)}`),null)}changeLanguage=()=>{this.forceUpdate()};forceAttrUpdate=(n,i)=>{Array.isArray(n)?n.forEach(u=>this.forceUpdateHandlers[u]&&this.forceUpdateHandlers[u](i)):this.forceUpdateHandlers[n]&&this.forceUpdateHandlers[n](i)};registerOnForceUpdate=(n,i)=>{i?this.forceUpdateHandlers[n]=i:this.forceUpdateHandlers[n]&&delete this.forceUpdateHandlers[n]};render(){return!this.state.systemConfig||!this.oContext?k.createElement(N.LinearProgress,null):(this.oContext._themeName!==this.props.themeName&&(this.oContext._themeName=this.props.themeName,setTimeout(()=>this.updateContext(!0),0)),k.createElement("div",{style:{...!this.props.embedded||this.props.withoutSaveButtons?Cl.root:void 0,...this.props.style,...this.state.schema.style}},this.renderItem(this.state.schema)))}}const Et={root:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},scroll:{height:"calc(100% - 48px)",overflowY:"auto"},exportImportButtons:{position:"absolute",top:5,right:0,zIndex:3},button:{marginRight:"5px"},tooltip:{pointerEvents:"none"}};function El(L,n){let i="";for(let u=0;u{const v=document.createElement("script");v.setAttribute("id",n),v.onload=u,v.src=L,document.getElementsByTagName("head")[0].appendChild(v)})}let xl=class extends j.Router{fileSubscribed=[];fileLangSubscribed="";secret;constructor(n){super(n),this.state={updateData:0,changed:!1,confirmDialog:!1,theme:j.Theme(n.themeName),saveConfigDialog:!1,hash:"_"},this.secret=n.secret||"",this.getInstanceObject().then(i=>this.getConfigFile().then(u=>cn.loadI18n(this.props.socket,u==null?void 0:u.i18n,this.props.adapterName).then(v=>{v&&(this.fileLangSubscribed||(this.fileLangSubscribed=v,this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange))),i?this.setState({schema:u,data:i.native,common:i.common,hash:pi(JSON.stringify(u)).toString()}):window.alert(`Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`)})))}componentWillUnmount(){super.componentWillUnmount(),this.fileSubscribed.length&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileSubscribed,this.onFileChange),this.fileSubscribed=[]),this.fileLangSubscribed&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange),this.fileLangSubscribed="")}handleFileSelect=n=>{const i=n.target.files[0];if(i){const u=new FileReader;u.onload=v=>{if(!v.target)return;const o=v.target.result;try{const h=JSON.parse(o);this.setState({data:h,changed:JSON.stringify(h)!==JSON.stringify(this.state.originalData)})}catch{window.alert(j.I18n.t("[JsonConfig] Failed to parse JSON file"))}},u.readAsText(i)}else window.alert(j.I18n.t("[JsonConfig] Failed to open JSON File"))};getExportImportButtons(){return k.createElement("div",{style:Et.exportImportButtons},k.createElement(N.Tooltip,{title:this.props.t("Import settings from JSON file"),slotProps:{popper:{sx:Et.tooltip}}},k.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{const n=document.createElement("input");n.setAttribute("type","file"),n.setAttribute("id","files"),n.setAttribute("opacity",0),n.addEventListener("change",i=>this.handleFileSelect(i),!1),n.click()}},k.createElement(Z.Publish,null))),k.createElement(N.Tooltip,{title:this.props.t("Export setting to JSON file"),slotProps:{popper:{sx:Et.tooltip}}},k.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{this.state.data&&j.Utils.generateFile(`${this.props.adapterName}.${this.props.instance}.json`,this.state.data)}},k.createElement(Z.Publish,{style:{transform:"rotate(180deg)"}}))))}onFileChange=async(n,i,u)=>{var v;if(n===`${this.props.adapterName}.admin`&&u){if(i===this.fileLangSubscribed)try{await cn.loadI18n(this.props.socket,(v=this.state.schema)==null?void 0:v.i18n,this.props.adapterName),this.setState({hash:`${this.state.hash}1`})}catch{}else if(this.fileSubscribed.includes(i))try{const o=await this.getConfigFile(this.fileSubscribed[0]);this.setState({schema:o,hash:pi(JSON.stringify(o)).toString()})}catch{}}};async getInstanceObject(){var n;try{const i=await this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`);if(Array.isArray(i.encryptedNative)){if(!this.secret){const u=await this.props.socket.getSystemConfig();await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js"),this.secret=u.native.secret}return(n=i.encryptedNative)==null||n.forEach(u=>{i.native[u]&&(i.native[u]=Dl(this.secret,i.native[u]))}),i}return i}catch(i){window.alert(`[JsonConfig] Cannot read instance object: ${i}`)}return null}renderDialogConfirm(){return this.state.confirmDialog?k.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Please confirm"),text:j.I18n.t("ra_Some data are not stored. Discard?"),ok:j.I18n.t("ra_Discard"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>this.setState({confirmDialog:!1},()=>n&&j.Router.doNavigate(null))}):null}async scanForInclude(n,i){if(typeof n["#include"]=="string"){const v=await this._getConfigFile(n["#include"],[...i]);return delete n["#include"],v&&(n={...n,...v}),n}const u=Object.keys(n);for(let v=0;v ${i.join(" => ")}`),null;i.push(n);try{await this.props.socket.fileExists(`${this.props.adapterName}.admin`,n)||(n="jsonConfig.json");const v=await this.props.socket.readFile(`${this.props.adapterName}.admin`,n);let o="",h="";if(v.file!==void 0&&(h=v.file),typeof h=="string")o=h;else if(h.type==="Buffer"){let d="";const s=new Uint8Array(h.data),p=s.byteLength;for(let e=0;ethis.setState({saveConfigDialog:!1},()=>n&&this.onSave(!0))}):null}findAttr(n,i){if(i=i||this.state.schema,i!=null&&i.items){if(n in i.items)return i.items[n];for(const u of Object.values(i.items)){const v=this.findAttr(n,u);if(v)return v}}return null}postProcessing(n,i,u){if(u=u||this.state.schema,!n){console.error(`Data is empty in postProcessing: ${i}, ${JSON.stringify(u)}`);return}const v=n[i];if(u.items)if(u.type==="table"){const o=v;if(!Array.isArray(o))return;for(const h of o)for(const d of u.items)this.postProcessing(h,d.attr,d)}else for(const[o,h]of Object.entries(u.items)){if(h.type==="panel"||h.type==="tabs"||h.type==="accordion")return;this.postProcessing(n,o,h)}else if(i&&typeof v=="string")if(u.type==="text")u.trim!==!1&&(n[i]=v.trim());else if(u.type==="ip")n[i]=v.trim();else if(u.type==="number"){const o=parseFloat(v.toString().replace(",","."));u.min!==void 0&&ou.max?n[i]=u.max:n[i]=o}else if(u.type==="port"){const o=parseInt(v.toString(),10);u.min!==void 0&&ou.max&&(n[i]=u.max),n[i]!==0&&o<20?n[i]=20:o>65535?n[i]=65535:n[i]=o}else u.type==="checkbox"&&(n[i]=n[i]===!0||n[i]==="true"||n[i]==="on"||n[i]===1||n[i]==="1")}async onSave(n,i){if(n){const u=await this.getInstanceObject();if(!u){console.error("Something went wrong: may be no connection?"),window.alert("Something went wrong: may be no connection?");return}if(!this.state.data||!this.state.schema)return;const v={};for(const h of Object.keys(this.state.data)){const d=this.findAttr(h);(!d||!d.doNotSave||d.type==="state")&&!h.startsWith("_")?K.setValue(u.native,h,this.state.data[h]):(K.setValue(u.native,h,null),v[h]=this.state.data[h])}try{const h=JSON.parse(JSON.stringify(u));if(Array.isArray(h.encryptedNative)){await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js");for(const d of h.encryptedNative)h.native[d]&&(h.native[d]=Al(this.secret,h.native[d]))}await this.props.socket.setObject(h._id,h)}catch(h){window.alert(`[JsonConfig] Cannot set object: ${h}`)}const o={...u.native,...v};console.log(o),this.setState({changed:!1,data:o,updateData:this.state.updateData+1,originalData:o},()=>i&&j.Router.doNavigate(null))}else this.state.changed?this.setState({confirmDialog:!0}):j.Router.doNavigate(null)}componentDidUpdate(n,i){i.changed!==this.state.changed&&this.props.configStored(!this.state.changed)}async componentDidMount(){const n=`${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;console.log(`fetch ${n}`),await fetch(n)}render(){return!this.state.data||!this.state.schema?k.createElement(N.LinearProgress,null):k.createElement("div",{style:Et.root},this.renderDialogConfirm(),this.getExportImportButtons(),this.renderSaveConfigDialog(),k.createElement(cn,{key:this.state.hash,style:Et.scroll,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,adapterName:this.props.adapterName,instance:this.props.instance,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,schema:this.state.schema,common:this.state.common,expertMode:this.props.expertMode,data:this.state.data,updateData:this.state.updateData,onError:n=>this.setState({error:n}),onChange:(n,i,u)=>{u&&this.state.error&&(window.alert(j.I18n.t("Cannot save configuration because of error in configuration")),u=!1),u&&!this.state.changed&&!i&&(u=!1),n?this.setState({data:n,changed:i,saveConfigDialog:u}):u!==void 0&&this.setState({saveConfigDialog:u})},DeviceManager:this.props.DeviceManager,theme:this.state.theme}),k.createElement(j.SaveCloseButtons,{isIFrame:!1,dense:!0,paddingLeft:0,newReact:!0,theme:this.state.theme,noTextOnButtons:this.props.width==="xs"||this.props.width==="sm"||this.props.width==="md",changed:!!(this.state.error||this.state.changed),error:!!this.state.error,onSave:n=>this.onSave(!0,n),onClose:()=>this.onSave(!1)}))}};export{K as ConfigGeneric,$t as ConfigPanel,xl as JsonConfig,cn as JsonConfigComponent}; +`).map(p=>p.replace("\r","").trim()),{schema:u}=this.props,v=i.shift().split(";").filter(p=>p&&u.items.find(a=>a.attr===p)),o=[];i.forEach(p=>{const a=p.split(";"),d={};for(let e=0;es.attr===v[e]);l&&l.type==="number"?r=parseFloat(t):r=t}else r=t;d[v[e]]=r}o.push(d)}),o.length?(h=this.state.value)!=null&&h.length?this.setState({showTypeOfImportDialog:o,showImportDialog:!1}):this.setState({value:o,showImportDialog:!1}):window.alert("ra_No data found in file")}onClone=n=>()=>{const i=JSON.parse(JSON.stringify(this.state.value)),u=JSON.parse(JSON.stringify(i[n]));if(typeof this.props.schema.clone=="string"&&typeof u[this.props.schema.clone]=="string"){let v=1,o=u[this.props.schema.clone];const h=o.match(/(\d+)$/);for(h?(o=o.replace(h[0],""),v=parseInt(h[0],10)+1):o+="_";i.find(p=>p[this.props.schema.clone]===o+v.toString());)v++;u[this.props.schema.clone]=`${u[this.props.schema.clone]}_${v}`}i.splice(n,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};onChangeWrapper=(n,i)=>{this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=setTimeout((u,v)=>{this.typingTimer=null;let o;if(this.props.schema.encryptedAttributes){const h=JSON.parse(JSON.stringify(u));if(h.forEach(p=>{this.props.schema.encryptedAttributes.forEach(a=>{p[a]&&(p[a]=ll(this.secret,p[a]))})}),this.props.schema.objKeyName){const p=Ri(h,this.props.schema.objKeyName,this.props.schema.objValueName);o=this.onChange(this.props.attr,p)}else o=this.onChange(this.props.attr,h)}else if(this.props.schema.objKeyName){const h=Ri(JSON.parse(JSON.stringify(u)),this.props.schema.objKeyName,this.props.schema.objValueName);o=this.onChange(this.props.attr,h)}else o=this.onChange(this.props.attr,u);o instanceof Promise&&o.catch(h=>console.error(`Cannot save: ${h}`)),v&&(this.applyFilter(!1,u),this.handleRequestSort(this.state.orderBy,!0))},300,n,i)};onAdd=()=>{var v;const{schema:n}=this.props,i=JSON.parse(JSON.stringify(this.state.value)),u=(v=n.items)==null?void 0:v.reduce((o,h)=>{let p;return h.defaultFunc?this.props.custom?p=h.defaultFunc?this.executeCustom(h.defaultFunc,this.props.data,this.props.customObj,this.props.oContext.instanceObj,i.length,this.props.data):this.props.schema.default:p=h.defaultFunc?this.execute(h.defaultFunc,this.props.schema.default,this.props.data,i.length,this.props.data):this.props.schema.default:p=h.default===void 0?null:h.default,o[h.attr]=p,o},{});i.push(u),this.setState({value:i},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))};isAnyFilterSet(){return!!Object.keys(this.filterRefs).find(n=>Ve.getFilterValue(this.filterRefs[n]))}applyFilter=(n,i,u)=>{i=i||this.state.value;let v=i.map((o,h)=>h);if(Object.keys(this.filterRefs).forEach(o=>{let h=Ve.getFilterValue(this.filterRefs[o]);!n&&h?(h=h.toLowerCase(),v=v.filter(p=>i[p]&&i[p][o]&&i[p][o].toLowerCase().includes(h))):this.filterRefs[o].current&&Ve.setFilterValue(this.filterRefs[o],"")}),v.length===i.length&&(v=null),v===null&&this.state.visibleValue===null){u&&u();return}JSON.stringify(v)!==JSON.stringify(this.state.visibleValue)?this.setState({visibleValue:v},()=>u&&u()):u&&u()};onMoveUp(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n-1,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onMoveDown(n){const i=JSON.parse(JSON.stringify(this.state.value)),u=i[n];i.splice(n,1),i.splice(n+1,0,u),this.setState({value:i,iteration:this.state.iteration+1e4},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(i)))}onDrop(n){const i=n[0],u=new FileReader;u.onabort=()=>console.log("file reading was aborted"),u.onerror=()=>console.log("file reading has failed"),u.onload=()=>{if(i.size>Bn){window.alert(j.I18n.t("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(Bn/1024)));return}const v=new Uint8Array(u.result).reduce((o,h)=>o+String.fromCharCode(h),"");this.onImport(v)},u.readAsArrayBuffer(i)}showTypeOfImportDialog(){return this.state.showTypeOfImportDialog?M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showTypeOfImportDialog:!1}),maxWidth:"md"},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Append or replace?")),M.createElement(N.DialogContent,null,j.I18n.t("ra_Append %s entries or replace existing?",this.state.showTypeOfImportDialog.length)),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",color:"primary",autoFocus:!0,onClick:()=>{const n=JSON.parse(JSON.stringify(this.state.value));this.state.showTypeOfImportDialog.forEach(i=>n.push(i)),this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Append")),M.createElement(N.Button,{variant:"contained",color:"secondary",autoFocus:!0,onClick:()=>{const n=this.state.showTypeOfImportDialog;this.setState({value:n,iteration:this.state.iteration+1e4,showTypeOfImportDialog:!1},()=>this.applyFilter(!1,null,()=>this.onChangeWrapper(n)))}},j.I18n.t("ra_Replace")))):null}showImportDialog(){return this.state.showImportDialog?M.createElement(N.Dialog,{open:!0,onClose:()=>this.setState({showImportDialog:!1}),sx:{"& .MuiDialog-paper":{minHeight:500}},maxWidth:"md",fullWidth:!0},M.createElement(N.DialogTitle,null,j.I18n.t("ra_Import from %s","CSV")),M.createElement(N.DialogContent,null,M.createElement(Pi,{multiple:!1,accept:{"text/csv":[".csv"]},maxSize:Bn,onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:(n,i)=>{this.setState({uploadFile:!1}),n.length?this.onDrop(n):window.alert(i&&i[0]&&i[0].errors&&i[0].errors[0]&&i[0].errors[0].message||j.I18n.t("ra_Cannot upload"))}},({getRootProps:n,getInputProps:i})=>M.createElement("div",{style:{...fe.uploadDiv,...this.state.uploadFile==="dragging"?fe.uploadDivDragging:void 0,...fe.dropZone,...this.state.icon?void 0:fe.dropZoneEmpty},...n()},M.createElement("input",{...i()}),M.createElement("div",{style:fe.uploadCenterDiv},M.createElement("div",{style:fe.uploadCenterTextAndIcon},M.createElement(Z.UploadFile,{style:fe.uploadCenterIcon}),M.createElement("div",{style:fe.uploadCenterText},this.state.uploadFile==="dragging"?j.I18n.t("ra_Drop file here"):j.I18n.t("ra_Place your files here or click here to open the browse dialog"))))))),M.createElement(N.DialogActions,null,M.createElement(N.Button,{variant:"contained",onClick:()=>this.setState({showImportDialog:!1}),color:"primary",startIcon:M.createElement(Z.Close,null)},j.I18n.t("Cancel")))):null}renderOneFilter(n){return M.createElement(N.TableCell,{key:`${n.headCell.attr}_${n.index}`,style:n.style,align:"left",sortDirection:n.orderBy===n.headCell.attr?n.order:!1},M.createElement("div",{style:{...fe.flex,...n.schema.showFirstAddOnTop?{flexDirection:"column"}:void 0}},n.showAddButton?this.renderAddButton(n.doAnyFilterSet):null,n.headCell.sort&&M.createElement(N.TableSortLabel,{active:!0,style:n.orderBy!==n.headCell.attr?fe.silver:void 0,direction:n.orderBy===n.headCell.attr?n.order:"asc",onClick:()=>this.handleRequestSort(n.headCell.attr)}),n.headCell.filter&&this.state.filterOn.includes(n.headCell.attr)?M.createElement(N.TextField,{variant:"standard",ref:this.filterRefs[n.headCell.attr],onChange:()=>this.applyFilter(),title:j.I18n.t("ra_You can filter entries by entering here some text"),slotProps:{input:{endAdornment:Ve.getFilterValue(this.filterRefs[n.headCell.attr])&&M.createElement(N.InputAdornment,{position:"end"},M.createElement(N.IconButton,{size:"small",tabIndex:-1,onClick:()=>{Ve.setFilterValue(this.filterRefs[n.headCell.attr],""),this.applyFilter()}},M.createElement(Z.Close,null)))}},fullWidth:!0,placeholder:this.getText(n.headCell.title)}):M.createElement("span",{style:fe.headerText},this.getText(n.headCell.title)),this.renderShowHideFilter(n.headCell)))}enhancedFilterCard(){var h;const{schema:n}=this.props,{order:i,orderBy:u}=this.state;let v;this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1});const o=!n.noDelete&&n.import||n.export;return o||n.items.find(p=>p.sort||p.filter)?M.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Accordion,{style:fe.paper},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null)},M.createElement(N.Typography,null,j.I18n.t("ra_Filter and Data Actions"))),M.createElement(N.AccordionDetails,null,M.createElement(N.Table,null,M.createElement(N.TableBody,null,((h=n.items)==null?void 0:h.find(p=>p.sort||p.filter))&&n.items.map((p,a)=>M.createElement(N.TableRow,{key:`${p.attr}_${a}`},this.renderOneFilter({schema:n,style:v,showAddButton:!1,headCell:p,order:i,orderBy:u,index:a,doAnyFilterSet:!1}))),o?M.createElement(N.TableRow,null,M.createElement(N.TableCell,{align:"left",style:v},M.createElement("span",{style:fe.headerText},j.I18n.t("ra_Actions"))),M.createElement(N.TableCell,{style:v},this.renderImportExportButtons(n))):null))))))):null}enhancedBottomCard(){const{schema:n}=this.props;let i;this.props.schema.compact&&(i={paddingTop:1,paddingBottom:1});const u=this.isAnyFilterSet();return M.createElement(N.Grid2,{size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Table,null,M.createElement(N.TableBody,null,M.createElement(N.TableRow,null,M.createElement(N.TableCell,{colSpan:n.items.length+1,style:i},this.renderAddButton(u))))))))}renderCards(){const{schema:n}=this.props;let{visibleValue:i}=this.state,u;this.props.schema.compact&&(u={paddingTop:1,paddingBottom:1}),i||=this.state.value.map((o,h)=>h);const v=this.isAnyFilterSet();return M.createElement(N.Grid2,{container:!0},this.showImportDialog(),this.showTypeOfImportDialog(),this.enhancedFilterCard(),i.map((o,h)=>{var p;return M.createElement(N.Grid2,{key:`${o}_${h}`,size:{xs:n.xs||12,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0}},M.createElement(N.Card,null,M.createElement(N.Paper,{style:fe.paper},M.createElement(N.Table,null,M.createElement(N.TableBody,null,(p=n.items)==null?void 0:p.map(a=>M.createElement(N.TableRow,{key:`${a.attr}_${o}`},M.createElement(N.TableCell,{align:"left",style:u},M.createElement("span",{style:fe.headerText},this.getText(a.title))),M.createElement(N.TableCell,{align:"left",style:u},this.itemTable(a.attr,this.state.value[o],o)))),!n.noDelete&&M.createElement(N.TableRow,null,M.createElement(N.TableCell,{align:"left",style:u},M.createElement("span",{style:fe.headerText},this.getText("Actions"))),M.createElement(N.TableCell,{align:"left",style:u},!v&&!this.state.orderBy?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(o),disabled:h===0},M.createElement(Z.ArrowUpward,null)))):null,!v&&!this.state.orderBy?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move down"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement("span",null,M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveDown(o),disabled:h===i.length-1},M.createElement(Z.ArrowDownward,null)))):null,M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(o)},M.createElement(Z.Delete,null))),this.props.schema.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(o)},M.createElement(Z.ContentCopy,null))):null)))))))}),this.enhancedBottomCard())}renderTable(){const{schema:n}=this.props;let{visibleValue:i}=this.state;i=i||this.state.value.map((o,h)=>h);const u=this.isAnyFilterSet();let v;return this.props.schema.compact&&(v={paddingTop:1,paddingBottom:1}),M.createElement(N.Paper,{style:fe.paper},this.showImportDialog(),this.showTypeOfImportDialog(),n.label?M.createElement("div",{style:fe.label},M.createElement(N.Toolbar,{variant:"dense",style:fe.rootTool},M.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},this.getText(n.label)))):null,M.createElement(N.TableContainer,null,M.createElement(N.Table,{style:fe.table,size:"small"},this.enhancedTableHead(!u&&!this.state.orderBy?120:64,u),M.createElement(N.TableBody,null,i.map((o,h)=>{var p;return M.createElement(N.TableRow,{hover:!0,key:`${o}_${h}`},(p=n.items)==null?void 0:p.map(a=>M.createElement(N.TableCell,{key:`${a.attr}_${o}`,align:"left",style:v},this.itemTable(a.attr,this.state.value[o],o))),!n.noDelete&&M.createElement(N.TableCell,{align:"left",style:{...v,...fe.buttonCell}},!u&&!this.state.orderBy?h?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Move up"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:()=>this.onMoveUp(o)},M.createElement(Z.ArrowUpward,null))):M.createElement("div",{style:fe.buttonEmpty}):null,!u&&!this.state.orderBy?hthis.onMoveDown(o)},M.createElement(Z.ArrowDownward,null))):M.createElement("div",{style:fe.buttonEmpty}):null,M.createElement(N.Tooltip,{title:j.I18n.t("ra_Delete current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onDelete(o)},M.createElement(Z.Delete,null))),this.props.schema.clone?M.createElement(N.Tooltip,{title:j.I18n.t("ra_Clone current row"),slotProps:{popper:{sx:fe.tooltip}}},M.createElement(N.IconButton,{size:"small",onClick:this.onClone(o)},M.createElement(Z.ContentCopy,null))):null))}),!n.noDelete&&i.length>=(n.showSecondAddAt||5)?M.createElement(N.TableRow,null,M.createElement(N.TableCell,{colSpan:n.items.length+1,style:{...v}},this.renderAddButton(u))):null)),!i.length&&this.state.value.length?M.createElement("div",{style:fe.filteredOut},M.createElement(N.Typography,{style:fe.title,variant:"h6",id:"tableTitle",component:"div"},j.I18n.t("ra_All items are filtered out"),M.createElement(N.IconButton,{size:"small",onClick:()=>this.applyFilter(!0)},M.createElement(Z.Close,null)))):null),n.help?M.createElement(N.FormHelperText,{style:{paddingLeft:16}},this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null,this.state.errorMessage?M.createElement("div",{style:{display:"flex",padding:"5px"}},M.createElement(Z.Warning,{color:"error"}),M.createElement("span",{style:{color:"red",alignSelf:"center"}},this.state.errorMessage)):null)}componentDidUpdate(){var n;(n=this.refDiv.current)!=null&&n.clientWidth&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}getCurrentBreakpoint(){return this.state.width?this.state.width<600?"xs":this.state.width<900?"sm":this.state.width<1200?"md":this.state.width<1536?"lg":"xl":"md"}renderItem(){const{schema:n}=this.props;if(!this.state.value||!Array.isArray(this.state.value))return null;const i=this.getCurrentBreakpoint();let u;return i&&(n.useCardFor||["xs"]).includes(i)?u=this.renderCards():u=this.renderTable(),M.createElement("div",{ref:this.refDiv,style:{width:"100%"}},u)}}const ln={indeterminate:{opacity:.5},label:{width:"100%",fontSize:14,marginBottom:2},helper:{width:"100%",fontSize:12},error:{width:"100%",fontSize:12,color:"#FF0000"}};class hl extends K{updateTimeout=null;componentDidMount(){super.componentDidMount();let n=K.getValue(this.props.data,this.props.attr);if(Array.isArray(n)&&this.props.oContext.multiEdit){n=K.DIFFERENT_VALUE,this.setState({value:n,oldValue:n,jsonError:!1});return}this.setState({value:n,oldValue:n,jsonError:this.validateJson(n)})}validateJson(n){let i=!1;if(this.props.schema.validateJson&&(n||!this.props.schema.allowEmpty))try{JSON.parse(n)}catch(u){console.log("Error in JSON",u),i=!0}return i}static getDerivedStateFromProps(n,i){if(n.oContext.multiEdit&&i.value===K.DIFFERENT_VALUE)return{value:K.DIFFERENT_VALUE};let u=K.getValue(n.data,n.attr);return u!=null&&(u=u.toString()),u==null||u!==i.value&&u!==i.oldValue?{value:u}:null}renderItem(n,i){const u=Array.isArray(this.state.value)||this.state.value===K.DIFFERENT_VALUE;if(this.props.schema.time){let h="";return typeof this.state.value=="number"?this.state.value&&this.state.value<9466596e5?h=new Date(this.state.value*1e3).toLocaleString():h=new Date(this.state.value).toLocaleString():typeof this.state.value=="string"&&(h=new Date(this.state.value).toLocaleString()),M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:h,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{readOnly:!0}},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}if(this.state.oldValue!==null&&this.state.oldValue!==void 0?(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(()=>{this.updateTimeout=null,this.setState({oldValue:null})},30)):this.updateTimeout&&(clearTimeout(this.updateTimeout),this.updateTimeout=null),u){const h=K.getValue(this.props.data,this.props.attr),p=(h==null?void 0:h.filter(a=>a||a===0).map(a=>({label:a.toString()||"",value:a})))||[];return p.unshift({label:j.I18n.t(K.DIFFERENT_LABEL),value:K.DIFFERENT_VALUE}),M.createElement(N.Autocomplete,{style:ln.indeterminate,fullWidth:!0,value:p[0],onChange:(a,d)=>{const e=d?d.value:"",t=this.onChange(this.props.attr,e,()=>{this.setState({value:e,oldValue:e,jsonError:this.validateJson(d)})});t instanceof Promise&&t.catch(r=>console.error(`Cannot set value: ${r}`))},options:p,getOptionLabel:a=>a.label,renderInput:a=>M.createElement(N.TextField,{variant:"standard",...a,error:!!n,placeholder:this.getText(this.props.schema.placeholder),slotProps:{htmlInput:{...a.inputProps,maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1}},label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),disabled:!!i})})}let v,o;if((this.props.schema.readOnly||i)&&this.props.schema.copyToClipboard?(this.props.schema.minRows>1&&(o={position:"absolute",right:3,top:20,zIndex:1e3}),v=M.createElement(N.IconButton,{tabIndex:-1,style:o,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.value),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null))):!this.props.schema.readOnly&&!i&&this.state.value&&!this.props.schema.noClearButton&&(this.props.schema.minRows>1&&(o={position:"absolute",right:3,top:20,zIndex:1e3}),v=M.createElement(N.IconButton,{style:o,size:"small",tabIndex:-1,onClick:()=>this.setState({value:"",oldValue:this.state.value},()=>this.onChange(this.props.attr,""))},M.createElement(Z.Close,null)),this.props.schema.minRows<=1&&(v=M.createElement(N.InputAdornment,{position:"end"},v))),this.props.schema.minRows>1){const h=this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation);return M.createElement("div",{style:{width:"100%",position:"relative"}},this.props.schema.label?M.createElement("div",{style:ln.label},this.getText(this.props.schema.label)):null,M.createElement(N.TextareaAutosize,{style:{width:"100%",resize:"vertical",backgroundColor:this.props.oContext.themeType==="dark"?"#363636":"#cccccc",color:this.props.oContext.themeType==="dark"?"#fff":"#111"},minRows:this.props.schema.minRows,maxRows:this.props.schema.maxRows,value:this.state.value===null||this.state.value===void 0?"":this.state.value,disabled:!!i,readOnly:this.props.schema.readOnly||!1,onChange:p=>{const a=p.target.value;this.setState({value:a,oldValue:this.state.value,jsonError:this.validateJson(a)},()=>this.onChange(this.props.attr,a||""))},placeholder:this.getText(this.props.schema.placeholder)}),h||n||this.state.jsonError?M.createElement("div",{style:n?ln.error:ln.helper},n||(this.state.jsonError?j.I18n.t("ra_Invalid JSON"):h)):null)}return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!n||!!this.state.jsonError,disabled:!!i,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:this.props.schema.readOnly||!1},input:{endAdornment:v}},onChange:h=>{const p=h.target.value;this.setState({value:p,oldValue:this.state.value,jsonError:this.validateJson(p)},()=>this.onChange(this.props.attr,p))},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.state.jsonError?j.I18n.t("ra_Invalid JSON"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const cl={fullWidth:{width:"100%"}};class dl extends K{initialized=!1;localContext;askInstance(){if(this.props.alive){let n=this.props.schema.data;if(n===void 0&&this.props.schema.jsonData){const i=this.getPattern(this.props.schema.jsonData,null,!0);try{n=JSON.parse(i)}catch{console.error(`Cannot parse json data: ${i}`)}}n===void 0&&(n=null),this.props.oContext.socket.sendTo(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`,this.props.schema.command||"send",n).then(i=>{if(typeof i=="object"){const u=i;this.setState({text:u.text||"",style:u.style,icon:u.icon,iconStyle:u.iconStyle})}else typeof i=="string"&&this.setState({text:i||""})}).catch(i=>console.error(`Cannot send command: ${i}`))}}getLocalContext(){const n={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(i=>n[i]=K.getValue(this.props.data,i)),JSON.stringify(n)}renderItem(){if(this.props.alive){const i=this.getLocalContext();(i!==this.localContext||!this.initialized)&&(this.localContext=i,setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}if(this.state.text===void 0)return null;let n=null;return this.state.icon&&(n=ht(this.state.icon,{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}),n||(n=M.createElement(j.Icon,{src:this.state.icon,style:{marginRight:this.state.text?8:void 0,...this.state.iconStyle||void 0}}))),this.props.schema.container==="text"?M.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{input:{endAdornment:this.props.schema.copyToClipboard?M.createElement(N.IconButton,{tabIndex:-1,size:"small",onClick:()=>{j.Utils.copyToClipboard(this.state.text),window.alert(j.I18n.t("ra_Copied"))}},M.createElement(j.IconCopy,null)):void 0}},value:this.state.text,label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):M.createElement("div",{style:{...cl.fullWidth,...this.state.style||void 0}},n,this.props.schema.container==="html"?M.createElement("span",{dangerouslySetInnerHTML:{__html:this.state.text||""}}):this.state.text)}}class pl extends K{componentDidMount(){super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);this.setState({value:n})}renderItem(n,i){const u=this.props.schema.returnFormat!=="HH:mm:ss",v=new Date(Date.parse(`Thu, 01 Jan 1970 ${this.state.value||"00:00:00"}`));return M.createElement(Wi.TimePicker,{sx:o=>({width:"100%",borderBottom:`1px solid ${o.palette.text.primary}`,"& fieldset":{display:"none"},"& input":{padding:`${o.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:"translate(0px, -9px) scale(0.75)"}}),ampm:this.props.oContext.systemConfig.dateFormat.includes("/"),timeSteps:this.props.schema.timeSteps||this.props.schema.timesteps||{hours:1,minutes:5,seconds:5},format:this.props.schema.format||"HH:mm:ss",disabled:!!i,value:v,onChange:o=>{let h;h=o instanceof Date?o.toTimeString().split(" ")[0]:o.toTimeString(),u&&(h=h.split(":").slice(0,2).join(":")),this.setState({value:h},()=>this.onChange(this.props.attr,this.state.value))},views:this.props.schema.views||["hours","minutes","seconds"],label:this.getText(this.props.schema.label)})}}function fl(L,n){let i;return n&&L.substring(0,n.length)===n?i=L.substring(n.length+1):i=L,i=i.replace(/\./g,"/").replace(/_/g," "),i}class gl extends K{componentDidMount(){var i;super.componentDidMount();const n=K.getValue(this.props.data,this.props.attr);if(!n&&((i=this.props.customObj)!=null&&i._id)){const u=fl(this.props.customObj._id,`${this.props.oContext.adapterName}.${this.props.oContext.instance}`);this.setState({value:u})}else this.setState({value:n||""})}renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,slotProps:{htmlInput:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0}},value:this.state.value,error:!!n,disabled:i,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),onChange:u=>{const v=u.target.value;this.setState({value:v},()=>this.onChange(this.props.attr,v))}})}}class ml extends K{async componentDidMount(){var i;super.componentDidMount();const n=await this.props.oContext.socket.getObject("system.meta.uuid");this.setState({uuid:((i=n==null?void 0:n.native)==null?void 0:i.uuid)||"unknown"})}renderItem(n,i){return M.createElement(N.TextField,{variant:"standard",fullWidth:!0,error:!!n,disabled:!!i,slotProps:{htmlInput:{readOnly:!0},input:{endAdornment:M.createElement(N.IconButton,{tabIndex:-1,onClick:()=>{j.Utils.copyToClipboard(this.state.uuid),window.alert(j.I18n.t("ra_Copied %s",this.state.uuid))}},M.createElement(Z.ContentCopy,null))}},value:this.state.uuid||"",label:this.getText(this.props.schema.label)||j.I18n.t("ra_Serial number (UUID)"),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}const Ni={icon:{width:16,height:16,marginRight:8}};class vl extends K{componentDidMount(){super.componentDidMount(),this.props.oContext.socket.getUsers().then(n=>{const i={},u=j.I18n.getLanguage();this.props.schema.short?n.forEach(v=>{var o,h;return i[v._id]={color:(o=v.common)==null?void 0:o.color,icon:(h=v.common)==null?void 0:h.icon,name:j.Utils.getObjectNameFromObj(v,u)}}):n.forEach(v=>{var o,h;return i[v._id.replace(/^system\.user\./,"")]={color:(o=v.common)==null?void 0:o.color,icon:(h=v.common)==null?void 0:h.icon,name:j.Utils.getObjectNameFromObj(v,u)}}),this.setState({users:i})}).catch(n=>console.error(`Cannot get users: ${n}`))}renderItem(n,i){var v,o;const u=K.getValue(this.props.data,this.props.attr);return M.createElement(N.FormControl,{variant:"standard",fullWidth:!0},this.state.users&&this.props.schema.label?M.createElement(N.InputLabel,null,this.getText(this.props.schema.label)):null,this.state.users?M.createElement(N.Select,{variant:"standard",error:!!n,disabled:!!i,value:u,renderValue:h=>{var p,a,d;return M.createElement("span",null,this.state.users&&((p=this.state.users[h])!=null&&p.icon)?M.createElement(j.Icon,{src:this.state.users&&((a=this.state.users[h])==null?void 0:a.icon),style:Ni.icon}):null,this.state.users&&((d=this.state.users[h])==null?void 0:d.name)||h||"")},style:{color:this.state.users&&((v=this.state.users[u])==null?void 0:v.color)||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users&&((o=this.state.users[u])==null?void 0:o.color),this.props.oContext.themeType)},onChange:h=>this.onChange(this.props.attr,h.target.value)},this.state.users&&Object.keys(this.state.users).map(h=>M.createElement(N.MenuItem,{style:{color:this.state.users[h].color||void 0,backgroundColor:j.Utils.getInvertedColor(this.state.users[h].color,this.props.oContext.themeType)},key:h,value:h},this.state.users[h].icon?M.createElement(j.Icon,{src:this.state.users[h].icon,style:Ni.icon}):null,this.state.users[h].name))):M.createElement(N.TextField,{variant:"standard",error:!!n,disabled:!!i,value:u,onChange:h=>this.onChange(this.props.attr,h.target.value),label:this.getText(this.props.schema.label)}),this.props.schema.help?M.createElement(N.FormHelperText,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}class yl extends K{async componentDidMount(){super.componentDidMount();const n=await ss(()=>import("./index-CttBOMyq.js").then(i=>i.i),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url);this.setState({QRCode:n.default})}renderItem(){const n=this.state.QRCode;return n?M.createElement(n,{value:this.props.schema.data,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}):null}}const bl={accordion:$s,alive:Ts,autocomplete:_s,autocompleteSendTo:ks,certCollection:Fs,certificate:Ls,certificates:Is,checkbox:Os,checkLicense:ct,chip:fi,chips:fi,color:Ws,coordinates:Hs,cron:Ms,custom:Ut,datePicker:zs,deviceManager:js,divider:nl,file:eo,fileSelector:mn,func:to,header:rl,image:ro,imageSendTo:io,instance:so,interface:oo,ip:no,jsonEditor:Fa,language:Ra,license:Na,number:Ba,oauth2:Pa,objectId:Wa,password:Ha,pattern:za,port:Va,qrCode:yl,room:Ua,select:Ka,selectSendTo:Ya,sendto:_i,sendTo:_i,setState:Za,slider:qa,state:tl,staticImage:sl,staticInfo:ol,staticLink:Oi,staticText:Oi,table:Ve,text:hl,textSendTo:dl,timePicker:pl,topic:gl,uuid:ml,user:vl},Qe={fullWidth:{width:"100%"},paper:{margin:1,width:"auto !important",overflowY:"auto",paddingBottom:1},paperWithIcons:{height:"calc(100vh - 259px) !important"},paperWithoutIcons:{height:"calc(100vh - 235px) !important"},padding:{padding:"10px"},heading:{},primary:L=>({backgroundColor:L.palette.primary.main,color:L.palette.mode==="dark"?"inherit":"#FFF"}),secondary:L=>({backgroundColor:L.palette.secondary.main})};class $t extends K{componentDidMount(){var n;super.componentDidMount(),(n=this.props.schema)!=null&&n.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(`${this.props.oContext.adapterName}.${this.props.attr}`)==="true"})}renderItems(n,i){return n?Object.keys(n).map(u=>{if(this.props.oContext.multiEdit&&n[u].noMultiEdit)return null;const v=n[u].type||"panel";let o,h="Use this.props.oContext.socket!";return v==="custom"?(n[u].url?o=Ut:this.props.oContext.customs&&this.props.oContext.customs[n[u].component]?o=this.props.oContext.customs[n[u].component]:(console.error(`Cannot find custom component: ${n[u].component}`),o=K),h=this.props.oContext.socket):v==="panel"?o=$t:o=bl[v]||K,M.createElement(o,{socket:h,globalData:this.props.globalData,oContext:this.props.oContext,key:`${u}_${this.props.index===void 0?"":this.props.index}`,index:this.props.index,changed:this.props.changed,arrayIndex:this.props.arrayIndex,expertMode:this.props.expertMode,commandRunning:this.props.commandRunning,style:Qe.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onError:this.props.onError,onChange:this.props.onChange,disabled:i,customObj:this.props.customObj,custom:this.props.custom,schema:n[u],attr:u,table:this.props.table})}):null}render(){const n=this.props.schema;if(!n)return null;const{disabled:i,hidden:u}=this.calculate(n),v=this.props.schema.items,o=this.props.schema.style||{};if(u){if(n.hideOnlyControl){const p=M.createElement(N.Grid2,{size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:j.Utils.getStyle(this.props.oContext.theme,{marginBottom:0,textAlign:"left"},o,this.props.oContext.themeType==="dark"&&n.darkStyle)});return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),p):p}return null}if(this.props.table)return this.renderItems(v,i);if(this.props.custom)return M.createElement(N.Grid2,{key:`${this.props.attr}_${this.props.index}`,container:!0,style:Qe.fullWidth,columnSpacing:2,rowSpacing:1,sx:o},this.renderItems(v,i));let h;if(n.collapsable)h=M.createElement(N.Accordion,{key:`${this.props.attr}_${this.props.index}`,style:Qe.fullWidth,expanded:!!this.state.expanded,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.oContext.adapterName}.${this.props.attr}`,this.state.expanded?"false":"true"),this.setState({expanded:!this.state.expanded})}},M.createElement(N.AccordionSummary,{expandIcon:M.createElement(Z.ExpandMore,null),sx:j.Utils.getStyle(this.props.oContext.theme,o,this.props.oContext.themeType&&n.darkStyle,n.color==="primary"?Qe.primary:n.color==="secondary"&&Qe.secondary,{width:"100%"})},M.createElement(N.Typography,{style:Qe.heading},this.getText(n.label))),M.createElement(N.AccordionDetails,null,M.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:{...o,width:"100%",padding:"10px"}},this.renderItems(v,i))));else{const p=j.Utils.getStyle(this.props.oContext.theme,this.props.style,o,{width:"100%"},this.props.isParentTab&&Qe.paper,this.props.isParentTab&&(this.props.withoutSaveButtons?this.props.withIcons?{height:"calc(100% - 88px) !important"}:{height:"calc(100% - 64px) !important"}:this.props.withIcons?Qe.paperWithIcons:Qe.paperWithoutIcons));h=M.createElement(N.Box,{component:"div",key:`${this.props.attr}_${this.props.index}`,className:this.props.className,sx:p},M.createElement(N.Grid2,{container:!0,columnSpacing:2,rowSpacing:1,sx:j.Utils.getStyle(this.props.oContext.theme,{width:"100%"},this.props.isParentTab&&Qe.padding,this.props.schema.innerStyle)},this.renderItems(v,i)))}if(!this.props.isParentTab){const p=M.createElement(N.Grid2,{title:this.getText(n.tooltip),size:{xs:n.xs||void 0,sm:n.sm||void 0,md:n.md||void 0,lg:n.lg||void 0,xl:n.xl||void 0},sx:{marginBottom:0,textAlign:"left",...o}},h);return n.newLine?M.createElement(M.Fragment,null,M.createElement("div",{style:{flexBasis:"100%",height:0}}),p):p}return h}}const un={tabs:{height:"100%",width:"100%"},panel:{width:"100%",display:"block"},panelWithIcons:{height:"calc(100% - 72px)"},panelWithoutIcons:{height:"calc(100% - 48px)"}};class wl extends K{resizeTimeout=null;refDiv;constructor(n){super(n);let i;if(this.props.root){const u=(window.location.hash||"").replace(/^#/,"").split("/");if(u.length>=3&&u[1]==="config"){const v=u[3],o=parseInt(v,10);v&&o.toString()===v?o>=0&&o{const n=(window.location.hash||"").replace(/^#/,"").split("/");if(n.length>3&&n[1]==="config"){const i=n[3],u=parseInt(i,10);let v;u.toString()===i?u>=0&&u{this.setState({initialBreakpoint:n})},50),n}return this.state.initialBreakpoint}componentDidUpdate(){var n;!this.state.initialBreakpoint&&((n=this.refDiv.current)!=null&&n.clientWidth)&&this.refDiv.current.clientWidth!==this.state.width&&(this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{var i;this.resizeTimeout=null,this.setState({width:(i=this.refDiv.current)==null?void 0:i.clientWidth})},50))}onMenuChange(n){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.${this.props.oContext.adapterName}`,n),this.setState({tab:n},()=>{if(this.props.root){const i=(window.location.hash||"").split("/");i.length>=3&&i[1]==="config"&&(i[3]=this.state.tab,window.location.hash=i.join("/"))}})}render(){const n=this.props.schema.items;let i=!1;const u=[];Object.keys(n).map(h=>{let p;if(n[h].expertMode&&!this.props.expertMode)return;if(this.props.custom){if(this.executeCustom(n[h].hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData))return;p=this.executeCustom(n[h].disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData)}else{if(this.execute(n[h].hidden,!1,this.props.data,this.props.index,this.props.globalData))return;p=this.execute(n[h].disabled,!1,this.props.data,this.props.index,this.props.globalData)}const a=this.getIcon(n[h].icon);i=i||!!a,u.push({icon:a,disabled:p,label:this.getText(n[h].label),name:h})}),u.find(h=>h.name===this.state.tab)||setTimeout(()=>this.setState({tab:u[0].name}),50);const v=this.getCurrentBreakpoint();let o;return v==="xs"&&u.length>2?o=M.createElement(N.Toolbar,{style:{top:2,backgroundColor:this.props.oContext.themeType==="dark"?"#222":"#DDD"},variant:"dense"},M.createElement(N.IconButton,{onClick:h=>this.setState({openMenu:h.currentTarget})},M.createElement(Z.Menu,null)),this.state.openMenu?M.createElement(N.Menu,{open:!0,anchorEl:this.state.openMenu,onClose:()=>this.setState({openMenu:null})},u.map(h=>M.createElement(N.MenuItem,{disabled:h.disabled,key:h.name,onClick:()=>{this.setState({openMenu:null},()=>this.onMenuChange(h.name))},selected:h.name===this.state.tab},i?M.createElement(N.ListItemIcon,null,h.icon):null,h.label))):null):o=M.createElement(N.Tabs,{variant:"scrollable",scrollButtons:"auto",style:this.props.schema.tabsStyle,value:this.state.tab,onChange:(h,p)=>this.onMenuChange(p)},u.map(h=>M.createElement(N.Tab,{id:h.name,wrapped:!0,disabled:h.disabled,key:h.name,value:h.name,iconPosition:this.props.schema.iconPosition||"start",icon:h.icon,label:h.label}))),M.createElement("div",{style:un.tabs,ref:this.refDiv},o,M.createElement($t,{oContext:this.props.oContext,withoutSaveButtons:this.props.withoutSaveButtons,isParentTab:!0,changed:this.props.changed,key:this.state.tab,expertMode:this.props.expertMode,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,commandRunning:this.props.commandRunning,style:{...un.panel,...i?un.panelWithIcons:un.panelWithoutIcons},common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onChange:this.props.onChange,onError:this.props.onError,customObj:this.props.customObj,custom:this.props.custom,schema:n[this.state.tab],table:this.props.table,withIcons:i}))}}const Cl={root:{width:"100%",height:"100%"}};class cn extends dt.Component{forceUpdateHandlers;errorTimeout=null;errorCached=null;oContext;constructor(n){super(n),this.state={originalData:JSON.stringify(this.props.data),changed:!1,errors:{},updateData:this.props.updateData||0,systemConfig:null,alive:!1,commandRunning:!1,schema:JSON.parse(JSON.stringify(this.props.schema))},this.forceUpdateHandlers={},this.buildDependencies(this.state.schema),this.readData()}static getDerivedStateFromProps(n,i){return n.updateData!==i.updateData?{updateData:n.updateData,originalData:JSON.stringify(n.data),schema:JSON.parse(JSON.stringify(n.schema))}:null}static async loadI18n(n,i,u){if(i===!0||i&&typeof i=="string"){const v=j.I18n.getLanguage(),o=typeof i=="string"?i:"i18n";let h=await n.fileExists(`${u}.admin`,`${o}/${v}.json`),p;if(h?p=`${o}/${v}.json`:(h=await n.fileExists(`${u}.admin`,`${o}/${v}/translations.json`),h?p=`${o}/${v}/translations.json`:v!=="en"&&(h=await n.fileExists(`${u}.admin`,`${o}/en.json`),h?p=`${o}/en.json`:(h=await n.fileExists(`${u}.admin`,`${o}/en/translations.json`),h&&(p=`${o}/en/translations.json`)))),p){const a=await n.readFile(`${u}.admin`,p);let d;a.file!==void 0?d=a.file:d=a;try{const e=JSON.parse(d);j.I18n.extendTranslations(e,v)}catch(e){return console.error(`Cannot parse language file "${u}.admin/${p}: ${e}`),""}return p}return console.warn(`Cannot find i18n for ${u} / ${p}`),""}return i&&typeof i=="object"&&j.I18n.extendTranslations(i),""}onCommandRunning=n=>this.setState({commandRunning:n});readData(){this.props.socket.getCompactSystemConfig().then(n=>this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(i=>this.setState({systemConfig:n.common,alive:!!(i&&i.val)},()=>{this.updateContext(!0),this.props.custom||this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`,this.onAlive)}))).catch(n=>console.error(`Cannot read system config: ${n}`))}onAlive=(n,i)=>{!!(i!=null&&i.val)!==this.state.alive&&this.setState({alive:!!(i!=null&&i.val)})};onChange=(n,i,u,v)=>{if(this.props.onValueChange)this.props.onValueChange(n,i,v),u&&u();else if(n&&this.props.onChange){const o={changed:JSON.stringify(n)!==this.state.originalData};this.setState(o,()=>{this.props.onChange(n,o.changed,v),u&&u()})}else v&&this.props.onChange(null,null,v)};onError=(n,i)=>{this.errorCached=this.errorCached||JSON.parse(JSON.stringify(this.state.errors));const u=this.errorCached;i?u[n]=i:delete u[n],this.errorTimeout&&clearTimeout(this.errorTimeout),JSON.stringify(u)!==JSON.stringify(this.state.errors)?this.errorTimeout=setTimeout(()=>this.setState({errors:this.errorCached},()=>{this.errorTimeout=null,this.errorCached=null,this.props.onError(!!Object.keys(this.state.errors).length)}),50):this.errorCached=null};flatten(n,i){return i=i||{},n.items&&Object.keys(n.items).forEach(u=>{i[u]=n.items[u],this.flatten(n.items[u],i)}),i}buildDependencies(n){const i=this.flatten(n);Object.keys(i).forEach(u=>{var v,o,h,p,a,d,e,t,r,l;(v=i[u].confirm)!=null&&v.alsoDependsOn&&((o=i[u].confirm)==null||o.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].confirmDependsOn=i[s].confirmDependsOn||[];const c={...i[u],attr:u};c.confirm&&(c.confirm.cancel="Undo"),i[s].confirmDependsOn.push(c)}})),(h=i[u].onChange)!=null&&h.alsoDependsOn&&((p=i[u].onChange)==null||p.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].onChangeDependsOn=i[s].onChangeDependsOn||[];const c={...i[u],attr:u};i[s].onChangeDependsOn.push(c)}})),(a=i[u].hidden)!=null&&a.alsoDependsOn&&((d=i[u].hidden)==null||d.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].hiddenDependsOn=i[s].hiddenDependsOn||[];const c={...i[u],attr:u};i[s].hiddenDependsOn.push(c)}})),(e=i[u].label)!=null&&e.alsoDependsOn&&((t=i[u].label)==null||t.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].labelDependsOn=i[s].labelDependsOn||[];const c={...i[u],attr:u};i[s].labelDependsOn.push(c)}})),(r=i[u].help)!=null&&r.alsoDependsOn&&((l=i[u].help)==null||l.alsoDependsOn.forEach(s=>{if(!i[s])console.error(`[JsonConfigComponent] Attribute ${s} does not exist!`),s.startsWith("data.")&&console.warn(`[JsonConfigComponent] please use "${s.replace(/^data\./,"")}" instead of "${s}"`);else{i[s].helpDependsOn=i[s].helpDependsOn||[];const c={...i[u],attr:u};i[s].helpDependsOn.push(c)}}))})}updateContext(n){this.oContext={DeviceManager:this.props.DeviceManager,adapterName:this.props.adapterName,changeLanguage:this.changeLanguage,common:this.props.common,customs:this.props.customs,dateFormat:this.props.dateFormat,embedded:this.props.embedded,forceUpdate:this.forceAttrUpdate,imagePrefix:this.props.imagePrefix,instance:this.props.instance,instanceObj:this.props.instanceObj,isFloatComma:this.props.isFloatComma,multiEdit:this.props.multiEdit,onBackEndCommand:this.props.onBackEndCommand,onCommandRunning:this.onCommandRunning,onValueChange:this.props.onValueChange,registerOnForceUpdate:this.registerOnForceUpdate,socket:this.props.socket,systemConfig:this.state.systemConfig,theme:this.props.theme,themeType:this.props.themeType,_themeName:this.props.themeName,updateData:this.state.updateData},n&&this.forceUpdate()}renderItem(n){return n.type==="tabs"?M.createElement(wl,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,onChange:this.onChange,onError:(i,u)=>this.onError(i,u),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,expertMode:this.props.expertMode,themeName:this.props.themeName}):n.type==="panel"||!n.type?M.createElement($t,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,expertMode:this.props.expertMode,index:1e3,isParentTab:!this.props.embedded&&!this.props.withoutSaveButtons,onChange:this.onChange,onError:(i,u)=>this.onError(i,u),originalData:JSON.parse(this.state.originalData),root:!0,schema:n,themeName:this.props.themeName}):(console.error(`Unknown item type in root: ${JSON.stringify(n)}`),null)}changeLanguage=()=>{this.forceUpdate()};forceAttrUpdate=(n,i)=>{Array.isArray(n)?n.forEach(u=>this.forceUpdateHandlers[u]&&this.forceUpdateHandlers[u](i)):this.forceUpdateHandlers[n]&&this.forceUpdateHandlers[n](i)};registerOnForceUpdate=(n,i)=>{i?this.forceUpdateHandlers[n]=i:this.forceUpdateHandlers[n]&&delete this.forceUpdateHandlers[n]};render(){return!this.state.systemConfig||!this.oContext?M.createElement(N.LinearProgress,null):(this.oContext._themeName!==this.props.themeName&&(this.oContext._themeName=this.props.themeName,setTimeout(()=>this.updateContext(!0),0)),M.createElement("div",{style:{...!this.props.embedded||this.props.withoutSaveButtons?Cl.root:void 0,...this.props.style,...this.state.schema.style}},this.renderItem(this.state.schema)))}}const Et={root:{width:"100%",height:"100%",overflow:"hidden",position:"relative"},scroll:{height:"calc(100% - 48px)",overflowY:"auto"},exportImportButtons:{position:"absolute",top:5,right:0,zIndex:3},button:{marginRight:"5px"},tooltip:{pointerEvents:"none"}};function El(L,n){let i="";for(let u=0;u{const v=document.createElement("script");v.setAttribute("id",n),v.onload=u,v.src=L,document.getElementsByTagName("head")[0].appendChild(v)})}let xl=class extends j.Router{fileSubscribed=[];fileLangSubscribed="";secret;constructor(n){super(n),this.state={updateData:0,changed:!1,confirmDialog:!1,theme:j.Theme(n.themeName),saveConfigDialog:!1,hash:"_"},this.secret=n.secret||"",this.getInstanceObject().then(i=>this.getConfigFile().then(u=>cn.loadI18n(this.props.socket,u==null?void 0:u.i18n,this.props.adapterName).then(v=>{v&&(this.fileLangSubscribed||(this.fileLangSubscribed=v,this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange))),i?this.setState({schema:u,data:i.native,common:i.common,hash:di(JSON.stringify(u)).toString()}):window.alert(`Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`)})))}componentWillUnmount(){super.componentWillUnmount(),this.fileSubscribed.length&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileSubscribed,this.onFileChange),this.fileSubscribed=[]),this.fileLangSubscribed&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange),this.fileLangSubscribed="")}handleFileSelect=n=>{const i=n.target.files[0];if(i){const u=new FileReader;u.onload=v=>{if(!v.target)return;const o=v.target.result;try{const h=JSON.parse(o);this.setState({data:h,changed:JSON.stringify(h)!==JSON.stringify(this.state.originalData)})}catch{window.alert(j.I18n.t("[JsonConfig] Failed to parse JSON file"))}},u.readAsText(i)}else window.alert(j.I18n.t("[JsonConfig] Failed to open JSON File"))};getExportImportButtons(){return M.createElement("div",{style:Et.exportImportButtons},M.createElement(N.Tooltip,{title:this.props.t("Import settings from JSON file"),slotProps:{popper:{sx:Et.tooltip}}},M.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{const n=document.createElement("input");n.setAttribute("type","file"),n.setAttribute("id","files"),n.setAttribute("opacity",0),n.addEventListener("change",i=>this.handleFileSelect(i),!1),n.click()}},M.createElement(Z.Publish,null))),M.createElement(N.Tooltip,{title:this.props.t("Export setting to JSON file"),slotProps:{popper:{sx:Et.tooltip}}},M.createElement(N.Fab,{size:"small",sx:{"&.MuiFab-root":Et.button},onClick:()=>{this.state.data&&j.Utils.generateFile(`${this.props.adapterName}.${this.props.instance}.json`,this.state.data)}},M.createElement(Z.Publish,{style:{transform:"rotate(180deg)"}}))))}onFileChange=async(n,i,u)=>{var v;if(n===`${this.props.adapterName}.admin`&&u){if(i===this.fileLangSubscribed)try{await cn.loadI18n(this.props.socket,(v=this.state.schema)==null?void 0:v.i18n,this.props.adapterName),this.setState({hash:`${this.state.hash}1`})}catch{}else if(this.fileSubscribed.includes(i))try{const o=await this.getConfigFile(this.fileSubscribed[0]);this.setState({schema:o,hash:di(JSON.stringify(o)).toString()})}catch{}}};async getInstanceObject(){var n;try{const i=await this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`);if(Array.isArray(i.encryptedNative)){if(!this.secret){const u=await this.props.socket.getSystemConfig();await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js"),this.secret=u.native.secret}return(n=i.encryptedNative)==null||n.forEach(u=>{i.native[u]&&(i.native[u]=Dl(this.secret,i.native[u]))}),i}return i}catch(i){window.alert(`[JsonConfig] Cannot read instance object: ${i}`)}return null}renderDialogConfirm(){return this.state.confirmDialog?M.createElement(j.DialogConfirm,{title:j.I18n.t("ra_Please confirm"),text:j.I18n.t("ra_Some data are not stored. Discard?"),ok:j.I18n.t("ra_Discard"),cancel:j.I18n.t("ra_Cancel"),onClose:n=>this.setState({confirmDialog:!1},()=>n&&j.Router.doNavigate(null))}):null}async scanForInclude(n,i){if(typeof n["#include"]=="string"){const v=await this._getConfigFile(n["#include"],[...i]);return delete n["#include"],v&&(n={...n,...v}),n}const u=Object.keys(n);for(let v=0;v ${i.join(" => ")}`),null;i.push(n);try{await this.props.socket.fileExists(`${this.props.adapterName}.admin`,n)||(n="jsonConfig.json");const v=await this.props.socket.readFile(`${this.props.adapterName}.admin`,n);let o="",h="";if(v.file!==void 0&&(h=v.file),typeof h=="string")o=h;else if(h.type==="Buffer"){let p="";const a=new Uint8Array(h.data),d=a.byteLength;for(let e=0;ethis.setState({saveConfigDialog:!1},()=>n&&this.onSave(!0))}):null}findAttr(n,i){if(i=i||this.state.schema,i!=null&&i.items){if(n in i.items)return i.items[n];for(const u of Object.values(i.items)){const v=this.findAttr(n,u);if(v)return v}}return null}postProcessing(n,i,u){if(u=u||this.state.schema,!n){console.error(`Data is empty in postProcessing: ${i}, ${JSON.stringify(u)}`);return}const v=n[i];if(u.items)if(u.type==="table"){const o=v;if(!Array.isArray(o))return;for(const h of o)for(const p of u.items)this.postProcessing(h,p.attr,p)}else for(const[o,h]of Object.entries(u.items)){if(h.type==="panel"||h.type==="tabs"||h.type==="accordion")return;this.postProcessing(n,o,h)}else if(i&&typeof v=="string")if(u.type==="text")u.trim!==!1&&(n[i]=v.trim());else if(u.type==="ip")n[i]=v.trim();else if(u.type==="number"){const o=parseFloat(v.toString().replace(",","."));u.min!==void 0&&ou.max?n[i]=u.max:n[i]=o}else if(u.type==="port"){const o=parseInt(v.toString(),10);u.min!==void 0&&ou.max&&(n[i]=u.max),n[i]!==0&&o<20?n[i]=20:o>65535?n[i]=65535:n[i]=o}else u.type==="checkbox"&&(n[i]=n[i]===!0||n[i]==="true"||n[i]==="on"||n[i]===1||n[i]==="1")}async onSave(n,i){if(n){const u=await this.getInstanceObject();if(!u){console.error("Something went wrong: may be no connection?"),window.alert("Something went wrong: may be no connection?");return}if(!this.state.data||!this.state.schema)return;const v={};for(const h of Object.keys(this.state.data)){const p=this.findAttr(h);(!p||!p.doNotSave||p.type==="state")&&!h.startsWith("_")?K.setValue(u.native,h,this.state.data[h]):(K.setValue(u.native,h,null),v[h]=this.state.data[h])}try{const h=JSON.parse(JSON.stringify(u));if(Array.isArray(h.encryptedNative)){await Bi("../../lib/js/crypto-js/crypto-js.js","crypto-js");for(const p of h.encryptedNative)h.native[p]&&(h.native[p]=Al(this.secret,h.native[p]))}await this.props.socket.setObject(h._id,h)}catch(h){window.alert(`[JsonConfig] Cannot set object: ${h}`)}const o={...u.native,...v};console.log(o),this.setState({changed:!1,data:o,updateData:this.state.updateData+1,originalData:o},()=>i&&j.Router.doNavigate(null))}else this.state.changed?this.setState({confirmDialog:!0}):j.Router.doNavigate(null)}componentDidUpdate(n,i){i.changed!==this.state.changed&&this.props.configStored(!this.state.changed)}async componentDidMount(){const n=`${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;console.log(`fetch ${n}`),await fetch(n)}render(){return!this.state.data||!this.state.schema?M.createElement(N.LinearProgress,null):M.createElement("div",{style:Et.root},this.renderDialogConfirm(),this.getExportImportButtons(),this.renderSaveConfigDialog(),M.createElement(cn,{key:this.state.hash,style:Et.scroll,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,adapterName:this.props.adapterName,instance:this.props.instance,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,schema:this.state.schema,common:this.state.common,expertMode:this.props.expertMode,data:this.state.data,updateData:this.state.updateData,onError:n=>this.setState({error:n}),onChange:(n,i,u)=>{u&&this.state.error&&(window.alert(j.I18n.t("Cannot save configuration because of error in configuration")),u=!1),u&&!this.state.changed&&!i&&(u=!1),n?this.setState({data:n,changed:i,saveConfigDialog:u}):u!==void 0&&this.setState({saveConfigDialog:u})},DeviceManager:this.props.DeviceManager,theme:this.state.theme}),M.createElement(j.SaveCloseButtons,{isIFrame:!1,dense:!0,paddingLeft:0,newReact:!0,theme:this.state.theme,noTextOnButtons:this.props.width==="xs"||this.props.width==="sm"||this.props.width==="md",changed:!!(this.state.error||this.state.changed),error:!!this.state.error,onSave:n=>this.onSave(!0,n),onClose:()=>this.onSave(!1)}))}};export{K as ConfigGeneric,$t as ConfigPanel,xl as JsonConfig,cn as JsonConfigComponent}; diff --git a/admin/custom/assets/index-hlyxqX-8.js b/admin/custom/assets/index-BAaNTm9A.js similarity index 99% rename from admin/custom/assets/index-hlyxqX-8.js rename to admin/custom/assets/index-BAaNTm9A.js index 40c189b12..2435ce620 100644 --- a/admin/custom/assets/index-hlyxqX-8.js +++ b/admin/custom/assets/index-BAaNTm9A.js @@ -1,4 +1,4 @@ -import{w as _e,u as cr,l as ur,a as Nr}from"./createTheme-BwMO3rTt.js";import{C as b,R as a}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{C as g}from"./ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js";import{C as m,a as tc,D as un,u as sc}from"./index-B8sZ2j0S.js";import{g as ic}from"./_commonjsHelpers-D6-XlEtG.js";import{u as oc}from"./useTheme-CDtRWagv.js";import"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import"./useTheme-MELayQMj.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";import"./defaultTheme-avbtL0lf.js";const Ai=11/23/100;function lr(i){const e={r:0,g:0,b:0};if(i.length===7)e.r=parseInt(i.substring(1,3),16),e.g=parseInt(i.substring(3,5),16),e.b=parseInt(i.substring(5,7),16);else if(i.length===4){const t=i[1],s=i[2],o=i[3];e.r=parseInt(t+t,16),e.g=parseInt(s+s,16),e.b=parseInt(o+o,16)}return e}function rc(i){return`#${Math.round(i.r).toString(16)}${Math.round(i.g).toString(16)}${Math.round(i.b).toString(16)}`}function Mc(i,e,t){const s=lr(i),o=lr(e);return s.r+=o.r*(.05+Ai*(t-1)),s.g+=o.g*(.05+Ai*(t-1)),s.b+=o.b*(.05+Ai*(t-1)),rc(s)}function Lr(i,e){const t={};for(let s=1;s<=24;s++)t[`elevation${s}`]={backgroundColor:Mc(i,e,s)};return t}function nc(i,e){var M,n,u,N,l,c,L,j,T,D,z;let t,s;i==="dark"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#121212","#fff")},t={name:i,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="blue"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="colored"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#151d21","#fff")},t={name:i,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):i==="PT"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):i==="DX"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(s={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(n=(M=t.palette)==null?void 0:M.primary)==null?void 0:n.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:cr[300],dark:cr[400]});const o=ur(t),r=o.palette;return ur(o,{...e||void 0,components:{...s,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(u=r.grey)==null?void 0:u[300],color:r.getContrastText&&((N=r.grey)!=null&&N[300])?r.getContrastText(r.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(l=r.text)==null?void 0:l.primary,borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(c=r.action)==null?void 0:c.disabledBackground}`},"&:hover":{borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:Nr(((L=r.text)==null?void 0:L.primary)||"",((j=r.action)==null?void 0:j.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(T=r.text)==null?void 0:T.primary,"&:hover":{backgroundColor:Nr(((D=r.text)==null?void 0:D.primary)||"",((z=r.action)==null?void 0:z.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function ac(){let i,e;const t=new Promise((s,o)=>{i=s,e=o});return t.resolve=i,t.reject=e,t}function Hi(i){return(i==null?void 0:i.rows.map(e=>e.value).filter(e=>!!e))??[]}function Ke(i){return i!=null&&i.startsWith("system.host.")||(i=`system.host.${i}`),i}function Ms(i){return i!=null&&i.startsWith("system.host.")&&(i=i.substring(12)),i}function jr(i){return new Promise(e=>{setTimeout(e,i)})}function xs(i){i=(i||"").toString();const e=i[0]==="*",t=i[i.length-1]==="*";return i=i.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+i+(t?"":"$")}var Re;(function(i){i[i.CONNECTING=0]="CONNECTING",i[i.CONNECTED=1]="CONNECTED",i[i.OBJECTS_LOADED=2]="OBJECTS_LOADED",i[i.READY=3]="READY"})(Re||(Re={}));var ye;(function(i){i.PERMISSION_ERROR="permissionError",i.NOT_CONNECTED="notConnectedError",i.TIMEOUT="timeout",i.NOT_ADMIN="Allowed only in admin",i.NOT_SUPPORTED="Not supported"})(ye||(ye={}));const t4e=ye.PERMISSION_ERROR;ye.NOT_CONNECTED;const cc=["material","echarts","vis"];class je{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=ac();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let s=1;s<=30;s++){if(window.io||window.iob)return e();await jr(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,s=(this.props.protocol||window.location.protocol).replace(":",""),o=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")o="";else{if(window.socketUrl){const n=new URL(window.socketUrl);e=n.hostname,t=n.port,s=n.protocol.replace(":","")}const M=o.lastIndexOf("/");if(M!==-1&&(o=o.substring(0,M+1)),je.isWeb()){const n=o.split("/");n.length>2&&(n.pop(),n.pop(),cc.includes(n[n.length-1])&&n.pop(),o=n.join("/"),o.endsWith("/")||(o+="/"))}}const r=t?`${s}://${e}:${t}`:`${s}://${e}`;return this._socket=(window.io||window.iob).connect(r,{path:o.endsWith("/")?`${o}socket.io`:`${o}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",M=>{window.addEventListener("storage",this.onAccessTokenUpdated);const n=je.readTokens();if(n&&!n.owner){const u=Date.now();this.saveTokens({access_token:n.access_token,refresh_token:n.refresh_token,expires_in:Math.round((n.expires_in.getTime()-u)/1e3),refresh_token_expires_in:Math.round((n.refresh_token_expires_in.getTime()-u)/1e3),token_type:"Bearer"},n.stayLoggedIn)}this.onReadyDone=!1,M!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(u=>{const[N,l,c]=u.version.split(".");parseInt(N,10)*1e4+parseInt(l,10)*100+parseInt(c,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(j,T)=>this.onPreConnect(j,T))}).catch(u=>this.onError({message:u.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(u,N)=>{this.onPreConnect(u,N)})}),this._socket.on("reconnect",()=>{var M,n;this.onReadyDone=!1,(n=(M=this.props).onProgress)==null||n.call(M,Re.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(u=>u(!0)))}),this._socket.on("disconnect",()=>{var M,n;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(n=(M=this.props).onProgress)==null||n.call(M,Re.CONNECTING),this.onConnectionHandlers.forEach(u=>u(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",M=>{var n,u;(u=(n=this.props).onLog)==null||u.call(n,M),this.onLogHandlers.forEach(N=>N(M))}),this._socket.on("error",M=>{let n;M==null?n="":typeof M.toString=="function"?n=M.toString():(n=JSON.stringify(M),console.error(`Received strange error: ${n}`)),n.includes("User not authorized")?this.authenticate():n.includes("websocket error")?(console.error(`Socket Error => reload: ${M}`),window.location.reload()):console.error(`Socket Error: ${M}`)}),this._socket.on("connect_error",M=>console.error(`Connect error: ${M}`)),this._socket.on("permissionError",M=>this.onError({message:"no permission",operation:M.operation,type:M.type,id:M.id||""})),this._socket.on("objectChange",(M,n)=>{setTimeout(()=>this.objectChange(M,n),0)}),this._socket.on("stateChange",(M,n)=>{setTimeout(()=>this.stateChange(M,n),0)}),this._socket.on("im",(M,n,u)=>{setTimeout(()=>this.instanceMessage(M,n,u),0)}),this._socket.on("fileChange",(M,n,u)=>{setTimeout(()=>this.fileChange(M,n,u),0)}),this._socket.on("cmdStdout",(M,n)=>{var u;(u=this.onCmdStdoutHandler)==null||u.call(this,M,n)}),this._socket.on("cmdStderr",(M,n)=>{var u;(u=this.onCmdStderrHandler)==null||u.call(this,M,n)}),this._socket.on("cmdExit",(M,n)=>{var u;(u=this.onCmdExitHandler)==null||u.call(this,M,n)}),Promise.resolve()}onPreConnect(e,t){var s,o;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(r=>console.error(`Cannot load data: ${r}`)):(o=(s=this.props).onProgress)==null||o.call(s,Re.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(r=>r(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[s,o,r,M,n]=e.split(";"),u=new Date(o);return u.getTime(){if(e.key==="iob_tokens"){const t=je.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,s)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):s?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(s=>{if(s.ok)return s.json();throw new Error("Cannot refresh access token")}).then(s=>{if(s.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${s.access_token}`),this.saveTokens(s,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(s.access_token);else throw new Error("Cannot get access token")}).catch(s=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${s}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(s),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const o=JSON.parse(t);if(e{o?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,s)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,s))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(s,o)=>{s?t(s):e(o||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(s=>console.error(`Cannot load data: ${s}`)),this.loaded)return;await jr(je.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,s,o,r,M,n,u,N;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(l){this.onError(`Cannot read user permissions: ${l}`);return}try{this.props.admin5only&&!je.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(l){this.onError(`Cannot read system config: ${l}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(s=(t=this.props).onLanguage)==null||s.call(t,this.systemLang),this.loaded=!0,(r=(o=this.props).onProgress)==null||r.call(o,Re.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(n=(M=this.props).onProgress)==null||n.call(M,Re.READY),this.onReadyDone||(this.onReadyDone=!0,(N=(u=this.props).onReady)==null||N.call(u,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,s,o;e.length===3?[t,s,o]=e:([t,o]=e,s=!1);let r;if(Array.isArray(t)?r=t:r=[t],typeof o!="function")throw new Error("The state change handler must be a function!");const M=[];for(let n=0;nn.includes("*"))){let n;for(let u=0;uconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const n=await(je.isWeb()?this.getStates(r):this.getForeignStates(r));if(n)for(const[u,N]of Object.entries(n)){const l=o(u,N);l instanceof Promise&&l.catch(c=>console.error(`Cannot call state change handler: ${c}`))}}catch(n){console.error(`Cannot getState "${r.join(", ")}": ${n.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var r;let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let M=0;M{try{const l=N(e,t,s);l instanceof Promise&&l.catch(c=>console.error(`Cannot call object change handler: ${c}`))}catch(l){console.error(`Error by callback of objectChange: ${l}`)}});if(o){const n=(M=(r=this.props).onObjectChange)==null?void 0:M.call(r,e,t);n instanceof Promise&&n.catch(u=>console.error(`Cannot call object change handler: ${u}`))}}stateChange(e,t){for(const s of Object.values(this.statesSubscribes))if(s.reg.test(e))for(const o of s.cbs)try{const r=o(e,t??null);r instanceof Promise&&r.catch(M=>console.error(`Cannot call state change handler: ${M}`))}catch(r){console.error(`Error by callback of stateChanged: ${r}`)}}instanceMessage(e,t,s){var o;(o=this._instanceSubscriptions[t])==null||o.forEach(r=>{if(r.messageType===e){const M=r.callback(s,t,e);M instanceof Promise&&M.catch(n=>console.error(`Cannot call instance message handler: ${n}`))}})}fileChange(e,t,s){for(const o of Object.values(this.filesSubscribes))if(o.regId.test(e)&&o.regFilePattern.test(t))for(const r of o.cbs)try{r(e,t,s)}catch(M){console.error(`Error by callback of fileChange: ${M}`)}}async subscribeFiles(e,t,s){if(typeof s!="function")throw new Error("The state change handler must be a function!");let o;Array.isArray(t)?o=t:o=[t];const r=[];for(let M=0;M{const c={elapsed:!1,clearTimeout:()=>{}};let L;s!==!1&&(L=setTimeout(()=>{c.elapsed=!0,o==null||o(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(ye.TIMEOUT))},s??this.props.cmdTimeout),c.clearTimeout=()=>{clearTimeout(L)});try{await n(N,l,c)}catch(j){e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(j.toString()))}});return e&&(this._promises[e]=u),u}resetCache(e,t){t?Object.keys(this._promises).filter(s=>s.startsWith(e)).forEach(s=>{delete this._promises[s]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getStates",e,(o,r)=>{this.states=r??{},o?s(o):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(o,r)=>{o?s(o):t(r)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getBinaryState",e,(o,r)=>{o?s(o):t(r)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setBinaryState",e,t,r=>{r?o(r):s()})}})}setState(e,t,s){return typeof s=="boolean"&&(t={val:t,ack:s}),this.request({commandTimeout:!1,executor:(o,r)=>{if(e&&e===this.ignoreState){let M;if(typeof s=="boolean"||typeof t=="object"&&t.val!==void 0?M=t:M={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=M,this.statesSubscribes[e])for(const n of this.statesSubscribes[e].cbs)try{const u=n(e,M);u instanceof Promise&&u.catch(N=>console.error(`Cannot call state change handler: ${N}`))}catch(u){console.error(`Error by callback of stateChanged: ${u}`)}o();return}this._socket.emit("setState",e,t,M=>{M?r(M):o()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{if(!e&&this.objects){s(this.objects);return}this._socket.emit(je.isWeb()?"getObjects":"getAllObjects",(r,M)=>{var n,u;t||(u=(n=this.props).onProgress)==null||u.call(n,Re.OBJECTS_LOADED),r?o(r):(this.objects=M??{},s(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjects",e,(o,r)=>{o?s(o):t(r)})}})}_subscribe(e){var t,s;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("subscribeObjects",o),Object.keys(this.objectsSubscribes).forEach(r=>this._socket.emit("subscribeObjects",r)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("subscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,n]=r.split("$%$");this._socket.emit("subscribeFiles",M,n)})}else if(!e&&this.subscribed){this.subscribed=!1,(s=this.props.autoSubscribes)!=null&&s.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("unsubscribeObjects",o),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("unsubscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,n]=r.split("$%$");this._socket.emit("unsubscribeFiles",M,n)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("requireLog",e,o=>{o?s(o):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObject",e,{maintenance:t},r=>{r?o(r):s()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObjects",e,{maintenance:t},r=>{r?o(r):s()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(o,r)=>{o?s(o):t(r)})}})}sendTo(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendTo",e,t,s,r=>{o(r)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("extendObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(r,M)=>{if(r)o(r);else{const n={};if(M)for(let u=0;u{s=s||"",o=o||"香",this._socket.emit("getObjectView",e,t,{startkey:s,endkey:o},(n,u)=>{if(n)M(n);else{const N={};if(u&&u.rows)for(let l=0;l{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(s,o)=>{var r;s?t(s):e((r=o.rows)==null?void 0:r.map(M=>M.value).filter(M=>!!M))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("readDir",e,t,(r,M)=>{r?o(r):s(M)})}})}readFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit(s?"readFile64":"readFile",e,t,(M,n,u)=>{M?r(M):o({file:n,mimeType:u})})}})}writeFile64(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{if(typeof s=="string")this._socket.emit("writeFile",e,t,s,M=>{M?r(M):o()});else{const M=btoa(new Uint8Array(s).reduce((n,u)=>n+String.fromCharCode(u),""));this._socket.emit("writeFile64",e,t,M,n=>{n?r(n):o()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r?o(r):s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r?o(r):s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M?r(M):o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M?r(M):o()})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,n)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{n.elapsed||(n.clearTimeout(),u?M(u):r())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let s=await this.getObject("system.config");s??={},s.common??={},s.native??={},t(s)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,s)=>{this._socket.emit("getCompactSystemConfig",(o,r)=>{o?s(o):(r??={},r.common??={},r.native??={},t(r))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getForeignStates",e||"*",(o,r)=>{o?s(o):t(r??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getForeignObjects",e||"*",t,(r,M)=>{r?o(r):s(M)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M)=>{r?o(r):s(M)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M,n,u)=>{r?o(r):s({values:M,sessionId:u,step:n})})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getVersion",(o,r,M)=>{o&&!r&&typeof o=="string"&&o.match(/\d+\.\d+\.\d+/)?t({version:o,serverName:"socketio"}):o?s(o):t({version:r,serverName:M})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(s,o)=>{s?t(s):e(o)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("fileExists",e,t,(r,M)=>{r?o(r):s(!!M)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,s)=>{e(s)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var s;const t=await this.getObject("system.meta.uuid");e((s=t==null?void 0:t.native)==null?void 0:s.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("checkFeatureSupported",e,(r,M)=>{r?o(r):s(M)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=e?`system.adapter.${e}.`:"system.adapter.",r=`${o}香`,M=await this.getObjectViewSystem("instance",o,r),n=Object.values(M);s(e?n.filter(u=>u.common.name===e):n)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),r=Object.values(o);s(e?r.filter(M=>M.common.name===e):r)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",s=>{s?t(s):e(null)})}})}subscribeOnInstance(e,t,s,o){return this.request({commandTimeout:!1,executor:(r,M)=>{this._socket.emit("clientSubscribe",e,t,s,(n,u)=>{n?M(n):u&&(u.error?M(u.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(N=>N.messageType===t&&N.callback===o)||this._instanceSubscriptions[e].push({messageType:t,callback:o}),r(u)))})}})}unsubscribeFromInstance(e,t,s){var M;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let o;const r=[];do{o=!1;const n=(M=this._instanceSubscriptions[e])==null?void 0:M.findIndex(u=>(!t||u.messageType===t)&&(!s||u.callback===s));if(n!=null&&n!==-1){o=!0;const u=this._instanceSubscriptions[e][n].messageType;this._instanceSubscriptions[e].splice(n,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(l=>l.messageType===u)||r.push(this.request({commandTimeout:!1,executor:(l,c)=>{this._socket.emit("clientUnsubscribe",e,t,(L,j)=>L?c(L):l(j))}}))}}while(o&&(!s||!t));return r.length?Promise.all(r).then(n=>!!n.find(u=>u)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:s=>(this._socket.emit("log",e,t),s(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function uc(i,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(i.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(i.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(i.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(o=>o.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:i,type:t}}function Nc(i){var s,o,r,M;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((o=(s=i.native)==null?void 0:s.hardware)!=null&&o.networkInterfaces){const n=(M=(r=i.native)==null?void 0:r.hardware)==null?void 0:M.networkInterfaces;Object.keys(n).forEach(u=>{n[u].forEach(N=>{N.family!=="IPv6"?e.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv4"}):t.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class s4e extends je{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var o;const s=await this.getObject("system.certificates");(o=s==null?void 0:s.native)!=null&&o.certificates?t(Object.entries(s.native.certificates).map(([r,M])=>uc(r,M)).filter(r=>!!r)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"getLogs",t||200,o=>{s(o)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,o=>{s(o)})}})}upgradeController(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:s},M=>{const n=M;n.error?r(n.error):o(n.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("updateLicenses",e,t,(r,M)=>{r?o(r):s(M)})}})}upgradeOsPackages(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!s},r=>{o(r)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("readLogs",e,(o,r)=>{o&&s(o),t(r)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("sendToHost",e,"delLogs",null,o=>{o&&s(o),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r&&o(r),s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r&&o(r),s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M&&r(M),o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M&&r(M),o()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}renameGroup(e,t,s){return this.request({commandTimeout:!1,executor:async o=>{const r=await this.getGroups(!0),M=r.filter(u=>u._id.startsWith(`${e}.`));for(const u of M){const N=u._id,l=t+u._id.substring(e.length);u._id=l,await this.setObject(l,u),await this.delObject(N)}const n=r.find(u=>u._id===e);if(n){const u=n._id;n._id=t,s!==void 0&&(n.common??={},n.common.name=s),await this.setObject(t,n),await this.delObject(u)}o()}})}getHostInfo(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getHostInfo"'):n?o(n):r('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getHostInfoShort"'):n?o(n):r('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,s,o){return this.request({cacheKey:`repository_${e}`,forceUpdate:s,commandTimeout:o,executor:(r,M,n)=>{this._socket.emit("sendToHost",e,"getRepository",t,u=>{n.elapsed||(n.clearTimeout(),u===ye.PERMISSION_ERROR?M('May not read "getRepository"'):u?r(u):M('Cannot read "getRepository"'))})}})}getInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getInstalled",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getInstalled"'):n?o(n):r('Cannot read "getInstalled"'))})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,n)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{n.elapsed||(n.clearTimeout(),u&&M(u),r())})}})}readBaseSettings(e){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,r=>{o.elapsed||(o.clearTimeout(),r===ye.PERMISSION_ERROR?s('May not read "BaseSettings"'):r?r.error?s(new Error(r.error)):t(r):s('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,M=>{r.elapsed||(r.clearTimeout(),M===ye.PERMISSION_ERROR?o('May not write "BaseSettings"'):M?s(M):o('Cannot write "BaseSettings"'))})}})}restartController(e){return e=Ms(e),this.request({executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{o.elapsed||(o.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=Ms(e),this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getDiagData",t,M=>{r.elapsed||(r.clearTimeout(),s(M||null))})}})}changePassword(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("changePassword",e,t,M=>{r.elapsed||(r.clearTimeout(),M&&o(M),s())})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getHostByIp(e,t){return e=Ms(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(s,o,r)=>{this._socket.emit("getHostByIp",e,(M,n)=>{if(r.elapsed)return;r.clearTimeout();const{IPs4:u,IPs6:N}=Nc(n);s([...u,...N])})}})}encrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("encrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}decrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("decrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}chmodFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chmodFile",e,t,s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}chownFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chownFile",e,t,s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}clearNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,s)=>{this._socket.emit("getIsEasyModeStrict",(o,r)=>{s.elapsed||(s.clearTimeout(),o&&t(o),e(!!r))})}})}getEasyMode(){return this.request({executor:(e,t,s)=>{this._socket.emit("getEasyMode",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(new Error(o)):e(r))})}})}getRatings(e){return this.request({executor:(t,s,o)=>{this._socket.emit("getRatings",!!e,(r,M)=>{o.elapsed||(o.clearTimeout(),r?s(new Error(r)):t(M))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(s,o,r)=>{try{const M=await fetch("./session",{signal:t.signal});if(r.elapsed)return;r.clearTimeout();const n=await M.json();s(n)}catch(M){o(`getCurrentSession: ${M}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,s)=>{this._socket.emit("getCurrentInstance",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(o):e(r))})}})}getAdapterInstances(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`instances_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapterInstances",s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getAdapters(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`adapter_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapters",s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactAdapters",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactInstances",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactInstalled",e,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getCompactInstalled"'):n?o(n):r('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,s){return e=Ke(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactRepository",e,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getCompactRepository"'):n?o(n):r('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactHosts",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactSystemRepositories",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}}const Z=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ot="9.29.0",te=globalThis;function Ni(){return li(te),te}function li(i){const e=i.__SENTRY__=i.__SENTRY__||{};return e.version=e.version||Ot,e[Ot]=e[Ot]||{}}function Li(i,e,t=te){const s=t.__SENTRY__=t.__SENTRY__||{},o=s[Ot]=s[Ot]||{};return o[i]||(o[i]=e())}const Nn=Object.prototype.toString;function ko(i){switch(Nn.call(i)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Tt(i,Error)}}function es(i,e){return Nn.call(i)===`[object ${e}]`}function ln(i){return es(i,"ErrorEvent")}function gr(i){return es(i,"DOMError")}function lc(i){return es(i,"DOMException")}function tt(i){return es(i,"String")}function Yo(i){return typeof i=="object"&&i!==null&&"__sentry_template_string__"in i&&"__sentry_template_values__"in i}function Qo(i){return i===null||Yo(i)||typeof i!="object"&&typeof i!="function"}function ds(i){return es(i,"Object")}function ji(i){return typeof Event<"u"&&Tt(i,Event)}function Lc(i){return typeof Element<"u"&&Tt(i,Element)}function jc(i){return es(i,"RegExp")}function gi(i){return!!(i!=null&&i.then&&typeof i.then=="function")}function gc(i){return ds(i)&&"nativeEvent"in i&&"preventDefault"in i&&"stopPropagation"in i}function Tt(i,e){try{return i instanceof e}catch{return!1}}function Ln(i){return!!(typeof i=="object"&&i!==null&&(i.__isVue||i._isVue))}function Tc(i){return typeof Request<"u"&&Tt(i,Request)}const Uo=te,yc=80;function jn(i,e={}){if(!i)return"";try{let t=i;const s=5,o=[];let r=0,M=0;const n=" > ",u=n.length;let N;const l=Array.isArray(e)?e:e.keyAttrs,c=!Array.isArray(e)&&e.maxStringLength||yc;for(;t&&r++1&&M+o.length*u+N.length>=c));)o.push(N),M+=N.length,t=t.parentNode;return o.reverse().join(n)}catch{return""}}function Dc(i,e){const t=i,s=[];if(!(t!=null&&t.tagName))return"";if(Uo.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}s.push(t.tagName.toLowerCase());const o=e!=null&&e.length?e.filter(M=>t.getAttribute(M)).map(M=>[M,t.getAttribute(M)]):null;if(o!=null&&o.length)o.forEach(M=>{s.push(`[${M[0]}="${M[1]}"]`)});else{t.id&&s.push(`#${t.id}`);const M=t.className;if(M&&tt(M)){const n=M.split(/\s+/);for(const u of n)s.push(`.${u}`)}}const r=["aria-label","type","name","title","alt"];for(const M of r){const n=t.getAttribute(M);n&&s.push(`[${M}="${n}"]`)}return s.join("")}function vo(){try{return Uo.document.location.href}catch{return""}}function dc(i){if(!Uo.HTMLElement)return null;let e=i;const t=5;for(let s=0;s{const r=ti[o];t[o]=e[o],e[o]=r});try{return i()}finally{s.forEach(o=>{e[o]=t[o]})}}function Ic(){let i=!1;const e={enable:()=>{i=!0},disable:()=>{i=!1},isEnabled:()=>i};return Z?Vi.forEach(t=>{e[t]=(...s)=>{i&&ts(()=>{te.console[t](`${zc}[${t}]:`,...s)})}}):Vi.forEach(t=>{e[t]=()=>{}}),e}const B=Li("logger",Ic);function si(i,e=0){return typeof i!="string"||e===0||i.length<=e?i:`${i.slice(0,e)}...`}function Tr(i,e){if(!Array.isArray(i))return"";const t=[];for(let s=0;swc(i,s,t))}function Ee(i,e,t){if(!(e in i))return;const s=i[e];if(typeof s!="function")return;const o=t(s);typeof o=="function"&&gn(o,s);try{i[e]=o}catch{Z&&B.log(`Failed to replace method "${e}" in object`,i)}}function Et(i,e,t){try{Object.defineProperty(i,e,{value:t,writable:!0,configurable:!0})}catch{Z&&B.log(`Failed to add non-enumerable property "${e}" to object`,i)}}function gn(i,e){try{const t=e.prototype||{};i.prototype=e.prototype=t,Et(i,"__sentry_original__",e)}catch{}}function bo(i){return i.__sentry_original__}function Tn(i){if(ko(i))return{message:i.message,name:i.name,stack:i.stack,...Dr(i)};if(ji(i)){const e={type:i.type,target:yr(i.target),currentTarget:yr(i.currentTarget),...Dr(i)};return typeof CustomEvent<"u"&&Tt(i,CustomEvent)&&(e.detail=i.detail),e}else return i}function yr(i){try{return Lc(i)?jn(i):Object.prototype.toString.call(i)}catch{return""}}function Dr(i){if(typeof i=="object"&&i!==null){const e={};for(const t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t]);return e}else return{}}function Cc(i,e=40){const t=Object.keys(Tn(i));t.sort();const s=t[0];if(!s)return"[object has no keys]";if(s.length>=e)return si(s,e);for(let o=t.length;o>0;o--){const r=t.slice(0,o).join(", ");if(!(r.length>e))return o===t.length?r:si(r,e)}return""}function hc(){const i=te;return i.crypto||i.msCrypto}function fe(i=hc()){let e=()=>Math.random()*16;try{if(i!=null&&i.randomUUID)return i.randomUUID().replace(/-/g,"");i!=null&&i.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return i.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function yn(i){var e,t;return(t=(e=i.exception)==null?void 0:e.values)==null?void 0:t[0]}function pt(i){const{message:e,event_id:t}=i;if(e)return e;const s=yn(i);return s?s.type&&s.value?`${s.type}: ${s.value}`:s.type||s.value||t||"":t||""}function Zi(i,e,t){const s=i.exception=i.exception||{},o=s.values=s.values||[],r=o[0]=o[0]||{};r.value||(r.value=e||""),r.type||(r.type="Error")}function Zt(i,e){const t=yn(i);if(!t)return;const s={type:"generic",handled:!0},o=t.mechanism;if(t.mechanism={...s,...o,...e},e&&"data"in e){const r={...o==null?void 0:o.data,...e.data};t.mechanism.data=r}}function dr(i){if(Ac(i))return!0;try{Et(i,"__sentry_captured__",!0)}catch{}return!1}function Ac(i){try{return i.__sentry_captured__}catch{}}const Dn=1e3;function ps(){return Date.now()/Dn}function pc(){const{performance:i}=te;if(!(i!=null&&i.now))return ps;const e=Date.now()-i.now(),t=i.timeOrigin==null?e:i.timeOrigin;return()=>(t+i.now())/Dn}const st=pc();function mc(i){const e=st(),t={sid:fe(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>Ec(t)};return i&&Xt(t,i),t}function Xt(i,e={}){if(e.user&&(!i.ipAddress&&e.user.ip_address&&(i.ipAddress=e.user.ip_address),!i.did&&!e.did&&(i.did=e.user.id||e.user.email||e.user.username)),i.timestamp=e.timestamp||st(),e.abnormal_mechanism&&(i.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(i.ignoreDuration=e.ignoreDuration),e.sid&&(i.sid=e.sid.length===32?e.sid:fe()),e.init!==void 0&&(i.init=e.init),!i.did&&e.did&&(i.did=`${e.did}`),typeof e.started=="number"&&(i.started=e.started),i.ignoreDuration)i.duration=void 0;else if(typeof e.duration=="number")i.duration=e.duration;else{const t=i.timestamp-i.started;i.duration=t>=0?t:0}e.release&&(i.release=e.release),e.environment&&(i.environment=e.environment),!i.ipAddress&&e.ipAddress&&(i.ipAddress=e.ipAddress),!i.userAgent&&e.userAgent&&(i.userAgent=e.userAgent),typeof e.errors=="number"&&(i.errors=e.errors),e.status&&(i.status=e.status)}function Oc(i,e){let t={};i.status==="ok"&&(t={status:"exited"}),Xt(i,t)}function Ec(i){return{sid:`${i.sid}`,init:i.init,started:new Date(i.started*1e3).toISOString(),timestamp:new Date(i.timestamp*1e3).toISOString(),status:i.status,errors:i.errors,did:typeof i.did=="number"||typeof i.did=="string"?`${i.did}`:void 0,duration:i.duration,abnormal_mechanism:i.abnormal_mechanism,attrs:{release:i.release,environment:i.environment,ip_address:i.ipAddress,user_agent:i.userAgent}}}function ms(i,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(i&&Object.keys(e).length===0)return i;const s={...i};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=ms(s[o],e[o],t-1));return s}const Xi="_sentrySpan";function zr(i,e){e?Et(i,Xi,e):delete i[Xi]}function Ir(i){return i[Xi]}function wr(){return fe()}function dn(){return fe().substring(16)}const _c=100;class it{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:wr(),sampleRand:Math.random()}}clone(){const e=new it;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,zr(e,Ir(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Xt(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,s=t instanceof it?t.getScopeData():ds(t)?e:void 0,{tags:o,extra:r,user:M,contexts:n,level:u,fingerprint:N=[],propagationContext:l}=s||{};return this._tags={...this._tags,...o},this._extra={...this._extra,...r},this._contexts={...this._contexts,...n},M&&Object.keys(M).length&&(this._user=M),u&&(this._level=u),N.length&&(this._fingerprint=N),l&&(this._propagationContext=l),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,zr(this,void 0),this._attachments=[],this.setPropagationContext({traceId:wr(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var r;const s=typeof t=="number"?t:_c;if(s<=0)return this;const o={timestamp:ps(),...e,message:e.message?si(e.message,2048):e.message};return this._breadcrumbs.push(o),this._breadcrumbs.length>s&&(this._breadcrumbs=this._breadcrumbs.slice(-s),(r=this._client)==null||r.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Ir(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=ms(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const s=(t==null?void 0:t.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture exception!"),s;const o=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:o,...t,event_id:s},this),s}captureMessage(e,t,s){const o=(s==null?void 0:s.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture message!"),o;const r=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:r,...s,event_id:o},this),o}captureEvent(e,t){const s=(t==null?void 0:t.event_id)||fe();return this._client?(this._client.captureEvent(e,{...t,event_id:s},this),s):(B.warn("No client configured on scope - will not capture event!"),s)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function Sc(){return Li("defaultCurrentScope",()=>new it)}function xc(){return Li("defaultIsolationScope",()=>new it)}class fc{constructor(e,t){let s;e?s=e:s=new it;let o;t?o=t:o=new it,this._stack=[{scope:s}],this._isolationScope=o}withScope(e){const t=this._pushScope();let s;try{s=e(t)}catch(o){throw this._popScope(),o}return gi(s)?s.then(o=>(this._popScope(),o),o=>{throw this._popScope(),o}):(this._popScope(),s)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Kt(){const i=Ni(),e=li(i);return e.stack=e.stack||new fc(Sc(),xc())}function kc(i){return Kt().withScope(i)}function Yc(i,e){const t=Kt();return t.withScope(()=>(t.getStackTop().scope=i,e(i)))}function Cr(i){return Kt().withScope(()=>i(Kt().getIsolationScope()))}function Qc(){return{withIsolationScope:Cr,withScope:kc,withSetScope:Yc,withSetIsolationScope:(i,e)=>Cr(e),getCurrentScope:()=>Kt().getScope(),getIsolationScope:()=>Kt().getIsolationScope()}}function $o(i){const e=li(i);return e.acs?e.acs:Qc()}function ot(){const i=Ni();return $o(i).getCurrentScope()}function Os(){const i=Ni();return $o(i).getIsolationScope()}function Uc(){return Li("globalScope",()=>new it)}function vc(...i){const e=Ni(),t=$o(e);if(i.length===2){const[s,o]=i;return s?t.withSetScope(s,o):t.withScope(o)}return t.withScope(i[0])}function we(){return ot().getClient()}function bc(i){const e=i.getPropagationContext(),{traceId:t,parentSpanId:s,propagationSpanId:o}=e,r={trace_id:t,span_id:o||dn()};return s&&(r.parent_span_id=s),r}const $c="sentry.source",Pc="sentry.sample_rate",Wc="sentry.previous_trace_sample_rate",Rc="sentry.op",Jc="sentry.origin",zn="sentry.profile_id",In="sentry.exclusive_time",Bc=0,Fc=1,Gc="_sentryScope",Hc="_sentryIsolationScope";function wn(i){return{scope:i[Gc],isolationScope:i[Hc]}}function Vc(i){if(typeof i=="boolean")return Number(i);const e=typeof i=="string"?parseFloat(i):i;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Zc="sentry-",Xc=/^sentry-/;function Kc(i){const e=qc(i);if(!e)return;const t=Object.entries(e).reduce((s,[o,r])=>{if(o.match(Xc)){const M=o.slice(Zc.length);s[M]=r}return s},{});if(Object.keys(t).length>0)return t}function qc(i){if(!(!i||!tt(i)&&!Array.isArray(i)))return Array.isArray(i)?i.reduce((e,t)=>{const s=hr(t);return Object.entries(s).forEach(([o,r])=>{e[o]=r}),e},{}):hr(i)}function hr(i){return i.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,s])=>(t&&s&&(e[t]=s),e),{})}const Cn=1;let Ar=!1;function eu(i){const{spanId:e,traceId:t,isRemote:s}=i.spanContext(),o=s?e:Po(i).parent_span_id,r=wn(i).scope,M=s?(r==null?void 0:r.getPropagationContext().propagationSpanId)||dn():e;return{parent_span_id:o,span_id:M,trace_id:t}}function tu(i){if(i&&i.length>0)return i.map(({context:{spanId:e,traceId:t,traceFlags:s,...o},attributes:r})=>({span_id:e,trace_id:t,sampled:s===Cn,attributes:r,...o}))}function pr(i){return typeof i=="number"?mr(i):Array.isArray(i)?i[0]+i[1]/1e9:i instanceof Date?mr(i.getTime()):st()}function mr(i){return i>9999999999?i/1e3:i}function Po(i){var s;if(iu(i))return i.getSpanJSON();const{spanId:e,traceId:t}=i.spanContext();if(su(i)){const{attributes:o,startTime:r,name:M,endTime:n,status:u,links:N}=i,l="parentSpanId"in i?i.parentSpanId:"parentSpanContext"in i?(s=i.parentSpanContext)==null?void 0:s.spanId:void 0;return{span_id:e,trace_id:t,data:o,description:M,parent_span_id:l,start_timestamp:pr(r),timestamp:pr(n)||void 0,status:ru(u),op:o[Rc],origin:o[Jc],links:tu(N)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function su(i){const e=i;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function iu(i){return typeof i.getSpanJSON=="function"}function ou(i){const{traceFlags:e}=i.spanContext();return e===Cn}function ru(i){if(!(!i||i.code===Bc))return i.code===Fc?"ok":i.message||"unknown_error"}const Mu="_sentryRootSpan";function hn(i){return i[Mu]||i}function Or(){Ar||(ts(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),Ar=!0)}const An=50,_t="?",Er=/\(error: (.*)\)/,_r=/captureMessage|captureException/;function pn(...i){const e=i.sort((t,s)=>t[0]-s[0]).map(t=>t[1]);return(t,s=0,o=0)=>{const r=[],M=t.split(` +import{w as _e,u as cr,l as ur,a as Nr}from"./createTheme-BwMO3rTt.js";import{C as b,R as a}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{C as g}from"./ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js";import{C as m,a as tc,D as un,u as sc}from"./index-B8sZ2j0S.js";import{g as ic}from"./_commonjsHelpers-D6-XlEtG.js";import{u as oc}from"./useTheme-CDtRWagv.js";import"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import"./useTheme-MELayQMj.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";import"./defaultTheme-avbtL0lf.js";const Ai=11/23/100;function lr(i){const e={r:0,g:0,b:0};if(i.length===7)e.r=parseInt(i.substring(1,3),16),e.g=parseInt(i.substring(3,5),16),e.b=parseInt(i.substring(5,7),16);else if(i.length===4){const t=i[1],s=i[2],o=i[3];e.r=parseInt(t+t,16),e.g=parseInt(s+s,16),e.b=parseInt(o+o,16)}return e}function rc(i){return`#${Math.round(i.r).toString(16)}${Math.round(i.g).toString(16)}${Math.round(i.b).toString(16)}`}function Mc(i,e,t){const s=lr(i),o=lr(e);return s.r+=o.r*(.05+Ai*(t-1)),s.g+=o.g*(.05+Ai*(t-1)),s.b+=o.b*(.05+Ai*(t-1)),rc(s)}function Lr(i,e){const t={};for(let s=1;s<=24;s++)t[`elevation${s}`]={backgroundColor:Mc(i,e,s)};return t}function nc(i,e){var M,n,u,N,l,c,L,j,T,D,z;let t,s;i==="dark"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#272727"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#121212","#fff")},t={name:i,palette:{mode:"dark",background:{paper:"#121212",default:"#121212"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="blue"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#3399CC"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"dark",background:{paper:"#151d21",default:"#151d21"},primary:{main:"#4dabf5"},secondary:{main:"#436a93"},expert:"#14bb00",text:{primary:"#ffffff",secondary:"#ffffff"}}}):i==="colored"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#2a3135"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[200],"&:hover":{color:_e[100]}}},MuiPaper:Lr("#151d21","#fff")},t={name:i,palette:{mode:"light",primary:{main:"#3399CC"},secondary:{main:"#164477"},expert:"#96fc96"}}):i==="PT"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#0F99DE"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#0F99DE"},secondary:{main:"#88A536"},expert:"#BD1B24"}}):i==="DX"?(s={MuiAppBar:{colorDefault:{backgroundColor:"#a9a9a9"}},MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#F5F5F7"},secondary:{main:"#a9a9a9"},expert:"#BD1B24",text:{primary:"#007AFE",secondary:"#007AFE",disabled:"#007AFEAA"}}}):(s={MuiLink:{root:{textTransform:"uppercase",transition:"color .3s ease",color:_e[400],"&:hover":{color:_e[300]}}}},t={name:i,palette:{mode:"light",primary:{main:"#3399CC",dark:"#256c97",light:"#76d0fd"},secondary:{main:"#164477"},expert:"#14bb00"}}),t.toolbar={height:48},t.saveToolbar={background:(n=(M=t.palette)==null?void 0:M.primary)==null?void 0:n.main,button:{borderRadius:3,height:32}},t.palette&&(t.palette.grey={main:cr[300],dark:cr[400]});const o=ur(t),r=o.palette;return ur(o,{...e||void 0,components:{...s,MuiButton:{variants:[{props:{variant:"contained",color:"grey"},style:{backgroundColor:(u=r.grey)==null?void 0:u[300],color:r.getContrastText&&((N=r.grey)!=null&&N[300])?r.getContrastText(r.grey[300]):void 0}},{props:{variant:"outlined",color:"grey"},style:{color:(l=r.text)==null?void 0:l.primary,borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)","&.Mui-disabled":{border:`1px solid ${(c=r.action)==null?void 0:c.disabledBackground}`},"&:hover":{borderColor:r.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)",backgroundColor:Nr(((L=r.text)==null?void 0:L.primary)||"",((j=r.action)==null?void 0:j.hoverOpacity)||.04)}}},{props:{variant:"text",color:"grey"},style:{color:(T=r.text)==null?void 0:T.primary,"&:hover":{backgroundColor:Nr(((D=r.text)==null?void 0:D.primary)||"",((z=r.action)==null?void 0:z.hoverOpacity)||.04)}}}]},...(e==null?void 0:e.components)||void 0}})}function ac(){let i,e;const t=new Promise((s,o)=>{i=s,e=o});return t.resolve=i,t.reject=e,t}function Hi(i){return(i==null?void 0:i.rows.map(e=>e.value).filter(e=>!!e))??[]}function Ke(i){return i!=null&&i.startsWith("system.host.")||(i=`system.host.${i}`),i}function Ms(i){return i!=null&&i.startsWith("system.host.")&&(i=i.substring(12)),i}function jr(i){return new Promise(e=>{setTimeout(e,i)})}function xs(i){i=(i||"").toString();const e=i[0]==="*",t=i[i.length-1]==="*";return i=i.replace(/[-/\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*"),(e?"":"^")+i+(t?"":"$")}var Re;(function(i){i[i.CONNECTING=0]="CONNECTING",i[i.CONNECTED=1]="CONNECTED",i[i.OBJECTS_LOADED=2]="OBJECTS_LOADED",i[i.READY=3]="READY"})(Re||(Re={}));var ye;(function(i){i.PERMISSION_ERROR="permissionError",i.NOT_CONNECTED="notConnectedError",i.TIMEOUT="timeout",i.NOT_ADMIN="Allowed only in admin",i.NOT_SUPPORTED="Not supported"})(ye||(ye={}));const t4e=ye.PERMISSION_ERROR;ye.NOT_CONNECTED;const cc=["material","echarts","vis"];class je{constructor(e){this.props=this.applyDefaultProps(e),this.connId=`${this.props.name?`${this.props.name}-`:""}${Math.round(Math.random()*1e6).toString().padStart(6,"0")}`,this.waitForSocketLib().then(()=>this.startSocket()).catch(t=>{alert(`Socket connection could not be initialized: ${t}`)})}applyDefaultProps(e){return{...e,protocol:e.protocol||window.location.protocol,host:e.host||window.location.hostname,port:e.port||(window.location.port==="3000"?8081:window.location.port),ioTimeout:Math.max(e.ioTimeout||2e4,2e4),cmdTimeout:Math.max(e.cmdTimeout||5e3,5e3),admin5only:e.admin5only||!1,autoSubscribes:e.autoSubscribes??[],autoSubscribeLog:e.autoSubscribeLog??!1,doNotLoadACL:e.doNotLoadACL??!0,doNotLoadAllObjects:e.doNotLoadAllObjects??!0}}props;connId;lastAccessToken=null;ignoreState="";connected=!1;subscribed=!1;firstConnect=!0;waitForRestart=!1;loaded=!1;simStates={};statesSubscribes={};filesSubscribes={};objectsSubscribes={};objects={};states={};acl=null;isSecure=!1;onReadyDone=!1;onConnectionHandlers=[];onLogHandlers=[];onCmdStdoutHandler;onCmdStderrHandler;onCmdExitHandler;onError(e){(this.props.onError??console.error)(e)}_socket;_waitForSocketPromise;_waitForFirstConnectionPromise=ac();_instanceSubscriptions={};_promises={};_authTimer=null;_refreshTimer=null;_systemConfig;get systemConfig(){return this._systemConfig}systemLang="en";static isWeb(){return window.socketUrl!==void 0}waitForSocketLib(){return this._waitForSocketPromise?this._waitForSocketPromise:(this._waitForSocketPromise=new Promise(async(e,t)=>{if(typeof window.io>"u"&&typeof window.iob>"u")if(typeof window.registerSocketOnLoad=="function")window.registerSocketOnLoad(()=>e());else{for(let s=1;s<=30;s++){if(window.io||window.iob)return e();await jr(100)}t(new Error("Socket library could not be loaded!"))}else e()}),this._waitForSocketPromise)}async startSocket(){if(this._socket)return;let e=this.props.host,t=this.props.port,s=(this.props.protocol||window.location.protocol).replace(":",""),o=window.location.pathname;if(window.location.hostname==="iobroker.net"||window.location.hostname==="iobroker.pro")o="";else{if(window.socketUrl){const n=new URL(window.socketUrl);e=n.hostname,t=n.port,s=n.protocol.replace(":","")}const M=o.lastIndexOf("/");if(M!==-1&&(o=o.substring(0,M+1)),je.isWeb()){const n=o.split("/");n.length>2&&(n.pop(),n.pop(),cc.includes(n[n.length-1])&&n.pop(),o=n.join("/"),o.endsWith("/")||(o+="/"))}}const r=t?`${s}://${e}:${t}`:`${s}://${e}`;return this._socket=(window.io||window.iob).connect(r,{path:o.endsWith("/")?`${o}socket.io`:`${o}/socket.io`,query:"ws=true",name:this.props.name,timeout:this.props.ioTimeout,uuid:this.props.uuid,token:this.props.token}),this._socket.on("connect",M=>{window.addEventListener("storage",this.onAccessTokenUpdated);const n=je.readTokens();if(n&&!n.owner){const u=Date.now();this.saveTokens({access_token:n.access_token,refresh_token:n.refresh_token,expires_in:Math.round((n.expires_in.getTime()-u)/1e3),refresh_token_expires_in:Math.round((n.refresh_token_expires_in.getTime()-u)/1e3),token_type:"Bearer"},n.stayLoggedIn)}this.onReadyDone=!1,M!==!0?(this.connected=!0,setTimeout(()=>this.getVersion().then(u=>{const[N,l,c]=u.version.split(".");parseInt(N,10)*1e4+parseInt(l,10)*100+parseInt(c,10)<40102?(this._authTimer=null,this.onPreConnect(!1,!1)):this._socket.emit("authenticate",(j,T)=>this.onPreConnect(j,T))}).catch(u=>this.onError({message:u.toString(),operation:"getVersion"})),500)):this._socket.emit("authenticate",(u,N)=>{this.onPreConnect(u,N)})}),this._socket.on("reconnect",()=>{var M,n;this.onReadyDone=!1,(n=(M=this.props).onProgress)==null||n.call(M,Re.READY),this.connected=!0,this.waitForRestart?window.location.reload():(this._subscribe(!0),this.onConnectionHandlers.forEach(u=>u(!0)))}),this._socket.on("disconnect",()=>{var M,n;this.onReadyDone=!1,this.connected=!1,this.subscribed=!1,(n=(M=this.props).onProgress)==null||n.call(M,Re.CONNECTING),this.onConnectionHandlers.forEach(u=>u(!1))}),this._socket.on("reauthenticate",()=>this.authenticate()),this._socket.on("log",M=>{var n,u;(u=(n=this.props).onLog)==null||u.call(n,M),this.onLogHandlers.forEach(N=>N(M))}),this._socket.on("error",M=>{let n;M==null?n="":typeof M.toString=="function"?n=M.toString():(n=JSON.stringify(M),console.error(`Received strange error: ${n}`)),n.includes("User not authorized")?this.authenticate():n.includes("websocket error")?(console.error(`Socket Error => reload: ${M}`),window.location.reload()):console.error(`Socket Error: ${M}`)}),this._socket.on("connect_error",M=>console.error(`Connect error: ${M}`)),this._socket.on("permissionError",M=>this.onError({message:"no permission",operation:M.operation,type:M.type,id:M.id||""})),this._socket.on("objectChange",(M,n)=>{setTimeout(()=>this.objectChange(M,n),0)}),this._socket.on("stateChange",(M,n)=>{setTimeout(()=>this.stateChange(M,n),0)}),this._socket.on("im",(M,n,u)=>{setTimeout(()=>this.instanceMessage(M,n,u),0)}),this._socket.on("fileChange",(M,n,u)=>{setTimeout(()=>this.fileChange(M,n,u),0)}),this._socket.on("cmdStdout",(M,n)=>{var u;(u=this.onCmdStdoutHandler)==null||u.call(this,M,n)}),this._socket.on("cmdStderr",(M,n)=>{var u;(u=this.onCmdStderrHandler)==null||u.call(this,M,n)}),this._socket.on("cmdExit",(M,n)=>{var u;(u=this.onCmdExitHandler)==null||u.call(this,M,n)}),Promise.resolve()}onPreConnect(e,t){var s,o;this._authTimer&&(clearTimeout(this._authTimer),this._authTimer=null),this.connected=!0,this.isSecure=t,this.waitForRestart?window.location.reload():(this.firstConnect?this.loadData().catch(r=>console.error(`Cannot load data: ${r}`)):(o=(s=this.props).onProgress)==null||o.call(s,Re.READY),this._subscribe(!0),this.onConnectionHandlers.forEach(r=>r(!0)),this.checkAccessTokenExpire()),this._waitForFirstConnectionPromise.resolve()}static readTokens(){let e=window.sessionStorage.getItem("iob_tokens");const t=!e;if(e||(e=window.localStorage.getItem("iob_tokens")),!e)return null;const[s,o,r,M,n]=e.split(";"),u=new Date(o);return u.getTime(){if(e.key==="iob_tokens"){const t=je.readTokens();t&&(console.log(`Tab ${this.connId} received updated token: ${t.access_token}`),this.updateTokenExpiration(t.access_token))}};updateTokenExpiration(e){this.lastAccessToken!==e&&(this.lastAccessToken=e,this._socket.emit("updateTokenExpiration",e,(t,s)=>{t?(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token: ${t}`),window.location.reload()):s?console.log(`[UPDATE/${new Date().toISOString()}] server accepted new token: ${e}`):(console.error(`[UPDATE/${new Date().toISOString()}] cannot say to server about new token`),window.location.reload())})),this.checkAccessTokenExpire()}refreshTokens(e,t){if(!e){console.log(`[REFRESH/${new Date().toISOString()}] No token structure found => reloading the page`),setTimeout(()=>window.location.reload(),500);return}t||!e.owner||e.owner===this.connId?(console.log(`[REFRESH/${new Date().toISOString()}] claim ownership of the token`),this.acquireTokenLock()?(console.log(`[REFRESH/${new Date().toISOString()}] refreshing token`),fetch("./oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:`grant_type=refresh_token&refresh_token=${e.refresh_token}&client_id=ioBroker&stayloggedin=${e.stayLoggedIn}`}).then(s=>{if(s.ok)return s.json();throw new Error("Cannot refresh access token")}).then(s=>{if(s.access_token)console.log(`[REFRESH/${new Date().toISOString()}] received new token: ${s.access_token}`),this.saveTokens(s,e.stayLoggedIn),this.releaseTokenLock(),this.updateTokenExpiration(s.access_token);else throw new Error("Cannot get access token")}).catch(s=>{console.warn(`[REFRESH/${new Date().toISOString()}] cannot refresh token: ${s}`),this.releaseTokenLock(),this.deleteTokens(e.stayLoggedIn),console.error(s),window.location.reload()})):(console.log(`[REFRESH/${new Date().toISOString()}] Someone else is updating the token, so wait for the next check`),this.checkAccessTokenExpire())):this.lastAccessToken!==e.access_token&&this.updateTokenExpiration(e.access_token)}acquireTokenLock(){const e=Date.now(),t=localStorage.getItem("iob_token_semaphore");if(t)try{const o=JSON.parse(t);if(e{o?(console.log(`[TOKEN/${new Date().toISOString()}] Token will be prolonged`),this.refreshTokens(e,s)):(console.log(`[TOKEN/${new Date().toISOString()}] Token will not be prolonged. Reloading the page`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))})):(console.log(`[TOKEN/${new Date().toISOString()}] No tokenTimeoutHandler defined. Prolonging the token`),this.refreshTokens(e,s))):this.lastAccessToken!==e.access_token?(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token, but we will inform the server about new token`),this.refreshTokens(e)):(console.log(`[TOKEN/${new Date().toISOString()}] We are not the owner of the token and the token did not change. Check in 3 seconds if the owner updated the token`),this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},3e3)):(console.log(`[TOKEN/${new Date().toISOString()}] We do not have a refresh token, so we need to reauthenticate`),setTimeout(()=>window.location.reload(),Date.now()>t?500:t-Date.now()))}else this._refreshTimer=setTimeout(()=>{this._refreshTimer=null,this.checkAccessTokenExpire()},t-Date.now()-3e4>12e4?12e4:t-Date.now()-3e4)}}}static isCloud(){return window.location.hostname.includes("amazonaws.com")||window.location.hostname.includes("iobroker.in")?!0:typeof window.socketUrl>"u"?!1:window.socketUrl.includes("iobroker.in")||window.socketUrl.includes("amazonaws")}isConnected(){return this.connected}waitForFirstConnection(){return this._waitForFirstConnectionPromise}async getUserPermissions(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getUserPermissions",(s,o)=>{s?t(s):e(o||null)})}})}async loadData(){if(this.loaded)return;const e=10;for(let t=1;t<=e;t++){if(this.doLoadData().catch(s=>console.error(`Cannot load data: ${s}`)),this.loaded)return;await jr(je.isCloud()?5e3:1e3)}}async doLoadData(){var e,t,s,o,r,M,n,u,N;if(!this.loaded){if(!this.props.doNotLoadACL)try{this.acl=await this.getUserPermissions()}catch(l){this.onError(`Cannot read user permissions: ${l}`);return}try{this.props.admin5only&&!je.isWeb()&&(!window.vendorPrefix||window.vendorPrefix==="@@vendorPrefix@@")?this._systemConfig=await this.getCompactSystemConfig():this._systemConfig=await this.getSystemConfig()}catch(l){this.onError(`Cannot read system config: ${l}`);return}this._systemConfig&&(this.systemLang=(e=this._systemConfig.common)==null?void 0:e.language,this.systemLang||(this.systemLang=window.navigator.userLanguage||window.navigator.language,/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this.systemLang)?this.systemLang=this.systemLang.substring(0,2):/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this.systemLang)||(this.systemLang="en"),this._systemConfig.common.language=this.systemLang)),(s=(t=this.props).onLanguage)==null||s.call(t,this.systemLang),this.loaded=!0,(r=(o=this.props).onProgress)==null||r.call(o,Re.CONNECTED),this.firstConnect=!1,this.props.doNotLoadAllObjects?this.props.admin5only?this.objects={}:this.objects={"system.config":this._systemConfig}:this.objects=await this.getObjects(),(n=(M=this.props).onProgress)==null||n.call(M,Re.READY),this.onReadyDone||(this.onReadyDone=!0,(N=(u=this.props).onReady)==null||N.call(u,this.objects))}}authenticate(){window.location.search.includes("&href=")?window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}`:window.location.href=`${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${encodeURIComponent(window.location.search+window.location.hash)}`}async subscribeState(...e){let t,s,o;e.length===3?[t,s,o]=e:([t,o]=e,s=!1);let r;if(Array.isArray(t)?r=t:r=[t],typeof o!="function")throw new Error("The state change handler must be a function!");const M=[];for(let n=0;nn.includes("*"))){let n;for(let u=0;uconsole.error(`Cannot call state change handler: ${L}`))}}}else try{const n=await(je.isWeb()?this.getStates(r):this.getForeignStates(r));if(n)for(const[u,N]of Object.entries(n)){const l=o(u,N);l instanceof Promise&&l.catch(c=>console.error(`Cannot call state change handler: ${c}`))}}catch(n){console.error(`Cannot getState "${r.join(", ")}": ${n.message}`);return}}async subscribeStateAsync(e,t){return this.subscribeState(e,t)}unsubscribeState(e,t){var r;let s;Array.isArray(e)?s=e:s=[e];const o=[];for(let M=0;M{try{const l=N(e,t,s);l instanceof Promise&&l.catch(c=>console.error(`Cannot call object change handler: ${c}`))}catch(l){console.error(`Error by callback of objectChange: ${l}`)}});if(o){const n=(M=(r=this.props).onObjectChange)==null?void 0:M.call(r,e,t);n instanceof Promise&&n.catch(u=>console.error(`Cannot call object change handler: ${u}`))}}stateChange(e,t){for(const s of Object.values(this.statesSubscribes))if(s.reg.test(e))for(const o of s.cbs)try{const r=o(e,t??null);r instanceof Promise&&r.catch(M=>console.error(`Cannot call state change handler: ${M}`))}catch(r){console.error(`Error by callback of stateChanged: ${r}`)}}instanceMessage(e,t,s){var o;(o=this._instanceSubscriptions[t])==null||o.forEach(r=>{if(r.messageType===e){const M=r.callback(s,t,e);M instanceof Promise&&M.catch(n=>console.error(`Cannot call instance message handler: ${n}`))}})}fileChange(e,t,s){for(const o of Object.values(this.filesSubscribes))if(o.regId.test(e)&&o.regFilePattern.test(t))for(const r of o.cbs)try{r(e,t,s)}catch(M){console.error(`Error by callback of fileChange: ${M}`)}}async subscribeFiles(e,t,s){if(typeof s!="function")throw new Error("The state change handler must be a function!");let o;Array.isArray(t)?o=t:o=[t];const r=[];for(let M=0;M{const c={elapsed:!1,clearTimeout:()=>{}};let L;s!==!1&&(L=setTimeout(()=>{c.elapsed=!0,o==null||o(),e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(ye.TIMEOUT))},s??this.props.cmdTimeout),c.clearTimeout=()=>{clearTimeout(L)});try{await n(N,l,c)}catch(j){e&&this._promises[e]instanceof Promise&&delete this._promises[e],l(new Error(j.toString()))}});return e&&(this._promises[e]=u),u}resetCache(e,t){t?Object.keys(this._promises).filter(s=>s.startsWith(e)).forEach(s=>{delete this._promises[s]}):delete this._promises[e]}getStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getStates",e,(o,r)=>{this.states=r??{},o?s(o):t(this.states)})}})}getState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t(this.simStates[e]||{val:null,ack:!0});return}this._socket.emit("getState",e,(o,r)=>{o?s(o):t(r)})}})}getBinaryState(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getBinaryState",e,(o,r)=>{o?s(o):t(r)})}})}setBinaryState(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setBinaryState",e,t,r=>{r?o(r):s()})}})}setState(e,t,s){return typeof s=="boolean"&&(t={val:t,ack:s}),this.request({commandTimeout:!1,executor:(o,r)=>{if(e&&e===this.ignoreState){let M;if(typeof s=="boolean"||typeof t=="object"&&t.val!==void 0?M=t:M={val:t,ack:!1,ts:Date.now(),lc:Date.now(),from:"system.adapter.vis.0"},this.simStates[e]=M,this.statesSubscribes[e])for(const n of this.statesSubscribes[e].cbs)try{const u=n(e,M);u instanceof Promise&&u.catch(N=>console.error(`Cannot call state change handler: ${N}`))}catch(u){console.error(`Error by callback of stateChanged: ${u}`)}o();return}this._socket.emit("setState",e,t,M=>{M?r(M):o()})}})}getObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{if(!e&&this.objects){s(this.objects);return}this._socket.emit(je.isWeb()?"getObjects":"getAllObjects",(r,M)=>{var n,u;t||(u=(n=this.props).onProgress)==null||u.call(n,Re.OBJECTS_LOADED),r?o(r):(this.objects=M??{},s(this.objects))})}})}getObjectsById(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjects",e,(o,r)=>{o?s(o):t(r)})}})}_subscribe(e){var t,s;if(e&&!this.subscribed){this.subscribed=!0,(t=this.props.autoSubscribes)!=null&&t.length&&this._socket.emit("subscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("subscribeObjects",o),Object.keys(this.objectsSubscribes).forEach(r=>this._socket.emit("subscribeObjects",r)),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!0),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("subscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,n]=r.split("$%$");this._socket.emit("subscribeFiles",M,n)})}else if(!e&&this.subscribed){this.subscribed=!1,(s=this.props.autoSubscribes)!=null&&s.length&&this._socket.emit("unsubscribeObjects",this.props.autoSubscribes);const o=Object.keys(this.objectsSubscribes);o.length&&this._socket.emit("unsubscribeObjects",o),this.props.autoSubscribeLog&&this._socket.emit("requireLog",!1),Object.keys(this.statesSubscribes).forEach(r=>this._socket.emit("unsubscribe",r)),Object.keys(this.filesSubscribes).forEach(r=>{const[M,n]=r.split("$%$");this._socket.emit("unsubscribeFiles",M,n)})}}requireLog(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("requireLog",e,o=>{o?s(o):t()})}})}delObject(e,t=!1){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObject",e,{maintenance:t},r=>{r?o(r):s()})}})}delObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("delObjects",e,{maintenance:t},r=>{r?o(r):s()})}})}setObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("setObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}getObject(e){return this.request({commandTimeout:!1,executor:(t,s)=>{if(e&&e===this.ignoreState){t({_id:this.ignoreState,type:"state",common:{name:"ignored state",type:"mixed"}});return}this._socket.emit("getObject",e,(o,r)=>{o?s(o):t(r)})}})}sendTo(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendTo",e,t,s,r=>{o(r)})}})}extendObject(e,t){return t?(t=JSON.parse(JSON.stringify(t)),delete t.from,delete t.user,delete t.ts,this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("extendObject",e,t,r=>{r?o(r):s()})}})):Promise.reject(new Error("Null object is not allowed"))}registerLogHandler(e){this.onLogHandlers.includes(e)||this.onLogHandlers.push(e)}unregisterLogHandler(e){const t=this.onLogHandlers.indexOf(e);t!==-1&&this.onLogHandlers.splice(t,1)}registerConnectionHandler(e){this.onConnectionHandlers.includes(e)||this.onConnectionHandlers.push(e)}unregisterConnectionHandler(e){const t=this.onConnectionHandlers.indexOf(e);t!==-1&&this.onConnectionHandlers.splice(t,1)}registerCmdStdoutHandler(e){this.onCmdStdoutHandler=e}unregisterCmdStdoutHandler(){this.onCmdStdoutHandler=void 0}registerCmdStderrHandler(e){this.onCmdStderrHandler=e}unregisterCmdStderrHandler(){this.onCmdStderrHandler=void 0}registerCmdExitHandler(e){this.onCmdExitHandler=e}unregisterCmdExitHandler(){this.onCmdExitHandler=void 0}getEnums(e,t){return this.request({cacheKey:`enums_${e||"all"}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getObjectView","system","enum",{startkey:`enum.${e||""}`,endkey:e?`enum.${e}.香`:"enum.香"},(r,M)=>{if(r)o(r);else{const n={};if(M)for(let u=0;u{s=s||"",o=o||"香",this._socket.emit("getObjectView",e,t,{startkey:s,endkey:o},(n,u)=>{if(n)M(n);else{const N={};if(u&&u.rows)for(let l=0;l{this._socket.emit("getObjectView","system","meta",{startkey:"",endkey:"香"},(s,o)=>{var r;s?t(s):e((r=o.rows)==null?void 0:r.map(M=>M.value).filter(M=>!!M))})}})}readDir(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("readDir",e,t,(r,M)=>{r?o(r):s(M)})}})}readFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit(s?"readFile64":"readFile",e,t,(M,n,u)=>{M?r(M):o({file:n,mimeType:u})})}})}writeFile64(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{if(typeof s=="string")this._socket.emit("writeFile",e,t,s,M=>{M?r(M):o()});else{const M=btoa(new Uint8Array(s).reduce((n,u)=>n+String.fromCharCode(u),""));this._socket.emit("writeFile64",e,t,M,n=>{n?r(n):o()})}}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r?o(r):s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r?o(r):s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M?r(M):o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M?r(M):o()})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,n)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{n.elapsed||(n.clearTimeout(),u?M(u):r())})}})}getSystemConfig(e){return this.request({cacheKey:"systemConfig",forceUpdate:e,commandTimeout:!1,executor:async t=>{let s=await this.getObject("system.config");s??={},s.common??={},s.native??={},t(s)}})}getCompactSystemConfig(e){return this.request({cacheKey:"systemConfigCommon",forceUpdate:e,commandTimeout:!1,requireAdmin:!0,executor:(t,s)=>{this._socket.emit("getCompactSystemConfig",(o,r)=>{o?s(o):(r??={},r.common??={},r.native??={},t(r))})}})}getForeignStates(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getForeignStates",e||"*",(o,r)=>{o?s(o):t(r??{})})}})}getForeignObjects(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getForeignObjects",e||"*",t,(r,M)=>{r?o(r):s(M)})}})}setSystemConfig(e){return this.setObject("system.config",e)}getRawSocket(){return this._socket}getHistory(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M)=>{r?o(r):s(M)})}})}getHistoryEx(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("getHistory",e,t,(r,M,n,u)=>{r?o(r):s({values:M,sessionId:u,step:n})})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getVersion(e){return this.request({cacheKey:"version",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getVersion",(o,r,M)=>{o&&!r&&typeof o=="string"&&o.match(/\d+\.\d+\.\d+/)?t({version:o,serverName:"socketio"}):o?s(o):t({version:r,serverName:M})})}})}getWebServerName(){return this.request({cacheKey:"webName",commandTimeout:!1,executor:(e,t)=>{this._socket.emit("getAdapterName",(s,o)=>{s?t(s):e(o)})}})}fileExists(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("fileExists",e,t,(r,M)=>{r?o(r):s(!!M)})}})}getCurrentUser(){return this.request({commandTimeout:!1,executor:e=>{this._socket.emit("authEnabled",(t,s)=>{e(s)})}})}getUuid(){return this.request({cacheKey:"uuid",commandTimeout:!1,executor:async e=>{var s;const t=await this.getObject("system.meta.uuid");e((s=t==null?void 0:t.native)==null?void 0:s.uuid)}})}checkFeatureSupported(e,t){return this.request({cacheKey:`supportedFeatures_${e}`,forceUpdate:t,commandTimeout:!1,executor:(s,o)=>{this._socket.emit("checkFeatureSupported",e,(r,M)=>{r?o(r):s(M)})}})}getAdapterInstances(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`instances_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=e?`system.adapter.${e}.`:"system.adapter.",r=`${o}香`,M=await this.getObjectViewSystem("instance",o,r),n=Object.values(M);s(e?n.filter(u=>u.common.name===e):n)}})}getAdapters(e,t){return typeof e=="boolean"&&(t=e,e=""),e=e||"",this.request({cacheKey:`adapter_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObjectViewSystem("adapter",`system.adapter.${e||""}`,`system.adapter.${e||"香"}`),r=Object.values(o);s(e?r.filter(M=>M.common.name===e):r)}})}getGroups(e){return this.request({cacheKey:"groups",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","group",{startkey:"system.group.",endkey:"system.group.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}logout(){return this.request({commandTimeout:!1,executor:(e,t)=>{this._socket.emit("logout",s=>{s?t(s):e(null)})}})}subscribeOnInstance(e,t,s,o){return this.request({commandTimeout:!1,executor:(r,M)=>{this._socket.emit("clientSubscribe",e,t,s,(n,u)=>{n?M(n):u&&(u.error?M(u.error):(e.startsWith("system.adapter.")||(e=`system.adapter.${e}`),this._instanceSubscriptions[e]=this._instanceSubscriptions[e]||[],this._instanceSubscriptions[e].find(N=>N.messageType===t&&N.callback===o)||this._instanceSubscriptions[e].push({messageType:t,callback:o}),r(u)))})}})}unsubscribeFromInstance(e,t,s){var M;e.startsWith("system.adapter.")||(e=`system.adapter.${e}`);let o;const r=[];do{o=!1;const n=(M=this._instanceSubscriptions[e])==null?void 0:M.findIndex(u=>(!t||u.messageType===t)&&(!s||u.callback===s));if(n!=null&&n!==-1){o=!0;const u=this._instanceSubscriptions[e][n].messageType;this._instanceSubscriptions[e].splice(n,1),this._instanceSubscriptions[e].length||delete this._instanceSubscriptions[e],this._instanceSubscriptions[e]&&this._instanceSubscriptions[e].find(l=>l.messageType===u)||r.push(this.request({commandTimeout:!1,executor:(l,c)=>{this._socket.emit("clientUnsubscribe",e,t,(L,j)=>L?c(L):l(j))}}))}}while(o&&(!s||!t));return r.length?Promise.all(r).then(n=>!!n.find(u=>u)):Promise.resolve(!1)}log(e,t){return e?this.request({commandTimeout:!1,executor:s=>(this._socket.emit("log",e,t),s(null))}):Promise.resolve(null)}setStateToIgnore(e){this.ignoreState=e}}function uc(i,e){if(!e)return;let t;if(e.length<700&&(e.indexOf("/")!==-1||e.indexOf("\\")!==-1))if(i.toLowerCase().includes("private"))t="private";else if(e.toLowerCase().includes("private"))t="private";else if(i.toLowerCase().includes("public"))t="public";else if(e.toLowerCase().includes("public"))t="public";else if(i.toLowerCase().includes("chain"))t="chained";else if(e.toLowerCase().includes("chain"))t="chained";else return;else t=e.substring(0,26)==="-----BEGIN RSA PRIVATE KEY"||e.substring(0,22)==="-----BEGIN PRIVATE KEY"?"private":"public",t==="public"&&e.split("-----END CERTIFICATE-----").filter(o=>o.replace(/\r\n|\r|\n/,"").trim()).length>1&&(t="chained");return{name:i,type:t}}function Nc(i){var s,o,r,M;const e=[{name:"[IPv4] 0.0.0.0 - Listen on all IPs",address:"0.0.0.0",family:"ipv4"}],t=[{name:"[IPv6] :: - Listen on all IPs",address:"::",family:"ipv6"}];if((o=(s=i.native)==null?void 0:s.hardware)!=null&&o.networkInterfaces){const n=(M=(r=i.native)==null?void 0:r.hardware)==null?void 0:M.networkInterfaces;Object.keys(n).forEach(u=>{n[u].forEach(N=>{N.family!=="IPv6"?e.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv4"}):t.push({name:`[${N.family}] ${N.address} - ${u}`,address:N.address,family:"ipv6"})})})}return{IPs4:e,IPs6:t}}class s4e extends je{constructor(e){super(e)}request(e){return super.request({requireAdmin:!0,...e})}getCertificates(e){return this.request({cacheKey:"cert",forceUpdate:e,commandTimeout:!1,executor:async t=>{var o;const s=await this.getObject("system.certificates");(o=s==null?void 0:s.native)!=null&&o.certificates?t(Object.entries(s.native.certificates).map(([r,M])=>uc(r,M)).filter(r=>!!r)):t([])}})}getLogs(e,t=200){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"getLogs",t||200,o=>{s(o)})}})}upgradeAdapterWithWebserver(e,t){return this.request({commandTimeout:!1,executor:s=>{this._socket.emit("sendToHost",e,"upgradeAdapterWithWebserver",t,o=>{s(o)})}})}upgradeController(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("sendToHost",e,"upgradeController",{version:t,adminInstance:s},M=>{const n=M;n.error?r(n.error):o(n.result)})}})}updateLicenses(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("updateLicenses",e,t,(r,M)=>{r?o(r):s(M)})}})}upgradeOsPackages(e,t,s){return this.request({commandTimeout:!1,executor:o=>{this._socket.emit("sendToHost",e,"upgradeOsPackages",{packages:t,restart:!!s},r=>{o(r)})}})}getLogsFiles(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("readLogs",e,(o,r)=>{o&&s(o),t(r)})}})}delLogs(e){return this.request({commandTimeout:!1,executor:(t,s)=>{this._socket.emit("sendToHost",e,"delLogs",null,o=>{o&&s(o),t()})}})}deleteFile(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFile",e,t,r=>{r&&o(r),s()})}})}deleteFolder(e,t){return this.request({commandTimeout:!1,executor:(s,o)=>{this._socket.emit("deleteFolder",e,t,r=>{r&&o(r),s()})}})}rename(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("rename",e,t,s,M=>{M&&r(M),o()})}})}renameFile(e,t,s){return this.request({commandTimeout:!1,executor:(o,r)=>{this._socket.emit("renameFile",e,t,s,M=>{M&&r(M),o()})}})}getHosts(e){return this.request({cacheKey:"hosts",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","host",{startkey:"system.host.",endkey:"system.host.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}getUsers(e){return this.request({cacheKey:"users",forceUpdate:e,commandTimeout:!1,executor:(t,s)=>{this._socket.emit("getObjectView","system","user",{startkey:"system.user.",endkey:"system.user.香"},(o,r)=>{o?s(o):t(Hi(r))})}})}renameGroup(e,t,s){return this.request({commandTimeout:!1,executor:async o=>{const r=await this.getGroups(!0),M=r.filter(u=>u._id.startsWith(`${e}.`));for(const u of M){const N=u._id,l=t+u._id.substring(e.length);u._id=l,await this.setObject(l,u),await this.delObject(N)}const n=r.find(u=>u._id===e);if(n){const u=n._id;n._id=t,s!==void 0&&(n.common??={},n.common.name=s),await this.setObject(t,n),await this.delObject(u)}o()}})}getHostInfo(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfo_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfo",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getHostInfo"'):n?o(n):r('Cannot read "getHostInfo"'))})}})}getHostInfoShort(e,t,s){return e=Ke(e),this.request({cacheKey:`hostInfoShort_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getHostInfoShort",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getHostInfoShort"'):n?o(n):r('Cannot read "getHostInfoShort"'))})}})}getRepository(e,t,s,o){return this.request({cacheKey:`repository_${e}`,forceUpdate:s,commandTimeout:o,executor:(r,M,n)=>{this._socket.emit("sendToHost",e,"getRepository",t,u=>{n.elapsed||(n.clearTimeout(),u===ye.PERMISSION_ERROR?M('May not read "getRepository"'):u?r(u):M('Cannot read "getRepository"'))})}})}getInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installed_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("sendToHost",e,"getInstalled",null,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getInstalled"'):n?o(n):r('Cannot read "getInstalled"'))})}})}cmdExec(e,t,s,o){return this.request({commandTimeout:o,executor:(r,M,n)=>{e=Ke(e),this._socket.emit("cmdExec",e,s,t,u=>{n.elapsed||(n.clearTimeout(),u&&M(u),r())})}})}readBaseSettings(e){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"readBaseSettings",null,r=>{o.elapsed||(o.clearTimeout(),r===ye.PERMISSION_ERROR?s('May not read "BaseSettings"'):r?r.error?s(new Error(r.error)):t(r):s('Cannot read "BaseSettings"'))})}})}writeBaseSettings(e,t){return e=Ms(e),this.request({requireFeatures:["CONTROLLER_READWRITE_BASE_SETTINGS"],executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"writeBaseSettings",t,M=>{r.elapsed||(r.clearTimeout(),M===ye.PERMISSION_ERROR?o('May not write "BaseSettings"'):M?s(M):o('Cannot write "BaseSettings"'))})}})}restartController(e){return e=Ms(e),this.request({executor:(t,s,o)=>{this._socket.emit("sendToHost",e,"restartController",null,()=>{o.elapsed||(o.clearTimeout(),t(!0))})}})}getDiagData(e,t){return e=Ms(e),this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getDiagData",t,M=>{r.elapsed||(r.clearTimeout(),s(M||null))})}})}changePassword(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("changePassword",e,t,M=>{r.elapsed||(r.clearTimeout(),M&&o(M),s())})}})}getIpAddresses(e,t){return e=Ke(e),this.request({cacheKey:`IPs_${e}`,forceUpdate:t,commandTimeout:!1,executor:async s=>{const o=await this.getObject(e);s((o==null?void 0:o.common.address)??[])}})}getHostByIp(e,t){return e=Ms(e),this.request({cacheKey:`rIPs_${e}`,forceUpdate:t,executor:(s,o,r)=>{this._socket.emit("getHostByIp",e,(M,n)=>{if(r.elapsed)return;r.clearTimeout();const{IPs4:u,IPs6:N}=Nc(n);s([...u,...N])})}})}encrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("encrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}decrypt(e){return this.request({executor:(t,s,o)=>{this._socket.emit("decrypt",e,(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}chmodFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chmodFile",e,t,s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}chownFile(e,t,s){return this.request({executor:(o,r,M)=>{this._socket.emit("chownFile",e,t,s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"getNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}clearNotifications(e,t){return this.request({executor:(s,o,r)=>{this._socket.emit("sendToHost",e,"clearNotifications",{category:t},M=>{r.elapsed||(r.clearTimeout(),s(M))})}})}getIsEasyModeStrict(){return this.request({executor:(e,t,s)=>{this._socket.emit("getIsEasyModeStrict",(o,r)=>{s.elapsed||(s.clearTimeout(),o&&t(o),e(!!r))})}})}getEasyMode(){return this.request({executor:(e,t,s)=>{this._socket.emit("getEasyMode",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(new Error(o)):e(r))})}})}getRatings(e){return this.request({executor:(t,s,o)=>{this._socket.emit("getRatings",!!e,(r,M)=>{o.elapsed||(o.clearTimeout(),r?s(new Error(r)):t(M))})}})}getCurrentSession(e){const t=new AbortController;return this.request({commandTimeout:e||5e3,onTimeout:()=>{t.abort()},executor:async(s,o,r)=>{try{const M=await fetch("./session",{signal:t.signal});if(r.elapsed)return;r.clearTimeout();const n=await M.json();s(n)}catch(M){o(`getCurrentSession: ${M}`)}}})}getCurrentInstance(){return this.request({cacheKey:"currentInstance",executor:(e,t,s)=>{this._socket.emit("getCurrentInstance",(o,r)=>{s.elapsed||(s.clearTimeout(),o?t(o):e(r))})}})}getAdapterInstances(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`instances_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapterInstances",s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getAdapters(e,t){let s;return typeof e=="boolean"?(t=e,s=""):s=e||"",this.request({cacheKey:`adapter_${s}`,forceUpdate:t,executor:(o,r,M)=>{this._socket.emit("getAdapters",s,(n,u)=>{M.elapsed||(M.clearTimeout(),n&&r(n),o(u))})}})}getCompactAdapters(e){return this.request({cacheKey:"compactAdapters",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactAdapters",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdaptersResetCache(e){e=e??"",this.resetCache(`adapter_${e}`),this.resetCache("compactAdapters")}getCompactInstances(e){return this.request({cacheKey:"compactInstances",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactInstances",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getAdapterInstancesResetCache(e){e=e??"",this.resetCache(`instances_${e}`),this.resetCache("compactInstances")}getCompactInstalled(e,t,s){return e=Ke(e),this.request({cacheKey:`installedCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactInstalled",e,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getCompactInstalled"'):n?o(n):r('Cannot read "getCompactInstalled"'))})}})}getInstalledResetCache(e){e?(this.resetCache(`installedCompact_${e}`),this.resetCache(`installed_${e}`)):(this.resetCache("installedCompact_",!0),this.resetCache("installed_",!0))}getCompactRepository(e,t,s){return e=Ke(e),this.request({cacheKey:`repositoryCompact_${e}`,forceUpdate:t,commandTimeout:s,executor:(o,r,M)=>{this._socket.emit("getCompactRepository",e,n=>{M.elapsed||(M.clearTimeout(),n===ye.PERMISSION_ERROR?r('May not read "getCompactRepository"'):n?o(n):r('Cannot read "getCompactRepository"'))})}})}getRepositoryResetCache(e){e?(this.resetCache(`repositoryCompact_${e}`),this.resetCache(`repository_${e}`)):(this.resetCache("repositoryCompact_",!0),this.resetCache("repository_",!0))}getCompactHosts(e){return this.request({cacheKey:"hostsCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactHosts",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}getCompactSystemRepositories(e){return this.request({cacheKey:"repositoriesCompact",forceUpdate:e,executor:(t,s,o)=>{this._socket.emit("getCompactSystemRepositories",(r,M)=>{o.elapsed||(o.clearTimeout(),r&&s(r),t(M))})}})}}const Z=typeof __SENTRY_DEBUG__>"u"||__SENTRY_DEBUG__,Ot="9.24.0",te=globalThis;function Ni(){return li(te),te}function li(i){const e=i.__SENTRY__=i.__SENTRY__||{};return e.version=e.version||Ot,e[Ot]=e[Ot]||{}}function Li(i,e,t=te){const s=t.__SENTRY__=t.__SENTRY__||{},o=s[Ot]=s[Ot]||{};return o[i]||(o[i]=e())}const Nn=Object.prototype.toString;function ko(i){switch(Nn.call(i)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return Tt(i,Error)}}function es(i,e){return Nn.call(i)===`[object ${e}]`}function ln(i){return es(i,"ErrorEvent")}function gr(i){return es(i,"DOMError")}function lc(i){return es(i,"DOMException")}function tt(i){return es(i,"String")}function Yo(i){return typeof i=="object"&&i!==null&&"__sentry_template_string__"in i&&"__sentry_template_values__"in i}function Qo(i){return i===null||Yo(i)||typeof i!="object"&&typeof i!="function"}function ds(i){return es(i,"Object")}function ji(i){return typeof Event<"u"&&Tt(i,Event)}function Lc(i){return typeof Element<"u"&&Tt(i,Element)}function jc(i){return es(i,"RegExp")}function gi(i){return!!(i!=null&&i.then&&typeof i.then=="function")}function gc(i){return ds(i)&&"nativeEvent"in i&&"preventDefault"in i&&"stopPropagation"in i}function Tt(i,e){try{return i instanceof e}catch{return!1}}function Ln(i){return!!(typeof i=="object"&&i!==null&&(i.__isVue||i._isVue))}function Tc(i){return typeof Request<"u"&&Tt(i,Request)}const Uo=te,yc=80;function jn(i,e={}){if(!i)return"";try{let t=i;const s=5,o=[];let r=0,M=0;const n=" > ",u=n.length;let N;const l=Array.isArray(e)?e:e.keyAttrs,c=!Array.isArray(e)&&e.maxStringLength||yc;for(;t&&r++1&&M+o.length*u+N.length>=c));)o.push(N),M+=N.length,t=t.parentNode;return o.reverse().join(n)}catch{return""}}function Dc(i,e){const t=i,s=[];if(!(t!=null&&t.tagName))return"";if(Uo.HTMLElement&&t instanceof HTMLElement&&t.dataset){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}s.push(t.tagName.toLowerCase());const o=e!=null&&e.length?e.filter(M=>t.getAttribute(M)).map(M=>[M,t.getAttribute(M)]):null;if(o!=null&&o.length)o.forEach(M=>{s.push(`[${M[0]}="${M[1]}"]`)});else{t.id&&s.push(`#${t.id}`);const M=t.className;if(M&&tt(M)){const n=M.split(/\s+/);for(const u of n)s.push(`.${u}`)}}const r=["aria-label","type","name","title","alt"];for(const M of r){const n=t.getAttribute(M);n&&s.push(`[${M}="${n}"]`)}return s.join("")}function vo(){try{return Uo.document.location.href}catch{return""}}function dc(i){if(!Uo.HTMLElement)return null;let e=i;const t=5;for(let s=0;s{const r=ti[o];t[o]=e[o],e[o]=r});try{return i()}finally{s.forEach(o=>{e[o]=t[o]})}}function Ic(){let i=!1;const e={enable:()=>{i=!0},disable:()=>{i=!1},isEnabled:()=>i};return Z?Vi.forEach(t=>{e[t]=(...s)=>{i&&ts(()=>{te.console[t](`${zc}[${t}]:`,...s)})}}):Vi.forEach(t=>{e[t]=()=>{}}),e}const B=Li("logger",Ic);function si(i,e=0){return typeof i!="string"||e===0||i.length<=e?i:`${i.slice(0,e)}...`}function Tr(i,e){if(!Array.isArray(i))return"";const t=[];for(let s=0;swc(i,s,t))}function Ee(i,e,t){if(!(e in i))return;const s=i[e];if(typeof s!="function")return;const o=t(s);typeof o=="function"&&gn(o,s);try{i[e]=o}catch{Z&&B.log(`Failed to replace method "${e}" in object`,i)}}function Et(i,e,t){try{Object.defineProperty(i,e,{value:t,writable:!0,configurable:!0})}catch{Z&&B.log(`Failed to add non-enumerable property "${e}" to object`,i)}}function gn(i,e){try{const t=e.prototype||{};i.prototype=e.prototype=t,Et(i,"__sentry_original__",e)}catch{}}function bo(i){return i.__sentry_original__}function Tn(i){if(ko(i))return{message:i.message,name:i.name,stack:i.stack,...Dr(i)};if(ji(i)){const e={type:i.type,target:yr(i.target),currentTarget:yr(i.currentTarget),...Dr(i)};return typeof CustomEvent<"u"&&Tt(i,CustomEvent)&&(e.detail=i.detail),e}else return i}function yr(i){try{return Lc(i)?jn(i):Object.prototype.toString.call(i)}catch{return""}}function Dr(i){if(typeof i=="object"&&i!==null){const e={};for(const t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t]);return e}else return{}}function Cc(i,e=40){const t=Object.keys(Tn(i));t.sort();const s=t[0];if(!s)return"[object has no keys]";if(s.length>=e)return si(s,e);for(let o=t.length;o>0;o--){const r=t.slice(0,o).join(", ");if(!(r.length>e))return o===t.length?r:si(r,e)}return""}function hc(){const i=te;return i.crypto||i.msCrypto}function fe(i=hc()){let e=()=>Math.random()*16;try{if(i!=null&&i.randomUUID)return i.randomUUID().replace(/-/g,"");i!=null&&i.getRandomValues&&(e=()=>{const t=new Uint8Array(1);return i.getRandomValues(t),t[0]})}catch{}return("10000000100040008000"+1e11).replace(/[018]/g,t=>(t^(e()&15)>>t/4).toString(16))}function yn(i){var e,t;return(t=(e=i.exception)==null?void 0:e.values)==null?void 0:t[0]}function pt(i){const{message:e,event_id:t}=i;if(e)return e;const s=yn(i);return s?s.type&&s.value?`${s.type}: ${s.value}`:s.type||s.value||t||"":t||""}function Zi(i,e,t){const s=i.exception=i.exception||{},o=s.values=s.values||[],r=o[0]=o[0]||{};r.value||(r.value=e||""),r.type||(r.type="Error")}function Zt(i,e){const t=yn(i);if(!t)return;const s={type:"generic",handled:!0},o=t.mechanism;if(t.mechanism={...s,...o,...e},e&&"data"in e){const r={...o==null?void 0:o.data,...e.data};t.mechanism.data=r}}function dr(i){if(Ac(i))return!0;try{Et(i,"__sentry_captured__",!0)}catch{}return!1}function Ac(i){try{return i.__sentry_captured__}catch{}}const Dn=1e3;function ps(){return Date.now()/Dn}function pc(){const{performance:i}=te;if(!(i!=null&&i.now))return ps;const e=Date.now()-i.now(),t=i.timeOrigin==null?e:i.timeOrigin;return()=>(t+i.now())/Dn}const st=pc();function mc(i){const e=st(),t={sid:fe(),init:!0,timestamp:e,started:e,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>Ec(t)};return i&&Xt(t,i),t}function Xt(i,e={}){if(e.user&&(!i.ipAddress&&e.user.ip_address&&(i.ipAddress=e.user.ip_address),!i.did&&!e.did&&(i.did=e.user.id||e.user.email||e.user.username)),i.timestamp=e.timestamp||st(),e.abnormal_mechanism&&(i.abnormal_mechanism=e.abnormal_mechanism),e.ignoreDuration&&(i.ignoreDuration=e.ignoreDuration),e.sid&&(i.sid=e.sid.length===32?e.sid:fe()),e.init!==void 0&&(i.init=e.init),!i.did&&e.did&&(i.did=`${e.did}`),typeof e.started=="number"&&(i.started=e.started),i.ignoreDuration)i.duration=void 0;else if(typeof e.duration=="number")i.duration=e.duration;else{const t=i.timestamp-i.started;i.duration=t>=0?t:0}e.release&&(i.release=e.release),e.environment&&(i.environment=e.environment),!i.ipAddress&&e.ipAddress&&(i.ipAddress=e.ipAddress),!i.userAgent&&e.userAgent&&(i.userAgent=e.userAgent),typeof e.errors=="number"&&(i.errors=e.errors),e.status&&(i.status=e.status)}function Oc(i,e){let t={};i.status==="ok"&&(t={status:"exited"}),Xt(i,t)}function Ec(i){return{sid:`${i.sid}`,init:i.init,started:new Date(i.started*1e3).toISOString(),timestamp:new Date(i.timestamp*1e3).toISOString(),status:i.status,errors:i.errors,did:typeof i.did=="number"||typeof i.did=="string"?`${i.did}`:void 0,duration:i.duration,abnormal_mechanism:i.abnormal_mechanism,attrs:{release:i.release,environment:i.environment,ip_address:i.ipAddress,user_agent:i.userAgent}}}function ms(i,e,t=2){if(!e||typeof e!="object"||t<=0)return e;if(i&&Object.keys(e).length===0)return i;const s={...i};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=ms(s[o],e[o],t-1));return s}const Xi="_sentrySpan";function zr(i,e){e?Et(i,Xi,e):delete i[Xi]}function Ir(i){return i[Xi]}function wr(){return fe()}function dn(){return fe().substring(16)}const _c=100;class it{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:wr(),sampleRand:Math.random()}}clone(){const e=new it;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,zr(e,Ir(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&Xt(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return t===null?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=typeof e=="function"?e(this):e,s=t instanceof it?t.getScopeData():ds(t)?e:void 0,{tags:o,extra:r,user:M,contexts:n,level:u,fingerprint:N=[],propagationContext:l}=s||{};return this._tags={...this._tags,...o},this._extra={...this._extra,...r},this._contexts={...this._contexts,...n},M&&Object.keys(M).length&&(this._user=M),u&&(this._level=u),N.length&&(this._fingerprint=N),l&&(this._propagationContext=l),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,zr(this,void 0),this._attachments=[],this.setPropagationContext({traceId:wr(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){var r;const s=typeof t=="number"?t:_c;if(s<=0)return this;const o={timestamp:ps(),...e,message:e.message?si(e.message,2048):e.message};return this._breadcrumbs.push(o),this._breadcrumbs.length>s&&(this._breadcrumbs=this._breadcrumbs.slice(-s),(r=this._client)==null||r.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Ir(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=ms(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const s=(t==null?void 0:t.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture exception!"),s;const o=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:o,...t,event_id:s},this),s}captureMessage(e,t,s){const o=(s==null?void 0:s.event_id)||fe();if(!this._client)return B.warn("No client configured on scope - will not capture message!"),o;const r=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:r,...s,event_id:o},this),o}captureEvent(e,t){const s=(t==null?void 0:t.event_id)||fe();return this._client?(this._client.captureEvent(e,{...t,event_id:s},this),s):(B.warn("No client configured on scope - will not capture event!"),s)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}function Sc(){return Li("defaultCurrentScope",()=>new it)}function xc(){return Li("defaultIsolationScope",()=>new it)}class fc{constructor(e,t){let s;e?s=e:s=new it;let o;t?o=t:o=new it,this._stack=[{scope:s}],this._isolationScope=o}withScope(e){const t=this._pushScope();let s;try{s=e(t)}catch(o){throw this._popScope(),o}return gi(s)?s.then(o=>(this._popScope(),o),o=>{throw this._popScope(),o}):(this._popScope(),s)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return this._stack.length<=1?!1:!!this._stack.pop()}}function Kt(){const i=Ni(),e=li(i);return e.stack=e.stack||new fc(Sc(),xc())}function kc(i){return Kt().withScope(i)}function Yc(i,e){const t=Kt();return t.withScope(()=>(t.getStackTop().scope=i,e(i)))}function Cr(i){return Kt().withScope(()=>i(Kt().getIsolationScope()))}function Qc(){return{withIsolationScope:Cr,withScope:kc,withSetScope:Yc,withSetIsolationScope:(i,e)=>Cr(e),getCurrentScope:()=>Kt().getScope(),getIsolationScope:()=>Kt().getIsolationScope()}}function $o(i){const e=li(i);return e.acs?e.acs:Qc()}function ot(){const i=Ni();return $o(i).getCurrentScope()}function Os(){const i=Ni();return $o(i).getIsolationScope()}function Uc(){return Li("globalScope",()=>new it)}function vc(...i){const e=Ni(),t=$o(e);if(i.length===2){const[s,o]=i;return s?t.withSetScope(s,o):t.withScope(o)}return t.withScope(i[0])}function we(){return ot().getClient()}function bc(i){const e=i.getPropagationContext(),{traceId:t,parentSpanId:s,propagationSpanId:o}=e,r={trace_id:t,span_id:o||dn()};return s&&(r.parent_span_id=s),r}const $c="sentry.source",Pc="sentry.sample_rate",Wc="sentry.previous_trace_sample_rate",Rc="sentry.op",Jc="sentry.origin",zn="sentry.profile_id",In="sentry.exclusive_time",Bc=0,Fc=1,Gc="_sentryScope",Hc="_sentryIsolationScope";function wn(i){return{scope:i[Gc],isolationScope:i[Hc]}}function Vc(i){if(typeof i=="boolean")return Number(i);const e=typeof i=="string"?parseFloat(i):i;if(!(typeof e!="number"||isNaN(e)||e<0||e>1))return e}const Zc="sentry-",Xc=/^sentry-/;function Kc(i){const e=qc(i);if(!e)return;const t=Object.entries(e).reduce((s,[o,r])=>{if(o.match(Xc)){const M=o.slice(Zc.length);s[M]=r}return s},{});if(Object.keys(t).length>0)return t}function qc(i){if(!(!i||!tt(i)&&!Array.isArray(i)))return Array.isArray(i)?i.reduce((e,t)=>{const s=hr(t);return Object.entries(s).forEach(([o,r])=>{e[o]=r}),e},{}):hr(i)}function hr(i){return i.split(",").map(e=>e.split("=").map(t=>{try{return decodeURIComponent(t.trim())}catch{return}})).reduce((e,[t,s])=>(t&&s&&(e[t]=s),e),{})}const Cn=1;let Ar=!1;function eu(i){const{spanId:e,traceId:t,isRemote:s}=i.spanContext(),o=s?e:Po(i).parent_span_id,r=wn(i).scope,M=s?(r==null?void 0:r.getPropagationContext().propagationSpanId)||dn():e;return{parent_span_id:o,span_id:M,trace_id:t}}function tu(i){if(i&&i.length>0)return i.map(({context:{spanId:e,traceId:t,traceFlags:s,...o},attributes:r})=>({span_id:e,trace_id:t,sampled:s===Cn,attributes:r,...o}))}function pr(i){return typeof i=="number"?mr(i):Array.isArray(i)?i[0]+i[1]/1e9:i instanceof Date?mr(i.getTime()):st()}function mr(i){return i>9999999999?i/1e3:i}function Po(i){var s;if(iu(i))return i.getSpanJSON();const{spanId:e,traceId:t}=i.spanContext();if(su(i)){const{attributes:o,startTime:r,name:M,endTime:n,status:u,links:N}=i,l="parentSpanId"in i?i.parentSpanId:"parentSpanContext"in i?(s=i.parentSpanContext)==null?void 0:s.spanId:void 0;return{span_id:e,trace_id:t,data:o,description:M,parent_span_id:l,start_timestamp:pr(r),timestamp:pr(n)||void 0,status:ru(u),op:o[Rc],origin:o[Jc],links:tu(N)}}return{span_id:e,trace_id:t,start_timestamp:0,data:{}}}function su(i){const e=i;return!!e.attributes&&!!e.startTime&&!!e.name&&!!e.endTime&&!!e.status}function iu(i){return typeof i.getSpanJSON=="function"}function ou(i){const{traceFlags:e}=i.spanContext();return e===Cn}function ru(i){if(!(!i||i.code===Bc))return i.code===Fc?"ok":i.message||"unknown_error"}const Mu="_sentryRootSpan";function hn(i){return i[Mu]||i}function Or(){Ar||(ts(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.")}),Ar=!0)}const An=50,_t="?",Er=/\(error: (.*)\)/,_r=/captureMessage|captureException/;function pn(...i){const e=i.sort((t,s)=>t[0]-s[0]).map(t=>t[1]);return(t,s=0,o=0)=>{const r=[],M=t.split(` `);for(let n=s;n1024)continue;const N=Er.test(u)?u.replace(Er,"$1"):u;if(!N.match(/\S*Error: /)){for(const l of e){const c=l(N);if(c){r.push(c);break}}if(r.length>=An+o)break}}return au(r.slice(o))}}function nu(i){return Array.isArray(i)?pn(...i):i}function au(i){if(!i.length)return[];const e=Array.from(i);return/sentryWrapped/.test(fs(e).function||"")&&e.pop(),e.reverse(),_r.test(fs(e).function||"")&&(e.pop(),_r.test(fs(e).function||"")&&e.pop()),e.slice(0,An).map(t=>({...t,filename:t.filename||fs(e).filename,function:t.function||_t}))}function fs(i){return i[i.length-1]||{}}const pi="";function yt(i){try{return!i||typeof i!="function"?pi:i.name||pi}catch{return pi}}function Sr(i){const e=i.exception;if(e){const t=[];try{return e.values.forEach(s=>{s.stacktrace.frames&&t.push(...s.stacktrace.frames)}),t}catch{return}}}const Vs={},xr={};function kt(i,e){Vs[i]=Vs[i]||[],Vs[i].push(e)}function Yt(i,e){if(!xr[i]){xr[i]=!0;try{e()}catch(t){Z&&B.error(`Error while instrumenting ${i}`,t)}}}function ve(i,e){const t=i&&Vs[i];if(t)for(const s of t)try{s(e)}catch(o){Z&&B.error(`Error while triggering instrumentation handler. Type: ${i} Name: ${yt(s)} diff --git a/admin/custom/assets/index-BzS6q3oS.js b/admin/custom/assets/index-DZqbj5K4.js similarity index 56% rename from admin/custom/assets/index-BzS6q3oS.js rename to admin/custom/assets/index-DZqbj5K4.js index 6cd508708..a3578b957 100644 --- a/admin/custom/assets/index-BzS6q3oS.js +++ b/admin/custom/assets/index-DZqbj5K4.js @@ -1,6 +1,6 @@ -import{C as rs,b as ns,S as ss,s as as,c as T,d as kr,h as mo,e as De,f as is,g as Sn,m as ls,i as Dr,j as cs,k as ps,l as wn,n as xo,o as ds,a as Tt,p as us,q as fs,t as gs,u as ms,v as bs,w as vs,x as ys,y as hs,z as xs,A as Ee,B as Fe,T as Cs,D as Ho,E as ko,F as Be}from"./createTheme-BwMO3rTt.js";import{Q as Bv,N as Nv,O as Ov,J as zv,P as jv,L as Dv,M as Ev,R as Fv,G as Uv,I as Wv,W as Hv,V as Vv,X as Gv,K as _v,H as qv,U as Xv}from"./createTheme-BwMO3rTt.js";import{d as Ss,c as j,e as ws,b as q,g as K,C as Rn,u as X,s as S,m as U,r as Se,a as Z,f as Xo}from"./DefaultPropsProvider-9qubdy-V.js";import{H as Tr,J as Yo,K as Rs,N as Er,O as $s,Q as Ps,R as ks,U as bo,V as Ts,W as V,c as re,X as Is,Y as To,Z as Vo,$ as Ms,B as fe,a0 as ro,T as Ir,a1 as Oe,a2 as Ue,d as ue,P as we,I as ze,e as We,a3 as As,a4 as $n,p as Ko,C as Ls,a5 as Fr,a6 as sr,b as Ce,a7 as Bs,a8 as Ns,a9 as vo,aa as Zo,ab as Os,ac as zs,ad as Pn,ae as js,af as Ds,n as Es,ag as Me,ah as Fs,ai as Us,aj as Ws,ak as Hs,v as kn,al as fo,G as Tn,am as Vs,an as Gs,ao as _s,M as qs,ap as Xs}from"./Tabs-CvEv0KOT.js";import{aq as Kv,q as Zv,ar as Jv,t as Qv,D as ty,x as ey,E as oy,l as ry,j as ny,F as sy,as as ay,a_ as iy,h as ly,i as cy,L as py,r as dy,at as uy,au as fy,g as gy,bi as my,av as by,aw as vy,bt as yy,bs as hy,ax as xy,S as Cy,y as Sy,ay as wy,z as Ry,k as $y,o as Py,aB as ky,aF as Ty,aD as Iy,aJ as My,aL as Ay,aO as Ly,w as By,aQ as Ny,aS as Oy,aT as zy,aV as jy,aX as Dy,aZ as Ey,aC as Fy,aH as Uy,aE as Wy,aK as Hy,aM as Vy,aP as Gy,aR as _y,aN as qy,aU as Xy,aW as Yy,aY as Ky,a$ as Zy,b1 as Jy,b4 as Qy,b6 as th,b2 as eh,bd as oh,ba as rh,b8 as nh,bh as sh,bf as ah,bk as ih,br as lh,bq as ch,bm as ph,bo as dh,bu as uh,bv as fh,bx as gh,bz as mh,bE as bh,bB as vh,bC as yh,bG as hh,aI as xh,bH as Ch,b0 as Sh,b3 as wh,b5 as Rh,b7 as $h,b9 as Ph,bb as kh,bc as Th,be as Ih,bg as Mh,bj as Ah,bl as Lh,bn as Bh,bp as Nh,bw as Oh,by as zh,bA as jh,bD as Dh,A as Eh,bF as Fh,aG as Uh,az as Wh,aA as Hh,u as Vh}from"./Tabs-CvEv0KOT.js";import{C as u}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{j as d}from"./jsx-runtime-o-xyxrOj.js";import{u as se}from"./useTheme-CDtRWagv.js";import{e as Jo,a as ge,c as Ft,u as ne,f as _e,i as Le,b as Co,o as de,g as In,d as Ys,h as Ye,j as Mr,k as Uo,I as Ks}from"./FilledInput-BpuM_GyB.js";import{F as _h,G as qh,T as Xh,l as Yh,m as Kh}from"./FilledInput-BpuM_GyB.js";import{c as Ht,S as Zs}from"./createSvgIcon-BQThUM-f.js";import{g as Jh,s as Qh}from"./createSvgIcon-BQThUM-f.js";import{u as Mn,P as Qt}from"./useTheme-MELayQMj.js";import{u as He}from"./index-B7G6Jpdl.js";import{u as So,c as Ar,k as Lr}from"./useEnhancedEffect-CdLBzwyA.js";import{C as Ur}from"./ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js";import{r as Js}from"./DefaultPropsProvider-DbEA5uR6.js";import{C as e0,E as o0,T as r0,g as n0,u as s0}from"./ThemeProvider-DZTpMR8n.js";import"./defaultTheme-avbtL0lf.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";const ar=new Map,Qs=(t,e)=>{const o=ns(t);return o.sheet=new e({key:o.key,nonce:o.sheet.nonce,container:o.sheet.container,speedy:o.sheet.isSpeedy,prepend:o.sheet.prepend,insertionPoint:o.sheet.insertionPoint}),o};let ke;if(typeof document=="object"&&(ke=document.querySelector('[name="emotion-insertion-point"]'),!ke)){ke=document.createElement("meta"),ke.setAttribute("name","emotion-insertion-point"),ke.setAttribute("content","");const t=document.querySelector("head");t&&t.prepend(ke)}function ta(t,e){if(t||e){class o extends ss{insert(s,a){return this.key&&this.key.endsWith("global")&&(this.before=ke),super.insert(s,a)}}const r=Qs({key:"css",insertionPoint:t?ke:void 0},o);if(e){const n=r.insert;r.insert=(...s)=>(s[1].styles.startsWith("@layer")||(s[1].styles=`@layer mui {${s[1].styles}}`),n(...s))}return r}}function pm(t){const{injectFirst:e,enableCssLayer:o,children:r}=t,n=u.useMemo(()=>{const s=`${e}-${o}`;if(ar.has(s))return ar.get(s);const a=ta(e,o);return ar.set(s,a),a},[e,o]);return n?d.jsx(rs,{value:n,children:r}):r}function ea(t={}){const{themeId:e,defaultTheme:o,defaultClassName:r="MuiBox-root",generateClassName:n}=t,s=Ss("div",{shouldForwardProp:i=>i!=="theme"&&i!=="sx"&&i!=="as"})(as);return u.forwardRef(function(l,c){const p=Mn(o),{className:f,component:v="div",...m}=Jo(l);return d.jsx(s,{as:v,ref:c,className:j(f,n?n(r):r),theme:e&&p[e]||p,...m})})}const Br=ws();function dm(t,e){return()=>null}function um(t,e){return()=>null}function fm(t,e,o,r,n){return null}const Nr=t=>{const e=u.useRef({});return u.useEffect(()=>{e.current=t}),e.current};function An(t){return u.Children.toArray(t).filter(e=>u.isValidElement(e))}const oa=kr(),ra=Br("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${T(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),na=t=>Tr({props:t,name:"MuiContainer",defaultTheme:oa}),sa=(t,e)=>{const o=l=>K(e,l),{classes:r,fixed:n,disableGutters:s,maxWidth:a}=t,i={root:["root",a&&`maxWidth${T(String(a))}`,n&&"fixed",s&&"disableGutters"]};return q(i,o,r)};function aa(t={}){const{createStyledComponent:e=ra,useThemeProps:o=na,componentName:r="MuiContainer"}=t,n=e(({theme:a,ownerState:i})=>({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",...!i.disableGutters&&{paddingLeft:a.spacing(2),paddingRight:a.spacing(2),[a.breakpoints.up("sm")]:{paddingLeft:a.spacing(3),paddingRight:a.spacing(3)}}}),({theme:a,ownerState:i})=>i.fixed&&Object.keys(a.breakpoints.values).reduce((l,c)=>{const p=c,f=a.breakpoints.values[p];return f!==0&&(l[a.breakpoints.up(p)]={maxWidth:`${f}${a.breakpoints.unit}`}),l},{}),({theme:a,ownerState:i})=>({...i.maxWidth==="xs"&&{[a.breakpoints.up("xs")]:{maxWidth:Math.max(a.breakpoints.values.xs,444)}},...i.maxWidth&&i.maxWidth!=="xs"&&{[a.breakpoints.up(i.maxWidth)]:{maxWidth:`${a.breakpoints.values[i.maxWidth]}${a.breakpoints.unit}`}}}));return u.forwardRef(function(i,l){const c=o(i),{className:p,component:f="div",disableGutters:v=!1,fixed:m=!1,maxWidth:y="lg",classes:g,...h}=c,b={...c,component:f,disableGutters:v,fixed:m,maxWidth:y},x=sa(b,r);return d.jsx(n,{as:f,ownerState:b,className:j(x.root,p),ref:l,...h})})}const ia=(t,e)=>t.filter(o=>e.includes(o)),Ze=(t,e,o)=>{const r=t.keys[0];Array.isArray(e)?e.forEach((n,s)=>{o((a,i)=>{s<=t.keys.length-1&&(s===0?Object.assign(a,i):a[t.up(t.keys[s])]=i)},n)}):e&&typeof e=="object"?(Object.keys(e).length>t.keys.length?t.keys:ia(t.keys,Object.keys(e))).forEach(s=>{if(t.keys.includes(s)){const a=e[s];a!==void 0&&o((i,l)=>{r===s?Object.assign(i,l):i[t.up(s)]=l},a)}}):(typeof e=="number"||typeof e=="string")&&o((n,s)=>{Object.assign(n,s)},e)};function Go(t){return`--Grid-${t}Spacing`}function Qo(t){return`--Grid-parent-${t}Spacing`}const Wr="--Grid-columns",Ke="--Grid-parent-columns",la=({theme:t,ownerState:e})=>{const o={};return Ze(t.breakpoints,e.size,(r,n)=>{let s={};n==="grow"&&(s={flexBasis:0,flexGrow:1,maxWidth:"100%"}),n==="auto"&&(s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),typeof n=="number"&&(s={flexGrow:0,flexBasis:"auto",width:`calc(100% * ${n} / var(${Ke}) - (var(${Ke}) - ${n}) * (var(${Qo("column")}) / var(${Ke})))`}),r(o,s)}),o},ca=({theme:t,ownerState:e})=>{const o={};return Ze(t.breakpoints,e.offset,(r,n)=>{let s={};n==="auto"&&(s={marginLeft:"auto"}),typeof n=="number"&&(s={marginLeft:n===0?"0px":`calc(100% * ${n} / var(${Ke}) + var(${Qo("column")}) * ${n} / var(${Ke}))`}),r(o,s)}),o},pa=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={[Wr]:12};return Ze(t.breakpoints,e.columns,(r,n)=>{const s=n??12;r(o,{[Wr]:s,"> *":{[Ke]:s}})}),o},da=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Ze(t.breakpoints,e.rowSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[Go("row")]:s,"> *":{[Qo("row")]:s}})}),o},ua=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Ze(t.breakpoints,e.columnSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[Go("column")]:s,"> *":{[Qo("column")]:s}})}),o},fa=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Ze(t.breakpoints,e.direction,(r,n)=>{r(o,{flexDirection:n})}),o},ga=({ownerState:t})=>({minWidth:0,boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",...t.wrap&&t.wrap!=="wrap"&&{flexWrap:t.wrap},gap:`var(${Go("row")}) var(${Go("column")})`}}),ma=t=>{const e=[];return Object.entries(t).forEach(([o,r])=>{r!==!1&&r!==void 0&&e.push(`grid-${o}-${String(r)}`)}),e},ba=(t,e="xs")=>{function o(r){return r===void 0?!1:typeof r=="string"&&!Number.isNaN(Number(r))||typeof r=="number"&&r>0}if(o(t))return[`spacing-${e}-${String(t)}`];if(typeof t=="object"&&!Array.isArray(t)){const r=[];return Object.entries(t).forEach(([n,s])=>{o(s)&&r.push(`spacing-${n}-${String(s)}`)}),r}return[]},va=t=>t===void 0?[]:typeof t=="object"?Object.entries(t).map(([e,o])=>`direction-${e}-${o}`):[`direction-xs-${String(t)}`];function ya(t,e){t.item!==void 0&&delete t.item,t.zeroMinWidth!==void 0&&delete t.zeroMinWidth,e.keys.forEach(o=>{t[o]!==void 0&&delete t[o]})}const ha=kr(),xa=Br("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>e.root});function Ca(t){return Tr({props:t,name:"MuiGrid",defaultTheme:ha})}function Sa(t={}){const{createStyledComponent:e=xa,useThemeProps:o=Ca,useTheme:r=Mn,componentName:n="MuiGrid"}=t,s=(c,p)=>{const{container:f,direction:v,spacing:m,wrap:y,size:g}=c,h={root:["root",f&&"container",y!=="wrap"&&`wrap-xs-${String(y)}`,...va(v),...ma(g),...f?ba(m,p.breakpoints.keys[0]):[]]};return q(h,b=>K(n,b),{})};function a(c,p,f=()=>!0){const v={};return c===null||(Array.isArray(c)?c.forEach((m,y)=>{m!==null&&f(m)&&p.keys[y]&&(v[p.keys[y]]=m)}):typeof c=="object"?Object.keys(c).forEach(m=>{const y=c[m];y!=null&&f(y)&&(v[m]=y)}):v[p.keys[0]]=c),v}const i=e(pa,ua,da,la,fa,ga,ca),l=u.forwardRef(function(p,f){const v=r(),m=o(p),y=Jo(m);ya(y,v.breakpoints);const{className:g,children:h,columns:b=12,container:x=!1,component:C="div",direction:R="row",wrap:P="wrap",size:N={},offset:$={},spacing:A=0,rowSpacing:k=A,columnSpacing:I=A,unstable_level:F=0,...L}=y,w=a(N,v.breakpoints,_=>_!==!1),M=a($,v.breakpoints),H=p.columns??(F?void 0:b),z=p.spacing??(F?void 0:A),Q=p.rowSpacing??p.spacing??(F?void 0:k),D=p.columnSpacing??p.spacing??(F?void 0:I),et={...y,level:F,columns:H,container:x,direction:R,wrap:P,spacing:z,rowSpacing:Q,columnSpacing:D,size:w,offset:M},pt=s(et,v);return d.jsx(i,{ref:f,as:C,ownerState:et,className:j(pt.root,g),...L,children:u.Children.map(h,_=>{var wt;return u.isValidElement(_)&&Yo(_,["Grid"])&&x&&_.props.container?u.cloneElement(_,{unstable_level:((wt=_.props)==null?void 0:wt.unstable_level)??F+1}):_})})});return l.muiName="Grid",l}const wa=kr(),Ra=Br("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root});function $a(t){return Tr({props:t,name:"MuiStack",defaultTheme:wa})}function Pa(t,e){const o=u.Children.toArray(t).filter(Boolean);return o.reduce((r,n,s)=>(r.push(n),s({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[t],Ta=({ownerState:t,theme:e})=>{let o={display:"flex",flexDirection:"column",...mo({theme:e},De({values:t.direction,breakpoints:e.breakpoints.values}),r=>({flexDirection:r}))};if(t.spacing){const r=is(e),n=Object.keys(e.breakpoints.values).reduce((l,c)=>((typeof t.spacing=="object"&&t.spacing[c]!=null||typeof t.direction=="object"&&t.direction[c]!=null)&&(l[c]=!0),l),{}),s=De({values:t.direction,base:n}),a=De({values:t.spacing,base:n});typeof s=="object"&&Object.keys(s).forEach((l,c,p)=>{if(!s[l]){const v=c>0?s[p[c-1]]:"column";s[l]=v}}),o=Sn(o,mo({theme:e},a,(l,c)=>t.useFlexGap?{gap:Dr(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${ka(c?s[c]:t.direction)}`]:Dr(r,l)}}))}return o=ls(e.breakpoints,o),o};function Ia(t={}){const{createStyledComponent:e=Ra,useThemeProps:o=$a,componentName:r="MuiStack"}=t,n=()=>q({root:["root"]},l=>K(r,l),{}),s=e(Ta);return u.forwardRef(function(l,c){const p=o(l),f=Jo(p),{component:v="div",direction:m="column",spacing:y=0,divider:g,children:h,className:b,useFlexGap:x=!1,...C}=f,R={direction:m,spacing:y,useFlexGap:x},P=n();return d.jsx(s,{as:v,ownerState:R,ref:c,className:j(P.root,b),...C,children:g?Pa(h,g):h})})}function gm(t){const{defaultProps:e={},mixins:o={},overrides:r={},palette:n={},props:s={},styleOverrides:a={},...i}=t,l={...i,components:{}};Object.keys(e).forEach(g=>{const h=l.components[g]||{};h.defaultProps=e[g],l.components[g]=h}),Object.keys(s).forEach(g=>{const h=l.components[g]||{};h.defaultProps=s[g],l.components[g]=h}),Object.keys(a).forEach(g=>{const h=l.components[g]||{};h.styleOverrides=a[g],l.components[g]=h}),Object.keys(r).forEach(g=>{const h=l.components[g]||{};h.styleOverrides=r[g],l.components[g]=h}),l.spacing=cs(t.spacing);const c=ps(t.breakpoints||{}),p=l.spacing;l.mixins={gutters:(g={})=>({paddingLeft:p(2),paddingRight:p(2),...g,[c.up("sm")]:{paddingLeft:p(3),paddingRight:p(3),...g[c.up("sm")]}}),...o};const{type:f,mode:v,...m}=n,y=v||f||"light";return l.palette={text:{hint:y==="dark"?"rgba(255, 255, 255, 0.5)":"rgba(0, 0, 0, 0.38)"},mode:y,type:y,...m},l}function mm(t,...e){return wn(Sn({unstable_strictMode:!0},t),...e)}let Hr=!1;function bm(t){return Hr||(console.warn(["MUI: createStyles from @mui/material/styles is deprecated.","Please use @mui/styles/createStyles"].join(` -`)),Hr=!0),t}function vm(t,e={}){const{breakpoints:o=["sm","md","lg"],disableAlign:r=!1,factor:n=2,variants:s=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline"]}=e,a={...t};a.typography={...a.typography};const i=a.typography,l=Rs(i.htmlFontSize),c=o.map(p=>a.breakpoints.values[p]);return s.forEach(p=>{const f=i[p];if(!f)return;const v=parseFloat(l(f.fontSize,"rem"));if(v<=1)return;const m=v,y=1+(m-1)/n;let{lineHeight:g}=f;if(!Er(g)&&!r)throw new Error(xo(6));Er(g)||(g=parseFloat(l(g,"rem"))/parseFloat(v));let h=null;r||(h=b=>Ps({size:b,grid:ks({pixels:4,lineHeight:g,htmlFontSize:i.htmlFontSize})})),i[p]={...f,...$s({cssProperty:"fontSize",min:y,max:m,unit:"rem",breakpoints:c,transform:h})}}),a}function ym(){throw new Error(xo(14))}function hm(){throw new Error(xo(15))}function xm(){throw new Error(xo(16))}let Vr=!1;function Cm(...t){return Vr||(console.warn(["MUI: The `experimental_extendTheme` has been stabilized.","","You should use `import { extendTheme } from '@mui/material/styles'`"].join(` -`)),Vr=!0),ds(...t)}function Sm(){throw new Error(xo(19))}const wm={configure:t=>{Rn.configure(t)}},Ma=t=>{const{alignItems:e,classes:o}=t;return q({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},Ts,o)},Aa=S("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})(U(({theme:t})=>({minWidth:56,color:(t.vars||t).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),Rm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemIcon"}),{className:n,...s}=r,a=u.useContext(bo),i={...r,alignItems:a.alignItems},l=Ma(i);return d.jsx(Aa,{className:j(l.root,n),ownerState:i,ref:o,...s})}),La=t=>{const{classes:e,inset:o,primary:r,secondary:n,dense:s}=t;return q({root:["root",o&&"inset",s&&"dense",r&&n&&"multiline"],primary:["primary"],secondary:["secondary"]},Is,e)},Ba=S("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${To.primary}`]:e.primary},{[`& .${To.secondary}`]:e.secondary},e.root,o.inset&&e.inset,o.primary&&o.secondary&&e.multiline,o.dense&&e.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${Vo.root}:where(& .${To.primary})`]:{display:"block"},[`.${Vo.root}:where(& .${To.secondary})`]:{display:"block"},variants:[{props:({ownerState:t})=>t.primary&&t.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:56}}]}),$m=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemText"}),{children:n,className:s,disableTypography:a=!1,inset:i=!1,primary:l,primaryTypographyProps:c,secondary:p,secondaryTypographyProps:f,slots:v={},slotProps:m={},...y}=r,{dense:g}=u.useContext(bo);let h=l??n,b=p;const x={...r,disableTypography:a,inset:i,primary:!!h,secondary:!!b,dense:g},C=La(x),R={slots:v,slotProps:{primary:c,secondary:f,...m}},[P,N]=V("root",{className:j(C.root,s),elementType:Ba,externalForwardedProps:{...R,...y},ownerState:x,ref:o}),[$,A]=V("primary",{className:C.primary,elementType:re,externalForwardedProps:R,ownerState:x}),[k,I]=V("secondary",{className:C.secondary,elementType:re,externalForwardedProps:R,ownerState:x});return h!=null&&h.type!==re&&!a&&(h=d.jsx($,{variant:g?"body2":"body1",component:A!=null&&A.variant?void 0:"span",...A,children:h})),b!=null&&b.type!==re&&!a&&(b=d.jsx(k,{variant:"body2",color:"textSecondary",...I,children:b})),d.jsxs(P,{...N,children:[h,b]})}),Na=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.alignItems==="flex-start"&&e.alignItemsFlexStart,o.divider&&e.divider,!o.disableGutters&&e.gutters]},Oa=t=>{const{alignItems:e,classes:o,dense:r,disabled:n,disableGutters:s,divider:a,selected:i}=t,c=q({root:["root",r&&"dense",!s&&"gutters",a&&"divider",n&&"disabled",e==="flex-start"&&"alignItemsFlexStart",i&&"selected"]},Ms,o);return{...o,...c}},za=S(fe,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiListItemButton",slot:"Root",overridesResolver:Na})(U(({theme:t})=>({display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ro.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${ro.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},[`&.${ro.selected}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity)}},[`&.${ro.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${ro.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.dense,style:{paddingTop:4,paddingBottom:4}}]}))),Pm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemButton"}),{alignItems:n="center",autoFocus:s=!1,component:a="div",children:i,dense:l=!1,disableGutters:c=!1,divider:p=!1,focusVisibleClassName:f,selected:v=!1,className:m,...y}=r,g=u.useContext(bo),h=u.useMemo(()=>({dense:l||g.dense||!1,alignItems:n,disableGutters:c}),[n,g.dense,l,c]),b=u.useRef(null);So(()=>{s&&b.current&&b.current.focus()},[s]);const x={...r,alignItems:n,dense:h.dense,disableGutters:c,divider:p,selected:v},C=Oa(x),R=ge(b,o);return d.jsx(bo.Provider,{value:h,children:d.jsx(za,{ref:R,href:y.href||y.to,component:(y.href||y.to)&&a==="div"?"button":a,focusVisibleClassName:j(C.focusVisible,f),ownerState:x,className:j(C.root,m),...y,classes:C,children:i})})}),ja={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},Da={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea"},Ea={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},Fa={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"},Ua={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5"},Wa={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17"},Ha={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00"},Va={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600"},Ga={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"},_a={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00"},qa={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037"},Xa={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"},km=Object.freeze(Object.defineProperty({__proto__:null,amber:Ga,blue:us,blueGrey:Xa,brown:qa,common:fs,cyan:Fa,deepOrange:_a,deepPurple:Da,green:gs,grey:ms,indigo:Ea,lightBlue:bs,lightGreen:Wa,lime:Ha,orange:vs,pink:ja,purple:ys,red:hs,teal:Ua,yellow:Va},Symbol.toStringTag,{value:"Module"}));function Ya(t){return K("MuiCollapse",t)}const Tm=Z("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]),Ka=t=>{const{orientation:e,classes:o}=t,r={root:["root",`${e}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${e}`],wrapperInner:["wrapperInner",`${e}`]};return q(r,Ya,o)},Za=S("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.state==="entered"&&e.entered,o.state==="exited"&&!o.in&&o.collapsedSize==="0px"&&e.hidden]}})(U(({theme:t})=>({height:0,overflow:"hidden",transition:t.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:t.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:e})=>e.state==="exited"&&!e.in&&e.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),Ja=S("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(t,e)=>e.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),Qa=S("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(t,e)=>e.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),yo=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCollapse"}),{addEndListener:n,children:s,className:a,collapsedSize:i="0px",component:l,easing:c,in:p,onEnter:f,onEntered:v,onEntering:m,onExit:y,onExited:g,onExiting:h,orientation:b="vertical",style:x,timeout:C=xs.standard,TransitionComponent:R=Ir,...P}=r,N={...r,orientation:b,collapsedSize:i},$=Ka(N),A=se(),k=Oe(),I=u.useRef(null),F=u.useRef(),L=typeof i=="number"?`${i}px`:i,w=b==="horizontal",M=w?"width":"height",H=u.useRef(null),z=ge(o,H),Q=rt=>W=>{if(rt){const it=H.current;W===void 0?rt(it):rt(it,W)}},D=()=>I.current?I.current[w?"clientWidth":"clientHeight"]:0,et=Q((rt,W)=>{I.current&&w&&(I.current.style.position="absolute"),rt.style[M]=L,f&&f(rt,W)}),pt=Q((rt,W)=>{const it=D();I.current&&w&&(I.current.style.position="");const{duration:dt,easing:bt}=Ue({style:x,timeout:C,easing:c},{mode:"enter"});if(C==="auto"){const $t=A.transitions.getAutoHeightDuration(it);rt.style.transitionDuration=`${$t}ms`,F.current=$t}else rt.style.transitionDuration=typeof dt=="string"?dt:`${dt}ms`;rt.style[M]=`${it}px`,rt.style.transitionTimingFunction=bt,m&&m(rt,W)}),_=Q((rt,W)=>{rt.style[M]="auto",v&&v(rt,W)}),wt=Q(rt=>{rt.style[M]=`${D()}px`,y&&y(rt)}),Lt=Q(g),Rt=Q(rt=>{const W=D(),{duration:it,easing:dt}=Ue({style:x,timeout:C,easing:c},{mode:"exit"});if(C==="auto"){const bt=A.transitions.getAutoHeightDuration(W);rt.style.transitionDuration=`${bt}ms`,F.current=bt}else rt.style.transitionDuration=typeof it=="string"?it:`${it}ms`;rt.style[M]=L,rt.style.transitionTimingFunction=dt,h&&h(rt)}),lt=rt=>{C==="auto"&&k.start(F.current||0,rt),n&&n(H.current,rt)};return d.jsx(R,{in:p,onEnter:et,onEntered:_,onEntering:pt,onExit:wt,onExited:Lt,onExiting:Rt,addEndListener:lt,nodeRef:H,timeout:C==="auto"?null:C,...P,children:(rt,{ownerState:W,...it})=>d.jsx(Za,{as:l,className:j($.root,a,{entered:$.entered,exited:!p&&L==="0px"&&$.hidden}[rt]),style:{[w?"minWidth":"minHeight"]:L,...x},ref:z,ownerState:{...N,state:rt},...it,children:d.jsx(Ja,{ownerState:{...N,state:rt},className:$.wrapper,ref:I,children:d.jsx(Qa,{ownerState:{...N,state:rt},className:$.wrapperInner,children:s})})})})});yo&&(yo.muiSupportAuto=!0);const Ln=u.createContext({});function ti(t){return K("MuiAccordion",t)}const Io=Z("MuiAccordion",["root","heading","rounded","expanded","disabled","gutters","region"]),ei=t=>{const{classes:e,square:o,expanded:r,disabled:n,disableGutters:s}=t;return q({root:["root",!o&&"rounded",r&&"expanded",n&&"disabled",!s&&"gutters"],heading:["heading"],region:["region"]},ti,e)},oi=S(we,{name:"MuiAccordion",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Io.region}`]:e.region},e.root,!o.square&&e.rounded,!o.disableGutters&&e.gutters]}})(U(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{position:"relative",transition:t.transitions.create(["margin"],e),overflowAnchor:"none","&::before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:(t.vars||t).palette.divider,transition:t.transitions.create(["opacity","background-color"],e)},"&:first-of-type":{"&::before":{display:"none"}},[`&.${Io.expanded}`]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:"none"}}},[`&.${Io.disabled}`]:{backgroundColor:(t.vars||t).palette.action.disabledBackground}}}),U(({theme:t})=>({variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(t.vars||t).shape.borderRadius,borderTopRightRadius:(t.vars||t).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(t.vars||t).shape.borderRadius,borderBottomRightRadius:(t.vars||t).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{[`&.${Io.expanded}`]:{margin:"16px 0"}}}]}))),ri=S("h3",{name:"MuiAccordion",slot:"Heading",overridesResolver:(t,e)=>e.heading})({all:"unset"}),Im=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordion"}),{children:n,className:s,defaultExpanded:a=!1,disabled:i=!1,disableGutters:l=!1,expanded:c,onChange:p,square:f=!1,slots:v={},slotProps:m={},TransitionComponent:y,TransitionProps:g,...h}=r,[b,x]=ue({controlled:c,default:a,name:"Accordion",state:"expanded"}),C=u.useCallback(D=>{x(!b),p&&p(D,!b)},[b,p,x]),[R,...P]=u.Children.toArray(n),N=u.useMemo(()=>({expanded:b,disabled:i,disableGutters:l,toggle:C}),[b,i,l,C]),$={...r,square:f,disabled:i,disableGutters:l,expanded:b},A=ei($),k={transition:y,...v},I={transition:g,...m},F={slots:k,slotProps:I},[L,w]=V("root",{elementType:oi,externalForwardedProps:{...F,...h},className:j(A.root,s),shouldForwardComponentProp:!0,ownerState:$,ref:o,additionalProps:{square:f}}),[M,H]=V("heading",{elementType:ri,externalForwardedProps:F,className:A.heading,ownerState:$}),[z,Q]=V("transition",{elementType:yo,externalForwardedProps:F,ownerState:$});return d.jsxs(L,{...w,children:[d.jsx(M,{...H,children:d.jsx(Ln.Provider,{value:N,children:R})}),d.jsx(z,{in:b,timeout:"auto",...Q,children:d.jsx("div",{"aria-labelledby":R.props.id,id:R.props["aria-controls"],role:"region",className:A.region,children:P})})]})});function ni(t){return K("MuiAccordionActions",t)}const Mm=Z("MuiAccordionActions",["root","spacing"]),si=t=>{const{classes:e,disableSpacing:o}=t;return q({root:["root",!o&&"spacing"]},ni,e)},ai=S("div",{name:"MuiAccordionActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",variants:[{props:t=>!t.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),Am=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordionActions"}),{className:n,disableSpacing:s=!1,...a}=r,i={...r,disableSpacing:s},l=si(i);return d.jsx(ai,{className:j(l.root,n),ref:o,ownerState:i,...a})});function ii(t){return K("MuiAccordionDetails",t)}const Lm=Z("MuiAccordionDetails",["root"]),li=t=>{const{classes:e}=t;return q({root:["root"]},ii,e)},ci=S("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({padding:t.spacing(1,2,2)}))),Bm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordionDetails"}),{className:n,...s}=r,a=r,i=li(a);return d.jsx(ci,{className:j(i.root,n),ref:o,ownerState:a,...s})});function pi(t){return K("MuiAccordionSummary",t)}const Xe=Z("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]),di=t=>{const{classes:e,expanded:o,disabled:r,disableGutters:n}=t;return q({root:["root",o&&"expanded",r&&"disabled",!n&&"gutters"],focusVisible:["focusVisible"],content:["content",o&&"expanded",!n&&"contentGutters"],expandIconWrapper:["expandIconWrapper",o&&"expanded"]},pi,e)},ui=S(fe,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{display:"flex",width:"100%",minHeight:48,padding:t.spacing(0,2),transition:t.transitions.create(["min-height","background-color"],e),[`&.${Xe.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${Xe.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},[`&:hover:not(.${Xe.disabled})`]:{cursor:"pointer"},variants:[{props:o=>!o.disableGutters,style:{[`&.${Xe.expanded}`]:{minHeight:64}}}]}})),fi=S("span",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:(t,e)=>e.content})(U(({theme:t})=>({display:"flex",textAlign:"start",flexGrow:1,margin:"12px 0",variants:[{props:e=>!e.disableGutters,style:{transition:t.transitions.create(["margin"],{duration:t.transitions.duration.shortest}),[`&.${Xe.expanded}`]:{margin:"20px 0"}}}]}))),gi=S("span",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:(t,e)=>e.expandIconWrapper})(U(({theme:t})=>({display:"flex",color:(t.vars||t).palette.action.active,transform:"rotate(0deg)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),[`&.${Xe.expanded}`]:{transform:"rotate(180deg)"}}))),Nm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordionSummary"}),{children:n,className:s,expandIcon:a,focusVisibleClassName:i,onClick:l,slots:c,slotProps:p,...f}=r,{disabled:v=!1,disableGutters:m,expanded:y,toggle:g}=u.useContext(Ln),h=I=>{g&&g(I),l&&l(I)},b={...r,expanded:y,disabled:v,disableGutters:m},x=di(b),C={slots:c,slotProps:p},[R,P]=V("root",{ref:o,shouldForwardComponentProp:!0,className:j(x.root,s),elementType:ui,externalForwardedProps:{...C,...f},ownerState:b,additionalProps:{focusRipple:!1,disableRipple:!0,disabled:v,"aria-expanded":y,focusVisibleClassName:j(x.focusVisible,i)},getSlotProps:I=>({...I,onClick:F=>{var L;(L=I.onClick)==null||L.call(I,F),h(F)}})}),[N,$]=V("content",{className:x.content,elementType:fi,externalForwardedProps:C,ownerState:b}),[A,k]=V("expandIconWrapper",{className:x.expandIconWrapper,elementType:gi,externalForwardedProps:C,ownerState:b});return d.jsxs(R,{...P,children:[d.jsx(N,{...$,children:n}),a&&d.jsx(A,{...k,children:a})]})});function mi(t){return K("MuiAlert",t)}const Gr=Z("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]),bi=Ht(d.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),vi=Ht(d.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),yi=Ht(d.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),hi=Ht(d.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),Bn=Ht(d.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),xi=t=>{const{variant:e,color:o,severity:r,classes:n}=t,s={root:["root",`color${T(o||r)}`,`${e}${T(o||r)}`,`${e}`],icon:["icon"],message:["message"],action:["action"]};return q(s,mi,n)},Ci=S(we,{name:"MuiAlert",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`${o.variant}${T(o.color||o.severity)}`]]}})(U(({theme:t})=>{const e=t.palette.mode==="light"?Ee:Fe,o=t.palette.mode==="light"?Fe:Ee;return{...t.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(t.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),backgroundColor:t.vars?t.vars.palette.Alert[`${r}StandardBg`]:o(t.palette[r].light,.9),[`& .${Gr.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),border:`1px solid ${(t.vars||t).palette[r].light}`,[`& .${Gr.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(Ft(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:t.typography.fontWeightMedium,...t.vars?{color:t.vars.palette.Alert[`${r}FilledColor`],backgroundColor:t.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:t.palette.mode==="dark"?t.palette[r].dark:t.palette[r].main,color:t.palette.getContrastText(t.palette[r].main)}}}))]}})),Si=S("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(t,e)=>e.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),wi=S("div",{name:"MuiAlert",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),Ri=S("div",{name:"MuiAlert",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),_r={success:d.jsx(bi,{fontSize:"inherit"}),warning:d.jsx(vi,{fontSize:"inherit"}),error:d.jsx(yi,{fontSize:"inherit"}),info:d.jsx(hi,{fontSize:"inherit"})},Om=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAlert"}),{action:n,children:s,className:a,closeText:i="Close",color:l,components:c={},componentsProps:p={},icon:f,iconMapping:v=_r,onClose:m,role:y="alert",severity:g="success",slotProps:h={},slots:b={},variant:x="standard",...C}=r,R={...r,color:l,severity:g,variant:x,colorSeverity:l||g},P=xi(R),N={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...b},slotProps:{...p,...h}},[$,A]=V("root",{ref:o,shouldForwardComponentProp:!0,className:j(P.root,a),elementType:Ci,externalForwardedProps:{...N,...C},ownerState:R,additionalProps:{role:y,elevation:0}}),[k,I]=V("icon",{className:P.icon,elementType:Si,externalForwardedProps:N,ownerState:R}),[F,L]=V("message",{className:P.message,elementType:wi,externalForwardedProps:N,ownerState:R}),[w,M]=V("action",{className:P.action,elementType:Ri,externalForwardedProps:N,ownerState:R}),[H,z]=V("closeButton",{elementType:ze,externalForwardedProps:N,ownerState:R}),[Q,D]=V("closeIcon",{elementType:Bn,externalForwardedProps:N,ownerState:R});return d.jsxs($,{...A,children:[f!==!1?d.jsx(k,{...I,children:f||v[g]||_r[g]}):null,d.jsx(F,{...L,children:s}),n!=null?d.jsx(w,{...M,children:n}):null,n==null&&m?d.jsx(w,{...M,children:d.jsx(H,{size:"small","aria-label":i,title:i,color:"inherit",onClick:m,...z,children:d.jsx(Q,{fontSize:"small",...D})})}):null]})});function $i(t){return K("MuiAlertTitle",t)}const zm=Z("MuiAlertTitle",["root"]),Pi=t=>{const{classes:e}=t;return q({root:["root"]},$i,e)},ki=S(re,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({fontWeight:t.typography.fontWeightMedium,marginTop:-2}))),jm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAlertTitle"}),{className:n,...s}=r,a=r,i=Pi(a);return d.jsx(ki,{gutterBottom:!0,component:"div",ownerState:a,ref:o,className:j(i.root,n),...s})});function Ti(t){return K("MuiAppBar",t)}const Dm=Z("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]),Ii=t=>{const{color:e,position:o,classes:r}=t,n={root:["root",`color${T(e)}`,`position${T(o)}`]};return q(n,Ti,r)},qr=(t,e)=>t?`${t==null?void 0:t.replace(")","")}, ${e})`:e,Mi=S(we,{name:"MuiAppBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${T(o.position)}`],e[`color${T(o.color)}`]]}})(U(({theme:t})=>({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit"}},{props:{color:"default"},style:{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[100],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[100]),...t.applyStyles("dark",{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[900],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[900])})}},...Object.entries(t.palette).filter(Ft(["contrastText"])).map(([e])=>({props:{color:e},style:{"--AppBar-background":(t.vars??t).palette[e].main,"--AppBar-color":(t.vars??t).palette[e].contrastText}})),{props:e=>e.enableColorOnDark===!0&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:e=>e.enableColorOnDark===!1&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundColor:t.vars?qr(t.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:t.vars?qr(t.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundImage:"none"})}}]}))),Em=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAppBar"}),{className:n,color:s="primary",enableColorOnDark:a=!1,position:i="fixed",...l}=r,c={...r,color:s,position:i,enableColorOnDark:a},p=Ii(c);return d.jsx(Mi,{square:!0,component:"header",ownerState:c,elevation:4,className:j(p.root,n,i==="fixed"&&"mui-fixed"),ref:o,...l})});function Xr(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function Ai(t={}){const{ignoreAccents:e=!0,ignoreCase:o=!0,limit:r,matchFrom:n="any",stringify:s,trim:a=!1}=t;return(i,{inputValue:l,getOptionLabel:c})=>{let p=a?l.trim():l;o&&(p=p.toLowerCase()),e&&(p=Xr(p));const f=p?i.filter(v=>{let m=(s||c)(v);return o&&(m=m.toLowerCase()),e&&(m=Xr(m)),n==="start"?m.startsWith(p):m.includes(p)}):i;return typeof r=="number"?f.slice(0,r):f}}const Li=Ai(),Yr=5,Bi=t=>{var e;return t.current!==null&&((e=t.current.parentElement)==null?void 0:e.contains(document.activeElement))},Ni=[];function Kr(t,e,o){if(e||t==null)return"";const r=o(t);return typeof r=="string"?r:""}function Oi(t){const{unstable_isActiveElementInListbox:e=Bi,unstable_classNamePrefix:o="Mui",autoComplete:r=!1,autoHighlight:n=!1,autoSelect:s=!1,blurOnSelect:a=!1,clearOnBlur:i=!t.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:p=t.multiple?Ni:null,disableClearable:f=!1,disableCloseOnSelect:v=!1,disabled:m,disabledItemsFocusable:y=!1,disableListWrap:g=!1,filterOptions:h=Li,filterSelectedOptions:b=!1,freeSolo:x=!1,getOptionDisabled:C,getOptionKey:R,getOptionLabel:P=O=>O.label??O,groupBy:N,handleHomeEndKeys:$=!t.freeSolo,id:A,includeInputInList:k=!1,inputValue:I,isOptionEqualToValue:F=(O,B)=>O===B,multiple:L=!1,onChange:w,onClose:M,onHighlightChange:H,onInputChange:z,onOpen:Q,open:D,openOnFocus:et=!1,options:pt,readOnly:_=!1,selectOnFocus:wt=!t.freeSolo,value:Lt}=t,Rt=We(A);let lt=P;lt=O=>{const B=P(O);return typeof B!="string"?String(B):B};const rt=u.useRef(!1),W=u.useRef(!0),it=u.useRef(null),dt=u.useRef(null),[bt,$t]=u.useState(null),[nt,ct]=u.useState(-1),vt=n?0:-1,yt=u.useRef(vt),Ot=u.useRef(Kr(p??Lt,L,lt)).current,[Y,tt]=ue({controlled:Lt,default:p,name:c}),[st,xt]=ue({controlled:I,default:Ot,name:c,state:"inputValue"}),[ft,Pt]=u.useState(!1),It=u.useCallback((O,B,at)=>{if(!(L?Y.length!(b&&(L?Y:[Y]).some(B=>B!==null&&F(O,B)))),{inputValue:gt&&G?"":st,getOptionLabel:lt}):[],ht=Nr({filteredOptions:J,value:Y,inputValue:st});u.useEffect(()=>{const O=Y!==ht.value;ft&&!O||x&&!O||It(null,Y,"reset")},[Y,It,ft,ht.value,x]);const Dt=Vt&&J.length>0&&!_,At=ne(O=>{O===-1?it.current.focus():bt.querySelector(`[data-tag-index="${O}"]`).focus()});u.useEffect(()=>{L&&nt>Y.length-1&&(ct(-1),At(-1))},[Y,L,nt,At]);function zt(O,B){if(!dt.current||O<0||O>=J.length)return-1;let at=O;for(;;){const Ct=dt.current.querySelector(`[data-option-index="${at}"]`),Mt=y?!1:!Ct||Ct.disabled||Ct.getAttribute("aria-disabled")==="true";if(Ct&&Ct.hasAttribute("tabindex")&&!Mt)return at;if(B==="next"?at=(at+1)%J.length:at=(at-1+J.length)%J.length,at===O)return-1}}const qt=ne(({event:O,index:B,reason:at})=>{if(yt.current=B,B===-1?it.current.removeAttribute("aria-activedescendant"):it.current.setAttribute("aria-activedescendant",`${Rt}-option-${B}`),H&&["mouse","keyboard","touch"].includes(at)&&H(O,B===-1?null:J[B],at),!dt.current)return;const Ct=dt.current.querySelector(`[role="option"].${o}-focused`);Ct&&(Ct.classList.remove(`${o}-focused`),Ct.classList.remove(`${o}-focusVisible`));let Mt=dt.current;if(dt.current.getAttribute("role")!=="listbox"&&(Mt=dt.current.parentElement.querySelector('[role="listbox"]')),!Mt)return;if(B===-1){Mt.scrollTop=0;return}const jt=dt.current.querySelector(`[data-option-index="${B}"]`);if(jt&&(jt.classList.add(`${o}-focused`),at==="keyboard"&&jt.classList.add(`${o}-focusVisible`),Mt.scrollHeight>Mt.clientHeight&&at!=="mouse"&&at!=="touch")){const Gt=jt,ie=Mt.clientHeight+Mt.scrollTop,nr=Gt.offsetTop+Gt.offsetHeight;nr>ie?Mt.scrollTop=nr-Mt.clientHeight:Gt.offsetTop-Gt.offsetHeight*(N?1.3:0){if(!ut)return;const jt=zt((()=>{const Gt=J.length-1;if(B==="reset")return vt;if(B==="start")return 0;if(B==="end")return Gt;const ie=yt.current+B;return ie<0?ie===-1&&k?-1:g&&yt.current!==-1||Math.abs(B)>1?0:Gt:ie>Gt?ie===Gt+1&&k?-1:g||Math.abs(B)>1?Gt:0:ie})(),at);if(qt({index:jt,reason:Ct,event:O}),r&&B!=="reset")if(jt===-1)it.current.value=st;else{const Gt=lt(J[jt]);it.current.value=Gt,Gt.toLowerCase().indexOf(st.toLowerCase())===0&&st.length>0&&it.current.setSelectionRange(st.length,Gt.length)}}),ye=()=>{const O=(B,at)=>{const Ct=B?lt(B):"",Mt=at?lt(at):"";return Ct===Mt};if(yt.current!==-1&&ht.filteredOptions&&ht.filteredOptions.length!==J.length&&ht.inputValue===st&&(L?Y.length===ht.value.length&&ht.value.every((B,at)=>lt(Y[at])===lt(B)):O(ht.value,Y))){const B=ht.filteredOptions[yt.current];if(B)return J.findIndex(at=>lt(at)===lt(B))}return-1},ae=u.useCallback(()=>{if(!ut)return;const O=ye();if(O!==-1){yt.current=O;return}const B=L?Y[0]:Y;if(J.length===0||B==null){Xt({diff:"reset"});return}if(dt.current){if(B!=null){const at=J[yt.current];if(L&&at&&Y.findIndex(Mt=>F(at,Mt))!==-1)return;const Ct=J.findIndex(Mt=>F(Mt,B));Ct===-1?Xt({diff:"reset"}):qt({index:Ct});return}if(yt.current>=J.length-1){qt({index:J.length-1});return}qt({index:yt.current})}},[J.length,L?!1:Y,b,Xt,qt,ut,st,L]),he=ne(O=>{As(dt,O),O&&ae()});u.useEffect(()=>{ae()},[ae]);const Yt=O=>{Vt||(E(!0),ot(!0),Q&&Q(O))},ce=(O,B)=>{Vt&&(E(!1),M&&M(O,B))},Bt=(O,B,at,Ct)=>{if(L){if(Y.length===B.length&&Y.every((Mt,jt)=>Mt===B[jt]))return}else if(Y===B)return;w&&w(O,B,at,Ct),tt(B)},Et=u.useRef(!1),Kt=(O,B,at="selectOption",Ct="options")=>{let Mt=at,jt=B;if(L){jt=Array.isArray(Y)?Y.slice():[];const Gt=jt.findIndex(ie=>F(B,ie));Gt===-1?jt.push(B):Ct!=="freeSolo"&&(jt.splice(Gt,1),Mt="removeOption")}It(O,jt,Mt),Bt(O,jt,Mt,{option:B}),!v&&(!O||!O.ctrlKey&&!O.metaKey)&&ce(O,Mt),(a===!0||a==="touch"&&Et.current||a==="mouse"&&!Et.current)&&it.current.blur()};function pe(O,B){if(O===-1)return-1;let at=O;for(;;){if(B==="next"&&at===Y.length||B==="previous"&&at===-1)return-1;const Ct=bt.querySelector(`[data-tag-index="${at}"]`);if(!Ct||!Ct.hasAttribute("tabindex")||Ct.disabled||Ct.getAttribute("aria-disabled")==="true")at+=B==="next"?1:-1;else return at}}const Zt=(O,B)=>{if(!L)return;st===""&&ce(O,"toggleInput");let at=nt;nt===-1?st===""&&B==="previous"&&(at=Y.length-1):(at+=B==="next"?1:-1,at<0&&(at=0),at===Y.length&&(at=-1)),at=pe(at,B),ct(at),At(at)},mt=O=>{rt.current=!0,xt(""),z&&z(O,"","clear"),Bt(O,L?[]:null,"clear")},te=O=>B=>{if(O.onKeyDown&&O.onKeyDown(B),!B.defaultMuiPrevented&&(nt!==-1&&!["ArrowLeft","ArrowRight"].includes(B.key)&&(ct(-1),At(-1)),B.which!==229))switch(B.key){case"Home":ut&&$&&(B.preventDefault(),Xt({diff:"start",direction:"next",reason:"keyboard",event:B}));break;case"End":ut&&$&&(B.preventDefault(),Xt({diff:"end",direction:"previous",reason:"keyboard",event:B}));break;case"PageUp":B.preventDefault(),Xt({diff:-Yr,direction:"previous",reason:"keyboard",event:B}),Yt(B);break;case"PageDown":B.preventDefault(),Xt({diff:Yr,direction:"next",reason:"keyboard",event:B}),Yt(B);break;case"ArrowDown":B.preventDefault(),Xt({diff:1,direction:"next",reason:"keyboard",event:B}),Yt(B);break;case"ArrowUp":B.preventDefault(),Xt({diff:-1,direction:"previous",reason:"keyboard",event:B}),Yt(B);break;case"ArrowLeft":Zt(B,"previous");break;case"ArrowRight":Zt(B,"next");break;case"Enter":if(yt.current!==-1&&ut){const at=J[yt.current],Ct=C?C(at):!1;if(B.preventDefault(),Ct)return;Kt(B,at,"selectOption"),r&&it.current.setSelectionRange(it.current.value.length,it.current.value.length)}else x&&st!==""&>===!1&&(L&&B.preventDefault(),Kt(B,st,"createOption","freeSolo"));break;case"Escape":ut?(B.preventDefault(),B.stopPropagation(),ce(B,"escape")):l&&(st!==""||L&&Y.length>0)&&(B.preventDefault(),B.stopPropagation(),mt(B));break;case"Backspace":if(L&&!_&&st===""&&Y.length>0){const at=nt===-1?Y.length-1:nt,Ct=Y.slice();Ct.splice(at,1),Bt(B,Ct,"removeOption",{option:Y[at]})}break;case"Delete":if(L&&!_&&st===""&&Y.length>0&&nt!==-1){const at=nt,Ct=Y.slice();Ct.splice(at,1),Bt(B,Ct,"removeOption",{option:Y[at]})}break}},Ge=O=>{Pt(!0),et&&!rt.current&&Yt(O)},Ae=O=>{if(e(dt)){it.current.focus();return}Pt(!1),W.current=!0,rt.current=!1,s&&yt.current!==-1&&ut?Kt(O,J[yt.current],"blur"):s&&x&&st!==""?Kt(O,st,"blur","freeSolo"):i&&It(O,Y,"blur"),ce(O,"blur")},Qe=O=>{const B=O.target.value;st!==B&&(xt(B),ot(!1),z&&z(O,B,"input")),B===""?!f&&!L&&Bt(O,null,"clear"):Yt(O)},to=O=>{const B=Number(O.currentTarget.getAttribute("data-option-index"));yt.current!==B&&qt({event:O,index:B,reason:"mouse"})},tr=O=>{qt({event:O,index:Number(O.currentTarget.getAttribute("data-option-index")),reason:"touch"}),Et.current=!0},er=O=>{const B=Number(O.currentTarget.getAttribute("data-option-index"));Kt(O,J[B],"selectOption"),Et.current=!1},or=O=>B=>{const at=Y.slice();at.splice(O,1),Bt(B,at,"removeOption",{option:Y[O]})},rr=O=>{Vt?ce(O,"toggleInput"):Yt(O)},eo=O=>{O.currentTarget.contains(O.target)&&O.target.getAttribute("id")!==Rt&&O.preventDefault()},Jt=O=>{O.currentTarget.contains(O.target)&&(it.current.focus(),wt&&W.current&&it.current.selectionEnd-it.current.selectionStart===0&&it.current.select(),W.current=!1)},_t=O=>{!m&&(st===""||!Vt)&&rr(O)};let me=x&&st.length>0;me=me||(L?Y.length>0:Y!==null);let Ro=J;return N&&(Ro=J.reduce((O,B,at)=>{const Ct=N(B);return O.length>0&&O[O.length-1].group===Ct?O[O.length-1].options.push(B):O.push({key:at,index:at,group:Ct,options:[B]}),O},[])),m&&ft&&Ae(),{getRootProps:(O={})=>({...O,onKeyDown:te(O),onMouseDown:eo,onClick:Jt}),getInputLabelProps:()=>({id:`${Rt}-label`,htmlFor:Rt}),getInputProps:()=>({id:Rt,value:st,onBlur:Ae,onFocus:Ge,onChange:Qe,onMouseDown:_t,"aria-activedescendant":ut?"":null,"aria-autocomplete":r?"both":"list","aria-controls":Dt?`${Rt}-listbox`:void 0,"aria-expanded":Dt,autoComplete:"off",ref:it,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:m}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:mt}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:rr}),getTagProps:({index:O})=>({key:O,"data-tag-index":O,tabIndex:-1,...!_&&{onDelete:or(O)}}),getListboxProps:()=>({role:"listbox",id:`${Rt}-listbox`,"aria-labelledby":`${Rt}-label`,ref:he,onMouseDown:O=>{O.preventDefault()}}),getOptionProps:({index:O,option:B})=>{const at=(L?Y:[Y]).some(Mt=>Mt!=null&&F(B,Mt)),Ct=C?C(B):!1;return{key:(R==null?void 0:R(B))??lt(B),tabIndex:-1,role:"option",id:`${Rt}-option-${O}`,onMouseMove:to,onClick:er,onTouchStart:tr,"data-option-index":O,"aria-disabled":Ct,"aria-selected":at}},id:Rt,inputValue:st,value:Y,dirty:me,expanded:ut&&bt,popupOpen:ut,focused:ft||nt!==-1,anchorEl:bt,setAnchorEl:$t,focusedTag:nt,groupedOptions:Ro}}function zi(t){return K("MuiListSubheader",t)}const Fm=Z("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]),ji=t=>{const{classes:e,color:o,disableGutters:r,inset:n,disableSticky:s}=t,a={root:["root",o!=="default"&&`color${T(o)}`,!r&&"gutters",n&&"inset",!s&&"sticky"]};return q(a,zi,e)},Di=S("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="default"&&e[`color${T(o.color)}`],!o.disableGutters&&e.gutters,o.inset&&e.inset,!o.disableSticky&&e.sticky]}})(U(({theme:t})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(t.vars||t).palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(t.vars||t).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:72}},{props:({ownerState:e})=>!e.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(t.vars||t).palette.background.paper}}]}))),xr=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListSubheader"}),{className:n,color:s="default",component:a="li",disableGutters:i=!1,disableSticky:l=!1,inset:c=!1,...p}=r,f={...r,color:s,component:a,disableGutters:i,disableSticky:l,inset:c},v=ji(f);return d.jsx(Di,{as:a,className:j(v.root,n),ref:o,ownerState:f,...p})});xr&&(xr.muiSkipListHighlight=!0);function Ei(t){return K("MuiAutocomplete",t)}const kt=Z("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Zr,Jr;const Fi=t=>{const{classes:e,disablePortal:o,expanded:r,focused:n,fullWidth:s,hasClearIcon:a,hasPopupIcon:i,inputFocused:l,popupOpen:c,size:p}=t,f={root:["root",r&&"expanded",n&&"focused",s&&"fullWidth",a&&"hasClearIcon",i&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${T(p)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",o&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return q(f,Ei,e)},Ui=S("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{fullWidth:r,hasClearIcon:n,hasPopupIcon:s,inputFocused:a,size:i}=o;return[{[`& .${kt.tag}`]:e.tag},{[`& .${kt.tag}`]:e[`tagSize${T(i)}`]},{[`& .${kt.inputRoot}`]:e.inputRoot},{[`& .${kt.input}`]:e.input},{[`& .${kt.input}`]:a&&e.inputFocused},e.root,r&&e.fullWidth,s&&e.hasPopupIcon,n&&e.hasClearIcon]}})({[`&.${kt.focused} .${kt.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${kt.clearIndicator}`]:{visibility:"visible"}},[`& .${kt.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${kt.inputRoot}`]:{[`.${kt.hasPopupIcon}&, .${kt.hasClearIcon}&`]:{paddingRight:30},[`.${kt.hasPopupIcon}.${kt.hasClearIcon}&`]:{paddingRight:56},[`& .${kt.input}`]:{width:0,minWidth:30}},[`& .${sr.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${sr.root}.${Le.sizeSmall}`]:{[`& .${sr.input}`]:{padding:"2px 4px 3px 0"}},[`& .${Fr.root}`]:{padding:9,[`.${kt.hasPopupIcon}&, .${kt.hasClearIcon}&`]:{paddingRight:39},[`.${kt.hasPopupIcon}.${kt.hasClearIcon}&`]:{paddingRight:65},[`& .${kt.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${kt.endAdornment}`]:{right:9}},[`& .${Fr.root}.${Le.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${kt.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${_e.root}`]:{paddingTop:19,paddingLeft:8,[`.${kt.hasPopupIcon}&, .${kt.hasClearIcon}&`]:{paddingRight:39},[`.${kt.hasPopupIcon}.${kt.hasClearIcon}&`]:{paddingRight:65},[`& .${_e.input}`]:{padding:"7px 4px"},[`& .${kt.endAdornment}`]:{right:9}},[`& .${_e.root}.${Le.sizeSmall}`]:{paddingBottom:1,[`& .${_e.input}`]:{padding:"2.5px 4px"}},[`& .${Le.hiddenLabel}`]:{paddingTop:8},[`& .${_e.root}.${Le.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${kt.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${_e.root}.${Le.hiddenLabel}.${Le.sizeSmall}`]:{[`& .${kt.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${kt.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${kt.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${kt.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${kt.inputRoot}`]:{flexWrap:"wrap"}}}]}),Wi=S("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(t,e)=>e.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),Hi=S(ze,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(t,e)=>e.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),Vi=S(ze,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popupIndicator,o.popupOpen&&e.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),Gi=S(Ko,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${kt.option}`]:e.option},e.popper,o.disablePortal&&e.popperDisablePortal]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),_i=S(we,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(t,e)=>e.paper})(U(({theme:t})=>({...t.typography.body1,overflow:"auto"}))),qi=S("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(t,e)=>e.loading})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),Xi=S("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(t,e)=>e.noOptions})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),Yi=S("ul",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(t,e)=>e.listbox})(U(({theme:t})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${kt.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[t.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${kt.focused}`]:{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${kt.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${kt.focused}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${kt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}}}))),Ki=S(xr,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(t,e)=>e.groupLabel})(U(({theme:t})=>({backgroundColor:(t.vars||t).palette.background.paper,top:-8}))),Zi=S("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(t,e)=>e.groupUl})({padding:0,[`& .${kt.option}`]:{paddingLeft:24}}),Um=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAutocomplete"}),{autoComplete:n=!1,autoHighlight:s=!1,autoSelect:a=!1,blurOnSelect:i=!1,ChipProps:l,className:c,clearIcon:p=Zr||(Zr=d.jsx(Bn,{fontSize:"small"})),clearOnBlur:f=!r.freeSolo,clearOnEscape:v=!1,clearText:m="Clear",closeText:y="Close",componentsProps:g,defaultValue:h=r.multiple?[]:null,disableClearable:b=!1,disableCloseOnSelect:x=!1,disabled:C=!1,disabledItemsFocusable:R=!1,disableListWrap:P=!1,disablePortal:N=!1,filterOptions:$,filterSelectedOptions:A=!1,forcePopupIcon:k="auto",freeSolo:I=!1,fullWidth:F=!1,getLimitTagsText:L=Nt=>`+${Nt}`,getOptionDisabled:w,getOptionKey:M,getOptionLabel:H,isOptionEqualToValue:z,groupBy:Q,handleHomeEndKeys:D=!r.freeSolo,id:et,includeInputInList:pt=!1,inputValue:_,limitTags:wt=-1,ListboxComponent:Lt,ListboxProps:Rt,loading:lt=!1,loadingText:rt="Loading…",multiple:W=!1,noOptionsText:it="No options",onChange:dt,onClose:bt,onHighlightChange:$t,onInputChange:nt,onOpen:ct,open:vt,openOnFocus:yt=!1,openText:Ot="Open",options:Y,PaperComponent:tt,PopperComponent:st,popupIcon:xt=Jr||(Jr=d.jsx($n,{})),readOnly:ft=!1,renderGroup:Pt,renderInput:It,renderOption:Vt,renderTags:E,selectOnFocus:G=!r.freeSolo,size:ot="medium",slots:gt={},slotProps:ut={},value:J,...ht}=r,{getRootProps:Dt,getInputProps:At,getInputLabelProps:zt,getPopupIndicatorProps:qt,getClearProps:Xt,getTagProps:ye,getListboxProps:ae,getOptionProps:he,value:Yt,dirty:ce,expanded:Bt,id:Et,popupOpen:Kt,focused:pe,focusedTag:Zt,anchorEl:mt,setAnchorEl:te,inputValue:Ge,groupedOptions:Ae}=Oi({...r,componentName:"Autocomplete"}),Qe=!b&&!C&&ce&&!ft,to=(!I||k===!0)&&k!==!1,{onMouseDown:tr}=At(),{ref:er,...or}=ae(),eo=H||(Nt=>Nt.label??Nt),Jt={...r,disablePortal:N,expanded:Bt,focused:pe,fullWidth:F,getOptionLabel:eo,hasClearIcon:Qe,hasPopupIcon:to,inputFocused:Zt===-1,popupOpen:Kt,size:ot},_t=Fi(Jt),me={slots:{paper:tt,popper:st,...gt},slotProps:{chip:l,listbox:Rt,...g,...ut}},[Ro,O]=V("listbox",{elementType:Yi,externalForwardedProps:me,ownerState:Jt,className:_t.listbox,additionalProps:or,ref:er}),[B,at]=V("paper",{elementType:we,externalForwardedProps:me,ownerState:Jt,className:_t.paper}),[Ct,Mt]=V("popper",{elementType:Ko,externalForwardedProps:me,ownerState:Jt,className:_t.popper,additionalProps:{disablePortal:N,style:{width:mt?mt.clientWidth:null},role:"presentation",anchorEl:mt,open:Kt}});let jt;if(W&&Yt.length>0){const Nt=be=>({className:_t.tag,disabled:C,...ye(be)});E?jt=E(Yt,Nt,Jt):jt=Yt.map((be,Re)=>{const{key:oo,...os}=Nt({index:Re});return d.jsx(Ls,{label:eo(be),size:ot,...os,...me.slotProps.chip},oo)})}if(wt>-1&&Array.isArray(jt)){const Nt=jt.length-wt;!pe&&Nt>0&&(jt=jt.splice(0,wt),jt.push(d.jsx("span",{className:_t.tag,children:L(Nt)},jt.length)))}const ie=Pt||(Nt=>d.jsxs("li",{children:[d.jsx(Ki,{className:_t.groupLabel,ownerState:Jt,component:"div",children:Nt.group}),d.jsx(Zi,{className:_t.groupUl,ownerState:Jt,children:Nt.children})]},Nt.key)),es=Vt||((Nt,be)=>{const{key:Re,...oo}=Nt;return d.jsx("li",{...oo,children:eo(be)},Re)}),jr=(Nt,be)=>{const Re=he({option:Nt,index:be});return es({...Re,className:_t.option},Nt,{selected:Re["aria-selected"],index:be,inputValue:Ge},Jt)},$o=me.slotProps.clearIndicator,Po=me.slotProps.popupIndicator;return d.jsxs(u.Fragment,{children:[d.jsx(Ui,{ref:o,className:j(_t.root,c),ownerState:Jt,...Dt(ht),children:It({id:Et,disabled:C,fullWidth:!0,size:ot==="small"?"small":void 0,InputLabelProps:zt(),InputProps:{ref:te,className:_t.inputRoot,startAdornment:jt,onMouseDown:Nt=>{Nt.target===Nt.currentTarget&&tr(Nt)},...(Qe||to)&&{endAdornment:d.jsxs(Wi,{className:_t.endAdornment,ownerState:Jt,children:[Qe?d.jsx(Hi,{...Xt(),"aria-label":m,title:m,ownerState:Jt,...$o,className:j(_t.clearIndicator,$o==null?void 0:$o.className),children:p}):null,to?d.jsx(Vi,{...qt(),disabled:C,"aria-label":Kt?y:Ot,title:Kt?y:Ot,ownerState:Jt,...Po,className:j(_t.popupIndicator,Po==null?void 0:Po.className),children:xt}):null]})}},inputProps:{className:_t.input,disabled:C,readOnly:ft,...At()}})}),mt?d.jsx(Gi,{as:Ct,...Mt,children:d.jsxs(_i,{as:B,...at,children:[lt&&Ae.length===0?d.jsx(qi,{className:_t.loading,ownerState:Jt,children:rt}):null,Ae.length===0&&!I&&!lt?d.jsx(Xi,{className:_t.noOptions,ownerState:Jt,role:"presentation",onMouseDown:Nt=>{Nt.preventDefault()},children:it}):null,Ae.length>0?d.jsx(Ro,{as:Lt,...O,children:Ae.map((Nt,be)=>Q?ie({key:Nt.key,group:Nt.group,children:Nt.options.map((Re,oo)=>jr(Re,Nt.index+oo))}):jr(Nt,be))}):null]})}):null]})}),Ji=Ht(d.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");function Qi(t){return K("MuiAvatar",t)}const tl=Z("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]),el=t=>{const{classes:e,variant:o,colorDefault:r}=t;return q({root:["root",o,r&&"colorDefault"],img:["img"],fallback:["fallback"]},Qi,e)},ol=S("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],o.colorDefault&&e.colorDefault]}})(U(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:{color:(t.vars||t).palette.background.default,...t.vars?{backgroundColor:t.vars.palette.Avatar.defaultBg}:{backgroundColor:t.palette.grey[400],...t.applyStyles("dark",{backgroundColor:t.palette.grey[600]})}}}]}))),rl=S("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(t,e)=>e.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),nl=S(Ji,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(t,e)=>e.fallback})({width:"75%",height:"75%"});function sl({crossOrigin:t,referrerPolicy:e,src:o,srcSet:r}){const[n,s]=u.useState(!1);return u.useEffect(()=>{if(!o&&!r)return;s(!1);let a=!0;const i=new Image;return i.onload=()=>{a&&s("loaded")},i.onerror=()=>{a&&s("error")},i.crossOrigin=t,i.referrerPolicy=e,i.src=o,r&&(i.srcset=r),()=>{a=!1}},[t,e,o,r]),n}const al=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAvatar"}),{alt:n,children:s,className:a,component:i="div",slots:l={},slotProps:c={},imgProps:p,sizes:f,src:v,srcSet:m,variant:y="circular",...g}=r;let h=null;const b={...r,component:i,variant:y},x=sl({...p,...typeof c.img=="function"?c.img(b):c.img,src:v,srcSet:m}),C=v||m,R=C&&x!=="error";b.colorDefault=!R,delete b.ownerState;const P=el(b),[N,$]=V("img",{className:P.img,elementType:rl,externalForwardedProps:{slots:l,slotProps:{img:{...p,...c.img}}},additionalProps:{alt:n,src:v,srcSet:m,sizes:f},ownerState:b});return R?h=d.jsx(N,{...$}):s||s===0?h=s:C&&n?h=n[0]:h=d.jsx(nl,{ownerState:b,className:P.fallback}),d.jsx(ol,{as:i,className:j(P.root,a),ref:o,...g,ownerState:b,children:h})});function il(t){return K("MuiAvatarGroup",t)}const ll=Z("MuiAvatarGroup",["root","avatar"]),ir={small:-16,medium:-8},cl=t=>{const{classes:e}=t;return q({root:["root"],avatar:["avatar"]},il,e)},pl=S("div",{name:"MuiAvatarGroup",slot:"Root",overridesResolver:(t,e)=>[{[`& .${ll.avatar}`]:e.avatar},e.root]})(U(({theme:t})=>({display:"flex",flexDirection:"row-reverse",[`& .${tl.root}`]:{border:`2px solid ${(t.vars||t).palette.background.default}`,boxSizing:"content-box",marginLeft:"var(--AvatarGroup-spacing, -8px)","&:last-child":{marginLeft:0}}}))),Wm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAvatarGroup"}),{children:n,className:s,component:a="div",componentsProps:i,max:l=5,renderSurplus:c,slotProps:p={},slots:f={},spacing:v="medium",total:m,variant:y="circular",...g}=r;let h=l<2?2:l;const b={...r,max:l,spacing:v,component:a,variant:y},x=cl(b),C=u.Children.toArray(n).filter(L=>u.isValidElement(L)),R=m||C.length;R===h&&(h+=1),h=Math.min(R+1,h);const P=Math.min(C.length,h-1),N=Math.max(R-h,R-P,0),$=c?c(N):`+${N}`;let A;b.spacing&&ir[b.spacing]!==void 0?A=ir[b.spacing]:b.spacing===0?A=0:A=-b.spacing||ir.medium;const k={slots:f,slotProps:{surplus:p.additionalAvatar??(i==null?void 0:i.additionalAvatar),...i,...p}},[I,F]=V("surplus",{elementType:al,externalForwardedProps:k,className:x.avatar,ownerState:b,additionalProps:{variant:y}});return d.jsxs(pl,{as:a,ownerState:b,className:j(x.root,s),ref:o,...g,style:{"--AvatarGroup-spacing":`${A}px`,...g.style},children:[N?d.jsx(I,{...F,children:$}):null,C.slice(0,P).reverse().map(L=>u.cloneElement(L,{className:j(L.props.className,x.avatar),variant:L.props.variant||y}))]})});function dl(t){const{badgeContent:e,invisible:o=!1,max:r=99,showZero:n=!1}=t,s=Nr({badgeContent:e,max:r});let a=o;o===!1&&e===0&&!n&&(a=!0);const{badgeContent:i,max:l=r}=a?s:t,c=i&&Number(i)>l?`${l}+`:i;return{badgeContent:i,invisible:a,max:l,displayValue:c}}function ul(t){return K("MuiBadge",t)}const $e=Z("MuiBadge",["root","badge","dot","standard","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","invisible","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"]),lr=10,cr=4,fl=t=>{const{color:e,anchorOrigin:o,invisible:r,overlap:n,variant:s,classes:a={}}=t,i={root:["root"],badge:["badge",s,r&&"invisible",`anchorOrigin${T(o.vertical)}${T(o.horizontal)}`,`anchorOrigin${T(o.vertical)}${T(o.horizontal)}${T(n)}`,`overlap${T(n)}`,e!=="default"&&`color${T(e)}`]};return q(i,ul,a)},gl=S("span",{name:"MuiBadge",slot:"Root",overridesResolver:(t,e)=>e.root})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),ml=S("span",{name:"MuiBadge",slot:"Badge",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.badge,e[o.variant],e[`anchorOrigin${T(o.anchorOrigin.vertical)}${T(o.anchorOrigin.horizontal)}${T(o.overlap)}`],o.color!=="default"&&e[`color${T(o.color)}`],o.invisible&&e.invisible]}})(U(({theme:t})=>({display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(12),minWidth:lr*2,lineHeight:1,padding:"0 6px",height:lr*2,borderRadius:lr,zIndex:1,transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.enteringScreen}),variants:[...Object.entries(t.palette).filter(Ft(["contrastText"])).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main,color:(t.vars||t).palette[e].contrastText}})),{props:{variant:"dot"},style:{borderRadius:cr,height:cr*2,minWidth:cr*2,padding:0}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:{invisible:!0},style:{transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.leavingScreen})}}]})));function Qr(t){return{vertical:(t==null?void 0:t.vertical)??"top",horizontal:(t==null?void 0:t.horizontal)??"right"}}const Hm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiBadge"}),{anchorOrigin:n,className:s,classes:a,component:i,components:l={},componentsProps:c={},children:p,overlap:f="rectangular",color:v="default",invisible:m=!1,max:y=99,badgeContent:g,slots:h,slotProps:b,showZero:x=!1,variant:C="standard",...R}=r,{badgeContent:P,invisible:N,max:$,displayValue:A}=dl({max:y,invisible:m,badgeContent:g,showZero:x}),k=Nr({anchorOrigin:Qr(n),color:v,overlap:f,variant:C,badgeContent:g}),I=N||P==null&&C!=="dot",{color:F=v,overlap:L=f,anchorOrigin:w,variant:M=C}=I?k:r,H=Qr(w),z=M!=="dot"?A:void 0,Q={...r,badgeContent:P,invisible:I,max:$,displayValue:z,showZero:x,anchorOrigin:H,color:F,overlap:L,variant:M},D=fl(Q),et={slots:{root:(h==null?void 0:h.root)??l.Root,badge:(h==null?void 0:h.badge)??l.Badge},slotProps:{root:(b==null?void 0:b.root)??c.root,badge:(b==null?void 0:b.badge)??c.badge}},[pt,_]=V("root",{elementType:gl,externalForwardedProps:{...et,...R},ownerState:Q,className:j(D.root,s),ref:o,additionalProps:{as:i}}),[wt,Lt]=V("badge",{elementType:ml,externalForwardedProps:et,ownerState:Q,className:D.badge});return d.jsxs(pt,{..._,children:[p,d.jsx(wt,{...Lt,children:z})]})});function bl(t){return K("MuiBottomNavigation",t)}const Vm=Z("MuiBottomNavigation",["root"]),vl=t=>{const{classes:e}=t;return q({root:["root"]},bl,e)},yl=S("div",{name:"MuiBottomNavigation",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({display:"flex",justifyContent:"center",height:56,backgroundColor:(t.vars||t).palette.background.paper}))),Gm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiBottomNavigation"}),{children:n,className:s,component:a="div",onChange:i,showLabels:l=!1,value:c,...p}=r,f={...r,component:a,showLabels:l},v=vl(f);return d.jsx(yl,{as:a,className:j(v.root,s),ref:o,ownerState:f,...p,children:u.Children.map(n,(m,y)=>{if(!u.isValidElement(m))return null;const g=m.props.value===void 0?y:m.props.value;return u.cloneElement(m,{selected:g===c,showLabel:m.props.showLabel!==void 0?m.props.showLabel:l,value:g,onChange:i})})})});function hl(t){return K("MuiBottomNavigationAction",t)}const Nn=Z("MuiBottomNavigationAction",["root","iconOnly","selected","label"]),xl=t=>{const{classes:e,showLabel:o,selected:r}=t;return q({root:["root",!o&&!r&&"iconOnly",r&&"selected"],label:["label",!o&&!r&&"iconOnly",r&&"selected"]},hl,e)},Cl=S(fe,{name:"MuiBottomNavigationAction",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.showLabel&&!o.selected&&e.iconOnly]}})(U(({theme:t})=>({transition:t.transitions.create(["color","padding-top"],{duration:t.transitions.duration.short}),padding:"0px 12px",minWidth:80,maxWidth:168,color:(t.vars||t).palette.text.secondary,flexDirection:"column",flex:"1",[`&.${Nn.selected}`]:{color:(t.vars||t).palette.primary.main},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{paddingTop:14}},{props:({showLabel:e,selected:o,label:r})=>!e&&!o&&!r,style:{paddingTop:0}}]}))),Sl=S("span",{name:"MuiBottomNavigationAction",slot:"Label",overridesResolver:(t,e)=>e.label})(U(({theme:t})=>({fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(12),opacity:1,transition:"font-size 0.2s, opacity 0.2s",transitionDelay:"0.1s",[`&.${Nn.selected}`]:{fontSize:t.typography.pxToRem(14)},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{opacity:0,transitionDelay:"0s"}}]}))),_m=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiBottomNavigationAction"}),{className:n,icon:s,label:a,onChange:i,onClick:l,selected:c,showLabel:p,value:f,slots:v={},slotProps:m={},...y}=r,g=r,h=xl(g),b=$=>{i&&i($,f),l&&l($)},x={slots:v,slotProps:m},[C,R]=V("root",{elementType:Cl,externalForwardedProps:{...x,...y},shouldForwardComponentProp:!0,ownerState:g,ref:o,className:j(h.root,n),additionalProps:{focusRipple:!0},getSlotProps:$=>({...$,onClick:A=>{var k;(k=$.onClick)==null||k.call($,A),b(A)}})}),[P,N]=V("label",{elementType:Sl,externalForwardedProps:x,ownerState:g,className:h.label});return d.jsxs(C,{...R,children:[s,d.jsx(P,{...N,children:a})]})}),wl=Z("MuiBox",["root"]),Rl=wn(),qm=ea({themeId:Cs,defaultTheme:Rl,defaultClassName:wl.root,generateClassName:Rn.generate}),$l=Ht(d.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz"),Pl=S(fe)(U(({theme:t})=>({display:"flex",marginLeft:`calc(${t.spacing(1)} * 0.5)`,marginRight:`calc(${t.spacing(1)} * 0.5)`,...t.palette.mode==="light"?{backgroundColor:t.palette.grey[100],color:t.palette.grey[700]}:{backgroundColor:t.palette.grey[700],color:t.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...t.palette.mode==="light"?{backgroundColor:t.palette.grey[200]}:{backgroundColor:t.palette.grey[600]}},"&:active":{boxShadow:t.shadows[0],...t.palette.mode==="light"?{backgroundColor:Ho(t.palette.grey[200],.12)}:{backgroundColor:Ho(t.palette.grey[600],.12)}}}))),kl=S($l)({width:24,height:16});function Tl(t){const{slots:e={},slotProps:o={},...r}=t,n=t;return d.jsx("li",{children:d.jsx(Pl,{focusRipple:!0,...r,ownerState:n,children:d.jsx(kl,{as:e.CollapsedIcon,ownerState:n,...o.collapsedIcon})})})}function Il(t){return K("MuiBreadcrumbs",t)}const Ml=Z("MuiBreadcrumbs",["root","ol","li","separator"]),Al=t=>{const{classes:e}=t;return q({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},Il,e)},Ll=S(re,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(t,e)=>[{[`& .${Ml.li}`]:e.li},e.root]})({}),Bl=S("ol",{name:"MuiBreadcrumbs",slot:"Ol",overridesResolver:(t,e)=>e.ol})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),Nl=S("li",{name:"MuiBreadcrumbs",slot:"Separator",overridesResolver:(t,e)=>e.separator})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function Ol(t,e,o,r){return t.reduce((n,s,a)=>(a{const A=()=>{h(!0);const k=R.current.querySelector("a[href],button,[tabindex]");k&&k.focus()};return f+p>=$.length?$:[...$.slice(0,f),d.jsx(Tl,{"aria-label":c,slots:{CollapsedIcon:i.CollapsedIcon},slotProps:{collapsedIcon:C},onClick:A},"ellipsis"),...$.slice($.length-p,$.length)]},N=u.Children.toArray(n).filter($=>u.isValidElement($)).map(($,A)=>d.jsx("li",{className:x.li,children:$},`child-${A}`));return d.jsx(Ll,{ref:o,component:a,color:"textSecondary",className:j(x.root,s),ownerState:b,...y,children:d.jsx(Bl,{className:x.ol,ref:R,ownerState:b,children:Ol(g||v&&N.length<=v?N:P(N),x.separator,m,b)})})});function zl(t){return K("MuiButtonGroup",t)}const St=Z("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","horizontal","vertical","colorPrimary","colorSecondary","grouped","groupedHorizontal","groupedVertical","groupedText","groupedTextHorizontal","groupedTextVertical","groupedTextPrimary","groupedTextSecondary","groupedOutlined","groupedOutlinedHorizontal","groupedOutlinedVertical","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedContained","groupedContainedHorizontal","groupedContainedVertical","groupedContainedPrimary","groupedContainedSecondary","lastButton","middleButton"]),jl=(t,e)=>{const{ownerState:o}=t;return[{[`& .${St.grouped}`]:e.grouped},{[`& .${St.grouped}`]:e[`grouped${T(o.orientation)}`]},{[`& .${St.grouped}`]:e[`grouped${T(o.variant)}`]},{[`& .${St.grouped}`]:e[`grouped${T(o.variant)}${T(o.orientation)}`]},{[`& .${St.grouped}`]:e[`grouped${T(o.variant)}${T(o.color)}`]},{[`& .${St.firstButton}`]:e.firstButton},{[`& .${St.lastButton}`]:e.lastButton},{[`& .${St.middleButton}`]:e.middleButton},e.root,e[o.variant],o.disableElevation===!0&&e.disableElevation,o.fullWidth&&e.fullWidth,o.orientation==="vertical"&&e.vertical]},Dl=t=>{const{classes:e,color:o,disabled:r,disableElevation:n,fullWidth:s,orientation:a,variant:i}=t,l={root:["root",i,a,s&&"fullWidth",n&&"disableElevation",`color${T(o)}`],grouped:["grouped",`grouped${T(a)}`,`grouped${T(i)}`,`grouped${T(i)}${T(a)}`,`grouped${T(i)}${T(o)}`,r&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return q(l,zl,e)},El=S("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:jl})(U(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{variant:"contained"},style:{boxShadow:(t.vars||t).shadows[2]}},{props:{disableElevation:!0},style:{boxShadow:"none"}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${St.lastButton},& .${St.middleButton}`]:{borderTopRightRadius:0,borderTopLeftRadius:0},[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottomRightRadius:0,borderBottomLeftRadius:0}}},{props:{orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${St.lastButton},& .${St.middleButton}`]:{borderTopLeftRadius:0,borderBottomLeftRadius:0}}},{props:{variant:"text",orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderRight:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${St.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"text",orientation:"vertical"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottom:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${St.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(Ft()).flatMap(([e])=>[{props:{variant:"text",color:e},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:Tt(t.palette[e].main,.5)}}}]),{props:{variant:"outlined",orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderRightColor:"transparent","&:hover":{borderRightColor:"currentColor"}},[`& .${St.lastButton},& .${St.middleButton}`]:{marginLeft:-1}}},{props:{variant:"outlined",orientation:"vertical"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottomColor:"transparent","&:hover":{borderBottomColor:"currentColor"}},[`& .${St.lastButton},& .${St.middleButton}`]:{marginTop:-1}}},{props:{variant:"contained",orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderRight:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${St.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"contained",orientation:"vertical"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottom:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${St.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(Ft(["dark"])).map(([e])=>({props:{variant:"contained",color:e},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderColor:(t.vars||t).palette[e].dark}}}))],[`& .${St.grouped}`]:{minWidth:40,boxShadow:"none",props:{variant:"contained"},style:{"&:hover":{boxShadow:"none"}}}}))),Ym=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiButtonGroup"}),{children:n,className:s,color:a="primary",component:i="div",disabled:l=!1,disableElevation:c=!1,disableFocusRipple:p=!1,disableRipple:f=!1,fullWidth:v=!1,orientation:m="horizontal",size:y="medium",variant:g="outlined",...h}=r,b={...r,color:a,component:i,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:f,fullWidth:v,orientation:m,size:y,variant:g},x=Dl(b),C=u.useMemo(()=>({className:x.grouped,color:a,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:f,fullWidth:v,size:y,variant:g}),[a,l,c,p,f,v,y,g,x.grouped]),R=An(n),P=R.length,N=$=>{const A=$===0,k=$===P-1;return A&&k?"":A?x.firstButton:k?x.lastButton:x.middleButton};return d.jsx(El,{as:i,role:"group",className:j(x.root,s),ref:o,ownerState:b,...h,children:d.jsx(Bs.Provider,{value:C,children:R.map(($,A)=>d.jsx(Ns.Provider,{value:N(A),children:$},A))})})});function Fl(t){return K("MuiCard",t)}const Km=Z("MuiCard",["root"]),Ul=t=>{const{classes:e}=t;return q({root:["root"]},Fl,e)},Wl=S(we,{name:"MuiCard",slot:"Root",overridesResolver:(t,e)=>e.root})({overflow:"hidden"}),Zm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCard"}),{className:n,raised:s=!1,...a}=r,i={...r,raised:s},l=Ul(i);return d.jsx(Wl,{className:j(l.root,n),elevation:s?8:void 0,ref:o,ownerState:i,...a})});function Hl(t){return K("MuiCardActionArea",t)}const pr=Z("MuiCardActionArea",["root","focusVisible","focusHighlight"]),Vl=t=>{const{classes:e}=t;return q({root:["root"],focusHighlight:["focusHighlight"]},Hl,e)},Gl=S(fe,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${pr.focusHighlight}`]:{opacity:(t.vars||t).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${pr.focusVisible} .${pr.focusHighlight}`]:{opacity:(t.vars||t).palette.action.focusOpacity}}))),_l=S("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(t,e)=>e.focusHighlight})(U(({theme:t})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:t.transitions.create("opacity",{duration:t.transitions.duration.short})}))),Jm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardActionArea"}),{children:n,className:s,focusVisibleClassName:a,slots:i={},slotProps:l={},...c}=r,p=r,f=Vl(p),v={slots:i,slotProps:l},[m,y]=V("root",{elementType:Gl,externalForwardedProps:{...v,...c},shouldForwardComponentProp:!0,ownerState:p,ref:o,className:j(f.root,s),additionalProps:{focusVisibleClassName:j(a,f.focusVisible)}}),[g,h]=V("focusHighlight",{elementType:_l,externalForwardedProps:v,ownerState:p,ref:o,className:f.focusHighlight});return d.jsxs(m,{...y,children:[n,d.jsx(g,{...h})]})});function ql(t){return K("MuiCardActions",t)}const Qm=Z("MuiCardActions",["root","spacing"]),Xl=t=>{const{classes:e,disableSpacing:o}=t;return q({root:["root",!o&&"spacing"]},ql,e)},Yl=S("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),tb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardActions"}),{disableSpacing:n=!1,className:s,...a}=r,i={...r,disableSpacing:n},l=Xl(i);return d.jsx(Yl,{className:j(l.root,s),ownerState:i,ref:o,...a})});function Kl(t){return K("MuiCardContent",t)}const eb=Z("MuiCardContent",["root"]),Zl=t=>{const{classes:e}=t;return q({root:["root"]},Kl,e)},Jl=S("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:16,"&:last-child":{paddingBottom:24}}),ob=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardContent"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=Zl(i);return d.jsx(Jl,{as:s,className:j(l.root,n),ownerState:i,ref:o,...a})});function Ql(t){return K("MuiCardHeader",t)}const _o=Z("MuiCardHeader",["root","avatar","action","content","title","subheader"]),tc=t=>{const{classes:e}=t;return q({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},Ql,e)},ec=S("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(t,e)=>[{[`& .${_o.title}`]:e.title},{[`& .${_o.subheader}`]:e.subheader},e.root]})({display:"flex",alignItems:"center",padding:16}),oc=S("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(t,e)=>e.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),rc=S("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(t,e)=>e.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),nc=S("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(t,e)=>e.content})({flex:"1 1 auto",[`.${Vo.root}:where(& .${_o.title})`]:{display:"block"},[`.${Vo.root}:where(& .${_o.subheader})`]:{display:"block"}}),rb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardHeader"}),{action:n,avatar:s,component:a="div",disableTypography:i=!1,subheader:l,subheaderTypographyProps:c,title:p,titleTypographyProps:f,slots:v={},slotProps:m={},...y}=r,g={...r,component:a,disableTypography:i},h=tc(g),b={slots:v,slotProps:{title:f,subheader:c,...m}};let x=p;const[C,R]=V("title",{className:h.title,elementType:re,externalForwardedProps:b,ownerState:g,additionalProps:{variant:s?"body2":"h5",component:"span"}});x!=null&&x.type!==re&&!i&&(x=d.jsx(C,{...R,children:x}));let P=l;const[N,$]=V("subheader",{className:h.subheader,elementType:re,externalForwardedProps:b,ownerState:g,additionalProps:{variant:s?"body2":"body1",color:"textSecondary",component:"span"}});P!=null&&P.type!==re&&!i&&(P=d.jsx(N,{...$,children:P}));const[A,k]=V("root",{ref:o,className:h.root,elementType:ec,externalForwardedProps:{...b,...y,component:a},ownerState:g}),[I,F]=V("avatar",{className:h.avatar,elementType:oc,externalForwardedProps:b,ownerState:g}),[L,w]=V("content",{className:h.content,elementType:nc,externalForwardedProps:b,ownerState:g}),[M,H]=V("action",{className:h.action,elementType:rc,externalForwardedProps:b,ownerState:g});return d.jsxs(A,{...k,children:[s&&d.jsx(I,{...F,children:s}),d.jsxs(L,{...w,children:[x,P]}),n&&d.jsx(M,{...H,children:n})]})});function sc(t){return K("MuiCardMedia",t)}const nb=Z("MuiCardMedia",["root","media","img"]),ac=t=>{const{classes:e,isMediaComponent:o,isImageComponent:r}=t;return q({root:["root",o&&"media",r&&"img"]},sc,e)},ic=S("div",{name:"MuiCardMedia",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{isMediaComponent:r,isImageComponent:n}=o;return[e.root,r&&e.media,n&&e.img]}})({display:"block",backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center",variants:[{props:{isMediaComponent:!0},style:{width:"100%"}},{props:{isImageComponent:!0},style:{objectFit:"cover"}}]}),lc=["video","audio","picture","iframe","img"],cc=["picture","img"],sb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardMedia"}),{children:n,className:s,component:a="div",image:i,src:l,style:c,...p}=r,f=lc.includes(a),v=!f&&i?{backgroundImage:`url("${i}")`,...c}:c,m={...r,component:a,isMediaComponent:f,isImageComponent:cc.includes(a)},y=ac(m);return d.jsx(ic,{className:j(y.root,s),as:a,role:!f&&i?"img":void 0,ref:o,style:v,ownerState:m,src:f?i||l:void 0,...p,children:n})});function pc(t){return K("PrivateSwitchBase",t)}Z("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const dc=t=>{const{classes:e,checked:o,disabled:r,edge:n}=t,s={root:["root",o&&"checked",r&&"disabled",n&&`edge${T(n)}`],input:["input"]};return q(s,pc,e)},uc=S(fe)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:t,ownerState:e})=>t==="start"&&e.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:t,ownerState:e})=>t==="end"&&e.size!=="small",style:{marginRight:-12}}]}),fc=S("input",{shouldForwardProp:Se})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Or=u.forwardRef(function(e,o){const{autoFocus:r,checked:n,checkedIcon:s,defaultChecked:a,disabled:i,disableFocusRipple:l=!1,edge:c=!1,icon:p,id:f,inputProps:v,inputRef:m,name:y,onBlur:g,onChange:h,onFocus:b,readOnly:x,required:C=!1,tabIndex:R,type:P,value:N,slots:$={},slotProps:A={},...k}=e,[I,F]=ue({controlled:n,default:!!a,name:"SwitchBase",state:"checked"}),L=Co(),w=lt=>{b&&b(lt),L&&L.onFocus&&L.onFocus(lt)},M=lt=>{g&&g(lt),L&&L.onBlur&&L.onBlur(lt)},H=lt=>{if(lt.nativeEvent.defaultPrevented)return;const rt=lt.target.checked;F(rt),h&&h(lt,rt)};let z=i;L&&typeof z>"u"&&(z=L.disabled);const Q=P==="checkbox"||P==="radio",D={...e,checked:I,disabled:z,disableFocusRipple:l,edge:c},et=dc(D),pt={slots:$,slotProps:{input:v,...A}},[_,wt]=V("root",{ref:o,elementType:uc,className:et.root,shouldForwardComponentProp:!0,externalForwardedProps:{...pt,component:"span",...k},getSlotProps:lt=>({...lt,onFocus:rt=>{var W;(W=lt.onFocus)==null||W.call(lt,rt),w(rt)},onBlur:rt=>{var W;(W=lt.onBlur)==null||W.call(lt,rt),M(rt)}}),ownerState:D,additionalProps:{centerRipple:!0,focusRipple:!l,disabled:z,role:void 0,tabIndex:null}}),[Lt,Rt]=V("input",{ref:m,elementType:fc,className:et.input,externalForwardedProps:pt,getSlotProps:lt=>({onChange:rt=>{var W;(W=lt.onChange)==null||W.call(lt,rt),H(rt)}}),ownerState:D,additionalProps:{autoFocus:r,checked:n,defaultChecked:a,disabled:z,id:Q?f:void 0,name:y,readOnly:x,required:C,tabIndex:R,type:P,...P==="checkbox"&&N===void 0?{}:{value:N}}});return d.jsxs(_,{...wt,children:[d.jsx(Lt,{...Rt}),I?s:p]})}),gc=Ht(d.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),mc=Ht(d.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),bc=Ht(d.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function vc(t){return K("MuiCheckbox",t)}const dr=Z("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),yc=t=>{const{classes:e,indeterminate:o,color:r,size:n}=t,s={root:["root",o&&"indeterminate",`color${T(r)}`,`size${T(n)}`]},a=q(s,vc,e);return{...e,...a}},hc=S(Or,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.indeterminate&&e.indeterminate,e[`size${T(o.size)}`],o.color!=="default"&&e[`color${T(o.color)}`]]}})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{[`&.${dr.checked}, &.${dr.indeterminate}`]:{color:(t.vars||t).palette[e].main},[`&.${dr.disabled}`]:{color:(t.vars||t).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),xc=d.jsx(mc,{}),Cc=d.jsx(gc,{}),Sc=d.jsx(bc,{}),ab=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCheckbox"}),{checkedIcon:n=xc,color:s="primary",icon:a=Cc,indeterminate:i=!1,indeterminateIcon:l=Sc,inputProps:c,size:p="medium",disableRipple:f=!1,className:v,slots:m={},slotProps:y={},...g}=r,h=i?l:a,b=i?l:n,x={...r,disableRipple:f,color:s,indeterminate:i,size:p},C=yc(x),R=y.input??c,[P,N]=V("root",{ref:o,elementType:hc,className:j(C.root,v),shouldForwardComponentProp:!0,externalForwardedProps:{slots:m,slotProps:y,...g},ownerState:x,additionalProps:{type:"checkbox",icon:u.cloneElement(h,{fontSize:h.props.fontSize??p}),checkedIcon:u.cloneElement(b,{fontSize:b.props.fontSize??p}),disableRipple:f,slots:m,slotProps:{input:vo(typeof R=="function"?R(x):R,{"data-indeterminate":i})}}});return d.jsx(P,{...N,classes:C})});function tn(t){return t.substring(2).toLowerCase()}function wc(t,e){return e.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const p=ge(Zo(e),i),f=ne(y=>{const g=c.current;c.current=!1;const h=de(i.current);if(!l.current||!i.current||"clientX"in y&&wc(y,h))return;if(a.current){a.current=!1;return}let b;y.composedPath?b=y.composedPath().includes(i.current):b=!h.documentElement.contains(y.target)||i.current.contains(y.target),!b&&(o||!g)&&n(y)}),v=y=>g=>{c.current=!0;const h=e.props[y];h&&h(g)},m={ref:p};return s!==!1&&(m[s]=v(s)),u.useEffect(()=>{if(s!==!1){const y=tn(s),g=de(i.current),h=()=>{a.current=!0};return g.addEventListener(y,f),g.addEventListener("touchmove",h),()=>{g.removeEventListener(y,f),g.removeEventListener("touchmove",h)}}},[f,s]),r!==!1&&(m[r]=v(r)),u.useEffect(()=>{if(r!==!1){const y=tn(r),g=de(i.current);return g.addEventListener(y,f),()=>{g.removeEventListener(y,f)}}},[f,r]),u.cloneElement(e,m)}const ib=aa({createStyledComponent:S("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${T(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),useThemeProps:t=>X({props:t,name:"MuiContainer"})});function lb(t){return K("MuiContainer",t)}const cb=Z("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"]),Cr=typeof In({})=="function",On=(t,e)=>({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%",...e&&!t.vars&&{colorScheme:t.palette.mode}}),zn=t=>({color:(t.vars||t).palette.text.primary,...t.typography.body1,backgroundColor:(t.vars||t).palette.background.default,"@media print":{backgroundColor:(t.vars||t).palette.common.white}}),jn=(t,e=!1)=>{var s,a;const o={};e&&t.colorSchemes&&typeof t.getColorSchemeSelector=="function"&&Object.entries(t.colorSchemes).forEach(([i,l])=>{var p,f;const c=t.getColorSchemeSelector(i);c.startsWith("@")?o[c]={":root":{colorScheme:(p=l.palette)==null?void 0:p.mode}}:o[c.replace(/\s*&/,"")]={colorScheme:(f=l.palette)==null?void 0:f.mode}});let r={html:On(t,e),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:t.typography.fontWeightBold},body:{margin:0,...zn(t),"&::backdrop":{backgroundColor:(t.vars||t).palette.background.default}},...o};const n=(a=(s=t.components)==null?void 0:s.MuiCssBaseline)==null?void 0:a.styleOverrides;return n&&(r=[r,n]),r},Wo="mui-ecs",$c=t=>{const e=jn(t,!1),o=Array.isArray(e)?e[0]:e;return!t.vars&&o&&(o.html[`:root:has(${Wo})`]={colorScheme:t.palette.mode}),t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([r,n])=>{var a,i;const s=t.getColorSchemeSelector(r);s.startsWith("@")?o[s]={[`:root:not(:has(.${Wo}))`]:{colorScheme:(a=n.palette)==null?void 0:a.mode}}:o[s.replace(/\s*&/,"")]={[`&:not(:has(.${Wo}))`]:{colorScheme:(i=n.palette)==null?void 0:i.mode}}}),e},Pc=In(Cr?({theme:t,enableColorScheme:e})=>jn(t,e):({theme:t})=>$c(t));function pb(t){const e=X({props:t,name:"MuiCssBaseline"}),{children:o,enableColorScheme:r=!1}=e;return d.jsxs(u.Fragment,{children:[Cr&&d.jsx(Pc,{enableColorScheme:r}),!Cr&&!r&&d.jsx("span",{className:Wo,style:{display:"none"}}),o]})}const kc={track:"#2b2b2b",thumb:"#6b6b6b",active:"#959595"};function db(t=kc){return{scrollbarColor:`${t.thumb} ${t.track}`,"&::-webkit-scrollbar, & *::-webkit-scrollbar":{backgroundColor:t.track},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{borderRadius:8,backgroundColor:t.thumb,minHeight:24,border:`3px solid ${t.track}`},"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:t.active},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:t.track}}}function Tc(t){return K("MuiDialogContentText",t)}const ub=Z("MuiDialogContentText",["root"]),Ic=t=>{const{classes:e}=t,r=q({root:["root"]},Tc,e);return{...e,...r}},Mc=S(re,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiDialogContentText",slot:"Root",overridesResolver:(t,e)=>e.root})({}),fb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiDialogContentText"}),{children:n,className:s,...a}=r,i=Ic(a);return d.jsx(Mc,{component:"p",variant:"body1",color:"textSecondary",ref:o,ownerState:a,className:j(i.root,s),...r,classes:i})}),Ac=t=>{const{classes:e}=t;return q({root:["root"]},zs,e)},Lc=S(re,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:"16px 24px",flex:"0 0 auto"}),gb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiDialogTitle"}),{className:n,id:s,...a}=r,i=r,l=Ac(i),{titleId:c=s}=u.useContext(Os);return d.jsx(Lc,{component:"h2",className:j(l.root,n),ownerState:i,ref:o,variant:"h6",id:s??c,...a})});function Bc(t,e,o){const r=e.getBoundingClientRect(),n=o&&o.getBoundingClientRect(),s=Ye(e);let a;if(e.fakeTransform)a=e.fakeTransform;else{const c=s.getComputedStyle(e);a=c.getPropertyValue("-webkit-transform")||c.getPropertyValue("transform")}let i=0,l=0;if(a&&a!=="none"&&typeof a=="string"){const c=a.split("(")[1].split(")")[0].split(",");i=parseInt(c[4],10),l=parseInt(c[5],10)}return t==="left"?n?`translateX(${n.right+i-r.left}px)`:`translateX(${s.innerWidth+i-r.left}px)`:t==="right"?n?`translateX(-${r.right-n.left-i}px)`:`translateX(-${r.left+r.width-i}px)`:t==="up"?n?`translateY(${n.bottom+l-r.top}px)`:`translateY(${s.innerHeight+l-r.top}px)`:n?`translateY(-${r.top-n.top+r.height-l}px)`:`translateY(-${r.top+r.height-l}px)`}function Nc(t){return typeof t=="function"?t():t}function Mo(t,e,o){const r=Nc(o),n=Bc(t,e,r);n&&(e.style.webkitTransform=n,e.style.transform=n)}const Oc=u.forwardRef(function(e,o){const r=se(),n={enter:r.transitions.easing.easeOut,exit:r.transitions.easing.sharp},s={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:a,appear:i=!0,children:l,container:c,direction:p="down",easing:f=n,in:v,onEnter:m,onEntered:y,onEntering:g,onExit:h,onExited:b,onExiting:x,style:C,timeout:R=s,TransitionComponent:P=Ir,...N}=e,$=u.useRef(null),A=ge(Zo(l),$,o),k=D=>et=>{D&&(et===void 0?D($.current):D($.current,et))},I=k((D,et)=>{Mo(p,D,c),Pn(D),m&&m(D,et)}),F=k((D,et)=>{const pt=Ue({timeout:R,style:C,easing:f},{mode:"enter"});D.style.webkitTransition=r.transitions.create("-webkit-transform",{...pt}),D.style.transition=r.transitions.create("transform",{...pt}),D.style.webkitTransform="none",D.style.transform="none",g&&g(D,et)}),L=k(y),w=k(x),M=k(D=>{const et=Ue({timeout:R,style:C,easing:f},{mode:"exit"});D.style.webkitTransition=r.transitions.create("-webkit-transform",et),D.style.transition=r.transitions.create("transform",et),Mo(p,D,c),h&&h(D)}),H=k(D=>{D.style.webkitTransition="",D.style.transition="",b&&b(D)}),z=D=>{a&&a($.current,D)},Q=u.useCallback(()=>{$.current&&Mo(p,$.current,c)},[p,c]);return u.useEffect(()=>{if(v||p==="down"||p==="right")return;const D=Ys(()=>{$.current&&Mo(p,$.current,c)}),et=Ye($.current);return et.addEventListener("resize",D),()=>{D.clear(),et.removeEventListener("resize",D)}},[p,v,c]),u.useEffect(()=>{v||Q()},[v,Q]),d.jsx(P,{nodeRef:$,onEnter:I,onEntered:L,onEntering:F,onExit:M,onExited:H,onExiting:w,addEndListener:z,appear:i,in:v,timeout:R,...N,children:(D,{ownerState:et,...pt})=>u.cloneElement(l,{ref:A,style:{visibility:D==="exited"&&!v?"hidden":void 0,...C,...l.props.style},...pt})})});function zc(t){return K("MuiDrawer",t)}const mb=Z("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]),Dn=(t,e)=>{const{ownerState:o}=t;return[e.root,(o.variant==="permanent"||o.variant==="persistent")&&e.docked,e.modal]},jc=t=>{const{classes:e,anchor:o,variant:r}=t,n={root:["root",`anchor${T(o)}`],docked:[(r==="permanent"||r==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${T(o)}`,r!=="temporary"&&`paperAnchorDocked${T(o)}`]};return q(n,zc,e)},Dc=S(js,{name:"MuiDrawer",slot:"Root",overridesResolver:Dn})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.drawer}))),Ec=S("div",{shouldForwardProp:Se,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:Dn})({flex:"0 0 auto"}),Fc=S(we,{name:"MuiDrawer",slot:"Paper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.paper,e[`paperAnchor${T(o.anchor)}`],o.variant!=="temporary"&&e[`paperAnchorDocked${T(o.anchor)}`]]}})(U(({theme:t})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(t.vars||t).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:e})=>e.anchor==="left"&&e.variant!=="temporary",style:{borderRight:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="top"&&e.variant!=="temporary",style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="right"&&e.variant!=="temporary",style:{borderLeft:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="bottom"&&e.variant!=="temporary",style:{borderTop:`1px solid ${(t.vars||t).palette.divider}`}}]}))),En={left:"right",right:"left",top:"down",bottom:"up"};function Ne(t){return["left","right"].includes(t)}function po({direction:t},e){return t==="rtl"&&Ne(e)?En[e]:e}const Uc=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiDrawer"}),n=se(),s=He(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{anchor:i="left",BackdropProps:l,children:c,className:p,elevation:f=16,hideBackdrop:v=!1,ModalProps:{BackdropProps:m,...y}={},onClose:g,open:h=!1,PaperProps:b={},SlideProps:x,TransitionComponent:C,transitionDuration:R=a,variant:P="temporary",slots:N={},slotProps:$={},...A}=r,k=u.useRef(!1);u.useEffect(()=>{k.current=!0},[]);const I=po({direction:s?"rtl":"ltr"},i),L={...r,anchor:i,elevation:f,open:h,variant:P,...A},w=jc(L),M={slots:{transition:C,...N},slotProps:{paper:b,transition:x,...$,backdrop:vo($.backdrop||{...l,...m},{transitionDuration:R})}},[H,z]=V("root",{ref:o,elementType:Dc,className:j(w.root,w.modal,p),shouldForwardComponentProp:!0,ownerState:L,externalForwardedProps:{...M,...A,...y},additionalProps:{open:h,onClose:g,hideBackdrop:v,slots:{backdrop:M.slots.backdrop},slotProps:{backdrop:M.slotProps.backdrop}}}),[Q,D]=V("paper",{elementType:Fc,shouldForwardComponentProp:!0,className:j(w.paper,b.className),ownerState:L,externalForwardedProps:M,additionalProps:{elevation:P==="temporary"?f:0,square:!0}}),[et,pt]=V("docked",{elementType:Ec,ref:o,className:j(w.root,w.docked,p),ownerState:L,externalForwardedProps:M,additionalProps:A}),[_,wt]=V("transition",{elementType:Oc,ownerState:L,externalForwardedProps:M,additionalProps:{in:h,direction:En[I],timeout:R,appear:k.current}}),Lt=d.jsx(Q,{...D,children:c});if(P==="permanent")return d.jsx(et,{...pt,children:Lt});const Rt=d.jsx(_,{...wt,children:Lt});return P==="persistent"?d.jsx(et,{...pt,children:Rt}):d.jsx(H,{...z,children:Rt})});function Wc(t){return K("MuiFab",t)}const en=Z("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]),Hc=t=>{const{color:e,variant:o,classes:r,size:n}=t,s={root:["root",o,`size${T(n)}`,e==="inherit"?"colorInherit":e]},a=q(s,Wc,r);return{...r,...a}},Vc=S(fe,{name:"MuiFab",slot:"Root",shouldForwardProp:t=>Se(t)||t==="classes",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${T(o.size)}`],o.color==="inherit"&&e.colorInherit,e[T(o.size)],e[o.color]]}})(U(({theme:t})=>{var e,o;return{...t.typography.button,minHeight:36,transition:t.transitions.create(["background-color","box-shadow","border-color"],{duration:t.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(t.vars||t).zIndex.fab,boxShadow:(t.vars||t).shadows[6],"&:active":{boxShadow:(t.vars||t).shadows[12]},color:t.vars?t.vars.palette.text.primary:(o=(e=t.palette).getContrastText)==null?void 0:o.call(e,t.palette.grey[300]),backgroundColor:(t.vars||t).palette.grey[300],"&:hover":{backgroundColor:(t.vars||t).palette.grey.A100,"@media (hover: none)":{backgroundColor:(t.vars||t).palette.grey[300]},textDecoration:"none"},[`&.${en.focusVisible}`]:{boxShadow:(t.vars||t).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:48/2,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:34/2,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:40/2,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]}}),U(({theme:t})=>({variants:[...Object.entries(t.palette).filter(Ft(["dark","contrastText"])).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}}}}))]})),U(({theme:t})=>({[`&.${en.disabled}`]:{color:(t.vars||t).palette.action.disabled,boxShadow:(t.vars||t).shadows[0],backgroundColor:(t.vars||t).palette.action.disabledBackground}}))),Fn=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiFab"}),{children:n,className:s,color:a="default",component:i="button",disabled:l=!1,disableFocusRipple:c=!1,focusVisibleClassName:p,size:f="large",variant:v="circular",...m}=r,y={...r,color:a,component:i,disabled:l,disableFocusRipple:c,size:f,variant:v},g=Hc(y);return d.jsx(Vc,{className:j(g.root,s),component:i,disabled:l,focusRipple:!c,focusVisibleClassName:j(g.focusVisible,p),ownerState:y,ref:o,...m,classes:g,children:n})});function Gc(t){return K("MuiFormControlLabel",t)}const uo=Z("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),_c=t=>{const{classes:e,disabled:o,labelPlacement:r,error:n,required:s}=t,a={root:["root",o&&"disabled",`labelPlacement${T(r)}`,n&&"error",s&&"required"],label:["label",o&&"disabled"],asterisk:["asterisk",n&&"error"]};return q(a,Gc,e)},qc=S("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${uo.label}`]:e.label},e.root,e[`labelPlacement${T(o.labelPlacement)}`]]}})(U(({theme:t})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${uo.disabled}`]:{cursor:"default"},[`& .${uo.label}`]:{[`&.${uo.disabled}`]:{color:(t.vars||t).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:e})=>e==="start"||e==="top"||e==="bottom",style:{marginLeft:16}}]}))),Xc=S("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(t,e)=>e.asterisk})(U(({theme:t})=>({[`&.${uo.error}`]:{color:(t.vars||t).palette.error.main}}))),bb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiFormControlLabel"}),{checked:n,className:s,componentsProps:a={},control:i,disabled:l,disableTypography:c,inputRef:p,label:f,labelPlacement:v="end",name:m,onChange:y,required:g,slots:h={},slotProps:b={},value:x,...C}=r,R=Co(),P=l??i.props.disabled??(R==null?void 0:R.disabled),N=g??i.props.required,$={disabled:P,required:N};["checked","name","onChange","value","inputRef"].forEach(H=>{typeof i.props[H]>"u"&&typeof r[H]<"u"&&($[H]=r[H])});const A=Mr({props:r,muiFormControl:R,states:["error"]}),k={...r,disabled:P,labelPlacement:v,required:N,error:A.error},I=_c(k),F={slots:h,slotProps:{...a,...b}},[L,w]=V("typography",{elementType:re,externalForwardedProps:F,ownerState:k});let M=f;return M!=null&&M.type!==re&&!c&&(M=d.jsx(L,{component:"span",...w,className:j(I.label,w==null?void 0:w.className),children:M})),d.jsxs(qc,{className:j(I.root,s),ownerState:k,ref:o,...C,children:[u.cloneElement(i,$),N?d.jsxs("div",{children:[M,d.jsxs(Xc,{ownerState:k,"aria-hidden":!0,className:I.asterisk,children:[" ","*"]})]}):M]})});function Yc(t){return K("MuiFormGroup",t)}const vb=Z("MuiFormGroup",["root","row","error"]),Kc=t=>{const{classes:e,row:o,error:r}=t;return q({root:["root",o&&"row",r&&"error"]},Yc,e)},Zc=S("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.row&&e.row]}})({display:"flex",flexDirection:"column",flexWrap:"wrap",variants:[{props:{row:!0},style:{flexDirection:"row"}}]}),Jc=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiFormGroup"}),{className:n,row:s=!1,...a}=r,i=Co(),l=Mr({props:r,muiFormControl:i,states:["error"]}),c={...r,row:s,error:l.error},p=Kc(c);return d.jsx(Zc,{className:j(p.root,n),ownerState:c,ref:o,...a})}),on=u.createContext();function Qc(t){return K("MuiGrid",t)}const tp=[0,1,2,3,4,5,6,7,8,9,10],ep=["column-reverse","column","row-reverse","row"],op=["nowrap","wrap-reverse","wrap"],no=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],ho=Z("MuiGrid",["root","container","item","zeroMinWidth",...tp.map(t=>`spacing-xs-${t}`),...ep.map(t=>`direction-xs-${t}`),...op.map(t=>`wrap-xs-${t}`),...no.map(t=>`grid-xs-${t}`),...no.map(t=>`grid-sm-${t}`),...no.map(t=>`grid-md-${t}`),...no.map(t=>`grid-lg-${t}`),...no.map(t=>`grid-xl-${t}`)]);function rp({theme:t,ownerState:e}){let o;return t.breakpoints.keys.reduce((r,n)=>{let s={};if(e[n]&&(o=e[n]),!o)return r;if(o===!0)s={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(o==="auto")s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const a=De({values:e.columns,breakpoints:t.breakpoints.values}),i=typeof a=="object"?a[n]:a;if(i==null)return r;const l=`${Math.round(o/i*1e8)/1e6}%`;let c={};if(e.container&&e.item&&e.columnSpacing!==0){const p=t.spacing(e.columnSpacing);if(p!=="0px"){const f=`calc(${l} + ${p})`;c={flexBasis:f,maxWidth:f}}}s={flexBasis:l,flexGrow:0,maxWidth:l,...c}}return t.breakpoints.values[n]===0?Object.assign(r,s):r[t.breakpoints.up(n)]=s,r},{})}function np({theme:t,ownerState:e}){const o=De({values:e.direction,breakpoints:t.breakpoints.values});return mo({theme:t},o,r=>{const n={flexDirection:r};return r.startsWith("column")&&(n[`& > .${ho.item}`]={maxWidth:"none"}),n})}function Un({breakpoints:t,values:e}){let o="";Object.keys(e).forEach(n=>{o===""&&e[n]!==0&&(o=n)});const r=Object.keys(t).sort((n,s)=>t[n]-t[s]);return r.slice(0,r.indexOf(o))}function sp({theme:t,ownerState:e}){const{container:o,rowSpacing:r}=e;let n={};if(o&&r!==0){const s=De({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=Un({breakpoints:t.breakpoints.values,values:s})),n=mo({theme:t},s,(i,l)=>{const c=t.spacing(i);return c!=="0px"?{marginTop:`calc(-1 * ${c})`,[`& > .${ho.item}`]:{paddingTop:c}}:a!=null&&a.includes(l)?{}:{marginTop:0,[`& > .${ho.item}`]:{paddingTop:0}}})}return n}function ap({theme:t,ownerState:e}){const{container:o,columnSpacing:r}=e;let n={};if(o&&r!==0){const s=De({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=Un({breakpoints:t.breakpoints.values,values:s})),n=mo({theme:t},s,(i,l)=>{const c=t.spacing(i);if(c!=="0px"){const p=`calc(-1 * ${c})`;return{width:`calc(100% + ${c})`,marginLeft:p,[`& > .${ho.item}`]:{paddingLeft:c}}}return a!=null&&a.includes(l)?{}:{width:"100%",marginLeft:0,[`& > .${ho.item}`]:{paddingLeft:0}}})}return n}function ip(t,e,o={}){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[o[`spacing-xs-${String(t)}`]];const r=[];return e.forEach(n=>{const s=t[n];Number(s)>0&&r.push(o[`spacing-${n}-${String(s)}`])}),r}const lp=S("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{container:r,direction:n,item:s,spacing:a,wrap:i,zeroMinWidth:l,breakpoints:c}=o;let p=[];r&&(p=ip(a,c,e));const f=[];return c.forEach(v=>{const m=o[v];m&&f.push(e[`grid-${v}-${String(m)}`])}),[e.root,r&&e.container,s&&e.item,l&&e.zeroMinWidth,...p,n!=="row"&&e[`direction-xs-${String(n)}`],i!=="wrap"&&e[`wrap-xs-${String(i)}`],...f]}})(({ownerState:t})=>({boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},...t.item&&{margin:0},...t.zeroMinWidth&&{minWidth:0},...t.wrap!=="wrap"&&{flexWrap:t.wrap}}),np,sp,ap,rp);function cp(t,e){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[`spacing-xs-${String(t)}`];const o=[];return e.forEach(r=>{const n=t[r];if(Number(n)>0){const s=`spacing-${r}-${String(n)}`;o.push(s)}}),o}const pp=t=>{const{classes:e,container:o,direction:r,item:n,spacing:s,wrap:a,zeroMinWidth:i,breakpoints:l}=t;let c=[];o&&(c=cp(s,l));const p=[];l.forEach(v=>{const m=t[v];m&&p.push(`grid-${v}-${String(m)}`)});const f={root:["root",o&&"container",n&&"item",i&&"zeroMinWidth",...c,r!=="row"&&`direction-xs-${String(r)}`,a!=="wrap"&&`wrap-xs-${String(a)}`,...p]};return q(f,Qc,e)},yb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiGrid"}),{breakpoints:n}=se(),s=Jo(r),{className:a,columns:i,columnSpacing:l,component:c="div",container:p=!1,direction:f="row",item:v=!1,rowSpacing:m,spacing:y=0,wrap:g="wrap",zeroMinWidth:h=!1,...b}=s,x=m||y,C=l||y,R=u.useContext(on),P=p?i||12:R,N={},$={...b};n.keys.forEach(I=>{b[I]!=null&&(N[I]=b[I],delete $[I])});const A={...s,columns:P,container:p,direction:f,item:v,rowSpacing:x,columnSpacing:C,wrap:g,zeroMinWidth:h,spacing:y,...N,breakpoints:n.keys},k=pp(A);return d.jsx(on.Provider,{value:P,children:d.jsx(lp,{ownerState:A,className:j(k.root,a),as:c,ref:o,...$})})}),hb=Sa({createStyledComponent:S("div",{name:"MuiGrid2",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.container&&e.container]}}),componentName:"MuiGrid2",useThemeProps:t=>X({props:t,name:"MuiGrid2"}),useTheme:se});function xb(t){return K("MuiGrid2",t)}const dp=[0,1,2,3,4,5,6,7,8,9,10],up=["column-reverse","column","row-reverse","row"],fp=["nowrap","wrap-reverse","wrap"],so=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Cb=Z("MuiGrid2",["root","container",...dp.map(t=>`spacing-xs-${t}`),...up.map(t=>`direction-xs-${t}`),...fp.map(t=>`wrap-xs-${t}`),...so.map(t=>`grid-xs-${t}`),...so.map(t=>`grid-sm-${t}`),...so.map(t=>`grid-md-${t}`),...so.map(t=>`grid-lg-${t}`),...so.map(t=>`grid-xl-${t}`)]),Te=["xs","sm","md","lg","xl"],gp=(t,e,o=!0)=>o?Te.indexOf(t)<=Te.indexOf(e):Te.indexOf(t)o?Te.indexOf(e)<=Te.indexOf(t):Te.indexOf(e)e=>{const{withTheme:o=!1,noSSR:r=!1,initialWidth:n}=t;function s(a){const i=se(),l=a.theme||i,{initialWidth:c,width:p,...f}=Ds({theme:l,name:"MuiWithWidth",props:a}),[v,m]=u.useState(!1);So(()=>{m(!0)},[]);const g=l.breakpoints.keys.slice().reverse().reduce((b,x)=>{const C=Es(l.breakpoints.up(x));return!b&&C?x:b},null),h={width:p||(v||r?g:void 0)||c||n,...o?{theme:l}:{},...f};return h.width===void 0?null:d.jsx(e,{...h})}return s};function Wn(t){const{children:e,only:o,width:r}=t,n=se();let s=!0;if(o)if(Array.isArray(o))for(let a=0;a{const{classes:e,breakpoints:o}=t,r={root:["root",...o.map(({breakpoint:n,dir:s})=>s==="only"?`${s}${T(n)}`:`${n}${T(s)}`)]};return q(r,yp,e)},xp=S("div",{name:"PrivateHiddenCss",slot:"Root"})(({theme:t,ownerState:e})=>{const o={display:"none"};return{...e.breakpoints.map(({breakpoint:r,dir:n})=>n==="only"?{[t.breakpoints.only(r)]:o}:n==="up"?{[t.breakpoints.up(r)]:o}:{[t.breakpoints.down(r)]:o}).reduce((r,n)=>(Object.keys(n).forEach(s=>{r[s]=n[s]}),r),{})}});function Cp(t){const{children:e,className:o,only:r,...n}=t,s=se(),a=[];for(let c=0;c{a.push({breakpoint:p,dir:"only"})});const i={...t,breakpoints:a},l=hp(i);return d.jsx(xp,{className:j(l.root,o),ownerState:i,children:e})}function Sb(t){const{implementation:e="js",lgDown:o=!1,lgUp:r=!1,mdDown:n=!1,mdUp:s=!1,smDown:a=!1,smUp:i=!1,xlDown:l=!1,xlUp:c=!1,xsDown:p=!1,xsUp:f=!1,...v}=t;return e==="js"?d.jsx(vp,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:f,...v}):d.jsx(Cp,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:f,...v})}function Sp(t){return K("MuiIcon",t)}const wb=Z("MuiIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),wp=t=>{const{color:e,fontSize:o,classes:r}=t,n={root:["root",e!=="inherit"&&`color${T(e)}`,`fontSize${T(o)}`]};return q(n,Sp,r)},Rp=S("span",{name:"MuiIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="inherit"&&e[`color${T(o.color)}`],e[`fontSize${T(o.fontSize)}`]]}})(U(({theme:t})=>({userSelect:"none",width:"1em",height:"1em",overflow:"hidden",display:"inline-block",textAlign:"center",flexShrink:0,variants:[{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:t.typography.pxToRem(20)}},{props:{fontSize:"medium"},style:{fontSize:t.typography.pxToRem(24)}},{props:{fontSize:"large"},style:{fontSize:t.typography.pxToRem(36)}},{props:{color:"action"},style:{color:(t.vars||t).palette.action.active}},{props:{color:"disabled"},style:{color:(t.vars||t).palette.action.disabled}},{props:{color:"inherit"},style:{color:void 0}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}}))]}))),$p=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiIcon"}),{baseClassName:n="material-icons",className:s,color:a="inherit",component:i="span",fontSize:l="medium",...c}=r,p={...r,baseClassName:n,color:a,component:i,fontSize:l},f=wp(p);return d.jsx(Rp,{as:i,className:j(n,"notranslate",f.root,s),ownerState:p,"aria-hidden":!0,ref:o,...c})});$p.muiName="Icon";function Pp(t){return K("MuiImageList",t)}const Rb=Z("MuiImageList",["root","masonry","quilted","standard","woven"]),Hn=u.createContext({}),kp=t=>{const{classes:e,variant:o}=t;return q({root:["root",o]},Pp,e)},Tp=S("ul",{name:"MuiImageList",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({display:"grid",overflowY:"auto",listStyle:"none",padding:0,WebkitOverflowScrolling:"touch",variants:[{props:{variant:"masonry"},style:{display:"block"}}]}),$b=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiImageList"}),{children:n,className:s,cols:a=2,component:i="ul",rowHeight:l="auto",gap:c=4,style:p,variant:f="standard",...v}=r,m=u.useMemo(()=>({rowHeight:l,gap:c,variant:f}),[l,c,f]),y=f==="masonry"?{columnCount:a,columnGap:c,...p}:{gridTemplateColumns:`repeat(${a}, 1fr)`,gap:c,...p},g={...r,component:i,gap:c,rowHeight:l,variant:f},h=kp(g);return d.jsx(Tp,{as:i,className:j(h.root,h[f],s),ref:o,style:y,ownerState:g,...v,children:d.jsx(Hn.Provider,{value:m,children:n})})});function Ip(t){return K("MuiImageListItem",t)}const ur=Z("MuiImageListItem",["root","img","standard","woven","masonry","quilted"]),Mp=t=>{const{classes:e,variant:o}=t;return q({root:["root",o],img:["img"]},Ip,e)},Ap=S("li",{name:"MuiImageListItem",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ur.img}`]:e.img},e.root,e[o.variant]]}})({display:"block",position:"relative",[`& .${ur.img}`]:{objectFit:"cover",width:"100%",height:"100%",display:"block"},variants:[{props:{variant:"standard"},style:{display:"flex",flexDirection:"column"}},{props:{variant:"woven"},style:{height:"100%",alignSelf:"center","&:nth-of-type(even)":{height:"70%"}}},{props:{variant:"standard"},style:{[`& .${ur.img}`]:{height:"auto",flexGrow:1}}}]}),Pb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiImageListItem"}),{children:n,className:s,cols:a=1,component:i="li",rows:l=1,style:c,...p}=r,{rowHeight:f="auto",gap:v,variant:m}=u.useContext(Hn);let y="auto";m==="woven"?y=void 0:f!=="auto"&&(y=f*l+v*(l-1));const g={...r,cols:a,component:i,gap:v,rowHeight:f,rows:l,variant:m},h=Mp(g);return d.jsx(Ap,{as:i,className:j(h.root,h[m],s),ref:o,style:{height:y,gridColumnEnd:m!=="masonry"?`span ${a}`:void 0,gridRowEnd:m!=="masonry"?`span ${l}`:void 0,marginBottom:m==="masonry"?v:void 0,breakInside:m==="masonry"?"avoid":void 0,...c},ownerState:g,...p,children:u.Children.map(n,b=>u.isValidElement(b)?b.type==="img"||Yo(b,["Image"])?u.cloneElement(b,{className:j(h.img,b.props.className)}):b:null)})});function Lp(t){return K("MuiImageListItemBar",t)}const kb=Z("MuiImageListItemBar",["root","positionBottom","positionTop","positionBelow","actionPositionLeft","actionPositionRight","titleWrap","titleWrapBottom","titleWrapTop","titleWrapBelow","titleWrapActionPosLeft","titleWrapActionPosRight","title","subtitle","actionIcon","actionIconActionPosLeft","actionIconActionPosRight"]),Bp=t=>{const{classes:e,position:o,actionIcon:r,actionPosition:n}=t,s={root:["root",`position${T(o)}`,`actionPosition${T(n)}`],titleWrap:["titleWrap",`titleWrap${T(o)}`,r&&`titleWrapActionPos${T(n)}`],title:["title"],subtitle:["subtitle"],actionIcon:["actionIcon",`actionIconActionPos${T(n)}`]};return q(s,Lp,e)},Np=S("div",{name:"MuiImageListItemBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${T(o.position)}`]]}})(U(({theme:t})=>({position:"absolute",left:0,right:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",fontFamily:t.typography.fontFamily,variants:[{props:{position:"bottom"},style:{bottom:0}},{props:{position:"top"},style:{top:0}},{props:{position:"below"},style:{position:"relative",background:"transparent",alignItems:"normal"}}]}))),Op=S("div",{name:"MuiImageListItemBar",slot:"TitleWrap",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.titleWrap,e[`titleWrap${T(o.position)}`],o.actionIcon&&e[`titleWrapActionPos${T(o.actionPosition)}`]]}})(U(({theme:t})=>({flexGrow:1,padding:"12px 16px",color:(t.vars||t).palette.common.white,overflow:"hidden",variants:[{props:{position:"below"},style:{padding:"6px 0 12px",color:"inherit"}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="left",style:{paddingLeft:0}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="right",style:{paddingRight:0}}]}))),zp=S("div",{name:"MuiImageListItemBar",slot:"Title",overridesResolver:(t,e)=>e.title})(U(({theme:t})=>({fontSize:t.typography.pxToRem(16),lineHeight:"24px",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),jp=S("div",{name:"MuiImageListItemBar",slot:"Subtitle",overridesResolver:(t,e)=>e.subtitle})(U(({theme:t})=>({fontSize:t.typography.pxToRem(12),lineHeight:1,textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),Dp=S("div",{name:"MuiImageListItemBar",slot:"ActionIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actionIcon,e[`actionIconActionPos${T(o.actionPosition)}`]]}})({variants:[{props:{actionPosition:"left"},style:{order:-1}}]}),Tb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiImageListItemBar"}),{actionIcon:n,actionPosition:s="right",className:a,subtitle:i,title:l,position:c="bottom",...p}=r,f={...r,position:c,actionPosition:s},v=Bp(f);return d.jsxs(Np,{ownerState:f,className:j(v.root,a),ref:o,...p,children:[d.jsxs(Op,{ownerState:f,className:v.titleWrap,children:[d.jsx(zp,{className:v.title,children:l}),i?d.jsx(jp,{className:v.subtitle,children:i}):null]}),n?d.jsx(Dp,{ownerState:f,className:v.actionIcon,children:n}):null]})});function Ep(t){return K("MuiLinearProgress",t)}const Ib=Z("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","bar1","bar2","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]),Sr=4,wr=Lr` +import{C as os,b as rs,S as ns,s as ss,c as T,d as Pr,h as go,e as je,f as as,g as Cn,m as is,i as jr,j as ls,k as cs,l as Sn,n as ho,o as ps,a as Tt,p as ds,q as us,t as fs,u as gs,v as ms,w as bs,x as vs,y as ys,z as hs,A as De,B as Ee,T as xs,D as Ho,E as Po,F as Le}from"./createTheme-BwMO3rTt.js";import{Q as Bv,N as Nv,O as Ov,J as zv,P as jv,L as Dv,M as Ev,R as Fv,G as Uv,I as Wv,W as Hv,V as Vv,X as Gv,K as _v,H as qv,U as Xv}from"./createTheme-BwMO3rTt.js";import{d as Cs,c as j,e as Ss,b as q,g as K,C as wn,u as X,s as S,m as U,r as Se,a as Z,f as Xo}from"./DefaultPropsProvider-9qubdy-V.js";import{H as kr,J as Yo,K as ws,N as Dr,O as Rs,Q as $s,R as Ps,U as mo,V as ks,W as V,c as re,X as Ts,Y as ko,Z as Vo,$ as Is,B as fe,a0 as oo,T as Tr,a1 as Ne,a2 as Fe,d as ue,P as we,I as Oe,e as Ue,a3 as Ms,a4 as Rn,p as Ko,C as As,a5 as Er,a6 as sr,b as Ce,a7 as Ls,a8 as Bs,a9 as bo,aa as Zo,ab as Ns,ac as Os,ad as $n,ae as zs,af as js,n as Ds,ag as Ie,ah as Es,ai as Fs,aj as Us,ak as Ws,v as Pn,al as uo,G as kn,am as Hs,an as Vs,ao as Gs,M as _s,ap as qs}from"./Tabs-CvEv0KOT.js";import{aq as Kv,q as Zv,ar as Jv,t as Qv,D as ty,x as ey,E as oy,l as ry,j as ny,F as sy,as as ay,a_ as iy,h as ly,i as cy,L as py,r as dy,at as uy,au as fy,g as gy,bi as my,av as by,aw as vy,bt as yy,bs as hy,ax as xy,S as Cy,y as Sy,ay as wy,z as Ry,k as $y,o as Py,aB as ky,aF as Ty,aD as Iy,aJ as My,aL as Ay,aO as Ly,w as By,aQ as Ny,aS as Oy,aT as zy,aV as jy,aX as Dy,aZ as Ey,aC as Fy,aH as Uy,aE as Wy,aK as Hy,aM as Vy,aP as Gy,aR as _y,aN as qy,aU as Xy,aW as Yy,aY as Ky,a$ as Zy,b1 as Jy,b4 as Qy,b6 as th,b2 as eh,bd as oh,ba as rh,b8 as nh,bh as sh,bf as ah,bk as ih,br as lh,bq as ch,bm as ph,bo as dh,bu as uh,bv as fh,bx as gh,bz as mh,bE as bh,bB as vh,bC as yh,bG as hh,aI as xh,bH as Ch,b0 as Sh,b3 as wh,b5 as Rh,b7 as $h,b9 as Ph,bb as kh,bc as Th,be as Ih,bg as Mh,bj as Ah,bl as Lh,bn as Bh,bp as Nh,bw as Oh,by as zh,bA as jh,bD as Dh,A as Eh,bF as Fh,aG as Uh,az as Wh,aA as Hh,u as Vh}from"./Tabs-CvEv0KOT.js";import{C as u}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{j as d}from"./jsx-runtime-o-xyxrOj.js";import{u as se}from"./useTheme-CDtRWagv.js";import{e as Jo,a as ge,c as Ft,u as ne,f as Ge,i as Ae,b as xo,o as de,g as Tn,d as Xs,h as Xe,j as Ir,k as Uo,I as Ys}from"./FilledInput-BpuM_GyB.js";import{F as _h,G as qh,T as Xh,l as Yh,m as Kh}from"./FilledInput-BpuM_GyB.js";import{c as Ht,S as Ks}from"./createSvgIcon-BQThUM-f.js";import{g as Jh,s as Qh}from"./createSvgIcon-BQThUM-f.js";import{u as In,P as Qt}from"./useTheme-MELayQMj.js";import{u as We}from"./index-B7G6Jpdl.js";import{u as Co,c as Mr,k as Ar}from"./useEnhancedEffect-CdLBzwyA.js";import{C as Fr}from"./ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js";import{r as Zs}from"./DefaultPropsProvider-DbEA5uR6.js";import{C as e0,E as o0,T as r0,g as n0,u as s0}from"./ThemeProvider-DZTpMR8n.js";import"./defaultTheme-avbtL0lf.js";import"./useThemeWithoutDefault-C-hl_s0Z.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";const ar=new Map,Js=(t,e)=>{const o=rs(t);return o.sheet=new e({key:o.key,nonce:o.sheet.nonce,container:o.sheet.container,speedy:o.sheet.isSpeedy,prepend:o.sheet.prepend,insertionPoint:o.sheet.insertionPoint}),o};let Pe;if(typeof document=="object"&&(Pe=document.querySelector('[name="emotion-insertion-point"]'),!Pe)){Pe=document.createElement("meta"),Pe.setAttribute("name","emotion-insertion-point"),Pe.setAttribute("content","");const t=document.querySelector("head");t&&t.prepend(Pe)}function Qs(t,e){if(t||e){class o extends ns{insert(s,a){return this.key&&this.key.endsWith("global")&&(this.before=Pe),super.insert(s,a)}}const r=Js({key:"css",insertionPoint:t?Pe:void 0},o);if(e){const n=r.insert;r.insert=(...s)=>(s[1].styles.startsWith("@layer")||(s[1].styles=`@layer mui {${s[1].styles}}`),n(...s))}return r}}function pm(t){const{injectFirst:e,enableCssLayer:o,children:r}=t,n=u.useMemo(()=>{const s=`${e}-${o}`;if(ar.has(s))return ar.get(s);const a=Qs(e,o);return ar.set(s,a),a},[e,o]);return n?d.jsx(os,{value:n,children:r}):r}function ta(t={}){const{themeId:e,defaultTheme:o,defaultClassName:r="MuiBox-root",generateClassName:n}=t,s=Cs("div",{shouldForwardProp:i=>i!=="theme"&&i!=="sx"&&i!=="as"})(ss);return u.forwardRef(function(l,c){const p=In(o),{className:f,component:v="div",...m}=Jo(l);return d.jsx(s,{as:v,ref:c,className:j(f,n?n(r):r),theme:e&&p[e]||p,...m})})}const Lr=Ss();function dm(t,e){return()=>null}function um(t,e){return()=>null}function fm(t,e,o,r,n){return null}const Br=t=>{const e=u.useRef({});return u.useEffect(()=>{e.current=t}),e.current};function Mn(t){return u.Children.toArray(t).filter(e=>u.isValidElement(e))}const ea=Pr(),oa=Lr("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${T(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),ra=t=>kr({props:t,name:"MuiContainer",defaultTheme:ea}),na=(t,e)=>{const o=l=>K(e,l),{classes:r,fixed:n,disableGutters:s,maxWidth:a}=t,i={root:["root",a&&`maxWidth${T(String(a))}`,n&&"fixed",s&&"disableGutters"]};return q(i,o,r)};function sa(t={}){const{createStyledComponent:e=oa,useThemeProps:o=ra,componentName:r="MuiContainer"}=t,n=e(({theme:a,ownerState:i})=>({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",...!i.disableGutters&&{paddingLeft:a.spacing(2),paddingRight:a.spacing(2),[a.breakpoints.up("sm")]:{paddingLeft:a.spacing(3),paddingRight:a.spacing(3)}}}),({theme:a,ownerState:i})=>i.fixed&&Object.keys(a.breakpoints.values).reduce((l,c)=>{const p=c,f=a.breakpoints.values[p];return f!==0&&(l[a.breakpoints.up(p)]={maxWidth:`${f}${a.breakpoints.unit}`}),l},{}),({theme:a,ownerState:i})=>({...i.maxWidth==="xs"&&{[a.breakpoints.up("xs")]:{maxWidth:Math.max(a.breakpoints.values.xs,444)}},...i.maxWidth&&i.maxWidth!=="xs"&&{[a.breakpoints.up(i.maxWidth)]:{maxWidth:`${a.breakpoints.values[i.maxWidth]}${a.breakpoints.unit}`}}}));return u.forwardRef(function(i,l){const c=o(i),{className:p,component:f="div",disableGutters:v=!1,fixed:m=!1,maxWidth:y="lg",classes:g,...h}=c,b={...c,component:f,disableGutters:v,fixed:m,maxWidth:y},x=na(b,r);return d.jsx(n,{as:f,ownerState:b,className:j(x.root,p),ref:l,...h})})}const aa=(t,e)=>t.filter(o=>e.includes(o)),Ke=(t,e,o)=>{const r=t.keys[0];Array.isArray(e)?e.forEach((n,s)=>{o((a,i)=>{s<=t.keys.length-1&&(s===0?Object.assign(a,i):a[t.up(t.keys[s])]=i)},n)}):e&&typeof e=="object"?(Object.keys(e).length>t.keys.length?t.keys:aa(t.keys,Object.keys(e))).forEach(s=>{if(t.keys.includes(s)){const a=e[s];a!==void 0&&o((i,l)=>{r===s?Object.assign(i,l):i[t.up(s)]=l},a)}}):(typeof e=="number"||typeof e=="string")&&o((n,s)=>{Object.assign(n,s)},e)};function Go(t){return`--Grid-${t}Spacing`}function Qo(t){return`--Grid-parent-${t}Spacing`}const Ur="--Grid-columns",Ye="--Grid-parent-columns",ia=({theme:t,ownerState:e})=>{const o={};return Ke(t.breakpoints,e.size,(r,n)=>{let s={};n==="grow"&&(s={flexBasis:0,flexGrow:1,maxWidth:"100%"}),n==="auto"&&(s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"}),typeof n=="number"&&(s={flexGrow:0,flexBasis:"auto",width:`calc(100% * ${n} / var(${Ye}) - (var(${Ye}) - ${n}) * (var(${Qo("column")}) / var(${Ye})))`}),r(o,s)}),o},la=({theme:t,ownerState:e})=>{const o={};return Ke(t.breakpoints,e.offset,(r,n)=>{let s={};n==="auto"&&(s={marginLeft:"auto"}),typeof n=="number"&&(s={marginLeft:n===0?"0px":`calc(100% * ${n} / var(${Ye}) + var(${Qo("column")}) * ${n} / var(${Ye}))`}),r(o,s)}),o},ca=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={[Ur]:12};return Ke(t.breakpoints,e.columns,(r,n)=>{const s=n??12;r(o,{[Ur]:s,"> *":{[Ye]:s}})}),o},pa=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Ke(t.breakpoints,e.rowSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[Go("row")]:s,"> *":{[Qo("row")]:s}})}),o},da=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Ke(t.breakpoints,e.columnSpacing,(r,n)=>{var a;const s=typeof n=="string"?n:(a=t.spacing)==null?void 0:a.call(t,n);r(o,{[Go("column")]:s,"> *":{[Qo("column")]:s}})}),o},ua=({theme:t,ownerState:e})=>{if(!e.container)return{};const o={};return Ke(t.breakpoints,e.direction,(r,n)=>{r(o,{flexDirection:n})}),o},fa=({ownerState:t})=>({minWidth:0,boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",...t.wrap&&t.wrap!=="wrap"&&{flexWrap:t.wrap},gap:`var(${Go("row")}) var(${Go("column")})`}}),ga=t=>{const e=[];return Object.entries(t).forEach(([o,r])=>{r!==!1&&r!==void 0&&e.push(`grid-${o}-${String(r)}`)}),e},ma=(t,e="xs")=>{function o(r){return r===void 0?!1:typeof r=="string"&&!Number.isNaN(Number(r))||typeof r=="number"&&r>0}if(o(t))return[`spacing-${e}-${String(t)}`];if(typeof t=="object"&&!Array.isArray(t)){const r=[];return Object.entries(t).forEach(([n,s])=>{o(s)&&r.push(`spacing-${n}-${String(s)}`)}),r}return[]},ba=t=>t===void 0?[]:typeof t=="object"?Object.entries(t).map(([e,o])=>`direction-${e}-${o}`):[`direction-xs-${String(t)}`];function va(t,e){t.item!==void 0&&delete t.item,t.zeroMinWidth!==void 0&&delete t.zeroMinWidth,e.keys.forEach(o=>{t[o]!==void 0&&delete t[o]})}const ya=Pr(),ha=Lr("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>e.root});function xa(t){return kr({props:t,name:"MuiGrid",defaultTheme:ya})}function Ca(t={}){const{createStyledComponent:e=ha,useThemeProps:o=xa,useTheme:r=In,componentName:n="MuiGrid"}=t,s=(c,p)=>{const{container:f,direction:v,spacing:m,wrap:y,size:g}=c,h={root:["root",f&&"container",y!=="wrap"&&`wrap-xs-${String(y)}`,...ba(v),...ga(g),...f?ma(m,p.breakpoints.keys[0]):[]]};return q(h,b=>K(n,b),{})};function a(c,p,f=()=>!0){const v={};return c===null||(Array.isArray(c)?c.forEach((m,y)=>{m!==null&&f(m)&&p.keys[y]&&(v[p.keys[y]]=m)}):typeof c=="object"?Object.keys(c).forEach(m=>{const y=c[m];y!=null&&f(y)&&(v[m]=y)}):v[p.keys[0]]=c),v}const i=e(ca,da,pa,ia,ua,fa,la),l=u.forwardRef(function(p,f){const v=r(),m=o(p),y=Jo(m);va(y,v.breakpoints);const{className:g,children:h,columns:b=12,container:x=!1,component:C="div",direction:R="row",wrap:P="wrap",size:N={},offset:$={},spacing:A=0,rowSpacing:k=A,columnSpacing:I=A,unstable_level:F=0,...L}=y,w=a(N,v.breakpoints,_=>_!==!1),M=a($,v.breakpoints),H=p.columns??(F?void 0:b),z=p.spacing??(F?void 0:A),Q=p.rowSpacing??p.spacing??(F?void 0:k),D=p.columnSpacing??p.spacing??(F?void 0:I),et={...y,level:F,columns:H,container:x,direction:R,wrap:P,spacing:z,rowSpacing:Q,columnSpacing:D,size:w,offset:M},pt=s(et,v);return d.jsx(i,{ref:f,as:C,ownerState:et,className:j(pt.root,g),...L,children:u.Children.map(h,_=>{var wt;return u.isValidElement(_)&&Yo(_,["Grid"])&&x&&_.props.container?u.cloneElement(_,{unstable_level:((wt=_.props)==null?void 0:wt.unstable_level)??F+1}):_})})});return l.muiName="Grid",l}const Sa=Pr(),wa=Lr("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root});function Ra(t){return kr({props:t,name:"MuiStack",defaultTheme:Sa})}function $a(t,e){const o=u.Children.toArray(t).filter(Boolean);return o.reduce((r,n,s)=>(r.push(n),s({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[t],ka=({ownerState:t,theme:e})=>{let o={display:"flex",flexDirection:"column",...go({theme:e},je({values:t.direction,breakpoints:e.breakpoints.values}),r=>({flexDirection:r}))};if(t.spacing){const r=as(e),n=Object.keys(e.breakpoints.values).reduce((l,c)=>((typeof t.spacing=="object"&&t.spacing[c]!=null||typeof t.direction=="object"&&t.direction[c]!=null)&&(l[c]=!0),l),{}),s=je({values:t.direction,base:n}),a=je({values:t.spacing,base:n});typeof s=="object"&&Object.keys(s).forEach((l,c,p)=>{if(!s[l]){const v=c>0?s[p[c-1]]:"column";s[l]=v}}),o=Cn(o,go({theme:e},a,(l,c)=>t.useFlexGap?{gap:jr(r,l)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${Pa(c?s[c]:t.direction)}`]:jr(r,l)}}))}return o=is(e.breakpoints,o),o};function Ta(t={}){const{createStyledComponent:e=wa,useThemeProps:o=Ra,componentName:r="MuiStack"}=t,n=()=>q({root:["root"]},l=>K(r,l),{}),s=e(ka);return u.forwardRef(function(l,c){const p=o(l),f=Jo(p),{component:v="div",direction:m="column",spacing:y=0,divider:g,children:h,className:b,useFlexGap:x=!1,...C}=f,R={direction:m,spacing:y,useFlexGap:x},P=n();return d.jsx(s,{as:v,ownerState:R,ref:c,className:j(P.root,b),...C,children:g?$a(h,g):h})})}function gm(t){const{defaultProps:e={},mixins:o={},overrides:r={},palette:n={},props:s={},styleOverrides:a={},...i}=t,l={...i,components:{}};Object.keys(e).forEach(g=>{const h=l.components[g]||{};h.defaultProps=e[g],l.components[g]=h}),Object.keys(s).forEach(g=>{const h=l.components[g]||{};h.defaultProps=s[g],l.components[g]=h}),Object.keys(a).forEach(g=>{const h=l.components[g]||{};h.styleOverrides=a[g],l.components[g]=h}),Object.keys(r).forEach(g=>{const h=l.components[g]||{};h.styleOverrides=r[g],l.components[g]=h}),l.spacing=ls(t.spacing);const c=cs(t.breakpoints||{}),p=l.spacing;l.mixins={gutters:(g={})=>({paddingLeft:p(2),paddingRight:p(2),...g,[c.up("sm")]:{paddingLeft:p(3),paddingRight:p(3),...g[c.up("sm")]}}),...o};const{type:f,mode:v,...m}=n,y=v||f||"light";return l.palette={text:{hint:y==="dark"?"rgba(255, 255, 255, 0.5)":"rgba(0, 0, 0, 0.38)"},mode:y,type:y,...m},l}function mm(t,...e){return Sn(Cn({unstable_strictMode:!0},t),...e)}let Wr=!1;function bm(t){return Wr||(console.warn(["MUI: createStyles from @mui/material/styles is deprecated.","Please use @mui/styles/createStyles"].join(` +`)),Wr=!0),t}function vm(t,e={}){const{breakpoints:o=["sm","md","lg"],disableAlign:r=!1,factor:n=2,variants:s=["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","button","overline"]}=e,a={...t};a.typography={...a.typography};const i=a.typography,l=ws(i.htmlFontSize),c=o.map(p=>a.breakpoints.values[p]);return s.forEach(p=>{const f=i[p];if(!f)return;const v=parseFloat(l(f.fontSize,"rem"));if(v<=1)return;const m=v,y=1+(m-1)/n;let{lineHeight:g}=f;if(!Dr(g)&&!r)throw new Error(ho(6));Dr(g)||(g=parseFloat(l(g,"rem"))/parseFloat(v));let h=null;r||(h=b=>$s({size:b,grid:Ps({pixels:4,lineHeight:g,htmlFontSize:i.htmlFontSize})})),i[p]={...f,...Rs({cssProperty:"fontSize",min:y,max:m,unit:"rem",breakpoints:c,transform:h})}}),a}function ym(){throw new Error(ho(14))}function hm(){throw new Error(ho(15))}function xm(){throw new Error(ho(16))}let Hr=!1;function Cm(...t){return Hr||(console.warn(["MUI: The `experimental_extendTheme` has been stabilized.","","You should use `import { extendTheme } from '@mui/material/styles'`"].join(` +`)),Hr=!0),ps(...t)}function Sm(){throw new Error(ho(19))}const wm={configure:t=>{wn.configure(t)}},Ia=t=>{const{alignItems:e,classes:o}=t;return q({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},ks,o)},Ma=S("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})(U(({theme:t})=>({minWidth:56,color:(t.vars||t).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),Rm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemIcon"}),{className:n,...s}=r,a=u.useContext(mo),i={...r,alignItems:a.alignItems},l=Ia(i);return d.jsx(Ma,{className:j(l.root,n),ownerState:i,ref:o,...s})}),Aa=t=>{const{classes:e,inset:o,primary:r,secondary:n,dense:s}=t;return q({root:["root",o&&"inset",s&&"dense",r&&n&&"multiline"],primary:["primary"],secondary:["secondary"]},Ts,e)},La=S("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ko.primary}`]:e.primary},{[`& .${ko.secondary}`]:e.secondary},e.root,o.inset&&e.inset,o.primary&&o.secondary&&e.multiline,o.dense&&e.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${Vo.root}:where(& .${ko.primary})`]:{display:"block"},[`.${Vo.root}:where(& .${ko.secondary})`]:{display:"block"},variants:[{props:({ownerState:t})=>t.primary&&t.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:56}}]}),$m=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemText"}),{children:n,className:s,disableTypography:a=!1,inset:i=!1,primary:l,primaryTypographyProps:c,secondary:p,secondaryTypographyProps:f,slots:v={},slotProps:m={},...y}=r,{dense:g}=u.useContext(mo);let h=l??n,b=p;const x={...r,disableTypography:a,inset:i,primary:!!h,secondary:!!b,dense:g},C=Aa(x),R={slots:v,slotProps:{primary:c,secondary:f,...m}},[P,N]=V("root",{className:j(C.root,s),elementType:La,externalForwardedProps:{...R,...y},ownerState:x,ref:o}),[$,A]=V("primary",{className:C.primary,elementType:re,externalForwardedProps:R,ownerState:x}),[k,I]=V("secondary",{className:C.secondary,elementType:re,externalForwardedProps:R,ownerState:x});return h!=null&&h.type!==re&&!a&&(h=d.jsx($,{variant:g?"body2":"body1",component:A!=null&&A.variant?void 0:"span",...A,children:h})),b!=null&&b.type!==re&&!a&&(b=d.jsx(k,{variant:"body2",color:"textSecondary",...I,children:b})),d.jsxs(P,{...N,children:[h,b]})}),Ba=(t,e)=>{const{ownerState:o}=t;return[e.root,o.dense&&e.dense,o.alignItems==="flex-start"&&e.alignItemsFlexStart,o.divider&&e.divider,!o.disableGutters&&e.gutters]},Na=t=>{const{alignItems:e,classes:o,dense:r,disabled:n,disableGutters:s,divider:a,selected:i}=t,c=q({root:["root",r&&"dense",!s&&"gutters",a&&"divider",n&&"disabled",e==="flex-start"&&"alignItemsFlexStart",i&&"selected"]},Is,o);return{...o,...c}},Oa=S(fe,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiListItemButton",slot:"Root",overridesResolver:Ba})(U(({theme:t})=>({display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${oo.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${oo.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}},[`&.${oo.selected}:hover`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity)}},[`&.${oo.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${oo.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.dense,style:{paddingTop:4,paddingBottom:4}}]}))),Pm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemButton"}),{alignItems:n="center",autoFocus:s=!1,component:a="div",children:i,dense:l=!1,disableGutters:c=!1,divider:p=!1,focusVisibleClassName:f,selected:v=!1,className:m,...y}=r,g=u.useContext(mo),h=u.useMemo(()=>({dense:l||g.dense||!1,alignItems:n,disableGutters:c}),[n,g.dense,l,c]),b=u.useRef(null);Co(()=>{s&&b.current&&b.current.focus()},[s]);const x={...r,alignItems:n,dense:h.dense,disableGutters:c,divider:p,selected:v},C=Na(x),R=ge(b,o);return d.jsx(mo.Provider,{value:h,children:d.jsx(Oa,{ref:R,href:y.href||y.to,component:(y.href||y.to)&&a==="div"?"button":a,focusVisibleClassName:j(C.focusVisible,f),ownerState:x,className:j(C.root,m),...y,classes:C,children:i})})}),za={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},ja={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea"},Da={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},Ea={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"},Fa={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5"},Ua={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17"},Wa={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00"},Ha={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600"},Va={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"},Ga={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00"},_a={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037"},qa={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"},km=Object.freeze(Object.defineProperty({__proto__:null,amber:Va,blue:ds,blueGrey:qa,brown:_a,common:us,cyan:Ea,deepOrange:Ga,deepPurple:ja,green:fs,grey:gs,indigo:Da,lightBlue:ms,lightGreen:Ua,lime:Wa,orange:bs,pink:za,purple:vs,red:ys,teal:Fa,yellow:Ha},Symbol.toStringTag,{value:"Module"}));function Xa(t){return K("MuiCollapse",t)}const Tm=Z("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]),Ya=t=>{const{orientation:e,classes:o}=t,r={root:["root",`${e}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${e}`],wrapperInner:["wrapperInner",`${e}`]};return q(r,Xa,o)},Ka=S("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.state==="entered"&&e.entered,o.state==="exited"&&!o.in&&o.collapsedSize==="0px"&&e.hidden]}})(U(({theme:t})=>({height:0,overflow:"hidden",transition:t.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:t.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:e})=>e.state==="exited"&&!e.in&&e.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),Za=S("div",{name:"MuiCollapse",slot:"Wrapper",overridesResolver:(t,e)=>e.wrapper})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),Ja=S("div",{name:"MuiCollapse",slot:"WrapperInner",overridesResolver:(t,e)=>e.wrapperInner})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),vo=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCollapse"}),{addEndListener:n,children:s,className:a,collapsedSize:i="0px",component:l,easing:c,in:p,onEnter:f,onEntered:v,onEntering:m,onExit:y,onExited:g,onExiting:h,orientation:b="vertical",style:x,timeout:C=hs.standard,TransitionComponent:R=Tr,...P}=r,N={...r,orientation:b,collapsedSize:i},$=Ya(N),A=se(),k=Ne(),I=u.useRef(null),F=u.useRef(),L=typeof i=="number"?`${i}px`:i,w=b==="horizontal",M=w?"width":"height",H=u.useRef(null),z=ge(o,H),Q=rt=>W=>{if(rt){const it=H.current;W===void 0?rt(it):rt(it,W)}},D=()=>I.current?I.current[w?"clientWidth":"clientHeight"]:0,et=Q((rt,W)=>{I.current&&w&&(I.current.style.position="absolute"),rt.style[M]=L,f&&f(rt,W)}),pt=Q((rt,W)=>{const it=D();I.current&&w&&(I.current.style.position="");const{duration:dt,easing:bt}=Fe({style:x,timeout:C,easing:c},{mode:"enter"});if(C==="auto"){const $t=A.transitions.getAutoHeightDuration(it);rt.style.transitionDuration=`${$t}ms`,F.current=$t}else rt.style.transitionDuration=typeof dt=="string"?dt:`${dt}ms`;rt.style[M]=`${it}px`,rt.style.transitionTimingFunction=bt,m&&m(rt,W)}),_=Q((rt,W)=>{rt.style[M]="auto",v&&v(rt,W)}),wt=Q(rt=>{rt.style[M]=`${D()}px`,y&&y(rt)}),Lt=Q(g),Rt=Q(rt=>{const W=D(),{duration:it,easing:dt}=Fe({style:x,timeout:C,easing:c},{mode:"exit"});if(C==="auto"){const bt=A.transitions.getAutoHeightDuration(W);rt.style.transitionDuration=`${bt}ms`,F.current=bt}else rt.style.transitionDuration=typeof it=="string"?it:`${it}ms`;rt.style[M]=L,rt.style.transitionTimingFunction=dt,h&&h(rt)}),lt=rt=>{C==="auto"&&k.start(F.current||0,rt),n&&n(H.current,rt)};return d.jsx(R,{in:p,onEnter:et,onEntered:_,onEntering:pt,onExit:wt,onExited:Lt,onExiting:Rt,addEndListener:lt,nodeRef:H,timeout:C==="auto"?null:C,...P,children:(rt,{ownerState:W,...it})=>d.jsx(Ka,{as:l,className:j($.root,a,{entered:$.entered,exited:!p&&L==="0px"&&$.hidden}[rt]),style:{[w?"minWidth":"minHeight"]:L,...x},ref:z,ownerState:{...N,state:rt},...it,children:d.jsx(Za,{ownerState:{...N,state:rt},className:$.wrapper,ref:I,children:d.jsx(Ja,{ownerState:{...N,state:rt},className:$.wrapperInner,children:s})})})})});vo&&(vo.muiSupportAuto=!0);const An=u.createContext({});function Qa(t){return K("MuiAccordion",t)}const To=Z("MuiAccordion",["root","heading","rounded","expanded","disabled","gutters","region"]),ti=t=>{const{classes:e,square:o,expanded:r,disabled:n,disableGutters:s}=t;return q({root:["root",!o&&"rounded",r&&"expanded",n&&"disabled",!s&&"gutters"],heading:["heading"],region:["region"]},Qa,e)},ei=S(we,{name:"MuiAccordion",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${To.region}`]:e.region},e.root,!o.square&&e.rounded,!o.disableGutters&&e.gutters]}})(U(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{position:"relative",transition:t.transitions.create(["margin"],e),overflowAnchor:"none","&::before":{position:"absolute",left:0,top:-1,right:0,height:1,content:'""',opacity:1,backgroundColor:(t.vars||t).palette.divider,transition:t.transitions.create(["opacity","background-color"],e)},"&:first-of-type":{"&::before":{display:"none"}},[`&.${To.expanded}`]:{"&::before":{opacity:0},"&:first-of-type":{marginTop:0},"&:last-of-type":{marginBottom:0},"& + &":{"&::before":{display:"none"}}},[`&.${To.disabled}`]:{backgroundColor:(t.vars||t).palette.action.disabledBackground}}}),U(({theme:t})=>({variants:[{props:e=>!e.square,style:{borderRadius:0,"&:first-of-type":{borderTopLeftRadius:(t.vars||t).shape.borderRadius,borderTopRightRadius:(t.vars||t).shape.borderRadius},"&:last-of-type":{borderBottomLeftRadius:(t.vars||t).shape.borderRadius,borderBottomRightRadius:(t.vars||t).shape.borderRadius,"@supports (-ms-ime-align: auto)":{borderBottomLeftRadius:0,borderBottomRightRadius:0}}}},{props:e=>!e.disableGutters,style:{[`&.${To.expanded}`]:{margin:"16px 0"}}}]}))),oi=S("h3",{name:"MuiAccordion",slot:"Heading",overridesResolver:(t,e)=>e.heading})({all:"unset"}),Im=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordion"}),{children:n,className:s,defaultExpanded:a=!1,disabled:i=!1,disableGutters:l=!1,expanded:c,onChange:p,square:f=!1,slots:v={},slotProps:m={},TransitionComponent:y,TransitionProps:g,...h}=r,[b,x]=ue({controlled:c,default:a,name:"Accordion",state:"expanded"}),C=u.useCallback(D=>{x(!b),p&&p(D,!b)},[b,p,x]),[R,...P]=u.Children.toArray(n),N=u.useMemo(()=>({expanded:b,disabled:i,disableGutters:l,toggle:C}),[b,i,l,C]),$={...r,square:f,disabled:i,disableGutters:l,expanded:b},A=ti($),k={transition:y,...v},I={transition:g,...m},F={slots:k,slotProps:I},[L,w]=V("root",{elementType:ei,externalForwardedProps:{...F,...h},className:j(A.root,s),shouldForwardComponentProp:!0,ownerState:$,ref:o,additionalProps:{square:f}}),[M,H]=V("heading",{elementType:oi,externalForwardedProps:F,className:A.heading,ownerState:$}),[z,Q]=V("transition",{elementType:vo,externalForwardedProps:F,ownerState:$});return d.jsxs(L,{...w,children:[d.jsx(M,{...H,children:d.jsx(An.Provider,{value:N,children:R})}),d.jsx(z,{in:b,timeout:"auto",...Q,children:d.jsx("div",{"aria-labelledby":R.props.id,id:R.props["aria-controls"],role:"region",className:A.region,children:P})})]})});function ri(t){return K("MuiAccordionActions",t)}const Mm=Z("MuiAccordionActions",["root","spacing"]),ni=t=>{const{classes:e,disableSpacing:o}=t;return q({root:["root",!o&&"spacing"]},ri,e)},si=S("div",{name:"MuiAccordionActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",variants:[{props:t=>!t.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),Am=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordionActions"}),{className:n,disableSpacing:s=!1,...a}=r,i={...r,disableSpacing:s},l=ni(i);return d.jsx(si,{className:j(l.root,n),ref:o,ownerState:i,...a})});function ai(t){return K("MuiAccordionDetails",t)}const Lm=Z("MuiAccordionDetails",["root"]),ii=t=>{const{classes:e}=t;return q({root:["root"]},ai,e)},li=S("div",{name:"MuiAccordionDetails",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({padding:t.spacing(1,2,2)}))),Bm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordionDetails"}),{className:n,...s}=r,a=r,i=ii(a);return d.jsx(li,{className:j(i.root,n),ref:o,ownerState:a,...s})});function ci(t){return K("MuiAccordionSummary",t)}const qe=Z("MuiAccordionSummary",["root","expanded","focusVisible","disabled","gutters","contentGutters","content","expandIconWrapper"]),pi=t=>{const{classes:e,expanded:o,disabled:r,disableGutters:n}=t;return q({root:["root",o&&"expanded",r&&"disabled",!n&&"gutters"],focusVisible:["focusVisible"],content:["content",o&&"expanded",!n&&"contentGutters"],expandIconWrapper:["expandIconWrapper",o&&"expanded"]},ci,e)},di=S(fe,{name:"MuiAccordionSummary",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>{const e={duration:t.transitions.duration.shortest};return{display:"flex",width:"100%",minHeight:48,padding:t.spacing(0,2),transition:t.transitions.create(["min-height","background-color"],e),[`&.${qe.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${qe.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},[`&:hover:not(.${qe.disabled})`]:{cursor:"pointer"},variants:[{props:o=>!o.disableGutters,style:{[`&.${qe.expanded}`]:{minHeight:64}}}]}})),ui=S("span",{name:"MuiAccordionSummary",slot:"Content",overridesResolver:(t,e)=>e.content})(U(({theme:t})=>({display:"flex",textAlign:"start",flexGrow:1,margin:"12px 0",variants:[{props:e=>!e.disableGutters,style:{transition:t.transitions.create(["margin"],{duration:t.transitions.duration.shortest}),[`&.${qe.expanded}`]:{margin:"20px 0"}}}]}))),fi=S("span",{name:"MuiAccordionSummary",slot:"ExpandIconWrapper",overridesResolver:(t,e)=>e.expandIconWrapper})(U(({theme:t})=>({display:"flex",color:(t.vars||t).palette.action.active,transform:"rotate(0deg)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),[`&.${qe.expanded}`]:{transform:"rotate(180deg)"}}))),Nm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAccordionSummary"}),{children:n,className:s,expandIcon:a,focusVisibleClassName:i,onClick:l,slots:c,slotProps:p,...f}=r,{disabled:v=!1,disableGutters:m,expanded:y,toggle:g}=u.useContext(An),h=I=>{g&&g(I),l&&l(I)},b={...r,expanded:y,disabled:v,disableGutters:m},x=pi(b),C={slots:c,slotProps:p},[R,P]=V("root",{ref:o,shouldForwardComponentProp:!0,className:j(x.root,s),elementType:di,externalForwardedProps:{...C,...f},ownerState:b,additionalProps:{focusRipple:!1,disableRipple:!0,disabled:v,"aria-expanded":y,focusVisibleClassName:j(x.focusVisible,i)},getSlotProps:I=>({...I,onClick:F=>{var L;(L=I.onClick)==null||L.call(I,F),h(F)}})}),[N,$]=V("content",{className:x.content,elementType:ui,externalForwardedProps:C,ownerState:b}),[A,k]=V("expandIconWrapper",{className:x.expandIconWrapper,elementType:fi,externalForwardedProps:C,ownerState:b});return d.jsxs(R,{...P,children:[d.jsx(N,{...$,children:n}),a&&d.jsx(A,{...k,children:a})]})});function gi(t){return K("MuiAlert",t)}const Vr=Z("MuiAlert",["root","action","icon","message","filled","colorSuccess","colorInfo","colorWarning","colorError","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]),mi=Ht(d.jsx("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),bi=Ht(d.jsx("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),vi=Ht(d.jsx("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),yi=Ht(d.jsx("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),Ln=Ht(d.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),hi=t=>{const{variant:e,color:o,severity:r,classes:n}=t,s={root:["root",`color${T(o||r)}`,`${e}${T(o||r)}`,`${e}`],icon:["icon"],message:["message"],action:["action"]};return q(s,gi,n)},xi=S(we,{name:"MuiAlert",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`${o.variant}${T(o.color||o.severity)}`]]}})(U(({theme:t})=>{const e=t.palette.mode==="light"?De:Ee,o=t.palette.mode==="light"?Ee:De;return{...t.typography.body2,backgroundColor:"transparent",display:"flex",padding:"6px 16px",variants:[...Object.entries(t.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"standard"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),backgroundColor:t.vars?t.vars.palette.Alert[`${r}StandardBg`]:o(t.palette[r].light,.9),[`& .${Vr.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(Ft(["light"])).map(([r])=>({props:{colorSeverity:r,variant:"outlined"},style:{color:t.vars?t.vars.palette.Alert[`${r}Color`]:e(t.palette[r].light,.6),border:`1px solid ${(t.vars||t).palette[r].light}`,[`& .${Vr.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette[r].main}}})),...Object.entries(t.palette).filter(Ft(["dark"])).map(([r])=>({props:{colorSeverity:r,variant:"filled"},style:{fontWeight:t.typography.fontWeightMedium,...t.vars?{color:t.vars.palette.Alert[`${r}FilledColor`],backgroundColor:t.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:t.palette.mode==="dark"?t.palette[r].dark:t.palette[r].main,color:t.palette.getContrastText(t.palette[r].main)}}}))]}})),Ci=S("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(t,e)=>e.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),Si=S("div",{name:"MuiAlert",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),wi=S("div",{name:"MuiAlert",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),Gr={success:d.jsx(mi,{fontSize:"inherit"}),warning:d.jsx(bi,{fontSize:"inherit"}),error:d.jsx(vi,{fontSize:"inherit"}),info:d.jsx(yi,{fontSize:"inherit"})},Om=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAlert"}),{action:n,children:s,className:a,closeText:i="Close",color:l,components:c={},componentsProps:p={},icon:f,iconMapping:v=Gr,onClose:m,role:y="alert",severity:g="success",slotProps:h={},slots:b={},variant:x="standard",...C}=r,R={...r,color:l,severity:g,variant:x,colorSeverity:l||g},P=hi(R),N={slots:{closeButton:c.CloseButton,closeIcon:c.CloseIcon,...b},slotProps:{...p,...h}},[$,A]=V("root",{ref:o,shouldForwardComponentProp:!0,className:j(P.root,a),elementType:xi,externalForwardedProps:{...N,...C},ownerState:R,additionalProps:{role:y,elevation:0}}),[k,I]=V("icon",{className:P.icon,elementType:Ci,externalForwardedProps:N,ownerState:R}),[F,L]=V("message",{className:P.message,elementType:Si,externalForwardedProps:N,ownerState:R}),[w,M]=V("action",{className:P.action,elementType:wi,externalForwardedProps:N,ownerState:R}),[H,z]=V("closeButton",{elementType:Oe,externalForwardedProps:N,ownerState:R}),[Q,D]=V("closeIcon",{elementType:Ln,externalForwardedProps:N,ownerState:R});return d.jsxs($,{...A,children:[f!==!1?d.jsx(k,{...I,children:f||v[g]||Gr[g]}):null,d.jsx(F,{...L,children:s}),n!=null?d.jsx(w,{...M,children:n}):null,n==null&&m?d.jsx(w,{...M,children:d.jsx(H,{size:"small","aria-label":i,title:i,color:"inherit",onClick:m,...z,children:d.jsx(Q,{fontSize:"small",...D})})}):null]})});function Ri(t){return K("MuiAlertTitle",t)}const zm=Z("MuiAlertTitle",["root"]),$i=t=>{const{classes:e}=t;return q({root:["root"]},Ri,e)},Pi=S(re,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({fontWeight:t.typography.fontWeightMedium,marginTop:-2}))),jm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAlertTitle"}),{className:n,...s}=r,a=r,i=$i(a);return d.jsx(Pi,{gutterBottom:!0,component:"div",ownerState:a,ref:o,className:j(i.root,n),...s})});function ki(t){return K("MuiAppBar",t)}const Dm=Z("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]),Ti=t=>{const{color:e,position:o,classes:r}=t,n={root:["root",`color${T(e)}`,`position${T(o)}`]};return q(n,ki,r)},_r=(t,e)=>t?`${t==null?void 0:t.replace(")","")}, ${e})`:e,Ii=S(we,{name:"MuiAppBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${T(o.position)}`],e[`color${T(o.color)}`]]}})(U(({theme:t})=>({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(t.vars||t).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit"}},{props:{color:"default"},style:{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[100],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[100]),...t.applyStyles("dark",{"--AppBar-background":t.vars?t.vars.palette.AppBar.defaultBg:t.palette.grey[900],"--AppBar-color":t.vars?t.vars.palette.text.primary:t.palette.getContrastText(t.palette.grey[900])})}},...Object.entries(t.palette).filter(Ft(["contrastText"])).map(([e])=>({props:{color:e},style:{"--AppBar-background":(t.vars??t).palette[e].main,"--AppBar-color":(t.vars??t).palette[e].contrastText}})),{props:e=>e.enableColorOnDark===!0&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:e=>e.enableColorOnDark===!1&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundColor:t.vars?_r(t.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:t.vars?_r(t.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...t.applyStyles("dark",{backgroundImage:"none"})}}]}))),Em=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAppBar"}),{className:n,color:s="primary",enableColorOnDark:a=!1,position:i="fixed",...l}=r,c={...r,color:s,position:i,enableColorOnDark:a},p=Ti(c);return d.jsx(Ii,{square:!0,component:"header",ownerState:c,elevation:4,className:j(p.root,n,i==="fixed"&&"mui-fixed"),ref:o,...l})});function qr(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function Mi(t={}){const{ignoreAccents:e=!0,ignoreCase:o=!0,limit:r,matchFrom:n="any",stringify:s,trim:a=!1}=t;return(i,{inputValue:l,getOptionLabel:c})=>{let p=a?l.trim():l;o&&(p=p.toLowerCase()),e&&(p=qr(p));const f=p?i.filter(v=>{let m=(s||c)(v);return o&&(m=m.toLowerCase()),e&&(m=qr(m)),n==="start"?m.startsWith(p):m.includes(p)}):i;return typeof r=="number"?f.slice(0,r):f}}const Ai=Mi(),Li=5,Bi=t=>{var e;return t.current!==null&&((e=t.current.parentElement)==null?void 0:e.contains(document.activeElement))},Ni=[];function Xr(t,e,o){if(e||t==null)return"";const r=o(t);return typeof r=="string"?r:""}function Oi(t){const{unstable_isActiveElementInListbox:e=Bi,unstable_classNamePrefix:o="Mui",autoComplete:r=!1,autoHighlight:n=!1,autoSelect:s=!1,blurOnSelect:a=!1,clearOnBlur:i=!t.freeSolo,clearOnEscape:l=!1,componentName:c="useAutocomplete",defaultValue:p=t.multiple?Ni:null,disableClearable:f=!1,disableCloseOnSelect:v=!1,disabled:m,disabledItemsFocusable:y=!1,disableListWrap:g=!1,filterOptions:h=Ai,filterSelectedOptions:b=!1,freeSolo:x=!1,getOptionDisabled:C,getOptionKey:R,getOptionLabel:P=O=>O.label??O,groupBy:N,handleHomeEndKeys:$=!t.freeSolo,id:A,includeInputInList:k=!1,inputValue:I,isOptionEqualToValue:F=(O,B)=>O===B,multiple:L=!1,onChange:w,onClose:M,onHighlightChange:H,onInputChange:z,onOpen:Q,open:D,openOnFocus:et=!1,options:pt,readOnly:_=!1,selectOnFocus:wt=!t.freeSolo,value:Lt}=t,Rt=Ue(A);let lt=P;lt=O=>{const B=P(O);return typeof B!="string"?String(B):B};const rt=u.useRef(!1),W=u.useRef(!0),it=u.useRef(null),dt=u.useRef(null),[bt,$t]=u.useState(null),[nt,ct]=u.useState(-1),vt=n?0:-1,yt=u.useRef(vt),Ot=u.useRef(Xr(p??Lt,L,lt)).current,[Y,tt]=ue({controlled:Lt,default:p,name:c}),[st,xt]=ue({controlled:I,default:Ot,name:c,state:"inputValue"}),[ft,Pt]=u.useState(!1),It=u.useCallback((O,B,at)=>{if(!(L?Y.length!(b&&(L?Y:[Y]).some(B=>B!==null&&F(O,B)))),{inputValue:gt&&G?"":st,getOptionLabel:lt}):[],ht=Br({filteredOptions:J,value:Y,inputValue:st});u.useEffect(()=>{const O=Y!==ht.value;ft&&!O||x&&!O||It(null,Y,"reset")},[Y,It,ft,ht.value,x]);const Dt=Vt&&J.length>0&&!_,At=ne(O=>{O===-1?it.current.focus():bt.querySelector(`[data-tag-index="${O}"]`).focus()});u.useEffect(()=>{L&&nt>Y.length-1&&(ct(-1),At(-1))},[Y,L,nt,At]);function zt(O,B){if(!dt.current||O<0||O>=J.length)return-1;let at=O;for(;;){const Ct=dt.current.querySelector(`[data-option-index="${at}"]`),Mt=y?!1:!Ct||Ct.disabled||Ct.getAttribute("aria-disabled")==="true";if(Ct&&Ct.hasAttribute("tabindex")&&!Mt)return at;if(B==="next"?at=(at+1)%J.length:at=(at-1+J.length)%J.length,at===O)return-1}}const qt=ne(({event:O,index:B,reason:at})=>{if(yt.current=B,B===-1?it.current.removeAttribute("aria-activedescendant"):it.current.setAttribute("aria-activedescendant",`${Rt}-option-${B}`),H&&["mouse","keyboard","touch"].includes(at)&&H(O,B===-1?null:J[B],at),!dt.current)return;const Ct=dt.current.querySelector(`[role="option"].${o}-focused`);Ct&&(Ct.classList.remove(`${o}-focused`),Ct.classList.remove(`${o}-focusVisible`));let Mt=dt.current;if(dt.current.getAttribute("role")!=="listbox"&&(Mt=dt.current.parentElement.querySelector('[role="listbox"]')),!Mt)return;if(B===-1){Mt.scrollTop=0;return}const jt=dt.current.querySelector(`[data-option-index="${B}"]`);if(jt&&(jt.classList.add(`${o}-focused`),at==="keyboard"&&jt.classList.add(`${o}-focusVisible`),Mt.scrollHeight>Mt.clientHeight&&at!=="mouse"&&at!=="touch")){const Gt=jt,ie=Mt.clientHeight+Mt.scrollTop,nr=Gt.offsetTop+Gt.offsetHeight;nr>ie?Mt.scrollTop=nr-Mt.clientHeight:Gt.offsetTop-Gt.offsetHeight*(N?1.3:0){if(!ut)return;const jt=zt((()=>{const Gt=J.length-1;if(B==="reset")return vt;if(B==="start")return 0;if(B==="end")return Gt;const ie=yt.current+B;return ie<0?ie===-1&&k?-1:g&&yt.current!==-1||Math.abs(B)>1?0:Gt:ie>Gt?ie===Gt+1&&k?-1:g||Math.abs(B)>1?Gt:0:ie})(),at);if(qt({index:jt,reason:Ct,event:O}),r&&B!=="reset")if(jt===-1)it.current.value=st;else{const Gt=lt(J[jt]);it.current.value=Gt,Gt.toLowerCase().indexOf(st.toLowerCase())===0&&st.length>0&&it.current.setSelectionRange(st.length,Gt.length)}}),ye=()=>{const O=(B,at)=>{const Ct=B?lt(B):"",Mt=at?lt(at):"";return Ct===Mt};if(yt.current!==-1&&ht.filteredOptions&&ht.filteredOptions.length!==J.length&&ht.inputValue===st&&(L?Y.length===ht.value.length&&ht.value.every((B,at)=>lt(Y[at])===lt(B)):O(ht.value,Y))){const B=ht.filteredOptions[yt.current];if(B)return J.findIndex(at=>lt(at)===lt(B))}return-1},ae=u.useCallback(()=>{if(!ut)return;const O=ye();if(O!==-1){yt.current=O;return}const B=L?Y[0]:Y;if(J.length===0||B==null){Xt({diff:"reset"});return}if(dt.current){if(B!=null){const at=J[yt.current];if(L&&at&&Y.findIndex(Mt=>F(at,Mt))!==-1)return;const Ct=J.findIndex(Mt=>F(Mt,B));Ct===-1?Xt({diff:"reset"}):qt({index:Ct});return}if(yt.current>=J.length-1){qt({index:J.length-1});return}qt({index:yt.current})}},[J.length,L?!1:Y,b,Xt,qt,ut,st,L]),he=ne(O=>{Ms(dt,O),O&&ae()});u.useEffect(()=>{ae()},[ae]);const Yt=O=>{Vt||(E(!0),ot(!0),Q&&Q(O))},ce=(O,B)=>{Vt&&(E(!1),M&&M(O,B))},Bt=(O,B,at,Ct)=>{if(L){if(Y.length===B.length&&Y.every((Mt,jt)=>Mt===B[jt]))return}else if(Y===B)return;w&&w(O,B,at,Ct),tt(B)},Et=u.useRef(!1),Kt=(O,B,at="selectOption",Ct="options")=>{let Mt=at,jt=B;if(L){jt=Array.isArray(Y)?Y.slice():[];const Gt=jt.findIndex(ie=>F(B,ie));Gt===-1?jt.push(B):Ct!=="freeSolo"&&(jt.splice(Gt,1),Mt="removeOption")}It(O,jt,Mt),Bt(O,jt,Mt,{option:B}),!v&&(!O||!O.ctrlKey&&!O.metaKey)&&ce(O,Mt),(a===!0||a==="touch"&&Et.current||a==="mouse"&&!Et.current)&&it.current.blur()};function pe(O,B){if(O===-1)return-1;let at=O;for(;;){if(B==="next"&&at===Y.length||B==="previous"&&at===-1)return-1;const Ct=bt.querySelector(`[data-tag-index="${at}"]`);if(!Ct||!Ct.hasAttribute("tabindex")||Ct.disabled||Ct.getAttribute("aria-disabled")==="true")at+=B==="next"?1:-1;else return at}}const Zt=(O,B)=>{if(!L)return;st===""&&ce(O,"toggleInput");let at=nt;nt===-1?st===""&&B==="previous"&&(at=Y.length-1):(at+=B==="next"?1:-1,at<0&&(at=0),at===Y.length&&(at=-1)),at=pe(at,B),ct(at),At(at)},mt=O=>{rt.current=!0,xt(""),z&&z(O,"","clear"),Bt(O,L?[]:null,"clear")},te=O=>B=>{if(O.onKeyDown&&O.onKeyDown(B),!B.defaultMuiPrevented&&(nt!==-1&&!["ArrowLeft","ArrowRight"].includes(B.key)&&(ct(-1),At(-1)),B.which!==229))switch(B.key){case"Home":ut&&$&&(B.preventDefault(),Xt({diff:"start",direction:"next",reason:"keyboard",event:B}));break;case"End":ut&&$&&(B.preventDefault(),Xt({diff:"end",direction:"previous",reason:"keyboard",event:B}));break;case"PageUp":B.preventDefault(),Xt({diff:-5,direction:"previous",reason:"keyboard",event:B}),Yt(B);break;case"PageDown":B.preventDefault(),Xt({diff:Li,direction:"next",reason:"keyboard",event:B}),Yt(B);break;case"ArrowDown":B.preventDefault(),Xt({diff:1,direction:"next",reason:"keyboard",event:B}),Yt(B);break;case"ArrowUp":B.preventDefault(),Xt({diff:-1,direction:"previous",reason:"keyboard",event:B}),Yt(B);break;case"ArrowLeft":Zt(B,"previous");break;case"ArrowRight":Zt(B,"next");break;case"Enter":if(yt.current!==-1&&ut){const at=J[yt.current],Ct=C?C(at):!1;if(B.preventDefault(),Ct)return;Kt(B,at,"selectOption"),r&&it.current.setSelectionRange(it.current.value.length,it.current.value.length)}else x&&st!==""&>===!1&&(L&&B.preventDefault(),Kt(B,st,"createOption","freeSolo"));break;case"Escape":ut?(B.preventDefault(),B.stopPropagation(),ce(B,"escape")):l&&(st!==""||L&&Y.length>0)&&(B.preventDefault(),B.stopPropagation(),mt(B));break;case"Backspace":if(L&&!_&&st===""&&Y.length>0){const at=nt===-1?Y.length-1:nt,Ct=Y.slice();Ct.splice(at,1),Bt(B,Ct,"removeOption",{option:Y[at]})}break;case"Delete":if(L&&!_&&st===""&&Y.length>0&&nt!==-1){const at=nt,Ct=Y.slice();Ct.splice(at,1),Bt(B,Ct,"removeOption",{option:Y[at]})}break}},Ve=O=>{Pt(!0),et&&!rt.current&&Yt(O)},Me=O=>{if(e(dt)){it.current.focus();return}Pt(!1),W.current=!0,rt.current=!1,s&&yt.current!==-1&&ut?Kt(O,J[yt.current],"blur"):s&&x&&st!==""?Kt(O,st,"blur","freeSolo"):i&&It(O,Y,"blur"),ce(O,"blur")},Je=O=>{const B=O.target.value;st!==B&&(xt(B),ot(!1),z&&z(O,B,"input")),B===""?!f&&!L&&Bt(O,null,"clear"):Yt(O)},Qe=O=>{const B=Number(O.currentTarget.getAttribute("data-option-index"));yt.current!==B&&qt({event:O,index:B,reason:"mouse"})},tr=O=>{qt({event:O,index:Number(O.currentTarget.getAttribute("data-option-index")),reason:"touch"}),Et.current=!0},er=O=>{const B=Number(O.currentTarget.getAttribute("data-option-index"));Kt(O,J[B],"selectOption"),Et.current=!1},or=O=>B=>{const at=Y.slice();at.splice(O,1),Bt(B,at,"removeOption",{option:Y[O]})},rr=O=>{Vt?ce(O,"toggleInput"):Yt(O)},to=O=>{O.currentTarget.contains(O.target)&&O.target.getAttribute("id")!==Rt&&O.preventDefault()},Jt=O=>{O.currentTarget.contains(O.target)&&(it.current.focus(),wt&&W.current&&it.current.selectionEnd-it.current.selectionStart===0&&it.current.select(),W.current=!1)},_t=O=>{!m&&(st===""||!Vt)&&rr(O)};let me=x&&st.length>0;me=me||(L?Y.length>0:Y!==null);let wo=J;return N&&(wo=J.reduce((O,B,at)=>{const Ct=N(B);return O.length>0&&O[O.length-1].group===Ct?O[O.length-1].options.push(B):O.push({key:at,index:at,group:Ct,options:[B]}),O},[])),m&&ft&&Me(),{getRootProps:(O={})=>({...O,onKeyDown:te(O),onMouseDown:to,onClick:Jt}),getInputLabelProps:()=>({id:`${Rt}-label`,htmlFor:Rt}),getInputProps:()=>({id:Rt,value:st,onBlur:Me,onFocus:Ve,onChange:Je,onMouseDown:_t,"aria-activedescendant":ut?"":null,"aria-autocomplete":r?"both":"list","aria-controls":Dt?`${Rt}-listbox`:void 0,"aria-expanded":Dt,autoComplete:"off",ref:it,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:m}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:mt}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:rr}),getTagProps:({index:O})=>({key:O,"data-tag-index":O,tabIndex:-1,...!_&&{onDelete:or(O)}}),getListboxProps:()=>({role:"listbox",id:`${Rt}-listbox`,"aria-labelledby":`${Rt}-label`,ref:he,onMouseDown:O=>{O.preventDefault()}}),getOptionProps:({index:O,option:B})=>{const at=(L?Y:[Y]).some(Mt=>Mt!=null&&F(B,Mt)),Ct=C?C(B):!1;return{key:(R==null?void 0:R(B))??lt(B),tabIndex:-1,role:"option",id:`${Rt}-option-${O}`,onMouseMove:Qe,onClick:er,onTouchStart:tr,"data-option-index":O,"aria-disabled":Ct,"aria-selected":at}},id:Rt,inputValue:st,value:Y,dirty:me,expanded:ut&&bt,popupOpen:ut,focused:ft||nt!==-1,anchorEl:bt,setAnchorEl:$t,focusedTag:nt,groupedOptions:wo}}function zi(t){return K("MuiListSubheader",t)}const Fm=Z("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]),ji=t=>{const{classes:e,color:o,disableGutters:r,inset:n,disableSticky:s}=t,a={root:["root",o!=="default"&&`color${T(o)}`,!r&&"gutters",n&&"inset",!s&&"sticky"]};return q(a,zi,e)},Di=S("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="default"&&e[`color${T(o.color)}`],!o.disableGutters&&e.gutters,o.inset&&e.inset,!o.disableSticky&&e.sticky]}})(U(({theme:t})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(t.vars||t).palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(t.vars||t).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:72}},{props:({ownerState:e})=>!e.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(t.vars||t).palette.background.paper}}]}))),hr=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListSubheader"}),{className:n,color:s="default",component:a="li",disableGutters:i=!1,disableSticky:l=!1,inset:c=!1,...p}=r,f={...r,color:s,component:a,disableGutters:i,disableSticky:l,inset:c},v=ji(f);return d.jsx(Di,{as:a,className:j(v.root,n),ref:o,ownerState:f,...p})});hr&&(hr.muiSkipListHighlight=!0);function Ei(t){return K("MuiAutocomplete",t)}const kt=Z("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var Yr,Kr;const Fi=t=>{const{classes:e,disablePortal:o,expanded:r,focused:n,fullWidth:s,hasClearIcon:a,hasPopupIcon:i,inputFocused:l,popupOpen:c,size:p}=t,f={root:["root",r&&"expanded",n&&"focused",s&&"fullWidth",a&&"hasClearIcon",i&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${T(p)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",c&&"popupIndicatorOpen"],popper:["popper",o&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return q(f,Ei,e)},Ui=S("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{fullWidth:r,hasClearIcon:n,hasPopupIcon:s,inputFocused:a,size:i}=o;return[{[`& .${kt.tag}`]:e.tag},{[`& .${kt.tag}`]:e[`tagSize${T(i)}`]},{[`& .${kt.inputRoot}`]:e.inputRoot},{[`& .${kt.input}`]:e.input},{[`& .${kt.input}`]:a&&e.inputFocused},e.root,r&&e.fullWidth,s&&e.hasPopupIcon,n&&e.hasClearIcon]}})({[`&.${kt.focused} .${kt.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${kt.clearIndicator}`]:{visibility:"visible"}},[`& .${kt.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${kt.inputRoot}`]:{[`.${kt.hasPopupIcon}&, .${kt.hasClearIcon}&`]:{paddingRight:30},[`.${kt.hasPopupIcon}.${kt.hasClearIcon}&`]:{paddingRight:56},[`& .${kt.input}`]:{width:0,minWidth:30}},[`& .${sr.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${sr.root}.${Ae.sizeSmall}`]:{[`& .${sr.input}`]:{padding:"2px 4px 3px 0"}},[`& .${Er.root}`]:{padding:9,[`.${kt.hasPopupIcon}&, .${kt.hasClearIcon}&`]:{paddingRight:39},[`.${kt.hasPopupIcon}.${kt.hasClearIcon}&`]:{paddingRight:65},[`& .${kt.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${kt.endAdornment}`]:{right:9}},[`& .${Er.root}.${Ae.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${kt.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${Ge.root}`]:{paddingTop:19,paddingLeft:8,[`.${kt.hasPopupIcon}&, .${kt.hasClearIcon}&`]:{paddingRight:39},[`.${kt.hasPopupIcon}.${kt.hasClearIcon}&`]:{paddingRight:65},[`& .${Ge.input}`]:{padding:"7px 4px"},[`& .${kt.endAdornment}`]:{right:9}},[`& .${Ge.root}.${Ae.sizeSmall}`]:{paddingBottom:1,[`& .${Ge.input}`]:{padding:"2.5px 4px"}},[`& .${Ae.hiddenLabel}`]:{paddingTop:8},[`& .${Ge.root}.${Ae.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${kt.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${Ge.root}.${Ae.hiddenLabel}.${Ae.sizeSmall}`]:{[`& .${kt.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${kt.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${kt.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${kt.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${kt.inputRoot}`]:{flexWrap:"wrap"}}}]}),Wi=S("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(t,e)=>e.endAdornment})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),Hi=S(Oe,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(t,e)=>e.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),Vi=S(Oe,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popupIndicator,o.popupOpen&&e.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),Gi=S(Ko,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${kt.option}`]:e.option},e.popper,o.disablePortal&&e.popperDisablePortal]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),_i=S(we,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(t,e)=>e.paper})(U(({theme:t})=>({...t.typography.body1,overflow:"auto"}))),qi=S("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(t,e)=>e.loading})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),Xi=S("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(t,e)=>e.noOptions})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"}))),Yi=S("ul",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(t,e)=>e.listbox})(U(({theme:t})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${kt.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[t.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${kt.focused}`]:{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${kt.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${kt.focused}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${kt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}}}))),Ki=S(hr,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(t,e)=>e.groupLabel})(U(({theme:t})=>({backgroundColor:(t.vars||t).palette.background.paper,top:-8}))),Zi=S("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(t,e)=>e.groupUl})({padding:0,[`& .${kt.option}`]:{paddingLeft:24}}),Um=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAutocomplete"}),{autoComplete:n=!1,autoHighlight:s=!1,autoSelect:a=!1,blurOnSelect:i=!1,ChipProps:l,className:c,clearIcon:p=Yr||(Yr=d.jsx(Ln,{fontSize:"small"})),clearOnBlur:f=!r.freeSolo,clearOnEscape:v=!1,clearText:m="Clear",closeText:y="Close",componentsProps:g,defaultValue:h=r.multiple?[]:null,disableClearable:b=!1,disableCloseOnSelect:x=!1,disabled:C=!1,disabledItemsFocusable:R=!1,disableListWrap:P=!1,disablePortal:N=!1,filterOptions:$,filterSelectedOptions:A=!1,forcePopupIcon:k="auto",freeSolo:I=!1,fullWidth:F=!1,getLimitTagsText:L=Nt=>`+${Nt}`,getOptionDisabled:w,getOptionKey:M,getOptionLabel:H,isOptionEqualToValue:z,groupBy:Q,handleHomeEndKeys:D=!r.freeSolo,id:et,includeInputInList:pt=!1,inputValue:_,limitTags:wt=-1,ListboxComponent:Lt,ListboxProps:Rt,loading:lt=!1,loadingText:rt="Loading…",multiple:W=!1,noOptionsText:it="No options",onChange:dt,onClose:bt,onHighlightChange:$t,onInputChange:nt,onOpen:ct,open:vt,openOnFocus:yt=!1,openText:Ot="Open",options:Y,PaperComponent:tt,PopperComponent:st,popupIcon:xt=Kr||(Kr=d.jsx(Rn,{})),readOnly:ft=!1,renderGroup:Pt,renderInput:It,renderOption:Vt,renderTags:E,selectOnFocus:G=!r.freeSolo,size:ot="medium",slots:gt={},slotProps:ut={},value:J,...ht}=r,{getRootProps:Dt,getInputProps:At,getInputLabelProps:zt,getPopupIndicatorProps:qt,getClearProps:Xt,getTagProps:ye,getListboxProps:ae,getOptionProps:he,value:Yt,dirty:ce,expanded:Bt,id:Et,popupOpen:Kt,focused:pe,focusedTag:Zt,anchorEl:mt,setAnchorEl:te,inputValue:Ve,groupedOptions:Me}=Oi({...r,componentName:"Autocomplete"}),Je=!b&&!C&&ce&&!ft,Qe=(!I||k===!0)&&k!==!1,{onMouseDown:tr}=At(),{ref:er,...or}=ae(),to=H||(Nt=>Nt.label??Nt),Jt={...r,disablePortal:N,expanded:Bt,focused:pe,fullWidth:F,getOptionLabel:to,hasClearIcon:Je,hasPopupIcon:Qe,inputFocused:Zt===-1,popupOpen:Kt,size:ot},_t=Fi(Jt),me={slots:{paper:tt,popper:st,...gt},slotProps:{chip:l,listbox:Rt,...g,...ut}},[wo,O]=V("listbox",{elementType:Yi,externalForwardedProps:me,ownerState:Jt,className:_t.listbox,additionalProps:or,ref:er}),[B,at]=V("paper",{elementType:we,externalForwardedProps:me,ownerState:Jt,className:_t.paper}),[Ct,Mt]=V("popper",{elementType:Ko,externalForwardedProps:me,ownerState:Jt,className:_t.popper,additionalProps:{disablePortal:N,style:{width:mt?mt.clientWidth:null},role:"presentation",anchorEl:mt,open:Kt}});let jt;if(W&&Yt.length>0){const Nt=be=>({className:_t.tag,disabled:C,...ye(be)});E?jt=E(Yt,Nt,Jt):jt=Yt.map((be,Re)=>{const{key:eo,...es}=Nt({index:Re});return d.jsx(As,{label:to(be),size:ot,...es,...me.slotProps.chip},eo)})}if(wt>-1&&Array.isArray(jt)){const Nt=jt.length-wt;!pe&&Nt>0&&(jt=jt.splice(0,wt),jt.push(d.jsx("span",{className:_t.tag,children:L(Nt)},jt.length)))}const ie=Pt||(Nt=>d.jsxs("li",{children:[d.jsx(Ki,{className:_t.groupLabel,ownerState:Jt,component:"div",children:Nt.group}),d.jsx(Zi,{className:_t.groupUl,ownerState:Jt,children:Nt.children})]},Nt.key)),ts=Vt||((Nt,be)=>{const{key:Re,...eo}=Nt;return d.jsx("li",{...eo,children:to(be)},Re)}),zr=(Nt,be)=>{const Re=he({option:Nt,index:be});return ts({...Re,className:_t.option},Nt,{selected:Re["aria-selected"],index:be,inputValue:Ve},Jt)},Ro=me.slotProps.clearIndicator,$o=me.slotProps.popupIndicator;return d.jsxs(u.Fragment,{children:[d.jsx(Ui,{ref:o,className:j(_t.root,c),ownerState:Jt,...Dt(ht),children:It({id:Et,disabled:C,fullWidth:!0,size:ot==="small"?"small":void 0,InputLabelProps:zt(),InputProps:{ref:te,className:_t.inputRoot,startAdornment:jt,onMouseDown:Nt=>{Nt.target===Nt.currentTarget&&tr(Nt)},...(Je||Qe)&&{endAdornment:d.jsxs(Wi,{className:_t.endAdornment,ownerState:Jt,children:[Je?d.jsx(Hi,{...Xt(),"aria-label":m,title:m,ownerState:Jt,...Ro,className:j(_t.clearIndicator,Ro==null?void 0:Ro.className),children:p}):null,Qe?d.jsx(Vi,{...qt(),disabled:C,"aria-label":Kt?y:Ot,title:Kt?y:Ot,ownerState:Jt,...$o,className:j(_t.popupIndicator,$o==null?void 0:$o.className),children:xt}):null]})}},inputProps:{className:_t.input,disabled:C,readOnly:ft,...At()}})}),mt?d.jsx(Gi,{as:Ct,...Mt,children:d.jsxs(_i,{as:B,...at,children:[lt&&Me.length===0?d.jsx(qi,{className:_t.loading,ownerState:Jt,children:rt}):null,Me.length===0&&!I&&!lt?d.jsx(Xi,{className:_t.noOptions,ownerState:Jt,role:"presentation",onMouseDown:Nt=>{Nt.preventDefault()},children:it}):null,Me.length>0?d.jsx(wo,{as:Lt,...O,children:Me.map((Nt,be)=>Q?ie({key:Nt.key,group:Nt.group,children:Nt.options.map((Re,eo)=>zr(Re,Nt.index+eo))}):zr(Nt,be))}):null]})}):null]})}),Ji=Ht(d.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");function Qi(t){return K("MuiAvatar",t)}const tl=Z("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]),el=t=>{const{classes:e,variant:o,colorDefault:r}=t;return q({root:["root",o,r&&"colorDefault"],img:["img"],fallback:["fallback"]},Qi,e)},ol=S("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],o.colorDefault&&e.colorDefault]}})(U(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none",variants:[{props:{variant:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"square"},style:{borderRadius:0}},{props:{colorDefault:!0},style:{color:(t.vars||t).palette.background.default,...t.vars?{backgroundColor:t.vars.palette.Avatar.defaultBg}:{backgroundColor:t.palette.grey[400],...t.applyStyles("dark",{backgroundColor:t.palette.grey[600]})}}}]}))),rl=S("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(t,e)=>e.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),nl=S(Ji,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(t,e)=>e.fallback})({width:"75%",height:"75%"});function sl({crossOrigin:t,referrerPolicy:e,src:o,srcSet:r}){const[n,s]=u.useState(!1);return u.useEffect(()=>{if(!o&&!r)return;s(!1);let a=!0;const i=new Image;return i.onload=()=>{a&&s("loaded")},i.onerror=()=>{a&&s("error")},i.crossOrigin=t,i.referrerPolicy=e,i.src=o,r&&(i.srcset=r),()=>{a=!1}},[t,e,o,r]),n}const al=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAvatar"}),{alt:n,children:s,className:a,component:i="div",slots:l={},slotProps:c={},imgProps:p,sizes:f,src:v,srcSet:m,variant:y="circular",...g}=r;let h=null;const b={...r,component:i,variant:y},x=sl({...p,...typeof c.img=="function"?c.img(b):c.img,src:v,srcSet:m}),C=v||m,R=C&&x!=="error";b.colorDefault=!R,delete b.ownerState;const P=el(b),[N,$]=V("img",{className:P.img,elementType:rl,externalForwardedProps:{slots:l,slotProps:{img:{...p,...c.img}}},additionalProps:{alt:n,src:v,srcSet:m,sizes:f},ownerState:b});return R?h=d.jsx(N,{...$}):s||s===0?h=s:C&&n?h=n[0]:h=d.jsx(nl,{ownerState:b,className:P.fallback}),d.jsx(ol,{as:i,className:j(P.root,a),ref:o,...g,ownerState:b,children:h})});function il(t){return K("MuiAvatarGroup",t)}const ll=Z("MuiAvatarGroup",["root","avatar"]),ir={small:-16,medium:-8},cl=t=>{const{classes:e}=t;return q({root:["root"],avatar:["avatar"]},il,e)},pl=S("div",{name:"MuiAvatarGroup",slot:"Root",overridesResolver:(t,e)=>[{[`& .${ll.avatar}`]:e.avatar},e.root]})(U(({theme:t})=>({display:"flex",flexDirection:"row-reverse",[`& .${tl.root}`]:{border:`2px solid ${(t.vars||t).palette.background.default}`,boxSizing:"content-box",marginLeft:"var(--AvatarGroup-spacing, -8px)","&:last-child":{marginLeft:0}}}))),Wm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiAvatarGroup"}),{children:n,className:s,component:a="div",componentsProps:i,max:l=5,renderSurplus:c,slotProps:p={},slots:f={},spacing:v="medium",total:m,variant:y="circular",...g}=r;let h=l<2?2:l;const b={...r,max:l,spacing:v,component:a,variant:y},x=cl(b),C=u.Children.toArray(n).filter(L=>u.isValidElement(L)),R=m||C.length;R===h&&(h+=1),h=Math.min(R+1,h);const P=Math.min(C.length,h-1),N=Math.max(R-h,R-P,0),$=c?c(N):`+${N}`;let A;b.spacing&&ir[b.spacing]!==void 0?A=ir[b.spacing]:b.spacing===0?A=0:A=-b.spacing||ir.medium;const k={slots:f,slotProps:{surplus:p.additionalAvatar??(i==null?void 0:i.additionalAvatar),...i,...p}},[I,F]=V("surplus",{elementType:al,externalForwardedProps:k,className:x.avatar,ownerState:b,additionalProps:{variant:y}});return d.jsxs(pl,{as:a,ownerState:b,className:j(x.root,s),ref:o,...g,style:{"--AvatarGroup-spacing":`${A}px`,...g.style},children:[N?d.jsx(I,{...F,children:$}):null,C.slice(0,P).reverse().map(L=>u.cloneElement(L,{className:j(L.props.className,x.avatar),variant:L.props.variant||y}))]})});function dl(t){const{badgeContent:e,invisible:o=!1,max:r=99,showZero:n=!1}=t,s=Br({badgeContent:e,max:r});let a=o;o===!1&&e===0&&!n&&(a=!0);const{badgeContent:i,max:l=r}=a?s:t,c=i&&Number(i)>l?`${l}+`:i;return{badgeContent:i,invisible:a,max:l,displayValue:c}}function ul(t){return K("MuiBadge",t)}const $e=Z("MuiBadge",["root","badge","dot","standard","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","invisible","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","overlapRectangular","overlapCircular","anchorOriginTopLeftCircular","anchorOriginTopLeftRectangular","anchorOriginTopRightCircular","anchorOriginTopRightRectangular","anchorOriginBottomLeftCircular","anchorOriginBottomLeftRectangular","anchorOriginBottomRightCircular","anchorOriginBottomRightRectangular"]),lr=10,cr=4,fl=t=>{const{color:e,anchorOrigin:o,invisible:r,overlap:n,variant:s,classes:a={}}=t,i={root:["root"],badge:["badge",s,r&&"invisible",`anchorOrigin${T(o.vertical)}${T(o.horizontal)}`,`anchorOrigin${T(o.vertical)}${T(o.horizontal)}${T(n)}`,`overlap${T(n)}`,e!=="default"&&`color${T(e)}`]};return q(i,ul,a)},gl=S("span",{name:"MuiBadge",slot:"Root",overridesResolver:(t,e)=>e.root})({position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0}),ml=S("span",{name:"MuiBadge",slot:"Badge",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.badge,e[o.variant],e[`anchorOrigin${T(o.anchorOrigin.vertical)}${T(o.anchorOrigin.horizontal)}${T(o.overlap)}`],o.color!=="default"&&e[`color${T(o.color)}`],o.invisible&&e.invisible]}})(U(({theme:t})=>({display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(12),minWidth:lr*2,lineHeight:1,padding:"0 6px",height:lr*2,borderRadius:lr,zIndex:1,transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.enteringScreen}),variants:[...Object.entries(t.palette).filter(Ft(["contrastText"])).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main,color:(t.vars||t).palette[e].contrastText}})),{props:{variant:"dot"},style:{borderRadius:cr,height:cr*2,minWidth:cr*2,padding:0}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="rectangular",style:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="rectangular",style:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="right"&&e.overlap==="circular",style:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(50%, 50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="top"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, -50%)"}}},{props:({ownerState:e})=>e.anchorOrigin.vertical==="bottom"&&e.anchorOrigin.horizontal==="left"&&e.overlap==="circular",style:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%",[`&.${$e.invisible}`]:{transform:"scale(0) translate(-50%, 50%)"}}},{props:{invisible:!0},style:{transition:t.transitions.create("transform",{easing:t.transitions.easing.easeInOut,duration:t.transitions.duration.leavingScreen})}}]})));function Zr(t){return{vertical:(t==null?void 0:t.vertical)??"top",horizontal:(t==null?void 0:t.horizontal)??"right"}}const Hm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiBadge"}),{anchorOrigin:n,className:s,classes:a,component:i,components:l={},componentsProps:c={},children:p,overlap:f="rectangular",color:v="default",invisible:m=!1,max:y=99,badgeContent:g,slots:h,slotProps:b,showZero:x=!1,variant:C="standard",...R}=r,{badgeContent:P,invisible:N,max:$,displayValue:A}=dl({max:y,invisible:m,badgeContent:g,showZero:x}),k=Br({anchorOrigin:Zr(n),color:v,overlap:f,variant:C,badgeContent:g}),I=N||P==null&&C!=="dot",{color:F=v,overlap:L=f,anchorOrigin:w,variant:M=C}=I?k:r,H=Zr(w),z=M!=="dot"?A:void 0,Q={...r,badgeContent:P,invisible:I,max:$,displayValue:z,showZero:x,anchorOrigin:H,color:F,overlap:L,variant:M},D=fl(Q),et={slots:{root:(h==null?void 0:h.root)??l.Root,badge:(h==null?void 0:h.badge)??l.Badge},slotProps:{root:(b==null?void 0:b.root)??c.root,badge:(b==null?void 0:b.badge)??c.badge}},[pt,_]=V("root",{elementType:gl,externalForwardedProps:{...et,...R},ownerState:Q,className:j(D.root,s),ref:o,additionalProps:{as:i}}),[wt,Lt]=V("badge",{elementType:ml,externalForwardedProps:et,ownerState:Q,className:D.badge});return d.jsxs(pt,{..._,children:[p,d.jsx(wt,{...Lt,children:z})]})});function bl(t){return K("MuiBottomNavigation",t)}const Vm=Z("MuiBottomNavigation",["root"]),vl=t=>{const{classes:e}=t;return q({root:["root"]},bl,e)},yl=S("div",{name:"MuiBottomNavigation",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({display:"flex",justifyContent:"center",height:56,backgroundColor:(t.vars||t).palette.background.paper}))),Gm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiBottomNavigation"}),{children:n,className:s,component:a="div",onChange:i,showLabels:l=!1,value:c,...p}=r,f={...r,component:a,showLabels:l},v=vl(f);return d.jsx(yl,{as:a,className:j(v.root,s),ref:o,ownerState:f,...p,children:u.Children.map(n,(m,y)=>{if(!u.isValidElement(m))return null;const g=m.props.value===void 0?y:m.props.value;return u.cloneElement(m,{selected:g===c,showLabel:m.props.showLabel!==void 0?m.props.showLabel:l,value:g,onChange:i})})})});function hl(t){return K("MuiBottomNavigationAction",t)}const Bn=Z("MuiBottomNavigationAction",["root","iconOnly","selected","label"]),xl=t=>{const{classes:e,showLabel:o,selected:r}=t;return q({root:["root",!o&&!r&&"iconOnly",r&&"selected"],label:["label",!o&&!r&&"iconOnly",r&&"selected"]},hl,e)},Cl=S(fe,{name:"MuiBottomNavigationAction",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.showLabel&&!o.selected&&e.iconOnly]}})(U(({theme:t})=>({transition:t.transitions.create(["color","padding-top"],{duration:t.transitions.duration.short}),padding:"0px 12px",minWidth:80,maxWidth:168,color:(t.vars||t).palette.text.secondary,flexDirection:"column",flex:"1",[`&.${Bn.selected}`]:{color:(t.vars||t).palette.primary.main},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{paddingTop:14}},{props:({showLabel:e,selected:o,label:r})=>!e&&!o&&!r,style:{paddingTop:0}}]}))),Sl=S("span",{name:"MuiBottomNavigationAction",slot:"Label",overridesResolver:(t,e)=>e.label})(U(({theme:t})=>({fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(12),opacity:1,transition:"font-size 0.2s, opacity 0.2s",transitionDelay:"0.1s",[`&.${Bn.selected}`]:{fontSize:t.typography.pxToRem(14)},variants:[{props:({showLabel:e,selected:o})=>!e&&!o,style:{opacity:0,transitionDelay:"0s"}}]}))),_m=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiBottomNavigationAction"}),{className:n,icon:s,label:a,onChange:i,onClick:l,selected:c,showLabel:p,value:f,slots:v={},slotProps:m={},...y}=r,g=r,h=xl(g),b=$=>{i&&i($,f),l&&l($)},x={slots:v,slotProps:m},[C,R]=V("root",{elementType:Cl,externalForwardedProps:{...x,...y},shouldForwardComponentProp:!0,ownerState:g,ref:o,className:j(h.root,n),additionalProps:{focusRipple:!0},getSlotProps:$=>({...$,onClick:A=>{var k;(k=$.onClick)==null||k.call($,A),b(A)}})}),[P,N]=V("label",{elementType:Sl,externalForwardedProps:x,ownerState:g,className:h.label});return d.jsxs(C,{...R,children:[s,d.jsx(P,{...N,children:a})]})}),wl=Z("MuiBox",["root"]),Rl=Sn(),qm=ta({themeId:xs,defaultTheme:Rl,defaultClassName:wl.root,generateClassName:wn.generate}),$l=Ht(d.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz"),Pl=S(fe)(U(({theme:t})=>({display:"flex",marginLeft:`calc(${t.spacing(1)} * 0.5)`,marginRight:`calc(${t.spacing(1)} * 0.5)`,...t.palette.mode==="light"?{backgroundColor:t.palette.grey[100],color:t.palette.grey[700]}:{backgroundColor:t.palette.grey[700],color:t.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...t.palette.mode==="light"?{backgroundColor:t.palette.grey[200]}:{backgroundColor:t.palette.grey[600]}},"&:active":{boxShadow:t.shadows[0],...t.palette.mode==="light"?{backgroundColor:Ho(t.palette.grey[200],.12)}:{backgroundColor:Ho(t.palette.grey[600],.12)}}}))),kl=S($l)({width:24,height:16});function Tl(t){const{slots:e={},slotProps:o={},...r}=t,n=t;return d.jsx("li",{children:d.jsx(Pl,{focusRipple:!0,...r,ownerState:n,children:d.jsx(kl,{as:e.CollapsedIcon,ownerState:n,...o.collapsedIcon})})})}function Il(t){return K("MuiBreadcrumbs",t)}const Ml=Z("MuiBreadcrumbs",["root","ol","li","separator"]),Al=t=>{const{classes:e}=t;return q({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},Il,e)},Ll=S(re,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(t,e)=>[{[`& .${Ml.li}`]:e.li},e.root]})({}),Bl=S("ol",{name:"MuiBreadcrumbs",slot:"Ol",overridesResolver:(t,e)=>e.ol})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),Nl=S("li",{name:"MuiBreadcrumbs",slot:"Separator",overridesResolver:(t,e)=>e.separator})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function Ol(t,e,o,r){return t.reduce((n,s,a)=>(a{const A=()=>{h(!0);const k=R.current.querySelector("a[href],button,[tabindex]");k&&k.focus()};return f+p>=$.length?$:[...$.slice(0,f),d.jsx(Tl,{"aria-label":c,slots:{CollapsedIcon:i.CollapsedIcon},slotProps:{collapsedIcon:C},onClick:A},"ellipsis"),...$.slice($.length-p,$.length)]},N=u.Children.toArray(n).filter($=>u.isValidElement($)).map(($,A)=>d.jsx("li",{className:x.li,children:$},`child-${A}`));return d.jsx(Ll,{ref:o,component:a,color:"textSecondary",className:j(x.root,s),ownerState:b,...y,children:d.jsx(Bl,{className:x.ol,ref:R,ownerState:b,children:Ol(g||v&&N.length<=v?N:P(N),x.separator,m,b)})})});function zl(t){return K("MuiButtonGroup",t)}const St=Z("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","horizontal","vertical","colorPrimary","colorSecondary","grouped","groupedHorizontal","groupedVertical","groupedText","groupedTextHorizontal","groupedTextVertical","groupedTextPrimary","groupedTextSecondary","groupedOutlined","groupedOutlinedHorizontal","groupedOutlinedVertical","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedContained","groupedContainedHorizontal","groupedContainedVertical","groupedContainedPrimary","groupedContainedSecondary","lastButton","middleButton"]),jl=(t,e)=>{const{ownerState:o}=t;return[{[`& .${St.grouped}`]:e.grouped},{[`& .${St.grouped}`]:e[`grouped${T(o.orientation)}`]},{[`& .${St.grouped}`]:e[`grouped${T(o.variant)}`]},{[`& .${St.grouped}`]:e[`grouped${T(o.variant)}${T(o.orientation)}`]},{[`& .${St.grouped}`]:e[`grouped${T(o.variant)}${T(o.color)}`]},{[`& .${St.firstButton}`]:e.firstButton},{[`& .${St.lastButton}`]:e.lastButton},{[`& .${St.middleButton}`]:e.middleButton},e.root,e[o.variant],o.disableElevation===!0&&e.disableElevation,o.fullWidth&&e.fullWidth,o.orientation==="vertical"&&e.vertical]},Dl=t=>{const{classes:e,color:o,disabled:r,disableElevation:n,fullWidth:s,orientation:a,variant:i}=t,l={root:["root",i,a,s&&"fullWidth",n&&"disableElevation",`color${T(o)}`],grouped:["grouped",`grouped${T(a)}`,`grouped${T(i)}`,`grouped${T(i)}${T(a)}`,`grouped${T(i)}${T(o)}`,r&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return q(l,zl,e)},El=S("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:jl})(U(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{variant:"contained"},style:{boxShadow:(t.vars||t).shadows[2]}},{props:{disableElevation:!0},style:{boxShadow:"none"}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${St.lastButton},& .${St.middleButton}`]:{borderTopRightRadius:0,borderTopLeftRadius:0},[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottomRightRadius:0,borderBottomLeftRadius:0}}},{props:{orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${St.lastButton},& .${St.middleButton}`]:{borderTopLeftRadius:0,borderBottomLeftRadius:0}}},{props:{variant:"text",orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderRight:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${St.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"text",orientation:"vertical"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottom:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${St.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(Ft()).flatMap(([e])=>[{props:{variant:"text",color:e},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:Tt(t.palette[e].main,.5)}}}]),{props:{variant:"outlined",orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderRightColor:"transparent","&:hover":{borderRightColor:"currentColor"}},[`& .${St.lastButton},& .${St.middleButton}`]:{marginLeft:-1}}},{props:{variant:"outlined",orientation:"vertical"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottomColor:"transparent","&:hover":{borderBottomColor:"currentColor"}},[`& .${St.lastButton},& .${St.middleButton}`]:{marginTop:-1}}},{props:{variant:"contained",orientation:"horizontal"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderRight:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${St.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},{props:{variant:"contained",orientation:"vertical"},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderBottom:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${St.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}}}},...Object.entries(t.palette).filter(Ft(["dark"])).map(([e])=>({props:{variant:"contained",color:e},style:{[`& .${St.firstButton},& .${St.middleButton}`]:{borderColor:(t.vars||t).palette[e].dark}}}))],[`& .${St.grouped}`]:{minWidth:40,boxShadow:"none",props:{variant:"contained"},style:{"&:hover":{boxShadow:"none"}}}}))),Ym=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiButtonGroup"}),{children:n,className:s,color:a="primary",component:i="div",disabled:l=!1,disableElevation:c=!1,disableFocusRipple:p=!1,disableRipple:f=!1,fullWidth:v=!1,orientation:m="horizontal",size:y="medium",variant:g="outlined",...h}=r,b={...r,color:a,component:i,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:f,fullWidth:v,orientation:m,size:y,variant:g},x=Dl(b),C=u.useMemo(()=>({className:x.grouped,color:a,disabled:l,disableElevation:c,disableFocusRipple:p,disableRipple:f,fullWidth:v,size:y,variant:g}),[a,l,c,p,f,v,y,g,x.grouped]),R=Mn(n),P=R.length,N=$=>{const A=$===0,k=$===P-1;return A&&k?"":A?x.firstButton:k?x.lastButton:x.middleButton};return d.jsx(El,{as:i,role:"group",className:j(x.root,s),ref:o,ownerState:b,...h,children:d.jsx(Ls.Provider,{value:C,children:R.map(($,A)=>d.jsx(Bs.Provider,{value:N(A),children:$},A))})})});function Fl(t){return K("MuiCard",t)}const Km=Z("MuiCard",["root"]),Ul=t=>{const{classes:e}=t;return q({root:["root"]},Fl,e)},Wl=S(we,{name:"MuiCard",slot:"Root",overridesResolver:(t,e)=>e.root})({overflow:"hidden"}),Zm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCard"}),{className:n,raised:s=!1,...a}=r,i={...r,raised:s},l=Ul(i);return d.jsx(Wl,{className:j(l.root,n),elevation:s?8:void 0,ref:o,ownerState:i,...a})});function Hl(t){return K("MuiCardActionArea",t)}const pr=Z("MuiCardActionArea",["root","focusVisible","focusHighlight"]),Vl=t=>{const{classes:e}=t;return q({root:["root"],focusHighlight:["focusHighlight"]},Hl,e)},Gl=S(fe,{name:"MuiCardActionArea",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({display:"block",textAlign:"inherit",borderRadius:"inherit",width:"100%",[`&:hover .${pr.focusHighlight}`]:{opacity:(t.vars||t).palette.action.hoverOpacity,"@media (hover: none)":{opacity:0}},[`&.${pr.focusVisible} .${pr.focusHighlight}`]:{opacity:(t.vars||t).palette.action.focusOpacity}}))),_l=S("span",{name:"MuiCardActionArea",slot:"FocusHighlight",overridesResolver:(t,e)=>e.focusHighlight})(U(({theme:t})=>({overflow:"hidden",pointerEvents:"none",position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:"inherit",opacity:0,backgroundColor:"currentcolor",transition:t.transitions.create("opacity",{duration:t.transitions.duration.short})}))),Jm=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardActionArea"}),{children:n,className:s,focusVisibleClassName:a,slots:i={},slotProps:l={},...c}=r,p=r,f=Vl(p),v={slots:i,slotProps:l},[m,y]=V("root",{elementType:Gl,externalForwardedProps:{...v,...c},shouldForwardComponentProp:!0,ownerState:p,ref:o,className:j(f.root,s),additionalProps:{focusVisibleClassName:j(a,f.focusVisible)}}),[g,h]=V("focusHighlight",{elementType:_l,externalForwardedProps:v,ownerState:p,ref:o,className:f.focusHighlight});return d.jsxs(m,{...y,children:[n,d.jsx(g,{...h})]})});function ql(t){return K("MuiCardActions",t)}const Qm=Z("MuiCardActions",["root","spacing"]),Xl=t=>{const{classes:e,disableSpacing:o}=t;return q({root:["root",!o&&"spacing"]},ql,e)},Yl=S("div",{name:"MuiCardActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})({display:"flex",alignItems:"center",padding:8,variants:[{props:{disableSpacing:!1},style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),tb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardActions"}),{disableSpacing:n=!1,className:s,...a}=r,i={...r,disableSpacing:n},l=Xl(i);return d.jsx(Yl,{className:j(l.root,s),ownerState:i,ref:o,...a})});function Kl(t){return K("MuiCardContent",t)}const eb=Z("MuiCardContent",["root"]),Zl=t=>{const{classes:e}=t;return q({root:["root"]},Kl,e)},Jl=S("div",{name:"MuiCardContent",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:16,"&:last-child":{paddingBottom:24}}),ob=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardContent"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=Zl(i);return d.jsx(Jl,{as:s,className:j(l.root,n),ownerState:i,ref:o,...a})});function Ql(t){return K("MuiCardHeader",t)}const _o=Z("MuiCardHeader",["root","avatar","action","content","title","subheader"]),tc=t=>{const{classes:e}=t;return q({root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]},Ql,e)},ec=S("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(t,e)=>[{[`& .${_o.title}`]:e.title},{[`& .${_o.subheader}`]:e.subheader},e.root]})({display:"flex",alignItems:"center",padding:16}),oc=S("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(t,e)=>e.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),rc=S("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(t,e)=>e.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),nc=S("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(t,e)=>e.content})({flex:"1 1 auto",[`.${Vo.root}:where(& .${_o.title})`]:{display:"block"},[`.${Vo.root}:where(& .${_o.subheader})`]:{display:"block"}}),rb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardHeader"}),{action:n,avatar:s,component:a="div",disableTypography:i=!1,subheader:l,subheaderTypographyProps:c,title:p,titleTypographyProps:f,slots:v={},slotProps:m={},...y}=r,g={...r,component:a,disableTypography:i},h=tc(g),b={slots:v,slotProps:{title:f,subheader:c,...m}};let x=p;const[C,R]=V("title",{className:h.title,elementType:re,externalForwardedProps:b,ownerState:g,additionalProps:{variant:s?"body2":"h5",component:"span"}});x!=null&&x.type!==re&&!i&&(x=d.jsx(C,{...R,children:x}));let P=l;const[N,$]=V("subheader",{className:h.subheader,elementType:re,externalForwardedProps:b,ownerState:g,additionalProps:{variant:s?"body2":"body1",color:"textSecondary",component:"span"}});P!=null&&P.type!==re&&!i&&(P=d.jsx(N,{...$,children:P}));const[A,k]=V("root",{ref:o,className:h.root,elementType:ec,externalForwardedProps:{...b,...y,component:a},ownerState:g}),[I,F]=V("avatar",{className:h.avatar,elementType:oc,externalForwardedProps:b,ownerState:g}),[L,w]=V("content",{className:h.content,elementType:nc,externalForwardedProps:b,ownerState:g}),[M,H]=V("action",{className:h.action,elementType:rc,externalForwardedProps:b,ownerState:g});return d.jsxs(A,{...k,children:[s&&d.jsx(I,{...F,children:s}),d.jsxs(L,{...w,children:[x,P]}),n&&d.jsx(M,{...H,children:n})]})});function sc(t){return K("MuiCardMedia",t)}const nb=Z("MuiCardMedia",["root","media","img"]),ac=t=>{const{classes:e,isMediaComponent:o,isImageComponent:r}=t;return q({root:["root",o&&"media",r&&"img"]},sc,e)},ic=S("div",{name:"MuiCardMedia",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{isMediaComponent:r,isImageComponent:n}=o;return[e.root,r&&e.media,n&&e.img]}})({display:"block",backgroundSize:"cover",backgroundRepeat:"no-repeat",backgroundPosition:"center",variants:[{props:{isMediaComponent:!0},style:{width:"100%"}},{props:{isImageComponent:!0},style:{objectFit:"cover"}}]}),lc=["video","audio","picture","iframe","img"],cc=["picture","img"],sb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCardMedia"}),{children:n,className:s,component:a="div",image:i,src:l,style:c,...p}=r,f=lc.includes(a),v=!f&&i?{backgroundImage:`url("${i}")`,...c}:c,m={...r,component:a,isMediaComponent:f,isImageComponent:cc.includes(a)},y=ac(m);return d.jsx(ic,{className:j(y.root,s),as:a,role:!f&&i?"img":void 0,ref:o,style:v,ownerState:m,src:f?i||l:void 0,...p,children:n})});function pc(t){return K("PrivateSwitchBase",t)}Z("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const dc=t=>{const{classes:e,checked:o,disabled:r,edge:n}=t,s={root:["root",o&&"checked",r&&"disabled",n&&`edge${T(n)}`],input:["input"]};return q(s,pc,e)},uc=S(fe)({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:t,ownerState:e})=>t==="start"&&e.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:t,ownerState:e})=>t==="end"&&e.size!=="small",style:{marginRight:-12}}]}),fc=S("input",{shouldForwardProp:Se})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Nr=u.forwardRef(function(e,o){const{autoFocus:r,checked:n,checkedIcon:s,defaultChecked:a,disabled:i,disableFocusRipple:l=!1,edge:c=!1,icon:p,id:f,inputProps:v,inputRef:m,name:y,onBlur:g,onChange:h,onFocus:b,readOnly:x,required:C=!1,tabIndex:R,type:P,value:N,slots:$={},slotProps:A={},...k}=e,[I,F]=ue({controlled:n,default:!!a,name:"SwitchBase",state:"checked"}),L=xo(),w=lt=>{b&&b(lt),L&&L.onFocus&&L.onFocus(lt)},M=lt=>{g&&g(lt),L&&L.onBlur&&L.onBlur(lt)},H=lt=>{if(lt.nativeEvent.defaultPrevented)return;const rt=lt.target.checked;F(rt),h&&h(lt,rt)};let z=i;L&&typeof z>"u"&&(z=L.disabled);const Q=P==="checkbox"||P==="radio",D={...e,checked:I,disabled:z,disableFocusRipple:l,edge:c},et=dc(D),pt={slots:$,slotProps:{input:v,...A}},[_,wt]=V("root",{ref:o,elementType:uc,className:et.root,shouldForwardComponentProp:!0,externalForwardedProps:{...pt,component:"span",...k},getSlotProps:lt=>({...lt,onFocus:rt=>{var W;(W=lt.onFocus)==null||W.call(lt,rt),w(rt)},onBlur:rt=>{var W;(W=lt.onBlur)==null||W.call(lt,rt),M(rt)}}),ownerState:D,additionalProps:{centerRipple:!0,focusRipple:!l,disabled:z,role:void 0,tabIndex:null}}),[Lt,Rt]=V("input",{ref:m,elementType:fc,className:et.input,externalForwardedProps:pt,getSlotProps:lt=>({onChange:rt=>{var W;(W=lt.onChange)==null||W.call(lt,rt),H(rt)}}),ownerState:D,additionalProps:{autoFocus:r,checked:n,defaultChecked:a,disabled:z,id:Q?f:void 0,name:y,readOnly:x,required:C,tabIndex:R,type:P,...P==="checkbox"&&N===void 0?{}:{value:N}}});return d.jsxs(_,{...wt,children:[d.jsx(Lt,{...Rt}),I?s:p]})}),gc=Ht(d.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),mc=Ht(d.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),bc=Ht(d.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function vc(t){return K("MuiCheckbox",t)}const dr=Z("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),yc=t=>{const{classes:e,indeterminate:o,color:r,size:n}=t,s={root:["root",o&&"indeterminate",`color${T(r)}`,`size${T(n)}`]},a=q(s,vc,e);return{...e,...a}},hc=S(Nr,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.indeterminate&&e.indeterminate,e[`size${T(o.size)}`],o.color!=="default"&&e[`color${T(o.color)}`]]}})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{[`&.${dr.checked}, &.${dr.indeterminate}`]:{color:(t.vars||t).palette[e].main},[`&.${dr.disabled}`]:{color:(t.vars||t).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),xc=d.jsx(mc,{}),Cc=d.jsx(gc,{}),Sc=d.jsx(bc,{}),ab=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiCheckbox"}),{checkedIcon:n=xc,color:s="primary",icon:a=Cc,indeterminate:i=!1,indeterminateIcon:l=Sc,inputProps:c,size:p="medium",disableRipple:f=!1,className:v,slots:m={},slotProps:y={},...g}=r,h=i?l:a,b=i?l:n,x={...r,disableRipple:f,color:s,indeterminate:i,size:p},C=yc(x),R=y.input??c,[P,N]=V("root",{ref:o,elementType:hc,className:j(C.root,v),shouldForwardComponentProp:!0,externalForwardedProps:{slots:m,slotProps:y,...g},ownerState:x,additionalProps:{type:"checkbox",icon:u.cloneElement(h,{fontSize:h.props.fontSize??p}),checkedIcon:u.cloneElement(b,{fontSize:b.props.fontSize??p}),disableRipple:f,slots:m,slotProps:{input:bo(typeof R=="function"?R(x):R,{"data-indeterminate":i})}}});return d.jsx(P,{...N,classes:C})});function Jr(t){return t.substring(2).toLowerCase()}function wc(t,e){return e.documentElement.clientWidth(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const p=ge(Zo(e),i),f=ne(y=>{const g=c.current;c.current=!1;const h=de(i.current);if(!l.current||!i.current||"clientX"in y&&wc(y,h))return;if(a.current){a.current=!1;return}let b;y.composedPath?b=y.composedPath().includes(i.current):b=!h.documentElement.contains(y.target)||i.current.contains(y.target),!b&&(o||!g)&&n(y)}),v=y=>g=>{c.current=!0;const h=e.props[y];h&&h(g)},m={ref:p};return s!==!1&&(m[s]=v(s)),u.useEffect(()=>{if(s!==!1){const y=Jr(s),g=de(i.current),h=()=>{a.current=!0};return g.addEventListener(y,f),g.addEventListener("touchmove",h),()=>{g.removeEventListener(y,f),g.removeEventListener("touchmove",h)}}},[f,s]),r!==!1&&(m[r]=v(r)),u.useEffect(()=>{if(r!==!1){const y=Jr(r),g=de(i.current);return g.addEventListener(y,f),()=>{g.removeEventListener(y,f)}}},[f,r]),u.cloneElement(e,m)}const ib=sa({createStyledComponent:S("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${T(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),useThemeProps:t=>X({props:t,name:"MuiContainer"})});function lb(t){return K("MuiContainer",t)}const cb=Z("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"]),xr=typeof Tn({})=="function",Nn=(t,e)=>({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%",...e&&!t.vars&&{colorScheme:t.palette.mode}}),On=t=>({color:(t.vars||t).palette.text.primary,...t.typography.body1,backgroundColor:(t.vars||t).palette.background.default,"@media print":{backgroundColor:(t.vars||t).palette.common.white}}),zn=(t,e=!1)=>{var s,a;const o={};e&&t.colorSchemes&&typeof t.getColorSchemeSelector=="function"&&Object.entries(t.colorSchemes).forEach(([i,l])=>{var p,f;const c=t.getColorSchemeSelector(i);c.startsWith("@")?o[c]={":root":{colorScheme:(p=l.palette)==null?void 0:p.mode}}:o[c.replace(/\s*&/,"")]={colorScheme:(f=l.palette)==null?void 0:f.mode}});let r={html:Nn(t,e),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:t.typography.fontWeightBold},body:{margin:0,...On(t),"&::backdrop":{backgroundColor:(t.vars||t).palette.background.default}},...o};const n=(a=(s=t.components)==null?void 0:s.MuiCssBaseline)==null?void 0:a.styleOverrides;return n&&(r=[r,n]),r},Wo="mui-ecs",$c=t=>{const e=zn(t,!1),o=Array.isArray(e)?e[0]:e;return!t.vars&&o&&(o.html[`:root:has(${Wo})`]={colorScheme:t.palette.mode}),t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([r,n])=>{var a,i;const s=t.getColorSchemeSelector(r);s.startsWith("@")?o[s]={[`:root:not(:has(.${Wo}))`]:{colorScheme:(a=n.palette)==null?void 0:a.mode}}:o[s.replace(/\s*&/,"")]={[`&:not(:has(.${Wo}))`]:{colorScheme:(i=n.palette)==null?void 0:i.mode}}}),e},Pc=Tn(xr?({theme:t,enableColorScheme:e})=>zn(t,e):({theme:t})=>$c(t));function pb(t){const e=X({props:t,name:"MuiCssBaseline"}),{children:o,enableColorScheme:r=!1}=e;return d.jsxs(u.Fragment,{children:[xr&&d.jsx(Pc,{enableColorScheme:r}),!xr&&!r&&d.jsx("span",{className:Wo,style:{display:"none"}}),o]})}const kc={track:"#2b2b2b",thumb:"#6b6b6b",active:"#959595"};function db(t=kc){return{scrollbarColor:`${t.thumb} ${t.track}`,"&::-webkit-scrollbar, & *::-webkit-scrollbar":{backgroundColor:t.track},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{borderRadius:8,backgroundColor:t.thumb,minHeight:24,border:`3px solid ${t.track}`},"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:t.active},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:t.track}}}function Tc(t){return K("MuiDialogContentText",t)}const ub=Z("MuiDialogContentText",["root"]),Ic=t=>{const{classes:e}=t,r=q({root:["root"]},Tc,e);return{...e,...r}},Mc=S(re,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiDialogContentText",slot:"Root",overridesResolver:(t,e)=>e.root})({}),fb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiDialogContentText"}),{children:n,className:s,...a}=r,i=Ic(a);return d.jsx(Mc,{component:"p",variant:"body1",color:"textSecondary",ref:o,ownerState:a,className:j(i.root,s),...r,classes:i})}),Ac=t=>{const{classes:e}=t;return q({root:["root"]},Os,e)},Lc=S(re,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(t,e)=>e.root})({padding:"16px 24px",flex:"0 0 auto"}),gb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiDialogTitle"}),{className:n,id:s,...a}=r,i=r,l=Ac(i),{titleId:c=s}=u.useContext(Ns);return d.jsx(Lc,{component:"h2",className:j(l.root,n),ownerState:i,ref:o,variant:"h6",id:s??c,...a})});function Bc(t,e,o){const r=e.getBoundingClientRect(),n=o&&o.getBoundingClientRect(),s=Xe(e);let a;if(e.fakeTransform)a=e.fakeTransform;else{const c=s.getComputedStyle(e);a=c.getPropertyValue("-webkit-transform")||c.getPropertyValue("transform")}let i=0,l=0;if(a&&a!=="none"&&typeof a=="string"){const c=a.split("(")[1].split(")")[0].split(",");i=parseInt(c[4],10),l=parseInt(c[5],10)}return t==="left"?n?`translateX(${n.right+i-r.left}px)`:`translateX(${s.innerWidth+i-r.left}px)`:t==="right"?n?`translateX(-${r.right-n.left-i}px)`:`translateX(-${r.left+r.width-i}px)`:t==="up"?n?`translateY(${n.bottom+l-r.top}px)`:`translateY(${s.innerHeight+l-r.top}px)`:n?`translateY(-${r.top-n.top+r.height-l}px)`:`translateY(-${r.top+r.height-l}px)`}function Nc(t){return typeof t=="function"?t():t}function Io(t,e,o){const r=Nc(o),n=Bc(t,e,r);n&&(e.style.webkitTransform=n,e.style.transform=n)}const Oc=u.forwardRef(function(e,o){const r=se(),n={enter:r.transitions.easing.easeOut,exit:r.transitions.easing.sharp},s={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:a,appear:i=!0,children:l,container:c,direction:p="down",easing:f=n,in:v,onEnter:m,onEntered:y,onEntering:g,onExit:h,onExited:b,onExiting:x,style:C,timeout:R=s,TransitionComponent:P=Tr,...N}=e,$=u.useRef(null),A=ge(Zo(l),$,o),k=D=>et=>{D&&(et===void 0?D($.current):D($.current,et))},I=k((D,et)=>{Io(p,D,c),$n(D),m&&m(D,et)}),F=k((D,et)=>{const pt=Fe({timeout:R,style:C,easing:f},{mode:"enter"});D.style.webkitTransition=r.transitions.create("-webkit-transform",{...pt}),D.style.transition=r.transitions.create("transform",{...pt}),D.style.webkitTransform="none",D.style.transform="none",g&&g(D,et)}),L=k(y),w=k(x),M=k(D=>{const et=Fe({timeout:R,style:C,easing:f},{mode:"exit"});D.style.webkitTransition=r.transitions.create("-webkit-transform",et),D.style.transition=r.transitions.create("transform",et),Io(p,D,c),h&&h(D)}),H=k(D=>{D.style.webkitTransition="",D.style.transition="",b&&b(D)}),z=D=>{a&&a($.current,D)},Q=u.useCallback(()=>{$.current&&Io(p,$.current,c)},[p,c]);return u.useEffect(()=>{if(v||p==="down"||p==="right")return;const D=Xs(()=>{$.current&&Io(p,$.current,c)}),et=Xe($.current);return et.addEventListener("resize",D),()=>{D.clear(),et.removeEventListener("resize",D)}},[p,v,c]),u.useEffect(()=>{v||Q()},[v,Q]),d.jsx(P,{nodeRef:$,onEnter:I,onEntered:L,onEntering:F,onExit:M,onExited:H,onExiting:w,addEndListener:z,appear:i,in:v,timeout:R,...N,children:(D,{ownerState:et,...pt})=>u.cloneElement(l,{ref:A,style:{visibility:D==="exited"&&!v?"hidden":void 0,...C,...l.props.style},...pt})})});function zc(t){return K("MuiDrawer",t)}const mb=Z("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]),jn=(t,e)=>{const{ownerState:o}=t;return[e.root,(o.variant==="permanent"||o.variant==="persistent")&&e.docked,e.modal]},jc=t=>{const{classes:e,anchor:o,variant:r}=t,n={root:["root",`anchor${T(o)}`],docked:[(r==="permanent"||r==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${T(o)}`,r!=="temporary"&&`paperAnchorDocked${T(o)}`]};return q(n,zc,e)},Dc=S(zs,{name:"MuiDrawer",slot:"Root",overridesResolver:jn})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.drawer}))),Ec=S("div",{shouldForwardProp:Se,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:jn})({flex:"0 0 auto"}),Fc=S(we,{name:"MuiDrawer",slot:"Paper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.paper,e[`paperAnchor${T(o.anchor)}`],o.variant!=="temporary"&&e[`paperAnchorDocked${T(o.anchor)}`]]}})(U(({theme:t})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(t.vars||t).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:e})=>e.anchor==="left"&&e.variant!=="temporary",style:{borderRight:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="top"&&e.variant!=="temporary",style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="right"&&e.variant!=="temporary",style:{borderLeft:`1px solid ${(t.vars||t).palette.divider}`}},{props:({ownerState:e})=>e.anchor==="bottom"&&e.variant!=="temporary",style:{borderTop:`1px solid ${(t.vars||t).palette.divider}`}}]}))),Dn={left:"right",right:"left",top:"down",bottom:"up"};function Be(t){return["left","right"].includes(t)}function co({direction:t},e){return t==="rtl"&&Be(e)?Dn[e]:e}const Uc=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiDrawer"}),n=se(),s=We(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{anchor:i="left",BackdropProps:l,children:c,className:p,elevation:f=16,hideBackdrop:v=!1,ModalProps:{BackdropProps:m,...y}={},onClose:g,open:h=!1,PaperProps:b={},SlideProps:x,TransitionComponent:C,transitionDuration:R=a,variant:P="temporary",slots:N={},slotProps:$={},...A}=r,k=u.useRef(!1);u.useEffect(()=>{k.current=!0},[]);const I=co({direction:s?"rtl":"ltr"},i),L={...r,anchor:i,elevation:f,open:h,variant:P,...A},w=jc(L),M={slots:{transition:C,...N},slotProps:{paper:b,transition:x,...$,backdrop:bo($.backdrop||{...l,...m},{transitionDuration:R})}},[H,z]=V("root",{ref:o,elementType:Dc,className:j(w.root,w.modal,p),shouldForwardComponentProp:!0,ownerState:L,externalForwardedProps:{...M,...A,...y},additionalProps:{open:h,onClose:g,hideBackdrop:v,slots:{backdrop:M.slots.backdrop},slotProps:{backdrop:M.slotProps.backdrop}}}),[Q,D]=V("paper",{elementType:Fc,shouldForwardComponentProp:!0,className:j(w.paper,b.className),ownerState:L,externalForwardedProps:M,additionalProps:{elevation:P==="temporary"?f:0,square:!0}}),[et,pt]=V("docked",{elementType:Ec,ref:o,className:j(w.root,w.docked,p),ownerState:L,externalForwardedProps:M,additionalProps:A}),[_,wt]=V("transition",{elementType:Oc,ownerState:L,externalForwardedProps:M,additionalProps:{in:h,direction:Dn[I],timeout:R,appear:k.current}}),Lt=d.jsx(Q,{...D,children:c});if(P==="permanent")return d.jsx(et,{...pt,children:Lt});const Rt=d.jsx(_,{...wt,children:Lt});return P==="persistent"?d.jsx(et,{...pt,children:Rt}):d.jsx(H,{...z,children:Rt})});function Wc(t){return K("MuiFab",t)}const Qr=Z("MuiFab",["root","primary","secondary","extended","circular","focusVisible","disabled","colorInherit","sizeSmall","sizeMedium","sizeLarge","info","error","warning","success"]),Hc=t=>{const{color:e,variant:o,classes:r,size:n}=t,s={root:["root",o,`size${T(n)}`,e==="inherit"?"colorInherit":e]},a=q(s,Wc,r);return{...r,...a}},Vc=S(fe,{name:"MuiFab",slot:"Root",shouldForwardProp:t=>Se(t)||t==="classes",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${T(o.size)}`],o.color==="inherit"&&e.colorInherit,e[T(o.size)],e[o.color]]}})(U(({theme:t})=>{var e,o;return{...t.typography.button,minHeight:36,transition:t.transitions.create(["background-color","box-shadow","border-color"],{duration:t.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,zIndex:(t.vars||t).zIndex.fab,boxShadow:(t.vars||t).shadows[6],"&:active":{boxShadow:(t.vars||t).shadows[12]},color:t.vars?t.vars.palette.text.primary:(o=(e=t.palette).getContrastText)==null?void 0:o.call(e,t.palette.grey[300]),backgroundColor:(t.vars||t).palette.grey[300],"&:hover":{backgroundColor:(t.vars||t).palette.grey.A100,"@media (hover: none)":{backgroundColor:(t.vars||t).palette.grey[300]},textDecoration:"none"},[`&.${Qr.focusVisible}`]:{boxShadow:(t.vars||t).shadows[6]},variants:[{props:{size:"small"},style:{width:40,height:40}},{props:{size:"medium"},style:{width:48,height:48}},{props:{variant:"extended"},style:{borderRadius:48/2,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48}},{props:{variant:"extended",size:"small"},style:{width:"auto",padding:"0 8px",borderRadius:34/2,minWidth:34,height:34}},{props:{variant:"extended",size:"medium"},style:{width:"auto",padding:"0 16px",borderRadius:40/2,minWidth:40,height:40}},{props:{color:"inherit"},style:{color:"inherit"}}]}}),U(({theme:t})=>({variants:[...Object.entries(t.palette).filter(Ft(["dark","contrastText"])).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}}}}))]})),U(({theme:t})=>({[`&.${Qr.disabled}`]:{color:(t.vars||t).palette.action.disabled,boxShadow:(t.vars||t).shadows[0],backgroundColor:(t.vars||t).palette.action.disabledBackground}}))),En=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiFab"}),{children:n,className:s,color:a="default",component:i="button",disabled:l=!1,disableFocusRipple:c=!1,focusVisibleClassName:p,size:f="large",variant:v="circular",...m}=r,y={...r,color:a,component:i,disabled:l,disableFocusRipple:c,size:f,variant:v},g=Hc(y);return d.jsx(Vc,{className:j(g.root,s),component:i,disabled:l,focusRipple:!c,focusVisibleClassName:j(g.focusVisible,p),ownerState:y,ref:o,...m,classes:g,children:n})});function Gc(t){return K("MuiFormControlLabel",t)}const po=Z("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),_c=t=>{const{classes:e,disabled:o,labelPlacement:r,error:n,required:s}=t,a={root:["root",o&&"disabled",`labelPlacement${T(r)}`,n&&"error",s&&"required"],label:["label",o&&"disabled"],asterisk:["asterisk",n&&"error"]};return q(a,Gc,e)},qc=S("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${po.label}`]:e.label},e.root,e[`labelPlacement${T(o.labelPlacement)}`]]}})(U(({theme:t})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${po.disabled}`]:{cursor:"default"},[`& .${po.label}`]:{[`&.${po.disabled}`]:{color:(t.vars||t).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:e})=>e==="start"||e==="top"||e==="bottom",style:{marginLeft:16}}]}))),Xc=S("span",{name:"MuiFormControlLabel",slot:"Asterisk",overridesResolver:(t,e)=>e.asterisk})(U(({theme:t})=>({[`&.${po.error}`]:{color:(t.vars||t).palette.error.main}}))),bb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiFormControlLabel"}),{checked:n,className:s,componentsProps:a={},control:i,disabled:l,disableTypography:c,inputRef:p,label:f,labelPlacement:v="end",name:m,onChange:y,required:g,slots:h={},slotProps:b={},value:x,...C}=r,R=xo(),P=l??i.props.disabled??(R==null?void 0:R.disabled),N=g??i.props.required,$={disabled:P,required:N};["checked","name","onChange","value","inputRef"].forEach(H=>{typeof i.props[H]>"u"&&typeof r[H]<"u"&&($[H]=r[H])});const A=Ir({props:r,muiFormControl:R,states:["error"]}),k={...r,disabled:P,labelPlacement:v,required:N,error:A.error},I=_c(k),F={slots:h,slotProps:{...a,...b}},[L,w]=V("typography",{elementType:re,externalForwardedProps:F,ownerState:k});let M=f;return M!=null&&M.type!==re&&!c&&(M=d.jsx(L,{component:"span",...w,className:j(I.label,w==null?void 0:w.className),children:M})),d.jsxs(qc,{className:j(I.root,s),ownerState:k,ref:o,...C,children:[u.cloneElement(i,$),N?d.jsxs("div",{children:[M,d.jsxs(Xc,{ownerState:k,"aria-hidden":!0,className:I.asterisk,children:[" ","*"]})]}):M]})});function Yc(t){return K("MuiFormGroup",t)}const vb=Z("MuiFormGroup",["root","row","error"]),Kc=t=>{const{classes:e,row:o,error:r}=t;return q({root:["root",o&&"row",r&&"error"]},Yc,e)},Zc=S("div",{name:"MuiFormGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.row&&e.row]}})({display:"flex",flexDirection:"column",flexWrap:"wrap",variants:[{props:{row:!0},style:{flexDirection:"row"}}]}),Jc=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiFormGroup"}),{className:n,row:s=!1,...a}=r,i=xo(),l=Ir({props:r,muiFormControl:i,states:["error"]}),c={...r,row:s,error:l.error},p=Kc(c);return d.jsx(Zc,{className:j(p.root,n),ownerState:c,ref:o,...a})}),tn=u.createContext();function Qc(t){return K("MuiGrid",t)}const tp=[0,1,2,3,4,5,6,7,8,9,10],ep=["column-reverse","column","row-reverse","row"],op=["nowrap","wrap-reverse","wrap"],ro=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],yo=Z("MuiGrid",["root","container","item","zeroMinWidth",...tp.map(t=>`spacing-xs-${t}`),...ep.map(t=>`direction-xs-${t}`),...op.map(t=>`wrap-xs-${t}`),...ro.map(t=>`grid-xs-${t}`),...ro.map(t=>`grid-sm-${t}`),...ro.map(t=>`grid-md-${t}`),...ro.map(t=>`grid-lg-${t}`),...ro.map(t=>`grid-xl-${t}`)]);function rp({theme:t,ownerState:e}){let o;return t.breakpoints.keys.reduce((r,n)=>{let s={};if(e[n]&&(o=e[n]),!o)return r;if(o===!0)s={flexBasis:0,flexGrow:1,maxWidth:"100%"};else if(o==="auto")s={flexBasis:"auto",flexGrow:0,flexShrink:0,maxWidth:"none",width:"auto"};else{const a=je({values:e.columns,breakpoints:t.breakpoints.values}),i=typeof a=="object"?a[n]:a;if(i==null)return r;const l=`${Math.round(o/i*1e8)/1e6}%`;let c={};if(e.container&&e.item&&e.columnSpacing!==0){const p=t.spacing(e.columnSpacing);if(p!=="0px"){const f=`calc(${l} + ${p})`;c={flexBasis:f,maxWidth:f}}}s={flexBasis:l,flexGrow:0,maxWidth:l,...c}}return t.breakpoints.values[n]===0?Object.assign(r,s):r[t.breakpoints.up(n)]=s,r},{})}function np({theme:t,ownerState:e}){const o=je({values:e.direction,breakpoints:t.breakpoints.values});return go({theme:t},o,r=>{const n={flexDirection:r};return r.startsWith("column")&&(n[`& > .${yo.item}`]={maxWidth:"none"}),n})}function Fn({breakpoints:t,values:e}){let o="";Object.keys(e).forEach(n=>{o===""&&e[n]!==0&&(o=n)});const r=Object.keys(t).sort((n,s)=>t[n]-t[s]);return r.slice(0,r.indexOf(o))}function sp({theme:t,ownerState:e}){const{container:o,rowSpacing:r}=e;let n={};if(o&&r!==0){const s=je({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=Fn({breakpoints:t.breakpoints.values,values:s})),n=go({theme:t},s,(i,l)=>{const c=t.spacing(i);return c!=="0px"?{marginTop:`calc(-1 * ${c})`,[`& > .${yo.item}`]:{paddingTop:c}}:a!=null&&a.includes(l)?{}:{marginTop:0,[`& > .${yo.item}`]:{paddingTop:0}}})}return n}function ap({theme:t,ownerState:e}){const{container:o,columnSpacing:r}=e;let n={};if(o&&r!==0){const s=je({values:r,breakpoints:t.breakpoints.values});let a;typeof s=="object"&&(a=Fn({breakpoints:t.breakpoints.values,values:s})),n=go({theme:t},s,(i,l)=>{const c=t.spacing(i);if(c!=="0px"){const p=`calc(-1 * ${c})`;return{width:`calc(100% + ${c})`,marginLeft:p,[`& > .${yo.item}`]:{paddingLeft:c}}}return a!=null&&a.includes(l)?{}:{width:"100%",marginLeft:0,[`& > .${yo.item}`]:{paddingLeft:0}}})}return n}function ip(t,e,o={}){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[o[`spacing-xs-${String(t)}`]];const r=[];return e.forEach(n=>{const s=t[n];Number(s)>0&&r.push(o[`spacing-${n}-${String(s)}`])}),r}const lp=S("div",{name:"MuiGrid",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{container:r,direction:n,item:s,spacing:a,wrap:i,zeroMinWidth:l,breakpoints:c}=o;let p=[];r&&(p=ip(a,c,e));const f=[];return c.forEach(v=>{const m=o[v];m&&f.push(e[`grid-${v}-${String(m)}`])}),[e.root,r&&e.container,s&&e.item,l&&e.zeroMinWidth,...p,n!=="row"&&e[`direction-xs-${String(n)}`],i!=="wrap"&&e[`wrap-xs-${String(i)}`],...f]}})(({ownerState:t})=>({boxSizing:"border-box",...t.container&&{display:"flex",flexWrap:"wrap",width:"100%"},...t.item&&{margin:0},...t.zeroMinWidth&&{minWidth:0},...t.wrap!=="wrap"&&{flexWrap:t.wrap}}),np,sp,ap,rp);function cp(t,e){if(!t||t<=0)return[];if(typeof t=="string"&&!Number.isNaN(Number(t))||typeof t=="number")return[`spacing-xs-${String(t)}`];const o=[];return e.forEach(r=>{const n=t[r];if(Number(n)>0){const s=`spacing-${r}-${String(n)}`;o.push(s)}}),o}const pp=t=>{const{classes:e,container:o,direction:r,item:n,spacing:s,wrap:a,zeroMinWidth:i,breakpoints:l}=t;let c=[];o&&(c=cp(s,l));const p=[];l.forEach(v=>{const m=t[v];m&&p.push(`grid-${v}-${String(m)}`)});const f={root:["root",o&&"container",n&&"item",i&&"zeroMinWidth",...c,r!=="row"&&`direction-xs-${String(r)}`,a!=="wrap"&&`wrap-xs-${String(a)}`,...p]};return q(f,Qc,e)},yb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiGrid"}),{breakpoints:n}=se(),s=Jo(r),{className:a,columns:i,columnSpacing:l,component:c="div",container:p=!1,direction:f="row",item:v=!1,rowSpacing:m,spacing:y=0,wrap:g="wrap",zeroMinWidth:h=!1,...b}=s,x=m||y,C=l||y,R=u.useContext(tn),P=p?i||12:R,N={},$={...b};n.keys.forEach(I=>{b[I]!=null&&(N[I]=b[I],delete $[I])});const A={...s,columns:P,container:p,direction:f,item:v,rowSpacing:x,columnSpacing:C,wrap:g,zeroMinWidth:h,spacing:y,...N,breakpoints:n.keys},k=pp(A);return d.jsx(tn.Provider,{value:P,children:d.jsx(lp,{ownerState:A,className:j(k.root,a),as:c,ref:o,...$})})}),hb=Ca({createStyledComponent:S("div",{name:"MuiGrid2",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.container&&e.container]}}),componentName:"MuiGrid2",useThemeProps:t=>X({props:t,name:"MuiGrid2"}),useTheme:se});function xb(t){return K("MuiGrid2",t)}const dp=[0,1,2,3,4,5,6,7,8,9,10],up=["column-reverse","column","row-reverse","row"],fp=["nowrap","wrap-reverse","wrap"],no=["auto",!0,1,2,3,4,5,6,7,8,9,10,11,12],Cb=Z("MuiGrid2",["root","container",...dp.map(t=>`spacing-xs-${t}`),...up.map(t=>`direction-xs-${t}`),...fp.map(t=>`wrap-xs-${t}`),...no.map(t=>`grid-xs-${t}`),...no.map(t=>`grid-sm-${t}`),...no.map(t=>`grid-md-${t}`),...no.map(t=>`grid-lg-${t}`),...no.map(t=>`grid-xl-${t}`)]),ke=["xs","sm","md","lg","xl"],gp=(t,e,o=!0)=>o?ke.indexOf(t)<=ke.indexOf(e):ke.indexOf(t)o?ke.indexOf(e)<=ke.indexOf(t):ke.indexOf(e)e=>{const{withTheme:o=!1,noSSR:r=!1,initialWidth:n}=t;function s(a){const i=se(),l=a.theme||i,{initialWidth:c,width:p,...f}=js({theme:l,name:"MuiWithWidth",props:a}),[v,m]=u.useState(!1);Co(()=>{m(!0)},[]);const g=l.breakpoints.keys.slice().reverse().reduce((b,x)=>{const C=Ds(l.breakpoints.up(x));return!b&&C?x:b},null),h={width:p||(v||r?g:void 0)||c||n,...o?{theme:l}:{},...f};return h.width===void 0?null:d.jsx(e,{...h})}return s};function Un(t){const{children:e,only:o,width:r}=t,n=se();let s=!0;if(o)if(Array.isArray(o))for(let a=0;a{const{classes:e,breakpoints:o}=t,r={root:["root",...o.map(({breakpoint:n,dir:s})=>s==="only"?`${s}${T(n)}`:`${n}${T(s)}`)]};return q(r,yp,e)},xp=S("div",{name:"PrivateHiddenCss",slot:"Root"})(({theme:t,ownerState:e})=>{const o={display:"none"};return{...e.breakpoints.map(({breakpoint:r,dir:n})=>n==="only"?{[t.breakpoints.only(r)]:o}:n==="up"?{[t.breakpoints.up(r)]:o}:{[t.breakpoints.down(r)]:o}).reduce((r,n)=>(Object.keys(n).forEach(s=>{r[s]=n[s]}),r),{})}});function Cp(t){const{children:e,className:o,only:r,...n}=t,s=se(),a=[];for(let c=0;c{a.push({breakpoint:p,dir:"only"})});const i={...t,breakpoints:a},l=hp(i);return d.jsx(xp,{className:j(l.root,o),ownerState:i,children:e})}function Sb(t){const{implementation:e="js",lgDown:o=!1,lgUp:r=!1,mdDown:n=!1,mdUp:s=!1,smDown:a=!1,smUp:i=!1,xlDown:l=!1,xlUp:c=!1,xsDown:p=!1,xsUp:f=!1,...v}=t;return e==="js"?d.jsx(vp,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:f,...v}):d.jsx(Cp,{lgDown:o,lgUp:r,mdDown:n,mdUp:s,smDown:a,smUp:i,xlDown:l,xlUp:c,xsDown:p,xsUp:f,...v})}function Sp(t){return K("MuiIcon",t)}const wb=Z("MuiIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),wp=t=>{const{color:e,fontSize:o,classes:r}=t,n={root:["root",e!=="inherit"&&`color${T(e)}`,`fontSize${T(o)}`]};return q(n,Sp,r)},Rp=S("span",{name:"MuiIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="inherit"&&e[`color${T(o.color)}`],e[`fontSize${T(o.fontSize)}`]]}})(U(({theme:t})=>({userSelect:"none",width:"1em",height:"1em",overflow:"hidden",display:"inline-block",textAlign:"center",flexShrink:0,variants:[{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:t.typography.pxToRem(20)}},{props:{fontSize:"medium"},style:{fontSize:t.typography.pxToRem(24)}},{props:{fontSize:"large"},style:{fontSize:t.typography.pxToRem(36)}},{props:{color:"action"},style:{color:(t.vars||t).palette.action.active}},{props:{color:"disabled"},style:{color:(t.vars||t).palette.action.disabled}},{props:{color:"inherit"},style:{color:void 0}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}}))]}))),$p=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiIcon"}),{baseClassName:n="material-icons",className:s,color:a="inherit",component:i="span",fontSize:l="medium",...c}=r,p={...r,baseClassName:n,color:a,component:i,fontSize:l},f=wp(p);return d.jsx(Rp,{as:i,className:j(n,"notranslate",f.root,s),ownerState:p,"aria-hidden":!0,ref:o,...c})});$p.muiName="Icon";function Pp(t){return K("MuiImageList",t)}const Rb=Z("MuiImageList",["root","masonry","quilted","standard","woven"]),Wn=u.createContext({}),kp=t=>{const{classes:e,variant:o}=t;return q({root:["root",o]},Pp,e)},Tp=S("ul",{name:"MuiImageList",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({display:"grid",overflowY:"auto",listStyle:"none",padding:0,WebkitOverflowScrolling:"touch",variants:[{props:{variant:"masonry"},style:{display:"block"}}]}),$b=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiImageList"}),{children:n,className:s,cols:a=2,component:i="ul",rowHeight:l="auto",gap:c=4,style:p,variant:f="standard",...v}=r,m=u.useMemo(()=>({rowHeight:l,gap:c,variant:f}),[l,c,f]),y=f==="masonry"?{columnCount:a,columnGap:c,...p}:{gridTemplateColumns:`repeat(${a}, 1fr)`,gap:c,...p},g={...r,component:i,gap:c,rowHeight:l,variant:f},h=kp(g);return d.jsx(Tp,{as:i,className:j(h.root,h[f],s),ref:o,style:y,ownerState:g,...v,children:d.jsx(Wn.Provider,{value:m,children:n})})});function Ip(t){return K("MuiImageListItem",t)}const ur=Z("MuiImageListItem",["root","img","standard","woven","masonry","quilted"]),Mp=t=>{const{classes:e,variant:o}=t;return q({root:["root",o],img:["img"]},Ip,e)},Ap=S("li",{name:"MuiImageListItem",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ur.img}`]:e.img},e.root,e[o.variant]]}})({display:"block",position:"relative",[`& .${ur.img}`]:{objectFit:"cover",width:"100%",height:"100%",display:"block"},variants:[{props:{variant:"standard"},style:{display:"flex",flexDirection:"column"}},{props:{variant:"woven"},style:{height:"100%",alignSelf:"center","&:nth-of-type(even)":{height:"70%"}}},{props:{variant:"standard"},style:{[`& .${ur.img}`]:{height:"auto",flexGrow:1}}}]}),Pb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiImageListItem"}),{children:n,className:s,cols:a=1,component:i="li",rows:l=1,style:c,...p}=r,{rowHeight:f="auto",gap:v,variant:m}=u.useContext(Wn);let y="auto";m==="woven"?y=void 0:f!=="auto"&&(y=f*l+v*(l-1));const g={...r,cols:a,component:i,gap:v,rowHeight:f,rows:l,variant:m},h=Mp(g);return d.jsx(Ap,{as:i,className:j(h.root,h[m],s),ref:o,style:{height:y,gridColumnEnd:m!=="masonry"?`span ${a}`:void 0,gridRowEnd:m!=="masonry"?`span ${l}`:void 0,marginBottom:m==="masonry"?v:void 0,breakInside:m==="masonry"?"avoid":void 0,...c},ownerState:g,...p,children:u.Children.map(n,b=>u.isValidElement(b)?b.type==="img"||Yo(b,["Image"])?u.cloneElement(b,{className:j(h.img,b.props.className)}):b:null)})});function Lp(t){return K("MuiImageListItemBar",t)}const kb=Z("MuiImageListItemBar",["root","positionBottom","positionTop","positionBelow","actionPositionLeft","actionPositionRight","titleWrap","titleWrapBottom","titleWrapTop","titleWrapBelow","titleWrapActionPosLeft","titleWrapActionPosRight","title","subtitle","actionIcon","actionIconActionPosLeft","actionIconActionPosRight"]),Bp=t=>{const{classes:e,position:o,actionIcon:r,actionPosition:n}=t,s={root:["root",`position${T(o)}`,`actionPosition${T(n)}`],titleWrap:["titleWrap",`titleWrap${T(o)}`,r&&`titleWrapActionPos${T(n)}`],title:["title"],subtitle:["subtitle"],actionIcon:["actionIcon",`actionIconActionPos${T(n)}`]};return q(s,Lp,e)},Np=S("div",{name:"MuiImageListItemBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${T(o.position)}`]]}})(U(({theme:t})=>({position:"absolute",left:0,right:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",fontFamily:t.typography.fontFamily,variants:[{props:{position:"bottom"},style:{bottom:0}},{props:{position:"top"},style:{top:0}},{props:{position:"below"},style:{position:"relative",background:"transparent",alignItems:"normal"}}]}))),Op=S("div",{name:"MuiImageListItemBar",slot:"TitleWrap",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.titleWrap,e[`titleWrap${T(o.position)}`],o.actionIcon&&e[`titleWrapActionPos${T(o.actionPosition)}`]]}})(U(({theme:t})=>({flexGrow:1,padding:"12px 16px",color:(t.vars||t).palette.common.white,overflow:"hidden",variants:[{props:{position:"below"},style:{padding:"6px 0 12px",color:"inherit"}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="left",style:{paddingLeft:0}},{props:({ownerState:e})=>e.actionIcon&&e.actionPosition==="right",style:{paddingRight:0}}]}))),zp=S("div",{name:"MuiImageListItemBar",slot:"Title",overridesResolver:(t,e)=>e.title})(U(({theme:t})=>({fontSize:t.typography.pxToRem(16),lineHeight:"24px",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),jp=S("div",{name:"MuiImageListItemBar",slot:"Subtitle",overridesResolver:(t,e)=>e.subtitle})(U(({theme:t})=>({fontSize:t.typography.pxToRem(12),lineHeight:1,textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}))),Dp=S("div",{name:"MuiImageListItemBar",slot:"ActionIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actionIcon,e[`actionIconActionPos${T(o.actionPosition)}`]]}})({variants:[{props:{actionPosition:"left"},style:{order:-1}}]}),Tb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiImageListItemBar"}),{actionIcon:n,actionPosition:s="right",className:a,subtitle:i,title:l,position:c="bottom",...p}=r,f={...r,position:c,actionPosition:s},v=Bp(f);return d.jsxs(Np,{ownerState:f,className:j(v.root,a),ref:o,...p,children:[d.jsxs(Op,{ownerState:f,className:v.titleWrap,children:[d.jsx(zp,{className:v.title,children:l}),i?d.jsx(jp,{className:v.subtitle,children:i}):null]}),n?d.jsx(Dp,{ownerState:f,className:v.actionIcon,children:n}):null]})});function Ep(t){return K("MuiLinearProgress",t)}const Ib=Z("MuiLinearProgress",["root","colorPrimary","colorSecondary","determinate","indeterminate","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","bar1","bar2","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","bar2Buffer"]),Cr=4,Sr=Ar` 0% { left: -35%; right: 100%; @@ -15,9 +15,9 @@ import{C as rs,b as ns,S as ss,s as as,c as T,d as kr,h as mo,e as De,f as is,g left: 100%; right: -90%; } -`,Fp=typeof wr!="string"?Ar` - animation: ${wr} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - `:null,Rr=Lr` +`,Fp=typeof Sr!="string"?Mr` + animation: ${Sr} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + `:null,wr=Ar` 0% { left: -200%; right: 100%; @@ -32,9 +32,9 @@ import{C as rs,b as ns,S as ss,s as as,c as T,d as kr,h as mo,e as De,f as is,g left: 107%; right: -8%; } -`,Up=typeof Rr!="string"?Ar` - animation: ${Rr} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite; - `:null,$r=Lr` +`,Up=typeof wr!="string"?Mr` + animation: ${wr} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite; + `:null,Rr=Ar` 0% { opacity: 1; background-position: 0 -23px; @@ -49,7 +49,7 @@ import{C as rs,b as ns,S as ss,s as as,c as T,d as kr,h as mo,e as De,f as is,g opacity: 1; background-position: -200px -23px; } -`,Wp=typeof $r!="string"?Ar` - animation: ${$r} 3s infinite linear; - `:null,Hp=t=>{const{classes:e,variant:o,color:r}=t,n={root:["root",`color${T(r)}`,o],dashed:["dashed",`dashedColor${T(r)}`],bar1:["bar","bar1",`barColor${T(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${T(r)}`,o==="buffer"&&`color${T(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return q(n,Ep,e)},zr=(t,e)=>t.vars?t.vars.palette.LinearProgress[`${e}Bg`]:t.palette.mode==="light"?Fe(t.palette[e].main,.62):Ee(t.palette[e].main,.5),Vp=S("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${T(o.color)}`],e[o.variant]]}})(U(({theme:t})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{backgroundColor:zr(t,e)}})),{props:({ownerState:e})=>e.color==="inherit"&&e.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),Gp=S("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.dashed,e[`dashedColor${T(o.color)}`]]}})(U(({theme:t})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>{const o=zr(t,e);return{props:{color:e},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),Wp||{animation:`${$r} 3s infinite linear`}),_p=S("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar1,e[`barColor${T(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar1Indeterminate,o.variant==="determinate"&&e.bar1Determinate,o.variant==="buffer"&&e.bar1Buffer]}})(U(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main}})),{props:{variant:"determinate"},style:{transition:`transform .${Sr}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${Sr}s linear`}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:Fp||{animation:`${wr} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),qp=S("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar2,e[`barColor${T(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar2Indeterminate,o.variant==="buffer"&&e.bar2Buffer]}})(U(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{"--LinearProgressBar2-barColor":(t.vars||t).palette[e].main}})),{props:({ownerState:e})=>e.variant!=="buffer"&&e.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:e})=>e.variant!=="buffer"&&e.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,variant:"buffer"},style:{backgroundColor:zr(t,e),transition:`transform .${Sr}s linear`}})),{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:Up||{animation:`${Rr} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),Xp=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiLinearProgress"}),{className:n,color:s="primary",value:a,valueBuffer:i,variant:l="indeterminate",...c}=r,p={...r,color:s,variant:l},f=Hp(p),v=He(),m={},y={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&a!==void 0){m["aria-valuenow"]=Math.round(a),m["aria-valuemin"]=0,m["aria-valuemax"]=100;let g=a-100;v&&(g=-g),y.bar1.transform=`translateX(${g}%)`}if(l==="buffer"&&i!==void 0){let g=(i||0)-100;v&&(g=-g),y.bar2.transform=`translateX(${g}%)`}return d.jsxs(Vp,{className:j(f.root,n),ownerState:p,role:"progressbar",...m,ref:o,...c,children:[l==="buffer"?d.jsx(Gp,{className:f.dashed,ownerState:p}):null,d.jsx(_p,{className:f.bar1,ownerState:p,style:y.bar1}),l==="determinate"?null:d.jsx(qp,{className:f.bar2,ownerState:p,style:y.bar2})]})});function Yp(t){return K("MuiLink",t)}const Kp=Z("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),Zp=({theme:t,ownerState:e})=>{const o=e.color,r=ko(t,`palette.${o}.main`,!1)||ko(t,`palette.${o}`,!1)||e.color,n=ko(t,`palette.${o}.mainChannel`)||ko(t,`palette.${o}Channel`);return"vars"in t&&n?`rgba(${n} / 0.4)`:Tt(r,.4)},rn={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},Jp=t=>{const{classes:e,component:o,focusVisible:r,underline:n}=t,s={root:["root",`underline${T(n)}`,o==="button"&&"button",r&&"focusVisible"]};return q(s,Yp,e)},Qp=S(re,{name:"MuiLink",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`underline${T(o.underline)}`],o.component==="button"&&e.button]}})(U(({theme:t})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:e,ownerState:o})=>e==="always"&&o.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{underline:"always",color:e},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.4)`:Tt(t.palette[e].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.4)`:Tt(t.palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.secondaryChannel} / 0.4)`:Tt(t.palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(t.vars||t).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Kp.focusVisible}`]:{outline:"auto"}}}]}))),Mb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiLink"}),n=se(),{className:s,color:a="primary",component:i="a",onBlur:l,onFocus:c,TypographyClasses:p,underline:f="always",variant:v="inherit",sx:m,...y}=r,[g,h]=u.useState(!1),b=P=>{Me(P.target)||h(!1),l&&l(P)},x=P=>{Me(P.target)&&h(!0),c&&c(P)},C={...r,color:a,component:i,focusVisible:g,underline:f,variant:v},R=Jp(C);return d.jsx(Qp,{color:a,className:j(R.root,s),classes:p,component:i,onBlur:b,onFocus:x,ref:o,ownerState:C,variant:v,...y,sx:[...rn[a]===void 0?[{color:a}]:[],...Array.isArray(m)?m:[m]],style:{...y.style,...f==="always"&&a!=="inherit"&&!rn[a]&&{"--Link-underlineColor":Zp({theme:n,ownerState:C})}}})});function td(t){return K("MuiListItemAvatar",t)}const Ab=Z("MuiListItemAvatar",["root","alignItemsFlexStart"]),ed=t=>{const{alignItems:e,classes:o}=t;return q({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},td,o)},od=S("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})({minWidth:56,flexShrink:0,variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}),Lb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemAvatar"}),{className:n,...s}=r,a=u.useContext(bo),i={...r,alignItems:a.alignItems},l=ed(i);return d.jsx(od,{className:j(l.root,n),ownerState:i,ref:o,...s})});function rd(t){return K("MuiMobileStepper",t)}const Bb=Z("MuiMobileStepper",["root","positionBottom","positionTop","positionStatic","dots","dot","dotActive","progress"]),nd=t=>{const{classes:e,position:o}=t,r={root:["root",`position${T(o)}`],dots:["dots"],dot:["dot"],dotActive:["dotActive"],progress:["progress"]};return q(r,rd,e)},sd=S(we,{name:"MuiMobileStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${T(o.position)}`]]}})(U(({theme:t})=>({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",background:(t.vars||t).palette.background.default,padding:8,variants:[{props:({position:e})=>e==="top"||e==="bottom",style:{position:"fixed",left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper}},{props:{position:"top"},style:{top:0}},{props:{position:"bottom"},style:{bottom:0}}]}))),ad=S("div",{name:"MuiMobileStepper",slot:"Dots",overridesResolver:(t,e)=>e.dots})({variants:[{props:{variant:"dots"},style:{display:"flex",flexDirection:"row"}}]}),id=S("div",{name:"MuiMobileStepper",slot:"Dot",shouldForwardProp:t=>Xo(t)&&t!=="dotActive",overridesResolver:(t,e)=>{const{dotActive:o}=t;return[e.dot,o&&e.dotActive]}})(U(({theme:t})=>({variants:[{props:{variant:"dots"},style:{transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),backgroundColor:(t.vars||t).palette.action.disabled,borderRadius:"50%",width:8,height:8,margin:"0 2px"}},{props:{variant:"dots",dotActive:!0},style:{backgroundColor:(t.vars||t).palette.primary.main}}]}))),ld=S(Xp,{name:"MuiMobileStepper",slot:"Progress",overridesResolver:(t,e)=>e.progress})({variants:[{props:{variant:"progress"},style:{width:"50%"}}]}),Nb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiMobileStepper"}),{activeStep:n=0,backButton:s,className:a,LinearProgressProps:i,nextButton:l,position:c="bottom",steps:p,variant:f="dots",slots:v={},slotProps:m={},...y}=r,g={...r,activeStep:n,position:c,variant:f};let h;f==="progress"&&(p===1?h=100:h=Math.ceil(n/(p-1)*100));const b=nd(g),x={slots:v,slotProps:{progress:i,...m}},[C,R]=V("root",{ref:o,elementType:sd,shouldForwardComponentProp:!0,className:j(b.root,a),externalForwardedProps:{...x,...y},ownerState:g,additionalProps:{square:!0,elevation:0}}),[P,N]=V("dots",{className:b.dots,elementType:ad,externalForwardedProps:x,ownerState:g}),[$,A]=V("dot",{elementType:id,externalForwardedProps:x,ownerState:g}),[k,I]=V("progress",{className:b.progress,elementType:ld,shouldForwardComponentProp:!0,externalForwardedProps:x,ownerState:g,additionalProps:{value:h,variant:"determinate"}});return d.jsxs(C,{...R,children:[s,f==="text"&&d.jsxs(u.Fragment,{children:[n+1," / ",p]}),f==="dots"&&d.jsx(P,{...N,children:[...new Array(p)].map((F,L)=>d.jsx($,{...A,className:j(b.dot,A.className,L===n&&b.dotActive),dotActive:L===n},L))}),f==="progress"&&d.jsx(k,{...I}),l]})}),cd=t=>{const{classes:e}=t;return q({root:["root"]},Ws,e)},pd=d.jsx(Us,{}),dd=u.forwardRef(function(e,o){const r=X({name:"MuiNativeSelect",props:e}),{className:n,children:s,classes:a={},IconComponent:i=$n,input:l=pd,inputProps:c,variant:p,...f}=r,v=Co(),m=Mr({props:r,muiFormControl:v,states:["variant"]}),y={...r,classes:a},g=cd(y),{root:h,...b}=a;return d.jsx(u.Fragment,{children:u.cloneElement(l,{inputComponent:Fs,inputProps:{children:s,classes:b,IconComponent:i,variant:m.variant,type:void 0,...c,...l?l.props.inputProps:{}},ref:o,...f,className:j(g.root,l.props.className,n)})})});dd.muiName="Select";function ud(t){const{children:e,defer:o=!1,fallback:r=null}=t,[n,s]=u.useState(!1);return So(()=>{o||s(!0)},[o]),u.useEffect(()=>{o&&s(!0)},[o]),n?e:r}function fd(t){return K("MuiPagination",t)}const Ob=Z("MuiPagination",["root","ul","outlined","text"]);function gd(t={}){const{boundaryCount:e=1,componentName:o="usePagination",count:r=1,defaultPage:n=1,disabled:s=!1,hideNextButton:a=!1,hidePrevButton:i=!1,onChange:l,page:c,showFirstButton:p=!1,showLastButton:f=!1,siblingCount:v=1,...m}=t,[y,g]=ue({controlled:c,default:n,name:o,state:"page"}),h=(k,I)=>{c||g(I),l&&l(k,I)},b=(k,I)=>{const F=I-k+1;return Array.from({length:F},(L,w)=>k+w)},x=b(1,Math.min(e,r)),C=b(Math.max(r-e+1,e+1),r),R=Math.max(Math.min(y-v,r-e-v*2-1),e+2),P=Math.min(Math.max(y+v,e+v*2+2),r-e-1),N=[...p?["first"]:[],...i?[]:["previous"],...x,...R>e+2?["start-ellipsis"]:e+1e?[r-e]:[],...C,...a?[]:["next"],...f?["last"]:[]],$=k=>{switch(k){case"first":return 1;case"previous":return y-1;case"next":return y+1;case"last":return r;default:return null}};return{items:N.map(k=>typeof k=="number"?{onClick:I=>{h(I,k)},type:"page",page:k,selected:k===y,disabled:s,"aria-current":k===y?"page":void 0}:{onClick:I=>{h(I,$(k))},type:k,page:$(k),selected:!1,disabled:s||!k.includes("ellipsis")&&(k==="next"||k==="last"?y>=r:y<=1)}),...m}}function md(t){return K("MuiPaginationItem",t)}const ee=Z("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon","colorPrimary","colorSecondary"]),Vn=Ht(d.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),Gn=Ht(d.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),bd=Ht(d.jsx("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),vd=Ht(d.jsx("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),_n=(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${T(o.size)}`],o.variant==="text"&&e[`text${T(o.color)}`],o.variant==="outlined"&&e[`outlined${T(o.color)}`],o.shape==="rounded"&&e.rounded,o.type==="page"&&e.page,(o.type==="start-ellipsis"||o.type==="end-ellipsis")&&e.ellipsis,(o.type==="previous"||o.type==="next")&&e.previousNext,(o.type==="first"||o.type==="last")&&e.firstLast]},yd=t=>{const{classes:e,color:o,disabled:r,selected:n,size:s,shape:a,type:i,variant:l}=t,c={root:["root",`size${T(s)}`,l,a,o!=="standard"&&`color${T(o)}`,o!=="standard"&&`${l}${T(o)}`,r&&"disabled",n&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[i]],icon:["icon"]};return q(c,md,e)},hd=S("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:_n})(U(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,height:"auto",[`&.${ee.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:{size:"small"},style:{minWidth:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}}]}))),xd=S(fe,{name:"MuiPaginationItem",slot:"Root",overridesResolver:_n})(U(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,[`&.${ee.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${ee.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},transition:t.transitions.create(["color","background-color"],{duration:t.transitions.duration.short}),"&:hover":{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ee.selected}`]:{backgroundColor:(t.vars||t).palette.action.selected,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${ee.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)},[`&.${ee.disabled}`]:{opacity:1,color:(t.vars||t).palette.action.disabled,backgroundColor:(t.vars||t).palette.action.selected}},variants:[{props:{size:"small"},style:{minWidth:26,height:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,height:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}},{props:{shape:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"outlined"},style:{border:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${ee.selected}`]:{[`&.${ee.disabled}`]:{borderColor:(t.vars||t).palette.action.disabledBackground,color:(t.vars||t).palette.action.disabled}}}},{props:{variant:"text"},style:{[`&.${ee.selected}`]:{[`&.${ee.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}},...Object.entries(t.palette).filter(Ft(["dark","contrastText"])).map(([e])=>({props:{variant:"text",color:e},style:{[`&.${ee.selected}`]:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}},[`&.${ee.focusVisible}`]:{backgroundColor:(t.vars||t).palette[e].dark},[`&.${ee.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}})),...Object.entries(t.palette).filter(Ft(["light"])).map(([e])=>({props:{variant:"outlined",color:e},style:{[`&.${ee.selected}`]:{color:(t.vars||t).palette[e].main,border:`1px solid ${t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:Tt(t.palette[e].main,.5)}`,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.activatedOpacity})`:Tt(t.palette[e].main,t.palette.action.activatedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ee.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity)}}}}))]}))),Cd=S("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:(t,e)=>e.icon})(U(({theme:t})=>({fontSize:t.typography.pxToRem(20),margin:"0 -8px",variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(22)}}]}))),Sd=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiPaginationItem"}),{className:n,color:s="standard",component:a,components:i={},disabled:l=!1,page:c,selected:p=!1,shape:f="circular",size:v="medium",slots:m={},slotProps:y={},type:g="page",variant:h="text",...b}=r,x={...r,color:s,disabled:l,selected:p,shape:f,size:v,type:g,variant:h},C=He(),R=yd(x),P={slots:{previous:m.previous??i.previous,next:m.next??i.next,first:m.first??i.first,last:m.last??i.last},slotProps:y},[N,$]=V("previous",{elementType:bd,externalForwardedProps:P,ownerState:x}),[A,k]=V("next",{elementType:vd,externalForwardedProps:P,ownerState:x}),[I,F]=V("first",{elementType:Vn,externalForwardedProps:P,ownerState:x}),[L,w]=V("last",{elementType:Gn,externalForwardedProps:P,ownerState:x}),M=C?{previous:"next",next:"previous",first:"last",last:"first"}[g]:g,H={previous:N,next:A,first:I,last:L}[M],z={previous:$,next:k,first:F,last:w}[M];return g==="start-ellipsis"||g==="end-ellipsis"?d.jsx(hd,{ref:o,ownerState:x,className:j(R.root,n),children:"…"}):d.jsxs(xd,{ref:o,ownerState:x,component:a,disabled:l,className:j(R.root,n),...b,children:[g==="page"&&c,H?d.jsx(Cd,{...z,className:R.icon,as:H}):null]})}),wd=t=>{const{classes:e,variant:o}=t;return q({root:["root",o],ul:["ul"]},fd,e)},Rd=S("nav",{name:"MuiPagination",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({}),$d=S("ul",{name:"MuiPagination",slot:"Ul",overridesResolver:(t,e)=>e.ul})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"});function Pd(t,e,o){return t==="page"?`${o?"":"Go to "}page ${e}`:`Go to ${t} page`}const zb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiPagination"}),{boundaryCount:n=1,className:s,color:a="standard",count:i=1,defaultPage:l=1,disabled:c=!1,getItemAriaLabel:p=Pd,hideNextButton:f=!1,hidePrevButton:v=!1,onChange:m,page:y,renderItem:g=I=>d.jsx(Sd,{...I}),shape:h="circular",showFirstButton:b=!1,showLastButton:x=!1,siblingCount:C=1,size:R="medium",variant:P="text",...N}=r,{items:$}=gd({...r,componentName:"Pagination"}),A={...r,boundaryCount:n,color:a,count:i,defaultPage:l,disabled:c,getItemAriaLabel:p,hideNextButton:f,hidePrevButton:v,renderItem:g,shape:h,showFirstButton:b,showLastButton:x,siblingCount:C,size:R,variant:P},k=wd(A);return d.jsx(Rd,{"aria-label":"pagination navigation",className:j(k.root,s),ownerState:A,ref:o,...N,children:d.jsx($d,{className:k.ul,ownerState:A,children:$.map((I,F)=>d.jsx("li",{children:g({...I,color:a,"aria-label":p(I.type,I.page,I.selected),shape:h,size:R,variant:P})},F))})})}),kd=Ht(d.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),Td=Ht(d.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),Id=S("span",{shouldForwardProp:Se})({position:"relative",display:"flex"}),Md=S(kd)({transform:"scale(1)"}),Ad=S(Td)(U(({theme:t})=>({left:0,position:"absolute",transform:"scale(0)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeIn,duration:t.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.shortest})}}]})));function qn(t){const{checked:e=!1,classes:o={},fontSize:r}=t,n={...t,checked:e};return d.jsxs(Id,{className:o.root,ownerState:n,children:[d.jsx(Md,{fontSize:r,className:o.background,ownerState:n}),d.jsx(Ad,{fontSize:r,className:o.dot,ownerState:n})]})}const Xn=u.createContext(void 0);function Ld(){return u.useContext(Xn)}function Bd(t){return K("MuiRadio",t)}const nn=Z("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),Nd=t=>{const{classes:e,color:o,size:r}=t,n={root:["root",`color${T(o)}`,r!=="medium"&&`size${T(r)}`]};return{...e,...q(n,Bd,e)}},Od=S(Or,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.size!=="medium"&&e[`size${T(o.size)}`],e[`color${T(o.color)}`]]}})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,[`&.${nn.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,disabled:!1},style:{[`&.${nn.checked}`]:{color:(t.vars||t).palette[e].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function zd(t,e){return typeof e=="object"&&e!==null?t===e:String(t)===String(e)}const jd=d.jsx(qn,{checked:!0}),Dd=d.jsx(qn,{}),jb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiRadio"}),{checked:n,checkedIcon:s=jd,color:a="primary",icon:i=Dd,name:l,onChange:c,size:p="medium",className:f,disabled:v,disableRipple:m=!1,slots:y={},slotProps:g={},inputProps:h,...b}=r,x=Co();let C=v;x&&typeof C>"u"&&(C=x.disabled),C??=!1;const R={...r,disabled:C,disableRipple:m,color:a,size:p},P=Nd(R),N=Ld();let $=n;const A=Hs(c,N&&N.onChange);let k=l;N&&(typeof $>"u"&&($=zd(N.value,r.value)),typeof k>"u"&&(k=N.name));const I=g.input??h,[F,L]=V("root",{ref:o,elementType:Od,className:j(P.root,f),shouldForwardComponentProp:!0,externalForwardedProps:{slots:y,slotProps:g,...b},getSlotProps:w=>({...w,onChange:(M,...H)=>{var z;(z=w.onChange)==null||z.call(w,M,...H),A(M,...H)}}),ownerState:R,additionalProps:{type:"radio",icon:u.cloneElement(i,{fontSize:i.props.fontSize??p}),checkedIcon:u.cloneElement(s,{fontSize:s.props.fontSize??p}),disabled:C,name:k,checked:$,slots:y,slotProps:{input:typeof I=="function"?I(R):I}}});return d.jsx(F,{...L,classes:P})});function Ed(t){return K("MuiRadioGroup",t)}const Db=Z("MuiRadioGroup",["root","row","error"]),Fd=t=>{const{classes:e,row:o,error:r}=t;return q({root:["root",o&&"row",r&&"error"]},Ed,e)},Eb=u.forwardRef(function(e,o){const{actions:r,children:n,className:s,defaultValue:a,name:i,onChange:l,value:c,...p}=e,f=u.useRef(null),v=Fd(e),[m,y]=ue({controlled:c,default:a,name:"RadioGroup"});u.useImperativeHandle(r,()=>({focus:()=>{let x=f.current.querySelector("input:not(:disabled):checked");x||(x=f.current.querySelector("input:not(:disabled)")),x&&x.focus()}}),[]);const g=ge(o,f),h=We(i),b=u.useMemo(()=>({name:h,onChange(x){y(x.target.value),l&&l(x,x.target.value)},value:m}),[h,l,y,m]);return d.jsx(Xn.Provider,{value:b,children:d.jsx(Jc,{role:"radiogroup",ref:g,className:j(v.root,s),...p,children:n})})}),Ud=Ht(d.jsx("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star"),Wd=Ht(d.jsx("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}),"StarBorder");function Hd(t){return K("MuiRating",t)}const ao=Z("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);function Vd(t){const e=t.toString().split(".")[1];return e?e.length:0}function fr(t,e){if(t==null)return t;const o=Math.round(t/e)*e;return Number(o.toFixed(Vd(e)))}const Gd=t=>{const{classes:e,size:o,readOnly:r,disabled:n,emptyValueFocused:s,focusVisible:a}=t,i={root:["root",`size${T(o)}`,n&&"disabled",a&&"focusVisible",r&&"readOnly"],label:["label","pristine"],labelEmptyValue:[s&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]};return q(i,Hd,e)},_d=S("span",{name:"MuiRating",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ao.visuallyHidden}`]:e.visuallyHidden},e.root,e[`size${T(o.size)}`],o.readOnly&&e.readOnly]}})(U(({theme:t})=>({display:"inline-flex",position:"relative",fontSize:t.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",width:"min-content",WebkitTapHighlightColor:"transparent",[`&.${ao.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${ao.focusVisible} .${ao.iconActive}`]:{outline:"1px solid #999"},[`& .${ao.visuallyHidden}`]:kn,variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(30)}},{props:({ownerState:e})=>e.readOnly,style:{pointerEvents:"none"}}]}))),Yn=S("label",{name:"MuiRating",slot:"Label",overridesResolver:({ownerState:t},e)=>[e.label,t.emptyValueFocused&&e.labelEmptyValueActive]})({cursor:"inherit",variants:[{props:({ownerState:t})=>t.emptyValueFocused,style:{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"}}]}),qd=S("span",{name:"MuiRating",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.iconEmpty&&e.iconEmpty,o.iconFilled&&e.iconFilled,o.iconHover&&e.iconHover,o.iconFocus&&e.iconFocus,o.iconActive&&e.iconActive]}})(U(({theme:t})=>({display:"flex",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),pointerEvents:"none",variants:[{props:({ownerState:e})=>e.iconActive,style:{transform:"scale(1.2)"}},{props:({ownerState:e})=>e.iconEmpty,style:{color:(t.vars||t).palette.action.disabled}}]}))),Xd=S("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:t=>Xo(t)&&t!=="iconActive",overridesResolver:(t,e)=>{const{iconActive:o}=t;return[e.decimal,o&&e.iconActive]}})({position:"relative",variants:[{props:({iconActive:t})=>t,style:{transform:"scale(1.2)"}}]});function Yd(t){const{value:e,...o}=t;return d.jsx("span",{...o})}function sn(t){const{classes:e,disabled:o,emptyIcon:r,focus:n,getLabelText:s,highlightSelectedOnly:a,hover:i,icon:l,IconContainerComponent:c,isActive:p,itemValue:f,labelProps:v,name:m,onBlur:y,onChange:g,onClick:h,onFocus:b,readOnly:x,ownerState:C,ratingValue:R,ratingValueRounded:P,slots:N={},slotProps:$={}}=t,A=a?f===R:f<=R,k=f<=i,I=f<=n,F=f===P,L=`${m}-${We()}`,w={slots:N,slotProps:$},[M,H]=V("icon",{elementType:qd,className:j(e.icon,A?e.iconFilled:e.iconEmpty,k&&e.iconHover,I&&e.iconFocus,p&&e.iconActive),externalForwardedProps:w,ownerState:{...C,iconEmpty:!A,iconFilled:A,iconHover:k,iconFocus:I,iconActive:p},additionalProps:{value:f},internalForwardedProps:{as:c}}),[z,Q]=V("label",{elementType:Yn,externalForwardedProps:w,ownerState:{...C,emptyValueFocused:void 0},additionalProps:{style:v==null?void 0:v.style,htmlFor:L}}),D=d.jsx(M,{...H,children:r&&!A?r:l});return x?d.jsx("span",{...v,children:D}):d.jsxs(u.Fragment,{children:[d.jsxs(z,{...Q,children:[D,d.jsx("span",{className:e.visuallyHidden,children:s(f)})]}),d.jsx("input",{className:e.visuallyHidden,onFocus:b,onBlur:y,onChange:g,onClick:h,disabled:o,value:f,id:L,type:"radio",name:m,checked:F})]})}const Kd=d.jsx(Ud,{fontSize:"inherit"}),Zd=d.jsx(Wd,{fontSize:"inherit"});function Jd(t){return`${t||"0"} Star${t!==1?"s":""}`}const Fb=u.forwardRef(function(e,o){const r=X({name:"MuiRating",props:e}),{component:n="span",className:s,defaultValue:a=null,disabled:i=!1,emptyIcon:l=Zd,emptyLabelText:c="Empty",getLabelText:p=Jd,highlightSelectedOnly:f=!1,icon:v=Kd,IconContainerComponent:m=Yd,max:y=5,name:g,onChange:h,onChangeActive:b,onMouseLeave:x,onMouseMove:C,precision:R=1,readOnly:P=!1,size:N="medium",value:$,slots:A={},slotProps:k={},...I}=r,F=We(g),[L,w]=ue({controlled:$,default:a,name:"Rating"}),M=fr(L,R),H=He(),[{hover:z,focus:Q},D]=u.useState({hover:-1,focus:-1});let et=M;z!==-1&&(et=z),Q!==-1&&(et=Q);const[pt,_]=u.useState(!1),wt=u.useRef(),Lt=ge(wt,o),Rt=ft=>{C&&C(ft);const Pt=wt.current,{right:It,left:Vt,width:E}=Pt.getBoundingClientRect();let G;H?G=(It-ft.clientX)/E:G=(ft.clientX-Vt)/E;let ot=fr(y*G+R/2,R);ot=Be(ot,R,y),D(gt=>gt.hover===ot&>.focus===ot?gt:{hover:ot,focus:ot}),_(!1),b&&z!==ot&&b(ft,ot)},lt=ft=>{x&&x(ft);const Pt=-1;D({hover:Pt,focus:Pt}),b&&z!==Pt&&b(ft,Pt)},rt=ft=>{let Pt=ft.target.value===""?null:parseFloat(ft.target.value);z!==-1&&(Pt=z),w(Pt),h&&h(ft,Pt)},W=ft=>{ft.clientX===0&&ft.clientY===0||(D({hover:-1,focus:-1}),w(null),h&&parseFloat(ft.target.value)===M&&h(ft,null))},it=ft=>{Me(ft.target)&&_(!0);const Pt=parseFloat(ft.target.value);D(It=>({hover:It.hover,focus:Pt}))},dt=ft=>{if(z!==-1)return;Me(ft.target)||_(!1);const Pt=-1;D(It=>({hover:It.hover,focus:Pt}))},[bt,$t]=u.useState(!1),nt={...r,component:n,defaultValue:a,disabled:i,emptyIcon:l,emptyLabelText:c,emptyValueFocused:bt,focusVisible:pt,getLabelText:p,icon:v,IconContainerComponent:m,max:y,precision:R,readOnly:P,size:N},ct=Gd(nt),vt={slots:A,slotProps:k},[yt,Ot]=V("root",{ref:Lt,className:j(ct.root,s),elementType:_d,externalForwardedProps:{...vt,...I,component:n},getSlotProps:ft=>({...ft,onMouseMove:Pt=>{var It;Rt(Pt),(It=ft.onMouseMove)==null||It.call(ft,Pt)},onMouseLeave:Pt=>{var It;lt(Pt),(It=ft.onMouseLeave)==null||It.call(ft,Pt)}}),ownerState:nt,additionalProps:{role:P?"img":null,"aria-label":P?p(et):null}}),[Y,tt]=V("label",{className:j(ct.label,ct.labelEmptyValue),elementType:Yn,externalForwardedProps:vt,ownerState:nt}),[st,xt]=V("decimal",{className:ct.decimal,elementType:Xd,externalForwardedProps:vt,ownerState:nt});return d.jsxs(yt,{...Ot,children:[Array.from(new Array(y)).map((ft,Pt)=>{const It=Pt+1,Vt={classes:ct,disabled:i,emptyIcon:l,focus:Q,getLabelText:p,highlightSelectedOnly:f,hover:z,icon:v,IconContainerComponent:m,name:F,onBlur:dt,onChange:rt,onClick:W,onFocus:it,ratingValue:et,ratingValueRounded:M,readOnly:P,ownerState:nt,slots:A,slotProps:k},E=It===Math.ceil(et)&&(z!==-1||Q!==-1);if(R<1){const G=Array.from(new Array(1/R));return u.createElement(st,{...xt,key:It,className:j(xt.className,E&&ct.iconActive),iconActive:E},G.map((ot,gt)=>{const ut=fr(It-1+(gt+1)*R,R);return d.jsx(sn,{...Vt,isActive:!1,itemValue:ut,labelProps:{style:G.length-1===gt?{}:{width:ut===et?`${(gt+1)*R*100}%`:"0%",overflow:"hidden",position:"absolute"}}},ut)}))}return d.jsx(sn,{...Vt,isActive:E,itemValue:It},It)}),!P&&!i&&d.jsxs(Y,{...tt,children:[d.jsx("input",{className:ct.visuallyHidden,value:"",id:`${F}-empty`,type:"radio",name:F,checked:M==null,onFocus:()=>$t(!0),onBlur:()=>$t(!1),onChange:rt}),d.jsx("span",{className:ct.visuallyHidden,children:c})]})]})});function Qd(t){return K("MuiScopedCssBaseline",t)}const Ub=Z("MuiScopedCssBaseline",["root"]),tu=t=>{const{classes:e}=t;return q({root:["root"]},Qd,e)},eu=S("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>{const e={};return t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([o,r])=>{var s,a;const n=t.getColorSchemeSelector(o);n.startsWith("@")?e[n]={colorScheme:(s=r.palette)==null?void 0:s.mode}:e[`&${n.replace(/\s*&/,"")}`]={colorScheme:(a=r.palette)==null?void 0:a.mode}}),{...On(t,!1),...zn(t),"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:t.typography.fontWeightBold},variants:[{props:{enableColorScheme:!0},style:t.vars?e:{colorScheme:t.palette.mode}}]}})),Wb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiScopedCssBaseline"}),{className:n,component:s="div",enableColorScheme:a,...i}=r,l={...r,component:s},c=tu(l);return d.jsx(eu,{as:s,className:j(c.root,n),ref:o,ownerState:l,...i})});function ou(t,e,o=(r,n)=>r===n){return t.length===e.length&&t.every((r,n)=>o(r,e[n]))}const ru=2;function qe(t,e,o,r,n){return o===1?Math.min(t+e,n):Math.max(t-e,r)}function Kn(t,e){return t-e}function an(t,e){const{index:o}=t.reduce((r,n,s)=>{const a=Math.abs(e-n);return r===null||a({left:`${t}%`}),leap:t=>({width:`${t}%`})},"horizontal-reverse":{offset:t=>({right:`${t}%`}),leap:t=>({width:`${t}%`})},vertical:{offset:t=>({bottom:`${t}%`}),leap:t=>({height:`${t}%`})}},lu=t=>t;let No;function cn(){return No===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?No=CSS.supports("touch-action","none"):No=!0),No}function cu(t){const{"aria-labelledby":e,defaultValue:o,disabled:r=!1,disableSwap:n=!1,isRtl:s=!1,marks:a=!1,max:i=100,min:l=0,name:c,onChange:p,onChangeCommitted:f,orientation:v="horizontal",rootRef:m,scale:y=lu,step:g=1,shiftStep:h=10,tabIndex:b,value:x}=t,C=u.useRef(void 0),[R,P]=u.useState(-1),[N,$]=u.useState(-1),[A,k]=u.useState(!1),I=u.useRef(0),F=u.useRef(null),[L,w]=ue({controlled:x,default:o??l,name:"Slider"}),M=p&&((E,G,ot)=>{const gt=E.nativeEvent||E,ut=new gt.constructor(gt.type,gt);Object.defineProperty(ut,"target",{writable:!0,value:{value:G,name:c}}),F.current=G,p(ut,G,ot)}),H=Array.isArray(L);let z=H?L.slice().sort(Kn):[L];z=z.map(E=>E==null?l:Be(E,l,i));const Q=a===!0&&g!==null?[...Array(Math.floor((i-l)/g)+1)].map((E,G)=>({value:l+g*G})):a||[],D=Q.map(E=>E.value),[et,pt]=u.useState(-1),_=u.useRef(null),wt=ge(m,_),Lt=E=>G=>{var gt;const ot=Number(G.currentTarget.getAttribute("data-index"));Me(G.target)&&pt(ot),$(ot),(gt=E==null?void 0:E.onFocus)==null||gt.call(E,G)},Rt=E=>G=>{var ot;Me(G.target)||pt(-1),$(-1),(ot=E==null?void 0:E.onBlur)==null||ot.call(E,G)},lt=(E,G)=>{const ot=Number(E.currentTarget.getAttribute("data-index")),gt=z[ot],ut=D.indexOf(gt);let J=G;if(Q&&g==null){const ht=D[D.length-1];J>=ht?J=ht:J<=D[0]?J=D[0]:J=JG=>{var ot;if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"].includes(G.key)){G.preventDefault();const gt=Number(G.currentTarget.getAttribute("data-index")),ut=z[gt];let J=null;if(g!=null){const ht=G.shiftKey?h:g;switch(G.key){case"ArrowUp":J=qe(ut,ht,1,l,i);break;case"ArrowRight":J=qe(ut,ht,s?-1:1,l,i);break;case"ArrowDown":J=qe(ut,ht,-1,l,i);break;case"ArrowLeft":J=qe(ut,ht,s?1:-1,l,i);break;case"PageUp":J=qe(ut,h,1,l,i);break;case"PageDown":J=qe(ut,h,-1,l,i);break;case"Home":J=l;break;case"End":J=i;break}}else if(Q){const ht=D[D.length-1],Dt=D.indexOf(ut),At=[s?"ArrowRight":"ArrowLeft","ArrowDown","PageDown","Home"],zt=[s?"ArrowLeft":"ArrowRight","ArrowUp","PageUp","End"];At.includes(G.key)?Dt===0?J=D[0]:J=D[Dt-1]:zt.includes(G.key)&&(Dt===D.length-1?J=ht:J=D[Dt+1])}J!=null&<(G,J)}(ot=E==null?void 0:E.onKeyDown)==null||ot.call(E,G)};So(()=>{var E;r&&_.current.contains(document.activeElement)&&((E=document.activeElement)==null||E.blur())},[r]),r&&R!==-1&&P(-1),r&&et!==-1&&pt(-1);const W=E=>G=>{var ot;(ot=E.onChange)==null||ot.call(E,G),lt(G,G.target.valueAsNumber)},it=u.useRef(void 0);let dt=v;s&&v==="horizontal"&&(dt+="-reverse");const bt=({finger:E,move:G=!1})=>{const{current:ot}=_,{width:gt,height:ut,bottom:J,left:ht}=ot.getBoundingClientRect();let Dt;dt.startsWith("vertical")?Dt=(J-E.y)/ut:Dt=(E.x-ht)/gt,dt.includes("-reverse")&&(Dt=1-Dt);let At;if(At=nu(Dt,l,i),g)At=au(At,g,l);else{const qt=an(D,At);At=D[qt]}At=Be(At,l,i);let zt=0;if(H){G?zt=it.current:zt=an(z,At),n&&(At=Be(At,z[zt-1]||-1/0,z[zt+1]||1/0));const qt=At;At=ln({values:z,newValue:At,index:zt}),n&&G||(zt=At.indexOf(qt),it.current=zt)}return{newValue:At,activeIndex:zt}},$t=ne(E=>{const G=Ao(E,C);if(!G)return;if(I.current+=1,E.type==="mousemove"&&E.buttons===0){nt(E);return}const{newValue:ot,activeIndex:gt}=bt({finger:G,move:!0});Lo({sliderRef:_,activeIndex:gt,setActive:P}),w(ot),!A&&I.current>ru&&k(!0),M&&!Bo(ot,L)&&M(E,ot,gt)}),nt=ne(E=>{const G=Ao(E,C);if(k(!1),!G)return;const{newValue:ot}=bt({finger:G,move:!0});P(-1),E.type==="touchend"&&$(-1),f&&f(E,F.current??ot),C.current=void 0,vt()}),ct=ne(E=>{if(r)return;cn()||E.preventDefault();const G=E.changedTouches[0];G!=null&&(C.current=G.identifier);const ot=Ao(E,C);if(ot!==!1){const{newValue:ut,activeIndex:J}=bt({finger:ot});Lo({sliderRef:_,activeIndex:J,setActive:P}),w(ut),M&&!Bo(ut,L)&&M(E,ut,J)}I.current=0;const gt=de(_.current);gt.addEventListener("touchmove",$t,{passive:!0}),gt.addEventListener("touchend",nt,{passive:!0})}),vt=u.useCallback(()=>{const E=de(_.current);E.removeEventListener("mousemove",$t),E.removeEventListener("mouseup",nt),E.removeEventListener("touchmove",$t),E.removeEventListener("touchend",nt)},[nt,$t]);u.useEffect(()=>{const{current:E}=_;return E.addEventListener("touchstart",ct,{passive:cn()}),()=>{E.removeEventListener("touchstart",ct),vt()}},[vt,ct]),u.useEffect(()=>{r&&vt()},[r,vt]);const yt=E=>G=>{var ut;if((ut=E.onMouseDown)==null||ut.call(E,G),r||G.defaultPrevented||G.button!==0)return;G.preventDefault();const ot=Ao(G,C);if(ot!==!1){const{newValue:J,activeIndex:ht}=bt({finger:ot});Lo({sliderRef:_,activeIndex:ht,setActive:P}),w(J),M&&!Bo(J,L)&&M(G,J,ht)}I.current=0;const gt=de(_.current);gt.addEventListener("mousemove",$t,{passive:!0}),gt.addEventListener("mouseup",nt)},Ot=qo(H?z[0]:l,l,i),Y=qo(z[z.length-1],l,i)-Ot,tt=(E={})=>{const G=fo(E),ot={onMouseDown:yt(G||{})},gt={...G,...ot};return{...E,ref:wt,...gt}},st=E=>G=>{var gt;(gt=E.onMouseOver)==null||gt.call(E,G);const ot=Number(G.currentTarget.getAttribute("data-index"));$(ot)},xt=E=>G=>{var ot;(ot=E.onMouseLeave)==null||ot.call(E,G),$(-1)},ft=(E={})=>{const G=fo(E),ot={onMouseOver:st(G||{}),onMouseLeave:xt(G||{})};return{...E,...G,...ot}},Pt=E=>({pointerEvents:R!==-1&&R!==E?"none":void 0});let It;return v==="vertical"&&(It=s?"vertical-rl":"vertical-lr"),{active:R,axis:dt,axisProps:iu,dragging:A,focusedThumbIndex:et,getHiddenInputProps:(E={})=>{const G=fo(E),ot={onChange:W(G||{}),onFocus:Lt(G||{}),onBlur:Rt(G||{}),onKeyDown:rt(G||{})},gt={...G,...ot};return{tabIndex:b,"aria-labelledby":e,"aria-orientation":v,"aria-valuemax":y(i),"aria-valuemin":y(l),name:c,type:"range",min:t.min,max:t.max,step:t.step===null&&t.marks?"any":t.step??void 0,disabled:r,...E,...gt,style:{...kn,direction:s?"rtl":"ltr",width:"100%",height:"100%",writingMode:It}}},getRootProps:tt,getThumbProps:ft,marks:Q,open:N,range:H,rootRef:wt,trackLeap:Y,trackOffset:Ot,values:z,getThumbStyle:Pt}}const pu=t=>!t||!Uo(t);function du(t){return K("MuiSlider",t)}const le=Z("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","thumbColorError","thumbColorSuccess","thumbColorInfo","thumbColorWarning","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),uu=t=>{const{open:e}=t;return{offset:j(e&&le.valueLabelOpen),circle:le.valueLabelCircle,label:le.valueLabelLabel}};function fu(t){const{children:e,className:o,value:r}=t,n=uu(t);return e?u.cloneElement(e,{className:j(e.props.className)},d.jsxs(u.Fragment,{children:[e.props.children,d.jsx("span",{className:j(n.offset,o),"aria-hidden":!0,children:d.jsx("span",{className:n.circle,children:d.jsx("span",{className:n.label,children:r})})})]})):null}function pn(t){return t}const gu=S("span",{name:"MuiSlider",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${T(o.color)}`],o.size!=="medium"&&e[`size${T(o.size)}`],o.marked&&e.marked,o.orientation==="vertical"&&e.vertical,o.track==="inverted"&&e.trackInverted,o.track===!1&&e.trackFalse]}})(U(({theme:t})=>({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"},[`&.${le.disabled}`]:{pointerEvents:"none",cursor:"default",color:(t.vars||t).palette.grey[400]},[`&.${le.dragging}`]:{[`& .${le.thumb}, & .${le.track}`]:{transition:"none"}},variants:[...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}})),{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]}))),mu=S("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(t,e)=>e.rail})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),bu=S("span",{name:"MuiSlider",slot:"Track",overridesResolver:(t,e)=>e.track})(U(({theme:t})=>({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:t.transitions.create(["left","width","bottom","height"],{duration:t.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{border:"none"}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,track:"inverted"},style:{...t.vars?{backgroundColor:t.vars.palette.Slider[`${e}Track`],borderColor:t.vars.palette.Slider[`${e}Track`]}:{backgroundColor:Fe(t.palette[e].main,.62),borderColor:Fe(t.palette[e].main,.62),...t.applyStyles("dark",{backgroundColor:Ee(t.palette[e].main,.5)}),...t.applyStyles("dark",{borderColor:Ee(t.palette[e].main,.5)})}}}))]}))),vu=S("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.thumb,e[`thumbColor${T(o.color)}`],o.size!=="medium"&&e[`thumbSize${T(o.size)}`]]}})(U(({theme:t})=>({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:t.transitions.create(["box-shadow","left","bottom"],{duration:t.transitions.duration.shortest}),"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(t.vars||t).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&.${le.disabled}`]:{"&:hover":{boxShadow:"none"}},variants:[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{[`&:hover, &.${le.focusVisible}`]:{...t.vars?{boxShadow:`0px 0px 0px 8px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${Tt(t.palette[e].main,.16)}`},"@media (hover: none)":{boxShadow:"none"}},[`&.${le.active}`]:{...t.vars?{boxShadow:`0px 0px 0px 14px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${Tt(t.palette[e].main,.16)}`}}}}))]}))),yu=S(fu,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(t,e)=>e.valueLabel})(U(({theme:t})=>({zIndex:1,whiteSpace:"nowrap",...t.typography.body2,fontWeight:500,transition:t.transitions.create(["transform"],{duration:t.transitions.duration.shortest}),position:"absolute",backgroundColor:(t.vars||t).palette.grey[600],borderRadius:2,color:(t.vars||t).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:{transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"},[`&.${le.valueLabelOpen}`]:{transform:"translateY(-100%) scale(1)"}}},{props:{orientation:"vertical"},style:{transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"},[`&.${le.valueLabelOpen}`]:{transform:"translateY(-50%) scale(1)"}}},{props:{size:"small"},style:{fontSize:t.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]}))),hu=S("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:t=>Xo(t)&&t!=="markActive",overridesResolver:(t,e)=>{const{markActive:o}=t;return[e.mark,o&&e.markActive]}})(U(({theme:t})=>({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(t.vars||t).palette.background.paper,opacity:.8}}]}))),xu=S("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:t=>Xo(t)&&t!=="markLabelActive",overridesResolver:(t,e)=>e.markLabel})(U(({theme:t})=>({...t.typography.body2,color:(t.vars||t).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(t.vars||t).palette.text.primary}}]}))),Cu=t=>{const{disabled:e,dragging:o,marked:r,orientation:n,track:s,classes:a,color:i,size:l}=t,c={root:["root",e&&"disabled",o&&"dragging",r&&"marked",n==="vertical"&&"vertical",s==="inverted"&&"trackInverted",s===!1&&"trackFalse",i&&`color${T(i)}`,l&&`size${T(l)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",e&&"disabled",l&&`thumbSize${T(l)}`,i&&`thumbColor${T(i)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return q(c,du,a)},Su=({children:t})=>t,Hb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSlider"}),n=He(),{"aria-label":s,"aria-valuetext":a,"aria-labelledby":i,component:l="span",components:c={},componentsProps:p={},color:f="primary",classes:v,className:m,disableSwap:y=!1,disabled:g=!1,getAriaLabel:h,getAriaValueText:b,marks:x=!1,max:C=100,min:R=0,name:P,onChange:N,onChangeCommitted:$,orientation:A="horizontal",shiftStep:k=10,size:I="medium",step:F=1,scale:L=pn,slotProps:w,slots:M,tabIndex:H,track:z="normal",value:Q,valueLabelDisplay:D="off",valueLabelFormat:et=pn,...pt}=r,_={...r,isRtl:n,max:C,min:R,classes:v,disabled:g,disableSwap:y,orientation:A,marks:x,color:f,size:I,step:F,shiftStep:k,scale:L,track:z,valueLabelDisplay:D,valueLabelFormat:et},{axisProps:wt,getRootProps:Lt,getHiddenInputProps:Rt,getThumbProps:lt,open:rt,active:W,axis:it,focusedThumbIndex:dt,range:bt,dragging:$t,marks:nt,values:ct,trackOffset:vt,trackLeap:yt,getThumbStyle:Ot}=cu({..._,rootRef:o});_.marked=nt.length>0&&nt.some(Bt=>Bt.label),_.dragging=$t,_.focusedThumbIndex=dt;const Y=Cu(_),tt=(M==null?void 0:M.root)??c.Root??gu,st=(M==null?void 0:M.rail)??c.Rail??mu,xt=(M==null?void 0:M.track)??c.Track??bu,ft=(M==null?void 0:M.thumb)??c.Thumb??vu,Pt=(M==null?void 0:M.valueLabel)??c.ValueLabel??yu,It=(M==null?void 0:M.mark)??c.Mark??hu,Vt=(M==null?void 0:M.markLabel)??c.MarkLabel??xu,E=(M==null?void 0:M.input)??c.Input??"input",G=(w==null?void 0:w.root)??p.root,ot=(w==null?void 0:w.rail)??p.rail,gt=(w==null?void 0:w.track)??p.track,ut=(w==null?void 0:w.thumb)??p.thumb,J=(w==null?void 0:w.valueLabel)??p.valueLabel,ht=(w==null?void 0:w.mark)??p.mark,Dt=(w==null?void 0:w.markLabel)??p.markLabel,At=(w==null?void 0:w.input)??p.input,zt=Ce({elementType:tt,getSlotProps:Lt,externalSlotProps:G,externalForwardedProps:pt,additionalProps:{...pu(tt)&&{as:l}},ownerState:{..._,...G==null?void 0:G.ownerState},className:[Y.root,m]}),qt=Ce({elementType:st,externalSlotProps:ot,ownerState:_,className:Y.rail}),Xt=Ce({elementType:xt,externalSlotProps:gt,additionalProps:{style:{...wt[it].offset(vt),...wt[it].leap(yt)}},ownerState:{..._,...gt==null?void 0:gt.ownerState},className:Y.track}),ye=Ce({elementType:ft,getSlotProps:lt,externalSlotProps:ut,ownerState:{..._,...ut==null?void 0:ut.ownerState},className:Y.thumb}),ae=Ce({elementType:Pt,externalSlotProps:J,ownerState:{..._,...J==null?void 0:J.ownerState},className:Y.valueLabel}),he=Ce({elementType:It,externalSlotProps:ht,ownerState:_,className:Y.mark}),Yt=Ce({elementType:Vt,externalSlotProps:Dt,ownerState:_,className:Y.markLabel}),ce=Ce({elementType:E,getSlotProps:Rt,externalSlotProps:At,ownerState:_});return d.jsxs(tt,{...zt,children:[d.jsx(st,{...qt}),d.jsx(xt,{...Xt}),nt.filter(Bt=>Bt.value>=R&&Bt.value<=C).map((Bt,Et)=>{const Kt=qo(Bt.value,R,C),pe=wt[it].offset(Kt);let Zt;return z===!1?Zt=ct.includes(Bt.value):Zt=z==="normal"&&(bt?Bt.value>=ct[0]&&Bt.value<=ct[ct.length-1]:Bt.value<=ct[0])||z==="inverted"&&(bt?Bt.value<=ct[0]||Bt.value>=ct[ct.length-1]:Bt.value>=ct[0]),d.jsxs(u.Fragment,{children:[d.jsx(It,{"data-index":Et,...he,...!Uo(It)&&{markActive:Zt},style:{...pe,...he.style},className:j(he.className,Zt&&Y.markActive)}),Bt.label!=null?d.jsx(Vt,{"aria-hidden":!0,"data-index":Et,...Yt,...!Uo(Vt)&&{markLabelActive:Zt},style:{...pe,...Yt.style},className:j(Y.markLabel,Yt.className,Zt&&Y.markLabelActive),children:Bt.label}):null]},Et)}),ct.map((Bt,Et)=>{const Kt=qo(Bt,R,C),pe=wt[it].offset(Kt),Zt=D==="off"?Su:Pt;return d.jsx(Zt,{...!Uo(Zt)&&{valueLabelFormat:et,valueLabelDisplay:D,value:typeof et=="function"?et(L(Bt),Et):et,index:Et,open:rt===Et||W===Et||D==="on",disabled:g},...ae,children:d.jsx(ft,{"data-index":Et,...ye,className:j(Y.thumb,ye.className,W===Et&&Y.active,dt===Et&&Y.focusVisible),style:{...pe,...Ot(Et),...ye.style},children:d.jsx(E,{"data-index":Et,"aria-label":h?h(Et):s,"aria-valuenow":L(Bt),"aria-labelledby":i,"aria-valuetext":b?b(L(Bt),Et):a,value:ct[Et],...ce})})},Et)})]})});function wu(t={}){const{autoHideDuration:e=null,disableWindowBlurListener:o=!1,onClose:r,open:n,resumeHideDuration:s}=t,a=Oe();u.useEffect(()=>{if(!n)return;function b(x){x.defaultPrevented||x.key==="Escape"&&(r==null||r(x,"escapeKeyDown"))}return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b)}},[n,r]);const i=ne((b,x)=>{r==null||r(b,x)}),l=ne(b=>{!r||b==null||a.start(b,()=>{i(null,"timeout")})});u.useEffect(()=>(n&&l(e),a.clear),[n,e,l,a]);const c=b=>{r==null||r(b,"clickaway")},p=a.clear,f=u.useCallback(()=>{e!=null&&l(s??e*.5)},[e,s,l]),v=b=>x=>{const C=b.onBlur;C==null||C(x),f()},m=b=>x=>{const C=b.onFocus;C==null||C(x),p()},y=b=>x=>{const C=b.onMouseEnter;C==null||C(x),p()},g=b=>x=>{const C=b.onMouseLeave;C==null||C(x),f()};return u.useEffect(()=>{if(!o&&n)return window.addEventListener("focus",f),window.addEventListener("blur",p),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",p)}},[o,n,f,p]),{getRootProps:(b={})=>{const x={...fo(t),...fo(b)};return{role:"presentation",...b,...x,onBlur:v(x),onFocus:m(x),onMouseEnter:y(x),onMouseLeave:g(x)}},onClickAway:c}}function Ru(t){return K("MuiSnackbarContent",t)}const Vb=Z("MuiSnackbarContent",["root","message","action"]),$u=t=>{const{classes:e}=t;return q({root:["root"],action:["action"],message:["message"]},Ru,e)},Pu=S(we,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>{const e=t.palette.mode==="light"?.8:.98,o=Ho(t.palette.background.default,e);return{...t.typography.body2,color:t.vars?t.vars.palette.SnackbarContent.color:t.palette.getContrastText(o),backgroundColor:t.vars?t.vars.palette.SnackbarContent.bg:o,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(t.vars||t).shape.borderRadius,flexGrow:1,[t.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),ku=S("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0"}),Tu=S("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),Iu=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSnackbarContent"}),{action:n,className:s,message:a,role:i="alert",...l}=r,c=r,p=$u(c);return d.jsxs(Pu,{role:i,square:!0,elevation:6,className:j(p.root,s),ownerState:c,ref:o,...l,children:[d.jsx(ku,{className:p.message,ownerState:c,children:a}),n?d.jsx(Tu,{className:p.action,ownerState:c,children:n}):null]})});function Mu(t){return K("MuiSnackbar",t)}const Gb=Z("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]),Au=t=>{const{classes:e,anchorOrigin:o}=t,r={root:["root",`anchorOrigin${T(o.vertical)}${T(o.horizontal)}`]};return q(r,Mu,e)},Lu=S("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`anchorOrigin${T(o.anchorOrigin.vertical)}${T(o.anchorOrigin.horizontal)}`]]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:e})=>e.anchorOrigin.vertical==="top",style:{top:8,[t.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:e})=>e.anchorOrigin.vertical!=="top",style:{bottom:8,[t.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[t.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[t.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="center",style:{[t.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),_b=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSnackbar"}),n=se(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{action:a,anchorOrigin:{vertical:i,horizontal:l}={vertical:"bottom",horizontal:"left"},autoHideDuration:c=null,children:p,className:f,ClickAwayListenerProps:v,ContentProps:m,disableWindowBlurListener:y=!1,message:g,onBlur:h,onClose:b,onFocus:x,onMouseEnter:C,onMouseLeave:R,open:P,resumeHideDuration:N,slots:$={},slotProps:A={},TransitionComponent:k,transitionDuration:I=s,TransitionProps:{onEnter:F,onExited:L,...w}={},...M}=r,H={...r,anchorOrigin:{vertical:i,horizontal:l},autoHideDuration:c,disableWindowBlurListener:y,TransitionComponent:k,transitionDuration:I},z=Au(H),{getRootProps:Q,onClickAway:D}=wu({...H}),[et,pt]=u.useState(!0),_=ct=>{pt(!0),L&&L(ct)},wt=(ct,vt)=>{pt(!1),F&&F(ct,vt)},Lt={slots:{transition:k,...$},slotProps:{content:m,clickAwayListener:v,transition:w,...A}},[Rt,lt]=V("root",{ref:o,className:[z.root,f],elementType:Lu,getSlotProps:Q,externalForwardedProps:{...Lt,...M},ownerState:H}),[rt,{ownerState:W,...it}]=V("clickAwayListener",{elementType:Rc,externalForwardedProps:Lt,getSlotProps:ct=>({onClickAway:(...vt)=>{var yt;(yt=ct.onClickAway)==null||yt.call(ct,...vt),D(...vt)}}),ownerState:H}),[dt,bt]=V("content",{elementType:Iu,shouldForwardComponentProp:!0,externalForwardedProps:Lt,additionalProps:{message:g,action:a},ownerState:H}),[$t,nt]=V("transition",{elementType:Tn,externalForwardedProps:Lt,getSlotProps:ct=>({onEnter:(...vt)=>{var yt;(yt=ct.onEnter)==null||yt.call(ct,...vt),wt(...vt)},onExited:(...vt)=>{var yt;(yt=ct.onExited)==null||yt.call(ct,...vt),_(...vt)}}),additionalProps:{appear:!0,in:P,timeout:I,direction:i==="top"?"down":"up"},ownerState:H});return!P&&et?null:d.jsx(rt,{...it,...$.clickAwayListener&&{ownerState:W},children:d.jsx(Rt,{...lt,children:d.jsx($t,{...nt,children:p||d.jsx(dt,{...bt})})})})}),Bu={entering:{transform:"none"},entered:{transform:"none"}},Nu=u.forwardRef(function(e,o){const r=se(),n={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:i,easing:l,in:c,onEnter:p,onEntered:f,onEntering:v,onExit:m,onExited:y,onExiting:g,style:h,timeout:b=n,TransitionComponent:x=Ir,...C}=e,R=u.useRef(null),P=ge(R,Zo(i),o),N=M=>H=>{if(M){const z=R.current;H===void 0?M(z):M(z,H)}},$=N(v),A=N((M,H)=>{Pn(M);const z=Ue({style:h,timeout:b,easing:l},{mode:"enter"});M.style.webkitTransition=r.transitions.create("transform",z),M.style.transition=r.transitions.create("transform",z),p&&p(M,H)}),k=N(f),I=N(g),F=N(M=>{const H=Ue({style:h,timeout:b,easing:l},{mode:"exit"});M.style.webkitTransition=r.transitions.create("transform",H),M.style.transition=r.transitions.create("transform",H),m&&m(M)}),L=N(y),w=M=>{s&&s(R.current,M)};return d.jsx(x,{appear:a,in:c,nodeRef:R,onEnter:A,onEntered:k,onEntering:$,onExit:F,onExited:L,onExiting:I,addEndListener:w,timeout:b,...C,children:(M,{ownerState:H,...z})=>u.cloneElement(i,{style:{transform:"scale(0)",visibility:M==="exited"&&!c?"hidden":void 0,...Bu[M],...h,...i.props.style},ref:P,...z})})});function Ou(t){return K("MuiSpeedDial",t)}const Oo=Z("MuiSpeedDial",["root","fab","directionUp","directionDown","directionLeft","directionRight","actions","actionsClosed"]),zu=t=>{const{classes:e,open:o,direction:r}=t,n={root:["root",`direction${T(r)}`],fab:["fab"],actions:["actions",!o&&"actionsClosed"]};return q(n,Ou,e)};function io(t){if(t==="up"||t==="down")return"vertical";if(t==="right"||t==="left")return"horizontal"}const Pe=32,zo=16,ju=S("div",{name:"MuiSpeedDial",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`direction${T(o.direction)}`]]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.speedDial,display:"flex",alignItems:"center",pointerEvents:"none",variants:[{props:{direction:"up"},style:{flexDirection:"column-reverse",[`& .${Oo.actions}`]:{flexDirection:"column-reverse",marginBottom:-Pe,paddingBottom:zo+Pe}}},{props:{direction:"down"},style:{flexDirection:"column",[`& .${Oo.actions}`]:{flexDirection:"column",marginTop:-Pe,paddingTop:zo+Pe}}},{props:{direction:"left"},style:{flexDirection:"row-reverse",[`& .${Oo.actions}`]:{flexDirection:"row-reverse",marginRight:-Pe,paddingRight:zo+Pe}}},{props:{direction:"right"},style:{flexDirection:"row",[`& .${Oo.actions}`]:{flexDirection:"row",marginLeft:-Pe,paddingLeft:zo+Pe}}}]}))),Du=S(Fn,{name:"MuiSpeedDial",slot:"Fab",overridesResolver:(t,e)=>e.fab})({pointerEvents:"auto"}),Eu=S("div",{name:"MuiSpeedDial",slot:"Actions",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actions,!o.open&&e.actionsClosed]}})({display:"flex",pointerEvents:"auto",variants:[{props:({ownerState:t})=>!t.open,style:{transition:"top 0s linear 0.2s",pointerEvents:"none"}}]}),qb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSpeedDial"}),n=se(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{ariaLabel:a,FabProps:{ref:i,...l}={},children:c,className:p,direction:f="up",hidden:v=!1,icon:m,onBlur:y,onClose:g,onFocus:h,onKeyDown:b,onMouseEnter:x,onMouseLeave:C,onOpen:R,open:P,openIcon:N,slots:$={},slotProps:A={},TransitionComponent:k,TransitionProps:I,transitionDuration:F=s,...L}=r,[w,M]=ue({controlled:P,default:!1,name:"SpeedDial",state:"open"}),H={...r,open:w,direction:f},z=zu(H),Q=Oe(),D=u.useRef(0),et=u.useRef(),pt=u.useRef([]);pt.current=[pt.current[0]];const _=u.useCallback(tt=>{pt.current[0]=tt},[]),wt=ge(i,_),Lt=(tt,st)=>xt=>{pt.current[tt+1]=xt,st&&st(xt)},Rt=tt=>{b&&b(tt);const st=tt.key.replace("Arrow","").toLowerCase(),{current:xt=st}=et;if(tt.key==="Escape"){M(!1),pt.current[0].focus(),g&&g(tt,"escapeKeyDown");return}if(io(st)===io(xt)&&io(st)!==void 0){tt.preventDefault();const ft=st===xt?1:-1,Pt=Be(D.current+ft,0,pt.current.length-1);pt.current[Pt].focus(),D.current=Pt,et.current=xt}};u.useEffect(()=>{w||(D.current=0,et.current=void 0)},[w]);const lt=tt=>{tt.type==="mouseleave"&&C&&C(tt),tt.type==="blur"&&y&&y(tt),Q.clear(),tt.type==="blur"?Q.start(0,()=>{M(!1),g&&g(tt,"blur")}):(M(!1),g&&g(tt,"mouseLeave"))},rt=tt=>{l.onClick&&l.onClick(tt),Q.clear(),w?(M(!1),g&&g(tt,"toggle")):(M(!0),R&&R(tt,"toggle"))},W=tt=>{tt.type==="mouseenter"&&x&&x(tt),tt.type==="focus"&&h&&h(tt),Q.clear(),w||Q.start(0,()=>{M(!0),R&&R(tt,{focus:"focus",mouseenter:"mouseEnter"}[tt.type])})},it=a.replace(/^[^a-z]+|[^\w:.-]+/gi,""),dt=u.Children.toArray(c).filter(tt=>u.isValidElement(tt)),bt=dt.map((tt,st)=>{const{FabProps:{ref:xt,...ft}={},tooltipPlacement:Pt}=tt.props,It=Pt||(io(f)==="vertical"?"left":"top");return u.cloneElement(tt,{FabProps:{...ft,ref:Lt(st,xt)},delay:30*(w?st:dt.length-st),open:w,tooltipPlacement:It,id:`${it}-action-${st}`})}),$t={transition:k,...$},nt={transition:I,...A},ct={slots:$t,slotProps:nt},[vt,yt]=V("root",{elementType:ju,externalForwardedProps:{...ct,...L},ownerState:H,ref:o,className:j(z.root,p),additionalProps:{role:"presentation"},getSlotProps:tt=>({...tt,onKeyDown:st=>{var xt;(xt=tt.onKeyDown)==null||xt.call(tt,st),Rt(st)},onBlur:st=>{var xt;(xt=tt.onBlur)==null||xt.call(tt,st),lt(st)},onFocus:st=>{var xt;(xt=tt.onFocus)==null||xt.call(tt,st),W(st)},onMouseEnter:st=>{var xt;(xt=tt.onMouseEnter)==null||xt.call(tt,st),W(st)},onMouseLeave:st=>{var xt;(xt=tt.onMouseLeave)==null||xt.call(tt,st),lt(st)}})}),[Ot,Y]=V("transition",{elementType:Nu,externalForwardedProps:ct,ownerState:H});return d.jsxs(vt,{...yt,children:[d.jsx(Ot,{in:!v,timeout:F,unmountOnExit:!0,...Y,children:d.jsx(Du,{color:"primary","aria-label":a,"aria-haspopup":"true","aria-expanded":w,"aria-controls":`${it}-actions`,...l,onClick:rt,className:j(z.fab,l.className),ref:wt,ownerState:H,children:u.isValidElement(m)&&Yo(m,["SpeedDialIcon"])?u.cloneElement(m,{open:w}):m})}),d.jsx(Eu,{id:`${it}-actions`,role:"menu","aria-orientation":io(f),className:j(z.actions,!w&&z.actionsClosed),ownerState:H,children:bt})]})});function Fu(t){return K("MuiTooltip",t)}const Wt=Z("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function Uu(t){return Math.round(t*1e5)/1e5}const Wu=t=>{const{classes:e,disableInteractive:o,arrow:r,touch:n,placement:s}=t,a={popper:["popper",!o&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",n&&"touch",`tooltipPlacement${T(s.split("-")[0])}`],arrow:["arrow"]};return q(a,Fu,e)},Hu=S(Ko,{name:"MuiTooltip",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popper,!o.disableInteractive&&e.popperInteractive,o.arrow&&e.popperArrow,!o.open&&e.popperClose]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:e})=>!e.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:e})=>!e,style:{pointerEvents:"none"}},{props:({ownerState:e})=>e.arrow,style:{[`&[data-popper-placement*="bottom"] .${Wt.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${Wt.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${Wt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${Wt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="right"] .${Wt.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="right"] .${Wt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="left"] .${Wt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="left"] .${Wt.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),Vu=S("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.tooltip,o.touch&&e.touch,o.arrow&&e.tooltipArrow,e[`tooltipPlacement${T(o.placement.split("-")[0])}`]]}})(U(({theme:t})=>({backgroundColor:t.vars?t.vars.palette.Tooltip.bg:Tt(t.palette.grey[700],.92),borderRadius:(t.vars||t).shape.borderRadius,color:(t.vars||t).palette.common.white,fontFamily:t.typography.fontFamily,padding:"4px 8px",fontSize:t.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:t.typography.fontWeightMedium,[`.${Wt.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${Wt.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${Wt.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:e})=>e.arrow,style:{position:"relative",margin:0}},{props:({ownerState:e})=>e.touch,style:{padding:"8px 16px",fontSize:t.typography.pxToRem(14),lineHeight:`${Uu(16/14)}em`,fontWeight:t.typography.fontWeightRegular}},{props:({ownerState:e})=>!e.isRtl,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:e})=>!e.isRtl&&e.touch,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:e})=>!!e.isRtl,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:e})=>!!e.isRtl&&e.touch,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${Wt.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${Wt.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),Gu=S("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(t,e)=>e.arrow})(U(({theme:t})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:t.vars?t.vars.palette.Tooltip.bg:Tt(t.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let jo=!1;const dn=new Vs;let lo={x:0,y:0};function Do(t,e){return(o,...r)=>{e&&e(o,...r),t(o,...r)}}const _u=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTooltip"}),{arrow:n=!1,children:s,classes:a,components:i={},componentsProps:l={},describeChild:c=!1,disableFocusListener:p=!1,disableHoverListener:f=!1,disableInteractive:v=!1,disableTouchListener:m=!1,enterDelay:y=100,enterNextDelay:g=0,enterTouchDelay:h=700,followCursor:b=!1,id:x,leaveDelay:C=0,leaveTouchDelay:R=1500,onClose:P,onOpen:N,open:$,placement:A="bottom",PopperComponent:k,PopperProps:I={},slotProps:F={},slots:L={},title:w,TransitionComponent:M,TransitionProps:H,...z}=r,Q=u.isValidElement(s)?s:d.jsx("span",{children:s}),D=se(),et=He(),[pt,_]=u.useState(),[wt,Lt]=u.useState(null),Rt=u.useRef(!1),lt=v||b,rt=Oe(),W=Oe(),it=Oe(),dt=Oe(),[bt,$t]=ue({controlled:$,default:!1,name:"Tooltip",state:"open"});let nt=bt;const ct=We(x),vt=u.useRef(),yt=ne(()=>{vt.current!==void 0&&(document.body.style.WebkitUserSelect=vt.current,vt.current=void 0),dt.clear()});u.useEffect(()=>yt,[yt]);const Ot=mt=>{dn.clear(),jo=!0,$t(!0),N&&!nt&&N(mt)},Y=ne(mt=>{dn.start(800+C,()=>{jo=!1}),$t(!1),P&&nt&&P(mt),rt.start(D.transitions.duration.shortest,()=>{Rt.current=!1})}),tt=mt=>{Rt.current&&mt.type!=="touchstart"||(pt&&pt.removeAttribute("title"),W.clear(),it.clear(),y||jo&&g?W.start(jo?g:y,()=>{Ot(mt)}):Ot(mt))},st=mt=>{W.clear(),it.start(C,()=>{Y(mt)})},[,xt]=u.useState(!1),ft=mt=>{Me(mt.target)||(xt(!1),st(mt))},Pt=mt=>{pt||_(mt.currentTarget),Me(mt.target)&&(xt(!0),tt(mt))},It=mt=>{Rt.current=!0;const te=Q.props;te.onTouchStart&&te.onTouchStart(mt)},Vt=mt=>{It(mt),it.clear(),rt.clear(),yt(),vt.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",dt.start(h,()=>{document.body.style.WebkitUserSelect=vt.current,tt(mt)})},E=mt=>{Q.props.onTouchEnd&&Q.props.onTouchEnd(mt),yt(),it.start(R,()=>{Y(mt)})};u.useEffect(()=>{if(!nt)return;function mt(te){te.key==="Escape"&&Y(te)}return document.addEventListener("keydown",mt),()=>{document.removeEventListener("keydown",mt)}},[Y,nt]);const G=ge(Zo(Q),_,o);!w&&w!==0&&(nt=!1);const ot=u.useRef(),gt=mt=>{const te=Q.props;te.onMouseMove&&te.onMouseMove(mt),lo={x:mt.clientX,y:mt.clientY},ot.current&&ot.current.update()},ut={},J=typeof w=="string";c?(ut.title=!nt&&J&&!f?w:null,ut["aria-describedby"]=nt?ct:null):(ut["aria-label"]=J?w:null,ut["aria-labelledby"]=nt&&!J?ct:null);const ht={...ut,...z,...Q.props,className:j(z.className,Q.props.className),onTouchStart:It,ref:G,...b?{onMouseMove:gt}:{}},Dt={};m||(ht.onTouchStart=Vt,ht.onTouchEnd=E),f||(ht.onMouseOver=Do(tt,ht.onMouseOver),ht.onMouseLeave=Do(st,ht.onMouseLeave),lt||(Dt.onMouseOver=tt,Dt.onMouseLeave=st)),p||(ht.onFocus=Do(Pt,ht.onFocus),ht.onBlur=Do(ft,ht.onBlur),lt||(Dt.onFocus=Pt,Dt.onBlur=ft));const At={...r,isRtl:et,arrow:n,disableInteractive:lt,placement:A,PopperComponentProp:k,touch:Rt.current},zt=typeof F.popper=="function"?F.popper(At):F.popper,qt=u.useMemo(()=>{var te,Ge;let mt=[{name:"arrow",enabled:!!wt,options:{element:wt,padding:4}}];return(te=I.popperOptions)!=null&&te.modifiers&&(mt=mt.concat(I.popperOptions.modifiers)),(Ge=zt==null?void 0:zt.popperOptions)!=null&&Ge.modifiers&&(mt=mt.concat(zt.popperOptions.modifiers)),{...I.popperOptions,...zt==null?void 0:zt.popperOptions,modifiers:mt}},[wt,I.popperOptions,zt==null?void 0:zt.popperOptions]),Xt=Wu(At),ye=typeof F.transition=="function"?F.transition(At):F.transition,ae={slots:{popper:i.Popper,transition:i.Transition??M,tooltip:i.Tooltip,arrow:i.Arrow,...L},slotProps:{arrow:F.arrow??l.arrow,popper:{...I,...zt??l.popper},tooltip:F.tooltip??l.tooltip,transition:{...H,...ye??l.transition}}},[he,Yt]=V("popper",{elementType:Hu,externalForwardedProps:ae,ownerState:At,className:j(Xt.popper,I==null?void 0:I.className)}),[ce,Bt]=V("transition",{elementType:Tn,externalForwardedProps:ae,ownerState:At}),[Et,Kt]=V("tooltip",{elementType:Vu,className:Xt.tooltip,externalForwardedProps:ae,ownerState:At}),[pe,Zt]=V("arrow",{elementType:Gu,className:Xt.arrow,externalForwardedProps:ae,ownerState:At,ref:Lt});return d.jsxs(u.Fragment,{children:[u.cloneElement(Q,ht),d.jsx(he,{as:k??Ko,placement:A,anchorEl:b?{getBoundingClientRect:()=>({top:lo.y,left:lo.x,right:lo.x,bottom:lo.y,width:0,height:0})}:pt,popperRef:ot,open:pt?nt:!1,id:ct,transition:!0,...Dt,...Yt,popperOptions:qt,children:({TransitionProps:mt})=>d.jsx(ce,{timeout:D.transitions.duration.shorter,...mt,...Bt,children:d.jsxs(Et,{...Kt,children:[w,n?d.jsx(pe,{...Zt}):null]})})})]})});function qu(t){return K("MuiSpeedDialAction",t)}const Eo=Z("MuiSpeedDialAction",["fab","fabClosed","staticTooltip","staticTooltipClosed","staticTooltipLabel","tooltipPlacementLeft","tooltipPlacementRight"]),Xu=t=>{const{open:e,tooltipPlacement:o,classes:r}=t,n={fab:["fab",!e&&"fabClosed"],staticTooltip:["staticTooltip",`tooltipPlacement${T(o)}`,!e&&"staticTooltipClosed"],staticTooltipLabel:["staticTooltipLabel"]};return q(n,qu,r)},Yu=S(Fn,{name:"MuiSpeedDialAction",slot:"Fab",skipVariantsResolver:!1,overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.fab,!o.open&&e.fabClosed]}})(U(({theme:t})=>({margin:8,color:(t.vars||t).palette.text.secondary,backgroundColor:(t.vars||t).palette.background.paper,"&:hover":{backgroundColor:t.vars?t.vars.palette.SpeedDialAction.fabHoverBg:Ho(t.palette.background.paper,.15)},transition:`${t.transitions.create("transform",{duration:t.transitions.duration.shorter})}, opacity 0.8s`,opacity:1,variants:[{props:({ownerState:e})=>!e.open,style:{opacity:0,transform:"scale(0)"}}]}))),Ku=S("span",{name:"MuiSpeedDialAction",slot:"StaticTooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.staticTooltip,!o.open&&e.staticTooltipClosed,e[`tooltipPlacement${T(o.tooltipPlacement)}`]]}})(U(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",[`& .${Eo.staticTooltipLabel}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.shorter}),opacity:1},variants:[{props:({ownerState:e})=>!e.open,style:{[`& .${Eo.staticTooltipLabel}`]:{opacity:0,transform:"scale(0.5)"}}},{props:{tooltipPlacement:"left"},style:{[`& .${Eo.staticTooltipLabel}`]:{transformOrigin:"100% 50%",right:"100%",marginRight:8}}},{props:{tooltipPlacement:"right"},style:{[`& .${Eo.staticTooltipLabel}`]:{transformOrigin:"0% 50%",left:"100%",marginLeft:8}}}]}))),Zu=S("span",{name:"MuiSpeedDialAction",slot:"StaticTooltipLabel",overridesResolver:(t,e)=>e.staticTooltipLabel})(U(({theme:t})=>({position:"absolute",...t.typography.body1,backgroundColor:(t.vars||t).palette.background.paper,borderRadius:(t.vars||t).shape.borderRadius,boxShadow:(t.vars||t).shadows[1],color:(t.vars||t).palette.text.secondary,padding:"4px 16px",wordBreak:"keep-all"}))),Xb=u.forwardRef(function(e,o){var D;const r=X({props:e,name:"MuiSpeedDialAction"}),{className:n,delay:s=0,FabProps:a={},icon:i,id:l,open:c,TooltipClasses:p,tooltipOpen:f=!1,tooltipPlacement:v="left",tooltipTitle:m,slots:y={},slotProps:g={},...h}=r,b={...r,tooltipPlacement:v},x=Xu(b),C={slots:y,slotProps:{fab:a,...g,tooltip:vo(typeof g.tooltip=="function"?g.tooltip(b):g.tooltip,{title:m,open:f,placement:v,classes:p})}},[R,P]=u.useState((D=C.slotProps.tooltip)==null?void 0:D.open),N=()=>{P(!1)},$=()=>{P(!0)},A={transitionDelay:`${s}ms`},[k,I]=V("fab",{elementType:Yu,externalForwardedProps:C,ownerState:b,shouldForwardComponentProp:!0,className:j(x.fab,n),additionalProps:{style:A,tabIndex:-1,role:"menuitem",size:"small"}}),[F,L]=V("tooltip",{elementType:_u,externalForwardedProps:C,shouldForwardComponentProp:!0,ref:o,additionalProps:{id:l},ownerState:b,getSlotProps:et=>({...et,onClose:pt=>{var _;(_=et.onClose)==null||_.call(et,pt),N()},onOpen:pt=>{var _;(_=et.onOpen)==null||_.call(et,pt),$()}})}),[w,M]=V("staticTooltip",{elementType:Ku,externalForwardedProps:C,ownerState:b,ref:o,className:x.staticTooltip,additionalProps:{id:l}}),[H,z]=V("staticTooltipLabel",{elementType:Zu,externalForwardedProps:C,ownerState:b,className:x.staticTooltipLabel,additionalProps:{style:A,id:`${l}-label`}}),Q=d.jsx(k,{...I,children:i});return L.open?d.jsxs(w,{...M,...h,children:[d.jsx(H,{...z,children:L.title}),u.cloneElement(Q,{"aria-labelledby":`${l}-label`})]}):(!c&&R&&P(!1),d.jsx(F,{...L,title:L.title,open:c&&R,placement:L.placement,classes:L.classes,...h,children:Q}))}),Ju=Ht(d.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");function Qu(t){return K("MuiSpeedDialIcon",t)}const ve=Z("MuiSpeedDialIcon",["root","icon","iconOpen","iconWithOpenIconOpen","openIcon","openIconOpen"]),tf=t=>{const{classes:e,open:o,openIcon:r}=t;return q({root:["root"],icon:["icon",o&&"iconOpen",r&&o&&"iconWithOpenIconOpen"],openIcon:["openIcon",o&&"openIconOpen"]},Qu,e)},ef=S("span",{name:"MuiSpeedDialIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ve.icon}`]:e.icon},{[`& .${ve.icon}`]:o.open&&e.iconOpen},{[`& .${ve.icon}`]:o.open&&o.openIcon&&e.iconWithOpenIconOpen},{[`& .${ve.openIcon}`]:e.openIcon},{[`& .${ve.openIcon}`]:o.open&&e.openIconOpen},e.root]}})(U(({theme:t})=>({height:24,[`& .${ve.icon}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short})},[`& .${ve.openIcon}`]:{position:"absolute",transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short}),opacity:0,transform:"rotate(-45deg)"},variants:[{props:({ownerState:e})=>e.open,style:{[`& .${ve.icon}`]:{transform:"rotate(45deg)"}}},{props:({ownerState:e})=>e.open&&e.openIcon,style:{[`& .${ve.icon}`]:{opacity:0}}},{props:({ownerState:e})=>e.open,style:{[`& .${ve.openIcon}`]:{transform:"rotate(0deg)",opacity:1}}}]}))),of=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSpeedDialIcon"}),{className:n,icon:s,open:a,openIcon:i,...l}=r,c=r,p=tf(c);function f(v,m){return u.isValidElement(v)?u.cloneElement(v,{className:m}):v}return d.jsxs(ef,{className:j(p.root,n),ref:o,ownerState:c,...l,children:[i?f(i,p.openIcon):null,s?f(s,p.icon):d.jsx(Ju,{className:p.icon})]})});of.muiName="SpeedDialIcon";const Yb=Ia({createStyledComponent:S("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root}),useThemeProps:t=>X({props:t,name:"MuiStack"})}),Kb=Z("MuiStack",["root"]),Ve=u.createContext({});function Zb(){return u.useContext(Ve)}const Je=u.createContext({});function Jb(){return u.useContext(Je)}function rf(t){return K("MuiStep",t)}const Qb=Z("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]),nf=t=>{const{classes:e,orientation:o,alternativeLabel:r,completed:n}=t;return q({root:["root",o,r&&"alternativeLabel",n&&"completed"]},rf,e)},sf=S("div",{name:"MuiStep",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({variants:[{props:{orientation:"horizontal"},style:{paddingLeft:8,paddingRight:8}},{props:{alternativeLabel:!0},style:{flex:1,position:"relative"}}]}),tv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStep"}),{active:n,children:s,className:a,component:i="div",completed:l,disabled:c,expanded:p=!1,index:f,last:v,...m}=r,{activeStep:y,connector:g,alternativeLabel:h,orientation:b,nonLinear:x}=u.useContext(Ve);let[C=!1,R=!1,P=!1]=[n,l,c];y===f?C=n!==void 0?n:!0:!x&&y>f?R=l!==void 0?l:!0:!x&&y({index:f,last:v,expanded:p,icon:f+1,active:C,completed:R,disabled:P}),[f,v,p,C,R,P]),$={...r,active:C,orientation:b,alternativeLabel:h,completed:R,disabled:P,expanded:p,component:i},A=nf($),k=d.jsxs(sf,{as:i,className:j(A.root,a),ref:o,ownerState:$,...m,children:[g&&h&&f!==0?g:null,s]});return d.jsx(Je.Provider,{value:N,children:g&&!h&&f!==0?d.jsxs(u.Fragment,{children:[g,k]}):k})}),af=Ht(d.jsx("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),lf=Ht(d.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");function cf(t){return K("MuiStepIcon",t)}const gr=Z("MuiStepIcon",["root","active","completed","error","text"]);var un;const pf=t=>{const{classes:e,active:o,completed:r,error:n}=t;return q({root:["root",o&&"active",r&&"completed",n&&"error"],text:["text"]},cf,e)},mr=S(Zs,{name:"MuiStepIcon",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),color:(t.vars||t).palette.text.disabled,[`&.${gr.completed}`]:{color:(t.vars||t).palette.primary.main},[`&.${gr.active}`]:{color:(t.vars||t).palette.primary.main},[`&.${gr.error}`]:{color:(t.vars||t).palette.error.main}}))),df=S("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(t,e)=>e.text})(U(({theme:t})=>({fill:(t.vars||t).palette.primary.contrastText,fontSize:t.typography.caption.fontSize,fontFamily:t.typography.fontFamily}))),uf=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepIcon"}),{active:n=!1,className:s,completed:a=!1,error:i=!1,icon:l,...c}=r,p={...r,active:n,completed:a,error:i},f=pf(p);if(typeof l=="number"||typeof l=="string"){const v=j(s,f.root);return i?d.jsx(mr,{as:lf,className:v,ref:o,ownerState:p,...c}):a?d.jsx(mr,{as:af,className:v,ref:o,ownerState:p,...c}):d.jsxs(mr,{className:v,ref:o,ownerState:p,...c,children:[un||(un=d.jsx("circle",{cx:"12",cy:"12",r:"12"})),d.jsx(df,{className:f.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:p,children:l})]})}return l});function ff(t){return K("MuiStepLabel",t)}const Ie=Z("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]),gf=t=>{const{classes:e,orientation:o,active:r,completed:n,error:s,disabled:a,alternativeLabel:i}=t;return q({root:["root",o,s&&"error",a&&"disabled",i&&"alternativeLabel"],label:["label",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],iconContainer:["iconContainer",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],labelContainer:["labelContainer",i&&"alternativeLabel"]},ff,e)},mf=S("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation]]}})({display:"flex",alignItems:"center",[`&.${Ie.alternativeLabel}`]:{flexDirection:"column"},[`&.${Ie.disabled}`]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),bf=S("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(t,e)=>e.label})(U(({theme:t})=>({...t.typography.body2,display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),[`&.${Ie.active}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${Ie.completed}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${Ie.alternativeLabel}`]:{marginTop:16},[`&.${Ie.error}`]:{color:(t.vars||t).palette.error.main}}))),vf=S("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(t,e)=>e.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,[`&.${Ie.alternativeLabel}`]:{paddingRight:0}}),yf=S("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(t,e)=>e.labelContainer})(U(({theme:t})=>({width:"100%",color:(t.vars||t).palette.text.secondary,[`&.${Ie.alternativeLabel}`]:{textAlign:"center"}}))),Zn=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepLabel"}),{children:n,className:s,componentsProps:a={},error:i=!1,icon:l,optional:c,slots:p={},slotProps:f={},StepIconComponent:v,StepIconProps:m,...y}=r,{alternativeLabel:g,orientation:h}=u.useContext(Ve),{active:b,disabled:x,completed:C,icon:R}=u.useContext(Je),P=l||R;let N=v;P&&!N&&(N=uf);const $={...r,active:b,alternativeLabel:g,completed:C,disabled:x,error:i,orientation:h},A=gf($),k={slots:p,slotProps:{stepIcon:m,...a,...f}},[I,F]=V("root",{elementType:mf,externalForwardedProps:{...k,...y},ownerState:$,ref:o,className:j(A.root,s)}),[L,w]=V("label",{elementType:bf,externalForwardedProps:k,ownerState:$}),[M,H]=V("stepIcon",{elementType:N,externalForwardedProps:k,ownerState:$});return d.jsxs(I,{...F,children:[P||M?d.jsx(vf,{className:A.iconContainer,ownerState:$,children:d.jsx(M,{completed:C,active:b,error:i,icon:P,...H})}):null,d.jsxs(yf,{className:A.labelContainer,ownerState:$,children:[n?d.jsx(L,{...w,className:j(A.label,w==null?void 0:w.className),children:n}):null,c]})]})});Zn.muiName="StepLabel";function hf(t){return K("MuiStepButton",t)}const fn=Z("MuiStepButton",["root","horizontal","vertical","touchRipple"]),xf=t=>{const{classes:e,orientation:o}=t;return q({root:["root",o],touchRipple:["touchRipple"]},hf,e)},Cf=S(fe,{name:"MuiStepButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${fn.touchRipple}`]:e.touchRipple},e.root,e[o.orientation]]}})({width:"100%",padding:"24px 16px",margin:"-24px -16px",boxSizing:"content-box",[`& .${fn.touchRipple}`]:{color:"rgba(0, 0, 0, 0.3)"},variants:[{props:{orientation:"vertical"},style:{justifyContent:"flex-start",padding:"8px",margin:"-8px"}}]}),ev=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepButton"}),{children:n,className:s,icon:a,optional:i,...l}=r,{disabled:c,active:p}=u.useContext(Je),{orientation:f}=u.useContext(Ve),v={...r,orientation:f},m=xf(v),y={icon:a,optional:i},g=Yo(n,["StepLabel"])?u.cloneElement(n,y):d.jsx(Zn,{...y,children:n});return d.jsx(Cf,{focusRipple:!0,disabled:c,TouchRippleProps:{className:m.touchRipple},className:j(m.root,s),ref:o,ownerState:v,"aria-current":p?"step":void 0,...l,children:g})});function Sf(t){return K("MuiStepConnector",t)}const ov=Z("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]),wf=t=>{const{classes:e,orientation:o,alternativeLabel:r,active:n,completed:s,disabled:a}=t,i={root:["root",o,r&&"alternativeLabel",n&&"active",s&&"completed",a&&"disabled"],line:["line",`line${T(o)}`]};return q(i,Sf,e)},Rf=S("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({flex:"1 1 auto",variants:[{props:{orientation:"vertical"},style:{marginLeft:12}},{props:{alternativeLabel:!0},style:{position:"absolute",top:12,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"}}]}),$f=S("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.line,e[`line${T(o.orientation)}`]]}})(U(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600];return{display:"block",borderColor:t.vars?t.vars.palette.StepConnector.border:e,variants:[{props:{orientation:"horizontal"},style:{borderTopStyle:"solid",borderTopWidth:1}},{props:{orientation:"vertical"},style:{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24}}]}})),Pf=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepConnector"}),{className:n,...s}=r,{alternativeLabel:a,orientation:i="horizontal"}=u.useContext(Ve),{active:l,disabled:c,completed:p}=u.useContext(Je),f={...r,alternativeLabel:a,orientation:i,active:l,completed:p,disabled:c},v=wf(f);return d.jsx(Rf,{className:j(v.root,n),ref:o,ownerState:f,...s,children:d.jsx($f,{className:v.line,ownerState:f})})});function kf(t){return K("MuiStepContent",t)}const rv=Z("MuiStepContent",["root","last","transition"]),Tf=t=>{const{classes:e,last:o}=t;return q({root:["root",o&&"last"],transition:["transition"]},kf,e)},If=S("div",{name:"MuiStepContent",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.last&&e.last]}})(U(({theme:t})=>({marginLeft:12,paddingLeft:20,paddingRight:8,borderLeft:t.vars?`1px solid ${t.vars.palette.StepContent.border}`:`1px solid ${t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600]}`,variants:[{props:{last:!0},style:{borderLeft:"none"}}]}))),Mf=S(yo,{name:"MuiStepContent",slot:"Transition",overridesResolver:(t,e)=>e.transition})({}),nv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepContent"}),{children:n,className:s,TransitionComponent:a=yo,transitionDuration:i="auto",TransitionProps:l,slots:c={},slotProps:p={},...f}=r,{orientation:v}=u.useContext(Ve),{active:m,last:y,expanded:g}=u.useContext(Je),h={...r,last:y},b=Tf(h);let x=i;i==="auto"&&!a.muiSupportAuto&&(x=void 0);const C={slots:c,slotProps:{transition:l,...p}},[R,P]=V("transition",{elementType:Mf,externalForwardedProps:C,ownerState:h,className:b.transition,additionalProps:{in:m||g,timeout:x,unmountOnExit:!0}});return d.jsx(If,{className:j(b.root,s),ref:o,ownerState:h,...f,children:d.jsx(R,{as:a,...P,children:n})})});function Af(t){return K("MuiStepper",t)}const sv=Z("MuiStepper",["root","horizontal","vertical","nonLinear","alternativeLabel"]),Lf=t=>{const{orientation:e,nonLinear:o,alternativeLabel:r,classes:n}=t;return q({root:["root",e,o&&"nonLinear",r&&"alternativeLabel"]},Af,n)},Bf=S("div",{name:"MuiStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.nonLinear&&e.nonLinear]}})({display:"flex",variants:[{props:{orientation:"horizontal"},style:{flexDirection:"row",alignItems:"center"}},{props:{orientation:"vertical"},style:{flexDirection:"column"}},{props:{alternativeLabel:!0},style:{alignItems:"flex-start"}}]}),Nf=d.jsx(Pf,{}),av=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepper"}),{activeStep:n=0,alternativeLabel:s=!1,children:a,className:i,component:l="div",connector:c=Nf,nonLinear:p=!1,orientation:f="horizontal",...v}=r,m={...r,nonLinear:p,alternativeLabel:s,orientation:f,component:l},y=Lf(m),g=u.Children.toArray(a).filter(Boolean),h=g.map((x,C)=>u.cloneElement(x,{index:C,last:C+1===g.length,...x.props})),b=u.useMemo(()=>({activeStep:n,alternativeLabel:s,connector:c,nonLinear:p,orientation:f}),[n,s,c,p,f]);return d.jsx(Ve.Provider,{value:b,children:d.jsx(Bf,{as:l,ownerState:m,className:j(y.root,i),ref:o,...v,children:h})})}),Of=S("div",{shouldForwardProp:Se})(U(({theme:t})=>({position:"fixed",top:0,left:0,bottom:0,zIndex:t.zIndex.drawer-1,variants:[{props:{anchor:"left"},style:{right:"auto"}},{props:{anchor:"right"},style:{left:"auto",right:0}},{props:{anchor:"top"},style:{bottom:"auto",right:0}},{props:{anchor:"bottom"},style:{top:"auto",bottom:0,right:0}}]}))),zf=u.forwardRef(function(e,o){const{anchor:r,classes:n={},className:s,width:a,style:i,...l}=e,c=e;return d.jsx(Of,{className:j("PrivateSwipeArea-root",n.root,n[`anchor${T(r)}`],s),ref:o,style:{[Ne(r)?"width":"height"]:a,...i},ownerState:c,...l})}),Fo=3,br=20;let xe=null;function vr(t,e,o){return t==="right"?o.body.offsetWidth-e[0].pageX:e[0].pageX}function yr(t,e,o){return t==="bottom"?o.innerHeight-e[0].clientY:e[0].clientY}function co(t,e){return t?e.clientWidth:e.clientHeight}function gn(t,e,o,r){return Math.min(Math.max(o?e-t:r+e-t,0),r)}function jf(t,e){const o=[];for(;t&&t!==e.parentElement;){const r=Ye(e).getComputedStyle(t);r.getPropertyValue("position")==="absolute"||r.getPropertyValue("overflow-x")==="hidden"||(t.clientWidth>0&&t.scrollWidth>t.clientWidth||t.clientHeight>0&&t.scrollHeight>t.clientHeight)&&o.push(t),t=t.parentElement}return o}function Df({domTreeShapes:t,start:e,current:o,anchor:r}){const n={scrollPosition:{x:"scrollLeft",y:"scrollTop"},scrollLength:{x:"scrollWidth",y:"scrollHeight"},clientLength:{x:"clientWidth",y:"clientHeight"}};return t.some(s=>{let a=o>=e;(r==="top"||r==="left")&&(a=!a);const i=r==="left"||r==="right"?"x":"y",l=Math.round(s[n.scrollPosition[i]]),c=l>0,p=l+s[n.clientLength[i]]{et.current=null},[x]);const pt=u.useCallback((W,it={})=>{const{mode:dt=null,changeTransition:bt=!0}=it,$t=po(n,a),nt=["right","bottom"].includes($t)?1:-1,ct=Ne(a),vt=ct?`translate(${nt*W}px, 0)`:`translate(0, ${nt*W}px)`,yt=z.current.style;yt.webkitTransform=vt,yt.transform=vt;let Ot="";if(dt&&(Ot=n.transitions.create("all",Ue({easing:void 0,style:void 0,timeout:N},{mode:dt}))),bt&&(yt.webkitTransition=Ot,yt.transition=Ot),!i&&!p){const Y=H.current.style;Y.opacity=1-W/co(ct,z.current),bt&&(Y.webkitTransition=Ot,Y.transition=Ot)}},[a,i,p,n,N]),_=ne(W=>{if(!D.current)return;if(xe=null,D.current=!1,Ur.flushSync(()=>{L(!1)}),!w.current.isSwiping){w.current.isSwiping=null;return}w.current.isSwiping=null;const it=po(n,a),dt=Ne(a);let bt;dt?bt=vr(it,W.changedTouches,de(W.currentTarget)):bt=yr(it,W.changedTouches,Ye(W.currentTarget));const $t=dt?w.current.startX:w.current.startY,nt=co(dt,z.current),ct=gn(bt,$t,x,nt),vt=ct/nt;if(Math.abs(w.current.velocity)>m&&(et.current=Math.abs((nt-ct)/w.current.velocity)*1e3),x){w.current.velocity>m||vt>f?h():pt(0,{mode:"exit"});return}w.current.velocity<-m||1-vt>f?b():pt(co(dt,z.current),{mode:"enter"})}),wt=(W=!1)=>{if(!F){(W||!(l&&v))&&Ur.flushSync(()=>{L(!0)});const it=Ne(a);!x&&z.current&&pt(co(it,z.current)+(l?15:-br),{changeTransition:!1}),w.current.velocity=0,w.current.lastTime=null,w.current.lastTranslate=null,w.current.paperHit=!1,D.current=!0}},Lt=ne(W=>{if(!z.current||!D.current||xe!==null&&xe!==w.current)return;wt(!0);const it=po(n,a),dt=Ne(a),bt=vr(it,W.touches,de(W.currentTarget)),$t=yr(it,W.touches,Ye(W.currentTarget));if(x&&z.current.contains(W.target)&&xe===null){const Ot=jf(W.target,z.current);if(Df({domTreeShapes:Ot,start:dt?w.current.startX:w.current.startY,current:dt?bt:$t,anchor:a})){xe=!0;return}xe=w.current}if(w.current.isSwiping==null){const Ot=Math.abs(bt-w.current.startX),Y=Math.abs($t-w.current.startY),tt=dt?Ot>Y&&Ot>Fo:Y>Ot&&Y>Fo;if(tt&&W.cancelable&&W.preventDefault(),tt===!0||(dt?Y>Fo:Ot>Fo)){if(w.current.isSwiping=tt,!tt){_(W);return}w.current.startX=bt,w.current.startY=$t,!l&&!x&&(dt?w.current.startX-=br:w.current.startY-=br)}}if(!w.current.isSwiping)return;const nt=co(dt,z.current);let ct=dt?w.current.startX:w.current.startY;x&&!w.current.paperHit&&(ct=Math.min(ct,nt));const vt=gn(dt?bt:$t,ct,x,nt);if(x)if(w.current.paperHit)vt===0&&(w.current.startX=bt,w.current.startY=$t);else if(dt?bt{var nt;if(W.defaultPrevented||W.defaultMuiPrevented||x&&(p||!H.current.contains(W.target))&&!z.current.contains(W.target))return;const it=po(n,a),dt=Ne(a),bt=vr(it,W.touches,de(W.currentTarget)),$t=yr(it,W.touches,Ye(W.currentTarget));if(!x){if(c||!(W.target===M.current||(nt=z.current)!=null&&nt.contains(W.target)&&(typeof v=="function"?v(W,M.current,z.current):v)))return;if(dt){if(bt>P)return}else if($t>P)return}W.defaultMuiPrevented=!0,xe=null,w.current.startX=bt,w.current.startY=$t,wt()});u.useEffect(()=>{if($==="temporary"){const W=de(z.current);return W.addEventListener("touchstart",Rt),W.addEventListener("touchmove",Lt,{passive:!x}),W.addEventListener("touchend",_),()=>{W.removeEventListener("touchstart",Rt),W.removeEventListener("touchmove",Lt,{passive:!x}),W.removeEventListener("touchend",_)}}},[$,x,Rt,Lt,_]),u.useEffect(()=>()=>{xe===w.current&&(xe=null)},[]),u.useEffect(()=>{x||L(!1)},[x]);const[lt,rt]=V("swipeArea",{ref:M,elementType:zf,ownerState:r,externalForwardedProps:{slots:A,slotProps:{swipeArea:R,...k}},additionalProps:{width:P,anchor:a}});return d.jsxs(u.Fragment,{children:[d.jsx(Uc,{open:$==="temporary"&&F?!0:x,variant:$,ModalProps:{BackdropProps:{...y,ref:H},...$==="temporary"&&{keepMounted:!0},...g},hideBackdrop:p,anchor:a,transitionDuration:et.current||N,onClose:h,ref:o,slots:A,slotProps:{...k,backdrop:vo(k.backdrop??y,{ref:H}),paper:vo(k.paper??C,{style:{pointerEvents:$==="temporary"&&!x&&!v?"none":""},ref:Q})},...I}),!c&&$==="temporary"&&d.jsx(ud,{children:d.jsx(lt,{...rt})})]})});function Ff(t){return K("MuiSwitch",t)}const oe=Z("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),Uf=t=>{const{classes:e,edge:o,size:r,color:n,checked:s,disabled:a}=t,i={root:["root",o&&`edge${T(o)}`,`size${T(r)}`],switchBase:["switchBase",`color${T(n)}`,s&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=q(i,Ff,e);return{...e,...l}},Wf=S("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.edge&&e[`edge${T(o.edge)}`],e[`size${T(o.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${oe.thumb}`]:{width:16,height:16},[`& .${oe.switchBase}`]:{padding:4,[`&.${oe.checked}`]:{transform:"translateX(16px)"}}}}]}),Hf=S(Or,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.switchBase,{[`& .${oe.input}`]:e.input},o.color!=="default"&&e[`color${T(o.color)}`]]}})(U(({theme:t})=>({position:"absolute",top:0,left:0,zIndex:1,color:t.vars?t.vars.palette.Switch.defaultColor:`${t.palette.mode==="light"?t.palette.common.white:t.palette.grey[300]}`,transition:t.transitions.create(["left","transform"],{duration:t.transitions.duration.shortest}),[`&.${oe.checked}`]:{transform:"translateX(20px)"},[`&.${oe.disabled}`]:{color:t.vars?t.vars.palette.Switch.defaultDisabledColor:`${t.palette.mode==="light"?t.palette.grey[100]:t.palette.grey[600]}`},[`&.${oe.checked} + .${oe.track}`]:{opacity:.5},[`&.${oe.disabled} + .${oe.track}`]:{opacity:t.vars?t.vars.opacity.switchTrackDisabled:`${t.palette.mode==="light"?.12:.2}`},[`& .${oe.input}`]:{left:"-100%",width:"300%"}})),U(({theme:t})=>({"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(t.palette).filter(Ft(["light"])).map(([e])=>({props:{color:e},style:{[`&.${oe.checked}`]:{color:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette[e].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${oe.disabled}`]:{color:t.vars?t.vars.palette.Switch[`${e}DisabledColor`]:`${t.palette.mode==="light"?Fe(t.palette[e].main,.62):Ee(t.palette[e].main,.55)}`}},[`&.${oe.checked} + .${oe.track}`]:{backgroundColor:(t.vars||t).palette[e].main}}}))]}))),Vf=S("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(t,e)=>e.track})(U(({theme:t})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:t.vars?t.vars.palette.common.onBackground:`${t.palette.mode==="light"?t.palette.common.black:t.palette.common.white}`,opacity:t.vars?t.vars.opacity.switchTrack:`${t.palette.mode==="light"?.38:.3}`}))),Gf=S("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(t,e)=>e.thumb})(U(({theme:t})=>({boxShadow:(t.vars||t).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),lv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSwitch"}),{className:n,color:s="primary",edge:a=!1,size:i="medium",sx:l,slots:c={},slotProps:p={},...f}=r,v={...r,color:s,edge:a,size:i},m=Uf(v),y={slots:c,slotProps:p},[g,h]=V("root",{className:j(m.root,n),elementType:Wf,externalForwardedProps:y,ownerState:v,additionalProps:{sx:l}}),[b,x]=V("thumb",{className:m.thumb,elementType:Gf,externalForwardedProps:y,ownerState:v}),C=d.jsx(b,{...x}),[R,P]=V("track",{className:m.track,elementType:Vf,externalForwardedProps:y,ownerState:v});return d.jsxs(g,{...h,children:[d.jsx(Hf,{type:"checkbox",icon:C,checkedIcon:C,ref:o,ownerState:v,...f,classes:{...m,root:m.switchBase},slots:{...c.switchBase&&{root:c.switchBase},...c.input&&{input:c.input}},slotProps:{...p.switchBase&&{root:typeof p.switchBase=="function"?p.switchBase(v):p.switchBase},...p.input&&{input:typeof p.input=="function"?p.input(v):p.input}}}),d.jsx(R,{...P})]})}),Jn=u.createContext();function _f(t){return K("MuiTable",t)}const cv=Z("MuiTable",["root","stickyHeader"]),qf=t=>{const{classes:e,stickyHeader:o}=t;return q({root:["root",o&&"stickyHeader"]},_f,e)},Xf=S("table",{name:"MuiTable",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.stickyHeader&&e.stickyHeader]}})(U(({theme:t})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...t.typography.body2,padding:t.spacing(2),color:(t.vars||t).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:e})=>e.stickyHeader,style:{borderCollapse:"separate"}}]}))),mn="table",pv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTable"}),{className:n,component:s=mn,padding:a="normal",size:i="medium",stickyHeader:l=!1,...c}=r,p={...r,component:s,padding:a,size:i,stickyHeader:l},f=qf(p),v=u.useMemo(()=>({padding:a,size:i,stickyHeader:l}),[a,i,l]);return d.jsx(Jn.Provider,{value:v,children:d.jsx(Xf,{as:s,role:s===mn?null:"table",ref:o,className:j(f.root,n),ownerState:p,...c})})}),wo=u.createContext();function Yf(t){return K("MuiTableBody",t)}const dv=Z("MuiTableBody",["root"]),Kf=t=>{const{classes:e}=t;return q({root:["root"]},Yf,e)},Zf=S("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-row-group"}),Jf={variant:"body"},bn="tbody",uv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableBody"}),{className:n,component:s=bn,...a}=r,i={...r,component:s},l=Kf(i);return d.jsx(wo.Provider,{value:Jf,children:d.jsx(Zf,{className:j(l.root,n),as:s,ref:o,role:s===bn?null:"rowgroup",ownerState:i,...a})})});function Qf(t){return K("MuiTableCell",t)}const tg=Z("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),eg=t=>{const{classes:e,variant:o,align:r,padding:n,size:s,stickyHeader:a}=t,i={root:["root",o,a&&"stickyHeader",r!=="inherit"&&`align${T(r)}`,n!=="normal"&&`padding${T(n)}`,`size${T(s)}`]};return q(i,Qf,e)},og=S("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${T(o.size)}`],o.padding!=="normal"&&e[`padding${T(o.padding)}`],o.align!=="inherit"&&e[`align${T(o.align)}`],o.stickyHeader&&e.stickyHeader]}})(U(({theme:t})=>({...t.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:t.vars?`1px solid ${t.vars.palette.TableCell.border}`:`1px solid - ${t.palette.mode==="light"?Fe(Tt(t.palette.divider,1),.88):Ee(Tt(t.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(t.vars||t).palette.text.primary,lineHeight:t.typography.pxToRem(24),fontWeight:t.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(t.vars||t).palette.text.primary}},{props:{variant:"footer"},style:{color:(t.vars||t).palette.text.secondary,lineHeight:t.typography.pxToRem(21),fontSize:t.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${tg.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:e})=>e.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(t.vars||t).palette.background.default}}]}))),Pr=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableCell"}),{align:n="inherit",className:s,component:a,padding:i,scope:l,size:c,sortDirection:p,variant:f,...v}=r,m=u.useContext(Jn),y=u.useContext(wo),g=y&&y.variant==="head";let h;a?h=a:h=g?"th":"td";let b=l;h==="td"?b=void 0:!b&&g&&(b="col");const x=f||y&&y.variant,C={...r,align:n,component:h,padding:i||(m&&m.padding?m.padding:"normal"),size:c||(m&&m.size?m.size:"medium"),sortDirection:p,stickyHeader:x==="head"&&m&&m.stickyHeader,variant:x},R=eg(C);let P=null;return p&&(P=p==="asc"?"ascending":"descending"),d.jsx(og,{as:h,ref:o,className:j(R.root,s),"aria-sort":P,scope:b,ownerState:C,...v})});function rg(t){return K("MuiTableContainer",t)}const fv=Z("MuiTableContainer",["root"]),ng=t=>{const{classes:e}=t;return q({root:["root"]},rg,e)},sg=S("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(t,e)=>e.root})({width:"100%",overflowX:"auto"}),gv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableContainer"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=ng(i);return d.jsx(sg,{ref:o,as:s,className:j(l.root,n),ownerState:i,...a})});function ag(t){return K("MuiTableFooter",t)}const mv=Z("MuiTableFooter",["root"]),ig=t=>{const{classes:e}=t;return q({root:["root"]},ag,e)},lg=S("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-footer-group"}),cg={variant:"footer"},vn="tfoot",bv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableFooter"}),{className:n,component:s=vn,...a}=r,i={...r,component:s},l=ig(i);return d.jsx(wo.Provider,{value:cg,children:d.jsx(lg,{as:s,className:j(l.root,n),ref:o,role:s===vn?null:"rowgroup",ownerState:i,...a})})});function pg(t){return K("MuiTableHead",t)}const vv=Z("MuiTableHead",["root"]),dg=t=>{const{classes:e}=t;return q({root:["root"]},pg,e)},ug=S("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-header-group"}),fg={variant:"head"},yn="thead",yv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableHead"}),{className:n,component:s=yn,...a}=r,i={...r,component:s},l=dg(i);return d.jsx(wo.Provider,{value:fg,children:d.jsx(ug,{as:s,className:j(l.root,n),ref:o,role:s===yn?null:"rowgroup",ownerState:i,...a})})});function gg(t){return K("MuiToolbar",t)}const hv=Z("MuiToolbar",["root","gutters","regular","dense"]),mg=t=>{const{classes:e,disableGutters:o,variant:r}=t;return q({root:["root",!o&&"gutters",r]},gg,e)},bg=S("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableGutters&&e.gutters,e[o.variant]]}})(U(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:t.mixins.toolbar}]}))),vg=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiToolbar"}),{className:n,component:s="div",disableGutters:a=!1,variant:i="regular",...l}=r,c={...r,component:s,disableGutters:a,variant:i},p=mg(c);return d.jsx(bg,{as:s,className:j(p.root,n),ref:o,ownerState:c,...l})}),yg=u.forwardRef(function(e,o){const{backIconButtonProps:r,count:n,disabled:s=!1,getItemAriaLabel:a,nextIconButtonProps:i,onPageChange:l,page:c,rowsPerPage:p,showFirstButton:f,showLastButton:v,slots:m={},slotProps:y={},...g}=e,h=He(),b=_=>{l(_,0)},x=_=>{l(_,c-1)},C=_=>{l(_,c+1)},R=_=>{l(_,Math.max(0,Math.ceil(n/p)-1))},P=m.firstButton??ze,N=m.lastButton??ze,$=m.nextButton??ze,A=m.previousButton??ze,k=m.firstButtonIcon??Vn,I=m.lastButtonIcon??Gn,F=m.nextButtonIcon??Gs,L=m.previousButtonIcon??_s,w=h?N:P,M=h?$:A,H=h?A:$,z=h?P:N,Q=h?y.lastButton:y.firstButton,D=h?y.nextButton:y.previousButton,et=h?y.previousButton:y.nextButton,pt=h?y.firstButton:y.lastButton;return d.jsxs("div",{ref:o,...g,children:[f&&d.jsx(w,{onClick:b,disabled:s||c===0,"aria-label":a("first",c),title:a("first",c),...Q,children:h?d.jsx(I,{...y.lastButtonIcon}):d.jsx(k,{...y.firstButtonIcon})}),d.jsx(M,{onClick:x,disabled:s||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...D??r,children:h?d.jsx(F,{...y.nextButtonIcon}):d.jsx(L,{...y.previousButtonIcon})}),d.jsx(H,{onClick:C,disabled:s||(n!==-1?c>=Math.ceil(n/p)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...et??i,children:h?d.jsx(L,{...y.previousButtonIcon}):d.jsx(F,{...y.nextButtonIcon})}),v&&d.jsx(z,{onClick:R,disabled:s||c>=Math.ceil(n/p)-1,"aria-label":a("last",c),title:a("last",c),...pt,children:h?d.jsx(k,{...y.firstButtonIcon}):d.jsx(I,{...y.lastButtonIcon})})]})});function hg(t){return K("MuiTablePagination",t)}const go=Z("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var hn;const xg=S(Pr,{name:"MuiTablePagination",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({overflow:"auto",color:(t.vars||t).palette.text.primary,fontSize:t.typography.pxToRem(14),"&:last-child":{padding:0}}))),Cg=S(vg,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(t,e)=>({[`& .${go.actions}`]:e.actions,...e.toolbar})})(U(({theme:t})=>({minHeight:52,paddingRight:2,[`${t.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[t.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${go.actions}`]:{flexShrink:0,marginLeft:20}}))),Sg=S("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(t,e)=>e.spacer})({flex:"1 1 100%"}),wg=S("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(t,e)=>e.selectLabel})(U(({theme:t})=>({...t.typography.body2,flexShrink:0}))),Rg=S(Xs,{name:"MuiTablePagination",slot:"Select",overridesResolver:(t,e)=>({[`& .${go.selectIcon}`]:e.selectIcon,[`& .${go.select}`]:e.select,...e.input,...e.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${go.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),$g=S(qs,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(t,e)=>e.menuItem})({}),Pg=S("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(t,e)=>e.displayedRows})(U(({theme:t})=>({...t.typography.body2,flexShrink:0})));function kg({from:t,to:e,count:o}){return`${t}–${e} of ${o!==-1?o:`more than ${e}`}`}function Tg(t){return`Go to ${t} page`}const Ig=t=>{const{classes:e}=t;return q({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},hg,e)},xv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTablePagination"}),{ActionsComponent:n=yg,backIconButtonProps:s,colSpan:a,component:i=Pr,count:l,disabled:c=!1,getItemAriaLabel:p=Tg,labelDisplayedRows:f=kg,labelRowsPerPage:v="Rows per page:",nextIconButtonProps:m,onPageChange:y,onRowsPerPageChange:g,page:h,rowsPerPage:b,rowsPerPageOptions:x=[10,25,50,100],SelectProps:C={},showFirstButton:R=!1,showLastButton:P=!1,slotProps:N={},slots:$={},...A}=r,k=r,I=Ig(k),F=(N==null?void 0:N.select)??C,L=F.native?"option":$g;let w;(i===Pr||i==="td")&&(w=a||1e3);const M=We(F.id),H=We(F.labelId),z=()=>l===-1?(h+1)*b:b===-1?l:Math.min(l,(h+1)*b),Q={slots:$,slotProps:N},[D,et]=V("root",{ref:o,className:I.root,elementType:xg,externalForwardedProps:{...Q,component:i,...A},ownerState:k,additionalProps:{colSpan:w}}),[pt,_]=V("toolbar",{className:I.toolbar,elementType:Cg,externalForwardedProps:Q,ownerState:k}),[wt,Lt]=V("spacer",{className:I.spacer,elementType:Sg,externalForwardedProps:Q,ownerState:k}),[Rt,lt]=V("selectLabel",{className:I.selectLabel,elementType:wg,externalForwardedProps:Q,ownerState:k,additionalProps:{id:H}}),[rt,W]=V("select",{className:I.select,elementType:Rg,externalForwardedProps:Q,ownerState:k}),[it,dt]=V("menuItem",{className:I.menuItem,elementType:L,externalForwardedProps:Q,ownerState:k}),[bt,$t]=V("displayedRows",{className:I.displayedRows,elementType:Pg,externalForwardedProps:Q,ownerState:k});return d.jsx(D,{...et,children:d.jsxs(pt,{..._,children:[d.jsx(wt,{...Lt}),x.length>1&&d.jsx(Rt,{...lt,children:v}),x.length>1&&d.jsx(rt,{variant:"standard",...!F.variant&&{input:hn||(hn=d.jsx(Ks,{}))},value:b,onChange:g,id:M,labelId:H,...F,classes:{...F.classes,root:j(I.input,I.selectRoot,(F.classes||{}).root),select:j(I.select,(F.classes||{}).select),icon:j(I.selectIcon,(F.classes||{}).icon)},disabled:c,...W,children:x.map(nt=>u.createElement(it,{...dt,key:nt.label?nt.label:nt,value:nt.value?nt.value:nt},nt.label?nt.label:nt))}),d.jsx(bt,{...$t,children:f({from:l===0?0:h*b+1,to:z(),count:l===-1?-1:l,page:h})}),d.jsx(n,{className:I.actions,backIconButtonProps:s,count:l,nextIconButtonProps:m,onPageChange:y,page:h,rowsPerPage:b,showFirstButton:R,showLastButton:P,slotProps:N.actions,slots:$.actions,getItemAriaLabel:p,disabled:c})]})})});function Mg(t){return K("MuiTableRow",t)}const xn=Z("MuiTableRow",["root","selected","hover","head","footer"]),Ag=t=>{const{classes:e,selected:o,hover:r,head:n,footer:s}=t;return q({root:["root",o&&"selected",r&&"hover",n&&"head",s&&"footer"]},Mg,e)},Lg=S("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.head&&e.head,o.footer&&e.footer]}})(U(({theme:t})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${xn.hover}:hover`]:{backgroundColor:(t.vars||t).palette.action.hover},[`&.${xn.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)}}}))),Cn="tr",Cv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableRow"}),{className:n,component:s=Cn,hover:a=!1,selected:i=!1,...l}=r,c=u.useContext(wo),p={...r,component:s,hover:a,selected:i,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},f=Ag(p);return d.jsx(Lg,{as:s,ref:o,className:j(f.root,n),role:s===Cn?null:"row",ownerState:p,...l})}),Bg=Ht(d.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function Ng(t){return K("MuiTableSortLabel",t)}const hr=Z("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),Og=t=>{const{classes:e,direction:o,active:r}=t,n={root:["root",r&&"active",`direction${T(o)}`],icon:["icon",`iconDirection${T(o)}`]};return q(n,Ng,e)},zg=S(fe,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.active&&e.active]}})(U(({theme:t})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(t.vars||t).palette.text.secondary},"&:hover":{color:(t.vars||t).palette.text.secondary,[`& .${hr.icon}`]:{opacity:.5}},[`&.${hr.active}`]:{color:(t.vars||t).palette.text.primary,[`& .${hr.icon}`]:{opacity:1,color:(t.vars||t).palette.text.secondary}}}))),jg=S("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,e[`iconDirection${T(o.direction)}`]]}})(U(({theme:t})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:t.transitions.create(["opacity","transform"],{duration:t.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),Sv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableSortLabel"}),{active:n=!1,children:s,className:a,direction:i="asc",hideSortIcon:l=!1,IconComponent:c=Bg,slots:p={},slotProps:f={},...v}=r,m={...r,active:n,direction:i,hideSortIcon:l,IconComponent:c},y=Og(m),g={slots:p,slotProps:f},[h,b]=V("root",{elementType:zg,externalForwardedProps:g,ownerState:m,className:j(y.root,a),ref:o}),[x,C]=V("icon",{elementType:jg,externalForwardedProps:g,ownerState:m,className:y.icon});return d.jsxs(h,{disableRipple:!0,component:"span",...b,...v,children:[s,l&&!n?null:d.jsx(x,{as:c,...C})]})});function Dg(t){return K("MuiToggleButton",t)}const je=Z("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),Qn=u.createContext({}),ts=u.createContext(void 0);function Eg(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const Fg=t=>{const{classes:e,fullWidth:o,selected:r,disabled:n,size:s,color:a}=t,i={root:["root",r&&"selected",n&&"disabled",o&&"fullWidth",`size${T(s)}`,a]};return q(i,Dg,e)},Ug=S(fe,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`size${T(o.size)}`]]}})(U(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${je.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.text.primary,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${je.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.text.primary,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.text.primary,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.text.primary,t.palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{[`&.${je.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette[e].main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette[e].main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette[e].main,t.palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),wv=u.forwardRef(function(e,o){const{value:r,...n}=u.useContext(Qn),s=u.useContext(ts),a=Js({...n,selected:Eg(e.value,r)},e),i=X({props:a,name:"MuiToggleButton"}),{children:l,className:c,color:p="standard",disabled:f=!1,disableFocusRipple:v=!1,fullWidth:m=!1,onChange:y,onClick:g,selected:h,size:b="medium",value:x,...C}=i,R={...i,color:p,disabled:f,disableFocusRipple:v,fullWidth:m,size:b},P=Fg(R),N=A=>{g&&(g(A,x),A.defaultPrevented)||y&&y(A,x)},$=s||"";return d.jsx(Ug,{className:j(n.className,P.root,c,$),disabled:f,focusRipple:!v,ref:o,onClick:N,onChange:y,value:x,ownerState:R,"aria-pressed":h,...C,children:l})});function Wg(t){return K("MuiToggleButtonGroup",t)}const Ut=Z("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),Hg=t=>{const{classes:e,orientation:o,fullWidth:r,disabled:n}=t,s={root:["root",o,r&&"fullWidth"],grouped:["grouped",`grouped${T(o)}`,n&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return q(s,Wg,e)},Vg=S("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Ut.grouped}`]:e.grouped},{[`& .${Ut.grouped}`]:e[`grouped${T(o.orientation)}`]},{[`& .${Ut.firstButton}`]:e.firstButton},{[`& .${Ut.lastButton}`]:e.lastButton},{[`& .${Ut.middleButton}`]:e.middleButton},e.root,o.orientation==="vertical"&&e.vertical,o.fullWidth&&e.fullWidth]}})(U(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Ut.grouped}`]:{[`&.${Ut.selected} + .${Ut.grouped}.${Ut.selected}`]:{borderTop:0,marginTop:0}},[`& .${Ut.firstButton},& .${Ut.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${Ut.lastButton},& .${Ut.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${Ut.lastButton}.${je.disabled},& .${Ut.middleButton}.${je.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${Ut.grouped}`]:{[`&.${Ut.selected} + .${Ut.grouped}.${Ut.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${Ut.firstButton},& .${Ut.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Ut.lastButton},& .${Ut.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${Ut.lastButton}.${je.disabled},& .${Ut.middleButton}.${je.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),Rv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiToggleButtonGroup"}),{children:n,className:s,color:a="standard",disabled:i=!1,exclusive:l=!1,fullWidth:c=!1,onChange:p,orientation:f="horizontal",size:v="medium",value:m,...y}=r,g={...r,disabled:i,fullWidth:c,orientation:f,size:v},h=Hg(g),b=u.useCallback(($,A)=>{if(!p)return;const k=m&&m.indexOf(A);let I;m&&k>=0?(I=m.slice(),I.splice(k,1)):I=m?m.concat(A):[A],p($,I)},[p,m]),x=u.useCallback(($,A)=>{p&&p($,m===A?null:A)},[p,m]),C=u.useMemo(()=>({className:h.grouped,onChange:l?x:b,value:m,size:v,fullWidth:c,color:a,disabled:i}),[h.grouped,l,x,b,m,v,c,a,i]),R=An(n),P=R.length,N=$=>{const A=$===0,k=$===P-1;return A&&k?"":A?h.firstButton:k?h.lastButton:h.middleButton};return d.jsx(Vg,{role:"group",className:j(h.root,s),ref:o,ownerState:g,...y,children:d.jsx(Qn.Provider,{value:C,children:R.map(($,A)=>d.jsx(ts.Provider,{value:N(A),children:$},A))})})});function Gg(t,e){const{disableHysteresis:o=!1,threshold:r=100,target:n}=e,s=t.current;return n&&(t.current=n.pageYOffset!==void 0?n.pageYOffset:n.scrollTop),!o&&s!==void 0&&t.currentr}const _g=typeof window<"u"?window:null;function $v(t={}){const{getTrigger:e=Gg,target:o=_g,...r}=t,n=u.useRef(),[s,a]=u.useState(()=>e(n,r));return u.useEffect(()=>{if(o===null)return a(!1);const i=()=>{a(e(n,{target:o,...r}))};return i(),o.addEventListener("scroll",i,{passive:!0}),()=>{o.removeEventListener("scroll",i,{passive:!0})}},[o,e,JSON.stringify(r)]),s}const Pv="6.4.12",kv=6,Tv=4,Iv=12,Mv=void 0;export{Im as Accordion,Am as AccordionActions,Bm as AccordionDetails,Nm as AccordionSummary,Om as Alert,jm as AlertTitle,Em as AppBar,Um as Autocomplete,al as Avatar,Wm as AvatarGroup,Kv as Backdrop,Hm as Badge,Gm as BottomNavigation,_m as BottomNavigationAction,qm as Box,Xm as Breadcrumbs,Zv as Button,fe as ButtonBase,Ym as ButtonGroup,Ns as ButtonGroupButtonContext,Bs as ButtonGroupContext,Zm as Card,Jm as CardActionArea,tb as CardActions,ob as CardContent,rb as CardHeader,sb as CardMedia,ab as Checkbox,Ls as Chip,Jv as CircularProgress,Rc as ClickAwayListener,yo as Collapse,ib as Container,pb as CssBaseline,e0 as CssVarsProvider,Qv as Dialog,ty as DialogActions,ey as DialogContent,fb as DialogContentText,gb as DialogTitle,oy as Divider,Uc as Drawer,o0 as Experimental_CssVarsProvider,Fn as Fab,ry as Fade,_h as FilledInput,ny as FormControl,bb as FormControlLabel,Jc as FormGroup,sy as FormHelperText,ay as FormLabel,iy as FormLabelRoot,qh as GlobalStyles,yb as Grid,hb as Grid2,Tn as Grow,Sb as Hidden,$p as Icon,ze as IconButton,$b as ImageList,Pb as ImageListItem,Tb as ImageListItemBar,Us as Input,ly as InputAdornment,Ks as InputBase,cy as InputLabel,Xp as LinearProgress,Mb as Link,py as List,dy as ListItem,Lb as ListItemAvatar,Pm as ListItemButton,Rm as ListItemIcon,uy as ListItemSecondaryAction,$m as ListItemText,xr as ListSubheader,fy as Menu,qs as MenuItem,gy as MenuList,Nb as MobileStepper,js as Modal,my as ModalManager,dd as NativeSelect,ud as NoSsr,by as OutlinedInput,zb as Pagination,Sd as PaginationItem,we as Paper,vy as Popover,yy as PopoverPaper,hy as PopoverRoot,Ko as Popper,xy as Portal,jb as Radio,Eb as RadioGroup,Fb as Rating,Wb as ScopedCssBaseline,Xs as Select,Cy as Skeleton,Oc as Slide,Hb as Slider,hu as SliderMark,xu as SliderMarkLabel,mu as SliderRail,gu as SliderRoot,vu as SliderThumb,bu as SliderTrack,yu as SliderValueLabel,_b as Snackbar,Iu as SnackbarContent,qb as SpeedDial,Xb as SpeedDialAction,of as SpeedDialIcon,Yb as Stack,tv as Step,ev as StepButton,Pf as StepConnector,nv as StepContent,Je as StepContext,uf as StepIcon,Zn as StepLabel,av as Stepper,Ve as StepperContext,pm as StyledEngineProvider,Zs as SvgIcon,iv as SwipeableDrawer,lv as Switch,Cs as THEME_ID,Sy as Tab,wy as TabScrollButton,pv as Table,uv as TableBody,Pr as TableCell,gv as TableContainer,bv as TableFooter,yv as TableHead,xv as TablePagination,Cv as TableRow,Sv as TableSortLabel,Ry as Tabs,$y as TextField,Xh as TextareaAutosize,r0 as ThemeProvider,wv as ToggleButton,Rv as ToggleButtonGroup,vg as Toolbar,_u as Tooltip,re as Typography,Py as Unstable_TrapFocus,Nu as Zoom,Mm as accordionActionsClasses,Io as accordionClasses,Lm as accordionDetailsClasses,Xe as accordionSummaryClasses,gm as adaptV4Theme,Gr as alertClasses,zm as alertTitleClasses,Tt as alpha,Dm as appBarClasses,kt as autocompleteClasses,tl as avatarClasses,ll as avatarGroupClasses,ky as backdropClasses,$e as badgeClasses,Nn as bottomNavigationActionClasses,Vm as bottomNavigationClasses,wl as boxClasses,Ml as breadcrumbsClasses,Ty as buttonBaseClasses,Iy as buttonClasses,St as buttonGroupClasses,T as capitalize,pr as cardActionAreaClasses,Qm as cardActionsClasses,Km as cardClasses,eb as cardContentClasses,_o as cardHeaderClasses,nb as cardMediaClasses,dr as checkboxClasses,My as chipClasses,Ay as circularProgressClasses,Tm as collapseClasses,km as colors,cb as containerClasses,Hs as createChainedFunction,Bv as createColorScheme,Ai as createFilterOptions,Nv as createMuiTheme,bm as createStyles,Ht as createSvgIcon,wn as createTheme,Ov as createTransitions,Ar as css,db as darkScrollbar,Ee as darken,Ys as debounce,zv as decomposeColor,dm as deprecatedPropType,Ly as dialogActionsClasses,By as dialogClasses,Ny as dialogContentClasses,ub as dialogContentTextClasses,Oy as dialogTitleClasses,zy as dividerClasses,mb as drawerClasses,xs as duration,jv as easing,Ho as emphasize,S as experimentalStyled,Cm as experimental_extendTheme,Sm as experimental_sx,ds as extendTheme,en as fabClasses,_e as filledInputClasses,jy as formControlClasses,uo as formControlLabelClasses,vb as formGroupClasses,Dy as formHelperTextClasses,Ey as formLabelClasses,K as generateUtilityClass,Z as generateUtilityClasses,ni as getAccordionActionsUtilityClass,ii as getAccordionDetailsUtilityClass,pi as getAccordionSummaryUtilityClass,ti as getAccordionUtilityClass,$i as getAlertTitleUtilityClass,mi as getAlertUtilityClass,Ti as getAppBarUtilityClass,Ei as getAutocompleteUtilityClass,il as getAvatarGroupUtilityClass,Qi as getAvatarUtilityClass,Fy as getBackdropUtilityClass,ul as getBadgeUtilityClass,hl as getBottomNavigationActionUtilityClass,bl as getBottomNavigationUtilityClass,Il as getBreadcrumbsUtilityClass,Uy as getButtonBaseUtilityClass,zl as getButtonGroupUtilityClass,Wy as getButtonUtilityClass,Hl as getCardActionAreaUtilityClass,ql as getCardActionsUtilityClass,Kl as getCardContentUtilityClass,Ql as getCardHeaderUtilityClass,sc as getCardMediaUtilityClass,Fl as getCardUtilityClass,vc as getCheckboxUtilityClass,Hy as getChipUtilityClass,Vy as getCircularProgressUtilityClass,Ya as getCollapseUtilityClass,lb as getContainerUtilityClass,Dv as getContrastRatio,Gy as getDialogActionsUtilityClass,Tc as getDialogContentTextUtilityClass,_y as getDialogContentUtilityClass,zs as getDialogTitleUtilityClass,qy as getDialogUtilityClass,Xy as getDividerUtilityClass,zc as getDrawerUtilityClass,Wc as getFabUtilityClass,Yh as getFilledInputUtilityClass,Gc as getFormControlLabelUtilityClasses,Yy as getFormControlUtilityClasses,Yc as getFormGroupUtilityClass,Ky as getFormHelperTextUtilityClasses,Zy as getFormLabelUtilityClasses,xb as getGrid2UtilityClass,Jy as getIconButtonUtilityClass,Sp as getIconUtilityClass,Lp as getImageListItemBarUtilityClass,Ip as getImageListItemUtilityClass,Pp as getImageListUtilityClass,n0 as getInitColorSchemeScript,Qy as getInputAdornmentUtilityClass,Kh as getInputBaseUtilityClass,th as getInputLabelUtilityClasses,eh as getInputUtilityClass,Ep as getLinearProgressUtilityClass,Yp as getLinkUtilityClass,td as getListItemAvatarUtilityClass,Ms as getListItemButtonUtilityClass,Ts as getListItemIconUtilityClass,oh as getListItemSecondaryActionClassesUtilityClass,Is as getListItemTextUtilityClass,rh as getListItemUtilityClass,zi as getListSubheaderUtilityClass,nh as getListUtilityClass,Ev as getLuminance,sh as getMenuItemUtilityClass,ah as getMenuUtilityClass,rd as getMobileStepperUtilityClass,ih as getModalUtilityClass,Ws as getNativeSelectUtilityClasses,lh as getOffsetLeft,ch as getOffsetTop,ph as getOutlinedInputUtilityClass,Fv as getOverlayAlpha,md as getPaginationItemUtilityClass,fd as getPaginationUtilityClass,dh as getPaperUtilityClass,uh as getPopoverUtilityClass,fh as getPopperUtilityClass,Ed as getRadioGroupUtilityClass,Bd as getRadioUtilityClass,Hd as getRatingUtilityClass,Qd as getScopedCssBaselineUtilityClass,gh as getSelectUtilityClasses,mh as getSkeletonUtilityClass,du as getSliderUtilityClass,Ru as getSnackbarContentUtilityClass,Mu as getSnackbarUtilityClass,qu as getSpeedDialActionUtilityClass,Qu as getSpeedDialIconUtilityClass,Ou as getSpeedDialUtilityClass,hf as getStepButtonUtilityClass,Sf as getStepConnectorUtilityClass,kf as getStepContentUtilityClass,cf as getStepIconUtilityClass,ff as getStepLabelUtilityClass,rf as getStepUtilityClass,Af as getStepperUtilityClass,Jh as getSvgIconUtilityClass,Ff as getSwitchUtilityClass,bh as getTabScrollButtonUtilityClass,vh as getTabUtilityClass,Yf as getTableBodyUtilityClass,Qf as getTableCellUtilityClass,rg as getTableContainerUtilityClass,ag as getTableFooterUtilityClass,pg as getTableHeadUtilityClass,hg as getTablePaginationUtilityClass,Mg as getTableRowUtilityClass,Ng as getTableSortLabelUtilityClass,_f as getTableUtilityClass,yh as getTabsUtilityClass,hh as getTextFieldUtilityClass,Wg as getToggleButtonGroupUtilityClass,Dg as getToggleButtonUtilityClass,gg as getToolbarUtilityClass,Fu as getTooltipUtilityClass,xh as getTouchRippleUtilityClass,Ch as getTypographyUtilityClass,Cb as grid2Classes,Uv as hexToRgb,Wv as hslToRgb,Sh as iconButtonClasses,wb as iconClasses,Rb as imageListClasses,kb as imageListItemBarClasses,ur as imageListItemClasses,wh as inputAdornmentClasses,Le as inputBaseClasses,sr as inputClasses,Rh as inputLabelClasses,Yo as isMuiElement,Lr as keyframes,Fe as lighten,Ib as linearProgressClasses,Kp as linkClasses,$h as listClasses,Ab as listItemAvatarClasses,ro as listItemButtonClasses,Ph as listItemClasses,kh as listItemIconClasses,Th as listItemSecondaryActionClasses,To as listItemTextClasses,Fm as listSubheaderClasses,kv as major,ym as makeStyles,Ih as menuClasses,Mh as menuItemClasses,vo as mergeSlotProps,Tv as minor,Bb as mobileStepperClasses,Ah as modalClasses,Lh as nativeSelectClasses,Fr as outlinedInputClasses,de as ownerDocument,Ye as ownerWindow,Ob as paginationClasses,ee as paginationItemClasses,Bh as paperClasses,Iv as patch,Nh as popoverClasses,Mv as prerelease,Hv as private_createMixins,Vv as private_createTypography,Gv as private_excludeVariablesFromRoot,nn as radioClasses,Db as radioGroupClasses,ao as ratingClasses,_v as recomposeColor,um as requirePropFactory,vm as responsiveFontSizes,qv as rgbToHex,Ub as scopedCssBaselineClasses,Oh as selectClasses,As as setRef,Xv as shouldSkipGeneratingVar,zh as skeletonClasses,le as sliderClasses,Gb as snackbarClasses,Vb as snackbarContentClasses,Eo as speedDialActionClasses,Oo as speedDialClasses,ve as speedDialIconClasses,Kb as stackClasses,fn as stepButtonClasses,Qb as stepClasses,ov as stepConnectorClasses,rv as stepContentClasses,gr as stepIconClasses,Ie as stepLabelClasses,sv as stepperClasses,S as styled,Qh as svgIconClasses,oe as switchClasses,jh as tabClasses,Dh as tabScrollButtonClasses,dv as tableBodyClasses,tg as tableCellClasses,cv as tableClasses,fv as tableContainerClasses,mv as tableFooterClasses,vv as tableHeadClasses,go as tablePaginationClasses,xn as tableRowClasses,hr as tableSortLabelClasses,Eh as tabsClasses,Fh as textFieldClasses,je as toggleButtonClasses,Ut as toggleButtonGroupClasses,hv as toolbarClasses,Wt as tooltipClasses,Uh as touchRippleClasses,Vo as typographyClasses,wm as unstable_ClassNameGenerator,q as unstable_composeClasses,ps as unstable_createBreakpoints,mm as unstable_createMuiStrictModeTheme,Wh as unstable_getUnit,U as unstable_memoTheme,Hh as unstable_toUnitless,So as unstable_useEnhancedEffect,We as unstable_useId,fm as unsupportedProp,Oi as useAutocomplete,s0 as useColorScheme,ue as useControlled,ne as useEventCallback,ge as useForkRef,Co as useFormControl,Es as useMediaQuery,gd as usePagination,Ld as useRadioGroup,$v as useScrollTrigger,Jb as useStepContext,Zb as useStepperContext,se as useTheme,Vh as useThemeProps,Pv as version,hm as withStyles,xm as withTheme}; +`,Wp=typeof Rr!="string"?Mr` + animation: ${Rr} 3s infinite linear; + `:null,Hp=t=>{const{classes:e,variant:o,color:r}=t,n={root:["root",`color${T(r)}`,o],dashed:["dashed",`dashedColor${T(r)}`],bar1:["bar","bar1",`barColor${T(r)}`,(o==="indeterminate"||o==="query")&&"bar1Indeterminate",o==="determinate"&&"bar1Determinate",o==="buffer"&&"bar1Buffer"],bar2:["bar","bar2",o!=="buffer"&&`barColor${T(r)}`,o==="buffer"&&`color${T(r)}`,(o==="indeterminate"||o==="query")&&"bar2Indeterminate",o==="buffer"&&"bar2Buffer"]};return q(n,Ep,e)},Or=(t,e)=>t.vars?t.vars.palette.LinearProgress[`${e}Bg`]:t.palette.mode==="light"?Ee(t.palette[e].main,.62):De(t.palette[e].main,.5),Vp=S("span",{name:"MuiLinearProgress",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${T(o.color)}`],e[o.variant]]}})(U(({theme:t})=>({position:"relative",overflow:"hidden",display:"block",height:4,zIndex:0,"@media print":{colorAdjust:"exact"},variants:[...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{backgroundColor:Or(t,e)}})),{props:({ownerState:e})=>e.color==="inherit"&&e.variant!=="buffer",style:{"&::before":{content:'""',position:"absolute",left:0,top:0,right:0,bottom:0,backgroundColor:"currentColor",opacity:.3}}},{props:{variant:"buffer"},style:{backgroundColor:"transparent"}},{props:{variant:"query"},style:{transform:"rotate(180deg)"}}]}))),Gp=S("span",{name:"MuiLinearProgress",slot:"Dashed",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.dashed,e[`dashedColor${T(o.color)}`]]}})(U(({theme:t})=>({position:"absolute",marginTop:0,height:"100%",width:"100%",backgroundSize:"10px 10px",backgroundPosition:"0 -23px",variants:[{props:{color:"inherit"},style:{opacity:.3,backgroundImage:"radial-gradient(currentColor 0%, currentColor 16%, transparent 42%)"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>{const o=Or(t,e);return{props:{color:e},style:{backgroundImage:`radial-gradient(${o} 0%, ${o} 16%, transparent 42%)`}}})]})),Wp||{animation:`${Rr} 3s infinite linear`}),_p=S("span",{name:"MuiLinearProgress",slot:"Bar1",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar1,e[`barColor${T(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar1Indeterminate,o.variant==="determinate"&&e.bar1Determinate,o.variant==="buffer"&&e.bar1Buffer]}})(U(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[{props:{color:"inherit"},style:{backgroundColor:"currentColor"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{backgroundColor:(t.vars||t).palette[e].main}})),{props:{variant:"determinate"},style:{transition:`transform .${Cr}s linear`}},{props:{variant:"buffer"},style:{zIndex:1,transition:`transform .${Cr}s linear`}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:Fp||{animation:`${Sr} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite`}}]}))),qp=S("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.bar,e.bar2,e[`barColor${T(o.color)}`],(o.variant==="indeterminate"||o.variant==="query")&&e.bar2Indeterminate,o.variant==="buffer"&&e.bar2Buffer]}})(U(({theme:t})=>({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left",variants:[...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{"--LinearProgressBar2-barColor":(t.vars||t).palette[e].main}})),{props:({ownerState:e})=>e.variant!=="buffer"&&e.color!=="inherit",style:{backgroundColor:"var(--LinearProgressBar2-barColor, currentColor)"}},{props:({ownerState:e})=>e.variant!=="buffer"&&e.color==="inherit",style:{backgroundColor:"currentColor"}},{props:{color:"inherit"},style:{opacity:.3}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,variant:"buffer"},style:{backgroundColor:Or(t,e),transition:`transform .${Cr}s linear`}})),{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:{width:"auto"}},{props:({ownerState:e})=>e.variant==="indeterminate"||e.variant==="query",style:Up||{animation:`${wr} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite`}}]}))),Xp=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiLinearProgress"}),{className:n,color:s="primary",value:a,valueBuffer:i,variant:l="indeterminate",...c}=r,p={...r,color:s,variant:l},f=Hp(p),v=We(),m={},y={bar1:{},bar2:{}};if((l==="determinate"||l==="buffer")&&a!==void 0){m["aria-valuenow"]=Math.round(a),m["aria-valuemin"]=0,m["aria-valuemax"]=100;let g=a-100;v&&(g=-g),y.bar1.transform=`translateX(${g}%)`}if(l==="buffer"&&i!==void 0){let g=(i||0)-100;v&&(g=-g),y.bar2.transform=`translateX(${g}%)`}return d.jsxs(Vp,{className:j(f.root,n),ownerState:p,role:"progressbar",...m,ref:o,...c,children:[l==="buffer"?d.jsx(Gp,{className:f.dashed,ownerState:p}):null,d.jsx(_p,{className:f.bar1,ownerState:p,style:y.bar1}),l==="determinate"?null:d.jsx(qp,{className:f.bar2,ownerState:p,style:y.bar2})]})});function Yp(t){return K("MuiLink",t)}const Kp=Z("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),Zp=({theme:t,ownerState:e})=>{const o=e.color,r=Po(t,`palette.${o}.main`,!1)||Po(t,`palette.${o}`,!1)||e.color,n=Po(t,`palette.${o}.mainChannel`)||Po(t,`palette.${o}Channel`);return"vars"in t&&n?`rgba(${n} / 0.4)`:Tt(r,.4)},en={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},Jp=t=>{const{classes:e,component:o,focusVisible:r,underline:n}=t,s={root:["root",`underline${T(n)}`,o==="button"&&"button",r&&"focusVisible"]};return q(s,Yp,e)},Qp=S(re,{name:"MuiLink",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`underline${T(o.underline)}`],o.component==="button"&&e.button]}})(U(({theme:t})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:e,ownerState:o})=>e==="always"&&o.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{underline:"always",color:e},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.4)`:Tt(t.palette[e].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.primaryChannel} / 0.4)`:Tt(t.palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":t.vars?`rgba(${t.vars.palette.text.secondaryChannel} / 0.4)`:Tt(t.palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(t.vars||t).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Kp.focusVisible}`]:{outline:"auto"}}}]}))),Mb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiLink"}),n=se(),{className:s,color:a="primary",component:i="a",onBlur:l,onFocus:c,TypographyClasses:p,underline:f="always",variant:v="inherit",sx:m,...y}=r,[g,h]=u.useState(!1),b=P=>{Ie(P.target)||h(!1),l&&l(P)},x=P=>{Ie(P.target)&&h(!0),c&&c(P)},C={...r,color:a,component:i,focusVisible:g,underline:f,variant:v},R=Jp(C);return d.jsx(Qp,{color:a,className:j(R.root,s),classes:p,component:i,onBlur:b,onFocus:x,ref:o,ownerState:C,variant:v,...y,sx:[...en[a]===void 0?[{color:a}]:[],...Array.isArray(m)?m:[m]],style:{...y.style,...f==="always"&&a!=="inherit"&&!en[a]&&{"--Link-underlineColor":Zp({theme:n,ownerState:C})}}})});function td(t){return K("MuiListItemAvatar",t)}const Ab=Z("MuiListItemAvatar",["root","alignItemsFlexStart"]),ed=t=>{const{alignItems:e,classes:o}=t;return q({root:["root",e==="flex-start"&&"alignItemsFlexStart"]},td,o)},od=S("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})({minWidth:56,flexShrink:0,variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}),Lb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiListItemAvatar"}),{className:n,...s}=r,a=u.useContext(mo),i={...r,alignItems:a.alignItems},l=ed(i);return d.jsx(od,{className:j(l.root,n),ownerState:i,ref:o,...s})});function rd(t){return K("MuiMobileStepper",t)}const Bb=Z("MuiMobileStepper",["root","positionBottom","positionTop","positionStatic","dots","dot","dotActive","progress"]),nd=t=>{const{classes:e,position:o}=t,r={root:["root",`position${T(o)}`],dots:["dots"],dot:["dot"],dotActive:["dotActive"],progress:["progress"]};return q(r,rd,e)},sd=S(we,{name:"MuiMobileStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${T(o.position)}`]]}})(U(({theme:t})=>({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",background:(t.vars||t).palette.background.default,padding:8,variants:[{props:({position:e})=>e==="top"||e==="bottom",style:{position:"fixed",left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper}},{props:{position:"top"},style:{top:0}},{props:{position:"bottom"},style:{bottom:0}}]}))),ad=S("div",{name:"MuiMobileStepper",slot:"Dots",overridesResolver:(t,e)=>e.dots})({variants:[{props:{variant:"dots"},style:{display:"flex",flexDirection:"row"}}]}),id=S("div",{name:"MuiMobileStepper",slot:"Dot",shouldForwardProp:t=>Xo(t)&&t!=="dotActive",overridesResolver:(t,e)=>{const{dotActive:o}=t;return[e.dot,o&&e.dotActive]}})(U(({theme:t})=>({variants:[{props:{variant:"dots"},style:{transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),backgroundColor:(t.vars||t).palette.action.disabled,borderRadius:"50%",width:8,height:8,margin:"0 2px"}},{props:{variant:"dots",dotActive:!0},style:{backgroundColor:(t.vars||t).palette.primary.main}}]}))),ld=S(Xp,{name:"MuiMobileStepper",slot:"Progress",overridesResolver:(t,e)=>e.progress})({variants:[{props:{variant:"progress"},style:{width:"50%"}}]}),Nb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiMobileStepper"}),{activeStep:n=0,backButton:s,className:a,LinearProgressProps:i,nextButton:l,position:c="bottom",steps:p,variant:f="dots",slots:v={},slotProps:m={},...y}=r,g={...r,activeStep:n,position:c,variant:f};let h;f==="progress"&&(p===1?h=100:h=Math.ceil(n/(p-1)*100));const b=nd(g),x={slots:v,slotProps:{progress:i,...m}},[C,R]=V("root",{ref:o,elementType:sd,shouldForwardComponentProp:!0,className:j(b.root,a),externalForwardedProps:{...x,...y},ownerState:g,additionalProps:{square:!0,elevation:0}}),[P,N]=V("dots",{className:b.dots,elementType:ad,externalForwardedProps:x,ownerState:g}),[$,A]=V("dot",{elementType:id,externalForwardedProps:x,ownerState:g}),[k,I]=V("progress",{className:b.progress,elementType:ld,shouldForwardComponentProp:!0,externalForwardedProps:x,ownerState:g,additionalProps:{value:h,variant:"determinate"}});return d.jsxs(C,{...R,children:[s,f==="text"&&d.jsxs(u.Fragment,{children:[n+1," / ",p]}),f==="dots"&&d.jsx(P,{...N,children:[...new Array(p)].map((F,L)=>d.jsx($,{...A,className:j(b.dot,A.className,L===n&&b.dotActive),dotActive:L===n},L))}),f==="progress"&&d.jsx(k,{...I}),l]})}),cd=t=>{const{classes:e}=t;return q({root:["root"]},Us,e)},pd=d.jsx(Fs,{}),dd=u.forwardRef(function(e,o){const r=X({name:"MuiNativeSelect",props:e}),{className:n,children:s,classes:a={},IconComponent:i=Rn,input:l=pd,inputProps:c,variant:p,...f}=r,v=xo(),m=Ir({props:r,muiFormControl:v,states:["variant"]}),y={...r,classes:a},g=cd(y),{root:h,...b}=a;return d.jsx(u.Fragment,{children:u.cloneElement(l,{inputComponent:Es,inputProps:{children:s,classes:b,IconComponent:i,variant:m.variant,type:void 0,...c,...l?l.props.inputProps:{}},ref:o,...f,className:j(g.root,l.props.className,n)})})});dd.muiName="Select";function ud(t){const{children:e,defer:o=!1,fallback:r=null}=t,[n,s]=u.useState(!1);return Co(()=>{o||s(!0)},[o]),u.useEffect(()=>{o&&s(!0)},[o]),n?e:r}function fd(t){return K("MuiPagination",t)}const Ob=Z("MuiPagination",["root","ul","outlined","text"]);function gd(t={}){const{boundaryCount:e=1,componentName:o="usePagination",count:r=1,defaultPage:n=1,disabled:s=!1,hideNextButton:a=!1,hidePrevButton:i=!1,onChange:l,page:c,showFirstButton:p=!1,showLastButton:f=!1,siblingCount:v=1,...m}=t,[y,g]=ue({controlled:c,default:n,name:o,state:"page"}),h=(k,I)=>{c||g(I),l&&l(k,I)},b=(k,I)=>{const F=I-k+1;return Array.from({length:F},(L,w)=>k+w)},x=b(1,Math.min(e,r)),C=b(Math.max(r-e+1,e+1),r),R=Math.max(Math.min(y-v,r-e-v*2-1),e+2),P=Math.min(Math.max(y+v,e+v*2+2),r-e-1),N=[...p?["first"]:[],...i?[]:["previous"],...x,...R>e+2?["start-ellipsis"]:e+1e?[r-e]:[],...C,...a?[]:["next"],...f?["last"]:[]],$=k=>{switch(k){case"first":return 1;case"previous":return y-1;case"next":return y+1;case"last":return r;default:return null}};return{items:N.map(k=>typeof k=="number"?{onClick:I=>{h(I,k)},type:"page",page:k,selected:k===y,disabled:s,"aria-current":k===y?"page":void 0}:{onClick:I=>{h(I,$(k))},type:k,page:$(k),selected:!1,disabled:s||!k.includes("ellipsis")&&(k==="next"||k==="last"?y>=r:y<=1)}),...m}}function md(t){return K("MuiPaginationItem",t)}const ee=Z("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon","colorPrimary","colorSecondary"]),Hn=Ht(d.jsx("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),Vn=Ht(d.jsx("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),bd=Ht(d.jsx("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),vd=Ht(d.jsx("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext"),Gn=(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${T(o.size)}`],o.variant==="text"&&e[`text${T(o.color)}`],o.variant==="outlined"&&e[`outlined${T(o.color)}`],o.shape==="rounded"&&e.rounded,o.type==="page"&&e.page,(o.type==="start-ellipsis"||o.type==="end-ellipsis")&&e.ellipsis,(o.type==="previous"||o.type==="next")&&e.previousNext,(o.type==="first"||o.type==="last")&&e.firstLast]},yd=t=>{const{classes:e,color:o,disabled:r,selected:n,size:s,shape:a,type:i,variant:l}=t,c={root:["root",`size${T(s)}`,l,a,o!=="standard"&&`color${T(o)}`,o!=="standard"&&`${l}${T(o)}`,r&&"disabled",n&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[i]],icon:["icon"]};return q(c,md,e)},hd=S("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:Gn})(U(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,height:"auto",[`&.${ee.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:{size:"small"},style:{minWidth:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}}]}))),xd=S(fe,{name:"MuiPaginationItem",slot:"Root",overridesResolver:Gn})(U(({theme:t})=>({...t.typography.body2,borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,[`&.${ee.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${ee.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},transition:t.transitions.create(["color","background-color"],{duration:t.transitions.duration.short}),"&:hover":{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ee.selected}`]:{backgroundColor:(t.vars||t).palette.action.selected,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${ee.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selectedChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)},[`&.${ee.disabled}`]:{opacity:1,color:(t.vars||t).palette.action.disabled,backgroundColor:(t.vars||t).palette.action.selected}},variants:[{props:{size:"small"},style:{minWidth:26,height:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"}},{props:{size:"large"},style:{minWidth:40,height:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)}},{props:{shape:"rounded"},style:{borderRadius:(t.vars||t).shape.borderRadius}},{props:{variant:"outlined"},style:{border:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${ee.selected}`]:{[`&.${ee.disabled}`]:{borderColor:(t.vars||t).palette.action.disabledBackground,color:(t.vars||t).palette.action.disabled}}}},{props:{variant:"text"},style:{[`&.${ee.selected}`]:{[`&.${ee.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}},...Object.entries(t.palette).filter(Ft(["dark","contrastText"])).map(([e])=>({props:{variant:"text",color:e},style:{[`&.${ee.selected}`]:{color:(t.vars||t).palette[e].contrastText,backgroundColor:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:(t.vars||t).palette[e].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e].main}},[`&.${ee.focusVisible}`]:{backgroundColor:(t.vars||t).palette[e].dark},[`&.${ee.disabled}`]:{color:(t.vars||t).palette.action.disabled}}}})),...Object.entries(t.palette).filter(Ft(["light"])).map(([e])=>({props:{variant:"outlined",color:e},style:{[`&.${ee.selected}`]:{color:(t.vars||t).palette[e].main,border:`1px solid ${t.vars?`rgba(${t.vars.palette[e].mainChannel} / 0.5)`:Tt(t.palette[e].main,.5)}`,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.activatedOpacity})`:Tt(t.palette[e].main,t.palette.action.activatedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ee.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:Tt(t.palette[e].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity)}}}}))]}))),Cd=S("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:(t,e)=>e.icon})(U(({theme:t})=>({fontSize:t.typography.pxToRem(20),margin:"0 -8px",variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(22)}}]}))),Sd=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiPaginationItem"}),{className:n,color:s="standard",component:a,components:i={},disabled:l=!1,page:c,selected:p=!1,shape:f="circular",size:v="medium",slots:m={},slotProps:y={},type:g="page",variant:h="text",...b}=r,x={...r,color:s,disabled:l,selected:p,shape:f,size:v,type:g,variant:h},C=We(),R=yd(x),P={slots:{previous:m.previous??i.previous,next:m.next??i.next,first:m.first??i.first,last:m.last??i.last},slotProps:y},[N,$]=V("previous",{elementType:bd,externalForwardedProps:P,ownerState:x}),[A,k]=V("next",{elementType:vd,externalForwardedProps:P,ownerState:x}),[I,F]=V("first",{elementType:Hn,externalForwardedProps:P,ownerState:x}),[L,w]=V("last",{elementType:Vn,externalForwardedProps:P,ownerState:x}),M=C?{previous:"next",next:"previous",first:"last",last:"first"}[g]:g,H={previous:N,next:A,first:I,last:L}[M],z={previous:$,next:k,first:F,last:w}[M];return g==="start-ellipsis"||g==="end-ellipsis"?d.jsx(hd,{ref:o,ownerState:x,className:j(R.root,n),children:"…"}):d.jsxs(xd,{ref:o,ownerState:x,component:a,disabled:l,className:j(R.root,n),...b,children:[g==="page"&&c,H?d.jsx(Cd,{...z,className:R.icon,as:H}):null]})}),wd=t=>{const{classes:e,variant:o}=t;return q({root:["root",o],ul:["ul"]},fd,e)},Rd=S("nav",{name:"MuiPagination",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({}),$d=S("ul",{name:"MuiPagination",slot:"Ul",overridesResolver:(t,e)=>e.ul})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"});function Pd(t,e,o){return t==="page"?`${o?"":"Go to "}page ${e}`:`Go to ${t} page`}const zb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiPagination"}),{boundaryCount:n=1,className:s,color:a="standard",count:i=1,defaultPage:l=1,disabled:c=!1,getItemAriaLabel:p=Pd,hideNextButton:f=!1,hidePrevButton:v=!1,onChange:m,page:y,renderItem:g=I=>d.jsx(Sd,{...I}),shape:h="circular",showFirstButton:b=!1,showLastButton:x=!1,siblingCount:C=1,size:R="medium",variant:P="text",...N}=r,{items:$}=gd({...r,componentName:"Pagination"}),A={...r,boundaryCount:n,color:a,count:i,defaultPage:l,disabled:c,getItemAriaLabel:p,hideNextButton:f,hidePrevButton:v,renderItem:g,shape:h,showFirstButton:b,showLastButton:x,siblingCount:C,size:R,variant:P},k=wd(A);return d.jsx(Rd,{"aria-label":"pagination navigation",className:j(k.root,s),ownerState:A,ref:o,...N,children:d.jsx($d,{className:k.ul,ownerState:A,children:$.map((I,F)=>d.jsx("li",{children:g({...I,color:a,"aria-label":p(I.type,I.page,I.selected),shape:h,size:R,variant:P})},F))})})}),kd=Ht(d.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"RadioButtonUnchecked"),Td=Ht(d.jsx("path",{d:"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"}),"RadioButtonChecked"),Id=S("span",{shouldForwardProp:Se})({position:"relative",display:"flex"}),Md=S(kd)({transform:"scale(1)"}),Ad=S(Td)(U(({theme:t})=>({left:0,position:"absolute",transform:"scale(0)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeIn,duration:t.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:"scale(1)",transition:t.transitions.create("transform",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.shortest})}}]})));function _n(t){const{checked:e=!1,classes:o={},fontSize:r}=t,n={...t,checked:e};return d.jsxs(Id,{className:o.root,ownerState:n,children:[d.jsx(Md,{fontSize:r,className:o.background,ownerState:n}),d.jsx(Ad,{fontSize:r,className:o.dot,ownerState:n})]})}const qn=u.createContext(void 0);function Ld(){return u.useContext(qn)}function Bd(t){return K("MuiRadio",t)}const on=Z("MuiRadio",["root","checked","disabled","colorPrimary","colorSecondary","sizeSmall"]),Nd=t=>{const{classes:e,color:o,size:r}=t,n={root:["root",`color${T(o)}`,r!=="medium"&&`size${T(r)}`]};return{...e,...q(n,Bd,e)}},Od=S(Nr,{shouldForwardProp:t=>Se(t)||t==="classes",name:"MuiRadio",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.size!=="medium"&&e[`size${T(o.size)}`],e[`color${T(o.color)}`]]}})(U(({theme:t})=>({color:(t.vars||t).palette.text.secondary,[`&.${on.disabled}`]:{color:(t.vars||t).palette.action.disabled},variants:[{props:{color:"default",disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.action.active,t.palette.action.hoverOpacity)}}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette[e].main,t.palette.action.hoverOpacity)}}})),...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,disabled:!1},style:{[`&.${on.checked}`]:{color:(t.vars||t).palette[e].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]})));function zd(t,e){return typeof e=="object"&&e!==null?t===e:String(t)===String(e)}const jd=d.jsx(_n,{checked:!0}),Dd=d.jsx(_n,{}),jb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiRadio"}),{checked:n,checkedIcon:s=jd,color:a="primary",icon:i=Dd,name:l,onChange:c,size:p="medium",className:f,disabled:v,disableRipple:m=!1,slots:y={},slotProps:g={},inputProps:h,...b}=r,x=xo();let C=v;x&&typeof C>"u"&&(C=x.disabled),C??=!1;const R={...r,disabled:C,disableRipple:m,color:a,size:p},P=Nd(R),N=Ld();let $=n;const A=Ws(c,N&&N.onChange);let k=l;N&&(typeof $>"u"&&($=zd(N.value,r.value)),typeof k>"u"&&(k=N.name));const I=g.input??h,[F,L]=V("root",{ref:o,elementType:Od,className:j(P.root,f),shouldForwardComponentProp:!0,externalForwardedProps:{slots:y,slotProps:g,...b},getSlotProps:w=>({...w,onChange:(M,...H)=>{var z;(z=w.onChange)==null||z.call(w,M,...H),A(M,...H)}}),ownerState:R,additionalProps:{type:"radio",icon:u.cloneElement(i,{fontSize:i.props.fontSize??p}),checkedIcon:u.cloneElement(s,{fontSize:s.props.fontSize??p}),disabled:C,name:k,checked:$,slots:y,slotProps:{input:typeof I=="function"?I(R):I}}});return d.jsx(F,{...L,classes:P})});function Ed(t){return K("MuiRadioGroup",t)}const Db=Z("MuiRadioGroup",["root","row","error"]),Fd=t=>{const{classes:e,row:o,error:r}=t;return q({root:["root",o&&"row",r&&"error"]},Ed,e)},Eb=u.forwardRef(function(e,o){const{actions:r,children:n,className:s,defaultValue:a,name:i,onChange:l,value:c,...p}=e,f=u.useRef(null),v=Fd(e),[m,y]=ue({controlled:c,default:a,name:"RadioGroup"});u.useImperativeHandle(r,()=>({focus:()=>{let x=f.current.querySelector("input:not(:disabled):checked");x||(x=f.current.querySelector("input:not(:disabled)")),x&&x.focus()}}),[]);const g=ge(o,f),h=Ue(i),b=u.useMemo(()=>({name:h,onChange(x){y(x.target.value),l&&l(x,x.target.value)},value:m}),[h,l,y,m]);return d.jsx(qn.Provider,{value:b,children:d.jsx(Jc,{role:"radiogroup",ref:g,className:j(v.root,s),...p,children:n})})}),Ud=Ht(d.jsx("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star"),Wd=Ht(d.jsx("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}),"StarBorder");function Hd(t){return K("MuiRating",t)}const so=Z("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);function Vd(t){const e=t.toString().split(".")[1];return e?e.length:0}function fr(t,e){if(t==null)return t;const o=Math.round(t/e)*e;return Number(o.toFixed(Vd(e)))}const Gd=t=>{const{classes:e,size:o,readOnly:r,disabled:n,emptyValueFocused:s,focusVisible:a}=t,i={root:["root",`size${T(o)}`,n&&"disabled",a&&"focusVisible",r&&"readOnly"],label:["label","pristine"],labelEmptyValue:[s&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]};return q(i,Hd,e)},_d=S("span",{name:"MuiRating",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${so.visuallyHidden}`]:e.visuallyHidden},e.root,e[`size${T(o.size)}`],o.readOnly&&e.readOnly]}})(U(({theme:t})=>({display:"inline-flex",position:"relative",fontSize:t.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",width:"min-content",WebkitTapHighlightColor:"transparent",[`&.${so.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${so.focusVisible} .${so.iconActive}`]:{outline:"1px solid #999"},[`& .${so.visuallyHidden}`]:Pn,variants:[{props:{size:"small"},style:{fontSize:t.typography.pxToRem(18)}},{props:{size:"large"},style:{fontSize:t.typography.pxToRem(30)}},{props:({ownerState:e})=>e.readOnly,style:{pointerEvents:"none"}}]}))),Xn=S("label",{name:"MuiRating",slot:"Label",overridesResolver:({ownerState:t},e)=>[e.label,t.emptyValueFocused&&e.labelEmptyValueActive]})({cursor:"inherit",variants:[{props:({ownerState:t})=>t.emptyValueFocused,style:{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"}}]}),qd=S("span",{name:"MuiRating",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.iconEmpty&&e.iconEmpty,o.iconFilled&&e.iconFilled,o.iconHover&&e.iconHover,o.iconFocus&&e.iconFocus,o.iconActive&&e.iconActive]}})(U(({theme:t})=>({display:"flex",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),pointerEvents:"none",variants:[{props:({ownerState:e})=>e.iconActive,style:{transform:"scale(1.2)"}},{props:({ownerState:e})=>e.iconEmpty,style:{color:(t.vars||t).palette.action.disabled}}]}))),Xd=S("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:t=>Xo(t)&&t!=="iconActive",overridesResolver:(t,e)=>{const{iconActive:o}=t;return[e.decimal,o&&e.iconActive]}})({position:"relative",variants:[{props:({iconActive:t})=>t,style:{transform:"scale(1.2)"}}]});function Yd(t){const{value:e,...o}=t;return d.jsx("span",{...o})}function rn(t){const{classes:e,disabled:o,emptyIcon:r,focus:n,getLabelText:s,highlightSelectedOnly:a,hover:i,icon:l,IconContainerComponent:c,isActive:p,itemValue:f,labelProps:v,name:m,onBlur:y,onChange:g,onClick:h,onFocus:b,readOnly:x,ownerState:C,ratingValue:R,ratingValueRounded:P,slots:N={},slotProps:$={}}=t,A=a?f===R:f<=R,k=f<=i,I=f<=n,F=f===P,L=`${m}-${Ue()}`,w={slots:N,slotProps:$},[M,H]=V("icon",{elementType:qd,className:j(e.icon,A?e.iconFilled:e.iconEmpty,k&&e.iconHover,I&&e.iconFocus,p&&e.iconActive),externalForwardedProps:w,ownerState:{...C,iconEmpty:!A,iconFilled:A,iconHover:k,iconFocus:I,iconActive:p},additionalProps:{value:f},internalForwardedProps:{as:c}}),[z,Q]=V("label",{elementType:Xn,externalForwardedProps:w,ownerState:{...C,emptyValueFocused:void 0},additionalProps:{style:v==null?void 0:v.style,htmlFor:L}}),D=d.jsx(M,{...H,children:r&&!A?r:l});return x?d.jsx("span",{...v,children:D}):d.jsxs(u.Fragment,{children:[d.jsxs(z,{...Q,children:[D,d.jsx("span",{className:e.visuallyHidden,children:s(f)})]}),d.jsx("input",{className:e.visuallyHidden,onFocus:b,onBlur:y,onChange:g,onClick:h,disabled:o,value:f,id:L,type:"radio",name:m,checked:F})]})}const Kd=d.jsx(Ud,{fontSize:"inherit"}),Zd=d.jsx(Wd,{fontSize:"inherit"});function Jd(t){return`${t||"0"} Star${t!==1?"s":""}`}const Fb=u.forwardRef(function(e,o){const r=X({name:"MuiRating",props:e}),{component:n="span",className:s,defaultValue:a=null,disabled:i=!1,emptyIcon:l=Zd,emptyLabelText:c="Empty",getLabelText:p=Jd,highlightSelectedOnly:f=!1,icon:v=Kd,IconContainerComponent:m=Yd,max:y=5,name:g,onChange:h,onChangeActive:b,onMouseLeave:x,onMouseMove:C,precision:R=1,readOnly:P=!1,size:N="medium",value:$,slots:A={},slotProps:k={},...I}=r,F=Ue(g),[L,w]=ue({controlled:$,default:a,name:"Rating"}),M=fr(L,R),H=We(),[{hover:z,focus:Q},D]=u.useState({hover:-1,focus:-1});let et=M;z!==-1&&(et=z),Q!==-1&&(et=Q);const[pt,_]=u.useState(!1),wt=u.useRef(),Lt=ge(wt,o),Rt=ft=>{C&&C(ft);const Pt=wt.current,{right:It,left:Vt,width:E}=Pt.getBoundingClientRect();let G;H?G=(It-ft.clientX)/E:G=(ft.clientX-Vt)/E;let ot=fr(y*G+R/2,R);ot=Le(ot,R,y),D(gt=>gt.hover===ot&>.focus===ot?gt:{hover:ot,focus:ot}),_(!1),b&&z!==ot&&b(ft,ot)},lt=ft=>{x&&x(ft);const Pt=-1;D({hover:Pt,focus:Pt}),b&&z!==Pt&&b(ft,Pt)},rt=ft=>{let Pt=ft.target.value===""?null:parseFloat(ft.target.value);z!==-1&&(Pt=z),w(Pt),h&&h(ft,Pt)},W=ft=>{ft.clientX===0&&ft.clientY===0||(D({hover:-1,focus:-1}),w(null),h&&parseFloat(ft.target.value)===M&&h(ft,null))},it=ft=>{Ie(ft.target)&&_(!0);const Pt=parseFloat(ft.target.value);D(It=>({hover:It.hover,focus:Pt}))},dt=ft=>{if(z!==-1)return;Ie(ft.target)||_(!1);const Pt=-1;D(It=>({hover:It.hover,focus:Pt}))},[bt,$t]=u.useState(!1),nt={...r,component:n,defaultValue:a,disabled:i,emptyIcon:l,emptyLabelText:c,emptyValueFocused:bt,focusVisible:pt,getLabelText:p,icon:v,IconContainerComponent:m,max:y,precision:R,readOnly:P,size:N},ct=Gd(nt),vt={slots:A,slotProps:k},[yt,Ot]=V("root",{ref:Lt,className:j(ct.root,s),elementType:_d,externalForwardedProps:{...vt,...I,component:n},getSlotProps:ft=>({...ft,onMouseMove:Pt=>{var It;Rt(Pt),(It=ft.onMouseMove)==null||It.call(ft,Pt)},onMouseLeave:Pt=>{var It;lt(Pt),(It=ft.onMouseLeave)==null||It.call(ft,Pt)}}),ownerState:nt,additionalProps:{role:P?"img":null,"aria-label":P?p(et):null}}),[Y,tt]=V("label",{className:j(ct.label,ct.labelEmptyValue),elementType:Xn,externalForwardedProps:vt,ownerState:nt}),[st,xt]=V("decimal",{className:ct.decimal,elementType:Xd,externalForwardedProps:vt,ownerState:nt});return d.jsxs(yt,{...Ot,children:[Array.from(new Array(y)).map((ft,Pt)=>{const It=Pt+1,Vt={classes:ct,disabled:i,emptyIcon:l,focus:Q,getLabelText:p,highlightSelectedOnly:f,hover:z,icon:v,IconContainerComponent:m,name:F,onBlur:dt,onChange:rt,onClick:W,onFocus:it,ratingValue:et,ratingValueRounded:M,readOnly:P,ownerState:nt,slots:A,slotProps:k},E=It===Math.ceil(et)&&(z!==-1||Q!==-1);if(R<1){const G=Array.from(new Array(1/R));return u.createElement(st,{...xt,key:It,className:j(xt.className,E&&ct.iconActive),iconActive:E},G.map((ot,gt)=>{const ut=fr(It-1+(gt+1)*R,R);return d.jsx(rn,{...Vt,isActive:!1,itemValue:ut,labelProps:{style:G.length-1===gt?{}:{width:ut===et?`${(gt+1)*R*100}%`:"0%",overflow:"hidden",position:"absolute"}}},ut)}))}return d.jsx(rn,{...Vt,isActive:E,itemValue:It},It)}),!P&&!i&&d.jsxs(Y,{...tt,children:[d.jsx("input",{className:ct.visuallyHidden,value:"",id:`${F}-empty`,type:"radio",name:F,checked:M==null,onFocus:()=>$t(!0),onBlur:()=>$t(!1),onChange:rt}),d.jsx("span",{className:ct.visuallyHidden,children:c})]})]})});function Qd(t){return K("MuiScopedCssBaseline",t)}const Ub=Z("MuiScopedCssBaseline",["root"]),tu=t=>{const{classes:e}=t;return q({root:["root"]},Qd,e)},eu=S("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>{const e={};return t.colorSchemes&&Object.entries(t.colorSchemes).forEach(([o,r])=>{var s,a;const n=t.getColorSchemeSelector(o);n.startsWith("@")?e[n]={colorScheme:(s=r.palette)==null?void 0:s.mode}:e[`&${n.replace(/\s*&/,"")}`]={colorScheme:(a=r.palette)==null?void 0:a.mode}}),{...Nn(t,!1),...On(t),"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:t.typography.fontWeightBold},variants:[{props:{enableColorScheme:!0},style:t.vars?e:{colorScheme:t.palette.mode}}]}})),Wb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiScopedCssBaseline"}),{className:n,component:s="div",enableColorScheme:a,...i}=r,l={...r,component:s},c=tu(l);return d.jsx(eu,{as:s,className:j(c.root,n),ref:o,ownerState:l,...i})});function ou(t,e,o=(r,n)=>r===n){return t.length===e.length&&t.every((r,n)=>o(r,e[n]))}const ru=2;function _e(t,e,o,r,n){return o===1?Math.min(t+e,n):Math.max(t-e,r)}function Yn(t,e){return t-e}function nn(t,e){const{index:o}=t.reduce((r,n,s)=>{const a=Math.abs(e-n);return r===null||a({left:`${t}%`}),leap:t=>({width:`${t}%`})},"horizontal-reverse":{offset:t=>({right:`${t}%`}),leap:t=>({width:`${t}%`})},vertical:{offset:t=>({bottom:`${t}%`}),leap:t=>({height:`${t}%`})}},lu=t=>t;let Bo;function an(){return Bo===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?Bo=CSS.supports("touch-action","none"):Bo=!0),Bo}function cu(t){const{"aria-labelledby":e,defaultValue:o,disabled:r=!1,disableSwap:n=!1,isRtl:s=!1,marks:a=!1,max:i=100,min:l=0,name:c,onChange:p,onChangeCommitted:f,orientation:v="horizontal",rootRef:m,scale:y=lu,step:g=1,shiftStep:h=10,tabIndex:b,value:x}=t,C=u.useRef(void 0),[R,P]=u.useState(-1),[N,$]=u.useState(-1),[A,k]=u.useState(!1),I=u.useRef(0),F=u.useRef(null),[L,w]=ue({controlled:x,default:o??l,name:"Slider"}),M=p&&((E,G,ot)=>{const gt=E.nativeEvent||E,ut=new gt.constructor(gt.type,gt);Object.defineProperty(ut,"target",{writable:!0,value:{value:G,name:c}}),F.current=G,p(ut,G,ot)}),H=Array.isArray(L);let z=H?L.slice().sort(Yn):[L];z=z.map(E=>E==null?l:Le(E,l,i));const Q=a===!0&&g!==null?[...Array(Math.floor((i-l)/g)+1)].map((E,G)=>({value:l+g*G})):a||[],D=Q.map(E=>E.value),[et,pt]=u.useState(-1),_=u.useRef(null),wt=ge(m,_),Lt=E=>G=>{var gt;const ot=Number(G.currentTarget.getAttribute("data-index"));Ie(G.target)&&pt(ot),$(ot),(gt=E==null?void 0:E.onFocus)==null||gt.call(E,G)},Rt=E=>G=>{var ot;Ie(G.target)||pt(-1),$(-1),(ot=E==null?void 0:E.onBlur)==null||ot.call(E,G)},lt=(E,G)=>{const ot=Number(E.currentTarget.getAttribute("data-index")),gt=z[ot],ut=D.indexOf(gt);let J=G;if(Q&&g==null){const ht=D[D.length-1];J>=ht?J=ht:J<=D[0]?J=D[0]:J=JG=>{var ot;if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"].includes(G.key)){G.preventDefault();const gt=Number(G.currentTarget.getAttribute("data-index")),ut=z[gt];let J=null;if(g!=null){const ht=G.shiftKey?h:g;switch(G.key){case"ArrowUp":J=_e(ut,ht,1,l,i);break;case"ArrowRight":J=_e(ut,ht,s?-1:1,l,i);break;case"ArrowDown":J=_e(ut,ht,-1,l,i);break;case"ArrowLeft":J=_e(ut,ht,s?1:-1,l,i);break;case"PageUp":J=_e(ut,h,1,l,i);break;case"PageDown":J=_e(ut,h,-1,l,i);break;case"Home":J=l;break;case"End":J=i;break}}else if(Q){const ht=D[D.length-1],Dt=D.indexOf(ut),At=[s?"ArrowRight":"ArrowLeft","ArrowDown","PageDown","Home"],zt=[s?"ArrowLeft":"ArrowRight","ArrowUp","PageUp","End"];At.includes(G.key)?Dt===0?J=D[0]:J=D[Dt-1]:zt.includes(G.key)&&(Dt===D.length-1?J=ht:J=D[Dt+1])}J!=null&<(G,J)}(ot=E==null?void 0:E.onKeyDown)==null||ot.call(E,G)};Co(()=>{var E;r&&_.current.contains(document.activeElement)&&((E=document.activeElement)==null||E.blur())},[r]),r&&R!==-1&&P(-1),r&&et!==-1&&pt(-1);const W=E=>G=>{var ot;(ot=E.onChange)==null||ot.call(E,G),lt(G,G.target.valueAsNumber)},it=u.useRef(void 0);let dt=v;s&&v==="horizontal"&&(dt+="-reverse");const bt=({finger:E,move:G=!1})=>{const{current:ot}=_,{width:gt,height:ut,bottom:J,left:ht}=ot.getBoundingClientRect();let Dt;dt.startsWith("vertical")?Dt=(J-E.y)/ut:Dt=(E.x-ht)/gt,dt.includes("-reverse")&&(Dt=1-Dt);let At;if(At=nu(Dt,l,i),g)At=au(At,g,l);else{const qt=nn(D,At);At=D[qt]}At=Le(At,l,i);let zt=0;if(H){G?zt=it.current:zt=nn(z,At),n&&(At=Le(At,z[zt-1]||-1/0,z[zt+1]||1/0));const qt=At;At=sn({values:z,newValue:At,index:zt}),n&&G||(zt=At.indexOf(qt),it.current=zt)}return{newValue:At,activeIndex:zt}},$t=ne(E=>{const G=Mo(E,C);if(!G)return;if(I.current+=1,E.type==="mousemove"&&E.buttons===0){nt(E);return}const{newValue:ot,activeIndex:gt}=bt({finger:G,move:!0});Ao({sliderRef:_,activeIndex:gt,setActive:P}),w(ot),!A&&I.current>ru&&k(!0),M&&!Lo(ot,L)&&M(E,ot,gt)}),nt=ne(E=>{const G=Mo(E,C);if(k(!1),!G)return;const{newValue:ot}=bt({finger:G,move:!0});P(-1),E.type==="touchend"&&$(-1),f&&f(E,F.current??ot),C.current=void 0,vt()}),ct=ne(E=>{if(r)return;an()||E.preventDefault();const G=E.changedTouches[0];G!=null&&(C.current=G.identifier);const ot=Mo(E,C);if(ot!==!1){const{newValue:ut,activeIndex:J}=bt({finger:ot});Ao({sliderRef:_,activeIndex:J,setActive:P}),w(ut),M&&!Lo(ut,L)&&M(E,ut,J)}I.current=0;const gt=de(_.current);gt.addEventListener("touchmove",$t,{passive:!0}),gt.addEventListener("touchend",nt,{passive:!0})}),vt=u.useCallback(()=>{const E=de(_.current);E.removeEventListener("mousemove",$t),E.removeEventListener("mouseup",nt),E.removeEventListener("touchmove",$t),E.removeEventListener("touchend",nt)},[nt,$t]);u.useEffect(()=>{const{current:E}=_;return E.addEventListener("touchstart",ct,{passive:an()}),()=>{E.removeEventListener("touchstart",ct),vt()}},[vt,ct]),u.useEffect(()=>{r&&vt()},[r,vt]);const yt=E=>G=>{var ut;if((ut=E.onMouseDown)==null||ut.call(E,G),r||G.defaultPrevented||G.button!==0)return;G.preventDefault();const ot=Mo(G,C);if(ot!==!1){const{newValue:J,activeIndex:ht}=bt({finger:ot});Ao({sliderRef:_,activeIndex:ht,setActive:P}),w(J),M&&!Lo(J,L)&&M(G,J,ht)}I.current=0;const gt=de(_.current);gt.addEventListener("mousemove",$t,{passive:!0}),gt.addEventListener("mouseup",nt)},Ot=qo(H?z[0]:l,l,i),Y=qo(z[z.length-1],l,i)-Ot,tt=(E={})=>{const G=uo(E),ot={onMouseDown:yt(G||{})},gt={...G,...ot};return{...E,ref:wt,...gt}},st=E=>G=>{var gt;(gt=E.onMouseOver)==null||gt.call(E,G);const ot=Number(G.currentTarget.getAttribute("data-index"));$(ot)},xt=E=>G=>{var ot;(ot=E.onMouseLeave)==null||ot.call(E,G),$(-1)},ft=(E={})=>{const G=uo(E),ot={onMouseOver:st(G||{}),onMouseLeave:xt(G||{})};return{...E,...G,...ot}},Pt=E=>({pointerEvents:R!==-1&&R!==E?"none":void 0});let It;return v==="vertical"&&(It=s?"vertical-rl":"vertical-lr"),{active:R,axis:dt,axisProps:iu,dragging:A,focusedThumbIndex:et,getHiddenInputProps:(E={})=>{const G=uo(E),ot={onChange:W(G||{}),onFocus:Lt(G||{}),onBlur:Rt(G||{}),onKeyDown:rt(G||{})},gt={...G,...ot};return{tabIndex:b,"aria-labelledby":e,"aria-orientation":v,"aria-valuemax":y(i),"aria-valuemin":y(l),name:c,type:"range",min:t.min,max:t.max,step:t.step===null&&t.marks?"any":t.step??void 0,disabled:r,...E,...gt,style:{...Pn,direction:s?"rtl":"ltr",width:"100%",height:"100%",writingMode:It}}},getRootProps:tt,getThumbProps:ft,marks:Q,open:N,range:H,rootRef:wt,trackLeap:Y,trackOffset:Ot,values:z,getThumbStyle:Pt}}const pu=t=>!t||!Uo(t);function du(t){return K("MuiSlider",t)}const le=Z("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","thumbColorError","thumbColorSuccess","thumbColorInfo","thumbColorWarning","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),uu=t=>{const{open:e}=t;return{offset:j(e&&le.valueLabelOpen),circle:le.valueLabelCircle,label:le.valueLabelLabel}};function fu(t){const{children:e,className:o,value:r}=t,n=uu(t);return e?u.cloneElement(e,{className:j(e.props.className)},d.jsxs(u.Fragment,{children:[e.props.children,d.jsx("span",{className:j(n.offset,o),"aria-hidden":!0,children:d.jsx("span",{className:n.circle,children:d.jsx("span",{className:n.label,children:r})})})]})):null}function ln(t){return t}const gu=S("span",{name:"MuiSlider",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`color${T(o.color)}`],o.size!=="medium"&&e[`size${T(o.size)}`],o.marked&&e.marked,o.orientation==="vertical"&&e.vertical,o.track==="inverted"&&e.trackInverted,o.track===!1&&e.trackFalse]}})(U(({theme:t})=>({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"},[`&.${le.disabled}`]:{pointerEvents:"none",cursor:"default",color:(t.vars||t).palette.grey[400]},[`&.${le.dragging}`]:{[`& .${le.thumb}, & .${le.track}`]:{transition:"none"}},variants:[...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{color:(t.vars||t).palette[e].main}})),{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]}))),mu=S("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(t,e)=>e.rail})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),bu=S("span",{name:"MuiSlider",slot:"Track",overridesResolver:(t,e)=>e.track})(U(({theme:t})=>({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:t.transitions.create(["left","width","bottom","height"],{duration:t.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{border:"none"}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e,track:"inverted"},style:{...t.vars?{backgroundColor:t.vars.palette.Slider[`${e}Track`],borderColor:t.vars.palette.Slider[`${e}Track`]}:{backgroundColor:Ee(t.palette[e].main,.62),borderColor:Ee(t.palette[e].main,.62),...t.applyStyles("dark",{backgroundColor:De(t.palette[e].main,.5)}),...t.applyStyles("dark",{borderColor:De(t.palette[e].main,.5)})}}}))]}))),vu=S("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.thumb,e[`thumbColor${T(o.color)}`],o.size!=="medium"&&e[`thumbSize${T(o.size)}`]]}})(U(({theme:t})=>({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:t.transitions.create(["box-shadow","left","bottom"],{duration:t.transitions.duration.shortest}),"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(t.vars||t).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&.${le.disabled}`]:{"&:hover":{boxShadow:"none"}},variants:[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{[`&:hover, &.${le.focusVisible}`]:{...t.vars?{boxShadow:`0px 0px 0px 8px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${Tt(t.palette[e].main,.16)}`},"@media (hover: none)":{boxShadow:"none"}},[`&.${le.active}`]:{...t.vars?{boxShadow:`0px 0px 0px 14px rgba(${t.vars.palette[e].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${Tt(t.palette[e].main,.16)}`}}}}))]}))),yu=S(fu,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(t,e)=>e.valueLabel})(U(({theme:t})=>({zIndex:1,whiteSpace:"nowrap",...t.typography.body2,fontWeight:500,transition:t.transitions.create(["transform"],{duration:t.transitions.duration.shortest}),position:"absolute",backgroundColor:(t.vars||t).palette.grey[600],borderRadius:2,color:(t.vars||t).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:{transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"},[`&.${le.valueLabelOpen}`]:{transform:"translateY(-100%) scale(1)"}}},{props:{orientation:"vertical"},style:{transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"},[`&.${le.valueLabelOpen}`]:{transform:"translateY(-50%) scale(1)"}}},{props:{size:"small"},style:{fontSize:t.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]}))),hu=S("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:t=>Xo(t)&&t!=="markActive",overridesResolver:(t,e)=>{const{markActive:o}=t;return[e.mark,o&&e.markActive]}})(U(({theme:t})=>({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(t.vars||t).palette.background.paper,opacity:.8}}]}))),xu=S("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:t=>Xo(t)&&t!=="markLabelActive",overridesResolver:(t,e)=>e.markLabel})(U(({theme:t})=>({...t.typography.body2,color:(t.vars||t).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(t.vars||t).palette.text.primary}}]}))),Cu=t=>{const{disabled:e,dragging:o,marked:r,orientation:n,track:s,classes:a,color:i,size:l}=t,c={root:["root",e&&"disabled",o&&"dragging",r&&"marked",n==="vertical"&&"vertical",s==="inverted"&&"trackInverted",s===!1&&"trackFalse",i&&`color${T(i)}`,l&&`size${T(l)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",e&&"disabled",l&&`thumbSize${T(l)}`,i&&`thumbColor${T(i)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return q(c,du,a)},Su=({children:t})=>t,Hb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSlider"}),n=We(),{"aria-label":s,"aria-valuetext":a,"aria-labelledby":i,component:l="span",components:c={},componentsProps:p={},color:f="primary",classes:v,className:m,disableSwap:y=!1,disabled:g=!1,getAriaLabel:h,getAriaValueText:b,marks:x=!1,max:C=100,min:R=0,name:P,onChange:N,onChangeCommitted:$,orientation:A="horizontal",shiftStep:k=10,size:I="medium",step:F=1,scale:L=ln,slotProps:w,slots:M,tabIndex:H,track:z="normal",value:Q,valueLabelDisplay:D="off",valueLabelFormat:et=ln,...pt}=r,_={...r,isRtl:n,max:C,min:R,classes:v,disabled:g,disableSwap:y,orientation:A,marks:x,color:f,size:I,step:F,shiftStep:k,scale:L,track:z,valueLabelDisplay:D,valueLabelFormat:et},{axisProps:wt,getRootProps:Lt,getHiddenInputProps:Rt,getThumbProps:lt,open:rt,active:W,axis:it,focusedThumbIndex:dt,range:bt,dragging:$t,marks:nt,values:ct,trackOffset:vt,trackLeap:yt,getThumbStyle:Ot}=cu({..._,rootRef:o});_.marked=nt.length>0&&nt.some(Bt=>Bt.label),_.dragging=$t,_.focusedThumbIndex=dt;const Y=Cu(_),tt=(M==null?void 0:M.root)??c.Root??gu,st=(M==null?void 0:M.rail)??c.Rail??mu,xt=(M==null?void 0:M.track)??c.Track??bu,ft=(M==null?void 0:M.thumb)??c.Thumb??vu,Pt=(M==null?void 0:M.valueLabel)??c.ValueLabel??yu,It=(M==null?void 0:M.mark)??c.Mark??hu,Vt=(M==null?void 0:M.markLabel)??c.MarkLabel??xu,E=(M==null?void 0:M.input)??c.Input??"input",G=(w==null?void 0:w.root)??p.root,ot=(w==null?void 0:w.rail)??p.rail,gt=(w==null?void 0:w.track)??p.track,ut=(w==null?void 0:w.thumb)??p.thumb,J=(w==null?void 0:w.valueLabel)??p.valueLabel,ht=(w==null?void 0:w.mark)??p.mark,Dt=(w==null?void 0:w.markLabel)??p.markLabel,At=(w==null?void 0:w.input)??p.input,zt=Ce({elementType:tt,getSlotProps:Lt,externalSlotProps:G,externalForwardedProps:pt,additionalProps:{...pu(tt)&&{as:l}},ownerState:{..._,...G==null?void 0:G.ownerState},className:[Y.root,m]}),qt=Ce({elementType:st,externalSlotProps:ot,ownerState:_,className:Y.rail}),Xt=Ce({elementType:xt,externalSlotProps:gt,additionalProps:{style:{...wt[it].offset(vt),...wt[it].leap(yt)}},ownerState:{..._,...gt==null?void 0:gt.ownerState},className:Y.track}),ye=Ce({elementType:ft,getSlotProps:lt,externalSlotProps:ut,ownerState:{..._,...ut==null?void 0:ut.ownerState},className:Y.thumb}),ae=Ce({elementType:Pt,externalSlotProps:J,ownerState:{..._,...J==null?void 0:J.ownerState},className:Y.valueLabel}),he=Ce({elementType:It,externalSlotProps:ht,ownerState:_,className:Y.mark}),Yt=Ce({elementType:Vt,externalSlotProps:Dt,ownerState:_,className:Y.markLabel}),ce=Ce({elementType:E,getSlotProps:Rt,externalSlotProps:At,ownerState:_});return d.jsxs(tt,{...zt,children:[d.jsx(st,{...qt}),d.jsx(xt,{...Xt}),nt.filter(Bt=>Bt.value>=R&&Bt.value<=C).map((Bt,Et)=>{const Kt=qo(Bt.value,R,C),pe=wt[it].offset(Kt);let Zt;return z===!1?Zt=ct.includes(Bt.value):Zt=z==="normal"&&(bt?Bt.value>=ct[0]&&Bt.value<=ct[ct.length-1]:Bt.value<=ct[0])||z==="inverted"&&(bt?Bt.value<=ct[0]||Bt.value>=ct[ct.length-1]:Bt.value>=ct[0]),d.jsxs(u.Fragment,{children:[d.jsx(It,{"data-index":Et,...he,...!Uo(It)&&{markActive:Zt},style:{...pe,...he.style},className:j(he.className,Zt&&Y.markActive)}),Bt.label!=null?d.jsx(Vt,{"aria-hidden":!0,"data-index":Et,...Yt,...!Uo(Vt)&&{markLabelActive:Zt},style:{...pe,...Yt.style},className:j(Y.markLabel,Yt.className,Zt&&Y.markLabelActive),children:Bt.label}):null]},Et)}),ct.map((Bt,Et)=>{const Kt=qo(Bt,R,C),pe=wt[it].offset(Kt),Zt=D==="off"?Su:Pt;return d.jsx(Zt,{...!Uo(Zt)&&{valueLabelFormat:et,valueLabelDisplay:D,value:typeof et=="function"?et(L(Bt),Et):et,index:Et,open:rt===Et||W===Et||D==="on",disabled:g},...ae,children:d.jsx(ft,{"data-index":Et,...ye,className:j(Y.thumb,ye.className,W===Et&&Y.active,dt===Et&&Y.focusVisible),style:{...pe,...Ot(Et),...ye.style},children:d.jsx(E,{"data-index":Et,"aria-label":h?h(Et):s,"aria-valuenow":L(Bt),"aria-labelledby":i,"aria-valuetext":b?b(L(Bt),Et):a,value:ct[Et],...ce})})},Et)})]})});function wu(t={}){const{autoHideDuration:e=null,disableWindowBlurListener:o=!1,onClose:r,open:n,resumeHideDuration:s}=t,a=Ne();u.useEffect(()=>{if(!n)return;function b(x){x.defaultPrevented||x.key==="Escape"&&(r==null||r(x,"escapeKeyDown"))}return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b)}},[n,r]);const i=ne((b,x)=>{r==null||r(b,x)}),l=ne(b=>{!r||b==null||a.start(b,()=>{i(null,"timeout")})});u.useEffect(()=>(n&&l(e),a.clear),[n,e,l,a]);const c=b=>{r==null||r(b,"clickaway")},p=a.clear,f=u.useCallback(()=>{e!=null&&l(s??e*.5)},[e,s,l]),v=b=>x=>{const C=b.onBlur;C==null||C(x),f()},m=b=>x=>{const C=b.onFocus;C==null||C(x),p()},y=b=>x=>{const C=b.onMouseEnter;C==null||C(x),p()},g=b=>x=>{const C=b.onMouseLeave;C==null||C(x),f()};return u.useEffect(()=>{if(!o&&n)return window.addEventListener("focus",f),window.addEventListener("blur",p),()=>{window.removeEventListener("focus",f),window.removeEventListener("blur",p)}},[o,n,f,p]),{getRootProps:(b={})=>{const x={...uo(t),...uo(b)};return{role:"presentation",...b,...x,onBlur:v(x),onFocus:m(x),onMouseEnter:y(x),onMouseLeave:g(x)}},onClickAway:c}}function Ru(t){return K("MuiSnackbarContent",t)}const Vb=Z("MuiSnackbarContent",["root","message","action"]),$u=t=>{const{classes:e}=t;return q({root:["root"],action:["action"],message:["message"]},Ru,e)},Pu=S(we,{name:"MuiSnackbarContent",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>{const e=t.palette.mode==="light"?.8:.98,o=Ho(t.palette.background.default,e);return{...t.typography.body2,color:t.vars?t.vars.palette.SnackbarContent.color:t.palette.getContrastText(o),backgroundColor:t.vars?t.vars.palette.SnackbarContent.bg:o,display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",borderRadius:(t.vars||t).shape.borderRadius,flexGrow:1,[t.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),ku=S("div",{name:"MuiSnackbarContent",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0"}),Tu=S("div",{name:"MuiSnackbarContent",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),Iu=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSnackbarContent"}),{action:n,className:s,message:a,role:i="alert",...l}=r,c=r,p=$u(c);return d.jsxs(Pu,{role:i,square:!0,elevation:6,className:j(p.root,s),ownerState:c,ref:o,...l,children:[d.jsx(ku,{className:p.message,ownerState:c,children:a}),n?d.jsx(Tu,{className:p.action,ownerState:c,children:n}):null]})});function Mu(t){return K("MuiSnackbar",t)}const Gb=Z("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]),Au=t=>{const{classes:e,anchorOrigin:o}=t,r={root:["root",`anchorOrigin${T(o.vertical)}${T(o.horizontal)}`]};return q(r,Mu,e)},Lu=S("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`anchorOrigin${T(o.anchorOrigin.vertical)}${T(o.anchorOrigin.horizontal)}`]]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:e})=>e.anchorOrigin.vertical==="top",style:{top:8,[t.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:e})=>e.anchorOrigin.vertical!=="top",style:{bottom:8,[t.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[t.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[t.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:e})=>e.anchorOrigin.horizontal==="center",style:{[t.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),_b=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSnackbar"}),n=se(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{action:a,anchorOrigin:{vertical:i,horizontal:l}={vertical:"bottom",horizontal:"left"},autoHideDuration:c=null,children:p,className:f,ClickAwayListenerProps:v,ContentProps:m,disableWindowBlurListener:y=!1,message:g,onBlur:h,onClose:b,onFocus:x,onMouseEnter:C,onMouseLeave:R,open:P,resumeHideDuration:N,slots:$={},slotProps:A={},TransitionComponent:k,transitionDuration:I=s,TransitionProps:{onEnter:F,onExited:L,...w}={},...M}=r,H={...r,anchorOrigin:{vertical:i,horizontal:l},autoHideDuration:c,disableWindowBlurListener:y,TransitionComponent:k,transitionDuration:I},z=Au(H),{getRootProps:Q,onClickAway:D}=wu({...H}),[et,pt]=u.useState(!0),_=ct=>{pt(!0),L&&L(ct)},wt=(ct,vt)=>{pt(!1),F&&F(ct,vt)},Lt={slots:{transition:k,...$},slotProps:{content:m,clickAwayListener:v,transition:w,...A}},[Rt,lt]=V("root",{ref:o,className:[z.root,f],elementType:Lu,getSlotProps:Q,externalForwardedProps:{...Lt,...M},ownerState:H}),[rt,{ownerState:W,...it}]=V("clickAwayListener",{elementType:Rc,externalForwardedProps:Lt,getSlotProps:ct=>({onClickAway:(...vt)=>{var yt;(yt=ct.onClickAway)==null||yt.call(ct,...vt),D(...vt)}}),ownerState:H}),[dt,bt]=V("content",{elementType:Iu,shouldForwardComponentProp:!0,externalForwardedProps:Lt,additionalProps:{message:g,action:a},ownerState:H}),[$t,nt]=V("transition",{elementType:kn,externalForwardedProps:Lt,getSlotProps:ct=>({onEnter:(...vt)=>{var yt;(yt=ct.onEnter)==null||yt.call(ct,...vt),wt(...vt)},onExited:(...vt)=>{var yt;(yt=ct.onExited)==null||yt.call(ct,...vt),_(...vt)}}),additionalProps:{appear:!0,in:P,timeout:I,direction:i==="top"?"down":"up"},ownerState:H});return!P&&et?null:d.jsx(rt,{...it,...$.clickAwayListener&&{ownerState:W},children:d.jsx(Rt,{...lt,children:d.jsx($t,{...nt,children:p||d.jsx(dt,{...bt})})})})}),Bu={entering:{transform:"none"},entered:{transform:"none"}},Nu=u.forwardRef(function(e,o){const r=se(),n={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{addEndListener:s,appear:a=!0,children:i,easing:l,in:c,onEnter:p,onEntered:f,onEntering:v,onExit:m,onExited:y,onExiting:g,style:h,timeout:b=n,TransitionComponent:x=Tr,...C}=e,R=u.useRef(null),P=ge(R,Zo(i),o),N=M=>H=>{if(M){const z=R.current;H===void 0?M(z):M(z,H)}},$=N(v),A=N((M,H)=>{$n(M);const z=Fe({style:h,timeout:b,easing:l},{mode:"enter"});M.style.webkitTransition=r.transitions.create("transform",z),M.style.transition=r.transitions.create("transform",z),p&&p(M,H)}),k=N(f),I=N(g),F=N(M=>{const H=Fe({style:h,timeout:b,easing:l},{mode:"exit"});M.style.webkitTransition=r.transitions.create("transform",H),M.style.transition=r.transitions.create("transform",H),m&&m(M)}),L=N(y),w=M=>{s&&s(R.current,M)};return d.jsx(x,{appear:a,in:c,nodeRef:R,onEnter:A,onEntered:k,onEntering:$,onExit:F,onExited:L,onExiting:I,addEndListener:w,timeout:b,...C,children:(M,{ownerState:H,...z})=>u.cloneElement(i,{style:{transform:"scale(0)",visibility:M==="exited"&&!c?"hidden":void 0,...Bu[M],...h,...i.props.style},ref:P,...z})})});function Ou(t){return K("MuiSpeedDial",t)}const No=Z("MuiSpeedDial",["root","fab","directionUp","directionDown","directionLeft","directionRight","actions","actionsClosed"]),zu=t=>{const{classes:e,open:o,direction:r}=t,n={root:["root",`direction${T(r)}`],fab:["fab"],actions:["actions",!o&&"actionsClosed"]};return q(n,Ou,e)};function ao(t){if(t==="up"||t==="down")return"vertical";if(t==="right"||t==="left")return"horizontal"}const Oo=32,zo=16,ju=S("div",{name:"MuiSpeedDial",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`direction${T(o.direction)}`]]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.speedDial,display:"flex",alignItems:"center",pointerEvents:"none",variants:[{props:{direction:"up"},style:{flexDirection:"column-reverse",[`& .${No.actions}`]:{flexDirection:"column-reverse",marginBottom:-32,paddingBottom:zo+Oo}}},{props:{direction:"down"},style:{flexDirection:"column",[`& .${No.actions}`]:{flexDirection:"column",marginTop:-32,paddingTop:zo+Oo}}},{props:{direction:"left"},style:{flexDirection:"row-reverse",[`& .${No.actions}`]:{flexDirection:"row-reverse",marginRight:-32,paddingRight:zo+Oo}}},{props:{direction:"right"},style:{flexDirection:"row",[`& .${No.actions}`]:{flexDirection:"row",marginLeft:-32,paddingLeft:zo+Oo}}}]}))),Du=S(En,{name:"MuiSpeedDial",slot:"Fab",overridesResolver:(t,e)=>e.fab})({pointerEvents:"auto"}),Eu=S("div",{name:"MuiSpeedDial",slot:"Actions",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actions,!o.open&&e.actionsClosed]}})({display:"flex",pointerEvents:"auto",variants:[{props:({ownerState:t})=>!t.open,style:{transition:"top 0s linear 0.2s",pointerEvents:"none"}}]}),qb=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSpeedDial"}),n=se(),s={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{ariaLabel:a,FabProps:{ref:i,...l}={},children:c,className:p,direction:f="up",hidden:v=!1,icon:m,onBlur:y,onClose:g,onFocus:h,onKeyDown:b,onMouseEnter:x,onMouseLeave:C,onOpen:R,open:P,openIcon:N,slots:$={},slotProps:A={},TransitionComponent:k,TransitionProps:I,transitionDuration:F=s,...L}=r,[w,M]=ue({controlled:P,default:!1,name:"SpeedDial",state:"open"}),H={...r,open:w,direction:f},z=zu(H),Q=Ne(),D=u.useRef(0),et=u.useRef(),pt=u.useRef([]);pt.current=[pt.current[0]];const _=u.useCallback(tt=>{pt.current[0]=tt},[]),wt=ge(i,_),Lt=(tt,st)=>xt=>{pt.current[tt+1]=xt,st&&st(xt)},Rt=tt=>{b&&b(tt);const st=tt.key.replace("Arrow","").toLowerCase(),{current:xt=st}=et;if(tt.key==="Escape"){M(!1),pt.current[0].focus(),g&&g(tt,"escapeKeyDown");return}if(ao(st)===ao(xt)&&ao(st)!==void 0){tt.preventDefault();const ft=st===xt?1:-1,Pt=Le(D.current+ft,0,pt.current.length-1);pt.current[Pt].focus(),D.current=Pt,et.current=xt}};u.useEffect(()=>{w||(D.current=0,et.current=void 0)},[w]);const lt=tt=>{tt.type==="mouseleave"&&C&&C(tt),tt.type==="blur"&&y&&y(tt),Q.clear(),tt.type==="blur"?Q.start(0,()=>{M(!1),g&&g(tt,"blur")}):(M(!1),g&&g(tt,"mouseLeave"))},rt=tt=>{l.onClick&&l.onClick(tt),Q.clear(),w?(M(!1),g&&g(tt,"toggle")):(M(!0),R&&R(tt,"toggle"))},W=tt=>{tt.type==="mouseenter"&&x&&x(tt),tt.type==="focus"&&h&&h(tt),Q.clear(),w||Q.start(0,()=>{M(!0),R&&R(tt,{focus:"focus",mouseenter:"mouseEnter"}[tt.type])})},it=a.replace(/^[^a-z]+|[^\w:.-]+/gi,""),dt=u.Children.toArray(c).filter(tt=>u.isValidElement(tt)),bt=dt.map((tt,st)=>{const{FabProps:{ref:xt,...ft}={},tooltipPlacement:Pt}=tt.props,It=Pt||(ao(f)==="vertical"?"left":"top");return u.cloneElement(tt,{FabProps:{...ft,ref:Lt(st,xt)},delay:30*(w?st:dt.length-st),open:w,tooltipPlacement:It,id:`${it}-action-${st}`})}),$t={transition:k,...$},nt={transition:I,...A},ct={slots:$t,slotProps:nt},[vt,yt]=V("root",{elementType:ju,externalForwardedProps:{...ct,...L},ownerState:H,ref:o,className:j(z.root,p),additionalProps:{role:"presentation"},getSlotProps:tt=>({...tt,onKeyDown:st=>{var xt;(xt=tt.onKeyDown)==null||xt.call(tt,st),Rt(st)},onBlur:st=>{var xt;(xt=tt.onBlur)==null||xt.call(tt,st),lt(st)},onFocus:st=>{var xt;(xt=tt.onFocus)==null||xt.call(tt,st),W(st)},onMouseEnter:st=>{var xt;(xt=tt.onMouseEnter)==null||xt.call(tt,st),W(st)},onMouseLeave:st=>{var xt;(xt=tt.onMouseLeave)==null||xt.call(tt,st),lt(st)}})}),[Ot,Y]=V("transition",{elementType:Nu,externalForwardedProps:ct,ownerState:H});return d.jsxs(vt,{...yt,children:[d.jsx(Ot,{in:!v,timeout:F,unmountOnExit:!0,...Y,children:d.jsx(Du,{color:"primary","aria-label":a,"aria-haspopup":"true","aria-expanded":w,"aria-controls":`${it}-actions`,...l,onClick:rt,className:j(z.fab,l.className),ref:wt,ownerState:H,children:u.isValidElement(m)&&Yo(m,["SpeedDialIcon"])?u.cloneElement(m,{open:w}):m})}),d.jsx(Eu,{id:`${it}-actions`,role:"menu","aria-orientation":ao(f),className:j(z.actions,!w&&z.actionsClosed),ownerState:H,children:bt})]})});function Fu(t){return K("MuiTooltip",t)}const Wt=Z("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function Uu(t){return Math.round(t*1e5)/1e5}const Wu=t=>{const{classes:e,disableInteractive:o,arrow:r,touch:n,placement:s}=t,a={popper:["popper",!o&&"popperInteractive",r&&"popperArrow"],tooltip:["tooltip",r&&"tooltipArrow",n&&"touch",`tooltipPlacement${T(s.split("-")[0])}`],arrow:["arrow"]};return q(a,Fu,e)},Hu=S(Ko,{name:"MuiTooltip",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.popper,!o.disableInteractive&&e.popperInteractive,o.arrow&&e.popperArrow,!o.open&&e.popperClose]}})(U(({theme:t})=>({zIndex:(t.vars||t).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:e})=>!e.disableInteractive,style:{pointerEvents:"auto"}},{props:({open:e})=>!e,style:{pointerEvents:"none"}},{props:({ownerState:e})=>e.arrow,style:{[`&[data-popper-placement*="bottom"] .${Wt.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${Wt.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${Wt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${Wt.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="right"] .${Wt.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="right"] .${Wt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!e.isRtl,style:{[`&[data-popper-placement*="left"] .${Wt.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState:e})=>e.arrow&&!!e.isRtl,style:{[`&[data-popper-placement*="left"] .${Wt.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),Vu=S("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.tooltip,o.touch&&e.touch,o.arrow&&e.tooltipArrow,e[`tooltipPlacement${T(o.placement.split("-")[0])}`]]}})(U(({theme:t})=>({backgroundColor:t.vars?t.vars.palette.Tooltip.bg:Tt(t.palette.grey[700],.92),borderRadius:(t.vars||t).shape.borderRadius,color:(t.vars||t).palette.common.white,fontFamily:t.typography.fontFamily,padding:"4px 8px",fontSize:t.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:t.typography.fontWeightMedium,[`.${Wt.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${Wt.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${Wt.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:e})=>e.arrow,style:{position:"relative",margin:0}},{props:({ownerState:e})=>e.touch,style:{padding:"8px 16px",fontSize:t.typography.pxToRem(14),lineHeight:`${Uu(16/14)}em`,fontWeight:t.typography.fontWeightRegular}},{props:({ownerState:e})=>!e.isRtl,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState:e})=>!e.isRtl&&e.touch,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState:e})=>!!e.isRtl,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState:e})=>!!e.isRtl&&e.touch,style:{[`.${Wt.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${Wt.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${Wt.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState:e})=>e.touch,style:{[`.${Wt.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),Gu=S("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(t,e)=>e.arrow})(U(({theme:t})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:t.vars?t.vars.palette.Tooltip.bg:Tt(t.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}})));let jo=!1;const cn=new Hs;let io={x:0,y:0};function Do(t,e){return(o,...r)=>{e&&e(o,...r),t(o,...r)}}const _u=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTooltip"}),{arrow:n=!1,children:s,classes:a,components:i={},componentsProps:l={},describeChild:c=!1,disableFocusListener:p=!1,disableHoverListener:f=!1,disableInteractive:v=!1,disableTouchListener:m=!1,enterDelay:y=100,enterNextDelay:g=0,enterTouchDelay:h=700,followCursor:b=!1,id:x,leaveDelay:C=0,leaveTouchDelay:R=1500,onClose:P,onOpen:N,open:$,placement:A="bottom",PopperComponent:k,PopperProps:I={},slotProps:F={},slots:L={},title:w,TransitionComponent:M,TransitionProps:H,...z}=r,Q=u.isValidElement(s)?s:d.jsx("span",{children:s}),D=se(),et=We(),[pt,_]=u.useState(),[wt,Lt]=u.useState(null),Rt=u.useRef(!1),lt=v||b,rt=Ne(),W=Ne(),it=Ne(),dt=Ne(),[bt,$t]=ue({controlled:$,default:!1,name:"Tooltip",state:"open"});let nt=bt;const ct=Ue(x),vt=u.useRef(),yt=ne(()=>{vt.current!==void 0&&(document.body.style.WebkitUserSelect=vt.current,vt.current=void 0),dt.clear()});u.useEffect(()=>yt,[yt]);const Ot=mt=>{cn.clear(),jo=!0,$t(!0),N&&!nt&&N(mt)},Y=ne(mt=>{cn.start(800+C,()=>{jo=!1}),$t(!1),P&&nt&&P(mt),rt.start(D.transitions.duration.shortest,()=>{Rt.current=!1})}),tt=mt=>{Rt.current&&mt.type!=="touchstart"||(pt&&pt.removeAttribute("title"),W.clear(),it.clear(),y||jo&&g?W.start(jo?g:y,()=>{Ot(mt)}):Ot(mt))},st=mt=>{W.clear(),it.start(C,()=>{Y(mt)})},[,xt]=u.useState(!1),ft=mt=>{Ie(mt.target)||(xt(!1),st(mt))},Pt=mt=>{pt||_(mt.currentTarget),Ie(mt.target)&&(xt(!0),tt(mt))},It=mt=>{Rt.current=!0;const te=Q.props;te.onTouchStart&&te.onTouchStart(mt)},Vt=mt=>{It(mt),it.clear(),rt.clear(),yt(),vt.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",dt.start(h,()=>{document.body.style.WebkitUserSelect=vt.current,tt(mt)})},E=mt=>{Q.props.onTouchEnd&&Q.props.onTouchEnd(mt),yt(),it.start(R,()=>{Y(mt)})};u.useEffect(()=>{if(!nt)return;function mt(te){te.key==="Escape"&&Y(te)}return document.addEventListener("keydown",mt),()=>{document.removeEventListener("keydown",mt)}},[Y,nt]);const G=ge(Zo(Q),_,o);!w&&w!==0&&(nt=!1);const ot=u.useRef(),gt=mt=>{const te=Q.props;te.onMouseMove&&te.onMouseMove(mt),io={x:mt.clientX,y:mt.clientY},ot.current&&ot.current.update()},ut={},J=typeof w=="string";c?(ut.title=!nt&&J&&!f?w:null,ut["aria-describedby"]=nt?ct:null):(ut["aria-label"]=J?w:null,ut["aria-labelledby"]=nt&&!J?ct:null);const ht={...ut,...z,...Q.props,className:j(z.className,Q.props.className),onTouchStart:It,ref:G,...b?{onMouseMove:gt}:{}},Dt={};m||(ht.onTouchStart=Vt,ht.onTouchEnd=E),f||(ht.onMouseOver=Do(tt,ht.onMouseOver),ht.onMouseLeave=Do(st,ht.onMouseLeave),lt||(Dt.onMouseOver=tt,Dt.onMouseLeave=st)),p||(ht.onFocus=Do(Pt,ht.onFocus),ht.onBlur=Do(ft,ht.onBlur),lt||(Dt.onFocus=Pt,Dt.onBlur=ft));const At={...r,isRtl:et,arrow:n,disableInteractive:lt,placement:A,PopperComponentProp:k,touch:Rt.current},zt=typeof F.popper=="function"?F.popper(At):F.popper,qt=u.useMemo(()=>{var te,Ve;let mt=[{name:"arrow",enabled:!!wt,options:{element:wt,padding:4}}];return(te=I.popperOptions)!=null&&te.modifiers&&(mt=mt.concat(I.popperOptions.modifiers)),(Ve=zt==null?void 0:zt.popperOptions)!=null&&Ve.modifiers&&(mt=mt.concat(zt.popperOptions.modifiers)),{...I.popperOptions,...zt==null?void 0:zt.popperOptions,modifiers:mt}},[wt,I.popperOptions,zt==null?void 0:zt.popperOptions]),Xt=Wu(At),ye=typeof F.transition=="function"?F.transition(At):F.transition,ae={slots:{popper:i.Popper,transition:i.Transition??M,tooltip:i.Tooltip,arrow:i.Arrow,...L},slotProps:{arrow:F.arrow??l.arrow,popper:{...I,...zt??l.popper},tooltip:F.tooltip??l.tooltip,transition:{...H,...ye??l.transition}}},[he,Yt]=V("popper",{elementType:Hu,externalForwardedProps:ae,ownerState:At,className:j(Xt.popper,I==null?void 0:I.className)}),[ce,Bt]=V("transition",{elementType:kn,externalForwardedProps:ae,ownerState:At}),[Et,Kt]=V("tooltip",{elementType:Vu,className:Xt.tooltip,externalForwardedProps:ae,ownerState:At}),[pe,Zt]=V("arrow",{elementType:Gu,className:Xt.arrow,externalForwardedProps:ae,ownerState:At,ref:Lt});return d.jsxs(u.Fragment,{children:[u.cloneElement(Q,ht),d.jsx(he,{as:k??Ko,placement:A,anchorEl:b?{getBoundingClientRect:()=>({top:io.y,left:io.x,right:io.x,bottom:io.y,width:0,height:0})}:pt,popperRef:ot,open:pt?nt:!1,id:ct,transition:!0,...Dt,...Yt,popperOptions:qt,children:({TransitionProps:mt})=>d.jsx(ce,{timeout:D.transitions.duration.shorter,...mt,...Bt,children:d.jsxs(Et,{...Kt,children:[w,n?d.jsx(pe,{...Zt}):null]})})})]})});function qu(t){return K("MuiSpeedDialAction",t)}const Eo=Z("MuiSpeedDialAction",["fab","fabClosed","staticTooltip","staticTooltipClosed","staticTooltipLabel","tooltipPlacementLeft","tooltipPlacementRight"]),Xu=t=>{const{open:e,tooltipPlacement:o,classes:r}=t,n={fab:["fab",!e&&"fabClosed"],staticTooltip:["staticTooltip",`tooltipPlacement${T(o)}`,!e&&"staticTooltipClosed"],staticTooltipLabel:["staticTooltipLabel"]};return q(n,qu,r)},Yu=S(En,{name:"MuiSpeedDialAction",slot:"Fab",skipVariantsResolver:!1,overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.fab,!o.open&&e.fabClosed]}})(U(({theme:t})=>({margin:8,color:(t.vars||t).palette.text.secondary,backgroundColor:(t.vars||t).palette.background.paper,"&:hover":{backgroundColor:t.vars?t.vars.palette.SpeedDialAction.fabHoverBg:Ho(t.palette.background.paper,.15)},transition:`${t.transitions.create("transform",{duration:t.transitions.duration.shorter})}, opacity 0.8s`,opacity:1,variants:[{props:({ownerState:e})=>!e.open,style:{opacity:0,transform:"scale(0)"}}]}))),Ku=S("span",{name:"MuiSpeedDialAction",slot:"StaticTooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.staticTooltip,!o.open&&e.staticTooltipClosed,e[`tooltipPlacement${T(o.tooltipPlacement)}`]]}})(U(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",[`& .${Eo.staticTooltipLabel}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.shorter}),opacity:1},variants:[{props:({ownerState:e})=>!e.open,style:{[`& .${Eo.staticTooltipLabel}`]:{opacity:0,transform:"scale(0.5)"}}},{props:{tooltipPlacement:"left"},style:{[`& .${Eo.staticTooltipLabel}`]:{transformOrigin:"100% 50%",right:"100%",marginRight:8}}},{props:{tooltipPlacement:"right"},style:{[`& .${Eo.staticTooltipLabel}`]:{transformOrigin:"0% 50%",left:"100%",marginLeft:8}}}]}))),Zu=S("span",{name:"MuiSpeedDialAction",slot:"StaticTooltipLabel",overridesResolver:(t,e)=>e.staticTooltipLabel})(U(({theme:t})=>({position:"absolute",...t.typography.body1,backgroundColor:(t.vars||t).palette.background.paper,borderRadius:(t.vars||t).shape.borderRadius,boxShadow:(t.vars||t).shadows[1],color:(t.vars||t).palette.text.secondary,padding:"4px 16px",wordBreak:"keep-all"}))),Xb=u.forwardRef(function(e,o){var D;const r=X({props:e,name:"MuiSpeedDialAction"}),{className:n,delay:s=0,FabProps:a={},icon:i,id:l,open:c,TooltipClasses:p,tooltipOpen:f=!1,tooltipPlacement:v="left",tooltipTitle:m,slots:y={},slotProps:g={},...h}=r,b={...r,tooltipPlacement:v},x=Xu(b),C={slots:y,slotProps:{fab:a,...g,tooltip:bo(typeof g.tooltip=="function"?g.tooltip(b):g.tooltip,{title:m,open:f,placement:v,classes:p})}},[R,P]=u.useState((D=C.slotProps.tooltip)==null?void 0:D.open),N=()=>{P(!1)},$=()=>{P(!0)},A={transitionDelay:`${s}ms`},[k,I]=V("fab",{elementType:Yu,externalForwardedProps:C,ownerState:b,shouldForwardComponentProp:!0,className:j(x.fab,n),additionalProps:{style:A,tabIndex:-1,role:"menuitem",size:"small"}}),[F,L]=V("tooltip",{elementType:_u,externalForwardedProps:C,shouldForwardComponentProp:!0,ref:o,additionalProps:{id:l},ownerState:b,getSlotProps:et=>({...et,onClose:pt=>{var _;(_=et.onClose)==null||_.call(et,pt),N()},onOpen:pt=>{var _;(_=et.onOpen)==null||_.call(et,pt),$()}})}),[w,M]=V("staticTooltip",{elementType:Ku,externalForwardedProps:C,ownerState:b,ref:o,className:x.staticTooltip,additionalProps:{id:l}}),[H,z]=V("staticTooltipLabel",{elementType:Zu,externalForwardedProps:C,ownerState:b,className:x.staticTooltipLabel,additionalProps:{style:A,id:`${l}-label`}}),Q=d.jsx(k,{...I,children:i});return L.open?d.jsxs(w,{...M,...h,children:[d.jsx(H,{...z,children:L.title}),u.cloneElement(Q,{"aria-labelledby":`${l}-label`})]}):(!c&&R&&P(!1),d.jsx(F,{...L,title:L.title,open:c&&R,placement:L.placement,classes:L.classes,...h,children:Q}))}),Ju=Ht(d.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");function Qu(t){return K("MuiSpeedDialIcon",t)}const ve=Z("MuiSpeedDialIcon",["root","icon","iconOpen","iconWithOpenIconOpen","openIcon","openIconOpen"]),tf=t=>{const{classes:e,open:o,openIcon:r}=t;return q({root:["root"],icon:["icon",o&&"iconOpen",r&&o&&"iconWithOpenIconOpen"],openIcon:["openIcon",o&&"openIconOpen"]},Qu,e)},ef=S("span",{name:"MuiSpeedDialIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ve.icon}`]:e.icon},{[`& .${ve.icon}`]:o.open&&e.iconOpen},{[`& .${ve.icon}`]:o.open&&o.openIcon&&e.iconWithOpenIconOpen},{[`& .${ve.openIcon}`]:e.openIcon},{[`& .${ve.openIcon}`]:o.open&&e.openIconOpen},e.root]}})(U(({theme:t})=>({height:24,[`& .${ve.icon}`]:{transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short})},[`& .${ve.openIcon}`]:{position:"absolute",transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short}),opacity:0,transform:"rotate(-45deg)"},variants:[{props:({ownerState:e})=>e.open,style:{[`& .${ve.icon}`]:{transform:"rotate(45deg)"}}},{props:({ownerState:e})=>e.open&&e.openIcon,style:{[`& .${ve.icon}`]:{opacity:0}}},{props:({ownerState:e})=>e.open,style:{[`& .${ve.openIcon}`]:{transform:"rotate(0deg)",opacity:1}}}]}))),of=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSpeedDialIcon"}),{className:n,icon:s,open:a,openIcon:i,...l}=r,c=r,p=tf(c);function f(v,m){return u.isValidElement(v)?u.cloneElement(v,{className:m}):v}return d.jsxs(ef,{className:j(p.root,n),ref:o,ownerState:c,...l,children:[i?f(i,p.openIcon):null,s?f(s,p.icon):d.jsx(Ju,{className:p.icon})]})});of.muiName="SpeedDialIcon";const Yb=Ta({createStyledComponent:S("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>e.root}),useThemeProps:t=>X({props:t,name:"MuiStack"})}),Kb=Z("MuiStack",["root"]),He=u.createContext({});function Zb(){return u.useContext(He)}const Ze=u.createContext({});function Jb(){return u.useContext(Ze)}function rf(t){return K("MuiStep",t)}const Qb=Z("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]),nf=t=>{const{classes:e,orientation:o,alternativeLabel:r,completed:n}=t;return q({root:["root",o,r&&"alternativeLabel",n&&"completed"]},rf,e)},sf=S("div",{name:"MuiStep",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({variants:[{props:{orientation:"horizontal"},style:{paddingLeft:8,paddingRight:8}},{props:{alternativeLabel:!0},style:{flex:1,position:"relative"}}]}),tv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStep"}),{active:n,children:s,className:a,component:i="div",completed:l,disabled:c,expanded:p=!1,index:f,last:v,...m}=r,{activeStep:y,connector:g,alternativeLabel:h,orientation:b,nonLinear:x}=u.useContext(He);let[C=!1,R=!1,P=!1]=[n,l,c];y===f?C=n!==void 0?n:!0:!x&&y>f?R=l!==void 0?l:!0:!x&&y({index:f,last:v,expanded:p,icon:f+1,active:C,completed:R,disabled:P}),[f,v,p,C,R,P]),$={...r,active:C,orientation:b,alternativeLabel:h,completed:R,disabled:P,expanded:p,component:i},A=nf($),k=d.jsxs(sf,{as:i,className:j(A.root,a),ref:o,ownerState:$,...m,children:[g&&h&&f!==0?g:null,s]});return d.jsx(Ze.Provider,{value:N,children:g&&!h&&f!==0?d.jsxs(u.Fragment,{children:[g,k]}):k})}),af=Ht(d.jsx("path",{d:"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z"}),"CheckCircle"),lf=Ht(d.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");function cf(t){return K("MuiStepIcon",t)}const gr=Z("MuiStepIcon",["root","active","completed","error","text"]);var pn;const pf=t=>{const{classes:e,active:o,completed:r,error:n}=t;return q({root:["root",o&&"active",r&&"completed",n&&"error"],text:["text"]},cf,e)},mr=S(Ks,{name:"MuiStepIcon",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),color:(t.vars||t).palette.text.disabled,[`&.${gr.completed}`]:{color:(t.vars||t).palette.primary.main},[`&.${gr.active}`]:{color:(t.vars||t).palette.primary.main},[`&.${gr.error}`]:{color:(t.vars||t).palette.error.main}}))),df=S("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(t,e)=>e.text})(U(({theme:t})=>({fill:(t.vars||t).palette.primary.contrastText,fontSize:t.typography.caption.fontSize,fontFamily:t.typography.fontFamily}))),uf=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepIcon"}),{active:n=!1,className:s,completed:a=!1,error:i=!1,icon:l,...c}=r,p={...r,active:n,completed:a,error:i},f=pf(p);if(typeof l=="number"||typeof l=="string"){const v=j(s,f.root);return i?d.jsx(mr,{as:lf,className:v,ref:o,ownerState:p,...c}):a?d.jsx(mr,{as:af,className:v,ref:o,ownerState:p,...c}):d.jsxs(mr,{className:v,ref:o,ownerState:p,...c,children:[pn||(pn=d.jsx("circle",{cx:"12",cy:"12",r:"12"})),d.jsx(df,{className:f.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:p,children:l})]})}return l});function ff(t){return K("MuiStepLabel",t)}const Te=Z("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]),gf=t=>{const{classes:e,orientation:o,active:r,completed:n,error:s,disabled:a,alternativeLabel:i}=t;return q({root:["root",o,s&&"error",a&&"disabled",i&&"alternativeLabel"],label:["label",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],iconContainer:["iconContainer",r&&"active",n&&"completed",s&&"error",a&&"disabled",i&&"alternativeLabel"],labelContainer:["labelContainer",i&&"alternativeLabel"]},ff,e)},mf=S("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation]]}})({display:"flex",alignItems:"center",[`&.${Te.alternativeLabel}`]:{flexDirection:"column"},[`&.${Te.disabled}`]:{cursor:"default"},variants:[{props:{orientation:"vertical"},style:{textAlign:"left",padding:"8px 0"}}]}),bf=S("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(t,e)=>e.label})(U(({theme:t})=>({...t.typography.body2,display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),[`&.${Te.active}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${Te.completed}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${Te.alternativeLabel}`]:{marginTop:16},[`&.${Te.error}`]:{color:(t.vars||t).palette.error.main}}))),vf=S("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(t,e)=>e.iconContainer})({flexShrink:0,display:"flex",paddingRight:8,[`&.${Te.alternativeLabel}`]:{paddingRight:0}}),yf=S("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(t,e)=>e.labelContainer})(U(({theme:t})=>({width:"100%",color:(t.vars||t).palette.text.secondary,[`&.${Te.alternativeLabel}`]:{textAlign:"center"}}))),Kn=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepLabel"}),{children:n,className:s,componentsProps:a={},error:i=!1,icon:l,optional:c,slots:p={},slotProps:f={},StepIconComponent:v,StepIconProps:m,...y}=r,{alternativeLabel:g,orientation:h}=u.useContext(He),{active:b,disabled:x,completed:C,icon:R}=u.useContext(Ze),P=l||R;let N=v;P&&!N&&(N=uf);const $={...r,active:b,alternativeLabel:g,completed:C,disabled:x,error:i,orientation:h},A=gf($),k={slots:p,slotProps:{stepIcon:m,...a,...f}},[I,F]=V("root",{elementType:mf,externalForwardedProps:{...k,...y},ownerState:$,ref:o,className:j(A.root,s)}),[L,w]=V("label",{elementType:bf,externalForwardedProps:k,ownerState:$}),[M,H]=V("stepIcon",{elementType:N,externalForwardedProps:k,ownerState:$});return d.jsxs(I,{...F,children:[P||M?d.jsx(vf,{className:A.iconContainer,ownerState:$,children:d.jsx(M,{completed:C,active:b,error:i,icon:P,...H})}):null,d.jsxs(yf,{className:A.labelContainer,ownerState:$,children:[n?d.jsx(L,{...w,className:j(A.label,w==null?void 0:w.className),children:n}):null,c]})]})});Kn.muiName="StepLabel";function hf(t){return K("MuiStepButton",t)}const dn=Z("MuiStepButton",["root","horizontal","vertical","touchRipple"]),xf=t=>{const{classes:e,orientation:o}=t;return q({root:["root",o],touchRipple:["touchRipple"]},hf,e)},Cf=S(fe,{name:"MuiStepButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${dn.touchRipple}`]:e.touchRipple},e.root,e[o.orientation]]}})({width:"100%",padding:"24px 16px",margin:"-24px -16px",boxSizing:"content-box",[`& .${dn.touchRipple}`]:{color:"rgba(0, 0, 0, 0.3)"},variants:[{props:{orientation:"vertical"},style:{justifyContent:"flex-start",padding:"8px",margin:"-8px"}}]}),ev=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepButton"}),{children:n,className:s,icon:a,optional:i,...l}=r,{disabled:c,active:p}=u.useContext(Ze),{orientation:f}=u.useContext(He),v={...r,orientation:f},m=xf(v),y={icon:a,optional:i},g=Yo(n,["StepLabel"])?u.cloneElement(n,y):d.jsx(Kn,{...y,children:n});return d.jsx(Cf,{focusRipple:!0,disabled:c,TouchRippleProps:{className:m.touchRipple},className:j(m.root,s),ref:o,ownerState:v,"aria-current":p?"step":void 0,...l,children:g})});function Sf(t){return K("MuiStepConnector",t)}const ov=Z("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]),wf=t=>{const{classes:e,orientation:o,alternativeLabel:r,active:n,completed:s,disabled:a}=t,i={root:["root",o,r&&"alternativeLabel",n&&"active",s&&"completed",a&&"disabled"],line:["line",`line${T(o)}`]};return q(i,Sf,e)},Rf=S("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})({flex:"1 1 auto",variants:[{props:{orientation:"vertical"},style:{marginLeft:12}},{props:{alternativeLabel:!0},style:{position:"absolute",top:12,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"}}]}),$f=S("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.line,e[`line${T(o.orientation)}`]]}})(U(({theme:t})=>{const e=t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600];return{display:"block",borderColor:t.vars?t.vars.palette.StepConnector.border:e,variants:[{props:{orientation:"horizontal"},style:{borderTopStyle:"solid",borderTopWidth:1}},{props:{orientation:"vertical"},style:{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24}}]}})),Pf=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepConnector"}),{className:n,...s}=r,{alternativeLabel:a,orientation:i="horizontal"}=u.useContext(He),{active:l,disabled:c,completed:p}=u.useContext(Ze),f={...r,alternativeLabel:a,orientation:i,active:l,completed:p,disabled:c},v=wf(f);return d.jsx(Rf,{className:j(v.root,n),ref:o,ownerState:f,...s,children:d.jsx($f,{className:v.line,ownerState:f})})});function kf(t){return K("MuiStepContent",t)}const rv=Z("MuiStepContent",["root","last","transition"]),Tf=t=>{const{classes:e,last:o}=t;return q({root:["root",o&&"last"],transition:["transition"]},kf,e)},If=S("div",{name:"MuiStepContent",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.last&&e.last]}})(U(({theme:t})=>({marginLeft:12,paddingLeft:20,paddingRight:8,borderLeft:t.vars?`1px solid ${t.vars.palette.StepContent.border}`:`1px solid ${t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600]}`,variants:[{props:{last:!0},style:{borderLeft:"none"}}]}))),Mf=S(vo,{name:"MuiStepContent",slot:"Transition",overridesResolver:(t,e)=>e.transition})({}),nv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepContent"}),{children:n,className:s,TransitionComponent:a=vo,transitionDuration:i="auto",TransitionProps:l,slots:c={},slotProps:p={},...f}=r,{orientation:v}=u.useContext(He),{active:m,last:y,expanded:g}=u.useContext(Ze),h={...r,last:y},b=Tf(h);let x=i;i==="auto"&&!a.muiSupportAuto&&(x=void 0);const C={slots:c,slotProps:{transition:l,...p}},[R,P]=V("transition",{elementType:Mf,externalForwardedProps:C,ownerState:h,className:b.transition,additionalProps:{in:m||g,timeout:x,unmountOnExit:!0}});return d.jsx(If,{className:j(b.root,s),ref:o,ownerState:h,...f,children:d.jsx(R,{as:a,...P,children:n})})});function Af(t){return K("MuiStepper",t)}const sv=Z("MuiStepper",["root","horizontal","vertical","nonLinear","alternativeLabel"]),Lf=t=>{const{orientation:e,nonLinear:o,alternativeLabel:r,classes:n}=t;return q({root:["root",e,o&&"nonLinear",r&&"alternativeLabel"]},Af,n)},Bf=S("div",{name:"MuiStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.nonLinear&&e.nonLinear]}})({display:"flex",variants:[{props:{orientation:"horizontal"},style:{flexDirection:"row",alignItems:"center"}},{props:{orientation:"vertical"},style:{flexDirection:"column"}},{props:{alternativeLabel:!0},style:{alignItems:"flex-start"}}]}),Nf=d.jsx(Pf,{}),av=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiStepper"}),{activeStep:n=0,alternativeLabel:s=!1,children:a,className:i,component:l="div",connector:c=Nf,nonLinear:p=!1,orientation:f="horizontal",...v}=r,m={...r,nonLinear:p,alternativeLabel:s,orientation:f,component:l},y=Lf(m),g=u.Children.toArray(a).filter(Boolean),h=g.map((x,C)=>u.cloneElement(x,{index:C,last:C+1===g.length,...x.props})),b=u.useMemo(()=>({activeStep:n,alternativeLabel:s,connector:c,nonLinear:p,orientation:f}),[n,s,c,p,f]);return d.jsx(He.Provider,{value:b,children:d.jsx(Bf,{as:l,ownerState:m,className:j(y.root,i),ref:o,...v,children:h})})}),Of=S("div",{shouldForwardProp:Se})(U(({theme:t})=>({position:"fixed",top:0,left:0,bottom:0,zIndex:t.zIndex.drawer-1,variants:[{props:{anchor:"left"},style:{right:"auto"}},{props:{anchor:"right"},style:{left:"auto",right:0}},{props:{anchor:"top"},style:{bottom:"auto",right:0}},{props:{anchor:"bottom"},style:{top:"auto",bottom:0,right:0}}]}))),zf=u.forwardRef(function(e,o){const{anchor:r,classes:n={},className:s,width:a,style:i,...l}=e,c=e;return d.jsx(Of,{className:j("PrivateSwipeArea-root",n.root,n[`anchor${T(r)}`],s),ref:o,style:{[Be(r)?"width":"height"]:a,...i},ownerState:c,...l})}),Fo=3,un=20;let xe=null;function br(t,e,o){return t==="right"?o.body.offsetWidth-e[0].pageX:e[0].pageX}function vr(t,e,o){return t==="bottom"?o.innerHeight-e[0].clientY:e[0].clientY}function lo(t,e){return t?e.clientWidth:e.clientHeight}function fn(t,e,o,r){return Math.min(Math.max(o?e-t:r+e-t,0),r)}function jf(t,e){const o=[];for(;t&&t!==e.parentElement;){const r=Xe(e).getComputedStyle(t);r.getPropertyValue("position")==="absolute"||r.getPropertyValue("overflow-x")==="hidden"||(t.clientWidth>0&&t.scrollWidth>t.clientWidth||t.clientHeight>0&&t.scrollHeight>t.clientHeight)&&o.push(t),t=t.parentElement}return o}function Df({domTreeShapes:t,start:e,current:o,anchor:r}){const n={scrollPosition:{x:"scrollLeft",y:"scrollTop"},scrollLength:{x:"scrollWidth",y:"scrollHeight"},clientLength:{x:"clientWidth",y:"clientHeight"}};return t.some(s=>{let a=o>=e;(r==="top"||r==="left")&&(a=!a);const i=r==="left"||r==="right"?"x":"y",l=Math.round(s[n.scrollPosition[i]]),c=l>0,p=l+s[n.clientLength[i]]{et.current=null},[x]);const pt=u.useCallback((W,it={})=>{const{mode:dt=null,changeTransition:bt=!0}=it,$t=co(n,a),nt=["right","bottom"].includes($t)?1:-1,ct=Be(a),vt=ct?`translate(${nt*W}px, 0)`:`translate(0, ${nt*W}px)`,yt=z.current.style;yt.webkitTransform=vt,yt.transform=vt;let Ot="";if(dt&&(Ot=n.transitions.create("all",Fe({easing:void 0,style:void 0,timeout:N},{mode:dt}))),bt&&(yt.webkitTransition=Ot,yt.transition=Ot),!i&&!p){const Y=H.current.style;Y.opacity=1-W/lo(ct,z.current),bt&&(Y.webkitTransition=Ot,Y.transition=Ot)}},[a,i,p,n,N]),_=ne(W=>{if(!D.current)return;if(xe=null,D.current=!1,Fr.flushSync(()=>{L(!1)}),!w.current.isSwiping){w.current.isSwiping=null;return}w.current.isSwiping=null;const it=co(n,a),dt=Be(a);let bt;dt?bt=br(it,W.changedTouches,de(W.currentTarget)):bt=vr(it,W.changedTouches,Xe(W.currentTarget));const $t=dt?w.current.startX:w.current.startY,nt=lo(dt,z.current),ct=fn(bt,$t,x,nt),vt=ct/nt;if(Math.abs(w.current.velocity)>m&&(et.current=Math.abs((nt-ct)/w.current.velocity)*1e3),x){w.current.velocity>m||vt>f?h():pt(0,{mode:"exit"});return}w.current.velocity<-m||1-vt>f?b():pt(lo(dt,z.current),{mode:"enter"})}),wt=(W=!1)=>{if(!F){(W||!(l&&v))&&Fr.flushSync(()=>{L(!0)});const it=Be(a);!x&&z.current&&pt(lo(it,z.current)+(l?15:-20),{changeTransition:!1}),w.current.velocity=0,w.current.lastTime=null,w.current.lastTranslate=null,w.current.paperHit=!1,D.current=!0}},Lt=ne(W=>{if(!z.current||!D.current||xe!==null&&xe!==w.current)return;wt(!0);const it=co(n,a),dt=Be(a),bt=br(it,W.touches,de(W.currentTarget)),$t=vr(it,W.touches,Xe(W.currentTarget));if(x&&z.current.contains(W.target)&&xe===null){const Ot=jf(W.target,z.current);if(Df({domTreeShapes:Ot,start:dt?w.current.startX:w.current.startY,current:dt?bt:$t,anchor:a})){xe=!0;return}xe=w.current}if(w.current.isSwiping==null){const Ot=Math.abs(bt-w.current.startX),Y=Math.abs($t-w.current.startY),tt=dt?Ot>Y&&Ot>Fo:Y>Ot&&Y>Fo;if(tt&&W.cancelable&&W.preventDefault(),tt===!0||(dt?Y>Fo:Ot>Fo)){if(w.current.isSwiping=tt,!tt){_(W);return}w.current.startX=bt,w.current.startY=$t,!l&&!x&&(dt?w.current.startX-=un:w.current.startY-=un)}}if(!w.current.isSwiping)return;const nt=lo(dt,z.current);let ct=dt?w.current.startX:w.current.startY;x&&!w.current.paperHit&&(ct=Math.min(ct,nt));const vt=fn(dt?bt:$t,ct,x,nt);if(x)if(w.current.paperHit)vt===0&&(w.current.startX=bt,w.current.startY=$t);else if(dt?bt{var nt;if(W.defaultPrevented||W.defaultMuiPrevented||x&&(p||!H.current.contains(W.target))&&!z.current.contains(W.target))return;const it=co(n,a),dt=Be(a),bt=br(it,W.touches,de(W.currentTarget)),$t=vr(it,W.touches,Xe(W.currentTarget));if(!x){if(c||!(W.target===M.current||(nt=z.current)!=null&&nt.contains(W.target)&&(typeof v=="function"?v(W,M.current,z.current):v)))return;if(dt){if(bt>P)return}else if($t>P)return}W.defaultMuiPrevented=!0,xe=null,w.current.startX=bt,w.current.startY=$t,wt()});u.useEffect(()=>{if($==="temporary"){const W=de(z.current);return W.addEventListener("touchstart",Rt),W.addEventListener("touchmove",Lt,{passive:!x}),W.addEventListener("touchend",_),()=>{W.removeEventListener("touchstart",Rt),W.removeEventListener("touchmove",Lt,{passive:!x}),W.removeEventListener("touchend",_)}}},[$,x,Rt,Lt,_]),u.useEffect(()=>()=>{xe===w.current&&(xe=null)},[]),u.useEffect(()=>{x||L(!1)},[x]);const[lt,rt]=V("swipeArea",{ref:M,elementType:zf,ownerState:r,externalForwardedProps:{slots:A,slotProps:{swipeArea:R,...k}},additionalProps:{width:P,anchor:a}});return d.jsxs(u.Fragment,{children:[d.jsx(Uc,{open:$==="temporary"&&F?!0:x,variant:$,ModalProps:{BackdropProps:{...y,ref:H},...$==="temporary"&&{keepMounted:!0},...g},hideBackdrop:p,anchor:a,transitionDuration:et.current||N,onClose:h,ref:o,slots:A,slotProps:{...k,backdrop:bo(k.backdrop??y,{ref:H}),paper:bo(k.paper??C,{style:{pointerEvents:$==="temporary"&&!x&&!v?"none":""},ref:Q})},...I}),!c&&$==="temporary"&&d.jsx(ud,{children:d.jsx(lt,{...rt})})]})});function Ff(t){return K("MuiSwitch",t)}const oe=Z("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),Uf=t=>{const{classes:e,edge:o,size:r,color:n,checked:s,disabled:a}=t,i={root:["root",o&&`edge${T(o)}`,`size${T(r)}`],switchBase:["switchBase",`color${T(n)}`,s&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},l=q(i,Ff,e);return{...e,...l}},Wf=S("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.edge&&e[`edge${T(o.edge)}`],e[`size${T(o.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${oe.thumb}`]:{width:16,height:16},[`& .${oe.switchBase}`]:{padding:4,[`&.${oe.checked}`]:{transform:"translateX(16px)"}}}}]}),Hf=S(Nr,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.switchBase,{[`& .${oe.input}`]:e.input},o.color!=="default"&&e[`color${T(o.color)}`]]}})(U(({theme:t})=>({position:"absolute",top:0,left:0,zIndex:1,color:t.vars?t.vars.palette.Switch.defaultColor:`${t.palette.mode==="light"?t.palette.common.white:t.palette.grey[300]}`,transition:t.transitions.create(["left","transform"],{duration:t.transitions.duration.shortest}),[`&.${oe.checked}`]:{transform:"translateX(20px)"},[`&.${oe.disabled}`]:{color:t.vars?t.vars.palette.Switch.defaultDisabledColor:`${t.palette.mode==="light"?t.palette.grey[100]:t.palette.grey[600]}`},[`&.${oe.checked} + .${oe.track}`]:{opacity:.5},[`&.${oe.disabled} + .${oe.track}`]:{opacity:t.vars?t.vars.opacity.switchTrackDisabled:`${t.palette.mode==="light"?.12:.2}`},[`& .${oe.input}`]:{left:"-100%",width:"300%"}})),U(({theme:t})=>({"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(t.palette).filter(Ft(["light"])).map(([e])=>({props:{color:e},style:{[`&.${oe.checked}`]:{color:(t.vars||t).palette[e].main,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette[e].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${oe.disabled}`]:{color:t.vars?t.vars.palette.Switch[`${e}DisabledColor`]:`${t.palette.mode==="light"?Ee(t.palette[e].main,.62):De(t.palette[e].main,.55)}`}},[`&.${oe.checked} + .${oe.track}`]:{backgroundColor:(t.vars||t).palette[e].main}}}))]}))),Vf=S("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(t,e)=>e.track})(U(({theme:t})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:t.vars?t.vars.palette.common.onBackground:`${t.palette.mode==="light"?t.palette.common.black:t.palette.common.white}`,opacity:t.vars?t.vars.opacity.switchTrack:`${t.palette.mode==="light"?.38:.3}`}))),Gf=S("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(t,e)=>e.thumb})(U(({theme:t})=>({boxShadow:(t.vars||t).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),lv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiSwitch"}),{className:n,color:s="primary",edge:a=!1,size:i="medium",sx:l,slots:c={},slotProps:p={},...f}=r,v={...r,color:s,edge:a,size:i},m=Uf(v),y={slots:c,slotProps:p},[g,h]=V("root",{className:j(m.root,n),elementType:Wf,externalForwardedProps:y,ownerState:v,additionalProps:{sx:l}}),[b,x]=V("thumb",{className:m.thumb,elementType:Gf,externalForwardedProps:y,ownerState:v}),C=d.jsx(b,{...x}),[R,P]=V("track",{className:m.track,elementType:Vf,externalForwardedProps:y,ownerState:v});return d.jsxs(g,{...h,children:[d.jsx(Hf,{type:"checkbox",icon:C,checkedIcon:C,ref:o,ownerState:v,...f,classes:{...m,root:m.switchBase},slots:{...c.switchBase&&{root:c.switchBase},...c.input&&{input:c.input}},slotProps:{...p.switchBase&&{root:typeof p.switchBase=="function"?p.switchBase(v):p.switchBase},...p.input&&{input:typeof p.input=="function"?p.input(v):p.input}}}),d.jsx(R,{...P})]})}),Zn=u.createContext();function _f(t){return K("MuiTable",t)}const cv=Z("MuiTable",["root","stickyHeader"]),qf=t=>{const{classes:e,stickyHeader:o}=t;return q({root:["root",o&&"stickyHeader"]},_f,e)},Xf=S("table",{name:"MuiTable",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.stickyHeader&&e.stickyHeader]}})(U(({theme:t})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...t.typography.body2,padding:t.spacing(2),color:(t.vars||t).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:e})=>e.stickyHeader,style:{borderCollapse:"separate"}}]}))),gn="table",pv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTable"}),{className:n,component:s=gn,padding:a="normal",size:i="medium",stickyHeader:l=!1,...c}=r,p={...r,component:s,padding:a,size:i,stickyHeader:l},f=qf(p),v=u.useMemo(()=>({padding:a,size:i,stickyHeader:l}),[a,i,l]);return d.jsx(Zn.Provider,{value:v,children:d.jsx(Xf,{as:s,role:s===gn?null:"table",ref:o,className:j(f.root,n),ownerState:p,...c})})}),So=u.createContext();function Yf(t){return K("MuiTableBody",t)}const dv=Z("MuiTableBody",["root"]),Kf=t=>{const{classes:e}=t;return q({root:["root"]},Yf,e)},Zf=S("tbody",{name:"MuiTableBody",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-row-group"}),Jf={variant:"body"},mn="tbody",uv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableBody"}),{className:n,component:s=mn,...a}=r,i={...r,component:s},l=Kf(i);return d.jsx(So.Provider,{value:Jf,children:d.jsx(Zf,{className:j(l.root,n),as:s,ref:o,role:s===mn?null:"rowgroup",ownerState:i,...a})})});function Qf(t){return K("MuiTableCell",t)}const tg=Z("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),eg=t=>{const{classes:e,variant:o,align:r,padding:n,size:s,stickyHeader:a}=t,i={root:["root",o,a&&"stickyHeader",r!=="inherit"&&`align${T(r)}`,n!=="normal"&&`padding${T(n)}`,`size${T(s)}`]};return q(i,Qf,e)},og=S("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${T(o.size)}`],o.padding!=="normal"&&e[`padding${T(o.padding)}`],o.align!=="inherit"&&e[`align${T(o.align)}`],o.stickyHeader&&e.stickyHeader]}})(U(({theme:t})=>({...t.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:t.vars?`1px solid ${t.vars.palette.TableCell.border}`:`1px solid + ${t.palette.mode==="light"?Ee(Tt(t.palette.divider,1),.88):De(Tt(t.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(t.vars||t).palette.text.primary,lineHeight:t.typography.pxToRem(24),fontWeight:t.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(t.vars||t).palette.text.primary}},{props:{variant:"footer"},style:{color:(t.vars||t).palette.text.secondary,lineHeight:t.typography.pxToRem(21),fontSize:t.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${tg.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:e})=>e.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(t.vars||t).palette.background.default}}]}))),$r=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableCell"}),{align:n="inherit",className:s,component:a,padding:i,scope:l,size:c,sortDirection:p,variant:f,...v}=r,m=u.useContext(Zn),y=u.useContext(So),g=y&&y.variant==="head";let h;a?h=a:h=g?"th":"td";let b=l;h==="td"?b=void 0:!b&&g&&(b="col");const x=f||y&&y.variant,C={...r,align:n,component:h,padding:i||(m&&m.padding?m.padding:"normal"),size:c||(m&&m.size?m.size:"medium"),sortDirection:p,stickyHeader:x==="head"&&m&&m.stickyHeader,variant:x},R=eg(C);let P=null;return p&&(P=p==="asc"?"ascending":"descending"),d.jsx(og,{as:h,ref:o,className:j(R.root,s),"aria-sort":P,scope:b,ownerState:C,...v})});function rg(t){return K("MuiTableContainer",t)}const fv=Z("MuiTableContainer",["root"]),ng=t=>{const{classes:e}=t;return q({root:["root"]},rg,e)},sg=S("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(t,e)=>e.root})({width:"100%",overflowX:"auto"}),gv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableContainer"}),{className:n,component:s="div",...a}=r,i={...r,component:s},l=ng(i);return d.jsx(sg,{ref:o,as:s,className:j(l.root,n),ownerState:i,...a})});function ag(t){return K("MuiTableFooter",t)}const mv=Z("MuiTableFooter",["root"]),ig=t=>{const{classes:e}=t;return q({root:["root"]},ag,e)},lg=S("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-footer-group"}),cg={variant:"footer"},bn="tfoot",bv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableFooter"}),{className:n,component:s=bn,...a}=r,i={...r,component:s},l=ig(i);return d.jsx(So.Provider,{value:cg,children:d.jsx(lg,{as:s,className:j(l.root,n),ref:o,role:s===bn?null:"rowgroup",ownerState:i,...a})})});function pg(t){return K("MuiTableHead",t)}const vv=Z("MuiTableHead",["root"]),dg=t=>{const{classes:e}=t;return q({root:["root"]},pg,e)},ug=S("thead",{name:"MuiTableHead",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-header-group"}),fg={variant:"head"},vn="thead",yv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableHead"}),{className:n,component:s=vn,...a}=r,i={...r,component:s},l=dg(i);return d.jsx(So.Provider,{value:fg,children:d.jsx(ug,{as:s,className:j(l.root,n),ref:o,role:s===vn?null:"rowgroup",ownerState:i,...a})})});function gg(t){return K("MuiToolbar",t)}const hv=Z("MuiToolbar",["root","gutters","regular","dense"]),mg=t=>{const{classes:e,disableGutters:o,variant:r}=t;return q({root:["root",!o&&"gutters",r]},gg,e)},bg=S("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableGutters&&e.gutters,e[o.variant]]}})(U(({theme:t})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:t.spacing(2),paddingRight:t.spacing(2),[t.breakpoints.up("sm")]:{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:t.mixins.toolbar}]}))),vg=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiToolbar"}),{className:n,component:s="div",disableGutters:a=!1,variant:i="regular",...l}=r,c={...r,component:s,disableGutters:a,variant:i},p=mg(c);return d.jsx(bg,{as:s,className:j(p.root,n),ref:o,ownerState:c,...l})}),yg=u.forwardRef(function(e,o){const{backIconButtonProps:r,count:n,disabled:s=!1,getItemAriaLabel:a,nextIconButtonProps:i,onPageChange:l,page:c,rowsPerPage:p,showFirstButton:f,showLastButton:v,slots:m={},slotProps:y={},...g}=e,h=We(),b=_=>{l(_,0)},x=_=>{l(_,c-1)},C=_=>{l(_,c+1)},R=_=>{l(_,Math.max(0,Math.ceil(n/p)-1))},P=m.firstButton??Oe,N=m.lastButton??Oe,$=m.nextButton??Oe,A=m.previousButton??Oe,k=m.firstButtonIcon??Hn,I=m.lastButtonIcon??Vn,F=m.nextButtonIcon??Vs,L=m.previousButtonIcon??Gs,w=h?N:P,M=h?$:A,H=h?A:$,z=h?P:N,Q=h?y.lastButton:y.firstButton,D=h?y.nextButton:y.previousButton,et=h?y.previousButton:y.nextButton,pt=h?y.firstButton:y.lastButton;return d.jsxs("div",{ref:o,...g,children:[f&&d.jsx(w,{onClick:b,disabled:s||c===0,"aria-label":a("first",c),title:a("first",c),...Q,children:h?d.jsx(I,{...y.lastButtonIcon}):d.jsx(k,{...y.firstButtonIcon})}),d.jsx(M,{onClick:x,disabled:s||c===0,color:"inherit","aria-label":a("previous",c),title:a("previous",c),...D??r,children:h?d.jsx(F,{...y.nextButtonIcon}):d.jsx(L,{...y.previousButtonIcon})}),d.jsx(H,{onClick:C,disabled:s||(n!==-1?c>=Math.ceil(n/p)-1:!1),color:"inherit","aria-label":a("next",c),title:a("next",c),...et??i,children:h?d.jsx(L,{...y.previousButtonIcon}):d.jsx(F,{...y.nextButtonIcon})}),v&&d.jsx(z,{onClick:R,disabled:s||c>=Math.ceil(n/p)-1,"aria-label":a("last",c),title:a("last",c),...pt,children:h?d.jsx(k,{...y.firstButtonIcon}):d.jsx(I,{...y.lastButtonIcon})})]})});function hg(t){return K("MuiTablePagination",t)}const fo=Z("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]);var yn;const xg=S($r,{name:"MuiTablePagination",slot:"Root",overridesResolver:(t,e)=>e.root})(U(({theme:t})=>({overflow:"auto",color:(t.vars||t).palette.text.primary,fontSize:t.typography.pxToRem(14),"&:last-child":{padding:0}}))),Cg=S(vg,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(t,e)=>({[`& .${fo.actions}`]:e.actions,...e.toolbar})})(U(({theme:t})=>({minHeight:52,paddingRight:2,[`${t.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[t.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${fo.actions}`]:{flexShrink:0,marginLeft:20}}))),Sg=S("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(t,e)=>e.spacer})({flex:"1 1 100%"}),wg=S("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(t,e)=>e.selectLabel})(U(({theme:t})=>({...t.typography.body2,flexShrink:0}))),Rg=S(qs,{name:"MuiTablePagination",slot:"Select",overridesResolver:(t,e)=>({[`& .${fo.selectIcon}`]:e.selectIcon,[`& .${fo.select}`]:e.select,...e.input,...e.selectRoot})})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${fo.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),$g=S(_s,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(t,e)=>e.menuItem})({}),Pg=S("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(t,e)=>e.displayedRows})(U(({theme:t})=>({...t.typography.body2,flexShrink:0})));function kg({from:t,to:e,count:o}){return`${t}–${e} of ${o!==-1?o:`more than ${e}`}`}function Tg(t){return`Go to ${t} page`}const Ig=t=>{const{classes:e}=t;return q({root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]},hg,e)},xv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTablePagination"}),{ActionsComponent:n=yg,backIconButtonProps:s,colSpan:a,component:i=$r,count:l,disabled:c=!1,getItemAriaLabel:p=Tg,labelDisplayedRows:f=kg,labelRowsPerPage:v="Rows per page:",nextIconButtonProps:m,onPageChange:y,onRowsPerPageChange:g,page:h,rowsPerPage:b,rowsPerPageOptions:x=[10,25,50,100],SelectProps:C={},showFirstButton:R=!1,showLastButton:P=!1,slotProps:N={},slots:$={},...A}=r,k=r,I=Ig(k),F=(N==null?void 0:N.select)??C,L=F.native?"option":$g;let w;(i===$r||i==="td")&&(w=a||1e3);const M=Ue(F.id),H=Ue(F.labelId),z=()=>l===-1?(h+1)*b:b===-1?l:Math.min(l,(h+1)*b),Q={slots:$,slotProps:N},[D,et]=V("root",{ref:o,className:I.root,elementType:xg,externalForwardedProps:{...Q,component:i,...A},ownerState:k,additionalProps:{colSpan:w}}),[pt,_]=V("toolbar",{className:I.toolbar,elementType:Cg,externalForwardedProps:Q,ownerState:k}),[wt,Lt]=V("spacer",{className:I.spacer,elementType:Sg,externalForwardedProps:Q,ownerState:k}),[Rt,lt]=V("selectLabel",{className:I.selectLabel,elementType:wg,externalForwardedProps:Q,ownerState:k,additionalProps:{id:H}}),[rt,W]=V("select",{className:I.select,elementType:Rg,externalForwardedProps:Q,ownerState:k}),[it,dt]=V("menuItem",{className:I.menuItem,elementType:L,externalForwardedProps:Q,ownerState:k}),[bt,$t]=V("displayedRows",{className:I.displayedRows,elementType:Pg,externalForwardedProps:Q,ownerState:k});return d.jsx(D,{...et,children:d.jsxs(pt,{..._,children:[d.jsx(wt,{...Lt}),x.length>1&&d.jsx(Rt,{...lt,children:v}),x.length>1&&d.jsx(rt,{variant:"standard",...!F.variant&&{input:yn||(yn=d.jsx(Ys,{}))},value:b,onChange:g,id:M,labelId:H,...F,classes:{...F.classes,root:j(I.input,I.selectRoot,(F.classes||{}).root),select:j(I.select,(F.classes||{}).select),icon:j(I.selectIcon,(F.classes||{}).icon)},disabled:c,...W,children:x.map(nt=>u.createElement(it,{...dt,key:nt.label?nt.label:nt,value:nt.value?nt.value:nt},nt.label?nt.label:nt))}),d.jsx(bt,{...$t,children:f({from:l===0?0:h*b+1,to:z(),count:l===-1?-1:l,page:h})}),d.jsx(n,{className:I.actions,backIconButtonProps:s,count:l,nextIconButtonProps:m,onPageChange:y,page:h,rowsPerPage:b,showFirstButton:R,showLastButton:P,slotProps:N.actions,slots:$.actions,getItemAriaLabel:p,disabled:c})]})})});function Mg(t){return K("MuiTableRow",t)}const hn=Z("MuiTableRow",["root","selected","hover","head","footer"]),Ag=t=>{const{classes:e,selected:o,hover:r,head:n,footer:s}=t;return q({root:["root",o&&"selected",r&&"hover",n&&"head",s&&"footer"]},Mg,e)},Lg=S("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.head&&e.head,o.footer&&e.footer]}})(U(({theme:t})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${hn.hover}:hover`]:{backgroundColor:(t.vars||t).palette.action.hover},[`&.${hn.selected}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity)}}}))),xn="tr",Cv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableRow"}),{className:n,component:s=xn,hover:a=!1,selected:i=!1,...l}=r,c=u.useContext(So),p={...r,component:s,hover:a,selected:i,head:c&&c.variant==="head",footer:c&&c.variant==="footer"},f=Ag(p);return d.jsx(Lg,{as:s,ref:o,className:j(f.root,n),role:s===xn?null:"row",ownerState:p,...l})}),Bg=Ht(d.jsx("path",{d:"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");function Ng(t){return K("MuiTableSortLabel",t)}const yr=Z("MuiTableSortLabel",["root","active","icon","iconDirectionDesc","iconDirectionAsc","directionDesc","directionAsc"]),Og=t=>{const{classes:e,direction:o,active:r}=t,n={root:["root",r&&"active",`direction${T(o)}`],icon:["icon",`iconDirection${T(o)}`]};return q(n,Ng,e)},zg=S(fe,{name:"MuiTableSortLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.active&&e.active]}})(U(({theme:t})=>({cursor:"pointer",display:"inline-flex",justifyContent:"flex-start",flexDirection:"inherit",alignItems:"center","&:focus":{color:(t.vars||t).palette.text.secondary},"&:hover":{color:(t.vars||t).palette.text.secondary,[`& .${yr.icon}`]:{opacity:.5}},[`&.${yr.active}`]:{color:(t.vars||t).palette.text.primary,[`& .${yr.icon}`]:{opacity:1,color:(t.vars||t).palette.text.secondary}}}))),jg=S("span",{name:"MuiTableSortLabel",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,e[`iconDirection${T(o.direction)}`]]}})(U(({theme:t})=>({fontSize:18,marginRight:4,marginLeft:4,opacity:0,transition:t.transitions.create(["opacity","transform"],{duration:t.transitions.duration.shorter}),userSelect:"none",variants:[{props:{direction:"desc"},style:{transform:"rotate(0deg)"}},{props:{direction:"asc"},style:{transform:"rotate(180deg)"}}]}))),Sv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiTableSortLabel"}),{active:n=!1,children:s,className:a,direction:i="asc",hideSortIcon:l=!1,IconComponent:c=Bg,slots:p={},slotProps:f={},...v}=r,m={...r,active:n,direction:i,hideSortIcon:l,IconComponent:c},y=Og(m),g={slots:p,slotProps:f},[h,b]=V("root",{elementType:zg,externalForwardedProps:g,ownerState:m,className:j(y.root,a),ref:o}),[x,C]=V("icon",{elementType:jg,externalForwardedProps:g,ownerState:m,className:y.icon});return d.jsxs(h,{disableRipple:!0,component:"span",...b,...v,children:[s,l&&!n?null:d.jsx(x,{as:c,...C})]})});function Dg(t){return K("MuiToggleButton",t)}const ze=Z("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),Jn=u.createContext({}),Qn=u.createContext(void 0);function Eg(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.includes(t):t===e}const Fg=t=>{const{classes:e,fullWidth:o,selected:r,disabled:n,size:s,color:a}=t,i={root:["root",r&&"selected",n&&"disabled",o&&"fullWidth",`size${T(s)}`,a]};return q(i,Dg,e)},Ug=S(fe,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`size${T(o.size)}`]]}})(U(({theme:t})=>({...t.typography.button,borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active,[`&.${ze.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:Tt(t.palette.text.primary,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${ze.selected}`]:{color:(t.vars||t).palette.text.primary,backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.text.primary,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette.text.primary,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette.text.primary,t.palette.action.selectedOpacity)}}}}},...Object.entries(t.palette).filter(Ft()).map(([e])=>({props:{color:e},style:{[`&.${ze.selected}`]:{color:(t.vars||t).palette[e].main,backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette[e].main,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:Tt(t.palette[e].main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${t.vars.palette[e].mainChannel} / ${t.vars.palette.action.selectedOpacity})`:Tt(t.palette[e].main,t.palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:t.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:t.typography.pxToRem(15)}}]}))),wv=u.forwardRef(function(e,o){const{value:r,...n}=u.useContext(Jn),s=u.useContext(Qn),a=Zs({...n,selected:Eg(e.value,r)},e),i=X({props:a,name:"MuiToggleButton"}),{children:l,className:c,color:p="standard",disabled:f=!1,disableFocusRipple:v=!1,fullWidth:m=!1,onChange:y,onClick:g,selected:h,size:b="medium",value:x,...C}=i,R={...i,color:p,disabled:f,disableFocusRipple:v,fullWidth:m,size:b},P=Fg(R),N=A=>{g&&(g(A,x),A.defaultPrevented)||y&&y(A,x)},$=s||"";return d.jsx(Ug,{className:j(n.className,P.root,c,$),disabled:f,focusRipple:!v,ref:o,onClick:N,onChange:y,value:x,ownerState:R,"aria-pressed":h,...C,children:l})});function Wg(t){return K("MuiToggleButtonGroup",t)}const Ut=Z("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","groupedHorizontal","groupedVertical","fullWidth","firstButton","lastButton","middleButton"]),Hg=t=>{const{classes:e,orientation:o,fullWidth:r,disabled:n}=t,s={root:["root",o,r&&"fullWidth"],grouped:["grouped",`grouped${T(o)}`,n&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]};return q(s,Wg,e)},Vg=S("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Ut.grouped}`]:e.grouped},{[`& .${Ut.grouped}`]:e[`grouped${T(o.orientation)}`]},{[`& .${Ut.firstButton}`]:e.firstButton},{[`& .${Ut.lastButton}`]:e.lastButton},{[`& .${Ut.middleButton}`]:e.middleButton},e.root,o.orientation==="vertical"&&e.vertical,o.fullWidth&&e.fullWidth]}})(U(({theme:t})=>({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Ut.grouped}`]:{[`&.${Ut.selected} + .${Ut.grouped}.${Ut.selected}`]:{borderTop:0,marginTop:0}},[`& .${Ut.firstButton},& .${Ut.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${Ut.lastButton},& .${Ut.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${Ut.lastButton}.${ze.disabled},& .${Ut.middleButton}.${ze.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${Ut.grouped}`]:{[`&.${Ut.selected} + .${Ut.grouped}.${Ut.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${Ut.firstButton},& .${Ut.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Ut.lastButton},& .${Ut.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${Ut.lastButton}.${ze.disabled},& .${Ut.middleButton}.${ze.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),Rv=u.forwardRef(function(e,o){const r=X({props:e,name:"MuiToggleButtonGroup"}),{children:n,className:s,color:a="standard",disabled:i=!1,exclusive:l=!1,fullWidth:c=!1,onChange:p,orientation:f="horizontal",size:v="medium",value:m,...y}=r,g={...r,disabled:i,fullWidth:c,orientation:f,size:v},h=Hg(g),b=u.useCallback(($,A)=>{if(!p)return;const k=m&&m.indexOf(A);let I;m&&k>=0?(I=m.slice(),I.splice(k,1)):I=m?m.concat(A):[A],p($,I)},[p,m]),x=u.useCallback(($,A)=>{p&&p($,m===A?null:A)},[p,m]),C=u.useMemo(()=>({className:h.grouped,onChange:l?x:b,value:m,size:v,fullWidth:c,color:a,disabled:i}),[h.grouped,l,x,b,m,v,c,a,i]),R=Mn(n),P=R.length,N=$=>{const A=$===0,k=$===P-1;return A&&k?"":A?h.firstButton:k?h.lastButton:h.middleButton};return d.jsx(Vg,{role:"group",className:j(h.root,s),ref:o,ownerState:g,...y,children:d.jsx(Jn.Provider,{value:C,children:R.map(($,A)=>d.jsx(Qn.Provider,{value:N(A),children:$},A))})})});function Gg(t,e){const{disableHysteresis:o=!1,threshold:r=100,target:n}=e,s=t.current;return n&&(t.current=n.pageYOffset!==void 0?n.pageYOffset:n.scrollTop),!o&&s!==void 0&&t.currentr}const _g=typeof window<"u"?window:null;function $v(t={}){const{getTrigger:e=Gg,target:o=_g,...r}=t,n=u.useRef(),[s,a]=u.useState(()=>e(n,r));return u.useEffect(()=>{if(o===null)return a(!1);const i=()=>{a(e(n,{target:o,...r}))};return i(),o.addEventListener("scroll",i,{passive:!0}),()=>{o.removeEventListener("scroll",i,{passive:!0})}},[o,e,JSON.stringify(r)]),s}const Pv="6.4.12",kv=6,Tv=4,Iv=12,Mv=void 0;export{Im as Accordion,Am as AccordionActions,Bm as AccordionDetails,Nm as AccordionSummary,Om as Alert,jm as AlertTitle,Em as AppBar,Um as Autocomplete,al as Avatar,Wm as AvatarGroup,Kv as Backdrop,Hm as Badge,Gm as BottomNavigation,_m as BottomNavigationAction,qm as Box,Xm as Breadcrumbs,Zv as Button,fe as ButtonBase,Ym as ButtonGroup,Bs as ButtonGroupButtonContext,Ls as ButtonGroupContext,Zm as Card,Jm as CardActionArea,tb as CardActions,ob as CardContent,rb as CardHeader,sb as CardMedia,ab as Checkbox,As as Chip,Jv as CircularProgress,Rc as ClickAwayListener,vo as Collapse,ib as Container,pb as CssBaseline,e0 as CssVarsProvider,Qv as Dialog,ty as DialogActions,ey as DialogContent,fb as DialogContentText,gb as DialogTitle,oy as Divider,Uc as Drawer,o0 as Experimental_CssVarsProvider,En as Fab,ry as Fade,_h as FilledInput,ny as FormControl,bb as FormControlLabel,Jc as FormGroup,sy as FormHelperText,ay as FormLabel,iy as FormLabelRoot,qh as GlobalStyles,yb as Grid,hb as Grid2,kn as Grow,Sb as Hidden,$p as Icon,Oe as IconButton,$b as ImageList,Pb as ImageListItem,Tb as ImageListItemBar,Fs as Input,ly as InputAdornment,Ys as InputBase,cy as InputLabel,Xp as LinearProgress,Mb as Link,py as List,dy as ListItem,Lb as ListItemAvatar,Pm as ListItemButton,Rm as ListItemIcon,uy as ListItemSecondaryAction,$m as ListItemText,hr as ListSubheader,fy as Menu,_s as MenuItem,gy as MenuList,Nb as MobileStepper,zs as Modal,my as ModalManager,dd as NativeSelect,ud as NoSsr,by as OutlinedInput,zb as Pagination,Sd as PaginationItem,we as Paper,vy as Popover,yy as PopoverPaper,hy as PopoverRoot,Ko as Popper,xy as Portal,jb as Radio,Eb as RadioGroup,Fb as Rating,Wb as ScopedCssBaseline,qs as Select,Cy as Skeleton,Oc as Slide,Hb as Slider,hu as SliderMark,xu as SliderMarkLabel,mu as SliderRail,gu as SliderRoot,vu as SliderThumb,bu as SliderTrack,yu as SliderValueLabel,_b as Snackbar,Iu as SnackbarContent,qb as SpeedDial,Xb as SpeedDialAction,of as SpeedDialIcon,Yb as Stack,tv as Step,ev as StepButton,Pf as StepConnector,nv as StepContent,Ze as StepContext,uf as StepIcon,Kn as StepLabel,av as Stepper,He as StepperContext,pm as StyledEngineProvider,Ks as SvgIcon,iv as SwipeableDrawer,lv as Switch,xs as THEME_ID,Sy as Tab,wy as TabScrollButton,pv as Table,uv as TableBody,$r as TableCell,gv as TableContainer,bv as TableFooter,yv as TableHead,xv as TablePagination,Cv as TableRow,Sv as TableSortLabel,Ry as Tabs,$y as TextField,Xh as TextareaAutosize,r0 as ThemeProvider,wv as ToggleButton,Rv as ToggleButtonGroup,vg as Toolbar,_u as Tooltip,re as Typography,Py as Unstable_TrapFocus,Nu as Zoom,Mm as accordionActionsClasses,To as accordionClasses,Lm as accordionDetailsClasses,qe as accordionSummaryClasses,gm as adaptV4Theme,Vr as alertClasses,zm as alertTitleClasses,Tt as alpha,Dm as appBarClasses,kt as autocompleteClasses,tl as avatarClasses,ll as avatarGroupClasses,ky as backdropClasses,$e as badgeClasses,Bn as bottomNavigationActionClasses,Vm as bottomNavigationClasses,wl as boxClasses,Ml as breadcrumbsClasses,Ty as buttonBaseClasses,Iy as buttonClasses,St as buttonGroupClasses,T as capitalize,pr as cardActionAreaClasses,Qm as cardActionsClasses,Km as cardClasses,eb as cardContentClasses,_o as cardHeaderClasses,nb as cardMediaClasses,dr as checkboxClasses,My as chipClasses,Ay as circularProgressClasses,Tm as collapseClasses,km as colors,cb as containerClasses,Ws as createChainedFunction,Bv as createColorScheme,Mi as createFilterOptions,Nv as createMuiTheme,bm as createStyles,Ht as createSvgIcon,Sn as createTheme,Ov as createTransitions,Mr as css,db as darkScrollbar,De as darken,Xs as debounce,zv as decomposeColor,dm as deprecatedPropType,Ly as dialogActionsClasses,By as dialogClasses,Ny as dialogContentClasses,ub as dialogContentTextClasses,Oy as dialogTitleClasses,zy as dividerClasses,mb as drawerClasses,hs as duration,jv as easing,Ho as emphasize,S as experimentalStyled,Cm as experimental_extendTheme,Sm as experimental_sx,ps as extendTheme,Qr as fabClasses,Ge as filledInputClasses,jy as formControlClasses,po as formControlLabelClasses,vb as formGroupClasses,Dy as formHelperTextClasses,Ey as formLabelClasses,K as generateUtilityClass,Z as generateUtilityClasses,ri as getAccordionActionsUtilityClass,ai as getAccordionDetailsUtilityClass,ci as getAccordionSummaryUtilityClass,Qa as getAccordionUtilityClass,Ri as getAlertTitleUtilityClass,gi as getAlertUtilityClass,ki as getAppBarUtilityClass,Ei as getAutocompleteUtilityClass,il as getAvatarGroupUtilityClass,Qi as getAvatarUtilityClass,Fy as getBackdropUtilityClass,ul as getBadgeUtilityClass,hl as getBottomNavigationActionUtilityClass,bl as getBottomNavigationUtilityClass,Il as getBreadcrumbsUtilityClass,Uy as getButtonBaseUtilityClass,zl as getButtonGroupUtilityClass,Wy as getButtonUtilityClass,Hl as getCardActionAreaUtilityClass,ql as getCardActionsUtilityClass,Kl as getCardContentUtilityClass,Ql as getCardHeaderUtilityClass,sc as getCardMediaUtilityClass,Fl as getCardUtilityClass,vc as getCheckboxUtilityClass,Hy as getChipUtilityClass,Vy as getCircularProgressUtilityClass,Xa as getCollapseUtilityClass,lb as getContainerUtilityClass,Dv as getContrastRatio,Gy as getDialogActionsUtilityClass,Tc as getDialogContentTextUtilityClass,_y as getDialogContentUtilityClass,Os as getDialogTitleUtilityClass,qy as getDialogUtilityClass,Xy as getDividerUtilityClass,zc as getDrawerUtilityClass,Wc as getFabUtilityClass,Yh as getFilledInputUtilityClass,Gc as getFormControlLabelUtilityClasses,Yy as getFormControlUtilityClasses,Yc as getFormGroupUtilityClass,Ky as getFormHelperTextUtilityClasses,Zy as getFormLabelUtilityClasses,xb as getGrid2UtilityClass,Jy as getIconButtonUtilityClass,Sp as getIconUtilityClass,Lp as getImageListItemBarUtilityClass,Ip as getImageListItemUtilityClass,Pp as getImageListUtilityClass,n0 as getInitColorSchemeScript,Qy as getInputAdornmentUtilityClass,Kh as getInputBaseUtilityClass,th as getInputLabelUtilityClasses,eh as getInputUtilityClass,Ep as getLinearProgressUtilityClass,Yp as getLinkUtilityClass,td as getListItemAvatarUtilityClass,Is as getListItemButtonUtilityClass,ks as getListItemIconUtilityClass,oh as getListItemSecondaryActionClassesUtilityClass,Ts as getListItemTextUtilityClass,rh as getListItemUtilityClass,zi as getListSubheaderUtilityClass,nh as getListUtilityClass,Ev as getLuminance,sh as getMenuItemUtilityClass,ah as getMenuUtilityClass,rd as getMobileStepperUtilityClass,ih as getModalUtilityClass,Us as getNativeSelectUtilityClasses,lh as getOffsetLeft,ch as getOffsetTop,ph as getOutlinedInputUtilityClass,Fv as getOverlayAlpha,md as getPaginationItemUtilityClass,fd as getPaginationUtilityClass,dh as getPaperUtilityClass,uh as getPopoverUtilityClass,fh as getPopperUtilityClass,Ed as getRadioGroupUtilityClass,Bd as getRadioUtilityClass,Hd as getRatingUtilityClass,Qd as getScopedCssBaselineUtilityClass,gh as getSelectUtilityClasses,mh as getSkeletonUtilityClass,du as getSliderUtilityClass,Ru as getSnackbarContentUtilityClass,Mu as getSnackbarUtilityClass,qu as getSpeedDialActionUtilityClass,Qu as getSpeedDialIconUtilityClass,Ou as getSpeedDialUtilityClass,hf as getStepButtonUtilityClass,Sf as getStepConnectorUtilityClass,kf as getStepContentUtilityClass,cf as getStepIconUtilityClass,ff as getStepLabelUtilityClass,rf as getStepUtilityClass,Af as getStepperUtilityClass,Jh as getSvgIconUtilityClass,Ff as getSwitchUtilityClass,bh as getTabScrollButtonUtilityClass,vh as getTabUtilityClass,Yf as getTableBodyUtilityClass,Qf as getTableCellUtilityClass,rg as getTableContainerUtilityClass,ag as getTableFooterUtilityClass,pg as getTableHeadUtilityClass,hg as getTablePaginationUtilityClass,Mg as getTableRowUtilityClass,Ng as getTableSortLabelUtilityClass,_f as getTableUtilityClass,yh as getTabsUtilityClass,hh as getTextFieldUtilityClass,Wg as getToggleButtonGroupUtilityClass,Dg as getToggleButtonUtilityClass,gg as getToolbarUtilityClass,Fu as getTooltipUtilityClass,xh as getTouchRippleUtilityClass,Ch as getTypographyUtilityClass,Cb as grid2Classes,Uv as hexToRgb,Wv as hslToRgb,Sh as iconButtonClasses,wb as iconClasses,Rb as imageListClasses,kb as imageListItemBarClasses,ur as imageListItemClasses,wh as inputAdornmentClasses,Ae as inputBaseClasses,sr as inputClasses,Rh as inputLabelClasses,Yo as isMuiElement,Ar as keyframes,Ee as lighten,Ib as linearProgressClasses,Kp as linkClasses,$h as listClasses,Ab as listItemAvatarClasses,oo as listItemButtonClasses,Ph as listItemClasses,kh as listItemIconClasses,Th as listItemSecondaryActionClasses,ko as listItemTextClasses,Fm as listSubheaderClasses,kv as major,ym as makeStyles,Ih as menuClasses,Mh as menuItemClasses,bo as mergeSlotProps,Tv as minor,Bb as mobileStepperClasses,Ah as modalClasses,Lh as nativeSelectClasses,Er as outlinedInputClasses,de as ownerDocument,Xe as ownerWindow,Ob as paginationClasses,ee as paginationItemClasses,Bh as paperClasses,Iv as patch,Nh as popoverClasses,Mv as prerelease,Hv as private_createMixins,Vv as private_createTypography,Gv as private_excludeVariablesFromRoot,on as radioClasses,Db as radioGroupClasses,so as ratingClasses,_v as recomposeColor,um as requirePropFactory,vm as responsiveFontSizes,qv as rgbToHex,Ub as scopedCssBaselineClasses,Oh as selectClasses,Ms as setRef,Xv as shouldSkipGeneratingVar,zh as skeletonClasses,le as sliderClasses,Gb as snackbarClasses,Vb as snackbarContentClasses,Eo as speedDialActionClasses,No as speedDialClasses,ve as speedDialIconClasses,Kb as stackClasses,dn as stepButtonClasses,Qb as stepClasses,ov as stepConnectorClasses,rv as stepContentClasses,gr as stepIconClasses,Te as stepLabelClasses,sv as stepperClasses,S as styled,Qh as svgIconClasses,oe as switchClasses,jh as tabClasses,Dh as tabScrollButtonClasses,dv as tableBodyClasses,tg as tableCellClasses,cv as tableClasses,fv as tableContainerClasses,mv as tableFooterClasses,vv as tableHeadClasses,fo as tablePaginationClasses,hn as tableRowClasses,yr as tableSortLabelClasses,Eh as tabsClasses,Fh as textFieldClasses,ze as toggleButtonClasses,Ut as toggleButtonGroupClasses,hv as toolbarClasses,Wt as tooltipClasses,Uh as touchRippleClasses,Vo as typographyClasses,wm as unstable_ClassNameGenerator,q as unstable_composeClasses,cs as unstable_createBreakpoints,mm as unstable_createMuiStrictModeTheme,Wh as unstable_getUnit,U as unstable_memoTheme,Hh as unstable_toUnitless,Co as unstable_useEnhancedEffect,Ue as unstable_useId,fm as unsupportedProp,Oi as useAutocomplete,s0 as useColorScheme,ue as useControlled,ne as useEventCallback,ge as useForkRef,xo as useFormControl,Ds as useMediaQuery,gd as usePagination,Ld as useRadioGroup,$v as useScrollTrigger,Jb as useStepContext,Zb as useStepperContext,se as useTheme,Vh as useThemeProps,Pv as version,hm as withStyles,xm as withTheme}; diff --git a/admin/custom/customComponents.js b/admin/custom/customComponents.js index cb19331e9..bc94e2093 100644 --- a/admin/custom/customComponents.js +++ b/admin/custom/customComponents.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-Co3YA5NW.js","./assets/_commonjsHelpers-D6-XlEtG.js","./assets/index-Dbe-II7_.js","./assets/ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js","./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js","./assets/jsx-runtime-o-xyxrOj.js","./assets/createSvgIcon-BQThUM-f.js","./assets/DefaultPropsProvider-9qubdy-V.js","./assets/defaultTheme-avbtL0lf.js","./assets/createTheme-BwMO3rTt.js","./assets/DefaultPropsProvider-DbEA5uR6.js","./assets/Tabs-CvEv0KOT.js","./assets/useTheme-MELayQMj.js","./assets/useThemeWithoutDefault-C-hl_s0Z.js","./assets/FilledInput-BpuM_GyB.js","./assets/useEnhancedEffect-CdLBzwyA.js","./assets/index-B7G6Jpdl.js","./assets/useTheme-CDtRWagv.js","./assets/ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js","./assets/index-BzS6q3oS.js","./assets/ThemeProvider-DZTpMR8n.js","./assets/index-hlyxqX-8.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js","./assets/index-B8sZ2j0S.js","./assets/index-sawv1cUe.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DAwHgdl6.js","./assets/preload-helper-Dp1pzeXC.js","./assets/index-CWXHfC2L.js","./assets/leaflet-src-A2ZHl6nF.js","./assets/index-DIWNdd4a.js"])))=>i.map(i=>d[i]); -import{i as d,C as p}from"./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import s from"./assets/virtualExposes-BMKIjWrE.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const n={react:async()=>await a(()=>import("./assets/index-Co3YA5NW.js").then(t=>t.i),__vite__mapDeps([0,1]),import.meta.url),"@mui/x-date-pickers":async()=>await a(()=>import("./assets/index-Dbe-II7_.js"),__vite__mapDeps([2,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-BzS6q3oS.js"),__vite__mapDeps([19,9,3,1,4,7,8,10,5,11,12,13,14,15,16,17,6,18,20]),import.meta.url),"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-hlyxqX-8.js"),__vite__mapDeps([21,9,3,1,4,22,23,12,13,17,8]),import.meta.url),"@iobroker/json-config":async()=>await a(()=>import("./assets/index-sawv1cUe.js"),__vite__mapDeps([24,3,1,4,22,23,12,9,13,25,18,14,7,8,10,5,15,26]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-CWXHfC2L.js").then(t=>t.i),__vite__mapDeps([27,1,3,4]),import.meta.url),leaflet:async()=>await a(()=>import("./assets/leaflet-src-A2ZHl6nF.js").then(t=>t.l),__vite__mapDeps([28,1]),import.meta.url),"@mui/icons-material":async()=>await a(()=>import("./assets/index-DIWNdd4a.js"),__vite__mapDeps([29,5,3,1,4,6,7,8,9,10]),import.meta.url)},o={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.react.loaded=!0;const{react:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/x-date-pickers":{name:"@mui/x-date-pickers",version:"7.29.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/x-date-pickers"].loaded=!0;const{"@mui/x-date-pickers":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.18",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/json-config":{name:"@iobroker/json-config",version:"7.6.18",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/json-config"].loaded=!0;const{"@iobroker/json-config":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},leaflet:{name:"leaflet",version:"1.9.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.leaflet.loaded=!0;const{leaflet:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/icons-material":{name:"@mui/icons-material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/icons-material"].loaded=!0;const{"@mui/icons-material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},f=[],u={},c="default",l="ConfigCustomJavascriptSet";async function k(e={},t=[]){const r=d.init({name:l,remotes:f,shared:o,plugins:[],shareStrategy:"version-first"});var i=u[c];if(i||(i=u[c]={from:l}),!(t.indexOf(i)>=0)){t.push(i),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(m){console.error(m)}return p.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-Co3YA5NW.js","./assets/_commonjsHelpers-D6-XlEtG.js","./assets/index-Dbe-II7_.js","./assets/ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js","./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js","./assets/jsx-runtime-o-xyxrOj.js","./assets/createSvgIcon-BQThUM-f.js","./assets/DefaultPropsProvider-9qubdy-V.js","./assets/defaultTheme-avbtL0lf.js","./assets/createTheme-BwMO3rTt.js","./assets/DefaultPropsProvider-DbEA5uR6.js","./assets/Tabs-CvEv0KOT.js","./assets/useTheme-MELayQMj.js","./assets/useThemeWithoutDefault-C-hl_s0Z.js","./assets/FilledInput-BpuM_GyB.js","./assets/useEnhancedEffect-CdLBzwyA.js","./assets/index-B7G6Jpdl.js","./assets/useTheme-CDtRWagv.js","./assets/ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DibxNPKw.js","./assets/index-DZqbj5K4.js","./assets/ThemeProvider-DZTpMR8n.js","./assets/index-BAaNTm9A.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BlV79j8y.js","./assets/index-B8sZ2j0S.js","./assets/index-3awjKpeb.js","./assets/ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DAwHgdl6.js","./assets/preload-helper-Dp1pzeXC.js","./assets/index-CWXHfC2L.js","./assets/leaflet-src-A2ZHl6nF.js","./assets/index-DIWNdd4a.js"])))=>i.map(i=>d[i]); +import{i as d,C as p}from"./assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-BaLGCXMi.js";import s from"./assets/virtualExposes-BMKIjWrE.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const n={react:async()=>await a(()=>import("./assets/index-Co3YA5NW.js").then(t=>t.i),__vite__mapDeps([0,1]),import.meta.url),"@mui/x-date-pickers":async()=>await a(()=>import("./assets/index-Dbe-II7_.js"),__vite__mapDeps([2,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-DZqbj5K4.js"),__vite__mapDeps([19,9,3,1,4,7,8,10,5,11,12,13,14,15,16,17,6,18,20]),import.meta.url),"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-BAaNTm9A.js"),__vite__mapDeps([21,9,3,1,4,22,23,12,13,17,8]),import.meta.url),"@iobroker/json-config":async()=>await a(()=>import("./assets/index-3awjKpeb.js"),__vite__mapDeps([24,3,1,4,22,23,12,9,13,25,18,14,7,8,10,5,15,26]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-CWXHfC2L.js").then(t=>t.i),__vite__mapDeps([27,1,3,4]),import.meta.url),leaflet:async()=>await a(()=>import("./assets/leaflet-src-A2ZHl6nF.js").then(t=>t.l),__vite__mapDeps([28,1]),import.meta.url),"@mui/icons-material":async()=>await a(()=>import("./assets/index-DIWNdd4a.js"),__vite__mapDeps([29,5,3,1,4,6,7,8,9,10]),import.meta.url)},o={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.react.loaded=!0;const{react:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/x-date-pickers":{name:"@mui/x-date-pickers",version:"7.29.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/x-date-pickers"].loaded=!0;const{"@mui/x-date-pickers":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.18",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@iobroker/json-config":{name:"@iobroker/json-config",version:"7.6.18",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@iobroker/json-config"].loaded=!0;const{"@iobroker/json-config":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},leaflet:{name:"leaflet",version:"1.9.4",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o.leaflet.loaded=!0;const{leaflet:e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/icons-material":{name:"@mui/icons-material",version:"6.4.12",scope:["default"],loaded:!1,from:"ConfigCustomJavascriptSet",async get(){o["@mui/icons-material"].loaded=!0;const{"@mui/icons-material":e}=n,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},f=[],u={},c="default",l="ConfigCustomJavascriptSet";async function k(e={},t=[]){const r=d.init({name:l,remotes:f,shared:o,plugins:[],shareStrategy:"version-first"});var i=u[c];if(i||(i=u[c]={from:l}),!(t.indexOf(i)>=0)){t.push(i),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(m){console.error(m)}return p.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; diff --git a/admin/mf-manifest.json b/admin/mf-manifest.json index 6e22f7e5e..b4afe82fd 100644 --- a/admin/mf-manifest.json +++ b/admin/mf-manifest.json @@ -1 +1 @@ -{"id":"iobroker_javascript","name":"iobroker_javascript","metaData":{"name":"iobroker_javascript","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_javascript"},"remoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_javascript","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_javascript:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"7.6.20","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-D12hwRdg.js","assets/createSvgIcon-BQT-7-GS.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/index-CuCs5aLs.js","assets/useTheme-DF6qfrtI.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:@mui/material","name":"@mui/material","version":"6.4.12","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-glyB1sbj.js","assets/createSvgIcon-BQT-7-GS.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/inheritsLoose--KnFDOw1.js","assets/useTheme-DF6qfrtI.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-x0m5vR1T.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Do-nCdWy.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:prop-types","name":"prop-types","version":"15.8.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-DQiceR5U.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]} \ No newline at end of file +{"id":"iobroker_javascript","name":"iobroker_javascript","metaData":{"name":"iobroker_javascript","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_javascript"},"remoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_javascript","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_javascript:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"7.6.18","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Bis-ZPl5.js","assets/createSvgIcon-DMsh-YeH.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/index-f32XoI0M.js","assets/Save-BSBgRX7g.js","assets/useTheme-N2j2HWMZ.js","assets/index-Dm1jc4t6.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:@mui/material","name":"@mui/material","version":"6.4.12","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Cd_NUyEa.js","assets/createSvgIcon-DMsh-YeH.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","assets/inheritsLoose-DgfqekV3.js","assets/useTheme-N2j2HWMZ.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-x0m5vR1T.js","assets/_commonjsHelpers-Cpj98o6Y.js","assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Do-nCdWy.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:prop-types","name":"prop-types","version":"15.8.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-DQiceR5U.js","assets/_commonjsHelpers-Cpj98o6Y.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]} \ No newline at end of file diff --git a/admin/remoteEntry.js b/admin/remoteEntry.js index a98ebce6f..2761c9d03 100644 --- a/admin/remoteEntry.js +++ b/admin/remoteEntry.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-D12hwRdg.js","./assets/createSvgIcon-BQT-7-GS.js","./assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","./assets/_commonjsHelpers-Cpj98o6Y.js","./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","./assets/index-CuCs5aLs.js","./assets/useTheme-DF6qfrtI.js","./assets/index-glyB1sbj.js","./assets/inheritsLoose--KnFDOw1.js","./assets/index-x0m5vR1T.js","./assets/index-Do-nCdWy.js","./assets/index-DQiceR5U.js"])))=>i.map(i=>d[i]); -import{i as d,a as m}from"./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import s from"./assets/virtualExposes-BIHI7g3E.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const i={"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-D12hwRdg.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-glyB1sbj.js"),__vite__mapDeps([7,1,2,3,4,8,6]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-x0m5vR1T.js").then(t=>t.i),__vite__mapDeps([9,3,2,4]),import.meta.url),react:async()=>await a(()=>import("./assets/index-Do-nCdWy.js").then(t=>t.i),__vite__mapDeps([10,3]),import.meta.url),"prop-types":async()=>await a(()=>import("./assets/index-DQiceR5U.js").then(t=>t.i),__vite__mapDeps([11,3]),import.meta.url)},o={"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.20",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o.react.loaded=!0;const{react:e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"prop-types":{name:"prop-types",version:"15.8.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["prop-types"].loaded=!0;const{"prop-types":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},_=[],u={},p="default",c="iobroker_javascript";async function k(e={},t=[]){const r=d.init({name:c,remotes:_,shared:o,plugins:[],shareStrategy:"version-first"});var n=u[p];if(n||(n=u[p]={from:c}),!(t.indexOf(n)>=0)){t.push(n),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(l){console.error(l)}return m.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./assets/index-Bis-ZPl5.js","./assets/createSvgIcon-DMsh-YeH.js","./assets/iobroker_javascript__loadShare__react__loadShare__-BiJPUKBK.js","./assets/_commonjsHelpers-Cpj98o6Y.js","./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js","./assets/index-f32XoI0M.js","./assets/Save-BSBgRX7g.js","./assets/useTheme-N2j2HWMZ.js","./assets/index-Dm1jc4t6.js","./assets/index-Cd_NUyEa.js","./assets/inheritsLoose-DgfqekV3.js","./assets/index-x0m5vR1T.js","./assets/index-Do-nCdWy.js","./assets/index-DQiceR5U.js"])))=>i.map(i=>d[i]); +import{i as d,a as m}from"./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CBQgOKij.js";import s from"./assets/virtualExposes-BIHI7g3E.js";import{_ as a}from"./assets/preload-helper-Dp1pzeXC.js";const i={"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-Bis-ZPl5.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-Cd_NUyEa.js"),__vite__mapDeps([9,1,2,3,4,10,7]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-x0m5vR1T.js").then(t=>t.i),__vite__mapDeps([11,3,2,4]),import.meta.url),react:async()=>await a(()=>import("./assets/index-Do-nCdWy.js").then(t=>t.i),__vite__mapDeps([12,3]),import.meta.url),"prop-types":async()=>await a(()=>import("./assets/index-DQiceR5U.js").then(t=>t.i),__vite__mapDeps([13,3]),import.meta.url)},o={"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"7.6.18",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.4.12",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o.react.loaded=!0;const{react:e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"prop-types":{name:"prop-types",version:"15.8.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["prop-types"].loaded=!0;const{"prop-types":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},_=[],u={},p="default",c="iobroker_javascript";async function k(e={},t=[]){const r=d.init({name:c,remotes:_,shared:o,plugins:[],shareStrategy:"version-first"});var n=u[p];if(n||(n=u[p]={from:c}),!(t.indexOf(n)>=0)){t.push(n),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(l){console.error(l)}return m.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init}; diff --git a/admin/tab.html b/admin/tab.html index 68d18ce5c..9db0aff73 100644 --- a/admin/tab.html +++ b/admin/tab.html @@ -115,15 +115,15 @@ type="text/javascript" src="google-blockly/own/blocks_object.js" > - + - - - + + + - + diff --git a/build-backend/main.js b/build-backend/main.js index 38e4431a2..eacdd1e76 100644 --- a/build-backend/main.js +++ b/build-backend/main.js @@ -681,9 +681,9 @@ class JavaScript extends adapter_core_1.Adapter { this.context.errorLogFunction = this.log; this.config.maxSetStatePerMinute = parseInt(this.config.maxSetStatePerMinute, 10) || 1000; this.config.maxTriggersPerScript = parseInt(this.config.maxTriggersPerScript, 10) || 100; - if (this.supportsFeature && this.supportsFeature('PLUGINS')) { + if (this.supportsFeature?.('PLUGINS')) { const sentryInstance = this.getPluginInstance('sentry'); - if (sentryInstance) { + if (sentryInstance?.getSentryObject) { const Sentry = sentryInstance.getSentryObject(); if (Sentry) { const scope = Sentry.getCurrentScope(); diff --git a/build-backend/main.js.map b/build-backend/main.js.map index dcefda4c6..2bf5dbbad 100644 --- a/build-backend/main.js.map +++ b/build-backend/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAqD;AACrD,qCAAwF;AACxF,yCAAiD;AACjD,2DAA4D;AAC5D,6CAAkE;AAClE,yCAA8C;AAC9C,wDAAgC;AAEhC,kDAAoC;AACpC,oDAAsC;AACtC,8CAAgC;AAChC,oDAAsC;AACtC,gDAAkC;AAClC,kDAAoC;AACpC,kDAAoC;AACpC,8CAAgC;AAChC,4CAA8B;AAC9B,gDAAkC;AAClC,gDAAkC;AAClC,kEAAoD;AACpD,oDAAsC;AACtC,gDAAkC;AAElC,sCAAsC;AACtC,kDAAoC;AACpC,6CAA+B;AAC/B,sCAAsC;AACtC,yDAA2C;AAC3C,4DAA8C;AAE9C,yDAA6G;AAK7G,yCAAsC;AACtC,gEAAwC;AACxC,uCAAuD;AACvD,2CAAwC;AACxC,uEAAqE;AACrE,6CAAkE;AAClE,+CAAiE;AACjE,iEAAwG;AACxG,uCAAyC;AACzC,2DAM+B;AAuC/B;;;;GAIG;AACH,MAAM,wBAAwB,GAAa;IACvC,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,QAAQ;CACX,CAAC;AAEF,MAAM,WAAW,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7G,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAExC,IAAI,aAAiC,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAE9B,sCAAsC;AACtC,IAAI,SAAiC,CAAC;AAEtC,yEAAyE;AACzE,kHAAkH;AAClH,qCAAqC;AACrC,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,oBAAoB,WAAW,CAAC,OAAO,eAAe,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;AAErH,2IAA2I;AAC3I,SAAS,eAAe,CAAC,SAAe;IACpC,MAAM,QAAQ,GAAW,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACrD,+EAA+E;IAC/E,iFAAiF;IACjF,0EAA0E;IAC1E,gDAAgD;IAChD,MAAM,UAAU,GAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,8CAA8C;IAC9C,+EAA+E;IAC/E,MAAM,SAAS,GAAW,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO;IACH,qDAAqD;IACrD,CAAC,SAAS,GAAG,yCAAyC;QACtD,uEAAuE;QACvE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,6CAA6C;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,8CAA8C;QAC9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,qCAAqC;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,2BAA2B;YACtD,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC1D,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM;YACtC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS;YACzC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY;YAC5C,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC5C,mEAAmE;YACnE,qEAAqE;YAErE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,uBAAuB;YACpD,MAAM,CAAC;YACP,EAAE;YACF,EAAE,GAAG,2CAA2C;YAChD,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB;YAC7D,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC;YACF,EAAE;YACF,IAAI,GAAG,yDAAyD;QACpE,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,gCAAgC;QACzE,SAAS,CAAC,eAAe,EAAE,CAC9B,CAAC;AACN,CAAC;AAED,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAE9C,SAAS,aAAa,CAAC,GAA0B;IAC7C,OAAO,GAAG,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,YAAY,CAAC,GAA2B,EAAE,EAAU,EAAE,QAAgB;IAC3E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,UAAoB;IACxD,MAAM,GAAG,GAAS,kBAAkB,EAAE,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,IACI,UAAU;QACV,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC,EACrG,CAAC;QACC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzB,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAE7B,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB;IACvB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEjB,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAU;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEpC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,iFAAiF;AACjF,sIAAsI;AACtI,qDAAqD;AACrD,IAAA,yCAA2B,EAAC;IACxB,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,mBAAmB,GAAW,IAAI,oBAAM,CAAC,iDAA4B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACvG;;;GAGG;AAEH,MAAM,UAAW,SAAQ,sBAAO;IAGX,OAAO,CAAoB;IAEpC,gBAAgB,GAMpB;QACA,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACxC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KAC7C,CAAC;IAEe,IAAI,CAAU;IAEvB,eAAe,GAAG,KAAK,CAAC;IACxB,cAAc,GAAG,KAAK,CAAC;IAEvB,OAAO,GAAoC,EAAE,CAAC;IAC9C,MAAM,GAAmC,EAAE,CAAC;IACnC,kBAAkB,GAAmC,EAAE,CAAC;IACxD,QAAQ,GAAa,EAAE,CAAC;IACxB,aAAa,GAAyB,EAAE,CAAC;IACzC,iBAAiB,GAA6B,EAAE,CAAC;IACjD,mBAAmB,GAAsB,EAAE,CAAC;IAC5C,kBAAkB,GAA2B,EAAE,CAAC;IAChD,sBAAsB,GAA2B,EAAE,CAAC;IACpD,WAAW,GAA6B,EAAE,CAAC;IAC3C,MAAM,GAAgD,EAAE,CAAC;IACzD,MAAM,GAAa,EAAE,CAAC;IACtB,KAAK,GAA0C,EAAE,CAAC,CAAC,WAAW;IAC9D,OAAO,GAA6B,EAAE,CAAC;IACvC,kBAAkB,GAG/B,EAAE,CAAC;IACU,gBAAgB,GAQ7B,EAAE,CAAC;IACU,eAAe,GAAqC,EAAE,CAAC,CAAC,aAAa;IACrE,6BAA6B,GAA4B,EAAE,CAAC;IAE7E,oCAAoC;IAC5B,aAAa,GAAG,KAAK,CAAC;IAEtB,YAAY,GAGhB,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEpC,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,iBAAiB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAEjF,SAAS,GAAG,EAAE,CAAC,CAAC,uBAAuB;IAEvC,MAAM,CAAqB;IAE3B,YAAY,GAA2B,EAAE,CAAC;IAE1C,0BAA0B,GAA0B,IAAI,CAAC;IAEzD,YAAY,GAAG,EAAE,CAAC;IAC1B,oDAAoD;IAC5C,kBAAkB,GAAG,EAAE,CAAC;IAChC,gDAAgD;IAChD,8DAA8D;IACtD,+BAA+B,GAA2B,EAAE,CAAC;IAC7D,iBAAiB,GAAG,CAAC,CAAC;IAC9B,mCAAmC;IAC3B,QAAQ,CAAS;IAER,kBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAErD,UAAU,GAAe;QAC7B,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,KAAK;KACjB,CAAC;IAEF,YAAY,UAAmC,EAAE;QAC7C,OAAO,GAAG;YACN,GAAG,OAAO;YACV,IAAI,EAAE,YAAY,EAAE,eAAe;YACnC,aAAa,EAAE,IAAI;YACnB;;;eAGG;YACH,KAAK,EAAE,CAAC,GAAU,EAAW,EAAE;gBAC3B,kEAAkE;gBAClE,mEAAmE;gBACnE,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,MAAM,qBAAqB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBACpE,IAAI,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC7B,yBAAyB;wBACzB,IAAI,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;wBAC5D,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAEzC,mCAAmC;wBACnC,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;oBACD,+DAA+D;oBAC/D,8EAA8E;oBAC9E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC;wBACrE,2FAA2F;wBAC3F,0CAA0C;wBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,oHAAoH,CACvH,CAAC;wBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAE1B,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;gBAED,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC;QAEF,KAAK,CAAC,OAAyB,CAAC,CAAC;QAEjC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,GAAG;YACR,EAAE,EAAE,EAAe;YACnB,aAAa,EAAE,EAA2B;YAC1C,KAAK;YACL,MAAM;YACN,GAAG;YACH,MAAM;YACN,IAAI;YACJ,KAAK;YACL,KAAK;YACL,GAAG;YACH,EAAE;YACF,IAAI;YACJ,IAAI;YACJ,aAAa;YACb,MAAM;YACN,IAAI;YAEJ,OAAO;YACP,KAAK;YACL,WAAW;YACX,YAAY;SACf,CAAC;QAEF,gDAAgD;QAChD,IAAI,SAA6B,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3C,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;oBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACJ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;YAEjE,OAAO,EAAE,KAAK,EAAE,kCAAkC;YAClD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,IAAI,EAAE,eAAe;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAE/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,4BAA4B,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1E,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,SAAS;YACT,yBAAyB,EAAzB,wCAAyB;YACzB,OAAO,EAAE,IAAmC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SACrC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAM,CAAC,sCAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,GAA4B;QACzD,6FAA6F;QAC7F,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,sDAAsD;YACtD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAsB,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,CAAC;YACD,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,cAAc;YACd,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAEnC,2BAA2B;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACN,SAAS;gBACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpC,aAAa;gBACb,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,EAAE,KAAK,eAAe,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAClD,kCAAkC;YAClC,IAAA,mBAAW,EAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QAChE,CAAC;QAED,kDAAkD;QAClD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,oBAAoB,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;YAC9D,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5G,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,GAAmC,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B;QAEjE,oFAAoF;QACpF,gFAAgF;QAChF,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,0BAA0B;YAC1B,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;iBACxB,IAAI,CAAC,KAAK,CAAC,EAAE;gBACV,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACR,YAAY;YAChB,CAAC,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACnC,4CAA4C;YAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,0BAA0B;YAC1B,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,mFAAmF;gBACnF,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzE,+DAA+D;gBAC/D,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAE1B,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAEpC,uCAAuC;gBACvC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,wCAAwC;YACxC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,6CAA6C;gBAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACnE,oDAAoD;gBACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,6BAA6B;oBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YACrD,qBAAqB;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC5D,4BAA4B;oBAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,IACI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,kBAAkB;oBAClB,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBAC7F,2BAA2B;wBAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC;qBAAM,IACH,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,iBAAiB;oBAEjB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBACjF,eAAe;wBACf,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,uDAAuD;oBACvD,uCAAuC;oBACvC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9E,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC/B,+EAA+E;wBAC/E,qCAAqC;wBACrC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC3B,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBACjC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,KAA6B;QACnD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,sDAAsD;YACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,OAAO;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,WAAW,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAsC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,QAAQ,EAAE,CAAC;gBACX,2BAA2B;gBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;oBAClF,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;wBAC1D,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE;qBACjC,CAAC,CAAC;gBACP,CAAC;gBAED,8FAA8F;gBAC9F,KAAI,gBAAiB,QAAQ,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChF,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC5B,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5F,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,KAAI,iBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,GAAG,EAAoB,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,4BAAiB,EAC/B,IAAI,CAAC,OAAO,EACZ,EAAE,EACF,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,KAAK,CAAC,EAC5C,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAClD,CAAC;QAEF,0CAA0C;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,EAAE,uBAAuB,IAAI,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC1F,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,QAAgB,EAAE,IAAmB;QAC1D,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAoB;QAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC/C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACjC,QAAQ,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;QAC/G,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;QAE9G,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,MAAM,cAAc,GAAsC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAExF,CAAC;YACF,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;oBACvC,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACrC,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC5C,IACI,SAAS,CAAC,UAAU,EAAE,MAAM;gCAC5B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gCAC1C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EACpC,CAAC;gCACC,6CAA6C;gCAC7C,IACI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACrC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC/C,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,4EAA4E;gCAC5E,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gCAC1D,IACI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAC7B,KAAK,CAAC,EAAE,CACJ,KAAK,CAAC,QAAQ;oCACd,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oCAClC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAClD,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,+DAA+D;gCAC/D,OAAO,KAAK,CAAC;4BACjB,CAAC;wBACL,CAAC;wBAED,uCAAuC;wBACvC,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,GAAqB;QAC3B,QAAQ,GAAG,EAAE,OAAO,EAAE,CAAC;YACnB,6BAA6B;YAC7B,KAAK,UAAU,CAAC;YAChB,KAAK,cAAc;gBACf,IACI,GAAG,CAAC,OAAO;oBACX,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;wBAC1B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBAClC,cAAc,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS;wBACvD,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,EAC9C,CAAC;oBACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAChD,iDAAiD;wBACjD,IACI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;4BACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EACpD,CAAC;4BACC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gCACjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gCAEhC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gCAEpF,IAAI,CAAC;oCACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wCACf,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gDAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;4CACvE,CAAC;4CAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wCAC7D,CAAC,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,OAAO,CAAC,OAAO;gDACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wCAC3E,CAAC,CAAC,CAAC;oCACP,CAAC;gCACL,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,KAAK,IAAI,CAAC,QAAQ,CACd,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC5D,IAAI,EACJ,IAAI,CACP,CAAC;oCACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAY,CAAC,CAAC;gCAC5D,CAAC;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM;YAEV,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjB,8BAA8B;gBAC9B,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAE3C,6CAA6C;gBAC7C,IAAI,CAAC;oBACD,MAAM,cAAc,GAAG,IAAA,uCAAqB,EAAC,gCAAW,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACL,qBAAqB;gBACzB,CAAC;gBAED,6EAA6E;gBAC7E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAElC,oEAAoE;gBACpE,KAAK,MAAM,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBAChF,OAAO,CAAC,GAAG,iBAAiB,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,CAAC;gBACnG,CAAC;gBAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBAClB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBACnC,IAAI,WAAW,GAA6D,EAG3E,CAAC;oBACF,IAAI,CAAC;wBACD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACzE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,WAAW,EAAE,CAAC;wBACd,IAAI,CAAC;4BACD,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CACxC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EACpD,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC9D,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAC1D,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;4BACF,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CACvC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAClD,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5D,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EACxD,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;wBACN,CAAC;wBAAC,OAAO,GAAY,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;wBACnE,CAAC;oBACL,CAAC;oBAED,MAAM,MAAM,GAA+E,EAAE,CAAC;oBAC9F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACJ,WAAiD,CAAC,CAAC,CAAC;wBACpD,WAAiD,CAAC,CAAC,CAAC,CAC5D,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACf,MAAM,SAAS,GACV,WAAwD,CAAC,GAAG,CAAC,KAAK,IAAI;4BACvE,CAAC,KAAK,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBAE5E,MAAM,CAAC,GAAG,CAAC,GAAG;4BACV,WAAW,EAAE,SAAS;4BACtB,UAAU,EAAE,SAAS;gCACjB,CAAC,CAAC,yBAAyB,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC;gCAClF,CAAC,CAAC,KAAK;4BACX,IAAI,EAAE,SAAS;gCACX,CAAC,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gCACrE,CAAC,CAAC,KAAK;yBACd,CAAC;oBACN,CAAC,CAAC,CAAC;oBAEH,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC7D,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBAEnC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC3E,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;oBAC1F,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBACpF,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBACxE,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;oBACvF,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBACjF,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CACjC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,gBAAgB,GAAG,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/E,MAAM,eAAe,GAAG,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;oBAE5E,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,YAAY,aAAa,iBAAiB,UAAU,eAAe,aAAa,aAAa,MAAM,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAClL,CAAC;oBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,WAAW,aAAa,gBAAgB,UAAU,cAAc,aAAa,YAAY,MAAM,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAC5K,CAAC;oBAEF,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;4BACI,WAAW,EAAE;gCACT,WAAW,EAAE,gBAAgB;gCAC7B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC7E,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE;6BAClC;4BACD,UAAU,EAAE;gCACR,WAAW,EAAE,eAAe;gCAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC3E,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE;6BACjC;yBACJ,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;oBACN,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChE,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,iDAAiD;gBACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAChC,MAAM;YACV,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBACxB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;wBACI,OAAO,EAAE,IAAA,wCAAyB,GAAE;wBACpC,GAAG,EAAH,eAAG;qBACN,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;gBACN,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,gCAAgC;gBAChC,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,IAAI,CAAC;wBACD,kBAAQ;6BACH,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;4BACtB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;4BAChE,UAAU,EAAE,GAAG;4BACf,IAAI,EAAE,IAAI;4BACV,QAAQ,EAAE,CAAC;4BACX,OAAO,EAAE,KAAK;4BACd,aAAa,EAAE,KAAK;4BACpB,WAAW,EAAE,IAAI;4BACjB,sBAAsB,EAAE,IAAI;4BAC5B,SAAS,EAAE,IAAI;4BACf,cAAc,EAAE,IAAI;4BACpB,WAAW,EAAE,OAAO;4BACpB,UAAU,EAAE,WAAW;yBAC1B,CAAC;6BACD,IAAI,CAAC,aAAa,CAAC,EAAE;4BAClB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gCACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAC9E,CAAC;iCAAM,CAAC;gCACJ,IAAI,CAAC,eAAe,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;4BAC9D,CAAC;wBACL,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,CAAC,EAAE;4BACP,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;4BAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACzF,CAAC,CAAC,CAAC;oBACX,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;wBAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACzF,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAQ;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAQ,EAAE,CAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1C,IACI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU;gBAChC,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,EACjE,CAAC;gBACC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;gBACrD,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAC3C,CAAC;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,GAAW,EAAE,CAAQ,EAAE,IAAa;QAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,IAAI,GAAG,CAAC;QACf,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACZ,SAAS;YACb,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC;gBACpD,MAAM;YACV,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACZ,SAAS;gBACb,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,EAAE,CAAC;oBACjE,MAAM;gBACV,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAEpG,+BAA+B;QAC/B,MAAM,OAAO,GAA+C,MAAM,IAAI,CAAC,qBAAqB,CACxF,kBAAkB,IAAI,CAAC,SAAS,EAAE,CACrC,CAAC;QACF,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAChD,CAAC;gBACD,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,GAAG;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;aACrB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAA,wCAAyB,GAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,mCAAmC;QAErF,8BAA8B;QAC9B,IAAI,CAAC;YACD,SAAS,GAAG;gBACR,iBAAiB,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC;aACjG,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACpD,mBAAmB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,GAAY,EAAE,CAAC,CAAC;YACjF,4DAA4D;YAC5D,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACxD,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;oBACtD,YAAY,EAAE,gBAAgB,CAAC,GAAY,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YACD,0EAA0E;YAC1E,SAAS,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,iEAAiE;QACjE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,qBAAS,CAClC,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,6GAA6G;QAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QACnD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,yBAAyB;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACpB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;wBAE/D,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACrB,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gCACtC,aAAa;gCACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,kCAAkC,CAAC,CAAC;gCAC5D,4EAA4E;gCAC5E,mGAAmG;gCACnG,+HAA+H;gCAC/H,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gCACpF,0EAA0E;gCAC1E,0EAA0E;gCAC1E,wCAAwC;gCACxC,oEAAoE;gCACpE,mFAAmF;gCACnF,MAAM,UAAU,GAAW,IAAA,kBAAU,EACjC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CACjE,CAAC;gCAEF,IAAI,QAA4B,CAAC;gCACjC,IAAI,YAAgC,CAAC;gCACrC,8EAA8E;gCAC9E,2EAA2E;gCAC3E,iCAAiC;gCACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oCACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oCACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oCACC,iCAAiC;oCACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oCAC/B,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;oCACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,kEAAkE,CAC/E,CAAC;gCACN,CAAC;qCAAM,CAAC;oCACJ,iFAAiF;oCACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCAC/C,IAAI,UAAyB,CAAC;oCAC9B,IAAI,CAAC;wCACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oCACpE,CAAC;oCAAC,OAAO,GAAY,EAAE,CAAC;wCACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wCAC9E,SAAS;oCACb,CAAC;oCAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW;yCAChC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC;yCACxC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAEhB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wCACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,oDAAoD,MAAM,EAAE,CACzE,CAAC;wCACN,CAAC;6CAAM,CAAC;4CACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,CAAC,CAAC;wCACnE,CAAC;wCACD,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;wCAC7B,mHAAmH;wCACnH,YAAY,GAAG,IAAA,6CAA2B,EAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;wCAE1E,MAAM,SAAS,GAIX;4CACA,UAAU;4CACV,QAAQ;yCACX,CAAC;wCACF,IAAI,YAAY,EAAE,CAAC;4CACf,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;wCAC1C,CAAC;wCAED,0GAA0G;wCAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD;wCACzF,KAAK,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE;4CACnC,MAAM,EAAE,SAAS;yCACpB,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,MAAM,EAAE,CAAC,CAAC;wCACxE,SAAS;oCACb,CAAC;gCACL,CAAC;gCACD,IAAI,CAAC,YAAY,IAAI,GAAG,QAAQ,IAAI,CAAC;gCACrC,gDAAgD;gCAChD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;oCACvB,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gCACnE,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,aAAa;gCACb,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gCACrC,IAAI,CAAC,YAAY,IAAI,GAAG,UAAU,IAAI,CAAC;gCAEvC,yDAAyD;gCACzD,0CAA0C;gCAC1C,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCAC/C,IAAI,UAAyB,CAAC;gCAC9B,IAAI,CAAC;oCACD,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gCACnE,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,0DAA0D,GAAY,EAAE,CACrF,CAAC;oCACF,SAAS;gCACb,CAAC;gCACD,gDAAgD;gCAChD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;oCACxD,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;gCAC9E,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,mBAAmB;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAmC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAChG,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAA,wCAAyB,GAAE,GAAG,eAAG,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAA,qBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,KAAK,IAAI,GAAG,IAAI,wBAAwB,EAAE,CAAC;oBACvC,GAAG,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,GAAG,CAAC,GAAG,eAAG,CAAC;oBAClC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACjF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;wBAC1F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,kCAAkC,CAAC,CAAC;wBACtF,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC;wBACrB,OAAO,EAAE,IAAI;wBACb,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;qBACnC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,0BAA0B,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpB,OAAO;gBACX,CAAC;gBACD,MAAM,+BAA+B,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC;gBAClF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,GAAG,CAAC,CAAC;gBAC9C,IAAI,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,uCAAuC,IAAI,CAAC,MAAM,CAAC,oBAAoB,iCAAiC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,sBAAsB,CACtL,CAAC;oBACF,4EAA4E;oBAC5E,oCAAoC;oBACpC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;wBACvD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,0CAA0C,IAAI,CAAC,MAAM,CAAC,oBAAoB,mEAAmE,CACrJ,CAAC;wBACF,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,UAAU,EAAE,mCAAmC,IAAI,CAAC,MAAM,CAAC,oBAAoB,2DAA2D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAC/L,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAEO,0BAA0B;QAC9B,4DAA4D;QAC5D,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,kDAAkD;YAC1D,iBAAiB,EAAE,kDAAkD;SACxE,CAAC;QACF,gFAAgF;QAChF,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC/F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;iBACtC,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;iBAC1C,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,yFAAyF;YACzF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;YACD,yGAAyG;YACzG,mFAAmF;YACnF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC7B,0DAA0D;gBAC1D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,SAAS;gBACb,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnD,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,IAAA,gCAAc,EAC3B,GAAG,EACH,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YAC1F,oEAAoE;YACpE,GAAG,KAAK,MAAM,CACjB,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,+EAA+E;gBAC/E,yBAAyB;gBACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,UAAU,GAAG;wBACT,CAAC,gBAAgB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACjE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,UAAU,GAAG;wBACT,CAAC,uBAAuB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACxE,CAAC;gBACN,CAAC;YACL,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YACzG,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrC,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;YACrD,mBAAmB,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,EAAU,EAAE,GAAuC;QACnE,IAAI,GAAG,EAAE,CAAC;YACN,+BAA+B;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEpC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,qCAAqC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACtD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAED,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,sBAAsB;YACtB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,mBAAmB;YACnB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACxC,sBAAsB;YACtB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAEvB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAErE,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC/B,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,EAAE,EAAE,CAAC;oBACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,4BAA4B,CACxB,EAAU,EACV,KAAwC;QAExC,IACI,KAAK;YACL,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAC7B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;YACxB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzF,CAAC;YACC,IAAI,CAAC;gBACD,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,wBAAwB,CAAC,EAAU,EAAE,KAA0B,EAAE,KAAc;QAC3E,gEAAgE;QAChE,MAAM,MAAM,GAAmB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAoB,CAAC;QAE5E,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,KAAoC;QAC/D,IAAI,MAAsB,CAAC;QAE3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,GAAG,KAAuB,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAoB,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,+CAA+C;QAC/C,mCAAmC;QACnC,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,IAAI;YACP,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC;QAE7G,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,0DAA0D;gBAC1D,MAAM,UAAU,GAAG,CAAC,IAAA,6BAAiB,EAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxE,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;oBACrC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAElC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAED,mBAAmB;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;aACjE,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtE,SAAS;gBACb,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClD,8BAA8B;oBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxD,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAE3F,oBAAoB;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEnD,kCAAkC;YAClC,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACjC,IAAA,mBAAW,EAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;YAChE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvB,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1C,CAAC;YAED,gCAAgC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC3B,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1D,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAA6B,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAA8B,CAAC,CAAC;YAE/E,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,wBAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,sDAAsD,CACrG,CAAC;YACN,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;YAClG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACrE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,yBAAyB,IAAI,CAAC,MAAM,CAAC,SAAS,sDAAsD,CACvG,CAAC;YACN,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;YAErE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC;YAEnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,OAAgB;QACjD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE9F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACrB,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,eAAe;iBACxB;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnE,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,sBAAsB,CAAC;gBAC/D,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC;gBACzD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE/F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG;gBACtB,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,iBAAiB;iBAC1B;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrE,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAoB;QAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;QAEnB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,sCAAsC;gBACtC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC,CAAC;gBACpD,CAAC;gBAEA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,EAAE,CAAC;YACJ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAE7B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAAU;QACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,CAAC;gBACb,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,SAAS,CAAC;YAEvB,iFAAiF;YACjF,wCAAwC;YACxC,MAAM,GAAG,GAAG,eAAe,MAAM,aAAa,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,SAAS,SAAS,WAAW,GAAG,EAAE,CAAC,CAAC;YAEtE,uDAAuD;YACvD,0IAA0I;YAC1I,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5C,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAErE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,CAAC,cAAc,EAAE,EAAE;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,oBAAoB;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAa,IAAI,CAAC,MAAM,CAAC,SAAS;aAC5C,KAAK,CAAC,SAAS,CAAC;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvG,IAAI,oBAAoB,GAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,wBAAwB,KAAK,UAAU,EAAE,CAAC;YACtD,oBAAoB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAE7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,GAAG,GAAG,CAAC;YAClB,IAAI,OAAO,GAAG,QAAQ,CAAC;YAEvB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;gBAClC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,qEAAqE;YACrE,IAAI,UAAU,GAAG,OAAO,CAAC;YAEzB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,UAAU,GAAG,MAAM,IAAA,8CAAsB,EAAC,OAAO,CAAC,CAAC;gBAEnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,WAAW,OAAO,GAAG,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;YACjF,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,uBAAuB;YACvB,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBAClE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;wBAEvE,MAAM,cAAc,GAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBACnE,IAAI,CAAC,IAA4B,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;oBAClF,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,MAAM,GAAY,EAAE,CAAC,CAAC;gBACnG,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,SAAS,iBAAiB,OAAO,eAAe,CAAC,EAAE,CAAC;gBAC1E,sBAAsB;gBACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,GAAG,GAAG,CAAC,CAAC;gBAEnE,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,GAAG,GAAG,CAAC,CAAC;gBAC1E,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,GAAG,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjG,CAAC;YACL,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACjD,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC;wBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;wBAEpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,mBAAmB,GAAG,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,mBAAmB,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAChG,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,SAAkB;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,oBAAoB,GACtB,4GAA4G;gBAC5G,4EAA4E;gBAC5E,iGAAiG;gBACjG,oFAAoF;gBACpF,6GAA6G,CAAC;YAElH,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACJ,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClC,6EAA6E;oBAC7E,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB;oBACvD,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,gBAAgB,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBAClD,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,4BAA4B,MAAM,SAAS,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,YAAY,MAAM,EAAE,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,OAAO,GAAkB;gBAC3B,QAAQ,EAAE,IAAI;gBACd,uBAAuB;gBACvB,qCAAqC;aACxC,CAAC;YACF,OAAO;gBACH,MAAM,EAAE,IAAI,gBAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aAC1B,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAY,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAgB,EAAE,IAAY,EAAE,UAAsB,EAAE,OAAgB,EAAE,KAAc;QAC5F,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;QAC3B,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;YAC7E,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAA,iBAAO,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,IAAI;gBACnB,qCAAqC;aACxC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC7E,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,CAAC,EAAE,SAAS;aACf,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,GAAY,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,WAAW,CAAC,EAA8B;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,0DAA0D;YAC1D,OAAO;QACX,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAC1C,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,sBAAsB;QAClB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,sEAAsE;QACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;QAE1C,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/F,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAErE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,6BAA6B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YAAC,MAAM,CAAC;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,sCAAsC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,4BAA4B;YAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxB,2BAA2B;gBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACpD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjE,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;4BACnC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;4BAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;4BACnC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gCAClB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BAC3B,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;wBAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IACI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACjE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EACtC,CAAC;wBACC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBAChC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC3E,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACpC,KAAK,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;wBAC5C,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,GAAG,EAAE,CAAC;wBACN,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC;YACL,CAAC;YAED,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,qBAAqB;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,0BAA0B;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,uCAAuC,KAAK,GAAG,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjE,CAAC;gBACL,CAAC;YACL,CAAC;YAED,0BAA0B;YAC1B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa;oBAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;gBAEhF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBACxB,IAAI,OAAO,GAA0B,UAAU,CAAC,GAAG,EAAE;wBACjD,IAAI,OAAO,EAAE,CAAC;4BACV,OAAO,GAAG,IAAI,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;oBACL,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;oBAErC,IAAI,CAAC;wBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;4BAC7B,IAAI,OAAO,EAAE,CAAC;gCACV,YAAY,CAAC,OAAO,CAAC,CAAC;gCACtB,OAAO,GAAG,IAAI,CAAC;gCACf,OAAO,CAAC,IAAI,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,+BAA+B,GAAY,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAA0B;QAC1C,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;YACjE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;YACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,yDAAyD,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,IACI,GAAG,EAAE,MAAM,EAAE,MAAM;YACnB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC;YAC1D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAC1D,CAAC;YACC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;YAErB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,kBAAkB,IAAI,eAAe,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,iBAAiB,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAC7D,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,EAC/B,IAAI,EACJ,IAAI,CACP,CAAC;YACN,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAEpD,IACK,GAAG,CAAC,MAAM,CAAC,UAAyB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC3E,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,SAAS;gBAClD,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,OAAO,EACnD,CAAC;gBACC,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;gBAEtE,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACjE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,QAAQ,EACR,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/D,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;gBACtD,0EAA0E;gBAC1E,0DAA0D;gBAC1D,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACrF,oEAAoE;gBACpE,mFAAmF;gBACnF,MAAM,UAAU,GAAG,IAAA,kBAAU,EAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAAC;gBAE9F,IAAI,QAAgB,CAAC;gBACrB,8EAA8E;gBAC9E,2EAA2E;gBAC3E,iCAAiC;gBACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oBACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oBACC,iCAAiC;oBACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,kEAAkE,CAAC,CAAC;gBAC7F,CAAC;qBAAM,CAAC;oBACJ,iFAAiF;oBACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,UAAyB,CAAC;oBAC9B,IAAI,CAAC;wBACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oBACpE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wBAC9E,OAAO,KAAK,CAAC;oBACjB,CAAC;oBAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE1F,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,yCAAyC,MAAM,EAAE,CAAC,CAAC;wBAC5E,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;wBAChE,CAAC;wBACD,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;wBAEnC,0GAA0G;wBAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,mDAAmD;wBACtF,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;4BACtC,MAAM,EAAE;gCACJ,UAAU;gCACV,QAAQ;6BACX;yBACJ,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,qCAAqC,MAAM,EAAE,CAAC,CAAC;wBACrE,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;gBACD,MAAM,aAAa,GAAqB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,EACJ,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,0BAA0B,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;YAChB,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEhE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,KAAK,eAAe,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC3B,IAAI,GAA6C,CAAC;QAClD,IAAI,CAAC;YACD,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAA6C,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAmC;QAChD,4BAA4B;QAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CACT,IAAU,EACV,UAA0B,EAC1B,KAAa,EACb,GAAW,EACX,aAA8B,EAC9B,QAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,UAAoB;QAEpB,IAAI,EAAE,GAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;QAEjF,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;YAC3C,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5F,CAAC;QACD,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzF,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE9D,IACI,EAAE,CAAC,QAAQ,EAAE,GAAG,eAAe;YAC/B,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,eAAe,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,EAC5E,CAAC;YACC,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACzC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,aAAa,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,aAAa,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;YAC1G,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACvC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YAC1B,oBAAoB;YACpB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;gBACb,KAAK,IAAI,EAAE,CAAC;YAChB,CAAC;QACL,CAAC;QACD,IAAI,MAAc,CAAC;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;YACrC,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACvD,GAAG,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,yBAAyB;QACzB,IACI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,QAA8B,KAAK,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,SAA+B,KAAK,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,EAChC,CAAC;YACC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACxE,OAAO;QACX,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACnC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QAEF,UAAU;QACV,IAAI,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAChE,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;YACjD,cAAc,GAAG,OAAO,CAAC;QAC7B,CAAC;QAED,SAAS;QACT,IAAI,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;YAC/C,aAAa,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAAsC,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACrG,IAAI,KAAc,CAAC;QACnB,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC;YAC9B,KAAK,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,sBAAsB;YACtB,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,OAAO,IAAI,WAAW,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,cAAc,GAChB,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1D,IAAI,GAAG,KAAK,gBAAgB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,WAAW,GAAG,cAAc,CAAC;QACjC,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACjC,WAAW,GAAG,aAAa,CAAC;QAChC,CAAC;QACD,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;YACrB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAuB,CAAC;QAC5B,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAAQ,GAAG,GAAG,SAAS,2DAA2D,CAAC;QACvF,IAAI,YAAY,GAAG,GAAG,SAAS,+BAA+B,CAAC;QAC/D,IAAI,CAAC;YACD,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,YAAY,GAAG,GAAG,SAAS,4BAA4B,CAAC;gBACxD,QAAQ,GAAG,GAAG,SAAS,wDAAwD,CAAC;gBAChF,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACpC,kBAAkB,EAClB,iDAAiD,CACpD,CAAC;YACF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,OAAO,CAAC,IAAc,CAAC;YACpC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,SAAS;QACb,CAAC;QAED,IAAI,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,MAAM,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAExF,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,IAA6B,CAAC;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC3D,IAAI,IAAI,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;wBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;wBACxD,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBACxD,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAA,uBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,mBAAmB;gBACnB,MAAM,IAAI,CAAC,cAAc,CACrB,kBAAkB,EAClB,iDAAiD,EACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAY,EAAE,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;gBAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEhG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAErE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC;wBAErC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;4BACtC,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE;gCACJ,IAAI,EAAE,SAAS,CAAC,EAAE;gCAClB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,KAAK;6BACf;4BACD,MAAM,EAAE,EAAE;yBACb,CAAC,CAAC;wBAEH,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;4BAClD,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gCACvB,GAAG,EAAE,aAAa;gCAClB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gCACzB,GAAG,EAAE,IAAI;6BACZ,CAAC,CAAC;wBACP,CAAC;6BAAM,CAAC;4BACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,0DAA0D,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,GAAY,EAAE,CAC1G,CAAC;oBACN,CAAC;gBACL,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACxG,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,kCAAkC;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,GAAG,CAAC,OAAe,EAAE,QAA4B,EAAQ,EAAE;QAC5D,qEAAqE;QACrE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,kCAAkC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO;YACX,CAAC;YACD,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,CAAC;IAEF,cAAc,CAAC,MAA2B;QACtC,IAAI,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;gBACjC,KAAK,EAAE,UAAU,EAAU;oBACvB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,kCAAkC,CAAC,QAAgB,EAAE,YAAoB;QACrE,gEAAgE;QAChE,uEAAuE;QACvE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC7E,CAAC;QACD,+DAA+D;QAC/D,IAAI,CAAC,kBAAkB,IAAI,GAAG,YAAY,IAAI,CAAC;QAC/C,yDAAyD;QACzD,6CAA6C;QAC7C,MAAM,qBAAqB,GAAG,aAAa,CAAC;QAC5C,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3D,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACrC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;QACH,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAC7F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAEnC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAsB;QAC3C,IAAI,EAAE,EAAE,CAAC;YACL,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,OAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,yDAAyD,CACzF,CACJ,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,+CAA+C,CAAC,CAAC;YAC7F,KAAK,IAAI,CAAC,QAAQ,CACd,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,6CAA6C,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC7F,IAAI,CACP,CAAC;QACN,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAuE;QAC9E,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,kCAAkC;QAClC,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,EAAE;YACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEjD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACjD,MAAM,OAAO,GAAgB;oBACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;oBAC9C,wCAAwC;iBAC3C,CAAC;gBACF,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAA,yBAAI,EAAC,GAAG,SAAS,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE3E;;;iEAGiD;gBAEjD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CACrB,SAAS,EACT,CACI,OAQO,EACT,EAAE;oBACA,IAAI,QAMH,CAAC;oBACF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnC,CAAC;wBAAC,MAAM,CAAC;4BACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;wBAC7E,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,QAAQ,GAAG,OAAO,CAAC;oBACvB,CAAC;oBAED,IAAI,QAAQ,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBAC3B,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;oBACrE,CAAC;oBAED,QAAQ,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACnB,KAAK,OAAO,CAAC,CAAC,CAAC;4BACX,IAAI,CAAC,oBAAoB,CAAC;gCACtB,GAAG,EAAE,OAAO;gCACZ,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;gCACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gCAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;6BAC1B,CAAC,CAAC;4BACH,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,sDAAsD;4BACtD,MAAM;wBACV,CAAC;wBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;4BACZ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;4BAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;4BAC5B,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;4BAC/B,yBAAyB;4BACzB,MAAM;wBACV,CAAC;wBAED,KAAK,KAAK,CAAC,CAAC,CAAC;4BACT,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;4BACvD,MAAM;wBACV,CAAC;wBAED,KAAK,cAAc,CAAC,CAAC,CAAC;4BAClB,OAAO,CAAC,GAAG,CACP,0CAA0C,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CACpF,CAAC;4BACF,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC,CACJ,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;oBACnD,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAiB,EAAE;oBACpE,IAAI,IAAI,EAAE,CAAC;wBACP,MAAM,IAAI,CAAC,QAAQ,CACf,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EACzE,IAAI,CACP,CAAC;oBACN,CAAC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvF,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACX,CAAC;CACJ;AAED,SAAS,eAAe,CACpB,KAAe,EACf,gBAA0E;IAE1E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1D,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,gBAAgB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,oEAAoE;AACpE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC1B,yCAAyC;IACzC,MAAM,CAAC,OAAO,GAAG,CAAC,OAA4C,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/F,CAAC;KAAM,CAAC;IACJ,wCAAwC;IACxC,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["/*\n * Javascript adapter\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014-2024 bluefox ,\n *\n * Copyright (c) 2014 hobbyquaker\n */\n\nimport { Script, type ScriptOptions } from 'node:vm';\nimport { readFileSync, existsSync, statSync, writeFileSync, type Stats } from 'node:fs';\nimport { join, sep, normalize } from 'node:path';\nimport { fork, type ForkOptions } from 'node:child_process';\nimport { setTypeScriptResolveOptions, Server } from 'virtual-tsc';\nimport { isDeepStrictEqual } from 'node:util';\nimport prettier from 'prettier';\n\nimport * as dgram from 'node:dgram';\nimport * as crypto from 'node:crypto';\nimport * as dns from 'node:dns';\nimport * as events from 'node:events';\nimport * as http from 'node:http';\nimport * as https from 'node:https';\nimport * as http2 from 'node:http2';\nimport * as net from 'node:net';\nimport * as os from 'node:os';\nimport * as path from 'node:path';\nimport * as util from 'node:util';\nimport * as child_process from 'node:child_process';\nimport * as stream from 'node:stream';\nimport * as zlib from 'node:zlib';\n\n// @ts-expect-error no types available\nimport * as suncalc from 'suncalc2';\nimport * as axios from 'axios';\n// @ts-expect-error no types available\nimport * as wake_on_lan from 'wake_on_lan';\nimport * as nodeSchedule from 'node-schedule';\n\nimport { getAbsoluteDefaultDataDir, Adapter, EXIT_CODES, type AdapterOptions } from '@iobroker/adapter-core';\nimport type SentryPlugin from '@iobroker/plugin-sentry';\nimport type { GetTimesResult } from 'suncalc';\nimport type { CompileResult } from 'virtual-tsc/build/util';\n\nimport { Mirror } from './lib/mirror';\nimport ProtectFs from './lib/protectFs';\nimport { setLanguage, getLanguage } from './lib/words';\nimport { sandBox } from './lib/sandbox';\nimport { requestModuleNameByUrl } from './lib/nodeModulesManagement';\nimport { createEventObject, type EventObj } from './lib/eventObj';\nimport { type AstroEventName, Scheduler } from './lib/scheduler';\nimport { targetTsLib, tsCompilerOptions, jsDeclarationCompilerOptions } from './lib/typescriptSettings';\nimport { hashSource } from './lib/tools';\nimport {\n resolveTypescriptLibs,\n resolveTypings,\n scriptIdToTSFilename,\n transformScriptBeforeCompilation,\n transformGlobalDeclarations,\n} from './lib/typescriptTools';\nimport type {\n FileSubscriptionResult,\n JavascriptContext,\n JavaScriptAdapterConfig,\n JsScript,\n ScriptType,\n SubscriptionResult,\n SubscribeObject,\n JavascriptTimer,\n SandboxType,\n LogMessage,\n DebugState,\n} from './types';\nimport type { PatternEventCompareFunction } from './lib/patternCompareFunctions';\n\ntype MODULES = {\n fs: ProtectFs;\n 'fs/promises': ProtectFs['promises'];\n dgram: typeof dgram;\n crypto: typeof crypto;\n dns: typeof dns;\n events: typeof events;\n http: typeof http;\n https: typeof https;\n http2: typeof http2;\n net: typeof net;\n os: typeof os;\n path: typeof path;\n util: typeof util;\n child_process: typeof child_process;\n stream: typeof stream;\n zlib: typeof zlib;\n suncalc: typeof suncalc;\n axios: typeof axios;\n wake_on_lan: typeof wake_on_lan;\n nodeSchedule: typeof nodeSchedule;\n};\n\n/**\n * List of forbidden Locations for a mirror directory\n * relative to the default data directory\n * ATTENTION: the same list is also located in index_m.html!!\n */\nconst forbiddenMirrorLocations: string[] = [\n 'backup-objects',\n 'files',\n 'backitup',\n '../backups',\n '../node_modules',\n '../log',\n];\n\nconst packageJson: Record = JSON.parse(readFileSync(`${__dirname}/../package.json`).toString());\nconst SCRIPT_CODE_MARKER = 'script.js.';\n\nlet webstormDebug: string | undefined;\n\nconst isCI = !!process.env.CI;\n\n// ambient declarations for typescript\nlet tsAmbient: Record;\n\n// TypeScript's scripts are only recompiled if their source hash changes.\n// If an adapter update fixes the compilation bugs, a user won't notice until the changes and re-saves the script.\n// To avoid that, we also include the\n// adapter version and TypeScript version in the hash\nconst tsSourceHashBase = `versions:adapter=${packageJson.version},typescript=${packageJson.dependencies.typescript}`;\n\n// taken from here: https://stackoverflow.com/questions/11887934/how-to-check-if-dst-daylight-saving-time-is-in-effect-and-if-so-the-offset\nfunction dstOffsetAtDate(dateInput: Date): number {\n const fullYear: number = dateInput.getFullYear() | 0;\n // \"Leap Years are any year that can be exactly divided by 4 (2012, 2016, etc.)\n // except if it can be exactly divided by 100, then it isn't (2100, 2200, etc.)\n // except if it can be exactly divided by 400, then it is (2000, 2400)\"\n // (https://www.mathsisfun.com/leap-years.html).\n const isLeapYear: 1 | 0 = ((fullYear & 3) | ((fullYear / 100) & 3)) === 0 ? 1 : 0;\n // (fullYear & 3) = (fullYear % 4), but faster\n //Alternative:var isLeapYear=(new Date(currentYear,1,29,12)).getDate()===29?1:0\n const fullMonth: number = dateInput.getMonth() | 0;\n return (\n // 1. We know what the time since the Epoch really is\n +dateInput - // same as the dateInput.getTime() method\n // 2. We know what the time since the Epoch at the start of the year is\n +new Date(fullYear, 0) - // day defaults to 1 if not explicitly zeroed\n // 3. Now, subtract what we would expect the time to be if daylight savings\n // did not exist. This yields the time-offset due to daylight savings.\n // Calculate the day of the year in the Gregorian calendar\n // The code below works based upon the facts of signed right shifts\n // • (x) >> n: shifts n and fills in the n highest bits with 0s\n // • (-x) >> n: shifts n and fills in the n highest bits with 1s\n // (This assumes that x is a positive integer)\n ((((-1 + // the first day in the year is day 1\n (31 & (-fullMonth >> 4)) + // January // (-11)>>4 = -1\n ((28 + isLeapYear) & ((1 - fullMonth) >> 4)) + // February\n (31 & ((2 - fullMonth) >> 4)) + // March\n (30 & ((3 - fullMonth) >> 4)) + // April\n (31 & ((4 - fullMonth) >> 4)) + // May\n (30 & ((5 - fullMonth) >> 4)) + // June\n (31 & ((6 - fullMonth) >> 4)) + // July\n (31 & ((7 - fullMonth) >> 4)) + // August\n (30 & ((8 - fullMonth) >> 4)) + // September\n (31 & ((9 - fullMonth) >> 4)) + // October\n (30 & ((10 - fullMonth) >> 4)) + // November\n // There are no months past December: the year rolls into the next.\n // Thus, \"fullMonth\" is 0-based, so it will never be 12 in JavaScript\n\n (dateInput.getDate() | 0)) & // get day of the month\n 0xffff) *\n 24 *\n 60 + // 24 hours in a day, 60 minutes in an hour\n (dateInput.getHours() & 0xff) * 60 + // 60 minutes in an hour\n (dateInput.getMinutes() & 0xff)) |\n 0) *\n 60 *\n 1000 - // 60 seconds in a minute * 1000 milliseconds in a second\n (dateInput.getSeconds() & 0xff) * 1000 - // 1000 milliseconds in a second\n dateInput.getMilliseconds()\n );\n}\n\nconst regExGlobalOld = /_global$/;\nconst regExGlobalNew = /script\\.js\\.global\\./;\n\nfunction checkIsGlobal(obj: ioBroker.ScriptObject): boolean {\n return obj?.common && (regExGlobalOld.test(obj.common.name) || regExGlobalNew.test(obj._id));\n}\n\nfunction fileMatching(sub: FileSubscriptionResult, id: string, fileName: string): boolean {\n if (sub.idRegEx) {\n if (!sub.idRegEx.test(id)) {\n return false;\n }\n } else {\n if (sub.id !== id) {\n return false;\n }\n }\n if (sub.fileRegEx) {\n if (!sub.fileRegEx.test(fileName)) {\n return false;\n }\n } else {\n if (sub.fileNamePattern !== fileName) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getNextTimeEvent(time: string, useNextDay?: boolean): Date {\n const now: Date = getAstroStartOfDay();\n const [timeHours, timeMinutes] = time.split(':');\n const nTimeHours = parseInt(timeHours, 10);\n const nTimeMinutes = parseInt(timeMinutes, 10);\n if (\n useNextDay &&\n (now.getHours() > nTimeHours || (now.getHours() === nTimeHours && now.getMinutes() > nTimeMinutes))\n ) {\n now.setDate(now.getDate() + 1);\n }\n\n now.setHours(nTimeHours);\n now.setMinutes(nTimeMinutes);\n\n return now;\n}\n\nfunction getAstroStartOfDay(): Date {\n const d = new Date();\n d.setMinutes(0);\n d.setSeconds(0);\n d.setMilliseconds(0);\n d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n d.setUTCHours(0);\n\n return d;\n}\n\nfunction formatHoursMinutesSeconds(date: Date): string {\n const h = String(date.getHours());\n const m = String(date.getMinutes());\n const s = String(date.getSeconds());\n\n return `${h.padStart(2, '0')}:${m.padStart(2, '0')}:${s.padStart(2, '0')}`;\n}\n\n// Due to a npm bug, virtual-tsc may be hoisted to the top level node_modules but\n// TypeScript may still be in the adapter level (https://npm.community/t/packages-with-peerdependencies-are-incorrectly-hoisted/4794),\n// so we need to tell virtual-tsc where TypeScript is\nsetTypeScriptResolveOptions({\n paths: [require.resolve('typescript')],\n});\n\n// compiler instance for global JS declarations\nconst jsDeclarationServer: Server = new Server(jsDeclarationCompilerOptions, isCI ? false : undefined);\n/**\n * Stores the IDs of script objects whose change should be ignored because\n * the compiled source was just updated\n */\n\nclass JavaScript extends Adapter {\n declare public config: JavaScriptAdapterConfig;\n\n private readonly context: JavascriptContext;\n\n private errorLogFunction: {\n error: (msg: string) => void;\n warn: (msg: string) => void;\n info: (msg: string) => void;\n debug: (msg: string) => void;\n silly: (msg: string) => void;\n } = {\n error: (msg: string) => console.error(msg),\n warn: (msg: string) => console.warn(msg),\n info: (msg: string) => console.log(msg),\n debug: (msg: string) => console.debug(msg),\n silly: (msg: string) => console.debug(msg),\n };\n\n private readonly mods: MODULES;\n\n private objectsInitDone = false;\n private statesInitDone = false;\n\n private objects: Record = {};\n private states: Record = {};\n private readonly interimStateValues: Record = {};\n private readonly stateIds: string[] = [];\n private readonly subscriptions: SubscriptionResult[] = [];\n private readonly subscriptionsFile: FileSubscriptionResult[] = [];\n private readonly subscriptionsObject: SubscribeObject[] = [];\n private readonly subscribedPatterns: Record = {};\n private readonly subscribedPatternsFile: Record = {};\n private readonly adapterSubs: Record = {};\n private readonly timers: { [scriptName: string]: JavascriptTimer[] } = {};\n private readonly _enums: string[] = [];\n private readonly names: { [name: string]: string | string[] } = {}; // name: id\n private readonly scripts: Record = {};\n private readonly messageBusHandlers: Record<\n string,\n Record void }[]>\n > = {};\n private readonly logSubscriptions: Record<\n string,\n {\n sandbox: SandboxType;\n cb: (info: LogMessage) => void;\n id: number;\n severity: ioBroker.LogLevel | '*';\n }[]\n > = {};\n private readonly tempDirectories: { [scriptName: string]: string } = {}; // name: path\n private readonly folderCreationVerifiedObjects: Record = {};\n\n /** if logs are subscribed or not */\n private logSubscribed = false;\n\n private timeSettings: {\n format12: boolean;\n leadingZeros: boolean;\n } = { format12: false, leadingZeros: true };\n\n private dayScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n private sunScheduleTimer: NodeJS.Timeout | null = null; // schedule for sun moment times\n private timeScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n\n private activeStr = ''; // enabled state prefix\n\n private mirror: Mirror | undefined;\n\n private stopCounters: Record = {};\n\n private setStateCountCheckInterval: NodeJS.Timeout | null = null;\n\n private globalScript = '';\n /** Generated declarations for global TypeScripts */\n private globalDeclarations = '';\n // Remember which definitions the global scripts\n // have access to, because it depends on the compilation order\n private knownGlobalDeclarationsByScript: Record = {};\n private globalScriptLines = 0;\n // compiler instance for typescript\n private tsServer: Server;\n\n private readonly ignoreObjectChange: Set = new Set();\n\n private debugState: DebugState = {\n scriptName: '',\n child: null,\n promiseOnEnd: null,\n paused: false,\n started: 0,\n running: false,\n };\n\n constructor(options: Partial = {}) {\n options = {\n ...options,\n name: 'javascript', // adapter name\n useFormatDate: true,\n /**\n * If the JS-Controller catches an unhandled error, this will be called\n * so we have a chance to handle it ourselves.\n */\n error: (err: Error): boolean => {\n // Identify unhandled errors originating from callbacks in scripts\n // These are not caught by wrapping the execution code in try-catch\n if (err && typeof err.stack === 'string') {\n const scriptCodeMarkerIndex = err.stack.indexOf(SCRIPT_CODE_MARKER);\n if (scriptCodeMarkerIndex > -1) {\n // This is a script error\n let scriptName = err.stack.substring(scriptCodeMarkerIndex);\n scriptName = scriptName.substring(0, scriptName.indexOf(':'));\n this.logError(scriptName, 'Error:', err);\n\n // Leave the script running for now\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n // check if a path contains adaptername but not own node_module\n // this regex matched \"iobroker.javascript/\" if NOT followed by \"node_modules\"\n if (!err.stack.match(/iobroker\\.javascript[/\\\\](?!.*node_modules).*/g)) {\n // This is an error without any info on origin (mostly async errors like connection errors)\n // also consider it as being from a script\n this.log.error(\n 'An error happened which is most likely from one of your scripts, but the originating script could not be detected.',\n );\n this.log.error(`Error: ${err.message}`);\n this.log.error(err.stack);\n\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n }\n\n return false;\n },\n };\n\n super(options as AdapterOptions);\n\n this.on('objectChange', this.onObjectChange.bind(this));\n this.on('stateChange', this.onStateChange.bind(this));\n this.on('ready', this.onReady.bind(this));\n this.on('message', this.onMessage.bind(this));\n this.on('unload', this.onUnload.bind(this));\n this.on('fileChange', this.onFileChange.bind(this));\n this.on('log', this.onLog.bind(this));\n\n this.mods = {\n fs: {} as ProtectFs,\n 'fs/promises': {} as ProtectFs['promises'],\n dgram,\n crypto,\n dns,\n events,\n http,\n https,\n http2,\n net,\n os,\n path,\n util,\n child_process,\n stream,\n zlib,\n\n suncalc,\n axios,\n wake_on_lan,\n nodeSchedule,\n };\n\n // check the webstorm debug and just debug modes\n let debugMode: string | undefined;\n if (process.argv) {\n for (let a = 1; a < process.argv.length; a++) {\n if (process.argv[a].startsWith('--webstorm')) {\n webstormDebug = process.argv[a].replace(/^(.*?=\\s*)/, '');\n }\n if (process.argv[a] === '--debugScript') {\n if (!process.argv[a + 1]) {\n console.log('No script name provided');\n process.exit(300);\n } else {\n debugMode = process.argv[a + 1];\n }\n }\n }\n }\n\n this.context = {\n mods: this.mods,\n objects: this.objects,\n states: this.states,\n interimStateValues: this.interimStateValues,\n stateIds: this.stateIds,\n errorLogFunction: this.errorLogFunction,\n subscriptions: this.subscriptions,\n subscriptionsFile: this.subscriptionsFile,\n subscriptionsObject: this.subscriptionsObject,\n subscribedPatterns: this.subscribedPatterns,\n subscribedPatternsFile: this.subscribedPatternsFile,\n adapterSubs: this.adapterSubs,\n cacheObjectEnums: {},\n timers: this.timers,\n enums: this._enums,\n names: this.names,\n scripts: this.scripts,\n messageBusHandlers: this.messageBusHandlers,\n logSubscriptions: this.logSubscriptions,\n tempDirectories: this.tempDirectories,\n folderCreationVerifiedObjects: this.folderCreationVerifiedObjects,\n\n isEnums: false, // If some subscription wants enum\n channels: null,\n devices: null,\n logWithLineInfo: this.logWithLineInfo.bind(this),\n scheduler: null,\n timerId: 0,\n rulesOpened: null, // opened rules\n language: this.language || 'en',\n\n updateLogSubscriptions: this.updateLogSubscriptions.bind(this),\n convertBackStringifiedValues: this.convertBackStringifiedValues.bind(this),\n updateObjectContext: this.updateObjectContext.bind(this),\n prepareStateObject: this.prepareStateObject.bind(this),\n debugMode,\n getAbsoluteDefaultDataDir,\n adapter: this as unknown as ioBroker.Adapter,\n logError: this.logError.bind(this),\n };\n\n this.tsServer = new Server(tsCompilerOptions, this.tsLog);\n }\n\n async onObjectChange(id: string, obj?: ioBroker.Object | null): Promise {\n // Check if we should ignore this change (once!) because we just updated the compiled sources\n if (this.ignoreObjectChange.has(id)) {\n // Update the cached script object and do nothing more\n this.objects[id] = obj as ioBroker.Object;\n this.ignoreObjectChange.delete(id);\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.objectsInitDone) {\n if (obj) {\n this.objects[id] = obj;\n }\n return;\n }\n\n if (id.startsWith('enum.')) {\n // clear cache\n this.context.cacheObjectEnums = {};\n\n // update this._enums array\n if (obj) {\n // If new\n if (!this._enums.includes(id)) {\n this._enums.push(id);\n this._enums.sort();\n }\n } else {\n const pos = this._enums.indexOf(id);\n // if deleted\n if (pos !== -1) {\n this._enums.splice(pos, 1);\n }\n }\n }\n\n if (id === 'system.config' && obj?.common?.language) {\n // set language for debug messages\n setLanguage(obj.common.language);\n this.language = obj.common.language;\n this.context.language = this.language as ioBroker.Languages;\n }\n\n // update stored time format for variables.dayTime\n if (id === `${this.namespace}.variables.dayTime` && obj?.native) {\n this.timeSettings.format12 = obj.native.format12 || false;\n this.timeSettings.leadingZeros = obj.native.leadingZeros === undefined ? true : obj.native.leadingZeros;\n }\n\n // send changes to disk mirror\n this.mirror?.onObjectChange(id, obj as ioBroker.ScriptObject | null);\n\n const formerObj = this.objects[id];\n\n this.updateObjectContext(id, obj); // Update all Meta object data\n\n // for the alias object changes on the state objects, we need to manually update the\n // state cache value, because the new value is only published on the next change\n if (obj?.type === 'state' && id.startsWith('alias.0.')) {\n // execute async for speed\n this.getForeignStateAsync(id)\n .then(state => {\n if (state) {\n this.states[id] = state;\n } else if (this.states[id] !== undefined) {\n delete this.states[id];\n }\n })\n .catch(() => {\n /* ignore */\n });\n }\n\n this.subscriptionsObject.forEach(sub => {\n // ToDo: implement comparing with id.0.* too\n if (sub.pattern === id) {\n try {\n sub.callback(id, obj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n });\n\n // handle Script object updates\n if (!obj && formerObj?.type === 'script') {\n // Object Deleted just now\n if (checkIsGlobal(formerObj)) {\n // it was a global Script, and it was enabled and is now deleted => restart adapter\n if (formerObj.common.enabled) {\n this.log.info(`Active global Script ${id} deleted. Restart instance.`);\n this.restart();\n }\n } else if (formerObj.common?.engine === `system.adapter.${this.namespace}`) {\n // It was a non-global Script and deleted => stop and remove it\n await this.stopScript(id);\n\n // delete scriptEnabled.blabla variable\n const idActive = `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idActive);\n await this.delObjectAsync(idActive);\n\n // delete scriptProblem.blabla variable\n const idProblem = `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idProblem);\n await this.delObjectAsync(idProblem);\n }\n } else if (!formerObj && obj?.type === 'script') {\n // New script that does not exist before\n if (checkIsGlobal(obj)) {\n // new global script added => restart adapter\n if (obj.common.enabled) {\n this.log.info(`Active global Script ${id} created. Restart instance.`);\n this.restart();\n }\n } else if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // new non-global script - create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n if (obj.common.enabled) {\n // if enabled => Start script\n await this.loadScriptById(id);\n }\n }\n } else if (obj?.type === 'script' && formerObj?.common) {\n // Script changed ...\n if (checkIsGlobal(obj)) {\n if (obj.common.enabled || formerObj.common.enabled) {\n this.log.info(`Global Script ${id} updated. Restart instance.`);\n this.restart();\n }\n } else {\n // No global script\n if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n }\n\n if (\n (formerObj.common.enabled && !obj.common.enabled) ||\n (formerObj.common.engine === `system.adapter.${this.namespace}` &&\n obj.common.engine !== `system.adapter.${this.namespace}`)\n ) {\n // Script disabled\n if (formerObj.common.enabled && formerObj.common.engine === `system.adapter.${this.namespace}`) {\n // Remove it from executing\n await this.stopScript(id);\n }\n } else if (\n (!formerObj.common.enabled && obj.common.enabled) ||\n (formerObj.common.engine !== `system.adapter.${this.namespace}` &&\n obj.common.engine === `system.adapter.${this.namespace}`)\n ) {\n // Script enabled\n\n if (obj.common.enabled && obj.common.engine === `system.adapter.${this.namespace}`) {\n // Start script\n await this.loadScriptById(id);\n }\n } else {\n // if (obj.common.source !== formerObj.common.source) {\n // Source changed => restart the script\n this.stopCounters[id] = this.stopCounters[id] ? this.stopCounters[id] + 1 : 1;\n void this.stopScript(id).then(() => {\n // only start again after stop when \"last\" object change to prevent problems on\n // multiple changes in fast frequency\n if (!--this.stopCounters[id]) {\n void this.loadScriptById(id);\n }\n });\n }\n }\n }\n }\n\n onStateChange(id: string, state?: ioBroker.State | null): void {\n if (this.interimStateValues[id] !== undefined) {\n // any update invalidates the remembered interim value\n delete this.interimStateValues[id];\n }\n if (!id || id.startsWith('messagebox.') || id.startsWith('log.')) {\n return;\n }\n\n if (id === `${this.namespace}.debug.to` && state && !state.ack) {\n if (!this.context.debugMode) {\n this.debugSendToInspector(state.val);\n }\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.statesInitDone) {\n if (state) {\n this.states[id] = state;\n }\n return;\n }\n\n const oldState: ioBroker.State | null | undefined = this.states[id];\n if (state) {\n if (oldState) {\n // enable or disable script\n if (!state.ack && id.startsWith(this.activeStr) && this.objects[id]?.native?.script) {\n void this.extendForeignObject(this.objects[id].native.script, {\n common: { enabled: state.val },\n });\n }\n\n // monitor if adapter is alive and send all subscriptions once more, after adapter goes online\n if (/*oldState && */ oldState.val === false && state.val && id.endsWith('.alive')) {\n if (this.adapterSubs[id]) {\n const parts = id.split('.');\n const a = `${parts[2]}.${parts[3]}`;\n for (let t = 0; t < this.adapterSubs[id].length; t++) {\n this.log.info(`Detected coming adapter \"${a}\". Send subscribe: ${this.adapterSubs[id][t]}`);\n this.sendTo(a, 'subscribe', this.adapterSubs[id][t]);\n }\n }\n }\n } else if (/*!oldState && */ !this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n this.states[id] = state;\n } else {\n if (oldState) {\n delete this.states[id];\n }\n state = {} as ioBroker.State;\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n }\n const _eventObj = createEventObject(\n this.context,\n id,\n this.convertBackStringifiedValues(id, state),\n this.convertBackStringifiedValues(id, oldState),\n );\n\n // if this state matches any subscriptions\n for (let i = 0, l = this.subscriptions.length; i < l; i++) {\n const sub = this.subscriptions[i];\n if (sub?.patternCompareFunctions && patternMatching(_eventObj, sub.patternCompareFunctions)) {\n try {\n sub.callback(_eventObj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n onFileChange(id: string, fileName: string, size: number | null): void {\n // if this file matches any subscriptions\n for (let i = 0, l = this.subscriptionsFile.length; i < l; i++) {\n const sub = this.subscriptionsFile[i];\n if (sub && fileMatching(sub, id, fileName)) {\n try {\n sub.callback(id, fileName, size, sub.withFile);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n async onUnload(callback: () => void): Promise {\n await this.debugStop();\n this.stopTimeSchedules();\n if (this.setStateCountCheckInterval) {\n clearInterval(this.setStateCountCheckInterval);\n this.setStateCountCheckInterval = null;\n }\n await this.stopAllScripts();\n if (typeof callback === 'function') {\n callback();\n }\n }\n\n async onReady(): Promise {\n this.errorLogFunction = this.log;\n this.context.errorLogFunction = this.log;\n\n this.config.maxSetStatePerMinute = parseInt(this.config.maxSetStatePerMinute as unknown as string, 10) || 1000;\n this.config.maxTriggersPerScript = parseInt(this.config.maxTriggersPerScript as unknown as string, 10) || 100;\n\n if (this.supportsFeature && this.supportsFeature('PLUGINS')) {\n const sentryInstance: InstanceType = this.getPluginInstance('sentry') as InstanceType<\n typeof SentryPlugin\n >;\n if (sentryInstance) {\n const Sentry = sentryInstance.getSentryObject();\n if (Sentry) {\n const scope = Sentry.getCurrentScope();\n scope.addEventProcessor((event, _hint) => {\n if (event.exception?.values?.[0]) {\n const eventData = event.exception.values[0];\n if (\n eventData.stacktrace?.frames &&\n Array.isArray(eventData.stacktrace.frames) &&\n eventData.stacktrace.frames.length\n ) {\n // Exclude event if script Marker is included\n if (\n eventData.stacktrace.frames.find(frame =>\n frame.filename?.includes(SCRIPT_CODE_MARKER),\n )\n ) {\n return null;\n }\n //Exclude event if own directory is included but not inside own node_modules\n const ownNodeModulesDir = join(__dirname, 'node_modules');\n if (\n !eventData.stacktrace.frames.find(\n frame =>\n frame.filename &&\n frame.filename.includes(__dirname) &&\n !frame.filename.includes(ownNodeModulesDir),\n )\n ) {\n return null;\n }\n // We have exception data and did not sort it out, so report it\n return event;\n }\n }\n\n // No exception in it ... do not report\n return null;\n });\n }\n }\n }\n\n await this.main();\n }\n\n onMessage(obj: ioBroker.Message): void {\n switch (obj?.command) {\n // process messageTo commands\n case 'toScript':\n case 'jsMessageBus':\n if (\n obj.message &&\n (obj.message.instance === null ||\n obj.message.instance === undefined ||\n `javascript.${obj.message.instance}` === this.namespace ||\n obj.message.instance === this.namespace)\n ) {\n Object.keys(this.messageBusHandlers).forEach(name => {\n // script name could be script.js.xxx or only xxx\n if (\n (!obj.message.script || obj.message.script === name) &&\n this.messageBusHandlers[name][obj.message.message]\n ) {\n this.messageBusHandlers[name][obj.message.message].forEach(handler => {\n const sandbox = handler.sandbox;\n\n sandbox.verbose && sandbox.log(`onMessage: ${JSON.stringify(obj.message)}`, 'info');\n\n try {\n if (obj.callback) {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n if (sandbox.verbose) {\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n }\n\n this.sendTo(obj.from, obj.command, result, obj.callback);\n });\n } else {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n sandbox.verbose &&\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n });\n }\n } catch (err: unknown) {\n void this.setState(\n `scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`,\n true,\n true,\n );\n this.logError(name, 'Error in callback:', err as Error);\n }\n });\n }\n });\n }\n break;\n\n case 'loadTypings': {\n // Load typings for the editor\n const typings: Record = {};\n\n // try to load TypeScript lib files from disk\n try {\n const typescriptLibs = resolveTypescriptLibs(targetTsLib);\n Object.assign(typings, typescriptLibs);\n } catch {\n /* ok, no lib then */\n }\n\n // provide the already-loaded ioBroker typings and global script declarations\n Object.assign(typings, tsAmbient);\n\n // also provide the known global declarations for each global script\n for (const globalScriptPaths of Object.keys(this.knownGlobalDeclarationsByScript)) {\n typings[`${globalScriptPaths}.d.ts`] = this.knownGlobalDeclarationsByScript[globalScriptPaths];\n }\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { typings }, obj.callback);\n }\n break;\n }\n\n case 'calcAstroAll': {\n if (obj.message) {\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n let astroEvents: GetTimesResult & { nextSunrise: Date; nextSunset: Date } = {} as GetTimesResult & {\n nextSunrise: Date;\n nextSunset: Date;\n };\n try {\n astroEvents = this.mods.suncalc.getTimes(today, latitude, longitude);\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n if (astroEvents) {\n try {\n astroEvents.nextSunrise = this.getAstroEvent(\n today,\n obj.message.sunriseEvent || this.config.sunriseEvent,\n obj.message.sunriseLimitStart || this.config.sunriseLimitStart,\n obj.message.sunriseLimitEnd || this.config.sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n astroEvents.nextSunset = this.getAstroEvent(\n today,\n obj.message.sunsetEvent || this.config.sunsetEvent,\n obj.message.sunsetLimitStart || this.config.sunsetLimitStart,\n obj.message.sunsetLimitEnd || this.config.sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n }\n\n const result: Record = {};\n const keys = Object.keys(astroEvents).sort(\n (a, b) =>\n (astroEvents as unknown as Record)[a] -\n (astroEvents as unknown as Record)[b],\n );\n keys.forEach(key => {\n const validDate =\n (astroEvents as unknown as Record)[key] !== null &&\n !isNaN((astroEvents as unknown as Record)[key].getTime());\n\n result[key] = {\n isValidDate: validDate,\n serverTime: validDate\n ? formatHoursMinutesSeconds((astroEvents as unknown as Record)[key])\n : 'n/a',\n date: validDate\n ? (astroEvents as unknown as Record)[key].toISOString()\n : 'n/a',\n };\n });\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, result, obj.callback);\n }\n }\n break;\n }\n\n case 'calcAstro': {\n if (obj.message) {\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n\n const sunriseEvent = obj.message?.sunriseEvent || this.config.sunriseEvent;\n const sunriseLimitStart = obj.message?.sunriseLimitStart || this.config.sunriseLimitStart;\n const sunriseLimitEnd = obj.message?.sunriseLimitEnd || this.config.sunriseLimitEnd;\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const nextSunrise = this.getAstroEvent(\n today,\n sunriseEvent,\n sunriseLimitStart,\n sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n\n const sunsetEvent = obj.message?.sunsetEvent || this.config.sunsetEvent;\n const sunsetLimitStart = obj.message?.sunsetLimitStart || this.config.sunsetLimitStart;\n const sunsetLimitEnd = obj.message?.sunsetLimitEnd || this.config.sunsetLimitEnd;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const nextSunset = this.getAstroEvent(\n today,\n sunsetEvent,\n sunsetLimitStart,\n sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n\n const validDateSunrise = nextSunrise !== null && !isNaN(nextSunrise.getTime());\n const validDateSunset = nextSunset !== null && !isNaN(nextSunset.getTime());\n\n this.log.debug(\n `calcAstro sunrise: ${sunriseEvent} -> start ${sunriseLimitStart}, end: ${sunriseLimitEnd}, offset: ${sunriseOffset} - ${validDateSunrise ? nextSunrise.toISOString() : 'n/a'}`,\n );\n this.log.debug(\n `calcAstro sunset: ${sunsetEvent} -> start ${sunsetLimitStart}, end: ${sunsetLimitEnd}, offset: ${sunsetOffset} - ${validDateSunset ? nextSunset.toISOString() : 'n/a'}`,\n );\n\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n nextSunrise: {\n isValidDate: validDateSunrise,\n serverTime: validDateSunrise ? formatHoursMinutesSeconds(nextSunrise) : 'n/a',\n date: nextSunrise.toISOString(),\n },\n nextSunset: {\n isValidDate: validDateSunset,\n serverTime: validDateSunset ? formatHoursMinutesSeconds(nextSunset) : 'n/a',\n date: nextSunset.toISOString(),\n },\n },\n obj.callback,\n );\n }\n }\n break;\n }\n\n case 'debug': {\n if (!this.context.debugMode) {\n this.debugStart(obj.message);\n }\n break;\n }\n\n case 'debugStop': {\n if (!this.context.debugMode) {\n void this.debugStop().then(() => console.log('stopped'));\n }\n break;\n }\n\n case 'rulesOn': {\n this.context.rulesOpened = obj.message;\n console.log(`Enable messaging for ${this.context.rulesOpened}`);\n break;\n }\n\n case 'rulesOff': {\n // maybe if (context.rulesOpened === obj.message)\n console.log(`Disable messaging for ${this.context.rulesOpened}`);\n this.context.rulesOpened = null;\n break;\n }\n\n case 'getIoBrokerDataDir': {\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n dataDir: getAbsoluteDefaultDataDir(),\n sep,\n },\n obj.callback,\n );\n }\n break;\n }\n\n case 'prettier': {\n // Format the code with Prettier\n if (obj.message && typeof obj.message.code === 'string') {\n try {\n prettier\n .format(obj.message.code, {\n parser: obj.message.type === 'typescript' ? 'babel-ts' : 'babel',\n printWidth: 120,\n semi: true,\n tabWidth: 4,\n useTabs: false,\n trailingComma: 'all',\n singleQuote: true,\n singleAttributePerLine: true,\n endOfLine: 'lf',\n bracketSpacing: true,\n arrowParens: 'avoid',\n quoteProps: 'as-needed',\n })\n .then(formattedCode => {\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { code: formattedCode }, obj.callback);\n } else {\n this.logWithLineInfo(`Formatted code:\\n${formattedCode}`);\n }\n })\n .catch(e => {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n });\n } catch (e) {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n }\n } else {\n this.sendTo(obj.from, obj.command, { error: 'No code provided' }, obj.callback);\n }\n break;\n }\n }\n }\n\n onLog(msg: any): void {\n Object.keys(this.logSubscriptions).forEach((name: string): void =>\n this.logSubscriptions[name].forEach(handler => {\n if (\n typeof handler.cb === 'function' &&\n (handler.severity === '*' || handler.severity === msg.severity)\n ) {\n handler.sandbox.logHandler = handler.severity || '*';\n handler.cb.call(handler.sandbox, msg);\n handler.sandbox.logHandler = undefined;\n }\n }),\n );\n }\n\n logError(scriptName: string, msg: string, e: Error, offs?: number): void {\n const stack = e.stack ? e.stack.toString().split('\\n') : e ? e.toString() : '';\n if (!msg.includes('\\n')) {\n msg = msg.replace(/[: ]*$/, ': ');\n }\n if (!msg.endsWith(' ')) {\n msg += ':';\n }\n if (!scriptName.startsWith(SCRIPT_CODE_MARKER)) {\n scriptName = SCRIPT_CODE_MARKER + scriptName;\n }\n\n this.errorLogFunction.error(`${scriptName}: ${msg}${this.fixLineNo(stack[0])}`);\n for (let i = offs || 1; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.error(`${scriptName}: ${this.fixLineNo(stack[i])}`);\n }\n }\n\n logWithLineInfo(msg: string): void {\n this.errorLogFunction.warn(msg);\n\n // get current error stack\n const stack = new Error().stack?.split('\\n');\n\n if (stack) {\n for (let i = 3; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInContext|runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.warn(this.fixLineNo(stack[i]));\n }\n }\n }\n\n async main(): Promise {\n // Patch the font as it sometimes is wrong\n if (!this.context.debugMode) {\n if (await this.patchFont()) {\n this.log.debug('Font patched');\n }\n }\n\n this.log.debug(`config.subscribe (Do not subscribe all states on start): ${this.config.subscribe}`);\n\n // correct jsonConfig for admin\n const instObj: ioBroker.InstanceObject | null | undefined = await this.getForeignObjectAsync(\n `system.adapter.${this.namespace}`,\n );\n if (instObj?.common) {\n if (instObj.common.adminUI?.config !== 'json') {\n if (instObj.common.adminUI) {\n instObj.common.adminUI.config = 'json';\n } else {\n instObj.common.adminUI = { config: 'json' };\n }\n void this.setForeignObject(instObj._id, instObj);\n }\n }\n\n if (webstormDebug) {\n this.errorLogFunction = {\n error: console.error,\n warn: console.warn,\n info: console.info,\n debug: console.log,\n silly: console.log,\n };\n this.context.errorLogFunction = this.errorLogFunction;\n }\n this.activeStr = `${this.namespace}.scriptEnabled.`;\n\n this.mods.fs = new ProtectFs(this.log, getAbsoluteDefaultDataDir());\n this.mods['fs/promises'] = this.mods.fs.promises; // to avoid require('fs/promises');\n\n // try to read TS declarations\n try {\n tsAmbient = {\n 'javascript.d.ts': readFileSync(this.mods.path.join(__dirname, 'lib/javascript.d.ts'), 'utf8'),\n };\n this.tsServer.provideAmbientDeclarations(tsAmbient);\n jsDeclarationServer.provideAmbientDeclarations(tsAmbient);\n } catch (err: unknown) {\n this.log.warn(`Could not read TypeScript ambient declarations: ${err as Error}`);\n // This should not happen, so send an error report to Sentry\n if (this.supportsFeature && this.supportsFeature('PLUGINS')) {\n const sentryInstance = this.getPluginInstance('sentry');\n if (sentryInstance) {\n const sentryObject = sentryInstance.getSentryObject();\n sentryObject?.captureException(err as Error);\n }\n }\n // Keep the adapter from crashing when the included typings cannot be read\n tsAmbient = {};\n }\n\n await this.installLibraries();\n // Load the TS declarations for Node.js and all 3rd party modules\n this.loadTypeScriptDeclarations();\n\n await this.getData();\n this.context.scheduler = new Scheduler(\n this.log,\n Date,\n this.mods.suncalc,\n this.config.latitude,\n this.config.longitude,\n );\n await this.dayTimeSchedules();\n await this.sunTimeSchedules();\n await this.timeSchedule();\n\n // Warning. It could have a side effect in compact mode, so all adapters will accept self-signed certificates\n if (this.config.allowSelfSignedCerts) {\n process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';\n }\n\n const doc = await this.getObjectViewAsync('script', 'javascript', {});\n if (doc?.rows?.length) {\n // assemble global script\n for (let g = 0; g < doc.rows.length; g++) {\n const obj = doc.rows[g].value;\n if (checkIsGlobal(obj)) {\n if (obj && obj.common) {\n const engineType = (obj.common.engineType || '').toLowerCase();\n\n if (obj.common.enabled) {\n if (engineType.startsWith('typescript')) {\n // TypeScript\n this.log.info(`${obj._id}: compiling TypeScript source...`);\n // In order to compile global TypeScript, we need to do some transformations\n // 1. For top-level-await, some statements must be wrapped in an immediately-invoked async function\n // 2. If any global script uses `import`, the declarations are no longer visible if they are not exported with `declare global`\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, true);\n // The source code must be transformed in order to support top level await\n // Global scripts must not be treated as a module, otherwise their methods\n // cannot be found by the normal scripts\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash: string = hashSource(\n tsSourceHashBase + this.globalDeclarations + transformedSource,\n );\n\n let compiled: string | undefined;\n let declarations: string | undefined;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n declarations = obj.common.declarations;\n this.log.info(\n `${obj._id}: source code did not change, using cached compilation result...`,\n );\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n continue;\n }\n\n const errors = tsCompiled.diagnostics\n .map(diag => `${diag.annotatedSource}\\n`)\n .join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(\n `${obj._id}: TypeScript compilation completed with errors:\\n${errors}`,\n );\n } else {\n this.log.info(`${obj._id}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result;\n // Global scripts that have been transformed to support `import` need to have their declarations transformed aswell\n declarations = transformGlobalDeclarations(tsCompiled.declarations || '');\n\n const newCommon: {\n compiled: string | undefined;\n declarations?: string;\n sourceHash: string;\n } = {\n sourceHash,\n compiled,\n };\n if (declarations) {\n newCommon.declarations = declarations;\n }\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(obj._id); // ignore the next change and don't restart scripts\n void this.extendForeignObject(obj._id, {\n common: newCommon,\n });\n } else {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${errors}`);\n continue;\n }\n }\n this.globalScript += `${compiled}\\n`;\n // if declarations were generated, remember them\n if (declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, declarations);\n }\n } else {\n // javascript\n const sourceCode = obj.common.source;\n this.globalScript += `${sourceCode}\\n`;\n\n // try to compile the declarations so TypeScripts can use\n // functions defined in global JavaScripts\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = jsDeclarationServer.compile(filename, sourceCode);\n } catch (err: unknown) {\n this.log.warn(\n `${obj._id}: Error while generating type declarations, skipping:\\n${err as Error}`,\n );\n continue;\n }\n // if declarations were generated, remember them\n if (tsCompiled.success && tsCompiled.declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, tsCompiled.declarations);\n }\n }\n }\n }\n }\n }\n }\n\n this.globalScript = this.globalScript.replace(/\\r\\n/g, '\\n');\n this.globalScriptLines = this.globalScript.split(/\\n/g).length - 1;\n\n if (doc?.rows?.length) {\n // load all scripts\n for (let i = 0; i < doc.rows.length; i++) {\n if (!checkIsGlobal(doc.rows[i].value)) {\n void this.loadScript(doc.rows[i].value);\n }\n }\n }\n\n if (this.config.mirrorPath) {\n this.config.mirrorInstance = parseInt(this.config.mirrorInstance as unknown as string, 10) || 0;\n if (this.instance === this.config.mirrorInstance) {\n const ioBDataDir = getAbsoluteDefaultDataDir() + sep;\n this.config.mirrorPath = normalize(this.config.mirrorPath);\n let mirrorForbidden = false;\n for (let dir of forbiddenMirrorLocations) {\n dir = join(ioBDataDir, dir) + sep;\n if (dir.includes(this.config.mirrorPath) || this.config.mirrorPath.startsWith(dir)) {\n this.log.error(`The Mirror directory is not allowed to be a central ioBroker directory!`);\n this.log.error(`Directory ${this.config.mirrorPath} is not allowed to mirror files!`);\n mirrorForbidden = true;\n break;\n }\n }\n if (!mirrorForbidden) {\n this.mirror = new Mirror({\n adapter: this,\n log: this.log,\n diskRoot: this.config.mirrorPath,\n });\n }\n }\n }\n\n // CHeck setState counter per minute and stop script if too high\n this.setStateCountCheckInterval = setInterval(() => {\n Object.keys(this.scripts).forEach(id => {\n if (!this.scripts[id]) {\n return;\n }\n const currentSetStatePerMinuteCounter = this.scripts[id].setStatePerMinuteCounter;\n this.scripts[id].setStatePerMinuteCounter = 0;\n if (currentSetStatePerMinuteCounter > this.config.maxSetStatePerMinute) {\n this.scripts[id].setStatePerMinuteProblemCounter++;\n this.log.debug(\n `${id}: Script has reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute in ${this.scripts[id].setStatePerMinuteProblemCounter} consecutive minutes`,\n );\n // Allow \"too high counters\" for 1 minute for script starts or such and only\n // stop the script when lasts longer\n if (this.scripts[id].setStatePerMinuteProblemCounter > 1) {\n this.log.error(\n `${id}: Script is calling setState more than ${this.config.maxSetStatePerMinute} times per minute! Stopping Script now! Please check your script!`,\n );\n void this.stopScript(id);\n }\n } else if (this.scripts[id].setStatePerMinuteProblemCounter > 0) {\n this.scripts[id].setStatePerMinuteProblemCounter--;\n this.log.debug(\n `Script ${id} has NOT reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute. Decrease problem counter to ${this.scripts[id].setStatePerMinuteProblemCounter}`,\n );\n }\n });\n }, 60000);\n }\n\n private loadTypeScriptDeclarations(): void {\n // try to load the typings on disk for all 3rd party modules\n const packages = [\n 'node', // this provides auto-completion for most builtins\n '@iobroker/types', // this provides auto-completion for most builtins\n ];\n // Also include user-selected libraries (but only those that are also installed)\n if (typeof this.config?.libraries === 'string' && typeof this.config.libraryTypings === 'string') {\n const installedLibs = this.config.libraries\n .split(/[,;\\s]+/)\n .map(s => s.trim().split('@')[0])\n .filter(s => !!s);\n\n const wantsTypings = this.config.libraryTypings\n .split(/[,;\\s]+/)\n .map(s => s.trim())\n .filter(s => !!s);\n // Add all installed libraries the user has requested typings for to the list of packages\n for (const lib of installedLibs) {\n if (wantsTypings.includes(lib) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n // Some packages have submodules (e.g., rxjs/operators) that are not exposed through the main entry point\n // If typings are requested for them, also add them if the base module is installed\n for (const lib of wantsTypings) {\n // Extract the package name and check if we need to add it\n if (!lib.includes('/')) {\n continue;\n }\n const pkgName = lib.substring(0, lib.indexOf('/'));\n\n if (installedLibs.includes(pkgName) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n }\n for (const pkg of packages) {\n let pkgTypings = resolveTypings(\n pkg,\n this.getAdapterScopedPackageIdentifier ? this.getAdapterScopedPackageIdentifier(pkg) : pkg,\n // node needs ambient typings, so we don't wrap it in declare module\n pkg !== 'node',\n );\n if (!pkgTypings) {\n // Create the empty dummy declarations so users don't get the \"not found\" error\n // for installed packages\n if (pkg.includes('/')) {\n pkgTypings = {\n [`node_modules/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n } else {\n pkgTypings = {\n [`node_modules/@types/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n }\n }\n this.log.debug(`Loaded TypeScript definitions for \"${pkg}\": ${JSON.stringify(Object.keys(pkgTypings))}`);\n // remember the declarations for the editor\n Object.assign(tsAmbient, pkgTypings);\n // and give the language servers access to them\n this.tsServer.provideAmbientDeclarations(pkgTypings);\n jsDeclarationServer.provideAmbientDeclarations(pkgTypings);\n }\n }\n\n updateObjectContext(id: string, obj: ioBroker.Object | null | undefined): void {\n if (obj) {\n // add state to state ID's list\n if (obj.type === 'state') {\n if (!this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n this.context.channels[chn] = this.context.channels[chn] || [];\n this.context.channels[chn].push(id);\n\n parts.pop();\n const dev = parts.join('.');\n this.context.devices[dev] = this.context.devices[dev] || [];\n this.context.devices[dev].push(id);\n }\n }\n } else {\n // delete object from state ID's list\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n if (this.context.channels[chn]) {\n const posChn = this.context.channels[chn].indexOf(id);\n posChn !== -1 && this.context.channels[chn].splice(posChn, 1);\n }\n\n parts.pop();\n const dev = parts.join('.');\n if (this.context.devices[dev]) {\n const posDev = this.context.devices[dev].indexOf(id);\n posDev !== -1 && this.context.devices[dev].splice(posDev, 1);\n }\n }\n\n delete this.folderCreationVerifiedObjects[id];\n }\n\n if (!obj && this.objects[id]) {\n // objects was deleted\n this.removeFromNames(id);\n delete this.objects[id];\n } else if (obj && !this.objects[id]) {\n // object was added\n this.objects[id] = obj;\n this.addToNames(obj);\n } else if (obj && this.objects[id].common) {\n // Object just changed\n this.objects[id] = obj;\n\n const n = this.getName(id);\n let nn = this.objects[id].common ? this.objects[id].common.name : '';\n\n if (nn && typeof nn === 'object') {\n nn = nn[getLanguage()] || nn.en;\n }\n\n if (n !== nn) {\n if (n) {\n this.removeFromNames(id);\n }\n if (nn) {\n this.addToNames(obj);\n }\n }\n }\n }\n\n async stopAllScripts(): Promise {\n const scripts = Object.keys(this.scripts);\n const promises: Promise[] = [];\n for (let i = 0; i < scripts.length; i++) {\n promises.push(this.stopScript(scripts[i]));\n }\n return Promise.all(promises).then(() => {});\n }\n\n convertBackStringifiedValues(\n id: string,\n state: ioBroker.State | null | undefined,\n ): ioBroker.State | null | undefined {\n if (\n state &&\n typeof state.val === 'string' &&\n this.objects[id]?.common &&\n (this.objects[id].common.type === 'array' || this.objects[id].common.type === 'object')\n ) {\n try {\n state.val = JSON.parse(state.val);\n } catch (err: any) {\n if (id.startsWith('javascript.') || id.startsWith('0_userdata.0')) {\n this.log.info(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n } else {\n this.log.debug(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n }\n }\n }\n return state;\n }\n\n prepareStateObjectSimple(id: string, state: ioBroker.StateValue, isAck: boolean): ioBroker.State {\n // otherwise, assume that the given state is the value to be set\n const oState: ioBroker.State = { val: state, ack: isAck } as ioBroker.State;\n\n return this.prepareStateObject(id, oState);\n }\n\n prepareStateObject(id: string, state: ioBroker.SettableState | null): ioBroker.State {\n let oState: ioBroker.State;\n\n if (state && typeof state === 'object') {\n oState = state as ioBroker.State;\n } else {\n oState = { val: null } as ioBroker.State;\n }\n\n if (this.config.subscribe) {\n return oState;\n }\n // set other values to have a full state object\n // mirrors logic from statesInRedis\n if (oState.ts === undefined) {\n oState.ts = Date.now();\n }\n\n if (oState.q === undefined) {\n oState.q = 0;\n }\n\n oState.from =\n typeof oState.from === 'string' && oState.from !== '' ? oState.from : `system.adapter.${this.namespace}`;\n\n if (oState.lc === undefined) {\n const formerStateValue = this.interimStateValues[id] || this.states[id];\n if (!formerStateValue) {\n oState.lc = oState.ts;\n } else {\n // isDeepStrictEqual works on objects and primitive values\n const hasChanged = !isDeepStrictEqual(formerStateValue.val, oState.val);\n if (!formerStateValue.lc || hasChanged) {\n oState.lc = oState.ts;\n } else {\n oState.lc = formerStateValue.lc;\n }\n }\n }\n\n return oState;\n }\n\n async getData(): Promise {\n await this.subscribeForeignObjectsAsync('*');\n\n if (!this.config.subscribe) {\n await this.subscribeForeignStatesAsync('*');\n } else {\n await this.subscribeStatesAsync('debug.to');\n await this.subscribeStatesAsync('scriptEnabled.*');\n }\n\n this.log.info('requesting all states');\n\n const statesPromise = this.getForeignStatesAsync('*')\n .then(res => {\n if (!res) {\n this.log.error(`Could not initialize states: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n if (!this.config.subscribe) {\n this.states = Object.assign(res, this.states);\n this.context.states = this.states;\n\n this.addGetProperty(this.states);\n }\n\n // remember all IDs\n for (const id in res) {\n if (Object.prototype.hasOwnProperty.call(res, id)) {\n this.stateIds.push(id);\n }\n }\n this.statesInitDone = true;\n this.log.info('received all states');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize states: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n this.log.info('requesting all objects');\n\n const objectsPromise = this.getObjectListAsync({ include_docs: true })\n .then(res => {\n if (!res?.rows) {\n this.log.error(`Could not initialize objects: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n this.objects = {};\n this.context.objects = this.objects;\n for (let i = 0; i < res.rows.length; i++) {\n if (!res.rows[i].doc) {\n this.log.debug(`Got empty object for index ${i} (${res.rows[i].id})`);\n continue;\n }\n if (this.objects[res.rows[i].doc._id] === undefined) {\n // If was already there ignore\n this.objects[res.rows[i].doc._id] = res.rows[i].doc;\n }\n this.objects[res.rows[i].doc._id].type === 'enum' && this._enums.push(res.rows[i].doc._id);\n\n // Collect all names\n this.addToNames(this.objects[res.rows[i].doc._id]);\n }\n this.addGetProperty(this.objects);\n\n const systemConfig = this.objects['system.config'];\n\n // set language for debug messages\n if (systemConfig?.common?.language) {\n setLanguage(systemConfig.common.language);\n this.language = systemConfig.common.language;\n this.context.language = this.language as ioBroker.Languages;\n } else if (this.language) {\n setLanguage(this.language);\n this.context.language = this.language;\n }\n\n // try to use system coordinates\n if (this.config.useSystemGPS) {\n if (systemConfig?.common?.latitude || systemConfig?.common?.longitude) {\n this.config.latitude = systemConfig.common.latitude;\n this.config.longitude = systemConfig.common.longitude;\n } else if (this.latitude && this.longitude) {\n this.config.latitude = this.latitude;\n this.config.longitude = this.longitude;\n }\n }\n this.config.latitude = parseFloat(this.config.latitude as unknown as string);\n this.config.longitude = parseFloat(this.config.longitude as unknown as string);\n\n if (isNaN(this.config.latitude)) {\n this.log.warn(`Configured latitude is not a number - check (instance/system) configuration`);\n } else if (this.config.latitude < -90 || this.config.latitude > 90) {\n this.log.warn(\n `Configured latitude \"${this.config.latitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n if (isNaN(this.config.longitude)) {\n this.log.warn(`Configured longitude is not a number - check (instance/system) configuration`);\n } else if (this.config.longitude < -180 || this.config.longitude > 180) {\n this.log.warn(\n `Configured longitude \"${this.config.longitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n this.config.sunriseEvent = this.config.sunriseEvent || 'nightEnd';\n this.config.sunriseOffset = this.config.sunriseOffset || 0;\n this.config.sunriseLimitStart = this.config.sunriseLimitStart || '06:00';\n this.config.sunriseLimitEnd = this.config.sunriseLimitEnd || '12:00';\n\n this.config.sunsetEvent = this.config.sunsetEvent || 'dusk';\n this.config.sunsetOffset = this.config.sunsetOffset || 0;\n this.config.sunsetLimitStart = this.config.sunsetLimitStart || '18:00';\n this.config.sunsetLimitEnd = this.config.sunsetLimitEnd || '23:00';\n\n this.objectsInitDone = true;\n this.log.info('received all objects');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize objects: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n return Promise.all([statesPromise, objectsPromise]).then(() => {});\n }\n\n async createActiveObject(id: string, enabled: boolean): Promise {\n const idActive = `${this.namespace}.scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idActive]) {\n this.objects[idActive] = {\n _id: idActive,\n common: {\n name: `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'controls script activity',\n type: 'boolean',\n write: true,\n read: true,\n role: 'switch.active',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idActive, this.objects[idActive]);\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[idActive] = intermediateStateValue;\n }\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idActive);\n if (state && state.val !== enabled) {\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[id] = intermediateStateValue;\n }\n }\n }\n }\n\n async createProblemObject(id: string): Promise {\n const idProblem = `${this.namespace}.scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idProblem]) {\n this.objects[idProblem] = {\n _id: idProblem,\n common: {\n name: `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'Script has a problem',\n type: 'boolean',\n expert: true,\n write: false,\n read: true,\n role: 'indicator.error',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idProblem, this.objects[idProblem]);\n await this.setForeignStateAsync(idProblem, false, true);\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idProblem);\n if (state && state.val !== false) {\n await this.setForeignStateAsync(idProblem, false, true);\n }\n }\n }\n\n addToNames(obj: ioBroker.Object): void {\n const id = obj._id;\n\n if (obj.common?.name) {\n let name = obj.common.name;\n if (name && typeof name === 'object') {\n name = name[getLanguage()] || name.en;\n }\n if (!name || typeof name !== 'string') {\n // TODO, take name in current language\n return;\n }\n\n if (!this.names[name]) {\n this.names[name] = id;\n } else {\n // convert to array\n if (!Array.isArray(this.names[name])) {\n this.names[name] = [this.names[name] as string];\n }\n\n (this.names[name] as string[]).push(id);\n }\n }\n }\n\n removeFromNames(id: string): void {\n const n = this.getName(id);\n\n if (n) {\n if (Array.isArray(this.names[n])) {\n const pos = this.names[n].indexOf(id);\n if (pos > -1) {\n this.names[n].splice(pos, 1);\n\n if (this.names[n].length === 1) {\n this.names[n] = this.names[n][0];\n }\n }\n } else {\n delete this.names[n];\n }\n }\n }\n\n getName(id: string): string | null {\n for (const n in this.names) {\n if (this.names[n] && Array.isArray(this.names[n])) {\n if (this.names[n].includes(id)) {\n return n;\n }\n } else if (this.names[n] === id) {\n return n;\n }\n }\n\n return null;\n }\n\n async installNpm(npmLib: string): Promise {\n return new Promise((resolve, reject) => {\n const path = __dirname;\n\n // Also, set the working directory (cwd) of the process instead of using --prefix\n // because that has ugly bugs on Windows\n const cmd = `npm install ${npmLib} --omit=dev`;\n this.log.info(`Installing ${npmLib} into ${__dirname} - cmd: ${cmd}`);\n\n // System call used for update of js-controller itself,\n // because during the installation the npm packet will be deleted too, but some files must be loaded even during the installation process.\n const child = this.mods.child_process.exec(cmd, {\n windowsHide: true,\n cwd: path,\n });\n\n child.stdout?.on('data', buf => this.log.info(buf.toString('utf8')));\n\n child.stderr?.on('data', buf => this.log.error(buf.toString('utf8')));\n\n child.on('err', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n child.on('error', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n\n child.on('exit', (code: number /* , signal */) => {\n if (code) {\n this.log.error(`Cannot install ${npmLib}: ${code}`);\n reject(new Error(`Cannot install ${npmLib}: ${code}`));\n }\n // command succeeded\n resolve(code);\n });\n });\n }\n\n async installLibraries(): Promise {\n if (typeof this.config?.libraries !== 'string') {\n this.config.libraries = '';\n }\n\n const libraries: string[] = this.config.libraries\n .split(/[,;\\s]+/)\n .map(d => d.trim())\n .filter(d => d);\n\n this.log.debug(`Custom libraries in config: \"${this.config.libraries}\": ${JSON.stringify(libraries)}`);\n\n let installedNodeModules: string[] = [];\n const keepModules: string[] = [];\n\n // js-controller >= 6.x\n if (typeof this.listInstalledNodeModules === 'function') {\n installedNodeModules = await this.listInstalledNodeModules();\n\n this.log.debug(`Found installed libraries: ${JSON.stringify(installedNodeModules)}`);\n }\n\n for (const lib of libraries) {\n let depName = lib;\n let version = 'latest';\n\n if (depName.includes('@') && depName.lastIndexOf('@') > 0) {\n const parts = depName.split('@');\n version = parts.pop() ?? 'latest';\n depName = parts.join('@');\n }\n\n /** The real module name, because the dependency can be an url too */\n let moduleName = depName;\n\n if (URL.canParse(depName)) {\n moduleName = await requestModuleNameByUrl(depName);\n\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\" (from ${depName})`);\n } else {\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\"`);\n }\n\n keepModules.push(moduleName);\n\n // js-controller >= 6.x\n if (typeof this.installNodeModule === 'function') {\n try {\n const result = await this.installNodeModule(depName, { version });\n if (result.success) {\n this.log.debug(`Installed custom library: \"${moduleName}@${version}\"`);\n\n const importedModule: any = await this.importNodeModule(moduleName);\n (this.mods as Record)[moduleName] = importedModule.default ?? importedModule;\n } else {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\"`);\n }\n } catch (err: unknown) {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\": ${err as Error}`);\n }\n } else if (!existsSync(`${__dirname}/node_modules/${depName}/package.json`)) {\n // js-controller < 6.x\n this.log.info(`Installing custom library (legacy mode): \"${lib}\"`);\n\n try {\n await this.installNpm(lib);\n this.log.info(`Installed custom npm package (legacy mode): \"${lib}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot install custom npm package \"${lib}\" (legacy mode): ${err.toString()}`);\n }\n }\n }\n\n // js-controller >= 6.x\n if (typeof this.uninstallNodeModule === 'function') {\n for (const installedNodeModule of installedNodeModules) {\n if (!keepModules.includes(installedNodeModule)) {\n try {\n await this.uninstallNodeModule(installedNodeModule);\n\n this.log.info(`Removed custom npm package: \"${installedNodeModule}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot remove custom npm package ${installedNodeModule}: ${err.toString()}`);\n }\n }\n }\n }\n }\n\n createVM(source: string, name: string, wrapAsync: boolean): false | JsScript {\n if (this.context.debugMode && name !== this.context.debugMode) {\n return false;\n }\n\n if (!this.context.debugMode) {\n const logSubscriptionsText =\n \"\\n;\\nlog(`registered ${__engine.__subscriptions} subscription${__engine.__subscriptions === 1 ? '' : 's'},\" +\n \" ${__engine.__schedules} schedule${__engine.__schedules === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsMessage} message${__engine.__subscriptionsMessage === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsLog} log${__engine.__subscriptionsLog === 1 ? '' : 's'}\" +\n \" and ${__engine.__subscriptionsFile} file subscription${__engine.__subscriptionsFile === 1 ? '' : 's'}`);\\n\";\n\n if (wrapAsync) {\n source = `(async () => {\\n${source}\\n${logSubscriptionsText}\\n})();`;\n } else {\n if (source.endsWith('export {};\\n')) {\n // If the source ends with \"export {};\" place the log subscriptions before it\n source = source.slice(0, -11); // remove \"export {};\\n\"\n source = `${source}\\n${logSubscriptionsText}\\nexport {};\\n`;\n } else {\n source = `${source}\\n${logSubscriptionsText}`;\n }\n }\n } else {\n if (wrapAsync) {\n source = `(async () => {debugger;\\n${source}\\n})();`;\n } else {\n source = `debugger;${source}`;\n }\n }\n\n try {\n const options: ScriptOptions = {\n filename: name,\n // displayErrors: true,\n // lineOffset: this.globalScriptLines\n };\n return {\n script: new Script(source, options),\n } as JsScript;\n } catch (err: unknown) {\n this.logError(name, `compile failed at`, err as Error);\n return false;\n }\n }\n\n execute(script: JsScript, name: string, engineType: ScriptType, verbose: boolean, debug: boolean): void {\n script.intervals = [];\n script.timeouts = [];\n script.schedules = [];\n script.wizards = [];\n script.name = name;\n script.engineType = engineType;\n script._id = Math.floor(Math.random() * 0xffffffff);\n script.subscribes = {};\n script.subscribesFile = {};\n script.setStatePerMinuteCounter = 0;\n script.setStatePerMinuteProblemCounter = 0;\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: false,\n ack: true,\n expire: 1000,\n });\n\n const sandbox = sandBox(script, name, verbose, debug, this.context);\n\n try {\n script.script.runInNewContext(sandbox, {\n filename: name,\n displayErrors: true,\n // lineOffset: this.globalScriptLines\n });\n } catch (err: unknown) {\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: true,\n ack: true,\n c: 'execute',\n });\n this.logError(name, 'Error by run:', err as Error);\n }\n }\n\n unsubscribe(id: string | RegExp | string[]): void {\n if (!id) {\n this.log.warn('unsubscribe: empty name');\n return;\n }\n\n if (Array.isArray(id)) {\n id.forEach(sub => unsubscribe(sub));\n return;\n }\n\n if (id.constructor && id.constructor.name === 'RegExp') {\n // adapter.log.warn('unsubscribe: todo - process regexp');\n return;\n }\n\n if (typeof id !== 'string') {\n this.log.error(`unsubscribe: invalid type of id - ${typeof id}`);\n return;\n }\n const parts = id.split('.');\n const _adapter = `system.adapter.${parts[0]}.${parts[1]}`;\n if (this.objects[_adapter]?.common?.subscribable) {\n const a = `${parts[0]}.${parts[1]}`;\n const alive = `system.adapter.${a}.alive`;\n if (this.adapterSubs[alive]) {\n const pos = this.adapterSubs[alive].indexOf(id);\n if (pos !== -1) {\n this.adapterSubs[alive].splice(pos, 1);\n }\n if (!this.adapterSubs[alive].length) {\n delete this.adapterSubs[alive];\n }\n }\n this.sendTo(a, 'unsubscribe', id);\n }\n }\n\n // Analyze if logs are still required or not\n updateLogSubscriptions(): void {\n let found = false;\n // go through all scripts and check if some script still requires logs\n Object.keys(this.logSubscriptions).forEach(scriptName => {\n if (!this.logSubscriptions?.[scriptName] || !this.logSubscriptions[scriptName].length) {\n delete this.logSubscriptions[scriptName];\n } else {\n found = true;\n }\n });\n\n if (this.requireLog) {\n if (found && !this.logSubscribed) {\n this.logSubscribed = true;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Subscribed to log messages (found logSubscriptions)`);\n } else if (!found && this.logSubscribed) {\n this.logSubscribed = false;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Unsubscribed from log messages (not found logSubscriptions)`);\n }\n }\n }\n\n async stopScript(name: string): Promise {\n this.log.info(`${name}: Stopping script`);\n\n await this.setState(`scriptEnabled.${name.substring(SCRIPT_CODE_MARKER.length)}`, false, true);\n\n if (this.messageBusHandlers[name]) {\n delete this.messageBusHandlers[name];\n }\n\n if (this.tempDirectories[name]) {\n try {\n this.mods.fs.rmSync(this.tempDirectories[name], { recursive: true });\n\n this.log.debug(`${name}: Removed temp directory: ${this.tempDirectories[name]}`);\n } catch {\n this.log.warn(`${name}: Unable to remove temp directory: ${this.tempDirectories[name]}`);\n }\n\n delete this.tempDirectories[name];\n }\n\n if (this.logSubscriptions[name]) {\n delete this.logSubscriptions[name];\n this.updateLogSubscriptions();\n }\n\n if (this.scripts[name]) {\n // Remove from subscriptions\n this.context.isEnums = false;\n if (this.config.subscribe) {\n // check all subscribed IDs\n Object.keys(this.scripts[name].subscribes).forEach(id => {\n if (this.subscribedPatterns[id]) {\n this.subscribedPatterns[id] -= this.scripts[name].subscribes[id];\n if (this.subscribedPatterns[id] <= 0) {\n this.unsubscribeForeignStates(id);\n delete this.subscribedPatterns[id];\n if (this.states[id]) {\n delete this.states[id];\n }\n }\n }\n });\n }\n\n for (let i = this.subscriptions.length - 1; i >= 0; i--) {\n if (this.subscriptions[i].name === name) {\n const sub = this.subscriptions.splice(i, 1)[0];\n if (sub?.pattern.id) {\n this.unsubscribe(sub.pattern.id);\n }\n } else {\n if (\n (!this.context.isEnums && this.subscriptions[i].pattern.enumName) ||\n this.subscriptions[i].pattern.enumId\n ) {\n this.context.isEnums = true;\n }\n }\n }\n\n // check all subscribed files\n Object.keys(this.scripts[name].subscribesFile).forEach(key => {\n if (this.subscribedPatternsFile[key]) {\n this.subscribedPatternsFile[key] -= this.scripts[name].subscribesFile[key];\n if (this.subscribedPatternsFile[key] <= 0) {\n const [id, file] = key.split('$%$');\n void this.unsubscribeForeignFiles(id, file);\n delete this.subscribedPatternsFile[key];\n }\n }\n });\n for (let i = this.subscriptionsFile.length - 1; i >= 0; i--) {\n if (this.subscriptionsFile[i].name === name) {\n this.subscriptionsFile.splice(i, 1);\n }\n }\n\n for (let i = this.subscriptionsObject.length - 1; i >= 0; i--) {\n if (this.subscriptionsObject[i].name === name) {\n const sub = this.subscriptionsObject.splice(i, 1)[0];\n if (sub) {\n this.unsubscribeForeignObjects(sub.pattern);\n }\n }\n }\n\n // Stop all timeouts\n for (let i = 0; i < this.scripts[name].timeouts.length; i++) {\n clearTimeout(this.scripts[name].timeouts[i]);\n }\n // Stop all intervals\n for (let i = 0; i < this.scripts[name].intervals.length; i++) {\n clearInterval(this.scripts[name].intervals[i]);\n }\n // Stop all scheduled jobs\n for (let i = 0; i < this.scripts[name].schedules.length; i++) {\n if (this.scripts[name].schedules[i]) {\n const _name = this.scripts[name].schedules[i].name;\n if (!this.mods.nodeSchedule.cancelJob(this.scripts[name].schedules[i])) {\n this.log.error(`${name}: Error by canceling scheduled job \"${_name}\"`);\n }\n }\n }\n\n // Stop all time wizards jobs\n if (this.context.scheduler) {\n for (let i = 0; i < this.scripts[name].wizards.length; i++) {\n if (this.scripts[name].wizards[i]) {\n this.context.scheduler.remove(this.scripts[name].wizards[i]);\n }\n }\n }\n\n // if callback for on stop\n if (typeof this.scripts[name].onStopCb === 'function') {\n this.scripts[name].onStopTimeout =\n parseInt(this.scripts[name].onStopTimeout as unknown as string, 10) || 1000;\n\n await new Promise(resolve => {\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n if (timeout) {\n timeout = null;\n resolve(true);\n }\n }, this.scripts[name].onStopTimeout);\n\n try {\n this.scripts[name].onStopCb(() => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n resolve(true);\n }\n });\n } catch (err: unknown) {\n this.log.error(`${name}: error in onStop callback: ${err as Error}`);\n }\n });\n }\n\n delete this.scripts[name];\n return true;\n }\n return false;\n }\n\n async prepareScript(obj: ioBroker.ScriptObject): Promise {\n if (obj?.common?.enabled && this.debugState.scriptName === obj._id) {\n const id = obj._id;\n await this.debugStop();\n this.log.info(`${id}: Debugging was stopped, because started in normal mode`);\n return this.prepareScript(obj);\n }\n\n if (\n obj?.common?.source &&\n (obj.common.enabled || this.context.debugMode === obj._id) &&\n obj.common.engine === `system.adapter.${this.namespace}`\n ) {\n const name = obj._id;\n\n const nameId = name.substring(SCRIPT_CODE_MARKER.length);\n if (!nameId.length || nameId.endsWith('.')) {\n this.log.error(`${name}: Script name \"${name}\" is invalid!`);\n return false;\n }\n const idActive = `scriptEnabled.${nameId}`;\n if (!this.config.subscribe) {\n this.interimStateValues[idActive] = this.prepareStateObjectSimple(\n `${this.namespace}.${idActive}`,\n true,\n true,\n );\n }\n await this.setState(idActive, true, true);\n obj.common.engineType = obj.common.engineType || '';\n\n if (\n (obj.common.engineType as ScriptType).toLowerCase().startsWith('javascript') ||\n (obj.common.engineType as ScriptType) === 'Blockly' ||\n (obj.common.engineType as ScriptType) === 'Rules'\n ) {\n // Javascript\n this.log.info(`${name}: start JavaScript (${obj.common.engineType})`);\n\n let sourceFn = name;\n if (webstormDebug) {\n const fn = name.replace(/^script\\.js\\./, '').replace(/\\./g, '/');\n sourceFn = this.mods.path.join(webstormDebug, `${fn}.js`);\n }\n const createdScript = this.createVM(`${this.globalScript}\\n${obj.common.source}`, sourceFn, true);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n sourceFn,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n if (obj.common.engineType.toLowerCase().startsWith('typescript')) {\n // TypeScript\n this.log.info(`${name}: Compiling TypeScript source`);\n // The source code must be transformed in order to support top level await\n // and to force TypeScript to compile the code as a module\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, false);\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash = hashSource(tsSourceHashBase + this.globalDeclarations + transformedSource);\n\n let compiled: string;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n this.log.info(`${name}: source code did not change, using cached compilation result...`);\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(name);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n return false;\n }\n\n const errors = tsCompiled.diagnostics.map(diag => `${diag.annotatedSource}\\n`).join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(`${name}: TypeScript compilation had errors:\\n${errors}`);\n } else {\n this.log.info(`${name}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result || '';\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(name); // ignore the next change and don't restart scripts\n await this.extendForeignObjectAsync(name, {\n common: {\n sourceHash,\n compiled,\n },\n });\n } else {\n this.log.error(`${name}: TypeScript compilation failed:\\n${errors}`);\n return false;\n }\n }\n const createdScript: JsScript | false = this.createVM(`${this.globalScript}\\n${compiled}`, name, false);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n name,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n this.log.warn(`${obj._id}: Unknown engine type: ${obj.common.engineType}`);\n return false;\n }\n\n let _name: string;\n if (obj?._id) {\n _name = obj._id;\n const scriptIdName = _name.substring(SCRIPT_CODE_MARKER.length);\n\n if (!scriptIdName.length || scriptIdName.endsWith('.')) {\n this.log.error(`${obj._id}: Script name \"${_name}\" is invalid!`);\n return false;\n }\n await this.setState(`scriptEnabled.${scriptIdName}`, false, true);\n }\n if (!obj) {\n this.log.error('Invalid script');\n }\n return false;\n }\n\n async loadScriptById(id: string): Promise {\n let obj: ioBroker.ScriptObject | null | undefined;\n try {\n obj = (await this.getForeignObjectAsync(id)) as ioBroker.ScriptObject | null | undefined;\n } catch (err: any) {\n this.log.error(`${id}: Invalid script: ${err}`);\n }\n if (!obj) {\n return false;\n }\n return this.loadScript(obj);\n }\n\n async loadScript(nameOrObject: ioBroker.ScriptObject): Promise {\n // create states for scripts\n await this.createActiveObject(nameOrObject._id, !!nameOrObject?.common?.enabled);\n await this.createProblemObject(nameOrObject._id);\n return this.prepareScript(nameOrObject);\n }\n\n getAstroEvent(\n date: Date,\n astroEvent: AstroEventName,\n start: string,\n end: string,\n offsetMinutes: number | string,\n isDayEnd: boolean,\n latitude: number,\n longitude: number,\n useNextDay?: boolean,\n ): Date {\n let ts: Date = this.mods.suncalc.getTimes(date, latitude, longitude)[astroEvent];\n\n if (!ts || ts.getTime().toString() === 'NaN') {\n ts = isDayEnd ? getNextTimeEvent(end, useNextDay) : getNextTimeEvent(start, useNextDay);\n }\n ts.setMilliseconds(0);\n ts.setMinutes(ts.getMinutes() + (parseInt(offsetMinutes as unknown as string, 10) || 0));\n\n const [timeHoursStart, timeMinutesStart] = start.split(':');\n const nTimeHoursStart = parseInt(timeHoursStart, 10);\n const nTimeMinutesStart = parseInt(timeMinutesStart, 10) || 0;\n\n if (\n ts.getHours() < nTimeHoursStart ||\n (ts.getHours() === nTimeHoursStart && ts.getMinutes() < nTimeMinutesStart)\n ) {\n ts = getNextTimeEvent(start, useNextDay);\n ts.setSeconds(0);\n }\n\n const [timeHoursEnd, timeMinutesEnd] = end.split(':');\n const nTimeHoursEnd = parseInt(timeHoursEnd, 10);\n const nTimeMinutesEnd = parseInt(timeMinutesEnd, 10) || 0;\n\n if (ts.getHours() > nTimeHoursEnd || (ts.getHours() === nTimeHoursEnd && ts.getMinutes() > nTimeMinutesEnd)) {\n ts = getNextTimeEvent(end, useNextDay);\n ts.setSeconds(0);\n }\n\n // if event in the past\n if (date > ts && useNextDay) {\n // take the next day\n ts.setDate(ts.getDate() + 1);\n }\n return ts;\n }\n\n async timeSchedule(): Promise {\n const now = new Date();\n let hours = now.getHours();\n const minutes = now.getMinutes();\n if (this.timeSettings.format12) {\n if (hours > 12) {\n hours -= 12;\n }\n }\n let sHours: string;\n if (this.timeSettings.leadingZeros) {\n sHours = hours.toString().padStart(2, '0');\n } else {\n sHours = hours.toString();\n }\n\n await this.setState('variables.dayTime', {\n val: `${sHours}:${minutes.toString().padStart(2, '0')}`,\n ack: true,\n });\n\n now.setMinutes(now.getMinutes() + 1);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const interval = now.getTime() - Date.now();\n this.timeScheduleTimer = setTimeout(() => this.timeSchedule(), interval);\n }\n\n async dayTimeSchedules(): Promise {\n // get astrological event\n if (\n this.config.latitude === undefined ||\n this.config.longitude === undefined ||\n (this.config.latitude as unknown as string) === '' ||\n (this.config.longitude as unknown as string) === '' ||\n this.config.latitude === null ||\n this.config.longitude === null\n ) {\n this.log.error('Longitude or latitude does not set. Cannot use astro.');\n return;\n }\n\n // Calculate the next event today\n const todayDate = getAstroStartOfDay();\n const nowDate = new Date();\n\n const todaySunrise = this.getAstroEvent(\n todayDate,\n this.config.sunriseEvent,\n this.config.sunriseLimitStart,\n this.config.sunriseLimitEnd,\n this.config.sunriseOffset,\n false,\n this.config.latitude,\n this.config.longitude,\n );\n const todaySunset = this.getAstroEvent(\n todayDate,\n this.config.sunsetEvent,\n this.config.sunsetLimitStart,\n this.config.sunsetLimitEnd,\n this.config.sunsetOffset,\n true,\n this.config.latitude,\n this.config.longitude,\n );\n\n // Sunrise\n let sunriseTimeout = todaySunrise.getTime() - nowDate.getTime();\n if (sunriseTimeout < 0 || sunriseTimeout > 3600000) {\n sunriseTimeout = 3600000;\n }\n\n // Sunset\n let sunsetTimeout = todaySunset.getTime() - nowDate.getTime();\n if (sunsetTimeout < 0 || sunsetTimeout > 3600000) {\n sunsetTimeout = 3600000;\n }\n\n const isDayTime: ioBroker.State | null | undefined = await this.getStateAsync('variables.isDayTime');\n let isDay: boolean;\n if (sunriseTimeout < 5000) {\n isDay = true;\n } else if (sunsetTimeout < 5000) {\n isDay = false;\n } else {\n // check if in between\n isDay = nowDate.getTime() > todaySunrise.getTime() - 60000 && nowDate <= todaySunset;\n }\n\n const valDayTime = isDayTime ? !!isDayTime.val : false;\n if (valDayTime !== isDay || isDayTime === null) {\n await this.setState('variables.isDayTime', isDay, true);\n }\n\n const dayLightSaving: ioBroker.State | null | undefined =\n await this.getStateAsync('variables.isDaylightSaving');\n const isDayLightSaving = dstOffsetAtDate(nowDate) !== 0;\n const val = dayLightSaving ? !!dayLightSaving.val : false;\n\n if (val !== isDayLightSaving || dayLightSaving === null) {\n await this.setState('variables.isDaylightSaving', isDayLightSaving, true);\n }\n\n let nextTimeout = sunriseTimeout;\n if (sunriseTimeout > sunsetTimeout) {\n nextTimeout = sunsetTimeout;\n }\n nextTimeout = nextTimeout - 3000;\n if (nextTimeout < 3000) {\n nextTimeout = 3000;\n }\n\n this.dayScheduleTimer = setTimeout(() => this.dayTimeSchedules(), nextTimeout);\n }\n\n stopTimeSchedules(): void {\n if (this.dayScheduleTimer) {\n clearTimeout(this.dayScheduleTimer);\n this.dayScheduleTimer = null;\n }\n if (this.sunScheduleTimer) {\n clearTimeout(this.sunScheduleTimer);\n this.sunScheduleTimer = null;\n }\n if (this.timeScheduleTimer) {\n clearTimeout(this.timeScheduleTimer);\n this.timeScheduleTimer = null;\n }\n }\n\n async patchFont(): Promise {\n let stat: Stats | undefined;\n let dbFile: Buffer | undefined;\n let fileName = `${__dirname}/../admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n let jsonFileName = `${__dirname}/../admin/vsFont/codicon.json`;\n try {\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n if (!stat) {\n jsonFileName = `${__dirname}/admin/vsFont/codicon.json`;\n fileName = `${__dirname}/admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n }\n const _dbFile = await this.readFileAsync(\n 'javascript.admin',\n `vs/base/browser/ui/codicons/codicon/codicon.ttf`,\n );\n if (_dbFile?.file) {\n dbFile = _dbFile.file as Buffer;\n }\n } catch {\n // ignore\n }\n\n if (stat?.size !== 73452 || dbFile?.byteLength !== 73452) {\n try {\n const buffer = Buffer.from(JSON.parse(readFileSync(jsonFileName).toString()), 'base64');\n\n const jszip = await import('jszip');\n const zip = await jszip.loadAsync(buffer);\n let data: ArrayBuffer | undefined;\n if (zip) {\n data = await zip.file('codicon.ttf')?.async('arraybuffer');\n if (data?.byteLength !== 73452) {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n } else {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n writeFileSync(fileName, Buffer.from(data));\n // upload this file\n await this.writeFileAsync(\n 'javascript.admin',\n 'vs/base/browser/ui/codicons/codicon/codicon.ttf',\n Buffer.from(data),\n );\n return true;\n } catch (err: unknown) {\n this.log.error(`Cannot patch font: ${err as Error}`);\n return false;\n }\n }\n return false;\n }\n\n async sunTimeSchedules(): Promise {\n if (this.config.createAstroStates) {\n if (!isNaN(this.config.longitude) && !isNaN(this.config.longitude)) {\n const calcDate = getAstroStartOfDay();\n\n const times = this.mods.suncalc.getTimes(calcDate, this.config.latitude, this.config.longitude);\n\n this.log.debug(`[sunTimeSchedules] Times: ${JSON.stringify(times)}`);\n\n for (const t in times) {\n try {\n const objId = `variables.astro.${t}`;\n\n await this.setObjectNotExistsAsync(objId, {\n type: 'state',\n common: {\n name: `Astro ${t}`,\n type: 'string',\n role: 'value',\n read: true,\n write: false,\n },\n native: {},\n });\n\n if (times[t] !== null && !isNaN(times[t].getTime())) {\n const timeFormatted = formatHoursMinutesSeconds(times[t]);\n await this.setState(objId, {\n val: timeFormatted,\n c: times[t].toISOString(),\n ack: true,\n });\n } else {\n await this.setState(objId, { val: null, c: 'n/a', ack: true, q: 0x01 });\n }\n } catch (err: unknown) {\n this.log.error(\n `[sunTimeSchedules] Unable to set state for astro time \"${t}\" (${times[t].getTime()}): ${err as Error}`,\n );\n }\n }\n\n const todayDate = new Date();\n todayDate.setHours(0);\n todayDate.setMinutes(0);\n todayDate.setSeconds(1);\n todayDate.setMilliseconds(0);\n todayDate.setDate(todayDate.getDate() + 1);\n\n this.log.debug(`[sunTimeSchedules] Next: ${todayDate.toISOString()}`);\n this.sunScheduleTimer = setTimeout(() => this.sunTimeSchedules(), todayDate.getTime() - Date.now());\n }\n } else {\n // remove astro states if disabled\n this.delObject('variables.astro', { recursive: true });\n }\n }\n\n /**\n * Redirects the virtual-tsc log output to the ioBroker log\n */\n tsLog = (message: string, severity?: ioBroker.LogLevel): void => {\n // shift the severities around, we don't care about the small details\n if (!severity || severity === 'info') {\n severity = 'debug';\n } else if (severity === 'debug') {\n // Don't spam build logs on Travis\n if (isCI) {\n return;\n }\n severity = 'silly';\n }\n\n if (this?.log) {\n this.log[severity](message);\n } else {\n console.log(`[${severity.toUpperCase()}] ${message}`);\n }\n };\n\n addGetProperty(object: Record): void {\n try {\n Object.defineProperty(object, 'get', {\n value: function (id: string): any {\n return this[id] || this[`${this.namespace}.${id}`];\n },\n enumerable: false,\n });\n } catch {\n console.error('Cannot install get property');\n }\n }\n\n /**\n * Add declarations for global scripts\n *\n * @param scriptID - The current script the declarations were generated from\n * @param declarations - Declarations from script\n */\n provideDeclarationsForGlobalScript(scriptID: string, declarations: string): void {\n // Remember which declarations this global script had access to,\n // we need this so the editor doesn't show a duplicate identifier error\n if (this.globalDeclarations != null && this.globalDeclarations !== '') {\n this.knownGlobalDeclarationsByScript[scriptID] = this.globalDeclarations;\n }\n // and concatenate the global declarations for the next scripts\n this.globalDeclarations += `${declarations}\\n`;\n // remember all previously generated global declarations,\n // so global scripts can reference each other\n const globalDeclarationPath = 'global.d.ts';\n tsAmbient[globalDeclarationPath] = this.globalDeclarations;\n // make sure the next script compilation has access to the updated declarations\n this.tsServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n jsDeclarationServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n }\n\n fixLineNo(line: string): string {\n if (line.includes('javascript.js:')) {\n return line;\n }\n if (!/scripts?\\.js[.\\\\/]/.test(line)) {\n return line;\n }\n if (/:(\\d+):/.test(line)) {\n line = line.replace(\n /:(\\d+):/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}:`,\n ); // one line for 'async function ()'\n } else {\n line = line.replace(\n /:(\\d+)$/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}`,\n ); // one line for 'async function ()'\n }\n return line;\n }\n\n async debugStop(): Promise {\n if (this.debugState.child) {\n this.debugSendToInspector({ cmd: 'end' });\n this.debugState.endTimeout = setTimeout(() => {\n this.debugState.endTimeout = null;\n this.debugState.child?.kill('SIGTERM');\n }, 500);\n this.debugState.promiseOnEnd = this.debugState.promiseOnEnd || Promise.resolve(0);\n } else {\n this.debugState.promiseOnEnd = Promise.resolve(0);\n }\n\n await this.debugState.promiseOnEnd;\n\n this.debugState.child = null;\n this.debugState.running = false;\n this.debugState.scriptName = '';\n if (this.debugState.endTimeout) {\n clearTimeout(this.debugState.endTimeout);\n this.debugState.endTimeout = null;\n }\n }\n\n async debugDisableScript(id: string | undefined): Promise {\n if (id) {\n const obj = this.objects[id];\n if (obj?.common?.enabled) {\n await this.extendForeignObjectAsync(obj._id, { common: { enabled: false } });\n }\n }\n }\n\n debugSendToInspector(message: any): void {\n if (this.debugState.child) {\n try {\n this.log.info(`send to debugger: ${message}`);\n this.debugState.child.send(message);\n } catch {\n void this.debugStop().then(() =>\n this.log.info(\n `${this.debugState.scriptName}: Debugging was stopped, because started in normal mode`,\n ),\n );\n }\n } else {\n this.log.error(`${this.debugState.scriptName}: Cannot send command to terminated inspector`);\n void this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `Cannot send command to terminated inspector`, id: 1 }),\n true,\n );\n }\n }\n\n debugStart(data: { breakOnStart?: boolean; scriptName?: string; adapter?: string }): void {\n if (Date.now() - this.debugState.started < 1000) {\n console.log('Start ignored');\n return;\n }\n\n this.debugState.started = Date.now();\n // stop the script if it's running\n void this.debugDisableScript(data.scriptName)\n .then(() => this.debugStop())\n .then(() => {\n if (data.adapter) {\n this.debugState.adapterInstance = data.adapter;\n this.debugState.scriptName = '';\n } else {\n this.debugState.adapterInstance = '';\n this.debugState.scriptName = data.scriptName as string;\n }\n\n this.debugState.breakOnStart = data.breakOnStart;\n\n this.debugState.promiseOnEnd = new Promise(resolve => {\n const options: ForkOptions = {\n stdio: ['ignore', 'inherit', 'inherit', 'ipc'],\n //stdio: ['pipe', 'pipe', 'pipe', 'ipc']\n };\n const args: string[] = [];\n if (this.debugState.adapterInstance) {\n args.push('--breakOnStart');\n }\n\n this.debugState.child = fork(`${__dirname}/lib/inspect.js`, args, options);\n\n /*debugState.child.stdout.setEncoding('utf8');\n debugState.child.stderr.setEncoding('utf8');\n debugState.child.stdout.on('data', childPrint);\n debugState.child.stderr.on('data', childPrint);*/\n\n this.debugState.child?.on(\n 'message',\n (\n message:\n | string\n | {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n },\n ) => {\n let oMessage: {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n };\n if (typeof message === 'string') {\n try {\n oMessage = JSON.parse(message);\n } catch {\n return this.log.error(`Cannot parse message from inspector: ${message}`);\n }\n } else {\n oMessage = message;\n }\n\n if (oMessage.cmd !== 'ready') {\n void this.setState('debug.from', JSON.stringify(oMessage), true);\n }\n\n switch (oMessage.cmd) {\n case 'ready': {\n this.debugSendToInspector({\n cmd: 'start',\n scriptName: this.debugState.scriptName,\n adapterInstance: this.debugState.adapterInstance,\n instance: this.instance,\n });\n break;\n }\n\n case 'watched': {\n //console.log(`WATCHED: ${JSON.stringify(oMessage)}`);\n break;\n }\n\n case 'paused': {\n this.debugState.paused = true;\n console.log(`host: PAUSED`);\n break;\n }\n\n case 'resumed': {\n this.debugState.paused = false;\n //console.log(`STARTED`);\n break;\n }\n\n case 'log': {\n console.log(`[${oMessage.severity}] ${oMessage.text}`);\n break;\n }\n\n case 'readyToDebug': {\n console.log(\n `host: readyToDebug (set breakpoints): [${oMessage.scriptId}] ${oMessage.script}`,\n );\n break;\n }\n }\n },\n );\n this.debugState.child?.on('error', error => {\n this.log.error(`Cannot start inspector: ${error}`);\n void this.setState('debug.from', JSON.stringify({ cmd: 'error', error }), true);\n });\n\n this.debugState.child?.on('exit', async (code: number): Promise => {\n if (code) {\n await this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `invalid response code: ${code}` }),\n true,\n );\n }\n await this.setState('debug.from', JSON.stringify({ cmd: 'debugStopped', code }), true);\n this.debugState.child = null;\n resolve(code);\n });\n });\n });\n }\n}\n\nfunction patternMatching(\n event: EventObj,\n patternFunctions: PatternEventCompareFunction[] & { logic?: 'and' | 'or' },\n): boolean {\n let matched = false;\n for (let i = 0, len = patternFunctions.length; i < len; i++) {\n if (patternFunctions[i](event)) {\n if (patternFunctions.logic === 'or') {\n return true;\n }\n matched = true;\n } else if (patternFunctions.logic === 'and') {\n return false;\n }\n }\n return matched;\n}\n\n// If started as allInOne mode => return function to create instance\nif (require.main !== module) {\n // Export the constructor in compact mode\n module.exports = (options: Partial | undefined) => new JavaScript(options);\n} else {\n // otherwise start the instance directly\n (() => new JavaScript())();\n}\n"]} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAAqD;AACrD,qCAAwF;AACxF,yCAAiD;AACjD,2DAA4D;AAC5D,6CAAkE;AAClE,yCAA8C;AAC9C,wDAAgC;AAEhC,kDAAoC;AACpC,oDAAsC;AACtC,8CAAgC;AAChC,oDAAsC;AACtC,gDAAkC;AAClC,kDAAoC;AACpC,kDAAoC;AACpC,8CAAgC;AAChC,4CAA8B;AAC9B,gDAAkC;AAClC,gDAAkC;AAClC,kEAAoD;AACpD,oDAAsC;AACtC,gDAAkC;AAElC,sCAAsC;AACtC,kDAAoC;AACpC,6CAA+B;AAC/B,sCAAsC;AACtC,yDAA2C;AAC3C,4DAA8C;AAE9C,yDAA6G;AAK7G,yCAAsC;AACtC,gEAAwC;AACxC,uCAAuD;AACvD,2CAAwC;AACxC,uEAAqE;AACrE,6CAAkE;AAClE,+CAAiE;AACjE,iEAAwG;AACxG,uCAAyC;AACzC,2DAM+B;AAuC/B;;;;GAIG;AACH,MAAM,wBAAwB,GAAa;IACvC,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,QAAQ;CACX,CAAC;AAEF,MAAM,WAAW,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7G,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAExC,IAAI,aAAiC,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAE9B,sCAAsC;AACtC,IAAI,SAAiC,CAAC;AAEtC,yEAAyE;AACzE,kHAAkH;AAClH,qCAAqC;AACrC,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,oBAAoB,WAAW,CAAC,OAAO,eAAe,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;AAErH,2IAA2I;AAC3I,SAAS,eAAe,CAAC,SAAe;IACpC,MAAM,QAAQ,GAAW,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACrD,+EAA+E;IAC/E,iFAAiF;IACjF,0EAA0E;IAC1E,gDAAgD;IAChD,MAAM,UAAU,GAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,8CAA8C;IAC9C,+EAA+E;IAC/E,MAAM,SAAS,GAAW,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO;IACH,qDAAqD;IACrD,CAAC,SAAS,GAAG,yCAAyC;QACtD,uEAAuE;QACvE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,6CAA6C;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,0DAA0D;QAC1D,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,8CAA8C;QAC9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,qCAAqC;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,2BAA2B;YACtD,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC1D,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ;YACxC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM;YACtC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;YACvC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS;YACzC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY;YAC5C,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU;YAC1C,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW;YAC5C,mEAAmE;YACnE,qEAAqE;YAErE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,uBAAuB;YACpD,MAAM,CAAC;YACP,EAAE;YACF,EAAE,GAAG,2CAA2C;YAChD,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB;YAC7D,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC;YACF,EAAE;YACF,IAAI,GAAG,yDAAyD;QACpE,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,gCAAgC;QACzE,SAAS,CAAC,eAAe,EAAE,CAC9B,CAAC;AACN,CAAC;AAED,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAE9C,SAAS,aAAa,CAAC,GAA0B;IAC7C,OAAO,GAAG,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,YAAY,CAAC,GAA2B,EAAE,EAAU,EAAE,QAAgB;IAC3E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,UAAoB;IACxD,MAAM,GAAG,GAAS,kBAAkB,EAAE,CAAC;IACvC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC/C,IACI,UAAU;QACV,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC,EACrG,CAAC;QACC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzB,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAE7B,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB;IACvB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEjB,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAU;IACzC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAEpC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,iFAAiF;AACjF,sIAAsI;AACtI,qDAAqD;AACrD,IAAA,yCAA2B,EAAC;IACxB,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,mBAAmB,GAAW,IAAI,oBAAM,CAAC,iDAA4B,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACvG;;;GAGG;AAEH,MAAM,UAAW,SAAQ,sBAAO;IAGX,OAAO,CAAoB;IAEpC,gBAAgB,GAMpB;QACA,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACxC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1C,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KAC7C,CAAC;IAEe,IAAI,CAAU;IAEvB,eAAe,GAAG,KAAK,CAAC;IACxB,cAAc,GAAG,KAAK,CAAC;IAEvB,OAAO,GAAoC,EAAE,CAAC;IAC9C,MAAM,GAAmC,EAAE,CAAC;IACnC,kBAAkB,GAAmC,EAAE,CAAC;IACxD,QAAQ,GAAa,EAAE,CAAC;IACxB,aAAa,GAAyB,EAAE,CAAC;IACzC,iBAAiB,GAA6B,EAAE,CAAC;IACjD,mBAAmB,GAAsB,EAAE,CAAC;IAC5C,kBAAkB,GAA2B,EAAE,CAAC;IAChD,sBAAsB,GAA2B,EAAE,CAAC;IACpD,WAAW,GAA6B,EAAE,CAAC;IAC3C,MAAM,GAAgD,EAAE,CAAC;IACzD,MAAM,GAAa,EAAE,CAAC;IACtB,KAAK,GAA0C,EAAE,CAAC,CAAC,WAAW;IAC9D,OAAO,GAA6B,EAAE,CAAC;IACvC,kBAAkB,GAG/B,EAAE,CAAC;IACU,gBAAgB,GAQ7B,EAAE,CAAC;IACU,eAAe,GAAqC,EAAE,CAAC,CAAC,aAAa;IACrE,6BAA6B,GAA4B,EAAE,CAAC;IAE7E,oCAAoC;IAC5B,aAAa,GAAG,KAAK,CAAC;IAEtB,YAAY,GAGhB,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAEpC,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,gBAAgB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAChF,iBAAiB,GAA0B,IAAI,CAAC,CAAC,gCAAgC;IAEjF,SAAS,GAAG,EAAE,CAAC,CAAC,uBAAuB;IAEvC,MAAM,CAAqB;IAE3B,YAAY,GAA2B,EAAE,CAAC;IAE1C,0BAA0B,GAA0B,IAAI,CAAC;IAEzD,YAAY,GAAG,EAAE,CAAC;IAC1B,oDAAoD;IAC5C,kBAAkB,GAAG,EAAE,CAAC;IAChC,gDAAgD;IAChD,8DAA8D;IACtD,+BAA+B,GAA2B,EAAE,CAAC;IAC7D,iBAAiB,GAAG,CAAC,CAAC;IAC9B,mCAAmC;IAC3B,QAAQ,CAAS;IAER,kBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAErD,UAAU,GAAe;QAC7B,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,KAAK;KACjB,CAAC;IAEF,YAAY,UAAmC,EAAE;QAC7C,OAAO,GAAG;YACN,GAAG,OAAO;YACV,IAAI,EAAE,YAAY,EAAE,eAAe;YACnC,aAAa,EAAE,IAAI;YACnB;;;eAGG;YACH,KAAK,EAAE,CAAC,GAAU,EAAW,EAAE;gBAC3B,kEAAkE;gBAClE,mEAAmE;gBACnE,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,MAAM,qBAAqB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;oBACpE,IAAI,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC7B,yBAAyB;wBACzB,IAAI,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;wBAC5D,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAEzC,mCAAmC;wBACnC,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;oBACD,+DAA+D;oBAC/D,8EAA8E;oBAC9E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,EAAE,CAAC;wBACrE,2FAA2F;wBAC3F,0CAA0C;wBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,oHAAoH,CACvH,CAAC;wBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAE1B,kEAAkE;wBAClE,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;gBAED,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC;QAEF,KAAK,CAAC,OAAyB,CAAC,CAAC;QAEjC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,GAAG;YACR,EAAE,EAAE,EAAe;YACnB,aAAa,EAAE,EAA2B;YAC1C,KAAK;YACL,MAAM;YACN,GAAG;YACH,MAAM;YACN,IAAI;YACJ,KAAK;YACL,KAAK;YACL,GAAG;YACH,EAAE;YACF,IAAI;YACJ,IAAI;YACJ,aAAa;YACb,MAAM;YACN,IAAI;YAEJ,OAAO;YACP,KAAK;YACL,WAAW;YACX,YAAY;SACf,CAAC;QAEF,gDAAgD;QAChD,IAAI,SAA6B,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3C,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;oBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACJ,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;YAEjE,OAAO,EAAE,KAAK,EAAE,kCAAkC;YAClD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,IAAI,EAAE,eAAe;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAE/B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9D,4BAA4B,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1E,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;YACxD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,SAAS;YACT,yBAAyB,EAAzB,wCAAyB;YACzB,OAAO,EAAE,IAAmC;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SACrC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAM,CAAC,sCAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,GAA4B;QACzD,6FAA6F;QAC7F,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,sDAAsD;YACtD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAsB,CAAC;YAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,GAAG,EAAE,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,CAAC;YACD,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,cAAc;YACd,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAEnC,2BAA2B;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACN,SAAS;gBACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpC,aAAa;gBACb,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,EAAE,KAAK,eAAe,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAClD,kCAAkC;YAClC,IAAA,mBAAW,EAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QAChE,CAAC;QAED,kDAAkD;QAClD,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,oBAAoB,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;YAC9D,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5G,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,GAAmC,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,8BAA8B;QAEjE,oFAAoF;QACpF,gFAAgF;QAChF,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,0BAA0B;YAC1B,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;iBACxB,IAAI,CAAC,KAAK,CAAC,EAAE;gBACV,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACR,YAAY;YAChB,CAAC,CAAC,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACnC,4CAA4C;YAC5C,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,0BAA0B;YAC1B,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,mFAAmF;gBACnF,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzE,+DAA+D;gBAC/D,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAE1B,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAEpC,uCAAuC;gBACvC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,wCAAwC;YACxC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,6CAA6C;gBAC7C,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAA6B,CAAC,CAAC;oBACvE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACnE,oDAAoD;gBACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACnC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACrB,6BAA6B;oBAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YACrD,qBAAqB;YACrB,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC5D,4BAA4B;oBAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACxD,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,IACI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,kBAAkB;oBAClB,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBAC7F,2BAA2B;wBAC3B,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC9B,CAAC;gBACL,CAAC;qBAAM,IACH,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;oBACjD,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE;wBAC3D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC,EAC/D,CAAC;oBACC,iBAAiB;oBAEjB,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;wBACjF,eAAe;wBACf,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,uDAAuD;oBACvD,uCAAuC;oBACvC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9E,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC/B,+EAA+E;wBAC/E,qCAAqC;wBACrC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC3B,KAAK,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBACjC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,KAA6B;QACnD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,sDAAsD;YACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,OAAO;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,WAAW,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,OAAO;QACX,CAAC;QAED,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAsC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,QAAQ,EAAE,CAAC;gBACX,2BAA2B;gBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;oBAClF,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;wBAC1D,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE;qBACjC,CAAC,CAAC;gBACP,CAAC;gBAED,8FAA8F;gBAC9F,KAAI,gBAAiB,QAAQ,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChF,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC5B,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5F,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,KAAI,iBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,GAAG,EAAoB,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,4BAAiB,EAC/B,IAAI,CAAC,OAAO,EACZ,EAAE,EACF,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,KAAK,CAAC,EAC5C,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAClD,CAAC;QAEF,0CAA0C;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,EAAE,uBAAuB,IAAI,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC1F,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,QAAgB,EAAE,IAAmB;QAC1D,yCAAyC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAoB;QAC/B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC/C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACjC,QAAQ,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;QAC/G,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAyC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;QAE9G,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,cAAc,GAAsC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAExF,CAAC;YACF,IAAI,cAAc,EAAE,eAAe,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;oBACvC,KAAK,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACrC,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC5C,IACI,SAAS,CAAC,UAAU,EAAE,MAAM;gCAC5B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;gCAC1C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EACpC,CAAC;gCACC,6CAA6C;gCAC7C,IACI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACrC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAC/C,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,4EAA4E;gCAC5E,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;gCAC1D,IACI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAC7B,KAAK,CAAC,EAAE,CACJ,KAAK,CAAC,QAAQ;oCACd,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oCAClC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAClD,EACH,CAAC;oCACC,OAAO,IAAI,CAAC;gCAChB,CAAC;gCACD,+DAA+D;gCAC/D,OAAO,KAAK,CAAC;4BACjB,CAAC;wBACL,CAAC;wBAED,uCAAuC;wBACvC,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,GAAqB;QAC3B,QAAQ,GAAG,EAAE,OAAO,EAAE,CAAC;YACnB,6BAA6B;YAC7B,KAAK,UAAU,CAAC;YAChB,KAAK,cAAc;gBACf,IACI,GAAG,CAAC,OAAO;oBACX,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;wBAC1B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBAClC,cAAc,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS;wBACvD,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,EAC9C,CAAC;oBACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAChD,iDAAiD;wBACjD,IACI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;4BACpD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EACpD,CAAC;4BACC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gCACjE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gCAEhC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gCAEpF,IAAI,CAAC;oCACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wCACf,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gDAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;4CACvE,CAAC;4CAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wCAC7D,CAAC,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAW,EAAE,EAAE;4CACvD,OAAO,CAAC,OAAO;gDACX,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wCAC3E,CAAC,CAAC,CAAC;oCACP,CAAC;gCACL,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,KAAK,IAAI,CAAC,QAAQ,CACd,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC5D,IAAI,EACJ,IAAI,CACP,CAAC;oCACF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAY,CAAC,CAAC;gCAC5D,CAAC;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBACD,MAAM;YAEV,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjB,8BAA8B;gBAC9B,MAAM,OAAO,GAA2B,EAAE,CAAC;gBAE3C,6CAA6C;gBAC7C,IAAI,CAAC;oBACD,MAAM,cAAc,GAAG,IAAA,uCAAqB,EAAC,gCAAW,CAAC,CAAC;oBAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACL,qBAAqB;gBACzB,CAAC;gBAED,6EAA6E;gBAC7E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAElC,oEAAoE;gBACpE,KAAK,MAAM,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,EAAE,CAAC;oBAChF,OAAO,CAAC,GAAG,iBAAiB,OAAO,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,iBAAiB,CAAC,CAAC;gBACnG,CAAC;gBAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBAClB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBACnC,IAAI,WAAW,GAA6D,EAG3E,CAAC;oBACF,IAAI,CAAC;wBACD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACzE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;oBACnE,CAAC;oBACD,IAAI,WAAW,EAAE,CAAC;wBACd,IAAI,CAAC;4BACD,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CACxC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EACpD,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC9D,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAC1D,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;4BACF,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CACvC,KAAK,EACL,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAClD,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5D,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EACxD,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;wBACN,CAAC;wBAAC,OAAO,GAAY,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAY,EAAE,CAAC,CAAC;wBACnE,CAAC;oBACL,CAAC;oBAED,MAAM,MAAM,GAA+E,EAAE,CAAC;oBAC9F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACJ,WAAiD,CAAC,CAAC,CAAC;wBACpD,WAAiD,CAAC,CAAC,CAAC,CAC5D,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;wBACf,MAAM,SAAS,GACV,WAAwD,CAAC,GAAG,CAAC,KAAK,IAAI;4BACvE,CAAC,KAAK,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBAE5E,MAAM,CAAC,GAAG,CAAC,GAAG;4BACV,WAAW,EAAE,SAAS;4BACtB,UAAU,EAAE,SAAS;gCACjB,CAAC,CAAC,yBAAyB,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC;gCAClF,CAAC,CAAC,KAAK;4BACX,IAAI,EAAE,SAAS;gCACX,CAAC,CAAE,WAA+C,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;gCACrE,CAAC,CAAC,KAAK;yBACd,CAAC;oBACN,CAAC,CAAC,CAAC;oBAEH,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC7D,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,SAAS,GACX,UAAU,CACN,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CACtF,IAAI,CAAC,CAAC;oBACX,MAAM,QAAQ,GACV,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC5F,CAAC,CAAC;oBACN,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;oBAEnC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC3E,MAAM,iBAAiB,GAAG,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;oBAC1F,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;oBACpF,MAAM,aAAa,GACf,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;wBAC3B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAC/B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBACxE,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;oBACvF,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;oBACjF,MAAM,YAAY,GACd,QAAQ,CACJ,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY;wBAC1B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAC9B,EAAE,CACL,IAAI,CAAC,CAAC;oBACX,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CACjC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,IAAI,CACP,CAAC;oBAEF,MAAM,gBAAgB,GAAG,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/E,MAAM,eAAe,GAAG,UAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;oBAE5E,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,YAAY,aAAa,iBAAiB,UAAU,eAAe,aAAa,aAAa,MAAM,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAClL,CAAC;oBACF,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,sBAAsB,WAAW,aAAa,gBAAgB,UAAU,cAAc,aAAa,YAAY,MAAM,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAC5K,CAAC;oBAEF,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;4BACI,WAAW,EAAE;gCACT,WAAW,EAAE,gBAAgB;gCAC7B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC7E,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE;6BAClC;4BACD,UAAU,EAAE;gCACR,WAAW,EAAE,eAAe;gCAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;gCAC3E,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE;6BACjC;yBACJ,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;oBACN,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC1B,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChE,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,iDAAiD;gBACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;gBAChC,MAAM;YACV,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBACxB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CACP,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,OAAO,EACX;wBACI,OAAO,EAAE,IAAA,wCAAyB,GAAE;wBACpC,GAAG,EAAH,eAAG;qBACN,EACD,GAAG,CAAC,QAAQ,CACf,CAAC;gBACN,CAAC;gBACD,MAAM;YACV,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBACd,gCAAgC;gBAChC,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,IAAI,CAAC;wBACD,kBAAQ;6BACH,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;4BACtB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;4BAChE,UAAU,EAAE,GAAG;4BACf,IAAI,EAAE,IAAI;4BACV,QAAQ,EAAE,CAAC;4BACX,OAAO,EAAE,KAAK;4BACd,aAAa,EAAE,KAAK;4BACpB,WAAW,EAAE,IAAI;4BACjB,sBAAsB,EAAE,IAAI;4BAC5B,SAAS,EAAE,IAAI;4BACf,cAAc,EAAE,IAAI;4BACpB,WAAW,EAAE,OAAO;4BACpB,UAAU,EAAE,WAAW;yBAC1B,CAAC;6BACD,IAAI,CAAC,aAAa,CAAC,EAAE;4BAClB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gCACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAC9E,CAAC;iCAAM,CAAC;gCACJ,IAAI,CAAC,eAAe,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;4BAC9D,CAAC;wBACL,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,CAAC,EAAE;4BACP,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;4BAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACzF,CAAC,CAAC,CAAC;oBACX,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAU,CAAC,CAAC;wBAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAG,CAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACzF,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAQ;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAQ,EAAE,CAC9D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1C,IACI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU;gBAChC,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,EACjE,CAAC;gBACC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;gBACrD,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACtC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAC3C,CAAC;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,GAAW,EAAE,CAAQ,EAAE,IAAa;QAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,IAAI,GAAG,CAAC;QACf,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACZ,SAAS;YACb,CAAC;YACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC;gBACpD,MAAM;YACV,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAW;QACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACZ,SAAS;gBACb,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,EAAE,CAAC;oBACjE,MAAM;gBACV,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAEpG,+BAA+B;QAC/B,MAAM,OAAO,GAA+C,MAAM,IAAI,CAAC,qBAAqB,CACxF,kBAAkB,IAAI,CAAC,SAAS,EAAE,CACrC,CAAC;QACF,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YAClB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAChD,CAAC;gBACD,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,GAAG;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;aACrB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAA,wCAAyB,GAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,mCAAmC;QAErF,8BAA8B;QAC9B,IAAI,CAAC;YACD,SAAS,GAAG;gBACR,iBAAiB,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC;aACjG,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;YACpD,mBAAmB,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,GAAY,EAAE,CAAC,CAAC;YACjF,4DAA4D;YAC5D,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBACxD,IAAI,cAAc,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;oBACtD,YAAY,EAAE,gBAAgB,CAAC,GAAY,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YACD,0EAA0E;YAC1E,SAAS,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,iEAAiE;QACjE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,qBAAS,CAClC,IAAI,CAAC,GAAG,EACR,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE1B,6GAA6G;QAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QACnD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,yBAAyB;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBACpB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;wBAE/D,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACrB,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gCACtC,aAAa;gCACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,kCAAkC,CAAC,CAAC;gCAC5D,4EAA4E;gCAC5E,mGAAmG;gCACnG,+HAA+H;gCAC/H,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gCACpF,0EAA0E;gCAC1E,0EAA0E;gCAC1E,wCAAwC;gCACxC,oEAAoE;gCACpE,mFAAmF;gCACnF,MAAM,UAAU,GAAW,IAAA,kBAAU,EACjC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CACjE,CAAC;gCAEF,IAAI,QAA4B,CAAC;gCACjC,IAAI,YAAgC,CAAC;gCACrC,8EAA8E;gCAC9E,2EAA2E;gCAC3E,iCAAiC;gCACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oCACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oCACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oCACC,iCAAiC;oCACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oCAC/B,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;oCACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,kEAAkE,CAC/E,CAAC;gCACN,CAAC;qCAAM,CAAC;oCACJ,iFAAiF;oCACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCAC/C,IAAI,UAAyB,CAAC;oCAC9B,IAAI,CAAC;wCACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oCACpE,CAAC;oCAAC,OAAO,GAAY,EAAE,CAAC;wCACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wCAC9E,SAAS;oCACb,CAAC;oCAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW;yCAChC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC;yCACxC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAEhB,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wCACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4CACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,oDAAoD,MAAM,EAAE,CACzE,CAAC;wCACN,CAAC;6CAAM,CAAC;4CACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,CAAC,CAAC;wCACnE,CAAC;wCACD,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;wCAC7B,mHAAmH;wCACnH,YAAY,GAAG,IAAA,6CAA2B,EAAC,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;wCAE1E,MAAM,SAAS,GAIX;4CACA,UAAU;4CACV,QAAQ;yCACX,CAAC;wCACF,IAAI,YAAY,EAAE,CAAC;4CACf,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;wCAC1C,CAAC;wCAED,0GAA0G;wCAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD;wCACzF,KAAK,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE;4CACnC,MAAM,EAAE,SAAS;yCACpB,CAAC,CAAC;oCACP,CAAC;yCAAM,CAAC;wCACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,MAAM,EAAE,CAAC,CAAC;wCACxE,SAAS;oCACb,CAAC;gCACL,CAAC;gCACD,IAAI,CAAC,YAAY,IAAI,GAAG,QAAQ,IAAI,CAAC;gCACrC,gDAAgD;gCAChD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;oCACvB,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;gCACnE,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,aAAa;gCACb,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gCACrC,IAAI,CAAC,YAAY,IAAI,GAAG,UAAU,IAAI,CAAC;gCAEvC,yDAAyD;gCACzD,0CAA0C;gCAC1C,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCAC/C,IAAI,UAAyB,CAAC;gCAC9B,IAAI,CAAC;oCACD,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gCACnE,CAAC;gCAAC,OAAO,GAAY,EAAE,CAAC;oCACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,GAAG,CAAC,GAAG,0DAA0D,GAAY,EAAE,CACrF,CAAC;oCACF,SAAS;gCACb,CAAC;gCACD,gDAAgD;gCAChD,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;oCACxD,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;gCAC9E,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnE,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACpB,mBAAmB;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAmC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAChG,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAA,wCAAyB,GAAE,GAAG,eAAG,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAA,qBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,KAAK,IAAI,GAAG,IAAI,wBAAwB,EAAE,CAAC;oBACvC,GAAG,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,GAAG,CAAC,GAAG,eAAG,CAAC;oBAClC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACjF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;wBAC1F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,kCAAkC,CAAC,CAAC;wBACtF,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC;wBACrB,OAAO,EAAE,IAAI;wBACb,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;qBACnC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,0BAA0B,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpB,OAAO;gBACX,CAAC;gBACD,MAAM,+BAA+B,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC;gBAClF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,GAAG,CAAC,CAAC;gBAC9C,IAAI,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;oBACrE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,uCAAuC,IAAI,CAAC,MAAM,CAAC,oBAAoB,iCAAiC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,sBAAsB,CACtL,CAAC;oBACF,4EAA4E;oBAC5E,oCAAoC;oBACpC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;wBACvD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,EAAE,0CAA0C,IAAI,CAAC,MAAM,CAAC,oBAAoB,mEAAmE,CACrJ,CAAC;wBACF,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC7B,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,GAAG,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAAC;oBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,UAAU,EAAE,mCAAmC,IAAI,CAAC,MAAM,CAAC,oBAAoB,2DAA2D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,+BAA+B,EAAE,CAC/L,CAAC;gBACN,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAEO,0BAA0B;QAC9B,4DAA4D;QAC5D,MAAM,QAAQ,GAAG;YACb,MAAM,EAAE,kDAAkD;YAC1D,iBAAiB,EAAE,kDAAkD;SACxE,CAAC;QACF,gFAAgF;QAChF,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC/F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;iBACtC,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;iBAC1C,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,yFAAyF;YACzF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;YACD,yGAAyG;YACzG,mFAAmF;YACnF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC7B,0DAA0D;gBAC1D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,SAAS;gBACb,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnD,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,IAAA,gCAAc,EAC3B,GAAG,EACH,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;YAC1F,oEAAoE;YACpE,GAAG,KAAK,MAAM,CACjB,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,+EAA+E;gBAC/E,yBAAyB;gBACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,UAAU,GAAG;wBACT,CAAC,gBAAgB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACjE,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,UAAU,GAAG;wBACT,CAAC,uBAAuB,GAAG,aAAa,CAAC,EAAE,mBAAmB,GAAG,IAAI;qBACxE,CAAC;gBACN,CAAC;YACL,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YACzG,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACrC,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;YACrD,mBAAmB,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,EAAU,EAAE,GAAuC;QACnE,IAAI,GAAG,EAAE,CAAC;YACN,+BAA+B;YAC/B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACzB,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEpC,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,qCAAqC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACtD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAED,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrD,MAAM,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,sBAAsB;YACtB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,mBAAmB;YACnB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;YACxC,sBAAsB;YACtB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAEvB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAErE,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC/B,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,CAAC;oBACJ,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,EAAE,EAAE,CAAC;oBACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,4BAA4B,CACxB,EAAU,EACV,KAAwC;QAExC,IACI,KAAK;YACL,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAC7B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;YACxB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzF,CAAC;YACC,IAAI,CAAC;gBACD,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,iCAAiC,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CACjG,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,wBAAwB,CAAC,EAAU,EAAE,KAA0B,EAAE,KAAc;QAC3E,gEAAgE;QAChE,MAAM,MAAM,GAAmB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAoB,CAAC;QAE5E,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,KAAoC;QAC/D,IAAI,MAAsB,CAAC;QAE3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,GAAG,KAAuB,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAoB,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,+CAA+C;QAC/C,mCAAmC;QACnC,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,IAAI;YACP,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,EAAE,CAAC;QAE7G,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,0DAA0D;gBAC1D,MAAM,UAAU,GAAG,CAAC,IAAA,6BAAiB,EAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACxE,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;oBACrC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC;QAE7C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAElC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YAED,mBAAmB;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACnB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAExC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;aACjE,IAAI,CAAC,GAAG,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACtE,SAAS;gBACb,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClD,8BAA8B;oBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxD,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAE3F,oBAAoB;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAEnD,kCAAkC;YAClC,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;gBACjC,IAAA,mBAAW,EAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;YAChE,CAAC;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvB,IAAA,mBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1C,CAAC;YAED,gCAAgC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC3B,IAAI,YAAY,EAAE,MAAM,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC1D,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAA6B,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAA8B,CAAC,CAAC;YAE/E,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YACjG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,wBAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,sDAAsD,CACrG,CAAC;YACN,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;YAClG,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACrE,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,yBAAyB,IAAI,CAAC,MAAM,CAAC,SAAS,sDAAsD,CACvG,CAAC;YACN,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;YAErE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC;YAEnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,yBAAU,CAAC,4BAA4B,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEP,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,OAAgB;QACjD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE9F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACrB,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,eAAe;iBACxB;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnE,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,sBAAsB,CAAC;gBAC/D,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,sBAAsB,CAAC;gBACzD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EAAU;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,kBAAkB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAE/F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG;gBACtB,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE;oBACJ,IAAI,EAAE,iBAAiB,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;oBAChE,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,iBAAiB;iBAC1B;gBACD,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE;iBACb;gBACD,IAAI,EAAE,OAAO;aAChB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACrE,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAoB;QAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;QAEnB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACnB,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC,IAAA,mBAAW,GAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,sCAAsC;gBACtC,OAAO;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC,CAAC;gBACpD,CAAC;gBAEA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,EAAE,CAAC;YACJ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAE7B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAAU;QACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,CAAC;gBACb,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,SAAS,CAAC;YAEvB,iFAAiF;YACjF,wCAAwC;YACxC,MAAM,GAAG,GAAG,eAAe,MAAM,aAAa,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,SAAS,SAAS,WAAW,GAAG,EAAE,CAAC,CAAC;YAEtE,uDAAuD;YACvD,0IAA0I;YAC1I,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5C,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAErE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,CAAC,cAAc,EAAE,EAAE;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBACD,oBAAoB;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAa,IAAI,CAAC,MAAM,CAAC,SAAS;aAC5C,KAAK,CAAC,SAAS,CAAC;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvG,IAAI,oBAAoB,GAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,wBAAwB,KAAK,UAAU,EAAE,CAAC;YACtD,oBAAoB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAE7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,GAAG,GAAG,CAAC;YAClB,IAAI,OAAO,GAAG,QAAQ,CAAC;YAEvB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;gBAClC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,qEAAqE;YACrE,IAAI,UAAU,GAAG,OAAO,CAAC;YAEzB,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,UAAU,GAAG,MAAM,IAAA,8CAAsB,EAAC,OAAO,CAAC,CAAC;gBAEnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,WAAW,OAAO,GAAG,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;YACjF,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,uBAAuB;YACvB,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBAClE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;wBAEvE,MAAM,cAAc,GAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;wBACnE,IAAI,CAAC,IAA4B,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,GAAG,CAAC,CAAC;oBAClF,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,UAAU,IAAI,OAAO,MAAM,GAAY,EAAE,CAAC,CAAC;gBACnG,CAAC;YACL,CAAC;iBAAM,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,SAAS,iBAAiB,OAAO,eAAe,CAAC,EAAE,CAAC;gBAC1E,sBAAsB;gBACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,GAAG,GAAG,CAAC,CAAC;gBAEnE,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,GAAG,GAAG,CAAC,CAAC;gBAC1E,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,GAAG,oBAAoB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACjG,CAAC;YACL,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YACjD,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC;wBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;wBAEpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,mBAAmB,GAAG,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,mBAAmB,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAChG,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,SAAkB;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,oBAAoB,GACtB,4GAA4G;gBAC5G,4EAA4E;gBAC5E,iGAAiG;gBACjG,oFAAoF;gBACpF,6GAA6G,CAAC;YAElH,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,mBAAmB,MAAM,KAAK,oBAAoB,SAAS,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACJ,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClC,6EAA6E;oBAC7E,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB;oBACvD,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,gBAAgB,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,GAAG,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBAClD,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,GAAG,4BAA4B,MAAM,SAAS,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,YAAY,MAAM,EAAE,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACD,MAAM,OAAO,GAAkB;gBAC3B,QAAQ,EAAE,IAAI;gBACd,uBAAuB;gBACvB,qCAAqC;aACxC,CAAC;YACF,OAAO;gBACH,MAAM,EAAE,IAAI,gBAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aAC1B,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAY,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAgB,EAAE,IAAY,EAAE,UAAsB,EAAE,OAAgB,EAAE,KAAc;QAC5F,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;QAC3B,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAAC;QACpC,MAAM,CAAC,+BAA+B,GAAG,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;YAC7E,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAA,iBAAO,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;gBACnC,QAAQ,EAAE,IAAI;gBACd,aAAa,EAAE,IAAI;gBACnB,qCAAqC;aACxC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC7E,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,CAAC,EAAE,SAAS;aACf,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,GAAY,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,WAAW,CAAC,EAA8B;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QAED,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,0DAA0D;YAC1D,OAAO;QACX,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC;YAC1C,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,sBAAsB;QAClB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,sEAAsE;QACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpF,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;QAE1C,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/F,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAErE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,6BAA6B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YAAC,MAAM,CAAC;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,sCAAsC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,4BAA4B;YAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxB,2BAA2B;gBAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACpD,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBACjE,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;4BACnC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;4BAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;4BACnC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gCAClB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BAC3B,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;wBAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IACI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACjE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EACtC,CAAC;wBACC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBAChC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzD,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;oBAC3E,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACpC,KAAK,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;wBAC5C,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5D,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,GAAG,EAAE,CAAC;wBACN,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAChD,CAAC;gBACL,CAAC;YACL,CAAC;YAED,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1D,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,qBAAqB;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,0BAA0B;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,uCAAuC,KAAK,GAAG,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjE,CAAC;gBACL,CAAC;YACL,CAAC;YAED,0BAA0B;YAC1B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa;oBAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;gBAEhF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;oBACxB,IAAI,OAAO,GAA0B,UAAU,CAAC,GAAG,EAAE;wBACjD,IAAI,OAAO,EAAE,CAAC;4BACV,OAAO,GAAG,IAAI,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,CAAC;wBAClB,CAAC;oBACL,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;oBAErC,IAAI,CAAC;wBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;4BAC7B,IAAI,OAAO,EAAE,CAAC;gCACV,YAAY,CAAC,OAAO,CAAC,CAAC;gCACtB,OAAO,GAAG,IAAI,CAAC;gCACf,OAAO,CAAC,IAAI,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,+BAA+B,GAAY,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAA0B;QAC1C,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;YACjE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;YACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,yDAAyD,CAAC,CAAC;YAC9E,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,IACI,GAAG,EAAE,MAAM,EAAE,MAAM;YACnB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC;YAC1D,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,CAAC,SAAS,EAAE,EAC1D,CAAC;YACC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;YAErB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,kBAAkB,IAAI,eAAe,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,iBAAiB,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAC7D,GAAG,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,EAC/B,IAAI,EACJ,IAAI,CACP,CAAC;YACN,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAEpD,IACK,GAAG,CAAC,MAAM,CAAC,UAAyB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC3E,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,SAAS;gBAClD,GAAG,CAAC,MAAM,CAAC,UAAyB,KAAK,OAAO,EACnD,CAAC;gBACC,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,uBAAuB,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;gBAEtE,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACjE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,QAAQ,EACR,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/D,aAAa;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,+BAA+B,CAAC,CAAC;gBACtD,0EAA0E;gBAC1E,0DAA0D;gBAC1D,MAAM,iBAAiB,GAAG,IAAA,kDAAgC,EAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACrF,oEAAoE;gBACpE,mFAAmF;gBACnF,MAAM,UAAU,GAAG,IAAA,kBAAU,EAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC,CAAC;gBAE9F,IAAI,QAAgB,CAAC;gBACrB,8EAA8E;gBAC9E,2EAA2E;gBAC3E,iCAAiC;gBACjC,IACI,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;oBACvC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ;oBACzC,UAAU,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EACtC,CAAC;oBACC,iCAAiC;oBACjC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,kEAAkE,CAAC,CAAC;gBAC7F,CAAC;qBAAM,CAAC;oBACJ,iFAAiF;oBACjF,MAAM,QAAQ,GAAG,IAAA,sCAAoB,EAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,UAAyB,CAAC;oBAC9B,IAAI,CAAC;wBACD,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oBACpE,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,qCAAqC,GAAY,EAAE,CAAC,CAAC;wBAC9E,OAAO,KAAK,CAAC;oBACjB,CAAC;oBAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE1F,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;wBACrB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,yCAAyC,MAAM,EAAE,CAAC,CAAC;wBAC5E,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;wBAChE,CAAC;wBACD,QAAQ,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;wBAEnC,0GAA0G;wBAC1G,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,mDAAmD;wBACtF,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE;4BACtC,MAAM,EAAE;gCACJ,UAAU;gCACV,QAAQ;6BACX;yBACJ,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,qCAAqC,MAAM,EAAE,CAAC,CAAC;wBACrE,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;gBACD,MAAM,aAAa,GAAqB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBACnC,IAAI,CAAC,OAAO,CACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAClB,IAAI,EACJ,GAAG,CAAC,MAAM,CAAC,UAAwB,EACnC,GAAG,CAAC,MAAM,CAAC,OAAO,EAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,0BAA0B,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,KAAa,CAAC;QAClB,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;YAChB,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAEhE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB,KAAK,eAAe,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC3B,IAAI,GAA6C,CAAC;QAClD,IAAI,CAAC;YACD,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAA6C,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAmC;QAChD,4BAA4B;QAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CACT,IAAU,EACV,UAA0B,EAC1B,KAAa,EACb,GAAW,EACX,aAA8B,EAC9B,QAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,UAAoB;QAEpB,IAAI,EAAE,GAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;QAEjF,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;YAC3C,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC5F,CAAC;QACD,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAkC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzF,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE9D,IACI,EAAE,CAAC,QAAQ,EAAE,GAAG,eAAe;YAC/B,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,eAAe,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,iBAAiB,CAAC,EAC5E,CAAC;YACC,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACzC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,aAAa,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,aAAa,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC;YAC1G,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACvC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YAC1B,oBAAoB;YACpB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;gBACb,KAAK,IAAI,EAAE,CAAC;YAChB,CAAC;QACL,CAAC;QACD,IAAI,MAAc,CAAC;QACnB,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;YACrC,GAAG,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;YACvD,GAAG,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,yBAAyB;QACzB,IACI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;YAClC,IAAI,CAAC,MAAM,CAAC,QAA8B,KAAK,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,SAA+B,KAAK,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,IAAI,EAChC,CAAC;YACC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACxE,OAAO;QACX,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACnC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC7B,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAClC,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,EACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,CACxB,CAAC;QAEF,UAAU;QACV,IAAI,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAChE,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;YACjD,cAAc,GAAG,OAAO,CAAC;QAC7B,CAAC;QAED,SAAS;QACT,IAAI,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,OAAO,EAAE,CAAC;YAC/C,aAAa,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,MAAM,SAAS,GAAsC,MAAM,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACrG,IAAI,KAAc,CAAC;QACnB,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC;YAC9B,KAAK,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,sBAAsB;YACtB,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,OAAO,IAAI,WAAW,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACvD,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,cAAc,GAChB,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1D,IAAI,GAAG,KAAK,gBAAgB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,WAAW,GAAG,cAAc,CAAC;QACjC,IAAI,cAAc,GAAG,aAAa,EAAE,CAAC;YACjC,WAAW,GAAG,aAAa,CAAC;QAChC,CAAC;QACD,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;YACrB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB;QACb,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAuB,CAAC;QAC5B,IAAI,MAA0B,CAAC;QAC/B,IAAI,QAAQ,GAAG,GAAG,SAAS,2DAA2D,CAAC;QACvF,IAAI,YAAY,GAAG,GAAG,SAAS,+BAA+B,CAAC;QAC/D,IAAI,CAAC;YACD,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,YAAY,GAAG,GAAG,SAAS,4BAA4B,CAAC;gBACxD,QAAQ,GAAG,GAAG,SAAS,wDAAwD,CAAC;gBAChF,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,IAAI,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CACpC,kBAAkB,EAClB,iDAAiD,CACpD,CAAC;YACF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChB,MAAM,GAAG,OAAO,CAAC,IAAc,CAAC;YACpC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,SAAS;QACb,CAAC;QAED,IAAI,IAAI,EAAE,IAAI,KAAK,KAAK,IAAI,MAAM,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAExF,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,IAA6B,CAAC;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC3D,IAAI,IAAI,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;wBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;wBACxD,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBACxD,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAA,uBAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,mBAAmB;gBACnB,MAAM,IAAI,CAAC,cAAc,CACrB,kBAAkB,EAClB,iDAAiD,EACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CACpB,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sBAAsB,GAAY,EAAE,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;gBAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEhG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAErE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC;wBAErC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;4BACtC,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE;gCACJ,IAAI,EAAE,SAAS,CAAC,EAAE;gCAClB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,KAAK;6BACf;4BACD,MAAM,EAAE,EAAE;yBACb,CAAC,CAAC;wBAEH,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;4BAClD,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1D,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gCACvB,GAAG,EAAE,aAAa;gCAClB,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gCACzB,GAAG,EAAE,IAAI;6BACZ,CAAC,CAAC;wBACP,CAAC;6BAAM,CAAC;4BACJ,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5E,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,0DAA0D,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,GAAY,EAAE,CAC1G,CAAC;oBACN,CAAC;gBACL,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACxG,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,kCAAkC;YAClC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,GAAG,CAAC,OAAe,EAAE,QAA4B,EAAQ,EAAE;QAC5D,qEAAqE;QACrE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,kCAAkC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO;YACX,CAAC;YACD,QAAQ,GAAG,OAAO,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC,CAAC;IAEF,cAAc,CAAC,MAA2B;QACtC,IAAI,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;gBACjC,KAAK,EAAE,UAAU,EAAU;oBACvB,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,kCAAkC,CAAC,QAAgB,EAAE,YAAoB;QACrE,gEAAgE;QAChE,uEAAuE;QACvE,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC7E,CAAC;QACD,+DAA+D;QAC/D,IAAI,CAAC,kBAAkB,IAAI,GAAG,YAAY,IAAI,CAAC;QAC/C,yDAAyD;QACzD,6CAA6C;QAC7C,MAAM,qBAAqB,GAAG,aAAa,CAAC;QAC5C,SAAS,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3D,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YACrC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;QACH,mBAAmB,CAAC,0BAA0B,CAAC;YAC3C,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,kBAAkB;SACnD,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAC7F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5F,CAAC,CAAC,mCAAmC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAEnC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAsB;QAC3C,IAAI,EAAE,EAAE,CAAC;YACL,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;QACL,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,OAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,yDAAyD,CACzF,CACJ,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,+CAA+C,CAAC,CAAC;YAC7F,KAAK,IAAI,CAAC,QAAQ,CACd,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,6CAA6C,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC7F,IAAI,CACP,CAAC;QACN,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAuE;QAC9E,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrC,kCAAkC;QAClC,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,EAAE;YACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/C,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAoB,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAEjD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACjD,MAAM,OAAO,GAAgB;oBACzB,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;oBAC9C,wCAAwC;iBAC3C,CAAC;gBACF,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAA,yBAAI,EAAC,GAAG,SAAS,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE3E;;;iEAGiD;gBAEjD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CACrB,SAAS,EACT,CACI,OAQO,EACT,EAAE;oBACA,IAAI,QAMH,CAAC;oBACF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnC,CAAC;wBAAC,MAAM,CAAC;4BACL,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;wBAC7E,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,QAAQ,GAAG,OAAO,CAAC;oBACvB,CAAC;oBAED,IAAI,QAAQ,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBAC3B,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;oBACrE,CAAC;oBAED,QAAQ,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACnB,KAAK,OAAO,CAAC,CAAC,CAAC;4BACX,IAAI,CAAC,oBAAoB,CAAC;gCACtB,GAAG,EAAE,OAAO;gCACZ,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;gCACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe;gCAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;6BAC1B,CAAC,CAAC;4BACH,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,sDAAsD;4BACtD,MAAM;wBACV,CAAC;wBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;4BACZ,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;4BAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;4BAC5B,MAAM;wBACV,CAAC;wBAED,KAAK,SAAS,CAAC,CAAC,CAAC;4BACb,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;4BAC/B,yBAAyB;4BACzB,MAAM;wBACV,CAAC;wBAED,KAAK,KAAK,CAAC,CAAC,CAAC;4BACT,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;4BACvD,MAAM;wBACV,CAAC;wBAED,KAAK,cAAc,CAAC,CAAC,CAAC;4BAClB,OAAO,CAAC,GAAG,CACP,0CAA0C,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CACpF,CAAC;4BACF,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC,CACJ,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;oBACnD,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAiB,EAAE;oBACpE,IAAI,IAAI,EAAE,CAAC;wBACP,MAAM,IAAI,CAAC,QAAQ,CACf,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,EACzE,IAAI,CACP,CAAC;oBACN,CAAC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvF,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACX,CAAC;CACJ;AAED,SAAS,eAAe,CACpB,KAAe,EACf,gBAA0E;IAE1E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1D,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,gBAAgB,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,gBAAgB,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,oEAAoE;AACpE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC1B,yCAAyC;IACzC,MAAM,CAAC,OAAO,GAAG,CAAC,OAA4C,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/F,CAAC;KAAM,CAAC;IACJ,wCAAwC;IACxC,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["/*\n * Javascript adapter\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2014-2024 bluefox ,\n *\n * Copyright (c) 2014 hobbyquaker\n */\n\nimport { Script, type ScriptOptions } from 'node:vm';\nimport { readFileSync, existsSync, statSync, writeFileSync, type Stats } from 'node:fs';\nimport { join, sep, normalize } from 'node:path';\nimport { fork, type ForkOptions } from 'node:child_process';\nimport { setTypeScriptResolveOptions, Server } from 'virtual-tsc';\nimport { isDeepStrictEqual } from 'node:util';\nimport prettier from 'prettier';\n\nimport * as dgram from 'node:dgram';\nimport * as crypto from 'node:crypto';\nimport * as dns from 'node:dns';\nimport * as events from 'node:events';\nimport * as http from 'node:http';\nimport * as https from 'node:https';\nimport * as http2 from 'node:http2';\nimport * as net from 'node:net';\nimport * as os from 'node:os';\nimport * as path from 'node:path';\nimport * as util from 'node:util';\nimport * as child_process from 'node:child_process';\nimport * as stream from 'node:stream';\nimport * as zlib from 'node:zlib';\n\n// @ts-expect-error no types available\nimport * as suncalc from 'suncalc2';\nimport * as axios from 'axios';\n// @ts-expect-error no types available\nimport * as wake_on_lan from 'wake_on_lan';\nimport * as nodeSchedule from 'node-schedule';\n\nimport { getAbsoluteDefaultDataDir, Adapter, EXIT_CODES, type AdapterOptions } from '@iobroker/adapter-core';\nimport type SentryPlugin from '@iobroker/plugin-sentry';\nimport type { GetTimesResult } from 'suncalc';\nimport type { CompileResult } from 'virtual-tsc/build/util';\n\nimport { Mirror } from './lib/mirror';\nimport ProtectFs from './lib/protectFs';\nimport { setLanguage, getLanguage } from './lib/words';\nimport { sandBox } from './lib/sandbox';\nimport { requestModuleNameByUrl } from './lib/nodeModulesManagement';\nimport { createEventObject, type EventObj } from './lib/eventObj';\nimport { type AstroEventName, Scheduler } from './lib/scheduler';\nimport { targetTsLib, tsCompilerOptions, jsDeclarationCompilerOptions } from './lib/typescriptSettings';\nimport { hashSource } from './lib/tools';\nimport {\n resolveTypescriptLibs,\n resolveTypings,\n scriptIdToTSFilename,\n transformScriptBeforeCompilation,\n transformGlobalDeclarations,\n} from './lib/typescriptTools';\nimport type {\n FileSubscriptionResult,\n JavascriptContext,\n JavaScriptAdapterConfig,\n JsScript,\n ScriptType,\n SubscriptionResult,\n SubscribeObject,\n JavascriptTimer,\n SandboxType,\n LogMessage,\n DebugState,\n} from './types';\nimport type { PatternEventCompareFunction } from './lib/patternCompareFunctions';\n\ntype MODULES = {\n fs: ProtectFs;\n 'fs/promises': ProtectFs['promises'];\n dgram: typeof dgram;\n crypto: typeof crypto;\n dns: typeof dns;\n events: typeof events;\n http: typeof http;\n https: typeof https;\n http2: typeof http2;\n net: typeof net;\n os: typeof os;\n path: typeof path;\n util: typeof util;\n child_process: typeof child_process;\n stream: typeof stream;\n zlib: typeof zlib;\n suncalc: typeof suncalc;\n axios: typeof axios;\n wake_on_lan: typeof wake_on_lan;\n nodeSchedule: typeof nodeSchedule;\n};\n\n/**\n * List of forbidden Locations for a mirror directory\n * relative to the default data directory\n * ATTENTION: the same list is also located in index_m.html!!\n */\nconst forbiddenMirrorLocations: string[] = [\n 'backup-objects',\n 'files',\n 'backitup',\n '../backups',\n '../node_modules',\n '../log',\n];\n\nconst packageJson: Record = JSON.parse(readFileSync(`${__dirname}/../package.json`).toString());\nconst SCRIPT_CODE_MARKER = 'script.js.';\n\nlet webstormDebug: string | undefined;\n\nconst isCI = !!process.env.CI;\n\n// ambient declarations for typescript\nlet tsAmbient: Record;\n\n// TypeScript's scripts are only recompiled if their source hash changes.\n// If an adapter update fixes the compilation bugs, a user won't notice until the changes and re-saves the script.\n// To avoid that, we also include the\n// adapter version and TypeScript version in the hash\nconst tsSourceHashBase = `versions:adapter=${packageJson.version},typescript=${packageJson.dependencies.typescript}`;\n\n// taken from here: https://stackoverflow.com/questions/11887934/how-to-check-if-dst-daylight-saving-time-is-in-effect-and-if-so-the-offset\nfunction dstOffsetAtDate(dateInput: Date): number {\n const fullYear: number = dateInput.getFullYear() | 0;\n // \"Leap Years are any year that can be exactly divided by 4 (2012, 2016, etc.)\n // except if it can be exactly divided by 100, then it isn't (2100, 2200, etc.)\n // except if it can be exactly divided by 400, then it is (2000, 2400)\"\n // (https://www.mathsisfun.com/leap-years.html).\n const isLeapYear: 1 | 0 = ((fullYear & 3) | ((fullYear / 100) & 3)) === 0 ? 1 : 0;\n // (fullYear & 3) = (fullYear % 4), but faster\n //Alternative:var isLeapYear=(new Date(currentYear,1,29,12)).getDate()===29?1:0\n const fullMonth: number = dateInput.getMonth() | 0;\n return (\n // 1. We know what the time since the Epoch really is\n +dateInput - // same as the dateInput.getTime() method\n // 2. We know what the time since the Epoch at the start of the year is\n +new Date(fullYear, 0) - // day defaults to 1 if not explicitly zeroed\n // 3. Now, subtract what we would expect the time to be if daylight savings\n // did not exist. This yields the time-offset due to daylight savings.\n // Calculate the day of the year in the Gregorian calendar\n // The code below works based upon the facts of signed right shifts\n // • (x) >> n: shifts n and fills in the n highest bits with 0s\n // • (-x) >> n: shifts n and fills in the n highest bits with 1s\n // (This assumes that x is a positive integer)\n ((((-1 + // the first day in the year is day 1\n (31 & (-fullMonth >> 4)) + // January // (-11)>>4 = -1\n ((28 + isLeapYear) & ((1 - fullMonth) >> 4)) + // February\n (31 & ((2 - fullMonth) >> 4)) + // March\n (30 & ((3 - fullMonth) >> 4)) + // April\n (31 & ((4 - fullMonth) >> 4)) + // May\n (30 & ((5 - fullMonth) >> 4)) + // June\n (31 & ((6 - fullMonth) >> 4)) + // July\n (31 & ((7 - fullMonth) >> 4)) + // August\n (30 & ((8 - fullMonth) >> 4)) + // September\n (31 & ((9 - fullMonth) >> 4)) + // October\n (30 & ((10 - fullMonth) >> 4)) + // November\n // There are no months past December: the year rolls into the next.\n // Thus, \"fullMonth\" is 0-based, so it will never be 12 in JavaScript\n\n (dateInput.getDate() | 0)) & // get day of the month\n 0xffff) *\n 24 *\n 60 + // 24 hours in a day, 60 minutes in an hour\n (dateInput.getHours() & 0xff) * 60 + // 60 minutes in an hour\n (dateInput.getMinutes() & 0xff)) |\n 0) *\n 60 *\n 1000 - // 60 seconds in a minute * 1000 milliseconds in a second\n (dateInput.getSeconds() & 0xff) * 1000 - // 1000 milliseconds in a second\n dateInput.getMilliseconds()\n );\n}\n\nconst regExGlobalOld = /_global$/;\nconst regExGlobalNew = /script\\.js\\.global\\./;\n\nfunction checkIsGlobal(obj: ioBroker.ScriptObject): boolean {\n return obj?.common && (regExGlobalOld.test(obj.common.name) || regExGlobalNew.test(obj._id));\n}\n\nfunction fileMatching(sub: FileSubscriptionResult, id: string, fileName: string): boolean {\n if (sub.idRegEx) {\n if (!sub.idRegEx.test(id)) {\n return false;\n }\n } else {\n if (sub.id !== id) {\n return false;\n }\n }\n if (sub.fileRegEx) {\n if (!sub.fileRegEx.test(fileName)) {\n return false;\n }\n } else {\n if (sub.fileNamePattern !== fileName) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getNextTimeEvent(time: string, useNextDay?: boolean): Date {\n const now: Date = getAstroStartOfDay();\n const [timeHours, timeMinutes] = time.split(':');\n const nTimeHours = parseInt(timeHours, 10);\n const nTimeMinutes = parseInt(timeMinutes, 10);\n if (\n useNextDay &&\n (now.getHours() > nTimeHours || (now.getHours() === nTimeHours && now.getMinutes() > nTimeMinutes))\n ) {\n now.setDate(now.getDate() + 1);\n }\n\n now.setHours(nTimeHours);\n now.setMinutes(nTimeMinutes);\n\n return now;\n}\n\nfunction getAstroStartOfDay(): Date {\n const d = new Date();\n d.setMinutes(0);\n d.setSeconds(0);\n d.setMilliseconds(0);\n d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n d.setUTCHours(0);\n\n return d;\n}\n\nfunction formatHoursMinutesSeconds(date: Date): string {\n const h = String(date.getHours());\n const m = String(date.getMinutes());\n const s = String(date.getSeconds());\n\n return `${h.padStart(2, '0')}:${m.padStart(2, '0')}:${s.padStart(2, '0')}`;\n}\n\n// Due to a npm bug, virtual-tsc may be hoisted to the top level node_modules but\n// TypeScript may still be in the adapter level (https://npm.community/t/packages-with-peerdependencies-are-incorrectly-hoisted/4794),\n// so we need to tell virtual-tsc where TypeScript is\nsetTypeScriptResolveOptions({\n paths: [require.resolve('typescript')],\n});\n\n// compiler instance for global JS declarations\nconst jsDeclarationServer: Server = new Server(jsDeclarationCompilerOptions, isCI ? false : undefined);\n/**\n * Stores the IDs of script objects whose change should be ignored because\n * the compiled source was just updated\n */\n\nclass JavaScript extends Adapter {\n declare public config: JavaScriptAdapterConfig;\n\n private readonly context: JavascriptContext;\n\n private errorLogFunction: {\n error: (msg: string) => void;\n warn: (msg: string) => void;\n info: (msg: string) => void;\n debug: (msg: string) => void;\n silly: (msg: string) => void;\n } = {\n error: (msg: string) => console.error(msg),\n warn: (msg: string) => console.warn(msg),\n info: (msg: string) => console.log(msg),\n debug: (msg: string) => console.debug(msg),\n silly: (msg: string) => console.debug(msg),\n };\n\n private readonly mods: MODULES;\n\n private objectsInitDone = false;\n private statesInitDone = false;\n\n private objects: Record = {};\n private states: Record = {};\n private readonly interimStateValues: Record = {};\n private readonly stateIds: string[] = [];\n private readonly subscriptions: SubscriptionResult[] = [];\n private readonly subscriptionsFile: FileSubscriptionResult[] = [];\n private readonly subscriptionsObject: SubscribeObject[] = [];\n private readonly subscribedPatterns: Record = {};\n private readonly subscribedPatternsFile: Record = {};\n private readonly adapterSubs: Record = {};\n private readonly timers: { [scriptName: string]: JavascriptTimer[] } = {};\n private readonly _enums: string[] = [];\n private readonly names: { [name: string]: string | string[] } = {}; // name: id\n private readonly scripts: Record = {};\n private readonly messageBusHandlers: Record<\n string,\n Record void }[]>\n > = {};\n private readonly logSubscriptions: Record<\n string,\n {\n sandbox: SandboxType;\n cb: (info: LogMessage) => void;\n id: number;\n severity: ioBroker.LogLevel | '*';\n }[]\n > = {};\n private readonly tempDirectories: { [scriptName: string]: string } = {}; // name: path\n private readonly folderCreationVerifiedObjects: Record = {};\n\n /** if logs are subscribed or not */\n private logSubscribed = false;\n\n private timeSettings: {\n format12: boolean;\n leadingZeros: boolean;\n } = { format12: false, leadingZeros: true };\n\n private dayScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n private sunScheduleTimer: NodeJS.Timeout | null = null; // schedule for sun moment times\n private timeScheduleTimer: NodeJS.Timeout | null = null; // schedule for astrological day\n\n private activeStr = ''; // enabled state prefix\n\n private mirror: Mirror | undefined;\n\n private stopCounters: Record = {};\n\n private setStateCountCheckInterval: NodeJS.Timeout | null = null;\n\n private globalScript = '';\n /** Generated declarations for global TypeScripts */\n private globalDeclarations = '';\n // Remember which definitions the global scripts\n // have access to, because it depends on the compilation order\n private knownGlobalDeclarationsByScript: Record = {};\n private globalScriptLines = 0;\n // compiler instance for typescript\n private tsServer: Server;\n\n private readonly ignoreObjectChange: Set = new Set();\n\n private debugState: DebugState = {\n scriptName: '',\n child: null,\n promiseOnEnd: null,\n paused: false,\n started: 0,\n running: false,\n };\n\n constructor(options: Partial = {}) {\n options = {\n ...options,\n name: 'javascript', // adapter name\n useFormatDate: true,\n /**\n * If the JS-Controller catches an unhandled error, this will be called\n * so we have a chance to handle it ourselves.\n */\n error: (err: Error): boolean => {\n // Identify unhandled errors originating from callbacks in scripts\n // These are not caught by wrapping the execution code in try-catch\n if (err && typeof err.stack === 'string') {\n const scriptCodeMarkerIndex = err.stack.indexOf(SCRIPT_CODE_MARKER);\n if (scriptCodeMarkerIndex > -1) {\n // This is a script error\n let scriptName = err.stack.substring(scriptCodeMarkerIndex);\n scriptName = scriptName.substring(0, scriptName.indexOf(':'));\n this.logError(scriptName, 'Error:', err);\n\n // Leave the script running for now\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n // check if a path contains adaptername but not own node_module\n // this regex matched \"iobroker.javascript/\" if NOT followed by \"node_modules\"\n if (!err.stack.match(/iobroker\\.javascript[/\\\\](?!.*node_modules).*/g)) {\n // This is an error without any info on origin (mostly async errors like connection errors)\n // also consider it as being from a script\n this.log.error(\n 'An error happened which is most likely from one of your scripts, but the originating script could not be detected.',\n );\n this.log.error(`Error: ${err.message}`);\n this.log.error(err.stack);\n\n // signal to the JS-Controller that we handled the error ourselves\n return true;\n }\n }\n\n return false;\n },\n };\n\n super(options as AdapterOptions);\n\n this.on('objectChange', this.onObjectChange.bind(this));\n this.on('stateChange', this.onStateChange.bind(this));\n this.on('ready', this.onReady.bind(this));\n this.on('message', this.onMessage.bind(this));\n this.on('unload', this.onUnload.bind(this));\n this.on('fileChange', this.onFileChange.bind(this));\n this.on('log', this.onLog.bind(this));\n\n this.mods = {\n fs: {} as ProtectFs,\n 'fs/promises': {} as ProtectFs['promises'],\n dgram,\n crypto,\n dns,\n events,\n http,\n https,\n http2,\n net,\n os,\n path,\n util,\n child_process,\n stream,\n zlib,\n\n suncalc,\n axios,\n wake_on_lan,\n nodeSchedule,\n };\n\n // check the webstorm debug and just debug modes\n let debugMode: string | undefined;\n if (process.argv) {\n for (let a = 1; a < process.argv.length; a++) {\n if (process.argv[a].startsWith('--webstorm')) {\n webstormDebug = process.argv[a].replace(/^(.*?=\\s*)/, '');\n }\n if (process.argv[a] === '--debugScript') {\n if (!process.argv[a + 1]) {\n console.log('No script name provided');\n process.exit(300);\n } else {\n debugMode = process.argv[a + 1];\n }\n }\n }\n }\n\n this.context = {\n mods: this.mods,\n objects: this.objects,\n states: this.states,\n interimStateValues: this.interimStateValues,\n stateIds: this.stateIds,\n errorLogFunction: this.errorLogFunction,\n subscriptions: this.subscriptions,\n subscriptionsFile: this.subscriptionsFile,\n subscriptionsObject: this.subscriptionsObject,\n subscribedPatterns: this.subscribedPatterns,\n subscribedPatternsFile: this.subscribedPatternsFile,\n adapterSubs: this.adapterSubs,\n cacheObjectEnums: {},\n timers: this.timers,\n enums: this._enums,\n names: this.names,\n scripts: this.scripts,\n messageBusHandlers: this.messageBusHandlers,\n logSubscriptions: this.logSubscriptions,\n tempDirectories: this.tempDirectories,\n folderCreationVerifiedObjects: this.folderCreationVerifiedObjects,\n\n isEnums: false, // If some subscription wants enum\n channels: null,\n devices: null,\n logWithLineInfo: this.logWithLineInfo.bind(this),\n scheduler: null,\n timerId: 0,\n rulesOpened: null, // opened rules\n language: this.language || 'en',\n\n updateLogSubscriptions: this.updateLogSubscriptions.bind(this),\n convertBackStringifiedValues: this.convertBackStringifiedValues.bind(this),\n updateObjectContext: this.updateObjectContext.bind(this),\n prepareStateObject: this.prepareStateObject.bind(this),\n debugMode,\n getAbsoluteDefaultDataDir,\n adapter: this as unknown as ioBroker.Adapter,\n logError: this.logError.bind(this),\n };\n\n this.tsServer = new Server(tsCompilerOptions, this.tsLog);\n }\n\n async onObjectChange(id: string, obj?: ioBroker.Object | null): Promise {\n // Check if we should ignore this change (once!) because we just updated the compiled sources\n if (this.ignoreObjectChange.has(id)) {\n // Update the cached script object and do nothing more\n this.objects[id] = obj as ioBroker.Object;\n this.ignoreObjectChange.delete(id);\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.objectsInitDone) {\n if (obj) {\n this.objects[id] = obj;\n }\n return;\n }\n\n if (id.startsWith('enum.')) {\n // clear cache\n this.context.cacheObjectEnums = {};\n\n // update this._enums array\n if (obj) {\n // If new\n if (!this._enums.includes(id)) {\n this._enums.push(id);\n this._enums.sort();\n }\n } else {\n const pos = this._enums.indexOf(id);\n // if deleted\n if (pos !== -1) {\n this._enums.splice(pos, 1);\n }\n }\n }\n\n if (id === 'system.config' && obj?.common?.language) {\n // set language for debug messages\n setLanguage(obj.common.language);\n this.language = obj.common.language;\n this.context.language = this.language as ioBroker.Languages;\n }\n\n // update stored time format for variables.dayTime\n if (id === `${this.namespace}.variables.dayTime` && obj?.native) {\n this.timeSettings.format12 = obj.native.format12 || false;\n this.timeSettings.leadingZeros = obj.native.leadingZeros === undefined ? true : obj.native.leadingZeros;\n }\n\n // send changes to disk mirror\n this.mirror?.onObjectChange(id, obj as ioBroker.ScriptObject | null);\n\n const formerObj = this.objects[id];\n\n this.updateObjectContext(id, obj); // Update all Meta object data\n\n // for the alias object changes on the state objects, we need to manually update the\n // state cache value, because the new value is only published on the next change\n if (obj?.type === 'state' && id.startsWith('alias.0.')) {\n // execute async for speed\n this.getForeignStateAsync(id)\n .then(state => {\n if (state) {\n this.states[id] = state;\n } else if (this.states[id] !== undefined) {\n delete this.states[id];\n }\n })\n .catch(() => {\n /* ignore */\n });\n }\n\n this.subscriptionsObject.forEach(sub => {\n // ToDo: implement comparing with id.0.* too\n if (sub.pattern === id) {\n try {\n sub.callback(id, obj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n });\n\n // handle Script object updates\n if (!obj && formerObj?.type === 'script') {\n // Object Deleted just now\n if (checkIsGlobal(formerObj)) {\n // it was a global Script, and it was enabled and is now deleted => restart adapter\n if (formerObj.common.enabled) {\n this.log.info(`Active global Script ${id} deleted. Restart instance.`);\n this.restart();\n }\n } else if (formerObj.common?.engine === `system.adapter.${this.namespace}`) {\n // It was a non-global Script and deleted => stop and remove it\n await this.stopScript(id);\n\n // delete scriptEnabled.blabla variable\n const idActive = `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idActive);\n await this.delObjectAsync(idActive);\n\n // delete scriptProblem.blabla variable\n const idProblem = `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n await this.delStateAsync(idProblem);\n await this.delObjectAsync(idProblem);\n }\n } else if (!formerObj && obj?.type === 'script') {\n // New script that does not exist before\n if (checkIsGlobal(obj)) {\n // new global script added => restart adapter\n if (obj.common.enabled) {\n this.log.info(`Active global Script ${id} created. Restart instance.`);\n this.restart();\n }\n } else if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // new non-global script - create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n if (obj.common.enabled) {\n // if enabled => Start script\n await this.loadScriptById(id);\n }\n }\n } else if (obj?.type === 'script' && formerObj?.common) {\n // Script changed ...\n if (checkIsGlobal(obj)) {\n if (obj.common.enabled || formerObj.common.enabled) {\n this.log.info(`Global Script ${id} updated. Restart instance.`);\n this.restart();\n }\n } else {\n // No global script\n if (obj.common?.engine === `system.adapter.${this.namespace}`) {\n // create states for scripts\n await this.createActiveObject(id, !!obj.common.enabled);\n await this.createProblemObject(id);\n }\n\n if (\n (formerObj.common.enabled && !obj.common.enabled) ||\n (formerObj.common.engine === `system.adapter.${this.namespace}` &&\n obj.common.engine !== `system.adapter.${this.namespace}`)\n ) {\n // Script disabled\n if (formerObj.common.enabled && formerObj.common.engine === `system.adapter.${this.namespace}`) {\n // Remove it from executing\n await this.stopScript(id);\n }\n } else if (\n (!formerObj.common.enabled && obj.common.enabled) ||\n (formerObj.common.engine !== `system.adapter.${this.namespace}` &&\n obj.common.engine === `system.adapter.${this.namespace}`)\n ) {\n // Script enabled\n\n if (obj.common.enabled && obj.common.engine === `system.adapter.${this.namespace}`) {\n // Start script\n await this.loadScriptById(id);\n }\n } else {\n // if (obj.common.source !== formerObj.common.source) {\n // Source changed => restart the script\n this.stopCounters[id] = this.stopCounters[id] ? this.stopCounters[id] + 1 : 1;\n void this.stopScript(id).then(() => {\n // only start again after stop when \"last\" object change to prevent problems on\n // multiple changes in fast frequency\n if (!--this.stopCounters[id]) {\n void this.loadScriptById(id);\n }\n });\n }\n }\n }\n }\n\n onStateChange(id: string, state?: ioBroker.State | null): void {\n if (this.interimStateValues[id] !== undefined) {\n // any update invalidates the remembered interim value\n delete this.interimStateValues[id];\n }\n if (!id || id.startsWith('messagebox.') || id.startsWith('log.')) {\n return;\n }\n\n if (id === `${this.namespace}.debug.to` && state && !state.ack) {\n if (!this.context.debugMode) {\n this.debugSendToInspector(state.val);\n }\n return;\n }\n\n // When still in initializing: already remember current values,\n // but data structures are initialized elsewhere\n if (!this.statesInitDone) {\n if (state) {\n this.states[id] = state;\n }\n return;\n }\n\n const oldState: ioBroker.State | null | undefined = this.states[id];\n if (state) {\n if (oldState) {\n // enable or disable script\n if (!state.ack && id.startsWith(this.activeStr) && this.objects[id]?.native?.script) {\n void this.extendForeignObject(this.objects[id].native.script, {\n common: { enabled: state.val },\n });\n }\n\n // monitor if adapter is alive and send all subscriptions once more, after adapter goes online\n if (/*oldState && */ oldState.val === false && state.val && id.endsWith('.alive')) {\n if (this.adapterSubs[id]) {\n const parts = id.split('.');\n const a = `${parts[2]}.${parts[3]}`;\n for (let t = 0; t < this.adapterSubs[id].length; t++) {\n this.log.info(`Detected coming adapter \"${a}\". Send subscribe: ${this.adapterSubs[id][t]}`);\n this.sendTo(a, 'subscribe', this.adapterSubs[id][t]);\n }\n }\n }\n } else if (/*!oldState && */ !this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n this.states[id] = state;\n } else {\n if (oldState) {\n delete this.states[id];\n }\n state = {} as ioBroker.State;\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n }\n const _eventObj = createEventObject(\n this.context,\n id,\n this.convertBackStringifiedValues(id, state),\n this.convertBackStringifiedValues(id, oldState),\n );\n\n // if this state matches any subscriptions\n for (let i = 0, l = this.subscriptions.length; i < l; i++) {\n const sub = this.subscriptions[i];\n if (sub?.patternCompareFunctions && patternMatching(_eventObj, sub.patternCompareFunctions)) {\n try {\n sub.callback(_eventObj);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n onFileChange(id: string, fileName: string, size: number | null): void {\n // if this file matches any subscriptions\n for (let i = 0, l = this.subscriptionsFile.length; i < l; i++) {\n const sub = this.subscriptionsFile[i];\n if (sub && fileMatching(sub, id, fileName)) {\n try {\n sub.callback(id, fileName, size, sub.withFile);\n } catch (err: any) {\n this.log.error(`Error in callback: ${err.toString()}`);\n }\n }\n }\n }\n\n async onUnload(callback: () => void): Promise {\n await this.debugStop();\n this.stopTimeSchedules();\n if (this.setStateCountCheckInterval) {\n clearInterval(this.setStateCountCheckInterval);\n this.setStateCountCheckInterval = null;\n }\n await this.stopAllScripts();\n if (typeof callback === 'function') {\n callback();\n }\n }\n\n async onReady(): Promise {\n this.errorLogFunction = this.log;\n this.context.errorLogFunction = this.log;\n\n this.config.maxSetStatePerMinute = parseInt(this.config.maxSetStatePerMinute as unknown as string, 10) || 1000;\n this.config.maxTriggersPerScript = parseInt(this.config.maxTriggersPerScript as unknown as string, 10) || 100;\n\n if (this.supportsFeature?.('PLUGINS')) {\n const sentryInstance: InstanceType = this.getPluginInstance('sentry') as InstanceType<\n typeof SentryPlugin\n >;\n if (sentryInstance?.getSentryObject) {\n const Sentry = sentryInstance.getSentryObject();\n if (Sentry) {\n const scope = Sentry.getCurrentScope();\n scope.addEventProcessor((event, _hint) => {\n if (event.exception?.values?.[0]) {\n const eventData = event.exception.values[0];\n if (\n eventData.stacktrace?.frames &&\n Array.isArray(eventData.stacktrace.frames) &&\n eventData.stacktrace.frames.length\n ) {\n // Exclude event if script Marker is included\n if (\n eventData.stacktrace.frames.find(frame =>\n frame.filename?.includes(SCRIPT_CODE_MARKER),\n )\n ) {\n return null;\n }\n //Exclude event if own directory is included but not inside own node_modules\n const ownNodeModulesDir = join(__dirname, 'node_modules');\n if (\n !eventData.stacktrace.frames.find(\n frame =>\n frame.filename &&\n frame.filename.includes(__dirname) &&\n !frame.filename.includes(ownNodeModulesDir),\n )\n ) {\n return null;\n }\n // We have exception data and did not sort it out, so report it\n return event;\n }\n }\n\n // No exception in it ... do not report\n return null;\n });\n }\n }\n }\n\n await this.main();\n }\n\n onMessage(obj: ioBroker.Message): void {\n switch (obj?.command) {\n // process messageTo commands\n case 'toScript':\n case 'jsMessageBus':\n if (\n obj.message &&\n (obj.message.instance === null ||\n obj.message.instance === undefined ||\n `javascript.${obj.message.instance}` === this.namespace ||\n obj.message.instance === this.namespace)\n ) {\n Object.keys(this.messageBusHandlers).forEach(name => {\n // script name could be script.js.xxx or only xxx\n if (\n (!obj.message.script || obj.message.script === name) &&\n this.messageBusHandlers[name][obj.message.message]\n ) {\n this.messageBusHandlers[name][obj.message.message].forEach(handler => {\n const sandbox = handler.sandbox;\n\n sandbox.verbose && sandbox.log(`onMessage: ${JSON.stringify(obj.message)}`, 'info');\n\n try {\n if (obj.callback) {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n if (sandbox.verbose) {\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n }\n\n this.sendTo(obj.from, obj.command, result, obj.callback);\n });\n } else {\n handler.cb.call(sandbox, obj.message.data, (result: any) => {\n sandbox.verbose &&\n sandbox.log(`onMessage result: ${JSON.stringify(result)}`, 'info');\n });\n }\n } catch (err: unknown) {\n void this.setState(\n `scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`,\n true,\n true,\n );\n this.logError(name, 'Error in callback:', err as Error);\n }\n });\n }\n });\n }\n break;\n\n case 'loadTypings': {\n // Load typings for the editor\n const typings: Record = {};\n\n // try to load TypeScript lib files from disk\n try {\n const typescriptLibs = resolveTypescriptLibs(targetTsLib);\n Object.assign(typings, typescriptLibs);\n } catch {\n /* ok, no lib then */\n }\n\n // provide the already-loaded ioBroker typings and global script declarations\n Object.assign(typings, tsAmbient);\n\n // also provide the known global declarations for each global script\n for (const globalScriptPaths of Object.keys(this.knownGlobalDeclarationsByScript)) {\n typings[`${globalScriptPaths}.d.ts`] = this.knownGlobalDeclarationsByScript[globalScriptPaths];\n }\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { typings }, obj.callback);\n }\n break;\n }\n\n case 'calcAstroAll': {\n if (obj.message) {\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n let astroEvents: GetTimesResult & { nextSunrise: Date; nextSunset: Date } = {} as GetTimesResult & {\n nextSunrise: Date;\n nextSunset: Date;\n };\n try {\n astroEvents = this.mods.suncalc.getTimes(today, latitude, longitude);\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n if (astroEvents) {\n try {\n astroEvents.nextSunrise = this.getAstroEvent(\n today,\n obj.message.sunriseEvent || this.config.sunriseEvent,\n obj.message.sunriseLimitStart || this.config.sunriseLimitStart,\n obj.message.sunriseLimitEnd || this.config.sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n astroEvents.nextSunset = this.getAstroEvent(\n today,\n obj.message.sunsetEvent || this.config.sunsetEvent,\n obj.message.sunsetLimitStart || this.config.sunsetLimitStart,\n obj.message.sunsetLimitEnd || this.config.sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n } catch (err: unknown) {\n this.log.error(`Cannot calculate astro data: ${err as Error}`);\n }\n }\n\n const result: Record = {};\n const keys = Object.keys(astroEvents).sort(\n (a, b) =>\n (astroEvents as unknown as Record)[a] -\n (astroEvents as unknown as Record)[b],\n );\n keys.forEach(key => {\n const validDate =\n (astroEvents as unknown as Record)[key] !== null &&\n !isNaN((astroEvents as unknown as Record)[key].getTime());\n\n result[key] = {\n isValidDate: validDate,\n serverTime: validDate\n ? formatHoursMinutesSeconds((astroEvents as unknown as Record)[key])\n : 'n/a',\n date: validDate\n ? (astroEvents as unknown as Record)[key].toISOString()\n : 'n/a',\n };\n });\n\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, result, obj.callback);\n }\n }\n break;\n }\n\n case 'calcAstro': {\n if (obj.message) {\n const longitude =\n parseFloat(\n obj.message.longitude === undefined ? this.config.longitude : obj.message.longitude,\n ) || 0;\n const latitude =\n parseFloat(obj.message.latitude === undefined ? this.config.latitude : obj.message.latitude) ||\n 0;\n const today = getAstroStartOfDay();\n\n const sunriseEvent = obj.message?.sunriseEvent || this.config.sunriseEvent;\n const sunriseLimitStart = obj.message?.sunriseLimitStart || this.config.sunriseLimitStart;\n const sunriseLimitEnd = obj.message?.sunriseLimitEnd || this.config.sunriseLimitEnd;\n const sunriseOffset =\n parseInt(\n obj.message.sunriseOffset === undefined\n ? this.config.sunriseOffset\n : obj.message.sunriseOffset,\n 10,\n ) || 0;\n const nextSunrise = this.getAstroEvent(\n today,\n sunriseEvent,\n sunriseLimitStart,\n sunriseLimitEnd,\n sunriseOffset,\n false,\n latitude,\n longitude,\n true,\n );\n\n const sunsetEvent = obj.message?.sunsetEvent || this.config.sunsetEvent;\n const sunsetLimitStart = obj.message?.sunsetLimitStart || this.config.sunsetLimitStart;\n const sunsetLimitEnd = obj.message?.sunsetLimitEnd || this.config.sunsetLimitEnd;\n const sunsetOffset =\n parseInt(\n obj.message.sunsetOffset === undefined\n ? this.config.sunsetOffset\n : obj.message.sunsetOffset,\n 10,\n ) || 0;\n const nextSunset = this.getAstroEvent(\n today,\n sunsetEvent,\n sunsetLimitStart,\n sunsetLimitEnd,\n sunsetOffset,\n true,\n latitude,\n longitude,\n true,\n );\n\n const validDateSunrise = nextSunrise !== null && !isNaN(nextSunrise.getTime());\n const validDateSunset = nextSunset !== null && !isNaN(nextSunset.getTime());\n\n this.log.debug(\n `calcAstro sunrise: ${sunriseEvent} -> start ${sunriseLimitStart}, end: ${sunriseLimitEnd}, offset: ${sunriseOffset} - ${validDateSunrise ? nextSunrise.toISOString() : 'n/a'}`,\n );\n this.log.debug(\n `calcAstro sunset: ${sunsetEvent} -> start ${sunsetLimitStart}, end: ${sunsetLimitEnd}, offset: ${sunsetOffset} - ${validDateSunset ? nextSunset.toISOString() : 'n/a'}`,\n );\n\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n nextSunrise: {\n isValidDate: validDateSunrise,\n serverTime: validDateSunrise ? formatHoursMinutesSeconds(nextSunrise) : 'n/a',\n date: nextSunrise.toISOString(),\n },\n nextSunset: {\n isValidDate: validDateSunset,\n serverTime: validDateSunset ? formatHoursMinutesSeconds(nextSunset) : 'n/a',\n date: nextSunset.toISOString(),\n },\n },\n obj.callback,\n );\n }\n }\n break;\n }\n\n case 'debug': {\n if (!this.context.debugMode) {\n this.debugStart(obj.message);\n }\n break;\n }\n\n case 'debugStop': {\n if (!this.context.debugMode) {\n void this.debugStop().then(() => console.log('stopped'));\n }\n break;\n }\n\n case 'rulesOn': {\n this.context.rulesOpened = obj.message;\n console.log(`Enable messaging for ${this.context.rulesOpened}`);\n break;\n }\n\n case 'rulesOff': {\n // maybe if (context.rulesOpened === obj.message)\n console.log(`Disable messaging for ${this.context.rulesOpened}`);\n this.context.rulesOpened = null;\n break;\n }\n\n case 'getIoBrokerDataDir': {\n if (obj.callback) {\n this.sendTo(\n obj.from,\n obj.command,\n {\n dataDir: getAbsoluteDefaultDataDir(),\n sep,\n },\n obj.callback,\n );\n }\n break;\n }\n\n case 'prettier': {\n // Format the code with Prettier\n if (obj.message && typeof obj.message.code === 'string') {\n try {\n prettier\n .format(obj.message.code, {\n parser: obj.message.type === 'typescript' ? 'babel-ts' : 'babel',\n printWidth: 120,\n semi: true,\n tabWidth: 4,\n useTabs: false,\n trailingComma: 'all',\n singleQuote: true,\n singleAttributePerLine: true,\n endOfLine: 'lf',\n bracketSpacing: true,\n arrowParens: 'avoid',\n quoteProps: 'as-needed',\n })\n .then(formattedCode => {\n if (obj.callback) {\n this.sendTo(obj.from, obj.command, { code: formattedCode }, obj.callback);\n } else {\n this.logWithLineInfo(`Formatted code:\\n${formattedCode}`);\n }\n })\n .catch(e => {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n });\n } catch (e) {\n this.logError('Prettier', 'Error formatting code:', e as Error);\n this.sendTo(obj.from, obj.command, { error: (e as Error).toString() }, obj.callback);\n }\n } else {\n this.sendTo(obj.from, obj.command, { error: 'No code provided' }, obj.callback);\n }\n break;\n }\n }\n }\n\n onLog(msg: any): void {\n Object.keys(this.logSubscriptions).forEach((name: string): void =>\n this.logSubscriptions[name].forEach(handler => {\n if (\n typeof handler.cb === 'function' &&\n (handler.severity === '*' || handler.severity === msg.severity)\n ) {\n handler.sandbox.logHandler = handler.severity || '*';\n handler.cb.call(handler.sandbox, msg);\n handler.sandbox.logHandler = undefined;\n }\n }),\n );\n }\n\n logError(scriptName: string, msg: string, e: Error, offs?: number): void {\n const stack = e.stack ? e.stack.toString().split('\\n') : e ? e.toString() : '';\n if (!msg.includes('\\n')) {\n msg = msg.replace(/[: ]*$/, ': ');\n }\n if (!msg.endsWith(' ')) {\n msg += ':';\n }\n if (!scriptName.startsWith(SCRIPT_CODE_MARKER)) {\n scriptName = SCRIPT_CODE_MARKER + scriptName;\n }\n\n this.errorLogFunction.error(`${scriptName}: ${msg}${this.fixLineNo(stack[0])}`);\n for (let i = offs || 1; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.error(`${scriptName}: ${this.fixLineNo(stack[i])}`);\n }\n }\n\n logWithLineInfo(msg: string): void {\n this.errorLogFunction.warn(msg);\n\n // get current error stack\n const stack = new Error().stack?.split('\\n');\n\n if (stack) {\n for (let i = 3; i < stack.length; i++) {\n if (!stack[i]) {\n continue;\n }\n if (stack[i].match(/runInContext|runInNewContext|javascript\\.js:/)) {\n break;\n }\n this.errorLogFunction.warn(this.fixLineNo(stack[i]));\n }\n }\n }\n\n async main(): Promise {\n // Patch the font as it sometimes is wrong\n if (!this.context.debugMode) {\n if (await this.patchFont()) {\n this.log.debug('Font patched');\n }\n }\n\n this.log.debug(`config.subscribe (Do not subscribe all states on start): ${this.config.subscribe}`);\n\n // correct jsonConfig for admin\n const instObj: ioBroker.InstanceObject | null | undefined = await this.getForeignObjectAsync(\n `system.adapter.${this.namespace}`,\n );\n if (instObj?.common) {\n if (instObj.common.adminUI?.config !== 'json') {\n if (instObj.common.adminUI) {\n instObj.common.adminUI.config = 'json';\n } else {\n instObj.common.adminUI = { config: 'json' };\n }\n void this.setForeignObject(instObj._id, instObj);\n }\n }\n\n if (webstormDebug) {\n this.errorLogFunction = {\n error: console.error,\n warn: console.warn,\n info: console.info,\n debug: console.log,\n silly: console.log,\n };\n this.context.errorLogFunction = this.errorLogFunction;\n }\n this.activeStr = `${this.namespace}.scriptEnabled.`;\n\n this.mods.fs = new ProtectFs(this.log, getAbsoluteDefaultDataDir());\n this.mods['fs/promises'] = this.mods.fs.promises; // to avoid require('fs/promises');\n\n // try to read TS declarations\n try {\n tsAmbient = {\n 'javascript.d.ts': readFileSync(this.mods.path.join(__dirname, 'lib/javascript.d.ts'), 'utf8'),\n };\n this.tsServer.provideAmbientDeclarations(tsAmbient);\n jsDeclarationServer.provideAmbientDeclarations(tsAmbient);\n } catch (err: unknown) {\n this.log.warn(`Could not read TypeScript ambient declarations: ${err as Error}`);\n // This should not happen, so send an error report to Sentry\n if (this.supportsFeature && this.supportsFeature('PLUGINS')) {\n const sentryInstance = this.getPluginInstance('sentry');\n if (sentryInstance) {\n const sentryObject = sentryInstance.getSentryObject();\n sentryObject?.captureException(err as Error);\n }\n }\n // Keep the adapter from crashing when the included typings cannot be read\n tsAmbient = {};\n }\n\n await this.installLibraries();\n // Load the TS declarations for Node.js and all 3rd party modules\n this.loadTypeScriptDeclarations();\n\n await this.getData();\n this.context.scheduler = new Scheduler(\n this.log,\n Date,\n this.mods.suncalc,\n this.config.latitude,\n this.config.longitude,\n );\n await this.dayTimeSchedules();\n await this.sunTimeSchedules();\n await this.timeSchedule();\n\n // Warning. It could have a side effect in compact mode, so all adapters will accept self-signed certificates\n if (this.config.allowSelfSignedCerts) {\n process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';\n }\n\n const doc = await this.getObjectViewAsync('script', 'javascript', {});\n if (doc?.rows?.length) {\n // assemble global script\n for (let g = 0; g < doc.rows.length; g++) {\n const obj = doc.rows[g].value;\n if (checkIsGlobal(obj)) {\n if (obj && obj.common) {\n const engineType = (obj.common.engineType || '').toLowerCase();\n\n if (obj.common.enabled) {\n if (engineType.startsWith('typescript')) {\n // TypeScript\n this.log.info(`${obj._id}: compiling TypeScript source...`);\n // In order to compile global TypeScript, we need to do some transformations\n // 1. For top-level-await, some statements must be wrapped in an immediately-invoked async function\n // 2. If any global script uses `import`, the declarations are no longer visible if they are not exported with `declare global`\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, true);\n // The source code must be transformed in order to support top level await\n // Global scripts must not be treated as a module, otherwise their methods\n // cannot be found by the normal scripts\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash: string = hashSource(\n tsSourceHashBase + this.globalDeclarations + transformedSource,\n );\n\n let compiled: string | undefined;\n let declarations: string | undefined;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n declarations = obj.common.declarations;\n this.log.info(\n `${obj._id}: source code did not change, using cached compilation result...`,\n );\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n continue;\n }\n\n const errors = tsCompiled.diagnostics\n .map(diag => `${diag.annotatedSource}\\n`)\n .join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(\n `${obj._id}: TypeScript compilation completed with errors:\\n${errors}`,\n );\n } else {\n this.log.info(`${obj._id}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result;\n // Global scripts that have been transformed to support `import` need to have their declarations transformed aswell\n declarations = transformGlobalDeclarations(tsCompiled.declarations || '');\n\n const newCommon: {\n compiled: string | undefined;\n declarations?: string;\n sourceHash: string;\n } = {\n sourceHash,\n compiled,\n };\n if (declarations) {\n newCommon.declarations = declarations;\n }\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(obj._id); // ignore the next change and don't restart scripts\n void this.extendForeignObject(obj._id, {\n common: newCommon,\n });\n } else {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${errors}`);\n continue;\n }\n }\n this.globalScript += `${compiled}\\n`;\n // if declarations were generated, remember them\n if (declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, declarations);\n }\n } else {\n // javascript\n const sourceCode = obj.common.source;\n this.globalScript += `${sourceCode}\\n`;\n\n // try to compile the declarations so TypeScripts can use\n // functions defined in global JavaScripts\n const filename = scriptIdToTSFilename(obj._id);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = jsDeclarationServer.compile(filename, sourceCode);\n } catch (err: unknown) {\n this.log.warn(\n `${obj._id}: Error while generating type declarations, skipping:\\n${err as Error}`,\n );\n continue;\n }\n // if declarations were generated, remember them\n if (tsCompiled.success && tsCompiled.declarations != null) {\n this.provideDeclarationsForGlobalScript(obj._id, tsCompiled.declarations);\n }\n }\n }\n }\n }\n }\n }\n\n this.globalScript = this.globalScript.replace(/\\r\\n/g, '\\n');\n this.globalScriptLines = this.globalScript.split(/\\n/g).length - 1;\n\n if (doc?.rows?.length) {\n // load all scripts\n for (let i = 0; i < doc.rows.length; i++) {\n if (!checkIsGlobal(doc.rows[i].value)) {\n void this.loadScript(doc.rows[i].value);\n }\n }\n }\n\n if (this.config.mirrorPath) {\n this.config.mirrorInstance = parseInt(this.config.mirrorInstance as unknown as string, 10) || 0;\n if (this.instance === this.config.mirrorInstance) {\n const ioBDataDir = getAbsoluteDefaultDataDir() + sep;\n this.config.mirrorPath = normalize(this.config.mirrorPath);\n let mirrorForbidden = false;\n for (let dir of forbiddenMirrorLocations) {\n dir = join(ioBDataDir, dir) + sep;\n if (dir.includes(this.config.mirrorPath) || this.config.mirrorPath.startsWith(dir)) {\n this.log.error(`The Mirror directory is not allowed to be a central ioBroker directory!`);\n this.log.error(`Directory ${this.config.mirrorPath} is not allowed to mirror files!`);\n mirrorForbidden = true;\n break;\n }\n }\n if (!mirrorForbidden) {\n this.mirror = new Mirror({\n adapter: this,\n log: this.log,\n diskRoot: this.config.mirrorPath,\n });\n }\n }\n }\n\n // CHeck setState counter per minute and stop script if too high\n this.setStateCountCheckInterval = setInterval(() => {\n Object.keys(this.scripts).forEach(id => {\n if (!this.scripts[id]) {\n return;\n }\n const currentSetStatePerMinuteCounter = this.scripts[id].setStatePerMinuteCounter;\n this.scripts[id].setStatePerMinuteCounter = 0;\n if (currentSetStatePerMinuteCounter > this.config.maxSetStatePerMinute) {\n this.scripts[id].setStatePerMinuteProblemCounter++;\n this.log.debug(\n `${id}: Script has reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute in ${this.scripts[id].setStatePerMinuteProblemCounter} consecutive minutes`,\n );\n // Allow \"too high counters\" for 1 minute for script starts or such and only\n // stop the script when lasts longer\n if (this.scripts[id].setStatePerMinuteProblemCounter > 1) {\n this.log.error(\n `${id}: Script is calling setState more than ${this.config.maxSetStatePerMinute} times per minute! Stopping Script now! Please check your script!`,\n );\n void this.stopScript(id);\n }\n } else if (this.scripts[id].setStatePerMinuteProblemCounter > 0) {\n this.scripts[id].setStatePerMinuteProblemCounter--;\n this.log.debug(\n `Script ${id} has NOT reached the maximum of ${this.config.maxSetStatePerMinute} setState calls per minute. Decrease problem counter to ${this.scripts[id].setStatePerMinuteProblemCounter}`,\n );\n }\n });\n }, 60000);\n }\n\n private loadTypeScriptDeclarations(): void {\n // try to load the typings on disk for all 3rd party modules\n const packages = [\n 'node', // this provides auto-completion for most builtins\n '@iobroker/types', // this provides auto-completion for most builtins\n ];\n // Also include user-selected libraries (but only those that are also installed)\n if (typeof this.config?.libraries === 'string' && typeof this.config.libraryTypings === 'string') {\n const installedLibs = this.config.libraries\n .split(/[,;\\s]+/)\n .map(s => s.trim().split('@')[0])\n .filter(s => !!s);\n\n const wantsTypings = this.config.libraryTypings\n .split(/[,;\\s]+/)\n .map(s => s.trim())\n .filter(s => !!s);\n // Add all installed libraries the user has requested typings for to the list of packages\n for (const lib of installedLibs) {\n if (wantsTypings.includes(lib) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n // Some packages have submodules (e.g., rxjs/operators) that are not exposed through the main entry point\n // If typings are requested for them, also add them if the base module is installed\n for (const lib of wantsTypings) {\n // Extract the package name and check if we need to add it\n if (!lib.includes('/')) {\n continue;\n }\n const pkgName = lib.substring(0, lib.indexOf('/'));\n\n if (installedLibs.includes(pkgName) && !packages.includes(lib)) {\n packages.push(lib);\n }\n }\n }\n for (const pkg of packages) {\n let pkgTypings = resolveTypings(\n pkg,\n this.getAdapterScopedPackageIdentifier ? this.getAdapterScopedPackageIdentifier(pkg) : pkg,\n // node needs ambient typings, so we don't wrap it in declare module\n pkg !== 'node',\n );\n if (!pkgTypings) {\n // Create the empty dummy declarations so users don't get the \"not found\" error\n // for installed packages\n if (pkg.includes('/')) {\n pkgTypings = {\n [`node_modules/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n } else {\n pkgTypings = {\n [`node_modules/@types/${pkg}/index.d.ts`]: `declare module \"${pkg}\";`,\n };\n }\n }\n this.log.debug(`Loaded TypeScript definitions for \"${pkg}\": ${JSON.stringify(Object.keys(pkgTypings))}`);\n // remember the declarations for the editor\n Object.assign(tsAmbient, pkgTypings);\n // and give the language servers access to them\n this.tsServer.provideAmbientDeclarations(pkgTypings);\n jsDeclarationServer.provideAmbientDeclarations(pkgTypings);\n }\n }\n\n updateObjectContext(id: string, obj: ioBroker.Object | null | undefined): void {\n if (obj) {\n // add state to state ID's list\n if (obj.type === 'state') {\n if (!this.stateIds.includes(id)) {\n this.stateIds.push(id);\n this.stateIds.sort();\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n this.context.channels[chn] = this.context.channels[chn] || [];\n this.context.channels[chn].push(id);\n\n parts.pop();\n const dev = parts.join('.');\n this.context.devices[dev] = this.context.devices[dev] || [];\n this.context.devices[dev].push(id);\n }\n }\n } else {\n // delete object from state ID's list\n const pos = this.stateIds.indexOf(id);\n if (pos !== -1) {\n this.stateIds.splice(pos, 1);\n }\n if (this.context.devices && this.context.channels) {\n const parts = id.split('.');\n parts.pop();\n const chn = parts.join('.');\n if (this.context.channels[chn]) {\n const posChn = this.context.channels[chn].indexOf(id);\n posChn !== -1 && this.context.channels[chn].splice(posChn, 1);\n }\n\n parts.pop();\n const dev = parts.join('.');\n if (this.context.devices[dev]) {\n const posDev = this.context.devices[dev].indexOf(id);\n posDev !== -1 && this.context.devices[dev].splice(posDev, 1);\n }\n }\n\n delete this.folderCreationVerifiedObjects[id];\n }\n\n if (!obj && this.objects[id]) {\n // objects was deleted\n this.removeFromNames(id);\n delete this.objects[id];\n } else if (obj && !this.objects[id]) {\n // object was added\n this.objects[id] = obj;\n this.addToNames(obj);\n } else if (obj && this.objects[id].common) {\n // Object just changed\n this.objects[id] = obj;\n\n const n = this.getName(id);\n let nn = this.objects[id].common ? this.objects[id].common.name : '';\n\n if (nn && typeof nn === 'object') {\n nn = nn[getLanguage()] || nn.en;\n }\n\n if (n !== nn) {\n if (n) {\n this.removeFromNames(id);\n }\n if (nn) {\n this.addToNames(obj);\n }\n }\n }\n }\n\n async stopAllScripts(): Promise {\n const scripts = Object.keys(this.scripts);\n const promises: Promise[] = [];\n for (let i = 0; i < scripts.length; i++) {\n promises.push(this.stopScript(scripts[i]));\n }\n return Promise.all(promises).then(() => {});\n }\n\n convertBackStringifiedValues(\n id: string,\n state: ioBroker.State | null | undefined,\n ): ioBroker.State | null | undefined {\n if (\n state &&\n typeof state.val === 'string' &&\n this.objects[id]?.common &&\n (this.objects[id].common.type === 'array' || this.objects[id].common.type === 'object')\n ) {\n try {\n state.val = JSON.parse(state.val);\n } catch (err: any) {\n if (id.startsWith('javascript.') || id.startsWith('0_userdata.0')) {\n this.log.info(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n } else {\n this.log.debug(\n `Could not parse value for id \"${id}\" into ${this.objects[id].common.type}: ${err.toString()}`,\n );\n }\n }\n }\n return state;\n }\n\n prepareStateObjectSimple(id: string, state: ioBroker.StateValue, isAck: boolean): ioBroker.State {\n // otherwise, assume that the given state is the value to be set\n const oState: ioBroker.State = { val: state, ack: isAck } as ioBroker.State;\n\n return this.prepareStateObject(id, oState);\n }\n\n prepareStateObject(id: string, state: ioBroker.SettableState | null): ioBroker.State {\n let oState: ioBroker.State;\n\n if (state && typeof state === 'object') {\n oState = state as ioBroker.State;\n } else {\n oState = { val: null } as ioBroker.State;\n }\n\n if (this.config.subscribe) {\n return oState;\n }\n // set other values to have a full state object\n // mirrors logic from statesInRedis\n if (oState.ts === undefined) {\n oState.ts = Date.now();\n }\n\n if (oState.q === undefined) {\n oState.q = 0;\n }\n\n oState.from =\n typeof oState.from === 'string' && oState.from !== '' ? oState.from : `system.adapter.${this.namespace}`;\n\n if (oState.lc === undefined) {\n const formerStateValue = this.interimStateValues[id] || this.states[id];\n if (!formerStateValue) {\n oState.lc = oState.ts;\n } else {\n // isDeepStrictEqual works on objects and primitive values\n const hasChanged = !isDeepStrictEqual(formerStateValue.val, oState.val);\n if (!formerStateValue.lc || hasChanged) {\n oState.lc = oState.ts;\n } else {\n oState.lc = formerStateValue.lc;\n }\n }\n }\n\n return oState;\n }\n\n async getData(): Promise {\n await this.subscribeForeignObjectsAsync('*');\n\n if (!this.config.subscribe) {\n await this.subscribeForeignStatesAsync('*');\n } else {\n await this.subscribeStatesAsync('debug.to');\n await this.subscribeStatesAsync('scriptEnabled.*');\n }\n\n this.log.info('requesting all states');\n\n const statesPromise = this.getForeignStatesAsync('*')\n .then(res => {\n if (!res) {\n this.log.error(`Could not initialize states: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n if (!this.config.subscribe) {\n this.states = Object.assign(res, this.states);\n this.context.states = this.states;\n\n this.addGetProperty(this.states);\n }\n\n // remember all IDs\n for (const id in res) {\n if (Object.prototype.hasOwnProperty.call(res, id)) {\n this.stateIds.push(id);\n }\n }\n this.statesInitDone = true;\n this.log.info('received all states');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize states: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n this.log.info('requesting all objects');\n\n const objectsPromise = this.getObjectListAsync({ include_docs: true })\n .then(res => {\n if (!res?.rows) {\n this.log.error(`Could not initialize objects: no result`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n return;\n }\n this.objects = {};\n this.context.objects = this.objects;\n for (let i = 0; i < res.rows.length; i++) {\n if (!res.rows[i].doc) {\n this.log.debug(`Got empty object for index ${i} (${res.rows[i].id})`);\n continue;\n }\n if (this.objects[res.rows[i].doc._id] === undefined) {\n // If was already there ignore\n this.objects[res.rows[i].doc._id] = res.rows[i].doc;\n }\n this.objects[res.rows[i].doc._id].type === 'enum' && this._enums.push(res.rows[i].doc._id);\n\n // Collect all names\n this.addToNames(this.objects[res.rows[i].doc._id]);\n }\n this.addGetProperty(this.objects);\n\n const systemConfig = this.objects['system.config'];\n\n // set language for debug messages\n if (systemConfig?.common?.language) {\n setLanguage(systemConfig.common.language);\n this.language = systemConfig.common.language;\n this.context.language = this.language as ioBroker.Languages;\n } else if (this.language) {\n setLanguage(this.language);\n this.context.language = this.language;\n }\n\n // try to use system coordinates\n if (this.config.useSystemGPS) {\n if (systemConfig?.common?.latitude || systemConfig?.common?.longitude) {\n this.config.latitude = systemConfig.common.latitude;\n this.config.longitude = systemConfig.common.longitude;\n } else if (this.latitude && this.longitude) {\n this.config.latitude = this.latitude;\n this.config.longitude = this.longitude;\n }\n }\n this.config.latitude = parseFloat(this.config.latitude as unknown as string);\n this.config.longitude = parseFloat(this.config.longitude as unknown as string);\n\n if (isNaN(this.config.latitude)) {\n this.log.warn(`Configured latitude is not a number - check (instance/system) configuration`);\n } else if (this.config.latitude < -90 || this.config.latitude > 90) {\n this.log.warn(\n `Configured latitude \"${this.config.latitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n if (isNaN(this.config.longitude)) {\n this.log.warn(`Configured longitude is not a number - check (instance/system) configuration`);\n } else if (this.config.longitude < -180 || this.config.longitude > 180) {\n this.log.warn(\n `Configured longitude \"${this.config.longitude}\" is invalid - check (instance/system) configuration`,\n );\n }\n\n this.config.sunriseEvent = this.config.sunriseEvent || 'nightEnd';\n this.config.sunriseOffset = this.config.sunriseOffset || 0;\n this.config.sunriseLimitStart = this.config.sunriseLimitStart || '06:00';\n this.config.sunriseLimitEnd = this.config.sunriseLimitEnd || '12:00';\n\n this.config.sunsetEvent = this.config.sunsetEvent || 'dusk';\n this.config.sunsetOffset = this.config.sunsetOffset || 0;\n this.config.sunsetLimitStart = this.config.sunsetLimitStart || '18:00';\n this.config.sunsetLimitEnd = this.config.sunsetLimitEnd || '23:00';\n\n this.objectsInitDone = true;\n this.log.info('received all objects');\n })\n .catch((err: any) => {\n this.log.error(`Could not initialize objects: ${err?.message || 'no result'}`);\n this.terminate(EXIT_CODES.START_IMMEDIATELY_AFTER_STOP);\n });\n\n return Promise.all([statesPromise, objectsPromise]).then(() => {});\n }\n\n async createActiveObject(id: string, enabled: boolean): Promise {\n const idActive = `${this.namespace}.scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idActive]) {\n this.objects[idActive] = {\n _id: idActive,\n common: {\n name: `scriptEnabled.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'controls script activity',\n type: 'boolean',\n write: true,\n read: true,\n role: 'switch.active',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idActive, this.objects[idActive]);\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[idActive] = intermediateStateValue;\n }\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idActive);\n if (state && state.val !== enabled) {\n const intermediateStateValue = this.prepareStateObjectSimple(idActive, enabled, true);\n await this.setForeignStateAsync(idActive, enabled, true);\n if (enabled && !this.config.subscribe) {\n this.interimStateValues[id] = intermediateStateValue;\n }\n }\n }\n }\n\n async createProblemObject(id: string): Promise {\n const idProblem = `${this.namespace}.scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`;\n\n if (!this.objects[idProblem]) {\n this.objects[idProblem] = {\n _id: idProblem,\n common: {\n name: `scriptProblem.${id.substring(SCRIPT_CODE_MARKER.length)}`,\n desc: 'Script has a problem',\n type: 'boolean',\n expert: true,\n write: false,\n read: true,\n role: 'indicator.error',\n },\n native: {\n script: id,\n },\n type: 'state',\n };\n try {\n await this.setForeignObjectAsync(idProblem, this.objects[idProblem]);\n await this.setForeignStateAsync(idProblem, false, true);\n } catch {\n // ignore\n }\n } else {\n const state = await this.getForeignStateAsync(idProblem);\n if (state && state.val !== false) {\n await this.setForeignStateAsync(idProblem, false, true);\n }\n }\n }\n\n addToNames(obj: ioBroker.Object): void {\n const id = obj._id;\n\n if (obj.common?.name) {\n let name = obj.common.name;\n if (name && typeof name === 'object') {\n name = name[getLanguage()] || name.en;\n }\n if (!name || typeof name !== 'string') {\n // TODO, take name in current language\n return;\n }\n\n if (!this.names[name]) {\n this.names[name] = id;\n } else {\n // convert to array\n if (!Array.isArray(this.names[name])) {\n this.names[name] = [this.names[name] as string];\n }\n\n (this.names[name] as string[]).push(id);\n }\n }\n }\n\n removeFromNames(id: string): void {\n const n = this.getName(id);\n\n if (n) {\n if (Array.isArray(this.names[n])) {\n const pos = this.names[n].indexOf(id);\n if (pos > -1) {\n this.names[n].splice(pos, 1);\n\n if (this.names[n].length === 1) {\n this.names[n] = this.names[n][0];\n }\n }\n } else {\n delete this.names[n];\n }\n }\n }\n\n getName(id: string): string | null {\n for (const n in this.names) {\n if (this.names[n] && Array.isArray(this.names[n])) {\n if (this.names[n].includes(id)) {\n return n;\n }\n } else if (this.names[n] === id) {\n return n;\n }\n }\n\n return null;\n }\n\n async installNpm(npmLib: string): Promise {\n return new Promise((resolve, reject) => {\n const path = __dirname;\n\n // Also, set the working directory (cwd) of the process instead of using --prefix\n // because that has ugly bugs on Windows\n const cmd = `npm install ${npmLib} --omit=dev`;\n this.log.info(`Installing ${npmLib} into ${__dirname} - cmd: ${cmd}`);\n\n // System call used for update of js-controller itself,\n // because during the installation the npm packet will be deleted too, but some files must be loaded even during the installation process.\n const child = this.mods.child_process.exec(cmd, {\n windowsHide: true,\n cwd: path,\n });\n\n child.stdout?.on('data', buf => this.log.info(buf.toString('utf8')));\n\n child.stderr?.on('data', buf => this.log.error(buf.toString('utf8')));\n\n child.on('err', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n child.on('error', err => {\n this.log.error(`Cannot install ${npmLib}: ${err}`);\n reject(new Error(`Cannot install ${npmLib}: ${err}`));\n });\n\n child.on('exit', (code: number /* , signal */) => {\n if (code) {\n this.log.error(`Cannot install ${npmLib}: ${code}`);\n reject(new Error(`Cannot install ${npmLib}: ${code}`));\n }\n // command succeeded\n resolve(code);\n });\n });\n }\n\n async installLibraries(): Promise {\n if (typeof this.config?.libraries !== 'string') {\n this.config.libraries = '';\n }\n\n const libraries: string[] = this.config.libraries\n .split(/[,;\\s]+/)\n .map(d => d.trim())\n .filter(d => d);\n\n this.log.debug(`Custom libraries in config: \"${this.config.libraries}\": ${JSON.stringify(libraries)}`);\n\n let installedNodeModules: string[] = [];\n const keepModules: string[] = [];\n\n // js-controller >= 6.x\n if (typeof this.listInstalledNodeModules === 'function') {\n installedNodeModules = await this.listInstalledNodeModules();\n\n this.log.debug(`Found installed libraries: ${JSON.stringify(installedNodeModules)}`);\n }\n\n for (const lib of libraries) {\n let depName = lib;\n let version = 'latest';\n\n if (depName.includes('@') && depName.lastIndexOf('@') > 0) {\n const parts = depName.split('@');\n version = parts.pop() ?? 'latest';\n depName = parts.join('@');\n }\n\n /** The real module name, because the dependency can be an url too */\n let moduleName = depName;\n\n if (URL.canParse(depName)) {\n moduleName = await requestModuleNameByUrl(depName);\n\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\" (from ${depName})`);\n } else {\n this.log.debug(`Found custom library in config: \"${moduleName}@${version}\"`);\n }\n\n keepModules.push(moduleName);\n\n // js-controller >= 6.x\n if (typeof this.installNodeModule === 'function') {\n try {\n const result = await this.installNodeModule(depName, { version });\n if (result.success) {\n this.log.debug(`Installed custom library: \"${moduleName}@${version}\"`);\n\n const importedModule: any = await this.importNodeModule(moduleName);\n (this.mods as Record)[moduleName] = importedModule.default ?? importedModule;\n } else {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\"`);\n }\n } catch (err: unknown) {\n this.log.warn(`Cannot install custom npm package \"${moduleName}@${version}\": ${err as Error}`);\n }\n } else if (!existsSync(`${__dirname}/node_modules/${depName}/package.json`)) {\n // js-controller < 6.x\n this.log.info(`Installing custom library (legacy mode): \"${lib}\"`);\n\n try {\n await this.installNpm(lib);\n this.log.info(`Installed custom npm package (legacy mode): \"${lib}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot install custom npm package \"${lib}\" (legacy mode): ${err.toString()}`);\n }\n }\n }\n\n // js-controller >= 6.x\n if (typeof this.uninstallNodeModule === 'function') {\n for (const installedNodeModule of installedNodeModules) {\n if (!keepModules.includes(installedNodeModule)) {\n try {\n await this.uninstallNodeModule(installedNodeModule);\n\n this.log.info(`Removed custom npm package: \"${installedNodeModule}\"`);\n } catch (err: any) {\n this.log.warn(`Cannot remove custom npm package ${installedNodeModule}: ${err.toString()}`);\n }\n }\n }\n }\n }\n\n createVM(source: string, name: string, wrapAsync: boolean): false | JsScript {\n if (this.context.debugMode && name !== this.context.debugMode) {\n return false;\n }\n\n if (!this.context.debugMode) {\n const logSubscriptionsText =\n \"\\n;\\nlog(`registered ${__engine.__subscriptions} subscription${__engine.__subscriptions === 1 ? '' : 's'},\" +\n \" ${__engine.__schedules} schedule${__engine.__schedules === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsMessage} message${__engine.__subscriptionsMessage === 1 ? '' : 's'},\" +\n \" ${__engine.__subscriptionsLog} log${__engine.__subscriptionsLog === 1 ? '' : 's'}\" +\n \" and ${__engine.__subscriptionsFile} file subscription${__engine.__subscriptionsFile === 1 ? '' : 's'}`);\\n\";\n\n if (wrapAsync) {\n source = `(async () => {\\n${source}\\n${logSubscriptionsText}\\n})();`;\n } else {\n if (source.endsWith('export {};\\n')) {\n // If the source ends with \"export {};\" place the log subscriptions before it\n source = source.slice(0, -11); // remove \"export {};\\n\"\n source = `${source}\\n${logSubscriptionsText}\\nexport {};\\n`;\n } else {\n source = `${source}\\n${logSubscriptionsText}`;\n }\n }\n } else {\n if (wrapAsync) {\n source = `(async () => {debugger;\\n${source}\\n})();`;\n } else {\n source = `debugger;${source}`;\n }\n }\n\n try {\n const options: ScriptOptions = {\n filename: name,\n // displayErrors: true,\n // lineOffset: this.globalScriptLines\n };\n return {\n script: new Script(source, options),\n } as JsScript;\n } catch (err: unknown) {\n this.logError(name, `compile failed at`, err as Error);\n return false;\n }\n }\n\n execute(script: JsScript, name: string, engineType: ScriptType, verbose: boolean, debug: boolean): void {\n script.intervals = [];\n script.timeouts = [];\n script.schedules = [];\n script.wizards = [];\n script.name = name;\n script.engineType = engineType;\n script._id = Math.floor(Math.random() * 0xffffffff);\n script.subscribes = {};\n script.subscribesFile = {};\n script.setStatePerMinuteCounter = 0;\n script.setStatePerMinuteProblemCounter = 0;\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: false,\n ack: true,\n expire: 1000,\n });\n\n const sandbox = sandBox(script, name, verbose, debug, this.context);\n\n try {\n script.script.runInNewContext(sandbox, {\n filename: name,\n displayErrors: true,\n // lineOffset: this.globalScriptLines\n });\n } catch (err: unknown) {\n void this.setState(`scriptProblem.${name.substring(SCRIPT_CODE_MARKER.length)}`, {\n val: true,\n ack: true,\n c: 'execute',\n });\n this.logError(name, 'Error by run:', err as Error);\n }\n }\n\n unsubscribe(id: string | RegExp | string[]): void {\n if (!id) {\n this.log.warn('unsubscribe: empty name');\n return;\n }\n\n if (Array.isArray(id)) {\n id.forEach(sub => unsubscribe(sub));\n return;\n }\n\n if (id.constructor && id.constructor.name === 'RegExp') {\n // adapter.log.warn('unsubscribe: todo - process regexp');\n return;\n }\n\n if (typeof id !== 'string') {\n this.log.error(`unsubscribe: invalid type of id - ${typeof id}`);\n return;\n }\n const parts = id.split('.');\n const _adapter = `system.adapter.${parts[0]}.${parts[1]}`;\n if (this.objects[_adapter]?.common?.subscribable) {\n const a = `${parts[0]}.${parts[1]}`;\n const alive = `system.adapter.${a}.alive`;\n if (this.adapterSubs[alive]) {\n const pos = this.adapterSubs[alive].indexOf(id);\n if (pos !== -1) {\n this.adapterSubs[alive].splice(pos, 1);\n }\n if (!this.adapterSubs[alive].length) {\n delete this.adapterSubs[alive];\n }\n }\n this.sendTo(a, 'unsubscribe', id);\n }\n }\n\n // Analyze if logs are still required or not\n updateLogSubscriptions(): void {\n let found = false;\n // go through all scripts and check if some script still requires logs\n Object.keys(this.logSubscriptions).forEach(scriptName => {\n if (!this.logSubscriptions?.[scriptName] || !this.logSubscriptions[scriptName].length) {\n delete this.logSubscriptions[scriptName];\n } else {\n found = true;\n }\n });\n\n if (this.requireLog) {\n if (found && !this.logSubscribed) {\n this.logSubscribed = true;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Subscribed to log messages (found logSubscriptions)`);\n } else if (!found && this.logSubscribed) {\n this.logSubscribed = false;\n void this.requireLog(this.logSubscribed);\n this.log.info(`Unsubscribed from log messages (not found logSubscriptions)`);\n }\n }\n }\n\n async stopScript(name: string): Promise {\n this.log.info(`${name}: Stopping script`);\n\n await this.setState(`scriptEnabled.${name.substring(SCRIPT_CODE_MARKER.length)}`, false, true);\n\n if (this.messageBusHandlers[name]) {\n delete this.messageBusHandlers[name];\n }\n\n if (this.tempDirectories[name]) {\n try {\n this.mods.fs.rmSync(this.tempDirectories[name], { recursive: true });\n\n this.log.debug(`${name}: Removed temp directory: ${this.tempDirectories[name]}`);\n } catch {\n this.log.warn(`${name}: Unable to remove temp directory: ${this.tempDirectories[name]}`);\n }\n\n delete this.tempDirectories[name];\n }\n\n if (this.logSubscriptions[name]) {\n delete this.logSubscriptions[name];\n this.updateLogSubscriptions();\n }\n\n if (this.scripts[name]) {\n // Remove from subscriptions\n this.context.isEnums = false;\n if (this.config.subscribe) {\n // check all subscribed IDs\n Object.keys(this.scripts[name].subscribes).forEach(id => {\n if (this.subscribedPatterns[id]) {\n this.subscribedPatterns[id] -= this.scripts[name].subscribes[id];\n if (this.subscribedPatterns[id] <= 0) {\n this.unsubscribeForeignStates(id);\n delete this.subscribedPatterns[id];\n if (this.states[id]) {\n delete this.states[id];\n }\n }\n }\n });\n }\n\n for (let i = this.subscriptions.length - 1; i >= 0; i--) {\n if (this.subscriptions[i].name === name) {\n const sub = this.subscriptions.splice(i, 1)[0];\n if (sub?.pattern.id) {\n this.unsubscribe(sub.pattern.id);\n }\n } else {\n if (\n (!this.context.isEnums && this.subscriptions[i].pattern.enumName) ||\n this.subscriptions[i].pattern.enumId\n ) {\n this.context.isEnums = true;\n }\n }\n }\n\n // check all subscribed files\n Object.keys(this.scripts[name].subscribesFile).forEach(key => {\n if (this.subscribedPatternsFile[key]) {\n this.subscribedPatternsFile[key] -= this.scripts[name].subscribesFile[key];\n if (this.subscribedPatternsFile[key] <= 0) {\n const [id, file] = key.split('$%$');\n void this.unsubscribeForeignFiles(id, file);\n delete this.subscribedPatternsFile[key];\n }\n }\n });\n for (let i = this.subscriptionsFile.length - 1; i >= 0; i--) {\n if (this.subscriptionsFile[i].name === name) {\n this.subscriptionsFile.splice(i, 1);\n }\n }\n\n for (let i = this.subscriptionsObject.length - 1; i >= 0; i--) {\n if (this.subscriptionsObject[i].name === name) {\n const sub = this.subscriptionsObject.splice(i, 1)[0];\n if (sub) {\n this.unsubscribeForeignObjects(sub.pattern);\n }\n }\n }\n\n // Stop all timeouts\n for (let i = 0; i < this.scripts[name].timeouts.length; i++) {\n clearTimeout(this.scripts[name].timeouts[i]);\n }\n // Stop all intervals\n for (let i = 0; i < this.scripts[name].intervals.length; i++) {\n clearInterval(this.scripts[name].intervals[i]);\n }\n // Stop all scheduled jobs\n for (let i = 0; i < this.scripts[name].schedules.length; i++) {\n if (this.scripts[name].schedules[i]) {\n const _name = this.scripts[name].schedules[i].name;\n if (!this.mods.nodeSchedule.cancelJob(this.scripts[name].schedules[i])) {\n this.log.error(`${name}: Error by canceling scheduled job \"${_name}\"`);\n }\n }\n }\n\n // Stop all time wizards jobs\n if (this.context.scheduler) {\n for (let i = 0; i < this.scripts[name].wizards.length; i++) {\n if (this.scripts[name].wizards[i]) {\n this.context.scheduler.remove(this.scripts[name].wizards[i]);\n }\n }\n }\n\n // if callback for on stop\n if (typeof this.scripts[name].onStopCb === 'function') {\n this.scripts[name].onStopTimeout =\n parseInt(this.scripts[name].onStopTimeout as unknown as string, 10) || 1000;\n\n await new Promise(resolve => {\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n if (timeout) {\n timeout = null;\n resolve(true);\n }\n }, this.scripts[name].onStopTimeout);\n\n try {\n this.scripts[name].onStopCb(() => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n resolve(true);\n }\n });\n } catch (err: unknown) {\n this.log.error(`${name}: error in onStop callback: ${err as Error}`);\n }\n });\n }\n\n delete this.scripts[name];\n return true;\n }\n return false;\n }\n\n async prepareScript(obj: ioBroker.ScriptObject): Promise {\n if (obj?.common?.enabled && this.debugState.scriptName === obj._id) {\n const id = obj._id;\n await this.debugStop();\n this.log.info(`${id}: Debugging was stopped, because started in normal mode`);\n return this.prepareScript(obj);\n }\n\n if (\n obj?.common?.source &&\n (obj.common.enabled || this.context.debugMode === obj._id) &&\n obj.common.engine === `system.adapter.${this.namespace}`\n ) {\n const name = obj._id;\n\n const nameId = name.substring(SCRIPT_CODE_MARKER.length);\n if (!nameId.length || nameId.endsWith('.')) {\n this.log.error(`${name}: Script name \"${name}\" is invalid!`);\n return false;\n }\n const idActive = `scriptEnabled.${nameId}`;\n if (!this.config.subscribe) {\n this.interimStateValues[idActive] = this.prepareStateObjectSimple(\n `${this.namespace}.${idActive}`,\n true,\n true,\n );\n }\n await this.setState(idActive, true, true);\n obj.common.engineType = obj.common.engineType || '';\n\n if (\n (obj.common.engineType as ScriptType).toLowerCase().startsWith('javascript') ||\n (obj.common.engineType as ScriptType) === 'Blockly' ||\n (obj.common.engineType as ScriptType) === 'Rules'\n ) {\n // Javascript\n this.log.info(`${name}: start JavaScript (${obj.common.engineType})`);\n\n let sourceFn = name;\n if (webstormDebug) {\n const fn = name.replace(/^script\\.js\\./, '').replace(/\\./g, '/');\n sourceFn = this.mods.path.join(webstormDebug, `${fn}.js`);\n }\n const createdScript = this.createVM(`${this.globalScript}\\n${obj.common.source}`, sourceFn, true);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n sourceFn,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n if (obj.common.engineType.toLowerCase().startsWith('typescript')) {\n // TypeScript\n this.log.info(`${name}: Compiling TypeScript source`);\n // The source code must be transformed in order to support top level await\n // and to force TypeScript to compile the code as a module\n const transformedSource = transformScriptBeforeCompilation(obj.common.source, false);\n // We need to hash both global declarations that are known until now\n // AND the script source, because changing either can change the compilation output\n const sourceHash = hashSource(tsSourceHashBase + this.globalDeclarations + transformedSource);\n\n let compiled: string;\n // If we already stored the compiled source code and the original source hash,\n // use the hash to check whether we can rely on the compiled source code or\n // if we need to compile it again\n if (\n typeof obj.common.compiled === 'string' &&\n typeof obj.common.sourceHash === 'string' &&\n sourceHash === obj.common.sourceHash\n ) {\n // We can reuse the stored source\n compiled = obj.common.compiled;\n this.log.info(`${name}: source code did not change, using cached compilation result...`);\n } else {\n // We don't have a hashed source code, or the original source changed, compile it\n const filename = scriptIdToTSFilename(name);\n let tsCompiled: CompileResult;\n try {\n tsCompiled = this.tsServer.compile(filename, transformedSource);\n } catch (err: unknown) {\n this.log.error(`${obj._id}: TypeScript compilation failed:\\n${err as Error}`);\n return false;\n }\n\n const errors = tsCompiled.diagnostics.map(diag => `${diag.annotatedSource}\\n`).join('\\n');\n\n if (tsCompiled.success) {\n if (errors.length > 0) {\n this.log.warn(`${name}: TypeScript compilation had errors:\\n${errors}`);\n } else {\n this.log.info(`${name}: TypeScript compilation successful`);\n }\n compiled = tsCompiled.result || '';\n\n // Store the compiled source and the original source hash, so we don't need to do the work again next time\n this.ignoreObjectChange.add(name); // ignore the next change and don't restart scripts\n await this.extendForeignObjectAsync(name, {\n common: {\n sourceHash,\n compiled,\n },\n });\n } else {\n this.log.error(`${name}: TypeScript compilation failed:\\n${errors}`);\n return false;\n }\n }\n const createdScript: JsScript | false = this.createVM(`${this.globalScript}\\n${compiled}`, name, false);\n if (!createdScript) {\n return false;\n }\n this.scripts[name] = createdScript;\n this.execute(\n this.scripts[name],\n name,\n obj.common.engineType as ScriptType,\n obj.common.verbose,\n obj.common.debug,\n );\n return true;\n }\n\n this.log.warn(`${obj._id}: Unknown engine type: ${obj.common.engineType}`);\n return false;\n }\n\n let _name: string;\n if (obj?._id) {\n _name = obj._id;\n const scriptIdName = _name.substring(SCRIPT_CODE_MARKER.length);\n\n if (!scriptIdName.length || scriptIdName.endsWith('.')) {\n this.log.error(`${obj._id}: Script name \"${_name}\" is invalid!`);\n return false;\n }\n await this.setState(`scriptEnabled.${scriptIdName}`, false, true);\n }\n if (!obj) {\n this.log.error('Invalid script');\n }\n return false;\n }\n\n async loadScriptById(id: string): Promise {\n let obj: ioBroker.ScriptObject | null | undefined;\n try {\n obj = (await this.getForeignObjectAsync(id)) as ioBroker.ScriptObject | null | undefined;\n } catch (err: any) {\n this.log.error(`${id}: Invalid script: ${err}`);\n }\n if (!obj) {\n return false;\n }\n return this.loadScript(obj);\n }\n\n async loadScript(nameOrObject: ioBroker.ScriptObject): Promise {\n // create states for scripts\n await this.createActiveObject(nameOrObject._id, !!nameOrObject?.common?.enabled);\n await this.createProblemObject(nameOrObject._id);\n return this.prepareScript(nameOrObject);\n }\n\n getAstroEvent(\n date: Date,\n astroEvent: AstroEventName,\n start: string,\n end: string,\n offsetMinutes: number | string,\n isDayEnd: boolean,\n latitude: number,\n longitude: number,\n useNextDay?: boolean,\n ): Date {\n let ts: Date = this.mods.suncalc.getTimes(date, latitude, longitude)[astroEvent];\n\n if (!ts || ts.getTime().toString() === 'NaN') {\n ts = isDayEnd ? getNextTimeEvent(end, useNextDay) : getNextTimeEvent(start, useNextDay);\n }\n ts.setMilliseconds(0);\n ts.setMinutes(ts.getMinutes() + (parseInt(offsetMinutes as unknown as string, 10) || 0));\n\n const [timeHoursStart, timeMinutesStart] = start.split(':');\n const nTimeHoursStart = parseInt(timeHoursStart, 10);\n const nTimeMinutesStart = parseInt(timeMinutesStart, 10) || 0;\n\n if (\n ts.getHours() < nTimeHoursStart ||\n (ts.getHours() === nTimeHoursStart && ts.getMinutes() < nTimeMinutesStart)\n ) {\n ts = getNextTimeEvent(start, useNextDay);\n ts.setSeconds(0);\n }\n\n const [timeHoursEnd, timeMinutesEnd] = end.split(':');\n const nTimeHoursEnd = parseInt(timeHoursEnd, 10);\n const nTimeMinutesEnd = parseInt(timeMinutesEnd, 10) || 0;\n\n if (ts.getHours() > nTimeHoursEnd || (ts.getHours() === nTimeHoursEnd && ts.getMinutes() > nTimeMinutesEnd)) {\n ts = getNextTimeEvent(end, useNextDay);\n ts.setSeconds(0);\n }\n\n // if event in the past\n if (date > ts && useNextDay) {\n // take the next day\n ts.setDate(ts.getDate() + 1);\n }\n return ts;\n }\n\n async timeSchedule(): Promise {\n const now = new Date();\n let hours = now.getHours();\n const minutes = now.getMinutes();\n if (this.timeSettings.format12) {\n if (hours > 12) {\n hours -= 12;\n }\n }\n let sHours: string;\n if (this.timeSettings.leadingZeros) {\n sHours = hours.toString().padStart(2, '0');\n } else {\n sHours = hours.toString();\n }\n\n await this.setState('variables.dayTime', {\n val: `${sHours}:${minutes.toString().padStart(2, '0')}`,\n ack: true,\n });\n\n now.setMinutes(now.getMinutes() + 1);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const interval = now.getTime() - Date.now();\n this.timeScheduleTimer = setTimeout(() => this.timeSchedule(), interval);\n }\n\n async dayTimeSchedules(): Promise {\n // get astrological event\n if (\n this.config.latitude === undefined ||\n this.config.longitude === undefined ||\n (this.config.latitude as unknown as string) === '' ||\n (this.config.longitude as unknown as string) === '' ||\n this.config.latitude === null ||\n this.config.longitude === null\n ) {\n this.log.error('Longitude or latitude does not set. Cannot use astro.');\n return;\n }\n\n // Calculate the next event today\n const todayDate = getAstroStartOfDay();\n const nowDate = new Date();\n\n const todaySunrise = this.getAstroEvent(\n todayDate,\n this.config.sunriseEvent,\n this.config.sunriseLimitStart,\n this.config.sunriseLimitEnd,\n this.config.sunriseOffset,\n false,\n this.config.latitude,\n this.config.longitude,\n );\n const todaySunset = this.getAstroEvent(\n todayDate,\n this.config.sunsetEvent,\n this.config.sunsetLimitStart,\n this.config.sunsetLimitEnd,\n this.config.sunsetOffset,\n true,\n this.config.latitude,\n this.config.longitude,\n );\n\n // Sunrise\n let sunriseTimeout = todaySunrise.getTime() - nowDate.getTime();\n if (sunriseTimeout < 0 || sunriseTimeout > 3600000) {\n sunriseTimeout = 3600000;\n }\n\n // Sunset\n let sunsetTimeout = todaySunset.getTime() - nowDate.getTime();\n if (sunsetTimeout < 0 || sunsetTimeout > 3600000) {\n sunsetTimeout = 3600000;\n }\n\n const isDayTime: ioBroker.State | null | undefined = await this.getStateAsync('variables.isDayTime');\n let isDay: boolean;\n if (sunriseTimeout < 5000) {\n isDay = true;\n } else if (sunsetTimeout < 5000) {\n isDay = false;\n } else {\n // check if in between\n isDay = nowDate.getTime() > todaySunrise.getTime() - 60000 && nowDate <= todaySunset;\n }\n\n const valDayTime = isDayTime ? !!isDayTime.val : false;\n if (valDayTime !== isDay || isDayTime === null) {\n await this.setState('variables.isDayTime', isDay, true);\n }\n\n const dayLightSaving: ioBroker.State | null | undefined =\n await this.getStateAsync('variables.isDaylightSaving');\n const isDayLightSaving = dstOffsetAtDate(nowDate) !== 0;\n const val = dayLightSaving ? !!dayLightSaving.val : false;\n\n if (val !== isDayLightSaving || dayLightSaving === null) {\n await this.setState('variables.isDaylightSaving', isDayLightSaving, true);\n }\n\n let nextTimeout = sunriseTimeout;\n if (sunriseTimeout > sunsetTimeout) {\n nextTimeout = sunsetTimeout;\n }\n nextTimeout = nextTimeout - 3000;\n if (nextTimeout < 3000) {\n nextTimeout = 3000;\n }\n\n this.dayScheduleTimer = setTimeout(() => this.dayTimeSchedules(), nextTimeout);\n }\n\n stopTimeSchedules(): void {\n if (this.dayScheduleTimer) {\n clearTimeout(this.dayScheduleTimer);\n this.dayScheduleTimer = null;\n }\n if (this.sunScheduleTimer) {\n clearTimeout(this.sunScheduleTimer);\n this.sunScheduleTimer = null;\n }\n if (this.timeScheduleTimer) {\n clearTimeout(this.timeScheduleTimer);\n this.timeScheduleTimer = null;\n }\n }\n\n async patchFont(): Promise {\n let stat: Stats | undefined;\n let dbFile: Buffer | undefined;\n let fileName = `${__dirname}/../admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n let jsonFileName = `${__dirname}/../admin/vsFont/codicon.json`;\n try {\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n if (!stat) {\n jsonFileName = `${__dirname}/admin/vsFont/codicon.json`;\n fileName = `${__dirname}/admin/vs/base/browser/ui/codicons/codicon/codicon.ttf`;\n if (existsSync(fileName)) {\n stat = statSync(fileName);\n }\n }\n const _dbFile = await this.readFileAsync(\n 'javascript.admin',\n `vs/base/browser/ui/codicons/codicon/codicon.ttf`,\n );\n if (_dbFile?.file) {\n dbFile = _dbFile.file as Buffer;\n }\n } catch {\n // ignore\n }\n\n if (stat?.size !== 73452 || dbFile?.byteLength !== 73452) {\n try {\n const buffer = Buffer.from(JSON.parse(readFileSync(jsonFileName).toString()), 'base64');\n\n const jszip = await import('jszip');\n const zip = await jszip.loadAsync(buffer);\n let data: ArrayBuffer | undefined;\n if (zip) {\n data = await zip.file('codicon.ttf')?.async('arraybuffer');\n if (data?.byteLength !== 73452) {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n } else {\n this.log.error(`Cannot patch font: invalid font file!`);\n return false;\n }\n writeFileSync(fileName, Buffer.from(data));\n // upload this file\n await this.writeFileAsync(\n 'javascript.admin',\n 'vs/base/browser/ui/codicons/codicon/codicon.ttf',\n Buffer.from(data),\n );\n return true;\n } catch (err: unknown) {\n this.log.error(`Cannot patch font: ${err as Error}`);\n return false;\n }\n }\n return false;\n }\n\n async sunTimeSchedules(): Promise {\n if (this.config.createAstroStates) {\n if (!isNaN(this.config.longitude) && !isNaN(this.config.longitude)) {\n const calcDate = getAstroStartOfDay();\n\n const times = this.mods.suncalc.getTimes(calcDate, this.config.latitude, this.config.longitude);\n\n this.log.debug(`[sunTimeSchedules] Times: ${JSON.stringify(times)}`);\n\n for (const t in times) {\n try {\n const objId = `variables.astro.${t}`;\n\n await this.setObjectNotExistsAsync(objId, {\n type: 'state',\n common: {\n name: `Astro ${t}`,\n type: 'string',\n role: 'value',\n read: true,\n write: false,\n },\n native: {},\n });\n\n if (times[t] !== null && !isNaN(times[t].getTime())) {\n const timeFormatted = formatHoursMinutesSeconds(times[t]);\n await this.setState(objId, {\n val: timeFormatted,\n c: times[t].toISOString(),\n ack: true,\n });\n } else {\n await this.setState(objId, { val: null, c: 'n/a', ack: true, q: 0x01 });\n }\n } catch (err: unknown) {\n this.log.error(\n `[sunTimeSchedules] Unable to set state for astro time \"${t}\" (${times[t].getTime()}): ${err as Error}`,\n );\n }\n }\n\n const todayDate = new Date();\n todayDate.setHours(0);\n todayDate.setMinutes(0);\n todayDate.setSeconds(1);\n todayDate.setMilliseconds(0);\n todayDate.setDate(todayDate.getDate() + 1);\n\n this.log.debug(`[sunTimeSchedules] Next: ${todayDate.toISOString()}`);\n this.sunScheduleTimer = setTimeout(() => this.sunTimeSchedules(), todayDate.getTime() - Date.now());\n }\n } else {\n // remove astro states if disabled\n this.delObject('variables.astro', { recursive: true });\n }\n }\n\n /**\n * Redirects the virtual-tsc log output to the ioBroker log\n */\n tsLog = (message: string, severity?: ioBroker.LogLevel): void => {\n // shift the severities around, we don't care about the small details\n if (!severity || severity === 'info') {\n severity = 'debug';\n } else if (severity === 'debug') {\n // Don't spam build logs on Travis\n if (isCI) {\n return;\n }\n severity = 'silly';\n }\n\n if (this?.log) {\n this.log[severity](message);\n } else {\n console.log(`[${severity.toUpperCase()}] ${message}`);\n }\n };\n\n addGetProperty(object: Record): void {\n try {\n Object.defineProperty(object, 'get', {\n value: function (id: string): any {\n return this[id] || this[`${this.namespace}.${id}`];\n },\n enumerable: false,\n });\n } catch {\n console.error('Cannot install get property');\n }\n }\n\n /**\n * Add declarations for global scripts\n *\n * @param scriptID - The current script the declarations were generated from\n * @param declarations - Declarations from script\n */\n provideDeclarationsForGlobalScript(scriptID: string, declarations: string): void {\n // Remember which declarations this global script had access to,\n // we need this so the editor doesn't show a duplicate identifier error\n if (this.globalDeclarations != null && this.globalDeclarations !== '') {\n this.knownGlobalDeclarationsByScript[scriptID] = this.globalDeclarations;\n }\n // and concatenate the global declarations for the next scripts\n this.globalDeclarations += `${declarations}\\n`;\n // remember all previously generated global declarations,\n // so global scripts can reference each other\n const globalDeclarationPath = 'global.d.ts';\n tsAmbient[globalDeclarationPath] = this.globalDeclarations;\n // make sure the next script compilation has access to the updated declarations\n this.tsServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n jsDeclarationServer.provideAmbientDeclarations({\n [globalDeclarationPath]: this.globalDeclarations,\n });\n }\n\n fixLineNo(line: string): string {\n if (line.includes('javascript.js:')) {\n return line;\n }\n if (!/scripts?\\.js[.\\\\/]/.test(line)) {\n return line;\n }\n if (/:(\\d+):/.test(line)) {\n line = line.replace(\n /:(\\d+):/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}:`,\n ); // one line for 'async function ()'\n } else {\n line = line.replace(\n /:(\\d+)$/,\n (_$0, $1) => `:${$1 > this.globalScriptLines + 1 ? $1 - this.globalScriptLines - 1 : $1}`,\n ); // one line for 'async function ()'\n }\n return line;\n }\n\n async debugStop(): Promise {\n if (this.debugState.child) {\n this.debugSendToInspector({ cmd: 'end' });\n this.debugState.endTimeout = setTimeout(() => {\n this.debugState.endTimeout = null;\n this.debugState.child?.kill('SIGTERM');\n }, 500);\n this.debugState.promiseOnEnd = this.debugState.promiseOnEnd || Promise.resolve(0);\n } else {\n this.debugState.promiseOnEnd = Promise.resolve(0);\n }\n\n await this.debugState.promiseOnEnd;\n\n this.debugState.child = null;\n this.debugState.running = false;\n this.debugState.scriptName = '';\n if (this.debugState.endTimeout) {\n clearTimeout(this.debugState.endTimeout);\n this.debugState.endTimeout = null;\n }\n }\n\n async debugDisableScript(id: string | undefined): Promise {\n if (id) {\n const obj = this.objects[id];\n if (obj?.common?.enabled) {\n await this.extendForeignObjectAsync(obj._id, { common: { enabled: false } });\n }\n }\n }\n\n debugSendToInspector(message: any): void {\n if (this.debugState.child) {\n try {\n this.log.info(`send to debugger: ${message}`);\n this.debugState.child.send(message);\n } catch {\n void this.debugStop().then(() =>\n this.log.info(\n `${this.debugState.scriptName}: Debugging was stopped, because started in normal mode`,\n ),\n );\n }\n } else {\n this.log.error(`${this.debugState.scriptName}: Cannot send command to terminated inspector`);\n void this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `Cannot send command to terminated inspector`, id: 1 }),\n true,\n );\n }\n }\n\n debugStart(data: { breakOnStart?: boolean; scriptName?: string; adapter?: string }): void {\n if (Date.now() - this.debugState.started < 1000) {\n console.log('Start ignored');\n return;\n }\n\n this.debugState.started = Date.now();\n // stop the script if it's running\n void this.debugDisableScript(data.scriptName)\n .then(() => this.debugStop())\n .then(() => {\n if (data.adapter) {\n this.debugState.adapterInstance = data.adapter;\n this.debugState.scriptName = '';\n } else {\n this.debugState.adapterInstance = '';\n this.debugState.scriptName = data.scriptName as string;\n }\n\n this.debugState.breakOnStart = data.breakOnStart;\n\n this.debugState.promiseOnEnd = new Promise(resolve => {\n const options: ForkOptions = {\n stdio: ['ignore', 'inherit', 'inherit', 'ipc'],\n //stdio: ['pipe', 'pipe', 'pipe', 'ipc']\n };\n const args: string[] = [];\n if (this.debugState.adapterInstance) {\n args.push('--breakOnStart');\n }\n\n this.debugState.child = fork(`${__dirname}/lib/inspect.js`, args, options);\n\n /*debugState.child.stdout.setEncoding('utf8');\n debugState.child.stderr.setEncoding('utf8');\n debugState.child.stdout.on('data', childPrint);\n debugState.child.stderr.on('data', childPrint);*/\n\n this.debugState.child?.on(\n 'message',\n (\n message:\n | string\n | {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n },\n ) => {\n let oMessage: {\n cmd: 'ready' | 'watched' | 'paused' | 'resumed' | 'log' | 'readyToDebug';\n severity?: string;\n text?: string;\n scriptId?: string;\n script?: string;\n };\n if (typeof message === 'string') {\n try {\n oMessage = JSON.parse(message);\n } catch {\n return this.log.error(`Cannot parse message from inspector: ${message}`);\n }\n } else {\n oMessage = message;\n }\n\n if (oMessage.cmd !== 'ready') {\n void this.setState('debug.from', JSON.stringify(oMessage), true);\n }\n\n switch (oMessage.cmd) {\n case 'ready': {\n this.debugSendToInspector({\n cmd: 'start',\n scriptName: this.debugState.scriptName,\n adapterInstance: this.debugState.adapterInstance,\n instance: this.instance,\n });\n break;\n }\n\n case 'watched': {\n //console.log(`WATCHED: ${JSON.stringify(oMessage)}`);\n break;\n }\n\n case 'paused': {\n this.debugState.paused = true;\n console.log(`host: PAUSED`);\n break;\n }\n\n case 'resumed': {\n this.debugState.paused = false;\n //console.log(`STARTED`);\n break;\n }\n\n case 'log': {\n console.log(`[${oMessage.severity}] ${oMessage.text}`);\n break;\n }\n\n case 'readyToDebug': {\n console.log(\n `host: readyToDebug (set breakpoints): [${oMessage.scriptId}] ${oMessage.script}`,\n );\n break;\n }\n }\n },\n );\n this.debugState.child?.on('error', error => {\n this.log.error(`Cannot start inspector: ${error}`);\n void this.setState('debug.from', JSON.stringify({ cmd: 'error', error }), true);\n });\n\n this.debugState.child?.on('exit', async (code: number): Promise => {\n if (code) {\n await this.setState(\n 'debug.from',\n JSON.stringify({ cmd: 'error', error: `invalid response code: ${code}` }),\n true,\n );\n }\n await this.setState('debug.from', JSON.stringify({ cmd: 'debugStopped', code }), true);\n this.debugState.child = null;\n resolve(code);\n });\n });\n });\n }\n}\n\nfunction patternMatching(\n event: EventObj,\n patternFunctions: PatternEventCompareFunction[] & { logic?: 'and' | 'or' },\n): boolean {\n let matched = false;\n for (let i = 0, len = patternFunctions.length; i < len; i++) {\n if (patternFunctions[i](event)) {\n if (patternFunctions.logic === 'or') {\n return true;\n }\n matched = true;\n } else if (patternFunctions.logic === 'and') {\n return false;\n }\n }\n return matched;\n}\n\n// If started as allInOne mode => return function to create instance\nif (require.main !== module) {\n // Export the constructor in compact mode\n module.exports = (options: Partial | undefined) => new JavaScript(options);\n} else {\n // otherwise start the instance directly\n (() => new JavaScript())();\n}\n"]} \ No newline at end of file diff --git a/src-admin/package.json b/src-admin/package.json index 8a8be6bd9..07a7e9e21 100644 --- a/src-admin/package.json +++ b/src-admin/package.json @@ -1,7 +1,7 @@ { "name": "iobroker-admin-component-backitup", "private": true, - "version": "9.0.3", + "version": "9.0.4", "type": "module", "scripts": { "start": "vite --port 4173", diff --git a/src-editor/package.json b/src-editor/package.json index 2386f5731..d3376a296 100644 --- a/src-editor/package.json +++ b/src-editor/package.json @@ -1,6 +1,6 @@ { "name": "js", - "version": "9.0.3", + "version": "9.0.4", "private": true, "type": "module", "dependencies": { diff --git a/src-editor/src/Components/Connecting.tsx b/src-editor/src/Components/Connecting.tsx new file mode 100644 index 000000000..d0e1aa276 --- /dev/null +++ b/src-editor/src/Components/Connecting.tsx @@ -0,0 +1,101 @@ +import React, { type JSX } from 'react'; + +const offset = 187; + +const styles: Record = { + root: { + left: 0, + top: 0, + width: '100%', + height: '100%', + position: 'fixed', + background: 'rgba(0, 0, 0, .3)', + zIndex: 20000, + }, + connecting: { + left: '40%', + top: '40%', + width: '20%', + height: '20%', + position: 'absolute', + }, + spinner: { + animation: 'admin-connecting-rotator 1.4s linear infinite', + }, + path: { + strokeDasharray: 187, + strokeDashoffset: 0, + transformOrigin: 'center', + animation: 'admin-connecting-dash 1.4s ease-in-out infinite, $colors 5.6s ease-in-out infinite', + }, +}; + +function Connecting(): JSX.Element { + return ( +
+ +
+ + + +
+
+ ); +} + +export default Connecting; diff --git a/src-editor/src/Components/Debugger/Editor.tsx b/src-editor/src/Components/Debugger/Editor.tsx index 43dfbec64..c0f107382 100644 --- a/src-editor/src/Components/Debugger/Editor.tsx +++ b/src-editor/src/Components/Debugger/Editor.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import ScriptEditorComponent from '../ScriptEditorVanilaMonaco'; +import ScriptEditorComponent from '../ScriptEditorVanillaMonaco'; import type { AdminConnection, ThemeName, ThemeType } from '@iobroker/adapter-react-v5'; import type { DebuggerLocation, SetBreakpointParameterType } from './types'; diff --git a/src-editor/src/Components/ScriptEditorVanilaMonaco.tsx b/src-editor/src/Components/ScriptEditorVanillaMonaco.tsx similarity index 100% rename from src-editor/src/Components/ScriptEditorVanilaMonaco.tsx rename to src-editor/src/Components/ScriptEditorVanillaMonaco.tsx diff --git a/src-editor/src/Dialogs/ScriptEditor.tsx b/src-editor/src/Dialogs/ScriptEditor.tsx index aa2e3f4e7..6b20af19f 100644 --- a/src-editor/src/Dialogs/ScriptEditor.tsx +++ b/src-editor/src/Dialogs/ScriptEditor.tsx @@ -6,7 +6,7 @@ import { Save as IconSave, Cancel as IconCancel } from '@mui/icons-material'; import { type AdminConnection, I18n, type IobTheme, type ThemeType } from '@iobroker/adapter-react-v5'; -import ScriptEditorComponent from '../Components/ScriptEditorVanilaMonaco'; +import ScriptEditorComponent from '../Components/ScriptEditorVanillaMonaco'; const styles: Record = { textArea: { diff --git a/src-editor/src/Editor.tsx b/src-editor/src/Editor.tsx index 7a63630b9..67729db02 100644 --- a/src-editor/src/Editor.tsx +++ b/src-editor/src/Editor.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { Suspense } from 'react'; import Tour from 'reactour'; import { @@ -74,14 +74,16 @@ import { type ThemeName, } from '@iobroker/adapter-react-v5'; -import ScriptEditorComponent from './Components/ScriptEditorVanilaMonaco'; -import BlocklyEditor from './Components/BlocklyEditor'; -import DialogScriptEditor from './Dialogs/ScriptEditor'; -import RulesEditor from './Components/RulesEditor'; -import Debugger from './Components/Debugger'; import steps, { STEPS } from './Components/RulesEditor/helpers/Tour'; -import OpenAiDialog from './OpenAi/OpenAiDialog'; import type { AstroTimes, ScriptType } from '@/types'; +import Connecting from './Components/Connecting'; + +const BlocklyEditor = React.lazy(() => import('./Components/BlocklyEditor')); +const RulesEditor = React.lazy(() => import('./Components/RulesEditor')); +const Debugger = React.lazy(() => import('./Components/Debugger')); +const ScriptEditorComponent = React.lazy(() => import('./Components/ScriptEditorVanillaMonaco')); +const DialogScriptEditor = React.lazy(() => import('./Dialogs/ScriptEditor')); +const OpenAiDialog = React.lazy(() => import('./OpenAi/OpenAiDialog')); declare global { interface Window { @@ -209,6 +211,25 @@ const styles: Record = { }, }; +function ChatIcon(): React.JSX.Element { + return ( + + + + + ); +} + interface EditorProps { socket: AdminConnection; objects: Record; @@ -269,6 +290,7 @@ interface EditorState { askAboutDebug: boolean; menuDebugAnchorEl: null | HTMLElement; triggerPrettier: number; + openAiDialog: boolean; } class Editor extends React.Component { @@ -338,6 +360,7 @@ class Editor extends React.Component { menuDebugAnchorEl: null, menuOpened: !!this.props.menuOpened, menuTabsOpened: false, + openAiDialog: false, triggerPrettier: 1, rules: null, runningInstances: this.props.runningInstances || {}, @@ -1233,6 +1256,27 @@ class Editor extends React.Component { return null; } + renderOpenAiDialog(): React.JSX.Element | null { + if (!this.state.openAiDialog) { + return null; + } + return ( + }> + this.setState({ openAiDialog: false })} + language={ + this.scripts[this.state.selected].engineType === 'TypeScript/ts' ? 'typescript' : 'javascript' + } + onAddCode={code => this.setState({ insert: code })} + /> + + ); + } + getToolbar(): React.JSX.Element | null { const isInstanceRunning = !!( this.state.selected && @@ -1405,18 +1449,16 @@ class Editor extends React.Component { {this.scripts[this.state.selected] && this.scripts[this.state.selected].engineType !== 'Blockly' && this.scripts[this.state.selected].engineType !== 'Rules' ? ( - this.setState({ insert: code })} - /> + this.setState({ openAiDialog: true })} + > + + ) : null} { sx={styles.editorDiv} key="scriptEditorDiv" > - this.setState({ insert: '' })} - onForceSave={() => this.onSave()} - searchText={this.state.searchText} - onRegisterSelect={(func: (() => string | undefined) | null) => this.onRegisterSelect(func)} - readOnly={this.state.showCompiledCode} - changed={this.state.changed[this.state.selected]} - code={this.scripts[this.state.selected].source || ''} - isDark={this.state.themeType === 'dark'} - socket={this.props.socket} - runningInstances={this.state.runningInstances} - triggerPrettier={this.state.triggerPrettier} - onChange={newValue => this.onChange({ script: newValue })} - language={ - this.scripts[this.state.selected].engineType === 'TypeScript/ts' - ? 'typescript' - : 'javascript' - } - /> + }> + this.setState({ insert: '' })} + onForceSave={() => this.onSave()} + searchText={this.state.searchText} + onRegisterSelect={(func: (() => string | undefined) | null) => this.onRegisterSelect(func)} + readOnly={this.state.showCompiledCode} + changed={this.state.changed[this.state.selected]} + code={this.scripts[this.state.selected].source || ''} + isDark={this.state.themeType === 'dark'} + socket={this.props.socket} + runningInstances={this.state.runningInstances} + triggerPrettier={this.state.triggerPrettier} + onChange={newValue => this.onChange({ script: newValue })} + language={ + this.scripts[this.state.selected].engineType === 'TypeScript/ts' + ? 'typescript' + : 'javascript' + } + /> + ); } @@ -1634,15 +1678,17 @@ class Editor extends React.Component { sx={styles.editorDiv} key="blocklyEditorDiv" > - this.onChange({ script: newValue })} - /> + }> + this.onChange({ script: newValue })} + /> + ); } @@ -1673,23 +1719,25 @@ class Editor extends React.Component { sx={styles.editorDiv} key="flowEditorDiv" > - this.onChange({ script: newValue })} - /> + }> + this.onChange({ script: newValue })} + /> + ); } @@ -1916,24 +1964,26 @@ class Editor extends React.Component { getEditorDialog(): React.JSX.Element | null { if (this.state.showScript) { return ( - { - this.scriptDialog.initValue = null; - if (this.scriptDialog.callback) { - result !== false && this.scriptDialog.callback(result || ''); - this.scriptDialog.callback = null; - } - this.setState({ showScript: false }); - }} - /> + }> + { + this.scriptDialog.initValue = null; + if (this.scriptDialog.callback) { + result !== false && this.scriptDialog.callback(result || ''); + this.scriptDialog.callback = null; + } + this.setState({ showScript: false }); + }} + /> + ); } return null; @@ -2006,16 +2056,18 @@ class Editor extends React.Component { this.state.runningInstances[this.scripts[this.state.selected].engine]; if (isInstanceRunning) { return ( - + }> + + ); } setTimeout(() => this.props.onDebugModeChange(false)); @@ -2063,6 +2115,7 @@ class Editor extends React.Component { this.getEditorDialog(), this.getAstroDialog(), this.getDebugMenu(), + this.renderOpenAiDialog(), this.getToast(), this.getTour(), ]; diff --git a/src-editor/src/OpenAi/OpenAiDialog.tsx b/src-editor/src/OpenAi/OpenAiDialog.tsx index 24aea5566..9d06365a4 100644 --- a/src-editor/src/OpenAi/OpenAiDialog.tsx +++ b/src-editor/src/OpenAi/OpenAiDialog.tsx @@ -8,7 +8,6 @@ import { DialogActions, DialogContent, DialogTitle, - IconButton, TextField, MenuItem, Select, @@ -21,7 +20,7 @@ import { Check, Close, QuestionMark as Question, FileCopy as Copy } from '@mui/i import { Utils, I18n, type AdminConnection, type ThemeType } from '@iobroker/adapter-react-v5'; import { detectDevices, type DeviceObject, systemPrompt } from './OpenAiPrompt'; -import ScriptEditorComponent from '../Components/ScriptEditorVanilaMonaco'; +import ScriptEditorComponent from '../Components/ScriptEditorVanillaMonaco'; import type { APIError } from 'openai/error'; const LANGUAGES: Record = { @@ -38,35 +37,6 @@ const LANGUAGES: Record = { 'zh-cn': 'Chinese', }; -function ChatIcon(): React.JSX.Element { - return ( - - - - - ); -} - -const styles: Record = { - toolbarButtons: { - padding: 4, - marginLeft: 4, - }, - fullHeightDialog: { - height: 'calc(100% - 100px)', - }, -}; - interface OpenAiDialogProps { adapterName: string; socket: AdminConnection; @@ -74,12 +44,12 @@ interface OpenAiDialogProps { themeType: ThemeType; language: 'javascript' | 'typescript'; onAddCode: (answer: string) => void; + onClose: () => void; } const OpenAiDialog = (props: OpenAiDialogProps): React.JSX.Element => { const [question, setQuestion] = useState(window.localStorage.getItem('openai-question') || ''); const [answer, setAnswer] = useState(''); - const [open, setOpen] = useState(false); const [working, setWorking] = useState(false); const [error, setError] = useState(false); const [model, setModel] = useState(window.localStorage.getItem('openai-model') || 'gpt-4o'); @@ -187,17 +157,17 @@ Do not import any libraries as all functions are already imported.`, }, [question, model, props.runningInstances, props.socket]); return ( - <> - setOpen(true)} - > - - + props.onClose()} + fullWidth + > {showKeyWarning && ( )} - {open && ( - setOpen(false)} - fullWidth - > - {I18n.t('AI code generator')} - {I18n.t('AI code generator')} + +
+ { + if (e.key === 'Enter' && e.ctrlKey) { + void ask(); + } + }} + label={I18n.t('Enter your question')} + helperText={I18n.t('Press Ctrl+Enter to get the answer')} + value={question} + onChange={e => { + window.localStorage.setItem('openai-question', e.target.value); + setQuestion(e.target.value); }} + /> +
+
+ - - {I18n.t('Model')} - - -
-
{I18n.t('Result')}
-
- {error ? ( -
{error}
- ) : ( - - )} -
-
- - + + {I18n.t('Model')} + + +